@x12i/ai-profiles 2.0.1 → 2.1.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.
Files changed (79) hide show
  1. package/README.md +147 -44
  2. package/dist/buildResolvedProfile.d.ts.map +1 -1
  3. package/dist/buildResolvedProfile.js +7 -0
  4. package/dist/buildResolvedProfile.js.map +1 -1
  5. package/dist/costTiers.d.ts +4 -0
  6. package/dist/costTiers.d.ts.map +1 -0
  7. package/dist/costTiers.js +20 -0
  8. package/dist/costTiers.js.map +1 -0
  9. package/dist/data/models-profiles.bak.json +2336 -0
  10. package/dist/data/models-profiles.json +166 -14
  11. package/dist/data/profiles-shortcuts.json +86 -34
  12. package/dist/errors.d.ts +1 -1
  13. package/dist/errors.d.ts.map +1 -1
  14. package/dist/errors.js.map +1 -1
  15. package/dist/index.d.ts +9 -2
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +6 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/isKnownProfileChoice.d.ts +6 -0
  20. package/dist/isKnownProfileChoice.d.ts.map +1 -0
  21. package/dist/isKnownProfileChoice.js +11 -0
  22. package/dist/isKnownProfileChoice.js.map +1 -0
  23. package/dist/listAIProfileChoices.d.ts +6 -0
  24. package/dist/listAIProfileChoices.d.ts.map +1 -0
  25. package/dist/listAIProfileChoices.js +50 -0
  26. package/dist/listAIProfileChoices.js.map +1 -0
  27. package/dist/listAIProfiles.d.ts.map +1 -1
  28. package/dist/listAIProfiles.js +23 -0
  29. package/dist/listAIProfiles.js.map +1 -1
  30. package/dist/modalityPolicy.d.ts +4 -1
  31. package/dist/modalityPolicy.d.ts.map +1 -1
  32. package/dist/modalityPolicy.js +82 -3
  33. package/dist/modalityPolicy.js.map +1 -1
  34. package/dist/modelInputFallback.d.ts.map +1 -1
  35. package/dist/modelInputFallback.js +12 -2
  36. package/dist/modelInputFallback.js.map +1 -1
  37. package/dist/profileChoiceKey.d.ts +35 -0
  38. package/dist/profileChoiceKey.d.ts.map +1 -0
  39. package/dist/profileChoiceKey.js +81 -0
  40. package/dist/profileChoiceKey.js.map +1 -0
  41. package/dist/profileDiscoveryMatch.d.ts +15 -0
  42. package/dist/profileDiscoveryMatch.d.ts.map +1 -0
  43. package/dist/profileDiscoveryMatch.js +17 -0
  44. package/dist/profileDiscoveryMatch.js.map +1 -0
  45. package/dist/resolveAIProfile.d.ts +4 -5
  46. package/dist/resolveAIProfile.d.ts.map +1 -1
  47. package/dist/resolveAIProfile.js +51 -81
  48. package/dist/resolveAIProfile.js.map +1 -1
  49. package/dist/resolveAIProfileByTags.d.ts +2 -2
  50. package/dist/resolveAIProfileByTags.d.ts.map +1 -1
  51. package/dist/resolveAIProfileByTags.js +28 -10
  52. package/dist/resolveAIProfileByTags.js.map +1 -1
  53. package/dist/resolveAIProfileWithCostAlternatives.d.ts +17 -0
  54. package/dist/resolveAIProfileWithCostAlternatives.d.ts.map +1 -0
  55. package/dist/resolveAIProfileWithCostAlternatives.js +129 -0
  56. package/dist/resolveAIProfileWithCostAlternatives.js.map +1 -0
  57. package/dist/resolveCatalogModel.d.ts +7 -0
  58. package/dist/resolveCatalogModel.d.ts.map +1 -0
  59. package/dist/resolveCatalogModel.js +34 -0
  60. package/dist/resolveCatalogModel.js.map +1 -0
  61. package/dist/resolveSecondaryModel.d.ts.map +1 -1
  62. package/dist/resolveSecondaryModel.js +17 -8
  63. package/dist/resolveSecondaryModel.js.map +1 -1
  64. package/dist/secondaryModel.d.ts +0 -5
  65. package/dist/secondaryModel.d.ts.map +1 -1
  66. package/dist/secondaryModel.js +1 -13
  67. package/dist/secondaryModel.js.map +1 -1
  68. package/dist/types.d.ts +87 -8
  69. package/dist/types.d.ts.map +1 -1
  70. package/dist/validateProfileCatalogLinkage.d.ts.map +1 -1
  71. package/dist/validateProfileCatalogLinkage.js +2 -1
  72. package/dist/validateProfileCatalogLinkage.js.map +1 -1
  73. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  74. package/dist/validation/validateModelsProfilesJson.js +11 -7
  75. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  76. package/dist/vendorPolicy.d.ts.map +1 -1
  77. package/dist/vendorPolicy.js +1 -6
  78. package/dist/vendorPolicy.js.map +1 -1
  79. package/package.json +1 -1
