Skip to main content

bamboo_engine/runtime/
mod.rs

1//! Agent execution runtime: loop, stream handling, task evaluation.
2
3pub mod agent;
4pub mod complexity_classifier;
5pub mod config;
6pub mod context;
7pub mod counted_loop;
8pub mod execution;
9pub(crate) mod final_evidence;
10pub mod goal_recovery;
11pub mod goal_state;
12pub mod gold_evaluation;
13pub mod guardian_state;
14pub mod hooks;
15#[doc(hidden)]
16pub mod host_gold;
17pub mod loop_control;
18pub mod managers;
19pub mod model_roster;
20pub mod runner;
21#[allow(clippy::module_inception)]
22pub mod runtime;
23pub mod stream;
24pub mod task_context;
25pub mod task_evaluation;
26
27pub use agent::{Agent, AgentBuilder};
28pub use bamboo_domain::RuntimeSessionPersistence;
29pub use complexity_classifier::{ComplexityClassifier, TaskComplexity};
30pub use config::{
31    ApprovalDelegate, ChildApprovalOutcome, ChildApprovalRequest, DisabledFilterResolver,
32    DisabledFilterSets, GoldConfig, GuardianConfig, GuardianSpawner, ImageFallbackConfig,
33    ImageFallbackMode,
34};
35// `AgentLoopConfig` is intentionally NOT re-exported: its fields are `pub(crate)`,
36// so it is unconstructible outside the engine. Internal call sites reach it via
37// `crate::runtime::config::AgentLoopConfig`. External code drives the loop only
38// through `AgentRuntime::execute`.
39pub use counted_loop::CountedLoopConfig;
40pub use execution::runner_state::{AgentRunner, AgentStatus};
41pub use hooks::{
42    test_lifecycle_handler, test_lifecycle_shell_command, HookRunner, LifecycleHookEvent,
43    LifecycleHookTestOutput, LifecycleScriptRunner, ScriptHook, ShellCommandHook, ShellHookEvent,
44    ShellHookTestOutput,
45};
46pub use loop_control::{LoopControlConfig, SupervisorLoopControlGrant};
47pub use managers::{
48    LifecycleManager, LlmManager, MemoryManager, MiniLoopExecutor, PromptManager, ToolManager,
49};
50pub use model_roster::{ModelRoster, RoleModel};
51pub use runtime::{AgentRuntime, AgentRuntimeBuilder, ExecuteRequest, ExecuteRequestBuilder};
52pub use task_context::TaskLoopContext;
53pub use task_evaluation::{evaluate_task_progress, TaskEvaluationResult};
54
55#[cfg(test)]
56mod tests;