diff --git a/internal/config/config.go b/internal/config/config.go index cf6a3265832b05f19de3d6622455be15615bf106..1da1f6c94ddd404553842cb87feaf8941eb3e7f6 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -196,16 +196,29 @@ func setDefaults(debug bool) { } // setProviderDefaults configures LLM provider defaults based on environment variables. -// the default model priority is: -// 1. Anthropic -// 2. OpenAI -// 3. Google Gemini -// 4. Groq -// 5. AWS Bedrock func setProviderDefaults() { - // Anthropic configuration + // Set all API keys we can find in the environment if apiKey := os.Getenv("ANTHROPIC_API_KEY"); apiKey != "" { viper.SetDefault("providers.anthropic.apiKey", apiKey) + } + if apiKey := os.Getenv("OPENAI_API_KEY"); apiKey != "" { + viper.SetDefault("providers.openai.apiKey", apiKey) + } + if apiKey := os.Getenv("GEMINI_API_KEY"); apiKey != "" { + viper.SetDefault("providers.gemini.apiKey", apiKey) + } + if apiKey := os.Getenv("GROQ_API_KEY"); apiKey != "" { + viper.SetDefault("providers.groq.apiKey", apiKey) + } + + // Use this order to set the default models + // 1. Anthropic + // 2. OpenAI + // 3. Google Gemini + // 4. Groq + // 5. AWS Bedrock + // Anthropic configuration + if apiKey := os.Getenv("ANTHROPIC_API_KEY"); apiKey != "" { viper.SetDefault("agents.coder.model", models.Claude37Sonnet) viper.SetDefault("agents.task.model", models.Claude37Sonnet) viper.SetDefault("agents.title.model", models.Claude37Sonnet) @@ -214,7 +227,6 @@ func setProviderDefaults() { // OpenAI configuration if apiKey := os.Getenv("OPENAI_API_KEY"); apiKey != "" { - viper.SetDefault("providers.openai.apiKey", apiKey) viper.SetDefault("agents.coder.model", models.GPT41) viper.SetDefault("agents.task.model", models.GPT41Mini) viper.SetDefault("agents.title.model", models.GPT41Mini) @@ -223,7 +235,6 @@ func setProviderDefaults() { // Google Gemini configuration if apiKey := os.Getenv("GEMINI_API_KEY"); apiKey != "" { - viper.SetDefault("providers.gemini.apiKey", apiKey) viper.SetDefault("agents.coder.model", models.Gemini25) viper.SetDefault("agents.task.model", models.Gemini25Flash) viper.SetDefault("agents.title.model", models.Gemini25Flash) @@ -232,7 +243,6 @@ func setProviderDefaults() { // Groq configuration if apiKey := os.Getenv("GROQ_API_KEY"); apiKey != "" { - viper.SetDefault("providers.groq.apiKey", apiKey) viper.SetDefault("agents.coder.model", models.QWENQwq) viper.SetDefault("agents.task.model", models.QWENQwq) viper.SetDefault("agents.title.model", models.QWENQwq)