@@ -2,7 +2,7 @@
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-06-01T12:00:00Z",
5
+ "lastVerifiedAt": "2026-06-02T00:00:00Z",
6
6
  "version": "4.0.0",
7
7
  "currency": "USD",
8
8
  "pricingUnit": "1M_tokens",
@@ -19,6 +19,7 @@
19
19
  "outputModalities": "Required output media types for profile intent (text, image, audio, video, file).",
20
20
  "choiceModalities": "Optional per-choice modality override when catalog linkage is missing.",
21
21
  "profileTags": "Short discovery tags (2–4 chars). Vendor affinity: ds, ggl, xai, mmx, ant, oai. (profile, tag-set) pairs are unique.",
22
+ "profileChoiceKey": "Canonical model lookup key is profile/choice (e.g. cheap/default). Object keys must match profile and choice fields. Aliases are discovery-only.",
22
23
  "catalogLane": "Required OpenRouter browser lane per profile. resolveAIProfile requires options.catalogLane matching the profile lane.",
23
24
  "secondary": "Optional companion model per choice (review, escalation, verification). Resolved via resolveSecondaryModel; not a failover replacement.",
24
25
  "fallbackChoiceOrder": "Replacement order when constraints exclude the primary choice (cost cap, vendor trim). Independent of secondary.",
@@ -220,6 +221,134 @@
220
221
  },
221
222
  "catalogLane": "text"
222
223
  },
224
+ "value": {
225
+ "profile": "value",
226
+ "displayName": "Value",
227
+ "description": "Cheap but powerful: prioritize strong reasoning per dollar when you want higher capability without flagship pricing.",
228
+ "category": "cost",
229
+ "tags": ["eco", "rsn", "cod", "anl", "ds"],
230
+ "aliases": ["cheap-power", "power-cheap", "value", "cheap-strong"],
231
+ "defaultChoice": "default",
232
+ "choices": {
233
+ "default": {
234
+ "choice": "default",
235
+ "displayName": "Value Default (DeepSeek Pro)",
236
+ "description": "Recommended cheap-but-strong model choice.",
237
+ "provider": "deepseek",
238
+ "modelId": "deepseek-v4-pro",
239
+ "runtime": {
240
+ "instructionTier": "reasoning",
241
+ "backend": "openrouter",
242
+ "reasoningEffort": "high",
243
+ "toolPolicy": "none",
244
+ "outputMode": "text"
245
+ },
246
+ "reason": "Strong reasoning-per-dollar alternative when cheap is desired but quality matters."
247
+ },
248
+ "deepseek_flash": {
249
+ "choice": "deepseek_flash",
250
+ "displayName": "Value Fast (DeepSeek Flash)",
251
+ "description": "Cheaper and faster, but still strong for many tasks.",
252
+ "provider": "deepseek",
253
+ "modelId": "deepseek-v4-flash",
254
+ "runtime": {
255
+ "instructionTier": "default",
256
+ "backend": "openrouter",
257
+ "reasoningEffort": "medium",
258
+ "toolPolicy": "none",
259
+ "outputMode": "text"
260
+ },
261
+ "reason": "Use when you want the DeepSeek family but need a cheaper/faster option."
262
+ },
263
+ "google_value": {
264
+ "choice": "google_value",
265
+ "displayName": "Value Long-Context",
266
+ "description": "Long-context alternative for heavy reading.",
267
+ "provider": "google",
268
+ "modelId": "gemini-3.5-flash",
269
+ "runtime": {
270
+ "instructionTier": "default",
271
+ "backend": "openrouter",
272
+ "reasoningEffort": "medium",
273
+ "toolPolicy": "none",
274
+ "outputMode": "text"
275
+ },
276
+ "reason": "Good alternative when input size and context length matter more than maximum reasoning."
277
+ }
278
+ },
279
+ "fallbackChoiceOrder": ["default", "deepseek_flash", "google_value"],
280
+ "requiredCapabilities": {
281
+ "reasoning": "medium",
282
+ "coding": true,
283
+ "cost": "low",
284
+ "inputModalities": ["text"],
285
+ "outputModalities": ["text"]
286
+ },
287
+ "catalogLane": "text"
288
+ },
289
+ "testing": {
290
+ "profile": "testing",
291
+ "displayName": "Testing",
292
+ "description": "Cheap default profile for smoke tests, demos, and deterministic integration checks.",
293
+ "category": "cost",
294
+ "tags": ["eco", "wf", "bat", "tri"],
295
+ "aliases": ["test", "testing", "smoke", "smoke-test"],
296
+ "defaultChoice": "default",
297
+ "choices": {
298
+ "default": {
299
+ "choice": "default",
300
+ "displayName": "Testing Default",
301
+ "description": "Stable, cheap baseline model for tests.",
302
+ "provider": "google",
303
+ "modelId": "gemini-2.5-flash-lite",
304
+ "runtime": {
305
+ "instructionTier": "default",
306
+ "backend": "openrouter",
307
+ "reasoningEffort": "minimal",
308
+ "toolPolicy": "none",
309
+ "outputMode": "text"
310
+ },
311
+ "reason": "Cheap enough to use in CI-like flows and manual smoke tests."
312
+ },
313
+ "floor": {
314
+ "choice": "floor",
315
+ "displayName": "Testing Floor (same SKU)",
316
+ "description": "Explicit cost-floor choice for tests (intentionally same model).",
317
+ "provider": "google",
318
+ "modelId": "gemini-2.5-flash-lite",
319
+ "runtime": {
320
+ "reasoningEffort": "minimal",
321
+ "executionMode": "batch",
322
+ "toolPolicy": "none",
323
+ "outputMode": "text"
324
+ },
325
+ "reason": "Same catalog model as default, but labeled separately for easy selection in test matrices."
326
+ },
327
+ "deepseek_test": {
328
+ "choice": "deepseek_test",
329
+ "displayName": "Testing DeepSeek",
330
+ "description": "Alternate vendor for testing provider fallbacks.",
331
+ "provider": "deepseek",
332
+ "modelId": "deepseek-v4-flash",
333
+ "runtime": {
334
+ "instructionTier": "default",
335
+ "backend": "openrouter",
336
+ "reasoningEffort": "low",
337
+ "toolPolicy": "none",
338
+ "outputMode": "text"
339
+ },
340
+ "reason": "Useful to test non-Google routing and vendor trimming while staying inexpensive."
341
+ }
342
+ },
343
+ "fallbackChoiceOrder": ["default", "floor", "deepseek_test"],
344
+ "requiredCapabilities": {
345
+ "cost": "low",
346
+ "reasoning": "minimal",
347
+ "inputModalities": ["text"],
348
+ "outputModalities": ["text"]
349
+ },
350
+ "catalogLane": "text"
351
+ },
223
352
  "fast": {
224
353
  "profile": "fast",
225
354
  "displayName": "Fast",
@@ -439,7 +568,7 @@
439
568
  "openrouter:catalog"
440
569
  ]
