use serde::{Deserialize, Serialize};
use crate::message::AssistantMessage;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum StreamEvent {
MessageStart { model: String },
TextDelta { text: String },
ThinkingDelta { text: String },
ToolCall {
id: String,
name: String,
arguments: serde_json::Value,
},
MessageEnd { message: AssistantMessage },
Error { error: String },
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProviderError {
pub code: String,
pub message: String,
pub retryable: bool,
}