@mux/ai 0.8.0 → 0.8.1

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.d.ts CHANGED
@@ -9,7 +9,7 @@ import '@ai-sdk/anthropic';
9
9
  import '@ai-sdk/google';
10
10
  import '@ai-sdk/openai';
11
11
 
12
- var version = "0.8.0";
12
+ var version = "0.8.1";
13
13
 
14
14
  /**
15
15
  * A function that returns workflow credentials, either synchronously or asynchronously.
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ var __export = (target, all) => {
5
5
  };
6
6
 
7
7
  // package.json
8
- var version = "0.8.0";
8
+ var version = "0.8.1";
9
9
 
10
10
  // src/env.ts
11
11
  import { z } from "zod";
@@ -821,8 +821,44 @@ var DEFAULT_EMBEDDING_MODELS = {
821
821
  var LANGUAGE_MODELS = {
822
822
  openai: ["gpt-5.1", "gpt-5-mini"],
823
823
  anthropic: ["claude-sonnet-4-5"],
824
- google: ["gemini-3-flash-preview", "gemini-2.5-flash"]
824
+ google: ["gemini-3-flash-preview", "gemini-3.1-flash-lite-preview", "gemini-2.5-flash"]
825
825
  };
826
+ var LANGUAGE_MODEL_DEPRECATIONS = [
827
+ {
828
+ provider: "google",
829
+ modelId: "gemini-2.5-flash",
830
+ replacementModelId: "gemini-3.1-flash-lite-preview",
831
+ phase: "warn",
832
+ deprecatedOn: "2026-03-03",
833
+ sunsetOn: "2026-06-30",
834
+ reason: "Gemini 3.1 Flash-Lite Preview offers better quality/latency/cost balance in current evals."
835
+ }
836
+ ];
837
+ var warnedDeprecatedLanguageModels = /* @__PURE__ */ new Set();
838
+ function getLanguageModelDeprecation(provider, modelId) {
839
+ return LANGUAGE_MODEL_DEPRECATIONS.find(
840
+ (deprecation) => deprecation.provider === provider && deprecation.modelId === modelId
841
+ );
842
+ }
843
+ function maybeWarnOrThrowForDeprecatedLanguageModel(provider, modelId) {
844
+ const deprecation = getLanguageModelDeprecation(provider, modelId);
845
+ if (!deprecation) {
846
+ return;
847
+ }
848
+ const replacementText = deprecation.replacementModelId ? ` Use replacement provider="${provider}" model="${deprecation.replacementModelId}" instead.` : "";
849
+ const sunsetText = deprecation.sunsetOn ? ` Planned removal date: ${deprecation.sunsetOn}.` : "";
850
+ const reasonText = deprecation.reason ? ` Reason: ${deprecation.reason}` : "";
851
+ const message = deprecation.phase === "blocked" ? `Language model is no longer supported for provider="${provider}" model="${modelId}".${replacementText}${reasonText}` : `Language model is deprecated and in a grace period for provider="${provider}" model="${modelId}".${replacementText}${sunsetText}${reasonText}`;
852
+ if (deprecation.phase === "blocked") {
853
+ throw new Error(message);
854
+ }
855
+ const warningKey = `${provider}:${modelId}`;
856
+ if (warnedDeprecatedLanguageModels.has(warningKey)) {
857
+ return;
858
+ }
859
+ warnedDeprecatedLanguageModels.add(warningKey);
860
+ console.warn(message);
861
+ }
826
862
  function getDefaultEvalModelConfigs() {
827
863
  return Object.entries(DEFAULT_LANGUAGE_MODELS).map(([provider, modelId]) => ({ provider, modelId }));
828
864
  }
@@ -853,6 +889,7 @@ function parseEvalModelPair(value) {
853
889
  `Unsupported eval model "${modelId}" for provider "${provider}". Supported models: ${supportedModels.join(", ")}.`
854
890
  );
855
891
  }
892
+ maybeWarnOrThrowForDeprecatedLanguageModel(provider, modelId);
856
893
  return {
857
894
  provider,
858
895
  modelId
@@ -896,6 +933,7 @@ var EVAL_MODEL_CONFIGS = resolveEvalModelConfigsFromEnv();
896
933
  function resolveLanguageModelConfig(options = {}) {
897
934
  const provider = options.provider || "openai";
898
935
  const modelId = options.model || DEFAULT_LANGUAGE_MODELS[provider];
936
+ maybeWarnOrThrowForDeprecatedLanguageModel(provider, modelId);
899
937
  return { provider, modelId };
900
938
  }
901
939
  function resolveEmbeddingModelConfig(options = {}) {
@@ -904,6 +942,7 @@ function resolveEmbeddingModelConfig(options = {}) {
904
942
  return { provider, modelId };
905
943
  }
906
944
  async function createLanguageModelFromConfig(provider, modelId, credentials) {
945
+ maybeWarnOrThrowForDeprecatedLanguageModel(provider, modelId);
907
946
  switch (provider) {
908
947
  case "openai": {
909
948
  const apiKey = await resolveProviderApiKey("openai", credentials);