Skip to main content

bamboo_engine/
lib.rs

1//! Bamboo engine — runtime, skills, metrics, MCP.
2
3pub mod mcp;
4pub mod metrics;
5pub mod runtime;
6pub mod skills;
7
8// Re-export commonly used types from agent (via dependency)
9pub use bamboo_agent_core::{
10    AgentError, AgentEvent, AgentHook, FunctionCall, FunctionSchema, Message, MessageContent,
11    MessagePart, MessagePhase, PromptSnapshot, Role, Session, TokenUsage, Tool, ToolCall,
12    ToolError, ToolExecutionContext, ToolExecutor, ToolRegistry, ToolResult, ToolSchema,
13};
14
15// Re-export from runtime
16pub use runtime::agent::AgentBuilder;
17pub use runtime::config::AgentLoopConfig;
18pub use runtime::config::{ImageFallbackConfig, ImageFallbackMode};
19pub use runtime::execution::runner_state::{AgentRunner, AgentStatus};
20pub use runtime::hooks::HookRunner;
21pub use runtime::managers::{
22    LifecycleManager, LlmManager, MemoryManager, MiniLoopExecutor, PromptManager, ToolManager,
23};
24pub use runtime::runner::run_agent_loop_with_config;
25pub use runtime::runtime::{AgentRuntime, AgentRuntimeBuilder, ExecuteRequest};
26pub use runtime::task_context::TaskLoopContext;
27pub use runtime::task_evaluation::{evaluate_task_progress, TaskEvaluationResult};
28pub use runtime::Agent;
29
30// Sub-module re-exports for backward compatibility
31pub mod runner {
32    pub use crate::runtime::runner::*;
33}
34pub mod context {
35    pub use crate::runtime::context::*;
36}
37pub mod execution {
38    pub use crate::runtime::execution::*;
39}
40pub mod config {
41    pub use crate::runtime::config::*;
42}
43pub mod hooks {
44    pub use crate::runtime::hooks::*;
45}
46pub mod managers {
47    pub use crate::runtime::managers::*;
48}
49pub mod stream {
50    pub use crate::runtime::stream::*;
51}
52pub mod task_context {
53    pub use crate::runtime::task_context::*;
54}
55pub mod task_evaluation {
56    pub use crate::runtime::task_evaluation::*;
57}
58pub mod agent {
59    pub use crate::runtime::agent::*;
60}
61pub mod types {
62    pub use crate::skills::types::*;
63}
64pub mod access_control {
65    pub use crate::skills::access_control::*;
66}
67pub mod selection {
68    pub use crate::skills::selection::*;
69}
70pub mod resource_helpers {
71    pub use crate::skills::resource_helpers::*;
72}
73pub mod runtime_metadata {
74    pub use crate::skills::runtime_metadata::*;
75}
76pub mod session_port {
77    pub use crate::skills::session_port::*;
78}
79pub mod store {
80    pub use crate::skills::store::*;
81}
82pub use skills::types::{SkillDefinition, SkillFilter, SkillStoreConfig};
83pub use skills::SkillManager;
84pub use skills::SkillStore;
85pub use skills::SkillUpdate;
86
87// Re-export from metrics
88pub use metrics::aggregator::{aggregate_monthly, aggregate_weekly, PeriodMetrics};
89pub use metrics::bus::MetricsBus;
90pub use metrics::collector::MetricsCollector;
91pub use metrics::events::MetricsEvent;
92pub use metrics::storage::{MetricsError, MetricsResult, MetricsStorage, SqliteMetricsStorage};
93pub use metrics::types::*;
94pub use metrics::worker::MetricsWorker;
95
96// Re-export from MCP
97pub use mcp::config::*;
98pub use mcp::executor::{CompositeToolExecutor, McpToolExecutor};
99pub use mcp::manager::McpServerManager;
100pub use mcp::types::*;