ai 5.0.280 → 5.0.282
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 +16 -0
- package/dist/index.d.mts +60 -20
- package/dist/index.d.ts +60 -20
- package/dist/index.js +413 -345
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +351 -282
- 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.282" : "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
|
|
|
@@ -8981,7 +9048,7 @@ function pruneMessages({
|
|
|
8981
9048
|
|
|
8982
9049
|
// src/generate-text/smooth-stream.ts
|
|
8983
9050
|
var import_provider_utils27 = require("@ai-sdk/provider-utils");
|
|
8984
|
-
var
|
|
9051
|
+
var import_provider26 = require("@ai-sdk/provider");
|
|
8985
9052
|
var CHUNKING_REGEXPS = {
|
|
8986
9053
|
word: /\S+\s+/m,
|
|
8987
9054
|
line: /\n+/m
|
|
@@ -9014,7 +9081,7 @@ function smoothStream({
|
|
|
9014
9081
|
} else {
|
|
9015
9082
|
const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
|
9016
9083
|
if (chunkingRegex == null) {
|
|
9017
|
-
throw new
|
|
9084
|
+
throw new import_provider26.InvalidArgumentError({
|
|
9018
9085
|
argument: "chunking",
|
|
9019
9086
|
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
|
9020
9087
|
});
|
|
@@ -9358,7 +9425,7 @@ var doWrap = ({
|
|
|
9358
9425
|
modelId,
|
|
9359
9426
|
providerId
|
|
9360
9427
|
}) => {
|
|
9361
|
-
var
|
|
9428
|
+
var _a17, _b, _c;
|
|
9362
9429
|
async function doTransform({
|
|
9363
9430
|
params,
|
|
9364
9431
|
type
|
|
@@ -9367,7 +9434,7 @@ var doWrap = ({
|
|
|
9367
9434
|
}
|
|
9368
9435
|
return {
|
|
9369
9436
|
specificationVersion: "v2",
|
|
9370
|
-
provider: (
|
|
9437
|
+
provider: (_a17 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a17 : model.provider,
|
|
9371
9438
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
9372
9439
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
9373
9440
|
async doGenerate(params) {
|
|
@@ -9413,7 +9480,7 @@ function wrapProvider({
|
|
|
9413
9480
|
}
|
|
9414
9481
|
|
|
9415
9482
|
// src/registry/custom-provider.ts
|
|
9416
|
-
var
|
|
9483
|
+
var import_provider27 = require("@ai-sdk/provider");
|
|
9417
9484
|
function customProvider({
|
|
9418
9485
|
languageModels,
|
|
9419
9486
|
textEmbeddingModels,
|
|
@@ -9430,7 +9497,7 @@ function customProvider({
|
|
|
9430
9497
|
if (fallbackProvider) {
|
|
9431
9498
|
return fallbackProvider.languageModel(modelId);
|
|
9432
9499
|
}
|
|
9433
|
-
throw new
|
|
9500
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "languageModel" });
|
|
9434
9501
|
},
|
|
9435
9502
|
textEmbeddingModel(modelId) {
|
|
9436
9503
|
if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
|
|
@@ -9439,7 +9506,7 @@ function customProvider({
|
|
|
9439
9506
|
if (fallbackProvider) {
|
|
9440
9507
|
return fallbackProvider.textEmbeddingModel(modelId);
|
|
9441
9508
|
}
|
|
9442
|
-
throw new
|
|
9509
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
|
|
9443
9510
|
},
|
|
9444
9511
|
imageModel(modelId) {
|
|
9445
9512
|
if (imageModels != null && modelId in imageModels) {
|
|
@@ -9448,7 +9515,7 @@ function customProvider({
|
|
|
9448
9515
|
if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
|
|
9449
9516
|
return fallbackProvider.imageModel(modelId);
|
|
9450
9517
|
}
|
|
9451
|
-
throw new
|
|
9518
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "imageModel" });
|
|
9452
9519
|
},
|
|
9453
9520
|
transcriptionModel(modelId) {
|
|
9454
9521
|
if (transcriptionModels != null && modelId in transcriptionModels) {
|
|
@@ -9457,7 +9524,7 @@ function customProvider({
|
|
|
9457
9524
|
if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {
|
|
9458
9525
|
return fallbackProvider.transcriptionModel(modelId);
|
|
9459
9526
|
}
|
|
9460
|
-
throw new
|
|
9527
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
|
|
9461
9528
|
},
|
|
9462
9529
|
speechModel(modelId) {
|
|
9463
9530
|
if (speechModels != null && modelId in speechModels) {
|
|
@@ -9466,19 +9533,19 @@ function customProvider({
|
|
|
9466
9533
|
if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {
|
|
9467
9534
|
return fallbackProvider.speechModel(modelId);
|
|
9468
9535
|
}
|
|
9469
|
-
throw new
|
|
9536
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "speechModel" });
|
|
9470
9537
|
}
|
|
9471
9538
|
};
|
|
9472
9539
|
}
|
|
9473
9540
|
var experimental_customProvider = customProvider;
|
|
9474
9541
|
|
|
9475
9542
|
// src/registry/no-such-provider-error.ts
|
|
9476
|
-
var
|
|
9477
|
-
var
|
|
9478
|
-
var
|
|
9479
|
-
var
|
|
9480
|
-
var
|
|
9481
|
-
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 {
|
|
9482
9549
|
constructor({
|
|
9483
9550
|
modelId,
|
|
9484
9551
|
modelType,
|
|
@@ -9486,19 +9553,19 @@ var NoSuchProviderError = class extends import_provider27.NoSuchModelError {
|
|
|
9486
9553
|
availableProviders,
|
|
9487
9554
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
|
9488
9555
|
}) {
|
|
9489
|
-
super({ errorName:
|
|
9490
|
-
this[
|
|
9556
|
+
super({ errorName: name16, modelId, modelType, message });
|
|
9557
|
+
this[_a16] = true;
|
|
9491
9558
|
this.providerId = providerId;
|
|
9492
9559
|
this.availableProviders = availableProviders;
|
|
9493
9560
|
}
|
|
9494
9561
|
static isInstance(error) {
|
|
9495
|
-
return
|
|
9562
|
+
return import_provider28.AISDKError.hasMarker(error, marker16);
|
|
9496
9563
|
}
|
|
9497
9564
|
};
|
|
9498
|
-
|
|
9565
|
+
_a16 = symbol16;
|
|
9499
9566
|
|
|
9500
9567
|
// src/registry/provider-registry.ts
|
|
9501
|
-
var
|
|
9568
|
+
var import_provider29 = require("@ai-sdk/provider");
|
|
9502
9569
|
function createProviderRegistry(providers, {
|
|
9503
9570
|
separator = ":",
|
|
9504
9571
|
languageModelMiddleware
|
|
@@ -9543,7 +9610,7 @@ var DefaultProviderRegistry = class {
|
|
|
9543
9610
|
splitId(id, modelType) {
|
|
9544
9611
|
const index = id.indexOf(this.separator);
|
|
9545
9612
|
if (index === -1) {
|
|
9546
|
-
throw new
|
|
9613
|
+
throw new import_provider29.NoSuchModelError({
|
|
9547
9614
|
modelId: id,
|
|
9548
9615
|
modelType,
|
|
9549
9616
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
|
|
@@ -9552,14 +9619,14 @@ var DefaultProviderRegistry = class {
|
|
|
9552
9619
|
return [id.slice(0, index), id.slice(index + this.separator.length)];
|
|
9553
9620
|
}
|
|
9554
9621
|
languageModel(id) {
|
|
9555
|
-
var
|
|
9622
|
+
var _a17, _b;
|
|
9556
9623
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
|
9557
|
-
let model = (_b = (
|
|
9558
|
-
|
|
9624
|
+
let model = (_b = (_a17 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
|
|
9625
|
+
_a17,
|
|
9559
9626
|
modelId
|
|
9560
9627
|
);
|
|
9561
9628
|
if (model == null) {
|
|
9562
|
-
throw new
|
|
9629
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
|
9563
9630
|
}
|
|
9564
9631
|
if (this.languageModelMiddleware != null) {
|
|
9565
9632
|
model = wrapLanguageModel({
|
|
@@ -9570,12 +9637,12 @@ var DefaultProviderRegistry = class {
|
|
|
9570
9637
|
return model;
|
|
9571
9638
|
}
|
|
9572
9639
|
textEmbeddingModel(id) {
|
|
9573
|
-
var
|
|
9640
|
+
var _a17;
|
|
9574
9641
|
const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
|
|
9575
9642
|
const provider = this.getProvider(providerId, "textEmbeddingModel");
|
|
9576
|
-
const model = (
|
|
9643
|
+
const model = (_a17 = provider.textEmbeddingModel) == null ? void 0 : _a17.call(provider, modelId);
|
|
9577
9644
|
if (model == null) {
|
|
9578
|
-
throw new
|
|
9645
|
+
throw new import_provider29.NoSuchModelError({
|
|
9579
9646
|
modelId: id,
|
|
9580
9647
|
modelType: "textEmbeddingModel"
|
|
9581
9648
|
});
|
|
@@ -9583,22 +9650,22 @@ var DefaultProviderRegistry = class {
|
|
|
9583
9650
|
return model;
|
|
9584
9651
|
}
|
|
9585
9652
|
imageModel(id) {
|
|
9586
|
-
var
|
|
9653
|
+
var _a17;
|
|
9587
9654
|
const [providerId, modelId] = this.splitId(id, "imageModel");
|
|
9588
9655
|
const provider = this.getProvider(providerId, "imageModel");
|
|
9589
|
-
const model = (
|
|
9656
|
+
const model = (_a17 = provider.imageModel) == null ? void 0 : _a17.call(provider, modelId);
|
|
9590
9657
|
if (model == null) {
|
|
9591
|
-
throw new
|
|
9658
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "imageModel" });
|
|
9592
9659
|
}
|
|
9593
9660
|
return model;
|
|
9594
9661
|
}
|
|
9595
9662
|
transcriptionModel(id) {
|
|
9596
|
-
var
|
|
9663
|
+
var _a17;
|
|
9597
9664
|
const [providerId, modelId] = this.splitId(id, "transcriptionModel");
|
|
9598
9665
|
const provider = this.getProvider(providerId, "transcriptionModel");
|
|
9599
|
-
const model = (
|
|
9666
|
+
const model = (_a17 = provider.transcriptionModel) == null ? void 0 : _a17.call(provider, modelId);
|
|
9600
9667
|
if (model == null) {
|
|
9601
|
-
throw new
|
|
9668
|
+
throw new import_provider29.NoSuchModelError({
|
|
9602
9669
|
modelId: id,
|
|
9603
9670
|
modelType: "transcriptionModel"
|
|
9604
9671
|
});
|
|
@@ -9606,12 +9673,12 @@ var DefaultProviderRegistry = class {
|
|
|
9606
9673
|
return model;
|
|
9607
9674
|
}
|
|
9608
9675
|
speechModel(id) {
|
|
9609
|
-
var
|
|
9676
|
+
var _a17;
|
|
9610
9677
|
const [providerId, modelId] = this.splitId(id, "speechModel");
|
|
9611
9678
|
const provider = this.getProvider(providerId, "speechModel");
|
|
9612
|
-
const model = (
|
|
9679
|
+
const model = (_a17 = provider.speechModel) == null ? void 0 : _a17.call(provider, modelId);
|
|
9613
9680
|
if (model == null) {
|
|
9614
|
-
throw new
|
|
9681
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "speechModel" });
|
|
9615
9682
|
}
|
|
9616
9683
|
return model;
|
|
9617
9684
|
}
|
|
@@ -9621,8 +9688,8 @@ var DefaultProviderRegistry = class {
|
|
|
9621
9688
|
var import_provider_utils28 = require("@ai-sdk/provider-utils");
|
|
9622
9689
|
|
|
9623
9690
|
// src/error/no-transcript-generated-error.ts
|
|
9624
|
-
var
|
|
9625
|
-
var NoTranscriptGeneratedError = class extends
|
|
9691
|
+
var import_provider30 = require("@ai-sdk/provider");
|
|
9692
|
+
var NoTranscriptGeneratedError = class extends import_provider30.AISDKError {
|
|
9626
9693
|
constructor(options) {
|
|
9627
9694
|
super({
|
|
9628
9695
|
name: "AI_NoTranscriptGeneratedError",
|
|
@@ -9661,16 +9728,16 @@ async function transcribe({
|
|
|
9661
9728
|
const audioData = audio instanceof URL ? (await downloadFn({ url: audio, abortSignal })).data : convertDataContentToUint8Array(audio);
|
|
9662
9729
|
const result = await retry(
|
|
9663
9730
|
() => {
|
|
9664
|
-
var
|
|
9731
|
+
var _a17;
|
|
9665
9732
|
return model.doGenerate({
|
|
9666
9733
|
audio: audioData,
|
|
9667
9734
|
abortSignal,
|
|
9668
9735
|
headers: headersWithUserAgent,
|
|
9669
9736
|
providerOptions,
|
|
9670
|
-
mediaType: (
|
|
9737
|
+
mediaType: (_a17 = detectMediaType({
|
|
9671
9738
|
data: audioData,
|
|
9672
9739
|
signatures: audioMediaTypeSignatures
|
|
9673
|
-
})) != null ?
|
|
9740
|
+
})) != null ? _a17 : "audio/wav"
|
|
9674
9741
|
});
|
|
9675
9742
|
}
|
|
9676
9743
|
);
|
|
@@ -9690,14 +9757,14 @@ async function transcribe({
|
|
|
9690
9757
|
}
|
|
9691
9758
|
var DefaultTranscriptionResult = class {
|
|
9692
9759
|
constructor(options) {
|
|
9693
|
-
var
|
|
9760
|
+
var _a17;
|
|
9694
9761
|
this.text = options.text;
|
|
9695
9762
|
this.segments = options.segments;
|
|
9696
9763
|
this.language = options.language;
|
|
9697
9764
|
this.durationInSeconds = options.durationInSeconds;
|
|
9698
9765
|
this.warnings = options.warnings;
|
|
9699
9766
|
this.responses = options.responses;
|
|
9700
|
-
this.providerMetadata = (
|
|
9767
|
+
this.providerMetadata = (_a17 = options.providerMetadata) != null ? _a17 : {};
|
|
9701
9768
|
}
|
|
9702
9769
|
};
|
|
9703
9770
|
|
|
@@ -9736,7 +9803,7 @@ async function callCompletionApi({
|
|
|
9736
9803
|
onError,
|
|
9737
9804
|
fetch: fetch2 = getOriginalFetch()
|
|
9738
9805
|
}) {
|
|
9739
|
-
var
|
|
9806
|
+
var _a17;
|
|
9740
9807
|
try {
|
|
9741
9808
|
setLoading(true);
|
|
9742
9809
|
setError(void 0);
|
|
@@ -9764,7 +9831,7 @@ async function callCompletionApi({
|
|
|
9764
9831
|
});
|
|
9765
9832
|
if (!response.ok) {
|
|
9766
9833
|
throw new Error(
|
|
9767
|
-
(
|
|
9834
|
+
(_a17 = await response.text()) != null ? _a17 : "Failed to fetch the chat response."
|
|
9768
9835
|
);
|
|
9769
9836
|
}
|
|
9770
9837
|
if (!response.body) {
|
|
@@ -9848,12 +9915,12 @@ async function convertFileListToFileUIParts(files) {
|
|
|
9848
9915
|
}
|
|
9849
9916
|
return Promise.all(
|
|
9850
9917
|
Array.from(files).map(async (file) => {
|
|
9851
|
-
const { name:
|
|
9918
|
+
const { name: name17, type } = file;
|
|
9852
9919
|
const dataUrl = await new Promise((resolve2, reject) => {
|
|
9853
9920
|
const reader = new FileReader();
|
|
9854
9921
|
reader.onload = (readerEvent) => {
|
|
9855
|
-
var
|
|
9856
|
-
resolve2((
|
|
9922
|
+
var _a17;
|
|
9923
|
+
resolve2((_a17 = readerEvent.target) == null ? void 0 : _a17.result);
|
|
9857
9924
|
};
|
|
9858
9925
|
reader.onerror = (error) => reject(error);
|
|
9859
9926
|
reader.readAsDataURL(file);
|
|
@@ -9861,7 +9928,7 @@ async function convertFileListToFileUIParts(files) {
|
|
|
9861
9928
|
return {
|
|
9862
9929
|
type: "file",
|
|
9863
9930
|
mediaType: type,
|
|
9864
|
-
filename:
|
|
9931
|
+
filename: name17,
|
|
9865
9932
|
url: dataUrl
|
|
9866
9933
|
};
|
|
9867
9934
|
})
|
|
@@ -9901,7 +9968,7 @@ var HttpChatTransport = class {
|
|
|
9901
9968
|
abortSignal,
|
|
9902
9969
|
...options
|
|
9903
9970
|
}) {
|
|
9904
|
-
var
|
|
9971
|
+
var _a17, _b, _c, _d, _e;
|
|
9905
9972
|
const resolvedBody = await (0, import_provider_utils30.resolve)(this.body);
|
|
9906
9973
|
const resolvedHeaders = await (0, import_provider_utils30.resolve)(this.headers);
|
|
9907
9974
|
const resolvedCredentials = await (0, import_provider_utils30.resolve)(this.credentials);
|
|
@@ -9909,7 +9976,7 @@ var HttpChatTransport = class {
|
|
|
9909
9976
|
...(0, import_provider_utils30.normalizeHeaders)(resolvedHeaders),
|
|
9910
9977
|
...(0, import_provider_utils30.normalizeHeaders)(options.headers)
|
|
9911
9978
|
};
|
|
9912
|
-
const preparedRequest = await ((
|
|
9979
|
+
const preparedRequest = await ((_a17 = this.prepareSendMessagesRequest) == null ? void 0 : _a17.call(this, {
|
|
9913
9980
|
api: this.api,
|
|
9914
9981
|
id: options.chatId,
|
|
9915
9982
|
messages: options.messages,
|
|
@@ -9953,7 +10020,7 @@ var HttpChatTransport = class {
|
|
|
9953
10020
|
return this.processResponseStream(response.body);
|
|
9954
10021
|
}
|
|
9955
10022
|
async reconnectToStream(options) {
|
|
9956
|
-
var
|
|
10023
|
+
var _a17, _b, _c, _d;
|
|
9957
10024
|
const resolvedBody = await (0, import_provider_utils30.resolve)(this.body);
|
|
9958
10025
|
const resolvedHeaders = await (0, import_provider_utils30.resolve)(this.headers);
|
|
9959
10026
|
const resolvedCredentials = await (0, import_provider_utils30.resolve)(this.credentials);
|
|
@@ -9961,7 +10028,7 @@ var HttpChatTransport = class {
|
|
|
9961
10028
|
...(0, import_provider_utils30.normalizeHeaders)(resolvedHeaders),
|
|
9962
10029
|
...(0, import_provider_utils30.normalizeHeaders)(options.headers)
|
|
9963
10030
|
};
|
|
9964
|
-
const preparedRequest = await ((
|
|
10031
|
+
const preparedRequest = await ((_a17 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a17.call(this, {
|
|
9965
10032
|
api: this.api,
|
|
9966
10033
|
id: options.chatId,
|
|
9967
10034
|
body: { ...resolvedBody, ...options.body },
|
|
@@ -10057,11 +10124,11 @@ var AbstractChat = class {
|
|
|
10057
10124
|
* If a messageId is provided, the message will be replaced.
|
|
10058
10125
|
*/
|
|
10059
10126
|
this.sendMessage = async (message, options) => {
|
|
10060
|
-
var
|
|
10127
|
+
var _a17, _b, _c, _d;
|
|
10061
10128
|
if (message == null) {
|
|
10062
10129
|
await this.makeRequest({
|
|
10063
10130
|
trigger: "submit-message",
|
|
10064
|
-
messageId: (
|
|
10131
|
+
messageId: (_a17 = this.lastMessage) == null ? void 0 : _a17.id,
|
|
10065
10132
|
...options
|
|
10066
10133
|
});
|
|
10067
10134
|
return;
|
|
@@ -10323,14 +10390,14 @@ var AbstractChat = class {
|
|
|
10323
10390
|
messageId,
|
|
10324
10391
|
completionPromise
|
|
10325
10392
|
}) {
|
|
10326
|
-
var
|
|
10393
|
+
var _a17, _b;
|
|
10327
10394
|
if (trigger !== "resume-stream") {
|
|
10328
10395
|
this.resumableStreamState = void 0;
|
|
10329
10396
|
}
|
|
10330
10397
|
const abortController = new AbortController();
|
|
10331
10398
|
const activeResumeRequest = trigger === "resume-stream" ? { abortController, completionPromise } : void 0;
|
|
10332
10399
|
if (activeResumeRequest) {
|
|
10333
|
-
(
|
|
10400
|
+
(_a17 = this.activeResumeRequest) == null ? void 0 : _a17.abortController.abort();
|
|
10334
10401
|
this.activeResumeRequest = activeResumeRequest;
|
|
10335
10402
|
}
|
|
10336
10403
|
const isCurrentRequest = () => activeResumeRequest == null || this.activeResumeRequest === activeResumeRequest;
|
|
@@ -10527,10 +10594,10 @@ var AbstractChat = class {
|
|
|
10527
10594
|
if (!isAbort && !isError) {
|
|
10528
10595
|
await this.runAutomaticRequest(
|
|
10529
10596
|
() => {
|
|
10530
|
-
var
|
|
10597
|
+
var _a18;
|
|
10531
10598
|
return this.makeRequest({
|
|
10532
10599
|
trigger: "submit-message",
|
|
10533
|
-
messageId: (
|
|
10600
|
+
messageId: (_a18 = this.lastMessage) == null ? void 0 : _a18.id,
|
|
10534
10601
|
metadata,
|
|
10535
10602
|
headers,
|
|
10536
10603
|
body
|
|
@@ -10602,7 +10669,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
10602
10669
|
};
|
|
10603
10670
|
|
|
10604
10671
|
// src/ui/validate-ui-messages.ts
|
|
10605
|
-
var
|
|
10672
|
+
var import_provider31 = require("@ai-sdk/provider");
|
|
10606
10673
|
var import_provider_utils33 = require("@ai-sdk/provider-utils");
|
|
10607
10674
|
var import_v48 = require("zod/v4");
|
|
10608
10675
|
function isEmptyObject(value) {
|
|
@@ -10902,7 +10969,7 @@ async function safeValidateUIMessages({
|
|
|
10902
10969
|
if (!dataSchema) {
|
|
10903
10970
|
return {
|
|
10904
10971
|
success: false,
|
|
10905
|
-
error: new
|
|
10972
|
+
error: new import_provider31.TypeValidationError({
|
|
10906
10973
|
value: dataPart.data,
|
|
10907
10974
|
cause: `No data schema found for data part ${dataName}`
|
|
10908
10975
|
})
|
|
@@ -10931,7 +10998,7 @@ async function safeValidateUIMessages({
|
|
|
10931
10998
|
if (!tool2) {
|
|
10932
10999
|
return {
|
|
10933
11000
|
success: false,
|
|
10934
|
-
error: new
|
|
11001
|
+
error: new import_provider31.TypeValidationError({
|
|
10935
11002
|
value: toolPart.input,
|
|
10936
11003
|
cause: `No tool schema found for tool part ${toolName}`
|
|
10937
11004
|
})
|
|
@@ -11134,7 +11201,7 @@ function readUIMessageStream({
|
|
|
11134
11201
|
onError,
|
|
11135
11202
|
terminateOnError = false
|
|
11136
11203
|
}) {
|
|
11137
|
-
var
|
|
11204
|
+
var _a17;
|
|
11138
11205
|
let controller;
|
|
11139
11206
|
let hasErrored = false;
|
|
11140
11207
|
let isCancelled = false;
|
|
@@ -11149,7 +11216,7 @@ function readUIMessageStream({
|
|
|
11149
11216
|
}
|
|
11150
11217
|
});
|
|
11151
11218
|
const state = createStreamingUIMessageState({
|
|
11152
|
-
messageId: (
|
|
11219
|
+
messageId: (_a17 = message == null ? void 0 : message.id) != null ? _a17 : "",
|
|
11153
11220
|
lastMessage: message
|
|
11154
11221
|
});
|
|
11155
11222
|
const handleError = (error) => {
|
|
@@ -11221,6 +11288,7 @@ function readUIMessageStream({
|
|
|
11221
11288
|
TextStreamChatTransport,
|
|
11222
11289
|
TooManyEmbeddingValuesForCallError,
|
|
11223
11290
|
ToolCallRepairError,
|
|
11291
|
+
ToolChoiceViolationError,
|
|
11224
11292
|
TypeValidationError,
|
|
11225
11293
|
UI_MESSAGE_STREAM_HEADERS,
|
|
11226
11294
|
UnsupportedFunctionalityError,
|