fix(providers): address review feedback - APIKey guard, test fix

- Add explicit APIKey \!= '' guard in both provider-selection branches to
  prevent routing with empty credentials when only AuthMethod is set
- Fix test to use ModelList (CreateProvider now requires model_list entry)
- Fix test for 3-value return from CreateProvider after upstream changes
This commit is contained in:
Nikolas de Hor 2026-03-03 01:20:16 -03:00
parent 6c065d2852
commit 3552a88fbd
2 changed files with 27 additions and 18 deletions

View file

@ -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

View file

@ -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)
}