package provider import ( "context" "encoding/json" ) type ModelInfo struct { ID string `json:"id"` DisplayName string `json:"display_name,omitempty"` } type ChatRequest struct { Model string `json:"model"` Messages json.RawMessage `json:"messages"` Stream bool `json:"stream"` Raw json.RawMessage `json:"-"` } type ChatResponse struct { StatusCode int Body []byte Headers map[string]string TokensIn int TokensOut int } type Client interface { Type() string ListModels(ctx context.Context, apiKey, baseURL string) ([]ModelInfo, error) ChatCompletion(ctx context.Context, apiKey, baseURL string, req *ChatRequest) (*ChatResponse, error) HealthCheck(ctx context.Context, apiKey, baseURL string) error }