ai 6.0.170 → 6.0.172

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.
Files changed (193) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/index.d.mts +792 -792
  3. package/dist/index.d.ts +792 -792
  4. package/dist/index.js +77 -64
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +37 -15
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/internal/index.js +16 -17
  9. package/dist/internal/index.js.map +1 -1
  10. package/dist/internal/index.mjs +2 -4
  11. package/dist/internal/index.mjs.map +1 -1
  12. package/dist/test/index.d.mts +18 -18
  13. package/dist/test/index.d.ts +18 -18
  14. package/dist/test/index.js +24 -22
  15. package/dist/test/index.js.map +1 -1
  16. package/dist/test/index.mjs +22 -22
  17. package/dist/test/index.mjs.map +1 -1
  18. package/package.json +5 -5
  19. package/src/agent/agent.ts +7 -7
  20. package/src/agent/create-agent-ui-stream-response.ts +10 -7
  21. package/src/agent/create-agent-ui-stream.ts +11 -8
  22. package/src/agent/infer-agent-tools.ts +1 -1
  23. package/src/agent/infer-agent-ui-message.ts +2 -2
  24. package/src/agent/pipe-agent-ui-stream-to-response.ts +11 -8
  25. package/src/agent/tool-loop-agent-settings.ts +12 -12
  26. package/src/agent/tool-loop-agent.ts +27 -10
  27. package/src/embed/embed-many-result.ts +3 -4
  28. package/src/embed/embed-many.ts +8 -5
  29. package/src/embed/embed-result.ts +3 -4
  30. package/src/embed/embed.ts +7 -4
  31. package/src/error/invalid-stream-part-error.ts +1 -1
  32. package/src/error/no-image-generated-error.ts +1 -1
  33. package/src/error/no-object-generated-error.ts +3 -3
  34. package/src/error/no-speech-generated-error.ts +1 -1
  35. package/src/error/no-transcript-generated-error.ts +1 -1
  36. package/src/error/no-video-generated-error.ts +1 -1
  37. package/src/error/tool-call-repair-error.ts +2 -2
  38. package/src/error/verify-no-object-generated-error.ts +1 -1
  39. package/src/generate-image/generate-image-result.ts +5 -5
  40. package/src/generate-image/generate-image.ts +8 -8
  41. package/src/generate-image/index.ts +3 -2
  42. package/src/generate-object/generate-object-result.ts +2 -2
  43. package/src/generate-object/generate-object.ts +15 -15
  44. package/src/generate-object/inject-json-instruction.ts +1 -1
  45. package/src/generate-object/output-strategy.ts +10 -10
  46. package/src/generate-object/parse-and-validate-object-result.ts +1 -1
  47. package/src/generate-object/repair-text.ts +1 -1
  48. package/src/generate-object/stream-object-result.ts +4 -4
  49. package/src/generate-object/stream-object.ts +21 -18
  50. package/src/generate-object/validate-object-generation-input.ts +1 -1
  51. package/src/generate-speech/generate-speech-result.ts +4 -4
  52. package/src/generate-speech/generate-speech.ts +10 -7
  53. package/src/generate-speech/generated-audio-file.ts +1 -1
  54. package/src/generate-text/collect-tool-approvals.ts +4 -4
  55. package/src/generate-text/content-part.ts +9 -9
  56. package/src/generate-text/execute-tool-call.ts +9 -9
  57. package/src/generate-text/extract-reasoning-content.ts +1 -1
  58. package/src/generate-text/extract-text-content.ts +4 -1
  59. package/src/generate-text/generate-text-result.ts +19 -15
  60. package/src/generate-text/generate-text.ts +26 -26
  61. package/src/generate-text/is-approval-needed.ts +3 -3
  62. package/src/generate-text/output-utils.ts +1 -1
  63. package/src/generate-text/output.ts +8 -8
  64. package/src/generate-text/parse-tool-call.ts +6 -6
  65. package/src/generate-text/prepare-step.ts +3 -3
  66. package/src/generate-text/prune-messages.ts +1 -1
  67. package/src/generate-text/reasoning-output.ts +1 -1
  68. package/src/generate-text/reasoning.ts +1 -1
  69. package/src/generate-text/response-message.ts +1 -1
  70. package/src/generate-text/run-tools-transformation.ts +26 -16
  71. package/src/generate-text/smooth-stream.ts +6 -4
  72. package/src/generate-text/step-result.ts +14 -10
  73. package/src/generate-text/stop-condition.ts +2 -2
  74. package/src/generate-text/stream-text-result.ts +29 -25
  75. package/src/generate-text/stream-text.ts +38 -35
  76. package/src/generate-text/to-response-messages.ts +3 -3
  77. package/src/generate-text/tool-approval-request-output.ts +2 -2
  78. package/src/generate-text/tool-call-repair-function.ts +5 -5
  79. package/src/generate-text/tool-call.ts +4 -4
  80. package/src/generate-text/tool-error.ts +4 -4
  81. package/src/generate-text/tool-output-denied.ts +2 -2
  82. package/src/generate-text/tool-output.ts +3 -3
  83. package/src/generate-text/tool-result.ts +4 -4
  84. package/src/generate-text/tool-set.ts +1 -1
  85. package/src/generate-video/generate-video-result.ts +4 -4
  86. package/src/global.ts +2 -2
  87. package/src/index.ts +3 -3
  88. package/src/logger/log-warnings.ts +1 -1
  89. package/src/middleware/add-tool-input-examples-middleware.ts +2 -2
  90. package/src/middleware/default-embedding-settings-middleware.ts +2 -2
  91. package/src/middleware/default-settings-middleware.ts +2 -2
  92. package/src/middleware/extract-json-middleware.ts +1 -1
  93. package/src/middleware/extract-reasoning-middleware.ts +1 -1
  94. package/src/middleware/simulate-streaming-middleware.ts +1 -1
  95. package/src/middleware/wrap-embedding-model.ts +2 -2
  96. package/src/middleware/wrap-image-model.ts +2 -2
  97. package/src/middleware/wrap-language-model.ts +2 -2
  98. package/src/middleware/wrap-provider.ts +2 -2
  99. package/src/model/as-embedding-model-v3.ts +1 -1
  100. package/src/model/as-image-model-v3.ts +1 -1
  101. package/src/model/as-language-model-v3.ts +1 -1
  102. package/src/model/as-provider-v3.ts +1 -1
  103. package/src/model/as-speech-model-v3.ts +1 -1
  104. package/src/model/as-transcription-model-v3.ts +4 -1
  105. package/src/model/resolve-model.ts +8 -8
  106. package/src/prompt/content-part.ts +1 -1
  107. package/src/prompt/convert-to-language-model-prompt.ts +12 -12
  108. package/src/prompt/create-tool-model-output.ts +2 -2
  109. package/src/prompt/data-content.ts +2 -2
  110. package/src/prompt/message-conversion-error.ts +1 -1
  111. package/src/prompt/message.ts +1 -1
  112. package/src/prompt/prepare-call-settings.ts +1 -1
  113. package/src/prompt/prepare-tools-and-tool-choice.ts +3 -3
  114. package/src/prompt/prompt.ts +1 -1
  115. package/src/prompt/standardize-prompt.ts +3 -3
  116. package/src/registry/custom-provider.ts +9 -9
  117. package/src/registry/provider-registry.ts +8 -8
  118. package/src/rerank/rerank-result.ts +1 -1
  119. package/src/rerank/rerank.ts +5 -5
  120. package/src/telemetry/assemble-operation-name.ts +1 -1
  121. package/src/telemetry/get-base-telemetry-attributes.ts +3 -3
  122. package/src/telemetry/get-tracer.ts +1 -1
  123. package/src/telemetry/noop-tracer.ts +1 -1
  124. package/src/telemetry/record-span.ts +3 -3
  125. package/src/telemetry/stringify-for-telemetry.ts +1 -1
  126. package/src/telemetry/telemetry-integration.ts +1 -1
  127. package/src/telemetry/telemetry-settings.ts +1 -1
  128. package/src/test/mock-embedding-model-v2.ts +1 -1
  129. package/src/test/mock-embedding-model-v3.ts +1 -1
  130. package/src/test/mock-image-model-v2.ts +1 -1
  131. package/src/test/mock-image-model-v3.ts +1 -1
  132. package/src/test/mock-language-model-v2.ts +1 -1
  133. package/src/test/mock-language-model-v3.ts +1 -1
  134. package/src/test/mock-provider-v2.ts +6 -6
  135. package/src/test/mock-provider-v3.ts +7 -7
  136. package/src/test/mock-reranking-model-v3.ts +1 -1
  137. package/src/test/mock-server-response.ts +1 -1
  138. package/src/test/mock-speech-model-v2.ts +1 -1
  139. package/src/test/mock-speech-model-v3.ts +1 -1
  140. package/src/test/mock-tracer.ts +1 -1
  141. package/src/test/mock-transcription-model-v2.ts +1 -1
  142. package/src/test/mock-transcription-model-v3.ts +1 -1
  143. package/src/test/mock-video-model-v3.ts +1 -1
  144. package/src/text-stream/pipe-text-stream-to-response.ts +1 -1
  145. package/src/transcribe/transcribe-result.ts +3 -3
  146. package/src/transcribe/transcribe.ts +10 -7
  147. package/src/types/embedding-model-middleware.ts +1 -1
  148. package/src/types/embedding-model.ts +1 -1
  149. package/src/types/image-model-middleware.ts +1 -1
  150. package/src/types/image-model.ts +1 -1
  151. package/src/types/json-value.ts +1 -1
  152. package/src/types/language-model-middleware.ts +1 -1
  153. package/src/types/language-model.ts +2 -2
  154. package/src/types/provider-metadata.ts +1 -1
  155. package/src/types/provider.ts +4 -4
  156. package/src/types/reranking-model.ts +1 -1
  157. package/src/types/speech-model.ts +1 -1
  158. package/src/types/transcription-model.ts +4 -1
  159. package/src/types/usage.ts +1 -1
  160. package/src/types/video-model.ts +1 -1
  161. package/src/types/warning.ts +1 -1
  162. package/src/ui/call-completion-api.ts +2 -2
  163. package/src/ui/chat-transport.ts +3 -3
  164. package/src/ui/chat.ts +10 -10
  165. package/src/ui/convert-file-list-to-file-ui-parts.ts +1 -1
  166. package/src/ui/convert-to-model-messages.ts +16 -16
  167. package/src/ui/default-chat-transport.ts +4 -4
  168. package/src/ui/direct-chat-transport.ts +7 -7
  169. package/src/ui/http-chat-transport.ts +5 -5
  170. package/src/ui/process-ui-message-stream.ts +19 -19
  171. package/src/ui/text-stream-chat-transport.ts +3 -3
  172. package/src/ui/transform-text-to-ui-message-stream.ts +1 -1
  173. package/src/ui/ui-messages.ts +5 -5
  174. package/src/ui/use-completion.ts +1 -1
  175. package/src/ui/validate-ui-messages.ts +3 -3
  176. package/src/ui-message-stream/create-ui-message-stream-response.ts +2 -2
  177. package/src/ui-message-stream/create-ui-message-stream.ts +6 -6
  178. package/src/ui-message-stream/get-response-ui-message-id.ts +2 -2
  179. package/src/ui-message-stream/handle-ui-message-stream-finish.ts +6 -6
  180. package/src/ui-message-stream/pipe-ui-message-stream-to-response.ts +3 -3
  181. package/src/ui-message-stream/read-ui-message-stream.ts +4 -4
  182. package/src/ui-message-stream/ui-message-chunks.ts +4 -4
  183. package/src/ui-message-stream/ui-message-stream-on-finish-callback.ts +2 -2
  184. package/src/ui-message-stream/ui-message-stream-on-step-finish-callback.ts +1 -1
  185. package/src/ui-message-stream/ui-message-stream-writer.ts +3 -3
  186. package/src/util/create-resolvable-promise.ts +1 -1
  187. package/src/util/deep-partial.ts +1 -1
  188. package/src/util/download/download.ts +0 -2
  189. package/src/util/merge-objects.ts +5 -0
  190. package/src/util/parse-partial-json.ts +1 -1
  191. package/src/util/prepare-retries.ts +1 -1
  192. package/src/util/serial-job-executor.ts +1 -1
  193. package/src/util/write-to-server-response.ts +1 -1
