use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AgentOutputItemResource {
AssistantMessageItemResource(Box<models::AssistantMessageItemResource>),
ReasoningItemResource(Box<models::ReasoningItemResource>),
FunctionCallItemResource(Box<models::FunctionCallItemResource>),
McpCallItemResource(Box<models::McpCallItemResource>),
ComputerUseCallItemResource(Box<models::ComputerUseCallItemResource>),
BrowserAuthenticationRequestItemResource(Box<models::BrowserAuthenticationRequestItemResource>),
WebSearchCallItemResource(Box<models::WebSearchCallItemResource>),
CommandExecutionItemResource(Box<models::CommandExecutionItemResource>),
CreateSubagentCallItemResource(Box<models::CreateSubagentCallItemResource>),
SendSubagentInputCallItemResource(Box<models::SendSubagentInputCallItemResource>),
ResumeSubagentCallItemResource(Box<models::ResumeSubagentCallItemResource>),
WaitForSubagentsCallItemResource(Box<models::WaitForSubagentsCallItemResource>),
InterruptSubagentCallItemResource(Box<models::InterruptSubagentCallItemResource>),
CloseSubagentCallItemResource(Box<models::CloseSubagentCallItemResource>),
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Role {
Assistant,
}
impl Default for Role {
fn default() -> Role {
Self::Assistant
}
}