@x12i/ai-profiles 1.4.0 → 1.5.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 (144) hide show
  1. package/README.md +186 -16
  2. package/dist/buildCatalogFromOpenRouterApi.d.ts +29 -0
  3. package/dist/buildCatalogFromOpenRouterApi.d.ts.map +1 -0
  4. package/dist/buildCatalogFromOpenRouterApi.js +113 -0
  5. package/dist/buildCatalogFromOpenRouterApi.js.map +1 -0
  6. package/dist/buildModelsRegistry.d.ts +25 -0
  7. package/dist/buildModelsRegistry.d.ts.map +1 -0
  8. package/dist/buildModelsRegistry.js +190 -0
  9. package/dist/buildModelsRegistry.js.map +1 -0
  10. package/dist/buildResolvedProfile.d.ts +3 -1
  11. package/dist/buildResolvedProfile.d.ts.map +1 -1
  12. package/dist/buildResolvedProfile.js +94 -11
  13. package/dist/buildResolvedProfile.js.map +1 -1
  14. package/dist/catalogEnrichment.d.ts +19 -0
  15. package/dist/catalogEnrichment.d.ts.map +1 -0
  16. package/dist/catalogEnrichment.js +87 -0
  17. package/dist/catalogEnrichment.js.map +1 -0
  18. package/dist/computeRegistryStatistics.d.ts +15 -0
  19. package/dist/computeRegistryStatistics.d.ts.map +1 -0
  20. package/dist/computeRegistryStatistics.js +168 -0
  21. package/dist/computeRegistryStatistics.js.map +1 -0
  22. package/dist/constants.d.ts +6 -0
  23. package/dist/constants.d.ts.map +1 -1
  24. package/dist/constants.js +10 -0
  25. package/dist/constants.js.map +1 -1
  26. package/dist/data/models-catalog.json +2219 -0
  27. package/dist/data/models-profiles.json +1361 -193
  28. package/dist/data/models-profiles.schema.json +130 -0
  29. package/dist/data/models-registry.json +1606 -0
  30. package/dist/data/openrouter-models-catalog.json +857 -0
  31. package/dist/data/profiles-shortcuts.json +101 -2
  32. package/dist/errors.d.ts +1 -1
  33. package/dist/errors.d.ts.map +1 -1
  34. package/dist/errors.js.map +1 -1
  35. package/dist/formatRegistryStatistics.d.ts +4 -0
  36. package/dist/formatRegistryStatistics.d.ts.map +1 -0
  37. package/dist/formatRegistryStatistics.js +34 -0
  38. package/dist/formatRegistryStatistics.js.map +1 -0
  39. package/dist/getAIRegistryStatistics.d.ts +11 -0
  40. package/dist/getAIRegistryStatistics.d.ts.map +1 -0
  41. package/dist/getAIRegistryStatistics.js +52 -0
  42. package/dist/getAIRegistryStatistics.js.map +1 -0
  43. package/dist/index.d.ts +22 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +19 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/listAIProfiles.d.ts +6 -0
  48. package/dist/listAIProfiles.d.ts.map +1 -1
  49. package/dist/listAIProfiles.js +6 -0
  50. package/dist/listAIProfiles.js.map +1 -1
  51. package/dist/loadModelsRegistry.d.ts +6 -0
  52. package/dist/loadModelsRegistry.d.ts.map +1 -0
  53. package/dist/loadModelsRegistry.js +43 -0
  54. package/dist/loadModelsRegistry.js.map +1 -0
  55. package/dist/loader/catalogMemoryCache.d.ts +12 -0
  56. package/dist/loader/catalogMemoryCache.d.ts.map +1 -0
  57. package/dist/loader/catalogMemoryCache.js +14 -0
  58. package/dist/loader/catalogMemoryCache.js.map +1 -0
  59. package/dist/loader/loadBundledModelsCatalog.d.ts +3 -0
  60. package/dist/loader/loadBundledModelsCatalog.d.ts.map +1 -0
  61. package/dist/loader/loadBundledModelsCatalog.js +20 -0
  62. package/dist/loader/loadBundledModelsCatalog.js.map +1 -0
  63. package/dist/loader/loadBundledModelsProfiles.d.ts +4 -0
  64. package/dist/loader/loadBundledModelsProfiles.d.ts.map +1 -0
  65. package/dist/loader/loadBundledModelsProfiles.js +14 -0
  66. package/dist/loader/loadBundledModelsProfiles.js.map +1 -0
  67. package/dist/loader/loadBundledRegistry.d.ts.map +1 -1
  68. package/dist/loader/loadBundledRegistry.js +2 -1
  69. package/dist/loader/loadBundledRegistry.js.map +1 -1
  70. package/dist/loader/loadModelsCatalog.d.ts +9 -0
  71. package/dist/loader/loadModelsCatalog.d.ts.map +1 -0
  72. package/dist/loader/loadModelsCatalog.js +72 -0
  73. package/dist/loader/loadModelsCatalog.js.map +1 -0
  74. package/dist/loader/loadModelsProfilesJson.d.ts +3 -0
  75. package/dist/loader/loadModelsProfilesJson.d.ts.map +1 -0
  76. package/dist/loader/loadModelsProfilesJson.js +18 -0
  77. package/dist/loader/loadModelsProfilesJson.js.map +1 -0
  78. package/dist/loader/loadRemoteModelsCatalog.d.ts +3 -0
  79. package/dist/loader/loadRemoteModelsCatalog.d.ts.map +1 -0
  80. package/dist/loader/loadRemoteModelsCatalog.js +23 -0
  81. package/dist/loader/loadRemoteModelsCatalog.js.map +1 -0
  82. package/dist/loader/loadRemoteModelsProfiles.d.ts +3 -0
  83. package/dist/loader/loadRemoteModelsProfiles.d.ts.map +1 -0
  84. package/dist/loader/loadRemoteModelsProfiles.js +21 -0
  85. package/dist/loader/loadRemoteModelsProfiles.js.map +1 -0
  86. package/dist/loader/loadRemoteRegistry.d.ts.map +1 -1
  87. package/dist/loader/loadRemoteRegistry.js +2 -1
  88. package/dist/loader/loadRemoteRegistry.js.map +1 -1
  89. package/dist/mergeCatalogSupplement.d.ts +4 -0
  90. package/dist/mergeCatalogSupplement.d.ts.map +1 -0
  91. package/dist/mergeCatalogSupplement.js +26 -0
  92. package/dist/mergeCatalogSupplement.js.map +1 -0
  93. package/dist/modelIdentity.d.ts +33 -0
  94. package/dist/modelIdentity.d.ts.map +1 -0
  95. package/dist/modelIdentity.js +150 -0
  96. package/dist/modelIdentity.js.map +1 -0
  97. package/dist/modelsCatalog.d.ts +21 -0
  98. package/dist/modelsCatalog.d.ts.map +1 -0
  99. package/dist/modelsCatalog.js +187 -0
  100. package/dist/modelsCatalog.js.map +1 -0
  101. package/dist/profileCatalogSupplement.d.ts +7 -0
  102. package/dist/profileCatalogSupplement.d.ts.map +1 -0
  103. package/dist/profileCatalogSupplement.js +292 -0
  104. package/dist/profileCatalogSupplement.js.map +1 -0
  105. package/dist/profileRegistryV2.d.ts +19 -0
  106. package/dist/profileRegistryV2.d.ts.map +1 -0
  107. package/dist/profileRegistryV2.js +257 -0
  108. package/dist/profileRegistryV2.js.map +1 -0
  109. package/dist/profileRegistryV3.d.ts +11 -0
  110. package/dist/profileRegistryV3.d.ts.map +1 -0
  111. package/dist/profileRegistryV3.js +526 -0
  112. package/dist/profileRegistryV3.js.map +1 -0
  113. package/dist/resolveAIProfile.d.ts +8 -0
  114. package/dist/resolveAIProfile.d.ts.map +1 -1
  115. package/dist/resolveAIProfile.js +62 -18
  116. package/dist/resolveAIProfile.js.map +1 -1
  117. package/dist/resolveModelRouting.d.ts +2 -1
  118. package/dist/resolveModelRouting.d.ts.map +1 -1
  119. package/dist/resolveModelRouting.js +9 -10
  120. package/dist/resolveModelRouting.js.map +1 -1
  121. package/dist/types.d.ts +339 -4
  122. package/dist/types.d.ts.map +1 -1
  123. package/dist/types.js +10 -0
  124. package/dist/types.js.map +1 -1
  125. package/dist/validateProfileVendorCoverage.d.ts +12 -0
  126. package/dist/validateProfileVendorCoverage.d.ts.map +1 -0
  127. package/dist/validateProfileVendorCoverage.js +58 -0
  128. package/dist/validateProfileVendorCoverage.js.map +1 -0
  129. package/dist/validation/openRouterAlignment.d.ts +6 -15
  130. package/dist/validation/openRouterAlignment.d.ts.map +1 -1
  131. package/dist/validation/openRouterAlignment.js +9 -57
  132. package/dist/validation/openRouterAlignment.js.map +1 -1
  133. package/dist/validation/validateModelsCatalog.d.ts +3 -0
  134. package/dist/validation/validateModelsCatalog.d.ts.map +1 -0
  135. package/dist/validation/validateModelsCatalog.js +42 -0
  136. package/dist/validation/validateModelsCatalog.js.map +1 -0
  137. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  138. package/dist/validation/validateModelsProfilesJson.js +38 -2
  139. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  140. package/dist/vendorPolicy.d.ts +20 -0
  141. package/dist/vendorPolicy.d.ts.map +1 -0
  142. package/dist/vendorPolicy.js +71 -0
  143. package/dist/vendorPolicy.js.map +1 -0
  144. package/package.json +12 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema": "x12i.ai-profiles.shortcuts",
