diff --git a/pkg/providers/factory.go b/pkg/providers/factory.go index 2f36a97af..530f16885 100644 --- a/pkg/providers/factory.go +++ b/pkg/providers/factory.go @@ -86,14 +86,16 @@ func resolveProviderSelection(cfg *config.Config) (providerSelection, error) { sel.providerType = providerTypeClaudeAuth return sel, nil } - sel.apiKey = cfg.Providers.Anthropic.APIKey - sel.apiBase = cfg.Providers.Anthropic.APIBase - sel.proxy = cfg.Providers.Anthropic.Proxy - if sel.apiBase == "" { - sel.apiBase = defaultAnthropicAPIBase + if cfg.Providers.Anthropic.APIKey != "" { + sel.apiKey = cfg.Providers.Anthropic.APIKey + sel.apiBase = cfg.Providers.Anthropic.APIBase + sel.proxy = cfg.Providers.Anthropic.Proxy + if sel.apiBase == "" { + sel.apiBase = defaultAnthropicAPIBase + } + sel.providerType = providerTypeClaudeAPIKey + return sel, nil } - sel.providerType = providerTypeClaudeAPIKey - return sel, nil } case "openrouter": if cfg.Providers.OpenRouter.APIKey != "" { @@ -238,14 +240,16 @@ func resolveProviderSelection(cfg *config.Config) (providerSelection, error) { sel.providerType = providerTypeClaudeAuth return sel, nil } - sel.apiKey = cfg.Providers.Anthropic.APIKey - sel.apiBase = cfg.Providers.Anthropic.APIBase - sel.proxy = cfg.Providers.Anthropic.Proxy - if sel.apiBase == "" { - sel.apiBase = defaultAnthropicAPIBase + if cfg.Providers.Anthropic.APIKey != "" { + sel.apiKey = cfg.Providers.Anthropic.APIKey + sel.apiBase = cfg.Providers.Anthropic.APIBase + sel.proxy = cfg.Providers.Anthropic.Proxy + if sel.apiBase == "" { + sel.apiBase = defaultAnthropicAPIBase + } + sel.providerType = providerTypeClaudeAPIKey + return sel, nil } - sel.providerType = providerTypeClaudeAPIKey - return sel, nil case (strings.Contains(lowerModel, "gpt") || strings.HasPrefix(model, "openai/")) && (cfg.Providers.OpenAI.APIKey != "" || cfg.Providers.OpenAI.AuthMethod != ""): sel.enableWebSearch = cfg.Providers.OpenAI.WebSearch diff --git a/pkg/providers/factory_test.go b/pkg/providers/factory_test.go index 9116dd57d..fb1c8647d 100644 --- a/pkg/providers/factory_test.go +++ b/pkg/providers/factory_test.go @@ -345,11 +345,16 @@ func TestCreateProviderReturnsClaudeProviderForAnthropicOAuth(t *testing.T) { func TestCreateProviderReturnsClaudeProviderForAnthropicAPIKey(t *testing.T) { cfg := config.DefaultConfig() - cfg.Agents.Defaults.Provider = "anthropic" - cfg.Agents.Defaults.Model = "claude-opus-4-6" - cfg.Providers.Anthropic.APIKey = "sk-ant-api03-test" + cfg.Agents.Defaults.Model = "test-claude-apikey" + cfg.ModelList = []config.ModelConfig{ + { + ModelName: "test-claude-apikey", + Model: "anthropic/claude-opus-4-6", + APIKey: "sk-ant-api03-test", + }, + } - provider, err := CreateProvider(cfg) + provider, _, err := CreateProvider(cfg) if err != nil { t.Fatalf("CreateProvider() error = %v", err) }