99 lines
3.0 KiB
Rust
99 lines
3.0 KiB
Rust
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<SkillsLoader>,
|
|
memory: Arc<MemoryManager>,
|
|
work_manager: Arc<crate::work::WorkManager>,
|
|
sub_agent_manager: Option<Arc<SubAgentManager>>,
|
|
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
|
|
}
|