diff --git a/changelog.d/fixes/kimi-cli-2-1-1.md b/changelog.d/fixes/kimi-cli-2-1-1.md new file mode 100644 index 00000000000..ce8229c60c9 --- /dev/null +++ b/changelog.d/fixes/kimi-cli-2-1-1.md @@ -0,0 +1 @@ +- **fix(providers):** advertise the Kimi Code CLI version 2.1.1. The pinned constant was still 0.26.0, so the `X-Msh-Version` and `User-Agent` headers OmniRoute sends to api.kimi.com trailed the real CLI by two major versions. `KIMI_CLI_VERSION` still overrides the pin per deployment. diff --git a/open-sse/config/providers/registry/kimi/coding/runtime.ts b/open-sse/config/providers/registry/kimi/coding/runtime.ts index dfd469658e1..8c6a19ae443 100644 --- a/open-sse/config/providers/registry/kimi/coding/runtime.ts +++ b/open-sse/config/providers/registry/kimi/coding/runtime.ts @@ -4,7 +4,7 @@ export const KIMI_CODING_OPENAI_URL = `${KIMI_CODING_BASE_URL}/chat/completions` export const KIMI_CODING_ANTHROPIC_URL = `${KIMI_CODING_BASE_URL}/messages?beta=true`; export const KIMI_CODE_CLI_PLATFORM = "kimi_code_cli"; -export const KIMI_CODE_CLI_VERSION = "0.26.0"; +export const KIMI_CODE_CLI_VERSION = "2.1.1"; export type KimiCodeThinkingPolicy = { supportsThinking: boolean; diff --git a/tests/unit/executor-kimi.test.ts b/tests/unit/executor-kimi.test.ts index 00a95b1b0d8..3682fcf02c5 100644 --- a/tests/unit/executor-kimi.test.ts +++ b/tests/unit/executor-kimi.test.ts @@ -89,9 +89,9 @@ describe("KimiExecutor", () => { assert.equal(headers.Authorization, "Bearer oauth-token"); assert.equal(headers["x-api-key"], undefined); assert.equal(headers["X-Msh-Platform"], "kimi_code_cli"); - assert.equal(headers["X-Msh-Version"], "0.26.0"); + assert.equal(headers["X-Msh-Version"], "2.1.1"); assert.equal(headers["X-Msh-Device-Id"], "12345678-1234-1234-1234-1234567890ab"); - assert.equal(headers["User-Agent"], "kimi-code-cli/0.26.0"); + assert.equal(headers["User-Agent"], "kimi-code-cli/2.1.1"); }); it("routes Anthropic-protocol models to beta Messages with x-api-key", () => { diff --git a/tests/unit/kimi-coding-apikey-quota-4435.test.ts b/tests/unit/kimi-coding-apikey-quota-4435.test.ts index 63d24e1c074..d8cb2912997 100644 --- a/tests/unit/kimi-coding-apikey-quota-4435.test.ts +++ b/tests/unit/kimi-coding-apikey-quota-4435.test.ts @@ -70,9 +70,9 @@ test("kimi-coding (OAuth) keeps Bearer + device headers (not x-api-key)", async assert.ok(call, "kimi /usages endpoint should be called for kimi-coding"); assert.equal(call.headers["Authorization"], "Bearer tok-abc"); assert.equal(call.headers["X-Msh-Platform"], "kimi_code_cli"); - assert.equal(call.headers["X-Msh-Version"], "0.26.0"); + assert.equal(call.headers["X-Msh-Version"], "2.1.1"); assert.equal(call.headers["X-Msh-Device-Id"], "12345678-1234-1234-1234-1234567890ab"); - assert.equal(call.headers["User-Agent"], "kimi-code-cli/0.26.0"); + assert.equal(call.headers["User-Agent"], "kimi-code-cli/2.1.1"); assert.equal(call.headers["x-api-key"], undefined); }); diff --git a/tests/unit/kimi-coding-model-discovery.test.ts b/tests/unit/kimi-coding-model-discovery.test.ts index 7d3899ddbe5..b9cc22d24a7 100644 --- a/tests/unit/kimi-coding-model-discovery.test.ts +++ b/tests/unit/kimi-coding-model-discovery.test.ts @@ -120,9 +120,9 @@ test("Kimi Code discovery uses OAuth CLI identity while the hidden legacy path k assert.equal(oauthHeaders?.Authorization, "Bearer oauth-token"); assert.equal(oauthHeaders?.Accept, "application/json"); assert.equal(oauthHeaders?.["X-Msh-Platform"], "kimi_code_cli"); - assert.equal(oauthHeaders?.["X-Msh-Version"], "0.26.0"); + assert.equal(oauthHeaders?.["X-Msh-Version"], "2.1.1"); assert.equal(oauthHeaders?.["X-Msh-Device-Id"], "12345678-1234-1234-1234-1234567890ab"); - assert.equal(oauthHeaders?.["User-Agent"], "kimi-code-cli/0.26.0"); + assert.equal(oauthHeaders?.["User-Agent"], "kimi-code-cli/2.1.1"); const primaryApiKeyHeaders = PROVIDER_MODELS_CONFIG["kimi-coding"].buildHeaders?.("api-key", { authType: "apikey",