@stll/ai-catalog 0.5.0 → 0.6.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/README.md CHANGED
@@ -24,9 +24,20 @@ The package contains data and validation only. It does not read environment
24
24
  variables, store credentials, or initialize provider SDKs.
25
25
 
26
26
  Model rates are committed in `src/model-rates.gen.ts` so application startup
27
- never depends on a pricing service. Regenerate the snapshot from
28
- [models.dev](https://models.dev) with `bun --filter @stll/ai-catalog gen:rates`;
29
- rate-related pull requests verify the committed output against that source.
27
+ never depends on a pricing service. Rates and capabilities regenerate from
28
+ reduced, committed models.dev and OpenRouter inputs in `upstream/`:
29
+
30
+ ```sh
31
+ bun --filter @stll/ai-catalog gen:rates --from-snapshot
32
+ bun --filter @stll/ai-catalog gen:capabilities --from-snapshot
33
+ ```
34
+
35
+ `--check` verifies these outputs offline, with network fetches blocked.
36
+ To refresh both inputs and outputs from upstream, run `gen:rates --refresh`,
37
+ then `gen:capabilities --from-snapshot`. The scheduled catalog check maintains
38
+ one refresh pull request for both snapshots.
39
+ `gen:capabilities --refresh` rejects before fetching or writing: rates owns the
40
+ shared upstream refresh, and capabilities reads those refreshed inputs.
30
41
  The snapshot covers text input/output, cache reads/writes, and context tiers.
31
42
  Audio pricing is deliberately excluded because Stella does not route audio
32
43
  model input; an unknown models.dev cost field fails generation.
@@ -1,4 +1,4 @@
1
- import { D as ReasoningEffort, a as BYOKProvider } from "./index-D5gnRT1S.js";
1
+ import { O as ReasoningEffort, a as BYOKProvider } from "./index-CfFuexGD.js";
2
2
  //#region src/benchmark-frontier.d.ts
3
3
  export type ModelBenchmarkMeasurement = {
4
4
  sourceModelId: string;
@@ -1,4 +1,4 @@
1
- import { T as OfferedBYOKModelId } from "./index-D5gnRT1S.js";
1
+ import { T as OfferedBYOKModelId } from "./index-CfFuexGD.js";
2
2
  import { ModelBenchmarkMeasurement } from "./benchmark-frontier.js";
3
3
  //#region src/benchmark-sources.d.ts
4
4
  export declare const MODEL_BENCHMARK_NAME = "Text Arena";
@@ -245,6 +245,7 @@ export declare const MODEL_BENCHMARK_SOURCES: {
245
245
  readonly sourceModelId: "gpt-oss-20b";
246
246
  readonly reasoningEffort: null;
247
247
  }];
248
+ readonly "mistral-large-4": readonly [];
248
249
  readonly "mistral-large-latest": readonly [];
249
250
  readonly "mistral-medium-latest": readonly [];
250
251
  readonly "mistral-small-latest": readonly [];
@@ -267,6 +268,7 @@ export declare const MODEL_UNRATED_REASON: {
267
268
  readonly "anthropic/claude-sonnet-4.6": "named_default_effort";
268
269
  readonly "gpt-6.1-sol": "too_new";
269
270
  readonly "claude-sonnet-5-5": "too_new";
271
+ readonly "mistral-large-4": "too_new";
270
272
  readonly "mistral-large-latest": "floating_alias";
271
273
  readonly "mistral-medium-latest": "floating_alias";
272
274
  readonly "mistral-small-latest": "floating_alias";
@@ -1,4 +1,4 @@
1
- import { E as getModelRate, U as MODEL_RATE_UNITS_PER_USD, W as getStandardModelRate } from "./src-Dn6XqN2_.js";
1
+ import { D as getModelRate, G as MODEL_RATE_UNITS_PER_USD, K as getStandardModelRate } from "./src-D8TLQU2R.js";
2
2
  //#region src/benchmark-sources.ts
3
3
  const MODEL_BENCHMARK_NAME = "Text Arena";
4
4
  const MODEL_BENCHMARK_LICENCE = "CC BY 4.0";
@@ -244,6 +244,7 @@ const MODEL_BENCHMARK_SOURCES = {
244
244
  sourceModelId: "gpt-oss-20b",
245
245
  reasoningEffort: null
246
246
  }],
247
+ "mistral-large-4": [],
247
248
  "mistral-large-latest": [],
248
249
  "mistral-medium-latest": [],
249
250
  "mistral-small-latest": []
@@ -270,6 +271,7 @@ const MODEL_UNRATED_REASON = {
270
271
  "anthropic/claude-sonnet-4.6": "named_default_effort",
271
272
  "gpt-6.1-sol": "too_new",
272
273
  "claude-sonnet-5-5": "too_new",
274
+ "mistral-large-4": "too_new",
273
275
  "mistral-large-latest": "floating_alias",
274
276
  "mistral-medium-latest": "floating_alias",
275
277
  "mistral-small-latest": "floating_alias"
@@ -372,6 +372,12 @@ declare const MODEL_RATES: {
372
372
  readonly inputPerMTok: 7000;
373
373
  readonly outputPerMTok: 30000;
374
374
  };
375
+ readonly "mistral-large-4": {
376
+ readonly kind: "flat";
377
+ readonly inputPerMTok: 68000;
378
+ readonly outputPerMTok: 209000;
379
+ readonly cachedInputPerMTok: 7000;
380
+ };
375
381
  readonly "mistral-large-latest": {
376
382
  readonly kind: "flat";
377
383
  readonly inputPerMTok: 50000;
@@ -472,6 +478,26 @@ declare const RETAINED_MODELS_DEV_RATE_ENTRIES: {
472
478
  * map is empty whenever upstream covers every offered ID.
473
479
  */
474
480
  declare const MODELS_DEV_RATE_SOURCE_ALIASES: {};
481
+ type ModelsDevCostField = "cache_read" | "cache_write" | "input" | "output";
482
+ type ReviewedModelRateCorrection = {
483
+ field: ModelsDevCostField;
484
+ /** The exact upstream USD value being corrected; any other value fails. */
485
+ upstreamUsd: number;
486
+ /** The provider-published USD price per million tokens. */
487
+ correctedUsd: number;
488
+ /** Why the upstream value is wrong. Dated. */
489
+ reason: string;
490
+ sourceUrl: string;
491
+ };
492
+ /**
493
+ * Reviewed corrections where models.dev disagrees with the provider's own
494
+ * published price, keyed by `<models.dev provider>:<models.dev model ID>`.
495
+ * Each entry pins the exact upstream value it replaces, so generation fails
496
+ * once models.dev changes that value (fixed or changed again) and the entry
497
+ * must be deleted or re-reviewed. Generation also rejects an entry whose
498
+ * source no rated model uses.
499
+ */
500
+ declare const MODELS_DEV_RATE_CORRECTIONS: Readonly<Record<string, readonly ReviewedModelRateCorrection[]>>;
475
501
  //#endregion
476
502
  //#region src/capabilities-overrides.d.ts
477
503
  /**
@@ -593,6 +619,7 @@ declare const MODEL_IMAGE_INPUT_CAPABILITIES: {
593
619
  readonly "openai.gpt-oss-20b-1:0": "unsupported";
594
620
  };
595
621
  readonly mistral: {
622
+ readonly "mistral-large-4": "supported";
596
623
  readonly "mistral-large-latest": "supported";
597
624
  readonly "mistral-medium-latest": "supported";
598
625
  readonly "mistral-small-latest": "supported";
@@ -663,6 +690,7 @@ declare const MODEL_REASONING_EFFORTS: {
663
690
  readonly "us.amazon.nova-micro-v1:0": null;
664
691
  readonly "openai.gpt-oss-120b-1:0": readonly ["low", "medium", "high"];
665
692
  readonly "openai.gpt-oss-20b-1:0": readonly ["low", "medium", "high"];
693
+ readonly "mistral-large-4": readonly ["none", "high"];
666
694
  readonly "mistral-large-latest": null;
667
695
  readonly "mistral-medium-latest": readonly ["none", "high"];
668
696
  readonly "mistral-small-latest": readonly ["none", "high"];
@@ -731,6 +759,7 @@ declare const MODEL_DEFAULT_REASONING_EFFORTS: {
731
759
  readonly "us.amazon.nova-micro-v1:0": null;
732
760
  readonly "openai.gpt-oss-120b-1:0": null;
733
761
  readonly "openai.gpt-oss-20b-1:0": null;
762
+ readonly "mistral-large-4": null;
734
763
  readonly "mistral-large-latest": null;
735
764
  readonly "mistral-medium-latest": null;
736
765
  readonly "mistral-small-latest": null;
@@ -762,10 +791,10 @@ declare const MODEL_TEMPERATURE_POLICIES: {
762
791
  readonly "google/gemini-3.1-pro-preview": "emit";
763
792
  readonly "google/gemini-3.5-flash": "emit";
764
793
  readonly "google/gemini-3.1-flash-lite": "emit";
765
- readonly "anthropic/claude-sonnet-5.5": "emit";
794
+ readonly "anthropic/claude-sonnet-5.5": "omit";
766
795
  readonly "anthropic/claude-sonnet-5": "omit";
767
- readonly "anthropic/claude-opus-5": "emit";
768
- readonly "anthropic/claude-opus-4.8": "emit";
796
+ readonly "anthropic/claude-opus-5": "omit";
797
+ readonly "anthropic/claude-opus-4.8": "omit";
769
798
  readonly "anthropic/claude-sonnet-4.6": "emit";
770
799
  readonly "openai/gpt-5.5": "omit";
771
800
  readonly "openai/gpt-5.4-mini": "omit";
@@ -799,6 +828,7 @@ declare const MODEL_TEMPERATURE_POLICIES: {
799
828
  readonly "us.amazon.nova-micro-v1:0": "emit";
800
829
  readonly "openai.gpt-oss-120b-1:0": "emit";
801
830
  readonly "openai.gpt-oss-20b-1:0": "emit";
831
+ readonly "mistral-large-4": "emit";
802
832
  readonly "mistral-large-latest": "emit";
803
833
  readonly "mistral-medium-latest": "emit";
804
834
  readonly "mistral-small-latest": "emit";
@@ -867,6 +897,7 @@ declare const MODEL_OUTPUT_TOKEN_LIMITS: {
867
897
  readonly "us.amazon.nova-micro-v1:0": 10000;
868
898
  readonly "openai.gpt-oss-120b-1:0": 128000;
869
899
  readonly "openai.gpt-oss-20b-1:0": 128000;
900
+ readonly "mistral-large-4": 262144;
870
901
  readonly "mistral-large-latest": 262144;
871
902
  readonly "mistral-medium-latest": 262144;
872
903
  readonly "mistral-small-latest": 256000;
@@ -1039,10 +1070,10 @@ declare const DEFAULT_MODELS: {
1039
1070
  declare const BYOK_MODEL_OPTIONS: {
1040
1071
  readonly google: readonly ["gemini-3.8-flash", "gemini-3.7-flash", "gemini-3.6-flash", "gemini-3.5-flash-lite", "gemini-3.1-pro-preview", "gemini-3.5-flash", "gemini-3.1-flash-lite"];
1041
1072
  readonly anthropic: readonly ["claude-sonnet-5-5", "claude-sonnet-5", "claude-fable-5-1", "claude-fable-5", "claude-opus-5-5", "claude-opus-5", "claude-opus-4-8", "claude-opus-4-7", "claude-sonnet-4-6", "claude-opus-4-6", "claude-haiku-4-5-20251001"];
1042
- readonly openai: readonly [...("gpt-6-astra" | "gpt-6-sol" | "gpt-6-luna" | "gpt-5.6" | "gpt-5.6-terra" | "gpt-5.6-luna" | "gpt-6.1-sol")[], "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.2"];
1043
- readonly openrouter: readonly [...("openai/gpt-6-astra" | "openai/gpt-6-sol" | "openai/gpt-6-luna" | "openai/gpt-5.6-sol" | "openai/gpt-5.6-terra" | "openai/gpt-5.6-luna" | "openai/gpt-6.1-sol")[], "google/gemini-3.8-flash", "google/gemini-3.7-flash", "google/gemini-3.6-flash", "google/gemini-3.5-flash-lite", "google/gemini-3.1-pro-preview", "google/gemini-3.5-flash", "google/gemini-3.1-flash-lite", "anthropic/claude-sonnet-5.5", "anthropic/claude-sonnet-5", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
1073
+ readonly openai: readonly [...("gpt-6.1-sol" | "gpt-6-astra" | "gpt-6-sol" | "gpt-6-luna" | "gpt-5.6" | "gpt-5.6-terra" | "gpt-5.6-luna")[], "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.2"];
1074
+ readonly openrouter: readonly [...("openai/gpt-6.1-sol" | "openai/gpt-6-astra" | "openai/gpt-6-sol" | "openai/gpt-6-luna" | "openai/gpt-5.6-sol" | "openai/gpt-5.6-terra" | "openai/gpt-5.6-luna")[], "google/gemini-3.8-flash", "google/gemini-3.7-flash", "google/gemini-3.6-flash", "google/gemini-3.5-flash-lite", "google/gemini-3.1-pro-preview", "google/gemini-3.5-flash", "google/gemini-3.1-flash-lite", "anthropic/claude-sonnet-5.5", "anthropic/claude-sonnet-5", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
1044
1075
  readonly bedrock: readonly ["us.anthropic.claude-sonnet-4-5-20250929-v1:0", "us.anthropic.claude-haiku-4-5-20251001-v1:0", "us.amazon.nova-pro-v1:0", "us.amazon.nova-lite-v1:0", "us.amazon.nova-micro-v1:0", "openai.gpt-oss-120b-1:0", "openai.gpt-oss-20b-1:0"];
1045
- readonly mistral: readonly ["mistral-large-latest", "mistral-medium-latest", "mistral-small-latest"];
1076
+ readonly mistral: readonly ["mistral-large-4", "mistral-large-latest", "mistral-medium-latest", "mistral-small-latest"];
1046
1077
  };
1047
1078
  type BYOKProvider = keyof typeof BYOK_MODEL_OPTIONS;
1048
1079
  type BYOKModelIdByProvider = { [TProvider in BYOKProvider]: (typeof BYOK_MODEL_OPTIONS)[TProvider][number]; };
@@ -1052,7 +1083,19 @@ type ModelDisplayMetadata = {
1052
1083
  displayName: string;
1053
1084
  /** Brand mark to show. This may differ from the routing provider. */
1054
1085
  iconProvider: BYOKProvider;
1086
+ /**
1087
+ * A newer model of the same line, preferably on the same route. A superseded
1088
+ * model stays selectable but is never recommended.
1089
+ */
1090
+ supersededBy?: string;
1055
1091
  };
1092
+ /**
1093
+ * The chat model picker's Recommended section: a reviewed, curated list of
1094
+ * the latest generation per maker. Benchmarks inform ordering and hints but
1095
+ * never pick these. Every route to a listed model qualifies; a listed model
1096
+ * must not be superseded (model-lineage.test.ts).
1097
+ */
1098
+ declare const RECOMMENDED_CHAT_MODELS: readonly ["claude-opus-5-5", "gpt-6.1-sol", "gpt-6-luna", "gemini-3.8-flash"];
1056
1099
  /**
1057
1100
  * Presentation metadata for every offered model. Keeping this exhaustive beside
1058
1101
  * the allowlist prevents a newly offered model from leaking a raw provider ID
@@ -1067,10 +1110,12 @@ declare const MODEL_DISPLAY_METADATA: {
1067
1110
  readonly "gemini-3.7-flash": {
1068
1111
  readonly displayName: "Gemini 3.7 Flash";
1069
1112
  readonly iconProvider: "google";
1113
+ readonly supersededBy: "gemini-3.8-flash";
1070
1114
  };
1071
1115
  readonly "gemini-3.6-flash": {
1072
1116
  readonly displayName: "Gemini 3.6 Flash";
1073
1117
  readonly iconProvider: "google";
1118
+ readonly supersededBy: "gemini-3.8-flash";
1074
1119
  };
1075
1120
  readonly "gemini-3.5-flash-lite": {
1076
1121
  readonly displayName: "Gemini 3.5 Flash Lite";
@@ -1083,10 +1128,12 @@ declare const MODEL_DISPLAY_METADATA: {
1083
1128
  readonly "gemini-3.5-flash": {
1084
1129
  readonly displayName: "Gemini 3.5 Flash";
1085
1130
  readonly iconProvider: "google";
1131
+ readonly supersededBy: "gemini-3.8-flash";
1086
1132
  };
1087
1133
  readonly "gemini-3.1-flash-lite": {
1088
1134
  readonly displayName: "Gemini 3.1 Flash Lite";
1089
1135
  readonly iconProvider: "google";
1136
+ readonly supersededBy: "gemini-3.5-flash-lite";
1090
1137
  };
1091
1138
  readonly "claude-sonnet-5-5": {
1092
1139
  readonly displayName: "Claude Sonnet 5.5";
@@ -1095,6 +1142,7 @@ declare const MODEL_DISPLAY_METADATA: {
1095
1142
  readonly "claude-sonnet-5": {
1096
1143
  readonly displayName: "Claude Sonnet 5";
1097
1144
  readonly iconProvider: "anthropic";
1145
+ readonly supersededBy: "claude-sonnet-5-5";
1098
1146
  };
1099
1147
  readonly "claude-fable-5-1": {
1100
1148
  readonly displayName: "Claude Fable 5.1";
@@ -1103,6 +1151,7 @@ declare const MODEL_DISPLAY_METADATA: {
1103
1151
  readonly "claude-fable-5": {
1104
1152
  readonly displayName: "Claude Fable 5";
1105
1153
  readonly iconProvider: "anthropic";
1154
+ readonly supersededBy: "claude-fable-5-1";
1106
1155
  };
1107
1156
  readonly "claude-opus-5-5": {
1108
1157
  readonly displayName: "Claude Opus 5.5";
@@ -1111,22 +1160,27 @@ declare const MODEL_DISPLAY_METADATA: {
1111
1160
  readonly "claude-opus-5": {
1112
1161
  readonly displayName: "Claude Opus 5";
1113
1162
  readonly iconProvider: "anthropic";
1163
+ readonly supersededBy: "claude-opus-5-5";
1114
1164
  };
1115
1165
  readonly "claude-opus-4-8": {
1116
1166
  readonly displayName: "Claude Opus 4.8";
1117
1167
  readonly iconProvider: "anthropic";
1168
+ readonly supersededBy: "claude-opus-5-5";
1118
1169
  };
1119
1170
  readonly "claude-opus-4-7": {
1120
1171
  readonly displayName: "Claude Opus 4.7";
1121
1172
  readonly iconProvider: "anthropic";
1173
+ readonly supersededBy: "claude-opus-5-5";
1122
1174
  };
1123
1175
  readonly "claude-sonnet-4-6": {
1124
1176
  readonly displayName: "Claude Sonnet 4.6";
1125
1177
  readonly iconProvider: "anthropic";
1178
+ readonly supersededBy: "claude-sonnet-5-5";
1126
1179
  };
1127
1180
  readonly "claude-opus-4-6": {
1128
1181
  readonly displayName: "Claude Opus 4.6";
1129
1182
  readonly iconProvider: "anthropic";
1183
+ readonly supersededBy: "claude-opus-5-5";
1130
1184
  };
1131
1185
  readonly "claude-haiku-4-5-20251001": {
1132
1186
  readonly displayName: "Claude Haiku 4.5";
@@ -1143,6 +1197,7 @@ declare const MODEL_DISPLAY_METADATA: {
1143
1197
  readonly "gpt-6-sol": {
1144
1198
  readonly displayName: "GPT-6 Sol";
1145
1199
  readonly iconProvider: "openai";
1200
+ readonly supersededBy: "gpt-6.1-sol";
1146
1201
  };
1147
1202
  readonly "gpt-6-luna": {
1148
1203
  readonly displayName: "GPT-6 Luna";
@@ -1151,6 +1206,7 @@ declare const MODEL_DISPLAY_METADATA: {
1151
1206
  readonly "gpt-5.6": {
1152
1207
  readonly displayName: "GPT-5.6 Sol";
1153
1208
  readonly iconProvider: "openai";
1209
+ readonly supersededBy: "gpt-6.1-sol";
1154
1210
  };
1155
1211
  readonly "gpt-5.6-terra": {
1156
1212
  readonly displayName: "GPT-5.6 Terra";
@@ -1159,6 +1215,7 @@ declare const MODEL_DISPLAY_METADATA: {
1159
1215
  readonly "gpt-5.6-luna": {
1160
1216
  readonly displayName: "GPT-5.6 Luna";
1161
1217
  readonly iconProvider: "openai";
1218
+ readonly supersededBy: "gpt-6-luna";
1162
1219
  };
1163
1220
  readonly "gpt-5.5": {
1164
1221
  readonly displayName: "GPT-5.5";
@@ -1167,6 +1224,7 @@ declare const MODEL_DISPLAY_METADATA: {
1167
1224
  readonly "gpt-5.4": {
1168
1225
  readonly displayName: "GPT-5.4";
1169
1226
  readonly iconProvider: "openai";
1227
+ readonly supersededBy: "gpt-5.5";
1170
1228
  };
1171
1229
  readonly "gpt-5.4-mini": {
1172
1230
  readonly displayName: "GPT-5.4 Mini";
@@ -1179,6 +1237,7 @@ declare const MODEL_DISPLAY_METADATA: {
1179
1237
  readonly "gpt-5.2": {
1180
1238
  readonly displayName: "GPT-5.2";
1181
1239
  readonly iconProvider: "openai";
1240
+ readonly supersededBy: "gpt-5.5";
1182
1241
  };
1183
1242
  readonly "openai/gpt-6.1-sol": {
1184
1243
  readonly displayName: "GPT-6.1 Sol";
@@ -1191,6 +1250,7 @@ declare const MODEL_DISPLAY_METADATA: {
1191
1250
  readonly "openai/gpt-6-sol": {
1192
1251
  readonly displayName: "GPT-6 Sol";
1193
1252
  readonly iconProvider: "openai";
1253
+ readonly supersededBy: "openai/gpt-6.1-sol";
1194
1254
  };
1195
1255
  readonly "openai/gpt-6-luna": {
1196
1256
  readonly displayName: "GPT-6 Luna";
@@ -1199,10 +1259,12 @@ declare const MODEL_DISPLAY_METADATA: {
1199
1259
  readonly "openai/gpt-5.6-sol": {
1200
1260
  readonly displayName: "GPT-5.6 Sol";
1201
1261
  readonly iconProvider: "openai";
1262
+ readonly supersededBy: "openai/gpt-6.1-sol";
1202
1263
  };
1203
1264
  readonly "openai/gpt-5.6-luna": {
1204
1265
  readonly displayName: "GPT-5.6 Luna";
1205
1266
  readonly iconProvider: "openai";
1267
+ readonly supersededBy: "openai/gpt-6-luna";
1206
1268
  };
1207
1269
  readonly "openai/gpt-5.6-terra": {
1208
1270
  readonly displayName: "GPT-5.6 Terra";
@@ -1215,10 +1277,12 @@ declare const MODEL_DISPLAY_METADATA: {
1215
1277
  readonly "google/gemini-3.7-flash": {
1216
1278
  readonly displayName: "Gemini 3.7 Flash";
1217
1279
  readonly iconProvider: "google";
1280
+ readonly supersededBy: "google/gemini-3.8-flash";
1218
1281
  };
1219
1282
  readonly "google/gemini-3.6-flash": {
1220
1283
  readonly displayName: "Gemini 3.6 Flash";
1221
1284
  readonly iconProvider: "google";
1285
+ readonly supersededBy: "google/gemini-3.8-flash";
1222
1286
  };
1223
1287
  readonly "google/gemini-3.5-flash-lite": {
1224
1288
  readonly displayName: "Gemini 3.5 Flash Lite";
@@ -1231,10 +1295,12 @@ declare const MODEL_DISPLAY_METADATA: {
1231
1295
  readonly "google/gemini-3.5-flash": {
1232
1296
  readonly displayName: "Gemini 3.5 Flash";
1233
1297
  readonly iconProvider: "google";
1298
+ readonly supersededBy: "google/gemini-3.8-flash";
1234
1299
  };
1235
1300
  readonly "google/gemini-3.1-flash-lite": {
1236
1301
  readonly displayName: "Gemini 3.1 Flash Lite";
1237
1302
  readonly iconProvider: "google";
1303
+ readonly supersededBy: "google/gemini-3.5-flash-lite";
1238
1304
  };
1239
1305
  readonly "anthropic/claude-sonnet-5.5": {
1240
1306
  readonly displayName: "Claude Sonnet 5.5";
@@ -1243,18 +1309,22 @@ declare const MODEL_DISPLAY_METADATA: {
1243
1309
  readonly "anthropic/claude-sonnet-5": {
1244
1310
  readonly displayName: "Claude Sonnet 5";
1245
1311
  readonly iconProvider: "anthropic";
1312
+ readonly supersededBy: "anthropic/claude-sonnet-5.5";
1246
1313
  };
1247
1314
  readonly "anthropic/claude-opus-5": {
1248
1315
  readonly displayName: "Claude Opus 5";
1249
1316
  readonly iconProvider: "anthropic";
1317
+ readonly supersededBy: "claude-opus-5-5";
1250
1318
  };
1251
1319
  readonly "anthropic/claude-opus-4.8": {
1252
1320
  readonly displayName: "Claude Opus 4.8";
1253
1321
  readonly iconProvider: "anthropic";
1322
+ readonly supersededBy: "claude-opus-5-5";
1254
1323
  };
1255
1324
  readonly "anthropic/claude-sonnet-4.6": {
1256
1325
  readonly displayName: "Claude Sonnet 4.6";
1257
1326
  readonly iconProvider: "anthropic";
1327
+ readonly supersededBy: "anthropic/claude-sonnet-5.5";
1258
1328
  };
1259
1329
  readonly "openai/gpt-5.5": {
1260
1330
  readonly displayName: "GPT-5.5";
@@ -1267,6 +1337,7 @@ declare const MODEL_DISPLAY_METADATA: {
1267
1337
  readonly "us.anthropic.claude-sonnet-4-5-20250929-v1:0": {
1268
1338
  readonly displayName: "Claude Sonnet 4.5";
1269
1339
  readonly iconProvider: "anthropic";
1340
+ readonly supersededBy: "claude-sonnet-5-5";
1270
1341
  };
1271
1342
  readonly "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
1272
1343
  readonly displayName: "Claude Haiku 4.5";
@@ -1292,6 +1363,10 @@ declare const MODEL_DISPLAY_METADATA: {
1292
1363
  readonly displayName: "GPT OSS 20B";
1293
1364
  readonly iconProvider: "openai";
1294
1365
  };
1366
+ readonly "mistral-large-4": {
1367
+ readonly displayName: "Mistral Large 4";
1368
+ readonly iconProvider: "mistral";
1369
+ };
1295
1370
  readonly "mistral-large-latest": {
1296
1371
  readonly displayName: "Mistral Large";
1297
1372
  readonly iconProvider: "mistral";
@@ -1519,6 +1594,7 @@ declare const MODEL_STREAMING_TOOL_USE: {
1519
1594
  readonly "us.amazon.nova-micro-v1:0": "supported";
1520
1595
  readonly "openai.gpt-oss-120b-1:0": "supported";
1521
1596
  readonly "openai.gpt-oss-20b-1:0": "supported";
1597
+ readonly "mistral-large-4": "supported";
1522
1598
  readonly "mistral-large-latest": "supported";
1523
1599
  readonly "mistral-medium-latest": "supported";
1524
1600
  readonly "mistral-small-latest": "supported";
@@ -1614,6 +1690,7 @@ declare const CONTEXT_WINDOW_TOKENS: {
1614
1690
  readonly "claude-fable-5": 200000;
1615
1691
  readonly "claude-fable-5-1": 1000000;
1616
1692
  readonly "mistral-small-latest": 128000;
1693
+ readonly "mistral-large-4": 524288;
1617
1694
  readonly "mistral-large-latest": 128000;
1618
1695
  readonly "mistral-medium-latest": 128000;
1619
1696
  readonly "mistral-medium-3-5": 128000;
@@ -1661,4 +1738,4 @@ declare const DEFAULT_CONTEXT_WINDOW_TOKENS = 128000;
1661
1738
  */
1662
1739
  declare const getContextWindowTokens: (modelId: string) => number;
1663
1740
  //#endregion
1664
- export { MODEL_OUTPUT_TOKEN_LIMITS as $, STREAMING_TOOL_USE_SUPPORTS as A, getModelRate as B, ModelDisplayMetadata as C, ReasoningEffort as D, REASONING_EFFORTS as E, TemperaturePolicy as F, isChatPdfAttachmentModelSupported as G, getOutputTokenLimit as H, getContextWindowTokens as I, resolveWorkingBYOKModelForRole as J, normalizeModelCatalogId as K, getModelDefaultReasoningEffort as L, TANSTACK_AI_PROVIDERS as M, TEMPERATURE_POLICIES as N, ResolveReasoningEffortOptions as O, TanStackAIProvider as P, MODEL_IMAGE_INPUT_CAPABILITIES as Q, getModelDisplayMetadata as R, MODEL_STREAMING_TOOL_USE as S, OfferedBYOKModelId as T, isBYOKModelRoleSupported as U, getModelReasoningEfforts as V, isBYOKProviderRoleSupported as W, supportsStreamingToolUse as X, shouldEmitTemperature as Y, MODEL_DEFAULT_REASONING_EFFORTS as Z, ImageInputCapability as _, getStandardModelRate as _t, BYOKProvider as a, CapabilityOverride as at, MODEL_DISPLAY_METADATA as b, BYOK_MODEL_OPTIONS as c, ImageInputOverrides as ct, DEFAULT_CONTEXT_WINDOW_TOKENS as d, ModelsDevRateProvider as dt, MODEL_REASONING_EFFORTS as et, DEFAULT_MODELS as f, RETAINED_MODELS_DEV_RATE_ENTRIES as ft, IMAGE_INPUT_CAPABILITIES as g, ModelRateAmounts as gt, FirstPartyModelProvider as h, ModelRate as ht, BYOKModelIdByProvider as i, CAPABILITY_OVERRIDES as it, StreamingToolUseSupport as j, ResolvedReasoningEffort as k, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS as l, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER as lt, FIRST_PARTY_MODEL_PROVIDERS as m, MODEL_RATE_UNITS_PER_USD as mt, AI_PROVIDERS as n, DOCUMENT_INPUT_OVERRIDES as nt, BYOK_DEFAULT_MODELS as o, IMAGE_INPUT_OVERRIDES as ot, FALLBACK_CHAT_MODEL_BY_PROVIDER as p, MODEL_RATES as pt, resolveReasoningEffort as q, ANTHROPIC_ADAPTIVE_THINKING_MODELS as r, DocumentInputOverride as rt, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS as s, ImageInputOverride as st, AIProvider as t, MODEL_TEMPERATURE_POLICIES as tt, CONTEXT_WINDOW_TOKENS as u, MODELS_DEV_RATE_SOURCE_ALIASES as ut, MODEL_CATALOG_ID_ALIASES as v, resolveModelRate as vt, ModelRole as w, MODEL_ROLES as x, MODEL_CATALOG_PROVIDER_KIND as y, getModelImageInputCapability as z };
1741
+ export { MODEL_IMAGE_INPUT_CAPABILITIES as $, ResolvedReasoningEffort as A, getModelImageInputCapability as B, ModelDisplayMetadata as C, RECOMMENDED_CHAT_MODELS as D, REASONING_EFFORTS as E, TanStackAIProvider as F, isBYOKProviderRoleSupported as G, getModelReasoningEfforts as H, TemperaturePolicy as I, resolveReasoningEffort as J, isChatPdfAttachmentModelSupported as K, getContextWindowTokens as L, StreamingToolUseSupport as M, TANSTACK_AI_PROVIDERS as N, ReasoningEffort as O, TEMPERATURE_POLICIES as P, MODEL_DEFAULT_REASONING_EFFORTS as Q, getModelDefaultReasoningEffort as R, MODEL_STREAMING_TOOL_USE as S, OfferedBYOKModelId as T, getOutputTokenLimit as U, getModelRate as V, isBYOKModelRoleSupported as W, shouldEmitTemperature as X, resolveWorkingBYOKModelForRole as Y, supportsStreamingToolUse as Z, ImageInputCapability as _, ModelRate as _t, BYOKProvider as a, CAPABILITY_OVERRIDES as at, MODEL_DISPLAY_METADATA as b, resolveModelRate as bt, BYOK_MODEL_OPTIONS as c, ImageInputOverride as ct, DEFAULT_CONTEXT_WINDOW_TOKENS as d, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER as dt, MODEL_OUTPUT_TOKEN_LIMITS as et, DEFAULT_MODELS as f, MODELS_DEV_RATE_SOURCE_ALIASES as ft, IMAGE_INPUT_CAPABILITIES as g, MODEL_RATE_UNITS_PER_USD as gt, FirstPartyModelProvider as h, MODEL_RATES as ht, BYOKModelIdByProvider as i, DocumentInputOverride as it, STREAMING_TOOL_USE_SUPPORTS as j, ResolveReasoningEffortOptions as k, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS as l, ImageInputOverrides as lt, FIRST_PARTY_MODEL_PROVIDERS as m, RETAINED_MODELS_DEV_RATE_ENTRIES as mt, AI_PROVIDERS as n, MODEL_TEMPERATURE_POLICIES as nt, BYOK_DEFAULT_MODELS as o, CapabilityOverride as ot, FALLBACK_CHAT_MODEL_BY_PROVIDER as p, ModelsDevRateProvider as pt, normalizeModelCatalogId as q, ANTHROPIC_ADAPTIVE_THINKING_MODELS as r, DOCUMENT_INPUT_OVERRIDES as rt, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS as s, IMAGE_INPUT_OVERRIDES as st, AIProvider as t, MODEL_REASONING_EFFORTS as tt, CONTEXT_WINDOW_TOKENS as u, MODELS_DEV_RATE_CORRECTIONS as ut, MODEL_CATALOG_ID_ALIASES as v, ModelRateAmounts as vt, ModelRole as w, MODEL_ROLES as x, MODEL_CATALOG_PROVIDER_KIND as y, getStandardModelRate as yt, getModelDisplayMetadata as z };
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as MODEL_OUTPUT_TOKEN_LIMITS, A as STREAMING_TOOL_USE_SUPPORTS, B as getModelRate, C as ModelDisplayMetadata, D as ReasoningEffort, E as REASONING_EFFORTS, F as TemperaturePolicy, G as isChatPdfAttachmentModelSupported, H as getOutputTokenLimit, I as getContextWindowTokens, J as resolveWorkingBYOKModelForRole, K as normalizeModelCatalogId, L as getModelDefaultReasoningEffort, M as TANSTACK_AI_PROVIDERS, N as TEMPERATURE_POLICIES, O as ResolveReasoningEffortOptions, P as TanStackAIProvider, Q as MODEL_IMAGE_INPUT_CAPABILITIES, R as getModelDisplayMetadata, S as MODEL_STREAMING_TOOL_USE, T as OfferedBYOKModelId, U as isBYOKModelRoleSupported, V as getModelReasoningEfforts, W as isBYOKProviderRoleSupported, X as supportsStreamingToolUse, Y as shouldEmitTemperature, Z as MODEL_DEFAULT_REASONING_EFFORTS, _ as ImageInputCapability, _t as getStandardModelRate, a as BYOKProvider, at as CapabilityOverride, b as MODEL_DISPLAY_METADATA, c as BYOK_MODEL_OPTIONS, ct as ImageInputOverrides, d as DEFAULT_CONTEXT_WINDOW_TOKENS, dt as ModelsDevRateProvider, et as MODEL_REASONING_EFFORTS, f as DEFAULT_MODELS, ft as RETAINED_MODELS_DEV_RATE_ENTRIES, g as IMAGE_INPUT_CAPABILITIES, gt as ModelRateAmounts, h as FirstPartyModelProvider, ht as ModelRate, i as BYOKModelIdByProvider, it as CAPABILITY_OVERRIDES, j as StreamingToolUseSupport, k as ResolvedReasoningEffort, l as CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, lt as MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, m as FIRST_PARTY_MODEL_PROVIDERS, mt as MODEL_RATE_UNITS_PER_USD, n as AI_PROVIDERS, nt as DOCUMENT_INPUT_OVERRIDES, o as BYOK_DEFAULT_MODELS, ot as IMAGE_INPUT_OVERRIDES, p as FALLBACK_CHAT_MODEL_BY_PROVIDER, pt as MODEL_RATES, q as resolveReasoningEffort, r as ANTHROPIC_ADAPTIVE_THINKING_MODELS, rt as DocumentInputOverride, s as BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, st as ImageInputOverride, t as AIProvider, tt as MODEL_TEMPERATURE_POLICIES, u as CONTEXT_WINDOW_TOKENS, ut as MODELS_DEV_RATE_SOURCE_ALIASES, v as MODEL_CATALOG_ID_ALIASES, vt as resolveModelRate, w as ModelRole, x as MODEL_ROLES, y as MODEL_CATALOG_PROVIDER_KIND, z as getModelImageInputCapability } from "./index-D5gnRT1S.js";
2
- export { AIProvider, AI_PROVIDERS, ANTHROPIC_ADAPTIVE_THINKING_MODELS, BYOKModelIdByProvider, BYOKProvider, BYOK_DEFAULT_MODELS, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, BYOK_MODEL_OPTIONS, CAPABILITY_OVERRIDES, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, CONTEXT_WINDOW_TOKENS, type CapabilityOverride, DEFAULT_CONTEXT_WINDOW_TOKENS, DEFAULT_MODELS, DOCUMENT_INPUT_OVERRIDES, type DocumentInputOverride, FALLBACK_CHAT_MODEL_BY_PROVIDER, FIRST_PARTY_MODEL_PROVIDERS, FirstPartyModelProvider, IMAGE_INPUT_CAPABILITIES, IMAGE_INPUT_OVERRIDES, ImageInputCapability, type ImageInputOverride, type ImageInputOverrides, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, MODELS_DEV_RATE_SOURCE_ALIASES, MODEL_CATALOG_ID_ALIASES, MODEL_CATALOG_PROVIDER_KIND, MODEL_DEFAULT_REASONING_EFFORTS, MODEL_DISPLAY_METADATA, MODEL_IMAGE_INPUT_CAPABILITIES, MODEL_OUTPUT_TOKEN_LIMITS, MODEL_RATES, MODEL_RATE_UNITS_PER_USD, MODEL_REASONING_EFFORTS, MODEL_ROLES, MODEL_STREAMING_TOOL_USE, MODEL_TEMPERATURE_POLICIES, ModelDisplayMetadata, type ModelRate, type ModelRateAmounts, ModelRole, type ModelsDevRateProvider, OfferedBYOKModelId, REASONING_EFFORTS, RETAINED_MODELS_DEV_RATE_ENTRIES, ReasoningEffort, ResolveReasoningEffortOptions, ResolvedReasoningEffort, STREAMING_TOOL_USE_SUPPORTS, StreamingToolUseSupport, TANSTACK_AI_PROVIDERS, TEMPERATURE_POLICIES, TanStackAIProvider, TemperaturePolicy, getContextWindowTokens, getModelDefaultReasoningEffort, getModelDisplayMetadata, getModelImageInputCapability, getModelRate, getModelReasoningEfforts, getOutputTokenLimit, getStandardModelRate, isBYOKModelRoleSupported, isBYOKProviderRoleSupported, isChatPdfAttachmentModelSupported, normalizeModelCatalogId, resolveModelRate, resolveReasoningEffort, resolveWorkingBYOKModelForRole, shouldEmitTemperature, supportsStreamingToolUse };
1
+ import { $ as MODEL_IMAGE_INPUT_CAPABILITIES, A as ResolvedReasoningEffort, B as getModelImageInputCapability, C as ModelDisplayMetadata, D as RECOMMENDED_CHAT_MODELS, E as REASONING_EFFORTS, F as TanStackAIProvider, G as isBYOKProviderRoleSupported, H as getModelReasoningEfforts, I as TemperaturePolicy, J as resolveReasoningEffort, K as isChatPdfAttachmentModelSupported, L as getContextWindowTokens, M as StreamingToolUseSupport, N as TANSTACK_AI_PROVIDERS, O as ReasoningEffort, P as TEMPERATURE_POLICIES, Q as MODEL_DEFAULT_REASONING_EFFORTS, R as getModelDefaultReasoningEffort, S as MODEL_STREAMING_TOOL_USE, T as OfferedBYOKModelId, U as getOutputTokenLimit, V as getModelRate, W as isBYOKModelRoleSupported, X as shouldEmitTemperature, Y as resolveWorkingBYOKModelForRole, Z as supportsStreamingToolUse, _ as ImageInputCapability, _t as ModelRate, a as BYOKProvider, at as CAPABILITY_OVERRIDES, b as MODEL_DISPLAY_METADATA, bt as resolveModelRate, c as BYOK_MODEL_OPTIONS, ct as ImageInputOverride, d as DEFAULT_CONTEXT_WINDOW_TOKENS, dt as MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, et as MODEL_OUTPUT_TOKEN_LIMITS, f as DEFAULT_MODELS, ft as MODELS_DEV_RATE_SOURCE_ALIASES, g as IMAGE_INPUT_CAPABILITIES, gt as MODEL_RATE_UNITS_PER_USD, h as FirstPartyModelProvider, ht as MODEL_RATES, i as BYOKModelIdByProvider, it as DocumentInputOverride, j as STREAMING_TOOL_USE_SUPPORTS, k as ResolveReasoningEffortOptions, l as CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, lt as ImageInputOverrides, m as FIRST_PARTY_MODEL_PROVIDERS, mt as RETAINED_MODELS_DEV_RATE_ENTRIES, n as AI_PROVIDERS, nt as MODEL_TEMPERATURE_POLICIES, o as BYOK_DEFAULT_MODELS, ot as CapabilityOverride, p as FALLBACK_CHAT_MODEL_BY_PROVIDER, pt as ModelsDevRateProvider, q as normalizeModelCatalogId, r as ANTHROPIC_ADAPTIVE_THINKING_MODELS, rt as DOCUMENT_INPUT_OVERRIDES, s as BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, st as IMAGE_INPUT_OVERRIDES, t as AIProvider, tt as MODEL_REASONING_EFFORTS, u as CONTEXT_WINDOW_TOKENS, ut as MODELS_DEV_RATE_CORRECTIONS, v as MODEL_CATALOG_ID_ALIASES, vt as ModelRateAmounts, w as ModelRole, x as MODEL_ROLES, y as MODEL_CATALOG_PROVIDER_KIND, yt as getStandardModelRate, z as getModelDisplayMetadata } from "./index-CfFuexGD.js";
2
+ export { AIProvider, AI_PROVIDERS, ANTHROPIC_ADAPTIVE_THINKING_MODELS, BYOKModelIdByProvider, BYOKProvider, BYOK_DEFAULT_MODELS, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, BYOK_MODEL_OPTIONS, CAPABILITY_OVERRIDES, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, CONTEXT_WINDOW_TOKENS, type CapabilityOverride, DEFAULT_CONTEXT_WINDOW_TOKENS, DEFAULT_MODELS, DOCUMENT_INPUT_OVERRIDES, type DocumentInputOverride, FALLBACK_CHAT_MODEL_BY_PROVIDER, FIRST_PARTY_MODEL_PROVIDERS, FirstPartyModelProvider, IMAGE_INPUT_CAPABILITIES, IMAGE_INPUT_OVERRIDES, ImageInputCapability, type ImageInputOverride, type ImageInputOverrides, MODELS_DEV_RATE_CORRECTIONS, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, MODELS_DEV_RATE_SOURCE_ALIASES, MODEL_CATALOG_ID_ALIASES, MODEL_CATALOG_PROVIDER_KIND, MODEL_DEFAULT_REASONING_EFFORTS, MODEL_DISPLAY_METADATA, MODEL_IMAGE_INPUT_CAPABILITIES, MODEL_OUTPUT_TOKEN_LIMITS, MODEL_RATES, MODEL_RATE_UNITS_PER_USD, MODEL_REASONING_EFFORTS, MODEL_ROLES, MODEL_STREAMING_TOOL_USE, MODEL_TEMPERATURE_POLICIES, ModelDisplayMetadata, type ModelRate, type ModelRateAmounts, ModelRole, type ModelsDevRateProvider, OfferedBYOKModelId, REASONING_EFFORTS, RECOMMENDED_CHAT_MODELS, RETAINED_MODELS_DEV_RATE_ENTRIES, ReasoningEffort, ResolveReasoningEffortOptions, ResolvedReasoningEffort, STREAMING_TOOL_USE_SUPPORTS, StreamingToolUseSupport, TANSTACK_AI_PROVIDERS, TEMPERATURE_POLICIES, TanStackAIProvider, TemperaturePolicy, getContextWindowTokens, getModelDefaultReasoningEffort, getModelDisplayMetadata, getModelImageInputCapability, getModelRate, getModelReasoningEfforts, getOutputTokenLimit, getStandardModelRate, isBYOKModelRoleSupported, isBYOKProviderRoleSupported, isChatPdfAttachmentModelSupported, normalizeModelCatalogId, resolveModelRate, resolveReasoningEffort, resolveWorkingBYOKModelForRole, shouldEmitTemperature, supportsStreamingToolUse };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { A as isBYOKProviderRoleSupported, B as MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, C as getModelDefaultReasoningEffort, D as getModelReasoningEfforts, E as getModelRate, F as shouldEmitTemperature, G as resolveModelRate, H as RETAINED_MODELS_DEV_RATE_ENTRIES, I as supportsStreamingToolUse, J as MODEL_IMAGE_INPUT_CAPABILITIES, K as MODEL_RATES, L as DOCUMENT_INPUT_OVERRIDES, M as normalizeModelCatalogId, N as resolveReasoningEffort, O as getOutputTokenLimit, P as resolveWorkingBYOKModelForRole, R as CAPABILITY_OVERRIDES, S as getContextWindowTokens, T as getModelImageInputCapability, U as MODEL_RATE_UNITS_PER_USD, V as MODELS_DEV_RATE_SOURCE_ALIASES, W as getStandardModelRate, X as MODEL_REASONING_EFFORTS, Y as MODEL_OUTPUT_TOKEN_LIMITS, Z as MODEL_TEMPERATURE_POLICIES, _ as MODEL_STREAMING_TOOL_USE, a as BYOK_MODEL_OPTIONS, b as TANSTACK_AI_PROVIDERS, c as DEFAULT_CONTEXT_WINDOW_TOKENS, d as FIRST_PARTY_MODEL_PROVIDERS, f as IMAGE_INPUT_CAPABILITIES, g as MODEL_ROLES, h as MODEL_DISPLAY_METADATA, i as BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, j as isChatPdfAttachmentModelSupported, k as isBYOKModelRoleSupported, l as DEFAULT_MODELS, m as MODEL_CATALOG_PROVIDER_KIND, n as ANTHROPIC_ADAPTIVE_THINKING_MODELS, o as CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, p as MODEL_CATALOG_ID_ALIASES, q as MODEL_DEFAULT_REASONING_EFFORTS, r as BYOK_DEFAULT_MODELS, s as CONTEXT_WINDOW_TOKENS, t as AI_PROVIDERS, u as FALLBACK_CHAT_MODEL_BY_PROVIDER, v as REASONING_EFFORTS, w as getModelDisplayMetadata, x as TEMPERATURE_POLICIES, y as STREAMING_TOOL_USE_SUPPORTS, z as IMAGE_INPUT_OVERRIDES } from "./src-Dn6XqN2_.js";
2
- export { AI_PROVIDERS, ANTHROPIC_ADAPTIVE_THINKING_MODELS, BYOK_DEFAULT_MODELS, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, BYOK_MODEL_OPTIONS, CAPABILITY_OVERRIDES, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, CONTEXT_WINDOW_TOKENS, DEFAULT_CONTEXT_WINDOW_TOKENS, DEFAULT_MODELS, DOCUMENT_INPUT_OVERRIDES, FALLBACK_CHAT_MODEL_BY_PROVIDER, FIRST_PARTY_MODEL_PROVIDERS, IMAGE_INPUT_CAPABILITIES, IMAGE_INPUT_OVERRIDES, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, MODELS_DEV_RATE_SOURCE_ALIASES, MODEL_CATALOG_ID_ALIASES, MODEL_CATALOG_PROVIDER_KIND, MODEL_DEFAULT_REASONING_EFFORTS, MODEL_DISPLAY_METADATA, MODEL_IMAGE_INPUT_CAPABILITIES, MODEL_OUTPUT_TOKEN_LIMITS, MODEL_RATES, MODEL_RATE_UNITS_PER_USD, MODEL_REASONING_EFFORTS, MODEL_ROLES, MODEL_STREAMING_TOOL_USE, MODEL_TEMPERATURE_POLICIES, REASONING_EFFORTS, RETAINED_MODELS_DEV_RATE_ENTRIES, STREAMING_TOOL_USE_SUPPORTS, TANSTACK_AI_PROVIDERS, TEMPERATURE_POLICIES, getContextWindowTokens, getModelDefaultReasoningEffort, getModelDisplayMetadata, getModelImageInputCapability, getModelRate, getModelReasoningEfforts, getOutputTokenLimit, getStandardModelRate, isBYOKModelRoleSupported, isBYOKProviderRoleSupported, isChatPdfAttachmentModelSupported, normalizeModelCatalogId, resolveModelRate, resolveReasoningEffort, resolveWorkingBYOKModelForRole, shouldEmitTemperature, supportsStreamingToolUse };
1
+ import { $ as MODEL_TEMPERATURE_POLICIES, A as isBYOKModelRoleSupported, B as IMAGE_INPUT_OVERRIDES, C as getContextWindowTokens, D as getModelRate, E as getModelImageInputCapability, F as resolveWorkingBYOKModelForRole, G as MODEL_RATE_UNITS_PER_USD, H as MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, I as shouldEmitTemperature, J as MODEL_RATES, K as getStandardModelRate, L as supportsStreamingToolUse, M as isChatPdfAttachmentModelSupported, N as normalizeModelCatalogId, O as getModelReasoningEfforts, P as resolveReasoningEffort, Q as MODEL_REASONING_EFFORTS, R as DOCUMENT_INPUT_OVERRIDES, S as TEMPERATURE_POLICIES, T as getModelDisplayMetadata, U as MODELS_DEV_RATE_SOURCE_ALIASES, V as MODELS_DEV_RATE_CORRECTIONS, W as RETAINED_MODELS_DEV_RATE_ENTRIES, X as MODEL_IMAGE_INPUT_CAPABILITIES, Y as MODEL_DEFAULT_REASONING_EFFORTS, Z as MODEL_OUTPUT_TOKEN_LIMITS, _ as MODEL_STREAMING_TOOL_USE, a as BYOK_MODEL_OPTIONS, b as STREAMING_TOOL_USE_SUPPORTS, c as DEFAULT_CONTEXT_WINDOW_TOKENS, d as FIRST_PARTY_MODEL_PROVIDERS, f as IMAGE_INPUT_CAPABILITIES, g as MODEL_ROLES, h as MODEL_DISPLAY_METADATA, i as BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, j as isBYOKProviderRoleSupported, k as getOutputTokenLimit, l as DEFAULT_MODELS, m as MODEL_CATALOG_PROVIDER_KIND, n as ANTHROPIC_ADAPTIVE_THINKING_MODELS, o as CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, p as MODEL_CATALOG_ID_ALIASES, q as resolveModelRate, r as BYOK_DEFAULT_MODELS, s as CONTEXT_WINDOW_TOKENS, t as AI_PROVIDERS, u as FALLBACK_CHAT_MODEL_BY_PROVIDER, v as REASONING_EFFORTS, w as getModelDefaultReasoningEffort, x as TANSTACK_AI_PROVIDERS, y as RECOMMENDED_CHAT_MODELS, z as CAPABILITY_OVERRIDES } from "./src-D8TLQU2R.js";
2
+ export { AI_PROVIDERS, ANTHROPIC_ADAPTIVE_THINKING_MODELS, BYOK_DEFAULT_MODELS, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS, BYOK_MODEL_OPTIONS, CAPABILITY_OVERRIDES, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS, CONTEXT_WINDOW_TOKENS, DEFAULT_CONTEXT_WINDOW_TOKENS, DEFAULT_MODELS, DOCUMENT_INPUT_OVERRIDES, FALLBACK_CHAT_MODEL_BY_PROVIDER, FIRST_PARTY_MODEL_PROVIDERS, IMAGE_INPUT_CAPABILITIES, IMAGE_INPUT_OVERRIDES, MODELS_DEV_RATE_CORRECTIONS, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER, MODELS_DEV_RATE_SOURCE_ALIASES, MODEL_CATALOG_ID_ALIASES, MODEL_CATALOG_PROVIDER_KIND, MODEL_DEFAULT_REASONING_EFFORTS, MODEL_DISPLAY_METADATA, MODEL_IMAGE_INPUT_CAPABILITIES, MODEL_OUTPUT_TOKEN_LIMITS, MODEL_RATES, MODEL_RATE_UNITS_PER_USD, MODEL_REASONING_EFFORTS, MODEL_ROLES, MODEL_STREAMING_TOOL_USE, MODEL_TEMPERATURE_POLICIES, REASONING_EFFORTS, RECOMMENDED_CHAT_MODELS, RETAINED_MODELS_DEV_RATE_ENTRIES, STREAMING_TOOL_USE_SUPPORTS, TANSTACK_AI_PROVIDERS, TEMPERATURE_POLICIES, getContextWindowTokens, getModelDefaultReasoningEffort, getModelDisplayMetadata, getModelImageInputCapability, getModelRate, getModelReasoningEfforts, getOutputTokenLimit, getStandardModelRate, isBYOKModelRoleSupported, isBYOKProviderRoleSupported, isChatPdfAttachmentModelSupported, normalizeModelCatalogId, resolveModelRate, resolveReasoningEffort, resolveWorkingBYOKModelForRole, shouldEmitTemperature, supportsStreamingToolUse };
@@ -143,6 +143,7 @@ const MODEL_IMAGE_INPUT_CAPABILITIES = {
143
143
  "openai.gpt-oss-20b-1:0": "unsupported"
144
144
  },
145
145
  mistral: {
146
+ "mistral-large-4": "supported",
146
147
  "mistral-large-latest": "supported",
147
148
  "mistral-medium-latest": "supported",
148
149
  "mistral-small-latest": "supported"
@@ -514,6 +515,7 @@ const MODEL_REASONING_EFFORTS = {
514
515
  "medium",
515
516
  "high"
516
517
  ],
518
+ "mistral-large-4": ["none", "high"],
517
519
  "mistral-large-latest": null,
518
520
  "mistral-medium-latest": ["none", "high"],
519
521
  "mistral-small-latest": ["none", "high"]
@@ -582,6 +584,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
582
584
  "us.amazon.nova-micro-v1:0": null,
583
585
  "openai.gpt-oss-120b-1:0": null,
584
586
  "openai.gpt-oss-20b-1:0": null,
587
+ "mistral-large-4": null,
585
588
  "mistral-large-latest": null,
586
589
  "mistral-medium-latest": null,
587
590
  "mistral-small-latest": null
@@ -613,10 +616,10 @@ const MODEL_TEMPERATURE_POLICIES = {
613
616
  "google/gemini-3.1-pro-preview": "emit",
614
617
  "google/gemini-3.5-flash": "emit",
615
618
  "google/gemini-3.1-flash-lite": "emit",
616
- "anthropic/claude-sonnet-5.5": "emit",
619
+ "anthropic/claude-sonnet-5.5": "omit",
617
620
  "anthropic/claude-sonnet-5": "omit",
618
- "anthropic/claude-opus-5": "emit",
619
- "anthropic/claude-opus-4.8": "emit",
621
+ "anthropic/claude-opus-5": "omit",
622
+ "anthropic/claude-opus-4.8": "omit",
620
623
  "anthropic/claude-sonnet-4.6": "emit",
621
624
  "openai/gpt-5.5": "omit",
622
625
  "openai/gpt-5.4-mini": "omit",
@@ -650,6 +653,7 @@ const MODEL_TEMPERATURE_POLICIES = {
650
653
  "us.amazon.nova-micro-v1:0": "emit",
651
654
  "openai.gpt-oss-120b-1:0": "emit",
652
655
  "openai.gpt-oss-20b-1:0": "emit",
656
+ "mistral-large-4": "emit",
653
657
  "mistral-large-latest": "emit",
654
658
  "mistral-medium-latest": "emit",
655
659
  "mistral-small-latest": "emit"
@@ -718,6 +722,7 @@ const MODEL_OUTPUT_TOKEN_LIMITS = {
718
722
  "us.amazon.nova-micro-v1:0": 1e4,
719
723
  "openai.gpt-oss-120b-1:0": 128e3,
720
724
  "openai.gpt-oss-20b-1:0": 128e3,
725
+ "mistral-large-4": 262144,
721
726
  "mistral-large-latest": 262144,
722
727
  "mistral-medium-latest": 262144,
723
728
  "mistral-small-latest": 256e3
@@ -1055,6 +1060,12 @@ const MODEL_RATES = {
1055
1060
  inputPerMTok: 7e3,
1056
1061
  outputPerMTok: 3e4
1057
1062
  },
1063
+ "mistral-large-4": {
1064
+ kind: "flat",
1065
+ inputPerMTok: 68e3,
1066
+ outputPerMTok: 209e3,
1067
+ cachedInputPerMTok: 7e3
1068
+ },
1058
1069
  "mistral-large-latest": {
1059
1070
  kind: "flat",
1060
1071
  inputPerMTok: 5e4,
@@ -1165,6 +1176,21 @@ const RETAINED_MODELS_DEV_RATE_ENTRIES = {
1165
1176
  * map is empty whenever upstream covers every offered ID.
1166
1177
  */
1167
1178
  const MODELS_DEV_RATE_SOURCE_ALIASES = defineRateSourceAliases({});
1179
+ /**
1180
+ * Reviewed corrections where models.dev disagrees with the provider's own
1181
+ * published price, keyed by `<models.dev provider>:<models.dev model ID>`.
1182
+ * Each entry pins the exact upstream value it replaces, so generation fails
1183
+ * once models.dev changes that value (fixed or changed again) and the entry
1184
+ * must be deleted or re-reviewed. Generation also rejects an entry whose
1185
+ * source no rated model uses.
1186
+ */
1187
+ const MODELS_DEV_RATE_CORRECTIONS = { "anthropic:claude-sonnet-5-5": [{
1188
+ field: "cache_read",
1189
+ upstreamUsd: .1,
1190
+ correctedUsd: .2,
1191
+ reason: "2026-10-07: models.dev lists half the provider cache-read price",
1192
+ sourceUrl: "https://platform.claude.com/docs/en/models/sonnet-5-5/overview"
1193
+ }] };
1168
1194
  //#endregion
1169
1195
  //#region src/capabilities-overrides.ts
1170
1196
  const CAPABILITY_OVERRIDES = {};
@@ -1467,12 +1493,25 @@ const BYOK_MODEL_OPTIONS = {
1467
1493
  "openai.gpt-oss-20b-1:0"
1468
1494
  ],
1469
1495
  mistral: [
1496
+ "mistral-large-4",
1470
1497
  "mistral-large-latest",
1471
1498
  "mistral-medium-latest",
1472
1499
  "mistral-small-latest"
1473
1500
  ]
1474
1501
  };
1475
1502
  /**
1503
+ * The chat model picker's Recommended section: a reviewed, curated list of
1504
+ * the latest generation per maker. Benchmarks inform ordering and hints but
1505
+ * never pick these. Every route to a listed model qualifies; a listed model
1506
+ * must not be superseded (model-lineage.test.ts).
1507
+ */
1508
+ const RECOMMENDED_CHAT_MODELS = [
1509
+ "claude-opus-5-5",
1510
+ GPT_61_MODEL_IDS.sol.openai,
1511
+ GPT_6_MODEL_IDS.luna.openai,
1512
+ "gemini-3.8-flash"
1513
+ ];
1514
+ /**
1476
1515
  * Presentation metadata for every offered model. Keeping this exhaustive beside
1477
1516
  * the allowlist prevents a newly offered model from leaking a raw provider ID
1478
1517
  * into user-facing pickers. OpenRouter entries deliberately carry their model
@@ -1485,11 +1524,13 @@ const MODEL_DISPLAY_METADATA = {
1485
1524
  },
1486
1525
  "gemini-3.7-flash": {
1487
1526
  displayName: "Gemini 3.7 Flash",
1488
- iconProvider: "google"
1527
+ iconProvider: "google",
1528
+ supersededBy: "gemini-3.8-flash"
1489
1529
  },
1490
1530
  "gemini-3.6-flash": {
1491
1531
  displayName: "Gemini 3.6 Flash",
1492
- iconProvider: "google"
1532
+ iconProvider: "google",
1533
+ supersededBy: "gemini-3.8-flash"
1493
1534
  },
1494
1535
  "gemini-3.5-flash-lite": {
1495
1536
  displayName: "Gemini 3.5 Flash Lite",
@@ -1501,11 +1542,13 @@ const MODEL_DISPLAY_METADATA = {
1501
1542
  },
1502
1543
  "gemini-3.5-flash": {
1503
1544
  displayName: "Gemini 3.5 Flash",
1504
- iconProvider: "google"
1545
+ iconProvider: "google",
1546
+ supersededBy: "gemini-3.8-flash"
1505
1547
  },
1506
1548
  "gemini-3.1-flash-lite": {
1507
1549
  displayName: "Gemini 3.1 Flash Lite",
1508
- iconProvider: "google"
1550
+ iconProvider: "google",
1551
+ supersededBy: "gemini-3.5-flash-lite"
1509
1552
  },
1510
1553
  "claude-sonnet-5-5": {
1511
1554
  displayName: "Claude Sonnet 5.5",
@@ -1513,7 +1556,8 @@ const MODEL_DISPLAY_METADATA = {
1513
1556
  },
1514
1557
  "claude-sonnet-5": {
1515
1558
  displayName: "Claude Sonnet 5",
1516
- iconProvider: "anthropic"
1559
+ iconProvider: "anthropic",
1560
+ supersededBy: "claude-sonnet-5-5"
1517
1561
  },
1518
1562
  "claude-fable-5-1": {
1519
1563
  displayName: "Claude Fable 5.1",
@@ -1521,7 +1565,8 @@ const MODEL_DISPLAY_METADATA = {
1521
1565
  },
1522
1566
  "claude-fable-5": {
1523
1567
  displayName: "Claude Fable 5",
1524
- iconProvider: "anthropic"
1568
+ iconProvider: "anthropic",
1569
+ supersededBy: "claude-fable-5-1"
1525
1570
  },
1526
1571
  "claude-opus-5-5": {
1527
1572
  displayName: "Claude Opus 5.5",
@@ -1529,23 +1574,28 @@ const MODEL_DISPLAY_METADATA = {
1529
1574
  },
1530
1575
  "claude-opus-5": {
1531
1576
  displayName: "Claude Opus 5",
1532
- iconProvider: "anthropic"
1577
+ iconProvider: "anthropic",
1578
+ supersededBy: "claude-opus-5-5"
1533
1579
  },
1534
1580
  "claude-opus-4-8": {
1535
1581
  displayName: "Claude Opus 4.8",
1536
- iconProvider: "anthropic"
1582
+ iconProvider: "anthropic",
1583
+ supersededBy: "claude-opus-5-5"
1537
1584
  },
1538
1585
  "claude-opus-4-7": {
1539
1586
  displayName: "Claude Opus 4.7",
1540
- iconProvider: "anthropic"
1587
+ iconProvider: "anthropic",
1588
+ supersededBy: "claude-opus-5-5"
1541
1589
  },
1542
1590
  "claude-sonnet-4-6": {
1543
1591
  displayName: "Claude Sonnet 4.6",
1544
- iconProvider: "anthropic"
1592
+ iconProvider: "anthropic",
1593
+ supersededBy: "claude-sonnet-5-5"
1545
1594
  },
1546
1595
  "claude-opus-4-6": {
1547
1596
  displayName: "Claude Opus 4.6",
1548
- iconProvider: "anthropic"
1597
+ iconProvider: "anthropic",
1598
+ supersededBy: "claude-opus-5-5"
1549
1599
  },
1550
1600
  "claude-haiku-4-5-20251001": {
1551
1601
  displayName: "Claude Haiku 4.5",
@@ -1561,7 +1611,8 @@ const MODEL_DISPLAY_METADATA = {
1561
1611
  },
1562
1612
  [GPT_6_MODEL_IDS.sol.openai]: {
1563
1613
  displayName: "GPT-6 Sol",
1564
- iconProvider: "openai"
1614
+ iconProvider: "openai",
1615
+ supersededBy: GPT_61_MODEL_IDS.sol.openai
1565
1616
  },
1566
1617
  [GPT_6_MODEL_IDS.luna.openai]: {
1567
1618
  displayName: "GPT-6 Luna",
@@ -1569,7 +1620,8 @@ const MODEL_DISPLAY_METADATA = {
1569
1620
  },
1570
1621
  [GPT_56_MODEL_IDS.sol.openai]: {
1571
1622
  displayName: "GPT-5.6 Sol",
1572
- iconProvider: "openai"
1623
+ iconProvider: "openai",
1624
+ supersededBy: GPT_61_MODEL_IDS.sol.openai
1573
1625
  },
1574
1626
  [GPT_56_MODEL_IDS.terra.openai]: {
1575
1627
  displayName: "GPT-5.6 Terra",
@@ -1577,7 +1629,8 @@ const MODEL_DISPLAY_METADATA = {
1577
1629
  },
1578
1630
  [GPT_56_MODEL_IDS.luna.openai]: {
1579
1631
  displayName: "GPT-5.6 Luna",
1580
- iconProvider: "openai"
1632
+ iconProvider: "openai",
1633
+ supersededBy: GPT_6_MODEL_IDS.luna.openai
1581
1634
  },
1582
1635
  "gpt-5.5": {
1583
1636
  displayName: "GPT-5.5",
@@ -1585,7 +1638,8 @@ const MODEL_DISPLAY_METADATA = {
1585
1638
  },
1586
1639
  "gpt-5.4": {
1587
1640
  displayName: "GPT-5.4",
1588
- iconProvider: "openai"
1641
+ iconProvider: "openai",
1642
+ supersededBy: "gpt-5.5"
1589
1643
  },
1590
1644
  "gpt-5.4-mini": {
1591
1645
  displayName: "GPT-5.4 Mini",
@@ -1597,7 +1651,8 @@ const MODEL_DISPLAY_METADATA = {
1597
1651
  },
1598
1652
  "gpt-5.2": {
1599
1653
  displayName: "GPT-5.2",
1600
- iconProvider: "openai"
1654
+ iconProvider: "openai",
1655
+ supersededBy: "gpt-5.5"
1601
1656
  },
1602
1657
  [GPT_61_MODEL_IDS.sol.openrouter]: {
1603
1658
  displayName: "GPT-6.1 Sol",
@@ -1609,7 +1664,8 @@ const MODEL_DISPLAY_METADATA = {
1609
1664
  },
1610
1665
  [GPT_6_MODEL_IDS.sol.openrouter]: {
1611
1666
  displayName: "GPT-6 Sol",
1612
- iconProvider: "openai"
1667
+ iconProvider: "openai",
1668
+ supersededBy: GPT_61_MODEL_IDS.sol.openrouter
1613
1669
  },
1614
1670
  [GPT_6_MODEL_IDS.luna.openrouter]: {
1615
1671
  displayName: "GPT-6 Luna",
@@ -1617,11 +1673,13 @@ const MODEL_DISPLAY_METADATA = {
1617
1673
  },
1618
1674
  [GPT_56_MODEL_IDS.sol.openrouter]: {
1619
1675
  displayName: "GPT-5.6 Sol",
1620
- iconProvider: "openai"
1676
+ iconProvider: "openai",
1677
+ supersededBy: GPT_61_MODEL_IDS.sol.openrouter
1621
1678
  },
1622
1679
  [GPT_56_MODEL_IDS.luna.openrouter]: {
1623
1680
  displayName: "GPT-5.6 Luna",
1624
- iconProvider: "openai"
1681
+ iconProvider: "openai",
1682
+ supersededBy: GPT_6_MODEL_IDS.luna.openrouter
1625
1683
  },
1626
1684
  [GPT_56_MODEL_IDS.terra.openrouter]: {
1627
1685
  displayName: "GPT-5.6 Terra",
@@ -1633,11 +1691,13 @@ const MODEL_DISPLAY_METADATA = {
1633
1691
  },
1634
1692
  "google/gemini-3.7-flash": {
1635
1693
  displayName: "Gemini 3.7 Flash",
1636
- iconProvider: "google"
1694
+ iconProvider: "google",
1695
+ supersededBy: "google/gemini-3.8-flash"
1637
1696
  },
1638
1697
  "google/gemini-3.6-flash": {
1639
1698
  displayName: "Gemini 3.6 Flash",
1640
- iconProvider: "google"
1699
+ iconProvider: "google",
1700
+ supersededBy: "google/gemini-3.8-flash"
1641
1701
  },
1642
1702
  "google/gemini-3.5-flash-lite": {
1643
1703
  displayName: "Gemini 3.5 Flash Lite",
@@ -1649,11 +1709,13 @@ const MODEL_DISPLAY_METADATA = {
1649
1709
  },
1650
1710
  "google/gemini-3.5-flash": {
1651
1711
  displayName: "Gemini 3.5 Flash",
1652
- iconProvider: "google"
1712
+ iconProvider: "google",
1713
+ supersededBy: "google/gemini-3.8-flash"
1653
1714
  },
1654
1715
  "google/gemini-3.1-flash-lite": {
1655
1716
  displayName: "Gemini 3.1 Flash Lite",
1656
- iconProvider: "google"
1717
+ iconProvider: "google",
1718
+ supersededBy: "google/gemini-3.5-flash-lite"
1657
1719
  },
1658
1720
  "anthropic/claude-sonnet-5.5": {
1659
1721
  displayName: "Claude Sonnet 5.5",
@@ -1661,19 +1723,23 @@ const MODEL_DISPLAY_METADATA = {
1661
1723
  },
1662
1724
  "anthropic/claude-sonnet-5": {
1663
1725
  displayName: "Claude Sonnet 5",
1664
- iconProvider: "anthropic"
1726
+ iconProvider: "anthropic",
1727
+ supersededBy: "anthropic/claude-sonnet-5.5"
1665
1728
  },
1666
1729
  "anthropic/claude-opus-5": {
1667
1730
  displayName: "Claude Opus 5",
1668
- iconProvider: "anthropic"
1731
+ iconProvider: "anthropic",
1732
+ supersededBy: "claude-opus-5-5"
1669
1733
  },
1670
1734
  "anthropic/claude-opus-4.8": {
1671
1735
  displayName: "Claude Opus 4.8",
1672
- iconProvider: "anthropic"
1736
+ iconProvider: "anthropic",
1737
+ supersededBy: "claude-opus-5-5"
1673
1738
  },
1674
1739
  "anthropic/claude-sonnet-4.6": {
1675
1740
  displayName: "Claude Sonnet 4.6",
1676
- iconProvider: "anthropic"
1741
+ iconProvider: "anthropic",
1742
+ supersededBy: "anthropic/claude-sonnet-5.5"
1677
1743
  },
1678
1744
  "openai/gpt-5.5": {
1679
1745
  displayName: "GPT-5.5",
@@ -1685,7 +1751,8 @@ const MODEL_DISPLAY_METADATA = {
1685
1751
  },
1686
1752
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": {
1687
1753
  displayName: "Claude Sonnet 4.5",
1688
- iconProvider: "anthropic"
1754
+ iconProvider: "anthropic",
1755
+ supersededBy: "claude-sonnet-5-5"
1689
1756
  },
1690
1757
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
1691
1758
  displayName: "Claude Haiku 4.5",
@@ -1711,6 +1778,10 @@ const MODEL_DISPLAY_METADATA = {
1711
1778
  displayName: "GPT OSS 20B",
1712
1779
  iconProvider: "openai"
1713
1780
  },
1781
+ "mistral-large-4": {
1782
+ displayName: "Mistral Large 4",
1783
+ iconProvider: "mistral"
1784
+ },
1714
1785
  "mistral-large-latest": {
1715
1786
  displayName: "Mistral Large",
1716
1787
  iconProvider: "mistral"
@@ -1961,6 +2032,7 @@ const MODEL_STREAMING_TOOL_USE = {
1961
2032
  "us.amazon.nova-micro-v1:0": "supported",
1962
2033
  "openai.gpt-oss-120b-1:0": "supported",
1963
2034
  "openai.gpt-oss-20b-1:0": "supported",
2035
+ "mistral-large-4": "supported",
1964
2036
  "mistral-large-latest": "supported",
1965
2037
  "mistral-medium-latest": "supported",
1966
2038
  "mistral-small-latest": "supported"
@@ -2087,6 +2159,7 @@ const CONTEXT_WINDOW_TOKENS = {
2087
2159
  "claude-fable-5": 2e5,
2088
2160
  "claude-fable-5-1": 1e6,
2089
2161
  "mistral-small-latest": 128e3,
2162
+ "mistral-large-4": 524288,
2090
2163
  "mistral-large-latest": 128e3,
2091
2164
  "mistral-medium-latest": 128e3,
2092
2165
  "mistral-medium-3-5": 128e3,
@@ -2135,4 +2208,4 @@ const DEFAULT_CONTEXT_WINDOW_TOKENS = 128e3;
2135
2208
  */
2136
2209
  const getContextWindowTokens = (modelId) => CONTEXT_WINDOW_TOKENS_BY_ID[normalizeModelCatalogId(modelId)] ?? 128e3;
2137
2210
  //#endregion
2138
- export { isBYOKProviderRoleSupported as A, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER as B, getModelDefaultReasoningEffort as C, getModelReasoningEfforts as D, getModelRate as E, shouldEmitTemperature as F, resolveModelRate as G, RETAINED_MODELS_DEV_RATE_ENTRIES as H, supportsStreamingToolUse as I, MODEL_IMAGE_INPUT_CAPABILITIES as J, MODEL_RATES as K, DOCUMENT_INPUT_OVERRIDES as L, normalizeModelCatalogId as M, resolveReasoningEffort as N, getOutputTokenLimit as O, resolveWorkingBYOKModelForRole as P, CAPABILITY_OVERRIDES as R, getContextWindowTokens as S, getModelImageInputCapability as T, MODEL_RATE_UNITS_PER_USD as U, MODELS_DEV_RATE_SOURCE_ALIASES as V, getStandardModelRate as W, MODEL_REASONING_EFFORTS as X, MODEL_OUTPUT_TOKEN_LIMITS as Y, MODEL_TEMPERATURE_POLICIES as Z, MODEL_STREAMING_TOOL_USE as _, BYOK_MODEL_OPTIONS as a, TANSTACK_AI_PROVIDERS as b, DEFAULT_CONTEXT_WINDOW_TOKENS as c, FIRST_PARTY_MODEL_PROVIDERS as d, IMAGE_INPUT_CAPABILITIES as f, MODEL_ROLES as g, MODEL_DISPLAY_METADATA as h, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS as i, isChatPdfAttachmentModelSupported as j, isBYOKModelRoleSupported as k, DEFAULT_MODELS as l, MODEL_CATALOG_PROVIDER_KIND as m, ANTHROPIC_ADAPTIVE_THINKING_MODELS as n, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS as o, MODEL_CATALOG_ID_ALIASES as p, MODEL_DEFAULT_REASONING_EFFORTS as q, BYOK_DEFAULT_MODELS as r, CONTEXT_WINDOW_TOKENS as s, AI_PROVIDERS as t, FALLBACK_CHAT_MODEL_BY_PROVIDER as u, REASONING_EFFORTS as v, getModelDisplayMetadata as w, TEMPERATURE_POLICIES as x, STREAMING_TOOL_USE_SUPPORTS as y, IMAGE_INPUT_OVERRIDES as z };
2211
+ export { MODEL_TEMPERATURE_POLICIES as $, isBYOKModelRoleSupported as A, IMAGE_INPUT_OVERRIDES as B, getContextWindowTokens as C, getModelRate as D, getModelImageInputCapability as E, resolveWorkingBYOKModelForRole as F, MODEL_RATE_UNITS_PER_USD as G, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER as H, shouldEmitTemperature as I, MODEL_RATES as J, getStandardModelRate as K, supportsStreamingToolUse as L, isChatPdfAttachmentModelSupported as M, normalizeModelCatalogId as N, getModelReasoningEfforts as O, resolveReasoningEffort as P, MODEL_REASONING_EFFORTS as Q, DOCUMENT_INPUT_OVERRIDES as R, TEMPERATURE_POLICIES as S, getModelDisplayMetadata as T, MODELS_DEV_RATE_SOURCE_ALIASES as U, MODELS_DEV_RATE_CORRECTIONS as V, RETAINED_MODELS_DEV_RATE_ENTRIES as W, MODEL_IMAGE_INPUT_CAPABILITIES as X, MODEL_DEFAULT_REASONING_EFFORTS as Y, MODEL_OUTPUT_TOKEN_LIMITS as Z, MODEL_STREAMING_TOOL_USE as _, BYOK_MODEL_OPTIONS as a, STREAMING_TOOL_USE_SUPPORTS as b, DEFAULT_CONTEXT_WINDOW_TOKENS as c, FIRST_PARTY_MODEL_PROVIDERS as d, IMAGE_INPUT_CAPABILITIES as f, MODEL_ROLES as g, MODEL_DISPLAY_METADATA as h, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS as i, isBYOKProviderRoleSupported as j, getOutputTokenLimit as k, DEFAULT_MODELS as l, MODEL_CATALOG_PROVIDER_KIND as m, ANTHROPIC_ADAPTIVE_THINKING_MODELS as n, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS as o, MODEL_CATALOG_ID_ALIASES as p, resolveModelRate as q, BYOK_DEFAULT_MODELS as r, CONTEXT_WINDOW_TOKENS as s, AI_PROVIDERS as t, FALLBACK_CHAT_MODEL_BY_PROVIDER as u, REASONING_EFFORTS as v, getModelDefaultReasoningEffort as w, TANSTACK_AI_PROVIDERS as x, RECOMMENDED_CHAT_MODELS as y, CAPABILITY_OVERRIDES as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stll/ai-catalog",
3
- "version": "0.5.0",
3
+ "version": "0.6.1",
4
4
  "description": "Provider-neutral AI model roles, capabilities, and curated model metadata.",
5
5
  "keywords": [
6
6
  "ai",
@@ -45,8 +45,8 @@
45
45
  "clean": "git clean -xdf dist .cache .turbo node_modules",
46
46
  "build": "tsdown",
47
47
  "gen:benchmarks": "bun ../scripts/src/model-catalog-benchmarks-gen.ts",
48
- "gen:capabilities": "bun ../scripts/src/model-catalog-capabilities-gen.ts",
49
- "gen:rates": "bun ../scripts/src/model-catalog-rates-gen.ts",
48
+ "gen:capabilities": "bun --preload ../../scripts/offline-network-preload.ts ../scripts/src/model-catalog-capabilities-gen.ts",
49
+ "gen:rates": "bun --preload ../../scripts/offline-network-preload.ts ../scripts/src/model-catalog-rates-gen.ts",
50
50
  "pack:dry-run": "bun pm pack --dry-run",
51
51
  "test": "bun test src",
52
52
  "test:property": "bun test --preload @stll/property-testing/preload $(grep -rlE 'fc\\.assert|assertProperty' src --include='*.test.ts')",
@@ -68,7 +68,7 @@
68
68
  "@tanstack/ai-mistral": "0.6.10",
69
69
  "@tanstack/ai-openrouter": "0.19.20",
70
70
  "bun-types": "1.4.2",
71
- "fast-check": "^4.10.1",
71
+ "fast-check": "^4.10.2",
72
72
  "tsdown": "0.23.0"
73
73
  },
74
74
  "main": "./dist/index.js",