@x12i/ai-profiles 1.8.0 → 2.0.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.
Files changed (74) hide show
  1. package/README.md +45 -6
  2. package/dist/buildCatalogFromOpenRouterApi.d.ts.map +1 -1
  3. package/dist/buildCatalogFromOpenRouterApi.js +2 -2
  4. package/dist/buildCatalogFromOpenRouterApi.js.map +1 -1
  5. package/dist/buildResolvedProfile.d.ts.map +1 -1
  6. package/dist/buildResolvedProfile.js +1 -0
  7. package/dist/buildResolvedProfile.js.map +1 -1
  8. package/dist/constants.d.ts +2 -3
  9. package/dist/constants.d.ts.map +1 -1
  10. package/dist/constants.js +2 -7
  11. package/dist/constants.js.map +1 -1
  12. package/dist/data/models-catalog.json +13 -13
  13. package/dist/data/models-profiles.json +551 -138
  14. package/dist/data/models-profiles.schema.json +87 -4
  15. package/dist/data/models-registry.json +71 -41
  16. package/dist/data/profiles-shortcuts.json +48 -42
  17. package/dist/errors.d.ts +1 -1
  18. package/dist/errors.d.ts.map +1 -1
  19. package/dist/errors.js.map +1 -1
  20. package/dist/index.d.ts +12 -3
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +9 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/listAIProfiles.d.ts.map +1 -1
  25. package/dist/listAIProfiles.js +34 -4
  26. package/dist/listAIProfiles.js.map +1 -1
  27. package/dist/modelInputFallback.d.ts.map +1 -1
  28. package/dist/modelInputFallback.js +7 -3
  29. package/dist/modelInputFallback.js.map +1 -1
  30. package/dist/modelsCatalog.d.ts +5 -0
  31. package/dist/modelsCatalog.d.ts.map +1 -1
  32. package/dist/modelsCatalog.js +32 -2
  33. package/dist/modelsCatalog.js.map +1 -1
  34. package/dist/profileCatalogLane.d.ts +22 -0
  35. package/dist/profileCatalogLane.d.ts.map +1 -0
  36. package/dist/profileCatalogLane.js +83 -0
  37. package/dist/profileCatalogLane.js.map +1 -0
  38. package/dist/profileDiscovery.d.ts +43 -0
  39. package/dist/profileDiscovery.d.ts.map +1 -0
  40. package/dist/profileDiscovery.js +129 -0
  41. package/dist/profileDiscovery.js.map +1 -0
  42. package/dist/profileRegistryV3.d.ts.map +1 -1
  43. package/dist/profileRegistryV3.js +6 -4
  44. package/dist/profileRegistryV3.js.map +1 -1
  45. package/dist/resolveAIProfile.d.ts +1 -1
  46. package/dist/resolveAIProfile.d.ts.map +1 -1
  47. package/dist/resolveAIProfile.js +51 -2
  48. package/dist/resolveAIProfile.js.map +1 -1
  49. package/dist/resolveAIProfileByTags.d.ts +11 -0
  50. package/dist/resolveAIProfileByTags.d.ts.map +1 -0
  51. package/dist/resolveAIProfileByTags.js +33 -0
  52. package/dist/resolveAIProfileByTags.js.map +1 -0
  53. package/dist/resolveSecondaryModel.d.ts +6 -0
  54. package/dist/resolveSecondaryModel.d.ts.map +1 -0
  55. package/dist/resolveSecondaryModel.js +82 -0
  56. package/dist/resolveSecondaryModel.js.map +1 -0
  57. package/dist/secondaryModel.d.ts +42 -0
  58. package/dist/secondaryModel.d.ts.map +1 -0
  59. package/dist/secondaryModel.js +172 -0
  60. package/dist/secondaryModel.js.map +1 -0
  61. package/dist/types.d.ts +91 -1
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/validateProfileCatalogLinkage.d.ts.map +1 -1
  64. package/dist/validateProfileCatalogLinkage.js +1 -0
  65. package/dist/validateProfileCatalogLinkage.js.map +1 -1
  66. package/dist/validation/profileIntentPolicy.d.ts +8 -0
  67. package/dist/validation/profileIntentPolicy.d.ts.map +1 -0
  68. package/dist/validation/profileIntentPolicy.js +60 -0
  69. package/dist/validation/profileIntentPolicy.js.map +1 -0
  70. package/dist/validation/validateModelsProfilesJson.d.ts +1 -0
  71. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  72. package/dist/validation/validateModelsProfilesJson.js +127 -17
  73. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  74. package/package.json +1 -3
@@ -2,8 +2,8 @@
2
2
  "schema": "x12i.ai-profiles.model-registry.v3",
3
3
  "registryId": "models-profiles",
4
4
  "generatedAt": "2026-05-29T00:00:00.000Z",
5
- "lastVerifiedAt": "2026-05-30T21:56:06Z",
6
- "version": "3.0.0",
5
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
6
+ "version": "4.0.0",
7
7
  "currency": "USD",
8
8
  "pricingUnit": "1M_tokens",
9
9
  "namingConvention": "lowerCamelCase",
@@ -17,7 +17,12 @@
17
17
  "cpuLocalProfile": "Only the \"local\" profile runs on-device CPU (funcx / Transformers.js). No OpenRouter.",
18
18
  "inputModalities": "Required input media types for profile intent (text, image, audio, video, file).",
19
19
  "outputModalities": "Required output media types for profile intent (text, image, audio, video, file).",