3
- "version": "1.2.0",
4
- "generatedAt": "2026-05-27T00:00:00.000Z",
3
+ "version": "1.4.0",
4
+ "generatedAt": "2026-05-29T00:00:00.000Z",
5
5
  "shortcuts": {
6
6
  "economy": {
7
7
  "profile": "cheap"
@@ -107,6 +107,105 @@
107
107
  "weak": {
108
108
  "profile": "local",
109
109
  "choice": "llama_cpp_gguf"
110
+ },
111
+ "threat-intel": {
112
+ "profile": "cyber"
113
+ },
114
+ "security": {
115
+ "profile": "cyber"
116
+ },
117
+ "audit": {
118
+ "profile": "cyber",
119
+ "choice": "deep_forensics"
120
+ },
121
+ "log-parser": {
122
+ "profile": "cyber",
123
+ "choice": "log_analysis"
124
+ },
125
+ "writing": {
126
+ "profile": "content"
127
+ },
128
+ "copy": {
129
+ "profile": "content"
130
+ },
131
+ "pseo": {
132
+ "profile": "content",
133
+ "choice": "pseo_bulk"
134
+ },
135
+ "brand-voice": {
136
+ "profile": "content",
137
+ "choice": "brand_voice"
138
+ },
139
+ "triage": {
140
+ "profile": "routing",
141
+ "choice": "default"
142
+ },
143
+ "tl-dr": {
144
+ "profile": "summarization",
145
+ "choice": "default"
146
+ },
147
+ "mega-summary": {
148
+ "profile": "summarization",
149
+ "choice": "mega_context"
150
+ },
151
+ "image": {
152
+ "profile": "vision"
153
+ },
154
+ "ocr": {
155
+ "profile": "vision",
156
+ "choice": "document_ocr"
157
+ },
158
+ "open-weights": {
159
+ "profile": "open_weights"
160
+ },
161
+ "llama": {
162
+ "profile": "open_weights",
163
+ "choice": "default"
164
+ },
165
+ "qwen": {
166
+ "profile": "open_weights",
167
+ "choice": "multilingual_code"
168
+ },
169
+ "self-hostable": {
170
+ "profile": "open_weights"
171
+ },
172
+ "absolute-floor": {
173
+ "profile": "cheap",
174
+ "choice": "absolute_floor"
175
+ },
176
+ "deepseek-cheap": {
177
+ "profile": "cheap",
178
+ "choice": "absolute_floor"
179
+ },
180
+ "grok-fast": {
181
+ "profile": "fast",
182
+ "choice": "grok_fast"
183
+ },
184
+ "deepseek-pro": {
185
+ "profile": "deep",
186
+ "choice": "deepseek_pro"
187
+ },
188
+ "grok-deep": {
189
+ "profile": "deep",
190
+ "choice": "grok_flagship"
191
+ },
192
+ "coding": {
193
+ "profile": "coding"
194
+ },
195
+ "dev": {
196
+ "profile": "coding"
197
+ },
198
+ "extraction": {
199
+ "profile": "extraction"
200
+ },
201
+ "extract": {
202
+ "profile": "extraction"
203
+ },
204
+ "routing": {
205
+ "profile": "routing"
206
+ },
207
+ "route": {
208
+ "profile": "routing"
110
209
  }
111
210
  }
112
211
  }
