diff --git a/packages/ai/test/abort.test.ts b/packages/ai/test/abort.test.ts index fb3ab7e10..7074a662f 100644 --- a/packages/ai/test/abort.test.ts +++ b/packages/ai/test/abort.test.ts @@ -214,7 +214,7 @@ describe("AI Providers Abort Tests", () => { }); describe.skipIf(!process.env.XIAOMI_API_KEY)("Xiaomi MiMo (API billing) Provider Abort", () => { - const llm = getModel("xiaomi", "mimo-v2.5-pro"); + const llm = getModel("xiaomi", "mimo-v2.6-pro"); it("should abort mid-stream", { retry: 3 }, async () => { await testAbortSignal(llm); @@ -226,7 +226,7 @@ describe("AI Providers Abort Tests", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY)("Xiaomi MiMo Token Plan (CN) Provider Abort", () => { - const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.6-pro"); it("should abort mid-stream", { retry: 3 }, async () => { await testAbortSignal(llm); @@ -238,7 +238,7 @@ describe("AI Providers Abort Tests", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY)("Xiaomi MiMo Token Plan (AMS) Provider Abort", () => { - const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.6-pro"); it("should abort mid-stream", { retry: 3 }, async () => { await testAbortSignal(llm); @@ -250,7 +250,7 @@ describe("AI Providers Abort Tests", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY)("Xiaomi MiMo Token Plan (SGP) Provider Abort", () => { - const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.6-pro"); it("should abort mid-stream", { retry: 3 }, async () => { await testAbortSignal(llm); diff --git a/packages/ai/test/anthropic-empty-thinking-signature-compat.test.ts b/packages/ai/test/anthropic-empty-thinking-signature-compat.test.ts index 7659ea0b4..7dc38ca7d 100644 --- a/packages/ai/test/anthropic-empty-thinking-signature-compat.test.ts +++ b/packages/ai/test/anthropic-empty-thinking-signature-compat.test.ts @@ -18,7 +18,7 @@ class PayloadCaptured extends Error { function makeModel(allowEmptySignature?: boolean): Model<"anthropic-messages"> { return { - id: "mimo-v2.5-pro", + id: "mimo-v2.6-pro", name: "MiMo-V2.5-Pro", api: "anthropic-messages", provider: "xiaomi-token-plan-ams", @@ -36,7 +36,7 @@ function makeContext( thinkingSignature: string, thinking = "internal reasoning", provider = "xiaomi-token-plan-ams", - model = "mimo-v2.5-pro", + model = "mimo-v2.6-pro", ): Context { const assistant: AssistantMessage = { role: "assistant", diff --git a/packages/ai/test/context-overflow.test.ts b/packages/ai/test/context-overflow.test.ts index b121ede2d..5ab84eaab 100644 --- a/packages/ai/test/context-overflow.test.ts +++ b/packages/ai/test/context-overflow.test.ts @@ -420,8 +420,8 @@ describe("Context overflow error handling", () => { // Xiaomi silently truncates oversized input to fill the context window exactly, // then returns finish_reason "length" with output=0 (no room left to generate). // This is a detectable overflow signal but uses stopReason "length" rather than "error". - it("mimo-v2.5-pro - should detect overflow via isContextOverflow", async () => { - const model = getModel("xiaomi", "mimo-v2.5-pro"); + it("mimo-v2.6-pro - should detect overflow via isContextOverflow", async () => { + const model = getModel("xiaomi", "mimo-v2.6-pro"); const result = await testContextOverflow(model, process.env.XIAOMI_API_KEY!); logResult(result); @@ -432,8 +432,8 @@ describe("Context overflow error handling", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY)("Xiaomi MiMo Token Plan (CN)", () => { - it("mimo-v2.5-pro - should detect overflow via isContextOverflow", async () => { - const model = getModel("xiaomi-token-plan-cn", "mimo-v2.5-pro"); + it("mimo-v2.6-pro - should detect overflow via isContextOverflow", async () => { + const model = getModel("xiaomi-token-plan-cn", "mimo-v2.6-pro"); const result = await testContextOverflow(model, process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY!); logResult(result); @@ -444,8 +444,8 @@ describe("Context overflow error handling", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY)("Xiaomi MiMo Token Plan (AMS)", () => { - it("mimo-v2.5-pro - should detect overflow via isContextOverflow", async () => { - const model = getModel("xiaomi-token-plan-ams", "mimo-v2.5-pro"); + it("mimo-v2.6-pro - should detect overflow via isContextOverflow", async () => { + const model = getModel("xiaomi-token-plan-ams", "mimo-v2.6-pro"); const result = await testContextOverflow(model, process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY!); logResult(result); @@ -456,8 +456,8 @@ describe("Context overflow error handling", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY)("Xiaomi MiMo Token Plan (SGP)", () => { - it("mimo-v2.5-pro - should detect overflow via isContextOverflow", async () => { - const model = getModel("xiaomi-token-plan-sgp", "mimo-v2.5-pro"); + it("mimo-v2.6-pro - should detect overflow via isContextOverflow", async () => { + const model = getModel("xiaomi-token-plan-sgp", "mimo-v2.6-pro"); const result = await testContextOverflow(model, process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY!); logResult(result); diff --git a/packages/ai/test/cross-provider-handoff.test.ts b/packages/ai/test/cross-provider-handoff.test.ts index 4f250becf..bb5741986 100644 --- a/packages/ai/test/cross-provider-handoff.test.ts +++ b/packages/ai/test/cross-provider-handoff.test.ts @@ -130,10 +130,10 @@ const PROVIDER_MODEL_PAIRS: ProviderModelPair[] = [ { provider: "opencode-go", model: "kimi-k2.5", label: "go-kimi-k2.5" }, { provider: "opencode-go", model: "minimax-m2.5", label: "go-minimax-m2.5" }, // Xiaomi MiMo - { provider: "xiaomi", model: "mimo-v2.5-pro", label: "xiaomi-mimo-v2.5-pro" }, - { provider: "xiaomi-token-plan-cn", model: "mimo-v2.5-pro", label: "xiaomi-token-plan-cn-mimo-v2.5-pro" }, - { provider: "xiaomi-token-plan-ams", model: "mimo-v2.5-pro", label: "xiaomi-token-plan-ams-mimo-v2.5-pro" }, - { provider: "xiaomi-token-plan-sgp", model: "mimo-v2.5-pro", label: "xiaomi-token-plan-sgp-mimo-v2.5-pro" }, + { provider: "xiaomi", model: "mimo-v2.6-pro", label: "xiaomi-mimo-v2.6-pro" }, + { provider: "xiaomi-token-plan-cn", model: "mimo-v2.6-pro", label: "xiaomi-token-plan-cn-mimo-v2.6-pro" }, + { provider: "xiaomi-token-plan-ams", model: "mimo-v2.6-pro", label: "xiaomi-token-plan-ams-mimo-v2.6-pro" }, + { provider: "xiaomi-token-plan-sgp", model: "mimo-v2.6-pro", label: "xiaomi-token-plan-sgp-mimo-v2.6-pro" }, // Qwen Token Plan { provider: "qwen-token-plan", model: "qwen3.7-max", label: "qwen-token-plan-qwen3.7-max" }, { provider: "qwen-token-plan-cn", model: "qwen3.7-max", label: "qwen-token-plan-cn-qwen3.7-max" }, diff --git a/packages/ai/test/empty.test.ts b/packages/ai/test/empty.test.ts index e8a684238..acd750d50 100644 --- a/packages/ai/test/empty.test.ts +++ b/packages/ai/test/empty.test.ts @@ -468,7 +468,7 @@ describe("AI Providers Empty Message Tests", () => { }); describe.skipIf(!process.env.XIAOMI_API_KEY)("Xiaomi MiMo (API billing) Provider Empty Messages", () => { - const llm = getModel("xiaomi", "mimo-v2.5-pro"); + const llm = getModel("xiaomi", "mimo-v2.6-pro"); it("should handle empty content array", { retry: 3, timeout: 30000 }, async () => { await testEmptyMessage(llm); @@ -490,7 +490,7 @@ describe("AI Providers Empty Message Tests", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY)( "Xiaomi MiMo Token Plan (CN) Provider Empty Messages", () => { - const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.6-pro"); it("should handle empty content array", { retry: 3, timeout: 30000 }, async () => { await testEmptyMessage(llm); @@ -513,7 +513,7 @@ describe("AI Providers Empty Message Tests", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY)( "Xiaomi MiMo Token Plan (AMS) Provider Empty Messages", () => { - const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.6-pro"); it("should handle empty content array", { retry: 3, timeout: 30000 }, async () => { await testEmptyMessage(llm); @@ -536,7 +536,7 @@ describe("AI Providers Empty Message Tests", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY)( "Xiaomi MiMo Token Plan (SGP) Provider Empty Messages", () => { - const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.6-pro"); it("should handle empty content array", { retry: 3, timeout: 30000 }, async () => { await testEmptyMessage(llm); diff --git a/packages/ai/test/image-tool-result.test.ts b/packages/ai/test/image-tool-result.test.ts index 2f7897f85..02dbdb932 100644 --- a/packages/ai/test/image-tool-result.test.ts +++ b/packages/ai/test/image-tool-result.test.ts @@ -324,8 +324,8 @@ describe("Tool Results with Images", () => { }); }); - describe.skipIf(!process.env.XIAOMI_API_KEY)("Xiaomi MiMo (API billing) Provider (mimo-v2.5-pro)", () => { - const llm = getModel("xiaomi", "mimo-v2.5-pro"); + describe.skipIf(!process.env.XIAOMI_API_KEY)("Xiaomi MiMo (API billing) Provider (mimo-v2.6-pro)", () => { + const llm = getModel("xiaomi", "mimo-v2.6-pro"); it("should handle tool result with only image", { retry: 3, timeout: 30000 }, async () => { await handleToolWithImageResult(llm); @@ -344,9 +344,9 @@ describe("Tool Results with Images", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY)( - "Xiaomi MiMo Token Plan (CN) Provider (mimo-v2.5-pro)", + "Xiaomi MiMo Token Plan (CN) Provider (mimo-v2.6-pro)", () => { - const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.6-pro"); it("should handle tool result with only image", { retry: 3, timeout: 30000 }, async () => { await handleToolWithImageResult(llm); @@ -361,9 +361,9 @@ describe("Tool Results with Images", () => { ); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY)( - "Xiaomi MiMo Token Plan (AMS) Provider (mimo-v2.5-pro)", + "Xiaomi MiMo Token Plan (AMS) Provider (mimo-v2.6-pro)", () => { - const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.6-pro"); it("should handle tool result with only image", { retry: 3, timeout: 30000 }, async () => { await handleToolWithImageResult(llm); @@ -378,9 +378,9 @@ describe("Tool Results with Images", () => { ); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY)( - "Xiaomi MiMo Token Plan (SGP) Provider (mimo-v2.5-pro)", + "Xiaomi MiMo Token Plan (SGP) Provider (mimo-v2.6-pro)", () => { - const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.6-pro"); it("should handle tool result with only image", { retry: 3, timeout: 30000 }, async () => { await handleToolWithImageResult(llm); diff --git a/packages/ai/test/openai-completions-tool-choice.test.ts b/packages/ai/test/openai-completions-tool-choice.test.ts index 1ddaccc58..7fbb45890 100644 --- a/packages/ai/test/openai-completions-tool-choice.test.ts +++ b/packages/ai/test/openai-completions-tool-choice.test.ts @@ -1234,7 +1234,7 @@ describe("openai-completions tool_choice", () => { const providers = ["xiaomi", "xiaomi-token-plan-cn", "xiaomi-token-plan-ams", "xiaomi-token-plan-sgp"] as const; for (const provider of providers) { - const model = getModel(provider, "mimo-v2.5-pro")!; + const model = getModel(provider, "mimo-v2.6-pro")!; expect(model.compat?.requiresReasoningContentOnAssistantMessages).toBe(true); expect(model.compat?.thinkingFormat).toBe("deepseek"); expect(model.compat?.maxTokensField).toBeUndefined(); @@ -1255,12 +1255,12 @@ describe("openai-completions tool_choice", () => { }); it("replays Xiaomi MiMo assistant tool calls with empty reasoning_content when thinking is missing", async () => { - const model = getModel("xiaomi", "mimo-v2.5-pro")!; + const model = getModel("xiaomi", "mimo-v2.6-pro")!; const assistantMessage: AssistantMessage = { role: "assistant", api: "openai-completions", provider: "xiaomi", - model: "mimo-v2.5-pro", + model: "mimo-v2.6-pro", content: [{ type: "toolCall", id: "call_1", name: "read", arguments: { path: "README.md" } }], usage: { input: 0, diff --git a/packages/ai/test/overflow.test.ts b/packages/ai/test/overflow.test.ts index d9a5e88f5..695e61a37 100644 --- a/packages/ai/test/overflow.test.ts +++ b/packages/ai/test/overflow.test.ts @@ -157,7 +157,7 @@ describe("isContextOverflow", () => { cacheRead: 1048512, output: 0, provider: "xiaomi", - model: "mimo-v2.5-pro", + model: "mimo-v2.6-pro", }); expect(isContextOverflow(message, 1048576)).toBe(true); }); diff --git a/packages/ai/test/stream.test.ts b/packages/ai/test/stream.test.ts index ac02be9ad..49b21704b 100644 --- a/packages/ai/test/stream.test.ts +++ b/packages/ai/test/stream.test.ts @@ -1094,7 +1094,7 @@ describe("Generate E2E Tests", () => { describe.skipIf(!process.env.XIAOMI_API_KEY)( "Xiaomi MiMo (API billing) Provider (Xiaomi MiMo-V2.5-Pro via Anthropic Messages)", () => { - const llm = getModel("xiaomi", "mimo-v2.5-pro"); + const llm = getModel("xiaomi", "mimo-v2.6-pro"); const thinkingOptions = { thinkingEnabled: true, reasoningEffort: "high", @@ -1125,7 +1125,7 @@ describe("Generate E2E Tests", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY)( "Xiaomi MiMo Token Plan Provider (Xiaomi MiMo-V2.5-Pro via Anthropic Messages, CN region)", () => { - const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.6-pro"); const thinkingOptions = { thinkingEnabled: true, reasoningEffort: "high", @@ -1156,7 +1156,7 @@ describe("Generate E2E Tests", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY)( "Xiaomi MiMo Token Plan Provider (Xiaomi MiMo-V2.5-Pro via Anthropic Messages, AMS region)", () => { - const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.6-pro"); const thinkingOptions = { thinkingEnabled: true, reasoningEffort: "high", @@ -1187,7 +1187,7 @@ describe("Generate E2E Tests", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY)( "Xiaomi MiMo Token Plan Provider (Xiaomi MiMo-V2.5-Pro via Anthropic Messages, SGP region)", () => { - const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.6-pro"); const thinkingOptions = { thinkingEnabled: true, reasoningEffort: "high", diff --git a/packages/ai/test/tokens.test.ts b/packages/ai/test/tokens.test.ts index e48b580fd..12b314638 100644 --- a/packages/ai/test/tokens.test.ts +++ b/packages/ai/test/tokens.test.ts @@ -250,7 +250,7 @@ describe("Token Statistics on Abort", () => { }); describe.skipIf(!process.env.XIAOMI_API_KEY)("Xiaomi MiMo (API billing) Provider", () => { - const llm = getModel("xiaomi", "mimo-v2.5-pro"); + const llm = getModel("xiaomi", "mimo-v2.6-pro"); // FIXME(xiaomi): Xiaomi's Anthropic-compatible stream does not populate // usage in the message_start event the way Anthropic does — usage only @@ -263,7 +263,7 @@ describe("Token Statistics on Abort", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY)("Xiaomi MiMo Token Plan (CN) Provider", () => { - const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.6-pro"); // FIXME(xiaomi): see the API-billing block above — same upstream streaming // usage limitation applies to Token Plan endpoints. @@ -273,7 +273,7 @@ describe("Token Statistics on Abort", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY)("Xiaomi MiMo Token Plan (AMS) Provider", () => { - const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.6-pro"); // FIXME(xiaomi): see the API-billing block above — same upstream streaming // usage limitation applies to Token Plan endpoints. @@ -283,7 +283,7 @@ describe("Token Statistics on Abort", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY)("Xiaomi MiMo Token Plan (SGP) Provider", () => { - const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.6-pro"); // FIXME(xiaomi): see the API-billing block above — same upstream streaming // usage limitation applies to Token Plan endpoints. diff --git a/packages/ai/test/tool-call-without-result.test.ts b/packages/ai/test/tool-call-without-result.test.ts index c0651817c..07e66a4dd 100644 --- a/packages/ai/test/tool-call-without-result.test.ts +++ b/packages/ai/test/tool-call-without-result.test.ts @@ -231,7 +231,7 @@ describe("Tool Call Without Result Tests", () => { }); describe.skipIf(!process.env.XIAOMI_API_KEY)("Xiaomi MiMo (API billing) Provider", () => { - const model = getModel("xiaomi", "mimo-v2.5-pro"); + const model = getModel("xiaomi", "mimo-v2.6-pro"); it("should filter out tool calls without corresponding tool results", { retry: 3, timeout: 30000 }, async () => { await testToolCallWithoutResult(model); @@ -239,7 +239,7 @@ describe("Tool Call Without Result Tests", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY)("Xiaomi MiMo Token Plan (CN) Provider", () => { - const model = getModel("xiaomi-token-plan-cn", "mimo-v2.5-pro"); + const model = getModel("xiaomi-token-plan-cn", "mimo-v2.6-pro"); it("should filter out tool calls without corresponding tool results", { retry: 3, timeout: 30000 }, async () => { await testToolCallWithoutResult(model); @@ -247,7 +247,7 @@ describe("Tool Call Without Result Tests", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY)("Xiaomi MiMo Token Plan (AMS) Provider", () => { - const model = getModel("xiaomi-token-plan-ams", "mimo-v2.5-pro"); + const model = getModel("xiaomi-token-plan-ams", "mimo-v2.6-pro"); it("should filter out tool calls without corresponding tool results", { retry: 3, timeout: 30000 }, async () => { await testToolCallWithoutResult(model); @@ -255,7 +255,7 @@ describe("Tool Call Without Result Tests", () => { }); describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY)("Xiaomi MiMo Token Plan (SGP) Provider", () => { - const model = getModel("xiaomi-token-plan-sgp", "mimo-v2.5-pro"); + const model = getModel("xiaomi-token-plan-sgp", "mimo-v2.6-pro"); it("should filter out tool calls without corresponding tool results", { retry: 3, timeout: 30000 }, async () => { await testToolCallWithoutResult(model); diff --git a/packages/ai/test/total-tokens.test.ts b/packages/ai/test/total-tokens.test.ts index 23cb40270..b1c85c861 100644 --- a/packages/ai/test/total-tokens.test.ts +++ b/packages/ai/test/total-tokens.test.ts @@ -488,10 +488,10 @@ describe("totalTokens field", () => { describe.skipIf(!process.env.XIAOMI_API_KEY)("Xiaomi MiMo (API billing)", () => { it( - "mimo-v2.5-pro - should return totalTokens equal to sum of components", + "mimo-v2.6-pro - should return totalTokens equal to sum of components", { retry: 3, timeout: 60000 }, async () => { - const llm = getModel("xiaomi", "mimo-v2.5-pro"); + const llm = getModel("xiaomi", "mimo-v2.6-pro"); console.log(`\nXiaomi MiMo / ${llm.id}:`); const { first, second } = await testTotalTokensWithCache(llm, { apiKey: process.env.XIAOMI_API_KEY }); @@ -511,10 +511,10 @@ describe("totalTokens field", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY)("Xiaomi MiMo Token Plan (CN)", () => { it( - "mimo-v2.5-pro - should return totalTokens equal to sum of components", + "mimo-v2.6-pro - should return totalTokens equal to sum of components", { retry: 3, timeout: 60000 }, async () => { - const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.6-pro"); console.log(`\nXiaomi MiMo Token Plan CN / ${llm.id}:`); const { first, second } = await testTotalTokensWithCache(llm, { @@ -536,10 +536,10 @@ describe("totalTokens field", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY)("Xiaomi MiMo Token Plan (AMS)", () => { it( - "mimo-v2.5-pro - should return totalTokens equal to sum of components", + "mimo-v2.6-pro - should return totalTokens equal to sum of components", { retry: 3, timeout: 60000 }, async () => { - const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.6-pro"); console.log(`\nXiaomi MiMo Token Plan AMS / ${llm.id}:`); const { first, second } = await testTotalTokensWithCache(llm, { @@ -561,10 +561,10 @@ describe("totalTokens field", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY)("Xiaomi MiMo Token Plan (SGP)", () => { it( - "mimo-v2.5-pro - should return totalTokens equal to sum of components", + "mimo-v2.6-pro - should return totalTokens equal to sum of components", { retry: 3, timeout: 60000 }, async () => { - const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.6-pro"); console.log(`\nXiaomi MiMo Token Plan SGP / ${llm.id}:`); const { first, second } = await testTotalTokensWithCache(llm, { diff --git a/packages/ai/test/unicode-surrogate.test.ts b/packages/ai/test/unicode-surrogate.test.ts index 25a262d86..c296dda04 100644 --- a/packages/ai/test/unicode-surrogate.test.ts +++ b/packages/ai/test/unicode-surrogate.test.ts @@ -628,7 +628,7 @@ describe("AI Providers Unicode Surrogate Pair Tests", () => { }); describe.skipIf(!process.env.XIAOMI_API_KEY)("Xiaomi MiMo (API billing) Provider Unicode Handling", () => { - const llm = getModel("xiaomi", "mimo-v2.5-pro"); + const llm = getModel("xiaomi", "mimo-v2.6-pro"); it("should handle emoji in tool results", { retry: 3, timeout: 30000 }, async () => { await testEmojiInToolResults(llm); @@ -646,7 +646,7 @@ describe("AI Providers Unicode Surrogate Pair Tests", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_CN_API_KEY)( "Xiaomi MiMo Token Plan (CN) Provider Unicode Handling", () => { - const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-cn", "mimo-v2.6-pro"); it("should handle emoji in tool results", { retry: 3, timeout: 30000 }, async () => { await testEmojiInToolResults(llm); @@ -669,7 +669,7 @@ describe("AI Providers Unicode Surrogate Pair Tests", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_AMS_API_KEY)( "Xiaomi MiMo Token Plan (AMS) Provider Unicode Handling", () => { - const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-ams", "mimo-v2.6-pro"); it("should handle emoji in tool results", { retry: 3, timeout: 30000 }, async () => { await testEmojiInToolResults(llm); @@ -692,7 +692,7 @@ describe("AI Providers Unicode Surrogate Pair Tests", () => { describe.skipIf(!process.env.XIAOMI_TOKEN_PLAN_SGP_API_KEY)( "Xiaomi MiMo Token Plan (SGP) Provider Unicode Handling", () => { - const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.5-pro"); + const llm = getModel("xiaomi-token-plan-sgp", "mimo-v2.6-pro"); it("should handle emoji in tool results", { retry: 3, timeout: 30000 }, async () => { await testEmojiInToolResults(llm); diff --git a/packages/ai/test/xiaomi-models.test.ts b/packages/ai/test/xiaomi-models.test.ts index d1b098bad..3d5695966 100644 --- a/packages/ai/test/xiaomi-models.test.ts +++ b/packages/ai/test/xiaomi-models.test.ts @@ -5,7 +5,7 @@ import type { ThinkingLevel } from "../src/types.ts"; const XIAOMI_PROVIDERS = ["xiaomi", "xiaomi-token-plan-cn", "xiaomi-token-plan-ams", "xiaomi-token-plan-sgp"] as const; const DEPRECATED_MODEL_IDS = ["mimo-v2-flash", "mimo-v2-omni", "mimo-v2-pro"] as const; -const REPLACEMENT_MODEL_IDS = ["mimo-v2.5", "mimo-v2.5-pro"] as const; +const REPLACEMENT_MODEL_IDS = ["mimo-v2.6-flash", "mimo-v2.6-pro"] as const; describe("Xiaomi MiMo models", () => { it.each(XIAOMI_PROVIDERS)("omits deprecated models from %s", (provider) => { diff --git a/packages/ai/test/xiaomi-token-plan-ams-anthropic-empty-signature-smoke.test.ts b/packages/ai/test/xiaomi-token-plan-ams-anthropic-empty-signature-smoke.test.ts index 74d270898..7b7db322a 100644 --- a/packages/ai/test/xiaomi-token-plan-ams-anthropic-empty-signature-smoke.test.ts +++ b/packages/ai/test/xiaomi-token-plan-ams-anthropic-empty-signature-smoke.test.ts @@ -6,7 +6,7 @@ const provider = "xiaomi-token-plan-ams"; const apiKey = getEnvApiKey(provider); const model: Model<"anthropic-messages"> = { - id: "mimo-v2.5-pro", + id: "mimo-v2.6-pro", name: "MiMo-V2.5-Pro Anthropic smoke", api: "anthropic-messages", provider,