picoclaw/pkg/tools
yinwm 0cce9fc905 refactor(agent): extract reusable tool loop and make subagents independent
Extract core LLM tool loop logic into shared RunToolLoop function that can be
used by both main agent and subagents. Subagents now run their own tool loop
with dedicated tool registry, enabling full independence.

Key changes:
- New pkg/tools/toolloop.go with reusable tool execution logic
- Subagents use message tool to communicate directly with users
- Heartbeat processing is now stateless via ProcessHeartbeat
- Simplified system message routing without result forwarding
- Shared tool registry creation for consistency between agents

This architecture follows openclaw's design where async tools notify via
bus and subagents handle their own user communication.
2026-02-13 14:39:39 +08:00
..
base.go feat: US-006 - Add AsyncCallback type and AsyncTool interface 2026-02-12 19:35:41 +08:00
cron.go perf(cron): use read lock for concurrent reads in addJob 2026-02-13 02:15:56 +08:00
edit.go Merge upstream/main into ralph/tool-result-refactor 2026-02-13 01:00:26 +08:00
edit_test.go Merge upstream/main into ralph/tool-result-refactor 2026-02-13 01:00:26 +08:00
filesystem.go Merge upstream/main into ralph/tool-result-refactor 2026-02-13 01:00:26 +08:00
filesystem_test.go * Delete unused file 2026-02-12 21:58:40 +08:00
message.go feat: US-002 - Modify Tool interface to return *ToolResult 2026-02-12 19:28:56 +08:00
message_test.go feat: US-011 - Add MessageTool tests 2026-02-12 19:50:53 +08:00
registry.go chore: Clean up Ralph agent tracking files 2026-02-12 23:51:52 +08:00
result.go feat: US-002 - Modify Tool interface to return *ToolResult 2026-02-12 19:28:56 +08:00
result_test.go feat: US-002 - Modify Tool interface to return *ToolResult 2026-02-12 19:28:56 +08:00
shell.go Merge upstream/main into ralph/tool-result-refactor 2026-02-13 01:00:26 +08:00
shell_test.go Merge upstream/main into ralph/tool-result-refactor 2026-02-13 01:00:26 +08:00
spawn.go fix: resolve code review issues in tool-result-refactor 2026-02-13 01:59:50 +08:00
subagent.go refactor(agent): extract reusable tool loop and make subagents independent 2026-02-13 14:39:39 +08:00
subagent_tool_test.go refactor(heartbeat): add configurable interval and channel-aware routing 2026-02-13 11:13:32 +08:00
toolloop.go refactor(agent): extract reusable tool loop and make subagents independent 2026-02-13 14:39:39 +08:00
types.go * First commit 2026-02-09 19:20:19 +08:00
web.go feat: US-002 - Modify Tool interface to return *ToolResult 2026-02-12 19:28:56 +08:00
web_test.go feat: US-014 - Add WebTool tests 2026-02-12 19:54:44 +08:00