package/dist/errors.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type AIProfilesErrorCode = "UNKNOWN_PROFILE" | "UNKNOWN_SHORTCUT" | "UNKNOWN_CHOICE" | "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" | "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,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,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":"AAUA,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":"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"}
@@ -0,0 +1,4 @@
1
+ import type { AIRegistryStatistics } from "./types.js";
2
+ /** Human-readable summary for logs and CLI. */
3
+ export declare function formatRegistryStatistics(stats: AIRegistryStatistics): string;
4
+ //# sourceMappingURL=formatRegistryStatistics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatRegistryStatistics.d.ts","sourceRoot":"","sources":["../src/formatRegistryStatistics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,+CAA+C;AAC/C,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAoD5E"}
@@ -0,0 +1,34 @@
1
+ /** Human-readable summary for logs and CLI. */
2
+ export function formatRegistryStatistics(stats) {
3
+ const lines = [
4
+ "AI registry statistics",
5
+ ` generated: ${stats.generatedAt}`,
6
+ ` profiles source: ${stats.sources.profiles}`,
7
+ ...(stats.sources.catalog
8
+ ? [` catalog source: ${stats.sources.catalog}`]
9
+ : []),
10
+ "",
11
+ "Profiles",
12
+ ` profiles: ${stats.profiles.total}`,
13
+ ` choices: ${stats.profiles.choices}`,
14
+ ` shortcuts: ${stats.shortcuts.total}`,
15
+ ` aliases: ${stats.profiles.aliases}`,
16
+ ` providers (${stats.profiles.uniqueProviders}): ${stats.profiles.providers.join(", ")}`,
17
+ ` unique model keys: ${stats.profiles.uniqueModelKeys}`,
18
+ ` avg choices / profile: ${stats.profiles.averageChoicesPerProfile}`,
19
+ ];
20
+ if (Object.keys(stats.profiles.byCategory).length > 0) {
21
+ lines.push(" by category:");
22
+ for (const category of stats.profiles.categories) {
23
+ lines.push(` ${category}: ${stats.profiles.byCategory[category] ?? 0}`);
24
+ }
25
+ }
26
+ if (stats.catalog) {
27
+ lines.push("", "Catalog", ` models: ${stats.catalog.totalModels}`, ` direct providers (${stats.catalog.uniqueDirectProviders}): ${stats.catalog.directProviders.join(", ")}`, ` with pricing: ${stats.catalog.withPricing}`, ` with reasoning: ${stats.catalog.withReasoningCapability}`);
28
+ }
29
+ if (stats.linkage) {
30
+ lines.push("", "Linkage", ` registry entries: ${stats.linkage.registryEntries}`, ` matched: ${stats.linkage.matched}`, ` faulty: ${stats.linkage.faulty}`, ` catalog-miss: ${stats.linkage.catalogMiss}`, ` skipped: ${stats.linkage.skipped}`);
31
+ }
32
+ return lines.join("\n");
33
+ }
34
+ //# sourceMappingURL=formatRegistryStatistics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatRegistryStatistics.js","sourceRoot":"","sources":["../src/formatRegistryStatistics.ts"],"names":[],"mappings":"AAEA,+CAA+C;AAC/C,MAAM,UAAU,wBAAwB,CAAC,KAA2B;IAClE,MAAM,KAAK,GAAa;QACtB,wBAAwB;QACxB,gBAAgB,KAAK,CAAC,WAAW,EAAE;QACnC,sBAAsB,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC9C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO;YACvB,CAAC,CAAC,CAAC,qBAAqB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC;QACP,EAAE;QACF,UAAU;QACV,eAAe,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;QACrC,cAAc,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;QACtC,gBAAgB,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE;QACvC,cAAc,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;QACtC,gBAAgB,KAAK,CAAC,QAAQ,CAAC,eAAe,MAAM,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACzF,wBAAwB,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE;QACxD,4BAA4B,KAAK,CAAC,QAAQ,CAAC,wBAAwB,EAAE;KACtE,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CACR,OAAO,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,SAAS,EACT,aAAa,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EACxC,uBAAuB,KAAK,CAAC,OAAO,CAAC,qBAAqB,MAAM,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC1G,mBAAmB,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAC9C,qBAAqB,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAC7D,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,SAAS,EACT,uBAAuB,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EACtD,cAAc,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EACrC,aAAa,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EACnC,mBAAmB,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAC9C,cAAc,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CACtC,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AIProfileWarning, AIRegistryStatistics, GetAIRegistryStatisticsOptions } from "./types.js";
2
+ export interface GetAIRegistryStatisticsResult {
3
+ statistics: AIRegistryStatistics;
4
+ warnings: AIProfileWarning[];
5
+ }
6
+ /**
7
+ * Aggregate counts for profiles, choices, providers, catalog models, and linkage.
8
+ * Uses the same bundled / remote / auto loading pattern as {@link loadAIProfilesRegistry}.
9
+ */
10
+ export declare function getAIRegistryStatistics(options?: GetAIRegistryStatisticsOptions): Promise<GetAIRegistryStatisticsResult>;
11
+ //# sourceMappingURL=getAIRegistryStatistics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAIRegistryStatistics.d.ts","sourceRoot":"","sources":["../src/getAIRegistryStatistics.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,8BAA8B,EAC/B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,6BAA6B,CAAC,CAiDxC"}
@@ -0,0 +1,52 @@
1
+ import { buildRegistryStatistics } from "./computeRegistryStatistics.js";
2
+ import { buildModelsRegistry } from "./buildModelsRegistry.js";
3
+ import { loadAIProfilesRegistryWithWarnings } from "./loader/loadAIProfilesRegistry.js";
4
+ import { loadModelsCatalogWithWarnings } from "./loader/loadModelsCatalog.js";
5
+ import { loadModelsProfilesJson } from "./loader/loadModelsProfilesJson.js";
6
+ /**
7
+ * Aggregate counts for profiles, choices, providers, catalog models, and linkage.
8
+ * Uses the same bundled / remote / auto loading pattern as {@link loadAIProfilesRegistry}.
9
+ */
10
+ export async function getAIRegistryStatistics(options = {}) {
11
+ const includeCatalog = options.includeCatalog ?? true;
12
+ const includeLinkage = options.includeLinkage ?? true;
13
+ const warnings = [];
14
+ const { registry, warnings: profileWarnings } = await loadAIProfilesRegistryWithWarnings({
15
+ source: options.source,
16
+ refresh: options.refresh,
17
+ });
18
+ warnings.push(...profileWarnings);
19
+ let catalog;
20
+ let catalogSource;
21
+ if (includeCatalog || includeLinkage) {
22
+ const catalogResult = await loadModelsCatalogWithWarnings({
23
+ source: options.source,
24
+ refresh: options.refresh,
25
+ });
26
+ catalog = catalogResult.catalog;
27
+ catalogSource = catalogResult.source;
28
+ warnings.push(...catalogResult.warnings);
29
+ }
30
+ let linkageRegistry;
31
+ if (includeLinkage && catalog) {
32
+ const profilesJson = await loadModelsProfilesJson({
33
+ source: options.source,
34
+ refresh: options.refresh,
35
+ });
36
+ linkageRegistry = buildModelsRegistry(profilesJson, catalog).registry;
37
+ }
38
+ const statistics = buildRegistryStatistics({
39
+ registry,
40
+ profilesSource: registry.source,
41
+ catalog,
42
+ catalogSource,
43
+ linkageRegistry,
44
+ filter: {
45
+ includeDeprecated: options.includeDeprecated,
46
+ includeExperimental: options.includeExperimental,
47
+ category: options.category,
48
+ },
49
+ });
50
+ return { statistics, warnings };
51
+ }
52
+ //# sourceMappingURL=getAIRegistryStatistics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAIRegistryStatistics.js","sourceRoot":"","sources":["../src/getAIRegistryStatistics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAY5E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAA0C,EAAE;IAE5C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IACtD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IACtD,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,GAC3C,MAAM,kCAAkC,CAAC;QACvC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACL,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;IAElC,IAAI,OAAO,CAAC;IACZ,IAAI,aAA+C,CAAC;IAEpD,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,MAAM,6BAA6B,CAAC;YACxD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QAChC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,eAAe,CAAC;IAEpB,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC;YAChD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,eAAe,GAAG,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC;IACxE,CAAC;IAED,MAAM,UAAU,GAAG,uBAAuB,CAAC;QACzC,QAAQ;QACR,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,OAAO;QACP,aAAa;QACb,eAAe;QACf,MAAM,EAAE;YACN,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,30 @@
1
1
  export { listAIProfiles } from "./listAIProfiles.js";
