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