ai 6.0.271 → 6.0.272
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 +12 -0
- package/dist/index.d.mts +82 -31
- package/dist/index.d.ts +82 -31
- package/dist/index.js +384 -341
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +315 -271
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +26 -1
- package/docs/07-reference/05-ai-sdk-errors/ai-tool-choice-violation-error.mdx +38 -0
- package/docs/07-reference/05-ai-sdk-errors/index.mdx +1 -0
- package/package.json +3 -3
- package/src/agent/tool-loop-agent-settings.ts +9 -0
- package/src/error/index.ts +1 -0
- package/src/error/tool-choice-violation-error.ts +80 -0
- package/src/generate-text/generate-text.ts +25 -1
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 name23 in all)
|
|
8
|
+
__defProp(target, name23, { get: all[name23], enumerable: true });
|
|
9
9
|
};
|
|
10
10
|
var __copyProps = (to, from, except, desc) => {
|
|
11
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -20,37 +20,37 @@ 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_provider23.AISDKError,
|
|
24
|
+
APICallError: () => import_provider23.APICallError,
|
|
25
25
|
AbstractChat: () => AbstractChat,
|
|
26
26
|
DefaultChatTransport: () => DefaultChatTransport,
|
|
27
27
|
DefaultGeneratedFile: () => DefaultGeneratedFile,
|
|
28
28
|
DirectChatTransport: () => DirectChatTransport,
|
|
29
29
|
DownloadError: () => import_provider_utils.DownloadError,
|
|
30
|
-
EmptyResponseBodyError: () =>
|
|
30
|
+
EmptyResponseBodyError: () => import_provider23.EmptyResponseBodyError,
|
|
31
31
|
Experimental_Agent: () => ToolLoopAgent,
|
|
32
32
|
HttpChatTransport: () => HttpChatTransport,
|
|
33
33
|
InvalidArgumentError: () => InvalidArgumentError,
|
|
34
34
|
InvalidDataContentError: () => InvalidDataContentError,
|
|
35
35
|
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
|
36
|
-
InvalidPromptError: () =>
|
|
37
|
-
InvalidResponseDataError: () =>
|
|
36
|
+
InvalidPromptError: () => import_provider23.InvalidPromptError,
|
|
37
|
+
InvalidResponseDataError: () => import_provider23.InvalidResponseDataError,
|
|
38
38
|
InvalidStreamPartError: () => InvalidStreamPartError,
|
|
39
39
|
InvalidToolApprovalError: () => InvalidToolApprovalError,
|
|
40
40
|
InvalidToolApprovalSignatureError: () => InvalidToolApprovalSignatureError,
|
|
41
41
|
InvalidToolInputError: () => InvalidToolInputError,
|
|
42
|
-
JSONParseError: () =>
|
|
42
|
+
JSONParseError: () => import_provider23.JSONParseError,
|
|
43
43
|
JsonToSseTransformStream: () => JsonToSseTransformStream,
|
|
44
|
-
LoadAPIKeyError: () =>
|
|
45
|
-
LoadSettingError: () =>
|
|
44
|
+
LoadAPIKeyError: () => import_provider23.LoadAPIKeyError,
|
|
45
|
+
LoadSettingError: () => import_provider23.LoadSettingError,
|
|
46
46
|
MessageConversionError: () => MessageConversionError,
|
|
47
47
|
MissingToolResultsError: () => MissingToolResultsError,
|
|
48
|
-
NoContentGeneratedError: () =>
|
|
48
|
+
NoContentGeneratedError: () => import_provider23.NoContentGeneratedError,
|
|
49
49
|
NoImageGeneratedError: () => NoImageGeneratedError,
|
|
50
50
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
|
51
51
|
NoOutputGeneratedError: () => NoOutputGeneratedError,
|
|
52
52
|
NoSpeechGeneratedError: () => NoSpeechGeneratedError,
|
|
53
|
-
NoSuchModelError: () =>
|
|
53
|
+
NoSuchModelError: () => import_provider23.NoSuchModelError,
|
|
54
54
|
NoSuchProviderError: () => NoSuchProviderError,
|
|
55
55
|
NoSuchToolError: () => NoSuchToolError,
|
|
56
56
|
NoTranscriptGeneratedError: () => NoTranscriptGeneratedError,
|
|
@@ -59,14 +59,15 @@ __export(src_exports, {
|
|
|
59
59
|
RetryError: () => RetryError,
|
|
60
60
|
SerialJobExecutor: () => SerialJobExecutor,
|
|
61
61
|
TextStreamChatTransport: () => TextStreamChatTransport,
|
|
62
|
-
TooManyEmbeddingValuesForCallError: () =>
|
|
62
|
+
TooManyEmbeddingValuesForCallError: () => import_provider23.TooManyEmbeddingValuesForCallError,
|
|
63
63
|
ToolCallNotFoundForApprovalError: () => ToolCallNotFoundForApprovalError,
|
|
64
64
|
ToolCallRepairError: () => ToolCallRepairError,
|
|
65
|
+
ToolChoiceViolationError: () => ToolChoiceViolationError,
|
|
65
66
|
ToolLoopAgent: () => ToolLoopAgent,
|
|
66
|
-
TypeValidationError: () =>
|
|
67
|
+
TypeValidationError: () => import_provider23.TypeValidationError,
|
|
67
68
|
UIMessageStreamError: () => UIMessageStreamError,
|
|
68
69
|
UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
|
|
69
|
-
UnsupportedFunctionalityError: () =>
|
|
70
|
+
UnsupportedFunctionalityError: () => import_provider23.UnsupportedFunctionalityError,
|
|
70
71
|
UnsupportedModelVersionError: () => UnsupportedModelVersionError,
|
|
71
72
|
addToolInputExamplesMiddleware: () => addToolInputExamplesMiddleware,
|
|
72
73
|
asSchema: () => import_provider_utils43.asSchema,
|
|
@@ -163,7 +164,7 @@ var import_provider_utils21 = require("@ai-sdk/provider-utils");
|
|
|
163
164
|
var import_provider_utils16 = require("@ai-sdk/provider-utils");
|
|
164
165
|
|
|
165
166
|
// src/error/index.ts
|
|
166
|
-
var
|
|
167
|
+
var import_provider23 = require("@ai-sdk/provider");
|
|
167
168
|
|
|
168
169
|
// src/error/invalid-argument-error.ts
|
|
169
170
|
var import_provider = require("@ai-sdk/provider");
|
|
@@ -507,21 +508,28 @@ var NoSuchToolError = class extends import_provider14.AISDKError {
|
|
|
507
508
|
};
|
|
508
509
|
_a14 = symbol14;
|
|
509
510
|
|
|
510
|
-
// src/error/tool-
|
|
511
|
+
// src/error/tool-choice-violation-error.ts
|
|
511
512
|
var import_provider15 = require("@ai-sdk/provider");
|
|
512
|
-
var name15 = "
|
|
513
|
+
var name15 = "AI_ToolChoiceViolationError";
|
|
513
514
|
var marker15 = `vercel.ai.error.${name15}`;
|
|
514
515
|
var symbol15 = Symbol.for(marker15);
|
|
515
516
|
var _a15;
|
|
516
|
-
var
|
|
517
|
+
var ToolChoiceViolationError = class extends import_provider15.AISDKError {
|
|
517
518
|
constructor({
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
519
|
+
toolChoice,
|
|
520
|
+
finishReason,
|
|
521
|
+
provider,
|
|
522
|
+
modelId,
|
|
523
|
+
content,
|
|
524
|
+
message = toolChoice.type === "required" ? "Model response did not contain a tool call even though tool choice was required." : `Model response did not contain a call to the required tool '${toolChoice.toolName}'.`
|
|
521
525
|
}) {
|
|
522
|
-
super({ name: name15, message
|
|
526
|
+
super({ name: name15, message });
|
|
523
527
|
this[_a15] = true;
|
|
524
|
-
this.
|
|
528
|
+
this.toolChoice = toolChoice;
|
|
529
|
+
this.finishReason = finishReason;
|
|
530
|
+
this.provider = provider;
|
|
531
|
+
this.modelId = modelId;
|
|
532
|
+
this.content = content;
|
|
525
533
|
}
|
|
526
534
|
static isInstance(error) {
|
|
527
535
|
return import_provider15.AISDKError.hasMarker(error, marker15);
|
|
@@ -529,9 +537,31 @@ var ToolCallRepairError = class extends import_provider15.AISDKError {
|
|
|
529
537
|
};
|
|
530
538
|
_a15 = symbol15;
|
|
531
539
|
|
|
532
|
-
// src/error/
|
|
540
|
+
// src/error/tool-call-repair-error.ts
|
|
533
541
|
var import_provider16 = require("@ai-sdk/provider");
|
|
534
|
-
var
|
|
542
|
+
var name16 = "AI_ToolCallRepairError";
|
|
543
|
+
var marker16 = `vercel.ai.error.${name16}`;
|
|
544
|
+
var symbol16 = Symbol.for(marker16);
|
|
545
|
+
var _a16;
|
|
546
|
+
var ToolCallRepairError = class extends import_provider16.AISDKError {
|
|
547
|
+
constructor({
|
|
548
|
+
cause,
|
|
549
|
+
originalError,
|
|
550
|
+
message = `Error repairing tool call: ${(0, import_provider16.getErrorMessage)(cause)}`
|
|
551
|
+
}) {
|
|
552
|
+
super({ name: name16, message, cause });
|
|
553
|
+
this[_a16] = true;
|
|
554
|
+
this.originalError = originalError;
|
|
555
|
+
}
|
|
556
|
+
static isInstance(error) {
|
|
557
|
+
return import_provider16.AISDKError.hasMarker(error, marker16);
|
|
558
|
+
}
|
|
559
|
+
};
|
|
560
|
+
_a16 = symbol16;
|
|
561
|
+
|
|
562
|
+
// src/error/unsupported-model-version-error.ts
|
|
563
|
+
var import_provider17 = require("@ai-sdk/provider");
|
|
564
|
+
var UnsupportedModelVersionError = class extends import_provider17.AISDKError {
|
|
535
565
|
constructor(options) {
|
|
536
566
|
super({
|
|
537
567
|
name: "AI_UnsupportedModelVersionError",
|
|
@@ -544,118 +574,118 @@ var UnsupportedModelVersionError = class extends import_provider16.AISDKError {
|
|
|
544
574
|
};
|
|
545
575
|
|
|
546
576
|
// src/error/ui-message-stream-error.ts
|
|
547
|
-
var
|
|
548
|
-
var
|
|
549
|
-
var
|
|
550
|
-
var
|
|
551
|
-
var
|
|
552
|
-
var UIMessageStreamError = class extends
|
|
577
|
+
var import_provider18 = require("@ai-sdk/provider");
|
|
578
|
+
var name17 = "AI_UIMessageStreamError";
|
|
579
|
+
var marker17 = `vercel.ai.error.${name17}`;
|
|
580
|
+
var symbol17 = Symbol.for(marker17);
|
|
581
|
+
var _a17;
|
|
582
|
+
var UIMessageStreamError = class extends import_provider18.AISDKError {
|
|
553
583
|
constructor({
|
|
554
584
|
chunkType,
|
|
555
585
|
chunkId,
|
|
556
586
|
message
|
|
557
587
|
}) {
|
|
558
|
-
super({ name:
|
|
559
|
-
this[
|
|
588
|
+
super({ name: name17, message });
|
|
589
|
+
this[_a17] = true;
|
|
560
590
|
this.chunkType = chunkType;
|
|
561
591
|
this.chunkId = chunkId;
|
|
562
592
|
}
|
|
563
593
|
static isInstance(error) {
|
|
564
|
-
return
|
|
594
|
+
return import_provider18.AISDKError.hasMarker(error, marker17);
|
|
565
595
|
}
|
|
566
596
|
};
|
|
567
|
-
|
|
597
|
+
_a17 = symbol17;
|
|
568
598
|
|
|
569
599
|
// src/prompt/invalid-data-content-error.ts
|
|
570
|
-
var
|
|
571
|
-
var
|
|
572
|
-
var
|
|
573
|
-
var
|
|
574
|
-
var
|
|
575
|
-
var InvalidDataContentError = class extends
|
|
600
|
+
var import_provider19 = require("@ai-sdk/provider");
|
|
601
|
+
var name18 = "AI_InvalidDataContentError";
|
|
602
|
+
var marker18 = `vercel.ai.error.${name18}`;
|
|
603
|
+
var symbol18 = Symbol.for(marker18);
|
|
604
|
+
var _a18;
|
|
605
|
+
var InvalidDataContentError = class extends import_provider19.AISDKError {
|
|
576
606
|
constructor({
|
|
577
607
|
content,
|
|
578
608
|
cause,
|
|
579
609
|
message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
|
|
580
610
|
}) {
|
|
581
|
-
super({ name:
|
|
582
|
-
this[
|
|
611
|
+
super({ name: name18, message, cause });
|
|
612
|
+
this[_a18] = true;
|
|
583
613
|
this.content = content;
|
|
584
614
|
}
|
|
585
615
|
static isInstance(error) {
|
|
586
|
-
return
|
|
616
|
+
return import_provider19.AISDKError.hasMarker(error, marker18);
|
|
587
617
|
}
|
|
588
618
|
};
|
|
589
|
-
|
|
619
|
+
_a18 = symbol18;
|
|
590
620
|
|
|
591
621
|
// src/prompt/invalid-message-role-error.ts
|
|
592
|
-
var
|
|
593
|
-
var
|
|
594
|
-
var
|
|
595
|
-
var
|
|
596
|
-
var
|
|
597
|
-
var InvalidMessageRoleError = class extends
|
|
622
|
+
var import_provider20 = require("@ai-sdk/provider");
|
|
623
|
+
var name19 = "AI_InvalidMessageRoleError";
|
|
624
|
+
var marker19 = `vercel.ai.error.${name19}`;
|
|
625
|
+
var symbol19 = Symbol.for(marker19);
|
|
626
|
+
var _a19;
|
|
627
|
+
var InvalidMessageRoleError = class extends import_provider20.AISDKError {
|
|
598
628
|
constructor({
|
|
599
629
|
role,
|
|
600
630
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
601
631
|
}) {
|
|
602
|
-
super({ name:
|
|
603
|
-
this[
|
|
632
|
+
super({ name: name19, message });
|
|
633
|
+
this[_a19] = true;
|
|
604
634
|
this.role = role;
|
|
605
635
|
}
|
|
606
636
|
static isInstance(error) {
|
|
607
|
-
return
|
|
637
|
+
return import_provider20.AISDKError.hasMarker(error, marker19);
|
|
608
638
|
}
|
|
609
639
|
};
|
|
610
|
-
|
|
640
|
+
_a19 = symbol19;
|
|
611
641
|
|
|
612
642
|
// src/prompt/message-conversion-error.ts
|
|
613
|
-
var
|
|
614
|
-
var
|
|
615
|
-
var
|
|
616
|
-
var
|
|
617
|
-
var
|
|
618
|
-
var MessageConversionError = class extends
|
|
643
|
+
var import_provider21 = require("@ai-sdk/provider");
|
|
644
|
+
var name20 = "AI_MessageConversionError";
|
|
645
|
+
var marker20 = `vercel.ai.error.${name20}`;
|
|
646
|
+
var symbol20 = Symbol.for(marker20);
|
|
647
|
+
var _a20;
|
|
648
|
+
var MessageConversionError = class extends import_provider21.AISDKError {
|
|
619
649
|
constructor({
|
|
620
650
|
originalMessage,
|
|
621
651
|
message
|
|
622
652
|
}) {
|
|
623
|
-
super({ name:
|
|
624
|
-
this[
|
|
653
|
+
super({ name: name20, message });
|
|
654
|
+
this[_a20] = true;
|
|
625
655
|
this.originalMessage = originalMessage;
|
|
626
656
|
}
|
|
627
657
|
static isInstance(error) {
|
|
628
|
-
return
|
|
658
|
+
return import_provider21.AISDKError.hasMarker(error, marker20);
|
|
629
659
|
}
|
|
630
660
|
};
|
|
631
|
-
|
|
661
|
+
_a20 = symbol20;
|
|
632
662
|
|
|
633
663
|
// src/error/index.ts
|
|
634
664
|
var import_provider_utils = require("@ai-sdk/provider-utils");
|
|
635
665
|
|
|
636
666
|
// src/util/retry-error.ts
|
|
637
|
-
var
|
|
638
|
-
var
|
|
639
|
-
var
|
|
640
|
-
var
|
|
641
|
-
var
|
|
642
|
-
var RetryError = class extends
|
|
667
|
+
var import_provider22 = require("@ai-sdk/provider");
|
|
668
|
+
var name21 = "AI_RetryError";
|
|
669
|
+
var marker21 = `vercel.ai.error.${name21}`;
|
|
670
|
+
var symbol21 = Symbol.for(marker21);
|
|
671
|
+
var _a21;
|
|
672
|
+
var RetryError = class extends import_provider22.AISDKError {
|
|
643
673
|
constructor({
|
|
644
674
|
message,
|
|
645
675
|
reason,
|
|
646
676
|
errors
|
|
647
677
|
}) {
|
|
648
|
-
super({ name:
|
|
649
|
-
this[
|
|
678
|
+
super({ name: name21, message });
|
|
679
|
+
this[_a21] = true;
|
|
650
680
|
this.reason = reason;
|
|
651
681
|
this.errors = errors;
|
|
652
682
|
this.lastError = errors[errors.length - 1];
|
|
653
683
|
}
|
|
654
684
|
static isInstance(error) {
|
|
655
|
-
return
|
|
685
|
+
return import_provider22.AISDKError.hasMarker(error, marker21);
|
|
656
686
|
}
|
|
657
687
|
};
|
|
658
|
-
|
|
688
|
+
_a21 = symbol21;
|
|
659
689
|
|
|
660
690
|
// src/util/as-array.ts
|
|
661
691
|
function asArray(value) {
|
|
@@ -935,7 +965,7 @@ function resolveEmbeddingModel(model) {
|
|
|
935
965
|
return getGlobalProvider().embeddingModel(model);
|
|
936
966
|
}
|
|
937
967
|
function resolveTranscriptionModel(model) {
|
|
938
|
-
var
|
|
968
|
+
var _a23, _b;
|
|
939
969
|
if (typeof model !== "string") {
|
|
940
970
|
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
941
971
|
const unsupportedModel = model;
|
|
@@ -947,10 +977,10 @@ function resolveTranscriptionModel(model) {
|
|
|
947
977
|
}
|
|
948
978
|
return asTranscriptionModelV3(model);
|
|
949
979
|
}
|
|
950
|
-
return (_b = (
|
|
980
|
+
return (_b = (_a23 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b.call(_a23, model);
|
|
951
981
|
}
|
|
952
982
|
function resolveSpeechModel(model) {
|
|
953
|
-
var
|
|
983
|
+
var _a23, _b;
|
|
954
984
|
if (typeof model !== "string") {
|
|
955
985
|
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
956
986
|
const unsupportedModel = model;
|
|
@@ -962,7 +992,7 @@ function resolveSpeechModel(model) {
|
|
|
962
992
|
}
|
|
963
993
|
return asSpeechModelV3(model);
|
|
964
994
|
}
|
|
965
|
-
return (_b = (
|
|
995
|
+
return (_b = (_a23 = getGlobalProvider()).speechModel) == null ? void 0 : _b.call(_a23, model);
|
|
966
996
|
}
|
|
967
997
|
function resolveImageModel(model) {
|
|
968
998
|
if (typeof model !== "string") {
|
|
@@ -1021,8 +1051,8 @@ function resolveRerankingModel(model) {
|
|
|
1021
1051
|
return model;
|
|
1022
1052
|
}
|
|
1023
1053
|
function getGlobalProvider() {
|
|
1024
|
-
var
|
|
1025
|
-
return (
|
|
1054
|
+
var _a23;
|
|
1055
|
+
return (_a23 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a23 : import_gateway.gateway;
|
|
1026
1056
|
}
|
|
1027
1057
|
|
|
1028
1058
|
// src/prompt/call-settings.ts
|
|
@@ -1304,7 +1334,7 @@ function detectMediaType({
|
|
|
1304
1334
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
1305
1335
|
|
|
1306
1336
|
// src/version.ts
|
|
1307
|
-
var VERSION = true ? "6.0.
|
|
1337
|
+
var VERSION = true ? "6.0.272" : "0.0.0-test";
|
|
1308
1338
|
|
|
1309
1339
|
// src/util/download/download.ts
|
|
1310
1340
|
var download = async ({
|
|
@@ -1312,7 +1342,7 @@ var download = async ({
|
|
|
1312
1342
|
maxBytes,
|
|
1313
1343
|
abortSignal
|
|
1314
1344
|
}) => {
|
|
1315
|
-
var
|
|
1345
|
+
var _a23;
|
|
1316
1346
|
const urlText = url.toString();
|
|
1317
1347
|
try {
|
|
1318
1348
|
const headers = (0, import_provider_utils3.withUserAgentSuffix)(
|
|
@@ -1340,7 +1370,7 @@ var download = async ({
|
|
|
1340
1370
|
});
|
|
1341
1371
|
return {
|
|
1342
1372
|
data,
|
|
1343
|
-
mediaType: (
|
|
1373
|
+
mediaType: (_a23 = response.headers.get("content-type")) != null ? _a23 : void 0
|
|
1344
1374
|
};
|
|
1345
1375
|
} catch (error) {
|
|
1346
1376
|
if (import_provider_utils3.DownloadError.isInstance(error)) {
|
|
@@ -1394,7 +1424,7 @@ function mergeObjects(base, overrides) {
|
|
|
1394
1424
|
}
|
|
1395
1425
|
|
|
1396
1426
|
// src/prompt/data-content.ts
|
|
1397
|
-
var
|
|
1427
|
+
var import_provider24 = require("@ai-sdk/provider");
|
|
1398
1428
|
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
1399
1429
|
var import_v4 = require("zod/v4");
|
|
1400
1430
|
|
|
@@ -1422,8 +1452,8 @@ var dataContentSchema = import_v4.z.union([
|
|
|
1422
1452
|
import_v4.z.custom(
|
|
1423
1453
|
// Buffer might not be available in some environments such as CloudFlare:
|
|
1424
1454
|
(value) => {
|
|
1425
|
-
var
|
|
1426
|
-
return (_b = (
|
|
1455
|
+
var _a23, _b;
|
|
1456
|
+
return (_b = (_a23 = globalThis.Buffer) == null ? void 0 : _a23.isBuffer(value)) != null ? _b : false;
|
|
1427
1457
|
},
|
|
1428
1458
|
{ message: "Must be a Buffer" }
|
|
1429
1459
|
)
|
|
@@ -1446,7 +1476,7 @@ function convertToLanguageModelV3DataContent(content) {
|
|
|
1446
1476
|
content.toString()
|
|
1447
1477
|
);
|
|
1448
1478
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
1449
|
-
throw new
|
|
1479
|
+
throw new import_provider24.AISDKError({
|
|
1450
1480
|
name: "InvalidDataContentError",
|
|
1451
1481
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
1452
1482
|
});
|
|
@@ -1737,7 +1767,7 @@ function convertToLanguageModelMessage({
|
|
|
1737
1767
|
}
|
|
1738
1768
|
}
|
|
1739
1769
|
async function downloadAssets(messages, download2, supportedUrls) {
|
|
1740
|
-
var
|
|
1770
|
+
var _a23;
|
|
1741
1771
|
const downloadableFiles = [];
|
|
1742
1772
|
for (const message of messages) {
|
|
1743
1773
|
if (message.role === "user" && Array.isArray(message.content)) {
|
|
@@ -1745,7 +1775,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1745
1775
|
if (part.type === "image" || part.type === "file") {
|
|
1746
1776
|
downloadableFiles.push({
|
|
1747
1777
|
data: part.type === "image" ? part.image : part.data,
|
|
1748
|
-
mediaType: (
|
|
1778
|
+
mediaType: (_a23 = part.mediaType) != null ? _a23 : part.type === "image" ? "image/*" : void 0
|
|
1749
1779
|
});
|
|
1750
1780
|
}
|
|
1751
1781
|
}
|
|
@@ -1797,7 +1827,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1797
1827
|
);
|
|
1798
1828
|
}
|
|
1799
1829
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
1800
|
-
var
|
|
1830
|
+
var _a23;
|
|
1801
1831
|
if (part.type === "text") {
|
|
1802
1832
|
return {
|
|
1803
1833
|
type: "text",
|
|
@@ -1830,7 +1860,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1830
1860
|
switch (type) {
|
|
1831
1861
|
case "image": {
|
|
1832
1862
|
if (data instanceof Uint8Array || typeof data === "string") {
|
|
1833
|
-
mediaType = (
|
|
1863
|
+
mediaType = (_a23 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a23 : mediaType;
|
|
1834
1864
|
}
|
|
1835
1865
|
return {
|
|
1836
1866
|
type: "file",
|
|
@@ -1865,14 +1895,14 @@ function mapToolResultOutput({
|
|
|
1865
1895
|
return {
|
|
1866
1896
|
type: "content",
|
|
1867
1897
|
value: output.value.map((item) => {
|
|
1868
|
-
var
|
|
1898
|
+
var _a23, _b;
|
|
1869
1899
|
if (item.type === "image-url") {
|
|
1870
1900
|
const downloadedFile = downloadedAssets[new URL(item.url).toString()];
|
|
1871
1901
|
if (downloadedFile) {
|
|
1872
1902
|
return {
|
|
1873
1903
|
type: "image-data",
|
|
1874
1904
|
data: convertDataContentToBase64String(downloadedFile.data),
|
|
1875
|
-
mediaType: (
|
|
1905
|
+
mediaType: (_a23 = downloadedFile.mediaType) != null ? _a23 : "image/*",
|
|
1876
1906
|
providerOptions: item.providerOptions
|
|
1877
1907
|
};
|
|
1878
1908
|
}
|
|
@@ -1910,7 +1940,7 @@ function mapToolResultOutput({
|
|
|
1910
1940
|
}
|
|
1911
1941
|
|
|
1912
1942
|
// src/prompt/create-tool-model-output.ts
|
|
1913
|
-
var
|
|
1943
|
+
var import_provider25 = require("@ai-sdk/provider");
|
|
1914
1944
|
async function createToolModelOutput({
|
|
1915
1945
|
toolCallId,
|
|
1916
1946
|
input,
|
|
@@ -1919,7 +1949,7 @@ async function createToolModelOutput({
|
|
|
1919
1949
|
errorMode
|
|
1920
1950
|
}) {
|
|
1921
1951
|
if (errorMode === "text") {
|
|
1922
|
-
return { type: "error-text", value: (0,
|
|
1952
|
+
return { type: "error-text", value: (0, import_provider25.getErrorMessage)(output) };
|
|
1923
1953
|
} else if (errorMode === "json") {
|
|
1924
1954
|
return { type: "error-json", value: toJSONValue(output) };
|
|
1925
1955
|
}
|
|
@@ -2046,10 +2076,10 @@ async function prepareToolsAndToolChoice({
|
|
|
2046
2076
|
};
|
|
2047
2077
|
}
|
|
2048
2078
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
|
2049
|
-
([
|
|
2079
|
+
([name23]) => activeTools.includes(name23)
|
|
2050
2080
|
) : Object.entries(tools);
|
|
2051
2081
|
const languageModelTools = [];
|
|
2052
|
-
for (const [
|
|
2082
|
+
for (const [name23, tool2] of filteredTools) {
|
|
2053
2083
|
const toolType = tool2.type;
|
|
2054
2084
|
switch (toolType) {
|
|
2055
2085
|
case void 0:
|
|
@@ -2057,7 +2087,7 @@ async function prepareToolsAndToolChoice({
|
|
|
2057
2087
|
case "function":
|
|
2058
2088
|
languageModelTools.push({
|
|
2059
2089
|
type: "function",
|
|
2060
|
-
name:
|
|
2090
|
+
name: name23,
|
|
2061
2091
|
description: tool2.description,
|
|
2062
2092
|
inputSchema: await (0, import_provider_utils6.asSchema)(tool2.inputSchema).jsonSchema,
|
|
2063
2093
|
...tool2.inputExamples != null ? { inputExamples: tool2.inputExamples } : {},
|
|
@@ -2068,7 +2098,7 @@ async function prepareToolsAndToolChoice({
|
|
|
2068
2098
|
case "provider":
|
|
2069
2099
|
languageModelTools.push({
|
|
2070
2100
|
type: "provider",
|
|
2071
|
-
name:
|
|
2101
|
+
name: name23,
|
|
2072
2102
|
id: tool2.id,
|
|
2073
2103
|
args: tool2.args
|
|
2074
2104
|
});
|
|
@@ -2086,7 +2116,7 @@ async function prepareToolsAndToolChoice({
|
|
|
2086
2116
|
}
|
|
2087
2117
|
|
|
2088
2118
|
// src/prompt/standardize-prompt.ts
|
|
2089
|
-
var
|
|
2119
|
+
var import_provider26 = require("@ai-sdk/provider");
|
|
2090
2120
|
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
2091
2121
|
var import_v46 = require("zod/v4");
|
|
2092
2122
|
|
|
@@ -2304,19 +2334,19 @@ async function standardizePrompt({
|
|
|
2304
2334
|
messages
|
|
2305
2335
|
}) {
|
|
2306
2336
|
if (prompt == null && messages == null) {
|
|
2307
|
-
throw new
|
|
2337
|
+
throw new import_provider26.InvalidPromptError({
|
|
2308
2338
|
prompt,
|
|
2309
2339
|
message: "prompt or messages must be defined"
|
|
2310
2340
|
});
|
|
2311
2341
|
}
|
|
2312
2342
|
if (prompt != null && messages != null) {
|
|
2313
|
-
throw new
|
|
2343
|
+
throw new import_provider26.InvalidPromptError({
|
|
2314
2344
|
prompt,
|
|
2315
2345
|
message: "prompt and messages cannot be defined at the same time"
|
|
2316
2346
|
});
|
|
2317
2347
|
}
|
|
2318
2348
|
if (typeof system !== "string" && !asArray(system).every((message) => message.role === "system")) {
|
|
2319
|
-
throw new
|
|
2349
|
+
throw new import_provider26.InvalidPromptError({
|
|
2320
2350
|
prompt,
|
|
2321
2351
|
message: "system must be a string, SystemModelMessage, or array of SystemModelMessage"
|
|
2322
2352
|
});
|
|
@@ -2326,20 +2356,20 @@ async function standardizePrompt({
|
|
|
2326
2356
|
} else if (prompt != null && Array.isArray(prompt)) {
|
|
2327
2357
|
messages = prompt;
|
|
2328
2358
|
} else if (messages == null) {
|
|
2329
|
-
throw new
|
|
2359
|
+
throw new import_provider26.InvalidPromptError({
|
|
2330
2360
|
prompt,
|
|
2331
2361
|
message: "prompt or messages must be defined"
|
|
2332
2362
|
});
|
|
2333
2363
|
}
|
|
2334
2364
|
if (messages.length === 0) {
|
|
2335
|
-
throw new
|
|
2365
|
+
throw new import_provider26.InvalidPromptError({
|
|
2336
2366
|
prompt,
|
|
2337
2367
|
message: "messages must not be empty"
|
|
2338
2368
|
});
|
|
2339
2369
|
}
|
|
2340
2370
|
if (messages.some((message) => message.role === "system")) {
|
|
2341
2371
|
if (allowSystemInMessages === false) {
|
|
2342
|
-
throw new
|
|
2372
|
+
throw new import_provider26.InvalidPromptError({
|
|
2343
2373
|
prompt,
|
|
2344
2374
|
message: "System messages are not allowed in the prompt or messages fields. Use the system option instead."
|
|
2345
2375
|
});
|
|
@@ -2355,7 +2385,7 @@ async function standardizePrompt({
|
|
|
2355
2385
|
schema: import_v46.z.array(modelMessageSchema)
|
|
2356
2386
|
});
|
|
2357
2387
|
if (!validationResult.success) {
|
|
2358
|
-
throw new
|
|
2388
|
+
throw new import_provider26.InvalidPromptError({
|
|
2359
2389
|
prompt,
|
|
2360
2390
|
message: "The messages do not match the ModelMessage[] schema.",
|
|
2361
2391
|
cause: validationResult.error
|
|
@@ -2366,14 +2396,14 @@ async function standardizePrompt({
|
|
|
2366
2396
|
|
|
2367
2397
|
// src/prompt/wrap-gateway-error.ts
|
|
2368
2398
|
var import_gateway2 = require("@ai-sdk/gateway");
|
|
2369
|
-
var
|
|
2399
|
+
var import_provider27 = require("@ai-sdk/provider");
|
|
2370
2400
|
function wrapGatewayError(error) {
|
|
2371
2401
|
if (!import_gateway2.GatewayAuthenticationError.isInstance(error))
|
|
2372
2402
|
return error;
|
|
2373
2403
|
const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
|
|
2374
2404
|
const moreInfoURL = "https://ai-sdk.dev/unauthenticated-ai-gateway";
|
|
2375
2405
|
if (isProductionEnv) {
|
|
2376
|
-
return new
|
|
2406
|
+
return new import_provider27.AISDKError({
|
|
2377
2407
|
name: "GatewayError",
|
|
2378
2408
|
message: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`
|
|
2379
2409
|
});
|
|
@@ -2414,7 +2444,7 @@ function getBaseTelemetryAttributes({
|
|
|
2414
2444
|
telemetry,
|
|
2415
2445
|
headers
|
|
2416
2446
|
}) {
|
|
2417
|
-
var
|
|
2447
|
+
var _a23;
|
|
2418
2448
|
return {
|
|
2419
2449
|
"ai.model.provider": model.provider,
|
|
2420
2450
|
"ai.model.id": model.modelId,
|
|
@@ -2433,7 +2463,7 @@ function getBaseTelemetryAttributes({
|
|
|
2433
2463
|
return attributes;
|
|
2434
2464
|
}, {}),
|
|
2435
2465
|
// add metadata as attributes:
|
|
2436
|
-
...Object.entries((
|
|
2466
|
+
...Object.entries((_a23 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a23 : {}).reduce(
|
|
2437
2467
|
(attributes, [key, value]) => {
|
|
2438
2468
|
attributes[`ai.telemetry.metadata.${key}`] = value;
|
|
2439
2469
|
return attributes;
|
|
@@ -2458,7 +2488,7 @@ var noopTracer = {
|
|
|
2458
2488
|
startSpan() {
|
|
2459
2489
|
return noopSpan;
|
|
2460
2490
|
},
|
|
2461
|
-
startActiveSpan(
|
|
2491
|
+
startActiveSpan(name23, arg1, arg2, arg3) {
|
|
2462
2492
|
if (typeof arg1 === "function") {
|
|
2463
2493
|
return arg1(noopSpan);
|
|
2464
2494
|
}
|
|
@@ -2528,7 +2558,7 @@ function getTracer({
|
|
|
2528
2558
|
// src/telemetry/record-span.ts
|
|
2529
2559
|
var import_api2 = require("@opentelemetry/api");
|
|
2530
2560
|
async function recordSpan({
|
|
2531
|
-
name:
|
|
2561
|
+
name: name23,
|
|
2532
2562
|
tracer,
|
|
2533
2563
|
attributes,
|
|
2534
2564
|
fn,
|
|
@@ -2536,7 +2566,7 @@ async function recordSpan({
|
|
|
2536
2566
|
endOnError = endWhenDone
|
|
2537
2567
|
}) {
|
|
2538
2568
|
return tracer.startActiveSpan(
|
|
2539
|
-
|
|
2569
|
+
name23,
|
|
2540
2570
|
{ attributes: await attributes },
|
|
2541
2571
|
async (span) => {
|
|
2542
2572
|
const ctx = import_api2.context.active();
|
|
@@ -2666,15 +2696,15 @@ function registerTelemetryIntegration(integration) {
|
|
|
2666
2696
|
globalThis.AI_SDK_TELEMETRY_INTEGRATIONS.push(integration);
|
|
2667
2697
|
}
|
|
2668
2698
|
function getGlobalTelemetryIntegrations() {
|
|
2669
|
-
var
|
|
2670
|
-
return (
|
|
2699
|
+
var _a23;
|
|
2700
|
+
return (_a23 = globalThis.AI_SDK_TELEMETRY_INTEGRATIONS) != null ? _a23 : [];
|
|
2671
2701
|
}
|
|
2672
2702
|
|
|
2673
2703
|
// src/telemetry/get-global-telemetry-integration.ts
|
|
2674
2704
|
function bindTelemetryIntegration(integration) {
|
|
2675
|
-
var
|
|
2705
|
+
var _a23, _b, _c, _d, _e, _f;
|
|
2676
2706
|
return {
|
|
2677
|
-
onStart: (
|
|
2707
|
+
onStart: (_a23 = integration.onStart) == null ? void 0 : _a23.bind(integration),
|
|
2678
2708
|
onStepStart: (_b = integration.onStepStart) == null ? void 0 : _b.bind(integration),
|
|
2679
2709
|
onToolCallStart: (_c = integration.onToolCallStart) == null ? void 0 : _c.bind(integration),
|
|
2680
2710
|
onToolCallFinish: (_d = integration.onToolCallFinish) == null ? void 0 : _d.bind(integration),
|
|
@@ -2758,12 +2788,12 @@ function createNullLanguageModelUsage() {
|
|
|
2758
2788
|
};
|
|
2759
2789
|
}
|
|
2760
2790
|
function addLanguageModelUsage(usage1, usage2) {
|
|
2761
|
-
var
|
|
2791
|
+
var _a23, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
2762
2792
|
return {
|
|
2763
2793
|
inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),
|
|
2764
2794
|
inputTokenDetails: {
|
|
2765
2795
|
noCacheTokens: addTokenCounts(
|
|
2766
|
-
(
|
|
2796
|
+
(_a23 = usage1.inputTokenDetails) == null ? void 0 : _a23.noCacheTokens,
|
|
2767
2797
|
(_b = usage2.inputTokenDetails) == null ? void 0 : _b.noCacheTokens
|
|
2768
2798
|
),
|
|
2769
2799
|
cacheReadTokens: addTokenCounts(
|
|
@@ -2809,14 +2839,14 @@ function addImageModelUsage(usage1, usage2) {
|
|
|
2809
2839
|
}
|
|
2810
2840
|
|
|
2811
2841
|
// src/util/retry-with-exponential-backoff.ts
|
|
2812
|
-
var
|
|
2842
|
+
var import_provider28 = require("@ai-sdk/provider");
|
|
2813
2843
|
var import_gateway3 = require("@ai-sdk/gateway");
|
|
2814
2844
|
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
2815
2845
|
function getRetryDelayInMs({
|
|
2816
2846
|
error,
|
|
2817
2847
|
exponentialBackoffDelay
|
|
2818
2848
|
}) {
|
|
2819
|
-
const headers =
|
|
2849
|
+
const headers = import_provider28.APICallError.isInstance(error) ? error.responseHeaders : import_provider28.APICallError.isInstance(error.cause) ? error.cause.responseHeaders : void 0;
|
|
2820
2850
|
if (!headers)
|
|
2821
2851
|
return exponentialBackoffDelay;
|
|
2822
2852
|
let ms;
|
|
@@ -2851,7 +2881,7 @@ var retryWithExponentialBackoffRespectingRetryHeaders = ({
|
|
|
2851
2881
|
initialDelayInMs,
|
|
2852
2882
|
backoffFactor,
|
|
2853
2883
|
abortSignal,
|
|
2854
|
-
shouldRetry: (error) => error instanceof Error && (
|
|
2884
|
+
shouldRetry: (error) => error instanceof Error && (import_provider28.APICallError.isInstance(error) && error.isRetryable === true || import_gateway3.GatewayError.isInstance(error) && error.isRetryable === true),
|
|
2855
2885
|
getDelayInMs: ({ error, exponentialBackoffDelay }) => getRetryDelayInMs({
|
|
2856
2886
|
error,
|
|
2857
2887
|
exponentialBackoffDelay
|
|
@@ -2990,8 +3020,8 @@ var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
|
|
2990
3020
|
|
|
2991
3021
|
// src/util/now.ts
|
|
2992
3022
|
function now() {
|
|
2993
|
-
var
|
|
2994
|
-
return (_b = (
|
|
3023
|
+
var _a23, _b;
|
|
3024
|
+
return (_b = (_a23 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a23.now()) != null ? _b : Date.now();
|
|
2995
3025
|
}
|
|
2996
3026
|
|
|
2997
3027
|
// src/generate-text/execute-tool-call.ts
|
|
@@ -3009,7 +3039,7 @@ async function executeToolCall({
|
|
|
3009
3039
|
onToolCallStart,
|
|
3010
3040
|
onToolCallFinish
|
|
3011
3041
|
}) {
|
|
3012
|
-
var
|
|
3042
|
+
var _a23;
|
|
3013
3043
|
const { toolName, toolCallId, input } = toolCall;
|
|
3014
3044
|
const tool2 = tools == null ? void 0 : tools[toolName];
|
|
3015
3045
|
if ((tool2 == null ? void 0 : tool2.execute) == null) {
|
|
@@ -3035,7 +3065,7 @@ async function executeToolCall({
|
|
|
3035
3065
|
telemetry
|
|
3036
3066
|
}),
|
|
3037
3067
|
...Object.fromEntries(
|
|
3038
|
-
Object.entries((
|
|
3068
|
+
Object.entries((_a23 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a23 : {}).map(([key, value]) => [
|
|
3039
3069
|
`ai.telemetry.metadata.${key}`,
|
|
3040
3070
|
value
|
|
3041
3071
|
])
|
|
@@ -3164,7 +3194,7 @@ function filterActiveTools({
|
|
|
3164
3194
|
}
|
|
3165
3195
|
return Object.fromEntries(
|
|
3166
3196
|
Object.entries(tools).filter(
|
|
3167
|
-
([
|
|
3197
|
+
([name23]) => activeTools.includes(name23)
|
|
3168
3198
|
)
|
|
3169
3199
|
);
|
|
3170
3200
|
}
|
|
@@ -3327,7 +3357,7 @@ async function validateApprovedToolApprovals({
|
|
|
3327
3357
|
experimental_context,
|
|
3328
3358
|
toolApprovalSecret
|
|
3329
3359
|
}) {
|
|
3330
|
-
var
|
|
3360
|
+
var _a23;
|
|
3331
3361
|
const approved = [];
|
|
3332
3362
|
const denied = [];
|
|
3333
3363
|
const invalid = [];
|
|
@@ -3389,7 +3419,7 @@ async function validateApprovedToolApprovals({
|
|
|
3389
3419
|
approvalResponse: {
|
|
3390
3420
|
...approval.approvalResponse,
|
|
3391
3421
|
approved: false,
|
|
3392
|
-
reason: (
|
|
3422
|
+
reason: (_a23 = approval.approvalResponse.reason) != null ? _a23 : `Tool "${toolCall.toolName}" does not require approval`
|
|
3393
3423
|
}
|
|
3394
3424
|
});
|
|
3395
3425
|
}
|
|
@@ -3410,7 +3440,7 @@ __export(output_exports, {
|
|
|
3410
3440
|
object: () => object,
|
|
3411
3441
|
text: () => text
|
|
3412
3442
|
});
|
|
3413
|
-
var
|
|
3443
|
+
var import_provider29 = require("@ai-sdk/provider");
|
|
3414
3444
|
var import_provider_utils14 = require("@ai-sdk/provider-utils");
|
|
3415
3445
|
|
|
3416
3446
|
// src/util/parse-partial-json.ts
|
|
@@ -3785,7 +3815,7 @@ var text = () => ({
|
|
|
3785
3815
|
});
|
|
3786
3816
|
var object = ({
|
|
3787
3817
|
schema: inputSchema,
|
|
3788
|
-
name:
|
|
3818
|
+
name: name23,
|
|
3789
3819
|
description
|
|
3790
3820
|
}) => {
|
|
3791
3821
|
const schema = (0, import_provider_utils14.asSchema)(inputSchema);
|
|
@@ -3794,7 +3824,7 @@ var object = ({
|
|
|
3794
3824
|
responseFormat: (0, import_provider_utils14.resolve)(schema.jsonSchema).then((jsonSchema2) => ({
|
|
3795
3825
|
type: "json",
|
|
3796
3826
|
schema: jsonSchema2,
|
|
3797
|
-
...
|
|
3827
|
+
...name23 != null && { name: name23 },
|
|
3798
3828
|
...description != null && { description }
|
|
3799
3829
|
})),
|
|
3800
3830
|
async parseCompleteOutput({ text: text2 }, context2) {
|
|
@@ -3848,7 +3878,7 @@ var object = ({
|
|
|
3848
3878
|
};
|
|
3849
3879
|
var array = ({
|
|
3850
3880
|
element: inputElementSchema,
|
|
3851
|
-
name:
|
|
3881
|
+
name: name23,
|
|
3852
3882
|
description
|
|
3853
3883
|
}) => {
|
|
3854
3884
|
const elementSchema = (0, import_provider_utils14.asSchema)(inputElementSchema);
|
|
@@ -3868,7 +3898,7 @@ var array = ({
|
|
|
3868
3898
|
required: ["elements"],
|
|
3869
3899
|
additionalProperties: false
|
|
3870
3900
|
},
|
|
3871
|
-
...
|
|
3901
|
+
...name23 != null && { name: name23 },
|
|
3872
3902
|
...description != null && { description }
|
|
3873
3903
|
};
|
|
3874
3904
|
}),
|
|
@@ -3888,7 +3918,7 @@ var array = ({
|
|
|
3888
3918
|
if (outerValue == null || typeof outerValue !== "object" || !("elements" in outerValue) || !Array.isArray(outerValue.elements)) {
|
|
3889
3919
|
throw new NoObjectGeneratedError({
|
|
3890
3920
|
message: "No object generated: response did not match schema.",
|
|
3891
|
-
cause: new
|
|
3921
|
+
cause: new import_provider29.TypeValidationError({
|
|
3892
3922
|
value: outerValue,
|
|
3893
3923
|
cause: "response must be an object with an elements array"
|
|
3894
3924
|
}),
|
|
@@ -3962,7 +3992,7 @@ var array = ({
|
|
|
3962
3992
|
};
|
|
3963
3993
|
var choice = ({
|
|
3964
3994
|
options: choiceOptions,
|
|
3965
|
-
name:
|
|
3995
|
+
name: name23,
|
|
3966
3996
|
description
|
|
3967
3997
|
}) => {
|
|
3968
3998
|
return {
|
|
@@ -3979,7 +4009,7 @@ var choice = ({
|
|
|
3979
4009
|
required: ["result"],
|
|
3980
4010
|
additionalProperties: false
|
|
3981
4011
|
},
|
|
3982
|
-
...
|
|
4012
|
+
...name23 != null && { name: name23 },
|
|
3983
4013
|
...description != null && { description }
|
|
3984
4014
|
}),
|
|
3985
4015
|
async parseCompleteOutput({ text: text2 }, context2) {
|
|
@@ -3998,7 +4028,7 @@ var choice = ({
|
|
|
3998
4028
|
if (outerValue == null || typeof outerValue !== "object" || !("result" in outerValue) || typeof outerValue.result !== "string" || !choiceOptions.includes(outerValue.result)) {
|
|
3999
4029
|
throw new NoObjectGeneratedError({
|
|
4000
4030
|
message: "No object generated: response did not match schema.",
|
|
4001
|
-
cause: new
|
|
4031
|
+
cause: new import_provider29.TypeValidationError({
|
|
4002
4032
|
value: outerValue,
|
|
4003
4033
|
cause: "response must be an object that contains a choice value."
|
|
4004
4034
|
}),
|
|
@@ -4040,14 +4070,14 @@ var choice = ({
|
|
|
4040
4070
|
};
|
|
4041
4071
|
};
|
|
4042
4072
|
var json = ({
|
|
4043
|
-
name:
|
|
4073
|
+
name: name23,
|
|
4044
4074
|
description
|
|
4045
4075
|
} = {}) => {
|
|
4046
4076
|
return {
|
|
4047
4077
|
name: "json",
|
|
4048
4078
|
responseFormat: Promise.resolve({
|
|
4049
4079
|
type: "json",
|
|
4050
|
-
...
|
|
4080
|
+
...name23 != null && { name: name23 },
|
|
4051
4081
|
...description != null && { description }
|
|
4052
4082
|
}),
|
|
4053
4083
|
async parseCompleteOutput({ text: text2 }, context2) {
|
|
@@ -4218,9 +4248,9 @@ function prepareStepCallSettings({
|
|
|
4218
4248
|
callSettings,
|
|
4219
4249
|
stepSettings
|
|
4220
4250
|
}) {
|
|
4221
|
-
var
|
|
4251
|
+
var _a23, _b, _c, _d, _e, _f, _g, _h;
|
|
4222
4252
|
return prepareCallSettings({
|
|
4223
|
-
maxOutputTokens: (
|
|
4253
|
+
maxOutputTokens: (_a23 = stepSettings == null ? void 0 : stepSettings.maxOutputTokens) != null ? _a23 : callSettings.maxOutputTokens,
|
|
4224
4254
|
temperature: (_b = stepSettings == null ? void 0 : stepSettings.temperature) != null ? _b : callSettings.temperature,
|
|
4225
4255
|
topP: (_c = stepSettings == null ? void 0 : stepSettings.topP) != null ? _c : callSettings.topP,
|
|
4226
4256
|
topK: (_d = stepSettings == null ? void 0 : stepSettings.topK) != null ? _d : callSettings.topK,
|
|
@@ -4314,8 +4344,8 @@ function isLoopFinished() {
|
|
|
4314
4344
|
}
|
|
4315
4345
|
function hasToolCall(toolName) {
|
|
4316
4346
|
return ({ steps }) => {
|
|
4317
|
-
var
|
|
4318
|
-
return (_c = (_b = (
|
|
4347
|
+
var _a23, _b, _c;
|
|
4348
|
+
return (_c = (_b = (_a23 = steps[steps.length - 1]) == null ? void 0 : _a23.toolCalls) == null ? void 0 : _b.some(
|
|
4319
4349
|
(toolCall) => toolCall.toolName === toolName
|
|
4320
4350
|
)) != null ? _c : false;
|
|
4321
4351
|
};
|
|
@@ -4645,7 +4675,7 @@ async function generateText({
|
|
|
4645
4675
|
}),
|
|
4646
4676
|
tracer,
|
|
4647
4677
|
fn: async (span) => {
|
|
4648
|
-
var
|
|
4678
|
+
var _a23, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
|
|
4649
4679
|
const initialMessages = initialPrompt.messages;
|
|
4650
4680
|
const responseMessages = [];
|
|
4651
4681
|
const {
|
|
@@ -4770,7 +4800,7 @@ async function generateText({
|
|
|
4770
4800
|
experimental_context
|
|
4771
4801
|
}));
|
|
4772
4802
|
const stepModel = resolveLanguageModel(
|
|
4773
|
-
(
|
|
4803
|
+
(_a23 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a23 : model
|
|
4774
4804
|
);
|
|
4775
4805
|
const stepModelInfo = {
|
|
4776
4806
|
provider: stepModel.provider,
|
|
@@ -4870,7 +4900,7 @@ async function generateText({
|
|
|
4870
4900
|
}),
|
|
4871
4901
|
tracer,
|
|
4872
4902
|
fn: async (span2) => {
|
|
4873
|
-
var
|
|
4903
|
+
var _a24, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
|
|
4874
4904
|
const result = await stepModel.doGenerate({
|
|
4875
4905
|
...stepCallSettings,
|
|
4876
4906
|
tools: stepTools,
|
|
@@ -4882,7 +4912,7 @@ async function generateText({
|
|
|
4882
4912
|
headers: headersWithUserAgent
|
|
4883
4913
|
});
|
|
4884
4914
|
const responseData = {
|
|
4885
|
-
id: (_b2 = (
|
|
4915
|
+
id: (_b2 = (_a24 = result.response) == null ? void 0 : _a24.id) != null ? _b2 : generateId2(),
|
|
4886
4916
|
timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : /* @__PURE__ */ new Date(),
|
|
4887
4917
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
|
|
4888
4918
|
headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
|
|
@@ -4950,6 +4980,18 @@ async function generateText({
|
|
|
4950
4980
|
})
|
|
4951
4981
|
)
|
|
4952
4982
|
);
|
|
4983
|
+
const enforcedToolChoice = (stepToolChoice == null ? void 0 : stepToolChoice.type) === "required" || (stepToolChoice == null ? void 0 : stepToolChoice.type) === "tool" ? stepToolChoice : void 0;
|
|
4984
|
+
if (enforcedToolChoice != null && !stepToolCalls.some(
|
|
4985
|
+
(toolCall) => enforcedToolChoice.type === "required" || toolCall.toolName === enforcedToolChoice.toolName
|
|
4986
|
+
)) {
|
|
4987
|
+
throw new ToolChoiceViolationError({
|
|
4988
|
+
toolChoice: enforcedToolChoice,
|
|
4989
|
+
finishReason: currentModelResponse.finishReason.unified,
|
|
4990
|
+
provider: stepModel.provider,
|
|
4991
|
+
modelId: stepModel.modelId,
|
|
4992
|
+
content: currentModelResponse.content
|
|
4993
|
+
});
|
|
4994
|
+
}
|
|
4953
4995
|
const toolApprovalRequests = {};
|
|
4954
4996
|
for (const toolCall of stepToolCalls) {
|
|
4955
4997
|
if (toolCall.invalid) {
|
|
@@ -5470,7 +5512,7 @@ function asContent({
|
|
|
5470
5512
|
}
|
|
5471
5513
|
|
|
5472
5514
|
// src/generate-text/stream-text.ts
|
|
5473
|
-
var
|
|
5515
|
+
var import_provider30 = require("@ai-sdk/provider");
|
|
5474
5516
|
var import_provider_utils20 = require("@ai-sdk/provider-utils");
|
|
5475
5517
|
|
|
5476
5518
|
// src/util/prepare-headers.ts
|
|
@@ -5867,7 +5909,7 @@ function processUIMessageStream({
|
|
|
5867
5909
|
new TransformStream({
|
|
5868
5910
|
async transform(chunk, controller) {
|
|
5869
5911
|
await runUpdateMessageJob(async ({ state, write }) => {
|
|
5870
|
-
var
|
|
5912
|
+
var _a23, _b, _c, _d;
|
|
5871
5913
|
function getCurrentStepParts() {
|
|
5872
5914
|
const parts = state.message.parts;
|
|
5873
5915
|
let currentStepStartIndex = parts.length - 1;
|
|
@@ -5904,7 +5946,7 @@ function processUIMessageStream({
|
|
|
5904
5946
|
return toolInvocation;
|
|
5905
5947
|
}
|
|
5906
5948
|
function updateToolPart(options, existingPart) {
|
|
5907
|
-
var
|
|
5949
|
+
var _a24;
|
|
5908
5950
|
const part = existingPart != null ? existingPart : getCurrentStepParts().find(
|
|
5909
5951
|
(part2) => isStaticToolUIPart(part2) && part2.toolCallId === options.toolCallId
|
|
5910
5952
|
);
|
|
@@ -5923,7 +5965,7 @@ function processUIMessageStream({
|
|
|
5923
5965
|
if (options.toolMetadata !== void 0) {
|
|
5924
5966
|
anyPart.toolMetadata = options.toolMetadata;
|
|
5925
5967
|
}
|
|
5926
|
-
anyPart.providerExecuted = (
|
|
5968
|
+
anyPart.providerExecuted = (_a24 = anyOptions.providerExecuted) != null ? _a24 : part.providerExecuted;
|
|
5927
5969
|
const providerMetadata = anyOptions.providerMetadata;
|
|
5928
5970
|
if (providerMetadata != null) {
|
|
5929
5971
|
if (options.state === "output-available" || options.state === "output-error") {
|
|
@@ -5952,7 +5994,7 @@ function processUIMessageStream({
|
|
|
5952
5994
|
}
|
|
5953
5995
|
}
|
|
5954
5996
|
function updateDynamicToolPart(options, existingPart) {
|
|
5955
|
-
var
|
|
5997
|
+
var _a24, _b2;
|
|
5956
5998
|
const part = existingPart != null ? existingPart : getCurrentStepParts().find(
|
|
5957
5999
|
(part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
|
|
5958
6000
|
);
|
|
@@ -5964,7 +6006,7 @@ function processUIMessageStream({
|
|
|
5964
6006
|
anyPart.input = anyOptions.input;
|
|
5965
6007
|
anyPart.output = anyOptions.output;
|
|
5966
6008
|
anyPart.errorText = anyOptions.errorText;
|
|
5967
|
-
anyPart.rawInput = (
|
|
6009
|
+
anyPart.rawInput = (_a24 = anyOptions.rawInput) != null ? _a24 : anyPart.rawInput;
|
|
5968
6010
|
anyPart.preliminary = anyOptions.preliminary;
|
|
5969
6011
|
if (options.title !== void 0) {
|
|
5970
6012
|
anyPart.title = options.title;
|
|
@@ -6039,7 +6081,7 @@ function processUIMessageStream({
|
|
|
6039
6081
|
});
|
|
6040
6082
|
}
|
|
6041
6083
|
textPart.text += chunk.delta;
|
|
6042
|
-
textPart.providerMetadata = (
|
|
6084
|
+
textPart.providerMetadata = (_a23 = chunk.providerMetadata) != null ? _a23 : textPart.providerMetadata;
|
|
6043
6085
|
write();
|
|
6044
6086
|
break;
|
|
6045
6087
|
}
|
|
@@ -6506,13 +6548,13 @@ function handleUIMessageStreamFinish({
|
|
|
6506
6548
|
};
|
|
6507
6549
|
let finishCalled = false;
|
|
6508
6550
|
const callOnFinish = async () => {
|
|
6509
|
-
var
|
|
6551
|
+
var _a23;
|
|
6510
6552
|
if (finishCalled || !onFinish) {
|
|
6511
6553
|
return;
|
|
6512
6554
|
}
|
|
6513
6555
|
finishCalled = true;
|
|
6514
6556
|
const isContinuation = state.message.id === (lastMessage == null ? void 0 : lastMessage.id);
|
|
6515
|
-
const declaredOutcome = (
|
|
6557
|
+
const declaredOutcome = (_a23 = getOutcome == null ? void 0 : getOutcome()) != null ? _a23 : { status: "unknown" };
|
|
6516
6558
|
const outcome = hasProcessingFailure ? { status: "failed", error: processingError } : declaredOutcome.status === "unknown" && isAborted ? { status: "aborted" } : declaredOutcome;
|
|
6517
6559
|
await onFinish({
|
|
6518
6560
|
isAborted: isAborted || outcome.status === "aborted",
|
|
@@ -6606,13 +6648,13 @@ function createAsyncIterableStream(source) {
|
|
|
6606
6648
|
const reader = this.getReader();
|
|
6607
6649
|
let finished = false;
|
|
6608
6650
|
async function cleanup(cancelStream) {
|
|
6609
|
-
var
|
|
6651
|
+
var _a23;
|
|
6610
6652
|
if (finished)
|
|
6611
6653
|
return;
|
|
6612
6654
|
finished = true;
|
|
6613
6655
|
try {
|
|
6614
6656
|
if (cancelStream) {
|
|
6615
|
-
await ((
|
|
6657
|
+
await ((_a23 = reader.cancel) == null ? void 0 : _a23.call(reader));
|
|
6616
6658
|
}
|
|
6617
6659
|
} finally {
|
|
6618
6660
|
try {
|
|
@@ -6727,7 +6769,7 @@ function createStitchableStream() {
|
|
|
6727
6769
|
controller == null ? void 0 : controller.close();
|
|
6728
6770
|
};
|
|
6729
6771
|
const processPull = async () => {
|
|
6730
|
-
var
|
|
6772
|
+
var _a23;
|
|
6731
6773
|
if (isCancelled) {
|
|
6732
6774
|
return;
|
|
6733
6775
|
}
|
|
@@ -6760,7 +6802,7 @@ function createStitchableStream() {
|
|
|
6760
6802
|
if (isCancelled) {
|
|
6761
6803
|
return;
|
|
6762
6804
|
}
|
|
6763
|
-
(
|
|
6805
|
+
(_a23 = currentStream.onError) == null ? void 0 : _a23.call(currentStream, error);
|
|
6764
6806
|
controller == null ? void 0 : controller.error(error);
|
|
6765
6807
|
innerStreams.shift();
|
|
6766
6808
|
terminate();
|
|
@@ -6784,9 +6826,9 @@ function createStitchableStream() {
|
|
|
6784
6826
|
}
|
|
6785
6827
|
}),
|
|
6786
6828
|
addStream: (innerStream, callbacks) => {
|
|
6787
|
-
var
|
|
6829
|
+
var _a23;
|
|
6788
6830
|
if (isCancelled) {
|
|
6789
|
-
(
|
|
6831
|
+
(_a23 = callbacks == null ? void 0 : callbacks.onCancel) == null ? void 0 : _a23.call(callbacks);
|
|
6790
6832
|
void innerStream.cancel().catch(() => {
|
|
6791
6833
|
});
|
|
6792
6834
|
return;
|
|
@@ -7265,7 +7307,7 @@ function createOutputTransformStream(output) {
|
|
|
7265
7307
|
}
|
|
7266
7308
|
return new TransformStream({
|
|
7267
7309
|
async transform(chunk, controller) {
|
|
7268
|
-
var
|
|
7310
|
+
var _a23;
|
|
7269
7311
|
if (chunk.type === "finish-step" && textChunk.length > 0) {
|
|
7270
7312
|
publishTextChunk({ controller });
|
|
7271
7313
|
}
|
|
@@ -7292,7 +7334,7 @@ function createOutputTransformStream(output) {
|
|
|
7292
7334
|
}
|
|
7293
7335
|
text2 += chunk.text;
|
|
7294
7336
|
textChunk += chunk.text;
|
|
7295
|
-
textProviderMetadata = (
|
|
7337
|
+
textProviderMetadata = (_a23 = chunk.providerMetadata) != null ? _a23 : textProviderMetadata;
|
|
7296
7338
|
if (chunk.text.length === 0 && chunk.providerMetadata != null) {
|
|
7297
7339
|
controller.enqueue({ part: chunk, partialOutput: void 0 });
|
|
7298
7340
|
return;
|
|
@@ -7398,7 +7440,7 @@ var DefaultStreamTextResult = class {
|
|
|
7398
7440
|
let activeReasoningContent = createIdMap();
|
|
7399
7441
|
const eventProcessor = new TransformStream({
|
|
7400
7442
|
async transform(chunk, controller) {
|
|
7401
|
-
var
|
|
7443
|
+
var _a23, _b, _c, _d;
|
|
7402
7444
|
controller.enqueue(chunk);
|
|
7403
7445
|
const { part } = chunk;
|
|
7404
7446
|
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") {
|
|
@@ -7438,7 +7480,7 @@ var DefaultStreamTextResult = class {
|
|
|
7438
7480
|
return;
|
|
7439
7481
|
}
|
|
7440
7482
|
activeText.text += part.text;
|
|
7441
|
-
activeText.providerMetadata = (
|
|
7483
|
+
activeText.providerMetadata = (_a23 = part.providerMetadata) != null ? _a23 : activeText.providerMetadata;
|
|
7442
7484
|
}
|
|
7443
7485
|
if (part.type === "text-end") {
|
|
7444
7486
|
const activeText = activeTextContent[part.id];
|
|
@@ -7564,7 +7606,7 @@ var DefaultStreamTextResult = class {
|
|
|
7564
7606
|
}
|
|
7565
7607
|
},
|
|
7566
7608
|
async flush(controller) {
|
|
7567
|
-
var
|
|
7609
|
+
var _a23, _b, _c, _d, _e, _f, _g;
|
|
7568
7610
|
try {
|
|
7569
7611
|
if (recordedSteps.length === 0 || recordedNoOutputError != null) {
|
|
7570
7612
|
const error = (abortSignal == null ? void 0 : abortSignal.aborted) ? abortSignal.reason : recordedNoOutputError != null ? recordedNoOutputError : new NoOutputGeneratedError({
|
|
@@ -7628,15 +7670,15 @@ var DefaultStreamTextResult = class {
|
|
|
7628
7670
|
},
|
|
7629
7671
|
"ai.response.toolCalls": {
|
|
7630
7672
|
output: () => {
|
|
7631
|
-
var
|
|
7632
|
-
return ((
|
|
7673
|
+
var _a24;
|
|
7674
|
+
return ((_a24 = finalStep.toolCalls) == null ? void 0 : _a24.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
|
|
7633
7675
|
}
|
|
7634
7676
|
},
|
|
7635
7677
|
"ai.response.providerMetadata": JSON.stringify(
|
|
7636
7678
|
finalStep.providerMetadata
|
|
7637
7679
|
),
|
|
7638
7680
|
"ai.usage.inputTokens": totalUsage.inputTokens,
|
|
7639
|
-
"ai.usage.inputTokenDetails.noCacheTokens": (
|
|
7681
|
+
"ai.usage.inputTokenDetails.noCacheTokens": (_a23 = totalUsage.inputTokenDetails) == null ? void 0 : _a23.noCacheTokens,
|
|
7640
7682
|
"ai.usage.inputTokenDetails.cacheReadTokens": (_b = totalUsage.inputTokenDetails) == null ? void 0 : _b.cacheReadTokens,
|
|
7641
7683
|
"ai.usage.inputTokenDetails.cacheWriteTokens": (_c = totalUsage.inputTokenDetails) == null ? void 0 : _c.cacheWriteTokens,
|
|
7642
7684
|
"ai.usage.outputTokens": totalUsage.outputTokens,
|
|
@@ -7671,7 +7713,7 @@ var DefaultStreamTextResult = class {
|
|
|
7671
7713
|
// The `reason` is usually of type DOMException, but it can also be of any type,
|
|
7672
7714
|
// so we use getErrorMessage for serialization because it is already designed to accept values of the unknown type.
|
|
7673
7715
|
// See: https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason
|
|
7674
|
-
...(abortSignal == null ? void 0 : abortSignal.reason) !== void 0 ? { reason: (0,
|
|
7716
|
+
...(abortSignal == null ? void 0 : abortSignal.reason) !== void 0 ? { reason: (0, import_provider30.getErrorMessage)(abortSignal.reason) } : {}
|
|
7675
7717
|
});
|
|
7676
7718
|
controller.close();
|
|
7677
7719
|
}
|
|
@@ -7833,7 +7875,7 @@ var DefaultStreamTextResult = class {
|
|
|
7833
7875
|
toolCallId: toolApproval.toolCall.toolCallId,
|
|
7834
7876
|
toolName: toolApproval.toolCall.toolName,
|
|
7835
7877
|
input: toolApproval.toolCall.input,
|
|
7836
|
-
error: (0,
|
|
7878
|
+
error: (0, import_provider30.getErrorMessage)(toolApproval.error),
|
|
7837
7879
|
title: toolApproval.toolCall.title,
|
|
7838
7880
|
...toolApproval.toolCall.dynamic === true ? { dynamic: true } : {},
|
|
7839
7881
|
...toolApproval.toolCall.toolMetadata != null ? { toolMetadata: toolApproval.toolCall.toolMetadata } : {}
|
|
@@ -7926,7 +7968,7 @@ var DefaultStreamTextResult = class {
|
|
|
7926
7968
|
responseMessages,
|
|
7927
7969
|
usage
|
|
7928
7970
|
}) {
|
|
7929
|
-
var
|
|
7971
|
+
var _a23, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
7930
7972
|
const includeRawChunks2 = self.includeRawChunks;
|
|
7931
7973
|
const stepTimeoutId = setAbortTimeout({
|
|
7932
7974
|
abortController: stepAbortController,
|
|
@@ -7977,7 +8019,7 @@ var DefaultStreamTextResult = class {
|
|
|
7977
8019
|
experimental_context
|
|
7978
8020
|
}));
|
|
7979
8021
|
const stepModel = resolveLanguageModel(
|
|
7980
|
-
(
|
|
8022
|
+
(_a23 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a23 : model
|
|
7981
8023
|
);
|
|
7982
8024
|
const stepModelInfo = {
|
|
7983
8025
|
provider: stepModel.provider,
|
|
@@ -8147,7 +8189,7 @@ var DefaultStreamTextResult = class {
|
|
|
8147
8189
|
streamWithToolResults.pipeThrough(
|
|
8148
8190
|
new TransformStream({
|
|
8149
8191
|
async transform(chunk, controller) {
|
|
8150
|
-
var
|
|
8192
|
+
var _a24, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2;
|
|
8151
8193
|
resetChunkTimeout();
|
|
8152
8194
|
if (chunk.type === "stream-start") {
|
|
8153
8195
|
warnings = chunk.warnings;
|
|
@@ -8186,7 +8228,7 @@ var DefaultStreamTextResult = class {
|
|
|
8186
8228
|
case "text-end": {
|
|
8187
8229
|
controller.enqueue({
|
|
8188
8230
|
...chunk,
|
|
8189
|
-
id: (
|
|
8231
|
+
id: (_a24 = textPartIds.get(chunk.id)) != null ? _a24 : chunk.id
|
|
8190
8232
|
});
|
|
8191
8233
|
textPartIds.delete(chunk.id);
|
|
8192
8234
|
break;
|
|
@@ -8333,7 +8375,7 @@ var DefaultStreamTextResult = class {
|
|
|
8333
8375
|
},
|
|
8334
8376
|
// invoke onFinish callback and resolve toolResults promise when the stream is about to close:
|
|
8335
8377
|
async flush(controller) {
|
|
8336
|
-
var
|
|
8378
|
+
var _a24, _b2, _c2, _d2, _e2, _f2, _g2;
|
|
8337
8379
|
if (!hasReceivedTerminalChunk && !hasReceivedOutputChunk) {
|
|
8338
8380
|
controller.enqueue({
|
|
8339
8381
|
type: "error",
|
|
@@ -8360,7 +8402,7 @@ var DefaultStreamTextResult = class {
|
|
|
8360
8402
|
"ai.response.model": stepResponse.modelId,
|
|
8361
8403
|
"ai.response.timestamp": stepResponse.timestamp.toISOString(),
|
|
8362
8404
|
"ai.usage.inputTokens": stepUsage.inputTokens,
|
|
8363
|
-
"ai.usage.inputTokenDetails.noCacheTokens": (
|
|
8405
|
+
"ai.usage.inputTokenDetails.noCacheTokens": (_a24 = stepUsage.inputTokenDetails) == null ? void 0 : _a24.noCacheTokens,
|
|
8364
8406
|
"ai.usage.inputTokenDetails.cacheReadTokens": (_b2 = stepUsage.inputTokenDetails) == null ? void 0 : _b2.cacheReadTokens,
|
|
8365
8407
|
"ai.usage.inputTokenDetails.cacheWriteTokens": (_c2 = stepUsage.inputTokenDetails) == null ? void 0 : _c2.cacheWriteTokens,
|
|
8366
8408
|
"ai.usage.outputTokens": stepUsage.outputTokens,
|
|
@@ -8637,19 +8679,19 @@ var DefaultStreamTextResult = class {
|
|
|
8637
8679
|
this._steps.reject(error);
|
|
8638
8680
|
}
|
|
8639
8681
|
async consumeStream(options) {
|
|
8640
|
-
var
|
|
8682
|
+
var _a23;
|
|
8641
8683
|
try {
|
|
8642
8684
|
await consumeStream({
|
|
8643
8685
|
stream: this.fullStream,
|
|
8644
8686
|
onError: (error) => {
|
|
8645
|
-
var
|
|
8687
|
+
var _a24;
|
|
8646
8688
|
this.rejectResultPromises(error);
|
|
8647
|
-
(
|
|
8689
|
+
(_a24 = options == null ? void 0 : options.onError) == null ? void 0 : _a24.call(options, error);
|
|
8648
8690
|
}
|
|
8649
8691
|
});
|
|
8650
8692
|
} catch (error) {
|
|
8651
8693
|
this.rejectResultPromises(error);
|
|
8652
|
-
(
|
|
8694
|
+
(_a23 = options == null ? void 0 : options.onError) == null ? void 0 : _a23.call(options, error);
|
|
8653
8695
|
}
|
|
8654
8696
|
}
|
|
8655
8697
|
get experimental_partialOutputStream() {
|
|
@@ -8669,10 +8711,10 @@ var DefaultStreamTextResult = class {
|
|
|
8669
8711
|
);
|
|
8670
8712
|
}
|
|
8671
8713
|
get elementStream() {
|
|
8672
|
-
var
|
|
8673
|
-
const transform = (
|
|
8714
|
+
var _a23, _b, _c;
|
|
8715
|
+
const transform = (_a23 = this.outputSpecification) == null ? void 0 : _a23.createElementStreamTransform();
|
|
8674
8716
|
if (transform == null) {
|
|
8675
|
-
throw new
|
|
8717
|
+
throw new import_provider30.UnsupportedFunctionalityError({
|
|
8676
8718
|
functionality: `element streams in ${(_c = (_b = this.outputSpecification) == null ? void 0 : _b.name) != null ? _c : "text"} mode`
|
|
8677
8719
|
});
|
|
8678
8720
|
}
|
|
@@ -8680,8 +8722,8 @@ var DefaultStreamTextResult = class {
|
|
|
8680
8722
|
}
|
|
8681
8723
|
get output() {
|
|
8682
8724
|
return this.finalStep.then((step) => {
|
|
8683
|
-
var
|
|
8684
|
-
const output = (
|
|
8725
|
+
var _a23;
|
|
8726
|
+
const output = (_a23 = this.outputSpecification) != null ? _a23 : text();
|
|
8685
8727
|
return output.parseCompleteOutput(
|
|
8686
8728
|
{ text: step.text },
|
|
8687
8729
|
{
|
|
@@ -8720,8 +8762,8 @@ var DefaultStreamTextResult = class {
|
|
|
8720
8762
|
responseMessageId: generateMessageId
|
|
8721
8763
|
}) : void 0;
|
|
8722
8764
|
const isDynamic = (part) => {
|
|
8723
|
-
var
|
|
8724
|
-
const tool2 = (
|
|
8765
|
+
var _a23;
|
|
8766
|
+
const tool2 = (_a23 = this.tools) == null ? void 0 : _a23[part.toolName];
|
|
8725
8767
|
if (tool2 == null) {
|
|
8726
8768
|
return part.dynamic;
|
|
8727
8769
|
}
|
|
@@ -9119,7 +9161,7 @@ var ToolLoopAgent = class {
|
|
|
9119
9161
|
return this.settings.tools;
|
|
9120
9162
|
}
|
|
9121
9163
|
async prepareCall(options) {
|
|
9122
|
-
var
|
|
9164
|
+
var _a23, _b, _c, _d;
|
|
9123
9165
|
if (this.settings.callOptionsSchema != null && options.options !== void 0) {
|
|
9124
9166
|
const validatedOptions = await (0, import_provider_utils21.validateTypes)({
|
|
9125
9167
|
value: options.options,
|
|
@@ -9131,7 +9173,7 @@ var ToolLoopAgent = class {
|
|
|
9131
9173
|
const { onStepFinish: _settingsOnStepFinish, ...settingsWithoutCallback } = this.settings;
|
|
9132
9174
|
const baseCallArgs = {
|
|
9133
9175
|
...settingsWithoutCallback,
|
|
9134
|
-
stopWhen: (
|
|
9176
|
+
stopWhen: (_a23 = this.settings.stopWhen) != null ? _a23 : stepCountIs(20),
|
|
9135
9177
|
...options
|
|
9136
9178
|
};
|
|
9137
9179
|
const preparedCallArgs = (_d = await ((_c = (_b = this.settings).prepareCall) == null ? void 0 : _c.call(
|
|
@@ -9343,7 +9385,7 @@ function readUIMessageStream({
|
|
|
9343
9385
|
onError,
|
|
9344
9386
|
terminateOnError = false
|
|
9345
9387
|
}) {
|
|
9346
|
-
var
|
|
9388
|
+
var _a23;
|
|
9347
9389
|
let controller;
|
|
9348
9390
|
let hasErrored = false;
|
|
9349
9391
|
const outputStream = new ReadableStream({
|
|
@@ -9352,7 +9394,7 @@ function readUIMessageStream({
|
|
|
9352
9394
|
}
|
|
9353
9395
|
});
|
|
9354
9396
|
const state = createStreamingUIMessageState({
|
|
9355
|
-
messageId: (
|
|
9397
|
+
messageId: (_a23 = message == null ? void 0 : message.id) != null ? _a23 : "",
|
|
9356
9398
|
lastMessage: message
|
|
9357
9399
|
});
|
|
9358
9400
|
const handleError = (error) => {
|
|
@@ -9419,7 +9461,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
9419
9461
|
modelMessages.push({
|
|
9420
9462
|
role: "user",
|
|
9421
9463
|
content: message.parts.map((part) => {
|
|
9422
|
-
var
|
|
9464
|
+
var _a23;
|
|
9423
9465
|
if (isTextUIPart(part)) {
|
|
9424
9466
|
return {
|
|
9425
9467
|
type: "text",
|
|
@@ -9437,7 +9479,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
9437
9479
|
};
|
|
9438
9480
|
}
|
|
9439
9481
|
if (isDataUIPart(part)) {
|
|
9440
|
-
return (
|
|
9482
|
+
return (_a23 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a23.call(
|
|
9441
9483
|
options,
|
|
9442
9484
|
part
|
|
9443
9485
|
);
|
|
@@ -9450,7 +9492,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
9450
9492
|
if (message.parts != null) {
|
|
9451
9493
|
let block = [];
|
|
9452
9494
|
async function processBlock() {
|
|
9453
|
-
var
|
|
9495
|
+
var _a23, _b, _c, _d, _e, _f, _g, _h;
|
|
9454
9496
|
if (block.length === 0) {
|
|
9455
9497
|
return;
|
|
9456
9498
|
}
|
|
@@ -9483,7 +9525,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
9483
9525
|
type: "tool-call",
|
|
9484
9526
|
toolCallId: part.toolCallId,
|
|
9485
9527
|
toolName,
|
|
9486
|
-
input: part.state === "output-error" ? (
|
|
9528
|
+
input: part.state === "output-error" ? (_a23 = part.input) != null ? _a23 : "rawInput" in part ? part.rawInput : void 0 : part.input,
|
|
9487
9529
|
providerExecuted: part.providerExecuted,
|
|
9488
9530
|
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
|
9489
9531
|
});
|
|
@@ -9533,8 +9575,8 @@ async function convertToModelMessages(messages, options) {
|
|
|
9533
9575
|
}
|
|
9534
9576
|
const toolParts = block.filter(
|
|
9535
9577
|
(part) => {
|
|
9536
|
-
var
|
|
9537
|
-
return isToolUIPart(part) && (part.providerExecuted !== true || ((
|
|
9578
|
+
var _a24;
|
|
9579
|
+
return isToolUIPart(part) && (part.providerExecuted !== true || ((_a24 = part.approval) == null ? void 0 : _a24.approved) != null);
|
|
9538
9580
|
}
|
|
9539
9581
|
);
|
|
9540
9582
|
if (toolParts.length > 0) {
|
|
@@ -9622,7 +9664,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
9622
9664
|
}
|
|
9623
9665
|
|
|
9624
9666
|
// src/ui/validate-ui-messages.ts
|
|
9625
|
-
var
|
|
9667
|
+
var import_provider31 = require("@ai-sdk/provider");
|
|
9626
9668
|
var import_provider_utils24 = require("@ai-sdk/provider-utils");
|
|
9627
9669
|
var import_v48 = require("zod/v4");
|
|
9628
9670
|
var toolMetadataSchema2 = import_v48.z.record(
|
|
@@ -9989,7 +10031,7 @@ async function safeValidateUIMessagesInternal({
|
|
|
9989
10031
|
if (!dataSchema) {
|
|
9990
10032
|
return {
|
|
9991
10033
|
success: false,
|
|
9992
|
-
error: new
|
|
10034
|
+
error: new import_provider31.TypeValidationError({
|
|
9993
10035
|
value: dataPart.data,
|
|
9994
10036
|
cause: `No data schema found for data part ${dataName}`,
|
|
9995
10037
|
context: {
|
|
@@ -10026,7 +10068,7 @@ async function safeValidateUIMessagesInternal({
|
|
|
10026
10068
|
if (!tool2) {
|
|
10027
10069
|
return {
|
|
10028
10070
|
success: false,
|
|
10029
|
-
error: new
|
|
10071
|
+
error: new import_provider31.TypeValidationError({
|
|
10030
10072
|
value: toolPart.input,
|
|
10031
10073
|
cause: `No tool schema found for tool part ${toolName}`,
|
|
10032
10074
|
context: {
|
|
@@ -10138,7 +10180,7 @@ async function createAgentUIStream({
|
|
|
10138
10180
|
onStepFinish,
|
|
10139
10181
|
...uiMessageStreamOptions
|
|
10140
10182
|
}) {
|
|
10141
|
-
var
|
|
10183
|
+
var _a23;
|
|
10142
10184
|
const validatedMessages = await validateUIMessagesForAgent({
|
|
10143
10185
|
messages: uiMessages,
|
|
10144
10186
|
tools: agent.tools
|
|
@@ -10157,7 +10199,7 @@ async function createAgentUIStream({
|
|
|
10157
10199
|
return result.toUIMessageStream({
|
|
10158
10200
|
...uiMessageStreamOptions,
|
|
10159
10201
|
// TODO reading `originalMessages` is here for bc, always use `validatedMessages` in v7
|
|
10160
|
-
originalMessages: (
|
|
10202
|
+
originalMessages: (_a23 = uiMessageStreamOptions.originalMessages) != null ? _a23 : validatedMessages
|
|
10161
10203
|
});
|
|
10162
10204
|
}
|
|
10163
10205
|
|
|
@@ -10255,7 +10297,7 @@ async function embed({
|
|
|
10255
10297
|
}),
|
|
10256
10298
|
tracer,
|
|
10257
10299
|
fn: async (doEmbedSpan) => {
|
|
10258
|
-
var
|
|
10300
|
+
var _a23, _b;
|
|
10259
10301
|
const modelResponse = await model.doEmbed({
|
|
10260
10302
|
values: [value],
|
|
10261
10303
|
abortSignal,
|
|
@@ -10263,7 +10305,7 @@ async function embed({
|
|
|
10263
10305
|
providerOptions
|
|
10264
10306
|
});
|
|
10265
10307
|
const embedding2 = modelResponse.embeddings[0];
|
|
10266
|
-
const usage2 = (
|
|
10308
|
+
const usage2 = (_a23 = modelResponse.usage) != null ? _a23 : { tokens: NaN };
|
|
10267
10309
|
doEmbedSpan.setAttributes(
|
|
10268
10310
|
await selectTelemetryAttributes({
|
|
10269
10311
|
telemetry,
|
|
@@ -10383,7 +10425,7 @@ async function embedMany({
|
|
|
10383
10425
|
}),
|
|
10384
10426
|
tracer,
|
|
10385
10427
|
fn: async (span) => {
|
|
10386
|
-
var
|
|
10428
|
+
var _a23;
|
|
10387
10429
|
const [
|
|
10388
10430
|
maxEmbeddingsPerCall,
|
|
10389
10431
|
maxInputBytesPerCall,
|
|
@@ -10415,7 +10457,7 @@ async function embedMany({
|
|
|
10415
10457
|
}),
|
|
10416
10458
|
tracer,
|
|
10417
10459
|
fn: async (doEmbedSpan) => {
|
|
10418
|
-
var
|
|
10460
|
+
var _a24, _b;
|
|
10419
10461
|
const modelResponse = await model.doEmbed({
|
|
10420
10462
|
values,
|
|
10421
10463
|
abortSignal,
|
|
@@ -10423,7 +10465,7 @@ async function embedMany({
|
|
|
10423
10465
|
providerOptions
|
|
10424
10466
|
});
|
|
10425
10467
|
const embeddings3 = modelResponse.embeddings;
|
|
10426
|
-
const usage2 = (
|
|
10468
|
+
const usage2 = (_a24 = modelResponse.usage) != null ? _a24 : { tokens: NaN };
|
|
10427
10469
|
doEmbedSpan.setAttributes(
|
|
10428
10470
|
await selectTelemetryAttributes({
|
|
10429
10471
|
telemetry,
|
|
@@ -10508,7 +10550,7 @@ async function embedMany({
|
|
|
10508
10550
|
}),
|
|
10509
10551
|
tracer,
|
|
10510
10552
|
fn: async (doEmbedSpan) => {
|
|
10511
|
-
var
|
|
10553
|
+
var _a24, _b;
|
|
10512
10554
|
const modelResponse = await model.doEmbed({
|
|
10513
10555
|
values: chunk,
|
|
10514
10556
|
abortSignal,
|
|
@@ -10516,7 +10558,7 @@ async function embedMany({
|
|
|
10516
10558
|
providerOptions
|
|
10517
10559
|
});
|
|
10518
10560
|
const embeddings2 = modelResponse.embeddings;
|
|
10519
|
-
const usage = (
|
|
10561
|
+
const usage = (_a24 = modelResponse.usage) != null ? _a24 : { tokens: NaN };
|
|
10520
10562
|
doEmbedSpan.setAttributes(
|
|
10521
10563
|
await selectTelemetryAttributes({
|
|
10522
10564
|
telemetry,
|
|
@@ -10555,7 +10597,7 @@ async function embedMany({
|
|
|
10555
10597
|
result.providerMetadata
|
|
10556
10598
|
)) {
|
|
10557
10599
|
providerMetadata[providerName] = {
|
|
10558
|
-
...(
|
|
10600
|
+
...(_a23 = providerMetadata[providerName]) != null ? _a23 : {},
|
|
10559
10601
|
...metadata
|
|
10560
10602
|
};
|
|
10561
10603
|
}
|
|
@@ -10647,7 +10689,7 @@ async function generateImage({
|
|
|
10647
10689
|
abortSignal,
|
|
10648
10690
|
headers
|
|
10649
10691
|
}) {
|
|
10650
|
-
var
|
|
10692
|
+
var _a23, _b;
|
|
10651
10693
|
const model = resolveImageModel(modelArg);
|
|
10652
10694
|
const headersWithUserAgent = (0, import_provider_utils28.withUserAgentSuffix)(
|
|
10653
10695
|
headers != null ? headers : {},
|
|
@@ -10657,7 +10699,7 @@ async function generateImage({
|
|
|
10657
10699
|
maxRetries: maxRetriesArg,
|
|
10658
10700
|
abortSignal
|
|
10659
10701
|
});
|
|
10660
|
-
const maxImagesPerCallWithDefault = (
|
|
10702
|
+
const maxImagesPerCallWithDefault = (_a23 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a23 : 1;
|
|
10661
10703
|
const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
|
|
10662
10704
|
const callImageCounts = Array.from({ length: callCount }, (_, i) => {
|
|
10663
10705
|
if (i < callCount - 1) {
|
|
@@ -10698,13 +10740,13 @@ async function generateImage({
|
|
|
10698
10740
|
images.push(
|
|
10699
10741
|
...result.images.map(
|
|
10700
10742
|
(image) => {
|
|
10701
|
-
var
|
|
10743
|
+
var _a24;
|
|
10702
10744
|
return new DefaultGeneratedFile({
|
|
10703
10745
|
data: image,
|
|
10704
|
-
mediaType: (
|
|
10746
|
+
mediaType: (_a24 = detectMediaType({
|
|
10705
10747
|
data: image,
|
|
10706
10748
|
signatures: imageMediaTypeSignatures
|
|
10707
|
-
})) != null ?
|
|
10749
|
+
})) != null ? _a24 : "image/png"
|
|
10708
10750
|
});
|
|
10709
10751
|
}
|
|
10710
10752
|
)
|
|
@@ -10821,7 +10863,7 @@ var experimental_generateImage = generateImage;
|
|
|
10821
10863
|
var import_provider_utils31 = require("@ai-sdk/provider-utils");
|
|
10822
10864
|
|
|
10823
10865
|
// src/generate-object/output-strategy.ts
|
|
10824
|
-
var
|
|
10866
|
+
var import_provider32 = require("@ai-sdk/provider");
|
|
10825
10867
|
var import_provider_utils29 = require("@ai-sdk/provider-utils");
|
|
10826
10868
|
var noSchemaOutputStrategy = {
|
|
10827
10869
|
type: "no-schema",
|
|
@@ -10842,7 +10884,7 @@ var noSchemaOutputStrategy = {
|
|
|
10842
10884
|
} : { success: true, value };
|
|
10843
10885
|
},
|
|
10844
10886
|
createElementStream() {
|
|
10845
|
-
throw new
|
|
10887
|
+
throw new import_provider32.UnsupportedFunctionalityError({
|
|
10846
10888
|
functionality: "element streams in no-schema mode"
|
|
10847
10889
|
});
|
|
10848
10890
|
}
|
|
@@ -10864,7 +10906,7 @@ var objectOutputStrategy = (schema) => ({
|
|
|
10864
10906
|
return (0, import_provider_utils29.safeValidateTypes)({ value, schema });
|
|
10865
10907
|
},
|
|
10866
10908
|
createElementStream() {
|
|
10867
|
-
throw new
|
|
10909
|
+
throw new import_provider32.UnsupportedFunctionalityError({
|
|
10868
10910
|
functionality: "element streams in object mode"
|
|
10869
10911
|
});
|
|
10870
10912
|
}
|
|
@@ -10893,11 +10935,11 @@ var arrayOutputStrategy = (schema) => {
|
|
|
10893
10935
|
isFirstDelta,
|
|
10894
10936
|
isFinalDelta
|
|
10895
10937
|
}) {
|
|
10896
|
-
var
|
|
10897
|
-
if (!(0,
|
|
10938
|
+
var _a23;
|
|
10939
|
+
if (!(0, import_provider32.isJSONObject)(value) || !(0, import_provider32.isJSONArray)(value.elements)) {
|
|
10898
10940
|
return {
|
|
10899
10941
|
success: false,
|
|
10900
|
-
error: new
|
|
10942
|
+
error: new import_provider32.TypeValidationError({
|
|
10901
10943
|
value,
|
|
10902
10944
|
cause: "value must be an object that contains an array of elements"
|
|
10903
10945
|
})
|
|
@@ -10916,7 +10958,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
10916
10958
|
}
|
|
10917
10959
|
resultArray.push(result.value);
|
|
10918
10960
|
}
|
|
10919
|
-
const publishedElementCount = (
|
|
10961
|
+
const publishedElementCount = (_a23 = latestObject == null ? void 0 : latestObject.length) != null ? _a23 : 0;
|
|
10920
10962
|
let textDelta = "";
|
|
10921
10963
|
if (isFirstDelta) {
|
|
10922
10964
|
textDelta += "[";
|
|
@@ -10937,10 +10979,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
10937
10979
|
};
|
|
10938
10980
|
},
|
|
10939
10981
|
async validateFinalResult(value) {
|
|
10940
|
-
if (!(0,
|
|
10982
|
+
if (!(0, import_provider32.isJSONObject)(value) || !(0, import_provider32.isJSONArray)(value.elements)) {
|
|
10941
10983
|
return {
|
|
10942
10984
|
success: false,
|
|
10943
|
-
error: new
|
|
10985
|
+
error: new import_provider32.TypeValidationError({
|
|
10944
10986
|
value,
|
|
10945
10987
|
cause: "value must be an object that contains an array of elements"
|
|
10946
10988
|
})
|
|
@@ -11005,10 +11047,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
11005
11047
|
additionalProperties: false
|
|
11006
11048
|
}),
|
|
11007
11049
|
async validateFinalResult(value) {
|
|
11008
|
-
if (!(0,
|
|
11050
|
+
if (!(0, import_provider32.isJSONObject)(value) || typeof value.result !== "string") {
|
|
11009
11051
|
return {
|
|
11010
11052
|
success: false,
|
|
11011
|
-
error: new
|
|
11053
|
+
error: new import_provider32.TypeValidationError({
|
|
11012
11054
|
value,
|
|
11013
11055
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
11014
11056
|
})
|
|
@@ -11017,17 +11059,17 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
11017
11059
|
const result = value.result;
|
|
11018
11060
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
|
11019
11061
|
success: false,
|
|
11020
|
-
error: new
|
|
11062
|
+
error: new import_provider32.TypeValidationError({
|
|
11021
11063
|
value,
|
|
11022
11064
|
cause: "value must be a string in the enum"
|
|
11023
11065
|
})
|
|
11024
11066
|
};
|
|
11025
11067
|
},
|
|
11026
11068
|
async validatePartialResult({ value, textDelta }) {
|
|
11027
|
-
if (!(0,
|
|
11069
|
+
if (!(0, import_provider32.isJSONObject)(value) || typeof value.result !== "string") {
|
|
11028
11070
|
return {
|
|
11029
11071
|
success: false,
|
|
11030
|
-
error: new
|
|
11072
|
+
error: new import_provider32.TypeValidationError({
|
|
11031
11073
|
value,
|
|
11032
11074
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
11033
11075
|
})
|
|
@@ -11040,7 +11082,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
11040
11082
|
if (value.result.length === 0 || possibleEnumValues.length === 0) {
|
|
11041
11083
|
return {
|
|
11042
11084
|
success: false,
|
|
11043
|
-
error: new
|
|
11085
|
+
error: new import_provider32.TypeValidationError({
|
|
11044
11086
|
value,
|
|
11045
11087
|
cause: "value must be a string in the enum"
|
|
11046
11088
|
})
|
|
@@ -11055,7 +11097,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
11055
11097
|
};
|
|
11056
11098
|
},
|
|
11057
11099
|
createElementStream() {
|
|
11058
|
-
throw new
|
|
11100
|
+
throw new import_provider32.UnsupportedFunctionalityError({
|
|
11059
11101
|
functionality: "element streams in enum mode"
|
|
11060
11102
|
});
|
|
11061
11103
|
}
|
|
@@ -11083,7 +11125,7 @@ function getOutputStrategy({
|
|
|
11083
11125
|
}
|
|
11084
11126
|
|
|
11085
11127
|
// src/generate-object/parse-and-validate-object-result.ts
|
|
11086
|
-
var
|
|
11128
|
+
var import_provider33 = require("@ai-sdk/provider");
|
|
11087
11129
|
var import_provider_utils30 = require("@ai-sdk/provider-utils");
|
|
11088
11130
|
async function parseAndValidateObjectResult(result, outputStrategy, context2) {
|
|
11089
11131
|
const parseResult = await (0, import_provider_utils30.safeParseJSON)({ text: result });
|
|
@@ -11121,7 +11163,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
|
|
|
11121
11163
|
try {
|
|
11122
11164
|
return await parseAndValidateObjectResult(result, outputStrategy, context2);
|
|
11123
11165
|
} catch (error) {
|
|
11124
|
-
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (
|
|
11166
|
+
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider33.JSONParseError.isInstance(error.cause) || import_provider33.TypeValidationError.isInstance(error.cause))) {
|
|
11125
11167
|
const repairedText = await repairText({
|
|
11126
11168
|
text: result,
|
|
11127
11169
|
error: error.cause
|
|
@@ -11339,7 +11381,7 @@ async function generateObject(options) {
|
|
|
11339
11381
|
}),
|
|
11340
11382
|
tracer,
|
|
11341
11383
|
fn: async (span) => {
|
|
11342
|
-
var
|
|
11384
|
+
var _a23;
|
|
11343
11385
|
let result;
|
|
11344
11386
|
let finishReason;
|
|
11345
11387
|
let usage;
|
|
@@ -11386,7 +11428,7 @@ async function generateObject(options) {
|
|
|
11386
11428
|
}),
|
|
11387
11429
|
tracer,
|
|
11388
11430
|
fn: async (span2) => {
|
|
11389
|
-
var
|
|
11431
|
+
var _a24, _b, _c, _d, _e, _f, _g, _h;
|
|
11390
11432
|
const result2 = await model.doGenerate({
|
|
11391
11433
|
responseFormat: {
|
|
11392
11434
|
type: "json",
|
|
@@ -11401,7 +11443,7 @@ async function generateObject(options) {
|
|
|
11401
11443
|
headers: headersWithUserAgent
|
|
11402
11444
|
});
|
|
11403
11445
|
const responseData = {
|
|
11404
|
-
id: (_b = (
|
|
11446
|
+
id: (_b = (_a24 = result2.response) == null ? void 0 : _a24.id) != null ? _b : generateId2(),
|
|
11405
11447
|
timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
|
11406
11448
|
modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
|
|
11407
11449
|
headers: (_g = result2.response) == null ? void 0 : _g.headers,
|
|
@@ -11457,7 +11499,7 @@ async function generateObject(options) {
|
|
|
11457
11499
|
usage = asLanguageModelUsage(generateResult.usage);
|
|
11458
11500
|
warnings = generateResult.warnings;
|
|
11459
11501
|
resultProviderMetadata = generateResult.providerMetadata;
|
|
11460
|
-
request = (
|
|
11502
|
+
request = (_a23 = generateResult.request) != null ? _a23 : {};
|
|
11461
11503
|
response = generateResult.responseData;
|
|
11462
11504
|
reasoning = generateResult.reasoning;
|
|
11463
11505
|
logWarnings({
|
|
@@ -11520,9 +11562,9 @@ var DefaultGenerateObjectResult = class {
|
|
|
11520
11562
|
this.reasoning = options.reasoning;
|
|
11521
11563
|
}
|
|
11522
11564
|
toJsonResponse(init) {
|
|
11523
|
-
var
|
|
11565
|
+
var _a23;
|
|
11524
11566
|
return new Response(JSON.stringify(this.object), {
|
|
11525
|
-
status: (
|
|
11567
|
+
status: (_a23 = init == null ? void 0 : init.status) != null ? _a23 : 200,
|
|
11526
11568
|
headers: prepareHeaders(init == null ? void 0 : init.headers, {
|
|
11527
11569
|
"content-type": "application/json; charset=utf-8"
|
|
11528
11570
|
})
|
|
@@ -11653,8 +11695,8 @@ function simulateReadableStream({
|
|
|
11653
11695
|
chunkDelayInMs = 0,
|
|
11654
11696
|
_internal
|
|
11655
11697
|
}) {
|
|
11656
|
-
var
|
|
11657
|
-
const delay = (
|
|
11698
|
+
var _a23;
|
|
11699
|
+
const delay = (_a23 = _internal == null ? void 0 : _internal.delay) != null ? _a23 : import_provider_utils32.delay;
|
|
11658
11700
|
let index = 0;
|
|
11659
11701
|
return new ReadableStream({
|
|
11660
11702
|
async pull(controller) {
|
|
@@ -11928,7 +11970,7 @@ var DefaultStreamObjectResult = class {
|
|
|
11928
11970
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
|
11929
11971
|
new TransformStream({
|
|
11930
11972
|
async transform(chunk, controller) {
|
|
11931
|
-
var
|
|
11973
|
+
var _a23, _b, _c;
|
|
11932
11974
|
if (typeof chunk === "object" && chunk.type === "stream-start") {
|
|
11933
11975
|
warnings = chunk.warnings;
|
|
11934
11976
|
return;
|
|
@@ -11978,7 +12020,7 @@ var DefaultStreamObjectResult = class {
|
|
|
11978
12020
|
switch (chunk.type) {
|
|
11979
12021
|
case "response-metadata": {
|
|
11980
12022
|
fullResponse = {
|
|
11981
|
-
id: (
|
|
12023
|
+
id: (_a23 = chunk.id) != null ? _a23 : fullResponse.id,
|
|
11982
12024
|
timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
|
|
11983
12025
|
modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
|
|
11984
12026
|
};
|
|
@@ -12292,7 +12334,7 @@ async function generateSpeech({
|
|
|
12292
12334
|
abortSignal,
|
|
12293
12335
|
headers
|
|
12294
12336
|
}) {
|
|
12295
|
-
var
|
|
12337
|
+
var _a23;
|
|
12296
12338
|
const resolvedModel = resolveSpeechModel(model);
|
|
12297
12339
|
if (!resolvedModel) {
|
|
12298
12340
|
throw new Error("Model could not be resolved");
|
|
@@ -12329,10 +12371,10 @@ async function generateSpeech({
|
|
|
12329
12371
|
return new DefaultSpeechResult({
|
|
12330
12372
|
audio: new DefaultGeneratedAudioFile({
|
|
12331
12373
|
data: result.audio,
|
|
12332
|
-
mediaType: (
|
|
12374
|
+
mediaType: (_a23 = detectMediaType({
|
|
12333
12375
|
data: result.audio,
|
|
12334
12376
|
signatures: audioMediaTypeSignatures
|
|
12335
|
-
})) != null ?
|
|
12377
|
+
})) != null ? _a23 : "audio/mp3"
|
|
12336
12378
|
}),
|
|
12337
12379
|
warnings: result.warnings,
|
|
12338
12380
|
responses: [result.response],
|
|
@@ -12341,11 +12383,11 @@ async function generateSpeech({
|
|
|
12341
12383
|
}
|
|
12342
12384
|
var DefaultSpeechResult = class {
|
|
12343
12385
|
constructor(options) {
|
|
12344
|
-
var
|
|
12386
|
+
var _a23;
|
|
12345
12387
|
this.audio = options.audio;
|
|
12346
12388
|
this.warnings = options.warnings;
|
|
12347
12389
|
this.responses = options.responses;
|
|
12348
|
-
this.providerMetadata = (
|
|
12390
|
+
this.providerMetadata = (_a23 = options.providerMetadata) != null ? _a23 : {};
|
|
12349
12391
|
}
|
|
12350
12392
|
};
|
|
12351
12393
|
|
|
@@ -12445,7 +12487,7 @@ function pruneMessages({
|
|
|
12445
12487
|
|
|
12446
12488
|
// src/generate-text/smooth-stream.ts
|
|
12447
12489
|
var import_provider_utils35 = require("@ai-sdk/provider-utils");
|
|
12448
|
-
var
|
|
12490
|
+
var import_provider34 = require("@ai-sdk/provider");
|
|
12449
12491
|
var CHUNKING_REGEXPS = {
|
|
12450
12492
|
word: /\S+\s+/m,
|
|
12451
12493
|
line: /\n+/m
|
|
@@ -12484,7 +12526,7 @@ function smoothStream({
|
|
|
12484
12526
|
} else {
|
|
12485
12527
|
const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking instanceof RegExp ? chunking : void 0;
|
|
12486
12528
|
if (chunkingRegex == null) {
|
|
12487
|
-
throw new
|
|
12529
|
+
throw new import_provider34.InvalidArgumentError({
|
|
12488
12530
|
argument: "chunking",
|
|
12489
12531
|
message: `Chunking must be "word", "line", a RegExp, an Intl.Segmenter, or a ChunkDetector function. Received: ${chunking}`
|
|
12490
12532
|
});
|
|
@@ -12563,7 +12605,7 @@ async function experimental_generateVideo({
|
|
|
12563
12605
|
headers,
|
|
12564
12606
|
download: downloadFn = defaultDownload
|
|
12565
12607
|
}) {
|
|
12566
|
-
var
|
|
12608
|
+
var _a23, _b;
|
|
12567
12609
|
const model = resolveVideoModel(modelArg);
|
|
12568
12610
|
const headersWithUserAgent = (0, import_provider_utils36.withUserAgentSuffix)(
|
|
12569
12611
|
headers != null ? headers : {},
|
|
@@ -12590,9 +12632,9 @@ async function experimental_generateVideo({
|
|
|
12590
12632
|
message: "inputReferences were ignored because frameImages were provided; frameImages and inputReferences cannot be combined."
|
|
12591
12633
|
});
|
|
12592
12634
|
}
|
|
12593
|
-
const firstFrameImage = (
|
|
12635
|
+
const firstFrameImage = (_a23 = normalizedFrameImages == null ? void 0 : normalizedFrameImages.find(
|
|
12594
12636
|
(frame) => frame.frameType === "first_frame"
|
|
12595
|
-
)) == null ? void 0 :
|
|
12637
|
+
)) == null ? void 0 : _a23.image;
|
|
12596
12638
|
if (image != null && firstFrameImage != null) {
|
|
12597
12639
|
warnings.push({
|
|
12598
12640
|
type: "other",
|
|
@@ -12736,8 +12778,8 @@ function normalizePrompt2(promptArg) {
|
|
|
12736
12778
|
};
|
|
12737
12779
|
}
|
|
12738
12780
|
function detectFileMediaType(data, restrictToImages) {
|
|
12739
|
-
var
|
|
12740
|
-
const detected = restrictToImages ? detectMediaType({ data, signatures: imageMediaTypeSignatures }) : (
|
|
12781
|
+
var _a23;
|
|
12782
|
+
const detected = restrictToImages ? detectMediaType({ data, signatures: imageMediaTypeSignatures }) : (_a23 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a23 : detectMediaType({ data, signatures: videoMediaTypeSignatures });
|
|
12741
12783
|
return detected != null ? detected : "image/png";
|
|
12742
12784
|
}
|
|
12743
12785
|
function normalizeImageData(dataContent, { restrictToImages = true } = {}) {
|
|
@@ -12831,8 +12873,8 @@ function stripMarkdownCodeFenceSuffix(text2) {
|
|
|
12831
12873
|
return text2.replace(/\n?```\s*$/, "").trimEnd();
|
|
12832
12874
|
}
|
|
12833
12875
|
function extractJsonMiddleware(options) {
|
|
12834
|
-
var
|
|
12835
|
-
const transform = (
|
|
12876
|
+
var _a23;
|
|
12877
|
+
const transform = (_a23 = options == null ? void 0 : options.transform) != null ? _a23 : defaultTransform;
|
|
12836
12878
|
const hasCustomTransform = (options == null ? void 0 : options.transform) !== void 0;
|
|
12837
12879
|
return {
|
|
12838
12880
|
specificationVersion: "v3",
|
|
@@ -13208,13 +13250,13 @@ function addToolInputExamplesMiddleware({
|
|
|
13208
13250
|
return {
|
|
13209
13251
|
specificationVersion: "v3",
|
|
13210
13252
|
transformParams: async ({ params }) => {
|
|
13211
|
-
var
|
|
13212
|
-
if (!((
|
|
13253
|
+
var _a23;
|
|
13254
|
+
if (!((_a23 = params.tools) == null ? void 0 : _a23.length)) {
|
|
13213
13255
|
return params;
|
|
13214
13256
|
}
|
|
13215
13257
|
const transformedTools = params.tools.map((tool2) => {
|
|
13216
|
-
var
|
|
13217
|
-
if (tool2.type !== "function" || !((
|
|
13258
|
+
var _a24;
|
|
13259
|
+
if (tool2.type !== "function" || !((_a24 = tool2.inputExamples) == null ? void 0 : _a24.length)) {
|
|
13218
13260
|
return tool2;
|
|
13219
13261
|
}
|
|
13220
13262
|
const formattedExamples = tool2.inputExamples.map((example, index) => format(example, index)).join("\n");
|
|
@@ -13261,7 +13303,7 @@ var doWrap = ({
|
|
|
13261
13303
|
modelId,
|
|
13262
13304
|
providerId
|
|
13263
13305
|
}) => {
|
|
13264
|
-
var
|
|
13306
|
+
var _a23, _b, _c;
|
|
13265
13307
|
async function doTransform({
|
|
13266
13308
|
params,
|
|
13267
13309
|
type
|
|
@@ -13270,7 +13312,7 @@ var doWrap = ({
|
|
|
13270
13312
|
}
|
|
13271
13313
|
return {
|
|
13272
13314
|
specificationVersion: "v3",
|
|
13273
|
-
provider: (
|
|
13315
|
+
provider: (_a23 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a23 : model.provider,
|
|
13274
13316
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
13275
13317
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
13276
13318
|
async doGenerate(params) {
|
|
@@ -13318,7 +13360,7 @@ var doWrap2 = ({
|
|
|
13318
13360
|
modelId,
|
|
13319
13361
|
providerId
|
|
13320
13362
|
}) => {
|
|
13321
|
-
var
|
|
13363
|
+
var _a23, _b, _c, _d;
|
|
13322
13364
|
async function doTransform({
|
|
13323
13365
|
params
|
|
13324
13366
|
}) {
|
|
@@ -13326,7 +13368,7 @@ var doWrap2 = ({
|
|
|
13326
13368
|
}
|
|
13327
13369
|
return {
|
|
13328
13370
|
specificationVersion: "v3",
|
|
13329
|
-
provider: (
|
|
13371
|
+
provider: (_a23 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a23 : model.provider,
|
|
13330
13372
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
13331
13373
|
maxEmbeddingsPerCall: (_c = overrideMaxEmbeddingsPerCall == null ? void 0 : overrideMaxEmbeddingsPerCall({ model })) != null ? _c : model.maxEmbeddingsPerCall,
|
|
13332
13374
|
[import_provider_utils37.EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL]: getEmbeddingModelMaxInputBytesPerCall(model),
|
|
@@ -13366,11 +13408,11 @@ var doWrap3 = ({
|
|
|
13366
13408
|
modelId,
|
|
13367
13409
|
providerId
|
|
13368
13410
|
}) => {
|
|
13369
|
-
var
|
|
13411
|
+
var _a23, _b, _c;
|
|
13370
13412
|
async function doTransform({ params }) {
|
|
13371
13413
|
return transformParams ? await transformParams({ params, model }) : params;
|
|
13372
13414
|
}
|
|
13373
|
-
const maxImagesPerCallRaw = (
|
|
13415
|
+
const maxImagesPerCallRaw = (_a23 = overrideMaxImagesPerCall == null ? void 0 : overrideMaxImagesPerCall({ model })) != null ? _a23 : model.maxImagesPerCall;
|
|
13374
13416
|
const maxImagesPerCall = maxImagesPerCallRaw instanceof Function ? maxImagesPerCallRaw.bind(model) : maxImagesPerCallRaw;
|
|
13375
13417
|
return {
|
|
13376
13418
|
specificationVersion: "v3",
|
|
@@ -13435,7 +13477,7 @@ function wrapProvider({
|
|
|
13435
13477
|
}
|
|
13436
13478
|
|
|
13437
13479
|
// src/registry/custom-provider.ts
|
|
13438
|
-
var
|
|
13480
|
+
var import_provider35 = require("@ai-sdk/provider");
|
|
13439
13481
|
function customProvider({
|
|
13440
13482
|
languageModels,
|
|
13441
13483
|
embeddingModels,
|
|
@@ -13456,7 +13498,7 @@ function customProvider({
|
|
|
13456
13498
|
if (fallbackProvider) {
|
|
13457
13499
|
return fallbackProvider.languageModel(modelId);
|
|
13458
13500
|
}
|
|
13459
|
-
throw new
|
|
13501
|
+
throw new import_provider35.NoSuchModelError({ modelId, modelType: "languageModel" });
|
|
13460
13502
|
},
|
|
13461
13503
|
embeddingModel(modelId) {
|
|
13462
13504
|
if (embeddingModels != null && modelId in embeddingModels) {
|
|
@@ -13465,7 +13507,7 @@ function customProvider({
|
|
|
13465
13507
|
if (fallbackProvider) {
|
|
13466
13508
|
return fallbackProvider.embeddingModel(modelId);
|
|
13467
13509
|
}
|
|
13468
|
-
throw new
|
|
13510
|
+
throw new import_provider35.NoSuchModelError({ modelId, modelType: "embeddingModel" });
|
|
13469
13511
|
},
|
|
13470
13512
|
imageModel(modelId) {
|
|
13471
13513
|
if (imageModels != null && modelId in imageModels) {
|
|
@@ -13474,7 +13516,7 @@ function customProvider({
|
|
|
13474
13516
|
if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
|
|
13475
13517
|
return fallbackProvider.imageModel(modelId);
|
|
13476
13518
|
}
|
|
13477
|
-
throw new
|
|
13519
|
+
throw new import_provider35.NoSuchModelError({ modelId, modelType: "imageModel" });
|
|
13478
13520
|
},
|
|
13479
13521
|
transcriptionModel(modelId) {
|
|
13480
13522
|
if (transcriptionModels != null && modelId in transcriptionModels) {
|
|
@@ -13483,7 +13525,7 @@ function customProvider({
|
|
|
13483
13525
|
if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {
|
|
13484
13526
|
return fallbackProvider.transcriptionModel(modelId);
|
|
13485
13527
|
}
|
|
13486
|
-
throw new
|
|
13528
|
+
throw new import_provider35.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
|
|
13487
13529
|
},
|
|
13488
13530
|
speechModel(modelId) {
|
|
13489
13531
|
if (speechModels != null && modelId in speechModels) {
|
|
@@ -13492,7 +13534,7 @@ function customProvider({
|
|
|
13492
13534
|
if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {
|
|
13493
13535
|
return fallbackProvider.speechModel(modelId);
|
|
13494
13536
|
}
|
|
13495
|
-
throw new
|
|
13537
|
+
throw new import_provider35.NoSuchModelError({ modelId, modelType: "speechModel" });
|
|
13496
13538
|
},
|
|
13497
13539
|
rerankingModel(modelId) {
|
|
13498
13540
|
if (rerankingModels != null && modelId in rerankingModels) {
|
|
@@ -13501,7 +13543,7 @@ function customProvider({
|
|
|
13501
13543
|
if (fallbackProvider == null ? void 0 : fallbackProvider.rerankingModel) {
|
|
13502
13544
|
return fallbackProvider.rerankingModel(modelId);
|
|
13503
13545
|
}
|
|
13504
|
-
throw new
|
|
13546
|
+
throw new import_provider35.NoSuchModelError({ modelId, modelType: "rerankingModel" });
|
|
13505
13547
|
},
|
|
13506
13548
|
videoModel(modelId) {
|
|
13507
13549
|
if (videoModels != null && modelId in videoModels) {
|
|
@@ -13511,19 +13553,19 @@ function customProvider({
|
|
|
13511
13553
|
if (videoModel) {
|
|
13512
13554
|
return videoModel(modelId);
|
|
13513
13555
|
}
|
|
13514
|
-
throw new
|
|
13556
|
+
throw new import_provider35.NoSuchModelError({ modelId, modelType: "videoModel" });
|
|
13515
13557
|
}
|
|
13516
13558
|
};
|
|
13517
13559
|
}
|
|
13518
13560
|
var experimental_customProvider = customProvider;
|
|
13519
13561
|
|
|
13520
13562
|
// src/registry/no-such-provider-error.ts
|
|
13521
|
-
var
|
|
13522
|
-
var
|
|
13523
|
-
var
|
|
13524
|
-
var
|
|
13525
|
-
var
|
|
13526
|
-
var NoSuchProviderError = class extends
|
|
13563
|
+
var import_provider36 = require("@ai-sdk/provider");
|
|
13564
|
+
var name22 = "AI_NoSuchProviderError";
|
|
13565
|
+
var marker22 = `vercel.ai.error.${name22}`;
|
|
13566
|
+
var symbol22 = Symbol.for(marker22);
|
|
13567
|
+
var _a22;
|
|
13568
|
+
var NoSuchProviderError = class extends import_provider36.NoSuchModelError {
|
|
13527
13569
|
constructor({
|
|
13528
13570
|
modelId,
|
|
13529
13571
|
modelType,
|
|
@@ -13531,19 +13573,19 @@ var NoSuchProviderError = class extends import_provider35.NoSuchModelError {
|
|
|
13531
13573
|
availableProviders,
|
|
13532
13574
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
|
13533
13575
|
}) {
|
|
13534
|
-
super({ errorName:
|
|
13535
|
-
this[
|
|
13576
|
+
super({ errorName: name22, modelId, modelType, message });
|
|
13577
|
+
this[_a22] = true;
|
|
13536
13578
|
this.providerId = providerId;
|
|
13537
13579
|
this.availableProviders = availableProviders;
|
|
13538
13580
|
}
|
|
13539
13581
|
static isInstance(error) {
|
|
13540
|
-
return
|
|
13582
|
+
return import_provider36.AISDKError.hasMarker(error, marker22);
|
|
13541
13583
|
}
|
|
13542
13584
|
};
|
|
13543
|
-
|
|
13585
|
+
_a22 = symbol22;
|
|
13544
13586
|
|
|
13545
13587
|
// src/registry/provider-registry.ts
|
|
13546
|
-
var
|
|
13588
|
+
var import_provider37 = require("@ai-sdk/provider");
|
|
13547
13589
|
function createProviderRegistry(providers, {
|
|
13548
13590
|
separator = ":",
|
|
13549
13591
|
languageModelMiddleware,
|
|
@@ -13592,7 +13634,7 @@ var DefaultProviderRegistry = class {
|
|
|
13592
13634
|
splitId(id, modelType) {
|
|
13593
13635
|
const index = id.indexOf(this.separator);
|
|
13594
13636
|
if (index === -1) {
|
|
13595
|
-
throw new
|
|
13637
|
+
throw new import_provider37.NoSuchModelError({
|
|
13596
13638
|
modelId: id,
|
|
13597
13639
|
modelType,
|
|
13598
13640
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
|
|
@@ -13601,14 +13643,14 @@ var DefaultProviderRegistry = class {
|
|
|
13601
13643
|
return [id.slice(0, index), id.slice(index + this.separator.length)];
|
|
13602
13644
|
}
|
|
13603
13645
|
languageModel(id) {
|
|
13604
|
-
var
|
|
13646
|
+
var _a23, _b;
|
|
13605
13647
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
|
13606
|
-
let model = (_b = (
|
|
13607
|
-
|
|
13648
|
+
let model = (_b = (_a23 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
|
|
13649
|
+
_a23,
|
|
13608
13650
|
modelId
|
|
13609
13651
|
);
|
|
13610
13652
|
if (model == null) {
|
|
13611
|
-
throw new
|
|
13653
|
+
throw new import_provider37.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
|
13612
13654
|
}
|
|
13613
13655
|
if (this.languageModelMiddleware != null) {
|
|
13614
13656
|
model = wrapLanguageModel({
|
|
@@ -13619,12 +13661,12 @@ var DefaultProviderRegistry = class {
|
|
|
13619
13661
|
return model;
|
|
13620
13662
|
}
|
|
13621
13663
|
embeddingModel(id) {
|
|
13622
|
-
var
|
|
13664
|
+
var _a23;
|
|
13623
13665
|
const [providerId, modelId] = this.splitId(id, "embeddingModel");
|
|
13624
13666
|
const provider = this.getProvider(providerId, "embeddingModel");
|
|
13625
|
-
const model = (
|
|
13667
|
+
const model = (_a23 = provider.embeddingModel) == null ? void 0 : _a23.call(provider, modelId);
|
|
13626
13668
|
if (model == null) {
|
|
13627
|
-
throw new
|
|
13669
|
+
throw new import_provider37.NoSuchModelError({
|
|
13628
13670
|
modelId: id,
|
|
13629
13671
|
modelType: "embeddingModel"
|
|
13630
13672
|
});
|
|
@@ -13632,12 +13674,12 @@ var DefaultProviderRegistry = class {
|
|
|
13632
13674
|
return model;
|
|
13633
13675
|
}
|
|
13634
13676
|
imageModel(id) {
|
|
13635
|
-
var
|
|
13677
|
+
var _a23;
|
|
13636
13678
|
const [providerId, modelId] = this.splitId(id, "imageModel");
|
|
13637
13679
|
const provider = this.getProvider(providerId, "imageModel");
|
|
13638
|
-
let model = (
|
|
13680
|
+
let model = (_a23 = provider.imageModel) == null ? void 0 : _a23.call(provider, modelId);
|
|
13639
13681
|
if (model == null) {
|
|
13640
|
-
throw new
|
|
13682
|
+
throw new import_provider37.NoSuchModelError({ modelId: id, modelType: "imageModel" });
|
|
13641
13683
|
}
|
|
13642
13684
|
if (this.imageModelMiddleware != null) {
|
|
13643
13685
|
model = wrapImageModel({
|
|
@@ -13648,12 +13690,12 @@ var DefaultProviderRegistry = class {
|
|
|
13648
13690
|
return model;
|
|
13649
13691
|
}
|
|
13650
13692
|
transcriptionModel(id) {
|
|
13651
|
-
var
|
|
13693
|
+
var _a23;
|
|
13652
13694
|
const [providerId, modelId] = this.splitId(id, "transcriptionModel");
|
|
13653
13695
|
const provider = this.getProvider(providerId, "transcriptionModel");
|
|
13654
|
-
const model = (
|
|
13696
|
+
const model = (_a23 = provider.transcriptionModel) == null ? void 0 : _a23.call(provider, modelId);
|
|
13655
13697
|
if (model == null) {
|
|
13656
|
-
throw new
|
|
13698
|
+
throw new import_provider37.NoSuchModelError({
|
|
13657
13699
|
modelId: id,
|
|
13658
13700
|
modelType: "transcriptionModel"
|
|
13659
13701
|
});
|
|
@@ -13661,22 +13703,22 @@ var DefaultProviderRegistry = class {
|
|
|
13661
13703
|
return model;
|
|
13662
13704
|
}
|
|
13663
13705
|
speechModel(id) {
|
|
13664
|
-
var
|
|
13706
|
+
var _a23;
|
|
13665
13707
|
const [providerId, modelId] = this.splitId(id, "speechModel");
|
|
13666
13708
|
const provider = this.getProvider(providerId, "speechModel");
|
|
13667
|
-
const model = (
|
|
13709
|
+
const model = (_a23 = provider.speechModel) == null ? void 0 : _a23.call(provider, modelId);
|
|
13668
13710
|
if (model == null) {
|
|
13669
|
-
throw new
|
|
13711
|
+
throw new import_provider37.NoSuchModelError({ modelId: id, modelType: "speechModel" });
|
|
13670
13712
|
}
|
|
13671
13713
|
return model;
|
|
13672
13714
|
}
|
|
13673
13715
|
rerankingModel(id) {
|
|
13674
|
-
var
|
|
13716
|
+
var _a23;
|
|
13675
13717
|
const [providerId, modelId] = this.splitId(id, "rerankingModel");
|
|
13676
13718
|
const provider = this.getProvider(providerId, "rerankingModel");
|
|
13677
|
-
const model = (
|
|
13719
|
+
const model = (_a23 = provider.rerankingModel) == null ? void 0 : _a23.call(provider, modelId);
|
|
13678
13720
|
if (model == null) {
|
|
13679
|
-
throw new
|
|
13721
|
+
throw new import_provider37.NoSuchModelError({ modelId: id, modelType: "rerankingModel" });
|
|
13680
13722
|
}
|
|
13681
13723
|
return model;
|
|
13682
13724
|
}
|
|
@@ -13732,7 +13774,7 @@ async function rerank({
|
|
|
13732
13774
|
}),
|
|
13733
13775
|
tracer,
|
|
13734
13776
|
fn: async () => {
|
|
13735
|
-
var
|
|
13777
|
+
var _a23, _b;
|
|
13736
13778
|
const { ranking, response, providerMetadata, warnings } = await retry(
|
|
13737
13779
|
() => recordSpan({
|
|
13738
13780
|
name: "ai.rerank.doRerank",
|
|
@@ -13796,7 +13838,7 @@ async function rerank({
|
|
|
13796
13838
|
providerMetadata,
|
|
13797
13839
|
response: {
|
|
13798
13840
|
id: response == null ? void 0 : response.id,
|
|
13799
|
-
timestamp: (
|
|
13841
|
+
timestamp: (_a23 = response == null ? void 0 : response.timestamp) != null ? _a23 : /* @__PURE__ */ new Date(),
|
|
13800
13842
|
modelId: (_b = response == null ? void 0 : response.modelId) != null ? _b : model.modelId,
|
|
13801
13843
|
headers: response == null ? void 0 : response.headers,
|
|
13802
13844
|
body: response == null ? void 0 : response.body
|
|
@@ -13844,16 +13886,16 @@ async function transcribe({
|
|
|
13844
13886
|
const audioData = audio instanceof URL ? (await downloadFn({ url: audio, abortSignal })).data : convertDataContentToUint8Array(audio);
|
|
13845
13887
|
const result = await retry(
|
|
13846
13888
|
() => {
|
|
13847
|
-
var
|
|
13889
|
+
var _a23;
|
|
13848
13890
|
return resolvedModel.doGenerate({
|
|
13849
13891
|
audio: audioData,
|
|
13850
13892
|
abortSignal,
|
|
13851
13893
|
headers: headersWithUserAgent,
|
|
13852
13894
|
providerOptions,
|
|
13853
|
-
mediaType: (
|
|
13895
|
+
mediaType: (_a23 = detectMediaType({
|
|
13854
13896
|
data: audioData,
|
|
13855
13897
|
signatures: audioMediaTypeSignatures
|
|
13856
|
-
})) != null ?
|
|
13898
|
+
})) != null ? _a23 : "audio/wav"
|
|
13857
13899
|
});
|
|
13858
13900
|
}
|
|
13859
13901
|
);
|
|
@@ -13877,14 +13919,14 @@ async function transcribe({
|
|
|
13877
13919
|
}
|
|
13878
13920
|
var DefaultTranscriptionResult = class {
|
|
13879
13921
|
constructor(options) {
|
|
13880
|
-
var
|
|
13922
|
+
var _a23;
|
|
13881
13923
|
this.text = options.text;
|
|
13882
13924
|
this.segments = options.segments;
|
|
13883
13925
|
this.language = options.language;
|
|
13884
13926
|
this.durationInSeconds = options.durationInSeconds;
|
|
13885
13927
|
this.warnings = options.warnings;
|
|
13886
13928
|
this.responses = options.responses;
|
|
13887
|
-
this.providerMetadata = (
|
|
13929
|
+
this.providerMetadata = (_a23 = options.providerMetadata) != null ? _a23 : {};
|
|
13888
13930
|
}
|
|
13889
13931
|
};
|
|
13890
13932
|
|
|
@@ -13923,7 +13965,7 @@ async function callCompletionApi({
|
|
|
13923
13965
|
onError,
|
|
13924
13966
|
fetch: fetch2 = getOriginalFetch()
|
|
13925
13967
|
}) {
|
|
13926
|
-
var
|
|
13968
|
+
var _a23;
|
|
13927
13969
|
try {
|
|
13928
13970
|
setLoading(true);
|
|
13929
13971
|
setError(void 0);
|
|
@@ -13951,7 +13993,7 @@ async function callCompletionApi({
|
|
|
13951
13993
|
});
|
|
13952
13994
|
if (!response.ok) {
|
|
13953
13995
|
throw new Error(
|
|
13954
|
-
(
|
|
13996
|
+
(_a23 = await response.text()) != null ? _a23 : "Failed to fetch the chat response."
|
|
13955
13997
|
);
|
|
13956
13998
|
}
|
|
13957
13999
|
if (!response.body) {
|
|
@@ -14035,12 +14077,12 @@ async function convertFileListToFileUIParts(files) {
|
|
|
14035
14077
|
}
|
|
14036
14078
|
return Promise.all(
|
|
14037
14079
|
Array.from(files).map(async (file) => {
|
|
14038
|
-
const { name:
|
|
14080
|
+
const { name: name23, type } = file;
|
|
14039
14081
|
const dataUrl = await new Promise((resolve3, reject) => {
|
|
14040
14082
|
const reader = new FileReader();
|
|
14041
14083
|
reader.onload = (readerEvent) => {
|
|
14042
|
-
var
|
|
14043
|
-
resolve3((
|
|
14084
|
+
var _a23;
|
|
14085
|
+
resolve3((_a23 = readerEvent.target) == null ? void 0 : _a23.result);
|
|
14044
14086
|
};
|
|
14045
14087
|
reader.onerror = (error) => reject(error);
|
|
14046
14088
|
reader.readAsDataURL(file);
|
|
@@ -14048,7 +14090,7 @@ async function convertFileListToFileUIParts(files) {
|
|
|
14048
14090
|
return {
|
|
14049
14091
|
type: "file",
|
|
14050
14092
|
mediaType: type,
|
|
14051
|
-
filename:
|
|
14093
|
+
filename: name23,
|
|
14052
14094
|
url: dataUrl
|
|
14053
14095
|
};
|
|
14054
14096
|
})
|
|
@@ -14082,7 +14124,7 @@ var HttpChatTransport = class {
|
|
|
14082
14124
|
abortSignal,
|
|
14083
14125
|
...options
|
|
14084
14126
|
}) {
|
|
14085
|
-
var
|
|
14127
|
+
var _a23, _b, _c, _d, _e;
|
|
14086
14128
|
const resolvedBody = await (0, import_provider_utils40.resolve)(this.body);
|
|
14087
14129
|
const resolvedHeaders = await (0, import_provider_utils40.resolve)(this.headers);
|
|
14088
14130
|
const resolvedCredentials = await (0, import_provider_utils40.resolve)(this.credentials);
|
|
@@ -14090,7 +14132,7 @@ var HttpChatTransport = class {
|
|
|
14090
14132
|
...(0, import_provider_utils40.normalizeHeaders)(resolvedHeaders),
|
|
14091
14133
|
...(0, import_provider_utils40.normalizeHeaders)(options.headers)
|
|
14092
14134
|
};
|
|
14093
|
-
const preparedRequest = await ((
|
|
14135
|
+
const preparedRequest = await ((_a23 = this.prepareSendMessagesRequest) == null ? void 0 : _a23.call(this, {
|
|
14094
14136
|
api: this.api,
|
|
14095
14137
|
id: options.chatId,
|
|
14096
14138
|
messages: options.messages,
|
|
@@ -14134,7 +14176,7 @@ var HttpChatTransport = class {
|
|
|
14134
14176
|
return this.processResponseStream(response.body);
|
|
14135
14177
|
}
|
|
14136
14178
|
async reconnectToStream(options) {
|
|
14137
|
-
var
|
|
14179
|
+
var _a23, _b, _c, _d, _e;
|
|
14138
14180
|
const resolvedBody = await (0, import_provider_utils40.resolve)(this.body);
|
|
14139
14181
|
const resolvedHeaders = await (0, import_provider_utils40.resolve)(this.headers);
|
|
14140
14182
|
const resolvedCredentials = await (0, import_provider_utils40.resolve)(this.credentials);
|
|
@@ -14142,7 +14184,7 @@ var HttpChatTransport = class {
|
|
|
14142
14184
|
...(0, import_provider_utils40.normalizeHeaders)(resolvedHeaders),
|
|
14143
14185
|
...(0, import_provider_utils40.normalizeHeaders)(options.headers)
|
|
14144
14186
|
};
|
|
14145
|
-
const preparedRequest = await ((
|
|
14187
|
+
const preparedRequest = await ((_a23 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a23.call(this, {
|
|
14146
14188
|
api: this.api,
|
|
14147
14189
|
id: options.chatId,
|
|
14148
14190
|
body: { ...resolvedBody, ...options.body },
|
|
@@ -14222,11 +14264,11 @@ var AbstractChat = class {
|
|
|
14222
14264
|
* If a messageId is provided, the message will be replaced.
|
|
14223
14265
|
*/
|
|
14224
14266
|
this.sendMessage = async (message, options) => {
|
|
14225
|
-
var
|
|
14267
|
+
var _a23, _b, _c, _d;
|
|
14226
14268
|
if (message == null) {
|
|
14227
14269
|
await this.makeRequest({
|
|
14228
14270
|
trigger: "submit-message",
|
|
14229
|
-
messageId: (
|
|
14271
|
+
messageId: (_a23 = this.lastMessage) == null ? void 0 : _a23.id,
|
|
14230
14272
|
...options
|
|
14231
14273
|
});
|
|
14232
14274
|
return;
|
|
@@ -14336,11 +14378,11 @@ var AbstractChat = class {
|
|
|
14336
14378
|
}
|
|
14337
14379
|
if (this.status !== "streaming" && this.status !== "submitted" && this.sendAutomaticallyWhen) {
|
|
14338
14380
|
this.shouldSendAutomatically().then((shouldSend) => {
|
|
14339
|
-
var
|
|
14381
|
+
var _a23;
|
|
14340
14382
|
if (shouldSend) {
|
|
14341
14383
|
this.makeRequest({
|
|
14342
14384
|
trigger: "submit-message",
|
|
14343
|
-
messageId: (
|
|
14385
|
+
messageId: (_a23 = this.lastMessage) == null ? void 0 : _a23.id,
|
|
14344
14386
|
...options
|
|
14345
14387
|
});
|
|
14346
14388
|
}
|
|
@@ -14366,11 +14408,11 @@ var AbstractChat = class {
|
|
|
14366
14408
|
}
|
|
14367
14409
|
if (this.status !== "streaming" && this.status !== "submitted" && this.sendAutomaticallyWhen) {
|
|
14368
14410
|
this.shouldSendAutomatically().then((shouldSend) => {
|
|
14369
|
-
var
|
|
14411
|
+
var _a23;
|
|
14370
14412
|
if (shouldSend) {
|
|
14371
14413
|
this.makeRequest({
|
|
14372
14414
|
trigger: "submit-message",
|
|
14373
|
-
messageId: (
|
|
14415
|
+
messageId: (_a23 = this.lastMessage) == null ? void 0 : _a23.id,
|
|
14374
14416
|
...options
|
|
14375
14417
|
});
|
|
14376
14418
|
}
|
|
@@ -14383,8 +14425,8 @@ var AbstractChat = class {
|
|
|
14383
14425
|
* Abort the current request immediately, keep the generated tokens if any.
|
|
14384
14426
|
*/
|
|
14385
14427
|
this.stop = async () => {
|
|
14386
|
-
var
|
|
14387
|
-
(
|
|
14428
|
+
var _a23, _b;
|
|
14429
|
+
(_a23 = this.activeResumeRequest) == null ? void 0 : _a23.abortController.abort();
|
|
14388
14430
|
(_b = this.activeResponse) == null ? void 0 : _b.abortController.abort();
|
|
14389
14431
|
};
|
|
14390
14432
|
this.id = id;
|
|
@@ -14449,11 +14491,11 @@ var AbstractChat = class {
|
|
|
14449
14491
|
body,
|
|
14450
14492
|
messageId
|
|
14451
14493
|
}) {
|
|
14452
|
-
var
|
|
14494
|
+
var _a23, _b, _c;
|
|
14453
14495
|
const abortController = new AbortController();
|
|
14454
14496
|
const activeResumeRequest = trigger === "resume-stream" ? { abortController } : void 0;
|
|
14455
14497
|
if (activeResumeRequest) {
|
|
14456
|
-
(
|
|
14498
|
+
(_a23 = this.activeResumeRequest) == null ? void 0 : _a23.abortController.abort();
|
|
14457
14499
|
this.activeResumeRequest = activeResumeRequest;
|
|
14458
14500
|
}
|
|
14459
14501
|
const isCurrentRequest = () => activeResumeRequest == null || this.activeResumeRequest === activeResumeRequest;
|
|
@@ -14549,14 +14591,14 @@ var AbstractChat = class {
|
|
|
14549
14591
|
return job({
|
|
14550
14592
|
state: response.state,
|
|
14551
14593
|
write: ({ updateStatus = true } = {}) => {
|
|
14552
|
-
var
|
|
14594
|
+
var _a24;
|
|
14553
14595
|
if (response.abortController.signal.aborted) {
|
|
14554
14596
|
return;
|
|
14555
14597
|
}
|
|
14556
14598
|
if (updateStatus) {
|
|
14557
14599
|
this.setStatus({ status: "streaming" });
|
|
14558
14600
|
}
|
|
14559
|
-
const replaceLastMessage = response.state.message.id === ((
|
|
14601
|
+
const replaceLastMessage = response.state.message.id === ((_a24 = this.lastMessage) == null ? void 0 : _a24.id);
|
|
14560
14602
|
if (replaceLastMessage) {
|
|
14561
14603
|
this.state.replaceMessage(
|
|
14562
14604
|
this.state.messages.length - 1,
|
|
@@ -14807,6 +14849,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
14807
14849
|
TooManyEmbeddingValuesForCallError,
|
|
14808
14850
|
ToolCallNotFoundForApprovalError,
|
|
14809
14851
|
ToolCallRepairError,
|
|
14852
|
+
ToolChoiceViolationError,
|
|
14810
14853
|
ToolLoopAgent,
|
|
14811
14854
|
TypeValidationError,
|
|
14812
14855
|
UIMessageStreamError,
|