2
2
  export { listAIShortcuts } from "./listAIShortcuts.js";
3
+ export { getAIRegistryStatistics } from "./getAIRegistryStatistics.js";
4
+ export { computeProfilesStatistics, computeCatalogStatistics, computeLinkageStatistics, computeShortcutsStatistics, buildRegistryStatistics, } from "./computeRegistryStatistics.js";
5
+ export { formatRegistryStatistics } from "./formatRegistryStatistics.js";
3
6
  export { resolveAIProfile } from "./resolveAIProfile.js";
4
7
  export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
5
8
  export { resolveUseOpenRouter, readUseOpenRouterFromEnv, buildOpenRouterModelId, } from "./resolveModelRouting.js";
6
- export type { AIProfilesRegistry, AIProfileDefinition, AIProfileChoice, AIProfileShortcut, AIProfileSummary, AIShortcutSummary, ResolvedAIProfile, ListAIProfilesOptions, ResolveAIProfileOptions, AIProvider, AIModelPricing, AIRuntimeDefaults, AIProfileBackend, AIProfileWarning, InstructionTier, RegistrySourceMode, } from "./types.js";
9
+ export { buildModelInvocation, buildDirectInvocation, buildRegistryKey, matchOpenRouterCatalog, normalizeAnthropicVersionSlug, openRouterResolutionCandidates, } from "./modelIdentity.js";
10
+ 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 { mergeCatalogSupplement } from "./mergeCatalogSupplement.js";
13
+ export { PROFILE_CATALOG_SUPPLEMENT } from "./profileCatalogSupplement.js";
14
+ export { enrichChoiceFromCatalog, findCatalogModelEntry, pricingFromCatalogEntry, limitsFromCatalogEntry, capabilitiesFromCatalogEntry, } from "./catalogEnrichment.js";
15
+ export { buildModelsRegistry, listFaultyFromRegistry } from "./buildModelsRegistry.js";
16
+ export { loadBundledModelsRegistry, loadModelsRegistryFromPath, lookupInvocationForChoice, listFaultyProfileChoices, } from "./loadModelsRegistry.js";
17
+ export { validateProfileVendorCoverage, validateBundledProfileVendorCoverage, isProfileVendorTrimReady, isProfileLeadingVendorReady, } from "./validateProfileVendorCoverage.js";
18
+ export { LEADING_VENDORS, pickProfileChoice } from "./vendorPolicy.js";
19
+ 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";
21
+ export { loadModelsCatalog, loadModelsCatalogWithWarnings } from "./loader/loadModelsCatalog.js";
22
+ export { loadBundledModelsCatalog } from "./loader/loadBundledModelsCatalog.js";
23
+ export { buildModelsCatalogFromOpenRouterApi, buildLegacyCatalogFromOpenRouterApi, } from "./buildCatalogFromOpenRouterApi.js";
24
+ 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";
26
+ export type { GetAIRegistryStatisticsResult } from "./getAIRegistryStatistics.js";
27
+ export type { LoadCatalogResult } from "./loader/loadModelsCatalog.js";
7
28
  export type { AIModelRoutingMode } from "./resolveModelRouting.js";
