@@ -280,10 +280,10 @@ func setProviderDefaults() {
// Anthropic configuration
if key := viper.GetString("providers.anthropic.apiKey"); strings.TrimSpace(key) != "" {
- viper.SetDefault("agents.coder.model", models.Claude37Sonnet)
- viper.SetDefault("agents.summarizer.model", models.Claude37Sonnet)
- viper.SetDefault("agents.task.model", models.Claude37Sonnet)
- viper.SetDefault("agents.title.model", models.Claude37Sonnet)
+ viper.SetDefault("agents.coder.model", models.Claude4Sonnet)
+ viper.SetDefault("agents.summarizer.model", models.Claude4Sonnet)
+ viper.SetDefault("agents.task.model", models.Claude4Sonnet)
+ viper.SetDefault("agents.title.model", models.Claude4Sonnet)
return
}
@@ -9,6 +9,8 @@ const (
Claude37Sonnet ModelID = "claude-3.7-sonnet"
Claude35Haiku ModelID = "claude-3.5-haiku"
Claude3Opus ModelID = "claude-3-opus"
+ Claude4Opus ModelID = "claude-4-opus"
+ Claude4Sonnet ModelID = "claude-4-sonnet"
)
// https://docs.anthropic.com/en/docs/about-claude/models/all-models
@@ -79,4 +81,31 @@ var AnthropicModels = map[ModelID]Model{
DefaultMaxTokens: 4096,
SupportsAttachments: true,
},
+ Claude4Sonnet: {
+ ID: Claude4Sonnet,
+ Name: "Claude 4 Sonnet",
+ Provider: ProviderAnthropic,
+ APIModel: "claude-sonnet-4-20250514",
+ CostPer1MIn: 3.0,
+ CostPer1MInCached: 3.75,
+ CostPer1MOutCached: 0.30,
+ CostPer1MOut: 15.0,
+ ContextWindow: 200000,
+ DefaultMaxTokens: 50000,
+ CanReason: true,
+ SupportsAttachments: true,
+ },
+ Claude4Opus: {
+ ID: Claude4Opus,
+ Name: "Claude 4 Opus",
+ Provider: ProviderAnthropic,
+ APIModel: "claude-opus-4-20250514",
+ CostPer1MIn: 15.0,
+ CostPer1MInCached: 18.75,
+ CostPer1MOutCached: 1.50,
+ CostPer1MOut: 75.0,
+ ContextWindow: 200000,
+ DefaultMaxTokens: 4096,
+ SupportsAttachments: true,
+ },
}