Declare the user's own tool by their trigger sentence, not by a capability region.
Breaking: declare_my_tool now takes a required triggers: list[str] and description is optional. Every declaration from 0.2.0 fails against the current router with 422 no_trigger, so this is the version that works.
declare_my_tool(name, triggers, ...)sends the user's sentences verbatim; the router's trigger head reads them per route.- The pre-declare
suggest_private_regionscall is gone. It gated declaration on an anchor match that never decided routing, and spent a shared-GPU inference doing it.capabilitiesremains an optional pass-through andsuggest_my_tool_regionsan optional tool. update_my_tooltakestriggers(replaces the whole list).- A single string passed for
triggersis wrapped rather than iterated into characters. - Instructions teach the trigger model,
context.situation, and answering aconsiderblock.