8
29
  export { AIProfilesError } from "./errors.js";
9
30
  export type { AIProfilesErrorCode } from "./errors.js";
@@ -1 +1 @@
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,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,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;AAElC,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,26 @@
1
1
  export { listAIProfiles } from "./listAIProfiles.js";
2
2
  export { listAIShortcuts } from "./listAIShortcuts.js";
3
+ export { getAIRegistryStatistics } from "./getAIRegistryStatistics.js";
4
+ export { computeProfilesStatistics, computeCatalogStatistics, computeLinkageStatistics, computeShortcutsStatistics, buildRegistryStatistics, } from "./computeRegistryStatistics.js";
5
+ export { formatRegistryStatistics } from "./formatRegistryStatistics.js";
3
6
  export { resolveAIProfile } from "./resolveAIProfile.js";
4
7
  export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
5
8
  export { resolveUseOpenRouter, readUseOpenRouterFromEnv, buildOpenRouterModelId, } from "./resolveModelRouting.js";
9
+ export { buildModelInvocation, buildDirectInvocation, buildRegistryKey, matchOpenRouterCatalog, normalizeAnthropicVersionSlug, openRouterResolutionCandidates, } from "./modelIdentity.js";
10
+ 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 { mergeCatalogSupplement } from "./mergeCatalogSupplement.js";
13
+ export { PROFILE_CATALOG_SUPPLEMENT } from "./profileCatalogSupplement.js";
14
+ export { enrichChoiceFromCatalog, findCatalogModelEntry, pricingFromCatalogEntry, limitsFromCatalogEntry, capabilitiesFromCatalogEntry, } from "./catalogEnrichment.js";
15
+ export { buildModelsRegistry, listFaultyFromRegistry } from "./buildModelsRegistry.js";
16
+ export { loadBundledModelsRegistry, loadModelsRegistryFromPath, lookupInvocationForChoice, listFaultyProfileChoices, } from "./loadModelsRegistry.js";
17
+ export { validateProfileVendorCoverage, validateBundledProfileVendorCoverage, isProfileVendorTrimReady, isProfileLeadingVendorReady, } from "./validateProfileVendorCoverage.js";
18
+ export { LEADING_VENDORS, pickProfileChoice } from "./vendorPolicy.js";
19
+ 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";
21
+ export { loadModelsCatalog, loadModelsCatalogWithWarnings } from "./loader/loadModelsCatalog.js";
22
+ export { loadBundledModelsCatalog } from "./loader/loadBundledModelsCatalog.js";
23
+ export { buildModelsCatalogFromOpenRouterApi, buildLegacyCatalogFromOpenRouterApi, } from "./buildCatalogFromOpenRouterApi.js";
24
+ export { REMOTE_MODELS_CATALOG_URL, OPENROUTER_MODELS_API_URL } from "./constants.js";
6
25
  export { AIProfilesError } from "./errors.js";
