From ace3fd7e301baf3bcc9d2de1ddf81533f3161954 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Wed, 6 May 2026 11:34:49 +0200 Subject: [PATCH] fix(ai): normalize kimi k2p6 alias to kimi-for-coding closes #4218 --- packages/ai/scripts/generate-models.ts | 12 +++++++----- packages/ai/src/models.generated.ts | 18 ------------------ 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/packages/ai/scripts/generate-models.ts b/packages/ai/scripts/generate-models.ts index e9c17322..ab4cdd19 100644 --- a/packages/ai/scripts/generate-models.ts +++ b/packages/ai/scripts/generate-models.ts @@ -857,15 +857,17 @@ async function loadModelsDevData(): Promise[]> { const kimiModels = data["kimi-for-coding"].models as Record; const hasCanonicalModel = Object.prototype.hasOwnProperty.call(kimiModels, "kimi-for-coding"); + const kimiAliases = new Set(["k2p5", "k2p6"]); + for (const [modelId, model] of Object.entries(kimiModels)) { const m = model as ModelsDevModel; if (m.tool_call !== true) continue; - // models.dev still exposes deprecated "k2p5" in some snapshots. - // Normalize to the canonical model id and drop duplicates when canonical exists. - if (modelId === "k2p5" && hasCanonicalModel) continue; + // models.dev may expose versioned aliases (e.g. k2p5/k2p6). + // Normalize aliases to the canonical model id and drop duplicates when canonical exists. + if (kimiAliases.has(modelId) && hasCanonicalModel) continue; - const normalizedId = modelId === "k2p5" ? "kimi-for-coding" : modelId; - const normalizedName = modelId === "k2p5" ? "Kimi For Coding" : m.name || normalizedId; + const normalizedId = kimiAliases.has(modelId) ? "kimi-for-coding" : modelId; + const normalizedName = kimiAliases.has(modelId) ? "Kimi For Coding" : m.name || normalizedId; models.push({ id: normalizedId, diff --git a/packages/ai/src/models.generated.ts b/packages/ai/src/models.generated.ts index 73a41499..abca6a23 100644 --- a/packages/ai/src/models.generated.ts +++ b/packages/ai/src/models.generated.ts @@ -5819,24 +5819,6 @@ export const MODELS = { } satisfies Model<"openai-completions">, }, "kimi-coding": { - "k2p6": { - id: "k2p6", - name: "Kimi K2.6", - api: "anthropic-messages", - provider: "kimi-coding", - baseUrl: "https://api.kimi.com/coding", - headers: {"User-Agent":"KimiCLI/1.5"}, - reasoning: true, - input: ["text", "image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 262144, - maxTokens: 32768, - } satisfies Model<"anthropic-messages">, "kimi-for-coding": { id: "kimi-for-coding", name: "Kimi For Coding",