@x12i/ai-profiles 4.1.1 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +48 -17
  2. package/dist/data/models-catalog.json +2183 -264
  3. package/dist/data/models-profiles.json +8 -63
  4. package/dist/data/models-registry.json +1 -1
  5. package/dist/deriveModelTags.d.ts +18 -0
  6. package/dist/deriveModelTags.d.ts.map +1 -0
  7. package/dist/deriveModelTags.js +148 -0
  8. package/dist/deriveModelTags.js.map +1 -0
  9. package/dist/index.d.ts +11 -4
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +7 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/isKnownProfileChoice.d.ts +21 -0
  14. package/dist/isKnownProfileChoice.d.ts.map +1 -1
  15. package/dist/isKnownProfileChoice.js +25 -0
  16. package/dist/isKnownProfileChoice.js.map +1 -1
  17. package/dist/listAICatalogModels.d.ts +45 -0
  18. package/dist/listAICatalogModels.d.ts.map +1 -0
  19. package/dist/listAICatalogModels.js +229 -0
  20. package/dist/listAICatalogModels.js.map +1 -0
  21. package/dist/listAIProfiles.d.ts.map +1 -1
  22. package/dist/listAIProfiles.js +8 -4
  23. package/dist/listAIProfiles.js.map +1 -1
  24. package/dist/modelsCatalog.d.ts.map +1 -1
  25. package/dist/modelsCatalog.js +5 -0
  26. package/dist/modelsCatalog.js.map +1 -1
  27. package/dist/profileDiscovery.d.ts +38 -6
  28. package/dist/profileDiscovery.d.ts.map +1 -1
  29. package/dist/profileDiscovery.js +70 -22
  30. package/dist/profileDiscovery.js.map +1 -1
  31. package/dist/profileTags.d.ts +5 -0
  32. package/dist/profileTags.d.ts.map +1 -1
  33. package/dist/profileTags.js +26 -0
  34. package/dist/profileTags.js.map +1 -1
  35. package/dist/resolveAIProfileByTags.d.ts +10 -2
  36. package/dist/resolveAIProfileByTags.d.ts.map +1 -1
  37. package/dist/resolveAIProfileByTags.js +21 -5
  38. package/dist/resolveAIProfileByTags.js.map +1 -1
  39. package/dist/resolveCatalogModelByTags.d.ts +39 -0
  40. package/dist/resolveCatalogModelByTags.d.ts.map +1 -0
  41. package/dist/resolveCatalogModelByTags.js +112 -0
  42. package/dist/resolveCatalogModelByTags.js.map +1 -0
  43. package/dist/resolveInput.d.ts +29 -0
  44. package/dist/resolveInput.d.ts.map +1 -0
  45. package/dist/resolveInput.js +41 -0
  46. package/dist/resolveInput.js.map +1 -0
  47. package/dist/resolveModelIdentity.d.ts +4 -0
  48. package/dist/resolveModelIdentity.d.ts.map +1 -1
  49. package/dist/resolveModelIdentity.js +8 -0
  50. package/dist/resolveModelIdentity.js.map +1 -1
  51. package/dist/types.d.ts +11 -1
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/validation/validateModelsCatalog.d.ts.map +1 -1
  54. package/dist/validation/validateModelsCatalog.js +11 -0
  55. package/dist/validation/validateModelsCatalog.js.map +1 -1
  56. package/dist/validation/validateModelsProfilesJson.d.ts +5 -1
  57. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  58. package/dist/validation/validateModelsProfilesJson.js +6 -13
  59. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  60. package/package.json +1 -1
