mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-30 19:02:16 +00:00
Add four major components that bring NanoClaw's capabilities into the OpenJarvis framework as native, config-driven modules: - ClaudeCodeAgent: wraps @anthropic-ai/claude-code SDK via Node.js subprocess - WhatsAppBaileysChannel: bidirectional WhatsApp messaging via Baileys protocol - ContainerRunner/SandboxedAgent: Docker sandbox with mount security enforcement - TaskScheduler: cron/interval/once scheduling with SQLite persistence, MCP tools, CLI New config sections: [sandbox], [scheduler], [channel.whatsapp_baileys]. New CLI: jarvis scheduler create|list|pause|resume|cancel|logs|start. 46 files changed, ~5,867 lines. 2078 tests pass (36 skipped). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
180 lines
3.8 KiB
Markdown
180 lines
3.8 KiB
Markdown
# Tools Module
|
|
|
|
The tools module implements the tool system used by agents for executing
|
|
actions such as calculations, memory search, file reading, and sub-model
|
|
queries. Each tool implements the `BaseTool` ABC and is registered via
|
|
`@ToolRegistry.register("name")`. The `ToolExecutor` dispatches tool calls
|
|
with JSON argument parsing, latency tracking, and event bus integration.
|
|
|
|
## Abstract Base Class
|
|
|
|
### BaseTool
|
|
|
|
::: openjarvis.tools._stubs.BaseTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### ToolSpec
|
|
|
|
::: openjarvis.tools._stubs.ToolSpec
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### ToolExecutor
|
|
|
|
::: openjarvis.tools._stubs.ToolExecutor
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### build_tool_descriptions
|
|
|
|
::: openjarvis.tools._stubs.build_tool_descriptions
|
|
options:
|
|
show_source: true
|
|
|
|
---
|
|
|
|
## Built-in Tools
|
|
|
|
### CalculatorTool
|
|
|
|
::: openjarvis.tools.calculator.CalculatorTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### safe_eval
|
|
|
|
::: openjarvis.tools.calculator.safe_eval
|
|
options:
|
|
show_source: true
|
|
|
|
### ThinkTool
|
|
|
|
::: openjarvis.tools.think.ThinkTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### RetrievalTool
|
|
|
|
::: openjarvis.tools.retrieval.RetrievalTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### LLMTool
|
|
|
|
::: openjarvis.tools.llm_tool.LLMTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### FileReadTool
|
|
|
|
::: openjarvis.tools.file_read.FileReadTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
---
|
|
|
|
## Storage Tools
|
|
|
|
Tools that expose memory storage operations for use by agents via the tool
|
|
system. These wrap the memory backend methods as `BaseTool` implementations.
|
|
|
|
### MemoryStoreTool
|
|
|
|
::: openjarvis.tools.storage_tools.MemoryStoreTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### MemoryRetrieveTool
|
|
|
|
::: openjarvis.tools.storage_tools.MemoryRetrieveTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### MemorySearchTool
|
|
|
|
::: openjarvis.tools.storage_tools.MemorySearchTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### MemoryIndexTool
|
|
|
|
::: openjarvis.tools.storage_tools.MemoryIndexTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
---
|
|
|
|
## Scheduler Tools
|
|
|
|
MCP tools for scheduling agent tasks for future or recurring execution. All five tools are in the `scheduler` category and require a `TaskScheduler` instance to be injected at `_scheduler`. For usage and schedule type examples see the [Scheduler Tools user guide](../user-guide/tools.md#scheduler-tools).
|
|
|
|
### ScheduleTaskTool
|
|
|
|
::: openjarvis.scheduler.tools.ScheduleTaskTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### ListScheduledTasksTool
|
|
|
|
::: openjarvis.scheduler.tools.ListScheduledTasksTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### PauseScheduledTaskTool
|
|
|
|
::: openjarvis.scheduler.tools.PauseScheduledTaskTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### ResumeScheduledTaskTool
|
|
|
|
::: openjarvis.scheduler.tools.ResumeScheduledTaskTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### CancelScheduledTaskTool
|
|
|
|
::: openjarvis.scheduler.tools.CancelScheduledTaskTool
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
---
|
|
|
|
## MCP Adapter
|
|
|
|
Integration with the Model Context Protocol (MCP). The MCP adapter exposes
|
|
OpenJarvis tools as MCP-compatible resources and allows consuming external
|
|
MCP tool providers. Supports MCP protocol version 2025-11-25.
|
|
|
|
### MCPToolAdapter
|
|
|
|
::: openjarvis.tools.mcp_adapter.MCPToolAdapter
|
|
options:
|
|
show_source: true
|
|
members_order: source
|
|
|
|
### MCPToolProvider
|
|
|
|
::: openjarvis.tools.mcp_adapter.MCPToolProvider
|
|
options:
|
|
show_source: true
|
|
members_order: source
|