ai 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/index.d.mts +81 -13
- package/dist/index.d.ts +81 -13
- package/dist/index.js +307 -244
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +264 -202
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
- package/rsc/dist/rsc-server.mjs.map +1 -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 name15 in all)
|
8
|
+
__defProp(target, name15, { get: all[name15], enumerable: true });
|
9
9
|
};
|
10
10
|
var __copyProps = (to, from, except, desc) => {
|
11
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
@@ -20,26 +20,27 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
20
20
|
// streams/index.ts
|
21
21
|
var streams_exports = {};
|
22
22
|
__export(streams_exports, {
|
23
|
-
AISDKError: () =>
|
24
|
-
APICallError: () =>
|
23
|
+
AISDKError: () => import_provider17.AISDKError,
|
24
|
+
APICallError: () => import_provider17.APICallError,
|
25
25
|
AssistantResponse: () => AssistantResponse,
|
26
26
|
DownloadError: () => DownloadError,
|
27
|
-
EmptyResponseBodyError: () =>
|
27
|
+
EmptyResponseBodyError: () => import_provider17.EmptyResponseBodyError,
|
28
28
|
InvalidArgumentError: () => InvalidArgumentError,
|
29
29
|
InvalidDataContentError: () => InvalidDataContentError,
|
30
30
|
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
31
|
-
InvalidPromptError: () =>
|
32
|
-
InvalidResponseDataError: () =>
|
31
|
+
InvalidPromptError: () => import_provider17.InvalidPromptError,
|
32
|
+
InvalidResponseDataError: () => import_provider17.InvalidResponseDataError,
|
33
33
|
InvalidToolArgumentsError: () => InvalidToolArgumentsError,
|
34
|
-
JSONParseError: () =>
|
34
|
+
JSONParseError: () => import_provider17.JSONParseError,
|
35
35
|
LangChainAdapter: () => langchain_adapter_exports,
|
36
36
|
LlamaIndexAdapter: () => llamaindex_adapter_exports,
|
37
|
-
LoadAPIKeyError: () =>
|
37
|
+
LoadAPIKeyError: () => import_provider17.LoadAPIKeyError,
|
38
38
|
MessageConversionError: () => MessageConversionError,
|
39
|
-
NoContentGeneratedError: () =>
|
39
|
+
NoContentGeneratedError: () => import_provider17.NoContentGeneratedError,
|
40
|
+
NoImageGeneratedError: () => NoImageGeneratedError,
|
40
41
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
41
42
|
NoOutputSpecifiedError: () => NoOutputSpecifiedError,
|
42
|
-
NoSuchModelError: () =>
|
43
|
+
NoSuchModelError: () => import_provider17.NoSuchModelError,
|
43
44
|
NoSuchProviderError: () => NoSuchProviderError,
|
44
45
|
NoSuchToolError: () => NoSuchToolError,
|
45
46
|
Output: () => output_exports,
|
@@ -47,8 +48,8 @@ __export(streams_exports, {
|
|
47
48
|
StreamData: () => StreamData,
|
48
49
|
ToolCallRepairError: () => ToolCallRepairError,
|
49
50
|
ToolExecutionError: () => ToolExecutionError,
|
50
|
-
TypeValidationError: () =>
|
51
|
-
UnsupportedFunctionalityError: () =>
|
51
|
+
TypeValidationError: () => import_provider17.TypeValidationError,
|
52
|
+
UnsupportedFunctionalityError: () => import_provider17.UnsupportedFunctionalityError,
|
52
53
|
appendResponseMessages: () => appendResponseMessages,
|
53
54
|
convertToCoreMessages: () => convertToCoreMessages,
|
54
55
|
cosineSimilarity: () => cosineSimilarity,
|
@@ -420,7 +421,7 @@ function getBaseTelemetryAttributes({
|
|
420
421
|
telemetry,
|
421
422
|
headers
|
422
423
|
}) {
|
423
|
-
var
|
424
|
+
var _a15;
|
424
425
|
return {
|
425
426
|
"ai.model.provider": model.provider,
|
426
427
|
"ai.model.id": model.modelId,
|
@@ -430,7 +431,7 @@ function getBaseTelemetryAttributes({
|
|
430
431
|
return attributes;
|
431
432
|
}, {}),
|
432
433
|
// add metadata as attributes:
|
433
|
-
...Object.entries((
|
434
|
+
...Object.entries((_a15 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a15 : {}).reduce(
|
434
435
|
(attributes, [key, value]) => {
|
435
436
|
attributes[`ai.telemetry.metadata.${key}`] = value;
|
436
437
|
return attributes;
|
@@ -455,7 +456,7 @@ var noopTracer = {
|
|
455
456
|
startSpan() {
|
456
457
|
return noopSpan;
|
457
458
|
},
|
458
|
-
startActiveSpan(
|
459
|
+
startActiveSpan(name15, arg1, arg2, arg3) {
|
459
460
|
if (typeof arg1 === "function") {
|
460
461
|
return arg1(noopSpan);
|
461
462
|
}
|
@@ -525,13 +526,13 @@ function getTracer({
|
|
525
526
|
// core/telemetry/record-span.ts
|
526
527
|
var import_api2 = require("@opentelemetry/api");
|
527
528
|
function recordSpan({
|
528
|
-
name:
|
529
|
+
name: name15,
|
529
530
|
tracer,
|
530
531
|
attributes,
|
531
532
|
fn,
|
532
533
|
endWhenDone = true
|
533
534
|
}) {
|
534
|
-
return tracer.startActiveSpan(
|
535
|
+
return tracer.startActiveSpan(name15, { attributes }, async (span) => {
|
535
536
|
try {
|
536
537
|
const result = await fn(span);
|
537
538
|
if (endWhenDone) {
|
@@ -639,14 +640,14 @@ async function embed({
|
|
639
640
|
}),
|
640
641
|
tracer,
|
641
642
|
fn: async (doEmbedSpan) => {
|
642
|
-
var
|
643
|
+
var _a15;
|
643
644
|
const modelResponse = await model.doEmbed({
|
644
645
|
values: [value],
|
645
646
|
abortSignal,
|
646
647
|
headers
|
647
648
|
});
|
648
649
|
const embedding2 = modelResponse.embeddings[0];
|
649
|
-
const usage2 = (
|
650
|
+
const usage2 = (_a15 = modelResponse.usage) != null ? _a15 : { tokens: NaN };
|
650
651
|
doEmbedSpan.setAttributes(
|
651
652
|
selectTelemetryAttributes({
|
652
653
|
telemetry,
|
@@ -756,14 +757,14 @@ async function embedMany({
|
|
756
757
|
}),
|
757
758
|
tracer,
|
758
759
|
fn: async (doEmbedSpan) => {
|
759
|
-
var
|
760
|
+
var _a15;
|
760
761
|
const modelResponse = await model.doEmbed({
|
761
762
|
values,
|
762
763
|
abortSignal,
|
763
764
|
headers
|
764
765
|
});
|
765
766
|
const embeddings3 = modelResponse.embeddings;
|
766
|
-
const usage2 = (
|
767
|
+
const usage2 = (_a15 = modelResponse.usage) != null ? _a15 : { tokens: NaN };
|
767
768
|
doEmbedSpan.setAttributes(
|
768
769
|
selectTelemetryAttributes({
|
769
770
|
telemetry,
|
@@ -815,14 +816,14 @@ async function embedMany({
|
|
815
816
|
}),
|
816
817
|
tracer,
|
817
818
|
fn: async (doEmbedSpan) => {
|
818
|
-
var
|
819
|
+
var _a15;
|
819
820
|
const modelResponse = await model.doEmbed({
|
820
821
|
values: chunk,
|
821
822
|
abortSignal,
|
822
823
|
headers
|
823
824
|
});
|
824
825
|
const embeddings2 = modelResponse.embeddings;
|
825
|
-
const usage2 = (
|
826
|
+
const usage2 = (_a15 = modelResponse.usage) != null ? _a15 : { tokens: NaN };
|
826
827
|
doEmbedSpan.setAttributes(
|
827
828
|
selectTelemetryAttributes({
|
828
829
|
telemetry,
|
@@ -870,6 +871,30 @@ var DefaultEmbedManyResult = class {
|
|
870
871
|
|
871
872
|
// core/generate-image/generate-image.ts
|
872
873
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
874
|
+
|
875
|
+
// errors/no-image-generated-error.ts
|
876
|
+
var import_provider4 = require("@ai-sdk/provider");
|
877
|
+
var name3 = "AI_NoImageGeneratedError";
|
878
|
+
var marker3 = `vercel.ai.error.${name3}`;
|
879
|
+
var symbol3 = Symbol.for(marker3);
|
880
|
+
var _a3;
|
881
|
+
var NoImageGeneratedError = class extends import_provider4.AISDKError {
|
882
|
+
constructor({
|
883
|
+
message = "No image generated.",
|
884
|
+
cause,
|
885
|
+
responses
|
886
|
+
}) {
|
887
|
+
super({ name: name3, message, cause });
|
888
|
+
this[_a3] = true;
|
889
|
+
this.responses = responses;
|
890
|
+
}
|
891
|
+
static isInstance(error) {
|
892
|
+
return import_provider4.AISDKError.hasMarker(error, marker3);
|
893
|
+
}
|
894
|
+
};
|
895
|
+
_a3 = symbol3;
|
896
|
+
|
897
|
+
// core/generate-image/generate-image.ts
|
873
898
|
async function generateImage({
|
874
899
|
model,
|
875
900
|
prompt,
|
@@ -880,11 +905,14 @@ async function generateImage({
|
|
880
905
|
providerOptions,
|
881
906
|
maxRetries: maxRetriesArg,
|
882
907
|
abortSignal,
|
883
|
-
headers
|
908
|
+
headers,
|
909
|
+
_internal = {
|
910
|
+
currentDate: () => /* @__PURE__ */ new Date()
|
911
|
+
}
|
884
912
|
}) {
|
885
|
-
var
|
913
|
+
var _a15;
|
886
914
|
const { retry } = prepareRetries({ maxRetries: maxRetriesArg });
|
887
|
-
const maxImagesPerCall = (
|
915
|
+
const maxImagesPerCall = (_a15 = model.maxImagesPerCall) != null ? _a15 : 1;
|
888
916
|
const callCount = Math.ceil(n / maxImagesPerCall);
|
889
917
|
const callImageCounts = Array.from({ length: callCount }, (_, i) => {
|
890
918
|
if (i < callCount - 1) {
|
@@ -911,18 +939,24 @@ async function generateImage({
|
|
911
939
|
);
|
912
940
|
const images = [];
|
913
941
|
const warnings = [];
|
942
|
+
const responses = [];
|
914
943
|
for (const result of results) {
|
915
944
|
images.push(
|
916
945
|
...result.images.map((image) => new DefaultGeneratedImage({ image }))
|
917
946
|
);
|
918
947
|
warnings.push(...result.warnings);
|
948
|
+
responses.push(result.response);
|
949
|
+
}
|
950
|
+
if (!images.length) {
|
951
|
+
throw new NoImageGeneratedError({ responses });
|
919
952
|
}
|
920
|
-
return new DefaultGenerateImageResult({ images, warnings });
|
953
|
+
return new DefaultGenerateImageResult({ images, warnings, responses });
|
921
954
|
}
|
922
955
|
var DefaultGenerateImageResult = class {
|
923
956
|
constructor(options) {
|
924
957
|
this.images = options.images;
|
925
958
|
this.warnings = options.warnings;
|
959
|
+
this.responses = options.responses;
|
926
960
|
}
|
927
961
|
get image() {
|
928
962
|
return this.images[0];
|
@@ -954,12 +988,12 @@ var DefaultGeneratedImage = class {
|
|
954
988
|
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
955
989
|
|
956
990
|
// errors/no-object-generated-error.ts
|
957
|
-
var
|
958
|
-
var
|
959
|
-
var
|
960
|
-
var
|
961
|
-
var
|
962
|
-
var NoObjectGeneratedError = class extends
|
991
|
+
var import_provider5 = require("@ai-sdk/provider");
|
992
|
+
var name4 = "AI_NoObjectGeneratedError";
|
993
|
+
var marker4 = `vercel.ai.error.${name4}`;
|
994
|
+
var symbol4 = Symbol.for(marker4);
|
995
|
+
var _a4;
|
996
|
+
var NoObjectGeneratedError = class extends import_provider5.AISDKError {
|
963
997
|
constructor({
|
964
998
|
message = "No object generated.",
|
965
999
|
cause,
|
@@ -967,25 +1001,25 @@ var NoObjectGeneratedError = class extends import_provider4.AISDKError {
|
|
967
1001
|
response,
|
968
1002
|
usage
|
969
1003
|
}) {
|
970
|
-
super({ name:
|
971
|
-
this[
|
1004
|
+
super({ name: name4, message, cause });
|
1005
|
+
this[_a4] = true;
|
972
1006
|
this.text = text2;
|
973
1007
|
this.response = response;
|
974
1008
|
this.usage = usage;
|
975
1009
|
}
|
976
1010
|
static isInstance(error) {
|
977
|
-
return
|
1011
|
+
return import_provider5.AISDKError.hasMarker(error, marker4);
|
978
1012
|
}
|
979
1013
|
};
|
980
|
-
|
1014
|
+
_a4 = symbol4;
|
981
1015
|
|
982
1016
|
// util/download-error.ts
|
983
|
-
var
|
984
|
-
var
|
985
|
-
var
|
986
|
-
var
|
987
|
-
var
|
988
|
-
var DownloadError = class extends
|
1017
|
+
var import_provider6 = require("@ai-sdk/provider");
|
1018
|
+
var name5 = "AI_DownloadError";
|
1019
|
+
var marker5 = `vercel.ai.error.${name5}`;
|
1020
|
+
var symbol5 = Symbol.for(marker5);
|
1021
|
+
var _a5;
|
1022
|
+
var DownloadError = class extends import_provider6.AISDKError {
|
989
1023
|
constructor({
|
990
1024
|
url,
|
991
1025
|
statusCode,
|
@@ -993,24 +1027,24 @@ var DownloadError = class extends import_provider5.AISDKError {
|
|
993
1027
|
cause,
|
994
1028
|
message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`
|
995
1029
|
}) {
|
996
|
-
super({ name:
|
997
|
-
this[
|
1030
|
+
super({ name: name5, message, cause });
|
1031
|
+
this[_a5] = true;
|
998
1032
|
this.url = url;
|
999
1033
|
this.statusCode = statusCode;
|
1000
1034
|
this.statusText = statusText;
|
1001
1035
|
}
|
1002
1036
|
static isInstance(error) {
|
1003
|
-
return
|
1037
|
+
return import_provider6.AISDKError.hasMarker(error, marker5);
|
1004
1038
|
}
|
1005
1039
|
};
|
1006
|
-
|
1040
|
+
_a5 = symbol5;
|
1007
1041
|
|
1008
1042
|
// util/download.ts
|
1009
1043
|
async function download({
|
1010
1044
|
url,
|
1011
1045
|
fetchImplementation = fetch
|
1012
1046
|
}) {
|
1013
|
-
var
|
1047
|
+
var _a15;
|
1014
1048
|
const urlText = url.toString();
|
1015
1049
|
try {
|
1016
1050
|
const response = await fetchImplementation(urlText);
|
@@ -1023,7 +1057,7 @@ async function download({
|
|
1023
1057
|
}
|
1024
1058
|
return {
|
1025
1059
|
data: new Uint8Array(await response.arrayBuffer()),
|
1026
|
-
mimeType: (
|
1060
|
+
mimeType: (_a15 = response.headers.get("content-type")) != null ? _a15 : void 0
|
1027
1061
|
};
|
1028
1062
|
} catch (error) {
|
1029
1063
|
if (DownloadError.isInstance(error)) {
|
@@ -1053,26 +1087,26 @@ function detectImageMimeType(image) {
|
|
1053
1087
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
1054
1088
|
|
1055
1089
|
// core/prompt/invalid-data-content-error.ts
|
1056
|
-
var
|
1057
|
-
var
|
1058
|
-
var
|
1059
|
-
var
|
1060
|
-
var
|
1061
|
-
var InvalidDataContentError = class extends
|
1090
|
+
var import_provider7 = require("@ai-sdk/provider");
|
1091
|
+
var name6 = "AI_InvalidDataContentError";
|
1092
|
+
var marker6 = `vercel.ai.error.${name6}`;
|
1093
|
+
var symbol6 = Symbol.for(marker6);
|
1094
|
+
var _a6;
|
1095
|
+
var InvalidDataContentError = class extends import_provider7.AISDKError {
|
1062
1096
|
constructor({
|
1063
1097
|
content,
|
1064
1098
|
cause,
|
1065
1099
|
message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
|
1066
1100
|
}) {
|
1067
|
-
super({ name:
|
1068
|
-
this[
|
1101
|
+
super({ name: name6, message, cause });
|
1102
|
+
this[_a6] = true;
|
1069
1103
|
this.content = content;
|
1070
1104
|
}
|
1071
1105
|
static isInstance(error) {
|
1072
|
-
return
|
1106
|
+
return import_provider7.AISDKError.hasMarker(error, marker6);
|
1073
1107
|
}
|
1074
1108
|
};
|
1075
|
-
|
1109
|
+
_a6 = symbol6;
|
1076
1110
|
|
1077
1111
|
// core/prompt/data-content.ts
|
1078
1112
|
var import_zod = require("zod");
|
@@ -1083,8 +1117,8 @@ var dataContentSchema = import_zod.z.union([
|
|
1083
1117
|
import_zod.z.custom(
|
1084
1118
|
// Buffer might not be available in some environments such as CloudFlare:
|
1085
1119
|
(value) => {
|
1086
|
-
var
|
1087
|
-
return (_b = (
|
1120
|
+
var _a15, _b;
|
1121
|
+
return (_b = (_a15 = globalThis.Buffer) == null ? void 0 : _a15.isBuffer(value)) != null ? _b : false;
|
1088
1122
|
},
|
1089
1123
|
{ message: "Must be a Buffer" }
|
1090
1124
|
)
|
@@ -1127,25 +1161,25 @@ function convertUint8ArrayToText(uint8Array) {
|
|
1127
1161
|
}
|
1128
1162
|
|
1129
1163
|
// core/prompt/invalid-message-role-error.ts
|
1130
|
-
var
|
1131
|
-
var
|
1132
|
-
var
|
1133
|
-
var
|
1134
|
-
var
|
1135
|
-
var InvalidMessageRoleError = class extends
|
1164
|
+
var import_provider8 = require("@ai-sdk/provider");
|
1165
|
+
var name7 = "AI_InvalidMessageRoleError";
|
1166
|
+
var marker7 = `vercel.ai.error.${name7}`;
|
1167
|
+
var symbol7 = Symbol.for(marker7);
|
1168
|
+
var _a7;
|
1169
|
+
var InvalidMessageRoleError = class extends import_provider8.AISDKError {
|
1136
1170
|
constructor({
|
1137
1171
|
role,
|
1138
1172
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
1139
1173
|
}) {
|
1140
|
-
super({ name:
|
1141
|
-
this[
|
1174
|
+
super({ name: name7, message });
|
1175
|
+
this[_a7] = true;
|
1142
1176
|
this.role = role;
|
1143
1177
|
}
|
1144
1178
|
static isInstance(error) {
|
1145
|
-
return
|
1179
|
+
return import_provider8.AISDKError.hasMarker(error, marker7);
|
1146
1180
|
}
|
1147
1181
|
};
|
1148
|
-
|
1182
|
+
_a7 = symbol7;
|
1149
1183
|
|
1150
1184
|
// core/prompt/split-data-url.ts
|
1151
1185
|
function splitDataUrl(dataUrl) {
|
@@ -1275,7 +1309,7 @@ async function downloadAssets(messages, downloadImplementation, modelSupportsIma
|
|
1275
1309
|
);
|
1276
1310
|
}
|
1277
1311
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
1278
|
-
var
|
1312
|
+
var _a15;
|
1279
1313
|
if (part.type === "text") {
|
1280
1314
|
return {
|
1281
1315
|
type: "text",
|
@@ -1328,7 +1362,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
1328
1362
|
switch (type) {
|
1329
1363
|
case "image": {
|
1330
1364
|
if (normalizedData instanceof Uint8Array) {
|
1331
|
-
mimeType = (
|
1365
|
+
mimeType = (_a15 = detectImageMimeType(normalizedData)) != null ? _a15 : mimeType;
|
1332
1366
|
}
|
1333
1367
|
return {
|
1334
1368
|
type: "image",
|
@@ -1445,7 +1479,7 @@ function prepareCallSettings({
|
|
1445
1479
|
}
|
1446
1480
|
|
1447
1481
|
// core/prompt/standardize-prompt.ts
|
1448
|
-
var
|
1482
|
+
var import_provider10 = require("@ai-sdk/provider");
|
1449
1483
|
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
1450
1484
|
var import_zod7 = require("zod");
|
1451
1485
|
|
@@ -1595,7 +1629,7 @@ function detectSingleMessageCharacteristics(message) {
|
|
1595
1629
|
|
1596
1630
|
// core/prompt/attachments-to-parts.ts
|
1597
1631
|
function attachmentsToParts(attachments) {
|
1598
|
-
var
|
1632
|
+
var _a15, _b, _c;
|
1599
1633
|
const parts = [];
|
1600
1634
|
for (const attachment of attachments) {
|
1601
1635
|
let url;
|
@@ -1607,7 +1641,7 @@ function attachmentsToParts(attachments) {
|
|
1607
1641
|
switch (url.protocol) {
|
1608
1642
|
case "http:":
|
1609
1643
|
case "https:": {
|
1610
|
-
if ((
|
1644
|
+
if ((_a15 = attachment.contentType) == null ? void 0 : _a15.startsWith("image/")) {
|
1611
1645
|
parts.push({ type: "image", image: url });
|
1612
1646
|
} else {
|
1613
1647
|
if (!attachment.contentType) {
|
@@ -1671,30 +1705,30 @@ function attachmentsToParts(attachments) {
|
|
1671
1705
|
}
|
1672
1706
|
|
1673
1707
|
// core/prompt/message-conversion-error.ts
|
1674
|
-
var
|
1675
|
-
var
|
1676
|
-
var
|
1677
|
-
var
|
1678
|
-
var
|
1679
|
-
var MessageConversionError = class extends
|
1708
|
+
var import_provider9 = require("@ai-sdk/provider");
|
1709
|
+
var name8 = "AI_MessageConversionError";
|
1710
|
+
var marker8 = `vercel.ai.error.${name8}`;
|
1711
|
+
var symbol8 = Symbol.for(marker8);
|
1712
|
+
var _a8;
|
1713
|
+
var MessageConversionError = class extends import_provider9.AISDKError {
|
1680
1714
|
constructor({
|
1681
1715
|
originalMessage,
|
1682
1716
|
message
|
1683
1717
|
}) {
|
1684
|
-
super({ name:
|
1685
|
-
this[
|
1718
|
+
super({ name: name8, message });
|
1719
|
+
this[_a8] = true;
|
1686
1720
|
this.originalMessage = originalMessage;
|
1687
1721
|
}
|
1688
1722
|
static isInstance(error) {
|
1689
|
-
return
|
1723
|
+
return import_provider9.AISDKError.hasMarker(error, marker8);
|
1690
1724
|
}
|
1691
1725
|
};
|
1692
|
-
|
1726
|
+
_a8 = symbol8;
|
1693
1727
|
|
1694
1728
|
// core/prompt/convert-to-core-messages.ts
|
1695
1729
|
function convertToCoreMessages(messages, options) {
|
1696
|
-
var
|
1697
|
-
const tools = (
|
1730
|
+
var _a15;
|
1731
|
+
const tools = (_a15 = options == null ? void 0 : options.tools) != null ? _a15 : {};
|
1698
1732
|
const coreMessages = [];
|
1699
1733
|
for (const message of messages) {
|
1700
1734
|
const { role, content, toolInvocations, experimental_attachments } = message;
|
@@ -1783,26 +1817,26 @@ function standardizePrompt({
|
|
1783
1817
|
tools
|
1784
1818
|
}) {
|
1785
1819
|
if (prompt.prompt == null && prompt.messages == null) {
|
1786
|
-
throw new
|
1820
|
+
throw new import_provider10.InvalidPromptError({
|
1787
1821
|
prompt,
|
1788
1822
|
message: "prompt or messages must be defined"
|
1789
1823
|
});
|
1790
1824
|
}
|
1791
1825
|
if (prompt.prompt != null && prompt.messages != null) {
|
1792
|
-
throw new
|
1826
|
+
throw new import_provider10.InvalidPromptError({
|
1793
1827
|
prompt,
|
1794
1828
|
message: "prompt and messages cannot be defined at the same time"
|
1795
1829
|
});
|
1796
1830
|
}
|
1797
1831
|
if (prompt.system != null && typeof prompt.system !== "string") {
|
1798
|
-
throw new
|
1832
|
+
throw new import_provider10.InvalidPromptError({
|
1799
1833
|
prompt,
|
1800
1834
|
message: "system must be a string"
|
1801
1835
|
});
|
1802
1836
|
}
|
1803
1837
|
if (prompt.prompt != null) {
|
1804
1838
|
if (typeof prompt.prompt !== "string") {
|
1805
|
-
throw new
|
1839
|
+
throw new import_provider10.InvalidPromptError({
|
1806
1840
|
prompt,
|
1807
1841
|
message: "prompt must be a string"
|
1808
1842
|
});
|
@@ -1821,7 +1855,7 @@ function standardizePrompt({
|
|
1821
1855
|
if (prompt.messages != null) {
|
1822
1856
|
const promptType = detectPromptType(prompt.messages);
|
1823
1857
|
if (promptType === "other") {
|
1824
|
-
throw new
|
1858
|
+
throw new import_provider10.InvalidPromptError({
|
1825
1859
|
prompt,
|
1826
1860
|
message: "messages must be an array of CoreMessage or UIMessage"
|
1827
1861
|
});
|
@@ -1834,7 +1868,7 @@ function standardizePrompt({
|
|
1834
1868
|
schema: import_zod7.z.array(coreMessageSchema)
|
1835
1869
|
});
|
1836
1870
|
if (!validationResult.success) {
|
1837
|
-
throw new
|
1871
|
+
throw new import_provider10.InvalidPromptError({
|
1838
1872
|
prompt,
|
1839
1873
|
message: "messages must be an array of CoreMessage or UIMessage",
|
1840
1874
|
cause: validationResult.error
|
@@ -1889,7 +1923,7 @@ function injectJsonInstruction({
|
|
1889
1923
|
}
|
1890
1924
|
|
1891
1925
|
// core/generate-object/output-strategy.ts
|
1892
|
-
var
|
1926
|
+
var import_provider11 = require("@ai-sdk/provider");
|
1893
1927
|
var import_provider_utils5 = require("@ai-sdk/provider-utils");
|
1894
1928
|
var import_ui_utils2 = require("@ai-sdk/ui-utils");
|
1895
1929
|
|
@@ -1927,7 +1961,7 @@ var noSchemaOutputStrategy = {
|
|
1927
1961
|
} : { success: true, value };
|
1928
1962
|
},
|
1929
1963
|
createElementStream() {
|
1930
|
-
throw new
|
1964
|
+
throw new import_provider11.UnsupportedFunctionalityError({
|
1931
1965
|
functionality: "element streams in no-schema mode"
|
1932
1966
|
});
|
1933
1967
|
}
|
@@ -1949,7 +1983,7 @@ var objectOutputStrategy = (schema) => ({
|
|
1949
1983
|
return (0, import_provider_utils5.safeValidateTypes)({ value, schema });
|
1950
1984
|
},
|
1951
1985
|
createElementStream() {
|
1952
|
-
throw new
|
1986
|
+
throw new import_provider11.UnsupportedFunctionalityError({
|
1953
1987
|
functionality: "element streams in object mode"
|
1954
1988
|
});
|
1955
1989
|
}
|
@@ -1971,11 +2005,11 @@ var arrayOutputStrategy = (schema) => {
|
|
1971
2005
|
additionalProperties: false
|
1972
2006
|
},
|
1973
2007
|
validatePartialResult({ value, latestObject, isFirstDelta, isFinalDelta }) {
|
1974
|
-
var
|
1975
|
-
if (!(0,
|
2008
|
+
var _a15;
|
2009
|
+
if (!(0, import_provider11.isJSONObject)(value) || !(0, import_provider11.isJSONArray)(value.elements)) {
|
1976
2010
|
return {
|
1977
2011
|
success: false,
|
1978
|
-
error: new
|
2012
|
+
error: new import_provider11.TypeValidationError({
|
1979
2013
|
value,
|
1980
2014
|
cause: "value must be an object that contains an array of elements"
|
1981
2015
|
})
|
@@ -1994,7 +2028,7 @@ var arrayOutputStrategy = (schema) => {
|
|
1994
2028
|
}
|
1995
2029
|
resultArray.push(result.value);
|
1996
2030
|
}
|
1997
|
-
const publishedElementCount = (
|
2031
|
+
const publishedElementCount = (_a15 = latestObject == null ? void 0 : latestObject.length) != null ? _a15 : 0;
|
1998
2032
|
let textDelta = "";
|
1999
2033
|
if (isFirstDelta) {
|
2000
2034
|
textDelta += "[";
|
@@ -2015,10 +2049,10 @@ var arrayOutputStrategy = (schema) => {
|
|
2015
2049
|
};
|
2016
2050
|
},
|
2017
2051
|
validateFinalResult(value) {
|
2018
|
-
if (!(0,
|
2052
|
+
if (!(0, import_provider11.isJSONObject)(value) || !(0, import_provider11.isJSONArray)(value.elements)) {
|
2019
2053
|
return {
|
2020
2054
|
success: false,
|
2021
|
-
error: new
|
2055
|
+
error: new import_provider11.TypeValidationError({
|
2022
2056
|
value,
|
2023
2057
|
cause: "value must be an object that contains an array of elements"
|
2024
2058
|
})
|
@@ -2083,10 +2117,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
2083
2117
|
additionalProperties: false
|
2084
2118
|
},
|
2085
2119
|
validateFinalResult(value) {
|
2086
|
-
if (!(0,
|
2120
|
+
if (!(0, import_provider11.isJSONObject)(value) || typeof value.result !== "string") {
|
2087
2121
|
return {
|
2088
2122
|
success: false,
|
2089
|
-
error: new
|
2123
|
+
error: new import_provider11.TypeValidationError({
|
2090
2124
|
value,
|
2091
2125
|
cause: 'value must be an object that contains a string in the "result" property.'
|
2092
2126
|
})
|
@@ -2095,19 +2129,19 @@ var enumOutputStrategy = (enumValues) => {
|
|
2095
2129
|
const result = value.result;
|
2096
2130
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
2097
2131
|
success: false,
|
2098
|
-
error: new
|
2132
|
+
error: new import_provider11.TypeValidationError({
|
2099
2133
|
value,
|
2100
2134
|
cause: "value must be a string in the enum"
|
2101
2135
|
})
|
2102
2136
|
};
|
2103
2137
|
},
|
2104
2138
|
validatePartialResult() {
|
2105
|
-
throw new
|
2139
|
+
throw new import_provider11.UnsupportedFunctionalityError({
|
2106
2140
|
functionality: "partial results in enum mode"
|
2107
2141
|
});
|
2108
2142
|
},
|
2109
2143
|
createElementStream() {
|
2110
|
-
throw new
|
2144
|
+
throw new import_provider11.UnsupportedFunctionalityError({
|
2111
2145
|
functionality: "element streams in enum mode"
|
2112
2146
|
});
|
2113
2147
|
}
|
@@ -2332,7 +2366,7 @@ async function generateObject({
|
|
2332
2366
|
}),
|
2333
2367
|
tracer,
|
2334
2368
|
fn: async (span) => {
|
2335
|
-
var
|
2369
|
+
var _a15, _b;
|
2336
2370
|
if (mode === "auto" || mode == null) {
|
2337
2371
|
mode = model.defaultObjectGenerationMode;
|
2338
2372
|
}
|
@@ -2394,7 +2428,7 @@ async function generateObject({
|
|
2394
2428
|
}),
|
2395
2429
|
tracer,
|
2396
2430
|
fn: async (span2) => {
|
2397
|
-
var
|
2431
|
+
var _a16, _b2, _c, _d, _e, _f;
|
2398
2432
|
const result2 = await model.doGenerate({
|
2399
2433
|
mode: {
|
2400
2434
|
type: "object-json",
|
@@ -2410,7 +2444,7 @@ async function generateObject({
|
|
2410
2444
|
headers
|
2411
2445
|
});
|
2412
2446
|
const responseData = {
|
2413
|
-
id: (_b2 = (
|
2447
|
+
id: (_b2 = (_a16 = result2.response) == null ? void 0 : _a16.id) != null ? _b2 : generateId3(),
|
2414
2448
|
timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
2415
2449
|
modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId
|
2416
2450
|
};
|
@@ -2452,7 +2486,7 @@ async function generateObject({
|
|
2452
2486
|
rawResponse = generateResult.rawResponse;
|
2453
2487
|
logprobs = generateResult.logprobs;
|
2454
2488
|
resultProviderMetadata = generateResult.providerMetadata;
|
2455
|
-
request = (
|
2489
|
+
request = (_a15 = generateResult.request) != null ? _a15 : {};
|
2456
2490
|
response = generateResult.responseData;
|
2457
2491
|
break;
|
2458
2492
|
}
|
@@ -2498,7 +2532,7 @@ async function generateObject({
|
|
2498
2532
|
}),
|
2499
2533
|
tracer,
|
2500
2534
|
fn: async (span2) => {
|
2501
|
-
var
|
2535
|
+
var _a16, _b2, _c, _d, _e, _f, _g, _h;
|
2502
2536
|
const result2 = await model.doGenerate({
|
2503
2537
|
mode: {
|
2504
2538
|
type: "object-tool",
|
@@ -2516,7 +2550,7 @@ async function generateObject({
|
|
2516
2550
|
abortSignal,
|
2517
2551
|
headers
|
2518
2552
|
});
|
2519
|
-
const objectText = (_b2 = (
|
2553
|
+
const objectText = (_b2 = (_a16 = result2.toolCalls) == null ? void 0 : _a16[0]) == null ? void 0 : _b2.args;
|
2520
2554
|
const responseData = {
|
2521
2555
|
id: (_d = (_c = result2.response) == null ? void 0 : _c.id) != null ? _d : generateId3(),
|
2522
2556
|
timestamp: (_f = (_e = result2.response) == null ? void 0 : _e.timestamp) != null ? _f : currentDate(),
|
@@ -2642,9 +2676,9 @@ var DefaultGenerateObjectResult = class {
|
|
2642
2676
|
this.logprobs = options.logprobs;
|
2643
2677
|
}
|
2644
2678
|
toJsonResponse(init) {
|
2645
|
-
var
|
2679
|
+
var _a15;
|
2646
2680
|
return new Response(JSON.stringify(this.object), {
|
2647
|
-
status: (
|
2681
|
+
status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
|
2648
2682
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
2649
2683
|
contentType: "application/json; charset=utf-8"
|
2650
2684
|
})
|
@@ -2679,17 +2713,17 @@ var DelayedPromise = class {
|
|
2679
2713
|
return this.promise;
|
2680
2714
|
}
|
2681
2715
|
resolve(value) {
|
2682
|
-
var
|
2716
|
+
var _a15;
|
2683
2717
|
this.status = { type: "resolved", value };
|
2684
2718
|
if (this.promise) {
|
2685
|
-
(
|
2719
|
+
(_a15 = this._resolve) == null ? void 0 : _a15.call(this, value);
|
2686
2720
|
}
|
2687
2721
|
}
|
2688
2722
|
reject(error) {
|
2689
|
-
var
|
2723
|
+
var _a15;
|
2690
2724
|
this.status = { type: "rejected", error };
|
2691
2725
|
if (this.promise) {
|
2692
|
-
(
|
2726
|
+
(_a15 = this._reject) == null ? void 0 : _a15.call(this, error);
|
2693
2727
|
}
|
2694
2728
|
}
|
2695
2729
|
};
|
@@ -2793,8 +2827,8 @@ function createStitchableStream() {
|
|
2793
2827
|
|
2794
2828
|
// core/util/now.ts
|
2795
2829
|
function now() {
|
2796
|
-
var
|
2797
|
-
return (_b = (
|
2830
|
+
var _a15, _b;
|
2831
|
+
return (_b = (_a15 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a15.now()) != null ? _b : Date.now();
|
2798
2832
|
}
|
2799
2833
|
|
2800
2834
|
// core/generate-object/stream-object.ts
|
@@ -3083,7 +3117,7 @@ var DefaultStreamObjectResult = class {
|
|
3083
3117
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
3084
3118
|
new TransformStream({
|
3085
3119
|
async transform(chunk, controller) {
|
3086
|
-
var
|
3120
|
+
var _a15, _b, _c;
|
3087
3121
|
if (isFirstChunk) {
|
3088
3122
|
const msToFirstChunk = now2() - startTimestampMs;
|
3089
3123
|
isFirstChunk = false;
|
@@ -3129,7 +3163,7 @@ var DefaultStreamObjectResult = class {
|
|
3129
3163
|
switch (chunk.type) {
|
3130
3164
|
case "response-metadata": {
|
3131
3165
|
response = {
|
3132
|
-
id: (
|
3166
|
+
id: (_a15 = chunk.id) != null ? _a15 : response.id,
|
3133
3167
|
timestamp: (_b = chunk.timestamp) != null ? _b : response.timestamp,
|
3134
3168
|
modelId: (_c = chunk.modelId) != null ? _c : response.modelId
|
3135
3169
|
};
|
@@ -3343,9 +3377,9 @@ var DefaultStreamObjectResult = class {
|
|
3343
3377
|
});
|
3344
3378
|
}
|
3345
3379
|
toTextStreamResponse(init) {
|
3346
|
-
var
|
3380
|
+
var _a15;
|
3347
3381
|
return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
|
3348
|
-
status: (
|
3382
|
+
status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
|
3349
3383
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
3350
3384
|
contentType: "text/plain; charset=utf-8"
|
3351
3385
|
})
|
@@ -3357,48 +3391,48 @@ var DefaultStreamObjectResult = class {
|
|
3357
3391
|
var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
3358
3392
|
|
3359
3393
|
// errors/no-output-specified-error.ts
|
3360
|
-
var
|
3361
|
-
var
|
3362
|
-
var
|
3363
|
-
var
|
3364
|
-
var
|
3365
|
-
var NoOutputSpecifiedError = class extends
|
3394
|
+
var import_provider12 = require("@ai-sdk/provider");
|
3395
|
+
var name9 = "AI_NoOutputSpecifiedError";
|
3396
|
+
var marker9 = `vercel.ai.error.${name9}`;
|
3397
|
+
var symbol9 = Symbol.for(marker9);
|
3398
|
+
var _a9;
|
3399
|
+
var NoOutputSpecifiedError = class extends import_provider12.AISDKError {
|
3366
3400
|
// used in isInstance
|
3367
3401
|
constructor({ message = "No output specified." } = {}) {
|
3368
|
-
super({ name:
|
3369
|
-
this[
|
3402
|
+
super({ name: name9, message });
|
3403
|
+
this[_a9] = true;
|
3370
3404
|
}
|
3371
3405
|
static isInstance(error) {
|
3372
|
-
return
|
3406
|
+
return import_provider12.AISDKError.hasMarker(error, marker9);
|
3373
3407
|
}
|
3374
3408
|
};
|
3375
|
-
|
3409
|
+
_a9 = symbol9;
|
3376
3410
|
|
3377
3411
|
// errors/tool-execution-error.ts
|
3378
|
-
var
|
3379
|
-
var
|
3380
|
-
var
|
3381
|
-
var
|
3382
|
-
var
|
3383
|
-
var ToolExecutionError = class extends
|
3412
|
+
var import_provider13 = require("@ai-sdk/provider");
|
3413
|
+
var name10 = "AI_ToolExecutionError";
|
3414
|
+
var marker10 = `vercel.ai.error.${name10}`;
|
3415
|
+
var symbol10 = Symbol.for(marker10);
|
3416
|
+
var _a10;
|
3417
|
+
var ToolExecutionError = class extends import_provider13.AISDKError {
|
3384
3418
|
constructor({
|
3385
3419
|
toolArgs,
|
3386
3420
|
toolName,
|
3387
3421
|
toolCallId,
|
3388
3422
|
cause,
|
3389
|
-
message = `Error executing tool ${toolName}: ${(0,
|
3423
|
+
message = `Error executing tool ${toolName}: ${(0, import_provider13.getErrorMessage)(cause)}`
|
3390
3424
|
}) {
|
3391
|
-
super({ name:
|
3392
|
-
this[
|
3425
|
+
super({ name: name10, message, cause });
|
3426
|
+
this[_a10] = true;
|
3393
3427
|
this.toolArgs = toolArgs;
|
3394
3428
|
this.toolName = toolName;
|
3395
3429
|
this.toolCallId = toolCallId;
|
3396
3430
|
}
|
3397
3431
|
static isInstance(error) {
|
3398
|
-
return
|
3432
|
+
return import_provider13.AISDKError.hasMarker(error, marker10);
|
3399
3433
|
}
|
3400
3434
|
};
|
3401
|
-
|
3435
|
+
_a10 = symbol10;
|
3402
3436
|
|
3403
3437
|
// core/prompt/prepare-tools-and-tool-choice.ts
|
3404
3438
|
var import_ui_utils4 = require("@ai-sdk/ui-utils");
|
@@ -3421,24 +3455,24 @@ function prepareToolsAndToolChoice({
|
|
3421
3455
|
};
|
3422
3456
|
}
|
3423
3457
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
3424
|
-
([
|
3458
|
+
([name15]) => activeTools.includes(name15)
|
3425
3459
|
) : Object.entries(tools);
|
3426
3460
|
return {
|
3427
|
-
tools: filteredTools.map(([
|
3461
|
+
tools: filteredTools.map(([name15, tool2]) => {
|
3428
3462
|
const toolType = tool2.type;
|
3429
3463
|
switch (toolType) {
|
3430
3464
|
case void 0:
|
3431
3465
|
case "function":
|
3432
3466
|
return {
|
3433
3467
|
type: "function",
|
3434
|
-
name:
|
3468
|
+
name: name15,
|
3435
3469
|
description: tool2.description,
|
3436
3470
|
parameters: (0, import_ui_utils4.asSchema)(tool2.parameters).jsonSchema
|
3437
3471
|
};
|
3438
3472
|
case "provider-defined":
|
3439
3473
|
return {
|
3440
3474
|
type: "provider-defined",
|
3441
|
-
name:
|
3475
|
+
name: name15,
|
3442
3476
|
id: tool2.id,
|
3443
3477
|
args: tool2.args
|
3444
3478
|
};
|
@@ -3470,75 +3504,75 @@ var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
3470
3504
|
var import_ui_utils5 = require("@ai-sdk/ui-utils");
|
3471
3505
|
|
3472
3506
|
// errors/invalid-tool-arguments-error.ts
|
3473
|
-
var
|
3474
|
-
var
|
3475
|
-
var
|
3476
|
-
var
|
3477
|
-
var
|
3478
|
-
var InvalidToolArgumentsError = class extends
|
3507
|
+
var import_provider14 = require("@ai-sdk/provider");
|
3508
|
+
var name11 = "AI_InvalidToolArgumentsError";
|
3509
|
+
var marker11 = `vercel.ai.error.${name11}`;
|
3510
|
+
var symbol11 = Symbol.for(marker11);
|
3511
|
+
var _a11;
|
3512
|
+
var InvalidToolArgumentsError = class extends import_provider14.AISDKError {
|
3479
3513
|
constructor({
|
3480
3514
|
toolArgs,
|
3481
3515
|
toolName,
|
3482
3516
|
cause,
|
3483
|
-
message = `Invalid arguments for tool ${toolName}: ${(0,
|
3517
|
+
message = `Invalid arguments for tool ${toolName}: ${(0, import_provider14.getErrorMessage)(
|
3484
3518
|
cause
|
3485
3519
|
)}`
|
3486
3520
|
}) {
|
3487
|
-
super({ name:
|
3488
|
-
this[
|
3521
|
+
super({ name: name11, message, cause });
|
3522
|
+
this[_a11] = true;
|
3489
3523
|
this.toolArgs = toolArgs;
|
3490
3524
|
this.toolName = toolName;
|
3491
3525
|
}
|
3492
3526
|
static isInstance(error) {
|
3493
|
-
return
|
3527
|
+
return import_provider14.AISDKError.hasMarker(error, marker11);
|
3494
3528
|
}
|
3495
3529
|
};
|
3496
|
-
|
3530
|
+
_a11 = symbol11;
|
3497
3531
|
|
3498
3532
|
// errors/no-such-tool-error.ts
|
3499
|
-
var
|
3500
|
-
var
|
3501
|
-
var
|
3502
|
-
var
|
3503
|
-
var
|
3504
|
-
var NoSuchToolError = class extends
|
3533
|
+
var import_provider15 = require("@ai-sdk/provider");
|
3534
|
+
var name12 = "AI_NoSuchToolError";
|
3535
|
+
var marker12 = `vercel.ai.error.${name12}`;
|
3536
|
+
var symbol12 = Symbol.for(marker12);
|
3537
|
+
var _a12;
|
3538
|
+
var NoSuchToolError = class extends import_provider15.AISDKError {
|
3505
3539
|
constructor({
|
3506
3540
|
toolName,
|
3507
3541
|
availableTools = void 0,
|
3508
3542
|
message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
|
3509
3543
|
}) {
|
3510
|
-
super({ name:
|
3511
|
-
this[
|
3544
|
+
super({ name: name12, message });
|
3545
|
+
this[_a12] = true;
|
3512
3546
|
this.toolName = toolName;
|
3513
3547
|
this.availableTools = availableTools;
|
3514
3548
|
}
|
3515
3549
|
static isInstance(error) {
|
3516
|
-
return
|
3550
|
+
return import_provider15.AISDKError.hasMarker(error, marker12);
|
3517
3551
|
}
|
3518
3552
|
};
|
3519
|
-
|
3553
|
+
_a12 = symbol12;
|
3520
3554
|
|
3521
3555
|
// errors/tool-call-repair-error.ts
|
3522
|
-
var
|
3523
|
-
var
|
3524
|
-
var
|
3525
|
-
var
|
3526
|
-
var
|
3527
|
-
var ToolCallRepairError = class extends
|
3556
|
+
var import_provider16 = require("@ai-sdk/provider");
|
3557
|
+
var name13 = "AI_ToolCallRepairError";
|
3558
|
+
var marker13 = `vercel.ai.error.${name13}`;
|
3559
|
+
var symbol13 = Symbol.for(marker13);
|
3560
|
+
var _a13;
|
3561
|
+
var ToolCallRepairError = class extends import_provider16.AISDKError {
|
3528
3562
|
constructor({
|
3529
3563
|
cause,
|
3530
3564
|
originalError,
|
3531
|
-
message = `Error repairing tool call: ${(0,
|
3565
|
+
message = `Error repairing tool call: ${(0, import_provider16.getErrorMessage)(cause)}`
|
3532
3566
|
}) {
|
3533
|
-
super({ name:
|
3534
|
-
this[
|
3567
|
+
super({ name: name13, message, cause });
|
3568
|
+
this[_a13] = true;
|
3535
3569
|
this.originalError = originalError;
|
3536
3570
|
}
|
3537
3571
|
static isInstance(error) {
|
3538
|
-
return
|
3572
|
+
return import_provider16.AISDKError.hasMarker(error, marker13);
|
3539
3573
|
}
|
3540
3574
|
};
|
3541
|
-
|
3575
|
+
_a13 = symbol13;
|
3542
3576
|
|
3543
3577
|
// core/generate-text/parse-tool-call.ts
|
3544
3578
|
async function parseToolCall({
|
@@ -3683,7 +3717,7 @@ async function generateText({
|
|
3683
3717
|
onStepFinish,
|
3684
3718
|
...settings
|
3685
3719
|
}) {
|
3686
|
-
var
|
3720
|
+
var _a15;
|
3687
3721
|
if (maxSteps < 1) {
|
3688
3722
|
throw new InvalidArgumentError({
|
3689
3723
|
parameter: "maxSteps",
|
@@ -3700,7 +3734,7 @@ async function generateText({
|
|
3700
3734
|
});
|
3701
3735
|
const initialPrompt = standardizePrompt({
|
3702
3736
|
prompt: {
|
3703
|
-
system: (
|
3737
|
+
system: (_a15 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a15 : system,
|
3704
3738
|
prompt,
|
3705
3739
|
messages
|
3706
3740
|
},
|
@@ -3726,7 +3760,7 @@ async function generateText({
|
|
3726
3760
|
}),
|
3727
3761
|
tracer,
|
3728
3762
|
fn: async (span) => {
|
3729
|
-
var
|
3763
|
+
var _a16, _b, _c, _d, _e, _f;
|
3730
3764
|
const mode = {
|
3731
3765
|
type: "regular",
|
3732
3766
|
...prepareToolsAndToolChoice({ tools, toolChoice, activeTools })
|
@@ -3778,8 +3812,8 @@ async function generateText({
|
|
3778
3812
|
"ai.prompt.tools": {
|
3779
3813
|
// convert the language model level tools:
|
3780
3814
|
input: () => {
|
3781
|
-
var
|
3782
|
-
return (
|
3815
|
+
var _a17;
|
3816
|
+
return (_a17 = mode.tools) == null ? void 0 : _a17.map((tool2) => JSON.stringify(tool2));
|
3783
3817
|
}
|
3784
3818
|
},
|
3785
3819
|
"ai.prompt.toolChoice": {
|
@@ -3799,7 +3833,7 @@ async function generateText({
|
|
3799
3833
|
}),
|
3800
3834
|
tracer,
|
3801
3835
|
fn: async (span2) => {
|
3802
|
-
var
|
3836
|
+
var _a17, _b2, _c2, _d2, _e2, _f2;
|
3803
3837
|
const result = await model.doGenerate({
|
3804
3838
|
mode,
|
3805
3839
|
...callSettings,
|
@@ -3811,7 +3845,7 @@ async function generateText({
|
|
3811
3845
|
headers
|
3812
3846
|
});
|
3813
3847
|
const responseData = {
|
3814
|
-
id: (_b2 = (
|
3848
|
+
id: (_b2 = (_a17 = result.response) == null ? void 0 : _a17.id) != null ? _b2 : generateId3(),
|
3815
3849
|
timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
|
3816
3850
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : model.modelId
|
3817
3851
|
};
|
@@ -3845,7 +3879,7 @@ async function generateText({
|
|
3845
3879
|
})
|
3846
3880
|
);
|
3847
3881
|
currentToolCalls = await Promise.all(
|
3848
|
-
((
|
3882
|
+
((_a16 = currentModelResponse.toolCalls) != null ? _a16 : []).map(
|
3849
3883
|
(toolCall) => parseToolCall({
|
3850
3884
|
toolCall,
|
3851
3885
|
tools,
|
@@ -3910,6 +3944,7 @@ async function generateText({
|
|
3910
3944
|
const currentStepResult = {
|
3911
3945
|
stepType,
|
3912
3946
|
text: stepText,
|
3947
|
+
reasoning: currentModelResponse.reasoning,
|
3913
3948
|
toolCalls: currentToolCalls,
|
3914
3949
|
toolResults: currentToolResults,
|
3915
3950
|
finishReason: currentModelResponse.finishReason,
|
@@ -3948,6 +3983,7 @@ async function generateText({
|
|
3948
3983
|
);
|
3949
3984
|
return new DefaultGenerateTextResult({
|
3950
3985
|
text: text2,
|
3986
|
+
reasoning: currentModelResponse.reasoning,
|
3951
3987
|
outputResolver: () => {
|
3952
3988
|
if (output == null) {
|
3953
3989
|
throw new NoOutputSpecifiedError();
|
@@ -4053,6 +4089,7 @@ async function executeTools({
|
|
4053
4089
|
var DefaultGenerateTextResult = class {
|
4054
4090
|
constructor(options) {
|
4055
4091
|
this.text = options.text;
|
4092
|
+
this.reasoning = options.reasoning;
|
4056
4093
|
this.toolCalls = options.toolCalls;
|
4057
4094
|
this.toolResults = options.toolResults;
|
4058
4095
|
this.finishReason = options.finishReason;
|
@@ -4080,7 +4117,7 @@ var import_provider_utils10 = require("@ai-sdk/provider-utils");
|
|
4080
4117
|
var import_ui_utils6 = require("@ai-sdk/ui-utils");
|
4081
4118
|
|
4082
4119
|
// errors/index.ts
|
4083
|
-
var
|
4120
|
+
var import_provider17 = require("@ai-sdk/provider");
|
4084
4121
|
|
4085
4122
|
// core/generate-text/output.ts
|
4086
4123
|
var text = () => ({
|
@@ -4160,7 +4197,7 @@ var object = ({
|
|
4160
4197
|
};
|
4161
4198
|
|
4162
4199
|
// core/generate-text/smooth-stream.ts
|
4163
|
-
var
|
4200
|
+
var import_provider18 = require("@ai-sdk/provider");
|
4164
4201
|
var CHUNKING_REGEXPS = {
|
4165
4202
|
word: /\s*\S+\s+/m,
|
4166
4203
|
line: /[^\n]*\n/m
|
@@ -4172,7 +4209,7 @@ function smoothStream({
|
|
4172
4209
|
} = {}) {
|
4173
4210
|
const chunkingRegexp = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
4174
4211
|
if (chunkingRegexp == null) {
|
4175
|
-
throw new
|
4212
|
+
throw new import_provider18.InvalidArgumentError({
|
4176
4213
|
argument: "chunking",
|
4177
4214
|
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
4178
4215
|
});
|
@@ -4339,6 +4376,7 @@ function runToolsTransformation({
|
|
4339
4376
|
const chunkType = chunk.type;
|
4340
4377
|
switch (chunkType) {
|
4341
4378
|
case "text-delta":
|
4379
|
+
case "reasoning":
|
4342
4380
|
case "response-metadata":
|
4343
4381
|
case "error": {
|
4344
4382
|
controller.enqueue(chunk);
|
@@ -4518,7 +4556,8 @@ function streamText({
|
|
4518
4556
|
experimental_continueSteps: continueSteps = false,
|
4519
4557
|
experimental_telemetry: telemetry,
|
4520
4558
|
experimental_providerMetadata: providerMetadata,
|
4521
|
-
experimental_toolCallStreaming
|
4559
|
+
experimental_toolCallStreaming = false,
|
4560
|
+
toolCallStreaming = experimental_toolCallStreaming,
|
4522
4561
|
experimental_activeTools: activeTools,
|
4523
4562
|
experimental_repairToolCall: repairToolCall,
|
4524
4563
|
experimental_transform: transform,
|
@@ -4646,12 +4685,13 @@ var DefaultStreamTextResult = class {
|
|
4646
4685
|
this.finishReasonPromise = new DelayedPromise();
|
4647
4686
|
this.providerMetadataPromise = new DelayedPromise();
|
4648
4687
|
this.textPromise = new DelayedPromise();
|
4688
|
+
this.reasoningPromise = new DelayedPromise();
|
4649
4689
|
this.toolCallsPromise = new DelayedPromise();
|
4650
4690
|
this.toolResultsPromise = new DelayedPromise();
|
4651
4691
|
this.requestPromise = new DelayedPromise();
|
4652
4692
|
this.responsePromise = new DelayedPromise();
|
4653
4693
|
this.stepsPromise = new DelayedPromise();
|
4654
|
-
var
|
4694
|
+
var _a15;
|
4655
4695
|
if (maxSteps < 1) {
|
4656
4696
|
throw new InvalidArgumentError({
|
4657
4697
|
parameter: "maxSteps",
|
@@ -4663,6 +4703,7 @@ var DefaultStreamTextResult = class {
|
|
4663
4703
|
let recordedStepText = "";
|
4664
4704
|
let recordedContinuationText = "";
|
4665
4705
|
let recordedFullText = "";
|
4706
|
+
let recordedReasoningText = void 0;
|
4666
4707
|
const recordedResponse = {
|
4667
4708
|
id: generateId3(),
|
4668
4709
|
timestamp: currentDate(),
|
@@ -4680,7 +4721,7 @@ var DefaultStreamTextResult = class {
|
|
4680
4721
|
async transform(chunk, controller) {
|
4681
4722
|
controller.enqueue(chunk);
|
4682
4723
|
const { part } = chunk;
|
4683
|
-
if (part.type === "text-delta" || part.type === "tool-call" || part.type === "tool-result" || part.type === "tool-call-streaming-start" || part.type === "tool-call-delta") {
|
4724
|
+
if (part.type === "text-delta" || part.type === "reasoning" || part.type === "tool-call" || part.type === "tool-result" || part.type === "tool-call-streaming-start" || part.type === "tool-call-delta") {
|
4684
4725
|
await (onChunk == null ? void 0 : onChunk({ chunk: part }));
|
4685
4726
|
}
|
4686
4727
|
if (part.type === "text-delta") {
|
@@ -4688,6 +4729,9 @@ var DefaultStreamTextResult = class {
|
|
4688
4729
|
recordedContinuationText += part.textDelta;
|
4689
4730
|
recordedFullText += part.textDelta;
|
4690
4731
|
}
|
4732
|
+
if (part.type === "reasoning") {
|
4733
|
+
recordedReasoningText = (recordedReasoningText != null ? recordedReasoningText : "") + part.textDelta;
|
4734
|
+
}
|
4691
4735
|
if (part.type === "tool-call") {
|
4692
4736
|
recordedToolCalls.push(part);
|
4693
4737
|
}
|
@@ -4720,6 +4764,7 @@ var DefaultStreamTextResult = class {
|
|
4720
4764
|
const currentStepResult = {
|
4721
4765
|
stepType,
|
4722
4766
|
text: recordedStepText,
|
4767
|
+
reasoning: recordedReasoningText,
|
4723
4768
|
toolCalls: recordedToolCalls,
|
4724
4769
|
toolResults: recordedToolResults,
|
4725
4770
|
finishReason: part.finishReason,
|
@@ -4757,7 +4802,7 @@ var DefaultStreamTextResult = class {
|
|
4757
4802
|
}
|
4758
4803
|
},
|
4759
4804
|
async flush(controller) {
|
4760
|
-
var
|
4805
|
+
var _a16;
|
4761
4806
|
try {
|
4762
4807
|
if (recordedSteps.length === 0) {
|
4763
4808
|
return;
|
@@ -4780,15 +4825,17 @@ var DefaultStreamTextResult = class {
|
|
4780
4825
|
self.finishReasonPromise.resolve(finishReason);
|
4781
4826
|
self.usagePromise.resolve(usage);
|
4782
4827
|
self.textPromise.resolve(recordedFullText);
|
4828
|
+
self.reasoningPromise.resolve(recordedReasoningText);
|
4783
4829
|
self.stepsPromise.resolve(recordedSteps);
|
4784
4830
|
await (onFinish == null ? void 0 : onFinish({
|
4785
4831
|
finishReason,
|
4786
4832
|
logprobs: void 0,
|
4787
4833
|
usage,
|
4788
4834
|
text: recordedFullText,
|
4835
|
+
reasoning: recordedReasoningText,
|
4789
4836
|
toolCalls: lastStep.toolCalls,
|
4790
4837
|
toolResults: lastStep.toolResults,
|
4791
|
-
request: (
|
4838
|
+
request: (_a16 = lastStep.request) != null ? _a16 : {},
|
4792
4839
|
response: lastStep.response,
|
4793
4840
|
warnings: lastStep.warnings,
|
4794
4841
|
experimental_providerMetadata: lastStep.experimental_providerMetadata,
|
@@ -4802,8 +4849,8 @@ var DefaultStreamTextResult = class {
|
|
4802
4849
|
"ai.response.text": { output: () => recordedFullText },
|
4803
4850
|
"ai.response.toolCalls": {
|
4804
4851
|
output: () => {
|
4805
|
-
var
|
4806
|
-
return ((
|
4852
|
+
var _a17;
|
4853
|
+
return ((_a17 = lastStep.toolCalls) == null ? void 0 : _a17.length) ? JSON.stringify(lastStep.toolCalls) : void 0;
|
4807
4854
|
}
|
4808
4855
|
},
|
4809
4856
|
"ai.usage.promptTokens": usage.promptTokens,
|
@@ -4845,7 +4892,7 @@ var DefaultStreamTextResult = class {
|
|
4845
4892
|
});
|
4846
4893
|
const initialPrompt = standardizePrompt({
|
4847
4894
|
prompt: {
|
4848
|
-
system: (
|
4895
|
+
system: (_a15 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a15 : system,
|
4849
4896
|
prompt,
|
4850
4897
|
messages
|
4851
4898
|
},
|
@@ -4921,8 +4968,8 @@ var DefaultStreamTextResult = class {
|
|
4921
4968
|
"ai.prompt.tools": {
|
4922
4969
|
// convert the language model level tools:
|
4923
4970
|
input: () => {
|
4924
|
-
var
|
4925
|
-
return (
|
4971
|
+
var _a16;
|
4972
|
+
return (_a16 = mode.tools) == null ? void 0 : _a16.map((tool2) => JSON.stringify(tool2));
|
4926
4973
|
}
|
4927
4974
|
},
|
4928
4975
|
"ai.prompt.toolChoice": {
|
@@ -4982,6 +5029,7 @@ var DefaultStreamTextResult = class {
|
|
4982
5029
|
let stepProviderMetadata;
|
4983
5030
|
let stepFirstChunk = true;
|
4984
5031
|
let stepText = "";
|
5032
|
+
let stepReasoning = "";
|
4985
5033
|
let fullStepText = stepType2 === "continue" ? previousStepText : "";
|
4986
5034
|
let stepLogProbs;
|
4987
5035
|
let stepResponse = {
|
@@ -5007,7 +5055,7 @@ var DefaultStreamTextResult = class {
|
|
5007
5055
|
transformedStream.pipeThrough(
|
5008
5056
|
new TransformStream({
|
5009
5057
|
async transform(chunk, controller) {
|
5010
|
-
var
|
5058
|
+
var _a16, _b, _c;
|
5011
5059
|
if (stepFirstChunk) {
|
5012
5060
|
const msToFirstChunk = now2() - startTimestampMs;
|
5013
5061
|
stepFirstChunk = false;
|
@@ -5053,6 +5101,11 @@ var DefaultStreamTextResult = class {
|
|
5053
5101
|
}
|
5054
5102
|
break;
|
5055
5103
|
}
|
5104
|
+
case "reasoning": {
|
5105
|
+
controller.enqueue(chunk);
|
5106
|
+
stepReasoning += chunk.textDelta;
|
5107
|
+
break;
|
5108
|
+
}
|
5056
5109
|
case "tool-call": {
|
5057
5110
|
controller.enqueue(chunk);
|
5058
5111
|
stepToolCalls.push(chunk);
|
@@ -5065,7 +5118,7 @@ var DefaultStreamTextResult = class {
|
|
5065
5118
|
}
|
5066
5119
|
case "response-metadata": {
|
5067
5120
|
stepResponse = {
|
5068
|
-
id: (
|
5121
|
+
id: (_a16 = chunk.id) != null ? _a16 : stepResponse.id,
|
5069
5122
|
timestamp: (_b = chunk.timestamp) != null ? _b : stepResponse.timestamp,
|
5070
5123
|
modelId: (_c = chunk.modelId) != null ? _c : stepResponse.modelId
|
5071
5124
|
};
|
@@ -5266,6 +5319,9 @@ var DefaultStreamTextResult = class {
|
|
5266
5319
|
get text() {
|
5267
5320
|
return this.textPromise.value;
|
5268
5321
|
}
|
5322
|
+
get reasoning() {
|
5323
|
+
return this.reasoningPromise.value;
|
5324
|
+
}
|
5269
5325
|
get toolCalls() {
|
5270
5326
|
return this.toolCallsPromise.value;
|
5271
5327
|
}
|
@@ -5358,6 +5414,12 @@ var DefaultStreamTextResult = class {
|
|
5358
5414
|
controller.enqueue((0, import_ui_utils8.formatDataStreamPart)("text", chunk.textDelta));
|
5359
5415
|
break;
|
5360
5416
|
}
|
5417
|
+
case "reasoning": {
|
5418
|
+
controller.enqueue(
|
5419
|
+
(0, import_ui_utils8.formatDataStreamPart)("reasoning", chunk.textDelta)
|
5420
|
+
);
|
5421
|
+
break;
|
5422
|
+
}
|
5361
5423
|
case "tool-call-streaming-start": {
|
5362
5424
|
controller.enqueue(
|
5363
5425
|
(0, import_ui_utils8.formatDataStreamPart)("tool_call_streaming_start", {
|
@@ -5509,9 +5571,9 @@ var DefaultStreamTextResult = class {
|
|
5509
5571
|
);
|
5510
5572
|
}
|
5511
5573
|
toTextStreamResponse(init) {
|
5512
|
-
var
|
5574
|
+
var _a15;
|
5513
5575
|
return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
|
5514
|
-
status: (
|
5576
|
+
status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
|
5515
5577
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
5516
5578
|
contentType: "text/plain; charset=utf-8"
|
5517
5579
|
})
|
@@ -5558,7 +5620,7 @@ function appendResponseMessages({
|
|
5558
5620
|
messages,
|
5559
5621
|
responseMessages
|
5560
5622
|
}) {
|
5561
|
-
var
|
5623
|
+
var _a15;
|
5562
5624
|
const clonedMessages = structuredClone(messages);
|
5563
5625
|
for (const message of responseMessages) {
|
5564
5626
|
const role = message.role;
|
@@ -5581,7 +5643,7 @@ function appendResponseMessages({
|
|
5581
5643
|
}
|
5582
5644
|
case "tool": {
|
5583
5645
|
const previousMessage = clonedMessages[clonedMessages.length - 1];
|
5584
|
-
(
|
5646
|
+
(_a15 = previousMessage.toolInvocations) != null ? _a15 : previousMessage.toolInvocations = [];
|
5585
5647
|
if (previousMessage.role !== "assistant") {
|
5586
5648
|
throw new Error(
|
5587
5649
|
`Tool result must follow an assistant message: ${previousMessage.role}`
|
@@ -5610,7 +5672,7 @@ function appendResponseMessages({
|
|
5610
5672
|
}
|
5611
5673
|
|
5612
5674
|
// core/registry/custom-provider.ts
|
5613
|
-
var
|
5675
|
+
var import_provider19 = require("@ai-sdk/provider");
|
5614
5676
|
function experimental_customProvider({
|
5615
5677
|
languageModels,
|
5616
5678
|
textEmbeddingModels,
|
@@ -5624,7 +5686,7 @@ function experimental_customProvider({
|
|
5624
5686
|
if (fallbackProvider) {
|
5625
5687
|
return fallbackProvider.languageModel(modelId);
|
5626
5688
|
}
|
5627
|
-
throw new
|
5689
|
+
throw new import_provider19.NoSuchModelError({ modelId, modelType: "languageModel" });
|
5628
5690
|
},
|
5629
5691
|
textEmbeddingModel(modelId) {
|
5630
5692
|
if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
|
@@ -5633,18 +5695,18 @@ function experimental_customProvider({
|
|
5633
5695
|
if (fallbackProvider) {
|
5634
5696
|
return fallbackProvider.textEmbeddingModel(modelId);
|
5635
5697
|
}
|
5636
|
-
throw new
|
5698
|
+
throw new import_provider19.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
|
5637
5699
|
}
|
5638
5700
|
};
|
5639
5701
|
}
|
5640
5702
|
|
5641
5703
|
// core/registry/no-such-provider-error.ts
|
5642
|
-
var
|
5643
|
-
var
|
5644
|
-
var
|
5645
|
-
var
|
5646
|
-
var
|
5647
|
-
var NoSuchProviderError = class extends
|
5704
|
+
var import_provider20 = require("@ai-sdk/provider");
|
5705
|
+
var name14 = "AI_NoSuchProviderError";
|
5706
|
+
var marker14 = `vercel.ai.error.${name14}`;
|
5707
|
+
var symbol14 = Symbol.for(marker14);
|
5708
|
+
var _a14;
|
5709
|
+
var NoSuchProviderError = class extends import_provider20.NoSuchModelError {
|
5648
5710
|
constructor({
|
5649
5711
|
modelId,
|
5650
5712
|
modelType,
|
@@ -5652,19 +5714,19 @@ var NoSuchProviderError = class extends import_provider19.NoSuchModelError {
|
|
5652
5714
|
availableProviders,
|
5653
5715
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
5654
5716
|
}) {
|
5655
|
-
super({ errorName:
|
5656
|
-
this[
|
5717
|
+
super({ errorName: name14, modelId, modelType, message });
|
5718
|
+
this[_a14] = true;
|
5657
5719
|
this.providerId = providerId;
|
5658
5720
|
this.availableProviders = availableProviders;
|
5659
5721
|
}
|
5660
5722
|
static isInstance(error) {
|
5661
|
-
return
|
5723
|
+
return import_provider20.AISDKError.hasMarker(error, marker14);
|
5662
5724
|
}
|
5663
5725
|
};
|
5664
|
-
|
5726
|
+
_a14 = symbol14;
|
5665
5727
|
|
5666
5728
|
// core/registry/provider-registry.ts
|
5667
|
-
var
|
5729
|
+
var import_provider21 = require("@ai-sdk/provider");
|
5668
5730
|
function experimental_createProviderRegistry(providers) {
|
5669
5731
|
const registry = new DefaultProviderRegistry();
|
5670
5732
|
for (const [id, provider] of Object.entries(providers)) {
|
@@ -5694,7 +5756,7 @@ var DefaultProviderRegistry = class {
|
|
5694
5756
|
splitId(id, modelType) {
|
5695
5757
|
const index = id.indexOf(":");
|
5696
5758
|
if (index === -1) {
|
5697
|
-
throw new
|
5759
|
+
throw new import_provider21.NoSuchModelError({
|
5698
5760
|
modelId: id,
|
5699
5761
|
modelType,
|
5700
5762
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId:modelId")`
|
@@ -5703,21 +5765,21 @@ var DefaultProviderRegistry = class {
|
|
5703
5765
|
return [id.slice(0, index), id.slice(index + 1)];
|
5704
5766
|
}
|
5705
5767
|
languageModel(id) {
|
5706
|
-
var
|
5768
|
+
var _a15, _b;
|
5707
5769
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
5708
|
-
const model = (_b = (
|
5770
|
+
const model = (_b = (_a15 = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a15, modelId);
|
5709
5771
|
if (model == null) {
|
5710
|
-
throw new
|
5772
|
+
throw new import_provider21.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
5711
5773
|
}
|
5712
5774
|
return model;
|
5713
5775
|
}
|
5714
5776
|
textEmbeddingModel(id) {
|
5715
|
-
var
|
5777
|
+
var _a15;
|
5716
5778
|
const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
|
5717
5779
|
const provider = this.getProvider(providerId);
|
5718
|
-
const model = (
|
5780
|
+
const model = (_a15 = provider.textEmbeddingModel) == null ? void 0 : _a15.call(provider, modelId);
|
5719
5781
|
if (model == null) {
|
5720
|
-
throw new
|
5782
|
+
throw new import_provider21.NoSuchModelError({
|
5721
5783
|
modelId: id,
|
5722
5784
|
modelType: "textEmbeddingModel"
|
5723
5785
|
});
|
@@ -5778,8 +5840,8 @@ function simulateReadableStream({
|
|
5778
5840
|
chunkDelayInMs = 0,
|
5779
5841
|
_internal
|
5780
5842
|
}) {
|
5781
|
-
var
|
5782
|
-
const delay2 = (
|
5843
|
+
var _a15;
|
5844
|
+
const delay2 = (_a15 = _internal == null ? void 0 : _internal.delay) != null ? _a15 : delay;
|
5783
5845
|
let index = 0;
|
5784
5846
|
return new ReadableStream({
|
5785
5847
|
async pull(controller) {
|
@@ -5798,7 +5860,7 @@ var import_ui_utils10 = require("@ai-sdk/ui-utils");
|
|
5798
5860
|
function AssistantResponse({ threadId, messageId }, process2) {
|
5799
5861
|
const stream = new ReadableStream({
|
5800
5862
|
async start(controller) {
|
5801
|
-
var
|
5863
|
+
var _a15;
|
5802
5864
|
const textEncoder = new TextEncoder();
|
5803
5865
|
const sendMessage = (message) => {
|
5804
5866
|
controller.enqueue(
|
@@ -5820,7 +5882,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
5820
5882
|
);
|
5821
5883
|
};
|
5822
5884
|
const forwardStream = async (stream2) => {
|
5823
|
-
var
|
5885
|
+
var _a16, _b;
|
5824
5886
|
let result = void 0;
|
5825
5887
|
for await (const value of stream2) {
|
5826
5888
|
switch (value.event) {
|
@@ -5837,7 +5899,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
5837
5899
|
break;
|
5838
5900
|
}
|
5839
5901
|
case "thread.message.delta": {
|
5840
|
-
const content = (
|
5902
|
+
const content = (_a16 = value.data.delta.content) == null ? void 0 : _a16[0];
|
5841
5903
|
if ((content == null ? void 0 : content.type) === "text" && ((_b = content.text) == null ? void 0 : _b.value) != null) {
|
5842
5904
|
controller.enqueue(
|
5843
5905
|
textEncoder.encode(
|
@@ -5871,7 +5933,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
5871
5933
|
forwardStream
|
5872
5934
|
});
|
5873
5935
|
} catch (error) {
|
5874
|
-
sendError((
|
5936
|
+
sendError((_a15 = error.message) != null ? _a15 : `${error}`);
|
5875
5937
|
} finally {
|
5876
5938
|
controller.close();
|
5877
5939
|
}
|
@@ -5932,7 +5994,7 @@ function toDataStreamInternal(stream, callbacks) {
|
|
5932
5994
|
return stream.pipeThrough(
|
5933
5995
|
new TransformStream({
|
5934
5996
|
transform: async (value, controller) => {
|
5935
|
-
var
|
5997
|
+
var _a15;
|
5936
5998
|
if (typeof value === "string") {
|
5937
5999
|
controller.enqueue(value);
|
5938
6000
|
return;
|
@@ -5940,7 +6002,7 @@ function toDataStreamInternal(stream, callbacks) {
|
|
5940
6002
|
if ("event" in value) {
|
5941
6003
|
if (value.event === "on_chat_model_stream") {
|
5942
6004
|
forwardAIMessageChunk(
|
5943
|
-
(
|
6005
|
+
(_a15 = value.data) == null ? void 0 : _a15.chunk,
|
5944
6006
|
controller
|
5945
6007
|
);
|
5946
6008
|
}
|
@@ -5963,7 +6025,7 @@ function toDataStream(stream, callbacks) {
|
|
5963
6025
|
);
|
5964
6026
|
}
|
5965
6027
|
function toDataStreamResponse(stream, options) {
|
5966
|
-
var
|
6028
|
+
var _a15;
|
5967
6029
|
const dataStream = toDataStreamInternal(
|
5968
6030
|
stream,
|
5969
6031
|
options == null ? void 0 : options.callbacks
|
@@ -5972,7 +6034,7 @@ function toDataStreamResponse(stream, options) {
|
|
5972
6034
|
const init = options == null ? void 0 : options.init;
|
5973
6035
|
const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
|
5974
6036
|
return new Response(responseStream, {
|
5975
|
-
status: (
|
6037
|
+
status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
|
5976
6038
|
statusText: init == null ? void 0 : init.statusText,
|
5977
6039
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
5978
6040
|
contentType: "text/plain; charset=utf-8",
|
@@ -6027,14 +6089,14 @@ function toDataStream2(stream, callbacks) {
|
|
6027
6089
|
);
|
6028
6090
|
}
|
6029
6091
|
function toDataStreamResponse2(stream, options = {}) {
|
6030
|
-
var
|
6092
|
+
var _a15;
|
6031
6093
|
const { init, data, callbacks } = options;
|
6032
6094
|
const dataStream = toDataStreamInternal2(stream, callbacks).pipeThrough(
|
6033
6095
|
new TextEncoderStream()
|
6034
6096
|
);
|
6035
6097
|
const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
|
6036
6098
|
return new Response(responseStream, {
|
6037
|
-
status: (
|
6099
|
+
status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
|
6038
6100
|
statusText: init == null ? void 0 : init.statusText,
|
6039
6101
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
6040
6102
|
contentType: "text/plain; charset=utf-8",
|
@@ -6144,6 +6206,7 @@ var StreamData = class {
|
|
6144
6206
|
LoadAPIKeyError,
|
6145
6207
|
MessageConversionError,
|
6146
6208
|
NoContentGeneratedError,
|
6209
|
+
NoImageGeneratedError,
|
6147
6210
|
NoObjectGeneratedError,
|
6148
6211
|
NoOutputSpecifiedError,
|
6149
6212
|
NoSuchModelError,
|