Refs #246, follows #262/#264. Live transcript: "summarize last week" was triaged CHAT (the English keyword overrule has no "week"), and even correctly routed, the free-text when contract depends on an app-side English phrase grammar (resolveWhen) that only understands the phrasings someone has hardcoded regexes for. Every new human variant ("past fortnight", "previous month", German "letzte Woche") is another regex.
Inversion: the model interprets human time words into flat structured fields on the event tools (lastCount+lastUnit for rolling windows, daysAgo, weekday, date, fromTime/toTime for day narrowing); the app converts fields to exact start/stop datetimes in the profile timezone and calls the API. Units and weekdays are closed universal sets, so no word lists survive anywhere: interpretation lives in the model (any language), arithmetic lives in code (exact).
Also: a tool-less (triage CHAT/ACTION) turn where the model attempts a real registry tool flips to tools-enabled instead of refusing, making triage advisory and letting the English live-data keyword regexes be deleted. All gated on the eval with new variant-phrasing cases.
This issue was filed by Claude assisting @pliablepixels.
Refs #246, follows #262/#264. Live transcript: "summarize last week" was triaged CHAT (the English keyword overrule has no "week"), and even correctly routed, the free-text
whencontract depends on an app-side English phrase grammar (resolveWhen) that only understands the phrasings someone has hardcoded regexes for. Every new human variant ("past fortnight", "previous month", German "letzte Woche") is another regex.Inversion: the model interprets human time words into flat structured fields on the event tools (lastCount+lastUnit for rolling windows, daysAgo, weekday, date, fromTime/toTime for day narrowing); the app converts fields to exact start/stop datetimes in the profile timezone and calls the API. Units and weekdays are closed universal sets, so no word lists survive anywhere: interpretation lives in the model (any language), arithmetic lives in code (exact).
Also: a tool-less (triage CHAT/ACTION) turn where the model attempts a real registry tool flips to tools-enabled instead of refusing, making triage advisory and letting the English live-data keyword regexes be deleted. All gated on the eval with new variant-phrasing cases.
This issue was filed by Claude assisting @pliablepixels.