diff --git a/internal/llm/providers.go b/internal/llm/providers.go index 1f80f27..1a4e93c 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -33,6 +33,8 @@ var registry = []Provider{ AuthHeader: "x-api-key", EnvVar: "ANTHROPIC_API_KEY", Models: []string{ + "claude-opus-5", + "claude-sonnet-5", "claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6", @@ -80,6 +82,7 @@ var registry = []Provider{ BaseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1", EnvVar: "DASHSCOPE_API_KEY", Models: []string{ + "qwen3.8-max", "qwen3.7-max", "qwen3.7-plus", "qwen3.6-plus", @@ -98,6 +101,7 @@ var registry = []Provider{ BaseURL: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", EnvVar: "DASHSCOPE_TOKENPLAN_KEY", Models: []string{ + "qwen3.8-max", "qwen3.7-max", "qwen3.7-plus", "qwen3.6-plus", @@ -146,7 +150,6 @@ var registry = []Provider{ BaseURL: "https://tokenhub.tencentmaas.com/v1", EnvVar: "TENCENT_TOKENHUB_API_KEY", Models: []string{ - "hy3-preview", "deepseek-v4-pro", "deepseek-v4-flash", "glm-5.2", @@ -154,11 +157,10 @@ var registry = []Provider{ "glm-5", "glm-5-turbo", "kimi-k2.7-code", + "kimi-k2.7-code-highspeed", "kimi-k2.6", - "kimi-k2.5", "minimax-m3", "minimax-m2.7", - "minimax-m2.5", }, }, { @@ -168,7 +170,7 @@ var registry = []Provider{ BaseURL: "https://api.lkeap.cloud.tencent.com/plan/v3", EnvVar: "TENCENT_HUNYUAN_TOKENPLAN_KEY", Models: []string{ - "hy3-preview", + "hy3", }, }, { @@ -193,6 +195,7 @@ var registry = []Provider{ BaseURL: "https://api.moonshot.cn/v1", EnvVar: "MOONSHOT_API_KEY", Models: []string{ + "kimi-k3", "kimi-k2.7-code", "kimi-k2.7-code-highspeed", "kimi-k2.6", diff --git a/internal/llm/providers_test.go b/internal/llm/providers_test.go index a5f0cc5..1c24f93 100644 --- a/internal/llm/providers_test.go +++ b/internal/llm/providers_test.go @@ -76,7 +76,14 @@ func TestLookupProvider_PreservesModelOrder(t *testing.T) { if !ok { t.Fatal("anthropic not found") } - expected := []string{"claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6", "claude-sonnet-4-6"} + expected := []string{ + "claude-opus-5", + "claude-sonnet-5", + "claude-opus-4-8", + "claude-opus-4-7", + "claude-opus-4-6", + "claude-sonnet-4-6", + } if len(p.Models) != len(expected) { t.Fatalf("expected %d models, got %d", len(expected), len(p.Models)) }