Skip to main content

agent_core/controller/tools/
mod.rs

1//! Tool execution framework with built-in tools.
2
3mod ask_for_permissions;
4mod ask_user_questions;
5mod bash;
6mod edit_file;
7mod executor;
8mod glob;
9mod grep;
10mod ls;
11mod multi_edit;
12mod permission_registry;
13mod read_file;
14mod registry;
15mod types;
16mod user_interaction;
17mod web_search;
18mod write_file;
19
20pub use ask_for_permissions::{
21    AskForPermissionsTool, PermissionCategory, PermissionRequest, PermissionResponse,
22    PermissionScope, ASK_FOR_PERMISSIONS_TOOL_DESCRIPTION, ASK_FOR_PERMISSIONS_TOOL_NAME,
23    ASK_FOR_PERMISSIONS_TOOL_SCHEMA,
24};
25pub use ask_user_questions::{
26    Answer, AskUserQuestionsRequest, AskUserQuestionsResponse, AskUserQuestionsTool, Question,
27    ValidationError, ValidationErrorCode, ValidationErrorDetail, ASK_USER_QUESTIONS_TOOL_DESCRIPTION,
28    ASK_USER_QUESTIONS_TOOL_NAME, ASK_USER_QUESTIONS_TOOL_SCHEMA,
29};
30pub use executor::ToolExecutor;
31pub use ls::{LsTool, LS_TOOL_DESCRIPTION, LS_TOOL_NAME, LS_TOOL_SCHEMA};
32pub use read_file::{
33    ReadFileTool, READ_FILE_TOOL_DESCRIPTION, READ_FILE_TOOL_NAME, READ_FILE_TOOL_SCHEMA,
34};
35pub use registry::{RegistryError, ToolRegistry};
36pub use types::{
37    DisplayConfig, DisplayResult, Executable, ResultContentType, ToolBatchResult, ToolContext,
38    ToolDefinition, ToolRequest, ToolResult, ToolResultStatus, ToolType,
39};
40pub use permission_registry::{PendingPermissionInfo, PermissionError, PermissionGrant, PermissionRegistry};
41pub use user_interaction::{PendingQuestionInfo, UserInteractionError, UserInteractionRegistry};
42pub use crate::client::models::Tool as LLMTool;
43pub use web_search::{
44    WebSearchTool, WEB_SEARCH_TOOL_DESCRIPTION, WEB_SEARCH_TOOL_NAME, WEB_SEARCH_TOOL_SCHEMA,
45};
46pub use write_file::{
47    WriteFileTool, WRITE_FILE_TOOL_DESCRIPTION, WRITE_FILE_TOOL_NAME, WRITE_FILE_TOOL_SCHEMA,
48};
49pub use grep::{
50    GrepTool, OutputMode as GrepOutputMode, GREP_TOOL_DESCRIPTION, GREP_TOOL_NAME,
51    GREP_TOOL_SCHEMA,
52};
53pub use glob::{
54    GlobTool, GLOB_TOOL_DESCRIPTION, GLOB_TOOL_NAME, GLOB_TOOL_SCHEMA,
55};
56pub use bash::{
57    BashTool, BASH_TOOL_DESCRIPTION, BASH_TOOL_NAME, BASH_TOOL_SCHEMA,
58};
59pub use edit_file::{
60    EditFileTool, EDIT_FILE_TOOL_DESCRIPTION, EDIT_FILE_TOOL_NAME, EDIT_FILE_TOOL_SCHEMA,
61};
62pub use multi_edit::{
63    MultiEditTool, MULTI_EDIT_TOOL_DESCRIPTION, MULTI_EDIT_TOOL_NAME, MULTI_EDIT_TOOL_SCHEMA,
64};