pub async fn process_step<A, F>(
agent: &A,
session: &mut Session<A::Msg>,
decision: StepDecision<A::Action>,
step_num: usize,
detector: &mut LoopDetector,
on_event: &mut F,
) -> Result<Option<usize>, A::Error>Expand description
Post-decision processing: loop detection, action execution, session updates.
Shared between run_loop, run_loop_stream, and custom loops (e.g. TUI).
Returns Some(step_num) if the loop should stop, None to continue.