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