From d1f667cf8d1be798f5e60fe35712c570ac682fc2 Mon Sep 17 00:00:00 2001 From: Supra4E8C Date: Sun, 15 Feb 2026 15:21:33 +0800 Subject: [PATCH 1/3] feat(registry): add support for 'kimi' channel in model definitions --- internal/registry/model_definitions.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/registry/model_definitions.go b/internal/registry/model_definitions.go index 585bdf8c..c1796979 100644 --- a/internal/registry/model_definitions.go +++ b/internal/registry/model_definitions.go @@ -19,6 +19,7 @@ import ( // - codex // - qwen // - iflow +// - kimi // - antigravity (returns static overrides only) func GetStaticModelDefinitionsByChannel(channel string) []*ModelInfo { key := strings.ToLower(strings.TrimSpace(channel)) @@ -39,6 +40,8 @@ func GetStaticModelDefinitionsByChannel(channel string) []*ModelInfo { return GetQwenModels() case "iflow": return GetIFlowModels() + case "kimi": + return GetKimiModels() case "antigravity": cfg := GetAntigravityModelConfig() if len(cfg) == 0 { @@ -83,6 +86,7 @@ func LookupStaticModelInfo(modelID string) *ModelInfo { GetOpenAIModels(), GetQwenModels(), GetIFlowModels(), + GetKimiModels(), } for _, models := range allModels { for _, m := range models { From a9d0bb72da12679ada69ac932d60ae10cce48700 Mon Sep 17 00:00:00 2001 From: Supra4E8C Date: Mon, 16 Feb 2026 22:55:37 +0800 Subject: [PATCH 2/3] feat(registry): add Qwen 3.5 Plus model definitions --- internal/registry/model_definitions_static_data.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/registry/model_definitions_static_data.go b/internal/registry/model_definitions_static_data.go index 39b2aa0c..26716804 100644 --- a/internal/registry/model_definitions_static_data.go +++ b/internal/registry/model_definitions_static_data.go @@ -788,6 +788,19 @@ func GetQwenModels() []*ModelInfo { MaxCompletionTokens: 2048, SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"}, }, + { + ID: "coder-model", + Object: "model", + Created: 1771171200, + OwnedBy: "qwen", + Type: "qwen", + Version: "3.5", + DisplayName: "Qwen 3.5 Plus", + Description: "efficient hybrid model with leading coding performance", + ContextLength: 1048576, + MaxCompletionTokens: 65536, + SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"}, + }, { ID: "vision-model", Object: "model", From 453aaf8774a0f6e7c3b122b3138578640b07db9b Mon Sep 17 00:00:00 2001 From: Luis Pater Date: Mon, 16 Feb 2026 23:29:47 +0800 Subject: [PATCH 3/3] chore(runtime): update Qwen executor user agent and headers for compatibility with new runtime standards --- internal/runtime/executor/qwen_executor.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/internal/runtime/executor/qwen_executor.go b/internal/runtime/executor/qwen_executor.go index 28b803ad..69e1f7fa 100644 --- a/internal/runtime/executor/qwen_executor.go +++ b/internal/runtime/executor/qwen_executor.go @@ -22,9 +22,7 @@ import ( ) const ( - qwenUserAgent = "google-api-nodejs-client/9.15.1" - qwenXGoogAPIClient = "gl-node/22.17.0" - qwenClientMetadataValue = "ideType=IDE_UNSPECIFIED,platform=PLATFORM_UNSPECIFIED,pluginType=GEMINI" + qwenUserAgent = "QwenCode/0.10.3 (darwin; arm64)" ) // QwenExecutor is a stateless executor for Qwen Code using OpenAI-compatible chat completions. @@ -344,8 +342,18 @@ func applyQwenHeaders(r *http.Request, token string, stream bool) { r.Header.Set("Content-Type", "application/json") r.Header.Set("Authorization", "Bearer "+token) r.Header.Set("User-Agent", qwenUserAgent) - r.Header.Set("X-Goog-Api-Client", qwenXGoogAPIClient) - r.Header.Set("Client-Metadata", qwenClientMetadataValue) + r.Header.Set("X-Dashscope-Useragent", qwenUserAgent) + r.Header.Set("X-Stainless-Runtime-Version", "v22.17.0") + r.Header.Set("Sec-Fetch-Mode", "cors") + r.Header.Set("X-Stainless-Lang", "js") + r.Header.Set("X-Stainless-Arch", "arm64") + r.Header.Set("X-Stainless-Package-Version", "5.11.0") + r.Header.Set("X-Dashscope-Cachecontrol", "enable") + r.Header.Set("X-Stainless-Retry-Count", "0") + r.Header.Set("X-Stainless-Os", "MacOS") + r.Header.Set("X-Dashscope-Authtype", "qwen-oauth") + r.Header.Set("X-Stainless-Runtime", "node") + if stream { r.Header.Set("Accept", "text/event-stream") return