ai 5.0.284 → 5.0.285

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.
@@ -4,8 +4,8 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
6
  var __export = (target, all) => {
7
- for (var name4 in all)
8
- __defProp(target, name4, { get: all[name4], enumerable: true });
7
+ for (var name5 in all)
8
+ __defProp(target, name5, { get: all[name5], enumerable: true });
9
9
  };
10
10
  var __copyProps = (to, from, except, desc) => {
11
11
  if (from && typeof from === "object" || typeof from === "function") {
@@ -163,7 +163,7 @@ function detectMediaType({
163
163
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
164
164
 
165
165
  // src/version.ts
166
- var VERSION = true ? "5.0.284" : "0.0.0-test";
166
+ var VERSION = true ? "5.0.285" : "0.0.0-test";
167
167
 
168
168
  // src/util/download/download.ts
169
169
  var download = async ({
@@ -171,7 +171,7 @@ var download = async ({
171
171
  maxBytes,
172
172
  abortSignal
173
173
  }) => {
174
- var _a4;
174
+ var _a5;
175
175
  const urlText = url.toString();
176
176
  try {
177
177
  const headers = (0, import_provider_utils2.withUserAgentSuffix)(
@@ -199,7 +199,7 @@ var download = async ({
199
199
  });
200
200
  return {
201
201
  data,
202
- mediaType: (_a4 = response.headers.get("content-type")) != null ? _a4 : void 0
202
+ mediaType: (_a5 = response.headers.get("content-type")) != null ? _a5 : void 0
203
203
  };
204
204
  } catch (error) {
205
205
  if (import_provider_utils2.DownloadError.isInstance(error)) {
@@ -217,10 +217,32 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
217
217
  );
218
218
 
219
219
  // src/prompt/data-content.ts
220
- var import_provider = require("@ai-sdk/provider");
220
+ var import_provider2 = require("@ai-sdk/provider");
221
221
  var import_provider_utils3 = require("@ai-sdk/provider-utils");
222
222
  var import_v4 = require("zod/v4");
223
223
 
224
+ // src/prompt/invalid-data-content-error.ts
225
+ var import_provider = require("@ai-sdk/provider");
226
+ var name = "AI_InvalidDataContentError";
227
+ var marker = `vercel.ai.error.${name}`;
228
+ var symbol = Symbol.for(marker);
229
+ var _a;
230
+ var InvalidDataContentError = class extends import_provider.AISDKError {
231
+ constructor({
232
+ content,
233
+ cause,
234
+ message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
235
+ }) {
236
+ super({ name, message, cause });
237
+ this[_a] = true;
238
+ this.content = content;
239
+ }
240
+ static isInstance(error) {
241
+ return import_provider.AISDKError.hasMarker(error, marker);
242
+ }
243
+ };
244
+ _a = symbol;
245
+
224
246
  // src/prompt/split-data-url.ts
225
247
  function splitDataUrl(dataUrl) {
226
248
  try {
@@ -240,22 +262,25 @@ function splitDataUrl(dataUrl) {
240
262
  // src/prompt/data-content.ts
241
263
  var dataContentSchema = import_v4.z.union([
242
264
  import_v4.z.string(),
243
- import_v4.z.instanceof(Uint8Array),
244
- import_v4.z.instanceof(ArrayBuffer),
265
+ import_v4.z.custom(import_provider_utils3.isUint8Array, { message: "Must be a Uint8Array" }),
266
+ import_v4.z.custom(import_provider_utils3.isArrayBuffer, { message: "Must be an ArrayBuffer" }),
245
267
  import_v4.z.custom(
246
268
  // Buffer might not be available in some environments such as CloudFlare:
247
269
  (value) => {
248
- var _a4, _b;
249
- return (_b = (_a4 = globalThis.Buffer) == null ? void 0 : _a4.isBuffer(value)) != null ? _b : false;
270
+ var _a5, _b;
271
+ return (_b = (_a5 = globalThis.Buffer) == null ? void 0 : _a5.isBuffer(value)) != null ? _b : false;
250
272
  },
251
273
  { message: "Must be a Buffer" }
252
274
  )
253
275
  ]);
254
276
  function convertToLanguageModelV2DataContent(content) {
255
- if (content instanceof Uint8Array) {
256
- return { data: content, mediaType: void 0 };
277
+ if ((0, import_provider_utils3.isUint8Array)(content)) {
278
+ return {
279
+ data: convertDataContentToUint8Array(content),
280
+ mediaType: void 0
281
+ };
257
282
  }
258
- if (content instanceof ArrayBuffer) {
283
+ if ((0, import_provider_utils3.isArrayBuffer)(content)) {
259
284
  return { data: new Uint8Array(content), mediaType: void 0 };
260
285
  }
261
286
  if (typeof content === "string") {
@@ -269,7 +294,7 @@ function convertToLanguageModelV2DataContent(content) {
269
294
  content.toString()
270
295
  );
271
296
  if (dataUrlMediaType == null || base64Content == null) {
272
- throw new import_provider.AISDKError({
297
+ throw new import_provider2.AISDKError({
273
298
  name: "InvalidDataContentError",
274
299
  message: `Invalid data URL format in content ${content.toString()}`
275
300
  });
@@ -278,27 +303,51 @@ function convertToLanguageModelV2DataContent(content) {
278
303
  }
279
304
  return { data: content, mediaType: void 0 };
280
305
  }
306
+ function convertDataContentToUint8Array(content) {
307
+ if ((0, import_provider_utils3.isUint8Array)(content)) {
308
+ if (content instanceof Uint8Array) {
309
+ return content;
310
+ }
311
+ const { buffer, byteOffset, byteLength } = content;
312
+ return new Uint8Array(buffer, byteOffset, byteLength);
313
+ }
314
+ if (typeof content === "string") {
315
+ try {
316
+ return (0, import_provider_utils3.convertBase64ToUint8Array)(content);
317
+ } catch (error) {
318
+ throw new InvalidDataContentError({
319
+ message: "Invalid data content. Content string is not a base64-encoded media.",
320
+ content,
321
+ cause: error
322
+ });
323
+ }
324
+ }
325
+ if ((0, import_provider_utils3.isArrayBuffer)(content)) {
326
+ return new Uint8Array(content);
327
+ }
328
+ throw new InvalidDataContentError({ content });
329
+ }
281
330
 
282
331
  // src/prompt/invalid-message-role-error.ts
283
- var import_provider2 = require("@ai-sdk/provider");
284
- var name = "AI_InvalidMessageRoleError";
285
- var marker = `vercel.ai.error.${name}`;
286
- var symbol = Symbol.for(marker);
287
- var _a;
288
- var InvalidMessageRoleError = class extends import_provider2.AISDKError {
332
+ var import_provider3 = require("@ai-sdk/provider");
333
+ var name2 = "AI_InvalidMessageRoleError";
334
+ var marker2 = `vercel.ai.error.${name2}`;
335
+ var symbol2 = Symbol.for(marker2);
336
+ var _a2;
337
+ var InvalidMessageRoleError = class extends import_provider3.AISDKError {
289
338
  constructor({
290
339
  role,
291
340
  message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
292
341
  }) {
293
- super({ name, message });
294
- this[_a] = true;
342
+ super({ name: name2, message });
343
+ this[_a2] = true;
295
344
  this.role = role;
296
345
  }
297
346
  static isInstance(error) {
298
- return import_provider2.AISDKError.hasMarker(error, marker);
347
+ return import_provider3.AISDKError.hasMarker(error, marker2);
299
348
  }
300
349
  };
301
- _a = symbol;
350
+ _a2 = symbol2;
302
351
 
303
352
  // src/prompt/convert-to-language-model-prompt.ts
304
353
  async function convertToLanguageModelPrompt({
@@ -438,8 +487,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
438
487
  ).flat().filter(
439
488
  (part) => part.type === "image" || part.type === "file"
440
489
  ).map((part) => {
441
- var _a4;
442
- const mediaType = (_a4 = part.mediaType) != null ? _a4 : part.type === "image" ? "image/*" : void 0;
490
+ var _a5;
491
+ const mediaType = (_a5 = part.mediaType) != null ? _a5 : part.type === "image" ? "image/*" : void 0;
443
492
  let data = part.type === "image" ? part.image : part.data;
444
493
  if (typeof data === "string") {
445
494
  try {
@@ -472,7 +521,7 @@ function getOriginalUrl(originalData, convertedData) {
472
521
  return typeof originalData === "string" && convertedData instanceof URL && convertedData.toString() !== originalData ? originalData : void 0;
473
522
  }
474
523
  function convertPartToLanguageModelPart(part, downloadedAssets) {
475
- var _a4;
524
+ var _a5;
476
525
  if (part.type === "text") {
477
526
  return {
478
527
  type: "text",
@@ -507,7 +556,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
507
556
  switch (type) {
508
557
  case "image": {
509
558
  if (data instanceof Uint8Array || typeof data === "string") {
510
- mediaType = (_a4 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a4 : mediaType;
559
+ mediaType = (_a5 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a5 : mediaType;
511
560
  }
512
561
  return {
513
562
  type: "file",
@@ -556,10 +605,10 @@ function prepareToolsAndToolChoice({
556
605
  };
557
606
  }
558
607
  const filteredTools = activeTools != null ? Object.entries(tools).filter(
559
- ([name4]) => activeTools.includes(name4)
608
+ ([name5]) => activeTools.includes(name5)
560
609
  ) : Object.entries(tools);
561
610
  return {
562
- tools: filteredTools.map(([name4, tool]) => {
611
+ tools: filteredTools.map(([name5, tool]) => {
563
612
  const toolType = tool.type;
564
613
  switch (toolType) {
565
614
  case void 0:
@@ -567,7 +616,7 @@ function prepareToolsAndToolChoice({
567
616
  case "function":
568
617
  return {
569
618
  type: "function",
570
- name: name4,
619
+ name: name5,
571
620
  description: tool.description,
572
621
  inputSchema: (0, import_provider_utils5.asSchema)(tool.inputSchema).jsonSchema,
573
622
  providerOptions: tool.providerOptions
@@ -575,7 +624,7 @@ function prepareToolsAndToolChoice({
575
624
  case "provider-defined":
576
625
  return {
577
626
  type: "provider-defined",
578
- name: name4,
627
+ name: name5,
579
628
  id: tool.id,
580
629
  args: tool.args
581
630
  };
@@ -590,7 +639,7 @@ function prepareToolsAndToolChoice({
590
639
  }
591
640
 
592
641
  // src/prompt/standardize-prompt.ts
593
- var import_provider3 = require("@ai-sdk/provider");
642
+ var import_provider4 = require("@ai-sdk/provider");
594
643
  var import_provider_utils6 = require("@ai-sdk/provider-utils");
595
644
  var import_v46 = require("zod/v4");
596
645
 
@@ -746,19 +795,19 @@ async function standardizePrompt({
746
795
  messages
747
796
  }) {
748
797
  if (prompt == null && messages == null) {
749
- throw new import_provider3.InvalidPromptError({
798
+ throw new import_provider4.InvalidPromptError({
750
799
  prompt,
751
800
  message: "prompt or messages must be defined"
752
801
  });
753
802
  }
754
803
  if (prompt != null && messages != null) {
755
- throw new import_provider3.InvalidPromptError({
804
+ throw new import_provider4.InvalidPromptError({
756
805
  prompt,
757
806
  message: "prompt and messages cannot be defined at the same time"
758
807
  });
759
808
  }
760
809
  if (system != null && typeof system !== "string") {
761
- throw new import_provider3.InvalidPromptError({
810
+ throw new import_provider4.InvalidPromptError({
762
811
  prompt,
763
812
  message: "system must be a string"
764
813
  });
@@ -768,20 +817,20 @@ async function standardizePrompt({
768
817
  } else if (prompt != null && Array.isArray(prompt)) {
769
818
  messages = prompt;
770
819
  } else if (messages == null) {
771
- throw new import_provider3.InvalidPromptError({
820
+ throw new import_provider4.InvalidPromptError({
772
821
  prompt,
773
822
  message: "prompt or messages must be defined"
774
823
  });
775
824
  }
776
825
  if (messages.length === 0) {
777
- throw new import_provider3.InvalidPromptError({
826
+ throw new import_provider4.InvalidPromptError({
778
827
  prompt,
779
828
  message: "messages must not be empty"
780
829
  });
781
830
  }
782
831
  if (messages.some((message) => message.role === "system")) {
783
832
  if (allowSystemInMessages === false) {
784
- throw new import_provider3.InvalidPromptError({
833
+ throw new import_provider4.InvalidPromptError({
785
834
  prompt,
786
835
  message: "System messages are not allowed in the prompt or messages fields. Use the system option instead."
787
836
  });
@@ -797,7 +846,7 @@ async function standardizePrompt({
797
846
  schema: import_v46.z.array(modelMessageSchema)
798
847
  });
799
848
  if (!validationResult.success) {
800
- throw new import_provider3.InvalidPromptError({
849
+ throw new import_provider4.InvalidPromptError({
801
850
  prompt,
802
851
  message: "The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",
803
852
  cause: validationResult.error
@@ -807,30 +856,30 @@ async function standardizePrompt({
807
856
  }
808
857
 
809
858
  // src/error/invalid-argument-error.ts
810
- var import_provider4 = require("@ai-sdk/provider");
811
- var name2 = "AI_InvalidArgumentError";
812
- var marker2 = `vercel.ai.error.${name2}`;
813
- var symbol2 = Symbol.for(marker2);
814
- var _a2;
815
- var InvalidArgumentError = class extends import_provider4.AISDKError {
859
+ var import_provider5 = require("@ai-sdk/provider");
860
+ var name3 = "AI_InvalidArgumentError";
861
+ var marker3 = `vercel.ai.error.${name3}`;
862
+ var symbol3 = Symbol.for(marker3);
863
+ var _a3;
864
+ var InvalidArgumentError = class extends import_provider5.AISDKError {
816
865
  constructor({
817
866
  parameter,
818
867
  value,
819
868
  message
820
869
  }) {
821
870
  super({
822
- name: name2,
871
+ name: name3,
823
872
  message: `Invalid argument for parameter ${parameter}: ${message}`
824
873
  });
825
- this[_a2] = true;
874
+ this[_a3] = true;
826
875
  this.parameter = parameter;
827
876
  this.value = value;
828
877
  }
829
878
  static isInstance(error) {
830
- return import_provider4.AISDKError.hasMarker(error, marker2);
879
+ return import_provider5.AISDKError.hasMarker(error, marker3);
831
880
  }
832
881
  };
833
- _a2 = symbol2;
882
+ _a3 = symbol3;
834
883
 
835
884
  // src/prompt/prepare-call-settings.ts
836
885
  function prepareCallSettings({
@@ -926,40 +975,40 @@ function prepareCallSettings({
926
975
  }
927
976
 
928
977
  // src/util/retry-with-exponential-backoff.ts
929
- var import_provider6 = require("@ai-sdk/provider");
978
+ var import_provider7 = require("@ai-sdk/provider");
930
979
  var import_gateway = require("@ai-sdk/gateway");
931
980
  var import_provider_utils7 = require("@ai-sdk/provider-utils");
932
981
 
933
982
  // src/util/retry-error.ts
934
- var import_provider5 = require("@ai-sdk/provider");
935
- var name3 = "AI_RetryError";
936
- var marker3 = `vercel.ai.error.${name3}`;
937
- var symbol3 = Symbol.for(marker3);
938
- var _a3;
939
- var RetryError = class extends import_provider5.AISDKError {
983
+ var import_provider6 = require("@ai-sdk/provider");
984
+ var name4 = "AI_RetryError";
985
+ var marker4 = `vercel.ai.error.${name4}`;
986
+ var symbol4 = Symbol.for(marker4);
987
+ var _a4;
988
+ var RetryError = class extends import_provider6.AISDKError {
940
989
  constructor({
941
990
  message,
942
991
  reason,
943
992
  errors
944
993
  }) {
945
- super({ name: name3, message });
946
- this[_a3] = true;
994
+ super({ name: name4, message });
995
+ this[_a4] = true;
947
996
  this.reason = reason;
948
997
  this.errors = errors;
949
998
  this.lastError = errors[errors.length - 1];
950
999
  }
951
1000
  static isInstance(error) {
952
- return import_provider5.AISDKError.hasMarker(error, marker3);
1001
+ return import_provider6.AISDKError.hasMarker(error, marker4);
953
1002
  }
954
1003
  };
955
- _a3 = symbol3;
1004
+ _a4 = symbol4;
956
1005
 
957
1006
  // src/util/retry-with-exponential-backoff.ts
958
1007
  function getRetryDelayInMs({
959
1008
  error,
960
1009
  exponentialBackoffDelay
961
1010
  }) {
962
- const headers = import_provider6.APICallError.isInstance(error) ? error.responseHeaders : import_provider6.APICallError.isInstance(error.cause) ? error.cause.responseHeaders : void 0;
1011
+ const headers = import_provider7.APICallError.isInstance(error) ? error.responseHeaders : import_provider7.APICallError.isInstance(error.cause) ? error.cause.responseHeaders : void 0;
963
1012
  if (!headers)
964
1013
  return exponentialBackoffDelay;
965
1014
  let ms;
@@ -1023,7 +1072,7 @@ async function _retryWithExponentialBackoff(f, {
1023
1072
  errors: newErrors
1024
1073
  });
1025
1074
  }
1026
- if ((error instanceof Error && (import_provider6.APICallError.isInstance(error) && error.isRetryable === true || import_gateway.GatewayError.isInstance(error) && error.isRetryable === true) || (additionalRetryableError == null ? void 0 : additionalRetryableError(error)) === true) && tryNumber <= maxRetries) {
1075
+ if ((error instanceof Error && (import_provider7.APICallError.isInstance(error) && error.isRetryable === true || import_gateway.GatewayError.isInstance(error) && error.isRetryable === true) || (additionalRetryableError == null ? void 0 : additionalRetryableError(error)) === true) && tryNumber <= maxRetries) {
1027
1076
  await (0, import_provider_utils7.delay)(
1028
1077
  getRetryDelayInMs({
1029
1078
  error,