From e81934d0807c6378d7b29dfb793bdf4a58ef2b14 Mon Sep 17 00:00:00 2001 From: wxw <1406771356@qq.com> Date: Mon, 15 Jun 2026 22:02:37 +0800 Subject: [PATCH 1/2] feat(llm): add Tencent TokenHub and Hunyuan Token Plan providers Add OpenAI-compatible presets for TokenHub pay-as-you-go and Hunyuan Token Plan with separate endpoints and API key env vars. --- internal/llm/providers.go | 21 +++++++++++++++++++++ internal/llm/providers_test.go | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/internal/llm/providers.go b/internal/llm/providers.go index 6f9bc77..020873e 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -52,6 +52,7 @@ var registry = []Provider{ Models: []string{ "qwen3.7-max", "qwen3.7-plus", + "qwen3.6-plus", "qwen3.6-flash", }, }, @@ -78,6 +79,26 @@ var registry = []Provider{ "deepseek-v4-flash", }, }, + { + Name: "tokenhub", + DisplayName: "Tencent TokenHub API", + Protocol: "openai", + BaseURL: "https://tokenhub.tencentmaas.com/v1", + EnvVar: "TENCENT_TOKENHUB_API_KEY", + Models: []string{ + "hy3-preview", + }, + }, + { + Name: "hy-tokenplan", + DisplayName: "Tencent Hunyuan Token Plan API", + Protocol: "openai", + BaseURL: "https://api.lkeap.cloud.tencent.com/plan/v3", + EnvVar: "TENCENT_HUNYUAN_TOKENPLAN_KEY", + Models: []string{ + "hy3-preview", + }, + }, { Name: "kimi", DisplayName: "Kimi Moonshot API", diff --git a/internal/llm/providers_test.go b/internal/llm/providers_test.go index d10d4e1..651d3de 100644 --- a/internal/llm/providers_test.go +++ b/internal/llm/providers_test.go @@ -40,7 +40,7 @@ func TestListProviders_Order(t *testing.T) { if len(providers) < 3 { t.Fatalf("expected at least 3 providers, got %d", len(providers)) } - expected := []string{"anthropic", "dashscope", "deepseek", "kimi", "mimo", "minimax", "openai", "volcengine", "z-ai"} + expected := []string{"anthropic", "dashscope", "deepseek", "hy-tokenplan", "kimi", "mimo", "minimax", "openai", "tokenhub", "volcengine", "z-ai"} if len(providers) != len(expected) { t.Fatalf("expected %d providers, got %d", len(expected), len(providers)) } From 14809da23e2df030ae949ac580a24a09d1856212 Mon Sep 17 00:00:00 2001 From: wxw <1406771356@qq.com> Date: Mon, 15 Jun 2026 22:44:54 +0800 Subject: [PATCH 2/2] fix(provider-name): rename tokenhub to tencent-tokenhub --- internal/llm/providers.go | 2 +- internal/llm/providers_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/llm/providers.go b/internal/llm/providers.go index 020873e..38afebd 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -80,7 +80,7 @@ var registry = []Provider{ }, }, { - Name: "tokenhub", + Name: "tencent-tokenhub", DisplayName: "Tencent TokenHub API", Protocol: "openai", BaseURL: "https://tokenhub.tencentmaas.com/v1", diff --git a/internal/llm/providers_test.go b/internal/llm/providers_test.go index 651d3de..7a08bc2 100644 --- a/internal/llm/providers_test.go +++ b/internal/llm/providers_test.go @@ -40,7 +40,7 @@ func TestListProviders_Order(t *testing.T) { if len(providers) < 3 { t.Fatalf("expected at least 3 providers, got %d", len(providers)) } - expected := []string{"anthropic", "dashscope", "deepseek", "hy-tokenplan", "kimi", "mimo", "minimax", "openai", "tokenhub", "volcengine", "z-ai"} + expected := []string{"anthropic", "dashscope", "deepseek", "hy-tokenplan", "kimi", "mimo", "minimax", "openai", "tencent-tokenhub", "volcengine", "z-ai"} if len(providers) != len(expected) { t.Fatalf("expected %d providers, got %d", len(expected), len(providers)) }