@x12i/ai-profiles 1.5.0 → 1.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.
Files changed (90) hide show
  1. package/README.md +126 -27
  2. package/dist/buildModelsRegistry.d.ts +2 -0
  3. package/dist/buildModelsRegistry.d.ts.map +1 -1
  4. package/dist/buildModelsRegistry.js +5 -5
  5. package/dist/buildModelsRegistry.js.map +1 -1
  6. package/dist/buildResolvedProfile.d.ts +2 -1
  7. package/dist/buildResolvedProfile.d.ts.map +1 -1
  8. package/dist/buildResolvedProfile.js +12 -2
  9. package/dist/buildResolvedProfile.js.map +1 -1
  10. package/dist/catalogEnrichment.d.ts.map +1 -1
  11. package/dist/catalogEnrichment.js +13 -6
  12. package/dist/catalogEnrichment.js.map +1 -1
  13. package/dist/constants.d.ts +2 -0
  14. package/dist/constants.d.ts.map +1 -1
  15. package/dist/constants.js +8 -0
  16. package/dist/constants.js.map +1 -1
  17. package/dist/costPolicy.d.ts +7 -0
  18. package/dist/costPolicy.d.ts.map +1 -0
  19. package/dist/costPolicy.js +81 -0
  20. package/dist/costPolicy.js.map +1 -0
  21. package/dist/data/models-catalog.json +108 -0
  22. package/dist/data/models-profiles.json +326 -316
  23. package/dist/data/models-profiles.schema.json +38 -11
  24. package/dist/data/models-registry.json +129 -21
  25. package/dist/data/profiles-shortcuts.json +49 -9
  26. package/dist/errors.d.ts +1 -1
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/errors.js.map +1 -1
  29. package/dist/index.d.ts +11 -3
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +8 -2
  32. package/dist/index.js.map +1 -1
  33. package/dist/modalityPolicy.d.ts +37 -0
  34. package/dist/modalityPolicy.d.ts.map +1 -0
  35. package/dist/modalityPolicy.js +200 -0
  36. package/dist/modalityPolicy.js.map +1 -0
  37. package/dist/modelIdentity.d.ts.map +1 -1
  38. package/dist/modelIdentity.js +41 -22
  39. package/dist/modelIdentity.js.map +1 -1
  40. package/dist/modelsCatalog.d.ts.map +1 -1
  41. package/dist/modelsCatalog.js +1 -0
  42. package/dist/modelsCatalog.js.map +1 -1
  43. package/dist/profileCatalogSupplement.d.ts.map +1 -1
  44. package/dist/profileCatalogSupplement.js +57 -0
  45. package/dist/profileCatalogSupplement.js.map +1 -1
  46. package/dist/profileRegistryV2.d.ts +8 -8
  47. package/dist/profileRegistryV2.d.ts.map +1 -1
  48. package/dist/profileRegistryV2.js +12 -70
  49. package/dist/profileRegistryV2.js.map +1 -1
  50. package/dist/profileRegistryV3.d.ts +3 -0
  51. package/dist/profileRegistryV3.d.ts.map +1 -1
  52. package/dist/profileRegistryV3.js +90 -77
  53. package/dist/profileRegistryV3.js.map +1 -1
  54. package/dist/resolveAIProfile.d.ts +1 -1
  55. package/dist/resolveAIProfile.d.ts.map +1 -1
  56. package/dist/resolveAIProfile.js +28 -4
  57. package/dist/resolveAIProfile.js.map +1 -1
  58. package/dist/resolveCatalogListing.d.ts +10 -0
  59. package/dist/resolveCatalogListing.d.ts.map +1 -0
  60. package/dist/resolveCatalogListing.js +59 -0
  61. package/dist/resolveCatalogListing.js.map +1 -0
  62. package/dist/resolveModelIdentity.d.ts +17 -0
  63. package/dist/resolveModelIdentity.d.ts.map +1 -0
  64. package/dist/resolveModelIdentity.js +108 -0
  65. package/dist/resolveModelIdentity.js.map +1 -0
  66. package/dist/resolveModelRouting.d.ts +2 -2
  67. package/dist/resolveModelRouting.d.ts.map +1 -1
  68. package/dist/resolveModelRouting.js +3 -3
  69. package/dist/resolveModelRouting.js.map +1 -1
  70. package/dist/types.d.ts +77 -9
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/validateProfileCatalogLinkage.d.ts +8 -0
  73. package/dist/validateProfileCatalogLinkage.d.ts.map +1 -0
  74. package/dist/validateProfileCatalogLinkage.js +185 -0
  75. package/dist/validateProfileCatalogLinkage.js.map +1 -0
  76. package/dist/validateProfileModalityCoverage.d.ts +9 -0
  77. package/dist/validateProfileModalityCoverage.d.ts.map +1 -0
  78. package/dist/validateProfileModalityCoverage.js +52 -0
  79. package/dist/validateProfileModalityCoverage.js.map +1 -0
  80. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  81. package/dist/validation/validateModelsProfilesJson.js +1 -6
  82. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  83. package/dist/vendorModelId.d.ts +4 -0
  84. package/dist/vendorModelId.d.ts.map +1 -0
  85. package/dist/vendorModelId.js +14 -0
  86. package/dist/vendorModelId.js.map +1 -0
  87. package/dist/vendorPolicy.d.ts.map +1 -1
  88. package/dist/vendorPolicy.js +1 -0
  89. package/dist/vendorPolicy.js.map +1 -1
  90. package/package.json +2 -1
