1pub mod ask;
2pub mod background;
3mod browser;
4pub mod classification;
5pub mod compact_tool;
6#[cfg(target_os = "macos")]
7mod computer_use;
8pub mod definition;
9pub mod derived_shared;
10mod file;
11mod grep;
12pub mod hook;
13pub mod ignore_message;
14pub mod load_tool;
15pub mod plan;
16pub mod send_message;
17mod session;
18mod shell;
19pub mod skill;
20pub mod sub_agent;
21pub mod task;
22pub mod teammate_tool;
23pub mod todo;
24mod web_fetch;
25mod web_search;
26pub mod work_done;
27pub mod worktree;
28
29pub use crate::util::path_utils::{effective_cwd, expand_tilde, resolve_path};
30pub use crate::util::shell_safety::{check_blocking_command, is_dangerous_command};
31pub use definition::{
32 ImageData, PlanDecision, Tool, ToolRegistry, ToolResult, parse_tool_args, schema_to_tool_params,
33};
34
35#[allow(dead_code)] pub mod tool_names {
38 pub const SHELL: &str = super::shell::ShellTool::NAME;
39 pub const READ: &str = super::file::ReadFileTool::NAME;
40 pub const WRITE: &str = super::file::WriteFileTool::NAME;
41 pub const EDIT: &str = super::file::EditFileTool::NAME;
42 pub const GLOB: &str = super::file::GlobTool::NAME;
43 pub const GREP: &str = super::grep::GrepTool::NAME;
44 pub const BROWSER: &str = super::browser::BrowserTool::NAME;
45 pub const WEB_FETCH: &str = super::web_fetch::WebFetchTool::NAME;
46 pub const WEB_SEARCH: &str = super::web_search::WebSearchTool::NAME;
47 pub const ASK: &str = super::ask::AskTool::NAME;
48 pub const TASK_OUTPUT: &str = super::background::TaskOutputTool::NAME;
49 pub const TASK: &str = super::task::TaskTool::NAME;
50 pub const TODO_WRITE: &str = super::todo::TodoWriteTool::NAME;
51 pub const TODO_READ: &str = super::todo::TodoReadTool::NAME;
52 pub const COMPACT: &str = super::compact_tool::CompactTool::NAME;
53 pub const REGISTER_HOOK: &str = super::hook::RegisterHookTool::NAME;
54 #[cfg(target_os = "macos")]
55 pub const COMPUTER_USE: &str = super::computer_use::ComputerUseTool::NAME;
56 pub const ENTER_PLAN_MODE: &str = super::plan::EnterPlanModeTool::NAME;
57 pub const EXIT_PLAN_MODE: &str = super::plan::ExitPlanModeTool::NAME;
58 pub const ENTER_WORKTREE: &str = super::worktree::EnterWorktreeTool::NAME;
59 pub const EXIT_WORKTREE: &str = super::worktree::ExitWorktreeTool::NAME;
60 pub const LOAD_SKILL: &str = super::skill::LoadSkillTool::NAME;
61 pub const LOAD_TOOL: &str = super::load_tool::LoadTool::NAME;
62 pub const AGENT: &str = super::sub_agent::SubAgentTool::NAME;
63 pub const TEAMMATE: &str = super::teammate_tool::TeammateTool::NAME;
64 pub const SEND_MESSAGE: &str = super::send_message::SendMessageTool::NAME;
65 pub const WORK_DONE: &str = super::work_done::WorkDoneTool::NAME;
66 pub const IGNORE_MESSAGE: &str = super::ignore_message::IgnoreMessageTool::NAME;
67 pub const SESSION: &str = super::session::SessionTool::NAME;
68}