pub fn drain_event_queue(
queue: &EventQueue,
messages: &mut Vec<Arc<Value>>,
pending_events: &mut Vec<String>,
busy: bool,
steer_tx: Option<&UnboundedSender<String>>,
) -> Vec<DrainedEvent>Expand description
Drain every event currently in queue.
For each event:
- busy (streaming or compact running):
- try to steer via
steer_tx; on success →Steered - if no live channel →
Buffered(pushed topending_events)
- try to steer via
- idle: inject as a
role=userSharedMessage→Injected
Formatting is always done via the existing format_event_for_agent so
canonical output is produced in exactly one place.