@x12i/ai-profiles 1.4.0 → 1.6.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.
- package/README.md +237 -21
- package/dist/buildCatalogFromOpenRouterApi.d.ts +29 -0
- package/dist/buildCatalogFromOpenRouterApi.d.ts.map +1 -0
- package/dist/buildCatalogFromOpenRouterApi.js +113 -0
- package/dist/buildCatalogFromOpenRouterApi.js.map +1 -0
- package/dist/buildModelsRegistry.d.ts +25 -0
- package/dist/buildModelsRegistry.d.ts.map +1 -0
- package/dist/buildModelsRegistry.js +190 -0
- package/dist/buildModelsRegistry.js.map +1 -0
- package/dist/buildResolvedProfile.d.ts +3 -1
- package/dist/buildResolvedProfile.d.ts.map +1 -1
- package/dist/buildResolvedProfile.js +94 -11
- package/dist/buildResolvedProfile.js.map +1 -1
- package/dist/catalogEnrichment.d.ts +19 -0
- package/dist/catalogEnrichment.d.ts.map +1 -0
- package/dist/catalogEnrichment.js +87 -0
- package/dist/catalogEnrichment.js.map +1 -0
- package/dist/computeRegistryStatistics.d.ts +15 -0
- package/dist/computeRegistryStatistics.d.ts.map +1 -0
- package/dist/computeRegistryStatistics.js +168 -0
- package/dist/computeRegistryStatistics.js.map +1 -0
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -0
- package/dist/constants.js.map +1 -1
- package/dist/data/models-catalog.json +2219 -0
- package/dist/data/models-profiles.json +1361 -193
- package/dist/data/models-profiles.schema.json +130 -0
- package/dist/data/models-registry.json +1606 -0
- package/dist/data/openrouter-models-catalog.json +857 -0
- package/dist/data/profiles-shortcuts.json +101 -2
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/formatRegistryStatistics.d.ts +4 -0
- package/dist/formatRegistryStatistics.d.ts.map +1 -0
- package/dist/formatRegistryStatistics.js +34 -0
- package/dist/formatRegistryStatistics.js.map +1 -0
- package/dist/getAIRegistryStatistics.d.ts +11 -0
- package/dist/getAIRegistryStatistics.d.ts.map +1 -0
- package/dist/getAIRegistryStatistics.js +52 -0
- package/dist/getAIRegistryStatistics.js.map +1 -0
- package/dist/index.d.ts +26 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/listAIProfiles.d.ts +6 -0
- package/dist/listAIProfiles.d.ts.map +1 -1
- package/dist/listAIProfiles.js +6 -0
- package/dist/listAIProfiles.js.map +1 -1
- package/dist/loadModelsRegistry.d.ts +6 -0
- package/dist/loadModelsRegistry.d.ts.map +1 -0
- package/dist/loadModelsRegistry.js +43 -0
- package/dist/loadModelsRegistry.js.map +1 -0
- package/dist/loader/catalogMemoryCache.d.ts +12 -0
- package/dist/loader/catalogMemoryCache.d.ts.map +1 -0
- package/dist/loader/catalogMemoryCache.js +14 -0
- package/dist/loader/catalogMemoryCache.js.map +1 -0
- package/dist/loader/loadBundledModelsCatalog.d.ts +3 -0
- package/dist/loader/loadBundledModelsCatalog.d.ts.map +1 -0
- package/dist/loader/loadBundledModelsCatalog.js +20 -0
- package/dist/loader/loadBundledModelsCatalog.js.map +1 -0
- package/dist/loader/loadBundledModelsProfiles.d.ts +4 -0
- package/dist/loader/loadBundledModelsProfiles.d.ts.map +1 -0
- package/dist/loader/loadBundledModelsProfiles.js +14 -0
- package/dist/loader/loadBundledModelsProfiles.js.map +1 -0
- package/dist/loader/loadBundledRegistry.d.ts.map +1 -1
- package/dist/loader/loadBundledRegistry.js +2 -1
- package/dist/loader/loadBundledRegistry.js.map +1 -1
- package/dist/loader/loadModelsCatalog.d.ts +9 -0
- package/dist/loader/loadModelsCatalog.d.ts.map +1 -0
- package/dist/loader/loadModelsCatalog.js +72 -0
- package/dist/loader/loadModelsCatalog.js.map +1 -0
- package/dist/loader/loadModelsProfilesJson.d.ts +3 -0
- package/dist/loader/loadModelsProfilesJson.d.ts.map +1 -0
- package/dist/loader/loadModelsProfilesJson.js +18 -0
- package/dist/loader/loadModelsProfilesJson.js.map +1 -0
- package/dist/loader/loadRemoteModelsCatalog.d.ts +3 -0
- package/dist/loader/loadRemoteModelsCatalog.d.ts.map +1 -0
- package/dist/loader/loadRemoteModelsCatalog.js +23 -0
- package/dist/loader/loadRemoteModelsCatalog.js.map +1 -0
- package/dist/loader/loadRemoteModelsProfiles.d.ts +3 -0
- package/dist/loader/loadRemoteModelsProfiles.d.ts.map +1 -0
- package/dist/loader/loadRemoteModelsProfiles.js +21 -0
- package/dist/loader/loadRemoteModelsProfiles.js.map +1 -0
- package/dist/loader/loadRemoteRegistry.d.ts.map +1 -1
- package/dist/loader/loadRemoteRegistry.js +2 -1
- package/dist/loader/loadRemoteRegistry.js.map +1 -1
- package/dist/mergeCatalogSupplement.d.ts +4 -0
- package/dist/mergeCatalogSupplement.d.ts.map +1 -0
- package/dist/mergeCatalogSupplement.js +26 -0
- package/dist/mergeCatalogSupplement.js.map +1 -0
- package/dist/modelIdentity.d.ts +33 -0
- package/dist/modelIdentity.d.ts.map +1 -0
- package/dist/modelIdentity.js +161 -0
- package/dist/modelIdentity.js.map +1 -0
- package/dist/modelsCatalog.d.ts +21 -0
- package/dist/modelsCatalog.d.ts.map +1 -0
- package/dist/modelsCatalog.js +187 -0
- package/dist/modelsCatalog.js.map +1 -0
- package/dist/profileCatalogSupplement.d.ts +7 -0
- package/dist/profileCatalogSupplement.d.ts.map +1 -0
- package/dist/profileCatalogSupplement.js +292 -0
- package/dist/profileCatalogSupplement.js.map +1 -0
- package/dist/profileRegistryV2.d.ts +19 -0
- package/dist/profileRegistryV2.d.ts.map +1 -0
- package/dist/profileRegistryV2.js +257 -0
- package/dist/profileRegistryV2.js.map +1 -0
- package/dist/profileRegistryV3.d.ts +11 -0
- package/dist/profileRegistryV3.d.ts.map +1 -0
- package/dist/profileRegistryV3.js +526 -0
- package/dist/profileRegistryV3.js.map +1 -0
- package/dist/resolveAIProfile.d.ts +8 -0
- package/dist/resolveAIProfile.d.ts.map +1 -1
- package/dist/resolveAIProfile.js +62 -18
- package/dist/resolveAIProfile.js.map +1 -1
- package/dist/resolveModelIdentity.d.ts +17 -0
- package/dist/resolveModelIdentity.d.ts.map +1 -0
- package/dist/resolveModelIdentity.js +107 -0
- package/dist/resolveModelIdentity.js.map +1 -0
- package/dist/resolveModelRouting.d.ts +2 -1
- package/dist/resolveModelRouting.d.ts.map +1 -1
- package/dist/resolveModelRouting.js +9 -10
- package/dist/resolveModelRouting.js.map +1 -1
- package/dist/types.d.ts +339 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -1
- package/dist/validateProfileVendorCoverage.d.ts +12 -0
- package/dist/validateProfileVendorCoverage.d.ts.map +1 -0
- package/dist/validateProfileVendorCoverage.js +58 -0
- package/dist/validateProfileVendorCoverage.js.map +1 -0
- package/dist/validation/openRouterAlignment.d.ts +6 -15
- package/dist/validation/openRouterAlignment.d.ts.map +1 -1
- package/dist/validation/openRouterAlignment.js +9 -57
- package/dist/validation/openRouterAlignment.js.map +1 -1
- package/dist/validation/validateModelsCatalog.d.ts +3 -0
- package/dist/validation/validateModelsCatalog.d.ts.map +1 -0
- package/dist/validation/validateModelsCatalog.js +42 -0
- package/dist/validation/validateModelsCatalog.js.map +1 -0
- package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
- package/dist/validation/validateModelsProfilesJson.js +38 -2
- package/dist/validation/validateModelsProfilesJson.js.map +1 -1
- package/dist/vendorPolicy.d.ts +20 -0
- package/dist/vendorPolicy.d.ts.map +1 -0
- package/dist/vendorPolicy.js +71 -0
- package/dist/vendorPolicy.js.map +1 -0
- package/package.json +12 -2
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { buildOpenRouterModelId } from "./modelIdentity.js";
|
|
2
|
+
/** Vendor-native model ID corrections (dotted → dashed Anthropic, stale SKUs, etc.). */
|
|
3
|
+
export const VENDOR_MODEL_ID_FIXES = {
|
|
4
|
+
"claude-haiku-4.5": "claude-haiku-4-5",
|
|
5
|
+
"claude-sonnet-4.6": "claude-sonnet-4-6",
|
|
6
|
+
"claude-opus-4.7": "claude-opus-4-8",
|
|
7
|
+
"grok-4.1-fast": "grok-build-0.1",
|
|
8
|
+
"gemini-4.0-pro": "gemini-2.5-pro",
|
|
9
|
+
"meta-llama/Llama-3.3-70b-instruct": "meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
|
10
|
+
"qwen/qwen-2.5-72b-instruct": "Qwen/Qwen3-235B-A22B-Instruct-2507-tput",
|
|
11
|
+
};
|
|
12
|
+
export function fixVendorModelId(modelId) {
|
|
13
|
+
return VENDOR_MODEL_ID_FIXES[modelId] ?? modelId;
|
|
14
|
+
}
|
|
15
|
+
export function openRouterSlugFor(provider, vendorModelId) {
|
|
16
|
+
if (provider === "local")
|
|
17
|
+
return null;
|
|
18
|
+
if (provider === "together")
|
|
19
|
+
return null;
|
|
20
|
+
if (provider === "xai") {
|
|
21
|
+
return vendorModelId.startsWith("grok-")
|
|
22
|
+
? `x-ai/${vendorModelId}`
|
|
23
|
+
: buildOpenRouterModelId(provider, vendorModelId);
|
|
24
|
+
}
|
|
25
|
+
return buildOpenRouterModelId(provider, vendorModelId);
|
|
26
|
+
}
|
|
27
|
+
function isV2Pricing(pricing) {
|
|
28
|
+
return (pricing !== undefined &&
|
|
29
|
+
typeof pricing === "object" &&
|
|
30
|
+
"billingModel" in pricing);
|
|
31
|
+
}
|
|
32
|
+
function migrateFlatPricing(flat, provider) {
|
|
33
|
+
if (!flat) {
|
|
34
|
+
if (provider === "local") {
|
|
35
|
+
return {
|
|
36
|
+
billingModel: "self_hosted",
|
|
37
|
+
currency: "USD",
|
|
38
|
+
unit: "1M_tokens",
|
|
39
|
+
priceStatus: "standard",
|
|
40
|
+
notes: "Self-hosted; no per-token cloud billing.",
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
const pricing = {
|
|
46
|
+
billingModel: "token",
|
|
47
|
+
currency: "USD",
|
|
48
|
+
unit: "1M_tokens",
|
|
49
|
+
priceStatus: "standard",
|
|
50
|
+
standard: {
|
|
51
|
+
input: flat.input,
|
|
52
|
+
output: flat.output,
|
|
53
|
+
cachedInput: flat.cachedInput,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
if (flat.batchInput !== undefined ||
|
|
57
|
+
flat.batchOutput !== undefined) {
|
|
58
|
+
pricing.batch = {
|
|
59
|
+
input: flat.batchInput,
|
|
60
|
+
output: flat.batchOutput,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (flat.cacheWrite5m !== undefined ||
|
|
64
|
+
flat.cacheWrite1h !== undefined ||
|
|
65
|
+
flat.cacheHit !== undefined) {
|
|
66
|
+
pricing.cache = {
|
|
67
|
+
write5m: flat.cacheWrite5m,
|
|
68
|
+
write1h: flat.cacheWrite1h,
|
|
69
|
+
hit: flat.cacheHit,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (flat.inputBelow200k !== undefined ||
|
|
73
|
+
flat.inputAbove200k !== undefined) {
|
|
74
|
+
pricing.notes =
|
|
75
|
+
"Tiered context pricing; standard rates reflect ≤200k token tier where applicable.";
|
|
76
|
+
pricing.standard = {
|
|
77
|
+
...pricing.standard,
|
|
78
|
+
input: flat.inputBelow200k ?? flat.input,
|
|
79
|
+
output: flat.outputBelow200k ?? flat.output,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (flat.notes) {
|
|
83
|
+
pricing.notes = [pricing.notes, flat.notes].filter(Boolean).join(" ");
|
|
84
|
+
}
|
|
85
|
+
return pricing;
|
|
86
|
+
}
|
|
87
|
+
/** Flatten v2 pricing for {@link ResolvedAIProfile} and legacy consumers. */
|
|
88
|
+
export function flattenChoicePricing(pricing) {
|
|
89
|
+
if (!pricing || pricing.billingModel === "self_hosted") {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
const flat = {
|
|
93
|
+
input: pricing.standard?.input,
|
|
94
|
+
output: pricing.standard?.output,
|
|
95
|
+
cachedInput: pricing.standard?.cachedInput,
|
|
96
|
+
batchInput: pricing.batch?.input,
|
|
97
|
+
batchOutput: pricing.batch?.output,
|
|
98
|
+
cacheWrite5m: pricing.cache?.write5m,
|
|
99
|
+
cacheWrite1h: pricing.cache?.write1h,
|
|
100
|
+
cacheHit: pricing.cache?.hit,
|
|
101
|
+
notes: pricing.notes,
|
|
102
|
+
};
|
|
103
|
+
if (pricing.futureStandard) {
|
|
104
|
+
const promo = `Promotional through ${pricing.futureStandard.validUntil ?? "see provider"}: input ${pricing.futureStandard.input}, output ${pricing.futureStandard.output}.`;
|
|
105
|
+
flat.notes = [flat.notes, promo].filter(Boolean).join(" ");
|
|
106
|
+
}
|
|
107
|
+
return flat;
|
|
108
|
+
}
|
|
109
|
+
export function isModelsProfilesV2(value) {
|
|
110
|
+
return value.schema === "x12i.ai-profiles.model-registry.v2";
|
|
111
|
+
}
|
|
112
|
+
export function getChoiceApi(choice) {
|
|
113
|
+
return choice.api;
|
|
114
|
+
}
|
|
115
|
+
export function getChoiceVendorModelId(choice) {
|
|
116
|
+
const api = getChoiceApi(choice);
|
|
117
|
+
return api?.vendorModelId ?? fixVendorModelId(choice.modelId);
|
|
118
|
+
}
|
|
119
|
+
export function buildModelInvocationFromChoice(choice) {
|
|
120
|
+
const vendorModelId = getChoiceVendorModelId(choice);
|
|
121
|
+
const provider = choice.provider;
|
|
122
|
+
if (provider === "local") {
|
|
123
|
+
return {
|
|
124
|
+
direct: { provider: "local", modelId: vendorModelId },
|
|
125
|
+
openrouter: null,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (vendorModelId.startsWith("funcx:") ||
|
|
129
|
+
vendorModelId.startsWith("Xenova/")) {
|
|
130
|
+
return {
|
|
131
|
+
direct: { provider: "local", modelId: vendorModelId },
|
|
132
|
+
openrouter: null,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
const openRouterModelId = getChoiceOpenRouterModelId(choice);
|
|
136
|
+
return {
|
|
137
|
+
direct: { provider, modelId: vendorModelId },
|
|
138
|
+
openrouter: openRouterModelId
|
|
139
|
+
? { provider: "openrouter", modelId: openRouterModelId }
|
|
140
|
+
: null,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
export function getChoiceOpenRouterModelId(choice) {
|
|
144
|
+
const api = getChoiceApi(choice);
|
|
145
|
+
if (api?.openRouterModelId === null)
|
|
146
|
+
return null;
|
|
147
|
+
if (api?.openRouterModelId)
|
|
148
|
+
return api.openRouterModelId;
|
|
149
|
+
if (choice.metadata?.openRouter === "vendor-direct")
|
|
150
|
+
return null;
|
|
151
|
+
return openRouterSlugFor(choice.provider, getChoiceVendorModelId(choice));
|
|
152
|
+
}
|
|
153
|
+
export function getChoicePricing(choice) {
|
|
154
|
+
if (isV2Pricing(choice.pricing)) {
|
|
155
|
+
return flattenChoicePricing(choice.pricing);
|
|
156
|
+
}
|
|
157
|
+
return choice.pricing;
|
|
158
|
+
}
|
|
159
|
+
export function defaultFallbackOrder(profile) {
|
|
160
|
+
if (profile.fallbackChoiceOrder?.length) {
|
|
161
|
+
return profile.fallbackChoiceOrder;
|
|
162
|
+
}
|
|
163
|
+
return [
|
|
164
|
+
profile.defaultChoice,
|
|
165
|
+
...Object.keys(profile.choices).filter((k) => k !== profile.defaultChoice),
|
|
166
|
+
];
|
|
167
|
+
}
|
|
168
|
+
export function migrateModelsProfilesToV2(input, options) {
|
|
169
|
+
const lastVerifiedAt = options?.lastVerifiedAt ?? new Date().toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
170
|
+
const profiles = {};
|
|
171
|
+
for (const [profileKey, profile] of Object.entries(input.profiles)) {
|
|
172
|
+
const choices = {};
|
|
173
|
+
for (const [choiceKey, choice] of Object.entries(profile.choices)) {
|
|
174
|
+
const vendorModelId = fixVendorModelId(choice.modelId);
|
|
175
|
+
const isVendorDirect = choice.metadata?.openRouter === "vendor-direct" ||
|
|
176
|
+
choice.provider === "together";
|
|
177
|
+
const orSlug = isVendorDirect
|
|
178
|
+
? null
|
|
179
|
+
: openRouterSlugFor(choice.provider, vendorModelId);
|
|
180
|
+
const defaultTransport = choice.provider === "local"
|
|
181
|
+
? "direct"
|
|
182
|
+
: isVendorDirect
|
|
183
|
+
? "direct"
|
|
184
|
+
: (choice.runtime?.backend ?? "openrouter") === "openrouter"
|
|
185
|
+
? "openrouter"
|
|
186
|
+
: "direct";
|
|
187
|
+
const { pricing: _legacyPricing, ...choiceRest } = choice;
|
|
188
|
+
const migratedPricing = migrateFlatPricing(isV2Pricing(choice.pricing)
|
|
189
|
+
? flattenChoicePricing(choice.pricing)
|
|
190
|
+
: _legacyPricing, choice.provider);
|
|
191
|
+
choices[choiceKey] = {
|
|
192
|
+
...choiceRest,
|
|
193
|
+
modelId: vendorModelId,
|
|
194
|
+
api: {
|
|
195
|
+
defaultTransport,
|
|
196
|
+
vendorModelId,
|
|
197
|
+
openRouterModelId: orSlug,
|
|
198
|
+
},
|
|
199
|
+
pricing: migratedPricing,
|
|
200
|
+
verification: {
|
|
201
|
+
lastVerifiedAt,
|
|
202
|
+
sourceRefs: [`vendor:${choice.provider}`, "openrouter:catalog"],
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
if (choice.provider === "local" && choices[choiceKey].metadata) {
|
|
206
|
+
const meta = { ...choices[choiceKey].metadata };
|
|
207
|
+
if (choiceKey === "transformersjs_default" &&
|
|
208
|
+
meta.defaultModelId !== vendorModelId) {
|
|
209
|
+
meta.defaultModelId = vendorModelId;
|
|
210
|
+
}
|
|
211
|
+
choices[choiceKey].metadata = meta;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
if (profileKey === "deep" && choices.deepseek_pro?.pricing && isV2Pricing(choices.deepseek_pro.pricing)) {
|
|
215
|
+
choices.deepseek_pro.pricing.futureStandard = {
|
|
216
|
+
input: 0.14,
|
|
217
|
+
output: 0.28,
|
|
218
|
+
validUntil: "2026-05-31T15:59:00Z",
|
|
219
|
+
notes: "DeepSeek V4 Pro promotional pricing per provider docs.",
|
|
220
|
+
};
|
|
221
|
+
choices.deepseek_pro.pricing.priceStatus = "promotional";
|
|
222
|
+
}
|
|
223
|
+
profiles[profileKey] = {
|
|
224
|
+
...profile,
|
|
225
|
+
choices,
|
|
226
|
+
fallbackChoiceOrder: defaultFallbackOrder(profile),
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
return {
|
|
230
|
+
schema: "x12i.ai-profiles.model-registry.v2",
|
|
231
|
+
registryId: "models-profiles",
|
|
232
|
+
generatedAt: input.generatedAt ?? lastVerifiedAt,
|
|
233
|
+
lastVerifiedAt,
|
|
234
|
+
version: "2.0.0",
|
|
235
|
+
currency: "USD",
|
|
236
|
+
pricingUnit: "1M_tokens",
|
|
237
|
+
namingConvention: "lowerCamelCase",
|
|
238
|
+
semantics: {
|
|
239
|
+
provider: "Billing owner / vendor source of truth for the model SKU.",
|
|
240
|
+
modelId: "Canonical vendor-native model identifier for direct API calls.",
|
|
241
|
+
openRouterModelId: "Optional OpenRouter transport slug; use api.openRouterModelId at runtime when routing via OpenRouter.",
|
|
242
|
+
},
|
|
243
|
+
sourceCatalog: {
|
|
244
|
+
providers: [
|
|
245
|
+
{ id: "openai", docsUrl: "https://platform.openai.com/docs/models" },
|
|
246
|
+
{ id: "anthropic", docsUrl: "https://docs.anthropic.com/en/docs/about-claude/models" },
|
|
247
|
+
{ id: "google", docsUrl: "https://ai.google.dev/gemini-api/docs/models" },
|
|
248
|
+
{ id: "deepseek", docsUrl: "https://api-docs.deepseek.com" },
|
|
249
|
+
{ id: "xai", docsUrl: "https://docs.x.ai/docs/models" },
|
|
250
|
+
{ id: "together", docsUrl: "https://docs.together.ai/docs/serverless-models" },
|
|
251
|
+
],
|
|
252
|
+
modelsCatalogUrl: "https://open-assets.x12i.com/openrouter-models-catalog.json",
|
|
253
|
+
},
|
|
254
|
+
profiles,
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=profileRegistryV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profileRegistryV2.js","sourceRoot":"","sources":["../src/profileRegistryV2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AIProfileChoice, AIModelPricing, ModelsProfilesJson } from "./types.js";
|
|
2
|
+
import { getChoicePricing } from "./profileRegistryV2.js";
|
|
3
|
+
export declare const PREDICTED_VENDOR_MODEL_IDS: Set<string>;
|
|
4
|
+
export declare function isModelsProfilesV3(value: ModelsProfilesJson): boolean;
|
|
5
|
+
export declare function migrateModelsProfilesToV3(input: ModelsProfilesJson, options?: {
|
|
6
|
+
lastVerifiedAt?: string;
|
|
7
|
+
}): ModelsProfilesJson;
|
|
8
|
+
export declare function applyVerifiedProfileDefaults(input: ModelsProfilesJson): ModelsProfilesJson;
|
|
9
|
+
/** Resolve pricing: catalog-first at runtime; embedded profile pricing is legacy fallback only. */
|
|
10
|
+
export declare function resolveChoicePricing(choice: AIProfileChoice, catalogPricing?: AIModelPricing): ReturnType<typeof getChoicePricing>;
|
|
11
|
+
//# sourceMappingURL=profileRegistryV3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profileRegistryV3.d.ts","sourceRoot":"","sources":["../src/profileRegistryV3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EAGd,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAGL,gBAAgB,EAEjB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,0BAA0B,aAYrC,CAAC;AAiYH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAErE;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,EACzB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,kBAAkB,CAgFpB;AA8DD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,kBAAkB,GACxB,kBAAkB,CAqBpB;AAED,mGAAmG;AACnG,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,cAAc,GAC9B,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAKrC"}
|