@tiangong-lca/cli 0.0.6 → 0.0.8
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 +154 -30
- package/dist/src/cli.js +2235 -149
- package/dist/src/cli.js.map +1 -1
- package/dist/src/lib/dataset-author.js +100 -0
- package/dist/src/lib/dataset-author.js.map +1 -0
- package/dist/src/lib/dataset-bilingual.js +545 -0
- package/dist/src/lib/dataset-bilingual.js.map +1 -0
- package/dist/src/lib/dataset-contract.js +350 -0
- package/dist/src/lib/dataset-contract.js.map +1 -0
- package/dist/src/lib/dataset-evidence-search.js +636 -0
- package/dist/src/lib/dataset-evidence-search.js.map +1 -0
- package/dist/src/lib/dataset-import-lca.js +171 -0
- package/dist/src/lib/dataset-import-lca.js.map +1 -0
- package/dist/src/lib/dataset-local.js +231 -0
- package/dist/src/lib/dataset-local.js.map +1 -0
- package/dist/src/lib/dataset-references-rewrite.js +214 -0
- package/dist/src/lib/dataset-references-rewrite.js.map +1 -0
- package/dist/src/lib/dataset-remote-refresh.js +166 -0
- package/dist/src/lib/dataset-remote-refresh.js.map +1 -0
- package/dist/src/lib/dataset-remote-verify.js +543 -0
- package/dist/src/lib/dataset-remote-verify.js.map +1 -0
- package/dist/src/lib/dataset-validate.js +247 -0
- package/dist/src/lib/dataset-validate.js.map +1 -0
- package/dist/src/lib/flow-payload-validation.js +51 -0
- package/dist/src/lib/flow-payload-validation.js.map +1 -0
- package/dist/src/lib/flow-publish-reviewed-data.js +16 -0
- package/dist/src/lib/flow-publish-reviewed-data.js.map +1 -1
- package/dist/src/lib/flow-publish-version.js +182 -12
- package/dist/src/lib/flow-publish-version.js.map +1 -1
- package/dist/src/lib/flow-regen-product.js +2 -10
- package/dist/src/lib/flow-regen-product.js.map +1 -1
- package/dist/src/lib/flow-remediate.js +4 -8
- package/dist/src/lib/flow-remediate.js.map +1 -1
- package/dist/src/lib/identity-preflight.js +1021 -0
- package/dist/src/lib/identity-preflight.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-auto-build.js +11 -8
- package/dist/src/lib/lifecyclemodel-auto-build.js.map +1 -1
- package/dist/src/lib/lifecyclemodel-graph.js +248 -0
- package/dist/src/lib/lifecyclemodel-graph.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-publish-build.js +1 -1
- package/dist/src/lib/lifecyclemodel-publish-build.js.map +1 -1
- package/dist/src/lib/lifecyclemodel-save-draft-run.js +245 -0
- package/dist/src/lib/lifecyclemodel-save-draft-run.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-validate-build.js +1 -1
- package/dist/src/lib/lifecyclemodel-validate-build.js.map +1 -1
- package/dist/src/lib/process-auto-build.js +158 -8
- package/dist/src/lib/process-auto-build.js.map +1 -1
- package/dist/src/lib/process-batch-build.js +6 -3
- package/dist/src/lib/process-batch-build.js.map +1 -1
- package/dist/src/lib/process-dedup-review.js +921 -0
- package/dist/src/lib/process-dedup-review.js.map +1 -0
- package/dist/src/lib/process-flow-build-plan.js +1071 -0
- package/dist/src/lib/process-flow-build-plan.js.map +1 -0
- package/dist/src/lib/process-payload-validation.js +57 -0
- package/dist/src/lib/process-payload-validation.js.map +1 -0
- package/dist/src/lib/process-publish-build.js +126 -10
- package/dist/src/lib/process-publish-build.js.map +1 -1
- package/dist/src/lib/process-refresh-references.js +1037 -0
- package/dist/src/lib/process-refresh-references.js.map +1 -0
- package/dist/src/lib/process-required-fields.js +810 -0
- package/dist/src/lib/process-required-fields.js.map +1 -0
- package/dist/src/lib/process-resume-build.js +4 -6
- package/dist/src/lib/process-resume-build.js.map +1 -1
- package/dist/src/lib/process-save-draft-run.js +35 -13
- package/dist/src/lib/process-save-draft-run.js.map +1 -1
- package/dist/src/lib/process-scope-statistics.js +859 -0
- package/dist/src/lib/process-scope-statistics.js.map +1 -0
- package/dist/src/lib/process-verify-rows.js +250 -0
- package/dist/src/lib/process-verify-rows.js.map +1 -0
- package/dist/src/lib/publish.js +101 -1
- package/dist/src/lib/publish.js.map +1 -1
- package/dist/src/lib/remote.js +4 -4
- package/dist/src/lib/remote.js.map +1 -1
- package/dist/src/lib/review-flow.js +58 -0
- package/dist/src/lib/review-flow.js.map +1 -1
- package/dist/src/lib/review-lifecyclemodel.js +2 -2
- package/dist/src/lib/review-lifecyclemodel.js.map +1 -1
- package/dist/src/lib/review-process.js +150 -2
- package/dist/src/lib/review-process.js.map +1 -1
- package/dist/src/lib/runtime-rulesets.js +283 -0
- package/dist/src/lib/runtime-rulesets.js.map +1 -0
- package/dist/src/lib/tidas-sdk-package-validator.js +28 -9
- package/dist/src/lib/tidas-sdk-package-validator.js.map +1 -1
- package/dist/src/lib/tidas-sdk-validation.js +96 -0
- package/dist/src/lib/tidas-sdk-validation.js.map +1 -0
- package/dist/src/lib/user-api-key.js +1 -1
- package/dist/src/lib/user-api-key.js.map +1 -1
- package/package.json +5 -5
- /package/bin/{tiangong.d.ts → tiangong-lca.d.ts} +0 -0
- /package/bin/{tiangong.js → tiangong-lca.js} +0 -0
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseArgs } from 'node:util';\nimport { buildDoctorReport, readRuntimeEnv } from './lib/env.js';\nimport type { DotEnvLoadResult } from './lib/dotenv.js';\nimport { CliError, toErrorPayload } from './lib/errors.js';\nimport type { FetchLike } from './lib/http.js';\nimport { stringifyJson } from './lib/io.js';\nimport { loadCliPackageVersion } from './lib/package-version.js';\nimport {\n runLifecyclemodelAutoBuild,\n type LifecyclemodelAutoBuildReport,\n type RunLifecyclemodelAutoBuildOptions,\n} from './lib/lifecyclemodel-auto-build.js';\nimport {\n runLifecyclemodelBuildResultingProcess,\n type LifecyclemodelResultingProcessReport,\n type RunLifecyclemodelResultingProcessOptions,\n} from './lib/lifecyclemodel-resulting-process.js';\nimport {\n runLifecyclemodelPublishResultingProcess,\n type LifecyclemodelPublishResultingProcessReport,\n type RunLifecyclemodelPublishResultingProcessOptions,\n} from './lib/lifecyclemodel-publish-resulting-process.js';\nimport {\n runLifecyclemodelValidateBuild,\n type LifecyclemodelValidateBuildReport,\n type RunLifecyclemodelValidateBuildOptions,\n} from './lib/lifecyclemodel-validate-build.js';\nimport {\n runLifecyclemodelPublishBuild,\n type LifecyclemodelPublishBuildReport,\n type RunLifecyclemodelPublishBuildOptions,\n} from './lib/lifecyclemodel-publish-build.js';\nimport {\n runLifecyclemodelOrchestrate,\n type LifecyclemodelOrchestrateReport,\n type RunLifecyclemodelOrchestrateOptions,\n} from './lib/lifecyclemodel-orchestrate.js';\nimport {\n runProcessAutoBuild,\n type ProcessAutoBuildReport,\n type RunProcessAutoBuildOptions,\n} from './lib/process-auto-build.js';\nimport {\n runProcessGet,\n type ProcessGetReport,\n type RunProcessGetOptions,\n} from './lib/process-get.js';\nimport {\n runProcessList,\n type ProcessListReport,\n type RunProcessListOptions,\n} from './lib/process-list.js';\nimport {\n runProcessBatchBuild,\n type ProcessBatchBuildReport,\n type RunProcessBatchBuildOptions,\n} from './lib/process-batch-build.js';\nimport {\n runProcessResumeBuild,\n type ProcessResumeBuildReport,\n type RunProcessResumeBuildOptions,\n} from './lib/process-resume-build.js';\nimport {\n runProcessPublishBuild,\n type ProcessPublishBuildReport,\n type RunProcessPublishBuildOptions,\n} from './lib/process-publish-build.js';\nimport {\n runProcessSaveDraft,\n type ProcessSaveDraftReport,\n type RunProcessSaveDraftOptions,\n} from './lib/process-save-draft-run.js';\nimport { runPublish, type PublishReport, type RunPublishOptions } from './lib/publish.js';\nimport {\n runProcessReview,\n type ProcessReviewReport,\n type RunProcessReviewOptions,\n} from './lib/review-process.js';\nimport {\n runFlowReview,\n type FlowReviewReport,\n type RunFlowReviewOptions,\n} from './lib/review-flow.js';\nimport {\n runLifecyclemodelReview,\n type LifecyclemodelReviewReport,\n type RunLifecyclemodelReviewOptions,\n} from './lib/review-lifecyclemodel.js';\nimport {\n runFlowRemediate,\n type FlowRemediationReport,\n type RunFlowRemediateOptions,\n} from './lib/flow-remediate.js';\nimport {\n runFlowFetchRows,\n type FlowFetchRowsReport,\n type RunFlowFetchRowsOptions,\n} from './lib/flow-fetch-rows.js';\nimport {\n runFlowMaterializeDecisions,\n type FlowMaterializeDecisionsReport,\n type RunFlowMaterializeDecisionsOptions,\n} from './lib/flow-materialize-decisions.js';\nimport { runFlowGet, type FlowGetReport, type RunFlowGetOptions } from './lib/flow-get.js';\nimport { runFlowList, type FlowListReport, type RunFlowListOptions } from './lib/flow-list.js';\nimport {\n runFlowPublishVersion,\n type FlowPublishVersionReport,\n type RunFlowPublishVersionOptions,\n} from './lib/flow-publish-version.js';\nimport {\n runFlowReviewedPublishData,\n type FlowReviewedPublishDataReport,\n type RunFlowReviewedPublishDataOptions,\n} from './lib/flow-publish-reviewed-data.js';\nimport {\n runFlowBuildAliasMap,\n type FlowBuildAliasMapReport,\n type RunFlowBuildAliasMapOptions,\n} from './lib/flow-build-alias-map.js';\nimport {\n runFlowApplyProcessFlowRepairs,\n runFlowPlanProcessFlowRepairs,\n runFlowRegenProduct,\n runFlowScanProcessFlowRefs,\n runFlowValidateProcesses,\n type FlowApplyProcessFlowRepairsReport,\n type FlowPlanProcessFlowRepairsReport,\n type FlowRegenProductReport,\n type FlowScanProcessFlowRefsReport,\n type FlowValidateProcessesReport,\n type RunFlowApplyProcessFlowRepairsOptions,\n type RunFlowPlanProcessFlowRepairsOptions,\n type RunFlowRegenProductOptions,\n type RunFlowScanProcessFlowRefsOptions,\n type RunFlowValidateProcessesOptions,\n} from './lib/flow-regen-product.js';\nimport { executeRemoteCommand, getRemoteCommandHelp } from './lib/remote.js';\nimport {\n runValidation,\n type RunValidationOptions,\n type ValidationRunReport,\n} from './lib/validation.js';\n\nexport type CliDeps = {\n env: NodeJS.ProcessEnv;\n dotEnvStatus: DotEnvLoadResult;\n fetchImpl: FetchLike;\n runPublishImpl?: (options: RunPublishOptions) => Promise<PublishReport>;\n runValidationImpl?: (options: RunValidationOptions) => Promise<ValidationRunReport>;\n runLifecyclemodelAutoBuildImpl?: (\n options: RunLifecyclemodelAutoBuildOptions,\n ) => Promise<LifecyclemodelAutoBuildReport>;\n runLifecyclemodelBuildResultingProcessImpl?: (\n options: RunLifecyclemodelResultingProcessOptions,\n ) => Promise<LifecyclemodelResultingProcessReport>;\n runLifecyclemodelPublishResultingProcessImpl?: (\n options: RunLifecyclemodelPublishResultingProcessOptions,\n ) => Promise<LifecyclemodelPublishResultingProcessReport>;\n runLifecyclemodelValidateBuildImpl?: (\n options: RunLifecyclemodelValidateBuildOptions,\n ) => Promise<LifecyclemodelValidateBuildReport>;\n runLifecyclemodelPublishBuildImpl?: (\n options: RunLifecyclemodelPublishBuildOptions,\n ) => Promise<LifecyclemodelPublishBuildReport>;\n runLifecyclemodelOrchestrateImpl?: (\n options: RunLifecyclemodelOrchestrateOptions,\n ) => Promise<LifecyclemodelOrchestrateReport>;\n runProcessGetImpl?: (options: RunProcessGetOptions) => Promise<ProcessGetReport>;\n runProcessListImpl?: (options: RunProcessListOptions) => Promise<ProcessListReport>;\n runProcessAutoBuildImpl?: (\n options: RunProcessAutoBuildOptions,\n ) => Promise<ProcessAutoBuildReport>;\n runProcessBatchBuildImpl?: (\n options: RunProcessBatchBuildOptions,\n ) => Promise<ProcessBatchBuildReport>;\n runProcessResumeBuildImpl?: (\n options: RunProcessResumeBuildOptions,\n ) => Promise<ProcessResumeBuildReport>;\n runProcessPublishBuildImpl?: (\n options: RunProcessPublishBuildOptions,\n ) => Promise<ProcessPublishBuildReport>;\n runProcessSaveDraftImpl?: (\n options: RunProcessSaveDraftOptions,\n ) => Promise<ProcessSaveDraftReport>;\n runProcessReviewImpl?: (options: RunProcessReviewOptions) => Promise<ProcessReviewReport>;\n runFlowReviewImpl?: (options: RunFlowReviewOptions) => Promise<FlowReviewReport>;\n runLifecyclemodelReviewImpl?: (\n options: RunLifecyclemodelReviewOptions,\n ) => Promise<LifecyclemodelReviewReport>;\n runFlowRemediateImpl?: (options: RunFlowRemediateOptions) => Promise<FlowRemediationReport>;\n runFlowFetchRowsImpl?: (options: RunFlowFetchRowsOptions) => Promise<FlowFetchRowsReport>;\n runFlowMaterializeDecisionsImpl?: (\n options: RunFlowMaterializeDecisionsOptions,\n ) => Promise<FlowMaterializeDecisionsReport>;\n runFlowGetImpl?: (options: RunFlowGetOptions) => Promise<FlowGetReport>;\n runFlowListImpl?: (options: RunFlowListOptions) => Promise<FlowListReport>;\n runFlowPublishVersionImpl?: (\n options: RunFlowPublishVersionOptions,\n ) => Promise<FlowPublishVersionReport>;\n runFlowReviewedPublishDataImpl?: (\n options: RunFlowReviewedPublishDataOptions,\n ) => Promise<FlowReviewedPublishDataReport>;\n runFlowBuildAliasMapImpl?: (\n options: RunFlowBuildAliasMapOptions,\n ) => Promise<FlowBuildAliasMapReport>;\n runFlowScanProcessFlowRefsImpl?: (\n options: RunFlowScanProcessFlowRefsOptions,\n ) => Promise<FlowScanProcessFlowRefsReport>;\n runFlowPlanProcessFlowRepairsImpl?: (\n options: RunFlowPlanProcessFlowRepairsOptions,\n ) => Promise<FlowPlanProcessFlowRepairsReport>;\n runFlowApplyProcessFlowRepairsImpl?: (\n options: RunFlowApplyProcessFlowRepairsOptions,\n ) => Promise<FlowApplyProcessFlowRepairsReport>;\n runFlowRegenProductImpl?: (\n options: RunFlowRegenProductOptions,\n ) => Promise<FlowRegenProductReport>;\n runFlowValidateProcessesImpl?: (\n options: RunFlowValidateProcessesOptions,\n ) => Promise<FlowValidateProcessesReport>;\n};\n\nexport type CliResult = {\n exitCode: number;\n stdout: string;\n stderr: string;\n};\n\ntype RootFlags = {\n help: boolean;\n version: boolean;\n};\n\nfunction renderMainHelp(dotEnvStatus: DotEnvLoadResult): string {\n return `TianGong LCA CLI\n\nUnified TianGong command entrypoint.\n\nDesign principles:\n - direct REST / Edge Function access\n - no MCP inside the CLI\n - TypeScript source on Node 24\n - file-first input and JSON-first output\n\nUsage:\n tiangong <command> [subcommand] [options]\n\nCommands:\nImplemented Commands:\n doctor show environment diagnostics\n search flow | process | lifecyclemodel\n process get | list | auto-build | resume-build | publish-build | save-draft | batch-build\n flow get | list | fetch-rows | materialize-decisions | remediate | publish-version | publish-reviewed-data | build-alias-map | scan-process-flow-refs | plan-process-flow-repairs | apply-process-flow-repairs | regen-product | validate-processes\n lifecyclemodel auto-build | validate-build | publish-build | build-resulting-process | publish-resulting-process | orchestrate\n review process | flow | lifecyclemodel\n publish run\n validation run\n admin embedding-run\n\nPlanned Surface (not implemented yet):\n auth whoami | doctor-auth\n job get | wait | logs\n\nPlanned commands currently print an explicit \"not implemented yet\" message and exit with code 2.\n\nExamples:\n tiangong doctor\n tiangong search flow --input ./request.json\n tiangong search process --input ./request.json --dry-run\n tiangong process get --id <process-id>\n tiangong process list --state-code 100 --limit 20\n tiangong process auto-build --input ./pff-request.json\n tiangong process resume-build --run-id <id>\n tiangong process publish-build --run-id <id>\n tiangong process save-draft --input ./patched-processes.jsonl --dry-run\n tiangong process batch-build --input ./batch-request.json\n tiangong lifecyclemodel auto-build --input ./lifecyclemodel-auto-build.request.json\n tiangong lifecyclemodel validate-build --run-dir ./artifacts/lifecyclemodel_auto_build/<run_id>\n tiangong lifecyclemodel publish-build --run-dir ./artifacts/lifecyclemodel_auto_build/<run_id>\n tiangong lifecyclemodel orchestrate plan --input ./lifecyclemodel-orchestrate.request.json --out-dir ./artifacts/lifecyclemodel_recursive/run-001\n tiangong flow get --id <flow-id> --version <version>\n tiangong flow list --id <flow-id> --state-code 100 --limit 20\n tiangong flow fetch-rows --refs-file ./flow-refs.json --out-dir ./flow-fetch\n tiangong flow materialize-decisions --decision-file ./approved-decisions.json --flow-rows-file ./review-input-rows.jsonl --out-dir ./flow-decisions\n tiangong flow remediate --input-file ./invalid-flows.jsonl --out-dir ./flow-remediation\n tiangong flow publish-version --input-file ./ready-flows.jsonl --out-dir ./flow-publish --commit\n tiangong flow publish-reviewed-data --flow-rows-file ./reviewed-flows.jsonl --original-flow-rows-file ./original-flows.jsonl --out-dir ./flow-publish-review\n tiangong flow build-alias-map --old-flow-file ./old-flows.jsonl --new-flow-file ./new-flows.jsonl --out-dir ./flow-alias-map\n tiangong flow scan-process-flow-refs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-scan\n tiangong flow plan-process-flow-repairs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-repair-plan\n tiangong flow apply-process-flow-repairs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-repair-apply\n tiangong flow regen-product --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-regeneration --apply\n tiangong flow validate-processes --original-processes-file ./before.jsonl --patched-processes-file ./after.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-validation\n tiangong review process --rows-file ./processes.jsonl --out-dir ./review\n tiangong review process --run-root ./artifacts/process_from_flow/<run_id> --run-id <run_id> --out-dir ./review\n tiangong review flow --rows-file ./flows.json --out-dir ./review\n tiangong review lifecyclemodel --run-dir ./artifacts/lifecyclemodel_auto_build/<run_id> --out-dir ./lifecyclemodel-review\n tiangong publish run --input ./publish-request.json --dry-run\n tiangong validation run --input-dir ./package --engine auto\n tiangong admin embedding-run --input ./jobs.json\n\nEnvironment:\n .env loaded: ${dotEnvStatus.loaded ? `yes (${dotEnvStatus.path}, ${dotEnvStatus.count} keys)` : 'no'}\n`.trim();\n}\n\nfunction renderDoctorHelp(): string {\n return `Usage:\n tiangong doctor [--json]\n\nOptions:\n --json Print structured environment diagnostics\n -h, --help\n`.trim();\n}\n\nfunction renderSearchHelp(): string {\n return `Usage:\n tiangong search <flow|process|lifecyclemodel> --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --json Print compact JSON\n --dry-run Print the planned HTTP request without sending it\n --api-key <key> Override TIANGONG_LCA_API_KEY\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --region <name> Override TIANGONG_LCA_REGION\n --timeout-ms <n> Request timeout in milliseconds\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n TIANGONG_LCA_REGION (optional)\n\nRuntime note:\n The CLI decodes TIANGONG_LCA_API_KEY as a user API key bootstrap, exchanges it for a user session,\n and sends the resolved access token to Edge Functions.\n`.trim();\n}\n\nfunction renderAdminHelp(): string {\n return `Usage:\n tiangong admin embedding-run --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --json Print compact JSON\n --dry-run Print the planned HTTP request without sending it\n --api-key <key> Override TIANGONG_LCA_API_KEY\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --timeout-ms <n> Request timeout in milliseconds\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI decodes TIANGONG_LCA_API_KEY as a user API key bootstrap, exchanges it for a user session,\n and sends the resolved access token to Edge Functions.\n`.trim();\n}\n\nfunction renderPublishHelp(): string {\n return `Usage:\n tiangong publish run --input <file> [options]\n\nOptions:\n --input <file> JSON publish request file\n --out-dir <dir> Override request out_dir\n --commit Force publish.commit=true\n --dry-run Force publish.commit=false\n --json Print compact JSON\n -h, --help\n\nPath rule:\n Relative out_dir values from the request body or --out-dir resolve from the request file directory.\n`.trim();\n}\n\nfunction renderValidationHelp(): string {\n return `Usage:\n tiangong validation run --input-dir <dir> [options]\n\nOptions:\n --input-dir <dir> TIDAS package directory\n --engine <mode> auto | sdk (default: auto)\n --report-file <file> Write the structured validation report to a file\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderFlowHelp(): string {\n return `Usage:\n tiangong flow <subcommand> [options]\n\nImplemented Subcommands:\n get Load one flow dataset by identifier through direct Supabase access\n list Enumerate flow datasets through direct Supabase access with deterministic filters\n fetch-rows Materialize real DB flow refs into local review-input rows and fetch artifacts\n materialize-decisions Materialize approved merge decisions into canonical-map, rewrite-plan, and seed artifacts\n remediate Deterministically repair invalid local flow rows and emit artifact-first outputs\n publish-version Publish remediated flow versions through the unified CLI surface\n publish-reviewed-data Prepare reviewed flow rows, skip unchanged snapshots, and optionally publish the resulting versions\n build-alias-map Build a deterministic flow alias map from old/new local flow snapshots\n scan-process-flow-refs Classify process exchange references against the current flow scope\n plan-process-flow-repairs Plan deterministic repairs for local process-flow references\n apply-process-flow-repairs Apply deterministic process-flow reference repairs and emit patch artifacts\n regen-product Regenerate local process-side artifacts after flow governance changes\n validate-processes Validate locally patched process rows against allowed flow-reference-only changes\n\nExamples:\n tiangong flow --help\n tiangong flow get --help\n tiangong flow list --help\n tiangong flow fetch-rows --help\n tiangong flow materialize-decisions --help\n tiangong flow remediate --help\n tiangong flow publish-version --help\n tiangong flow publish-reviewed-data --help\n tiangong flow build-alias-map --help\n tiangong flow scan-process-flow-refs --help\n tiangong flow plan-process-flow-repairs --help\n tiangong flow apply-process-flow-repairs --help\n tiangong flow regen-product --help\n tiangong flow validate-processes --help\n`.trim();\n}\n\nfunction renderFlowGetHelp(): string {\n return `Usage:\n tiangong flow get --id <flow-id> [options]\n\nOptions:\n --id <flow-id> Flow UUID\n --version <version> Optional requested dataset version; if absent or missing, the latest reachable row is returned\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Optional visibility filter such as 0 or 100\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderFlowListHelp(): string {\n return `Usage:\n tiangong flow list [options]\n\nOptions:\n --id <flow-id> Repeatable exact flow UUID filter\n --version <version> Optional dataset version filter\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Repeatable visibility filter such as 0 or 100\n --type-of-dataset <name> Repeatable flow type filter, for example \"Product flow\" or \"Waste flow\"\n --order <expr> Deterministic PostgREST order expression (default: id.asc,version.asc)\n --limit <n> Page size for one request (default: 100)\n --offset <n> Row offset for one request (default: 0)\n --all Fetch all matching rows via offset pagination\n --page-size <n> Page size when --all is used (default: 100)\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderFlowRemediateHelp(): string {\n return `Usage:\n tiangong flow remediate --input-file <file> --out-dir <dir> [options]\n\nOptions:\n --input-file <file> Invalid flow rows as JSON or JSONL\n --out-dir <dir> Output directory for remediation artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flows_tidas_sdk_plus_classification_remediated_all.jsonl\n - flows_tidas_sdk_plus_classification_remediated_ready_for_mcp.jsonl\n - flows_tidas_sdk_plus_classification_residual_manual_queue.jsonl\n - flows_tidas_sdk_plus_classification_remediation_audit.jsonl\n - flows_tidas_sdk_plus_classification_remediation_report.json\n - flows_tidas_sdk_plus_classification_residual_manual_queue_prompt.md\n`.trim();\n}\n\nfunction renderFlowFetchRowsHelp(): string {\n return `Usage:\n tiangong flow fetch-rows --refs-file <file> --out-dir <dir> [options]\n\nOptions:\n --refs-file <file> Flow refs as JSON or JSONL\n --out-dir <dir> Output directory for fetch artifacts\n --no-latest-fallback Do not fall back to the latest visible version when --version misses\n --fail-on-missing Return exit code 1 when any ref is missing or ambiguous\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOutputs written under --out-dir:\n - resolved-flow-rows.jsonl\n - review-input-rows.jsonl\n - fetch-summary.json\n - missing-flow-refs.jsonl\n - ambiguous-flow-refs.jsonl\n`.trim();\n}\n\nfunction renderFlowMaterializeDecisionsHelp(): string {\n return `Usage:\n tiangong flow materialize-decisions --decision-file <file> --flow-rows-file <file> --out-dir <dir> [options]\n\nOptions:\n --decision-file <file> Approved cluster decisions as JSON or JSONL\n --flow-rows-file <file> Real DB flow rows as JSON or JSONL\n --out-dir <dir> Output directory for decision materialization artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flow-dedup-canonical-map.json\n - flow-dedup-rewrite-plan.json\n - manual-semantic-merge-seed.current.json\n - decision-summary.json\n - blocked-clusters.json\n`.trim();\n}\n\nfunction renderFlowPublishVersionHelp(): string {\n return `Usage:\n tiangong flow publish-version --input-file <file> --out-dir <dir> [options]\n\nOptions:\n --input-file <file> Ready-for-publish flow rows as JSON or JSONL\n --out-dir <dir> Output directory for publish-version artifacts\n --commit Execute remote writes\n --dry-run Plan the publish-version operations without remote writes\n --max-workers <n> Parallel worker count (default: 4)\n --limit <n> Optional row limit; 0 means all rows\n --target-user-id <id> Override the target owner when input rows omit user_id\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOutputs written under --out-dir:\n - flows_tidas_sdk_plus_classification_mcp_success_list.json\n - flows_tidas_sdk_plus_classification_remote_validation_failed.jsonl\n - flows_tidas_sdk_plus_classification_mcp_sync_report.json\n`.trim();\n}\n\nfunction renderFlowPublishReviewedDataHelp(): string {\n return `Usage:\n tiangong flow publish-reviewed-data --out-dir <dir> [--flow-rows-file <file>] [--process-rows-file <file>] [options]\n\nOptions:\n --flow-rows-file <file> Reviewed flow rows as JSON or JSONL\n --original-flow-rows-file <file> Optional original flow snapshot used to skip unchanged reviewed rows\n --process-rows-file <file> Optional reviewed process rows as JSON or JSONL\n --flow-publish-policy <mode> skip | append_only_bump | upsert_current_version (default: append_only_bump)\n --process-publish-policy <mode> skip | append_only_bump | upsert_current_version (default: append_only_bump)\n --no-rewrite-process-flow-refs Keep process flow references unchanged during local preparation\n --commit Execute remote writes for prepared flow and process rows\n --dry-run Keep the command local-only and write prepared artifacts without remote writes\n --max-workers <n> Parallel worker count for the flow commit step (default: 4)\n --target-user-id <id> Override the target owner when prepared flow rows omit user_id\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n none for local dry-run\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n when --commit publishes prepared rows\n\nOutputs written under --out-dir:\n - prepared-flow-rows.json\n - prepared-process-rows.json\n - flow-version-map.json\n - skipped-unchanged-flow-rows.json\n - process-flow-ref-rewrite-evidence.jsonl\n - publish-report.json\n - flows_tidas_sdk_plus_classification_mcp_success_list.json\n - flows_tidas_sdk_plus_classification_remote_validation_failed.jsonl\n - flows_tidas_sdk_plus_classification_mcp_sync_report.json\n`.trim();\n}\n\nfunction renderFlowBuildAliasMapHelp(): string {\n return `Usage:\n tiangong flow build-alias-map --old-flow-file <file> --new-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --old-flow-file <file> Repeatable pre-governance flow snapshot as JSON or JSONL\n --new-flow-file <file> Repeatable post-governance flow snapshot as JSON or JSONL\n --seed-alias-map <file> Optional existing alias map JSON object used as deterministic seed input\n --out-dir <dir> Output directory for alias-plan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - alias-plan.json\n - alias-plan.jsonl\n - flow-alias-map.json\n - manual-review-queue.jsonl\n - alias-summary.json\n`.trim();\n}\n\nfunction renderFlowScanProcessFlowRefsHelp(): string {\n return `Usage:\n tiangong flow scan-process-flow-refs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --catalog-flow-file <file> Repeatable catalog flow file; defaults to the scope files\n --alias-map <file> Optional flow alias map JSON object\n --exclude-emergy Exclude emergy-named processes before reference scanning\n --out-dir <dir> Output directory for scan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - emergy-excluded-processes.json\n - scan-summary.json\n - scan-findings.json\n - scan-findings.jsonl\n`.trim();\n}\n\nfunction renderFlowPlanProcessFlowRepairsHelp(): string {\n return `Usage:\n tiangong flow plan-process-flow-repairs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --alias-map <file> Optional flow alias map JSON object\n --scan-findings <file> Optional scan-findings JSON or JSONL from a prior scan step\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --out-dir <dir> Output directory for repair plan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - repair-plan.json\n - repair-plan.jsonl\n - manual-review-queue.jsonl\n - repair-summary.json\n`.trim();\n}\n\nfunction renderFlowApplyProcessFlowRepairsHelp(): string {\n return `Usage:\n tiangong flow apply-process-flow-repairs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --alias-map <file> Optional flow alias map JSON object\n --scan-findings <file> Optional scan-findings JSON or JSONL from a prior scan step\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --process-pool-file <file> Optional process pool file to sync after patch application\n --out-dir <dir> Output directory for repair apply artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - repair-plan.json\n - repair-plan.jsonl\n - manual-review-queue.jsonl\n - repair-summary.json\n - patched-processes.json\n - process-patches/\n`.trim();\n}\n\nfunction renderFlowRegenProductHelp(): string {\n return `Usage:\n tiangong flow regen-product --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --catalog-flow-file <file> Repeatable catalog flow file; defaults to the scope files\n --alias-map <file> Optional flow alias map JSON object\n --exclude-emergy Exclude emergy-named processes before scan and repair\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --apply Apply deterministic patches and run local validation\n --process-pool-file <file> Optional process pool file to sync after --apply\n --tidas-mode <mode> auto | required | skip (default: auto)\n --out-dir <dir> Run root for scan / repair / validate artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flow-regen-product-report.json\n - scan/\n - repair/\n - repair-apply/ (only with --apply)\n - validate/ (only with --apply)\n`.trim();\n}\n\nfunction renderFlowValidateProcessesHelp(): string {\n return `Usage:\n tiangong flow validate-processes --original-processes-file <file> --patched-processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --original-processes-file <file> Original process rows before repair as JSON or JSONL\n --patched-processes-file <file> Patched process rows after repair as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --out-dir <dir> Output directory for validation-report.json and validation-failures.jsonl\n --tidas-mode <mode> auto | required | skip (default: auto)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - validation-report.json\n - validation-failures.jsonl\n`.trim();\n}\n\nfunction renderReviewHelp(): string {\n return `Usage:\n tiangong review <subcommand> [options]\n\nImplemented Subcommands:\n process Review process build runs or rows-file snapshots and emit artifact-first findings\n flow Review local flow governance snapshots and emit artifact-first findings\n lifecyclemodel Review one local lifecyclemodel build run and emit artifact-first findings\n\nExamples:\n tiangong review --help\n tiangong review process --help\n tiangong review flow --help\n tiangong review lifecyclemodel --help\n`.trim();\n}\n\nfunction renderReviewProcessHelp(): string {\n return `Usage:\n tiangong review process (--rows-file <file> | --run-root <dir>) --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Process rows JSON/JSONL file; full process list reports with rows[] are also accepted\n --run-root <dir> Process build run root containing exports/processes\n --run-id <id> Optional review run identifier; defaults to the rows-file name or run-root basename\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: v2.1)\n --enable-llm Enable optional review-only semantic review via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this review command\n --llm-max-processes <n> Cap how many process summaries are sent to the LLM (default: 8)\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderReviewFlowHelp(): string {\n return `Usage:\n tiangong review flow (--rows-file <file> | --flows-dir <dir> | --run-root <dir>) --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Flow rows JSON / JSONL file; the CLI materializes review-input/flows automatically\n --flows-dir <dir> Directory containing per-flow JSON files\n --run-root <dir> Existing run root containing cache/flows or exports/flows\n --run-id <id> Optional run identifier override\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: flow-v1.0-cli)\n --enable-llm Enable optional review-only semantic review via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this review command\n --llm-max-flows <n> Cap how many flow summaries are sent to the LLM (default: 120)\n --llm-batch-size <n> Cap how many flow summaries each LLM batch sends (default: 20)\n --similarity-threshold <n> Similarity threshold for duplicate-candidate warnings (default: 0.92)\n --methodology-id <name> Label written into methodology-backed rule findings (default: built_in)\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderReviewLifecyclemodelHelp(): string {\n return `Usage:\n tiangong review lifecyclemodel --run-dir <dir> --out-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: lifecyclemodel-review-v1.0)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - reads one existing lifecyclemodel build run under models/*/tidas_bundle/lifecyclemodels\n - aggregates validate-build findings when reports/lifecyclemodel-validate-build-report.json is present\n - emits artifact-first model summaries, findings, markdown review notes, and a structured report\n`.trim();\n}\n\nfunction renderLifecyclemodelBuildResultingProcessHelp(): string {\n return `Usage:\n tiangong lifecyclemodel build-resulting-process --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default artifact output directory\n --json Print compact JSON\n -h, --help\n\nRemote lookup env (only when process_sources.allow_remote_lookup=true):\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n`.trim();\n}\n\nfunction renderLifecyclemodelPublishResultingProcessHelp(): string {\n return `Usage:\n tiangong lifecyclemodel publish-resulting-process --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel resulting-process run directory\n --publish-processes Include projected processes in publish-bundle.json\n --publish-relations Include lifecyclemodel/resulting-process relations in publish-bundle.json\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderLifecyclemodelHelp(): string {\n return `Usage:\n tiangong lifecyclemodel <subcommand> [options]\n\nImplemented Subcommands:\n auto-build Build native lifecyclemodel json_ordered artifacts from local process run exports\n validate-build Re-run local validation on one lifecyclemodel build run\n publish-build Prepare lifecyclemodel publish handoff artifacts from one local build run\n build-resulting-process Deterministically aggregate a lifecycle model into a resulting process bundle\n publish-resulting-process Prepare publish-bundle.json and publish-intent.json from a prior resulting-process run\n orchestrate Plan, execute, or publish a recursive lifecyclemodel assembly run\n\nExamples:\n tiangong lifecyclemodel --help\n tiangong lifecyclemodel auto-build --help\n tiangong lifecyclemodel validate-build --help\n tiangong lifecyclemodel publish-build --help\n tiangong lifecyclemodel build-resulting-process --help\n tiangong lifecyclemodel orchestrate --help\n`.trim();\n}\n\nfunction renderLifecyclemodelOrchestrateHelp(): string {\n return `Usage:\n tiangong lifecyclemodel orchestrate <plan|execute|publish> [options]\n\nPlan / execute options:\n --input <file> JSON request file\n --request <file> Alias for --input\n --out-dir <dir> Output run directory\n --allow-process-build Override orchestration.allow_process_build=true during execute\n --allow-submodel-build Override orchestration.allow_submodel_build=true during execute\n --json Print compact JSON\n -h, --help\n\nPublish options:\n --run-dir <dir> Existing orchestrator run directory\n --publish-lifecyclemodels Include built lifecyclemodels in publish-bundle.json\n --publish-resulting-process-relations Include projected processes and resulting-process relations in publish-bundle.json\n --json Print compact JSON\n -h, --help\n\nThis command:\n - normalizes a recursive request into assembly-plan.json, graph-manifest.json, lineage-manifest.json, and boundary-report.json\n - executes only native CLI-backed builders; no Python fallback path remains\n - prepares a local publish-bundle.json from prior invocation artifacts\n`.trim();\n}\n\nfunction renderLifecyclemodelAutoBuildHelp(): string {\n return `Usage:\n tiangong lifecyclemodel auto-build --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default lifecyclemodel build run root\n --json Print compact JSON\n -h, --help\n\nMinimal request contract:\n {\n \"local_runs\": [\"/abs/path/to/process-build-run\"]\n }\n\nThis first CLI slice is local-only and read-only:\n - loads local process build run directories\n - infers the process graph from shared flow UUIDs\n - emits native lifecyclemodel json_ordered artifacts\n - leaves follow-up validation and publish handoff to the companion validate-build and publish-build commands\n`.trim();\n}\n\nfunction renderLifecyclemodelValidateBuildHelp(): string {\n return `Usage:\n tiangong lifecyclemodel validate-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --engine <mode> auto | sdk (default: auto)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - scans models/*/tidas_bundle from one lifecyclemodel auto-build run\n - re-runs local validation through the unified validation module\n - writes per-model validation reports plus one aggregate report\n`.trim();\n}\n\nfunction renderLifecyclemodelPublishBuildHelp(): string {\n return `Usage:\n tiangong lifecyclemodel publish-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --json Print compact JSON\n -h, --help\n\nThis command:\n - collects native lifecyclemodel json_ordered payloads from one local build run\n - writes publish-bundle.json, publish-request.json, and publish-intent.json\n - keeps actual dry-run / commit execution in tiangong publish run\n - routes lifecyclemodel commit through save_lifecycle_model_bundle internally\n`.trim();\n}\n\nfunction renderProcessAutoBuildHelp(): string {\n return `Usage:\n tiangong process auto-build --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default run root directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessGetHelp(): string {\n return `Usage:\n tiangong process get --id <process-id> [options]\n\nOptions:\n --id <process-id> Process UUID\n --version <version> Optional requested dataset version; if absent or missing, the latest reachable row is returned\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderProcessListHelp(): string {\n return `Usage:\n tiangong process list [options]\n\nOptions:\n --id <process-id> Repeatable exact process UUID filter\n --version <version> Optional dataset version filter\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Repeatable visibility filter such as 0 or 100\n --order <expr> Deterministic PostgREST order expression (default: id.asc,version.asc)\n --limit <n> Page size for one request (default: 100)\n --offset <n> Row offset for one request (default: 0)\n --all Fetch all matching rows via offset pagination\n --page-size <n> Page size when --all is used (default: 100)\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderProcessResumeBuildHelp(): string {\n return `Usage:\n tiangong process resume-build [--run-id <id>] [--run-dir <dir>] [options]\n\nOptions:\n --run-id <id> Existing process build run id\n --run-dir <dir> Existing process build run directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessPublishBuildHelp(): string {\n return `Usage:\n tiangong process publish-build [--run-id <id>] [--run-dir <dir>] [options]\n\nOptions:\n --run-id <id> Existing process build run id\n --run-dir <dir> Existing process build run directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessSaveDraftHelp(): string {\n return `Usage:\n tiangong process save-draft --input <file> [options]\n\nOptions:\n --input <file> Process rows JSON/JSONL file or publish-request.json\n --out-dir <dir> Run root written relative to cwd when a relative path is passed\n --commit Execute remote save-draft writes\n --dry-run Keep the command local-only (default)\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n none for local dry-run\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n when --commit executes remote writes\n\nOutputs written under --out-dir:\n - inputs/normalized-input.json\n - outputs/save-draft-rpc/selected-processes.jsonl\n - outputs/save-draft-rpc/progress.jsonl\n - outputs/save-draft-rpc/failures.jsonl\n - outputs/save-draft-rpc/summary.json\n`.trim();\n}\n\nfunction renderProcessBatchBuildHelp(): string {\n return `Usage:\n tiangong process batch-build --input <file> [options]\n\nOptions:\n --input <file> JSON batch manifest file\n --out-dir <dir> Override the batch artifact output directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessHelp(): string {\n return `Usage:\n tiangong process <subcommand> [options]\n\nImplemented Subcommands:\n get Load one process dataset by identifier through direct Supabase access\n list List visible process rows through direct Supabase access\n auto-build Prepare a local process-from-flow run scaffold and artifact workspace\n resume-build Prepare a local resume handoff from one existing process build run\n publish-build Prepare publish handoff artifacts from one existing process build run\n save-draft Save canonical process datasets through the state-aware draft-maintenance path\n batch-build Run multiple process auto-build requests through one batch-oriented CLI surface\n\nExamples:\n tiangong process --help\n tiangong process get --id <process-id>\n tiangong process list --state-code 100 --limit 20 --help\n tiangong process auto-build --help\n tiangong process resume-build --run-id <id> --help\n tiangong process publish-build --run-id <id> --help\n tiangong process save-draft --input ./patched-processes.jsonl --help\n tiangong process batch-build --input ./batch-request.json --help\n`.trim();\n}\n\nfunction renderDoctorText(report: ReturnType<typeof buildDoctorReport>): string {\n const lines = [\n 'TianGong CLI doctor',\n ` .env loaded: ${report.loadedDotEnv ? `yes (${report.dotEnvKeysLoaded} keys)` : 'no'}`,\n ` .env path: ${report.dotEnvPath}`,\n '',\n ];\n for (const check of report.checks) {\n const status = check.present ? 'OK ' : 'MISS';\n lines.push(\n ` [${status}] ${check.key} (${check.source})${check.required ? ' [required]' : ''}`,\n );\n }\n if (!report.ok) {\n lines.push('', 'Missing required environment keys:');\n for (const check of report.checks) {\n if (check.required && !check.present) {\n lines.push(` - ${check.key}`);\n }\n }\n }\n return `${lines.join('\\n')}\\n`;\n}\n\ntype CommandDispatch = {\n flags: RootFlags;\n command: string | null;\n subcommand: string | null;\n commandArgs: string[];\n};\n\nfunction parseCommandLine(args: string[]): CommandDispatch {\n const flags: RootFlags = {\n help: false,\n version: false,\n };\n\n let index = 0;\n while (index < args.length) {\n const arg = args[index];\n if (arg === '--') {\n index += 1;\n break;\n }\n if (arg === '--help' || arg === '-h') {\n flags.help = true;\n index += 1;\n continue;\n }\n if (arg === '--version' || arg === '-v') {\n flags.version = true;\n index += 1;\n continue;\n }\n if (arg.startsWith('-')) {\n throw new CliError(`Unknown root option: ${arg}`, {\n code: 'UNKNOWN_ROOT_OPTION',\n exitCode: 2,\n });\n }\n break;\n }\n\n const command = args[index] ?? null;\n if (!command) {\n return {\n flags,\n command: null,\n subcommand: null,\n commandArgs: [],\n };\n }\n\n const maybeSubcommand = args[index + 1];\n const subcommand = maybeSubcommand && !maybeSubcommand.startsWith('-') ? maybeSubcommand : null;\n const commandArgs = args.slice(index + 1 + (subcommand ? 1 : 0));\n\n return {\n flags,\n command,\n subcommand,\n commandArgs,\n };\n}\n\nfunction parseDoctorFlags(args: string[]): {\n help: boolean;\n json: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n };\n}\n\nfunction parseRemoteFlags(args: string[]): {\n help: boolean;\n json: boolean;\n dryRun: boolean;\n inputPath: string;\n apiKey: string | null;\n apiBaseUrl: string | null;\n region: string | null;\n timeoutMs: number;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n input: { type: 'string' },\n 'api-key': { type: 'string' },\n 'base-url': { type: 'string' },\n region: { type: 'string' },\n 'timeout-ms': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const timeoutText = typeof values['timeout-ms'] === 'string' ? values['timeout-ms'] : undefined;\n const timeoutMs = timeoutText ? Number.parseInt(timeoutText, 10) : 60_000;\n if (!Number.isInteger(timeoutMs) || timeoutMs <= 0) {\n throw new CliError('Expected --timeout-ms to be a positive integer.', {\n code: 'INVALID_TIMEOUT',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n dryRun: Boolean(values['dry-run']),\n inputPath: typeof values.input === 'string' ? values.input : '',\n apiKey: typeof values['api-key'] === 'string' ? values['api-key'] : null,\n apiBaseUrl: typeof values['base-url'] === 'string' ? values['base-url'] : null,\n region: typeof values.region === 'string' ? values.region : null,\n timeoutMs,\n };\n}\n\nfunction parsePublishFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n commitOverride: boolean | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_PUBLISH_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commitOverride: values.commit ? true : values['dry-run'] ? false : null,\n };\n}\n\nfunction parseValidationFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputDir: string;\n engine: string | undefined;\n reportFile: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'input-dir': { type: 'string' },\n engine: { type: 'string' },\n 'report-file': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputDir: typeof values['input-dir'] === 'string' ? values['input-dir'] : '',\n engine: typeof values.engine === 'string' ? values.engine : undefined,\n reportFile: typeof values['report-file'] === 'string' ? values['report-file'] : null,\n };\n}\n\nfunction parseFlowRemediateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputFile: string;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'input-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputFile: typeof values['input-file'] === 'string' ? values['input-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowPublishVersionFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputFile: string;\n outDir: string;\n commit: boolean;\n maxWorkers: number | undefined;\n limit: number | undefined;\n targetUserId: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'input-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'max-workers': { type: 'string' },\n limit: { type: 'string' },\n 'target-user-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'FLOW_PUBLISH_VERSION_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputFile: typeof values['input-file'] === 'string' ? values['input-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n maxWorkers: parsePositiveIntegerFlag(\n values['max-workers'],\n '--max-workers',\n 'INVALID_FLOW_PUBLISH_VERSION_MAX_WORKERS',\n ),\n limit: parseNonNegativeIntegerFlag(\n values.limit,\n '--limit',\n 'INVALID_FLOW_PUBLISH_VERSION_LIMIT',\n ),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n };\n}\n\nfunction parseFlowPublishReviewedDataFlags(args: string[]): {\n help: boolean;\n json: boolean;\n flowRowsFile: string;\n originalFlowRowsFile: string | null;\n processRowsFile: string | null;\n flowPublishPolicy: 'skip' | 'append_only_bump' | 'upsert_current_version';\n processPublishPolicy: 'skip' | 'append_only_bump' | 'upsert_current_version';\n rewriteProcessFlowRefs: boolean;\n outDir: string;\n commit: boolean;\n maxWorkers: number | undefined;\n targetUserId: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'flow-rows-file': { type: 'string' },\n 'original-flow-rows-file': { type: 'string' },\n 'process-rows-file': { type: 'string' },\n 'flow-publish-policy': { type: 'string' },\n 'process-publish-policy': { type: 'string' },\n 'no-rewrite-process-flow-refs': { type: 'boolean' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'max-workers': { type: 'string' },\n 'target-user-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'FLOW_PUBLISH_REVIEWED_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const processPublishPolicy =\n typeof values['process-publish-policy'] === 'string'\n ? values['process-publish-policy']\n : 'append_only_bump';\n if (\n processPublishPolicy !== 'skip' &&\n processPublishPolicy !== 'append_only_bump' &&\n processPublishPolicy !== 'upsert_current_version'\n ) {\n throw new CliError(\n 'Expected --process-publish-policy to be one of: skip, append_only_bump, upsert_current_version.',\n {\n code: 'FLOW_PUBLISH_REVIEWED_PROCESS_POLICY_INVALID',\n exitCode: 2,\n },\n );\n }\n\n const flowPublishPolicy =\n typeof values['flow-publish-policy'] === 'string'\n ? values['flow-publish-policy']\n : 'append_only_bump';\n if (\n flowPublishPolicy !== 'skip' &&\n flowPublishPolicy !== 'append_only_bump' &&\n flowPublishPolicy !== 'upsert_current_version'\n ) {\n throw new CliError(\n 'Expected --flow-publish-policy to be one of: skip, append_only_bump, upsert_current_version.',\n {\n code: 'FLOW_PUBLISH_REVIEWED_FLOW_POLICY_INVALID',\n exitCode: 2,\n },\n );\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n flowRowsFile: typeof values['flow-rows-file'] === 'string' ? values['flow-rows-file'] : '',\n originalFlowRowsFile:\n typeof values['original-flow-rows-file'] === 'string'\n ? values['original-flow-rows-file']\n : null,\n processRowsFile:\n typeof values['process-rows-file'] === 'string' ? values['process-rows-file'] : null,\n flowPublishPolicy,\n processPublishPolicy,\n rewriteProcessFlowRefs: !values['no-rewrite-process-flow-refs'],\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n maxWorkers: parsePositiveIntegerFlag(\n values['max-workers'],\n '--max-workers',\n 'INVALID_FLOW_PUBLISH_REVIEWED_MAX_WORKERS',\n ),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n };\n}\n\nfunction parseFlowBuildAliasMapFlags(args: string[]): {\n help: boolean;\n json: boolean;\n oldFlowFiles: string[];\n newFlowFiles: string[];\n seedAliasMapFile: string | null;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'old-flow-file': { type: 'string', multiple: true },\n 'new-flow-file': { type: 'string', multiple: true },\n 'seed-alias-map': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n oldFlowFiles: Array.isArray(values['old-flow-file'])\n ? values['old-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n newFlowFiles: Array.isArray(values['new-flow-file'])\n ? values['new-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n seedAliasMapFile:\n typeof values['seed-alias-map'] === 'string' ? values['seed-alias-map'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowScanProcessFlowRefsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n catalogFlowFiles: string[];\n aliasMapFile: string | null;\n excludeEmergy: boolean;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'catalog-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'exclude-emergy': { type: 'boolean' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n catalogFlowFiles: Array.isArray(values['catalog-flow-file'])\n ? values['catalog-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n excludeEmergy: Boolean(values['exclude-emergy']),\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowPlanProcessFlowRepairsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n aliasMapFile: string | null;\n scanFindingsFile: string | null;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'scan-findings': { type: 'string' },\n 'auto-patch-policy': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_PLAN_PROCESS_FLOW_REPAIRS_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n scanFindingsFile: typeof values['scan-findings'] === 'string' ? values['scan-findings'] : null,\n autoPatchPolicy,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowApplyProcessFlowRepairsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n aliasMapFile: string | null;\n scanFindingsFile: string | null;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n processPoolFile: string | null;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'scan-findings': { type: 'string' },\n 'auto-patch-policy': { type: 'string' },\n 'process-pool-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_APPLY_PROCESS_FLOW_REPAIRS_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n scanFindingsFile: typeof values['scan-findings'] === 'string' ? values['scan-findings'] : null,\n autoPatchPolicy,\n processPoolFile:\n typeof values['process-pool-file'] === 'string' ? values['process-pool-file'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowRegenProductFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n catalogFlowFiles: string[];\n aliasMapFile: string | null;\n excludeEmergy: boolean;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n apply: boolean;\n processPoolFile: string | null;\n tidasMode: 'auto' | 'required' | 'skip';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'catalog-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'exclude-emergy': { type: 'boolean' },\n 'auto-patch-policy': { type: 'string' },\n apply: { type: 'boolean' },\n 'process-pool-file': { type: 'string' },\n 'tidas-mode': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_REGEN_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n const tidasMode = typeof values['tidas-mode'] === 'string' ? values['tidas-mode'] : 'auto';\n if (tidasMode !== 'auto' && tidasMode !== 'required' && tidasMode !== 'skip') {\n throw new CliError('Expected --tidas-mode to be one of auto, required, or skip.', {\n code: 'INVALID_FLOW_REGEN_TIDAS_MODE',\n exitCode: 2,\n });\n }\n\n if (typeof values['process-pool-file'] === 'string' && !values.apply) {\n throw new CliError('Use --process-pool-file only with --apply.', {\n code: 'FLOW_REGEN_PROCESS_POOL_REQUIRES_APPLY',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n catalogFlowFiles: Array.isArray(values['catalog-flow-file'])\n ? values['catalog-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n excludeEmergy: Boolean(values['exclude-emergy']),\n autoPatchPolicy,\n apply: Boolean(values.apply),\n processPoolFile:\n typeof values['process-pool-file'] === 'string' ? values['process-pool-file'] : null,\n tidasMode,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowValidateProcessesFlags(args: string[]): {\n help: boolean;\n json: boolean;\n originalProcessesFile: string;\n patchedProcessesFile: string;\n scopeFlowFiles: string[];\n tidasMode: 'auto' | 'required' | 'skip';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'original-processes-file': { type: 'string' },\n 'patched-processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'tidas-mode': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const tidasMode = typeof values['tidas-mode'] === 'string' ? values['tidas-mode'] : 'auto';\n if (tidasMode !== 'auto' && tidasMode !== 'required' && tidasMode !== 'skip') {\n throw new CliError('Expected --tidas-mode to be one of auto, required, or skip.', {\n code: 'INVALID_FLOW_VALIDATE_TIDAS_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n originalProcessesFile:\n typeof values['original-processes-file'] === 'string'\n ? values['original-processes-file']\n : '',\n patchedProcessesFile:\n typeof values['patched-processes-file'] === 'string' ? values['patched-processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n tidasMode,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowGetFlags(args: string[]): {\n help: boolean;\n json: boolean;\n flowId: string;\n version: string | null;\n userId: string | null;\n stateCode: number | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string' },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n flowId: typeof values.id === 'string' ? values.id : '',\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCode: parseOptionalNonNegativeIntegerFlag(\n values['state-code'],\n '--state-code',\n 'INVALID_FLOW_GET_STATE_CODE',\n ),\n };\n}\n\nfunction parseFlowFetchRowsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n refsFile: string;\n outDir: string;\n allowLatestFallback: boolean;\n failOnMissing: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'refs-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'no-latest-fallback': { type: 'boolean' },\n 'fail-on-missing': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n refsFile: typeof values['refs-file'] === 'string' ? values['refs-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n allowLatestFallback: values['no-latest-fallback'] !== true,\n failOnMissing: values['fail-on-missing'] === true,\n };\n}\n\nfunction parseFlowMaterializeDecisionsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n decisionFile: string;\n flowRowsFile: string;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'decision-file': { type: 'string' },\n 'flow-rows-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n decisionFile: typeof values['decision-file'] === 'string' ? values['decision-file'] : '',\n flowRowsFile: typeof values['flow-rows-file'] === 'string' ? values['flow-rows-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowListFlags(args: string[]): {\n help: boolean;\n json: boolean;\n ids: string[];\n version: string | null;\n userId: string | null;\n stateCodes: number[];\n typeOfDataset: string[];\n limit: number | null;\n offset: number | null;\n all: boolean;\n pageSize: number | null;\n order: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string', multiple: true },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n type: { type: 'string', multiple: true },\n 'type-of-dataset': { type: 'string', multiple: true },\n limit: { type: 'string' },\n offset: { type: 'string' },\n all: { type: 'boolean' },\n 'page-size': { type: 'string' },\n order: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalPositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseStateCodeValues = (value: unknown): number[] => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map((entry) => {\n const parsed = Number.parseInt(String(entry), 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError('Expected --state-code to be a non-negative integer.', {\n code: 'INVALID_FLOW_LIST_STATE_CODE',\n exitCode: 2,\n });\n }\n return parsed;\n });\n };\n const toStringArray = (value: unknown): string[] =>\n Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n\n if (values['page-size'] !== undefined && !values.all) {\n throw new CliError('Use --page-size only with --all.', {\n code: 'FLOW_LIST_PAGE_SIZE_REQUIRES_ALL',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n ids: toStringArray(values.id),\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCodes: parseStateCodeValues(values['state-code']),\n typeOfDataset: [...toStringArray(values['type-of-dataset']), ...toStringArray(values.type)],\n limit: parseOptionalPositiveIntegerFlag(values.limit, '--limit', 'INVALID_FLOW_LIST_LIMIT'),\n offset: parseOptionalNonNegativeIntegerFlag(\n values.offset,\n '--offset',\n 'INVALID_FLOW_LIST_OFFSET',\n ),\n all: Boolean(values.all),\n pageSize: parseOptionalPositiveIntegerFlag(\n values['page-size'],\n '--page-size',\n 'INVALID_FLOW_LIST_PAGE_SIZE',\n ),\n order: typeof values.order === 'string' ? values.order : null,\n };\n}\n\nfunction parseReviewProcessFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string | undefined;\n runRoot: string | undefined;\n runId: string | undefined;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n enableLlm: boolean;\n llmModel: string | undefined;\n llmMaxProcesses: number | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'rows-file': { type: 'string' },\n 'run-root': { type: 'string' },\n 'run-id': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n 'enable-llm': { type: 'boolean' },\n 'llm-model': { type: 'string' },\n 'llm-max-processes': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const llmMaxProcessesValue =\n typeof values['llm-max-processes'] === 'string'\n ? Number.parseInt(values['llm-max-processes'], 10)\n : undefined;\n\n if (\n values['llm-max-processes'] !== undefined &&\n (!Number.isInteger(llmMaxProcessesValue) || (llmMaxProcessesValue as number) <= 0)\n ) {\n throw new CliError('Expected --llm-max-processes to be a positive integer.', {\n code: 'INVALID_LLM_MAX_PROCESSES',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : undefined,\n runRoot: typeof values['run-root'] === 'string' ? values['run-root'] : undefined,\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n enableLlm: Boolean(values['enable-llm']),\n llmModel: typeof values['llm-model'] === 'string' ? values['llm-model'] : undefined,\n llmMaxProcesses: llmMaxProcessesValue,\n };\n}\n\nfunction parseReviewFlowFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string | undefined;\n flowsDir: string | undefined;\n runRoot: string | undefined;\n runId: string | undefined;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n enableLlm: boolean;\n llmModel: string | undefined;\n llmMaxFlows: number | undefined;\n llmBatchSize: number | undefined;\n similarityThreshold: number | undefined;\n methodologyId: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'rows-file': { type: 'string' },\n 'flows-dir': { type: 'string' },\n 'run-root': { type: 'string' },\n 'run-id': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n 'enable-llm': { type: 'boolean' },\n 'llm-model': { type: 'string' },\n 'llm-max-flows': { type: 'string' },\n 'llm-batch-size': { type: 'string' },\n 'similarity-threshold': { type: 'string' },\n 'methodology-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const similarityThreshold =\n typeof values['similarity-threshold'] === 'string'\n ? Number.parseFloat(values['similarity-threshold'])\n : undefined;\n if (\n values['similarity-threshold'] !== undefined &&\n (!Number.isFinite(similarityThreshold) || (similarityThreshold as number) <= 0)\n ) {\n throw new CliError('Expected --similarity-threshold to be a positive number.', {\n code: 'INVALID_SIMILARITY_THRESHOLD',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : undefined,\n flowsDir: typeof values['flows-dir'] === 'string' ? values['flows-dir'] : undefined,\n runRoot: typeof values['run-root'] === 'string' ? values['run-root'] : undefined,\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n enableLlm: Boolean(values['enable-llm']),\n llmModel: typeof values['llm-model'] === 'string' ? values['llm-model'] : undefined,\n llmMaxFlows: parsePositiveIntegerFlag(\n values['llm-max-flows'],\n '--llm-max-flows',\n 'INVALID_LLM_MAX_FLOWS',\n ),\n llmBatchSize: parsePositiveIntegerFlag(\n values['llm-batch-size'],\n '--llm-batch-size',\n 'INVALID_LLM_BATCH_SIZE',\n ),\n similarityThreshold,\n methodologyId:\n typeof values['methodology-id'] === 'string' ? values['methodology-id'] : undefined,\n };\n}\n\nfunction parseReviewLifecyclemodelFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n };\n}\n\nfunction parseLifecyclemodelPublishFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n publishProcesses: boolean;\n publishRelations: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n 'publish-processes': { type: 'boolean' },\n 'publish-relations': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n publishProcesses: Boolean(values['publish-processes']),\n publishRelations: Boolean(values['publish-relations']),\n };\n}\n\nfunction parseLifecyclemodelValidateBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n engine: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n engine: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n engine: typeof values.engine === 'string' ? values.engine : undefined,\n };\n}\n\nfunction parseLifecyclemodelPublishBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n };\n}\n\nfunction parseLifecyclemodelBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseLifecyclemodelOrchestrateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n action: string;\n inputPath: string;\n outDir: string | null;\n runDir: string;\n allowProcessBuild: boolean;\n allowSubmodelBuild: boolean;\n publishLifecyclemodels: boolean;\n publishResultingProcessRelations: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n let positionals: string[];\n try {\n ({ values, positionals } = parseArgs({\n args,\n allowPositionals: true,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n request: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'run-dir': { type: 'string' },\n 'allow-process-build': { type: 'boolean' },\n 'allow-submodel-build': { type: 'boolean' },\n 'publish-lifecyclemodels': { type: 'boolean' },\n 'publish-resulting-process-relations': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const inputAlias = typeof values.request === 'string' ? values.request : '';\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n action: positionals[0] ?? '',\n inputPath: typeof values.input === 'string' ? values.input : inputAlias,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n allowProcessBuild: Boolean(values['allow-process-build']),\n allowSubmodelBuild: Boolean(values['allow-submodel-build']),\n publishLifecyclemodels: Boolean(values['publish-lifecyclemodels']),\n publishResultingProcessRelations: Boolean(values['publish-resulting-process-relations']),\n };\n}\n\nfunction parseProcessAutoBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseProcessGetFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processId: string;\n version: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string' },\n version: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processId: typeof values.id === 'string' ? values.id : '',\n version: typeof values.version === 'string' ? values.version : null,\n };\n}\n\nfunction parseProcessListFlags(args: string[]): {\n help: boolean;\n json: boolean;\n ids: string[];\n version: string | null;\n userId: string | null;\n stateCodes: number[];\n limit: number | null;\n offset: number | null;\n all: boolean;\n pageSize: number | null;\n order: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string', multiple: true },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n limit: { type: 'string' },\n offset: { type: 'string' },\n all: { type: 'boolean' },\n 'page-size': { type: 'string' },\n order: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalPositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseStateCodeValues = (value: unknown): number[] => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map((entry) => {\n const parsed = Number.parseInt(String(entry), 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError('Expected --state-code to be a non-negative integer.', {\n code: 'INVALID_PROCESS_LIST_STATE_CODE',\n exitCode: 2,\n });\n }\n return parsed;\n });\n };\n const toStringArray = (value: unknown): string[] =>\n Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n\n if (values['page-size'] !== undefined && !values.all) {\n throw new CliError('Use --page-size only with --all.', {\n code: 'PROCESS_LIST_PAGE_SIZE_REQUIRES_ALL',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n ids: toStringArray(values.id),\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCodes: parseStateCodeValues(values['state-code']),\n limit: parseOptionalPositiveIntegerFlag(values.limit, '--limit', 'INVALID_PROCESS_LIST_LIMIT'),\n offset: parseOptionalNonNegativeIntegerFlag(\n values.offset,\n '--offset',\n 'INVALID_PROCESS_LIST_OFFSET',\n ),\n all: Boolean(values.all),\n pageSize: parseOptionalPositiveIntegerFlag(\n values['page-size'],\n '--page-size',\n 'INVALID_PROCESS_LIST_PAGE_SIZE',\n ),\n order: typeof values.order === 'string' ? values.order : null,\n };\n}\n\nfunction parseProcessResumeBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runId: string;\n runDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-id': { type: 'string' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : '',\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : null,\n };\n}\n\nfunction parseProcessPublishBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runId: string;\n runDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-id': { type: 'string' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : '',\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : null,\n };\n}\n\nfunction parseProcessSaveDraftFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n commit: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_PROCESS_SAVE_DRAFT_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commit: Boolean(values.commit),\n };\n}\n\nfunction parseProcessBatchBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction plannedCommand(command: string, subcommand?: string): CliResult {\n const suffix = subcommand ? ` ${subcommand}` : '';\n return {\n exitCode: 2,\n stdout: '',\n stderr: `Command '${command}${suffix}' is part of the planned unified surface but is not implemented yet.\\n`,\n };\n}\n\nfunction applyRemoteOverrides(\n env: NodeJS.ProcessEnv,\n overrides: Pick<ReturnType<typeof parseRemoteFlags>, 'apiBaseUrl' | 'apiKey' | 'region'>,\n) {\n const runtimeEnv = readRuntimeEnv(env);\n\n return {\n ...env,\n TIANGONG_LCA_API_BASE_URL: overrides.apiBaseUrl ?? runtimeEnv.apiBaseUrl ?? undefined,\n TIANGONG_LCA_API_KEY: overrides.apiKey ?? runtimeEnv.apiKey ?? undefined,\n TIANGONG_LCA_REGION: overrides.region ?? runtimeEnv.region,\n } satisfies NodeJS.ProcessEnv;\n}\n\nexport async function executeCli(argv: string[], deps: CliDeps): Promise<CliResult> {\n try {\n const { flags, command, subcommand, commandArgs } = parseCommandLine(argv);\n const publishImpl = deps.runPublishImpl ?? runPublish;\n const validationImpl = deps.runValidationImpl ?? runValidation;\n const lifecyclemodelAutoBuildImpl =\n deps.runLifecyclemodelAutoBuildImpl ?? runLifecyclemodelAutoBuild;\n const lifecyclemodelBuildImpl =\n deps.runLifecyclemodelBuildResultingProcessImpl ?? runLifecyclemodelBuildResultingProcess;\n const lifecyclemodelPublishImpl =\n deps.runLifecyclemodelPublishResultingProcessImpl ?? runLifecyclemodelPublishResultingProcess;\n const lifecyclemodelValidateImpl =\n deps.runLifecyclemodelValidateBuildImpl ?? runLifecyclemodelValidateBuild;\n const lifecyclemodelPublishBuildImpl =\n deps.runLifecyclemodelPublishBuildImpl ?? runLifecyclemodelPublishBuild;\n const lifecyclemodelOrchestrateImpl =\n deps.runLifecyclemodelOrchestrateImpl ?? runLifecyclemodelOrchestrate;\n const processGetImpl = deps.runProcessGetImpl ?? runProcessGet;\n const processListImpl = deps.runProcessListImpl ?? runProcessList;\n const processAutoBuildImpl = deps.runProcessAutoBuildImpl ?? runProcessAutoBuild;\n const processBatchBuildImpl = deps.runProcessBatchBuildImpl ?? runProcessBatchBuild;\n const processResumeBuildImpl = deps.runProcessResumeBuildImpl ?? runProcessResumeBuild;\n const processPublishBuildImpl = deps.runProcessPublishBuildImpl ?? runProcessPublishBuild;\n const processSaveDraftImpl = deps.runProcessSaveDraftImpl ?? runProcessSaveDraft;\n const processReviewImpl = deps.runProcessReviewImpl ?? runProcessReview;\n const flowReviewImpl = deps.runFlowReviewImpl ?? runFlowReview;\n const lifecyclemodelReviewImpl = deps.runLifecyclemodelReviewImpl ?? runLifecyclemodelReview;\n const flowRemediateImpl = deps.runFlowRemediateImpl ?? runFlowRemediate;\n const flowFetchRowsImpl = deps.runFlowFetchRowsImpl ?? runFlowFetchRows;\n const flowMaterializeDecisionsImpl =\n deps.runFlowMaterializeDecisionsImpl ?? runFlowMaterializeDecisions;\n const flowGetImpl = deps.runFlowGetImpl ?? runFlowGet;\n const flowListImpl = deps.runFlowListImpl ?? runFlowList;\n const flowPublishVersionImpl = deps.runFlowPublishVersionImpl ?? runFlowPublishVersion;\n const flowReviewedPublishDataImpl =\n deps.runFlowReviewedPublishDataImpl ?? runFlowReviewedPublishData;\n const flowBuildAliasMapImpl = deps.runFlowBuildAliasMapImpl ?? runFlowBuildAliasMap;\n const flowScanProcessFlowRefsImpl =\n deps.runFlowScanProcessFlowRefsImpl ?? runFlowScanProcessFlowRefs;\n const flowPlanProcessFlowRepairsImpl =\n deps.runFlowPlanProcessFlowRepairsImpl ?? runFlowPlanProcessFlowRepairs;\n const flowApplyProcessFlowRepairsImpl =\n deps.runFlowApplyProcessFlowRepairsImpl ?? runFlowApplyProcessFlowRepairs;\n const flowRegenProductImpl = deps.runFlowRegenProductImpl ?? runFlowRegenProduct;\n const flowValidateProcessesImpl = deps.runFlowValidateProcessesImpl ?? runFlowValidateProcesses;\n\n if (flags.version) {\n return { exitCode: 0, stdout: `${loadCliPackageVersion(import.meta.url)}\\n`, stderr: '' };\n }\n\n if (!command || command === 'help' || flags.help) {\n return { exitCode: 0, stdout: `${renderMainHelp(deps.dotEnvStatus)}\\n`, stderr: '' };\n }\n\n if (command === 'doctor') {\n const doctorFlags = parseDoctorFlags(commandArgs);\n if (doctorFlags.help) {\n return { exitCode: 0, stdout: `${renderDoctorHelp()}\\n`, stderr: '' };\n }\n const report = buildDoctorReport(deps.env, deps.dotEnvStatus);\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: doctorFlags.json ? `${JSON.stringify(report)}\\n` : renderDoctorText(report),\n stderr: '',\n };\n }\n\n if (command === 'search' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderSearchHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'search' && subcommand) {\n const remoteFlags = parseRemoteFlags(commandArgs);\n const commandKey = `search:${subcommand}` as const;\n if (remoteFlags.help) {\n return { exitCode: 0, stdout: `${getRemoteCommandHelp(commandKey)}\\n`, stderr: '' };\n }\n const env = applyRemoteOverrides(deps.env, remoteFlags);\n\n return {\n exitCode: 0,\n stdout: await executeRemoteCommand({\n commandKey,\n inputPath: remoteFlags.inputPath,\n env,\n timeoutMs: remoteFlags.timeoutMs,\n dryRun: remoteFlags.dryRun,\n compactJson: remoteFlags.json,\n fetchImpl: deps.fetchImpl,\n }),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && !subcommand) {\n return { exitCode: 0, stdout: `${renderLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'auto-build') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelAutoBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelAutoBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'build-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelBuildResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishImpl({\n runDir: lifecyclemodelFlags.runDir,\n publishProcesses: lifecyclemodelFlags.publishProcesses,\n publishRelations: lifecyclemodelFlags.publishRelations,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'validate-build') {\n const lifecyclemodelFlags = parseLifecyclemodelValidateBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelValidateBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelValidateImpl({\n runDir: lifecyclemodelFlags.runDir,\n engine: lifecyclemodelFlags.engine,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-build') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishBuildImpl({\n runDir: lifecyclemodelFlags.runDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'orchestrate') {\n const lifecyclemodelFlags = parseLifecyclemodelOrchestrateFlags(commandArgs);\n if (lifecyclemodelFlags.help || !lifecyclemodelFlags.action) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelOrchestrateHelp()}\\n`,\n stderr: '',\n };\n }\n if (\n lifecyclemodelFlags.action !== 'plan' &&\n lifecyclemodelFlags.action !== 'execute' &&\n lifecyclemodelFlags.action !== 'publish'\n ) {\n throw new CliError(\n \"lifecyclemodel orchestrate action must be 'plan', 'execute', or 'publish'.\",\n {\n code: 'INVALID_ARGS',\n exitCode: 2,\n },\n );\n }\n\n const report = await lifecyclemodelOrchestrateImpl({\n action: lifecyclemodelFlags.action,\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n runDir: lifecyclemodelFlags.runDir,\n allowProcessBuild: lifecyclemodelFlags.allowProcessBuild,\n allowSubmodelBuild: lifecyclemodelFlags.allowSubmodelBuild,\n publishLifecyclemodels: lifecyclemodelFlags.publishLifecyclemodels,\n publishResultingProcessRelations: lifecyclemodelFlags.publishResultingProcessRelations,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.action === 'execute' && report.status !== 'completed' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && !subcommand) {\n return { exitCode: 0, stdout: `${renderProcessHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'process' && subcommand === 'get') {\n const processFlags = parseProcessGetFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessGetHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processGetImpl({\n processId: processFlags.processId,\n version: processFlags.version,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'list') {\n const processFlags = parseProcessListFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessListHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processListImpl({\n ids: processFlags.ids,\n version: processFlags.version,\n userId: processFlags.userId,\n stateCodes: processFlags.stateCodes,\n limit: processFlags.limit,\n offset: processFlags.offset,\n all: processFlags.all,\n pageSize: processFlags.pageSize,\n order: processFlags.order,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'auto-build') {\n const processFlags = parseProcessAutoBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessAutoBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processAutoBuildImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'resume-build') {\n const processFlags = parseProcessResumeBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessResumeBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processResumeBuildImpl({\n runId: processFlags.runId || undefined,\n runDir: processFlags.runDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'publish-build') {\n const processFlags = parseProcessPublishBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessPublishBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processPublishBuildImpl({\n runId: processFlags.runId || undefined,\n runDir: processFlags.runDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'save-draft') {\n const processFlags = parseProcessSaveDraftFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessSaveDraftHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processSaveDraftImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n commit: processFlags.commit,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'batch-build') {\n const processFlags = parseProcessBatchBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessBatchBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processBatchBuildImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && !subcommand) {\n return { exitCode: 0, stdout: `${renderFlowHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'flow' && subcommand === 'get') {\n const flowFlags = parseFlowGetFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowGetHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowGetImpl({\n flowId: flowFlags.flowId,\n version: flowFlags.version,\n userId: flowFlags.userId,\n stateCode: flowFlags.stateCode,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'list') {\n const flowFlags = parseFlowListFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowListHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowListImpl({\n ids: flowFlags.ids,\n version: flowFlags.version,\n userId: flowFlags.userId,\n stateCodes: flowFlags.stateCodes,\n typeOfDataset: flowFlags.typeOfDataset,\n limit: flowFlags.limit,\n offset: flowFlags.offset,\n all: flowFlags.all,\n pageSize: flowFlags.pageSize,\n order: flowFlags.order,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'remediate') {\n const flowFlags = parseFlowRemediateFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowRemediateHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowRemediateImpl({\n inputFile: flowFlags.inputFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'fetch-rows') {\n const flowFlags = parseFlowFetchRowsFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowFetchRowsHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowFetchRowsImpl({\n refsFile: flowFlags.refsFile,\n outDir: flowFlags.outDir,\n allowLatestFallback: flowFlags.allowLatestFallback,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode:\n flowFlags.failOnMissing &&\n report.status === 'completed_flow_row_materialization_with_gaps'\n ? 1\n : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'materialize-decisions') {\n const flowFlags = parseFlowMaterializeDecisionsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowMaterializeDecisionsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowMaterializeDecisionsImpl({\n decisionFile: flowFlags.decisionFile,\n flowRowsFile: flowFlags.flowRowsFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'publish-version') {\n const flowFlags = parseFlowPublishVersionFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowPublishVersionHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowPublishVersionImpl({\n inputFile: flowFlags.inputFile,\n outDir: flowFlags.outDir,\n commit: flowFlags.commit,\n maxWorkers: flowFlags.maxWorkers,\n limit: flowFlags.limit,\n targetUserId: flowFlags.targetUserId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_flow_publish_version_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'publish-reviewed-data') {\n const flowFlags = parseFlowPublishReviewedDataFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowPublishReviewedDataHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowReviewedPublishDataImpl({\n flowRowsFile: flowFlags.flowRowsFile,\n originalFlowRowsFile: flowFlags.originalFlowRowsFile,\n processRowsFile: flowFlags.processRowsFile,\n outDir: flowFlags.outDir,\n flowPublishPolicy: flowFlags.flowPublishPolicy,\n processPublishPolicy: flowFlags.processPublishPolicy,\n rewriteProcessFlowRefs: flowFlags.rewriteProcessFlowRefs,\n commit: flowFlags.commit,\n maxWorkers: flowFlags.maxWorkers,\n targetUserId: flowFlags.targetUserId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_flow_publish_reviewed_data_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'build-alias-map') {\n const flowFlags = parseFlowBuildAliasMapFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowBuildAliasMapHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowBuildAliasMapImpl({\n oldFlowFiles: flowFlags.oldFlowFiles,\n newFlowFiles: flowFlags.newFlowFiles,\n seedAliasMapFile: flowFlags.seedAliasMapFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'scan-process-flow-refs') {\n const flowFlags = parseFlowScanProcessFlowRefsFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowScanProcessFlowRefsHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowScanProcessFlowRefsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n catalogFlowFiles: flowFlags.catalogFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n excludeEmergy: flowFlags.excludeEmergy,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'plan-process-flow-repairs') {\n const flowFlags = parseFlowPlanProcessFlowRepairsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowPlanProcessFlowRepairsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowPlanProcessFlowRepairsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n scanFindingsFile: flowFlags.scanFindingsFile,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'apply-process-flow-repairs') {\n const flowFlags = parseFlowApplyProcessFlowRepairsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowApplyProcessFlowRepairsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowApplyProcessFlowRepairsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n scanFindingsFile: flowFlags.scanFindingsFile,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n processPoolFile: flowFlags.processPoolFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'regen-product') {\n const flowFlags = parseFlowRegenProductFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowRegenProductHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowRegenProductImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n catalogFlowFiles: flowFlags.catalogFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n excludeEmergy: flowFlags.excludeEmergy,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n apply: flowFlags.apply,\n processPoolFile: flowFlags.processPoolFile,\n tidasMode: flowFlags.tidasMode,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: report.validation.ok === false ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'validate-processes') {\n const flowFlags = parseFlowValidateProcessesFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowValidateProcessesHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowValidateProcessesImpl({\n originalProcessesFile: flowFlags.originalProcessesFile,\n patchedProcessesFile: flowFlags.patchedProcessesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n tidasMode: flowFlags.tidasMode,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: report.summary.failed > 0 ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'admin' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderAdminHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'admin' && subcommand === 'embedding-run') {\n const remoteFlags = parseRemoteFlags(commandArgs);\n if (remoteFlags.help) {\n return {\n exitCode: 0,\n stdout: `${getRemoteCommandHelp('admin:embedding-run')}\\n`,\n stderr: '',\n };\n }\n const env = applyRemoteOverrides(deps.env, remoteFlags);\n\n return {\n exitCode: 0,\n stdout: await executeRemoteCommand({\n commandKey: 'admin:embedding-run',\n inputPath: remoteFlags.inputPath,\n env,\n timeoutMs: remoteFlags.timeoutMs,\n dryRun: remoteFlags.dryRun,\n compactJson: remoteFlags.json,\n fetchImpl: deps.fetchImpl,\n }),\n stderr: '',\n };\n }\n\n if (command === 'publish' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderPublishHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'publish' && subcommand === 'run') {\n const publishFlags = parsePublishFlags(commandArgs);\n if (publishFlags.help) {\n return { exitCode: 0, stdout: `${renderPublishHelp()}\\n`, stderr: '' };\n }\n\n const report = await publishImpl({\n inputPath: publishFlags.inputPath,\n outDir: publishFlags.outDir,\n commit: publishFlags.commitOverride,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, publishFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'validation' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderValidationHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'validation' && subcommand === 'run') {\n const validationFlags = parseValidationFlags(commandArgs);\n if (validationFlags.help) {\n return { exitCode: 0, stdout: `${renderValidationHelp()}\\n`, stderr: '' };\n }\n\n const report = await validationImpl({\n inputDir: validationFlags.inputDir,\n engine: validationFlags.engine,\n reportFile: validationFlags.reportFile,\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, validationFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && !subcommand) {\n return { exitCode: 0, stdout: `${renderReviewHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'review' && subcommand === 'process') {\n const reviewFlags = parseReviewProcessFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewProcessHelp()}\\n`, stderr: '' };\n }\n\n const report = await processReviewImpl({\n rowsFile: reviewFlags.rowsFile,\n runRoot: reviewFlags.runRoot,\n runId: reviewFlags.runId,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n enableLlm: reviewFlags.enableLlm,\n llmModel: reviewFlags.llmModel,\n llmMaxProcesses: reviewFlags.llmMaxProcesses,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && subcommand === 'flow') {\n const reviewFlags = parseReviewFlowFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewFlowHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowReviewImpl({\n rowsFile: reviewFlags.rowsFile,\n flowsDir: reviewFlags.flowsDir,\n runRoot: reviewFlags.runRoot,\n runId: reviewFlags.runId,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n enableLlm: reviewFlags.enableLlm,\n llmModel: reviewFlags.llmModel,\n llmMaxFlows: reviewFlags.llmMaxFlows,\n llmBatchSize: reviewFlags.llmBatchSize,\n similarityThreshold: reviewFlags.similarityThreshold,\n methodologyId: reviewFlags.methodologyId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && subcommand === 'lifecyclemodel') {\n const reviewFlags = parseReviewLifecyclemodelFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n const report = await lifecyclemodelReviewImpl({\n runDir: reviewFlags.runDir,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n return plannedCommand(command, subcommand ?? undefined);\n } catch (error) {\n const payload = toErrorPayload(error);\n const exitCode = error instanceof CliError ? error.exitCode : 1;\n return {\n exitCode,\n stdout: '',\n stderr: `${JSON.stringify(payload)}\\n`,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseArgs } from 'node:util';\nimport { buildDoctorReport, readRuntimeEnv } from './lib/env.js';\nimport type { DotEnvLoadResult } from './lib/dotenv.js';\nimport { CliError, toErrorPayload } from './lib/errors.js';\nimport type { FetchLike } from './lib/http.js';\nimport { stringifyJson } from './lib/io.js';\nimport { loadCliPackageVersion } from './lib/package-version.js';\nimport {\n runLifecyclemodelAutoBuild,\n type LifecyclemodelAutoBuildReport,\n type RunLifecyclemodelAutoBuildOptions,\n} from './lib/lifecyclemodel-auto-build.js';\nimport {\n runLifecyclemodelBuildResultingProcess,\n type LifecyclemodelResultingProcessReport,\n type RunLifecyclemodelResultingProcessOptions,\n} from './lib/lifecyclemodel-resulting-process.js';\nimport {\n runLifecyclemodelPublishResultingProcess,\n type LifecyclemodelPublishResultingProcessReport,\n type RunLifecyclemodelPublishResultingProcessOptions,\n} from './lib/lifecyclemodel-publish-resulting-process.js';\nimport {\n runLifecyclemodelValidateBuild,\n type LifecyclemodelValidateBuildReport,\n type RunLifecyclemodelValidateBuildOptions,\n} from './lib/lifecyclemodel-validate-build.js';\nimport {\n runLifecyclemodelPublishBuild,\n type LifecyclemodelPublishBuildReport,\n type RunLifecyclemodelPublishBuildOptions,\n} from './lib/lifecyclemodel-publish-build.js';\nimport {\n runLifecyclemodelSaveDraft,\n type LifecyclemodelSaveDraftReport,\n type RunLifecyclemodelSaveDraftOptions,\n} from './lib/lifecyclemodel-save-draft-run.js';\nimport {\n runLifecyclemodelGraph,\n type LifecyclemodelGraphReport,\n type RunLifecyclemodelGraphOptions,\n} from './lib/lifecyclemodel-graph.js';\nimport {\n runLifecyclemodelOrchestrate,\n type LifecyclemodelOrchestrateReport,\n type RunLifecyclemodelOrchestrateOptions,\n} from './lib/lifecyclemodel-orchestrate.js';\nimport {\n runProcessAutoBuild,\n type ProcessAutoBuildReport,\n type RunProcessAutoBuildOptions,\n} from './lib/process-auto-build.js';\nimport {\n runProcessGet,\n type ProcessGetReport,\n type RunProcessGetOptions,\n} from './lib/process-get.js';\nimport {\n runProcessList,\n type ProcessListReport,\n type RunProcessListOptions,\n} from './lib/process-list.js';\nimport {\n runProcessBatchBuild,\n type ProcessBatchBuildReport,\n type RunProcessBatchBuildOptions,\n} from './lib/process-batch-build.js';\nimport {\n runProcessScopeStatistics,\n type ProcessScopeStatisticsReport,\n type RunProcessScopeStatisticsOptions,\n} from './lib/process-scope-statistics.js';\nimport {\n runProcessRefreshReferences,\n type ProcessRefreshReferencesReport,\n type RunProcessRefreshReferencesOptions,\n} from './lib/process-refresh-references.js';\nimport {\n runProcessDedupReview,\n type ProcessDedupReviewReport,\n type RunProcessDedupReviewOptions,\n} from './lib/process-dedup-review.js';\nimport {\n runProcessResumeBuild,\n type ProcessResumeBuildReport,\n type RunProcessResumeBuildOptions,\n} from './lib/process-resume-build.js';\nimport {\n runProcessPublishBuild,\n type ProcessPublishBuildReport,\n type RunProcessPublishBuildOptions,\n} from './lib/process-publish-build.js';\nimport {\n runProcessSaveDraft,\n type ProcessSaveDraftReport,\n type RunProcessSaveDraftOptions,\n} from './lib/process-save-draft-run.js';\nimport {\n runProcessRequiredFieldsComplete,\n type ProcessRequiredFieldsReport,\n type RunProcessRequiredFieldsCompleteOptions,\n} from './lib/process-required-fields.js';\nimport {\n runProcessVerifyRows,\n type ProcessVerifyRowsReport,\n type RunProcessVerifyRowsOptions,\n} from './lib/process-verify-rows.js';\nimport {\n runFlowBuildPlanMaterialize,\n runFlowBuildPlanValidate,\n runProcessBuildPlanMaterialize,\n runProcessBuildPlanValidate,\n type FlowBuildPlanGateReport,\n type ProcessBuildPlanGateReport,\n type RunFlowBuildPlanMaterializeOptions,\n type RunFlowBuildPlanValidateOptions,\n type RunProcessBuildPlanMaterializeOptions,\n type RunProcessBuildPlanValidateOptions,\n} from './lib/process-flow-build-plan.js';\nimport {\n runFlowIdentityPreflight,\n runProcessIdentityPreflight,\n type FlowIdentityPreflightReport,\n type ProcessIdentityPreflightReport,\n type RunFlowIdentityPreflightOptions,\n type RunProcessIdentityPreflightOptions,\n} from './lib/identity-preflight.js';\nimport { runPublish, type PublishReport, type RunPublishOptions } from './lib/publish.js';\nimport {\n runProcessReview,\n type ProcessReviewReport,\n type RunProcessReviewOptions,\n} from './lib/review-process.js';\nimport {\n runFlowReview,\n type FlowReviewReport,\n type RunFlowReviewOptions,\n} from './lib/review-flow.js';\nimport {\n runLifecyclemodelReview,\n type LifecyclemodelReviewReport,\n type RunLifecyclemodelReviewOptions,\n} from './lib/review-lifecyclemodel.js';\nimport {\n runFlowRemediate,\n type FlowRemediationReport,\n type RunFlowRemediateOptions,\n} from './lib/flow-remediate.js';\nimport {\n runFlowFetchRows,\n type FlowFetchRowsReport,\n type RunFlowFetchRowsOptions,\n} from './lib/flow-fetch-rows.js';\nimport {\n runFlowMaterializeDecisions,\n type FlowMaterializeDecisionsReport,\n type RunFlowMaterializeDecisionsOptions,\n} from './lib/flow-materialize-decisions.js';\nimport { runFlowGet, type FlowGetReport, type RunFlowGetOptions } from './lib/flow-get.js';\nimport { runFlowList, type FlowListReport, type RunFlowListOptions } from './lib/flow-list.js';\nimport {\n runFlowPublishVersion,\n type FlowPublishVersionReport,\n type RunFlowPublishVersionOptions,\n} from './lib/flow-publish-version.js';\nimport {\n runFlowReviewedPublishData,\n type FlowReviewedPublishDataReport,\n type RunFlowReviewedPublishDataOptions,\n} from './lib/flow-publish-reviewed-data.js';\nimport {\n runFlowBuildAliasMap,\n type FlowBuildAliasMapReport,\n type RunFlowBuildAliasMapOptions,\n} from './lib/flow-build-alias-map.js';\nimport {\n runFlowApplyProcessFlowRepairs,\n runFlowPlanProcessFlowRepairs,\n runFlowRegenProduct,\n runFlowScanProcessFlowRefs,\n runFlowValidateProcesses,\n type FlowApplyProcessFlowRepairsReport,\n type FlowPlanProcessFlowRepairsReport,\n type FlowRegenProductReport,\n type FlowScanProcessFlowRefsReport,\n type FlowValidateProcessesReport,\n type RunFlowApplyProcessFlowRepairsOptions,\n type RunFlowPlanProcessFlowRepairsOptions,\n type RunFlowRegenProductOptions,\n type RunFlowScanProcessFlowRefsOptions,\n type RunFlowValidateProcessesOptions,\n} from './lib/flow-regen-product.js';\nimport { executeRemoteCommand, getRemoteCommandHelp } from './lib/remote.js';\nimport {\n runValidation,\n type RunValidationOptions,\n type ValidationRunReport,\n} from './lib/validation.js';\nimport {\n runDatasetValidate,\n type DatasetValidateReport,\n type RunDatasetValidateOptions,\n} from './lib/dataset-validate.js';\nimport {\n runDatasetReferencesRewrite,\n type DatasetReferencesRewriteReport,\n type RunDatasetReferencesRewriteOptions,\n} from './lib/dataset-references-rewrite.js';\nimport {\n runDatasetRemoteRefresh,\n type DatasetRemoteRefreshReport,\n type RunDatasetRemoteRefreshOptions,\n} from './lib/dataset-remote-refresh.js';\nimport {\n runDatasetRemoteVerify,\n type DatasetRemoteVerificationReport,\n type RunDatasetRemoteVerifyOptions,\n} from './lib/dataset-remote-verify.js';\nimport {\n runDatasetBilingualApply,\n runDatasetBilingualExtract,\n runDatasetBilingualValidate,\n type DatasetBilingualApplyReport,\n type DatasetBilingualExtractReport,\n type DatasetBilingualValidateReport,\n type RunDatasetBilingualApplyOptions,\n type RunDatasetBilingualExtractOptions,\n type RunDatasetBilingualValidateOptions,\n} from './lib/dataset-bilingual.js';\nimport {\n runDatasetEvidenceSearch,\n type EvidenceSearchReport,\n type RunDatasetEvidenceSearchOptions,\n} from './lib/dataset-evidence-search.js';\nimport {\n runDatasetContract,\n type DatasetContractReport,\n type RunDatasetContractOptions,\n} from './lib/dataset-contract.js';\nimport {\n runDatasetImportLcaConvert,\n type DatasetImportLcaReport,\n type RunDatasetImportLcaConvertOptions,\n} from './lib/dataset-import-lca.js';\nimport {\n runDatasetAuthor,\n type DatasetAuthorReport,\n type RunDatasetAuthorOptions,\n} from './lib/dataset-author.js';\n\nexport type CliDeps = {\n env: NodeJS.ProcessEnv;\n dotEnvStatus: DotEnvLoadResult;\n fetchImpl: FetchLike;\n runPublishImpl?: (options: RunPublishOptions) => Promise<PublishReport>;\n runValidationImpl?: (options: RunValidationOptions) => Promise<ValidationRunReport>;\n runLifecyclemodelAutoBuildImpl?: (\n options: RunLifecyclemodelAutoBuildOptions,\n ) => Promise<LifecyclemodelAutoBuildReport>;\n runLifecyclemodelBuildResultingProcessImpl?: (\n options: RunLifecyclemodelResultingProcessOptions,\n ) => Promise<LifecyclemodelResultingProcessReport>;\n runLifecyclemodelPublishResultingProcessImpl?: (\n options: RunLifecyclemodelPublishResultingProcessOptions,\n ) => Promise<LifecyclemodelPublishResultingProcessReport>;\n runLifecyclemodelValidateBuildImpl?: (\n options: RunLifecyclemodelValidateBuildOptions,\n ) => Promise<LifecyclemodelValidateBuildReport>;\n runLifecyclemodelPublishBuildImpl?: (\n options: RunLifecyclemodelPublishBuildOptions,\n ) => Promise<LifecyclemodelPublishBuildReport>;\n runLifecyclemodelSaveDraftImpl?: (\n options: RunLifecyclemodelSaveDraftOptions,\n ) => Promise<LifecyclemodelSaveDraftReport>;\n runLifecyclemodelGraphImpl?: (\n options: RunLifecyclemodelGraphOptions,\n ) => Promise<LifecyclemodelGraphReport>;\n runLifecyclemodelOrchestrateImpl?: (\n options: RunLifecyclemodelOrchestrateOptions,\n ) => Promise<LifecyclemodelOrchestrateReport>;\n runProcessGetImpl?: (options: RunProcessGetOptions) => Promise<ProcessGetReport>;\n runProcessListImpl?: (options: RunProcessListOptions) => Promise<ProcessListReport>;\n runProcessAutoBuildImpl?: (\n options: RunProcessAutoBuildOptions,\n ) => Promise<ProcessAutoBuildReport>;\n runProcessBatchBuildImpl?: (\n options: RunProcessBatchBuildOptions,\n ) => Promise<ProcessBatchBuildReport>;\n runProcessScopeStatisticsImpl?: (\n options: RunProcessScopeStatisticsOptions,\n ) => Promise<ProcessScopeStatisticsReport>;\n runProcessRefreshReferencesImpl?: (\n options: RunProcessRefreshReferencesOptions,\n ) => Promise<ProcessRefreshReferencesReport>;\n runProcessDedupReviewImpl?: (\n options: RunProcessDedupReviewOptions,\n ) => Promise<ProcessDedupReviewReport>;\n runProcessResumeBuildImpl?: (\n options: RunProcessResumeBuildOptions,\n ) => Promise<ProcessResumeBuildReport>;\n runProcessPublishBuildImpl?: (\n options: RunProcessPublishBuildOptions,\n ) => Promise<ProcessPublishBuildReport>;\n runProcessSaveDraftImpl?: (\n options: RunProcessSaveDraftOptions,\n ) => Promise<ProcessSaveDraftReport>;\n runProcessRequiredFieldsCompleteImpl?: (\n options: RunProcessRequiredFieldsCompleteOptions,\n ) => Promise<ProcessRequiredFieldsReport>;\n runProcessVerifyRowsImpl?: (\n options: RunProcessVerifyRowsOptions,\n ) => Promise<ProcessVerifyRowsReport>;\n runProcessIdentityPreflightImpl?: (\n options: RunProcessIdentityPreflightOptions,\n ) => Promise<ProcessIdentityPreflightReport>;\n runProcessBuildPlanValidateImpl?: (\n options: RunProcessBuildPlanValidateOptions,\n ) => Promise<ProcessBuildPlanGateReport>;\n runProcessBuildPlanMaterializeImpl?: (\n options: RunProcessBuildPlanMaterializeOptions,\n ) => Promise<ProcessBuildPlanGateReport>;\n runProcessReviewImpl?: (options: RunProcessReviewOptions) => Promise<ProcessReviewReport>;\n runFlowReviewImpl?: (options: RunFlowReviewOptions) => Promise<FlowReviewReport>;\n runLifecyclemodelReviewImpl?: (\n options: RunLifecyclemodelReviewOptions,\n ) => Promise<LifecyclemodelReviewReport>;\n runFlowRemediateImpl?: (options: RunFlowRemediateOptions) => Promise<FlowRemediationReport>;\n runFlowFetchRowsImpl?: (options: RunFlowFetchRowsOptions) => Promise<FlowFetchRowsReport>;\n runFlowMaterializeDecisionsImpl?: (\n options: RunFlowMaterializeDecisionsOptions,\n ) => Promise<FlowMaterializeDecisionsReport>;\n runFlowGetImpl?: (options: RunFlowGetOptions) => Promise<FlowGetReport>;\n runFlowListImpl?: (options: RunFlowListOptions) => Promise<FlowListReport>;\n runFlowPublishVersionImpl?: (\n options: RunFlowPublishVersionOptions,\n ) => Promise<FlowPublishVersionReport>;\n runFlowReviewedPublishDataImpl?: (\n options: RunFlowReviewedPublishDataOptions,\n ) => Promise<FlowReviewedPublishDataReport>;\n runFlowBuildAliasMapImpl?: (\n options: RunFlowBuildAliasMapOptions,\n ) => Promise<FlowBuildAliasMapReport>;\n runFlowScanProcessFlowRefsImpl?: (\n options: RunFlowScanProcessFlowRefsOptions,\n ) => Promise<FlowScanProcessFlowRefsReport>;\n runFlowPlanProcessFlowRepairsImpl?: (\n options: RunFlowPlanProcessFlowRepairsOptions,\n ) => Promise<FlowPlanProcessFlowRepairsReport>;\n runFlowApplyProcessFlowRepairsImpl?: (\n options: RunFlowApplyProcessFlowRepairsOptions,\n ) => Promise<FlowApplyProcessFlowRepairsReport>;\n runFlowRegenProductImpl?: (\n options: RunFlowRegenProductOptions,\n ) => Promise<FlowRegenProductReport>;\n runFlowValidateProcessesImpl?: (\n options: RunFlowValidateProcessesOptions,\n ) => Promise<FlowValidateProcessesReport>;\n runFlowIdentityPreflightImpl?: (\n options: RunFlowIdentityPreflightOptions,\n ) => Promise<FlowIdentityPreflightReport>;\n runFlowBuildPlanValidateImpl?: (\n options: RunFlowBuildPlanValidateOptions,\n ) => Promise<FlowBuildPlanGateReport>;\n runFlowBuildPlanMaterializeImpl?: (\n options: RunFlowBuildPlanMaterializeOptions,\n ) => Promise<FlowBuildPlanGateReport>;\n runDatasetValidateImpl?: (options: RunDatasetValidateOptions) => Promise<DatasetValidateReport>;\n runDatasetReferencesRewriteImpl?: (\n options: RunDatasetReferencesRewriteOptions,\n ) => Promise<DatasetReferencesRewriteReport>;\n runDatasetRemoteRefreshImpl?: (\n options: RunDatasetRemoteRefreshOptions,\n ) => Promise<DatasetRemoteRefreshReport>;\n runDatasetRemoteVerifyImpl?: (\n options: RunDatasetRemoteVerifyOptions,\n ) => Promise<DatasetRemoteVerificationReport>;\n runDatasetBilingualExtractImpl?: (\n options: RunDatasetBilingualExtractOptions,\n ) => Promise<DatasetBilingualExtractReport>;\n runDatasetBilingualApplyImpl?: (\n options: RunDatasetBilingualApplyOptions,\n ) => Promise<DatasetBilingualApplyReport>;\n runDatasetBilingualValidateImpl?: (\n options: RunDatasetBilingualValidateOptions,\n ) => Promise<DatasetBilingualValidateReport>;\n runDatasetEvidenceSearchImpl?: (\n options: RunDatasetEvidenceSearchOptions,\n ) => Promise<EvidenceSearchReport>;\n runDatasetContractImpl?: (options: RunDatasetContractOptions) => Promise<DatasetContractReport>;\n runDatasetImportLcaConvertImpl?: (\n options: RunDatasetImportLcaConvertOptions,\n ) => Promise<DatasetImportLcaReport> | DatasetImportLcaReport;\n runDatasetAuthorImpl?: (options: RunDatasetAuthorOptions) => Promise<DatasetAuthorReport>;\n};\n\nexport type CliResult = {\n exitCode: number;\n stdout: string;\n stderr: string;\n};\n\ntype RootFlags = {\n help: boolean;\n version: boolean;\n};\n\nfunction renderMainHelp(dotEnvStatus: DotEnvLoadResult): string {\n return `TianGong LCA CLI\n\nUnified TianGong command entrypoint.\n\nDesign principles:\n - direct REST / Edge Function access\n - no MCP inside the CLI\n - TypeScript source on Node 24\n - file-first input and JSON-first output\n\nUsage:\n tiangong-lca <command> [subcommand] [options]\n\nCommands:\nImplemented Commands:\n doctor show environment diagnostics\n search flow | process | lifecyclemodel\n process get | list | identity-preflight | build-plan | scope-statistics | dedup-review | auto-build | resume-build | publish-build | complete-required-fields | save-draft | batch-build | refresh-references | verify-rows\n dataset contract get | context-pack | import-lca convert | author | validate | verify-remote | bilingual extract/apply/validate | evidence-search plan/run | references rewrite/refresh-remote\n flow get | list | identity-preflight | build-plan | fetch-rows | materialize-decisions | remediate | publish-version | publish-reviewed-data | build-alias-map | scan-process-flow-refs | plan-process-flow-repairs | apply-process-flow-repairs | regen-product | validate-processes\n lifecyclemodel auto-build | validate-build | publish-build | save-draft | graph | build-resulting-process | publish-resulting-process | orchestrate\n review process | flow | lifecyclemodel\n publish run\n validation run\n admin embedding-run\n\nPlanned Surface (not implemented yet):\n auth whoami | doctor-auth\n job get | wait | logs\n\nPlanned commands currently print an explicit \"not implemented yet\" message and exit with code 2.\n\nExamples:\n tiangong-lca doctor\n tiangong-lca search flow --input ./request.json\n tiangong-lca search process --input ./request.json --dry-run\n tiangong-lca process get --id <process-id>\n tiangong-lca process list --state-code 100 --limit 20\n tiangong-lca process identity-preflight --input ./process-preflight.json --out-dir ./process-preflight\n tiangong-lca process build-plan validate --input ./process-build-plan.json --out-dir ./process-build-plan\n tiangong-lca process scope-statistics --out-dir /abs/path/to/process-scope --state-code 0 --state-code 100\n tiangong-lca process dedup-review --input ./duplicate-groups.json --out-dir /abs/path/to/process-dedup\n tiangong-lca process auto-build --input ./pff-request.json --out-dir /abs/path/to/process-run\n tiangong-lca process resume-build --run-dir /abs/path/to/process-run\n tiangong-lca process publish-build --run-dir /abs/path/to/process-run\n tiangong-lca process complete-required-fields --input ./processes.jsonl --out ./processes.completed.jsonl --default-unit MJ\n tiangong-lca process save-draft --input ./patched-processes.jsonl --out-dir /abs/path/to/process-save-draft --dry-run\n tiangong-lca process batch-build --input ./batch-request.json --out-dir /abs/path/to/process-batch\n tiangong-lca process refresh-references --out-dir /abs/path/to/process-refresh --dry-run\n tiangong-lca process verify-rows --rows-file ./process-list-report.json --out-dir /abs/path/to/process-verify\n tiangong-lca dataset validate --input ./rows.jsonl --type auto --out-dir /abs/path/to/dataset-validate\n tiangong-lca dataset contract get --type process --include schema,methodology,ruleset --out-dir ./contract\n tiangong-lca dataset context-pack --type process --profile ai-import --out-dir ./context-pack\n tiangong-lca dataset import-lca convert --input ./external-package --output-dir ./converted --from-format auto --target tidas\n tiangong-lca dataset author --input ./source.pdf --target-types process,flow --out-dir ./authoring\n tiangong-lca dataset verify-remote --input ./rows.jsonl --out-dir /abs/path/to/dataset-remote-verify\n tiangong-lca dataset bilingual extract --input ./rows/processes.jsonl --type process --out-dir ./translation\n tiangong-lca dataset bilingual apply --input ./rows/processes.jsonl --translations ./translation/trans-reviewed.jsonl --out ./rows/processes.translated.jsonl\n tiangong-lca dataset bilingual validate --input ./rows/processes.translated.jsonl --type process --out-dir ./translation-validate\n tiangong-lca dataset evidence-search plan --query \"中国2026年电力结构数据\" --out-dir ./evidence-search\n tiangong-lca dataset evidence-search run --input ./evidence-search.request.json --results ./search-results.json --out-dir ./evidence-search\n tiangong-lca dataset references rewrite --input ./rows.jsonl --from flow:<old-id>@<old-version> --to flow:<new-id>@<new-version> --out-dir /abs/path/to/dataset-rewrite\n tiangong-lca lifecyclemodel auto-build --input ./lifecyclemodel-auto-build.request.json --out-dir /abs/path/to/lifecyclemodel-run\n tiangong-lca lifecyclemodel validate-build --run-dir /abs/path/to/lifecyclemodel-run\n tiangong-lca lifecyclemodel publish-build --run-dir /abs/path/to/lifecyclemodel-run\n tiangong-lca lifecyclemodel save-draft --input ./lifecyclemodels.jsonl --out-dir /abs/path/to/lifecyclemodel-save-draft --dry-run\n tiangong-lca lifecyclemodel graph --input ./lifecyclemodels.jsonl --out-dir /abs/path/to/lifecyclemodel-graph --format all\n tiangong-lca lifecyclemodel orchestrate plan --input ./lifecyclemodel-orchestrate.request.json --out-dir /abs/path/to/lifecyclemodel-recursive-run\n tiangong-lca flow get --id <flow-id> --version <version>\n tiangong-lca flow list --id <flow-id> --state-code 100 --limit 20\n tiangong-lca flow identity-preflight --input ./flow-preflight.json --out-dir ./flow-preflight\n tiangong-lca flow build-plan validate --input ./flow-build-plan.json --out-dir ./flow-build-plan\n tiangong-lca flow fetch-rows --refs-file ./flow-refs.json --out-dir ./flow-fetch\n tiangong-lca flow materialize-decisions --decision-file ./approved-decisions.json --flow-rows-file ./review-input-rows.jsonl --out-dir ./flow-decisions\n tiangong-lca flow remediate --input-file ./invalid-flows.jsonl --out-dir ./flow-remediation\n tiangong-lca flow publish-version --input-file ./ready-flows.jsonl --out-dir ./flow-publish --commit\n tiangong-lca flow publish-reviewed-data --flow-rows-file ./reviewed-flows.jsonl --original-flow-rows-file ./original-flows.jsonl --out-dir ./flow-publish-review\n tiangong-lca flow build-alias-map --old-flow-file ./old-flows.jsonl --new-flow-file ./new-flows.jsonl --out-dir ./flow-alias-map\n tiangong-lca flow scan-process-flow-refs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-scan\n tiangong-lca flow plan-process-flow-repairs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-repair-plan\n tiangong-lca flow apply-process-flow-repairs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-repair-apply\n tiangong-lca flow regen-product --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-regeneration --apply\n tiangong-lca flow validate-processes --original-processes-file ./before.jsonl --patched-processes-file ./after.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-validation\n tiangong-lca review process --rows-file ./processes.jsonl --out-dir ./review\n tiangong-lca review process --run-root /abs/path/to/process-run --run-id <run_id> --out-dir ./review\n tiangong-lca review flow --rows-file ./flows.json --out-dir ./review\n tiangong-lca review lifecyclemodel --run-dir /abs/path/to/lifecyclemodel-run --out-dir ./lifecyclemodel-review\n tiangong-lca publish run --input ./publish-request.json --dry-run\n tiangong-lca validation run --input-dir ./package --engine auto\n tiangong-lca admin embedding-run --input ./jobs.json\n\nEnvironment:\n .env loaded: ${dotEnvStatus.loaded ? `yes (${dotEnvStatus.path}, ${dotEnvStatus.count} keys)` : 'no'}\n`.trim();\n}\n\nfunction renderDoctorHelp(): string {\n return `Usage:\n tiangong-lca doctor [--json]\n\nOptions:\n --json Print structured environment diagnostics\n -h, --help\n`.trim();\n}\n\nfunction renderSearchHelp(): string {\n return `Usage:\n tiangong-lca search <flow|process|lifecyclemodel> --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --json Print compact JSON\n --dry-run Print the planned HTTP request without sending it\n --api-key <key> Override TIANGONG_LCA_API_KEY\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --region <name> Override TIANGONG_LCA_REGION\n --timeout-ms <n> Request timeout in milliseconds\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n TIANGONG_LCA_REGION (optional)\n\nRuntime note:\n The CLI decodes TIANGONG_LCA_API_KEY as a user API key bootstrap, exchanges it for a user session,\n and sends the resolved access token to Edge Functions.\n`.trim();\n}\n\nfunction renderAdminHelp(): string {\n return `Usage:\n tiangong-lca admin embedding-run --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --json Print compact JSON\n --dry-run Print the planned HTTP request without sending it\n --api-key <key> Override TIANGONG_LCA_API_KEY\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --timeout-ms <n> Request timeout in milliseconds\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI decodes TIANGONG_LCA_API_KEY as a user API key bootstrap, exchanges it for a user session,\n and sends the resolved access token to Edge Functions.\n`.trim();\n}\n\nfunction renderPublishHelp(): string {\n return `Usage:\n tiangong-lca publish run --input <file> [options]\n\nOptions:\n --input <file> JSON publish request file\n --out-dir <dir> Override request out_dir\n --commit Force publish.commit=true\n --dry-run Force publish.commit=false\n --json Print compact JSON\n -h, --help\n\nPath rule:\n Relative out_dir values from the request body or --out-dir resolve from the request file directory.\n\nOutputs written under out_dir:\n - normalized-request.json\n - collected-inputs.json\n - relation-manifest.json\n - verification-report.json\n - publish-report.json\n`.trim();\n}\n\nfunction renderValidationHelp(): string {\n return `Usage:\n tiangong-lca validation run --input-dir <dir> [options]\n\nOptions:\n --input-dir <dir> TIDAS package directory\n --engine <mode> auto | sdk (default: auto)\n --report-file <file> Write the structured validation report to a file\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderDatasetHelp(): string {\n return `Usage:\n tiangong-lca dataset <subcommand> [options]\n\nImplemented Subcommands:\n contract get Write TIDAS schema / methodology / ruleset contract artifacts\n context-pack Write an AI-ready TIDAS contract context pack\n import-lca convert Convert supported external LCA packages through tidas-tools\n author Extract source evidence and prepare TIDAS context packs for AI authoring\n validate Validate local flow / process / lifecyclemodel rows with the TIDAS SDK\n verify-remote Verify dataset roots and TIDAS references against remote published versions\n bilingual extract Extract bilingual translation units from local rows\n bilingual apply Apply reviewed bilingual translations back to local rows\n bilingual validate Validate bilingual rows with deterministic scans and schema/review gates\n evidence-search Plan or record field-level public evidence retrieval\n references rewrite Rewrite flow references in local process and lifecyclemodel rows\n references refresh-remote Refresh local TIDAS reference versions to latest reachable remote rows\n\nExamples:\n tiangong-lca dataset contract get --type process --include schema,methodology,ruleset --out-dir ./contract --help\n tiangong-lca dataset context-pack --type process --profile ai-import --out-dir ./context-pack --help\n tiangong-lca dataset import-lca convert --input ./external-package --output-dir ./converted --from-format auto --target tidas --help\n tiangong-lca dataset author --input ./source.pdf --target-types process,flow --out-dir ./authoring --help\n tiangong-lca dataset validate --input ./rows.jsonl --type auto --out-dir ./dataset-validate --help\n tiangong-lca dataset verify-remote --input ./rows.jsonl --out-dir ./dataset-remote-verify --help\n tiangong-lca dataset bilingual extract --input ./rows.jsonl --type process --out-dir ./translation --help\n tiangong-lca dataset bilingual apply --input ./rows.jsonl --translations ./trans-reviewed.jsonl --out ./rows.translated.jsonl --help\n tiangong-lca dataset bilingual validate --input ./rows.translated.jsonl --type process --out-dir ./translation-validate --help\n tiangong-lca dataset evidence-search plan --query \"中国2026年电力结构数据\" --out-dir ./evidence-search --help\n tiangong-lca dataset evidence-search run --input ./request.json --results ./search-results.json --out-dir ./evidence-search --help\n tiangong-lca dataset references rewrite --input ./rows.jsonl --from flow:<old-id>@<old-version> --to flow:<new-id>@<new-version> --out-dir ./dataset-rewrite --help\n tiangong-lca dataset references refresh-remote --input ./rows.jsonl --out ./rows.refreshed.jsonl --out-dir ./dataset-reference-refresh --help\n`.trim();\n}\n\nfunction renderDatasetContractHelp(): string {\n return `Usage:\n tiangong-lca dataset contract get --type <type> --out-dir <dir> [options]\n\nOptions:\n --type <type> TIDAS target type: process, flow, source, contact, unitgroup, flowproperty, lifecyclemodel, lciamethod\n --include <list> Comma-separated or repeatable list: schema, methodology, ruleset (default: all)\n --profile <name> default | ai-import (default: default)\n --out-dir <dir> Artifact directory\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/contract-manifest.json\n - outputs/schema.json when requested and available\n - outputs/methodology.yaml when requested and available\n - outputs/runtime-ruleset.json when requested and available\n - outputs/contract-report.json\n`.trim();\n}\n\nfunction renderDatasetContextPackHelp(): string {\n return `Usage:\n tiangong-lca dataset context-pack --type <type> --out-dir <dir> [options]\n\nOptions:\n --type <type> TIDAS target type for AI authoring or repair\n --include <list> Comma-separated or repeatable list: schema, methodology, ruleset (default: all)\n --profile <name> default | ai-import (default: ai-import)\n --out-dir <dir> Artifact directory\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/contract-manifest.json\n - outputs/schema.json\n - outputs/methodology.yaml when available\n - outputs/runtime-ruleset.json when available\n - outputs/ai-context.json\n - outputs/ai-context.md\n - outputs/contract-report.json\n`.trim();\n}\n\nfunction renderDatasetImportLcaHelp(): string {\n return `Usage:\n tiangong-lca dataset import-lca convert --input <path> --output-dir <dir> [options]\n\nOptions:\n --input <path> Source file, directory, or package to import\n --output-dir <dir> Output directory for generated package and reports\n --from-format <format> auto, ecospold1, ecospold2, openlca-jsonld, openlca-process-xlsx, simapro-csv\n --target <target> tidas | ilcd | both (default: tidas)\n --report <file> Conversion report path (default: <output-dir>/conversion-report.json)\n --mapping-dir <dir> Optional custom mapping/reference data directory\n --language <lang> Default language for generated text (default: en)\n --validation-jobs <n> Parallel validation jobs passed to tidas-tools (default: 1)\n --detect-only Only detect the input format and write the report\n --fail-on-warning Return non-zero when converter warnings are present\n --python <bin> Python executable (default: python3)\n --tidas-tools-dir <dir> Explicit tidas-tools checkout path\n --json Print compact JSON\n -h, --help\n\nOutputs written under --output-dir:\n - conversion-report.json\n - tidas/ when target includes TIDAS and not detect-only\n - ilcd/ when target includes ILCD and not detect-only\n - mapping.csv when not detect-only\n - outputs/import-lca-report.json\n`.trim();\n}\n\nfunction renderDatasetAuthorHelp(): string {\n return `Usage:\n tiangong-lca dataset author --input <file> --target-types <types> --out-dir <dir> [options]\n\nOptions:\n --input <file> PDF, Excel, image, markdown, or source document file\n --target-types <list> Comma-separated or repeatable TIDAS types, for example process,flow,source\n --out-dir <dir> Artifact directory\n --prompt <text> Optional extraction prompt passed to the unstructured parser\n --provider <name> Optional unstructured parser provider override\n --model <name> Optional unstructured parser model override\n --timeout-ms <n> Parser timeout in milliseconds (default: 120000)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/source-extract.json\n - context/<type>/outputs/contract-manifest.json\n - context/<type>/outputs/ai-context.json\n - outputs/authoring-report.json\n\nEnvironment:\n TIANGONG_LCA_UNSTRUCTURED_API_BASE_URL and TIANGONG_LCA_UNSTRUCTURED_API_KEY\n`.trim();\n}\n\nfunction renderDatasetRemoteVerifyHelp(): string {\n return `Usage:\n tiangong-lca dataset verify-remote --input <file> --out-dir <dir> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL; objects with rows[] are also accepted\n --out-dir <dir> Artifact directory for the remote verification report\n --root-policy <mode> existing | candidate (default: existing)\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOutputs written under --out-dir:\n - outputs/remote-verification-report.json\n - outputs/remote-verification.jsonl\n - outputs/blockers.jsonl\n`.trim();\n}\n\nfunction renderDatasetValidateHelp(): string {\n return `Usage:\n tiangong-lca dataset validate --input <file> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL; objects with rows[] are also accepted\n --type <type> auto | flow | process | lifecyclemodel (default: auto)\n --out-dir <dir> Optional artifact directory for validation report and row splits\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/validation-report.json\n - outputs/valid-rows.jsonl\n - outputs/invalid-rows.jsonl\n`.trim();\n}\n\nfunction renderDatasetBilingualHelp(): string {\n return `Usage:\n tiangong-lca dataset bilingual <extract|apply|validate> [options]\n\nSubcommands:\n extract Extract trans-units.jsonl from process/flow/lifecyclemodel rows\n apply Apply reviewed translations to rows and write translation-evidence.json\n validate Run placeholder/mixed-language scans plus schema and process/flow review gates\n\nExamples:\n tiangong-lca dataset bilingual extract --input ./rows/processes.jsonl --type process --out-dir ./translation\n tiangong-lca dataset bilingual apply --input ./rows/processes.jsonl --translations ./translation/trans-reviewed.jsonl --out ./rows/processes.translated.jsonl\n tiangong-lca dataset bilingual validate --input ./rows/processes.translated.jsonl --type process --out-dir ./translation-validate\n`.trim();\n}\n\nfunction renderDatasetBilingualExtractHelp(): string {\n return `Usage:\n tiangong-lca dataset bilingual extract --input <file> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL\n --type <type> auto | flow | process | lifecyclemodel (default: auto)\n --source-lang <lang> Source language code (default: en)\n --target-lang <lang> Target language code (default: zh)\n --out-dir <dir> Artifact directory for trans-units.jsonl and extract-report.json\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/trans-units.jsonl\n - outputs/extract-report.json\n`.trim();\n}\n\nfunction renderDatasetBilingualApplyHelp(): string {\n return `Usage:\n tiangong-lca dataset bilingual apply --input <file> --translations <file> --out <file> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL\n --translations <file> Reviewed translation JSONL from extract units\n --out <file> Output JSONL with translations applied\n --target-lang <lang> Target language code (default: zh)\n --out-dir <dir> Optional artifact directory; defaults to the output file directory\n --json Print compact JSON\n -h, --help\n\nTranslation row fields:\n unit_id, row_index, field_path, source_lang, target_lang, source_text, translated_text,\n basis, review_status, reviewer\n\nOutputs:\n - translated rows at --out\n - outputs/translation-evidence.json\n - outputs/bilingual-apply-report.json\n`.trim();\n}\n\nfunction renderDatasetBilingualValidateHelp(): string {\n return `Usage:\n tiangong-lca dataset bilingual validate --input <file> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL\n --type <type> auto | flow | process | lifecyclemodel (default: auto)\n --out-dir <dir> Artifact directory for scan, schema, and review outputs\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/bilingual-validate-report.json\n - outputs/bilingual-findings.jsonl\n - schema/outputs/validation-report.json\n - review/process/... and/or review/flow/... when applicable\n`.trim();\n}\n\nfunction renderDatasetEvidenceSearchHelp(): string {\n return `Usage:\n tiangong-lca dataset evidence-search <plan|run> [options]\n\nPlan:\n tiangong-lca dataset evidence-search plan --query <text> --out-dir <dir>\n\nRun:\n tiangong-lca dataset evidence-search run --input <request.json> --results <search-results.json> --out-dir <dir>\n tiangong-lca dataset evidence-search run --query <text> --provider-url <url> --out-dir <dir>\n\nOptions:\n --query <text> Evidence question when no --input is supplied\n --input <file> JSON request with question, field, budget, preferred_domains, and required_evidence\n --results <file> Normalized external search results JSON/JSONL captured from web/search tools\n --provider-url <url> Optional generic JSON search provider endpoint\n --provider-key <key> Optional bearer token for --provider-url\n --profile <profile> shallow | balanced | deep (default: balanced)\n --max-queries <n> Override query budget\n --max-results-per-query <n> Override per-query result budget\n --timeout-ms <n> Provider request timeout in milliseconds\n --out-dir <dir> Artifact directory\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/evidence-search-plan.json\n - outputs/evidence-search-results.jsonl\n - outputs/evidence-search-report.json\n - outputs/evidence-search-declaration.json when evidence is absent or only partial\n`.trim();\n}\n\nfunction renderDatasetReferencesHelp(): string {\n return `Usage:\n tiangong-lca dataset references <rewrite|refresh-remote> [options]\n\nRewrite:\n tiangong-lca dataset references rewrite --input <file> --from flow:<id>[@<version>] --to flow:<id>[@<version>] [options]\n\nRefresh remote versions:\n tiangong-lca dataset references refresh-remote --input <file> --out <file> --out-dir <dir> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL; process and lifecyclemodel rows are supported\n --from <ref> Source flow reference, for example flow:<old-id>@01.00.000\n --to <ref> Target flow reference, for example flow:<new-id>@01.01.000\n --out <file> Output JSONL path for refresh-remote patched rows\n --root-policy <mode> existing | candidate for refresh-remote root rows (default: existing)\n --type <type> Repeatable row type filter: process | lifecyclemodel (default: both)\n --types <csv> Comma-separated alias for one or more row types\n --scope <label> Optional artifact label for the already-frozen input scope\n --out-dir <dir> Artifact directory for rewrite plan and patched rows\n --commit Execute state-aware save-draft writes for patched rows\n --dry-run Keep the command local-only (default)\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n none for local dry-run\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n when --commit executes remote writes\n\nOutputs written under --out-dir:\n - outputs/patched-rows.jsonl\n - outputs/rewrite-plan.json\n - outputs/summary.json\n - outputs/remote-refresh-report.json\n - outputs/remote-refresh-patches.jsonl\n - pre-refresh-verify/outputs/remote-verification-report.json\n - post-refresh-verify/outputs/remote-verification-report.json\n`.trim();\n}\n\nfunction renderFlowHelp(): string {\n return `Usage:\n tiangong-lca flow <subcommand> [options]\n\nImplemented Subcommands:\n get Load one flow dataset by identifier through direct Supabase access\n list Enumerate flow datasets through direct Supabase access with deterministic filters\n identity-preflight Compare one target flow against local candidates before generation\n build-plan Validate or materialize a flow build plan into gate artifacts\n fetch-rows Materialize real DB flow refs into local review-input rows and fetch artifacts\n materialize-decisions Materialize approved merge decisions into canonical-map, rewrite-plan, and seed artifacts\n remediate Deterministically repair invalid local flow rows and emit artifact-first outputs\n publish-version Publish remediated flow versions through the unified CLI surface\n publish-reviewed-data Prepare reviewed flow rows, skip unchanged snapshots, and optionally publish the resulting versions\n build-alias-map Build a deterministic flow alias map from old/new local flow snapshots\n scan-process-flow-refs Classify process exchange references against the current flow scope\n plan-process-flow-repairs Plan deterministic repairs for local process-flow references\n apply-process-flow-repairs Apply deterministic process-flow reference repairs and emit patch artifacts\n regen-product Regenerate local process-side artifacts after flow governance changes\n validate-processes Validate locally patched process rows against allowed flow-reference-only changes\n\nExamples:\n tiangong-lca flow --help\n tiangong-lca flow get --help\n tiangong-lca flow list --help\n tiangong-lca flow identity-preflight --help\n tiangong-lca flow build-plan validate --help\n tiangong-lca flow fetch-rows --help\n tiangong-lca flow materialize-decisions --help\n tiangong-lca flow remediate --help\n tiangong-lca flow publish-version --help\n tiangong-lca flow publish-reviewed-data --help\n tiangong-lca flow build-alias-map --help\n tiangong-lca flow scan-process-flow-refs --help\n tiangong-lca flow plan-process-flow-repairs --help\n tiangong-lca flow apply-process-flow-repairs --help\n tiangong-lca flow regen-product --help\n tiangong-lca flow validate-processes --help\n`.trim();\n}\n\nfunction renderFlowBuildPlanHelp(): string {\n return `Usage:\n tiangong-lca flow build-plan <validate|materialize> --input <file> [options]\n\nOptions:\n --input <file> JSON flow build plan; materialize writes a canonical flowDataSet\n --out-dir <dir> Optional artifact directory for gate outputs\n --report-only Print blocker reports with exit code 0\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/build-plan-gate-report.json\n - outputs/materialized-flow.json\n`.trim();\n}\n\nfunction renderFlowIdentityPreflightHelp(): string {\n return `Usage:\n tiangong-lca flow identity-preflight --input <file> [options]\n\nOptions:\n --input <file> JSON preflight request with target flow and optional candidates\n --candidate-input <path>\n Optional JSON/JSONL file or directory of candidate flow rows; repeatable\n --remote-candidates\n Also fetch candidate rows from flow_hybrid_search\n --remote-query <text>\n Override the remote search query; defaults to target identity text\n --remote-limit <n>\n Limit remote candidate rows after fetch\n --out-dir <dir> Optional artifact directory for identity decision outputs\n --json Print compact JSON\n -h, --help\n\nInput contract:\n {\n \"target\": { \"...\": \"flow target or canonical flowDataSet\" },\n \"candidates\": [{ \"...\": \"existing flow row or canonical flowDataSet\" }]\n }\n\nOutputs written under --out-dir:\n - outputs/identity-decision.json\n - outputs/identity-candidates.jsonl\n - outputs/identity-candidate-sources.json\n`.trim();\n}\n\nfunction renderFlowGetHelp(): string {\n return `Usage:\n tiangong-lca flow get --id <flow-id> [options]\n\nOptions:\n --id <flow-id> Flow UUID\n --version <version> Optional requested dataset version; if absent or missing, the latest reachable row is returned\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Optional visibility filter such as 0 or 100\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderFlowListHelp(): string {\n return `Usage:\n tiangong-lca flow list [options]\n\nOptions:\n --id <flow-id> Repeatable exact flow UUID filter\n --version <version> Optional dataset version filter\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Repeatable visibility filter such as 0 or 100\n --type-of-dataset <name> Repeatable flow type filter, for example \"Product flow\" or \"Waste flow\"\n --order <expr> Deterministic PostgREST order expression (default: id.asc,version.asc)\n --limit <n> Page size for one request (default: 100)\n --offset <n> Row offset for one request (default: 0)\n --all Fetch all matching rows via offset pagination\n --page-size <n> Page size when --all is used (default: 100)\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderFlowRemediateHelp(): string {\n return `Usage:\n tiangong-lca flow remediate --input-file <file> --out-dir <dir> [options]\n\nOptions:\n --input-file <file> Invalid flow rows as JSON or JSONL\n --out-dir <dir> Output directory for remediation artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flows_tidas_sdk_plus_classification_remediated_all.jsonl\n - flows_tidas_sdk_plus_classification_remediated_ready_for_mcp.jsonl\n - flows_tidas_sdk_plus_classification_residual_manual_queue.jsonl\n - flows_tidas_sdk_plus_classification_remediation_audit.jsonl\n - flows_tidas_sdk_plus_classification_remediation_report.json\n - flows_tidas_sdk_plus_classification_residual_manual_queue_prompt.md\n`.trim();\n}\n\nfunction renderFlowFetchRowsHelp(): string {\n return `Usage:\n tiangong-lca flow fetch-rows --refs-file <file> --out-dir <dir> [options]\n\nOptions:\n --refs-file <file> Flow refs as JSON or JSONL\n --out-dir <dir> Output directory for fetch artifacts\n --no-latest-fallback Do not fall back to the latest visible version when --version misses\n --fail-on-missing Return exit code 1 when any ref is missing or ambiguous\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOutputs written under --out-dir:\n - resolved-flow-rows.jsonl\n - review-input-rows.jsonl\n - fetch-summary.json\n - missing-flow-refs.jsonl\n - ambiguous-flow-refs.jsonl\n`.trim();\n}\n\nfunction renderFlowMaterializeDecisionsHelp(): string {\n return `Usage:\n tiangong-lca flow materialize-decisions --decision-file <file> --flow-rows-file <file> --out-dir <dir> [options]\n\nOptions:\n --decision-file <file> Approved cluster decisions as JSON or JSONL\n --flow-rows-file <file> Real DB flow rows as JSON or JSONL\n --out-dir <dir> Output directory for decision materialization artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flow-dedup-canonical-map.json\n - flow-dedup-rewrite-plan.json\n - manual-semantic-merge-seed.current.json\n - decision-summary.json\n - blocked-clusters.json\n`.trim();\n}\n\nfunction renderFlowPublishVersionHelp(): string {\n return `Usage:\n tiangong-lca flow publish-version --input-file <file> --out-dir <dir> [options]\n\nOptions:\n --input-file <file> Ready-for-publish flow rows as JSON or JSONL\n --out-dir <dir> Output directory for publish-version artifacts\n --commit Execute remote writes\n --dry-run Plan the publish-version operations without remote writes\n --max-workers <n> Parallel worker count (default: 4)\n --limit <n> Optional row limit; 0 means all rows\n --target-user-id <id> Override the target owner when input rows omit user_id\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOutputs written under --out-dir:\n - flows_tidas_sdk_plus_classification_mcp_success_list.json\n - flows_tidas_sdk_plus_classification_remote_validation_failed.jsonl\n - flow-publish-version-gate-report.json\n - flows_tidas_sdk_plus_classification_mcp_sync_report.json\n`.trim();\n}\n\nfunction renderFlowPublishReviewedDataHelp(): string {\n return `Usage:\n tiangong-lca flow publish-reviewed-data --out-dir <dir> [--flow-rows-file <file>] [--process-rows-file <file>] [options]\n\nOptions:\n --flow-rows-file <file> Reviewed flow rows as JSON or JSONL\n --original-flow-rows-file <file> Optional original flow snapshot used to skip unchanged reviewed rows\n --process-rows-file <file> Optional reviewed process rows as JSON or JSONL\n --flow-publish-policy <mode> skip | append_only_bump | upsert_current_version (default: append_only_bump)\n --process-publish-policy <mode> skip | append_only_bump | upsert_current_version (default: append_only_bump)\n --no-rewrite-process-flow-refs Keep process flow references unchanged during local preparation\n --commit Execute remote writes for prepared flow and process rows\n --dry-run Keep the command local-only and write prepared artifacts without remote writes\n --max-workers <n> Parallel worker count for the flow commit step (default: 4)\n --target-user-id <id> Override the target owner when prepared flow rows omit user_id\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n none for local dry-run\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n when --commit publishes prepared rows\n\nOutputs written under --out-dir:\n - prepared-flow-rows.json\n - prepared-process-rows.json\n - flow-version-map.json\n - skipped-unchanged-flow-rows.json\n - process-flow-ref-rewrite-evidence.jsonl\n - publish-report.json\n - flows_tidas_sdk_plus_classification_mcp_success_list.json\n - flows_tidas_sdk_plus_classification_remote_validation_failed.jsonl\n - flow-publish-version-gate-report.json\n - flows_tidas_sdk_plus_classification_mcp_sync_report.json\n`.trim();\n}\n\nfunction renderFlowBuildAliasMapHelp(): string {\n return `Usage:\n tiangong-lca flow build-alias-map --old-flow-file <file> --new-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --old-flow-file <file> Repeatable pre-governance flow snapshot as JSON or JSONL\n --new-flow-file <file> Repeatable post-governance flow snapshot as JSON or JSONL\n --seed-alias-map <file> Optional existing alias map JSON object used as deterministic seed input\n --out-dir <dir> Output directory for alias-plan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - alias-plan.json\n - alias-plan.jsonl\n - flow-alias-map.json\n - manual-review-queue.jsonl\n - alias-summary.json\n`.trim();\n}\n\nfunction renderFlowScanProcessFlowRefsHelp(): string {\n return `Usage:\n tiangong-lca flow scan-process-flow-refs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --catalog-flow-file <file> Repeatable catalog flow file; defaults to the scope files\n --alias-map <file> Optional flow alias map JSON object\n --exclude-emergy Exclude emergy-named processes before reference scanning\n --out-dir <dir> Output directory for scan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - emergy-excluded-processes.json\n - scan-summary.json\n - scan-findings.json\n - scan-findings.jsonl\n`.trim();\n}\n\nfunction renderFlowPlanProcessFlowRepairsHelp(): string {\n return `Usage:\n tiangong-lca flow plan-process-flow-repairs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --alias-map <file> Optional flow alias map JSON object\n --scan-findings <file> Optional scan-findings JSON or JSONL from a prior scan step\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --out-dir <dir> Output directory for repair plan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - repair-plan.json\n - repair-plan.jsonl\n - manual-review-queue.jsonl\n - repair-summary.json\n`.trim();\n}\n\nfunction renderFlowApplyProcessFlowRepairsHelp(): string {\n return `Usage:\n tiangong-lca flow apply-process-flow-repairs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --alias-map <file> Optional flow alias map JSON object\n --scan-findings <file> Optional scan-findings JSON or JSONL from a prior scan step\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --process-pool-file <file> Optional process pool file to sync after patch application\n --out-dir <dir> Output directory for repair apply artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - repair-plan.json\n - repair-plan.jsonl\n - manual-review-queue.jsonl\n - repair-summary.json\n - patched-processes.json\n - process-patches/\n`.trim();\n}\n\nfunction renderFlowRegenProductHelp(): string {\n return `Usage:\n tiangong-lca flow regen-product --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --catalog-flow-file <file> Repeatable catalog flow file; defaults to the scope files\n --alias-map <file> Optional flow alias map JSON object\n --exclude-emergy Exclude emergy-named processes before scan and repair\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --apply Apply deterministic patches and run local validation\n --process-pool-file <file> Optional process pool file to sync after --apply\n --tidas-mode <mode> auto | required | skip (default: auto)\n --out-dir <dir> Run root for scan / repair / validate artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flow-regen-product-report.json\n - scan/\n - repair/\n - repair-apply/ (only with --apply)\n - validate/ (only with --apply)\n`.trim();\n}\n\nfunction renderFlowValidateProcessesHelp(): string {\n return `Usage:\n tiangong-lca flow validate-processes --original-processes-file <file> --patched-processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --original-processes-file <file> Original process rows before repair as JSON or JSONL\n --patched-processes-file <file> Patched process rows after repair as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --out-dir <dir> Output directory for validation-report.json and validation-failures.jsonl\n --tidas-mode <mode> auto | required | skip (default: auto)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - validation-report.json\n - validation-failures.jsonl\n`.trim();\n}\n\nfunction renderReviewHelp(): string {\n return `Usage:\n tiangong-lca review <subcommand> [options]\n\nImplemented Subcommands:\n process Review process build runs or rows-file snapshots and emit artifact-first findings\n flow Review local flow governance snapshots and emit artifact-first findings\n lifecyclemodel Review one local lifecyclemodel build run and emit artifact-first findings\n\nExamples:\n tiangong-lca review --help\n tiangong-lca review process --help\n tiangong-lca review flow --help\n tiangong-lca review lifecyclemodel --help\n`.trim();\n}\n\nfunction renderReviewProcessHelp(): string {\n return `Usage:\n tiangong-lca review process (--rows-file <file> | --run-root <dir>) --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Process rows JSON/JSONL file; full process list reports with rows[] are also accepted\n --run-root <dir> Process build run root containing exports/processes\n --run-id <id> Optional review run identifier; defaults to the rows-file name or run-root basename\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: v2.1)\n --enable-llm Enable optional review-only semantic review via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this review command\n --llm-max-processes <n> Cap how many process summaries are sent to the LLM (default: 8)\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderReviewFlowHelp(): string {\n return `Usage:\n tiangong-lca review flow (--rows-file <file> | --flows-dir <dir> | --run-root <dir>) --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Flow rows JSON / JSONL file; the CLI materializes review-input/flows automatically\n --flows-dir <dir> Directory containing per-flow JSON files\n --run-root <dir> Existing run root containing cache/flows or exports/flows\n --run-id <id> Optional run identifier override\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: flow-v1.0-cli)\n --enable-llm Enable optional review-only semantic review via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this review command\n --llm-max-flows <n> Cap how many flow summaries are sent to the LLM (default: 120)\n --llm-batch-size <n> Cap how many flow summaries each LLM batch sends (default: 20)\n --similarity-threshold <n> Similarity threshold for duplicate-candidate warnings (default: 0.92)\n --methodology-id <name> Label written into methodology-backed rule findings (default: built_in)\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderReviewLifecyclemodelHelp(): string {\n return `Usage:\n tiangong-lca review lifecyclemodel --run-dir <dir> --out-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: lifecyclemodel-review-v1.0)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - reads one existing lifecyclemodel build run under models/*/tidas_bundle/lifecyclemodels\n - aggregates validate-build findings when reports/lifecyclemodel-validate-build-report.json is present\n - emits artifact-first model summaries, findings, markdown review notes, and a structured report\n`.trim();\n}\n\nfunction renderLifecyclemodelBuildResultingProcessHelp(): string {\n return `Usage:\n tiangong-lca lifecyclemodel build-resulting-process --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default artifact output directory\n --json Print compact JSON\n -h, --help\n\nRemote lookup env (only when process_sources.allow_remote_lookup=true):\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n`.trim();\n}\n\nfunction renderLifecyclemodelPublishResultingProcessHelp(): string {\n return `Usage:\n tiangong-lca lifecyclemodel publish-resulting-process --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel resulting-process run directory\n --publish-processes Include projected processes in publish-bundle.json\n --publish-relations Include lifecyclemodel/resulting-process relations in publish-bundle.json\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderLifecyclemodelSaveDraftHelp(): string {\n return `Usage:\n tiangong-lca lifecyclemodel save-draft --input <file> [options]\n\nOptions:\n --input <file> Lifecyclemodel rows JSON/JSONL file or publish-request.json\n --out-dir <dir> Run root written relative to cwd when a relative path is passed\n --commit Execute remote save-draft writes\n --dry-run Keep the command local-only (default)\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n none for local dry-run\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n when --commit executes remote writes\n\nLocal gate:\n canonical lifecyclemodel payloads are validated against LifeCycleModelSchema before any remote write;\n schema-invalid rows stay in failures.jsonl instead of being committed\n\nOutputs written under --out-dir:\n - inputs/normalized-input.json\n - outputs/save-draft-bundle/selected-lifecyclemodels.jsonl\n - outputs/save-draft-bundle/progress.jsonl\n - outputs/save-draft-bundle/failures.jsonl\n - outputs/save-draft-bundle/summary.json\n`.trim();\n}\n\nfunction renderLifecyclemodelGraphHelp(): string {\n return `Usage:\n tiangong-lca lifecyclemodel graph --input <file> [options]\n\nOptions:\n --input <file> Lifecyclemodel rows JSON/JSONL file\n --out-dir <dir> Artifact directory for graph files and findings\n --format <format> json | dot | svg | all (default: all)\n --check-connections Fail when process-instance links are missing or unresolved\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/graph-report.json\n - outputs/findings.jsonl\n - graphs/*.json\n - graphs/*.dot\n - graphs/*.svg\n`.trim();\n}\n\nfunction renderLifecyclemodelHelp(): string {\n return `Usage:\n tiangong-lca lifecyclemodel <subcommand> [options]\n\nImplemented Subcommands:\n auto-build Build native lifecyclemodel json_ordered artifacts from local process run exports\n validate-build Re-run local validation on one lifecyclemodel build run\n publish-build Prepare lifecyclemodel publish handoff artifacts from one local build run\n save-draft Save canonical lifecyclemodel datasets through the bundle save path\n graph Derive lifecyclemodel graph artifacts and connection findings\n build-resulting-process Deterministically aggregate a lifecycle model into a resulting process bundle\n publish-resulting-process Prepare publish-bundle.json and publish-intent.json from a prior resulting-process run\n orchestrate Plan, execute, or publish a recursive lifecyclemodel assembly run\n\nExamples:\n tiangong-lca lifecyclemodel --help\n tiangong-lca lifecyclemodel auto-build --help\n tiangong-lca lifecyclemodel validate-build --help\n tiangong-lca lifecyclemodel publish-build --help\n tiangong-lca lifecyclemodel save-draft --help\n tiangong-lca lifecyclemodel graph --help\n tiangong-lca lifecyclemodel build-resulting-process --help\n tiangong-lca lifecyclemodel orchestrate --help\n`.trim();\n}\n\nfunction renderLifecyclemodelOrchestrateHelp(): string {\n return `Usage:\n tiangong-lca lifecyclemodel orchestrate <plan|execute|publish> [options]\n\nPlan / execute options:\n --input <file> JSON request file\n --request <file> Alias for --input\n --out-dir <dir> Output run directory\n --allow-process-build Override orchestration.allow_process_build=true during execute\n --allow-submodel-build Override orchestration.allow_submodel_build=true during execute\n --json Print compact JSON\n -h, --help\n\nPublish options:\n --run-dir <dir> Existing orchestrator run directory\n --publish-lifecyclemodels Include built lifecyclemodels in publish-bundle.json\n --publish-resulting-process-relations Include projected processes and resulting-process relations in publish-bundle.json\n --json Print compact JSON\n -h, --help\n\nThis command:\n - normalizes a recursive request into assembly-plan.json, graph-manifest.json, lineage-manifest.json, and boundary-report.json\n - executes only native CLI-backed builders; no Python fallback path remains\n - prepares a local publish-bundle.json from prior invocation artifacts\n`.trim();\n}\n\nfunction renderLifecyclemodelAutoBuildHelp(): string {\n return `Usage:\n tiangong-lca lifecyclemodel auto-build --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Explicit run root; otherwise request.out_dir is required\n --json Print compact JSON\n -h, --help\n\nMinimal request contract:\n {\n \"local_runs\": [\"/abs/path/to/process-build-run\"]\n }\n\nThis first CLI slice is local-only and read-only:\n - applies no implicit repo-local ./artifacts fallback; callers must provide a run root\n - loads local process build run directories\n - infers the process graph from shared flow UUIDs\n - emits native lifecyclemodel json_ordered artifacts\n - leaves follow-up validation and publish handoff to the companion validate-build and publish-build commands\n`.trim();\n}\n\nfunction renderLifecyclemodelValidateBuildHelp(): string {\n return `Usage:\n tiangong-lca lifecyclemodel validate-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --engine <mode> auto | sdk (default: auto)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - scans models/*/tidas_bundle from one lifecyclemodel auto-build run\n - re-runs local validation through the unified validation module\n - writes per-model validation reports plus one aggregate report\n`.trim();\n}\n\nfunction renderLifecyclemodelPublishBuildHelp(): string {\n return `Usage:\n tiangong-lca lifecyclemodel publish-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --json Print compact JSON\n -h, --help\n\nThis command:\n - collects native lifecyclemodel json_ordered payloads from one local build run\n - writes publish-bundle.json, publish-request.json, and publish-intent.json\n - keeps actual dry-run / commit execution in tiangong-lca publish run\n - routes lifecyclemodel commit through save_lifecycle_model_bundle internally\n`.trim();\n}\n\nfunction renderProcessAutoBuildHelp(): string {\n return `Usage:\n tiangong-lca process auto-build --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Explicit run root; otherwise request.workspace_run_root is required\n --json Print compact JSON\n -h, --help\n\nThis command applies no implicit repo-local ./artifacts fallback.\n`.trim();\n}\n\nfunction renderProcessGetHelp(): string {\n return `Usage:\n tiangong-lca process get --id <process-id> [options]\n\nOptions:\n --id <process-id> Process UUID\n --version <version> Optional requested dataset version; if absent or missing, the latest reachable row is returned\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderProcessListHelp(): string {\n return `Usage:\n tiangong-lca process list [options]\n\nOptions:\n --id <process-id> Repeatable exact process UUID filter\n --version <version> Optional dataset version filter\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Repeatable visibility filter such as 0 or 100\n --order <expr> Deterministic PostgREST order expression (default: id.asc,version.asc)\n --limit <n> Page size for one request (default: 100)\n --offset <n> Row offset for one request (default: 0)\n --all Fetch all matching rows via offset pagination\n --page-size <n> Page size when --all is used (default: 100)\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderProcessScopeStatisticsHelp(): string {\n return `Usage:\n tiangong-lca process scope-statistics --out-dir <dir> [options]\n\nOptions:\n --out-dir <dir> Artifact root to write inputs/outputs/reports\n --scope <name> visible | current-user (default: visible)\n --state-code <code> Repeatable non-negative integer state code filter\n --state-codes <csv> Comma-separated alias for one or more state codes\n --page-size <n> Remote page size (default: 200)\n --reuse-snapshot Reuse inputs/processes.snapshot.rows.jsonl instead of refetching\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - inputs/processes.snapshot.manifest.json\n - inputs/processes.snapshot.rows.jsonl\n - outputs/process-scope-summary.json\n - outputs/domain-summary.json\n - outputs/craft-summary.json\n - outputs/product-summary.json\n - outputs/type-of-dataset-summary.json\n - reports/process-scope-statistics.md\n - reports/process-scope-statistics.zh-CN.md\n`.trim();\n}\n\nfunction renderProcessIdentityPreflightHelp(): string {\n return `Usage:\n tiangong-lca process identity-preflight --input <file> [options]\n\nOptions:\n --input <file> JSON preflight request with target process and optional candidates\n --candidate-input <path>\n Optional JSON/JSONL file or directory of candidate process rows; repeatable\n --remote-candidates\n Also fetch candidate rows from process_hybrid_search\n --remote-query <text>\n Override the remote search query; defaults to target identity text\n --remote-limit <n>\n Limit remote candidate rows after fetch\n --out-dir <dir> Optional artifact directory for identity decision outputs\n --json Print compact JSON\n -h, --help\n\nInput contract:\n {\n \"target\": { \"...\": \"process target or canonical processDataSet\" },\n \"candidates\": [{ \"...\": \"existing process row or canonical processDataSet\" }]\n }\n\nOutputs written under --out-dir:\n - outputs/identity-decision.json\n - outputs/identity-candidates.jsonl\n - outputs/identity-candidate-sources.json\n`.trim();\n}\n\nfunction renderProcessDedupReviewHelp(): string {\n return `Usage:\n tiangong-lca process dedup-review --input <file> --out-dir <dir> [options]\n\nOptions:\n --input <file> Grouped duplicate-candidate JSON input\n --out-dir <dir> Artifact root to write inputs/outputs\n --skip-remote Skip optional TianGong remote enrichment and reference scans\n --json Print compact JSON\n -h, --help\n\nInput contract:\n {\n \"source_label\": \"duplicate-processes-export\",\n \"groups\": [\n {\n \"group_id\": 1,\n \"processes\": [\n {\n \"process_id\": \"proc-1\",\n \"version\": \"01.00.000\",\n \"name_en\": \"Example\",\n \"name_zh\": \"示例\",\n \"sheet_exchange_rows\": [\n {\n \"flow_id\": \"flow-1\",\n \"direction\": \"Input\",\n \"mean_amount\": \"1\",\n \"resulting_amount\": \"1\"\n }\n ]\n }\n ]\n }\n ]\n }\n\nOutputs written under --out-dir:\n - inputs/dedup-input.manifest.json\n - inputs/processes.remote-metadata.json (when remote enrichment succeeds)\n - outputs/duplicate-groups.json\n - outputs/delete-plan.json\n - outputs/current-user-reference-scan.json (when reference scan succeeds)\n`.trim();\n}\n\nfunction renderProcessResumeBuildHelp(): string {\n return `Usage:\n tiangong-lca process resume-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing process build run directory\n --run-id <id> Optional run id consistency check\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessPublishBuildHelp(): string {\n return `Usage:\n tiangong-lca process publish-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing process build run directory\n --run-id <id> Optional run id consistency check\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessSaveDraftHelp(): string {\n return `Usage:\n tiangong-lca process save-draft --input <file> [options]\n\nOptions:\n --input <file> Process rows JSON/JSONL file or publish-request.json\n --out-dir <dir> Run root written relative to cwd when a relative path is passed\n --commit Execute remote save-draft writes\n --dry-run Keep the command local-only (default)\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n none for local dry-run\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n when --commit executes remote writes\n\nLocal gate:\n canonical process payloads are validated against ProcessSchema before any remote write;\n schema-invalid rows stay in failures.jsonl instead of being committed\n\nOutputs written under --out-dir:\n - inputs/normalized-input.json\n - outputs/save-draft-rpc/selected-processes.jsonl\n - outputs/save-draft-rpc/progress.jsonl\n - outputs/save-draft-rpc/failures.jsonl\n - outputs/save-draft-rpc/summary.json\n`.trim();\n}\n\nfunction renderProcessRequiredFieldsHelp(): string {\n return `Usage:\n tiangong-lca process complete-required-fields --input <file> --out <file> [options]\n\nOptions:\n --input <file> Process rows JSON/JSONL file\n --out <file> Output JSONL with required fields completed\n --out-dir <dir> Optional artifact directory for report and evidence\n --flows <file> Optional flow rows JSON/JSONL used to infer reference-flow units\n --default-unit <unit> Unit suffix to use when it cannot be inferred (default: unit)\n --json Print compact JSON\n -h, --help\n\nAnnual supply / production volume policy:\n 1. keep an existing valid annualized annualSupplyOrProductionVolume, for example \"3.6 MJ/year\";\n 2. use an explicit value from row-level authoring evidence or evidenceManifest field bindings;\n 3. otherwise complete from the quantitative reference flow meanAmount/resultingAmount and unit.\n\nOutputs:\n - completed rows at --out\n - outputs/process-required-fields-report.json\n - outputs/process-required-fields-evidence.jsonl\n`.trim();\n}\n\nfunction renderProcessRefreshReferencesHelp(): string {\n return `Usage:\n tiangong-lca process refresh-references --out-dir <dir> [options]\n\nOptions:\n --out-dir <dir> Artifact root for manifest, progress, blockers, and reports\n --apply Commit state-aware draft writes after local validation passes\n --dry-run Refresh references locally only (default)\n --reuse-manifest Reuse inputs/processes.manifest.json instead of refetching the owner snapshot\n --limit <n> Process at most n manifest rows\n --page-size <n> Snapshot page size (default: 500)\n --concurrency <n> Parallel row workers (default: 1, max: 8)\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nGuardrails:\n - refresh only the current authenticated user's process snapshot\n - skip rows with state_code >= 20 instead of forcing an unsupported write path\n - block remote writes when ProcessSchema validation fails or references stay unresolved\n - never requires raw SUPABASE_EMAIL / SUPABASE_PASSWORD in the skill layer\n\nOutputs written under --out-dir:\n - inputs/processes.manifest.json\n - outputs/progress.jsonl\n - outputs/errors.jsonl\n - outputs/validation-blockers.jsonl\n - outputs/summary.json\n - reports/process-refresh-references.md\n`.trim();\n}\n\nfunction renderProcessVerifyRowsHelp(): string {\n return `Usage:\n tiangong-lca process verify-rows --rows-file <file> --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Raw process rows JSON/JSONL file; full process list reports with rows[] are also accepted\n --out-dir <dir> Output directory for summary and verification JSONL artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/summary.json\n - outputs/verification.jsonl\n`.trim();\n}\n\nfunction renderProcessBatchBuildHelp(): string {\n return `Usage:\n tiangong-lca process batch-build --input <file> [options]\n\nOptions:\n --input <file> JSON batch manifest file\n --out-dir <dir> Explicit batch root; otherwise request.out_dir is required\n --json Print compact JSON\n -h, --help\n\nThis command applies no implicit repo-local ./artifacts fallback.\n`.trim();\n}\n\nfunction renderProcessHelp(): string {\n return `Usage:\n tiangong-lca process <subcommand> [options]\n\nImplemented Subcommands:\n get Load one process dataset by identifier through direct Supabase access\n list List visible process rows through direct Supabase access\n identity-preflight Compare one target process against local candidates before generation\n build-plan Validate or materialize a process build plan into gate artifacts\n scope-statistics Count repeatable coverage statistics from visible or owner-filtered process snapshots\n dedup-review Review grouped duplicate process candidates and emit keep/delete evidence\n auto-build Prepare a local process-from-flow run scaffold and artifact workspace\n resume-build Prepare a local resume handoff from one existing process build run\n publish-build Prepare publish handoff artifacts from one existing process build run\n complete-required-fields Complete deterministic required authoring fields in process rows\n save-draft Save canonical process datasets through the state-aware draft-maintenance path\n batch-build Run multiple process auto-build requests through one batch-oriented CLI surface\n refresh-references Refresh current-user process references to the latest reachable dataset versions\n verify-rows Re-validate fetched process rows and required naming fields locally\n\nExamples:\n tiangong-lca process --help\n tiangong-lca process get --id <process-id>\n tiangong-lca process list --state-code 100 --limit 20 --help\n tiangong-lca process identity-preflight --input ./process-preflight.json --help\n tiangong-lca process build-plan validate --input ./process-build-plan.json --help\n tiangong-lca process scope-statistics --out-dir ./process-scope --state-code 0 --state-code 100 --help\n tiangong-lca process dedup-review --input ./duplicate-groups.json --out-dir ./process-dedup --help\n tiangong-lca process auto-build --help\n tiangong-lca process resume-build --run-dir /abs/path/to/process-run --help\n tiangong-lca process publish-build --run-dir /abs/path/to/process-run --help\n tiangong-lca process complete-required-fields --input ./processes.jsonl --out ./processes.completed.jsonl --help\n tiangong-lca process save-draft --input ./patched-processes.jsonl --help\n tiangong-lca process batch-build --input ./batch-request.json --help\n tiangong-lca process refresh-references --out-dir ./process-refresh --help\n tiangong-lca process verify-rows --rows-file ./process-list-report.json --out-dir ./process-verify --help\n`.trim();\n}\n\nfunction renderProcessBuildPlanHelp(): string {\n return `Usage:\n tiangong-lca process build-plan <validate|materialize> --input <file> [options]\n\nOptions:\n --input <file> JSON process build plan; materialize writes a canonical processDataSet\n --out-dir <dir> Optional artifact directory for gate outputs\n --report-only Print blocker reports with exit code 0\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/build-plan-gate-report.json\n - outputs/materialized-process.json\n`.trim();\n}\n\nfunction renderDoctorText(report: ReturnType<typeof buildDoctorReport>): string {\n const lines = [\n 'TianGong CLI doctor',\n ` .env loaded: ${report.loadedDotEnv ? `yes (${report.dotEnvKeysLoaded} keys)` : 'no'}`,\n ` .env path: ${report.dotEnvPath}`,\n '',\n ];\n for (const check of report.checks) {\n const status = check.present ? 'OK ' : 'MISS';\n lines.push(\n ` [${status}] ${check.key} (${check.source})${check.required ? ' [required]' : ''}`,\n );\n }\n if (!report.ok) {\n lines.push('', 'Missing required environment keys:');\n for (const check of report.checks) {\n if (check.required && !check.present) {\n lines.push(` - ${check.key}`);\n }\n }\n }\n return `${lines.join('\\n')}\\n`;\n}\n\ntype CommandDispatch = {\n flags: RootFlags;\n command: string | null;\n subcommand: string | null;\n commandArgs: string[];\n};\n\nfunction parseCommandLine(args: string[]): CommandDispatch {\n const flags: RootFlags = {\n help: false,\n version: false,\n };\n\n let index = 0;\n while (index < args.length) {\n const arg = args[index];\n if (arg === '--') {\n index += 1;\n break;\n }\n if (arg === '--help' || arg === '-h') {\n flags.help = true;\n index += 1;\n continue;\n }\n if (arg === '--version' || arg === '-v') {\n flags.version = true;\n index += 1;\n continue;\n }\n if (arg.startsWith('-')) {\n throw new CliError(`Unknown root option: ${arg}`, {\n code: 'UNKNOWN_ROOT_OPTION',\n exitCode: 2,\n });\n }\n break;\n }\n\n const command = args[index] ?? null;\n if (!command) {\n return {\n flags,\n command: null,\n subcommand: null,\n commandArgs: [],\n };\n }\n\n const maybeSubcommand = args[index + 1];\n const subcommand = maybeSubcommand && !maybeSubcommand.startsWith('-') ? maybeSubcommand : null;\n const commandArgs = args.slice(index + 1 + (subcommand ? 1 : 0));\n\n return {\n flags,\n command,\n subcommand,\n commandArgs,\n };\n}\n\nfunction parseDoctorFlags(args: string[]): {\n help: boolean;\n json: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n };\n}\n\nfunction parseRemoteFlags(args: string[]): {\n help: boolean;\n json: boolean;\n dryRun: boolean;\n inputPath: string;\n apiKey: string | null;\n apiBaseUrl: string | null;\n region: string | null;\n timeoutMs: number;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n input: { type: 'string' },\n 'api-key': { type: 'string' },\n 'base-url': { type: 'string' },\n region: { type: 'string' },\n 'timeout-ms': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const timeoutText = typeof values['timeout-ms'] === 'string' ? values['timeout-ms'] : undefined;\n const timeoutMs = timeoutText ? Number.parseInt(timeoutText, 10) : 60_000;\n if (!Number.isInteger(timeoutMs) || timeoutMs <= 0) {\n throw new CliError('Expected --timeout-ms to be a positive integer.', {\n code: 'INVALID_TIMEOUT',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n dryRun: Boolean(values['dry-run']),\n inputPath: typeof values.input === 'string' ? values.input : '',\n apiKey: typeof values['api-key'] === 'string' ? values['api-key'] : null,\n apiBaseUrl: typeof values['base-url'] === 'string' ? values['base-url'] : null,\n region: typeof values.region === 'string' ? values.region : null,\n timeoutMs,\n };\n}\n\nfunction parsePublishFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n commitOverride: boolean | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_PUBLISH_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commitOverride: values.commit ? true : values['dry-run'] ? false : null,\n };\n}\n\nfunction parseValidationFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputDir: string;\n engine: string | undefined;\n reportFile: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'input-dir': { type: 'string' },\n engine: { type: 'string' },\n 'report-file': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputDir: typeof values['input-dir'] === 'string' ? values['input-dir'] : '',\n engine: typeof values.engine === 'string' ? values.engine : undefined,\n reportFile: typeof values['report-file'] === 'string' ? values['report-file'] : null,\n };\n}\n\nfunction parseDatasetValidateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n type: string | undefined;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n type: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n type: typeof values.type === 'string' ? values.type : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetContractFlags(args: string[]): {\n help: boolean;\n json: boolean;\n type: string | undefined;\n include: string[];\n profile: string | undefined;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n type: { type: 'string' },\n include: { type: 'string', multiple: true },\n profile: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n type: typeof values.type === 'string' ? values.type : undefined,\n include: Array.isArray(values.include)\n ? values.include.filter((value): value is string => typeof value === 'string')\n : [],\n profile: typeof values.profile === 'string' ? values.profile : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetImportLcaConvertFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outputDir: string;\n fromFormat: string | undefined;\n target: string | undefined;\n reportPath: string | undefined;\n mappingDir: string | undefined;\n language: string | undefined;\n validationJobs: number | undefined;\n detectOnly: boolean;\n failOnWarning: boolean;\n pythonBin: string | undefined;\n tidasToolsDir: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'output-dir': { type: 'string' },\n 'from-format': { type: 'string' },\n target: { type: 'string' },\n report: { type: 'string' },\n 'mapping-dir': { type: 'string' },\n language: { type: 'string' },\n 'validation-jobs': { type: 'string' },\n 'detect-only': { type: 'boolean' },\n 'fail-on-warning': { type: 'boolean' },\n python: { type: 'string' },\n 'tidas-tools-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const validationJobs =\n typeof values['validation-jobs'] === 'string' ? Number(values['validation-jobs']) : undefined;\n if (validationJobs !== undefined && (!Number.isInteger(validationJobs) || validationJobs < 0)) {\n throw new CliError('--validation-jobs must be a non-negative integer.', {\n code: 'DATASET_IMPORT_LCA_VALIDATION_JOBS_INVALID',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outputDir: typeof values['output-dir'] === 'string' ? values['output-dir'] : '',\n fromFormat: typeof values['from-format'] === 'string' ? values['from-format'] : undefined,\n target: typeof values.target === 'string' ? values.target : undefined,\n reportPath: typeof values.report === 'string' ? values.report : undefined,\n mappingDir: typeof values['mapping-dir'] === 'string' ? values['mapping-dir'] : undefined,\n language: typeof values.language === 'string' ? values.language : undefined,\n validationJobs,\n detectOnly: Boolean(values['detect-only']),\n failOnWarning: Boolean(values['fail-on-warning']),\n pythonBin: typeof values.python === 'string' ? values.python : undefined,\n tidasToolsDir:\n typeof values['tidas-tools-dir'] === 'string' ? values['tidas-tools-dir'] : undefined,\n };\n}\n\nfunction parseDatasetAuthorFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n targetTypes: string[];\n outDir: string | null;\n prompt: string | undefined;\n provider: string | undefined;\n model: string | undefined;\n timeoutMs: number | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'target-types': { type: 'string', multiple: true },\n 'out-dir': { type: 'string' },\n prompt: { type: 'string' },\n provider: { type: 'string' },\n model: { type: 'string' },\n 'timeout-ms': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const timeoutMs =\n typeof values['timeout-ms'] === 'string' ? Number(values['timeout-ms']) : undefined;\n if (timeoutMs !== undefined && (!Number.isInteger(timeoutMs) || timeoutMs <= 0)) {\n throw new CliError('--timeout-ms must be a positive integer.', {\n code: 'DATASET_AUTHOR_TIMEOUT_INVALID',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n targetTypes: Array.isArray(values['target-types'])\n ? values['target-types'].filter((value): value is string => typeof value === 'string')\n : [],\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n prompt: typeof values.prompt === 'string' ? values.prompt : undefined,\n provider: typeof values.provider === 'string' ? values.provider : undefined,\n model: typeof values.model === 'string' ? values.model : undefined,\n timeoutMs,\n };\n}\n\nfunction parseDatasetRemoteVerifyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string;\n rootPolicy: 'existing' | 'candidate';\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'root-policy': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const rawRootPolicy =\n typeof values['root-policy'] === 'string' ? values['root-policy'] : 'existing';\n if (!['existing', 'candidate'].includes(rawRootPolicy)) {\n throw new CliError(\"--root-policy must be 'existing' or 'candidate'.\", {\n code: 'DATASET_REMOTE_VERIFY_ROOT_POLICY_INVALID',\n exitCode: 2,\n });\n }\n const rootPolicy = rawRootPolicy as 'existing' | 'candidate';\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n rootPolicy,\n };\n}\n\nfunction parseDatasetBilingualExtractFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n type: string | undefined;\n sourceLang: string | null;\n targetLang: string | null;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n type: { type: 'string' },\n 'source-lang': { type: 'string' },\n 'target-lang': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n type: typeof values.type === 'string' ? values.type : undefined,\n sourceLang: typeof values['source-lang'] === 'string' ? values['source-lang'] : null,\n targetLang: typeof values['target-lang'] === 'string' ? values['target-lang'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetBilingualApplyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n translationsPath: string;\n outPath: string;\n targetLang: string | null;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n translations: { type: 'string' },\n out: { type: 'string' },\n 'target-lang': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n translationsPath: typeof values.translations === 'string' ? values.translations : '',\n outPath: typeof values.out === 'string' ? values.out : '',\n targetLang: typeof values['target-lang'] === 'string' ? values['target-lang'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetBilingualValidateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n type: string | undefined;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n type: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n type: typeof values.type === 'string' ? values.type : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetEvidenceSearchFlags(args: string[]): {\n help: boolean;\n json: boolean;\n query: string | null;\n inputPath: string | null;\n resultsPath: string | null;\n providerUrl: string | null;\n providerKey: string | null;\n profile: string | null;\n outDir: string | null;\n maxQueries: number | null;\n maxResultsPerQuery: number | null;\n timeoutMs: number | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n query: { type: 'string' },\n input: { type: 'string' },\n results: { type: 'string' },\n 'provider-url': { type: 'string' },\n 'provider-key': { type: 'string' },\n profile: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'max-queries': { type: 'string' },\n 'max-results-per-query': { type: 'string' },\n 'timeout-ms': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const readNumber = (value: unknown): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n query: typeof values.query === 'string' ? values.query : null,\n inputPath: typeof values.input === 'string' ? values.input : null,\n resultsPath: typeof values.results === 'string' ? values.results : null,\n providerUrl: typeof values['provider-url'] === 'string' ? values['provider-url'] : null,\n providerKey: typeof values['provider-key'] === 'string' ? values['provider-key'] : null,\n profile: typeof values.profile === 'string' ? values.profile : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n maxQueries: readNumber(values['max-queries']),\n maxResultsPerQuery: readNumber(values['max-results-per-query']),\n timeoutMs: readNumber(values['timeout-ms']),\n };\n}\n\nfunction parseDatasetReferencesRewriteFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n from: string;\n to: string;\n types: string[];\n scope: string | null;\n outDir: string;\n commit: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n from: { type: 'string' },\n to: { type: 'string' },\n type: { type: 'string', multiple: true },\n types: { type: 'string', multiple: true },\n scope: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'DATASET_REFERENCES_REWRITE_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n from: typeof values.from === 'string' ? values.from : '',\n to: typeof values.to === 'string' ? values.to : '',\n types: [\n ...(Array.isArray(values.type)\n ? values.type.filter((value): value is string => typeof value === 'string')\n : []),\n ...(Array.isArray(values.types)\n ? values.types.filter((value): value is string => typeof value === 'string')\n : []),\n ],\n scope: typeof values.scope === 'string' ? values.scope : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n };\n}\n\nfunction parseDatasetReferencesRefreshRemoteFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outPath: string;\n outDir: string;\n rootPolicy: 'existing' | 'candidate';\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n out: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'root-policy': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const rawRootPolicy =\n typeof values['root-policy'] === 'string' ? values['root-policy'] : 'existing';\n if (!['existing', 'candidate'].includes(rawRootPolicy)) {\n throw new CliError(\"--root-policy must be 'existing' or 'candidate'.\", {\n code: 'DATASET_REMOTE_REFRESH_ROOT_POLICY_INVALID',\n exitCode: 2,\n });\n }\n const rootPolicy = rawRootPolicy as 'existing' | 'candidate';\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outPath: typeof values.out === 'string' ? values.out : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n rootPolicy,\n };\n}\n\nfunction parseIdentityPreflightFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n candidateInputPaths: string[];\n remoteCandidateSearch: boolean;\n remoteQuery: string | null;\n remoteLimit: number | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'candidate-input': { type: 'string', multiple: true },\n 'remote-candidates': { type: 'boolean' },\n 'remote-query': { type: 'string' },\n 'remote-limit': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const candidateInputValue = values['candidate-input'];\n const parseRemoteLimit = (value: unknown): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError('Expected --remote-limit to be a positive integer.', {\n code: 'INVALID_IDENTITY_PREFLIGHT_REMOTE_LIMIT',\n exitCode: 2,\n });\n }\n return parsed;\n };\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n candidateInputPaths: Array.isArray(candidateInputValue)\n ? candidateInputValue.filter((entry): entry is string => typeof entry === 'string')\n : [],\n remoteCandidateSearch: Boolean(values['remote-candidates']),\n remoteQuery: typeof values['remote-query'] === 'string' ? values['remote-query'] : null,\n remoteLimit: parseRemoteLimit(values['remote-limit']),\n };\n}\n\nfunction parseBuildPlanFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n reportOnly: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'report-only': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n reportOnly: Boolean(values['report-only']),\n };\n}\n\nfunction parseFlowRemediateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputFile: string;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'input-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputFile: typeof values['input-file'] === 'string' ? values['input-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowPublishVersionFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputFile: string;\n outDir: string;\n commit: boolean;\n maxWorkers: number | undefined;\n limit: number | undefined;\n targetUserId: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'input-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'max-workers': { type: 'string' },\n limit: { type: 'string' },\n 'target-user-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'FLOW_PUBLISH_VERSION_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputFile: typeof values['input-file'] === 'string' ? values['input-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n maxWorkers: parsePositiveIntegerFlag(\n values['max-workers'],\n '--max-workers',\n 'INVALID_FLOW_PUBLISH_VERSION_MAX_WORKERS',\n ),\n limit: parseNonNegativeIntegerFlag(\n values.limit,\n '--limit',\n 'INVALID_FLOW_PUBLISH_VERSION_LIMIT',\n ),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n };\n}\n\nfunction parseFlowPublishReviewedDataFlags(args: string[]): {\n help: boolean;\n json: boolean;\n flowRowsFile: string;\n originalFlowRowsFile: string | null;\n processRowsFile: string | null;\n flowPublishPolicy: 'skip' | 'append_only_bump' | 'upsert_current_version';\n processPublishPolicy: 'skip' | 'append_only_bump' | 'upsert_current_version';\n rewriteProcessFlowRefs: boolean;\n outDir: string;\n commit: boolean;\n maxWorkers: number | undefined;\n targetUserId: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'flow-rows-file': { type: 'string' },\n 'original-flow-rows-file': { type: 'string' },\n 'process-rows-file': { type: 'string' },\n 'flow-publish-policy': { type: 'string' },\n 'process-publish-policy': { type: 'string' },\n 'no-rewrite-process-flow-refs': { type: 'boolean' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'max-workers': { type: 'string' },\n 'target-user-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'FLOW_PUBLISH_REVIEWED_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const processPublishPolicy =\n typeof values['process-publish-policy'] === 'string'\n ? values['process-publish-policy']\n : 'append_only_bump';\n if (\n processPublishPolicy !== 'skip' &&\n processPublishPolicy !== 'append_only_bump' &&\n processPublishPolicy !== 'upsert_current_version'\n ) {\n throw new CliError(\n 'Expected --process-publish-policy to be one of: skip, append_only_bump, upsert_current_version.',\n {\n code: 'FLOW_PUBLISH_REVIEWED_PROCESS_POLICY_INVALID',\n exitCode: 2,\n },\n );\n }\n\n const flowPublishPolicy =\n typeof values['flow-publish-policy'] === 'string'\n ? values['flow-publish-policy']\n : 'append_only_bump';\n if (\n flowPublishPolicy !== 'skip' &&\n flowPublishPolicy !== 'append_only_bump' &&\n flowPublishPolicy !== 'upsert_current_version'\n ) {\n throw new CliError(\n 'Expected --flow-publish-policy to be one of: skip, append_only_bump, upsert_current_version.',\n {\n code: 'FLOW_PUBLISH_REVIEWED_FLOW_POLICY_INVALID',\n exitCode: 2,\n },\n );\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n flowRowsFile: typeof values['flow-rows-file'] === 'string' ? values['flow-rows-file'] : '',\n originalFlowRowsFile:\n typeof values['original-flow-rows-file'] === 'string'\n ? values['original-flow-rows-file']\n : null,\n processRowsFile:\n typeof values['process-rows-file'] === 'string' ? values['process-rows-file'] : null,\n flowPublishPolicy,\n processPublishPolicy,\n rewriteProcessFlowRefs: !values['no-rewrite-process-flow-refs'],\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n maxWorkers: parsePositiveIntegerFlag(\n values['max-workers'],\n '--max-workers',\n 'INVALID_FLOW_PUBLISH_REVIEWED_MAX_WORKERS',\n ),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n };\n}\n\nfunction parseFlowBuildAliasMapFlags(args: string[]): {\n help: boolean;\n json: boolean;\n oldFlowFiles: string[];\n newFlowFiles: string[];\n seedAliasMapFile: string | null;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'old-flow-file': { type: 'string', multiple: true },\n 'new-flow-file': { type: 'string', multiple: true },\n 'seed-alias-map': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n oldFlowFiles: Array.isArray(values['old-flow-file'])\n ? values['old-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n newFlowFiles: Array.isArray(values['new-flow-file'])\n ? values['new-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n seedAliasMapFile:\n typeof values['seed-alias-map'] === 'string' ? values['seed-alias-map'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowScanProcessFlowRefsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n catalogFlowFiles: string[];\n aliasMapFile: string | null;\n excludeEmergy: boolean;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'catalog-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'exclude-emergy': { type: 'boolean' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n catalogFlowFiles: Array.isArray(values['catalog-flow-file'])\n ? values['catalog-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n excludeEmergy: Boolean(values['exclude-emergy']),\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowPlanProcessFlowRepairsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n aliasMapFile: string | null;\n scanFindingsFile: string | null;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'scan-findings': { type: 'string' },\n 'auto-patch-policy': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_PLAN_PROCESS_FLOW_REPAIRS_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n scanFindingsFile: typeof values['scan-findings'] === 'string' ? values['scan-findings'] : null,\n autoPatchPolicy,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowApplyProcessFlowRepairsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n aliasMapFile: string | null;\n scanFindingsFile: string | null;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n processPoolFile: string | null;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'scan-findings': { type: 'string' },\n 'auto-patch-policy': { type: 'string' },\n 'process-pool-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_APPLY_PROCESS_FLOW_REPAIRS_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n scanFindingsFile: typeof values['scan-findings'] === 'string' ? values['scan-findings'] : null,\n autoPatchPolicy,\n processPoolFile:\n typeof values['process-pool-file'] === 'string' ? values['process-pool-file'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowRegenProductFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n catalogFlowFiles: string[];\n aliasMapFile: string | null;\n excludeEmergy: boolean;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n apply: boolean;\n processPoolFile: string | null;\n tidasMode: 'auto' | 'required' | 'skip';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'catalog-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'exclude-emergy': { type: 'boolean' },\n 'auto-patch-policy': { type: 'string' },\n apply: { type: 'boolean' },\n 'process-pool-file': { type: 'string' },\n 'tidas-mode': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_REGEN_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n const tidasMode = typeof values['tidas-mode'] === 'string' ? values['tidas-mode'] : 'auto';\n if (tidasMode !== 'auto' && tidasMode !== 'required' && tidasMode !== 'skip') {\n throw new CliError('Expected --tidas-mode to be one of auto, required, or skip.', {\n code: 'INVALID_FLOW_REGEN_TIDAS_MODE',\n exitCode: 2,\n });\n }\n\n if (typeof values['process-pool-file'] === 'string' && !values.apply) {\n throw new CliError('Use --process-pool-file only with --apply.', {\n code: 'FLOW_REGEN_PROCESS_POOL_REQUIRES_APPLY',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n catalogFlowFiles: Array.isArray(values['catalog-flow-file'])\n ? values['catalog-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n excludeEmergy: Boolean(values['exclude-emergy']),\n autoPatchPolicy,\n apply: Boolean(values.apply),\n processPoolFile:\n typeof values['process-pool-file'] === 'string' ? values['process-pool-file'] : null,\n tidasMode,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowValidateProcessesFlags(args: string[]): {\n help: boolean;\n json: boolean;\n originalProcessesFile: string;\n patchedProcessesFile: string;\n scopeFlowFiles: string[];\n tidasMode: 'auto' | 'required' | 'skip';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'original-processes-file': { type: 'string' },\n 'patched-processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'tidas-mode': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const tidasMode = typeof values['tidas-mode'] === 'string' ? values['tidas-mode'] : 'auto';\n if (tidasMode !== 'auto' && tidasMode !== 'required' && tidasMode !== 'skip') {\n throw new CliError('Expected --tidas-mode to be one of auto, required, or skip.', {\n code: 'INVALID_FLOW_VALIDATE_TIDAS_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n originalProcessesFile:\n typeof values['original-processes-file'] === 'string'\n ? values['original-processes-file']\n : '',\n patchedProcessesFile:\n typeof values['patched-processes-file'] === 'string' ? values['patched-processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n tidasMode,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowGetFlags(args: string[]): {\n help: boolean;\n json: boolean;\n flowId: string;\n version: string | null;\n userId: string | null;\n stateCode: number | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string' },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n flowId: typeof values.id === 'string' ? values.id : '',\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCode: parseOptionalNonNegativeIntegerFlag(\n values['state-code'],\n '--state-code',\n 'INVALID_FLOW_GET_STATE_CODE',\n ),\n };\n}\n\nfunction parseFlowFetchRowsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n refsFile: string;\n outDir: string;\n allowLatestFallback: boolean;\n failOnMissing: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'refs-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'no-latest-fallback': { type: 'boolean' },\n 'fail-on-missing': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n refsFile: typeof values['refs-file'] === 'string' ? values['refs-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n allowLatestFallback: values['no-latest-fallback'] !== true,\n failOnMissing: values['fail-on-missing'] === true,\n };\n}\n\nfunction parseFlowMaterializeDecisionsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n decisionFile: string;\n flowRowsFile: string;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'decision-file': { type: 'string' },\n 'flow-rows-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n decisionFile: typeof values['decision-file'] === 'string' ? values['decision-file'] : '',\n flowRowsFile: typeof values['flow-rows-file'] === 'string' ? values['flow-rows-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowListFlags(args: string[]): {\n help: boolean;\n json: boolean;\n ids: string[];\n version: string | null;\n userId: string | null;\n stateCodes: number[];\n typeOfDataset: string[];\n limit: number | null;\n offset: number | null;\n all: boolean;\n pageSize: number | null;\n order: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string', multiple: true },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n type: { type: 'string', multiple: true },\n 'type-of-dataset': { type: 'string', multiple: true },\n limit: { type: 'string' },\n offset: { type: 'string' },\n all: { type: 'boolean' },\n 'page-size': { type: 'string' },\n order: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalPositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseStateCodeValues = (value: unknown): number[] => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map((entry) => {\n const parsed = Number.parseInt(String(entry), 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError('Expected --state-code to be a non-negative integer.', {\n code: 'INVALID_FLOW_LIST_STATE_CODE',\n exitCode: 2,\n });\n }\n return parsed;\n });\n };\n const toStringArray = (value: unknown): string[] =>\n Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n\n if (values['page-size'] !== undefined && !values.all) {\n throw new CliError('Use --page-size only with --all.', {\n code: 'FLOW_LIST_PAGE_SIZE_REQUIRES_ALL',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n ids: toStringArray(values.id),\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCodes: parseStateCodeValues(values['state-code']),\n typeOfDataset: [...toStringArray(values['type-of-dataset']), ...toStringArray(values.type)],\n limit: parseOptionalPositiveIntegerFlag(values.limit, '--limit', 'INVALID_FLOW_LIST_LIMIT'),\n offset: parseOptionalNonNegativeIntegerFlag(\n values.offset,\n '--offset',\n 'INVALID_FLOW_LIST_OFFSET',\n ),\n all: Boolean(values.all),\n pageSize: parseOptionalPositiveIntegerFlag(\n values['page-size'],\n '--page-size',\n 'INVALID_FLOW_LIST_PAGE_SIZE',\n ),\n order: typeof values.order === 'string' ? values.order : null,\n };\n}\n\nfunction parseReviewProcessFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string | undefined;\n runRoot: string | undefined;\n runId: string | undefined;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n enableLlm: boolean;\n llmModel: string | undefined;\n llmMaxProcesses: number | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'rows-file': { type: 'string' },\n 'run-root': { type: 'string' },\n 'run-id': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n 'enable-llm': { type: 'boolean' },\n 'llm-model': { type: 'string' },\n 'llm-max-processes': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const llmMaxProcessesValue =\n typeof values['llm-max-processes'] === 'string'\n ? Number.parseInt(values['llm-max-processes'], 10)\n : undefined;\n\n if (\n values['llm-max-processes'] !== undefined &&\n (!Number.isInteger(llmMaxProcessesValue) || (llmMaxProcessesValue as number) <= 0)\n ) {\n throw new CliError('Expected --llm-max-processes to be a positive integer.', {\n code: 'INVALID_LLM_MAX_PROCESSES',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : undefined,\n runRoot: typeof values['run-root'] === 'string' ? values['run-root'] : undefined,\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n enableLlm: Boolean(values['enable-llm']),\n llmModel: typeof values['llm-model'] === 'string' ? values['llm-model'] : undefined,\n llmMaxProcesses: llmMaxProcessesValue,\n };\n}\n\nfunction parseReviewFlowFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string | undefined;\n flowsDir: string | undefined;\n runRoot: string | undefined;\n runId: string | undefined;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n enableLlm: boolean;\n llmModel: string | undefined;\n llmMaxFlows: number | undefined;\n llmBatchSize: number | undefined;\n similarityThreshold: number | undefined;\n methodologyId: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'rows-file': { type: 'string' },\n 'flows-dir': { type: 'string' },\n 'run-root': { type: 'string' },\n 'run-id': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n 'enable-llm': { type: 'boolean' },\n 'llm-model': { type: 'string' },\n 'llm-max-flows': { type: 'string' },\n 'llm-batch-size': { type: 'string' },\n 'similarity-threshold': { type: 'string' },\n 'methodology-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const similarityThreshold =\n typeof values['similarity-threshold'] === 'string'\n ? Number.parseFloat(values['similarity-threshold'])\n : undefined;\n if (\n values['similarity-threshold'] !== undefined &&\n (!Number.isFinite(similarityThreshold) || (similarityThreshold as number) <= 0)\n ) {\n throw new CliError('Expected --similarity-threshold to be a positive number.', {\n code: 'INVALID_SIMILARITY_THRESHOLD',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : undefined,\n flowsDir: typeof values['flows-dir'] === 'string' ? values['flows-dir'] : undefined,\n runRoot: typeof values['run-root'] === 'string' ? values['run-root'] : undefined,\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n enableLlm: Boolean(values['enable-llm']),\n llmModel: typeof values['llm-model'] === 'string' ? values['llm-model'] : undefined,\n llmMaxFlows: parsePositiveIntegerFlag(\n values['llm-max-flows'],\n '--llm-max-flows',\n 'INVALID_LLM_MAX_FLOWS',\n ),\n llmBatchSize: parsePositiveIntegerFlag(\n values['llm-batch-size'],\n '--llm-batch-size',\n 'INVALID_LLM_BATCH_SIZE',\n ),\n similarityThreshold,\n methodologyId:\n typeof values['methodology-id'] === 'string' ? values['methodology-id'] : undefined,\n };\n}\n\nfunction parseReviewLifecyclemodelFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n };\n}\n\nfunction parseLifecyclemodelPublishFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n publishProcesses: boolean;\n publishRelations: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n 'publish-processes': { type: 'boolean' },\n 'publish-relations': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n publishProcesses: Boolean(values['publish-processes']),\n publishRelations: Boolean(values['publish-relations']),\n };\n}\n\nfunction parseLifecyclemodelValidateBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n engine: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n engine: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n engine: typeof values.engine === 'string' ? values.engine : undefined,\n };\n}\n\nfunction parseLifecyclemodelPublishBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n };\n}\n\nfunction parseLifecyclemodelSaveDraftFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n commit: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_LIFECYCLEMODEL_SAVE_DRAFT_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commit: Boolean(values.commit),\n };\n}\n\nfunction parseLifecyclemodelGraphFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string;\n format: string | undefined;\n checkConnections: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n format: { type: 'string' },\n 'check-connections': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n format: typeof values.format === 'string' ? values.format : undefined,\n checkConnections: Boolean(values['check-connections']),\n };\n}\n\nfunction parseLifecyclemodelBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseLifecyclemodelOrchestrateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n action: string;\n inputPath: string;\n outDir: string | null;\n runDir: string;\n allowProcessBuild: boolean;\n allowSubmodelBuild: boolean;\n publishLifecyclemodels: boolean;\n publishResultingProcessRelations: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n let positionals: string[];\n try {\n ({ values, positionals } = parseArgs({\n args,\n allowPositionals: true,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n request: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'run-dir': { type: 'string' },\n 'allow-process-build': { type: 'boolean' },\n 'allow-submodel-build': { type: 'boolean' },\n 'publish-lifecyclemodels': { type: 'boolean' },\n 'publish-resulting-process-relations': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const inputAlias = typeof values.request === 'string' ? values.request : '';\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n action: positionals[0] ?? '',\n inputPath: typeof values.input === 'string' ? values.input : inputAlias,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n allowProcessBuild: Boolean(values['allow-process-build']),\n allowSubmodelBuild: Boolean(values['allow-submodel-build']),\n publishLifecyclemodels: Boolean(values['publish-lifecyclemodels']),\n publishResultingProcessRelations: Boolean(values['publish-resulting-process-relations']),\n };\n}\n\nfunction parseProcessAutoBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseProcessGetFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processId: string;\n version: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string' },\n version: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processId: typeof values.id === 'string' ? values.id : '',\n version: typeof values.version === 'string' ? values.version : null,\n };\n}\n\nfunction parseProcessListFlags(args: string[]): {\n help: boolean;\n json: boolean;\n ids: string[];\n version: string | null;\n userId: string | null;\n stateCodes: number[];\n limit: number | null;\n offset: number | null;\n all: boolean;\n pageSize: number | null;\n order: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string', multiple: true },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n limit: { type: 'string' },\n offset: { type: 'string' },\n all: { type: 'boolean' },\n 'page-size': { type: 'string' },\n order: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalPositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseStateCodeValues = (value: unknown): number[] => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map((entry) => {\n const parsed = Number.parseInt(String(entry), 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError('Expected --state-code to be a non-negative integer.', {\n code: 'INVALID_PROCESS_LIST_STATE_CODE',\n exitCode: 2,\n });\n }\n return parsed;\n });\n };\n const toStringArray = (value: unknown): string[] =>\n Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n\n if (values['page-size'] !== undefined && !values.all) {\n throw new CliError('Use --page-size only with --all.', {\n code: 'PROCESS_LIST_PAGE_SIZE_REQUIRES_ALL',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n ids: toStringArray(values.id),\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCodes: parseStateCodeValues(values['state-code']),\n limit: parseOptionalPositiveIntegerFlag(values.limit, '--limit', 'INVALID_PROCESS_LIST_LIMIT'),\n offset: parseOptionalNonNegativeIntegerFlag(\n values.offset,\n '--offset',\n 'INVALID_PROCESS_LIST_OFFSET',\n ),\n all: Boolean(values.all),\n pageSize: parseOptionalPositiveIntegerFlag(\n values['page-size'],\n '--page-size',\n 'INVALID_PROCESS_LIST_PAGE_SIZE',\n ),\n order: typeof values.order === 'string' ? values.order : null,\n };\n}\n\nfunction parseProcessScopeStatisticsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n outDir: string;\n scope: 'visible' | 'current-user' | undefined;\n stateCodes: number[];\n pageSize: number | null;\n reuseSnapshot: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'out-dir': { type: 'string' },\n scope: { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n 'state-codes': { type: 'string' },\n 'page-size': { type: 'string' },\n 'reuse-snapshot': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseStateCode = (value: string): number => {\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError('Expected --state-code to be a non-negative integer.', {\n code: 'INVALID_PROCESS_SCOPE_STATE_CODE',\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const stateCodes = [\n ...(Array.isArray(values['state-code'])\n ? values['state-code'].map((value) => parseStateCode(String(value)))\n : []),\n ...(typeof values['state-codes'] === 'string' ? values['state-codes'].split(',') : [])\n .map((value) => value.trim())\n .filter(Boolean)\n .map((value) => parseStateCode(value)),\n ];\n\n let pageSize: number | null = null;\n if (typeof values['page-size'] === 'string') {\n const parsed = Number.parseInt(values['page-size'], 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError('Expected --page-size to be a positive integer.', {\n code: 'INVALID_PROCESS_SCOPE_PAGE_SIZE',\n exitCode: 2,\n });\n }\n pageSize = parsed;\n }\n\n let scope: 'visible' | 'current-user' | undefined;\n if (typeof values.scope === 'string') {\n if (values.scope !== 'visible' && values.scope !== 'current-user') {\n throw new CliError(\"Expected --scope to be either 'visible' or 'current-user'.\", {\n code: 'INVALID_PROCESS_SCOPE_SCOPE',\n exitCode: 2,\n });\n }\n scope = values.scope;\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n scope,\n stateCodes,\n pageSize,\n reuseSnapshot: Boolean(values['reuse-snapshot']),\n };\n}\n\nfunction parseProcessDedupReviewFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string;\n skipRemote: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'skip-remote': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n skipRemote: Boolean(values['skip-remote']),\n };\n}\n\nfunction parseProcessResumeBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runId: string;\n runDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-id': { type: 'string' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : '',\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : null,\n };\n}\n\nfunction parseProcessPublishBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runId: string;\n runDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-id': { type: 'string' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : '',\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : null,\n };\n}\n\nfunction parseProcessSaveDraftFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n commit: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_PROCESS_SAVE_DRAFT_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commit: Boolean(values.commit),\n };\n}\n\nfunction parseProcessRequiredFieldsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outPath: string;\n outDir: string | null;\n flowInputPath: string | null;\n defaultUnit: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n out: { type: 'string' },\n 'out-dir': { type: 'string' },\n flows: { type: 'string' },\n 'default-unit': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outPath: typeof values.out === 'string' ? values.out : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n flowInputPath: typeof values.flows === 'string' ? values.flows : null,\n defaultUnit: typeof values['default-unit'] === 'string' ? values['default-unit'] : null,\n };\n}\n\nfunction parseProcessRefreshReferencesFlags(args: string[]): {\n help: boolean;\n json: boolean;\n outDir: string;\n apply: boolean;\n reuseManifest: boolean;\n limit: number | null;\n pageSize: number | null;\n concurrency: number | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'out-dir': { type: 'string' },\n apply: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'reuse-manifest': { type: 'boolean' },\n limit: { type: 'string' },\n 'page-size': { type: 'string' },\n concurrency: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.apply && values['dry-run']) {\n throw new CliError('Cannot pass both --apply and --dry-run.', {\n code: 'PROCESS_REFRESH_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const parseOptionalPositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n apply: Boolean(values.apply),\n reuseManifest: Boolean(values['reuse-manifest']),\n limit: parseOptionalPositiveIntegerFlag(\n values.limit,\n '--limit',\n 'INVALID_PROCESS_REFRESH_LIMIT',\n ),\n pageSize: parseOptionalPositiveIntegerFlag(\n values['page-size'],\n '--page-size',\n 'INVALID_PROCESS_REFRESH_PAGE_SIZE',\n ),\n concurrency: parseOptionalPositiveIntegerFlag(\n values.concurrency,\n '--concurrency',\n 'INVALID_PROCESS_REFRESH_CONCURRENCY',\n ),\n };\n}\n\nfunction parseProcessVerifyRowsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'rows-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseProcessBatchBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction plannedCommand(command: string, subcommand?: string): CliResult {\n const suffix = subcommand ? ` ${subcommand}` : '';\n return {\n exitCode: 2,\n stdout: '',\n stderr: `Command '${command}${suffix}' is part of the planned unified surface but is not implemented yet.\\n`,\n };\n}\n\nfunction applyRemoteOverrides(\n env: NodeJS.ProcessEnv,\n overrides: Pick<ReturnType<typeof parseRemoteFlags>, 'apiBaseUrl' | 'apiKey' | 'region'>,\n) {\n const runtimeEnv = readRuntimeEnv(env);\n\n return {\n ...env,\n TIANGONG_LCA_API_BASE_URL: overrides.apiBaseUrl ?? runtimeEnv.apiBaseUrl ?? undefined,\n TIANGONG_LCA_API_KEY: overrides.apiKey ?? runtimeEnv.apiKey ?? undefined,\n TIANGONG_LCA_REGION: overrides.region ?? runtimeEnv.region,\n } satisfies NodeJS.ProcessEnv;\n}\n\nexport async function executeCli(argv: string[], deps: CliDeps): Promise<CliResult> {\n try {\n const { flags, command, subcommand, commandArgs } = parseCommandLine(argv);\n const publishImpl = deps.runPublishImpl ?? runPublish;\n const validationImpl = deps.runValidationImpl ?? runValidation;\n const lifecyclemodelAutoBuildImpl =\n deps.runLifecyclemodelAutoBuildImpl ?? runLifecyclemodelAutoBuild;\n const lifecyclemodelBuildImpl =\n deps.runLifecyclemodelBuildResultingProcessImpl ?? runLifecyclemodelBuildResultingProcess;\n const lifecyclemodelPublishImpl =\n deps.runLifecyclemodelPublishResultingProcessImpl ?? runLifecyclemodelPublishResultingProcess;\n const lifecyclemodelValidateImpl =\n deps.runLifecyclemodelValidateBuildImpl ?? runLifecyclemodelValidateBuild;\n const lifecyclemodelPublishBuildImpl =\n deps.runLifecyclemodelPublishBuildImpl ?? runLifecyclemodelPublishBuild;\n const lifecyclemodelSaveDraftImpl =\n deps.runLifecyclemodelSaveDraftImpl ?? runLifecyclemodelSaveDraft;\n const lifecyclemodelGraphImpl = deps.runLifecyclemodelGraphImpl ?? runLifecyclemodelGraph;\n const lifecyclemodelOrchestrateImpl =\n deps.runLifecyclemodelOrchestrateImpl ?? runLifecyclemodelOrchestrate;\n const processGetImpl = deps.runProcessGetImpl ?? runProcessGet;\n const processListImpl = deps.runProcessListImpl ?? runProcessList;\n const processAutoBuildImpl = deps.runProcessAutoBuildImpl ?? runProcessAutoBuild;\n const processBatchBuildImpl = deps.runProcessBatchBuildImpl ?? runProcessBatchBuild;\n const processScopeStatisticsImpl =\n deps.runProcessScopeStatisticsImpl ?? runProcessScopeStatistics;\n const processRefreshReferencesImpl =\n deps.runProcessRefreshReferencesImpl ?? runProcessRefreshReferences;\n const processDedupReviewImpl = deps.runProcessDedupReviewImpl ?? runProcessDedupReview;\n const processResumeBuildImpl = deps.runProcessResumeBuildImpl ?? runProcessResumeBuild;\n const processPublishBuildImpl = deps.runProcessPublishBuildImpl ?? runProcessPublishBuild;\n const processSaveDraftImpl = deps.runProcessSaveDraftImpl ?? runProcessSaveDraft;\n const processRequiredFieldsCompleteImpl =\n deps.runProcessRequiredFieldsCompleteImpl ?? runProcessRequiredFieldsComplete;\n const processVerifyRowsImpl = deps.runProcessVerifyRowsImpl ?? runProcessVerifyRows;\n const processIdentityPreflightImpl =\n deps.runProcessIdentityPreflightImpl ?? runProcessIdentityPreflight;\n const processBuildPlanValidateImpl =\n deps.runProcessBuildPlanValidateImpl ?? runProcessBuildPlanValidate;\n const processBuildPlanMaterializeImpl =\n deps.runProcessBuildPlanMaterializeImpl ?? runProcessBuildPlanMaterialize;\n const processReviewImpl = deps.runProcessReviewImpl ?? runProcessReview;\n const flowReviewImpl = deps.runFlowReviewImpl ?? runFlowReview;\n const lifecyclemodelReviewImpl = deps.runLifecyclemodelReviewImpl ?? runLifecyclemodelReview;\n const flowRemediateImpl = deps.runFlowRemediateImpl ?? runFlowRemediate;\n const flowFetchRowsImpl = deps.runFlowFetchRowsImpl ?? runFlowFetchRows;\n const flowMaterializeDecisionsImpl =\n deps.runFlowMaterializeDecisionsImpl ?? runFlowMaterializeDecisions;\n const flowGetImpl = deps.runFlowGetImpl ?? runFlowGet;\n const flowListImpl = deps.runFlowListImpl ?? runFlowList;\n const flowPublishVersionImpl = deps.runFlowPublishVersionImpl ?? runFlowPublishVersion;\n const flowReviewedPublishDataImpl =\n deps.runFlowReviewedPublishDataImpl ?? runFlowReviewedPublishData;\n const flowBuildAliasMapImpl = deps.runFlowBuildAliasMapImpl ?? runFlowBuildAliasMap;\n const flowScanProcessFlowRefsImpl =\n deps.runFlowScanProcessFlowRefsImpl ?? runFlowScanProcessFlowRefs;\n const flowPlanProcessFlowRepairsImpl =\n deps.runFlowPlanProcessFlowRepairsImpl ?? runFlowPlanProcessFlowRepairs;\n const flowApplyProcessFlowRepairsImpl =\n deps.runFlowApplyProcessFlowRepairsImpl ?? runFlowApplyProcessFlowRepairs;\n const flowRegenProductImpl = deps.runFlowRegenProductImpl ?? runFlowRegenProduct;\n const flowValidateProcessesImpl = deps.runFlowValidateProcessesImpl ?? runFlowValidateProcesses;\n const flowIdentityPreflightImpl = deps.runFlowIdentityPreflightImpl ?? runFlowIdentityPreflight;\n const flowBuildPlanValidateImpl = deps.runFlowBuildPlanValidateImpl ?? runFlowBuildPlanValidate;\n const flowBuildPlanMaterializeImpl =\n deps.runFlowBuildPlanMaterializeImpl ?? runFlowBuildPlanMaterialize;\n const datasetValidateImpl = deps.runDatasetValidateImpl ?? runDatasetValidate;\n const datasetReferencesRewriteImpl =\n deps.runDatasetReferencesRewriteImpl ?? runDatasetReferencesRewrite;\n const datasetRemoteRefreshImpl = deps.runDatasetRemoteRefreshImpl ?? runDatasetRemoteRefresh;\n const datasetRemoteVerifyImpl = deps.runDatasetRemoteVerifyImpl ?? runDatasetRemoteVerify;\n const datasetBilingualExtractImpl =\n deps.runDatasetBilingualExtractImpl ?? runDatasetBilingualExtract;\n const datasetBilingualApplyImpl = deps.runDatasetBilingualApplyImpl ?? runDatasetBilingualApply;\n const datasetBilingualValidateImpl =\n deps.runDatasetBilingualValidateImpl ?? runDatasetBilingualValidate;\n const datasetEvidenceSearchImpl = deps.runDatasetEvidenceSearchImpl ?? runDatasetEvidenceSearch;\n const datasetContractImpl = deps.runDatasetContractImpl ?? runDatasetContract;\n const datasetImportLcaConvertImpl =\n deps.runDatasetImportLcaConvertImpl ?? runDatasetImportLcaConvert;\n const datasetAuthorImpl = deps.runDatasetAuthorImpl ?? runDatasetAuthor;\n\n if (flags.version) {\n return { exitCode: 0, stdout: `${loadCliPackageVersion(import.meta.url)}\\n`, stderr: '' };\n }\n\n if (!command || command === 'help' || flags.help) {\n return { exitCode: 0, stdout: `${renderMainHelp(deps.dotEnvStatus)}\\n`, stderr: '' };\n }\n\n if (command === 'doctor') {\n const doctorFlags = parseDoctorFlags(commandArgs);\n if (doctorFlags.help) {\n return { exitCode: 0, stdout: `${renderDoctorHelp()}\\n`, stderr: '' };\n }\n const report = buildDoctorReport(deps.env, deps.dotEnvStatus);\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: doctorFlags.json ? `${JSON.stringify(report)}\\n` : renderDoctorText(report),\n stderr: '',\n };\n }\n\n if (command === 'search' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderSearchHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'search' && subcommand) {\n const remoteFlags = parseRemoteFlags(commandArgs);\n const commandKey = `search:${subcommand}` as const;\n if (remoteFlags.help) {\n return { exitCode: 0, stdout: `${getRemoteCommandHelp(commandKey)}\\n`, stderr: '' };\n }\n const env = applyRemoteOverrides(deps.env, remoteFlags);\n\n return {\n exitCode: 0,\n stdout: await executeRemoteCommand({\n commandKey,\n inputPath: remoteFlags.inputPath,\n env,\n timeoutMs: remoteFlags.timeoutMs,\n dryRun: remoteFlags.dryRun,\n compactJson: remoteFlags.json,\n fetchImpl: deps.fetchImpl,\n }),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && !subcommand) {\n return { exitCode: 0, stdout: `${renderDatasetHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'dataset' && subcommand === 'contract') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetContractHelp()}\\n`, stderr: '' };\n }\n if (action !== 'get') {\n throw new CliError(\"dataset contract action must be 'get'.\", {\n code: 'DATASET_CONTRACT_ACTION_INVALID',\n exitCode: 2,\n });\n }\n const datasetFlags = parseDatasetContractFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetContractHelp()}\\n`, stderr: '' };\n }\n const report = await datasetContractImpl({\n type: datasetFlags.type,\n include: datasetFlags.include,\n profile: datasetFlags.profile,\n outDir: datasetFlags.outDir,\n mode: 'contract',\n });\n return {\n exitCode: 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && subcommand === 'context-pack') {\n const datasetFlags = parseDatasetContractFlags(commandArgs);\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetContextPackHelp()}\\n`, stderr: '' };\n }\n const report = await datasetContractImpl({\n type: datasetFlags.type,\n include: datasetFlags.include,\n profile: datasetFlags.profile,\n outDir: datasetFlags.outDir,\n mode: 'context-pack',\n });\n return {\n exitCode: 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && subcommand === 'import-lca') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetImportLcaHelp()}\\n`, stderr: '' };\n }\n if (action !== 'convert') {\n throw new CliError(\"dataset import-lca action must be 'convert'.\", {\n code: 'DATASET_IMPORT_LCA_ACTION_INVALID',\n exitCode: 2,\n });\n }\n const datasetFlags = parseDatasetImportLcaConvertFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetImportLcaHelp()}\\n`, stderr: '' };\n }\n const report = await datasetImportLcaConvertImpl({\n inputPath: datasetFlags.inputPath,\n outputDir: datasetFlags.outputDir,\n fromFormat: datasetFlags.fromFormat,\n target: datasetFlags.target,\n reportPath: datasetFlags.reportPath,\n mappingDir: datasetFlags.mappingDir,\n language: datasetFlags.language,\n validationJobs: datasetFlags.validationJobs,\n detectOnly: datasetFlags.detectOnly,\n failOnWarning: datasetFlags.failOnWarning,\n pythonBin: datasetFlags.pythonBin,\n tidasToolsDir: datasetFlags.tidasToolsDir,\n env: deps.env,\n });\n return {\n exitCode: report.status === 'completed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && subcommand === 'author') {\n const datasetFlags = parseDatasetAuthorFlags(commandArgs);\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetAuthorHelp()}\\n`, stderr: '' };\n }\n const report = await datasetAuthorImpl({\n inputPath: datasetFlags.inputPath,\n targetTypes: datasetFlags.targetTypes,\n outDir: datasetFlags.outDir,\n prompt: datasetFlags.prompt,\n provider: datasetFlags.provider,\n model: datasetFlags.model,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && subcommand === 'validate') {\n const datasetFlags = parseDatasetValidateFlags(commandArgs);\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetValidateHelp()}\\n`, stderr: '' };\n }\n\n const report = await datasetValidateImpl({\n inputPath: datasetFlags.inputPath,\n type: datasetFlags.type,\n outDir: datasetFlags.outDir,\n });\n\n return {\n exitCode: report.counts.invalid > 0 ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && subcommand === 'verify-remote') {\n const datasetFlags = parseDatasetRemoteVerifyFlags(commandArgs);\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetRemoteVerifyHelp()}\\n`, stderr: '' };\n }\n\n const report = await datasetRemoteVerifyImpl({\n inputPath: datasetFlags.inputPath,\n outDir: datasetFlags.outDir,\n rootPolicy: datasetFlags.rootPolicy,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'blocked_remote_verification' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && subcommand === 'bilingual') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetBilingualHelp()}\\n`, stderr: '' };\n }\n\n if (action === 'extract') {\n const datasetFlags = parseDatasetBilingualExtractFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetBilingualExtractHelp()}\\n`, stderr: '' };\n }\n const report = await datasetBilingualExtractImpl({\n inputPath: datasetFlags.inputPath,\n type: datasetFlags.type,\n sourceLang: datasetFlags.sourceLang,\n targetLang: datasetFlags.targetLang,\n outDir: datasetFlags.outDir,\n });\n return {\n exitCode: 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (action === 'apply') {\n const datasetFlags = parseDatasetBilingualApplyFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetBilingualApplyHelp()}\\n`, stderr: '' };\n }\n const report = await datasetBilingualApplyImpl({\n inputPath: datasetFlags.inputPath,\n translationsPath: datasetFlags.translationsPath,\n outPath: datasetFlags.outPath,\n targetLang: datasetFlags.targetLang,\n outDir: datasetFlags.outDir,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (action === 'validate') {\n const datasetFlags = parseDatasetBilingualValidateFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetBilingualValidateHelp()}\\n`, stderr: '' };\n }\n const report = await datasetBilingualValidateImpl({\n inputPath: datasetFlags.inputPath,\n type: datasetFlags.type,\n outDir: datasetFlags.outDir,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n throw new CliError(\"dataset bilingual action must be 'extract', 'apply', or 'validate'.\", {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (command === 'dataset' && subcommand === 'evidence-search') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetEvidenceSearchHelp()}\\n`, stderr: '' };\n }\n if (action !== 'plan' && action !== 'run') {\n throw new CliError(\"dataset evidence-search action must be 'plan' or 'run'.\", {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const datasetFlags = parseDatasetEvidenceSearchFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetEvidenceSearchHelp()}\\n`, stderr: '' };\n }\n const report = await datasetEvidenceSearchImpl({\n mode: action,\n query: datasetFlags.query,\n inputPath: datasetFlags.inputPath,\n resultsPath: datasetFlags.resultsPath,\n providerUrl: datasetFlags.providerUrl,\n providerKey: datasetFlags.providerKey,\n profile: datasetFlags.profile,\n outDir: datasetFlags.outDir,\n maxQueries: datasetFlags.maxQueries,\n maxResultsPerQuery: datasetFlags.maxResultsPerQuery,\n timeoutMs: datasetFlags.timeoutMs,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'completed_no_sufficient_evidence' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && subcommand === 'references') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetReferencesHelp()}\\n`, stderr: '' };\n }\n if (!['rewrite', 'refresh-remote'].includes(action)) {\n throw new CliError(\"dataset references action must be 'rewrite' or 'refresh-remote'.\", {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (action === 'refresh-remote') {\n const datasetFlags = parseDatasetReferencesRefreshRemoteFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetReferencesHelp()}\\n`, stderr: '' };\n }\n const report = await datasetRemoteRefreshImpl({\n inputPath: datasetFlags.inputPath,\n outPath: datasetFlags.outPath,\n outDir: datasetFlags.outDir,\n rootPolicy: datasetFlags.rootPolicy,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'completed_with_blockers' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n const datasetFlags = parseDatasetReferencesRewriteFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetReferencesHelp()}\\n`, stderr: '' };\n }\n\n const report = await datasetReferencesRewriteImpl({\n inputPath: datasetFlags.inputPath,\n from: datasetFlags.from,\n to: datasetFlags.to,\n types: datasetFlags.types,\n scope: datasetFlags.scope,\n outDir: datasetFlags.outDir,\n commit: datasetFlags.commit,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && !subcommand) {\n return { exitCode: 0, stdout: `${renderLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'auto-build') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelAutoBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelAutoBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'build-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelBuildResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishImpl({\n runDir: lifecyclemodelFlags.runDir,\n publishProcesses: lifecyclemodelFlags.publishProcesses,\n publishRelations: lifecyclemodelFlags.publishRelations,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'validate-build') {\n const lifecyclemodelFlags = parseLifecyclemodelValidateBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelValidateBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelValidateImpl({\n runDir: lifecyclemodelFlags.runDir,\n engine: lifecyclemodelFlags.engine,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-build') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishBuildImpl({\n runDir: lifecyclemodelFlags.runDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'save-draft') {\n const lifecyclemodelFlags = parseLifecyclemodelSaveDraftFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelSaveDraftHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelSaveDraftImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n commit: lifecyclemodelFlags.commit,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'graph') {\n const lifecyclemodelFlags = parseLifecyclemodelGraphFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelGraphHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelGraphImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n format: lifecyclemodelFlags.format,\n checkConnections: lifecyclemodelFlags.checkConnections,\n });\n\n return {\n exitCode: report.status === 'completed_with_findings' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'orchestrate') {\n const lifecyclemodelFlags = parseLifecyclemodelOrchestrateFlags(commandArgs);\n if (lifecyclemodelFlags.help || !lifecyclemodelFlags.action) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelOrchestrateHelp()}\\n`,\n stderr: '',\n };\n }\n if (\n lifecyclemodelFlags.action !== 'plan' &&\n lifecyclemodelFlags.action !== 'execute' &&\n lifecyclemodelFlags.action !== 'publish'\n ) {\n throw new CliError(\n \"lifecyclemodel orchestrate action must be 'plan', 'execute', or 'publish'.\",\n {\n code: 'INVALID_ARGS',\n exitCode: 2,\n },\n );\n }\n\n const report = await lifecyclemodelOrchestrateImpl({\n action: lifecyclemodelFlags.action,\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n runDir: lifecyclemodelFlags.runDir,\n allowProcessBuild: lifecyclemodelFlags.allowProcessBuild,\n allowSubmodelBuild: lifecyclemodelFlags.allowSubmodelBuild,\n publishLifecyclemodels: lifecyclemodelFlags.publishLifecyclemodels,\n publishResultingProcessRelations: lifecyclemodelFlags.publishResultingProcessRelations,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.action === 'execute' && report.status !== 'completed' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && !subcommand) {\n return { exitCode: 0, stdout: `${renderProcessHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'process' && subcommand === 'get') {\n const processFlags = parseProcessGetFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessGetHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processGetImpl({\n processId: processFlags.processId,\n version: processFlags.version,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'list') {\n const processFlags = parseProcessListFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessListHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processListImpl({\n ids: processFlags.ids,\n version: processFlags.version,\n userId: processFlags.userId,\n stateCodes: processFlags.stateCodes,\n limit: processFlags.limit,\n offset: processFlags.offset,\n all: processFlags.all,\n pageSize: processFlags.pageSize,\n order: processFlags.order,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'identity-preflight') {\n const processFlags = parseIdentityPreflightFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessIdentityPreflightHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processIdentityPreflightImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n candidateInputPaths: processFlags.candidateInputPaths,\n remoteCandidateSearch: processFlags.remoteCandidateSearch,\n remoteQuery: processFlags.remoteQuery,\n remoteLimit: processFlags.remoteLimit,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'build-plan') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return {\n exitCode: 0,\n stdout: `${renderProcessBuildPlanHelp()}\\n`,\n stderr: '',\n };\n }\n if (action !== 'validate' && action !== 'materialize') {\n throw new CliError(\"process build-plan action must be 'validate' or 'materialize'.\", {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n const processFlags = parseBuildPlanFlags(commandArgs.slice(1));\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessBuildPlanHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report =\n action === 'validate'\n ? await processBuildPlanValidateImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n reportOnly: processFlags.reportOnly,\n })\n : await processBuildPlanMaterializeImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n reportOnly: processFlags.reportOnly,\n });\n\n return {\n exitCode: report.status === 'blocked' && !processFlags.reportOnly ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'scope-statistics') {\n const processFlags = parseProcessScopeStatisticsFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessScopeStatisticsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processScopeStatisticsImpl({\n outDir: processFlags.outDir,\n scope: processFlags.scope,\n stateCodes: processFlags.stateCodes,\n pageSize: processFlags.pageSize,\n reuseSnapshot: processFlags.reuseSnapshot,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'dedup-review') {\n const processFlags = parseProcessDedupReviewFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessDedupReviewHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processDedupReviewImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n skipRemote: processFlags.skipRemote,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'auto-build') {\n const processFlags = parseProcessAutoBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessAutoBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processAutoBuildImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'resume-build') {\n const processFlags = parseProcessResumeBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessResumeBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processResumeBuildImpl({\n runId: processFlags.runId || undefined,\n runDir: processFlags.runDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'publish-build') {\n const processFlags = parseProcessPublishBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessPublishBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processPublishBuildImpl({\n runId: processFlags.runId || undefined,\n runDir: processFlags.runDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'complete-required-fields') {\n const processFlags = parseProcessRequiredFieldsFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessRequiredFieldsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processRequiredFieldsCompleteImpl({\n inputPath: processFlags.inputPath,\n outPath: processFlags.outPath,\n outDir: processFlags.outDir,\n flowInputPath: processFlags.flowInputPath,\n defaultUnit: processFlags.defaultUnit,\n });\n\n return {\n exitCode: report.status === 'completed_with_blockers' ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'save-draft') {\n const processFlags = parseProcessSaveDraftFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessSaveDraftHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processSaveDraftImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n commit: processFlags.commit,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'refresh-references') {\n const processFlags = parseProcessRefreshReferencesFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessRefreshReferencesHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processRefreshReferencesImpl({\n outDir: processFlags.outDir,\n apply: processFlags.apply,\n reuseManifest: processFlags.reuseManifest,\n limit: processFlags.limit,\n pageSize: processFlags.pageSize,\n concurrency: processFlags.concurrency,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_process_reference_refresh_with_errors' ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'verify-rows') {\n const processFlags = parseProcessVerifyRowsFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessVerifyRowsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processVerifyRowsImpl({\n rowsFile: processFlags.rowsFile,\n outDir: processFlags.outDir,\n });\n\n return {\n exitCode: report.invalid_count > 0 ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'batch-build') {\n const processFlags = parseProcessBatchBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessBatchBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processBatchBuildImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && !subcommand) {\n return { exitCode: 0, stdout: `${renderFlowHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'flow' && subcommand === 'get') {\n const flowFlags = parseFlowGetFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowGetHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowGetImpl({\n flowId: flowFlags.flowId,\n version: flowFlags.version,\n userId: flowFlags.userId,\n stateCode: flowFlags.stateCode,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'list') {\n const flowFlags = parseFlowListFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowListHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowListImpl({\n ids: flowFlags.ids,\n version: flowFlags.version,\n userId: flowFlags.userId,\n stateCodes: flowFlags.stateCodes,\n typeOfDataset: flowFlags.typeOfDataset,\n limit: flowFlags.limit,\n offset: flowFlags.offset,\n all: flowFlags.all,\n pageSize: flowFlags.pageSize,\n order: flowFlags.order,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'identity-preflight') {\n const flowFlags = parseIdentityPreflightFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowIdentityPreflightHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowIdentityPreflightImpl({\n inputPath: flowFlags.inputPath,\n outDir: flowFlags.outDir,\n candidateInputPaths: flowFlags.candidateInputPaths,\n remoteCandidateSearch: flowFlags.remoteCandidateSearch,\n remoteQuery: flowFlags.remoteQuery,\n remoteLimit: flowFlags.remoteLimit,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'build-plan') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderFlowBuildPlanHelp()}\\n`, stderr: '' };\n }\n if (action !== 'validate' && action !== 'materialize') {\n throw new CliError(\"flow build-plan action must be 'validate' or 'materialize'.\", {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n const flowFlags = parseBuildPlanFlags(commandArgs.slice(1));\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowBuildPlanHelp()}\\n`, stderr: '' };\n }\n\n const report =\n action === 'validate'\n ? await flowBuildPlanValidateImpl({\n inputPath: flowFlags.inputPath,\n outDir: flowFlags.outDir,\n reportOnly: flowFlags.reportOnly,\n })\n : await flowBuildPlanMaterializeImpl({\n inputPath: flowFlags.inputPath,\n outDir: flowFlags.outDir,\n reportOnly: flowFlags.reportOnly,\n });\n\n return {\n exitCode: report.status === 'blocked' && !flowFlags.reportOnly ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'remediate') {\n const flowFlags = parseFlowRemediateFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowRemediateHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowRemediateImpl({\n inputFile: flowFlags.inputFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'fetch-rows') {\n const flowFlags = parseFlowFetchRowsFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowFetchRowsHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowFetchRowsImpl({\n refsFile: flowFlags.refsFile,\n outDir: flowFlags.outDir,\n allowLatestFallback: flowFlags.allowLatestFallback,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode:\n flowFlags.failOnMissing &&\n report.status === 'completed_flow_row_materialization_with_gaps'\n ? 1\n : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'materialize-decisions') {\n const flowFlags = parseFlowMaterializeDecisionsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowMaterializeDecisionsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowMaterializeDecisionsImpl({\n decisionFile: flowFlags.decisionFile,\n flowRowsFile: flowFlags.flowRowsFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'publish-version') {\n const flowFlags = parseFlowPublishVersionFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowPublishVersionHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowPublishVersionImpl({\n inputFile: flowFlags.inputFile,\n outDir: flowFlags.outDir,\n commit: flowFlags.commit,\n maxWorkers: flowFlags.maxWorkers,\n limit: flowFlags.limit,\n targetUserId: flowFlags.targetUserId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_flow_publish_version_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'publish-reviewed-data') {\n const flowFlags = parseFlowPublishReviewedDataFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowPublishReviewedDataHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowReviewedPublishDataImpl({\n flowRowsFile: flowFlags.flowRowsFile,\n originalFlowRowsFile: flowFlags.originalFlowRowsFile,\n processRowsFile: flowFlags.processRowsFile,\n outDir: flowFlags.outDir,\n flowPublishPolicy: flowFlags.flowPublishPolicy,\n processPublishPolicy: flowFlags.processPublishPolicy,\n rewriteProcessFlowRefs: flowFlags.rewriteProcessFlowRefs,\n commit: flowFlags.commit,\n maxWorkers: flowFlags.maxWorkers,\n targetUserId: flowFlags.targetUserId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_flow_publish_reviewed_data_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'build-alias-map') {\n const flowFlags = parseFlowBuildAliasMapFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowBuildAliasMapHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowBuildAliasMapImpl({\n oldFlowFiles: flowFlags.oldFlowFiles,\n newFlowFiles: flowFlags.newFlowFiles,\n seedAliasMapFile: flowFlags.seedAliasMapFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'scan-process-flow-refs') {\n const flowFlags = parseFlowScanProcessFlowRefsFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowScanProcessFlowRefsHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowScanProcessFlowRefsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n catalogFlowFiles: flowFlags.catalogFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n excludeEmergy: flowFlags.excludeEmergy,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'plan-process-flow-repairs') {\n const flowFlags = parseFlowPlanProcessFlowRepairsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowPlanProcessFlowRepairsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowPlanProcessFlowRepairsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n scanFindingsFile: flowFlags.scanFindingsFile,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'apply-process-flow-repairs') {\n const flowFlags = parseFlowApplyProcessFlowRepairsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowApplyProcessFlowRepairsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowApplyProcessFlowRepairsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n scanFindingsFile: flowFlags.scanFindingsFile,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n processPoolFile: flowFlags.processPoolFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'regen-product') {\n const flowFlags = parseFlowRegenProductFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowRegenProductHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowRegenProductImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n catalogFlowFiles: flowFlags.catalogFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n excludeEmergy: flowFlags.excludeEmergy,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n apply: flowFlags.apply,\n processPoolFile: flowFlags.processPoolFile,\n tidasMode: flowFlags.tidasMode,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: report.validation.ok === false ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'validate-processes') {\n const flowFlags = parseFlowValidateProcessesFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowValidateProcessesHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowValidateProcessesImpl({\n originalProcessesFile: flowFlags.originalProcessesFile,\n patchedProcessesFile: flowFlags.patchedProcessesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n tidasMode: flowFlags.tidasMode,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: report.summary.failed > 0 ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'admin' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderAdminHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'admin' && subcommand === 'embedding-run') {\n const remoteFlags = parseRemoteFlags(commandArgs);\n if (remoteFlags.help) {\n return {\n exitCode: 0,\n stdout: `${getRemoteCommandHelp('admin:embedding-run')}\\n`,\n stderr: '',\n };\n }\n const env = applyRemoteOverrides(deps.env, remoteFlags);\n\n return {\n exitCode: 0,\n stdout: await executeRemoteCommand({\n commandKey: 'admin:embedding-run',\n inputPath: remoteFlags.inputPath,\n env,\n timeoutMs: remoteFlags.timeoutMs,\n dryRun: remoteFlags.dryRun,\n compactJson: remoteFlags.json,\n fetchImpl: deps.fetchImpl,\n }),\n stderr: '',\n };\n }\n\n if (command === 'publish' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderPublishHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'publish' && subcommand === 'run') {\n const publishFlags = parsePublishFlags(commandArgs);\n if (publishFlags.help) {\n return { exitCode: 0, stdout: `${renderPublishHelp()}\\n`, stderr: '' };\n }\n\n const report = await publishImpl({\n inputPath: publishFlags.inputPath,\n outDir: publishFlags.outDir,\n commit: publishFlags.commitOverride,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, publishFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'validation' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderValidationHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'validation' && subcommand === 'run') {\n const validationFlags = parseValidationFlags(commandArgs);\n if (validationFlags.help) {\n return { exitCode: 0, stdout: `${renderValidationHelp()}\\n`, stderr: '' };\n }\n\n const report = await validationImpl({\n inputDir: validationFlags.inputDir,\n engine: validationFlags.engine,\n reportFile: validationFlags.reportFile,\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, validationFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && !subcommand) {\n return { exitCode: 0, stdout: `${renderReviewHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'review' && subcommand === 'process') {\n const reviewFlags = parseReviewProcessFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewProcessHelp()}\\n`, stderr: '' };\n }\n\n const report = await processReviewImpl({\n rowsFile: reviewFlags.rowsFile,\n runRoot: reviewFlags.runRoot,\n runId: reviewFlags.runId,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n enableLlm: reviewFlags.enableLlm,\n llmModel: reviewFlags.llmModel,\n llmMaxProcesses: reviewFlags.llmMaxProcesses,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && subcommand === 'flow') {\n const reviewFlags = parseReviewFlowFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewFlowHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowReviewImpl({\n rowsFile: reviewFlags.rowsFile,\n flowsDir: reviewFlags.flowsDir,\n runRoot: reviewFlags.runRoot,\n runId: reviewFlags.runId,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n enableLlm: reviewFlags.enableLlm,\n llmModel: reviewFlags.llmModel,\n llmMaxFlows: reviewFlags.llmMaxFlows,\n llmBatchSize: reviewFlags.llmBatchSize,\n similarityThreshold: reviewFlags.similarityThreshold,\n methodologyId: reviewFlags.methodologyId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && subcommand === 'lifecyclemodel') {\n const reviewFlags = parseReviewLifecyclemodelFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n const report = await lifecyclemodelReviewImpl({\n runDir: reviewFlags.runDir,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n return plannedCommand(command, subcommand ?? undefined);\n } catch (error) {\n const payload = toErrorPayload(error);\n const exitCode = error instanceof CliError ? error.exitCode : 1;\n return {\n exitCode,\n stdout: '',\n stderr: `${JSON.stringify(payload)}\\n`,\n };\n }\n}\n"]}
|