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