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.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __export = (target, all) => {
3
- for (var name16 in all)
4
- __defProp(target, name16, { get: all[name16], enumerable: true });
3
+ for (var name17 in all)
4
+ __defProp(target, name17, { get: all[name17], enumerable: true });
5
5
  };
6
6
 
7
7
  // src/index.ts
@@ -43,6 +43,37 @@ var NoOutputSpecifiedError = class extends AISDKError {
43
43
  };
44
44
  _a = symbol;
45
45
 
46
+ // src/error/tool-choice-violation-error.ts
47
+ import {
48
+ AISDKError as AISDKError2
49
+ } from "@ai-sdk/provider";
50
+ var name2 = "AI_ToolChoiceViolationError";
51
+ var marker2 = `vercel.ai.error.${name2}`;
52
+ var symbol2 = Symbol.for(marker2);
53
+ var _a2;
54
+ var ToolChoiceViolationError = class extends AISDKError2 {
55
+ constructor({
56
+ toolChoice,
57
+ finishReason,
58
+ provider,
59
+ modelId,
60
+ content,
61
+ message = "Model response contained a tool call even though tool choice was none."
62
+ }) {
63
+ super({ name: name2, message });
64
+ this[_a2] = true;
65
+ this.toolChoice = toolChoice;
66
+ this.finishReason = finishReason;
67
+ this.provider = provider;
68
+ this.modelId = modelId;
69
+ this.content = content;
70
+ }
71
+ static isInstance(error) {
72
+ return AISDKError2.hasMarker(error, marker2);
73
+ }
74
+ };
75
+ _a2 = symbol2;
76
+
46
77
  // src/logger/log-warnings.ts
