use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum BetaItemField {
BetaMessage(Box<models::BetaMessage>),
BetaProgram(Box<models::BetaProgram>),
BetaProgramOutput(Box<models::BetaProgramOutput>),
BetaFunctionToolCall(Box<models::BetaFunctionToolCall>),
BetaMultiAgentCall(Box<models::BetaMultiAgentCall>),
BetaMultiAgentCallOutput(Box<models::BetaMultiAgentCallOutput>),
BetaToolSearchCall(Box<models::BetaToolSearchCall>),
BetaToolSearchOutput(Box<models::BetaToolSearchOutput>),
BetaAdditionalTools(Box<models::BetaAdditionalTools>),
BetaAgentMessage(Box<models::BetaAgentMessage>),
BetaFunctionToolCallOutput(Box<models::BetaFunctionToolCallOutput>),
BetaFileSearchToolCall(Box<models::BetaFileSearchToolCall>),
BetaWebSearchToolCall(Box<models::BetaWebSearchToolCall>),
BetaImageGenToolCall(Box<models::BetaImageGenToolCall>),
BetaComputerToolCall(Box<models::BetaComputerToolCall>),
BetaComputerToolCallOutputResource(Box<models::BetaComputerToolCallOutputResource>),
BetaReasoningItem(Box<models::BetaReasoningItem>),
BetaCompactionBody(Box<models::BetaCompactionBody>),
BetaCodeInterpreterToolCall(Box<models::BetaCodeInterpreterToolCall>),
BetaLocalShellToolCall(Box<models::BetaLocalShellToolCall>),
BetaLocalShellToolCallOutput(Box<models::BetaLocalShellToolCallOutput>),
BetaFunctionShellCall(Box<models::BetaFunctionShellCall>),
BetaFunctionShellCallOutput(Box<models::BetaFunctionShellCallOutput>),
BetaApplyPatchToolCall(Box<models::BetaApplyPatchToolCall>),
BetaApplyPatchToolCallOutput(Box<models::BetaApplyPatchToolCallOutput>),
BetaMcpListTools(Box<models::BetaMcpListTools>),
BetaMcpApprovalRequest(Box<models::BetaMcpApprovalRequest>),
BetaMcpApprovalResponseResource(Box<models::BetaMcpApprovalResponseResource>),
BetaMcpToolCall(Box<models::BetaMcpToolCall>),
BetaCustomToolCall(Box<models::BetaCustomToolCall>),
BetaCustomToolCallOutput(Box<models::BetaCustomToolCallOutput>),
}
#[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
}
}