@stll/ai-catalog 0.6.1 → 0.7.0

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.
@@ -29,6 +29,7 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
29
29
  "google/gemini-3.1-pro-preview",
30
30
  "google/gemini-3.5-flash",
31
31
  "google/gemini-3.1-flash-lite",
32
+ "anthropic/claude-haiku-5.5",
32
33
  "anthropic/claude-sonnet-5.5",
33
34
  "anthropic/claude-sonnet-5",
34
35
  "anthropic/claude-opus-5",
@@ -62,10 +63,12 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
62
63
  "claude-opus-4-7",
63
64
  "claude-sonnet-4-6",
64
65
  "claude-opus-4-6",
66
+ "claude-haiku-5-5",
65
67
  "claude-haiku-4-5-20251001"
66
68
  ],
67
69
  bedrock: [
68
70
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
71
+ "us.anthropic.claude-haiku-5-5",
69
72
  "us.anthropic.claude-haiku-4-5-20251001-v1:0",
70
73
  "us.amazon.nova-pro-v1:0",
71
74
  "us.amazon.nova-lite-v1:0"
@@ -98,6 +101,7 @@ const MODEL_IMAGE_INPUT_CAPABILITIES = {
98
101
  "google/gemini-3.1-pro-preview": "supported",
99
102
  "google/gemini-3.5-flash": "supported",
100
103
  "google/gemini-3.1-flash-lite": "supported",
104
+ "anthropic/claude-haiku-5.5": "supported",
101
105
  "anthropic/claude-sonnet-5.5": "supported",
102
106
  "anthropic/claude-sonnet-5": "supported",
103
107
  "anthropic/claude-opus-5": "supported",
@@ -131,10 +135,12 @@ const MODEL_IMAGE_INPUT_CAPABILITIES = {
131
135
  "claude-opus-4-7": "supported",
132
136
  "claude-sonnet-4-6": "supported",
133
137
  "claude-opus-4-6": "supported",
138
+ "claude-haiku-5-5": "supported",
134
139
  "claude-haiku-4-5-20251001": "supported"
135
140
  },
136
141
  bedrock: {
137
142
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": "supported",
143
+ "us.anthropic.claude-haiku-5-5": "supported",
138
144
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": "supported",
139
145
  "us.amazon.nova-pro-v1:0": "supported",
140
146
  "us.amazon.nova-lite-v1:0": "supported",
@@ -289,6 +295,14 @@ const MODEL_REASONING_EFFORTS = {
289
295
  "medium",
290
296
  "high"
291
297
  ],
298
+ "anthropic/claude-haiku-5.5": [
299
+ "none",
300
+ "low",
301
+ "medium",
302
+ "high",
303
+ "xhigh",
304
+ "max"
305
+ ],
292
306
  "anthropic/claude-sonnet-5.5": [
293
307
  "low",
294
308
  "medium",
@@ -499,8 +513,24 @@ const MODEL_REASONING_EFFORTS = {
499
513
  "high",
500
514
  "max"
501
515
  ],
516
+ "claude-haiku-5-5": [
517
+ "none",
518
+ "low",
519
+ "medium",
520
+ "high",
521
+ "xhigh",
522
+ "max"
523
+ ],
502
524
  "claude-haiku-4-5-20251001": null,
503
525
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": null,
526
+ "us.anthropic.claude-haiku-5-5": [
527
+ "none",
528
+ "low",
529
+ "medium",
530
+ "high",
531
+ "xhigh",
532
+ "max"
533
+ ],
504
534
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": null,
505
535
  "us.amazon.nova-pro-v1:0": null,
506
536
  "us.amazon.nova-lite-v1:0": null,
@@ -547,6 +577,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
547
577
  "google/gemini-3.1-pro-preview": "medium",
548
578
  "google/gemini-3.5-flash": "medium",
549
579
  "google/gemini-3.1-flash-lite": "minimal",
580
+ "anthropic/claude-haiku-5.5": "medium",
550
581
  "anthropic/claude-sonnet-5.5": "high",
551
582
  "anthropic/claude-sonnet-5": "high",
552
583
  "anthropic/claude-opus-5": "high",
@@ -576,8 +607,10 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
576
607
  "claude-opus-4-7": null,
577
608
  "claude-sonnet-4-6": null,
578
609
  "claude-opus-4-6": null,
610
+ "claude-haiku-5-5": null,
579
611
  "claude-haiku-4-5-20251001": null,
580
612
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": null,
613
+ "us.anthropic.claude-haiku-5-5": null,
581
614
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": null,
582
615
  "us.amazon.nova-pro-v1:0": null,
583
616
  "us.amazon.nova-lite-v1:0": null,
@@ -616,6 +649,7 @@ const MODEL_TEMPERATURE_POLICIES = {
616
649
  "google/gemini-3.1-pro-preview": "emit",
617
650
  "google/gemini-3.5-flash": "emit",
618
651
  "google/gemini-3.1-flash-lite": "emit",
652
+ "anthropic/claude-haiku-5.5": "omit",
619
653
  "anthropic/claude-sonnet-5.5": "omit",
620
654
  "anthropic/claude-sonnet-5": "omit",
621
655
  "anthropic/claude-opus-5": "omit",
@@ -645,8 +679,10 @@ const MODEL_TEMPERATURE_POLICIES = {
645
679
  "claude-opus-4-7": "omit",
646
680
  "claude-sonnet-4-6": "emit",
647
681
  "claude-opus-4-6": "emit",
682
+ "claude-haiku-5-5": "omit",
648
683
  "claude-haiku-4-5-20251001": "emit",
649
684
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": "emit",
685
+ "us.anthropic.claude-haiku-5-5": "omit",
650
686
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": "emit",
651
687
  "us.amazon.nova-pro-v1:0": "emit",
652
688
  "us.amazon.nova-lite-v1:0": "emit",
@@ -685,6 +721,7 @@ const MODEL_OUTPUT_TOKEN_LIMITS = {
685
721
  "google/gemini-3.1-pro-preview": 65536,
686
722
  "google/gemini-3.5-flash": 65536,
687
723
  "google/gemini-3.1-flash-lite": 65536,
724
+ "anthropic/claude-haiku-5.5": 128e3,
688
725
  "anthropic/claude-sonnet-5.5": 128e3,
689
726
  "anthropic/claude-sonnet-5": 128e3,
690
727
  "anthropic/claude-opus-5": 128e3,
@@ -714,8 +751,10 @@ const MODEL_OUTPUT_TOKEN_LIMITS = {
714
751
  "claude-opus-4-7": 128e3,
715
752
  "claude-sonnet-4-6": 128e3,
716
753
  "claude-opus-4-6": 128e3,
754
+ "claude-haiku-5-5": 128e3,
717
755
  "claude-haiku-4-5-20251001": 64e3,
718
756
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0": 64e3,
757
+ "us.anthropic.claude-haiku-5-5": 128e3,
719
758
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": 64e3,
720
759
  "us.amazon.nova-pro-v1:0": 1e4,
721
760
  "us.amazon.nova-lite-v1:0": 1e4,
@@ -1008,6 +1047,22 @@ const MODEL_RATES = {
1008
1047
  cachedInputPerMTok: 5e4,
1009
1048
  cachedWriteInputPerMTok: 625e3
1010
1049
  },
1050
+ "claude-haiku-5-5": {
1051
+ kind: "input-token-tiered",
1052
+ inputTokenThreshold: 1e5,
1053
+ standard: {
1054
+ inputPerMTok: 1e4,
1055
+ outputPerMTok: 5e4,
1056
+ cachedInputPerMTok: 1e3,
1057
+ cachedWriteInputPerMTok: 12500
1058
+ },
1059
+ aboveThreshold: {
1060
+ inputPerMTok: 5e4,
1061
+ outputPerMTok: 25e4,
1062
+ cachedInputPerMTok: 5e3,
1063
+ cachedWriteInputPerMTok: 62500
1064
+ }
1065
+ },
1011
1066
  "claude-haiku-4-5-20251001": {
1012
1067
  kind: "flat",
1013
1068
  inputPerMTok: 1e5,
@@ -1022,6 +1077,22 @@ const MODEL_RATES = {
1022
1077
  cachedInputPerMTok: 33e3,
1023
1078
  cachedWriteInputPerMTok: 412500
1024
1079
  },
1080
+ "us.anthropic.claude-haiku-5-5": {
1081
+ kind: "input-token-tiered",
1082
+ inputTokenThreshold: 1e5,
1083
+ standard: {
1084
+ inputPerMTok: 11e3,
1085
+ outputPerMTok: 55e3,
1086
+ cachedInputPerMTok: 1100,
1087
+ cachedWriteInputPerMTok: 13750
1088
+ },
1089
+ aboveThreshold: {
1090
+ inputPerMTok: 55e3,
1091
+ outputPerMTok: 275e3,
1092
+ cachedInputPerMTok: 5500,
1093
+ cachedWriteInputPerMTok: 68750
1094
+ }
1095
+ },
1025
1096
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
1026
1097
  kind: "flat",
1027
1098
  inputPerMTok: 11e4,
@@ -1123,6 +1194,710 @@ const MODEL_RATES = {
1123
1194
  }
1124
1195
  };
1125
1196
  //#endregion
1197
+ //#region src/reasoning-capabilities.ts
1198
+ const REASONING_REPLAY_FORMATS = [
1199
+ "openai-encrypted-content",
1200
+ "openai-item-id",
1201
+ "anthropic-thinking-signature",
1202
+ "anthropic-redacted-thinking",
1203
+ "google-thought-signature",
1204
+ "none"
1205
+ ];
1206
+ const MODEL_REASONING_CAPABILITIES = {
1207
+ "gemini-3.8-flash": {
1208
+ support: "supported",
1209
+ emittedFormats: ["google-thought-signature"],
1210
+ openAIIncludeEncryptedContent: false,
1211
+ openAIStore: null,
1212
+ anthropicThinking: "none",
1213
+ replayCompatibility: [{
1214
+ provider: "google",
1215
+ model: "gemini-3.8-flash",
1216
+ format: "google-thought-signature"
1217
+ }]
1218
+ },
1219
+ "gemini-3.7-flash": {
1220
+ support: "supported",
1221
+ emittedFormats: ["google-thought-signature"],
1222
+ openAIIncludeEncryptedContent: false,
1223
+ openAIStore: null,
1224
+ anthropicThinking: "none",
1225
+ replayCompatibility: [{
1226
+ provider: "google",
1227
+ model: "gemini-3.7-flash",
1228
+ format: "google-thought-signature"
1229
+ }]
1230
+ },
1231
+ "gemini-3.6-flash": {
1232
+ support: "supported",
1233
+ emittedFormats: ["google-thought-signature"],
1234
+ openAIIncludeEncryptedContent: false,
1235
+ openAIStore: null,
1236
+ anthropicThinking: "none",
1237
+ replayCompatibility: [{
1238
+ provider: "google",
1239
+ model: "gemini-3.6-flash",
1240
+ format: "google-thought-signature"
1241
+ }]
1242
+ },
1243
+ "gemini-3.5-flash-lite": {
1244
+ support: "supported",
1245
+ emittedFormats: ["google-thought-signature"],
1246
+ openAIIncludeEncryptedContent: false,
1247
+ openAIStore: null,
1248
+ anthropicThinking: "none",
1249
+ replayCompatibility: [{
1250
+ provider: "google",
1251
+ model: "gemini-3.5-flash-lite",
1252
+ format: "google-thought-signature"
1253
+ }]
1254
+ },
1255
+ "gemini-3.1-pro-preview": {
1256
+ support: "supported",
1257
+ emittedFormats: ["google-thought-signature"],
1258
+ openAIIncludeEncryptedContent: false,
1259
+ openAIStore: null,
1260
+ anthropicThinking: "none",
1261
+ replayCompatibility: [{
1262
+ provider: "google",
1263
+ model: "gemini-3.1-pro-preview",
1264
+ format: "google-thought-signature"
1265
+ }]
1266
+ },
1267
+ "gemini-3.5-flash": {
1268
+ support: "supported",
1269
+ emittedFormats: ["google-thought-signature"],
1270
+ openAIIncludeEncryptedContent: false,
1271
+ openAIStore: null,
1272
+ anthropicThinking: "none",
1273
+ replayCompatibility: [{
1274
+ provider: "google",
1275
+ model: "gemini-3.5-flash",
1276
+ format: "google-thought-signature"
1277
+ }]
1278
+ },
1279
+ "gemini-3.1-flash-lite": {
1280
+ support: "supported",
1281
+ emittedFormats: ["google-thought-signature"],
1282
+ openAIIncludeEncryptedContent: false,
1283
+ openAIStore: null,
1284
+ anthropicThinking: "none",
1285
+ replayCompatibility: [{
1286
+ provider: "google",
1287
+ model: "gemini-3.1-flash-lite",
1288
+ format: "google-thought-signature"
1289
+ }]
1290
+ },
1291
+ "openai/gpt-6.1-sol": {
1292
+ support: "supported",
1293
+ emittedFormats: ["none"],
1294
+ openAIIncludeEncryptedContent: false,
1295
+ openAIStore: null,
1296
+ anthropicThinking: "none",
1297
+ replayCompatibility: []
1298
+ },
1299
+ "openai/gpt-6-astra": {
1300
+ support: "supported",
1301
+ emittedFormats: ["none"],
1302
+ openAIIncludeEncryptedContent: false,
1303
+ openAIStore: null,
1304
+ anthropicThinking: "none",
1305
+ replayCompatibility: []
1306
+ },
1307
+ "openai/gpt-6-sol": {
1308
+ support: "supported",
1309
+ emittedFormats: ["none"],
1310
+ openAIIncludeEncryptedContent: false,
1311
+ openAIStore: null,
1312
+ anthropicThinking: "none",
1313
+ replayCompatibility: []
1314
+ },
1315
+ "openai/gpt-6-luna": {
1316
+ support: "supported",
1317
+ emittedFormats: ["none"],
1318
+ openAIIncludeEncryptedContent: false,
1319
+ openAIStore: null,
1320
+ anthropicThinking: "none",
1321
+ replayCompatibility: []
1322
+ },
1323
+ "openai/gpt-5.6-sol": {
1324
+ support: "supported",
1325
+ emittedFormats: ["none"],
1326
+ openAIIncludeEncryptedContent: false,
1327
+ openAIStore: null,
1328
+ anthropicThinking: "none",
1329
+ replayCompatibility: []
1330
+ },
1331
+ "openai/gpt-5.6-terra": {
1332
+ support: "supported",
1333
+ emittedFormats: ["none"],
1334
+ openAIIncludeEncryptedContent: false,
1335
+ openAIStore: null,
1336
+ anthropicThinking: "none",
1337
+ replayCompatibility: []
1338
+ },
1339
+ "openai/gpt-5.6-luna": {
1340
+ support: "supported",
1341
+ emittedFormats: ["none"],
1342
+ openAIIncludeEncryptedContent: false,
1343
+ openAIStore: null,
1344
+ anthropicThinking: "none",
1345
+ replayCompatibility: []
1346
+ },
1347
+ "google/gemini-3.8-flash": {
1348
+ support: "supported",
1349
+ emittedFormats: ["none"],
1350
+ openAIIncludeEncryptedContent: false,
1351
+ openAIStore: null,
1352
+ anthropicThinking: "none",
1353
+ replayCompatibility: []
1354
+ },
1355
+ "google/gemini-3.7-flash": {
1356
+ support: "supported",
1357
+ emittedFormats: ["none"],
1358
+ openAIIncludeEncryptedContent: false,
1359
+ openAIStore: null,
1360
+ anthropicThinking: "none",
1361
+ replayCompatibility: []
1362
+ },
1363
+ "google/gemini-3.6-flash": {
1364
+ support: "supported",
1365
+ emittedFormats: ["none"],
1366
+ openAIIncludeEncryptedContent: false,
1367
+ openAIStore: null,
1368
+ anthropicThinking: "none",
1369
+ replayCompatibility: []
1370
+ },
1371
+ "google/gemini-3.5-flash-lite": {
1372
+ support: "supported",
1373
+ emittedFormats: ["none"],
1374
+ openAIIncludeEncryptedContent: false,
1375
+ openAIStore: null,
1376
+ anthropicThinking: "none",
1377
+ replayCompatibility: []
1378
+ },
1379
+ "google/gemini-3.1-pro-preview": {
1380
+ support: "supported",
1381
+ emittedFormats: ["none"],
1382
+ openAIIncludeEncryptedContent: false,
1383
+ openAIStore: null,
1384
+ anthropicThinking: "none",
1385
+ replayCompatibility: []
1386
+ },
1387
+ "google/gemini-3.5-flash": {
1388
+ support: "supported",
1389
+ emittedFormats: ["none"],
1390
+ openAIIncludeEncryptedContent: false,
1391
+ openAIStore: null,
1392
+ anthropicThinking: "none",
1393
+ replayCompatibility: []
1394
+ },
1395
+ "google/gemini-3.1-flash-lite": {
1396
+ support: "supported",
1397
+ emittedFormats: ["none"],
1398
+ openAIIncludeEncryptedContent: false,
1399
+ openAIStore: null,
1400
+ anthropicThinking: "none",
1401
+ replayCompatibility: []
1402
+ },
1403
+ "anthropic/claude-haiku-5.5": {
1404
+ support: "supported",
1405
+ emittedFormats: ["none"],
1406
+ openAIIncludeEncryptedContent: false,
1407
+ openAIStore: null,
1408
+ anthropicThinking: "none",
1409
+ replayCompatibility: []
1410
+ },
1411
+ "anthropic/claude-sonnet-5.5": {
1412
+ support: "supported",
1413
+ emittedFormats: ["none"],
1414
+ openAIIncludeEncryptedContent: false,
1415
+ openAIStore: null,
1416
+ anthropicThinking: "none",
1417
+ replayCompatibility: []
1418
+ },
1419
+ "anthropic/claude-sonnet-5": {
1420
+ support: "supported",
1421
+ emittedFormats: ["none"],
1422
+ openAIIncludeEncryptedContent: false,
1423
+ openAIStore: null,
1424
+ anthropicThinking: "none",
1425
+ replayCompatibility: []
1426
+ },
1427
+ "anthropic/claude-opus-5": {
1428
+ support: "supported",
1429
+ emittedFormats: ["none"],
1430
+ openAIIncludeEncryptedContent: false,
1431
+ openAIStore: null,
1432
+ anthropicThinking: "none",
1433
+ replayCompatibility: []
1434
+ },
1435
+ "anthropic/claude-opus-4.8": {
1436
+ support: "supported",
1437
+ emittedFormats: ["none"],
1438
+ openAIIncludeEncryptedContent: false,
1439
+ openAIStore: null,
1440
+ anthropicThinking: "none",
1441
+ replayCompatibility: []
1442
+ },
1443
+ "anthropic/claude-sonnet-4.6": {
1444
+ support: "supported",
1445
+ emittedFormats: ["none"],
1446
+ openAIIncludeEncryptedContent: false,
1447
+ openAIStore: null,
1448
+ anthropicThinking: "none",
1449
+ replayCompatibility: []
1450
+ },
1451
+ "openai/gpt-5.5": {
1452
+ support: "supported",
1453
+ emittedFormats: ["none"],
1454
+ openAIIncludeEncryptedContent: false,
1455
+ openAIStore: null,
1456
+ anthropicThinking: "none",
1457
+ replayCompatibility: []
1458
+ },
1459
+ "openai/gpt-5.4-mini": {
1460
+ support: "supported",
1461
+ emittedFormats: ["none"],
1462
+ openAIIncludeEncryptedContent: false,
1463
+ openAIStore: null,
1464
+ anthropicThinking: "none",
1465
+ replayCompatibility: []
1466
+ },
1467
+ "gpt-6.1-sol": {
1468
+ support: "supported",
1469
+ emittedFormats: ["openai-encrypted-content"],
1470
+ openAIIncludeEncryptedContent: true,
1471
+ openAIStore: false,
1472
+ anthropicThinking: "none",
1473
+ replayCompatibility: [{
1474
+ provider: "openai",
1475
+ model: "gpt-6.1-sol",
1476
+ format: "openai-encrypted-content"
1477
+ }]
1478
+ },
1479
+ "gpt-6-astra": {
1480
+ support: "supported",
1481
+ emittedFormats: ["openai-encrypted-content"],
1482
+ openAIIncludeEncryptedContent: true,
1483
+ openAIStore: false,
1484
+ anthropicThinking: "none",
1485
+ replayCompatibility: [{
1486
+ provider: "openai",
1487
+ model: "gpt-6-astra",
1488
+ format: "openai-encrypted-content"
1489
+ }]
1490
+ },
1491
+ "gpt-6-sol": {
1492
+ support: "supported",
1493
+ emittedFormats: ["openai-encrypted-content"],
1494
+ openAIIncludeEncryptedContent: true,
1495
+ openAIStore: false,
1496
+ anthropicThinking: "none",
1497
+ replayCompatibility: [{
1498
+ provider: "openai",
1499
+ model: "gpt-6-sol",
1500
+ format: "openai-encrypted-content"
1501
+ }]
1502
+ },
1503
+ "gpt-6-luna": {
1504
+ support: "supported",
1505
+ emittedFormats: ["openai-encrypted-content"],
1506
+ openAIIncludeEncryptedContent: true,
1507
+ openAIStore: false,
1508
+ anthropicThinking: "none",
1509
+ replayCompatibility: [{
1510
+ provider: "openai",
1511
+ model: "gpt-6-luna",
1512
+ format: "openai-encrypted-content"
1513
+ }]
1514
+ },
1515
+ "gpt-5.6": {
1516
+ support: "supported",
1517
+ emittedFormats: ["openai-encrypted-content"],
1518
+ openAIIncludeEncryptedContent: true,
1519
+ openAIStore: false,
1520
+ anthropicThinking: "none",
1521
+ replayCompatibility: [{
1522
+ provider: "openai",
1523
+ model: "gpt-5.6",
1524
+ format: "openai-encrypted-content"
1525
+ }]
1526
+ },
1527
+ "gpt-5.6-terra": {
1528
+ support: "supported",
1529
+ emittedFormats: ["openai-encrypted-content"],
1530
+ openAIIncludeEncryptedContent: true,
1531
+ openAIStore: false,
1532
+ anthropicThinking: "none",
1533
+ replayCompatibility: [{
1534
+ provider: "openai",
1535
+ model: "gpt-5.6-terra",
1536
+ format: "openai-encrypted-content"
1537
+ }]
1538
+ },
1539
+ "gpt-5.6-luna": {
1540
+ support: "supported",
1541
+ emittedFormats: ["openai-encrypted-content"],
1542
+ openAIIncludeEncryptedContent: true,
1543
+ openAIStore: false,
1544
+ anthropicThinking: "none",
1545
+ replayCompatibility: [{
1546
+ provider: "openai",
1547
+ model: "gpt-5.6-luna",
1548
+ format: "openai-encrypted-content"
1549
+ }]
1550
+ },
1551
+ "gpt-5.5": {
1552
+ support: "supported",
1553
+ emittedFormats: ["openai-encrypted-content"],
1554
+ openAIIncludeEncryptedContent: true,
1555
+ openAIStore: false,
1556
+ anthropicThinking: "none",
1557
+ replayCompatibility: [{
1558
+ provider: "openai",
1559
+ model: "gpt-5.5",
1560
+ format: "openai-encrypted-content"
1561
+ }]
1562
+ },
1563
+ "gpt-5.4": {
1564
+ support: "supported",
1565
+ emittedFormats: ["openai-encrypted-content"],
1566
+ openAIIncludeEncryptedContent: true,
1567
+ openAIStore: false,
1568
+ anthropicThinking: "none",
1569
+ replayCompatibility: [{
1570
+ provider: "openai",
1571
+ model: "gpt-5.4",
1572
+ format: "openai-encrypted-content"
1573
+ }]
1574
+ },
1575
+ "gpt-5.4-mini": {
1576
+ support: "supported",
1577
+ emittedFormats: ["openai-encrypted-content"],
1578
+ openAIIncludeEncryptedContent: true,
1579
+ openAIStore: false,
1580
+ anthropicThinking: "none",
1581
+ replayCompatibility: [{
1582
+ provider: "openai",
1583
+ model: "gpt-5.4-mini",
1584
+ format: "openai-encrypted-content"
1585
+ }]
1586
+ },
1587
+ "gpt-5.4-nano": {
1588
+ support: "supported",
1589
+ emittedFormats: ["openai-encrypted-content"],
1590
+ openAIIncludeEncryptedContent: true,
1591
+ openAIStore: false,
1592
+ anthropicThinking: "none",
1593
+ replayCompatibility: [{
1594
+ provider: "openai",
1595
+ model: "gpt-5.4-nano",
1596
+ format: "openai-encrypted-content"
1597
+ }]
1598
+ },
1599
+ "gpt-5.2": {
1600
+ support: "supported",
1601
+ emittedFormats: ["openai-encrypted-content"],
1602
+ openAIIncludeEncryptedContent: true,
1603
+ openAIStore: false,
1604
+ anthropicThinking: "none",
1605
+ replayCompatibility: [{
1606
+ provider: "openai",
1607
+ model: "gpt-5.2",
1608
+ format: "openai-encrypted-content"
1609
+ }]
1610
+ },
1611
+ "claude-sonnet-5-5": {
1612
+ support: "supported",
1613
+ emittedFormats: ["anthropic-thinking-signature"],
1614
+ openAIIncludeEncryptedContent: false,
1615
+ openAIStore: null,
1616
+ anthropicThinking: "adaptive",
1617
+ replayCompatibility: [{
1618
+ provider: "anthropic",
1619
+ model: "claude-sonnet-5-5",
1620
+ format: "anthropic-thinking-signature"
1621
+ }]
1622
+ },
1623
+ "claude-sonnet-5": {
1624
+ support: "supported",
1625
+ emittedFormats: ["anthropic-thinking-signature"],
1626
+ openAIIncludeEncryptedContent: false,
1627
+ openAIStore: null,
1628
+ anthropicThinking: "adaptive",
1629
+ replayCompatibility: [{
1630
+ provider: "anthropic",
1631
+ model: "claude-sonnet-5",
1632
+ format: "anthropic-thinking-signature"
1633
+ }]
1634
+ },
1635
+ "claude-fable-5-1": {
1636
+ support: "supported",
1637
+ emittedFormats: ["anthropic-thinking-signature"],
1638
+ openAIIncludeEncryptedContent: false,
1639
+ openAIStore: null,
1640
+ anthropicThinking: "adaptive",
1641
+ replayCompatibility: [{
1642
+ provider: "anthropic",
1643
+ model: "claude-fable-5-1",
1644
+ format: "anthropic-thinking-signature"
1645
+ }]
1646
+ },
1647
+ "claude-fable-5": {
1648
+ support: "supported",
1649
+ emittedFormats: ["anthropic-thinking-signature"],
1650
+ openAIIncludeEncryptedContent: false,
1651
+ openAIStore: null,
1652
+ anthropicThinking: "adaptive",
1653
+ replayCompatibility: [{
1654
+ provider: "anthropic",
1655
+ model: "claude-fable-5",
1656
+ format: "anthropic-thinking-signature"
1657
+ }]
1658
+ },
1659
+ "claude-opus-5-5": {
1660
+ support: "supported",
1661
+ emittedFormats: ["anthropic-thinking-signature"],
1662
+ openAIIncludeEncryptedContent: false,
1663
+ openAIStore: null,
1664
+ anthropicThinking: "adaptive",
1665
+ replayCompatibility: [{
1666
+ provider: "anthropic",
1667
+ model: "claude-opus-5-5",
1668
+ format: "anthropic-thinking-signature"
1669
+ }]
1670
+ },
1671
+ "claude-opus-5": {
1672
+ support: "supported",
1673
+ emittedFormats: ["anthropic-thinking-signature"],
1674
+ openAIIncludeEncryptedContent: false,
1675
+ openAIStore: null,
1676
+ anthropicThinking: "adaptive",
1677
+ replayCompatibility: [{
1678
+ provider: "anthropic",
1679
+ model: "claude-opus-5",
1680
+ format: "anthropic-thinking-signature"
1681
+ }]
1682
+ },
1683
+ "claude-opus-4-8": {
1684
+ support: "supported",
1685
+ emittedFormats: ["anthropic-thinking-signature"],
1686
+ openAIIncludeEncryptedContent: false,
1687
+ openAIStore: null,
1688
+ anthropicThinking: "adaptive",
1689
+ replayCompatibility: [{
1690
+ provider: "anthropic",
1691
+ model: "claude-opus-4-8",
1692
+ format: "anthropic-thinking-signature"
1693
+ }]
1694
+ },
1695
+ "claude-opus-4-7": {
1696
+ support: "supported",
1697
+ emittedFormats: ["anthropic-thinking-signature"],
1698
+ openAIIncludeEncryptedContent: false,
1699
+ openAIStore: null,
1700
+ anthropicThinking: "adaptive",
1701
+ replayCompatibility: [{
1702
+ provider: "anthropic",
1703
+ model: "claude-opus-4-7",
1704
+ format: "anthropic-thinking-signature"
1705
+ }]
1706
+ },
1707
+ "claude-sonnet-4-6": {
1708
+ support: "supported",
1709
+ emittedFormats: ["anthropic-thinking-signature"],
1710
+ openAIIncludeEncryptedContent: false,
1711
+ openAIStore: null,
1712
+ anthropicThinking: "adaptive",
1713
+ replayCompatibility: [{
1714
+ provider: "anthropic",
1715
+ model: "claude-sonnet-4-6",
1716
+ format: "anthropic-thinking-signature"
1717
+ }]
1718
+ },
1719
+ "claude-opus-4-6": {
1720
+ support: "supported",
1721
+ emittedFormats: ["anthropic-thinking-signature"],
1722
+ openAIIncludeEncryptedContent: false,
1723
+ openAIStore: null,
1724
+ anthropicThinking: "adaptive",
1725
+ replayCompatibility: [{
1726
+ provider: "anthropic",
1727
+ model: "claude-opus-4-6",
1728
+ format: "anthropic-thinking-signature"
1729
+ }]
1730
+ },
1731
+ "claude-haiku-5-5": {
1732
+ support: "supported",
1733
+ emittedFormats: ["anthropic-thinking-signature"],
1734
+ openAIIncludeEncryptedContent: false,
1735
+ openAIStore: null,
1736
+ anthropicThinking: "adaptive",
1737
+ replayCompatibility: [{
1738
+ provider: "anthropic",
1739
+ model: "claude-haiku-5-5",
1740
+ format: "anthropic-thinking-signature"
1741
+ }]
1742
+ },
1743
+ "us.anthropic.claude-haiku-5-5": {
1744
+ support: "supported",
1745
+ emittedFormats: ["none"],
1746
+ openAIIncludeEncryptedContent: false,
1747
+ openAIStore: null,
1748
+ anthropicThinking: "none",
1749
+ replayCompatibility: []
1750
+ },
1751
+ "claude-haiku-4-5-20251001": {
1752
+ support: "supported",
1753
+ emittedFormats: ["anthropic-thinking-signature"],
1754
+ openAIIncludeEncryptedContent: false,
1755
+ openAIStore: null,
1756
+ anthropicThinking: "budget",
1757
+ replayCompatibility: [{
1758
+ provider: "anthropic",
1759
+ model: "claude-haiku-4-5-20251001",
1760
+ format: "anthropic-thinking-signature"
1761
+ }]
1762
+ },
1763
+ "us.anthropic.claude-sonnet-4-5-20250929-v1:0": {
1764
+ support: "supported",
1765
+ emittedFormats: ["none"],
1766
+ openAIIncludeEncryptedContent: false,
1767
+ openAIStore: null,
1768
+ anthropicThinking: "none",
1769
+ replayCompatibility: []
1770
+ },
1771
+ "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
1772
+ support: "supported",
1773
+ emittedFormats: ["none"],
1774
+ openAIIncludeEncryptedContent: false,
1775
+ openAIStore: null,
1776
+ anthropicThinking: "none",
1777
+ replayCompatibility: []
1778
+ },
1779
+ "us.amazon.nova-pro-v1:0": {
1780
+ support: "unsupported",
1781
+ emittedFormats: ["none"],
1782
+ openAIIncludeEncryptedContent: false,
1783
+ openAIStore: null,
1784
+ anthropicThinking: "none",
1785
+ replayCompatibility: []
1786
+ },
1787
+ "us.amazon.nova-lite-v1:0": {
1788
+ support: "unsupported",
1789
+ emittedFormats: ["none"],
1790
+ openAIIncludeEncryptedContent: false,
1791
+ openAIStore: null,
1792
+ anthropicThinking: "none",
1793
+ replayCompatibility: []
1794
+ },
1795
+ "us.amazon.nova-micro-v1:0": {
1796
+ support: "unsupported",
1797
+ emittedFormats: ["none"],
1798
+ openAIIncludeEncryptedContent: false,
1799
+ openAIStore: null,
1800
+ anthropicThinking: "none",
1801
+ replayCompatibility: []
1802
+ },
1803
+ "openai.gpt-oss-120b-1:0": {
1804
+ support: "supported",
1805
+ emittedFormats: ["none"],
1806
+ openAIIncludeEncryptedContent: false,
1807
+ openAIStore: null,
1808
+ anthropicThinking: "none",
1809
+ replayCompatibility: []
1810
+ },
1811
+ "openai.gpt-oss-20b-1:0": {
1812
+ support: "supported",
1813
+ emittedFormats: ["none"],
1814
+ openAIIncludeEncryptedContent: false,
1815
+ openAIStore: null,
1816
+ anthropicThinking: "none",
1817
+ replayCompatibility: []
1818
+ },
1819
+ "mistral-large-4": {
1820
+ support: "supported",
1821
+ emittedFormats: ["none"],
1822
+ openAIIncludeEncryptedContent: false,
1823
+ openAIStore: null,
1824
+ anthropicThinking: "none",
1825
+ replayCompatibility: []
1826
+ },
1827
+ "mistral-large-latest": {
1828
+ support: "unsupported",
1829
+ emittedFormats: ["none"],
1830
+ openAIIncludeEncryptedContent: false,
1831
+ openAIStore: null,
1832
+ anthropicThinking: "none",
1833
+ replayCompatibility: []
1834
+ },
1835
+ "mistral-medium-latest": {
1836
+ support: "supported",
1837
+ emittedFormats: ["none"],
1838
+ openAIIncludeEncryptedContent: false,
1839
+ openAIStore: null,
1840
+ anthropicThinking: "none",
1841
+ replayCompatibility: []
1842
+ },
1843
+ "mistral-small-latest": {
1844
+ support: "supported",
1845
+ emittedFormats: ["none"],
1846
+ openAIIncludeEncryptedContent: false,
1847
+ openAIStore: null,
1848
+ anthropicThinking: "none",
1849
+ replayCompatibility: []
1850
+ },
1851
+ "gemini-2.5-flash": {
1852
+ support: "supported",
1853
+ emittedFormats: ["google-thought-signature"],
1854
+ openAIIncludeEncryptedContent: false,
1855
+ openAIStore: null,
1856
+ anthropicThinking: "none",
1857
+ replayCompatibility: [{
1858
+ provider: "google",
1859
+ model: "gemini-2.5-flash",
1860
+ format: "google-thought-signature"
1861
+ }]
1862
+ },
1863
+ "gemini-2.5-pro": {
1864
+ support: "supported",
1865
+ emittedFormats: ["google-thought-signature"],
1866
+ openAIIncludeEncryptedContent: false,
1867
+ openAIStore: null,
1868
+ anthropicThinking: "none",
1869
+ replayCompatibility: [{
1870
+ provider: "google",
1871
+ model: "gemini-2.5-pro",
1872
+ format: "google-thought-signature"
1873
+ }]
1874
+ },
1875
+ "gpt-4o-mini": {
1876
+ support: "unsupported",
1877
+ emittedFormats: ["none"],
1878
+ openAIIncludeEncryptedContent: false,
1879
+ openAIStore: false,
1880
+ anthropicThinking: "none",
1881
+ replayCompatibility: []
1882
+ },
1883
+ "gpt-4o": {
1884
+ support: "unsupported",
1885
+ emittedFormats: ["none"],
1886
+ openAIIncludeEncryptedContent: false,
1887
+ openAIStore: false,
1888
+ anthropicThinking: "none",
1889
+ replayCompatibility: []
1890
+ },
1891
+ "us.deepseek.r1-v1:0": {
1892
+ support: "supported",
1893
+ emittedFormats: ["none"],
1894
+ openAIIncludeEncryptedContent: false,
1895
+ openAIStore: null,
1896
+ anthropicThinking: "none",
1897
+ replayCompatibility: []
1898
+ }
1899
+ };
1900
+ //#endregion
1126
1901
  //#region src/model-rate.ts
1127
1902
  /**
1128
1903
  * models.dev publishes USD prices per one million tokens. Stella stores the
@@ -1352,56 +2127,159 @@ const GPT_56_MODEL_IDS = {
1352
2127
  };
1353
2128
  const GPT_56_OPENAI_MODEL_IDS = Object.values(GPT_56_MODEL_IDS).map(({ openai }) => openai);
1354
2129
  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
2130
  const BYOK_DEFAULT_MODELS = {
1361
2131
  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"
2132
+ fast: {
2133
+ kind: "default",
2134
+ modelId: "gemini-3.8-flash",
2135
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2136
+ },
2137
+ chat: {
2138
+ kind: "default",
2139
+ modelId: "gemini-3.8-flash",
2140
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2141
+ },
2142
+ reasoning: {
2143
+ kind: "default",
2144
+ modelId: "gemini-3.8-flash",
2145
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2146
+ },
2147
+ pdf: {
2148
+ kind: "default",
2149
+ modelId: "gemini-3.8-flash",
2150
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2151
+ }
1366
2152
  },
1367
2153
  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
2154
+ fast: {
2155
+ kind: "default",
2156
+ modelId: GPT_6_MODEL_IDS.luna.openrouter,
2157
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2158
+ },
2159
+ chat: {
2160
+ kind: "default",
2161
+ modelId: GPT_6_MODEL_IDS.sol.openrouter,
2162
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2163
+ },
2164
+ reasoning: {
2165
+ kind: "default",
2166
+ modelId: GPT_6_MODEL_IDS.sol.openrouter,
2167
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2168
+ },
2169
+ pdf: {
2170
+ kind: "default",
2171
+ modelId: GPT_6_MODEL_IDS.sol.openrouter,
2172
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2173
+ }
1372
2174
  },
1373
2175
  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
2176
+ fast: {
2177
+ kind: "default",
2178
+ modelId: GPT_6_MODEL_IDS.luna.openai,
2179
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2180
+ },
2181
+ chat: {
2182
+ kind: "default",
2183
+ modelId: GPT_6_MODEL_IDS.sol.openai,
2184
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2185
+ },
2186
+ reasoning: {
2187
+ kind: "default",
2188
+ modelId: GPT_6_MODEL_IDS.sol.openai,
2189
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2190
+ },
2191
+ pdf: {
2192
+ kind: "default",
2193
+ modelId: GPT_6_MODEL_IDS.sol.openai,
2194
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2195
+ }
1378
2196
  },
1379
2197
  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"
2198
+ fast: {
2199
+ kind: "default",
2200
+ modelId: "claude-opus-5-5",
2201
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2202
+ },
2203
+ chat: {
2204
+ kind: "default",
2205
+ modelId: "claude-opus-5-5",
2206
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2207
+ },
2208
+ reasoning: {
2209
+ kind: "default",
2210
+ modelId: "claude-opus-5-5",
2211
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2212
+ },
2213
+ pdf: {
2214
+ kind: "default",
2215
+ modelId: "claude-opus-5-5",
2216
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2217
+ }
1384
2218
  },
1385
2219
  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"
2220
+ fast: {
2221
+ kind: "default",
2222
+ modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2223
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2224
+ },
2225
+ chat: {
2226
+ kind: "default",
2227
+ modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2228
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2229
+ },
2230
+ reasoning: {
2231
+ kind: "default",
2232
+ modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2233
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2234
+ },
2235
+ pdf: {
2236
+ kind: "default",
2237
+ modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2238
+ rationaleKey: "organization.aiConfig.defaultRationale.pdf"
2239
+ }
1390
2240
  },
1391
2241
  mistral: {
1392
- fast: "mistral-small-latest",
1393
- chat: "mistral-medium-latest",
1394
- reasoning: "mistral-medium-latest",
1395
- pdf: "mistral-large-latest"
2242
+ fast: {
2243
+ kind: "default",
2244
+ modelId: "mistral-small-latest",
2245
+ rationaleKey: "organization.aiConfig.defaultRationale.fast"
2246
+ },
2247
+ chat: {
2248
+ kind: "default",
2249
+ modelId: "mistral-medium-latest",
2250
+ rationaleKey: "organization.aiConfig.defaultRationale.chat"
2251
+ },
2252
+ reasoning: {
2253
+ kind: "default",
2254
+ modelId: "mistral-medium-latest",
2255
+ rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
2256
+ },
2257
+ pdf: { kind: "unsupported" }
1396
2258
  }
1397
2259
  };
2260
+ const defaultModelIds = (defaults) => ({
2261
+ fast: defaults.fast.modelId,
2262
+ chat: defaults.chat.modelId,
2263
+ reasoning: defaults.reasoning.modelId,
2264
+ pdf: defaults.pdf.modelId
2265
+ });
1398
2266
  /**
1399
2267
  * Instance-level default model IDs per provider. Extends the BYOK
1400
2268
  * defaults with the providers that only the instance path uses
1401
2269
  * (custom deployments and OpenAI-compatible endpoints).
1402
2270
  */
1403
2271
  const DEFAULT_MODELS = {
1404
- ...BYOK_DEFAULT_MODELS,
2272
+ google: defaultModelIds(BYOK_DEFAULT_MODELS.google),
2273
+ openrouter: defaultModelIds(BYOK_DEFAULT_MODELS.openrouter),
2274
+ openai: defaultModelIds(BYOK_DEFAULT_MODELS.openai),
2275
+ anthropic: defaultModelIds(BYOK_DEFAULT_MODELS.anthropic),
2276
+ bedrock: defaultModelIds(BYOK_DEFAULT_MODELS.bedrock),
2277
+ mistral: {
2278
+ fast: BYOK_DEFAULT_MODELS.mistral.fast.modelId,
2279
+ chat: BYOK_DEFAULT_MODELS.mistral.chat.modelId,
2280
+ reasoning: BYOK_DEFAULT_MODELS.mistral.reasoning.modelId,
2281
+ pdf: null
2282
+ },
1405
2283
  azure_foundry: {
1406
2284
  fast: GPT_56_MODEL_IDS.luna.openai,
1407
2285
  chat: GPT_56_MODEL_IDS.terra.openai,
@@ -1452,6 +2330,7 @@ const BYOK_MODEL_OPTIONS = {
1452
2330
  "claude-opus-4-7",
1453
2331
  "claude-sonnet-4-6",
1454
2332
  "claude-opus-4-6",
2333
+ "claude-haiku-5-5",
1455
2334
  "claude-haiku-4-5-20251001"
1456
2335
  ],
1457
2336
  openai: [
@@ -1475,6 +2354,7 @@ const BYOK_MODEL_OPTIONS = {
1475
2354
  "google/gemini-3.1-pro-preview",
1476
2355
  "google/gemini-3.5-flash",
1477
2356
  "google/gemini-3.1-flash-lite",
2357
+ "anthropic/claude-haiku-5.5",
1478
2358
  "anthropic/claude-sonnet-5.5",
1479
2359
  "anthropic/claude-sonnet-5",
1480
2360
  "anthropic/claude-opus-5",
@@ -1485,6 +2365,7 @@ const BYOK_MODEL_OPTIONS = {
1485
2365
  ],
1486
2366
  bedrock: [
1487
2367
  "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
2368
+ "us.anthropic.claude-haiku-5-5",
1488
2369
  "us.anthropic.claude-haiku-4-5-20251001-v1:0",
1489
2370
  "us.amazon.nova-pro-v1:0",
1490
2371
  "us.amazon.nova-lite-v1:0",
@@ -1597,9 +2478,14 @@ const MODEL_DISPLAY_METADATA = {
1597
2478
  iconProvider: "anthropic",
1598
2479
  supersededBy: "claude-opus-5-5"
1599
2480
  },
2481
+ "claude-haiku-5-5": {
2482
+ displayName: "Claude Haiku 5.5",
2483
+ iconProvider: "anthropic"
2484
+ },
1600
2485
  "claude-haiku-4-5-20251001": {
1601
2486
  displayName: "Claude Haiku 4.5",
1602
- iconProvider: "anthropic"
2487
+ iconProvider: "anthropic",
2488
+ supersededBy: "claude-haiku-5-5"
1603
2489
  },
1604
2490
  [GPT_61_MODEL_IDS.sol.openai]: {
1605
2491
  displayName: "GPT-6.1 Sol",
@@ -1717,6 +2603,10 @@ const MODEL_DISPLAY_METADATA = {
1717
2603
  iconProvider: "google",
1718
2604
  supersededBy: "google/gemini-3.5-flash-lite"
1719
2605
  },
2606
+ "anthropic/claude-haiku-5.5": {
2607
+ displayName: "Claude Haiku 5.5",
2608
+ iconProvider: "anthropic"
2609
+ },
1720
2610
  "anthropic/claude-sonnet-5.5": {
1721
2611
  displayName: "Claude Sonnet 5.5",
1722
2612
  iconProvider: "anthropic"
@@ -1754,9 +2644,14 @@ const MODEL_DISPLAY_METADATA = {
1754
2644
  iconProvider: "anthropic",
1755
2645
  supersededBy: "claude-sonnet-5-5"
1756
2646
  },
2647
+ "us.anthropic.claude-haiku-5-5": {
2648
+ displayName: "Claude Haiku 5.5",
2649
+ iconProvider: "anthropic"
2650
+ },
1757
2651
  "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
1758
2652
  displayName: "Claude Haiku 4.5",
1759
- iconProvider: "anthropic"
2653
+ iconProvider: "anthropic",
2654
+ supersededBy: "us.anthropic.claude-haiku-5-5"
1760
2655
  },
1761
2656
  "us.amazon.nova-pro-v1:0": {
1762
2657
  displayName: "Amazon Nova Pro",
@@ -1870,31 +2765,17 @@ const resolveWorkingBYOKModelForRole = ({ provider, modelId, role }) => {
1870
2765
  modelId,
1871
2766
  role
1872
2767
  })) return modelId;
1873
- const fallback = BYOK_DEFAULT_MODELS[provider][role];
2768
+ const entry = BYOK_DEFAULT_MODELS[provider][role];
2769
+ if (entry.kind === "unsupported") return null;
2770
+ const fallback = entry.modelId;
1874
2771
  return isOfferedBYOKModelForRole({
1875
2772
  provider,
1876
2773
  modelId: fallback,
1877
2774
  role
1878
2775
  }) ? fallback : null;
1879
2776
  };
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
- ];
2777
+ /** Native Anthropic adaptive-thinking models, derived from replay capabilities. */
2778
+ const ANTHROPIC_ADAPTIVE_THINKING_MODELS = BYOK_MODEL_OPTIONS.anthropic.filter((model) => MODEL_REASONING_CAPABILITIES[model].anthropicThinking === "adaptive");
1898
2779
  /**
1899
2780
  * Canonical reasoning-effort ladder, ordered weakest to strongest.
1900
2781
  * Union of every effort keyword the offered providers accept; no
@@ -1937,6 +2818,7 @@ const FALLBACK_CHAT_MODEL_BY_PROVIDER = {
1937
2818
  const MODEL_CATALOG_ID_ALIASES = {
1938
2819
  "gpt-5.6-sol": "gpt-5.6",
1939
2820
  "claude-opus-4.8": "claude-opus-4-8",
2821
+ "claude-haiku-5.5": "claude-haiku-5-5",
1940
2822
  "claude-sonnet-5.5": "claude-sonnet-5-5",
1941
2823
  "claude-sonnet-4.6": "claude-sonnet-4-6"
1942
2824
  };
@@ -1974,6 +2856,9 @@ const getOutputTokenLimit = (modelId) => MODEL_OUTPUT_TOKEN_LIMIT_BY_ID[normaliz
1974
2856
  * Consumers must go through `supportsStreamingToolUse`.
1975
2857
  */
1976
2858
  const MODEL_STREAMING_TOOL_USE = {
2859
+ "anthropic/claude-haiku-5.5": "supported",
2860
+ "us.anthropic.claude-haiku-5-5": "supported",
2861
+ "claude-haiku-5-5": "supported",
1977
2862
  "gemini-3.8-flash": "supported",
1978
2863
  "gemini-3.7-flash": "supported",
1979
2864
  "gemini-3.6-flash": "supported",
@@ -2124,6 +3009,9 @@ const getModelRate = (modelId) => {
2124
3009
  * default rather than failing CI.
2125
3010
  */
2126
3011
  const CONTEXT_WINDOW_TOKENS = {
3012
+ "anthropic/claude-haiku-5.5": 1e6,
3013
+ "us.anthropic.claude-haiku-5-5": 1e6,
3014
+ "claude-haiku-5-5": 1e6,
2127
3015
  "gemini-2.5-flash": 1048576,
2128
3016
  "gemini-2.5-pro": 1048576,
2129
3017
  "gemini-3.1-flash-lite": 1048576,
@@ -2207,5 +3095,21 @@ const DEFAULT_CONTEXT_WINDOW_TOKENS = 128e3;
2207
3095
  * `CONTEXT_WINDOW_TOKENS` directly.
2208
3096
  */
2209
3097
  const getContextWindowTokens = (modelId) => CONTEXT_WINDOW_TOKENS_BY_ID[normalizeModelCatalogId(modelId)] ?? 128e3;
3098
+ const DECISION_MODEL_PROVIDERS = ["typesafe", "openai"];
3099
+ const DECISION_MODEL_CATALOG = {
3100
+ typesafe: {
3101
+ label: "TypeSafe",
3102
+ defaultModelId: "jev-latest"
3103
+ },
3104
+ openai: {
3105
+ label: "OpenAI",
3106
+ defaultModelId: "gpt-6-luna"
3107
+ }
3108
+ };
3109
+ const MODEL_REASONING_CAPABILITIES_BY_ID = MODEL_REASONING_CAPABILITIES;
3110
+ const getModelReasoningCapabilities = (modelId) => {
3111
+ const normalized = normalizeModelCatalogId(modelId);
3112
+ return Object.hasOwn(MODEL_REASONING_CAPABILITIES_BY_ID, normalized) ? MODEL_REASONING_CAPABILITIES_BY_ID[normalized] ?? null : null;
3113
+ };
2210
3114
  //#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 };
3115
+ 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 };