use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum Data {
#[serde(rename="conversation.response.started")]
ConversationResponseStarted(Box<models::ResponseStartedEvent>),
#[serde(rename="conversation.response.done")]
ConversationResponseDone(Box<models::ResponseDoneEvent>),
#[serde(rename="conversation.response.error")]
ConversationResponseError(Box<models::ResponseErrorEvent>),
#[serde(rename="tool.execution.started")]
ToolExecutionStarted(Box<models::ToolExecutionStartedEvent>),
#[serde(rename="tool.execution.delta")]
ToolExecutionDelta(Box<models::ToolExecutionDeltaEvent>),
#[serde(rename="tool.execution.done")]
ToolExecutionDone(Box<models::ToolExecutionDoneEvent>),
#[serde(rename="message.output.delta")]
MessageOutputDelta(Box<models::MessageOutputEvent>),
#[serde(rename="function.call.delta")]
FunctionCallDelta(Box<models::FunctionCallEvent>),
#[serde(rename="agent.handoff.started")]
AgentHandoffStarted(Box<models::AgentHandoffStartedEvent>),
#[serde(rename="agent.handoff.done")]
AgentHandoffDone(Box<models::AgentHandoffDoneEvent>),
}
impl Default for Data {
fn default() -> Self {
Self::ConversationResponseStarted(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Role {
#[serde(rename = "assistant")]
Assistant,
}
impl Default for Role {
fn default() -> Role {
Self::Assistant
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ConfirmationStatus {
#[serde(rename = "pending")]
Pending,
#[serde(rename = "allowed")]
Allowed,
#[serde(rename = "denied")]
Denied,
}
impl Default for ConfirmationStatus {
fn default() -> ConfirmationStatus {
Self::Pending
}
}