ai 5.0.0-beta.17 → 5.0.0-beta.19
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 +19 -0
- package/dist/bin/ai.js +4635 -0
- package/dist/bin/ai.js.map +1 -0
- package/dist/bin/ai.min.js +78 -0
- package/dist/index.d.mts +27 -4
- package/dist/index.d.ts +27 -4
- package/dist/index.js +333 -262
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +298 -228
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -7
package/dist/index.js
CHANGED
@@ -20,31 +20,31 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
20
20
|
// src/index.ts
|
21
21
|
var src_exports = {};
|
22
22
|
__export(src_exports, {
|
23
|
-
AISDKError: () =>
|
24
|
-
APICallError: () =>
|
23
|
+
AISDKError: () => import_provider18.AISDKError,
|
24
|
+
APICallError: () => import_provider18.APICallError,
|
25
25
|
AbstractChat: () => AbstractChat,
|
26
26
|
DefaultChatTransport: () => DefaultChatTransport,
|
27
27
|
DownloadError: () => DownloadError,
|
28
|
-
EmptyResponseBodyError: () =>
|
28
|
+
EmptyResponseBodyError: () => import_provider18.EmptyResponseBodyError,
|
29
29
|
Experimental_Agent: () => Agent,
|
30
30
|
HttpChatTransport: () => HttpChatTransport,
|
31
31
|
InvalidArgumentError: () => InvalidArgumentError,
|
32
32
|
InvalidDataContentError: () => InvalidDataContentError,
|
33
33
|
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
34
|
-
InvalidPromptError: () =>
|
35
|
-
InvalidResponseDataError: () =>
|
34
|
+
InvalidPromptError: () => import_provider18.InvalidPromptError,
|
35
|
+
InvalidResponseDataError: () => import_provider18.InvalidResponseDataError,
|
36
36
|
InvalidStreamPartError: () => InvalidStreamPartError,
|
37
37
|
InvalidToolInputError: () => InvalidToolInputError,
|
38
|
-
JSONParseError: () =>
|
38
|
+
JSONParseError: () => import_provider18.JSONParseError,
|
39
39
|
JsonToSseTransformStream: () => JsonToSseTransformStream,
|
40
|
-
LoadAPIKeyError: () =>
|
40
|
+
LoadAPIKeyError: () => import_provider18.LoadAPIKeyError,
|
41
41
|
MCPClientError: () => MCPClientError,
|
42
42
|
MessageConversionError: () => MessageConversionError,
|
43
|
-
NoContentGeneratedError: () =>
|
43
|
+
NoContentGeneratedError: () => import_provider18.NoContentGeneratedError,
|
44
44
|
NoImageGeneratedError: () => NoImageGeneratedError,
|
45
45
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
46
46
|
NoOutputSpecifiedError: () => NoOutputSpecifiedError,
|
47
|
-
NoSuchModelError: () =>
|
47
|
+
NoSuchModelError: () => import_provider18.NoSuchModelError,
|
48
48
|
NoSuchProviderError: () => NoSuchProviderError,
|
49
49
|
NoSuchToolError: () => NoSuchToolError,
|
50
50
|
Output: () => output_exports,
|
@@ -52,9 +52,10 @@ __export(src_exports, {
|
|
52
52
|
SerialJobExecutor: () => SerialJobExecutor,
|
53
53
|
TextStreamChatTransport: () => TextStreamChatTransport,
|
54
54
|
ToolCallRepairError: () => ToolCallRepairError,
|
55
|
-
TypeValidationError: () =>
|
55
|
+
TypeValidationError: () => import_provider18.TypeValidationError,
|
56
56
|
UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
|
57
|
-
UnsupportedFunctionalityError: () =>
|
57
|
+
UnsupportedFunctionalityError: () => import_provider18.UnsupportedFunctionalityError,
|
58
|
+
UnsupportedModelVersionError: () => UnsupportedModelVersionError,
|
58
59
|
asSchema: () => import_provider_utils29.asSchema,
|
59
60
|
assistantModelMessageSchema: () => assistantModelMessageSchema,
|
60
61
|
callCompletionApi: () => callCompletionApi,
|
@@ -964,8 +965,216 @@ function prepareToolsAndToolChoice({
|
|
964
965
|
|
965
966
|
// src/prompt/resolve-language-model.ts
|
966
967
|
var import_gateway = require("@ai-sdk/gateway");
|
968
|
+
|
969
|
+
// src/error/index.ts
|
970
|
+
var import_provider18 = require("@ai-sdk/provider");
|
971
|
+
|
972
|
+
// src/error/invalid-stream-part-error.ts
|
973
|
+
var import_provider9 = require("@ai-sdk/provider");
|
974
|
+
var name7 = "AI_InvalidStreamPartError";
|
975
|
+
var marker7 = `vercel.ai.error.${name7}`;
|
976
|
+
var symbol7 = Symbol.for(marker7);
|
977
|
+
var _a7;
|
978
|
+
var InvalidStreamPartError = class extends import_provider9.AISDKError {
|
979
|
+
constructor({
|
980
|
+
chunk,
|
981
|
+
message
|
982
|
+
}) {
|
983
|
+
super({ name: name7, message });
|
984
|
+
this[_a7] = true;
|
985
|
+
this.chunk = chunk;
|
986
|
+
}
|
987
|
+
static isInstance(error) {
|
988
|
+
return import_provider9.AISDKError.hasMarker(error, marker7);
|
989
|
+
}
|
990
|
+
};
|
991
|
+
_a7 = symbol7;
|
992
|
+
|
993
|
+
// src/error/invalid-tool-input-error.ts
|
994
|
+
var import_provider10 = require("@ai-sdk/provider");
|
995
|
+
var name8 = "AI_InvalidToolInputError";
|
996
|
+
var marker8 = `vercel.ai.error.${name8}`;
|
997
|
+
var symbol8 = Symbol.for(marker8);
|
998
|
+
var _a8;
|
999
|
+
var InvalidToolInputError = class extends import_provider10.AISDKError {
|
1000
|
+
constructor({
|
1001
|
+
toolInput,
|
1002
|
+
toolName,
|
1003
|
+
cause,
|
1004
|
+
message = `Invalid input for tool ${toolName}: ${(0, import_provider10.getErrorMessage)(cause)}`
|
1005
|
+
}) {
|
1006
|
+
super({ name: name8, message, cause });
|
1007
|
+
this[_a8] = true;
|
1008
|
+
this.toolInput = toolInput;
|
1009
|
+
this.toolName = toolName;
|
1010
|
+
}
|
1011
|
+
static isInstance(error) {
|
1012
|
+
return import_provider10.AISDKError.hasMarker(error, marker8);
|
1013
|
+
}
|
1014
|
+
};
|
1015
|
+
_a8 = symbol8;
|
1016
|
+
|
1017
|
+
// src/error/mcp-client-error.ts
|
1018
|
+
var import_provider11 = require("@ai-sdk/provider");
|
1019
|
+
var name9 = "AI_MCPClientError";
|
1020
|
+
var marker9 = `vercel.ai.error.${name9}`;
|
1021
|
+
var symbol9 = Symbol.for(marker9);
|
1022
|
+
var _a9;
|
1023
|
+
var MCPClientError = class extends import_provider11.AISDKError {
|
1024
|
+
constructor({
|
1025
|
+
name: name16 = "MCPClientError",
|
1026
|
+
message,
|
1027
|
+
cause
|
1028
|
+
}) {
|
1029
|
+
super({ name: name16, message, cause });
|
1030
|
+
this[_a9] = true;
|
1031
|
+
}
|
1032
|
+
static isInstance(error) {
|
1033
|
+
return import_provider11.AISDKError.hasMarker(error, marker9);
|
1034
|
+
}
|
1035
|
+
};
|
1036
|
+
_a9 = symbol9;
|
1037
|
+
|
1038
|
+
// src/error/no-image-generated-error.ts
|
1039
|
+
var import_provider12 = require("@ai-sdk/provider");
|
1040
|
+
var name10 = "AI_NoImageGeneratedError";
|
1041
|
+
var marker10 = `vercel.ai.error.${name10}`;
|
1042
|
+
var symbol10 = Symbol.for(marker10);
|
1043
|
+
var _a10;
|
1044
|
+
var NoImageGeneratedError = class extends import_provider12.AISDKError {
|
1045
|
+
constructor({
|
1046
|
+
message = "No image generated.",
|
1047
|
+
cause,
|
1048
|
+
responses
|
1049
|
+
}) {
|
1050
|
+
super({ name: name10, message, cause });
|
1051
|
+
this[_a10] = true;
|
1052
|
+
this.responses = responses;
|
1053
|
+
}
|
1054
|
+
static isInstance(error) {
|
1055
|
+
return import_provider12.AISDKError.hasMarker(error, marker10);
|
1056
|
+
}
|
1057
|
+
};
|
1058
|
+
_a10 = symbol10;
|
1059
|
+
|
1060
|
+
// src/error/no-object-generated-error.ts
|
1061
|
+
var import_provider13 = require("@ai-sdk/provider");
|
1062
|
+
var name11 = "AI_NoObjectGeneratedError";
|
1063
|
+
var marker11 = `vercel.ai.error.${name11}`;
|
1064
|
+
var symbol11 = Symbol.for(marker11);
|
1065
|
+
var _a11;
|
1066
|
+
var NoObjectGeneratedError = class extends import_provider13.AISDKError {
|
1067
|
+
constructor({
|
1068
|
+
message = "No object generated.",
|
1069
|
+
cause,
|
1070
|
+
text: text2,
|
1071
|
+
response,
|
1072
|
+
usage,
|
1073
|
+
finishReason
|
1074
|
+
}) {
|
1075
|
+
super({ name: name11, message, cause });
|
1076
|
+
this[_a11] = true;
|
1077
|
+
this.text = text2;
|
1078
|
+
this.response = response;
|
1079
|
+
this.usage = usage;
|
1080
|
+
this.finishReason = finishReason;
|
1081
|
+
}
|
1082
|
+
static isInstance(error) {
|
1083
|
+
return import_provider13.AISDKError.hasMarker(error, marker11);
|
1084
|
+
}
|
1085
|
+
};
|
1086
|
+
_a11 = symbol11;
|
1087
|
+
|
1088
|
+
// src/error/no-such-tool-error.ts
|
1089
|
+
var import_provider14 = require("@ai-sdk/provider");
|
1090
|
+
var name12 = "AI_NoSuchToolError";
|
1091
|
+
var marker12 = `vercel.ai.error.${name12}`;
|
1092
|
+
var symbol12 = Symbol.for(marker12);
|
1093
|
+
var _a12;
|
1094
|
+
var NoSuchToolError = class extends import_provider14.AISDKError {
|
1095
|
+
constructor({
|
1096
|
+
toolName,
|
1097
|
+
availableTools = void 0,
|
1098
|
+
message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
|
1099
|
+
}) {
|
1100
|
+
super({ name: name12, message });
|
1101
|
+
this[_a12] = true;
|
1102
|
+
this.toolName = toolName;
|
1103
|
+
this.availableTools = availableTools;
|
1104
|
+
}
|
1105
|
+
static isInstance(error) {
|
1106
|
+
return import_provider14.AISDKError.hasMarker(error, marker12);
|
1107
|
+
}
|
1108
|
+
};
|
1109
|
+
_a12 = symbol12;
|
1110
|
+
|
1111
|
+
// src/error/tool-call-repair-error.ts
|
1112
|
+
var import_provider15 = require("@ai-sdk/provider");
|
1113
|
+
var name13 = "AI_ToolCallRepairError";
|
1114
|
+
var marker13 = `vercel.ai.error.${name13}`;
|
1115
|
+
var symbol13 = Symbol.for(marker13);
|
1116
|
+
var _a13;
|
1117
|
+
var ToolCallRepairError = class extends import_provider15.AISDKError {
|
1118
|
+
constructor({
|
1119
|
+
cause,
|
1120
|
+
originalError,
|
1121
|
+
message = `Error repairing tool call: ${(0, import_provider15.getErrorMessage)(cause)}`
|
1122
|
+
}) {
|
1123
|
+
super({ name: name13, message, cause });
|
1124
|
+
this[_a13] = true;
|
1125
|
+
this.originalError = originalError;
|
1126
|
+
}
|
1127
|
+
static isInstance(error) {
|
1128
|
+
return import_provider15.AISDKError.hasMarker(error, marker13);
|
1129
|
+
}
|
1130
|
+
};
|
1131
|
+
_a13 = symbol13;
|
1132
|
+
|
1133
|
+
// src/error/unsupported-model-version-error.ts
|
1134
|
+
var import_provider16 = require("@ai-sdk/provider");
|
1135
|
+
var UnsupportedModelVersionError = class extends import_provider16.AISDKError {
|
1136
|
+
constructor(options) {
|
1137
|
+
super({
|
1138
|
+
name: "AI_UnsupportedModelVersionError",
|
1139
|
+
message: `Unsupported model version ${options.version} for provider "${options.provider}" and model "${options.modelId}". AI SDK 5 only supports models that implement specification version "v2".`
|
1140
|
+
});
|
1141
|
+
this.version = options.version;
|
1142
|
+
this.provider = options.provider;
|
1143
|
+
this.modelId = options.modelId;
|
1144
|
+
}
|
1145
|
+
};
|
1146
|
+
|
1147
|
+
// src/prompt/message-conversion-error.ts
|
1148
|
+
var import_provider17 = require("@ai-sdk/provider");
|
1149
|
+
var name14 = "AI_MessageConversionError";
|
1150
|
+
var marker14 = `vercel.ai.error.${name14}`;
|
1151
|
+
var symbol14 = Symbol.for(marker14);
|
1152
|
+
var _a14;
|
1153
|
+
var MessageConversionError = class extends import_provider17.AISDKError {
|
1154
|
+
constructor({
|
1155
|
+
originalMessage,
|
1156
|
+
message
|
1157
|
+
}) {
|
1158
|
+
super({ name: name14, message });
|
1159
|
+
this[_a14] = true;
|
1160
|
+
this.originalMessage = originalMessage;
|
1161
|
+
}
|
1162
|
+
static isInstance(error) {
|
1163
|
+
return import_provider17.AISDKError.hasMarker(error, marker14);
|
1164
|
+
}
|
1165
|
+
};
|
1166
|
+
_a14 = symbol14;
|
1167
|
+
|
1168
|
+
// src/prompt/resolve-language-model.ts
|
967
1169
|
function resolveLanguageModel(model) {
|
968
1170
|
if (typeof model !== "string") {
|
1171
|
+
if (model.specificationVersion !== "v2") {
|
1172
|
+
throw new UnsupportedModelVersionError({
|
1173
|
+
version: model.specificationVersion,
|
1174
|
+
provider: model.provider,
|
1175
|
+
modelId: model.modelId
|
1176
|
+
});
|
1177
|
+
}
|
969
1178
|
return model;
|
970
1179
|
}
|
971
1180
|
const globalProvider = globalThis.AI_SDK_DEFAULT_PROVIDER;
|
@@ -973,7 +1182,7 @@ function resolveLanguageModel(model) {
|
|
973
1182
|
}
|
974
1183
|
|
975
1184
|
// src/prompt/standardize-prompt.ts
|
976
|
-
var
|
1185
|
+
var import_provider19 = require("@ai-sdk/provider");
|
977
1186
|
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
978
1187
|
var import_v46 = require("zod/v4");
|
979
1188
|
|
@@ -1129,19 +1338,19 @@ var coreMessageSchema = modelMessageSchema;
|
|
1129
1338
|
// src/prompt/standardize-prompt.ts
|
1130
1339
|
async function standardizePrompt(prompt) {
|
1131
1340
|
if (prompt.prompt == null && prompt.messages == null) {
|
1132
|
-
throw new
|
1341
|
+
throw new import_provider19.InvalidPromptError({
|
1133
1342
|
prompt,
|
1134
1343
|
message: "prompt or messages must be defined"
|
1135
1344
|
});
|
1136
1345
|
}
|
1137
1346
|
if (prompt.prompt != null && prompt.messages != null) {
|
1138
|
-
throw new
|
1347
|
+
throw new import_provider19.InvalidPromptError({
|
1139
1348
|
prompt,
|
1140
1349
|
message: "prompt and messages cannot be defined at the same time"
|
1141
1350
|
});
|
1142
1351
|
}
|
1143
1352
|
if (prompt.system != null && typeof prompt.system !== "string") {
|
1144
|
-
throw new
|
1353
|
+
throw new import_provider19.InvalidPromptError({
|
1145
1354
|
prompt,
|
1146
1355
|
message: "system must be a string"
|
1147
1356
|
});
|
@@ -1154,13 +1363,13 @@ async function standardizePrompt(prompt) {
|
|
1154
1363
|
} else if (prompt.messages != null) {
|
1155
1364
|
messages = prompt.messages;
|
1156
1365
|
} else {
|
1157
|
-
throw new
|
1366
|
+
throw new import_provider19.InvalidPromptError({
|
1158
1367
|
prompt,
|
1159
1368
|
message: "prompt or messages must be defined"
|
1160
1369
|
});
|
1161
1370
|
}
|
1162
1371
|
if (messages.length === 0) {
|
1163
|
-
throw new
|
1372
|
+
throw new import_provider19.InvalidPromptError({
|
1164
1373
|
prompt,
|
1165
1374
|
message: "messages must not be empty"
|
1166
1375
|
});
|
@@ -1170,7 +1379,7 @@ async function standardizePrompt(prompt) {
|
|
1170
1379
|
schema: import_v46.z.array(modelMessageSchema)
|
1171
1380
|
});
|
1172
1381
|
if (!validationResult.success) {
|
1173
|
-
throw new
|
1382
|
+
throw new import_provider19.InvalidPromptError({
|
1174
1383
|
prompt,
|
1175
1384
|
message: "The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",
|
1176
1385
|
cause: validationResult.error
|
@@ -1184,10 +1393,10 @@ async function standardizePrompt(prompt) {
|
|
1184
1393
|
|
1185
1394
|
// src/prompt/wrap-gateway-error.ts
|
1186
1395
|
var import_gateway2 = require("@ai-sdk/gateway");
|
1187
|
-
var
|
1396
|
+
var import_provider20 = require("@ai-sdk/provider");
|
1188
1397
|
function wrapGatewayError(error) {
|
1189
1398
|
if (import_gateway2.GatewayAuthenticationError.isInstance(error) || import_gateway2.GatewayModelNotFoundError.isInstance(error)) {
|
1190
|
-
return new
|
1399
|
+
return new import_provider20.AISDKError({
|
1191
1400
|
name: "GatewayError",
|
1192
1401
|
message: "Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @ai-sdk/openai, or register a different global default provider.",
|
1193
1402
|
cause: error
|
@@ -1371,7 +1580,7 @@ function selectTelemetryAttributes({
|
|
1371
1580
|
return {};
|
1372
1581
|
}
|
1373
1582
|
return Object.entries(attributes).reduce((attributes2, [key, value]) => {
|
1374
|
-
if (value
|
1583
|
+
if (value == null) {
|
1375
1584
|
return attributes2;
|
1376
1585
|
}
|
1377
1586
|
if (typeof value === "object" && "input" in value && typeof value.input === "function") {
|
@@ -1379,14 +1588,14 @@ function selectTelemetryAttributes({
|
|
1379
1588
|
return attributes2;
|
1380
1589
|
}
|
1381
1590
|
const result = value.input();
|
1382
|
-
return result
|
1591
|
+
return result == null ? attributes2 : { ...attributes2, [key]: result };
|
1383
1592
|
}
|
1384
1593
|
if (typeof value === "object" && "output" in value && typeof value.output === "function") {
|
1385
1594
|
if ((telemetry == null ? void 0 : telemetry.recordOutputs) === false) {
|
1386
1595
|
return attributes2;
|
1387
1596
|
}
|
1388
1597
|
const result = value.output();
|
1389
|
-
return result
|
1598
|
+
return result == null ? attributes2 : { ...attributes2, [key]: result };
|
1390
1599
|
}
|
1391
1600
|
return { ...attributes2, [key]: value };
|
1392
1601
|
}, {});
|
@@ -1474,77 +1683,6 @@ var DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {
|
|
1474
1683
|
|
1475
1684
|
// src/generate-text/parse-tool-call.ts
|
1476
1685
|
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
1477
|
-
|
1478
|
-
// src/error/invalid-tool-input-error.ts
|
1479
|
-
var import_provider11 = require("@ai-sdk/provider");
|
1480
|
-
var name7 = "AI_InvalidToolInputError";
|
1481
|
-
var marker7 = `vercel.ai.error.${name7}`;
|
1482
|
-
var symbol7 = Symbol.for(marker7);
|
1483
|
-
var _a7;
|
1484
|
-
var InvalidToolInputError = class extends import_provider11.AISDKError {
|
1485
|
-
constructor({
|
1486
|
-
toolInput,
|
1487
|
-
toolName,
|
1488
|
-
cause,
|
1489
|
-
message = `Invalid input for tool ${toolName}: ${(0, import_provider11.getErrorMessage)(cause)}`
|
1490
|
-
}) {
|
1491
|
-
super({ name: name7, message, cause });
|
1492
|
-
this[_a7] = true;
|
1493
|
-
this.toolInput = toolInput;
|
1494
|
-
this.toolName = toolName;
|
1495
|
-
}
|
1496
|
-
static isInstance(error) {
|
1497
|
-
return import_provider11.AISDKError.hasMarker(error, marker7);
|
1498
|
-
}
|
1499
|
-
};
|
1500
|
-
_a7 = symbol7;
|
1501
|
-
|
1502
|
-
// src/error/no-such-tool-error.ts
|
1503
|
-
var import_provider12 = require("@ai-sdk/provider");
|
1504
|
-
var name8 = "AI_NoSuchToolError";
|
1505
|
-
var marker8 = `vercel.ai.error.${name8}`;
|
1506
|
-
var symbol8 = Symbol.for(marker8);
|
1507
|
-
var _a8;
|
1508
|
-
var NoSuchToolError = class extends import_provider12.AISDKError {
|
1509
|
-
constructor({
|
1510
|
-
toolName,
|
1511
|
-
availableTools = void 0,
|
1512
|
-
message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
|
1513
|
-
}) {
|
1514
|
-
super({ name: name8, message });
|
1515
|
-
this[_a8] = true;
|
1516
|
-
this.toolName = toolName;
|
1517
|
-
this.availableTools = availableTools;
|
1518
|
-
}
|
1519
|
-
static isInstance(error) {
|
1520
|
-
return import_provider12.AISDKError.hasMarker(error, marker8);
|
1521
|
-
}
|
1522
|
-
};
|
1523
|
-
_a8 = symbol8;
|
1524
|
-
|
1525
|
-
// src/error/tool-call-repair-error.ts
|
1526
|
-
var import_provider13 = require("@ai-sdk/provider");
|
1527
|
-
var name9 = "AI_ToolCallRepairError";
|
1528
|
-
var marker9 = `vercel.ai.error.${name9}`;
|
1529
|
-
var symbol9 = Symbol.for(marker9);
|
1530
|
-
var _a9;
|
1531
|
-
var ToolCallRepairError = class extends import_provider13.AISDKError {
|
1532
|
-
constructor({
|
1533
|
-
cause,
|
1534
|
-
originalError,
|
1535
|
-
message = `Error repairing tool call: ${(0, import_provider13.getErrorMessage)(cause)}`
|
1536
|
-
}) {
|
1537
|
-
super({ name: name9, message, cause });
|
1538
|
-
this[_a9] = true;
|
1539
|
-
this.originalError = originalError;
|
1540
|
-
}
|
1541
|
-
static isInstance(error) {
|
1542
|
-
return import_provider13.AISDKError.hasMarker(error, marker9);
|
1543
|
-
}
|
1544
|
-
};
|
1545
|
-
_a9 = symbol9;
|
1546
|
-
|
1547
|
-
// src/generate-text/parse-tool-call.ts
|
1548
1686
|
async function parseToolCall({
|
1549
1687
|
toolCall,
|
1550
1688
|
tools,
|
@@ -1612,7 +1750,8 @@ async function doParseToolCall({
|
|
1612
1750
|
toolCallId: toolCall.toolCallId,
|
1613
1751
|
toolName,
|
1614
1752
|
input: parseResult.value,
|
1615
|
-
providerExecuted: toolCall.providerExecuted
|
1753
|
+
providerExecuted: toolCall.providerExecuted,
|
1754
|
+
providerMetadata: toolCall.providerMetadata
|
1616
1755
|
};
|
1617
1756
|
}
|
1618
1757
|
|
@@ -1678,14 +1817,14 @@ async function isStopConditionMet({
|
|
1678
1817
|
}
|
1679
1818
|
|
1680
1819
|
// src/prompt/create-tool-model-output.ts
|
1681
|
-
var
|
1820
|
+
var import_provider21 = require("@ai-sdk/provider");
|
1682
1821
|
function createToolModelOutput({
|
1683
1822
|
output,
|
1684
1823
|
tool: tool3,
|
1685
1824
|
errorMode
|
1686
1825
|
}) {
|
1687
1826
|
if (errorMode === "text") {
|
1688
|
-
return { type: "error-text", value: (0,
|
1827
|
+
return { type: "error-text", value: (0, import_provider21.getErrorMessage)(output) };
|
1689
1828
|
} else if (errorMode === "json") {
|
1690
1829
|
return { type: "error-json", value: output };
|
1691
1830
|
}
|
@@ -1717,7 +1856,8 @@ function toResponseMessages({
|
|
1717
1856
|
return {
|
1718
1857
|
type: "file",
|
1719
1858
|
data: part.file.base64,
|
1720
|
-
mediaType: part.file.mediaType
|
1859
|
+
mediaType: part.file.mediaType,
|
1860
|
+
providerOptions: part.providerMetadata
|
1721
1861
|
};
|
1722
1862
|
case "tool-call":
|
1723
1863
|
return {
|
@@ -1725,7 +1865,8 @@ function toResponseMessages({
|
|
1725
1865
|
toolCallId: part.toolCallId,
|
1726
1866
|
toolName: part.toolName,
|
1727
1867
|
input: part.input,
|
1728
|
-
providerExecuted: part.providerExecuted
|
1868
|
+
providerExecuted: part.providerExecuted,
|
1869
|
+
providerOptions: part.providerMetadata
|
1729
1870
|
};
|
1730
1871
|
case "tool-result":
|
1731
1872
|
return {
|
@@ -1737,7 +1878,8 @@ function toResponseMessages({
|
|
1737
1878
|
output: part.output,
|
1738
1879
|
errorMode: "none"
|
1739
1880
|
}),
|
1740
|
-
providerExecuted: true
|
1881
|
+
providerExecuted: true,
|
1882
|
+
providerOptions: part.providerMetadata
|
1741
1883
|
};
|
1742
1884
|
case "tool-error":
|
1743
1885
|
return {
|
@@ -1748,7 +1890,8 @@ function toResponseMessages({
|
|
1748
1890
|
tool: tools == null ? void 0 : tools[part.toolName],
|
1749
1891
|
output: part.error,
|
1750
1892
|
errorMode: "json"
|
1751
|
-
})
|
1893
|
+
}),
|
1894
|
+
providerOptions: part.providerMetadata
|
1752
1895
|
};
|
1753
1896
|
}
|
1754
1897
|
});
|
@@ -2299,7 +2442,7 @@ function asContent({
|
|
2299
2442
|
}
|
2300
2443
|
|
2301
2444
|
// src/generate-text/stream-text.ts
|
2302
|
-
var
|
2445
|
+
var import_provider22 = require("@ai-sdk/provider");
|
2303
2446
|
var import_provider_utils13 = require("@ai-sdk/provider-utils");
|
2304
2447
|
|
2305
2448
|
// src/util/prepare-headers.ts
|
@@ -4520,11 +4663,19 @@ var DefaultStreamTextResult = class {
|
|
4520
4663
|
tools
|
4521
4664
|
})
|
4522
4665
|
);
|
4523
|
-
|
4524
|
-
|
4525
|
-
|
4526
|
-
|
4527
|
-
|
4666
|
+
try {
|
4667
|
+
await streamStep({
|
4668
|
+
currentStep: currentStep + 1,
|
4669
|
+
responseMessages,
|
4670
|
+
usage: combinedUsage
|
4671
|
+
});
|
4672
|
+
} catch (error) {
|
4673
|
+
controller.enqueue({
|
4674
|
+
type: "error",
|
4675
|
+
error
|
4676
|
+
});
|
4677
|
+
self.closeStream();
|
4678
|
+
}
|
4528
4679
|
} else {
|
4529
4680
|
controller.enqueue({
|
4530
4681
|
type: "finish",
|
@@ -4684,7 +4835,7 @@ var DefaultStreamTextResult = class {
|
|
4684
4835
|
sendSources = false,
|
4685
4836
|
sendStart = true,
|
4686
4837
|
sendFinish = true,
|
4687
|
-
onError =
|
4838
|
+
onError = import_provider22.getErrorMessage
|
4688
4839
|
} = {}) {
|
4689
4840
|
const responseMessageId = getResponseUIMessageId({
|
4690
4841
|
originalMessages,
|
@@ -4969,6 +5120,13 @@ async function embed({
|
|
4969
5120
|
headers,
|
4970
5121
|
experimental_telemetry: telemetry
|
4971
5122
|
}) {
|
5123
|
+
if (model.specificationVersion !== "v2") {
|
5124
|
+
throw new UnsupportedModelVersionError({
|
5125
|
+
version: model.specificationVersion,
|
5126
|
+
provider: model.provider,
|
5127
|
+
modelId: model.modelId
|
5128
|
+
});
|
5129
|
+
}
|
4972
5130
|
const { maxRetries, retry } = prepareRetries({ maxRetries: maxRetriesArg });
|
4973
5131
|
const baseTelemetryAttributes = getBaseTelemetryAttributes({
|
4974
5132
|
model,
|
@@ -5089,6 +5247,13 @@ async function embedMany({
|
|
5089
5247
|
providerOptions,
|
5090
5248
|
experimental_telemetry: telemetry
|
5091
5249
|
}) {
|
5250
|
+
if (model.specificationVersion !== "v2") {
|
5251
|
+
throw new UnsupportedModelVersionError({
|
5252
|
+
version: model.specificationVersion,
|
5253
|
+
provider: model.provider,
|
5254
|
+
modelId: model.modelId
|
5255
|
+
});
|
5256
|
+
}
|
5092
5257
|
const { maxRetries, retry } = prepareRetries({ maxRetries: maxRetriesArg });
|
5093
5258
|
const baseTelemetryAttributes = getBaseTelemetryAttributes({
|
5094
5259
|
model,
|
@@ -5279,122 +5444,6 @@ var DefaultEmbedManyResult = class {
|
|
5279
5444
|
}
|
5280
5445
|
};
|
5281
5446
|
|
5282
|
-
// src/error/index.ts
|
5283
|
-
var import_provider21 = require("@ai-sdk/provider");
|
5284
|
-
|
5285
|
-
// src/error/invalid-stream-part-error.ts
|
5286
|
-
var import_provider16 = require("@ai-sdk/provider");
|
5287
|
-
var name10 = "AI_InvalidStreamPartError";
|
5288
|
-
var marker10 = `vercel.ai.error.${name10}`;
|
5289
|
-
var symbol10 = Symbol.for(marker10);
|
5290
|
-
var _a10;
|
5291
|
-
var InvalidStreamPartError = class extends import_provider16.AISDKError {
|
5292
|
-
constructor({
|
5293
|
-
chunk,
|
5294
|
-
message
|
5295
|
-
}) {
|
5296
|
-
super({ name: name10, message });
|
5297
|
-
this[_a10] = true;
|
5298
|
-
this.chunk = chunk;
|
5299
|
-
}
|
5300
|
-
static isInstance(error) {
|
5301
|
-
return import_provider16.AISDKError.hasMarker(error, marker10);
|
5302
|
-
}
|
5303
|
-
};
|
5304
|
-
_a10 = symbol10;
|
5305
|
-
|
5306
|
-
// src/error/mcp-client-error.ts
|
5307
|
-
var import_provider17 = require("@ai-sdk/provider");
|
5308
|
-
var name11 = "AI_MCPClientError";
|
5309
|
-
var marker11 = `vercel.ai.error.${name11}`;
|
5310
|
-
var symbol11 = Symbol.for(marker11);
|
5311
|
-
var _a11;
|
5312
|
-
var MCPClientError = class extends import_provider17.AISDKError {
|
5313
|
-
constructor({
|
5314
|
-
name: name16 = "MCPClientError",
|
5315
|
-
message,
|
5316
|
-
cause
|
5317
|
-
}) {
|
5318
|
-
super({ name: name16, message, cause });
|
5319
|
-
this[_a11] = true;
|
5320
|
-
}
|
5321
|
-
static isInstance(error) {
|
5322
|
-
return import_provider17.AISDKError.hasMarker(error, marker11);
|
5323
|
-
}
|
5324
|
-
};
|
5325
|
-
_a11 = symbol11;
|
5326
|
-
|
5327
|
-
// src/error/no-image-generated-error.ts
|
5328
|
-
var import_provider18 = require("@ai-sdk/provider");
|
5329
|
-
var name12 = "AI_NoImageGeneratedError";
|
5330
|
-
var marker12 = `vercel.ai.error.${name12}`;
|
5331
|
-
var symbol12 = Symbol.for(marker12);
|
5332
|
-
var _a12;
|
5333
|
-
var NoImageGeneratedError = class extends import_provider18.AISDKError {
|
5334
|
-
constructor({
|
5335
|
-
message = "No image generated.",
|
5336
|
-
cause,
|
5337
|
-
responses
|
5338
|
-
}) {
|
5339
|
-
super({ name: name12, message, cause });
|
5340
|
-
this[_a12] = true;
|
5341
|
-
this.responses = responses;
|
5342
|
-
}
|
5343
|
-
static isInstance(error) {
|
5344
|
-
return import_provider18.AISDKError.hasMarker(error, marker12);
|
5345
|
-
}
|
5346
|
-
};
|
5347
|
-
_a12 = symbol12;
|
5348
|
-
|
5349
|
-
// src/error/no-object-generated-error.ts
|
5350
|
-
var import_provider19 = require("@ai-sdk/provider");
|
5351
|
-
var name13 = "AI_NoObjectGeneratedError";
|
5352
|
-
var marker13 = `vercel.ai.error.${name13}`;
|
5353
|
-
var symbol13 = Symbol.for(marker13);
|
5354
|
-
var _a13;
|
5355
|
-
var NoObjectGeneratedError = class extends import_provider19.AISDKError {
|
5356
|
-
constructor({
|
5357
|
-
message = "No object generated.",
|
5358
|
-
cause,
|
5359
|
-
text: text2,
|
5360
|
-
response,
|
5361
|
-
usage,
|
5362
|
-
finishReason
|
5363
|
-
}) {
|
5364
|
-
super({ name: name13, message, cause });
|
5365
|
-
this[_a13] = true;
|
5366
|
-
this.text = text2;
|
5367
|
-
this.response = response;
|
5368
|
-
this.usage = usage;
|
5369
|
-
this.finishReason = finishReason;
|
5370
|
-
}
|
5371
|
-
static isInstance(error) {
|
5372
|
-
return import_provider19.AISDKError.hasMarker(error, marker13);
|
5373
|
-
}
|
5374
|
-
};
|
5375
|
-
_a13 = symbol13;
|
5376
|
-
|
5377
|
-
// src/prompt/message-conversion-error.ts
|
5378
|
-
var import_provider20 = require("@ai-sdk/provider");
|
5379
|
-
var name14 = "AI_MessageConversionError";
|
5380
|
-
var marker14 = `vercel.ai.error.${name14}`;
|
5381
|
-
var symbol14 = Symbol.for(marker14);
|
5382
|
-
var _a14;
|
5383
|
-
var MessageConversionError = class extends import_provider20.AISDKError {
|
5384
|
-
constructor({
|
5385
|
-
originalMessage,
|
5386
|
-
message
|
5387
|
-
}) {
|
5388
|
-
super({ name: name14, message });
|
5389
|
-
this[_a14] = true;
|
5390
|
-
this.originalMessage = originalMessage;
|
5391
|
-
}
|
5392
|
-
static isInstance(error) {
|
5393
|
-
return import_provider20.AISDKError.hasMarker(error, marker14);
|
5394
|
-
}
|
5395
|
-
};
|
5396
|
-
_a14 = symbol14;
|
5397
|
-
|
5398
5447
|
// src/generate-image/generate-image.ts
|
5399
5448
|
async function generateImage({
|
5400
5449
|
model,
|
@@ -5410,6 +5459,13 @@ async function generateImage({
|
|
5410
5459
|
headers
|
5411
5460
|
}) {
|
5412
5461
|
var _a16, _b;
|
5462
|
+
if (model.specificationVersion !== "v2") {
|
5463
|
+
throw new UnsupportedModelVersionError({
|
5464
|
+
version: model.specificationVersion,
|
5465
|
+
provider: model.provider,
|
5466
|
+
modelId: model.modelId
|
5467
|
+
});
|
5468
|
+
}
|
5413
5469
|
const { retry } = prepareRetries({ maxRetries: maxRetriesArg });
|
5414
5470
|
const maxImagesPerCallWithDefault = (_a16 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a16 : 1;
|
5415
5471
|
const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
|
@@ -5498,11 +5554,11 @@ async function invokeModelMaxImagesPerCall(model) {
|
|
5498
5554
|
}
|
5499
5555
|
|
5500
5556
|
// src/generate-object/generate-object.ts
|
5501
|
-
var
|
5557
|
+
var import_provider24 = require("@ai-sdk/provider");
|
5502
5558
|
var import_provider_utils15 = require("@ai-sdk/provider-utils");
|
5503
5559
|
|
5504
5560
|
// src/generate-object/output-strategy.ts
|
5505
|
-
var
|
5561
|
+
var import_provider23 = require("@ai-sdk/provider");
|
5506
5562
|
var import_provider_utils14 = require("@ai-sdk/provider-utils");
|
5507
5563
|
var noSchemaOutputStrategy = {
|
5508
5564
|
type: "no-schema",
|
@@ -5523,7 +5579,7 @@ var noSchemaOutputStrategy = {
|
|
5523
5579
|
} : { success: true, value };
|
5524
5580
|
},
|
5525
5581
|
createElementStream() {
|
5526
|
-
throw new
|
5582
|
+
throw new import_provider23.UnsupportedFunctionalityError({
|
5527
5583
|
functionality: "element streams in no-schema mode"
|
5528
5584
|
});
|
5529
5585
|
}
|
@@ -5545,7 +5601,7 @@ var objectOutputStrategy = (schema) => ({
|
|
5545
5601
|
return (0, import_provider_utils14.safeValidateTypes)({ value, schema });
|
5546
5602
|
},
|
5547
5603
|
createElementStream() {
|
5548
|
-
throw new
|
5604
|
+
throw new import_provider23.UnsupportedFunctionalityError({
|
5549
5605
|
functionality: "element streams in object mode"
|
5550
5606
|
});
|
5551
5607
|
}
|
@@ -5573,10 +5629,10 @@ var arrayOutputStrategy = (schema) => {
|
|
5573
5629
|
isFinalDelta
|
5574
5630
|
}) {
|
5575
5631
|
var _a16;
|
5576
|
-
if (!(0,
|
5632
|
+
if (!(0, import_provider23.isJSONObject)(value) || !(0, import_provider23.isJSONArray)(value.elements)) {
|
5577
5633
|
return {
|
5578
5634
|
success: false,
|
5579
|
-
error: new
|
5635
|
+
error: new import_provider23.TypeValidationError({
|
5580
5636
|
value,
|
5581
5637
|
cause: "value must be an object that contains an array of elements"
|
5582
5638
|
})
|
@@ -5616,10 +5672,10 @@ var arrayOutputStrategy = (schema) => {
|
|
5616
5672
|
};
|
5617
5673
|
},
|
5618
5674
|
async validateFinalResult(value) {
|
5619
|
-
if (!(0,
|
5675
|
+
if (!(0, import_provider23.isJSONObject)(value) || !(0, import_provider23.isJSONArray)(value.elements)) {
|
5620
5676
|
return {
|
5621
5677
|
success: false,
|
5622
|
-
error: new
|
5678
|
+
error: new import_provider23.TypeValidationError({
|
5623
5679
|
value,
|
5624
5680
|
cause: "value must be an object that contains an array of elements"
|
5625
5681
|
})
|
@@ -5682,10 +5738,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
5682
5738
|
additionalProperties: false
|
5683
5739
|
},
|
5684
5740
|
async validateFinalResult(value) {
|
5685
|
-
if (!(0,
|
5741
|
+
if (!(0, import_provider23.isJSONObject)(value) || typeof value.result !== "string") {
|
5686
5742
|
return {
|
5687
5743
|
success: false,
|
5688
|
-
error: new
|
5744
|
+
error: new import_provider23.TypeValidationError({
|
5689
5745
|
value,
|
5690
5746
|
cause: 'value must be an object that contains a string in the "result" property.'
|
5691
5747
|
})
|
@@ -5694,17 +5750,17 @@ var enumOutputStrategy = (enumValues) => {
|
|
5694
5750
|
const result = value.result;
|
5695
5751
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
5696
5752
|
success: false,
|
5697
|
-
error: new
|
5753
|
+
error: new import_provider23.TypeValidationError({
|
5698
5754
|
value,
|
5699
5755
|
cause: "value must be a string in the enum"
|
5700
5756
|
})
|
5701
5757
|
};
|
5702
5758
|
},
|
5703
5759
|
async validatePartialResult({ value, textDelta }) {
|
5704
|
-
if (!(0,
|
5760
|
+
if (!(0, import_provider23.isJSONObject)(value) || typeof value.result !== "string") {
|
5705
5761
|
return {
|
5706
5762
|
success: false,
|
5707
|
-
error: new
|
5763
|
+
error: new import_provider23.TypeValidationError({
|
5708
5764
|
value,
|
5709
5765
|
cause: 'value must be an object that contains a string in the "result" property.'
|
5710
5766
|
})
|
@@ -5717,7 +5773,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
5717
5773
|
if (value.result.length === 0 || possibleEnumValues.length === 0) {
|
5718
5774
|
return {
|
5719
5775
|
success: false,
|
5720
|
-
error: new
|
5776
|
+
error: new import_provider23.TypeValidationError({
|
5721
5777
|
value,
|
5722
5778
|
cause: "value must be a string in the enum"
|
5723
5779
|
})
|
@@ -5732,7 +5788,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
5732
5788
|
};
|
5733
5789
|
},
|
5734
5790
|
createElementStream() {
|
5735
|
-
throw new
|
5791
|
+
throw new import_provider23.UnsupportedFunctionalityError({
|
5736
5792
|
functionality: "element streams in enum mode"
|
5737
5793
|
});
|
5738
5794
|
}
|
@@ -6094,7 +6150,7 @@ async function generateObject(options) {
|
|
6094
6150
|
try {
|
6095
6151
|
object2 = await processResult(result);
|
6096
6152
|
} catch (error) {
|
6097
|
-
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (
|
6153
|
+
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider24.JSONParseError.isInstance(error.cause) || import_provider24.TypeValidationError.isInstance(error.cause))) {
|
6098
6154
|
const repairedText = await repairText({
|
6099
6155
|
text: result,
|
6100
6156
|
error: error.cause
|
@@ -6805,8 +6861,8 @@ var DefaultStreamObjectResult = class {
|
|
6805
6861
|
};
|
6806
6862
|
|
6807
6863
|
// src/error/no-speech-generated-error.ts
|
6808
|
-
var
|
6809
|
-
var NoSpeechGeneratedError = class extends
|
6864
|
+
var import_provider25 = require("@ai-sdk/provider");
|
6865
|
+
var NoSpeechGeneratedError = class extends import_provider25.AISDKError {
|
6810
6866
|
constructor(options) {
|
6811
6867
|
super({
|
6812
6868
|
name: "AI_NoSpeechGeneratedError",
|
@@ -6856,6 +6912,13 @@ async function generateSpeech({
|
|
6856
6912
|
headers
|
6857
6913
|
}) {
|
6858
6914
|
var _a16;
|
6915
|
+
if (model.specificationVersion !== "v2") {
|
6916
|
+
throw new UnsupportedModelVersionError({
|
6917
|
+
version: model.specificationVersion,
|
6918
|
+
provider: model.provider,
|
6919
|
+
modelId: model.modelId
|
6920
|
+
});
|
6921
|
+
}
|
6859
6922
|
const { retry } = prepareRetries({ maxRetries: maxRetriesArg });
|
6860
6923
|
const result = await retry(
|
6861
6924
|
() => model.doGenerate({
|
@@ -6974,7 +7037,7 @@ var object = ({
|
|
6974
7037
|
|
6975
7038
|
// src/generate-text/smooth-stream.ts
|
6976
7039
|
var import_provider_utils19 = require("@ai-sdk/provider-utils");
|
6977
|
-
var
|
7040
|
+
var import_provider26 = require("@ai-sdk/provider");
|
6978
7041
|
var CHUNKING_REGEXPS = {
|
6979
7042
|
word: /\S+\s+/m,
|
6980
7043
|
line: /\n+/m
|
@@ -7004,7 +7067,7 @@ function smoothStream({
|
|
7004
7067
|
} else {
|
7005
7068
|
const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
7006
7069
|
if (chunkingRegex == null) {
|
7007
|
-
throw new
|
7070
|
+
throw new import_provider26.InvalidArgumentError({
|
7008
7071
|
argument: "chunking",
|
7009
7072
|
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
7010
7073
|
});
|
@@ -7339,7 +7402,7 @@ var doWrap = ({
|
|
7339
7402
|
};
|
7340
7403
|
|
7341
7404
|
// src/registry/custom-provider.ts
|
7342
|
-
var
|
7405
|
+
var import_provider27 = require("@ai-sdk/provider");
|
7343
7406
|
function customProvider({
|
7344
7407
|
languageModels,
|
7345
7408
|
textEmbeddingModels,
|
@@ -7356,7 +7419,7 @@ function customProvider({
|
|
7356
7419
|
if (fallbackProvider) {
|
7357
7420
|
return fallbackProvider.languageModel(modelId);
|
7358
7421
|
}
|
7359
|
-
throw new
|
7422
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "languageModel" });
|
7360
7423
|
},
|
7361
7424
|
textEmbeddingModel(modelId) {
|
7362
7425
|
if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
|
@@ -7365,7 +7428,7 @@ function customProvider({
|
|
7365
7428
|
if (fallbackProvider) {
|
7366
7429
|
return fallbackProvider.textEmbeddingModel(modelId);
|
7367
7430
|
}
|
7368
|
-
throw new
|
7431
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
|
7369
7432
|
},
|
7370
7433
|
imageModel(modelId) {
|
7371
7434
|
if (imageModels != null && modelId in imageModels) {
|
@@ -7374,7 +7437,7 @@ function customProvider({
|
|
7374
7437
|
if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
|
7375
7438
|
return fallbackProvider.imageModel(modelId);
|
7376
7439
|
}
|
7377
|
-
throw new
|
7440
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "imageModel" });
|
7378
7441
|
},
|
7379
7442
|
transcriptionModel(modelId) {
|
7380
7443
|
if (transcriptionModels != null && modelId in transcriptionModels) {
|
@@ -7383,7 +7446,7 @@ function customProvider({
|
|
7383
7446
|
if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {
|
7384
7447
|
return fallbackProvider.transcriptionModel(modelId);
|
7385
7448
|
}
|
7386
|
-
throw new
|
7449
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
|
7387
7450
|
},
|
7388
7451
|
speechModel(modelId) {
|
7389
7452
|
if (speechModels != null && modelId in speechModels) {
|
@@ -7392,19 +7455,19 @@ function customProvider({
|
|
7392
7455
|
if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {
|
7393
7456
|
return fallbackProvider.speechModel(modelId);
|
7394
7457
|
}
|
7395
|
-
throw new
|
7458
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "speechModel" });
|
7396
7459
|
}
|
7397
7460
|
};
|
7398
7461
|
}
|
7399
7462
|
var experimental_customProvider = customProvider;
|
7400
7463
|
|
7401
7464
|
// src/registry/no-such-provider-error.ts
|
7402
|
-
var
|
7465
|
+
var import_provider28 = require("@ai-sdk/provider");
|
7403
7466
|
var name15 = "AI_NoSuchProviderError";
|
7404
7467
|
var marker15 = `vercel.ai.error.${name15}`;
|
7405
7468
|
var symbol15 = Symbol.for(marker15);
|
7406
7469
|
var _a15;
|
7407
|
-
var NoSuchProviderError = class extends
|
7470
|
+
var NoSuchProviderError = class extends import_provider28.NoSuchModelError {
|
7408
7471
|
constructor({
|
7409
7472
|
modelId,
|
7410
7473
|
modelType,
|
@@ -7418,13 +7481,13 @@ var NoSuchProviderError = class extends import_provider27.NoSuchModelError {
|
|
7418
7481
|
this.availableProviders = availableProviders;
|
7419
7482
|
}
|
7420
7483
|
static isInstance(error) {
|
7421
|
-
return
|
7484
|
+
return import_provider28.AISDKError.hasMarker(error, marker15);
|
7422
7485
|
}
|
7423
7486
|
};
|
7424
7487
|
_a15 = symbol15;
|
7425
7488
|
|
7426
7489
|
// src/registry/provider-registry.ts
|
7427
|
-
var
|
7490
|
+
var import_provider29 = require("@ai-sdk/provider");
|
7428
7491
|
function createProviderRegistry(providers, {
|
7429
7492
|
separator = ":"
|
7430
7493
|
} = {}) {
|
@@ -7463,7 +7526,7 @@ var DefaultProviderRegistry = class {
|
|
7463
7526
|
splitId(id, modelType) {
|
7464
7527
|
const index = id.indexOf(this.separator);
|
7465
7528
|
if (index === -1) {
|
7466
|
-
throw new
|
7529
|
+
throw new import_provider29.NoSuchModelError({
|
7467
7530
|
modelId: id,
|
7468
7531
|
modelType,
|
7469
7532
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
|
@@ -7479,7 +7542,7 @@ var DefaultProviderRegistry = class {
|
|
7479
7542
|
modelId
|
7480
7543
|
);
|
7481
7544
|
if (model == null) {
|
7482
|
-
throw new
|
7545
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
7483
7546
|
}
|
7484
7547
|
return model;
|
7485
7548
|
}
|
@@ -7489,7 +7552,7 @@ var DefaultProviderRegistry = class {
|
|
7489
7552
|
const provider = this.getProvider(providerId, "textEmbeddingModel");
|
7490
7553
|
const model = (_a16 = provider.textEmbeddingModel) == null ? void 0 : _a16.call(provider, modelId);
|
7491
7554
|
if (model == null) {
|
7492
|
-
throw new
|
7555
|
+
throw new import_provider29.NoSuchModelError({
|
7493
7556
|
modelId: id,
|
7494
7557
|
modelType: "textEmbeddingModel"
|
7495
7558
|
});
|
@@ -7502,7 +7565,7 @@ var DefaultProviderRegistry = class {
|
|
7502
7565
|
const provider = this.getProvider(providerId, "imageModel");
|
7503
7566
|
const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
|
7504
7567
|
if (model == null) {
|
7505
|
-
throw new
|
7568
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "imageModel" });
|
7506
7569
|
}
|
7507
7570
|
return model;
|
7508
7571
|
}
|
@@ -7512,7 +7575,7 @@ var DefaultProviderRegistry = class {
|
|
7512
7575
|
const provider = this.getProvider(providerId, "transcriptionModel");
|
7513
7576
|
const model = (_a16 = provider.transcriptionModel) == null ? void 0 : _a16.call(provider, modelId);
|
7514
7577
|
if (model == null) {
|
7515
|
-
throw new
|
7578
|
+
throw new import_provider29.NoSuchModelError({
|
7516
7579
|
modelId: id,
|
7517
7580
|
modelType: "transcriptionModel"
|
7518
7581
|
});
|
@@ -7525,7 +7588,7 @@ var DefaultProviderRegistry = class {
|
|
7525
7588
|
const provider = this.getProvider(providerId, "speechModel");
|
7526
7589
|
const model = (_a16 = provider.speechModel) == null ? void 0 : _a16.call(provider, modelId);
|
7527
7590
|
if (model == null) {
|
7528
|
-
throw new
|
7591
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "speechModel" });
|
7529
7592
|
}
|
7530
7593
|
return model;
|
7531
7594
|
}
|
@@ -8097,8 +8160,8 @@ var MCPClient = class {
|
|
8097
8160
|
var import_provider_utils23 = require("@ai-sdk/provider-utils");
|
8098
8161
|
|
8099
8162
|
// src/error/no-transcript-generated-error.ts
|
8100
|
-
var
|
8101
|
-
var NoTranscriptGeneratedError = class extends
|
8163
|
+
var import_provider30 = require("@ai-sdk/provider");
|
8164
|
+
var NoTranscriptGeneratedError = class extends import_provider30.AISDKError {
|
8102
8165
|
constructor(options) {
|
8103
8166
|
super({
|
8104
8167
|
name: "AI_NoTranscriptGeneratedError",
|
@@ -8117,6 +8180,13 @@ async function transcribe({
|
|
8117
8180
|
abortSignal,
|
8118
8181
|
headers
|
8119
8182
|
}) {
|
8183
|
+
if (model.specificationVersion !== "v2") {
|
8184
|
+
throw new UnsupportedModelVersionError({
|
8185
|
+
version: model.specificationVersion,
|
8186
|
+
provider: model.provider,
|
8187
|
+
modelId: model.modelId
|
8188
|
+
});
|
8189
|
+
}
|
8120
8190
|
const { retry } = prepareRetries({ maxRetries: maxRetriesArg });
|
8121
8191
|
const audioData = audio instanceof URL ? (await download({ url: audio })).data : convertDataContentToUint8Array(audio);
|
8122
8192
|
const result = await retry(
|
@@ -9157,6 +9227,7 @@ function readUIMessageStream({
|
|
9157
9227
|
TypeValidationError,
|
9158
9228
|
UI_MESSAGE_STREAM_HEADERS,
|
9159
9229
|
UnsupportedFunctionalityError,
|
9230
|
+
UnsupportedModelVersionError,
|
9160
9231
|
asSchema,
|
9161
9232
|
assistantModelMessageSchema,
|
9162
9233
|
callCompletionApi,
|