ai 4.3.17 → 4.3.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,29 +20,29 @@ 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: () => import_provider20.AISDKError,
24
- APICallError: () => import_provider20.APICallError,
23
+ AISDKError: () => import_provider21.AISDKError,
24
+ APICallError: () => import_provider21.APICallError,
25
25
  AssistantResponse: () => AssistantResponse,
26
26
  DownloadError: () => DownloadError,
27
- EmptyResponseBodyError: () => import_provider20.EmptyResponseBodyError,
27
+ EmptyResponseBodyError: () => import_provider21.EmptyResponseBodyError,
28
28
  InvalidArgumentError: () => InvalidArgumentError,
29
29
  InvalidDataContentError: () => InvalidDataContentError,
30
30
  InvalidMessageRoleError: () => InvalidMessageRoleError,
31
- InvalidPromptError: () => import_provider20.InvalidPromptError,
32
- InvalidResponseDataError: () => import_provider20.InvalidResponseDataError,
31
+ InvalidPromptError: () => import_provider21.InvalidPromptError,
32
+ InvalidResponseDataError: () => import_provider21.InvalidResponseDataError,
33
33
  InvalidStreamPartError: () => InvalidStreamPartError,
34
34
  InvalidToolArgumentsError: () => InvalidToolArgumentsError,
35
- JSONParseError: () => import_provider20.JSONParseError,
35
+ JSONParseError: () => import_provider21.JSONParseError,
36
36
  LangChainAdapter: () => langchain_adapter_exports,
37
37
  LlamaIndexAdapter: () => llamaindex_adapter_exports,
38
- LoadAPIKeyError: () => import_provider20.LoadAPIKeyError,
38
+ LoadAPIKeyError: () => import_provider21.LoadAPIKeyError,
39
39
  MCPClientError: () => MCPClientError,
40
40
  MessageConversionError: () => MessageConversionError,
41
- NoContentGeneratedError: () => import_provider20.NoContentGeneratedError,
41
+ NoContentGeneratedError: () => import_provider21.NoContentGeneratedError,
42
42
  NoImageGeneratedError: () => NoImageGeneratedError,
43
43
  NoObjectGeneratedError: () => NoObjectGeneratedError,
44
44
  NoOutputSpecifiedError: () => NoOutputSpecifiedError,
45
- NoSuchModelError: () => import_provider20.NoSuchModelError,
45
+ NoSuchModelError: () => import_provider21.NoSuchModelError,
46
46
  NoSuchProviderError: () => NoSuchProviderError,
47
47
  NoSuchToolError: () => NoSuchToolError,
48
48
  Output: () => output_exports,