@@ -101,28 +101,55 @@
101
101
  "structuredOutput": { "type": "boolean" },
102
102
  "supportsJsonSchema": { "type": "boolean" },
103
103
  "supportsVision": { "type": "boolean" },
104
- "supportsTools": { "type": "boolean" }
104
+ "supportsTools": { "type": "boolean" },
105
+ "inputModalities": {
106
+ "type": "array",
107
+ "items": {
108
+ "enum": ["text", "image", "audio", "video", "file"]
109
+ },
110
+ "minItems": 1
111
+ },
112
+ "outputModalities": {
113
+ "type": "array",
114
+ "items": {
115
+ "enum": ["text", "image", "audio", "video", "file"]
116
+ },
117
+ "minItems": 1
118
+ }
119
+ }
120
+ },
121
+ "modalityContract": {
122
+ "type": "object",
123
+ "required": ["input", "output"],
124
+ "additionalProperties": false,
125
+ "properties": {
126
+ "input": {
127
+ "type": "array",
128
+ "items": {
129
+ "enum": ["text", "image", "audio", "video", "file"]
130
+ },
131
+ "minItems": 1
132
+ },
133
+ "output": {
134
+ "type": "array",
135
+ "items": {
136
+ "enum": ["text", "image", "audio", "video", "file"]
137
+ },
138
+ "minItems": 1
139
+ }
105
140
  }
106
141
  },
107
142
  "choice": {
108
143
  "type": "object",
109
- "required": ["choice", "displayName", "description", "provider", "modelId", "api"],
144
+ "required": ["choice", "displayName", "description", "provider", "modelId"],
110
145
  "properties": {
111
146
  "choice": { "type": "string" },
112
147
  "provider": { "type": "string" },
113
148
  "modelId": { "type": "string" },
114
149
  "modelStatus": { "enum": ["verified", "predicted"] },
150
+ "modalities": { "$ref": "#/$defs/modalityContract" },
115
151
  "deploymentType": {
116
152
  "enum": ["proprietary", "openWeightsHosted", "selfHosted"]
117
- },
118
- "api": {
119
- "type": "object",
120
- "required": ["defaultTransport", "vendorModelId"],
121
- "properties": {
122
- "defaultTransport": { "enum": ["openrouter", "direct"] },
123
- "vendorModelId": { "type": "string" },
124
- "openRouterModelId": { "type": ["string", "null"] }
125
- }
126
153
  }
127
154
  }
128
155
  }
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "schema": "x12i.ai-profiles.models-registry",
3
3
  "version": "3.0.0",
4
- "generatedAt": "2026-05-29T21:04:08.855Z",
4
+ "generatedAt": "2026-05-30T20:44:11.807Z",
5
5
  "inputs": {
6
6
  "openRouterCatalog": {
7
7
  "schema": "x12i.ai-profiles.models-catalog",
8
8
  "version": "0.1.0",
9
9
  "generatedAt": "2026-05-29T20:38:18.882Z",
10
- "modelCount": 48
10
+ "modelCount": 51
11
11
  },
12
12
  "modelsProfiles": {
13
13
  "version": "3.0.0",
14
14
  "generatedAt": "2026-05-29T00:00:00.000Z",
15
- "choiceCount": 49
15
+ "choiceCount": 55
16
16
  }
17
17
  },
18
18
  "models": {
@@ -46,7 +46,7 @@
46
46
  },
47
47
  {
48
48
  "profile": "cheap",
49
- "choice": "cost_floor"
49
+ "choice": "google_floor"
50
50
  },
