@stll/ai-catalog 0.6.1 → 0.7.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.
@@ -6,6 +6,7 @@ import * as v from "valibot";
6
6
  */
7
7
  const MODEL_DOCUMENT_INPUT_OPTIONS = {
8
8
  google: [
9
+ "gemini-4-argon",
9
10
  "gemini-3.8-flash",
10
11
  "gemini-3.7-flash",
11
12
  "gemini-3.6-flash",
@@ -22,6 +23,7 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
22
23
  "openai/gpt-5.6-sol",
23
24
  "openai/gpt-5.6-terra",
24
25
  "openai/gpt-5.6-luna",
26
+ "google/gemini-4-argon",
25
27
  "google/gemini-3.8-flash",
26
28
  "google/gemini-3.7-flash",
27
29
  "google/gemini-3.6-flash",
@@ -29,6 +31,7 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
29
31
  "google/gemini-3.1-pro-preview",
30
32
  "google/gemini-3.5-flash",
31
33
  "google/gemini-3.1-flash-lite",
34
+ "anthropic/claude-haiku-5.5",
32
35
  "anthropic/claude-sonnet-5.5",
33
36
  "anthropic/claude-sonnet-5",
34
37
  "anthropic/claude-opus-5",
@@ -62,10 +65,12 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
62
65
  "claude-opus-4-7",
63
66
  "claude-sonnet-4-6",
64
67
  "claude-opus-4-6",
68
+ "claude-haiku-5-5",
65
69
  "claude-haiku-4-5-20251001"
66
70
  ],
67
71
  bedrock: [
68
72
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
73
+ "us.anthropic.claude-haiku-5-5",
69
74
  "us.anthropic.claude-haiku-4-5-20251001-v1:0",
70
75
  "us.amazon.nova-pro-v1:0",
71
76
  "us.amazon.nova-lite-v1:0"
@@ -75,6 +80,7 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
75
80
  /** Every offered provider/model pair has explicit image-input evidence. */
76
81
  const MODEL_IMAGE_INPUT_CAPABILITIES = {
77
82
  google: {
83
+ "gemini-4-argon": "supported",
78
84
  "gemini-3.8-flash": "supported",
79
85
  "gemini-3.7-flash": "supported",
80
86
  "gemini-3.6-flash": "supported",
@@ -91,6 +97,7 @@ const MODEL_IMAGE_INPUT_CAPABILITIES = {
91
97
  "openai/gpt-5.6-sol": "supported",
92
98
  "openai/gpt-5.6-terra": "supported",
93
99
  "openai/gpt-5.6-luna": "supported",
100
+ "google/gemini-4-argon": "supported",
94
101
  "google/gemini-3.8-flash": "supported",
95
102
  "google/gemini-3.7-flash": "supported",
96
103
  "google/gemini-3.6-flash": "supported",
@@ -98,6 +105,7 @@ const MODEL_IMAGE_INPUT_CAPABILITIES = {
98
105
  "google/gemini-3.1-pro-preview": "supported",
99
106
  "google/gemini-3.5-flash": "supported",
100
107
  "google/gemini-3.1-flash-lite": "supported",
108
+ "anthropic/claude-haiku-5.5": "supported",
101
109
  "anthropic/claude-sonnet-5.5": "supported",
102
110
  "anthropic/claude-sonnet-5": "supported",
103
111
  "anthropic/claude-opus-5": "supported",
@@ -131,10 +139,12 @@ const MODEL_IMAGE_INPUT_CAPABILITIES = {
131
139
  "claude-opus-4-7": "supported",
132
140
  "claude-sonnet-4-6": "supported",
133
141
  "claude-opus-4-6": "supported",
142
+ "claude-haiku-5-5": "supported",
134
143
  "claude-haiku-4-5-20251001": "supported"
135
144
  },
136
145
  bedrock: {
137
146
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": "supported",
147
+ "us.anthropic.claude-haiku-5-5": "supported",
138
148
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": "supported",
139
149
  "us.amazon.nova-pro-v1:0": "supported",
140
150
  "us.amazon.nova-lite-v1:0": "supported",
@@ -156,6 +166,11 @@ const MODEL_IMAGE_INPUT_CAPABILITIES = {
156
166
  * through `resolveReasoningEffort`.
157
167
  */
158
168
  const MODEL_REASONING_EFFORTS = {
169
+ "gemini-4-argon": [
170
+ "low",
171
+ "medium",
172
+ "high"
173
+ ],
159
174
  "gemini-3.8-flash": [
160
175
  "low",
161
176
  "medium",
@@ -249,6 +264,11 @@ const MODEL_REASONING_EFFORTS = {
249
264
  "xhigh",
250
265
  "max"
251
266
  ],
267
+ "google/gemini-4-argon": [
268
+ "low",
269
+ "medium",
270
+ "high"
271
+ ],
252
272
  "google/gemini-3.8-flash": [
253
273
  "low",
254
274
  "medium",
@@ -289,6 +309,14 @@ const MODEL_REASONING_EFFORTS = {
289
309
  "medium",
290
310
  "high"
291
311
  ],
312
+ "anthropic/claude-haiku-5.5": [
313
+ "none",
314
+ "low",
315
+ "medium",
316
+ "high",
317
+ "xhigh",
318
+ "max"
319
+ ],
292
320
  "anthropic/claude-sonnet-5.5": [
293
321
  "low",
294
322
  "medium",
@@ -499,8 +527,24 @@ const MODEL_REASONING_EFFORTS = {
499
527
  "high",
500
528
  "max"
501
529
  ],
530
+ "claude-haiku-5-5": [
531
+ "none",
532
+ "low",
533
+ "medium",
534
+ "high",
535
+ "xhigh",
536
+ "max"
537
+ ],
502
538
  "claude-haiku-4-5-20251001": null,
503
539
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": null,
540
+ "us.anthropic.claude-haiku-5-5": [
541
+ "none",
542
+ "low",
543
+ "medium",
544
+ "high",
545
+ "xhigh",
546
+ "max"
547
+ ],
504
548
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": null,
505
549
  "us.amazon.nova-pro-v1:0": null,
506
550
  "us.amazon.nova-lite-v1:0": null,
@@ -526,6 +570,7 @@ const MODEL_REASONING_EFFORTS = {
526
570
  * a truthful named default, so clients must retain a separate Default choice.
527
571
  */
528
572
  const MODEL_DEFAULT_REASONING_EFFORTS = {
573
+ "gemini-4-argon": null,
529
574
  "gemini-3.8-flash": null,
530
575
  "gemini-3.7-flash": null,
531
576
  "gemini-3.6-flash": null,
@@ -540,6 +585,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
540
585
  "openai/gpt-5.6-sol": "medium",
541
586
  "openai/gpt-5.6-terra": "medium",
542
587
  "openai/gpt-5.6-luna": "medium",
588
+ "google/gemini-4-argon": "medium",
543
589
  "google/gemini-3.8-flash": "medium",
544
590
  "google/gemini-3.7-flash": "medium",
545
591
  "google/gemini-3.6-flash": "medium",
@@ -547,6 +593,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
547
593
  "google/gemini-3.1-pro-preview": "medium",
548
594
  "google/gemini-3.5-flash": "medium",
549
595
  "google/gemini-3.1-flash-lite": "minimal",
596
+ "anthropic/claude-haiku-5.5": "medium",
550
597
  "anthropic/claude-sonnet-5.5": "high",
551
598
  "anthropic/claude-sonnet-5": "high",
552
599
  "anthropic/claude-opus-5": "high",
@@ -576,8 +623,10 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
576
623
  "claude-opus-4-7": null,
577
624
  "claude-sonnet-4-6": null,
578
625
  "claude-opus-4-6": null,
626
+ "claude-haiku-5-5": null,
579
627
  "claude-haiku-4-5-20251001": null,
580
628
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": null,
629
+ "us.anthropic.claude-haiku-5-5": null,
581
630
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": null,
582
631
  "us.amazon.nova-pro-v1:0": null,
583
632
  "us.amazon.nova-lite-v1:0": null,
@@ -595,6 +644,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
595
644
  * parameters. Consumers must go through `shouldEmitTemperature`.
596
645
  */
597
646
  const MODEL_TEMPERATURE_POLICIES = {
647
+ "gemini-4-argon": "omit",
598
648
  "gemini-3.8-flash": "omit",
599
649
  "gemini-3.7-flash": "omit",
600
650
  "gemini-3.6-flash": "omit",
@@ -609,6 +659,7 @@ const MODEL_TEMPERATURE_POLICIES = {
609
659
  "openai/gpt-5.6-sol": "omit",
610
660
  "openai/gpt-5.6-terra": "omit",
611
661
  "openai/gpt-5.6-luna": "omit",
662
+ "google/gemini-4-argon": "omit",
612
663
  "google/gemini-3.8-flash": "omit",
613
664
  "google/gemini-3.7-flash": "omit",
614
665
  "google/gemini-3.6-flash": "omit",
@@ -616,6 +667,7 @@ const MODEL_TEMPERATURE_POLICIES = {
616
667
  "google/gemini-3.1-pro-preview": "emit",
617
668
  "google/gemini-3.5-flash": "emit",
618
669
  "google/gemini-3.1-flash-lite": "emit",
670
+ "anthropic/claude-haiku-5.5": "omit",
619
671
  "anthropic/claude-sonnet-5.5": "omit",
620
672
  "anthropic/claude-sonnet-5": "omit",
621
673
  "anthropic/claude-opus-5": "omit",
@@ -645,8 +697,10 @@ const MODEL_TEMPERATURE_POLICIES = {
645
697
  "claude-opus-4-7": "omit",
646
698
  "claude-sonnet-4-6": "emit",
647
699
  "claude-opus-4-6": "emit",
700
+ "claude-haiku-5-5": "omit",
648
701
  "claude-haiku-4-5-20251001": "emit",
649
702
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": "emit",
703
+ "us.anthropic.claude-haiku-5-5": "omit",
650
704
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": "emit",
651
705
  "us.amazon.nova-pro-v1:0": "emit",
652
706
  "us.amazon.nova-lite-v1:0": "emit",
@@ -664,6 +718,7 @@ const MODEL_TEMPERATURE_POLICIES = {
664
718
  * `getOutputTokenLimit`.
665
719
  */
666
720
  const MODEL_OUTPUT_TOKEN_LIMITS = {
721
+ "gemini-4-argon": 32768,
667
722
  "gemini-3.8-flash": 65536,
668
723
  "gemini-3.7-flash": 65536,
669
724
  "gemini-3.6-flash": 65536,
@@ -678,6 +733,7 @@ const MODEL_OUTPUT_TOKEN_LIMITS = {
678
733
  "openai/gpt-5.6-sol": 128e3,
679
734
  "openai/gpt-5.6-terra": 128e3,
680
735
  "openai/gpt-5.6-luna": 128e3,
736
+ "google/gemini-4-argon": 65536,
681
737
  "google/gemini-3.8-flash": 65536,
682
738
  "google/gemini-3.7-flash": 65536,
683
739
  "google/gemini-3.6-flash": 65536,
@@ -685,6 +741,7 @@ const MODEL_OUTPUT_TOKEN_LIMITS = {
685
741
  "google/gemini-3.1-pro-preview": 65536,
686
742
  "google/gemini-3.5-flash": 65536,
687
743
  "google/gemini-3.1-flash-lite": 65536,
744
+ "anthropic/claude-haiku-5.5": 128e3,
688
745
  "anthropic/claude-sonnet-5.5": 128e3,
689
746
  "anthropic/claude-sonnet-5": 128e3,
690
747
  "anthropic/claude-opus-5": 128e3,
@@ -714,8 +771,10 @@ const MODEL_OUTPUT_TOKEN_LIMITS = {
714
771
  "claude-opus-4-7": 128e3,
715
772
  "claude-sonnet-4-6": 128e3,
716
773
  "claude-opus-4-6": 128e3,
774
+ "claude-haiku-5-5": 128e3,
717
775
  "claude-haiku-4-5-20251001": 64e3,
718
776
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": 64e3,
777
+ "us.anthropic.claude-haiku-5-5": 128e3,
719
778
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": 64e3,
720
779
  "us.amazon.nova-pro-v1:0": 1e4,
721
780
  "us.amazon.nova-lite-v1:0": 1e4,
@@ -730,6 +789,12 @@ const MODEL_OUTPUT_TOKEN_LIMITS = {
730
789
  //#endregion
731
790
  //#region src/model-rates.gen.ts
732
791
  const MODEL_RATES = {
792
+ "gemini-4-argon": {
793
+ kind: "flat",
794
+ inputPerMTok: 2e5,
795
+ outputPerMTok: 1e6,
796
+ cachedInputPerMTok: 1e4
797
+ },
733
798
  "gemini-3.8-flash": {
734
799
  kind: "flat",
735
800
  inputPerMTok: 75e3,
@@ -1008,6 +1073,22 @@ const MODEL_RATES = {
1008
1073
  cachedInputPerMTok: 5e4,
1009
1074
  cachedWriteInputPerMTok: 625e3
1010
1075
  },
1076
+ "claude-haiku-5-5": {
1077
+ kind: "input-token-tiered",
1078
+ inputTokenThreshold: 1e5,
1079
+ standard: {
1080
+ inputPerMTok: 1e4,
1081
+ outputPerMTok: 5e4,
1082
+ cachedInputPerMTok: 1e3,
1083
+ cachedWriteInputPerMTok: 12500
1084
+ },
1085
+ aboveThreshold: {
1086
+ inputPerMTok: 5e4,
1087
+ outputPerMTok: 25e4,
1088
+ cachedInputPerMTok: 5e3,
1089
+ cachedWriteInputPerMTok: 62500
1090
+ }
1091
+ },
1011
1092
  "claude-haiku-4-5-20251001": {
1012
1093
  kind: "flat",
1013
1094
  inputPerMTok: 1e5,
@@ -1022,6 +1103,22 @@ const MODEL_RATES = {
1022
1103
  cachedInputPerMTok: 33e3,
1023
1104
  cachedWriteInputPerMTok: 412500
1024
1105
  },
1106
+ "us.anthropic.claude-haiku-5-5": {
1107
+ kind: "input-token-tiered",
1108
+ inputTokenThreshold: 1e5,
1109
+ standard: {
1110
+ inputPerMTok: 11e3,
1111
+ outputPerMTok: 55e3,
1112
+ cachedInputPerMTok: 1100,
1113
+ cachedWriteInputPerMTok: 13750
1114
+ },
1115
+ aboveThreshold: {
1116
+ inputPerMTok: 55e3,
1117
+ outputPerMTok: 275e3,
1118
+ cachedInputPerMTok: 5500,
1119
+ cachedWriteInputPerMTok: 68750
1120
+ }
1121
+ },
1025
1122
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
1026
1123
  kind: "flat",
1027
1124
  inputPerMTok: 11e4,
@@ -1123,6 +1220,730 @@ const MODEL_RATES = {
1123
1220
  }
1124
1221
  };
1125
1222
  //#endregion
1223
+ //#region src/reasoning-capabilities.ts
1224
+ const REASONING_REPLAY_FORMATS = [
1225
+ "openai-encrypted-content",
1226
+ "openai-item-id",
1227
+ "anthropic-thinking-signature",
1228
+ "anthropic-redacted-thinking",
1229
+ "google-thought-signature",
1230
+ "none"
1231
+ ];
1232
+ const MODEL_REASONING_CAPABILITIES = {
1233
+ "gemini-4-argon": {
1234
+ support: "supported",
1235
+ emittedFormats: ["google-thought-signature"],
1236
+ openAIIncludeEncryptedContent: false,
1237
+ openAIStore: null,
1238
+ anthropicThinking: "none",
1239
+ replayCompatibility: [{
1240
+ provider: "google",
1241
+ model: "gemini-4-argon",
1242
+ format: "google-thought-signature"
1243
+ }]
1244
+ },
1245
+ "gemini-3.8-flash": {
1246
+ support: "supported",
1247
+ emittedFormats: ["google-thought-signature"],
1248
+ openAIIncludeEncryptedContent: false,
1249
+ openAIStore: null,
1250
+ anthropicThinking: "none",
1251
+ replayCompatibility: [{
1252
+ provider: "google",
1253
+ model: "gemini-3.8-flash",
1254
+ format: "google-thought-signature"
1255
+ }]
1256
+ },
1257
+ "gemini-3.7-flash": {
1258
+ support: "supported",
1259
+ emittedFormats: ["google-thought-signature"],
1260
+ openAIIncludeEncryptedContent: false,
1261
+ openAIStore: null,
1262
+ anthropicThinking: "none",
1263
+ replayCompatibility: [{
1264
+ provider: "google",
1265
+ model: "gemini-3.7-flash",
1266
+ format: "google-thought-signature"
1267
+ }]
1268
+ },
1269
+ "gemini-3.6-flash": {
1270
+ support: "supported",
1271
+ emittedFormats: ["google-thought-signature"],
1272
+ openAIIncludeEncryptedContent: false,
1273
+ openAIStore: null,
1274
+ anthropicThinking: "none",
1275
+ replayCompatibility: [{
1276
+ provider: "google",
1277
+ model: "gemini-3.6-flash",
1278
+ format: "google-thought-signature"
1279
+ }]
1280
+ },
1281
+ "gemini-3.5-flash-lite": {
1282
+ support: "supported",
1283
+ emittedFormats: ["google-thought-signature"],
1284
+ openAIIncludeEncryptedContent: false,
1285
+ openAIStore: null,
1286
+ anthropicThinking: "none",
1287
+ replayCompatibility: [{
1288
+ provider: "google",
1289
+ model: "gemini-3.5-flash-lite",
1290
+ format: "google-thought-signature"
1291
+ }]
1292
+ },
1293
+ "gemini-3.1-pro-preview": {
1294
+ support: "supported",
1295
+ emittedFormats: ["google-thought-signature"],
1296
+ openAIIncludeEncryptedContent: false,
1297
+ openAIStore: null,
1298
+ anthropicThinking: "none",
1299
+ replayCompatibility: [{
1300
+ provider: "google",
1301
+ model: "gemini-3.1-pro-preview",
1302
+ format: "google-thought-signature"
1303
+ }]
1304
+ },
1305
+ "gemini-3.5-flash": {
1306
+ support: "supported",
1307
+ emittedFormats: ["google-thought-signature"],
1308
+ openAIIncludeEncryptedContent: false,
1309
+ openAIStore: null,
1310
+ anthropicThinking: "none",
1311
+ replayCompatibility: [{
1312
+ provider: "google",
1313
+ model: "gemini-3.5-flash",
1314
+ format: "google-thought-signature"
1315
+ }]
1316
+ },
1317
+ "gemini-3.1-flash-lite": {
1318
+ support: "supported",
1319
+ emittedFormats: ["google-thought-signature"],
1320
+ openAIIncludeEncryptedContent: false,
1321
+ openAIStore: null,
1322
+ anthropicThinking: "none",
1323
+ replayCompatibility: [{
1324
+ provider: "google",
1325
+ model: "gemini-3.1-flash-lite",
1326
+ format: "google-thought-signature"
1327
+ }]
1328
+ },
1329
+ "openai/gpt-6.1-sol": {
1330
+ support: "supported",
1331
+ emittedFormats: ["none"],
1332
+ openAIIncludeEncryptedContent: false,
1333
+ openAIStore: null,
1334
+ anthropicThinking: "none",
1335
+ replayCompatibility: []
1336
+ },
1337
+ "openai/gpt-6-astra": {
1338
+ support: "supported",
1339
+ emittedFormats: ["none"],
1340
+ openAIIncludeEncryptedContent: false,
1341
+ openAIStore: null,
1342
+ anthropicThinking: "none",
1343
+ replayCompatibility: []
1344
+ },
1345
+ "openai/gpt-6-sol": {
1346
+ support: "supported",
1347
+ emittedFormats: ["none"],
1348
+ openAIIncludeEncryptedContent: false,
1349
+ openAIStore: null,
1350
+ anthropicThinking: "none",
1351
+ replayCompatibility: []
1352
+ },
1353
+ "openai/gpt-6-luna": {
1354
+ support: "supported",
1355
+ emittedFormats: ["none"],
1356
+ openAIIncludeEncryptedContent: false,
1357
+ openAIStore: null,
1358
+ anthropicThinking: "none",
1359
+ replayCompatibility: []
1360
+ },
1361
+ "openai/gpt-5.6-sol": {
1362
+ support: "supported",
1363
+ emittedFormats: ["none"],
1364
+ openAIIncludeEncryptedContent: false,
1365
+ openAIStore: null,
1366
+ anthropicThinking: "none",
1367
+ replayCompatibility: []
1368
+ },
1369
+ "openai/gpt-5.6-terra": {
1370
+ support: "supported",
1371
+ emittedFormats: ["none"],
1372
+ openAIIncludeEncryptedContent: false,
1373
+ openAIStore: null,
1374
+ anthropicThinking: "none",
1375
+ replayCompatibility: []
1376
+ },
1377
+ "openai/gpt-5.6-luna": {
1378
+ support: "supported",
1379
+ emittedFormats: ["none"],
1380
+ openAIIncludeEncryptedContent: false,
1381
+ openAIStore: null,
1382
+ anthropicThinking: "none",
1383
+ replayCompatibility: []
1384
+ },
1385
+ "google/gemini-4-argon": {
1386
+ support: "supported",
1387
+ emittedFormats: ["none"],
1388
+ openAIIncludeEncryptedContent: false,
1389
+ openAIStore: null,
1390
+ anthropicThinking: "none",
1391
+ replayCompatibility: []
1392
+ },
1393
+ "google/gemini-3.8-flash": {
1394
+ support: "supported",
1395
+ emittedFormats: ["none"],
1396
+ openAIIncludeEncryptedContent: false,
1397
+ openAIStore: null,
1398
+ anthropicThinking: "none",
1399
+ replayCompatibility: []
1400
+ },
1401
+ "google/gemini-3.7-flash": {
1402
+ support: "supported",
1403
+ emittedFormats: ["none"],
1404
+ openAIIncludeEncryptedContent: false,
1405
+ openAIStore: null,
1406
+ anthropicThinking: "none",
1407
+ replayCompatibility: []
1408
+ },
1409
+ "google/gemini-3.6-flash": {
1410
+ support: "supported",
1411
+ emittedFormats: ["none"],
1412
+ openAIIncludeEncryptedContent: false,
1413
+ openAIStore: null,
1414
+ anthropicThinking: "none",
1415
+ replayCompatibility: []
1416
+ },
1417
+ "google/gemini-3.5-flash-lite": {
1418
+ support: "supported",
1419
+ emittedFormats: ["none"],
1420
+ openAIIncludeEncryptedContent: false,
1421
+ openAIStore: null,
1422
+ anthropicThinking: "none",
1423
+ replayCompatibility: []
1424
+ },
1425
+ "google/gemini-3.1-pro-preview": {
1426
+ support: "supported",
1427
+ emittedFormats: ["none"],
1428
+ openAIIncludeEncryptedContent: false,
1429
+ openAIStore: null,
1430
+ anthropicThinking: "none",
1431
+ replayCompatibility: []
1432
+ },
1433
+ "google/gemini-3.5-flash": {
1434
+ support: "supported",
1435
+ emittedFormats: ["none"],
1436
+ openAIIncludeEncryptedContent: false,
1437
+ openAIStore: null,
1438
+ anthropicThinking: "none",
1439
+ replayCompatibility: []
1440
+ },
1441
+ "google/gemini-3.1-flash-lite": {
1442
+ support: "supported",
1443
+ emittedFormats: ["none"],
1444
+ openAIIncludeEncryptedContent: false,
1445
+ openAIStore: null,
1446
+ anthropicThinking: "none",
1447
+ replayCompatibility: []
1448
+ },
1449
+ "anthropic/claude-haiku-5.5": {
1450
+ support: "supported",
1451
+ emittedFormats: ["none"],
1452
+ openAIIncludeEncryptedContent: false,
1453
+ openAIStore: null,
1454
+ anthropicThinking: "none",
1455
+ replayCompatibility: []
1456
+ },
1457
+ "anthropic/claude-sonnet-5.5": {
1458
+ support: "supported",
1459
+ emittedFormats: ["none"],
1460
+ openAIIncludeEncryptedContent: false,
1461
+ openAIStore: null,
1462
+ anthropicThinking: "none",
1463
+ replayCompatibility: []
1464
+ },
1465
+ "anthropic/claude-sonnet-5": {
1466
+ support: "supported",
1467
+ emittedFormats: ["none"],
1468
+ openAIIncludeEncryptedContent: false,
1469
+ openAIStore: null,
1470
+ anthropicThinking: "none",
1471
+ replayCompatibility: []
1472
+ },
1473
+ "anthropic/claude-opus-5": {
1474
+ support: "supported",
1475
+ emittedFormats: ["none"],
1476
+ openAIIncludeEncryptedContent: false,
1477
+ openAIStore: null,
1478
+ anthropicThinking: "none",
1479
+ replayCompatibility: []
1480
+ },
1481
+ "anthropic/claude-opus-4.8": {
1482
+ support: "supported",
1483
+ emittedFormats: ["none"],
1484
+ openAIIncludeEncryptedContent: false,
1485
+ openAIStore: null,
1486
+ anthropicThinking: "none",
1487
+ replayCompatibility: []
1488
+ },
1489
+ "anthropic/claude-sonnet-4.6": {
1490
+ support: "supported",
1491
+ emittedFormats: ["none"],
1492
+ openAIIncludeEncryptedContent: false,
1493
+ openAIStore: null,
1494
+ anthropicThinking: "none",
1495
+ replayCompatibility: []
1496
+ },
1497
+ "openai/gpt-5.5": {
1498
+ support: "supported",
1499
+ emittedFormats: ["none"],
1500
+ openAIIncludeEncryptedContent: false,
1501
+ openAIStore: null,
1502
+ anthropicThinking: "none",
1503
+ replayCompatibility: []
1504
+ },
1505
+ "openai/gpt-5.4-mini": {
1506
+ support: "supported",
1507
+ emittedFormats: ["none"],
1508
+ openAIIncludeEncryptedContent: false,
1509
+ openAIStore: null,
1510
+ anthropicThinking: "none",
1511
+ replayCompatibility: []
1512
+ },
1513
+ "gpt-6.1-sol": {
1514
+ support: "supported",
1515
+ emittedFormats: ["openai-encrypted-content"],
1516
+ openAIIncludeEncryptedContent: true,
1517
+ openAIStore: false,
1518
+ anthropicThinking: "none",
1519
+ replayCompatibility: [{
1520
+ provider: "openai",
1521
+ model: "gpt-6.1-sol",
1522
+ format: "openai-encrypted-content"
1523
+ }]
1524
+ },
1525
+ "gpt-6-astra": {
1526
+ support: "supported",
1527
+ emittedFormats: ["openai-encrypted-content"],
1528
+ openAIIncludeEncryptedContent: true,
1529
+ openAIStore: false,
1530
+ anthropicThinking: "none",
1531
+ replayCompatibility: [{
1532
+ provider: "openai",
1533
+ model: "gpt-6-astra",
1534
+ format: "openai-encrypted-content"
1535
+ }]
1536
+ },
1537
+ "gpt-6-sol": {
1538
+ support: "supported",
1539
+ emittedFormats: ["openai-encrypted-content"],
1540
+ openAIIncludeEncryptedContent: true,
1541
+ openAIStore: false,
1542
+ anthropicThinking: "none",
1543
+ replayCompatibility: [{
1544
+ provider: "openai",
1545
+ model: "gpt-6-sol",
1546
+ format: "openai-encrypted-content"
1547
+ }]
1548
+ },
1549
+ "gpt-6-luna": {
1550
+ support: "supported",
1551
+ emittedFormats: ["openai-encrypted-content"],
1552
+ openAIIncludeEncryptedContent: true,
1553
+ openAIStore: false,
1554
+ anthropicThinking: "none",
1555
+ replayCompatibility: [{
1556
+ provider: "openai",
1557
+ model: "gpt-6-luna",
1558
+ format: "openai-encrypted-content"
1559
+ }]
1560
+ },
1561
+ "gpt-5.6": {
1562
+ support: "supported",
1563
+ emittedFormats: ["openai-encrypted-content"],
1564
+ openAIIncludeEncryptedContent: true,
1565
+ openAIStore: false,
1566
+ anthropicThinking: "none",
1567
+ replayCompatibility: [{
1568
+ provider: "openai",
1569
+ model: "gpt-5.6",
1570
+ format: "openai-encrypted-content"
1571
+ }]
1572
+ },
1573
+ "gpt-5.6-terra": {
1574
+ support: "supported",
1575
+ emittedFormats: ["openai-encrypted-content"],
1576
+ openAIIncludeEncryptedContent: true,
1577
+ openAIStore: false,
1578
+ anthropicThinking: "none",
1579
+ replayCompatibility: [{
1580
+ provider: "openai",
1581
+ model: "gpt-5.6-terra",
1582
+ format: "openai-encrypted-content"
1583
+ }]
1584
+ },
1585
+ "gpt-5.6-luna": {
1586
+ support: "supported",
1587
+ emittedFormats: ["openai-encrypted-content"],
1588
+ openAIIncludeEncryptedContent: true,
1589
+ openAIStore: false,
1590
+ anthropicThinking: "none",
1591
+ replayCompatibility: [{
1592
+ provider: "openai",
1593
+ model: "gpt-5.6-luna",
1594
+ format: "openai-encrypted-content"
1595
+ }]
1596
+ },
1597
+ "gpt-5.5": {
1598
+ support: "supported",
1599
+ emittedFormats: ["openai-encrypted-content"],
1600
+ openAIIncludeEncryptedContent: true,
1601
+ openAIStore: false,
1602
+ anthropicThinking: "none",
1603
+ replayCompatibility: [{
1604
+ provider: "openai",
1605
+ model: "gpt-5.5",
1606
+ format: "openai-encrypted-content"
1607
+ }]
1608
+ },
1609
+ "gpt-5.4": {
1610
+ support: "supported",
1611
+ emittedFormats: ["openai-encrypted-content"],
1612
+ openAIIncludeEncryptedContent: true,
1613
+ openAIStore: false,
1614
+ anthropicThinking: "none",
1615
+ replayCompatibility: [{
1616
+ provider: "openai",
1617
+ model: "gpt-5.4",
1618
+ format: "openai-encrypted-content"
1619
+ }]
1620
+ },
1621
+ "gpt-5.4-mini": {
1622
+ support: "supported",
1623
+ emittedFormats: ["openai-encrypted-content"],
1624
+ openAIIncludeEncryptedContent: true,
1625
+ openAIStore: false,
1626
+ anthropicThinking: "none",
1627
+ replayCompatibility: [{
1628
+ provider: "openai",
1629
+ model: "gpt-5.4-mini",
1630
+ format: "openai-encrypted-content"
1631
+ }]
1632
+ },
1633
+ "gpt-5.4-nano": {
1634
+ support: "supported",
1635
+ emittedFormats: ["openai-encrypted-content"],
1636
+ openAIIncludeEncryptedContent: true,
1637
+ openAIStore: false,
1638
+ anthropicThinking: "none",
1639
+ replayCompatibility: [{
1640
+ provider: "openai",
1641
+ model: "gpt-5.4-nano",
1642
+ format: "openai-encrypted-content"
1643
+ }]
1644
+ },
1645
+ "gpt-5.2": {
1646
+ support: "supported",
1647
+ emittedFormats: ["openai-encrypted-content"],
1648
+ openAIIncludeEncryptedContent: true,
1649
+ openAIStore: false,
1650
+ anthropicThinking: "none",
1651
+ replayCompatibility: [{
1652
+ provider: "openai",
1653
+ model: "gpt-5.2",
1654
+ format: "openai-encrypted-content"
1655
+ }]
1656
+ },
1657
+ "claude-sonnet-5-5": {
1658
+ support: "supported",
1659
+ emittedFormats: ["anthropic-thinking-signature"],
1660
+ openAIIncludeEncryptedContent: false,
1661
+ openAIStore: null,
1662
+ anthropicThinking: "adaptive",
1663
+ replayCompatibility: [{
1664
+ provider: "anthropic",
1665
+ model: "claude-sonnet-5-5",
1666
+ format: "anthropic-thinking-signature"
1667
+ }]
1668
+ },
1669
+ "claude-sonnet-5": {
1670
+ support: "supported",
1671
+ emittedFormats: ["anthropic-thinking-signature"],
1672
+ openAIIncludeEncryptedContent: false,
1673
+ openAIStore: null,
1674
+ anthropicThinking: "adaptive",
1675
+ replayCompatibility: [{
1676
+ provider: "anthropic",
1677
+ model: "claude-sonnet-5",
1678
+ format: "anthropic-thinking-signature"
1679
+ }]
1680
+ },
1681
+ "claude-fable-5-1": {
1682
+ support: "supported",
1683
+ emittedFormats: ["anthropic-thinking-signature"],
1684
+ openAIIncludeEncryptedContent: false,
1685
+ openAIStore: null,
1686
+ anthropicThinking: "adaptive",
1687
+ replayCompatibility: [{
1688
+ provider: "anthropic",
1689
+ model: "claude-fable-5-1",
1690
+ format: "anthropic-thinking-signature"
1691
+ }]
1692
+ },
1693
+ "claude-fable-5": {
1694
+ support: "supported",
1695
+ emittedFormats: ["anthropic-thinking-signature"],
1696
+ openAIIncludeEncryptedContent: false,
1697
+ openAIStore: null,
1698
+ anthropicThinking: "adaptive",
1699
+ replayCompatibility: [{
1700
+ provider: "anthropic",
1701
+ model: "claude-fable-5",
1702
+ format: "anthropic-thinking-signature"
1703
+ }]
1704
+ },
1705
+ "claude-opus-5-5": {
1706
+ support: "supported",
1707
+ emittedFormats: ["anthropic-thinking-signature"],
1708
+ openAIIncludeEncryptedContent: false,
1709
+ openAIStore: null,
1710
+ anthropicThinking: "adaptive",
1711
+ replayCompatibility: [{
1712
+ provider: "anthropic",
1713
+ model: "claude-opus-5-5",
1714
+ format: "anthropic-thinking-signature"
1715
+ }]
1716
+ },
1717
+ "claude-opus-5": {
1718
+ support: "supported",
1719
+ emittedFormats: ["anthropic-thinking-signature"],
1720
+ openAIIncludeEncryptedContent: false,
1721
+ openAIStore: null,
1722
+ anthropicThinking: "adaptive",
1723
+ replayCompatibility: [{
1724
+ provider: "anthropic",
1725
+ model: "claude-opus-5",
1726
+ format: "anthropic-thinking-signature"
1727
+ }]
1728
+ },
1729
+ "claude-opus-4-8": {
1730
+ support: "supported",
1731
+ emittedFormats: ["anthropic-thinking-signature"],
1732
+ openAIIncludeEncryptedContent: false,
1733
+ openAIStore: null,
1734
+ anthropicThinking: "adaptive",
1735
+ replayCompatibility: [{
1736
+ provider: "anthropic",
1737
+ model: "claude-opus-4-8",
1738
+ format: "anthropic-thinking-signature"
1739
+ }]
1740
+ },
1741
+ "claude-opus-4-7": {
1742
+ support: "supported",
1743
+ emittedFormats: ["anthropic-thinking-signature"],
1744
+ openAIIncludeEncryptedContent: false,
1745
+ openAIStore: null,
1746
+ anthropicThinking: "adaptive",
1747
+ replayCompatibility: [{
1748
+ provider: "anthropic",
1749
+ model: "claude-opus-4-7",
1750
+ format: "anthropic-thinking-signature"
1751
+ }]
1752
+ },
1753
+ "claude-sonnet-4-6": {
1754
+ support: "supported",
1755
+ emittedFormats: ["anthropic-thinking-signature"],
1756
+ openAIIncludeEncryptedContent: false,
1757
+ openAIStore: null,
1758
+ anthropicThinking: "adaptive",
1759
+ replayCompatibility: [{
1760
+ provider: "anthropic",
1761
+ model: "claude-sonnet-4-6",
1762
+ format: "anthropic-thinking-signature"
1763
+ }]
1764
+ },
1765
+ "claude-opus-4-6": {
1766
+ support: "supported",
1767
+ emittedFormats: ["anthropic-thinking-signature"],
1768
+ openAIIncludeEncryptedContent: false,
1769
+ openAIStore: null,
1770
+ anthropicThinking: "adaptive",
1771
+ replayCompatibility: [{
1772
+ provider: "anthropic",
1773
+ model: "claude-opus-4-6",
1774
+ format: "anthropic-thinking-signature"
1775
+ }]
1776
+ },
1777
+ "claude-haiku-5-5": {
1778
+ support: "supported",
1779
+ emittedFormats: ["anthropic-thinking-signature"],
1780
+ openAIIncludeEncryptedContent: false,
1781
+ openAIStore: null,
1782
+ anthropicThinking: "adaptive",
1783
+ replayCompatibility: [{
1784
+ provider: "anthropic",
1785
+ model: "claude-haiku-5-5",
1786
+ format: "anthropic-thinking-signature"
1787
+ }]
1788
+ },
1789
+ "us.anthropic.claude-haiku-5-5": {
1790
+ support: "supported",
1791
+ emittedFormats: ["none"],
1792
+ openAIIncludeEncryptedContent: false,
1793
+ openAIStore: null,
1794
+ anthropicThinking: "none",
1795
+ replayCompatibility: []
1796
+ },
1797
+ "claude-haiku-4-5-20251001": {
1798
+ support: "supported",
1799
+ emittedFormats: ["anthropic-thinking-signature"],
1800
+ openAIIncludeEncryptedContent: false,
1801
+ openAIStore: null,
1802
+ anthropicThinking: "budget",
1803
+ replayCompatibility: [{
1804
+ provider: "anthropic",
1805
+ model: "claude-haiku-4-5-20251001",
1806
+ format: "anthropic-thinking-signature"
1807
+ }]
1808
+ },
1809
+ "us.anthropic.claude-sonnet-4-5-20250929-v1:0": {
1810
+ support: "supported",
1811
+ emittedFormats: ["none"],
1812
+ openAIIncludeEncryptedContent: false,
1813
+ openAIStore: null,
1814
+ anthropicThinking: "none",
1815
+ replayCompatibility: []
1816
+ },
1817
+ "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
1818
+ support: "supported",
1819
+ emittedFormats: ["none"],
1820
+ openAIIncludeEncryptedContent: false,
1821
+ openAIStore: null,
1822
+ anthropicThinking: "none",
1823
+ replayCompatibility: []
1824
+ },
1825
+ "us.amazon.nova-pro-v1:0": {
1826
+ support: "unsupported",
1827
+ emittedFormats: ["none"],
1828
+ openAIIncludeEncryptedContent: false,
1829
+ openAIStore: null,
1830
+ anthropicThinking: "none",
1831
+ replayCompatibility: []
1832
+ },
1833
+ "us.amazon.nova-lite-v1:0": {
1834
+ support: "unsupported",
1835
+ emittedFormats: ["none"],
1836
+ openAIIncludeEncryptedContent: false,
1837
+ openAIStore: null,
1838
+ anthropicThinking: "none",
1839
+ replayCompatibility: []
1840
+ },
1841
+ "us.amazon.nova-micro-v1:0": {
1842
+ support: "unsupported",
1843
+ emittedFormats: ["none"],
1844
+ openAIIncludeEncryptedContent: false,
1845
+ openAIStore: null,
1846
+ anthropicThinking: "none",
1847
+ replayCompatibility: []
1848
+ },
1849
+ "openai.gpt-oss-120b-1:0": {
1850
+ support: "supported",
1851
+ emittedFormats: ["none"],
1852
+ openAIIncludeEncryptedContent: false,
1853
+ openAIStore: null,
1854
+ anthropicThinking: "none",
1855
+ replayCompatibility: []
1856
+ },
1857
+ "openai.gpt-oss-20b-1:0": {
1858
+ support: "supported",
1859
+ emittedFormats: ["none"],
1860
+ openAIIncludeEncryptedContent: false,
1861
+ openAIStore: null,
1862
+ anthropicThinking: "none",
1863
+ replayCompatibility: []
1864
+ },
1865
+ "mistral-large-4": {
1866
+ support: "supported",
1867
+ emittedFormats: ["none"],
1868
+ openAIIncludeEncryptedContent: false,
1869
+ openAIStore: null,
1870
+ anthropicThinking: "none",
1871
+ replayCompatibility: []
1872
+ },
1873
+ "mistral-large-latest": {
1874
+ support: "unsupported",
1875
+ emittedFormats: ["none"],
1876
+ openAIIncludeEncryptedContent: false,
1877
+ openAIStore: null,
1878
+ anthropicThinking: "none",
1879
+ replayCompatibility: []
1880
+ },
1881
+ "mistral-medium-latest": {
1882
+ support: "supported",
1883
+ emittedFormats: ["none"],
1884
+ openAIIncludeEncryptedContent: false,
1885
+ openAIStore: null,
1886
+ anthropicThinking: "none",
1887
+ replayCompatibility: []
1888
+ },
1889
+ "mistral-small-latest": {
1890
+ support: "supported",
1891
+ emittedFormats: ["none"],
1892
+ openAIIncludeEncryptedContent: false,
1893
+ openAIStore: null,
1894
+ anthropicThinking: "none",
1895
+ replayCompatibility: []
1896
+ },
1897
+ "gemini-2.5-flash": {
1898
+ support: "supported",
1899
+ emittedFormats: ["google-thought-signature"],
1900
+ openAIIncludeEncryptedContent: false,
1901
+ openAIStore: null,
1902
+ anthropicThinking: "none",
1903
+ replayCompatibility: [{
1904
+ provider: "google",
1905
+ model: "gemini-2.5-flash",
1906
+ format: "google-thought-signature"
1907
+ }]
1908
+ },
1909
+ "gemini-2.5-pro": {
1910
+ support: "supported",
1911
+ emittedFormats: ["google-thought-signature"],
1912
+ openAIIncludeEncryptedContent: false,
1913
+ openAIStore: null,
1914
+ anthropicThinking: "none",
1915
+ replayCompatibility: [{
1916
+ provider: "google",
1917
+ model: "gemini-2.5-pro",
1918
+ format: "google-thought-signature"
1919
+ }]
1920
+ },
1921
+ "gpt-4o-mini": {
1922
+ support: "unsupported",
1923
+ emittedFormats: ["none"],
1924
+ openAIIncludeEncryptedContent: false,
1925
+ openAIStore: false,
1926
+ anthropicThinking: "none",
1927
+ replayCompatibility: []
1928
+ },
1929
+ "gpt-4o": {
1930
+ support: "unsupported",
1931
+ emittedFormats: ["none"],
1932
+ openAIIncludeEncryptedContent: false,
1933
+ openAIStore: false,
1934
+ anthropicThinking: "none",
1935
+ replayCompatibility: []
1936
+ },
1937
+ "us.deepseek.r1-v1:0": {
1938
+ support: "supported",
1939
+ emittedFormats: ["none"],
1940
+ openAIIncludeEncryptedContent: false,
1941
+ openAIStore: null,
1942
+ anthropicThinking: "none",
1943
+ replayCompatibility: []
1944
+ }
1945
+ };
1946
+ //#endregion
1126
1947
  //#region src/model-rate.ts
1127
1948
  /**
1128
1949
  * models.dev publishes USD prices per one million tokens. Stella stores the
@@ -1352,56 +2173,159 @@ const GPT_56_MODEL_IDS = {
1352
2173
  };
1353
2174
  const GPT_56_OPENAI_MODEL_IDS = Object.values(GPT_56_MODEL_IDS).map(({ openai }) => openai);
1354
2175
  const GPT_56_OPENROUTER_MODEL_IDS = Object.values(GPT_56_MODEL_IDS).map(({ openrouter }) => openrouter);
1355
- /**
1356
- * Per-role default model IDs for the BYOK-capable cloud providers.
1357
- * Shared between the instance default table (`DEFAULT_MODELS`) and the
1358
- * settings-UI default selection, so a default is defined exactly once.
1359
- */
1360
2176
  const BYOK_DEFAULT_MODELS = {
1361
2177
  google: {
1362
- fast: "gemini-3.8-flash",
1363
- chat: "gemini-3.8-flash",
1364
- reasoning: "gemini-3.8-flash",
1365
- pdf: "gemini-3.8-flash"
2178
+ fast: {
2179
+ kind: "default",
2180
+ modelId: "gemini-3.8-flash",
2181
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2182
+ },
2183
+ chat: {
2184
+ kind: "default",
2185
+ modelId: "gemini-3.8-flash",
2186
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2187
+ },
2188
+ reasoning: {
2189
+ kind: "default",
2190
+ modelId: "gemini-3.8-flash",
2191
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2192
+ },
2193
+ pdf: {
2194
+ kind: "default",
2195
+ modelId: "gemini-3.8-flash",
2196
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2197
+ }
1366
2198
  },
1367
2199
  openrouter: {
1368
- fast: GPT_6_MODEL_IDS.luna.openrouter,
1369
- chat: GPT_6_MODEL_IDS.sol.openrouter,
1370
- reasoning: GPT_6_MODEL_IDS.sol.openrouter,
1371
- pdf: GPT_6_MODEL_IDS.sol.openrouter
2200
+ fast: {
2201
+ kind: "default",
2202
+ modelId: GPT_6_MODEL_IDS.luna.openrouter,
2203
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2204
+ },
2205
+ chat: {
2206
+ kind: "default",
2207
+ modelId: GPT_6_MODEL_IDS.sol.openrouter,
2208
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2209
+ },
2210
+ reasoning: {
2211
+ kind: "default",
2212
+ modelId: GPT_6_MODEL_IDS.sol.openrouter,
2213
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2214
+ },
2215
+ pdf: {
2216
+ kind: "default",
2217
+ modelId: GPT_6_MODEL_IDS.sol.openrouter,
2218
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2219
+ }
1372
2220
  },
1373
2221
  openai: {
1374
- fast: GPT_6_MODEL_IDS.luna.openai,
1375
- chat: GPT_6_MODEL_IDS.sol.openai,
1376
- reasoning: GPT_6_MODEL_IDS.sol.openai,
1377
- pdf: GPT_6_MODEL_IDS.sol.openai
2222
+ fast: {
2223
+ kind: "default",
2224
+ modelId: GPT_6_MODEL_IDS.luna.openai,
2225
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2226
+ },
2227
+ chat: {
2228
+ kind: "default",
2229
+ modelId: GPT_6_MODEL_IDS.sol.openai,
2230
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2231
+ },
2232
+ reasoning: {
2233
+ kind: "default",
2234
+ modelId: GPT_6_MODEL_IDS.sol.openai,
2235
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2236
+ },
2237
+ pdf: {
2238
+ kind: "default",
2239
+ modelId: GPT_6_MODEL_IDS.sol.openai,
2240
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2241
+ }
1378
2242
  },
1379
2243
  anthropic: {
1380
- fast: "claude-opus-5-5",
1381
- chat: "claude-opus-5-5",
1382
- reasoning: "claude-opus-5-5",
1383
- pdf: "claude-opus-5-5"
2244
+ fast: {
2245
+ kind: "default",
2246
+ modelId: "claude-opus-5-5",
2247
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2248
+ },
2249
+ chat: {
2250
+ kind: "default",
2251
+ modelId: "claude-opus-5-5",
2252
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2253
+ },
2254
+ reasoning: {
2255
+ kind: "default",
2256
+ modelId: "claude-opus-5-5",
2257
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2258
+ },
2259
+ pdf: {
2260
+ kind: "default",
2261
+ modelId: "claude-opus-5-5",
2262
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2263
+ }
1384
2264
  },
1385
2265
  bedrock: {
1386
- fast: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
1387
- chat: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
1388
- reasoning: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
1389
- pdf: "us.anthropic.claude-sonnet-4-5-20250929-v1:0"
2266
+ fast: {
2267
+ kind: "default",
2268
+ modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2269
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2270
+ },
2271
+ chat: {
2272
+ kind: "default",
2273
+ modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2274
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2275
+ },
2276
+ reasoning: {
2277
+ kind: "default",
2278
+ modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2279
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2280
+ },
2281
+ pdf: {
2282
+ kind: "default",
2283
+ modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2284
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2285
+ }
1390
2286
  },
1391
2287
  mistral: {
1392
- fast: "mistral-small-latest",
1393
- chat: "mistral-medium-latest",
1394
- reasoning: "mistral-medium-latest",
1395
- pdf: "mistral-large-latest"
2288
+ fast: {
2289
+ kind: "default",
2290
+ modelId: "mistral-small-latest",
2291
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2292
+ },
2293
+ chat: {
2294
+ kind: "default",
2295
+ modelId: "mistral-medium-latest",
2296
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2297
+ },
2298
+ reasoning: {
2299
+ kind: "default",
2300
+ modelId: "mistral-medium-latest",
2301
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2302
+ },
2303
+ pdf: { kind: "unsupported" }
1396
2304
  }
1397
2305
  };
2306
+ const defaultModelIds = (defaults) => ({
2307
+ fast: defaults.fast.modelId,
2308
+ chat: defaults.chat.modelId,
2309
+ reasoning: defaults.reasoning.modelId,
2310
+ pdf: defaults.pdf.modelId
2311
+ });
1398
2312
  /**
1399
2313
  * Instance-level default model IDs per provider. Extends the BYOK
1400
2314
  * defaults with the providers that only the instance path uses
1401
2315
  * (custom deployments and OpenAI-compatible endpoints).
1402
2316
  */
1403
2317
  const DEFAULT_MODELS = {
1404
- ...BYOK_DEFAULT_MODELS,
2318
+ google: defaultModelIds(BYOK_DEFAULT_MODELS.google),
2319
+ openrouter: defaultModelIds(BYOK_DEFAULT_MODELS.openrouter),
2320
+ openai: defaultModelIds(BYOK_DEFAULT_MODELS.openai),
2321
+ anthropic: defaultModelIds(BYOK_DEFAULT_MODELS.anthropic),
2322
+ bedrock: defaultModelIds(BYOK_DEFAULT_MODELS.bedrock),
2323
+ mistral: {
2324
+ fast: BYOK_DEFAULT_MODELS.mistral.fast.modelId,
2325
+ chat: BYOK_DEFAULT_MODELS.mistral.chat.modelId,
2326
+ reasoning: BYOK_DEFAULT_MODELS.mistral.reasoning.modelId,
2327
+ pdf: null
2328
+ },
1405
2329
  azure_foundry: {
1406
2330
  fast: GPT_56_MODEL_IDS.luna.openai,
1407
2331
  chat: GPT_56_MODEL_IDS.terra.openai,
@@ -1433,6 +2357,7 @@ const DEFAULT_MODELS = {
1433
2357
  */
1434
2358
  const BYOK_MODEL_OPTIONS = {
1435
2359
  google: [
2360
+ "gemini-4-argon",
1436
2361
  "gemini-3.8-flash",
1437
2362
  "gemini-3.7-flash",
1438
2363
  "gemini-3.6-flash",
@@ -1452,6 +2377,7 @@ const BYOK_MODEL_OPTIONS = {
1452
2377
  "claude-opus-4-7",
1453
2378
  "claude-sonnet-4-6",
1454
2379
  "claude-opus-4-6",
2380
+ "claude-haiku-5-5",
1455
2381
  "claude-haiku-4-5-20251001"
1456
2382
  ],
1457
2383
  openai: [
@@ -1468,6 +2394,7 @@ const BYOK_MODEL_OPTIONS = {
1468
2394
  ...GPT_61_OPENROUTER_MODEL_IDS,
1469
2395
  ...GPT_6_OPENROUTER_MODEL_IDS,
1470
2396
  ...GPT_56_OPENROUTER_MODEL_IDS,
2397
+ "google/gemini-4-argon",
1471
2398
  "google/gemini-3.8-flash",
1472
2399
  "google/gemini-3.7-flash",
1473
2400
  "google/gemini-3.6-flash",
@@ -1475,6 +2402,7 @@ const BYOK_MODEL_OPTIONS = {
1475
2402
  "google/gemini-3.1-pro-preview",
1476
2403
  "google/gemini-3.5-flash",
1477
2404
  "google/gemini-3.1-flash-lite",
2405
+ "anthropic/claude-haiku-5.5",
1478
2406
  "anthropic/claude-sonnet-5.5",
1479
2407
  "anthropic/claude-sonnet-5",
1480
2408
  "anthropic/claude-opus-5",
@@ -1485,6 +2413,7 @@ const BYOK_MODEL_OPTIONS = {
1485
2413
  ],
1486
2414
  bedrock: [
1487
2415
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2416
+ "us.anthropic.claude-haiku-5-5",
1488
2417
  "us.anthropic.claude-haiku-4-5-20251001-v1:0",
1489
2418
  "us.amazon.nova-pro-v1:0",
1490
2419
  "us.amazon.nova-lite-v1:0",
@@ -1518,6 +2447,10 @@ const RECOMMENDED_CHAT_MODELS = [
1518
2447
  * creator's icon while their routing provider remains available separately.
1519
2448
  */
1520
2449
  const MODEL_DISPLAY_METADATA = {
2450
+ "gemini-4-argon": {
2451
+ displayName: "Gemini 4 Argon",
2452
+ iconProvider: "google"
2453
+ },
1521
2454
  "gemini-3.8-flash": {
1522
2455
  displayName: "Gemini 3.8 Flash",
1523
2456
  iconProvider: "google"
@@ -1597,9 +2530,14 @@ const MODEL_DISPLAY_METADATA = {
1597
2530
  iconProvider: "anthropic",
1598
2531
  supersededBy: "claude-opus-5-5"
1599
2532
  },
2533
+ "claude-haiku-5-5": {
2534
+ displayName: "Claude Haiku 5.5",
2535
+ iconProvider: "anthropic"
2536
+ },
1600
2537
  "claude-haiku-4-5-20251001": {
1601
2538
  displayName: "Claude Haiku 4.5",
1602
- iconProvider: "anthropic"
2539
+ iconProvider: "anthropic",
2540
+ supersededBy: "claude-haiku-5-5"
1603
2541
  },
1604
2542
  [GPT_61_MODEL_IDS.sol.openai]: {
1605
2543
  displayName: "GPT-6.1 Sol",
@@ -1685,6 +2623,10 @@ const MODEL_DISPLAY_METADATA = {
1685
2623
  displayName: "GPT-5.6 Terra",
1686
2624
  iconProvider: "openai"
1687
2625
  },
2626
+ "google/gemini-4-argon": {
2627
+ displayName: "Gemini 4 Argon",
2628
+ iconProvider: "google"
2629
+ },
1688
2630
  "google/gemini-3.8-flash": {
1689
2631
  displayName: "Gemini 3.8 Flash",
1690
2632
  iconProvider: "google"
@@ -1717,6 +2659,10 @@ const MODEL_DISPLAY_METADATA = {
1717
2659
  iconProvider: "google",
1718
2660
  supersededBy: "google/gemini-3.5-flash-lite"
1719
2661
  },
2662
+ "anthropic/claude-haiku-5.5": {
2663
+ displayName: "Claude Haiku 5.5",
2664
+ iconProvider: "anthropic"
2665
+ },
1720
2666
  "anthropic/claude-sonnet-5.5": {
1721
2667
  displayName: "Claude Sonnet 5.5",
1722
2668
  iconProvider: "anthropic"
@@ -1754,9 +2700,14 @@ const MODEL_DISPLAY_METADATA = {
1754
2700
  iconProvider: "anthropic",
1755
2701
  supersededBy: "claude-sonnet-5-5"
1756
2702
  },
2703
+ "us.anthropic.claude-haiku-5-5": {
2704
+ displayName: "Claude Haiku 5.5",
2705
+ iconProvider: "anthropic"
2706
+ },
1757
2707
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
1758
2708
  displayName: "Claude Haiku 4.5",
1759
- iconProvider: "anthropic"
2709
+ iconProvider: "anthropic",
2710
+ supersededBy: "us.anthropic.claude-haiku-5-5"
1760
2711
  },
1761
2712
  "us.amazon.nova-pro-v1:0": {
1762
2713
  displayName: "Amazon Nova Pro",
@@ -1870,31 +2821,17 @@ const resolveWorkingBYOKModelForRole = ({ provider, modelId, role }) => {
1870
2821
  modelId,
1871
2822
  role
1872
2823
  })) return modelId;
1873
- const fallback = BYOK_DEFAULT_MODELS[provider][role];
2824
+ const entry = BYOK_DEFAULT_MODELS[provider][role];
2825
+ if (entry.kind === "unsupported") return null;
2826
+ const fallback = entry.modelId;
1874
2827
  return isOfferedBYOKModelForRole({
1875
2828
  provider,
1876
2829
  modelId: fallback,
1877
2830
  role
1878
2831
  }) ? fallback : null;
1879
2832
  };
1880
- /**
1881
- * Anthropic models that use the adaptive-thinking request shape
1882
- * (`thinking: { type: "adaptive" }`). Newer Claude models reject the
1883
- * legacy budget-based form, so every Opus 4.6+/Sonnet 4.6/Fable entry
1884
- * offered above must appear here or it will 400 on the reasoning role.
1885
- */
1886
- const ANTHROPIC_ADAPTIVE_THINKING_MODELS = [
1887
- "claude-sonnet-5-5",
1888
- "claude-sonnet-5",
1889
- "claude-opus-5",
1890
- "claude-sonnet-4-6",
1891
- "claude-opus-4-6",
1892
- "claude-opus-4-7",
1893
- "claude-opus-4-8",
1894
- "claude-fable-5",
1895
- "claude-fable-5-1",
1896
- "claude-opus-5-5"
1897
- ];
2833
+ /** Native Anthropic adaptive-thinking models, derived from replay capabilities. */
2834
+ const ANTHROPIC_ADAPTIVE_THINKING_MODELS = BYOK_MODEL_OPTIONS.anthropic.filter((model) => MODEL_REASONING_CAPABILITIES[model].anthropicThinking === "adaptive");
1898
2835
  /**
1899
2836
  * Canonical reasoning-effort ladder, ordered weakest to strongest.
1900
2837
  * Union of every effort keyword the offered providers accept; no
@@ -1937,6 +2874,7 @@ const FALLBACK_CHAT_MODEL_BY_PROVIDER = {
1937
2874
  const MODEL_CATALOG_ID_ALIASES = {
1938
2875
  "gpt-5.6-sol": "gpt-5.6",
1939
2876
  "claude-opus-4.8": "claude-opus-4-8",
2877
+ "claude-haiku-5.5": "claude-haiku-5-5",
1940
2878
  "claude-sonnet-5.5": "claude-sonnet-5-5",
1941
2879
  "claude-sonnet-4.6": "claude-sonnet-4-6"
1942
2880
  };
@@ -1974,6 +2912,10 @@ const getOutputTokenLimit = (modelId) => MODEL_OUTPUT_TOKEN_LIMIT_BY_ID[normaliz
1974
2912
  * Consumers must go through `supportsStreamingToolUse`.
1975
2913
  */
1976
2914
  const MODEL_STREAMING_TOOL_USE = {
2915
+ "anthropic/claude-haiku-5.5": "supported",
2916
+ "us.anthropic.claude-haiku-5-5": "supported",
2917
+ "claude-haiku-5-5": "supported",
2918
+ "gemini-4-argon": "supported",
1977
2919
  "gemini-3.8-flash": "supported",
1978
2920
  "gemini-3.7-flash": "supported",
1979
2921
  "gemini-3.6-flash": "supported",
@@ -1988,6 +2930,7 @@ const MODEL_STREAMING_TOOL_USE = {
1988
2930
  "openai/gpt-5.6-sol": "supported",
1989
2931
  "openai/gpt-5.6-terra": "supported",
1990
2932
  "openai/gpt-5.6-luna": "supported",
2933
+ "google/gemini-4-argon": "supported",
1991
2934
  "google/gemini-3.8-flash": "supported",
1992
2935
  "google/gemini-3.7-flash": "supported",
1993
2936
  "google/gemini-3.6-flash": "supported",
@@ -2124,6 +3067,9 @@ const getModelRate = (modelId) => {
2124
3067
  * default rather than failing CI.
2125
3068
  */
2126
3069
  const CONTEXT_WINDOW_TOKENS = {
3070
+ "anthropic/claude-haiku-5.5": 1e6,
3071
+ "us.anthropic.claude-haiku-5-5": 1e6,
3072
+ "claude-haiku-5-5": 1e6,
2127
3073
  "gemini-2.5-flash": 1048576,
2128
3074
  "gemini-2.5-pro": 1048576,
2129
3075
  "gemini-3.1-flash-lite": 1048576,
@@ -2132,6 +3078,7 @@ const CONTEXT_WINDOW_TOKENS = {
2132
3078
  "gemini-3.6-flash": 1048576,
2133
3079
  "gemini-3.7-flash": 1048576,
2134
3080
  "gemini-3.8-flash": 1048576,
3081
+ "gemini-4-argon": 1048576,
2135
3082
  "gemini-3.1-pro-preview": 1048576,
2136
3083
  "gpt-4o-mini": 128e3,
2137
3084
  "gpt-4o": 128e3,
@@ -2164,6 +3111,7 @@ const CONTEXT_WINDOW_TOKENS = {
2164
3111
  "mistral-medium-latest": 128e3,
2165
3112
  "mistral-medium-3-5": 128e3,
2166
3113
  "magistral-small-latest": 128e3,
3114
+ "google/gemini-4-argon": 1048576,
2167
3115
  "google/gemini-3.8-flash": 1048576,
2168
3116
  "google/gemini-3.7-flash": 1048576,
2169
3117
  "google/gemini-3.6-flash": 1048576,
@@ -2207,5 +3155,21 @@ const DEFAULT_CONTEXT_WINDOW_TOKENS = 128e3;
2207
3155
  * `CONTEXT_WINDOW_TOKENS` directly.
2208
3156
  */
2209
3157
  const getContextWindowTokens = (modelId) => CONTEXT_WINDOW_TOKENS_BY_ID[normalizeModelCatalogId(modelId)] ?? 128e3;
3158
+ const DECISION_MODEL_PROVIDERS = ["typesafe", "openai"];
3159
+ const DECISION_MODEL_CATALOG = {
3160
+ typesafe: {
3161
+ label: "TypeSafe",
3162
+ defaultModelId: "jev-latest"
3163
+ },
3164
+ openai: {
3165
+ label: "OpenAI",
3166
+ defaultModelId: "gpt-6-luna"
3167
+ }
3168
+ };
3169
+ const MODEL_REASONING_CAPABILITIES_BY_ID = MODEL_REASONING_CAPABILITIES;
3170
+ const getModelReasoningCapabilities = (modelId) => {
3171
+ const normalized = normalizeModelCatalogId(modelId);
3172
+ return Object.hasOwn(MODEL_REASONING_CAPABILITIES_BY_ID, normalized) ? MODEL_REASONING_CAPABILITIES_BY_ID[normalized] ?? null : null;
3173
+ };
2210
3174
  //#endregion
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 };
3175
+ export { MODEL_RATES as $, getModelReasoningCapabilities as A, supportsStreamingToolUse as B, TANSTACK_AI_PROVIDERS as C, getModelDisplayMetadata as D, getModelDefaultReasoningEffort as E, isChatPdfAttachmentModelSupported as F, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER as G, CAPABILITY_OVERRIDES as H, normalizeModelCatalogId as I, MODEL_RATE_UNITS_PER_USD as J, MODELS_DEV_RATE_SOURCE_ALIASES as K, resolveReasoningEffort as L, getOutputTokenLimit as M, isBYOKModelRoleSupported as N, getModelImageInputCapability as O, isBYOKProviderRoleSupported as P, REASONING_REPLAY_FORMATS as Q, resolveWorkingBYOKModelForRole as R, STREAMING_TOOL_USE_SUPPORTS as S, getContextWindowTokens as T, IMAGE_INPUT_OVERRIDES as U, DOCUMENT_INPUT_OVERRIDES as V, MODELS_DEV_RATE_CORRECTIONS as W, resolveModelRate as X, getStandardModelRate as Y, MODEL_REASONING_CAPABILITIES as Z, MODEL_DISPLAY_METADATA as _, BYOK_MODEL_OPTIONS as a, REASONING_EFFORTS as b, DECISION_MODEL_CATALOG as c, DEFAULT_MODELS as d, MODEL_DEFAULT_REASONING_EFFORTS as et, FALLBACK_CHAT_MODEL_BY_PROVIDER as f, MODEL_CATALOG_PROVIDER_KIND as g, MODEL_CATALOG_ID_ALIASES as h, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS as i, MODEL_TEMPERATURE_POLICIES as it, getModelReasoningEfforts as j, getModelRate as k, DECISION_MODEL_PROVIDERS as l, IMAGE_INPUT_CAPABILITIES as m, ANTHROPIC_ADAPTIVE_THINKING_MODELS as n, MODEL_OUTPUT_TOKEN_LIMITS as nt, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS as o, FIRST_PARTY_MODEL_PROVIDERS as p, RETAINED_MODELS_DEV_RATE_ENTRIES as q, BYOK_DEFAULT_MODELS as r, MODEL_REASONING_EFFORTS as rt, CONTEXT_WINDOW_TOKENS as s, AI_PROVIDERS as t, MODEL_IMAGE_INPUT_CAPABILITIES as tt, DEFAULT_CONTEXT_WINDOW_TOKENS as u, MODEL_ROLES as v, TEMPERATURE_POLICIES as w, RECOMMENDED_CHAT_MODELS as x, MODEL_STREAMING_TOOL_USE as y, shouldEmitTemperature as z };