ai 7.0.83 → 7.0.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/index.d.ts +78 -30
- package/dist/index.js +601 -552
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +7 -3
- package/dist/internal/index.js +43 -66
- package/dist/internal/index.js.map +1 -1
- package/dist/test/index.js +1 -1
- package/dist/test/index.js.map +1 -1
- package/docs/03-ai-sdk-core/35-image-generation.mdx +22 -5
- package/docs/03-ai-sdk-harnesses/02-harness-agent.mdx +91 -1
- package/docs/03-ai-sdk-harnesses/04-skills.mdx +6 -2
- package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +7 -0
- package/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +4 -2
- package/package.json +13 -14
- package/src/agent/tool-loop-agent-settings.ts +9 -0
- package/src/batch/batch-types.ts +4 -1
- package/src/batch/batch.ts +38 -9
- package/src/generate-image/generate-image-result.ts +40 -0
- package/src/generate-image/generate-image.ts +126 -28
- package/src/generate-image/index.ts +4 -1
- package/src/generate-text/convert-language-model-content.ts +206 -0
- package/src/generate-text/generate-text.ts +3 -196
- package/src/generate-text/generated-file.ts +15 -1
- package/src/generate-text/index.ts +2 -0
- package/src/generate-text/smooth-stream.ts +15 -3
- package/src/generate-text/stream-text.ts +111 -52
- package/src/util/canonical-hash.ts +3 -1
package/dist/index.js
CHANGED
|
@@ -58,8 +58,8 @@ import { AISDKError } from "@ai-sdk/provider";
|
|
|
58
58
|
var name = "AI_InvalidArgumentError";
|
|
59
59
|
var marker = `vercel.ai.error.${name}`;
|
|
60
60
|
var symbol = Symbol.for(marker);
|
|
61
|
-
var _a;
|
|
62
|
-
var InvalidArgumentError = class extends AISDKError {
|
|
61
|
+
var _a, _b;
|
|
62
|
+
var InvalidArgumentError = class extends (_b = AISDKError, _a = symbol, _b) {
|
|
63
63
|
constructor({
|
|
64
64
|
parameter,
|
|
65
65
|
value,
|
|
@@ -77,15 +77,14 @@ var InvalidArgumentError = class extends AISDKError {
|
|
|
77
77
|
return AISDKError.hasMarker(error, marker);
|
|
78
78
|
}
|
|
79
79
|
};
|
|
80
|
-
_a = symbol;
|
|
81
80
|
|
|
82
81
|
// src/error/invalid-stream-part-error.ts
|
|
83
82
|
import { AISDKError as AISDKError2 } from "@ai-sdk/provider";
|
|
84
83
|
var name2 = "AI_InvalidStreamPartError";
|
|
85
84
|
var marker2 = `vercel.ai.error.${name2}`;
|
|
86
85
|
var symbol2 = Symbol.for(marker2);
|
|
87
|
-
var _a2;
|
|
88
|
-
var InvalidStreamPartError = class extends AISDKError2 {
|
|
86
|
+
var _a2, _b2;
|
|
87
|
+
var InvalidStreamPartError = class extends (_b2 = AISDKError2, _a2 = symbol2, _b2) {
|
|
89
88
|
constructor({
|
|
90
89
|
chunk,
|
|
91
90
|
message
|
|
@@ -98,15 +97,14 @@ var InvalidStreamPartError = class extends AISDKError2 {
|
|
|
98
97
|
return AISDKError2.hasMarker(error, marker2);
|
|
99
98
|
}
|
|
100
99
|
};
|
|
101
|
-
_a2 = symbol2;
|
|
102
100
|
|
|
103
101
|
// src/error/invalid-tool-approval-error.ts
|
|
104
102
|
import { AISDKError as AISDKError3 } from "@ai-sdk/provider";
|
|
105
103
|
var name3 = "AI_InvalidToolApprovalError";
|
|
106
104
|
var marker3 = `vercel.ai.error.${name3}`;
|
|
107
105
|
var symbol3 = Symbol.for(marker3);
|
|
108
|
-
var _a3;
|
|
109
|
-
var InvalidToolApprovalError = class extends AISDKError3 {
|
|
106
|
+
var _a3, _b3;
|
|
107
|
+
var InvalidToolApprovalError = class extends (_b3 = AISDKError3, _a3 = symbol3, _b3) {
|
|
110
108
|
constructor({ approvalId }) {
|
|
111
109
|
super({
|
|
112
110
|
name: name3,
|
|
@@ -119,15 +117,14 @@ var InvalidToolApprovalError = class extends AISDKError3 {
|
|
|
119
117
|
return AISDKError3.hasMarker(error, marker3);
|
|
120
118
|
}
|
|
121
119
|
};
|
|
122
|
-
_a3 = symbol3;
|
|
123
120
|
|
|
124
121
|
// src/error/invalid-tool-approval-signature-error.ts
|
|
125
122
|
import { AISDKError as AISDKError4 } from "@ai-sdk/provider";
|
|
126
123
|
var name4 = "AI_InvalidToolApprovalSignatureError";
|
|
127
124
|
var marker4 = `vercel.ai.error.${name4}`;
|
|
128
125
|
var symbol4 = Symbol.for(marker4);
|
|
129
|
-
var _a4;
|
|
130
|
-
var InvalidToolApprovalSignatureError = class extends AISDKError4 {
|
|
126
|
+
var _a4, _b4;
|
|
127
|
+
var InvalidToolApprovalSignatureError = class extends (_b4 = AISDKError4, _a4 = symbol4, _b4) {
|
|
131
128
|
constructor({
|
|
132
129
|
approvalId,
|
|
133
130
|
toolCallId,
|
|
@@ -145,15 +142,14 @@ var InvalidToolApprovalSignatureError = class extends AISDKError4 {
|
|
|
145
142
|
return AISDKError4.hasMarker(error, marker4);
|
|
146
143
|
}
|
|
147
144
|
};
|
|
148
|
-
_a4 = symbol4;
|
|
149
145
|
|
|
150
146
|
// src/error/invalid-tool-input-error.ts
|
|
151
147
|
import { AISDKError as AISDKError5, getErrorMessage } from "@ai-sdk/provider";
|
|
152
148
|
var name5 = "AI_InvalidToolInputError";
|
|
153
149
|
var marker5 = `vercel.ai.error.${name5}`;
|
|
154
150
|
var symbol5 = Symbol.for(marker5);
|
|
155
|
-
var _a5;
|
|
156
|
-
var InvalidToolInputError = class extends AISDKError5 {
|
|
151
|
+
var _a5, _b5;
|
|
152
|
+
var InvalidToolInputError = class extends (_b5 = AISDKError5, _a5 = symbol5, _b5) {
|
|
157
153
|
constructor({
|
|
158
154
|
toolInput,
|
|
159
155
|
toolName,
|
|
@@ -169,15 +165,14 @@ var InvalidToolInputError = class extends AISDKError5 {
|
|
|
169
165
|
return AISDKError5.hasMarker(error, marker5);
|
|
170
166
|
}
|
|
171
167
|
};
|
|
172
|
-
_a5 = symbol5;
|
|
173
168
|
|
|
174
169
|
// src/error/tool-call-not-found-for-approval-error.ts
|
|
175
170
|
import { AISDKError as AISDKError6 } from "@ai-sdk/provider";
|
|
176
171
|
var name6 = "AI_ToolCallNotFoundForApprovalError";
|
|
177
172
|
var marker6 = `vercel.ai.error.${name6}`;
|
|
178
173
|
var symbol6 = Symbol.for(marker6);
|
|
179
|
-
var _a6;
|
|
180
|
-
var ToolCallNotFoundForApprovalError = class extends AISDKError6 {
|
|
174
|
+
var _a6, _b6;
|
|
175
|
+
var ToolCallNotFoundForApprovalError = class extends (_b6 = AISDKError6, _a6 = symbol6, _b6) {
|
|
181
176
|
constructor({
|
|
182
177
|
toolCallId,
|
|
183
178
|
approvalId
|
|
@@ -194,15 +189,14 @@ var ToolCallNotFoundForApprovalError = class extends AISDKError6 {
|
|
|
194
189
|
return AISDKError6.hasMarker(error, marker6);
|
|
195
190
|
}
|
|
196
191
|
};
|
|
197
|
-
_a6 = symbol6;
|
|
198
192
|
|
|
199
193
|
// src/error/missing-tool-result-error.ts
|
|
200
194
|
import { AISDKError as AISDKError7 } from "@ai-sdk/provider";
|
|
201
195
|
var name7 = "AI_MissingToolResultsError";
|
|
202
196
|
var marker7 = `vercel.ai.error.${name7}`;
|
|
203
197
|
var symbol7 = Symbol.for(marker7);
|
|
204
|
-
var _a7;
|
|
205
|
-
var MissingToolResultsError = class extends AISDKError7 {
|
|
198
|
+
var _a7, _b7;
|
|
199
|
+
var MissingToolResultsError = class extends (_b7 = AISDKError7, _a7 = symbol7, _b7) {
|
|
206
200
|
constructor({ toolCallIds }) {
|
|
207
201
|
super({
|
|
208
202
|
name: name7,
|
|
@@ -217,15 +211,14 @@ var MissingToolResultsError = class extends AISDKError7 {
|
|
|
217
211
|
return AISDKError7.hasMarker(error, marker7);
|
|
218
212
|
}
|
|
219
213
|
};
|
|
220
|
-
_a7 = symbol7;
|
|
221
214
|
|
|
222
215
|
// src/error/no-image-generated-error.ts
|
|
223
216
|
import { AISDKError as AISDKError8 } from "@ai-sdk/provider";
|
|
224
217
|
var name8 = "AI_NoImageGeneratedError";
|
|
225
218
|
var marker8 = `vercel.ai.error.${name8}`;
|
|
226
219
|
var symbol8 = Symbol.for(marker8);
|
|
227
|
-
var _a8;
|
|
228
|
-
var NoImageGeneratedError = class extends AISDKError8 {
|
|
220
|
+
var _a8, _b8;
|
|
221
|
+
var NoImageGeneratedError = class extends (_b8 = AISDKError8, _a8 = symbol8, _b8) {
|
|
229
222
|
constructor({
|
|
230
223
|
message = "No image generated.",
|
|
231
224
|
cause,
|
|
@@ -239,15 +232,14 @@ var NoImageGeneratedError = class extends AISDKError8 {
|
|
|
239
232
|
return AISDKError8.hasMarker(error, marker8);
|
|
240
233
|
}
|
|
241
234
|
};
|
|
242
|
-
_a8 = symbol8;
|
|
243
235
|
|
|
244
236
|
// src/error/no-object-generated-error.ts
|
|
245
237
|
import { AISDKError as AISDKError9 } from "@ai-sdk/provider";
|
|
246
238
|
var name9 = "AI_NoObjectGeneratedError";
|
|
247
239
|
var marker9 = `vercel.ai.error.${name9}`;
|
|
248
240
|
var symbol9 = Symbol.for(marker9);
|
|
249
|
-
var _a9;
|
|
250
|
-
var NoObjectGeneratedError = class extends AISDKError9 {
|
|
241
|
+
var _a9, _b9;
|
|
242
|
+
var NoObjectGeneratedError = class extends (_b9 = AISDKError9, _a9 = symbol9, _b9) {
|
|
251
243
|
constructor({
|
|
252
244
|
message = "No object generated.",
|
|
253
245
|
cause,
|
|
@@ -267,15 +259,14 @@ var NoObjectGeneratedError = class extends AISDKError9 {
|
|
|
267
259
|
return AISDKError9.hasMarker(error, marker9);
|
|
268
260
|
}
|
|
269
261
|
};
|
|
270
|
-
_a9 = symbol9;
|
|
271
262
|
|
|
272
263
|
// src/error/no-output-generated-error.ts
|
|
273
264
|
import { AISDKError as AISDKError10 } from "@ai-sdk/provider";
|
|
274
265
|
var name10 = "AI_NoOutputGeneratedError";
|
|
275
266
|
var marker10 = `vercel.ai.error.${name10}`;
|
|
276
267
|
var symbol10 = Symbol.for(marker10);
|
|
277
|
-
var _a10;
|
|
278
|
-
var NoOutputGeneratedError = class extends AISDKError10 {
|
|
268
|
+
var _a10, _b10;
|
|
269
|
+
var NoOutputGeneratedError = class extends (_b10 = AISDKError10, _a10 = symbol10, _b10) {
|
|
279
270
|
// used in isInstance
|
|
280
271
|
constructor({
|
|
281
272
|
message = "No output generated.",
|
|
@@ -288,15 +279,14 @@ var NoOutputGeneratedError = class extends AISDKError10 {
|
|
|
288
279
|
return AISDKError10.hasMarker(error, marker10);
|
|
289
280
|
}
|
|
290
281
|
};
|
|
291
|
-
_a10 = symbol10;
|
|
292
282
|
|
|
293
283
|
// src/error/no-speech-generated-error.ts
|
|
294
284
|
import { AISDKError as AISDKError11 } from "@ai-sdk/provider";
|
|
295
285
|
var name11 = "AI_NoSpeechGeneratedError";
|
|
296
286
|
var marker11 = `vercel.ai.error.${name11}`;
|
|
297
287
|
var symbol11 = Symbol.for(marker11);
|
|
298
|
-
var _a11;
|
|
299
|
-
var NoSpeechGeneratedError = class extends AISDKError11 {
|
|
288
|
+
var _a11, _b11;
|
|
289
|
+
var NoSpeechGeneratedError = class extends (_b11 = AISDKError11, _a11 = symbol11, _b11) {
|
|
300
290
|
constructor(options) {
|
|
301
291
|
super({
|
|
302
292
|
name: name11,
|
|
@@ -309,15 +299,14 @@ var NoSpeechGeneratedError = class extends AISDKError11 {
|
|
|
309
299
|
return AISDKError11.hasMarker(error, marker11);
|
|
310
300
|
}
|
|
311
301
|
};
|
|
312
|
-
_a11 = symbol11;
|
|
313
302
|
|
|
314
303
|
// src/error/no-transcript-generated-error.ts
|
|
315
304
|
import { AISDKError as AISDKError12 } from "@ai-sdk/provider";
|
|
316
305
|
var name12 = "AI_NoTranscriptGeneratedError";
|
|
317
306
|
var marker12 = `vercel.ai.error.${name12}`;
|
|
318
307
|
var symbol12 = Symbol.for(marker12);
|
|
319
|
-
var _a12;
|
|
320
|
-
var NoTranscriptGeneratedError = class extends AISDKError12 {
|
|
308
|
+
var _a12, _b12;
|
|
309
|
+
var NoTranscriptGeneratedError = class extends (_b12 = AISDKError12, _a12 = symbol12, _b12) {
|
|
321
310
|
constructor(options) {
|
|
322
311
|
super({
|
|
323
312
|
name: name12,
|
|
@@ -330,15 +319,14 @@ var NoTranscriptGeneratedError = class extends AISDKError12 {
|
|
|
330
319
|
return AISDKError12.hasMarker(error, marker12);
|
|
331
320
|
}
|
|
332
321
|
};
|
|
333
|
-
_a12 = symbol12;
|
|
334
322
|
|
|
335
323
|
// src/error/no-translation-generated-error.ts
|
|
336
324
|
import { AISDKError as AISDKError13 } from "@ai-sdk/provider";
|
|
337
325
|
var name13 = "AI_NoTranslationGeneratedError";
|
|
338
326
|
var marker13 = `vercel.ai.error.${name13}`;
|
|
339
327
|
var symbol13 = Symbol.for(marker13);
|
|
340
|
-
var _a13;
|
|
341
|
-
var NoTranslationGeneratedError = class extends AISDKError13 {
|
|
328
|
+
var _a13, _b13;
|
|
329
|
+
var NoTranslationGeneratedError = class extends (_b13 = AISDKError13, _a13 = symbol13, _b13) {
|
|
342
330
|
constructor(options) {
|
|
343
331
|
super({
|
|
344
332
|
name: name13,
|
|
@@ -351,15 +339,14 @@ var NoTranslationGeneratedError = class extends AISDKError13 {
|
|
|
351
339
|
return AISDKError13.hasMarker(error, marker13);
|
|
352
340
|
}
|
|
353
341
|
};
|
|
354
|
-
_a13 = symbol13;
|
|
355
342
|
|
|
356
343
|
// src/error/no-video-generated-error.ts
|
|
357
344
|
import { AISDKError as AISDKError14 } from "@ai-sdk/provider";
|
|
358
345
|
var name14 = "AI_NoVideoGeneratedError";
|
|
359
346
|
var marker14 = `vercel.ai.error.${name14}`;
|
|
360
347
|
var symbol14 = Symbol.for(marker14);
|
|
361
|
-
var _a14;
|
|
362
|
-
var NoVideoGeneratedError = class extends AISDKError14 {
|
|
348
|
+
var _a14, _b14;
|
|
349
|
+
var NoVideoGeneratedError = class extends (_b14 = AISDKError14, _a14 = symbol14, _b14) {
|
|
363
350
|
constructor({
|
|
364
351
|
message = "No video generated.",
|
|
365
352
|
cause,
|
|
@@ -391,15 +378,14 @@ var NoVideoGeneratedError = class extends AISDKError14 {
|
|
|
391
378
|
};
|
|
392
379
|
}
|
|
393
380
|
};
|
|
394
|
-
_a14 = symbol14;
|
|
395
381
|
|
|
396
382
|
// src/error/no-such-tool-error.ts
|
|
397
383
|
import { AISDKError as AISDKError15 } from "@ai-sdk/provider";
|
|
398
384
|
var name15 = "AI_NoSuchToolError";
|
|
399
385
|
var marker15 = `vercel.ai.error.${name15}`;
|
|
400
386
|
var symbol15 = Symbol.for(marker15);
|
|
401
|
-
var _a15;
|
|
402
|
-
var NoSuchToolError = class extends AISDKError15 {
|
|
387
|
+
var _a15, _b15;
|
|
388
|
+
var NoSuchToolError = class extends (_b15 = AISDKError15, _a15 = symbol15, _b15) {
|
|
403
389
|
constructor({
|
|
404
390
|
toolName,
|
|
405
391
|
availableTools = void 0,
|
|
@@ -414,15 +400,14 @@ var NoSuchToolError = class extends AISDKError15 {
|
|
|
414
400
|
return AISDKError15.hasMarker(error, marker15);
|
|
415
401
|
}
|
|
416
402
|
};
|
|
417
|
-
_a15 = symbol15;
|
|
418
403
|
|
|
419
404
|
// src/error/stream-provider-error.ts
|
|
420
405
|
import { AISDKError as AISDKError16 } from "@ai-sdk/provider";
|
|
421
406
|
var name16 = "AI_StreamProviderError";
|
|
422
407
|
var marker16 = `vercel.ai.error.${name16}`;
|
|
423
408
|
var symbol16 = Symbol.for(marker16);
|
|
424
|
-
var _a16;
|
|
425
|
-
var StreamProviderError = class extends AISDKError16 {
|
|
409
|
+
var _a16, _b16;
|
|
410
|
+
var StreamProviderError = class extends (_b16 = AISDKError16, _a16 = symbol16, _b16) {
|
|
426
411
|
constructor({
|
|
427
412
|
message,
|
|
428
413
|
type,
|
|
@@ -444,7 +429,6 @@ var StreamProviderError = class extends AISDKError16 {
|
|
|
444
429
|
return AISDKError16.hasMarker(error, marker16);
|
|
445
430
|
}
|
|
446
431
|
};
|
|
447
|
-
_a16 = symbol16;
|
|
448
432
|
function isRetryableStatusCode(statusCode) {
|
|
449
433
|
return statusCode != null && (statusCode === 408 || statusCode === 409 || statusCode === 429 || statusCode >= 500);
|
|
450
434
|
}
|
|
@@ -454,8 +438,8 @@ import { AISDKError as AISDKError17, getErrorMessage as getErrorMessage2 } from
|
|
|
454
438
|
var name17 = "AI_ToolCallRepairError";
|
|
455
439
|
var marker17 = `vercel.ai.error.${name17}`;
|
|
456
440
|
var symbol17 = Symbol.for(marker17);
|
|
457
|
-
var _a17;
|
|
458
|
-
var ToolCallRepairError = class extends AISDKError17 {
|
|
441
|
+
var _a17, _b17;
|
|
442
|
+
var ToolCallRepairError = class extends (_b17 = AISDKError17, _a17 = symbol17, _b17) {
|
|
459
443
|
constructor({
|
|
460
444
|
cause,
|
|
461
445
|
originalError,
|
|
@@ -469,7 +453,6 @@ var ToolCallRepairError = class extends AISDKError17 {
|
|
|
469
453
|
return AISDKError17.hasMarker(error, marker17);
|
|
470
454
|
}
|
|
471
455
|
};
|
|
472
|
-
_a17 = symbol17;
|
|
473
456
|
|
|
474
457
|
// src/error/unsupported-model-version-error.ts
|
|
475
458
|
import { AISDKError as AISDKError18 } from "@ai-sdk/provider";
|
|
@@ -490,8 +473,8 @@ import { AISDKError as AISDKError19 } from "@ai-sdk/provider";
|
|
|
490
473
|
var name18 = "AI_UIMessageStreamError";
|
|
491
474
|
var marker18 = `vercel.ai.error.${name18}`;
|
|
492
475
|
var symbol18 = Symbol.for(marker18);
|
|
493
|
-
var _a18;
|
|
494
|
-
var UIMessageStreamError = class extends AISDKError19 {
|
|
476
|
+
var _a18, _b18;
|
|
477
|
+
var UIMessageStreamError = class extends (_b18 = AISDKError19, _a18 = symbol18, _b18) {
|
|
495
478
|
constructor({
|
|
496
479
|
chunkType,
|
|
497
480
|
chunkId,
|
|
@@ -506,15 +489,14 @@ var UIMessageStreamError = class extends AISDKError19 {
|
|
|
506
489
|
return AISDKError19.hasMarker(error, marker18);
|
|
507
490
|
}
|
|
508
491
|
};
|
|
509
|
-
_a18 = symbol18;
|
|
510
492
|
|
|
511
493
|
// src/prompt/invalid-data-content-error.ts
|
|
512
494
|
import { AISDKError as AISDKError20 } from "@ai-sdk/provider";
|
|
513
495
|
var name19 = "AI_InvalidDataContentError";
|
|
514
496
|
var marker19 = `vercel.ai.error.${name19}`;
|
|
515
497
|
var symbol19 = Symbol.for(marker19);
|
|
516
|
-
var _a19;
|
|
517
|
-
var InvalidDataContentError = class extends AISDKError20 {
|
|
498
|
+
var _a19, _b19;
|
|
499
|
+
var InvalidDataContentError = class extends (_b19 = AISDKError20, _a19 = symbol19, _b19) {
|
|
518
500
|
constructor({
|
|
519
501
|
content,
|
|
520
502
|
cause,
|
|
@@ -528,15 +510,14 @@ var InvalidDataContentError = class extends AISDKError20 {
|
|
|
528
510
|
return AISDKError20.hasMarker(error, marker19);
|
|
529
511
|
}
|
|
530
512
|
};
|
|
531
|
-
_a19 = symbol19;
|
|
532
513
|
|
|
533
514
|
// src/prompt/invalid-message-role-error.ts
|
|
534
515
|
import { AISDKError as AISDKError21 } from "@ai-sdk/provider";
|
|
535
516
|
var name20 = "AI_InvalidMessageRoleError";
|
|
536
517
|
var marker20 = `vercel.ai.error.${name20}`;
|
|
537
518
|
var symbol20 = Symbol.for(marker20);
|
|
538
|
-
var _a20;
|
|
539
|
-
var InvalidMessageRoleError = class extends AISDKError21 {
|
|
519
|
+
var _a20, _b20;
|
|
520
|
+
var InvalidMessageRoleError = class extends (_b20 = AISDKError21, _a20 = symbol20, _b20) {
|
|
540
521
|
constructor({
|
|
541
522
|
role,
|
|
542
523
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
@@ -549,15 +530,14 @@ var InvalidMessageRoleError = class extends AISDKError21 {
|
|
|
549
530
|
return AISDKError21.hasMarker(error, marker20);
|
|
550
531
|
}
|
|
551
532
|
};
|
|
552
|
-
_a20 = symbol20;
|
|
553
533
|
|
|
554
534
|
// src/prompt/message-conversion-error.ts
|
|
555
535
|
import { AISDKError as AISDKError22 } from "@ai-sdk/provider";
|
|
556
536
|
var name21 = "AI_MessageConversionError";
|
|
557
537
|
var marker21 = `vercel.ai.error.${name21}`;
|
|
558
538
|
var symbol21 = Symbol.for(marker21);
|
|
559
|
-
var _a21;
|
|
560
|
-
var MessageConversionError = class extends AISDKError22 {
|
|
539
|
+
var _a21, _b21;
|
|
540
|
+
var MessageConversionError = class extends (_b21 = AISDKError22, _a21 = symbol21, _b21) {
|
|
561
541
|
constructor({
|
|
562
542
|
originalMessage,
|
|
563
543
|
message
|
|
@@ -570,7 +550,6 @@ var MessageConversionError = class extends AISDKError22 {
|
|
|
570
550
|
return AISDKError22.hasMarker(error, marker21);
|
|
571
551
|
}
|
|
572
552
|
};
|
|
573
|
-
_a21 = symbol21;
|
|
574
553
|
|
|
575
554
|
// src/error/index.ts
|
|
576
555
|
import { DownloadError } from "@ai-sdk/provider-utils";
|
|
@@ -580,8 +559,8 @@ import { AISDKError as AISDKError23 } from "@ai-sdk/provider";
|
|
|
580
559
|
var name22 = "AI_RetryError";
|
|
581
560
|
var marker22 = `vercel.ai.error.${name22}`;
|
|
582
561
|
var symbol22 = Symbol.for(marker22);
|
|
583
|
-
var _a22;
|
|
584
|
-
var RetryError = class extends AISDKError23 {
|
|
562
|
+
var _a22, _b22;
|
|
563
|
+
var RetryError = class extends (_b22 = AISDKError23, _a22 = symbol22, _b22) {
|
|
585
564
|
constructor({
|
|
586
565
|
message,
|
|
587
566
|
reason,
|
|
@@ -597,7 +576,6 @@ var RetryError = class extends AISDKError23 {
|
|
|
597
576
|
return AISDKError23.hasMarker(error, marker22);
|
|
598
577
|
}
|
|
599
578
|
};
|
|
600
|
-
_a22 = symbol22;
|
|
601
579
|
|
|
602
580
|
// src/logger/log-warnings.ts
|
|
603
581
|
function formatWarning({
|
|
@@ -709,8 +687,7 @@ function asEmbeddingModelV3(model) {
|
|
|
709
687
|
});
|
|
710
688
|
return new Proxy(model, {
|
|
711
689
|
get(target, prop) {
|
|
712
|
-
if (prop === "specificationVersion")
|
|
713
|
-
return "v3";
|
|
690
|
+
if (prop === "specificationVersion") return "v3";
|
|
714
691
|
return target[prop];
|
|
715
692
|
}
|
|
716
693
|
});
|
|
@@ -724,8 +701,7 @@ function asEmbeddingModelV4(model) {
|
|
|
724
701
|
const v3Model = model.specificationVersion === "v2" ? asEmbeddingModelV3(model) : model;
|
|
725
702
|
return new Proxy(v3Model, {
|
|
726
703
|
get(target, prop) {
|
|
727
|
-
if (prop === "specificationVersion")
|
|
728
|
-
return "v4";
|
|
704
|
+
if (prop === "specificationVersion") return "v4";
|
|
729
705
|
return target[prop];
|
|
730
706
|
}
|
|
731
707
|
});
|
|
@@ -742,8 +718,7 @@ function asImageModelV3(model) {
|
|
|
742
718
|
});
|
|
743
719
|
return new Proxy(model, {
|
|
744
720
|
get(target, prop) {
|
|
745
|
-
if (prop === "specificationVersion")
|
|
746
|
-
return "v3";
|
|
721
|
+
if (prop === "specificationVersion") return "v3";
|
|
747
722
|
return target[prop];
|
|
748
723
|
}
|
|
749
724
|
});
|
|
@@ -757,8 +732,7 @@ function asImageModelV4(model) {
|
|
|
757
732
|
const v3Model = model.specificationVersion === "v2" ? asImageModelV3(model) : model;
|
|
758
733
|
return new Proxy(v3Model, {
|
|
759
734
|
get(target, prop) {
|
|
760
|
-
if (prop === "specificationVersion")
|
|
761
|
-
return "v4";
|
|
735
|
+
if (prop === "specificationVersion") return "v4";
|
|
762
736
|
return target[prop];
|
|
763
737
|
}
|
|
764
738
|
});
|
|
@@ -851,8 +825,7 @@ function asLanguageModelV4(model) {
|
|
|
851
825
|
const v3Model = model.specificationVersion === "v2" ? asLanguageModelV3(model) : model;
|
|
852
826
|
return new Proxy(v3Model, {
|
|
853
827
|
get(target, prop) {
|
|
854
|
-
if (prop === "specificationVersion")
|
|
855
|
-
return "v4";
|
|
828
|
+
if (prop === "specificationVersion") return "v4";
|
|
856
829
|
return target[prop];
|
|
857
830
|
}
|
|
858
831
|
});
|
|
@@ -865,8 +838,7 @@ function asRerankingModelV4(model) {
|
|
|
865
838
|
}
|
|
866
839
|
return new Proxy(model, {
|
|
867
840
|
get(target, prop) {
|
|
868
|
-
if (prop === "specificationVersion")
|
|
869
|
-
return "v4";
|
|
841
|
+
if (prop === "specificationVersion") return "v4";
|
|
870
842
|
return target[prop];
|
|
871
843
|
}
|
|
872
844
|
});
|
|
@@ -883,8 +855,7 @@ function asSpeechModelV3(model) {
|
|
|
883
855
|
});
|
|
884
856
|
return new Proxy(model, {
|
|
885
857
|
get(target, prop) {
|
|
886
|
-
if (prop === "specificationVersion")
|
|
887
|
-
return "v3";
|
|
858
|
+
if (prop === "specificationVersion") return "v3";
|
|
888
859
|
return target[prop];
|
|
889
860
|
}
|
|
890
861
|
});
|
|
@@ -898,8 +869,7 @@ function asSpeechModelV4(model) {
|
|
|
898
869
|
const v3Model = model.specificationVersion === "v2" ? asSpeechModelV3(model) : model;
|
|
899
870
|
return new Proxy(v3Model, {
|
|
900
871
|
get(target, prop) {
|
|
901
|
-
if (prop === "specificationVersion")
|
|
902
|
-
return "v4";
|
|
872
|
+
if (prop === "specificationVersion") return "v4";
|
|
903
873
|
return target[prop];
|
|
904
874
|
}
|
|
905
875
|
});
|
|
@@ -916,8 +886,7 @@ function asTranscriptionModelV3(model) {
|
|
|
916
886
|
});
|
|
917
887
|
return new Proxy(model, {
|
|
918
888
|
get(target, prop) {
|
|
919
|
-
if (prop === "specificationVersion")
|
|
920
|
-
return "v3";
|
|
889
|
+
if (prop === "specificationVersion") return "v3";
|
|
921
890
|
return target[prop];
|
|
922
891
|
}
|
|
923
892
|
});
|
|
@@ -931,8 +900,7 @@ function asTranscriptionModelV4(model) {
|
|
|
931
900
|
const v3Model = model.specificationVersion === "v2" ? asTranscriptionModelV3(model) : model;
|
|
932
901
|
return new Proxy(v3Model, {
|
|
933
902
|
get(target, prop) {
|
|
934
|
-
if (prop === "specificationVersion")
|
|
935
|
-
return "v4";
|
|
903
|
+
if (prop === "specificationVersion") return "v4";
|
|
936
904
|
return target[prop];
|
|
937
905
|
}
|
|
938
906
|
});
|
|
@@ -945,8 +913,7 @@ function asVideoModelV4(model) {
|
|
|
945
913
|
}
|
|
946
914
|
return new Proxy(model, {
|
|
947
915
|
get(target, prop) {
|
|
948
|
-
if (prop === "specificationVersion")
|
|
949
|
-
return "v4";
|
|
916
|
+
if (prop === "specificationVersion") return "v4";
|
|
950
917
|
return target[prop];
|
|
951
918
|
}
|
|
952
919
|
});
|
|
@@ -1017,9 +984,9 @@ function resolveEmbeddingModel(model) {
|
|
|
1017
984
|
return asEmbeddingModelV4(model);
|
|
1018
985
|
}
|
|
1019
986
|
function resolveTranscriptionModel(model) {
|
|
1020
|
-
var _a24,
|
|
987
|
+
var _a24, _b24;
|
|
1021
988
|
if (typeof model === "string") {
|
|
1022
|
-
return (
|
|
989
|
+
return (_b24 = (_a24 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b24.call(_a24, model);
|
|
1023
990
|
}
|
|
1024
991
|
if (!["v4", "v3", "v2"].includes(model.specificationVersion)) {
|
|
1025
992
|
const unsupportedModel = model;
|
|
@@ -1054,9 +1021,9 @@ function resolveSpeechTranslationModel(model) {
|
|
|
1054
1021
|
return model;
|
|
1055
1022
|
}
|
|
1056
1023
|
function resolveSpeechModel(model) {
|
|
1057
|
-
var _a24,
|
|
1024
|
+
var _a24, _b24;
|
|
1058
1025
|
if (typeof model === "string") {
|
|
1059
|
-
return (
|
|
1026
|
+
return (_b24 = (_a24 = getGlobalProvider()).speechModel) == null ? void 0 : _b24.call(_a24, model);
|
|
1060
1027
|
}
|
|
1061
1028
|
if (!["v4", "v3", "v2"].includes(model.specificationVersion)) {
|
|
1062
1029
|
const unsupportedModel = model;
|
|
@@ -1179,7 +1146,7 @@ import {
|
|
|
1179
1146
|
} from "@ai-sdk/provider-utils";
|
|
1180
1147
|
|
|
1181
1148
|
// src/version.ts
|
|
1182
|
-
var VERSION = true ? "7.0.
|
|
1149
|
+
var VERSION = true ? "7.0.85" : "0.0.0-test";
|
|
1183
1150
|
|
|
1184
1151
|
// src/util/download/download.ts
|
|
1185
1152
|
var download = async ({
|
|
@@ -1250,8 +1217,7 @@ function mergeObjects(base, overrides) {
|
|
|
1250
1217
|
}
|
|
1251
1218
|
if (Object.prototype.hasOwnProperty.call(overrides, key)) {
|
|
1252
1219
|
const overridesValue = overrides[key];
|
|
1253
|
-
if (overridesValue === void 0)
|
|
1254
|
-
continue;
|
|
1220
|
+
if (overridesValue === void 0) continue;
|
|
1255
1221
|
const baseValue = key in base ? base[key] : void 0;
|
|
1256
1222
|
const isSourceObject = overridesValue !== null && typeof overridesValue === "object" && !Array.isArray(overridesValue) && !(overridesValue instanceof Date) && !(overridesValue instanceof RegExp);
|
|
1257
1223
|
const isTargetObject = baseValue !== null && baseValue !== void 0 && typeof baseValue === "object" && !Array.isArray(baseValue) && !(baseValue instanceof Date) && !(baseValue instanceof RegExp);
|
|
@@ -1292,8 +1258,7 @@ function splitDataUrl(dataUrl) {
|
|
|
1292
1258
|
|
|
1293
1259
|
// src/prompt/file-part-data.ts
|
|
1294
1260
|
function isTaggedFileData(value) {
|
|
1295
|
-
if (typeof value !== "object" || value === null)
|
|
1296
|
-
return false;
|
|
1261
|
+
if (typeof value !== "object" || value === null) return false;
|
|
1297
1262
|
const type = value.type;
|
|
1298
1263
|
return type === "data" || type === "url" || type === "reference" || type === "text";
|
|
1299
1264
|
}
|
|
@@ -1893,6 +1858,8 @@ function mapToolResultOutput({
|
|
|
1893
1858
|
providerOptions: item.providerOptions
|
|
1894
1859
|
};
|
|
1895
1860
|
}
|
|
1861
|
+
// The "image-*" types are legacy and deprecated.
|
|
1862
|
+
// TODO: remove migration in v8 in combination with the removal of these types from the provider utils.
|
|
1896
1863
|
case "image-data": {
|
|
1897
1864
|
warnings.push({
|
|
1898
1865
|
type: "deprecated",
|
|
@@ -2250,11 +2217,11 @@ function getChunkTimeoutMs(timeout) {
|
|
|
2250
2217
|
return timeout.chunkMs;
|
|
2251
2218
|
}
|
|
2252
2219
|
function getToolTimeoutMs(timeout, toolName) {
|
|
2253
|
-
var _a24,
|
|
2220
|
+
var _a24, _b24;
|
|
2254
2221
|
if (timeout == null || typeof timeout === "number") {
|
|
2255
2222
|
return void 0;
|
|
2256
2223
|
}
|
|
2257
|
-
return (
|
|
2224
|
+
return (_b24 = (_a24 = timeout.tools) == null ? void 0 : _a24[`${toolName}Ms`]) != null ? _b24 : timeout.toolMs;
|
|
2258
2225
|
}
|
|
2259
2226
|
|
|
2260
2227
|
// src/prompt/standardize-prompt.ts
|
|
@@ -2639,8 +2606,7 @@ async function standardizePrompt({
|
|
|
2639
2606
|
import { GatewayAuthenticationError } from "@ai-sdk/gateway";
|
|
2640
2607
|
import { AISDKError as AISDKError25 } from "@ai-sdk/provider";
|
|
2641
2608
|
function wrapGatewayError(error) {
|
|
2642
|
-
if (!GatewayAuthenticationError.isInstance(error))
|
|
2643
|
-
return error;
|
|
2609
|
+
if (!GatewayAuthenticationError.isInstance(error)) return error;
|
|
2644
2610
|
const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
|
|
2645
2611
|
const moreInfoURL = "https://ai-sdk.dev/unauthenticated-ai-gateway";
|
|
2646
2612
|
if (isProductionEnv) {
|
|
@@ -2702,13 +2668,13 @@ function createNullLanguageModelUsage() {
|
|
|
2702
2668
|
};
|
|
2703
2669
|
}
|
|
2704
2670
|
function addLanguageModelUsage(usage1, usage2) {
|
|
2705
|
-
var _a24,
|
|
2671
|
+
var _a24, _b24, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
2706
2672
|
return {
|
|
2707
2673
|
inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),
|
|
2708
2674
|
inputTokenDetails: {
|
|
2709
2675
|
noCacheTokens: addTokenCounts(
|
|
2710
2676
|
(_a24 = usage1.inputTokenDetails) == null ? void 0 : _a24.noCacheTokens,
|
|
2711
|
-
(
|
|
2677
|
+
(_b24 = usage2.inputTokenDetails) == null ? void 0 : _b24.noCacheTokens
|
|
2712
2678
|
),
|
|
2713
2679
|
cacheReadTokens: addTokenCounts(
|
|
2714
2680
|
(_c = usage1.inputTokenDetails) == null ? void 0 : _c.cacheReadTokens,
|
|
@@ -2760,8 +2726,8 @@ function mergeAbortSignals(...signals) {
|
|
|
2760
2726
|
|
|
2761
2727
|
// src/util/now.ts
|
|
2762
2728
|
function now() {
|
|
2763
|
-
var _a24,
|
|
2764
|
-
return (
|
|
2729
|
+
var _a24, _b24;
|
|
2730
|
+
return (_b24 = (_a24 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a24.now()) != null ? _b24 : Date.now();
|
|
2765
2731
|
}
|
|
2766
2732
|
|
|
2767
2733
|
// src/util/notify.ts
|
|
@@ -2788,8 +2754,7 @@ function getRetryDelayInMs({
|
|
|
2788
2754
|
exponentialBackoffDelay
|
|
2789
2755
|
}) {
|
|
2790
2756
|
const headers = APICallError2.isInstance(error) ? error.responseHeaders : APICallError2.isInstance(error.cause) ? error.cause.responseHeaders : void 0;
|
|
2791
|
-
if (!headers)
|
|
2792
|
-
return exponentialBackoffDelay;
|
|
2757
|
+
if (!headers) return exponentialBackoffDelay;
|
|
2793
2758
|
let ms;
|
|
2794
2759
|
const retryAfterMs = headers["retry-after-ms"];
|
|
2795
2760
|
if (retryAfterMs) {
|
|
@@ -2967,6 +2932,191 @@ function collectToolApprovals({
|
|
|
2967
2932
|
return { approvedToolApprovals, deniedToolApprovals };
|
|
2968
2933
|
}
|
|
2969
2934
|
|
|
2935
|
+
// src/generate-text/generated-file.ts
|
|
2936
|
+
import {
|
|
2937
|
+
convertBase64ToUint8Array,
|
|
2938
|
+
convertUint8ArrayToBase64
|
|
2939
|
+
} from "@ai-sdk/provider-utils";
|
|
2940
|
+
var DefaultGeneratedFile = class {
|
|
2941
|
+
constructor({
|
|
2942
|
+
data,
|
|
2943
|
+
mediaType,
|
|
2944
|
+
providerMetadata
|
|
2945
|
+
}) {
|
|
2946
|
+
const isUint8Array = data instanceof Uint8Array;
|
|
2947
|
+
this.base64Data = isUint8Array ? void 0 : data;
|
|
2948
|
+
this.uint8ArrayData = isUint8Array ? data : void 0;
|
|
2949
|
+
this.mediaType = mediaType;
|
|
2950
|
+
this.providerMetadata = providerMetadata;
|
|
2951
|
+
}
|
|
2952
|
+
// lazy conversion with caching to avoid unnecessary conversion overhead:
|
|
2953
|
+
get base64() {
|
|
2954
|
+
if (this.base64Data == null) {
|
|
2955
|
+
this.base64Data = convertUint8ArrayToBase64(this.uint8ArrayData);
|
|
2956
|
+
}
|
|
2957
|
+
return this.base64Data;
|
|
2958
|
+
}
|
|
2959
|
+
// lazy conversion with caching to avoid unnecessary conversion overhead:
|
|
2960
|
+
get uint8Array() {
|
|
2961
|
+
if (this.uint8ArrayData == null) {
|
|
2962
|
+
this.uint8ArrayData = convertBase64ToUint8Array(this.base64Data);
|
|
2963
|
+
}
|
|
2964
|
+
return this.uint8ArrayData;
|
|
2965
|
+
}
|
|
2966
|
+
};
|
|
2967
|
+
var DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {
|
|
2968
|
+
constructor(options) {
|
|
2969
|
+
super(options);
|
|
2970
|
+
this.type = "file";
|
|
2971
|
+
}
|
|
2972
|
+
};
|
|
2973
|
+
|
|
2974
|
+
// src/generate-text/convert-language-model-content.ts
|
|
2975
|
+
function convertLanguageModelContent({
|
|
2976
|
+
content,
|
|
2977
|
+
toolCalls,
|
|
2978
|
+
toolOutputs,
|
|
2979
|
+
toolApprovalRequests,
|
|
2980
|
+
toolApprovalResponses,
|
|
2981
|
+
tools
|
|
2982
|
+
}) {
|
|
2983
|
+
const contentParts = [];
|
|
2984
|
+
const toolOutputsWithApprovalResponses = [];
|
|
2985
|
+
const toolOutputsWithoutApprovalResponses = [];
|
|
2986
|
+
const toolCallIdsWithApprovalResponses = new Set(
|
|
2987
|
+
toolApprovalResponses.map(
|
|
2988
|
+
(toolApprovalResponse) => toolApprovalResponse.toolCall.toolCallId
|
|
2989
|
+
)
|
|
2990
|
+
);
|
|
2991
|
+
for (const part of content) {
|
|
2992
|
+
switch (part.type) {
|
|
2993
|
+
case "text":
|
|
2994
|
+
case "reasoning":
|
|
2995
|
+
case "custom":
|
|
2996
|
+
case "source":
|
|
2997
|
+
contentParts.push(part);
|
|
2998
|
+
break;
|
|
2999
|
+
case "file":
|
|
3000
|
+
case "reasoning-file": {
|
|
3001
|
+
contentParts.push({
|
|
3002
|
+
type: part.type,
|
|
3003
|
+
file: new DefaultGeneratedFile({
|
|
3004
|
+
data: part.data.type === "data" ? part.data.data : part.data.url.toString(),
|
|
3005
|
+
mediaType: part.mediaType
|
|
3006
|
+
}),
|
|
3007
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
|
|
3008
|
+
});
|
|
3009
|
+
break;
|
|
3010
|
+
}
|
|
3011
|
+
case "tool-call": {
|
|
3012
|
+
const toolCall = toolCalls.find(
|
|
3013
|
+
(toolCall2) => toolCall2.toolCallId === part.toolCallId
|
|
3014
|
+
);
|
|
3015
|
+
if (toolCall == null) {
|
|
3016
|
+
throw new Error(`Tool call ${part.toolCallId} not found.`);
|
|
3017
|
+
}
|
|
3018
|
+
contentParts.push(toolCall);
|
|
3019
|
+
break;
|
|
3020
|
+
}
|
|
3021
|
+
case "tool-result": {
|
|
3022
|
+
const toolCall = toolCalls.find(
|
|
3023
|
+
(toolCall2) => toolCall2.toolCallId === part.toolCallId
|
|
3024
|
+
);
|
|
3025
|
+
if (toolCall == null) {
|
|
3026
|
+
const tool2 = getOwn(tools, part.toolName);
|
|
3027
|
+
const supportsDeferredResults = (tool2 == null ? void 0 : tool2.type) === "provider" && tool2.supportsDeferredResults;
|
|
3028
|
+
if (!supportsDeferredResults) {
|
|
3029
|
+
throw new Error(`Tool call ${part.toolCallId} not found.`);
|
|
3030
|
+
}
|
|
3031
|
+
if (part.isError) {
|
|
3032
|
+
contentParts.push({
|
|
3033
|
+
type: "tool-error",
|
|
3034
|
+
toolCallId: part.toolCallId,
|
|
3035
|
+
toolName: part.toolName,
|
|
3036
|
+
input: void 0,
|
|
3037
|
+
error: part.result,
|
|
3038
|
+
providerExecuted: true,
|
|
3039
|
+
dynamic: part.dynamic,
|
|
3040
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
|
|
3041
|
+
...(tool2 == null ? void 0 : tool2.metadata) != null ? { toolMetadata: tool2.metadata } : {}
|
|
3042
|
+
});
|
|
3043
|
+
} else {
|
|
3044
|
+
contentParts.push({
|
|
3045
|
+
type: "tool-result",
|
|
3046
|
+
toolCallId: part.toolCallId,
|
|
3047
|
+
toolName: part.toolName,
|
|
3048
|
+
input: void 0,
|
|
3049
|
+
output: part.result,
|
|
3050
|
+
providerExecuted: true,
|
|
3051
|
+
dynamic: part.dynamic,
|
|
3052
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
|
|
3053
|
+
...(tool2 == null ? void 0 : tool2.metadata) != null ? { toolMetadata: tool2.metadata } : {}
|
|
3054
|
+
});
|
|
3055
|
+
}
|
|
3056
|
+
break;
|
|
3057
|
+
}
|
|
3058
|
+
if (part.isError) {
|
|
3059
|
+
contentParts.push({
|
|
3060
|
+
type: "tool-error",
|
|
3061
|
+
toolCallId: part.toolCallId,
|
|
3062
|
+
toolName: part.toolName,
|
|
3063
|
+
input: toolCall.input,
|
|
3064
|
+
error: part.result,
|
|
3065
|
+
providerExecuted: true,
|
|
3066
|
+
dynamic: toolCall.dynamic,
|
|
3067
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
|
|
3068
|
+
...toolCall.toolMetadata != null ? { toolMetadata: toolCall.toolMetadata } : {}
|
|
3069
|
+
});
|
|
3070
|
+
} else {
|
|
3071
|
+
contentParts.push({
|
|
3072
|
+
type: "tool-result",
|
|
3073
|
+
toolCallId: part.toolCallId,
|
|
3074
|
+
toolName: part.toolName,
|
|
3075
|
+
input: toolCall.input,
|
|
3076
|
+
output: part.result,
|
|
3077
|
+
providerExecuted: true,
|
|
3078
|
+
dynamic: toolCall.dynamic,
|
|
3079
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
|
|
3080
|
+
...toolCall.toolMetadata != null ? { toolMetadata: toolCall.toolMetadata } : {}
|
|
3081
|
+
});
|
|
3082
|
+
}
|
|
3083
|
+
break;
|
|
3084
|
+
}
|
|
3085
|
+
case "tool-approval-request": {
|
|
3086
|
+
const toolCall = toolCalls.find(
|
|
3087
|
+
(toolCall2) => toolCall2.toolCallId === part.toolCallId
|
|
3088
|
+
);
|
|
3089
|
+
if (toolCall == null) {
|
|
3090
|
+
throw new ToolCallNotFoundForApprovalError({
|
|
3091
|
+
toolCallId: part.toolCallId,
|
|
3092
|
+
approvalId: part.approvalId
|
|
3093
|
+
});
|
|
3094
|
+
}
|
|
3095
|
+
contentParts.push({
|
|
3096
|
+
type: "tool-approval-request",
|
|
3097
|
+
approvalId: part.approvalId,
|
|
3098
|
+
toolCall
|
|
3099
|
+
});
|
|
3100
|
+
break;
|
|
3101
|
+
}
|
|
3102
|
+
}
|
|
3103
|
+
}
|
|
3104
|
+
for (const toolOutput of toolOutputs) {
|
|
3105
|
+
if (toolCallIdsWithApprovalResponses.has(toolOutput.toolCallId)) {
|
|
3106
|
+
toolOutputsWithApprovalResponses.push(toolOutput);
|
|
3107
|
+
} else {
|
|
3108
|
+
toolOutputsWithoutApprovalResponses.push(toolOutput);
|
|
3109
|
+
}
|
|
3110
|
+
}
|
|
3111
|
+
return [
|
|
3112
|
+
...contentParts,
|
|
3113
|
+
...toolOutputsWithoutApprovalResponses,
|
|
3114
|
+
...toolApprovalRequests,
|
|
3115
|
+
...toolApprovalResponses,
|
|
3116
|
+
...toolOutputsWithApprovalResponses
|
|
3117
|
+
];
|
|
3118
|
+
}
|
|
3119
|
+
|
|
2970
3120
|
// src/generate-text/execute-tool-call.ts
|
|
2971
3121
|
import {
|
|
2972
3122
|
executeTool,
|
|
@@ -3139,43 +3289,6 @@ function filterActiveTools({
|
|
|
3139
3289
|
);
|
|
3140
3290
|
}
|
|
3141
3291
|
|
|
3142
|
-
// src/generate-text/generated-file.ts
|
|
3143
|
-
import {
|
|
3144
|
-
convertBase64ToUint8Array,
|
|
3145
|
-
convertUint8ArrayToBase64
|
|
3146
|
-
} from "@ai-sdk/provider-utils";
|
|
3147
|
-
var DefaultGeneratedFile = class {
|
|
3148
|
-
constructor({
|
|
3149
|
-
data,
|
|
3150
|
-
mediaType
|
|
3151
|
-
}) {
|
|
3152
|
-
const isUint8Array = data instanceof Uint8Array;
|
|
3153
|
-
this.base64Data = isUint8Array ? void 0 : data;
|
|
3154
|
-
this.uint8ArrayData = isUint8Array ? data : void 0;
|
|
3155
|
-
this.mediaType = mediaType;
|
|
3156
|
-
}
|
|
3157
|
-
// lazy conversion with caching to avoid unnecessary conversion overhead:
|
|
3158
|
-
get base64() {
|
|
3159
|
-
if (this.base64Data == null) {
|
|
3160
|
-
this.base64Data = convertUint8ArrayToBase64(this.uint8ArrayData);
|
|
3161
|
-
}
|
|
3162
|
-
return this.base64Data;
|
|
3163
|
-
}
|
|
3164
|
-
// lazy conversion with caching to avoid unnecessary conversion overhead:
|
|
3165
|
-
get uint8Array() {
|
|
3166
|
-
if (this.uint8ArrayData == null) {
|
|
3167
|
-
this.uint8ArrayData = convertBase64ToUint8Array(this.base64Data);
|
|
3168
|
-
}
|
|
3169
|
-
return this.uint8ArrayData;
|
|
3170
|
-
}
|
|
3171
|
-
};
|
|
3172
|
-
var DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {
|
|
3173
|
-
constructor(options) {
|
|
3174
|
-
super(options);
|
|
3175
|
-
this.type = "file";
|
|
3176
|
-
}
|
|
3177
|
-
};
|
|
3178
|
-
|
|
3179
3292
|
// src/generate-text/is-tool-execution-allowed-finish-reason.ts
|
|
3180
3293
|
function isToolExecutionAllowedFinishReason(finishReason) {
|
|
3181
3294
|
return finishReason === "stop" || finishReason === "tool-calls";
|
|
@@ -4041,10 +4154,10 @@ function prepareStepCallSettings({
|
|
|
4041
4154
|
callSettings,
|
|
4042
4155
|
stepSettings
|
|
4043
4156
|
}) {
|
|
4044
|
-
var _a24,
|
|
4157
|
+
var _a24, _b24, _c, _d, _e, _f, _g, _h, _i;
|
|
4045
4158
|
return prepareLanguageModelCallOptions({
|
|
4046
4159
|
maxOutputTokens: (_a24 = stepSettings == null ? void 0 : stepSettings.maxOutputTokens) != null ? _a24 : callSettings.maxOutputTokens,
|
|
4047
|
-
temperature: (
|
|
4160
|
+
temperature: (_b24 = stepSettings == null ? void 0 : stepSettings.temperature) != null ? _b24 : callSettings.temperature,
|
|
4048
4161
|
topP: (_c = stepSettings == null ? void 0 : stepSettings.topP) != null ? _c : callSettings.topP,
|
|
4049
4162
|
topK: (_d = stepSettings == null ? void 0 : stepSettings.topK) != null ? _d : callSettings.topK,
|
|
4050
4163
|
presencePenalty: (_e = stepSettings == null ? void 0 : stepSettings.presencePenalty) != null ? _e : callSettings.presencePenalty,
|
|
@@ -4351,7 +4464,7 @@ function createTelemetryDispatcher({
|
|
|
4351
4464
|
var _a24;
|
|
4352
4465
|
return (_a24 = integration[key]) == null ? void 0 : _a24.bind(integration);
|
|
4353
4466
|
}).filter(Boolean).map(
|
|
4354
|
-
(callback) => (event) => callback(augmentEvent(event, telemetryMetadata))
|
|
4467
|
+
(callback) => ((event) => callback(augmentEvent(event, telemetryMetadata)))
|
|
4355
4468
|
);
|
|
4356
4469
|
const mergedIntegrationCallback = mergeCallbacks(...integrationCallbacks);
|
|
4357
4470
|
return async (event) => {
|
|
@@ -4740,8 +4853,8 @@ function isLoopFinished() {
|
|
|
4740
4853
|
}
|
|
4741
4854
|
function hasToolCall(...toolName) {
|
|
4742
4855
|
return ({ steps }) => {
|
|
4743
|
-
var _a24,
|
|
4744
|
-
return (_c = (
|
|
4856
|
+
var _a24, _b24, _c;
|
|
4857
|
+
return (_c = (_b24 = (_a24 = steps[steps.length - 1]) == null ? void 0 : _a24.toolCalls) == null ? void 0 : _b24.some(
|
|
4745
4858
|
(toolCall) => toolName.includes(toolCall.toolName)
|
|
4746
4859
|
)) != null ? _c : false;
|
|
4747
4860
|
};
|
|
@@ -5006,7 +5119,7 @@ function prepareToolsForToolCallers({
|
|
|
5006
5119
|
tools,
|
|
5007
5120
|
toolCallers
|
|
5008
5121
|
}) {
|
|
5009
|
-
var _a24,
|
|
5122
|
+
var _a24, _b24;
|
|
5010
5123
|
if (tools == null || toolCallers == null) {
|
|
5011
5124
|
return { executionTools: tools, modelTools: tools };
|
|
5012
5125
|
}
|
|
@@ -5056,7 +5169,7 @@ function prepareToolsForToolCallers({
|
|
|
5056
5169
|
if ((caller == null ? void 0 : caller.type) !== "local") {
|
|
5057
5170
|
continue;
|
|
5058
5171
|
}
|
|
5059
|
-
const boundCaller = caller.bind((
|
|
5172
|
+
const boundCaller = caller.bind((_b24 = localToolsByCaller.get(callerName)) != null ? _b24 : {});
|
|
5060
5173
|
executionTools[callerName] = boundCaller;
|
|
5061
5174
|
if (Object.prototype.hasOwnProperty.call(modelTools, callerName)) {
|
|
5062
5175
|
modelTools[callerName] = boundCaller;
|
|
@@ -5079,7 +5192,7 @@ function canonicalJSON(value) {
|
|
|
5079
5192
|
return JSON.stringify(value);
|
|
5080
5193
|
}
|
|
5081
5194
|
if (Array.isArray(value)) {
|
|
5082
|
-
return `[${value.map(canonicalJSON).join(",")}]`;
|
|
5195
|
+
return `[${value.map((element) => element === void 0 ? "null" : canonicalJSON(element)).join(",")}]`;
|
|
5083
5196
|
}
|
|
5084
5197
|
const keys = Object.keys(value).sort();
|
|
5085
5198
|
const entries = keys.map(
|
|
@@ -5178,8 +5291,7 @@ async function maybeSignApproval({
|
|
|
5178
5291
|
toolName,
|
|
5179
5292
|
input
|
|
5180
5293
|
}) {
|
|
5181
|
-
if (secret == null)
|
|
5182
|
-
return void 0;
|
|
5294
|
+
if (secret == null) return void 0;
|
|
5183
5295
|
return signToolApproval({ secret, approvalId, toolCallId, toolName, input });
|
|
5184
5296
|
}
|
|
5185
5297
|
|
|
@@ -5339,10 +5451,10 @@ async function generateText({
|
|
|
5339
5451
|
onEnd = onFinish,
|
|
5340
5452
|
...settings
|
|
5341
5453
|
}) {
|
|
5342
|
-
var _a24,
|
|
5454
|
+
var _a24, _b24, _c, _d;
|
|
5343
5455
|
include = {
|
|
5344
5456
|
requestBody: (_a24 = include == null ? void 0 : include.requestBody) != null ? _a24 : false,
|
|
5345
|
-
requestMessages: (
|
|
5457
|
+
requestMessages: (_b24 = include == null ? void 0 : include.requestMessages) != null ? _b24 : false,
|
|
5346
5458
|
responseBody: (_c = include == null ? void 0 : include.responseBody) != null ? _c : false
|
|
5347
5459
|
};
|
|
5348
5460
|
const model = resolveLanguageModel(modelArg);
|
|
@@ -5410,7 +5522,7 @@ async function generateText({
|
|
|
5410
5522
|
includeRuntimeContext: telemetry == null ? void 0 : telemetry.includeRuntimeContext,
|
|
5411
5523
|
includeToolsContext: telemetry == null ? void 0 : telemetry.includeToolsContext
|
|
5412
5524
|
});
|
|
5413
|
-
const runInTracingChannelSpan = (_d = telemetryDispatcher.runInTracingChannelSpan) != null ? _d : async ({ execute }) => await execute();
|
|
5525
|
+
const runInTracingChannelSpan = (_d = telemetryDispatcher.runInTracingChannelSpan) != null ? _d : (async ({ execute }) => await execute());
|
|
5414
5526
|
const generateTextStartEvent = {
|
|
5415
5527
|
callId,
|
|
5416
5528
|
operationId: "ai.generateText",
|
|
@@ -5586,7 +5698,7 @@ async function generateText({
|
|
|
5586
5698
|
type: "step",
|
|
5587
5699
|
event: { callId, stepNumber },
|
|
5588
5700
|
execute: async () => {
|
|
5589
|
-
var _a26,
|
|
5701
|
+
var _a26, _b25, _c2, _d2, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
|
|
5590
5702
|
const accumulatedResponseMessages = [
|
|
5591
5703
|
...initialResponseMessages,
|
|
5592
5704
|
...steps.flatMap((step) => step.response.messages)
|
|
@@ -5607,7 +5719,7 @@ async function generateText({
|
|
|
5607
5719
|
}));
|
|
5608
5720
|
const stepSandbox = (_a26 = prepareStepResult == null ? void 0 : prepareStepResult.experimental_sandbox) != null ? _a26 : sandbox;
|
|
5609
5721
|
const stepModel = resolveLanguageModel(
|
|
5610
|
-
(
|
|
5722
|
+
(_b25 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _b25 : model
|
|
5611
5723
|
);
|
|
5612
5724
|
const stepInstructions = (_d2 = (_c2 = prepareStepResult == null ? void 0 : prepareStepResult.instructions) != null ? _c2 : prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _d2 : instructionsForNextStep;
|
|
5613
5725
|
const promptMessages = await convertToLanguageModelPrompt({
|
|
@@ -5698,9 +5810,9 @@ async function generateText({
|
|
|
5698
5810
|
telemetryDispatcher.onLanguageModelCallStart
|
|
5699
5811
|
]
|
|
5700
5812
|
});
|
|
5701
|
-
const executeLanguageModelCallInTelemetryContext = (_n = telemetryDispatcher.executeLanguageModelCall) != null ? _n : async ({ execute }) => await execute();
|
|
5813
|
+
const executeLanguageModelCallInTelemetryContext = (_n = telemetryDispatcher.executeLanguageModelCall) != null ? _n : (async ({ execute }) => await execute());
|
|
5702
5814
|
currentModelResponse = await retry(async () => {
|
|
5703
|
-
var _a27,
|
|
5815
|
+
var _a27, _b26, _c3, _d3, _e2, _f2, _g2, _h2;
|
|
5704
5816
|
const result = await executeLanguageModelCallInTelemetryContext(
|
|
5705
5817
|
{
|
|
5706
5818
|
...languageModelCallStartEvent,
|
|
@@ -5717,7 +5829,7 @@ async function generateText({
|
|
|
5717
5829
|
}
|
|
5718
5830
|
);
|
|
5719
5831
|
const responseData = {
|
|
5720
|
-
id: (
|
|
5832
|
+
id: (_b26 = (_a27 = result.response) == null ? void 0 : _a27.id) != null ? _b26 : generateId4(),
|
|
5721
5833
|
timestamp: (_d3 = (_c3 = result.response) == null ? void 0 : _c3.timestamp) != null ? _d3 : /* @__PURE__ */ new Date(),
|
|
5722
5834
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
|
|
5723
5835
|
headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
|
|
@@ -5746,7 +5858,7 @@ async function generateText({
|
|
|
5746
5858
|
const toolApprovalRequests = {};
|
|
5747
5859
|
const stepToolApprovalResponses = {};
|
|
5748
5860
|
const blockedToolCallIds = /* @__PURE__ */ new Set();
|
|
5749
|
-
const modelCallContent =
|
|
5861
|
+
const modelCallContent = convertLanguageModelContent({
|
|
5750
5862
|
content: currentModelResponse.content,
|
|
5751
5863
|
toolCalls: stepToolCalls,
|
|
5752
5864
|
toolOutputs: [],
|
|
@@ -5963,8 +6075,7 @@ async function generateText({
|
|
|
5963
6075
|
timeToFirstOutputMs: void 0
|
|
5964
6076
|
};
|
|
5965
6077
|
for (const toolCall of stepToolCalls) {
|
|
5966
|
-
if (!toolCall.providerExecuted)
|
|
5967
|
-
continue;
|
|
6078
|
+
if (!toolCall.providerExecuted) continue;
|
|
5968
6079
|
const tool2 = getOwn(stepExecutionTools, toolCall.toolName);
|
|
5969
6080
|
if ((tool2 == null ? void 0 : tool2.type) === "provider" && tool2.supportsDeferredResults) {
|
|
5970
6081
|
const hasResultInResponse = currentModelResponse.content.some(
|
|
@@ -5982,7 +6093,7 @@ async function generateText({
|
|
|
5982
6093
|
pendingDeferredToolCalls.delete(part.toolCallId);
|
|
5983
6094
|
}
|
|
5984
6095
|
}
|
|
5985
|
-
const stepContent =
|
|
6096
|
+
const stepContent = convertLanguageModelContent({
|
|
5986
6097
|
content: currentModelResponse.content,
|
|
5987
6098
|
toolCalls: stepToolCalls,
|
|
5988
6099
|
toolOutputs: clientToolOutputs,
|
|
@@ -6266,146 +6377,6 @@ var DefaultGenerateTextResult = class {
|
|
|
6266
6377
|
return this._output;
|
|
6267
6378
|
}
|
|
6268
6379
|
};
|
|
6269
|
-
function asContent({
|
|
6270
|
-
content,
|
|
6271
|
-
toolCalls,
|
|
6272
|
-
toolOutputs,
|
|
6273
|
-
toolApprovalRequests,
|
|
6274
|
-
toolApprovalResponses,
|
|
6275
|
-
tools
|
|
6276
|
-
}) {
|
|
6277
|
-
const contentParts = [];
|
|
6278
|
-
const toolOutputsWithApprovalResponses = [];
|
|
6279
|
-
const toolOutputsWithoutApprovalResponses = [];
|
|
6280
|
-
const toolCallIdsWithApprovalResponses = new Set(
|
|
6281
|
-
toolApprovalResponses.map(
|
|
6282
|
-
(toolApprovalResponse) => toolApprovalResponse.toolCall.toolCallId
|
|
6283
|
-
)
|
|
6284
|
-
);
|
|
6285
|
-
for (const part of content) {
|
|
6286
|
-
switch (part.type) {
|
|
6287
|
-
case "text":
|
|
6288
|
-
case "reasoning":
|
|
6289
|
-
case "custom":
|
|
6290
|
-
case "source":
|
|
6291
|
-
contentParts.push(part);
|
|
6292
|
-
break;
|
|
6293
|
-
case "file":
|
|
6294
|
-
case "reasoning-file": {
|
|
6295
|
-
contentParts.push({
|
|
6296
|
-
type: part.type,
|
|
6297
|
-
file: new DefaultGeneratedFile({
|
|
6298
|
-
data: part.data.type === "data" ? part.data.data : part.data.url.toString(),
|
|
6299
|
-
mediaType: part.mediaType
|
|
6300
|
-
}),
|
|
6301
|
-
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
|
|
6302
|
-
});
|
|
6303
|
-
break;
|
|
6304
|
-
}
|
|
6305
|
-
case "tool-call": {
|
|
6306
|
-
contentParts.push(
|
|
6307
|
-
toolCalls.find((toolCall) => toolCall.toolCallId === part.toolCallId)
|
|
6308
|
-
);
|
|
6309
|
-
break;
|
|
6310
|
-
}
|
|
6311
|
-
case "tool-result": {
|
|
6312
|
-
const toolCall = toolCalls.find(
|
|
6313
|
-
(toolCall2) => toolCall2.toolCallId === part.toolCallId
|
|
6314
|
-
);
|
|
6315
|
-
if (toolCall == null) {
|
|
6316
|
-
const tool2 = getOwn(tools, part.toolName);
|
|
6317
|
-
const supportsDeferredResults = (tool2 == null ? void 0 : tool2.type) === "provider" && tool2.supportsDeferredResults;
|
|
6318
|
-
if (!supportsDeferredResults) {
|
|
6319
|
-
throw new Error(`Tool call ${part.toolCallId} not found.`);
|
|
6320
|
-
}
|
|
6321
|
-
if (part.isError) {
|
|
6322
|
-
contentParts.push({
|
|
6323
|
-
type: "tool-error",
|
|
6324
|
-
toolCallId: part.toolCallId,
|
|
6325
|
-
toolName: part.toolName,
|
|
6326
|
-
input: void 0,
|
|
6327
|
-
error: part.result,
|
|
6328
|
-
providerExecuted: true,
|
|
6329
|
-
dynamic: part.dynamic,
|
|
6330
|
-
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
|
|
6331
|
-
...(tool2 == null ? void 0 : tool2.metadata) != null ? { toolMetadata: tool2.metadata } : {}
|
|
6332
|
-
});
|
|
6333
|
-
} else {
|
|
6334
|
-
contentParts.push({
|
|
6335
|
-
type: "tool-result",
|
|
6336
|
-
toolCallId: part.toolCallId,
|
|
6337
|
-
toolName: part.toolName,
|
|
6338
|
-
input: void 0,
|
|
6339
|
-
output: part.result,
|
|
6340
|
-
providerExecuted: true,
|
|
6341
|
-
dynamic: part.dynamic,
|
|
6342
|
-
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
|
|
6343
|
-
...(tool2 == null ? void 0 : tool2.metadata) != null ? { toolMetadata: tool2.metadata } : {}
|
|
6344
|
-
});
|
|
6345
|
-
}
|
|
6346
|
-
break;
|
|
6347
|
-
}
|
|
6348
|
-
if (part.isError) {
|
|
6349
|
-
contentParts.push({
|
|
6350
|
-
type: "tool-error",
|
|
6351
|
-
toolCallId: part.toolCallId,
|
|
6352
|
-
toolName: part.toolName,
|
|
6353
|
-
input: toolCall.input,
|
|
6354
|
-
error: part.result,
|
|
6355
|
-
providerExecuted: true,
|
|
6356
|
-
dynamic: toolCall.dynamic,
|
|
6357
|
-
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
|
|
6358
|
-
...toolCall.toolMetadata != null ? { toolMetadata: toolCall.toolMetadata } : {}
|
|
6359
|
-
});
|
|
6360
|
-
} else {
|
|
6361
|
-
contentParts.push({
|
|
6362
|
-
type: "tool-result",
|
|
6363
|
-
toolCallId: part.toolCallId,
|
|
6364
|
-
toolName: part.toolName,
|
|
6365
|
-
input: toolCall.input,
|
|
6366
|
-
output: part.result,
|
|
6367
|
-
providerExecuted: true,
|
|
6368
|
-
dynamic: toolCall.dynamic,
|
|
6369
|
-
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
|
|
6370
|
-
...toolCall.toolMetadata != null ? { toolMetadata: toolCall.toolMetadata } : {}
|
|
6371
|
-
});
|
|
6372
|
-
}
|
|
6373
|
-
break;
|
|
6374
|
-
}
|
|
6375
|
-
case "tool-approval-request": {
|
|
6376
|
-
const toolCall = toolCalls.find(
|
|
6377
|
-
(toolCall2) => toolCall2.toolCallId === part.toolCallId
|
|
6378
|
-
);
|
|
6379
|
-
if (toolCall == null) {
|
|
6380
|
-
throw new ToolCallNotFoundForApprovalError({
|
|
6381
|
-
toolCallId: part.toolCallId,
|
|
6382
|
-
approvalId: part.approvalId
|
|
6383
|
-
});
|
|
6384
|
-
}
|
|
6385
|
-
contentParts.push({
|
|
6386
|
-
type: "tool-approval-request",
|
|
6387
|
-
approvalId: part.approvalId,
|
|
6388
|
-
toolCall
|
|
6389
|
-
});
|
|
6390
|
-
break;
|
|
6391
|
-
}
|
|
6392
|
-
}
|
|
6393
|
-
}
|
|
6394
|
-
for (const toolOutput of toolOutputs) {
|
|
6395
|
-
if (toolCallIdsWithApprovalResponses.has(toolOutput.toolCallId)) {
|
|
6396
|
-
toolOutputsWithApprovalResponses.push(toolOutput);
|
|
6397
|
-
} else {
|
|
6398
|
-
toolOutputsWithoutApprovalResponses.push(toolOutput);
|
|
6399
|
-
}
|
|
6400
|
-
}
|
|
6401
|
-
return [
|
|
6402
|
-
...contentParts,
|
|
6403
|
-
...toolOutputsWithoutApprovalResponses,
|
|
6404
|
-
...toolApprovalRequests,
|
|
6405
|
-
...toolApprovalResponses,
|
|
6406
|
-
...toolOutputsWithApprovalResponses
|
|
6407
|
-
];
|
|
6408
|
-
}
|
|
6409
6380
|
|
|
6410
6381
|
// src/generate-text/stream-text.ts
|
|
6411
6382
|
import {
|
|
@@ -6466,8 +6437,7 @@ function writeToServerResponse({
|
|
|
6466
6437
|
try {
|
|
6467
6438
|
while (true) {
|
|
6468
6439
|
const { done, value } = await reader.read();
|
|
6469
|
-
if (done)
|
|
6470
|
-
break;
|
|
6440
|
+
if (done) break;
|
|
6471
6441
|
const canContinue = response.write(value);
|
|
6472
6442
|
const flush = response.flush;
|
|
6473
6443
|
if (typeof flush === "function") {
|
|
@@ -6887,7 +6857,7 @@ function processUIMessageStream({
|
|
|
6887
6857
|
new TransformStream({
|
|
6888
6858
|
async transform(chunk, controller) {
|
|
6889
6859
|
await runUpdateMessageJob(async ({ state, write }) => {
|
|
6890
|
-
var _a24,
|
|
6860
|
+
var _a24, _b24, _c, _d;
|
|
6891
6861
|
function getCurrentStepParts() {
|
|
6892
6862
|
const parts = state.message.parts;
|
|
6893
6863
|
let currentStepStartIndex = parts.length - 1;
|
|
@@ -6989,7 +6959,7 @@ function processUIMessageStream({
|
|
|
6989
6959
|
}
|
|
6990
6960
|
}
|
|
6991
6961
|
function updateDynamicToolPart(options, existingPart) {
|
|
6992
|
-
var _a25,
|
|
6962
|
+
var _a25, _b25;
|
|
6993
6963
|
const part = existingPart != null ? existingPart : getCurrentStepParts().find(
|
|
6994
6964
|
(part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
|
|
6995
6965
|
);
|
|
@@ -7009,7 +6979,7 @@ function processUIMessageStream({
|
|
|
7009
6979
|
if (options.toolMetadata !== void 0) {
|
|
7010
6980
|
anyPart.toolMetadata = options.toolMetadata;
|
|
7011
6981
|
}
|
|
7012
|
-
anyPart.providerExecuted = (
|
|
6982
|
+
anyPart.providerExecuted = (_b25 = anyOptions.providerExecuted) != null ? _b25 : part.providerExecuted;
|
|
7013
6983
|
const providerMetadata = anyOptions.providerMetadata;
|
|
7014
6984
|
if (providerMetadata != null) {
|
|
7015
6985
|
if (options.state === "output-available" || options.state === "output-error") {
|
|
@@ -7090,7 +7060,7 @@ function processUIMessageStream({
|
|
|
7090
7060
|
});
|
|
7091
7061
|
}
|
|
7092
7062
|
textPart.state = "done";
|
|
7093
|
-
textPart.providerMetadata = (
|
|
7063
|
+
textPart.providerMetadata = (_b24 = chunk.providerMetadata) != null ? _b24 : textPart.providerMetadata;
|
|
7094
7064
|
delete state.activeTextParts[chunk.id];
|
|
7095
7065
|
write();
|
|
7096
7066
|
break;
|
|
@@ -8041,8 +8011,7 @@ function asAsyncIterableStream(stream) {
|
|
|
8041
8011
|
let finished = false;
|
|
8042
8012
|
async function cleanup(cancelStream) {
|
|
8043
8013
|
var _a24;
|
|
8044
|
-
if (finished)
|
|
8045
|
-
return;
|
|
8014
|
+
if (finished) return;
|
|
8046
8015
|
finished = true;
|
|
8047
8016
|
try {
|
|
8048
8017
|
if (cancelStream) {
|
|
@@ -8121,8 +8090,7 @@ async function consumeStream({
|
|
|
8121
8090
|
try {
|
|
8122
8091
|
while (true) {
|
|
8123
8092
|
const { done } = await reader.read();
|
|
8124
|
-
if (done)
|
|
8125
|
-
break;
|
|
8093
|
+
if (done) break;
|
|
8126
8094
|
}
|
|
8127
8095
|
} catch (error) {
|
|
8128
8096
|
onError == null ? void 0 : onError(error);
|
|
@@ -8428,8 +8396,7 @@ function invokeToolCallbacksFromStream({
|
|
|
8428
8396
|
abortSignal,
|
|
8429
8397
|
runtimeContext
|
|
8430
8398
|
}) {
|
|
8431
|
-
if (tools == null)
|
|
8432
|
-
return stream;
|
|
8399
|
+
if (tools == null) return stream;
|
|
8433
8400
|
const ongoingToolCallToolNames = createIdMap();
|
|
8434
8401
|
return stream.pipeThrough(
|
|
8435
8402
|
new TransformStream({
|
|
@@ -8495,7 +8462,7 @@ import {
|
|
|
8495
8462
|
import { AISDKError as AISDKError26 } from "@ai-sdk/provider";
|
|
8496
8463
|
import { isProviderStreamError } from "@ai-sdk/provider-utils";
|
|
8497
8464
|
function normalizeStreamProviderError(error) {
|
|
8498
|
-
var _a24,
|
|
8465
|
+
var _a24, _b24, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
|
|
8499
8466
|
if (isError(error) || AISDKError26.isInstance(error) || StreamProviderError.isInstance(error)) {
|
|
8500
8467
|
return error;
|
|
8501
8468
|
}
|
|
@@ -8504,7 +8471,7 @@ function normalizeStreamProviderError(error) {
|
|
|
8504
8471
|
return error;
|
|
8505
8472
|
}
|
|
8506
8473
|
const providerStreamError = isProviderStreamError(error);
|
|
8507
|
-
const details = providerStreamError ? outer : (_c = (
|
|
8474
|
+
const details = providerStreamError ? outer : (_c = (_b24 = asRecord((_a24 = asRecord(outer.response)) == null ? void 0 : _a24.error)) != null ? _b24 : asRecord(outer.error)) != null ? _c : outer;
|
|
8508
8475
|
if (typeof details.message !== "string") {
|
|
8509
8476
|
return error;
|
|
8510
8477
|
}
|
|
@@ -8714,7 +8681,7 @@ function createLanguageModelV4StreamPartToLanguageModelStreamPartTransform({
|
|
|
8714
8681
|
const timeBetweenOutputChunksMs = [];
|
|
8715
8682
|
return new TransformStream({
|
|
8716
8683
|
async transform(chunk, controller) {
|
|
8717
|
-
var _a24,
|
|
8684
|
+
var _a24, _b24, _c;
|
|
8718
8685
|
if (isOutputChunk(chunk)) {
|
|
8719
8686
|
const outputChunkTimestampMs = now2();
|
|
8720
8687
|
if (timeToFirstOutputMs == null) {
|
|
@@ -8973,7 +8940,7 @@ function createLanguageModelV4StreamPartToLanguageModelStreamPartTransform({
|
|
|
8973
8940
|
break;
|
|
8974
8941
|
}
|
|
8975
8942
|
case "response-metadata": {
|
|
8976
|
-
responseId = (
|
|
8943
|
+
responseId = (_b24 = chunk.id) != null ? _b24 : responseId;
|
|
8977
8944
|
responseModelId = (_c = chunk.modelId) != null ? _c : responseModelId;
|
|
8978
8945
|
controller.enqueue({
|
|
8979
8946
|
type: "model-call-response-metadata",
|
|
@@ -9153,7 +9120,7 @@ function streamText({
|
|
|
9153
9120
|
} = {},
|
|
9154
9121
|
...settings
|
|
9155
9122
|
}) {
|
|
9156
|
-
var _a24,
|
|
9123
|
+
var _a24, _b24, _c, _d;
|
|
9157
9124
|
const totalTimeoutMs = getTotalTimeoutMs(timeout);
|
|
9158
9125
|
const stepTimeoutMs = getStepTimeoutMs(timeout);
|
|
9159
9126
|
const firstChunkTimeoutMs = getFirstChunkTimeoutMs(timeout);
|
|
@@ -9228,7 +9195,7 @@ function streamText({
|
|
|
9228
9195
|
// assign default values to include:
|
|
9229
9196
|
include: {
|
|
9230
9197
|
requestBody: (_a24 = include == null ? void 0 : include.requestBody) != null ? _a24 : false,
|
|
9231
|
-
requestMessages: (
|
|
9198
|
+
requestMessages: (_b24 = include == null ? void 0 : include.requestMessages) != null ? _b24 : false,
|
|
9232
9199
|
rawChunks: (_d = (_c = include == null ? void 0 : include.rawChunks) != null ? _c : includeRawChunks) != null ? _d : false
|
|
9233
9200
|
}
|
|
9234
9201
|
});
|
|
@@ -9412,7 +9379,7 @@ var DefaultStreamTextResult = class {
|
|
|
9412
9379
|
let recordedNoOutputError;
|
|
9413
9380
|
const eventProcessor = new TransformStream({
|
|
9414
9381
|
async transform(chunk, controller) {
|
|
9415
|
-
var _a24,
|
|
9382
|
+
var _a24, _b24, _c, _d;
|
|
9416
9383
|
controller.enqueue(chunk);
|
|
9417
9384
|
const { part } = chunk;
|
|
9418
9385
|
await notify({
|
|
@@ -9467,7 +9434,7 @@ var DefaultStreamTextResult = class {
|
|
|
9467
9434
|
});
|
|
9468
9435
|
return;
|
|
9469
9436
|
}
|
|
9470
|
-
activeText.providerMetadata = (
|
|
9437
|
+
activeText.providerMetadata = (_b24 = part.providerMetadata) != null ? _b24 : activeText.providerMetadata;
|
|
9471
9438
|
delete activeTextContent[part.id];
|
|
9472
9439
|
}
|
|
9473
9440
|
if (part.type === "reasoning-start") {
|
|
@@ -9612,42 +9579,56 @@ var DefaultStreamTextResult = class {
|
|
|
9612
9579
|
var _a24;
|
|
9613
9580
|
return (_a24 = step.warnings) != null ? _a24 : [];
|
|
9614
9581
|
});
|
|
9615
|
-
|
|
9616
|
-
|
|
9617
|
-
|
|
9618
|
-
|
|
9619
|
-
|
|
9620
|
-
|
|
9621
|
-
|
|
9622
|
-
|
|
9623
|
-
|
|
9624
|
-
|
|
9625
|
-
|
|
9626
|
-
|
|
9627
|
-
|
|
9628
|
-
|
|
9629
|
-
|
|
9630
|
-
|
|
9631
|
-
|
|
9632
|
-
|
|
9633
|
-
|
|
9634
|
-
|
|
9635
|
-
|
|
9636
|
-
|
|
9637
|
-
|
|
9638
|
-
|
|
9639
|
-
|
|
9640
|
-
|
|
9641
|
-
|
|
9642
|
-
|
|
9643
|
-
|
|
9644
|
-
|
|
9645
|
-
|
|
9646
|
-
|
|
9647
|
-
|
|
9648
|
-
|
|
9649
|
-
|
|
9650
|
-
|
|
9582
|
+
const onEndWithOutput = onEnd == null ? void 0 : async (event) => {
|
|
9583
|
+
const parsedOutput = output == null ? void 0 : await self.getOutputPromise().catch(() => void 0);
|
|
9584
|
+
await onEnd({
|
|
9585
|
+
...event,
|
|
9586
|
+
...output != null ? { output: parsedOutput } : {}
|
|
9587
|
+
});
|
|
9588
|
+
};
|
|
9589
|
+
const onEndEvent = {
|
|
9590
|
+
callId,
|
|
9591
|
+
toolsContext: finalStep.toolsContext,
|
|
9592
|
+
stepNumber: finalStep.stepNumber,
|
|
9593
|
+
model: finalStep.model,
|
|
9594
|
+
runtimeContext: finalStep.runtimeContext,
|
|
9595
|
+
finishReason: finalStep.finishReason,
|
|
9596
|
+
rawFinishReason: finalStep.rawFinishReason,
|
|
9597
|
+
usage: totalUsage,
|
|
9598
|
+
totalUsage,
|
|
9599
|
+
content,
|
|
9600
|
+
text: finalStep.text,
|
|
9601
|
+
reasoning: finalStep.reasoning,
|
|
9602
|
+
reasoningText: finalStep.reasoningText,
|
|
9603
|
+
files,
|
|
9604
|
+
sources,
|
|
9605
|
+
toolCalls,
|
|
9606
|
+
staticToolCalls,
|
|
9607
|
+
dynamicToolCalls,
|
|
9608
|
+
toolResults,
|
|
9609
|
+
staticToolResults,
|
|
9610
|
+
dynamicToolResults,
|
|
9611
|
+
responseMessages: [
|
|
9612
|
+
...initialResponseMessages,
|
|
9613
|
+
...recordedSteps.flatMap((step) => step.response.messages)
|
|
9614
|
+
],
|
|
9615
|
+
warnings,
|
|
9616
|
+
request: finalStep.request,
|
|
9617
|
+
response: finalStep.response,
|
|
9618
|
+
providerMetadata: finalStep.providerMetadata,
|
|
9619
|
+
steps: recordedSteps,
|
|
9620
|
+
finalStep
|
|
9621
|
+
};
|
|
9622
|
+
await Promise.all([
|
|
9623
|
+
notify({
|
|
9624
|
+
event: onEndEvent,
|
|
9625
|
+
callbacks: onEndWithOutput
|
|
9626
|
+
}),
|
|
9627
|
+
notify({
|
|
9628
|
+
event: onEndEvent,
|
|
9629
|
+
callbacks: telemetryDispatcher.onEnd
|
|
9630
|
+
})
|
|
9631
|
+
]);
|
|
9651
9632
|
} catch (error) {
|
|
9652
9633
|
controller.error(error);
|
|
9653
9634
|
}
|
|
@@ -9933,7 +9914,7 @@ var DefaultStreamTextResult = class {
|
|
|
9933
9914
|
currentStep,
|
|
9934
9915
|
usage
|
|
9935
9916
|
}) {
|
|
9936
|
-
var _a25,
|
|
9917
|
+
var _a25, _b24, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
9937
9918
|
const stepTimeoutId = setAbortTimeout({
|
|
9938
9919
|
abortController: stepAbortController,
|
|
9939
9920
|
label: "Step",
|
|
@@ -10025,7 +10006,7 @@ var DefaultStreamTextResult = class {
|
|
|
10025
10006
|
runtimeContext,
|
|
10026
10007
|
experimental_sandbox: sandbox
|
|
10027
10008
|
}));
|
|
10028
|
-
const stepSandbox = (
|
|
10009
|
+
const stepSandbox = (_b24 = prepareStepResult == null ? void 0 : prepareStepResult.experimental_sandbox) != null ? _b24 : sandbox;
|
|
10029
10010
|
runtimeContext = (_c = prepareStepResult == null ? void 0 : prepareStepResult.runtimeContext) != null ? _c : runtimeContext;
|
|
10030
10011
|
toolsContext = (_d = prepareStepResult == null ? void 0 : prepareStepResult.toolsContext) != null ? _d : toolsContext;
|
|
10031
10012
|
const stepModel = resolveLanguageModel(
|
|
@@ -10074,12 +10055,12 @@ var DefaultStreamTextResult = class {
|
|
|
10074
10055
|
} = await runInStepTracingChannelContext(
|
|
10075
10056
|
() => retry(
|
|
10076
10057
|
async () => {
|
|
10077
|
-
var _a26,
|
|
10058
|
+
var _a26, _b25;
|
|
10078
10059
|
return streamLanguageModelCall({
|
|
10079
10060
|
model: (_a26 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a26 : model,
|
|
10080
10061
|
tools: stepModelTools,
|
|
10081
10062
|
toolOrder: stepToolOrder,
|
|
10082
|
-
toolChoice: (
|
|
10063
|
+
toolChoice: (_b25 = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _b25 : toolChoice,
|
|
10083
10064
|
instructions: stepInstructions,
|
|
10084
10065
|
messages: stepMessages,
|
|
10085
10066
|
allowSystemInMessages,
|
|
@@ -10104,7 +10085,7 @@ var DefaultStreamTextResult = class {
|
|
|
10104
10085
|
telemetryDispatcher.onLanguageModelCallEnd
|
|
10105
10086
|
),
|
|
10106
10087
|
onStart: async ({ promptMessages }) => {
|
|
10107
|
-
var _a27,
|
|
10088
|
+
var _a27, _b26;
|
|
10108
10089
|
await notify({
|
|
10109
10090
|
event: {
|
|
10110
10091
|
callId,
|
|
@@ -10115,7 +10096,7 @@ var DefaultStreamTextResult = class {
|
|
|
10115
10096
|
messages: stepMessages,
|
|
10116
10097
|
tools,
|
|
10117
10098
|
toolChoice: (_a27 = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _a27 : toolChoice,
|
|
10118
|
-
activeTools: (
|
|
10099
|
+
activeTools: (_b26 = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _b26 : activeTools,
|
|
10119
10100
|
toolOrder: stepToolOrder,
|
|
10120
10101
|
steps: [...recordedSteps],
|
|
10121
10102
|
providerOptions: stepProviderOptions,
|
|
@@ -10212,7 +10193,7 @@ var DefaultStreamTextResult = class {
|
|
|
10212
10193
|
streamWithToolResults.pipeThrough(
|
|
10213
10194
|
new TransformStream({
|
|
10214
10195
|
async transform(chunk, controller) {
|
|
10215
|
-
var _a26,
|
|
10196
|
+
var _a26, _b25, _c2, _d2, _e2, _f2, _g2;
|
|
10216
10197
|
if (chunk.type === "model-call-start") {
|
|
10217
10198
|
warnings = chunk.warnings;
|
|
10218
10199
|
return;
|
|
@@ -10263,7 +10244,7 @@ var DefaultStreamTextResult = class {
|
|
|
10263
10244
|
case "text-end": {
|
|
10264
10245
|
controller.enqueue({
|
|
10265
10246
|
...chunk,
|
|
10266
|
-
id: (
|
|
10247
|
+
id: (_b25 = textPartIds.get(chunk.id)) != null ? _b25 : chunk.id
|
|
10267
10248
|
});
|
|
10268
10249
|
textPartIds.delete(chunk.id);
|
|
10269
10250
|
break;
|
|
@@ -10393,8 +10374,7 @@ var DefaultStreamTextResult = class {
|
|
|
10393
10374
|
(toolApprovalResponse) => toolApprovalResponse.approved === false
|
|
10394
10375
|
);
|
|
10395
10376
|
for (const toolCall of stepToolCalls) {
|
|
10396
|
-
if (toolCall.providerExecuted !== true)
|
|
10397
|
-
continue;
|
|
10377
|
+
if (toolCall.providerExecuted !== true) continue;
|
|
10398
10378
|
const tool2 = getOwn(stepExecutionTools, toolCall.toolName);
|
|
10399
10379
|
if ((tool2 == null ? void 0 : tool2.type) === "provider" && tool2.supportsDeferredResults) {
|
|
10400
10380
|
const hasResultInStep = stepToolOutputs.some(
|
|
@@ -10657,28 +10637,34 @@ var DefaultStreamTextResult = class {
|
|
|
10657
10637
|
);
|
|
10658
10638
|
}
|
|
10659
10639
|
get elementStream() {
|
|
10660
|
-
var _a24,
|
|
10640
|
+
var _a24, _b24, _c;
|
|
10661
10641
|
const transform = (_a24 = this.outputSpecification) == null ? void 0 : _a24.createElementStreamTransform();
|
|
10662
10642
|
if (transform == null) {
|
|
10663
10643
|
throw new UnsupportedFunctionalityError2({
|
|
10664
|
-
functionality: `element streams in ${(_c = (
|
|
10644
|
+
functionality: `element streams in ${(_c = (_b24 = this.outputSpecification) == null ? void 0 : _b24.name) != null ? _c : "text"} mode`
|
|
10665
10645
|
});
|
|
10666
10646
|
}
|
|
10667
10647
|
return createAsyncIterableStream(this.teeStream().pipeThrough(transform));
|
|
10668
10648
|
}
|
|
10649
|
+
getOutputPromise() {
|
|
10650
|
+
if (this.outputPromise == null) {
|
|
10651
|
+
this.outputPromise = this.finalStep.then((step) => {
|
|
10652
|
+
var _a24;
|
|
10653
|
+
const output = (_a24 = this.outputSpecification) != null ? _a24 : text();
|
|
10654
|
+
return output.parseCompleteOutput(
|
|
10655
|
+
{ text: step.text },
|
|
10656
|
+
{
|
|
10657
|
+
response: step.response,
|
|
10658
|
+
usage: step.usage,
|
|
10659
|
+
finishReason: step.finishReason
|
|
10660
|
+
}
|
|
10661
|
+
);
|
|
10662
|
+
});
|
|
10663
|
+
}
|
|
10664
|
+
return this.outputPromise;
|
|
10665
|
+
}
|
|
10669
10666
|
get output() {
|
|
10670
|
-
return this.
|
|
10671
|
-
var _a24;
|
|
10672
|
-
const output = (_a24 = this.outputSpecification) != null ? _a24 : text();
|
|
10673
|
-
return output.parseCompleteOutput(
|
|
10674
|
-
{ text: step.text },
|
|
10675
|
-
{
|
|
10676
|
-
response: step.response,
|
|
10677
|
-
usage: step.usage,
|
|
10678
|
-
finishReason: step.finishReason
|
|
10679
|
-
}
|
|
10680
|
-
);
|
|
10681
|
-
});
|
|
10667
|
+
return this.getOutputPromise();
|
|
10682
10668
|
}
|
|
10683
10669
|
toUIMessageStream({
|
|
10684
10670
|
originalMessages,
|
|
@@ -10800,7 +10786,7 @@ var ToolLoopAgent = class {
|
|
|
10800
10786
|
return this.settings.tools;
|
|
10801
10787
|
}
|
|
10802
10788
|
async prepareCall(options) {
|
|
10803
|
-
var _a24,
|
|
10789
|
+
var _a24, _b24, _c, _d;
|
|
10804
10790
|
if (this.settings.callOptionsSchema != null && options.options !== void 0) {
|
|
10805
10791
|
const validatedOptions = await validateTypes3({
|
|
10806
10792
|
value: options.options,
|
|
@@ -10827,8 +10813,8 @@ var ToolLoopAgent = class {
|
|
|
10827
10813
|
stopWhen: (_a24 = this.settings.stopWhen) != null ? _a24 : isStepCount(20),
|
|
10828
10814
|
...options
|
|
10829
10815
|
};
|
|
10830
|
-
const preparedCallArgs = (_d = await ((_c = (
|
|
10831
|
-
|
|
10816
|
+
const preparedCallArgs = (_d = await ((_c = (_b24 = this.settings).prepareCall) == null ? void 0 : _c.call(
|
|
10817
|
+
_b24,
|
|
10832
10818
|
baseCallArgs
|
|
10833
10819
|
))) != null ? _d : baseCallArgs;
|
|
10834
10820
|
const {
|
|
@@ -10888,7 +10874,7 @@ var ToolLoopAgent = class {
|
|
|
10888
10874
|
onEnd = onFinish,
|
|
10889
10875
|
...options
|
|
10890
10876
|
}) {
|
|
10891
|
-
var _a24,
|
|
10877
|
+
var _a24, _b24, _c;
|
|
10892
10878
|
const generate = generateText;
|
|
10893
10879
|
const preparedCall = await this.prepareCall({
|
|
10894
10880
|
...options,
|
|
@@ -10903,7 +10889,7 @@ var ToolLoopAgent = class {
|
|
|
10903
10889
|
onStart != null ? onStart : experimental_onStart
|
|
10904
10890
|
),
|
|
10905
10891
|
onStepStart: mergeCallbacks(
|
|
10906
|
-
(
|
|
10892
|
+
(_b24 = this.settings.onStepStart) != null ? _b24 : this.settings.experimental_onStepStart,
|
|
10907
10893
|
onStepStart != null ? onStepStart : experimental_onStepStart
|
|
10908
10894
|
),
|
|
10909
10895
|
onToolExecutionStart: mergeCallbacks(
|
|
@@ -10946,7 +10932,7 @@ var ToolLoopAgent = class {
|
|
|
10946
10932
|
onEnd = onFinish,
|
|
10947
10933
|
...options
|
|
10948
10934
|
}) {
|
|
10949
|
-
var _a24,
|
|
10935
|
+
var _a24, _b24, _c;
|
|
10950
10936
|
const stream = streamText;
|
|
10951
10937
|
const preparedCall = await this.prepareCall({
|
|
10952
10938
|
...options,
|
|
@@ -10962,7 +10948,7 @@ var ToolLoopAgent = class {
|
|
|
10962
10948
|
onStart != null ? onStart : experimental_onStart
|
|
10963
10949
|
),
|
|
10964
10950
|
onStepStart: mergeCallbacks(
|
|
10965
|
-
(
|
|
10951
|
+
(_b24 = this.settings.onStepStart) != null ? _b24 : this.settings.experimental_onStepStart,
|
|
10966
10952
|
onStepStart != null ? onStepStart : experimental_onStepStart
|
|
10967
10953
|
),
|
|
10968
10954
|
onToolExecutionStart: mergeCallbacks(
|
|
@@ -11057,8 +11043,7 @@ function createUIMessageStream({
|
|
|
11057
11043
|
const reader = streamArg.getReader();
|
|
11058
11044
|
while (true) {
|
|
11059
11045
|
const { done, value } = await reader.read();
|
|
11060
|
-
if (done)
|
|
11061
|
-
break;
|
|
11046
|
+
if (done) break;
|
|
11062
11047
|
safeEnqueue(value);
|
|
11063
11048
|
}
|
|
11064
11049
|
})().catch((error) => {
|
|
@@ -11242,7 +11227,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
11242
11227
|
if (message.parts != null) {
|
|
11243
11228
|
let block = [];
|
|
11244
11229
|
async function processBlock() {
|
|
11245
|
-
var _a24,
|
|
11230
|
+
var _a24, _b24, _c, _d, _e, _f, _g;
|
|
11246
11231
|
if (block.length === 0) {
|
|
11247
11232
|
return;
|
|
11248
11233
|
}
|
|
@@ -11306,7 +11291,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
11306
11291
|
});
|
|
11307
11292
|
}
|
|
11308
11293
|
if (part.providerExecuted === true && part.state !== "approval-responded" && (part.state === "output-available" || part.state === "output-error")) {
|
|
11309
|
-
const resultProviderMetadata = (
|
|
11294
|
+
const resultProviderMetadata = (_b24 = part.resultProviderMetadata) != null ? _b24 : part.callProviderMetadata;
|
|
11310
11295
|
content.push({
|
|
11311
11296
|
type: "tool-result",
|
|
11312
11297
|
toolCallId: part.toolCallId,
|
|
@@ -11970,8 +11955,7 @@ async function safeValidateUIMessages(options) {
|
|
|
11970
11955
|
}
|
|
11971
11956
|
async function validateUIMessages(options) {
|
|
11972
11957
|
const response = await safeValidateUIMessages(options);
|
|
11973
|
-
if (!response.success)
|
|
11974
|
-
throw response.error;
|
|
11958
|
+
if (!response.success) throw response.error;
|
|
11975
11959
|
return response.data;
|
|
11976
11960
|
}
|
|
11977
11961
|
async function validateUIMessagesForAgent(options) {
|
|
@@ -11981,8 +11965,7 @@ async function validateUIMessagesForAgent(options) {
|
|
|
11981
11965
|
// tool parts when those tools are no longer registered.
|
|
11982
11966
|
convertMissingTerminalToolsToDynamic: true
|
|
11983
11967
|
});
|
|
11984
|
-
if (!response.success)
|
|
11985
|
-
throw response.error;
|
|
11968
|
+
if (!response.success) throw response.error;
|
|
11986
11969
|
return response.data;
|
|
11987
11970
|
}
|
|
11988
11971
|
|
|
@@ -12191,8 +12174,8 @@ function getBatchResults({
|
|
|
12191
12174
|
abortSignal: operationAbortSignal
|
|
12192
12175
|
});
|
|
12193
12176
|
const transformer = {
|
|
12194
|
-
transform(item, controller) {
|
|
12195
|
-
controller.enqueue(convertBatchItemResult(item));
|
|
12177
|
+
async transform(item, controller) {
|
|
12178
|
+
controller.enqueue(await convertBatchItemResult(item));
|
|
12196
12179
|
},
|
|
12197
12180
|
cancel(reason) {
|
|
12198
12181
|
streamAbortController.abort(
|
|
@@ -12281,20 +12264,43 @@ function validateBatchReference({
|
|
|
12281
12264
|
});
|
|
12282
12265
|
}
|
|
12283
12266
|
}
|
|
12284
|
-
function convertBatchItemResult(item) {
|
|
12267
|
+
async function convertBatchItemResult(item) {
|
|
12285
12268
|
if (item.status !== "succeeded") {
|
|
12286
12269
|
return item;
|
|
12287
12270
|
}
|
|
12288
12271
|
return {
|
|
12289
12272
|
id: item.id,
|
|
12290
12273
|
status: "succeeded",
|
|
12291
|
-
...convertGenerateResult(item.result)
|
|
12274
|
+
...await convertGenerateResult(item.result)
|
|
12292
12275
|
};
|
|
12293
12276
|
}
|
|
12294
|
-
function convertGenerateResult(result) {
|
|
12277
|
+
async function convertGenerateResult(result) {
|
|
12295
12278
|
var _a24;
|
|
12279
|
+
const toolCalls = await Promise.all(
|
|
12280
|
+
result.content.filter(
|
|
12281
|
+
(part) => part.type === "tool-call"
|
|
12282
|
+
).map(
|
|
12283
|
+
(toolCall) => parseToolCall({
|
|
12284
|
+
toolCall,
|
|
12285
|
+
tools: void 0,
|
|
12286
|
+
repairToolCall: void 0,
|
|
12287
|
+
refineToolInput: void 0,
|
|
12288
|
+
instructions: void 0,
|
|
12289
|
+
messages: []
|
|
12290
|
+
})
|
|
12291
|
+
)
|
|
12292
|
+
);
|
|
12293
|
+
const content = convertLanguageModelContent({
|
|
12294
|
+
content: result.content,
|
|
12295
|
+
toolCalls,
|
|
12296
|
+
toolOutputs: [],
|
|
12297
|
+
toolApprovalRequests: [],
|
|
12298
|
+
toolApprovalResponses: [],
|
|
12299
|
+
tools: void 0
|
|
12300
|
+
});
|
|
12296
12301
|
return {
|
|
12297
|
-
|
|
12302
|
+
content,
|
|
12303
|
+
text: content.filter(
|
|
12298
12304
|
(part) => part.type === "text"
|
|
12299
12305
|
).map((part) => part.text).join(""),
|
|
12300
12306
|
finishReason: result.finishReason.unified,
|
|
@@ -12351,7 +12357,7 @@ async function embed({
|
|
|
12351
12357
|
const telemetryDispatcher = createTelemetryDispatcher({
|
|
12352
12358
|
telemetry
|
|
12353
12359
|
});
|
|
12354
|
-
const runInTracingChannelSpan = (_a24 = telemetryDispatcher.runInTracingChannelSpan) != null ? _a24 : async ({ execute }) => await execute();
|
|
12360
|
+
const runInTracingChannelSpan = (_a24 = telemetryDispatcher.runInTracingChannelSpan) != null ? _a24 : (async ({ execute }) => await execute());
|
|
12355
12361
|
const startEvent = {
|
|
12356
12362
|
callId,
|
|
12357
12363
|
operationId: "ai.embed",
|
|
@@ -12373,7 +12379,7 @@ async function embed({
|
|
|
12373
12379
|
});
|
|
12374
12380
|
try {
|
|
12375
12381
|
const { embedding, usage, warnings, response, providerMetadata } = await retry(async () => {
|
|
12376
|
-
var _a26,
|
|
12382
|
+
var _a26, _b24;
|
|
12377
12383
|
const embedCallId = generateCallId();
|
|
12378
12384
|
await notify({
|
|
12379
12385
|
event: {
|
|
@@ -12410,7 +12416,7 @@ async function embed({
|
|
|
12410
12416
|
return {
|
|
12411
12417
|
embedding: embedding2,
|
|
12412
12418
|
usage: usage2,
|
|
12413
|
-
warnings: (
|
|
12419
|
+
warnings: (_b24 = modelResponse.warnings) != null ? _b24 : [],
|
|
12414
12420
|
providerMetadata: modelResponse.providerMetadata,
|
|
12415
12421
|
response: modelResponse.response
|
|
12416
12422
|
};
|
|
@@ -12522,7 +12528,7 @@ async function embedMany({
|
|
|
12522
12528
|
const telemetryDispatcher = createTelemetryDispatcher({
|
|
12523
12529
|
telemetry
|
|
12524
12530
|
});
|
|
12525
|
-
const runInTracingChannelSpan = (_a24 = telemetryDispatcher.runInTracingChannelSpan) != null ? _a24 : async ({ execute }) => await execute();
|
|
12531
|
+
const runInTracingChannelSpan = (_a24 = telemetryDispatcher.runInTracingChannelSpan) != null ? _a24 : (async ({ execute }) => await execute());
|
|
12526
12532
|
const startEvent = {
|
|
12527
12533
|
callId,
|
|
12528
12534
|
operationId: "ai.embedMany",
|
|
@@ -12537,7 +12543,7 @@ async function embedMany({
|
|
|
12537
12543
|
type: "embedMany",
|
|
12538
12544
|
event: startEvent,
|
|
12539
12545
|
execute: async () => {
|
|
12540
|
-
var _a25,
|
|
12546
|
+
var _a25, _b24;
|
|
12541
12547
|
await notify({
|
|
12542
12548
|
event: startEvent,
|
|
12543
12549
|
callbacks: [resolvedOnStart, telemetryDispatcher.onStart]
|
|
@@ -12556,7 +12562,7 @@ async function embedMany({
|
|
|
12556
12562
|
const hasInputByteLimit = maxInputBytesPerCall != null && maxInputBytesPerCall !== Infinity;
|
|
12557
12563
|
if (!hasEmbeddingLimit && !hasInputByteLimit) {
|
|
12558
12564
|
const { embeddings: embeddings2, usage, warnings: warnings2, response, providerMetadata: providerMetadata2 } = await retry(async () => {
|
|
12559
|
-
var _a26,
|
|
12565
|
+
var _a26, _b25;
|
|
12560
12566
|
const embedCallId = generateCallId();
|
|
12561
12567
|
await notify({
|
|
12562
12568
|
event: {
|
|
@@ -12593,7 +12599,7 @@ async function embedMany({
|
|
|
12593
12599
|
return {
|
|
12594
12600
|
embeddings: embeddings3,
|
|
12595
12601
|
usage: usage2,
|
|
12596
|
-
warnings: (
|
|
12602
|
+
warnings: (_b25 = modelResponse.warnings) != null ? _b25 : [],
|
|
12597
12603
|
providerMetadata: modelResponse.providerMetadata,
|
|
12598
12604
|
response: modelResponse.response
|
|
12599
12605
|
};
|
|
@@ -12645,7 +12651,7 @@ async function embedMany({
|
|
|
12645
12651
|
const results = await Promise.all(
|
|
12646
12652
|
parallelChunk.map((chunk) => {
|
|
12647
12653
|
return retry(async () => {
|
|
12648
|
-
var _a26,
|
|
12654
|
+
var _a26, _b25;
|
|
12649
12655
|
const embedCallId = generateCallId();
|
|
12650
12656
|
await notify({
|
|
12651
12657
|
event: {
|
|
@@ -12682,7 +12688,7 @@ async function embedMany({
|
|
|
12682
12688
|
return {
|
|
12683
12689
|
embeddings: chunkEmbeddings,
|
|
12684
12690
|
usage,
|
|
12685
|
-
warnings: (
|
|
12691
|
+
warnings: (_b25 = modelResponse.warnings) != null ? _b25 : [],
|
|
12686
12692
|
providerMetadata: modelResponse.providerMetadata,
|
|
12687
12693
|
response: modelResponse.response
|
|
12688
12694
|
};
|
|
@@ -12739,7 +12745,7 @@ async function embedMany({
|
|
|
12739
12745
|
responses
|
|
12740
12746
|
});
|
|
12741
12747
|
} catch (error) {
|
|
12742
|
-
await ((
|
|
12748
|
+
await ((_b24 = telemetryDispatcher.onError) == null ? void 0 : _b24.call(telemetryDispatcher, { callId, error }));
|
|
12743
12749
|
throw error;
|
|
12744
12750
|
}
|
|
12745
12751
|
}
|
|
@@ -12788,6 +12794,9 @@ var DefaultEmbedManyResult = class {
|
|
|
12788
12794
|
};
|
|
12789
12795
|
|
|
12790
12796
|
// src/generate-image/generate-image.ts
|
|
12797
|
+
import {
|
|
12798
|
+
isJSONObject
|
|
12799
|
+
} from "@ai-sdk/provider";
|
|
12791
12800
|
import {
|
|
12792
12801
|
convertBase64ToUint8Array as convertBase64ToUint8Array4,
|
|
12793
12802
|
detectMediaType as detectMediaType2,
|
|
@@ -12830,6 +12839,15 @@ function convertDataContentToUint8Array(content) {
|
|
|
12830
12839
|
}
|
|
12831
12840
|
|
|
12832
12841
|
// src/generate-image/generate-image.ts
|
|
12842
|
+
var gatewayCostMetadataKeys = [
|
|
12843
|
+
"cost",
|
|
12844
|
+
"gatewayCost",
|
|
12845
|
+
"inferenceCost",
|
|
12846
|
+
"inputInferenceCost",
|
|
12847
|
+
"marketCost",
|
|
12848
|
+
"outputInferenceCost",
|
|
12849
|
+
"surchargeCost"
|
|
12850
|
+
];
|
|
12833
12851
|
async function generateImage({
|
|
12834
12852
|
model: modelArg,
|
|
12835
12853
|
prompt: promptArg,
|
|
@@ -12843,7 +12861,7 @@ async function generateImage({
|
|
|
12843
12861
|
abortSignal,
|
|
12844
12862
|
headers
|
|
12845
12863
|
}) {
|
|
12846
|
-
var _a24,
|
|
12864
|
+
var _a24, _b24;
|
|
12847
12865
|
const model = resolveImageModel(modelArg);
|
|
12848
12866
|
const headersWithUserAgent = withUserAgentSuffix7(
|
|
12849
12867
|
headers != null ? headers : {},
|
|
@@ -12882,6 +12900,7 @@ async function generateImage({
|
|
|
12882
12900
|
)
|
|
12883
12901
|
);
|
|
12884
12902
|
const images = [];
|
|
12903
|
+
const calls = [];
|
|
12885
12904
|
const warnings = [];
|
|
12886
12905
|
const responses = [];
|
|
12887
12906
|
const providerMetadata = {};
|
|
@@ -12891,45 +12910,68 @@ async function generateImage({
|
|
|
12891
12910
|
totalTokens: void 0
|
|
12892
12911
|
};
|
|
12893
12912
|
for (const result of results) {
|
|
12894
|
-
images.
|
|
12895
|
-
|
|
12896
|
-
|
|
12897
|
-
|
|
12898
|
-
|
|
12913
|
+
const callImages = result.images.map(
|
|
12914
|
+
(image, index) => {
|
|
12915
|
+
var _a25;
|
|
12916
|
+
return new DefaultGeneratedFile({
|
|
12917
|
+
data: image,
|
|
12918
|
+
mediaType: (_a25 = detectMediaType2({
|
|
12899
12919
|
data: image,
|
|
12900
|
-
|
|
12901
|
-
|
|
12902
|
-
|
|
12903
|
-
|
|
12904
|
-
|
|
12905
|
-
|
|
12906
|
-
|
|
12920
|
+
topLevelType: "image"
|
|
12921
|
+
})) != null ? _a25 : "image/png",
|
|
12922
|
+
providerMetadata: getImageProviderMetadata(
|
|
12923
|
+
result.providerMetadata,
|
|
12924
|
+
index
|
|
12925
|
+
)
|
|
12926
|
+
});
|
|
12927
|
+
}
|
|
12907
12928
|
);
|
|
12929
|
+
images.push(...callImages);
|
|
12930
|
+
calls.push({
|
|
12931
|
+
images: callImages,
|
|
12932
|
+
providerMetadata: result.providerMetadata,
|
|
12933
|
+
response: result.response,
|
|
12934
|
+
warnings: result.warnings,
|
|
12935
|
+
usage: result.usage
|
|
12936
|
+
});
|
|
12908
12937
|
warnings.push(...result.warnings);
|
|
12909
12938
|
if (result.usage != null) {
|
|
12910
12939
|
totalUsage = addImageModelUsage(totalUsage, result.usage);
|
|
12911
12940
|
}
|
|
12912
12941
|
if (result.providerMetadata) {
|
|
12913
|
-
for (const [providerName, metadata] of Object.entries(
|
|
12942
|
+
for (const [providerName, metadata] of Object.entries(
|
|
12943
|
+
result.providerMetadata
|
|
12944
|
+
)) {
|
|
12914
12945
|
if (providerName === "gateway") {
|
|
12915
12946
|
const currentEntry = providerMetadata[providerName];
|
|
12916
12947
|
if (currentEntry != null && typeof currentEntry === "object") {
|
|
12948
|
+
const currentGatewayMetadata = currentEntry;
|
|
12949
|
+
const newGatewayMetadata = metadata;
|
|
12917
12950
|
providerMetadata[providerName] = {
|
|
12918
12951
|
...currentEntry,
|
|
12919
|
-
...metadata
|
|
12952
|
+
...metadata,
|
|
12953
|
+
...Object.fromEntries(
|
|
12954
|
+
gatewayCostMetadataKeys.flatMap((key) => {
|
|
12955
|
+
const total = addDecimalStrings(
|
|
12956
|
+
currentGatewayMetadata[key],
|
|
12957
|
+
newGatewayMetadata[key]
|
|
12958
|
+
);
|
|
12959
|
+
return total == null ? [] : [[key, total]];
|
|
12960
|
+
})
|
|
12961
|
+
)
|
|
12920
12962
|
};
|
|
12921
12963
|
} else {
|
|
12922
|
-
providerMetadata[providerName] =
|
|
12964
|
+
providerMetadata[providerName] = {
|
|
12965
|
+
...metadata
|
|
12966
|
+
};
|
|
12923
12967
|
}
|
|
12924
12968
|
const imagesValue = providerMetadata[providerName].images;
|
|
12925
12969
|
if (Array.isArray(imagesValue) && imagesValue.length === 0) {
|
|
12926
12970
|
delete providerMetadata[providerName].images;
|
|
12927
12971
|
}
|
|
12928
12972
|
} else {
|
|
12929
|
-
(
|
|
12930
|
-
providerMetadata[providerName].images.push(
|
|
12931
|
-
...result.providerMetadata[providerName].images
|
|
12932
|
-
);
|
|
12973
|
+
(_b24 = providerMetadata[providerName]) != null ? _b24 : providerMetadata[providerName] = { images: [] };
|
|
12974
|
+
providerMetadata[providerName].images.push(...metadata.images);
|
|
12933
12975
|
}
|
|
12934
12976
|
}
|
|
12935
12977
|
}
|
|
@@ -12941,6 +12983,7 @@ async function generateImage({
|
|
|
12941
12983
|
}
|
|
12942
12984
|
return new DefaultGenerateImageResult({
|
|
12943
12985
|
images,
|
|
12986
|
+
calls,
|
|
12944
12987
|
warnings,
|
|
12945
12988
|
responses,
|
|
12946
12989
|
providerMetadata,
|
|
@@ -12950,6 +12993,7 @@ async function generateImage({
|
|
|
12950
12993
|
var DefaultGenerateImageResult = class {
|
|
12951
12994
|
constructor(options) {
|
|
12952
12995
|
this.images = options.images;
|
|
12996
|
+
this.calls = options.calls;
|
|
12953
12997
|
this.warnings = options.warnings;
|
|
12954
12998
|
this.responses = options.responses;
|
|
12955
12999
|
this.providerMetadata = options.providerMetadata;
|
|
@@ -12959,6 +13003,20 @@ var DefaultGenerateImageResult = class {
|
|
|
12959
13003
|
return this.images[0];
|
|
12960
13004
|
}
|
|
12961
13005
|
};
|
|
13006
|
+
function getImageProviderMetadata(providerMetadata, imageIndex) {
|
|
13007
|
+
var _a24;
|
|
13008
|
+
if (providerMetadata == null) {
|
|
13009
|
+
return void 0;
|
|
13010
|
+
}
|
|
13011
|
+
let imageMetadata;
|
|
13012
|
+
for (const [providerName, metadata] of Object.entries(providerMetadata)) {
|
|
13013
|
+
const value = (_a24 = metadata.images) == null ? void 0 : _a24[imageIndex];
|
|
13014
|
+
if (isJSONObject(value) && !Array.isArray(value)) {
|
|
13015
|
+
(imageMetadata != null ? imageMetadata : imageMetadata = {})[providerName] = value;
|
|
13016
|
+
}
|
|
13017
|
+
}
|
|
13018
|
+
return imageMetadata;
|
|
13019
|
+
}
|
|
12962
13020
|
async function invokeModelMaxImagesPerCall(model) {
|
|
12963
13021
|
const isFunction = model.maxImagesPerCall instanceof Function;
|
|
12964
13022
|
if (!isFunction) {
|
|
@@ -12968,6 +13026,19 @@ async function invokeModelMaxImagesPerCall(model) {
|
|
|
12968
13026
|
modelId: model.modelId
|
|
12969
13027
|
});
|
|
12970
13028
|
}
|
|
13029
|
+
function addDecimalStrings(value1, value2) {
|
|
13030
|
+
if (typeof value1 !== "string" || typeof value2 !== "string" || !/^\d+(?:\.\d+)?$/.test(value1) || !/^\d+(?:\.\d+)?$/.test(value2)) {
|
|
13031
|
+
return void 0;
|
|
13032
|
+
}
|
|
13033
|
+
const [integer1, fraction1 = ""] = value1.split(".");
|
|
13034
|
+
const [integer2, fraction2 = ""] = value2.split(".");
|
|
13035
|
+
const precision = Math.max(fraction1.length, fraction2.length);
|
|
13036
|
+
const sum = BigInt(integer1 + fraction1.padEnd(precision, "0")) + BigInt(integer2 + fraction2.padEnd(precision, "0"));
|
|
13037
|
+
const sumString = sum.toString().padStart(precision + 1, "0");
|
|
13038
|
+
return precision === 0 ? sumString : `${sumString.slice(0, -precision)}.${sumString.slice(
|
|
13039
|
+
-precision
|
|
13040
|
+
)}`.replace(/\.?0+$/, "");
|
|
13041
|
+
}
|
|
12971
13042
|
function normalizePrompt(prompt) {
|
|
12972
13043
|
if (typeof prompt === "string") {
|
|
12973
13044
|
return { prompt, files: void 0, mask: void 0 };
|
|
@@ -13038,7 +13109,7 @@ function extractTextContent(content) {
|
|
|
13038
13109
|
// src/generate-object/output-strategy.ts
|
|
13039
13110
|
import {
|
|
13040
13111
|
isJSONArray,
|
|
13041
|
-
isJSONObject,
|
|
13112
|
+
isJSONObject as isJSONObject2,
|
|
13042
13113
|
TypeValidationError as TypeValidationError4,
|
|
13043
13114
|
UnsupportedFunctionalityError as UnsupportedFunctionalityError4
|
|
13044
13115
|
} from "@ai-sdk/provider";
|
|
@@ -13124,7 +13195,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
13124
13195
|
isFinalDelta
|
|
13125
13196
|
}) {
|
|
13126
13197
|
var _a24;
|
|
13127
|
-
if (!
|
|
13198
|
+
if (!isJSONObject2(value) || !isJSONArray(value.elements)) {
|
|
13128
13199
|
return {
|
|
13129
13200
|
success: false,
|
|
13130
13201
|
error: new TypeValidationError4({
|
|
@@ -13167,7 +13238,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
13167
13238
|
};
|
|
13168
13239
|
},
|
|
13169
13240
|
async validateFinalResult(value) {
|
|
13170
|
-
if (!
|
|
13241
|
+
if (!isJSONObject2(value) || !isJSONArray(value.elements)) {
|
|
13171
13242
|
return {
|
|
13172
13243
|
success: false,
|
|
13173
13244
|
error: new TypeValidationError4({
|
|
@@ -13235,7 +13306,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
13235
13306
|
additionalProperties: false
|
|
13236
13307
|
}),
|
|
13237
13308
|
async validateFinalResult(value) {
|
|
13238
|
-
if (!
|
|
13309
|
+
if (!isJSONObject2(value) || typeof value.result !== "string") {
|
|
13239
13310
|
return {
|
|
13240
13311
|
success: false,
|
|
13241
13312
|
error: new TypeValidationError4({
|
|
@@ -13254,7 +13325,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
13254
13325
|
};
|
|
13255
13326
|
},
|
|
13256
13327
|
async validatePartialResult({ value, textDelta }) {
|
|
13257
|
-
if (!
|
|
13328
|
+
if (!isJSONObject2(value) || typeof value.result !== "string") {
|
|
13258
13329
|
return {
|
|
13259
13330
|
success: false,
|
|
13260
13331
|
error: new TypeValidationError4({
|
|
@@ -13490,7 +13561,7 @@ function validateObjectGenerationInput({
|
|
|
13490
13561
|
// src/generate-object/generate-object.ts
|
|
13491
13562
|
var originalGenerateId4 = createIdGenerator6({ prefix: "aiobj", size: 24 });
|
|
13492
13563
|
async function generateObject(options) {
|
|
13493
|
-
var _a24,
|
|
13564
|
+
var _a24, _b24, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
13494
13565
|
const {
|
|
13495
13566
|
model: modelArg,
|
|
13496
13567
|
output = "object",
|
|
@@ -13625,7 +13696,7 @@ async function generateObject(options) {
|
|
|
13625
13696
|
})
|
|
13626
13697
|
);
|
|
13627
13698
|
const responseData = {
|
|
13628
|
-
id: (
|
|
13699
|
+
id: (_b24 = (_a24 = generateResult.response) == null ? void 0 : _a24.id) != null ? _b24 : generateId4(),
|
|
13629
13700
|
timestamp: (_d = (_c = generateResult.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
|
13630
13701
|
modelId: (_f = (_e = generateResult.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
|
|
13631
13702
|
headers: (_g = generateResult.response) == null ? void 0 : _g.headers,
|
|
@@ -13786,35 +13857,27 @@ function getTextFromDataUrl(dataUrl) {
|
|
|
13786
13857
|
|
|
13787
13858
|
// src/util/is-deep-equal-data.ts
|
|
13788
13859
|
function isDeepEqualData(obj1, obj2) {
|
|
13789
|
-
if (obj1 === obj2)
|
|
13790
|
-
|
|
13791
|
-
if (obj1 == null || obj2 == null)
|
|
13792
|
-
return false;
|
|
13860
|
+
if (obj1 === obj2) return true;
|
|
13861
|
+
if (obj1 == null || obj2 == null) return false;
|
|
13793
13862
|
if (typeof obj1 !== "object" && typeof obj2 !== "object")
|
|
13794
13863
|
return obj1 === obj2;
|
|
13795
|
-
if (obj1.constructor !== obj2.constructor)
|
|
13796
|
-
return false;
|
|
13864
|
+
if (obj1.constructor !== obj2.constructor) return false;
|
|
13797
13865
|
if (obj1 instanceof Date && obj2 instanceof Date) {
|
|
13798
13866
|
return obj1.getTime() === obj2.getTime();
|
|
13799
13867
|
}
|
|
13800
13868
|
if (Array.isArray(obj1)) {
|
|
13801
|
-
if (obj1.length !== obj2.length)
|
|
13802
|
-
return false;
|
|
13869
|
+
if (obj1.length !== obj2.length) return false;
|
|
13803
13870
|
for (let i = 0; i < obj1.length; i++) {
|
|
13804
|
-
if (!isDeepEqualData(obj1[i], obj2[i]))
|
|
13805
|
-
return false;
|
|
13871
|
+
if (!isDeepEqualData(obj1[i], obj2[i])) return false;
|
|
13806
13872
|
}
|
|
13807
13873
|
return true;
|
|
13808
13874
|
}
|
|
13809
13875
|
const keys1 = Object.keys(obj1);
|
|
13810
13876
|
const keys2 = Object.keys(obj2);
|
|
13811
|
-
if (keys1.length !== keys2.length)
|
|
13812
|
-
return false;
|
|
13877
|
+
if (keys1.length !== keys2.length) return false;
|
|
13813
13878
|
for (const key of keys1) {
|
|
13814
|
-
if (!keys2.includes(key))
|
|
13815
|
-
|
|
13816
|
-
if (!isDeepEqualData(obj1[key], obj2[key]))
|
|
13817
|
-
return false;
|
|
13879
|
+
if (!keys2.includes(key)) return false;
|
|
13880
|
+
if (!isDeepEqualData(obj1[key], obj2[key])) return false;
|
|
13818
13881
|
}
|
|
13819
13882
|
return true;
|
|
13820
13883
|
}
|
|
@@ -14130,7 +14193,7 @@ var DefaultStreamObjectResult = class {
|
|
|
14130
14193
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
|
14131
14194
|
new TransformStream({
|
|
14132
14195
|
async transform(chunk, controller) {
|
|
14133
|
-
var _a24,
|
|
14196
|
+
var _a24, _b24, _c;
|
|
14134
14197
|
if (typeof chunk === "object" && chunk.type === "stream-start") {
|
|
14135
14198
|
warnings = chunk.warnings;
|
|
14136
14199
|
return;
|
|
@@ -14175,7 +14238,7 @@ var DefaultStreamObjectResult = class {
|
|
|
14175
14238
|
case "response-metadata": {
|
|
14176
14239
|
fullResponse = {
|
|
14177
14240
|
id: (_a24 = chunk.id) != null ? _a24 : fullResponse.id,
|
|
14178
|
-
timestamp: (
|
|
14241
|
+
timestamp: (_b24 = chunk.timestamp) != null ? _b24 : fullResponse.timestamp,
|
|
14179
14242
|
modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
|
|
14180
14243
|
};
|
|
14181
14244
|
break;
|
|
@@ -14649,8 +14712,7 @@ function smoothStream({
|
|
|
14649
14712
|
if (chunking != null && typeof chunking === "object" && "segment" in chunking && typeof chunking.segment === "function") {
|
|
14650
14713
|
const segmenter = chunking;
|
|
14651
14714
|
detectChunk = (buffer) => {
|
|
14652
|
-
if (buffer.length === 0)
|
|
14653
|
-
return null;
|
|
14715
|
+
if (buffer.length === 0) return null;
|
|
14654
14716
|
const iterator = segmenter.segment(buffer)[Symbol.iterator]();
|
|
14655
14717
|
const first = iterator.next().value;
|
|
14656
14718
|
return (first == null ? void 0 : first.segment) || null;
|
|
@@ -14680,11 +14742,21 @@ function smoothStream({
|
|
|
14680
14742
|
});
|
|
14681
14743
|
}
|
|
14682
14744
|
detectChunk = (buffer) => {
|
|
14683
|
-
const
|
|
14745
|
+
const lastIndex = chunkingRegex.lastIndex;
|
|
14746
|
+
chunkingRegex.lastIndex = 0;
|
|
14747
|
+
let match;
|
|
14748
|
+
try {
|
|
14749
|
+
match = chunkingRegex.exec(buffer);
|
|
14750
|
+
} finally {
|
|
14751
|
+
chunkingRegex.lastIndex = lastIndex;
|
|
14752
|
+
}
|
|
14684
14753
|
if (!match) {
|
|
14685
14754
|
return null;
|
|
14686
14755
|
}
|
|
14687
|
-
|
|
14756
|
+
if (!match[0].length) {
|
|
14757
|
+
throw new Error(`Chunking RegExp must not match an empty string.`);
|
|
14758
|
+
}
|
|
14759
|
+
return buffer.slice(0, match.index) + match[0];
|
|
14688
14760
|
};
|
|
14689
14761
|
}
|
|
14690
14762
|
return () => {
|
|
@@ -14961,7 +15033,7 @@ async function executeStartStatusFlow({
|
|
|
14961
15033
|
webhook: webhookFactory,
|
|
14962
15034
|
retry
|
|
14963
15035
|
}) {
|
|
14964
|
-
var _a24,
|
|
15036
|
+
var _a24, _b24, _c, _d;
|
|
14965
15037
|
const earlyWarnings = [];
|
|
14966
15038
|
let webhookUrl;
|
|
14967
15039
|
let webhookReceived;
|
|
@@ -14994,7 +15066,7 @@ async function executeStartStatusFlow({
|
|
|
14994
15066
|
const startResult = await retry(() => model.doStart(startCallOptions));
|
|
14995
15067
|
const allWarnings = [...earlyWarnings, ...startResult.warnings];
|
|
14996
15068
|
let operationProviderMetadata = startResult.providerMetadata == null ? void 0 : { ...startResult.providerMetadata };
|
|
14997
|
-
const intervalMs = (
|
|
15069
|
+
const intervalMs = (_b24 = pollConfig == null ? void 0 : pollConfig.intervalMs) != null ? _b24 : 5e3;
|
|
14998
15070
|
const timeoutMs = (_c = pollConfig == null ? void 0 : pollConfig.timeoutMs) != null ? _c : 6e5;
|
|
14999
15071
|
const delay = (_d = pollConfig == null ? void 0 : pollConfig.delay) != null ? _d : defaultDelay;
|
|
15000
15072
|
const startTime = Date.now();
|
|
@@ -15808,7 +15880,7 @@ var doWrap = ({
|
|
|
15808
15880
|
modelId,
|
|
15809
15881
|
providerId
|
|
15810
15882
|
}) => {
|
|
15811
|
-
var _a24,
|
|
15883
|
+
var _a24, _b24, _c;
|
|
15812
15884
|
async function doTransform({
|
|
15813
15885
|
params,
|
|
15814
15886
|
type
|
|
@@ -15818,7 +15890,7 @@ var doWrap = ({
|
|
|
15818
15890
|
return {
|
|
15819
15891
|
specificationVersion: "v4",
|
|
15820
15892
|
provider: (_a24 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a24 : model.provider,
|
|
15821
|
-
modelId: (
|
|
15893
|
+
modelId: (_b24 = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b24 : model.modelId,
|
|
15822
15894
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
15823
15895
|
async doGenerate(params) {
|
|
15824
15896
|
const transformedParams = await doTransform({ params, type: "generate" });
|
|
@@ -15874,7 +15946,7 @@ var doWrap2 = ({
|
|
|
15874
15946
|
modelId,
|
|
15875
15947
|
providerId
|
|
15876
15948
|
}) => {
|
|
15877
|
-
var _a24,
|
|
15949
|
+
var _a24, _b24, _c, _d;
|
|
15878
15950
|
async function doTransform({
|
|
15879
15951
|
params
|
|
15880
15952
|
}) {
|
|
@@ -15883,7 +15955,7 @@ var doWrap2 = ({
|
|
|
15883
15955
|
return {
|
|
15884
15956
|
specificationVersion: "v4",
|
|
15885
15957
|
provider: (_a24 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a24 : model.provider,
|
|
15886
|
-
modelId: (
|
|
15958
|
+
modelId: (_b24 = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b24 : model.modelId,
|
|
15887
15959
|
maxEmbeddingsPerCall: (_c = overrideMaxEmbeddingsPerCall == null ? void 0 : overrideMaxEmbeddingsPerCall({ model })) != null ? _c : model.maxEmbeddingsPerCall,
|
|
15888
15960
|
[EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL2]: getEmbeddingModelMaxInputBytesPerCall(model),
|
|
15889
15961
|
supportsParallelCalls: (_d = overrideSupportsParallelCalls == null ? void 0 : overrideSupportsParallelCalls({ model })) != null ? _d : model.supportsParallelCalls,
|
|
@@ -15924,7 +15996,7 @@ var doWrap3 = ({
|
|
|
15924
15996
|
modelId,
|
|
15925
15997
|
providerId
|
|
15926
15998
|
}) => {
|
|
15927
|
-
var _a24,
|
|
15999
|
+
var _a24, _b24, _c;
|
|
15928
16000
|
async function doTransform({ params }) {
|
|
15929
16001
|
return transformParams ? await transformParams({ params, model }) : params;
|
|
15930
16002
|
}
|
|
@@ -15932,7 +16004,7 @@ var doWrap3 = ({
|
|
|
15932
16004
|
const maxImagesPerCall = maxImagesPerCallRaw instanceof Function ? maxImagesPerCallRaw.bind(model) : maxImagesPerCallRaw;
|
|
15933
16005
|
return {
|
|
15934
16006
|
specificationVersion: "v4",
|
|
15935
|
-
provider: (
|
|
16007
|
+
provider: (_b24 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _b24 : model.provider,
|
|
15936
16008
|
modelId: (_c = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _c : model.modelId,
|
|
15937
16009
|
maxImagesPerCall,
|
|
15938
16010
|
async doGenerate(params) {
|
|
@@ -16117,9 +16189,9 @@ var BrowserRealtimeAudio = class {
|
|
|
16117
16189
|
this.onCapturingChange(true);
|
|
16118
16190
|
}
|
|
16119
16191
|
stopCapture() {
|
|
16120
|
-
var _a24,
|
|
16192
|
+
var _a24, _b24, _c, _d;
|
|
16121
16193
|
(_a24 = this.captureProcessor) == null ? void 0 : _a24.disconnect();
|
|
16122
|
-
(
|
|
16194
|
+
(_b24 = this.captureSource) == null ? void 0 : _b24.disconnect();
|
|
16123
16195
|
void ((_c = this.captureContext) == null ? void 0 : _c.close());
|
|
16124
16196
|
(_d = this.captureStream) == null ? void 0 : _d.getTracks().forEach((track) => track.stop());
|
|
16125
16197
|
this.captureProcessor = null;
|
|
@@ -16149,8 +16221,7 @@ var BrowserRealtimeAudio = class {
|
|
|
16149
16221
|
}
|
|
16150
16222
|
getPlaybackOffsetMs() {
|
|
16151
16223
|
const ctx = this.playbackContext;
|
|
16152
|
-
if (ctx == null)
|
|
16153
|
-
return 0;
|
|
16224
|
+
if (ctx == null) return 0;
|
|
16154
16225
|
return (ctx.currentTime - this.playbackStartTime) * 1e3;
|
|
16155
16226
|
}
|
|
16156
16227
|
dispose() {
|
|
@@ -16161,9 +16232,9 @@ var BrowserRealtimeAudio = class {
|
|
|
16161
16232
|
this.playbackContext = null;
|
|
16162
16233
|
}
|
|
16163
16234
|
setPlaying(isPlaying) {
|
|
16164
|
-
var _a24,
|
|
16235
|
+
var _a24, _b24;
|
|
16165
16236
|
if (isPlaying && !this.isPlaying) {
|
|
16166
|
-
this.playbackStartTime = (
|
|
16237
|
+
this.playbackStartTime = (_b24 = (_a24 = this.playbackContext) == null ? void 0 : _a24.currentTime) != null ? _b24 : 0;
|
|
16167
16238
|
}
|
|
16168
16239
|
if (this.isPlaying !== isPlaying) {
|
|
16169
16240
|
this.isPlaying = isPlaying;
|
|
@@ -16172,8 +16243,7 @@ var BrowserRealtimeAudio = class {
|
|
|
16172
16243
|
}
|
|
16173
16244
|
schedulePlayback() {
|
|
16174
16245
|
const ctx = this.playbackContext;
|
|
16175
|
-
if (ctx == null || this.playbackQueue.length === 0)
|
|
16176
|
-
return;
|
|
16246
|
+
if (ctx == null || this.playbackQueue.length === 0) return;
|
|
16177
16247
|
while (this.playbackQueue.length > 0) {
|
|
16178
16248
|
const samples = this.playbackQueue.shift();
|
|
16179
16249
|
const buffer = ctx.createBuffer(
|
|
@@ -16223,8 +16293,7 @@ var BrowserRealtimeTransport = class {
|
|
|
16223
16293
|
const ws = new WebSocket(wsConfig.url, wsConfig.protocols);
|
|
16224
16294
|
this.ws = ws;
|
|
16225
16295
|
ws.onopen = () => {
|
|
16226
|
-
if (this.ws !== ws)
|
|
16227
|
-
return;
|
|
16296
|
+
if (this.ws !== ws) return;
|
|
16228
16297
|
onOpen();
|
|
16229
16298
|
};
|
|
16230
16299
|
ws.onmessage = (messageEvent) => {
|
|
@@ -16280,8 +16349,7 @@ var BrowserRealtimeTransport = class {
|
|
|
16280
16349
|
text2 = new TextDecoder().decode(messageEvent.data);
|
|
16281
16350
|
}
|
|
16282
16351
|
const parseResult = await safeParseJSON5({ text: text2 });
|
|
16283
|
-
if (!parseResult.success)
|
|
16284
|
-
return;
|
|
16352
|
+
if (!parseResult.success) return;
|
|
16285
16353
|
const rawEvent = parseResult.value;
|
|
16286
16354
|
if (this.model.getHealthCheckResponse != null) {
|
|
16287
16355
|
const autoResponse = this.model.getHealthCheckResponse(rawEvent);
|
|
@@ -16554,8 +16622,7 @@ var RealtimeEventReducer = class {
|
|
|
16554
16622
|
return {
|
|
16555
16623
|
...stateWithMessage,
|
|
16556
16624
|
messages: stateWithMessage.messages.map((message) => {
|
|
16557
|
-
if (message.id !== messageId)
|
|
16558
|
-
return message;
|
|
16625
|
+
if (message.id !== messageId) return message;
|
|
16559
16626
|
const partIndex = message.parts.length;
|
|
16560
16627
|
this.itemIdToPartLocation.set(itemId, { messageId, partIndex });
|
|
16561
16628
|
return {
|
|
@@ -16573,8 +16640,7 @@ var RealtimeEventReducer = class {
|
|
|
16573
16640
|
const text2 = (_a24 = finalText != null ? finalText : this.textAccumulators.get(itemId)) != null ? _a24 : "";
|
|
16574
16641
|
this.textAccumulators.delete(itemId);
|
|
16575
16642
|
const location = this.itemIdToPartLocation.get(itemId);
|
|
16576
|
-
if (location == null)
|
|
16577
|
-
return state;
|
|
16643
|
+
if (location == null) return state;
|
|
16578
16644
|
this.itemIdToPartLocation.delete(itemId);
|
|
16579
16645
|
return this.updateMessagePart(
|
|
16580
16646
|
state,
|
|
@@ -16587,13 +16653,11 @@ var RealtimeEventReducer = class {
|
|
|
16587
16653
|
return {
|
|
16588
16654
|
...state,
|
|
16589
16655
|
messages: state.messages.map((message) => {
|
|
16590
|
-
if (message.id !== messageId)
|
|
16591
|
-
return message;
|
|
16656
|
+
if (message.id !== messageId) return message;
|
|
16592
16657
|
const existingPart = message.parts.find(
|
|
16593
16658
|
(part) => part.type === "dynamic-tool" && part.toolCallId === callId
|
|
16594
16659
|
);
|
|
16595
|
-
if (existingPart != null)
|
|
16596
|
-
return message;
|
|
16660
|
+
if (existingPart != null) return message;
|
|
16597
16661
|
return {
|
|
16598
16662
|
...message,
|
|
16599
16663
|
parts: [
|
|
@@ -16614,16 +16678,13 @@ var RealtimeEventReducer = class {
|
|
|
16614
16678
|
return {
|
|
16615
16679
|
...state,
|
|
16616
16680
|
messages: state.messages.map((message) => {
|
|
16617
|
-
if (message.id !== messageId)
|
|
16618
|
-
return message;
|
|
16681
|
+
if (message.id !== messageId) return message;
|
|
16619
16682
|
return {
|
|
16620
16683
|
...message,
|
|
16621
16684
|
parts: message.parts.map((part) => {
|
|
16622
|
-
if (part.type !== "dynamic-tool")
|
|
16623
|
-
return part;
|
|
16685
|
+
if (part.type !== "dynamic-tool") return part;
|
|
16624
16686
|
const toolPart = part;
|
|
16625
|
-
if (toolPart.toolCallId !== callId)
|
|
16626
|
-
return part;
|
|
16687
|
+
if (toolPart.toolCallId !== callId) return part;
|
|
16627
16688
|
return {
|
|
16628
16689
|
...toolPart,
|
|
16629
16690
|
toolName: name24,
|
|
@@ -16637,21 +16698,17 @@ var RealtimeEventReducer = class {
|
|
|
16637
16698
|
}
|
|
16638
16699
|
updateToolPartState(state, callId, result) {
|
|
16639
16700
|
const messageId = this.toolCallIdToMessageId.get(callId);
|
|
16640
|
-
if (messageId == null)
|
|
16641
|
-
return state;
|
|
16701
|
+
if (messageId == null) return state;
|
|
16642
16702
|
return {
|
|
16643
16703
|
...state,
|
|
16644
16704
|
messages: state.messages.map((message) => {
|
|
16645
|
-
if (message.id !== messageId)
|
|
16646
|
-
return message;
|
|
16705
|
+
if (message.id !== messageId) return message;
|
|
16647
16706
|
return {
|
|
16648
16707
|
...message,
|
|
16649
16708
|
parts: message.parts.map((part) => {
|
|
16650
|
-
if (part.type !== "dynamic-tool")
|
|
16651
|
-
return part;
|
|
16709
|
+
if (part.type !== "dynamic-tool") return part;
|
|
16652
16710
|
const toolPart = part;
|
|
16653
|
-
if (toolPart.toolCallId !== callId)
|
|
16654
|
-
return part;
|
|
16711
|
+
if (toolPart.toolCallId !== callId) return part;
|
|
16655
16712
|
return {
|
|
16656
16713
|
...toolPart,
|
|
16657
16714
|
state: "output-available",
|
|
@@ -16666,8 +16723,7 @@ var RealtimeEventReducer = class {
|
|
|
16666
16723
|
return {
|
|
16667
16724
|
...state,
|
|
16668
16725
|
messages: state.messages.map((message) => {
|
|
16669
|
-
if (message.id !== messageId)
|
|
16670
|
-
return message;
|
|
16726
|
+
if (message.id !== messageId) return message;
|
|
16671
16727
|
const parts = [...message.parts];
|
|
16672
16728
|
parts[partIndex] = part;
|
|
16673
16729
|
return { ...message, parts };
|
|
@@ -16688,7 +16744,7 @@ var AbstractRealtimeSession = class {
|
|
|
16688
16744
|
this.toolCallsInResponse = /* @__PURE__ */ new Set();
|
|
16689
16745
|
this.submittedToolOutputs = /* @__PURE__ */ new Set();
|
|
16690
16746
|
this.responseToolCallsClosed = false;
|
|
16691
|
-
var _a24,
|
|
16747
|
+
var _a24, _b24, _c, _d, _e, _f, _g, _h;
|
|
16692
16748
|
this.model = options.model;
|
|
16693
16749
|
this.api = options.api;
|
|
16694
16750
|
this.sessionConfig = options.sessionConfig;
|
|
@@ -16697,7 +16753,7 @@ var AbstractRealtimeSession = class {
|
|
|
16697
16753
|
this.onToolCall = options.onToolCall;
|
|
16698
16754
|
this.onEvent = options.onEvent;
|
|
16699
16755
|
this.onError = options.onError;
|
|
16700
|
-
const sampleRate = (
|
|
16756
|
+
const sampleRate = (_b24 = options.sampleRate) != null ? _b24 : 24e3;
|
|
16701
16757
|
const captureSampleRate = (_e = (_d = (_c = options.sessionConfig) == null ? void 0 : _c.inputAudioFormat) == null ? void 0 : _d.rate) != null ? _e : sampleRate;
|
|
16702
16758
|
const playbackSampleRate = (_h = (_g = (_f = options.sessionConfig) == null ? void 0 : _f.outputAudioFormat) == null ? void 0 : _g.rate) != null ? _h : sampleRate;
|
|
16703
16759
|
this.transport = new BrowserRealtimeTransport({
|
|
@@ -16823,13 +16879,10 @@ var AbstractRealtimeSession = class {
|
|
|
16823
16879
|
* without the full tool context on multi-tool turns.
|
|
16824
16880
|
*/
|
|
16825
16881
|
maybeRequestToolResponse() {
|
|
16826
|
-
if (!this.responseToolCallsClosed)
|
|
16827
|
-
|
|
16828
|
-
if (this.toolCallsInResponse.size === 0)
|
|
16829
|
-
return;
|
|
16882
|
+
if (!this.responseToolCallsClosed) return;
|
|
16883
|
+
if (this.toolCallsInResponse.size === 0) return;
|
|
16830
16884
|
for (const callId of this.toolCallsInResponse) {
|
|
16831
|
-
if (!this.submittedToolOutputs.has(callId))
|
|
16832
|
-
return;
|
|
16885
|
+
if (!this.submittedToolOutputs.has(callId)) return;
|
|
16833
16886
|
}
|
|
16834
16887
|
this.sendEvent({ type: "response-create" });
|
|
16835
16888
|
this.toolCallsInResponse.clear();
|
|
@@ -16886,7 +16939,7 @@ var AbstractRealtimeSession = class {
|
|
|
16886
16939
|
args,
|
|
16887
16940
|
callId
|
|
16888
16941
|
}) {
|
|
16889
|
-
var _a24,
|
|
16942
|
+
var _a24, _b24;
|
|
16890
16943
|
if (this.onToolCall == null) {
|
|
16891
16944
|
(_a24 = this.onError) == null ? void 0 : _a24.call(this, new Error(`No handler provided for tool "${name24}"`));
|
|
16892
16945
|
return;
|
|
@@ -16899,7 +16952,7 @@ var AbstractRealtimeSession = class {
|
|
|
16899
16952
|
this.addToolOutput(callId, result);
|
|
16900
16953
|
}
|
|
16901
16954
|
} catch (error) {
|
|
16902
|
-
(
|
|
16955
|
+
(_b24 = this.onError) == null ? void 0 : _b24.call(
|
|
16903
16956
|
this,
|
|
16904
16957
|
error instanceof Error ? error : new Error(`Client tool execution failed: ${String(error)}`)
|
|
16905
16958
|
);
|
|
@@ -17068,8 +17121,8 @@ import { AISDKError as AISDKError27, NoSuchModelError as NoSuchModelError3 } fro
|
|
|
17068
17121
|
var name23 = "AI_NoSuchProviderError";
|
|
17069
17122
|
var marker23 = `vercel.ai.error.${name23}`;
|
|
17070
17123
|
var symbol23 = Symbol.for(marker23);
|
|
17071
|
-
var _a23;
|
|
17072
|
-
var NoSuchProviderError = class extends NoSuchModelError3 {
|
|
17124
|
+
var _a23, _b23;
|
|
17125
|
+
var NoSuchProviderError = class extends (_b23 = NoSuchModelError3, _a23 = symbol23, _b23) {
|
|
17073
17126
|
constructor({
|
|
17074
17127
|
modelId,
|
|
17075
17128
|
modelType,
|
|
@@ -17086,7 +17139,6 @@ var NoSuchProviderError = class extends NoSuchModelError3 {
|
|
|
17086
17139
|
return AISDKError27.hasMarker(error, marker23);
|
|
17087
17140
|
}
|
|
17088
17141
|
};
|
|
17089
|
-
_a23 = symbol23;
|
|
17090
17142
|
|
|
17091
17143
|
// src/registry/provider-registry.ts
|
|
17092
17144
|
import {
|
|
@@ -17155,9 +17207,9 @@ var DefaultProviderRegistry = class {
|
|
|
17155
17207
|
return [id.slice(0, index), id.slice(index + this.separator.length)];
|
|
17156
17208
|
}
|
|
17157
17209
|
languageModel(id) {
|
|
17158
|
-
var _a24,
|
|
17210
|
+
var _a24, _b24;
|
|
17159
17211
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
|
17160
|
-
let model = (
|
|
17212
|
+
let model = (_b24 = (_a24 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b24.call(
|
|
17161
17213
|
_a24,
|
|
17162
17214
|
modelId
|
|
17163
17215
|
);
|
|
@@ -17301,7 +17353,7 @@ async function rerank({
|
|
|
17301
17353
|
const telemetryDispatcher = createTelemetryDispatcher({
|
|
17302
17354
|
telemetry
|
|
17303
17355
|
});
|
|
17304
|
-
const runInTracingChannelSpan = (_a24 = telemetryDispatcher.runInTracingChannelSpan) != null ? _a24 : async ({ execute }) => await execute();
|
|
17356
|
+
const runInTracingChannelSpan = (_a24 = telemetryDispatcher.runInTracingChannelSpan) != null ? _a24 : (async ({ execute }) => await execute());
|
|
17305
17357
|
if (documents.length === 0) {
|
|
17306
17358
|
await notify({
|
|
17307
17359
|
event: {
|
|
@@ -17367,7 +17419,7 @@ async function rerank({
|
|
|
17367
17419
|
type: "rerank",
|
|
17368
17420
|
event: startEvent,
|
|
17369
17421
|
execute: async () => {
|
|
17370
|
-
var _a25,
|
|
17422
|
+
var _a25, _b24, _c, _d, _e;
|
|
17371
17423
|
await notify({
|
|
17372
17424
|
event: startEvent,
|
|
17373
17425
|
callbacks: [resolvedOnStart, telemetryDispatcher.onStart]
|
|
@@ -17439,7 +17491,7 @@ async function rerank({
|
|
|
17439
17491
|
response: {
|
|
17440
17492
|
id: response == null ? void 0 : response.id,
|
|
17441
17493
|
timestamp: (_a25 = response == null ? void 0 : response.timestamp) != null ? _a25 : /* @__PURE__ */ new Date(),
|
|
17442
|
-
modelId: (
|
|
17494
|
+
modelId: (_b24 = response == null ? void 0 : response.modelId) != null ? _b24 : model.modelId,
|
|
17443
17495
|
headers: response == null ? void 0 : response.headers,
|
|
17444
17496
|
body: response == null ? void 0 : response.body
|
|
17445
17497
|
}
|
|
@@ -17625,7 +17677,7 @@ function streamTranscribe({
|
|
|
17625
17677
|
const pipeAbortController = new AbortController();
|
|
17626
17678
|
const transformer = {
|
|
17627
17679
|
transform(value, controller) {
|
|
17628
|
-
var _a25,
|
|
17680
|
+
var _a25, _b24, _c, _d;
|
|
17629
17681
|
switch (value.type) {
|
|
17630
17682
|
case "stream-start": {
|
|
17631
17683
|
resolveWarnings(value.warnings);
|
|
@@ -17634,7 +17686,7 @@ function streamTranscribe({
|
|
|
17634
17686
|
case "response-metadata": {
|
|
17635
17687
|
response = {
|
|
17636
17688
|
timestamp: (_a25 = value.timestamp) != null ? _a25 : currentResponseMetadata().timestamp,
|
|
17637
|
-
modelId: (
|
|
17689
|
+
modelId: (_b24 = value.modelId) != null ? _b24 : currentResponseMetadata().modelId,
|
|
17638
17690
|
headers: (_c = value.headers) != null ? _c : response == null ? void 0 : response.headers
|
|
17639
17691
|
};
|
|
17640
17692
|
break;
|
|
@@ -17681,7 +17733,7 @@ function streamTranscribe({
|
|
|
17681
17733
|
};
|
|
17682
17734
|
const transform = new TransformStream(transformer);
|
|
17683
17735
|
void (async () => {
|
|
17684
|
-
var _a25,
|
|
17736
|
+
var _a25, _b24, _c, _d, _e;
|
|
17685
17737
|
const result = await doStream({
|
|
17686
17738
|
audio,
|
|
17687
17739
|
inputAudioFormat,
|
|
@@ -17692,7 +17744,7 @@ function streamTranscribe({
|
|
|
17692
17744
|
includeRawChunks
|
|
17693
17745
|
});
|
|
17694
17746
|
response = {
|
|
17695
|
-
timestamp: (
|
|
17747
|
+
timestamp: (_b24 = (_a25 = result.response) == null ? void 0 : _a25.timestamp) != null ? _b24 : startedAt,
|
|
17696
17748
|
modelId: (_d = (_c = result.response) == null ? void 0 : _c.modelId) != null ? _d : resolvedModel.modelId,
|
|
17697
17749
|
headers: (_e = result.response) == null ? void 0 : _e.headers
|
|
17698
17750
|
};
|
|
@@ -17828,7 +17880,7 @@ function streamTranslate({
|
|
|
17828
17880
|
let hasAudioOutput = false;
|
|
17829
17881
|
const transformer = {
|
|
17830
17882
|
transform(value, controller) {
|
|
17831
|
-
var _a24,
|
|
17883
|
+
var _a24, _b24, _c, _d;
|
|
17832
17884
|
switch (value.type) {
|
|
17833
17885
|
case "stream-start": {
|
|
17834
17886
|
resolveWarnings(value.warnings);
|
|
@@ -17837,7 +17889,7 @@ function streamTranslate({
|
|
|
17837
17889
|
case "response-metadata": {
|
|
17838
17890
|
response = {
|
|
17839
17891
|
timestamp: (_a24 = value.timestamp) != null ? _a24 : currentResponseMetadata().timestamp,
|
|
17840
|
-
modelId: (
|
|
17892
|
+
modelId: (_b24 = value.modelId) != null ? _b24 : currentResponseMetadata().modelId,
|
|
17841
17893
|
headers: (_c = value.headers) != null ? _c : response == null ? void 0 : response.headers
|
|
17842
17894
|
};
|
|
17843
17895
|
break;
|
|
@@ -17895,7 +17947,7 @@ function streamTranslate({
|
|
|
17895
17947
|
};
|
|
17896
17948
|
const transform = new TransformStream(transformer);
|
|
17897
17949
|
void (async () => {
|
|
17898
|
-
var _a24,
|
|
17950
|
+
var _a24, _b24, _c, _d, _e;
|
|
17899
17951
|
const result = await doStream({
|
|
17900
17952
|
audio,
|
|
17901
17953
|
inputAudioFormat,
|
|
@@ -17909,7 +17961,7 @@ function streamTranslate({
|
|
|
17909
17961
|
includeRawChunks
|
|
17910
17962
|
});
|
|
17911
17963
|
response = {
|
|
17912
|
-
timestamp: (
|
|
17964
|
+
timestamp: (_b24 = (_a24 = result.response) == null ? void 0 : _a24.timestamp) != null ? _b24 : startedAt,
|
|
17913
17965
|
modelId: (_d = (_c = result.response) == null ? void 0 : _c.modelId) != null ? _d : resolvedModel.modelId,
|
|
17914
17966
|
headers: (_e = result.response) == null ? void 0 : _e.headers
|
|
17915
17967
|
};
|
|
@@ -18184,7 +18236,7 @@ var HttpChatTransport = class {
|
|
|
18184
18236
|
abortSignal,
|
|
18185
18237
|
...options
|
|
18186
18238
|
}) {
|
|
18187
|
-
var _a24,
|
|
18239
|
+
var _a24, _b24, _c, _d, _e;
|
|
18188
18240
|
const resolvedBody = await resolve2(this.body);
|
|
18189
18241
|
const resolvedHeaders = await resolve2(this.headers);
|
|
18190
18242
|
const resolvedCredentials = await resolve2(this.credentials);
|
|
@@ -18203,7 +18255,7 @@ var HttpChatTransport = class {
|
|
|
18203
18255
|
trigger: options.trigger,
|
|
18204
18256
|
messageId: options.messageId
|
|
18205
18257
|
}));
|
|
18206
|
-
const api = (
|
|
18258
|
+
const api = (_b24 = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b24 : this.api;
|
|
18207
18259
|
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? normalizeHeaders(preparedRequest.headers) : baseHeaders;
|
|
18208
18260
|
const body = (preparedRequest == null ? void 0 : preparedRequest.body) !== void 0 ? preparedRequest.body : {
|
|
18209
18261
|
...resolvedBody,
|
|
@@ -18236,7 +18288,7 @@ var HttpChatTransport = class {
|
|
|
18236
18288
|
return this.processResponseStream(response.body);
|
|
18237
18289
|
}
|
|
18238
18290
|
async reconnectToStream(options) {
|
|
18239
|
-
var _a24,
|
|
18291
|
+
var _a24, _b24, _c, _d, _e;
|
|
18240
18292
|
const resolvedBody = await resolve2(this.body);
|
|
18241
18293
|
const resolvedHeaders = await resolve2(this.headers);
|
|
18242
18294
|
const resolvedCredentials = await resolve2(this.credentials);
|
|
@@ -18252,7 +18304,7 @@ var HttpChatTransport = class {
|
|
|
18252
18304
|
credentials: resolvedCredentials,
|
|
18253
18305
|
requestMetadata: options.metadata
|
|
18254
18306
|
}));
|
|
18255
|
-
const api = (
|
|
18307
|
+
const api = (_b24 = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b24 : `${this.api}/${options.chatId}/stream`;
|
|
18256
18308
|
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? normalizeHeaders(preparedRequest.headers) : baseHeaders;
|
|
18257
18309
|
const credentials = (_c = preparedRequest == null ? void 0 : preparedRequest.credentials) != null ? _c : resolvedCredentials;
|
|
18258
18310
|
const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;
|
|
@@ -18325,7 +18377,7 @@ var AbstractChat = class {
|
|
|
18325
18377
|
* If a messageId is provided, the message will be replaced.
|
|
18326
18378
|
*/
|
|
18327
18379
|
this.sendMessage = async (message, options) => {
|
|
18328
|
-
var _a24,
|
|
18380
|
+
var _a24, _b24, _c, _d;
|
|
18329
18381
|
if (message == null) {
|
|
18330
18382
|
await this.makeRequest({
|
|
18331
18383
|
trigger: "submit-message",
|
|
@@ -18372,7 +18424,7 @@ var AbstractChat = class {
|
|
|
18372
18424
|
this.state.replaceMessage(messageIndex, {
|
|
18373
18425
|
...uiMessage,
|
|
18374
18426
|
id: message.messageId,
|
|
18375
|
-
role: (
|
|
18427
|
+
role: (_b24 = uiMessage.role) != null ? _b24 : "user",
|
|
18376
18428
|
metadata: message.metadata
|
|
18377
18429
|
});
|
|
18378
18430
|
} else {
|
|
@@ -18496,12 +18548,12 @@ var AbstractChat = class {
|
|
|
18496
18548
|
* Abort the current request immediately, keep the generated tokens if any.
|
|
18497
18549
|
*/
|
|
18498
18550
|
this.stop = async () => {
|
|
18499
|
-
var _a24,
|
|
18551
|
+
var _a24, _b24;
|
|
18500
18552
|
for (const controller of this.pendingMessagePreparations) {
|
|
18501
18553
|
controller.abort();
|
|
18502
18554
|
}
|
|
18503
18555
|
(_a24 = this.activeResumeRequest) == null ? void 0 : _a24.abortController.abort();
|
|
18504
|
-
(
|
|
18556
|
+
(_b24 = this.activeResponse) == null ? void 0 : _b24.abortController.abort();
|
|
18505
18557
|
};
|
|
18506
18558
|
this.id = id;
|
|
18507
18559
|
this.transport = transport;
|
|
@@ -18530,8 +18582,7 @@ var AbstractChat = class {
|
|
|
18530
18582
|
status,
|
|
18531
18583
|
error
|
|
18532
18584
|
}) {
|
|
18533
|
-
if (this.status === status)
|
|
18534
|
-
return;
|
|
18585
|
+
if (this.status === status) return;
|
|
18535
18586
|
this.state.status = status;
|
|
18536
18587
|
this.state.error = error;
|
|
18537
18588
|
}
|
|
@@ -18548,8 +18599,7 @@ var AbstractChat = class {
|
|
|
18548
18599
|
this.state.messages = messages;
|
|
18549
18600
|
}
|
|
18550
18601
|
async shouldSendAutomatically() {
|
|
18551
|
-
if (!this.sendAutomaticallyWhen)
|
|
18552
|
-
return false;
|
|
18602
|
+
if (!this.sendAutomaticallyWhen) return false;
|
|
18553
18603
|
const result = this.sendAutomaticallyWhen({
|
|
18554
18604
|
messages: this.state.messages
|
|
18555
18605
|
});
|
|
@@ -18565,7 +18615,7 @@ var AbstractChat = class {
|
|
|
18565
18615
|
body,
|
|
18566
18616
|
messageId
|
|
18567
18617
|
}) {
|
|
18568
|
-
var _a24,
|
|
18618
|
+
var _a24, _b24, _c;
|
|
18569
18619
|
const abortController = new AbortController();
|
|
18570
18620
|
const activeResumeRequest = trigger === "resume-stream" ? { abortController } : void 0;
|
|
18571
18621
|
if (activeResumeRequest) {
|
|
@@ -18733,7 +18783,7 @@ var AbstractChat = class {
|
|
|
18733
18783
|
} finally {
|
|
18734
18784
|
try {
|
|
18735
18785
|
if (activeResponse) {
|
|
18736
|
-
(
|
|
18786
|
+
(_b24 = this.onFinish) == null ? void 0 : _b24.call(this, {
|
|
18737
18787
|
message: activeResponse.state.message,
|
|
18738
18788
|
messages: this.state.messages,
|
|
18739
18789
|
isAbort,
|
|
@@ -18936,8 +18986,7 @@ function isLikelyText(data) {
|
|
|
18936
18986
|
data.substring(0, Math.min(data.length, BASE64_CHECK_LENGTH))
|
|
18937
18987
|
) : data;
|
|
18938
18988
|
const checkLength = Math.min(bytes.length, CHECK_LENGTH);
|
|
18939
|
-
if (checkLength === 0)
|
|
18940
|
-
return false;
|
|
18989
|
+
if (checkLength === 0) return false;
|
|
18941
18990
|
for (let i = 0; i < checkLength; i++) {
|
|
18942
18991
|
const byte = bytes[i];
|
|
18943
18992
|
if (byte === 0 || byte < 32 && byte !== 9 && byte !== 10 && byte !== 13) {
|