strix/strix/tools
Ahmed Allam 1c1fa49961 refactor(tools): split wait_for_message into respond_to_user + wait_for_agents
One tool was doing three jobs (wait on the user, wait on other agents, and
- wrongly - wait for a long-running command), so the driver had to guess which
one an agent meant and used parent_id as the proxy: the root waits for a human,
everyone else waits for agents. That proxy is wrong, since the user can message
any agent from the TUI's agent tree.

Tool identity now carries the intent, and the coordinator records it as a
wait_kind that survives snapshot/restore:

  respond_to_user  -> wait_kind="user",   never auto-resumed (root or not)
  wait_for_agents  -> wait_kind="agents", auto-resumed on a 300s timer
  recovery exhaust -> wait_kind="stalled"

respond_to_user fuses the message and the yield into one call, so there is no
way to answer and then forget to stop - the two-step that gpt-4o-mini skipped
2/2 in live testing. Plain text still renders as before.

Auto-resume is also bounded now: an agent that re-parks after every timeout
burned a model turn every 300s for the rest of the scan (and, since parked
children notify their parent, spammed the parent's inbox on the same cycle).
After _MAX_IDLE_AUTO_RESUMES it stays parked until a real message arrives.
2026-08-02 02:15:51 +03:00
..
agent_browser Document the SDK-provided tools as stub dirs under strix/tools/ 2026-05-25 22:23:14 -07:00
agents_graph refactor(tools): split wait_for_message into respond_to_user + wait_for_agents 2026-08-02 02:15:51 +03:00
apply_patch Document the SDK-provided tools as stub dirs under strix/tools/ 2026-05-25 22:23:14 -07:00
finish refactor(tools): split wait_for_message into respond_to_user + wait_for_agents 2026-08-02 02:15:51 +03:00
load_skill Restore load_skill + surface skill catalog in system prompt 2026-05-25 15:02:24 -07:00
notes feat(reporting): add read-only list_reports + get_report tools (#889) 2026-07-26 14:05:53 -07:00
proxy strip transfer encoding (#820) 2026-07-20 21:56:34 -04:00
reporting feat(reporting): add read-only list_reports + get_report tools (#889) 2026-07-26 14:05:53 -07:00
respond refactor(tools): split wait_for_message into respond_to_user + wait_for_agents 2026-08-02 02:15:51 +03:00
shell fix(proxy,tooling): serialize+reconnect Caido client, actionable HTTPQL errors, sandbox tool guidance (#794) 2026-07-17 13:31:57 -04:00
thinking Tighten tool surface consistency 2026-05-26 12:16:47 -07:00
todo Strip narrative comments and module/helper docstrings 2026-05-26 14:02:40 -07:00
view_image Strip all images from session on vision-rejection, not just the latest (#553) 2026-06-09 02:48:30 -07:00
web_search Strip narrative comments and module/helper docstrings 2026-05-26 14:02:40 -07:00
__init__.py refactor: nuke `strix_tool` shim + dead package re-exports 2026-04-25 15:17:46 -07:00
output_store.py feat(context): spill oversized tool output into the sandbox workspace (#882) 2026-07-26 14:42:22 -07:00