bitrouter_core/models/language/
stream_part.rs1use crate::models::shared::{
2 provider::ProviderMetadata,
3 types::{JsonValue, TimestampMillis},
4 warnings::Warning,
5};
6
7use super::{finish_reason::LanguageModelFinishReason, usage::LanguageModelUsage};
8
9#[derive(Debug, Clone)]
11pub enum LanguageModelStreamPart {
12 TextStart {
13 id: String,
14 provider_metadata: Option<ProviderMetadata>,
15 },
16 TextDelta {
17 id: String,
18 delta: String,
19 provider_metadata: Option<ProviderMetadata>,
20 },
21 TextEnd {
22 id: String,
23 provider_metadata: Option<ProviderMetadata>,
24 },
25 ReasoningStart {
26 id: String,
27 provider_metadata: Option<ProviderMetadata>,
28 },
29 ReasoningDelta {
30 id: String,
31 delta: String,
32 provider_metadata: Option<ProviderMetadata>,
33 },
34 ReasoningEnd {
35 id: String,
36 provider_metadata: Option<ProviderMetadata>,
37 },
38 ToolInputStart {
39 id: String,
40 tool_name: String,
41 provider_executed: Option<bool>,
42 dynamic: Option<bool>,
43 title: Option<String>,
44 provider_metadata: Option<ProviderMetadata>,
45 },
46 ToolInputDelta {
47 id: String,
48 delta: String,
49 provider_metadata: Option<ProviderMetadata>,
50 },
51 ToolInputEnd {
52 id: String,
53 provider_metadata: Option<ProviderMetadata>,
54 },
55 File {
57 data: Vec<u8>,
59 media_type: String,
61 provider_metadata: Option<ProviderMetadata>,
63 },
64 ToolApprovalRequest {
66 approval_id: String,
68 tool_call_id: String,
70 provider_metadata: Option<ProviderMetadata>,
72 },
73 UrlSource {
75 id: String,
77 url: String,
79 title: Option<String>,
81 provider_metadata: Option<ProviderMetadata>,
83 },
84 DocumentSource {
86 id: String,
88 media_type: String,
90 title: String,
92 filename: Option<String>,
94 provider_metadata: Option<ProviderMetadata>,
96 },
97 ToolCall {
99 tool_call_id: String,
101 tool_name: String,
103 tool_input: String,
105 provider_executed: Option<bool>,
107 dynamic: Option<bool>,
109 provider_metadata: Option<ProviderMetadata>,
111 },
112 ToolResult {
114 tool_call_id: String,
116 tool_name: String,
118 result: JsonValue,
120 is_error: Option<bool>,
122 preliminary: Option<bool>,
125 dynamic: Option<bool>,
127 provider_metadata: Option<ProviderMetadata>,
129 },
130 StreamStart {
131 warnings: Vec<Warning>,
132 },
133 ResponseMetadata {
134 id: Option<String>,
135 timestamp: Option<TimestampMillis>,
136 model_id: Option<String>,
137 },
138 Finish {
139 usage: LanguageModelUsage,
140 finish_reason: LanguageModelFinishReason,
141 provider_metadata: Option<ProviderMetadata>,
142 },
143 Raw {
144 raw_value: JsonValue,
145 },
146 Error {
147 error: JsonValue,
148 },
149}