ai 5.0.279 → 5.0.281

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -4,8 +4,8 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
6
  var __export = (target, all) => {
7
- for (var name16 in all)
8
- __defProp(target, name16, { get: all[name16], enumerable: true });
7
+ for (var name17 in all)
8
+ __defProp(target, name17, { get: all[name17], enumerable: true });
9
9
  };
10
10
  var __copyProps = (to, from, except, desc) => {
11
11
  if (from && typeof from === "object" || typeof from === "function") {
@@ -20,44 +20,45 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var src_exports = {};
22
22
  __export(src_exports, {
23
- AISDKError: () => import_provider17.AISDKError,
24
- APICallError: () => import_provider17.APICallError,
23
+ AISDKError: () => import_provider18.AISDKError,
24
+ APICallError: () => import_provider18.APICallError,
25
25
  AbstractChat: () => AbstractChat,
26
26
  DefaultChatTransport: () => DefaultChatTransport,
27
27
  DownloadError: () => DownloadError,
28
- EmptyResponseBodyError: () => import_provider17.EmptyResponseBodyError,
28
+ EmptyResponseBodyError: () => import_provider18.EmptyResponseBodyError,
29
29
  Experimental_Agent: () => Agent,
30
30
  HttpChatTransport: () => HttpChatTransport,
31
31
  InvalidArgumentError: () => InvalidArgumentError,
32
32
  InvalidDataContentError: () => InvalidDataContentError,
33
33
  InvalidMessageRoleError: () => InvalidMessageRoleError,
34
- InvalidPromptError: () => import_provider17.InvalidPromptError,
35
- InvalidResponseDataError: () => import_provider17.InvalidResponseDataError,
34
+ InvalidPromptError: () => import_provider18.InvalidPromptError,
35
+ InvalidResponseDataError: () => import_provider18.InvalidResponseDataError,
36
36
  InvalidStreamPartError: () => InvalidStreamPartError,
37
37
  InvalidToolInputError: () => InvalidToolInputError,
38
- JSONParseError: () => import_provider17.JSONParseError,
38
+ JSONParseError: () => import_provider18.JSONParseError,
39
39
  JsonToSseTransformStream: () => JsonToSseTransformStream,
40
- LoadAPIKeyError: () => import_provider17.LoadAPIKeyError,
41
- LoadSettingError: () => import_provider17.LoadSettingError,
40
+ LoadAPIKeyError: () => import_provider18.LoadAPIKeyError,
41
+ LoadSettingError: () => import_provider18.LoadSettingError,
42
42
  MessageConversionError: () => MessageConversionError,
43
- NoContentGeneratedError: () => import_provider17.NoContentGeneratedError,
43
+ NoContentGeneratedError: () => import_provider18.NoContentGeneratedError,
44
44
  NoImageGeneratedError: () => NoImageGeneratedError,
45
45
  NoObjectGeneratedError: () => NoObjectGeneratedError,
46
46
  NoOutputGeneratedError: () => NoOutputGeneratedError,
47
47
  NoOutputSpecifiedError: () => NoOutputSpecifiedError,
48
48
  NoSpeechGeneratedError: () => NoSpeechGeneratedError,
49
- NoSuchModelError: () => import_provider17.NoSuchModelError,
49
+ NoSuchModelError: () => import_provider18.NoSuchModelError,
50
50
  NoSuchProviderError: () => NoSuchProviderError,
51
51
  NoSuchToolError: () => NoSuchToolError,
52
52
  Output: () => output_exports,
53
53
  RetryError: () => RetryError,
54
54
  SerialJobExecutor: () => SerialJobExecutor,
55
55
  TextStreamChatTransport: () => TextStreamChatTransport,
56
- TooManyEmbeddingValuesForCallError: () => import_provider17.TooManyEmbeddingValuesForCallError,
56
+ TooManyEmbeddingValuesForCallError: () => import_provider18.TooManyEmbeddingValuesForCallError,
57
57
  ToolCallRepairError: () => ToolCallRepairError,
58
- TypeValidationError: () => import_provider17.TypeValidationError,
58
+ ToolChoiceViolationError: () => ToolChoiceViolationError,
59
+ TypeValidationError: () => import_provider18.TypeValidationError,
59
60
  UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
60
- UnsupportedFunctionalityError: () => import_provider17.UnsupportedFunctionalityError,
61
+ UnsupportedFunctionalityError: () => import_provider18.UnsupportedFunctionalityError,
61
62
  UnsupportedModelVersionError: () => UnsupportedModelVersionError,
62
63
  asSchema: () => import_provider_utils35.asSchema,
63
64
  assistantModelMessageSchema: () => assistantModelMessageSchema,
@@ -157,6 +158,35 @@ var NoOutputSpecifiedError = class extends import_provider.AISDKError {
157
158
  };
158
159
  _a = symbol;
159
160
 
161
+ // src/error/tool-choice-violation-error.ts
162
+ var import_provider2 = require("@ai-sdk/provider");
163
+ var name2 = "AI_ToolChoiceViolationError";
164
+ var marker2 = `vercel.ai.error.${name2}`;
165
+ var symbol2 = Symbol.for(marker2);
166
+ var _a2;
167
+ var ToolChoiceViolationError = class extends import_provider2.AISDKError {
168
+ constructor({
169
+ toolChoice,
170
+ finishReason,
171
+ provider,
172
+ modelId,
173
+ content,
174
+ message = "Model response contained a tool call even though tool choice was none."
175
+ }) {
176
+ super({ name: name2, message });
177
+ this[_a2] = true;
178
+ this.toolChoice = toolChoice;
179
+ this.finishReason = finishReason;
180
+ this.provider = provider;
181
+ this.modelId = modelId;
182
+ this.content = content;
183
+ }
184
+ static isInstance(error) {
185
+ return import_provider2.AISDKError.hasMarker(error, marker2);
186
+ }
187
+ };
188
+ _a2 = symbol2;
189
+
160
190
  // src/logger/log-warnings.ts
161
191
  function formatWarning(warning) {
162
192
  const prefix = "AI SDK Warning:";
@@ -227,108 +257,108 @@ var logWarnings = (warnings) => {
227
257
  var import_gateway = require("@ai-sdk/gateway");
228
258
 
229
259
  // src/error/index.ts
230
- var import_provider17 = require("@ai-sdk/provider");
260
+ var import_provider18 = require("@ai-sdk/provider");
231
261
 
232
262
  // src/error/invalid-argument-error.ts
233
- var import_provider2 = require("@ai-sdk/provider");
234
- var name2 = "AI_InvalidArgumentError";
235
- var marker2 = `vercel.ai.error.${name2}`;
236
- var symbol2 = Symbol.for(marker2);
237
- var _a2;
238
- var InvalidArgumentError = class extends import_provider2.AISDKError {
263
+ var import_provider3 = require("@ai-sdk/provider");
264
+ var name3 = "AI_InvalidArgumentError";
265
+ var marker3 = `vercel.ai.error.${name3}`;
266
+ var symbol3 = Symbol.for(marker3);
267
+ var _a3;
268
+ var InvalidArgumentError = class extends import_provider3.AISDKError {
239
269
  constructor({
240
270
  parameter,
241
271
  value,
242
272
  message
243
273
  }) {
244
274
  super({
245
- name: name2,
275
+ name: name3,
246
276
  message: `Invalid argument for parameter ${parameter}: ${message}`
247
277
  });
248
- this[_a2] = true;
278
+ this[_a3] = true;
249
279
  this.parameter = parameter;
250
280
  this.value = value;
251
281
  }
252
282
  static isInstance(error) {
253
- return import_provider2.AISDKError.hasMarker(error, marker2);
283
+ return import_provider3.AISDKError.hasMarker(error, marker3);
254
284
  }
255
285
  };
256
- _a2 = symbol2;
286
+ _a3 = symbol3;
257
287
 
258
288
  // src/error/invalid-stream-part-error.ts
259
- var import_provider3 = require("@ai-sdk/provider");
260
- var name3 = "AI_InvalidStreamPartError";
261
- var marker3 = `vercel.ai.error.${name3}`;
262
- var symbol3 = Symbol.for(marker3);
263
- var _a3;
264
- var InvalidStreamPartError = class extends import_provider3.AISDKError {
289
+ var import_provider4 = require("@ai-sdk/provider");
290
+ var name4 = "AI_InvalidStreamPartError";
291
+ var marker4 = `vercel.ai.error.${name4}`;
292
+ var symbol4 = Symbol.for(marker4);
293
+ var _a4;
294
+ var InvalidStreamPartError = class extends import_provider4.AISDKError {
265
295
  constructor({
266
296
  chunk,
267
297
  message
268
298
  }) {
269
- super({ name: name3, message });
270
- this[_a3] = true;
299
+ super({ name: name4, message });
300
+ this[_a4] = true;
271
301
  this.chunk = chunk;
272
302
  }
273
303
  static isInstance(error) {
274
- return import_provider3.AISDKError.hasMarker(error, marker3);
304
+ return import_provider4.AISDKError.hasMarker(error, marker4);
275
305
  }
276
306
  };
277
- _a3 = symbol3;
307
+ _a4 = symbol4;
278
308
 
279
309
  // src/error/invalid-tool-input-error.ts
280
- var import_provider4 = require("@ai-sdk/provider");
281
- var name4 = "AI_InvalidToolInputError";
282
- var marker4 = `vercel.ai.error.${name4}`;
283
- var symbol4 = Symbol.for(marker4);
284
- var _a4;
285
- var InvalidToolInputError = class extends import_provider4.AISDKError {
310
+ var import_provider5 = require("@ai-sdk/provider");
311
+ var name5 = "AI_InvalidToolInputError";
312
+ var marker5 = `vercel.ai.error.${name5}`;
313
+ var symbol5 = Symbol.for(marker5);
314
+ var _a5;
315
+ var InvalidToolInputError = class extends import_provider5.AISDKError {
286
316
  constructor({
287
317
  toolInput,
288
318
  toolName,
289
319
  cause,
290
- message = `Invalid input for tool ${toolName}: ${(0, import_provider4.getErrorMessage)(cause)}`
320
+ message = `Invalid input for tool ${toolName}: ${(0, import_provider5.getErrorMessage)(cause)}`
291
321
  }) {
292
- super({ name: name4, message, cause });
293
- this[_a4] = true;
322
+ super({ name: name5, message, cause });
323
+ this[_a5] = true;
294
324
  this.toolInput = toolInput;
295
325
  this.toolName = toolName;
296
326
  }
297
327
  static isInstance(error) {
298
- return import_provider4.AISDKError.hasMarker(error, marker4);
328
+ return import_provider5.AISDKError.hasMarker(error, marker5);
299
329
  }
300
330
  };
301
- _a4 = symbol4;
331
+ _a5 = symbol5;
302
332
 
303
333
  // src/error/no-image-generated-error.ts
304
- var import_provider5 = require("@ai-sdk/provider");
305
- var name5 = "AI_NoImageGeneratedError";
306
- var marker5 = `vercel.ai.error.${name5}`;
307
- var symbol5 = Symbol.for(marker5);
308
- var _a5;
309
- var NoImageGeneratedError = class extends import_provider5.AISDKError {
334
+ var import_provider6 = require("@ai-sdk/provider");
335
+ var name6 = "AI_NoImageGeneratedError";
336
+ var marker6 = `vercel.ai.error.${name6}`;
337
+ var symbol6 = Symbol.for(marker6);
338
+ var _a6;
339
+ var NoImageGeneratedError = class extends import_provider6.AISDKError {
310
340
  constructor({
311
341
  message = "No image generated.",
312
342
  cause,
313
343
  responses
314
344
  }) {
315
- super({ name: name5, message, cause });
316
- this[_a5] = true;
345
+ super({ name: name6, message, cause });
346
+ this[_a6] = true;
317
347
  this.responses = responses;
318
348
  }
319
349
  static isInstance(error) {
320
- return import_provider5.AISDKError.hasMarker(error, marker5);
350
+ return import_provider6.AISDKError.hasMarker(error, marker6);
321
351
  }
322
352
  };
323
- _a5 = symbol5;
353
+ _a6 = symbol6;
324
354
 
325
355
  // src/error/no-object-generated-error.ts
326
- var import_provider6 = require("@ai-sdk/provider");
327
- var name6 = "AI_NoObjectGeneratedError";
328
- var marker6 = `vercel.ai.error.${name6}`;
329
- var symbol6 = Symbol.for(marker6);
330
- var _a6;
331
- var NoObjectGeneratedError = class extends import_provider6.AISDKError {
356
+ var import_provider7 = require("@ai-sdk/provider");
357
+ var name7 = "AI_NoObjectGeneratedError";
358
+ var marker7 = `vercel.ai.error.${name7}`;
359
+ var symbol7 = Symbol.for(marker7);
360
+ var _a7;
361
+ var NoObjectGeneratedError = class extends import_provider7.AISDKError {
332
362
  constructor({
333
363
  message = "No object generated.",
334
364
  cause,
@@ -337,43 +367,43 @@ var NoObjectGeneratedError = class extends import_provider6.AISDKError {
337
367
  usage,
338
368
  finishReason
339
369
  }) {
340
- super({ name: name6, message, cause });
341
- this[_a6] = true;
370
+ super({ name: name7, message, cause });
371
+ this[_a7] = true;
342
372
  this.text = text2;
343
373
  this.response = response;
344
374
  this.usage = usage;
345
375
  this.finishReason = finishReason;
346
376
  }
347
377
  static isInstance(error) {
348
- return import_provider6.AISDKError.hasMarker(error, marker6);
378
+ return import_provider7.AISDKError.hasMarker(error, marker7);
349
379
  }
350
380
  };
351
- _a6 = symbol6;
381
+ _a7 = symbol7;
352
382
 
353
383
  // src/error/no-output-generated-error.ts
354
- var import_provider7 = require("@ai-sdk/provider");
355
- var name7 = "AI_NoOutputGeneratedError";
356
- var marker7 = `vercel.ai.error.${name7}`;
357
- var symbol7 = Symbol.for(marker7);
358
- var _a7;
359
- var NoOutputGeneratedError = class extends import_provider7.AISDKError {
384
+ var import_provider8 = require("@ai-sdk/provider");
385
+ var name8 = "AI_NoOutputGeneratedError";
386
+ var marker8 = `vercel.ai.error.${name8}`;
387
+ var symbol8 = Symbol.for(marker8);
388
+ var _a8;
389
+ var NoOutputGeneratedError = class extends import_provider8.AISDKError {
360
390
  // used in isInstance
361
391
  constructor({
362
392
  message = "No output generated.",
363
393
  cause
364
394
  } = {}) {
365
- super({ name: name7, message, cause });
366
- this[_a7] = true;
395
+ super({ name: name8, message, cause });
396
+ this[_a8] = true;
367
397
  }
368
398
  static isInstance(error) {
369
- return import_provider7.AISDKError.hasMarker(error, marker7);
399
+ return import_provider8.AISDKError.hasMarker(error, marker8);
370
400
  }
371
401
  };
372
- _a7 = symbol7;
402
+ _a8 = symbol8;
373
403
 
374
404
  // src/error/no-speech-generated-error.ts
375
- var import_provider8 = require("@ai-sdk/provider");
376
- var NoSpeechGeneratedError = class extends import_provider8.AISDKError {
405
+ var import_provider9 = require("@ai-sdk/provider");
406
+ var NoSpeechGeneratedError = class extends import_provider9.AISDKError {
377
407
  constructor(options) {
378
408
  super({
379
409
  name: "AI_NoSpeechGeneratedError",
@@ -384,53 +414,53 @@ var NoSpeechGeneratedError = class extends import_provider8.AISDKError {
384
414
  };
385
415
 
386
416
  // src/error/no-such-tool-error.ts
387
- var import_provider9 = require("@ai-sdk/provider");
388
- var name8 = "AI_NoSuchToolError";
389
- var marker8 = `vercel.ai.error.${name8}`;
390
- var symbol8 = Symbol.for(marker8);
391
- var _a8;
392
- var NoSuchToolError = class extends import_provider9.AISDKError {
417
+ var import_provider10 = require("@ai-sdk/provider");
418
+ var name9 = "AI_NoSuchToolError";
419
+ var marker9 = `vercel.ai.error.${name9}`;
420
+ var symbol9 = Symbol.for(marker9);
421
+ var _a9;
422
+ var NoSuchToolError = class extends import_provider10.AISDKError {
393
423
  constructor({
394
424
  toolName,
395
425
  availableTools = void 0,
396
426
  message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
397
427
  }) {
398
- super({ name: name8, message });
399
- this[_a8] = true;
428
+ super({ name: name9, message });
429
+ this[_a9] = true;
400
430
  this.toolName = toolName;
401
431
  this.availableTools = availableTools;
402
432
  }
403
433
  static isInstance(error) {
404
- return import_provider9.AISDKError.hasMarker(error, marker8);
434
+ return import_provider10.AISDKError.hasMarker(error, marker9);
405
435
  }
406
436
  };
407
- _a8 = symbol8;
437
+ _a9 = symbol9;
408
438
 
409
439
  // src/error/tool-call-repair-error.ts
410
- var import_provider10 = require("@ai-sdk/provider");
411
- var name9 = "AI_ToolCallRepairError";
412
- var marker9 = `vercel.ai.error.${name9}`;
413
- var symbol9 = Symbol.for(marker9);
414
- var _a9;
415
- var ToolCallRepairError = class extends import_provider10.AISDKError {
440
+ var import_provider11 = require("@ai-sdk/provider");
441
+ var name10 = "AI_ToolCallRepairError";
442
+ var marker10 = `vercel.ai.error.${name10}`;
443
+ var symbol10 = Symbol.for(marker10);
444
+ var _a10;
445
+ var ToolCallRepairError = class extends import_provider11.AISDKError {
416
446
  constructor({
417
447
  cause,
418
448
  originalError,
419
- message = `Error repairing tool call: ${(0, import_provider10.getErrorMessage)(cause)}`
449
+ message = `Error repairing tool call: ${(0, import_provider11.getErrorMessage)(cause)}`
420
450
  }) {
421
- super({ name: name9, message, cause });
422
- this[_a9] = true;
451
+ super({ name: name10, message, cause });
452
+ this[_a10] = true;
423
453
  this.originalError = originalError;
424
454
  }
425
455
  static isInstance(error) {
426
- return import_provider10.AISDKError.hasMarker(error, marker9);
456
+ return import_provider11.AISDKError.hasMarker(error, marker10);
427
457
  }
428
458
  };
429
- _a9 = symbol9;
459
+ _a10 = symbol10;
430
460
 
431
461
  // src/error/unsupported-model-version-error.ts
432
- var import_provider11 = require("@ai-sdk/provider");
433
- var UnsupportedModelVersionError = class extends import_provider11.AISDKError {
462
+ var import_provider12 = require("@ai-sdk/provider");
463
+ var UnsupportedModelVersionError = class extends import_provider12.AISDKError {
434
464
  constructor(options) {
435
465
  super({
436
466
  name: "AI_UnsupportedModelVersionError",
@@ -443,76 +473,76 @@ var UnsupportedModelVersionError = class extends import_provider11.AISDKError {
443
473
  };
444
474
 
445
475
  // src/prompt/invalid-data-content-error.ts
446
- var import_provider12 = require("@ai-sdk/provider");
447
- var name10 = "AI_InvalidDataContentError";
448
- var marker10 = `vercel.ai.error.${name10}`;
449
- var symbol10 = Symbol.for(marker10);
450
- var _a10;
451
- var InvalidDataContentError = class extends import_provider12.AISDKError {
476
+ var import_provider13 = require("@ai-sdk/provider");
477
+ var name11 = "AI_InvalidDataContentError";
478
+ var marker11 = `vercel.ai.error.${name11}`;
479
+ var symbol11 = Symbol.for(marker11);
480
+ var _a11;
481
+ var InvalidDataContentError = class extends import_provider13.AISDKError {
452
482
  constructor({
453
483
  content,
454
484
  cause,
455
485
  message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
456
486
  }) {
457
- super({ name: name10, message, cause });
458
- this[_a10] = true;
487
+ super({ name: name11, message, cause });
488
+ this[_a11] = true;
459
489
  this.content = content;
460
490
  }
461
491
  static isInstance(error) {
462
- return import_provider12.AISDKError.hasMarker(error, marker10);
492
+ return import_provider13.AISDKError.hasMarker(error, marker11);
463
493
  }
464
494
  };
465
- _a10 = symbol10;
495
+ _a11 = symbol11;
466
496
 
467
497
  // src/prompt/invalid-message-role-error.ts
468
- var import_provider13 = require("@ai-sdk/provider");
469
- var name11 = "AI_InvalidMessageRoleError";
470
- var marker11 = `vercel.ai.error.${name11}`;
471
- var symbol11 = Symbol.for(marker11);
472
- var _a11;
473
- var InvalidMessageRoleError = class extends import_provider13.AISDKError {
498
+ var import_provider14 = require("@ai-sdk/provider");
499
+ var name12 = "AI_InvalidMessageRoleError";
500
+ var marker12 = `vercel.ai.error.${name12}`;
501
+ var symbol12 = Symbol.for(marker12);
502
+ var _a12;
503
+ var InvalidMessageRoleError = class extends import_provider14.AISDKError {
474
504
  constructor({
475
505
  role,
476
506
  message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
477
507
  }) {
478
- super({ name: name11, message });
479
- this[_a11] = true;
508
+ super({ name: name12, message });
509
+ this[_a12] = true;
480
510
  this.role = role;
481
511
  }
482
512
  static isInstance(error) {
483
- return import_provider13.AISDKError.hasMarker(error, marker11);
513
+ return import_provider14.AISDKError.hasMarker(error, marker12);
484
514
  }
485
515
  };
486
- _a11 = symbol11;
516
+ _a12 = symbol12;
487
517
 
488
518
  // src/prompt/message-conversion-error.ts
489
- var import_provider14 = require("@ai-sdk/provider");
490
- var name12 = "AI_MessageConversionError";
491
- var marker12 = `vercel.ai.error.${name12}`;
492
- var symbol12 = Symbol.for(marker12);
493
- var _a12;
494
- var MessageConversionError = class extends import_provider14.AISDKError {
519
+ var import_provider15 = require("@ai-sdk/provider");
520
+ var name13 = "AI_MessageConversionError";
521
+ var marker13 = `vercel.ai.error.${name13}`;
522
+ var symbol13 = Symbol.for(marker13);
523
+ var _a13;
524
+ var MessageConversionError = class extends import_provider15.AISDKError {
495
525
  constructor({
496
526
  originalMessage,
497
527
  message
498
528
  }) {
499
- super({ name: name12, message });
500
- this[_a12] = true;
529
+ super({ name: name13, message });
530
+ this[_a13] = true;
501
531
  this.originalMessage = originalMessage;
502
532
  }
503
533
  static isInstance(error) {
504
- return import_provider14.AISDKError.hasMarker(error, marker12);
534
+ return import_provider15.AISDKError.hasMarker(error, marker13);
505
535
  }
506
536
  };
507
- _a12 = symbol12;
537
+ _a13 = symbol13;
508
538
 
509
539
  // src/util/download/download-error.ts
510
- var import_provider15 = require("@ai-sdk/provider");
511
- var name13 = "AI_DownloadError";
512
- var marker13 = `vercel.ai.error.${name13}`;
513
- var symbol13 = Symbol.for(marker13);
514
- var _a13;
515
- var DownloadError = class extends import_provider15.AISDKError {
540
+ var import_provider16 = require("@ai-sdk/provider");
541
+ var name14 = "AI_DownloadError";
542
+ var marker14 = `vercel.ai.error.${name14}`;
543
+ var symbol14 = Symbol.for(marker14);
544
+ var _a14;
545
+ var DownloadError = class extends import_provider16.AISDKError {
516
546
  constructor({
517
547
  url,
518
548
  statusCode,
@@ -520,41 +550,41 @@ var DownloadError = class extends import_provider15.AISDKError {
520
550
  cause,
521
551
  message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`
522
552
  }) {
523
- super({ name: name13, message, cause });
524
- this[_a13] = true;
553
+ super({ name: name14, message, cause });
554
+ this[_a14] = true;
525
555
  this.url = url;
526
556
  this.statusCode = statusCode;
527
557
  this.statusText = statusText;
528
558
  }
529
559
  static isInstance(error) {
530
- return import_provider15.AISDKError.hasMarker(error, marker13);
560
+ return import_provider16.AISDKError.hasMarker(error, marker14);
531
561
  }
532
562
  };
533
- _a13 = symbol13;
563
+ _a14 = symbol14;
534
564
 
535
565
  // src/util/retry-error.ts
536
- var import_provider16 = require("@ai-sdk/provider");
537
- var name14 = "AI_RetryError";
538
- var marker14 = `vercel.ai.error.${name14}`;
539
- var symbol14 = Symbol.for(marker14);
540
- var _a14;
541
- var RetryError = class extends import_provider16.AISDKError {
566
+ var import_provider17 = require("@ai-sdk/provider");
567
+ var name15 = "AI_RetryError";
568
+ var marker15 = `vercel.ai.error.${name15}`;
569
+ var symbol15 = Symbol.for(marker15);
570
+ var _a15;
571
+ var RetryError = class extends import_provider17.AISDKError {
542
572
  constructor({
543
573
  message,
544
574
  reason,
545
575
  errors
546
576
  }) {
547
- super({ name: name14, message });
548
- this[_a14] = true;
577
+ super({ name: name15, message });
578
+ this[_a15] = true;
549
579
  this.reason = reason;
550
580
  this.errors = errors;
551
581
  this.lastError = errors[errors.length - 1];
552
582
  }
553
583
  static isInstance(error) {
554
- return import_provider16.AISDKError.hasMarker(error, marker14);
584
+ return import_provider17.AISDKError.hasMarker(error, marker15);
555
585
  }
556
586
  };
557
- _a14 = symbol14;
587
+ _a15 = symbol15;
558
588
 
559
589
  // src/model/resolve-model.ts
560
590
  function resolveLanguageModel(model) {
@@ -599,8 +629,8 @@ function resolveImageModel(model) {
599
629
  return getGlobalProvider().imageModel(model);
600
630
  }
601
631
  function getGlobalProvider() {
602
- var _a16;
603
- return (_a16 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a16 : import_gateway.gateway;
632
+ var _a17;
633
+ return (_a17 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a17 : import_gateway.gateway;
604
634
  }
605
635
 
606
636
  // src/prompt/convert-to-language-model-prompt.ts
@@ -817,7 +847,7 @@ function detectMediaType({
817
847
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
818
848
 
819
849
  // src/version.ts
820
- var VERSION = true ? "5.0.279" : "0.0.0-test";
850
+ var VERSION = true ? "5.0.281" : "0.0.0-test";
821
851
 
822
852
  // src/util/download/download.ts
823
853
  var download = async ({
@@ -825,7 +855,7 @@ var download = async ({
825
855
  maxBytes,
826
856
  abortSignal
827
857
  }) => {
828
- var _a16;
858
+ var _a17;
829
859
  const urlText = url.toString();
830
860
  try {
831
861
  const headers = (0, import_provider_utils2.withUserAgentSuffix)(
@@ -853,7 +883,7 @@ var download = async ({
853
883
  });
854
884
  return {
855
885
  data,
856
- mediaType: (_a16 = response.headers.get("content-type")) != null ? _a16 : void 0
886
+ mediaType: (_a17 = response.headers.get("content-type")) != null ? _a17 : void 0
857
887
  };
858
888
  } catch (error) {
859
889
  if (import_provider_utils2.DownloadError.isInstance(error)) {
@@ -871,7 +901,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
871
901
  );
872
902
 
873
903
  // src/prompt/data-content.ts
874
- var import_provider18 = require("@ai-sdk/provider");
904
+ var import_provider19 = require("@ai-sdk/provider");
875
905
  var import_provider_utils3 = require("@ai-sdk/provider-utils");
876
906
  var import_v4 = require("zod/v4");
877
907
 
@@ -899,8 +929,8 @@ var dataContentSchema = import_v4.z.union([
899
929
  import_v4.z.custom(
900
930
  // Buffer might not be available in some environments such as CloudFlare:
901
931
  (value) => {
902
- var _a16, _b;
903
- return (_b = (_a16 = globalThis.Buffer) == null ? void 0 : _a16.isBuffer(value)) != null ? _b : false;
932
+ var _a17, _b;
933
+ return (_b = (_a17 = globalThis.Buffer) == null ? void 0 : _a17.isBuffer(value)) != null ? _b : false;
904
934
  },
905
935
  { message: "Must be a Buffer" }
906
936
  )
@@ -923,7 +953,7 @@ function convertToLanguageModelV2DataContent(content) {
923
953
  content.toString()
924
954
  );
925
955
  if (dataUrlMediaType == null || base64Content == null) {
926
- throw new import_provider18.AISDKError({
956
+ throw new import_provider19.AISDKError({
927
957
  name: "InvalidDataContentError",
928
958
  message: `Invalid data URL format in content ${content.toString()}`
929
959
  });
@@ -1100,8 +1130,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
1100
1130
  ).flat().filter(
1101
1131
  (part) => part.type === "image" || part.type === "file"
1102
1132
  ).map((part) => {
1103
- var _a16;
1104
- const mediaType = (_a16 = part.mediaType) != null ? _a16 : part.type === "image" ? "image/*" : void 0;
1133
+ var _a17;
1134
+ const mediaType = (_a17 = part.mediaType) != null ? _a17 : part.type === "image" ? "image/*" : void 0;
1105
1135
  let data = part.type === "image" ? part.image : part.data;
1106
1136
  if (typeof data === "string") {
1107
1137
  try {
@@ -1134,7 +1164,7 @@ function getOriginalUrl(originalData, convertedData) {
1134
1164
  return typeof originalData === "string" && convertedData instanceof URL && convertedData.toString() !== originalData ? originalData : void 0;
1135
1165
  }
1136
1166
  function convertPartToLanguageModelPart(part, downloadedAssets) {
1137
- var _a16;
1167
+ var _a17;
1138
1168
  if (part.type === "text") {
1139
1169
  return {
1140
1170
  type: "text",
@@ -1169,7 +1199,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1169
1199
  switch (type) {
1170
1200
  case "image": {
1171
1201
  if (data instanceof Uint8Array || typeof data === "string") {
1172
- mediaType = (_a16 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a16 : mediaType;
1202
+ mediaType = (_a17 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a17 : mediaType;
1173
1203
  }
1174
1204
  return {
1175
1205
  type: "file",
@@ -1311,10 +1341,10 @@ function prepareToolsAndToolChoice({
1311
1341
  };
1312
1342
  }
1313
1343
  const filteredTools = activeTools != null ? Object.entries(tools).filter(
1314
- ([name16]) => activeTools.includes(name16)
1344
+ ([name17]) => activeTools.includes(name17)
1315
1345
  ) : Object.entries(tools);
1316
1346
  return {
1317
- tools: filteredTools.map(([name16, tool2]) => {
1347
+ tools: filteredTools.map(([name17, tool2]) => {
1318
1348
  const toolType = tool2.type;
1319
1349
  switch (toolType) {
1320
1350
  case void 0:
@@ -1322,7 +1352,7 @@ function prepareToolsAndToolChoice({
1322
1352
  case "function":
1323
1353
  return {
1324
1354
  type: "function",
1325
- name: name16,
1355
+ name: name17,
1326
1356
  description: tool2.description,
1327
1357
  inputSchema: (0, import_provider_utils5.asSchema)(tool2.inputSchema).jsonSchema,
1328
1358
  providerOptions: tool2.providerOptions
@@ -1330,7 +1360,7 @@ function prepareToolsAndToolChoice({
1330
1360
  case "provider-defined":
1331
1361
  return {
1332
1362
  type: "provider-defined",
1333
- name: name16,
1363
+ name: name17,
1334
1364
  id: tool2.id,
1335
1365
  args: tool2.args
1336
1366
  };
@@ -1345,7 +1375,7 @@ function prepareToolsAndToolChoice({
1345
1375
  }
1346
1376
 
1347
1377
  // src/prompt/standardize-prompt.ts
1348
- var import_provider19 = require("@ai-sdk/provider");
1378
+ var import_provider20 = require("@ai-sdk/provider");
1349
1379
  var import_provider_utils6 = require("@ai-sdk/provider-utils");
1350
1380
  var import_v46 = require("zod/v4");
1351
1381
 
@@ -1506,19 +1536,19 @@ async function standardizePrompt({
1506
1536
  messages
1507
1537
  }) {
1508
1538
  if (prompt == null && messages == null) {
1509
- throw new import_provider19.InvalidPromptError({
1539
+ throw new import_provider20.InvalidPromptError({
1510
1540
  prompt,
1511
1541
  message: "prompt or messages must be defined"
1512
1542
  });
1513
1543
  }
1514
1544
  if (prompt != null && messages != null) {
1515
- throw new import_provider19.InvalidPromptError({
1545
+ throw new import_provider20.InvalidPromptError({
1516
1546
  prompt,
1517
1547
  message: "prompt and messages cannot be defined at the same time"
1518
1548
  });
1519
1549
  }
1520
1550
  if (system != null && typeof system !== "string") {
1521
- throw new import_provider19.InvalidPromptError({
1551
+ throw new import_provider20.InvalidPromptError({
1522
1552
  prompt,
1523
1553
  message: "system must be a string"
1524
1554
  });
@@ -1528,20 +1558,20 @@ async function standardizePrompt({
1528
1558
  } else if (prompt != null && Array.isArray(prompt)) {
1529
1559
  messages = prompt;
1530
1560
  } else if (messages == null) {
1531
- throw new import_provider19.InvalidPromptError({
1561
+ throw new import_provider20.InvalidPromptError({
1532
1562
  prompt,
1533
1563
  message: "prompt or messages must be defined"
1534
1564
  });
1535
1565
  }
1536
1566
  if (messages.length === 0) {
1537
- throw new import_provider19.InvalidPromptError({
1567
+ throw new import_provider20.InvalidPromptError({
1538
1568
  prompt,
1539
1569
  message: "messages must not be empty"
1540
1570
  });
1541
1571
  }
1542
1572
  if (messages.some((message) => message.role === "system")) {
1543
1573
  if (allowSystemInMessages === false) {
1544
- throw new import_provider19.InvalidPromptError({
1574
+ throw new import_provider20.InvalidPromptError({
1545
1575
  prompt,
1546
1576
  message: "System messages are not allowed in the prompt or messages fields. Use the system option instead."
1547
1577
  });
@@ -1557,7 +1587,7 @@ async function standardizePrompt({
1557
1587
  schema: import_v46.z.array(modelMessageSchema)
1558
1588
  });
1559
1589
  if (!validationResult.success) {
1560
- throw new import_provider19.InvalidPromptError({
1590
+ throw new import_provider20.InvalidPromptError({
1561
1591
  prompt,
1562
1592
  message: "The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",
1563
1593
  cause: validationResult.error
@@ -1568,14 +1598,14 @@ async function standardizePrompt({
1568
1598
 
1569
1599
  // src/prompt/wrap-gateway-error.ts
1570
1600
  var import_gateway2 = require("@ai-sdk/gateway");
1571
- var import_provider20 = require("@ai-sdk/provider");
1601
+ var import_provider21 = require("@ai-sdk/provider");
1572
1602
  function wrapGatewayError(error) {
1573
1603
  if (!import_gateway2.GatewayAuthenticationError.isInstance(error))
1574
1604
  return error;
1575
1605
  const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
1576
1606
  const moreInfoURL = "https://v5.ai-sdk.dev/unauthenticated-ai-gateway";
1577
1607
  if (isProductionEnv) {
1578
- return new import_provider20.AISDKError({
1608
+ return new import_provider21.AISDKError({
1579
1609
  name: "GatewayError",
1580
1610
  message: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`
1581
1611
  });
@@ -1611,8 +1641,8 @@ function assembleOperationName({
1611
1641
 
1612
1642
  // src/telemetry/get-base-telemetry-attributes.ts
1613
1643
  function getTelemetryMetadataAttributes(telemetry) {
1614
- var _a16;
1615
- return Object.entries((_a16 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a16 : {}).reduce(
1644
+ var _a17;
1645
+ return Object.entries((_a17 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a17 : {}).reduce(
1616
1646
  (attributes, [key, value]) => {
1617
1647
  attributes[`ai.telemetry.metadata.${key}`] = value;
1618
1648
  return attributes;
@@ -1654,7 +1684,7 @@ var noopTracer = {
1654
1684
  startSpan() {
1655
1685
  return noopSpan;
1656
1686
  },
1657
- startActiveSpan(name16, arg1, arg2, arg3) {
1687
+ startActiveSpan(name17, arg1, arg2, arg3) {
1658
1688
  if (typeof arg1 === "function") {
1659
1689
  return arg1(noopSpan);
1660
1690
  }
@@ -1724,14 +1754,14 @@ function getTracer({
1724
1754
  // src/telemetry/record-span.ts
1725
1755
  var import_api2 = require("@opentelemetry/api");
1726
1756
  function recordSpan({
1727
- name: name16,
1757
+ name: name17,
1728
1758
  tracer,
1729
1759
  attributes,
1730
1760
  fn,
1731
1761
  endWhenDone = true,
1732
1762
  endOnError = endWhenDone
1733
1763
  }) {
1734
- return tracer.startActiveSpan(name16, { attributes }, async (span) => {
1764
+ return tracer.startActiveSpan(name17, { attributes }, async (span) => {
1735
1765
  try {
1736
1766
  const result = await fn(span);
1737
1767
  if (endWhenDone) {
@@ -1837,14 +1867,14 @@ function asArray(value) {
1837
1867
  }
1838
1868
 
1839
1869
  // src/util/retry-with-exponential-backoff.ts
1840
- var import_provider21 = require("@ai-sdk/provider");
1870
+ var import_provider22 = require("@ai-sdk/provider");
1841
1871
  var import_gateway3 = require("@ai-sdk/gateway");
1842
1872
  var import_provider_utils7 = require("@ai-sdk/provider-utils");
1843
1873
  function getRetryDelayInMs({
1844
1874
  error,
1845
1875
  exponentialBackoffDelay
1846
1876
  }) {
1847
- const headers = import_provider21.APICallError.isInstance(error) ? error.responseHeaders : import_provider21.APICallError.isInstance(error.cause) ? error.cause.responseHeaders : void 0;
1877
+ const headers = import_provider22.APICallError.isInstance(error) ? error.responseHeaders : import_provider22.APICallError.isInstance(error.cause) ? error.cause.responseHeaders : void 0;
1848
1878
  if (!headers)
1849
1879
  return exponentialBackoffDelay;
1850
1880
  let ms;
@@ -1908,7 +1938,7 @@ async function _retryWithExponentialBackoff(f, {
1908
1938
  errors: newErrors
1909
1939
  });
1910
1940
  }
1911
- if ((error instanceof Error && (import_provider21.APICallError.isInstance(error) && error.isRetryable === true || import_gateway3.GatewayError.isInstance(error) && error.isRetryable === true) || (additionalRetryableError == null ? void 0 : additionalRetryableError(error)) === true) && tryNumber <= maxRetries) {
1941
+ if ((error instanceof Error && (import_provider22.APICallError.isInstance(error) && error.isRetryable === true || import_gateway3.GatewayError.isInstance(error) && error.isRetryable === true) || (additionalRetryableError == null ? void 0 : additionalRetryableError(error)) === true) && tryNumber <= maxRetries) {
1912
1942
  await (0, import_provider_utils7.delay)(
1913
1943
  getRetryDelayInMs({
1914
1944
  error,
@@ -1993,7 +2023,7 @@ function filterActiveTools({
1993
2023
  }
1994
2024
  return Object.fromEntries(
1995
2025
  Object.entries(tools).filter(
1996
- ([name16]) => activeTools.includes(name16)
2026
+ ([name17]) => activeTools.includes(name17)
1997
2027
  )
1998
2028
  );
1999
2029
  }
@@ -2227,8 +2257,8 @@ function stepCountIs(stepCount) {
2227
2257
  }
2228
2258
  function hasToolCall(toolName) {
2229
2259
  return ({ steps }) => {
2230
- var _a16, _b, _c;
2231
- return (_c = (_b = (_a16 = steps[steps.length - 1]) == null ? void 0 : _a16.toolCalls) == null ? void 0 : _b.some(
2260
+ var _a17, _b, _c;
2261
+ return (_c = (_b = (_a17 = steps[steps.length - 1]) == null ? void 0 : _a17.toolCalls) == null ? void 0 : _b.some(
2232
2262
  (toolCall) => toolCall.toolName === toolName
2233
2263
  )) != null ? _c : false;
2234
2264
  };
@@ -2241,14 +2271,14 @@ async function isStopConditionMet({
2241
2271
  }
2242
2272
 
2243
2273
  // src/prompt/create-tool-model-output.ts
2244
- var import_provider22 = require("@ai-sdk/provider");
2274
+ var import_provider23 = require("@ai-sdk/provider");
2245
2275
  function createToolModelOutput({
2246
2276
  output,
2247
2277
  tool: tool2,
2248
2278
  errorMode
2249
2279
  }) {
2250
2280
  if (errorMode === "text") {
2251
- return { type: "error-text", value: (0, import_provider22.getErrorMessage)(output) };
2281
+ return { type: "error-text", value: (0, import_provider23.getErrorMessage)(output) };
2252
2282
  } else if (errorMode === "json") {
2253
2283
  return { type: "error-json", value: toJSONValue(output) };
2254
2284
  }
@@ -2432,7 +2462,7 @@ async function generateText({
2432
2462
  }),
2433
2463
  tracer,
2434
2464
  fn: async (span) => {
2435
- var _a16, _b, _c, _d, _e, _f, _g;
2465
+ var _a17, _b, _c, _d, _e, _f, _g;
2436
2466
  const callSettings2 = prepareCallSettings(settings);
2437
2467
  let currentModelResponse;
2438
2468
  let clientToolCalls = [];
@@ -2454,7 +2484,7 @@ async function generateText({
2454
2484
  messages: stepInputMessages
2455
2485
  }));
2456
2486
  const stepModel = resolveLanguageModel(
2457
- (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
2487
+ (_a17 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a17 : model
2458
2488
  );
2459
2489
  const promptMessages = await convertToLanguageModelPrompt({
2460
2490
  prompt: {
@@ -2476,7 +2506,7 @@ async function generateText({
2476
2506
  });
2477
2507
  currentModelResponse = await retry(
2478
2508
  () => {
2479
- var _a17;
2509
+ var _a18;
2480
2510
  return recordSpan({
2481
2511
  name: "ai.generateText.doGenerate",
2482
2512
  attributes: selectTelemetryAttributes({
@@ -2508,14 +2538,14 @@ async function generateText({
2508
2538
  "gen_ai.request.max_tokens": settings.maxOutputTokens,
2509
2539
  "gen_ai.request.presence_penalty": settings.presencePenalty,
2510
2540
  "gen_ai.request.stop_sequences": settings.stopSequences,
2511
- "gen_ai.request.temperature": (_a17 = settings.temperature) != null ? _a17 : void 0,
2541
+ "gen_ai.request.temperature": (_a18 = settings.temperature) != null ? _a18 : void 0,
2512
2542
  "gen_ai.request.top_k": settings.topK,
2513
2543
  "gen_ai.request.top_p": settings.topP
2514
2544
  }
2515
2545
  }),
2516
2546
  tracer,
2517
2547
  fn: async (span2) => {
2518
- var _a18, _b2, _c2, _d2, _e2, _f2, _g2, _h;
2548
+ var _a19, _b2, _c2, _d2, _e2, _f2, _g2, _h;
2519
2549
  const result = await stepModel.doGenerate({
2520
2550
  ...callSettings2,
2521
2551
  tools: stepTools,
@@ -2527,7 +2557,7 @@ async function generateText({
2527
2557
  headers: headersWithUserAgent
2528
2558
  });
2529
2559
  const responseData = {
2530
- id: (_b2 = (_a18 = result.response) == null ? void 0 : _a18.id) != null ? _b2 : generateId3(),
2560
+ id: (_b2 = (_a19 = result.response) == null ? void 0 : _a19.id) != null ? _b2 : generateId3(),
2531
2561
  timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
2532
2562
  modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
2533
2563
  headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
@@ -2577,12 +2607,23 @@ async function generateText({
2577
2607
  (toolCall) => parseToolCall({
2578
2608
  toolCall,
2579
2609
  tools: stepToolSet,
2580
- repairToolCall,
2610
+ // tool calls are rejected with tool choice none,
2611
+ // so user callbacks must not process them:
2612
+ repairToolCall: (stepToolChoice == null ? void 0 : stepToolChoice.type) === "none" ? void 0 : repairToolCall,
2581
2613
  system,
2582
2614
  messages: stepInputMessages
2583
2615
  })
2584
2616
  )
2585
2617
  );
2618
+ if ((stepToolChoice == null ? void 0 : stepToolChoice.type) === "none" && stepToolCalls.length > 0) {
2619
+ throw new ToolChoiceViolationError({
2620
+ toolChoice: stepToolChoice,
2621
+ finishReason: currentModelResponse.finishReason,
2622
+ provider: stepModel.provider,
2623
+ modelId: stepModel.modelId,
2624
+ content: currentModelResponse.content
2625
+ });
2626
+ }
2586
2627
  for (const toolCall of stepToolCalls) {
2587
2628
  if (toolCall.invalid) {
2588
2629
  continue;
@@ -3774,7 +3815,7 @@ function createStreamingUIMessageState({
3774
3815
  lastMessage,
3775
3816
  messageId
3776
3817
  }) {
3777
- var _a16;
3818
+ var _a17;
3778
3819
  const message = (lastMessage == null ? void 0 : lastMessage.role) === "assistant" ? lastMessage : {
3779
3820
  id: messageId,
3780
3821
  metadata: void 0,
@@ -3798,7 +3839,7 @@ function createStreamingUIMessageState({
3798
3839
  continue;
3799
3840
  }
3800
3841
  partialToolCalls[part.toolCallId] = {
3801
- text: (_a16 = part.rawInput) != null ? _a16 : "",
3842
+ text: (_a17 = part.rawInput) != null ? _a17 : "",
3802
3843
  index,
3803
3844
  toolName: isDynamicToolUIPart(part) ? part.toolName : getToolName(part),
3804
3845
  dynamic: isDynamicToolUIPart(part)
@@ -3825,7 +3866,7 @@ function processUIMessageStream({
3825
3866
  new TransformStream({
3826
3867
  async transform(chunk, controller) {
3827
3868
  await runUpdateMessageJob(async ({ state, write }) => {
3828
- var _a16, _b, _c, _d;
3869
+ var _a17, _b, _c, _d;
3829
3870
  function getCurrentStepParts() {
3830
3871
  const parts = state.message.parts;
3831
3872
  let currentStepStartIndex = parts.length - 1;
@@ -3884,7 +3925,7 @@ function processUIMessageStream({
3884
3925
  return toolInvocation;
3885
3926
  }
3886
3927
  function updateToolPart(options, existingPart) {
3887
- var _a17;
3928
+ var _a18;
3888
3929
  const part = existingPart != null ? existingPart : getCurrentStepParts().find(
3889
3930
  (part2) => isToolUIPart(part2) && part2.toolCallId === options.toolCallId
3890
3931
  );
@@ -3897,7 +3938,7 @@ function processUIMessageStream({
3897
3938
  anyPart.errorText = anyOptions.errorText;
3898
3939
  anyPart.rawInput = anyOptions.rawInput;
3899
3940
  anyPart.preliminary = anyOptions.preliminary;
3900
- anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;
3941
+ anyPart.providerExecuted = (_a18 = anyOptions.providerExecuted) != null ? _a18 : part.providerExecuted;
3901
3942
  if (anyOptions.providerMetadata != null && part.state === "input-available") {
3902
3943
  part.callProviderMetadata = anyOptions.providerMetadata;
3903
3944
  }
@@ -3917,7 +3958,7 @@ function processUIMessageStream({
3917
3958
  }
3918
3959
  }
3919
3960
  function updateDynamicToolPart(options, existingPart) {
3920
- var _a17;
3961
+ var _a18;
3921
3962
  const part = existingPart != null ? existingPart : getCurrentStepParts().find(
3922
3963
  (part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
3923
3964
  );
@@ -3931,7 +3972,7 @@ function processUIMessageStream({
3931
3972
  anyPart.errorText = anyOptions.errorText;
3932
3973
  anyPart.rawInput = anyOptions.rawInput;
3933
3974
  anyPart.preliminary = anyOptions.preliminary;
3934
- anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;
3975
+ anyPart.providerExecuted = (_a18 = anyOptions.providerExecuted) != null ? _a18 : part.providerExecuted;
3935
3976
  if (anyOptions.providerMetadata != null && part.state === "input-available") {
3936
3977
  part.callProviderMetadata = anyOptions.providerMetadata;
3937
3978
  }
@@ -3978,7 +4019,7 @@ function processUIMessageStream({
3978
4019
  case "text-delta": {
3979
4020
  const textPart = state.activeTextParts[chunk.id];
3980
4021
  textPart.text += chunk.delta;
3981
- textPart.providerMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textPart.providerMetadata;
4022
+ textPart.providerMetadata = (_a17 = chunk.providerMetadata) != null ? _a17 : textPart.providerMetadata;
3982
4023
  write();
3983
4024
  break;
3984
4025
  }
@@ -4375,13 +4416,13 @@ function handleUIMessageStreamFinish({
4375
4416
  };
4376
4417
  let finishCalled = false;
4377
4418
  const callOnFinish = async () => {
4378
- var _a16;
4419
+ var _a17;
4379
4420
  if (finishCalled || !onFinish) {
4380
4421
  return;
4381
4422
  }
4382
4423
  finishCalled = true;
4383
4424
  const isContinuation = state.message.id === (lastMessage == null ? void 0 : lastMessage.id);
4384
- const declaredOutcome = (_a16 = getOutcome == null ? void 0 : getOutcome()) != null ? _a16 : { status: "unknown" };
4425
+ const declaredOutcome = (_a17 = getOutcome == null ? void 0 : getOutcome()) != null ? _a17 : { status: "unknown" };
4385
4426
  const outcome = hasProcessingFailure ? { status: "failed", error: processingError } : declaredOutcome.status === "unknown" && isAborted ? { status: "aborted" } : declaredOutcome;
4386
4427
  await onFinish({
4387
4428
  isAborted: isAborted || outcome.status === "aborted",
@@ -4452,11 +4493,11 @@ function createAsyncIterableStream(source) {
4452
4493
  const reader = this.getReader();
4453
4494
  let finished = false;
4454
4495
  async function cleanup(cancelStream) {
4455
- var _a16;
4496
+ var _a17;
4456
4497
  finished = true;
4457
4498
  try {
4458
4499
  if (cancelStream) {
4459
- await ((_a16 = reader.cancel) == null ? void 0 : _a16.call(reader));
4500
+ await ((_a17 = reader.cancel) == null ? void 0 : _a17.call(reader));
4460
4501
  }
4461
4502
  } finally {
4462
4503
  try {
@@ -4566,7 +4607,7 @@ function createStitchableStream() {
4566
4607
  controller == null ? void 0 : controller.close();
4567
4608
  };
4568
4609
  const processPull = async () => {
4569
- var _a16, _b;
4610
+ var _a17, _b;
4570
4611
  if (isClosed && innerStreams.length === 0) {
4571
4612
  controller == null ? void 0 : controller.close();
4572
4613
  return;
@@ -4589,7 +4630,7 @@ function createStitchableStream() {
4589
4630
  controller == null ? void 0 : controller.enqueue(value);
4590
4631
  }
4591
4632
  } catch (error) {
4592
- (_b = (_a16 = innerStreams[0]).onError) == null ? void 0 : _b.call(_a16, error);
4633
+ (_b = (_a17 = innerStreams[0]).onError) == null ? void 0 : _b.call(_a17, error);
4593
4634
  controller == null ? void 0 : controller.error(error);
4594
4635
  innerStreams.shift();
4595
4636
  terminate();
@@ -4650,14 +4691,16 @@ async function notify(options) {
4650
4691
 
4651
4692
  // src/util/now.ts
4652
4693
  function now() {
4653
- var _a16, _b;
4654
- return (_b = (_a16 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a16.now()) != null ? _b : Date.now();
4694
+ var _a17, _b;
4695
+ return (_b = (_a17 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a17.now()) != null ? _b : Date.now();
4655
4696
  }
4656
4697
 
4657
4698
  // src/generate-text/run-tools-transformation.ts
4658
4699
  var import_provider_utils14 = require("@ai-sdk/provider-utils");
4659
4700
  function runToolsTransformation({
4660
4701
  tools,
4702
+ toolChoice,
4703
+ model,
4661
4704
  generatorStream,
4662
4705
  tracer,
4663
4706
  telemetry,
@@ -4788,10 +4831,19 @@ function runToolsTransformation({
4788
4831
  });
4789
4832
  }
4790
4833
  const activeToolCallToolNames = /* @__PURE__ */ new Map();
4834
+ const withholdToolParts = (toolChoice == null ? void 0 : toolChoice.type) === "none";
4835
+ const withheldToolContent = [];
4791
4836
  const forwardStream = new TransformStream({
4792
4837
  async transform(chunk, controller) {
4793
- var _a16, _b, _c, _d;
4838
+ var _a17, _b, _c, _d, _e, _f;
4794
4839
  const chunkType = chunk.type;
4840
+ if (withholdToolParts && (chunkType === "tool-input-start" || chunkType === "tool-input-delta" || chunkType === "tool-input-end")) {
4841
+ return;
4842
+ }
4843
+ if (withholdToolParts && (chunkType === "tool-call" || chunkType === "tool-result")) {
4844
+ withheldToolContent.push(chunk);
4845
+ return;
4846
+ }
4795
4847
  switch (chunkType) {
4796
4848
  case "stream-start":
4797
4849
  case "text-start":
@@ -4809,7 +4861,7 @@ function runToolsTransformation({
4809
4861
  }
4810
4862
  case "tool-input-start": {
4811
4863
  activeToolCallToolNames.set(chunk.id, chunk.toolName);
4812
- await ((_b = (_a16 = tools == null ? void 0 : tools[chunk.toolName]) == null ? void 0 : _a16.onInputStart) == null ? void 0 : _b.call(_a16, {
4864
+ await ((_b = (_a17 = tools == null ? void 0 : tools[chunk.toolName]) == null ? void 0 : _a17.onInputStart) == null ? void 0 : _b.call(_a17, {
4813
4865
  toolCallId: chunk.id,
4814
4866
  messages,
4815
4867
  abortSignal,
@@ -4848,12 +4900,25 @@ function runToolsTransformation({
4848
4900
  break;
4849
4901
  }
4850
4902
  case "finish": {
4903
+ const toolChoiceViolationError = withholdToolParts && withheldToolContent.some((part) => part.type === "tool-call") ? new ToolChoiceViolationError({
4904
+ toolChoice: { type: "none" },
4905
+ finishReason: chunk.finishReason,
4906
+ provider: (_e = model == null ? void 0 : model.provider) != null ? _e : "unknown",
4907
+ modelId: (_f = model == null ? void 0 : model.modelId) != null ? _f : "unknown",
4908
+ content: withheldToolContent
4909
+ }) : void 0;
4851
4910
  finishChunk = {
4852
4911
  type: "finish",
4853
- finishReason: chunk.finishReason,
4912
+ finishReason: toolChoiceViolationError == null ? chunk.finishReason : "error",
4854
4913
  usage: chunk.usage,
4855
4914
  providerMetadata: chunk.providerMetadata
4856
4915
  };
4916
+ if (toolChoiceViolationError != null) {
4917
+ controller.enqueue({
4918
+ type: "error",
4919
+ error: toolChoiceViolationError
4920
+ });
4921
+ }
4857
4922
  if (isToolExecutionAllowedFinishReason(chunk.finishReason)) {
4858
4923
  for (const toolCall of pendingToolCalls.splice(0)) {
4859
4924
  executePendingToolCall(toolCall);
@@ -5161,7 +5226,7 @@ var DefaultStreamTextResult = class {
5161
5226
  let activeReasoningContent = createIdMap();
5162
5227
  const eventProcessor = new TransformStream({
5163
5228
  async transform(chunk, controller) {
5164
- var _a16, _b, _c, _d;
5229
+ var _a17, _b, _c, _d;
5165
5230
  controller.enqueue(chunk);
5166
5231
  const { part } = chunk;
5167
5232
  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") {
@@ -5197,7 +5262,7 @@ var DefaultStreamTextResult = class {
5197
5262
  return;
5198
5263
  }
5199
5264
  activeText.text += part.text;
5200
- activeText.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeText.providerMetadata;
5265
+ activeText.providerMetadata = (_a17 = part.providerMetadata) != null ? _a17 : activeText.providerMetadata;
5201
5266
  }
5202
5267
  if (part.type === "text-end") {
5203
5268
  const activeText = activeTextContent[part.id];
@@ -5356,8 +5421,8 @@ var DefaultStreamTextResult = class {
5356
5421
  "ai.response.text": { output: () => finalStep.text },
5357
5422
  "ai.response.toolCalls": {
5358
5423
  output: () => {
5359
- var _a16;
5360
- return ((_a16 = finalStep.toolCalls) == null ? void 0 : _a16.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
5424
+ var _a17;
5425
+ return ((_a17 = finalStep.toolCalls) == null ? void 0 : _a17.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
5361
5426
  }
5362
5427
  },
5363
5428
  "ai.response.providerMetadata": JSON.stringify(
@@ -5472,7 +5537,7 @@ var DefaultStreamTextResult = class {
5472
5537
  responseMessages,
5473
5538
  usage
5474
5539
  }) {
5475
- var _a16, _b, _c, _d, _e;
5540
+ var _a17, _b, _c, _d, _e;
5476
5541
  const includeRawChunks2 = self.includeRawChunks;
5477
5542
  stepFinish = new import_provider_utils15.DelayedPromise();
5478
5543
  const initialPrompt = await standardizePrompt({
@@ -5492,7 +5557,7 @@ var DefaultStreamTextResult = class {
5492
5557
  messages: stepInputMessages
5493
5558
  }));
5494
5559
  const stepModel = resolveLanguageModel(
5495
- (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
5560
+ (_a17 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a17 : model
5496
5561
  );
5497
5562
  const promptMessages = await convertToLanguageModelPrompt({
5498
5563
  prompt: {
@@ -5579,6 +5644,8 @@ var DefaultStreamTextResult = class {
5579
5644
  );
5580
5645
  const streamWithToolResults = runToolsTransformation({
5581
5646
  tools: stepToolSet,
5647
+ toolChoice: stepToolChoice,
5648
+ model: { provider: stepModel.provider, modelId: stepModel.modelId },
5582
5649
  generatorStream: stream2,
5583
5650
  tracer,
5584
5651
  telemetry,
@@ -5610,7 +5677,7 @@ var DefaultStreamTextResult = class {
5610
5677
  streamWithToolResults.pipeThrough(
5611
5678
  new TransformStream({
5612
5679
  async transform(chunk, controller) {
5613
- var _a17, _b2, _c2, _d2;
5680
+ var _a18, _b2, _c2, _d2;
5614
5681
  if (chunk.type === "stream-start") {
5615
5682
  warnings = chunk.warnings;
5616
5683
  return;
@@ -5682,7 +5749,7 @@ var DefaultStreamTextResult = class {
5682
5749
  }
5683
5750
  case "response-metadata": {
5684
5751
  stepResponse = {
5685
- id: (_a17 = chunk.id) != null ? _a17 : stepResponse.id,
5752
+ id: (_a18 = chunk.id) != null ? _a18 : stepResponse.id,
5686
5753
  timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
5687
5754
  modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
5688
5755
  };
@@ -5963,14 +6030,14 @@ var DefaultStreamTextResult = class {
5963
6030
  );
5964
6031
  }
5965
6032
  async consumeStream(options) {
5966
- var _a16;
6033
+ var _a17;
5967
6034
  try {
5968
6035
  await consumeStream({
5969
6036
  stream: this.fullStream,
5970
6037
  onError: options == null ? void 0 : options.onError
5971
6038
  });
5972
6039
  } catch (error) {
5973
- (_a16 = options == null ? void 0 : options.onError) == null ? void 0 : _a16.call(options, error);
6040
+ (_a17 = options == null ? void 0 : options.onError) == null ? void 0 : _a17.call(options, error);
5974
6041
  }
5975
6042
  }
5976
6043
  get experimental_partialOutputStream() {
@@ -6018,9 +6085,9 @@ var DefaultStreamTextResult = class {
6018
6085
  }) : void 0;
6019
6086
  const toolNamesByCallId = {};
6020
6087
  const isDynamic = (toolCallId) => {
6021
- var _a16, _b;
6088
+ var _a17, _b;
6022
6089
  const toolName = toolNamesByCallId[toolCallId];
6023
- const dynamic = ((_b = (_a16 = this.tools) == null ? void 0 : _a16[toolName]) == null ? void 0 : _b.type) === "dynamic";
6090
+ const dynamic = ((_b = (_a17 = this.tools) == null ? void 0 : _a17[toolName]) == null ? void 0 : _b.type) === "dynamic";
6024
6091
  return dynamic ? true : void 0;
6025
6092
  };
6026
6093
  const sourceReader = this.fullStream.getReader();
@@ -6477,7 +6544,7 @@ function convertToModelMessages(messages, options) {
6477
6544
  modelMessages.push({
6478
6545
  role: "user",
6479
6546
  content: message.parts.map((part) => {
6480
- var _a16;
6547
+ var _a17;
6481
6548
  if (isTextUIPart(part)) {
6482
6549
  return {
6483
6550
  type: "text",
@@ -6495,7 +6562,7 @@ function convertToModelMessages(messages, options) {
6495
6562
  };
6496
6563
  }
6497
6564
  if (isDataUIPart(part)) {
6498
- return (_a16 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a16.call(
6565
+ return (_a17 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a17.call(
6499
6566
  options,
6500
6567
  part
6501
6568
  );
@@ -6507,7 +6574,7 @@ function convertToModelMessages(messages, options) {
6507
6574
  case "assistant": {
6508
6575
  if (message.parts != null) {
6509
6576
  let processBlock2 = function() {
6510
- var _a16, _b;
6577
+ var _a17, _b;
6511
6578
  if (block.length === 0) {
6512
6579
  return;
6513
6580
  }
@@ -6550,7 +6617,7 @@ function convertToModelMessages(messages, options) {
6550
6617
  type: "tool-call",
6551
6618
  toolCallId: part.toolCallId,
6552
6619
  toolName,
6553
- input: part.state === "output-error" ? (_a16 = part.input) != null ? _a16 : part.rawInput : part.input,
6620
+ input: part.state === "output-error" ? (_a17 = part.input) != null ? _a17 : part.rawInput : part.input,
6554
6621
  providerExecuted: part.providerExecuted,
6555
6622
  ...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
6556
6623
  });
@@ -6730,7 +6797,7 @@ async function embed({
6730
6797
  }),
6731
6798
  tracer,
6732
6799
  fn: async (doEmbedSpan) => {
6733
- var _a16;
6800
+ var _a17;
6734
6801
  const modelResponse = await model.doEmbed({
6735
6802
  values: [value],
6736
6803
  abortSignal,
@@ -6738,7 +6805,7 @@ async function embed({
6738
6805
  providerOptions
6739
6806
  });
6740
6807
  const embedding2 = modelResponse.embeddings[0];
6741
- const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
6808
+ const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
6742
6809
  doEmbedSpan.setAttributes(
6743
6810
  selectTelemetryAttributes({
6744
6811
  telemetry,
@@ -6753,7 +6820,7 @@ async function embed({
6753
6820
  })
6754
6821
  );
6755
6822
  if (embedding2 == null) {
6756
- throw new import_provider17.InvalidResponseDataError({
6823
+ throw new import_provider18.InvalidResponseDataError({
6757
6824
  data: modelResponse.embeddings,
6758
6825
  message: "No embedding generated."
6759
6826
  });
@@ -6902,7 +6969,7 @@ async function embedMany({
6902
6969
  }),
6903
6970
  tracer,
6904
6971
  fn: async (doEmbedSpan) => {
6905
- var _a16;
6972
+ var _a17;
6906
6973
  const modelResponse = await model.doEmbed({
6907
6974
  values,
6908
6975
  abortSignal,
@@ -6910,7 +6977,7 @@ async function embedMany({
6910
6977
  providerOptions
6911
6978
  });
6912
6979
  const embeddings3 = modelResponse.embeddings;
6913
- const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
6980
+ const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
6914
6981
  doEmbedSpan.setAttributes(
6915
6982
  selectTelemetryAttributes({
6916
6983
  telemetry,
@@ -6988,7 +7055,7 @@ async function embedMany({
6988
7055
  }),
6989
7056
  tracer,
6990
7057
  fn: async (doEmbedSpan) => {
6991
- var _a16;
7058
+ var _a17;
6992
7059
  const modelResponse = await model.doEmbed({
6993
7060
  values: chunk,
6994
7061
  abortSignal,
@@ -6996,7 +7063,7 @@ async function embedMany({
6996
7063
  providerOptions
6997
7064
  });
6998
7065
  const embeddings2 = modelResponse.embeddings;
6999
- const usage = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
7066
+ const usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
7000
7067
  doEmbedSpan.setAttributes(
7001
7068
  selectTelemetryAttributes({
7002
7069
  telemetry,
@@ -7124,7 +7191,7 @@ async function generateImage({
7124
7191
  abortSignal,
7125
7192
  headers
7126
7193
  }) {
7127
- var _a16, _b;
7194
+ var _a17, _b;
7128
7195
  const model = resolveImageModel(modelArg);
7129
7196
  const headersWithUserAgent = (0, import_provider_utils19.withUserAgentSuffix)(
7130
7197
  headers != null ? headers : {},
@@ -7135,7 +7202,7 @@ async function generateImage({
7135
7202
  abortSignal,
7136
7203
  additionalRetryableError: (error) => error instanceof RetryableNoImageResultError
7137
7204
  });
7138
- const maxImagesPerCallWithDefault = (_a16 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a16 : 1;
7205
+ const maxImagesPerCallWithDefault = (_a17 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a17 : 1;
7139
7206
  const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
7140
7207
  const callImageCounts = Array.from({ length: callCount }, (_, i) => {
7141
7208
  if (i < callCount - 1) {
@@ -7184,13 +7251,13 @@ async function generateImage({
7184
7251
  images.push(
7185
7252
  ...result.images.map(
7186
7253
  (image) => {
7187
- var _a17;
7254
+ var _a18;
7188
7255
  return new DefaultGeneratedFile({
7189
7256
  data: image,
7190
- mediaType: (_a17 = detectMediaType({
7257
+ mediaType: (_a18 = detectMediaType({
7191
7258
  data: image,
7192
7259
  signatures: imageMediaTypeSignatures
7193
- })) != null ? _a17 : "image/png"
7260
+ })) != null ? _a18 : "image/png"
7194
7261
  });
7195
7262
  }
7196
7263
  )
@@ -7269,7 +7336,7 @@ function extractReasoningContent(content) {
7269
7336
  }
7270
7337
 
7271
7338
  // src/generate-object/output-strategy.ts
7272
- var import_provider23 = require("@ai-sdk/provider");
7339
+ var import_provider24 = require("@ai-sdk/provider");
7273
7340
  var import_provider_utils20 = require("@ai-sdk/provider-utils");
7274
7341
  var noSchemaOutputStrategy = {
7275
7342
  type: "no-schema",
@@ -7290,7 +7357,7 @@ var noSchemaOutputStrategy = {
7290
7357
  } : { success: true, value };
7291
7358
  },
7292
7359
  createElementStream() {
7293
- throw new import_provider23.UnsupportedFunctionalityError({
7360
+ throw new import_provider24.UnsupportedFunctionalityError({
7294
7361
  functionality: "element streams in no-schema mode"
7295
7362
  });
7296
7363
  }
@@ -7312,7 +7379,7 @@ var objectOutputStrategy = (schema) => ({
7312
7379
  return (0, import_provider_utils20.safeValidateTypes)({ value, schema });
7313
7380
  },
7314
7381
  createElementStream() {
7315
- throw new import_provider23.UnsupportedFunctionalityError({
7382
+ throw new import_provider24.UnsupportedFunctionalityError({
7316
7383
  functionality: "element streams in object mode"
7317
7384
  });
7318
7385
  }
@@ -7339,11 +7406,11 @@ var arrayOutputStrategy = (schema) => {
7339
7406
  isFirstDelta,
7340
7407
  isFinalDelta
7341
7408
  }) {
7342
- var _a16;
7343
- if (!(0, import_provider23.isJSONObject)(value) || !(0, import_provider23.isJSONArray)(value.elements)) {
7409
+ var _a17;
7410
+ if (!(0, import_provider24.isJSONObject)(value) || !(0, import_provider24.isJSONArray)(value.elements)) {
7344
7411
  return {
7345
7412
  success: false,
7346
- error: new import_provider23.TypeValidationError({
7413
+ error: new import_provider24.TypeValidationError({
7347
7414
  value,
7348
7415
  cause: "value must be an object that contains an array of elements"
7349
7416
  })
@@ -7362,7 +7429,7 @@ var arrayOutputStrategy = (schema) => {
7362
7429
  }
7363
7430
  resultArray.push(result.value);
7364
7431
  }
7365
- const publishedElementCount = (_a16 = latestObject == null ? void 0 : latestObject.length) != null ? _a16 : 0;
7432
+ const publishedElementCount = (_a17 = latestObject == null ? void 0 : latestObject.length) != null ? _a17 : 0;
7366
7433
  let textDelta = "";
7367
7434
  if (isFirstDelta) {
7368
7435
  textDelta += "[";
@@ -7383,10 +7450,10 @@ var arrayOutputStrategy = (schema) => {
7383
7450
  };
7384
7451
  },
7385
7452
  async validateFinalResult(value) {
7386
- if (!(0, import_provider23.isJSONObject)(value) || !(0, import_provider23.isJSONArray)(value.elements)) {
7453
+ if (!(0, import_provider24.isJSONObject)(value) || !(0, import_provider24.isJSONArray)(value.elements)) {
7387
7454
  return {
7388
7455
  success: false,
7389
- error: new import_provider23.TypeValidationError({
7456
+ error: new import_provider24.TypeValidationError({
7390
7457
  value,
7391
7458
  cause: "value must be an object that contains an array of elements"
7392
7459
  })
@@ -7451,10 +7518,10 @@ var enumOutputStrategy = (enumValues) => {
7451
7518
  additionalProperties: false
7452
7519
  },
7453
7520
  async validateFinalResult(value) {
7454
- if (!(0, import_provider23.isJSONObject)(value) || typeof value.result !== "string") {
7521
+ if (!(0, import_provider24.isJSONObject)(value) || typeof value.result !== "string") {
7455
7522
  return {
7456
7523
  success: false,
7457
- error: new import_provider23.TypeValidationError({
7524
+ error: new import_provider24.TypeValidationError({
7458
7525
  value,
7459
7526
  cause: 'value must be an object that contains a string in the "result" property.'
7460
7527
  })
@@ -7463,17 +7530,17 @@ var enumOutputStrategy = (enumValues) => {
7463
7530
  const result = value.result;
7464
7531
  return enumValues.includes(result) ? { success: true, value: result } : {
7465
7532
  success: false,
7466
- error: new import_provider23.TypeValidationError({
7533
+ error: new import_provider24.TypeValidationError({
7467
7534
  value,
7468
7535
  cause: "value must be a string in the enum"
7469
7536
  })
7470
7537
  };
7471
7538
  },
7472
7539
  async validatePartialResult({ value, textDelta }) {
7473
- if (!(0, import_provider23.isJSONObject)(value) || typeof value.result !== "string") {
7540
+ if (!(0, import_provider24.isJSONObject)(value) || typeof value.result !== "string") {
7474
7541
  return {
7475
7542
  success: false,
7476
- error: new import_provider23.TypeValidationError({
7543
+ error: new import_provider24.TypeValidationError({
7477
7544
  value,
7478
7545
  cause: 'value must be an object that contains a string in the "result" property.'
7479
7546
  })
@@ -7486,7 +7553,7 @@ var enumOutputStrategy = (enumValues) => {
7486
7553
  if (value.result.length === 0 || possibleEnumValues.length === 0) {
7487
7554
  return {
7488
7555
  success: false,
7489
- error: new import_provider23.TypeValidationError({
7556
+ error: new import_provider24.TypeValidationError({
7490
7557
  value,
7491
7558
  cause: "value must be a string in the enum"
7492
7559
  })
@@ -7501,7 +7568,7 @@ var enumOutputStrategy = (enumValues) => {
7501
7568
  };
7502
7569
  },
7503
7570
  createElementStream() {
7504
- throw new import_provider23.UnsupportedFunctionalityError({
7571
+ throw new import_provider24.UnsupportedFunctionalityError({
7505
7572
  functionality: "element streams in enum mode"
7506
7573
  });
7507
7574
  }
@@ -7529,7 +7596,7 @@ function getOutputStrategy({
7529
7596
  }
7530
7597
 
7531
7598
  // src/generate-object/parse-and-validate-object-result.ts
7532
- var import_provider24 = require("@ai-sdk/provider");
7599
+ var import_provider25 = require("@ai-sdk/provider");
7533
7600
  var import_provider_utils21 = require("@ai-sdk/provider-utils");
7534
7601
  async function parseAndValidateObjectResult(result, outputStrategy, context) {
7535
7602
  const parseResult = await (0, import_provider_utils21.safeParseJSON)({ text: result });
@@ -7567,7 +7634,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
7567
7634
  try {
7568
7635
  return await parseAndValidateObjectResult(result, outputStrategy, context);
7569
7636
  } catch (error) {
7570
- if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider24.JSONParseError.isInstance(error.cause) || import_provider24.TypeValidationError.isInstance(error.cause))) {
7637
+ if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider25.JSONParseError.isInstance(error.cause) || import_provider25.TypeValidationError.isInstance(error.cause))) {
7571
7638
  const repairedText = await repairText({
7572
7639
  text: result,
7573
7640
  error: error.cause
@@ -7784,7 +7851,7 @@ async function generateObject(options) {
7784
7851
  }),
7785
7852
  tracer,
7786
7853
  fn: async (span) => {
7787
- var _a16;
7854
+ var _a17;
7788
7855
  let result;
7789
7856
  let finishReason;
7790
7857
  let usage;
@@ -7831,7 +7898,7 @@ async function generateObject(options) {
7831
7898
  }),
7832
7899
  tracer,
7833
7900
  fn: async (span2) => {
7834
- var _a17, _b, _c, _d, _e, _f, _g, _h;
7901
+ var _a18, _b, _c, _d, _e, _f, _g, _h;
7835
7902
  const result2 = await model.doGenerate({
7836
7903
  responseFormat: {
7837
7904
  type: "json",
@@ -7846,7 +7913,7 @@ async function generateObject(options) {
7846
7913
  headers: headersWithUserAgent
7847
7914
  });
7848
7915
  const responseData = {
7849
- id: (_b = (_a17 = result2.response) == null ? void 0 : _a17.id) != null ? _b : generateId3(),
7916
+ id: (_b = (_a18 = result2.response) == null ? void 0 : _a18.id) != null ? _b : generateId3(),
7850
7917
  timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
7851
7918
  modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
7852
7919
  headers: (_g = result2.response) == null ? void 0 : _g.headers,
@@ -7900,7 +7967,7 @@ async function generateObject(options) {
7900
7967
  usage = generateResult.usage;
7901
7968
  warnings = generateResult.warnings;
7902
7969
  resultProviderMetadata = generateResult.providerMetadata;
7903
- request = (_a16 = generateResult.request) != null ? _a16 : {};
7970
+ request = (_a17 = generateResult.request) != null ? _a17 : {};
7904
7971
  response = generateResult.responseData;
7905
7972
  reasoning = generateResult.reasoning;
7906
7973
  logWarnings(warnings);
@@ -7959,9 +8026,9 @@ var DefaultGenerateObjectResult = class {
7959
8026
  this.reasoning = options.reasoning;
7960
8027
  }
7961
8028
  toJsonResponse(init) {
7962
- var _a16;
8029
+ var _a17;
7963
8030
  return new Response(JSON.stringify(this.object), {
7964
- status: (_a16 = init == null ? void 0 : init.status) != null ? _a16 : 200,
8031
+ status: (_a17 = init == null ? void 0 : init.status) != null ? _a17 : 200,
7965
8032
  headers: prepareHeaders(init == null ? void 0 : init.headers, {
7966
8033
  "content-type": "application/json; charset=utf-8"
7967
8034
  })
@@ -8108,8 +8175,8 @@ function simulateReadableStream({
8108
8175
  chunkDelayInMs = 0,
8109
8176
  _internal
8110
8177
  }) {
8111
- var _a16;
8112
- const delay2 = (_a16 = _internal == null ? void 0 : _internal.delay) != null ? _a16 : import_provider_utils23.delay;
8178
+ var _a17;
8179
+ const delay2 = (_a17 = _internal == null ? void 0 : _internal.delay) != null ? _a17 : import_provider_utils23.delay;
8113
8180
  let index = 0;
8114
8181
  return new ReadableStream({
8115
8182
  async pull(controller) {
@@ -8385,7 +8452,7 @@ var DefaultStreamObjectResult = class {
8385
8452
  const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
8386
8453
  new TransformStream({
8387
8454
  async transform(chunk, controller) {
8388
- var _a16, _b, _c;
8455
+ var _a17, _b, _c;
8389
8456
  if (typeof chunk === "object" && chunk.type === "stream-start") {
8390
8457
  warnings = chunk.warnings;
8391
8458
  return;
@@ -8435,7 +8502,7 @@ var DefaultStreamObjectResult = class {
8435
8502
  switch (chunk.type) {
8436
8503
  case "response-metadata": {
8437
8504
  fullResponse = {
8438
- id: (_a16 = chunk.id) != null ? _a16 : fullResponse.id,
8505
+ id: (_a17 = chunk.id) != null ? _a17 : fullResponse.id,
8439
8506
  timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
8440
8507
  modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
8441
8508
  };
@@ -8744,7 +8811,7 @@ async function generateSpeech({
8744
8811
  abortSignal,
8745
8812
  headers
8746
8813
  }) {
8747
- var _a16;
8814
+ var _a17;
8748
8815
  if (model.specificationVersion !== "v2") {
8749
8816
  throw new UnsupportedModelVersionError({
8750
8817
  version: model.specificationVersion,
@@ -8780,10 +8847,10 @@ async function generateSpeech({
8780
8847
  return new DefaultSpeechResult({
8781
8848
  audio: new DefaultGeneratedAudioFile({
8782
8849
  data: result.audio,
8783
- mediaType: (_a16 = detectMediaType({
8850
+ mediaType: (_a17 = detectMediaType({
8784
8851
  data: result.audio,
8785
8852
  signatures: audioMediaTypeSignatures
8786
- })) != null ? _a16 : "audio/mp3"
8853
+ })) != null ? _a17 : "audio/mp3"
8787
8854
  }),
8788
8855
  warnings: result.warnings,
8789
8856
  responses: [result.response],
@@ -8792,11 +8859,11 @@ async function generateSpeech({
8792
8859
  }
8793
8860
  var DefaultSpeechResult = class {
8794
8861
  constructor(options) {
8795
- var _a16;
8862
+ var _a17;
8796
8863
  this.audio = options.audio;
8797
8864
  this.warnings = options.warnings;
8798
8865
  this.responses = options.responses;
8799
- this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
8866
+ this.providerMetadata = (_a17 = options.providerMetadata) != null ? _a17 : {};
8800
8867
  }
8801
8868
  };
8802
8869
 
@@ -8924,21 +8991,52 @@ function pruneMessages({
8924
8991
  if (message.role !== "assistant" && message.role !== "tool" || typeof message.content === "string" || keepLastMessagesCount && messageIndex >= messages.length - keepLastMessagesCount) {
8925
8992
  return message;
8926
8993
  }
8927
- const toolCallIdToToolName = {};
8928
- return {
8929
- ...message,
8930
- content: message.content.filter((part) => {
8931
- if (part.type !== "tool-call" && part.type !== "tool-result") {
8932
- return true;
8994
+ const keepParts = message.content.map((part) => {
8995
+ if (part.type !== "tool-call" && part.type !== "tool-result") {
8996
+ return true;
8997
+ }
8998
+ if ((part.type === "tool-call" || part.type === "tool-result") && keptToolCallIds.has(part.toolCallId)) {
8999
+ return true;
9000
+ }
9001
+ return toolCall.tools != null && !toolCall.tools.includes(part.toolName);
9002
+ });
9003
+ if (message.role === "assistant") {
9004
+ for (let reasoningIndex = 0; reasoningIndex < message.content.length; reasoningIndex++) {
9005
+ const part = message.content[reasoningIndex];
9006
+ if (part.type !== "reasoning") {
9007
+ continue;
9008
+ }
9009
+ let reasoningEndIndex = reasoningIndex + 1;
9010
+ while (reasoningEndIndex < message.content.length) {
9011
+ const nextPart = message.content[reasoningEndIndex];
9012
+ if (nextPart.type !== "reasoning") {
9013
+ break;
9014
+ }
9015
+ reasoningEndIndex++;
8933
9016
  }
8934
- if (part.type === "tool-call") {
8935
- toolCallIdToToolName[part.toolCallId] = part.toolName;
9017
+ let followingPartIndex = reasoningEndIndex;
9018
+ let hasFollowingPart = false;
9019
+ let hasKeptFollowingPart = false;
9020
+ while (followingPartIndex < message.content.length) {
9021
+ const followingPart = message.content[followingPartIndex];
9022
+ if (followingPart.type === "reasoning") {
9023
+ break;
9024
+ }
9025
+ hasFollowingPart = true;
9026
+ hasKeptFollowingPart || (hasKeptFollowingPart = keepParts[followingPartIndex]);
9027
+ followingPartIndex++;
8936
9028
  }
8937
- if ((part.type === "tool-call" || part.type === "tool-result") && keptToolCallIds.has(part.toolCallId)) {
8938
- return true;
9029
+ if (hasFollowingPart && !hasKeptFollowingPart) {
9030
+ for (let index = reasoningIndex; index < reasoningEndIndex; index++) {
9031
+ keepParts[index] = false;
9032
+ }
8939
9033
  }
8940
- return toolCall.tools != null && !toolCall.tools.includes(part.toolName);
8941
- })
9034
+ reasoningIndex = followingPartIndex - 1;
9035
+ }
9036
+ }
9037
+ return {
9038
+ ...message,
9039
+ content: message.content.filter((_, index) => keepParts[index])
8942
9040
  };
8943
9041
  });
8944
9042
  }
@@ -8950,7 +9048,7 @@ function pruneMessages({
8950
9048
 
8951
9049
  // src/generate-text/smooth-stream.ts
8952
9050
  var import_provider_utils27 = require("@ai-sdk/provider-utils");
8953
- var import_provider25 = require("@ai-sdk/provider");
9051
+ var import_provider26 = require("@ai-sdk/provider");
8954
9052
  var CHUNKING_REGEXPS = {
8955
9053
  word: /\S+\s+/m,
8956
9054
  line: /\n+/m
@@ -8983,7 +9081,7 @@ function smoothStream({
8983
9081
  } else {
8984
9082
  const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
8985
9083
  if (chunkingRegex == null) {
8986
- throw new import_provider25.InvalidArgumentError({
9084
+ throw new import_provider26.InvalidArgumentError({
8987
9085
  argument: "chunking",
8988
9086
  message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
8989
9087
  });
@@ -9327,7 +9425,7 @@ var doWrap = ({
9327
9425
  modelId,
9328
9426
  providerId
9329
9427
  }) => {
9330
- var _a16, _b, _c;
9428
+ var _a17, _b, _c;
9331
9429
  async function doTransform({
9332
9430
  params,
9333
9431
  type
@@ -9336,7 +9434,7 @@ var doWrap = ({
9336
9434
  }
9337
9435
  return {
9338
9436
  specificationVersion: "v2",
9339
- provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,
9437
+ provider: (_a17 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a17 : model.provider,
9340
9438
  modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
9341
9439
  supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
9342
9440
  async doGenerate(params) {
@@ -9382,7 +9480,7 @@ function wrapProvider({
9382
9480
  }
9383
9481
 
9384
9482
  // src/registry/custom-provider.ts
9385
- var import_provider26 = require("@ai-sdk/provider");
9483
+ var import_provider27 = require("@ai-sdk/provider");
9386
9484
  function customProvider({
9387
9485
  languageModels,
9388
9486
  textEmbeddingModels,
@@ -9399,7 +9497,7 @@ function customProvider({
9399
9497
  if (fallbackProvider) {
9400
9498
  return fallbackProvider.languageModel(modelId);
9401
9499
  }
9402
- throw new import_provider26.NoSuchModelError({ modelId, modelType: "languageModel" });
9500
+ throw new import_provider27.NoSuchModelError({ modelId, modelType: "languageModel" });
9403
9501
  },
9404
9502
  textEmbeddingModel(modelId) {
9405
9503
  if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
@@ -9408,7 +9506,7 @@ function customProvider({
9408
9506
  if (fallbackProvider) {
9409
9507
  return fallbackProvider.textEmbeddingModel(modelId);
9410
9508
  }
9411
- throw new import_provider26.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
9509
+ throw new import_provider27.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
9412
9510
  },
9413
9511
  imageModel(modelId) {
9414
9512
  if (imageModels != null && modelId in imageModels) {
@@ -9417,7 +9515,7 @@ function customProvider({
9417
9515
  if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
9418
9516
  return fallbackProvider.imageModel(modelId);
9419
9517
  }
9420
- throw new import_provider26.NoSuchModelError({ modelId, modelType: "imageModel" });
9518
+ throw new import_provider27.NoSuchModelError({ modelId, modelType: "imageModel" });
9421
9519
  },
9422
9520
  transcriptionModel(modelId) {
9423
9521
  if (transcriptionModels != null && modelId in transcriptionModels) {
@@ -9426,7 +9524,7 @@ function customProvider({
9426
9524
  if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {
9427
9525
  return fallbackProvider.transcriptionModel(modelId);
9428
9526
  }
9429
- throw new import_provider26.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
9527
+ throw new import_provider27.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
9430
9528
  },
9431
9529
  speechModel(modelId) {
9432
9530
  if (speechModels != null && modelId in speechModels) {
@@ -9435,19 +9533,19 @@ function customProvider({
9435
9533
  if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {
9436
9534
  return fallbackProvider.speechModel(modelId);
9437
9535
  }
9438
- throw new import_provider26.NoSuchModelError({ modelId, modelType: "speechModel" });
9536
+ throw new import_provider27.NoSuchModelError({ modelId, modelType: "speechModel" });
9439
9537
  }
9440
9538
  };
9441
9539
  }
9442
9540
  var experimental_customProvider = customProvider;
9443
9541
 
9444
9542
  // src/registry/no-such-provider-error.ts
9445
- var import_provider27 = require("@ai-sdk/provider");
9446
- var name15 = "AI_NoSuchProviderError";
9447
- var marker15 = `vercel.ai.error.${name15}`;
9448
- var symbol15 = Symbol.for(marker15);
9449
- var _a15;
9450
- var NoSuchProviderError = class extends import_provider27.NoSuchModelError {
9543
+ var import_provider28 = require("@ai-sdk/provider");
9544
+ var name16 = "AI_NoSuchProviderError";
9545
+ var marker16 = `vercel.ai.error.${name16}`;
9546
+ var symbol16 = Symbol.for(marker16);
9547
+ var _a16;
9548
+ var NoSuchProviderError = class extends import_provider28.NoSuchModelError {
9451
9549
  constructor({
9452
9550
  modelId,
9453
9551
  modelType,
@@ -9455,19 +9553,19 @@ var NoSuchProviderError = class extends import_provider27.NoSuchModelError {
9455
9553
  availableProviders,
9456
9554
  message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
9457
9555
  }) {
9458
- super({ errorName: name15, modelId, modelType, message });
9459
- this[_a15] = true;
9556
+ super({ errorName: name16, modelId, modelType, message });
9557
+ this[_a16] = true;
9460
9558
  this.providerId = providerId;
9461
9559
  this.availableProviders = availableProviders;
9462
9560
  }
9463
9561
  static isInstance(error) {
9464
- return import_provider27.AISDKError.hasMarker(error, marker15);
9562
+ return import_provider28.AISDKError.hasMarker(error, marker16);
9465
9563
  }
9466
9564
  };
9467
- _a15 = symbol15;
9565
+ _a16 = symbol16;
9468
9566
 
9469
9567
  // src/registry/provider-registry.ts
9470
- var import_provider28 = require("@ai-sdk/provider");
9568
+ var import_provider29 = require("@ai-sdk/provider");
9471
9569
  function createProviderRegistry(providers, {
9472
9570
  separator = ":",
9473
9571
  languageModelMiddleware
@@ -9512,7 +9610,7 @@ var DefaultProviderRegistry = class {
9512
9610
  splitId(id, modelType) {
9513
9611
  const index = id.indexOf(this.separator);
9514
9612
  if (index === -1) {
9515
- throw new import_provider28.NoSuchModelError({
9613
+ throw new import_provider29.NoSuchModelError({
9516
9614
  modelId: id,
9517
9615
  modelType,
9518
9616
  message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
@@ -9521,14 +9619,14 @@ var DefaultProviderRegistry = class {
9521
9619
  return [id.slice(0, index), id.slice(index + this.separator.length)];
9522
9620
  }
9523
9621
  languageModel(id) {
9524
- var _a16, _b;
9622
+ var _a17, _b;
9525
9623
  const [providerId, modelId] = this.splitId(id, "languageModel");
9526
- let model = (_b = (_a16 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
9527
- _a16,
9624
+ let model = (_b = (_a17 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
9625
+ _a17,
9528
9626
  modelId
9529
9627
  );
9530
9628
  if (model == null) {
9531
- throw new import_provider28.NoSuchModelError({ modelId: id, modelType: "languageModel" });
9629
+ throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "languageModel" });
9532
9630
  }
9533
9631
  if (this.languageModelMiddleware != null) {
9534
9632
  model = wrapLanguageModel({
@@ -9539,12 +9637,12 @@ var DefaultProviderRegistry = class {
9539
9637
  return model;
9540
9638
  }
9541
9639
  textEmbeddingModel(id) {
9542
- var _a16;
9640
+ var _a17;
9543
9641
  const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
9544
9642
  const provider = this.getProvider(providerId, "textEmbeddingModel");
9545
- const model = (_a16 = provider.textEmbeddingModel) == null ? void 0 : _a16.call(provider, modelId);
9643
+ const model = (_a17 = provider.textEmbeddingModel) == null ? void 0 : _a17.call(provider, modelId);
9546
9644
  if (model == null) {
9547
- throw new import_provider28.NoSuchModelError({
9645
+ throw new import_provider29.NoSuchModelError({
9548
9646
  modelId: id,
9549
9647
  modelType: "textEmbeddingModel"
9550
9648
  });
@@ -9552,22 +9650,22 @@ var DefaultProviderRegistry = class {
9552
9650
  return model;
9553
9651
  }
9554
9652
  imageModel(id) {
9555
- var _a16;
9653
+ var _a17;
9556
9654
  const [providerId, modelId] = this.splitId(id, "imageModel");
9557
9655
  const provider = this.getProvider(providerId, "imageModel");
9558
- const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
9656
+ const model = (_a17 = provider.imageModel) == null ? void 0 : _a17.call(provider, modelId);
9559
9657
  if (model == null) {
9560
- throw new import_provider28.NoSuchModelError({ modelId: id, modelType: "imageModel" });
9658
+ throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "imageModel" });
9561
9659
  }
9562
9660
  return model;
9563
9661
  }
9564
9662
  transcriptionModel(id) {
9565
- var _a16;
9663
+ var _a17;
9566
9664
  const [providerId, modelId] = this.splitId(id, "transcriptionModel");
9567
9665
  const provider = this.getProvider(providerId, "transcriptionModel");
9568
- const model = (_a16 = provider.transcriptionModel) == null ? void 0 : _a16.call(provider, modelId);
9666
+ const model = (_a17 = provider.transcriptionModel) == null ? void 0 : _a17.call(provider, modelId);
9569
9667
  if (model == null) {
9570
- throw new import_provider28.NoSuchModelError({
9668
+ throw new import_provider29.NoSuchModelError({
9571
9669
  modelId: id,
9572
9670
  modelType: "transcriptionModel"
9573
9671
  });
@@ -9575,12 +9673,12 @@ var DefaultProviderRegistry = class {
9575
9673
  return model;
9576
9674
  }
9577
9675
  speechModel(id) {
9578
- var _a16;
9676
+ var _a17;
9579
9677
  const [providerId, modelId] = this.splitId(id, "speechModel");
9580
9678
  const provider = this.getProvider(providerId, "speechModel");
9581
- const model = (_a16 = provider.speechModel) == null ? void 0 : _a16.call(provider, modelId);
9679
+ const model = (_a17 = provider.speechModel) == null ? void 0 : _a17.call(provider, modelId);
9582
9680
  if (model == null) {
9583
- throw new import_provider28.NoSuchModelError({ modelId: id, modelType: "speechModel" });
9681
+ throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "speechModel" });
9584
9682
  }
9585
9683
  return model;
9586
9684
  }
@@ -9590,8 +9688,8 @@ var DefaultProviderRegistry = class {
9590
9688
  var import_provider_utils28 = require("@ai-sdk/provider-utils");
9591
9689
 
9592
9690
  // src/error/no-transcript-generated-error.ts
9593
- var import_provider29 = require("@ai-sdk/provider");
9594
- var NoTranscriptGeneratedError = class extends import_provider29.AISDKError {
9691
+ var import_provider30 = require("@ai-sdk/provider");
9692
+ var NoTranscriptGeneratedError = class extends import_provider30.AISDKError {
9595
9693
  constructor(options) {
9596
9694
  super({
9597
9695
  name: "AI_NoTranscriptGeneratedError",
@@ -9630,16 +9728,16 @@ async function transcribe({
9630
9728
  const audioData = audio instanceof URL ? (await downloadFn({ url: audio, abortSignal })).data : convertDataContentToUint8Array(audio);
9631
9729
  const result = await retry(
9632
9730
  () => {
9633
- var _a16;
9731
+ var _a17;
9634
9732
  return model.doGenerate({
9635
9733
  audio: audioData,
9636
9734
  abortSignal,
9637
9735
  headers: headersWithUserAgent,
9638
9736
  providerOptions,
9639
- mediaType: (_a16 = detectMediaType({
9737
+ mediaType: (_a17 = detectMediaType({
9640
9738
  data: audioData,
9641
9739
  signatures: audioMediaTypeSignatures
9642
- })) != null ? _a16 : "audio/wav"
9740
+ })) != null ? _a17 : "audio/wav"
9643
9741
  });
9644
9742
  }
9645
9743
  );
@@ -9659,14 +9757,14 @@ async function transcribe({
9659
9757
  }
9660
9758
  var DefaultTranscriptionResult = class {
9661
9759
  constructor(options) {
9662
- var _a16;
9760
+ var _a17;
9663
9761
  this.text = options.text;
9664
9762
  this.segments = options.segments;
9665
9763
  this.language = options.language;
9666
9764
  this.durationInSeconds = options.durationInSeconds;
9667
9765
  this.warnings = options.warnings;
9668
9766
  this.responses = options.responses;
9669
- this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
9767
+ this.providerMetadata = (_a17 = options.providerMetadata) != null ? _a17 : {};
9670
9768
  }
9671
9769
  };
9672
9770
 
@@ -9705,7 +9803,7 @@ async function callCompletionApi({
9705
9803
  onError,
9706
9804
  fetch: fetch2 = getOriginalFetch()
9707
9805
  }) {
9708
- var _a16;
9806
+ var _a17;
9709
9807
  try {
9710
9808
  setLoading(true);
9711
9809
  setError(void 0);
@@ -9733,7 +9831,7 @@ async function callCompletionApi({
9733
9831
  });
9734
9832
  if (!response.ok) {
9735
9833
  throw new Error(
9736
- (_a16 = await response.text()) != null ? _a16 : "Failed to fetch the chat response."
9834
+ (_a17 = await response.text()) != null ? _a17 : "Failed to fetch the chat response."
9737
9835
  );
9738
9836
  }
9739
9837
  if (!response.body) {
@@ -9817,12 +9915,12 @@ async function convertFileListToFileUIParts(files) {
9817
9915
  }
9818
9916
  return Promise.all(
9819
9917
  Array.from(files).map(async (file) => {
9820
- const { name: name16, type } = file;
9918
+ const { name: name17, type } = file;
9821
9919
  const dataUrl = await new Promise((resolve2, reject) => {
9822
9920
  const reader = new FileReader();
9823
9921
  reader.onload = (readerEvent) => {
9824
- var _a16;
9825
- resolve2((_a16 = readerEvent.target) == null ? void 0 : _a16.result);
9922
+ var _a17;
9923
+ resolve2((_a17 = readerEvent.target) == null ? void 0 : _a17.result);
9826
9924
  };
9827
9925
  reader.onerror = (error) => reject(error);
9828
9926
  reader.readAsDataURL(file);
@@ -9830,7 +9928,7 @@ async function convertFileListToFileUIParts(files) {
9830
9928
  return {
9831
9929
  type: "file",
9832
9930
  mediaType: type,
9833
- filename: name16,
9931
+ filename: name17,
9834
9932
  url: dataUrl
9835
9933
  };
9836
9934
  })
@@ -9870,7 +9968,7 @@ var HttpChatTransport = class {
9870
9968
  abortSignal,
9871
9969
  ...options
9872
9970
  }) {
9873
- var _a16, _b, _c, _d, _e;
9971
+ var _a17, _b, _c, _d, _e;
9874
9972
  const resolvedBody = await (0, import_provider_utils30.resolve)(this.body);
9875
9973
  const resolvedHeaders = await (0, import_provider_utils30.resolve)(this.headers);
9876
9974
  const resolvedCredentials = await (0, import_provider_utils30.resolve)(this.credentials);
@@ -9878,7 +9976,7 @@ var HttpChatTransport = class {
9878
9976
  ...(0, import_provider_utils30.normalizeHeaders)(resolvedHeaders),
9879
9977
  ...(0, import_provider_utils30.normalizeHeaders)(options.headers)
9880
9978
  };
9881
- const preparedRequest = await ((_a16 = this.prepareSendMessagesRequest) == null ? void 0 : _a16.call(this, {
9979
+ const preparedRequest = await ((_a17 = this.prepareSendMessagesRequest) == null ? void 0 : _a17.call(this, {
9882
9980
  api: this.api,
9883
9981
  id: options.chatId,
9884
9982
  messages: options.messages,
@@ -9922,7 +10020,7 @@ var HttpChatTransport = class {
9922
10020
  return this.processResponseStream(response.body);
9923
10021
  }
9924
10022
  async reconnectToStream(options) {
9925
- var _a16, _b, _c, _d;
10023
+ var _a17, _b, _c, _d;
9926
10024
  const resolvedBody = await (0, import_provider_utils30.resolve)(this.body);
9927
10025
  const resolvedHeaders = await (0, import_provider_utils30.resolve)(this.headers);
9928
10026
  const resolvedCredentials = await (0, import_provider_utils30.resolve)(this.credentials);
@@ -9930,7 +10028,7 @@ var HttpChatTransport = class {
9930
10028
  ...(0, import_provider_utils30.normalizeHeaders)(resolvedHeaders),
9931
10029
  ...(0, import_provider_utils30.normalizeHeaders)(options.headers)
9932
10030
  };
9933
- const preparedRequest = await ((_a16 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a16.call(this, {
10031
+ const preparedRequest = await ((_a17 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a17.call(this, {
9934
10032
  api: this.api,
9935
10033
  id: options.chatId,
9936
10034
  body: { ...resolvedBody, ...options.body },
@@ -10026,11 +10124,11 @@ var AbstractChat = class {
10026
10124
  * If a messageId is provided, the message will be replaced.
10027
10125
  */
10028
10126
  this.sendMessage = async (message, options) => {
10029
- var _a16, _b, _c, _d;
10127
+ var _a17, _b, _c, _d;
10030
10128
  if (message == null) {
10031
10129
  await this.makeRequest({
10032
10130
  trigger: "submit-message",
10033
- messageId: (_a16 = this.lastMessage) == null ? void 0 : _a16.id,
10131
+ messageId: (_a17 = this.lastMessage) == null ? void 0 : _a17.id,
10034
10132
  ...options
10035
10133
  });
10036
10134
  return;
@@ -10292,14 +10390,14 @@ var AbstractChat = class {
10292
10390
  messageId,
10293
10391
  completionPromise
10294
10392
  }) {
10295
- var _a16, _b;
10393
+ var _a17, _b;
10296
10394
  if (trigger !== "resume-stream") {
10297
10395
  this.resumableStreamState = void 0;
10298
10396
  }
10299
10397
  const abortController = new AbortController();
10300
10398
  const activeResumeRequest = trigger === "resume-stream" ? { abortController, completionPromise } : void 0;
10301
10399
  if (activeResumeRequest) {
10302
- (_a16 = this.activeResumeRequest) == null ? void 0 : _a16.abortController.abort();
10400
+ (_a17 = this.activeResumeRequest) == null ? void 0 : _a17.abortController.abort();
10303
10401
  this.activeResumeRequest = activeResumeRequest;
10304
10402
  }
10305
10403
  const isCurrentRequest = () => activeResumeRequest == null || this.activeResumeRequest === activeResumeRequest;
@@ -10496,10 +10594,10 @@ var AbstractChat = class {
10496
10594
  if (!isAbort && !isError) {
10497
10595
  await this.runAutomaticRequest(
10498
10596
  () => {
10499
- var _a17;
10597
+ var _a18;
10500
10598
  return this.makeRequest({
10501
10599
  trigger: "submit-message",
10502
- messageId: (_a17 = this.lastMessage) == null ? void 0 : _a17.id,
10600
+ messageId: (_a18 = this.lastMessage) == null ? void 0 : _a18.id,
10503
10601
  metadata,
10504
10602
  headers,
10505
10603
  body
@@ -10571,7 +10669,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
10571
10669
  };
10572
10670
 
10573
10671
  // src/ui/validate-ui-messages.ts
10574
- var import_provider30 = require("@ai-sdk/provider");
10672
+ var import_provider31 = require("@ai-sdk/provider");
10575
10673
  var import_provider_utils33 = require("@ai-sdk/provider-utils");
10576
10674
  var import_v48 = require("zod/v4");
10577
10675
  function isEmptyObject(value) {
@@ -10871,7 +10969,7 @@ async function safeValidateUIMessages({
10871
10969
  if (!dataSchema) {
10872
10970
  return {
10873
10971
  success: false,
10874
- error: new import_provider30.TypeValidationError({
10972
+ error: new import_provider31.TypeValidationError({
10875
10973
  value: dataPart.data,
10876
10974
  cause: `No data schema found for data part ${dataName}`
10877
10975
  })
@@ -10900,7 +10998,7 @@ async function safeValidateUIMessages({
10900
10998
  if (!tool2) {
10901
10999
  return {
10902
11000
  success: false,
10903
- error: new import_provider30.TypeValidationError({
11001
+ error: new import_provider31.TypeValidationError({
10904
11002
  value: toolPart.input,
10905
11003
  cause: `No tool schema found for tool part ${toolName}`
10906
11004
  })
@@ -11103,7 +11201,7 @@ function readUIMessageStream({
11103
11201
  onError,
11104
11202
  terminateOnError = false
11105
11203
  }) {
11106
- var _a16;
11204
+ var _a17;
11107
11205
  let controller;
11108
11206
  let hasErrored = false;
11109
11207
  let isCancelled = false;
@@ -11118,7 +11216,7 @@ function readUIMessageStream({
11118
11216
  }
11119
11217
  });
11120
11218
  const state = createStreamingUIMessageState({
11121
- messageId: (_a16 = message == null ? void 0 : message.id) != null ? _a16 : "",
11219
+ messageId: (_a17 = message == null ? void 0 : message.id) != null ? _a17 : "",
11122
11220
  lastMessage: message
11123
11221
  });
11124
11222
  const handleError = (error) => {
@@ -11190,6 +11288,7 @@ function readUIMessageStream({
11190
11288
  TextStreamChatTransport,
11191
11289
  TooManyEmbeddingValuesForCallError,
11192
11290
  ToolCallRepairError,
11291
+ ToolChoiceViolationError,
11193
11292
  TypeValidationError,
11194
11293
  UI_MESSAGE_STREAM_HEADERS,
11195
11294
  UnsupportedFunctionalityError,