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