bamboo_engine/runtime/
runner.rs1use bamboo_agent_core::TokenUsage;
7use bamboo_agent_core::{AgentError, Session};
8
9pub mod image_fallback;
10mod logging;
11mod loop_execution;
12mod metrics_lifecycle;
13pub(crate) mod prompt_context;
14pub(crate) mod round_frame;
15pub(crate) mod round_lifecycle;
16pub(crate) mod round_prelude;
17pub(crate) mod session_finalize;
18pub(crate) mod session_setup;
19pub(crate) mod state_bridge;
20mod task_lifecycle;
21pub(crate) mod tool_execution;
22mod workspace_context;
23
24pub use bamboo_agent_core::PromptSnapshot;
25pub(crate) use loop_execution::run_agent_loop_with_config;
26
27pub fn read_prompt_snapshot(session: &Session) -> Option<PromptSnapshot> {
28 session_setup::read_prompt_snapshot(session)
29}
30
31pub fn refresh_prompt_snapshot(session: &mut Session) {
32 session_setup::refresh_prompt_snapshot(session)
33}
34
35pub(super) fn to_event_token_usage(prompt_tokens: u64, completion_tokens: u64) -> TokenUsage {
36 let mut usage = TokenUsage {
37 prompt_tokens,
38 completion_tokens,
39 total_tokens: 0,
40 };
41 usage.recompute_total();
42 usage
43}
44
45pub type Result<T> = std::result::Result<T, AgentError>;
47
48#[cfg(test)]
49mod tests;