From b0cde626fe149f20b6c6636afd4c28bf3262fd89 Mon Sep 17 00:00:00 2001 From: Joao Date: Wed, 18 Feb 2026 13:51:23 +0000 Subject: [PATCH] feat: add Claude Sonnet 4.6 model support for Kiro provider --- internal/registry/model_definitions.go | 24 +++++++++++++++++++ .../registry/model_definitions_static_data.go | 13 ++++++++++ internal/runtime/executor/kiro_executor.go | 14 +++++++++++ 3 files changed, 51 insertions(+) diff --git a/internal/registry/model_definitions.go b/internal/registry/model_definitions.go index abd943bc..f585353c 100644 --- a/internal/registry/model_definitions.go +++ b/internal/registry/model_definitions.go @@ -417,6 +417,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", @@ -559,6 +571,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 26716804..d810bcde 100644 --- a/internal/registry/model_definitions_static_data.go +++ b/internal/registry/model_definitions_static_data.go @@ -40,6 +40,18 @@ func GetClaudeModels() []*ModelInfo { MaxCompletionTokens: 128000, Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false}, }, + { + ID: "claude-sonnet-4-6", + Object: "model", + Created: 1739836800, // 2025-02-18 + OwnedBy: "anthropic", + Type: "claude", + DisplayName: "Claude 4.6 Sonnet", + Description: "High-performance model balancing intelligence and speed", + ContextLength: 200000, + MaxCompletionTokens: 64000, + Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false}, + }, { ID: "claude-opus-4-5-20251101", Object: "model", @@ -896,6 +908,7 @@ func GetAntigravityModelConfig() map[string]*AntigravityModelConfig { "claude-sonnet-4-5-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000}, "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}, "gpt-oss-120b-medium": {}, "tab_flash_lite_preview": {}, 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" }