ai 6.0.201 → 6.0.202

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.mjs CHANGED
@@ -1,13 +1,13 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __export = (target, all) => {
3
- for (var name21 in all)
4
- __defProp(target, name21, { get: all[name21], enumerable: true });
3
+ for (var name22 in all)
4
+ __defProp(target, name22, { get: all[name22], enumerable: true });
5
5
  };
6
6
 
7
7
  // src/index.ts
8
8
  import { createGateway, gateway as gateway2 } from "@ai-sdk/gateway";
9
9
  import {
10
- asSchema as asSchema5,
10
+ asSchema as asSchema6,
11
11
  createIdGenerator as createIdGenerator5,
12
12
  dynamicTool,
13
13
  generateId,
@@ -29,7 +29,7 @@ import {
29
29
 
30
30
  // src/error/index.ts
31
31
  import {
32
- AISDKError as AISDKError21,
32
+ AISDKError as AISDKError22,
33
33
  APICallError,
34
34
  EmptyResponseBodyError,
35
35
  InvalidPromptError,
@@ -112,23 +112,25 @@ var InvalidToolApprovalError = class extends AISDKError3 {
112
112
  };
113
113
  _a3 = symbol3;
114
114
 
115
- // src/error/invalid-tool-input-error.ts
116
- import { AISDKError as AISDKError4, getErrorMessage } from "@ai-sdk/provider";
117
- var name4 = "AI_InvalidToolInputError";
115
+ // src/error/invalid-tool-approval-signature-error.ts
116
+ import { AISDKError as AISDKError4 } from "@ai-sdk/provider";
117
+ var name4 = "AI_InvalidToolApprovalSignatureError";
118
118
  var marker4 = `vercel.ai.error.${name4}`;
119
119
  var symbol4 = Symbol.for(marker4);
120
120
  var _a4;
121
- var InvalidToolInputError = class extends AISDKError4 {
121
+ var InvalidToolApprovalSignatureError = class extends AISDKError4 {
122
122
  constructor({
123
- toolInput,
124
- toolName,
125
- cause,
126
- message = `Invalid input for tool ${toolName}: ${getErrorMessage(cause)}`
123
+ approvalId,
124
+ toolCallId,
125
+ reason
127
126
  }) {
128
- super({ name: name4, message, cause });
127
+ super({
128
+ name: name4,
129
+ message: `Tool approval signature verification failed for approval "${approvalId}" (tool call "${toolCallId}"): ${reason}`
130
+ });
129
131
  this[_a4] = true;
130
- this.toolInput = toolInput;
131
- this.toolName = toolName;
132
+ this.approvalId = approvalId;
133
+ this.toolCallId = toolCallId;
132
134
  }
133
135
  static isInstance(error) {
134
136
  return AISDKError4.hasMarker(error, marker4);
@@ -136,24 +138,23 @@ var InvalidToolInputError = class extends AISDKError4 {
136
138
  };
137
139
  _a4 = symbol4;
138
140
 
139
- // src/error/tool-call-not-found-for-approval-error.ts
140
- import { AISDKError as AISDKError5 } from "@ai-sdk/provider";
141
- var name5 = "AI_ToolCallNotFoundForApprovalError";
141
+ // src/error/invalid-tool-input-error.ts
142
+ import { AISDKError as AISDKError5, getErrorMessage } from "@ai-sdk/provider";
143
+ var name5 = "AI_InvalidToolInputError";
142
144
  var marker5 = `vercel.ai.error.${name5}`;
143
145
  var symbol5 = Symbol.for(marker5);
144
146
  var _a5;
145
- var ToolCallNotFoundForApprovalError = class extends AISDKError5 {
147
+ var InvalidToolInputError = class extends AISDKError5 {
146
148
  constructor({
147
- toolCallId,
148
- approvalId
149
+ toolInput,
150
+ toolName,
151
+ cause,
152
+ message = `Invalid input for tool ${toolName}: ${getErrorMessage(cause)}`
149
153
  }) {
150
- super({
151
- name: name5,
152
- message: `Tool call "${toolCallId}" not found for approval request "${approvalId}".`
153
- });
154
+ super({ name: name5, message, cause });
154
155
  this[_a5] = true;
155
- this.toolCallId = toolCallId;
156
- this.approvalId = approvalId;
156
+ this.toolInput = toolInput;
157
+ this.toolName = toolName;
157
158
  }
158
159
  static isInstance(error) {
159
160
  return AISDKError5.hasMarker(error, marker5);
@@ -161,22 +162,24 @@ var ToolCallNotFoundForApprovalError = class extends AISDKError5 {
161
162
  };
162
163
  _a5 = symbol5;
163
164
 
164
- // src/error/missing-tool-result-error.ts
165
+ // src/error/tool-call-not-found-for-approval-error.ts
165
166
  import { AISDKError as AISDKError6 } from "@ai-sdk/provider";
166
- var name6 = "AI_MissingToolResultsError";
167
+ var name6 = "AI_ToolCallNotFoundForApprovalError";
167
168
  var marker6 = `vercel.ai.error.${name6}`;
168
169
  var symbol6 = Symbol.for(marker6);
169
170
  var _a6;
170
- var MissingToolResultsError = class extends AISDKError6 {
171
- constructor({ toolCallIds }) {
171
+ var ToolCallNotFoundForApprovalError = class extends AISDKError6 {
172
+ constructor({
173
+ toolCallId,
174
+ approvalId
175
+ }) {
172
176
  super({
173
177
  name: name6,
174
- message: `Tool result${toolCallIds.length > 1 ? "s are" : " is"} missing for tool call${toolCallIds.length > 1 ? "s" : ""} ${toolCallIds.join(
175
- ", "
176
- )}.`
178
+ message: `Tool call "${toolCallId}" not found for approval request "${approvalId}".`
177
179
  });
178
180
  this[_a6] = true;
179
- this.toolCallIds = toolCallIds;
181
+ this.toolCallId = toolCallId;
182
+ this.approvalId = approvalId;
180
183
  }
181
184
  static isInstance(error) {
182
185
  return AISDKError6.hasMarker(error, marker6);
@@ -184,21 +187,22 @@ var MissingToolResultsError = class extends AISDKError6 {
184
187
  };
185
188
  _a6 = symbol6;
186
189
 
187
- // src/error/no-image-generated-error.ts
190
+ // src/error/missing-tool-result-error.ts
188
191
  import { AISDKError as AISDKError7 } from "@ai-sdk/provider";
189
- var name7 = "AI_NoImageGeneratedError";
192
+ var name7 = "AI_MissingToolResultsError";
190
193
  var marker7 = `vercel.ai.error.${name7}`;
191
194
  var symbol7 = Symbol.for(marker7);
192
195
  var _a7;
193
- var NoImageGeneratedError = class extends AISDKError7 {
194
- constructor({
195
- message = "No image generated.",
196
- cause,
197
- responses
198
- }) {
199
- super({ name: name7, message, cause });
196
+ var MissingToolResultsError = class extends AISDKError7 {
197
+ constructor({ toolCallIds }) {
198
+ super({
199
+ name: name7,
200
+ message: `Tool result${toolCallIds.length > 1 ? "s are" : " is"} missing for tool call${toolCallIds.length > 1 ? "s" : ""} ${toolCallIds.join(
201
+ ", "
202
+ )}.`
203
+ });
200
204
  this[_a7] = true;
201
- this.responses = responses;
205
+ this.toolCallIds = toolCallIds;
202
206
  }
203
207
  static isInstance(error) {
204
208
  return AISDKError7.hasMarker(error, marker7);
@@ -206,27 +210,21 @@ var NoImageGeneratedError = class extends AISDKError7 {
206
210
  };
207
211
  _a7 = symbol7;
208
212
 
209
- // src/error/no-object-generated-error.ts
213
+ // src/error/no-image-generated-error.ts
210
214
  import { AISDKError as AISDKError8 } from "@ai-sdk/provider";
211
- var name8 = "AI_NoObjectGeneratedError";
215
+ var name8 = "AI_NoImageGeneratedError";
212
216
  var marker8 = `vercel.ai.error.${name8}`;
213
217
  var symbol8 = Symbol.for(marker8);
214
218
  var _a8;
215
- var NoObjectGeneratedError = class extends AISDKError8 {
219
+ var NoImageGeneratedError = class extends AISDKError8 {
216
220
  constructor({
217
- message = "No object generated.",
221
+ message = "No image generated.",
218
222
  cause,
219
- text: text2,
220
- response,
221
- usage,
222
- finishReason
223
+ responses
223
224
  }) {
224
225
  super({ name: name8, message, cause });
225
226
  this[_a8] = true;
226
- this.text = text2;
227
- this.response = response;
228
- this.usage = usage;
229
- this.finishReason = finishReason;
227
+ this.responses = responses;
230
228
  }
231
229
  static isInstance(error) {
232
230
  return AISDKError8.hasMarker(error, marker8);
@@ -234,20 +232,27 @@ var NoObjectGeneratedError = class extends AISDKError8 {
234
232
  };
235
233
  _a8 = symbol8;
236
234
 
237
- // src/error/no-output-generated-error.ts
235
+ // src/error/no-object-generated-error.ts
238
236
  import { AISDKError as AISDKError9 } from "@ai-sdk/provider";
239
- var name9 = "AI_NoOutputGeneratedError";
237
+ var name9 = "AI_NoObjectGeneratedError";
240
238
  var marker9 = `vercel.ai.error.${name9}`;
241
239
  var symbol9 = Symbol.for(marker9);
242
240
  var _a9;
243
- var NoOutputGeneratedError = class extends AISDKError9 {
244
- // used in isInstance
241
+ var NoObjectGeneratedError = class extends AISDKError9 {
245
242
  constructor({
246
- message = "No output generated.",
247
- cause
248
- } = {}) {
243
+ message = "No object generated.",
244
+ cause,
245
+ text: text2,
246
+ response,
247
+ usage,
248
+ finishReason
249
+ }) {
249
250
  super({ name: name9, message, cause });
250
251
  this[_a9] = true;
252
+ this.text = text2;
253
+ this.response = response;
254
+ this.usage = usage;
255
+ this.finishReason = finishReason;
251
256
  }
252
257
  static isInstance(error) {
253
258
  return AISDKError9.hasMarker(error, marker9);
@@ -255,20 +260,20 @@ var NoOutputGeneratedError = class extends AISDKError9 {
255
260
  };
256
261
  _a9 = symbol9;
257
262
 
258
- // src/error/no-speech-generated-error.ts
263
+ // src/error/no-output-generated-error.ts
259
264
  import { AISDKError as AISDKError10 } from "@ai-sdk/provider";
260
- var name10 = "AI_NoSpeechGeneratedError";
265
+ var name10 = "AI_NoOutputGeneratedError";
261
266
  var marker10 = `vercel.ai.error.${name10}`;
262
267
  var symbol10 = Symbol.for(marker10);
263
268
  var _a10;
264
- var NoSpeechGeneratedError = class extends AISDKError10 {
265
- constructor(options) {
266
- super({
267
- name: name10,
268
- message: "No speech audio generated."
269
- });
269
+ var NoOutputGeneratedError = class extends AISDKError10 {
270
+ // used in isInstance
271
+ constructor({
272
+ message = "No output generated.",
273
+ cause
274
+ } = {}) {
275
+ super({ name: name10, message, cause });
270
276
  this[_a10] = true;
271
- this.responses = options.responses;
272
277
  }
273
278
  static isInstance(error) {
274
279
  return AISDKError10.hasMarker(error, marker10);
@@ -276,17 +281,17 @@ var NoSpeechGeneratedError = class extends AISDKError10 {
276
281
  };
277
282
  _a10 = symbol10;
278
283
 
279
- // src/error/no-transcript-generated-error.ts
284
+ // src/error/no-speech-generated-error.ts
280
285
  import { AISDKError as AISDKError11 } from "@ai-sdk/provider";
281
- var name11 = "AI_NoTranscriptGeneratedError";
286
+ var name11 = "AI_NoSpeechGeneratedError";
282
287
  var marker11 = `vercel.ai.error.${name11}`;
283
288
  var symbol11 = Symbol.for(marker11);
284
289
  var _a11;
285
- var NoTranscriptGeneratedError = class extends AISDKError11 {
290
+ var NoSpeechGeneratedError = class extends AISDKError11 {
286
291
  constructor(options) {
287
292
  super({
288
293
  name: name11,
289
- message: "No transcript generated."
294
+ message: "No speech audio generated."
290
295
  });
291
296
  this[_a11] = true;
292
297
  this.responses = options.responses;
@@ -297,30 +302,51 @@ var NoTranscriptGeneratedError = class extends AISDKError11 {
297
302
  };
298
303
  _a11 = symbol11;
299
304
 
300
- // src/error/no-video-generated-error.ts
305
+ // src/error/no-transcript-generated-error.ts
301
306
  import { AISDKError as AISDKError12 } from "@ai-sdk/provider";
302
- var name12 = "AI_NoVideoGeneratedError";
307
+ var name12 = "AI_NoTranscriptGeneratedError";
303
308
  var marker12 = `vercel.ai.error.${name12}`;
304
309
  var symbol12 = Symbol.for(marker12);
305
310
  var _a12;
306
- var NoVideoGeneratedError = class extends AISDKError12 {
311
+ var NoTranscriptGeneratedError = class extends AISDKError12 {
312
+ constructor(options) {
313
+ super({
314
+ name: name12,
315
+ message: "No transcript generated."
316
+ });
317
+ this[_a12] = true;
318
+ this.responses = options.responses;
319
+ }
320
+ static isInstance(error) {
321
+ return AISDKError12.hasMarker(error, marker12);
322
+ }
323
+ };
324
+ _a12 = symbol12;
325
+
326
+ // src/error/no-video-generated-error.ts
327
+ import { AISDKError as AISDKError13 } from "@ai-sdk/provider";
328
+ var name13 = "AI_NoVideoGeneratedError";
329
+ var marker13 = `vercel.ai.error.${name13}`;
330
+ var symbol13 = Symbol.for(marker13);
331
+ var _a13;
332
+ var NoVideoGeneratedError = class extends AISDKError13 {
307
333
  constructor({
308
334
  message = "No video generated.",
309
335
  cause,
310
336
  responses
311
337
  }) {
312
- super({ name: name12, message, cause });
313
- this[_a12] = true;
338
+ super({ name: name13, message, cause });
339
+ this[_a13] = true;
314
340
  this.responses = responses;
315
341
  }
316
342
  static isInstance(error) {
317
- return AISDKError12.hasMarker(error, marker12);
343
+ return AISDKError13.hasMarker(error, marker13);
318
344
  }
319
345
  /**
320
346
  * @deprecated use `isInstance` instead
321
347
  */
322
348
  static isNoVideoGeneratedError(error) {
323
- return error instanceof Error && error.name === name12 && typeof error.responses !== "undefined" ? true : false;
349
+ return error instanceof Error && error.name === name13 && typeof error.responses !== "undefined" ? true : false;
324
350
  }
325
351
  /**
326
352
  * @deprecated Do not use this method. It will be removed in the next major version.
@@ -335,56 +361,56 @@ var NoVideoGeneratedError = class extends AISDKError12 {
335
361
  };
336
362
  }
337
363
  };
338
- _a12 = symbol12;
364
+ _a13 = symbol13;
339
365
 
340
366
  // src/error/no-such-tool-error.ts
341
- import { AISDKError as AISDKError13 } from "@ai-sdk/provider";
342
- var name13 = "AI_NoSuchToolError";
343
- var marker13 = `vercel.ai.error.${name13}`;
344
- var symbol13 = Symbol.for(marker13);
345
- var _a13;
346
- var NoSuchToolError = class extends AISDKError13 {
367
+ import { AISDKError as AISDKError14 } from "@ai-sdk/provider";
368
+ var name14 = "AI_NoSuchToolError";
369
+ var marker14 = `vercel.ai.error.${name14}`;
370
+ var symbol14 = Symbol.for(marker14);
371
+ var _a14;
372
+ var NoSuchToolError = class extends AISDKError14 {
347
373
  constructor({
348
374
  toolName,
349
375
  availableTools = void 0,
350
376
  message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
351
377
  }) {
352
- super({ name: name13, message });
353
- this[_a13] = true;
378
+ super({ name: name14, message });
379
+ this[_a14] = true;
354
380
  this.toolName = toolName;
355
381
  this.availableTools = availableTools;
356
382
  }
357
383
  static isInstance(error) {
358
- return AISDKError13.hasMarker(error, marker13);
384
+ return AISDKError14.hasMarker(error, marker14);
359
385
  }
360
386
  };
361
- _a13 = symbol13;
387
+ _a14 = symbol14;
362
388
 
363
389
  // src/error/tool-call-repair-error.ts
364
- import { AISDKError as AISDKError14, getErrorMessage as getErrorMessage2 } from "@ai-sdk/provider";
365
- var name14 = "AI_ToolCallRepairError";
366
- var marker14 = `vercel.ai.error.${name14}`;
367
- var symbol14 = Symbol.for(marker14);
368
- var _a14;
369
- var ToolCallRepairError = class extends AISDKError14 {
390
+ import { AISDKError as AISDKError15, getErrorMessage as getErrorMessage2 } from "@ai-sdk/provider";
391
+ var name15 = "AI_ToolCallRepairError";
392
+ var marker15 = `vercel.ai.error.${name15}`;
393
+ var symbol15 = Symbol.for(marker15);
394
+ var _a15;
395
+ var ToolCallRepairError = class extends AISDKError15 {
370
396
  constructor({
371
397
  cause,
372
398
  originalError,
373
399
  message = `Error repairing tool call: ${getErrorMessage2(cause)}`
374
400
  }) {
375
- super({ name: name14, message, cause });
376
- this[_a14] = true;
401
+ super({ name: name15, message, cause });
402
+ this[_a15] = true;
377
403
  this.originalError = originalError;
378
404
  }
379
405
  static isInstance(error) {
380
- return AISDKError14.hasMarker(error, marker14);
406
+ return AISDKError15.hasMarker(error, marker15);
381
407
  }
382
408
  };
383
- _a14 = symbol14;
409
+ _a15 = symbol15;
384
410
 
385
411
  // src/error/unsupported-model-version-error.ts
386
- import { AISDKError as AISDKError15 } from "@ai-sdk/provider";
387
- var UnsupportedModelVersionError = class extends AISDKError15 {
412
+ import { AISDKError as AISDKError16 } from "@ai-sdk/provider";
413
+ var UnsupportedModelVersionError = class extends AISDKError16 {
388
414
  constructor(options) {
389
415
  super({
390
416
  name: "AI_UnsupportedModelVersionError",
@@ -397,118 +423,118 @@ var UnsupportedModelVersionError = class extends AISDKError15 {
397
423
  };
398
424
 
399
425
  // src/error/ui-message-stream-error.ts
400
- import { AISDKError as AISDKError16 } from "@ai-sdk/provider";
401
- var name15 = "AI_UIMessageStreamError";
402
- var marker15 = `vercel.ai.error.${name15}`;
403
- var symbol15 = Symbol.for(marker15);
404
- var _a15;
405
- var UIMessageStreamError = class extends AISDKError16 {
426
+ import { AISDKError as AISDKError17 } from "@ai-sdk/provider";
427
+ var name16 = "AI_UIMessageStreamError";
428
+ var marker16 = `vercel.ai.error.${name16}`;
429
+ var symbol16 = Symbol.for(marker16);
430
+ var _a16;
431
+ var UIMessageStreamError = class extends AISDKError17 {
406
432
  constructor({
407
433
  chunkType,
408
434
  chunkId,
409
435
  message
410
436
  }) {
411
- super({ name: name15, message });
412
- this[_a15] = true;
437
+ super({ name: name16, message });
438
+ this[_a16] = true;
413
439
  this.chunkType = chunkType;
414
440
  this.chunkId = chunkId;
415
441
  }
416
442
  static isInstance(error) {
417
- return AISDKError16.hasMarker(error, marker15);
443
+ return AISDKError17.hasMarker(error, marker16);
418
444
  }
419
445
  };
420
- _a15 = symbol15;
446
+ _a16 = symbol16;
421
447
 
422
448
  // src/prompt/invalid-data-content-error.ts
423
- import { AISDKError as AISDKError17 } from "@ai-sdk/provider";
424
- var name16 = "AI_InvalidDataContentError";
425
- var marker16 = `vercel.ai.error.${name16}`;
426
- var symbol16 = Symbol.for(marker16);
427
- var _a16;
428
- var InvalidDataContentError = class extends AISDKError17 {
449
+ import { AISDKError as AISDKError18 } from "@ai-sdk/provider";
450
+ var name17 = "AI_InvalidDataContentError";
451
+ var marker17 = `vercel.ai.error.${name17}`;
452
+ var symbol17 = Symbol.for(marker17);
453
+ var _a17;
454
+ var InvalidDataContentError = class extends AISDKError18 {
429
455
  constructor({
430
456
  content,
431
457
  cause,
432
458
  message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
433
459
  }) {
434
- super({ name: name16, message, cause });
435
- this[_a16] = true;
460
+ super({ name: name17, message, cause });
461
+ this[_a17] = true;
436
462
  this.content = content;
437
463
  }
438
464
  static isInstance(error) {
439
- return AISDKError17.hasMarker(error, marker16);
465
+ return AISDKError18.hasMarker(error, marker17);
440
466
  }
441
467
  };
442
- _a16 = symbol16;
468
+ _a17 = symbol17;
443
469
 
444
470
  // src/prompt/invalid-message-role-error.ts
445
- import { AISDKError as AISDKError18 } from "@ai-sdk/provider";
446
- var name17 = "AI_InvalidMessageRoleError";
447
- var marker17 = `vercel.ai.error.${name17}`;
448
- var symbol17 = Symbol.for(marker17);
449
- var _a17;
450
- var InvalidMessageRoleError = class extends AISDKError18 {
471
+ import { AISDKError as AISDKError19 } from "@ai-sdk/provider";
472
+ var name18 = "AI_InvalidMessageRoleError";
473
+ var marker18 = `vercel.ai.error.${name18}`;
474
+ var symbol18 = Symbol.for(marker18);
475
+ var _a18;
476
+ var InvalidMessageRoleError = class extends AISDKError19 {
451
477
  constructor({
452
478
  role,
453
479
  message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
454
480
  }) {
455
- super({ name: name17, message });
456
- this[_a17] = true;
481
+ super({ name: name18, message });
482
+ this[_a18] = true;
457
483
  this.role = role;
458
484
  }
459
485
  static isInstance(error) {
460
- return AISDKError18.hasMarker(error, marker17);
486
+ return AISDKError19.hasMarker(error, marker18);
461
487
  }
462
488
  };
463
- _a17 = symbol17;
489
+ _a18 = symbol18;
464
490
 
465
491
  // src/prompt/message-conversion-error.ts
466
- import { AISDKError as AISDKError19 } from "@ai-sdk/provider";
467
- var name18 = "AI_MessageConversionError";
468
- var marker18 = `vercel.ai.error.${name18}`;
469
- var symbol18 = Symbol.for(marker18);
470
- var _a18;
471
- var MessageConversionError = class extends AISDKError19 {
492
+ import { AISDKError as AISDKError20 } from "@ai-sdk/provider";
493
+ var name19 = "AI_MessageConversionError";
494
+ var marker19 = `vercel.ai.error.${name19}`;
495
+ var symbol19 = Symbol.for(marker19);
496
+ var _a19;
497
+ var MessageConversionError = class extends AISDKError20 {
472
498
  constructor({
473
499
  originalMessage,
474
500
  message
475
501
  }) {
476
- super({ name: name18, message });
477
- this[_a18] = true;
502
+ super({ name: name19, message });
503
+ this[_a19] = true;
478
504
  this.originalMessage = originalMessage;
479
505
  }
480
506
  static isInstance(error) {
481
- return AISDKError19.hasMarker(error, marker18);
507
+ return AISDKError20.hasMarker(error, marker19);
482
508
  }
483
509
  };
484
- _a18 = symbol18;
510
+ _a19 = symbol19;
485
511
 
486
512
  // src/error/index.ts
487
513
  import { DownloadError } from "@ai-sdk/provider-utils";
488
514
 
489
515
  // src/util/retry-error.ts
490
- import { AISDKError as AISDKError20 } from "@ai-sdk/provider";
491
- var name19 = "AI_RetryError";
492
- var marker19 = `vercel.ai.error.${name19}`;
493
- var symbol19 = Symbol.for(marker19);
494
- var _a19;
495
- var RetryError = class extends AISDKError20 {
516
+ import { AISDKError as AISDKError21 } from "@ai-sdk/provider";
517
+ var name20 = "AI_RetryError";
518
+ var marker20 = `vercel.ai.error.${name20}`;
519
+ var symbol20 = Symbol.for(marker20);
520
+ var _a20;
521
+ var RetryError = class extends AISDKError21 {
496
522
  constructor({
497
523
  message,
498
524
  reason,
499
525
  errors
500
526
  }) {
501
- super({ name: name19, message });
502
- this[_a19] = true;
527
+ super({ name: name20, message });
528
+ this[_a20] = true;
503
529
  this.reason = reason;
504
530
  this.errors = errors;
505
531
  this.lastError = errors[errors.length - 1];
506
532
  }
507
533
  static isInstance(error) {
508
- return AISDKError20.hasMarker(error, marker19);
534
+ return AISDKError21.hasMarker(error, marker20);
509
535
  }
510
536
  };
511
- _a19 = symbol19;
537
+ _a20 = symbol20;
512
538
 
513
539
  // src/util/as-array.ts
514
540
  function asArray(value) {
@@ -788,7 +814,7 @@ function resolveEmbeddingModel(model) {
788
814
  return getGlobalProvider().embeddingModel(model);
789
815
  }
790
816
  function resolveTranscriptionModel(model) {
791
- var _a21, _b;
817
+ var _a22, _b;
792
818
  if (typeof model !== "string") {
793
819
  if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
794
820
  const unsupportedModel = model;
@@ -800,10 +826,10 @@ function resolveTranscriptionModel(model) {
800
826
  }
801
827
  return asTranscriptionModelV3(model);
802
828
  }
803
- return (_b = (_a21 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b.call(_a21, model);
829
+ return (_b = (_a22 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b.call(_a22, model);
804
830
  }
805
831
  function resolveSpeechModel(model) {
806
- var _a21, _b;
832
+ var _a22, _b;
807
833
  if (typeof model !== "string") {
808
834
  if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
809
835
  const unsupportedModel = model;
@@ -815,7 +841,7 @@ function resolveSpeechModel(model) {
815
841
  }
816
842
  return asSpeechModelV3(model);
817
843
  }
818
- return (_b = (_a21 = getGlobalProvider()).speechModel) == null ? void 0 : _b.call(_a21, model);
844
+ return (_b = (_a22 = getGlobalProvider()).speechModel) == null ? void 0 : _b.call(_a22, model);
819
845
  }
820
846
  function resolveImageModel(model) {
821
847
  if (typeof model !== "string") {
@@ -874,8 +900,8 @@ function resolveRerankingModel(model) {
874
900
  return model;
875
901
  }
876
902
  function getGlobalProvider() {
877
- var _a21;
878
- return (_a21 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a21 : gateway;
903
+ var _a22;
904
+ return (_a22 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a22 : gateway;
879
905
  }
880
906
 
881
907
  // src/prompt/call-settings.ts
@@ -1144,7 +1170,7 @@ import {
1144
1170
  } from "@ai-sdk/provider-utils";
1145
1171
 
1146
1172
  // src/version.ts
1147
- var VERSION = true ? "6.0.201" : "0.0.0-test";
1173
+ var VERSION = true ? "6.0.202" : "0.0.0-test";
1148
1174
 
1149
1175
  // src/util/download/download.ts
1150
1176
  var download = async ({
@@ -1152,7 +1178,7 @@ var download = async ({
1152
1178
  maxBytes,
1153
1179
  abortSignal
1154
1180
  }) => {
1155
- var _a21;
1181
+ var _a22;
1156
1182
  const urlText = url.toString();
1157
1183
  validateDownloadUrl(urlText);
1158
1184
  try {
@@ -1181,7 +1207,7 @@ var download = async ({
1181
1207
  });
1182
1208
  return {
1183
1209
  data,
1184
- mediaType: (_a21 = response.headers.get("content-type")) != null ? _a21 : void 0
1210
+ mediaType: (_a22 = response.headers.get("content-type")) != null ? _a22 : void 0
1185
1211
  };
1186
1212
  } catch (error) {
1187
1213
  if (DownloadError2.isInstance(error)) {
@@ -1199,7 +1225,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
1199
1225
  );
1200
1226
 
1201
1227
  // src/prompt/data-content.ts
1202
- import { AISDKError as AISDKError22 } from "@ai-sdk/provider";
1228
+ import { AISDKError as AISDKError23 } from "@ai-sdk/provider";
1203
1229
  import {
1204
1230
  convertBase64ToUint8Array as convertBase64ToUint8Array2,
1205
1231
  convertUint8ArrayToBase64
@@ -1230,8 +1256,8 @@ var dataContentSchema = z.union([
1230
1256
  z.custom(
1231
1257
  // Buffer might not be available in some environments such as CloudFlare:
1232
1258
  (value) => {
1233
- var _a21, _b;
1234
- return (_b = (_a21 = globalThis.Buffer) == null ? void 0 : _a21.isBuffer(value)) != null ? _b : false;
1259
+ var _a22, _b;
1260
+ return (_b = (_a22 = globalThis.Buffer) == null ? void 0 : _a22.isBuffer(value)) != null ? _b : false;
1235
1261
  },
1236
1262
  { message: "Must be a Buffer" }
1237
1263
  )
@@ -1254,7 +1280,7 @@ function convertToLanguageModelV3DataContent(content) {
1254
1280
  content.toString()
1255
1281
  );
1256
1282
  if (dataUrlMediaType == null || base64Content == null) {
1257
- throw new AISDKError22({
1283
+ throw new AISDKError23({
1258
1284
  name: "InvalidDataContentError",
1259
1285
  message: `Invalid data URL format in content ${content.toString()}`
1260
1286
  });
@@ -1537,7 +1563,7 @@ function convertToLanguageModelMessage({
1537
1563
  }
1538
1564
  }
1539
1565
  async function downloadAssets(messages, download2, supportedUrls) {
1540
- var _a21;
1566
+ var _a22;
1541
1567
  const downloadableFiles = [];
1542
1568
  for (const message of messages) {
1543
1569
  if (message.role === "user" && Array.isArray(message.content)) {
@@ -1545,7 +1571,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
1545
1571
  if (part.type === "image" || part.type === "file") {
1546
1572
  downloadableFiles.push({
1547
1573
  data: part.type === "image" ? part.image : part.data,
1548
- mediaType: (_a21 = part.mediaType) != null ? _a21 : part.type === "image" ? "image/*" : void 0
1574
+ mediaType: (_a22 = part.mediaType) != null ? _a22 : part.type === "image" ? "image/*" : void 0
1549
1575
  });
1550
1576
  }
1551
1577
  }
@@ -1597,7 +1623,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
1597
1623
  );
1598
1624
  }
1599
1625
  function convertPartToLanguageModelPart(part, downloadedAssets) {
1600
- var _a21;
1626
+ var _a22;
1601
1627
  if (part.type === "text") {
1602
1628
  return {
1603
1629
  type: "text",
@@ -1630,7 +1656,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1630
1656
  switch (type) {
1631
1657
  case "image": {
1632
1658
  if (data instanceof Uint8Array || typeof data === "string") {
1633
- mediaType = (_a21 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a21 : mediaType;
1659
+ mediaType = (_a22 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a22 : mediaType;
1634
1660
  }
1635
1661
  return {
1636
1662
  type: "file",
@@ -1665,14 +1691,14 @@ function mapToolResultOutput({
1665
1691
  return {
1666
1692
  type: "content",
1667
1693
  value: output.value.map((item) => {
1668
- var _a21, _b;
1694
+ var _a22, _b;
1669
1695
  if (item.type === "image-url") {
1670
1696
  const downloadedFile = downloadedAssets[new URL(item.url).toString()];
1671
1697
  if (downloadedFile) {
1672
1698
  return {
1673
1699
  type: "image-data",
1674
1700
  data: convertDataContentToBase64String(downloadedFile.data),
1675
- mediaType: (_a21 = downloadedFile.mediaType) != null ? _a21 : "image/*",
1701
+ mediaType: (_a22 = downloadedFile.mediaType) != null ? _a22 : "image/*",
1676
1702
  providerOptions: item.providerOptions
1677
1703
  };
1678
1704
  }
@@ -1846,10 +1872,10 @@ async function prepareToolsAndToolChoice({
1846
1872
  };
1847
1873
  }
1848
1874
  const filteredTools = activeTools != null ? Object.entries(tools).filter(
1849
- ([name21]) => activeTools.includes(name21)
1875
+ ([name22]) => activeTools.includes(name22)
1850
1876
  ) : Object.entries(tools);
1851
1877
  const languageModelTools = [];
1852
- for (const [name21, tool2] of filteredTools) {
1878
+ for (const [name22, tool2] of filteredTools) {
1853
1879
  const toolType = tool2.type;
1854
1880
  switch (toolType) {
1855
1881
  case void 0:
@@ -1857,7 +1883,7 @@ async function prepareToolsAndToolChoice({
1857
1883
  case "function":
1858
1884
  languageModelTools.push({
1859
1885
  type: "function",
1860
- name: name21,
1886
+ name: name22,
1861
1887
  description: tool2.description,
1862
1888
  inputSchema: await asSchema(tool2.inputSchema).jsonSchema,
1863
1889
  ...tool2.inputExamples != null ? { inputExamples: tool2.inputExamples } : {},
@@ -1868,7 +1894,7 @@ async function prepareToolsAndToolChoice({
1868
1894
  case "provider":
1869
1895
  languageModelTools.push({
1870
1896
  type: "provider",
1871
- name: name21,
1897
+ name: name22,
1872
1898
  id: tool2.id,
1873
1899
  args: tool2.args
1874
1900
  });
@@ -2168,14 +2194,14 @@ async function standardizePrompt({
2168
2194
 
2169
2195
  // src/prompt/wrap-gateway-error.ts
2170
2196
  import { GatewayAuthenticationError } from "@ai-sdk/gateway";
2171
- import { AISDKError as AISDKError23 } from "@ai-sdk/provider";
2197
+ import { AISDKError as AISDKError24 } from "@ai-sdk/provider";
2172
2198
  function wrapGatewayError(error) {
2173
2199
  if (!GatewayAuthenticationError.isInstance(error))
2174
2200
  return error;
2175
2201
  const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
2176
2202
  const moreInfoURL = "https://ai-sdk.dev/unauthenticated-ai-gateway";
2177
2203
  if (isProductionEnv) {
2178
- return new AISDKError23({
2204
+ return new AISDKError24({
2179
2205
  name: "GatewayError",
2180
2206
  message: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`
2181
2207
  });
@@ -2216,7 +2242,7 @@ function getBaseTelemetryAttributes({
2216
2242
  telemetry,
2217
2243
  headers
2218
2244
  }) {
2219
- var _a21;
2245
+ var _a22;
2220
2246
  return {
2221
2247
  "ai.model.provider": model.provider,
2222
2248
  "ai.model.id": model.modelId,
@@ -2235,7 +2261,7 @@ function getBaseTelemetryAttributes({
2235
2261
  return attributes;
2236
2262
  }, {}),
2237
2263
  // add metadata as attributes:
2238
- ...Object.entries((_a21 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a21 : {}).reduce(
2264
+ ...Object.entries((_a22 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a22 : {}).reduce(
2239
2265
  (attributes, [key, value]) => {
2240
2266
  attributes[`ai.telemetry.metadata.${key}`] = value;
2241
2267
  return attributes;
@@ -2260,7 +2286,7 @@ var noopTracer = {
2260
2286
  startSpan() {
2261
2287
  return noopSpan;
2262
2288
  },
2263
- startActiveSpan(name21, arg1, arg2, arg3) {
2289
+ startActiveSpan(name22, arg1, arg2, arg3) {
2264
2290
  if (typeof arg1 === "function") {
2265
2291
  return arg1(noopSpan);
2266
2292
  }
@@ -2333,14 +2359,14 @@ import {
2333
2359
  context
2334
2360
  } from "@opentelemetry/api";
2335
2361
  async function recordSpan({
2336
- name: name21,
2362
+ name: name22,
2337
2363
  tracer,
2338
2364
  attributes,
2339
2365
  fn,
2340
2366
  endWhenDone = true
2341
2367
  }) {
2342
2368
  return tracer.startActiveSpan(
2343
- name21,
2369
+ name22,
2344
2370
  { attributes: await attributes },
2345
2371
  async (span) => {
2346
2372
  const ctx = context.active();
@@ -2438,15 +2464,15 @@ function registerTelemetryIntegration(integration) {
2438
2464
  globalThis.AI_SDK_TELEMETRY_INTEGRATIONS.push(integration);
2439
2465
  }
2440
2466
  function getGlobalTelemetryIntegrations() {
2441
- var _a21;
2442
- return (_a21 = globalThis.AI_SDK_TELEMETRY_INTEGRATIONS) != null ? _a21 : [];
2467
+ var _a22;
2468
+ return (_a22 = globalThis.AI_SDK_TELEMETRY_INTEGRATIONS) != null ? _a22 : [];
2443
2469
  }
2444
2470
 
2445
2471
  // src/telemetry/get-global-telemetry-integration.ts
2446
2472
  function bindTelemetryIntegration(integration) {
2447
- var _a21, _b, _c, _d, _e, _f;
2473
+ var _a22, _b, _c, _d, _e, _f;
2448
2474
  return {
2449
- onStart: (_a21 = integration.onStart) == null ? void 0 : _a21.bind(integration),
2475
+ onStart: (_a22 = integration.onStart) == null ? void 0 : _a22.bind(integration),
2450
2476
  onStepStart: (_b = integration.onStepStart) == null ? void 0 : _b.bind(integration),
2451
2477
  onToolCallStart: (_c = integration.onToolCallStart) == null ? void 0 : _c.bind(integration),
2452
2478
  onToolCallFinish: (_d = integration.onToolCallFinish) == null ? void 0 : _d.bind(integration),
@@ -2530,12 +2556,12 @@ function createNullLanguageModelUsage() {
2530
2556
  };
2531
2557
  }
2532
2558
  function addLanguageModelUsage(usage1, usage2) {
2533
- var _a21, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2559
+ var _a22, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2534
2560
  return {
2535
2561
  inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),
2536
2562
  inputTokenDetails: {
2537
2563
  noCacheTokens: addTokenCounts(
2538
- (_a21 = usage1.inputTokenDetails) == null ? void 0 : _a21.noCacheTokens,
2564
+ (_a22 = usage1.inputTokenDetails) == null ? void 0 : _a22.noCacheTokens,
2539
2565
  (_b = usage2.inputTokenDetails) == null ? void 0 : _b.noCacheTokens
2540
2566
  ),
2541
2567
  cacheReadTokens: addTokenCounts(
@@ -2826,8 +2852,8 @@ import { executeTool } from "@ai-sdk/provider-utils";
2826
2852
 
2827
2853
  // src/util/now.ts
2828
2854
  function now() {
2829
- var _a21, _b;
2830
- return (_b = (_a21 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a21.now()) != null ? _b : Date.now();
2855
+ var _a22, _b;
2856
+ return (_b = (_a22 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a22.now()) != null ? _b : Date.now();
2831
2857
  }
2832
2858
 
2833
2859
  // src/generate-text/execute-tool-call.ts
@@ -3040,6 +3066,176 @@ async function isApprovalNeeded({
3040
3066
  });
3041
3067
  }
3042
3068
 
3069
+ // src/generate-text/tool-approval-signature.ts
3070
+ import {
3071
+ convertBase64ToUint8Array as convertBase64ToUint8Array4,
3072
+ convertUint8ArrayToBase64 as convertUint8ArrayToBase643
3073
+ } from "@ai-sdk/provider-utils";
3074
+ var encoder = new TextEncoder();
3075
+ function canonicalJSON(value) {
3076
+ if (value === null || value === void 0) {
3077
+ return JSON.stringify(value);
3078
+ }
3079
+ if (typeof value !== "object") {
3080
+ return JSON.stringify(value);
3081
+ }
3082
+ if (Array.isArray(value)) {
3083
+ return `[${value.map(canonicalJSON).join(",")}]`;
3084
+ }
3085
+ const keys = Object.keys(value).sort();
3086
+ const entries = keys.map(
3087
+ (k) => `${JSON.stringify(k)}:${canonicalJSON(value[k])}`
3088
+ );
3089
+ return `{${entries.join(",")}}`;
3090
+ }
3091
+ function toBase64url(bytes) {
3092
+ return convertUint8ArrayToBase643(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
3093
+ }
3094
+ function fromBase64url(str) {
3095
+ return convertBase64ToUint8Array4(str);
3096
+ }
3097
+ async function importKey(secret) {
3098
+ const keyData = typeof secret === "string" ? encoder.encode(secret) : secret;
3099
+ return crypto.subtle.importKey(
3100
+ "raw",
3101
+ keyData,
3102
+ { name: "HMAC", hash: "SHA-256" },
3103
+ false,
3104
+ ["sign", "verify"]
3105
+ );
3106
+ }
3107
+ async function hashInput(input) {
3108
+ const canonical = canonicalJSON(input);
3109
+ const digest = await crypto.subtle.digest(
3110
+ "SHA-256",
3111
+ encoder.encode(canonical)
3112
+ );
3113
+ return toBase64url(new Uint8Array(digest));
3114
+ }
3115
+ function buildPayload(approvalId, toolCallId, toolName, inputDigest) {
3116
+ return encoder.encode(
3117
+ `${approvalId}
3118
+ ${toolCallId}
3119
+ ${toolName}
3120
+ ${inputDigest}`
3121
+ );
3122
+ }
3123
+ async function signToolApproval({
3124
+ secret,
3125
+ approvalId,
3126
+ toolCallId,
3127
+ toolName,
3128
+ input
3129
+ }) {
3130
+ const key = await importKey(secret);
3131
+ const inputDigest = await hashInput(input);
3132
+ const payload = buildPayload(approvalId, toolCallId, toolName, inputDigest);
3133
+ const sig = await crypto.subtle.sign("HMAC", key, payload);
3134
+ return toBase64url(new Uint8Array(sig));
3135
+ }
3136
+ async function verifyToolApprovalSignature({
3137
+ secret,
3138
+ signature,
3139
+ approvalId,
3140
+ toolCallId,
3141
+ toolName,
3142
+ input
3143
+ }) {
3144
+ const key = await importKey(secret);
3145
+ const inputDigest = await hashInput(input);
3146
+ const payload = buildPayload(approvalId, toolCallId, toolName, inputDigest);
3147
+ const sigBytes = fromBase64url(signature);
3148
+ return crypto.subtle.verify("HMAC", key, sigBytes, payload);
3149
+ }
3150
+ async function maybeSignApproval({
3151
+ secret,
3152
+ approvalId,
3153
+ toolCallId,
3154
+ toolName,
3155
+ input
3156
+ }) {
3157
+ if (secret == null)
3158
+ return void 0;
3159
+ return signToolApproval({ secret, approvalId, toolCallId, toolName, input });
3160
+ }
3161
+
3162
+ // src/generate-text/validate-tool-approvals.ts
3163
+ import {
3164
+ asSchema as asSchema2,
3165
+ safeValidateTypes as safeValidateTypes2
3166
+ } from "@ai-sdk/provider-utils";
3167
+ async function validateApprovedToolApprovals({
3168
+ approvedToolApprovals,
3169
+ tools,
3170
+ messages,
3171
+ experimental_context,
3172
+ toolApprovalSecret
3173
+ }) {
3174
+ var _a22;
3175
+ const approved = [];
3176
+ const denied = [];
3177
+ for (const approval of approvedToolApprovals) {
3178
+ const { toolCall, approvalRequest } = approval;
3179
+ const tool2 = tools == null ? void 0 : tools[toolCall.toolName];
3180
+ if (toolApprovalSecret != null) {
3181
+ if (approvalRequest.signature == null) {
3182
+ throw new InvalidToolApprovalSignatureError({
3183
+ approvalId: approvalRequest.approvalId,
3184
+ toolCallId: toolCall.toolCallId,
3185
+ reason: "missing signature"
3186
+ });
3187
+ }
3188
+ const valid = await verifyToolApprovalSignature({
3189
+ secret: toolApprovalSecret,
3190
+ signature: approvalRequest.signature,
3191
+ approvalId: approvalRequest.approvalId,
3192
+ toolCallId: toolCall.toolCallId,
3193
+ toolName: toolCall.toolName,
3194
+ input: toolCall.input
3195
+ });
3196
+ if (!valid) {
3197
+ throw new InvalidToolApprovalSignatureError({
3198
+ approvalId: approvalRequest.approvalId,
3199
+ toolCallId: toolCall.toolCallId,
3200
+ reason: "invalid signature"
3201
+ });
3202
+ }
3203
+ }
3204
+ if (tool2 != null && typeof tool2.execute === "function" && tool2.inputSchema != null) {
3205
+ const validation = await safeValidateTypes2({
3206
+ value: toolCall.input,
3207
+ schema: asSchema2(tool2.inputSchema)
3208
+ });
3209
+ if (!validation.success) {
3210
+ throw new InvalidToolInputError({
3211
+ toolName: toolCall.toolName,
3212
+ toolInput: JSON.stringify(toolCall.input),
3213
+ cause: validation.error
3214
+ });
3215
+ }
3216
+ }
3217
+ const approvalNeeded = tool2 != null && await isApprovalNeeded({
3218
+ tool: tool2,
3219
+ toolCall,
3220
+ messages,
3221
+ experimental_context
3222
+ });
3223
+ if (approvalNeeded) {
3224
+ approved.push(approval);
3225
+ } else {
3226
+ denied.push({
3227
+ ...approval,
3228
+ approvalResponse: {
3229
+ ...approval.approvalResponse,
3230
+ approved: false,
3231
+ reason: (_a22 = approval.approvalResponse.reason) != null ? _a22 : `Tool "${toolCall.toolName}" does not require approval`
3232
+ }
3233
+ });
3234
+ }
3235
+ }
3236
+ return { approvedToolApprovals: approved, deniedToolApprovals: denied };
3237
+ }
3238
+
3043
3239
  // src/generate-text/output.ts
3044
3240
  var output_exports = {};
3045
3241
  __export(output_exports, {
@@ -3053,10 +3249,10 @@ import {
3053
3249
  TypeValidationError as TypeValidationError2
3054
3250
  } from "@ai-sdk/provider";
3055
3251
  import {
3056
- asSchema as asSchema2,
3252
+ asSchema as asSchema3,
3057
3253
  resolve,
3058
3254
  safeParseJSON as safeParseJSON2,
3059
- safeValidateTypes as safeValidateTypes2
3255
+ safeValidateTypes as safeValidateTypes3
3060
3256
  } from "@ai-sdk/provider-utils";
3061
3257
 
3062
3258
  // src/util/parse-partial-json.ts
@@ -3412,16 +3608,16 @@ var text = () => ({
3412
3608
  });
3413
3609
  var object = ({
3414
3610
  schema: inputSchema,
3415
- name: name21,
3611
+ name: name22,
3416
3612
  description
3417
3613
  }) => {
3418
- const schema = asSchema2(inputSchema);
3614
+ const schema = asSchema3(inputSchema);
3419
3615
  return {
3420
3616
  name: "object",
3421
3617
  responseFormat: resolve(schema.jsonSchema).then((jsonSchema2) => ({
3422
3618
  type: "json",
3423
3619
  schema: jsonSchema2,
3424
- ...name21 != null && { name: name21 },
3620
+ ...name22 != null && { name: name22 },
3425
3621
  ...description != null && { description }
3426
3622
  })),
3427
3623
  async parseCompleteOutput({ text: text2 }, context2) {
@@ -3436,7 +3632,7 @@ var object = ({
3436
3632
  finishReason: context2.finishReason
3437
3633
  });
3438
3634
  }
3439
- const validationResult = await safeValidateTypes2({
3635
+ const validationResult = await safeValidateTypes3({
3440
3636
  value: parseResult.value,
3441
3637
  schema
3442
3638
  });
@@ -3475,10 +3671,10 @@ var object = ({
3475
3671
  };
3476
3672
  var array = ({
3477
3673
  element: inputElementSchema,
3478
- name: name21,
3674
+ name: name22,
3479
3675
  description
3480
3676
  }) => {
3481
- const elementSchema = asSchema2(inputElementSchema);
3677
+ const elementSchema = asSchema3(inputElementSchema);
3482
3678
  return {
3483
3679
  name: "array",
3484
3680
  // JSON schema that describes an array of elements:
@@ -3495,7 +3691,7 @@ var array = ({
3495
3691
  required: ["elements"],
3496
3692
  additionalProperties: false
3497
3693
  },
3498
- ...name21 != null && { name: name21 },
3694
+ ...name22 != null && { name: name22 },
3499
3695
  ...description != null && { description }
3500
3696
  };
3501
3697
  }),
@@ -3526,7 +3722,7 @@ var array = ({
3526
3722
  });
3527
3723
  }
3528
3724
  for (const element of outerValue.elements) {
3529
- const validationResult = await safeValidateTypes2({
3725
+ const validationResult = await safeValidateTypes3({
3530
3726
  value: element,
3531
3727
  schema: elementSchema
3532
3728
  });
@@ -3559,7 +3755,7 @@ var array = ({
3559
3755
  const rawElements = result.state === "repaired-parse" && outerValue.elements.length > 0 ? outerValue.elements.slice(0, -1) : outerValue.elements;
3560
3756
  const parsedElements = [];
3561
3757
  for (const rawElement of rawElements) {
3562
- const validationResult = await safeValidateTypes2({
3758
+ const validationResult = await safeValidateTypes3({
3563
3759
  value: rawElement,
3564
3760
  schema: elementSchema
3565
3761
  });
@@ -3587,7 +3783,7 @@ var array = ({
3587
3783
  };
3588
3784
  var choice = ({
3589
3785
  options: choiceOptions,
3590
- name: name21,
3786
+ name: name22,
3591
3787
  description
3592
3788
  }) => {
3593
3789
  return {
@@ -3604,7 +3800,7 @@ var choice = ({
3604
3800
  required: ["result"],
3605
3801
  additionalProperties: false
3606
3802
  },
3607
- ...name21 != null && { name: name21 },
3803
+ ...name22 != null && { name: name22 },
3608
3804
  ...description != null && { description }
3609
3805
  }),
3610
3806
  async parseCompleteOutput({ text: text2 }, context2) {
@@ -3665,14 +3861,14 @@ var choice = ({
3665
3861
  };
3666
3862
  };
3667
3863
  var json = ({
3668
- name: name21,
3864
+ name: name22,
3669
3865
  description
3670
3866
  } = {}) => {
3671
3867
  return {
3672
3868
  name: "json",
3673
3869
  responseFormat: Promise.resolve({
3674
3870
  type: "json",
3675
- ...name21 != null && { name: name21 },
3871
+ ...name22 != null && { name: name22 },
3676
3872
  ...description != null && { description }
3677
3873
  }),
3678
3874
  async parseCompleteOutput({ text: text2 }, context2) {
@@ -3710,9 +3906,9 @@ var json = ({
3710
3906
 
3711
3907
  // src/generate-text/parse-tool-call.ts
3712
3908
  import {
3713
- asSchema as asSchema3,
3909
+ asSchema as asSchema4,
3714
3910
  safeParseJSON as safeParseJSON3,
3715
- safeValidateTypes as safeValidateTypes3
3911
+ safeValidateTypes as safeValidateTypes4
3716
3912
  } from "@ai-sdk/provider-utils";
3717
3913
  async function parseToolCall({
3718
3914
  toolCall,
@@ -3741,7 +3937,7 @@ async function parseToolCall({
3741
3937
  tools,
3742
3938
  inputSchema: async ({ toolName }) => {
3743
3939
  const { inputSchema } = tools[toolName];
3744
- return await asSchema3(inputSchema).jsonSchema;
3940
+ return await asSchema4(inputSchema).jsonSchema;
3745
3941
  },
3746
3942
  system,
3747
3943
  messages,
@@ -3811,8 +4007,8 @@ async function doParseToolCall({
3811
4007
  availableTools: Object.keys(tools)
3812
4008
  });
3813
4009
  }
3814
- const schema = asSchema3(tool2.inputSchema);
3815
- const parseResult = toolCall.input.trim() === "" ? await safeValidateTypes3({ value: {}, schema }) : await safeParseJSON3({ text: toolCall.input, schema });
4010
+ const schema = asSchema4(tool2.inputSchema);
4011
+ const parseResult = toolCall.input.trim() === "" ? await safeValidateTypes4({ value: {}, schema }) : await safeParseJSON3({ text: toolCall.input, schema });
3816
4012
  if (parseResult.success === false) {
3817
4013
  throw new InvalidToolInputError({
3818
4014
  toolName,
@@ -3925,8 +4121,8 @@ function isLoopFinished() {
3925
4121
  }
3926
4122
  function hasToolCall(toolName) {
3927
4123
  return ({ steps }) => {
3928
- var _a21, _b, _c;
3929
- return (_c = (_b = (_a21 = steps[steps.length - 1]) == null ? void 0 : _a21.toolCalls) == null ? void 0 : _b.some(
4124
+ var _a22, _b, _c;
4125
+ return (_c = (_b = (_a22 = steps[steps.length - 1]) == null ? void 0 : _a22.toolCalls) == null ? void 0 : _b.some(
3930
4126
  (toolCall) => toolCall.toolName === toolName
3931
4127
  )) != null ? _c : false;
3932
4128
  };
@@ -4026,7 +4222,8 @@ async function toResponseMessages({
4026
4222
  content.push({
4027
4223
  type: "tool-approval-request",
4028
4224
  approvalId: part.approvalId,
4029
- toolCallId: part.toolCall.toolCallId
4225
+ toolCallId: part.toolCall.toolCallId,
4226
+ ...part.signature != null ? { signature: part.signature } : {}
4030
4227
  });
4031
4228
  break;
4032
4229
  }
@@ -4123,6 +4320,7 @@ async function generateText({
4123
4320
  experimental_repairToolCall: repairToolCall,
4124
4321
  experimental_download: download2,
4125
4322
  experimental_context,
4323
+ experimental_toolApprovalSecret,
4126
4324
  experimental_include: include,
4127
4325
  _internal: { generateId: generateId2 = originalGenerateId } = {},
4128
4326
  experimental_onStart: onStart,
@@ -4224,13 +4422,29 @@ async function generateText({
4224
4422
  }),
4225
4423
  tracer,
4226
4424
  fn: async (span) => {
4227
- var _a21, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
4425
+ var _a22, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
4228
4426
  const initialMessages = initialPrompt.messages;
4229
4427
  const responseMessages = [];
4230
- const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
4231
- const localApprovedToolApprovals = approvedToolApprovals.filter(
4232
- (toolApproval) => !toolApproval.toolCall.providerExecuted
4233
- );
4428
+ const {
4429
+ approvedToolApprovals,
4430
+ deniedToolApprovals: collectedDeniedToolApprovals
4431
+ } = collectToolApprovals({ messages: initialMessages });
4432
+ const {
4433
+ approvedToolApprovals: localApprovedToolApprovals,
4434
+ deniedToolApprovals: revalidationDeniedToolApprovals
4435
+ } = await validateApprovedToolApprovals({
4436
+ approvedToolApprovals: approvedToolApprovals.filter(
4437
+ (toolApproval) => !toolApproval.toolCall.providerExecuted
4438
+ ),
4439
+ tools,
4440
+ messages: initialMessages,
4441
+ experimental_context,
4442
+ toolApprovalSecret: experimental_toolApprovalSecret
4443
+ });
4444
+ const deniedToolApprovals = [
4445
+ ...collectedDeniedToolApprovals,
4446
+ ...revalidationDeniedToolApprovals
4447
+ ];
4234
4448
  if (deniedToolApprovals.length > 0 || localApprovedToolApprovals.length > 0) {
4235
4449
  const toolOutputs = await executeTools({
4236
4450
  toolCalls: localApprovedToolApprovals.map(
@@ -4311,7 +4525,7 @@ async function generateText({
4311
4525
  experimental_context
4312
4526
  }));
4313
4527
  const stepModel = resolveLanguageModel(
4314
- (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
4528
+ (_a22 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a22 : model
4315
4529
  );
4316
4530
  const stepModelInfo = {
4317
4531
  provider: stepModel.provider,
@@ -4366,7 +4580,7 @@ async function generateText({
4366
4580
  });
4367
4581
  currentModelResponse = await retry(
4368
4582
  () => {
4369
- var _a22;
4583
+ var _a23;
4370
4584
  return recordSpan({
4371
4585
  name: "ai.generateText.doGenerate",
4372
4586
  attributes: selectTelemetryAttributes({
@@ -4398,14 +4612,14 @@ async function generateText({
4398
4612
  "gen_ai.request.max_tokens": settings.maxOutputTokens,
4399
4613
  "gen_ai.request.presence_penalty": settings.presencePenalty,
4400
4614
  "gen_ai.request.stop_sequences": settings.stopSequences,
4401
- "gen_ai.request.temperature": (_a22 = settings.temperature) != null ? _a22 : void 0,
4615
+ "gen_ai.request.temperature": (_a23 = settings.temperature) != null ? _a23 : void 0,
4402
4616
  "gen_ai.request.top_k": settings.topK,
4403
4617
  "gen_ai.request.top_p": settings.topP
4404
4618
  }
4405
4619
  }),
4406
4620
  tracer,
4407
4621
  fn: async (span2) => {
4408
- var _a23, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
4622
+ var _a24, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
4409
4623
  const result = await stepModel.doGenerate({
4410
4624
  ...callSettings2,
4411
4625
  tools: stepTools,
@@ -4417,7 +4631,7 @@ async function generateText({
4417
4631
  headers: headersWithUserAgent
4418
4632
  });
4419
4633
  const responseData = {
4420
- id: (_b2 = (_a23 = result.response) == null ? void 0 : _a23.id) != null ? _b2 : generateId2(),
4634
+ id: (_b2 = (_a24 = result.response) == null ? void 0 : _a24.id) != null ? _b2 : generateId2(),
4421
4635
  timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : /* @__PURE__ */ new Date(),
4422
4636
  modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
4423
4637
  headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
@@ -4510,10 +4724,19 @@ async function generateText({
4510
4724
  messages: stepInputMessages,
4511
4725
  experimental_context
4512
4726
  })) {
4727
+ const approvalId = generateId2();
4728
+ const signature = await maybeSignApproval({
4729
+ secret: experimental_toolApprovalSecret,
4730
+ approvalId,
4731
+ toolCallId: toolCall.toolCallId,
4732
+ toolName: toolCall.toolName,
4733
+ input: toolCall.input
4734
+ });
4513
4735
  toolApprovalRequests[toolCall.toolCallId] = {
4514
4736
  type: "tool-approval-request",
4515
- approvalId: generateId2(),
4516
- toolCall
4737
+ approvalId,
4738
+ toolCall,
4739
+ ...signature != null ? { signature } : {}
4517
4740
  };
4518
4741
  }
4519
4742
  }
@@ -5215,7 +5438,8 @@ var uiMessageChunkSchema = lazySchema(
5215
5438
  z7.strictObject({
5216
5439
  type: z7.literal("tool-approval-request"),
5217
5440
  approvalId: z7.string(),
5218
- toolCallId: z7.string()
5441
+ toolCallId: z7.string(),
5442
+ signature: z7.string().optional()
5219
5443
  }),
5220
5444
  z7.strictObject({
5221
5445
  type: z7.literal("tool-output-available"),
@@ -5390,7 +5614,7 @@ function processUIMessageStream({
5390
5614
  new TransformStream({
5391
5615
  async transform(chunk, controller) {
5392
5616
  await runUpdateMessageJob(async ({ state, write }) => {
5393
- var _a21, _b, _c, _d;
5617
+ var _a22, _b, _c, _d;
5394
5618
  function getToolInvocation(toolCallId) {
5395
5619
  const toolInvocations = state.message.parts.filter(isToolUIPart);
5396
5620
  const toolInvocation = toolInvocations.find(
@@ -5406,7 +5630,7 @@ function processUIMessageStream({
5406
5630
  return toolInvocation;
5407
5631
  }
5408
5632
  function updateToolPart(options) {
5409
- var _a22;
5633
+ var _a23;
5410
5634
  const part = state.message.parts.find(
5411
5635
  (part2) => isStaticToolUIPart(part2) && part2.toolCallId === options.toolCallId
5412
5636
  );
@@ -5425,7 +5649,7 @@ function processUIMessageStream({
5425
5649
  if (options.toolMetadata !== void 0) {
5426
5650
  anyPart.toolMetadata = options.toolMetadata;
5427
5651
  }
5428
- anyPart.providerExecuted = (_a22 = anyOptions.providerExecuted) != null ? _a22 : part.providerExecuted;
5652
+ anyPart.providerExecuted = (_a23 = anyOptions.providerExecuted) != null ? _a23 : part.providerExecuted;
5429
5653
  const providerMetadata = anyOptions.providerMetadata;
5430
5654
  if (providerMetadata != null) {
5431
5655
  if (options.state === "output-available" || options.state === "output-error") {
@@ -5454,7 +5678,7 @@ function processUIMessageStream({
5454
5678
  }
5455
5679
  }
5456
5680
  function updateDynamicToolPart(options) {
5457
- var _a22, _b2;
5681
+ var _a23, _b2;
5458
5682
  const part = state.message.parts.find(
5459
5683
  (part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
5460
5684
  );
@@ -5466,7 +5690,7 @@ function processUIMessageStream({
5466
5690
  anyPart.input = anyOptions.input;
5467
5691
  anyPart.output = anyOptions.output;
5468
5692
  anyPart.errorText = anyOptions.errorText;
5469
- anyPart.rawInput = (_a22 = anyOptions.rawInput) != null ? _a22 : anyPart.rawInput;
5693
+ anyPart.rawInput = (_a23 = anyOptions.rawInput) != null ? _a23 : anyPart.rawInput;
5470
5694
  anyPart.preliminary = anyOptions.preliminary;
5471
5695
  if (options.title !== void 0) {
5472
5696
  anyPart.title = options.title;
@@ -5541,7 +5765,7 @@ function processUIMessageStream({
5541
5765
  });
5542
5766
  }
5543
5767
  textPart.text += chunk.delta;
5544
- textPart.providerMetadata = (_a21 = chunk.providerMetadata) != null ? _a21 : textPart.providerMetadata;
5768
+ textPart.providerMetadata = (_a22 = chunk.providerMetadata) != null ? _a22 : textPart.providerMetadata;
5545
5769
  write();
5546
5770
  break;
5547
5771
  }
@@ -5770,7 +5994,10 @@ function processUIMessageStream({
5770
5994
  case "tool-approval-request": {
5771
5995
  const toolInvocation = getToolInvocation(chunk.toolCallId);
5772
5996
  toolInvocation.state = "approval-requested";
5773
- toolInvocation.approval = { id: chunk.approvalId };
5997
+ toolInvocation.approval = {
5998
+ id: chunk.approvalId,
5999
+ ...chunk.signature != null ? { signature: chunk.signature } : {}
6000
+ };
5774
6001
  write();
5775
6002
  break;
5776
6003
  }
@@ -6061,13 +6288,13 @@ function createAsyncIterableStream(source) {
6061
6288
  const reader = this.getReader();
6062
6289
  let finished = false;
6063
6290
  async function cleanup(cancelStream) {
6064
- var _a21;
6291
+ var _a22;
6065
6292
  if (finished)
6066
6293
  return;
6067
6294
  finished = true;
6068
6295
  try {
6069
6296
  if (cancelStream) {
6070
- await ((_a21 = reader.cancel) == null ? void 0 : _a21.call(reader));
6297
+ await ((_a22 = reader.cancel) == null ? void 0 : _a22.call(reader));
6071
6298
  }
6072
6299
  } finally {
6073
6300
  try {
@@ -6245,6 +6472,7 @@ function runToolsTransformation({
6245
6472
  abortSignal,
6246
6473
  repairToolCall,
6247
6474
  experimental_context,
6475
+ toolApprovalSecret,
6248
6476
  generateId: generateId2,
6249
6477
  stepNumber,
6250
6478
  model,
@@ -6374,10 +6602,19 @@ function runToolsTransformation({
6374
6602
  messages,
6375
6603
  experimental_context
6376
6604
  })) {
6605
+ const approvalId = generateId2();
6606
+ const signature = await maybeSignApproval({
6607
+ secret: toolApprovalSecret,
6608
+ approvalId,
6609
+ toolCallId: toolCall.toolCallId,
6610
+ toolName: toolCall.toolName,
6611
+ input: toolCall.input
6612
+ });
6377
6613
  toolResultsStreamController.enqueue({
6378
6614
  type: "tool-approval-request",
6379
- approvalId: generateId2(),
6380
- toolCall
6615
+ approvalId,
6616
+ toolCall,
6617
+ ...signature != null ? { signature } : {}
6381
6618
  });
6382
6619
  break;
6383
6620
  }
@@ -6548,6 +6785,7 @@ function streamText({
6548
6785
  experimental_onToolCallStart: onToolCallStart,
6549
6786
  experimental_onToolCallFinish: onToolCallFinish,
6550
6787
  experimental_context,
6788
+ experimental_toolApprovalSecret,
6551
6789
  experimental_include: include,
6552
6790
  _internal: { now: now2 = now, generateId: generateId2 = originalGenerateId2 } = {},
6553
6791
  ...settings
@@ -6602,6 +6840,7 @@ function streamText({
6602
6840
  now: now2,
6603
6841
  generateId: generateId2,
6604
6842
  experimental_context,
6843
+ experimental_toolApprovalSecret,
6605
6844
  download: download2,
6606
6845
  include
6607
6846
  });
@@ -6629,7 +6868,7 @@ function createOutputTransformStream(output) {
6629
6868
  }
6630
6869
  return new TransformStream({
6631
6870
  async transform(chunk, controller) {
6632
- var _a21;
6871
+ var _a22;
6633
6872
  if (chunk.type === "finish-step" && textChunk.length > 0) {
6634
6873
  publishTextChunk({ controller });
6635
6874
  }
@@ -6656,7 +6895,7 @@ function createOutputTransformStream(output) {
6656
6895
  }
6657
6896
  text2 += chunk.text;
6658
6897
  textChunk += chunk.text;
6659
- textProviderMetadata = (_a21 = chunk.providerMetadata) != null ? _a21 : textProviderMetadata;
6898
+ textProviderMetadata = (_a22 = chunk.providerMetadata) != null ? _a22 : textProviderMetadata;
6660
6899
  const result = await output.parsePartialOutput({ text: text2 });
6661
6900
  if (result !== void 0) {
6662
6901
  const currentValue = typeof result.partial === "string" ? result.partial : JSON.stringify(result.partial);
@@ -6709,6 +6948,7 @@ var DefaultStreamTextResult = class {
6709
6948
  onToolCallStart,
6710
6949
  onToolCallFinish,
6711
6950
  experimental_context,
6951
+ experimental_toolApprovalSecret,
6712
6952
  download: download2,
6713
6953
  include
6714
6954
  }) {
@@ -6737,7 +6977,7 @@ var DefaultStreamTextResult = class {
6737
6977
  let activeReasoningContent = {};
6738
6978
  const eventProcessor = new TransformStream({
6739
6979
  async transform(chunk, controller) {
6740
- var _a21, _b, _c, _d;
6980
+ var _a22, _b, _c, _d;
6741
6981
  controller.enqueue(chunk);
6742
6982
  const { part } = chunk;
6743
6983
  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") {
@@ -6771,7 +7011,7 @@ var DefaultStreamTextResult = class {
6771
7011
  return;
6772
7012
  }
6773
7013
  activeText.text += part.text;
6774
- activeText.providerMetadata = (_a21 = part.providerMetadata) != null ? _a21 : activeText.providerMetadata;
7014
+ activeText.providerMetadata = (_a22 = part.providerMetadata) != null ? _a22 : activeText.providerMetadata;
6775
7015
  }
6776
7016
  if (part.type === "text-end") {
6777
7017
  const activeText = activeTextContent[part.id];
@@ -6897,7 +7137,7 @@ var DefaultStreamTextResult = class {
6897
7137
  }
6898
7138
  },
6899
7139
  async flush(controller) {
6900
- var _a21, _b, _c, _d, _e, _f, _g;
7140
+ var _a22, _b, _c, _d, _e, _f, _g;
6901
7141
  try {
6902
7142
  if (recordedSteps.length === 0 || recordedNoOutputError != null) {
6903
7143
  const error = (abortSignal == null ? void 0 : abortSignal.aborted) ? abortSignal.reason : recordedNoOutputError != null ? recordedNoOutputError : new NoOutputGeneratedError({
@@ -6961,15 +7201,15 @@ var DefaultStreamTextResult = class {
6961
7201
  },
6962
7202
  "ai.response.toolCalls": {
6963
7203
  output: () => {
6964
- var _a22;
6965
- return ((_a22 = finalStep.toolCalls) == null ? void 0 : _a22.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
7204
+ var _a23;
7205
+ return ((_a23 = finalStep.toolCalls) == null ? void 0 : _a23.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
6966
7206
  }
6967
7207
  },
6968
7208
  "ai.response.providerMetadata": JSON.stringify(
6969
7209
  finalStep.providerMetadata
6970
7210
  ),
6971
7211
  "ai.usage.inputTokens": totalUsage.inputTokens,
6972
- "ai.usage.inputTokenDetails.noCacheTokens": (_a21 = totalUsage.inputTokenDetails) == null ? void 0 : _a21.noCacheTokens,
7212
+ "ai.usage.inputTokenDetails.noCacheTokens": (_a22 = totalUsage.inputTokenDetails) == null ? void 0 : _a22.noCacheTokens,
6973
7213
  "ai.usage.inputTokenDetails.cacheReadTokens": (_b = totalUsage.inputTokenDetails) == null ? void 0 : _b.cacheReadTokens,
6974
7214
  "ai.usage.inputTokenDetails.cacheWriteTokens": (_c = totalUsage.inputTokenDetails) == null ? void 0 : _c.cacheWriteTokens,
6975
7215
  "ai.usage.outputTokens": totalUsage.outputTokens,
@@ -7120,12 +7360,24 @@ var DefaultStreamTextResult = class {
7120
7360
  const initialResponseMessages = [];
7121
7361
  const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
7122
7362
  if (deniedToolApprovals.length > 0 || approvedToolApprovals.length > 0) {
7123
- const localApprovedToolApprovals = approvedToolApprovals.filter(
7124
- (toolApproval) => !toolApproval.toolCall.providerExecuted
7125
- );
7126
- const localDeniedToolApprovals = deniedToolApprovals.filter(
7127
- (toolApproval) => !toolApproval.toolCall.providerExecuted
7128
- );
7363
+ const {
7364
+ approvedToolApprovals: localApprovedToolApprovals,
7365
+ deniedToolApprovals: revalidationDeniedToolApprovals
7366
+ } = await validateApprovedToolApprovals({
7367
+ approvedToolApprovals: approvedToolApprovals.filter(
7368
+ (toolApproval) => !toolApproval.toolCall.providerExecuted
7369
+ ),
7370
+ tools,
7371
+ messages: initialMessages,
7372
+ experimental_context,
7373
+ toolApprovalSecret: experimental_toolApprovalSecret
7374
+ });
7375
+ const localDeniedToolApprovals = [
7376
+ ...deniedToolApprovals.filter(
7377
+ (toolApproval) => !toolApproval.toolCall.providerExecuted
7378
+ ),
7379
+ ...revalidationDeniedToolApprovals
7380
+ ];
7129
7381
  const deniedProviderExecutedToolApprovals = deniedToolApprovals.filter(
7130
7382
  (toolApproval) => toolApproval.toolCall.providerExecuted
7131
7383
  );
@@ -7220,7 +7472,7 @@ var DefaultStreamTextResult = class {
7220
7472
  responseMessages,
7221
7473
  usage
7222
7474
  }) {
7223
- var _a21, _b, _c, _d, _e, _f, _g, _h, _i;
7475
+ var _a22, _b, _c, _d, _e, _f, _g, _h, _i;
7224
7476
  const includeRawChunks2 = self.includeRawChunks;
7225
7477
  const stepTimeoutId = stepTimeoutMs != null ? setTimeout(() => stepAbortController.abort(), stepTimeoutMs) : void 0;
7226
7478
  let chunkTimeoutId = void 0;
@@ -7257,7 +7509,7 @@ var DefaultStreamTextResult = class {
7257
7509
  experimental_context
7258
7510
  }));
7259
7511
  const stepModel = resolveLanguageModel(
7260
- (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
7512
+ (_a22 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a22 : model
7261
7513
  );
7262
7514
  const stepModelInfo = {
7263
7515
  provider: stepModel.provider,
@@ -7380,6 +7632,7 @@ var DefaultStreamTextResult = class {
7380
7632
  repairToolCall,
7381
7633
  abortSignal,
7382
7634
  experimental_context,
7635
+ toolApprovalSecret: experimental_toolApprovalSecret,
7383
7636
  generateId: generateId2,
7384
7637
  stepNumber: recordedSteps.length,
7385
7638
  model: stepModelInfo,
@@ -7414,7 +7667,7 @@ var DefaultStreamTextResult = class {
7414
7667
  streamWithToolResults.pipeThrough(
7415
7668
  new TransformStream({
7416
7669
  async transform(chunk, controller) {
7417
- var _a22, _b2, _c2, _d2, _e2;
7670
+ var _a23, _b2, _c2, _d2, _e2;
7418
7671
  resetChunkTimeout();
7419
7672
  if (chunk.type === "stream-start") {
7420
7673
  warnings = chunk.warnings;
@@ -7491,7 +7744,7 @@ var DefaultStreamTextResult = class {
7491
7744
  }
7492
7745
  case "response-metadata": {
7493
7746
  stepResponse = {
7494
- id: (_a22 = chunk.id) != null ? _a22 : stepResponse.id,
7747
+ id: (_a23 = chunk.id) != null ? _a23 : stepResponse.id,
7495
7748
  timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
7496
7749
  modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
7497
7750
  };
@@ -7579,7 +7832,7 @@ var DefaultStreamTextResult = class {
7579
7832
  },
7580
7833
  // invoke onFinish callback and resolve toolResults promise when the stream is about to close:
7581
7834
  async flush(controller) {
7582
- var _a22, _b2, _c2, _d2, _e2, _f2, _g2;
7835
+ var _a23, _b2, _c2, _d2, _e2, _f2, _g2;
7583
7836
  if (!hasReceivedTerminalChunk && !hasReceivedOutputChunk) {
7584
7837
  controller.enqueue({
7585
7838
  type: "error",
@@ -7607,7 +7860,7 @@ var DefaultStreamTextResult = class {
7607
7860
  "ai.response.model": stepResponse.modelId,
7608
7861
  "ai.response.timestamp": stepResponse.timestamp.toISOString(),
7609
7862
  "ai.usage.inputTokens": stepUsage.inputTokens,
7610
- "ai.usage.inputTokenDetails.noCacheTokens": (_a22 = stepUsage.inputTokenDetails) == null ? void 0 : _a22.noCacheTokens,
7863
+ "ai.usage.inputTokenDetails.noCacheTokens": (_a23 = stepUsage.inputTokenDetails) == null ? void 0 : _a23.noCacheTokens,
7611
7864
  "ai.usage.inputTokenDetails.cacheReadTokens": (_b2 = stepUsage.inputTokenDetails) == null ? void 0 : _b2.cacheReadTokens,
7612
7865
  "ai.usage.inputTokenDetails.cacheWriteTokens": (_c2 = stepUsage.inputTokenDetails) == null ? void 0 : _c2.cacheWriteTokens,
7613
7866
  "ai.usage.outputTokens": stepUsage.outputTokens,
@@ -7881,19 +8134,19 @@ var DefaultStreamTextResult = class {
7881
8134
  this._steps.reject(error);
7882
8135
  }
7883
8136
  async consumeStream(options) {
7884
- var _a21;
8137
+ var _a22;
7885
8138
  try {
7886
8139
  await consumeStream({
7887
8140
  stream: this.fullStream,
7888
8141
  onError: (error) => {
7889
- var _a22;
8142
+ var _a23;
7890
8143
  this.rejectResultPromises(error);
7891
- (_a22 = options == null ? void 0 : options.onError) == null ? void 0 : _a22.call(options, error);
8144
+ (_a23 = options == null ? void 0 : options.onError) == null ? void 0 : _a23.call(options, error);
7892
8145
  }
7893
8146
  });
7894
8147
  } catch (error) {
7895
8148
  this.rejectResultPromises(error);
7896
- (_a21 = options == null ? void 0 : options.onError) == null ? void 0 : _a21.call(options, error);
8149
+ (_a22 = options == null ? void 0 : options.onError) == null ? void 0 : _a22.call(options, error);
7897
8150
  }
7898
8151
  }
7899
8152
  get experimental_partialOutputStream() {
@@ -7913,8 +8166,8 @@ var DefaultStreamTextResult = class {
7913
8166
  );
7914
8167
  }
7915
8168
  get elementStream() {
7916
- var _a21, _b, _c;
7917
- const transform = (_a21 = this.outputSpecification) == null ? void 0 : _a21.createElementStreamTransform();
8169
+ var _a22, _b, _c;
8170
+ const transform = (_a22 = this.outputSpecification) == null ? void 0 : _a22.createElementStreamTransform();
7918
8171
  if (transform == null) {
7919
8172
  throw new UnsupportedFunctionalityError2({
7920
8173
  functionality: `element streams in ${(_c = (_b = this.outputSpecification) == null ? void 0 : _b.name) != null ? _c : "text"} mode`
@@ -7924,8 +8177,8 @@ var DefaultStreamTextResult = class {
7924
8177
  }
7925
8178
  get output() {
7926
8179
  return this.finalStep.then((step) => {
7927
- var _a21;
7928
- const output = (_a21 = this.outputSpecification) != null ? _a21 : text();
8180
+ var _a22;
8181
+ const output = (_a22 = this.outputSpecification) != null ? _a22 : text();
7929
8182
  return output.parseCompleteOutput(
7930
8183
  { text: step.text },
7931
8184
  {
@@ -7952,8 +8205,8 @@ var DefaultStreamTextResult = class {
7952
8205
  responseMessageId: generateMessageId
7953
8206
  }) : void 0;
7954
8207
  const isDynamic = (part) => {
7955
- var _a21;
7956
- const tool2 = (_a21 = this.tools) == null ? void 0 : _a21[part.toolName];
8208
+ var _a22;
8209
+ const tool2 = (_a22 = this.tools) == null ? void 0 : _a22[part.toolName];
7957
8210
  if (tool2 == null) {
7958
8211
  return part.dynamic;
7959
8212
  }
@@ -8099,7 +8352,8 @@ var DefaultStreamTextResult = class {
8099
8352
  controller.enqueue({
8100
8353
  type: "tool-approval-request",
8101
8354
  approvalId: part.approvalId,
8102
- toolCallId: part.toolCall.toolCallId
8355
+ toolCallId: part.toolCall.toolCallId,
8356
+ ...part.signature != null ? { signature: part.signature } : {}
8103
8357
  });
8104
8358
  break;
8105
8359
  }
@@ -8295,7 +8549,7 @@ var ToolLoopAgent = class {
8295
8549
  return this.settings.tools;
8296
8550
  }
8297
8551
  async prepareCall(options) {
8298
- var _a21, _b, _c, _d;
8552
+ var _a22, _b, _c, _d;
8299
8553
  if (this.settings.callOptionsSchema != null && options.options !== void 0) {
8300
8554
  const validatedOptions = await validateTypes2({
8301
8555
  value: options.options,
@@ -8307,7 +8561,7 @@ var ToolLoopAgent = class {
8307
8561
  const { onStepFinish: _settingsOnStepFinish, ...settingsWithoutCallback } = this.settings;
8308
8562
  const baseCallArgs = {
8309
8563
  ...settingsWithoutCallback,
8310
- stopWhen: (_a21 = this.settings.stopWhen) != null ? _a21 : stepCountIs(20),
8564
+ stopWhen: (_a22 = this.settings.stopWhen) != null ? _a22 : stepCountIs(20),
8311
8565
  ...options
8312
8566
  };
8313
8567
  const preparedCallArgs = (_d = await ((_c = (_b = this.settings).prepareCall) == null ? void 0 : _c.call(
@@ -8476,7 +8730,7 @@ function readUIMessageStream({
8476
8730
  onError,
8477
8731
  terminateOnError = false
8478
8732
  }) {
8479
- var _a21;
8733
+ var _a22;
8480
8734
  let controller;
8481
8735
  let hasErrored = false;
8482
8736
  const outputStream = new ReadableStream({
@@ -8485,7 +8739,7 @@ function readUIMessageStream({
8485
8739
  }
8486
8740
  });
8487
8741
  const state = createStreamingUIMessageState({
8488
- messageId: (_a21 = message == null ? void 0 : message.id) != null ? _a21 : "",
8742
+ messageId: (_a22 = message == null ? void 0 : message.id) != null ? _a22 : "",
8489
8743
  lastMessage: message
8490
8744
  });
8491
8745
  const handleError = (error) => {
@@ -8554,7 +8808,7 @@ async function convertToModelMessages(messages, options) {
8554
8808
  modelMessages.push({
8555
8809
  role: "user",
8556
8810
  content: message.parts.map((part) => {
8557
- var _a21;
8811
+ var _a22;
8558
8812
  if (isTextUIPart(part)) {
8559
8813
  return {
8560
8814
  type: "text",
@@ -8572,7 +8826,7 @@ async function convertToModelMessages(messages, options) {
8572
8826
  };
8573
8827
  }
8574
8828
  if (isDataUIPart(part)) {
8575
- return (_a21 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a21.call(
8829
+ return (_a22 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a22.call(
8576
8830
  options,
8577
8831
  part
8578
8832
  );
@@ -8585,7 +8839,7 @@ async function convertToModelMessages(messages, options) {
8585
8839
  if (message.parts != null) {
8586
8840
  let block = [];
8587
8841
  async function processBlock() {
8588
- var _a21, _b, _c, _d, _e, _f, _g, _h;
8842
+ var _a22, _b, _c, _d, _e, _f, _g, _h;
8589
8843
  if (block.length === 0) {
8590
8844
  return;
8591
8845
  }
@@ -8618,7 +8872,7 @@ async function convertToModelMessages(messages, options) {
8618
8872
  type: "tool-call",
8619
8873
  toolCallId: part.toolCallId,
8620
8874
  toolName,
8621
- input: part.state === "output-error" ? (_a21 = part.input) != null ? _a21 : "rawInput" in part ? part.rawInput : void 0 : part.input,
8875
+ input: part.state === "output-error" ? (_a22 = part.input) != null ? _a22 : "rawInput" in part ? part.rawInput : void 0 : part.input,
8622
8876
  providerExecuted: part.providerExecuted,
8623
8877
  ...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
8624
8878
  });
@@ -8626,7 +8880,8 @@ async function convertToModelMessages(messages, options) {
8626
8880
  content.push({
8627
8881
  type: "tool-approval-request",
8628
8882
  approvalId: part.approval.id,
8629
- toolCallId: part.toolCallId
8883
+ toolCallId: part.toolCallId,
8884
+ ...part.approval.signature != null ? { signature: part.approval.signature } : {}
8630
8885
  });
8631
8886
  }
8632
8887
  if (part.providerExecuted === true && part.state !== "approval-responded" && (part.state === "output-available" || part.state === "output-error")) {
@@ -8665,8 +8920,8 @@ async function convertToModelMessages(messages, options) {
8665
8920
  });
8666
8921
  const toolParts = block.filter(
8667
8922
  (part) => {
8668
- var _a22;
8669
- return isToolUIPart(part) && (part.providerExecuted !== true || ((_a22 = part.approval) == null ? void 0 : _a22.approved) != null);
8923
+ var _a23;
8924
+ return isToolUIPart(part) && (part.providerExecuted !== true || ((_a23 = part.approval) == null ? void 0 : _a23.approved) != null);
8670
8925
  }
8671
8926
  );
8672
8927
  if (toolParts.length > 0) {
@@ -8858,7 +9113,8 @@ var uiMessagesSchema = lazySchema2(
8858
9113
  approval: z8.object({
8859
9114
  id: z8.string(),
8860
9115
  approved: z8.never().optional(),
8861
- reason: z8.never().optional()
9116
+ reason: z8.never().optional(),
9117
+ signature: z8.string().optional()
8862
9118
  })
8863
9119
  }),
8864
9120
  z8.object({
@@ -8875,7 +9131,8 @@ var uiMessagesSchema = lazySchema2(
8875
9131
  approval: z8.object({
8876
9132
  id: z8.string(),
8877
9133
  approved: z8.boolean(),
8878
- reason: z8.string().optional()
9134
+ reason: z8.string().optional(),
9135
+ signature: z8.string().optional()
8879
9136
  })
8880
9137
  }),
8881
9138
  z8.object({
@@ -8894,7 +9151,8 @@ var uiMessagesSchema = lazySchema2(
8894
9151
  approval: z8.object({
8895
9152
  id: z8.string(),
8896
9153
  approved: z8.literal(true),
8897
- reason: z8.string().optional()
9154
+ reason: z8.string().optional(),
9155
+ signature: z8.string().optional()
8898
9156
  }).optional()
8899
9157
  }),
8900
9158
  z8.object({
@@ -8913,7 +9171,8 @@ var uiMessagesSchema = lazySchema2(
8913
9171
  approval: z8.object({
8914
9172
  id: z8.string(),
8915
9173
  approved: z8.literal(true),
8916
- reason: z8.string().optional()
9174
+ reason: z8.string().optional(),
9175
+ signature: z8.string().optional()
8917
9176
  }).optional()
8918
9177
  }),
8919
9178
  z8.object({
@@ -8930,7 +9189,8 @@ var uiMessagesSchema = lazySchema2(
8930
9189
  approval: z8.object({
8931
9190
  id: z8.string(),
8932
9191
  approved: z8.literal(false),
8933
- reason: z8.string().optional()
9192
+ reason: z8.string().optional(),
9193
+ signature: z8.string().optional()
8934
9194
  })
8935
9195
  }),
8936
9196
  z8.object({
@@ -8970,7 +9230,8 @@ var uiMessagesSchema = lazySchema2(
8970
9230
  approval: z8.object({
8971
9231
  id: z8.string(),
8972
9232
  approved: z8.never().optional(),
8973
- reason: z8.never().optional()
9233
+ reason: z8.never().optional(),
9234
+ signature: z8.string().optional()
8974
9235
  })
8975
9236
  }),
8976
9237
  z8.object({
@@ -8986,7 +9247,8 @@ var uiMessagesSchema = lazySchema2(
8986
9247
  approval: z8.object({
8987
9248
  id: z8.string(),
8988
9249
  approved: z8.boolean(),
8989
- reason: z8.string().optional()
9250
+ reason: z8.string().optional(),
9251
+ signature: z8.string().optional()
8990
9252
  })
8991
9253
  }),
8992
9254
  z8.object({
@@ -9004,7 +9266,8 @@ var uiMessagesSchema = lazySchema2(
9004
9266
  approval: z8.object({
9005
9267
  id: z8.string(),
9006
9268
  approved: z8.literal(true),
9007
- reason: z8.string().optional()
9269
+ reason: z8.string().optional(),
9270
+ signature: z8.string().optional()
9008
9271
  }).optional()
9009
9272
  }),
9010
9273
  z8.object({
@@ -9022,7 +9285,8 @@ var uiMessagesSchema = lazySchema2(
9022
9285
  approval: z8.object({
9023
9286
  id: z8.string(),
9024
9287
  approved: z8.literal(true),
9025
- reason: z8.string().optional()
9288
+ reason: z8.string().optional(),
9289
+ signature: z8.string().optional()
9026
9290
  }).optional()
9027
9291
  }),
9028
9292
  z8.object({
@@ -9038,7 +9302,8 @@ var uiMessagesSchema = lazySchema2(
9038
9302
  approval: z8.object({
9039
9303
  id: z8.string(),
9040
9304
  approved: z8.literal(false),
9041
- reason: z8.string().optional()
9305
+ reason: z8.string().optional(),
9306
+ signature: z8.string().optional()
9042
9307
  })
9043
9308
  })
9044
9309
  ])
@@ -9198,7 +9463,7 @@ async function createAgentUIStream({
9198
9463
  onStepFinish,
9199
9464
  ...uiMessageStreamOptions
9200
9465
  }) {
9201
- var _a21;
9466
+ var _a22;
9202
9467
  const validatedMessages = await validateUIMessages({
9203
9468
  messages: uiMessages,
9204
9469
  tools: agent.tools
@@ -9217,7 +9482,7 @@ async function createAgentUIStream({
9217
9482
  return result.toUIMessageStream({
9218
9483
  ...uiMessageStreamOptions,
9219
9484
  // TODO reading `originalMessages` is here for bc, always use `validatedMessages` in v7
9220
- originalMessages: (_a21 = uiMessageStreamOptions.originalMessages) != null ? _a21 : validatedMessages
9485
+ originalMessages: (_a22 = uiMessageStreamOptions.originalMessages) != null ? _a22 : validatedMessages
9221
9486
  });
9222
9487
  }
9223
9488
 
@@ -9317,7 +9582,7 @@ async function embed({
9317
9582
  }),
9318
9583
  tracer,
9319
9584
  fn: async (doEmbedSpan) => {
9320
- var _a21, _b;
9585
+ var _a22, _b;
9321
9586
  const modelResponse = await model.doEmbed({
9322
9587
  values: [value],
9323
9588
  abortSignal,
@@ -9325,7 +9590,7 @@ async function embed({
9325
9590
  providerOptions
9326
9591
  });
9327
9592
  const embedding2 = modelResponse.embeddings[0];
9328
- const usage2 = (_a21 = modelResponse.usage) != null ? _a21 : { tokens: NaN };
9593
+ const usage2 = (_a22 = modelResponse.usage) != null ? _a22 : { tokens: NaN };
9329
9594
  doEmbedSpan.setAttributes(
9330
9595
  await selectTelemetryAttributes({
9331
9596
  telemetry,
@@ -9441,7 +9706,7 @@ async function embedMany({
9441
9706
  }),
9442
9707
  tracer,
9443
9708
  fn: async (span) => {
9444
- var _a21;
9709
+ var _a22;
9445
9710
  const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([
9446
9711
  model.maxEmbeddingsPerCall,
9447
9712
  model.supportsParallelCalls
@@ -9466,7 +9731,7 @@ async function embedMany({
9466
9731
  }),
9467
9732
  tracer,
9468
9733
  fn: async (doEmbedSpan) => {
9469
- var _a22, _b;
9734
+ var _a23, _b;
9470
9735
  const modelResponse = await model.doEmbed({
9471
9736
  values,
9472
9737
  abortSignal,
@@ -9474,7 +9739,7 @@ async function embedMany({
9474
9739
  providerOptions
9475
9740
  });
9476
9741
  const embeddings3 = modelResponse.embeddings;
9477
- const usage2 = (_a22 = modelResponse.usage) != null ? _a22 : { tokens: NaN };
9742
+ const usage2 = (_a23 = modelResponse.usage) != null ? _a23 : { tokens: NaN };
9478
9743
  doEmbedSpan.setAttributes(
9479
9744
  await selectTelemetryAttributes({
9480
9745
  telemetry,
@@ -9555,7 +9820,7 @@ async function embedMany({
9555
9820
  }),
9556
9821
  tracer,
9557
9822
  fn: async (doEmbedSpan) => {
9558
- var _a22, _b;
9823
+ var _a23, _b;
9559
9824
  const modelResponse = await model.doEmbed({
9560
9825
  values: chunk,
9561
9826
  abortSignal,
@@ -9563,7 +9828,7 @@ async function embedMany({
9563
9828
  providerOptions
9564
9829
  });
9565
9830
  const embeddings2 = modelResponse.embeddings;
9566
- const usage = (_a22 = modelResponse.usage) != null ? _a22 : { tokens: NaN };
9831
+ const usage = (_a23 = modelResponse.usage) != null ? _a23 : { tokens: NaN };
9567
9832
  doEmbedSpan.setAttributes(
9568
9833
  await selectTelemetryAttributes({
9569
9834
  telemetry,
@@ -9602,7 +9867,7 @@ async function embedMany({
9602
9867
  result.providerMetadata
9603
9868
  )) {
9604
9869
  providerMetadata[providerName] = {
9605
- ...(_a21 = providerMetadata[providerName]) != null ? _a21 : {},
9870
+ ...(_a22 = providerMetadata[providerName]) != null ? _a22 : {},
9606
9871
  ...metadata
9607
9872
  };
9608
9873
  }
@@ -9650,7 +9915,7 @@ var DefaultEmbedManyResult = class {
9650
9915
 
9651
9916
  // src/generate-image/generate-image.ts
9652
9917
  import {
9653
- convertBase64ToUint8Array as convertBase64ToUint8Array4,
9918
+ convertBase64ToUint8Array as convertBase64ToUint8Array5,
9654
9919
  withUserAgentSuffix as withUserAgentSuffix5
9655
9920
  } from "@ai-sdk/provider-utils";
9656
9921
  async function generateImage({
@@ -9666,7 +9931,7 @@ async function generateImage({
9666
9931
  abortSignal,
9667
9932
  headers
9668
9933
  }) {
9669
- var _a21, _b;
9934
+ var _a22, _b;
9670
9935
  const model = resolveImageModel(modelArg);
9671
9936
  const headersWithUserAgent = withUserAgentSuffix5(
9672
9937
  headers != null ? headers : {},
@@ -9676,7 +9941,7 @@ async function generateImage({
9676
9941
  maxRetries: maxRetriesArg,
9677
9942
  abortSignal
9678
9943
  });
9679
- const maxImagesPerCallWithDefault = (_a21 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a21 : 1;
9944
+ const maxImagesPerCallWithDefault = (_a22 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a22 : 1;
9680
9945
  const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
9681
9946
  const callImageCounts = Array.from({ length: callCount }, (_, i) => {
9682
9947
  if (i < callCount - 1) {
@@ -9717,13 +9982,13 @@ async function generateImage({
9717
9982
  images.push(
9718
9983
  ...result.images.map(
9719
9984
  (image) => {
9720
- var _a22;
9985
+ var _a23;
9721
9986
  return new DefaultGeneratedFile({
9722
9987
  data: image,
9723
- mediaType: (_a22 = detectMediaType({
9988
+ mediaType: (_a23 = detectMediaType({
9724
9989
  data: image,
9725
9990
  signatures: imageMediaTypeSignatures
9726
- })) != null ? _a22 : "image/png"
9991
+ })) != null ? _a23 : "image/png"
9727
9992
  });
9728
9993
  }
9729
9994
  )
@@ -9811,7 +10076,7 @@ function toImageModelV3File(dataContent) {
9811
10076
  if (typeof dataContent === "string" && dataContent.startsWith("data:")) {
9812
10077
  const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(dataContent);
9813
10078
  if (base64Content != null) {
9814
- const uint8Data2 = convertBase64ToUint8Array4(base64Content);
10079
+ const uint8Data2 = convertBase64ToUint8Array5(base64Content);
9815
10080
  return {
9816
10081
  type: "file",
9817
10082
  data: uint8Data2,
@@ -9850,8 +10115,8 @@ import {
9850
10115
  UnsupportedFunctionalityError as UnsupportedFunctionalityError3
9851
10116
  } from "@ai-sdk/provider";
9852
10117
  import {
9853
- asSchema as asSchema4,
9854
- safeValidateTypes as safeValidateTypes4
10118
+ asSchema as asSchema5,
10119
+ safeValidateTypes as safeValidateTypes5
9855
10120
  } from "@ai-sdk/provider-utils";
9856
10121
  var noSchemaOutputStrategy = {
9857
10122
  type: "no-schema",
@@ -9891,7 +10156,7 @@ var objectOutputStrategy = (schema) => ({
9891
10156
  };
9892
10157
  },
9893
10158
  async validateFinalResult(value) {
9894
- return safeValidateTypes4({ value, schema });
10159
+ return safeValidateTypes5({ value, schema });
9895
10160
  },
9896
10161
  createElementStream() {
9897
10162
  throw new UnsupportedFunctionalityError3({
@@ -9923,7 +10188,7 @@ var arrayOutputStrategy = (schema) => {
9923
10188
  isFirstDelta,
9924
10189
  isFinalDelta
9925
10190
  }) {
9926
- var _a21;
10191
+ var _a22;
9927
10192
  if (!isJSONObject(value) || !isJSONArray(value.elements)) {
9928
10193
  return {
9929
10194
  success: false,
@@ -9937,7 +10202,7 @@ var arrayOutputStrategy = (schema) => {
9937
10202
  const resultArray = [];
9938
10203
  for (let i = 0; i < inputArray.length; i++) {
9939
10204
  const element = inputArray[i];
9940
- const result = await safeValidateTypes4({ value: element, schema });
10205
+ const result = await safeValidateTypes5({ value: element, schema });
9941
10206
  if (i === inputArray.length - 1 && !isFinalDelta) {
9942
10207
  continue;
9943
10208
  }
@@ -9946,7 +10211,7 @@ var arrayOutputStrategy = (schema) => {
9946
10211
  }
9947
10212
  resultArray.push(result.value);
9948
10213
  }
9949
- const publishedElementCount = (_a21 = latestObject == null ? void 0 : latestObject.length) != null ? _a21 : 0;
10214
+ const publishedElementCount = (_a22 = latestObject == null ? void 0 : latestObject.length) != null ? _a22 : 0;
9950
10215
  let textDelta = "";
9951
10216
  if (isFirstDelta) {
9952
10217
  textDelta += "[";
@@ -9979,7 +10244,7 @@ var arrayOutputStrategy = (schema) => {
9979
10244
  const inputArray = value.elements;
9980
10245
  const resultArray = [];
9981
10246
  for (const element of inputArray) {
9982
- const result = await safeValidateTypes4({ value: element, schema });
10247
+ const result = await safeValidateTypes5({ value: element, schema });
9983
10248
  if (!result.success) {
9984
10249
  return result;
9985
10250
  }
@@ -10098,9 +10363,9 @@ function getOutputStrategy({
10098
10363
  }) {
10099
10364
  switch (output) {
10100
10365
  case "object":
10101
- return objectOutputStrategy(asSchema4(schema));
10366
+ return objectOutputStrategy(asSchema5(schema));
10102
10367
  case "array":
10103
- return arrayOutputStrategy(asSchema4(schema));
10368
+ return arrayOutputStrategy(asSchema5(schema));
10104
10369
  case "enum":
10105
10370
  return enumOutputStrategy(enumValues);
10106
10371
  case "no-schema":
@@ -10369,7 +10634,7 @@ async function generateObject(options) {
10369
10634
  }),
10370
10635
  tracer,
10371
10636
  fn: async (span) => {
10372
- var _a21;
10637
+ var _a22;
10373
10638
  let result;
10374
10639
  let finishReason;
10375
10640
  let usage;
@@ -10416,7 +10681,7 @@ async function generateObject(options) {
10416
10681
  }),
10417
10682
  tracer,
10418
10683
  fn: async (span2) => {
10419
- var _a22, _b, _c, _d, _e, _f, _g, _h;
10684
+ var _a23, _b, _c, _d, _e, _f, _g, _h;
10420
10685
  const result2 = await model.doGenerate({
10421
10686
  responseFormat: {
10422
10687
  type: "json",
@@ -10431,7 +10696,7 @@ async function generateObject(options) {
10431
10696
  headers: headersWithUserAgent
10432
10697
  });
10433
10698
  const responseData = {
10434
- id: (_b = (_a22 = result2.response) == null ? void 0 : _a22.id) != null ? _b : generateId2(),
10699
+ id: (_b = (_a23 = result2.response) == null ? void 0 : _a23.id) != null ? _b : generateId2(),
10435
10700
  timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
10436
10701
  modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
10437
10702
  headers: (_g = result2.response) == null ? void 0 : _g.headers,
@@ -10487,7 +10752,7 @@ async function generateObject(options) {
10487
10752
  usage = asLanguageModelUsage(generateResult.usage);
10488
10753
  warnings = generateResult.warnings;
10489
10754
  resultProviderMetadata = generateResult.providerMetadata;
10490
- request = (_a21 = generateResult.request) != null ? _a21 : {};
10755
+ request = (_a22 = generateResult.request) != null ? _a22 : {};
10491
10756
  response = generateResult.responseData;
10492
10757
  reasoning = generateResult.reasoning;
10493
10758
  logWarnings({
@@ -10550,9 +10815,9 @@ var DefaultGenerateObjectResult = class {
10550
10815
  this.reasoning = options.reasoning;
10551
10816
  }
10552
10817
  toJsonResponse(init) {
10553
- var _a21;
10818
+ var _a22;
10554
10819
  return new Response(JSON.stringify(this.object), {
10555
- status: (_a21 = init == null ? void 0 : init.status) != null ? _a21 : 200,
10820
+ status: (_a22 = init == null ? void 0 : init.status) != null ? _a22 : 200,
10556
10821
  headers: prepareHeaders(init == null ? void 0 : init.headers, {
10557
10822
  "content-type": "application/json; charset=utf-8"
10558
10823
  })
@@ -10686,8 +10951,8 @@ function simulateReadableStream({
10686
10951
  chunkDelayInMs = 0,
10687
10952
  _internal
10688
10953
  }) {
10689
- var _a21;
10690
- const delay2 = (_a21 = _internal == null ? void 0 : _internal.delay) != null ? _a21 : delayFunction;
10954
+ var _a22;
10955
+ const delay2 = (_a22 = _internal == null ? void 0 : _internal.delay) != null ? _a22 : delayFunction;
10691
10956
  let index = 0;
10692
10957
  return new ReadableStream({
10693
10958
  async pull(controller) {
@@ -10949,7 +11214,7 @@ var DefaultStreamObjectResult = class {
10949
11214
  const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
10950
11215
  new TransformStream({
10951
11216
  async transform(chunk, controller) {
10952
- var _a21, _b, _c;
11217
+ var _a22, _b, _c;
10953
11218
  if (typeof chunk === "object" && chunk.type === "stream-start") {
10954
11219
  warnings = chunk.warnings;
10955
11220
  return;
@@ -10999,7 +11264,7 @@ var DefaultStreamObjectResult = class {
10999
11264
  switch (chunk.type) {
11000
11265
  case "response-metadata": {
11001
11266
  fullResponse = {
11002
- id: (_a21 = chunk.id) != null ? _a21 : fullResponse.id,
11267
+ id: (_a22 = chunk.id) != null ? _a22 : fullResponse.id,
11003
11268
  timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
11004
11269
  modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
11005
11270
  };
@@ -11273,7 +11538,7 @@ async function generateSpeech({
11273
11538
  abortSignal,
11274
11539
  headers
11275
11540
  }) {
11276
- var _a21;
11541
+ var _a22;
11277
11542
  const resolvedModel = resolveSpeechModel(model);
11278
11543
  if (!resolvedModel) {
11279
11544
  throw new Error("Model could not be resolved");
@@ -11310,10 +11575,10 @@ async function generateSpeech({
11310
11575
  return new DefaultSpeechResult({
11311
11576
  audio: new DefaultGeneratedAudioFile({
11312
11577
  data: result.audio,
11313
- mediaType: (_a21 = detectMediaType({
11578
+ mediaType: (_a22 = detectMediaType({
11314
11579
  data: result.audio,
11315
11580
  signatures: audioMediaTypeSignatures
11316
- })) != null ? _a21 : "audio/mp3"
11581
+ })) != null ? _a22 : "audio/mp3"
11317
11582
  }),
11318
11583
  warnings: result.warnings,
11319
11584
  responses: [result.response],
@@ -11322,11 +11587,11 @@ async function generateSpeech({
11322
11587
  }
11323
11588
  var DefaultSpeechResult = class {
11324
11589
  constructor(options) {
11325
- var _a21;
11590
+ var _a22;
11326
11591
  this.audio = options.audio;
11327
11592
  this.warnings = options.warnings;
11328
11593
  this.responses = options.responses;
11329
- this.providerMetadata = (_a21 = options.providerMetadata) != null ? _a21 : {};
11594
+ this.providerMetadata = (_a22 = options.providerMetadata) != null ? _a22 : {};
11330
11595
  }
11331
11596
  };
11332
11597
 
@@ -11511,7 +11776,7 @@ function smoothStream({
11511
11776
 
11512
11777
  // src/generate-video/generate-video.ts
11513
11778
  import {
11514
- convertBase64ToUint8Array as convertBase64ToUint8Array5,
11779
+ convertBase64ToUint8Array as convertBase64ToUint8Array6,
11515
11780
  withUserAgentSuffix as withUserAgentSuffix8
11516
11781
  } from "@ai-sdk/provider-utils";
11517
11782
  var defaultDownload = createDownload();
@@ -11531,7 +11796,7 @@ async function experimental_generateVideo({
11531
11796
  headers,
11532
11797
  download: downloadFn = defaultDownload
11533
11798
  }) {
11534
- var _a21;
11799
+ var _a22;
11535
11800
  const model = resolveVideoModel(modelArg);
11536
11801
  const headersWithUserAgent = withUserAgentSuffix8(
11537
11802
  headers != null ? headers : {},
@@ -11542,7 +11807,7 @@ async function experimental_generateVideo({
11542
11807
  abortSignal
11543
11808
  });
11544
11809
  const { prompt, image } = normalizePrompt2(promptArg);
11545
- const maxVideosPerCallWithDefault = (_a21 = maxVideosPerCall != null ? maxVideosPerCall : await invokeModelMaxVideosPerCall(model)) != null ? _a21 : 1;
11810
+ const maxVideosPerCallWithDefault = (_a22 = maxVideosPerCall != null ? maxVideosPerCall : await invokeModelMaxVideosPerCall(model)) != null ? _a22 : 1;
11546
11811
  const callCount = Math.ceil(n / maxVideosPerCallWithDefault);
11547
11812
  const callVideoCounts = Array.from({ length: callCount }, (_, index) => {
11548
11813
  const remaining = n - index * maxVideosPerCallWithDefault;
@@ -11664,7 +11929,7 @@ async function experimental_generateVideo({
11664
11929
  };
11665
11930
  }
11666
11931
  function normalizePrompt2(promptArg) {
11667
- var _a21, _b;
11932
+ var _a22, _b;
11668
11933
  if (typeof promptArg === "string") {
11669
11934
  return {
11670
11935
  prompt: promptArg,
@@ -11685,14 +11950,14 @@ function normalizePrompt2(promptArg) {
11685
11950
  image = {
11686
11951
  type: "file",
11687
11952
  mediaType: mediaType != null ? mediaType : "image/png",
11688
- data: convertBase64ToUint8Array5(base64Content != null ? base64Content : "")
11953
+ data: convertBase64ToUint8Array6(base64Content != null ? base64Content : "")
11689
11954
  };
11690
11955
  } else {
11691
- const bytes = convertBase64ToUint8Array5(dataContent);
11692
- const mediaType = (_a21 = detectMediaType({
11956
+ const bytes = convertBase64ToUint8Array6(dataContent);
11957
+ const mediaType = (_a22 = detectMediaType({
11693
11958
  data: bytes,
11694
11959
  signatures: imageMediaTypeSignatures
11695
- })) != null ? _a21 : "image/png";
11960
+ })) != null ? _a22 : "image/png";
11696
11961
  image = {
11697
11962
  type: "file",
11698
11963
  mediaType,
@@ -11752,8 +12017,8 @@ function defaultTransform(text2) {
11752
12017
  return text2.replace(/^```(?:json)?\s*\n?/, "").replace(/\n?```\s*$/, "").trim();
11753
12018
  }
11754
12019
  function extractJsonMiddleware(options) {
11755
- var _a21;
11756
- const transform = (_a21 = options == null ? void 0 : options.transform) != null ? _a21 : defaultTransform;
12020
+ var _a22;
12021
+ const transform = (_a22 = options == null ? void 0 : options.transform) != null ? _a22 : defaultTransform;
11757
12022
  const hasCustomTransform = (options == null ? void 0 : options.transform) !== void 0;
11758
12023
  return {
11759
12024
  specificationVersion: "v3",
@@ -12127,13 +12392,13 @@ function addToolInputExamplesMiddleware({
12127
12392
  return {
12128
12393
  specificationVersion: "v3",
12129
12394
  transformParams: async ({ params }) => {
12130
- var _a21;
12131
- if (!((_a21 = params.tools) == null ? void 0 : _a21.length)) {
12395
+ var _a22;
12396
+ if (!((_a22 = params.tools) == null ? void 0 : _a22.length)) {
12132
12397
  return params;
12133
12398
  }
12134
12399
  const transformedTools = params.tools.map((tool2) => {
12135
- var _a22;
12136
- if (tool2.type !== "function" || !((_a22 = tool2.inputExamples) == null ? void 0 : _a22.length)) {
12400
+ var _a23;
12401
+ if (tool2.type !== "function" || !((_a23 = tool2.inputExamples) == null ? void 0 : _a23.length)) {
12137
12402
  return tool2;
12138
12403
  }
12139
12404
  const formattedExamples = tool2.inputExamples.map((example, index) => format(example, index)).join("\n");
@@ -12180,7 +12445,7 @@ var doWrap = ({
12180
12445
  modelId,
12181
12446
  providerId
12182
12447
  }) => {
12183
- var _a21, _b, _c;
12448
+ var _a22, _b, _c;
12184
12449
  async function doTransform({
12185
12450
  params,
12186
12451
  type
@@ -12189,7 +12454,7 @@ var doWrap = ({
12189
12454
  }
12190
12455
  return {
12191
12456
  specificationVersion: "v3",
12192
- provider: (_a21 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a21 : model.provider,
12457
+ provider: (_a22 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a22 : model.provider,
12193
12458
  modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
12194
12459
  supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
12195
12460
  async doGenerate(params) {
@@ -12236,7 +12501,7 @@ var doWrap2 = ({
12236
12501
  modelId,
12237
12502
  providerId
12238
12503
  }) => {
12239
- var _a21, _b, _c, _d;
12504
+ var _a22, _b, _c, _d;
12240
12505
  async function doTransform({
12241
12506
  params
12242
12507
  }) {
@@ -12244,7 +12509,7 @@ var doWrap2 = ({
12244
12509
  }
12245
12510
  return {
12246
12511
  specificationVersion: "v3",
12247
- provider: (_a21 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a21 : model.provider,
12512
+ provider: (_a22 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a22 : model.provider,
12248
12513
  modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
12249
12514
  maxEmbeddingsPerCall: (_c = overrideMaxEmbeddingsPerCall == null ? void 0 : overrideMaxEmbeddingsPerCall({ model })) != null ? _c : model.maxEmbeddingsPerCall,
12250
12515
  supportsParallelCalls: (_d = overrideSupportsParallelCalls == null ? void 0 : overrideSupportsParallelCalls({ model })) != null ? _d : model.supportsParallelCalls,
@@ -12283,11 +12548,11 @@ var doWrap3 = ({
12283
12548
  modelId,
12284
12549
  providerId
12285
12550
  }) => {
12286
- var _a21, _b, _c;
12551
+ var _a22, _b, _c;
12287
12552
  async function doTransform({ params }) {
12288
12553
  return transformParams ? await transformParams({ params, model }) : params;
12289
12554
  }
12290
- const maxImagesPerCallRaw = (_a21 = overrideMaxImagesPerCall == null ? void 0 : overrideMaxImagesPerCall({ model })) != null ? _a21 : model.maxImagesPerCall;
12555
+ const maxImagesPerCallRaw = (_a22 = overrideMaxImagesPerCall == null ? void 0 : overrideMaxImagesPerCall({ model })) != null ? _a22 : model.maxImagesPerCall;
12291
12556
  const maxImagesPerCall = maxImagesPerCallRaw instanceof Function ? maxImagesPerCallRaw.bind(model) : maxImagesPerCallRaw;
12292
12557
  return {
12293
12558
  specificationVersion: "v3",
@@ -12437,11 +12702,11 @@ function customProvider({
12437
12702
  var experimental_customProvider = customProvider;
12438
12703
 
12439
12704
  // src/registry/no-such-provider-error.ts
12440
- import { AISDKError as AISDKError24, NoSuchModelError as NoSuchModelError3 } from "@ai-sdk/provider";
12441
- var name20 = "AI_NoSuchProviderError";
12442
- var marker20 = `vercel.ai.error.${name20}`;
12443
- var symbol20 = Symbol.for(marker20);
12444
- var _a20;
12705
+ import { AISDKError as AISDKError25, NoSuchModelError as NoSuchModelError3 } from "@ai-sdk/provider";
12706
+ var name21 = "AI_NoSuchProviderError";
12707
+ var marker21 = `vercel.ai.error.${name21}`;
12708
+ var symbol21 = Symbol.for(marker21);
12709
+ var _a21;
12445
12710
  var NoSuchProviderError = class extends NoSuchModelError3 {
12446
12711
  constructor({
12447
12712
  modelId,
@@ -12450,16 +12715,16 @@ var NoSuchProviderError = class extends NoSuchModelError3 {
12450
12715
  availableProviders,
12451
12716
  message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
12452
12717
  }) {
12453
- super({ errorName: name20, modelId, modelType, message });
12454
- this[_a20] = true;
12718
+ super({ errorName: name21, modelId, modelType, message });
12719
+ this[_a21] = true;
12455
12720
  this.providerId = providerId;
12456
12721
  this.availableProviders = availableProviders;
12457
12722
  }
12458
12723
  static isInstance(error) {
12459
- return AISDKError24.hasMarker(error, marker20);
12724
+ return AISDKError25.hasMarker(error, marker21);
12460
12725
  }
12461
12726
  };
12462
- _a20 = symbol20;
12727
+ _a21 = symbol21;
12463
12728
 
12464
12729
  // src/registry/provider-registry.ts
12465
12730
  import {
@@ -12522,10 +12787,10 @@ var DefaultProviderRegistry = class {
12522
12787
  return [id.slice(0, index), id.slice(index + this.separator.length)];
12523
12788
  }
12524
12789
  languageModel(id) {
12525
- var _a21, _b;
12790
+ var _a22, _b;
12526
12791
  const [providerId, modelId] = this.splitId(id, "languageModel");
12527
- let model = (_b = (_a21 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
12528
- _a21,
12792
+ let model = (_b = (_a22 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
12793
+ _a22,
12529
12794
  modelId
12530
12795
  );
12531
12796
  if (model == null) {
@@ -12540,10 +12805,10 @@ var DefaultProviderRegistry = class {
12540
12805
  return model;
12541
12806
  }
12542
12807
  embeddingModel(id) {
12543
- var _a21;
12808
+ var _a22;
12544
12809
  const [providerId, modelId] = this.splitId(id, "embeddingModel");
12545
12810
  const provider = this.getProvider(providerId, "embeddingModel");
12546
- const model = (_a21 = provider.embeddingModel) == null ? void 0 : _a21.call(provider, modelId);
12811
+ const model = (_a22 = provider.embeddingModel) == null ? void 0 : _a22.call(provider, modelId);
12547
12812
  if (model == null) {
12548
12813
  throw new NoSuchModelError4({
12549
12814
  modelId: id,
@@ -12553,10 +12818,10 @@ var DefaultProviderRegistry = class {
12553
12818
  return model;
12554
12819
  }
12555
12820
  imageModel(id) {
12556
- var _a21;
12821
+ var _a22;
12557
12822
  const [providerId, modelId] = this.splitId(id, "imageModel");
12558
12823
  const provider = this.getProvider(providerId, "imageModel");
12559
- let model = (_a21 = provider.imageModel) == null ? void 0 : _a21.call(provider, modelId);
12824
+ let model = (_a22 = provider.imageModel) == null ? void 0 : _a22.call(provider, modelId);
12560
12825
  if (model == null) {
12561
12826
  throw new NoSuchModelError4({ modelId: id, modelType: "imageModel" });
12562
12827
  }
@@ -12569,10 +12834,10 @@ var DefaultProviderRegistry = class {
12569
12834
  return model;
12570
12835
  }
12571
12836
  transcriptionModel(id) {
12572
- var _a21;
12837
+ var _a22;
12573
12838
  const [providerId, modelId] = this.splitId(id, "transcriptionModel");
12574
12839
  const provider = this.getProvider(providerId, "transcriptionModel");
12575
- const model = (_a21 = provider.transcriptionModel) == null ? void 0 : _a21.call(provider, modelId);
12840
+ const model = (_a22 = provider.transcriptionModel) == null ? void 0 : _a22.call(provider, modelId);
12576
12841
  if (model == null) {
12577
12842
  throw new NoSuchModelError4({
12578
12843
  modelId: id,
@@ -12582,20 +12847,20 @@ var DefaultProviderRegistry = class {
12582
12847
  return model;
12583
12848
  }
12584
12849
  speechModel(id) {
12585
- var _a21;
12850
+ var _a22;
12586
12851
  const [providerId, modelId] = this.splitId(id, "speechModel");
12587
12852
  const provider = this.getProvider(providerId, "speechModel");
12588
- const model = (_a21 = provider.speechModel) == null ? void 0 : _a21.call(provider, modelId);
12853
+ const model = (_a22 = provider.speechModel) == null ? void 0 : _a22.call(provider, modelId);
12589
12854
  if (model == null) {
12590
12855
  throw new NoSuchModelError4({ modelId: id, modelType: "speechModel" });
12591
12856
  }
12592
12857
  return model;
12593
12858
  }
12594
12859
  rerankingModel(id) {
12595
- var _a21;
12860
+ var _a22;
12596
12861
  const [providerId, modelId] = this.splitId(id, "rerankingModel");
12597
12862
  const provider = this.getProvider(providerId, "rerankingModel");
12598
- const model = (_a21 = provider.rerankingModel) == null ? void 0 : _a21.call(provider, modelId);
12863
+ const model = (_a22 = provider.rerankingModel) == null ? void 0 : _a22.call(provider, modelId);
12599
12864
  if (model == null) {
12600
12865
  throw new NoSuchModelError4({ modelId: id, modelType: "rerankingModel" });
12601
12866
  }
@@ -12653,7 +12918,7 @@ async function rerank({
12653
12918
  }),
12654
12919
  tracer,
12655
12920
  fn: async () => {
12656
- var _a21, _b;
12921
+ var _a22, _b;
12657
12922
  const { ranking, response, providerMetadata, warnings } = await retry(
12658
12923
  () => recordSpan({
12659
12924
  name: "ai.rerank.doRerank",
@@ -12717,7 +12982,7 @@ async function rerank({
12717
12982
  providerMetadata,
12718
12983
  response: {
12719
12984
  id: response == null ? void 0 : response.id,
12720
- timestamp: (_a21 = response == null ? void 0 : response.timestamp) != null ? _a21 : /* @__PURE__ */ new Date(),
12985
+ timestamp: (_a22 = response == null ? void 0 : response.timestamp) != null ? _a22 : /* @__PURE__ */ new Date(),
12721
12986
  modelId: (_b = response == null ? void 0 : response.modelId) != null ? _b : model.modelId,
12722
12987
  headers: response == null ? void 0 : response.headers,
12723
12988
  body: response == null ? void 0 : response.body
@@ -12767,16 +13032,16 @@ async function transcribe({
12767
13032
  const audioData = audio instanceof URL ? (await downloadFn({ url: audio, abortSignal })).data : convertDataContentToUint8Array(audio);
12768
13033
  const result = await retry(
12769
13034
  () => {
12770
- var _a21;
13035
+ var _a22;
12771
13036
  return resolvedModel.doGenerate({
12772
13037
  audio: audioData,
12773
13038
  abortSignal,
12774
13039
  headers: headersWithUserAgent,
12775
13040
  providerOptions,
12776
- mediaType: (_a21 = detectMediaType({
13041
+ mediaType: (_a22 = detectMediaType({
12777
13042
  data: audioData,
12778
13043
  signatures: audioMediaTypeSignatures
12779
- })) != null ? _a21 : "audio/wav"
13044
+ })) != null ? _a22 : "audio/wav"
12780
13045
  });
12781
13046
  }
12782
13047
  );
@@ -12800,14 +13065,14 @@ async function transcribe({
12800
13065
  }
12801
13066
  var DefaultTranscriptionResult = class {
12802
13067
  constructor(options) {
12803
- var _a21;
13068
+ var _a22;
12804
13069
  this.text = options.text;
12805
13070
  this.segments = options.segments;
12806
13071
  this.language = options.language;
12807
13072
  this.durationInSeconds = options.durationInSeconds;
12808
13073
  this.warnings = options.warnings;
12809
13074
  this.responses = options.responses;
12810
- this.providerMetadata = (_a21 = options.providerMetadata) != null ? _a21 : {};
13075
+ this.providerMetadata = (_a22 = options.providerMetadata) != null ? _a22 : {};
12811
13076
  }
12812
13077
  };
12813
13078
 
@@ -12850,7 +13115,7 @@ async function callCompletionApi({
12850
13115
  onError,
12851
13116
  fetch: fetch2 = getOriginalFetch()
12852
13117
  }) {
12853
- var _a21;
13118
+ var _a22;
12854
13119
  try {
12855
13120
  setLoading(true);
12856
13121
  setError(void 0);
@@ -12878,7 +13143,7 @@ async function callCompletionApi({
12878
13143
  });
12879
13144
  if (!response.ok) {
12880
13145
  throw new Error(
12881
- (_a21 = await response.text()) != null ? _a21 : "Failed to fetch the chat response."
13146
+ (_a22 = await response.text()) != null ? _a22 : "Failed to fetch the chat response."
12882
13147
  );
12883
13148
  }
12884
13149
  if (!response.body) {
@@ -12964,12 +13229,12 @@ async function convertFileListToFileUIParts(files) {
12964
13229
  }
12965
13230
  return Promise.all(
12966
13231
  Array.from(files).map(async (file) => {
12967
- const { name: name21, type } = file;
13232
+ const { name: name22, type } = file;
12968
13233
  const dataUrl = await new Promise((resolve3, reject) => {
12969
13234
  const reader = new FileReader();
12970
13235
  reader.onload = (readerEvent) => {
12971
- var _a21;
12972
- resolve3((_a21 = readerEvent.target) == null ? void 0 : _a21.result);
13236
+ var _a22;
13237
+ resolve3((_a22 = readerEvent.target) == null ? void 0 : _a22.result);
12973
13238
  };
12974
13239
  reader.onerror = (error) => reject(error);
12975
13240
  reader.readAsDataURL(file);
@@ -12977,7 +13242,7 @@ async function convertFileListToFileUIParts(files) {
12977
13242
  return {
12978
13243
  type: "file",
12979
13244
  mediaType: type,
12980
- filename: name21,
13245
+ filename: name22,
12981
13246
  url: dataUrl
12982
13247
  };
12983
13248
  })
@@ -13014,7 +13279,7 @@ var HttpChatTransport = class {
13014
13279
  abortSignal,
13015
13280
  ...options
13016
13281
  }) {
13017
- var _a21, _b, _c, _d, _e;
13282
+ var _a22, _b, _c, _d, _e;
13018
13283
  const resolvedBody = await resolve2(this.body);
13019
13284
  const resolvedHeaders = await resolve2(this.headers);
13020
13285
  const resolvedCredentials = await resolve2(this.credentials);
@@ -13022,7 +13287,7 @@ var HttpChatTransport = class {
13022
13287
  ...normalizeHeaders(resolvedHeaders),
13023
13288
  ...normalizeHeaders(options.headers)
13024
13289
  };
13025
- const preparedRequest = await ((_a21 = this.prepareSendMessagesRequest) == null ? void 0 : _a21.call(this, {
13290
+ const preparedRequest = await ((_a22 = this.prepareSendMessagesRequest) == null ? void 0 : _a22.call(this, {
13026
13291
  api: this.api,
13027
13292
  id: options.chatId,
13028
13293
  messages: options.messages,
@@ -13066,7 +13331,7 @@ var HttpChatTransport = class {
13066
13331
  return this.processResponseStream(response.body);
13067
13332
  }
13068
13333
  async reconnectToStream(options) {
13069
- var _a21, _b, _c, _d, _e;
13334
+ var _a22, _b, _c, _d, _e;
13070
13335
  const resolvedBody = await resolve2(this.body);
13071
13336
  const resolvedHeaders = await resolve2(this.headers);
13072
13337
  const resolvedCredentials = await resolve2(this.credentials);
@@ -13074,7 +13339,7 @@ var HttpChatTransport = class {
13074
13339
  ...normalizeHeaders(resolvedHeaders),
13075
13340
  ...normalizeHeaders(options.headers)
13076
13341
  };
13077
- const preparedRequest = await ((_a21 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a21.call(this, {
13342
+ const preparedRequest = await ((_a22 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a22.call(this, {
13078
13343
  api: this.api,
13079
13344
  id: options.chatId,
13080
13345
  body: { ...resolvedBody, ...options.body },
@@ -13152,11 +13417,11 @@ var AbstractChat = class {
13152
13417
  * If a messageId is provided, the message will be replaced.
13153
13418
  */
13154
13419
  this.sendMessage = async (message, options) => {
13155
- var _a21, _b, _c, _d;
13420
+ var _a22, _b, _c, _d;
13156
13421
  if (message == null) {
13157
13422
  await this.makeRequest({
13158
13423
  trigger: "submit-message",
13159
- messageId: (_a21 = this.lastMessage) == null ? void 0 : _a21.id,
13424
+ messageId: (_a22 = this.lastMessage) == null ? void 0 : _a22.id,
13160
13425
  ...options
13161
13426
  });
13162
13427
  return;
@@ -13266,11 +13531,11 @@ var AbstractChat = class {
13266
13531
  }
13267
13532
  if (this.status !== "streaming" && this.status !== "submitted" && this.sendAutomaticallyWhen) {
13268
13533
  this.shouldSendAutomatically().then((shouldSend) => {
13269
- var _a21;
13534
+ var _a22;
13270
13535
  if (shouldSend) {
13271
13536
  this.makeRequest({
13272
13537
  trigger: "submit-message",
13273
- messageId: (_a21 = this.lastMessage) == null ? void 0 : _a21.id,
13538
+ messageId: (_a22 = this.lastMessage) == null ? void 0 : _a22.id,
13274
13539
  ...options
13275
13540
  });
13276
13541
  }
@@ -13296,11 +13561,11 @@ var AbstractChat = class {
13296
13561
  }
13297
13562
  if (this.status !== "streaming" && this.status !== "submitted" && this.sendAutomaticallyWhen) {
13298
13563
  this.shouldSendAutomatically().then((shouldSend) => {
13299
- var _a21;
13564
+ var _a22;
13300
13565
  if (shouldSend) {
13301
13566
  this.makeRequest({
13302
13567
  trigger: "submit-message",
13303
- messageId: (_a21 = this.lastMessage) == null ? void 0 : _a21.id,
13568
+ messageId: (_a22 = this.lastMessage) == null ? void 0 : _a22.id,
13304
13569
  ...options
13305
13570
  });
13306
13571
  }
@@ -13313,10 +13578,10 @@ var AbstractChat = class {
13313
13578
  * Abort the current request immediately, keep the generated tokens if any.
13314
13579
  */
13315
13580
  this.stop = async () => {
13316
- var _a21;
13581
+ var _a22;
13317
13582
  if (this.status !== "streaming" && this.status !== "submitted")
13318
13583
  return;
13319
- if ((_a21 = this.activeResponse) == null ? void 0 : _a21.abortController) {
13584
+ if ((_a22 = this.activeResponse) == null ? void 0 : _a22.abortController) {
13320
13585
  this.activeResponse.abortController.abort();
13321
13586
  }
13322
13587
  };
@@ -13382,7 +13647,7 @@ var AbstractChat = class {
13382
13647
  body,
13383
13648
  messageId
13384
13649
  }) {
13385
- var _a21, _b, _c;
13650
+ var _a22, _b, _c;
13386
13651
  let resumeStream;
13387
13652
  if (trigger === "resume-stream") {
13388
13653
  try {
@@ -13442,9 +13707,9 @@ var AbstractChat = class {
13442
13707
  () => job({
13443
13708
  state: activeResponse.state,
13444
13709
  write: () => {
13445
- var _a22;
13710
+ var _a23;
13446
13711
  this.setStatus({ status: "streaming" });
13447
- const replaceLastMessage = activeResponse.state.message.id === ((_a22 = this.lastMessage) == null ? void 0 : _a22.id);
13712
+ const replaceLastMessage = activeResponse.state.message.id === ((_a23 = this.lastMessage) == null ? void 0 : _a23.id);
13448
13713
  if (replaceLastMessage) {
13449
13714
  this.state.replaceMessage(
13450
13715
  this.state.messages.length - 1,
@@ -13496,7 +13761,7 @@ var AbstractChat = class {
13496
13761
  isAbort,
13497
13762
  isDisconnect,
13498
13763
  isError,
13499
- finishReason: (_a21 = this.activeResponse) == null ? void 0 : _a21.state.finishReason
13764
+ finishReason: (_a22 = this.activeResponse) == null ? void 0 : _a22.state.finishReason
13500
13765
  });
13501
13766
  } catch (err) {
13502
13767
  console.error(err);
@@ -13634,7 +13899,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
13634
13899
  }
13635
13900
  };
13636
13901
  export {
13637
- AISDKError21 as AISDKError,
13902
+ AISDKError22 as AISDKError,
13638
13903
  APICallError,
13639
13904
  AbstractChat,
13640
13905
  DefaultChatTransport,
@@ -13651,6 +13916,7 @@ export {
13651
13916
  InvalidResponseDataError,
13652
13917
  InvalidStreamPartError,
13653
13918
  InvalidToolApprovalError,
13919
+ InvalidToolApprovalSignatureError,
13654
13920
  InvalidToolInputError,
13655
13921
  JSONParseError,
13656
13922
  JsonToSseTransformStream,
@@ -13682,7 +13948,7 @@ export {
13682
13948
  UnsupportedFunctionalityError,
13683
13949
  UnsupportedModelVersionError,
13684
13950
  addToolInputExamplesMiddleware,
13685
- asSchema5 as asSchema,
13951
+ asSchema6 as asSchema,
13686
13952
  assistantModelMessageSchema,
13687
13953
  bindTelemetryIntegration,
13688
13954
  callCompletionApi,