@@ -0,0 +1,45 @@
1
+ import type { AIProfileTag, CatalogModelEntry, ProfileCatalogLane, ProfileTagMatchMode, RegistrySourceMode } from "./types.js";
2
+ export interface CatalogModelSummary {
3
+ openRouterModelId: string;
4
+ provider: CatalogModelEntry["direct"]["provider"];
5
+ modelId: string;
6
+ displayName?: string;
7
+ tags: AIProfileTag[];
8
+ modelFamily?: string;
9
+ status?: string;
10
+ /** Intent profile/choice keys that reference this model. */
11
+ profileChoices: string[];
12
+ score?: number;
13
+ matchedTags?: AIProfileTag[];
14
+ }
15
+ export interface ListAICatalogModelsOptions {
16
+ source?: RegistrySourceMode;
17
+ refresh?: boolean;
18
+ tags?: Array<AIProfileTag | string>;
19
+ tagMatch?: ProfileTagMatchMode;
20
+ /** Free-text search across slug, display name, family. */
21
+ search?: string;
22
+ /** Prefer models whose modalities match this lane (best-effort). */
23
+ catalogLane?: ProfileCatalogLane;
24
+ /**
25
+ * Direct vendor id (e.g. `google`, `openai`) or OpenRouter slug prefix.
26
+ * Also matches `direct.vendorNamespace` for `custom` rows.
27
+ */
28
+ provider?: string;
29
+ /** Catalog / OpenRouter status (e.g. `active`, `deprecated`). */
30
+ status?: string;
31
+ /** Require this modality in the model's input modalities. */
32
+ inputModality?: string;
33
+ /** Require this modality in the model's output modalities. */
34
+ outputModality?: string;
35
+ /** Catalog `capabilities.toolCalling`. */
36
+ supportsTools?: boolean;
37
+ /** Catalog `capabilities.reasoning`. */
38
+ supportsReasoning?: boolean;
39
+ }
40
+ /**
41
+ * List catalog models, optionally filtered/ranked by tags and catalog attributes.
42
+ * Empty match → `[]` (does not throw).
43
+ */
44
+ export declare function listAICatalogModels(options?: ListAICatalogModelsOptions): Promise<CatalogModelSummary[]>;
45
+ //# sourceMappingURL=listAICatalogModels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listAICatalogModels.d.ts","sourceRoot":"","sources":["../src/listAICatalogModels.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAEjB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAwKD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAqGhC"}
@@ -0,0 +1,229 @@
1
+ import { loadModelsCatalogWithWarnings } from "./loader/loadModelsCatalog.js";
2
+ import { loadAIProfilesRegistryWithWarnings } from "./loader/loadAIProfilesRegistry.js";
3
+ import { profileIncludedInTagPool, scoreTagOverlap, } from "./profileDiscovery.js";
4
+ import { resolveAIProfileTagTokens } from "./profileTags.js";
5
+ import { formatProfileChoiceKey } from "./profileChoiceKey.js";
6
+ import { normalizeKey } from "./normalizeKey.js";
7
+ function modelMatchesLane(entry, lane) {
8
+ if (!lane || lane === "text") {
9
+ const output = entry.openrouter.modalities?.output ?? entry.modalities?.output;
10
+ if (output && !output.includes("text")) {
11
+ return false;
12
+ }
13
+ return true;
14
+ }
15
+ if (lane === "image") {
16
+ const input = entry.openrouter.modalities?.input ?? entry.modalities?.input ?? [];
17
+ return input.some((m) => /image/i.test(m));
18
+ }
19
+ return true;
20
+ }
21
+ function modelMatchesSearch(entry, search) {
22
+ const trimmed = search.trim().toLowerCase();
23
+ if (!trimmed)
24
+ return true;
25
+ const haystack = [
26
+ entry.openrouter.modelId,
27
+ entry.direct.modelId,
28
+ entry.displayName ?? "",
29
+ entry.family ?? "",
30
+ entry.modelFamily ?? "",
31
+ ...(entry.tags ?? []),
32
+ ]
33
+ .join(" ")
34
+ .toLowerCase();
35
+ return haystack.includes(trimmed);
36
+ }
37
+ function modelMatchesTags(entry, tags, mode) {
38
+ if (tags.length === 0)
39
+ return true;
40
+ const { matchedTags, score } = scoreTagOverlap(entry.tags, tags);
41
+ if (mode === "all") {
42
+ return matchedTags.length === tags.length;
43
+ }
44
+ return score > 0;
45
+ }
46
+ function entryModalities(entry) {
47
+ return {
48
+ input: entry.openrouter.modalities?.input ?? entry.modalities?.input ?? [],
49
+ output: entry.openrouter.modalities?.output ?? entry.modalities?.output ?? [],
50
+ };
51
+ }
52
+ function entryCapabilities(entry) {
53
+ return entry.openrouter.capabilities ?? {};
54
+ }
55
+ function entryStatus(entry) {
56
+ return entry.status ?? entry.openrouter.status;
57
+ }
58
+ function modelMatchesProvider(entry, provider) {
59
+ if (!provider)
60
+ return true;
61
+ const want = normalizeKey(provider);
62
+ if (!want)
63
+ return true;
64
+ if (normalizeKey(entry.direct.provider) === want)
65
+ return true;
66
+ if (entry.direct.vendorNamespace &&
67
+ normalizeKey(entry.direct.vendorNamespace) === want) {
68
+ return true;
69
+ }
70
+ const orId = normalizeKey(entry.openrouter.modelId);
71
+ if (orId === want || orId.startsWith(`${want}/`))
72
+ return true;
73
+ return false;
74
+ }
75
+ function modelMatchesStatus(entry, status) {
76
+ if (!status)
77
+ return true;
78
+ const want = normalizeKey(status);
79
+ if (!want)
80
+ return true;
81
+ const actual = entryStatus(entry);
82
+ return actual !== undefined && normalizeKey(actual) === want;
83
+ }
84
+ function modelMatchesModality(values, required) {
85
+ if (!required)
86
+ return true;
87
+ const want = normalizeKey(required);
88
+ if (!want)
89
+ return true;
90
+ return values.some((m) => normalizeKey(m) === want);
91
+ }
92
+ function modelMatchesCapabilityFlag(actual, required) {
93
+ if (required === undefined)
94
+ return true;
95
+ return Boolean(actual) === required;
96
+ }
97
+ function buildProfileChoiceIndex(profiles) {
98
+ const index = new Map();
99
+ const add = (key, profileChoice) => {
100
+ const k = key.trim().toLowerCase();
101
+ if (!k)
102
+ return;
103
+ const list = index.get(k) ?? [];
104
+ if (!list.includes(profileChoice)) {
105
+ list.push(profileChoice);
106
+ }
107
+ index.set(k, list);
108
+ };
109
+ for (const [profileKey, profile] of Object.entries(profiles)) {
110
+ if (!profileIncludedInTagPool(profile, { includeDiscovery: false })) {
111
+ continue;
112
+ }
113
+ for (const [choiceKey, choice] of Object.entries(profile.choices ?? {})) {
114
+ const composite = formatProfileChoiceKey(profileKey, choiceKey);
115
+ add(`${choice.provider}/${choice.modelId}`, composite);
116
+ add(choice.modelId, composite);
117
+ }
118
+ }
119
+ return index;
120
+ }
121
+ function profileChoicesForEntry(entry, index) {
122
+ const keys = [
123
+ entry.openrouter.modelId,
124
+ entry.openrouter.canonicalSlug,
125
+ `${entry.direct.provider}/${entry.direct.modelId}`,
126
+ entry.direct.modelId,
127
+ ].filter((k) => typeof k === "string" && k.length > 0);
128
+ const out = [];
129
+ for (const key of keys) {
130
+ for (const hit of index.get(key.toLowerCase()) ?? []) {
131
+ if (!out.includes(hit))
132
+ out.push(hit);
133
+ }
134
+ }
135
+ return out.sort();
136
+ }
137
+ /**
138
+ * List catalog models, optionally filtered/ranked by tags and catalog attributes.
139
+ * Empty match → `[]` (does not throw).
140
+ */
141
+ export async function listAICatalogModels(options = {}) {
142
+ const [{ catalog }, { registry }] = await Promise.all([
143
+ loadModelsCatalogWithWarnings({
144
+ source: options.source,
145
+ refresh: options.refresh,
146
+ }),
147
+ loadAIProfilesRegistryWithWarnings({
148
+ source: options.source,
149
+ refresh: options.refresh,
150
+ }),
151
+ ]);
152
+ const requestedTags = resolveAIProfileTagTokens((options.tags ?? []).map(String));
153
+ const tagMatch = options.tagMatch ?? "any";
154
+ const choiceIndex = buildProfileChoiceIndex(registry.profiles);
155
+ const matched = [];
156
+ for (const entry of catalog.models) {
157
+ if (!modelMatchesLane(entry, options.catalogLane)) {
158
+ continue;
159
+ }
160
+ if (options.search && !modelMatchesSearch(entry, options.search)) {
161
+ continue;
162
+ }
163
+ if (!modelMatchesTags(entry, requestedTags, tagMatch)) {
164
+ continue;
165
+ }
166
+ if (!modelMatchesProvider(entry, options.provider)) {
167
+ continue;
168
+ }
169
+ if (!modelMatchesStatus(entry, options.status)) {
170
+ continue;
171
+ }
172
+ const modalities = entryModalities(entry);
173
+ if (!modelMatchesModality(modalities.input, options.inputModality)) {
174
+ continue;
175
+ }
176
+ if (!modelMatchesModality(modalities.output, options.outputModality)) {
177
+ continue;
178
+ }
179
+ const caps = entryCapabilities(entry);
180
+ if (!modelMatchesCapabilityFlag(caps.toolCalling, options.supportsTools)) {
181
+ continue;
182
+ }
183
+ if (!modelMatchesCapabilityFlag(caps.reasoning, options.supportsReasoning)) {
184
+ continue;
185
+ }
186
+ const scored = requestedTags.length > 0
187
+ ? scoreTagOverlap(entry.tags, requestedTags)
188
+ : { score: 0, matchedTags: [], coverageRatio: 0 };
189
+ matched.push({
190
+ openRouterModelId: entry.openrouter.modelId,
191
+ provider: entry.direct.provider,
192
+ modelId: entry.direct.modelId,
193
+ displayName: entry.displayName,
194
+ tags: entry.tags ?? [],
195
+ modelFamily: entry.modelFamily,
196
+ status: entryStatus(entry),
197
+ profileChoices: profileChoicesForEntry(entry, choiceIndex),
198
+ ...(requestedTags.length > 0
199
+ ? { score: scored.score, matchedTags: scored.matchedTags }
200
+ : {}),
201
+ });
202
+ }
203
+ if (requestedTags.length > 0) {
204
+ matched.sort((a, b) => {
205
+ const aScore = a.score ?? 0;
206
+ const bScore = b.score ?? 0;
207
+ if (bScore !== aScore)
208
+ return bScore - aScore;
209
+ const aCov = requestedTags.length > 0
210
+ ? (a.matchedTags?.length ?? 0) / requestedTags.length
211
+ : 0;
212
+ const bCov = requestedTags.length > 0
213
+ ? (b.matchedTags?.length ?? 0) / requestedTags.length
214
+ : 0;
215
+ if (bCov !== aCov)
216
+ return bCov - aCov;
217
+ const aLen = a.tags.length;
218
+ const bLen = b.tags.length;
219
+ if (aLen !== bLen)
220
+ return aLen - bLen;
221
+ return a.openRouterModelId.localeCompare(b.openRouterModelId);
222
+ });
223
+ }
224
+ else {
225
+ matched.sort((a, b) => a.openRouterModelId.localeCompare(b.openRouterModelId));
226
+ }
227
+ return matched;
228
+ }
229
+ //# sourceMappingURL=listAICatalogModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listAICatalogModels.js","sourceRoot":"","sources":["../src/listAICatalogModels.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"listAIProfiles.d.ts","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAwG7B"}
1
+ {"version":3,"file":"listAIProfiles.d.ts","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA4G7B"}
@@ -39,6 +39,7 @@ export async function listAIProfiles(options = {}) {
39
39
  tags: requestedTags.length > 0 ? requestedTags : undefined,
40
40
  tagMatch: options.tagMatch,
41
41
  search: options.search,
42
+ includeDiscovery: options.includeDiscovery,
42
43
  })) {
43
44
  return false;
44
45
  }
