ai 6.0.11 → 6.0.13

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
@@ -898,7 +898,7 @@ import {
898
898
  } from "@ai-sdk/provider-utils";
899
899
 
900
900
  // src/version.ts
901
- var VERSION = true ? "6.0.11" : "0.0.0-test";
901
+ var VERSION = true ? "6.0.13" : "0.0.0-test";
902
902
 
903
903
  // src/util/download/download.ts
904
904
  var download = async ({ url }) => {
@@ -10152,25 +10152,29 @@ function smoothStream({
10152
10152
  return () => {
10153
10153
  let buffer = "";
10154
10154
  let id = "";
10155
+ let type = void 0;
10156
+ function flushBuffer(controller) {
10157
+ if (buffer.length > 0 && type !== void 0) {
10158
+ controller.enqueue({ type, text: buffer, id });
10159
+ buffer = "";
10160
+ }
10161
+ }
10155
10162
  return new TransformStream({
10156
10163
  async transform(chunk, controller) {
10157
- if (chunk.type !== "text-delta") {
10158
- if (buffer.length > 0) {
10159
- controller.enqueue({ type: "text-delta", text: buffer, id });
10160
- buffer = "";
10161
- }
10164
+ if (chunk.type !== "text-delta" && chunk.type !== "reasoning-delta") {
10165
+ flushBuffer(controller);
10162
10166
  controller.enqueue(chunk);
10163
10167
  return;
10164
10168
  }
10165
- if (chunk.id !== id && buffer.length > 0) {
10166
- controller.enqueue({ type: "text-delta", text: buffer, id });
10167
- buffer = "";
10169
+ if ((chunk.type !== type || chunk.id !== id) && buffer.length > 0) {
10170
+ flushBuffer(controller);
10168
10171
  }
10169
10172
  buffer += chunk.text;
10170
10173
  id = chunk.id;
10174
+ type = chunk.type;
10171
10175
  let match;
10172
10176
  while ((match = detectChunk(buffer)) != null) {
10173
- controller.enqueue({ type: "text-delta", text: match, id });
10177
+ controller.enqueue({ type, text: match, id });
10174
10178
  buffer = buffer.slice(match.length);
10175
10179
  await delay2(delayInMs);
10176
10180
  }
@@ -10586,6 +10590,52 @@ var doWrap2 = ({
10586
10590
  };
10587
10591
  };
10588
10592
 
10593
+ // src/middleware/wrap-image-model.ts
10594
+ var wrapImageModel = ({
10595
+ model,
10596
+ middleware: middlewareArg,
10597
+ modelId,
10598
+ providerId
10599
+ }) => {
10600
+ return [...asArray(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
10601
+ return doWrap3({ model: wrappedModel, middleware, modelId, providerId });
10602
+ }, model);
10603
+ };
10604
+ var doWrap3 = ({
10605
+ model,
10606
+ middleware: {
10607
+ transformParams,
10608
+ wrapGenerate,
10609
+ overrideProvider,
10610
+ overrideModelId,
10611
+ overrideMaxImagesPerCall
10612
+ },
10613
+ modelId,
10614
+ providerId
10615
+ }) => {
10616
+ var _a16, _b, _c;
10617
+ async function doTransform({ params }) {
10618
+ return transformParams ? await transformParams({ params, model }) : params;
10619
+ }
10620
+ const maxImagesPerCallRaw = (_a16 = overrideMaxImagesPerCall == null ? void 0 : overrideMaxImagesPerCall({ model })) != null ? _a16 : model.maxImagesPerCall;
10621
+ const maxImagesPerCall = maxImagesPerCallRaw instanceof Function ? maxImagesPerCallRaw.bind(model) : maxImagesPerCallRaw;
10622
+ return {
10623
+ specificationVersion: "v3",
10624
+ provider: (_b = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _b : model.provider,
10625
+ modelId: (_c = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _c : model.modelId,
10626
+ maxImagesPerCall,
10627
+ async doGenerate(params) {
10628
+ const transformedParams = await doTransform({ params });
10629
+ const doGenerate = async () => model.doGenerate(transformedParams);
10630
+ return wrapGenerate ? wrapGenerate({
10631
+ doGenerate,
10632
+ params: transformedParams,
10633
+ model
10634
+ }) : doGenerate();
10635
+ }
10636
+ };
10637
+ };
10638
+
10589
10639
  // src/model/as-provider-v3.ts
10590
10640
  function asProviderV3(provider) {
10591
10641
  if ("specificationVersion" in provider && provider.specificationVersion === "v3") {
@@ -10607,7 +10657,8 @@ function asProviderV3(provider) {
10607
10657
  // src/middleware/wrap-provider.ts
10608
10658
  function wrapProvider({
10609
10659
  provider,
10610
- languageModelMiddleware
10660
+ languageModelMiddleware,
10661
+ imageModelMiddleware
10611
10662
  }) {
10612
10663
  const providerV3 = asProviderV3(provider);
10613
10664
  return {
@@ -10617,7 +10668,13 @@ function wrapProvider({
10617
10668
  middleware: languageModelMiddleware
10618
10669
  }),
10619
10670
  embeddingModel: providerV3.embeddingModel,
10620
- imageModel: providerV3.imageModel,
10671
+ imageModel: (modelId) => {
10672
+ let model = providerV3.imageModel(modelId);
10673
+ if (imageModelMiddleware != null) {
10674
+ model = wrapImageModel({ model, middleware: imageModelMiddleware });
10675
+ }
10676
+ return model;
10677
+ },
10621
10678
  transcriptionModel: providerV3.transcriptionModel,
10622
10679
  speechModel: providerV3.speechModel,
10623
10680
  rerankingModel: providerV3.rerankingModel
@@ -10729,11 +10786,13 @@ import {
10729
10786
  } from "@ai-sdk/provider";
10730
10787
  function createProviderRegistry(providers, {
10731
10788
  separator = ":",
10732
- languageModelMiddleware
10789
+ languageModelMiddleware,
10790
+ imageModelMiddleware
10733
10791
  } = {}) {
10734
10792
  const registry = new DefaultProviderRegistry({
10735
10793
  separator,
10736
- languageModelMiddleware
10794
+ languageModelMiddleware,
10795
+ imageModelMiddleware
10737
10796
  });
10738
10797
  for (const [id, provider] of Object.entries(providers)) {
10739
10798
  registry.registerProvider({ id, provider });
@@ -10744,11 +10803,13 @@ var experimental_createProviderRegistry = createProviderRegistry;
10744
10803
  var DefaultProviderRegistry = class {
10745
10804
  constructor({
10746
10805
  separator,
10747
- languageModelMiddleware
10806
+ languageModelMiddleware,
10807
+ imageModelMiddleware
10748
10808
  }) {
10749
10809
  this.providers = {};
10750
10810
  this.separator = separator;
10751
10811
  this.languageModelMiddleware = languageModelMiddleware;
10812
+ this.imageModelMiddleware = imageModelMiddleware;
10752
10813
  }
10753
10814
  registerProvider({
10754
10815
  id,
@@ -10814,10 +10875,16 @@ var DefaultProviderRegistry = class {
10814
10875
  var _a16;
10815
10876
  const [providerId, modelId] = this.splitId(id, "imageModel");
10816
10877
  const provider = this.getProvider(providerId, "imageModel");
10817
- const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
10878
+ let model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
10818
10879
  if (model == null) {
10819
10880
  throw new NoSuchModelError4({ modelId: id, modelType: "imageModel" });
10820
10881
  }
10882
+ if (this.imageModelMiddleware != null) {
10883
+ model = wrapImageModel({
10884
+ model,
10885
+ middleware: this.imageModelMiddleware
10886
+ });
10887
+ }
10821
10888
  return model;
10822
10889
  }
10823
10890
  transcriptionModel(id) {
@@ -11986,6 +12053,7 @@ export {
11986
12053
  userModelMessageSchema,
11987
12054
  validateUIMessages,
11988
12055
  wrapEmbeddingModel,
12056
+ wrapImageModel,
11989
12057
  wrapLanguageModel,
11990
12058
  wrapProvider,
11991
12059
  zodSchema3 as zodSchema