47
78
  function formatWarning(warning) {
48
79
  const prefix = "AI SDK Warning:";
@@ -114,7 +145,7 @@ import { gateway } from "@ai-sdk/gateway";
114
145
 
115
146
  // src/error/index.ts
116
147
  import {
117
- AISDKError as AISDKError17,
148
+ AISDKError as AISDKError18,
118
149
  APICallError,
119
150
  EmptyResponseBodyError,
120
151
  InvalidPromptError,
@@ -130,105 +161,105 @@ import {
130
161
  } from "@ai-sdk/provider";
131
162
 
132
163
  // src/error/invalid-argument-error.ts
133
- import { AISDKError as AISDKError2 } from "@ai-sdk/provider";
134
- var name2 = "AI_InvalidArgumentError";
135
- var marker2 = `vercel.ai.error.${name2}`;
136
- var symbol2 = Symbol.for(marker2);
137
- var _a2;
138
- var InvalidArgumentError = class extends AISDKError2 {
164
+ import { AISDKError as AISDKError3 } from "@ai-sdk/provider";
165
+ var name3 = "AI_InvalidArgumentError";
166
+ var marker3 = `vercel.ai.error.${name3}`;
167
+ var symbol3 = Symbol.for(marker3);
168
+ var _a3;
169
+ var InvalidArgumentError = class extends AISDKError3 {
139
170
  constructor({
140
171
  parameter,
141
172
  value,
142
173
  message
143
174
  }) {
144
175
  super({
145
- name: name2,
176
+ name: name3,
146
177
  message: `Invalid argument for parameter ${parameter}: ${message}`
147
178
  });
148
- this[_a2] = true;
179
+ this[_a3] = true;
149
180
  this.parameter = parameter;
150
181
  this.value = value;
151
182
  }
152
183
  static isInstance(error) {
153
- return AISDKError2.hasMarker(error, marker2);
184
+ return AISDKError3.hasMarker(error, marker3);
154
185
  }
155
186
  };
156
- _a2 = symbol2;
187
+ _a3 = symbol3;
157
188
 
158
189
  // src/error/invalid-stream-part-error.ts
159
- import { AISDKError as AISDKError3 } from "@ai-sdk/provider";
160
- var name3 = "AI_InvalidStreamPartError";
161
- var marker3 = `vercel.ai.error.${name3}`;
162
- var symbol3 = Symbol.for(marker3);
163
- var _a3;
164
- var InvalidStreamPartError = class extends AISDKError3 {
190
+ import { AISDKError as AISDKError4 } from "@ai-sdk/provider";
191
+ var name4 = "AI_InvalidStreamPartError";
192
+ var marker4 = `vercel.ai.error.${name4}`;
193
+ var symbol4 = Symbol.for(marker4);
194
+ var _a4;
195
+ var InvalidStreamPartError = class extends AISDKError4 {
165
196
  constructor({
166
197
  chunk,
167
198
  message
168
199
  }) {
169
- super({ name: name3, message });
170
- this[_a3] = true;
200
+ super({ name: name4, message });
201
+ this[_a4] = true;
171
202
  this.chunk = chunk;
172
203
  }
173
204
  static isInstance(error) {
174
- return AISDKError3.hasMarker(error, marker3);
205
+ return AISDKError4.hasMarker(error, marker4);
175
206
  }
176
207
  };
177
- _a3 = symbol3;
208
+ _a4 = symbol4;
178
209
 
179
210
  // src/error/invalid-tool-input-error.ts
180
- import { AISDKError as AISDKError4, getErrorMessage } from "@ai-sdk/provider";
181
- var name4 = "AI_InvalidToolInputError";
182
- var marker4 = `vercel.ai.error.${name4}`;
183
- var symbol4 = Symbol.for(marker4);
184
- var _a4;
185
- var InvalidToolInputError = class extends AISDKError4 {
211
+ import { AISDKError as AISDKError5, getErrorMessage } from "@ai-sdk/provider";
212
+ var name5 = "AI_InvalidToolInputError";
213
+ var marker5 = `vercel.ai.error.${name5}`;
214
+ var symbol5 = Symbol.for(marker5);
215
+ var _a5;
216
+ var InvalidToolInputError = class extends AISDKError5 {
186
217
  constructor({
187
218
  toolInput,
188
219
  toolName,
189
220
  cause,
190
221
  message = `Invalid input for tool ${toolName}: ${getErrorMessage(cause)}`
191
222
  }) {
192
- super({ name: name4, message, cause });
193
- this[_a4] = true;
223
+ super({ name: name5, message, cause });
224
+ this[_a5] = true;
194
225
  this.toolInput = toolInput;
195
226
  this.toolName = toolName;
196
227
  }
197
228
  static isInstance(error) {
198
- return AISDKError4.hasMarker(error, marker4);
229
+ return AISDKError5.hasMarker(error, marker5);
199
230
  }
200
231
  };
201
- _a4 = symbol4;
232
+ _a5 = symbol5;
202
233
 
203
234
  // src/error/no-image-generated-error.ts
204
- import { AISDKError as AISDKError5 } from "@ai-sdk/provider";
205
- var name5 = "AI_NoImageGeneratedError";
206
- var marker5 = `vercel.ai.error.${name5}`;
207
- var symbol5 = Symbol.for(marker5);
208
- var _a5;
209
- var NoImageGeneratedError = class extends AISDKError5 {
235
+ import { AISDKError as AISDKError6 } from "@ai-sdk/provider";
236
+ var name6 = "AI_NoImageGeneratedError";
237
+ var marker6 = `vercel.ai.error.${name6}`;
238
+ var symbol6 = Symbol.for(marker6);
239
+ var _a6;
240
+ var NoImageGeneratedError = class extends AISDKError6 {
210
241
  constructor({
211
242
  message = "No image generated.",
212
243
  cause,
213
244
  responses
214
245
  }) {
215
- super({ name: name5, message, cause });
216
- this[_a5] = true;
246
+ super({ name: name6, message, cause });
247
+ this[_a6] = true;
217
248
  this.responses = responses;
218
249
  }
219
250
  static isInstance(error) {
220
- return AISDKError5.hasMarker(error, marker5);
251
+ return AISDKError6.hasMarker(error, marker6);
221
252
  }
222
253
  };
223
- _a5 = symbol5;
254
+ _a6 = symbol6;
224
255
 
225
256
  // src/error/no-object-generated-error.ts
226
- import { AISDKError as AISDKError6 } from "@ai-sdk/provider";
227
- var name6 = "AI_NoObjectGeneratedError";
228
- var marker6 = `vercel.ai.error.${name6}`;
229
- var symbol6 = Symbol.for(marker6);
230
- var _a6;
231
- var NoObjectGeneratedError = class extends AISDKError6 {
257
+ import { AISDKError as AISDKError7 } from "@ai-sdk/provider";
258
+ var name7 = "AI_NoObjectGeneratedError";
259
+ var marker7 = `vercel.ai.error.${name7}`;
260
+ var symbol7 = Symbol.for(marker7);
261
+ var _a7;
262
+ var NoObjectGeneratedError = class extends AISDKError7 {
232
263
  constructor({
233
264
  message = "No object generated.",
234
265
  cause,
@@ -237,43 +268,43 @@ var NoObjectGeneratedError = class extends AISDKError6 {
237
268
  usage,
238
269
  finishReason
239
270
  }) {
240
- super({ name: name6, message, cause });
241
- this[_a6] = true;
271
+ super({ name: name7, message, cause });
272
+ this[_a7] = true;
242
273
  this.text = text2;
243
274
  this.response = response;
244
275
  this.usage = usage;
245
276
  this.finishReason = finishReason;
246
277
  }
247
278
  static isInstance(error) {
248
- return AISDKError6.hasMarker(error, marker6);
279
+ return AISDKError7.hasMarker(error, marker7);
249
280
  }
250
281
  };
251
- _a6 = symbol6;
282
+ _a7 = symbol7;
252
283
 
253
284
  // src/error/no-output-generated-error.ts
254
- import { AISDKError as AISDKError7 } from "@ai-sdk/provider";
255
- var name7 = "AI_NoOutputGeneratedError";
256
- var marker7 = `vercel.ai.error.${name7}`;
257
- var symbol7 = Symbol.for(marker7);
258
- var _a7;
259
- var NoOutputGeneratedError = class extends AISDKError7 {
285
+ import { AISDKError as AISDKError8 } from "@ai-sdk/provider";
286
+ var name8 = "AI_NoOutputGeneratedError";
287
+ var marker8 = `vercel.ai.error.${name8}`;
288
+ var symbol8 = Symbol.for(marker8);
289
+ var _a8;
290
+ var NoOutputGeneratedError = class extends AISDKError8 {
260
291
  // used in isInstance
261
292
  constructor({
262
293
  message = "No output generated.",
263
294
  cause
264
295
  } = {}) {
265
- super({ name: name7, message, cause });
266
- this[_a7] = true;
296
+ super({ name: name8, message, cause });
297
+ this[_a8] = true;
267
298
  }
268
299
  static isInstance(error) {
269
- return AISDKError7.hasMarker(error, marker7);
300
+ return AISDKError8.hasMarker(error, marker8);
270
301
  }
271
302
  };
272
- _a7 = symbol7;
303
+ _a8 = symbol8;
273
304
 
274
305
  // src/error/no-speech-generated-error.ts
275
- import { AISDKError as AISDKError8 } from "@ai-sdk/provider";
276
- var NoSpeechGeneratedError = class extends AISDKError8 {
306
+ import { AISDKError as AISDKError9 } from "@ai-sdk/provider";
307
+ var NoSpeechGeneratedError = class extends AISDKError9 {
277
308
  constructor(options) {
278
309
  super({
279
310
  name: "AI_NoSpeechGeneratedError",
@@ -284,53 +315,53 @@ var NoSpeechGeneratedError = class extends AISDKError8 {
284
315
  };
285
316
 
286
317
  // src/error/no-such-tool-error.ts
287
- import { AISDKError as AISDKError9 } from "@ai-sdk/provider";
288
- var name8 = "AI_NoSuchToolError";
289
- var marker8 = `vercel.ai.error.${name8}`;
290
- var symbol8 = Symbol.for(marker8);
291
- var _a8;
292
- var NoSuchToolError = class extends AISDKError9 {
318
+ import { AISDKError as AISDKError10 } from "@ai-sdk/provider";
319
+ var name9 = "AI_NoSuchToolError";
320
+ var marker9 = `vercel.ai.error.${name9}`;
321
+ var symbol9 = Symbol.for(marker9);
322
+ var _a9;
323
+ var NoSuchToolError = class extends AISDKError10 {
293
324
  constructor({
294
325
  toolName,
295
326
  availableTools = void 0,
296
327
  message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
297
328
  }) {
298
- super({ name: name8, message });
299
- this[_a8] = true;
329
+ super({ name: name9, message });
330
+ this[_a9] = true;
300
331
  this.toolName = toolName;
301
332
  this.availableTools = availableTools;
302
333
  }
303
334
  static isInstance(error) {
304
- return AISDKError9.hasMarker(error, marker8);
335
+ return AISDKError10.hasMarker(error, marker9);
305
336
  }
306
337
  };
307
- _a8 = symbol8;
338
+ _a9 = symbol9;
308
339
 
309
340
  // src/error/tool-call-repair-error.ts
310
- import { AISDKError as AISDKError10, getErrorMessage as getErrorMessage2 } from "@ai-sdk/provider";
311
- var name9 = "AI_ToolCallRepairError";
312
- var marker9 = `vercel.ai.error.${name9}`;
313
- var symbol9 = Symbol.for(marker9);
314
- var _a9;
315
- var ToolCallRepairError = class extends AISDKError10 {
341
+ import { AISDKError as AISDKError11, getErrorMessage as getErrorMessage2 } from "@ai-sdk/provider";
342
+ var name10 = "AI_ToolCallRepairError";
343
+ var marker10 = `vercel.ai.error.${name10}`;
344
+ var symbol10 = Symbol.for(marker10);
345
+ var _a10;
346
+ var ToolCallRepairError = class extends AISDKError11 {
316
347
  constructor({
317
348
  cause,
318
349
  originalError,
319
350
  message = `Error repairing tool call: ${getErrorMessage2(cause)}`
320
351
  }) {
321
- super({ name: name9, message, cause });
322
- this[_a9] = true;
352
+ super({ name: name10, message, cause });
353
+ this[_a10] = true;
323
354
  this.originalError = originalError;
324
355
  }
325
356
  static isInstance(error) {
326
- return AISDKError10.hasMarker(error, marker9);
357
+ return AISDKError11.hasMarker(error, marker10);
327
358
  }
328
359
  };
329
- _a9 = symbol9;
360
+ _a10 = symbol10;
330
361
 
331
362
  // src/error/unsupported-model-version-error.ts
332
- import { AISDKError as AISDKError11 } from "@ai-sdk/provider";
333
- var UnsupportedModelVersionError = class extends AISDKError11 {
363
+ import { AISDKError as AISDKError12 } from "@ai-sdk/provider";
364
+ var UnsupportedModelVersionError = class extends AISDKError12 {
334
365
  constructor(options) {
335
366
  super({
336
367
  name: "AI_UnsupportedModelVersionError",
@@ -343,76 +374,76 @@ var UnsupportedModelVersionError = class extends AISDKError11 {
343
374
  };
344
375
 
345
376
  // src/prompt/invalid-data-content-error.ts
346
- import { AISDKError as AISDKError12 } from "@ai-sdk/provider";
347
- var name10 = "AI_InvalidDataContentError";
348
- var marker10 = `vercel.ai.error.${name10}`;
349
- var symbol10 = Symbol.for(marker10);
350
- var _a10;
351
- var InvalidDataContentError = class extends AISDKError12 {
377
+ import { AISDKError as AISDKError13 } from "@ai-sdk/provider";
378
+ var name11 = "AI_InvalidDataContentError";
379
+ var marker11 = `vercel.ai.error.${name11}`;
380
+ var symbol11 = Symbol.for(marker11);
381
+ var _a11;
382
+ var InvalidDataContentError = class extends AISDKError13 {
352
383
  constructor({
353
384
  content,
354
385
  cause,
355
386
  message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
356
387
  }) {
357
- super({ name: name10, message, cause });
358
- this[_a10] = true;
388
+ super({ name: name11, message, cause });
389
+ this[_a11] = true;
359
390
  this.content = content;
360
391
  }
361
392
  static isInstance(error) {
362
- return AISDKError12.hasMarker(error, marker10);
393
+ return AISDKError13.hasMarker(error, marker11);
363
394
  }
364
395
  };
365
- _a10 = symbol10;
396
+ _a11 = symbol11;
366
397
 
367
398
  // src/prompt/invalid-message-role-error.ts
368
- import { AISDKError as AISDKError13 } from "@ai-sdk/provider";
369
- var name11 = "AI_InvalidMessageRoleError";
370
- var marker11 = `vercel.ai.error.${name11}`;
371
- var symbol11 = Symbol.for(marker11);
372
- var _a11;
373
- var InvalidMessageRoleError = class extends AISDKError13 {
399
+ import { AISDKError as AISDKError14 } from "@ai-sdk/provider";
400
+ var name12 = "AI_InvalidMessageRoleError";
401
+ var marker12 = `vercel.ai.error.${name12}`;
402
+ var symbol12 = Symbol.for(marker12);
403
+ var _a12;
404
+ var InvalidMessageRoleError = class extends AISDKError14 {
374
405
  constructor({
375
406
  role,
376
407
  message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
377
408
  }) {
378
- super({ name: name11, message });
379
- this[_a11] = true;
409
+ super({ name: name12, message });
410
+ this[_a12] = true;
380
411
  this.role = role;
381
412
  }
382
413
  static isInstance(error) {
383
- return AISDKError13.hasMarker(error, marker11);
414
+ return AISDKError14.hasMarker(error, marker12);
384
415
  }
385
416
  };
386
- _a11 = symbol11;
417
+ _a12 = symbol12;
387
418
 
388
419
  // src/prompt/message-conversion-error.ts
389
- import { AISDKError as AISDKError14 } from "@ai-sdk/provider";
390
- var name12 = "AI_MessageConversionError";
391
- var marker12 = `vercel.ai.error.${name12}`;
392
- var symbol12 = Symbol.for(marker12);
393
- var _a12;
394
- var MessageConversionError = class extends AISDKError14 {
420
+ import { AISDKError as AISDKError15 } from "@ai-sdk/provider";
421
+ var name13 = "AI_MessageConversionError";
422
+ var marker13 = `vercel.ai.error.${name13}`;
423
+ var symbol13 = Symbol.for(marker13);
424
+ var _a13;
425
+ var MessageConversionError = class extends AISDKError15 {
395
426
  constructor({
396
427
  originalMessage,
397
428
  message
398
429
  }) {
399
- super({ name: name12, message });
400
- this[_a12] = true;
430
+ super({ name: name13, message });
431
+ this[_a13] = true;
401
432
  this.originalMessage = originalMessage;
402
433
  }
403
434
  static isInstance(error) {
404
- return AISDKError14.hasMarker(error, marker12);
435
+ return AISDKError15.hasMarker(error, marker13);
405
436
  }
406
437
  };
407
- _a12 = symbol12;
438
+ _a13 = symbol13;
408
439
 
409
440
  // src/util/download/download-error.ts
410
- import { AISDKError as AISDKError15 } from "@ai-sdk/provider";
411
- var name13 = "AI_DownloadError";
412
- var marker13 = `vercel.ai.error.${name13}`;
413
- var symbol13 = Symbol.for(marker13);
414
- var _a13;
415
- var DownloadError = class extends AISDKError15 {
441
+ import { AISDKError as AISDKError16 } from "@ai-sdk/provider";
442
+ var name14 = "AI_DownloadError";
443
+ var marker14 = `vercel.ai.error.${name14}`;
444
+ var symbol14 = Symbol.for(marker14);
445
+ var _a14;
446
+ var DownloadError = class extends AISDKError16 {
416
447
  constructor({
417
448
  url,
418
449
  statusCode,
@@ -420,41 +451,41 @@ var DownloadError = class extends AISDKError15 {
420
451
  cause,
421
452
  message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`
422
453
  }) {
423
- super({ name: name13, message, cause });
424
- this[_a13] = true;
454
+ super({ name: name14, message, cause });
455
+ this[_a14] = true;
425
456
  this.url = url;
426
457
  this.statusCode = statusCode;
427
458
  this.statusText = statusText;
428
459
  }
429
460
  static isInstance(error) {
430
- return AISDKError15.hasMarker(error, marker13);
461
+ return AISDKError16.hasMarker(error, marker14);
431
462
  }
432
463
  };
433
- _a13 = symbol13;
464
+ _a14 = symbol14;
434
465
 
435
466
  // src/util/retry-error.ts
436
- import { AISDKError as AISDKError16 } from "@ai-sdk/provider";
437
- var name14 = "AI_RetryError";
438
- var marker14 = `vercel.ai.error.${name14}`;
439
- var symbol14 = Symbol.for(marker14);
440
- var _a14;
441
- var RetryError = class extends AISDKError16 {
467
+ import { AISDKError as AISDKError17 } from "@ai-sdk/provider";
468
+ var name15 = "AI_RetryError";
469
+ var marker15 = `vercel.ai.error.${name15}`;
470
+ var symbol15 = Symbol.for(marker15);
471
+ var _a15;
472
+ var RetryError = class extends AISDKError17 {
442
473
  constructor({
443
474
  message,
444
475
  reason,
445
476
  errors
446
477
  }) {
447
- super({ name: name14, message });
448
- this[_a14] = true;
478
+ super({ name: name15, message });
479
+ this[_a15] = true;
449
480
  this.reason = reason;
450
481
  this.errors = errors;
451
482
  this.lastError = errors[errors.length - 1];
452
483
  }
453
484
  static isInstance(error) {
454
- return AISDKError16.hasMarker(error, marker14);
485
+ return AISDKError17.hasMarker(error, marker15);
455
486
  }
456
487
  };
457
- _a14 = symbol14;
488
+ _a15 = symbol15;
458
489
 
459
490
  // src/model/resolve-model.ts
460
491
  function resolveLanguageModel(model) {
@@ -499,8 +530,8 @@ function resolveImageModel(model) {
499
530
  return getGlobalProvider().imageModel(model);
500
531
  }
501
532
  function getGlobalProvider() {
502
- var _a16;
503
- return (_a16 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a16 : gateway;
533
+ var _a17;
534
+ return (_a17 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a17 : gateway;
504
535
  }
505
536
 
506
537
  // src/prompt/convert-to-language-model-prompt.ts
@@ -727,7 +758,7 @@ import {
727
758
  } from "@ai-sdk/provider-utils";
728
759
 
729
760
  // src/version.ts
730
- var VERSION = true ? "5.0.279" : "0.0.0-test";
761
+ var VERSION = true ? "5.0.281" : "0.0.0-test";
731
762
 
732
763
  // src/util/download/download.ts
733
764
  var download = async ({
@@ -735,7 +766,7 @@ var download = async ({
735
766
  maxBytes,
736
767
  abortSignal
737
768
  }) => {
738
- var _a16;
769
+ var _a17;
739
770
  const urlText = url.toString();
740
771
  try {
741
772
  const headers = withUserAgentSuffix(
@@ -763,7 +794,7 @@ var download = async ({
763
794
  });
764
795
  return {
765
796
  data,
766
- mediaType: (_a16 = response.headers.get("content-type")) != null ? _a16 : void 0
797
+ mediaType: (_a17 = response.headers.get("content-type")) != null ? _a17 : void 0
767
798
  };
768
799
  } catch (error) {
769
800
  if (DownloadError2.isInstance(error)) {
@@ -781,7 +812,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
781
812
  );
782
813
 
783
814
  // src/prompt/data-content.ts
784
- import { AISDKError as AISDKError18 } from "@ai-sdk/provider";
815
+ import { AISDKError as AISDKError19 } from "@ai-sdk/provider";
785
816
  import {
786
817
  convertBase64ToUint8Array as convertBase64ToUint8Array2,
787
818
  convertUint8ArrayToBase64
@@ -812,8 +843,8 @@ var dataContentSchema = z.union([
812
843
  z.custom(
813
844
  // Buffer might not be available in some environments such as CloudFlare:
814
845
  (value) => {
815
- var _a16, _b;
816
- return (_b = (_a16 = globalThis.Buffer) == null ? void 0 : _a16.isBuffer(value)) != null ? _b : false;
846
+ var _a17, _b;
847
+ return (_b = (_a17 = globalThis.Buffer) == null ? void 0 : _a17.isBuffer(value)) != null ? _b : false;
817
848
  },
818
849
  { message: "Must be a Buffer" }
819
850
  )
@@ -836,7 +867,7 @@ function convertToLanguageModelV2DataContent(content) {
836
867
  content.toString()
837
868
  );
838
869
  if (dataUrlMediaType == null || base64Content == null) {
839
- throw new AISDKError18({
870
+ throw new AISDKError19({
840
871
  name: "InvalidDataContentError",
841
872
  message: `Invalid data URL format in content ${content.toString()}`
842
873
  });
@@ -1013,8 +1044,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
1013
1044
  ).flat().filter(
1014
1045
  (part) => part.type === "image" || part.type === "file"
1015
1046
  ).map((part) => {
1016
- var _a16;
1017
- const mediaType = (_a16 = part.mediaType) != null ? _a16 : part.type === "image" ? "image/*" : void 0;
1047
+ var _a17;
1048
+ const mediaType = (_a17 = part.mediaType) != null ? _a17 : part.type === "image" ? "image/*" : void 0;
1018
1049
  let data = part.type === "image" ? part.image : part.data;
1019
1050
  if (typeof data === "string") {
1020
1051
  try {
@@ -1047,7 +1078,7 @@ function getOriginalUrl(originalData, convertedData) {
1047
1078
  return typeof originalData === "string" && convertedData instanceof URL && convertedData.toString() !== originalData ? originalData : void 0;
1048
1079
  }
1049
1080
  function convertPartToLanguageModelPart(part, downloadedAssets) {
1050
- var _a16;
1081
+ var _a17;
1051
1082
  if (part.type === "text") {
1052
1083
  return {
1053
1084
  type: "text",
@@ -1082,7 +1113,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1082
1113
  switch (type) {
1083
1114
  case "image": {
1084
1115
  if (data instanceof Uint8Array || typeof data === "string") {
1085
- mediaType = (_a16 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a16 : mediaType;
1116
+ mediaType = (_a17 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a17 : mediaType;
1086
1117
  }
1087
1118
  return {
1088
1119
  type: "file",
@@ -1224,10 +1255,10 @@ function prepareToolsAndToolChoice({
1224
1255
  };
1225
1256
  }
1226
1257
  const filteredTools = activeTools != null ? Object.entries(tools).filter(
1227
- ([name16]) => activeTools.includes(name16)
1258
+ ([name17]) => activeTools.includes(name17)
1228
1259
  ) : Object.entries(tools);
1229
1260
  return {
1230
- tools: filteredTools.map(([name16, tool2]) => {
1261
+ tools: filteredTools.map(([name17, tool2]) => {
1231
1262
  const toolType = tool2.type;
1232
1263
  switch (toolType) {
1233
1264
  case void 0:
@@ -1235,7 +1266,7 @@ function prepareToolsAndToolChoice({
1235
1266
  case "function":
1236
1267
  return {
1237
1268
  type: "function",
1238
- name: name16,
1269
+ name: name17,
1239
1270
  description: tool2.description,
1240
1271
  inputSchema: asSchema(tool2.inputSchema).jsonSchema,
1241
1272
  providerOptions: tool2.providerOptions
@@ -1243,7 +1274,7 @@ function prepareToolsAndToolChoice({
1243
1274
  case "provider-defined":
1244
1275
  return {
1245
1276
  type: "provider-defined",
1246
- name: name16,
1277
+ name: name17,
1247
1278
  id: tool2.id,
1248
1279
  args: tool2.args
1249
1280
  };
@@ -1481,14 +1512,14 @@ async function standardizePrompt({
1481
1512
 
1482
1513
  // src/prompt/wrap-gateway-error.ts
1483
1514
  import { GatewayAuthenticationError } from "@ai-sdk/gateway";
1484
- import { AISDKError as AISDKError19 } from "@ai-sdk/provider";
1515
+ import { AISDKError as AISDKError20 } from "@ai-sdk/provider";
1485
1516
  function wrapGatewayError(error) {
1486
1517
  if (!GatewayAuthenticationError.isInstance(error))
1487
1518
  return error;
1488
1519
  const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
1489
1520
  const moreInfoURL = "https://v5.ai-sdk.dev/unauthenticated-ai-gateway";
1490
1521
  if (isProductionEnv) {
1491
- return new AISDKError19({
1522
+ return new AISDKError20({
1492
1523
  name: "GatewayError",
1493
1524
  message: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`
1494
1525
  });
@@ -1524,8 +1555,8 @@ function assembleOperationName({
1524
1555
 
1525
1556
  // src/telemetry/get-base-telemetry-attributes.ts
1526
1557
  function getTelemetryMetadataAttributes(telemetry) {
1527
- var _a16;
1528
- return Object.entries((_a16 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a16 : {}).reduce(
1558
+ var _a17;
1559
+ return Object.entries((_a17 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a17 : {}).reduce(
1529
1560
  (attributes, [key, value]) => {
1530
1561
  attributes[`ai.telemetry.metadata.${key}`] = value;
1531
1562
  return attributes;
@@ -1567,7 +1598,7 @@ var noopTracer = {
1567
1598
  startSpan() {
1568
1599
  return noopSpan;
1569
1600
  },
1570
- startActiveSpan(name16, arg1, arg2, arg3) {
1601
+ startActiveSpan(name17, arg1, arg2, arg3) {
1571
1602
  if (typeof arg1 === "function") {
1572
1603
  return arg1(noopSpan);
1573
1604
  }
@@ -1639,14 +1670,14 @@ import {
1639
1670
  SpanStatusCode
1640
1671
  } from "@opentelemetry/api";
1641
1672
  function recordSpan({
1642
- name: name16,
1673
+ name: name17,
1643
1674
  tracer,
1644
1675
  attributes,
1645
1676
  fn,
1646
1677
  endWhenDone = true,
1647
1678
  endOnError = endWhenDone
1648
1679
  }) {
1649
- return tracer.startActiveSpan(name16, { attributes }, async (span) => {
1680
+ return tracer.startActiveSpan(name17, { attributes }, async (span) => {
1650
1681
  try {
1651
1682
  const result = await fn(span);
1652
1683
  if (endWhenDone) {
@@ -1908,7 +1939,7 @@ function filterActiveTools({
1908
1939
  }
1909
1940
  return Object.fromEntries(
1910
1941
  Object.entries(tools).filter(
1911
- ([name16]) => activeTools.includes(name16)
1942
+ ([name17]) => activeTools.includes(name17)
1912
1943
  )
1913
1944
  );
1914
1945
  }
@@ -2149,8 +2180,8 @@ function stepCountIs(stepCount) {
2149
2180
  }
2150
2181
  function hasToolCall(toolName) {
2151
2182
  return ({ steps }) => {
2152
- var _a16, _b, _c;
2153
- return (_c = (_b = (_a16 = steps[steps.length - 1]) == null ? void 0 : _a16.toolCalls) == null ? void 0 : _b.some(
2183
+ var _a17, _b, _c;
2184
+ return (_c = (_b = (_a17 = steps[steps.length - 1]) == null ? void 0 : _a17.toolCalls) == null ? void 0 : _b.some(
2154
2185
  (toolCall) => toolCall.toolName === toolName
2155
2186
  )) != null ? _c : false;
2156
2187
  };
@@ -2356,7 +2387,7 @@ async function generateText({
2356
2387
  }),
2357
2388
  tracer,
2358
2389
  fn: async (span) => {
2359
- var _a16, _b, _c, _d, _e, _f, _g;
2390
+ var _a17, _b, _c, _d, _e, _f, _g;
2360
2391
  const callSettings2 = prepareCallSettings(settings);
2361
2392
  let currentModelResponse;
2362
2393
  let clientToolCalls = [];
@@ -2378,7 +2409,7 @@ async function generateText({
2378
2409
  messages: stepInputMessages
2379
2410
  }));
2380
2411
  const stepModel = resolveLanguageModel(
2381
- (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
2412
+ (_a17 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a17 : model
2382
2413
  );
2383
2414
  const promptMessages = await convertToLanguageModelPrompt({
2384
2415
  prompt: {
@@ -2400,7 +2431,7 @@ async function generateText({
2400
2431
  });
2401
2432
  currentModelResponse = await retry(
2402
2433
  () => {
2403
- var _a17;
2434
+ var _a18;
2404
2435
  return recordSpan({
2405
2436
  name: "ai.generateText.doGenerate",
2406
2437
  attributes: selectTelemetryAttributes({
@@ -2432,14 +2463,14 @@ async function generateText({
2432
2463
  "gen_ai.request.max_tokens": settings.maxOutputTokens,
2433
2464
  "gen_ai.request.presence_penalty": settings.presencePenalty,
2434
2465
  "gen_ai.request.stop_sequences": settings.stopSequences,
2435
- "gen_ai.request.temperature": (_a17 = settings.temperature) != null ? _a17 : void 0,
2466
+ "gen_ai.request.temperature": (_a18 = settings.temperature) != null ? _a18 : void 0,
2436
2467
  "gen_ai.request.top_k": settings.topK,
2437
2468
  "gen_ai.request.top_p": settings.topP
2438
2469
  }
2439
2470
  }),
2440
2471
  tracer,
2441
2472
  fn: async (span2) => {
2442
- var _a18, _b2, _c2, _d2, _e2, _f2, _g2, _h;
2473
+ var _a19, _b2, _c2, _d2, _e2, _f2, _g2, _h;
2443
2474
  const result = await stepModel.doGenerate({
2444
2475
  ...callSettings2,
2445
2476
  tools: stepTools,
@@ -2451,7 +2482,7 @@ async function generateText({
2451
2482
  headers: headersWithUserAgent
2452
2483
  });
2453
2484
  const responseData = {
2454
- id: (_b2 = (_a18 = result.response) == null ? void 0 : _a18.id) != null ? _b2 : generateId3(),
2485
+ id: (_b2 = (_a19 = result.response) == null ? void 0 : _a19.id) != null ? _b2 : generateId3(),
2455
2486
  timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
2456
2487
  modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
2457
2488
  headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
@@ -2501,12 +2532,23 @@ async function generateText({
2501
2532
  (toolCall) => parseToolCall({
2502
2533
  toolCall,
2503
2534
  tools: stepToolSet,
2504
- repairToolCall,
2535
+ // tool calls are rejected with tool choice none,
2536
+ // so user callbacks must not process them:
2537
+ repairToolCall: (stepToolChoice == null ? void 0 : stepToolChoice.type) === "none" ? void 0 : repairToolCall,
2505
2538
  system,
2506
2539
  messages: stepInputMessages
2507
2540
  })
2508
2541
  )
2509
2542
  );
2543
+ if ((stepToolChoice == null ? void 0 : stepToolChoice.type) === "none" && stepToolCalls.length > 0) {
2544
+ throw new ToolChoiceViolationError({
2545
+ toolChoice: stepToolChoice,
2546
+ finishReason: currentModelResponse.finishReason,
2547
+ provider: stepModel.provider,
2548
+ modelId: stepModel.modelId,
2549
+ content: currentModelResponse.content
2550
+ });
2551
+ }
2510
2552
  for (const toolCall of stepToolCalls) {
2511
2553
  if (toolCall.invalid) {
2512
2554
  continue;
@@ -3704,7 +3746,7 @@ function createStreamingUIMessageState({
3704
3746
  lastMessage,
3705
3747
  messageId
3706
3748
  }) {
3707
- var _a16;
3749
+ var _a17;
3708
3750
  const message = (lastMessage == null ? void 0 : lastMessage.role) === "assistant" ? lastMessage : {
3709
3751
  id: messageId,
3710
3752
  metadata: void 0,
@@ -3728,7 +3770,7 @@ function createStreamingUIMessageState({
3728
3770
  continue;
3729
3771
  }
3730
3772
  partialToolCalls[part.toolCallId] = {
3731
- text: (_a16 = part.rawInput) != null ? _a16 : "",
3773
+ text: (_a17 = part.rawInput) != null ? _a17 : "",
3732
3774
  index,
3733
3775
  toolName: isDynamicToolUIPart(part) ? part.toolName : getToolName(part),
3734
3776
  dynamic: isDynamicToolUIPart(part)
@@ -3755,7 +3797,7 @@ function processUIMessageStream({
3755
3797
  new TransformStream({
3756
3798
  async transform(chunk, controller) {
3757
3799
  await runUpdateMessageJob(async ({ state, write }) => {
3758
- var _a16, _b, _c, _d;
3800
+ var _a17, _b, _c, _d;
3759
3801
  function getCurrentStepParts() {
3760
3802
  const parts = state.message.parts;
3761
3803
  let currentStepStartIndex = parts.length - 1;
@@ -3814,7 +3856,7 @@ function processUIMessageStream({
3814
3856
  return toolInvocation;
3815
3857
  }
3816
3858
  function updateToolPart(options, existingPart) {
3817
- var _a17;
3859
+ var _a18;
3818
3860
  const part = existingPart != null ? existingPart : getCurrentStepParts().find(
3819
3861
  (part2) => isToolUIPart(part2) && part2.toolCallId === options.toolCallId
3820
3862
  );
@@ -3827,7 +3869,7 @@ function processUIMessageStream({
3827
3869
  anyPart.errorText = anyOptions.errorText;
3828
3870
  anyPart.rawInput = anyOptions.rawInput;
3829
3871
  anyPart.preliminary = anyOptions.preliminary;
3830
- anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;
3872
+ anyPart.providerExecuted = (_a18 = anyOptions.providerExecuted) != null ? _a18 : part.providerExecuted;
3831
3873
  if (anyOptions.providerMetadata != null && part.state === "input-available") {
3832
3874
  part.callProviderMetadata = anyOptions.providerMetadata;
3833
3875
  }
@@ -3847,7 +3889,7 @@ function processUIMessageStream({
3847
3889
  }
3848
3890
  }
3849
3891
  function updateDynamicToolPart(options, existingPart) {
3850
- var _a17;
3892
+ var _a18;
3851
3893
  const part = existingPart != null ? existingPart : getCurrentStepParts().find(
3852
3894
  (part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
3853
3895
  );
@@ -3861,7 +3903,7 @@ function processUIMessageStream({
3861
3903
  anyPart.errorText = anyOptions.errorText;
3862
3904
  anyPart.rawInput = anyOptions.rawInput;
3863
3905
  anyPart.preliminary = anyOptions.preliminary;
3864
- anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;
3906
+ anyPart.providerExecuted = (_a18 = anyOptions.providerExecuted) != null ? _a18 : part.providerExecuted;
3865
3907
  if (anyOptions.providerMetadata != null && part.state === "input-available") {
3866
3908
  part.callProviderMetadata = anyOptions.providerMetadata;
3867
3909
  }
@@ -3908,7 +3950,7 @@ function processUIMessageStream({
3908
3950
  case "text-delta": {
3909
3951
  const textPart = state.activeTextParts[chunk.id];
3910
3952
  textPart.text += chunk.delta;
3911
- textPart.providerMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textPart.providerMetadata;
3953
+ textPart.providerMetadata = (_a17 = chunk.providerMetadata) != null ? _a17 : textPart.providerMetadata;
3912
3954
  write();
3913
3955
  break;
3914
3956
  }
@@ -4305,13 +4347,13 @@ function handleUIMessageStreamFinish({
4305
4347
  };
4306
4348
  let finishCalled = false;
4307
4349
  const callOnFinish = async () => {
4308
- var _a16;
4350
+ var _a17;
4309
4351
  if (finishCalled || !onFinish) {
4310
4352
  return;
4311
4353
  }
4312
4354
  finishCalled = true;
4313
4355
  const isContinuation = state.message.id === (lastMessage == null ? void 0 : lastMessage.id);
4314
- const declaredOutcome = (_a16 = getOutcome == null ? void 0 : getOutcome()) != null ? _a16 : { status: "unknown" };
4356
+ const declaredOutcome = (_a17 = getOutcome == null ? void 0 : getOutcome()) != null ? _a17 : { status: "unknown" };
4315
4357
  const outcome = hasProcessingFailure ? { status: "failed", error: processingError } : declaredOutcome.status === "unknown" && isAborted ? { status: "aborted" } : declaredOutcome;
4316
4358
  await onFinish({
4317
4359
  isAborted: isAborted || outcome.status === "aborted",
@@ -4382,11 +4424,11 @@ function createAsyncIterableStream(source) {
4382
4424
  const reader = this.getReader();
4383
4425
  let finished = false;
4384
4426
  async function cleanup(cancelStream) {
4385
- var _a16;
4427
+ var _a17;
4386
4428
  finished = true;
4387
4429
  try {
4388
4430
  if (cancelStream) {
4389
- await ((_a16 = reader.cancel) == null ? void 0 : _a16.call(reader));
4431
+ await ((_a17 = reader.cancel) == null ? void 0 : _a17.call(reader));
4390
4432
  }
4391
4433
  } finally {
4392
4434
  try {
@@ -4496,7 +4538,7 @@ function createStitchableStream() {
4496
4538
  controller == null ? void 0 : controller.close();
4497
4539
  };
4498
4540
  const processPull = async () => {
4499
- var _a16, _b;
4541
+ var _a17, _b;
4500
4542
  if (isClosed && innerStreams.length === 0) {
4501
4543
  controller == null ? void 0 : controller.close();
4502
4544
  return;
@@ -4519,7 +4561,7 @@ function createStitchableStream() {
4519
4561
  controller == null ? void 0 : controller.enqueue(value);
4520
4562
  }
4521
4563
  } catch (error) {
4522
- (_b = (_a16 = innerStreams[0]).onError) == null ? void 0 : _b.call(_a16, error);
4564
+ (_b = (_a17 = innerStreams[0]).onError) == null ? void 0 : _b.call(_a17, error);
4523
4565
  controller == null ? void 0 : controller.error(error);
4524
4566
  innerStreams.shift();
4525
4567
  terminate();
@@ -4580,8 +4622,8 @@ async function notify(options) {
4580
4622
 
4581
4623
  // src/util/now.ts
4582
4624
  function now() {
4583
- var _a16, _b;
4584
- return (_b = (_a16 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a16.now()) != null ? _b : Date.now();
4625
+ var _a17, _b;
4626
+ return (_b = (_a17 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a17.now()) != null ? _b : Date.now();
4585
4627
  }
4586
4628
 
4587
4629
  // src/generate-text/run-tools-transformation.ts
@@ -4592,6 +4634,8 @@ import {
4592
4634
  } from "@ai-sdk/provider-utils";
4593
4635
  function runToolsTransformation({
4594
4636
  tools,
4637
+ toolChoice,
4638
+ model,
4595
4639
  generatorStream,
4596
4640
  tracer,
4597
4641
  telemetry,
@@ -4722,10 +4766,19 @@ function runToolsTransformation({
4722
4766
  });
4723
4767
  }
4724
4768
  const activeToolCallToolNames = /* @__PURE__ */ new Map();
4769
+ const withholdToolParts = (toolChoice == null ? void 0 : toolChoice.type) === "none";
4770
+ const withheldToolContent = [];
4725
4771
  const forwardStream = new TransformStream({
4726
4772
  async transform(chunk, controller) {
4727
- var _a16, _b, _c, _d;
4773
+ var _a17, _b, _c, _d, _e, _f;
4728
4774
  const chunkType = chunk.type;
4775
+ if (withholdToolParts && (chunkType === "tool-input-start" || chunkType === "tool-input-delta" || chunkType === "tool-input-end")) {
4776
+ return;
4777
+ }
4778
+ if (withholdToolParts && (chunkType === "tool-call" || chunkType === "tool-result")) {
4779
+ withheldToolContent.push(chunk);
4780
+ return;
4781
+ }
4729
4782
  switch (chunkType) {
4730
4783
  case "stream-start":
4731
4784
  case "text-start":
@@ -4743,7 +4796,7 @@ function runToolsTransformation({
4743
4796
  }
4744
4797
  case "tool-input-start": {
4745
4798
  activeToolCallToolNames.set(chunk.id, chunk.toolName);
4746
- await ((_b = (_a16 = tools == null ? void 0 : tools[chunk.toolName]) == null ? void 0 : _a16.onInputStart) == null ? void 0 : _b.call(_a16, {
4799
+ await ((_b = (_a17 = tools == null ? void 0 : tools[chunk.toolName]) == null ? void 0 : _a17.onInputStart) == null ? void 0 : _b.call(_a17, {
4747
4800
  toolCallId: chunk.id,
4748
4801
  messages,
4749
4802
  abortSignal,
@@ -4782,12 +4835,25 @@ function runToolsTransformation({
4782
4835
  break;
4783
4836
  }
4784
4837
  case "finish": {
4838
+ const toolChoiceViolationError = withholdToolParts && withheldToolContent.some((part) => part.type === "tool-call") ? new ToolChoiceViolationError({
4839
+ toolChoice: { type: "none" },
4840
+ finishReason: chunk.finishReason,
4841
+ provider: (_e = model == null ? void 0 : model.provider) != null ? _e : "unknown",
4842
+ modelId: (_f = model == null ? void 0 : model.modelId) != null ? _f : "unknown",
4843
+ content: withheldToolContent
4844
+ }) : void 0;
4785
4845
  finishChunk = {
4786
4846
  type: "finish",
4787
- finishReason: chunk.finishReason,
4847
+ finishReason: toolChoiceViolationError == null ? chunk.finishReason : "error",
4788
4848
  usage: chunk.usage,
4789
4849
  providerMetadata: chunk.providerMetadata
4790
4850
  };
4851
+ if (toolChoiceViolationError != null) {
4852
+ controller.enqueue({
4853
+ type: "error",
4854
+ error: toolChoiceViolationError
4855
+ });
4856
+ }
4791
4857
  if (isToolExecutionAllowedFinishReason(chunk.finishReason)) {
4792
4858
  for (const toolCall of pendingToolCalls.splice(0)) {
4793
4859
  executePendingToolCall(toolCall);
@@ -5095,7 +5161,7 @@ var DefaultStreamTextResult = class {
5095
5161
  let activeReasoningContent = createIdMap();
5096
5162
  const eventProcessor = new TransformStream({
5097
5163
  async transform(chunk, controller) {
5098
- var _a16, _b, _c, _d;
5164
+ var _a17, _b, _c, _d;
5099
5165
  controller.enqueue(chunk);
5100
5166
  const { part } = chunk;
5101
5167
  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") {
@@ -5131,7 +5197,7 @@ var DefaultStreamTextResult = class {
5131
5197
  return;
5132
5198
  }
5133
5199
  activeText.text += part.text;
5134
- activeText.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeText.providerMetadata;
5200
+ activeText.providerMetadata = (_a17 = part.providerMetadata) != null ? _a17 : activeText.providerMetadata;
5135
5201
  }
5136
5202
  if (part.type === "text-end") {
5137
5203
  const activeText = activeTextContent[part.id];
@@ -5290,8 +5356,8 @@ var DefaultStreamTextResult = class {
5290
5356
  "ai.response.text": { output: () => finalStep.text },
5291
5357
  "ai.response.toolCalls": {
5292
5358
  output: () => {
5293
- var _a16;
5294
- return ((_a16 = finalStep.toolCalls) == null ? void 0 : _a16.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
5359
+ var _a17;
5360
+ return ((_a17 = finalStep.toolCalls) == null ? void 0 : _a17.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
5295
5361
  }
5296
5362
  },
5297
5363
  "ai.response.providerMetadata": JSON.stringify(
@@ -5406,7 +5472,7 @@ var DefaultStreamTextResult = class {
5406
5472
  responseMessages,
5407
5473
  usage
5408
5474
  }) {
5409
- var _a16, _b, _c, _d, _e;
5475
+ var _a17, _b, _c, _d, _e;
5410
5476
  const includeRawChunks2 = self.includeRawChunks;
5411
5477
  stepFinish = new DelayedPromise();
5412
5478
  const initialPrompt = await standardizePrompt({
@@ -5426,7 +5492,7 @@ var DefaultStreamTextResult = class {
5426
5492
  messages: stepInputMessages
5427
5493
  }));
5428
5494
  const stepModel = resolveLanguageModel(
5429
- (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
5495
+ (_a17 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a17 : model
5430
5496
  );
5431
5497
  const promptMessages = await convertToLanguageModelPrompt({
5432
5498
  prompt: {
@@ -5513,6 +5579,8 @@ var DefaultStreamTextResult = class {
5513
5579
  );
5514
5580
  const streamWithToolResults = runToolsTransformation({
5515
5581
  tools: stepToolSet,
5582
+ toolChoice: stepToolChoice,
5583
+ model: { provider: stepModel.provider, modelId: stepModel.modelId },
5516
5584
  generatorStream: stream2,
5517
5585
  tracer,
5518
5586
  telemetry,
@@ -5544,7 +5612,7 @@ var DefaultStreamTextResult = class {
5544
5612
  streamWithToolResults.pipeThrough(
5545
5613
  new TransformStream({
5546
5614
  async transform(chunk, controller) {
5547
- var _a17, _b2, _c2, _d2;
5615
+ var _a18, _b2, _c2, _d2;
5548
5616
  if (chunk.type === "stream-start") {
5549
5617
  warnings = chunk.warnings;
5550
5618
  return;
@@ -5616,7 +5684,7 @@ var DefaultStreamTextResult = class {
5616
5684
  }
5617
5685
  case "response-metadata": {
5618
5686
  stepResponse = {
5619
- id: (_a17 = chunk.id) != null ? _a17 : stepResponse.id,
5687
+ id: (_a18 = chunk.id) != null ? _a18 : stepResponse.id,
5620
5688
  timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
5621
5689
  modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
5622
5690
  };
@@ -5897,14 +5965,14 @@ var DefaultStreamTextResult = class {
5897
5965
  );
5898
5966
  }
5899
5967
  async consumeStream(options) {
5900
- var _a16;
5968
+ var _a17;
5901
5969
  try {
5902
5970
  await consumeStream({
5903
5971
  stream: this.fullStream,
5904
5972
  onError: options == null ? void 0 : options.onError
5905
5973
  });
5906
5974
  } catch (error) {
5907
- (_a16 = options == null ? void 0 : options.onError) == null ? void 0 : _a16.call(options, error);
5975
+ (_a17 = options == null ? void 0 : options.onError) == null ? void 0 : _a17.call(options, error);
5908
5976
  }
5909
5977
  }
5910
5978
  get experimental_partialOutputStream() {
@@ -5952,9 +6020,9 @@ var DefaultStreamTextResult = class {
5952
6020
  }) : void 0;
5953
6021
  const toolNamesByCallId = {};
5954
6022
  const isDynamic = (toolCallId) => {
5955
- var _a16, _b;
6023
+ var _a17, _b;
5956
6024
  const toolName = toolNamesByCallId[toolCallId];
5957
- const dynamic = ((_b = (_a16 = this.tools) == null ? void 0 : _a16[toolName]) == null ? void 0 : _b.type) === "dynamic";
6025
+ const dynamic = ((_b = (_a17 = this.tools) == null ? void 0 : _a17[toolName]) == null ? void 0 : _b.type) === "dynamic";
5958
6026
  return dynamic ? true : void 0;
5959
6027
  };
5960
6028
  const sourceReader = this.fullStream.getReader();
@@ -6411,7 +6479,7 @@ function convertToModelMessages(messages, options) {
6411
6479
  modelMessages.push({
6412
6480
  role: "user",
6413
6481
  content: message.parts.map((part) => {
6414
- var _a16;
6482
+ var _a17;
6415
6483
  if (isTextUIPart(part)) {
6416
6484
  return {
6417
6485
  type: "text",
@@ -6429,7 +6497,7 @@ function convertToModelMessages(messages, options) {
6429
6497
  };
6430
6498
  }
6431
6499
  if (isDataUIPart(part)) {
6432
- return (_a16 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a16.call(
6500
+ return (_a17 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a17.call(
6433
6501
  options,
6434
6502
  part
6435
6503
  );
@@ -6441,7 +6509,7 @@ function convertToModelMessages(messages, options) {
6441
6509
  case "assistant": {
6442
6510
  if (message.parts != null) {
6443
6511
  let processBlock2 = function() {
6444
- var _a16, _b;
6512
+ var _a17, _b;
6445
6513
  if (block.length === 0) {
6446
6514
  return;
6447
6515
  }
@@ -6484,7 +6552,7 @@ function convertToModelMessages(messages, options) {
6484
6552
  type: "tool-call",
6485
6553
  toolCallId: part.toolCallId,
6486
6554
  toolName,
6487
- input: part.state === "output-error" ? (_a16 = part.input) != null ? _a16 : part.rawInput : part.input,
6555
+ input: part.state === "output-error" ? (_a17 = part.input) != null ? _a17 : part.rawInput : part.input,
6488
6556
  providerExecuted: part.providerExecuted,
6489
6557
  ...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
6490
6558
  });
@@ -6666,7 +6734,7 @@ async function embed({
6666
6734
  }),
6667
6735
  tracer,
6668
6736
  fn: async (doEmbedSpan) => {
6669
- var _a16;
6737
+ var _a17;
6670
6738
  const modelResponse = await model.doEmbed({
6671
6739
  values: [value],
6672
6740
  abortSignal,
@@ -6674,7 +6742,7 @@ async function embed({
6674
6742
  providerOptions
6675
6743
  });
6676
6744
  const embedding2 = modelResponse.embeddings[0];
6677
- const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
6745
+ const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
6678
6746
  doEmbedSpan.setAttributes(
6679
6747
  selectTelemetryAttributes({
6680
6748
  telemetry,
@@ -6840,7 +6908,7 @@ async function embedMany({
6840
6908
  }),
6841
6909
  tracer,
6842
6910
  fn: async (doEmbedSpan) => {
6843
- var _a16;
6911
+ var _a17;
6844
6912
  const modelResponse = await model.doEmbed({
6845
6913
  values,
6846
6914
  abortSignal,
@@ -6848,7 +6916,7 @@ async function embedMany({
6848
6916
  providerOptions
6849
6917
  });
6850
6918
  const embeddings3 = modelResponse.embeddings;
6851
- const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
6919
+ const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
6852
6920
  doEmbedSpan.setAttributes(
6853
6921
  selectTelemetryAttributes({
6854
6922
  telemetry,
@@ -6926,7 +6994,7 @@ async function embedMany({
6926
6994
  }),
6927
6995
  tracer,
6928
6996
  fn: async (doEmbedSpan) => {
6929
- var _a16;
6997
+ var _a17;
6930
6998
  const modelResponse = await model.doEmbed({
6931
6999
  values: chunk,
6932
7000
  abortSignal,
@@ -6934,7 +7002,7 @@ async function embedMany({
6934
7002
  providerOptions
6935
7003
  });
6936
7004
  const embeddings2 = modelResponse.embeddings;
6937
- const usage = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
7005
+ const usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
6938
7006
  doEmbedSpan.setAttributes(
6939
7007
  selectTelemetryAttributes({
6940
7008
  telemetry,
@@ -7064,7 +7132,7 @@ async function generateImage({
7064
7132
  abortSignal,
7065
7133
  headers
7066
7134
  }) {
7067
- var _a16, _b;
7135
+ var _a17, _b;
7068
7136
  const model = resolveImageModel(modelArg);
7069
7137
  const headersWithUserAgent = withUserAgentSuffix5(
7070
7138
  headers != null ? headers : {},
@@ -7075,7 +7143,7 @@ async function generateImage({
7075
7143
  abortSignal,
7076
7144
  additionalRetryableError: (error) => error instanceof RetryableNoImageResultError
7077
7145
  });
7078
- const maxImagesPerCallWithDefault = (_a16 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a16 : 1;
7146
+ const maxImagesPerCallWithDefault = (_a17 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a17 : 1;
7079
7147
  const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
7080
7148
  const callImageCounts = Array.from({ length: callCount }, (_, i) => {
7081
7149
  if (i < callCount - 1) {
@@ -7124,13 +7192,13 @@ async function generateImage({
7124
7192
  images.push(
7125
7193
  ...result.images.map(
7126
7194
  (image) => {
7127
- var _a17;
7195
+ var _a18;
7128
7196
  return new DefaultGeneratedFile({
7129
7197
  data: image,
7130
- mediaType: (_a17 = detectMediaType({
7198
+ mediaType: (_a18 = detectMediaType({
7131
7199
  data: image,
7132
7200
  signatures: imageMediaTypeSignatures
7133
- })) != null ? _a17 : "image/png"
7201
+ })) != null ? _a18 : "image/png"
7134
7202
  });
7135
7203
  }
7136
7204
  )
@@ -7290,7 +7358,7 @@ var arrayOutputStrategy = (schema) => {
7290
7358
  isFirstDelta,
7291
7359
  isFinalDelta
7292
7360
  }) {
7293
- var _a16;
7361
+ var _a17;
7294
7362
  if (!isJSONObject(value) || !isJSONArray(value.elements)) {
7295
7363
  return {
7296
7364
  success: false,
@@ -7313,7 +7381,7 @@ var arrayOutputStrategy = (schema) => {
7313
7381
  }
7314
7382
  resultArray.push(result.value);
7315
7383
  }
7316
- const publishedElementCount = (_a16 = latestObject == null ? void 0 : latestObject.length) != null ? _a16 : 0;
7384
+ const publishedElementCount = (_a17 = latestObject == null ? void 0 : latestObject.length) != null ? _a17 : 0;
7317
7385
  let textDelta = "";
7318
7386
  if (isFirstDelta) {
7319
7387
  textDelta += "[";
@@ -7735,7 +7803,7 @@ async function generateObject(options) {
7735
7803
  }),
7736
7804
  tracer,
7737
7805
  fn: async (span) => {
7738
- var _a16;
7806
+ var _a17;
7739
7807
  let result;
7740
7808
  let finishReason;
7741
7809
  let usage;
@@ -7782,7 +7850,7 @@ async function generateObject(options) {
7782
7850
  }),
7783
7851
  tracer,
7784
7852
  fn: async (span2) => {
7785
- var _a17, _b, _c, _d, _e, _f, _g, _h;
7853
+ var _a18, _b, _c, _d, _e, _f, _g, _h;
7786
7854
  const result2 = await model.doGenerate({
7787
7855
  responseFormat: {
7788
7856
  type: "json",
@@ -7797,7 +7865,7 @@ async function generateObject(options) {
7797
7865
  headers: headersWithUserAgent
7798
7866
  });
7799
7867
  const responseData = {
7800
- id: (_b = (_a17 = result2.response) == null ? void 0 : _a17.id) != null ? _b : generateId3(),
7868
+ id: (_b = (_a18 = result2.response) == null ? void 0 : _a18.id) != null ? _b : generateId3(),
7801
7869
  timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
7802
7870
  modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
7803
7871
  headers: (_g = result2.response) == null ? void 0 : _g.headers,
@@ -7851,7 +7919,7 @@ async function generateObject(options) {
7851
7919
  usage = generateResult.usage;
7852
7920
  warnings = generateResult.warnings;
7853
7921
  resultProviderMetadata = generateResult.providerMetadata;
7854
- request = (_a16 = generateResult.request) != null ? _a16 : {};
7922
+ request = (_a17 = generateResult.request) != null ? _a17 : {};
7855
7923
  response = generateResult.responseData;
7856
7924
  reasoning = generateResult.reasoning;
7857
7925
  logWarnings(warnings);
@@ -7910,9 +7978,9 @@ var DefaultGenerateObjectResult = class {
7910
7978
  this.reasoning = options.reasoning;
7911
7979
  }
7912
7980
  toJsonResponse(init) {
7913
- var _a16;
7981
+ var _a17;
7914
7982
  return new Response(JSON.stringify(this.object), {
7915
- status: (_a16 = init == null ? void 0 : init.status) != null ? _a16 : 200,
7983
+ status: (_a17 = init == null ? void 0 : init.status) != null ? _a17 : 200,
7916
7984
  headers: prepareHeaders(init == null ? void 0 : init.headers, {
7917
7985
  "content-type": "application/json; charset=utf-8"
7918
7986
  })
@@ -8062,8 +8130,8 @@ function simulateReadableStream({
8062
8130
  chunkDelayInMs = 0,
8063
8131
  _internal
8064
8132
  }) {
8065
- var _a16;
8066
- const delay2 = (_a16 = _internal == null ? void 0 : _internal.delay) != null ? _a16 : delayFunction;
8133
+ var _a17;
8134
+ const delay2 = (_a17 = _internal == null ? void 0 : _internal.delay) != null ? _a17 : delayFunction;
8067
8135
  let index = 0;
8068
8136
  return new ReadableStream({
8069
8137
  async pull(controller) {
@@ -8339,7 +8407,7 @@ var DefaultStreamObjectResult = class {
8339
8407
  const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
8340
8408
  new TransformStream({
8341
8409
  async transform(chunk, controller) {
8342
- var _a16, _b, _c;
8410
+ var _a17, _b, _c;
8343
8411
  if (typeof chunk === "object" && chunk.type === "stream-start") {
8344
8412
  warnings = chunk.warnings;
8345
8413
  return;
@@ -8389,7 +8457,7 @@ var DefaultStreamObjectResult = class {
8389
8457
  switch (chunk.type) {
8390
8458
  case "response-metadata": {
8391
8459
  fullResponse = {
8392
- id: (_a16 = chunk.id) != null ? _a16 : fullResponse.id,
8460
+ id: (_a17 = chunk.id) != null ? _a17 : fullResponse.id,
8393
8461
  timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
8394
8462
  modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
8395
8463
  };
@@ -8700,7 +8768,7 @@ async function generateSpeech({
8700
8768
  abortSignal,
8701
8769
  headers
8702
8770
  }) {
8703
- var _a16;
8771
+ var _a17;
8704
8772
  if (model.specificationVersion !== "v2") {
8705
8773
  throw new UnsupportedModelVersionError({
8706
8774
  version: model.specificationVersion,
@@ -8736,10 +8804,10 @@ async function generateSpeech({
8736
8804
  return new DefaultSpeechResult({
8737
8805
  audio: new DefaultGeneratedAudioFile({
8738
8806
  data: result.audio,
8739
- mediaType: (_a16 = detectMediaType({
8807
+ mediaType: (_a17 = detectMediaType({
8740
8808
  data: result.audio,
8741
8809
  signatures: audioMediaTypeSignatures
8742
- })) != null ? _a16 : "audio/mp3"
8810
+ })) != null ? _a17 : "audio/mp3"
8743
8811
  }),
8744
8812
  warnings: result.warnings,
8745
8813
  responses: [result.response],
@@ -8748,11 +8816,11 @@ async function generateSpeech({
8748
8816
  }
8749
8817
  var DefaultSpeechResult = class {
8750
8818
  constructor(options) {
8751
- var _a16;
8819
+ var _a17;
8752
8820
  this.audio = options.audio;
8753
8821
  this.warnings = options.warnings;
8754
8822
  this.responses = options.responses;
8755
- this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
8823
+ this.providerMetadata = (_a17 = options.providerMetadata) != null ? _a17 : {};
8756
8824
  }
8757
8825
  };
8758
8826
 
@@ -8884,21 +8952,52 @@ function pruneMessages({
8884
8952
  if (message.role !== "assistant" && message.role !== "tool" || typeof message.content === "string" || keepLastMessagesCount && messageIndex >= messages.length - keepLastMessagesCount) {
8885
8953
  return message;
8886
8954
  }
8887
- const toolCallIdToToolName = {};
8888
- return {
8889
- ...message,
8890
- content: message.content.filter((part) => {
8891
- if (part.type !== "tool-call" && part.type !== "tool-result") {
8892
- return true;
8955
+ const keepParts = message.content.map((part) => {
8956
+ if (part.type !== "tool-call" && part.type !== "tool-result") {
8957
+ return true;
8958
+ }
8959
+ if ((part.type === "tool-call" || part.type === "tool-result") && keptToolCallIds.has(part.toolCallId)) {
8960
+ return true;
8961
+ }
8962
+ return toolCall.tools != null && !toolCall.tools.includes(part.toolName);
8963
+ });
8964
+ if (message.role === "assistant") {
8965
+ for (let reasoningIndex = 0; reasoningIndex < message.content.length; reasoningIndex++) {
8966
+ const part = message.content[reasoningIndex];
8967
+ if (part.type !== "reasoning") {
8968
+ continue;
8969
+ }
8970
+ let reasoningEndIndex = reasoningIndex + 1;
8971
+ while (reasoningEndIndex < message.content.length) {
8972
+ const nextPart = message.content[reasoningEndIndex];
8973
+ if (nextPart.type !== "reasoning") {
8974
+ break;
8975
+ }
8976
+ reasoningEndIndex++;
8893
8977
  }
8894
- if (part.type === "tool-call") {
8895
- toolCallIdToToolName[part.toolCallId] = part.toolName;
8978
+ let followingPartIndex = reasoningEndIndex;
8979
+ let hasFollowingPart = false;
8980
+ let hasKeptFollowingPart = false;
8981
+ while (followingPartIndex < message.content.length) {
8982
+ const followingPart = message.content[followingPartIndex];
8983
+ if (followingPart.type === "reasoning") {
8984
+ break;
8985
+ }
8986
+ hasFollowingPart = true;
8987
+ hasKeptFollowingPart || (hasKeptFollowingPart = keepParts[followingPartIndex]);
8988
+ followingPartIndex++;
8896
8989
  }
8897
- if ((part.type === "tool-call" || part.type === "tool-result") && keptToolCallIds.has(part.toolCallId)) {
8898
- return true;
8990
+ if (hasFollowingPart && !hasKeptFollowingPart) {
8991
+ for (let index = reasoningIndex; index < reasoningEndIndex; index++) {
8992
+ keepParts[index] = false;
8993
+ }
8899
8994
  }
8900
- return toolCall.tools != null && !toolCall.tools.includes(part.toolName);
8901
- })
8995
+ reasoningIndex = followingPartIndex - 1;
8996
+ }
8997
+ }
8998
+ return {
8999
+ ...message,
9000
+ content: message.content.filter((_, index) => keepParts[index])
8902
9001
  };
8903
9002
  });
8904
9003
  }
@@ -9287,7 +9386,7 @@ var doWrap = ({
9287
9386
  modelId,
9288
9387
  providerId
9289
9388
  }) => {
9290
- var _a16, _b, _c;
9389
+ var _a17, _b, _c;
9291
9390
  async function doTransform({
9292
9391
  params,
9293
9392
  type
@@ -9296,7 +9395,7 @@ var doWrap = ({
9296
9395
  }
9297
9396
  return {
9298
9397
  specificationVersion: "v2",
9299
- provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,
9398
+ provider: (_a17 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a17 : model.provider,
9300
9399
  modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
9301
9400
  supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
9302
9401
  async doGenerate(params) {
@@ -9404,11 +9503,11 @@ function customProvider({
9404
9503
  var experimental_customProvider = customProvider;
9405
9504
 
9406
9505
  // src/registry/no-such-provider-error.ts
9407
- import { AISDKError as AISDKError20, NoSuchModelError as NoSuchModelError3 } from "@ai-sdk/provider";
9408
- var name15 = "AI_NoSuchProviderError";
9409
- var marker15 = `vercel.ai.error.${name15}`;
9410
- var symbol15 = Symbol.for(marker15);
9411
- var _a15;
9506
+ import { AISDKError as AISDKError21, NoSuchModelError as NoSuchModelError3 } from "@ai-sdk/provider";
9507
+ var name16 = "AI_NoSuchProviderError";
9508
+ var marker16 = `vercel.ai.error.${name16}`;
9509
+ var symbol16 = Symbol.for(marker16);
9510
+ var _a16;
9412
9511
  var NoSuchProviderError = class extends NoSuchModelError3 {
9413
9512
  constructor({
9414
9513
  modelId,
@@ -9417,16 +9516,16 @@ var NoSuchProviderError = class extends NoSuchModelError3 {
9417
9516
  availableProviders,
9418
9517
  message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
9419
9518
  }) {
9420
- super({ errorName: name15, modelId, modelType, message });
9421
- this[_a15] = true;
9519
+ super({ errorName: name16, modelId, modelType, message });
9520
+ this[_a16] = true;
9422
9521
  this.providerId = providerId;
9423
9522
  this.availableProviders = availableProviders;
9424
9523
  }
9425
9524
  static isInstance(error) {
9426
- return AISDKError20.hasMarker(error, marker15);
9525
+ return AISDKError21.hasMarker(error, marker16);
9427
9526
  }
9428
9527
  };
9429
- _a15 = symbol15;
9528
+ _a16 = symbol16;
9430
9529
 
9431
9530
  // src/registry/provider-registry.ts
9432
9531
  import {
@@ -9485,10 +9584,10 @@ var DefaultProviderRegistry = class {
9485
9584
  return [id.slice(0, index), id.slice(index + this.separator.length)];
9486
9585
  }
9487
9586
  languageModel(id) {
9488
- var _a16, _b;
9587
+ var _a17, _b;
9489
9588
  const [providerId, modelId] = this.splitId(id, "languageModel");
9490
- let model = (_b = (_a16 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
9491
- _a16,
9589
+ let model = (_b = (_a17 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
9590
+ _a17,
9492
9591
  modelId
9493
9592
  );
9494
9593
  if (model == null) {
@@ -9503,10 +9602,10 @@ var DefaultProviderRegistry = class {
9503
9602
  return model;
9504
9603
  }
9505
9604
  textEmbeddingModel(id) {
9506
- var _a16;
9605
+ var _a17;
9507
9606
  const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
9508
9607
  const provider = this.getProvider(providerId, "textEmbeddingModel");
9509
- const model = (_a16 = provider.textEmbeddingModel) == null ? void 0 : _a16.call(provider, modelId);
9608
+ const model = (_a17 = provider.textEmbeddingModel) == null ? void 0 : _a17.call(provider, modelId);
9510
9609
  if (model == null) {
9511
9610
  throw new NoSuchModelError4({
9512
9611
  modelId: id,
@@ -9516,20 +9615,20 @@ var DefaultProviderRegistry = class {
9516
9615
  return model;
9517
9616
  }
9518
9617
  imageModel(id) {
9519
- var _a16;
9618
+ var _a17;
9520
9619
  const [providerId, modelId] = this.splitId(id, "imageModel");
9521
9620
  const provider = this.getProvider(providerId, "imageModel");
9522
- const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
9621
+ const model = (_a17 = provider.imageModel) == null ? void 0 : _a17.call(provider, modelId);
9523
9622
  if (model == null) {
9524
9623
  throw new NoSuchModelError4({ modelId: id, modelType: "imageModel" });
9525
9624
  }
9526
9625
  return model;
9527
9626
  }
9528
9627
  transcriptionModel(id) {
9529
- var _a16;
9628
+ var _a17;
9530
9629
  const [providerId, modelId] = this.splitId(id, "transcriptionModel");
9531
9630
  const provider = this.getProvider(providerId, "transcriptionModel");
9532
- const model = (_a16 = provider.transcriptionModel) == null ? void 0 : _a16.call(provider, modelId);
9631
+ const model = (_a17 = provider.transcriptionModel) == null ? void 0 : _a17.call(provider, modelId);
9533
9632
  if (model == null) {
9534
9633
  throw new NoSuchModelError4({
9535
9634
  modelId: id,
@@ -9539,10 +9638,10 @@ var DefaultProviderRegistry = class {
9539
9638
  return model;
9540
9639
  }
9541
9640
  speechModel(id) {
9542
- var _a16;
9641
+ var _a17;
9543
9642
  const [providerId, modelId] = this.splitId(id, "speechModel");
9544
9643
  const provider = this.getProvider(providerId, "speechModel");
9545
- const model = (_a16 = provider.speechModel) == null ? void 0 : _a16.call(provider, modelId);
9644
+ const model = (_a17 = provider.speechModel) == null ? void 0 : _a17.call(provider, modelId);
9546
9645
  if (model == null) {
9547
9646
  throw new NoSuchModelError4({ modelId: id, modelType: "speechModel" });
9548
9647
  }
@@ -9556,8 +9655,8 @@ import {
9556
9655
  } from "@ai-sdk/provider-utils";
9557
9656
 
9558
9657
  // src/error/no-transcript-generated-error.ts
9559
- import { AISDKError as AISDKError21 } from "@ai-sdk/provider";
9560
- var NoTranscriptGeneratedError = class extends AISDKError21 {
9658
+ import { AISDKError as AISDKError22 } from "@ai-sdk/provider";
9659
+ var NoTranscriptGeneratedError = class extends AISDKError22 {
9561
9660
  constructor(options) {
9562
9661
  super({
9563
9662
  name: "AI_NoTranscriptGeneratedError",
@@ -9596,16 +9695,16 @@ async function transcribe({
9596
9695
  const audioData = audio instanceof URL ? (await downloadFn({ url: audio, abortSignal })).data : convertDataContentToUint8Array(audio);
9597
9696
  const result = await retry(
9598
9697
  () => {
9599
- var _a16;
9698
+ var _a17;
9600
9699
  return model.doGenerate({
9601
9700
  audio: audioData,
9602
9701
  abortSignal,
9603
9702
  headers: headersWithUserAgent,
9604
9703
  providerOptions,
9605
- mediaType: (_a16 = detectMediaType({
9704
+ mediaType: (_a17 = detectMediaType({
9606
9705
  data: audioData,
9607
9706
  signatures: audioMediaTypeSignatures
9608
- })) != null ? _a16 : "audio/wav"
9707
+ })) != null ? _a17 : "audio/wav"
9609
9708
  });
9610
9709
  }
9611
9710
  );
@@ -9625,14 +9724,14 @@ async function transcribe({
9625
9724
  }
9626
9725
  var DefaultTranscriptionResult = class {
9627
9726
  constructor(options) {
9628
- var _a16;
9727
+ var _a17;
9629
9728
  this.text = options.text;
9630
9729
  this.segments = options.segments;
9631
9730
  this.language = options.language;
9632
9731
  this.durationInSeconds = options.durationInSeconds;
9633
9732
  this.warnings = options.warnings;
9634
9733
  this.responses = options.responses;
9635
- this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
9734
+ this.providerMetadata = (_a17 = options.providerMetadata) != null ? _a17 : {};
9636
9735
  }
9637
9736
  };
9638
9737
 
@@ -9675,7 +9774,7 @@ async function callCompletionApi({
9675
9774
  onError,
9676
9775
  fetch: fetch2 = getOriginalFetch()
9677
9776
  }) {
9678
- var _a16;
9777
+ var _a17;
9679
9778
  try {
9680
9779
  setLoading(true);
9681
9780
  setError(void 0);
@@ -9703,7 +9802,7 @@ async function callCompletionApi({
9703
9802
  });
9704
9803
  if (!response.ok) {
9705
9804
  throw new Error(
9706
- (_a16 = await response.text()) != null ? _a16 : "Failed to fetch the chat response."
9805
+ (_a17 = await response.text()) != null ? _a17 : "Failed to fetch the chat response."
9707
9806
  );
9708
9807
  }
9709
9808
  if (!response.body) {
@@ -9789,12 +9888,12 @@ async function convertFileListToFileUIParts(files) {
9789
9888
  }
9790
9889
  return Promise.all(
9791
9890
  Array.from(files).map(async (file) => {
9792
- const { name: name16, type } = file;
9891
+ const { name: name17, type } = file;
9793
9892
  const dataUrl = await new Promise((resolve2, reject) => {
9794
9893
  const reader = new FileReader();
9795
9894
  reader.onload = (readerEvent) => {
9796
- var _a16;
9797
- resolve2((_a16 = readerEvent.target) == null ? void 0 : _a16.result);
9895
+ var _a17;
9896
+ resolve2((_a17 = readerEvent.target) == null ? void 0 : _a17.result);
9798
9897
  };
9799
9898
  reader.onerror = (error) => reject(error);
9800
9899
  reader.readAsDataURL(file);
@@ -9802,7 +9901,7 @@ async function convertFileListToFileUIParts(files) {
9802
9901
  return {
9803
9902
  type: "file",
9804
9903
  mediaType: type,
9805
- filename: name16,
9904
+ filename: name17,
9806
9905
  url: dataUrl
9807
9906
  };
9808
9907
  })
@@ -9845,7 +9944,7 @@ var HttpChatTransport = class {
9845
9944
  abortSignal,
9846
9945
  ...options
9847
9946
  }) {
9848
- var _a16, _b, _c, _d, _e;
9947
+ var _a17, _b, _c, _d, _e;
9849
9948
  const resolvedBody = await resolve(this.body);
9850
9949
  const resolvedHeaders = await resolve(this.headers);
9851
9950
  const resolvedCredentials = await resolve(this.credentials);
@@ -9853,7 +9952,7 @@ var HttpChatTransport = class {
9853
9952
  ...normalizeHeaders(resolvedHeaders),
9854
9953
  ...normalizeHeaders(options.headers)
9855
9954
  };
9856
- const preparedRequest = await ((_a16 = this.prepareSendMessagesRequest) == null ? void 0 : _a16.call(this, {
9955
+ const preparedRequest = await ((_a17 = this.prepareSendMessagesRequest) == null ? void 0 : _a17.call(this, {
9857
9956
  api: this.api,
9858
9957
  id: options.chatId,
9859
9958
  messages: options.messages,
@@ -9897,7 +9996,7 @@ var HttpChatTransport = class {
9897
9996
  return this.processResponseStream(response.body);
9898
9997
  }
9899
9998
  async reconnectToStream(options) {
9900
- var _a16, _b, _c, _d;
9999
+ var _a17, _b, _c, _d;
9901
10000
  const resolvedBody = await resolve(this.body);
9902
10001
  const resolvedHeaders = await resolve(this.headers);
9903
10002
  const resolvedCredentials = await resolve(this.credentials);
@@ -9905,7 +10004,7 @@ var HttpChatTransport = class {
9905
10004
  ...normalizeHeaders(resolvedHeaders),
9906
10005
  ...normalizeHeaders(options.headers)
9907
10006
  };
9908
- const preparedRequest = await ((_a16 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a16.call(this, {
10007
+ const preparedRequest = await ((_a17 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a17.call(this, {
9909
10008
  api: this.api,
9910
10009
  id: options.chatId,
9911
10010
  body: { ...resolvedBody, ...options.body },
@@ -10001,11 +10100,11 @@ var AbstractChat = class {
10001
10100
  * If a messageId is provided, the message will be replaced.
10002
10101
  */
10003
10102
  this.sendMessage = async (message, options) => {
10004
- var _a16, _b, _c, _d;
10103
+ var _a17, _b, _c, _d;
10005
10104
  if (message == null) {
10006
10105
  await this.makeRequest({
10007
10106
  trigger: "submit-message",
10008
- messageId: (_a16 = this.lastMessage) == null ? void 0 : _a16.id,
10107
+ messageId: (_a17 = this.lastMessage) == null ? void 0 : _a17.id,
10009
10108
  ...options
10010
10109
  });
10011
10110
  return;
@@ -10267,14 +10366,14 @@ var AbstractChat = class {
10267
10366
  messageId,
10268
10367
  completionPromise
10269
10368
  }) {
10270
- var _a16, _b;
10369
+ var _a17, _b;
10271
10370
  if (trigger !== "resume-stream") {
10272
10371
  this.resumableStreamState = void 0;
10273
10372
  }
10274
10373
  const abortController = new AbortController();
10275
10374
  const activeResumeRequest = trigger === "resume-stream" ? { abortController, completionPromise } : void 0;
10276
10375
  if (activeResumeRequest) {
10277
- (_a16 = this.activeResumeRequest) == null ? void 0 : _a16.abortController.abort();
10376
+ (_a17 = this.activeResumeRequest) == null ? void 0 : _a17.abortController.abort();
10278
10377
  this.activeResumeRequest = activeResumeRequest;
10279
10378
  }
10280
10379
  const isCurrentRequest = () => activeResumeRequest == null || this.activeResumeRequest === activeResumeRequest;
@@ -10471,10 +10570,10 @@ var AbstractChat = class {
10471
10570
  if (!isAbort && !isError) {
10472
10571
  await this.runAutomaticRequest(
10473
10572
  () => {
10474
- var _a17;
10573
+ var _a18;
10475
10574
  return this.makeRequest({
10476
10575
  trigger: "submit-message",
10477
- messageId: (_a17 = this.lastMessage) == null ? void 0 : _a17.id,
10576
+ messageId: (_a18 = this.lastMessage) == null ? void 0 : _a18.id,
10478
10577
  metadata,
10479
10578
  headers,
10480
10579
  body
@@ -11085,7 +11184,7 @@ function readUIMessageStream({
11085
11184
  onError,
11086
11185
  terminateOnError = false
11087
11186
  }) {
11088
- var _a16;
11187
+ var _a17;
11089
11188
  let controller;
11090
11189
  let hasErrored = false;
11091
11190
  let isCancelled = false;
@@ -11100,7 +11199,7 @@ function readUIMessageStream({
11100
11199
  }
11101
11200
  });
11102
11201
  const state = createStreamingUIMessageState({
11103
- messageId: (_a16 = message == null ? void 0 : message.id) != null ? _a16 : "",
11202
+ messageId: (_a17 = message == null ? void 0 : message.id) != null ? _a17 : "",
11104
11203
  lastMessage: message
11105
11204
  });
11106
11205
  const handleError = (error) => {
@@ -11136,7 +11235,7 @@ function readUIMessageStream({
11136
11235
  return createAsyncIterableStream(outputStream);
11137
11236
  }
11138
11237
  export {
11139
- AISDKError17 as AISDKError,
11238
+ AISDKError18 as AISDKError,
11140
11239
  APICallError,
11141
11240
  AbstractChat,
11142
11241
  DefaultChatTransport,
@@ -11171,6 +11270,7 @@ export {
11171
11270
  TextStreamChatTransport,
11172
11271
  TooManyEmbeddingValuesForCallError,
11173
11272
  ToolCallRepairError,
11273
+ ToolChoiceViolationError,
11174
11274
  TypeValidationError,
11175
11275
  UI_MESSAGE_STREAM_HEADERS,
11176
11276
  UnsupportedFunctionalityError,