diff --git a/src/cli/__snapshots__/model-fallback.test.ts.snap b/src/cli/__snapshots__/model-fallback.test.ts.snap index fbdf7fad3..57d897bac 100644 --- a/src/cli/__snapshots__/model-fallback.test.ts.snap +++ b/src/cli/__snapshots__/model-fallback.test.ts.snap @@ -4138,7 +4138,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "atlas": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/openai/gpt-5.5", @@ -4189,7 +4189,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/anthropic/claude-opus-4.7", @@ -4206,7 +4206,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4215,7 +4215,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "multimodal-looker": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/zai/glm-4.6v", @@ -4238,7 +4238,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4251,7 +4251,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, { "model": "vercel/google/gemini-3.1-pro-preview", @@ -4262,6 +4262,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin }, "sisyphus": { "fallback_models": [ + { + "model": "vercel/moonshotai/kimi-k2.6", + }, { "model": "vercel/moonshotai/kimi-k2.5", }, @@ -4279,7 +4282,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "sisyphus-junior": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/openai/gpt-5.5", @@ -4348,7 +4351,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4361,7 +4364,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "medium", }, { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/google/gemini-3-flash", @@ -4379,7 +4382,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "medium", }, { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/google/gemini-3-flash", @@ -4399,6 +4402,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/anthropic/claude-opus-4.7", "variant": "max", }, + { + "model": "vercel/zai/glm-5.1", + }, ], "model": "vercel/google/gemini-3.1-pro-preview", "variant": "high", @@ -4406,7 +4412,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "writing": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/anthropic/claude-sonnet-4.6", @@ -4428,7 +4434,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "atlas": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/openai/gpt-5.5", @@ -4479,7 +4485,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/anthropic/claude-opus-4.7", @@ -4496,7 +4502,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4505,7 +4511,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "multimodal-looker": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/zai/glm-4.6v", @@ -4528,7 +4534,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4541,7 +4547,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, { "model": "vercel/google/gemini-3.1-pro-preview", @@ -4552,6 +4558,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin }, "sisyphus": { "fallback_models": [ + { + "model": "vercel/moonshotai/kimi-k2.6", + }, { "model": "vercel/moonshotai/kimi-k2.5", }, @@ -4569,7 +4578,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "sisyphus-junior": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/openai/gpt-5.5", @@ -4638,7 +4647,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4653,6 +4662,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin { "model": "vercel/zai/glm-5", }, + { + "model": "vercel/zai/glm-5.1", + }, { "model": "vercel/moonshotai/kimi-k2.5", }, @@ -4667,7 +4679,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "medium", }, { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/google/gemini-3-flash", @@ -4687,6 +4699,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/anthropic/claude-opus-4.7", "variant": "max", }, + { + "model": "vercel/zai/glm-5.1", + }, ], "model": "vercel/google/gemini-3.1-pro-preview", "variant": "high", @@ -4694,7 +4709,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "writing": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/anthropic/claude-sonnet-4.6", diff --git a/src/cli/config-manager/plugin-detection.test.ts b/src/cli/config-manager/plugin-detection.test.ts index fcd6109f9..e4ebd1b6e 100644 --- a/src/cli/config-manager/plugin-detection.test.ts +++ b/src/cli/config-manager/plugin-detection.test.ts @@ -54,7 +54,7 @@ describe("detectCurrentConfig - single package detection", () => { it("detects OpenCode Go from the existing omo config", () => { // given writeFileSync(testConfigPath, JSON.stringify({ plugin: ["oh-my-opencode"] }, null, 2) + "\n", "utf-8") - writeFileSync(testOmoConfigPath, JSON.stringify({ agents: { atlas: { model: "opencode-go/kimi-k2.5" } } }, null, 2) + "\n", "utf-8") + writeFileSync(testOmoConfigPath, JSON.stringify({ agents: { atlas: { model: "opencode-go/kimi-k2.6" } } }, null, 2) + "\n", "utf-8") // when const result = detectCurrentConfig() diff --git a/src/cli/doctor/checks/model-resolution-config.test.ts b/src/cli/doctor/checks/model-resolution-config.test.ts index 124d35242..189084e02 100644 --- a/src/cli/doctor/checks/model-resolution-config.test.ts +++ b/src/cli/doctor/checks/model-resolution-config.test.ts @@ -31,13 +31,13 @@ describe("model-resolution-config", () => { process.env.OPENCODE_CONFIG_DIR = testConfigDir writeFileSync( join(testConfigDir, "oh-my-openagent.json"), - JSON.stringify({ agents: { atlas: { model: "opencode-go/kimi-k2.5" } } }, null, 2) + "\n", + JSON.stringify({ agents: { atlas: { model: "opencode-go/kimi-k2.6" } } }, null, 2) + "\n", "utf-8", ) const config = loadOmoConfig() - expect(config?.agents?.atlas?.model).toBe("opencode-go/kimi-k2.5") + expect(config?.agents?.atlas?.model).toBe("opencode-go/kimi-k2.6") } finally { rmSync(testConfigDir, { recursive: true, force: true }) } diff --git a/src/hooks/model-fallback/hook.test.ts b/src/hooks/model-fallback/hook.test.ts index b12eee1cd..e2f2c850f 100644 --- a/src/hooks/model-fallback/hook.test.ts +++ b/src/hooks/model-fallback/hook.test.ts @@ -163,7 +163,7 @@ describe("model fallback hook", () => { expect(secondOutput.message["model"]).toEqual({ providerID: "opencode-go", - modelID: "kimi-k2.5", + modelID: "kimi-k2.6", }) expect(secondOutput.message["variant"]).toBeUndefined() }) diff --git a/src/plugin-handlers/prometheus-agent-config-builder.test.ts b/src/plugin-handlers/prometheus-agent-config-builder.test.ts index 8c77f562d..791fe0cc1 100644 --- a/src/plugin-handlers/prometheus-agent-config-builder.test.ts +++ b/src/plugin-handlers/prometheus-agent-config-builder.test.ts @@ -103,12 +103,12 @@ describe("buildPrometheusAgentConfig", () => { expect(result).toBeDefined(); }); - test("accepts glm-5 from fallback chain", async () => { + test("accepts glm-5.1 from fallback chain", async () => { const result = await buildPrometheusAgentConfig({ configAgentPlan: undefined, pluginPrometheusOverride: undefined, userCategories: undefined, - currentModel: "opencode-go/glm-5", + currentModel: "opencode-go/glm-5.1", }); expect(result).toBeDefined(); }); diff --git a/src/plugin/event.model-fallback.test.ts b/src/plugin/event.model-fallback.test.ts index 967608f09..3ff82ae20 100644 --- a/src/plugin/event.model-fallback.test.ts +++ b/src/plugin/event.model-fallback.test.ts @@ -222,7 +222,7 @@ describe("createEventHandler - model fallback", () => { expect(promptCalls).toEqual([sessionID]) expect(output.message["model"]).toMatchObject({ providerID: "opencode-go", - modelID: "kimi-k2.5", + modelID: "kimi-k2.6", }) expect(output.message["variant"]).toBeUndefined() }) @@ -549,14 +549,14 @@ describe("createEventHandler - model fallback", () => { //#then - first fallback entry applied (no-op skip: claude-opus-4-7 matches current model after normalization) expect(first.message["model"]).toMatchObject({ providerID: "opencode-go", - modelID: "kimi-k2.5", + modelID: "kimi-k2.6", }) expect(first.message["variant"]).toBeUndefined() //#when - second retry cycle const second = await triggerRetryCycle() - //#then - second fallback entry applied (chain advanced past opencode-go/kimi-k2.5) + //#then - second fallback entry applied (chain advanced past opencode-go/kimi-k2.6) expect(second.message["model"]).toMatchObject({ providerID: "kimi-for-coding", modelID: "k2p5", diff --git a/src/shared/model-requirements.test.ts b/src/shared/model-requirements.test.ts index ed5f90f90..33d53fea1 100644 --- a/src/shared/model-requirements.test.ts +++ b/src/shared/model-requirements.test.ts @@ -41,7 +41,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const second = sisyphus.fallbackChain[1] expect(second.providers).toEqual(["opencode-go", "vercel"]) - expect(second.model).toBe("kimi-k2.5") + expect(second.model).toBe("kimi-k2.6") const third = sisyphus.fallbackChain[2] expect(third.providers).toEqual(["kimi-for-coding"]) @@ -138,7 +138,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const multimodalLooker = AGENT_MODEL_REQUIREMENTS["multimodal-looker"] // when - accessing multimodal-looker requirement - // then - fallbackChain: gpt-5.5 -> opencode-go/kimi-k2.5 -> glm-4.6v -> gpt-5-nano + // then - fallbackChain: gpt-5.5 -> opencode-go/kimi-k2.6 -> glm-4.6v -> gpt-5-nano expect(multimodalLooker).toBeDefined() expect(multimodalLooker.fallbackChain).toBeArray() expect(multimodalLooker.fallbackChain).toHaveLength(4) @@ -150,7 +150,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const secondary = multimodalLooker.fallbackChain[1] expect(secondary.providers).toEqual(["opencode-go", "vercel"]) - expect(secondary.model).toBe("kimi-k2.5") + expect(secondary.model).toBe("kimi-k2.6") const tertiary = multimodalLooker.fallbackChain[2] expect(tertiary.model).toBe("glm-4.6v") @@ -230,7 +230,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { expect(primary.providers[0]).toBe("anthropic") const secondary = atlas.fallbackChain[1] - expect(secondary.model).toBe("kimi-k2.5") + expect(secondary.model).toBe("kimi-k2.6") expect(secondary.providers[0]).toBe("opencode-go") const tertiary = atlas.fallbackChain[2] @@ -353,7 +353,7 @@ describe("CATEGORY_MODEL_REQUIREMENTS", () => { const visualEngineering = CATEGORY_MODEL_REQUIREMENTS["visual-engineering"] // when - accessing visual-engineering requirement - // then - fallbackChain: gemini-3.1-pro(high) → glm-5 → opus-4-6(max) → opencode-go/glm-5 → k2p5 + // then - fallbackChain: gemini-3.1-pro(high) → glm-5 → opus-4-6(max) → opencode-go/glm-5.1 → k2p5 expect(visualEngineering).toBeDefined() expect(visualEngineering.fallbackChain).toBeArray() expect(visualEngineering.fallbackChain).toHaveLength(5) @@ -373,7 +373,7 @@ describe("CATEGORY_MODEL_REQUIREMENTS", () => { const fourth = visualEngineering.fallbackChain[3] expect(fourth.providers[0]).toBe("opencode-go") - expect(fourth.model).toBe("glm-5") + expect(fourth.model).toBe("glm-5.1") const fifth = visualEngineering.fallbackChain[4] expect(fifth.providers[0]).toBe("kimi-for-coding") @@ -466,7 +466,7 @@ describe("CATEGORY_MODEL_REQUIREMENTS", () => { expect(primary.providers[0]).toBe("google") const second = writing.fallbackChain[1] - expect(second.model).toBe("kimi-k2.5") + expect(second.model).toBe("kimi-k2.6") expect(second.providers[0]).toBe("opencode-go") const third = writing.fallbackChain[2] diff --git a/src/shared/model-requirements.ts b/src/shared/model-requirements.ts index d5c67849f..a137c5895 100644 --- a/src/shared/model-requirements.ts +++ b/src/shared/model-requirements.ts @@ -25,7 +25,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "claude-opus-4-7", variant: "max", }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["kimi-for-coding"], model: "k2p5" }, { providers: [ @@ -72,7 +72,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "claude-opus-4-7", variant: "max", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, ], }, librarian: { @@ -98,7 +98,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { "multimodal-looker": { fallbackChain: [ { providers: ["openai", "opencode", "vercel"], model: "gpt-5.5", variant: "medium" }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["zai-coding-plan", "vercel"], model: "glm-4.6v" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5-nano" }, ], @@ -115,7 +115,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "gpt-5.5", variant: "high", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, { providers: ["google", "github-copilot", "opencode", "vercel"], model: "gemini-3.1-pro", @@ -134,7 +134,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "gpt-5.5", variant: "high", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, { providers: ["kimi-for-coding"], model: "k2p5" }, ], }, @@ -155,13 +155,13 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "gemini-3.1-pro", variant: "high", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, ], }, atlas: { fallbackChain: [ { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5", @@ -173,7 +173,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { "sisyphus-junior": { fallbackChain: [ { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5", @@ -199,7 +199,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { model: "claude-opus-4-7", variant: "max", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, { providers: ["kimi-for-coding"], model: "k2p5" }, ], }, @@ -220,7 +220,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { model: "claude-opus-4-7", variant: "max", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, ], }, deep: { @@ -286,7 +286,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { model: "gpt-5.3-codex", variant: "medium", }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["google", "github-copilot", "opencode", "vercel"], model: "gemini-3-flash", @@ -308,7 +308,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { }, { providers: ["zai-coding-plan", "opencode", "vercel"], model: "glm-5" }, { providers: ["kimi-for-coding"], model: "k2p5" }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, { providers: ["opencode", "vercel"], model: "kimi-k2.5" }, { providers: [ @@ -330,7 +330,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { providers: ["google", "github-copilot", "opencode", "vercel"], model: "gemini-3-flash", }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6", diff --git a/src/tools/delegate-task/sync-task.test.ts b/src/tools/delegate-task/sync-task.test.ts index e032f11aa..bd346b8f0 100644 --- a/src/tools/delegate-task/sync-task.test.ts +++ b/src/tools/delegate-task/sync-task.test.ts @@ -272,7 +272,7 @@ describe("executeSyncTask - cleanup on error paths", () => { } const fallbackChain = [ { providers: ["anthropic"], model: "claude-opus-4-7", variant: "max" }, - { providers: ["opencode-go"], model: "kimi-k2.5" }, + { providers: ["opencode-go"], model: "kimi-k2.6" }, ] //#when @@ -282,10 +282,10 @@ describe("executeSyncTask - cleanup on error paths", () => { //#then expect(result).toContain("Task completed") - expect(result).toContain("Model: opencode-go/kimi-k2.5") + expect(result).toContain("Model: opencode-go/kimi-k2.6") expect(attemptedModels).toEqual([ { providerID: "anthropic", modelID: "claude-opus-4-7", variant: "max" }, - { providerID: "opencode-go", modelID: "kimi-k2.5", variant: undefined }, + { providerID: "opencode-go", modelID: "kimi-k2.6", variant: undefined }, ]) }) @@ -339,7 +339,7 @@ describe("executeSyncTask - cleanup on error paths", () => { } const fallbackChain = [ { providers: ["anthropic"], model: "claude-opus-4-7", variant: "max" }, - { providers: ["opencode-go"], model: "kimi-k2.5" }, + { providers: ["opencode-go"], model: "kimi-k2.6" }, { providers: ["openai"], model: "gpt-5.4", variant: "medium" }, ] @@ -352,7 +352,7 @@ describe("executeSyncTask - cleanup on error paths", () => { expect(result).toBe("Final failure") expect(attemptedModels).toEqual([ { providerID: "anthropic", modelID: "claude-opus-4-7", variant: "max" }, - { providerID: "opencode-go", modelID: "kimi-k2.5", variant: undefined }, + { providerID: "opencode-go", modelID: "kimi-k2.6", variant: undefined }, { providerID: "openai", modelID: "gpt-5.4", variant: "medium" }, ]) })