ai 5.1.0-beta.2 → 5.1.0-beta.21
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 +159 -0
- package/README.md +128 -44
- package/dist/index.d.mts +229 -119
- package/dist/index.d.ts +229 -119
- package/dist/index.js +188 -124
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +144 -83
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +4 -4
- package/dist/internal/index.d.ts +4 -4
- package/dist/internal/index.js +10 -10
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +10 -10
- package/dist/internal/index.mjs.map +1 -1
- package/dist/test/index.d.mts +46 -46
- package/dist/test/index.d.ts +46 -46
- package/dist/test/index.js +19 -19
- package/dist/test/index.js.map +1 -1
- package/dist/test/index.mjs +15 -15
- package/dist/test/index.mjs.map +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -20,43 +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
|
+
Agent: () => Agent,
|
|
26
27
|
DefaultChatTransport: () => DefaultChatTransport,
|
|
27
28
|
DownloadError: () => DownloadError,
|
|
28
|
-
EmptyResponseBodyError: () =>
|
|
29
|
+
EmptyResponseBodyError: () => import_provider18.EmptyResponseBodyError,
|
|
29
30
|
Experimental_Agent: () => Agent,
|
|
30
31
|
HttpChatTransport: () => HttpChatTransport,
|
|
31
32
|
InvalidArgumentError: () => InvalidArgumentError,
|
|
32
33
|
InvalidDataContentError: () => InvalidDataContentError,
|
|
33
34
|
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
|
34
|
-
InvalidPromptError: () =>
|
|
35
|
-
InvalidResponseDataError: () =>
|
|
35
|
+
InvalidPromptError: () => import_provider18.InvalidPromptError,
|
|
36
|
+
InvalidResponseDataError: () => import_provider18.InvalidResponseDataError,
|
|
36
37
|
InvalidStreamPartError: () => InvalidStreamPartError,
|
|
37
38
|
InvalidToolInputError: () => InvalidToolInputError,
|
|
38
|
-
JSONParseError: () =>
|
|
39
|
+
JSONParseError: () => import_provider18.JSONParseError,
|
|
39
40
|
JsonToSseTransformStream: () => JsonToSseTransformStream,
|
|
40
|
-
LoadAPIKeyError: () =>
|
|
41
|
+
LoadAPIKeyError: () => import_provider18.LoadAPIKeyError,
|
|
41
42
|
MCPClientError: () => MCPClientError,
|
|
42
43
|
MessageConversionError: () => MessageConversionError,
|
|
43
|
-
NoContentGeneratedError: () =>
|
|
44
|
+
NoContentGeneratedError: () => import_provider18.NoContentGeneratedError,
|
|
44
45
|
NoImageGeneratedError: () => NoImageGeneratedError,
|
|
45
46
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
|
46
47
|
NoOutputGeneratedError: () => NoOutputGeneratedError,
|
|
47
48
|
NoOutputSpecifiedError: () => NoOutputSpecifiedError,
|
|
48
|
-
|
|
49
|
+
NoSpeechGeneratedError: () => NoSpeechGeneratedError,
|
|
50
|
+
NoSuchModelError: () => import_provider18.NoSuchModelError,
|
|
49
51
|
NoSuchProviderError: () => NoSuchProviderError,
|
|
50
52
|
NoSuchToolError: () => NoSuchToolError,
|
|
51
53
|
Output: () => output_exports,
|
|
52
54
|
RetryError: () => RetryError,
|
|
53
55
|
SerialJobExecutor: () => SerialJobExecutor,
|
|
54
56
|
TextStreamChatTransport: () => TextStreamChatTransport,
|
|
55
|
-
TooManyEmbeddingValuesForCallError: () =>
|
|
57
|
+
TooManyEmbeddingValuesForCallError: () => import_provider18.TooManyEmbeddingValuesForCallError,
|
|
56
58
|
ToolCallRepairError: () => ToolCallRepairError,
|
|
57
|
-
TypeValidationError: () =>
|
|
59
|
+
TypeValidationError: () => import_provider18.TypeValidationError,
|
|
58
60
|
UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
|
|
59
|
-
UnsupportedFunctionalityError: () =>
|
|
61
|
+
UnsupportedFunctionalityError: () => import_provider18.UnsupportedFunctionalityError,
|
|
60
62
|
UnsupportedModelVersionError: () => UnsupportedModelVersionError,
|
|
61
63
|
asSchema: () => import_provider_utils35.asSchema,
|
|
62
64
|
assistantModelMessageSchema: () => assistantModelMessageSchema,
|
|
@@ -103,6 +105,7 @@ __export(src_exports, {
|
|
|
103
105
|
jsonSchema: () => import_provider_utils35.jsonSchema,
|
|
104
106
|
lastAssistantMessageIsCompleteWithToolCalls: () => lastAssistantMessageIsCompleteWithToolCalls,
|
|
105
107
|
modelMessageSchema: () => modelMessageSchema,
|
|
108
|
+
parseJsonEventStream: () => import_provider_utils35.parseJsonEventStream,
|
|
106
109
|
parsePartialJson: () => parsePartialJson,
|
|
107
110
|
pipeTextStreamToResponse: () => pipeTextStreamToResponse,
|
|
108
111
|
pipeUIMessageStreamToResponse: () => pipeUIMessageStreamToResponse,
|
|
@@ -117,6 +120,7 @@ __export(src_exports, {
|
|
|
117
120
|
systemModelMessageSchema: () => systemModelMessageSchema,
|
|
118
121
|
tool: () => import_provider_utils35.tool,
|
|
119
122
|
toolModelMessageSchema: () => toolModelMessageSchema,
|
|
123
|
+
uiMessageChunkSchema: () => uiMessageChunkSchema,
|
|
120
124
|
userModelMessageSchema: () => userModelMessageSchema,
|
|
121
125
|
validateUIMessages: () => validateUIMessages,
|
|
122
126
|
wrapLanguageModel: () => wrapLanguageModel,
|
|
@@ -202,7 +206,7 @@ var logWarnings = (warnings) => {
|
|
|
202
206
|
var import_gateway = require("@ai-sdk/gateway");
|
|
203
207
|
|
|
204
208
|
// src/error/index.ts
|
|
205
|
-
var
|
|
209
|
+
var import_provider18 = require("@ai-sdk/provider");
|
|
206
210
|
|
|
207
211
|
// src/error/invalid-argument-error.ts
|
|
208
212
|
var import_provider2 = require("@ai-sdk/provider");
|
|
@@ -367,13 +371,25 @@ var NoOutputGeneratedError = class extends import_provider8.AISDKError {
|
|
|
367
371
|
};
|
|
368
372
|
_a8 = symbol8;
|
|
369
373
|
|
|
370
|
-
// src/error/no-
|
|
374
|
+
// src/error/no-speech-generated-error.ts
|
|
371
375
|
var import_provider9 = require("@ai-sdk/provider");
|
|
376
|
+
var NoSpeechGeneratedError = class extends import_provider9.AISDKError {
|
|
377
|
+
constructor(options) {
|
|
378
|
+
super({
|
|
379
|
+
name: "AI_NoSpeechGeneratedError",
|
|
380
|
+
message: "No speech audio generated."
|
|
381
|
+
});
|
|
382
|
+
this.responses = options.responses;
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
|
|
386
|
+
// src/error/no-such-tool-error.ts
|
|
387
|
+
var import_provider10 = require("@ai-sdk/provider");
|
|
372
388
|
var name9 = "AI_NoSuchToolError";
|
|
373
389
|
var marker9 = `vercel.ai.error.${name9}`;
|
|
374
390
|
var symbol9 = Symbol.for(marker9);
|
|
375
391
|
var _a9;
|
|
376
|
-
var NoSuchToolError = class extends
|
|
392
|
+
var NoSuchToolError = class extends import_provider10.AISDKError {
|
|
377
393
|
constructor({
|
|
378
394
|
toolName,
|
|
379
395
|
availableTools = void 0,
|
|
@@ -385,36 +401,36 @@ var NoSuchToolError = class extends import_provider9.AISDKError {
|
|
|
385
401
|
this.availableTools = availableTools;
|
|
386
402
|
}
|
|
387
403
|
static isInstance(error) {
|
|
388
|
-
return
|
|
404
|
+
return import_provider10.AISDKError.hasMarker(error, marker9);
|
|
389
405
|
}
|
|
390
406
|
};
|
|
391
407
|
_a9 = symbol9;
|
|
392
408
|
|
|
393
409
|
// src/error/tool-call-repair-error.ts
|
|
394
|
-
var
|
|
410
|
+
var import_provider11 = require("@ai-sdk/provider");
|
|
395
411
|
var name10 = "AI_ToolCallRepairError";
|
|
396
412
|
var marker10 = `vercel.ai.error.${name10}`;
|
|
397
413
|
var symbol10 = Symbol.for(marker10);
|
|
398
414
|
var _a10;
|
|
399
|
-
var ToolCallRepairError = class extends
|
|
415
|
+
var ToolCallRepairError = class extends import_provider11.AISDKError {
|
|
400
416
|
constructor({
|
|
401
417
|
cause,
|
|
402
418
|
originalError,
|
|
403
|
-
message = `Error repairing tool call: ${(0,
|
|
419
|
+
message = `Error repairing tool call: ${(0, import_provider11.getErrorMessage)(cause)}`
|
|
404
420
|
}) {
|
|
405
421
|
super({ name: name10, message, cause });
|
|
406
422
|
this[_a10] = true;
|
|
407
423
|
this.originalError = originalError;
|
|
408
424
|
}
|
|
409
425
|
static isInstance(error) {
|
|
410
|
-
return
|
|
426
|
+
return import_provider11.AISDKError.hasMarker(error, marker10);
|
|
411
427
|
}
|
|
412
428
|
};
|
|
413
429
|
_a10 = symbol10;
|
|
414
430
|
|
|
415
431
|
// src/error/unsupported-model-version-error.ts
|
|
416
|
-
var
|
|
417
|
-
var UnsupportedModelVersionError = class extends
|
|
432
|
+
var import_provider12 = require("@ai-sdk/provider");
|
|
433
|
+
var UnsupportedModelVersionError = class extends import_provider12.AISDKError {
|
|
418
434
|
constructor(options) {
|
|
419
435
|
super({
|
|
420
436
|
name: "AI_UnsupportedModelVersionError",
|
|
@@ -427,12 +443,12 @@ var UnsupportedModelVersionError = class extends import_provider11.AISDKError {
|
|
|
427
443
|
};
|
|
428
444
|
|
|
429
445
|
// src/prompt/invalid-data-content-error.ts
|
|
430
|
-
var
|
|
446
|
+
var import_provider13 = require("@ai-sdk/provider");
|
|
431
447
|
var name11 = "AI_InvalidDataContentError";
|
|
432
448
|
var marker11 = `vercel.ai.error.${name11}`;
|
|
433
449
|
var symbol11 = Symbol.for(marker11);
|
|
434
450
|
var _a11;
|
|
435
|
-
var InvalidDataContentError = class extends
|
|
451
|
+
var InvalidDataContentError = class extends import_provider13.AISDKError {
|
|
436
452
|
constructor({
|
|
437
453
|
content,
|
|
438
454
|
cause,
|
|
@@ -443,18 +459,18 @@ var InvalidDataContentError = class extends import_provider12.AISDKError {
|
|
|
443
459
|
this.content = content;
|
|
444
460
|
}
|
|
445
461
|
static isInstance(error) {
|
|
446
|
-
return
|
|
462
|
+
return import_provider13.AISDKError.hasMarker(error, marker11);
|
|
447
463
|
}
|
|
448
464
|
};
|
|
449
465
|
_a11 = symbol11;
|
|
450
466
|
|
|
451
467
|
// src/prompt/invalid-message-role-error.ts
|
|
452
|
-
var
|
|
468
|
+
var import_provider14 = require("@ai-sdk/provider");
|
|
453
469
|
var name12 = "AI_InvalidMessageRoleError";
|
|
454
470
|
var marker12 = `vercel.ai.error.${name12}`;
|
|
455
471
|
var symbol12 = Symbol.for(marker12);
|
|
456
472
|
var _a12;
|
|
457
|
-
var InvalidMessageRoleError = class extends
|
|
473
|
+
var InvalidMessageRoleError = class extends import_provider14.AISDKError {
|
|
458
474
|
constructor({
|
|
459
475
|
role,
|
|
460
476
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
@@ -464,18 +480,18 @@ var InvalidMessageRoleError = class extends import_provider13.AISDKError {
|
|
|
464
480
|
this.role = role;
|
|
465
481
|
}
|
|
466
482
|
static isInstance(error) {
|
|
467
|
-
return
|
|
483
|
+
return import_provider14.AISDKError.hasMarker(error, marker12);
|
|
468
484
|
}
|
|
469
485
|
};
|
|
470
486
|
_a12 = symbol12;
|
|
471
487
|
|
|
472
488
|
// src/prompt/message-conversion-error.ts
|
|
473
|
-
var
|
|
489
|
+
var import_provider15 = require("@ai-sdk/provider");
|
|
474
490
|
var name13 = "AI_MessageConversionError";
|
|
475
491
|
var marker13 = `vercel.ai.error.${name13}`;
|
|
476
492
|
var symbol13 = Symbol.for(marker13);
|
|
477
493
|
var _a13;
|
|
478
|
-
var MessageConversionError = class extends
|
|
494
|
+
var MessageConversionError = class extends import_provider15.AISDKError {
|
|
479
495
|
constructor({
|
|
480
496
|
originalMessage,
|
|
481
497
|
message
|
|
@@ -485,18 +501,18 @@ var MessageConversionError = class extends import_provider14.AISDKError {
|
|
|
485
501
|
this.originalMessage = originalMessage;
|
|
486
502
|
}
|
|
487
503
|
static isInstance(error) {
|
|
488
|
-
return
|
|
504
|
+
return import_provider15.AISDKError.hasMarker(error, marker13);
|
|
489
505
|
}
|
|
490
506
|
};
|
|
491
507
|
_a13 = symbol13;
|
|
492
508
|
|
|
493
509
|
// src/util/download/download-error.ts
|
|
494
|
-
var
|
|
510
|
+
var import_provider16 = require("@ai-sdk/provider");
|
|
495
511
|
var name14 = "AI_DownloadError";
|
|
496
512
|
var marker14 = `vercel.ai.error.${name14}`;
|
|
497
513
|
var symbol14 = Symbol.for(marker14);
|
|
498
514
|
var _a14;
|
|
499
|
-
var DownloadError = class extends
|
|
515
|
+
var DownloadError = class extends import_provider16.AISDKError {
|
|
500
516
|
constructor({
|
|
501
517
|
url,
|
|
502
518
|
statusCode,
|
|
@@ -511,18 +527,18 @@ var DownloadError = class extends import_provider15.AISDKError {
|
|
|
511
527
|
this.statusText = statusText;
|
|
512
528
|
}
|
|
513
529
|
static isInstance(error) {
|
|
514
|
-
return
|
|
530
|
+
return import_provider16.AISDKError.hasMarker(error, marker14);
|
|
515
531
|
}
|
|
516
532
|
};
|
|
517
533
|
_a14 = symbol14;
|
|
518
534
|
|
|
519
535
|
// src/util/retry-error.ts
|
|
520
|
-
var
|
|
536
|
+
var import_provider17 = require("@ai-sdk/provider");
|
|
521
537
|
var name15 = "AI_RetryError";
|
|
522
538
|
var marker15 = `vercel.ai.error.${name15}`;
|
|
523
539
|
var symbol15 = Symbol.for(marker15);
|
|
524
540
|
var _a15;
|
|
525
|
-
var RetryError = class extends
|
|
541
|
+
var RetryError = class extends import_provider17.AISDKError {
|
|
526
542
|
constructor({
|
|
527
543
|
message,
|
|
528
544
|
reason,
|
|
@@ -535,34 +551,60 @@ var RetryError = class extends import_provider16.AISDKError {
|
|
|
535
551
|
this.lastError = errors[errors.length - 1];
|
|
536
552
|
}
|
|
537
553
|
static isInstance(error) {
|
|
538
|
-
return
|
|
554
|
+
return import_provider17.AISDKError.hasMarker(error, marker15);
|
|
539
555
|
}
|
|
540
556
|
};
|
|
541
557
|
_a15 = symbol15;
|
|
542
558
|
|
|
543
559
|
// src/model/resolve-model.ts
|
|
560
|
+
function transformToV3LanguageModel(model) {
|
|
561
|
+
return new Proxy(model, {
|
|
562
|
+
get(target, prop) {
|
|
563
|
+
if (prop === "specificationVersion")
|
|
564
|
+
return "v3";
|
|
565
|
+
return target[prop];
|
|
566
|
+
}
|
|
567
|
+
});
|
|
568
|
+
}
|
|
569
|
+
function transformToV3EmbeddingModel(model) {
|
|
570
|
+
return new Proxy(model, {
|
|
571
|
+
get(target, prop) {
|
|
572
|
+
if (prop === "specificationVersion")
|
|
573
|
+
return "v3";
|
|
574
|
+
return target[prop];
|
|
575
|
+
}
|
|
576
|
+
});
|
|
577
|
+
}
|
|
544
578
|
function resolveLanguageModel(model) {
|
|
545
579
|
if (typeof model !== "string") {
|
|
546
|
-
if (model.specificationVersion !== "v2") {
|
|
580
|
+
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
581
|
+
const unsupportedModel = model;
|
|
547
582
|
throw new UnsupportedModelVersionError({
|
|
548
|
-
version:
|
|
549
|
-
provider:
|
|
550
|
-
modelId:
|
|
583
|
+
version: unsupportedModel.specificationVersion,
|
|
584
|
+
provider: unsupportedModel.provider,
|
|
585
|
+
modelId: unsupportedModel.modelId
|
|
551
586
|
});
|
|
552
587
|
}
|
|
588
|
+
if (model.specificationVersion === "v2") {
|
|
589
|
+
return transformToV3LanguageModel(model);
|
|
590
|
+
}
|
|
553
591
|
return model;
|
|
554
592
|
}
|
|
555
593
|
return getGlobalProvider().languageModel(model);
|
|
556
594
|
}
|
|
557
595
|
function resolveEmbeddingModel(model) {
|
|
558
596
|
if (typeof model !== "string") {
|
|
559
|
-
if (model.specificationVersion !== "v2") {
|
|
597
|
+
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
598
|
+
const unsupportedModel = model;
|
|
560
599
|
throw new UnsupportedModelVersionError({
|
|
561
|
-
version:
|
|
562
|
-
provider:
|
|
563
|
-
modelId:
|
|
600
|
+
version: unsupportedModel.specificationVersion,
|
|
601
|
+
provider: unsupportedModel.provider,
|
|
602
|
+
modelId: unsupportedModel.modelId
|
|
564
603
|
});
|
|
565
604
|
}
|
|
605
|
+
if (model.specificationVersion === "v2") {
|
|
606
|
+
return transformToV3EmbeddingModel(model);
|
|
607
|
+
}
|
|
566
608
|
return model;
|
|
567
609
|
}
|
|
568
610
|
return getGlobalProvider().textEmbeddingModel(
|
|
@@ -766,7 +808,7 @@ function detectMediaType({
|
|
|
766
808
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
767
809
|
|
|
768
810
|
// src/version.ts
|
|
769
|
-
var VERSION = true ? "5.1.0-beta.
|
|
811
|
+
var VERSION = true ? "5.1.0-beta.21" : "0.0.0-test";
|
|
770
812
|
|
|
771
813
|
// src/util/download/download.ts
|
|
772
814
|
var download = async ({ url }) => {
|
|
@@ -807,7 +849,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
|
|
|
807
849
|
);
|
|
808
850
|
|
|
809
851
|
// src/prompt/data-content.ts
|
|
810
|
-
var
|
|
852
|
+
var import_provider19 = require("@ai-sdk/provider");
|
|
811
853
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
812
854
|
var import_v4 = require("zod/v4");
|
|
813
855
|
|
|
@@ -841,7 +883,7 @@ var dataContentSchema = import_v4.z.union([
|
|
|
841
883
|
{ message: "Must be a Buffer" }
|
|
842
884
|
)
|
|
843
885
|
]);
|
|
844
|
-
function
|
|
886
|
+
function convertToLanguageModelV3DataContent(content) {
|
|
845
887
|
if (content instanceof Uint8Array) {
|
|
846
888
|
return { data: content, mediaType: void 0 };
|
|
847
889
|
}
|
|
@@ -859,7 +901,7 @@ function convertToLanguageModelV2DataContent(content) {
|
|
|
859
901
|
content.toString()
|
|
860
902
|
);
|
|
861
903
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
862
|
-
throw new
|
|
904
|
+
throw new import_provider19.AISDKError({
|
|
863
905
|
name: "InvalidDataContentError",
|
|
864
906
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
865
907
|
});
|
|
@@ -960,7 +1002,7 @@ function convertToLanguageModelMessage({
|
|
|
960
1002
|
const providerOptions = part.providerOptions;
|
|
961
1003
|
switch (part.type) {
|
|
962
1004
|
case "file": {
|
|
963
|
-
const { data, mediaType } =
|
|
1005
|
+
const { data, mediaType } = convertToLanguageModelV3DataContent(
|
|
964
1006
|
part.data
|
|
965
1007
|
);
|
|
966
1008
|
return {
|
|
@@ -1056,12 +1098,12 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1056
1098
|
}));
|
|
1057
1099
|
const downloadedFiles = await download2(plannedDownloads);
|
|
1058
1100
|
return Object.fromEntries(
|
|
1059
|
-
downloadedFiles.
|
|
1060
|
-
(
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1101
|
+
downloadedFiles.map(
|
|
1102
|
+
(file, index) => file == null ? null : [
|
|
1103
|
+
plannedDownloads[index].url.toString(),
|
|
1104
|
+
{ data: file.data, mediaType: file.mediaType }
|
|
1105
|
+
]
|
|
1106
|
+
).filter((file) => file != null)
|
|
1065
1107
|
);
|
|
1066
1108
|
}
|
|
1067
1109
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
@@ -1085,7 +1127,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1085
1127
|
default:
|
|
1086
1128
|
throw new Error(`Unsupported part type: ${type}`);
|
|
1087
1129
|
}
|
|
1088
|
-
const { data: convertedData, mediaType: convertedMediaType } =
|
|
1130
|
+
const { data: convertedData, mediaType: convertedMediaType } = convertToLanguageModelV3DataContent(originalData);
|
|
1089
1131
|
let mediaType = convertedMediaType != null ? convertedMediaType : part.mediaType;
|
|
1090
1132
|
let data = convertedData;
|
|
1091
1133
|
if (data instanceof URL) {
|
|
@@ -1272,7 +1314,7 @@ function prepareToolsAndToolChoice({
|
|
|
1272
1314
|
}
|
|
1273
1315
|
|
|
1274
1316
|
// src/prompt/standardize-prompt.ts
|
|
1275
|
-
var
|
|
1317
|
+
var import_provider20 = require("@ai-sdk/provider");
|
|
1276
1318
|
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
1277
1319
|
var import_v46 = require("zod/v4");
|
|
1278
1320
|
|
|
@@ -1428,19 +1470,19 @@ var coreMessageSchema = modelMessageSchema;
|
|
|
1428
1470
|
// src/prompt/standardize-prompt.ts
|
|
1429
1471
|
async function standardizePrompt(prompt) {
|
|
1430
1472
|
if (prompt.prompt == null && prompt.messages == null) {
|
|
1431
|
-
throw new
|
|
1473
|
+
throw new import_provider20.InvalidPromptError({
|
|
1432
1474
|
prompt,
|
|
1433
1475
|
message: "prompt or messages must be defined"
|
|
1434
1476
|
});
|
|
1435
1477
|
}
|
|
1436
1478
|
if (prompt.prompt != null && prompt.messages != null) {
|
|
1437
|
-
throw new
|
|
1479
|
+
throw new import_provider20.InvalidPromptError({
|
|
1438
1480
|
prompt,
|
|
1439
1481
|
message: "prompt and messages cannot be defined at the same time"
|
|
1440
1482
|
});
|
|
1441
1483
|
}
|
|
1442
1484
|
if (prompt.system != null && typeof prompt.system !== "string") {
|
|
1443
|
-
throw new
|
|
1485
|
+
throw new import_provider20.InvalidPromptError({
|
|
1444
1486
|
prompt,
|
|
1445
1487
|
message: "system must be a string"
|
|
1446
1488
|
});
|
|
@@ -1453,13 +1495,13 @@ async function standardizePrompt(prompt) {
|
|
|
1453
1495
|
} else if (prompt.messages != null) {
|
|
1454
1496
|
messages = prompt.messages;
|
|
1455
1497
|
} else {
|
|
1456
|
-
throw new
|
|
1498
|
+
throw new import_provider20.InvalidPromptError({
|
|
1457
1499
|
prompt,
|
|
1458
1500
|
message: "prompt or messages must be defined"
|
|
1459
1501
|
});
|
|
1460
1502
|
}
|
|
1461
1503
|
if (messages.length === 0) {
|
|
1462
|
-
throw new
|
|
1504
|
+
throw new import_provider20.InvalidPromptError({
|
|
1463
1505
|
prompt,
|
|
1464
1506
|
message: "messages must not be empty"
|
|
1465
1507
|
});
|
|
@@ -1469,7 +1511,7 @@ async function standardizePrompt(prompt) {
|
|
|
1469
1511
|
schema: import_v46.z.array(modelMessageSchema)
|
|
1470
1512
|
});
|
|
1471
1513
|
if (!validationResult.success) {
|
|
1472
|
-
throw new
|
|
1514
|
+
throw new import_provider20.InvalidPromptError({
|
|
1473
1515
|
prompt,
|
|
1474
1516
|
message: "The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",
|
|
1475
1517
|
cause: validationResult.error
|
|
@@ -1483,10 +1525,10 @@ async function standardizePrompt(prompt) {
|
|
|
1483
1525
|
|
|
1484
1526
|
// src/prompt/wrap-gateway-error.ts
|
|
1485
1527
|
var import_gateway2 = require("@ai-sdk/gateway");
|
|
1486
|
-
var
|
|
1528
|
+
var import_provider21 = require("@ai-sdk/provider");
|
|
1487
1529
|
function wrapGatewayError(error) {
|
|
1488
1530
|
if (import_gateway2.GatewayAuthenticationError.isInstance(error) || import_gateway2.GatewayModelNotFoundError.isInstance(error)) {
|
|
1489
|
-
return new
|
|
1531
|
+
return new import_provider21.AISDKError({
|
|
1490
1532
|
name: "GatewayError",
|
|
1491
1533
|
message: "Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @ai-sdk/openai, or register a different global default provider.",
|
|
1492
1534
|
cause: error
|
|
@@ -1732,7 +1774,7 @@ function asArray(value) {
|
|
|
1732
1774
|
}
|
|
1733
1775
|
|
|
1734
1776
|
// src/util/retry-with-exponential-backoff.ts
|
|
1735
|
-
var
|
|
1777
|
+
var import_provider22 = require("@ai-sdk/provider");
|
|
1736
1778
|
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
1737
1779
|
function getRetryDelayInMs({
|
|
1738
1780
|
error,
|
|
@@ -1799,7 +1841,7 @@ async function _retryWithExponentialBackoff(f, {
|
|
|
1799
1841
|
errors: newErrors
|
|
1800
1842
|
});
|
|
1801
1843
|
}
|
|
1802
|
-
if (error instanceof Error &&
|
|
1844
|
+
if (error instanceof Error && import_provider22.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
|
|
1803
1845
|
await (0, import_provider_utils7.delay)(
|
|
1804
1846
|
getRetryDelayInMs({
|
|
1805
1847
|
error,
|
|
@@ -2083,14 +2125,14 @@ async function isStopConditionMet({
|
|
|
2083
2125
|
}
|
|
2084
2126
|
|
|
2085
2127
|
// src/prompt/create-tool-model-output.ts
|
|
2086
|
-
var
|
|
2128
|
+
var import_provider23 = require("@ai-sdk/provider");
|
|
2087
2129
|
function createToolModelOutput({
|
|
2088
2130
|
output,
|
|
2089
2131
|
tool: tool3,
|
|
2090
2132
|
errorMode
|
|
2091
2133
|
}) {
|
|
2092
2134
|
if (errorMode === "text") {
|
|
2093
|
-
return { type: "error-text", value: (0,
|
|
2135
|
+
return { type: "error-text", value: (0, import_provider23.getErrorMessage)(output) };
|
|
2094
2136
|
} else if (errorMode === "json") {
|
|
2095
2137
|
return { type: "error-json", value: toJSONValue(output) };
|
|
2096
2138
|
}
|
|
@@ -2779,7 +2821,7 @@ function asContent({
|
|
|
2779
2821
|
}
|
|
2780
2822
|
|
|
2781
2823
|
// src/generate-text/stream-text.ts
|
|
2782
|
-
var
|
|
2824
|
+
var import_provider24 = require("@ai-sdk/provider");
|
|
2783
2825
|
var import_provider_utils14 = require("@ai-sdk/provider-utils");
|
|
2784
2826
|
|
|
2785
2827
|
// src/util/prepare-headers.ts
|
|
@@ -2988,11 +3030,6 @@ var uiMessageChunkSchema = import_v47.z.union([
|
|
|
2988
3030
|
providerExecuted: import_v47.z.boolean().optional(),
|
|
2989
3031
|
dynamic: import_v47.z.boolean().optional()
|
|
2990
3032
|
}),
|
|
2991
|
-
import_v47.z.strictObject({
|
|
2992
|
-
type: import_v47.z.literal("reasoning"),
|
|
2993
|
-
text: import_v47.z.string(),
|
|
2994
|
-
providerMetadata: providerMetadataSchema.optional()
|
|
2995
|
-
}),
|
|
2996
3033
|
import_v47.z.strictObject({
|
|
2997
3034
|
type: import_v47.z.literal("reasoning-start"),
|
|
2998
3035
|
id: import_v47.z.string(),
|
|
@@ -3009,9 +3046,6 @@ var uiMessageChunkSchema = import_v47.z.union([
|
|
|
3009
3046
|
id: import_v47.z.string(),
|
|
3010
3047
|
providerMetadata: providerMetadataSchema.optional()
|
|
3011
3048
|
}),
|
|
3012
|
-
import_v47.z.strictObject({
|
|
3013
|
-
type: import_v47.z.literal("reasoning-part-finish")
|
|
3014
|
-
}),
|
|
3015
3049
|
import_v47.z.strictObject({
|
|
3016
3050
|
type: import_v47.z.literal("source-url"),
|
|
3017
3051
|
sourceId: import_v47.z.string(),
|
|
@@ -3034,7 +3068,10 @@ var uiMessageChunkSchema = import_v47.z.union([
|
|
|
3034
3068
|
providerMetadata: providerMetadataSchema.optional()
|
|
3035
3069
|
}),
|
|
3036
3070
|
import_v47.z.strictObject({
|
|
3037
|
-
type: import_v47.z.
|
|
3071
|
+
type: import_v47.z.custom(
|
|
3072
|
+
(value) => typeof value === "string" && value.startsWith("data-"),
|
|
3073
|
+
{ message: 'Type must start with "data-"' }
|
|
3074
|
+
),
|
|
3038
3075
|
id: import_v47.z.string().optional(),
|
|
3039
3076
|
data: import_v47.z.unknown(),
|
|
3040
3077
|
transient: import_v47.z.boolean().optional()
|
|
@@ -4659,7 +4696,7 @@ var DefaultStreamTextResult = class {
|
|
|
4659
4696
|
let activeReasoningContent = {};
|
|
4660
4697
|
const eventProcessor = new TransformStream({
|
|
4661
4698
|
async transform(chunk, controller) {
|
|
4662
|
-
var _a17, _b, _c;
|
|
4699
|
+
var _a17, _b, _c, _d;
|
|
4663
4700
|
controller.enqueue(chunk);
|
|
4664
4701
|
const { part } = chunk;
|
|
4665
4702
|
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") {
|
|
@@ -4692,6 +4729,18 @@ var DefaultStreamTextResult = class {
|
|
|
4692
4729
|
activeText.providerMetadata = (_a17 = part.providerMetadata) != null ? _a17 : activeText.providerMetadata;
|
|
4693
4730
|
}
|
|
4694
4731
|
if (part.type === "text-end") {
|
|
4732
|
+
const activeText = activeTextContent[part.id];
|
|
4733
|
+
if (activeText == null) {
|
|
4734
|
+
controller.enqueue({
|
|
4735
|
+
part: {
|
|
4736
|
+
type: "error",
|
|
4737
|
+
error: `text part ${part.id} not found`
|
|
4738
|
+
},
|
|
4739
|
+
partialOutput: void 0
|
|
4740
|
+
});
|
|
4741
|
+
return;
|
|
4742
|
+
}
|
|
4743
|
+
activeText.providerMetadata = (_b = part.providerMetadata) != null ? _b : activeText.providerMetadata;
|
|
4695
4744
|
delete activeTextContent[part.id];
|
|
4696
4745
|
}
|
|
4697
4746
|
if (part.type === "reasoning-start") {
|
|
@@ -4715,7 +4764,7 @@ var DefaultStreamTextResult = class {
|
|
|
4715
4764
|
return;
|
|
4716
4765
|
}
|
|
4717
4766
|
activeReasoning.text += part.text;
|
|
4718
|
-
activeReasoning.providerMetadata = (
|
|
4767
|
+
activeReasoning.providerMetadata = (_c = part.providerMetadata) != null ? _c : activeReasoning.providerMetadata;
|
|
4719
4768
|
}
|
|
4720
4769
|
if (part.type === "reasoning-end") {
|
|
4721
4770
|
const activeReasoning = activeReasoningContent[part.id];
|
|
@@ -4729,7 +4778,7 @@ var DefaultStreamTextResult = class {
|
|
|
4729
4778
|
});
|
|
4730
4779
|
return;
|
|
4731
4780
|
}
|
|
4732
|
-
activeReasoning.providerMetadata = (
|
|
4781
|
+
activeReasoning.providerMetadata = (_d = part.providerMetadata) != null ? _d : activeReasoning.providerMetadata;
|
|
4733
4782
|
delete activeReasoningContent[part.id];
|
|
4734
4783
|
}
|
|
4735
4784
|
if (part.type === "file") {
|
|
@@ -5478,7 +5527,7 @@ var DefaultStreamTextResult = class {
|
|
|
5478
5527
|
sendSources = false,
|
|
5479
5528
|
sendStart = true,
|
|
5480
5529
|
sendFinish = true,
|
|
5481
|
-
onError =
|
|
5530
|
+
onError = import_provider24.getErrorMessage
|
|
5482
5531
|
} = {}) {
|
|
5483
5532
|
const responseMessageId = generateMessageId != null ? getResponseUIMessageId({
|
|
5484
5533
|
originalMessages,
|
|
@@ -5981,14 +6030,33 @@ var Agent = class {
|
|
|
5981
6030
|
constructor(settings) {
|
|
5982
6031
|
this.settings = settings;
|
|
5983
6032
|
}
|
|
6033
|
+
/**
|
|
6034
|
+
* The name of the agent.
|
|
6035
|
+
*/
|
|
6036
|
+
get name() {
|
|
6037
|
+
return this.settings.name;
|
|
6038
|
+
}
|
|
6039
|
+
/**
|
|
6040
|
+
* The tools that the agent can use.
|
|
6041
|
+
*/
|
|
5984
6042
|
get tools() {
|
|
5985
6043
|
return this.settings.tools;
|
|
5986
6044
|
}
|
|
5987
6045
|
async generate(options) {
|
|
5988
|
-
|
|
6046
|
+
var _a17;
|
|
6047
|
+
return generateText({
|
|
6048
|
+
...this.settings,
|
|
6049
|
+
stopWhen: (_a17 = this.settings.stopWhen) != null ? _a17 : stepCountIs(20),
|
|
6050
|
+
...options
|
|
6051
|
+
});
|
|
5989
6052
|
}
|
|
5990
6053
|
stream(options) {
|
|
5991
|
-
|
|
6054
|
+
var _a17;
|
|
6055
|
+
return streamText({
|
|
6056
|
+
...this.settings,
|
|
6057
|
+
stopWhen: (_a17 = this.settings.stopWhen) != null ? _a17 : stepCountIs(20),
|
|
6058
|
+
...options
|
|
6059
|
+
});
|
|
5992
6060
|
}
|
|
5993
6061
|
/**
|
|
5994
6062
|
* Creates a response object that streams UI messages to the client.
|
|
@@ -6384,7 +6452,7 @@ async function generateImage({
|
|
|
6384
6452
|
headers
|
|
6385
6453
|
}) {
|
|
6386
6454
|
var _a17, _b;
|
|
6387
|
-
if (model.specificationVersion !== "
|
|
6455
|
+
if (model.specificationVersion !== "v3") {
|
|
6388
6456
|
throw new UnsupportedModelVersionError({
|
|
6389
6457
|
version: model.specificationVersion,
|
|
6390
6458
|
provider: model.provider,
|
|
@@ -6498,7 +6566,7 @@ function extractReasoningContent(content) {
|
|
|
6498
6566
|
}
|
|
6499
6567
|
|
|
6500
6568
|
// src/generate-object/output-strategy.ts
|
|
6501
|
-
var
|
|
6569
|
+
var import_provider25 = require("@ai-sdk/provider");
|
|
6502
6570
|
var import_provider_utils18 = require("@ai-sdk/provider-utils");
|
|
6503
6571
|
var noSchemaOutputStrategy = {
|
|
6504
6572
|
type: "no-schema",
|
|
@@ -6519,7 +6587,7 @@ var noSchemaOutputStrategy = {
|
|
|
6519
6587
|
} : { success: true, value };
|
|
6520
6588
|
},
|
|
6521
6589
|
createElementStream() {
|
|
6522
|
-
throw new
|
|
6590
|
+
throw new import_provider25.UnsupportedFunctionalityError({
|
|
6523
6591
|
functionality: "element streams in no-schema mode"
|
|
6524
6592
|
});
|
|
6525
6593
|
}
|
|
@@ -6541,7 +6609,7 @@ var objectOutputStrategy = (schema) => ({
|
|
|
6541
6609
|
return (0, import_provider_utils18.safeValidateTypes)({ value, schema });
|
|
6542
6610
|
},
|
|
6543
6611
|
createElementStream() {
|
|
6544
|
-
throw new
|
|
6612
|
+
throw new import_provider25.UnsupportedFunctionalityError({
|
|
6545
6613
|
functionality: "element streams in object mode"
|
|
6546
6614
|
});
|
|
6547
6615
|
}
|
|
@@ -6569,10 +6637,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
6569
6637
|
isFinalDelta
|
|
6570
6638
|
}) {
|
|
6571
6639
|
var _a17;
|
|
6572
|
-
if (!(0,
|
|
6640
|
+
if (!(0, import_provider25.isJSONObject)(value) || !(0, import_provider25.isJSONArray)(value.elements)) {
|
|
6573
6641
|
return {
|
|
6574
6642
|
success: false,
|
|
6575
|
-
error: new
|
|
6643
|
+
error: new import_provider25.TypeValidationError({
|
|
6576
6644
|
value,
|
|
6577
6645
|
cause: "value must be an object that contains an array of elements"
|
|
6578
6646
|
})
|
|
@@ -6612,10 +6680,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
6612
6680
|
};
|
|
6613
6681
|
},
|
|
6614
6682
|
async validateFinalResult(value) {
|
|
6615
|
-
if (!(0,
|
|
6683
|
+
if (!(0, import_provider25.isJSONObject)(value) || !(0, import_provider25.isJSONArray)(value.elements)) {
|
|
6616
6684
|
return {
|
|
6617
6685
|
success: false,
|
|
6618
|
-
error: new
|
|
6686
|
+
error: new import_provider25.TypeValidationError({
|
|
6619
6687
|
value,
|
|
6620
6688
|
cause: "value must be an object that contains an array of elements"
|
|
6621
6689
|
})
|
|
@@ -6678,10 +6746,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6678
6746
|
additionalProperties: false
|
|
6679
6747
|
},
|
|
6680
6748
|
async validateFinalResult(value) {
|
|
6681
|
-
if (!(0,
|
|
6749
|
+
if (!(0, import_provider25.isJSONObject)(value) || typeof value.result !== "string") {
|
|
6682
6750
|
return {
|
|
6683
6751
|
success: false,
|
|
6684
|
-
error: new
|
|
6752
|
+
error: new import_provider25.TypeValidationError({
|
|
6685
6753
|
value,
|
|
6686
6754
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
6687
6755
|
})
|
|
@@ -6690,17 +6758,17 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6690
6758
|
const result = value.result;
|
|
6691
6759
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
|
6692
6760
|
success: false,
|
|
6693
|
-
error: new
|
|
6761
|
+
error: new import_provider25.TypeValidationError({
|
|
6694
6762
|
value,
|
|
6695
6763
|
cause: "value must be a string in the enum"
|
|
6696
6764
|
})
|
|
6697
6765
|
};
|
|
6698
6766
|
},
|
|
6699
6767
|
async validatePartialResult({ value, textDelta }) {
|
|
6700
|
-
if (!(0,
|
|
6768
|
+
if (!(0, import_provider25.isJSONObject)(value) || typeof value.result !== "string") {
|
|
6701
6769
|
return {
|
|
6702
6770
|
success: false,
|
|
6703
|
-
error: new
|
|
6771
|
+
error: new import_provider25.TypeValidationError({
|
|
6704
6772
|
value,
|
|
6705
6773
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
6706
6774
|
})
|
|
@@ -6713,7 +6781,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6713
6781
|
if (value.result.length === 0 || possibleEnumValues.length === 0) {
|
|
6714
6782
|
return {
|
|
6715
6783
|
success: false,
|
|
6716
|
-
error: new
|
|
6784
|
+
error: new import_provider25.TypeValidationError({
|
|
6717
6785
|
value,
|
|
6718
6786
|
cause: "value must be a string in the enum"
|
|
6719
6787
|
})
|
|
@@ -6728,7 +6796,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6728
6796
|
};
|
|
6729
6797
|
},
|
|
6730
6798
|
createElementStream() {
|
|
6731
|
-
throw new
|
|
6799
|
+
throw new import_provider25.UnsupportedFunctionalityError({
|
|
6732
6800
|
functionality: "element streams in enum mode"
|
|
6733
6801
|
});
|
|
6734
6802
|
}
|
|
@@ -6756,7 +6824,7 @@ function getOutputStrategy({
|
|
|
6756
6824
|
}
|
|
6757
6825
|
|
|
6758
6826
|
// src/generate-object/parse-and-validate-object-result.ts
|
|
6759
|
-
var
|
|
6827
|
+
var import_provider26 = require("@ai-sdk/provider");
|
|
6760
6828
|
var import_provider_utils19 = require("@ai-sdk/provider-utils");
|
|
6761
6829
|
async function parseAndValidateObjectResult(result, outputStrategy, context) {
|
|
6762
6830
|
const parseResult = await (0, import_provider_utils19.safeParseJSON)({ text: result });
|
|
@@ -6794,7 +6862,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
|
|
|
6794
6862
|
try {
|
|
6795
6863
|
return await parseAndValidateObjectResult(result, outputStrategy, context);
|
|
6796
6864
|
} catch (error) {
|
|
6797
|
-
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (
|
|
6865
|
+
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider26.JSONParseError.isInstance(error.cause) || import_provider26.TypeValidationError.isInstance(error.cause))) {
|
|
6798
6866
|
const repairedText = await repairText({
|
|
6799
6867
|
text: result,
|
|
6800
6868
|
error: error.cause
|
|
@@ -7851,18 +7919,6 @@ var DefaultStreamObjectResult = class {
|
|
|
7851
7919
|
// src/generate-speech/generate-speech.ts
|
|
7852
7920
|
var import_provider_utils23 = require("@ai-sdk/provider-utils");
|
|
7853
7921
|
|
|
7854
|
-
// src/error/no-speech-generated-error.ts
|
|
7855
|
-
var import_provider26 = require("@ai-sdk/provider");
|
|
7856
|
-
var NoSpeechGeneratedError = class extends import_provider26.AISDKError {
|
|
7857
|
-
constructor(options) {
|
|
7858
|
-
super({
|
|
7859
|
-
name: "AI_NoSpeechGeneratedError",
|
|
7860
|
-
message: "No speech audio generated."
|
|
7861
|
-
});
|
|
7862
|
-
this.responses = options.responses;
|
|
7863
|
-
}
|
|
7864
|
-
};
|
|
7865
|
-
|
|
7866
7922
|
// src/generate-speech/generated-audio-file.ts
|
|
7867
7923
|
var DefaultGeneratedAudioFile = class extends DefaultGeneratedFile {
|
|
7868
7924
|
constructor({
|
|
@@ -8114,7 +8170,7 @@ function defaultSettingsMiddleware({
|
|
|
8114
8170
|
settings
|
|
8115
8171
|
}) {
|
|
8116
8172
|
return {
|
|
8117
|
-
middlewareVersion: "
|
|
8173
|
+
middlewareVersion: "v3",
|
|
8118
8174
|
transformParams: async ({ params }) => {
|
|
8119
8175
|
return mergeObjects(settings, params);
|
|
8120
8176
|
}
|
|
@@ -8148,7 +8204,7 @@ function extractReasoningMiddleware({
|
|
|
8148
8204
|
const openingTag = `<${tagName}>`;
|
|
8149
8205
|
const closingTag = `</${tagName}>`;
|
|
8150
8206
|
return {
|
|
8151
|
-
middlewareVersion: "
|
|
8207
|
+
middlewareVersion: "v3",
|
|
8152
8208
|
wrapGenerate: async ({ doGenerate }) => {
|
|
8153
8209
|
const { content, ...rest } = await doGenerate();
|
|
8154
8210
|
const transformedContent = [];
|
|
@@ -8294,7 +8350,7 @@ function extractReasoningMiddleware({
|
|
|
8294
8350
|
// src/middleware/simulate-streaming-middleware.ts
|
|
8295
8351
|
function simulateStreamingMiddleware() {
|
|
8296
8352
|
return {
|
|
8297
|
-
middlewareVersion: "
|
|
8353
|
+
middlewareVersion: "v3",
|
|
8298
8354
|
wrapStream: async ({ doGenerate }) => {
|
|
8299
8355
|
const result = await doGenerate();
|
|
8300
8356
|
let id = 0;
|
|
@@ -8391,7 +8447,7 @@ var doWrap = ({
|
|
|
8391
8447
|
return transformParams ? await transformParams({ params, type, model }) : params;
|
|
8392
8448
|
}
|
|
8393
8449
|
return {
|
|
8394
|
-
specificationVersion: "
|
|
8450
|
+
specificationVersion: "v3",
|
|
8395
8451
|
provider: (_a17 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a17 : model.provider,
|
|
8396
8452
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
8397
8453
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
@@ -9724,9 +9780,11 @@ var AbstractChat = class {
|
|
|
9724
9780
|
}
|
|
9725
9781
|
};
|
|
9726
9782
|
this.addToolResult = async ({
|
|
9783
|
+
state = "output-available",
|
|
9727
9784
|
tool: tool3,
|
|
9728
9785
|
toolCallId,
|
|
9729
|
-
output
|
|
9786
|
+
output,
|
|
9787
|
+
errorText
|
|
9730
9788
|
}) => this.jobExecutor.run(async () => {
|
|
9731
9789
|
var _a17, _b;
|
|
9732
9790
|
const messages = this.state.messages;
|
|
@@ -9734,16 +9792,16 @@ var AbstractChat = class {
|
|
|
9734
9792
|
this.state.replaceMessage(messages.length - 1, {
|
|
9735
9793
|
...lastMessage,
|
|
9736
9794
|
parts: lastMessage.parts.map(
|
|
9737
|
-
(part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state
|
|
9795
|
+
(part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state, output, errorText } : part
|
|
9738
9796
|
)
|
|
9739
9797
|
});
|
|
9740
9798
|
if (this.activeResponse) {
|
|
9741
9799
|
this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(
|
|
9742
9800
|
(part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? {
|
|
9743
9801
|
...part,
|
|
9744
|
-
state
|
|
9802
|
+
state,
|
|
9745
9803
|
output,
|
|
9746
|
-
errorText
|
|
9804
|
+
errorText
|
|
9747
9805
|
} : part
|
|
9748
9806
|
);
|
|
9749
9807
|
}
|
|
@@ -9952,7 +10010,9 @@ function lastAssistantMessageIsCompleteWithToolCalls({
|
|
|
9952
10010
|
return part.type === "step-start" ? index : lastIndex;
|
|
9953
10011
|
}, -1);
|
|
9954
10012
|
const lastStepToolInvocations = message.parts.slice(lastStepStartIndex + 1).filter(isToolOrDynamicToolUIPart);
|
|
9955
|
-
return lastStepToolInvocations.length > 0 && lastStepToolInvocations.every(
|
|
10013
|
+
return lastStepToolInvocations.length > 0 && lastStepToolInvocations.every(
|
|
10014
|
+
(part) => part.state === "output-available" || part.state === "output-error"
|
|
10015
|
+
);
|
|
9956
10016
|
}
|
|
9957
10017
|
|
|
9958
10018
|
// src/ui/transform-text-to-ui-message-stream.ts
|
|
@@ -10390,6 +10450,7 @@ function readUIMessageStream({
|
|
|
10390
10450
|
AISDKError,
|
|
10391
10451
|
APICallError,
|
|
10392
10452
|
AbstractChat,
|
|
10453
|
+
Agent,
|
|
10393
10454
|
DefaultChatTransport,
|
|
10394
10455
|
DownloadError,
|
|
10395
10456
|
EmptyResponseBodyError,
|
|
@@ -10412,6 +10473,7 @@ function readUIMessageStream({
|
|
|
10412
10473
|
NoObjectGeneratedError,
|
|
10413
10474
|
NoOutputGeneratedError,
|
|
10414
10475
|
NoOutputSpecifiedError,
|
|
10476
|
+
NoSpeechGeneratedError,
|
|
10415
10477
|
NoSuchModelError,
|
|
10416
10478
|
NoSuchProviderError,
|
|
10417
10479
|
NoSuchToolError,
|
|
@@ -10470,6 +10532,7 @@ function readUIMessageStream({
|
|
|
10470
10532
|
jsonSchema,
|
|
10471
10533
|
lastAssistantMessageIsCompleteWithToolCalls,
|
|
10472
10534
|
modelMessageSchema,
|
|
10535
|
+
parseJsonEventStream,
|
|
10473
10536
|
parsePartialJson,
|
|
10474
10537
|
pipeTextStreamToResponse,
|
|
10475
10538
|
pipeUIMessageStreamToResponse,
|
|
@@ -10484,6 +10547,7 @@ function readUIMessageStream({
|
|
|
10484
10547
|
systemModelMessageSchema,
|
|
10485
10548
|
tool,
|
|
10486
10549
|
toolModelMessageSchema,
|
|
10550
|
+
uiMessageChunkSchema,
|
|
10487
10551
|
userModelMessageSchema,
|
|
10488
10552
|
validateUIMessages,
|
|
10489
10553
|
wrapLanguageModel,
|