51
51
  {
52
52
  "profile": "extraction",
@@ -85,11 +85,11 @@
85
85
  "profileChoices": [
86
86
  {
87
87
  "profile": "cheap",
88
- "choice": "safer_provider"
88
+ "choice": "anthropic_cheap"
89
89
  },
90
90
  {
91
91
  "profile": "fast",
92
- "choice": "quality_fast"
92
+ "choice": "anthropic_fast"
93
93
  },
94
94
  {
95
95
  "profile": "summarization",
@@ -97,7 +97,7 @@
97
97
  },
98
98
  {
99
99
  "profile": "extraction",
100
- "choice": "quality_extraction"
100
+ "choice": "anthropic_extraction"
101
101
  },
102
102
  {
103
103
  "profile": "routing",
@@ -133,7 +133,47 @@
133
133
  "profileChoices": [
134
134
  {
135
135
  "profile": "cheap",
136
- "choice": "absolute_floor"
136
+ "choice": "deepseek_cheap"
137
+ }
138
+ ]
139
+ }
140
+ },
141
+ "vendor:minimax:minimax-m2.5": {
142
+ "registryKey": "vendor:minimax:minimax-m2.5",
143
+ "kind": "linked",
144
+ "vendor": {
145
+ "provider": "minimax",
146
+ "modelId": "minimax-m2.5"
147
+ },
148
+ "invocation": {
149
+ "direct": {
150
+ "provider": "minimax",
151
+ "modelId": "minimax-m2.5"
152
+ },
153
+ "openrouter": {
154
+ "provider": "openrouter",
155
+ "modelId": "minimax/minimax-m2.5"
156
+ }
157
+ },
158
+ "linkage": {
159
+ "status": "matched",
160
+ "openRouterCatalogId": "minimax/minimax-m2.5",
161
+ "canonicalSlug": "minimax/minimax-m2.5-20260212",
162
+ "matchMethod": "anthropicVersionNormalize"
163
+ },
164
+ "usage": {
165
+ "profileChoices": [
166
+ {
167
+ "profile": "cheap",
168
+ "choice": "minimax_cheap"
169
+ },
170
+ {
171
+ "profile": "balanced",
172
+ "choice": "minimax_balanced"
173
+ },
174
+ {
175
+ "profile": "coding",
176
+ "choice": "minimax_coding"
137
177
  }
138
178
  ]
139
179
  }
@@ -200,11 +240,11 @@
200
240
  "profileChoices": [
201
241
  {
202
242
  "profile": "fast",
203
- "choice": "cheaper_fast"
243
+ "choice": "google_fast"
204
244
  },
205
245
  {
206
246
  "profile": "json",
207
- "choice": "cheap_json"
247
+ "choice": "google_json"
208
248
  },
209
249
  {
210
250
  "profile": "content",
@@ -245,6 +285,38 @@
245
285
  ]
246
286
  }
247
287
  },
288
+ "vendor:minimax:minimax-m2": {
289
+ "registryKey": "vendor:minimax:minimax-m2",
290
+ "kind": "linked",
291
+ "vendor": {
292
+ "provider": "minimax",
293
+ "modelId": "minimax-m2"
294
+ },
295
+ "invocation": {
296
+ "direct": {
297
+ "provider": "minimax",
298
+ "modelId": "minimax-m2"
299
+ },
300
+ "openrouter": {
301
+ "provider": "openrouter",
302
+ "modelId": "minimax/minimax-m2"
303
+ }
304
+ },
305
+ "linkage": {
306
+ "status": "matched",
307
+ "openRouterCatalogId": "minimax/minimax-m2",
308
+ "canonicalSlug": "minimax/minimax-m2-20251023",
309
+ "matchMethod": "providerPrefixed"
310
+ },
311
+ "usage": {
312
+ "profileChoices": [
313
+ {
314
+ "profile": "fast",
315
+ "choice": "minimax_fast"
316
+ }
317
+ ]
318
+ }
319
+ },
248
320
  "vendor:openai:gpt-4.1": {
249
321
  "registryKey": "vendor:openai:gpt-4.1",
250
322
  "kind": "linked",
@@ -310,15 +382,15 @@
310
382
  "profileChoices": [
311
383
  {
312
384
  "profile": "balanced",
313
- "choice": "reasoning_balanced"
385
+ "choice": "anthropic_balanced"
314
386
  },
315
387
  {
316
388
  "profile": "pro",
317
- "choice": "cost_pro"
389
+ "choice": "anthropic_pro"
318
390
  },
319
391
  {
320
392
  "profile": "json",
321
- "choice": "quality_json"
393
+ "choice": "anthropic_json"
322
394
  },
323
395
  {
324
396
  "profile": "vision",
@@ -354,19 +426,19 @@
354
426
  "profileChoices": [
355
427
  {
356
428
  "profile": "balanced",
357
- "choice": "cost_balanced"
429
+ "choice": "google_balanced"
358
430
  },
359
431
  {
360
432
  "profile": "deep",
361
- "choice": "long_context_deep"
433
+ "choice": "google_deep"
362
434
  },
363
435
  {
364
436
  "profile": "agentic",
365
- "choice": "cheap_agentic"
437
+ "choice": "google_agentic"
366
438
  },
367
439
  {
368
440
  "profile": "research",
369
- "choice": "long_context_research"
441
+ "choice": "google_research"
370
442
  },
371
443
  {
372
444
  "profile": "cyber",
@@ -525,6 +597,42 @@
525
597
  ]
526
598
  }
527
599
  },
600
+ "vendor:minimax:minimax-m2.7": {
601
+ "registryKey": "vendor:minimax:minimax-m2.7",
602
+ "kind": "linked",
603
+ "vendor": {
604
+ "provider": "minimax",
605
+ "modelId": "minimax-m2.7"
606
+ },
607
+ "invocation": {
608
+ "direct": {
609
+ "provider": "minimax",
610
+ "modelId": "minimax-m2.7"
611
+ },
612
+ "openrouter": {
613
+ "provider": "openrouter",
614
+ "modelId": "minimax/minimax-m2.7"
615
+ }
616
+ },
617
+ "linkage": {
618
+ "status": "matched",
619
+ "openRouterCatalogId": "minimax/minimax-m2.7",
620
+ "canonicalSlug": "minimax/minimax-m2.7-20260318",
621
+ "matchMethod": "anthropicVersionNormalize"
622
+ },
623
+ "usage": {
624
+ "profileChoices": [
625
+ {
626
+ "profile": "deep",
627
+ "choice": "minimax_deep"
628
+ },
629
+ {
630
+ "profile": "agentic",
631
+ "choice": "minimax_agentic"
632
+ }
633
+ ]
634
+ }
635
+ },
528
636
  "vendor:openai:gpt-5.5": {
529
637
  "registryKey": "vendor:openai:gpt-5.5",
530
638
  "kind": "linked",
@@ -556,7 +664,7 @@
556
664
  },
557
665
  {
558
666
  "profile": "research",
559
- "choice": "premium_research"
667
+ "choice": "openai_research"
560
668
  },
561
669
  {
562
670
  "profile": "cyber",
@@ -712,8 +820,8 @@
712
820
  ]
713
821
  }
714
822
  },
715
- "vendor:local:xenova/distilbart-cnn-6-6": {
716
- "registryKey": "vendor:local:xenova/distilbart-cnn-6-6",
823
+ "vendor:local:xenova/distilbart-cnn-6.6": {
824
+ "registryKey": "vendor:local:xenova/distilbart-cnn-6.6",
717
825
  "kind": "local-only",
718
826
  "vendor": {
719
827
  "provider": "local",
@@ -765,7 +873,7 @@
765
873
  "profileChoices": [
766
874
  {
767
875
  "profile": "coding",
768
- "choice": "cost_coding"
876
+ "choice": "deepseek_coding"
769
877
  }
770
878
  ]
771
879
  }
@@ -14,11 +14,11 @@
14
14
  },
15
15
  "cheapest": {
16
16
  "profile": "cheap",
17
- "choice": "cost_floor"
17
+ "choice": "google_floor"
18
18
  },
19
19
  "cheap-safe": {
20
20
  "profile": "cheap",
21
- "choice": "safer_provider"
21
+ "choice": "anthropic_cheap"
22
22
  },
23
23
  "instant": {
24
24
  "profile": "fast"
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "fast-cheap": {
30
30
  "profile": "fast",
31
- "choice": "cheaper_fast"
31
+ "choice": "google_fast"
32
32
  },
33
33
  "default": {
34
34
  "profile": "balanced"
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "long-context": {
50
50
  "profile": "deep",
51
- "choice": "long_context_deep"
51
+ "choice": "google_deep"
52
52
  },
53
53
  "ultra": {
54
54
  "profile": "deep",
@@ -72,7 +72,7 @@
72
72
  },
73
73
  "cheap-json": {
74
74
  "profile": "json",
75
- "choice": "cheap_json"
75
+ "choice": "google_json"
76
76
  },
77
77
  "agent": {
78
78
  "profile": "agentic"
@@ -82,7 +82,7 @@
82
82
  },
83
83
  "cheap-agent": {
84
84
  "profile": "agentic",
85
- "choice": "cheap_agentic"
85
+ "choice": "google_agentic"
86
86
  },
87
87
  "web-research": {
88
88
  "profile": "research"
@@ -92,7 +92,7 @@
92
92
  },
93
93
  "premium-research": {
94
94
  "profile": "research",
95
- "choice": "premium_research"
95
+ "choice": "openai_research"
96
96
  },
97
97
  "offline": {
98
98
  "profile": "local"
@@ -171,11 +171,11 @@
171
171
  },
172
172
  "absolute-floor": {
173
173
  "profile": "cheap",
174
- "choice": "absolute_floor"
174
+ "choice": "deepseek_cheap"
175
175
  },
176
176
  "deepseek-cheap": {
177
177
  "profile": "cheap",
178
- "choice": "absolute_floor"
178
+ "choice": "deepseek_cheap"
179
179
  },
180
180
  "grok-fast": {
181
181
  "profile": "fast",
@@ -206,6 +206,46 @@
206
206
  },
207
207
  "route": {
208
208
  "profile": "routing"
209
+ },
210
+ "minimax-cheap": {
211
+ "profile": "cheap",
212
+ "choice": "minimax_cheap"
213
+ },
214
+ "minimax-fast": {
215
+ "profile": "fast",
216
+ "choice": "minimax_fast"
217
+ },
218
+ "minimax-balanced": {
219
+ "profile": "balanced",
220
+ "choice": "minimax_balanced"
221
+ },
222
+ "minimax-deep": {
223
+ "profile": "deep",
224
+ "choice": "minimax_deep"
225
+ },
226
+ "minimax-agentic": {
227
+ "profile": "agentic",
228
+ "choice": "minimax_agentic"
229
+ },
230
+ "minimax-coding": {
231
+ "profile": "coding",
232
+ "choice": "minimax_coding"
233
+ },
234
+ "google-fast": {
235
+ "profile": "fast",
236
+ "choice": "google_fast"
237
+ },
238
+ "google-balanced": {
239
+ "profile": "balanced",
240
+ "choice": "google_balanced"
241
+ },
242
+ "google-deep": {
243
+ "profile": "deep",
244
+ "choice": "google_deep"
245
+ },
246
+ "deepseek-coding": {
247
+ "profile": "coding",
248
+ "choice": "deepseek_coding"
209
249
  }
210
250
  }
211
251
  }
package/dist/errors.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type AIProfilesErrorCode = "UNKNOWN_PROFILE" | "UNKNOWN_SHORTCUT" | "UNKNOWN_CHOICE" | "NO_ALLOWED_VENDOR" | "REMOTE_FETCH_FAILED" | "REMOTE_JSON_INVALID" | "BUNDLED_JSON_INVALID" | "REGISTRY_SCHEMA_UNSUPPORTED" | "REGISTRY_VALIDATION_FAILED";
1
+ export type AIProfilesErrorCode = "UNKNOWN_PROFILE" | "UNKNOWN_SHORTCUT" | "UNKNOWN_CHOICE" | "NO_ALLOWED_VENDOR" | "NO_MODALITY_MATCH" | "NO_COST_CAP_MATCH" | "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,mBAAmB,GACnB,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,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,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":"AAWA,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":"AAaA,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
@@ -7,8 +7,10 @@ export { resolveAIProfile } from "./resolveAIProfile.js";
7
7
  export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
8
8
  export { resolveUseOpenRouter, readUseOpenRouterFromEnv, buildOpenRouterModelId, } from "./resolveModelRouting.js";
9
9
  export { buildModelInvocation, buildDirectInvocation, buildRegistryKey, matchOpenRouterCatalog, normalizeAnthropicVersionSlug, openRouterResolutionCandidates, } from "./modelIdentity.js";
10
+ export { resolveModelIdentity } from "./resolveModelIdentity.js";
11
+ export type { ModelVendorRef, ResolveModelIdentityOptions, } from "./resolveModelIdentity.js";
10
12
  export { migrateModelsProfilesToV2, buildModelInvocationFromChoice, getChoiceVendorModelId, getChoiceOpenRouterModelId, getChoicePricing, flattenChoicePricing, fixVendorModelId, } from "./profileRegistryV2.js";
11
- export { migrateModelsProfilesToV3, isModelsProfilesV3, applyVerifiedProfileDefaults, resolveChoicePricing, PREDICTED_VENDOR_MODEL_IDS, } from "./profileRegistryV3.js";
13
+ export { migrateModelsProfilesToV3, isModelsProfilesV3, applyVerifiedProfileDefaults, stripProfilesApiMetadata, normalizeProfileChoice, resolveChoicePricing, PREDICTED_VENDOR_MODEL_IDS, } from "./profileRegistryV3.js";
12
14
  export { mergeCatalogSupplement } from "./mergeCatalogSupplement.js";
13
15
  export { PROFILE_CATALOG_SUPPLEMENT } from "./profileCatalogSupplement.js";
14
16
  export { enrichChoiceFromCatalog, findCatalogModelEntry, pricingFromCatalogEntry, limitsFromCatalogEntry, capabilitiesFromCatalogEntry, } from "./catalogEnrichment.js";
@@ -16,15 +18,21 @@ export { buildModelsRegistry, listFaultyFromRegistry } from "./buildModelsRegist
16
18
  export { loadBundledModelsRegistry, loadModelsRegistryFromPath, lookupInvocationForChoice, listFaultyProfileChoices, } from "./loadModelsRegistry.js";
17
19
  export { validateProfileVendorCoverage, validateBundledProfileVendorCoverage, isProfileVendorTrimReady, isProfileLeadingVendorReady, } from "./validateProfileVendorCoverage.js";
18
20
  export { LEADING_VENDORS, pickProfileChoice } from "./vendorPolicy.js";
21
+ export { TEXT_MODALITY_CONTRACT, VISION_MODALITY_CONTRACT, normalizeModalityContract, resolveRequiredModalities, getChoiceModalities, modalityContractSatisfied, choiceMatchesModalityContract, pickProfileChoiceWithConstraints, pickProfileChoiceWithModalities, isProfileModalityReady, listProfileModalityMismatches, } from "./modalityPolicy.js";
22
+ export { normalizeCostCap, getChoicePricingForCap, choiceWithinCostCap, filterChoicesByCostCap, formatCostCap, } from "./costPolicy.js";
23
+ export { validateProfileModalityCoverage, validateBundledProfileModalityCoverage, isProfileModalityCoverageReady, } from "./validateProfileModalityCoverage.js";
24
+ export { validateProfileCatalogLinkage, validateBundledProfileCatalogLinkage, } from "./validateProfileCatalogLinkage.js";
19
25
  export { verifyOpenRouterAlignment, formatOpenRouterAlignmentReport, OPENROUTER_MODELS_CATALOG_URL, } from "./validation/openRouterAlignment.js";
20
- export { MODELS_CATALOG_FILENAME, MODELS_CATALOG_REMOTE_URL, MODELS_CATALOG_SCHEMA, normalizeModelsCatalog, buildModelsCatalogIndex, } from "./modelsCatalog.js";
26
+ export { MODELS_CATALOG_FILENAME, MODELS_CATALOG_REMOTE_URL, MODELS_CATALOG_SCHEMA, normalizeModelsCatalog, buildModelsCatalogIndex, parseDirectFromOpenRouterSlug, } from "./modelsCatalog.js";
27
+ export { loadAIProfilesRegistry, loadAIProfilesRegistryWithWarnings, } from "./loader/loadAIProfilesRegistry.js";
21
28
  export { loadModelsCatalog, loadModelsCatalogWithWarnings } from "./loader/loadModelsCatalog.js";
22
29
  export { loadBundledModelsCatalog } from "./loader/loadBundledModelsCatalog.js";
23
30
  export { buildModelsCatalogFromOpenRouterApi, buildLegacyCatalogFromOpenRouterApi, } from "./buildCatalogFromOpenRouterApi.js";
24
31
  export { REMOTE_MODELS_CATALOG_URL, OPENROUTER_MODELS_API_URL } from "./constants.js";
25
- export type { AIProfilesRegistry, AIProfileDefinition, AIProfileChoice, AIProfileShortcut, AIProfileSummary, AIShortcutSummary, ResolvedAIProfile, 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, } from "./types.js";
32
+ export type { AIProfilesRegistry, AIProfileDefinition, AIProfileChoice, AIProfileShortcut, AIProfileSummary, AIShortcutSummary, ResolvedAIProfile, 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, } from "./types.js";
26
33
  export type { GetAIRegistryStatisticsResult } from "./getAIRegistryStatistics.js";
27
34
  export type { LoadCatalogResult } from "./loader/loadModelsCatalog.js";
35
+ export type { LoadRegistryOptions, LoadRegistryResult, } from "./types.js";
28
36
  export type { AIModelRoutingMode } from "./resolveModelRouting.js";
29
37
  export { AIProfilesError } from "./errors.js";
30
38
  export type { AIProfilesErrorCode } from "./errors.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":"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"}
package/dist/index.js CHANGED
@@ -7,8 +7,9 @@ export { resolveAIProfile } from "./resolveAIProfile.js";
7
7
  export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
8
8
  export { resolveUseOpenRouter, readUseOpenRouterFromEnv, buildOpenRouterModelId, } from "./resolveModelRouting.js";
9
9
  export { buildModelInvocation, buildDirectInvocation, buildRegistryKey, matchOpenRouterCatalog, normalizeAnthropicVersionSlug, openRouterResolutionCandidates, } from "./modelIdentity.js";
10
+ export { resolveModelIdentity } from "./resolveModelIdentity.js";
10
11
  export { migrateModelsProfilesToV2, buildModelInvocationFromChoice, getChoiceVendorModelId, getChoiceOpenRouterModelId, getChoicePricing, flattenChoicePricing, fixVendorModelId, } from "./profileRegistryV2.js";
11
- export { migrateModelsProfilesToV3, isModelsProfilesV3, applyVerifiedProfileDefaults, resolveChoicePricing, PREDICTED_VENDOR_MODEL_IDS, } from "./profileRegistryV3.js";
12
+ export { migrateModelsProfilesToV3, isModelsProfilesV3, applyVerifiedProfileDefaults, stripProfilesApiMetadata, normalizeProfileChoice, resolveChoicePricing, PREDICTED_VENDOR_MODEL_IDS, } from "./profileRegistryV3.js";
12
13
  export { mergeCatalogSupplement } from "./mergeCatalogSupplement.js";
13
14
  export { PROFILE_CATALOG_SUPPLEMENT } from "./profileCatalogSupplement.js";
14
15
  export { enrichChoiceFromCatalog, findCatalogModelEntry, pricingFromCatalogEntry, limitsFromCatalogEntry, capabilitiesFromCatalogEntry, } from "./catalogEnrichment.js";
@@ -16,8 +17,13 @@ export { buildModelsRegistry, listFaultyFromRegistry } from "./buildModelsRegist
16
17
  export { loadBundledModelsRegistry, loadModelsRegistryFromPath, lookupInvocationForChoice, listFaultyProfileChoices, } from "./loadModelsRegistry.js";
17
18
  export { validateProfileVendorCoverage, validateBundledProfileVendorCoverage, isProfileVendorTrimReady, isProfileLeadingVendorReady, } from "./validateProfileVendorCoverage.js";
18
19
  export { LEADING_VENDORS, pickProfileChoice } from "./vendorPolicy.js";
20
+ export { TEXT_MODALITY_CONTRACT, VISION_MODALITY_CONTRACT, normalizeModalityContract, resolveRequiredModalities, getChoiceModalities, modalityContractSatisfied, choiceMatchesModalityContract, pickProfileChoiceWithConstraints, pickProfileChoiceWithModalities, isProfileModalityReady, listProfileModalityMismatches, } from "./modalityPolicy.js";
21
+ export { normalizeCostCap, getChoicePricingForCap, choiceWithinCostCap, filterChoicesByCostCap, formatCostCap, } from "./costPolicy.js";
22
+ export { validateProfileModalityCoverage, validateBundledProfileModalityCoverage, isProfileModalityCoverageReady, } from "./validateProfileModalityCoverage.js";
23
+ export { validateProfileCatalogLinkage, validateBundledProfileCatalogLinkage, } from "./validateProfileCatalogLinkage.js";
19
24
  export { verifyOpenRouterAlignment, formatOpenRouterAlignmentReport, OPENROUTER_MODELS_CATALOG_URL, } from "./validation/openRouterAlignment.js";
20
- export { MODELS_CATALOG_FILENAME, MODELS_CATALOG_REMOTE_URL, MODELS_CATALOG_SCHEMA, normalizeModelsCatalog, buildModelsCatalogIndex, } from "./modelsCatalog.js";
25
+ export { MODELS_CATALOG_FILENAME, MODELS_CATALOG_REMOTE_URL, MODELS_CATALOG_SCHEMA, normalizeModelsCatalog, buildModelsCatalogIndex, parseDirectFromOpenRouterSlug, } from "./modelsCatalog.js";
26
+ export { loadAIProfilesRegistry, loadAIProfilesRegistryWithWarnings, } from "./loader/loadAIProfilesRegistry.js";
21
27
  export { loadModelsCatalog, loadModelsCatalogWithWarnings } from "./loader/loadModelsCatalog.js";
22
28
  export { loadBundledModelsCatalog } from "./loader/loadBundledModelsCatalog.js";
23
29
  export { buildModelsCatalogFromOpenRouterApi, buildLegacyCatalogFromOpenRouterApi, } from "./buildCatalogFromOpenRouterApi.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,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,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,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,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,4BAA4B,EAC5B,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,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,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;AA4CtF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,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,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,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;AAKjE,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,yBAAyB,EACzB,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,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;AAuDtF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { AIProfileChoice, AIProfileDefinition, CostCapOption, ModalityContract, ModelModality, ModelsCatalogJson, ProfileModalityMismatch, ProfileRequiredCapabilities } from "./types.js";
2
+ import { type PickProfileChoiceOptions, type PickProfileChoiceResult } from "./vendorPolicy.js";
3
+ export declare const TEXT_MODALITY_CONTRACT: ModalityContract;
4
+ export declare const VISION_MODALITY_CONTRACT: ModalityContract;
5
+ export declare function normalizeModalityList(values: readonly string[] | undefined, fallback: ModelModality[]): ModelModality[];
6
+ export declare function normalizeModalityContract(contract: Partial<{
7
+ input?: readonly string[];
8
+ output?: readonly string[];
9
+ }> | undefined, fallback?: ModalityContract): ModalityContract;
10
+ export declare function modalityContractFromCapabilities(capabilities: ProfileRequiredCapabilities | undefined): ModalityContract | undefined;
11
+ export declare function defaultModalityContractForProfile(profileKey: string, profile: AIProfileDefinition): ModalityContract;
12
+ export declare function resolveRequiredModalities(profileKey: string, profile: AIProfileDefinition, overrides?: Pick<PickProfileChoiceOptions & {
13
+ inputModalities?: ModelModality[];
14
+ outputModalities?: ModelModality[];
15
+ }, "inputModalities" | "outputModalities">): ModalityContract;
16
+ export declare function getChoiceModalities(choice: AIProfileChoice, catalog?: ModelsCatalogJson): ModalityContract;
17
+ export declare function modalityContractSatisfied(required: ModalityContract, actual: ModalityContract): boolean;
18
+ export declare function choiceMatchesModalityContract(choice: AIProfileChoice, required: ModalityContract, catalog?: ModelsCatalogJson): boolean;
19
+ export declare function filterProfileChoicesByModalities(profile: AIProfileDefinition, required: ModalityContract, catalog?: ModelsCatalogJson): Record<string, AIProfileChoice>;
20
+ export declare function filterFallbackOrder(order: string[] | undefined, allowedChoiceKeys: Set<string>): string[];
21
+ export declare function listProfileModalityMismatches(profileKey: string, profile: AIProfileDefinition, catalog?: ModelsCatalogJson): ProfileModalityMismatch[];
22
+ export interface PickProfileChoiceWithConstraintsOptions extends PickProfileChoiceOptions {
23
+ inputModalities?: ModelModality[];
24
+ outputModalities?: ModelModality[];
25
+ costCapPer1M?: CostCapOption;
26
+ catalog?: ModelsCatalogJson;
27
+ }
28
+ /** @deprecated Use {@link pickProfileChoiceWithConstraints}. */
29
+ export type PickProfileChoiceWithModalitiesOptions = PickProfileChoiceWithConstraintsOptions;
30
+ /**
31
+ * Pick a profile choice honoring vendor, modality, and cost-cap constraints.
32
+ */
33
+ export declare function pickProfileChoiceWithConstraints(profileKey: string, profile: AIProfileDefinition, options?: PickProfileChoiceWithConstraintsOptions): PickProfileChoiceResult;
34
+ /** Pick a profile choice honoring vendor filters and required input/output media. */
35
+ export declare function pickProfileChoiceWithModalities(profileKey: string, profile: AIProfileDefinition, options?: PickProfileChoiceWithConstraintsOptions): PickProfileChoiceResult;
36
+ export declare function isProfileModalityReady(profileKey: string, profile: AIProfileDefinition, catalog?: ModelsCatalogJson): boolean;
37
+ //# sourceMappingURL=modalityPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modalityPolicy.d.ts","sourceRoot":"","sources":["../src/modalityPolicy.ts"],"names":[],"mappings":"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"}