7
26
  //# sourceMappingURL=index.js.map
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,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;AAuBlC,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,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,3 +1,9 @@
1
1
  import type { AIProfileSummary, ListAIProfilesOptions } from "./types.js";
2
+ /**
3
+ * List profile capability contracts (primary keys, aliases, choices, defaults).
4
+ * Use for pickers and discovery; call {@link resolveAIProfile} to get model + runtime details.
5
+ *
6
+ * @see README.md — “Why AI profiles”
7
+ */
2
8
  export declare function listAIProfiles(options?: ListAIProfilesOptions): Promise<AIProfileSummary[]>;
3
9
  //# sourceMappingURL=listAIProfiles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"listAIProfiles.d.ts","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyC7B"}
1
+ {"version":3,"file":"listAIProfiles.d.ts","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyC7B"}
@@ -1,4 +1,10 @@
1
1
  import { loadAIProfilesRegistryWithWarnings } from "./loader/loadAIProfilesRegistry.js";
2
+ /**
3
+ * List profile capability contracts (primary keys, aliases, choices, defaults).
4
+ * Use for pickers and discovery; call {@link resolveAIProfile} to get model + runtime details.
5
+ *
6
+ * @see README.md — “Why AI profiles”
7
+ */
2
8
  export async function listAIProfiles(options = {}) {
3
9
  const { registry } = await loadAIProfilesRegistryWithWarnings({
4
10
  source: options.source,
@@ -1 +1 @@
1
- {"version":3,"file":"listAIProfiles.js","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAGxF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAiC,EAAE;IAEnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kCAAkC,CAAC;QAC5D,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACpC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAClB,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE7D,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,eAAe,EAAE,aAAa,CAAC,QAAQ;YACvC,cAAc,EAAE,aAAa,CAAC,OAAO;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS;gBAChC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"listAIProfiles.js","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAGxF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAiC,EAAE;IAEnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kCAAkC,CAAC;QAC5D,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACpC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAClB,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE7D,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,eAAe,EAAE,aAAa,CAAC,QAAQ;YACvC,cAAc,EAAE,aAAa,CAAC,OAAO;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS;gBAChC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ModelInvocation, ModelsRegistryJson } from "./types.js";
2
+ export declare function loadBundledModelsRegistry(): ModelsRegistryJson;
3
+ export declare function loadModelsRegistryFromPath(path: string): ModelsRegistryJson;
4
+ export declare function lookupInvocationForChoice(registry: ModelsRegistryJson, provider: string, modelId: string): ModelInvocation | undefined;
5
+ export declare function listFaultyProfileChoices(registry?: ModelsRegistryJson): import("./buildModelsRegistry.js").FaultyProfileChoice[];
6
+ //# sourceMappingURL=loadModelsRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadModelsRegistry.d.ts","sourceRoot":"","sources":["../src/loadModelsRegistry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAWtE,wBAAgB,yBAAyB,IAAI,kBAAkB,CAK9D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAE3E;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,eAAe,GAAG,SAAS,CAoB7B;AAMD,wBAAgB,wBAAwB,CACtC,QAAQ,GAAE,kBAAgD,4DAG3D"}
@@ -0,0 +1,43 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { listFaultyFromRegistry } from "./buildModelsRegistry.js";
5
+ import { buildRegistryKey } from "./modelIdentity.js";
6
+ const dataDir = join(dirname(fileURLToPath(import.meta.url)), "data");
7
+ let cachedRegistry;
8
+ function readBundledRegistry() {
9
+ const path = join(dataDir, "models-registry.json");
10
+ return JSON.parse(readFileSync(path, "utf8"));
11
+ }
12
+ export function loadBundledModelsRegistry() {
13
+ if (!cachedRegistry) {
14
+ cachedRegistry = readBundledRegistry();
15
+ }
16
+ return cachedRegistry;
17
+ }
18
+ export function loadModelsRegistryFromPath(path) {
19
+ return JSON.parse(readFileSync(path, "utf8"));
20
+ }
21
+ export function lookupInvocationForChoice(registry, provider, modelId) {
22
+ const registryKey = buildRegistryKey(provider, modelId);
23
+ const entry = registry.models[registryKey];
24
+ if (entry) {
25
+ return entry.invocation;
26
+ }
27
+ for (const modelEntry of Object.values(registry.models)) {
28
+ const matchesUsage = modelEntry.usage.profileChoices.length > 0;
29
+ if (matchesUsage &&
30
+ modelEntry.vendor.provider === provider &&
31
+ normalizeModelId(modelEntry.vendor.modelId) === normalizeModelId(modelId)) {
32
+ return modelEntry.invocation;
33
+ }
34
+ }
35
+ return undefined;
36
+ }
37
+ function normalizeModelId(modelId) {
38
+ return modelId.trim().toLowerCase();
39
+ }
40
+ export function listFaultyProfileChoices(registry = loadBundledModelsRegistry()) {
41
+ return listFaultyFromRegistry(registry);
42
+ }
43
+ //# sourceMappingURL=loadModelsRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadModelsRegistry.js","sourceRoot":"","sources":["../src/loadModelsRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAEtE,IAAI,cAA8C,CAAC;AAEnD,SAAS,mBAAmB;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAuB,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,mBAAmB,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAuB,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAA4B,EAC5B,QAAgB,EAChB,OAAe;IAEf,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE3C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAChE,IACE,YAAY;YACZ,UAAU,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACvC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,gBAAgB,CAAC,OAAO,CAAC,EACzE,CAAC;YACD,OAAO,UAAU,CAAC,UAAU,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,WAA+B,yBAAyB,EAAE;IAE1D,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ModelsCatalogJson } from "../types.js";
2
+ export interface CatalogMemoryCache {
3
+ catalog: ModelsCatalogJson;
4
+ loadedAt: number;
5
+ expiresAt: number;
6
+ source: "remote" | "bundled";
7
+ }
8
+ export declare function getCatalogMemoryCache(): CatalogMemoryCache | null;
9
+ export declare function setCatalogMemoryCache(cache: CatalogMemoryCache): void;
10
+ export declare function clearCatalogMemoryCache(): void;
11
+ export declare function isCatalogCacheValid(cache: CatalogMemoryCache | null): boolean;
12
+ //# sourceMappingURL=catalogMemoryCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogMemoryCache.d.ts","sourceRoot":"","sources":["../../src/loader/catalogMemoryCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B;AAID,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAEjE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAErE;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,OAAO,CAE7E"}
@@ -0,0 +1,14 @@
1
+ let catalogMemoryCache = null;
2
+ export function getCatalogMemoryCache() {
3
+ return catalogMemoryCache;
4
+ }
5
+ export function setCatalogMemoryCache(cache) {
6
+ catalogMemoryCache = cache;
7
+ }
8
+ export function clearCatalogMemoryCache() {
9
+ catalogMemoryCache = null;
10
+ }
11
+ export function isCatalogCacheValid(cache) {
12
+ return !!cache && Date.now() < cache.expiresAt;
13
+ }
14
+ //# sourceMappingURL=catalogMemoryCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogMemoryCache.js","sourceRoot":"","sources":["../../src/loader/catalogMemoryCache.ts"],"names":[],"mappings":"AASA,IAAI,kBAAkB,GAA8B,IAAI,CAAC;AAEzD,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,kBAAkB,GAAG,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,kBAAkB,GAAG,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAgC;IAClE,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;AACjD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ModelsCatalogJson } from "../types.js";
2
+ export declare function loadBundledModelsCatalog(): ModelsCatalogJson;
3
+ //# sourceMappingURL=loadBundledModelsCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadBundledModelsCatalog.d.ts","sourceRoot":"","sources":["../../src/loader/loadBundledModelsCatalog.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,wBAAgB,wBAAwB,IAAI,iBAAiB,CAkB5D"}
@@ -0,0 +1,20 @@
1
+ import bundledModelsCatalog from "../data/models-catalog.json" with { type: "json" };
2
+ import { AIProfilesError } from "../errors.js";
3
+ import { normalizeModelsCatalog } from "../modelsCatalog.js";
4
+ import { validateModelsCatalogJson } from "../validation/validateModelsCatalog.js";
5
+ export function loadBundledModelsCatalog() {
6
+ try {
7
+ const normalized = normalizeModelsCatalog(bundledModelsCatalog);
8
+ return validateModelsCatalogJson(normalized);
9
+ }
10
+ catch (error) {
11
+ if (error instanceof AIProfilesError) {
12
+ throw new AIProfilesError(error.code === "REGISTRY_SCHEMA_UNSUPPORTED" ||
13
+ error.code === "REGISTRY_VALIDATION_FAILED"
14
+ ? "BUNDLED_JSON_INVALID"
15
+ : error.code, error.message, error.details);
16
+ }
17
+ throw error;
18
+ }
19
+ }
20
+ //# sourceMappingURL=loadBundledModelsCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadBundledModelsCatalog.js","sourceRoot":"","sources":["../../src/loader/loadBundledModelsCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAEnF,MAAM,UAAU,wBAAwB;IACtC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QAChE,OAAO,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,IAAI,eAAe,CACvB,KAAK,CAAC,IAAI,KAAK,6BAA6B;gBAC1C,KAAK,CAAC,IAAI,KAAK,4BAA4B;gBAC3C,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,KAAK,CAAC,IAAI,EACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,CACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ModelsProfilesJson } from "../types.js";
2
+ export declare function normalizeModelsProfilesDocument(raw: ModelsProfilesJson): ModelsProfilesJson;
3
+ export declare function loadBundledModelsProfiles(): ModelsProfilesJson;
4
+ //# sourceMappingURL=loadBundledModelsProfiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadBundledModelsProfiles.d.ts","sourceRoot":"","sources":["../../src/loader/loadBundledModelsProfiles.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,kBAAkB,GACtB,kBAAkB,CAKpB;AAED,wBAAgB,yBAAyB,IAAI,kBAAkB,CAG9D"}
@@ -0,0 +1,14 @@
1
+ import bundledModelsProfiles from "../data/models-profiles.json" with { type: "json" };
2
+ import { isModelsProfilesV3, migrateModelsProfilesToV3, } from "../profileRegistryV3.js";
3
+ import { validateModelsProfilesJson } from "../validation/validateModelsProfilesJson.js";
4
+ export function normalizeModelsProfilesDocument(raw) {
5
+ if (isModelsProfilesV3(raw)) {
6
+ return raw;
7
+ }
8
+ return migrateModelsProfilesToV3(raw);
9
+ }
10
+ export function loadBundledModelsProfiles() {
11
+ const validated = validateModelsProfilesJson(bundledModelsProfiles);
12
+ return normalizeModelsProfilesDocument(validated);
13
+ }
14
+ //# sourceMappingURL=loadBundledModelsProfiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadBundledModelsProfiles.js","sourceRoot":"","sources":["../../src/loader/loadBundledModelsProfiles.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEvF,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAGzF,MAAM,UAAU,+BAA+B,CAC7C,GAAuB;IAEvB,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,MAAM,SAAS,GAAG,0BAA0B,CAAC,qBAAqB,CAAC,CAAC;IACpE,OAAO,+BAA+B,CAAC,SAAS,CAAC,CAAC;AACpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"loadBundledRegistry.d.ts","sourceRoot":"","sources":["../../src/loader/loadBundledRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOtD,wBAAgB,mBAAmB,IAAI,kBAAkB,CAuBxD"}
1
+ {"version":3,"file":"loadBundledRegistry.d.ts","sourceRoot":"","sources":["../../src/loader/loadBundledRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAQtD,wBAAgB,mBAAmB,IAAI,kBAAkB,CAyBxD"}
@@ -2,10 +2,11 @@ import bundledModelsProfiles from "../data/models-profiles.json" with { type: "j
2
2
  import bundledProfilesShortcuts from "../data/profiles-shortcuts.json" with { type: "json" };
3
3
  import { AIProfilesError } from "../errors.js";
4
4
  import { validateModelsProfilesJson, validateProfilesShortcutsJson, } from "../validation/validateModelsProfilesJson.js";
5
+ import { normalizeModelsProfilesDocument } from "./loadBundledModelsProfiles.js";
5
6
  import { combineRegistry } from "./combineRegistry.js";
6
7
  export function loadBundledRegistry() {
7
8
  try {
8
- const modelsProfiles = validateModelsProfilesJson(bundledModelsProfiles);
9
+ const modelsProfiles = normalizeModelsProfilesDocument(validateModelsProfilesJson(bundledModelsProfiles));
9
10
  const shortcuts = validateProfilesShortcutsJson(bundledProfilesShortcuts, modelsProfiles.profiles);
10
11
  return combineRegistry(modelsProfiles, shortcuts, "bundled");
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loadBundledRegistry.js","sourceRoot":"","sources":["../../src/loader/loadBundledRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvF,OAAO,wBAAwB,MAAM,iCAAiC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,UAAU,mBAAmB;IACjC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,0BAA0B,CAAC,qBAAqB,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,6BAA6B,CAC7C,wBAAwB,EACxB,cAAc,CAAC,QAAQ,CACxB,CAAC;QAEF,OAAO,eAAe,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,IAAI,eAAe,CACvB,KAAK,CAAC,IAAI,KAAK,6BAA6B;gBAC1C,KAAK,CAAC,IAAI,KAAK,4BAA4B;gBAC3C,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,KAAK,CAAC,IAAI,EACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,CACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"loadBundledRegistry.js","sourceRoot":"","sources":["../../src/loader/loadBundledRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvF,OAAO,wBAAwB,MAAM,iCAAiC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,UAAU,mBAAmB;IACjC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,+BAA+B,CACpD,0BAA0B,CAAC,qBAAqB,CAAC,CAClD,CAAC;QACF,MAAM,SAAS,GAAG,6BAA6B,CAC7C,wBAAwB,EACxB,cAAc,CAAC,QAAQ,CACxB,CAAC;QAEF,OAAO,eAAe,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,IAAI,eAAe,CACvB,KAAK,CAAC,IAAI,KAAK,6BAA6B;gBAC1C,KAAK,CAAC,IAAI,KAAK,4BAA4B;gBAC3C,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,KAAK,CAAC,IAAI,EACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,CACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { AIProfileWarning, LoadRegistryOptions, ModelsCatalogJson } from "../types.js";
2
+ export interface LoadCatalogResult {
3
+ catalog: ModelsCatalogJson;
4
+ warnings: AIProfileWarning[];
5
+ source: "remote" | "bundled";
6
+ }
7
+ export declare function loadModelsCatalog(options?: LoadRegistryOptions): Promise<ModelsCatalogJson>;
8
+ export declare function loadModelsCatalogWithWarnings(options?: LoadRegistryOptions): Promise<LoadCatalogResult>;
9
+ //# sourceMappingURL=loadModelsCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadModelsCatalog.d.ts","sourceRoot":"","sources":["../../src/loader/loadModelsCatalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAUrB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B;AAkBD,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAG5B;AAED,wBAAsB,6BAA6B,CACjD,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CA6D5B"}