Skip to main content

bamboo_engine/
lib.rs

1//! Bamboo engine — runtime, agent loop, and orchestration.
2
3pub mod app_context;
4pub mod auto_dream;
5pub mod events;
6pub mod external_agents;
7pub mod gardener;
8pub mod gold_auto_answer;
9pub mod ledger_gardener;
10pub mod llm_summarizer;
11pub mod message_hooks;
12pub mod model_areas;
13pub mod model_config_helper;
14pub mod prompt_defaults;
15pub mod resolved_defaults;
16pub mod runtime;
17pub mod sdk;
18pub mod session_app;
19pub mod session_repository;
20pub use session_repository::SessionRepository;
21pub mod title_gen;
22pub mod token_usage_log;
23pub use token_usage_log::TokenUsageRecord;
24
25pub use app_context::AgentSessionContext;
26pub use runtime::execution::agent_spawn::{read_cached_session, SessionCache};
27pub use session_app::child_completion_coordinator::ChildCompletionCoordinator;
28
29// Re-export commonly used types from agent (via dependency)
30pub use bamboo_agent_core::{
31    AgentError, AgentEvent, AgentHook, FunctionCall, FunctionSchema, Message, MessageContent,
32    MessagePart, MessagePhase, PromptSnapshot, Role, Session, TokenUsage, Tool, ToolCall,
33    ToolError, ToolExecutionContext, ToolExecutor, ToolRegistry, ToolResult, ToolSchema,
34};
35
36// Re-export from runtime
37pub use bamboo_domain::RuntimeSessionPersistence;
38pub use runtime::agent::AgentBuilder;
39// `AgentLoopConfig` is intentionally NOT re-exported: its fields are `pub(crate)`,
40// so it cannot be constructed outside the engine. Execution funnels solely through
41// `AgentRuntime::execute`.
42pub use runtime::config::{
43    ApprovalDelegate, AuxiliaryModelConfig, BashResumeHook, ChildApprovalOutcome,
44    ChildApprovalRequest, GuardianConfig, GuardianSpawner, ImageFallbackConfig, ImageFallbackMode,
45};
46pub use runtime::execution::runner_state::{AgentRunner, AgentStatus};
47pub use runtime::hooks::HookRunner;
48pub use runtime::managers::{
49    LifecycleManager, LlmManager, MemoryManager, MiniLoopExecutor, PromptManager, ToolManager,
50};
51pub use runtime::model_roster::{ModelRoster, RoleModel};
52pub use runtime::runtime::{
53    AgentRuntime, AgentRuntimeBuilder, ExecuteRequest, ExecuteRequestBuilder,
54};
55pub use runtime::task_context::TaskLoopContext;
56pub use runtime::task_evaluation::{evaluate_task_progress, TaskEvaluationResult};
57pub use runtime::Agent;
58
59// Re-export from the ergonomic SDK surface (anti-fork single spawn core).
60pub use sdk::runner::{child_runner, ChildRunner, RunChildInput};
61pub use sdk::spawn::run_child_spawn;
62
63// Sub-module re-exports for engine's own runtime modules
64pub mod runner {
65    pub use crate::runtime::runner::*;
66}
67pub mod context {
68    pub use crate::runtime::context::*;
69}
70pub mod execution {
71    pub use crate::runtime::execution::*;
72}
73pub mod config {
74    pub use crate::runtime::config::*;
75}
76pub mod hooks {
77    pub use crate::runtime::hooks::*;
78}
79pub mod managers {
80    pub use crate::runtime::managers::*;
81}
82pub mod stream {
83    pub use crate::runtime::stream::*;
84}
85pub mod task_context {
86    pub use crate::runtime::task_context::*;
87}
88pub mod task_evaluation {
89    pub use crate::runtime::task_evaluation::*;
90}
91pub mod agent {
92    pub use crate::runtime::agent::*;
93}