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 bamboo_domain::RuntimeSessionPersistence;
17pub use runtime::agent::AgentBuilder;
18pub use runtime::config::AgentLoopConfig;
19pub use runtime::config::{ImageFallbackConfig, ImageFallbackMode};
20pub use runtime::execution::runner_state::{AgentRunner, AgentStatus};
21pub use runtime::hooks::HookRunner;
22pub use runtime::managers::{
23    LifecycleManager, LlmManager, MemoryManager, MiniLoopExecutor, PromptManager, ToolManager,
24};
25pub use runtime::runner::run_agent_loop_with_config;
26pub use runtime::runtime::{AgentRuntime, AgentRuntimeBuilder, ExecuteRequest};
27pub use runtime::task_context::TaskLoopContext;
28pub use runtime::task_evaluation::{evaluate_task_progress, TaskEvaluationResult};
29pub use runtime::Agent;
30
31// Sub-module re-exports for backward compatibility
32pub mod runner {
33    pub use crate::runtime::runner::*;
34}
35pub mod context {
36    pub use crate::runtime::context::*;
37}
38pub mod execution {
39    pub use crate::runtime::execution::*;
40}
41pub mod config {
42    pub use crate::runtime::config::*;
43}
44pub mod hooks {
45    pub use crate::runtime::hooks::*;
46}
47pub mod managers {
48    pub use crate::runtime::managers::*;
49}
50pub mod stream {
51    pub use crate::runtime::stream::*;
52}
53pub mod task_context {
54    pub use crate::runtime::task_context::*;
55}
56pub mod task_evaluation {
57    pub use crate::runtime::task_evaluation::*;
58}
59pub mod agent {
60    pub use crate::runtime::agent::*;
61}
62pub mod types {
63    pub use crate::skills::types::*;
64}
65pub mod access_control {
66    pub use crate::skills::access_control::*;
67}
68pub mod selection {
69    pub use crate::skills::selection::*;
70}
71pub mod resource_helpers {
72    pub use crate::skills::resource_helpers::*;
73}
74pub mod runtime_metadata {
75    pub use crate::skills::runtime_metadata::*;
76}
77pub mod session_port {
78    pub use crate::skills::session_port::*;
79}
80pub mod store {
81    pub use crate::skills::store::*;
82}
83pub use skills::types::{SkillDefinition, SkillFilter, SkillStoreConfig};
84pub use skills::SkillManager;
85pub use skills::SkillStore;
86pub use skills::SkillUpdate;
87
88// Re-export from metrics
89pub use metrics::aggregator::{aggregate_monthly, aggregate_weekly, PeriodMetrics};
90pub use metrics::bus::MetricsBus;
91pub use metrics::collector::MetricsCollector;
92pub use metrics::events::MetricsEvent;
93pub use metrics::storage::{MetricsError, MetricsResult, MetricsStorage, SqliteMetricsStorage};
94pub use metrics::types::*;
95pub use metrics::worker::MetricsWorker;
96
97// Re-export from MCP
98pub use mcp::config::*;
99pub use mcp::executor::{CompositeToolExecutor, McpToolExecutor};
100pub use mcp::manager::McpServerManager;
101pub use mcp::types::*;