tools: modernize working_stack, remove special-case dispatch

working_stack now uses the Tool format with an Agent handle —
it locks the agent and modifies the stack directly. The special-case
interception in the turn loop is removed. All tools go through
the unified registry dispatch.

Also passes agent handle to all spawned tool tasks so any tool
that needs Agent access can use it.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
ProofOfConcept 2026-04-04 16:14:27 -04:00 committed by Kent Overstreet
parent 37fad63ba9
commit e9b26f5d45
3 changed files with 38 additions and 116 deletions

View file

@ -205,6 +205,7 @@ pub fn tools() -> Vec<Tool> {
read::tool(), write::tool(), edit::tool(),
grep::tool(), glob::tool(), bash::tool(),
vision::tool(),
working_stack::tool(),
];
all.extend(web::tools());
all.extend(memory::memory_tools());