use super::{AgentConfig, AgentLoop};
use crate::llm::LlmClient;
use crate::session_lane_queue::SessionLaneQueue;
use crate::tools::{ToolContext, ToolExecutor};
use std::sync::Arc;
impl AgentLoop {
pub(crate) fn new(
llm_client: Arc<dyn LlmClient>,
tool_executor: Arc<ToolExecutor>,
tool_context: ToolContext,
config: AgentConfig,
) -> Self {
Self {
llm_client,
tool_executor,
tool_context,
config,
command_queue: None,
}
}
pub fn with_queue(mut self, queue: Arc<SessionLaneQueue>) -> Self {
self.command_queue = Some(queue);
self
}
}