@@ -60,10 +61,13 @@ export async function listAIProfiles(options = {}) {
60
61
  });
61
62
  if (requestedTags.length > 0) {
62
63
  filtered.sort((a, b) => {
63
- const aScore = scoreProfileTags(a, requestedTags).score;
64
- const bScore = scoreProfileTags(b, requestedTags).score;
65
- if (bScore !== aScore) {
66
- return bScore - aScore;
64
+ const aResult = scoreProfileTags(a, requestedTags);
65
+ const bResult = scoreProfileTags(b, requestedTags);
66
+ if (bResult.score !== aResult.score) {
67
+ return bResult.score - aResult.score;
68
+ }
69
+ if (bResult.coverageRatio !== aResult.coverageRatio) {
70
+ return bResult.coverageRatio - aResult.coverageRatio;
67
71
  }
68
72
  const aLen = a.tags?.length ?? 0;
69
73
  const bLen = b.tags?.length ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"listAIProfiles.js","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listAIProfiles.js","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"modelsCatalog.d.ts","sourceRoot":"","sources":["../src/modelsCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAIlB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAe5D;AAwBD,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,wDAA4B,CAAC;AAEnE,4FAA4F;AAC5F,eAAO,MAAM,oCAAoC,gEACc,CAAC;AAEhE,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,eAAO,MAAM,qBAAqB,EAAG,iCAA0C,CAAC;AAgBhF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAMF,yGAAyG;AACzG,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,kBAAkB,CAgCpB;AAiID,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAmDtE;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GACzB,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CA2CjC;AAED,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,gCAA0B,CAAC"}
1
+ {"version":3,"file":"modelsCatalog.d.ts","sourceRoot":"","sources":["../src/modelsCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAIlB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAe5D;AAwBD,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,wDAA4B,CAAC;AAEnE,4FAA4F;AAC5F,eAAO,MAAM,oCAAoC,gEACc,CAAC;AAEhE,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,eAAO,MAAM,qBAAqB,EAAG,iCAA0C,CAAC;AAgBhF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAMF,yGAAyG;AACzG,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,kBAAkB,CAgCpB;AAwID,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAmDtE;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GACzB,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CA2CjC;AAED,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,gCAA0B,CAAC"}
@@ -111,6 +111,7 @@ function legacyEntryToCatalogModel(entry) {
111
111
  maxCompletionTokens: entry.maxCompletionTokens,
112
112
  knowledgeCutoff: entry.knowledgeCutoff,
113
113
  releasedAt: entry.releasedAt,
114
+ ...(Array.isArray(entry.tags) ? { tags: entry.tags } : {}),
114
115
  };
115
116
  }
116
117
  function upgradeCatalogEntry(raw) {
@@ -150,6 +151,9 @@ function upgradeCatalogEntry(raw) {
150
151
  if (!direct || direct.provider === "openrouter") {
151
152
  direct = parseDirectFromOpenRouterSlug(openrouter.modelId, raw.family);
152
153
  }
154
+ const tags = Array.isArray(raw.tags)
155
+ ? raw.tags
156
+ : undefined;
153
157
  return {
154
158
  direct,
155
159
  openrouter,
@@ -162,6 +166,7 @@ function upgradeCatalogEntry(raw) {
162
166
  maxCompletionTokens: raw.maxCompletionTokens,
163
167
  knowledgeCutoff: raw.knowledgeCutoff,
164
168
  releasedAt: raw.releasedAt,
169
+ ...(tags ? { tags } : {}),
165
170
  };
166
171
  }
167
172
  /** Normalize legacy OpenRouter-only catalog or pass through unified catalog. */
@@ -1 +1 @@
1
- {"version":3,"file":"modelsCatalog.js","sourceRoot":"","sources":["../src/modelsCatalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelsCatalog.js","sourceRoot":"","sources":["../src/modelsCatalog.ts"],"names":[],"mappings":"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"}
@@ -5,17 +5,37 @@ export interface ProfileTagScore {
5
5
  profile: AIProfileDefinition;
6
6
  score: number;
7
7
  matchedTags: AIProfileTag[];
8
+ coverageRatio: number;
8
9
  }
10
+ export interface TagScoreResult {
11
+ score: number;
12
+ matchedTags: AIProfileTag[];
13
+ /** Matched weight / total requested weight (0–1). */
14
+ coverageRatio: number;
15
+ }
16
+ /**
17
+ * Weighted overlap of requested tags against a candidate tag list.
18
+ * Weights: domain/task 3, capability 2, tier/vendor 1, `wf` 0.25.
19
+ */
20
+ export declare function scoreTagOverlap(candidateTags: readonly AIProfileTag[] | undefined, tags: readonly AIProfileTag[]): TagScoreResult;
9
21
  /**
10
- * Count of requested tags present on the profile (partial match OK).
22
+ * Weighted score of requested tags present on the profile.
11
23
  */
12
- export declare function scoreProfileTags(profile: AIProfileDefinition, tags: AIProfileTag[]): {
24
+ export declare function scoreProfileTags(profile: AIProfileDefinition, tags: AIProfileTag[]): TagScoreResult;
25
+ declare function compareTagScores(a: {
13
26
  score: number;
14
- matchedTags: AIProfileTag[];
15
- };
27
+ coverageRatio: number;
28
+ tagCount: number;
29
+ key: string;
30
+ }, b: {
31
+ score: number;
32
+ coverageRatio: number;
33
+ tagCount: number;
34
+ key: string;
35
+ }): number;
16
36
  /**
17
- * Rank profiles by tag overlap (highest score first).
18
- * Tie-break: fewer total profile tags (more specific), then profile key lexicographically.
37
+ * Rank profiles by weighted tag score (highest first).
38
+ * Tie-break: coverage ratio → fewer total tags → profile key lex.
19
39
  */
20
40
  export declare function rankProfilesByTags(profiles: Record<string, AIProfileDefinition>, tags: AIProfileTag[]): ProfileTagScore[];
21
41
  /**
@@ -31,13 +51,25 @@ export declare function profileMatchesTags(profile: AIProfileDefinition, tags: A
31
51
  * Free-text discovery across profile metadata, tags, and choice labels.
32
52
  */
33
53
  export declare function profileMatchesSearch(profile: AIProfileDefinition, search: string): boolean;
54
+ /** True for vendor-family / catalog discovery profiles. */
55
+ export declare function isDiscoveryProfile(profile: AIProfileDefinition): boolean;
56
+ /**
57
+ * Whether a profile belongs in the default tag list/resolve pool.
58
+ * Discovery/vendor profiles are excluded unless `includeDiscovery` or tags include `vnd`.
59
+ */
60
+ export declare function profileIncludedInTagPool(profile: AIProfileDefinition, options?: {
61
+ includeDiscovery?: boolean;
62
+ tags?: readonly AIProfileTag[];
63
+ }): boolean;
34
64
  export declare function profileMatchesDiscovery(profile: AIProfileDefinition, options: {
35
65
  tags?: AIProfileTag[];
36
66
  tagMatch?: ProfileTagMatchMode;
37
67
  search?: string;
68
+ includeDiscovery?: boolean;
38
69
  }): boolean;
39
70
  /** Collect every tag used across profiles (sorted). */
40
71
  export declare function collectProfileTags(profiles: Record<string, AIProfileDefinition>): AIProfileTag[];
41
72
  /** Stable signature for a profile tag set (sorted, comma-joined). */
42
73
  export declare function profileTagSetSignature(tags: AIProfileTag[]): string;
74
+ export { compareTagScores };
43
75
  //# sourceMappingURL=profileDiscovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profileDiscovery.d.ts","sourceRoot":"","sources":["../src/profileDiscovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,YAAY,EAAE,CAAC;CAC7B;AAuCD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,YAAY,EAAE,GACnB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,YAAY,EAAE,CAAA;CAAE,CAQhD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAC7C,IAAI,EAAE,YAAY,EAAE,GACnB,eAAe,EAAE,CAuBnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAC7C,IAAI,EAAE,YAAY,EAAE,GACnB,eAAe,GAAG,SAAS,CAE7B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,YAAY,EAAE,EACpB,IAAI,GAAE,mBAA2B,GAChC,OAAO,CAWT;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAqBT;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE;IACP,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAUT;AAED,uDAAuD;AACvD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,YAAY,EAAE,CAQhB;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAEnE"}
1
+ {"version":3,"file":"profileDiscovery.d.ts","sourceRoot":"","sources":["../src/profileDiscovery.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { normalizeKey } from "./normalizeKey.js";
2
- import { getAIProfileTag } from "./profileTags.js";
2
+ import { getAIProfileTag, getAIProfileTagWeight } from "./profileTags.js";
3
3
  function tokenizeSearch(value) {
4
4
  return normalizeKey(value)
5
5
  .split(/[^a-z0-9]+/g)
@@ -34,39 +34,61 @@ function profileSearchHaystack(profile) {
34
34
  .join(" ");
35
35
  }
36
36
  /**
37
- * Count of requested tags present on the profile (partial match OK).
37
+ * Weighted overlap of requested tags against a candidate tag list.
38
+ * Weights: domain/task 3, capability 2, tier/vendor 1, `wf` 0.25.
38
39
  */
39
- export function scoreProfileTags(profile, tags) {
40
+ export function scoreTagOverlap(candidateTags, tags) {
40
41
  if (tags.length === 0) {
41
- return { score: 0, matchedTags: [] };
42
+ return { score: 0, matchedTags: [], coverageRatio: 0 };
42
43
  }
43
- const profileTags = new Set(profile.tags ?? []);
44
- const matchedTags = tags.filter((tag) => profileTags.has(tag));
45
- return { score: matchedTags.length, matchedTags };
44
+ const candidateSet = new Set(candidateTags ?? []);
45
+ const matchedTags = tags.filter((tag) => candidateSet.has(tag));
46
+ const score = matchedTags.reduce((sum, tag) => sum + getAIProfileTagWeight(tag), 0);
47
+ const requestWeight = tags.reduce((sum, tag) => sum + getAIProfileTagWeight(tag), 0);
48
+ const coverageRatio = requestWeight > 0 ? score / requestWeight : 0;
49
+ return { score, matchedTags, coverageRatio };
46
50
  }
47
51
  /**
48
- * Rank profiles by tag overlap (highest score first).
49
- * Tie-break: fewer total profile tags (more specific), then profile key lexicographically.
52
+ * Weighted score of requested tags present on the profile.
53
+ */
54
+ export function scoreProfileTags(profile, tags) {
55
+ return scoreTagOverlap(profile.tags, tags);
56
+ }
57
+ function compareTagScores(a, b) {
58
+ if (b.score !== a.score) {
59
+ return b.score - a.score;
60
+ }
61
+ if (b.coverageRatio !== a.coverageRatio) {
62
+ return b.coverageRatio - a.coverageRatio;
63
+ }
64
+ if (a.tagCount !== b.tagCount) {
65
+ return a.tagCount - b.tagCount;
66
+ }
67
+ return a.key.localeCompare(b.key);
68
+ }
69
+ /**
70
+ * Rank profiles by weighted tag score (highest first).
71
+ * Tie-break: coverage ratio → fewer total tags → profile key lex.
50
72
  */
51
73
  export function rankProfilesByTags(profiles, tags) {
52
74
  const ranked = [];
53
75
  for (const [profileKey, profile] of Object.entries(profiles)) {
54
- const { score, matchedTags } = scoreProfileTags(profile, tags);
76
+ const { score, matchedTags, coverageRatio } = scoreProfileTags(profile, tags);
55
77
  if (score > 0) {
56
- ranked.push({ profileKey, profile, score, matchedTags });
78
+ ranked.push({ profileKey, profile, score, matchedTags, coverageRatio });
57
79
  }
58
80
  }
59
- ranked.sort((a, b) => {
60
- if (b.score !== a.score) {
61
- return b.score - a.score;
62
- }
63
- const aLen = a.profile.tags?.length ?? 0;
64
- const bLen = b.profile.tags?.length ?? 0;
65
- if (aLen !== bLen) {
66
- return aLen - bLen;
67
- }
68
- return a.profileKey.localeCompare(b.profileKey);
69
- });
81
+ ranked.sort((a, b) => compareTagScores({
82
+ score: a.score,
83
+ coverageRatio: a.coverageRatio,
84
+ tagCount: a.profile.tags?.length ?? 0,
85
+ key: a.profileKey,
86
+ }, {
87
+ score: b.score,
88
+ coverageRatio: b.coverageRatio,
89
+ tagCount: b.profile.tags?.length ?? 0,
90
+ key: b.profileKey,
91
+ }));
70
92
  return ranked;
71
93
  }
72
94
  /**
@@ -110,7 +132,32 @@ export function profileMatchesSearch(profile, search) {
110
132
  }
111
133
  return tokens.every((token) => haystack.includes(token));
112
134
  }
135
+ /** True for vendor-family / catalog discovery profiles. */
136
+ export function isDiscoveryProfile(profile) {
137
+ return profile.vendorFamily === true || profile.category === "discovery";
138
+ }
139
+ /**
140
+ * Whether a profile belongs in the default tag list/resolve pool.
141
+ * Discovery/vendor profiles are excluded unless `includeDiscovery` or tags include `vnd`.
142
+ */
143
+ export function profileIncludedInTagPool(profile, options = {}) {
144
+ if (options.includeDiscovery) {
145
+ return true;
146
+ }
147
+ if (options.tags?.includes("vnd")) {
148
+ return true;
149
+ }
150
+ return !isDiscoveryProfile(profile);
151
+ }
113
152
  export function profileMatchesDiscovery(profile, options) {
153
+ // Discovery exclusion only applies to tag-filtered pools (not bare list/search).
154
+ if (options.tags?.length &&
155
+ !profileIncludedInTagPool(profile, {
156
+ includeDiscovery: options.includeDiscovery,
157
+ tags: options.tags,
158
+ })) {
159
+ return false;
160
+ }
114
161
  if (options.tags?.length && !profileMatchesTags(profile, options.tags, options.tagMatch)) {
115
162
  return false;
116
163
  }
@@ -133,4 +180,5 @@ export function collectProfileTags(profiles) {
133
180
  export function profileTagSetSignature(tags) {
134
181
  return [...tags].sort().join(",");
135
182
  }
183
+ export { compareTagScores };
136
184
  //# sourceMappingURL=profileDiscovery.js.map