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/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: () => import_provider21.AISDKError,
24
- APICallError: () => import_provider21.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: () => import_provider21.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: () => import_provider21.InvalidPromptError,
35
- InvalidResponseDataError: () => import_provider21.InvalidResponseDataError,
34
+ InvalidPromptError: () => import_provider18.InvalidPromptError,
35
+ InvalidResponseDataError: () => import_provider18.InvalidResponseDataError,
36
36
  InvalidStreamPartError: () => InvalidStreamPartError,
37
37
  InvalidToolInputError: () => InvalidToolInputError,
38
- JSONParseError: () => import_provider21.JSONParseError,
38
+ JSONParseError: () => import_provider18.JSONParseError,
39
39
  JsonToSseTransformStream: () => JsonToSseTransformStream,
40
- LoadAPIKeyError: () => import_provider21.LoadAPIKeyError,
40
+ LoadAPIKeyError: () => import_provider18.LoadAPIKeyError,
41
41
  MCPClientError: () => MCPClientError,
42
42
  MessageConversionError: () => MessageConversionError,
43
- NoContentGeneratedError: () => import_provider21.NoContentGeneratedError,
43
+ NoContentGeneratedError: () => import_provider18.NoContentGeneratedError,
44
44
  NoImageGeneratedError: () => NoImageGeneratedError,
45
45
  NoObjectGeneratedError: () => NoObjectGeneratedError,
46
46
  NoOutputSpecifiedError: () => NoOutputSpecifiedError,
47
- NoSuchModelError: () => import_provider21.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: () => import_provider21.TypeValidationError,
55
+ TypeValidationError: () => import_provider18.TypeValidationError,
56
56
  UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
57
- UnsupportedFunctionalityError: () => import_provider21.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 import_provider9 = require("@ai-sdk/provider");
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 import_provider9.InvalidPromptError({
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 import_provider9.InvalidPromptError({
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 import_provider9.InvalidPromptError({
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 import_provider9.InvalidPromptError({
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 import_provider9.InvalidPromptError({
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 import_provider9.InvalidPromptError({
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 import_provider10 = require("@ai-sdk/provider");
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 import_provider10.AISDKError({
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 === void 0) {
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 === void 0 ? attributes2 : { ...attributes2, [key]: 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 === void 0 ? attributes2 : { ...attributes2, [key]: 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 import_provider14 = require("@ai-sdk/provider");
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, import_provider14.getErrorMessage)(output) };
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 import_provider15 = require("@ai-sdk/provider");
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
- await streamStep({
4524
- currentStep: currentStep + 1,
4525
- responseMessages,
4526
- usage: combinedUsage
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 = import_provider15.getErrorMessage
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 import_provider23 = require("@ai-sdk/provider");
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 import_provider22 = require("@ai-sdk/provider");
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 import_provider22.UnsupportedFunctionalityError({
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 import_provider22.UnsupportedFunctionalityError({
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, import_provider22.isJSONObject)(value) || !(0, import_provider22.isJSONArray)(value.elements)) {
5632
+ if (!(0, import_provider23.isJSONObject)(value) || !(0, import_provider23.isJSONArray)(value.elements)) {
5577
5633
  return {
5578
5634
  success: false,
5579
- error: new import_provider22.TypeValidationError({
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, import_provider22.isJSONObject)(value) || !(0, import_provider22.isJSONArray)(value.elements)) {
5675
+ if (!(0, import_provider23.isJSONObject)(value) || !(0, import_provider23.isJSONArray)(value.elements)) {
5620
5676
  return {
5621
5677
  success: false,
5622
- error: new import_provider22.TypeValidationError({
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, import_provider22.isJSONObject)(value) || typeof value.result !== "string") {
5741
+ if (!(0, import_provider23.isJSONObject)(value) || typeof value.result !== "string") {
5686
5742
  return {
5687
5743
  success: false,
5688
- error: new import_provider22.TypeValidationError({
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 import_provider22.TypeValidationError({
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, import_provider22.isJSONObject)(value) || typeof value.result !== "string") {
5760
+ if (!(0, import_provider23.isJSONObject)(value) || typeof value.result !== "string") {
5705
5761
  return {
5706
5762
  success: false,
5707
- error: new import_provider22.TypeValidationError({
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 import_provider22.TypeValidationError({
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 import_provider22.UnsupportedFunctionalityError({
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) && (import_provider23.JSONParseError.isInstance(error.cause) || import_provider23.TypeValidationError.isInstance(error.cause))) {
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 import_provider24 = require("@ai-sdk/provider");
6809
- var NoSpeechGeneratedError = class extends import_provider24.AISDKError {
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 import_provider25 = require("@ai-sdk/provider");
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 import_provider25.InvalidArgumentError({
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 import_provider26 = require("@ai-sdk/provider");
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 import_provider26.NoSuchModelError({ modelId, modelType: "languageModel" });
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 import_provider26.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
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 import_provider26.NoSuchModelError({ modelId, modelType: "imageModel" });
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 import_provider26.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
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 import_provider26.NoSuchModelError({ modelId, modelType: "speechModel" });
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 import_provider27 = require("@ai-sdk/provider");
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 import_provider27.NoSuchModelError {
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 import_provider27.AISDKError.hasMarker(error, marker15);
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 import_provider28 = require("@ai-sdk/provider");
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 import_provider28.NoSuchModelError({
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 import_provider28.NoSuchModelError({ modelId: id, modelType: "languageModel" });
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 import_provider28.NoSuchModelError({
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 import_provider28.NoSuchModelError({ modelId: id, modelType: "imageModel" });
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 import_provider28.NoSuchModelError({
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 import_provider28.NoSuchModelError({ modelId: id, modelType: "speechModel" });
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 import_provider29 = require("@ai-sdk/provider");
8101
- var NoTranscriptGeneratedError = class extends import_provider29.AISDKError {
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,