pub fn run_loop_stream_with_context(
agent: Arc<dyn Agent>,
tools: HashMap<String, Arc<dyn Tool>>,
run_ctx: RunContext,
run_identity: RunIdentity,
cancellation_token: Option<RunCancellationToken>,
state_committer: Option<Arc<dyn StateCommitter>>,
decision_rx: Option<UnboundedReceiver<ToolCallDecision>>,
) -> Pin<Box<dyn Stream<Item = AgentEvent> + Send>>