package/dist/index.js CHANGED
@@ -154,8 +154,11 @@ module.exports = __toCommonJS(src_exports);
154
154
  var import_gateway3 = require("@ai-sdk/gateway");
155
155
  var import_provider_utils39 = require("@ai-sdk/provider-utils");
156
156
 
157
+ // src/agent/tool-loop-agent.ts
158
+ var import_provider_utils19 = require("@ai-sdk/provider-utils");
159
+
157
160
  // src/generate-text/generate-text.ts
158
- var import_provider_utils15 = require("@ai-sdk/provider-utils");
161
+ var import_provider_utils14 = require("@ai-sdk/provider-utils");
159
162
 
160
163
  // src/error/index.ts
161
164
  var import_provider21 = require("@ai-sdk/provider");
@@ -1018,7 +1021,7 @@ function getChunkTimeoutMs(timeout) {
1018
1021
  }
1019
1022
 
1020
1023
  // src/prompt/convert-to-language-model-prompt.ts
1021
- var import_provider_utils6 = require("@ai-sdk/provider-utils");
1024
+ var import_provider_utils5 = require("@ai-sdk/provider-utils");
1022
1025
 
1023
1026
  // src/util/detect-media-type.ts
1024
1027
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
@@ -1249,10 +1252,9 @@ function detectMediaType({
1249
1252
 
1250
1253
  // src/util/download/download.ts
1251
1254
  var import_provider_utils3 = require("@ai-sdk/provider-utils");
1252
- var import_provider_utils4 = require("@ai-sdk/provider-utils");
1253
1255
 
1254
1256
  // src/version.ts
1255
- var VERSION = true ? "6.0.170" : "0.0.0-test";
1257
+ var VERSION = true ? "6.0.172" : "0.0.0-test";
1256
1258
 
1257
1259
  // src/util/download/download.ts
1258
1260
  var download = async ({
@@ -1265,10 +1267,10 @@ var download = async ({
1265
1267
  (0, import_provider_utils3.validateDownloadUrl)(urlText);
1266
1268
  try {
1267
1269
  const response = await fetch(urlText, {
1268
- headers: (0, import_provider_utils4.withUserAgentSuffix)(
1270
+ headers: (0, import_provider_utils3.withUserAgentSuffix)(
1269
1271
  {},
1270
1272
  `ai-sdk/${VERSION}`,
1271
- (0, import_provider_utils4.getRuntimeEnvironmentUserAgent)()
1273
+ (0, import_provider_utils3.getRuntimeEnvironmentUserAgent)()
1272
1274
  ),
1273
1275
  signal: abortSignal
1274
1276
  });
@@ -1308,7 +1310,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
1308
1310
 
1309
1311
  // src/prompt/data-content.ts
1310
1312
  var import_provider22 = require("@ai-sdk/provider");
1311
- var import_provider_utils5 = require("@ai-sdk/provider-utils");
1313
+ var import_provider_utils4 = require("@ai-sdk/provider-utils");
1312
1314
  var import_v4 = require("zod/v4");
1313
1315
 
1314
1316
  // src/prompt/split-data-url.ts
@@ -1373,9 +1375,9 @@ function convertDataContentToBase64String(content) {
1373
1375
  return content;
1374
1376
  }
1375
1377
  if (content instanceof ArrayBuffer) {
1376
- return (0, import_provider_utils5.convertUint8ArrayToBase64)(new Uint8Array(content));
1378
+ return (0, import_provider_utils4.convertUint8ArrayToBase64)(new Uint8Array(content));
1377
1379
  }
1378
- return (0, import_provider_utils5.convertUint8ArrayToBase64)(content);
1380
+ return (0, import_provider_utils4.convertUint8ArrayToBase64)(content);
1379
1381
  }
1380
1382
  function convertDataContentToUint8Array(content) {
1381
1383
  if (content instanceof Uint8Array) {
@@ -1383,7 +1385,7 @@ function convertDataContentToUint8Array(content) {
1383
1385
  }
1384
1386
  if (typeof content === "string") {
1385
1387
  try {
1386
- return (0, import_provider_utils5.convertBase64ToUint8Array)(content);
1388
+ return (0, import_provider_utils4.convertBase64ToUint8Array)(content);
1387
1389
  } catch (error) {
1388
1390
  throw new InvalidDataContentError({
1389
1391
  message: "Invalid data content. Content string is not a base64-encoded media.",
@@ -1655,7 +1657,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
1655
1657
  (part) => part.data instanceof URL
1656
1658
  ).map((part) => ({
1657
1659
  url: part.data,
1658
- isUrlSupportedByModel: part.mediaType != null && (0, import_provider_utils6.isUrlSupported)({
1660
+ isUrlSupportedByModel: part.mediaType != null && (0, import_provider_utils5.isUrlSupported)({
1659
1661
  url: part.data.toString(),
1660
1662
  mediaType: part.mediaType,
1661
1663
  supportedUrls
@@ -1873,7 +1875,7 @@ function prepareCallSettings({
1873
1875
  }
1874
1876
 
1875
1877
  // src/prompt/prepare-tools-and-tool-choice.ts
1876
- var import_provider_utils7 = require("@ai-sdk/provider-utils");
1878
+ var import_provider_utils6 = require("@ai-sdk/provider-utils");
1877
1879
 
1878
1880
  // src/util/is-non-empty-object.ts
1879
1881
  function isNonEmptyObject(object2) {
@@ -1906,7 +1908,7 @@ async function prepareToolsAndToolChoice({
1906
1908
  type: "function",
1907
1909
  name: name21,
1908
1910
  description: tool2.description,
1909
- inputSchema: await (0, import_provider_utils7.asSchema)(tool2.inputSchema).jsonSchema,
1911
+ inputSchema: await (0, import_provider_utils6.asSchema)(tool2.inputSchema).jsonSchema,
1910
1912
  ...tool2.inputExamples != null ? { inputExamples: tool2.inputExamples } : {},
1911
1913
  providerOptions: tool2.providerOptions,
1912
1914
  ...tool2.strict != null ? { strict: tool2.strict } : {}
@@ -1934,7 +1936,7 @@ async function prepareToolsAndToolChoice({
1934
1936
 
1935
1937
  // src/prompt/standardize-prompt.ts
1936
1938
  var import_provider24 = require("@ai-sdk/provider");
1937
- var import_provider_utils8 = require("@ai-sdk/provider-utils");
1939
+ var import_provider_utils7 = require("@ai-sdk/provider-utils");
1938
1940
  var import_v46 = require("zod/v4");
1939
1941
 
1940
1942
  // src/prompt/message.ts
@@ -2197,7 +2199,7 @@ async function standardizePrompt({
2197
2199
  );
2198
2200
  }
2199
2201
  }
2200
- const validationResult = await (0, import_provider_utils8.safeValidateTypes)({
2202
+ const validationResult = await (0, import_provider_utils7.safeValidateTypes)({
2201
2203
  value: messages,
2202
2204
  schema: import_v46.z.array(modelMessageSchema)
2203
2205
  });
@@ -2635,6 +2637,9 @@ function mergeObjects(base, overrides) {
2635
2637
  }
2636
2638
  const result = { ...base };
2637
2639
  for (const key in overrides) {
2640
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
2641
+ continue;
2642
+ }
2638
2643
  if (Object.prototype.hasOwnProperty.call(overrides, key)) {
2639
2644
  const overridesValue = overrides[key];
2640
2645
  if (overridesValue === void 0)
@@ -2657,7 +2662,7 @@ function mergeObjects(base, overrides) {
2657
2662
 
2658
2663
  // src/util/retry-with-exponential-backoff.ts
2659
2664
  var import_provider26 = require("@ai-sdk/provider");
2660
- var import_provider_utils9 = require("@ai-sdk/provider-utils");
2665
+ var import_provider_utils8 = require("@ai-sdk/provider-utils");
2661
2666
  function getRetryDelayInMs({
2662
2667
  error,
2663
2668
  exponentialBackoffDelay
@@ -2707,13 +2712,13 @@ async function _retryWithExponentialBackoff(f, {
2707
2712
  try {
2708
2713
  return await f();
2709
2714
  } catch (error) {
2710
- if ((0, import_provider_utils9.isAbortError)(error)) {
2715
+ if ((0, import_provider_utils8.isAbortError)(error)) {
2711
2716
  throw error;
2712
2717
  }
2713
2718
  if (maxRetries === 0) {
2714
2719
  throw error;
2715
2720
  }
2716
- const errorMessage = (0, import_provider_utils9.getErrorMessage)(error);
2721
+ const errorMessage = (0, import_provider_utils8.getErrorMessage)(error);
2717
2722
  const newErrors = [...errors, error];
2718
2723
  const tryNumber = newErrors.length;
2719
2724
  if (tryNumber > maxRetries) {
@@ -2724,7 +2729,7 @@ async function _retryWithExponentialBackoff(f, {
2724
2729
  });
2725
2730
  }
2726
2731
  if (error instanceof Error && import_provider26.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
2727
- await (0, import_provider_utils9.delay)(
2732
+ await (0, import_provider_utils8.delay)(
2728
2733
  getRetryDelayInMs({
2729
2734
  error,
2730
2735
  exponentialBackoffDelay: delayInMs
@@ -2860,7 +2865,7 @@ function collectToolApprovals({
2860
2865
  }
2861
2866
 
2862
2867
  // src/generate-text/execute-tool-call.ts
2863
- var import_provider_utils10 = require("@ai-sdk/provider-utils");
2868
+ var import_provider_utils9 = require("@ai-sdk/provider-utils");
2864
2869
 
2865
2870
  // src/util/now.ts
2866
2871
  function now() {
@@ -2920,7 +2925,7 @@ async function executeToolCall({
2920
2925
  await notify({ event: baseCallbackEvent, callbacks: onToolCallStart });
2921
2926
  const startTime = now();
2922
2927
  try {
2923
- const stream = (0, import_provider_utils10.executeTool)({
2928
+ const stream = (0, import_provider_utils9.executeTool)({
2924
2929
  execute: tool2.execute.bind(tool2),
2925
2930
  input,
2926
2931
  options: {
@@ -3020,7 +3025,7 @@ function extractTextContent(content) {
3020
3025
  }
3021
3026
 
3022
3027
  // src/generate-text/generated-file.ts
3023
- var import_provider_utils11 = require("@ai-sdk/provider-utils");
3028
+ var import_provider_utils10 = require("@ai-sdk/provider-utils");
3024
3029
  var DefaultGeneratedFile = class {
3025
3030
  constructor({
3026
3031
  data,
@@ -3034,14 +3039,14 @@ var DefaultGeneratedFile = class {
3034
3039
  // lazy conversion with caching to avoid unnecessary conversion overhead:
3035
3040
  get base64() {
3036
3041
  if (this.base64Data == null) {
3037
- this.base64Data = (0, import_provider_utils11.convertUint8ArrayToBase64)(this.uint8ArrayData);
3042
+ this.base64Data = (0, import_provider_utils10.convertUint8ArrayToBase64)(this.uint8ArrayData);
3038
3043
  }
3039
3044
  return this.base64Data;
3040
3045
  }
3041
3046
  // lazy conversion with caching to avoid unnecessary conversion overhead:
3042
3047
  get uint8Array() {
3043
3048
  if (this.uint8ArrayData == null) {
3044
- this.uint8ArrayData = (0, import_provider_utils11.convertBase64ToUint8Array)(this.base64Data);
3049
+ this.uint8ArrayData = (0, import_provider_utils10.convertBase64ToUint8Array)(this.base64Data);
3045
3050
  }
3046
3051
  return this.uint8ArrayData;
3047
3052
  }
@@ -3083,10 +3088,10 @@ __export(output_exports, {
3083
3088
  text: () => text
3084
3089
  });
3085
3090
  var import_provider27 = require("@ai-sdk/provider");
3086
- var import_provider_utils13 = require("@ai-sdk/provider-utils");
3091
+ var import_provider_utils12 = require("@ai-sdk/provider-utils");
3087
3092
 
3088
3093
  // src/util/parse-partial-json.ts
3089
- var import_provider_utils12 = require("@ai-sdk/provider-utils");
3094
+ var import_provider_utils11 = require("@ai-sdk/provider-utils");
3090
3095
 
3091
3096
  // src/util/fix-json.ts
3092
3097
  function fixJson(input) {
@@ -3411,11 +3416,11 @@ async function parsePartialJson(jsonText) {
3411
3416
  if (jsonText === void 0) {
3412
3417
  return { value: void 0, state: "undefined-input" };
3413
3418
  }
3414
- let result = await (0, import_provider_utils12.safeParseJSON)({ text: jsonText });
3419
+ let result = await (0, import_provider_utils11.safeParseJSON)({ text: jsonText });
3415
3420
  if (result.success) {
3416
3421
  return { value: result.value, state: "successful-parse" };
3417
3422
  }
3418
- result = await (0, import_provider_utils12.safeParseJSON)({ text: fixJson(jsonText) });
3423
+ result = await (0, import_provider_utils11.safeParseJSON)({ text: fixJson(jsonText) });
3419
3424
  if (result.success) {
3420
3425
  return { value: result.value, state: "repaired-parse" };
3421
3426
  }
@@ -3441,17 +3446,17 @@ var object = ({
3441
3446
  name: name21,
3442
3447
  description
3443
3448
  }) => {
3444
- const schema = (0, import_provider_utils13.asSchema)(inputSchema);
3449
+ const schema = (0, import_provider_utils12.asSchema)(inputSchema);
3445
3450
  return {
3446
3451
  name: "object",
3447
- responseFormat: (0, import_provider_utils13.resolve)(schema.jsonSchema).then((jsonSchema2) => ({
3452
+ responseFormat: (0, import_provider_utils12.resolve)(schema.jsonSchema).then((jsonSchema2) => ({
3448
3453
  type: "json",
3449
3454
  schema: jsonSchema2,
3450
3455
  ...name21 != null && { name: name21 },
3451
3456
  ...description != null && { description }
3452
3457
  })),
3453
3458
  async parseCompleteOutput({ text: text2 }, context2) {
3454
- const parseResult = await (0, import_provider_utils13.safeParseJSON)({ text: text2 });
3459
+ const parseResult = await (0, import_provider_utils12.safeParseJSON)({ text: text2 });
3455
3460
  if (!parseResult.success) {
3456
3461
  throw new NoObjectGeneratedError({
3457
3462
  message: "No object generated: could not parse the response.",
@@ -3462,7 +3467,7 @@ var object = ({
3462
3467
  finishReason: context2.finishReason
3463
3468
  });
3464
3469
  }
3465
- const validationResult = await (0, import_provider_utils13.safeValidateTypes)({
3470
+ const validationResult = await (0, import_provider_utils12.safeValidateTypes)({
3466
3471
  value: parseResult.value,
3467
3472
  schema
3468
3473
  });
@@ -3504,11 +3509,11 @@ var array = ({
3504
3509
  name: name21,
3505
3510
  description
3506
3511
  }) => {
3507
- const elementSchema = (0, import_provider_utils13.asSchema)(inputElementSchema);
3512
+ const elementSchema = (0, import_provider_utils12.asSchema)(inputElementSchema);
3508
3513
  return {
3509
3514
  name: "array",
3510
3515
  // JSON schema that describes an array of elements:
3511
- responseFormat: (0, import_provider_utils13.resolve)(elementSchema.jsonSchema).then((jsonSchema2) => {
3516
+ responseFormat: (0, import_provider_utils12.resolve)(elementSchema.jsonSchema).then((jsonSchema2) => {
3512
3517
  const { $schema, ...itemSchema } = jsonSchema2;
3513
3518
  return {
3514
3519
  type: "json",
@@ -3526,7 +3531,7 @@ var array = ({
3526
3531
  };
3527
3532
  }),
3528
3533
  async parseCompleteOutput({ text: text2 }, context2) {
3529
- const parseResult = await (0, import_provider_utils13.safeParseJSON)({ text: text2 });
3534
+ const parseResult = await (0, import_provider_utils12.safeParseJSON)({ text: text2 });
3530
3535
  if (!parseResult.success) {
3531
3536
  throw new NoObjectGeneratedError({
3532
3537
  message: "No object generated: could not parse the response.",
@@ -3552,7 +3557,7 @@ var array = ({
3552
3557
  });
3553
3558
  }
3554
3559
  for (const element of outerValue.elements) {
3555
- const validationResult = await (0, import_provider_utils13.safeValidateTypes)({
3560
+ const validationResult = await (0, import_provider_utils12.safeValidateTypes)({
3556
3561
  value: element,
3557
3562
  schema: elementSchema
3558
3563
  });
@@ -3585,7 +3590,7 @@ var array = ({
3585
3590
  const rawElements = result.state === "repaired-parse" && outerValue.elements.length > 0 ? outerValue.elements.slice(0, -1) : outerValue.elements;
3586
3591
  const parsedElements = [];
3587
3592
  for (const rawElement of rawElements) {
3588
- const validationResult = await (0, import_provider_utils13.safeValidateTypes)({
3593
+ const validationResult = await (0, import_provider_utils12.safeValidateTypes)({
3589
3594
  value: rawElement,
3590
3595
  schema: elementSchema
3591
3596
  });
@@ -3634,7 +3639,7 @@ var choice = ({
3634
3639
  ...description != null && { description }
3635
3640
  }),
3636
3641
  async parseCompleteOutput({ text: text2 }, context2) {
3637
- const parseResult = await (0, import_provider_utils13.safeParseJSON)({ text: text2 });
3642
+ const parseResult = await (0, import_provider_utils12.safeParseJSON)({ text: text2 });
3638
3643
  if (!parseResult.success) {
3639
3644
  throw new NoObjectGeneratedError({
3640
3645
  message: "No object generated: could not parse the response.",
@@ -3702,7 +3707,7 @@ var json = ({
3702
3707
  ...description != null && { description }
3703
3708
  }),
3704
3709
  async parseCompleteOutput({ text: text2 }, context2) {
3705
- const parseResult = await (0, import_provider_utils13.safeParseJSON)({ text: text2 });
3710
+ const parseResult = await (0, import_provider_utils12.safeParseJSON)({ text: text2 });
3706
3711
  if (!parseResult.success) {
3707
3712
  throw new NoObjectGeneratedError({
3708
3713
  message: "No object generated: could not parse the response.",
@@ -3735,7 +3740,7 @@ var json = ({
3735
3740
  };
3736
3741
 
3737
3742
  // src/generate-text/parse-tool-call.ts
3738
- var import_provider_utils14 = require("@ai-sdk/provider-utils");
3743
+ var import_provider_utils13 = require("@ai-sdk/provider-utils");
3739
3744
  async function parseToolCall({
3740
3745
  toolCall,
3741
3746
  tools,
@@ -3764,7 +3769,7 @@ async function parseToolCall({
3764
3769
  tools,
3765
3770
  inputSchema: async ({ toolName }) => {
3766
3771
  const { inputSchema } = tools[toolName];
3767
- return await (0, import_provider_utils14.asSchema)(inputSchema).jsonSchema;
3772
+ return await (0, import_provider_utils13.asSchema)(inputSchema).jsonSchema;
3768
3773
  },
3769
3774
  system,
3770
3775
  messages,
@@ -3782,7 +3787,7 @@ async function parseToolCall({
3782
3787
  return await doParseToolCall({ toolCall: repairedToolCall, tools });
3783
3788
  }
3784
3789
  } catch (error) {
3785
- const parsedInput = await (0, import_provider_utils14.safeParseJSON)({ text: toolCall.input });
3790
+ const parsedInput = await (0, import_provider_utils13.safeParseJSON)({ text: toolCall.input });
3786
3791
  const input = parsedInput.success ? parsedInput.value : toolCall.input;
3787
3792
  return {
3788
3793
  type: "tool-call",
@@ -3799,7 +3804,7 @@ async function parseToolCall({
3799
3804
  }
3800
3805
  }
3801
3806
  async function parseProviderExecutedDynamicToolCall(toolCall) {
3802
- const parseResult = toolCall.input.trim() === "" ? { success: true, value: {} } : await (0, import_provider_utils14.safeParseJSON)({ text: toolCall.input });
3807
+ const parseResult = toolCall.input.trim() === "" ? { success: true, value: {} } : await (0, import_provider_utils13.safeParseJSON)({ text: toolCall.input });
3803
3808
  if (parseResult.success === false) {
3804
3809
  throw new InvalidToolInputError({
3805
3810
  toolName: toolCall.toolName,
@@ -3832,8 +3837,8 @@ async function doParseToolCall({
3832
3837
  availableTools: Object.keys(tools)
3833
3838
  });
3834
3839
  }
3835
- const schema = (0, import_provider_utils14.asSchema)(tool2.inputSchema);
3836
- const parseResult = toolCall.input.trim() === "" ? await (0, import_provider_utils14.safeValidateTypes)({ value: {}, schema }) : await (0, import_provider_utils14.safeParseJSON)({ text: toolCall.input, schema });
3840
+ const schema = (0, import_provider_utils13.asSchema)(tool2.inputSchema);
3841
+ const parseResult = toolCall.input.trim() === "" ? await (0, import_provider_utils13.safeValidateTypes)({ value: {}, schema }) : await (0, import_provider_utils13.safeParseJSON)({ text: toolCall.input, schema });
3837
3842
  if (parseResult.success === false) {
3838
3843
  throw new InvalidToolInputError({
3839
3844
  toolName,
@@ -4114,7 +4119,7 @@ function mergeAbortSignals(...signals) {
4114
4119
  }
4115
4120
 
4116
4121
  // src/generate-text/generate-text.ts
4117
- var originalGenerateId = (0, import_provider_utils15.createIdGenerator)({
4122
+ var originalGenerateId = (0, import_provider_utils14.createIdGenerator)({
4118
4123
  prefix: "aitxt",
4119
4124
  size: 24
4120
4125
  });
@@ -4168,7 +4173,7 @@ async function generateText({
4168
4173
  abortSignal: mergedAbortSignal
4169
4174
  });
4170
4175
  const callSettings = prepareCallSettings(settings);
4171
- const headersWithUserAgent = (0, import_provider_utils15.withUserAgentSuffix)(
4176
+ const headersWithUserAgent = (0, import_provider_utils14.withUserAgentSuffix)(
4172
4177
  headers != null ? headers : {},
4173
4178
  `ai/${VERSION}`
4174
4179
  );
@@ -4546,7 +4551,7 @@ async function generateText({
4546
4551
  toolCallId: toolCall.toolCallId,
4547
4552
  toolName: toolCall.toolName,
4548
4553
  input: toolCall.input,
4549
- error: (0, import_provider_utils15.getErrorMessage)(toolCall.error),
4554
+ error: (0, import_provider_utils14.getErrorMessage)(toolCall.error),
4550
4555
  dynamic: true
4551
4556
  });
4552
4557
  }
@@ -5003,7 +5008,7 @@ function asContent({
5003
5008
 
5004
5009
  // src/generate-text/stream-text.ts
5005
5010
  var import_provider28 = require("@ai-sdk/provider");
5006
- var import_provider_utils19 = require("@ai-sdk/provider-utils");
5011
+ var import_provider_utils18 = require("@ai-sdk/provider-utils");
5007
5012
 
5008
5013
  // src/util/prepare-headers.ts
5009
5014
  function prepareHeaders(headers, defaultHeaders) {
@@ -5150,13 +5155,13 @@ function getResponseUIMessageId({
5150
5155
  }
5151
5156
 
5152
5157
  // src/ui/process-ui-message-stream.ts
5153
- var import_provider_utils17 = require("@ai-sdk/provider-utils");
5158
+ var import_provider_utils16 = require("@ai-sdk/provider-utils");
5154
5159
 
5155
5160
  // src/ui-message-stream/ui-message-chunks.ts
5156
5161
  var import_v47 = require("zod/v4");
5157
- var import_provider_utils16 = require("@ai-sdk/provider-utils");
5158
- var uiMessageChunkSchema = (0, import_provider_utils16.lazySchema)(
5159
- () => (0, import_provider_utils16.zodSchema)(
5162
+ var import_provider_utils15 = require("@ai-sdk/provider-utils");
5163
+ var uiMessageChunkSchema = (0, import_provider_utils15.lazySchema)(
5164
+ () => (0, import_provider_utils15.zodSchema)(
5160
5165
  import_v47.z.union([
5161
5166
  import_v47.z.strictObject({
5162
5167
  type: import_v47.z.literal("text-start"),
@@ -5492,7 +5497,7 @@ function processUIMessageStream({
5492
5497
  if (metadata != null) {
5493
5498
  const mergedMetadata = state.message.metadata != null ? mergeObjects(state.message.metadata, metadata) : metadata;
5494
5499
  if (messageMetadataSchema != null) {
5495
- await (0, import_provider_utils17.validateTypes)({
5500
+ await (0, import_provider_utils16.validateTypes)({
5496
5501
  value: mergedMetadata,
5497
5502
  schema: messageMetadataSchema,
5498
5503
  context: {
@@ -5863,7 +5868,7 @@ function processUIMessageStream({
5863
5868
  (p) => "id" in p && "data" in p && p.id === chunk.id && p.type === chunk.type
5864
5869
  );
5865
5870
  const actualPartIdx = partIdx >= 0 ? partIdx : state.message.parts.length;
5866
- await (0, import_provider_utils17.validateTypes)({
5871
+ await (0, import_provider_utils16.validateTypes)({
5867
5872
  value: chunk.data,
5868
5873
  schema: dataPartSchemas[chunk.type],
5869
5874
  context: {
@@ -6205,7 +6210,7 @@ function createStitchableStream() {
6205
6210
  }
6206
6211
 
6207
6212
  // src/generate-text/run-tools-transformation.ts
6208
- var import_provider_utils18 = require("@ai-sdk/provider-utils");
6213
+ var import_provider_utils17 = require("@ai-sdk/provider-utils");
6209
6214
  function runToolsTransformation({
6210
6215
  tools,
6211
6216
  generatorStream,
@@ -6319,7 +6324,7 @@ function runToolsTransformation({
6319
6324
  toolCallId: toolCall.toolCallId,
6320
6325
  toolName: toolCall.toolName,
6321
6326
  input: toolCall.input,
6322
- error: (0, import_provider_utils18.getErrorMessage)(toolCall.error),
6327
+ error: (0, import_provider_utils17.getErrorMessage)(toolCall.error),
6323
6328
  dynamic: true,
6324
6329
  title: toolCall.title
6325
6330
  });
@@ -6453,7 +6458,7 @@ function runToolsTransformation({
6453
6458
  }
6454
6459
 
6455
6460
  // src/generate-text/stream-text.ts
6456
- var originalGenerateId2 = (0, import_provider_utils19.createIdGenerator)({
6461
+ var originalGenerateId2 = (0, import_provider_utils18.createIdGenerator)({
6457
6462
  prefix: "aitxt",
6458
6463
  size: 24
6459
6464
  });
@@ -6657,10 +6662,10 @@ var DefaultStreamTextResult = class {
6657
6662
  download: download2,
6658
6663
  include
6659
6664
  }) {
6660
- this._totalUsage = new import_provider_utils19.DelayedPromise();
6661
- this._finishReason = new import_provider_utils19.DelayedPromise();
6662
- this._rawFinishReason = new import_provider_utils19.DelayedPromise();
6663
- this._steps = new import_provider_utils19.DelayedPromise();
6665
+ this._totalUsage = new import_provider_utils18.DelayedPromise();
6666
+ this._finishReason = new import_provider_utils18.DelayedPromise();
6667
+ this._rawFinishReason = new import_provider_utils18.DelayedPromise();
6668
+ this._steps = new import_provider_utils18.DelayedPromise();
6664
6669
  this.outputSpecification = output;
6665
6670
  this.includeRawChunks = includeRawChunks;
6666
6671
  this.tools = tools;
@@ -6960,7 +6965,7 @@ var DefaultStreamTextResult = class {
6960
6965
  }
6961
6966
  controller.enqueue(value);
6962
6967
  } catch (error) {
6963
- if ((0, import_provider_utils19.isAbortError)(error) && (abortSignal == null ? void 0 : abortSignal.aborted)) {
6968
+ if ((0, import_provider_utils18.isAbortError)(error) && (abortSignal == null ? void 0 : abortSignal.aborted)) {
6964
6969
  abort();
6965
6970
  } else {
6966
6971
  controller.error(error);
@@ -7187,7 +7192,7 @@ var DefaultStreamTextResult = class {
7187
7192
  }
7188
7193
  }
7189
7194
  try {
7190
- stepFinish = new import_provider_utils19.DelayedPromise();
7195
+ stepFinish = new import_provider_utils18.DelayedPromise();
7191
7196
  const stepInputMessages = [...initialMessages, ...responseMessages];
7192
7197
  const prepareStepResult = await (prepareStep == null ? void 0 : prepareStep({
7193
7198
  model,
@@ -8196,6 +8201,14 @@ var ToolLoopAgent = class {
8196
8201
  }
8197
8202
  async prepareCall(options) {
8198
8203
  var _a21, _b, _c, _d;
8204
+ if (this.settings.callOptionsSchema != null && options.options !== void 0) {
8205
+ const validatedOptions = await (0, import_provider_utils19.validateTypes)({
8206
+ value: options.options,
8207
+ schema: this.settings.callOptionsSchema,
8208
+ context: { field: "options" }
8209
+ });
8210
+ options = { ...options, options: validatedOptions };
8211
+ }
8199
8212
  const { onStepFinish: _settingsOnStepFinish, ...settingsWithoutCallback } = this.settings;
8200
8213
  const baseCallArgs = {
8201
8214
  ...settingsWithoutCallback,