mirror of
https://github.com/openai/codex.git
synced 2026-09-15 12:08:01 +00:00
16 lines
737 B
Rust
16 lines
737 B
Rust
use codex_protocol::protocol::AgentStatus;
|
|
use codex_protocol::protocol::EventMsg;
|
|
|
|
/// Derive the next agent status from a single emitted event.
|
|
/// Returns `None` when the event does not affect status tracking.
|
|
pub(crate) fn agent_status_from_event(msg: &EventMsg) -> Option<AgentStatus> {
|
|
match msg {
|
|
EventMsg::TurnStarted(_) => Some(AgentStatus::Running),
|
|
EventMsg::TurnComplete(ev) => Some(AgentStatus::Completed(ev.last_agent_message.clone())),
|
|
EventMsg::TurnAborted(ev) => Some(AgentStatus::Errored(format!("{:?}", ev.reason))),
|
|
EventMsg::Error(ev) => Some(AgentStatus::Errored(ev.message.clone())),
|
|
EventMsg::ShutdownComplete => Some(AgentStatus::Shutdown),
|
|
_ => None,
|
|
}
|
|
}
|