20
- "choiceModalities": "Optional per-choice modality override when catalog linkage is missing."
20
+ "choiceModalities": "Optional per-choice modality override when catalog linkage is missing.",
21
+ "profileTags": "Short discovery tags (2–4 chars). Vendor affinity: ds, ggl, xai, mmx, ant, oai. (profile, tag-set) pairs are unique.",
22
+ "catalogLane": "Required OpenRouter browser lane per profile. resolveAIProfile requires options.catalogLane matching the profile lane.",
23
+ "secondary": "Optional companion model per choice (review, escalation, verification). Resolved via resolveSecondaryModel; not a failover replacement.",
24
+ "fallbackChoiceOrder": "Replacement order when constraints exclude the primary choice (cost cap, vendor trim). Independent of secondary.",
25
+ "volRouting": "Volume agent profile (vol): Flash default, Pro for hard/final. Model SKUs are never profile aliases."
21
26
  },
22
27
  "sourceCatalog": {
23
28
  "providers": [
@@ -58,6 +63,15 @@
58
63
  "displayName": "Cheap",
59
64
  "description": "Low-cost model selection for simple, high-volume, non-critical tasks. This does not always mean the absolute cheapest model.",
60
65
  "category": "cost",
66
+ "tags": [
67
+ "eco",
68
+ "wf",
69
+ "xtr",
70
+ "cls",
71
+ "bat",
72
+ "tri",
73
+ "ggl"
74
+ ],
61
75
  "aliases": [
62
76
  "economy",
63
77
  "budget",
@@ -87,7 +101,12 @@
87
101
  "openrouter:catalog"
88
102
  ]
89
103
  },
90
- "modelStatus": "verified"
104
+ "modelStatus": "verified",
105
+ "secondary": {
106
+ "kind": "choice",
107
+ "choice": "anthropic_cheap",
108
+ "reason": "Stronger instruction-following pass when cheap default quality is insufficient."
109
+ }
91
110
  },
92
111
  "google_floor": {
93
112
  "choice": "google_floor",
@@ -154,7 +173,7 @@
154
173
  "openrouter:catalog"
155
174
  ]
156
175
  },
157
- "modelStatus": "predicted"
176
+ "modelStatus": "verified"
158
177
  },
159
178
  "minimax_cheap": {
160
179
  "choice": "minimax_cheap",
@@ -198,13 +217,22 @@
198
217
  "outputModalities": [
199
218
  "text"
200
219
  ]
201
- }
220
+ },
221
+ "catalogLane": "text"
202
222
  },
203
223
  "fast": {
204
224
  "profile": "fast",
205
225
  "displayName": "Fast",
206
226
  "description": "Low-latency model selection for interactive product flows.",
207
227
  "category": "speed",
228
+ "tags": [
229
+ "spd",
230
+ "wf",
231
+ "agt",
232
+ "cod",
233
+ "ggl",
234
+ "xai"
235
+ ],
208
236
  "aliases": [
209
237
  "instant",
210
238
  "quick",
@@ -342,13 +370,21 @@
342
370
  "outputModalities": [
343
371
  "text"
344
372
  ]
345
- }
373
+ },
374
+ "catalogLane": "text"
346
375
  },
347
376
  "balanced": {
348
377
  "profile": "balanced",
349
378
  "displayName": "Balanced",
350
379
  "description": "Default model selection for normal graph execution.",
351
380
  "category": "standard",
381
+ "tags": [
382
+ "wf",
383
+ "anl",
384
+ "cod",
385
+ "agt",
386
+ "ggl"
387
+ ],
352
388
  "aliases": [
353
389
  "default",
354
390
  "standard",
@@ -377,7 +413,12 @@
377
413
  "openrouter:catalog"
378
414
  ]
379
415
  },
380
- "modelStatus": "verified"
416
+ "modelStatus": "verified",
417
+ "secondary": {
418
+ "kind": "choice",
419
+ "choice": "anthropic_balanced",
420
+ "reason": "Higher-quality reviewer when balanced default needs a second opinion."
421
+ }
381
422
  },
382
423
  "anthropic_balanced": {
383
424
  "choice": "anthropic_balanced",
@@ -462,13 +503,25 @@
462
503
  "outputModalities": [
463
504
  "text"
464
505
  ]
465
- }
506
+ },
507
+ "catalogLane": "text"
466
508
  },
467
509
  "deep": {
468
510
  "profile": "deep",
469
511
  "displayName": "Deep",
470
512
  "description": "High-reasoning model selection for complex work.",
471
513
  "category": "reasoning",
514
+ "tags": [
515
+ "rsn",
516
+ "anl",
517
+ "cod",
518
+ "eng",
519
+ "exp",
520
+ "pro",
521
+ "rev",
522
+ "ds",
523
+ "xai"
524
+ ],
472
525
  "aliases": [
473
526
  "thinking",
474
527
  "reasoning",
@@ -498,7 +551,12 @@
498
551
  "openrouter:catalog"
499
552
  ]
500
553
  },
501
- "modelStatus": "verified"
554
+ "modelStatus": "verified",
555
+ "secondary": {
556
+ "kind": "choice",
557
+ "choice": "deepseek_pro",
558
+ "reason": "Alternate flagship reasoning tier for verification and escalation."
559
+ }
502
560
  },
503
561
  "openai_deep": {
504
562
  "choice": "openai_deep",
@@ -557,13 +615,14 @@
557
615
  },
558
616
  "reason": "Flagship-class reasoning without Opus or GPT-5.5 pricing.",
559
617
  "verification": {
560
- "lastVerifiedAt": "2026-05-29T17:08:03Z",
618
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
561
619
  "sourceRefs": [
562
620
  "vendor:deepseek",
563
- "openrouter:catalog"
621
+ "openrouter:catalog",
622
+ "vendor:deepseek-api-docs"
564
623
  ]
565
624
  },
