ai 7.0.52 → 7.0.55

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
@@ -1143,7 +1143,7 @@ import {
1143
1143
  } from "@ai-sdk/provider-utils";
1144
1144
 
1145
1145
  // src/version.ts
1146
- var VERSION = true ? "7.0.52" : "0.0.0-test";
1146
+ var VERSION = true ? "7.0.55" : "0.0.0-test";
1147
1147
 
1148
1148
  // src/util/download/download.ts
1149
1149
  var download = async ({
@@ -7845,7 +7845,14 @@ function asAsyncIterableStream(stream) {
7845
7845
  if (finished) {
7846
7846
  return { done: true, value: void 0 };
7847
7847
  }
7848
- const { done, value } = await reader.read();
7848
+ let result;
7849
+ try {
7850
+ result = await reader.read();
7851
+ } catch (error) {
7852
+ await cleanup(false);
7853
+ throw error;
7854
+ }
7855
+ const { done, value } = result;
7849
7856
  if (done) {
7850
7857
  await cleanup(true);
7851
7858
  return { done: true, value: void 0 };
@@ -10708,7 +10715,7 @@ async function convertToModelMessages(messages, options) {
10708
10715
  messages = messages.map((message) => ({
10709
10716
  ...message,
10710
10717
  parts: message.parts.filter(
10711
- (part) => !isToolUIPart(part) || part.state !== "input-streaming" && part.state !== "input-available"
10718
+ (part) => !isToolUIPart(part) || part.state === "approval-responded" || part.state === "output-available" || part.state === "output-error" || part.state === "output-denied"
10712
10719
  )
10713
10720
  }));
10714
10721
  }
@@ -11525,10 +11532,254 @@ async function pipeAgentUIStreamToResponse({
11525
11532
  });
11526
11533
  }
11527
11534
 
11535
+ // src/batch/batch.ts
11536
+ import {
11537
+ UnsupportedFunctionalityError as UnsupportedFunctionalityError3
11538
+ } from "@ai-sdk/provider";
11539
+ import { withUserAgentSuffix as withUserAgentSuffix4 } from "@ai-sdk/provider-utils";
11540
+ async function startTextBatch({
11541
+ model: modelArg,
11542
+ requests,
11543
+ providerOptions,
11544
+ abortSignal,
11545
+ headers,
11546
+ timeout
11547
+ }) {
11548
+ validateRequests(requests);
11549
+ const model = resolveBatchLanguageModel(modelArg);
11550
+ const operationAbortSignal = mergeAbortSignals(
11551
+ abortSignal,
11552
+ getTotalTimeoutMs(timeout)
11553
+ );
11554
+ const supportedUrls = await model.supportedUrls;
11555
+ operationAbortSignal == null ? void 0 : operationAbortSignal.throwIfAborted();
11556
+ const normalizedRequests = [];
11557
+ for (const request of requests) {
11558
+ const standardizedPrompt = await standardizePrompt(request);
11559
+ normalizedRequests.push({
11560
+ id: request.id,
11561
+ options: {
11562
+ ...prepareLanguageModelCallOptions(request),
11563
+ prompt: await convertToLanguageModelPrompt({
11564
+ prompt: standardizedPrompt,
11565
+ supportedUrls,
11566
+ download: void 0,
11567
+ provider: model.provider.split(".")[0]
11568
+ }),
11569
+ providerOptions: request.providerOptions
11570
+ }
11571
+ });
11572
+ operationAbortSignal == null ? void 0 : operationAbortSignal.throwIfAborted();
11573
+ }
11574
+ const headersWithUserAgent = withUserAgentSuffix4(
11575
+ headers != null ? headers : {},
11576
+ `ai/${VERSION}`
11577
+ );
11578
+ try {
11579
+ const result = await model.experimental_doStartBatch({
11580
+ requests: normalizedRequests,
11581
+ providerOptions,
11582
+ abortSignal: operationAbortSignal,
11583
+ headers: headersWithUserAgent
11584
+ });
11585
+ const { batchId, warnings, ...status } = result;
11586
+ logWarnings({
11587
+ warnings: warnings.map(({ warning }) => warning),
11588
+ provider: model.provider,
11589
+ model: model.modelId
11590
+ });
11591
+ return {
11592
+ version: 1,
11593
+ type: "text",
11594
+ id: batchId,
11595
+ provider: model.provider,
11596
+ modelId: model.modelId,
11597
+ ...status,
11598
+ warnings
11599
+ };
11600
+ } catch (error) {
11601
+ throw wrapGatewayError(error);
11602
+ }
11603
+ }
11604
+ async function getBatchStatus({
11605
+ model: modelArg,
11606
+ batch,
11607
+ providerOptions,
11608
+ maxRetries,
11609
+ abortSignal,
11610
+ headers,
11611
+ timeout
11612
+ }) {
11613
+ const model = resolveBatchLanguageModel(modelArg);
11614
+ validateBatchReference({ model, batch });
11615
+ const operationAbortSignal = mergeAbortSignals(
11616
+ abortSignal,
11617
+ getTotalTimeoutMs(timeout)
11618
+ );
11619
+ const { retry } = prepareRetries({
11620
+ maxRetries,
11621
+ abortSignal: operationAbortSignal
11622
+ });
11623
+ try {
11624
+ const status = await retry(
11625
+ () => model.experimental_doGetBatchStatus({
11626
+ batchId: batch.id,
11627
+ providerOptions,
11628
+ abortSignal: operationAbortSignal,
11629
+ headers: withUserAgentSuffix4(headers != null ? headers : {}, `ai/${VERSION}`)
11630
+ })
11631
+ );
11632
+ return status;
11633
+ } catch (error) {
11634
+ throw wrapGatewayError(error);
11635
+ }
11636
+ }
11637
+ function getBatchResults({
11638
+ model: modelArg,
11639
+ batch,
11640
+ providerOptions,
11641
+ maxRetries,
11642
+ abortSignal,
11643
+ headers,
11644
+ timeout
11645
+ }) {
11646
+ const model = resolveBatchLanguageModel(modelArg);
11647
+ validateBatchReference({ model, batch });
11648
+ const streamAbortController = new AbortController();
11649
+ const operationAbortSignal = mergeAbortSignals(
11650
+ abortSignal,
11651
+ getTotalTimeoutMs(timeout),
11652
+ streamAbortController.signal
11653
+ );
11654
+ const { retry } = prepareRetries({
11655
+ maxRetries,
11656
+ abortSignal: operationAbortSignal
11657
+ });
11658
+ const transformer = {
11659
+ transform(item, controller) {
11660
+ controller.enqueue(convertBatchItemResult(item));
11661
+ },
11662
+ cancel(reason) {
11663
+ streamAbortController.abort(
11664
+ reason != null ? reason : new Error("Batch results stream was cancelled.")
11665
+ );
11666
+ }
11667
+ };
11668
+ const transform = new TransformStream(transformer);
11669
+ void (async () => {
11670
+ try {
11671
+ const stream = await retry(
11672
+ () => model.experimental_doGetBatchResults({
11673
+ batchId: batch.id,
11674
+ providerOptions,
11675
+ abortSignal: operationAbortSignal,
11676
+ headers: withUserAgentSuffix4(headers != null ? headers : {}, `ai/${VERSION}`)
11677
+ })
11678
+ );
11679
+ await stream.pipeTo(transform.writable, {
11680
+ signal: operationAbortSignal
11681
+ });
11682
+ } catch (error) {
11683
+ await transform.writable.abort(wrapGatewayError(error)).catch(() => {
11684
+ });
11685
+ }
11686
+ })();
11687
+ return asAsyncIterableStream(transform.readable);
11688
+ }
11689
+ function resolveBatchLanguageModel(modelArg) {
11690
+ const model = resolveLanguageModel(modelArg);
11691
+ if (!isBatchLanguageModel(model)) {
11692
+ throw new UnsupportedFunctionalityError3({
11693
+ functionality: "batch processing",
11694
+ message: `The ${model.provider} model "${model.modelId}" does not support batch processing.`
11695
+ });
11696
+ }
11697
+ return model;
11698
+ }
11699
+ function isBatchLanguageModel(model) {
11700
+ const candidate = model;
11701
+ return typeof candidate.experimental_doStartBatch === "function" && typeof candidate.experimental_doGetBatchStatus === "function" && typeof candidate.experimental_doGetBatchResults === "function";
11702
+ }
11703
+ function validateRequests(requests) {
11704
+ if (requests.length === 0) {
11705
+ throw new InvalidArgumentError({
11706
+ parameter: "requests",
11707
+ value: requests,
11708
+ message: "requests must not be empty"
11709
+ });
11710
+ }
11711
+ const ids = /* @__PURE__ */ new Set();
11712
+ for (const request of requests) {
11713
+ if (request.id.trim().length === 0) {
11714
+ throw new InvalidArgumentError({
11715
+ parameter: "requests",
11716
+ value: requests,
11717
+ message: "request IDs must not be empty"
11718
+ });
11719
+ }
11720
+ if (ids.has(request.id)) {
11721
+ throw new InvalidArgumentError({
11722
+ parameter: "requests",
11723
+ value: requests,
11724
+ message: `request IDs must be unique; duplicate ID "${request.id}"`
11725
+ });
11726
+ }
11727
+ ids.add(request.id);
11728
+ }
11729
+ }
11730
+ function validateBatchReference({
11731
+ model,
11732
+ batch
11733
+ }) {
11734
+ if (batch.version !== 1 || batch.type !== "text") {
11735
+ throw new InvalidArgumentError({
11736
+ parameter: "batch",
11737
+ value: batch,
11738
+ message: "batch must be a supported text batch reference"
11739
+ });
11740
+ }
11741
+ if (batch.provider !== model.provider || batch.modelId !== model.modelId) {
11742
+ throw new InvalidArgumentError({
11743
+ parameter: "model",
11744
+ value: model,
11745
+ message: `model ${model.provider}:${model.modelId} is not compatible with batch ${batch.provider}:${batch.modelId}`
11746
+ });
11747
+ }
11748
+ }
11749
+ function convertBatchItemResult(item) {
11750
+ if (item.status !== "succeeded") {
11751
+ return item;
11752
+ }
11753
+ return {
11754
+ id: item.id,
11755
+ status: "succeeded",
11756
+ ...convertGenerateResult(item.result)
11757
+ };
11758
+ }
11759
+ function convertGenerateResult(result) {
11760
+ var _a23;
11761
+ return {
11762
+ text: result.content.filter(
11763
+ (part) => part.type === "text"
11764
+ ).map((part) => part.text).join(""),
11765
+ finishReason: result.finishReason.unified,
11766
+ rawFinishReason: result.finishReason.raw,
11767
+ usage: asLanguageModelUsage(result.usage),
11768
+ ...result.response != null ? {
11769
+ response: {
11770
+ id: result.response.id,
11771
+ timestamp: (_a23 = result.response.timestamp) == null ? void 0 : _a23.toISOString(),
11772
+ modelId: result.response.modelId
11773
+ }
11774
+ } : {},
11775
+ providerMetadata: result.providerMetadata
11776
+ };
11777
+ }
11778
+
11528
11779
  // src/embed/embed.ts
11529
11780
  import {
11530
11781
  createIdGenerator as createIdGenerator4,
11531
- withUserAgentSuffix as withUserAgentSuffix4
11782
+ withUserAgentSuffix as withUserAgentSuffix5
11532
11783
  } from "@ai-sdk/provider-utils";
11533
11784
  var originalGenerateCallId4 = createIdGenerator4({
11534
11785
  prefix: "call",
@@ -11557,7 +11808,7 @@ async function embed({
11557
11808
  });
11558
11809
  const resolvedOnStart = onStart != null ? onStart : experimental_onStart;
11559
11810
  const resolvedOnEnd = onEnd != null ? onEnd : experimental_onEnd;
11560
- const headersWithUserAgent = withUserAgentSuffix4(
11811
+ const headersWithUserAgent = withUserAgentSuffix5(
11561
11812
  headers != null ? headers : {},
11562
11813
  `ai/${VERSION}`
11563
11814
  );
@@ -11678,7 +11929,7 @@ var DefaultEmbedResult = class {
11678
11929
  // src/embed/embed-many.ts
11679
11930
  import {
11680
11931
  createIdGenerator as createIdGenerator5,
11681
- withUserAgentSuffix as withUserAgentSuffix5
11932
+ withUserAgentSuffix as withUserAgentSuffix6
11682
11933
  } from "@ai-sdk/provider-utils";
11683
11934
 
11684
11935
  // src/util/split-array.ts
@@ -11722,7 +11973,7 @@ async function embedMany({
11722
11973
  });
11723
11974
  const resolvedOnStart = onStart != null ? onStart : experimental_onStart;
11724
11975
  const resolvedOnEnd = onEnd != null ? onEnd : experimental_onEnd;
11725
- const headersWithUserAgent = withUserAgentSuffix5(
11976
+ const headersWithUserAgent = withUserAgentSuffix6(
11726
11977
  headers != null ? headers : {},
11727
11978
  `ai/${VERSION}`
11728
11979
  );
@@ -11956,7 +12207,7 @@ var DefaultEmbedManyResult = class {
11956
12207
  import {
11957
12208
  convertBase64ToUint8Array as convertBase64ToUint8Array4,
11958
12209
  detectMediaType as detectMediaType2,
11959
- withUserAgentSuffix as withUserAgentSuffix6
12210
+ withUserAgentSuffix as withUserAgentSuffix7
11960
12211
  } from "@ai-sdk/provider-utils";
11961
12212
 
11962
12213
  // src/prompt/data-content.ts
@@ -12010,7 +12261,7 @@ async function generateImage({
12010
12261
  }) {
12011
12262
  var _a23, _b;
12012
12263
  const model = resolveImageModel(modelArg);
12013
- const headersWithUserAgent = withUserAgentSuffix6(
12264
+ const headersWithUserAgent = withUserAgentSuffix7(
12014
12265
  headers != null ? headers : {},
12015
12266
  `ai/${VERSION}`
12016
12267
  );
@@ -12178,7 +12429,7 @@ function toImageModelV4File(dataContent) {
12178
12429
  // src/generate-object/generate-object.ts
12179
12430
  import {
12180
12431
  createIdGenerator as createIdGenerator6,
12181
- withUserAgentSuffix as withUserAgentSuffix7
12432
+ withUserAgentSuffix as withUserAgentSuffix8
12182
12433
  } from "@ai-sdk/provider-utils";
12183
12434
 
12184
12435
  // src/generate-text/extract-reasoning-content.ts
@@ -12205,7 +12456,7 @@ import {
12205
12456
  isJSONArray,
12206
12457
  isJSONObject,
12207
12458
  TypeValidationError as TypeValidationError4,
12208
- UnsupportedFunctionalityError as UnsupportedFunctionalityError3
12459
+ UnsupportedFunctionalityError as UnsupportedFunctionalityError4
12209
12460
  } from "@ai-sdk/provider";
12210
12461
  import {
12211
12462
  asSchema as asSchema5,
@@ -12230,7 +12481,7 @@ var noSchemaOutputStrategy = {
12230
12481
  } : { success: true, value };
12231
12482
  },
12232
12483
  createElementStream() {
12233
- throw new UnsupportedFunctionalityError3({
12484
+ throw new UnsupportedFunctionalityError4({
12234
12485
  functionality: "element streams in no-schema mode"
12235
12486
  });
12236
12487
  }
@@ -12252,7 +12503,7 @@ var objectOutputStrategy = (schema) => ({
12252
12503
  return safeValidateTypes5({ value, schema });
12253
12504
  },
12254
12505
  createElementStream() {
12255
- throw new UnsupportedFunctionalityError3({
12506
+ throw new UnsupportedFunctionalityError4({
12256
12507
  functionality: "element streams in object mode"
12257
12508
  });
12258
12509
  }
@@ -12443,7 +12694,7 @@ var enumOutputStrategy = (enumValues) => {
12443
12694
  };
12444
12695
  },
12445
12696
  createElementStream() {
12446
- throw new UnsupportedFunctionalityError3({
12697
+ throw new UnsupportedFunctionalityError4({
12447
12698
  functionality: "element streams in enum mode"
12448
12699
  });
12449
12700
  }
@@ -12703,7 +12954,7 @@ async function generateObject(options) {
12703
12954
  enumValues
12704
12955
  });
12705
12956
  const callSettings = prepareLanguageModelCallOptions(settings);
12706
- const headersWithUserAgent = withUserAgentSuffix7(
12957
+ const headersWithUserAgent = withUserAgentSuffix8(
12707
12958
  headers != null ? headers : {},
12708
12959
  `ai/${VERSION}`
12709
12960
  );
@@ -13541,7 +13792,7 @@ var DefaultStreamObjectResult = class {
13541
13792
  // src/generate-speech/generate-speech.ts
13542
13793
  import {
13543
13794
  detectMediaType as detectMediaType3,
13544
- withUserAgentSuffix as withUserAgentSuffix8
13795
+ withUserAgentSuffix as withUserAgentSuffix9
13545
13796
  } from "@ai-sdk/provider-utils";
13546
13797
 
13547
13798
  // src/generate-speech/generated-audio-file.ts
@@ -13588,7 +13839,7 @@ async function generateSpeech({
13588
13839
  if (!resolvedModel) {
13589
13840
  throw new Error("Model could not be resolved");
13590
13841
  }
13591
- const headersWithUserAgent = withUserAgentSuffix8(
13842
+ const headersWithUserAgent = withUserAgentSuffix9(
13592
13843
  headers != null ? headers : {},
13593
13844
  `ai/${VERSION}`
13594
13845
  );
@@ -13885,7 +14136,7 @@ function detectToolDrift(current, baseline) {
13885
14136
  import {
13886
14137
  convertBase64ToUint8Array as convertBase64ToUint8Array5,
13887
14138
  delay as defaultDelay,
13888
- withUserAgentSuffix as withUserAgentSuffix9,
14139
+ withUserAgentSuffix as withUserAgentSuffix10,
13889
14140
  detectMediaType as detectMediaType4
13890
14141
  } from "@ai-sdk/provider-utils";
13891
14142
  var defaultDownload = createDownload();
@@ -13912,7 +14163,7 @@ async function experimental_generateVideo({
13912
14163
  }) {
13913
14164
  var _a23, _b;
13914
14165
  const model = resolveVideoModel(modelArg);
13915
- const headersWithUserAgent = withUserAgentSuffix9(
14166
+ const headersWithUserAgent = withUserAgentSuffix10(
13916
14167
  headers != null ? headers : {},
13917
14168
  `ai/${VERSION}`
13918
14169
  );
@@ -14299,6 +14550,30 @@ function defaultEmbeddingSettingsMiddleware({
14299
14550
  };
14300
14551
  }
14301
14552
 
14553
+ // src/middleware/default-instructions-middleware.ts
14554
+ import { asArray as asArray7 } from "@ai-sdk/provider-utils";
14555
+ function defaultInstructionsMiddleware({
14556
+ instructions
14557
+ }) {
14558
+ const defaultSystemMessages = typeof instructions === "string" ? [{ role: "system", content: instructions }] : asArray7(instructions).map((message) => ({
14559
+ role: "system",
14560
+ content: message.content,
14561
+ providerOptions: message.providerOptions
14562
+ }));
14563
+ return {
14564
+ specificationVersion: "v4",
14565
+ transformParams: async ({ params }) => {
14566
+ if (defaultSystemMessages.length === 0 || params.prompt.some((message) => message.role === "system")) {
14567
+ return params;
14568
+ }
14569
+ return {
14570
+ ...params,
14571
+ prompt: [...defaultSystemMessages, ...params.prompt]
14572
+ };
14573
+ }
14574
+ };
14575
+ }
14576
+
14302
14577
  // src/middleware/default-settings-middleware.ts
14303
14578
  function defaultSettingsMiddleware({
14304
14579
  settings
@@ -14726,7 +15001,7 @@ ${examplesSection}` : examplesSection;
14726
15001
  }
14727
15002
 
14728
15003
  // src/middleware/wrap-language-model.ts
14729
- import { asArray as asArray7 } from "@ai-sdk/provider-utils";
15004
+ import { asArray as asArray8 } from "@ai-sdk/provider-utils";
14730
15005
  var wrapLanguageModel = ({
14731
15006
  model: inputModel,
14732
15007
  middleware: middlewareArg,
@@ -14734,7 +15009,7 @@ var wrapLanguageModel = ({
14734
15009
  providerId
14735
15010
  }) => {
14736
15011
  const model = asLanguageModelV4(inputModel);
14737
- return [...asArray7(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
15012
+ return [...asArray8(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
14738
15013
  return doWrap({ model: wrappedModel, middleware, modelId, providerId });
14739
15014
  }, model);
14740
15015
  };
@@ -14789,7 +15064,7 @@ var doWrap = ({
14789
15064
  };
14790
15065
 
14791
15066
  // src/middleware/wrap-embedding-model.ts
14792
- import { asArray as asArray8 } from "@ai-sdk/provider-utils";
15067
+ import { asArray as asArray9 } from "@ai-sdk/provider-utils";
14793
15068
  var wrapEmbeddingModel = ({
14794
15069
  model: inputModel,
14795
15070
  middleware: middlewareArg,
@@ -14797,7 +15072,7 @@ var wrapEmbeddingModel = ({
14797
15072
  providerId
14798
15073
  }) => {
14799
15074
  const model = asEmbeddingModelV4(inputModel);
14800
- return [...asArray8(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
15075
+ return [...asArray9(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
14801
15076
  return doWrap2({ model: wrappedModel, middleware, modelId, providerId });
14802
15077
  }, model);
14803
15078
  };
@@ -14839,7 +15114,7 @@ var doWrap2 = ({
14839
15114
  };
14840
15115
 
14841
15116
  // src/middleware/wrap-image-model.ts
14842
- import { asArray as asArray9 } from "@ai-sdk/provider-utils";
15117
+ import { asArray as asArray10 } from "@ai-sdk/provider-utils";
14843
15118
  var wrapImageModel = ({
14844
15119
  model: inputModel,
14845
15120
  middleware: middlewareArg,
@@ -14847,7 +15122,7 @@ var wrapImageModel = ({
14847
15122
  providerId
14848
15123
  }) => {
14849
15124
  const model = asImageModelV4(inputModel);
14850
- return [...asArray9(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
15125
+ return [...asArray10(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
14851
15126
  return doWrap3({ model: wrappedModel, middleware, modelId, providerId });
14852
15127
  }, model);
14853
15128
  };
@@ -16423,7 +16698,7 @@ var DefaultRerankResult = class {
16423
16698
  // src/transcribe/transcribe.ts
16424
16699
  import {
16425
16700
  detectMediaType as detectMediaType5,
16426
- withUserAgentSuffix as withUserAgentSuffix10
16701
+ withUserAgentSuffix as withUserAgentSuffix11
16427
16702
  } from "@ai-sdk/provider-utils";
16428
16703
  var defaultDownload2 = createDownload();
16429
16704
  async function transcribe({
@@ -16443,7 +16718,7 @@ async function transcribe({
16443
16718
  maxRetries: maxRetriesArg,
16444
16719
  abortSignal
16445
16720
  });
16446
- const headersWithUserAgent = withUserAgentSuffix10(
16721
+ const headersWithUserAgent = withUserAgentSuffix11(
16447
16722
  headers != null ? headers : {},
16448
16723
  `ai/${VERSION}`
16449
16724
  );
@@ -16496,11 +16771,11 @@ var DefaultTranscriptionResult = class {
16496
16771
 
16497
16772
  // src/transcribe/stream-transcribe.ts
16498
16773
  import {
16499
- UnsupportedFunctionalityError as UnsupportedFunctionalityError4
16774
+ UnsupportedFunctionalityError as UnsupportedFunctionalityError5
16500
16775
  } from "@ai-sdk/provider";
16501
16776
  import {
16502
16777
  DelayedPromise as DelayedPromise3,
16503
- withUserAgentSuffix as withUserAgentSuffix11
16778
+ withUserAgentSuffix as withUserAgentSuffix12
16504
16779
  } from "@ai-sdk/provider-utils";
16505
16780
  function streamTranscribe({
16506
16781
  model,
@@ -16519,12 +16794,12 @@ function streamTranscribe({
16519
16794
  }
16520
16795
  const doStream = (_a23 = resolvedModel.doStream) == null ? void 0 : _a23.bind(resolvedModel);
16521
16796
  if (doStream == null) {
16522
- throw new UnsupportedFunctionalityError4({
16797
+ throw new UnsupportedFunctionalityError5({
16523
16798
  functionality: "streaming transcription",
16524
16799
  message: `The ${resolvedModel.provider} model "${resolvedModel.modelId}" does not support streaming transcription.` + (typeof model === "string" ? " String model IDs resolve through the global provider (AI Gateway by default). If that provider does not support streaming transcription, pass a provider model instance instead (e.g. openai.transcription('gpt-realtime-whisper')) or upgrade @ai-sdk/gateway to a version with streaming transcription support." : "")
16525
16800
  });
16526
16801
  }
16527
- const headersWithUserAgent = withUserAgentSuffix11(
16802
+ const headersWithUserAgent = withUserAgentSuffix12(
16528
16803
  headers != null ? headers : {},
16529
16804
  `ai/${VERSION}`
16530
16805
  );
@@ -16709,7 +16984,7 @@ var experimental_transcribe = transcribe;
16709
16984
  // src/translate/stream-translate.ts
16710
16985
  import {
16711
16986
  DelayedPromise as DelayedPromise4,
16712
- withUserAgentSuffix as withUserAgentSuffix12
16987
+ withUserAgentSuffix as withUserAgentSuffix13
16713
16988
  } from "@ai-sdk/provider-utils";
16714
16989
  function streamTranslate({
16715
16990
  model,
@@ -16726,7 +17001,7 @@ function streamTranslate({
16726
17001
  }) {
16727
17002
  const resolvedModel = resolveSpeechTranslationModel(model);
16728
17003
  const doStream = resolvedModel.doStream.bind(resolvedModel);
16729
- const headersWithUserAgent = withUserAgentSuffix12(
17004
+ const headersWithUserAgent = withUserAgentSuffix13(
16730
17005
  headers != null ? headers : {},
16731
17006
  `ai/${VERSION}`
16732
17007
  );
@@ -16923,7 +17198,7 @@ function streamTranslate({
16923
17198
  // src/ui/call-completion-api.ts
16924
17199
  import {
16925
17200
  parseJsonEventStream,
16926
- withUserAgentSuffix as withUserAgentSuffix13,
17201
+ withUserAgentSuffix as withUserAgentSuffix14,
16927
17202
  getRuntimeEnvironmentUserAgent as getRuntimeEnvironmentUserAgent2
16928
17203
  } from "@ai-sdk/provider-utils";
16929
17204
 
@@ -16973,7 +17248,7 @@ async function callCompletionApi({
16973
17248
  ...body
16974
17249
  }),
16975
17250
  credentials,
16976
- headers: withUserAgentSuffix13(
17251
+ headers: withUserAgentSuffix14(
16977
17252
  {
16978
17253
  "Content-Type": "application/json",
16979
17254
  ...headers
@@ -17522,7 +17797,7 @@ var AbstractChat = class {
17522
17797
  try {
17523
17798
  const response = {
17524
17799
  state: createStreamingUIMessageState({
17525
- lastMessage: this.state.snapshot(lastMessage),
17800
+ lastMessage: trigger === "regenerate-message" ? void 0 : this.state.snapshot(lastMessage),
17526
17801
  messageId: this.generateId()
17527
17802
  }),
17528
17803
  abortController: new AbortController()
@@ -17912,6 +18187,7 @@ export {
17912
18187
  createUIMessageStreamResponse,
17913
18188
  customProvider,
17914
18189
  defaultEmbeddingSettingsMiddleware,
18190
+ defaultInstructionsMiddleware,
17915
18191
  defaultSettingsMiddleware,
17916
18192
  detectToolDrift,
17917
18193
  dynamicTool,
@@ -17923,8 +18199,11 @@ export {
17923
18199
  filterActiveTools as experimental_filterActiveTools,
17924
18200
  experimental_generateSpeech,
17925
18201
  experimental_generateVideo,
18202
+ getBatchResults as experimental_getBatchResults,
18203
+ getBatchStatus as experimental_getBatchStatus,
17926
18204
  getRealtimeToolDefinitions as experimental_getRealtimeToolDefinitions,
17927
18205
  resampleAudio as experimental_resampleAudio,
18206
+ startTextBatch as experimental_startTextBatch,
17928
18207
  streamLanguageModelCall as experimental_streamLanguageModelCall,
17929
18208
  streamTranscribe as experimental_streamTranscribe,
17930
18209
  streamTranslate as experimental_streamTranslate,