Skip to main content

bamboo_tools/
lib.rs

1//! Built-in tools for filesystem and command execution.
2//!
3//! This crate provides a plugin-based tool system using the ToolRegistry pattern.
4//! All tools implement the `Tool` trait and can be dynamically registered.
5
6pub mod approval;
7pub mod events;
8pub mod executor;
9pub mod exposure;
10pub mod guide;
11pub mod orchestrator;
12pub mod output_manager;
13pub mod parallel;
14pub use bamboo_permission as permission;
15pub mod slash_commands;
16#[allow(clippy::module_inception)]
17pub mod tools;
18
19// Re-export executor types
20pub use executor::{BuiltinToolExecutor, BuiltinToolExecutorBuilder};
21
22// Re-export cross-process approval proxy (Phase 2: child → parent delegation)
23pub use approval::{current_approval_proxy, with_approval_proxy, ApprovalAsk, ApprovalProxy};
24
25// Re-export tool name utilities
26pub use bamboo_domain::tool_names::{
27    is_builtin_tool, normalize_tool_ref, resolve_alias, BUILTIN_TOOL_NAMES,
28};
29
30// Re-export guide system types
31pub use guide::{
32    context::{GuideBuildContext, GuideLanguage},
33    EnhancedPromptBuilder, ToolCategory, ToolExample, ToolGuide, ToolGuideSpec,
34};
35
36// Re-export orchestration types
37pub use events::{ToolEmitter, ToolEvent, ToolEventPhase};
38pub use orchestrator::{
39    classify_tool, OrchestratorConfig, OrchestratorResult, ToolMutability, ToolOrchestrator,
40};
41pub use parallel::{ToolCallResult, ToolCallRuntime};
42
43// Re-export output manager types
44pub use output_manager::{ArtifactRef, ToolOutputManager};
45
46// Re-export all tool implementations
47pub use tools::{
48    BashInputTool, BashOutputTool, BashTool, ConclusionWithOptionsTool, EditTool, ExitPlanModeTool,
49    GlobTool, GrepTool, KillShellTool, NotebookEditTool, ReadTool, SlashCommandTool, TaskTool,
50    ToolRegistry, WebFetchTool, WebSearchTool, WriteTool,
51};
52
53// Re-export task types for convenience
54pub use bamboo_domain::{TaskItem, TaskItemStatus, TaskList};
55
56#[cfg(test)]
57mod registry_tests;