566
- "modelStatus": "predicted"
625
+ "modelStatus": "verified"
567
626
  },
568
627
  "grok_flagship": {
569
628
  "choice": "grok_flagship",
@@ -631,13 +690,22 @@
631
690
  "outputModalities": [
632
691
  "text"
633
692
  ]
634
- }
693
+ },
694
+ "catalogLane": "text"
635
695
  },
636
696
  "pro": {
637
697
  "profile": "pro",
638
698
  "displayName": "Pro",
639
699
  "description": "Premium model selection for critical tasks.",
640
700
  "category": "premium",
701
+ "tags": [
702
+ "flg",
703
+ "pro",
704
+ "exp",
705
+ "anl",
706
+ "cod",
707
+ "rev"
708
+ ],
641
709
  "aliases": [
642
710
  "premium",
643
711
  "best",
@@ -727,13 +795,21 @@
727
795
  "outputModalities": [
728
796
  "text"
729
797
  ]
730
- }
798
+ },
799
+ "catalogLane": "text"
731
800
  },
732
801
  "json": {
733
802
  "profile": "json",
734
803
  "displayName": "JSON",
735
804
  "description": "Model selection for strict JSON, schema, extraction, and classification tasks.",
736
805
  "category": "output",
806
+ "tags": [
807
+ "str",
808
+ "json",
809
+ "xtr",
810
+ "cls",
811
+ "eco"
812
+ ],
737
813
  "aliases": [
738
814
  "schema",
739
815
  "strict-json",
@@ -768,7 +844,12 @@
768
844
  "openrouter:catalog"
769
845
  ]
770
846
  },
771
- "modelStatus": "verified"
847
+ "modelStatus": "verified",
848
+ "secondary": {
849
+ "kind": "choice",
850
+ "choice": "anthropic_json",
851
+ "reason": "Higher-quality structured-output reviewer for complex extraction."
852
+ }
772
853
  },
773
854
  "google_json": {
774
855
  "choice": "google_json",
@@ -813,10 +894,35 @@
813
894
  ]
814
895
  },
815
896
  "modelStatus": "predicted"
897
+ },
898
+ "deepseek_json": {
899
+ "choice": "deepseek_json",
900
+ "displayName": "DeepSeek V4 Flash JSON",
901
+ "description": "Low-cost structured output without thinking overhead.",
902
+ "provider": "deepseek",
903
+ "modelId": "deepseek-v4-flash",
904
+ "modelStatus": "verified",
905
+ "runtime": {
906
+ "instructionTier": "default",
907
+ "backend": "openrouter",
908
+ "reasoningEffort": "minimal",
909
+ "toolPolicy": "none",
910
+ "outputMode": "schema",
911
+ "temperature": 0
912
+ },
913
+ "reason": "Classification and extraction at DeepSeek Flash pricing; no expensive reasoning.",
914
+ "verification": {
915
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
916
+ "sourceRefs": [
917
+ "vendor:deepseek",
918
+ "openrouter:catalog"
919
+ ]
920
+ }
816
921
  }
817
922
  },
818
923
  "fallbackChoiceOrder": [
819
924
  "default",
925
+ "deepseek_json",
820
926
  "google_json",
821
927
  "anthropic_json"
822
928
  ],
@@ -830,13 +936,19 @@
830
936
  "outputModalities": [
831
937
  "text"
832
938
  ]
833
- }
939
+ },
940
+ "catalogLane": "text"
834
941
  },
835
942
  "agentic": {
836
943
  "profile": "agentic",
837
944
  "displayName": "Agentic",
838
945
  "description": "Model selection for tool use, planning, and multi-step execution.",
839
946
  "category": "agentic",
947
+ "tags": [
948
+ "agt",
949
+ "wf",
950
+ "cod"
951
+ ],
840
952
  "aliases": [
841
953
  "agent",
842
954
  "tools",
@@ -869,7 +981,12 @@
869
981
  "openrouter:catalog"
870
982
  ]
871
983
  },
872
- "modelStatus": "verified"
984
+ "modelStatus": "verified",
985
+ "secondary": {
986
+ "kind": "choice",
987
+ "choice": "openai_agentic",
988
+ "reason": "Cross-vendor reviewer for agentic tool-use workflows."
989
+ }
873
990
  },
874
991
  "openai_agentic": {
875
992
  "choice": "openai_agentic",
@@ -939,6 +1056,7 @@
939
1056
  },
940
1057
  "fallbackChoiceOrder": [
941
1058
  "default",
1059
+ "deepseek_agentic",
942
1060
  "openai_agentic",
943
1061
  "google_agentic",
944
1062
  "minimax_agentic"
@@ -954,13 +1072,19 @@
954
1072
  "outputModalities": [
955
1073
  "text"
956
1074
  ]
957
- }
1075
+ },
1076
+ "catalogLane": "text"
958
1077
  },
959
1078
  "research": {
960
1079
  "profile": "research",
961
1080
  "displayName": "Research",
962
1081
  "description": "Model selection for source-heavy reading, synthesis, and cited research.",
963
1082
  "category": "research",
1083
+ "tags": [
1084
+ "res",
1085
+ "anl",
1086
+ "rev"
1087
+ ],
964
1088
  "aliases": [
965
1089
  "source-review",
966
1090
  "web-research",
@@ -1064,27 +1188,65 @@
1064
1188
  "outputModalities": [
1065
1189
  "text"
1066
1190
  ]
1067
- }
1191
+ },
1192
+ "catalogLane": "text"
1068
1193
  },