441
570
  },
442
- "modelStatus": "predicted"
571
+ "modelStatus": "verified"
443
572
  },
444
573
  "google_balanced": {
445
574
  "choice": "google_balanced",
@@ -535,7 +664,7 @@
535
664
  "displayName": "Deep Default",
536
665
  "description": "Recommended high-reasoning model.",
537
666
  "provider": "anthropic",
538
- "modelId": "claude-sonnet-4-5",
667
+ "modelId": "claude-sonnet-4-6",
539
668
  "runtime": {
540
669
  "instructionTier": "reasoning",
541
670
  "backend": "openrouter",
@@ -545,7 +674,7 @@
545
674
  },
546
675
  "reason": "Strong default for architecture, planning, code review, analysis, and complex workflows.",
547
676
  "verification": {
548
- "lastVerifiedAt": "2026-05-29T17:08:03Z",
677
+ "lastVerifiedAt": "2026-06-02T00:00:00Z",
549
678
  "sourceRefs": [
550
679
  "vendor:anthropic",
551
680
  "openrouter:catalog"
@@ -577,7 +706,7 @@
577
706
  "openrouter:catalog"
578
707
  ]
579
708
  },
580
- "modelStatus": "predicted"
709
+ "modelStatus": "verified"
581
710
  },
582
711
  "google_deep": {
583
712
  "choice": "google_deep",
@@ -645,7 +774,7 @@
645
774
  "openrouter:catalog"
646
775
  ]
647
776
  },
648
- "modelStatus": "predicted"
777
+ "modelStatus": "verified"
649
778
  },
650
779
  "minimax_deep": {
651
780
  "choice": "minimax_deep",
@@ -756,7 +885,7 @@
756
885
  "openrouter:catalog"
757
886
  ]
758
887
  },
759
- "modelStatus": "predicted"
888
+ "modelStatus": "verified"
760
889
  },
761
890
  "anthropic_pro": {
762
891
  "choice": "anthropic_pro",
@@ -777,7 +906,7 @@
777
906
  "openrouter:catalog"
778
907
  ]
779
908
  },
780
- "modelStatus": "predicted"
909
+ "modelStatus": "verified"
781
910
  }
782
911
  },
783
912
  "fallbackChoiceOrder": [
@@ -893,7 +1022,7 @@
893
1022
  "openrouter:catalog"
894
1023
  ]
895
1024
  },
