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