lootforge 0.3.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/CHANGELOG.md +87 -0
- package/README.md +764 -0
- package/bin/lootforge.js +28 -0
- package/dist/benchmarks/coarseToFineCost.d.ts +21 -0
- package/dist/benchmarks/coarseToFineCost.js +49 -0
- package/dist/benchmarks/coarseToFineCost.js.map +1 -0
- package/dist/checks/boundaryMetrics.d.ts +12 -0
- package/dist/checks/boundaryMetrics.js +102 -0
- package/dist/checks/boundaryMetrics.js.map +1 -0
- package/dist/checks/candidateScore.d.ts +11 -0
- package/dist/checks/candidateScore.js +462 -0
- package/dist/checks/candidateScore.js.map +1 -0
- package/dist/checks/commandParser.d.ts +5 -0
- package/dist/checks/commandParser.js +99 -0
- package/dist/checks/commandParser.js.map +1 -0
- package/dist/checks/consistencyOutliers.d.ts +42 -0
- package/dist/checks/consistencyOutliers.js +156 -0
- package/dist/checks/consistencyOutliers.js.map +1 -0
- package/dist/checks/imageAcceptance.d.ts +67 -0
- package/dist/checks/imageAcceptance.js +967 -0
- package/dist/checks/imageAcceptance.js.map +1 -0
- package/dist/checks/packInvariants.d.ts +56 -0
- package/dist/checks/packInvariants.js +1064 -0
- package/dist/checks/packInvariants.js.map +1 -0
- package/dist/checks/softAdapters.d.ts +25 -0
- package/dist/checks/softAdapters.js +275 -0
- package/dist/checks/softAdapters.js.map +1 -0
- package/dist/checks/vlmGate.d.ts +8 -0
- package/dist/checks/vlmGate.js +200 -0
- package/dist/checks/vlmGate.js.map +1 -0
- package/dist/cli/commands/atlas.d.ts +5 -0
- package/dist/cli/commands/atlas.js +18 -0
- package/dist/cli/commands/atlas.js.map +1 -0
- package/dist/cli/commands/eval.d.ts +6 -0
- package/dist/cli/commands/eval.js +23 -0
- package/dist/cli/commands/eval.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +18 -0
- package/dist/cli/commands/generate.js +66 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +15 -0
- package/dist/cli/commands/init.js +146 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/package.d.ts +6 -0
- package/dist/cli/commands/package.js +27 -0
- package/dist/cli/commands/package.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +16 -0
- package/dist/cli/commands/plan.js +49 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/process.d.ts +14 -0
- package/dist/cli/commands/process.js +29 -0
- package/dist/cli/commands/process.js.map +1 -0
- package/dist/cli/commands/regenerate.d.ts +29 -0
- package/dist/cli/commands/regenerate.js +244 -0
- package/dist/cli/commands/regenerate.js.map +1 -0
- package/dist/cli/commands/review.d.ts +5 -0
- package/dist/cli/commands/review.js +18 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/select.d.ts +6 -0
- package/dist/cli/commands/select.js +21 -0
- package/dist/cli/commands/select.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +16 -0
- package/dist/cli/commands/serve.js +100 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +17 -0
- package/dist/cli/commands/validate.js +108 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +157 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/parseArgs.d.ts +3 -0
- package/dist/cli/parseArgs.js +37 -0
- package/dist/cli/parseArgs.js.map +1 -0
- package/dist/contracts/stageArtifacts.d.ts +4031 -0
- package/dist/contracts/stageArtifacts.js +663 -0
- package/dist/contracts/stageArtifacts.js.map +1 -0
- package/dist/manifest/load.d.ts +3 -0
- package/dist/manifest/load.js +50 -0
- package/dist/manifest/load.js.map +1 -0
- package/dist/manifest/normalize-palette.d.ts +17 -0
- package/dist/manifest/normalize-palette.js +235 -0
- package/dist/manifest/normalize-palette.js.map +1 -0
- package/dist/manifest/normalize-policy.d.ts +48 -0
- package/dist/manifest/normalize-policy.js +239 -0
- package/dist/manifest/normalize-policy.js.map +1 -0
- package/dist/manifest/normalize-prompt.d.ts +14 -0
- package/dist/manifest/normalize-prompt.js +73 -0
- package/dist/manifest/normalize-prompt.js.map +1 -0
- package/dist/manifest/normalize-target.d.ts +49 -0
- package/dist/manifest/normalize-target.js +542 -0
- package/dist/manifest/normalize-target.js.map +1 -0
- package/dist/manifest/schema.d.ts +7570 -0
- package/dist/manifest/schema.js +373 -0
- package/dist/manifest/schema.js.map +1 -0
- package/dist/manifest/semantic-validation.d.ts +4 -0
- package/dist/manifest/semantic-validation.js +526 -0
- package/dist/manifest/semantic-validation.js.map +1 -0
- package/dist/manifest/types.d.ts +263 -0
- package/dist/manifest/types.js +2 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/manifest/validate.d.ts +12 -0
- package/dist/manifest/validate.js +221 -0
- package/dist/manifest/validate.js.map +1 -0
- package/dist/output/assetPackManifest.d.ts +19 -0
- package/dist/output/assetPackManifest.js +20 -0
- package/dist/output/assetPackManifest.js.map +1 -0
- package/dist/output/catalog.d.ts +60 -0
- package/dist/output/catalog.js +107 -0
- package/dist/output/catalog.js.map +1 -0
- package/dist/output/contactSheet.d.ts +13 -0
- package/dist/output/contactSheet.js +124 -0
- package/dist/output/contactSheet.js.map +1 -0
- package/dist/output/phaserManifest.d.ts +8 -0
- package/dist/output/phaserManifest.js +25 -0
- package/dist/output/phaserManifest.js.map +1 -0
- package/dist/output/pixiManifest.d.ts +8 -0
- package/dist/output/pixiManifest.js +37 -0
- package/dist/output/pixiManifest.js.map +1 -0
- package/dist/output/provenance.d.ts +121 -0
- package/dist/output/provenance.js +10 -0
- package/dist/output/provenance.js.map +1 -0
- package/dist/output/runtimeManifests.d.ts +21 -0
- package/dist/output/runtimeManifests.js +82 -0
- package/dist/output/runtimeManifests.js.map +1 -0
- package/dist/output/unityImportManifest.d.ts +10 -0
- package/dist/output/unityImportManifest.js +58 -0
- package/dist/output/unityImportManifest.js.map +1 -0
- package/dist/output/zip.d.ts +5 -0
- package/dist/output/zip.js +68 -0
- package/dist/output/zip.js.map +1 -0
- package/dist/pipeline/atlas.d.ts +33 -0
- package/dist/pipeline/atlas.js +286 -0
- package/dist/pipeline/atlas.js.map +1 -0
- package/dist/pipeline/eval.d.ts +104 -0
- package/dist/pipeline/eval.js +246 -0
- package/dist/pipeline/eval.js.map +1 -0
- package/dist/pipeline/generate.d.ts +44 -0
- package/dist/pipeline/generate.js +1088 -0
- package/dist/pipeline/generate.js.map +1 -0
- package/dist/pipeline/package.d.ts +18 -0
- package/dist/pipeline/package.js +218 -0
- package/dist/pipeline/package.js.map +1 -0
- package/dist/pipeline/process.d.ts +15 -0
- package/dist/pipeline/process.js +776 -0
- package/dist/pipeline/process.js.map +1 -0
- package/dist/pipeline/review.d.ts +10 -0
- package/dist/pipeline/review.js +341 -0
- package/dist/pipeline/review.js.map +1 -0
- package/dist/pipeline/seamHeal.d.ts +2 -0
- package/dist/pipeline/seamHeal.js +70 -0
- package/dist/pipeline/seamHeal.js.map +1 -0
- package/dist/pipeline/select.d.ts +39 -0
- package/dist/pipeline/select.js +79 -0
- package/dist/pipeline/select.js.map +1 -0
- package/dist/providers/job.d.ts +29 -0
- package/dist/providers/job.js +113 -0
- package/dist/providers/job.js.map +1 -0
- package/dist/providers/localDiffusion.d.ts +28 -0
- package/dist/providers/localDiffusion.js +235 -0
- package/dist/providers/localDiffusion.js.map +1 -0
- package/dist/providers/nano.d.ts +36 -0
- package/dist/providers/nano.js +402 -0
- package/dist/providers/nano.js.map +1 -0
- package/dist/providers/openai.d.ts +37 -0
- package/dist/providers/openai.js +378 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/policy.d.ts +9 -0
- package/dist/providers/policy.js +192 -0
- package/dist/providers/policy.js.map +1 -0
- package/dist/providers/prompt.d.ts +3 -0
- package/dist/providers/prompt.js +63 -0
- package/dist/providers/prompt.js.map +1 -0
- package/dist/providers/registry.d.ts +24 -0
- package/dist/providers/registry.js +92 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/runtime.d.ts +15 -0
- package/dist/providers/runtime.js +101 -0
- package/dist/providers/runtime.js.map +1 -0
- package/dist/providers/runtimeConfig.d.ts +20 -0
- package/dist/providers/runtimeConfig.js +146 -0
- package/dist/providers/runtimeConfig.js.map +1 -0
- package/dist/providers/types-core.d.ts +514 -0
- package/dist/providers/types-core.js +60 -0
- package/dist/providers/types-core.js.map +1 -0
- package/dist/providers/types.d.ts +4 -0
- package/dist/providers/types.js +5 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/service/generationRequest.d.ts +58 -0
- package/dist/service/generationRequest.js +203 -0
- package/dist/service/generationRequest.js.map +1 -0
- package/dist/service/providerCapabilities.d.ts +40 -0
- package/dist/service/providerCapabilities.js +114 -0
- package/dist/service/providerCapabilities.js.map +1 -0
- package/dist/service/server.d.ts +31 -0
- package/dist/service/server.js +774 -0
- package/dist/service/server.js.map +1 -0
- package/dist/shared/errors.d.ts +13 -0
- package/dist/shared/errors.js +24 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/fs.d.ts +6 -0
- package/dist/shared/fs.js +30 -0
- package/dist/shared/fs.js.map +1 -0
- package/dist/shared/image.d.ts +25 -0
- package/dist/shared/image.js +136 -0
- package/dist/shared/image.js.map +1 -0
- package/dist/shared/paths.d.ts +30 -0
- package/dist/shared/paths.js +103 -0
- package/dist/shared/paths.js.map +1 -0
- package/dist/shared/schemas.d.ts +209 -0
- package/dist/shared/schemas.js +93 -0
- package/dist/shared/schemas.js.map +1 -0
- package/dist/shared/typeGuards.d.ts +1 -0
- package/dist/shared/typeGuards.js +4 -0
- package/dist/shared/typeGuards.js.map +1 -0
- package/dist/shared/zod.d.ts +1 -0
- package/dist/shared/zod.js +14 -0
- package/dist/shared/zod.js.map +1 -0
- package/dist/showcase/format.d.ts +9 -0
- package/dist/showcase/format.js +61 -0
- package/dist/showcase/format.js.map +1 -0
- package/dist/showcase/panelRenderer.d.ts +59 -0
- package/dist/showcase/panelRenderer.js +294 -0
- package/dist/showcase/panelRenderer.js.map +1 -0
- package/dist/showcase/releaseConfig.d.ts +233 -0
- package/dist/showcase/releaseConfig.js +75 -0
- package/dist/showcase/releaseConfig.js.map +1 -0
- package/dist/showcase/releaseEvidence.d.ts +25 -0
- package/dist/showcase/releaseEvidence.js +540 -0
- package/dist/showcase/releaseEvidence.js.map +1 -0
- package/dist/showcase/releaseEvidenceSchema.d.ts +1611 -0
- package/dist/showcase/releaseEvidenceSchema.js +165 -0
- package/dist/showcase/releaseEvidenceSchema.js.map +1 -0
- package/dist/showcase/scenarioRenderer.d.ts +19 -0
- package/dist/showcase/scenarioRenderer.js +488 -0
- package/dist/showcase/scenarioRenderer.js.map +1 -0
- package/docs/ADAPTER_CONTRACT.md +141 -0
- package/docs/ENGINE_TARGETING.md +86 -0
- package/docs/MANIFEST_POLICY_COVERAGE.md +130 -0
- package/docs/RELEASE_WORKFLOW.md +117 -0
- package/docs/ROADMAP.md +411 -0
- package/docs/ROADMAP_ISSUES.md +244 -0
- package/docs/SERVICE_MODE.md +137 -0
- package/docs/manifest-schema.md +254 -0
- package/package.json +70 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import process from "node:process";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
import { runAtlasCommand } from "./commands/atlas.js";
|
|
5
|
+
import { runEvalCommand } from "./commands/eval.js";
|
|
6
|
+
import { runGenerateCommand } from "./commands/generate.js";
|
|
7
|
+
import { runInitCommand } from "./commands/init.js";
|
|
8
|
+
import { runPackageCommand } from "./commands/package.js";
|
|
9
|
+
import { runPlanCommand } from "./commands/plan.js";
|
|
10
|
+
import { runProcessCommand } from "./commands/process.js";
|
|
11
|
+
import { runRegenerateCommand } from "./commands/regenerate.js";
|
|
12
|
+
import { runReviewCommand } from "./commands/review.js";
|
|
13
|
+
import { runSelectCommand } from "./commands/select.js";
|
|
14
|
+
import { runServeCommand } from "./commands/serve.js";
|
|
15
|
+
import { runValidateCommand } from "./commands/validate.js";
|
|
16
|
+
import { getErrorExitCode, getErrorMessage } from "../shared/errors.js";
|
|
17
|
+
export async function main(argv) {
|
|
18
|
+
const [command, ...rest] = argv;
|
|
19
|
+
if (!command || isHelpFlag(command)) {
|
|
20
|
+
writeUsage("stdout");
|
|
21
|
+
return 0;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
if (command === "init") {
|
|
25
|
+
const result = await runInitCommand(rest);
|
|
26
|
+
process.stdout.write(`Initialized ${result.imagegenDir} (manifest ${result.manifestCreated ? "created" : "kept"}).\n`);
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
if (command === "plan") {
|
|
30
|
+
const result = await runPlanCommand(rest);
|
|
31
|
+
process.stdout.write(`Planned ${result.targets} target(s) -> ${result.targetsIndexPath}.\n`);
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
if (command === "validate") {
|
|
35
|
+
const result = await runValidateCommand(rest);
|
|
36
|
+
process.stdout.write(`Validation ${result.report.ok ? "passed" : "failed"} (${result.report.errors} error(s), ${result.report.warnings} warning(s)) -> ${result.reportPath}.\n`);
|
|
37
|
+
return result.exitCode;
|
|
38
|
+
}
|
|
39
|
+
if (command === "generate") {
|
|
40
|
+
const result = await runGenerateCommand(rest);
|
|
41
|
+
process.stdout.write(`Generated ${result.jobs} job(s). Run ${result.runId} -> ${result.provenancePath}.\n`);
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
if (command === "process") {
|
|
45
|
+
const result = await runProcessCommand(rest);
|
|
46
|
+
process.stdout.write(`Processed ${result.processedCount} asset(s) (${result.variantCount} variant(s)) -> ${result.catalogPath}\nChecks: ${result.acceptanceReportPath}\n`);
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
if (command === "regenerate") {
|
|
50
|
+
const result = await runRegenerateCommand(rest);
|
|
51
|
+
process.stdout.write(`Regenerated ${result.jobs} job(s) for ${result.targetsRegenerated.length} target(s). Run ${result.runId} -> ${result.provenancePath}.\n`);
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
if (command === "eval") {
|
|
55
|
+
const result = await runEvalCommand(rest);
|
|
56
|
+
process.stdout.write(`Evaluated ${result.targetCount} target(s), failed ${result.failed} -> ${result.reportPath}\n`);
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
59
|
+
if (command === "review") {
|
|
60
|
+
const result = await runReviewCommand(rest);
|
|
61
|
+
process.stdout.write(`Review HTML written for ${result.targetCount} target(s) -> ${result.reviewHtmlPath}\n`);
|
|
62
|
+
return 0;
|
|
63
|
+
}
|
|
64
|
+
if (command === "select") {
|
|
65
|
+
const result = await runSelectCommand(rest);
|
|
66
|
+
process.stdout.write(`Selection lock written -> ${result.selectionLockPath} (${result.approvedTargets}/${result.totalTargets} approved)\n`);
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
if (command === "atlas") {
|
|
70
|
+
const result = await runAtlasCommand(rest);
|
|
71
|
+
process.stdout.write(`Atlas manifest written -> ${result.manifestPath} (${result.bundles} bundle(s)).\n`);
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
if (command === "package") {
|
|
75
|
+
const result = await runPackageCommand(rest);
|
|
76
|
+
process.stdout.write(`Packaged ${result.packId} -> ${result.packDir}\nArchive: ${result.zipPath}\n`);
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
79
|
+
if (command === "serve") {
|
|
80
|
+
const result = await runServeCommand(rest);
|
|
81
|
+
process.stdout.write(`Service mode listening on ${result.url} (API ${result.apiVersion}, max active jobs: ${result.maxActiveJobs})${result.defaultOutDir ? `, default out: ${result.defaultOutDir}` : ""}\n`);
|
|
82
|
+
return 0;
|
|
83
|
+
}
|
|
84
|
+
process.stderr.write(`lootforge: unknown command "${command}"\n`);
|
|
85
|
+
writeUsage("stderr");
|
|
86
|
+
return 1;
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
process.stderr.write(`lootforge: ${getErrorMessage(error)}\n`);
|
|
90
|
+
return getErrorExitCode(error, 1);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function writeUsage(stream) {
|
|
94
|
+
const output = stream === "stderr" ? process.stderr : process.stdout;
|
|
95
|
+
output.write([
|
|
96
|
+
"Usage: lootforge <command> [options]",
|
|
97
|
+
"",
|
|
98
|
+
"Commands:",
|
|
99
|
+
" init Scaffold assets/imagegen + manifest.json",
|
|
100
|
+
" plan Validate manifest and write jobs outputs",
|
|
101
|
+
" validate Validate manifest and write report",
|
|
102
|
+
" generate Execute generation pipeline from targets index",
|
|
103
|
+
" regenerate Re-run selected lock-approved targets (supports --edit flow)",
|
|
104
|
+
" process Post-process raw assets into processed runtime outputs",
|
|
105
|
+
" eval Run hard/soft quality evaluation over processed outputs",
|
|
106
|
+
" review Build HTML review artifact from eval report",
|
|
107
|
+
" select Build selection lockfile from eval + provenance",
|
|
108
|
+
" atlas Build atlas outputs and atlas manifest",
|
|
109
|
+
" package Assemble distributable asset-pack artifacts",
|
|
110
|
+
" serve Start optional HTTP service mode for pipeline commands",
|
|
111
|
+
"",
|
|
112
|
+
"Options:",
|
|
113
|
+
" --manifest <path> Manifest path (default assets/imagegen/manifest.json)",
|
|
114
|
+
" --out <dir> Output directory for command artifacts",
|
|
115
|
+
" --index <path> Optional targets index path override",
|
|
116
|
+
" --strict <true|false> Validate strict mode (non-zero on errors)",
|
|
117
|
+
" --check-images <true|false> Validate processed image acceptance during validate",
|
|
118
|
+
" --provider <name> Provider selection for generate (openai|nano|local|auto)",
|
|
119
|
+
" --ids <a,b,c> Optional target id filter for generate",
|
|
120
|
+
" --lock <path> Selection lock file path (generate/select)",
|
|
121
|
+
" --skip-locked <true|false> Skip regeneration for approved locked targets",
|
|
122
|
+
" --edit <true|false> Force edit-first regenerate mode (default true)",
|
|
123
|
+
" --instruction <text> Optional edit instruction override for regenerate --edit",
|
|
124
|
+
" --preserve-composition <true|false> Preserve composition during regenerate --edit (default true)",
|
|
125
|
+
" --images-dir <path> Processed images directory override for eval/validate",
|
|
126
|
+
" --report <path> Eval report output path override",
|
|
127
|
+
" --eval <path> Eval report path for review/select",
|
|
128
|
+
" --provenance <path> Provenance run path for select",
|
|
129
|
+
" --html <path> Review HTML output path override",
|
|
130
|
+
" --runtimes <a,b,c> Extra runtime manifests for package (phaser,pixi,unity)",
|
|
131
|
+
" --host <host> Service bind host for serve (default 127.0.0.1)",
|
|
132
|
+
" --port <port> Service bind port for serve (default 8744)",
|
|
133
|
+
" --max-active-jobs <number> Service max concurrent active tool jobs (default 2)",
|
|
134
|
+
"",
|
|
135
|
+
].join("\n"));
|
|
136
|
+
}
|
|
137
|
+
function isHelpFlag(value) {
|
|
138
|
+
return value === "help" || value === "--help" || value === "-h";
|
|
139
|
+
}
|
|
140
|
+
function isDirectExecution() {
|
|
141
|
+
const argvEntry = process.argv[1];
|
|
142
|
+
if (!argvEntry) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
return pathToFileURL(path.resolve(argvEntry)).href === import.meta.url;
|
|
146
|
+
}
|
|
147
|
+
if (isDirectExecution()) {
|
|
148
|
+
main(process.argv.slice(2))
|
|
149
|
+
.then((exitCode) => {
|
|
150
|
+
process.exitCode = exitCode;
|
|
151
|
+
})
|
|
152
|
+
.catch((error) => {
|
|
153
|
+
process.stderr.write(`lootforge: ${getErrorMessage(error)}\n`);
|
|
154
|
+
process.exitCode = getErrorExitCode(error, 1);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAEhC,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,MAAM,CAAC,WAAW,cAAc,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,MAAM,CACjG,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,OAAO,iBAAiB,MAAM,CAAC,gBAAgB,KAAK,CAAC,CAAC;YAC7F,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,cAAc,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,MAAM,CAAC,QAAQ,mBAAmB,MAAM,CAAC,UAAU,KAAK,CAC3J,CAAC;YACF,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,MAAM,CAAC,IAAI,gBAAgB,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,cAAc,KAAK,CACtF,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,MAAM,CAAC,cAAc,cAAc,MAAM,CAAC,YAAY,mBAAmB,MAAM,CAAC,WAAW,aAAa,MAAM,CAAC,oBAAoB,IAAI,CACrJ,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,MAAM,CAAC,IAAI,eAAe,MAAM,CAAC,kBAAkB,CAAC,MAAM,mBAAmB,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,cAAc,KAAK,CAC1I,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,MAAM,CAAC,WAAW,sBAAsB,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,UAAU,IAAI,CAC/F,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2BAA2B,MAAM,CAAC,WAAW,iBAAiB,MAAM,CAAC,cAAc,IAAI,CACxF,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,MAAM,CAAC,iBAAiB,KAAK,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,YAAY,cAAc,CACtH,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,OAAO,gBAAgB,CACpF,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,OAAO,cAAc,MAAM,CAAC,OAAO,IAAI,CAC/E,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,MAAM,CAAC,GAAG,SAAS,MAAM,CAAC,UAAU,sBAAsB,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CACxL,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,OAAO,KAAK,CAAC,CAAC;QAClE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAA2B;IAC7C,MAAM,MAAM,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACrE,MAAM,CAAC,KAAK,CACV;QACE,sCAAsC;QACtC,EAAE;QACF,WAAW;QACX,yEAAyE;QACzE,yEAAyE;QACzE,mEAAmE;QACnE,+EAA+E;QAC/E,6FAA6F;QAC7F,uFAAuF;QACvF,wFAAwF;QACxF,4EAA4E;QAC5E,gFAAgF;QAChF,uEAAuE;QACvE,4EAA4E;QAC5E,uFAAuF;QACvF,EAAE;QACF,UAAU;QACV,sFAAsF;QACtF,uEAAuE;QACvE,qEAAqE;QACrE,0EAA0E;QAC1E,oFAAoF;QACpF,yFAAyF;QACzF,uEAAuE;QACvE,2EAA2E;QAC3E,8EAA8E;QAC9E,gFAAgF;QAChF,yFAAyF;QACzF,qGAAqG;QACrG,sFAAsF;QACtF,iEAAiE;QACjE,mEAAmE;QACnE,+DAA+D;QAC/D,iEAAiE;QACjE,wFAAwF;QACxF,gFAAgF;QAChF,2EAA2E;QAC3E,oFAAoF;QACpF,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACzE,CAAC;AAED,IAAI,iBAAiB,EAAE,EAAE,CAAC;IACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACxB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { CliError } from "../shared/errors.js";
|
|
2
|
+
export function readRequiredArgValue(argv, name, usage) {
|
|
3
|
+
const value = readArgValue(argv, name);
|
|
4
|
+
if (value === undefined) {
|
|
5
|
+
const message = usage ? `Missing required --${name}.\n${usage}` : `Missing required --${name}.`;
|
|
6
|
+
throw new CliError(message, { code: "missing_required_arg", exitCode: 1 });
|
|
7
|
+
}
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
export function readArgValue(argv, name) {
|
|
11
|
+
const exact = `--${name}`;
|
|
12
|
+
const prefix = `--${name}=`;
|
|
13
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
14
|
+
const arg = argv[index];
|
|
15
|
+
if (arg.startsWith(prefix)) {
|
|
16
|
+
return arg.slice(prefix.length);
|
|
17
|
+
}
|
|
18
|
+
if (arg === exact) {
|
|
19
|
+
return argv[index + 1];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
export function parseBooleanArg(value, flagName) {
|
|
25
|
+
const normalized = value.trim().toLowerCase();
|
|
26
|
+
if (["true", "1", "yes", "y"].includes(normalized)) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
if (["false", "0", "no", "n"].includes(normalized)) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
throw new CliError(`Invalid boolean value "${value}" for ${flagName}. Use true or false.`, {
|
|
33
|
+
code: "invalid_boolean_flag",
|
|
34
|
+
exitCode: 1,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=parseArgs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseArgs.js","sourceRoot":"","sources":["../../src/cli/parseArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,UAAU,oBAAoB,CAAC,IAAc,EAAE,IAAY,EAAE,KAAc;IAC/E,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,sBAAsB,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,IAAI,GAAG,CAAC;QAChG,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,IAAY;IACvD,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,KAAK,IAAI,GAAG,CAAC;IAE5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,QAAgB;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,QAAQ,CAAC,0BAA0B,KAAK,SAAS,QAAQ,sBAAsB,EAAE;QACzF,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;AACL,CAAC"}
|