ai 4.0.12 → 4.0.14

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 name12 in all)
8
- __defProp(target, name12, { get: all[name12], enumerable: true });
7
+ for (var name13 in all)
8
+ __defProp(target, name13, { get: all[name13], enumerable: true });
9
9
  };
10
10
  var __copyProps = (to, from, except, desc) => {
11
11
  if (from && typeof from === "object" || typeof from === "function") {
@@ -20,33 +20,34 @@ 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_provider14.AISDKError,
24
- APICallError: () => import_provider14.APICallError,
23
+ AISDKError: () => import_provider15.AISDKError,
24
+ APICallError: () => import_provider15.APICallError,
25
25
  AssistantResponse: () => AssistantResponse,
26
26
  DownloadError: () => DownloadError,
27
- EmptyResponseBodyError: () => import_provider14.EmptyResponseBodyError,
27
+ EmptyResponseBodyError: () => import_provider15.EmptyResponseBodyError,
28
28
  InvalidArgumentError: () => InvalidArgumentError,
29
29
  InvalidDataContentError: () => InvalidDataContentError,
30
30
  InvalidMessageRoleError: () => InvalidMessageRoleError,
31
- InvalidPromptError: () => import_provider14.InvalidPromptError,
32
- InvalidResponseDataError: () => import_provider14.InvalidResponseDataError,
31
+ InvalidPromptError: () => import_provider15.InvalidPromptError,
32
+ InvalidResponseDataError: () => import_provider15.InvalidResponseDataError,
33
33
  InvalidToolArgumentsError: () => InvalidToolArgumentsError,
34
- JSONParseError: () => import_provider14.JSONParseError,
34
+ JSONParseError: () => import_provider15.JSONParseError,
35
35
  LangChainAdapter: () => langchain_adapter_exports,
36
36
  LlamaIndexAdapter: () => llamaindex_adapter_exports,
37
- LoadAPIKeyError: () => import_provider14.LoadAPIKeyError,
37
+ LoadAPIKeyError: () => import_provider15.LoadAPIKeyError,
38
38
  MessageConversionError: () => MessageConversionError,
39
- NoContentGeneratedError: () => import_provider14.NoContentGeneratedError,
39
+ NoContentGeneratedError: () => import_provider15.NoContentGeneratedError,
40
40
  NoObjectGeneratedError: () => NoObjectGeneratedError,
41
- NoSuchModelError: () => import_provider14.NoSuchModelError,
41
+ NoSuchModelError: () => import_provider15.NoSuchModelError,
42
42
  NoSuchProviderError: () => NoSuchProviderError,
43
43
  NoSuchToolError: () => NoSuchToolError,
44
44
  Output: () => output_exports,
45
45
  RetryError: () => RetryError,
46
46
  StreamData: () => StreamData,
47
+ ToolCallRepairError: () => ToolCallRepairError,
47
48
  ToolExecutionError: () => ToolExecutionError,
48
- TypeValidationError: () => import_provider14.TypeValidationError,
49
- UnsupportedFunctionalityError: () => import_provider14.UnsupportedFunctionalityError,
49
+ TypeValidationError: () => import_provider15.TypeValidationError,
50
+ UnsupportedFunctionalityError: () => import_provider15.UnsupportedFunctionalityError,
50
51
  convertToCoreMessages: () => convertToCoreMessages,
51
52
  cosineSimilarity: () => cosineSimilarity,
52
53
  createDataStream: () => createDataStream,
@@ -55,10 +56,11 @@ __export(streams_exports, {
55
56
  embedMany: () => embedMany,
56
57
  experimental_createProviderRegistry: () => experimental_createProviderRegistry,
57
58
  experimental_customProvider: () => experimental_customProvider,
59
+ experimental_generateImage: () => generateImage,
58
60
  experimental_wrapLanguageModel: () => experimental_wrapLanguageModel,
59
61
  formatAssistantStreamPart: () => import_ui_utils14.formatAssistantStreamPart,
60
62
  formatDataStreamPart: () => import_ui_utils14.formatDataStreamPart,
61
- generateId: () => import_provider_utils12.generateId,
63
+ generateId: () => import_provider_utils13.generateId,
62
64
  generateObject: () => generateObject,
63
65
  generateText: () => generateText,
64
66
  jsonSchema: () => import_ui_utils9.jsonSchema,
@@ -73,7 +75,7 @@ __export(streams_exports, {
73
75
  });
74
76
  module.exports = __toCommonJS(streams_exports);
75
77
  var import_ui_utils14 = require("@ai-sdk/ui-utils");
76
- var import_provider_utils12 = require("@ai-sdk/provider-utils");
78
+ var import_provider_utils13 = require("@ai-sdk/provider-utils");
77
79
 
78
80
  // core/index.ts
79
81
  var import_ui_utils9 = require("@ai-sdk/ui-utils");
@@ -407,7 +409,7 @@ function getBaseTelemetryAttributes({
407
409
  telemetry,
408
410
  headers
409
411
  }) {
410
- var _a12;
412
+ var _a13;
411
413
  return {
412
414
  "ai.model.provider": model.provider,
413
415
  "ai.model.id": model.modelId,
@@ -417,7 +419,7 @@ function getBaseTelemetryAttributes({
417
419
  return attributes;
418
420
  }, {}),
419
421
  // add metadata as attributes:
420
- ...Object.entries((_a12 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a12 : {}).reduce(
422
+ ...Object.entries((_a13 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a13 : {}).reduce(
421
423
  (attributes, [key, value]) => {
422
424
  attributes[`ai.telemetry.metadata.${key}`] = value;
423
425
  return attributes;
@@ -442,7 +444,7 @@ var noopTracer = {
442
444
  startSpan() {
443
445
  return noopSpan;
444
446
  },
445
- startActiveSpan(name12, arg1, arg2, arg3) {
447
+ startActiveSpan(name13, arg1, arg2, arg3) {
446
448
  if (typeof arg1 === "function") {
447
449
  return arg1(noopSpan);
448
450
  }
@@ -512,13 +514,13 @@ function getTracer({
512
514
  // core/telemetry/record-span.ts
513
515
  var import_api2 = require("@opentelemetry/api");
514
516
  function recordSpan({
515
- name: name12,
517
+ name: name13,
516
518
  tracer,
517
519
  attributes,
518
520
  fn,
519
521
  endWhenDone = true
520
522
  }) {
521
- return tracer.startActiveSpan(name12, { attributes }, async (span) => {
523
+ return tracer.startActiveSpan(name13, { attributes }, async (span) => {
522
524
  try {
523
525
  const result = await fn(span);
524
526
  if (endWhenDone) {
@@ -626,14 +628,14 @@ async function embed({
626
628
  }),
627
629
  tracer,
628
630
  fn: async (doEmbedSpan) => {
629
- var _a12;
631
+ var _a13;
630
632
  const modelResponse = await model.doEmbed({
631
633
  values: [value],
632
634
  abortSignal,
633
635
  headers
634
636
  });
635
637
  const embedding2 = modelResponse.embeddings[0];
636
- const usage2 = (_a12 = modelResponse.usage) != null ? _a12 : { tokens: NaN };
638
+ const usage2 = (_a13 = modelResponse.usage) != null ? _a13 : { tokens: NaN };
637
639
  doEmbedSpan.setAttributes(
638
640
  selectTelemetryAttributes({
639
641
  telemetry,
@@ -743,14 +745,14 @@ async function embedMany({
743
745
  }),
744
746
  tracer,
745
747
  fn: async (doEmbedSpan) => {
746
- var _a12;
748
+ var _a13;
747
749
  const modelResponse = await model.doEmbed({
748
750
  values,
749
751
  abortSignal,
750
752
  headers
751
753
  });
752
754
  const embeddings3 = modelResponse.embeddings;
753
- const usage2 = (_a12 = modelResponse.usage) != null ? _a12 : { tokens: NaN };
755
+ const usage2 = (_a13 = modelResponse.usage) != null ? _a13 : { tokens: NaN };
754
756
  doEmbedSpan.setAttributes(
755
757
  selectTelemetryAttributes({
756
758
  telemetry,
@@ -802,14 +804,14 @@ async function embedMany({
802
804
  }),
803
805
  tracer,
804
806
  fn: async (doEmbedSpan) => {
805
- var _a12;
807
+ var _a13;
806
808
  const modelResponse = await model.doEmbed({
807
809
  values: chunk,
808
810
  abortSignal,
809
811
  headers
810
812
  });
811
813
  const embeddings2 = modelResponse.embeddings;
812
- const usage2 = (_a12 = modelResponse.usage) != null ? _a12 : { tokens: NaN };
814
+ const usage2 = (_a13 = modelResponse.usage) != null ? _a13 : { tokens: NaN };
813
815
  doEmbedSpan.setAttributes(
814
816
  selectTelemetryAttributes({
815
817
  telemetry,
@@ -855,8 +857,47 @@ var DefaultEmbedManyResult = class {
855
857
  }
856
858
  };
857
859
 
860
+ // core/generate-image/generate-image.ts
861
+ var import_provider_utils2 = require("@ai-sdk/provider-utils");
862
+ async function generateImage({
863
+ model,
864
+ prompt,
865
+ n,
866
+ size,
867
+ providerOptions,
868
+ maxRetries: maxRetriesArg,
869
+ abortSignal,
870
+ headers
871
+ }) {
872
+ const { retry } = prepareRetries({ maxRetries: maxRetriesArg });
873
+ const { images } = await retry(
874
+ () => model.doGenerate({
875
+ prompt,
876
+ n: n != null ? n : 1,
877
+ abortSignal,
878
+ headers,
879
+ size,
880
+ providerOptions: providerOptions != null ? providerOptions : {}
881
+ })
882
+ );
883
+ return new DefaultGenerateImageResult({ base64Images: images });
884
+ }
885
+ var DefaultGenerateImageResult = class {
886
+ constructor(options) {
887
+ this.images = options.base64Images.map((base64) => ({
888
+ base64,
889
+ get uint8Array() {
890
+ return (0, import_provider_utils2.convertBase64ToUint8Array)(this.base64);
891
+ }
892
+ }));
893
+ }
894
+ get image() {
895
+ return this.images[0];
896
+ }
897
+ };
898
+
858
899
  // core/generate-object/generate-object.ts
859
- var import_provider_utils5 = require("@ai-sdk/provider-utils");
900
+ var import_provider_utils6 = require("@ai-sdk/provider-utils");
860
901
 
861
902
  // util/download-error.ts
862
903
  var import_provider4 = require("@ai-sdk/provider");
@@ -889,7 +930,7 @@ async function download({
889
930
  url,
890
931
  fetchImplementation = fetch
891
932
  }) {
892
- var _a12;
933
+ var _a13;
893
934
  const urlText = url.toString();
894
935
  try {
895
936
  const response = await fetchImplementation(urlText);
@@ -902,7 +943,7 @@ async function download({
902
943
  }
903
944
  return {
904
945
  data: new Uint8Array(await response.arrayBuffer()),
905
- mimeType: (_a12 = response.headers.get("content-type")) != null ? _a12 : void 0
946
+ mimeType: (_a13 = response.headers.get("content-type")) != null ? _a13 : void 0
906
947
  };
907
948
  } catch (error) {
908
949
  if (DownloadError.isInstance(error)) {
@@ -929,7 +970,7 @@ function detectImageMimeType(image) {
929
970
  }
930
971
 
931
972
  // core/prompt/data-content.ts
932
- var import_provider_utils2 = require("@ai-sdk/provider-utils");
973
+ var import_provider_utils3 = require("@ai-sdk/provider-utils");
933
974
 
934
975
  // core/prompt/invalid-data-content-error.ts
935
976
  var import_provider5 = require("@ai-sdk/provider");
@@ -962,8 +1003,8 @@ var dataContentSchema = import_zod.z.union([
962
1003
  import_zod.z.custom(
963
1004
  // Buffer might not be available in some environments such as CloudFlare:
964
1005
  (value) => {
965
- var _a12, _b;
966
- return (_b = (_a12 = globalThis.Buffer) == null ? void 0 : _a12.isBuffer(value)) != null ? _b : false;
1006
+ var _a13, _b;
1007
+ return (_b = (_a13 = globalThis.Buffer) == null ? void 0 : _a13.isBuffer(value)) != null ? _b : false;
967
1008
  },
968
1009
  { message: "Must be a Buffer" }
969
1010
  )
@@ -973,9 +1014,9 @@ function convertDataContentToBase64String(content) {
973
1014
  return content;
974
1015
  }
975
1016
  if (content instanceof ArrayBuffer) {
976
- return (0, import_provider_utils2.convertUint8ArrayToBase64)(new Uint8Array(content));
1017
+ return (0, import_provider_utils3.convertUint8ArrayToBase64)(new Uint8Array(content));
977
1018
  }
978
- return (0, import_provider_utils2.convertUint8ArrayToBase64)(content);
1019
+ return (0, import_provider_utils3.convertUint8ArrayToBase64)(content);
979
1020
  }
980
1021
  function convertDataContentToUint8Array(content) {
981
1022
  if (content instanceof Uint8Array) {
@@ -983,7 +1024,7 @@ function convertDataContentToUint8Array(content) {
983
1024
  }
984
1025
  if (typeof content === "string") {
985
1026
  try {
986
- return (0, import_provider_utils2.convertBase64ToUint8Array)(content);
1027
+ return (0, import_provider_utils3.convertBase64ToUint8Array)(content);
987
1028
  } catch (error) {
988
1029
  throw new InvalidDataContentError({
989
1030
  message: "Invalid data content. Content string is not a base64-encoded media.",
@@ -1322,7 +1363,7 @@ function prepareCallSettings({
1322
1363
 
1323
1364
  // core/prompt/standardize-prompt.ts
1324
1365
  var import_provider8 = require("@ai-sdk/provider");
1325
- var import_provider_utils3 = require("@ai-sdk/provider-utils");
1366
+ var import_provider_utils4 = require("@ai-sdk/provider-utils");
1326
1367
  var import_zod7 = require("zod");
1327
1368
 
1328
1369
  // core/prompt/message.ts
@@ -1471,7 +1512,7 @@ function detectSingleMessageCharacteristics(message) {
1471
1512
 
1472
1513
  // core/prompt/attachments-to-parts.ts
1473
1514
  function attachmentsToParts(attachments) {
1474
- var _a12, _b, _c;
1515
+ var _a13, _b, _c;
1475
1516
  const parts = [];
1476
1517
  for (const attachment of attachments) {
1477
1518
  let url;
@@ -1483,7 +1524,7 @@ function attachmentsToParts(attachments) {
1483
1524
  switch (url.protocol) {
1484
1525
  case "http:":
1485
1526
  case "https:": {
1486
- if ((_a12 = attachment.contentType) == null ? void 0 : _a12.startsWith("image/")) {
1527
+ if ((_a13 = attachment.contentType) == null ? void 0 : _a13.startsWith("image/")) {
1487
1528
  parts.push({ type: "image", image: url });
1488
1529
  } else {
1489
1530
  if (!attachment.contentType) {
@@ -1569,8 +1610,8 @@ _a6 = symbol6;
1569
1610
 
1570
1611
  // core/prompt/convert-to-core-messages.ts
1571
1612
  function convertToCoreMessages(messages, options) {
1572
- var _a12;
1573
- const tools = (_a12 = options == null ? void 0 : options.tools) != null ? _a12 : {};
1613
+ var _a13;
1614
+ const tools = (_a13 = options == null ? void 0 : options.tools) != null ? _a13 : {};
1574
1615
  const coreMessages = [];
1575
1616
  for (const message of messages) {
1576
1617
  const { role, content, toolInvocations, experimental_attachments } = message;
@@ -1705,7 +1746,7 @@ function standardizePrompt({
1705
1746
  const messages = promptType === "ui-messages" ? convertToCoreMessages(prompt.messages, {
1706
1747
  tools
1707
1748
  }) : prompt.messages;
1708
- const validationResult = (0, import_provider_utils3.safeValidateTypes)({
1749
+ const validationResult = (0, import_provider_utils4.safeValidateTypes)({
1709
1750
  value: messages,
1710
1751
  schema: import_zod7.z.array(coreMessageSchema)
1711
1752
  });
@@ -1777,7 +1818,7 @@ _a7 = symbol7;
1777
1818
 
1778
1819
  // core/generate-object/output-strategy.ts
1779
1820
  var import_provider10 = require("@ai-sdk/provider");
1780
- var import_provider_utils4 = require("@ai-sdk/provider-utils");
1821
+ var import_provider_utils5 = require("@ai-sdk/provider-utils");
1781
1822
  var import_ui_utils2 = require("@ai-sdk/ui-utils");
1782
1823
 
1783
1824
  // core/util/async-iterable-stream.ts
@@ -1827,7 +1868,7 @@ var objectOutputStrategy = (schema) => ({
1827
1868
  };
1828
1869
  },
1829
1870
  validateFinalResult(value) {
1830
- return (0, import_provider_utils4.safeValidateTypes)({ value, schema });
1871
+ return (0, import_provider_utils5.safeValidateTypes)({ value, schema });
1831
1872
  },
1832
1873
  createElementStream() {
1833
1874
  throw new import_provider10.UnsupportedFunctionalityError({
@@ -1852,7 +1893,7 @@ var arrayOutputStrategy = (schema) => {
1852
1893
  additionalProperties: false
1853
1894
  },
1854
1895
  validatePartialResult({ value, latestObject, isFirstDelta, isFinalDelta }) {
1855
- var _a12;
1896
+ var _a13;
1856
1897
  if (!(0, import_provider10.isJSONObject)(value) || !(0, import_provider10.isJSONArray)(value.elements)) {
1857
1898
  return {
1858
1899
  success: false,
@@ -1866,7 +1907,7 @@ var arrayOutputStrategy = (schema) => {
1866
1907
  const resultArray = [];
1867
1908
  for (let i = 0; i < inputArray.length; i++) {
1868
1909
  const element = inputArray[i];
1869
- const result = (0, import_provider_utils4.safeValidateTypes)({ value: element, schema });
1910
+ const result = (0, import_provider_utils5.safeValidateTypes)({ value: element, schema });
1870
1911
  if (i === inputArray.length - 1 && !isFinalDelta) {
1871
1912
  continue;
1872
1913
  }
@@ -1875,7 +1916,7 @@ var arrayOutputStrategy = (schema) => {
1875
1916
  }
1876
1917
  resultArray.push(result.value);
1877
1918
  }
1878
- const publishedElementCount = (_a12 = latestObject == null ? void 0 : latestObject.length) != null ? _a12 : 0;
1919
+ const publishedElementCount = (_a13 = latestObject == null ? void 0 : latestObject.length) != null ? _a13 : 0;
1879
1920
  let textDelta = "";
1880
1921
  if (isFirstDelta) {
1881
1922
  textDelta += "[";
@@ -1907,7 +1948,7 @@ var arrayOutputStrategy = (schema) => {
1907
1948
  }
1908
1949
  const inputArray = value.elements;
1909
1950
  for (const element of inputArray) {
1910
- const result = (0, import_provider_utils4.safeValidateTypes)({ value: element, schema });
1951
+ const result = (0, import_provider_utils5.safeValidateTypes)({ value: element, schema });
1911
1952
  if (!result.success) {
1912
1953
  return result;
1913
1954
  }
@@ -2136,7 +2177,7 @@ function validateObjectGenerationInput({
2136
2177
  }
2137
2178
 
2138
2179
  // core/generate-object/generate-object.ts
2139
- var originalGenerateId = (0, import_provider_utils5.createIdGenerator)({ prefix: "aiobj", size: 24 });
2180
+ var originalGenerateId = (0, import_provider_utils6.createIdGenerator)({ prefix: "aiobj", size: 24 });
2140
2181
  async function generateObject({
2141
2182
  model,
2142
2183
  enum: enumValues,
@@ -2207,7 +2248,7 @@ async function generateObject({
2207
2248
  }),
2208
2249
  tracer,
2209
2250
  fn: async (span) => {
2210
- var _a12, _b;
2251
+ var _a13, _b;
2211
2252
  if (mode === "auto" || mode == null) {
2212
2253
  mode = model.defaultObjectGenerationMode;
2213
2254
  }
@@ -2269,7 +2310,7 @@ async function generateObject({
2269
2310
  }),
2270
2311
  tracer,
2271
2312
  fn: async (span2) => {
2272
- var _a13, _b2, _c, _d, _e, _f;
2313
+ var _a14, _b2, _c, _d, _e, _f;
2273
2314
  const result2 = await model.doGenerate({
2274
2315
  mode: {
2275
2316
  type: "object-json",
@@ -2288,7 +2329,7 @@ async function generateObject({
2288
2329
  throw new NoObjectGeneratedError();
2289
2330
  }
2290
2331
  const responseData = {
2291
- id: (_b2 = (_a13 = result2.response) == null ? void 0 : _a13.id) != null ? _b2 : generateId3(),
2332
+ id: (_b2 = (_a14 = result2.response) == null ? void 0 : _a14.id) != null ? _b2 : generateId3(),
2292
2333
  timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
2293
2334
  modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId
2294
2335
  };
@@ -2323,7 +2364,7 @@ async function generateObject({
2323
2364
  rawResponse = generateResult.rawResponse;
2324
2365
  logprobs = generateResult.logprobs;
2325
2366
  resultProviderMetadata = generateResult.providerMetadata;
2326
- request = (_a12 = generateResult.request) != null ? _a12 : {};
2367
+ request = (_a13 = generateResult.request) != null ? _a13 : {};
2327
2368
  response = generateResult.responseData;
2328
2369
  break;
2329
2370
  }
@@ -2369,7 +2410,7 @@ async function generateObject({
2369
2410
  }),
2370
2411
  tracer,
2371
2412
  fn: async (span2) => {
2372
- var _a13, _b2, _c, _d, _e, _f, _g, _h;
2413
+ var _a14, _b2, _c, _d, _e, _f, _g, _h;
2373
2414
  const result2 = await model.doGenerate({
2374
2415
  mode: {
2375
2416
  type: "object-tool",
@@ -2387,7 +2428,7 @@ async function generateObject({
2387
2428
  abortSignal,
2388
2429
  headers
2389
2430
  });
2390
- const objectText = (_b2 = (_a13 = result2.toolCalls) == null ? void 0 : _a13[0]) == null ? void 0 : _b2.args;
2431
+ const objectText = (_b2 = (_a14 = result2.toolCalls) == null ? void 0 : _a14[0]) == null ? void 0 : _b2.args;
2391
2432
  if (objectText === void 0) {
2392
2433
  throw new NoObjectGeneratedError();
2393
2434
  }
@@ -2441,7 +2482,7 @@ async function generateObject({
2441
2482
  throw new Error(`Unsupported mode: ${_exhaustiveCheck}`);
2442
2483
  }
2443
2484
  }
2444
- const parseResult = (0, import_provider_utils5.safeParseJSON)({ text: result });
2485
+ const parseResult = (0, import_provider_utils6.safeParseJSON)({ text: result });
2445
2486
  if (!parseResult.success) {
2446
2487
  throw parseResult.error;
2447
2488
  }
@@ -2492,9 +2533,9 @@ var DefaultGenerateObjectResult = class {
2492
2533
  this.logprobs = options.logprobs;
2493
2534
  }
2494
2535
  toJsonResponse(init) {
2495
- var _a12;
2536
+ var _a13;
2496
2537
  return new Response(JSON.stringify(this.object), {
2497
- status: (_a12 = init == null ? void 0 : init.status) != null ? _a12 : 200,
2538
+ status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
2498
2539
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
2499
2540
  contentType: "application/json; charset=utf-8"
2500
2541
  })
@@ -2503,7 +2544,7 @@ var DefaultGenerateObjectResult = class {
2503
2544
  };
2504
2545
 
2505
2546
  // core/generate-object/stream-object.ts
2506
- var import_provider_utils6 = require("@ai-sdk/provider-utils");
2547
+ var import_provider_utils7 = require("@ai-sdk/provider-utils");
2507
2548
  var import_ui_utils3 = require("@ai-sdk/ui-utils");
2508
2549
 
2509
2550
  // util/delayed-promise.ts
@@ -2529,17 +2570,17 @@ var DelayedPromise = class {
2529
2570
  return this.promise;
2530
2571
  }
2531
2572
  resolve(value) {
2532
- var _a12;
2573
+ var _a13;
2533
2574
  this.status = { type: "resolved", value };
2534
2575
  if (this.promise) {
2535
- (_a12 = this._resolve) == null ? void 0 : _a12.call(this, value);
2576
+ (_a13 = this._resolve) == null ? void 0 : _a13.call(this, value);
2536
2577
  }
2537
2578
  }
2538
2579
  reject(error) {
2539
- var _a12;
2580
+ var _a13;
2540
2581
  this.status = { type: "rejected", error };
2541
2582
  if (this.promise) {
2542
- (_a12 = this._reject) == null ? void 0 : _a12.call(this, error);
2583
+ (_a13 = this._reject) == null ? void 0 : _a13.call(this, error);
2543
2584
  }
2544
2585
  }
2545
2586
  };
@@ -2628,12 +2669,12 @@ function createStitchableStream() {
2628
2669
 
2629
2670
  // core/util/now.ts
2630
2671
  function now() {
2631
- var _a12, _b;
2632
- return (_b = (_a12 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a12.now()) != null ? _b : Date.now();
2672
+ var _a13, _b;
2673
+ return (_b = (_a13 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a13.now()) != null ? _b : Date.now();
2633
2674
  }
2634
2675
 
2635
2676
  // core/generate-object/stream-object.ts
2636
- var originalGenerateId2 = (0, import_provider_utils6.createIdGenerator)({ prefix: "aiobj", size: 24 });
2677
+ var originalGenerateId2 = (0, import_provider_utils7.createIdGenerator)({ prefix: "aiobj", size: 24 });
2637
2678
  function streamObject({
2638
2679
  model,
2639
2680
  schema: inputSchema,
@@ -2918,7 +2959,7 @@ var DefaultStreamObjectResult = class {
2918
2959
  const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
2919
2960
  new TransformStream({
2920
2961
  async transform(chunk, controller) {
2921
- var _a12, _b, _c;
2962
+ var _a13, _b, _c;
2922
2963
  if (isFirstChunk) {
2923
2964
  const msToFirstChunk = now2() - startTimestampMs;
2924
2965
  isFirstChunk = false;
@@ -2964,7 +3005,7 @@ var DefaultStreamObjectResult = class {
2964
3005
  switch (chunk.type) {
2965
3006
  case "response-metadata": {
2966
3007
  response = {
2967
- id: (_a12 = chunk.id) != null ? _a12 : response.id,
3008
+ id: (_a13 = chunk.id) != null ? _a13 : response.id,
2968
3009
  timestamp: (_b = chunk.timestamp) != null ? _b : response.timestamp,
2969
3010
  modelId: (_c = chunk.modelId) != null ? _c : response.modelId
2970
3011
  };
@@ -3161,9 +3202,9 @@ var DefaultStreamObjectResult = class {
3161
3202
  });
3162
3203
  }
3163
3204
  toTextStreamResponse(init) {
3164
- var _a12;
3205
+ var _a13;
3165
3206
  return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
3166
- status: (_a12 = init == null ? void 0 : init.status) != null ? _a12 : 200,
3207
+ status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
3167
3208
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
3168
3209
  contentType: "text/plain; charset=utf-8"
3169
3210
  })
@@ -3172,10 +3213,10 @@ var DefaultStreamObjectResult = class {
3172
3213
  };
3173
3214
 
3174
3215
  // core/generate-text/generate-text.ts
3175
- var import_provider_utils8 = require("@ai-sdk/provider-utils");
3216
+ var import_provider_utils9 = require("@ai-sdk/provider-utils");
3176
3217
 
3177
3218
  // errors/index.ts
3178
- var import_provider14 = require("@ai-sdk/provider");
3219
+ var import_provider15 = require("@ai-sdk/provider");
3179
3220
 
3180
3221
  // errors/invalid-tool-arguments-error.ts
3181
3222
  var import_provider11 = require("@ai-sdk/provider");
@@ -3226,23 +3267,21 @@ var NoSuchToolError = class extends import_provider12.AISDKError {
3226
3267
  };
3227
3268
  _a9 = symbol9;
3228
3269
 
3229
- // errors/tool-execution-error.ts
3270
+ // errors/tool-call-repair-error.ts
3230
3271
  var import_provider13 = require("@ai-sdk/provider");
3231
- var name10 = "AI_ToolExecutionError";
3272
+ var name10 = "AI_ToolCallRepairError";
3232
3273
  var marker10 = `vercel.ai.error.${name10}`;
3233
3274
  var symbol10 = Symbol.for(marker10);
3234
3275
  var _a10;
3235
- var ToolExecutionError = class extends import_provider13.AISDKError {
3276
+ var ToolCallRepairError = class extends import_provider13.AISDKError {
3236
3277
  constructor({
3237
- toolArgs,
3238
- toolName,
3239
3278
  cause,
3240
- message = `Error executing tool ${toolName}: ${(0, import_provider13.getErrorMessage)(cause)}`
3279
+ originalError,
3280
+ message = `Error repairing tool call: ${(0, import_provider13.getErrorMessage)(cause)}`
3241
3281
  }) {
3242
3282
  super({ name: name10, message, cause });
3243
3283
  this[_a10] = true;
3244
- this.toolArgs = toolArgs;
3245
- this.toolName = toolName;
3284
+ this.originalError = originalError;
3246
3285
  }
3247
3286
  static isInstance(error) {
3248
3287
  return import_provider13.AISDKError.hasMarker(error, marker10);
@@ -3250,6 +3289,30 @@ var ToolExecutionError = class extends import_provider13.AISDKError {
3250
3289
  };
3251
3290
  _a10 = symbol10;
3252
3291
 
3292
+ // errors/tool-execution-error.ts
3293
+ var import_provider14 = require("@ai-sdk/provider");
3294
+ var name11 = "AI_ToolExecutionError";
3295
+ var marker11 = `vercel.ai.error.${name11}`;
3296
+ var symbol11 = Symbol.for(marker11);
3297
+ var _a11;
3298
+ var ToolExecutionError = class extends import_provider14.AISDKError {
3299
+ constructor({
3300
+ toolArgs,
3301
+ toolName,
3302
+ cause,
3303
+ message = `Error executing tool ${toolName}: ${(0, import_provider14.getErrorMessage)(cause)}`
3304
+ }) {
3305
+ super({ name: name11, message, cause });
3306
+ this[_a11] = true;
3307
+ this.toolArgs = toolArgs;
3308
+ this.toolName = toolName;
3309
+ }
3310
+ static isInstance(error) {
3311
+ return import_provider14.AISDKError.hasMarker(error, marker11);
3312
+ }
3313
+ };
3314
+ _a11 = symbol11;
3315
+
3253
3316
  // core/prompt/prepare-tools-and-tool-choice.ts
3254
3317
  var import_ui_utils4 = require("@ai-sdk/ui-utils");
3255
3318
 
@@ -3271,24 +3334,24 @@ function prepareToolsAndToolChoice({
3271
3334
  };
3272
3335
  }
3273
3336
  const filteredTools = activeTools != null ? Object.entries(tools).filter(
3274
- ([name12]) => activeTools.includes(name12)
3337
+ ([name13]) => activeTools.includes(name13)
3275
3338
  ) : Object.entries(tools);
3276
3339
  return {
3277
- tools: filteredTools.map(([name12, tool2]) => {
3340
+ tools: filteredTools.map(([name13, tool2]) => {
3278
3341
  const toolType = tool2.type;
3279
3342
  switch (toolType) {
3280
3343
  case void 0:
3281
3344
  case "function":
3282
3345
  return {
3283
3346
  type: "function",
3284
- name: name12,
3347
+ name: name13,
3285
3348
  description: tool2.description,
3286
3349
  parameters: (0, import_ui_utils4.asSchema)(tool2.parameters).jsonSchema
3287
3350
  };
3288
3351
  case "provider-defined":
3289
3352
  return {
3290
3353
  type: "provider-defined",
3291
- name: name12,
3354
+ name: name13,
3292
3355
  id: tool2.id,
3293
3356
  args: tool2.args
3294
3357
  };
@@ -3316,16 +3379,51 @@ function removeTextAfterLastWhitespace(text2) {
3316
3379
  }
3317
3380
 
3318
3381
  // core/generate-text/parse-tool-call.ts
3319
- var import_provider_utils7 = require("@ai-sdk/provider-utils");
3382
+ var import_provider_utils8 = require("@ai-sdk/provider-utils");
3320
3383
  var import_ui_utils5 = require("@ai-sdk/ui-utils");
3321
- function parseToolCall({
3384
+ async function parseToolCall({
3322
3385
  toolCall,
3323
- tools
3386
+ tools,
3387
+ repairToolCall,
3388
+ system,
3389
+ messages
3324
3390
  }) {
3325
- const toolName = toolCall.toolName;
3326
3391
  if (tools == null) {
3327
3392
  throw new NoSuchToolError({ toolName: toolCall.toolName });
3328
3393
  }
3394
+ try {
3395
+ return await doParseToolCall({ toolCall, tools });
3396
+ } catch (error) {
3397
+ if (repairToolCall == null || !(NoSuchToolError.isInstance(error) || InvalidToolArgumentsError.isInstance(error))) {
3398
+ throw error;
3399
+ }
3400
+ let repairedToolCall = null;
3401
+ try {
3402
+ repairedToolCall = await repairToolCall({
3403
+ toolCall,
3404
+ tools,
3405
+ parameterSchema: ({ toolName }) => (0, import_ui_utils5.asSchema)(tools[toolName].parameters).jsonSchema,
3406
+ system,
3407
+ messages,
3408
+ error
3409
+ });
3410
+ } catch (repairError) {
3411
+ throw new ToolCallRepairError({
3412
+ cause: repairError,
3413
+ originalError: error
3414
+ });
3415
+ }
3416
+ if (repairedToolCall == null) {
3417
+ throw error;
3418
+ }
3419
+ return await doParseToolCall({ toolCall: repairedToolCall, tools });
3420
+ }
3421
+ }
3422
+ async function doParseToolCall({
3423
+ toolCall,
3424
+ tools
3425
+ }) {
3426
+ const toolName = toolCall.toolName;
3329
3427
  const tool2 = tools[toolName];
3330
3428
  if (tool2 == null) {
3331
3429
  throw new NoSuchToolError({
@@ -3334,7 +3432,7 @@ function parseToolCall({
3334
3432
  });
3335
3433
  }
3336
3434
  const schema = (0, import_ui_utils5.asSchema)(tool2.parameters);
3337
- const parseResult = toolCall.args.trim() === "" ? (0, import_provider_utils7.safeValidateTypes)({ value: {}, schema }) : (0, import_provider_utils7.safeParseJSON)({ text: toolCall.args, schema });
3435
+ const parseResult = toolCall.args.trim() === "" ? (0, import_provider_utils8.safeValidateTypes)({ value: {}, schema }) : (0, import_provider_utils8.safeParseJSON)({ text: toolCall.args, schema });
3338
3436
  if (parseResult.success === false) {
3339
3437
  throw new InvalidToolArgumentsError({
3340
3438
  toolName,
@@ -3388,7 +3486,7 @@ function toResponseMessages({
3388
3486
  }
3389
3487
 
3390
3488
  // core/generate-text/generate-text.ts
3391
- var originalGenerateId3 = (0, import_provider_utils8.createIdGenerator)({ prefix: "aitxt", size: 24 });
3489
+ var originalGenerateId3 = (0, import_provider_utils9.createIdGenerator)({ prefix: "aitxt", size: 24 });
3392
3490
  async function generateText({
3393
3491
  model,
3394
3492
  tools,
@@ -3405,6 +3503,7 @@ async function generateText({
3405
3503
  experimental_telemetry: telemetry,
3406
3504
  experimental_providerMetadata: providerMetadata,
3407
3505
  experimental_activeTools: activeTools,
3506
+ experimental_repairToolCall: repairToolCall,
3408
3507
  _internal: {
3409
3508
  generateId: generateId3 = originalGenerateId3,
3410
3509
  currentDate = () => /* @__PURE__ */ new Date()
@@ -3412,7 +3511,7 @@ async function generateText({
3412
3511
  onStepFinish,
3413
3512
  ...settings
3414
3513
  }) {
3415
- var _a12;
3514
+ var _a13;
3416
3515
  if (maxSteps < 1) {
3417
3516
  throw new InvalidArgumentError({
3418
3517
  parameter: "maxSteps",
@@ -3429,7 +3528,7 @@ async function generateText({
3429
3528
  });
3430
3529
  const initialPrompt = standardizePrompt({
3431
3530
  prompt: {
3432
- system: (_a12 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a12 : system,
3531
+ system: (_a13 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a13 : system,
3433
3532
  prompt,
3434
3533
  messages
3435
3534
  },
@@ -3455,7 +3554,7 @@ async function generateText({
3455
3554
  }),
3456
3555
  tracer,
3457
3556
  fn: async (span) => {
3458
- var _a13, _b, _c, _d, _e, _f;
3557
+ var _a14, _b, _c, _d, _e, _f;
3459
3558
  const mode = {
3460
3559
  type: "regular",
3461
3560
  ...prepareToolsAndToolChoice({ tools, toolChoice, activeTools })
@@ -3507,8 +3606,8 @@ async function generateText({
3507
3606
  "ai.prompt.tools": {
3508
3607
  // convert the language model level tools:
3509
3608
  input: () => {
3510
- var _a14;
3511
- return (_a14 = mode.tools) == null ? void 0 : _a14.map((tool2) => JSON.stringify(tool2));
3609
+ var _a15;
3610
+ return (_a15 = mode.tools) == null ? void 0 : _a15.map((tool2) => JSON.stringify(tool2));
3512
3611
  }
3513
3612
  },
3514
3613
  "ai.prompt.toolChoice": {
@@ -3528,7 +3627,7 @@ async function generateText({
3528
3627
  }),
3529
3628
  tracer,
3530
3629
  fn: async (span2) => {
3531
- var _a14, _b2, _c2, _d2, _e2, _f2;
3630
+ var _a15, _b2, _c2, _d2, _e2, _f2;
3532
3631
  const result = await model.doGenerate({
3533
3632
  mode,
3534
3633
  ...callSettings,
@@ -3540,7 +3639,7 @@ async function generateText({
3540
3639
  headers
3541
3640
  });
3542
3641
  const responseData = {
3543
- id: (_b2 = (_a14 = result.response) == null ? void 0 : _a14.id) != null ? _b2 : generateId3(),
3642
+ id: (_b2 = (_a15 = result.response) == null ? void 0 : _a15.id) != null ? _b2 : generateId3(),
3544
3643
  timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
3545
3644
  modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : model.modelId
3546
3645
  };
@@ -3573,8 +3672,16 @@ async function generateText({
3573
3672
  }
3574
3673
  })
3575
3674
  );
3576
- currentToolCalls = ((_a13 = currentModelResponse.toolCalls) != null ? _a13 : []).map(
3577
- (modelToolCall) => parseToolCall({ toolCall: modelToolCall, tools })
3675
+ currentToolCalls = await Promise.all(
3676
+ ((_a14 = currentModelResponse.toolCalls) != null ? _a14 : []).map(
3677
+ (toolCall) => parseToolCall({
3678
+ toolCall,
3679
+ tools,
3680
+ repairToolCall,
3681
+ system,
3682
+ messages: stepInputMessages
3683
+ })
3684
+ )
3578
3685
  );
3579
3686
  currentToolResults = tools == null ? [] : await executeTools({
3580
3687
  toolCalls: currentToolCalls,
@@ -3778,9 +3885,49 @@ var DefaultGenerateTextResult = class {
3778
3885
  }
3779
3886
  };
3780
3887
 
3888
+ // core/generate-text/output.ts
3889
+ var output_exports = {};
3890
+ __export(output_exports, {
3891
+ object: () => object,
3892
+ text: () => text
3893
+ });
3894
+ var import_provider_utils10 = require("@ai-sdk/provider-utils");
3895
+ var import_ui_utils6 = require("@ai-sdk/ui-utils");
3896
+ var text = () => ({
3897
+ type: "text",
3898
+ responseFormat: () => ({ type: "text" }),
3899
+ injectIntoSystemPrompt({ system }) {
3900
+ return system;
3901
+ },
3902
+ parseOutput({ text: text2 }) {
3903
+ return text2;
3904
+ }
3905
+ });
3906
+ var object = ({
3907
+ schema: inputSchema
3908
+ }) => {
3909
+ const schema = (0, import_ui_utils6.asSchema)(inputSchema);
3910
+ return {
3911
+ type: "object",
3912
+ responseFormat: ({ model }) => ({
3913
+ type: "json",
3914
+ schema: model.supportsStructuredOutputs ? schema.jsonSchema : void 0
3915
+ }),
3916
+ injectIntoSystemPrompt({ system, model }) {
3917
+ return model.supportsStructuredOutputs ? system : injectJsonInstruction({
3918
+ prompt: system,
3919
+ schema: schema.jsonSchema
3920
+ });
3921
+ },
3922
+ parseOutput({ text: text2 }) {
3923
+ return (0, import_provider_utils10.parseJSON)({ text: text2, schema });
3924
+ }
3925
+ };
3926
+ };
3927
+
3781
3928
  // core/generate-text/stream-text.ts
3782
- var import_provider_utils9 = require("@ai-sdk/provider-utils");
3783
- var import_ui_utils7 = require("@ai-sdk/ui-utils");
3929
+ var import_provider_utils11 = require("@ai-sdk/provider-utils");
3930
+ var import_ui_utils8 = require("@ai-sdk/ui-utils");
3784
3931
 
3785
3932
  // core/util/merge-streams.ts
3786
3933
  function mergeStreams(stream1, stream2) {
@@ -3871,15 +4018,17 @@ function mergeStreams(stream1, stream2) {
3871
4018
  }
3872
4019
 
3873
4020
  // core/generate-text/run-tools-transformation.ts
3874
- var import_ui_utils6 = require("@ai-sdk/ui-utils");
4021
+ var import_ui_utils7 = require("@ai-sdk/ui-utils");
3875
4022
  function runToolsTransformation({
3876
4023
  tools,
3877
4024
  generatorStream,
3878
4025
  toolCallStreaming,
3879
4026
  tracer,
3880
4027
  telemetry,
4028
+ system,
3881
4029
  messages,
3882
- abortSignal
4030
+ abortSignal,
4031
+ repairToolCall
3883
4032
  }) {
3884
4033
  let toolResultsStreamController = null;
3885
4034
  const toolResultsStream = new ReadableStream({
@@ -3900,7 +4049,7 @@ function runToolsTransformation({
3900
4049
  }
3901
4050
  }
3902
4051
  const forwardStream = new TransformStream({
3903
- transform(chunk, controller) {
4052
+ async transform(chunk, controller) {
3904
4053
  const chunkType = chunk.type;
3905
4054
  switch (chunkType) {
3906
4055
  case "text-delta":
@@ -3949,13 +4098,16 @@ function runToolsTransformation({
3949
4098
  break;
3950
4099
  }
3951
4100
  try {
3952
- const toolCall = parseToolCall({
4101
+ const toolCall = await parseToolCall({
3953
4102
  toolCall: chunk,
3954
- tools
4103
+ tools,
4104
+ repairToolCall,
4105
+ system,
4106
+ messages
3955
4107
  });
3956
4108
  controller.enqueue(toolCall);
3957
4109
  if (tool2.execute != null) {
3958
- const toolExecutionId = (0, import_ui_utils6.generateId)();
4110
+ const toolExecutionId = (0, import_ui_utils7.generateId)();
3959
4111
  outstandingToolResults.add(toolExecutionId);
3960
4112
  recordSpan({
3961
4113
  name: "ai.toolCall",
@@ -4073,7 +4225,7 @@ function runToolsTransformation({
4073
4225
  }
4074
4226
 
4075
4227
  // core/generate-text/stream-text.ts
4076
- var originalGenerateId4 = (0, import_provider_utils9.createIdGenerator)({ prefix: "aitxt", size: 24 });
4228
+ var originalGenerateId4 = (0, import_provider_utils11.createIdGenerator)({ prefix: "aitxt", size: 24 });
4077
4229
  function streamText({
4078
4230
  model,
4079
4231
  tools,
@@ -4090,6 +4242,7 @@ function streamText({
4090
4242
  experimental_providerMetadata: providerMetadata,
4091
4243
  experimental_toolCallStreaming: toolCallStreaming = false,
4092
4244
  experimental_activeTools: activeTools,
4245
+ experimental_repairToolCall: repairToolCall,
4093
4246
  onChunk,
4094
4247
  onFinish,
4095
4248
  onStepFinish,
@@ -4114,6 +4267,7 @@ function streamText({
4114
4267
  toolChoice,
4115
4268
  toolCallStreaming,
4116
4269
  activeTools,
4270
+ repairToolCall,
4117
4271
  maxSteps,
4118
4272
  continueSteps,
4119
4273
  providerMetadata,
@@ -4140,6 +4294,7 @@ var DefaultStreamTextResult = class {
4140
4294
  toolChoice,
4141
4295
  toolCallStreaming,
4142
4296
  activeTools,
4297
+ repairToolCall,
4143
4298
  maxSteps,
4144
4299
  continueSteps,
4145
4300
  providerMetadata,
@@ -4251,8 +4406,8 @@ var DefaultStreamTextResult = class {
4251
4406
  "ai.prompt.tools": {
4252
4407
  // convert the language model level tools:
4253
4408
  input: () => {
4254
- var _a12;
4255
- return (_a12 = mode.tools) == null ? void 0 : _a12.map((tool2) => JSON.stringify(tool2));
4409
+ var _a13;
4410
+ return (_a13 = mode.tools) == null ? void 0 : _a13.map((tool2) => JSON.stringify(tool2));
4256
4411
  }
4257
4412
  },
4258
4413
  "ai.prompt.toolChoice": {
@@ -4294,7 +4449,9 @@ var DefaultStreamTextResult = class {
4294
4449
  toolCallStreaming,
4295
4450
  tracer,
4296
4451
  telemetry,
4452
+ system,
4297
4453
  messages: stepInputMessages,
4454
+ repairToolCall,
4298
4455
  abortSignal
4299
4456
  });
4300
4457
  const stepRequest = request != null ? request : {};
@@ -4335,7 +4492,7 @@ var DefaultStreamTextResult = class {
4335
4492
  transformedStream.pipeThrough(
4336
4493
  new TransformStream({
4337
4494
  async transform(chunk, controller) {
4338
- var _a12, _b, _c;
4495
+ var _a13, _b, _c;
4339
4496
  if (stepFirstChunk) {
4340
4497
  const msToFirstChunk = now2() - startTimestampMs;
4341
4498
  stepFirstChunk = false;
@@ -4389,7 +4546,7 @@ var DefaultStreamTextResult = class {
4389
4546
  }
4390
4547
  case "response-metadata": {
4391
4548
  stepResponse = {
4392
- id: (_a12 = chunk.id) != null ? _a12 : stepResponse.id,
4549
+ id: (_a13 = chunk.id) != null ? _a13 : stepResponse.id,
4393
4550
  timestamp: (_b = chunk.timestamp) != null ? _b : stepResponse.timestamp,
4394
4551
  modelId: (_c = chunk.modelId) != null ? _c : stepResponse.modelId
4395
4552
  };
@@ -4706,7 +4863,7 @@ var DefaultStreamTextResult = class {
4706
4863
  });
4707
4864
  }
4708
4865
  toDataStreamInternal({
4709
- getErrorMessage: getErrorMessage4 = () => "An error occurred.",
4866
+ getErrorMessage: getErrorMessage5 = () => "An error occurred.",
4710
4867
  // mask error messages for safety by default
4711
4868
  sendUsage = true
4712
4869
  } = {}) {
@@ -4724,12 +4881,12 @@ var DefaultStreamTextResult = class {
4724
4881
  const chunkType = chunk.type;
4725
4882
  switch (chunkType) {
4726
4883
  case "text-delta": {
4727
- controller.enqueue((0, import_ui_utils7.formatDataStreamPart)("text", chunk.textDelta));
4884
+ controller.enqueue((0, import_ui_utils8.formatDataStreamPart)("text", chunk.textDelta));
4728
4885
  break;
4729
4886
  }
4730
4887
  case "tool-call-streaming-start": {
4731
4888
  controller.enqueue(
4732
- (0, import_ui_utils7.formatDataStreamPart)("tool_call_streaming_start", {
4889
+ (0, import_ui_utils8.formatDataStreamPart)("tool_call_streaming_start", {
4733
4890
  toolCallId: chunk.toolCallId,
4734
4891
  toolName: chunk.toolName
4735
4892
  })
@@ -4738,7 +4895,7 @@ var DefaultStreamTextResult = class {
4738
4895
  }
4739
4896
  case "tool-call-delta": {
4740
4897
  controller.enqueue(
4741
- (0, import_ui_utils7.formatDataStreamPart)("tool_call_delta", {
4898
+ (0, import_ui_utils8.formatDataStreamPart)("tool_call_delta", {
4742
4899
  toolCallId: chunk.toolCallId,
4743
4900
  argsTextDelta: chunk.argsTextDelta
4744
4901
  })
@@ -4747,7 +4904,7 @@ var DefaultStreamTextResult = class {
4747
4904
  }
4748
4905
  case "tool-call": {
4749
4906
  controller.enqueue(
4750
- (0, import_ui_utils7.formatDataStreamPart)("tool_call", {
4907
+ (0, import_ui_utils8.formatDataStreamPart)("tool_call", {
4751
4908
  toolCallId: chunk.toolCallId,
4752
4909
  toolName: chunk.toolName,
4753
4910
  args: chunk.args
@@ -4757,7 +4914,7 @@ var DefaultStreamTextResult = class {
4757
4914
  }
4758
4915
  case "tool-result": {
4759
4916
  controller.enqueue(
4760
- (0, import_ui_utils7.formatDataStreamPart)("tool_result", {
4917
+ (0, import_ui_utils8.formatDataStreamPart)("tool_result", {
4761
4918
  toolCallId: chunk.toolCallId,
4762
4919
  result: chunk.result
4763
4920
  })
@@ -4766,13 +4923,13 @@ var DefaultStreamTextResult = class {
4766
4923
  }
4767
4924
  case "error": {
4768
4925
  controller.enqueue(
4769
- (0, import_ui_utils7.formatDataStreamPart)("error", getErrorMessage4(chunk.error))
4926
+ (0, import_ui_utils8.formatDataStreamPart)("error", getErrorMessage5(chunk.error))
4770
4927
  );
4771
4928
  break;
4772
4929
  }
4773
4930
  case "step-finish": {
4774
4931
  controller.enqueue(
4775
- (0, import_ui_utils7.formatDataStreamPart)("finish_step", {
4932
+ (0, import_ui_utils8.formatDataStreamPart)("finish_step", {
4776
4933
  finishReason: chunk.finishReason,
4777
4934
  usage: sendUsage ? {
4778
4935
  promptTokens: chunk.usage.promptTokens,
@@ -4785,7 +4942,7 @@ var DefaultStreamTextResult = class {
4785
4942
  }
4786
4943
  case "finish": {
4787
4944
  controller.enqueue(
4788
- (0, import_ui_utils7.formatDataStreamPart)("finish_message", {
4945
+ (0, import_ui_utils8.formatDataStreamPart)("finish_message", {
4789
4946
  finishReason: chunk.finishReason,
4790
4947
  usage: sendUsage ? {
4791
4948
  promptTokens: chunk.usage.promptTokens,
@@ -4809,7 +4966,7 @@ var DefaultStreamTextResult = class {
4809
4966
  statusText,
4810
4967
  headers,
4811
4968
  data,
4812
- getErrorMessage: getErrorMessage4,
4969
+ getErrorMessage: getErrorMessage5,
4813
4970
  sendUsage
4814
4971
  } = {}) {
4815
4972
  writeToServerResponse({
@@ -4820,7 +4977,7 @@ var DefaultStreamTextResult = class {
4820
4977
  contentType: "text/plain; charset=utf-8",
4821
4978
  dataStreamVersion: "v1"
4822
4979
  }),
4823
- stream: this.toDataStream({ data, getErrorMessage: getErrorMessage4, sendUsage })
4980
+ stream: this.toDataStream({ data, getErrorMessage: getErrorMessage5, sendUsage })
4824
4981
  });
4825
4982
  }
4826
4983
  pipeTextStreamToResponse(response, init) {
@@ -4854,11 +5011,11 @@ var DefaultStreamTextResult = class {
4854
5011
  status,
4855
5012
  statusText,
4856
5013
  data,
4857
- getErrorMessage: getErrorMessage4,
5014
+ getErrorMessage: getErrorMessage5,
4858
5015
  sendUsage
4859
5016
  } = {}) {
4860
5017
  return new Response(
4861
- this.toDataStream({ data, getErrorMessage: getErrorMessage4, sendUsage }),
5018
+ this.toDataStream({ data, getErrorMessage: getErrorMessage5, sendUsage }),
4862
5019
  {
4863
5020
  status,
4864
5021
  statusText,
@@ -4870,9 +5027,9 @@ var DefaultStreamTextResult = class {
4870
5027
  );
4871
5028
  }
4872
5029
  toTextStreamResponse(init) {
4873
- var _a12;
5030
+ var _a13;
4874
5031
  return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
4875
- status: (_a12 = init == null ? void 0 : init.status) != null ? _a12 : 200,
5032
+ status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
4876
5033
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
4877
5034
  contentType: "text/plain; charset=utf-8"
4878
5035
  })
@@ -4880,46 +5037,6 @@ var DefaultStreamTextResult = class {
4880
5037
  }
4881
5038
  };
4882
5039
 
4883
- // core/generate-text/output.ts
4884
- var output_exports = {};
4885
- __export(output_exports, {
4886
- object: () => object,
4887
- text: () => text
4888
- });
4889
- var import_provider_utils10 = require("@ai-sdk/provider-utils");
4890
- var import_ui_utils8 = require("@ai-sdk/ui-utils");
4891
- var text = () => ({
4892
- type: "text",
4893
- responseFormat: () => ({ type: "text" }),
4894
- injectIntoSystemPrompt({ system }) {
4895
- return system;
4896
- },
4897
- parseOutput({ text: text2 }) {
4898
- return text2;
4899
- }
4900
- });
4901
- var object = ({
4902
- schema: inputSchema
4903
- }) => {
4904
- const schema = (0, import_ui_utils8.asSchema)(inputSchema);
4905
- return {
4906
- type: "object",
4907
- responseFormat: ({ model }) => ({
4908
- type: "json",
4909
- schema: model.supportsStructuredOutputs ? schema.jsonSchema : void 0
4910
- }),
4911
- injectIntoSystemPrompt({ system, model }) {
4912
- return model.supportsStructuredOutputs ? system : injectJsonInstruction({
4913
- prompt: system,
4914
- schema: schema.jsonSchema
4915
- });
4916
- },
4917
- parseOutput({ text: text2 }) {
4918
- return (0, import_provider_utils10.parseJSON)({ text: text2, schema });
4919
- }
4920
- };
4921
- };
4922
-
4923
5040
  // core/middleware/wrap-language-model.ts
4924
5041
  var experimental_wrapLanguageModel = ({
4925
5042
  model,
@@ -4955,7 +5072,7 @@ var experimental_wrapLanguageModel = ({
4955
5072
  };
4956
5073
 
4957
5074
  // core/registry/custom-provider.ts
4958
- var import_provider15 = require("@ai-sdk/provider");
5075
+ var import_provider16 = require("@ai-sdk/provider");
4959
5076
  function experimental_customProvider({
4960
5077
  languageModels,
4961
5078
  textEmbeddingModels,
@@ -4969,7 +5086,7 @@ function experimental_customProvider({
4969
5086
  if (fallbackProvider) {
4970
5087
  return fallbackProvider.languageModel(modelId);
4971
5088
  }
4972
- throw new import_provider15.NoSuchModelError({ modelId, modelType: "languageModel" });
5089
+ throw new import_provider16.NoSuchModelError({ modelId, modelType: "languageModel" });
4973
5090
  },
4974
5091
  textEmbeddingModel(modelId) {
4975
5092
  if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
@@ -4978,18 +5095,18 @@ function experimental_customProvider({
4978
5095
  if (fallbackProvider) {
4979
5096
  return fallbackProvider.textEmbeddingModel(modelId);
4980
5097
  }
4981
- throw new import_provider15.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
5098
+ throw new import_provider16.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
4982
5099
  }
4983
5100
  };
4984
5101
  }
4985
5102
 
4986
5103
  // core/registry/no-such-provider-error.ts
4987
- var import_provider16 = require("@ai-sdk/provider");
4988
- var name11 = "AI_NoSuchProviderError";
4989
- var marker11 = `vercel.ai.error.${name11}`;
4990
- var symbol11 = Symbol.for(marker11);
4991
- var _a11;
4992
- var NoSuchProviderError = class extends import_provider16.NoSuchModelError {
5104
+ var import_provider17 = require("@ai-sdk/provider");
5105
+ var name12 = "AI_NoSuchProviderError";
5106
+ var marker12 = `vercel.ai.error.${name12}`;
5107
+ var symbol12 = Symbol.for(marker12);
5108
+ var _a12;
5109
+ var NoSuchProviderError = class extends import_provider17.NoSuchModelError {
4993
5110
  constructor({
4994
5111
  modelId,
4995
5112
  modelType,
@@ -4997,19 +5114,19 @@ var NoSuchProviderError = class extends import_provider16.NoSuchModelError {
4997
5114
  availableProviders,
4998
5115
  message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
4999
5116
  }) {
5000
- super({ errorName: name11, modelId, modelType, message });
5001
- this[_a11] = true;
5117
+ super({ errorName: name12, modelId, modelType, message });
5118
+ this[_a12] = true;
5002
5119
  this.providerId = providerId;
5003
5120
  this.availableProviders = availableProviders;
5004
5121
  }
5005
5122
  static isInstance(error) {
5006
- return import_provider16.AISDKError.hasMarker(error, marker11);
5123
+ return import_provider17.AISDKError.hasMarker(error, marker12);
5007
5124
  }
5008
5125
  };
5009
- _a11 = symbol11;
5126
+ _a12 = symbol12;
5010
5127
 
5011
5128
  // core/registry/provider-registry.ts
5012
- var import_provider17 = require("@ai-sdk/provider");
5129
+ var import_provider18 = require("@ai-sdk/provider");
5013
5130
  function experimental_createProviderRegistry(providers) {
5014
5131
  const registry = new DefaultProviderRegistry();
5015
5132
  for (const [id, provider] of Object.entries(providers)) {
@@ -5039,7 +5156,7 @@ var DefaultProviderRegistry = class {
5039
5156
  splitId(id, modelType) {
5040
5157
  const index = id.indexOf(":");
5041
5158
  if (index === -1) {
5042
- throw new import_provider17.NoSuchModelError({
5159
+ throw new import_provider18.NoSuchModelError({
5043
5160
  modelId: id,
5044
5161
  modelType,
5045
5162
  message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId:modelId")`
@@ -5048,21 +5165,21 @@ var DefaultProviderRegistry = class {
5048
5165
  return [id.slice(0, index), id.slice(index + 1)];
5049
5166
  }
5050
5167
  languageModel(id) {
5051
- var _a12, _b;
5168
+ var _a13, _b;
5052
5169
  const [providerId, modelId] = this.splitId(id, "languageModel");
5053
- const model = (_b = (_a12 = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a12, modelId);
5170
+ const model = (_b = (_a13 = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a13, modelId);
5054
5171
  if (model == null) {
5055
- throw new import_provider17.NoSuchModelError({ modelId: id, modelType: "languageModel" });
5172
+ throw new import_provider18.NoSuchModelError({ modelId: id, modelType: "languageModel" });
5056
5173
  }
5057
5174
  return model;
5058
5175
  }
5059
5176
  textEmbeddingModel(id) {
5060
- var _a12;
5177
+ var _a13;
5061
5178
  const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
5062
5179
  const provider = this.getProvider(providerId);
5063
- const model = (_a12 = provider.textEmbeddingModel) == null ? void 0 : _a12.call(provider, modelId);
5180
+ const model = (_a13 = provider.textEmbeddingModel) == null ? void 0 : _a13.call(provider, modelId);
5064
5181
  if (model == null) {
5065
- throw new import_provider17.NoSuchModelError({
5182
+ throw new import_provider18.NoSuchModelError({
5066
5183
  modelId: id,
5067
5184
  modelType: "textEmbeddingModel"
5068
5185
  });
@@ -5106,7 +5223,7 @@ var import_ui_utils10 = require("@ai-sdk/ui-utils");
5106
5223
  function AssistantResponse({ threadId, messageId }, process2) {
5107
5224
  const stream = new ReadableStream({
5108
5225
  async start(controller) {
5109
- var _a12;
5226
+ var _a13;
5110
5227
  const textEncoder = new TextEncoder();
5111
5228
  const sendMessage = (message) => {
5112
5229
  controller.enqueue(
@@ -5128,7 +5245,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
5128
5245
  );
5129
5246
  };
5130
5247
  const forwardStream = async (stream2) => {
5131
- var _a13, _b;
5248
+ var _a14, _b;
5132
5249
  let result = void 0;
5133
5250
  for await (const value of stream2) {
5134
5251
  switch (value.event) {
@@ -5145,7 +5262,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
5145
5262
  break;
5146
5263
  }
5147
5264
  case "thread.message.delta": {
5148
- const content = (_a13 = value.data.delta.content) == null ? void 0 : _a13[0];
5265
+ const content = (_a14 = value.data.delta.content) == null ? void 0 : _a14[0];
5149
5266
  if ((content == null ? void 0 : content.type) === "text" && ((_b = content.text) == null ? void 0 : _b.value) != null) {
5150
5267
  controller.enqueue(
5151
5268
  textEncoder.encode(
@@ -5179,7 +5296,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
5179
5296
  forwardStream
5180
5297
  });
5181
5298
  } catch (error) {
5182
- sendError((_a12 = error.message) != null ? _a12 : `${error}`);
5299
+ sendError((_a13 = error.message) != null ? _a13 : `${error}`);
5183
5300
  } finally {
5184
5301
  controller.close();
5185
5302
  }
@@ -5240,7 +5357,7 @@ function toDataStreamInternal(stream, callbacks) {
5240
5357
  return stream.pipeThrough(
5241
5358
  new TransformStream({
5242
5359
  transform: async (value, controller) => {
5243
- var _a12;
5360
+ var _a13;
5244
5361
  if (typeof value === "string") {
5245
5362
  controller.enqueue(value);
5246
5363
  return;
@@ -5248,7 +5365,7 @@ function toDataStreamInternal(stream, callbacks) {
5248
5365
  if ("event" in value) {
5249
5366
  if (value.event === "on_chat_model_stream") {
5250
5367
  forwardAIMessageChunk(
5251
- (_a12 = value.data) == null ? void 0 : _a12.chunk,
5368
+ (_a13 = value.data) == null ? void 0 : _a13.chunk,
5252
5369
  controller
5253
5370
  );
5254
5371
  }
@@ -5271,7 +5388,7 @@ function toDataStream(stream, callbacks) {
5271
5388
  );
5272
5389
  }
5273
5390
  function toDataStreamResponse(stream, options) {
5274
- var _a12;
5391
+ var _a13;
5275
5392
  const dataStream = toDataStreamInternal(
5276
5393
  stream,
5277
5394
  options == null ? void 0 : options.callbacks
@@ -5280,7 +5397,7 @@ function toDataStreamResponse(stream, options) {
5280
5397
  const init = options == null ? void 0 : options.init;
5281
5398
  const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
5282
5399
  return new Response(responseStream, {
5283
- status: (_a12 = init == null ? void 0 : init.status) != null ? _a12 : 200,
5400
+ status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
5284
5401
  statusText: init == null ? void 0 : init.statusText,
5285
5402
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
5286
5403
  contentType: "text/plain; charset=utf-8",
@@ -5311,11 +5428,11 @@ __export(llamaindex_adapter_exports, {
5311
5428
  toDataStream: () => toDataStream2,
5312
5429
  toDataStreamResponse: () => toDataStreamResponse2
5313
5430
  });
5314
- var import_provider_utils11 = require("@ai-sdk/provider-utils");
5431
+ var import_provider_utils12 = require("@ai-sdk/provider-utils");
5315
5432
  var import_ui_utils12 = require("@ai-sdk/ui-utils");
5316
5433
  function toDataStreamInternal2(stream, callbacks) {
5317
5434
  const trimStart = trimStartOfStream();
5318
- return (0, import_provider_utils11.convertAsyncIteratorToReadableStream)(stream[Symbol.asyncIterator]()).pipeThrough(
5435
+ return (0, import_provider_utils12.convertAsyncIteratorToReadableStream)(stream[Symbol.asyncIterator]()).pipeThrough(
5319
5436
  new TransformStream({
5320
5437
  async transform(message, controller) {
5321
5438
  controller.enqueue(trimStart(message.delta));
@@ -5335,14 +5452,14 @@ function toDataStream2(stream, callbacks) {
5335
5452
  );
5336
5453
  }
5337
5454
  function toDataStreamResponse2(stream, options = {}) {
5338
- var _a12;
5455
+ var _a13;
5339
5456
  const { init, data, callbacks } = options;
5340
5457
  const dataStream = toDataStreamInternal2(stream, callbacks).pipeThrough(
5341
5458
  new TextEncoderStream()
5342
5459
  );
5343
5460
  const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
5344
5461
  return new Response(responseStream, {
5345
- status: (_a12 = init == null ? void 0 : init.status) != null ? _a12 : 200,
5462
+ status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
5346
5463
  statusText: init == null ? void 0 : init.statusText,
5347
5464
  headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
5348
5465
  contentType: "text/plain; charset=utf-8",
@@ -5459,6 +5576,7 @@ var StreamData = class {
5459
5576
  Output,
5460
5577
  RetryError,
5461
5578
  StreamData,
5579
+ ToolCallRepairError,
5462
5580
  ToolExecutionError,
5463
5581
  TypeValidationError,
5464
5582
  UnsupportedFunctionalityError,
@@ -5470,6 +5588,7 @@ var StreamData = class {
5470
5588
  embedMany,
5471
5589
  experimental_createProviderRegistry,
5472
5590
  experimental_customProvider,
5591
+ experimental_generateImage,
5473
5592
  experimental_wrapLanguageModel,
5474
5593
  formatAssistantStreamPart,
5475
5594
  formatDataStreamPart,