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