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 events;
7pub mod executor;
8pub mod exposure;
9pub mod guide;
10pub mod orchestrator;
11pub mod output_manager;
12pub mod parallel;
13pub mod permission;
14pub mod slash_commands;
15#[allow(clippy::module_inception)]
16pub mod tools;
17
18// Re-export executor types
19pub use executor::{BuiltinToolExecutor, BuiltinToolExecutorBuilder};
20
21// Re-export tool name utilities
22pub use bamboo_domain::tool_names::{
23    is_builtin_tool, normalize_tool_ref, resolve_alias, BUILTIN_TOOL_NAMES,
24};
25
26// Re-export guide system types
27pub use guide::{
28    context::{GuideBuildContext, GuideLanguage},
29    EnhancedPromptBuilder, ToolCategory, ToolExample, ToolGuide, ToolGuideSpec,
30};
31
32// Re-export orchestration types
33pub use events::{ToolEmitter, ToolEvent, ToolEventPhase};
34pub use orchestrator::{
35    classify_tool, OrchestratorConfig, OrchestratorResult, ToolMutability, ToolOrchestrator,
36};
37pub use parallel::{ToolCallResult, ToolCallRuntime};
38
39// Re-export output manager types
40pub use output_manager::{ArtifactRef, ToolOutputManager};
41
42// Re-export all tool implementations
43pub use tools::{
44    BashOutputTool, BashTool, ConclusionWithOptionsTool, EditTool, ExitPlanModeTool, GlobTool,
45    GrepTool, KillShellTool, NotebookEditTool, ReadTool, SlashCommandTool, TaskTool, ToolRegistry,
46    WebFetchTool, WebSearchTool, WriteTool,
47};
48
49// Re-export task types for convenience
50pub use bamboo_domain::{TaskItem, TaskItemStatus, TaskList};
51
52#[cfg(test)]
53mod registry_tests;