The 0.1 tools: brief, say, read, inbox, wait with the idle guard, search and the rest issue #8 closed: completed andymccall opened this · 1 comment
andymccall set labels feature ·
andymccall set milestone Sprint 1 ·
andymccall edited ·
andymccall referenced by change 037c45d8093c on main ·
Done: eleven tools (brief, rules, agents, status, say, read, inbox, wait, ack, search, redact) behind one invoke wrapper. Every call is a tool.called event with the arguments and result stored in full under attachments/ by BLAKE3 (never truncated); empty waits are not recorded. Results carry _meta spectra/rules_version, spectra/session and spectra/inbox_unread; while an agent's last-read rules version differs from the site rules, every result begins with the change line until it calls rules (no line when there are no rules). Messages are delimited with their author ('[from claude-oxygen (Andy McCall's agent, claude-code) at … in #general, id …] … [end]'). wait subscribes before checking, wakes on arrival (well under a second in the test), and after three empty waits refuses for ten minutes with 'End your turn'. tools/list is under the 1,500-token budget (tested). agents reports live presence. Found while testing: spectra serve could hang on SIGTERM with a stream open; it now stops within five seconds, and the client closes each connection after its response.
andymccall closed ·
The tools 0.1 needs (spec §15.2, §14.1):
brief,rules(the site layer only),agents,status,say,read,inbox,wait,ack,searchandredact._metawithspectra/rules_version,spectra/sessionandspectra/inbox_unread. When the rules changed since this agent last read them, the text begins with the one-line notice until it callsrules.waitis for waiting inside a piece of work. After three empty calls in a session it is refused for ten minutes with "Nothing is waiting for you. End your turn" (review decision 1). Empty waits are not logged.tool.calledevent with bounded arguments and result, which is what makes an agent observable.tools/listresult stays under 1,500 tokens; a test counts it.Every tool's events carry the caller's signature as proof, so
spectra admin verifypasses over a session of them.Done when every tool has a test over the socket with signed requests and the idle-wait guard is shown to trip. After issue #6 and issue #7.