ai 4.1.1 → 4.1.3

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
@@ -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 name14 in all)
8
- __defProp(target, name14, { get: all[name14], enumerable: true });
7
+ for (var name15 in all)
8
+ __defProp(target, name15, { get: all[name15], enumerable: true });
9
9
  };
10
10
  var __copyProps = (to, from, except, desc) => {
11
11
  if (from && typeof from === "object" || typeof from === "function") {
@@ -20,26 +20,27 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // streams/index.ts
21
21
  var streams_exports = {};
22
22
  __export(streams_exports, {
23
- AISDKError: () => import_provider16.AISDKError,
24
- APICallError: () => import_provider16.APICallError,
23
+ AISDKError: () => import_provider17.AISDKError,
24
+ APICallError: () => import_provider17.APICallError,
25
25
  AssistantResponse: () => AssistantResponse,
26
26
  DownloadError: () => DownloadError,
27
- EmptyResponseBodyError: () => import_provider16.EmptyResponseBodyError,
27
+ EmptyResponseBodyError: () => import_provider17.EmptyResponseBodyError,
28
28
  InvalidArgumentError: () => InvalidArgumentError,
29
29
  InvalidDataContentError: () => InvalidDataContentError,
30
30
  InvalidMessageRoleError: () => InvalidMessageRoleError,
31
- InvalidPromptError: () => import_provider16.InvalidPromptError,
32
- InvalidResponseDataError: () => import_provider16.InvalidResponseDataError,
31
+ InvalidPromptError: () => import_provider17.InvalidPromptError,
32
+ InvalidResponseDataError: () => import_provider17.InvalidResponseDataError,
33
33
  InvalidToolArgumentsError: () => InvalidToolArgumentsError,
34
- JSONParseError: () => import_provider16.JSONParseError,
34
+ JSONParseError: () => import_provider17.JSONParseError,
35
35
  LangChainAdapter: () => langchain_adapter_exports,
36
36
  LlamaIndexAdapter: () => llamaindex_adapter_exports,
37
- LoadAPIKeyError: () => import_provider16.LoadAPIKeyError,
37
+ LoadAPIKeyError: () => import_provider17.LoadAPIKeyError,
38
38
  MessageConversionError: () => MessageConversionError,
39
- NoContentGeneratedError: () => import_provider16.NoContentGeneratedError,
39
+ NoContentGeneratedError: () => import_provider17.NoContentGeneratedError,
40
+ NoImageGeneratedError: () => NoImageGeneratedError,
40
41
  NoObjectGeneratedError: () => NoObjectGeneratedError,
41
42
  NoOutputSpecifiedError: () => NoOutputSpecifiedError,
42
- NoSuchModelError: () => import_provider16.NoSuchModelError,
43
+ NoSuchModelError: () => import_provider17.NoSuchModelError,
43
44
  NoSuchProviderError: () => NoSuchProviderError,
44
45
  NoSuchToolError: () => NoSuchToolError,
45
46
  Output: () => output_exports,
@@ -47,10 +48,16 @@ __export(streams_exports, {
47
48
  StreamData: () => StreamData,
48
49
  ToolCallRepairError: () => ToolCallRepairError,
49
50
  ToolExecutionError: () => ToolExecutionError,
50
- TypeValidationError: () => import_provider16.TypeValidationError,
51
- UnsupportedFunctionalityError: () => import_provider16.UnsupportedFunctionalityError,
51
+ TypeValidationError: () => import_provider17.TypeValidationError,
52
+ UnsupportedFunctionalityError: () => import_provider17.UnsupportedFunctionalityError,
53
+ appendClientMessage: () => appendClientMessage,
52
54
  appendResponseMessages: () => appendResponseMessages,
53
55
  convertToCoreMessages: () => convertToCoreMessages,
56
+ coreAssistantMessageSchema: () => coreAssistantMessageSchema,
57
+ coreMessageSchema: () => coreMessageSchema,
58
+ coreSystemMessageSchema: () => coreSystemMessageSchema,
59
+ coreToolMessageSchema: () => coreToolMessageSchema,
60
+ coreUserMessageSchema: () => coreUserMessageSchema,
54
61
  cosineSimilarity: () => cosineSimilarity,
55
62
  createDataStream: () => createDataStream,
56
63
  createDataStreamResponse: () => createDataStreamResponse,
@@ -420,7 +427,7 @@ function getBaseTelemetryAttributes({
420
427
  telemetry,
421
428
  headers
422
429
  }) {
423
- var _a14;
430
+ var _a15;
424
431
  return {
425
432
  "ai.model.provider": model.provider,
426
433
  "ai.model.id": model.modelId,
@@ -430,7 +437,7 @@ function getBaseTelemetryAttributes({
430
437
  return attributes;
431
438
  }, {}),
432
439
  // add metadata as attributes:
433
- ...Object.entries((_a14 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a14 : {}).reduce(
440
+ ...Object.entries((_a15 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a15 : {}).reduce(
434
441
  (attributes, [key, value]) => {
435
442
  attributes[`ai.telemetry.metadata.${key}`] = value;
436
443
  return attributes;
@@ -455,7 +462,7 @@ var noopTracer = {
455
462
  startSpan() {
456
463
  return noopSpan;
457
464
  },
458
- startActiveSpan(name14, arg1, arg2, arg3) {
465
+ startActiveSpan(name15, arg1, arg2, arg3) {
459
466
  if (typeof arg1 === "function") {
460
467
  return arg1(noopSpan);
461
468
  }
@@ -525,13 +532,13 @@ function getTracer({
525
532
  // core/telemetry/record-span.ts
526
533
  var import_api2 = require("@opentelemetry/api");
527
534
  function recordSpan({
528
- name: name14,
535
+ name: name15,
529
536
  tracer,
530
537
  attributes,
531
538
  fn,
532
539
  endWhenDone = true
533
540
  }) {
534
- return tracer.startActiveSpan(name14, { attributes }, async (span) => {
541
+ return tracer.startActiveSpan(name15, { attributes }, async (span) => {
535
542
  try {
536
543
  const result = await fn(span);
537
544
  if (endWhenDone) {
@@ -639,14 +646,14 @@ async function embed({
639
646
  }),
640
647
  tracer,
641
648
  fn: async (doEmbedSpan) => {
642
- var _a14;
649
+ var _a15;
643
650
  const modelResponse = await model.doEmbed({
644
651
  values: [value],
645
652
  abortSignal,
646
653
  headers
647
654
  });
648
655
  const embedding2 = modelResponse.embeddings[0];
649
- const usage2 = (_a14 = modelResponse.usage) != null ? _a14 : { tokens: NaN };
656
+ const usage2 = (_a15 = modelResponse.usage) != null ? _a15 : { tokens: NaN };
650
657
  doEmbedSpan.setAttributes(
651
658
  selectTelemetryAttributes({
652
659
  telemetry,
@@ -756,14 +763,14 @@ async function embedMany({
756
763
  }),
757
764
  tracer,
758
765
  fn: async (doEmbedSpan) => {
759
- var _a14;
766
+ var _a15;
760
767
  const modelResponse = await model.doEmbed({
761
768
  values,
762
769
  abortSignal,
763
770
  headers
764
771
  });
765
772
  const embeddings3 = modelResponse.embeddings;
766
- const usage2 = (_a14 = modelResponse.usage) != null ? _a14 : { tokens: NaN };
773
+ const usage2 = (_a15 = modelResponse.usage) != null ? _a15 : { tokens: NaN };
767
774
  doEmbedSpan.setAttributes(
768
775
  selectTelemetryAttributes({
769
776
  telemetry,
@@ -815,14 +822,14 @@ async function embedMany({
815
822
  }),
816
823
  tracer,
817
824
  fn: async (doEmbedSpan) => {
818
- var _a14;
825
+ var _a15;
819
826
  const modelResponse = await model.doEmbed({
820
827
  values: chunk,
821
828
  abortSignal,
822
829
  headers
823
830
  });
824
831
  const embeddings2 = modelResponse.embeddings;
825
- const usage2 = (_a14 = modelResponse.usage) != null ? _a14 : { tokens: NaN };
832
+ const usage2 = (_a15 = modelResponse.usage) != null ? _a15 : { tokens: NaN };
826
833
  doEmbedSpan.setAttributes(
827
834
  selectTelemetryAttributes({
828
835
  telemetry,
@@ -870,6 +877,30 @@ var DefaultEmbedManyResult = class {
870
877
 
871
878
  // core/generate-image/generate-image.ts
872
879
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
880
+
881
+ // errors/no-image-generated-error.ts
882
+ var import_provider4 = require("@ai-sdk/provider");
883
+ var name3 = "AI_NoImageGeneratedError";
884
+ var marker3 = `vercel.ai.error.${name3}`;
885
+ var symbol3 = Symbol.for(marker3);
886
+ var _a3;
887
+ var NoImageGeneratedError = class extends import_provider4.AISDKError {
888
+ constructor({
889
+ message = "No image generated.",
890
+ cause,
891
+ responses
892
+ }) {
893
+ super({ name: name3, message, cause });
894
+ this[_a3] = true;
895
+ this.responses = responses;
896
+ }
897
+ static isInstance(error) {
898
+ return import_provider4.AISDKError.hasMarker(error, marker3);
899
+ }
900
+ };
901
+ _a3 = symbol3;
902
+
903
+ // core/generate-image/generate-image.ts
873
904
  async function generateImage({
874
905
  model,
875
906
  prompt,
@@ -880,11 +911,14 @@ async function generateImage({
880
911
  providerOptions,
881
912
  maxRetries: maxRetriesArg,
882
913
  abortSignal,
883
- headers
914
+ headers,
915
+ _internal = {
916
+ currentDate: () => /* @__PURE__ */ new Date()
917
+ }
884
918
  }) {
885
- var _a14;
919
+ var _a15;
886
920
  const { retry } = prepareRetries({ maxRetries: maxRetriesArg });
887
- const maxImagesPerCall = (_a14 = model.maxImagesPerCall) != null ? _a14 : 1;
921
+ const maxImagesPerCall = (_a15 = model.maxImagesPerCall) != null ? _a15 : 1;
888
922
  const callCount = Math.ceil(n / maxImagesPerCall);
889
923
  const callImageCounts = Array.from({ length: callCount }, (_, i) => {
890
924
  if (i < callCount - 1) {
@@ -911,18 +945,24 @@ async function generateImage({
911
945
  );
912
946
  const images = [];
913
947
  const warnings = [];
948
+ const responses = [];
914
949
  for (const result of results) {
915
950
  images.push(
916
951
  ...result.images.map((image) => new DefaultGeneratedImage({ image }))
917
952
  );
918
953
  warnings.push(...result.warnings);
954
+ responses.push(result.response);
955
+ }
956
+ if (!images.length) {
957
+ throw new NoImageGeneratedError({ responses });
919
958
  }
920
- return new DefaultGenerateImageResult({ images, warnings });
959
+ return new DefaultGenerateImageResult({ images, warnings, responses });
921
960
  }
922
961
  var DefaultGenerateImageResult = class {
923
962
  constructor(options) {
924
963
  this.images = options.images;
925
964
  this.warnings = options.warnings;
965
+ this.responses = options.responses;
926
966
  }
927
967
  get image() {
928
968
  return this.images[0];
@@ -954,12 +994,12 @@ var DefaultGeneratedImage = class {
954
994
  var import_provider_utils6 = require("@ai-sdk/provider-utils");
955
995
 
956
996
  // errors/no-object-generated-error.ts
957
- var import_provider4 = require("@ai-sdk/provider");
958
- var name3 = "AI_NoObjectGeneratedError";
959
- var marker3 = `vercel.ai.error.${name3}`;
960
- var symbol3 = Symbol.for(marker3);
961
- var _a3;
962
- var NoObjectGeneratedError = class extends import_provider4.AISDKError {
997
+ var import_provider5 = require("@ai-sdk/provider");
998
+ var name4 = "AI_NoObjectGeneratedError";
999
+ var marker4 = `vercel.ai.error.${name4}`;
1000
+ var symbol4 = Symbol.for(marker4);
1001
+ var _a4;
1002
+ var NoObjectGeneratedError = class extends import_provider5.AISDKError {
963
1003
  constructor({
964
1004
  message = "No object generated.",
965
1005
  cause,
@@ -967,25 +1007,25 @@ var NoObjectGeneratedError = class extends import_provider4.AISDKError {
967
1007
  response,
968
1008
  usage
969
1009
  }) {
970
- super({ name: name3, message, cause });
971
- this[_a3] = true;
1010
+ super({ name: name4, message, cause });
1011
+ this[_a4] = true;
972
1012
  this.text = text2;
973
1013
  this.response = response;
974
1014
  this.usage = usage;
975
1015
  }
976
1016
  static isInstance(error) {
977
- return import_provider4.AISDKError.hasMarker(error, marker3);
1017
+ return import_provider5.AISDKError.hasMarker(error, marker4);
978
1018
  }
979
1019
  };
980
- _a3 = symbol3;
1020
+ _a4 = symbol4;
981
1021
 
982
1022
  // util/download-error.ts
983
- var import_provider5 = require("@ai-sdk/provider");
984
- var name4 = "AI_DownloadError";
985
- var marker4 = `vercel.ai.error.${name4}`;
986
- var symbol4 = Symbol.for(marker4);
987
- var _a4;
988
- var DownloadError = class extends import_provider5.AISDKError {
1023
+ var import_provider6 = require("@ai-sdk/provider");
1024
+ var name5 = "AI_DownloadError";
1025
+ var marker5 = `vercel.ai.error.${name5}`;
1026
+ var symbol5 = Symbol.for(marker5);
1027
+ var _a5;
1028
+ var DownloadError = class extends import_provider6.AISDKError {
989
1029
  constructor({
990
1030
  url,
991
1031
  statusCode,
@@ -993,24 +1033,24 @@ var DownloadError = class extends import_provider5.AISDKError {
993
1033
  cause,
994
1034
  message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`
995
1035
  }) {
996
- super({ name: name4, message, cause });
997
- this[_a4] = true;
1036
+ super({ name: name5, message, cause });
1037
+ this[_a5] = true;
998
1038
  this.url = url;
999
1039
  this.statusCode = statusCode;
1000
1040
  this.statusText = statusText;
1001
1041
  }
1002
1042
  static isInstance(error) {
1003
- return import_provider5.AISDKError.hasMarker(error, marker4);
1043
+ return import_provider6.AISDKError.hasMarker(error, marker5);
1004
1044
  }
1005
1045
  };
1006
- _a4 = symbol4;
1046
+ _a5 = symbol5;
1007
1047
 
1008
1048
  // util/download.ts
1009
1049
  async function download({
1010
1050
  url,
1011
1051
  fetchImplementation = fetch
1012
1052
  }) {
1013
- var _a14;
1053
+ var _a15;
1014
1054
  const urlText = url.toString();
1015
1055
  try {
1016
1056
  const response = await fetchImplementation(urlText);
@@ -1023,7 +1063,7 @@ async function download({
1023
1063
  }
1024
1064
  return {
1025
1065
  data: new Uint8Array(await response.arrayBuffer()),
1026
- mimeType: (_a14 = response.headers.get("content-type")) != null ? _a14 : void 0
1066
+ mimeType: (_a15 = response.headers.get("content-type")) != null ? _a15 : void 0
1027
1067
  };
1028
1068
  } catch (error) {
1029
1069
  if (DownloadError.isInstance(error)) {
@@ -1053,26 +1093,26 @@ function detectImageMimeType(image) {
1053
1093
  var import_provider_utils3 = require("@ai-sdk/provider-utils");
1054
1094
 
1055
1095
  // core/prompt/invalid-data-content-error.ts
1056
- var import_provider6 = require("@ai-sdk/provider");
1057
- var name5 = "AI_InvalidDataContentError";
1058
- var marker5 = `vercel.ai.error.${name5}`;
1059
- var symbol5 = Symbol.for(marker5);
1060
- var _a5;
1061
- var InvalidDataContentError = class extends import_provider6.AISDKError {
1096
+ var import_provider7 = require("@ai-sdk/provider");
1097
+ var name6 = "AI_InvalidDataContentError";
1098
+ var marker6 = `vercel.ai.error.${name6}`;
1099
+ var symbol6 = Symbol.for(marker6);
1100
+ var _a6;
1101
+ var InvalidDataContentError = class extends import_provider7.AISDKError {
1062
1102
  constructor({
1063
1103
  content,
1064
1104
  cause,
1065
1105
  message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
1066
1106
  }) {
1067
- super({ name: name5, message, cause });
1068
- this[_a5] = true;
1107
+ super({ name: name6, message, cause });
1108
+ this[_a6] = true;
1069
1109
  this.content = content;
1070
1110
  }
1071
1111
  static isInstance(error) {
1072
- return import_provider6.AISDKError.hasMarker(error, marker5);
1112
+ return import_provider7.AISDKError.hasMarker(error, marker6);
1073
1113
  }
1074
1114
  };
1075
- _a5 = symbol5;
1115
+ _a6 = symbol6;
1076
1116
 
1077
1117
  // core/prompt/data-content.ts
1078
1118
  var import_zod = require("zod");
@@ -1083,8 +1123,8 @@ var dataContentSchema = import_zod.z.union([
1083
1123
  import_zod.z.custom(
1084
1124
  // Buffer might not be available in some environments such as CloudFlare:
1085
1125
  (value) => {
1086
- var _a14, _b;
1087
- return (_b = (_a14 = globalThis.Buffer) == null ? void 0 : _a14.isBuffer(value)) != null ? _b : false;
1126
+ var _a15, _b;
1127
+ return (_b = (_a15 = globalThis.Buffer) == null ? void 0 : _a15.isBuffer(value)) != null ? _b : false;
1088
1128
  },
1089
1129
  { message: "Must be a Buffer" }
1090
1130
  )
@@ -1127,25 +1167,25 @@ function convertUint8ArrayToText(uint8Array) {
1127
1167
  }
1128
1168
 
1129
1169
  // core/prompt/invalid-message-role-error.ts
1130
- var import_provider7 = require("@ai-sdk/provider");
1131
- var name6 = "AI_InvalidMessageRoleError";
1132
- var marker6 = `vercel.ai.error.${name6}`;
1133
- var symbol6 = Symbol.for(marker6);
1134
- var _a6;
1135
- var InvalidMessageRoleError = class extends import_provider7.AISDKError {
1170
+ var import_provider8 = require("@ai-sdk/provider");
1171
+ var name7 = "AI_InvalidMessageRoleError";
1172
+ var marker7 = `vercel.ai.error.${name7}`;
1173
+ var symbol7 = Symbol.for(marker7);
1174
+ var _a7;
1175
+ var InvalidMessageRoleError = class extends import_provider8.AISDKError {
1136
1176
  constructor({
1137
1177
  role,
1138
1178
  message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
1139
1179
  }) {
1140
- super({ name: name6, message });
1141
- this[_a6] = true;
1180
+ super({ name: name7, message });
1181
+ this[_a7] = true;
1142
1182
  this.role = role;
1143
1183
  }
1144
1184
  static isInstance(error) {
1145
- return import_provider7.AISDKError.hasMarker(error, marker6);
1185
+ return import_provider8.AISDKError.hasMarker(error, marker7);
1146
1186
  }
1147
1187
  };
1148
- _a6 = symbol6;
1188
+ _a7 = symbol7;
1149
1189
 
1150
1190
  // core/prompt/split-data-url.ts
1151
1191
  function splitDataUrl(dataUrl) {
@@ -1275,7 +1315,7 @@ async function downloadAssets(messages, downloadImplementation, modelSupportsIma
1275
1315
  );
1276
1316
  }
1277
1317
  function convertPartToLanguageModelPart(part, downloadedAssets) {
1278
- var _a14;
1318
+ var _a15;
1279
1319
  if (part.type === "text") {
1280
1320
  return {
1281
1321
  type: "text",
@@ -1328,7 +1368,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1328
1368
  switch (type) {
1329
1369
  case "image": {
1330
1370
  if (normalizedData instanceof Uint8Array) {
1331
- mimeType = (_a14 = detectImageMimeType(normalizedData)) != null ? _a14 : mimeType;
1371
+ mimeType = (_a15 = detectImageMimeType(normalizedData)) != null ? _a15 : mimeType;
1332
1372
  }
1333
1373
  return {
1334
1374
  type: "image",
@@ -1445,7 +1485,7 @@ function prepareCallSettings({
1445
1485
  }
1446
1486
 
1447
1487
  // core/prompt/standardize-prompt.ts
1448
- var import_provider9 = require("@ai-sdk/provider");
1488
+ var import_provider10 = require("@ai-sdk/provider");
1449
1489
  var import_provider_utils4 = require("@ai-sdk/provider-utils");
1450
1490
  var import_zod7 = require("zod");
1451
1491
 
@@ -1595,7 +1635,7 @@ function detectSingleMessageCharacteristics(message) {
1595
1635
 
1596
1636
  // core/prompt/attachments-to-parts.ts
1597
1637
  function attachmentsToParts(attachments) {
1598
- var _a14, _b, _c;
1638
+ var _a15, _b, _c;
1599
1639
  const parts = [];
1600
1640
  for (const attachment of attachments) {
1601
1641
  let url;
@@ -1607,7 +1647,7 @@ function attachmentsToParts(attachments) {
1607
1647
  switch (url.protocol) {
1608
1648
  case "http:":
1609
1649
  case "https:": {
1610
- if ((_a14 = attachment.contentType) == null ? void 0 : _a14.startsWith("image/")) {
1650
+ if ((_a15 = attachment.contentType) == null ? void 0 : _a15.startsWith("image/")) {
1611
1651
  parts.push({ type: "image", image: url });
1612
1652
  } else {
1613
1653
  if (!attachment.contentType) {
@@ -1671,30 +1711,30 @@ function attachmentsToParts(attachments) {
1671
1711
  }
1672
1712
 
1673
1713
  // core/prompt/message-conversion-error.ts
1674
- var import_provider8 = require("@ai-sdk/provider");
1675
- var name7 = "AI_MessageConversionError";
1676
- var marker7 = `vercel.ai.error.${name7}`;
1677
- var symbol7 = Symbol.for(marker7);
1678
- var _a7;
1679
- var MessageConversionError = class extends import_provider8.AISDKError {
1714
+ var import_provider9 = require("@ai-sdk/provider");
1715
+ var name8 = "AI_MessageConversionError";
1716
+ var marker8 = `vercel.ai.error.${name8}`;
1717
+ var symbol8 = Symbol.for(marker8);
1718
+ var _a8;
1719
+ var MessageConversionError = class extends import_provider9.AISDKError {
1680
1720
  constructor({
1681
1721
  originalMessage,
1682
1722
  message
1683
1723
  }) {
1684
- super({ name: name7, message });
1685
- this[_a7] = true;
1724
+ super({ name: name8, message });
1725
+ this[_a8] = true;
1686
1726
  this.originalMessage = originalMessage;
1687
1727
  }
1688
1728
  static isInstance(error) {
1689
- return import_provider8.AISDKError.hasMarker(error, marker7);
1729
+ return import_provider9.AISDKError.hasMarker(error, marker8);
1690
1730
  }
1691
1731
  };
1692
- _a7 = symbol7;
1732
+ _a8 = symbol8;
1693
1733
 
1694
1734
  // core/prompt/convert-to-core-messages.ts
1695
1735
  function convertToCoreMessages(messages, options) {
1696
- var _a14;
1697
- const tools = (_a14 = options == null ? void 0 : options.tools) != null ? _a14 : {};
1736
+ var _a15;
1737
+ const tools = (_a15 = options == null ? void 0 : options.tools) != null ? _a15 : {};
1698
1738
  const coreMessages = [];
1699
1739
  for (const message of messages) {
1700
1740
  const { role, content, toolInvocations, experimental_attachments } = message;
@@ -1783,26 +1823,26 @@ function standardizePrompt({
1783
1823
  tools
1784
1824
  }) {
1785
1825
  if (prompt.prompt == null && prompt.messages == null) {
1786
- throw new import_provider9.InvalidPromptError({
1826
+ throw new import_provider10.InvalidPromptError({
1787
1827
  prompt,
1788
1828
  message: "prompt or messages must be defined"
1789
1829
  });
1790
1830
  }
1791
1831
  if (prompt.prompt != null && prompt.messages != null) {
1792
- throw new import_provider9.InvalidPromptError({
1832
+ throw new import_provider10.InvalidPromptError({
1793
1833
  prompt,
1794
1834
  message: "prompt and messages cannot be defined at the same time"
1795
1835
  });
1796
1836
  }
1797
1837
  if (prompt.system != null && typeof prompt.system !== "string") {
1798
- throw new import_provider9.InvalidPromptError({
1838
+ throw new import_provider10.InvalidPromptError({
1799
1839
  prompt,
1800
1840
  message: "system must be a string"
1801
1841
  });
1802
1842
  }
1803
1843
  if (prompt.prompt != null) {
1804
1844
  if (typeof prompt.prompt !== "string") {
1805
- throw new import_provider9.InvalidPromptError({
1845
+ throw new import_provider10.InvalidPromptError({
1806
1846
  prompt,
1807
1847
  message: "prompt must be a string"
1808
1848
  });
@@ -1821,7 +1861,7 @@ function standardizePrompt({
1821
1861
  if (prompt.messages != null) {
1822
1862
  const promptType = detectPromptType(prompt.messages);
1823
1863
  if (promptType === "other") {
1824
- throw new import_provider9.InvalidPromptError({
1864
+ throw new import_provider10.InvalidPromptError({
1825
1865
  prompt,
1826
1866
  message: "messages must be an array of CoreMessage or UIMessage"
1827
1867
  });
@@ -1834,7 +1874,7 @@ function standardizePrompt({
1834
1874
  schema: import_zod7.z.array(coreMessageSchema)
1835
1875
  });
1836
1876
  if (!validationResult.success) {
1837
- throw new import_provider9.InvalidPromptError({
1877
+ throw new import_provider10.InvalidPromptError({
1838
1878
  prompt,
1839
1879
  message: "messages must be an array of CoreMessage or UIMessage",
1840
1880
  cause: validationResult.error
@@ -1889,7 +1929,7 @@ function injectJsonInstruction({
1889
1929
  }
1890
1930
 
1891
1931
  // core/generate-object/output-strategy.ts
1892
- var import_provider10 = require("@ai-sdk/provider");
1932
+ var import_provider11 = require("@ai-sdk/provider");
1893
1933
  var import_provider_utils5 = require("@ai-sdk/provider-utils");
1894
1934
  var import_ui_utils2 = require("@ai-sdk/ui-utils");
1895
1935
 
@@ -1927,7 +1967,7 @@ var noSchemaOutputStrategy = {
1927
1967
  } : { success: true, value };
1928
1968
  },
1929
1969
  createElementStream() {
1930
- throw new import_provider10.UnsupportedFunctionalityError({
1970
+ throw new import_provider11.UnsupportedFunctionalityError({
1931
1971
  functionality: "element streams in no-schema mode"
1932
1972
  });
1933
1973
  }
@@ -1949,7 +1989,7 @@ var objectOutputStrategy = (schema) => ({
1949
1989
  return (0, import_provider_utils5.safeValidateTypes)({ value, schema });
1950
1990
  },
1951
1991
  createElementStream() {
1952
- throw new import_provider10.UnsupportedFunctionalityError({
1992
+ throw new import_provider11.UnsupportedFunctionalityError({
1953
1993
  functionality: "element streams in object mode"
1954
1994
  });
1955
1995
  }
@@ -1971,11 +2011,11 @@ var arrayOutputStrategy = (schema) => {
1971
2011
  additionalProperties: false
1972
2012
  },
1973
2013
  validatePartialResult({ value, latestObject, isFirstDelta, isFinalDelta }) {
1974
- var _a14;
1975
- if (!(0, import_provider10.isJSONObject)(value) || !(0, import_provider10.isJSONArray)(value.elements)) {
2014
+ var _a15;
2015
+ if (!(0, import_provider11.isJSONObject)(value) || !(0, import_provider11.isJSONArray)(value.elements)) {
1976
2016
  return {
1977
2017
  success: false,
1978
- error: new import_provider10.TypeValidationError({
2018
+ error: new import_provider11.TypeValidationError({
1979
2019
  value,
1980
2020
  cause: "value must be an object that contains an array of elements"
1981
2021
  })
@@ -1994,7 +2034,7 @@ var arrayOutputStrategy = (schema) => {
1994
2034
  }
1995
2035
  resultArray.push(result.value);
1996
2036
  }
1997
- const publishedElementCount = (_a14 = latestObject == null ? void 0 : latestObject.length) != null ? _a14 : 0;
2037
+ const publishedElementCount = (_a15 = latestObject == null ? void 0 : latestObject.length) != null ? _a15 : 0;
1998
2038
  let textDelta = "";
1999
2039
  if (isFirstDelta) {
2000
2040
  textDelta += "[";
@@ -2015,10 +2055,10 @@ var arrayOutputStrategy = (schema) => {
2015
2055
  };
2016
2056
  },
2017
2057
  validateFinalResult(value) {
2018
- if (!(0, import_provider10.isJSONObject)(value) || !(0, import_provider10.isJSONArray)(value.elements)) {
2058
+ if (!(0, import_provider11.isJSONObject)(value) || !(0, import_provider11.isJSONArray)(value.elements)) {
2019
2059
  return {
2020
2060
  success: false,
2021
- error: new import_provider10.TypeValidationError({
2061
+ error: new import_provider11.TypeValidationError({
2022
2062
  value,
2023
2063
  cause: "value must be an object that contains an array of elements"
2024
2064
  })
@@ -2083,10 +2123,10 @@ var enumOutputStrategy = (enumValues) => {
2083
2123
  additionalProperties: false
2084
2124
  },
2085
2125
  validateFinalResult(value) {
2086
- if (!(0, import_provider10.isJSONObject)(value) || typeof value.result !== "string") {
2126
+ if (!(0, import_provider11.isJSONObject)(value) || typeof value.result !== "string") {
2087
2127
  return {
2088
2128
  success: false,
2089
- error: new import_provider10.TypeValidationError({
2129
+ error: new import_provider11.TypeValidationError({
2090
2130
  value,
2091
2131
  cause: 'value must be an object that contains a string in the "result" property.'
2092
2132
  })
@@ -2095,19 +2135,19 @@ var enumOutputStrategy = (enumValues) => {
2095
2135
  const result = value.result;
2096
2136
  return enumValues.includes(result) ? { success: true, value: result } : {
2097
2137
  success: false,
2098
- error: new import_provider10.TypeValidationError({
2138
+ error: new import_provider11.TypeValidationError({
2099
2139
  value,
2100
2140
  cause: "value must be a string in the enum"
2101
2141
  })
2102
2142
  };
2103
2143
  },
2104
2144
  validatePartialResult() {
2105
- throw new import_provider10.UnsupportedFunctionalityError({
2145
+ throw new import_provider11.UnsupportedFunctionalityError({
2106
2146
  functionality: "partial results in enum mode"
2107
2147
  });
2108
2148
  },
2109
2149
  createElementStream() {
2110
- throw new import_provider10.UnsupportedFunctionalityError({
2150
+ throw new import_provider11.UnsupportedFunctionalityError({
2111
2151
  functionality: "element streams in enum mode"
2112
2152
  });
2113
2153
  }
@@ -2332,7 +2372,7 @@ async function generateObject({
2332
2372
  }),
2333
2373
  tracer,
2334
2374
  fn: async (span) => {
2335
- var _a14, _b;
2375
+ var _a15, _b;
2336
2376
  if (mode === "auto" || mode == null) {
2337
2377
  mode = model.defaultObjectGenerationMode;
2338
2378
  }
@@ -2394,7 +2434,7 @@ async function generateObject({
2394
2434
  }),
2395
2435
  tracer,
2396
2436
  fn: async (span2) => {
2397
- var _a15, _b2, _c, _d, _e, _f;
2437
+ var _a16, _b2, _c, _d, _e, _f;
2398
2438
  const result2 = await model.doGenerate({
2399
2439
  mode: {
2400
2440
  type: "object-json",
@@ -2410,7 +2450,7 @@ async function generateObject({
2410
2450
  headers
2411
2451
  });
2412
2452
  const responseData = {
2413
- id: (_b2 = (_a15 = result2.response) == null ? void 0 : _a15.id) != null ? _b2 : generateId3(),
2453
+ id: (_b2 = (_a16 = result2.response) == null ? void 0 : _a16.id) != null ? _b2 : generateId3(),
2414
2454
  timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
2415
2455
  modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId
2416
2456
  };
@@ -2452,7 +2492,7 @@ async function generateObject({
2452
2492
  rawResponse = generateResult.rawResponse;
2453
2493
  logprobs = generateResult.logprobs;
2454
2494
  resultProviderMetadata = generateResult.providerMetadata;
2455
- request = (_a14 = generateResult.request) != null ? _a14 : {};
2495
+ request = (_a15 = generateResult.request) != null ? _a15 : {};
2456
2496
  response = generateResult.responseData;
2457
2497
  break;
2458
2498
  }
@@ -2498,7 +2538,7 @@ async function generateObject({
2498
2538
  }),
2499
2539
  tracer,
2500
2540
  fn: async (span2) => {
2501
- var _a15, _b2, _c, _d, _e, _f, _g, _h;
2541
+ var _a16, _b2, _c, _d, _e, _f, _g, _h;
2502
2542
  const result2 = await model.doGenerate({
2503
2543
  mode: {
2504
2544
  type: "object-tool",
@@ -2516,7 +2556,7 @@ async function generateObject({
2516
2556
  abortSignal,
2517
2557
  headers
2518
2558
  });
2519
- const objectText = (_b2 = (_a15 = result2.toolCalls) == null ? void 0 : _a15[0]) == null ? void 0 : _b2.args;
2559
+ const objectText = (_b2 = (_a16 = result2.toolCalls) == null ? void 0 : _a16[0]) == null ? void 0 : _b2.args;
2520
2560
  const responseData = {
2521
2561
  id: (_d = (_c = result2.response) == null ? void 0 : _c.id) != null ? _d : generateId3(),
2522
2562
  timestamp: (_f = (_e = result2.response) == null ? void 0 : _e.timestamp) != null ? _f : currentDate(),
@@ -2642,9 +2682,9 @@ var DefaultGenerateObjectResult = class {
2642
2682
  this.logprobs = options.logprobs;
2643
2683
  }
2644
2684
  toJsonResponse(init) {
2645
- var _a14;
2685
+ var _a15;
2646
2686
  return new Response(JSON.stringify(this.object), {
2647
- status: (_a14 = init == null ? void 0 : init.status) != null ? _a14 : 200,
2687
+ status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
2648
2688
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
2649
2689
  contentType: "application/json; charset=utf-8"
2650
2690
  })
@@ -2679,17 +2719,17 @@ var DelayedPromise = class {
2679
2719
  return this.promise;
2680
2720
  }
2681
2721
  resolve(value) {
2682
- var _a14;
2722
+ var _a15;
2683
2723
  this.status = { type: "resolved", value };
2684
2724
  if (this.promise) {
2685
- (_a14 = this._resolve) == null ? void 0 : _a14.call(this, value);
2725
+ (_a15 = this._resolve) == null ? void 0 : _a15.call(this, value);
2686
2726
  }
2687
2727
  }
2688
2728
  reject(error) {
2689
- var _a14;
2729
+ var _a15;
2690
2730
  this.status = { type: "rejected", error };
2691
2731
  if (this.promise) {
2692
- (_a14 = this._reject) == null ? void 0 : _a14.call(this, error);
2732
+ (_a15 = this._reject) == null ? void 0 : _a15.call(this, error);
2693
2733
  }
2694
2734
  }
2695
2735
  };
@@ -2793,8 +2833,8 @@ function createStitchableStream() {
2793
2833
 
2794
2834
  // core/util/now.ts
2795
2835
  function now() {
2796
- var _a14, _b;
2797
- return (_b = (_a14 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a14.now()) != null ? _b : Date.now();
2836
+ var _a15, _b;
2837
+ return (_b = (_a15 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a15.now()) != null ? _b : Date.now();
2798
2838
  }
2799
2839
 
2800
2840
  // core/generate-object/stream-object.ts
@@ -3083,7 +3123,7 @@ var DefaultStreamObjectResult = class {
3083
3123
  const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
3084
3124
  new TransformStream({
3085
3125
  async transform(chunk, controller) {
3086
- var _a14, _b, _c;
3126
+ var _a15, _b, _c;
3087
3127
  if (isFirstChunk) {
3088
3128
  const msToFirstChunk = now2() - startTimestampMs;
3089
3129
  isFirstChunk = false;
@@ -3129,7 +3169,7 @@ var DefaultStreamObjectResult = class {
3129
3169
  switch (chunk.type) {
3130
3170
  case "response-metadata": {
3131
3171
  response = {
3132
- id: (_a14 = chunk.id) != null ? _a14 : response.id,
3172
+ id: (_a15 = chunk.id) != null ? _a15 : response.id,
3133
3173
  timestamp: (_b = chunk.timestamp) != null ? _b : response.timestamp,
3134
3174
  modelId: (_c = chunk.modelId) != null ? _c : response.modelId
3135
3175
  };
@@ -3343,9 +3383,9 @@ var DefaultStreamObjectResult = class {
3343
3383
  });
3344
3384
  }
3345
3385
  toTextStreamResponse(init) {
3346
- var _a14;
3386
+ var _a15;
3347
3387
  return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
3348
- status: (_a14 = init == null ? void 0 : init.status) != null ? _a14 : 200,
3388
+ status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
3349
3389
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
3350
3390
  contentType: "text/plain; charset=utf-8"
3351
3391
  })
@@ -3357,48 +3397,48 @@ var DefaultStreamObjectResult = class {
3357
3397
  var import_provider_utils9 = require("@ai-sdk/provider-utils");
3358
3398
 
3359
3399
  // errors/no-output-specified-error.ts
3360
- var import_provider11 = require("@ai-sdk/provider");
3361
- var name8 = "AI_NoOutputSpecifiedError";
3362
- var marker8 = `vercel.ai.error.${name8}`;
3363
- var symbol8 = Symbol.for(marker8);
3364
- var _a8;
3365
- var NoOutputSpecifiedError = class extends import_provider11.AISDKError {
3400
+ var import_provider12 = require("@ai-sdk/provider");
3401
+ var name9 = "AI_NoOutputSpecifiedError";
3402
+ var marker9 = `vercel.ai.error.${name9}`;
3403
+ var symbol9 = Symbol.for(marker9);
3404
+ var _a9;
3405
+ var NoOutputSpecifiedError = class extends import_provider12.AISDKError {
3366
3406
  // used in isInstance
3367
3407
  constructor({ message = "No output specified." } = {}) {
3368
- super({ name: name8, message });
3369
- this[_a8] = true;
3408
+ super({ name: name9, message });
3409
+ this[_a9] = true;
3370
3410
  }
3371
3411
  static isInstance(error) {
3372
- return import_provider11.AISDKError.hasMarker(error, marker8);
3412
+ return import_provider12.AISDKError.hasMarker(error, marker9);
3373
3413
  }
3374
3414
  };
3375
- _a8 = symbol8;
3415
+ _a9 = symbol9;
3376
3416
 
3377
3417
  // errors/tool-execution-error.ts
3378
- var import_provider12 = require("@ai-sdk/provider");
3379
- var name9 = "AI_ToolExecutionError";
3380
- var marker9 = `vercel.ai.error.${name9}`;
3381
- var symbol9 = Symbol.for(marker9);
3382
- var _a9;
3383
- var ToolExecutionError = class extends import_provider12.AISDKError {
3418
+ var import_provider13 = require("@ai-sdk/provider");
3419
+ var name10 = "AI_ToolExecutionError";
3420
+ var marker10 = `vercel.ai.error.${name10}`;
3421
+ var symbol10 = Symbol.for(marker10);
3422
+ var _a10;
3423
+ var ToolExecutionError = class extends import_provider13.AISDKError {
3384
3424
  constructor({
3385
3425
  toolArgs,
3386
3426
  toolName,
3387
3427
  toolCallId,
3388
3428
  cause,
3389
- message = `Error executing tool ${toolName}: ${(0, import_provider12.getErrorMessage)(cause)}`
3429
+ message = `Error executing tool ${toolName}: ${(0, import_provider13.getErrorMessage)(cause)}`
3390
3430
  }) {
3391
- super({ name: name9, message, cause });
3392
- this[_a9] = true;
3431
+ super({ name: name10, message, cause });
3432
+ this[_a10] = true;
3393
3433
  this.toolArgs = toolArgs;
3394
3434
  this.toolName = toolName;
3395
3435
  this.toolCallId = toolCallId;
3396
3436
  }
3397
3437
  static isInstance(error) {
3398
- return import_provider12.AISDKError.hasMarker(error, marker9);
3438
+ return import_provider13.AISDKError.hasMarker(error, marker10);
3399
3439
  }
3400
3440
  };
3401
- _a9 = symbol9;
3441
+ _a10 = symbol10;
3402
3442
 
3403
3443
  // core/prompt/prepare-tools-and-tool-choice.ts
3404
3444
  var import_ui_utils4 = require("@ai-sdk/ui-utils");
@@ -3421,24 +3461,24 @@ function prepareToolsAndToolChoice({
3421
3461
  };
3422
3462
  }
3423
3463
  const filteredTools = activeTools != null ? Object.entries(tools).filter(
3424
- ([name14]) => activeTools.includes(name14)
3464
+ ([name15]) => activeTools.includes(name15)
3425
3465
  ) : Object.entries(tools);
3426
3466
  return {
3427
- tools: filteredTools.map(([name14, tool2]) => {
3467
+ tools: filteredTools.map(([name15, tool2]) => {
3428
3468
  const toolType = tool2.type;
3429
3469
  switch (toolType) {
3430
3470
  case void 0:
3431
3471
  case "function":
3432
3472
  return {
3433
3473
  type: "function",
3434
- name: name14,
3474
+ name: name15,
3435
3475
  description: tool2.description,
3436
3476
  parameters: (0, import_ui_utils4.asSchema)(tool2.parameters).jsonSchema
3437
3477
  };
3438
3478
  case "provider-defined":
3439
3479
  return {
3440
3480
  type: "provider-defined",
3441
- name: name14,
3481
+ name: name15,
3442
3482
  id: tool2.id,
3443
3483
  args: tool2.args
3444
3484
  };
@@ -3470,75 +3510,75 @@ var import_provider_utils8 = require("@ai-sdk/provider-utils");
3470
3510
  var import_ui_utils5 = require("@ai-sdk/ui-utils");
3471
3511
 
3472
3512
  // errors/invalid-tool-arguments-error.ts
3473
- var import_provider13 = require("@ai-sdk/provider");
3474
- var name10 = "AI_InvalidToolArgumentsError";
3475
- var marker10 = `vercel.ai.error.${name10}`;
3476
- var symbol10 = Symbol.for(marker10);
3477
- var _a10;
3478
- var InvalidToolArgumentsError = class extends import_provider13.AISDKError {
3513
+ var import_provider14 = require("@ai-sdk/provider");
3514
+ var name11 = "AI_InvalidToolArgumentsError";
3515
+ var marker11 = `vercel.ai.error.${name11}`;
3516
+ var symbol11 = Symbol.for(marker11);
3517
+ var _a11;
3518
+ var InvalidToolArgumentsError = class extends import_provider14.AISDKError {
3479
3519
  constructor({
3480
3520
  toolArgs,
3481
3521
  toolName,
3482
3522
  cause,
3483
- message = `Invalid arguments for tool ${toolName}: ${(0, import_provider13.getErrorMessage)(
3523
+ message = `Invalid arguments for tool ${toolName}: ${(0, import_provider14.getErrorMessage)(
3484
3524
  cause
3485
3525
  )}`
3486
3526
  }) {
3487
- super({ name: name10, message, cause });
3488
- this[_a10] = true;
3527
+ super({ name: name11, message, cause });
3528
+ this[_a11] = true;
3489
3529
  this.toolArgs = toolArgs;
3490
3530
  this.toolName = toolName;
3491
3531
  }
3492
3532
  static isInstance(error) {
3493
- return import_provider13.AISDKError.hasMarker(error, marker10);
3533
+ return import_provider14.AISDKError.hasMarker(error, marker11);
3494
3534
  }
3495
3535
  };
3496
- _a10 = symbol10;
3536
+ _a11 = symbol11;
3497
3537
 
3498
3538
  // errors/no-such-tool-error.ts
3499
- var import_provider14 = require("@ai-sdk/provider");
3500
- var name11 = "AI_NoSuchToolError";
3501
- var marker11 = `vercel.ai.error.${name11}`;
3502
- var symbol11 = Symbol.for(marker11);
3503
- var _a11;
3504
- var NoSuchToolError = class extends import_provider14.AISDKError {
3539
+ var import_provider15 = require("@ai-sdk/provider");
3540
+ var name12 = "AI_NoSuchToolError";
3541
+ var marker12 = `vercel.ai.error.${name12}`;
3542
+ var symbol12 = Symbol.for(marker12);
3543
+ var _a12;
3544
+ var NoSuchToolError = class extends import_provider15.AISDKError {
3505
3545
  constructor({
3506
3546
  toolName,
3507
3547
  availableTools = void 0,
3508
3548
  message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
3509
3549
  }) {
3510
- super({ name: name11, message });
3511
- this[_a11] = true;
3550
+ super({ name: name12, message });
3551
+ this[_a12] = true;
3512
3552
  this.toolName = toolName;
3513
3553
  this.availableTools = availableTools;
3514
3554
  }
3515
3555
  static isInstance(error) {
3516
- return import_provider14.AISDKError.hasMarker(error, marker11);
3556
+ return import_provider15.AISDKError.hasMarker(error, marker12);
3517
3557
  }
3518
3558
  };
3519
- _a11 = symbol11;
3559
+ _a12 = symbol12;
3520
3560
 
3521
3561
  // errors/tool-call-repair-error.ts
3522
- var import_provider15 = require("@ai-sdk/provider");
3523
- var name12 = "AI_ToolCallRepairError";
3524
- var marker12 = `vercel.ai.error.${name12}`;
3525
- var symbol12 = Symbol.for(marker12);
3526
- var _a12;
3527
- var ToolCallRepairError = class extends import_provider15.AISDKError {
3562
+ var import_provider16 = require("@ai-sdk/provider");
3563
+ var name13 = "AI_ToolCallRepairError";
3564
+ var marker13 = `vercel.ai.error.${name13}`;
3565
+ var symbol13 = Symbol.for(marker13);
3566
+ var _a13;
3567
+ var ToolCallRepairError = class extends import_provider16.AISDKError {
3528
3568
  constructor({
3529
3569
  cause,
3530
3570
  originalError,
3531
- message = `Error repairing tool call: ${(0, import_provider15.getErrorMessage)(cause)}`
3571
+ message = `Error repairing tool call: ${(0, import_provider16.getErrorMessage)(cause)}`
3532
3572
  }) {
3533
- super({ name: name12, message, cause });
3534
- this[_a12] = true;
3573
+ super({ name: name13, message, cause });
3574
+ this[_a13] = true;
3535
3575
  this.originalError = originalError;
3536
3576
  }
3537
3577
  static isInstance(error) {
3538
- return import_provider15.AISDKError.hasMarker(error, marker12);
3578
+ return import_provider16.AISDKError.hasMarker(error, marker13);
3539
3579
  }
3540
3580
  };
3541
- _a12 = symbol12;
3581
+ _a13 = symbol13;
3542
3582
 
3543
3583
  // core/generate-text/parse-tool-call.ts
3544
3584
  async function parseToolCall({
@@ -3683,7 +3723,7 @@ async function generateText({
3683
3723
  onStepFinish,
3684
3724
  ...settings
3685
3725
  }) {
3686
- var _a14;
3726
+ var _a15;
3687
3727
  if (maxSteps < 1) {
3688
3728
  throw new InvalidArgumentError({
3689
3729
  parameter: "maxSteps",
@@ -3700,7 +3740,7 @@ async function generateText({
3700
3740
  });
3701
3741
  const initialPrompt = standardizePrompt({
3702
3742
  prompt: {
3703
- system: (_a14 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a14 : system,
3743
+ system: (_a15 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a15 : system,
3704
3744
  prompt,
3705
3745
  messages
3706
3746
  },
@@ -3726,7 +3766,7 @@ async function generateText({
3726
3766
  }),
3727
3767
  tracer,
3728
3768
  fn: async (span) => {
3729
- var _a15, _b, _c, _d, _e, _f;
3769
+ var _a16, _b, _c, _d, _e, _f;
3730
3770
  const mode = {
3731
3771
  type: "regular",
3732
3772
  ...prepareToolsAndToolChoice({ tools, toolChoice, activeTools })
@@ -3778,8 +3818,8 @@ async function generateText({
3778
3818
  "ai.prompt.tools": {
3779
3819
  // convert the language model level tools:
3780
3820
  input: () => {
3781
- var _a16;
3782
- return (_a16 = mode.tools) == null ? void 0 : _a16.map((tool2) => JSON.stringify(tool2));
3821
+ var _a17;
3822
+ return (_a17 = mode.tools) == null ? void 0 : _a17.map((tool2) => JSON.stringify(tool2));
3783
3823
  }
3784
3824
  },
3785
3825
  "ai.prompt.toolChoice": {
@@ -3799,7 +3839,7 @@ async function generateText({
3799
3839
  }),
3800
3840
  tracer,
3801
3841
  fn: async (span2) => {
3802
- var _a16, _b2, _c2, _d2, _e2, _f2;
3842
+ var _a17, _b2, _c2, _d2, _e2, _f2;
3803
3843
  const result = await model.doGenerate({
3804
3844
  mode,
3805
3845
  ...callSettings,
@@ -3811,7 +3851,7 @@ async function generateText({
3811
3851
  headers
3812
3852
  });
3813
3853
  const responseData = {
3814
- id: (_b2 = (_a16 = result.response) == null ? void 0 : _a16.id) != null ? _b2 : generateId3(),
3854
+ id: (_b2 = (_a17 = result.response) == null ? void 0 : _a17.id) != null ? _b2 : generateId3(),
3815
3855
  timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
3816
3856
  modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : model.modelId
3817
3857
  };
@@ -3845,7 +3885,7 @@ async function generateText({
3845
3885
  })
3846
3886
  );
3847
3887
  currentToolCalls = await Promise.all(
3848
- ((_a15 = currentModelResponse.toolCalls) != null ? _a15 : []).map(
3888
+ ((_a16 = currentModelResponse.toolCalls) != null ? _a16 : []).map(
3849
3889
  (toolCall) => parseToolCall({
3850
3890
  toolCall,
3851
3891
  tools,
@@ -4083,7 +4123,7 @@ var import_provider_utils10 = require("@ai-sdk/provider-utils");
4083
4123
  var import_ui_utils6 = require("@ai-sdk/ui-utils");
4084
4124
 
4085
4125
  // errors/index.ts
4086
- var import_provider16 = require("@ai-sdk/provider");
4126
+ var import_provider17 = require("@ai-sdk/provider");
4087
4127
 
4088
4128
  // core/generate-text/output.ts
4089
4129
  var text = () => ({
@@ -4163,7 +4203,7 @@ var object = ({
4163
4203
  };
4164
4204
 
4165
4205
  // core/generate-text/smooth-stream.ts
4166
- var import_provider17 = require("@ai-sdk/provider");
4206
+ var import_provider18 = require("@ai-sdk/provider");
4167
4207
  var CHUNKING_REGEXPS = {
4168
4208
  word: /\s*\S+\s+/m,
4169
4209
  line: /[^\n]*\n/m
@@ -4175,7 +4215,7 @@ function smoothStream({
4175
4215
  } = {}) {
4176
4216
  const chunkingRegexp = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
4177
4217
  if (chunkingRegexp == null) {
4178
- throw new import_provider17.InvalidArgumentError({
4218
+ throw new import_provider18.InvalidArgumentError({
4179
4219
  argument: "chunking",
4180
4220
  message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
4181
4221
  });
@@ -4522,7 +4562,8 @@ function streamText({
4522
4562
  experimental_continueSteps: continueSteps = false,
4523
4563
  experimental_telemetry: telemetry,
4524
4564
  experimental_providerMetadata: providerMetadata,
4525
- experimental_toolCallStreaming: toolCallStreaming = false,
4565
+ experimental_toolCallStreaming = false,
4566
+ toolCallStreaming = experimental_toolCallStreaming,
4526
4567
  experimental_activeTools: activeTools,
4527
4568
  experimental_repairToolCall: repairToolCall,
4528
4569
  experimental_transform: transform,
@@ -4656,7 +4697,7 @@ var DefaultStreamTextResult = class {
4656
4697
  this.requestPromise = new DelayedPromise();
4657
4698
  this.responsePromise = new DelayedPromise();
4658
4699
  this.stepsPromise = new DelayedPromise();
4659
- var _a14;
4700
+ var _a15;
4660
4701
  if (maxSteps < 1) {
4661
4702
  throw new InvalidArgumentError({
4662
4703
  parameter: "maxSteps",
@@ -4767,7 +4808,7 @@ var DefaultStreamTextResult = class {
4767
4808
  }
4768
4809
  },
4769
4810
  async flush(controller) {
4770
- var _a15;
4811
+ var _a16;
4771
4812
  try {
4772
4813
  if (recordedSteps.length === 0) {
4773
4814
  return;
@@ -4800,7 +4841,7 @@ var DefaultStreamTextResult = class {
4800
4841
  reasoning: recordedReasoningText,
4801
4842
  toolCalls: lastStep.toolCalls,
4802
4843
  toolResults: lastStep.toolResults,
4803
- request: (_a15 = lastStep.request) != null ? _a15 : {},
4844
+ request: (_a16 = lastStep.request) != null ? _a16 : {},
4804
4845
  response: lastStep.response,
4805
4846
  warnings: lastStep.warnings,
4806
4847
  experimental_providerMetadata: lastStep.experimental_providerMetadata,
@@ -4814,8 +4855,8 @@ var DefaultStreamTextResult = class {
4814
4855
  "ai.response.text": { output: () => recordedFullText },
4815
4856
  "ai.response.toolCalls": {
4816
4857
  output: () => {
4817
- var _a16;
4818
- return ((_a16 = lastStep.toolCalls) == null ? void 0 : _a16.length) ? JSON.stringify(lastStep.toolCalls) : void 0;
4858
+ var _a17;
4859
+ return ((_a17 = lastStep.toolCalls) == null ? void 0 : _a17.length) ? JSON.stringify(lastStep.toolCalls) : void 0;
4819
4860
  }
4820
4861
  },
4821
4862
  "ai.usage.promptTokens": usage.promptTokens,
@@ -4857,7 +4898,7 @@ var DefaultStreamTextResult = class {
4857
4898
  });
4858
4899
  const initialPrompt = standardizePrompt({
4859
4900
  prompt: {
4860
- system: (_a14 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a14 : system,
4901
+ system: (_a15 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a15 : system,
4861
4902
  prompt,
4862
4903
  messages
4863
4904
  },
@@ -4933,8 +4974,8 @@ var DefaultStreamTextResult = class {
4933
4974
  "ai.prompt.tools": {
4934
4975
  // convert the language model level tools:
4935
4976
  input: () => {
4936
- var _a15;
4937
- return (_a15 = mode.tools) == null ? void 0 : _a15.map((tool2) => JSON.stringify(tool2));
4977
+ var _a16;
4978
+ return (_a16 = mode.tools) == null ? void 0 : _a16.map((tool2) => JSON.stringify(tool2));
4938
4979
  }
4939
4980
  },
4940
4981
  "ai.prompt.toolChoice": {
@@ -5020,7 +5061,7 @@ var DefaultStreamTextResult = class {
5020
5061
  transformedStream.pipeThrough(
5021
5062
  new TransformStream({
5022
5063
  async transform(chunk, controller) {
5023
- var _a15, _b, _c;
5064
+ var _a16, _b, _c;
5024
5065
  if (stepFirstChunk) {
5025
5066
  const msToFirstChunk = now2() - startTimestampMs;
5026
5067
  stepFirstChunk = false;
@@ -5083,7 +5124,7 @@ var DefaultStreamTextResult = class {
5083
5124
  }
5084
5125
  case "response-metadata": {
5085
5126
  stepResponse = {
5086
- id: (_a15 = chunk.id) != null ? _a15 : stepResponse.id,
5127
+ id: (_a16 = chunk.id) != null ? _a16 : stepResponse.id,
5087
5128
  timestamp: (_b = chunk.timestamp) != null ? _b : stepResponse.timestamp,
5088
5129
  modelId: (_c = chunk.modelId) != null ? _c : stepResponse.modelId
5089
5130
  };
@@ -5536,9 +5577,9 @@ var DefaultStreamTextResult = class {
5536
5577
  );
5537
5578
  }
5538
5579
  toTextStreamResponse(init) {
5539
- var _a14;
5580
+ var _a15;
5540
5581
  return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
5541
- status: (_a14 = init == null ? void 0 : init.status) != null ? _a14 : 200,
5582
+ status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
5542
5583
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
5543
5584
  contentType: "text/plain; charset=utf-8"
5544
5585
  })
@@ -5580,12 +5621,23 @@ var experimental_wrapLanguageModel = ({
5580
5621
  };
5581
5622
  };
5582
5623
 
5624
+ // core/prompt/append-client-message.ts
5625
+ function appendClientMessage({
5626
+ messages,
5627
+ message
5628
+ }) {
5629
+ return [
5630
+ ...messages.length > 0 && messages[messages.length - 1].id === message.id ? messages.slice(0, -1) : messages,
5631
+ message
5632
+ ];
5633
+ }
5634
+
5583
5635
  // core/prompt/append-response-messages.ts
5584
5636
  function appendResponseMessages({
5585
5637
  messages,
5586
5638
  responseMessages
5587
5639
  }) {
5588
- var _a14;
5640
+ var _a15;
5589
5641
  const clonedMessages = structuredClone(messages);
5590
5642
  for (const message of responseMessages) {
5591
5643
  const role = message.role;
@@ -5608,7 +5660,7 @@ function appendResponseMessages({
5608
5660
  }
5609
5661
  case "tool": {
5610
5662
  const previousMessage = clonedMessages[clonedMessages.length - 1];
5611
- (_a14 = previousMessage.toolInvocations) != null ? _a14 : previousMessage.toolInvocations = [];
5663
+ (_a15 = previousMessage.toolInvocations) != null ? _a15 : previousMessage.toolInvocations = [];
5612
5664
  if (previousMessage.role !== "assistant") {
5613
5665
  throw new Error(
5614
5666
  `Tool result must follow an assistant message: ${previousMessage.role}`
@@ -5637,7 +5689,7 @@ function appendResponseMessages({
5637
5689
  }
5638
5690
 
5639
5691
  // core/registry/custom-provider.ts
5640
- var import_provider18 = require("@ai-sdk/provider");
5692
+ var import_provider19 = require("@ai-sdk/provider");
5641
5693
  function experimental_customProvider({
5642
5694
  languageModels,
5643
5695
  textEmbeddingModels,
@@ -5651,7 +5703,7 @@ function experimental_customProvider({
5651
5703
  if (fallbackProvider) {
5652
5704
  return fallbackProvider.languageModel(modelId);
5653
5705
  }
5654
- throw new import_provider18.NoSuchModelError({ modelId, modelType: "languageModel" });
5706
+ throw new import_provider19.NoSuchModelError({ modelId, modelType: "languageModel" });
5655
5707
  },
5656
5708
  textEmbeddingModel(modelId) {
5657
5709
  if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
@@ -5660,18 +5712,18 @@ function experimental_customProvider({
5660
5712
  if (fallbackProvider) {
5661
5713
  return fallbackProvider.textEmbeddingModel(modelId);
5662
5714
  }
5663
- throw new import_provider18.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
5715
+ throw new import_provider19.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
5664
5716
  }
5665
5717
  };
5666
5718
  }
5667
5719
 
5668
5720
  // core/registry/no-such-provider-error.ts
5669
- var import_provider19 = require("@ai-sdk/provider");
5670
- var name13 = "AI_NoSuchProviderError";
5671
- var marker13 = `vercel.ai.error.${name13}`;
5672
- var symbol13 = Symbol.for(marker13);
5673
- var _a13;
5674
- var NoSuchProviderError = class extends import_provider19.NoSuchModelError {
5721
+ var import_provider20 = require("@ai-sdk/provider");
5722
+ var name14 = "AI_NoSuchProviderError";
5723
+ var marker14 = `vercel.ai.error.${name14}`;
5724
+ var symbol14 = Symbol.for(marker14);
5725
+ var _a14;
5726
+ var NoSuchProviderError = class extends import_provider20.NoSuchModelError {
5675
5727
  constructor({
5676
5728
  modelId,
5677
5729
  modelType,
@@ -5679,19 +5731,19 @@ var NoSuchProviderError = class extends import_provider19.NoSuchModelError {
5679
5731
  availableProviders,
5680
5732
  message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
5681
5733
  }) {
5682
- super({ errorName: name13, modelId, modelType, message });
5683
- this[_a13] = true;
5734
+ super({ errorName: name14, modelId, modelType, message });
5735
+ this[_a14] = true;
5684
5736
  this.providerId = providerId;
5685
5737
  this.availableProviders = availableProviders;
5686
5738
  }
5687
5739
  static isInstance(error) {
5688
- return import_provider19.AISDKError.hasMarker(error, marker13);
5740
+ return import_provider20.AISDKError.hasMarker(error, marker14);
5689
5741
  }
5690
5742
  };
5691
- _a13 = symbol13;
5743
+ _a14 = symbol14;
5692
5744
 
5693
5745
  // core/registry/provider-registry.ts
5694
- var import_provider20 = require("@ai-sdk/provider");
5746
+ var import_provider21 = require("@ai-sdk/provider");
5695
5747
  function experimental_createProviderRegistry(providers) {
5696
5748
  const registry = new DefaultProviderRegistry();
5697
5749
  for (const [id, provider] of Object.entries(providers)) {
@@ -5721,7 +5773,7 @@ var DefaultProviderRegistry = class {
5721
5773
  splitId(id, modelType) {
5722
5774
  const index = id.indexOf(":");
5723
5775
  if (index === -1) {
5724
- throw new import_provider20.NoSuchModelError({
5776
+ throw new import_provider21.NoSuchModelError({
5725
5777
  modelId: id,
5726
5778
  modelType,
5727
5779
  message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId:modelId")`
@@ -5730,21 +5782,21 @@ var DefaultProviderRegistry = class {
5730
5782
  return [id.slice(0, index), id.slice(index + 1)];
5731
5783
  }
5732
5784
  languageModel(id) {
5733
- var _a14, _b;
5785
+ var _a15, _b;
5734
5786
  const [providerId, modelId] = this.splitId(id, "languageModel");
5735
- const model = (_b = (_a14 = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a14, modelId);
5787
+ const model = (_b = (_a15 = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a15, modelId);
5736
5788
  if (model == null) {
5737
- throw new import_provider20.NoSuchModelError({ modelId: id, modelType: "languageModel" });
5789
+ throw new import_provider21.NoSuchModelError({ modelId: id, modelType: "languageModel" });
5738
5790
  }
5739
5791
  return model;
5740
5792
  }
5741
5793
  textEmbeddingModel(id) {
5742
- var _a14;
5794
+ var _a15;
5743
5795
  const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
5744
5796
  const provider = this.getProvider(providerId);
5745
- const model = (_a14 = provider.textEmbeddingModel) == null ? void 0 : _a14.call(provider, modelId);
5797
+ const model = (_a15 = provider.textEmbeddingModel) == null ? void 0 : _a15.call(provider, modelId);
5746
5798
  if (model == null) {
5747
- throw new import_provider20.NoSuchModelError({
5799
+ throw new import_provider21.NoSuchModelError({
5748
5800
  modelId: id,
5749
5801
  modelType: "textEmbeddingModel"
5750
5802
  });
@@ -5805,8 +5857,8 @@ function simulateReadableStream({
5805
5857
  chunkDelayInMs = 0,
5806
5858
  _internal
5807
5859
  }) {
5808
- var _a14;
5809
- const delay2 = (_a14 = _internal == null ? void 0 : _internal.delay) != null ? _a14 : delay;
5860
+ var _a15;
5861
+ const delay2 = (_a15 = _internal == null ? void 0 : _internal.delay) != null ? _a15 : delay;
5810
5862
  let index = 0;
5811
5863
  return new ReadableStream({
5812
5864
  async pull(controller) {
@@ -5825,7 +5877,7 @@ var import_ui_utils10 = require("@ai-sdk/ui-utils");
5825
5877
  function AssistantResponse({ threadId, messageId }, process2) {
5826
5878
  const stream = new ReadableStream({
5827
5879
  async start(controller) {
5828
- var _a14;
5880
+ var _a15;
5829
5881
  const textEncoder = new TextEncoder();
5830
5882
  const sendMessage = (message) => {
5831
5883
  controller.enqueue(
@@ -5847,7 +5899,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
5847
5899
  );
5848
5900
  };
5849
5901
  const forwardStream = async (stream2) => {
5850
- var _a15, _b;
5902
+ var _a16, _b;
5851
5903
  let result = void 0;
5852
5904
  for await (const value of stream2) {
5853
5905
  switch (value.event) {
@@ -5864,7 +5916,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
5864
5916
  break;
5865
5917
  }
5866
5918
  case "thread.message.delta": {
5867
- const content = (_a15 = value.data.delta.content) == null ? void 0 : _a15[0];
5919
+ const content = (_a16 = value.data.delta.content) == null ? void 0 : _a16[0];
5868
5920
  if ((content == null ? void 0 : content.type) === "text" && ((_b = content.text) == null ? void 0 : _b.value) != null) {
5869
5921
  controller.enqueue(
5870
5922
  textEncoder.encode(
@@ -5898,7 +5950,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
5898
5950
  forwardStream
5899
5951
  });
5900
5952
  } catch (error) {
5901
- sendError((_a14 = error.message) != null ? _a14 : `${error}`);
5953
+ sendError((_a15 = error.message) != null ? _a15 : `${error}`);
5902
5954
  } finally {
5903
5955
  controller.close();
5904
5956
  }
@@ -5959,7 +6011,7 @@ function toDataStreamInternal(stream, callbacks) {
5959
6011
  return stream.pipeThrough(
5960
6012
  new TransformStream({
5961
6013
  transform: async (value, controller) => {
5962
- var _a14;
6014
+ var _a15;
5963
6015
  if (typeof value === "string") {
5964
6016
  controller.enqueue(value);
5965
6017
  return;
@@ -5967,7 +6019,7 @@ function toDataStreamInternal(stream, callbacks) {
5967
6019
  if ("event" in value) {
5968
6020
  if (value.event === "on_chat_model_stream") {
5969
6021
  forwardAIMessageChunk(
5970
- (_a14 = value.data) == null ? void 0 : _a14.chunk,
6022
+ (_a15 = value.data) == null ? void 0 : _a15.chunk,
5971
6023
  controller
5972
6024
  );
5973
6025
  }
@@ -5990,7 +6042,7 @@ function toDataStream(stream, callbacks) {
5990
6042
  );
5991
6043
  }
5992
6044
  function toDataStreamResponse(stream, options) {
5993
- var _a14;
6045
+ var _a15;
5994
6046
  const dataStream = toDataStreamInternal(
5995
6047
  stream,
5996
6048
  options == null ? void 0 : options.callbacks
@@ -5999,7 +6051,7 @@ function toDataStreamResponse(stream, options) {
5999
6051
  const init = options == null ? void 0 : options.init;
6000
6052
  const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
6001
6053
  return new Response(responseStream, {
6002
- status: (_a14 = init == null ? void 0 : init.status) != null ? _a14 : 200,
6054
+ status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
6003
6055
  statusText: init == null ? void 0 : init.statusText,
6004
6056
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
6005
6057
  contentType: "text/plain; charset=utf-8",
@@ -6054,14 +6106,14 @@ function toDataStream2(stream, callbacks) {
6054
6106
  );
6055
6107
  }
6056
6108
  function toDataStreamResponse2(stream, options = {}) {
6057
- var _a14;
6109
+ var _a15;
6058
6110
  const { init, data, callbacks } = options;
6059
6111
  const dataStream = toDataStreamInternal2(stream, callbacks).pipeThrough(
6060
6112
  new TextEncoderStream()
6061
6113
  );
6062
6114
  const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
6063
6115
  return new Response(responseStream, {
6064
- status: (_a14 = init == null ? void 0 : init.status) != null ? _a14 : 200,
6116
+ status: (_a15 = init == null ? void 0 : init.status) != null ? _a15 : 200,
6065
6117
  statusText: init == null ? void 0 : init.statusText,
6066
6118
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
6067
6119
  contentType: "text/plain; charset=utf-8",
@@ -6171,6 +6223,7 @@ var StreamData = class {
6171
6223
  LoadAPIKeyError,
6172
6224
  MessageConversionError,
6173
6225
  NoContentGeneratedError,
6226
+ NoImageGeneratedError,
6174
6227
  NoObjectGeneratedError,
6175
6228
  NoOutputSpecifiedError,
6176
6229
  NoSuchModelError,
@@ -6183,8 +6236,14 @@ var StreamData = class {
6183
6236
  ToolExecutionError,
6184
6237
  TypeValidationError,
6185
6238
  UnsupportedFunctionalityError,
6239
+ appendClientMessage,
6186
6240
  appendResponseMessages,
6187
6241
  convertToCoreMessages,
6242
+ coreAssistantMessageSchema,
6243
+ coreMessageSchema,
6244
+ coreSystemMessageSchema,
6245
+ coreToolMessageSchema,
6246
+ coreUserMessageSchema,
6188
6247
  cosineSimilarity,
6189
6248
  createDataStream,
6190
6249
  createDataStreamResponse,