diff --git a/internal/providers/configs/anthropic.json b/internal/providers/configs/anthropic.json index 82932eeaaea981e4da5635a1b6da1990394bf1b2..4df69d2e99b26992d08742d5b63c3fc7b7a9ad13 100644 --- a/internal/providers/configs/anthropic.json +++ b/internal/providers/configs/anthropic.json @@ -4,7 +4,8 @@ "type": "anthropic", "api_key": "$ANTHROPIC_API_KEY", "api_endpoint": "$ANTHROPIC_API_ENDPOINT", - "default_model_id": "claude-sonnet-4-20250514", + "default_large_model_id": "claude-sonnet-4-20250514", + "default_small_model_id": "claude-3-5-haiku-20241022", "models": [ { "id": "claude-opus-4-20250514", diff --git a/internal/providers/configs/azure.json b/internal/providers/configs/azure.json index b9133e83d2e2c9fae03ab82b850462379ef7efb6..73c555683b47b459e27b58744d701092b521bf6e 100644 --- a/internal/providers/configs/azure.json +++ b/internal/providers/configs/azure.json @@ -4,7 +4,8 @@ "type": "azure", "api_key": "$AZURE_OPENAI_API_KEY", "api_endpoint": "$AZURE_OPENAI_API_ENDPOINT", - "default_model_id": "o4-mini", + "default_large_model_id": "o4-mini", + "default_small_model_id": "gpt-4o", "models": [ { "id": "codex-mini-latest", diff --git a/internal/providers/configs/bedrock.json b/internal/providers/configs/bedrock.json index 2cb6c63cba4eaabaca6adf364eb58f1f0c9cb6bc..4871fe3e7609679f712771510015739b3f3666e7 100644 --- a/internal/providers/configs/bedrock.json +++ b/internal/providers/configs/bedrock.json @@ -4,7 +4,8 @@ "type": "bedrock", "api_key": "", "api_endpoint": "", - "default_model_id": "claude-sonnet-4-20250514", + "default_large_model_id": "anthropic.claude-sonnet-4-20250514-v1:0", + "default_small_model_id": "anthropic.claude-3-5-haiku-20241022-v1:0", "models": [ { "id": "anthropic.claude-opus-4-20250514-v1:0", diff --git a/internal/providers/configs/gemini.json b/internal/providers/configs/gemini.json index 98a3a67f25bc56c104771702badbbcc09a262f23..cc81fc3842f9e778d2e5cc6596cc4a75e8d4f3c5 100644 --- a/internal/providers/configs/gemini.json +++ b/internal/providers/configs/gemini.json @@ -4,7 +4,8 @@ "type": "gemini", "api_key": "$GEMINI_API_KEY", "api_endpoint": "$GEMINI_API_ENDPOINT", - "default_model_id": "gemini-2.5-pro", + "default_large_model_id": "gemini-2.5-pro", + "default_small_model_id": "gemini-2.5-flash", "models": [ { "id": "gemini-2.5-pro", diff --git a/internal/providers/configs/openai.json b/internal/providers/configs/openai.json index 0bdb40219e1d9ac7e34411390ddf9bc49a66935a..21b5b43ffb7bf793f28bade0e26b8cc67930bea0 100644 --- a/internal/providers/configs/openai.json +++ b/internal/providers/configs/openai.json @@ -4,7 +4,8 @@ "type": "openai", "api_key": "$OPENAI_API_KEY", "api_endpoint": "$OPENAI_API_ENDPOINT", - "default_model_id": "o4-mini", + "default_large_model_id": "o4-mini", + "default_small_model_id": "gpt-4o", "models": [ { "id": "codex-mini-latest", diff --git a/internal/providers/configs/openrouter.json b/internal/providers/configs/openrouter.json index 7a3bd992b3fea09c1246c9ec339df894339637a8..fb74ccaf891f17c89982b54f585ad2f893c3d55d 100644 --- a/internal/providers/configs/openrouter.json +++ b/internal/providers/configs/openrouter.json @@ -4,7 +4,8 @@ "api_key": "$OPENROUTER_API_KEY", "api_endpoint": "https://openrouter.ai/api/v1", "type": "openai", - "default_model_id": "anthropic/claude-sonnet-4", + "default_large_model_id": "anthropic/claude-sonnet-4", + "default_small_model_id": "anthropic/claude-3-5-haiku", "models": [ { "id": "mistralai/mistral-small-3.2-24b-instruct:free", diff --git a/internal/providers/configs/vertexai.json b/internal/providers/configs/vertexai.json index 228ab10dd42873cb0ba041e3fd6f0e9ebcd9f08a..260562d12399275c2f147cff8869749a68e37b5b 100644 --- a/internal/providers/configs/vertexai.json +++ b/internal/providers/configs/vertexai.json @@ -4,7 +4,8 @@ "type": "vertex", "api_key": "", "api_endpoint": "", - "default_model_id": "gemini-2.5-pro", + "default_large_model_id": "gemini-2.5-pro", + "default_small_model_id": "gemini-2.5-flash", "models": [ { "id": "gemini-2.5-pro", diff --git a/internal/providers/configs/xai.json b/internal/providers/configs/xai.json index 1f872c394a6f9378da567808d367abcdf8532fd7..6495ecac40cd85c80b0b171b3cf222c9105710b6 100644 --- a/internal/providers/configs/xai.json +++ b/internal/providers/configs/xai.json @@ -4,7 +4,8 @@ "api_key": "$XAI_API_KEY", "api_endpoint": "https://api.x.ai/v1", "type": "openai", - "default_model_id": "grok-3", + "default_large_model_id": "grok-3", + "default_small_model_id": "grok-3-mini", "models": [ { "id": "grok-3-mini", diff --git a/internal/providers/providers.go b/internal/providers/providers.go index 97f26aa1fd9cc10ee85ca352844452c6da62085e..960fdbc3915df25e51dc300bec90c28d93595678 100644 --- a/internal/providers/providers.go +++ b/internal/providers/providers.go @@ -37,8 +37,8 @@ var bedrockConfig []byte type ProviderFunc func() provider.Provider var providerRegistry = []ProviderFunc{ - openAIProvider, anthropicProvider, + openAIProvider, geminiProvider, azureProvider, bedrockProvider, diff --git a/pkg/provider/provider.go b/pkg/provider/provider.go index 2e5442e6083495b16358770e3278357241f4f74b..85275f1155eff219c87d85fce3cdcc436f4a4e47 100644 --- a/pkg/provider/provider.go +++ b/pkg/provider/provider.go @@ -33,13 +33,14 @@ const ( // Provider represents an AI provider configuration. type Provider struct { - Name string `json:"name"` - ID InferenceProvider `json:"id"` - APIKey string `json:"api_key,omitempty"` - APIEndpoint string `json:"api_endpoint,omitempty"` - Type Type `json:"type,omitempty"` - DefaultModelID string `json:"default_model_id,omitempty"` - Models []Model `json:"models,omitempty"` + Name string `json:"name"` + ID InferenceProvider `json:"id"` + APIKey string `json:"api_key,omitempty"` + APIEndpoint string `json:"api_endpoint,omitempty"` + Type Type `json:"type,omitempty"` + DefaultLargeModelID string `json:"default_large_model_id,omitempty"` + DefaultSmallModelID string `json:"default_small_model_id,omitempty"` + Models []Model `json:"models,omitempty"` } // Model represents an AI model configuration.