Fixed
- Per-provider schema normalization for GLM and Mistral/Codestral. The router now runs a small normalizer before forwarding chat completions to
zai(GLM) andmistral/codestral. The well-known 400/422 offenders are fixed at the router layer:parallel_tool_calls,n,top_k,logprobs,echo,user,metadata, andstoreare stripped;toolrole messages that lack a matching assistanttool_callsentry are dropped (ZCode / Claude Code / Cline tool-call-flow quirk); andtemperatureis clamped to the provider's accepted range (Mistral: [0, 1]). Other OpenAI-compatible providers (Groq, Cerebras, NVIDIA, …) pass through unchanged. New module:src/core/schema-normalizer.js. Wired into bothproxyJsonRequestandproxyStreamingRequest. 16 new tests intest/test.js.