kami
612ca8cf1b
grammar: the last two model calls that were still free text
...
The replier and the meeting summariser were the two call sites without a
GBNF. Both are exactly the shape that makes a Thinking variant answer with
its reasoning as prose, and neither had anything downstream that could
remove it.
The replier already parses {"response","mood"}, so it now sends the phraser's
grammar for that contract, exported once as phraser.ResponseGrammar so the
two definitions cannot drift.
The summariser stays text-in/text-out. The JSON wrapper is attached and
unwrapped in the daemon's Completer, so internal/capture is unchanged and a
Completer without a grammar still works.
The simulator told routing from phrasing by "has a grammar", which stopped
being true here; it now looks for the intent enum.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-02 02:28:53 +04:00
..
2026-07-03 00:42:35 +02:00
2026-08-01 14:22:14 +04:00
2026-08-01 21:43:28 +04:00
2026-08-01 21:43:28 +04:00
2026-08-01 14:11:57 +04:00
2026-08-01 00:53:37 +04:00
2026-08-01 14:16:56 +04:00
2026-08-01 14:16:56 +04:00
2026-08-01 02:33:47 +04:00
2026-08-01 22:32:37 +04:00
2026-08-02 02:24:36 +04:00
2026-08-02 02:24:36 +04:00
2026-08-02 02:24:36 +04:00
2026-08-01 00:53:37 +04:00
2026-08-01 14:16:39 +04:00
2026-08-01 14:16:39 +04:00
2026-08-01 00:54:11 +04:00
2026-08-02 02:28:53 +04:00
2026-08-02 02:28:53 +04:00
2026-08-01 14:05:59 +04:00
2026-08-01 22:57:08 +04:00
2026-08-01 05:49:27 +04:00
2026-08-01 00:42:23 +04:00
2026-08-01 22:57:08 +04:00
2026-08-01 22:21:28 +04:00
2026-08-01 14:33:26 +04:00
2026-08-01 14:33:26 +04:00
2026-08-01 23:17:10 +04:00
2026-07-31 23:09:22 +04:00
2026-08-01 14:15:33 +04:00
2026-08-01 16:29:56 +04:00
2026-08-01 14:15:33 +04:00
2026-08-01 14:15:33 +04:00
2026-08-01 14:15:33 +04:00
2026-08-01 14:13:58 +04:00
2026-08-01 16:29:56 +04:00
2026-08-01 14:15:33 +04:00
2026-07-30 23:49:22 +04:00
2026-07-20 12:13:30 +04:00
2026-07-20 12:00:37 +04:00
2026-08-01 14:15:33 +04:00
2026-08-01 14:15:33 +04:00
2026-08-01 14:24:40 +04:00
2026-08-01 05:08:08 +04:00
2026-07-06 13:40:16 +04:00
2026-07-06 13:40:16 +04:00
2026-08-01 14:10:36 +04:00
2026-08-01 14:10:36 +04:00
2026-08-01 14:05:13 +04:00
2026-08-01 14:05:13 +04:00
2026-08-01 19:46:39 +04:00
2026-08-01 19:46:39 +04:00
2026-07-31 02:15:30 +04:00
2026-08-01 14:05:07 +04:00
2026-08-01 14:20:04 +04:00
2026-08-01 23:17:10 +04:00
2026-08-01 14:11:57 +04:00
2026-08-01 14:11:57 +04:00
2026-08-02 02:16:45 +04:00
2026-08-01 14:36:48 +04:00
2026-08-01 14:01:01 +04:00
2026-08-01 14:01:01 +04:00
2026-08-01 01:37:50 +04:00
2026-08-01 01:30:06 +04:00
2026-07-31 13:30:38 +04:00
2026-08-01 21:35:58 +04:00
2026-08-01 21:35:58 +04:00
2026-07-10 15:50:01 +04:00
2026-07-31 13:30:38 +04:00
2026-07-31 13:30:38 +04:00
2026-08-02 02:28:53 +04:00
2026-08-02 02:28:53 +04:00
2026-07-31 23:27:08 +04:00
2026-08-02 02:24:36 +04:00
2026-08-02 02:28:53 +04:00
2026-08-01 14:06:38 +04:00
2026-08-01 14:06:38 +04:00
2026-08-01 21:40:06 +04:00
2026-08-01 21:40:06 +04:00
2026-08-01 14:12:43 +04:00
2026-08-01 14:12:43 +04:00
2026-07-31 23:27:08 +04:00
2026-07-31 14:14:18 +04:00
2026-08-01 20:43:27 +04:00
2026-08-01 23:17:10 +04:00
2026-08-01 14:21:46 +04:00
2026-08-01 14:21:46 +04:00
2026-08-02 02:24:36 +04:00
2026-08-02 02:24:36 +04:00
2026-08-01 12:50:47 +04:00