mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-24 12:44:18 +08:00
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:
@@ -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"] },
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user