1069
1194
  "cyber": {
1070
1195
  "profile": "cyber",
1071
1196
  "displayName": "Cyber & Risk Analysis",
1072
- "description": "Model selection tuned for threat analysis, TPRM, contract verification, and log parsing.",
1197
+ "description": "Model selection tuned for threat analysis, TPRM, contract verification, log parsing, and security research.",
1073
1198
  "category": "security",
1199
+ "tags": [
1200
+ "cyb",
1201
+ "sec",
1202
+ "anl",
1203
+ "for",
1204
+ "aud",
1205
+ "exp",
1206
+ "eco",
1207
+ "res",
1208
+ "ds"
1209
+ ],
1074
1210
  "aliases": [
1075
1211
  "security",
1076
1212
  "threat-intel",
1077
1213
  "risk",
1078
- "audit"
1214
+ "audit",
1215
+ "cyber-analysis",
1216
+ "cybersecurity"
1079
1217
  ],
1080
1218
  "defaultChoice": "default",
1081
1219
  "choices": {
1082
1220
  "default": {
1083
1221
  "choice": "default",
1084
- "displayName": "Verification Default",
1085
- "description": "Balanced reasoning for policy review and contract verification.",
1086
- "provider": "anthropic",
1087
- "modelId": "claude-sonnet-4-5",
1222
+ "displayName": "Cyber Default (DeepSeek V4 Flash)",
1223
+ "description": "Default cyber analysis: fast, low-cost, 1M context for most TPRM, triage, and agent steps.",
1224
+ "provider": "deepseek",
1225
+ "modelId": "deepseek-v4-flash",
1226
+ "runtime": {
1227
+ "instructionTier": "default",
1228
+ "backend": "openrouter",
1229
+ "reasoningEffort": "medium",
1230
+ "toolPolicy": "read-only",
1231
+ "outputMode": "text"
1232
+ },
1233
+ "reason": "Best default for high-volume cyber workflows; escalate to Pro or Grok for harder forensics.",
1234
+ "verification": {
1235
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
1236
+ "sourceRefs": [
1237
+ "vendor:deepseek",
1238
+ "openrouter:catalog",
1239
+ "vendor:deepseek-api-docs"
1240
+ ]
1241
+ },
1242
+ "modelStatus": "verified"
1243
+ },
1244
+ "grok_intel": {
1245
+ "choice": "grok_intel",
1246
+ "displayName": "Grok 4.3 Intel",
1247
+ "description": "Real-time threat intel and large-context log review (1M tokens).",
1248
+ "provider": "xai",
1249
+ "modelId": "grok-4.3",
1088
1250
  "runtime": {
1089
1251
  "instructionTier": "reasoning",
1090
1252
  "backend": "openrouter",
@@ -1092,11 +1254,11 @@
1092
1254
  "toolPolicy": "read-only",
1093
1255
  "outputMode": "text"
1094
1256
  },
1095
- "reason": "Nuanced reasoning for loopholes, fraud indicators, and subtle contract risks.",
1257
+ "reason": "Strong for bulk log ingestion, MCP workflows, and comparative cyber research vs GPT-5.5.",
1096
1258
  "verification": {
1097
- "lastVerifiedAt": "2026-05-29T17:08:03Z",
1259
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
1098
1260
  "sourceRefs": [
1099
- "vendor:anthropic",
1261
+ "vendor:xai",
1100
1262
  "openrouter:catalog"
1101
1263
  ]
1102
1264
  },
@@ -1105,7 +1267,7 @@
1105
1267
  "log_analysis": {
1106
1268
  "choice": "log_analysis",
1107
1269
  "displayName": "Bulk Log Parser",
1108
- "description": "High-volume, large-context analysis for server logs or network traffic.",
1270
+ "description": "High-volume structured parsing of server logs or network traffic.",
1109
1271
  "provider": "google",
1110
1272
  "modelId": "gemini-3.5-flash",
1111
1273
  "runtime": {
@@ -1125,8 +1287,31 @@
1125
1287
  },
1126
1288
  "deep_forensics": {
1127
1289
  "choice": "deep_forensics",
1128
- "displayName": "Deep Forensics",
1129
- "description": "Maximum reasoning for vulnerability hunting and code auditing.",
1290
+ "displayName": "Deep Forensics (DeepSeek V4 Pro)",
1291
+ "description": "Hard reasoning for vulnerability hunting, exploit chaining, and code auditing.",
1292
+ "provider": "deepseek",
1293
+ "modelId": "deepseek-v4-pro",
1294
+ "runtime": {
1295
+ "instructionTier": "reasoning",
1296
+ "backend": "openrouter",
1297
+ "reasoningEffort": "high",
1298
+ "toolPolicy": "read-only",
1299
+ "outputMode": "text"
1300
+ },
1301
+ "reason": "Economic pro-tier forensics; use gpt_forensics when you need OpenAI Trusted Access validation paths.",
1302
+ "verification": {
1303
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
1304
+ "sourceRefs": [
1305
+ "vendor:deepseek",
1306
+ "openrouter:catalog"
1307
+ ]
1308
+ },
1309
+ "modelStatus": "verified"
1310
+ },
1311
+ "gpt_forensics": {
1312
+ "choice": "gpt_forensics",
1313
+ "displayName": "GPT-5.5 Forensics (flagship)",
1314
+ "description": "Maximum validated reasoning for zero-day research and complex attack paths.",
1130
1315
  "provider": "openai",
1131
1316
  "modelId": "gpt-5.5",
1132
1317
  "runtime": {
@@ -1136,7 +1321,7 @@
1136
1321
  "toolPolicy": "read-only",
1137
1322
  "outputMode": "text"
1138
1323
  },
1139
- "reason": "Top-tier reliability for complex logic flaws in code or architecture.",
1324
+ "reason": "Flagship alternative when DeepSeek Pro is not enough for validated deep exploit chains.",
1140
1325
  "verification": {
1141
1326
  "lastVerifiedAt": "2026-05-29T17:08:03Z",
1142
1327
  "sourceRefs": [
@@ -1149,8 +1334,10 @@
1149
1334
  },
1150
1335
  "fallbackChoiceOrder": [
1151
1336
  "default",
1337
+ "grok_intel",
1152
1338
  "log_analysis",
1153
- "deep_forensics"
1339
+ "deep_forensics",
1340
+ "gpt_forensics"
1154
1341
  ],
1155
1342
  "requiredCapabilities": {
1156
1343
  "reasoning": "high",
@@ -1162,13 +1349,19 @@
1162
1349
  "outputModalities": [
1163
1350
  "text"
1164
1351
  ]
1165
- }
1352
+ },
1353
+ "catalogLane": "text"
1166
1354
  },
1167
1355
  "content": {
1168
1356
  "profile": "content",
1169
1357
  "displayName": "Content Generation",
1170
1358
  "description": "Model selection optimized for prose, marketing, and programmatic SEO.",
1171
1359
  "category": "creative",
1360
+ "tags": [
1361
+ "cre",
1362
+ "wrt",
1363
+ "bat"
1364
+ ],
1172
1365
  "aliases": [
1173
1366
  "writing",
1174
1367
  "creative",
@@ -1259,86 +1452,18 @@
1259
1452
  "outputModalities": [
1260
1453
  "text"
1261
1454
  ]
1262
- }
1263
- },
1264
- "summarization": {
1265
- "profile": "summarization",
1266
- "displayName": "Summarization",
1267
- "description": "Optimized for information compression and document triage.",
1268
- "category": "analysis",
1269
- "aliases": [
1270
- "triage",
1271
- "digest",
1272
- "tl-dr"
1273
- ],
1274
- "defaultChoice": "default",
1275
- "choices": {
1276
- "default": {
1277
- "choice": "default",
1278
- "displayName": "Fast Digest",
1279
- "description": "Quickly summarizes standard documents and meeting transcripts.",
1280
- "provider": "anthropic",
1281
- "modelId": "claude-haiku-4-5",
1282
- "runtime": {
1283
- "instructionTier": "default",
1284
- "backend": "openrouter",
1285
- "reasoningEffort": "low",
1286
- "toolPolicy": "none",
1287
- "outputMode": "text"
1288
- },
1289
- "reason": "Fast and capable at reading comprehension and triage summaries.",
1290
- "verification": {
1291
- "lastVerifiedAt": "2026-05-29T17:08:03Z",
1292
- "sourceRefs": [
1293
- "vendor:anthropic",
1294
- "openrouter:catalog"
1295
- ]
1296
- },
1297
- "modelStatus": "verified"
1298
- },
1299
- "mega_context": {
1300
- "choice": "mega_context",
1301
- "displayName": "Mega Context Summarization",
1302
- "description": "Compressing entire repositories, books, or multi-year document histories.",
1303
- "provider": "google",
1304
- "modelId": "gemini-3.5-flash",
1305
- "runtime": {
1306
- "reasoningEffort": "high",
1307
- "toolPolicy": "none",
1308
- "outputMode": "text"
1309
- },
1310
- "reason": "When input exceeds ~200k tokens, Gemini 3.5 Flash long context handles needle-in-haystack retrieval best.",
1311
- "verification": {
1312
- "lastVerifiedAt": "2026-05-29T17:08:03Z",
1313
- "sourceRefs": [
1314
- "vendor:google",
1315
- "openrouter:catalog"
1316
- ]
1317
- },
1318
- "modelStatus": "verified"
1319
- }
1320
1455
  },
1321
- "fallbackChoiceOrder": [
1322
- "default",
1323
- "mega_context"
1324
- ],
1325
- "requiredCapabilities": {
1326
- "reasoning": "low",
1327
- "cost": "low",
1328
- "context": "large",
1329
- "inputModalities": [
1330
- "text"
1331
- ],
1332
- "outputModalities": [
1333
- "text"
1334
- ]
1335
- }
1456
+ "catalogLane": "text"
1336
1457
  },
1337
1458
  "vision": {
1338
1459
  "profile": "vision",
1339
1460
  "displayName": "Vision & Multimodal",
1340
1461
  "description": "Model selection for image analysis, OCR, and spatial reasoning.",
1341
1462
  "category": "multimodal",
1463
+ "tags": [
1464
+ "vis",
1465
+ "anl"
1466
+ ],
1342
1467
  "aliases": [
1343
1468
  "image",
1344
1469
  "ocr",
@@ -1406,13 +1531,17 @@
1406
1531
  "outputModalities": [
1407
1532
  "text"
1408
1533
  ]
1409
- }
1534
+ },
1535
+ "catalogLane": "image"
1410
1536
  },
1411
1537
  "local": {
1412
1538
  "profile": "local",
1413
1539
  "displayName": "Local / CPU (no OpenRouter)",
1414
1540
  "description": "On-device inference only — llama.cpp GGUF or Transformers.js on CPU. Does not call OpenRouter or any cloud LLM API.",
1415
1541
  "category": "local",
1542
+ "tags": [
1543
+ "loc"
1544
+ ],
1416
1545
  "aliases": [
1417
1546
  "weak",
1418
1547
  "offline",
@@ -1512,13 +1641,23 @@
1512
1641
  "outputModalities": [
1513
1642
  "text"
1514
1643
  ]
1515
- }
1644
+ },
1645
+ "catalogLane": "text"
1516
1646
  },
1517
1647
  "coding": {
1518
1648
  "profile": "coding",
1519
1649
  "displayName": "Coding",
1520
1650
  "description": "Model selection optimized for software engineering: implementation, refactors, reviews, and debugging.",
1521
1651
  "category": "engineering",
1652
+ "tags": [
1653
+ "cod",
1654
+ "eng",
1655
+ "agt",
1656
+ "wf",
1657
+ "eco",
1658
+ "ds",
1659
+ "mmx"
1660
+ ],
1522
1661
  "aliases": [
1523
1662
  "dev",
1524
1663
  "developer",
@@ -1542,10 +1681,10 @@
1542
1681
  "choices": {
1543
1682
  "default": {
1544
1683
  "choice": "default",
1545
- "displayName": "Coding Default",
1546
- "description": "Recommended model for general coding work.",
1547
- "provider": "anthropic",
1548
- "modelId": "claude-sonnet-4-5",
1684
+ "displayName": "Coding Default (DeepSeek V4 Flash)",
1685
+ "description": "First choice for agentic coding loops; escalate to deepseek_pro on failure.",
1686
+ "provider": "deepseek",
1687
+ "modelId": "deepseek-v4-flash",
1549
1688
  "modelStatus": "verified",
1550
1689
  "runtime": {
1551
1690
  "instructionTier": "default",
@@ -1554,53 +1693,78 @@
1554
1693
  "toolPolicy": "read-only",
1555
1694
  "outputMode": "text"
1556
1695
  },
1557
- "reason": "Strong instruction following and code quality for everyday engineering tasks.",
1696
+ "reason": "Best cost/performance for most coding, patches, and multi-step agent steps.",
1558
1697
  "verification": {
1559
- "lastVerifiedAt": "2026-05-29T20:57:08Z",
1698
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
1560
1699
  "sourceRefs": [
1561
- "vendor:anthropic",
1700
+ "vendor:deepseek",
1562
1701
  "openrouter:catalog"
1563
1702
  ]
1564
1703
  }
1565
1704
  },
1566
- "openai_coding": {
1567
- "choice": "openai_coding",
1568
- "displayName": "OpenAI Coding",
1569
- "description": "OpenAI alternative for coding workloads.",
1570
- "provider": "openai",
1571
- "modelId": "gpt-4.1",
1705
+ "deepseek_pro": {
1706
+ "choice": "deepseek_pro",
1707
+ "displayName": "DeepSeek V4 Pro (escalation)",
1708
+ "description": "Escalation tier when Flash fails or for hard architecture and bug investigation.",
1709
+ "provider": "deepseek",
1710
+ "modelId": "deepseek-v4-pro",
1711
+ "modelStatus": "verified",
1712
+ "runtime": {
1713
+ "instructionTier": "reasoning",
1714
+ "backend": "openrouter",
1715
+ "reasoningEffort": "high",
1716
+ "toolPolicy": "read-only",
1717
+ "outputMode": "text"
1718
+ },
1719
+ "reason": "Use after Flash struggles on complex refactors, debugging, or long-horizon tasks.",
1720
+ "verification": {
1721
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
1722
+ "sourceRefs": [
1723
+ "vendor:deepseek",
1724
+ "openrouter:catalog"
1725
+ ]
1726
+ }
1727
+ },
1728
+ "claude_coding": {
1729
+ "choice": "claude_coding",
1730
+ "displayName": "Claude Coding",
1731
+ "description": "Premium Claude option for highest instruction-following quality.",
1732
+ "provider": "anthropic",
1733
+ "modelId": "claude-sonnet-4-5",
1572
1734
  "modelStatus": "verified",
1573
1735
  "runtime": {
1736
+ "instructionTier": "default",
1737
+ "backend": "openrouter",
1574
1738
  "reasoningEffort": "high",
1575
1739
  "toolPolicy": "read-only",
1576
1740
  "outputMode": "text"
1577
1741
  },
1578
- "reason": "Solid alternative for multi-file edits and API-heavy codebases.",
1742
+ "reason": "Strong instruction following and code quality when cost is secondary.",
1579
1743
  "verification": {
1580
1744
  "lastVerifiedAt": "2026-05-29T20:57:08Z",
1581
1745
  "sourceRefs": [
1582
- "vendor:openai",
1746
+ "vendor:anthropic",
1583
1747
  "openrouter:catalog"
1584
1748
  ]
1585
1749
  }
1586
1750
  },
1587
- "deepseek_coding": {
1588
- "choice": "deepseek_coding",
1589
- "displayName": "Budget Coding",
1590
- "description": "Lower-cost coding option for simpler changes.",
1591
- "provider": "deepseek",
1592
- "modelId": "deepseek-chat",
1751
+ "openai_coding": {
1752
+ "choice": "openai_coding",
1753
+ "displayName": "OpenAI Coding",
1754
+ "description": "OpenAI alternative for coding workloads.",
1755
+ "provider": "openai",
1756
+ "modelId": "gpt-4.1",
1593
1757
  "modelStatus": "verified",
1594
1758
  "runtime": {
1595
- "reasoningEffort": "medium",
1759
+ "reasoningEffort": "high",
1596
1760
  "toolPolicy": "read-only",
1597
1761
  "outputMode": "text"
1598
1762
  },
1599
- "reason": "Cost-effective for smaller patches, tests, and boilerplate generation.",
1763
+ "reason": "Solid alternative for multi-file edits and API-heavy codebases.",
1600
1764
  "verification": {
1601
1765
  "lastVerifiedAt": "2026-05-29T20:57:08Z",
1602
1766
  "sourceRefs": [
1603
- "vendor:deepseek",
1767
+ "vendor:openai",
1604
1768
  "openrouter:catalog"
1605
1769
  ]
1606
1770
  }
@@ -1631,16 +1795,26 @@
1631
1795
  },
1632
1796
  "fallbackChoiceOrder": [
1633
1797
  "default",
1798
+ "deepseek_pro",
1799
+ "claude_coding",
1634
1800
  "openai_coding",
1635
- "deepseek_coding",
1636
1801
  "minimax_coding"
1637
- ]
1802
+ ],
1803
+ "catalogLane": "text"
1638
1804
  },
1639
1805
  "extraction": {
1640
1806
  "profile": "extraction",
1641
1807
  "displayName": "Extraction",
1642
1808
  "description": "Model selection for NER, classification, taxonomy mapping, entity extraction, and document labeling.",
1643
1809
  "category": "extraction",
1810
+ "tags": [
1811
+ "xtr",
1812
+ "cls",
1813
+ "str",
1814
+ "json",
1815
+ "bat",
1816
+ "eco"
1817
+ ],
1644
1818
  "aliases": [
1645
1819
  "ner",
1646
1820
  "classify",
@@ -1714,13 +1888,21 @@
1714
1888
  "fallbackChoiceOrder": [
1715
1889
  "default",
1716
1890
  "anthropic_extraction"
1717
- ]
1891
+ ],
1892
+ "catalogLane": "text"
1718
1893
  },
1719
1894
  "routing": {
1720
1895
  "profile": "routing",
1721
1896
  "displayName": "Routing",
1722
1897
  "description": "Ultra-low-cost models for intent classification, record routing, and workflow branching.",
1723
1898
  "category": "routing",
1899
+ "tags": [
1900
+ "rte",
1901
+ "tri",
1902
+ "cls",
1903
+ "str",
1904
+ "eco"
1905
+ ],
1724
1906
  "aliases": [
1725
1907
  "router",
1726
1908
  "classifier",
@@ -1789,7 +1971,238 @@
1789
1971
  "fallbackChoiceOrder": [
1790
1972
  "default",
1791
1973
  "safer_routing"
1792
- ]
1974
+ ],
1975
+ "catalogLane": "text"
1976
+ },
1977
+ "vol": {
1978
+ "profile": "vol",
1979
+ "displayName": "Volume Agent",
1980
+ "description": "High-volume economic agent lane: Flash for default agent, coding, extraction, and workflows; Pro for hard reasoning and final-quality answers.",
1981
+ "category": "agent",
1982
+ "tags": [
1983
+ "ds",
1984
+ "eco",
1985
+ "agt",
1986
+ "wf",
1987
+ "cod",
1988
+ "anl",
1989
+ "rsn",
1990
+ "str",
1991
+ "json",
1992
+ "xtr",
1993
+ "cls",
1994
+ "pro",
1995
+ "rev"
1996
+ ],
1997
+ "aliases": [
1998
+ "agent-volume",
1999
+ "flash-tier",
2000
+ "volume-agent",
2001
+ "final-answer"
2002
+ ],
2003
+ "defaultChoice": "default",
2004
+ "choices": {
2005
+ "default": {
2006
+ "choice": "default",
2007
+ "displayName": "DeepSeek Default (V4 Flash)",
2008
+ "description": "Default app, agent, and workflow model with thinking enabled.",
2009
+ "provider": "deepseek",
2010
+ "modelId": "deepseek-v4-flash",
2011
+ "modelStatus": "verified",
2012
+ "runtime": {
2013
+ "instructionTier": "default",
2014
+ "backend": "openrouter",
2015
+ "reasoningEffort": "medium",
2016
+ "toolPolicy": "write-with-approval",
2017
+ "outputMode": "text"
2018
+ },
2019
+ "reason": "Cheap, fast, and strong enough for most coding, extraction, routing, summaries, and agent steps (1M context).",
2020
+ "verification": {
2021
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
2022
+ "sourceRefs": [
2023
+ "vendor:deepseek",
2024
+ "openrouter:catalog",
2025
+ "vendor:deepseek-api-docs"
2026
+ ]
2027
+ },
2028
+ "secondary": {
2029
+ "kind": "choice",
2030
+ "choice": "pro",
2031
+ "reason": "Escalation to Pro when Flash default is insufficient for agent steps."
2032
+ }
2033
+ },
2034
+ "flash": {
2035
+ "choice": "flash",
2036
+ "displayName": "V4 Flash (non-thinking)",
2037
+ "description": "Classification, extraction, and JSON tasks without expensive reasoning.",
2038
+ "provider": "deepseek",
2039
+ "modelId": "deepseek-v4-flash",
2040
+ "modelStatus": "verified",
2041
+ "runtime": {
2042
+ "instructionTier": "default",
2043
+ "backend": "openrouter",
2044
+ "reasoningEffort": "minimal",
2045
+ "toolPolicy": "none",
2046
+ "outputMode": "schema",
2047
+ "temperature": 0
2048
+ },
2049
+ "reason": "Structured extraction and high-volume tasks that do not need deep reasoning.",
2050
+ "verification": {
2051
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
2052
+ "sourceRefs": [
2053
+ "vendor:deepseek",
2054
+ "openrouter:catalog"
2055
+ ]
2056
+ }
2057
+ },
2058
+ "pro": {
2059
+ "choice": "pro",
2060
+ "displayName": "V4 Pro (hard reasoning)",
2061
+ "description": "Complex reasoning, architecture, bug investigation, and long-context analysis.",
2062
+ "provider": "deepseek",
2063
+ "modelId": "deepseek-v4-pro",
2064
+ "modelStatus": "verified",
2065
+ "runtime": {
2066
+ "instructionTier": "reasoning",
2067
+ "backend": "openrouter",
2068
+ "reasoningEffort": "high",
2069
+ "toolPolicy": "read-only",
2070
+ "outputMode": "text"
2071
+ },
2072
+ "reason": "Escalation tier for agentic coding loops and hard multi-step reasoning at a fraction of Opus or GPT-5.5 cost.",
2073
+ "verification": {
2074
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
2075
+ "sourceRefs": [
2076
+ "vendor:deepseek",
2077
+ "openrouter:catalog",
2078
+ "vendor:deepseek-api-docs"
2079
+ ]
2080
+ }
2081
+ },
2082
+ "final": {
2083
+ "choice": "final",
2084
+ "displayName": "V4 Pro (final answer)",
2085
+ "description": "Professional-grade final review and answer nodes.",
2086
+ "provider": "deepseek",
2087
+ "modelId": "deepseek-v4-pro",
2088
+ "modelStatus": "verified",
2089
+ "runtime": {
2090
+ "instructionTier": "reasoning",
2091
+ "backend": "openrouter",
2092
+ "reasoningEffort": "high",
2093
+ "toolPolicy": "none",
2094
+ "outputMode": "text"
2095
+ },
2096
+ "reason": "Best place to spend DeepSeek quality budget on final outputs.",
2097
+ "verification": {
2098
+ "lastVerifiedAt": "2026-06-01T12:00:00Z",
2099
+ "sourceRefs": [
2100
+ "vendor:deepseek",
2101
+ "openrouter:catalog"
2102
+ ]
2103
+ }
2104
+ }
2105
+ },
2106
+ "fallbackChoiceOrder": [
2107
+ "default",
2108
+ "flash",
2109
+ "pro",
2110
+ "final"
2111
+ ],
2112
+ "requiredCapabilities": {
2113
+ "reasoning": "medium",
2114
+ "coding": true,
2115
+ "context": "xlarge",
2116
+ "cost": "low",
2117
+ "supportsTools": true,
2118
+ "inputModalities": [
2119
+ "text"
2120
+ ],
2121
+ "outputModalities": [
2122
+ "text"
2123
+ ]
2124
+ },
2125
+ "catalogLane": "text"
2126
+ },
2127
+ "sum": {
2128
+ "profile": "sum",
2129
+ "displayName": "Summarization",
2130
+ "description": "Optimized for information compression and document triage.",
2131
+ "category": "analysis",
2132
+ "tags": [
2133
+ "sum",
2134
+ "anl",
2135
+ "tri",
2136
+ "wf"
2137
+ ],
2138
+ "aliases": [
2139
+ "triage",
2140
+ "digest",
2141
+ "tl-dr"
2142
+ ],
2143
+ "defaultChoice": "default",
2144
+ "choices": {
2145
+ "default": {
2146
+ "choice": "default",
2147
+ "displayName": "Fast Digest",
2148
+ "description": "Quickly summarizes standard documents and meeting transcripts.",
2149
+ "provider": "anthropic",
2150
+ "modelId": "claude-haiku-4-5",
2151
+ "runtime": {
2152
+ "instructionTier": "default",
2153
+ "backend": "openrouter",
2154
+ "reasoningEffort": "low",
2155
+ "toolPolicy": "none",
2156
+ "outputMode": "text"
2157
+ },
2158
+ "reason": "Fast and capable at reading comprehension and triage summaries.",
2159
+ "verification": {
2160
+ "lastVerifiedAt": "2026-05-29T17:08:03Z",
2161
+ "sourceRefs": [
2162
+ "vendor:anthropic",
2163
+ "openrouter:catalog"
2164
+ ]
2165
+ },
2166
+ "modelStatus": "verified"
2167
+ },
2168
+ "mega_context": {
2169
+ "choice": "mega_context",
2170
+ "displayName": "Mega Context Summarization",
2171
+ "description": "Compressing entire repositories, books, or multi-year document histories.",
2172
+ "provider": "google",
2173
+ "modelId": "gemini-3.5-flash",
2174
+ "runtime": {
2175
+ "reasoningEffort": "high",
2176
+ "toolPolicy": "none",
2177
+ "outputMode": "text"
2178
+ },
2179
+ "reason": "When input exceeds ~200k tokens, Gemini 3.5 Flash long context handles needle-in-haystack retrieval best.",
2180
+ "verification": {
2181
+ "lastVerifiedAt": "2026-05-29T17:08:03Z",
2182
+ "sourceRefs": [
2183
+ "vendor:google",
2184
+ "openrouter:catalog"
2185
+ ]
2186
+ },
2187
+ "modelStatus": "verified"
2188
+ }
2189
+ },
2190
+ "fallbackChoiceOrder": [
2191
+ "default",
2192
+ "mega_context"
2193
+ ],
2194
+ "requiredCapabilities": {
2195
+ "reasoning": "low",
2196
+ "cost": "low",
2197
+ "context": "large",
2198
+ "inputModalities": [
2199
+ "text"
2200
+ ],
2201
+ "outputModalities": [
2202
+ "text"
2203
+ ]
2204
+ },
2205
+ "catalogLane": "text"
1793
2206
  }
1794
2207
  }
1795
2208
  }