use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum BetaItem {
BetaInputMessage(Box<models::BetaInputMessage>),
BetaOutputMessage(Box<models::BetaOutputMessage>),
BetaFileSearchToolCall(Box<models::BetaFileSearchToolCall>),
BetaComputerToolCall(Box<models::BetaComputerToolCall>),
BetaComputerCallOutputItemParam(Box<models::BetaComputerCallOutputItemParam>),
BetaWebSearchToolCall(Box<models::BetaWebSearchToolCall>),
BetaFunctionToolCall(Box<models::BetaFunctionToolCall>),
BetaFunctionCallOutputItemParam(Box<models::BetaFunctionCallOutputItemParam>),
BetaAgentMessageItemParam(Box<models::BetaAgentMessageItemParam>),
BetaMultiAgentCallItemParam(Box<models::BetaMultiAgentCallItemParam>),
BetaMultiAgentCallOutputItemParam(Box<models::BetaMultiAgentCallOutputItemParam>),
BetaToolSearchCallItemParam(Box<models::BetaToolSearchCallItemParam>),
BetaToolSearchOutputItemParam(Box<models::BetaToolSearchOutputItemParam>),
BetaAdditionalToolsItemParam(Box<models::BetaAdditionalToolsItemParam>),
BetaResponseConfigurationUpdateItemParam(Box<models::BetaResponseConfigurationUpdateItemParam>),
BetaReasoningItem(Box<models::BetaReasoningItem>),
BetaCompactionSummaryItemParam(Box<models::BetaCompactionSummaryItemParam>),
BetaImageGenToolCall(Box<models::BetaImageGenToolCall>),
BetaCodeInterpreterToolCall(Box<models::BetaCodeInterpreterToolCall>),
BetaLocalShellToolCall(Box<models::BetaLocalShellToolCall>),
BetaLocalShellToolCallOutput(Box<models::BetaLocalShellToolCallOutput>),
BetaFunctionShellCallItemParam(Box<models::BetaFunctionShellCallItemParam>),
BetaFunctionShellCallOutputItemParam(Box<models::BetaFunctionShellCallOutputItemParam>),
BetaApplyPatchToolCallItemParam(Box<models::BetaApplyPatchToolCallItemParam>),
BetaApplyPatchToolCallOutputItemParam(Box<models::BetaApplyPatchToolCallOutputItemParam>),
BetaMcpListTools(Box<models::BetaMcpListTools>),
BetaMcpApprovalRequest(Box<models::BetaMcpApprovalRequest>),
BetaMcpApprovalResponse(Box<models::BetaMcpApprovalResponse>),
BetaMcpToolCall(Box<models::BetaMcpToolCall>),
BetaCustomToolCallOutput(Box<models::BetaCustomToolCallOutput>),
BetaCustomToolCall(Box<models::BetaCustomToolCall>),
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Role {
Developer,
}
impl Default for Role {
fn default() -> Role {
Self::Developer
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Quality {
Low,
Medium,
High,
Xhigh,
Max,
Auto,
}
impl Default for Quality {
fn default() -> Quality {
Self::Low
}
}