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;
14mod permission_override;
15pub use bamboo_permission as permission;
16pub mod slash_commands;
17#[allow(clippy::module_inception)]
18pub mod tools;
19
20// Re-export executor types
21pub use executor::{BuiltinToolExecutor, BuiltinToolExecutorBuilder};
22
23// Re-export cross-process approval proxy (Phase 2: child → parent delegation)
24pub use approval::{current_approval_proxy, with_approval_proxy, ApprovalAsk, ApprovalProxy};
25pub use permission_override::{
26    current_hook_permission_override, with_hook_permission_override, HookPermissionOverride,
27};
28
29// Re-export tool name utilities
30pub use bamboo_domain::tool_names::{
31    is_builtin_tool, normalize_tool_ref, resolve_alias, BUILTIN_TOOL_NAMES,
32};
33
34// Re-export guide system types
35pub use guide::{
36    context::{GuideBuildContext, GuideLanguage},
37    EnhancedPromptBuilder, ToolCategory, ToolExample, ToolGuide, ToolGuideSpec,
38};
39
40// Re-export orchestration types
41pub use events::{ToolEmitter, ToolEvent, ToolEventPhase};
42pub use orchestrator::{
43    classify_tool, OrchestratorConfig, OrchestratorResult, ToolMutability, ToolOrchestrator,
44};
45pub use parallel::{ToolCallResult, ToolCallRuntime};
46
47// Re-export output manager types
48pub use output_manager::{ArtifactRef, ToolOutputManager};
49
50// Re-export all tool implementations
51pub use tools::{
52    BashInputTool, BashOutputTool, BashTool, ConclusionWithOptionsTool, EditTool, ExitPlanModeTool,
53    GlobTool, GrepTool, KillShellTool, NotebookEditTool, ReadTool, SlashCommandTool, TaskTool,
54    ToolRegistry, WebFetchTool, WebSearchTool, WriteTool,
55};
56
57// Re-export task types for convenience
58pub use bamboo_domain::{TaskItem, TaskItemStatus, TaskList};
59
60#[cfg(test)]
61mod registry_tests;