add sonnet 4

Kujtim Hoxha created

Change summary

internal/config/config.go        |  8 ++++----
internal/llm/models/anthropic.go | 29 +++++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 4 deletions(-)

Detailed changes

internal/config/config.go 🔗

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

internal/llm/models/anthropic.go 🔗

@@ -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,
+	},
 }