use locode_protocol::{Status, ToolCallRecord, Usage};
pub(crate) enum Terminal {
Completed { final_message: Option<String> },
MaxTurns,
ModelError { error: String },
Error { error: String },
Cancelled,
}
impl Terminal {
pub(crate) fn status(&self) -> Status {
match self {
Terminal::Completed { .. } => Status::Completed,
Terminal::MaxTurns => Status::MaxTurns,
Terminal::ModelError { .. } => Status::ModelError,
Terminal::Error { .. } => Status::Error,
Terminal::Cancelled => Status::Cancelled,
}
}
}
#[derive(Default)]
pub(crate) struct RunAcc {
pub(crate) turns: u32,
pub(crate) tool_calls: Vec<ToolCallRecord>,
pub(crate) usage: Usage,
pub(crate) last_assistant_text: Option<String>,
pub(crate) last_stop: Option<String>,
}