896
- "modelStatus": "predicted"
1025
+ "modelStatus": "verified"
897
1026
  },
898
1027
  "deepseek_json": {
899
1028
  "choice": "deepseek_json",
@@ -965,7 +1094,7 @@
965
1094
  "displayName": "Agentic Default",
966
1095
  "description": "Recommended model for agentic execution.",
967
1096
  "provider": "anthropic",
968
- "modelId": "claude-sonnet-4-5",
1097
+ "modelId": "claude-sonnet-4-6",
969
1098
  "runtime": {
970
1099
  "instructionTier": "default",
971
1100
  "backend": "openrouter",
@@ -975,7 +1104,7 @@
975
1104
  },
976
1105
  "reason": "Strong default for multi-step planning, tool use, and agent workflows.",
977
1106
  "verification": {
978
- "lastVerifiedAt": "2026-05-29T17:08:03Z",
1107
+ "lastVerifiedAt": "2026-06-02T00:00:00Z",
979
1108
  "sourceRefs": [
980
1109
  "vendor:anthropic",
981
1110
  "openrouter:catalog"
@@ -988,6 +1117,29 @@
988
1117
  "reason": "Cross-vendor reviewer for agentic tool-use workflows."
989
1118
  }
990
1119
  },
1120
+ "deepseek_agentic": {
1121
+ "choice": "deepseek_agentic",
1122
+ "displayName": "DeepSeek V4 Agentic",
1123
+ "description": "Agentic fallback using DeepSeek's reasoning and tool capabilities.",
1124
+ "provider": "deepseek",
1125
+ "modelId": "deepseek-v4-pro",
1126
+ "runtime": {
1127
+ "instructionTier": "reasoning",
1128
+ "backend": "openrouter",
1129
+ "reasoningEffort": "high",
1130
+ "toolPolicy": "write-with-approval",
1131
+ "outputMode": "text"
1132
+ },
1133
+ "reason": "Use when cost or vendor trimming excludes Anthropic or OpenAI for agentic tool use.",
1134
+ "verification": {
1135
+ "lastVerifiedAt": "2026-06-02T00:00:00Z",
1136
+ "sourceRefs": [
1137
+ "vendor:deepseek",
1138
+ "openrouter:catalog"
1139
+ ]
1140
+ },
1141
+ "modelStatus": "verified"
1142
+ },
991
1143
  "openai_agentic": {
992
1144
  "choice": "openai_agentic",
993
1145
  "displayName": "OpenAI Agentic",
@@ -1007,7 +1159,7 @@
1007
1159
  "openrouter:catalog"
1008
1160
  ]
1009
1161
  },
1010
- "modelStatus": "predicted"
1162
+ "modelStatus": "verified"
1011
1163
  },
1012
1164
  "google_agentic": {
1013
1165
  "choice": "google_agentic",
@@ -1434,7 +1586,7 @@
1434
1586
  "openrouter:catalog"
1435
1587
  ]
1436
1588
  },
1437
- "modelStatus": "predicted"
1589
+ "modelStatus": "verified"
1438
1590
  }
1439
1591
  },
1440
1592
  "fallbackChoiceOrder": [
@@ -1513,7 +1665,7 @@
1513
1665
  "openrouter:catalog"
1514
1666
  ]
1515
1667
  },
1516
- "modelStatus": "predicted"
1668
+ "modelStatus": "verified"
1517
1669
  }
1518
1670
  },
