diff --git a/.changeset/acp-model-toggle-case.md b/.changeset/acp-model-toggle-case.md new file mode 100644 index 000000000..5565e8768 --- /dev/null +++ b/.changeset/acp-model-toggle-case.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": patch +--- + +Detect ACP toggleable thinking models case-insensitively. diff --git a/packages/acp-adapter/src/model-catalog.ts b/packages/acp-adapter/src/model-catalog.ts index e126362b4..67c883e3f 100644 --- a/packages/acp-adapter/src/model-catalog.ts +++ b/packages/acp-adapter/src/model-catalog.ts @@ -52,7 +52,7 @@ export function deriveThinkingSupported(alias: ModelAlias): boolean { if (declared.includes('thinking') || declared.includes('always_thinking')) return true; const lower = alias.model.toLowerCase(); if (lower.includes('thinking') || lower.includes('reason')) return true; - if (TOGGLEABLE_THINKING_MODELS.has(alias.model)) return true; + if (TOGGLEABLE_THINKING_MODELS.has(lower)) return true; return false; } diff --git a/packages/acp-adapter/test/model-catalog.test.ts b/packages/acp-adapter/test/model-catalog.test.ts index 59a340300..d60d0227b 100644 --- a/packages/acp-adapter/test/model-catalog.test.ts +++ b/packages/acp-adapter/test/model-catalog.test.ts @@ -21,6 +21,11 @@ describe('deriveThinkingSupported', () => { expect(deriveThinkingSupported(alias('some-thinking-model'))).toBe(true); expect(deriveThinkingSupported(alias('plain-model'))).toBe(false); }); + + it('matches toggleable model names case-insensitively', () => { + expect(deriveThinkingSupported(alias('Kimi-Code'))).toBe(true); + expect(deriveThinkingSupported(alias('Kimi-For-Coding'))).toBe(true); + }); }); describe('deriveAlwaysThinking', () => {