feat: add Xiaomi MiMo Token Plan presets (#2803)

* feat: add Xiaomi MiMo token plan presets

* fix: update Xiaomi MiMo provider presets

* fix: align MiMo V2.5 model specs with official documentation

- Update maxTokens from 32000 to 131072 (128K) for mimo-v2.5-pro and mimo-v2.5
- Update contextWindow from 262144 to 1048576 (1M) for mimo-v2.5
- Aligns with official specs from Xiaomi MiMo documentation
- Ensures consistency between OpenClaw and OpenCode presets

---------

Co-authored-by: Jason <farion1231@gmail.com>
This commit is contained in:
BlueOcean
2026-05-18 10:38:03 +08:00
committed by GitHub
parent 5c79cf64a4
commit 0fb7fd12e5
8 changed files with 288 additions and 16 deletions
+51
View File
@@ -0,0 +1,51 @@
import { describe, expect, it } from "vitest";
import {
openclawProviderPresets,
rebaseOpenClawSuggestedDefaults,
} from "@/config/openclawProviderPresets";
describe("Xiaomi MiMo Token Plan presets", () => {
it("uses a separate OpenClaw provider namespace from pay-as-you-go MiMo", () => {
const payAsYouGo = openclawProviderPresets.find(
(item) => item.name === "Xiaomi MiMo",
);
const tokenPlan = openclawProviderPresets.find(
(item) => item.name === "Xiaomi MiMo Token Plan (China)",
);
expect(payAsYouGo?.suggestedDefaults?.model?.primary).toBe(
"xiaomimimo/mimo-v2.5-pro",
);
expect(tokenPlan?.suggestedDefaults?.model?.primary).toBe(
"xiaomi-mimo-token-plan/mimo-v2.5-pro",
);
expect(tokenPlan?.suggestedDefaults?.modelCatalog).toHaveProperty(
"xiaomi-mimo-token-plan/mimo-v2.5-pro",
);
expect(tokenPlan?.suggestedDefaults?.modelCatalog).toHaveProperty(
"xiaomi-mimo-token-plan/mimo-v2.5",
);
});
it("rebases OpenClaw defaults to the submitted provider key", () => {
const tokenPlan = openclawProviderPresets.find(
(item) => item.name === "Xiaomi MiMo Token Plan (China)",
);
expect(tokenPlan?.suggestedDefaults).toBeDefined();
const rebased = rebaseOpenClawSuggestedDefaults(
tokenPlan!.suggestedDefaults!,
"my-mimo-plan",
);
expect(rebased.model?.primary).toBe("my-mimo-plan/mimo-v2.5-pro");
expect(rebased.modelCatalog).toHaveProperty(
"my-mimo-plan/mimo-v2.5-pro",
);
expect(rebased.modelCatalog).toHaveProperty("my-mimo-plan/mimo-v2.5");
expect(rebased.modelCatalog).not.toHaveProperty(
"xiaomi-mimo-token-plan/mimo-v2.5-pro",
);
});
});
@@ -80,4 +80,22 @@ describe("AWS Bedrock OpenCode Provider Presets", () => {
"https://api.kimi.com/coding/v1",
);
});
it("Xiaomi MiMo presets should include official OpenCode model metadata", () => {
const presets = ["Xiaomi MiMo", "Xiaomi MiMo Token Plan (China)"].map(
(name) => opencodeProviderPresets.find((preset) => preset.name === name),
);
for (const preset of presets) {
expect(preset).toBeDefined();
expect(preset!.settingsConfig.models["mimo-v2.5-pro"]).toMatchObject({
limit: { context: 1048576, output: 131072 },
modalities: { input: ["text"], output: ["text"] },
});
expect(preset!.settingsConfig.models["mimo-v2.5"]).toMatchObject({
limit: { context: 1048576, output: 131072 },
modalities: { input: ["text", "image"], output: ["text"] },
});
}
});
});