|
6 | 6 | isDeepSeekLeafProvider, |
7 | 7 | isGptProvider, |
8 | 8 | isKimiLeafProvider, |
| 9 | + isMuseSparkLeafProvider, |
9 | 10 | isXaiGrokLeafProvider, |
10 | 11 | shouldApplyGrokAntiThrash, |
11 | 12 | } from "./provider-family.js"; |
@@ -67,13 +68,33 @@ describe("isKimiLeafProvider", () => { |
67 | 68 | ); |
68 | 69 | }); |
69 | 70 |
|
| 71 | +describe("isMuseSparkLeafProvider", () => { |
| 72 | + test.each<[ProviderRow, boolean]>([ |
| 73 | + [ |
| 74 | + { providerName: "opencode-go", model: "muse-spark-1.3-contributor" }, |
| 75 | + true, |
| 76 | + ], |
| 77 | + [{ providerName: "meta-api", model: "muse-wonder-1.0" }, true], |
| 78 | + [{ providerName: "meta/default", model: "MUSE-WONDER-1.0" }, true], |
| 79 | + [{ providerName: "meta-api", model: "not-muse-wonder-1.0" }, false], |
| 80 | + [{ providerName: "meta-api" }, false], |
| 81 | + ])("matches %j -> %s", (row, expected) => { |
| 82 | + expect(isMuseSparkLeafProvider(row)).toBe(expected); |
| 83 | + }); |
| 84 | +}); |
| 85 | + |
70 | 86 | describe("detectModelFamily", () => { |
71 | 87 | test.each<[ProviderRow, ReturnType<typeof detectModelFamily>]>([ |
72 | 88 | [{ providerName: "xai/default", model: "grok-4.5" }, "grok"], |
73 | 89 | [{ providerName: "xai/default", model: "grok-4.6" }, "grok"], |
74 | 90 | [{ providerName: "xai/default", model: "grok-4.7" }, "grok"], |
75 | 91 | [{ providerName: "moonshot", model: "kimi-k2" }, "kimi"], |
76 | 92 | [{ providerName: "opencode-go", model: "kimi-k3" }, "kimi"], |
| 93 | + [ |
| 94 | + { providerName: "opencode-go", model: "muse-spark-1.3-contributor" }, |
| 95 | + "muse", |
| 96 | + ], |
| 97 | + [{ providerName: "meta-api", model: "muse-wonder-1.0" }, "muse"], |
77 | 98 | [{ providerName: "anthropic", model: "claude-sonnet-4" }, "claude"], |
78 | 99 | [{ providerName: "openai-compat", model: "claude-opus-4-6" }, "claude"], |
79 | 100 | [{ providerName: "openai", model: "gpt-5.6" }, "gpt"], |
|
0 commit comments