@@ -50,8 +50,9 @@ __export(streams_exports, {
50
50
  StreamData: () => StreamData,
51
51
  ToolCallRepairError: () => ToolCallRepairError,
52
52
  ToolExecutionError: () => ToolExecutionError,
53
- TypeValidationError: () => import_provider20.TypeValidationError,
54
- UnsupportedFunctionalityError: () => import_provider20.UnsupportedFunctionalityError,
53
+ TypeValidationError: () => import_provider21.TypeValidationError,
54
+ UnsupportedFunctionalityError: () => import_provider21.UnsupportedFunctionalityError,
55
+ UnsupportedModelVersionError: () => UnsupportedModelVersionError,
55
56
  appendClientMessage: () => appendClientMessage,
56
57
  appendResponseMessages: () => appendResponseMessages,
57
58
  convertToCoreMessages: () => convertToCoreMessages,
@@ -284,13 +285,24 @@ function pipeDataStreamToResponse(response, {
284
285
  });
285
286
  }
286
287
 
287
- // errors/invalid-argument-error.ts
288
+ // errors/unsupported-model-version-error.ts
288
289
  var import_provider = require("@ai-sdk/provider");
290
+ var UnsupportedModelVersionError = class extends import_provider.AISDKError {
291
+ constructor() {
292
+ super({
293
+ name: "AI_UnsupportedModelVersionError",
294
+ message: `Unsupported model version. AI SDK 4 only supports models that implement specification version "v1". Please upgrade to AI SDK 5 to use this model.`
295
+ });
296
+ }
297
+ };
298
+
299
+ // errors/invalid-argument-error.ts
300
+ var import_provider2 = require("@ai-sdk/provider");
289
301
  var name = "AI_InvalidArgumentError";
290
302
  var marker = `vercel.ai.error.${name}`;
291
303
  var symbol = Symbol.for(marker);
292
304
  var _a;
293
- var InvalidArgumentError = class extends import_provider.AISDKError {
305
+ var InvalidArgumentError = class extends import_provider2.AISDKError {
294
306
  constructor({
295
307
  parameter,
296
308
  value,
@@ -305,22 +317,22 @@ var InvalidArgumentError = class extends import_provider.AISDKError {
305
317
  this.value = value;
306
318
  }
307
319
  static isInstance(error) {
308
- return import_provider.AISDKError.hasMarker(error, marker);
320
+ return import_provider2.AISDKError.hasMarker(error, marker);
309
321
  }
310
322
  };
311
323
  _a = symbol;
312
324
 
313
325
  // util/retry-with-exponential-backoff.ts
314
- var import_provider3 = require("@ai-sdk/provider");
326
+ var import_provider4 = require("@ai-sdk/provider");
315
327
  var import_provider_utils = require("@ai-sdk/provider-utils");
316
328
 
317
329
  // util/retry-error.ts
318
- var import_provider2 = require("@ai-sdk/provider");
330
+ var import_provider3 = require("@ai-sdk/provider");
319
331
  var name2 = "AI_RetryError";
320
332
  var marker2 = `vercel.ai.error.${name2}`;
321
333
  var symbol2 = Symbol.for(marker2);
322
334
  var _a2;
323
- var RetryError = class extends import_provider2.AISDKError {
335
+ var RetryError = class extends import_provider3.AISDKError {
324
336
  constructor({
325
337
  message,
326
338
  reason,
@@ -333,7 +345,7 @@ var RetryError = class extends import_provider2.AISDKError {
333
345
  this.lastError = errors[errors.length - 1];
334
346
  }
335
347
  static isInstance(error) {
336
- return import_provider2.AISDKError.hasMarker(error, marker2);
348
+ return import_provider3.AISDKError.hasMarker(error, marker2);
337
349
  }
338
350
  };
339
351
  _a2 = symbol2;
@@ -372,7 +384,7 @@ async function _retryWithExponentialBackoff(f, {
372
384
  errors: newErrors
373
385
  });
374
386
  }
375
- if (error instanceof Error && import_provider3.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
387
+ if (error instanceof Error && import_provider4.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
376
388
  await (0, import_provider_utils.delay)(delayInMs);
377
389
  return _retryWithExponentialBackoff(
378
390
  f,
@@ -560,19 +572,7 @@ function recordSpan({
560
572
  return result;
561
573
  } catch (error) {
562
574
  try {
563
- if (error instanceof Error) {
564
- span.recordException({
565
- name: error.name,
566
- message: error.message,
567
- stack: error.stack
568
- });
569
- span.setStatus({
570
- code: import_api2.SpanStatusCode.ERROR,
571
- message: error.message
572
- });
573
- } else {
574
- span.setStatus({ code: import_api2.SpanStatusCode.ERROR });
575
- }
575
+ recordErrorOnSpan(span, error);
576
576
  } finally {
577
577
  span.end();
578
578
  }
@@ -580,6 +580,21 @@ function recordSpan({
580
580
  }
581
581
  });
582
582
  }
583
+ function recordErrorOnSpan(span, error) {
584
+ if (error instanceof Error) {
585
+ span.recordException({
586
+ name: error.name,
587
+ message: error.message,
588
+ stack: error.stack
589
+ });
590
+ span.setStatus({
591
+ code: import_api2.SpanStatusCode.ERROR,
592
+ message: error.message
593
+ });
594
+ } else {
595
+ span.setStatus({ code: import_api2.SpanStatusCode.ERROR });
596
+ }
597
+ }
583
598
 
584
599
  // core/telemetry/select-telemetry-attributes.ts
585
600
  function selectTelemetryAttributes({
@@ -620,6 +635,9 @@ async function embed({
620
635
  headers,
621
636
  experimental_telemetry: telemetry
622
637
  }) {
638
+ if (typeof model === "string" || model.specificationVersion !== "v1") {
639
+ throw new UnsupportedModelVersionError();
640
+ }
623
641
  const { maxRetries, retry } = prepareRetries({ maxRetries: maxRetriesArg });
624
642
  const baseTelemetryAttributes = getBaseTelemetryAttributes({
625
643
  model,
@@ -732,6 +750,9 @@ async function embedMany({
732
750
  headers,
733
751
  experimental_telemetry: telemetry
734
752
  }) {
753
+ if (typeof model === "string" || model.specificationVersion !== "v1") {
754
+ throw new UnsupportedModelVersionError();
755
+ }
735
756
  const { maxRetries, retry } = prepareRetries({ maxRetries: maxRetriesArg });
736
757
  const baseTelemetryAttributes = getBaseTelemetryAttributes({
737
758
  model,
@@ -889,12 +910,12 @@ var DefaultEmbedManyResult = class {
889
910
  };
890
911
 
891
912
  // errors/no-image-generated-error.ts
892
- var import_provider4 = require("@ai-sdk/provider");
913
+ var import_provider5 = require("@ai-sdk/provider");
893
914
  var name3 = "AI_NoImageGeneratedError";
894
915
  var marker3 = `vercel.ai.error.${name3}`;
895
916
  var symbol3 = Symbol.for(marker3);
896
917
  var _a3;
897
- var NoImageGeneratedError = class extends import_provider4.AISDKError {
918
+ var NoImageGeneratedError = class extends import_provider5.AISDKError {
898
919
  constructor({
899
920
  message = "No image generated.",
900
921
  cause,
@@ -905,7 +926,7 @@ var NoImageGeneratedError = class extends import_provider4.AISDKError {
905
926
  this.responses = responses;
906
927
  }
907
928
  static isInstance(error) {
908
- return import_provider4.AISDKError.hasMarker(error, marker3);
929
+ return import_provider5.AISDKError.hasMarker(error, marker3);
909
930
  }
910
931
  };
911
932
  _a3 = symbol3;
@@ -1091,6 +1112,9 @@ async function generateImage({
1091
1112
  headers
1092
1113
  }) {
1093
1114
  var _a17;
1115
+ if (typeof model === "string" || model.specificationVersion !== "v1") {
1116
+ throw new UnsupportedModelVersionError();
1117
+ }
1094
1118
  const { retry } = prepareRetries({ maxRetries: maxRetriesArg });
1095
1119
  const maxImagesPerCall = (_a17 = model.maxImagesPerCall) != null ? _a17 : 1;
1096
1120
  const callCount = Math.ceil(n / maxImagesPerCall);
@@ -1155,16 +1179,16 @@ var DefaultGenerateImageResult = class {
1155
1179
  };
1156
1180
 
1157
1181
  // core/generate-object/generate-object.ts
1158
- var import_provider12 = require("@ai-sdk/provider");
1182
+ var import_provider13 = require("@ai-sdk/provider");
1159
1183
  var import_provider_utils7 = require("@ai-sdk/provider-utils");
1160
1184
 
1161
1185
  // errors/no-object-generated-error.ts
1162
- var import_provider5 = require("@ai-sdk/provider");
1186
+ var import_provider6 = require("@ai-sdk/provider");
1163
1187
  var name4 = "AI_NoObjectGeneratedError";
1164
1188
  var marker4 = `vercel.ai.error.${name4}`;
1165
1189
  var symbol4 = Symbol.for(marker4);
1166
1190
  var _a4;
1167
- var NoObjectGeneratedError = class extends import_provider5.AISDKError {
1191
+ var NoObjectGeneratedError = class extends import_provider6.AISDKError {
1168
1192
  constructor({
1169
1193
  message = "No object generated.",
1170
1194
  cause,
@@ -1181,18 +1205,18 @@ var NoObjectGeneratedError = class extends import_provider5.AISDKError {
1181
1205
  this.finishReason = finishReason;
1182
1206
  }
1183
1207
  static isInstance(error) {
1184
- return import_provider5.AISDKError.hasMarker(error, marker4);
1208
+ return import_provider6.AISDKError.hasMarker(error, marker4);
1185
1209
  }
1186
1210
  };
1187
1211
  _a4 = symbol4;
1188
1212
 
1189
1213
  // util/download-error.ts
1190
- var import_provider6 = require("@ai-sdk/provider");
1214
+ var import_provider7 = require("@ai-sdk/provider");
1191
1215
  var name5 = "AI_DownloadError";
1192
1216
  var marker5 = `vercel.ai.error.${name5}`;
1193
1217
  var symbol5 = Symbol.for(marker5);
1194
1218
  var _a5;
1195
- var DownloadError = class extends import_provider6.AISDKError {
1219
+ var DownloadError = class extends import_provider7.AISDKError {
1196
1220
  constructor({
1197
1221
  url,
1198
1222
  statusCode,
@@ -1207,7 +1231,7 @@ var DownloadError = class extends import_provider6.AISDKError {
1207
1231
  this.statusText = statusText;
1208
1232
  }
1209
1233
  static isInstance(error) {
1210
- return import_provider6.AISDKError.hasMarker(error, marker5);
1234
+ return import_provider7.AISDKError.hasMarker(error, marker5);
1211
1235
  }
1212
1236
  };
1213
1237
  _a5 = symbol5;
@@ -1241,12 +1265,12 @@ async function download({ url }) {
1241
1265
  var import_provider_utils4 = require("@ai-sdk/provider-utils");
1242
1266
 
1243
1267
  // core/prompt/invalid-data-content-error.ts
1244
- var import_provider7 = require("@ai-sdk/provider");
1268
+ var import_provider8 = require("@ai-sdk/provider");
1245
1269
  var name6 = "AI_InvalidDataContentError";
1246
1270
  var marker6 = `vercel.ai.error.${name6}`;
1247
1271
  var symbol6 = Symbol.for(marker6);
1248
1272
  var _a6;
1249
- var InvalidDataContentError = class extends import_provider7.AISDKError {
1273
+ var InvalidDataContentError = class extends import_provider8.AISDKError {
1250
1274
  constructor({
1251
1275
  content,
1252
1276
  cause,
@@ -1257,7 +1281,7 @@ var InvalidDataContentError = class extends import_provider7.AISDKError {
1257
1281
  this.content = content;
1258
1282
  }
1259
1283
  static isInstance(error) {
1260
- return import_provider7.AISDKError.hasMarker(error, marker6);
1284
+ return import_provider8.AISDKError.hasMarker(error, marker6);
1261
1285
  }
1262
1286
  };
1263
1287
  _a6 = symbol6;
@@ -1315,12 +1339,12 @@ function convertUint8ArrayToText(uint8Array) {
1315
1339
  }
1316
1340
 
1317
1341
  // core/prompt/invalid-message-role-error.ts
1318
- var import_provider8 = require("@ai-sdk/provider");
1342
+ var import_provider9 = require("@ai-sdk/provider");
1319
1343
  var name7 = "AI_InvalidMessageRoleError";
1320
1344
  var marker7 = `vercel.ai.error.${name7}`;
1321
1345
  var symbol7 = Symbol.for(marker7);
1322
1346
  var _a7;
1323
- var InvalidMessageRoleError = class extends import_provider8.AISDKError {
1347
+ var InvalidMessageRoleError = class extends import_provider9.AISDKError {
1324
1348
  constructor({
1325
1349
  role,
1326
1350
  message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
@@ -1330,7 +1354,7 @@ var InvalidMessageRoleError = class extends import_provider8.AISDKError {
1330
1354
  this.role = role;
1331
1355
  }
1332
1356
  static isInstance(error) {
1333
- return import_provider8.AISDKError.hasMarker(error, marker7);
1357
+ return import_provider9.AISDKError.hasMarker(error, marker7);
1334
1358
  }
1335
1359
  };
1336
1360
  _a7 = symbol7;
@@ -1681,7 +1705,7 @@ function prepareCallSettings({
1681
1705
  }
1682
1706
 
1683
1707
  // core/prompt/standardize-prompt.ts
1684
- var import_provider10 = require("@ai-sdk/provider");
1708
+ var import_provider11 = require("@ai-sdk/provider");
1685
1709
  var import_provider_utils5 = require("@ai-sdk/provider-utils");
1686
1710
  var import_zod7 = require("zod");
1687
1711
 
@@ -1763,12 +1787,12 @@ function attachmentsToParts(attachments) {
1763
1787
  }
1764
1788
 
1765
1789
  // core/prompt/message-conversion-error.ts
1766
- var import_provider9 = require("@ai-sdk/provider");
1790
+ var import_provider10 = require("@ai-sdk/provider");
1767
1791
  var name8 = "AI_MessageConversionError";
1768
1792
  var marker8 = `vercel.ai.error.${name8}`;
1769
1793
  var symbol8 = Symbol.for(marker8);
1770
1794
  var _a8;
1771
- var MessageConversionError = class extends import_provider9.AISDKError {
1795
+ var MessageConversionError = class extends import_provider10.AISDKError {
1772
1796
  constructor({
1773
1797
  originalMessage,
1774
1798
  message
@@ -1778,7 +1802,7 @@ var MessageConversionError = class extends import_provider9.AISDKError {
1778
1802
  this.originalMessage = originalMessage;
1779
1803
  }
1780
1804
  static isInstance(error) {
1781
- return import_provider9.AISDKError.hasMarker(error, marker8);
1805
+ return import_provider10.AISDKError.hasMarker(error, marker8);
1782
1806
  }
1783
1807
  };
1784
1808
  _a8 = symbol8;
@@ -2162,26 +2186,26 @@ function standardizePrompt({
2162
2186
  tools
2163
2187
  }) {
2164
2188
  if (prompt.prompt == null && prompt.messages == null) {
2165
- throw new import_provider10.InvalidPromptError({
2189
+ throw new import_provider11.InvalidPromptError({
2166
2190
  prompt,
2167
2191
  message: "prompt or messages must be defined"
2168
2192
  });
2169
2193
  }
2170
2194
  if (prompt.prompt != null && prompt.messages != null) {
2171
- throw new import_provider10.InvalidPromptError({
2195
+ throw new import_provider11.InvalidPromptError({
2172
2196
  prompt,
2173
2197
  message: "prompt and messages cannot be defined at the same time"
2174
2198
  });
2175
2199
  }
2176
2200
  if (prompt.system != null && typeof prompt.system !== "string") {
2177
- throw new import_provider10.InvalidPromptError({
2201
+ throw new import_provider11.InvalidPromptError({
2178
2202
  prompt,
2179
2203
  message: "system must be a string"
2180
2204
  });
2181
2205
  }
2182
2206
  if (prompt.prompt != null) {
2183
2207
  if (typeof prompt.prompt !== "string") {
2184
- throw new import_provider10.InvalidPromptError({
2208
+ throw new import_provider11.InvalidPromptError({
2185
2209
  prompt,
2186
2210
  message: "prompt must be a string"
2187
2211
  });
@@ -2203,7 +2227,7 @@ function standardizePrompt({
2203
2227
  tools
2204
2228
  }) : prompt.messages;
2205
2229
  if (messages.length === 0) {
2206
- throw new import_provider10.InvalidPromptError({
2230
+ throw new import_provider11.InvalidPromptError({
2207
2231
  prompt,
2208
2232
  message: "messages must not be empty"
2209
2233
  });
@@ -2213,7 +2237,7 @@ function standardizePrompt({
2213
2237
  schema: import_zod7.z.array(coreMessageSchema)
2214
2238
  });
2215
2239
  if (!validationResult.success) {
2216
- throw new import_provider10.InvalidPromptError({
2240
+ throw new import_provider11.InvalidPromptError({
2217
2241
  prompt,
2218
2242
  message: [
2219
2243
  "message must be a CoreMessage or a UI message",
@@ -2232,7 +2256,7 @@ function standardizePrompt({
2232
2256
  }
2233
2257
  function detectPromptType(prompt) {
2234
2258
  if (!Array.isArray(prompt)) {
2235
- throw new import_provider10.InvalidPromptError({
2259
+ throw new import_provider11.InvalidPromptError({
2236
2260
  prompt,
2237
2261
  message: [
2238
2262
  "messages must be an array of CoreMessage or UIMessage",
@@ -2254,7 +2278,7 @@ function detectPromptType(prompt) {
2254
2278
  if (nonMessageIndex === -1) {
2255
2279
  return "messages";
2256
2280
  }
2257
- throw new import_provider10.InvalidPromptError({
2281
+ throw new import_provider11.InvalidPromptError({
2258
2282
  prompt,
2259
2283
  message: [
2260
2284
  "messages must be an array of CoreMessage or UIMessage",
@@ -2321,7 +2345,7 @@ function injectJsonInstruction({
2321
2345
  }
2322
2346
 
2323
2347
  // core/generate-object/output-strategy.ts
2324
- var import_provider11 = require("@ai-sdk/provider");
2348
+ var import_provider12 = require("@ai-sdk/provider");
2325
2349
  var import_provider_utils6 = require("@ai-sdk/provider-utils");
2326
2350
  var import_ui_utils2 = require("@ai-sdk/ui-utils");
2327
2351
 
@@ -2360,7 +2384,7 @@ var noSchemaOutputStrategy = {
2360
2384
  } : { success: true, value };
2361
2385
  },
2362
2386
  createElementStream() {
2363
- throw new import_provider11.UnsupportedFunctionalityError({
2387
+ throw new import_provider12.UnsupportedFunctionalityError({
2364
2388
  functionality: "element streams in no-schema mode"
2365
2389
  });
2366
2390
  }
@@ -2382,7 +2406,7 @@ var objectOutputStrategy = (schema) => ({
2382
2406
  return (0, import_provider_utils6.safeValidateTypes)({ value, schema });
2383
2407
  },
2384
2408
  createElementStream() {
2385
- throw new import_provider11.UnsupportedFunctionalityError({
2409
+ throw new import_provider12.UnsupportedFunctionalityError({
2386
2410
  functionality: "element streams in object mode"
2387
2411
  });
2388
2412
  }
@@ -2405,10 +2429,10 @@ var arrayOutputStrategy = (schema) => {
2405
2429
  },
2406
2430
  validatePartialResult({ value, latestObject, isFirstDelta, isFinalDelta }) {
2407
2431
  var _a17;
2408
- if (!(0, import_provider11.isJSONObject)(value) || !(0, import_provider11.isJSONArray)(value.elements)) {
2432
+ if (!(0, import_provider12.isJSONObject)(value) || !(0, import_provider12.isJSONArray)(value.elements)) {
2409
2433
  return {
2410
2434
  success: false,
2411
- error: new import_provider11.TypeValidationError({
2435
+ error: new import_provider12.TypeValidationError({
2412
2436
  value,
2413
2437
  cause: "value must be an object that contains an array of elements"
2414
2438
  })
@@ -2448,10 +2472,10 @@ var arrayOutputStrategy = (schema) => {
2448
2472
  };
2449
2473
  },
2450
2474
  validateFinalResult(value) {
2451
- if (!(0, import_provider11.isJSONObject)(value) || !(0, import_provider11.isJSONArray)(value.elements)) {
2475
+ if (!(0, import_provider12.isJSONObject)(value) || !(0, import_provider12.isJSONArray)(value.elements)) {
2452
2476
  return {
2453
2477
  success: false,
2454
- error: new import_provider11.TypeValidationError({
2478
+ error: new import_provider12.TypeValidationError({
2455
2479
  value,
2456
2480
  cause: "value must be an object that contains an array of elements"
2457
2481
  })
@@ -2514,10 +2538,10 @@ var enumOutputStrategy = (enumValues) => {
2514
2538
  additionalProperties: false
2515
2539
  },
2516
2540
  validateFinalResult(value) {
2517
- if (!(0, import_provider11.isJSONObject)(value) || typeof value.result !== "string") {
2541
+ if (!(0, import_provider12.isJSONObject)(value) || typeof value.result !== "string") {
2518
2542
  return {
2519
2543
  success: false,
2520
- error: new import_provider11.TypeValidationError({
2544
+ error: new import_provider12.TypeValidationError({
2521
2545
  value,
2522
2546
  cause: 'value must be an object that contains a string in the "result" property.'
2523
2547
  })
@@ -2526,19 +2550,19 @@ var enumOutputStrategy = (enumValues) => {
2526
2550
  const result = value.result;
2527
2551
  return enumValues.includes(result) ? { success: true, value: result } : {
2528
2552
  success: false,
2529
- error: new import_provider11.TypeValidationError({
2553
+ error: new import_provider12.TypeValidationError({
2530
2554
  value,
2531
2555
  cause: "value must be a string in the enum"
2532
2556
  })
2533
2557
  };
2534
2558
  },
2535
2559
  validatePartialResult() {
2536
- throw new import_provider11.UnsupportedFunctionalityError({
2560
+ throw new import_provider12.UnsupportedFunctionalityError({
2537
2561
  functionality: "partial results in enum mode"
2538
2562
  });
2539
2563
  },
2540
2564
  createElementStream() {
2541
- throw new import_provider11.UnsupportedFunctionalityError({
2565
+ throw new import_provider12.UnsupportedFunctionalityError({
2542
2566
  functionality: "element streams in enum mode"
2543
2567
  });
2544
2568
  }
@@ -2738,6 +2762,9 @@ async function generateObject({
2738
2762
  } = {},
2739
2763
  ...settings
2740
2764
  }) {
2765
+ if (typeof model === "string" || model.specificationVersion !== "v1") {
2766
+ throw new UnsupportedModelVersionError();
2767
+ }
2741
2768
  validateObjectGenerationInput({
2742
2769
  output,
2743
2770
  mode,
@@ -3073,7 +3100,7 @@ async function generateObject({
3073
3100
  try {
3074
3101
  object2 = processResult(result);
3075
3102
  } catch (error) {
3076
- if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider12.JSONParseError.isInstance(error.cause) || import_provider12.TypeValidationError.isInstance(error.cause))) {
3103
+ if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider13.JSONParseError.isInstance(error.cause) || import_provider13.TypeValidationError.isInstance(error.cause))) {
3077
3104
  const repairedText = await repairText({
3078
3105
  text: result,
3079
3106
  error: error.cause
@@ -3311,6 +3338,9 @@ function streamObject({
3311
3338
  } = {},
3312
3339
  ...settings
3313
3340
  }) {
3341
+ if (typeof model === "string" || model.specificationVersion !== "v1") {
3342
+ throw new UnsupportedModelVersionError();
3343
+ }
3314
3344
  validateObjectGenerationInput({
3315
3345
  output,
3316
3346
  mode,
@@ -3862,36 +3892,36 @@ var DefaultStreamObjectResult = class {
3862
3892
  var import_provider_utils10 = require("@ai-sdk/provider-utils");
3863
3893
 
3864
3894
  // errors/no-output-specified-error.ts
3865
- var import_provider13 = require("@ai-sdk/provider");
3895
+ var import_provider14 = require("@ai-sdk/provider");
3866
3896
  var name9 = "AI_NoOutputSpecifiedError";
3867
3897
  var marker9 = `vercel.ai.error.${name9}`;
3868
3898
  var symbol9 = Symbol.for(marker9);
3869
3899
  var _a9;
3870
- var NoOutputSpecifiedError = class extends import_provider13.AISDKError {
3900
+ var NoOutputSpecifiedError = class extends import_provider14.AISDKError {
3871
3901
  // used in isInstance
3872
3902
  constructor({ message = "No output specified." } = {}) {
3873
3903
  super({ name: name9, message });
3874
3904
  this[_a9] = true;
3875
3905
  }
3876
3906
  static isInstance(error) {
3877
- return import_provider13.AISDKError.hasMarker(error, marker9);
3907
+ return import_provider14.AISDKError.hasMarker(error, marker9);
3878
3908
  }
3879
3909
  };
3880
3910
  _a9 = symbol9;
3881
3911
 
3882
3912
  // errors/tool-execution-error.ts
3883
- var import_provider14 = require("@ai-sdk/provider");
3913
+ var import_provider15 = require("@ai-sdk/provider");
3884
3914
  var name10 = "AI_ToolExecutionError";
3885
3915
  var marker10 = `vercel.ai.error.${name10}`;
3886
3916
  var symbol10 = Symbol.for(marker10);
3887
3917
  var _a10;
3888
- var ToolExecutionError = class extends import_provider14.AISDKError {
3918
+ var ToolExecutionError = class extends import_provider15.AISDKError {
3889
3919
  constructor({
3890
3920
  toolArgs,
3891
3921
  toolName,
3892
3922
  toolCallId,
3893
3923
  cause,
3894
- message = `Error executing tool ${toolName}: ${(0, import_provider14.getErrorMessage)(cause)}`
3924
+ message = `Error executing tool ${toolName}: ${(0, import_provider15.getErrorMessage)(cause)}`
3895
3925
  }) {
3896
3926
  super({ name: name10, message, cause });
3897
3927
  this[_a10] = true;
@@ -3900,7 +3930,7 @@ var ToolExecutionError = class extends import_provider14.AISDKError {
3900
3930
  this.toolCallId = toolCallId;
3901
3931
  }
3902
3932
  static isInstance(error) {
3903
- return import_provider14.AISDKError.hasMarker(error, marker10);
3933
+ return import_provider15.AISDKError.hasMarker(error, marker10);
3904
3934
  }
3905
3935
  };
3906
3936
  _a10 = symbol10;
@@ -3975,17 +4005,17 @@ var import_provider_utils9 = require("@ai-sdk/provider-utils");
3975
4005
  var import_ui_utils5 = require("@ai-sdk/ui-utils");
3976
4006
 
3977
4007
  // errors/invalid-tool-arguments-error.ts
3978
- var import_provider15 = require("@ai-sdk/provider");
4008
+ var import_provider16 = require("@ai-sdk/provider");
3979
4009
  var name11 = "AI_InvalidToolArgumentsError";
3980
4010
  var marker11 = `vercel.ai.error.${name11}`;
3981
4011
  var symbol11 = Symbol.for(marker11);
3982
4012
  var _a11;
3983
- var InvalidToolArgumentsError = class extends import_provider15.AISDKError {
4013
+ var InvalidToolArgumentsError = class extends import_provider16.AISDKError {
3984
4014
  constructor({
3985
4015
  toolArgs,
3986
4016
  toolName,
3987
4017
  cause,
3988
- message = `Invalid arguments for tool ${toolName}: ${(0, import_provider15.getErrorMessage)(
4018
+ message = `Invalid arguments for tool ${toolName}: ${(0, import_provider16.getErrorMessage)(
3989
4019
  cause
3990
4020
  )}`
3991
4021
  }) {
@@ -3995,18 +4025,18 @@ var InvalidToolArgumentsError = class extends import_provider15.AISDKError {
3995
4025
  this.toolName = toolName;
3996
4026
  }
3997
4027
  static isInstance(error) {
3998
- return import_provider15.AISDKError.hasMarker(error, marker11);
4028
+ return import_provider16.AISDKError.hasMarker(error, marker11);
3999
4029
  }
4000
4030
  };
4001
4031
  _a11 = symbol11;
4002
4032
 
4003
4033
  // errors/no-such-tool-error.ts
4004
- var import_provider16 = require("@ai-sdk/provider");
4034
+ var import_provider17 = require("@ai-sdk/provider");
4005
4035
  var name12 = "AI_NoSuchToolError";
4006
4036
  var marker12 = `vercel.ai.error.${name12}`;
4007
4037
  var symbol12 = Symbol.for(marker12);
4008
4038
  var _a12;
4009
- var NoSuchToolError = class extends import_provider16.AISDKError {
4039
+ var NoSuchToolError = class extends import_provider17.AISDKError {
4010
4040
  constructor({
4011
4041
  toolName,
4012
4042
  availableTools = void 0,
@@ -4018,29 +4048,29 @@ var NoSuchToolError = class extends import_provider16.AISDKError {
4018
4048
  this.availableTools = availableTools;
4019
4049
  }
4020
4050
  static isInstance(error) {
4021
- return import_provider16.AISDKError.hasMarker(error, marker12);
4051
+ return import_provider17.AISDKError.hasMarker(error, marker12);
4022
4052
  }
4023
4053
  };
4024
4054
  _a12 = symbol12;
4025
4055
 
4026
4056
  // errors/tool-call-repair-error.ts
4027
- var import_provider17 = require("@ai-sdk/provider");
4057
+ var import_provider18 = require("@ai-sdk/provider");
4028
4058
  var name13 = "AI_ToolCallRepairError";
4029
4059
  var marker13 = `vercel.ai.error.${name13}`;
4030
4060
  var symbol13 = Symbol.for(marker13);
4031
4061
  var _a13;
4032
- var ToolCallRepairError = class extends import_provider17.AISDKError {
4062
+ var ToolCallRepairError = class extends import_provider18.AISDKError {
4033
4063
  constructor({
4034
4064
  cause,
4035
4065
  originalError,
4036
- message = `Error repairing tool call: ${(0, import_provider17.getErrorMessage)(cause)}`
4066
+ message = `Error repairing tool call: ${(0, import_provider18.getErrorMessage)(cause)}`
4037
4067
  }) {
4038
4068
  super({ name: name13, message, cause });
4039
4069
  this[_a13] = true;
4040
4070
  this.originalError = originalError;
4041
4071
  }
4042
4072
  static isInstance(error) {
4043
- return import_provider17.AISDKError.hasMarker(error, marker13);
4073
+ return import_provider18.AISDKError.hasMarker(error, marker13);
4044
4074
  }
4045
4075
  };
4046
4076
  _a13 = symbol13;
@@ -4224,6 +4254,9 @@ async function generateText({
4224
4254
  ...settings
4225
4255
  }) {
4226
4256
  var _a17;
4257
+ if (typeof model === "string" || model.specificationVersion !== "v1") {
4258
+ throw new UnsupportedModelVersionError();
4259
+ }
4227
4260
  if (maxSteps < 1) {
4228
4261
  throw new InvalidArgumentError({
4229
4262
  parameter: "maxSteps",
@@ -4619,6 +4652,7 @@ async function executeTools({
4619
4652
  }
4620
4653
  return result2;
4621
4654
  } catch (error) {
4655
+ recordErrorOnSpan(span, error);
4622
4656
  throw new ToolExecutionError({
4623
4657
  toolCallId,
4624
4658
  toolName,
@@ -4689,15 +4723,15 @@ var import_provider_utils11 = require("@ai-sdk/provider-utils");
4689
4723
  var import_ui_utils6 = require("@ai-sdk/ui-utils");
4690
4724
 
4691
4725
  // errors/index.ts
4692
- var import_provider20 = require("@ai-sdk/provider");
4726
+ var import_provider21 = require("@ai-sdk/provider");
4693
4727
 
4694
4728
  // errors/invalid-stream-part-error.ts
4695
- var import_provider18 = require("@ai-sdk/provider");
4729
+ var import_provider19 = require("@ai-sdk/provider");
4696
4730
  var name14 = "AI_InvalidStreamPartError";
4697
4731
  var marker14 = `vercel.ai.error.${name14}`;
4698
4732
  var symbol14 = Symbol.for(marker14);
4699
4733
  var _a14;
4700
- var InvalidStreamPartError = class extends import_provider18.AISDKError {
4734
+ var InvalidStreamPartError = class extends import_provider19.AISDKError {
4701
4735
  constructor({
4702
4736
  chunk,
4703
4737
  message
@@ -4707,18 +4741,18 @@ var InvalidStreamPartError = class extends import_provider18.AISDKError {
4707
4741
  this.chunk = chunk;
4708
4742
  }
4709
4743
  static isInstance(error) {
4710
- return import_provider18.AISDKError.hasMarker(error, marker14);
4744
+ return import_provider19.AISDKError.hasMarker(error, marker14);
4711
4745
  }
4712
4746
  };
4713
4747
  _a14 = symbol14;
4714
4748
 
4715
4749
  // errors/mcp-client-error.ts
4716
- var import_provider19 = require("@ai-sdk/provider");
4750
+ var import_provider20 = require("@ai-sdk/provider");
4717
4751
  var name15 = "AI_MCPClientError";
4718
4752
  var marker15 = `vercel.ai.error.${name15}`;
4719
4753
  var symbol15 = Symbol.for(marker15);
4720
4754
  var _a15;
4721
- var MCPClientError = class extends import_provider19.AISDKError {
4755
+ var MCPClientError = class extends import_provider20.AISDKError {
4722
4756
  constructor({
4723
4757
  name: name17 = "MCPClientError",
4724
4758
  message,
@@ -4728,7 +4762,7 @@ var MCPClientError = class extends import_provider19.AISDKError {
4728
4762
  this[_a15] = true;
4729
4763
  }
4730
4764
  static isInstance(error) {
4731
- return import_provider19.AISDKError.hasMarker(error, marker15);
4765
+ return import_provider20.AISDKError.hasMarker(error, marker15);
4732
4766
  }
4733
4767
  };
4734
4768
  _a15 = symbol15;
@@ -4814,7 +4848,7 @@ var object = ({
4814
4848
 
4815
4849
  // core/generate-text/smooth-stream.ts
4816
4850
  var import_provider_utils12 = require("@ai-sdk/provider-utils");
4817
- var import_provider21 = require("@ai-sdk/provider");
4851
+ var import_provider22 = require("@ai-sdk/provider");
4818
4852
  var CHUNKING_REGEXPS = {
4819
4853
  word: /\S+\s+/m,
4820
4854
  line: /\n+/m
@@ -4844,7 +4878,7 @@ function smoothStream({
4844
4878
  } else {
4845
4879
  const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
4846
4880
  if (chunkingRegex == null) {
4847
- throw new import_provider21.InvalidArgumentError({
4881
+ throw new import_provider22.InvalidArgumentError({
4848
4882
  argument: "chunking",
4849
4883
  message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
4850
4884
  });
@@ -4882,7 +4916,7 @@ function smoothStream({
4882
4916
  }
4883
4917
 
4884
4918
  // core/generate-text/stream-text.ts
4885
- var import_provider22 = require("@ai-sdk/provider");
4919
+ var import_provider23 = require("@ai-sdk/provider");
4886
4920
  var import_provider_utils13 = require("@ai-sdk/provider-utils");
4887
4921
  var import_ui_utils8 = require("@ai-sdk/ui-utils");
4888
4922
 
@@ -5130,6 +5164,7 @@ function runToolsTransformation({
5130
5164
  }
5131
5165
  },
5132
5166
  (error) => {
5167
+ recordErrorOnSpan(span, error);
5133
5168
  toolResultsStreamController.enqueue({
5134
5169
  type: "error",
5135
5170
  error: new ToolExecutionError({
@@ -5243,6 +5278,9 @@ function streamText({
5243
5278
  } = {},
5244
5279
  ...settings
5245
5280
  }) {
5281
+ if (typeof model === "string" || model.specificationVersion !== "v1") {
5282
+ throw new UnsupportedModelVersionError();
5283
+ }
5246
5284
  return new DefaultStreamTextResult({
5247
5285
  model,
5248
5286
  telemetry,
@@ -5420,7 +5458,7 @@ var DefaultStreamTextResult = class {
5420
5458
  }
5421
5459
  if (part.type === "reasoning-signature") {
5422
5460
  if (activeReasoningText == null) {
5423
- throw new import_provider22.AISDKError({
5461
+ throw new import_provider23.AISDKError({
5424
5462
  name: "InvalidStreamPart",
5425
5463
  message: "reasoning-signature without reasoning"
5426
5464
  });
@@ -6435,8 +6473,8 @@ var DefaultStreamTextResult = class {
6435
6473
  };
6436
6474
 
6437
6475
  // errors/no-speech-generated-error.ts
6438
- var import_provider23 = require("@ai-sdk/provider");
6439
- var NoSpeechGeneratedError = class extends import_provider23.AISDKError {
6476
+ var import_provider24 = require("@ai-sdk/provider");
6477
+ var NoSpeechGeneratedError = class extends import_provider24.AISDKError {
6440
6478
  constructor(options) {
6441
6479
  super({
6442
6480
  name: "AI_NoSpeechGeneratedError",
@@ -6485,6 +6523,9 @@ async function generateSpeech({
6485
6523
  headers
6486
6524
  }) {
6487
6525
  var _a17;
6526
+ if (typeof model === "string" || model.specificationVersion !== "v1") {
6527
+ throw new UnsupportedModelVersionError();
6528
+ }
6488
6529
  const { retry } = prepareRetries({ maxRetries: maxRetriesArg });
6489
6530
  const result = await retry(
6490
6531
  () => model.doGenerate({
@@ -6525,8 +6566,8 @@ var DefaultSpeechResult = class {
6525
6566
  };
6526
6567
 
6527
6568
  // errors/no-transcript-generated-error.ts
6528
- var import_provider24 = require("@ai-sdk/provider");
6529
- var NoTranscriptGeneratedError = class extends import_provider24.AISDKError {
6569
+ var import_provider25 = require("@ai-sdk/provider");
6570
+ var NoTranscriptGeneratedError = class extends import_provider25.AISDKError {
6530
6571
  constructor(options) {
6531
6572
  super({
6532
6573
  name: "AI_NoTranscriptGeneratedError",
@@ -6545,6 +6586,9 @@ async function transcribe({
6545
6586
  abortSignal,
6546
6587
  headers
6547
6588
  }) {
6589
+ if (typeof model === "string" || model.specificationVersion !== "v1") {
6590
+ throw new UnsupportedModelVersionError();
6591
+ }
6548
6592
  const { retry } = prepareRetries({ maxRetries: maxRetriesArg });
6549
6593
  const audioData = audio instanceof URL ? (await download({ url: audio })).data : convertDataContentToUint8Array(audio);
6550
6594
  const result = await retry(
@@ -6903,7 +6947,7 @@ function appendClientMessage({
6903
6947
 
6904
6948
  // core/prompt/append-response-messages.ts
6905
6949
  var import_ui_utils9 = require("@ai-sdk/ui-utils");
6906
- var import_provider25 = require("@ai-sdk/provider");
6950
+ var import_provider26 = require("@ai-sdk/provider");
6907
6951
  function appendResponseMessages({
6908
6952
  messages,
6909
6953
  responseMessages,
@@ -6986,7 +7030,7 @@ function appendResponseMessages({
6986
7030
  break;
6987
7031
  case "file":
6988
7032
  if (part.data instanceof URL) {
6989
- throw new import_provider25.AISDKError({
7033
+ throw new import_provider26.AISDKError({
6990
7034
  name: "InvalidAssistantFileData",
6991
7035
  message: "File data cannot be a URL"
6992
7036
  });
@@ -7080,7 +7124,7 @@ function appendResponseMessages({
7080
7124
  }
7081
7125
 
7082
7126
  // core/registry/custom-provider.ts
7083
- var import_provider26 = require("@ai-sdk/provider");
7127
+ var import_provider27 = require("@ai-sdk/provider");
7084
7128
  function customProvider({
7085
7129
  languageModels,
7086
7130
  textEmbeddingModels,
@@ -7095,7 +7139,7 @@ function customProvider({
7095
7139
  if (fallbackProvider) {
7096
7140
  return fallbackProvider.languageModel(modelId);
7097
7141
  }
7098
- throw new import_provider26.NoSuchModelError({ modelId, modelType: "languageModel" });
7142
+ throw new import_provider27.NoSuchModelError({ modelId, modelType: "languageModel" });
7099
7143
  },
7100
7144
  textEmbeddingModel(modelId) {
7101
7145
  if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
@@ -7104,7 +7148,7 @@ function customProvider({
7104
7148
  if (fallbackProvider) {
7105
7149
  return fallbackProvider.textEmbeddingModel(modelId);
7106
7150
  }
7107
- throw new import_provider26.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
7151
+ throw new import_provider27.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
7108
7152
  },
7109
7153
  imageModel(modelId) {
7110
7154
  if (imageModels != null && modelId in imageModels) {
@@ -7113,19 +7157,19 @@ function customProvider({
7113
7157
  if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
7114
7158
  return fallbackProvider.imageModel(modelId);
7115
7159
  }
7116
- throw new import_provider26.NoSuchModelError({ modelId, modelType: "imageModel" });
7160
+ throw new import_provider27.NoSuchModelError({ modelId, modelType: "imageModel" });
7117
7161
  }
7118
7162
  };
7119
7163
  }
7120
7164
  var experimental_customProvider = customProvider;
7121
7165
 
7122
7166
  // core/registry/no-such-provider-error.ts
7123
- var import_provider27 = require("@ai-sdk/provider");
7167
+ var import_provider28 = require("@ai-sdk/provider");
7124
7168
  var name16 = "AI_NoSuchProviderError";
7125
7169
  var marker16 = `vercel.ai.error.${name16}`;
7126
7170
  var symbol16 = Symbol.for(marker16);
7127
7171
  var _a16;
7128
- var NoSuchProviderError = class extends import_provider27.NoSuchModelError {
7172
+ var NoSuchProviderError = class extends import_provider28.NoSuchModelError {
7129
7173
  constructor({
7130
7174
  modelId,
7131
7175
  modelType,
@@ -7139,13 +7183,13 @@ var NoSuchProviderError = class extends import_provider27.NoSuchModelError {
7139
7183
  this.availableProviders = availableProviders;
7140
7184
  }
7141
7185
  static isInstance(error) {
7142
- return import_provider27.AISDKError.hasMarker(error, marker16);
7186
+ return import_provider28.AISDKError.hasMarker(error, marker16);
7143
7187
  }
7144
7188
  };
7145
7189
  _a16 = symbol16;
7146
7190
 
7147
7191
  // core/registry/provider-registry.ts
7148
- var import_provider28 = require("@ai-sdk/provider");
7192
+ var import_provider29 = require("@ai-sdk/provider");
7149
7193
  function createProviderRegistry(providers, {
7150
7194
  separator = ":"
7151
7195
  } = {}) {
@@ -7184,7 +7228,7 @@ var DefaultProviderRegistry = class {
7184
7228
  splitId(id, modelType) {
7185
7229
  const index = id.indexOf(this.separator);
7186
7230
  if (index === -1) {
7187
- throw new import_provider28.NoSuchModelError({
7231
+ throw new import_provider29.NoSuchModelError({
7188
7232
  modelId: id,
7189
7233
  modelType,
7190
7234
  message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
@@ -7197,7 +7241,7 @@ var DefaultProviderRegistry = class {
7197
7241
  const [providerId, modelId] = this.splitId(id, "languageModel");
7198
7242
  const model = (_b = (_a17 = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a17, modelId);
7199
7243
  if (model == null) {
7200
- throw new import_provider28.NoSuchModelError({ modelId: id, modelType: "languageModel" });
7244
+ throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "languageModel" });
7201
7245
  }
7202
7246
  return model;
7203
7247
  }
@@ -7207,7 +7251,7 @@ var DefaultProviderRegistry = class {
7207
7251
  const provider = this.getProvider(providerId);
7208
7252
  const model = (_a17 = provider.textEmbeddingModel) == null ? void 0 : _a17.call(provider, modelId);
7209
7253
  if (model == null) {
7210
- throw new import_provider28.NoSuchModelError({
7254
+ throw new import_provider29.NoSuchModelError({
7211
7255
  modelId: id,
7212
7256
  modelType: "textEmbeddingModel"
7213
7257
  });
@@ -7220,7 +7264,7 @@ var DefaultProviderRegistry = class {
7220
7264
  const provider = this.getProvider(providerId);
7221
7265
  const model = (_a17 = provider.imageModel) == null ? void 0 : _a17.call(provider, modelId);
7222
7266
  if (model == null) {
7223
- throw new import_provider28.NoSuchModelError({ modelId: id, modelType: "imageModel" });
7267
+ throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "imageModel" });
7224
7268
  }
7225
7269
  return model;
7226
7270
  }
@@ -8215,6 +8259,7 @@ var StreamData = class {
8215
8259
  ToolExecutionError,
8216
8260
  TypeValidationError,
8217
8261
  UnsupportedFunctionalityError,
8262
+ UnsupportedModelVersionError,
8218
8263
  appendClientMessage,
8219
8264
  appendResponseMessages,
8220
8265
  convertToCoreMessages,