prefer-inference-core 0.0.0-g0be6ef9

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 (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -0
  3. package/dist/catalog.d.ts +27 -0
  4. package/dist/catalog.d.ts.map +1 -0
  5. package/dist/catalog.js +547 -0
  6. package/dist/catalog.js.map +1 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +412 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/huggingface.d.ts +18 -0
  12. package/dist/huggingface.d.ts.map +1 -0
  13. package/dist/huggingface.js +296 -0
  14. package/dist/huggingface.js.map +1 -0
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +8 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/planning.d.ts +11 -0
  20. package/dist/planning.d.ts.map +1 -0
  21. package/dist/planning.js +610 -0
  22. package/dist/planning.js.map +1 -0
  23. package/dist/prefer.mjs +9493 -0
  24. package/dist/prefer.mjs.map +7 -0
  25. package/dist/releases.d.ts +33 -0
  26. package/dist/releases.d.ts.map +1 -0
  27. package/dist/releases.js +288 -0
  28. package/dist/releases.js.map +1 -0
  29. package/dist/resources.d.ts +10 -0
  30. package/dist/resources.d.ts.map +1 -0
  31. package/dist/resources.js +250 -0
  32. package/dist/resources.js.map +1 -0
  33. package/dist/types.d.ts +409 -0
  34. package/dist/types.d.ts.map +1 -0
  35. package/dist/types.js +2 -0
  36. package/dist/types.js.map +1 -0
  37. package/dist/utils.d.ts +20 -0
  38. package/dist/utils.d.ts.map +1 -0
  39. package/dist/utils.js +112 -0
  40. package/dist/utils.js.map +1 -0
  41. package/package.json +58 -0
  42. package/schemas/prefer-model-catalog-extension.schema.json +25 -0
  43. package/schemas/prefer-model-catalog.schema.json +54 -0
  44. package/schemas/prefer-model-plan.schema.json +115 -0
  45. package/schemas/prefer-resource-profile.schema.json +70 -0
package/dist/cli.js ADDED
@@ -0,0 +1,412 @@
1
+ #!/usr/bin/env node
2
+ import { resolve } from "node:path";
3
+ import { createCatalogExtension, detectRuntimeResources, downloadPreferTooling, listModelVariants, listPreferReleases, loadCatalogSources, modelRequestsFromDeployment, normalizeDeploymentResources, parseRepositorySelection, planModelSet, readJson, readModelCatalog, refreshModelCatalog, resolveModelVariant, validateModelCatalog, writeJsonAtomic } from "./index.js";
4
+ const [, , ...argv] = process.argv;
5
+ try {
6
+ await main(argv);
7
+ }
8
+ catch (error) {
9
+ process.stderr.write(`prefer: ${error instanceof Error ? error.message : String(error)}\n`);
10
+ process.exitCode = 1;
11
+ }
12
+ async function main(args) {
13
+ const [area, command, ...rest] = args;
14
+ if (!area || area === "help" || area === "--help" || area === "-h")
15
+ return help();
16
+ if (area === "catalog" && command === "refresh")
17
+ return refresh(rest);
18
+ if (area === "catalog" && command === "validate")
19
+ return validate(rest);
20
+ if (area === "catalog" && command === "extend")
21
+ return extend(rest);
22
+ if (area === "model" && command === "resolve")
23
+ return resolveModel(rest);
24
+ if (area === "model" && command === "list")
25
+ return listModels(rest);
26
+ if (area === "model" && command === "plan")
27
+ return planModels(rest);
28
+ if (area === "hardware" && command === "normalize")
29
+ return normalizeHardware(rest);
30
+ if (area === "hardware" && command === "detect")
31
+ return detectHardware(rest);
32
+ if (area === "release" && command === "list")
33
+ return listReleases(rest);
34
+ if (area === "release" && command === "fetch-tooling")
35
+ return fetchTooling(rest);
36
+ throw new Error(`unknown command ${[area, command].filter(Boolean).join(" ")}`);
37
+ }
38
+ async function refresh(args) {
39
+ const flags = parseFlags(args);
40
+ const source = one(flags, "source") ?? "catalog";
41
+ const output = one(flags, "output", true);
42
+ let previous;
43
+ const fallback = one(flags, "fallback");
44
+ if (fallback)
45
+ previous = await readModelCatalog(fallback);
46
+ const result = await refreshModelCatalog(source, {
47
+ previous,
48
+ token: token(flags, "hf-token-env", "HF_TOKEN"),
49
+ cacheDir: one(flags, "cache"),
50
+ concurrency: integer(flags, "concurrency", 4)
51
+ });
52
+ await writeJsonAtomic(output, result.catalog);
53
+ process.stdout.write(`${JSON.stringify({ output: resolve(output), reused_previous: result.reused_previous, catalog_fingerprint: result.catalog.catalog_fingerprint })}\n`);
54
+ }
55
+ async function validate(args) {
56
+ const flags = parseFlags(args);
57
+ const path = one(flags, "catalog", true);
58
+ const catalog = await readModelCatalog(path);
59
+ const source = one(flags, "source");
60
+ if (source) {
61
+ const sources = await loadCatalogSources(source);
62
+ if (catalog.source_fingerprint !== sources.source_fingerprint)
63
+ throw new Error("catalog does not match the authored source fingerprint");
64
+ }
65
+ validateModelCatalog(catalog);
66
+ process.stdout.write(`${JSON.stringify({ valid: true, catalog_fingerprint: catalog.catalog_fingerprint })}\n`);
67
+ }
68
+ async function extend(args) {
69
+ const flags = parseFlags(args);
70
+ const output = one(flags, "output", true);
71
+ const selections = many(flags, "repo").map((value) => parseRepositorySelection(value));
72
+ for (const value of many(flags, "model")) {
73
+ const split = value.indexOf("=");
74
+ if (split < 1)
75
+ throw new Error("--model must use model-id=owner/repository[@revision]");
76
+ selections.push({ ...parseRepositorySelection(value.slice(split + 1)), model_id: value.slice(0, split) });
77
+ }
78
+ if (!selections.length)
79
+ throw new Error("catalog extend requires at least one --repo or --model selection");
80
+ const extension = await createCatalogExtension(selections, {
81
+ token: token(flags, "hf-token-env", "HF_TOKEN"),
82
+ cacheDir: one(flags, "cache"),
83
+ preferCache: bool(flags, "prefer-cache"),
84
+ concurrency: integer(flags, "concurrency", 4)
85
+ });
86
+ await writeJsonAtomic(output, extension);
87
+ process.stdout.write(`${JSON.stringify({ output: resolve(output), repositories: Object.keys(extension.repositories).length, models: Object.keys(extension.models).length })}\n`);
88
+ }
89
+ async function resolveModel(args) {
90
+ const [modelId, ...tail] = args;
91
+ if (!modelId || modelId.startsWith("--"))
92
+ throw new Error("model resolve requires a PreFer model id");
93
+ const flags = parseFlags(tail);
94
+ const catalog = await readModelCatalog(one(flags, "catalog") ?? process.env.PREFER_MODEL_CATALOG ?? "/prefer-model-catalog.json");
95
+ const engine = one(flags, "engine") ?? process.env.PREFER_ENGINE;
96
+ if (!engine)
97
+ throw new Error("model resolve requires --engine outside a PreFer engine image");
98
+ const overrides = jsonObject(one(flags, "overrides") ?? "{}", "--overrides");
99
+ const result = resolveModelVariant(catalog, modelId, {
100
+ engine,
101
+ ...(one(flags, "repository") ? { repository: one(flags, "repository") } : {}),
102
+ ...(one(flags, "quant") ? { quant: one(flags, "quant") } : {}),
103
+ modelRoot: one(flags, "model-root") ?? process.env.PREFER_MODELS_DIR ?? "/models",
104
+ useNvfp4: bool(flags, "use-nvfp4") || environmentBoolean("USE_NVFP4"),
105
+ overrides
106
+ });
107
+ await outputJson(flags, result);
108
+ }
109
+ async function listModels(args) {
110
+ const flags = parseFlags(args);
111
+ const catalog = await readModelCatalog(one(flags, "catalog") ?? process.env.PREFER_MODEL_CATALOG ?? "/prefer-model-catalog.json");
112
+ const engine = one(flags, "engine") ?? process.env.PREFER_ENGINE;
113
+ const modelId = one(flags, "model");
114
+ const output = modelId
115
+ ? listModelVariants(catalog, modelId, engine)
116
+ : Object.values(catalog.models).map((model) => ({ id: model.id, family: model.family, display_name: model.display_name, aliases: model.aliases ?? [] }));
117
+ await outputJson(flags, output);
118
+ }
119
+ async function normalizeHardware(args) {
120
+ const flags = parseFlags(args);
121
+ const value = await deploymentInput(one(flags, "input", true), one(flags, "deployment"));
122
+ await outputJson(flags, normalizeDeploymentResources(value));
123
+ }
124
+ async function detectHardware(args) {
125
+ const flags = parseFlags(args);
126
+ const basePath = one(flags, "base");
127
+ const base = basePath
128
+ ? normalizeDeploymentResources(await deploymentInput(basePath, one(flags, "deployment")))
129
+ : undefined;
130
+ await outputJson(flags, await detectRuntimeResources({ ...(base ? { base } : {}) }));
131
+ }
132
+ async function planModels(args) {
133
+ const flags = parseFlags(args);
134
+ const catalog = await readModelCatalog(one(flags, "catalog") ?? process.env.PREFER_MODEL_CATALOG ?? "/prefer-model-catalog.json");
135
+ const engine = one(flags, "engine") ?? process.env.PREFER_ENGINE;
136
+ if (!engine)
137
+ throw new Error("model plan requires --engine outside a PreFer engine image");
138
+ const resourceValue = await deploymentInput(one(flags, "resources", true), one(flags, "deployment"));
139
+ let resources = normalizeDeploymentResources(resourceValue);
140
+ if (bool(flags, "detect"))
141
+ resources = await detectRuntimeResources({ base: resources });
142
+ const required = new Set(many(flags, "required-model"));
143
+ const speedScores = namedScores(flags, "speed-score");
144
+ const qualityScores = namedScores(flags, "quality-score");
145
+ const rawModels = [...many(flags, "model"), ...many(flags, "models").flatMap(commaList)];
146
+ const models = rawModels.map((value) => {
147
+ const separator = value.indexOf(":");
148
+ const modelId = separator > 0 ? value.slice(0, separator) : value;
149
+ const quant = separator > 0 ? value.slice(separator + 1) : undefined;
150
+ return {
151
+ model_id: modelId,
152
+ ...(quant ? { quant } : {}),
153
+ ...(required.has(modelId) ? { required: true } : {})
154
+ };
155
+ });
156
+ if (!models.length)
157
+ models.push(...modelRequestsFromDeployment(resourceValue));
158
+ if (!models.length)
159
+ throw new Error("model plan requires --model selections or a deployment containing models");
160
+ for (const model of models) {
161
+ if (required.has(model.model_id))
162
+ model.required = true;
163
+ const speedScore = speedScores.get(model.model_id);
164
+ const qualityScore = qualityScores.get(model.model_id);
165
+ if (speedScore !== undefined)
166
+ model.speed_score = speedScore;
167
+ if (qualityScore !== undefined)
168
+ model.quality_score = qualityScore;
169
+ }
170
+ for (const modelId of [...speedScores.keys(), ...qualityScores.keys()]) {
171
+ if (!models.some((model) => model.model_id === modelId))
172
+ throw new Error(`score supplied for unselected model ${modelId}`);
173
+ }
174
+ const floor = choice(flags, "quality-floor", ["reference", "near-lossless", "high", "deployment", "compromise", "fit-floor", "extreme", "unknown"]);
175
+ const quantBias = choice(flags, "quant-bias", ["quality", "balanced", "capacity"]);
176
+ const requiredCapabilities = many(flags, "required-capability").flatMap(commaList);
177
+ const preferredCapabilities = many(flags, "preferred-capability").flatMap(commaList);
178
+ const preferredRoles = many(flags, "preferred-role").flatMap(commaList);
179
+ const speedImportance = numberValue(flags, "speed-importance");
180
+ const qualityImportance = numberValue(flags, "quality-importance");
181
+ const desiredContext = positiveIntegerOptional(flags, "context-tokens");
182
+ const desiredConcurrency = positiveIntegerOptional(flags, "concurrency");
183
+ const bytesPerToken = numberValue(flags, "bytes-per-token");
184
+ const minimumContext = positiveIntegerOptional(flags, "minimum-context-tokens");
185
+ const minimumConcurrency = positiveIntegerOptional(flags, "minimum-concurrency");
186
+ const fixedDeviceBytes = integerOptional(flags, "fixed-device-bytes");
187
+ const workloadPriority = choice(flags, "workload-priority", ["context", "concurrency"]);
188
+ const workloadSource = choice(flags, "workload-source", ["measured", "architecture", "operator", "estimate"]);
189
+ const workloadSpecified = desiredContext !== undefined || desiredConcurrency !== undefined || bytesPerToken !== undefined
190
+ || minimumContext !== undefined || minimumConcurrency !== undefined || fixedDeviceBytes !== undefined
191
+ || workloadPriority !== undefined || workloadSource !== undefined;
192
+ if (workloadSpecified && (desiredContext === undefined || desiredConcurrency === undefined || bytesPerToken === undefined)) {
193
+ throw new Error("workload planning requires --context-tokens, --concurrency, and --bytes-per-token together");
194
+ }
195
+ const headroomPercent = numberValue(flags, "headroom-percent");
196
+ const headroomGiB = numberValue(flags, "headroom-gib");
197
+ if (headroomGiB !== undefined && (!Number.isFinite(headroomGiB) || headroomGiB < 0)) {
198
+ throw new Error("--headroom-gib must be non-negative");
199
+ }
200
+ const result = planModelSet(catalog, {
201
+ engine,
202
+ resources,
203
+ models,
204
+ use_nvfp4: bool(flags, "use-nvfp4") || environmentBoolean("USE_NVFP4"),
205
+ ...(floor ? { quality_floor: floor } : {}),
206
+ ...(integerOptional(flags, "max-models") !== undefined ? { max_models: integerOptional(flags, "max-models") } : {}),
207
+ ...(integerOptional(flags, "max-staged-bytes") !== undefined ? { max_staged_bytes: integerOptional(flags, "max-staged-bytes") } : {}),
208
+ accept_tight: bool(flags, "accept-tight"),
209
+ ...(requiredCapabilities.length || preferredCapabilities.length || preferredRoles.length || quantBias
210
+ || speedImportance !== undefined || qualityImportance !== undefined ? {
211
+ hints: {
212
+ ...(requiredCapabilities.length ? { required_capabilities: requiredCapabilities } : {}),
213
+ ...(preferredCapabilities.length ? { preferred_capabilities: preferredCapabilities } : {}),
214
+ ...(preferredRoles.length ? { preferred_roles: preferredRoles } : {}),
215
+ ...(speedImportance !== undefined ? { speed_importance: speedImportance } : {}),
216
+ ...(qualityImportance !== undefined ? { quality_importance: qualityImportance } : {}),
217
+ ...(quantBias ? { quant_bias: quantBias } : {})
218
+ }
219
+ } : {}),
220
+ ...(workloadSpecified ? {
221
+ workload: {
222
+ desired_context_tokens: desiredContext,
223
+ desired_concurrency: desiredConcurrency,
224
+ bytes_per_token: bytesPerToken,
225
+ ...(minimumContext !== undefined ? { minimum_context_tokens: minimumContext } : {}),
226
+ ...(minimumConcurrency !== undefined ? { minimum_concurrency: minimumConcurrency } : {}),
227
+ ...(fixedDeviceBytes !== undefined ? { fixed_device_bytes: fixedDeviceBytes } : {}),
228
+ ...(workloadPriority ? { priority: workloadPriority } : {}),
229
+ ...(workloadSource ? { source: workloadSource } : {})
230
+ }
231
+ } : {}),
232
+ fit: {
233
+ allow_host_offload: bool(flags, "allow-host-offload"),
234
+ allow_unknown_host_offload: bool(flags, "allow-host-offload"),
235
+ ...(headroomPercent !== undefined ? { headroom_fraction: headroomPercent / 100 } : {}),
236
+ ...(headroomGiB !== undefined ? {
237
+ minimum_headroom_bytes: Math.floor(headroomGiB * 1024 ** 3),
238
+ maximum_headroom_bytes: Math.floor(headroomGiB * 1024 ** 3)
239
+ } : {})
240
+ }
241
+ });
242
+ await outputJson(flags, result);
243
+ }
244
+ async function listReleases(args) {
245
+ const flags = parseFlags(args);
246
+ const repository = one(flags, "repository") ?? "cvalusek/PreFer";
247
+ const channel = (one(flags, "channel") ?? "stable");
248
+ if (channel !== "stable" && channel !== "preview")
249
+ throw new Error("--channel must be stable or preview");
250
+ const releases = await listPreferReleases(repository, {
251
+ channel,
252
+ limit: integer(flags, "limit", 20),
253
+ token: token(flags, "github-token-env", "GITHUB_TOKEN")
254
+ });
255
+ await outputJson(flags, releases.map(({ assets: _assets, ...release }) => release));
256
+ }
257
+ async function fetchTooling(args) {
258
+ const flags = parseFlags(args);
259
+ const channel = one(flags, "channel");
260
+ const outputDir = one(flags, "output-dir", true);
261
+ const result = await downloadPreferTooling({
262
+ repository: one(flags, "repository") ?? "cvalusek/PreFer",
263
+ ...(channel ? { channel } : {}),
264
+ ...(one(flags, "revision") ? { revision: one(flags, "revision") } : {}),
265
+ outputDir,
266
+ cacheDir: one(flags, "cache"),
267
+ token: token(flags, "github-token-env", "GITHUB_TOKEN")
268
+ });
269
+ process.stdout.write(`${JSON.stringify({ release: result.release, files: result.files })}\n`);
270
+ }
271
+ function parseFlags(args) {
272
+ const result = new Map();
273
+ for (let index = 0; index < args.length; index += 1) {
274
+ const raw = args[index];
275
+ if (!raw.startsWith("--"))
276
+ throw new Error(`unexpected argument ${raw}`);
277
+ const equals = raw.indexOf("=");
278
+ const key = raw.slice(2, equals > 0 ? equals : undefined);
279
+ const value = equals > 0 ? raw.slice(equals + 1) : args[index + 1]?.startsWith("--") === false ? args[++index] : "true";
280
+ result.set(key, [...(result.get(key) ?? []), value]);
281
+ }
282
+ return result;
283
+ }
284
+ function one(flags, key, required = false) {
285
+ const values = flags.get(key) ?? [];
286
+ if (values.length > 1)
287
+ throw new Error(`--${key} may only be supplied once`);
288
+ if (required && !values[0])
289
+ throw new Error(`--${key} is required`);
290
+ return values[0];
291
+ }
292
+ function many(flags, key) { return flags.get(key) ?? []; }
293
+ function namedScores(flags, key) {
294
+ const result = new Map();
295
+ for (const value of many(flags, key)) {
296
+ const separator = value.lastIndexOf("=");
297
+ if (separator < 1)
298
+ throw new Error(`--${key} must use model-id=0..100`);
299
+ const modelId = value.slice(0, separator);
300
+ const score = Number(value.slice(separator + 1));
301
+ if (!Number.isFinite(score) || score < 0 || score > 100)
302
+ throw new Error(`--${key} must use a score from 0 to 100`);
303
+ if (result.has(modelId))
304
+ throw new Error(`--${key} may only score ${modelId} once`);
305
+ result.set(modelId, score);
306
+ }
307
+ return result;
308
+ }
309
+ function choice(flags, key, allowed) {
310
+ const value = one(flags, key);
311
+ if (value === undefined)
312
+ return undefined;
313
+ if (!allowed.includes(value))
314
+ throw new Error(`--${key} must be one of ${allowed.join(", ")}`);
315
+ return value;
316
+ }
317
+ function integer(flags, key, fallback) {
318
+ const value = one(flags, key);
319
+ if (value === undefined)
320
+ return fallback;
321
+ const result = Number(value);
322
+ if (!Number.isInteger(result))
323
+ throw new Error(`--${key} must be an integer`);
324
+ return result;
325
+ }
326
+ function integerOptional(flags, key) {
327
+ const value = one(flags, key);
328
+ if (value === undefined)
329
+ return undefined;
330
+ const result = Number(value);
331
+ if (!Number.isSafeInteger(result) || result < 0)
332
+ throw new Error(`--${key} must be a non-negative safe integer`);
333
+ return result;
334
+ }
335
+ function positiveIntegerOptional(flags, key) {
336
+ const result = integerOptional(flags, key);
337
+ if (result === 0)
338
+ throw new Error(`--${key} must be greater than zero`);
339
+ return result;
340
+ }
341
+ function numberValue(flags, key) {
342
+ const value = one(flags, key);
343
+ if (value === undefined)
344
+ return undefined;
345
+ const result = Number(value);
346
+ if (!Number.isFinite(result))
347
+ throw new Error(`--${key} must be a number`);
348
+ return result;
349
+ }
350
+ function bool(flags, key) {
351
+ const value = one(flags, key);
352
+ return value === "true" || value === "1";
353
+ }
354
+ function environmentBoolean(name) {
355
+ const value = process.env[name]?.trim().toLowerCase();
356
+ return value === "1" || value === "true" || value === "yes" || value === "on";
357
+ }
358
+ function token(flags, key, fallbackName) {
359
+ const name = one(flags, key) ?? fallbackName;
360
+ return process.env[name]?.trim() || undefined;
361
+ }
362
+ function jsonObject(value, label) {
363
+ let parsed;
364
+ try {
365
+ parsed = JSON.parse(value);
366
+ }
367
+ catch {
368
+ throw new Error(`${label} must be valid JSON`);
369
+ }
370
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
371
+ throw new Error(`${label} must be a JSON object`);
372
+ return parsed;
373
+ }
374
+ async function outputJson(flags, value) {
375
+ const output = one(flags, "output");
376
+ if (output)
377
+ await writeJsonAtomic(output, value);
378
+ else
379
+ process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
380
+ }
381
+ async function deploymentInput(path, deploymentId) {
382
+ const value = await readJson(path);
383
+ if (!deploymentId)
384
+ return value;
385
+ if (!value || typeof value !== "object" || Array.isArray(value))
386
+ throw new Error(`${path} is not a deployment inventory`);
387
+ const deployments = value.deployments;
388
+ if (!Array.isArray(deployments))
389
+ throw new Error(`${path} does not contain deployments`);
390
+ const deployment = deployments.find((entry) => entry && typeof entry === "object" && !Array.isArray(entry) && entry.id === deploymentId);
391
+ if (!deployment)
392
+ throw new Error(`${path} does not contain deployment ${deploymentId}`);
393
+ return deployment;
394
+ }
395
+ function commaList(value) { return value.split(",").map((entry) => entry.trim()).filter(Boolean); }
396
+ function help() {
397
+ process.stdout.write(`PreFer catalog and release CLI\n\n` +
398
+ ` prefer catalog refresh --source catalog --output catalog.json [--fallback previous.json]\n` +
399
+ ` prefer catalog validate --catalog catalog.json [--source catalog]\n` +
400
+ ` prefer catalog extend --repo owner/model[@revision] --output extension.json\n` +
401
+ ` prefer model list [--catalog catalog.json] [--engine sglang] [--model qwen-3.8-27b]\n` +
402
+ ` prefer model resolve qwen-3.8-27b [--engine llama.cpp] [--quant ud-q6-k-xl] [--use-nvfp4] [--model-root /models]\n` +
403
+ ` prefer model plan --resources inventory.json --deployment aws/g6/xlarge/general [--preferred-role coding] [--speed-importance 0.8] [--quant-bias balanced]\n` +
404
+ ` [--speed-score qwen-3.8-27b=85 --quality-score qwen-3.8-27b=92 --quality-importance 1]\n` +
405
+ ` [--context-tokens 131072 --concurrency 4 --bytes-per-token 65536 --minimum-concurrency 1]\n` +
406
+ ` [--headroom-gib 2 | --headroom-percent 5] [--allow-host-offload] [--accept-tight]\n` +
407
+ ` prefer hardware normalize --input inventory.json [--deployment aws/g6/xlarge/general]\n` +
408
+ ` prefer hardware detect [--base inventory.json --deployment local/gb10/1x/balanced]\n` +
409
+ ` prefer release list [--channel stable|preview]\n` +
410
+ ` prefer release fetch-tooling --output-dir path [--channel stable|preview] [--revision SHA]\n`);
411
+ }
412
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CatalogExtension, HuggingFaceRepository, HuggingFaceSelection, ModelCatalogSnapshot, RuntimeModelCatalog } from "./types.js";
2
+ export interface HuggingFaceResolveOptions {
3
+ token?: string | undefined;
4
+ fetch?: typeof fetch | undefined;
5
+ apiBaseUrl?: string | undefined;
6
+ cacheDir?: string | undefined;
7
+ preferCache?: boolean | undefined;
8
+ concurrency?: number | undefined;
9
+ timeoutMs?: number | undefined;
10
+ now?: (() => Date) | undefined;
11
+ }
12
+ export declare function resolveHuggingFaceRepository(selection: HuggingFaceSelection, options?: HuggingFaceResolveOptions): Promise<HuggingFaceRepository>;
13
+ export declare function resolveHuggingFaceSelections(selections: HuggingFaceSelection[], options?: HuggingFaceResolveOptions): Promise<HuggingFaceRepository[]>;
14
+ export declare function createCatalogExtension(selections: HuggingFaceSelection[], options?: HuggingFaceResolveOptions): Promise<CatalogExtension>;
15
+ export declare function mergeCatalogExtensions(base: CatalogExtension, overlay: CatalogExtension, conflict?: "error" | "keep" | "replace"): CatalogExtension;
16
+ export declare function createRuntimeModelCatalog(base: ModelCatalogSnapshot, extensions?: CatalogExtension[], conflict?: "error" | "keep" | "replace"): RuntimeModelCatalog;
17
+ export declare function validateCatalogExtension(value: unknown): asserts value is CatalogExtension;
18
+ //# sourceMappingURL=huggingface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"huggingface.d.ts","sourceRoot":"","sources":["../src/huggingface.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAEhB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EAEpB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAChC;AAED,wBAAsB,4BAA4B,CAAC,SAAS,EAAE,oBAAoB,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA2E3J;AAED,wBAAsB,4BAA4B,CAAC,UAAU,EAAE,oBAAoB,EAAE,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA8BhK;AAED,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,oBAAoB,EAAE,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwBnJ;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,GAAE,OAAO,GAAG,MAAM,GAAG,SAAmB,GAAG,gBAAgB,CAmB5J;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,oBAAoB,EAC1B,UAAU,GAAE,gBAAgB,EAAO,EACnC,QAAQ,GAAE,OAAO,GAAG,MAAM,GAAG,SAAmB,GAC/C,mBAAmB,CAqCrB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAoB1F"}