Added as a method on LlmEngine alongside cleanup_text and extract_tasks; same render_chat_prompt -> generate -> parse pattern. Truncates the transcript to its trailing 2000 chars on a UTF-8 char boundary, runs at temperature 0.0 with the CONTENT_TAGS_GRAMMAR GBNF, and re-validates intent against INTENT_CLOSED_SET to catch the unlikely grammar bypass case. max_tokens 96 is enough for the JSON envelope. Smoke test gated on KON_LLM_TEST_MODEL like the existing smoke.rs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
19 KiB
19 KiB