@@ -135,6 +135,7 @@ export const addMessageToConversationStream: GenerateResponseWithToolsParams["st
135
135
export const responsesApiStream : GenerateResponseWithToolsParams [ "stream" ] = {
136
136
onLlmNotWorking ( { dataStreamer, notWorkingMessage } ) {
137
137
const itemId = Date . now ( ) . toString ( ) ;
138
+
138
139
dataStreamer ?. streamResponses ( {
139
140
type : "response.output_item.added" ,
140
141
output_index : 0 ,
@@ -151,14 +152,14 @@ export const responsesApiStream: GenerateResponseWithToolsParams["stream"] = {
151
152
delta : notWorkingMessage ,
152
153
content_index : 0 ,
153
154
output_index : 0 ,
154
- item_id : "" ,
155
+ item_id : itemId ,
155
156
} satisfies ResponseStreamOutputTextDelta ) ;
156
157
dataStreamer ?. streamResponses ( {
157
158
type : "response.output_text.done" ,
158
159
text : notWorkingMessage ,
159
160
content_index : 0 ,
160
161
output_index : 0 ,
161
- item_id : "" ,
162
+ item_id : itemId ,
162
163
} satisfies ResponseStreamOutputTextDone ) ;
163
164
dataStreamer ?. streamResponses ( {
164
165
type : "response.output_item.done" ,
@@ -180,6 +181,7 @@ export const responsesApiStream: GenerateResponseWithToolsParams["stream"] = {
180
181
} ,
181
182
onLlmRefusal ( { dataStreamer, refusalMessage } ) {
182
183
const itemId = Date . now ( ) . toString ( ) ;
184
+
183
185
dataStreamer ?. streamResponses ( {
184
186
type : "response.output_item.added" ,
185
187
output_index : 0 ,
@@ -235,42 +237,42 @@ export const responsesApiStream: GenerateResponseWithToolsParams["stream"] = {
235
237
} satisfies ResponseStreamOutputTextAnnotationAdded ) ;
236
238
} ) ;
237
239
} ,
238
- onTextStart ( { dataStreamer } ) {
240
+ onTextStart ( { dataStreamer, textPartId } ) {
239
241
dataStreamer ?. streamResponses ( {
240
242
type : "response.output_item.added" ,
241
243
output_index : 0 ,
242
244
item : {
243
245
type : "message" ,
244
- id : "" ,
246
+ id : textPartId ,
245
247
content : [ ] ,
246
248
role : "assistant" ,
247
249
status : "in_progress" ,
248
250
} ,
249
251
} satisfies ResponseStreamOutputItemAdded ) ;
250
252
} ,
251
- onTextDelta ( { dataStreamer, delta } ) {
253
+ onTextDelta ( { dataStreamer, delta, textPartId } ) {
252
254
dataStreamer ?. streamResponses ( {
253
255
type : "response.output_text.delta" ,
254
256
delta,
255
257
content_index : 0 ,
256
258
output_index : 0 ,
257
- item_id : "" ,
259
+ item_id : textPartId ,
258
260
} satisfies ResponseStreamOutputTextDelta ) ;
259
261
} ,
260
- onTextDone ( { dataStreamer, text, references } ) {
262
+ onTextDone ( { dataStreamer, text, references, textPartId , chunkId } ) {
261
263
dataStreamer ?. streamResponses ( {
262
264
type : "response.output_text.done" ,
263
265
text,
264
266
content_index : 0 ,
265
267
output_index : 0 ,
266
- item_id : "" ,
268
+ item_id : textPartId ,
267
269
} satisfies ResponseStreamOutputTextDone ) ;
268
270
dataStreamer ?. streamResponses ( {
269
271
type : "response.output_item.done" ,
270
272
output_index : 0 ,
271
273
item : {
272
274
type : "message" ,
273
- id : "" ,
275
+ id : chunkId ,
274
276
content : [
275
277
{
276
278
type : "output_text" ,
@@ -283,15 +285,15 @@ export const responsesApiStream: GenerateResponseWithToolsParams["stream"] = {
283
285
} ,
284
286
} satisfies ResponseStreamOutputItemDone ) ;
285
287
} ,
286
- onFunctionCallStart ( { dataStreamer, toolCallId, toolName } ) {
288
+ onFunctionCallStart ( { dataStreamer, toolCallId, toolName, chunkId } ) {
287
289
dataStreamer ?. streamResponses ( {
288
290
type : "response.output_item.added" ,
289
291
output_index : 0 ,
290
292
item : {
291
293
arguments : "" ,
292
294
call_id : toolCallId ,
293
295
name : toolName ,
294
- id : "" ,
296
+ id : chunkId ,
295
297
type : "function_call" ,
296
298
status : "in_progress" ,
297
299
} ,
@@ -305,7 +307,7 @@ export const responsesApiStream: GenerateResponseWithToolsParams["stream"] = {
305
307
item_id : toolCallId ,
306
308
} satisfies ResponseStreamFunctionCallArgumentsDelta ) ;
307
309
} ,
308
- onFunctionCallDone ( { dataStreamer, toolCallId, toolName, input } ) {
310
+ onFunctionCallDone ( { dataStreamer, toolCallId, toolName, input, chunkId } ) {
309
311
const args = JSON . stringify ( input ) ;
310
312
311
313
dataStreamer ?. streamResponses ( {
@@ -321,7 +323,7 @@ export const responsesApiStream: GenerateResponseWithToolsParams["stream"] = {
321
323
arguments : args ,
322
324
call_id : toolCallId ,
323
325
name : toolName ,
324
- id : "" ,
326
+ id : chunkId ,
325
327
type : "function_call" ,
326
328
status : "completed" ,
327
329
} ,
0 commit comments