use std::sync::Arc;
use bamboo_agent_core::tools::ToolExecutor;
use bamboo_agent_core::AgentEvent;
use bamboo_infrastructure::LLMProvider;
use tokio::sync::mpsc;
use crate::metrics::MetricsCollector;
use crate::runtime::config::AgentLoopConfig;
pub(crate) struct RoundFrame<'a> {
pub session_id: &'a str,
pub round_id: &'a str,
pub turn: usize,
pub debug_enabled: bool,
pub event_tx: &'a mpsc::Sender<AgentEvent>,
pub metrics_collector: Option<&'a MetricsCollector>,
pub config: &'a AgentLoopConfig,
pub llm: &'a Arc<dyn LLMProvider>,
pub tools: &'a Arc<dyn ToolExecutor>,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn round_frame_fields_are_accessible() {
fn _assert_send<T: Send>() {}
fn _assert_sync<T: Sync>() {}
_assert_send::<RoundFrame<'_>>();
_assert_sync::<RoundFrame<'_>>();
}
}