@stll/ai-catalog 0.1.4 → 0.1.6

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
@@ -40,6 +40,7 @@ declare const DOCUMENT_INPUT_OVERRIDES: Partial<Record<OfferedBYOKModelId, Docum
40
40
  * through `resolveReasoningEffort`.
41
41
  */
42
42
  declare const MODEL_REASONING_EFFORTS: {
43
+ readonly "gemini-3.8-flash": readonly ["low", "medium", "high"];
43
44
  readonly "gemini-3.7-flash": readonly ["low", "medium", "high"];
44
45
  readonly "gemini-3.6-flash": readonly ["minimal", "low", "medium", "high"];
45
46
  readonly "gemini-3.5-flash-lite": readonly ["minimal", "low", "medium", "high"];
@@ -48,6 +49,7 @@ declare const MODEL_REASONING_EFFORTS: {
48
49
  readonly "gemini-3.1-flash-lite": readonly ["minimal", "low", "medium", "high"];
49
50
  readonly "openai/gpt-5.6-luna": readonly ["none", "low", "medium", "high", "xhigh", "max"];
50
51
  readonly "openai/gpt-5.6-terra": readonly ["none", "low", "medium", "high", "xhigh", "max"];
52
+ readonly "google/gemini-3.8-flash": readonly ["low", "medium", "high"];
51
53
  readonly "google/gemini-3.7-flash": readonly ["low", "medium", "high"];
52
54
  readonly "google/gemini-3.6-flash": readonly ["minimal", "low", "medium", "high"];
53
55
  readonly "google/gemini-3.5-flash-lite": readonly ["minimal", "low", "medium", "high"];
@@ -69,6 +71,7 @@ declare const MODEL_REASONING_EFFORTS: {
69
71
  readonly "gpt-5.4-nano": readonly ["none", "low", "medium", "high", "xhigh"];
70
72
  readonly "gpt-5.2": readonly ["none", "low", "medium", "high", "xhigh"];
71
73
  readonly "claude-sonnet-5": readonly ["none", "low", "medium", "high", "xhigh", "max"];
74
+ readonly "claude-fable-5-1": readonly ["low", "medium", "high", "xhigh", "max"];
72
75
  readonly "claude-fable-5": readonly ["low", "medium", "high", "xhigh", "max"];
73
76
  readonly "claude-opus-5": readonly ["low", "medium", "high", "xhigh", "max"];
74
77
  readonly "claude-opus-4-8": readonly ["low", "medium", "high", "xhigh", "max"];
@@ -97,6 +100,7 @@ declare const MODEL_REASONING_EFFORTS: {
97
100
  * a truthful named default, so clients must retain a separate Default choice.
98
101
  */
99
102
  declare const MODEL_DEFAULT_REASONING_EFFORTS: {
103
+ readonly "gemini-3.8-flash": null;
100
104
  readonly "gemini-3.7-flash": null;
101
105
  readonly "gemini-3.6-flash": null;
102
106
  readonly "gemini-3.5-flash-lite": null;
@@ -105,6 +109,7 @@ declare const MODEL_DEFAULT_REASONING_EFFORTS: {
105
109
  readonly "gemini-3.1-flash-lite": null;
106
110
  readonly "openai/gpt-5.6-luna": "medium";
107
111
  readonly "openai/gpt-5.6-terra": "medium";
112
+ readonly "google/gemini-3.8-flash": "medium";
108
113
  readonly "google/gemini-3.7-flash": "medium";
109
114
  readonly "google/gemini-3.6-flash": "medium";
110
115
  readonly "google/gemini-3.5-flash-lite": "minimal";
@@ -126,6 +131,7 @@ declare const MODEL_DEFAULT_REASONING_EFFORTS: {
126
131
  readonly "gpt-5.4-nano": null;
127
132
  readonly "gpt-5.2": null;
128
133
  readonly "claude-sonnet-5": null;
134
+ readonly "claude-fable-5-1": null;
129
135
  readonly "claude-fable-5": null;
130
136
  readonly "claude-opus-5": null;
131
137
  readonly "claude-opus-4-8": null;
@@ -154,6 +160,7 @@ declare const MODEL_DEFAULT_REASONING_EFFORTS: {
154
160
  * parameters. Consumers must go through `shouldEmitTemperature`.
155
161
  */
156
162
  declare const MODEL_TEMPERATURE_POLICIES: {
163
+ readonly "gemini-3.8-flash": "omit";
157
164
  readonly "gemini-3.7-flash": "omit";
158
165
  readonly "gemini-3.6-flash": "omit";
159
166
  readonly "gemini-3.5-flash-lite": "omit";
@@ -162,6 +169,7 @@ declare const MODEL_TEMPERATURE_POLICIES: {
162
169
  readonly "gemini-3.1-flash-lite": "emit";
163
170
  readonly "openai/gpt-5.6-luna": "omit";
164
171
  readonly "openai/gpt-5.6-terra": "omit";
172
+ readonly "google/gemini-3.8-flash": "omit";
165
173
  readonly "google/gemini-3.7-flash": "omit";
166
174
  readonly "google/gemini-3.6-flash": "omit";
167
175
  readonly "google/gemini-3.5-flash-lite": "omit";
@@ -183,6 +191,7 @@ declare const MODEL_TEMPERATURE_POLICIES: {
183
191
  readonly "gpt-5.4-nano": "emit";
184
192
  readonly "gpt-5.2": "emit";
185
193
  readonly "claude-sonnet-5": "omit";
194
+ readonly "claude-fable-5-1": "omit";
186
195
  readonly "claude-fable-5": "omit";
187
196
  readonly "claude-opus-5": "omit";
188
197
  readonly "claude-opus-4-8": "omit";
@@ -367,10 +376,10 @@ declare const DEFAULT_MODELS: {
367
376
  * not accepted at this boundary.
368
377
  */
369
378
  declare const BYOK_MODEL_OPTIONS: {
370
- readonly google: readonly ["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"];
371
- readonly anthropic: readonly ["claude-sonnet-5", "claude-fable-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"];
379
+ 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"];
380
+ readonly anthropic: readonly ["claude-sonnet-5", "claude-fable-5-1", "claude-fable-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"];
372
381
  readonly openai: readonly ["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"];
373
- readonly openrouter: readonly ["openai/gpt-5.6-luna", "openai/gpt-5.6-terra", "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", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
382
+ readonly openrouter: readonly ["openai/gpt-5.6-luna", "openai/gpt-5.6-terra", "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", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
374
383
  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", "us.deepseek.r1-v1:0"];
375
384
  readonly mistral: readonly ["mistral-large-latest", "mistral-medium-latest", "mistral-small-latest", "magistral-medium-latest", "magistral-small", "pixtral-large-latest"];
376
385
  };
@@ -390,6 +399,10 @@ type ModelDisplayMetadata = {
390
399
  * creator's icon while their routing provider remains available separately.
391
400
  */
392
401
  declare const MODEL_DISPLAY_METADATA: {
402
+ readonly "gemini-3.8-flash": {
403
+ readonly displayName: "Gemini 3.8 Flash";
404
+ readonly iconProvider: "google";
405
+ };
393
406
  readonly "gemini-3.7-flash": {
394
407
  readonly displayName: "Gemini 3.7 Flash";
395
408
  readonly iconProvider: "google";
@@ -418,6 +431,10 @@ declare const MODEL_DISPLAY_METADATA: {
418
431
  readonly displayName: "Claude Sonnet 5";
419
432
  readonly iconProvider: "anthropic";
420
433
  };
434
+ readonly "claude-fable-5-1": {
435
+ readonly displayName: "Claude Fable 5.1";
436
+ readonly iconProvider: "anthropic";
437
+ };
421
438
  readonly "claude-fable-5": {
422
439
  readonly displayName: "Claude Fable 5";
423
440
  readonly iconProvider: "anthropic";
@@ -486,6 +503,10 @@ declare const MODEL_DISPLAY_METADATA: {
486
503
  readonly displayName: "GPT-5.6 Terra";
487
504
  readonly iconProvider: "openai";
488
505
  };
506
+ readonly "google/gemini-3.8-flash": {
507
+ readonly displayName: "Gemini 3.8 Flash";
508
+ readonly iconProvider: "google";
509
+ };
489
510
  readonly "google/gemini-3.7-flash": {
490
511
  readonly displayName: "Gemini 3.7 Flash";
491
512
  readonly iconProvider: "google";
@@ -598,10 +619,10 @@ declare const getModelDisplayMetadata: (modelId: string) => ModelDisplayMetadata
598
619
  * the nightly upstream check rejects drift.
599
620
  */
600
621
  declare const BYOK_DOCUMENT_INPUT_MODEL_OPTIONS: {
601
- readonly google: readonly ["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"];
602
- readonly openrouter: readonly ["openai/gpt-5.6-luna", "openai/gpt-5.6-terra", "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", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
622
+ 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"];
623
+ readonly openrouter: readonly ["openai/gpt-5.6-luna", "openai/gpt-5.6-terra", "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", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
603
624
  readonly openai: readonly ["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"];
604
- readonly anthropic: readonly ["claude-sonnet-5", "claude-fable-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"];
625
+ readonly anthropic: readonly ["claude-sonnet-5", "claude-fable-5-1", "claude-fable-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"];
605
626
  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"];
606
627
  readonly mistral: readonly [];
607
628
  };
@@ -629,10 +650,10 @@ declare const isBYOKModelRoleSupported: ({ provider, modelId, role }: {
629
650
  */
630
651
  declare const CHAT_PDF_ATTACHMENT_MODEL_OPTIONS: {
631
652
  readonly mistral: readonly ["mistral-medium-latest", "mistral-small-latest", "pixtral-large-latest"];
632
- readonly google: readonly ["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"];
633
- readonly openrouter: readonly ["openai/gpt-5.6-luna", "openai/gpt-5.6-terra", "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", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
653
+ 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"];
654
+ readonly openrouter: readonly ["openai/gpt-5.6-luna", "openai/gpt-5.6-terra", "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", "anthropic/claude-opus-5", "anthropic/claude-opus-4.8", "anthropic/claude-sonnet-4.6", "openai/gpt-5.5", "openai/gpt-5.4-mini"];
634
655
  readonly openai: readonly ["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"];
635
- readonly anthropic: readonly ["claude-sonnet-5", "claude-fable-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"];
656
+ readonly anthropic: readonly ["claude-sonnet-5", "claude-fable-5-1", "claude-fable-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"];
636
657
  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"];
637
658
  };
638
659
  declare const isChatPdfAttachmentModelSupported: ({ provider, modelId }: {
@@ -664,7 +685,7 @@ declare const resolveWorkingBYOKModelForRole: ({ provider, modelId, role }: {
664
685
  * legacy budget-based form, so every Opus 4.6+/Sonnet 4.6/Fable entry
665
686
  * offered above must appear here or it will 400 on the reasoning role.
666
687
  */
667
- declare const ANTHROPIC_ADAPTIVE_THINKING_MODELS: readonly ["claude-sonnet-5", "claude-opus-5", "claude-sonnet-4-6", "claude-opus-4-6", "claude-opus-4-7", "claude-opus-4-8", "claude-fable-5"];
688
+ declare const ANTHROPIC_ADAPTIVE_THINKING_MODELS: readonly ["claude-sonnet-5", "claude-opus-5", "claude-sonnet-4-6", "claude-opus-4-6", "claude-opus-4-7", "claude-opus-4-8", "claude-fable-5", "claude-fable-5-1"];
668
689
  /**
669
690
  * Canonical reasoning-effort ladder, ordered weakest to strongest.
670
691
  * Union of every effort keyword the offered providers accept; no
@@ -839,6 +860,12 @@ declare const MODEL_RATES: {
839
860
  readonly outputPerMTok: 375000;
840
861
  readonly cachedInputPerMTok: 7500;
841
862
  };
863
+ readonly "gemini-3.8-flash": {
864
+ readonly kind: "flat";
865
+ readonly inputPerMTok: 75000;
866
+ readonly outputPerMTok: 375000;
867
+ readonly cachedInputPerMTok: 7500;
868
+ };
842
869
  readonly "gemini-3.1-pro-preview": {
843
870
  readonly kind: "input-token-tiered";
844
871
  readonly inputTokenThreshold: 200000;
@@ -1001,6 +1028,12 @@ declare const MODEL_RATES: {
1001
1028
  readonly outputPerMTok: 5000000;
1002
1029
  readonly cachedInputPerMTok: 100000;
1003
1030
  };
1031
+ readonly "claude-fable-5-1": {
1032
+ readonly kind: "flat";
1033
+ readonly inputPerMTok: 1000000;
1034
+ readonly outputPerMTok: 5000000;
1035
+ readonly cachedInputPerMTok: 25000;
1036
+ };
1004
1037
  readonly "mistral-small-latest": {
1005
1038
  readonly kind: "flat";
1006
1039
  readonly inputPerMTok: 15000;
@@ -1110,6 +1143,7 @@ declare const CONTEXT_WINDOW_TOKENS: {
1110
1143
  readonly "gemini-3.5-flash-lite": 1048576;
1111
1144
  readonly "gemini-3.6-flash": 1048576;
1112
1145
  readonly "gemini-3.7-flash": 1048576;
1146
+ readonly "gemini-3.8-flash": 1048576;
1113
1147
  readonly "gemini-3.1-pro-preview": 1048576;
1114
1148
  readonly "gpt-4o-mini": 128000;
1115
1149
  readonly "gpt-4o": 128000;
@@ -1129,6 +1163,7 @@ declare const CONTEXT_WINDOW_TOKENS: {
1129
1163
  readonly "claude-opus-4-8": 200000;
1130
1164
  readonly "claude-opus-5": 1000000;
1131
1165
  readonly "claude-fable-5": 200000;
1166
+ readonly "claude-fable-5-1": 1000000;
1132
1167
  readonly "mistral-small-latest": 128000;
1133
1168
  readonly "mistral-large-latest": 128000;
1134
1169
  readonly "mistral-medium-latest": 128000;
@@ -1137,6 +1172,7 @@ declare const CONTEXT_WINDOW_TOKENS: {
1137
1172
  readonly "magistral-small-latest": 128000;
1138
1173
  readonly "magistral-small": 128000;
1139
1174
  readonly "pixtral-large-latest": 128000;
1175
+ readonly "google/gemini-3.8-flash": 1048576;
1140
1176
  readonly "google/gemini-3.7-flash": 1048576;
1141
1177
  readonly "google/gemini-3.6-flash": 1048576;
1142
1178
  readonly "google/gemini-3.5-flash-lite": 1048576;
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import * as v from "valibot";
6
6
  */
7
7
  const MODEL_DOCUMENT_INPUT_OPTIONS = {
8
8
  google: [
9
+ "gemini-3.8-flash",
9
10
  "gemini-3.7-flash",
10
11
  "gemini-3.6-flash",
11
12
  "gemini-3.5-flash-lite",
@@ -16,6 +17,7 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
16
17
  openrouter: [
17
18
  "openai/gpt-5.6-luna",
18
19
  "openai/gpt-5.6-terra",
20
+ "google/gemini-3.8-flash",
19
21
  "google/gemini-3.7-flash",
20
22
  "google/gemini-3.6-flash",
21
23
  "google/gemini-3.5-flash-lite",
@@ -41,6 +43,7 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
41
43
  ],
42
44
  anthropic: [
43
45
  "claude-sonnet-5",
46
+ "claude-fable-5-1",
44
47
  "claude-fable-5",
45
48
  "claude-opus-5",
46
49
  "claude-opus-4-8",
@@ -64,6 +67,11 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
64
67
  * through `resolveReasoningEffort`.
65
68
  */
66
69
  const MODEL_REASONING_EFFORTS = {
70
+ "gemini-3.8-flash": [
71
+ "low",
72
+ "medium",
73
+ "high"
74
+ ],
67
75
  "gemini-3.7-flash": [
68
76
  "low",
69
77
  "medium",
@@ -114,6 +122,11 @@ const MODEL_REASONING_EFFORTS = {
114
122
  "xhigh",
115
123
  "max"
116
124
  ],
125
+ "google/gemini-3.8-flash": [
126
+ "low",
127
+ "medium",
128
+ "high"
129
+ ],
117
130
  "google/gemini-3.7-flash": [
118
131
  "low",
119
132
  "medium",
@@ -261,6 +274,13 @@ const MODEL_REASONING_EFFORTS = {
261
274
  "xhigh",
262
275
  "max"
263
276
  ],
277
+ "claude-fable-5-1": [
278
+ "low",
279
+ "medium",
280
+ "high",
281
+ "xhigh",
282
+ "max"
283
+ ],
264
284
  "claude-fable-5": [
265
285
  "low",
266
286
  "medium",
@@ -331,6 +351,7 @@ const MODEL_REASONING_EFFORTS = {
331
351
  * a truthful named default, so clients must retain a separate Default choice.
332
352
  */
333
353
  const MODEL_DEFAULT_REASONING_EFFORTS = {
354
+ "gemini-3.8-flash": null,
334
355
  "gemini-3.7-flash": null,
335
356
  "gemini-3.6-flash": null,
336
357
  "gemini-3.5-flash-lite": null,
@@ -339,6 +360,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
339
360
  "gemini-3.1-flash-lite": null,
340
361
  "openai/gpt-5.6-luna": "medium",
341
362
  "openai/gpt-5.6-terra": "medium",
363
+ "google/gemini-3.8-flash": "medium",
342
364
  "google/gemini-3.7-flash": "medium",
343
365
  "google/gemini-3.6-flash": "medium",
344
366
  "google/gemini-3.5-flash-lite": "minimal",
@@ -360,6 +382,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
360
382
  "gpt-5.4-nano": null,
361
383
  "gpt-5.2": null,
362
384
  "claude-sonnet-5": null,
385
+ "claude-fable-5-1": null,
363
386
  "claude-fable-5": null,
364
387
  "claude-opus-5": null,
365
388
  "claude-opus-4-8": null,
@@ -388,6 +411,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
388
411
  * parameters. Consumers must go through `shouldEmitTemperature`.
389
412
  */
390
413
  const MODEL_TEMPERATURE_POLICIES = {
414
+ "gemini-3.8-flash": "omit",
391
415
  "gemini-3.7-flash": "omit",
392
416
  "gemini-3.6-flash": "omit",
393
417
  "gemini-3.5-flash-lite": "omit",
@@ -396,6 +420,7 @@ const MODEL_TEMPERATURE_POLICIES = {
396
420
  "gemini-3.1-flash-lite": "emit",
397
421
  "openai/gpt-5.6-luna": "omit",
398
422
  "openai/gpt-5.6-terra": "omit",
423
+ "google/gemini-3.8-flash": "omit",
399
424
  "google/gemini-3.7-flash": "omit",
400
425
  "google/gemini-3.6-flash": "omit",
401
426
  "google/gemini-3.5-flash-lite": "omit",
@@ -417,6 +442,7 @@ const MODEL_TEMPERATURE_POLICIES = {
417
442
  "gpt-5.4-nano": "emit",
418
443
  "gpt-5.2": "emit",
419
444
  "claude-sonnet-5": "omit",
445
+ "claude-fable-5-1": "omit",
420
446
  "claude-fable-5": "omit",
421
447
  "claude-opus-5": "omit",
422
448
  "claude-opus-4-8": "omit",
@@ -643,6 +669,7 @@ const DEFAULT_MODELS = {
643
669
  */
644
670
  const BYOK_MODEL_OPTIONS = {
645
671
  google: [
672
+ "gemini-3.8-flash",
646
673
  "gemini-3.7-flash",
647
674
  "gemini-3.6-flash",
648
675
  "gemini-3.5-flash-lite",
@@ -652,6 +679,7 @@ const BYOK_MODEL_OPTIONS = {
652
679
  ],
653
680
  anthropic: [
654
681
  "claude-sonnet-5",
682
+ "claude-fable-5-1",
655
683
  "claude-fable-5",
656
684
  "claude-opus-5",
657
685
  "claude-opus-4-8",
@@ -673,6 +701,7 @@ const BYOK_MODEL_OPTIONS = {
673
701
  openrouter: [
674
702
  "openai/gpt-5.6-luna",
675
703
  "openai/gpt-5.6-terra",
704
+ "google/gemini-3.8-flash",
676
705
  "google/gemini-3.7-flash",
677
706
  "google/gemini-3.6-flash",
678
707
  "google/gemini-3.5-flash-lite",
@@ -712,6 +741,10 @@ const BYOK_MODEL_OPTIONS = {
712
741
  * creator's icon while their routing provider remains available separately.
713
742
  */
714
743
  const MODEL_DISPLAY_METADATA = {
744
+ "gemini-3.8-flash": {
745
+ displayName: "Gemini 3.8 Flash",
746
+ iconProvider: "google"
747
+ },
715
748
  "gemini-3.7-flash": {
716
749
  displayName: "Gemini 3.7 Flash",
717
750
  iconProvider: "google"
@@ -740,6 +773,10 @@ const MODEL_DISPLAY_METADATA = {
740
773
  displayName: "Claude Sonnet 5",
741
774
  iconProvider: "anthropic"
742
775
  },
776
+ "claude-fable-5-1": {
777
+ displayName: "Claude Fable 5.1",
778
+ iconProvider: "anthropic"
779
+ },
743
780
  "claude-fable-5": {
744
781
  displayName: "Claude Fable 5",
745
782
  iconProvider: "anthropic"
@@ -808,6 +845,10 @@ const MODEL_DISPLAY_METADATA = {
808
845
  displayName: "GPT-5.6 Terra",
809
846
  iconProvider: "openai"
810
847
  },
848
+ "google/gemini-3.8-flash": {
849
+ displayName: "Gemini 3.8 Flash",
850
+ iconProvider: "google"
851
+ },
811
852
  "google/gemini-3.7-flash": {
812
853
  displayName: "Gemini 3.7 Flash",
813
854
  iconProvider: "google"
@@ -1005,7 +1046,8 @@ const ANTHROPIC_ADAPTIVE_THINKING_MODELS = [
1005
1046
  "claude-opus-4-6",
1006
1047
  "claude-opus-4-7",
1007
1048
  "claude-opus-4-8",
1008
- "claude-fable-5"
1049
+ "claude-fable-5",
1050
+ "claude-fable-5-1"
1009
1051
  ];
1010
1052
  /**
1011
1053
  * Canonical reasoning-effort ladder, ordered weakest to strongest.
@@ -1159,6 +1201,12 @@ const MODEL_RATES = {
1159
1201
  outputPerMTok: 375e3,
1160
1202
  cachedInputPerMTok: 7500
1161
1203
  },
1204
+ "gemini-3.8-flash": {
1205
+ kind: "flat",
1206
+ inputPerMTok: 75e3,
1207
+ outputPerMTok: 375e3,
1208
+ cachedInputPerMTok: 7500
1209
+ },
1162
1210
  "gemini-3.1-pro-preview": {
1163
1211
  kind: "input-token-tiered",
1164
1212
  inputTokenThreshold: 2e5,
@@ -1321,6 +1369,12 @@ const MODEL_RATES = {
1321
1369
  outputPerMTok: 5e6,
1322
1370
  cachedInputPerMTok: 1e5
1323
1371
  },
1372
+ "claude-fable-5-1": {
1373
+ kind: "flat",
1374
+ inputPerMTok: 1e6,
1375
+ outputPerMTok: 5e6,
1376
+ cachedInputPerMTok: 25e3
1377
+ },
1324
1378
  "mistral-small-latest": {
1325
1379
  kind: "flat",
1326
1380
  inputPerMTok: 15e3,
@@ -1438,6 +1492,7 @@ const CONTEXT_WINDOW_TOKENS = {
1438
1492
  "gemini-3.5-flash-lite": 1048576,
1439
1493
  "gemini-3.6-flash": 1048576,
1440
1494
  "gemini-3.7-flash": 1048576,
1495
+ "gemini-3.8-flash": 1048576,
1441
1496
  "gemini-3.1-pro-preview": 1048576,
1442
1497
  "gpt-4o-mini": 128e3,
1443
1498
  "gpt-4o": 128e3,
@@ -1457,6 +1512,7 @@ const CONTEXT_WINDOW_TOKENS = {
1457
1512
  "claude-opus-4-8": 2e5,
1458
1513
  "claude-opus-5": 1e6,
1459
1514
  "claude-fable-5": 2e5,
1515
+ "claude-fable-5-1": 1e6,
1460
1516
  "mistral-small-latest": 128e3,
1461
1517
  "mistral-large-latest": 128e3,
1462
1518
  "mistral-medium-latest": 128e3,
@@ -1465,6 +1521,7 @@ const CONTEXT_WINDOW_TOKENS = {
1465
1521
  "magistral-small-latest": 128e3,
1466
1522
  "magistral-small": 128e3,
1467
1523
  "pixtral-large-latest": 128e3,
1524
+ "google/gemini-3.8-flash": 1048576,
1468
1525
  "google/gemini-3.7-flash": 1048576,
1469
1526
  "google/gemini-3.6-flash": 1048576,
1470
1527
  "google/gemini-3.5-flash-lite": 1048576,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stll/ai-catalog",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Provider-neutral AI model roles, capabilities, and curated model metadata.",
5
5
  "keywords": [
6
6
  "ai",