Download codex-rs/core/src/agent/status.rs from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 1.29 kB
-
https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/core/src/agent/status.rs
- Command line
-
hf download hf://SaylorTwift/codex/codex-rs/core/src/agent/status.rs
-
curl -L -o status.rs https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/core/src/agent/status.rs
1.29 kB
| 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(match &ev.error { | |
| Some(error) => AgentStatus::Errored(error.message.clone()), | |
| None => AgentStatus::Completed(ev.last_agent_message.clone()), | |
| }), | |
| EventMsg::TurnAborted(ev) => match ev.reason { | |
| codex_protocol::protocol::TurnAbortReason::Interrupted | |
| | codex_protocol::protocol::TurnAbortReason::BudgetLimited => { | |
| Some(AgentStatus::Interrupted) | |
| } | |
| _ => Some(AgentStatus::Errored(format!("{:?}", ev.reason))), | |
| }, | |
| EventMsg::Error(ev) => Some(AgentStatus::Errored(ev.message.clone())), | |
| EventMsg::ShutdownComplete => Some(AgentStatus::Shutdown), | |
| _ => None, | |
| } | |
| } | |
| pub(crate) fn is_final(status: &AgentStatus) -> bool { | |
| !matches!( | |
| status, | |
| AgentStatus::PendingInit | AgentStatus::Running | AgentStatus::Interrupted | |
| ) | |
| } | |