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