pub async fn drain_until(
receiver: &mut Receiver<AgentEvent>,
predicate: impl Fn(&AgentEvent) -> bool,
) -> Vec<AgentEvent>pub async fn drain_until(
receiver: &mut Receiver<AgentEvent>,
predicate: impl Fn(&AgentEvent) -> bool,
) -> Vec<AgentEvent>