ai 6.0.2 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -4,8 +4,8 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
6
  var __export = (target, all) => {
7
- for (var name14 in all)
8
- __defProp(target, name14, { get: all[name14], enumerable: true });
7
+ for (var name16 in all)
8
+ __defProp(target, name16, { get: all[name16], enumerable: true });
9
9
  };
10
10
  var __copyProps = (to, from, except, desc) => {
11
11
  if (from && typeof from === "object" || typeof from === "function") {
@@ -20,44 +20,46 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var src_exports = {};
22
22
  __export(src_exports, {
23
- AISDKError: () => import_provider15.AISDKError,
24
- APICallError: () => import_provider15.APICallError,
23
+ AISDKError: () => import_provider17.AISDKError,
24
+ APICallError: () => import_provider17.APICallError,
25
25
  AbstractChat: () => AbstractChat,
26
26
  DefaultChatTransport: () => DefaultChatTransport,
27
27
  DownloadError: () => import_provider_utils.DownloadError,
28
- EmptyResponseBodyError: () => import_provider15.EmptyResponseBodyError,
28
+ EmptyResponseBodyError: () => import_provider17.EmptyResponseBodyError,
29
29
  Experimental_Agent: () => ToolLoopAgent,
30
30
  HttpChatTransport: () => HttpChatTransport,
31
31
  InvalidArgumentError: () => InvalidArgumentError,
32
32
  InvalidDataContentError: () => InvalidDataContentError,
33
33
  InvalidMessageRoleError: () => InvalidMessageRoleError,
34
- InvalidPromptError: () => import_provider15.InvalidPromptError,
35
- InvalidResponseDataError: () => import_provider15.InvalidResponseDataError,
34
+ InvalidPromptError: () => import_provider17.InvalidPromptError,
35
+ InvalidResponseDataError: () => import_provider17.InvalidResponseDataError,
36
36
  InvalidStreamPartError: () => InvalidStreamPartError,
37
+ InvalidToolApprovalError: () => InvalidToolApprovalError,
37
38
  InvalidToolInputError: () => InvalidToolInputError,
38
- JSONParseError: () => import_provider15.JSONParseError,
39
+ JSONParseError: () => import_provider17.JSONParseError,
39
40
  JsonToSseTransformStream: () => JsonToSseTransformStream,
40
- LoadAPIKeyError: () => import_provider15.LoadAPIKeyError,
41
- LoadSettingError: () => import_provider15.LoadSettingError,
41
+ LoadAPIKeyError: () => import_provider17.LoadAPIKeyError,
42
+ LoadSettingError: () => import_provider17.LoadSettingError,
42
43
  MessageConversionError: () => MessageConversionError,
43
- NoContentGeneratedError: () => import_provider15.NoContentGeneratedError,
44
+ NoContentGeneratedError: () => import_provider17.NoContentGeneratedError,
44
45
  NoImageGeneratedError: () => NoImageGeneratedError,
45
46
  NoObjectGeneratedError: () => NoObjectGeneratedError,
46
47
  NoOutputGeneratedError: () => NoOutputGeneratedError,
47
48
  NoSpeechGeneratedError: () => NoSpeechGeneratedError,
48
- NoSuchModelError: () => import_provider15.NoSuchModelError,
49
+ NoSuchModelError: () => import_provider17.NoSuchModelError,
49
50
  NoSuchProviderError: () => NoSuchProviderError,
50
51
  NoSuchToolError: () => NoSuchToolError,
51
52
  Output: () => output_exports,
52
53
  RetryError: () => RetryError,
53
54
  SerialJobExecutor: () => SerialJobExecutor,
54
55
  TextStreamChatTransport: () => TextStreamChatTransport,
55
- TooManyEmbeddingValuesForCallError: () => import_provider15.TooManyEmbeddingValuesForCallError,
56
+ TooManyEmbeddingValuesForCallError: () => import_provider17.TooManyEmbeddingValuesForCallError,
57
+ ToolCallNotFoundForApprovalError: () => ToolCallNotFoundForApprovalError,
56
58
  ToolCallRepairError: () => ToolCallRepairError,
57
59
  ToolLoopAgent: () => ToolLoopAgent,
58
- TypeValidationError: () => import_provider15.TypeValidationError,
60
+ TypeValidationError: () => import_provider17.TypeValidationError,
59
61
  UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
60
- UnsupportedFunctionalityError: () => import_provider15.UnsupportedFunctionalityError,
62
+ UnsupportedFunctionalityError: () => import_provider17.UnsupportedFunctionalityError,
61
63
  UnsupportedModelVersionError: () => UnsupportedModelVersionError,
62
64
  addToolInputExamplesMiddleware: () => addToolInputExamplesMiddleware,
63
65
  asSchema: () => import_provider_utils38.asSchema,
@@ -143,7 +145,7 @@ var import_provider_utils38 = require("@ai-sdk/provider-utils");
143
145
  var import_provider_utils15 = require("@ai-sdk/provider-utils");
144
146
 
145
147
  // src/error/index.ts
146
- var import_provider15 = require("@ai-sdk/provider");
148
+ var import_provider17 = require("@ai-sdk/provider");
147
149
 
148
150
  // src/error/invalid-argument-error.ts
149
151
  var import_provider = require("@ai-sdk/provider");
@@ -192,23 +194,20 @@ var InvalidStreamPartError = class extends import_provider2.AISDKError {
192
194
  };
193
195
  _a2 = symbol2;
194
196
 
195
- // src/error/invalid-tool-input-error.ts
197
+ // src/error/invalid-tool-approval-error.ts
196
198
  var import_provider3 = require("@ai-sdk/provider");
197
- var name3 = "AI_InvalidToolInputError";
199
+ var name3 = "AI_InvalidToolApprovalError";
198
200
  var marker3 = `vercel.ai.error.${name3}`;
199
201
  var symbol3 = Symbol.for(marker3);
200
202
  var _a3;
201
- var InvalidToolInputError = class extends import_provider3.AISDKError {
202
- constructor({
203
- toolInput,
204
- toolName,
205
- cause,
206
- message = `Invalid input for tool ${toolName}: ${(0, import_provider3.getErrorMessage)(cause)}`
207
- }) {
208
- super({ name: name3, message, cause });
203
+ var InvalidToolApprovalError = class extends import_provider3.AISDKError {
204
+ constructor({ approvalId }) {
205
+ super({
206
+ name: name3,
207
+ message: `Tool approval response references unknown approvalId: "${approvalId}". No matching tool-approval-request found in message history.`
208
+ });
209
209
  this[_a3] = true;
210
- this.toolInput = toolInput;
211
- this.toolName = toolName;
210
+ this.approvalId = approvalId;
212
211
  }
213
212
  static isInstance(error) {
214
213
  return import_provider3.AISDKError.hasMarker(error, marker3);
@@ -216,21 +215,23 @@ var InvalidToolInputError = class extends import_provider3.AISDKError {
216
215
  };
217
216
  _a3 = symbol3;
218
217
 
219
- // src/error/no-image-generated-error.ts
218
+ // src/error/invalid-tool-input-error.ts
220
219
  var import_provider4 = require("@ai-sdk/provider");
221
- var name4 = "AI_NoImageGeneratedError";
220
+ var name4 = "AI_InvalidToolInputError";
222
221
  var marker4 = `vercel.ai.error.${name4}`;
223
222
  var symbol4 = Symbol.for(marker4);
224
223
  var _a4;
225
- var NoImageGeneratedError = class extends import_provider4.AISDKError {
224
+ var InvalidToolInputError = class extends import_provider4.AISDKError {
226
225
  constructor({
227
- message = "No image generated.",
226
+ toolInput,
227
+ toolName,
228
228
  cause,
229
- responses
229
+ message = `Invalid input for tool ${toolName}: ${(0, import_provider4.getErrorMessage)(cause)}`
230
230
  }) {
231
231
  super({ name: name4, message, cause });
232
232
  this[_a4] = true;
233
- this.responses = responses;
233
+ this.toolInput = toolInput;
234
+ this.toolName = toolName;
234
235
  }
235
236
  static isInstance(error) {
236
237
  return import_provider4.AISDKError.hasMarker(error, marker4);
@@ -238,13 +239,60 @@ var NoImageGeneratedError = class extends import_provider4.AISDKError {
238
239
  };
239
240
  _a4 = symbol4;
240
241
 
241
- // src/error/no-object-generated-error.ts
242
+ // src/error/tool-call-not-found-for-approval-error.ts
242
243
  var import_provider5 = require("@ai-sdk/provider");
243
- var name5 = "AI_NoObjectGeneratedError";
244
+ var name5 = "AI_ToolCallNotFoundForApprovalError";
244
245
  var marker5 = `vercel.ai.error.${name5}`;
245
246
  var symbol5 = Symbol.for(marker5);
246
247
  var _a5;
247
- var NoObjectGeneratedError = class extends import_provider5.AISDKError {
248
+ var ToolCallNotFoundForApprovalError = class extends import_provider5.AISDKError {
249
+ constructor({
250
+ toolCallId,
251
+ approvalId
252
+ }) {
253
+ super({
254
+ name: name5,
255
+ message: `Tool call "${toolCallId}" not found for approval request "${approvalId}".`
256
+ });
257
+ this[_a5] = true;
258
+ this.toolCallId = toolCallId;
259
+ this.approvalId = approvalId;
260
+ }
261
+ static isInstance(error) {
262
+ return import_provider5.AISDKError.hasMarker(error, marker5);
263
+ }
264
+ };
265
+ _a5 = symbol5;
266
+
267
+ // src/error/no-image-generated-error.ts
268
+ var import_provider6 = require("@ai-sdk/provider");
269
+ var name6 = "AI_NoImageGeneratedError";
270
+ var marker6 = `vercel.ai.error.${name6}`;
271
+ var symbol6 = Symbol.for(marker6);
272
+ var _a6;
273
+ var NoImageGeneratedError = class extends import_provider6.AISDKError {
274
+ constructor({
275
+ message = "No image generated.",
276
+ cause,
277
+ responses
278
+ }) {
279
+ super({ name: name6, message, cause });
280
+ this[_a6] = true;
281
+ this.responses = responses;
282
+ }
283
+ static isInstance(error) {
284
+ return import_provider6.AISDKError.hasMarker(error, marker6);
285
+ }
286
+ };
287
+ _a6 = symbol6;
288
+
289
+ // src/error/no-object-generated-error.ts
290
+ var import_provider7 = require("@ai-sdk/provider");
291
+ var name7 = "AI_NoObjectGeneratedError";
292
+ var marker7 = `vercel.ai.error.${name7}`;
293
+ var symbol7 = Symbol.for(marker7);
294
+ var _a7;
295
+ var NoObjectGeneratedError = class extends import_provider7.AISDKError {
248
296
  constructor({
249
297
  message = "No object generated.",
250
298
  cause,
@@ -253,43 +301,43 @@ var NoObjectGeneratedError = class extends import_provider5.AISDKError {
253
301
  usage,
254
302
  finishReason
255
303
  }) {
256
- super({ name: name5, message, cause });
257
- this[_a5] = true;
304
+ super({ name: name7, message, cause });
305
+ this[_a7] = true;
258
306
  this.text = text2;
259
307
  this.response = response;
260
308
  this.usage = usage;
261
309
  this.finishReason = finishReason;
262
310
  }
263
311
  static isInstance(error) {
264
- return import_provider5.AISDKError.hasMarker(error, marker5);
312
+ return import_provider7.AISDKError.hasMarker(error, marker7);
265
313
  }
266
314
  };
267
- _a5 = symbol5;
315
+ _a7 = symbol7;
268
316
 
269
317
  // src/error/no-output-generated-error.ts
270
- var import_provider6 = require("@ai-sdk/provider");
271
- var name6 = "AI_NoOutputGeneratedError";
272
- var marker6 = `vercel.ai.error.${name6}`;
273
- var symbol6 = Symbol.for(marker6);
274
- var _a6;
275
- var NoOutputGeneratedError = class extends import_provider6.AISDKError {
318
+ var import_provider8 = require("@ai-sdk/provider");
319
+ var name8 = "AI_NoOutputGeneratedError";
320
+ var marker8 = `vercel.ai.error.${name8}`;
321
+ var symbol8 = Symbol.for(marker8);
322
+ var _a8;
323
+ var NoOutputGeneratedError = class extends import_provider8.AISDKError {
276
324
  // used in isInstance
277
325
  constructor({
278
326
  message = "No output generated.",
279
327
  cause
280
328
  } = {}) {
281
- super({ name: name6, message, cause });
282
- this[_a6] = true;
329
+ super({ name: name8, message, cause });
330
+ this[_a8] = true;
283
331
  }
284
332
  static isInstance(error) {
285
- return import_provider6.AISDKError.hasMarker(error, marker6);
333
+ return import_provider8.AISDKError.hasMarker(error, marker8);
286
334
  }
287
335
  };
288
- _a6 = symbol6;
336
+ _a8 = symbol8;
289
337
 
290
338
  // src/error/no-speech-generated-error.ts
291
- var import_provider7 = require("@ai-sdk/provider");
292
- var NoSpeechGeneratedError = class extends import_provider7.AISDKError {
339
+ var import_provider9 = require("@ai-sdk/provider");
340
+ var NoSpeechGeneratedError = class extends import_provider9.AISDKError {
293
341
  constructor(options) {
294
342
  super({
295
343
  name: "AI_NoSpeechGeneratedError",
@@ -300,53 +348,53 @@ var NoSpeechGeneratedError = class extends import_provider7.AISDKError {
300
348
  };
301
349
 
302
350
  // src/error/no-such-tool-error.ts
303
- var import_provider8 = require("@ai-sdk/provider");
304
- var name7 = "AI_NoSuchToolError";
305
- var marker7 = `vercel.ai.error.${name7}`;
306
- var symbol7 = Symbol.for(marker7);
307
- var _a7;
308
- var NoSuchToolError = class extends import_provider8.AISDKError {
351
+ var import_provider10 = require("@ai-sdk/provider");
352
+ var name9 = "AI_NoSuchToolError";
353
+ var marker9 = `vercel.ai.error.${name9}`;
354
+ var symbol9 = Symbol.for(marker9);
355
+ var _a9;
356
+ var NoSuchToolError = class extends import_provider10.AISDKError {
309
357
  constructor({
310
358
  toolName,
311
359
  availableTools = void 0,
312
360
  message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
313
361
  }) {
314
- super({ name: name7, message });
315
- this[_a7] = true;
362
+ super({ name: name9, message });
363
+ this[_a9] = true;
316
364
  this.toolName = toolName;
317
365
  this.availableTools = availableTools;
318
366
  }
319
367
  static isInstance(error) {
320
- return import_provider8.AISDKError.hasMarker(error, marker7);
368
+ return import_provider10.AISDKError.hasMarker(error, marker9);
321
369
  }
322
370
  };
323
- _a7 = symbol7;
371
+ _a9 = symbol9;
324
372
 
325
373
  // src/error/tool-call-repair-error.ts
326
- var import_provider9 = require("@ai-sdk/provider");
327
- var name8 = "AI_ToolCallRepairError";
328
- var marker8 = `vercel.ai.error.${name8}`;
329
- var symbol8 = Symbol.for(marker8);
330
- var _a8;
331
- var ToolCallRepairError = class extends import_provider9.AISDKError {
374
+ var import_provider11 = require("@ai-sdk/provider");
375
+ var name10 = "AI_ToolCallRepairError";
376
+ var marker10 = `vercel.ai.error.${name10}`;
377
+ var symbol10 = Symbol.for(marker10);
378
+ var _a10;
379
+ var ToolCallRepairError = class extends import_provider11.AISDKError {
332
380
  constructor({
333
381
  cause,
334
382
  originalError,
335
- message = `Error repairing tool call: ${(0, import_provider9.getErrorMessage)(cause)}`
383
+ message = `Error repairing tool call: ${(0, import_provider11.getErrorMessage)(cause)}`
336
384
  }) {
337
- super({ name: name8, message, cause });
338
- this[_a8] = true;
385
+ super({ name: name10, message, cause });
386
+ this[_a10] = true;
339
387
  this.originalError = originalError;
340
388
  }
341
389
  static isInstance(error) {
342
- return import_provider9.AISDKError.hasMarker(error, marker8);
390
+ return import_provider11.AISDKError.hasMarker(error, marker10);
343
391
  }
344
392
  };
345
- _a8 = symbol8;
393
+ _a10 = symbol10;
346
394
 
347
395
  // src/error/unsupported-model-version-error.ts
348
- var import_provider10 = require("@ai-sdk/provider");
349
- var UnsupportedModelVersionError = class extends import_provider10.AISDKError {
396
+ var import_provider12 = require("@ai-sdk/provider");
397
+ var UnsupportedModelVersionError = class extends import_provider12.AISDKError {
350
398
  constructor(options) {
351
399
  super({
352
400
  name: "AI_UnsupportedModelVersionError",
@@ -359,95 +407,95 @@ var UnsupportedModelVersionError = class extends import_provider10.AISDKError {
359
407
  };
360
408
 
361
409
  // src/prompt/invalid-data-content-error.ts
362
- var import_provider11 = require("@ai-sdk/provider");
363
- var name9 = "AI_InvalidDataContentError";
364
- var marker9 = `vercel.ai.error.${name9}`;
365
- var symbol9 = Symbol.for(marker9);
366
- var _a9;
367
- var InvalidDataContentError = class extends import_provider11.AISDKError {
410
+ var import_provider13 = require("@ai-sdk/provider");
411
+ var name11 = "AI_InvalidDataContentError";
412
+ var marker11 = `vercel.ai.error.${name11}`;
413
+ var symbol11 = Symbol.for(marker11);
414
+ var _a11;
415
+ var InvalidDataContentError = class extends import_provider13.AISDKError {
368
416
  constructor({
369
417
  content,
370
418
  cause,
371
419
  message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
372
420
  }) {
373
- super({ name: name9, message, cause });
374
- this[_a9] = true;
421
+ super({ name: name11, message, cause });
422
+ this[_a11] = true;
375
423
  this.content = content;
376
424
  }
377
425
  static isInstance(error) {
378
- return import_provider11.AISDKError.hasMarker(error, marker9);
426
+ return import_provider13.AISDKError.hasMarker(error, marker11);
379
427
  }
380
428
  };
381
- _a9 = symbol9;
429
+ _a11 = symbol11;
382
430
 
383
431
  // src/prompt/invalid-message-role-error.ts
384
- var import_provider12 = require("@ai-sdk/provider");
385
- var name10 = "AI_InvalidMessageRoleError";
386
- var marker10 = `vercel.ai.error.${name10}`;
387
- var symbol10 = Symbol.for(marker10);
388
- var _a10;
389
- var InvalidMessageRoleError = class extends import_provider12.AISDKError {
432
+ var import_provider14 = require("@ai-sdk/provider");
433
+ var name12 = "AI_InvalidMessageRoleError";
434
+ var marker12 = `vercel.ai.error.${name12}`;
435
+ var symbol12 = Symbol.for(marker12);
436
+ var _a12;
437
+ var InvalidMessageRoleError = class extends import_provider14.AISDKError {
390
438
  constructor({
391
439
  role,
392
440
  message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
393
441
  }) {
394
- super({ name: name10, message });
395
- this[_a10] = true;
442
+ super({ name: name12, message });
443
+ this[_a12] = true;
396
444
  this.role = role;
397
445
  }
398
446
  static isInstance(error) {
399
- return import_provider12.AISDKError.hasMarker(error, marker10);
447
+ return import_provider14.AISDKError.hasMarker(error, marker12);
400
448
  }
401
449
  };
402
- _a10 = symbol10;
450
+ _a12 = symbol12;
403
451
 
404
452
  // src/prompt/message-conversion-error.ts
405
- var import_provider13 = require("@ai-sdk/provider");
406
- var name11 = "AI_MessageConversionError";
407
- var marker11 = `vercel.ai.error.${name11}`;
408
- var symbol11 = Symbol.for(marker11);
409
- var _a11;
410
- var MessageConversionError = class extends import_provider13.AISDKError {
453
+ var import_provider15 = require("@ai-sdk/provider");
454
+ var name13 = "AI_MessageConversionError";
455
+ var marker13 = `vercel.ai.error.${name13}`;
456
+ var symbol13 = Symbol.for(marker13);
457
+ var _a13;
458
+ var MessageConversionError = class extends import_provider15.AISDKError {
411
459
  constructor({
412
460
  originalMessage,
413
461
  message
414
462
  }) {
415
- super({ name: name11, message });
416
- this[_a11] = true;
463
+ super({ name: name13, message });
464
+ this[_a13] = true;
417
465
  this.originalMessage = originalMessage;
418
466
  }
419
467
  static isInstance(error) {
420
- return import_provider13.AISDKError.hasMarker(error, marker11);
468
+ return import_provider15.AISDKError.hasMarker(error, marker13);
421
469
  }
422
470
  };
423
- _a11 = symbol11;
471
+ _a13 = symbol13;
424
472
 
425
473
  // src/error/index.ts
426
474
  var import_provider_utils = require("@ai-sdk/provider-utils");
427
475
 
428
476
  // src/util/retry-error.ts
429
- var import_provider14 = require("@ai-sdk/provider");
430
- var name12 = "AI_RetryError";
431
- var marker12 = `vercel.ai.error.${name12}`;
432
- var symbol12 = Symbol.for(marker12);
433
- var _a12;
434
- var RetryError = class extends import_provider14.AISDKError {
477
+ var import_provider16 = require("@ai-sdk/provider");
478
+ var name14 = "AI_RetryError";
479
+ var marker14 = `vercel.ai.error.${name14}`;
480
+ var symbol14 = Symbol.for(marker14);
481
+ var _a14;
482
+ var RetryError = class extends import_provider16.AISDKError {
435
483
  constructor({
436
484
  message,
437
485
  reason,
438
486
  errors
439
487
  }) {
440
- super({ name: name12, message });
441
- this[_a12] = true;
488
+ super({ name: name14, message });
489
+ this[_a14] = true;
442
490
  this.reason = reason;
443
491
  this.errors = errors;
444
492
  this.lastError = errors[errors.length - 1];
445
493
  }
446
494
  static isInstance(error) {
447
- return import_provider14.AISDKError.hasMarker(error, marker12);
495
+ return import_provider16.AISDKError.hasMarker(error, marker14);
448
496
  }
449
497
  };
450
- _a12 = symbol12;
498
+ _a14 = symbol14;
451
499
 
452
500
  // src/logger/log-warnings.ts
453
501
  function formatWarning({
@@ -710,7 +758,7 @@ function resolveEmbeddingModel(model) {
710
758
  return getGlobalProvider().embeddingModel(model);
711
759
  }
712
760
  function resolveTranscriptionModel(model) {
713
- var _a14, _b;
761
+ var _a16, _b;
714
762
  if (typeof model !== "string") {
715
763
  if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
716
764
  const unsupportedModel = model;
@@ -722,10 +770,10 @@ function resolveTranscriptionModel(model) {
722
770
  }
723
771
  return asTranscriptionModelV3(model);
724
772
  }
725
- return (_b = (_a14 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b.call(_a14, model);
773
+ return (_b = (_a16 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b.call(_a16, model);
726
774
  }
727
775
  function resolveSpeechModel(model) {
728
- var _a14, _b;
776
+ var _a16, _b;
729
777
  if (typeof model !== "string") {
730
778
  if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
731
779
  const unsupportedModel = model;
@@ -737,7 +785,7 @@ function resolveSpeechModel(model) {
737
785
  }
738
786
  return asSpeechModelV3(model);
739
787
  }
740
- return (_b = (_a14 = getGlobalProvider()).speechModel) == null ? void 0 : _b.call(_a14, model);
788
+ return (_b = (_a16 = getGlobalProvider()).speechModel) == null ? void 0 : _b.call(_a16, model);
741
789
  }
742
790
  function resolveImageModel(model) {
743
791
  if (typeof model !== "string") {
@@ -754,8 +802,8 @@ function resolveImageModel(model) {
754
802
  return getGlobalProvider().imageModel(model);
755
803
  }
756
804
  function getGlobalProvider() {
757
- var _a14;
758
- return (_a14 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a14 : import_gateway.gateway;
805
+ var _a16;
806
+ return (_a16 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a16 : import_gateway.gateway;
759
807
  }
760
808
 
761
809
  // src/prompt/convert-to-language-model-prompt.ts
@@ -951,11 +999,11 @@ var import_provider_utils3 = require("@ai-sdk/provider-utils");
951
999
  var import_provider_utils4 = require("@ai-sdk/provider-utils");
952
1000
 
953
1001
  // src/version.ts
954
- var VERSION = true ? "6.0.2" : "0.0.0-test";
1002
+ var VERSION = true ? "6.0.3" : "0.0.0-test";
955
1003
 
956
1004
  // src/util/download/download.ts
957
1005
  var download = async ({ url }) => {
958
- var _a14;
1006
+ var _a16;
959
1007
  const urlText = url.toString();
960
1008
  try {
961
1009
  const response = await fetch(urlText, {
@@ -974,7 +1022,7 @@ var download = async ({ url }) => {
974
1022
  }
975
1023
  return {
976
1024
  data: new Uint8Array(await response.arrayBuffer()),
977
- mediaType: (_a14 = response.headers.get("content-type")) != null ? _a14 : void 0
1025
+ mediaType: (_a16 = response.headers.get("content-type")) != null ? _a16 : void 0
978
1026
  };
979
1027
  } catch (error) {
980
1028
  if (import_provider_utils3.DownloadError.isInstance(error)) {
@@ -992,7 +1040,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
992
1040
  );
993
1041
 
994
1042
  // src/prompt/data-content.ts
995
- var import_provider16 = require("@ai-sdk/provider");
1043
+ var import_provider18 = require("@ai-sdk/provider");
996
1044
  var import_provider_utils5 = require("@ai-sdk/provider-utils");
997
1045
  var import_v4 = require("zod/v4");
998
1046
 
@@ -1020,8 +1068,8 @@ var dataContentSchema = import_v4.z.union([
1020
1068
  import_v4.z.custom(
1021
1069
  // Buffer might not be available in some environments such as CloudFlare:
1022
1070
  (value) => {
1023
- var _a14, _b;
1024
- return (_b = (_a14 = globalThis.Buffer) == null ? void 0 : _a14.isBuffer(value)) != null ? _b : false;
1071
+ var _a16, _b;
1072
+ return (_b = (_a16 = globalThis.Buffer) == null ? void 0 : _a16.isBuffer(value)) != null ? _b : false;
1025
1073
  },
1026
1074
  { message: "Must be a Buffer" }
1027
1075
  )
@@ -1044,7 +1092,7 @@ function convertToLanguageModelV3DataContent(content) {
1044
1092
  content.toString()
1045
1093
  );
1046
1094
  if (dataUrlMediaType == null || base64Content == null) {
1047
- throw new import_provider16.AISDKError({
1095
+ throw new import_provider18.AISDKError({
1048
1096
  name: "InvalidDataContentError",
1049
1097
  message: `Invalid data URL format in content ${content.toString()}`
1050
1098
  });
@@ -1222,13 +1270,30 @@ function convertToLanguageModelMessage({
1222
1270
  case "tool": {
1223
1271
  return {
1224
1272
  role: "tool",
1225
- content: message.content.filter((part) => part.type !== "tool-approval-response").map((part) => ({
1226
- type: "tool-result",
1227
- toolCallId: part.toolCallId,
1228
- toolName: part.toolName,
1229
- output: mapToolResultOutput(part.output),
1230
- providerOptions: part.providerOptions
1231
- })),
1273
+ content: message.content.filter(
1274
+ // Only include tool-approval-response for provider-executed tools
1275
+ (part) => part.type !== "tool-approval-response" || part.providerExecuted
1276
+ ).map((part) => {
1277
+ switch (part.type) {
1278
+ case "tool-result": {
1279
+ return {
1280
+ type: "tool-result",
1281
+ toolCallId: part.toolCallId,
1282
+ toolName: part.toolName,
1283
+ output: mapToolResultOutput(part.output),
1284
+ providerOptions: part.providerOptions
1285
+ };
1286
+ }
1287
+ case "tool-approval-response": {
1288
+ return {
1289
+ type: "tool-approval-response",
1290
+ approvalId: part.approvalId,
1291
+ approved: part.approved,
1292
+ reason: part.reason
1293
+ };
1294
+ }
1295
+ }
1296
+ }),
1232
1297
  providerOptions: message.providerOptions
1233
1298
  };
1234
1299
  }
@@ -1244,8 +1309,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
1244
1309
  ).flat().filter(
1245
1310
  (part) => part.type === "image" || part.type === "file"
1246
1311
  ).map((part) => {
1247
- var _a14;
1248
- const mediaType = (_a14 = part.mediaType) != null ? _a14 : part.type === "image" ? "image/*" : void 0;
1312
+ var _a16;
1313
+ const mediaType = (_a16 = part.mediaType) != null ? _a16 : part.type === "image" ? "image/*" : void 0;
1249
1314
  let data = part.type === "image" ? part.image : part.data;
1250
1315
  if (typeof data === "string") {
1251
1316
  try {
@@ -1275,7 +1340,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
1275
1340
  );
1276
1341
  }
1277
1342
  function convertPartToLanguageModelPart(part, downloadedAssets) {
1278
- var _a14;
1343
+ var _a16;
1279
1344
  if (part.type === "text") {
1280
1345
  return {
1281
1346
  type: "text",
@@ -1308,7 +1373,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1308
1373
  switch (type) {
1309
1374
  case "image": {
1310
1375
  if (data instanceof Uint8Array || typeof data === "string") {
1311
- mediaType = (_a14 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a14 : mediaType;
1376
+ mediaType = (_a16 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a16 : mediaType;
1312
1377
  }
1313
1378
  return {
1314
1379
  type: "file",
@@ -1360,7 +1425,7 @@ function mapToolResultOutput(output) {
1360
1425
  }
1361
1426
 
1362
1427
  // src/prompt/create-tool-model-output.ts
1363
- var import_provider17 = require("@ai-sdk/provider");
1428
+ var import_provider19 = require("@ai-sdk/provider");
1364
1429
  async function createToolModelOutput({
1365
1430
  toolCallId,
1366
1431
  input,
@@ -1369,7 +1434,7 @@ async function createToolModelOutput({
1369
1434
  errorMode
1370
1435
  }) {
1371
1436
  if (errorMode === "text") {
1372
- return { type: "error-text", value: (0, import_provider17.getErrorMessage)(output) };
1437
+ return { type: "error-text", value: (0, import_provider19.getErrorMessage)(output) };
1373
1438
  } else if (errorMode === "json") {
1374
1439
  return { type: "error-json", value: toJSONValue(output) };
1375
1440
  }
@@ -1496,10 +1561,10 @@ async function prepareToolsAndToolChoice({
1496
1561
  };
1497
1562
  }
1498
1563
  const filteredTools = activeTools != null ? Object.entries(tools).filter(
1499
- ([name14]) => activeTools.includes(name14)
1564
+ ([name16]) => activeTools.includes(name16)
1500
1565
  ) : Object.entries(tools);
1501
1566
  const languageModelTools = [];
1502
- for (const [name14, tool2] of filteredTools) {
1567
+ for (const [name16, tool2] of filteredTools) {
1503
1568
  const toolType = tool2.type;
1504
1569
  switch (toolType) {
1505
1570
  case void 0:
@@ -1507,7 +1572,7 @@ async function prepareToolsAndToolChoice({
1507
1572
  case "function":
1508
1573
  languageModelTools.push({
1509
1574
  type: "function",
1510
- name: name14,
1575
+ name: name16,
1511
1576
  description: tool2.description,
1512
1577
  inputSchema: await (0, import_provider_utils7.asSchema)(tool2.inputSchema).jsonSchema,
1513
1578
  ...tool2.inputExamples != null ? { inputExamples: tool2.inputExamples } : {},
@@ -1518,7 +1583,7 @@ async function prepareToolsAndToolChoice({
1518
1583
  case "provider":
1519
1584
  languageModelTools.push({
1520
1585
  type: "provider",
1521
- name: name14,
1586
+ name: name16,
1522
1587
  id: tool2.id,
1523
1588
  args: tool2.args
1524
1589
  });
@@ -1536,7 +1601,7 @@ async function prepareToolsAndToolChoice({
1536
1601
  }
1537
1602
 
1538
1603
  // src/prompt/standardize-prompt.ts
1539
- var import_provider18 = require("@ai-sdk/provider");
1604
+ var import_provider20 = require("@ai-sdk/provider");
1540
1605
  var import_provider_utils8 = require("@ai-sdk/provider-utils");
1541
1606
  var import_v46 = require("zod/v4");
1542
1607
 
@@ -1749,13 +1814,13 @@ var modelMessageSchema = import_v45.z.union([
1749
1814
  // src/prompt/standardize-prompt.ts
1750
1815
  async function standardizePrompt(prompt) {
1751
1816
  if (prompt.prompt == null && prompt.messages == null) {
1752
- throw new import_provider18.InvalidPromptError({
1817
+ throw new import_provider20.InvalidPromptError({
1753
1818
  prompt,
1754
1819
  message: "prompt or messages must be defined"
1755
1820
  });
1756
1821
  }
1757
1822
  if (prompt.prompt != null && prompt.messages != null) {
1758
- throw new import_provider18.InvalidPromptError({
1823
+ throw new import_provider20.InvalidPromptError({
1759
1824
  prompt,
1760
1825
  message: "prompt and messages cannot be defined at the same time"
1761
1826
  });
@@ -1763,7 +1828,7 @@ async function standardizePrompt(prompt) {
1763
1828
  if (prompt.system != null && typeof prompt.system !== "string" && !asArray(prompt.system).every(
1764
1829
  (message) => typeof message === "object" && message !== null && "role" in message && message.role === "system"
1765
1830
  )) {
1766
- throw new import_provider18.InvalidPromptError({
1831
+ throw new import_provider20.InvalidPromptError({
1767
1832
  prompt,
1768
1833
  message: "system must be a string, SystemModelMessage, or array of SystemModelMessage"
1769
1834
  });
@@ -1776,13 +1841,13 @@ async function standardizePrompt(prompt) {
1776
1841
  } else if (prompt.messages != null) {
1777
1842
  messages = prompt.messages;
1778
1843
  } else {
1779
- throw new import_provider18.InvalidPromptError({
1844
+ throw new import_provider20.InvalidPromptError({
1780
1845
  prompt,
1781
1846
  message: "prompt or messages must be defined"
1782
1847
  });
1783
1848
  }
1784
1849
  if (messages.length === 0) {
1785
- throw new import_provider18.InvalidPromptError({
1850
+ throw new import_provider20.InvalidPromptError({
1786
1851
  prompt,
1787
1852
  message: "messages must not be empty"
1788
1853
  });
@@ -1792,7 +1857,7 @@ async function standardizePrompt(prompt) {
1792
1857
  schema: import_v46.z.array(modelMessageSchema)
1793
1858
  });
1794
1859
  if (!validationResult.success) {
1795
- throw new import_provider18.InvalidPromptError({
1860
+ throw new import_provider20.InvalidPromptError({
1796
1861
  prompt,
1797
1862
  message: "The messages do not match the ModelMessage[] schema.",
1798
1863
  cause: validationResult.error
@@ -1806,14 +1871,14 @@ async function standardizePrompt(prompt) {
1806
1871
 
1807
1872
  // src/prompt/wrap-gateway-error.ts
1808
1873
  var import_gateway2 = require("@ai-sdk/gateway");
1809
- var import_provider19 = require("@ai-sdk/provider");
1874
+ var import_provider21 = require("@ai-sdk/provider");
1810
1875
  function wrapGatewayError(error) {
1811
1876
  if (!import_gateway2.GatewayAuthenticationError.isInstance(error))
1812
1877
  return error;
1813
1878
  const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
1814
1879
  const moreInfoURL = "https://ai-sdk.dev/unauthenticated-ai-gateway";
1815
1880
  if (isProductionEnv) {
1816
- return new import_provider19.AISDKError({
1881
+ return new import_provider21.AISDKError({
1817
1882
  name: "GatewayError",
1818
1883
  message: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`
1819
1884
  });
@@ -1854,7 +1919,7 @@ function getBaseTelemetryAttributes({
1854
1919
  telemetry,
1855
1920
  headers
1856
1921
  }) {
1857
- var _a14;
1922
+ var _a16;
1858
1923
  return {
1859
1924
  "ai.model.provider": model.provider,
1860
1925
  "ai.model.id": model.modelId,
@@ -1864,7 +1929,7 @@ function getBaseTelemetryAttributes({
1864
1929
  return attributes;
1865
1930
  }, {}),
1866
1931
  // add metadata as attributes:
1867
- ...Object.entries((_a14 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a14 : {}).reduce(
1932
+ ...Object.entries((_a16 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a16 : {}).reduce(
1868
1933
  (attributes, [key, value]) => {
1869
1934
  attributes[`ai.telemetry.metadata.${key}`] = value;
1870
1935
  return attributes;
@@ -1889,7 +1954,7 @@ var noopTracer = {
1889
1954
  startSpan() {
1890
1955
  return noopSpan;
1891
1956
  },
1892
- startActiveSpan(name14, arg1, arg2, arg3) {
1957
+ startActiveSpan(name16, arg1, arg2, arg3) {
1893
1958
  if (typeof arg1 === "function") {
1894
1959
  return arg1(noopSpan);
1895
1960
  }
@@ -1959,14 +2024,14 @@ function getTracer({
1959
2024
  // src/telemetry/record-span.ts
1960
2025
  var import_api2 = require("@opentelemetry/api");
1961
2026
  async function recordSpan({
1962
- name: name14,
2027
+ name: name16,
1963
2028
  tracer,
1964
2029
  attributes,
1965
2030
  fn,
1966
2031
  endWhenDone = true
1967
2032
  }) {
1968
2033
  return tracer.startActiveSpan(
1969
- name14,
2034
+ name16,
1970
2035
  { attributes: await attributes },
1971
2036
  async (span) => {
1972
2037
  try {
@@ -2096,12 +2161,12 @@ function createNullLanguageModelUsage() {
2096
2161
  };
2097
2162
  }
2098
2163
  function addLanguageModelUsage(usage1, usage2) {
2099
- var _a14, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2164
+ var _a16, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2100
2165
  return {
2101
2166
  inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),
2102
2167
  inputTokenDetails: {
2103
2168
  noCacheTokens: addTokenCounts(
2104
- (_a14 = usage1.inputTokenDetails) == null ? void 0 : _a14.noCacheTokens,
2169
+ (_a16 = usage1.inputTokenDetails) == null ? void 0 : _a16.noCacheTokens,
2105
2170
  (_b = usage2.inputTokenDetails) == null ? void 0 : _b.noCacheTokens
2106
2171
  ),
2107
2172
  cacheReadTokens: addTokenCounts(
@@ -2180,7 +2245,7 @@ function mergeObjects(base, overrides) {
2180
2245
  }
2181
2246
 
2182
2247
  // src/util/retry-with-exponential-backoff.ts
2183
- var import_provider20 = require("@ai-sdk/provider");
2248
+ var import_provider22 = require("@ai-sdk/provider");
2184
2249
  var import_provider_utils9 = require("@ai-sdk/provider-utils");
2185
2250
  function getRetryDelayInMs({
2186
2251
  error,
@@ -2247,7 +2312,7 @@ async function _retryWithExponentialBackoff(f, {
2247
2312
  errors: newErrors
2248
2313
  });
2249
2314
  }
2250
- if (error instanceof Error && import_provider20.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
2315
+ if (error instanceof Error && import_provider22.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
2251
2316
  await (0, import_provider_utils9.delay)(
2252
2317
  getRetryDelayInMs({
2253
2318
  error,
@@ -2354,13 +2419,25 @@ function collectToolApprovals({
2354
2419
  );
2355
2420
  for (const approvalResponse of approvalResponses) {
2356
2421
  const approvalRequest = toolApprovalRequestsByApprovalId[approvalResponse.approvalId];
2422
+ if (approvalRequest == null) {
2423
+ throw new InvalidToolApprovalError({
2424
+ approvalId: approvalResponse.approvalId
2425
+ });
2426
+ }
2357
2427
  if (toolResults[approvalRequest.toolCallId] != null) {
2358
2428
  continue;
2359
2429
  }
2430
+ const toolCall = toolCallsByToolCallId[approvalRequest.toolCallId];
2431
+ if (toolCall == null) {
2432
+ throw new ToolCallNotFoundForApprovalError({
2433
+ toolCallId: approvalRequest.toolCallId,
2434
+ approvalId: approvalRequest.approvalId
2435
+ });
2436
+ }
2360
2437
  const approval = {
2361
2438
  approvalRequest,
2362
2439
  approvalResponse,
2363
- toolCall: toolCallsByToolCallId[approvalRequest.toolCallId]
2440
+ toolCall
2364
2441
  };
2365
2442
  if (approvalResponse.approved) {
2366
2443
  approvedToolApprovals.push(approval);
@@ -2542,7 +2619,7 @@ __export(output_exports, {
2542
2619
  object: () => object,
2543
2620
  text: () => text
2544
2621
  });
2545
- var import_provider21 = require("@ai-sdk/provider");
2622
+ var import_provider23 = require("@ai-sdk/provider");
2546
2623
  var import_provider_utils13 = require("@ai-sdk/provider-utils");
2547
2624
 
2548
2625
  // src/util/parse-partial-json.ts
@@ -2894,7 +2971,7 @@ var text = () => ({
2894
2971
  });
2895
2972
  var object = ({
2896
2973
  schema: inputSchema,
2897
- name: name14,
2974
+ name: name16,
2898
2975
  description
2899
2976
  }) => {
2900
2977
  const schema = (0, import_provider_utils13.asSchema)(inputSchema);
@@ -2902,7 +2979,7 @@ var object = ({
2902
2979
  responseFormat: (0, import_provider_utils13.resolve)(schema.jsonSchema).then((jsonSchema2) => ({
2903
2980
  type: "json",
2904
2981
  schema: jsonSchema2,
2905
- ...name14 != null && { name: name14 },
2982
+ ...name16 != null && { name: name16 },
2906
2983
  ...description != null && { description }
2907
2984
  })),
2908
2985
  async parseCompleteOutput({ text: text2 }, context) {
@@ -2953,7 +3030,7 @@ var object = ({
2953
3030
  };
2954
3031
  var array = ({
2955
3032
  element: inputElementSchema,
2956
- name: name14,
3033
+ name: name16,
2957
3034
  description
2958
3035
  }) => {
2959
3036
  const elementSchema = (0, import_provider_utils13.asSchema)(inputElementSchema);
@@ -2972,7 +3049,7 @@ var array = ({
2972
3049
  required: ["elements"],
2973
3050
  additionalProperties: false
2974
3051
  },
2975
- ...name14 != null && { name: name14 },
3052
+ ...name16 != null && { name: name16 },
2976
3053
  ...description != null && { description }
2977
3054
  };
2978
3055
  }),
@@ -2992,7 +3069,7 @@ var array = ({
2992
3069
  if (outerValue == null || typeof outerValue !== "object" || !("elements" in outerValue) || !Array.isArray(outerValue.elements)) {
2993
3070
  throw new NoObjectGeneratedError({
2994
3071
  message: "No object generated: response did not match schema.",
2995
- cause: new import_provider21.TypeValidationError({
3072
+ cause: new import_provider23.TypeValidationError({
2996
3073
  value: outerValue,
2997
3074
  cause: "response must be an object with an elements array"
2998
3075
  }),
@@ -3052,7 +3129,7 @@ var array = ({
3052
3129
  };
3053
3130
  var choice = ({
3054
3131
  options: choiceOptions,
3055
- name: name14,
3132
+ name: name16,
3056
3133
  description
3057
3134
  }) => {
3058
3135
  return {
@@ -3068,7 +3145,7 @@ var choice = ({
3068
3145
  required: ["result"],
3069
3146
  additionalProperties: false
3070
3147
  },
3071
- ...name14 != null && { name: name14 },
3148
+ ...name16 != null && { name: name16 },
3072
3149
  ...description != null && { description }
3073
3150
  }),
3074
3151
  async parseCompleteOutput({ text: text2 }, context) {
@@ -3087,7 +3164,7 @@ var choice = ({
3087
3164
  if (outerValue == null || typeof outerValue !== "object" || !("result" in outerValue) || typeof outerValue.result !== "string" || !choiceOptions.includes(outerValue.result)) {
3088
3165
  throw new NoObjectGeneratedError({
3089
3166
  message: "No object generated: response did not match schema.",
3090
- cause: new import_provider21.TypeValidationError({
3167
+ cause: new import_provider23.TypeValidationError({
3091
3168
  value: outerValue,
3092
3169
  cause: "response must be an object that contains a choice value."
3093
3170
  }),
@@ -3126,13 +3203,13 @@ var choice = ({
3126
3203
  };
3127
3204
  };
3128
3205
  var json = ({
3129
- name: name14,
3206
+ name: name16,
3130
3207
  description
3131
3208
  } = {}) => {
3132
3209
  return {
3133
3210
  responseFormat: Promise.resolve({
3134
3211
  type: "json",
3135
- ...name14 != null && { name: name14 },
3212
+ ...name16 != null && { name: name16 },
3136
3213
  ...description != null && { description }
3137
3214
  }),
3138
3215
  async parseCompleteOutput({ text: text2 }, context) {
@@ -3174,7 +3251,7 @@ async function parseToolCall({
3174
3251
  system,
3175
3252
  messages
3176
3253
  }) {
3177
- var _a14;
3254
+ var _a16;
3178
3255
  try {
3179
3256
  if (tools == null) {
3180
3257
  if (toolCall.providerExecuted && toolCall.dynamic) {
@@ -3223,7 +3300,7 @@ async function parseToolCall({
3223
3300
  dynamic: true,
3224
3301
  invalid: true,
3225
3302
  error,
3226
- title: (_a14 = tools == null ? void 0 : tools[toolCall.toolName]) == null ? void 0 : _a14.title,
3303
+ title: (_a16 = tools == null ? void 0 : tools[toolCall.toolName]) == null ? void 0 : _a16.title,
3227
3304
  providerExecuted: toolCall.providerExecuted,
3228
3305
  providerMetadata: toolCall.providerMetadata
3229
3306
  };
@@ -3362,8 +3439,8 @@ function stepCountIs(stepCount) {
3362
3439
  }
3363
3440
  function hasToolCall(toolName) {
3364
3441
  return ({ steps }) => {
3365
- var _a14, _b, _c;
3366
- return (_c = (_b = (_a14 = steps[steps.length - 1]) == null ? void 0 : _a14.toolCalls) == null ? void 0 : _b.some(
3442
+ var _a16, _b, _c;
3443
+ return (_c = (_b = (_a16 = steps[steps.length - 1]) == null ? void 0 : _a16.toolCalls) == null ? void 0 : _b.some(
3367
3444
  (toolCall) => toolCall.toolName === toolName
3368
3445
  )) != null ? _c : false;
3369
3446
  };
@@ -3383,7 +3460,13 @@ async function toResponseMessages({
3383
3460
  const responseMessages = [];
3384
3461
  const content = [];
3385
3462
  for (const part of inputContent) {
3386
- if (part.type === "source" || (part.type === "tool-result" || part.type === "tool-error") && !part.providerExecuted || part.type === "text" && part.text.length === 0) {
3463
+ if (part.type === "source") {
3464
+ continue;
3465
+ }
3466
+ if ((part.type === "tool-result" || part.type === "tool-error") && !part.providerExecuted) {
3467
+ continue;
3468
+ }
3469
+ if (part.type === "text" && part.text.length === 0) {
3387
3470
  continue;
3388
3471
  }
3389
3472
  switch (part.type) {
@@ -3577,13 +3660,16 @@ async function generateText({
3577
3660
  }),
3578
3661
  tracer,
3579
3662
  fn: async (span) => {
3580
- var _a14, _b, _c, _d, _e, _f, _g, _h;
3663
+ var _a16, _b, _c, _d, _e, _f, _g, _h;
3581
3664
  const initialMessages = initialPrompt.messages;
3582
3665
  const responseMessages = [];
3583
3666
  const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
3584
- if (deniedToolApprovals.length > 0 || approvedToolApprovals.length > 0) {
3667
+ const localApprovedToolApprovals = approvedToolApprovals.filter(
3668
+ (toolApproval) => !toolApproval.toolCall.providerExecuted
3669
+ );
3670
+ if (deniedToolApprovals.length > 0 || localApprovedToolApprovals.length > 0) {
3585
3671
  const toolOutputs = await executeTools({
3586
- toolCalls: approvedToolApprovals.map(
3672
+ toolCalls: localApprovedToolApprovals.map(
3587
3673
  (toolApproval) => toolApproval.toolCall
3588
3674
  ),
3589
3675
  tools,
@@ -3616,7 +3702,15 @@ async function generateText({
3616
3702
  toolName: toolApproval.toolCall.toolName,
3617
3703
  output: {
3618
3704
  type: "execution-denied",
3619
- reason: toolApproval.approvalResponse.reason
3705
+ reason: toolApproval.approvalResponse.reason,
3706
+ // For provider-executed tools, include approvalId so provider can correlate
3707
+ ...toolApproval.toolCall.providerExecuted && {
3708
+ providerOptions: {
3709
+ openai: {
3710
+ approvalId: toolApproval.approvalResponse.approvalId
3711
+ }
3712
+ }
3713
+ }
3620
3714
  }
3621
3715
  });
3622
3716
  }
@@ -3625,6 +3719,24 @@ async function generateText({
3625
3719
  content: toolContent
3626
3720
  });
3627
3721
  }
3722
+ const providerExecutedToolApprovals = [
3723
+ ...approvedToolApprovals,
3724
+ ...deniedToolApprovals
3725
+ ].filter((toolApproval) => toolApproval.toolCall.providerExecuted);
3726
+ if (providerExecutedToolApprovals.length > 0) {
3727
+ responseMessages.push({
3728
+ role: "tool",
3729
+ content: providerExecutedToolApprovals.map(
3730
+ (toolApproval) => ({
3731
+ type: "tool-approval-response",
3732
+ approvalId: toolApproval.approvalResponse.approvalId,
3733
+ approved: toolApproval.approvalResponse.approved,
3734
+ reason: toolApproval.approvalResponse.reason,
3735
+ providerExecuted: true
3736
+ })
3737
+ )
3738
+ });
3739
+ }
3628
3740
  const callSettings2 = prepareCallSettings(settings);
3629
3741
  let currentModelResponse;
3630
3742
  let clientToolCalls = [];
@@ -3641,7 +3753,7 @@ async function generateText({
3641
3753
  experimental_context
3642
3754
  }));
3643
3755
  const stepModel = resolveLanguageModel(
3644
- (_a14 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a14 : model
3756
+ (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
3645
3757
  );
3646
3758
  const promptMessages = await convertToLanguageModelPrompt({
3647
3759
  prompt: {
@@ -3659,7 +3771,7 @@ async function generateText({
3659
3771
  });
3660
3772
  currentModelResponse = await retry(
3661
3773
  () => {
3662
- var _a15;
3774
+ var _a17;
3663
3775
  return recordSpan({
3664
3776
  name: "ai.generateText.doGenerate",
3665
3777
  attributes: selectTelemetryAttributes({
@@ -3691,14 +3803,14 @@ async function generateText({
3691
3803
  "gen_ai.request.max_tokens": settings.maxOutputTokens,
3692
3804
  "gen_ai.request.presence_penalty": settings.presencePenalty,
3693
3805
  "gen_ai.request.stop_sequences": settings.stopSequences,
3694
- "gen_ai.request.temperature": (_a15 = settings.temperature) != null ? _a15 : void 0,
3806
+ "gen_ai.request.temperature": (_a17 = settings.temperature) != null ? _a17 : void 0,
3695
3807
  "gen_ai.request.top_k": settings.topK,
3696
3808
  "gen_ai.request.top_p": settings.topP
3697
3809
  }
3698
3810
  }),
3699
3811
  tracer,
3700
3812
  fn: async (span2) => {
3701
- var _a16, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
3813
+ var _a18, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
3702
3814
  const stepProviderOptions = mergeObjects(
3703
3815
  providerOptions,
3704
3816
  prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
@@ -3714,7 +3826,7 @@ async function generateText({
3714
3826
  headers: headersWithUserAgent
3715
3827
  });
3716
3828
  const responseData = {
3717
- id: (_b2 = (_a16 = result.response) == null ? void 0 : _a16.id) != null ? _b2 : generateId2(),
3829
+ id: (_b2 = (_a18 = result.response) == null ? void 0 : _a18.id) != null ? _b2 : generateId2(),
3718
3830
  timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
3719
3831
  modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
3720
3832
  headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
@@ -4180,6 +4292,20 @@ function asContent({
4180
4292
  break;
4181
4293
  }
4182
4294
  case "tool-approval-request": {
4295
+ const toolCall = toolCalls.find(
4296
+ (toolCall2) => toolCall2.toolCallId === part.toolCallId
4297
+ );
4298
+ if (toolCall == null) {
4299
+ throw new ToolCallNotFoundForApprovalError({
4300
+ toolCallId: part.toolCallId,
4301
+ approvalId: part.approvalId
4302
+ });
4303
+ }
4304
+ contentParts.push({
4305
+ type: "tool-approval-request",
4306
+ approvalId: part.approvalId,
4307
+ toolCall
4308
+ });
4183
4309
  break;
4184
4310
  }
4185
4311
  }
@@ -4188,7 +4314,7 @@ function asContent({
4188
4314
  }
4189
4315
 
4190
4316
  // src/generate-text/stream-text.ts
4191
- var import_provider22 = require("@ai-sdk/provider");
4317
+ var import_provider24 = require("@ai-sdk/provider");
4192
4318
  var import_provider_utils19 = require("@ai-sdk/provider-utils");
4193
4319
 
4194
4320
  // src/util/prepare-headers.ts
@@ -4566,7 +4692,7 @@ function processUIMessageStream({
4566
4692
  new TransformStream({
4567
4693
  async transform(chunk, controller) {
4568
4694
  await runUpdateMessageJob(async ({ state, write }) => {
4569
- var _a14, _b, _c, _d;
4695
+ var _a16, _b, _c, _d;
4570
4696
  function getToolInvocation(toolCallId) {
4571
4697
  const toolInvocations = state.message.parts.filter(isToolUIPart);
4572
4698
  const toolInvocation = toolInvocations.find(
@@ -4580,7 +4706,7 @@ function processUIMessageStream({
4580
4706
  return toolInvocation;
4581
4707
  }
4582
4708
  function updateToolPart(options) {
4583
- var _a15;
4709
+ var _a17;
4584
4710
  const part = state.message.parts.find(
4585
4711
  (part2) => isStaticToolUIPart(part2) && part2.toolCallId === options.toolCallId
4586
4712
  );
@@ -4596,7 +4722,7 @@ function processUIMessageStream({
4596
4722
  if (options.title !== void 0) {
4597
4723
  anyPart.title = options.title;
4598
4724
  }
4599
- anyPart.providerExecuted = (_a15 = anyOptions.providerExecuted) != null ? _a15 : part.providerExecuted;
4725
+ anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;
4600
4726
  if (anyOptions.providerMetadata != null && part.state === "input-available") {
4601
4727
  part.callProviderMetadata = anyOptions.providerMetadata;
4602
4728
  }
@@ -4617,7 +4743,7 @@ function processUIMessageStream({
4617
4743
  }
4618
4744
  }
4619
4745
  function updateDynamicToolPart(options) {
4620
- var _a15, _b2;
4746
+ var _a17, _b2;
4621
4747
  const part = state.message.parts.find(
4622
4748
  (part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
4623
4749
  );
@@ -4629,7 +4755,7 @@ function processUIMessageStream({
4629
4755
  anyPart.input = anyOptions.input;
4630
4756
  anyPart.output = anyOptions.output;
4631
4757
  anyPart.errorText = anyOptions.errorText;
4632
- anyPart.rawInput = (_a15 = anyOptions.rawInput) != null ? _a15 : anyPart.rawInput;
4758
+ anyPart.rawInput = (_a17 = anyOptions.rawInput) != null ? _a17 : anyPart.rawInput;
4633
4759
  anyPart.preliminary = anyOptions.preliminary;
4634
4760
  if (options.title !== void 0) {
4635
4761
  anyPart.title = options.title;
@@ -4682,7 +4808,7 @@ function processUIMessageStream({
4682
4808
  case "text-delta": {
4683
4809
  const textPart = state.activeTextParts[chunk.id];
4684
4810
  textPart.text += chunk.delta;
4685
- textPart.providerMetadata = (_a14 = chunk.providerMetadata) != null ? _a14 : textPart.providerMetadata;
4811
+ textPart.providerMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textPart.providerMetadata;
4686
4812
  write();
4687
4813
  break;
4688
4814
  }
@@ -5121,11 +5247,11 @@ function createAsyncIterableStream(source) {
5121
5247
  const reader = this.getReader();
5122
5248
  let finished = false;
5123
5249
  async function cleanup(cancelStream) {
5124
- var _a14;
5250
+ var _a16;
5125
5251
  finished = true;
5126
5252
  try {
5127
5253
  if (cancelStream) {
5128
- await ((_a14 = reader.cancel) == null ? void 0 : _a14.call(reader));
5254
+ await ((_a16 = reader.cancel) == null ? void 0 : _a16.call(reader));
5129
5255
  }
5130
5256
  } finally {
5131
5257
  try {
@@ -5291,8 +5417,8 @@ function createStitchableStream() {
5291
5417
 
5292
5418
  // src/util/now.ts
5293
5419
  function now() {
5294
- var _a14, _b;
5295
- return (_b = (_a14 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a14.now()) != null ? _b : Date.now();
5420
+ var _a16, _b;
5421
+ return (_b = (_a16 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a16.now()) != null ? _b : Date.now();
5296
5422
  }
5297
5423
 
5298
5424
  // src/generate-text/run-tools-transformation.ts
@@ -5317,6 +5443,7 @@ function runToolsTransformation({
5317
5443
  });
5318
5444
  const outstandingToolResults = /* @__PURE__ */ new Set();
5319
5445
  const toolInputs = /* @__PURE__ */ new Map();
5446
+ const toolCallsByToolCallId = /* @__PURE__ */ new Map();
5320
5447
  let canClose = false;
5321
5448
  let finishChunk = void 0;
5322
5449
  function attemptClose() {
@@ -5368,6 +5495,25 @@ function runToolsTransformation({
5368
5495
  };
5369
5496
  break;
5370
5497
  }
5498
+ case "tool-approval-request": {
5499
+ const toolCall = toolCallsByToolCallId.get(chunk.toolCallId);
5500
+ if (toolCall == null) {
5501
+ toolResultsStreamController.enqueue({
5502
+ type: "error",
5503
+ error: new ToolCallNotFoundForApprovalError({
5504
+ toolCallId: chunk.toolCallId,
5505
+ approvalId: chunk.approvalId
5506
+ })
5507
+ });
5508
+ break;
5509
+ }
5510
+ controller.enqueue({
5511
+ type: "tool-approval-request",
5512
+ approvalId: chunk.approvalId,
5513
+ toolCall
5514
+ });
5515
+ break;
5516
+ }
5371
5517
  case "tool-call": {
5372
5518
  try {
5373
5519
  const toolCall = await parseToolCall({
@@ -5377,6 +5523,7 @@ function runToolsTransformation({
5377
5523
  system,
5378
5524
  messages
5379
5525
  });
5526
+ toolCallsByToolCallId.set(toolCall.toolCallId, toolCall);
5380
5527
  controller.enqueue(toolCall);
5381
5528
  if (toolCall.invalid) {
5382
5529
  toolResultsStreamController.enqueue({
@@ -5467,9 +5614,6 @@ function runToolsTransformation({
5467
5614
  }
5468
5615
  break;
5469
5616
  }
5470
- case "tool-approval-request": {
5471
- break;
5472
- }
5473
5617
  default: {
5474
5618
  const _exhaustiveCheck = chunkType;
5475
5619
  throw new Error(`Unhandled chunk type: ${_exhaustiveCheck}`);
@@ -5605,7 +5749,7 @@ function createOutputTransformStream(output) {
5605
5749
  }
5606
5750
  return new TransformStream({
5607
5751
  async transform(chunk, controller) {
5608
- var _a14;
5752
+ var _a16;
5609
5753
  if (chunk.type === "finish-step" && textChunk.length > 0) {
5610
5754
  publishTextChunk({ controller });
5611
5755
  }
@@ -5632,7 +5776,7 @@ function createOutputTransformStream(output) {
5632
5776
  }
5633
5777
  text2 += chunk.text;
5634
5778
  textChunk += chunk.text;
5635
- textProviderMetadata = (_a14 = chunk.providerMetadata) != null ? _a14 : textProviderMetadata;
5779
+ textProviderMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textProviderMetadata;
5636
5780
  const result = await output.parsePartialOutput({ text: text2 });
5637
5781
  if (result !== void 0) {
5638
5782
  const currentJson = JSON.stringify(result.partial);
@@ -5698,7 +5842,7 @@ var DefaultStreamTextResult = class {
5698
5842
  let activeReasoningContent = {};
5699
5843
  const eventProcessor = new TransformStream({
5700
5844
  async transform(chunk, controller) {
5701
- var _a14, _b, _c, _d;
5845
+ var _a16, _b, _c, _d;
5702
5846
  controller.enqueue(chunk);
5703
5847
  const { part } = chunk;
5704
5848
  if (part.type === "text-delta" || part.type === "reasoning-delta" || part.type === "source" || part.type === "tool-call" || part.type === "tool-result" || part.type === "tool-input-start" || part.type === "tool-input-delta" || part.type === "raw") {
@@ -5728,7 +5872,7 @@ var DefaultStreamTextResult = class {
5728
5872
  return;
5729
5873
  }
5730
5874
  activeText.text += part.text;
5731
- activeText.providerMetadata = (_a14 = part.providerMetadata) != null ? _a14 : activeText.providerMetadata;
5875
+ activeText.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeText.providerMetadata;
5732
5876
  }
5733
5877
  if (part.type === "text-end") {
5734
5878
  const activeText = activeTextContent[part.id];
@@ -5893,8 +6037,8 @@ var DefaultStreamTextResult = class {
5893
6037
  "ai.response.text": { output: () => finalStep.text },
5894
6038
  "ai.response.toolCalls": {
5895
6039
  output: () => {
5896
- var _a14;
5897
- return ((_a14 = finalStep.toolCalls) == null ? void 0 : _a14.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
6040
+ var _a16;
6041
+ return ((_a16 = finalStep.toolCalls) == null ? void 0 : _a16.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
5898
6042
  }
5899
6043
  },
5900
6044
  "ai.response.providerMetadata": JSON.stringify(
@@ -6002,6 +6146,19 @@ var DefaultStreamTextResult = class {
6002
6146
  const initialResponseMessages = [];
6003
6147
  const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
6004
6148
  if (deniedToolApprovals.length > 0 || approvedToolApprovals.length > 0) {
6149
+ const providerExecutedToolApprovals = [
6150
+ ...approvedToolApprovals,
6151
+ ...deniedToolApprovals
6152
+ ].filter((toolApproval) => toolApproval.toolCall.providerExecuted);
6153
+ const localApprovedToolApprovals = approvedToolApprovals.filter(
6154
+ (toolApproval) => !toolApproval.toolCall.providerExecuted
6155
+ );
6156
+ const localDeniedToolApprovals = deniedToolApprovals.filter(
6157
+ (toolApproval) => !toolApproval.toolCall.providerExecuted
6158
+ );
6159
+ const deniedProviderExecutedToolApprovals = deniedToolApprovals.filter(
6160
+ (toolApproval) => toolApproval.toolCall.providerExecuted
6161
+ );
6005
6162
  let toolExecutionStepStreamController;
6006
6163
  const toolExecutionStepStream = new ReadableStream({
6007
6164
  start(controller) {
@@ -6010,7 +6167,10 @@ var DefaultStreamTextResult = class {
6010
6167
  });
6011
6168
  self.addStream(toolExecutionStepStream);
6012
6169
  try {
6013
- for (const toolApproval of deniedToolApprovals) {
6170
+ for (const toolApproval of [
6171
+ ...localDeniedToolApprovals,
6172
+ ...deniedProviderExecutedToolApprovals
6173
+ ]) {
6014
6174
  toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.enqueue({
6015
6175
  type: "tool-output-denied",
6016
6176
  toolCallId: toolApproval.toolCall.toolCallId,
@@ -6019,7 +6179,7 @@ var DefaultStreamTextResult = class {
6019
6179
  }
6020
6180
  const toolOutputs = [];
6021
6181
  await Promise.all(
6022
- approvedToolApprovals.map(async (toolApproval) => {
6182
+ localApprovedToolApprovals.map(async (toolApproval) => {
6023
6183
  const result = await executeToolCall({
6024
6184
  toolCall: toolApproval.toolCall,
6025
6185
  tools,
@@ -6038,36 +6198,52 @@ var DefaultStreamTextResult = class {
6038
6198
  }
6039
6199
  })
6040
6200
  );
6041
- const content = [];
6042
- for (const output2 of toolOutputs) {
6043
- content.push({
6044
- type: "tool-result",
6045
- toolCallId: output2.toolCallId,
6046
- toolName: output2.toolName,
6047
- output: await createToolModelOutput({
6048
- toolCallId: output2.toolCallId,
6049
- input: output2.input,
6050
- tool: tools == null ? void 0 : tools[output2.toolName],
6051
- output: output2.type === "tool-result" ? output2.output : output2.error,
6052
- errorMode: output2.type === "tool-error" ? "json" : "none"
6053
- })
6201
+ if (providerExecutedToolApprovals.length > 0) {
6202
+ initialResponseMessages.push({
6203
+ role: "tool",
6204
+ content: providerExecutedToolApprovals.map(
6205
+ (toolApproval) => ({
6206
+ type: "tool-approval-response",
6207
+ approvalId: toolApproval.approvalResponse.approvalId,
6208
+ approved: toolApproval.approvalResponse.approved,
6209
+ reason: toolApproval.approvalResponse.reason,
6210
+ providerExecuted: true
6211
+ })
6212
+ )
6054
6213
  });
6055
6214
  }
6056
- for (const toolApproval of deniedToolApprovals) {
6057
- content.push({
6058
- type: "tool-result",
6059
- toolCallId: toolApproval.toolCall.toolCallId,
6060
- toolName: toolApproval.toolCall.toolName,
6061
- output: {
6062
- type: "execution-denied",
6063
- reason: toolApproval.approvalResponse.reason
6064
- }
6215
+ if (toolOutputs.length > 0 || localDeniedToolApprovals.length > 0) {
6216
+ const localToolContent = [];
6217
+ for (const output2 of toolOutputs) {
6218
+ localToolContent.push({
6219
+ type: "tool-result",
6220
+ toolCallId: output2.toolCallId,
6221
+ toolName: output2.toolName,
6222
+ output: await createToolModelOutput({
6223
+ toolCallId: output2.toolCallId,
6224
+ input: output2.input,
6225
+ tool: tools == null ? void 0 : tools[output2.toolName],
6226
+ output: output2.type === "tool-result" ? output2.output : output2.error,
6227
+ errorMode: output2.type === "tool-error" ? "json" : "none"
6228
+ })
6229
+ });
6230
+ }
6231
+ for (const toolApproval of localDeniedToolApprovals) {
6232
+ localToolContent.push({
6233
+ type: "tool-result",
6234
+ toolCallId: toolApproval.toolCall.toolCallId,
6235
+ toolName: toolApproval.toolCall.toolName,
6236
+ output: {
6237
+ type: "execution-denied",
6238
+ reason: toolApproval.approvalResponse.reason
6239
+ }
6240
+ });
6241
+ }
6242
+ initialResponseMessages.push({
6243
+ role: "tool",
6244
+ content: localToolContent
6065
6245
  });
6066
6246
  }
6067
- initialResponseMessages.push({
6068
- role: "tool",
6069
- content
6070
- });
6071
6247
  } finally {
6072
6248
  toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.close();
6073
6249
  }
@@ -6078,7 +6254,7 @@ var DefaultStreamTextResult = class {
6078
6254
  responseMessages,
6079
6255
  usage
6080
6256
  }) {
6081
- var _a14, _b, _c, _d, _e, _f;
6257
+ var _a16, _b, _c, _d, _e, _f;
6082
6258
  const includeRawChunks2 = self.includeRawChunks;
6083
6259
  stepFinish = new import_provider_utils19.DelayedPromise();
6084
6260
  const stepInputMessages = [...initialMessages, ...responseMessages];
@@ -6090,7 +6266,7 @@ var DefaultStreamTextResult = class {
6090
6266
  experimental_context
6091
6267
  }));
6092
6268
  const stepModel = resolveLanguageModel(
6093
- (_a14 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a14 : model
6269
+ (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
6094
6270
  );
6095
6271
  const promptMessages = await convertToLanguageModelPrompt({
6096
6272
  prompt: {
@@ -6203,7 +6379,7 @@ var DefaultStreamTextResult = class {
6203
6379
  streamWithToolResults.pipeThrough(
6204
6380
  new TransformStream({
6205
6381
  async transform(chunk, controller) {
6206
- var _a15, _b2, _c2, _d2, _e2;
6382
+ var _a17, _b2, _c2, _d2, _e2;
6207
6383
  if (chunk.type === "stream-start") {
6208
6384
  warnings = chunk.warnings;
6209
6385
  return;
@@ -6276,7 +6452,7 @@ var DefaultStreamTextResult = class {
6276
6452
  }
6277
6453
  case "response-metadata": {
6278
6454
  stepResponse = {
6279
- id: (_a15 = chunk.id) != null ? _a15 : stepResponse.id,
6455
+ id: (_a17 = chunk.id) != null ? _a17 : stepResponse.id,
6280
6456
  timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
6281
6457
  modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
6282
6458
  };
@@ -6606,14 +6782,14 @@ var DefaultStreamTextResult = class {
6606
6782
  );
6607
6783
  }
6608
6784
  async consumeStream(options) {
6609
- var _a14;
6785
+ var _a16;
6610
6786
  try {
6611
6787
  await consumeStream({
6612
6788
  stream: this.fullStream,
6613
6789
  onError: options == null ? void 0 : options.onError
6614
6790
  });
6615
6791
  } catch (error) {
6616
- (_a14 = options == null ? void 0 : options.onError) == null ? void 0 : _a14.call(options, error);
6792
+ (_a16 = options == null ? void 0 : options.onError) == null ? void 0 : _a16.call(options, error);
6617
6793
  }
6618
6794
  }
6619
6795
  get experimental_partialOutputStream() {
@@ -6634,8 +6810,8 @@ var DefaultStreamTextResult = class {
6634
6810
  }
6635
6811
  get output() {
6636
6812
  return this.finalStep.then((step) => {
6637
- var _a14;
6638
- const output = (_a14 = this.outputSpecification) != null ? _a14 : text();
6813
+ var _a16;
6814
+ const output = (_a16 = this.outputSpecification) != null ? _a16 : text();
6639
6815
  return output.parseCompleteOutput(
6640
6816
  { text: step.text },
6641
6817
  {
@@ -6655,15 +6831,15 @@ var DefaultStreamTextResult = class {
6655
6831
  sendSources = false,
6656
6832
  sendStart = true,
6657
6833
  sendFinish = true,
6658
- onError = import_provider22.getErrorMessage
6834
+ onError = import_provider24.getErrorMessage
6659
6835
  } = {}) {
6660
6836
  const responseMessageId = generateMessageId != null ? getResponseUIMessageId({
6661
6837
  originalMessages,
6662
6838
  responseMessageId: generateMessageId
6663
6839
  }) : void 0;
6664
6840
  const isDynamic = (part) => {
6665
- var _a14;
6666
- const tool2 = (_a14 = this.tools) == null ? void 0 : _a14[part.toolName];
6841
+ var _a16;
6842
+ const tool2 = (_a16 = this.tools) == null ? void 0 : _a16[part.toolName];
6667
6843
  if (tool2 == null) {
6668
6844
  return part.dynamic;
6669
6845
  }
@@ -7001,10 +7177,10 @@ var ToolLoopAgent = class {
7001
7177
  return this.settings.tools;
7002
7178
  }
7003
7179
  async prepareCall(options) {
7004
- var _a14, _b, _c, _d;
7180
+ var _a16, _b, _c, _d;
7005
7181
  const baseCallArgs = {
7006
7182
  ...this.settings,
7007
- stopWhen: (_a14 = this.settings.stopWhen) != null ? _a14 : stepCountIs(20),
7183
+ stopWhen: (_a16 = this.settings.stopWhen) != null ? _a16 : stepCountIs(20),
7008
7184
  ...options
7009
7185
  };
7010
7186
  const preparedCallArgs = (_d = await ((_c = (_b = this.settings).prepareCall) == null ? void 0 : _c.call(_b, baseCallArgs))) != null ? _d : baseCallArgs;
@@ -7136,7 +7312,7 @@ function readUIMessageStream({
7136
7312
  onError,
7137
7313
  terminateOnError = false
7138
7314
  }) {
7139
- var _a14;
7315
+ var _a16;
7140
7316
  let controller;
7141
7317
  let hasErrored = false;
7142
7318
  const outputStream = new ReadableStream({
@@ -7145,7 +7321,7 @@ function readUIMessageStream({
7145
7321
  }
7146
7322
  });
7147
7323
  const state = createStreamingUIMessageState({
7148
- messageId: (_a14 = message == null ? void 0 : message.id) != null ? _a14 : "",
7324
+ messageId: (_a16 = message == null ? void 0 : message.id) != null ? _a16 : "",
7149
7325
  lastMessage: message
7150
7326
  });
7151
7327
  const handleError = (error) => {
@@ -7212,7 +7388,7 @@ async function convertToModelMessages(messages, options) {
7212
7388
  modelMessages.push({
7213
7389
  role: "user",
7214
7390
  content: message.parts.map((part) => {
7215
- var _a14;
7391
+ var _a16;
7216
7392
  if (isTextUIPart(part)) {
7217
7393
  return {
7218
7394
  type: "text",
@@ -7230,7 +7406,7 @@ async function convertToModelMessages(messages, options) {
7230
7406
  };
7231
7407
  }
7232
7408
  if (isDataUIPart(part)) {
7233
- return (_a14 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a14.call(
7409
+ return (_a16 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a16.call(
7234
7410
  options,
7235
7411
  part
7236
7412
  );
@@ -7243,7 +7419,7 @@ async function convertToModelMessages(messages, options) {
7243
7419
  if (message.parts != null) {
7244
7420
  let block = [];
7245
7421
  async function processBlock() {
7246
- var _a14, _b, _c, _d, _e, _f;
7422
+ var _a16, _b, _c, _d, _e, _f;
7247
7423
  if (block.length === 0) {
7248
7424
  return;
7249
7425
  }
@@ -7275,7 +7451,7 @@ async function convertToModelMessages(messages, options) {
7275
7451
  type: "tool-call",
7276
7452
  toolCallId: part.toolCallId,
7277
7453
  toolName,
7278
- input: part.state === "output-error" ? (_a14 = part.input) != null ? _a14 : "rawInput" in part ? part.rawInput : void 0 : part.input,
7454
+ input: part.state === "output-error" ? (_a16 = part.input) != null ? _a16 : "rawInput" in part ? part.rawInput : void 0 : part.input,
7279
7455
  providerExecuted: part.providerExecuted,
7280
7456
  ...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
7281
7457
  });
@@ -7286,7 +7462,7 @@ async function convertToModelMessages(messages, options) {
7286
7462
  toolCallId: part.toolCallId
7287
7463
  });
7288
7464
  }
7289
- if (part.providerExecuted === true && (part.state === "output-available" || part.state === "output-error")) {
7465
+ if (part.providerExecuted === true && part.state !== "approval-responded" && (part.state === "output-available" || part.state === "output-error")) {
7290
7466
  content.push({
7291
7467
  type: "tool-result",
7292
7468
  toolCallId: part.toolCallId,
@@ -7320,7 +7496,10 @@ async function convertToModelMessages(messages, options) {
7320
7496
  content
7321
7497
  });
7322
7498
  const toolParts = block.filter(
7323
- (part) => isToolUIPart(part) && part.providerExecuted !== true
7499
+ (part) => {
7500
+ var _a17;
7501
+ return isToolUIPart(part) && (part.providerExecuted !== true || ((_a17 = part.approval) == null ? void 0 : _a17.approved) != null);
7502
+ }
7324
7503
  );
7325
7504
  if (toolParts.length > 0) {
7326
7505
  {
@@ -7331,9 +7510,13 @@ async function convertToModelMessages(messages, options) {
7331
7510
  type: "tool-approval-response",
7332
7511
  approvalId: toolPart.approval.id,
7333
7512
  approved: toolPart.approval.approved,
7334
- reason: toolPart.approval.reason
7513
+ reason: toolPart.approval.reason,
7514
+ providerExecuted: toolPart.providerExecuted
7335
7515
  });
7336
7516
  }
7517
+ if (toolPart.providerExecuted === true) {
7518
+ continue;
7519
+ }
7337
7520
  switch (toolPart.state) {
7338
7521
  case "output-denied": {
7339
7522
  content2.push({
@@ -7368,10 +7551,12 @@ async function convertToModelMessages(messages, options) {
7368
7551
  }
7369
7552
  }
7370
7553
  }
7371
- modelMessages.push({
7372
- role: "tool",
7373
- content: content2
7374
- });
7554
+ if (content2.length > 0) {
7555
+ modelMessages.push({
7556
+ role: "tool",
7557
+ content: content2
7558
+ });
7559
+ }
7375
7560
  }
7376
7561
  }
7377
7562
  block = [];
@@ -7401,7 +7586,7 @@ async function convertToModelMessages(messages, options) {
7401
7586
  }
7402
7587
 
7403
7588
  // src/ui/validate-ui-messages.ts
7404
- var import_provider23 = require("@ai-sdk/provider");
7589
+ var import_provider25 = require("@ai-sdk/provider");
7405
7590
  var import_provider_utils22 = require("@ai-sdk/provider-utils");
7406
7591
  var import_v48 = require("zod/v4");
7407
7592
  var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
@@ -7702,7 +7887,7 @@ async function safeValidateUIMessages({
7702
7887
  if (!dataSchema) {
7703
7888
  return {
7704
7889
  success: false,
7705
- error: new import_provider23.TypeValidationError({
7890
+ error: new import_provider25.TypeValidationError({
7706
7891
  value: dataPart.data,
7707
7892
  cause: `No data schema found for data part ${dataName}`
7708
7893
  })
@@ -7726,7 +7911,7 @@ async function safeValidateUIMessages({
7726
7911
  if (!tool2) {
7727
7912
  return {
7728
7913
  success: false,
7729
- error: new import_provider23.TypeValidationError({
7914
+ error: new import_provider25.TypeValidationError({
7730
7915
  value: toolPart.input,
7731
7916
  cause: `No tool schema found for tool part ${toolName}`
7732
7917
  })
@@ -7895,7 +8080,7 @@ async function embed({
7895
8080
  }),
7896
8081
  tracer,
7897
8082
  fn: async (doEmbedSpan) => {
7898
- var _a14;
8083
+ var _a16;
7899
8084
  const modelResponse = await model.doEmbed({
7900
8085
  values: [value],
7901
8086
  abortSignal,
@@ -7903,7 +8088,7 @@ async function embed({
7903
8088
  providerOptions
7904
8089
  });
7905
8090
  const embedding2 = modelResponse.embeddings[0];
7906
- const usage2 = (_a14 = modelResponse.usage) != null ? _a14 : { tokens: NaN };
8091
+ const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
7907
8092
  doEmbedSpan.setAttributes(
7908
8093
  await selectTelemetryAttributes({
7909
8094
  telemetry,
@@ -8017,7 +8202,7 @@ async function embedMany({
8017
8202
  }),
8018
8203
  tracer,
8019
8204
  fn: async (span) => {
8020
- var _a14;
8205
+ var _a16;
8021
8206
  const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([
8022
8207
  model.maxEmbeddingsPerCall,
8023
8208
  model.supportsParallelCalls
@@ -8042,7 +8227,7 @@ async function embedMany({
8042
8227
  }),
8043
8228
  tracer,
8044
8229
  fn: async (doEmbedSpan) => {
8045
- var _a15;
8230
+ var _a17;
8046
8231
  const modelResponse = await model.doEmbed({
8047
8232
  values,
8048
8233
  abortSignal,
@@ -8050,7 +8235,7 @@ async function embedMany({
8050
8235
  providerOptions
8051
8236
  });
8052
8237
  const embeddings3 = modelResponse.embeddings;
8053
- const usage2 = (_a15 = modelResponse.usage) != null ? _a15 : { tokens: NaN };
8238
+ const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
8054
8239
  doEmbedSpan.setAttributes(
8055
8240
  await selectTelemetryAttributes({
8056
8241
  telemetry,
@@ -8131,7 +8316,7 @@ async function embedMany({
8131
8316
  }),
8132
8317
  tracer,
8133
8318
  fn: async (doEmbedSpan) => {
8134
- var _a15;
8319
+ var _a17;
8135
8320
  const modelResponse = await model.doEmbed({
8136
8321
  values: chunk,
8137
8322
  abortSignal,
@@ -8139,7 +8324,7 @@ async function embedMany({
8139
8324
  providerOptions
8140
8325
  });
8141
8326
  const embeddings2 = modelResponse.embeddings;
8142
- const usage = (_a15 = modelResponse.usage) != null ? _a15 : { tokens: NaN };
8327
+ const usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
8143
8328
  doEmbedSpan.setAttributes(
8144
8329
  await selectTelemetryAttributes({
8145
8330
  telemetry,
@@ -8178,7 +8363,7 @@ async function embedMany({
8178
8363
  result.providerMetadata
8179
8364
  )) {
8180
8365
  providerMetadata[providerName] = {
8181
- ...(_a14 = providerMetadata[providerName]) != null ? _a14 : {},
8366
+ ...(_a16 = providerMetadata[providerName]) != null ? _a16 : {},
8182
8367
  ...metadata
8183
8368
  };
8184
8369
  }
@@ -8239,7 +8424,7 @@ async function generateImage({
8239
8424
  abortSignal,
8240
8425
  headers
8241
8426
  }) {
8242
- var _a14, _b;
8427
+ var _a16, _b;
8243
8428
  const model = resolveImageModel(modelArg);
8244
8429
  const headersWithUserAgent = (0, import_provider_utils25.withUserAgentSuffix)(
8245
8430
  headers != null ? headers : {},
@@ -8249,7 +8434,7 @@ async function generateImage({
8249
8434
  maxRetries: maxRetriesArg,
8250
8435
  abortSignal
8251
8436
  });
8252
- const maxImagesPerCallWithDefault = (_a14 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a14 : 1;
8437
+ const maxImagesPerCallWithDefault = (_a16 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a16 : 1;
8253
8438
  const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
8254
8439
  const callImageCounts = Array.from({ length: callCount }, (_, i) => {
8255
8440
  if (i < callCount - 1) {
@@ -8290,13 +8475,13 @@ async function generateImage({
8290
8475
  images.push(
8291
8476
  ...result.images.map(
8292
8477
  (image) => {
8293
- var _a15;
8478
+ var _a17;
8294
8479
  return new DefaultGeneratedFile({
8295
8480
  data: image,
8296
- mediaType: (_a15 = detectMediaType({
8481
+ mediaType: (_a17 = detectMediaType({
8297
8482
  data: image,
8298
8483
  signatures: imageMediaTypeSignatures
8299
- })) != null ? _a15 : "image/png"
8484
+ })) != null ? _a17 : "image/png"
8300
8485
  });
8301
8486
  }
8302
8487
  )
@@ -8421,7 +8606,7 @@ function extractReasoningContent(content) {
8421
8606
  }
8422
8607
 
8423
8608
  // src/generate-object/output-strategy.ts
8424
- var import_provider24 = require("@ai-sdk/provider");
8609
+ var import_provider26 = require("@ai-sdk/provider");
8425
8610
  var import_provider_utils26 = require("@ai-sdk/provider-utils");
8426
8611
  var noSchemaOutputStrategy = {
8427
8612
  type: "no-schema",
@@ -8442,7 +8627,7 @@ var noSchemaOutputStrategy = {
8442
8627
  } : { success: true, value };
8443
8628
  },
8444
8629
  createElementStream() {
8445
- throw new import_provider24.UnsupportedFunctionalityError({
8630
+ throw new import_provider26.UnsupportedFunctionalityError({
8446
8631
  functionality: "element streams in no-schema mode"
8447
8632
  });
8448
8633
  }
@@ -8464,7 +8649,7 @@ var objectOutputStrategy = (schema) => ({
8464
8649
  return (0, import_provider_utils26.safeValidateTypes)({ value, schema });
8465
8650
  },
8466
8651
  createElementStream() {
8467
- throw new import_provider24.UnsupportedFunctionalityError({
8652
+ throw new import_provider26.UnsupportedFunctionalityError({
8468
8653
  functionality: "element streams in object mode"
8469
8654
  });
8470
8655
  }
@@ -8493,11 +8678,11 @@ var arrayOutputStrategy = (schema) => {
8493
8678
  isFirstDelta,
8494
8679
  isFinalDelta
8495
8680
  }) {
8496
- var _a14;
8497
- if (!(0, import_provider24.isJSONObject)(value) || !(0, import_provider24.isJSONArray)(value.elements)) {
8681
+ var _a16;
8682
+ if (!(0, import_provider26.isJSONObject)(value) || !(0, import_provider26.isJSONArray)(value.elements)) {
8498
8683
  return {
8499
8684
  success: false,
8500
- error: new import_provider24.TypeValidationError({
8685
+ error: new import_provider26.TypeValidationError({
8501
8686
  value,
8502
8687
  cause: "value must be an object that contains an array of elements"
8503
8688
  })
@@ -8516,7 +8701,7 @@ var arrayOutputStrategy = (schema) => {
8516
8701
  }
8517
8702
  resultArray.push(result.value);
8518
8703
  }
8519
- const publishedElementCount = (_a14 = latestObject == null ? void 0 : latestObject.length) != null ? _a14 : 0;
8704
+ const publishedElementCount = (_a16 = latestObject == null ? void 0 : latestObject.length) != null ? _a16 : 0;
8520
8705
  let textDelta = "";
8521
8706
  if (isFirstDelta) {
8522
8707
  textDelta += "[";
@@ -8537,10 +8722,10 @@ var arrayOutputStrategy = (schema) => {
8537
8722
  };
8538
8723
  },
8539
8724
  async validateFinalResult(value) {
8540
- if (!(0, import_provider24.isJSONObject)(value) || !(0, import_provider24.isJSONArray)(value.elements)) {
8725
+ if (!(0, import_provider26.isJSONObject)(value) || !(0, import_provider26.isJSONArray)(value.elements)) {
8541
8726
  return {
8542
8727
  success: false,
8543
- error: new import_provider24.TypeValidationError({
8728
+ error: new import_provider26.TypeValidationError({
8544
8729
  value,
8545
8730
  cause: "value must be an object that contains an array of elements"
8546
8731
  })
@@ -8603,10 +8788,10 @@ var enumOutputStrategy = (enumValues) => {
8603
8788
  additionalProperties: false
8604
8789
  }),
8605
8790
  async validateFinalResult(value) {
8606
- if (!(0, import_provider24.isJSONObject)(value) || typeof value.result !== "string") {
8791
+ if (!(0, import_provider26.isJSONObject)(value) || typeof value.result !== "string") {
8607
8792
  return {
8608
8793
  success: false,
8609
- error: new import_provider24.TypeValidationError({
8794
+ error: new import_provider26.TypeValidationError({
8610
8795
  value,
8611
8796
  cause: 'value must be an object that contains a string in the "result" property.'
8612
8797
  })
@@ -8615,17 +8800,17 @@ var enumOutputStrategy = (enumValues) => {
8615
8800
  const result = value.result;
8616
8801
  return enumValues.includes(result) ? { success: true, value: result } : {
8617
8802
  success: false,
8618
- error: new import_provider24.TypeValidationError({
8803
+ error: new import_provider26.TypeValidationError({
8619
8804
  value,
8620
8805
  cause: "value must be a string in the enum"
8621
8806
  })
8622
8807
  };
8623
8808
  },
8624
8809
  async validatePartialResult({ value, textDelta }) {
8625
- if (!(0, import_provider24.isJSONObject)(value) || typeof value.result !== "string") {
8810
+ if (!(0, import_provider26.isJSONObject)(value) || typeof value.result !== "string") {
8626
8811
  return {
8627
8812
  success: false,
8628
- error: new import_provider24.TypeValidationError({
8813
+ error: new import_provider26.TypeValidationError({
8629
8814
  value,
8630
8815
  cause: 'value must be an object that contains a string in the "result" property.'
8631
8816
  })
@@ -8638,7 +8823,7 @@ var enumOutputStrategy = (enumValues) => {
8638
8823
  if (value.result.length === 0 || possibleEnumValues.length === 0) {
8639
8824
  return {
8640
8825
  success: false,
8641
- error: new import_provider24.TypeValidationError({
8826
+ error: new import_provider26.TypeValidationError({
8642
8827
  value,
8643
8828
  cause: "value must be a string in the enum"
8644
8829
  })
@@ -8653,7 +8838,7 @@ var enumOutputStrategy = (enumValues) => {
8653
8838
  };
8654
8839
  },
8655
8840
  createElementStream() {
8656
- throw new import_provider24.UnsupportedFunctionalityError({
8841
+ throw new import_provider26.UnsupportedFunctionalityError({
8657
8842
  functionality: "element streams in enum mode"
8658
8843
  });
8659
8844
  }
@@ -8681,7 +8866,7 @@ function getOutputStrategy({
8681
8866
  }
8682
8867
 
8683
8868
  // src/generate-object/parse-and-validate-object-result.ts
8684
- var import_provider25 = require("@ai-sdk/provider");
8869
+ var import_provider27 = require("@ai-sdk/provider");
8685
8870
  var import_provider_utils27 = require("@ai-sdk/provider-utils");
8686
8871
  async function parseAndValidateObjectResult(result, outputStrategy, context) {
8687
8872
  const parseResult = await (0, import_provider_utils27.safeParseJSON)({ text: result });
@@ -8719,7 +8904,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
8719
8904
  try {
8720
8905
  return await parseAndValidateObjectResult(result, outputStrategy, context);
8721
8906
  } catch (error) {
8722
- if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider25.JSONParseError.isInstance(error.cause) || import_provider25.TypeValidationError.isInstance(error.cause))) {
8907
+ if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider27.JSONParseError.isInstance(error.cause) || import_provider27.TypeValidationError.isInstance(error.cause))) {
8723
8908
  const repairedText = await repairText({
8724
8909
  text: result,
8725
8910
  error: error.cause
@@ -8936,7 +9121,7 @@ async function generateObject(options) {
8936
9121
  }),
8937
9122
  tracer,
8938
9123
  fn: async (span) => {
8939
- var _a14;
9124
+ var _a16;
8940
9125
  let result;
8941
9126
  let finishReason;
8942
9127
  let usage;
@@ -8982,7 +9167,7 @@ async function generateObject(options) {
8982
9167
  }),
8983
9168
  tracer,
8984
9169
  fn: async (span2) => {
8985
- var _a15, _b, _c, _d, _e, _f, _g, _h;
9170
+ var _a17, _b, _c, _d, _e, _f, _g, _h;
8986
9171
  const result2 = await model.doGenerate({
8987
9172
  responseFormat: {
8988
9173
  type: "json",
@@ -8997,7 +9182,7 @@ async function generateObject(options) {
8997
9182
  headers: headersWithUserAgent
8998
9183
  });
8999
9184
  const responseData = {
9000
- id: (_b = (_a15 = result2.response) == null ? void 0 : _a15.id) != null ? _b : generateId2(),
9185
+ id: (_b = (_a17 = result2.response) == null ? void 0 : _a17.id) != null ? _b : generateId2(),
9001
9186
  timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
9002
9187
  modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
9003
9188
  headers: (_g = result2.response) == null ? void 0 : _g.headers,
@@ -9053,7 +9238,7 @@ async function generateObject(options) {
9053
9238
  usage = asLanguageModelUsage(generateResult.usage);
9054
9239
  warnings = generateResult.warnings;
9055
9240
  resultProviderMetadata = generateResult.providerMetadata;
9056
- request = (_a14 = generateResult.request) != null ? _a14 : {};
9241
+ request = (_a16 = generateResult.request) != null ? _a16 : {};
9057
9242
  response = generateResult.responseData;
9058
9243
  reasoning = generateResult.reasoning;
9059
9244
  logWarnings({
@@ -9116,9 +9301,9 @@ var DefaultGenerateObjectResult = class {
9116
9301
  this.reasoning = options.reasoning;
9117
9302
  }
9118
9303
  toJsonResponse(init) {
9119
- var _a14;
9304
+ var _a16;
9120
9305
  return new Response(JSON.stringify(this.object), {
9121
- status: (_a14 = init == null ? void 0 : init.status) != null ? _a14 : 200,
9306
+ status: (_a16 = init == null ? void 0 : init.status) != null ? _a16 : 200,
9122
9307
  headers: prepareHeaders(init == null ? void 0 : init.headers, {
9123
9308
  "content-type": "application/json; charset=utf-8"
9124
9309
  })
@@ -9244,8 +9429,8 @@ function simulateReadableStream({
9244
9429
  chunkDelayInMs = 0,
9245
9430
  _internal
9246
9431
  }) {
9247
- var _a14;
9248
- const delay2 = (_a14 = _internal == null ? void 0 : _internal.delay) != null ? _a14 : import_provider_utils29.delay;
9432
+ var _a16;
9433
+ const delay2 = (_a16 = _internal == null ? void 0 : _internal.delay) != null ? _a16 : import_provider_utils29.delay;
9249
9434
  let index = 0;
9250
9435
  return new ReadableStream({
9251
9436
  async pull(controller) {
@@ -9503,7 +9688,7 @@ var DefaultStreamObjectResult = class {
9503
9688
  const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
9504
9689
  new TransformStream({
9505
9690
  async transform(chunk, controller) {
9506
- var _a14, _b, _c;
9691
+ var _a16, _b, _c;
9507
9692
  if (typeof chunk === "object" && chunk.type === "stream-start") {
9508
9693
  warnings = chunk.warnings;
9509
9694
  return;
@@ -9553,7 +9738,7 @@ var DefaultStreamObjectResult = class {
9553
9738
  switch (chunk.type) {
9554
9739
  case "response-metadata": {
9555
9740
  fullResponse = {
9556
- id: (_a14 = chunk.id) != null ? _a14 : fullResponse.id,
9741
+ id: (_a16 = chunk.id) != null ? _a16 : fullResponse.id,
9557
9742
  timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
9558
9743
  modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
9559
9744
  };
@@ -9825,7 +10010,7 @@ async function generateSpeech({
9825
10010
  abortSignal,
9826
10011
  headers
9827
10012
  }) {
9828
- var _a14;
10013
+ var _a16;
9829
10014
  const resolvedModel = resolveSpeechModel(model);
9830
10015
  if (!resolvedModel) {
9831
10016
  throw new Error("Model could not be resolved");
@@ -9862,10 +10047,10 @@ async function generateSpeech({
9862
10047
  return new DefaultSpeechResult({
9863
10048
  audio: new DefaultGeneratedAudioFile({
9864
10049
  data: result.audio,
9865
- mediaType: (_a14 = detectMediaType({
10050
+ mediaType: (_a16 = detectMediaType({
9866
10051
  data: result.audio,
9867
10052
  signatures: audioMediaTypeSignatures
9868
- })) != null ? _a14 : "audio/mp3"
10053
+ })) != null ? _a16 : "audio/mp3"
9869
10054
  }),
9870
10055
  warnings: result.warnings,
9871
10056
  responses: [result.response],
@@ -9874,11 +10059,11 @@ async function generateSpeech({
9874
10059
  }
9875
10060
  var DefaultSpeechResult = class {
9876
10061
  constructor(options) {
9877
- var _a14;
10062
+ var _a16;
9878
10063
  this.audio = options.audio;
9879
10064
  this.warnings = options.warnings;
9880
10065
  this.responses = options.responses;
9881
- this.providerMetadata = (_a14 = options.providerMetadata) != null ? _a14 : {};
10066
+ this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
9882
10067
  }
9883
10068
  };
9884
10069
 
@@ -9963,7 +10148,7 @@ function pruneMessages({
9963
10148
 
9964
10149
  // src/generate-text/smooth-stream.ts
9965
10150
  var import_provider_utils32 = require("@ai-sdk/provider-utils");
9966
- var import_provider26 = require("@ai-sdk/provider");
10151
+ var import_provider28 = require("@ai-sdk/provider");
9967
10152
  var CHUNKING_REGEXPS = {
9968
10153
  word: /\S+\s+/m,
9969
10154
  line: /\n+/m
@@ -9993,7 +10178,7 @@ function smoothStream({
9993
10178
  } else {
9994
10179
  const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
9995
10180
  if (chunkingRegex == null) {
9996
- throw new import_provider26.InvalidArgumentError({
10181
+ throw new import_provider28.InvalidArgumentError({
9997
10182
  argument: "chunking",
9998
10183
  message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
9999
10184
  });
@@ -10310,13 +10495,13 @@ function addToolInputExamplesMiddleware({
10310
10495
  return {
10311
10496
  specificationVersion: "v3",
10312
10497
  transformParams: async ({ params }) => {
10313
- var _a14;
10314
- if (!((_a14 = params.tools) == null ? void 0 : _a14.length)) {
10498
+ var _a16;
10499
+ if (!((_a16 = params.tools) == null ? void 0 : _a16.length)) {
10315
10500
  return params;
10316
10501
  }
10317
10502
  const transformedTools = params.tools.map((tool2) => {
10318
- var _a15;
10319
- if (tool2.type !== "function" || !((_a15 = tool2.inputExamples) == null ? void 0 : _a15.length)) {
10503
+ var _a17;
10504
+ if (tool2.type !== "function" || !((_a17 = tool2.inputExamples) == null ? void 0 : _a17.length)) {
10320
10505
  return tool2;
10321
10506
  }
10322
10507
  const formattedExamples = tool2.inputExamples.map((example, index) => format(example, index)).join("\n");
@@ -10363,7 +10548,7 @@ var doWrap = ({
10363
10548
  modelId,
10364
10549
  providerId
10365
10550
  }) => {
10366
- var _a14, _b, _c;
10551
+ var _a16, _b, _c;
10367
10552
  async function doTransform({
10368
10553
  params,
10369
10554
  type
@@ -10372,7 +10557,7 @@ var doWrap = ({
10372
10557
  }
10373
10558
  return {
10374
10559
  specificationVersion: "v3",
10375
- provider: (_a14 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a14 : model.provider,
10560
+ provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,
10376
10561
  modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
10377
10562
  supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
10378
10563
  async doGenerate(params) {
@@ -10419,7 +10604,7 @@ var doWrap2 = ({
10419
10604
  modelId,
10420
10605
  providerId
10421
10606
  }) => {
10422
- var _a14, _b, _c, _d;
10607
+ var _a16, _b, _c, _d;
10423
10608
  async function doTransform({
10424
10609
  params
10425
10610
  }) {
@@ -10427,7 +10612,7 @@ var doWrap2 = ({
10427
10612
  }
10428
10613
  return {
10429
10614
  specificationVersion: "v3",
10430
- provider: (_a14 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a14 : model.provider,
10615
+ provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,
10431
10616
  modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
10432
10617
  maxEmbeddingsPerCall: (_c = overrideMaxEmbeddingsPerCall == null ? void 0 : overrideMaxEmbeddingsPerCall({ model })) != null ? _c : model.maxEmbeddingsPerCall,
10433
10618
  supportsParallelCalls: (_d = overrideSupportsParallelCalls == null ? void 0 : overrideSupportsParallelCalls({ model })) != null ? _d : model.supportsParallelCalls,
@@ -10482,7 +10667,7 @@ function wrapProvider({
10482
10667
  }
10483
10668
 
10484
10669
  // src/registry/custom-provider.ts
10485
- var import_provider27 = require("@ai-sdk/provider");
10670
+ var import_provider29 = require("@ai-sdk/provider");
10486
10671
  function customProvider({
10487
10672
  languageModels,
10488
10673
  embeddingModels,
@@ -10502,7 +10687,7 @@ function customProvider({
10502
10687
  if (fallbackProvider) {
10503
10688
  return fallbackProvider.languageModel(modelId);
10504
10689
  }
10505
- throw new import_provider27.NoSuchModelError({ modelId, modelType: "languageModel" });
10690
+ throw new import_provider29.NoSuchModelError({ modelId, modelType: "languageModel" });
10506
10691
  },
10507
10692
  embeddingModel(modelId) {
10508
10693
  if (embeddingModels != null && modelId in embeddingModels) {
@@ -10511,7 +10696,7 @@ function customProvider({
10511
10696
  if (fallbackProvider) {
10512
10697
  return fallbackProvider.embeddingModel(modelId);
10513
10698
  }
10514
- throw new import_provider27.NoSuchModelError({ modelId, modelType: "embeddingModel" });
10699
+ throw new import_provider29.NoSuchModelError({ modelId, modelType: "embeddingModel" });
10515
10700
  },
10516
10701
  imageModel(modelId) {
10517
10702
  if (imageModels != null && modelId in imageModels) {
@@ -10520,7 +10705,7 @@ function customProvider({
10520
10705
  if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
10521
10706
  return fallbackProvider.imageModel(modelId);
10522
10707
  }
10523
- throw new import_provider27.NoSuchModelError({ modelId, modelType: "imageModel" });
10708
+ throw new import_provider29.NoSuchModelError({ modelId, modelType: "imageModel" });
10524
10709
  },
10525
10710
  transcriptionModel(modelId) {
10526
10711
  if (transcriptionModels != null && modelId in transcriptionModels) {
@@ -10529,7 +10714,7 @@ function customProvider({
10529
10714
  if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {
10530
10715
  return fallbackProvider.transcriptionModel(modelId);
10531
10716
  }
10532
- throw new import_provider27.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
10717
+ throw new import_provider29.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
10533
10718
  },
10534
10719
  speechModel(modelId) {
10535
10720
  if (speechModels != null && modelId in speechModels) {
@@ -10538,7 +10723,7 @@ function customProvider({
10538
10723
  if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {
10539
10724
  return fallbackProvider.speechModel(modelId);
10540
10725
  }
10541
- throw new import_provider27.NoSuchModelError({ modelId, modelType: "speechModel" });
10726
+ throw new import_provider29.NoSuchModelError({ modelId, modelType: "speechModel" });
10542
10727
  },
10543
10728
  rerankingModel(modelId) {
10544
10729
  if (rerankingModels != null && modelId in rerankingModels) {
@@ -10547,19 +10732,19 @@ function customProvider({
10547
10732
  if (fallbackProvider == null ? void 0 : fallbackProvider.rerankingModel) {
10548
10733
  return fallbackProvider.rerankingModel(modelId);
10549
10734
  }
10550
- throw new import_provider27.NoSuchModelError({ modelId, modelType: "rerankingModel" });
10735
+ throw new import_provider29.NoSuchModelError({ modelId, modelType: "rerankingModel" });
10551
10736
  }
10552
10737
  };
10553
10738
  }
10554
10739
  var experimental_customProvider = customProvider;
10555
10740
 
10556
10741
  // src/registry/no-such-provider-error.ts
10557
- var import_provider28 = require("@ai-sdk/provider");
10558
- var name13 = "AI_NoSuchProviderError";
10559
- var marker13 = `vercel.ai.error.${name13}`;
10560
- var symbol13 = Symbol.for(marker13);
10561
- var _a13;
10562
- var NoSuchProviderError = class extends import_provider28.NoSuchModelError {
10742
+ var import_provider30 = require("@ai-sdk/provider");
10743
+ var name15 = "AI_NoSuchProviderError";
10744
+ var marker15 = `vercel.ai.error.${name15}`;
10745
+ var symbol15 = Symbol.for(marker15);
10746
+ var _a15;
10747
+ var NoSuchProviderError = class extends import_provider30.NoSuchModelError {
10563
10748
  constructor({
10564
10749
  modelId,
10565
10750
  modelType,
@@ -10567,19 +10752,19 @@ var NoSuchProviderError = class extends import_provider28.NoSuchModelError {
10567
10752
  availableProviders,
10568
10753
  message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
10569
10754
  }) {
10570
- super({ errorName: name13, modelId, modelType, message });
10571
- this[_a13] = true;
10755
+ super({ errorName: name15, modelId, modelType, message });
10756
+ this[_a15] = true;
10572
10757
  this.providerId = providerId;
10573
10758
  this.availableProviders = availableProviders;
10574
10759
  }
10575
10760
  static isInstance(error) {
10576
- return import_provider28.AISDKError.hasMarker(error, marker13);
10761
+ return import_provider30.AISDKError.hasMarker(error, marker15);
10577
10762
  }
10578
10763
  };
10579
- _a13 = symbol13;
10764
+ _a15 = symbol15;
10580
10765
 
10581
10766
  // src/registry/provider-registry.ts
10582
- var import_provider29 = require("@ai-sdk/provider");
10767
+ var import_provider31 = require("@ai-sdk/provider");
10583
10768
  function createProviderRegistry(providers, {
10584
10769
  separator = ":",
10585
10770
  languageModelMiddleware
@@ -10624,7 +10809,7 @@ var DefaultProviderRegistry = class {
10624
10809
  splitId(id, modelType) {
10625
10810
  const index = id.indexOf(this.separator);
10626
10811
  if (index === -1) {
10627
- throw new import_provider29.NoSuchModelError({
10812
+ throw new import_provider31.NoSuchModelError({
10628
10813
  modelId: id,
10629
10814
  modelType,
10630
10815
  message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
@@ -10633,14 +10818,14 @@ var DefaultProviderRegistry = class {
10633
10818
  return [id.slice(0, index), id.slice(index + this.separator.length)];
10634
10819
  }
10635
10820
  languageModel(id) {
10636
- var _a14, _b;
10821
+ var _a16, _b;
10637
10822
  const [providerId, modelId] = this.splitId(id, "languageModel");
10638
- let model = (_b = (_a14 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
10639
- _a14,
10823
+ let model = (_b = (_a16 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
10824
+ _a16,
10640
10825
  modelId
10641
10826
  );
10642
10827
  if (model == null) {
10643
- throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "languageModel" });
10828
+ throw new import_provider31.NoSuchModelError({ modelId: id, modelType: "languageModel" });
10644
10829
  }
10645
10830
  if (this.languageModelMiddleware != null) {
10646
10831
  model = wrapLanguageModel({
@@ -10651,12 +10836,12 @@ var DefaultProviderRegistry = class {
10651
10836
  return model;
10652
10837
  }
10653
10838
  embeddingModel(id) {
10654
- var _a14;
10839
+ var _a16;
10655
10840
  const [providerId, modelId] = this.splitId(id, "embeddingModel");
10656
10841
  const provider = this.getProvider(providerId, "embeddingModel");
10657
- const model = (_a14 = provider.embeddingModel) == null ? void 0 : _a14.call(provider, modelId);
10842
+ const model = (_a16 = provider.embeddingModel) == null ? void 0 : _a16.call(provider, modelId);
10658
10843
  if (model == null) {
10659
- throw new import_provider29.NoSuchModelError({
10844
+ throw new import_provider31.NoSuchModelError({
10660
10845
  modelId: id,
10661
10846
  modelType: "embeddingModel"
10662
10847
  });
@@ -10664,22 +10849,22 @@ var DefaultProviderRegistry = class {
10664
10849
  return model;
10665
10850
  }
10666
10851
  imageModel(id) {
10667
- var _a14;
10852
+ var _a16;
10668
10853
  const [providerId, modelId] = this.splitId(id, "imageModel");
10669
10854
  const provider = this.getProvider(providerId, "imageModel");
10670
- const model = (_a14 = provider.imageModel) == null ? void 0 : _a14.call(provider, modelId);
10855
+ const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
10671
10856
  if (model == null) {
10672
- throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "imageModel" });
10857
+ throw new import_provider31.NoSuchModelError({ modelId: id, modelType: "imageModel" });
10673
10858
  }
10674
10859
  return model;
10675
10860
  }
10676
10861
  transcriptionModel(id) {
10677
- var _a14;
10862
+ var _a16;
10678
10863
  const [providerId, modelId] = this.splitId(id, "transcriptionModel");
10679
10864
  const provider = this.getProvider(providerId, "transcriptionModel");
10680
- const model = (_a14 = provider.transcriptionModel) == null ? void 0 : _a14.call(provider, modelId);
10865
+ const model = (_a16 = provider.transcriptionModel) == null ? void 0 : _a16.call(provider, modelId);
10681
10866
  if (model == null) {
10682
- throw new import_provider29.NoSuchModelError({
10867
+ throw new import_provider31.NoSuchModelError({
10683
10868
  modelId: id,
10684
10869
  modelType: "transcriptionModel"
10685
10870
  });
@@ -10687,22 +10872,22 @@ var DefaultProviderRegistry = class {
10687
10872
  return model;
10688
10873
  }
10689
10874
  speechModel(id) {
10690
- var _a14;
10875
+ var _a16;
10691
10876
  const [providerId, modelId] = this.splitId(id, "speechModel");
10692
10877
  const provider = this.getProvider(providerId, "speechModel");
10693
- const model = (_a14 = provider.speechModel) == null ? void 0 : _a14.call(provider, modelId);
10878
+ const model = (_a16 = provider.speechModel) == null ? void 0 : _a16.call(provider, modelId);
10694
10879
  if (model == null) {
10695
- throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "speechModel" });
10880
+ throw new import_provider31.NoSuchModelError({ modelId: id, modelType: "speechModel" });
10696
10881
  }
10697
10882
  return model;
10698
10883
  }
10699
10884
  rerankingModel(id) {
10700
- var _a14;
10885
+ var _a16;
10701
10886
  const [providerId, modelId] = this.splitId(id, "rerankingModel");
10702
10887
  const provider = this.getProvider(providerId, "rerankingModel");
10703
- const model = (_a14 = provider.rerankingModel) == null ? void 0 : _a14.call(provider, modelId);
10888
+ const model = (_a16 = provider.rerankingModel) == null ? void 0 : _a16.call(provider, modelId);
10704
10889
  if (model == null) {
10705
- throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "rerankingModel" });
10890
+ throw new import_provider31.NoSuchModelError({ modelId: id, modelType: "rerankingModel" });
10706
10891
  }
10707
10892
  return model;
10708
10893
  }
@@ -10757,7 +10942,7 @@ async function rerank({
10757
10942
  }),
10758
10943
  tracer,
10759
10944
  fn: async () => {
10760
- var _a14, _b;
10945
+ var _a16, _b;
10761
10946
  const { ranking, response, providerMetadata, warnings } = await retry(
10762
10947
  () => recordSpan({
10763
10948
  name: "ai.rerank.doRerank",
@@ -10821,7 +11006,7 @@ async function rerank({
10821
11006
  providerMetadata,
10822
11007
  response: {
10823
11008
  id: response == null ? void 0 : response.id,
10824
- timestamp: (_a14 = response == null ? void 0 : response.timestamp) != null ? _a14 : /* @__PURE__ */ new Date(),
11009
+ timestamp: (_a16 = response == null ? void 0 : response.timestamp) != null ? _a16 : /* @__PURE__ */ new Date(),
10825
11010
  modelId: (_b = response == null ? void 0 : response.modelId) != null ? _b : model.modelId,
10826
11011
  headers: response == null ? void 0 : response.headers,
10827
11012
  body: response == null ? void 0 : response.body
@@ -10846,8 +11031,8 @@ var DefaultRerankResult = class {
10846
11031
  var import_provider_utils33 = require("@ai-sdk/provider-utils");
10847
11032
 
10848
11033
  // src/error/no-transcript-generated-error.ts
10849
- var import_provider30 = require("@ai-sdk/provider");
10850
- var NoTranscriptGeneratedError = class extends import_provider30.AISDKError {
11034
+ var import_provider32 = require("@ai-sdk/provider");
11035
+ var NoTranscriptGeneratedError = class extends import_provider32.AISDKError {
10851
11036
  constructor(options) {
10852
11037
  super({
10853
11038
  name: "AI_NoTranscriptGeneratedError",
@@ -10881,16 +11066,16 @@ async function transcribe({
10881
11066
  const audioData = audio instanceof URL ? (await download({ url: audio })).data : convertDataContentToUint8Array(audio);
10882
11067
  const result = await retry(
10883
11068
  () => {
10884
- var _a14;
11069
+ var _a16;
10885
11070
  return resolvedModel.doGenerate({
10886
11071
  audio: audioData,
10887
11072
  abortSignal,
10888
11073
  headers: headersWithUserAgent,
10889
11074
  providerOptions,
10890
- mediaType: (_a14 = detectMediaType({
11075
+ mediaType: (_a16 = detectMediaType({
10891
11076
  data: audioData,
10892
11077
  signatures: audioMediaTypeSignatures
10893
- })) != null ? _a14 : "audio/wav"
11078
+ })) != null ? _a16 : "audio/wav"
10894
11079
  });
10895
11080
  }
10896
11081
  );
@@ -10914,14 +11099,14 @@ async function transcribe({
10914
11099
  }
10915
11100
  var DefaultTranscriptionResult = class {
10916
11101
  constructor(options) {
10917
- var _a14;
11102
+ var _a16;
10918
11103
  this.text = options.text;
10919
11104
  this.segments = options.segments;
10920
11105
  this.language = options.language;
10921
11106
  this.durationInSeconds = options.durationInSeconds;
10922
11107
  this.warnings = options.warnings;
10923
11108
  this.responses = options.responses;
10924
- this.providerMetadata = (_a14 = options.providerMetadata) != null ? _a14 : {};
11109
+ this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
10925
11110
  }
10926
11111
  };
10927
11112
 
@@ -10960,7 +11145,7 @@ async function callCompletionApi({
10960
11145
  onError,
10961
11146
  fetch: fetch2 = getOriginalFetch()
10962
11147
  }) {
10963
- var _a14;
11148
+ var _a16;
10964
11149
  try {
10965
11150
  setLoading(true);
10966
11151
  setError(void 0);
@@ -10988,7 +11173,7 @@ async function callCompletionApi({
10988
11173
  });
10989
11174
  if (!response.ok) {
10990
11175
  throw new Error(
10991
- (_a14 = await response.text()) != null ? _a14 : "Failed to fetch the chat response."
11176
+ (_a16 = await response.text()) != null ? _a16 : "Failed to fetch the chat response."
10992
11177
  );
10993
11178
  }
10994
11179
  if (!response.body) {
@@ -11072,12 +11257,12 @@ async function convertFileListToFileUIParts(files) {
11072
11257
  }
11073
11258
  return Promise.all(
11074
11259
  Array.from(files).map(async (file) => {
11075
- const { name: name14, type } = file;
11260
+ const { name: name16, type } = file;
11076
11261
  const dataUrl = await new Promise((resolve3, reject) => {
11077
11262
  const reader = new FileReader();
11078
11263
  reader.onload = (readerEvent) => {
11079
- var _a14;
11080
- resolve3((_a14 = readerEvent.target) == null ? void 0 : _a14.result);
11264
+ var _a16;
11265
+ resolve3((_a16 = readerEvent.target) == null ? void 0 : _a16.result);
11081
11266
  };
11082
11267
  reader.onerror = (error) => reject(error);
11083
11268
  reader.readAsDataURL(file);
@@ -11085,7 +11270,7 @@ async function convertFileListToFileUIParts(files) {
11085
11270
  return {
11086
11271
  type: "file",
11087
11272
  mediaType: type,
11088
- filename: name14,
11273
+ filename: name16,
11089
11274
  url: dataUrl
11090
11275
  };
11091
11276
  })
@@ -11119,7 +11304,7 @@ var HttpChatTransport = class {
11119
11304
  abortSignal,
11120
11305
  ...options
11121
11306
  }) {
11122
- var _a14, _b, _c, _d, _e;
11307
+ var _a16, _b, _c, _d, _e;
11123
11308
  const resolvedBody = await (0, import_provider_utils35.resolve)(this.body);
11124
11309
  const resolvedHeaders = await (0, import_provider_utils35.resolve)(this.headers);
11125
11310
  const resolvedCredentials = await (0, import_provider_utils35.resolve)(this.credentials);
@@ -11127,7 +11312,7 @@ var HttpChatTransport = class {
11127
11312
  ...(0, import_provider_utils35.normalizeHeaders)(resolvedHeaders),
11128
11313
  ...(0, import_provider_utils35.normalizeHeaders)(options.headers)
11129
11314
  };
11130
- const preparedRequest = await ((_a14 = this.prepareSendMessagesRequest) == null ? void 0 : _a14.call(this, {
11315
+ const preparedRequest = await ((_a16 = this.prepareSendMessagesRequest) == null ? void 0 : _a16.call(this, {
11131
11316
  api: this.api,
11132
11317
  id: options.chatId,
11133
11318
  messages: options.messages,
@@ -11175,7 +11360,7 @@ var HttpChatTransport = class {
11175
11360
  return this.processResponseStream(response.body);
11176
11361
  }
11177
11362
  async reconnectToStream(options) {
11178
- var _a14, _b, _c, _d, _e;
11363
+ var _a16, _b, _c, _d, _e;
11179
11364
  const resolvedBody = await (0, import_provider_utils35.resolve)(this.body);
11180
11365
  const resolvedHeaders = await (0, import_provider_utils35.resolve)(this.headers);
11181
11366
  const resolvedCredentials = await (0, import_provider_utils35.resolve)(this.credentials);
@@ -11183,7 +11368,7 @@ var HttpChatTransport = class {
11183
11368
  ...(0, import_provider_utils35.normalizeHeaders)(resolvedHeaders),
11184
11369
  ...(0, import_provider_utils35.normalizeHeaders)(options.headers)
11185
11370
  };
11186
- const preparedRequest = await ((_a14 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a14.call(this, {
11371
+ const preparedRequest = await ((_a16 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a16.call(this, {
11187
11372
  api: this.api,
11188
11373
  id: options.chatId,
11189
11374
  body: { ...resolvedBody, ...options.body },
@@ -11265,11 +11450,11 @@ var AbstractChat = class {
11265
11450
  * If a messageId is provided, the message will be replaced.
11266
11451
  */
11267
11452
  this.sendMessage = async (message, options) => {
11268
- var _a14, _b, _c, _d;
11453
+ var _a16, _b, _c, _d;
11269
11454
  if (message == null) {
11270
11455
  await this.makeRequest({
11271
11456
  trigger: "submit-message",
11272
- messageId: (_a14 = this.lastMessage) == null ? void 0 : _a14.id,
11457
+ messageId: (_a16 = this.lastMessage) == null ? void 0 : _a16.id,
11273
11458
  ...options
11274
11459
  });
11275
11460
  return;
@@ -11362,7 +11547,7 @@ var AbstractChat = class {
11362
11547
  approved,
11363
11548
  reason
11364
11549
  }) => this.jobExecutor.run(async () => {
11365
- var _a14, _b;
11550
+ var _a16, _b;
11366
11551
  const messages = this.state.messages;
11367
11552
  const lastMessage = messages[messages.length - 1];
11368
11553
  const updatePart = (part) => isToolUIPart(part) && part.state === "approval-requested" && part.approval.id === id ? {
@@ -11377,7 +11562,7 @@ var AbstractChat = class {
11377
11562
  if (this.activeResponse) {
11378
11563
  this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(updatePart);
11379
11564
  }
11380
- if (this.status !== "streaming" && this.status !== "submitted" && ((_a14 = this.sendAutomaticallyWhen) == null ? void 0 : _a14.call(this, { messages: this.state.messages }))) {
11565
+ if (this.status !== "streaming" && this.status !== "submitted" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) {
11381
11566
  this.makeRequest({
11382
11567
  trigger: "submit-message",
11383
11568
  messageId: (_b = this.lastMessage) == null ? void 0 : _b.id
@@ -11391,7 +11576,7 @@ var AbstractChat = class {
11391
11576
  output,
11392
11577
  errorText
11393
11578
  }) => this.jobExecutor.run(async () => {
11394
- var _a14, _b;
11579
+ var _a16, _b;
11395
11580
  const messages = this.state.messages;
11396
11581
  const lastMessage = messages[messages.length - 1];
11397
11582
  const updatePart = (part) => isToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state, output, errorText } : part;
@@ -11402,7 +11587,7 @@ var AbstractChat = class {
11402
11587
  if (this.activeResponse) {
11403
11588
  this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(updatePart);
11404
11589
  }
11405
- if (this.status !== "streaming" && this.status !== "submitted" && ((_a14 = this.sendAutomaticallyWhen) == null ? void 0 : _a14.call(this, { messages: this.state.messages }))) {
11590
+ if (this.status !== "streaming" && this.status !== "submitted" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) {
11406
11591
  this.makeRequest({
11407
11592
  trigger: "submit-message",
11408
11593
  messageId: (_b = this.lastMessage) == null ? void 0 : _b.id
@@ -11415,10 +11600,10 @@ var AbstractChat = class {
11415
11600
  * Abort the current request immediately, keep the generated tokens if any.
11416
11601
  */
11417
11602
  this.stop = async () => {
11418
- var _a14;
11603
+ var _a16;
11419
11604
  if (this.status !== "streaming" && this.status !== "submitted")
11420
11605
  return;
11421
- if ((_a14 = this.activeResponse) == null ? void 0 : _a14.abortController) {
11606
+ if ((_a16 = this.activeResponse) == null ? void 0 : _a16.abortController) {
11422
11607
  this.activeResponse.abortController.abort();
11423
11608
  }
11424
11609
  };
@@ -11473,7 +11658,7 @@ var AbstractChat = class {
11473
11658
  body,
11474
11659
  messageId
11475
11660
  }) {
11476
- var _a14, _b, _c, _d;
11661
+ var _a16, _b, _c, _d;
11477
11662
  this.setStatus({ status: "submitted", error: void 0 });
11478
11663
  const lastMessage = this.lastMessage;
11479
11664
  let isAbort = false;
@@ -11522,9 +11707,9 @@ var AbstractChat = class {
11522
11707
  () => job({
11523
11708
  state: activeResponse.state,
11524
11709
  write: () => {
11525
- var _a15;
11710
+ var _a17;
11526
11711
  this.setStatus({ status: "streaming" });
11527
- const replaceLastMessage = activeResponse.state.message.id === ((_a15 = this.lastMessage) == null ? void 0 : _a15.id);
11712
+ const replaceLastMessage = activeResponse.state.message.id === ((_a17 = this.lastMessage) == null ? void 0 : _a17.id);
11528
11713
  if (replaceLastMessage) {
11529
11714
  this.state.replaceMessage(
11530
11715
  this.state.messages.length - 1,
@@ -11576,7 +11761,7 @@ var AbstractChat = class {
11576
11761
  isAbort,
11577
11762
  isDisconnect,
11578
11763
  isError,
11579
- finishReason: (_a14 = this.activeResponse) == null ? void 0 : _a14.state.finishReason
11764
+ finishReason: (_a16 = this.activeResponse) == null ? void 0 : _a16.state.finishReason
11580
11765
  });
11581
11766
  } catch (err) {
11582
11767
  console.error(err);
@@ -11689,6 +11874,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
11689
11874
  InvalidPromptError,
11690
11875
  InvalidResponseDataError,
11691
11876
  InvalidStreamPartError,
11877
+ InvalidToolApprovalError,
11692
11878
  InvalidToolInputError,
11693
11879
  JSONParseError,
11694
11880
  JsonToSseTransformStream,
@@ -11708,6 +11894,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
11708
11894
  SerialJobExecutor,
11709
11895
  TextStreamChatTransport,
11710
11896
  TooManyEmbeddingValuesForCallError,
11897
+ ToolCallNotFoundForApprovalError,
11711
11898
  ToolCallRepairError,
11712
11899
  ToolLoopAgent,
11713
11900
  TypeValidationError,