Skip to main content

j_agent/
tools.rs

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/// 工具名称常量 — 所有工具的 NAME 统一在此导出,避免硬编码
36#[allow(dead_code)] // 常量按需引用,非全部立即使用
37pub 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}