use std::pin::Pin;
use futures::Stream;
use crate::error::Result;
#[derive(Debug, Clone)]
pub enum StreamEvent {
TextDelta(String),
ToolCallStart { id: String, name: String },
ToolCallDelta { id: String, arguments_delta: String },
ToolCallEnd { id: String },
ToolResult {
id: String,
content: String,
is_error: bool,
},
Usage {
iteration: usize,
input_tokens: u32,
output_tokens: u32,
estimated_cost: f64,
},
Error(String),
Done,
}
pub type ResponseStream = Pin<Box<dyn Stream<Item = Result<StreamEvent>> + Send>>;