fix(ai): stop forcing disabled thinking on models that cannot disable it
- GLM 5.3 rejects an explicit thinking disable ("use low, high, or max"); the zai/qwen/qwen-chat-template/deepseek wire formats treated unspecified thinking as an explicit disable, so /refine, compaction summaries, and other completeSimple callers failed with a 400 - unspecified or unsupported thinking now leaves thinking enabled for models whose thinkingLevelMap marks off as null - generate-models marks off/minimal/medium/xhigh unsupported for openai-completions GLM 5.3 entries (matching the OpenRouter-derived map), so clampThinkingLevel resolves off to low and getSupportedThinkingLevels stops advertising off - regenerated the model catalog
1- Fixed refinement and other auxiliary JSON calls failing with a 400 on models that cannot disable thinking (e.g. GLM 5.3): unspecified thinking no longer sends an explicit disable for zai, qwen, and deepseek wire formats, and the GLM 5.3 catalog entries now mark `off` as unsupported so session thinking levels clamp to `low` instead of failing.327 unmodified linesExpand all3283293303313323333343353363373383393403413423433443453463473482115 unmodified linesExpand all327 unmodified linesExpand all } if (model.api === "openai-completions" && model.id.includes("deepseek-v4")) { mergeThinkingLevelMap(model, DEEPSEEK_V4_THINKING_LEVEL_MAP); } // GLM 5.3 always engages thinking; the API rejects an explicit disable with // "use low, high, or max". Matches the OpenRouter-derived capability map. if (model.api === "openai-completions" && model.id.includes("glm-5.3")) { mergeThinkingLevelMap(model, { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max", }); } const kimiK3Id = model.id.toLowerCase(); if (!model.thinkingLevelMap && (/^k3(-|$)/.test(kimiK3Id) || /(^|\/)kimi-k3(-|$)/.test(kimiK3Id))) { mergeThinkingLevelMap(model, KIMI_K3_THINKING_LEVEL_MAP); }2115 unmodified linesExpand all