pub mod bash; pub mod browser; pub mod calculator; pub mod chat_manager; pub mod content_search; pub mod cron; pub mod delegate; mod expression; pub mod file_edit; pub mod file_read; pub mod file_search; pub mod file_write; pub mod get_skill; pub mod http_request; pub mod maintenance; pub mod memory; pub mod path_utils; pub mod pty; pub mod registry; pub mod schema; pub mod send_message; pub mod todo; pub mod traits; pub mod web_fetch; pub use bash::BashTool; pub use browser::BrowserTool; pub use calculator::CalculatorTool; pub use chat_manager::ChatManagerTool; pub use content_search::ContentSearchTool; pub use delegate::DelegateTool; pub use file_edit::FileEditTool; pub use file_read::FileReadTool; pub use file_search::FileSearchTool; pub use file_write::FileWriteTool; pub use get_skill::GetSkillTool; pub use http_request::HttpRequestTool; pub use maintenance::RoutineMaintenanceTool; pub use memory::{MemoryForgetTool, MemoryRecallTool, MemoryStoreTool, TimelineRecallTool}; pub use pty::{PtyManager, PtyTool}; pub use registry::ToolRegistry; pub use send_message::SendMessageTool; pub use todo::TodoTool; pub use traits::{OutboundDelivery, OutboundMessenger, Tool, ToolResult, ToolResultWithMedia}; pub use web_fetch::WebFetchTool; use crate::agent::SubAgentManager; use crate::config::BrowserConfig; use crate::memory::MemoryManager; use crate::skills::SkillsLoader; use std::sync::Arc; /// Create the base tool registry (without send_message). /// `send_message` tool is registered later via `SessionManager::register_outbound_tool()` /// once the available channel names are known. pub fn create_default_tools( skills_loader: Arc, memory: Arc, work_manager: Arc, sub_agent_manager: Option>, browser_config: Option<&BrowserConfig>, ) -> ToolRegistry { let registry = ToolRegistry::new(); registry.register(CalculatorTool::new()); registry.register(FileReadTool::new()); registry.register(FileWriteTool::new()); registry.register(FileEditTool::new()); registry.register(FileSearchTool::new()); registry.register(ContentSearchTool::new()); registry.register(BashTool::new()); registry.register(PtyTool::new(Arc::new(PtyManager::new()))); registry.register(HttpRequestTool::new( vec!["*".to_string()], 1_000_000, 30, false, )); registry.register(WebFetchTool::new(50_000, 30)); registry.register(GetSkillTool::new(skills_loader)); registry.register(MemoryStoreTool::new(memory.clone())); registry.register(MemoryRecallTool::new(memory.clone())); registry.register(TimelineRecallTool::new(memory.clone())); registry.register(MemoryForgetTool::new(memory.clone())); registry.register(TodoTool::new(work_manager)); if let Some(cfg) = browser_config && cfg.enabled { registry.register(BrowserTool::new(cfg)); } if let Some(mgr) = sub_agent_manager { registry.register(DelegateTool::new(mgr)); } registry }