ai 5.0.279 → 5.0.281
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 +17 -0
- package/dist/index.d.mts +60 -20
- package/dist/index.d.ts +60 -20
- package/dist/index.js +456 -357
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +394 -294
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -4,8 +4,8 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
6
|
var __export = (target, all) => {
|
|
7
|
-
for (var
|
|
8
|
-
__defProp(target,
|
|
7
|
+
for (var name17 in all)
|
|
8
|
+
__defProp(target, name17, { get: all[name17], enumerable: true });
|
|
9
9
|
};
|
|
10
10
|
var __copyProps = (to, from, except, desc) => {
|
|
11
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -20,44 +20,45 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var src_exports = {};
|
|
22
22
|
__export(src_exports, {
|
|
23
|
-
AISDKError: () =>
|
|
24
|
-
APICallError: () =>
|
|
23
|
+
AISDKError: () => import_provider18.AISDKError,
|
|
24
|
+
APICallError: () => import_provider18.APICallError,
|
|
25
25
|
AbstractChat: () => AbstractChat,
|
|
26
26
|
DefaultChatTransport: () => DefaultChatTransport,
|
|
27
27
|
DownloadError: () => DownloadError,
|
|
28
|
-
EmptyResponseBodyError: () =>
|
|
28
|
+
EmptyResponseBodyError: () => import_provider18.EmptyResponseBodyError,
|
|
29
29
|
Experimental_Agent: () => Agent,
|
|
30
30
|
HttpChatTransport: () => HttpChatTransport,
|
|
31
31
|
InvalidArgumentError: () => InvalidArgumentError,
|
|
32
32
|
InvalidDataContentError: () => InvalidDataContentError,
|
|
33
33
|
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
|
34
|
-
InvalidPromptError: () =>
|
|
35
|
-
InvalidResponseDataError: () =>
|
|
34
|
+
InvalidPromptError: () => import_provider18.InvalidPromptError,
|
|
35
|
+
InvalidResponseDataError: () => import_provider18.InvalidResponseDataError,
|
|
36
36
|
InvalidStreamPartError: () => InvalidStreamPartError,
|
|
37
37
|
InvalidToolInputError: () => InvalidToolInputError,
|
|
38
|
-
JSONParseError: () =>
|
|
38
|
+
JSONParseError: () => import_provider18.JSONParseError,
|
|
39
39
|
JsonToSseTransformStream: () => JsonToSseTransformStream,
|
|
40
|
-
LoadAPIKeyError: () =>
|
|
41
|
-
LoadSettingError: () =>
|
|
40
|
+
LoadAPIKeyError: () => import_provider18.LoadAPIKeyError,
|
|
41
|
+
LoadSettingError: () => import_provider18.LoadSettingError,
|
|
42
42
|
MessageConversionError: () => MessageConversionError,
|
|
43
|
-
NoContentGeneratedError: () =>
|
|
43
|
+
NoContentGeneratedError: () => import_provider18.NoContentGeneratedError,
|
|
44
44
|
NoImageGeneratedError: () => NoImageGeneratedError,
|
|
45
45
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
|
46
46
|
NoOutputGeneratedError: () => NoOutputGeneratedError,
|
|
47
47
|
NoOutputSpecifiedError: () => NoOutputSpecifiedError,
|
|
48
48
|
NoSpeechGeneratedError: () => NoSpeechGeneratedError,
|
|
49
|
-
NoSuchModelError: () =>
|
|
49
|
+
NoSuchModelError: () => import_provider18.NoSuchModelError,
|
|
50
50
|
NoSuchProviderError: () => NoSuchProviderError,
|
|
51
51
|
NoSuchToolError: () => NoSuchToolError,
|
|
52
52
|
Output: () => output_exports,
|
|
53
53
|
RetryError: () => RetryError,
|
|
54
54
|
SerialJobExecutor: () => SerialJobExecutor,
|
|
55
55
|
TextStreamChatTransport: () => TextStreamChatTransport,
|
|
56
|
-
TooManyEmbeddingValuesForCallError: () =>
|
|
56
|
+
TooManyEmbeddingValuesForCallError: () => import_provider18.TooManyEmbeddingValuesForCallError,
|
|
57
57
|
ToolCallRepairError: () => ToolCallRepairError,
|
|
58
|
-
|
|
58
|
+
ToolChoiceViolationError: () => ToolChoiceViolationError,
|
|
59
|
+
TypeValidationError: () => import_provider18.TypeValidationError,
|
|
59
60
|
UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
|
|
60
|
-
UnsupportedFunctionalityError: () =>
|
|
61
|
+
UnsupportedFunctionalityError: () => import_provider18.UnsupportedFunctionalityError,
|
|
61
62
|
UnsupportedModelVersionError: () => UnsupportedModelVersionError,
|
|
62
63
|
asSchema: () => import_provider_utils35.asSchema,
|
|
63
64
|
assistantModelMessageSchema: () => assistantModelMessageSchema,
|
|
@@ -157,6 +158,35 @@ var NoOutputSpecifiedError = class extends import_provider.AISDKError {
|
|
|
157
158
|
};
|
|
158
159
|
_a = symbol;
|
|
159
160
|
|
|
161
|
+
// src/error/tool-choice-violation-error.ts
|
|
162
|
+
var import_provider2 = require("@ai-sdk/provider");
|
|
163
|
+
var name2 = "AI_ToolChoiceViolationError";
|
|
164
|
+
var marker2 = `vercel.ai.error.${name2}`;
|
|
165
|
+
var symbol2 = Symbol.for(marker2);
|
|
166
|
+
var _a2;
|
|
167
|
+
var ToolChoiceViolationError = class extends import_provider2.AISDKError {
|
|
168
|
+
constructor({
|
|
169
|
+
toolChoice,
|
|
170
|
+
finishReason,
|
|
171
|
+
provider,
|
|
172
|
+
modelId,
|
|
173
|
+
content,
|
|
174
|
+
message = "Model response contained a tool call even though tool choice was none."
|
|
175
|
+
}) {
|
|
176
|
+
super({ name: name2, message });
|
|
177
|
+
this[_a2] = true;
|
|
178
|
+
this.toolChoice = toolChoice;
|
|
179
|
+
this.finishReason = finishReason;
|
|
180
|
+
this.provider = provider;
|
|
181
|
+
this.modelId = modelId;
|
|
182
|
+
this.content = content;
|
|
183
|
+
}
|
|
184
|
+
static isInstance(error) {
|
|
185
|
+
return import_provider2.AISDKError.hasMarker(error, marker2);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
_a2 = symbol2;
|
|
189
|
+
|
|
160
190
|
// src/logger/log-warnings.ts
|
|
161
191
|
function formatWarning(warning) {
|
|
162
192
|
const prefix = "AI SDK Warning:";
|
|
@@ -227,108 +257,108 @@ var logWarnings = (warnings) => {
|
|
|
227
257
|
var import_gateway = require("@ai-sdk/gateway");
|
|
228
258
|
|
|
229
259
|
// src/error/index.ts
|
|
230
|
-
var
|
|
260
|
+
var import_provider18 = require("@ai-sdk/provider");
|
|
231
261
|
|
|
232
262
|
// src/error/invalid-argument-error.ts
|
|
233
|
-
var
|
|
234
|
-
var
|
|
235
|
-
var
|
|
236
|
-
var
|
|
237
|
-
var
|
|
238
|
-
var InvalidArgumentError = class extends
|
|
263
|
+
var import_provider3 = require("@ai-sdk/provider");
|
|
264
|
+
var name3 = "AI_InvalidArgumentError";
|
|
265
|
+
var marker3 = `vercel.ai.error.${name3}`;
|
|
266
|
+
var symbol3 = Symbol.for(marker3);
|
|
267
|
+
var _a3;
|
|
268
|
+
var InvalidArgumentError = class extends import_provider3.AISDKError {
|
|
239
269
|
constructor({
|
|
240
270
|
parameter,
|
|
241
271
|
value,
|
|
242
272
|
message
|
|
243
273
|
}) {
|
|
244
274
|
super({
|
|
245
|
-
name:
|
|
275
|
+
name: name3,
|
|
246
276
|
message: `Invalid argument for parameter ${parameter}: ${message}`
|
|
247
277
|
});
|
|
248
|
-
this[
|
|
278
|
+
this[_a3] = true;
|
|
249
279
|
this.parameter = parameter;
|
|
250
280
|
this.value = value;
|
|
251
281
|
}
|
|
252
282
|
static isInstance(error) {
|
|
253
|
-
return
|
|
283
|
+
return import_provider3.AISDKError.hasMarker(error, marker3);
|
|
254
284
|
}
|
|
255
285
|
};
|
|
256
|
-
|
|
286
|
+
_a3 = symbol3;
|
|
257
287
|
|
|
258
288
|
// src/error/invalid-stream-part-error.ts
|
|
259
|
-
var
|
|
260
|
-
var
|
|
261
|
-
var
|
|
262
|
-
var
|
|
263
|
-
var
|
|
264
|
-
var InvalidStreamPartError = class extends
|
|
289
|
+
var import_provider4 = require("@ai-sdk/provider");
|
|
290
|
+
var name4 = "AI_InvalidStreamPartError";
|
|
291
|
+
var marker4 = `vercel.ai.error.${name4}`;
|
|
292
|
+
var symbol4 = Symbol.for(marker4);
|
|
293
|
+
var _a4;
|
|
294
|
+
var InvalidStreamPartError = class extends import_provider4.AISDKError {
|
|
265
295
|
constructor({
|
|
266
296
|
chunk,
|
|
267
297
|
message
|
|
268
298
|
}) {
|
|
269
|
-
super({ name:
|
|
270
|
-
this[
|
|
299
|
+
super({ name: name4, message });
|
|
300
|
+
this[_a4] = true;
|
|
271
301
|
this.chunk = chunk;
|
|
272
302
|
}
|
|
273
303
|
static isInstance(error) {
|
|
274
|
-
return
|
|
304
|
+
return import_provider4.AISDKError.hasMarker(error, marker4);
|
|
275
305
|
}
|
|
276
306
|
};
|
|
277
|
-
|
|
307
|
+
_a4 = symbol4;
|
|
278
308
|
|
|
279
309
|
// src/error/invalid-tool-input-error.ts
|
|
280
|
-
var
|
|
281
|
-
var
|
|
282
|
-
var
|
|
283
|
-
var
|
|
284
|
-
var
|
|
285
|
-
var InvalidToolInputError = class extends
|
|
310
|
+
var import_provider5 = require("@ai-sdk/provider");
|
|
311
|
+
var name5 = "AI_InvalidToolInputError";
|
|
312
|
+
var marker5 = `vercel.ai.error.${name5}`;
|
|
313
|
+
var symbol5 = Symbol.for(marker5);
|
|
314
|
+
var _a5;
|
|
315
|
+
var InvalidToolInputError = class extends import_provider5.AISDKError {
|
|
286
316
|
constructor({
|
|
287
317
|
toolInput,
|
|
288
318
|
toolName,
|
|
289
319
|
cause,
|
|
290
|
-
message = `Invalid input for tool ${toolName}: ${(0,
|
|
320
|
+
message = `Invalid input for tool ${toolName}: ${(0, import_provider5.getErrorMessage)(cause)}`
|
|
291
321
|
}) {
|
|
292
|
-
super({ name:
|
|
293
|
-
this[
|
|
322
|
+
super({ name: name5, message, cause });
|
|
323
|
+
this[_a5] = true;
|
|
294
324
|
this.toolInput = toolInput;
|
|
295
325
|
this.toolName = toolName;
|
|
296
326
|
}
|
|
297
327
|
static isInstance(error) {
|
|
298
|
-
return
|
|
328
|
+
return import_provider5.AISDKError.hasMarker(error, marker5);
|
|
299
329
|
}
|
|
300
330
|
};
|
|
301
|
-
|
|
331
|
+
_a5 = symbol5;
|
|
302
332
|
|
|
303
333
|
// src/error/no-image-generated-error.ts
|
|
304
|
-
var
|
|
305
|
-
var
|
|
306
|
-
var
|
|
307
|
-
var
|
|
308
|
-
var
|
|
309
|
-
var NoImageGeneratedError = class extends
|
|
334
|
+
var import_provider6 = require("@ai-sdk/provider");
|
|
335
|
+
var name6 = "AI_NoImageGeneratedError";
|
|
336
|
+
var marker6 = `vercel.ai.error.${name6}`;
|
|
337
|
+
var symbol6 = Symbol.for(marker6);
|
|
338
|
+
var _a6;
|
|
339
|
+
var NoImageGeneratedError = class extends import_provider6.AISDKError {
|
|
310
340
|
constructor({
|
|
311
341
|
message = "No image generated.",
|
|
312
342
|
cause,
|
|
313
343
|
responses
|
|
314
344
|
}) {
|
|
315
|
-
super({ name:
|
|
316
|
-
this[
|
|
345
|
+
super({ name: name6, message, cause });
|
|
346
|
+
this[_a6] = true;
|
|
317
347
|
this.responses = responses;
|
|
318
348
|
}
|
|
319
349
|
static isInstance(error) {
|
|
320
|
-
return
|
|
350
|
+
return import_provider6.AISDKError.hasMarker(error, marker6);
|
|
321
351
|
}
|
|
322
352
|
};
|
|
323
|
-
|
|
353
|
+
_a6 = symbol6;
|
|
324
354
|
|
|
325
355
|
// src/error/no-object-generated-error.ts
|
|
326
|
-
var
|
|
327
|
-
var
|
|
328
|
-
var
|
|
329
|
-
var
|
|
330
|
-
var
|
|
331
|
-
var NoObjectGeneratedError = class extends
|
|
356
|
+
var import_provider7 = require("@ai-sdk/provider");
|
|
357
|
+
var name7 = "AI_NoObjectGeneratedError";
|
|
358
|
+
var marker7 = `vercel.ai.error.${name7}`;
|
|
359
|
+
var symbol7 = Symbol.for(marker7);
|
|
360
|
+
var _a7;
|
|
361
|
+
var NoObjectGeneratedError = class extends import_provider7.AISDKError {
|
|
332
362
|
constructor({
|
|
333
363
|
message = "No object generated.",
|
|
334
364
|
cause,
|
|
@@ -337,43 +367,43 @@ var NoObjectGeneratedError = class extends import_provider6.AISDKError {
|
|
|
337
367
|
usage,
|
|
338
368
|
finishReason
|
|
339
369
|
}) {
|
|
340
|
-
super({ name:
|
|
341
|
-
this[
|
|
370
|
+
super({ name: name7, message, cause });
|
|
371
|
+
this[_a7] = true;
|
|
342
372
|
this.text = text2;
|
|
343
373
|
this.response = response;
|
|
344
374
|
this.usage = usage;
|
|
345
375
|
this.finishReason = finishReason;
|
|
346
376
|
}
|
|
347
377
|
static isInstance(error) {
|
|
348
|
-
return
|
|
378
|
+
return import_provider7.AISDKError.hasMarker(error, marker7);
|
|
349
379
|
}
|
|
350
380
|
};
|
|
351
|
-
|
|
381
|
+
_a7 = symbol7;
|
|
352
382
|
|
|
353
383
|
// src/error/no-output-generated-error.ts
|
|
354
|
-
var
|
|
355
|
-
var
|
|
356
|
-
var
|
|
357
|
-
var
|
|
358
|
-
var
|
|
359
|
-
var NoOutputGeneratedError = class extends
|
|
384
|
+
var import_provider8 = require("@ai-sdk/provider");
|
|
385
|
+
var name8 = "AI_NoOutputGeneratedError";
|
|
386
|
+
var marker8 = `vercel.ai.error.${name8}`;
|
|
387
|
+
var symbol8 = Symbol.for(marker8);
|
|
388
|
+
var _a8;
|
|
389
|
+
var NoOutputGeneratedError = class extends import_provider8.AISDKError {
|
|
360
390
|
// used in isInstance
|
|
361
391
|
constructor({
|
|
362
392
|
message = "No output generated.",
|
|
363
393
|
cause
|
|
364
394
|
} = {}) {
|
|
365
|
-
super({ name:
|
|
366
|
-
this[
|
|
395
|
+
super({ name: name8, message, cause });
|
|
396
|
+
this[_a8] = true;
|
|
367
397
|
}
|
|
368
398
|
static isInstance(error) {
|
|
369
|
-
return
|
|
399
|
+
return import_provider8.AISDKError.hasMarker(error, marker8);
|
|
370
400
|
}
|
|
371
401
|
};
|
|
372
|
-
|
|
402
|
+
_a8 = symbol8;
|
|
373
403
|
|
|
374
404
|
// src/error/no-speech-generated-error.ts
|
|
375
|
-
var
|
|
376
|
-
var NoSpeechGeneratedError = class extends
|
|
405
|
+
var import_provider9 = require("@ai-sdk/provider");
|
|
406
|
+
var NoSpeechGeneratedError = class extends import_provider9.AISDKError {
|
|
377
407
|
constructor(options) {
|
|
378
408
|
super({
|
|
379
409
|
name: "AI_NoSpeechGeneratedError",
|
|
@@ -384,53 +414,53 @@ var NoSpeechGeneratedError = class extends import_provider8.AISDKError {
|
|
|
384
414
|
};
|
|
385
415
|
|
|
386
416
|
// src/error/no-such-tool-error.ts
|
|
387
|
-
var
|
|
388
|
-
var
|
|
389
|
-
var
|
|
390
|
-
var
|
|
391
|
-
var
|
|
392
|
-
var NoSuchToolError = class extends
|
|
417
|
+
var import_provider10 = require("@ai-sdk/provider");
|
|
418
|
+
var name9 = "AI_NoSuchToolError";
|
|
419
|
+
var marker9 = `vercel.ai.error.${name9}`;
|
|
420
|
+
var symbol9 = Symbol.for(marker9);
|
|
421
|
+
var _a9;
|
|
422
|
+
var NoSuchToolError = class extends import_provider10.AISDKError {
|
|
393
423
|
constructor({
|
|
394
424
|
toolName,
|
|
395
425
|
availableTools = void 0,
|
|
396
426
|
message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
|
|
397
427
|
}) {
|
|
398
|
-
super({ name:
|
|
399
|
-
this[
|
|
428
|
+
super({ name: name9, message });
|
|
429
|
+
this[_a9] = true;
|
|
400
430
|
this.toolName = toolName;
|
|
401
431
|
this.availableTools = availableTools;
|
|
402
432
|
}
|
|
403
433
|
static isInstance(error) {
|
|
404
|
-
return
|
|
434
|
+
return import_provider10.AISDKError.hasMarker(error, marker9);
|
|
405
435
|
}
|
|
406
436
|
};
|
|
407
|
-
|
|
437
|
+
_a9 = symbol9;
|
|
408
438
|
|
|
409
439
|
// src/error/tool-call-repair-error.ts
|
|
410
|
-
var
|
|
411
|
-
var
|
|
412
|
-
var
|
|
413
|
-
var
|
|
414
|
-
var
|
|
415
|
-
var ToolCallRepairError = class extends
|
|
440
|
+
var import_provider11 = require("@ai-sdk/provider");
|
|
441
|
+
var name10 = "AI_ToolCallRepairError";
|
|
442
|
+
var marker10 = `vercel.ai.error.${name10}`;
|
|
443
|
+
var symbol10 = Symbol.for(marker10);
|
|
444
|
+
var _a10;
|
|
445
|
+
var ToolCallRepairError = class extends import_provider11.AISDKError {
|
|
416
446
|
constructor({
|
|
417
447
|
cause,
|
|
418
448
|
originalError,
|
|
419
|
-
message = `Error repairing tool call: ${(0,
|
|
449
|
+
message = `Error repairing tool call: ${(0, import_provider11.getErrorMessage)(cause)}`
|
|
420
450
|
}) {
|
|
421
|
-
super({ name:
|
|
422
|
-
this[
|
|
451
|
+
super({ name: name10, message, cause });
|
|
452
|
+
this[_a10] = true;
|
|
423
453
|
this.originalError = originalError;
|
|
424
454
|
}
|
|
425
455
|
static isInstance(error) {
|
|
426
|
-
return
|
|
456
|
+
return import_provider11.AISDKError.hasMarker(error, marker10);
|
|
427
457
|
}
|
|
428
458
|
};
|
|
429
|
-
|
|
459
|
+
_a10 = symbol10;
|
|
430
460
|
|
|
431
461
|
// src/error/unsupported-model-version-error.ts
|
|
432
|
-
var
|
|
433
|
-
var UnsupportedModelVersionError = class extends
|
|
462
|
+
var import_provider12 = require("@ai-sdk/provider");
|
|
463
|
+
var UnsupportedModelVersionError = class extends import_provider12.AISDKError {
|
|
434
464
|
constructor(options) {
|
|
435
465
|
super({
|
|
436
466
|
name: "AI_UnsupportedModelVersionError",
|
|
@@ -443,76 +473,76 @@ var UnsupportedModelVersionError = class extends import_provider11.AISDKError {
|
|
|
443
473
|
};
|
|
444
474
|
|
|
445
475
|
// src/prompt/invalid-data-content-error.ts
|
|
446
|
-
var
|
|
447
|
-
var
|
|
448
|
-
var
|
|
449
|
-
var
|
|
450
|
-
var
|
|
451
|
-
var InvalidDataContentError = class extends
|
|
476
|
+
var import_provider13 = require("@ai-sdk/provider");
|
|
477
|
+
var name11 = "AI_InvalidDataContentError";
|
|
478
|
+
var marker11 = `vercel.ai.error.${name11}`;
|
|
479
|
+
var symbol11 = Symbol.for(marker11);
|
|
480
|
+
var _a11;
|
|
481
|
+
var InvalidDataContentError = class extends import_provider13.AISDKError {
|
|
452
482
|
constructor({
|
|
453
483
|
content,
|
|
454
484
|
cause,
|
|
455
485
|
message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
|
|
456
486
|
}) {
|
|
457
|
-
super({ name:
|
|
458
|
-
this[
|
|
487
|
+
super({ name: name11, message, cause });
|
|
488
|
+
this[_a11] = true;
|
|
459
489
|
this.content = content;
|
|
460
490
|
}
|
|
461
491
|
static isInstance(error) {
|
|
462
|
-
return
|
|
492
|
+
return import_provider13.AISDKError.hasMarker(error, marker11);
|
|
463
493
|
}
|
|
464
494
|
};
|
|
465
|
-
|
|
495
|
+
_a11 = symbol11;
|
|
466
496
|
|
|
467
497
|
// src/prompt/invalid-message-role-error.ts
|
|
468
|
-
var
|
|
469
|
-
var
|
|
470
|
-
var
|
|
471
|
-
var
|
|
472
|
-
var
|
|
473
|
-
var InvalidMessageRoleError = class extends
|
|
498
|
+
var import_provider14 = require("@ai-sdk/provider");
|
|
499
|
+
var name12 = "AI_InvalidMessageRoleError";
|
|
500
|
+
var marker12 = `vercel.ai.error.${name12}`;
|
|
501
|
+
var symbol12 = Symbol.for(marker12);
|
|
502
|
+
var _a12;
|
|
503
|
+
var InvalidMessageRoleError = class extends import_provider14.AISDKError {
|
|
474
504
|
constructor({
|
|
475
505
|
role,
|
|
476
506
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
477
507
|
}) {
|
|
478
|
-
super({ name:
|
|
479
|
-
this[
|
|
508
|
+
super({ name: name12, message });
|
|
509
|
+
this[_a12] = true;
|
|
480
510
|
this.role = role;
|
|
481
511
|
}
|
|
482
512
|
static isInstance(error) {
|
|
483
|
-
return
|
|
513
|
+
return import_provider14.AISDKError.hasMarker(error, marker12);
|
|
484
514
|
}
|
|
485
515
|
};
|
|
486
|
-
|
|
516
|
+
_a12 = symbol12;
|
|
487
517
|
|
|
488
518
|
// src/prompt/message-conversion-error.ts
|
|
489
|
-
var
|
|
490
|
-
var
|
|
491
|
-
var
|
|
492
|
-
var
|
|
493
|
-
var
|
|
494
|
-
var MessageConversionError = class extends
|
|
519
|
+
var import_provider15 = require("@ai-sdk/provider");
|
|
520
|
+
var name13 = "AI_MessageConversionError";
|
|
521
|
+
var marker13 = `vercel.ai.error.${name13}`;
|
|
522
|
+
var symbol13 = Symbol.for(marker13);
|
|
523
|
+
var _a13;
|
|
524
|
+
var MessageConversionError = class extends import_provider15.AISDKError {
|
|
495
525
|
constructor({
|
|
496
526
|
originalMessage,
|
|
497
527
|
message
|
|
498
528
|
}) {
|
|
499
|
-
super({ name:
|
|
500
|
-
this[
|
|
529
|
+
super({ name: name13, message });
|
|
530
|
+
this[_a13] = true;
|
|
501
531
|
this.originalMessage = originalMessage;
|
|
502
532
|
}
|
|
503
533
|
static isInstance(error) {
|
|
504
|
-
return
|
|
534
|
+
return import_provider15.AISDKError.hasMarker(error, marker13);
|
|
505
535
|
}
|
|
506
536
|
};
|
|
507
|
-
|
|
537
|
+
_a13 = symbol13;
|
|
508
538
|
|
|
509
539
|
// src/util/download/download-error.ts
|
|
510
|
-
var
|
|
511
|
-
var
|
|
512
|
-
var
|
|
513
|
-
var
|
|
514
|
-
var
|
|
515
|
-
var DownloadError = class extends
|
|
540
|
+
var import_provider16 = require("@ai-sdk/provider");
|
|
541
|
+
var name14 = "AI_DownloadError";
|
|
542
|
+
var marker14 = `vercel.ai.error.${name14}`;
|
|
543
|
+
var symbol14 = Symbol.for(marker14);
|
|
544
|
+
var _a14;
|
|
545
|
+
var DownloadError = class extends import_provider16.AISDKError {
|
|
516
546
|
constructor({
|
|
517
547
|
url,
|
|
518
548
|
statusCode,
|
|
@@ -520,41 +550,41 @@ var DownloadError = class extends import_provider15.AISDKError {
|
|
|
520
550
|
cause,
|
|
521
551
|
message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`
|
|
522
552
|
}) {
|
|
523
|
-
super({ name:
|
|
524
|
-
this[
|
|
553
|
+
super({ name: name14, message, cause });
|
|
554
|
+
this[_a14] = true;
|
|
525
555
|
this.url = url;
|
|
526
556
|
this.statusCode = statusCode;
|
|
527
557
|
this.statusText = statusText;
|
|
528
558
|
}
|
|
529
559
|
static isInstance(error) {
|
|
530
|
-
return
|
|
560
|
+
return import_provider16.AISDKError.hasMarker(error, marker14);
|
|
531
561
|
}
|
|
532
562
|
};
|
|
533
|
-
|
|
563
|
+
_a14 = symbol14;
|
|
534
564
|
|
|
535
565
|
// src/util/retry-error.ts
|
|
536
|
-
var
|
|
537
|
-
var
|
|
538
|
-
var
|
|
539
|
-
var
|
|
540
|
-
var
|
|
541
|
-
var RetryError = class extends
|
|
566
|
+
var import_provider17 = require("@ai-sdk/provider");
|
|
567
|
+
var name15 = "AI_RetryError";
|
|
568
|
+
var marker15 = `vercel.ai.error.${name15}`;
|
|
569
|
+
var symbol15 = Symbol.for(marker15);
|
|
570
|
+
var _a15;
|
|
571
|
+
var RetryError = class extends import_provider17.AISDKError {
|
|
542
572
|
constructor({
|
|
543
573
|
message,
|
|
544
574
|
reason,
|
|
545
575
|
errors
|
|
546
576
|
}) {
|
|
547
|
-
super({ name:
|
|
548
|
-
this[
|
|
577
|
+
super({ name: name15, message });
|
|
578
|
+
this[_a15] = true;
|
|
549
579
|
this.reason = reason;
|
|
550
580
|
this.errors = errors;
|
|
551
581
|
this.lastError = errors[errors.length - 1];
|
|
552
582
|
}
|
|
553
583
|
static isInstance(error) {
|
|
554
|
-
return
|
|
584
|
+
return import_provider17.AISDKError.hasMarker(error, marker15);
|
|
555
585
|
}
|
|
556
586
|
};
|
|
557
|
-
|
|
587
|
+
_a15 = symbol15;
|
|
558
588
|
|
|
559
589
|
// src/model/resolve-model.ts
|
|
560
590
|
function resolveLanguageModel(model) {
|
|
@@ -599,8 +629,8 @@ function resolveImageModel(model) {
|
|
|
599
629
|
return getGlobalProvider().imageModel(model);
|
|
600
630
|
}
|
|
601
631
|
function getGlobalProvider() {
|
|
602
|
-
var
|
|
603
|
-
return (
|
|
632
|
+
var _a17;
|
|
633
|
+
return (_a17 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a17 : import_gateway.gateway;
|
|
604
634
|
}
|
|
605
635
|
|
|
606
636
|
// src/prompt/convert-to-language-model-prompt.ts
|
|
@@ -817,7 +847,7 @@ function detectMediaType({
|
|
|
817
847
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
818
848
|
|
|
819
849
|
// src/version.ts
|
|
820
|
-
var VERSION = true ? "5.0.
|
|
850
|
+
var VERSION = true ? "5.0.281" : "0.0.0-test";
|
|
821
851
|
|
|
822
852
|
// src/util/download/download.ts
|
|
823
853
|
var download = async ({
|
|
@@ -825,7 +855,7 @@ var download = async ({
|
|
|
825
855
|
maxBytes,
|
|
826
856
|
abortSignal
|
|
827
857
|
}) => {
|
|
828
|
-
var
|
|
858
|
+
var _a17;
|
|
829
859
|
const urlText = url.toString();
|
|
830
860
|
try {
|
|
831
861
|
const headers = (0, import_provider_utils2.withUserAgentSuffix)(
|
|
@@ -853,7 +883,7 @@ var download = async ({
|
|
|
853
883
|
});
|
|
854
884
|
return {
|
|
855
885
|
data,
|
|
856
|
-
mediaType: (
|
|
886
|
+
mediaType: (_a17 = response.headers.get("content-type")) != null ? _a17 : void 0
|
|
857
887
|
};
|
|
858
888
|
} catch (error) {
|
|
859
889
|
if (import_provider_utils2.DownloadError.isInstance(error)) {
|
|
@@ -871,7 +901,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
|
|
|
871
901
|
);
|
|
872
902
|
|
|
873
903
|
// src/prompt/data-content.ts
|
|
874
|
-
var
|
|
904
|
+
var import_provider19 = require("@ai-sdk/provider");
|
|
875
905
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
876
906
|
var import_v4 = require("zod/v4");
|
|
877
907
|
|
|
@@ -899,8 +929,8 @@ var dataContentSchema = import_v4.z.union([
|
|
|
899
929
|
import_v4.z.custom(
|
|
900
930
|
// Buffer might not be available in some environments such as CloudFlare:
|
|
901
931
|
(value) => {
|
|
902
|
-
var
|
|
903
|
-
return (_b = (
|
|
932
|
+
var _a17, _b;
|
|
933
|
+
return (_b = (_a17 = globalThis.Buffer) == null ? void 0 : _a17.isBuffer(value)) != null ? _b : false;
|
|
904
934
|
},
|
|
905
935
|
{ message: "Must be a Buffer" }
|
|
906
936
|
)
|
|
@@ -923,7 +953,7 @@ function convertToLanguageModelV2DataContent(content) {
|
|
|
923
953
|
content.toString()
|
|
924
954
|
);
|
|
925
955
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
926
|
-
throw new
|
|
956
|
+
throw new import_provider19.AISDKError({
|
|
927
957
|
name: "InvalidDataContentError",
|
|
928
958
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
929
959
|
});
|
|
@@ -1100,8 +1130,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1100
1130
|
).flat().filter(
|
|
1101
1131
|
(part) => part.type === "image" || part.type === "file"
|
|
1102
1132
|
).map((part) => {
|
|
1103
|
-
var
|
|
1104
|
-
const mediaType = (
|
|
1133
|
+
var _a17;
|
|
1134
|
+
const mediaType = (_a17 = part.mediaType) != null ? _a17 : part.type === "image" ? "image/*" : void 0;
|
|
1105
1135
|
let data = part.type === "image" ? part.image : part.data;
|
|
1106
1136
|
if (typeof data === "string") {
|
|
1107
1137
|
try {
|
|
@@ -1134,7 +1164,7 @@ function getOriginalUrl(originalData, convertedData) {
|
|
|
1134
1164
|
return typeof originalData === "string" && convertedData instanceof URL && convertedData.toString() !== originalData ? originalData : void 0;
|
|
1135
1165
|
}
|
|
1136
1166
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
1137
|
-
var
|
|
1167
|
+
var _a17;
|
|
1138
1168
|
if (part.type === "text") {
|
|
1139
1169
|
return {
|
|
1140
1170
|
type: "text",
|
|
@@ -1169,7 +1199,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1169
1199
|
switch (type) {
|
|
1170
1200
|
case "image": {
|
|
1171
1201
|
if (data instanceof Uint8Array || typeof data === "string") {
|
|
1172
|
-
mediaType = (
|
|
1202
|
+
mediaType = (_a17 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a17 : mediaType;
|
|
1173
1203
|
}
|
|
1174
1204
|
return {
|
|
1175
1205
|
type: "file",
|
|
@@ -1311,10 +1341,10 @@ function prepareToolsAndToolChoice({
|
|
|
1311
1341
|
};
|
|
1312
1342
|
}
|
|
1313
1343
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
|
1314
|
-
([
|
|
1344
|
+
([name17]) => activeTools.includes(name17)
|
|
1315
1345
|
) : Object.entries(tools);
|
|
1316
1346
|
return {
|
|
1317
|
-
tools: filteredTools.map(([
|
|
1347
|
+
tools: filteredTools.map(([name17, tool2]) => {
|
|
1318
1348
|
const toolType = tool2.type;
|
|
1319
1349
|
switch (toolType) {
|
|
1320
1350
|
case void 0:
|
|
@@ -1322,7 +1352,7 @@ function prepareToolsAndToolChoice({
|
|
|
1322
1352
|
case "function":
|
|
1323
1353
|
return {
|
|
1324
1354
|
type: "function",
|
|
1325
|
-
name:
|
|
1355
|
+
name: name17,
|
|
1326
1356
|
description: tool2.description,
|
|
1327
1357
|
inputSchema: (0, import_provider_utils5.asSchema)(tool2.inputSchema).jsonSchema,
|
|
1328
1358
|
providerOptions: tool2.providerOptions
|
|
@@ -1330,7 +1360,7 @@ function prepareToolsAndToolChoice({
|
|
|
1330
1360
|
case "provider-defined":
|
|
1331
1361
|
return {
|
|
1332
1362
|
type: "provider-defined",
|
|
1333
|
-
name:
|
|
1363
|
+
name: name17,
|
|
1334
1364
|
id: tool2.id,
|
|
1335
1365
|
args: tool2.args
|
|
1336
1366
|
};
|
|
@@ -1345,7 +1375,7 @@ function prepareToolsAndToolChoice({
|
|
|
1345
1375
|
}
|
|
1346
1376
|
|
|
1347
1377
|
// src/prompt/standardize-prompt.ts
|
|
1348
|
-
var
|
|
1378
|
+
var import_provider20 = require("@ai-sdk/provider");
|
|
1349
1379
|
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
1350
1380
|
var import_v46 = require("zod/v4");
|
|
1351
1381
|
|
|
@@ -1506,19 +1536,19 @@ async function standardizePrompt({
|
|
|
1506
1536
|
messages
|
|
1507
1537
|
}) {
|
|
1508
1538
|
if (prompt == null && messages == null) {
|
|
1509
|
-
throw new
|
|
1539
|
+
throw new import_provider20.InvalidPromptError({
|
|
1510
1540
|
prompt,
|
|
1511
1541
|
message: "prompt or messages must be defined"
|
|
1512
1542
|
});
|
|
1513
1543
|
}
|
|
1514
1544
|
if (prompt != null && messages != null) {
|
|
1515
|
-
throw new
|
|
1545
|
+
throw new import_provider20.InvalidPromptError({
|
|
1516
1546
|
prompt,
|
|
1517
1547
|
message: "prompt and messages cannot be defined at the same time"
|
|
1518
1548
|
});
|
|
1519
1549
|
}
|
|
1520
1550
|
if (system != null && typeof system !== "string") {
|
|
1521
|
-
throw new
|
|
1551
|
+
throw new import_provider20.InvalidPromptError({
|
|
1522
1552
|
prompt,
|
|
1523
1553
|
message: "system must be a string"
|
|
1524
1554
|
});
|
|
@@ -1528,20 +1558,20 @@ async function standardizePrompt({
|
|
|
1528
1558
|
} else if (prompt != null && Array.isArray(prompt)) {
|
|
1529
1559
|
messages = prompt;
|
|
1530
1560
|
} else if (messages == null) {
|
|
1531
|
-
throw new
|
|
1561
|
+
throw new import_provider20.InvalidPromptError({
|
|
1532
1562
|
prompt,
|
|
1533
1563
|
message: "prompt or messages must be defined"
|
|
1534
1564
|
});
|
|
1535
1565
|
}
|
|
1536
1566
|
if (messages.length === 0) {
|
|
1537
|
-
throw new
|
|
1567
|
+
throw new import_provider20.InvalidPromptError({
|
|
1538
1568
|
prompt,
|
|
1539
1569
|
message: "messages must not be empty"
|
|
1540
1570
|
});
|
|
1541
1571
|
}
|
|
1542
1572
|
if (messages.some((message) => message.role === "system")) {
|
|
1543
1573
|
if (allowSystemInMessages === false) {
|
|
1544
|
-
throw new
|
|
1574
|
+
throw new import_provider20.InvalidPromptError({
|
|
1545
1575
|
prompt,
|
|
1546
1576
|
message: "System messages are not allowed in the prompt or messages fields. Use the system option instead."
|
|
1547
1577
|
});
|
|
@@ -1557,7 +1587,7 @@ async function standardizePrompt({
|
|
|
1557
1587
|
schema: import_v46.z.array(modelMessageSchema)
|
|
1558
1588
|
});
|
|
1559
1589
|
if (!validationResult.success) {
|
|
1560
|
-
throw new
|
|
1590
|
+
throw new import_provider20.InvalidPromptError({
|
|
1561
1591
|
prompt,
|
|
1562
1592
|
message: "The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",
|
|
1563
1593
|
cause: validationResult.error
|
|
@@ -1568,14 +1598,14 @@ async function standardizePrompt({
|
|
|
1568
1598
|
|
|
1569
1599
|
// src/prompt/wrap-gateway-error.ts
|
|
1570
1600
|
var import_gateway2 = require("@ai-sdk/gateway");
|
|
1571
|
-
var
|
|
1601
|
+
var import_provider21 = require("@ai-sdk/provider");
|
|
1572
1602
|
function wrapGatewayError(error) {
|
|
1573
1603
|
if (!import_gateway2.GatewayAuthenticationError.isInstance(error))
|
|
1574
1604
|
return error;
|
|
1575
1605
|
const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
|
|
1576
1606
|
const moreInfoURL = "https://v5.ai-sdk.dev/unauthenticated-ai-gateway";
|
|
1577
1607
|
if (isProductionEnv) {
|
|
1578
|
-
return new
|
|
1608
|
+
return new import_provider21.AISDKError({
|
|
1579
1609
|
name: "GatewayError",
|
|
1580
1610
|
message: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`
|
|
1581
1611
|
});
|
|
@@ -1611,8 +1641,8 @@ function assembleOperationName({
|
|
|
1611
1641
|
|
|
1612
1642
|
// src/telemetry/get-base-telemetry-attributes.ts
|
|
1613
1643
|
function getTelemetryMetadataAttributes(telemetry) {
|
|
1614
|
-
var
|
|
1615
|
-
return Object.entries((
|
|
1644
|
+
var _a17;
|
|
1645
|
+
return Object.entries((_a17 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a17 : {}).reduce(
|
|
1616
1646
|
(attributes, [key, value]) => {
|
|
1617
1647
|
attributes[`ai.telemetry.metadata.${key}`] = value;
|
|
1618
1648
|
return attributes;
|
|
@@ -1654,7 +1684,7 @@ var noopTracer = {
|
|
|
1654
1684
|
startSpan() {
|
|
1655
1685
|
return noopSpan;
|
|
1656
1686
|
},
|
|
1657
|
-
startActiveSpan(
|
|
1687
|
+
startActiveSpan(name17, arg1, arg2, arg3) {
|
|
1658
1688
|
if (typeof arg1 === "function") {
|
|
1659
1689
|
return arg1(noopSpan);
|
|
1660
1690
|
}
|
|
@@ -1724,14 +1754,14 @@ function getTracer({
|
|
|
1724
1754
|
// src/telemetry/record-span.ts
|
|
1725
1755
|
var import_api2 = require("@opentelemetry/api");
|
|
1726
1756
|
function recordSpan({
|
|
1727
|
-
name:
|
|
1757
|
+
name: name17,
|
|
1728
1758
|
tracer,
|
|
1729
1759
|
attributes,
|
|
1730
1760
|
fn,
|
|
1731
1761
|
endWhenDone = true,
|
|
1732
1762
|
endOnError = endWhenDone
|
|
1733
1763
|
}) {
|
|
1734
|
-
return tracer.startActiveSpan(
|
|
1764
|
+
return tracer.startActiveSpan(name17, { attributes }, async (span) => {
|
|
1735
1765
|
try {
|
|
1736
1766
|
const result = await fn(span);
|
|
1737
1767
|
if (endWhenDone) {
|
|
@@ -1837,14 +1867,14 @@ function asArray(value) {
|
|
|
1837
1867
|
}
|
|
1838
1868
|
|
|
1839
1869
|
// src/util/retry-with-exponential-backoff.ts
|
|
1840
|
-
var
|
|
1870
|
+
var import_provider22 = require("@ai-sdk/provider");
|
|
1841
1871
|
var import_gateway3 = require("@ai-sdk/gateway");
|
|
1842
1872
|
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
1843
1873
|
function getRetryDelayInMs({
|
|
1844
1874
|
error,
|
|
1845
1875
|
exponentialBackoffDelay
|
|
1846
1876
|
}) {
|
|
1847
|
-
const headers =
|
|
1877
|
+
const headers = import_provider22.APICallError.isInstance(error) ? error.responseHeaders : import_provider22.APICallError.isInstance(error.cause) ? error.cause.responseHeaders : void 0;
|
|
1848
1878
|
if (!headers)
|
|
1849
1879
|
return exponentialBackoffDelay;
|
|
1850
1880
|
let ms;
|
|
@@ -1908,7 +1938,7 @@ async function _retryWithExponentialBackoff(f, {
|
|
|
1908
1938
|
errors: newErrors
|
|
1909
1939
|
});
|
|
1910
1940
|
}
|
|
1911
|
-
if ((error instanceof Error && (
|
|
1941
|
+
if ((error instanceof Error && (import_provider22.APICallError.isInstance(error) && error.isRetryable === true || import_gateway3.GatewayError.isInstance(error) && error.isRetryable === true) || (additionalRetryableError == null ? void 0 : additionalRetryableError(error)) === true) && tryNumber <= maxRetries) {
|
|
1912
1942
|
await (0, import_provider_utils7.delay)(
|
|
1913
1943
|
getRetryDelayInMs({
|
|
1914
1944
|
error,
|
|
@@ -1993,7 +2023,7 @@ function filterActiveTools({
|
|
|
1993
2023
|
}
|
|
1994
2024
|
return Object.fromEntries(
|
|
1995
2025
|
Object.entries(tools).filter(
|
|
1996
|
-
([
|
|
2026
|
+
([name17]) => activeTools.includes(name17)
|
|
1997
2027
|
)
|
|
1998
2028
|
);
|
|
1999
2029
|
}
|
|
@@ -2227,8 +2257,8 @@ function stepCountIs(stepCount) {
|
|
|
2227
2257
|
}
|
|
2228
2258
|
function hasToolCall(toolName) {
|
|
2229
2259
|
return ({ steps }) => {
|
|
2230
|
-
var
|
|
2231
|
-
return (_c = (_b = (
|
|
2260
|
+
var _a17, _b, _c;
|
|
2261
|
+
return (_c = (_b = (_a17 = steps[steps.length - 1]) == null ? void 0 : _a17.toolCalls) == null ? void 0 : _b.some(
|
|
2232
2262
|
(toolCall) => toolCall.toolName === toolName
|
|
2233
2263
|
)) != null ? _c : false;
|
|
2234
2264
|
};
|
|
@@ -2241,14 +2271,14 @@ async function isStopConditionMet({
|
|
|
2241
2271
|
}
|
|
2242
2272
|
|
|
2243
2273
|
// src/prompt/create-tool-model-output.ts
|
|
2244
|
-
var
|
|
2274
|
+
var import_provider23 = require("@ai-sdk/provider");
|
|
2245
2275
|
function createToolModelOutput({
|
|
2246
2276
|
output,
|
|
2247
2277
|
tool: tool2,
|
|
2248
2278
|
errorMode
|
|
2249
2279
|
}) {
|
|
2250
2280
|
if (errorMode === "text") {
|
|
2251
|
-
return { type: "error-text", value: (0,
|
|
2281
|
+
return { type: "error-text", value: (0, import_provider23.getErrorMessage)(output) };
|
|
2252
2282
|
} else if (errorMode === "json") {
|
|
2253
2283
|
return { type: "error-json", value: toJSONValue(output) };
|
|
2254
2284
|
}
|
|
@@ -2432,7 +2462,7 @@ async function generateText({
|
|
|
2432
2462
|
}),
|
|
2433
2463
|
tracer,
|
|
2434
2464
|
fn: async (span) => {
|
|
2435
|
-
var
|
|
2465
|
+
var _a17, _b, _c, _d, _e, _f, _g;
|
|
2436
2466
|
const callSettings2 = prepareCallSettings(settings);
|
|
2437
2467
|
let currentModelResponse;
|
|
2438
2468
|
let clientToolCalls = [];
|
|
@@ -2454,7 +2484,7 @@ async function generateText({
|
|
|
2454
2484
|
messages: stepInputMessages
|
|
2455
2485
|
}));
|
|
2456
2486
|
const stepModel = resolveLanguageModel(
|
|
2457
|
-
(
|
|
2487
|
+
(_a17 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a17 : model
|
|
2458
2488
|
);
|
|
2459
2489
|
const promptMessages = await convertToLanguageModelPrompt({
|
|
2460
2490
|
prompt: {
|
|
@@ -2476,7 +2506,7 @@ async function generateText({
|
|
|
2476
2506
|
});
|
|
2477
2507
|
currentModelResponse = await retry(
|
|
2478
2508
|
() => {
|
|
2479
|
-
var
|
|
2509
|
+
var _a18;
|
|
2480
2510
|
return recordSpan({
|
|
2481
2511
|
name: "ai.generateText.doGenerate",
|
|
2482
2512
|
attributes: selectTelemetryAttributes({
|
|
@@ -2508,14 +2538,14 @@ async function generateText({
|
|
|
2508
2538
|
"gen_ai.request.max_tokens": settings.maxOutputTokens,
|
|
2509
2539
|
"gen_ai.request.presence_penalty": settings.presencePenalty,
|
|
2510
2540
|
"gen_ai.request.stop_sequences": settings.stopSequences,
|
|
2511
|
-
"gen_ai.request.temperature": (
|
|
2541
|
+
"gen_ai.request.temperature": (_a18 = settings.temperature) != null ? _a18 : void 0,
|
|
2512
2542
|
"gen_ai.request.top_k": settings.topK,
|
|
2513
2543
|
"gen_ai.request.top_p": settings.topP
|
|
2514
2544
|
}
|
|
2515
2545
|
}),
|
|
2516
2546
|
tracer,
|
|
2517
2547
|
fn: async (span2) => {
|
|
2518
|
-
var
|
|
2548
|
+
var _a19, _b2, _c2, _d2, _e2, _f2, _g2, _h;
|
|
2519
2549
|
const result = await stepModel.doGenerate({
|
|
2520
2550
|
...callSettings2,
|
|
2521
2551
|
tools: stepTools,
|
|
@@ -2527,7 +2557,7 @@ async function generateText({
|
|
|
2527
2557
|
headers: headersWithUserAgent
|
|
2528
2558
|
});
|
|
2529
2559
|
const responseData = {
|
|
2530
|
-
id: (_b2 = (
|
|
2560
|
+
id: (_b2 = (_a19 = result.response) == null ? void 0 : _a19.id) != null ? _b2 : generateId3(),
|
|
2531
2561
|
timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
|
|
2532
2562
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
|
|
2533
2563
|
headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
|
|
@@ -2577,12 +2607,23 @@ async function generateText({
|
|
|
2577
2607
|
(toolCall) => parseToolCall({
|
|
2578
2608
|
toolCall,
|
|
2579
2609
|
tools: stepToolSet,
|
|
2580
|
-
|
|
2610
|
+
// tool calls are rejected with tool choice none,
|
|
2611
|
+
// so user callbacks must not process them:
|
|
2612
|
+
repairToolCall: (stepToolChoice == null ? void 0 : stepToolChoice.type) === "none" ? void 0 : repairToolCall,
|
|
2581
2613
|
system,
|
|
2582
2614
|
messages: stepInputMessages
|
|
2583
2615
|
})
|
|
2584
2616
|
)
|
|
2585
2617
|
);
|
|
2618
|
+
if ((stepToolChoice == null ? void 0 : stepToolChoice.type) === "none" && stepToolCalls.length > 0) {
|
|
2619
|
+
throw new ToolChoiceViolationError({
|
|
2620
|
+
toolChoice: stepToolChoice,
|
|
2621
|
+
finishReason: currentModelResponse.finishReason,
|
|
2622
|
+
provider: stepModel.provider,
|
|
2623
|
+
modelId: stepModel.modelId,
|
|
2624
|
+
content: currentModelResponse.content
|
|
2625
|
+
});
|
|
2626
|
+
}
|
|
2586
2627
|
for (const toolCall of stepToolCalls) {
|
|
2587
2628
|
if (toolCall.invalid) {
|
|
2588
2629
|
continue;
|
|
@@ -3774,7 +3815,7 @@ function createStreamingUIMessageState({
|
|
|
3774
3815
|
lastMessage,
|
|
3775
3816
|
messageId
|
|
3776
3817
|
}) {
|
|
3777
|
-
var
|
|
3818
|
+
var _a17;
|
|
3778
3819
|
const message = (lastMessage == null ? void 0 : lastMessage.role) === "assistant" ? lastMessage : {
|
|
3779
3820
|
id: messageId,
|
|
3780
3821
|
metadata: void 0,
|
|
@@ -3798,7 +3839,7 @@ function createStreamingUIMessageState({
|
|
|
3798
3839
|
continue;
|
|
3799
3840
|
}
|
|
3800
3841
|
partialToolCalls[part.toolCallId] = {
|
|
3801
|
-
text: (
|
|
3842
|
+
text: (_a17 = part.rawInput) != null ? _a17 : "",
|
|
3802
3843
|
index,
|
|
3803
3844
|
toolName: isDynamicToolUIPart(part) ? part.toolName : getToolName(part),
|
|
3804
3845
|
dynamic: isDynamicToolUIPart(part)
|
|
@@ -3825,7 +3866,7 @@ function processUIMessageStream({
|
|
|
3825
3866
|
new TransformStream({
|
|
3826
3867
|
async transform(chunk, controller) {
|
|
3827
3868
|
await runUpdateMessageJob(async ({ state, write }) => {
|
|
3828
|
-
var
|
|
3869
|
+
var _a17, _b, _c, _d;
|
|
3829
3870
|
function getCurrentStepParts() {
|
|
3830
3871
|
const parts = state.message.parts;
|
|
3831
3872
|
let currentStepStartIndex = parts.length - 1;
|
|
@@ -3884,7 +3925,7 @@ function processUIMessageStream({
|
|
|
3884
3925
|
return toolInvocation;
|
|
3885
3926
|
}
|
|
3886
3927
|
function updateToolPart(options, existingPart) {
|
|
3887
|
-
var
|
|
3928
|
+
var _a18;
|
|
3888
3929
|
const part = existingPart != null ? existingPart : getCurrentStepParts().find(
|
|
3889
3930
|
(part2) => isToolUIPart(part2) && part2.toolCallId === options.toolCallId
|
|
3890
3931
|
);
|
|
@@ -3897,7 +3938,7 @@ function processUIMessageStream({
|
|
|
3897
3938
|
anyPart.errorText = anyOptions.errorText;
|
|
3898
3939
|
anyPart.rawInput = anyOptions.rawInput;
|
|
3899
3940
|
anyPart.preliminary = anyOptions.preliminary;
|
|
3900
|
-
anyPart.providerExecuted = (
|
|
3941
|
+
anyPart.providerExecuted = (_a18 = anyOptions.providerExecuted) != null ? _a18 : part.providerExecuted;
|
|
3901
3942
|
if (anyOptions.providerMetadata != null && part.state === "input-available") {
|
|
3902
3943
|
part.callProviderMetadata = anyOptions.providerMetadata;
|
|
3903
3944
|
}
|
|
@@ -3917,7 +3958,7 @@ function processUIMessageStream({
|
|
|
3917
3958
|
}
|
|
3918
3959
|
}
|
|
3919
3960
|
function updateDynamicToolPart(options, existingPart) {
|
|
3920
|
-
var
|
|
3961
|
+
var _a18;
|
|
3921
3962
|
const part = existingPart != null ? existingPart : getCurrentStepParts().find(
|
|
3922
3963
|
(part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
|
|
3923
3964
|
);
|
|
@@ -3931,7 +3972,7 @@ function processUIMessageStream({
|
|
|
3931
3972
|
anyPart.errorText = anyOptions.errorText;
|
|
3932
3973
|
anyPart.rawInput = anyOptions.rawInput;
|
|
3933
3974
|
anyPart.preliminary = anyOptions.preliminary;
|
|
3934
|
-
anyPart.providerExecuted = (
|
|
3975
|
+
anyPart.providerExecuted = (_a18 = anyOptions.providerExecuted) != null ? _a18 : part.providerExecuted;
|
|
3935
3976
|
if (anyOptions.providerMetadata != null && part.state === "input-available") {
|
|
3936
3977
|
part.callProviderMetadata = anyOptions.providerMetadata;
|
|
3937
3978
|
}
|
|
@@ -3978,7 +4019,7 @@ function processUIMessageStream({
|
|
|
3978
4019
|
case "text-delta": {
|
|
3979
4020
|
const textPart = state.activeTextParts[chunk.id];
|
|
3980
4021
|
textPart.text += chunk.delta;
|
|
3981
|
-
textPart.providerMetadata = (
|
|
4022
|
+
textPart.providerMetadata = (_a17 = chunk.providerMetadata) != null ? _a17 : textPart.providerMetadata;
|
|
3982
4023
|
write();
|
|
3983
4024
|
break;
|
|
3984
4025
|
}
|
|
@@ -4375,13 +4416,13 @@ function handleUIMessageStreamFinish({
|
|
|
4375
4416
|
};
|
|
4376
4417
|
let finishCalled = false;
|
|
4377
4418
|
const callOnFinish = async () => {
|
|
4378
|
-
var
|
|
4419
|
+
var _a17;
|
|
4379
4420
|
if (finishCalled || !onFinish) {
|
|
4380
4421
|
return;
|
|
4381
4422
|
}
|
|
4382
4423
|
finishCalled = true;
|
|
4383
4424
|
const isContinuation = state.message.id === (lastMessage == null ? void 0 : lastMessage.id);
|
|
4384
|
-
const declaredOutcome = (
|
|
4425
|
+
const declaredOutcome = (_a17 = getOutcome == null ? void 0 : getOutcome()) != null ? _a17 : { status: "unknown" };
|
|
4385
4426
|
const outcome = hasProcessingFailure ? { status: "failed", error: processingError } : declaredOutcome.status === "unknown" && isAborted ? { status: "aborted" } : declaredOutcome;
|
|
4386
4427
|
await onFinish({
|
|
4387
4428
|
isAborted: isAborted || outcome.status === "aborted",
|
|
@@ -4452,11 +4493,11 @@ function createAsyncIterableStream(source) {
|
|
|
4452
4493
|
const reader = this.getReader();
|
|
4453
4494
|
let finished = false;
|
|
4454
4495
|
async function cleanup(cancelStream) {
|
|
4455
|
-
var
|
|
4496
|
+
var _a17;
|
|
4456
4497
|
finished = true;
|
|
4457
4498
|
try {
|
|
4458
4499
|
if (cancelStream) {
|
|
4459
|
-
await ((
|
|
4500
|
+
await ((_a17 = reader.cancel) == null ? void 0 : _a17.call(reader));
|
|
4460
4501
|
}
|
|
4461
4502
|
} finally {
|
|
4462
4503
|
try {
|
|
@@ -4566,7 +4607,7 @@ function createStitchableStream() {
|
|
|
4566
4607
|
controller == null ? void 0 : controller.close();
|
|
4567
4608
|
};
|
|
4568
4609
|
const processPull = async () => {
|
|
4569
|
-
var
|
|
4610
|
+
var _a17, _b;
|
|
4570
4611
|
if (isClosed && innerStreams.length === 0) {
|
|
4571
4612
|
controller == null ? void 0 : controller.close();
|
|
4572
4613
|
return;
|
|
@@ -4589,7 +4630,7 @@ function createStitchableStream() {
|
|
|
4589
4630
|
controller == null ? void 0 : controller.enqueue(value);
|
|
4590
4631
|
}
|
|
4591
4632
|
} catch (error) {
|
|
4592
|
-
(_b = (
|
|
4633
|
+
(_b = (_a17 = innerStreams[0]).onError) == null ? void 0 : _b.call(_a17, error);
|
|
4593
4634
|
controller == null ? void 0 : controller.error(error);
|
|
4594
4635
|
innerStreams.shift();
|
|
4595
4636
|
terminate();
|
|
@@ -4650,14 +4691,16 @@ async function notify(options) {
|
|
|
4650
4691
|
|
|
4651
4692
|
// src/util/now.ts
|
|
4652
4693
|
function now() {
|
|
4653
|
-
var
|
|
4654
|
-
return (_b = (
|
|
4694
|
+
var _a17, _b;
|
|
4695
|
+
return (_b = (_a17 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a17.now()) != null ? _b : Date.now();
|
|
4655
4696
|
}
|
|
4656
4697
|
|
|
4657
4698
|
// src/generate-text/run-tools-transformation.ts
|
|
4658
4699
|
var import_provider_utils14 = require("@ai-sdk/provider-utils");
|
|
4659
4700
|
function runToolsTransformation({
|
|
4660
4701
|
tools,
|
|
4702
|
+
toolChoice,
|
|
4703
|
+
model,
|
|
4661
4704
|
generatorStream,
|
|
4662
4705
|
tracer,
|
|
4663
4706
|
telemetry,
|
|
@@ -4788,10 +4831,19 @@ function runToolsTransformation({
|
|
|
4788
4831
|
});
|
|
4789
4832
|
}
|
|
4790
4833
|
const activeToolCallToolNames = /* @__PURE__ */ new Map();
|
|
4834
|
+
const withholdToolParts = (toolChoice == null ? void 0 : toolChoice.type) === "none";
|
|
4835
|
+
const withheldToolContent = [];
|
|
4791
4836
|
const forwardStream = new TransformStream({
|
|
4792
4837
|
async transform(chunk, controller) {
|
|
4793
|
-
var
|
|
4838
|
+
var _a17, _b, _c, _d, _e, _f;
|
|
4794
4839
|
const chunkType = chunk.type;
|
|
4840
|
+
if (withholdToolParts && (chunkType === "tool-input-start" || chunkType === "tool-input-delta" || chunkType === "tool-input-end")) {
|
|
4841
|
+
return;
|
|
4842
|
+
}
|
|
4843
|
+
if (withholdToolParts && (chunkType === "tool-call" || chunkType === "tool-result")) {
|
|
4844
|
+
withheldToolContent.push(chunk);
|
|
4845
|
+
return;
|
|
4846
|
+
}
|
|
4795
4847
|
switch (chunkType) {
|
|
4796
4848
|
case "stream-start":
|
|
4797
4849
|
case "text-start":
|
|
@@ -4809,7 +4861,7 @@ function runToolsTransformation({
|
|
|
4809
4861
|
}
|
|
4810
4862
|
case "tool-input-start": {
|
|
4811
4863
|
activeToolCallToolNames.set(chunk.id, chunk.toolName);
|
|
4812
|
-
await ((_b = (
|
|
4864
|
+
await ((_b = (_a17 = tools == null ? void 0 : tools[chunk.toolName]) == null ? void 0 : _a17.onInputStart) == null ? void 0 : _b.call(_a17, {
|
|
4813
4865
|
toolCallId: chunk.id,
|
|
4814
4866
|
messages,
|
|
4815
4867
|
abortSignal,
|
|
@@ -4848,12 +4900,25 @@ function runToolsTransformation({
|
|
|
4848
4900
|
break;
|
|
4849
4901
|
}
|
|
4850
4902
|
case "finish": {
|
|
4903
|
+
const toolChoiceViolationError = withholdToolParts && withheldToolContent.some((part) => part.type === "tool-call") ? new ToolChoiceViolationError({
|
|
4904
|
+
toolChoice: { type: "none" },
|
|
4905
|
+
finishReason: chunk.finishReason,
|
|
4906
|
+
provider: (_e = model == null ? void 0 : model.provider) != null ? _e : "unknown",
|
|
4907
|
+
modelId: (_f = model == null ? void 0 : model.modelId) != null ? _f : "unknown",
|
|
4908
|
+
content: withheldToolContent
|
|
4909
|
+
}) : void 0;
|
|
4851
4910
|
finishChunk = {
|
|
4852
4911
|
type: "finish",
|
|
4853
|
-
finishReason: chunk.finishReason,
|
|
4912
|
+
finishReason: toolChoiceViolationError == null ? chunk.finishReason : "error",
|
|
4854
4913
|
usage: chunk.usage,
|
|
4855
4914
|
providerMetadata: chunk.providerMetadata
|
|
4856
4915
|
};
|
|
4916
|
+
if (toolChoiceViolationError != null) {
|
|
4917
|
+
controller.enqueue({
|
|
4918
|
+
type: "error",
|
|
4919
|
+
error: toolChoiceViolationError
|
|
4920
|
+
});
|
|
4921
|
+
}
|
|
4857
4922
|
if (isToolExecutionAllowedFinishReason(chunk.finishReason)) {
|
|
4858
4923
|
for (const toolCall of pendingToolCalls.splice(0)) {
|
|
4859
4924
|
executePendingToolCall(toolCall);
|
|
@@ -5161,7 +5226,7 @@ var DefaultStreamTextResult = class {
|
|
|
5161
5226
|
let activeReasoningContent = createIdMap();
|
|
5162
5227
|
const eventProcessor = new TransformStream({
|
|
5163
5228
|
async transform(chunk, controller) {
|
|
5164
|
-
var
|
|
5229
|
+
var _a17, _b, _c, _d;
|
|
5165
5230
|
controller.enqueue(chunk);
|
|
5166
5231
|
const { part } = chunk;
|
|
5167
5232
|
if (part.type === "text-delta" || part.type === "reasoning-delta" || part.type === "source" || part.type === "tool-call" || part.type === "tool-result" || part.type === "tool-input-start" || part.type === "tool-input-delta" || part.type === "raw") {
|
|
@@ -5197,7 +5262,7 @@ var DefaultStreamTextResult = class {
|
|
|
5197
5262
|
return;
|
|
5198
5263
|
}
|
|
5199
5264
|
activeText.text += part.text;
|
|
5200
|
-
activeText.providerMetadata = (
|
|
5265
|
+
activeText.providerMetadata = (_a17 = part.providerMetadata) != null ? _a17 : activeText.providerMetadata;
|
|
5201
5266
|
}
|
|
5202
5267
|
if (part.type === "text-end") {
|
|
5203
5268
|
const activeText = activeTextContent[part.id];
|
|
@@ -5356,8 +5421,8 @@ var DefaultStreamTextResult = class {
|
|
|
5356
5421
|
"ai.response.text": { output: () => finalStep.text },
|
|
5357
5422
|
"ai.response.toolCalls": {
|
|
5358
5423
|
output: () => {
|
|
5359
|
-
var
|
|
5360
|
-
return ((
|
|
5424
|
+
var _a17;
|
|
5425
|
+
return ((_a17 = finalStep.toolCalls) == null ? void 0 : _a17.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
|
|
5361
5426
|
}
|
|
5362
5427
|
},
|
|
5363
5428
|
"ai.response.providerMetadata": JSON.stringify(
|
|
@@ -5472,7 +5537,7 @@ var DefaultStreamTextResult = class {
|
|
|
5472
5537
|
responseMessages,
|
|
5473
5538
|
usage
|
|
5474
5539
|
}) {
|
|
5475
|
-
var
|
|
5540
|
+
var _a17, _b, _c, _d, _e;
|
|
5476
5541
|
const includeRawChunks2 = self.includeRawChunks;
|
|
5477
5542
|
stepFinish = new import_provider_utils15.DelayedPromise();
|
|
5478
5543
|
const initialPrompt = await standardizePrompt({
|
|
@@ -5492,7 +5557,7 @@ var DefaultStreamTextResult = class {
|
|
|
5492
5557
|
messages: stepInputMessages
|
|
5493
5558
|
}));
|
|
5494
5559
|
const stepModel = resolveLanguageModel(
|
|
5495
|
-
(
|
|
5560
|
+
(_a17 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a17 : model
|
|
5496
5561
|
);
|
|
5497
5562
|
const promptMessages = await convertToLanguageModelPrompt({
|
|
5498
5563
|
prompt: {
|
|
@@ -5579,6 +5644,8 @@ var DefaultStreamTextResult = class {
|
|
|
5579
5644
|
);
|
|
5580
5645
|
const streamWithToolResults = runToolsTransformation({
|
|
5581
5646
|
tools: stepToolSet,
|
|
5647
|
+
toolChoice: stepToolChoice,
|
|
5648
|
+
model: { provider: stepModel.provider, modelId: stepModel.modelId },
|
|
5582
5649
|
generatorStream: stream2,
|
|
5583
5650
|
tracer,
|
|
5584
5651
|
telemetry,
|
|
@@ -5610,7 +5677,7 @@ var DefaultStreamTextResult = class {
|
|
|
5610
5677
|
streamWithToolResults.pipeThrough(
|
|
5611
5678
|
new TransformStream({
|
|
5612
5679
|
async transform(chunk, controller) {
|
|
5613
|
-
var
|
|
5680
|
+
var _a18, _b2, _c2, _d2;
|
|
5614
5681
|
if (chunk.type === "stream-start") {
|
|
5615
5682
|
warnings = chunk.warnings;
|
|
5616
5683
|
return;
|
|
@@ -5682,7 +5749,7 @@ var DefaultStreamTextResult = class {
|
|
|
5682
5749
|
}
|
|
5683
5750
|
case "response-metadata": {
|
|
5684
5751
|
stepResponse = {
|
|
5685
|
-
id: (
|
|
5752
|
+
id: (_a18 = chunk.id) != null ? _a18 : stepResponse.id,
|
|
5686
5753
|
timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
|
|
5687
5754
|
modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
|
|
5688
5755
|
};
|
|
@@ -5963,14 +6030,14 @@ var DefaultStreamTextResult = class {
|
|
|
5963
6030
|
);
|
|
5964
6031
|
}
|
|
5965
6032
|
async consumeStream(options) {
|
|
5966
|
-
var
|
|
6033
|
+
var _a17;
|
|
5967
6034
|
try {
|
|
5968
6035
|
await consumeStream({
|
|
5969
6036
|
stream: this.fullStream,
|
|
5970
6037
|
onError: options == null ? void 0 : options.onError
|
|
5971
6038
|
});
|
|
5972
6039
|
} catch (error) {
|
|
5973
|
-
(
|
|
6040
|
+
(_a17 = options == null ? void 0 : options.onError) == null ? void 0 : _a17.call(options, error);
|
|
5974
6041
|
}
|
|
5975
6042
|
}
|
|
5976
6043
|
get experimental_partialOutputStream() {
|
|
@@ -6018,9 +6085,9 @@ var DefaultStreamTextResult = class {
|
|
|
6018
6085
|
}) : void 0;
|
|
6019
6086
|
const toolNamesByCallId = {};
|
|
6020
6087
|
const isDynamic = (toolCallId) => {
|
|
6021
|
-
var
|
|
6088
|
+
var _a17, _b;
|
|
6022
6089
|
const toolName = toolNamesByCallId[toolCallId];
|
|
6023
|
-
const dynamic = ((_b = (
|
|
6090
|
+
const dynamic = ((_b = (_a17 = this.tools) == null ? void 0 : _a17[toolName]) == null ? void 0 : _b.type) === "dynamic";
|
|
6024
6091
|
return dynamic ? true : void 0;
|
|
6025
6092
|
};
|
|
6026
6093
|
const sourceReader = this.fullStream.getReader();
|
|
@@ -6477,7 +6544,7 @@ function convertToModelMessages(messages, options) {
|
|
|
6477
6544
|
modelMessages.push({
|
|
6478
6545
|
role: "user",
|
|
6479
6546
|
content: message.parts.map((part) => {
|
|
6480
|
-
var
|
|
6547
|
+
var _a17;
|
|
6481
6548
|
if (isTextUIPart(part)) {
|
|
6482
6549
|
return {
|
|
6483
6550
|
type: "text",
|
|
@@ -6495,7 +6562,7 @@ function convertToModelMessages(messages, options) {
|
|
|
6495
6562
|
};
|
|
6496
6563
|
}
|
|
6497
6564
|
if (isDataUIPart(part)) {
|
|
6498
|
-
return (
|
|
6565
|
+
return (_a17 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a17.call(
|
|
6499
6566
|
options,
|
|
6500
6567
|
part
|
|
6501
6568
|
);
|
|
@@ -6507,7 +6574,7 @@ function convertToModelMessages(messages, options) {
|
|
|
6507
6574
|
case "assistant": {
|
|
6508
6575
|
if (message.parts != null) {
|
|
6509
6576
|
let processBlock2 = function() {
|
|
6510
|
-
var
|
|
6577
|
+
var _a17, _b;
|
|
6511
6578
|
if (block.length === 0) {
|
|
6512
6579
|
return;
|
|
6513
6580
|
}
|
|
@@ -6550,7 +6617,7 @@ function convertToModelMessages(messages, options) {
|
|
|
6550
6617
|
type: "tool-call",
|
|
6551
6618
|
toolCallId: part.toolCallId,
|
|
6552
6619
|
toolName,
|
|
6553
|
-
input: part.state === "output-error" ? (
|
|
6620
|
+
input: part.state === "output-error" ? (_a17 = part.input) != null ? _a17 : part.rawInput : part.input,
|
|
6554
6621
|
providerExecuted: part.providerExecuted,
|
|
6555
6622
|
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
|
6556
6623
|
});
|
|
@@ -6730,7 +6797,7 @@ async function embed({
|
|
|
6730
6797
|
}),
|
|
6731
6798
|
tracer,
|
|
6732
6799
|
fn: async (doEmbedSpan) => {
|
|
6733
|
-
var
|
|
6800
|
+
var _a17;
|
|
6734
6801
|
const modelResponse = await model.doEmbed({
|
|
6735
6802
|
values: [value],
|
|
6736
6803
|
abortSignal,
|
|
@@ -6738,7 +6805,7 @@ async function embed({
|
|
|
6738
6805
|
providerOptions
|
|
6739
6806
|
});
|
|
6740
6807
|
const embedding2 = modelResponse.embeddings[0];
|
|
6741
|
-
const usage2 = (
|
|
6808
|
+
const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
|
|
6742
6809
|
doEmbedSpan.setAttributes(
|
|
6743
6810
|
selectTelemetryAttributes({
|
|
6744
6811
|
telemetry,
|
|
@@ -6753,7 +6820,7 @@ async function embed({
|
|
|
6753
6820
|
})
|
|
6754
6821
|
);
|
|
6755
6822
|
if (embedding2 == null) {
|
|
6756
|
-
throw new
|
|
6823
|
+
throw new import_provider18.InvalidResponseDataError({
|
|
6757
6824
|
data: modelResponse.embeddings,
|
|
6758
6825
|
message: "No embedding generated."
|
|
6759
6826
|
});
|
|
@@ -6902,7 +6969,7 @@ async function embedMany({
|
|
|
6902
6969
|
}),
|
|
6903
6970
|
tracer,
|
|
6904
6971
|
fn: async (doEmbedSpan) => {
|
|
6905
|
-
var
|
|
6972
|
+
var _a17;
|
|
6906
6973
|
const modelResponse = await model.doEmbed({
|
|
6907
6974
|
values,
|
|
6908
6975
|
abortSignal,
|
|
@@ -6910,7 +6977,7 @@ async function embedMany({
|
|
|
6910
6977
|
providerOptions
|
|
6911
6978
|
});
|
|
6912
6979
|
const embeddings3 = modelResponse.embeddings;
|
|
6913
|
-
const usage2 = (
|
|
6980
|
+
const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
|
|
6914
6981
|
doEmbedSpan.setAttributes(
|
|
6915
6982
|
selectTelemetryAttributes({
|
|
6916
6983
|
telemetry,
|
|
@@ -6988,7 +7055,7 @@ async function embedMany({
|
|
|
6988
7055
|
}),
|
|
6989
7056
|
tracer,
|
|
6990
7057
|
fn: async (doEmbedSpan) => {
|
|
6991
|
-
var
|
|
7058
|
+
var _a17;
|
|
6992
7059
|
const modelResponse = await model.doEmbed({
|
|
6993
7060
|
values: chunk,
|
|
6994
7061
|
abortSignal,
|
|
@@ -6996,7 +7063,7 @@ async function embedMany({
|
|
|
6996
7063
|
providerOptions
|
|
6997
7064
|
});
|
|
6998
7065
|
const embeddings2 = modelResponse.embeddings;
|
|
6999
|
-
const usage = (
|
|
7066
|
+
const usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
|
|
7000
7067
|
doEmbedSpan.setAttributes(
|
|
7001
7068
|
selectTelemetryAttributes({
|
|
7002
7069
|
telemetry,
|
|
@@ -7124,7 +7191,7 @@ async function generateImage({
|
|
|
7124
7191
|
abortSignal,
|
|
7125
7192
|
headers
|
|
7126
7193
|
}) {
|
|
7127
|
-
var
|
|
7194
|
+
var _a17, _b;
|
|
7128
7195
|
const model = resolveImageModel(modelArg);
|
|
7129
7196
|
const headersWithUserAgent = (0, import_provider_utils19.withUserAgentSuffix)(
|
|
7130
7197
|
headers != null ? headers : {},
|
|
@@ -7135,7 +7202,7 @@ async function generateImage({
|
|
|
7135
7202
|
abortSignal,
|
|
7136
7203
|
additionalRetryableError: (error) => error instanceof RetryableNoImageResultError
|
|
7137
7204
|
});
|
|
7138
|
-
const maxImagesPerCallWithDefault = (
|
|
7205
|
+
const maxImagesPerCallWithDefault = (_a17 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a17 : 1;
|
|
7139
7206
|
const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
|
|
7140
7207
|
const callImageCounts = Array.from({ length: callCount }, (_, i) => {
|
|
7141
7208
|
if (i < callCount - 1) {
|
|
@@ -7184,13 +7251,13 @@ async function generateImage({
|
|
|
7184
7251
|
images.push(
|
|
7185
7252
|
...result.images.map(
|
|
7186
7253
|
(image) => {
|
|
7187
|
-
var
|
|
7254
|
+
var _a18;
|
|
7188
7255
|
return new DefaultGeneratedFile({
|
|
7189
7256
|
data: image,
|
|
7190
|
-
mediaType: (
|
|
7257
|
+
mediaType: (_a18 = detectMediaType({
|
|
7191
7258
|
data: image,
|
|
7192
7259
|
signatures: imageMediaTypeSignatures
|
|
7193
|
-
})) != null ?
|
|
7260
|
+
})) != null ? _a18 : "image/png"
|
|
7194
7261
|
});
|
|
7195
7262
|
}
|
|
7196
7263
|
)
|
|
@@ -7269,7 +7336,7 @@ function extractReasoningContent(content) {
|
|
|
7269
7336
|
}
|
|
7270
7337
|
|
|
7271
7338
|
// src/generate-object/output-strategy.ts
|
|
7272
|
-
var
|
|
7339
|
+
var import_provider24 = require("@ai-sdk/provider");
|
|
7273
7340
|
var import_provider_utils20 = require("@ai-sdk/provider-utils");
|
|
7274
7341
|
var noSchemaOutputStrategy = {
|
|
7275
7342
|
type: "no-schema",
|
|
@@ -7290,7 +7357,7 @@ var noSchemaOutputStrategy = {
|
|
|
7290
7357
|
} : { success: true, value };
|
|
7291
7358
|
},
|
|
7292
7359
|
createElementStream() {
|
|
7293
|
-
throw new
|
|
7360
|
+
throw new import_provider24.UnsupportedFunctionalityError({
|
|
7294
7361
|
functionality: "element streams in no-schema mode"
|
|
7295
7362
|
});
|
|
7296
7363
|
}
|
|
@@ -7312,7 +7379,7 @@ var objectOutputStrategy = (schema) => ({
|
|
|
7312
7379
|
return (0, import_provider_utils20.safeValidateTypes)({ value, schema });
|
|
7313
7380
|
},
|
|
7314
7381
|
createElementStream() {
|
|
7315
|
-
throw new
|
|
7382
|
+
throw new import_provider24.UnsupportedFunctionalityError({
|
|
7316
7383
|
functionality: "element streams in object mode"
|
|
7317
7384
|
});
|
|
7318
7385
|
}
|
|
@@ -7339,11 +7406,11 @@ var arrayOutputStrategy = (schema) => {
|
|
|
7339
7406
|
isFirstDelta,
|
|
7340
7407
|
isFinalDelta
|
|
7341
7408
|
}) {
|
|
7342
|
-
var
|
|
7343
|
-
if (!(0,
|
|
7409
|
+
var _a17;
|
|
7410
|
+
if (!(0, import_provider24.isJSONObject)(value) || !(0, import_provider24.isJSONArray)(value.elements)) {
|
|
7344
7411
|
return {
|
|
7345
7412
|
success: false,
|
|
7346
|
-
error: new
|
|
7413
|
+
error: new import_provider24.TypeValidationError({
|
|
7347
7414
|
value,
|
|
7348
7415
|
cause: "value must be an object that contains an array of elements"
|
|
7349
7416
|
})
|
|
@@ -7362,7 +7429,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
7362
7429
|
}
|
|
7363
7430
|
resultArray.push(result.value);
|
|
7364
7431
|
}
|
|
7365
|
-
const publishedElementCount = (
|
|
7432
|
+
const publishedElementCount = (_a17 = latestObject == null ? void 0 : latestObject.length) != null ? _a17 : 0;
|
|
7366
7433
|
let textDelta = "";
|
|
7367
7434
|
if (isFirstDelta) {
|
|
7368
7435
|
textDelta += "[";
|
|
@@ -7383,10 +7450,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
7383
7450
|
};
|
|
7384
7451
|
},
|
|
7385
7452
|
async validateFinalResult(value) {
|
|
7386
|
-
if (!(0,
|
|
7453
|
+
if (!(0, import_provider24.isJSONObject)(value) || !(0, import_provider24.isJSONArray)(value.elements)) {
|
|
7387
7454
|
return {
|
|
7388
7455
|
success: false,
|
|
7389
|
-
error: new
|
|
7456
|
+
error: new import_provider24.TypeValidationError({
|
|
7390
7457
|
value,
|
|
7391
7458
|
cause: "value must be an object that contains an array of elements"
|
|
7392
7459
|
})
|
|
@@ -7451,10 +7518,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
7451
7518
|
additionalProperties: false
|
|
7452
7519
|
},
|
|
7453
7520
|
async validateFinalResult(value) {
|
|
7454
|
-
if (!(0,
|
|
7521
|
+
if (!(0, import_provider24.isJSONObject)(value) || typeof value.result !== "string") {
|
|
7455
7522
|
return {
|
|
7456
7523
|
success: false,
|
|
7457
|
-
error: new
|
|
7524
|
+
error: new import_provider24.TypeValidationError({
|
|
7458
7525
|
value,
|
|
7459
7526
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
7460
7527
|
})
|
|
@@ -7463,17 +7530,17 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
7463
7530
|
const result = value.result;
|
|
7464
7531
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
|
7465
7532
|
success: false,
|
|
7466
|
-
error: new
|
|
7533
|
+
error: new import_provider24.TypeValidationError({
|
|
7467
7534
|
value,
|
|
7468
7535
|
cause: "value must be a string in the enum"
|
|
7469
7536
|
})
|
|
7470
7537
|
};
|
|
7471
7538
|
},
|
|
7472
7539
|
async validatePartialResult({ value, textDelta }) {
|
|
7473
|
-
if (!(0,
|
|
7540
|
+
if (!(0, import_provider24.isJSONObject)(value) || typeof value.result !== "string") {
|
|
7474
7541
|
return {
|
|
7475
7542
|
success: false,
|
|
7476
|
-
error: new
|
|
7543
|
+
error: new import_provider24.TypeValidationError({
|
|
7477
7544
|
value,
|
|
7478
7545
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
7479
7546
|
})
|
|
@@ -7486,7 +7553,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
7486
7553
|
if (value.result.length === 0 || possibleEnumValues.length === 0) {
|
|
7487
7554
|
return {
|
|
7488
7555
|
success: false,
|
|
7489
|
-
error: new
|
|
7556
|
+
error: new import_provider24.TypeValidationError({
|
|
7490
7557
|
value,
|
|
7491
7558
|
cause: "value must be a string in the enum"
|
|
7492
7559
|
})
|
|
@@ -7501,7 +7568,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
7501
7568
|
};
|
|
7502
7569
|
},
|
|
7503
7570
|
createElementStream() {
|
|
7504
|
-
throw new
|
|
7571
|
+
throw new import_provider24.UnsupportedFunctionalityError({
|
|
7505
7572
|
functionality: "element streams in enum mode"
|
|
7506
7573
|
});
|
|
7507
7574
|
}
|
|
@@ -7529,7 +7596,7 @@ function getOutputStrategy({
|
|
|
7529
7596
|
}
|
|
7530
7597
|
|
|
7531
7598
|
// src/generate-object/parse-and-validate-object-result.ts
|
|
7532
|
-
var
|
|
7599
|
+
var import_provider25 = require("@ai-sdk/provider");
|
|
7533
7600
|
var import_provider_utils21 = require("@ai-sdk/provider-utils");
|
|
7534
7601
|
async function parseAndValidateObjectResult(result, outputStrategy, context) {
|
|
7535
7602
|
const parseResult = await (0, import_provider_utils21.safeParseJSON)({ text: result });
|
|
@@ -7567,7 +7634,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
|
|
|
7567
7634
|
try {
|
|
7568
7635
|
return await parseAndValidateObjectResult(result, outputStrategy, context);
|
|
7569
7636
|
} catch (error) {
|
|
7570
|
-
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (
|
|
7637
|
+
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider25.JSONParseError.isInstance(error.cause) || import_provider25.TypeValidationError.isInstance(error.cause))) {
|
|
7571
7638
|
const repairedText = await repairText({
|
|
7572
7639
|
text: result,
|
|
7573
7640
|
error: error.cause
|
|
@@ -7784,7 +7851,7 @@ async function generateObject(options) {
|
|
|
7784
7851
|
}),
|
|
7785
7852
|
tracer,
|
|
7786
7853
|
fn: async (span) => {
|
|
7787
|
-
var
|
|
7854
|
+
var _a17;
|
|
7788
7855
|
let result;
|
|
7789
7856
|
let finishReason;
|
|
7790
7857
|
let usage;
|
|
@@ -7831,7 +7898,7 @@ async function generateObject(options) {
|
|
|
7831
7898
|
}),
|
|
7832
7899
|
tracer,
|
|
7833
7900
|
fn: async (span2) => {
|
|
7834
|
-
var
|
|
7901
|
+
var _a18, _b, _c, _d, _e, _f, _g, _h;
|
|
7835
7902
|
const result2 = await model.doGenerate({
|
|
7836
7903
|
responseFormat: {
|
|
7837
7904
|
type: "json",
|
|
@@ -7846,7 +7913,7 @@ async function generateObject(options) {
|
|
|
7846
7913
|
headers: headersWithUserAgent
|
|
7847
7914
|
});
|
|
7848
7915
|
const responseData = {
|
|
7849
|
-
id: (_b = (
|
|
7916
|
+
id: (_b = (_a18 = result2.response) == null ? void 0 : _a18.id) != null ? _b : generateId3(),
|
|
7850
7917
|
timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
|
7851
7918
|
modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
|
|
7852
7919
|
headers: (_g = result2.response) == null ? void 0 : _g.headers,
|
|
@@ -7900,7 +7967,7 @@ async function generateObject(options) {
|
|
|
7900
7967
|
usage = generateResult.usage;
|
|
7901
7968
|
warnings = generateResult.warnings;
|
|
7902
7969
|
resultProviderMetadata = generateResult.providerMetadata;
|
|
7903
|
-
request = (
|
|
7970
|
+
request = (_a17 = generateResult.request) != null ? _a17 : {};
|
|
7904
7971
|
response = generateResult.responseData;
|
|
7905
7972
|
reasoning = generateResult.reasoning;
|
|
7906
7973
|
logWarnings(warnings);
|
|
@@ -7959,9 +8026,9 @@ var DefaultGenerateObjectResult = class {
|
|
|
7959
8026
|
this.reasoning = options.reasoning;
|
|
7960
8027
|
}
|
|
7961
8028
|
toJsonResponse(init) {
|
|
7962
|
-
var
|
|
8029
|
+
var _a17;
|
|
7963
8030
|
return new Response(JSON.stringify(this.object), {
|
|
7964
|
-
status: (
|
|
8031
|
+
status: (_a17 = init == null ? void 0 : init.status) != null ? _a17 : 200,
|
|
7965
8032
|
headers: prepareHeaders(init == null ? void 0 : init.headers, {
|
|
7966
8033
|
"content-type": "application/json; charset=utf-8"
|
|
7967
8034
|
})
|
|
@@ -8108,8 +8175,8 @@ function simulateReadableStream({
|
|
|
8108
8175
|
chunkDelayInMs = 0,
|
|
8109
8176
|
_internal
|
|
8110
8177
|
}) {
|
|
8111
|
-
var
|
|
8112
|
-
const delay2 = (
|
|
8178
|
+
var _a17;
|
|
8179
|
+
const delay2 = (_a17 = _internal == null ? void 0 : _internal.delay) != null ? _a17 : import_provider_utils23.delay;
|
|
8113
8180
|
let index = 0;
|
|
8114
8181
|
return new ReadableStream({
|
|
8115
8182
|
async pull(controller) {
|
|
@@ -8385,7 +8452,7 @@ var DefaultStreamObjectResult = class {
|
|
|
8385
8452
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
|
8386
8453
|
new TransformStream({
|
|
8387
8454
|
async transform(chunk, controller) {
|
|
8388
|
-
var
|
|
8455
|
+
var _a17, _b, _c;
|
|
8389
8456
|
if (typeof chunk === "object" && chunk.type === "stream-start") {
|
|
8390
8457
|
warnings = chunk.warnings;
|
|
8391
8458
|
return;
|
|
@@ -8435,7 +8502,7 @@ var DefaultStreamObjectResult = class {
|
|
|
8435
8502
|
switch (chunk.type) {
|
|
8436
8503
|
case "response-metadata": {
|
|
8437
8504
|
fullResponse = {
|
|
8438
|
-
id: (
|
|
8505
|
+
id: (_a17 = chunk.id) != null ? _a17 : fullResponse.id,
|
|
8439
8506
|
timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
|
|
8440
8507
|
modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
|
|
8441
8508
|
};
|
|
@@ -8744,7 +8811,7 @@ async function generateSpeech({
|
|
|
8744
8811
|
abortSignal,
|
|
8745
8812
|
headers
|
|
8746
8813
|
}) {
|
|
8747
|
-
var
|
|
8814
|
+
var _a17;
|
|
8748
8815
|
if (model.specificationVersion !== "v2") {
|
|
8749
8816
|
throw new UnsupportedModelVersionError({
|
|
8750
8817
|
version: model.specificationVersion,
|
|
@@ -8780,10 +8847,10 @@ async function generateSpeech({
|
|
|
8780
8847
|
return new DefaultSpeechResult({
|
|
8781
8848
|
audio: new DefaultGeneratedAudioFile({
|
|
8782
8849
|
data: result.audio,
|
|
8783
|
-
mediaType: (
|
|
8850
|
+
mediaType: (_a17 = detectMediaType({
|
|
8784
8851
|
data: result.audio,
|
|
8785
8852
|
signatures: audioMediaTypeSignatures
|
|
8786
|
-
})) != null ?
|
|
8853
|
+
})) != null ? _a17 : "audio/mp3"
|
|
8787
8854
|
}),
|
|
8788
8855
|
warnings: result.warnings,
|
|
8789
8856
|
responses: [result.response],
|
|
@@ -8792,11 +8859,11 @@ async function generateSpeech({
|
|
|
8792
8859
|
}
|
|
8793
8860
|
var DefaultSpeechResult = class {
|
|
8794
8861
|
constructor(options) {
|
|
8795
|
-
var
|
|
8862
|
+
var _a17;
|
|
8796
8863
|
this.audio = options.audio;
|
|
8797
8864
|
this.warnings = options.warnings;
|
|
8798
8865
|
this.responses = options.responses;
|
|
8799
|
-
this.providerMetadata = (
|
|
8866
|
+
this.providerMetadata = (_a17 = options.providerMetadata) != null ? _a17 : {};
|
|
8800
8867
|
}
|
|
8801
8868
|
};
|
|
8802
8869
|
|
|
@@ -8924,21 +8991,52 @@ function pruneMessages({
|
|
|
8924
8991
|
if (message.role !== "assistant" && message.role !== "tool" || typeof message.content === "string" || keepLastMessagesCount && messageIndex >= messages.length - keepLastMessagesCount) {
|
|
8925
8992
|
return message;
|
|
8926
8993
|
}
|
|
8927
|
-
const
|
|
8928
|
-
|
|
8929
|
-
|
|
8930
|
-
|
|
8931
|
-
|
|
8932
|
-
|
|
8994
|
+
const keepParts = message.content.map((part) => {
|
|
8995
|
+
if (part.type !== "tool-call" && part.type !== "tool-result") {
|
|
8996
|
+
return true;
|
|
8997
|
+
}
|
|
8998
|
+
if ((part.type === "tool-call" || part.type === "tool-result") && keptToolCallIds.has(part.toolCallId)) {
|
|
8999
|
+
return true;
|
|
9000
|
+
}
|
|
9001
|
+
return toolCall.tools != null && !toolCall.tools.includes(part.toolName);
|
|
9002
|
+
});
|
|
9003
|
+
if (message.role === "assistant") {
|
|
9004
|
+
for (let reasoningIndex = 0; reasoningIndex < message.content.length; reasoningIndex++) {
|
|
9005
|
+
const part = message.content[reasoningIndex];
|
|
9006
|
+
if (part.type !== "reasoning") {
|
|
9007
|
+
continue;
|
|
9008
|
+
}
|
|
9009
|
+
let reasoningEndIndex = reasoningIndex + 1;
|
|
9010
|
+
while (reasoningEndIndex < message.content.length) {
|
|
9011
|
+
const nextPart = message.content[reasoningEndIndex];
|
|
9012
|
+
if (nextPart.type !== "reasoning") {
|
|
9013
|
+
break;
|
|
9014
|
+
}
|
|
9015
|
+
reasoningEndIndex++;
|
|
8933
9016
|
}
|
|
8934
|
-
|
|
8935
|
-
|
|
9017
|
+
let followingPartIndex = reasoningEndIndex;
|
|
9018
|
+
let hasFollowingPart = false;
|
|
9019
|
+
let hasKeptFollowingPart = false;
|
|
9020
|
+
while (followingPartIndex < message.content.length) {
|
|
9021
|
+
const followingPart = message.content[followingPartIndex];
|
|
9022
|
+
if (followingPart.type === "reasoning") {
|
|
9023
|
+
break;
|
|
9024
|
+
}
|
|
9025
|
+
hasFollowingPart = true;
|
|
9026
|
+
hasKeptFollowingPart || (hasKeptFollowingPart = keepParts[followingPartIndex]);
|
|
9027
|
+
followingPartIndex++;
|
|
8936
9028
|
}
|
|
8937
|
-
if (
|
|
8938
|
-
|
|
9029
|
+
if (hasFollowingPart && !hasKeptFollowingPart) {
|
|
9030
|
+
for (let index = reasoningIndex; index < reasoningEndIndex; index++) {
|
|
9031
|
+
keepParts[index] = false;
|
|
9032
|
+
}
|
|
8939
9033
|
}
|
|
8940
|
-
|
|
8941
|
-
}
|
|
9034
|
+
reasoningIndex = followingPartIndex - 1;
|
|
9035
|
+
}
|
|
9036
|
+
}
|
|
9037
|
+
return {
|
|
9038
|
+
...message,
|
|
9039
|
+
content: message.content.filter((_, index) => keepParts[index])
|
|
8942
9040
|
};
|
|
8943
9041
|
});
|
|
8944
9042
|
}
|
|
@@ -8950,7 +9048,7 @@ function pruneMessages({
|
|
|
8950
9048
|
|
|
8951
9049
|
// src/generate-text/smooth-stream.ts
|
|
8952
9050
|
var import_provider_utils27 = require("@ai-sdk/provider-utils");
|
|
8953
|
-
var
|
|
9051
|
+
var import_provider26 = require("@ai-sdk/provider");
|
|
8954
9052
|
var CHUNKING_REGEXPS = {
|
|
8955
9053
|
word: /\S+\s+/m,
|
|
8956
9054
|
line: /\n+/m
|
|
@@ -8983,7 +9081,7 @@ function smoothStream({
|
|
|
8983
9081
|
} else {
|
|
8984
9082
|
const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
|
8985
9083
|
if (chunkingRegex == null) {
|
|
8986
|
-
throw new
|
|
9084
|
+
throw new import_provider26.InvalidArgumentError({
|
|
8987
9085
|
argument: "chunking",
|
|
8988
9086
|
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
|
8989
9087
|
});
|
|
@@ -9327,7 +9425,7 @@ var doWrap = ({
|
|
|
9327
9425
|
modelId,
|
|
9328
9426
|
providerId
|
|
9329
9427
|
}) => {
|
|
9330
|
-
var
|
|
9428
|
+
var _a17, _b, _c;
|
|
9331
9429
|
async function doTransform({
|
|
9332
9430
|
params,
|
|
9333
9431
|
type
|
|
@@ -9336,7 +9434,7 @@ var doWrap = ({
|
|
|
9336
9434
|
}
|
|
9337
9435
|
return {
|
|
9338
9436
|
specificationVersion: "v2",
|
|
9339
|
-
provider: (
|
|
9437
|
+
provider: (_a17 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a17 : model.provider,
|
|
9340
9438
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
9341
9439
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
9342
9440
|
async doGenerate(params) {
|
|
@@ -9382,7 +9480,7 @@ function wrapProvider({
|
|
|
9382
9480
|
}
|
|
9383
9481
|
|
|
9384
9482
|
// src/registry/custom-provider.ts
|
|
9385
|
-
var
|
|
9483
|
+
var import_provider27 = require("@ai-sdk/provider");
|
|
9386
9484
|
function customProvider({
|
|
9387
9485
|
languageModels,
|
|
9388
9486
|
textEmbeddingModels,
|
|
@@ -9399,7 +9497,7 @@ function customProvider({
|
|
|
9399
9497
|
if (fallbackProvider) {
|
|
9400
9498
|
return fallbackProvider.languageModel(modelId);
|
|
9401
9499
|
}
|
|
9402
|
-
throw new
|
|
9500
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "languageModel" });
|
|
9403
9501
|
},
|
|
9404
9502
|
textEmbeddingModel(modelId) {
|
|
9405
9503
|
if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
|
|
@@ -9408,7 +9506,7 @@ function customProvider({
|
|
|
9408
9506
|
if (fallbackProvider) {
|
|
9409
9507
|
return fallbackProvider.textEmbeddingModel(modelId);
|
|
9410
9508
|
}
|
|
9411
|
-
throw new
|
|
9509
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
|
|
9412
9510
|
},
|
|
9413
9511
|
imageModel(modelId) {
|
|
9414
9512
|
if (imageModels != null && modelId in imageModels) {
|
|
@@ -9417,7 +9515,7 @@ function customProvider({
|
|
|
9417
9515
|
if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
|
|
9418
9516
|
return fallbackProvider.imageModel(modelId);
|
|
9419
9517
|
}
|
|
9420
|
-
throw new
|
|
9518
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "imageModel" });
|
|
9421
9519
|
},
|
|
9422
9520
|
transcriptionModel(modelId) {
|
|
9423
9521
|
if (transcriptionModels != null && modelId in transcriptionModels) {
|
|
@@ -9426,7 +9524,7 @@ function customProvider({
|
|
|
9426
9524
|
if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {
|
|
9427
9525
|
return fallbackProvider.transcriptionModel(modelId);
|
|
9428
9526
|
}
|
|
9429
|
-
throw new
|
|
9527
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
|
|
9430
9528
|
},
|
|
9431
9529
|
speechModel(modelId) {
|
|
9432
9530
|
if (speechModels != null && modelId in speechModels) {
|
|
@@ -9435,19 +9533,19 @@ function customProvider({
|
|
|
9435
9533
|
if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {
|
|
9436
9534
|
return fallbackProvider.speechModel(modelId);
|
|
9437
9535
|
}
|
|
9438
|
-
throw new
|
|
9536
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "speechModel" });
|
|
9439
9537
|
}
|
|
9440
9538
|
};
|
|
9441
9539
|
}
|
|
9442
9540
|
var experimental_customProvider = customProvider;
|
|
9443
9541
|
|
|
9444
9542
|
// src/registry/no-such-provider-error.ts
|
|
9445
|
-
var
|
|
9446
|
-
var
|
|
9447
|
-
var
|
|
9448
|
-
var
|
|
9449
|
-
var
|
|
9450
|
-
var NoSuchProviderError = class extends
|
|
9543
|
+
var import_provider28 = require("@ai-sdk/provider");
|
|
9544
|
+
var name16 = "AI_NoSuchProviderError";
|
|
9545
|
+
var marker16 = `vercel.ai.error.${name16}`;
|
|
9546
|
+
var symbol16 = Symbol.for(marker16);
|
|
9547
|
+
var _a16;
|
|
9548
|
+
var NoSuchProviderError = class extends import_provider28.NoSuchModelError {
|
|
9451
9549
|
constructor({
|
|
9452
9550
|
modelId,
|
|
9453
9551
|
modelType,
|
|
@@ -9455,19 +9553,19 @@ var NoSuchProviderError = class extends import_provider27.NoSuchModelError {
|
|
|
9455
9553
|
availableProviders,
|
|
9456
9554
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
|
9457
9555
|
}) {
|
|
9458
|
-
super({ errorName:
|
|
9459
|
-
this[
|
|
9556
|
+
super({ errorName: name16, modelId, modelType, message });
|
|
9557
|
+
this[_a16] = true;
|
|
9460
9558
|
this.providerId = providerId;
|
|
9461
9559
|
this.availableProviders = availableProviders;
|
|
9462
9560
|
}
|
|
9463
9561
|
static isInstance(error) {
|
|
9464
|
-
return
|
|
9562
|
+
return import_provider28.AISDKError.hasMarker(error, marker16);
|
|
9465
9563
|
}
|
|
9466
9564
|
};
|
|
9467
|
-
|
|
9565
|
+
_a16 = symbol16;
|
|
9468
9566
|
|
|
9469
9567
|
// src/registry/provider-registry.ts
|
|
9470
|
-
var
|
|
9568
|
+
var import_provider29 = require("@ai-sdk/provider");
|
|
9471
9569
|
function createProviderRegistry(providers, {
|
|
9472
9570
|
separator = ":",
|
|
9473
9571
|
languageModelMiddleware
|
|
@@ -9512,7 +9610,7 @@ var DefaultProviderRegistry = class {
|
|
|
9512
9610
|
splitId(id, modelType) {
|
|
9513
9611
|
const index = id.indexOf(this.separator);
|
|
9514
9612
|
if (index === -1) {
|
|
9515
|
-
throw new
|
|
9613
|
+
throw new import_provider29.NoSuchModelError({
|
|
9516
9614
|
modelId: id,
|
|
9517
9615
|
modelType,
|
|
9518
9616
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
|
|
@@ -9521,14 +9619,14 @@ var DefaultProviderRegistry = class {
|
|
|
9521
9619
|
return [id.slice(0, index), id.slice(index + this.separator.length)];
|
|
9522
9620
|
}
|
|
9523
9621
|
languageModel(id) {
|
|
9524
|
-
var
|
|
9622
|
+
var _a17, _b;
|
|
9525
9623
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
|
9526
|
-
let model = (_b = (
|
|
9527
|
-
|
|
9624
|
+
let model = (_b = (_a17 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
|
|
9625
|
+
_a17,
|
|
9528
9626
|
modelId
|
|
9529
9627
|
);
|
|
9530
9628
|
if (model == null) {
|
|
9531
|
-
throw new
|
|
9629
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
|
9532
9630
|
}
|
|
9533
9631
|
if (this.languageModelMiddleware != null) {
|
|
9534
9632
|
model = wrapLanguageModel({
|
|
@@ -9539,12 +9637,12 @@ var DefaultProviderRegistry = class {
|
|
|
9539
9637
|
return model;
|
|
9540
9638
|
}
|
|
9541
9639
|
textEmbeddingModel(id) {
|
|
9542
|
-
var
|
|
9640
|
+
var _a17;
|
|
9543
9641
|
const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
|
|
9544
9642
|
const provider = this.getProvider(providerId, "textEmbeddingModel");
|
|
9545
|
-
const model = (
|
|
9643
|
+
const model = (_a17 = provider.textEmbeddingModel) == null ? void 0 : _a17.call(provider, modelId);
|
|
9546
9644
|
if (model == null) {
|
|
9547
|
-
throw new
|
|
9645
|
+
throw new import_provider29.NoSuchModelError({
|
|
9548
9646
|
modelId: id,
|
|
9549
9647
|
modelType: "textEmbeddingModel"
|
|
9550
9648
|
});
|
|
@@ -9552,22 +9650,22 @@ var DefaultProviderRegistry = class {
|
|
|
9552
9650
|
return model;
|
|
9553
9651
|
}
|
|
9554
9652
|
imageModel(id) {
|
|
9555
|
-
var
|
|
9653
|
+
var _a17;
|
|
9556
9654
|
const [providerId, modelId] = this.splitId(id, "imageModel");
|
|
9557
9655
|
const provider = this.getProvider(providerId, "imageModel");
|
|
9558
|
-
const model = (
|
|
9656
|
+
const model = (_a17 = provider.imageModel) == null ? void 0 : _a17.call(provider, modelId);
|
|
9559
9657
|
if (model == null) {
|
|
9560
|
-
throw new
|
|
9658
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "imageModel" });
|
|
9561
9659
|
}
|
|
9562
9660
|
return model;
|
|
9563
9661
|
}
|
|
9564
9662
|
transcriptionModel(id) {
|
|
9565
|
-
var
|
|
9663
|
+
var _a17;
|
|
9566
9664
|
const [providerId, modelId] = this.splitId(id, "transcriptionModel");
|
|
9567
9665
|
const provider = this.getProvider(providerId, "transcriptionModel");
|
|
9568
|
-
const model = (
|
|
9666
|
+
const model = (_a17 = provider.transcriptionModel) == null ? void 0 : _a17.call(provider, modelId);
|
|
9569
9667
|
if (model == null) {
|
|
9570
|
-
throw new
|
|
9668
|
+
throw new import_provider29.NoSuchModelError({
|
|
9571
9669
|
modelId: id,
|
|
9572
9670
|
modelType: "transcriptionModel"
|
|
9573
9671
|
});
|
|
@@ -9575,12 +9673,12 @@ var DefaultProviderRegistry = class {
|
|
|
9575
9673
|
return model;
|
|
9576
9674
|
}
|
|
9577
9675
|
speechModel(id) {
|
|
9578
|
-
var
|
|
9676
|
+
var _a17;
|
|
9579
9677
|
const [providerId, modelId] = this.splitId(id, "speechModel");
|
|
9580
9678
|
const provider = this.getProvider(providerId, "speechModel");
|
|
9581
|
-
const model = (
|
|
9679
|
+
const model = (_a17 = provider.speechModel) == null ? void 0 : _a17.call(provider, modelId);
|
|
9582
9680
|
if (model == null) {
|
|
9583
|
-
throw new
|
|
9681
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "speechModel" });
|
|
9584
9682
|
}
|
|
9585
9683
|
return model;
|
|
9586
9684
|
}
|
|
@@ -9590,8 +9688,8 @@ var DefaultProviderRegistry = class {
|
|
|
9590
9688
|
var import_provider_utils28 = require("@ai-sdk/provider-utils");
|
|
9591
9689
|
|
|
9592
9690
|
// src/error/no-transcript-generated-error.ts
|
|
9593
|
-
var
|
|
9594
|
-
var NoTranscriptGeneratedError = class extends
|
|
9691
|
+
var import_provider30 = require("@ai-sdk/provider");
|
|
9692
|
+
var NoTranscriptGeneratedError = class extends import_provider30.AISDKError {
|
|
9595
9693
|
constructor(options) {
|
|
9596
9694
|
super({
|
|
9597
9695
|
name: "AI_NoTranscriptGeneratedError",
|
|
@@ -9630,16 +9728,16 @@ async function transcribe({
|
|
|
9630
9728
|
const audioData = audio instanceof URL ? (await downloadFn({ url: audio, abortSignal })).data : convertDataContentToUint8Array(audio);
|
|
9631
9729
|
const result = await retry(
|
|
9632
9730
|
() => {
|
|
9633
|
-
var
|
|
9731
|
+
var _a17;
|
|
9634
9732
|
return model.doGenerate({
|
|
9635
9733
|
audio: audioData,
|
|
9636
9734
|
abortSignal,
|
|
9637
9735
|
headers: headersWithUserAgent,
|
|
9638
9736
|
providerOptions,
|
|
9639
|
-
mediaType: (
|
|
9737
|
+
mediaType: (_a17 = detectMediaType({
|
|
9640
9738
|
data: audioData,
|
|
9641
9739
|
signatures: audioMediaTypeSignatures
|
|
9642
|
-
})) != null ?
|
|
9740
|
+
})) != null ? _a17 : "audio/wav"
|
|
9643
9741
|
});
|
|
9644
9742
|
}
|
|
9645
9743
|
);
|
|
@@ -9659,14 +9757,14 @@ async function transcribe({
|
|
|
9659
9757
|
}
|
|
9660
9758
|
var DefaultTranscriptionResult = class {
|
|
9661
9759
|
constructor(options) {
|
|
9662
|
-
var
|
|
9760
|
+
var _a17;
|
|
9663
9761
|
this.text = options.text;
|
|
9664
9762
|
this.segments = options.segments;
|
|
9665
9763
|
this.language = options.language;
|
|
9666
9764
|
this.durationInSeconds = options.durationInSeconds;
|
|
9667
9765
|
this.warnings = options.warnings;
|
|
9668
9766
|
this.responses = options.responses;
|
|
9669
|
-
this.providerMetadata = (
|
|
9767
|
+
this.providerMetadata = (_a17 = options.providerMetadata) != null ? _a17 : {};
|
|
9670
9768
|
}
|
|
9671
9769
|
};
|
|
9672
9770
|
|
|
@@ -9705,7 +9803,7 @@ async function callCompletionApi({
|
|
|
9705
9803
|
onError,
|
|
9706
9804
|
fetch: fetch2 = getOriginalFetch()
|
|
9707
9805
|
}) {
|
|
9708
|
-
var
|
|
9806
|
+
var _a17;
|
|
9709
9807
|
try {
|
|
9710
9808
|
setLoading(true);
|
|
9711
9809
|
setError(void 0);
|
|
@@ -9733,7 +9831,7 @@ async function callCompletionApi({
|
|
|
9733
9831
|
});
|
|
9734
9832
|
if (!response.ok) {
|
|
9735
9833
|
throw new Error(
|
|
9736
|
-
(
|
|
9834
|
+
(_a17 = await response.text()) != null ? _a17 : "Failed to fetch the chat response."
|
|
9737
9835
|
);
|
|
9738
9836
|
}
|
|
9739
9837
|
if (!response.body) {
|
|
@@ -9817,12 +9915,12 @@ async function convertFileListToFileUIParts(files) {
|
|
|
9817
9915
|
}
|
|
9818
9916
|
return Promise.all(
|
|
9819
9917
|
Array.from(files).map(async (file) => {
|
|
9820
|
-
const { name:
|
|
9918
|
+
const { name: name17, type } = file;
|
|
9821
9919
|
const dataUrl = await new Promise((resolve2, reject) => {
|
|
9822
9920
|
const reader = new FileReader();
|
|
9823
9921
|
reader.onload = (readerEvent) => {
|
|
9824
|
-
var
|
|
9825
|
-
resolve2((
|
|
9922
|
+
var _a17;
|
|
9923
|
+
resolve2((_a17 = readerEvent.target) == null ? void 0 : _a17.result);
|
|
9826
9924
|
};
|
|
9827
9925
|
reader.onerror = (error) => reject(error);
|
|
9828
9926
|
reader.readAsDataURL(file);
|
|
@@ -9830,7 +9928,7 @@ async function convertFileListToFileUIParts(files) {
|
|
|
9830
9928
|
return {
|
|
9831
9929
|
type: "file",
|
|
9832
9930
|
mediaType: type,
|
|
9833
|
-
filename:
|
|
9931
|
+
filename: name17,
|
|
9834
9932
|
url: dataUrl
|
|
9835
9933
|
};
|
|
9836
9934
|
})
|
|
@@ -9870,7 +9968,7 @@ var HttpChatTransport = class {
|
|
|
9870
9968
|
abortSignal,
|
|
9871
9969
|
...options
|
|
9872
9970
|
}) {
|
|
9873
|
-
var
|
|
9971
|
+
var _a17, _b, _c, _d, _e;
|
|
9874
9972
|
const resolvedBody = await (0, import_provider_utils30.resolve)(this.body);
|
|
9875
9973
|
const resolvedHeaders = await (0, import_provider_utils30.resolve)(this.headers);
|
|
9876
9974
|
const resolvedCredentials = await (0, import_provider_utils30.resolve)(this.credentials);
|
|
@@ -9878,7 +9976,7 @@ var HttpChatTransport = class {
|
|
|
9878
9976
|
...(0, import_provider_utils30.normalizeHeaders)(resolvedHeaders),
|
|
9879
9977
|
...(0, import_provider_utils30.normalizeHeaders)(options.headers)
|
|
9880
9978
|
};
|
|
9881
|
-
const preparedRequest = await ((
|
|
9979
|
+
const preparedRequest = await ((_a17 = this.prepareSendMessagesRequest) == null ? void 0 : _a17.call(this, {
|
|
9882
9980
|
api: this.api,
|
|
9883
9981
|
id: options.chatId,
|
|
9884
9982
|
messages: options.messages,
|
|
@@ -9922,7 +10020,7 @@ var HttpChatTransport = class {
|
|
|
9922
10020
|
return this.processResponseStream(response.body);
|
|
9923
10021
|
}
|
|
9924
10022
|
async reconnectToStream(options) {
|
|
9925
|
-
var
|
|
10023
|
+
var _a17, _b, _c, _d;
|
|
9926
10024
|
const resolvedBody = await (0, import_provider_utils30.resolve)(this.body);
|
|
9927
10025
|
const resolvedHeaders = await (0, import_provider_utils30.resolve)(this.headers);
|
|
9928
10026
|
const resolvedCredentials = await (0, import_provider_utils30.resolve)(this.credentials);
|
|
@@ -9930,7 +10028,7 @@ var HttpChatTransport = class {
|
|
|
9930
10028
|
...(0, import_provider_utils30.normalizeHeaders)(resolvedHeaders),
|
|
9931
10029
|
...(0, import_provider_utils30.normalizeHeaders)(options.headers)
|
|
9932
10030
|
};
|
|
9933
|
-
const preparedRequest = await ((
|
|
10031
|
+
const preparedRequest = await ((_a17 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a17.call(this, {
|
|
9934
10032
|
api: this.api,
|
|
9935
10033
|
id: options.chatId,
|
|
9936
10034
|
body: { ...resolvedBody, ...options.body },
|
|
@@ -10026,11 +10124,11 @@ var AbstractChat = class {
|
|
|
10026
10124
|
* If a messageId is provided, the message will be replaced.
|
|
10027
10125
|
*/
|
|
10028
10126
|
this.sendMessage = async (message, options) => {
|
|
10029
|
-
var
|
|
10127
|
+
var _a17, _b, _c, _d;
|
|
10030
10128
|
if (message == null) {
|
|
10031
10129
|
await this.makeRequest({
|
|
10032
10130
|
trigger: "submit-message",
|
|
10033
|
-
messageId: (
|
|
10131
|
+
messageId: (_a17 = this.lastMessage) == null ? void 0 : _a17.id,
|
|
10034
10132
|
...options
|
|
10035
10133
|
});
|
|
10036
10134
|
return;
|
|
@@ -10292,14 +10390,14 @@ var AbstractChat = class {
|
|
|
10292
10390
|
messageId,
|
|
10293
10391
|
completionPromise
|
|
10294
10392
|
}) {
|
|
10295
|
-
var
|
|
10393
|
+
var _a17, _b;
|
|
10296
10394
|
if (trigger !== "resume-stream") {
|
|
10297
10395
|
this.resumableStreamState = void 0;
|
|
10298
10396
|
}
|
|
10299
10397
|
const abortController = new AbortController();
|
|
10300
10398
|
const activeResumeRequest = trigger === "resume-stream" ? { abortController, completionPromise } : void 0;
|
|
10301
10399
|
if (activeResumeRequest) {
|
|
10302
|
-
(
|
|
10400
|
+
(_a17 = this.activeResumeRequest) == null ? void 0 : _a17.abortController.abort();
|
|
10303
10401
|
this.activeResumeRequest = activeResumeRequest;
|
|
10304
10402
|
}
|
|
10305
10403
|
const isCurrentRequest = () => activeResumeRequest == null || this.activeResumeRequest === activeResumeRequest;
|
|
@@ -10496,10 +10594,10 @@ var AbstractChat = class {
|
|
|
10496
10594
|
if (!isAbort && !isError) {
|
|
10497
10595
|
await this.runAutomaticRequest(
|
|
10498
10596
|
() => {
|
|
10499
|
-
var
|
|
10597
|
+
var _a18;
|
|
10500
10598
|
return this.makeRequest({
|
|
10501
10599
|
trigger: "submit-message",
|
|
10502
|
-
messageId: (
|
|
10600
|
+
messageId: (_a18 = this.lastMessage) == null ? void 0 : _a18.id,
|
|
10503
10601
|
metadata,
|
|
10504
10602
|
headers,
|
|
10505
10603
|
body
|
|
@@ -10571,7 +10669,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
10571
10669
|
};
|
|
10572
10670
|
|
|
10573
10671
|
// src/ui/validate-ui-messages.ts
|
|
10574
|
-
var
|
|
10672
|
+
var import_provider31 = require("@ai-sdk/provider");
|
|
10575
10673
|
var import_provider_utils33 = require("@ai-sdk/provider-utils");
|
|
10576
10674
|
var import_v48 = require("zod/v4");
|
|
10577
10675
|
function isEmptyObject(value) {
|
|
@@ -10871,7 +10969,7 @@ async function safeValidateUIMessages({
|
|
|
10871
10969
|
if (!dataSchema) {
|
|
10872
10970
|
return {
|
|
10873
10971
|
success: false,
|
|
10874
|
-
error: new
|
|
10972
|
+
error: new import_provider31.TypeValidationError({
|
|
10875
10973
|
value: dataPart.data,
|
|
10876
10974
|
cause: `No data schema found for data part ${dataName}`
|
|
10877
10975
|
})
|
|
@@ -10900,7 +10998,7 @@ async function safeValidateUIMessages({
|
|
|
10900
10998
|
if (!tool2) {
|
|
10901
10999
|
return {
|
|
10902
11000
|
success: false,
|
|
10903
|
-
error: new
|
|
11001
|
+
error: new import_provider31.TypeValidationError({
|
|
10904
11002
|
value: toolPart.input,
|
|
10905
11003
|
cause: `No tool schema found for tool part ${toolName}`
|
|
10906
11004
|
})
|
|
@@ -11103,7 +11201,7 @@ function readUIMessageStream({
|
|
|
11103
11201
|
onError,
|
|
11104
11202
|
terminateOnError = false
|
|
11105
11203
|
}) {
|
|
11106
|
-
var
|
|
11204
|
+
var _a17;
|
|
11107
11205
|
let controller;
|
|
11108
11206
|
let hasErrored = false;
|
|
11109
11207
|
let isCancelled = false;
|
|
@@ -11118,7 +11216,7 @@ function readUIMessageStream({
|
|
|
11118
11216
|
}
|
|
11119
11217
|
});
|
|
11120
11218
|
const state = createStreamingUIMessageState({
|
|
11121
|
-
messageId: (
|
|
11219
|
+
messageId: (_a17 = message == null ? void 0 : message.id) != null ? _a17 : "",
|
|
11122
11220
|
lastMessage: message
|
|
11123
11221
|
});
|
|
11124
11222
|
const handleError = (error) => {
|
|
@@ -11190,6 +11288,7 @@ function readUIMessageStream({
|
|
|
11190
11288
|
TextStreamChatTransport,
|
|
11191
11289
|
TooManyEmbeddingValuesForCallError,
|
|
11192
11290
|
ToolCallRepairError,
|
|
11291
|
+
ToolChoiceViolationError,
|
|
11193
11292
|
TypeValidationError,
|
|
11194
11293
|
UI_MESSAGE_STREAM_HEADERS,
|
|
11195
11294
|
UnsupportedFunctionalityError,
|