ai 6.0.11 → 6.0.12

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.12" : "0.0.0-test";
902
902
 
903
903
  // src/util/download/download.ts
904
904
  var download = async ({ url }) => {
@@ -10586,6 +10586,52 @@ var doWrap2 = ({
10586
10586
  };
10587
10587
  };
10588
10588
 
10589
+ // src/middleware/wrap-image-model.ts
10590
+ var wrapImageModel = ({
10591
+ model,
10592
+ middleware: middlewareArg,
10593
+ modelId,
10594
+ providerId
10595
+ }) => {
10596
+ return [...asArray(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
10597
+ return doWrap3({ model: wrappedModel, middleware, modelId, providerId });
10598
+ }, model);
10599
+ };
10600
+ var doWrap3 = ({
10601
+ model,
10602
+ middleware: {
10603
+ transformParams,
10604
+ wrapGenerate,
10605
+ overrideProvider,
10606
+ overrideModelId,
10607
+ overrideMaxImagesPerCall
10608
+ },
10609
+ modelId,
10610
+ providerId
10611
+ }) => {
10612
+ var _a16, _b, _c;
10613
+ async function doTransform({ params }) {
10614
+ return transformParams ? await transformParams({ params, model }) : params;
10615
+ }
10616
+ const maxImagesPerCallRaw = (_a16 = overrideMaxImagesPerCall == null ? void 0 : overrideMaxImagesPerCall({ model })) != null ? _a16 : model.maxImagesPerCall;
10617
+ const maxImagesPerCall = maxImagesPerCallRaw instanceof Function ? maxImagesPerCallRaw.bind(model) : maxImagesPerCallRaw;
10618
+ return {
10619
+ specificationVersion: "v3",
10620
+ provider: (_b = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _b : model.provider,
10621
+ modelId: (_c = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _c : model.modelId,
10622
+ maxImagesPerCall,
10623
+ async doGenerate(params) {
10624
+ const transformedParams = await doTransform({ params });
10625
+ const doGenerate = async () => model.doGenerate(transformedParams);
10626
+ return wrapGenerate ? wrapGenerate({
10627
+ doGenerate,
10628
+ params: transformedParams,
10629
+ model
10630
+ }) : doGenerate();
10631
+ }
10632
+ };
10633
+ };
10634
+
10589
10635
  // src/model/as-provider-v3.ts
10590
10636
  function asProviderV3(provider) {
10591
10637
  if ("specificationVersion" in provider && provider.specificationVersion === "v3") {
@@ -10607,7 +10653,8 @@ function asProviderV3(provider) {
10607
10653
  // src/middleware/wrap-provider.ts
10608
10654
  function wrapProvider({
10609
10655
  provider,
10610
- languageModelMiddleware
10656
+ languageModelMiddleware,
10657
+ imageModelMiddleware
10611
10658
  }) {
10612
10659
  const providerV3 = asProviderV3(provider);
10613
10660
  return {
@@ -10617,7 +10664,13 @@ function wrapProvider({
10617
10664
  middleware: languageModelMiddleware
10618
10665
  }),
10619
10666
  embeddingModel: providerV3.embeddingModel,
10620
- imageModel: providerV3.imageModel,
10667
+ imageModel: (modelId) => {
10668
+ let model = providerV3.imageModel(modelId);
10669
+ if (imageModelMiddleware != null) {
10670
+ model = wrapImageModel({ model, middleware: imageModelMiddleware });
10671
+ }
10672
+ return model;
10673
+ },
10621
10674
  transcriptionModel: providerV3.transcriptionModel,
10622
10675
  speechModel: providerV3.speechModel,
10623
10676
  rerankingModel: providerV3.rerankingModel
@@ -10729,11 +10782,13 @@ import {
10729
10782
  } from "@ai-sdk/provider";
10730
10783
  function createProviderRegistry(providers, {
10731
10784
  separator = ":",
10732
- languageModelMiddleware
10785
+ languageModelMiddleware,
10786
+ imageModelMiddleware
10733
10787
  } = {}) {
10734
10788
  const registry = new DefaultProviderRegistry({
10735
10789
  separator,
10736
- languageModelMiddleware
10790
+ languageModelMiddleware,
10791
+ imageModelMiddleware
10737
10792
  });
10738
10793
  for (const [id, provider] of Object.entries(providers)) {
10739
10794
  registry.registerProvider({ id, provider });
@@ -10744,11 +10799,13 @@ var experimental_createProviderRegistry = createProviderRegistry;
10744
10799
  var DefaultProviderRegistry = class {
10745
10800
  constructor({
10746
10801
  separator,
10747
- languageModelMiddleware
10802
+ languageModelMiddleware,
10803
+ imageModelMiddleware
10748
10804
  }) {
10749
10805
  this.providers = {};
10750
10806
  this.separator = separator;
10751
10807
  this.languageModelMiddleware = languageModelMiddleware;
10808
+ this.imageModelMiddleware = imageModelMiddleware;
10752
10809
  }
10753
10810
  registerProvider({
10754
10811
  id,
@@ -10814,10 +10871,16 @@ var DefaultProviderRegistry = class {
10814
10871
  var _a16;
10815
10872
  const [providerId, modelId] = this.splitId(id, "imageModel");
10816
10873
  const provider = this.getProvider(providerId, "imageModel");
10817
- const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
10874
+ let model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
10818
10875
  if (model == null) {
10819
10876
  throw new NoSuchModelError4({ modelId: id, modelType: "imageModel" });
10820
10877
  }
10878
+ if (this.imageModelMiddleware != null) {
10879
+ model = wrapImageModel({
10880
+ model,
10881
+ middleware: this.imageModelMiddleware
10882
+ });
10883
+ }
10821
10884
  return model;
10822
10885
  }
10823
10886
  transcriptionModel(id) {
@@ -11986,6 +12049,7 @@ export {
11986
12049
  userModelMessageSchema,
11987
12050
  validateUIMessages,
11988
12051
  wrapEmbeddingModel,
12052
+ wrapImageModel,
11989
12053
  wrapLanguageModel,
11990
12054
  wrapProvider,
11991
12055
  zodSchema3 as zodSchema