use crate::types::response_api::ResponseObject;
use crate::convert::context::ResponseRequestContext;
#[derive(Debug, Clone)]
pub enum ResponseStreamEvent {
Created {
id: String,
model: String,
status: String,
created_at: i64,
request_context: Option<ResponseRequestContext>,
},
InProgress {
id: String,
model: String,
status: String,
created_at: i64,
request_context: Option<ResponseRequestContext>,
},
OutputItemAdded {
output_index: u32,
item_id: String,
item_type: String,
role: Option<String>,
call_id: Option<String>,
name: Option<String>,
},
ContentPartAdded {
item_id: String,
output_index: u32,
content_index: u32,
part_type: String,
},
OutputTextDelta {
item_id: String,
output_index: u32,
content_index: u32,
delta: String,
},
OutputTextDone {
item_id: String,
output_index: u32,
content_index: u32,
text: String,
},
ContentPartDone {
item_id: String,
output_index: u32,
content_index: u32,
part_type: String,
text: String,
},
OutputItemDone {
output_index: u32,
item_id: String,
item_type: String,
role: Option<String>,
call_id: Option<String>,
name: Option<String>,
arguments: Option<String>,
text: Option<String>,
refusal: Option<String>,
summary: Option<Vec<crate::types::response_api::ReasoningSummaryPart>>,
},
ReasoningAdded {
output_index: u32,
item_id: String,
},
ReasoningDelta {
item_id: String,
output_index: u32,
content_index: u32,
delta: String,
},
ReasoningTextDone {
item_id: String,
output_index: u32,
content_index: u32,
text: String,
},
ReasoningSummaryTextDelta {
item_id: String,
output_index: u32,
content_index: u32,
delta: String,
},
ReasoningSummaryTextDone {
item_id: String,
output_index: u32,
content_index: u32,
text: String,
},
FunctionCallArgumentsDelta {
output_index: u32,
item_id: String,
delta: String,
},
FunctionCallArgumentsDone {
output_index: u32,
item_id: String,
name: String,
arguments: String,
},
Completed {
response: Box<ResponseObject>,
},
Error {
id: Option<String>,
error_type: String,
message: String,
code: Option<String>,
},
Failed {
id: String,
model: String,
status: String,
created_at: i64,
},
Incomplete {
id: String,
model: String,
status: String,
created_at: i64,
reason: Option<String>,
},
RefusalDelta {
item_id: String,
output_index: u32,
content_index: u32,
delta: String,
},
RefusalDone {
item_id: String,
output_index: u32,
content_index: u32,
refusal: String,
},
}