pub mod bash; pub mod calculator; pub mod file_edit; pub mod file_read; pub mod file_write; pub mod get_skill; pub mod http_request; pub mod registry; pub mod schema; pub mod send_message; pub mod traits; pub mod web_fetch; pub use bash::BashTool; pub use calculator::CalculatorTool; pub use file_edit::FileEditTool; pub use file_read::FileReadTool; pub use file_write::FileWriteTool; pub use get_skill::GetSkillTool; pub use http_request::HttpRequestTool; pub use registry::ToolRegistry; pub use schema::{CleaningStrategy, SchemaCleanr}; pub use send_message::SendMessageTool; pub use traits::{OutboundMessenger, Tool, ToolResult}; pub use web_fetch::WebFetchTool; use std::sync::Arc; use crate::skills::SkillsLoader; /// 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) -> ToolRegistry { let registry = ToolRegistry::new(); registry.register(CalculatorTool::new()); registry.register(FileReadTool::new()); registry.register(FileWriteTool::new()); registry.register(FileEditTool::new()); registry.register(BashTool::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 }