diff --git a/internal/registry/model_definitions.go b/internal/registry/model_definitions.go index 46b99695..cf6b3f09 100644 --- a/internal/registry/model_definitions.go +++ b/internal/registry/model_definitions.go @@ -442,6 +442,18 @@ func GetKiroModels() []*ModelInfo { MaxCompletionTokens: 64000, Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true}, }, + { + ID: "kiro-claude-sonnet-4-6", + Object: "model", + Created: 1739836800, // 2025-02-18 + OwnedBy: "aws", + Type: "kiro", + DisplayName: "Kiro Claude Sonnet 4.6", + Description: "Claude Sonnet 4.6 via Kiro (1.3x credit)", + ContextLength: 200000, + MaxCompletionTokens: 64000, + Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true}, + }, { ID: "kiro-claude-opus-4-5", Object: "model", @@ -584,6 +596,18 @@ func GetKiroModels() []*ModelInfo { MaxCompletionTokens: 64000, Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true}, }, + { + ID: "kiro-claude-sonnet-4-6-agentic", + Object: "model", + Created: 1739836800, // 2025-02-18 + OwnedBy: "aws", + Type: "kiro", + DisplayName: "Kiro Claude Sonnet 4.6 (Agentic)", + Description: "Claude Sonnet 4.6 optimized for coding agents (chunked writes)", + ContextLength: 200000, + MaxCompletionTokens: 64000, + Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true}, + }, { ID: "kiro-claude-opus-4-5-agentic", Object: "model", diff --git a/internal/registry/model_definitions_static_data.go b/internal/registry/model_definitions_static_data.go index 6acd49dc..5625efea 100644 --- a/internal/registry/model_definitions_static_data.go +++ b/internal/registry/model_definitions_static_data.go @@ -907,6 +907,7 @@ func GetAntigravityModelConfig() map[string]*AntigravityModelConfig { "gemini-3-flash": {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "low", "medium", "high"}}}, "claude-opus-4-5-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000}, "claude-opus-4-6-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000}, + "claude-sonnet-4-6-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000}, "claude-sonnet-4-5": {MaxCompletionTokens: 64000}, "claude-sonnet-4-5-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000}, "claude-sonnet-4-6": {MaxCompletionTokens: 64000}, diff --git a/internal/runtime/executor/kiro_executor.go b/internal/runtime/executor/kiro_executor.go index 41a5830c..e1a280b9 100644 --- a/internal/runtime/executor/kiro_executor.go +++ b/internal/runtime/executor/kiro_executor.go @@ -1709,6 +1709,7 @@ func (e *KiroExecutor) mapModelToKiro(model string) string { // Amazon Q format (amazonq- prefix) - same API as Kiro "amazonq-auto": "auto", "amazonq-claude-opus-4-6": "claude-opus-4.6", + "amazonq-claude-sonnet-4-6": "claude-sonnet-4.6", "amazonq-claude-opus-4-5": "claude-opus-4.5", "amazonq-claude-sonnet-4-5": "claude-sonnet-4.5", "amazonq-claude-sonnet-4-5-20250929": "claude-sonnet-4.5", @@ -1717,6 +1718,7 @@ func (e *KiroExecutor) mapModelToKiro(model string) string { "amazonq-claude-haiku-4-5": "claude-haiku-4.5", // Kiro format (kiro- prefix) - valid model names that should be preserved "kiro-claude-opus-4-6": "claude-opus-4.6", + "kiro-claude-sonnet-4-6": "claude-sonnet-4.6", "kiro-claude-opus-4-5": "claude-opus-4.5", "kiro-claude-sonnet-4-5": "claude-sonnet-4.5", "kiro-claude-sonnet-4-5-20250929": "claude-sonnet-4.5", @@ -1727,6 +1729,8 @@ func (e *KiroExecutor) mapModelToKiro(model string) string { // Native format (no prefix) - used by Kiro IDE directly "claude-opus-4-6": "claude-opus-4.6", "claude-opus-4.6": "claude-opus-4.6", + "claude-sonnet-4-6": "claude-sonnet-4.6", + "claude-sonnet-4.6": "claude-sonnet-4.6", "claude-opus-4-5": "claude-opus-4.5", "claude-opus-4.5": "claude-opus-4.5", "claude-haiku-4-5": "claude-haiku-4.5", @@ -1739,11 +1743,13 @@ func (e *KiroExecutor) mapModelToKiro(model string) string { "auto": "auto", // Agentic variants (same backend model IDs, but with special system prompt) "claude-opus-4.6-agentic": "claude-opus-4.6", + "claude-sonnet-4.6-agentic": "claude-sonnet-4.6", "claude-opus-4.5-agentic": "claude-opus-4.5", "claude-sonnet-4.5-agentic": "claude-sonnet-4.5", "claude-sonnet-4-agentic": "claude-sonnet-4", "claude-haiku-4.5-agentic": "claude-haiku-4.5", "kiro-claude-opus-4-6-agentic": "claude-opus-4.6", + "kiro-claude-sonnet-4-6-agentic": "claude-sonnet-4.6", "kiro-claude-opus-4-5-agentic": "claude-opus-4.5", "kiro-claude-sonnet-4-5-agentic": "claude-sonnet-4.5", "kiro-claude-sonnet-4-agentic": "claude-sonnet-4", @@ -1769,6 +1775,10 @@ func (e *KiroExecutor) mapModelToKiro(model string) string { log.Debugf("kiro: unknown Sonnet 3.7 model '%s', mapping to claude-3-7-sonnet-20250219", model) return "claude-3-7-sonnet-20250219" } + if strings.Contains(modelLower, "4-6") || strings.Contains(modelLower, "4.6") { + log.Debugf("kiro: unknown Sonnet 4.6 model '%s', mapping to claude-sonnet-4.6", model) + return "claude-sonnet-4.6" + } if strings.Contains(modelLower, "4-5") || strings.Contains(modelLower, "4.5") { log.Debugf("kiro: unknown Sonnet 4.5 model '%s', mapping to claude-sonnet-4.5", model) return "claude-sonnet-4.5" @@ -1780,6 +1790,10 @@ func (e *KiroExecutor) mapModelToKiro(model string) string { // Check for Opus variants if strings.Contains(modelLower, "opus") { + if strings.Contains(modelLower, "4-6") || strings.Contains(modelLower, "4.6") { + log.Debugf("kiro: unknown Opus 4.6 model '%s', mapping to claude-opus-4.6", model) + return "claude-opus-4.6" + } log.Debugf("kiro: unknown Opus model '%s', mapping to claude-opus-4.5", model) return "claude-opus-4.5" }