1519
1671
  "fallbackChoiceOrder": [
@@ -1,16 +1,19 @@
1
1
  {
2
2
  "schema": "x12i.ai-profiles.shortcuts",
3
- "version": "1.6.0",
4
- "generatedAt": "2026-06-01T12:00:00.000Z",
3
+ "version": "2.0.0",
4
+ "generatedAt": "2026-06-02T13:39:41.774Z",
5
5
  "shortcuts": {
6
6
  "economy": {
7
- "profile": "cheap"
7
+ "profile": "cheap",
8
+ "choice": "default"
8
9
  },
9
10
  "budget": {
10
- "profile": "cheap"
11
+ "profile": "cheap",
12
+ "choice": "default"
11
13
  },
12
14
  "low-cost": {
13
- "profile": "cheap"
15
+ "profile": "cheap",
16
+ "choice": "default"
14
17
  },
15
18
  "cheapest": {
16
19
  "profile": "cheap",
@@ -20,31 +23,57 @@
20
23
  "profile": "cheap",
21
24
  "choice": "anthropic_cheap"
22
25
  },
26
+ "cheap-power": {
27
+ "profile": "value",
28
+ "choice": "default"
29
+ },
30
+ "value": {
31
+ "profile": "value",
32
+ "choice": "default"
33
+ },
34
+ "test": {
35
+ "profile": "testing",
36
+ "choice": "default"
37
+ },
38
+ "testing": {
39
+ "profile": "testing",
40
+ "choice": "default"
41
+ },
42
+ "smoke-test": {
43
+ "profile": "testing",
44
+ "choice": "default"
45
+ },
23
46
  "instant": {
24
- "profile": "fast"
47
+ "profile": "fast",
48
+ "choice": "default"
25
49
  },
26
50
  "quick": {
27
- "profile": "fast"
51
+ "profile": "fast",
52
+ "choice": "default"
28
53
  },
29
54
  "fast-cheap": {
30
55
  "profile": "fast",
31
56
  "choice": "google_fast"
32
57
  },
33
58
  "default": {
34
- "profile": "balanced"
59
+ "profile": "balanced",
60
+ "choice": "default"
35
61
  },
36
62
  "standard": {
37
- "profile": "balanced"
63
+ "profile": "balanced",
64
+ "choice": "default"
38
65
  },
39
66
  "normal": {
40
67
  "profile": "balanced",
41
68
  "choice": "default"
42
69
  },
43
70
  "thinking": {
44
- "profile": "deep"
71
+ "profile": "deep",
72
+ "choice": "default"
45
73
  },
46
74
  "high-reasoning": {
47
- "profile": "deep"
75
+ "profile": "deep",
76
+ "choice": "default"
48
77
  },
49
78
  "long-context": {
50
79
  "profile": "deep",
@@ -55,50 +84,60 @@
55
84
  "choice": "default"
56
85
  },
57
86
  "premium": {
58
- "profile": "pro"
87
+ "profile": "pro",
88
+ "choice": "default"
59
89
  },
60
90
  "best": {
61
- "profile": "pro"
91
+ "profile": "pro",
92
+ "choice": "default"
62
93
  },
63
94
  "strong": {
64
95
  "profile": "pro",
65
96
  "choice": "default"
66
97
  },
67
98
  "schema": {
68
- "profile": "json"
99
+ "profile": "json",
100
+ "choice": "default"
69
101
  },
70
102
  "strict-json": {
71
- "profile": "json"
103
+ "profile": "json",
104
+ "choice": "default"
72
105
  },
73
106
  "cheap-json": {
74
107
  "profile": "json",
75
108
  "choice": "google_json"
76
109
  },
77
110
  "agent": {
78
- "profile": "agentic"
111
+ "profile": "agentic",
112
+ "choice": "default"
79
113
  },
80
114
  "tools": {
81
- "profile": "agentic"
115
+ "profile": "agentic",
116
+ "choice": "default"
82
117
  },
83
118
  "cheap-agent": {
84
119
  "profile": "agentic",
85
120
  "choice": "google_agentic"
86
121
  },
87
122
  "web-research": {
88
- "profile": "research"
123
+ "profile": "research",
124
+ "choice": "default"
89
125
  },
90
126
  "source-review": {
91
- "profile": "research"
127
+ "profile": "research",
128
+ "choice": "default"
92
129
  },
93
130
  "premium-research": {
94
131
  "profile": "research",
95
132
  "choice": "openai_research"
96
133
  },
97
134
  "offline": {
98
- "profile": "local"
135
+ "profile": "local",
136
+ "choice": "llama_cpp_gguf"
99
137
  },
100
138
  "on-device": {
101
- "profile": "local"
139
+ "profile": "local",
140
+ "choice": "llama_cpp_gguf"
102
141
  },
103
142
  "cpu": {
104
143
  "profile": "local",
@@ -109,10 +148,12 @@
109
148
  "choice": "llama_cpp_gguf"
110
149
  },
111
150
  "threat-intel": {
112
- "profile": "cyber"
151
+ "profile": "cyber",
152
+ "choice": "default"
113
153
  },
114
154
  "security": {
115
- "profile": "cyber"
155
+ "profile": "cyber",
156
+ "choice": "default"
116
157
  },
117
158
  "audit": {
118
159
  "profile": "cyber",
@@ -123,10 +164,12 @@
123
164
  "choice": "log_analysis"
124
165
  },
125
166
  "writing": {
126
- "profile": "content"
167
+ "profile": "content",
168
+ "choice": "default"
127
169
  },
128
170
  "copy": {
129
- "profile": "content"
171
+ "profile": "content",
172
+ "choice": "default"
130
173
  },
131
174
  "pseo": {
132
175
  "profile": "content",
@@ -149,7 +192,8 @@
149
192
  "choice": "mega_context"
150
193
  },
151
194
  "image": {
152
- "profile": "vision"
195
+ "profile": "vision",
196
+ "choice": "default"
153
197
  },
154
198
  "ocr": {
155
199
  "profile": "vision",
@@ -160,25 +204,32 @@
160
204
  "choice": "deepseek_cheap"
161
205
  },
162
206
  "coding": {
163
- "profile": "coding"
207
+ "profile": "coding",
208
+ "choice": "default"
164
209
  },
165
210
  "dev": {
166
- "profile": "coding"
211
+ "profile": "coding",
212
+ "choice": "default"
167
213
  },
168
214
  "extraction": {
169
- "profile": "extraction"
215
+ "profile": "extraction",
216
+ "choice": "default"
170
217
  },
171
218
  "extract": {
172
- "profile": "extraction"
219
+ "profile": "extraction",
220
+ "choice": "default"
173
221
  },
174
222
  "routing": {
175
- "profile": "routing"
223
+ "profile": "routing",
224
+ "choice": "default"
176
225
  },
177
226
  "route": {
178
- "profile": "routing"
227
+ "profile": "routing",
228
+ "choice": "default"
179
229
  },
180
230
  "cyber-analysis": {
181
- "profile": "cyber"
231
+ "profile": "cyber",
232
+ "choice": "default"
182
233
  },
183
234
  "cyber-default": {
184
235
  "profile": "cyber",
@@ -197,7 +248,8 @@
197
248
  "choice": "deepseek_pro"
198
249
  },
199
250
  "volume-agent": {
200
- "profile": "vol"
251
+ "profile": "vol",
252
+ "choice": "default"
201
253
  },
202
254
  "agent-volume": {
203
255
  "profile": "vol",
package/dist/errors.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type AIProfilesErrorCode = "UNKNOWN_PROFILE" | "UNKNOWN_SHORTCUT" | "UNKNOWN_CHOICE" | "UNKNOWN_SECONDARY_CHOICE" | "SECONDARY_CYCLE" | "NO_ALLOWED_VENDOR" | "NO_MODALITY_MATCH" | "NO_COST_CAP_MATCH" | "NO_OPENROUTER_CATALOG" | "CATALOG_LANE_MISMATCH" | "MISSING_CATALOG_LANE" | "REMOTE_FETCH_FAILED" | "REMOTE_JSON_INVALID" | "BUNDLED_JSON_INVALID" | "REGISTRY_SCHEMA_UNSUPPORTED" | "REGISTRY_VALIDATION_FAILED";
1
+ export type AIProfilesErrorCode = "UNKNOWN_PROFILE" | "UNKNOWN_PROFILE_CHOICE" | "UNKNOWN_MODEL" | "CHOICE_SUBSTITUTED" | "UNKNOWN_SHORTCUT" | "UNKNOWN_CHOICE" | "UNKNOWN_SECONDARY_CHOICE" | "SECONDARY_CYCLE" | "NO_ALLOWED_VENDOR" | "NO_MODALITY_MATCH" | "NO_COST_CAP_MATCH" | "NO_OPENROUTER_CATALOG" | "CATALOG_LANE_MISMATCH" | "MISSING_CATALOG_LANE" | "REMOTE_FETCH_FAILED" | "REMOTE_JSON_INVALID" | "BUNDLED_JSON_INVALID" | "REGISTRY_SCHEMA_UNSUPPORTED" | "REGISTRY_VALIDATION_FAILED";
2
2
  export declare class AIProfilesError extends Error {
3
3
  code: AIProfilesErrorCode;
4
4
  details?: Record<string, unknown> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,0BAA0B,GAC1B,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,uBAAuB,GACvB,uBAAuB,GACvB,sBAAsB,GACtB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,6BAA6B,GAC7B,4BAA4B,CAAC;AAEjC,qBAAa,eAAgB,SAAQ,KAAK;IAE/B,IAAI,EAAE,mBAAmB;IAEzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,mBAAmB,EAChC,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAK3C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,wBAAwB,GACxB,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,0BAA0B,GAC1B,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,uBAAuB,GACvB,uBAAuB,GACvB,sBAAsB,GACtB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,6BAA6B,GAC7B,4BAA4B,CAAC;AAEjC,qBAAa,eAAgB,SAAQ,KAAK;IAE/B,IAAI,EAAE,mBAAmB;IAEzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,mBAAmB,EAChC,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAK3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAE/B;IAEA;IAHT,YACS,IAAyB,EAChC,OAAe,EACR,OAAiC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAqB;QAEzB,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAqBA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAE/B;IAEA;IAHT,YACS,IAAyB,EAChC,OAAe,EACR,OAAiC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAqB;QAEzB,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { listAIProfiles } from "./listAIProfiles.js";
2
+ export { listAIProfileChoices } from "./listAIProfileChoices.js";
2
3
  export { profileMatchesTags, profileMatchesSearch, profileMatchesDiscovery, collectProfileTags, scoreProfileTags, rankProfilesByTags, pickBestProfileByTags, profileTagSetSignature, } from "./profileDiscovery.js";
3
4
  export type { ProfileTagScore } from "./profileDiscovery.js";
4
5
  export { resolveAIProfileByTags } from "./resolveAIProfileByTags.js";
@@ -9,11 +10,17 @@ export { getAIRegistryStatistics } from "./getAIRegistryStatistics.js";
9
10
  export { computeProfilesStatistics, computeCatalogStatistics, computeLinkageStatistics, computeShortcutsStatistics, buildRegistryStatistics, } from "./computeRegistryStatistics.js";
10
11
  export { formatRegistryStatistics } from "./formatRegistryStatistics.js";
11
12
  export { resolveAIProfile } from "./resolveAIProfile.js";
13
+ export { resolveCatalogModel } from "./resolveCatalogModel.js";
14
+ export { resolveAIProfileWithCostAlternatives, type ResolveAIProfileWithCostAlternativesResult, } from "./resolveAIProfileWithCostAlternatives.js";
12
15
  export { resolveSecondaryModel, getSecondaryForResolvedProfile, } from "./resolveSecondaryModel.js";
13
16
  export { listProfileSecondaries } from "./secondaryModel.js";
14
17
  export { validateIntentLayerName, validateProfileTagLength, FORBIDDEN_INTENT_VENDOR_TOKENS, } from "./validation/profileIntentPolicy.js";
15
18
  export { validateUniqueProfileTagSets } from "./validation/validateModelsProfilesJson.js";
16
- export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
19
+ export { isKnownProfileChoice } from "./isKnownProfileChoice.js";
20
+ export { PROFILE_CHOICE_KEY_SEP, formatProfileChoiceKey, parseProfileChoiceKey, isProfileChoiceKeyFormat, matchStrictProfileInput, listRegistryProfileChoiceKeys, isKnownProfileChoiceInput, } from "./profileChoiceKey.js";
21
+ export type { ProfileChoiceRef, StrictProfileInputMatch } from "./profileChoiceKey.js";
22
+ export { matchDiscoveryProfileInput } from "./profileDiscoveryMatch.js";
23
+ export type { DiscoveryProfileMatch } from "./profileDiscoveryMatch.js";
17
24
  export { resolveUseOpenRouter, readUseOpenRouterFromEnv, buildOpenRouterModelId, } from "./resolveModelRouting.js";
18
25
  export { buildModelInvocation, buildDirectInvocation, buildRegistryKey, matchOpenRouterCatalog, normalizeAnthropicVersionSlug, openRouterResolutionCandidates, } from "./modelIdentity.js";
19
26
  export { resolveModelIdentity } from "./resolveModelIdentity.js";
@@ -40,7 +47,7 @@ export { loadModelsCatalog, loadModelsCatalogWithWarnings } from "./loader/loadM
40
47
  export { loadBundledModelsCatalog } from "./loader/loadBundledModelsCatalog.js";
41
48
  export { buildModelsCatalogFromOpenRouterApi, buildLegacyCatalogFromOpenRouterApi, } from "./buildCatalogFromOpenRouterApi.js";
42
49
  export { REMOTE_MODELS_CATALOG_URL, OPENROUTER_MODELS_API_URL } from "./constants.js";
43
- export type { AIProfilesRegistry, AIProfileDefinition, AIProfileChoice, AIProfileShortcut, AIProfileSummary, AIShortcutSummary, ResolvedAIProfile, ResolvedSecondaryModel, ResolveSecondaryModelResult, ResolveSecondaryModelOptions, SecondaryRef, ListAIProfilesOptions, ResolveAIProfileOptions, AIProvider, AIModelPricing, AIRuntimeDefaults, AIProfileBackend, AIProfileWarning, InstructionTier, RegistrySourceMode, ModelInvocation, ModelInvocationEndpoint, ModelsRegistryJson, ModelRegistryEntry, ModelsCatalogJson, CatalogModelEntry, CatalogDirectSlice, CatalogOpenRouterSlice, OpenRouterModelsCatalogJson, ValidateProfileVendorCoverageResult, ProfileVendorCoverageResult, AIRegistryStatistics, GetAIRegistryStatisticsOptions, ProfileStatisticsFilter, ModelAvailabilityStatus, DeploymentType, ProfileRequiredCapabilities, ModelCapabilitiesSnapshot, ModelModality, ModalityContract, ProfileModalityMismatch, ProfileModalityCoverageResult, ValidateProfileModalityCoverageResult, CostCapPer1M, CostCapOption, AIProfileTag, ProfileTagMatchMode, ProfileCatalogLane, } from "./types.js";
50
+ export type { AIProfilesRegistry, AIProfileDefinition, AIProfileChoice, AIProfileShortcut, AIProfileSummary, AIShortcutSummary, ResolvedAIProfile, ResolvedSecondaryModel, ResolveSecondaryModelResult, ResolveSecondaryModelOptions, SecondaryRef, ListAIProfilesOptions, ListAIProfileChoicesOptions, AIProfileChoiceSummary, ResolveCatalogModelOptions, ResolveAIProfileOptions, AIProvider, AIModelPricing, AIRuntimeDefaults, AIProfileBackend, AIProfileWarning, InstructionTier, RegistrySourceMode, ModelInvocation, ModelInvocationEndpoint, ModelsRegistryJson, ModelRegistryEntry, ModelsCatalogJson, CatalogModelEntry, CatalogDirectSlice, CatalogOpenRouterSlice, OpenRouterModelsCatalogJson, ValidateProfileVendorCoverageResult, ProfileVendorCoverageResult, AIRegistryStatistics, GetAIRegistryStatisticsOptions, ProfileStatisticsFilter, ModelAvailabilityStatus, DeploymentType, ProfileRequiredCapabilities, ModelCapabilitiesSnapshot, ModelModality, ModalityContract, ProfileModalityMismatch, ProfileModalityCoverageResult, ValidateProfileModalityCoverageResult, CostCapPer1M, CostCapOption, AIProfileTag, ProfileTagMatchMode, ProfileCatalogLane, } from "./types.js";
44
51
  export type { GetAIRegistryStatisticsResult } from "./getAIRegistryStatistics.js";
45
52
  export type { LoadCatalogResult } from "./loader/loadModelsCatalog.js";
46
53
  export type { LoadRegistryOptions, LoadRegistryResult, } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,oCAAoC,EACpC,KAAK,0CAA0C,GAChD,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,cAAc,EACd,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,EAC/B,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,+BAA+B,EAC/B,sCAAsC,EACtC,8BAA8B,GAC/B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,0BAA0B,EAC1B,uCAAuC,EACvC,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,kCAAkC,GACnC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EACL,mCAAmC,EACnC,mCAAmC,GACpC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,YAAY,EACZ,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,mCAAmC,EACnC,2BAA2B,EAC3B,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,6BAA6B,EAC7B,qCAAqC,EACrC,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAClF,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EACV,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { listAIProfiles } from "./listAIProfiles.js";
2
+ export { listAIProfileChoices } from "./listAIProfileChoices.js";
2
3
  export { profileMatchesTags, profileMatchesSearch, profileMatchesDiscovery, collectProfileTags, scoreProfileTags, rankProfilesByTags, pickBestProfileByTags, profileTagSetSignature, } from "./profileDiscovery.js";
3
4
  export { resolveAIProfileByTags } from "./resolveAIProfileByTags.js";
4
5
  export { PROFILE_CATALOG_LANES, profileCatalogLane, profileMatchesCatalogLane, inferCatalogLaneFromEntry, choiceHasOpenRouterCatalog, assertOpenRouterCatalogCoverage, assertProfileCatalogLane, } from "./profileCatalogLane.js";
@@ -7,11 +8,15 @@ export { getAIRegistryStatistics } from "./getAIRegistryStatistics.js";
7
8
  export { computeProfilesStatistics, computeCatalogStatistics, computeLinkageStatistics, computeShortcutsStatistics, buildRegistryStatistics, } from "./computeRegistryStatistics.js";
8
9
  export { formatRegistryStatistics } from "./formatRegistryStatistics.js";
9
10
  export { resolveAIProfile } from "./resolveAIProfile.js";
11
+ export { resolveCatalogModel } from "./resolveCatalogModel.js";
12
+ export { resolveAIProfileWithCostAlternatives, } from "./resolveAIProfileWithCostAlternatives.js";
10
13
  export { resolveSecondaryModel, getSecondaryForResolvedProfile, } from "./resolveSecondaryModel.js";
11
14
  export { listProfileSecondaries } from "./secondaryModel.js";
12
15
  export { validateIntentLayerName, validateProfileTagLength, FORBIDDEN_INTENT_VENDOR_TOKENS, } from "./validation/profileIntentPolicy.js";
13
16
  export { validateUniqueProfileTagSets } from "./validation/validateModelsProfilesJson.js";
14
- export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
17
+ export { isKnownProfileChoice } from "./isKnownProfileChoice.js";
18
+ export { PROFILE_CHOICE_KEY_SEP, formatProfileChoiceKey, parseProfileChoiceKey, isProfileChoiceKeyFormat, matchStrictProfileInput, listRegistryProfileChoiceKeys, isKnownProfileChoiceInput, } from "./profileChoiceKey.js";
19
+ export { matchDiscoveryProfileInput } from "./profileDiscoveryMatch.js";
15
20
  export { resolveUseOpenRouter, readUseOpenRouterFromEnv, buildOpenRouterModelId, } from "./resolveModelRouting.js";
16
21
  export { buildModelInvocation, buildDirectInvocation, buildRegistryKey, matchOpenRouterCatalog, normalizeAnthropicVersionSlug, openRouterResolutionCandidates, } from "./modelIdentity.js";
17
22
  export { resolveModelIdentity } from "./resolveModelIdentity.js";