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;
5mod auto_dream_privacy;
6pub mod capability_discovery;
7pub mod events;
8pub mod external_agents;
9pub mod gardener;
10pub mod gold_auto_answer;
11pub mod ledger_gardener;
12pub mod llm_summarizer;
13pub mod message_hooks;
14pub mod model_areas;
15pub mod model_config_helper;
16pub mod placement_scheduler;
17pub mod project_context;
18pub mod prompt_defaults;
19pub mod resolved_defaults;
20pub mod runtime;
21pub mod sdk;
22pub mod session_activation;
23pub mod session_app;
24pub mod session_cache;
25pub mod ticket_runtime;
26pub mod ticket_worker_plan;
27pub use session_cache::SessionSnapshot;
28pub mod session_messaging;
29pub mod session_repository;
30pub use session_repository::SessionRepository;
31#[cfg(feature = "test-utils")]
32pub mod test_utils;
33pub mod title_gen;
34pub mod token_usage_log;
35pub mod workflow_run;
36pub use token_usage_log::TokenUsageRecord;
37pub use workflow_run::{
38    AgentStepPort, AgentStepResult, FileWorkflowRunRepository, NamedAgentSpec, PermissionDecision,
39    WorkflowDefinitionPort, WorkflowPolicyPort, WorkflowPolicyTarget, WorkflowRunEngine,
40    WorkflowRunError, WorkflowRunRepository, WorkflowSecretMaterial, WorkflowSecretResolverPort,
41    WorkflowSessionPermissionPort,
42};
43
44pub use app_context::AgentSessionContext;
45pub use runtime::execution::agent_spawn::{read_cached_session, SessionCache};
46pub use session_activation::{
47    SessionActivationLaunch, SessionActivationReserveOutcome, SessionActivationRouter,
48    SessionActivationSpawner, SessionRunRegistration, SessionRunRegistrationError,
49};
50pub use session_app::child_completion_coordinator::ChildCompletionCoordinator;
51pub use session_messaging::{
52    SessionMessagingMetrics, SessionMessagingMetricsSnapshot, SessionMessenger,
53    SessionMessengerAdmission, SessionMessengerError, SessionMessengerReceipt,
54    SessionPeerDeliveryReceipt,
55};
56
57// Re-export commonly used types from agent (via dependency)
58pub use bamboo_agent_core::{
59    AgentError, AgentEvent, AgentHook, FunctionCall, FunctionSchema, Message, MessageContent,
60    MessagePart, MessagePhase, PromptSnapshot, Role, Session, TokenUsage, Tool, ToolCall,
61    ToolError, ToolExecutionContext, ToolExecutor, ToolRegistry, ToolResult, ToolSchema,
62};
63
64// Re-export hook contracts and runtime persistence so consumers can configure
65// lifecycle hooks without depending on the domain crate directly.
66pub use bamboo_domain::{
67    AgentHookPoint, HookPayload, HookResult, HookToolOutcome, RuntimeSessionPersistence,
68};
69pub use runtime::agent::{AgentBuilder, DirectExecutionLease};
70// `AgentLoopConfig` is intentionally NOT re-exported: its fields are `pub(crate)`,
71// so it cannot be constructed outside the engine. Execution funnels solely through
72// `AgentRuntime::execute`.
73pub use runtime::config::{
74    ApprovalDelegate, AuxiliaryModelConfig, BashResumeHook, ChildApprovalOutcome,
75    ChildApprovalRequest, DisabledFilterResolver, DisabledFilterSets, GuardianConfig,
76    GuardianSpawner, ImageFallbackConfig, ImageFallbackMode,
77};
78pub use runtime::counted_loop::CountedLoopConfig;
79pub use runtime::execution::runner_state::{AgentRunner, AgentStatus};
80pub use runtime::execution::{
81    VisibleAssistantMessage, VisibleMessageEvent, VisibleMessageEventKind, VisibleMessageSnapshot,
82    VisibleMessageStream,
83};
84pub use runtime::hooks::{
85    test_lifecycle_handler, test_lifecycle_shell_command, HookRunner, LifecycleHookEvent,
86    LifecycleHookTestOutput, LifecycleScriptRunner, ScriptHook, ShellCommandHook, ShellHookEvent,
87    ShellHookTestOutput,
88};
89pub use runtime::loop_control::{LoopControlConfig, SupervisorLoopControlGrant};
90pub use runtime::managers::{
91    LifecycleManager, LlmManager, MemoryManager, MiniLoopExecutor, PromptManager, ToolManager,
92};
93pub use runtime::model_roster::{ModelRoster, RoleModel};
94pub use runtime::runtime::{
95    AgentRuntime, AgentRuntimeBuilder, ExecuteRequest, ExecuteRequestBuilder,
96};
97pub use runtime::task_context::TaskLoopContext;
98pub use runtime::task_evaluation::{evaluate_task_progress, TaskEvaluationResult};
99pub use runtime::Agent;
100
101// Re-export from the ergonomic SDK surface (anti-fork single spawn core).
102pub use sdk::runner::{child_runner, ChildRunner, RunChildInput};
103pub use sdk::spawn::run_child_spawn;
104
105// Sub-module re-exports for engine's own runtime modules
106pub mod runner {
107    pub use crate::runtime::runner::*;
108}
109pub mod context {
110    pub use crate::runtime::context::*;
111}
112pub mod execution {
113    pub use crate::runtime::execution::*;
114}
115pub mod config {
116    pub use crate::runtime::config::*;
117}
118pub mod hooks {
119    pub use crate::runtime::hooks::*;
120}
121pub mod managers {
122    pub use crate::runtime::managers::*;
123}
124pub mod stream {
125    pub use crate::runtime::stream::*;
126}
127pub mod task_context {
128    pub use crate::runtime::task_context::*;
129}
130pub mod task_evaluation {
131    pub use crate::runtime::task_evaluation::*;
132}
133pub mod agent {
134    pub use crate::runtime::agent::*;
135}
136
137#[cfg(test)]
138mod inherited_wait_regression_tests;