Context
provider/constrained.ts (grammar/JSON-Schema constrained decoding for local providers) was split out of #858 so the validated tool-retrieval lever could land clean. Code + unit tests live on branch feat/constrained-decoding.
Work
- Validate: run a local vLLM guided-decoding A/B (constrained ON vs OFF) on a tool-heavy task set; confirm it improves tool-call parse-rate / reduces malformed calls at no quality cost.
- Wire: re-add the flag-gated (
ALTIMATE_CONSTRAINED_TOOLCALLS, local-providers-only, toolChoice: "required") block into session/llm.ts (marker-wrapped).
- Open the PR once it actually does something measurable.
Do NOT open a PR with the flag wired-but-unvalidated or present-but-unwired (the no-op-flag anti-pattern). Branch: feat/constrained-decoding.
Context
provider/constrained.ts(grammar/JSON-Schema constrained decoding for local providers) was split out of #858 so the validated tool-retrieval lever could land clean. Code + unit tests live on branchfeat/constrained-decoding.Work
ALTIMATE_CONSTRAINED_TOOLCALLS, local-providers-only,toolChoice: "required") block intosession/llm.ts(marker-wrapped).Do NOT open a PR with the flag wired-but-unvalidated or present-but-unwired (the no-op-flag anti-pattern). Branch:
feat/constrained-decoding.