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