@tiangong-lca/cli 0.0.17 → 0.0.18
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 +2 -2
- package/dist/src/cli.js +3 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/lib/dataset-remote-verify.js +28 -7
- package/dist/src/lib/dataset-remote-verify.js.map +1 -1
- package/dist/src/lib/dataset-save-draft-run.js +14 -6
- package/dist/src/lib/dataset-save-draft-run.js.map +1 -1
- package/package.json +1 -1
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 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 { runProcessQa, type ProcessQaReport, type RunProcessQaOptions } from './lib/process-qa.js';\nimport { runFlowQa, type FlowQaReport, type RunFlowQaOptions } from './lib/flow-qa.js';\nimport {\n runLifecyclemodelQa,\n type LifecyclemodelQaReport,\n type RunLifecyclemodelQaOptions,\n} from './lib/lifecyclemodel-qa.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 runDatasetCurationQueueBuild,\n runDatasetCurationQueueNext,\n runDatasetCurationQueueVerify,\n type DatasetCurationQueueBuildReport,\n type DatasetCurationQueueNextReport,\n type DatasetCurationQueueVerifyReport,\n type RunDatasetCurationQueueBuildOptions,\n type RunDatasetCurationQueueNextOptions,\n type RunDatasetCurationQueueVerifyOptions,\n} from './lib/dataset-curation-queue.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';\nimport {\n runDatasetPatchApply,\n type DatasetPatchApplyReport,\n type RunDatasetPatchApplyOptions,\n} from './lib/dataset-patch.js';\nimport {\n runDatasetSaveDraft,\n type DatasetSaveDraftReport,\n type RunDatasetSaveDraftOptions,\n} from './lib/dataset-save-draft-run.js';\nimport {\n runDatasetClassificationApply,\n runDatasetClassificationAudit,\n runDatasetClassificationChildren,\n runDatasetClassificationPath,\n type DatasetClassificationApplyReport,\n type DatasetClassificationAuditReport,\n type DatasetClassificationChildrenReport,\n type DatasetClassificationPathReport,\n type RunDatasetClassificationApplyOptions,\n type RunDatasetClassificationAuditOptions,\n type RunDatasetClassificationChildrenOptions,\n type RunDatasetClassificationPathOptions,\n} from './lib/dataset-classification.js';\nimport {\n runDatasetMaintenanceClearAccount,\n type DatasetMaintenanceClearAccountReport,\n type RunDatasetMaintenanceClearAccountOptions,\n} from './lib/dataset-maintenance-clear-account.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 runProcessQaImpl?: (options: RunProcessQaOptions) => Promise<ProcessQaReport>;\n runFlowQaImpl?: (options: RunFlowQaOptions) => Promise<FlowQaReport>;\n runLifecyclemodelQaImpl?: (\n options: RunLifecyclemodelQaOptions,\n ) => Promise<LifecyclemodelQaReport>;\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 runDatasetCurationQueueBuildImpl?: (\n options: RunDatasetCurationQueueBuildOptions,\n ) => Promise<DatasetCurationQueueBuildReport>;\n runDatasetCurationQueueNextImpl?: (\n options: RunDatasetCurationQueueNextOptions,\n ) => Promise<DatasetCurationQueueNextReport>;\n runDatasetCurationQueueVerifyImpl?: (\n options: RunDatasetCurationQueueVerifyOptions,\n ) => Promise<DatasetCurationQueueVerifyReport>;\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 runDatasetPatchApplyImpl?: (\n options: RunDatasetPatchApplyOptions,\n ) => Promise<DatasetPatchApplyReport>;\n runDatasetSaveDraftImpl?: (\n options: RunDatasetSaveDraftOptions,\n ) => Promise<DatasetSaveDraftReport>;\n runDatasetClassificationChildrenImpl?: (\n options: RunDatasetClassificationChildrenOptions,\n ) => Promise<DatasetClassificationChildrenReport>;\n runDatasetClassificationPathImpl?: (\n options: RunDatasetClassificationPathOptions,\n ) => Promise<DatasetClassificationPathReport>;\n runDatasetClassificationAuditImpl?: (\n options: RunDatasetClassificationAuditOptions,\n ) => Promise<DatasetClassificationAuditReport>;\n runDatasetClassificationApplyImpl?: (\n options: RunDatasetClassificationApplyOptions,\n ) => Promise<DatasetClassificationApplyReport>;\n runDatasetMaintenanceClearAccountImpl?: (\n options: RunDatasetMaintenanceClearAccountOptions,\n ) => Promise<DatasetMaintenanceClearAccountReport>;\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 | classification children/path/audit/apply | curation-queue build/next/verify | import-lca convert | author | patch apply | save-draft | validate | verify-remote | bilingual extract/apply/validate | evidence-search plan/run | references rewrite/refresh-remote | maintenance clear-account\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 qa 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 dataset maintenance plan | apply | verify\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 classification children --type process --parent A --out-dir ./classification --json\n tiangong-lca dataset classification path --type process --code 1080 --out-dir ./classification --json\n tiangong-lca dataset classification audit --type location --input ./rows/processes.jsonl --out-dir ./classification --json\n tiangong-lca dataset classification apply --input ./rows/processes.jsonl --decisions ./classification-decisions.jsonl --out ./rows/processes.classified.jsonl --type process --out-dir ./classification --json\n tiangong-lca dataset curation-queue build --processes ./processes.jsonl --flows ./flows.jsonl --out-dir ./curation-queue\n tiangong-lca dataset curation-queue next --queue-dir ./curation-queue --type support\n tiangong-lca dataset curation-queue verify --queue-dir ./curation-queue --type process\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 save-draft --input ./contacts.jsonl --type contact --out-dir /abs/path/to/contact-save-draft --commit\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 dataset maintenance clear-account --out-dir /abs/path/to/account-clear --json\n tiangong-lca dataset maintenance plan --scope ./maintenance-scope.json --operation redo-import --out-dir /abs/path/to/dataset-maintenance\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 ./qa-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 qa process --rows-file ./processes.jsonl --out-dir ./qa\n tiangong-lca qa process --run-root /abs/path/to/process-run --run-id <run_id> --out-dir ./qa\n tiangong-lca qa flow --rows-file ./flows.json --out-dir ./qa\n tiangong-lca qa lifecyclemodel --rows-file ./lifecyclemodels.jsonl --out-dir ./lifecyclemodel-qa\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 classification Navigate bundled TIDAS classification schemas or apply selected classifications\n curation-queue build Build entity-level AI curation queue artifacts for Foundry imports\n curation-queue next Return the next runnable support/flow/process queue task\n curation-queue verify Verify queue task checkpoints for a scope\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 patch apply Apply AI-authored structured dataset patches deterministically\n save-draft Save contact/source/support or other canonical dataset rows through the platform dataset command path\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/QA 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 maintenance clear-account Dry-run or clear current authenticated account-owned dataset rows through RLS\n\nPlanned Subcommands:\n maintenance plan/apply/verify Plan, execute, and verify RLS-scoped dataset delete/redo maintenance\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 classification children --type process --parent A --out-dir ./classification --help\n tiangong-lca dataset classification path --type process --code 1080 --out-dir ./classification --help\n tiangong-lca dataset classification audit --type location --input ./rows/processes.jsonl --out-dir ./classification --help\n tiangong-lca dataset classification apply --input ./rows/processes.jsonl --decisions ./classification-decisions.jsonl --out ./rows/processes.classified.jsonl --type process --out-dir ./classification --help\n tiangong-lca dataset curation-queue build --processes ./rows/processes.jsonl --flows ./rows/flows.jsonl --support ./rows/sources.jsonl --out-dir ./curation-queue --help\n tiangong-lca dataset curation-queue next --queue-dir ./curation-queue --type flow --json\n tiangong-lca dataset curation-queue verify --queue-dir ./curation-queue --task-id process:abc@00.00.001 --json\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 patch apply --input ./rows.jsonl --patch ./ai-patches.json --out ./rows.patched.jsonl --out-dir ./patch-apply --help\n tiangong-lca dataset save-draft --input ./contacts.jsonl --type contact --out-dir ./contact-save-draft --commit --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 tiangong-lca dataset maintenance clear-account --out-dir ./account-clear --json --help\n tiangong-lca dataset maintenance plan --scope ./maintenance-scope.json --operation redo-import --out-dir ./dataset-maintenance --help\n`.trim();\n}\n\nfunction renderDatasetMaintenanceHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance <clear-account|plan|apply|verify> [options]\n\nStatus:\n clear-account is implemented for current authenticated account cleanup.\n plan/apply/verify remain reserved for row-level RLS-scoped cleanup and redo workflows and currently exit with code 2 for executable actions.\n\nImplemented Actions:\n clear-account Dry-run or delete current authenticated account-owned lifecyclemodels, processes, flows, sources, and contacts.\n\nPlanned Actions:\n plan Build an immutable maintenance plan from a scope manifest, visible remote snapshot, dependency impact report, and intended operation.\n apply Execute an approved plan through current-user RLS and platform dataset command paths; never bypass RLS or delete rows outside the visible scope.\n verify Re-fetch affected rows and references, then prove that deleted, updated, skipped, protected, and redone rows match the plan.\n\nRequired Artifact Contract:\n - maintenance-plan.json\n - rls-visible-snapshot.json\n - protected-rows.jsonl\n - reference-impact-report.json\n - dry-run-report.json\n - commit-report.json\n - readback-verify-report.json\n\nExamples:\n tiangong-lca dataset maintenance clear-account --out-dir ./account-clear --json\n tiangong-lca dataset maintenance clear-account --commit --confirm user@example.com --out-dir ./account-clear\n tiangong-lca dataset maintenance plan --scope ./maintenance-scope.json --operation redo-import --out-dir ./dataset-maintenance\n tiangong-lca dataset maintenance apply --plan ./dataset-maintenance/maintenance-plan.json --commit\n tiangong-lca dataset maintenance verify --plan ./dataset-maintenance/maintenance-plan.json --out-dir ./dataset-maintenance/verify\n`.trim();\n}\n\nfunction renderDatasetMaintenanceClearAccountHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance clear-account [options]\n\nBehavior:\n Dry-run by default. With --commit, deletes only rows visible to the current authenticated user and filtered by user_id through RLS.\n Tables are deleted in reference-safe order: lifecyclemodels, processes, flows, sources, contacts.\n Unit groups and flow properties are not deleted by this command because they are treated as protected support data.\n\nOptions:\n --state-code <n> Optional repeatable state_code filter. Omit to clear all state codes for the current account.\n --out-dir <dir> Artifact directory (default: ./dataset-maintenance/clear-account)\n --page-size <n> Snapshot page size, 1-5000 (default: 1000)\n --timeout-ms <n> Request timeout in milliseconds (default: 10000)\n --commit Execute deletion. Without this flag the command only writes a dry-run report.\n --dry-run Explicit dry-run mode\n --confirm <email> Required with --commit; must match the current authenticated account email\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - rls-visible-snapshot.json\n - dry-run-report.json\n - approval-record.json (commit only)\n - commit-report.json (commit only)\n - readback-verify-report.json (commit only)\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 renderDatasetClassificationHelp(): string {\n return `Usage:\n tiangong-lca dataset classification children --type <type> [options]\n tiangong-lca dataset classification path --type <type> --code <code> [options]\n tiangong-lca dataset classification audit --type location --input <file> [options]\n tiangong-lca dataset classification apply --input <file> --decisions <file> --out <file> [options]\n\nClassification types:\n process, flow-product, flow-elementary, source, contact, unitgroup, flowproperty, lciamethod, location\n\nActions:\n children List the next selectable children for a parent code. Omit --parent for top level.\n path Resolve one schema code into the full root-to-leaf classification path.\n audit Scan local rows for schema-derived location fields that are not valid TIDAS location codes.\n apply Apply AI/human classification decisions to local TIDAS rows deterministically.\n\nOptions for children:\n --type <type> Classification schema type\n --parent <code> Parent code to inspect\n --query <text> Filter direct children by code or label\n --limit <n> Limit returned children\n --out-dir <dir> Optional artifact directory\n --json Print compact JSON\n\nOptions for path:\n --type <type> Classification schema type\n --code <code> Leaf or intermediate classification code\n --out-dir <dir> Optional artifact directory\n --json Print compact JSON\n\nOptions for audit:\n --type location Audit schema-derived location values against tidas_locations_category.json\n --input <file> Local rows as JSON or JSONL\n --out-dir <dir> Optional artifact directory\n --json Print compact JSON\n\nOptions for apply:\n --input <file> Local rows as JSON or JSONL\n --decisions <file> JSON/JSONL decisions with row_index or dataset_id plus code/classes\n --out <file> Output JSONL path for classified rows\n --type <type> Default classification type when decisions omit category_type\n --out-dir <dir> Artifact directory; defaults to the output file directory\n --json Print compact JSON\n -h, --help\n\nDecision contract:\n Decisions may target row_index or dataset_id. They may provide code, leaf_code, class_id, cat_id,\n or a classes/common:class/common:category path. The CLI normalizes the path against the bundled\n TIDAS schema copied from tidas-tools before writing it back. Location decisions use location\n target fields derived from the bundled TIDAS schemas, plus TIDAS LCIA geography fields; use\n --type location and target_path when a row contains more than one location field.\n\nOutputs:\n - children/path report under outputs/ when --out-dir is provided\n - outputs/location-audit-findings.jsonl for audit\n - outputs/location-audit-report.json for audit\n - classified rows at --out for apply\n - outputs/classification-apply-evidence.jsonl\n - outputs/classification-apply-report.json\n`.trim();\n}\n\nfunction renderDatasetCurationQueueHelp(): string {\n return `Usage:\n tiangong-lca dataset curation-queue build --processes <file> --out-dir <dir> [options]\n tiangong-lca dataset curation-queue next --queue-dir <dir> [--type <type>|--task-id <id>]\n tiangong-lca dataset curation-queue verify --queue-dir <dir> [--type <type>|--task-id <id>]\n\nOptions for build:\n --processes <file> Process rows JSON/JSONL\n --flows <file> Local flow rows JSON/JSONL used by process references\n --support <file> Repeatable support rows JSON/JSONL, for source/contact/unitgroup/flowproperty rows\n --external-flow-ref <file> Repeatable external flow ref rows JSON/JSONL treated as already resolvable\n --exclude-process-id <id> Repeatable process id to skip\n --process-limit <n> Limit process tasks for focused validation or retries\n --out-dir <dir> Queue artifact directory\n --json Print compact JSON\n -h, --help\n\nOptions for next/verify:\n --queue-dir <dir> Queue artifact directory produced by build\n --type <type> support | flow | process\n --task-id <id> Exact task id such as process:<uuid>@00.00.001\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/curation-queue-manifest.json\n - outputs/curation-queue-tasks.jsonl\n - outputs/curation-queue-locks.json\n - outputs/curation-queue-blockers.jsonl\n - entities/<supports|flows|processes>/<id>__<version>/input.jsonl\n - entities/<supports|flows|processes>/<id>__<version>/closure.json\n - entities/<supports|flows|processes>/<id>__<version>/entity-run-plan.json\n\nContract:\n build creates queue artifacts. next/verify consume those artifacts and entity checkpoint.json files.\n They do not run AI or write the database. AI authoring must write structured patches or build plans,\n and remote writes remain blocked until deterministic apply, schema/QA, prewrite verify, and readback gates pass.\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 --process-bundles Write per-process dependency bundles (default: enabled by tidas-tools)\n --process-bundles-dir <dir>\n Custom per-process bundle directory (default: <output-dir>/process-bundles)\n --no-process-bundles Disable per-process dependency bundle generation\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 - process-bundles/ when not detect-only and process bundles are enabled\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 renderDatasetPatchHelp(): string {\n return `Usage:\n tiangong-lca dataset patch apply --input <file> --patch <file> --out <file> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL\n --patch <file> AI-authored JSON patch set with row_index or dataset_id selectors\n --out <file> Output JSONL path for patched rows\n --out-dir <dir> Artifact directory; defaults to the output file directory\n --authoring-package-dir <dir> Resolve relative authoring_package paths from this directory\n --require-authoring-package Require each patch set to point at a matching authoring package\n --require-action-item-closure Require patch operations to close package action_items\n --json Print compact JSON\n -h, --help\n\nPatch contract:\n Patch payloads must declare patch_status=completed before deterministic apply.\n Patch sets must target a row by row_index or dataset_id and use operations[].\n Supported operations are test, add, replace, and remove. Non-test operations require basis or evidence.\n Foundry AI patches should include resolution.mode and resolution.used_context_kinds; these are copied to patch evidence.\n Strict Foundry mode also requires authoring package lineage and explicit action item closure.\n If any operation is invalid, the command reports blocked and writes the original rows unchanged.\n\nOutputs:\n - patched rows at --out\n - outputs/patch-evidence.jsonl\n - outputs/dataset-patch-apply-report.json\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 --compare-root-payload Compare each root row payload hash against the remote row\n --target-user-id <id> Require root readback rows to belong to this user\n --state-code <code> Require root readback rows to have this state_code\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 renderDatasetSaveDraftHelp(): string {\n return `Usage:\n tiangong-lca dataset save-draft --input <file> --type <type> [options]\n\nOptions:\n --input <file> Canonical TIDAS rows JSON/JSONL\n --type <type> auto, contact, source, flow, process\n --out-dir <dir> Artifact directory\n --commit Execute remote save-draft writes\n --dry-run Validate and plan without remote writes (default)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/dataset-save-draft/selected-rows.jsonl\n - outputs/dataset-save-draft/progress.jsonl\n - outputs/dataset-save-draft/failures.jsonl\n - outputs/dataset-save-draft/summary.json\n\nContract:\n This generic dataset path writes only mutable rows such as contact/source/flow/process. Unit group and flow property rows are reference-only; select existing database rows and rewrite references instead of creating My Data support rows.\n Process and lifecyclemodel imports may still use their dedicated save-draft commands when the workflow needs their specialized reports.\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 | contact | source | unitgroup | flowproperty | 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 QA 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 - qa/process/... and/or qa/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 qa-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 --remote-data-source <tg|co|my|te>\n Search TianGong public, community, my data, or team data (default: tg)\n --timeout-ms <n> Remote search/auth timeout in milliseconds\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 - qa-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 renderQaHelp(): string {\n return `Usage:\n tiangong-lca qa <subcommand> [options]\n\nImplemented Subcommands:\n process Run deterministic process QA for build runs or rows-file snapshots\n flow Run deterministic flow QA for local governance snapshots\n lifecyclemodel Run deterministic lifecyclemodel QA for build runs or rows-file snapshots\n\nExamples:\n tiangong-lca qa process --help\n tiangong-lca qa flow --help\n tiangong-lca qa lifecyclemodel --help\n`.trim();\n}\n\nfunction renderQaProcessHelp(): string {\n return `Usage:\n tiangong-lca qa 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 QA run identifier; defaults to the rows-file name or run-root basename\n --out-dir <dir> QA artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> QA logic version label (default: v2.1)\n --enable-llm Deprecated no-op; process semantic authoring now belongs in Foundry curation\n --llm-model <name> Deprecated no-op kept for older scripts\n --llm-max-processes <n> Deprecated no-op kept for older scripts\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderQaFlowHelp(): string {\n return `Usage:\n tiangong-lca qa 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 qa-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> QA artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> QA logic version label (default: flow-v1.0-cli)\n --enable-llm Enable optional QA-only semantic checks via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this QA 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 renderQaLifecyclemodelHelp(): string {\n return `Usage:\n tiangong-lca qa lifecyclemodel (--rows-file <file> | --run-dir <dir>) --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Lifecyclemodel rows JSON/JSONL file; payload-level QA for import snapshots\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --out-dir <dir> QA artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> QA logic version label (default: lifecyclemodel-qa-v1.0)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - reads one lifecyclemodel rows snapshot or existing 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 QA 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 --remote-data-source <tg|co|my|te>\n Search TianGong public, community, my data, or team data (default: tg)\n --timeout-ms <n> Remote search/auth timeout in milliseconds\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 --target-user-id <id>\n Require --commit to run as this user and update an owned draft\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 write \"9999 missing-data-sentinel/year\", an intentionally non-physical searchable sentinel for later database-side curation.\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 parseDatasetSaveDraftFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n type: string | undefined;\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 type: { 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_DATASET_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 type: typeof values.type === 'string' ? values.type : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commit: Boolean(values.commit),\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 parseDatasetClassificationChildrenFlags(args: string[]): {\n help: boolean;\n json: boolean;\n type: string;\n parent: string | null;\n query: string | null;\n limit: number | 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 type: { type: 'string' },\n parent: { type: 'string' },\n query: { type: 'string' },\n 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 limit = typeof values.limit === 'string' ? Number.parseInt(values.limit, 10) : null;\n if (limit !== null && (!Number.isInteger(limit) || limit <= 0)) {\n throw new CliError('--limit must be a positive integer.', {\n code: 'DATASET_CLASSIFICATION_LIMIT_INVALID',\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 : '',\n parent: typeof values.parent === 'string' ? values.parent : null,\n query: typeof values.query === 'string' ? values.query : null,\n limit,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetClassificationPathFlags(args: string[]): {\n help: boolean;\n json: boolean;\n type: string;\n code: 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 type: { type: 'string' },\n code: { 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 : '',\n code: typeof values.code === 'string' ? values.code : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetClassificationAuditFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n type: 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 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 : 'location',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetClassificationApplyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n decisionsPath: string;\n outPath: string;\n type: 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 decisions: { type: 'string' },\n out: { 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 decisionsPath: typeof values.decisions === 'string' ? values.decisions : '',\n outPath: typeof values.out === 'string' ? values.out : '',\n type: typeof values.type === 'string' ? values.type : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetCurationQueueBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesPath: string;\n flowsPath: string | undefined;\n supportPaths: string[];\n externalFlowRefPaths: string[];\n outDir: string;\n excludeProcessIds: string[];\n processLimit: 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 processes: { type: 'string' },\n flows: { type: 'string' },\n support: { type: 'string', multiple: true },\n 'external-flow-ref': { type: 'string', multiple: true },\n 'exclude-process-id': { type: 'string', multiple: true },\n 'process-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 processLimit =\n typeof values['process-limit'] === 'string'\n ? Number.parseInt(values['process-limit'], 10)\n : undefined;\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesPath: typeof values.processes === 'string' ? values.processes : '',\n flowsPath: typeof values.flows === 'string' ? values.flows : undefined,\n supportPaths: Array.isArray(values.support)\n ? values.support.filter((value): value is string => typeof value === 'string')\n : [],\n externalFlowRefPaths: Array.isArray(values['external-flow-ref'])\n ? values['external-flow-ref'].filter((value): value is string => typeof value === 'string')\n : [],\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n excludeProcessIds: Array.isArray(values['exclude-process-id'])\n ? values['exclude-process-id'].filter((value): value is string => typeof value === 'string')\n : [],\n processLimit,\n };\n}\n\nfunction parseDatasetCurationQueueRuntimeFlags(args: string[]): {\n help: boolean;\n json: boolean;\n queueDir: string;\n entityType: 'support' | 'flow' | 'process' | undefined;\n taskId: 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 'queue-dir': { type: 'string' },\n type: { type: 'string' },\n 'task-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 entityType = typeof values.type === 'string' ? values.type : undefined;\n if (\n entityType !== undefined &&\n entityType !== 'support' &&\n entityType !== 'flow' &&\n entityType !== 'process'\n ) {\n throw new CliError('--type must be support, flow, or process.', {\n code: 'DATASET_CURATION_QUEUE_TYPE_INVALID',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n queueDir: typeof values['queue-dir'] === 'string' ? values['queue-dir'] : '',\n entityType,\n taskId: typeof values['task-id'] === 'string' ? values['task-id'] : undefined,\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 processBundles: boolean | undefined;\n processBundlesDir: string | 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 'process-bundles': { type: 'boolean' },\n 'process-bundles-dir': { type: 'string' },\n 'no-process-bundles': { type: 'boolean' },\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 if (values['process-bundles'] && values['no-process-bundles']) {\n throw new CliError('--process-bundles and --no-process-bundles cannot both be set.', {\n code: 'DATASET_IMPORT_LCA_PROCESS_BUNDLES_INVALID',\n exitCode: 2,\n });\n }\n if (values['no-process-bundles'] && typeof values['process-bundles-dir'] === 'string') {\n throw new CliError('--process-bundles-dir cannot be used with --no-process-bundles.', {\n code: 'DATASET_IMPORT_LCA_PROCESS_BUNDLES_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 processBundles: values['no-process-bundles']\n ? false\n : values['process-bundles']\n ? true\n : undefined,\n processBundlesDir:\n typeof values['process-bundles-dir'] === 'string' ? values['process-bundles-dir'] : undefined,\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 parseDatasetPatchApplyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n patchPath: string;\n outPath: string;\n outDir: string | null;\n authoringPackageDir: string | null;\n requireAuthoringPackage: boolean;\n requireActionItemClosure: 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 patch: { type: 'string' },\n out: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'authoring-package-dir': { type: 'string' },\n 'require-authoring-package': { type: 'boolean' },\n 'require-action-item-closure': { 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 patchPath: typeof values.patch === 'string' ? values.patch : '',\n outPath: typeof values.out === 'string' ? values.out : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n authoringPackageDir:\n typeof values['authoring-package-dir'] === 'string' ? values['authoring-package-dir'] : null,\n requireAuthoringPackage: Boolean(values['require-authoring-package']),\n requireActionItemClosure: Boolean(values['require-action-item-closure']),\n };\n}\n\nfunction parseDatasetRemoteVerifyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string;\n rootPolicy: 'existing' | 'candidate';\n compareRootPayload: boolean;\n targetUserId: 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 input: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'root-policy': { type: 'string' },\n 'compare-root-payload': { type: 'boolean' },\n 'target-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 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 let stateCode: number | null = null;\n if (typeof values['state-code'] === 'string') {\n stateCode = Number.parseInt(values['state-code'], 10);\n if (!Number.isInteger(stateCode) || stateCode < 0) {\n throw new CliError('--state-code must be a non-negative integer.', {\n code: 'DATASET_REMOTE_VERIFY_STATE_CODE_INVALID',\n exitCode: 2,\n });\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 rootPolicy,\n compareRootPayload: Boolean(values['compare-root-payload']),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n stateCode,\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 parseDatasetMaintenanceClearAccountFlags(args: string[]): {\n help: boolean;\n json: boolean;\n outDir: string | null;\n stateCodes: number[] | null;\n pageSize: number | undefined;\n timeoutMs: number | undefined;\n commit: boolean;\n confirm: 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 'out-dir': { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n 'page-size': { type: 'string' },\n 'timeout-ms': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n confirm: { 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: 'DATASET_MAINTENANCE_CLEAR_ACCOUNT_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const rawStateCodes = Array.isArray(values['state-code'])\n ? values['state-code'].filter((value): value is string => typeof value === 'string')\n : [];\n const stateCodes = rawStateCodes.map((value) => {\n if (!/^-?\\d+$/u.test(value.trim())) {\n throw new CliError('--state-code must be an integer.', {\n code: 'DATASET_MAINTENANCE_STATE_CODE_INVALID',\n exitCode: 2,\n details: value,\n });\n }\n return Number.parseInt(value.trim(), 10);\n });\n\n const parseOptionalInteger = (value: unknown, flagName: string): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n if (!/^\\d+$/u.test(value.trim())) {\n throw new CliError(`${flagName} must be a positive integer.`, {\n code: 'DATASET_MAINTENANCE_INTEGER_INVALID',\n exitCode: 2,\n details: {\n flag: flagName,\n value,\n },\n });\n }\n return Number.parseInt(value.trim(), 10);\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n stateCodes: stateCodes.length > 0 ? stateCodes : null,\n pageSize: parseOptionalInteger(values['page-size'], '--page-size'),\n timeoutMs: parseOptionalInteger(values['timeout-ms'], '--timeout-ms'),\n commit: Boolean(values.commit),\n confirm: typeof values.confirm === 'string' ? values.confirm : null,\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 | undefined;\n remoteQuery: string | null;\n remoteLimit: number | null;\n remoteDataSource: string | null;\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 'candidate-input': { type: 'string', multiple: true },\n 'remote-candidates': { type: 'boolean' },\n 'remote-query': { type: 'string' },\n 'remote-limit': { type: 'string' },\n 'remote-data-source': { type: 'string' },\n 'timeout-ms': { 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 const parseTimeoutMs = (value: unknown): 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 --timeout-ms to be a positive integer.', {\n code: 'INVALID_IDENTITY_PREFLIGHT_TIMEOUT',\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: values['remote-candidates'] === true ? true : undefined,\n remoteQuery: typeof values['remote-query'] === 'string' ? values['remote-query'] : null,\n remoteLimit: parseRemoteLimit(values['remote-limit']),\n remoteDataSource:\n typeof values['remote-data-source'] === 'string' ? values['remote-data-source'] : null,\n timeoutMs: parseTimeoutMs(values['timeout-ms']),\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 parseQaProcessFlags(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 parseQaFlowFlags(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 parseQaLifecyclemodelFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string | undefined;\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 'rows-file': { type: 'string' },\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 rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : undefined,\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 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 input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\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: '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 targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\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 removedReviewCommand(subcommand?: string): CliResult {\n const suffix = subcommand ? ` ${subcommand}` : '';\n const replacement = subcommand ? `qa ${subcommand}` : 'qa';\n return {\n exitCode: 2,\n stdout: '',\n stderr: `Command 'review${suffix}' was removed. Use 'tiangong-lca ${replacement}' instead.\\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 processQaImpl = deps.runProcessQaImpl ?? runProcessQa;\n const flowQaImpl = deps.runFlowQaImpl ?? runFlowQa;\n const lifecyclemodelQaImpl = deps.runLifecyclemodelQaImpl ?? runLifecyclemodelQa;\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 datasetCurationQueueBuildImpl =\n deps.runDatasetCurationQueueBuildImpl ?? runDatasetCurationQueueBuild;\n const datasetCurationQueueNextImpl =\n deps.runDatasetCurationQueueNextImpl ?? runDatasetCurationQueueNext;\n const datasetCurationQueueVerifyImpl =\n deps.runDatasetCurationQueueVerifyImpl ?? runDatasetCurationQueueVerify;\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 const datasetPatchApplyImpl = deps.runDatasetPatchApplyImpl ?? runDatasetPatchApply;\n const datasetSaveDraftImpl = deps.runDatasetSaveDraftImpl ?? runDatasetSaveDraft;\n const datasetClassificationChildrenImpl =\n deps.runDatasetClassificationChildrenImpl ?? runDatasetClassificationChildren;\n const datasetClassificationPathImpl =\n deps.runDatasetClassificationPathImpl ?? runDatasetClassificationPath;\n const datasetClassificationAuditImpl =\n deps.runDatasetClassificationAuditImpl ?? runDatasetClassificationAudit;\n const datasetClassificationApplyImpl =\n deps.runDatasetClassificationApplyImpl ?? runDatasetClassificationApply;\n const datasetMaintenanceClearAccountImpl =\n deps.runDatasetMaintenanceClearAccountImpl ?? runDatasetMaintenanceClearAccount;\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 === 'classification') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n\n if (action === 'children') {\n const datasetFlags = parseDatasetClassificationChildrenFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n const report = await datasetClassificationChildrenImpl({\n type: datasetFlags.type,\n parent: datasetFlags.parent,\n query: datasetFlags.query,\n limit: datasetFlags.limit,\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 === 'path') {\n const datasetFlags = parseDatasetClassificationPathFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n const report = await datasetClassificationPathImpl({\n type: datasetFlags.type,\n code: datasetFlags.code,\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 === 'audit') {\n const datasetFlags = parseDatasetClassificationAuditFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n const report = await datasetClassificationAuditImpl({\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 if (action === 'apply') {\n const datasetFlags = parseDatasetClassificationApplyFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n const report = await datasetClassificationApplyImpl({\n inputPath: datasetFlags.inputPath,\n decisionsPath: datasetFlags.decisionsPath,\n outPath: datasetFlags.outPath,\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(\n \"dataset classification action must be 'children', 'path', 'audit', or 'apply'.\",\n {\n code: 'DATASET_CLASSIFICATION_ACTION_INVALID',\n exitCode: 2,\n },\n );\n }\n\n if (command === 'dataset' && subcommand === 'curation-queue') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetCurationQueueHelp()}\\n`, stderr: '' };\n }\n if (action !== 'build' && action !== 'next' && action !== 'verify') {\n throw new CliError(\"dataset curation-queue action must be 'build', 'next', or 'verify'.\", {\n code: 'DATASET_CURATION_QUEUE_ACTION_INVALID',\n exitCode: 2,\n });\n }\n if (action === 'next') {\n const datasetFlags = parseDatasetCurationQueueRuntimeFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetCurationQueueHelp()}\\n`, stderr: '' };\n }\n const report = await datasetCurationQueueNextImpl({\n queueDir: datasetFlags.queueDir,\n entityType: datasetFlags.entityType,\n taskId: datasetFlags.taskId,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n if (action === 'verify') {\n const datasetFlags = parseDatasetCurationQueueRuntimeFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetCurationQueueHelp()}\\n`, stderr: '' };\n }\n const report = await datasetCurationQueueVerifyImpl({\n queueDir: datasetFlags.queueDir,\n entityType: datasetFlags.entityType,\n taskId: datasetFlags.taskId,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n const datasetFlags = parseDatasetCurationQueueBuildFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetCurationQueueHelp()}\\n`, stderr: '' };\n }\n const report = await datasetCurationQueueBuildImpl({\n processesPath: datasetFlags.processesPath,\n flowsPath: datasetFlags.flowsPath,\n supportPaths: datasetFlags.supportPaths,\n externalFlowRefPaths: datasetFlags.externalFlowRefPaths,\n outDir: datasetFlags.outDir,\n excludeProcessIds: datasetFlags.excludeProcessIds,\n processLimit: datasetFlags.processLimit,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 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 processBundles: datasetFlags.processBundles,\n processBundlesDir: datasetFlags.processBundlesDir,\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 === 'patch') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetPatchHelp()}\\n`, stderr: '' };\n }\n if (action !== 'apply') {\n throw new CliError(\"dataset patch action must be 'apply'.\", {\n code: 'DATASET_PATCH_ACTION_INVALID',\n exitCode: 2,\n });\n }\n const datasetFlags = parseDatasetPatchApplyFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetPatchHelp()}\\n`, stderr: '' };\n }\n const report = await datasetPatchApplyImpl({\n inputPath: datasetFlags.inputPath,\n patchPath: datasetFlags.patchPath,\n outPath: datasetFlags.outPath,\n outDir: datasetFlags.outDir,\n authoringPackageDir: datasetFlags.authoringPackageDir,\n requireAuthoringPackage: datasetFlags.requireAuthoringPackage,\n requireActionItemClosure: datasetFlags.requireActionItemClosure,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && subcommand === 'save-draft') {\n const datasetFlags = parseDatasetSaveDraftFlags(commandArgs);\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetSaveDraftHelp()}\\n`, stderr: '' };\n }\n\n const report = await datasetSaveDraftImpl({\n inputPath: datasetFlags.inputPath,\n type: datasetFlags.type,\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 === '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 compareRootPayload: datasetFlags.compareRootPayload,\n targetUserId: datasetFlags.targetUserId,\n stateCode: datasetFlags.stateCode,\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 === 'dataset' && subcommand === 'maintenance') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetMaintenanceHelp()}\\n`, stderr: '' };\n }\n if (action === 'clear-account') {\n const datasetFlags = parseDatasetMaintenanceClearAccountFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceClearAccountHelp()}\\n`,\n stderr: '',\n };\n }\n const report = await datasetMaintenanceClearAccountImpl({\n outDir: datasetFlags.outDir,\n stateCodes: datasetFlags.stateCodes,\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n commit: datasetFlags.commit,\n confirm: datasetFlags.confirm,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n if (!['plan', 'apply', 'verify'].includes(action)) {\n throw new CliError(\n \"dataset maintenance action must be 'clear-account', 'plan', 'apply', or 'verify'.\",\n {\n code: 'DATASET_MAINTENANCE_ACTION_INVALID',\n exitCode: 2,\n },\n );\n }\n return plannedCommand('dataset', `maintenance ${action}`);\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 remoteDataSource: processFlags.remoteDataSource,\n timeoutMs: processFlags.timeoutMs,\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 targetUserId: processFlags.targetUserId,\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 remoteDataSource: flowFlags.remoteDataSource,\n timeoutMs: flowFlags.timeoutMs,\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 === 'qa' && !subcommand) {\n return { exitCode: 0, stdout: `${renderQaHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'qa' && subcommand === 'process') {\n const qaFlags = parseQaProcessFlags(commandArgs);\n if (qaFlags.help) {\n return { exitCode: 0, stdout: `${renderQaProcessHelp()}\\n`, stderr: '' };\n }\n\n const report = await processQaImpl({\n rowsFile: qaFlags.rowsFile,\n runRoot: qaFlags.runRoot,\n runId: qaFlags.runId,\n outDir: qaFlags.outDir,\n startTs: qaFlags.startTs,\n endTs: qaFlags.endTs,\n logicVersion: qaFlags.logicVersion,\n enableLlm: qaFlags.enableLlm,\n llmModel: qaFlags.llmModel,\n llmMaxProcesses: qaFlags.llmMaxProcesses,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, qaFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'qa' && subcommand === 'flow') {\n const qaFlags = parseQaFlowFlags(commandArgs);\n if (qaFlags.help) {\n return { exitCode: 0, stdout: `${renderQaFlowHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowQaImpl({\n rowsFile: qaFlags.rowsFile,\n flowsDir: qaFlags.flowsDir,\n runRoot: qaFlags.runRoot,\n runId: qaFlags.runId,\n outDir: qaFlags.outDir,\n startTs: qaFlags.startTs,\n endTs: qaFlags.endTs,\n logicVersion: qaFlags.logicVersion,\n enableLlm: qaFlags.enableLlm,\n llmModel: qaFlags.llmModel,\n llmMaxFlows: qaFlags.llmMaxFlows,\n llmBatchSize: qaFlags.llmBatchSize,\n similarityThreshold: qaFlags.similarityThreshold,\n methodologyId: qaFlags.methodologyId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, qaFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'qa' && subcommand === 'lifecyclemodel') {\n const qaFlags = parseQaLifecyclemodelFlags(commandArgs);\n if (qaFlags.help) {\n return { exitCode: 0, stdout: `${renderQaLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n const report = await lifecyclemodelQaImpl({\n ...(qaFlags.rowsFile ? { rowsFile: qaFlags.rowsFile } : {}),\n runDir: qaFlags.runDir,\n outDir: qaFlags.outDir,\n startTs: qaFlags.startTs,\n endTs: qaFlags.endTs,\n logicVersion: qaFlags.logicVersion,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, qaFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review') {\n return removedReviewCommand(subcommand ?? undefined);\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 { runProcessQa, type ProcessQaReport, type RunProcessQaOptions } from './lib/process-qa.js';\nimport { runFlowQa, type FlowQaReport, type RunFlowQaOptions } from './lib/flow-qa.js';\nimport {\n runLifecyclemodelQa,\n type LifecyclemodelQaReport,\n type RunLifecyclemodelQaOptions,\n} from './lib/lifecyclemodel-qa.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 runDatasetCurationQueueBuild,\n runDatasetCurationQueueNext,\n runDatasetCurationQueueVerify,\n type DatasetCurationQueueBuildReport,\n type DatasetCurationQueueNextReport,\n type DatasetCurationQueueVerifyReport,\n type RunDatasetCurationQueueBuildOptions,\n type RunDatasetCurationQueueNextOptions,\n type RunDatasetCurationQueueVerifyOptions,\n} from './lib/dataset-curation-queue.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';\nimport {\n runDatasetPatchApply,\n type DatasetPatchApplyReport,\n type RunDatasetPatchApplyOptions,\n} from './lib/dataset-patch.js';\nimport {\n runDatasetSaveDraft,\n type DatasetSaveDraftReport,\n type RunDatasetSaveDraftOptions,\n} from './lib/dataset-save-draft-run.js';\nimport {\n runDatasetClassificationApply,\n runDatasetClassificationAudit,\n runDatasetClassificationChildren,\n runDatasetClassificationPath,\n type DatasetClassificationApplyReport,\n type DatasetClassificationAuditReport,\n type DatasetClassificationChildrenReport,\n type DatasetClassificationPathReport,\n type RunDatasetClassificationApplyOptions,\n type RunDatasetClassificationAuditOptions,\n type RunDatasetClassificationChildrenOptions,\n type RunDatasetClassificationPathOptions,\n} from './lib/dataset-classification.js';\nimport {\n runDatasetMaintenanceClearAccount,\n type DatasetMaintenanceClearAccountReport,\n type RunDatasetMaintenanceClearAccountOptions,\n} from './lib/dataset-maintenance-clear-account.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 runProcessQaImpl?: (options: RunProcessQaOptions) => Promise<ProcessQaReport>;\n runFlowQaImpl?: (options: RunFlowQaOptions) => Promise<FlowQaReport>;\n runLifecyclemodelQaImpl?: (\n options: RunLifecyclemodelQaOptions,\n ) => Promise<LifecyclemodelQaReport>;\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 runDatasetCurationQueueBuildImpl?: (\n options: RunDatasetCurationQueueBuildOptions,\n ) => Promise<DatasetCurationQueueBuildReport>;\n runDatasetCurationQueueNextImpl?: (\n options: RunDatasetCurationQueueNextOptions,\n ) => Promise<DatasetCurationQueueNextReport>;\n runDatasetCurationQueueVerifyImpl?: (\n options: RunDatasetCurationQueueVerifyOptions,\n ) => Promise<DatasetCurationQueueVerifyReport>;\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 runDatasetPatchApplyImpl?: (\n options: RunDatasetPatchApplyOptions,\n ) => Promise<DatasetPatchApplyReport>;\n runDatasetSaveDraftImpl?: (\n options: RunDatasetSaveDraftOptions,\n ) => Promise<DatasetSaveDraftReport>;\n runDatasetClassificationChildrenImpl?: (\n options: RunDatasetClassificationChildrenOptions,\n ) => Promise<DatasetClassificationChildrenReport>;\n runDatasetClassificationPathImpl?: (\n options: RunDatasetClassificationPathOptions,\n ) => Promise<DatasetClassificationPathReport>;\n runDatasetClassificationAuditImpl?: (\n options: RunDatasetClassificationAuditOptions,\n ) => Promise<DatasetClassificationAuditReport>;\n runDatasetClassificationApplyImpl?: (\n options: RunDatasetClassificationApplyOptions,\n ) => Promise<DatasetClassificationApplyReport>;\n runDatasetMaintenanceClearAccountImpl?: (\n options: RunDatasetMaintenanceClearAccountOptions,\n ) => Promise<DatasetMaintenanceClearAccountReport>;\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 | classification children/path/audit/apply | curation-queue build/next/verify | import-lca convert | author | patch apply | save-draft | validate | verify-remote | bilingual extract/apply/validate | evidence-search plan/run | references rewrite/refresh-remote | maintenance clear-account\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 qa 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 dataset maintenance plan | apply | verify\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 classification children --type process --parent A --out-dir ./classification --json\n tiangong-lca dataset classification path --type process --code 1080 --out-dir ./classification --json\n tiangong-lca dataset classification audit --type location --input ./rows/processes.jsonl --out-dir ./classification --json\n tiangong-lca dataset classification apply --input ./rows/processes.jsonl --decisions ./classification-decisions.jsonl --out ./rows/processes.classified.jsonl --type process --out-dir ./classification --json\n tiangong-lca dataset curation-queue build --processes ./processes.jsonl --flows ./flows.jsonl --out-dir ./curation-queue\n tiangong-lca dataset curation-queue next --queue-dir ./curation-queue --type support\n tiangong-lca dataset curation-queue verify --queue-dir ./curation-queue --type process\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 save-draft --input ./contacts.jsonl --type contact --out-dir /abs/path/to/contact-save-draft --commit\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 dataset maintenance clear-account --out-dir /abs/path/to/account-clear --json\n tiangong-lca dataset maintenance plan --scope ./maintenance-scope.json --operation redo-import --out-dir /abs/path/to/dataset-maintenance\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 ./qa-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 qa process --rows-file ./processes.jsonl --out-dir ./qa\n tiangong-lca qa process --run-root /abs/path/to/process-run --run-id <run_id> --out-dir ./qa\n tiangong-lca qa flow --rows-file ./flows.json --out-dir ./qa\n tiangong-lca qa lifecyclemodel --rows-file ./lifecyclemodels.jsonl --out-dir ./lifecyclemodel-qa\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 classification Navigate bundled TIDAS classification schemas or apply selected classifications\n curation-queue build Build entity-level AI curation queue artifacts for Foundry imports\n curation-queue next Return the next runnable support/flow/process queue task\n curation-queue verify Verify queue task checkpoints for a scope\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 patch apply Apply AI-authored structured dataset patches deterministically\n save-draft Save contact/source/support or other canonical dataset rows through the platform dataset command path\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/QA 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 maintenance clear-account Dry-run or clear current authenticated account-owned dataset rows through RLS\n\nPlanned Subcommands:\n maintenance plan/apply/verify Plan, execute, and verify RLS-scoped dataset delete/redo maintenance\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 classification children --type process --parent A --out-dir ./classification --help\n tiangong-lca dataset classification path --type process --code 1080 --out-dir ./classification --help\n tiangong-lca dataset classification audit --type location --input ./rows/processes.jsonl --out-dir ./classification --help\n tiangong-lca dataset classification apply --input ./rows/processes.jsonl --decisions ./classification-decisions.jsonl --out ./rows/processes.classified.jsonl --type process --out-dir ./classification --help\n tiangong-lca dataset curation-queue build --processes ./rows/processes.jsonl --flows ./rows/flows.jsonl --support ./rows/sources.jsonl --out-dir ./curation-queue --help\n tiangong-lca dataset curation-queue next --queue-dir ./curation-queue --type flow --json\n tiangong-lca dataset curation-queue verify --queue-dir ./curation-queue --task-id process:abc@00.00.001 --json\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 patch apply --input ./rows.jsonl --patch ./ai-patches.json --out ./rows.patched.jsonl --out-dir ./patch-apply --help\n tiangong-lca dataset save-draft --input ./contacts.jsonl --type contact --out-dir ./contact-save-draft --commit --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 tiangong-lca dataset maintenance clear-account --out-dir ./account-clear --json --help\n tiangong-lca dataset maintenance plan --scope ./maintenance-scope.json --operation redo-import --out-dir ./dataset-maintenance --help\n`.trim();\n}\n\nfunction renderDatasetMaintenanceHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance <clear-account|plan|apply|verify> [options]\n\nStatus:\n clear-account is implemented for current authenticated account cleanup.\n plan/apply/verify remain reserved for row-level RLS-scoped cleanup and redo workflows and currently exit with code 2 for executable actions.\n\nImplemented Actions:\n clear-account Dry-run or delete current authenticated account-owned lifecyclemodels, processes, flows, sources, and contacts.\n\nPlanned Actions:\n plan Build an immutable maintenance plan from a scope manifest, visible remote snapshot, dependency impact report, and intended operation.\n apply Execute an approved plan through current-user RLS and platform dataset command paths; never bypass RLS or delete rows outside the visible scope.\n verify Re-fetch affected rows and references, then prove that deleted, updated, skipped, protected, and redone rows match the plan.\n\nRequired Artifact Contract:\n - maintenance-plan.json\n - rls-visible-snapshot.json\n - protected-rows.jsonl\n - reference-impact-report.json\n - dry-run-report.json\n - commit-report.json\n - readback-verify-report.json\n\nExamples:\n tiangong-lca dataset maintenance clear-account --out-dir ./account-clear --json\n tiangong-lca dataset maintenance clear-account --commit --confirm user@example.com --out-dir ./account-clear\n tiangong-lca dataset maintenance plan --scope ./maintenance-scope.json --operation redo-import --out-dir ./dataset-maintenance\n tiangong-lca dataset maintenance apply --plan ./dataset-maintenance/maintenance-plan.json --commit\n tiangong-lca dataset maintenance verify --plan ./dataset-maintenance/maintenance-plan.json --out-dir ./dataset-maintenance/verify\n`.trim();\n}\n\nfunction renderDatasetMaintenanceClearAccountHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance clear-account [options]\n\nBehavior:\n Dry-run by default. With --commit, deletes only rows visible to the current authenticated user and filtered by user_id through RLS.\n Tables are deleted in reference-safe order: lifecyclemodels, processes, flows, sources, contacts.\n Unit groups and flow properties are not deleted by this command because they are treated as protected support data.\n\nOptions:\n --state-code <n> Optional repeatable state_code filter. Omit to clear all state codes for the current account.\n --out-dir <dir> Artifact directory (default: ./dataset-maintenance/clear-account)\n --page-size <n> Snapshot page size, 1-5000 (default: 1000)\n --timeout-ms <n> Request timeout in milliseconds (default: 10000)\n --commit Execute deletion. Without this flag the command only writes a dry-run report.\n --dry-run Explicit dry-run mode\n --confirm <email> Required with --commit; must match the current authenticated account email\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - rls-visible-snapshot.json\n - dry-run-report.json\n - approval-record.json (commit only)\n - commit-report.json (commit only)\n - readback-verify-report.json (commit only)\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 renderDatasetClassificationHelp(): string {\n return `Usage:\n tiangong-lca dataset classification children --type <type> [options]\n tiangong-lca dataset classification path --type <type> --code <code> [options]\n tiangong-lca dataset classification audit --type location --input <file> [options]\n tiangong-lca dataset classification apply --input <file> --decisions <file> --out <file> [options]\n\nClassification types:\n process, flow-product, flow-elementary, source, contact, unitgroup, flowproperty, lciamethod, location\n\nActions:\n children List the next selectable children for a parent code. Omit --parent for top level.\n path Resolve one schema code into the full root-to-leaf classification path.\n audit Scan local rows for schema-derived location fields that are not valid TIDAS location codes.\n apply Apply AI/human classification decisions to local TIDAS rows deterministically.\n\nOptions for children:\n --type <type> Classification schema type\n --parent <code> Parent code to inspect\n --query <text> Filter direct children by code or label\n --limit <n> Limit returned children\n --out-dir <dir> Optional artifact directory\n --json Print compact JSON\n\nOptions for path:\n --type <type> Classification schema type\n --code <code> Leaf or intermediate classification code\n --out-dir <dir> Optional artifact directory\n --json Print compact JSON\n\nOptions for audit:\n --type location Audit schema-derived location values against tidas_locations_category.json\n --input <file> Local rows as JSON or JSONL\n --out-dir <dir> Optional artifact directory\n --json Print compact JSON\n\nOptions for apply:\n --input <file> Local rows as JSON or JSONL\n --decisions <file> JSON/JSONL decisions with row_index or dataset_id plus code/classes\n --out <file> Output JSONL path for classified rows\n --type <type> Default classification type when decisions omit category_type\n --out-dir <dir> Artifact directory; defaults to the output file directory\n --json Print compact JSON\n -h, --help\n\nDecision contract:\n Decisions may target row_index or dataset_id. They may provide code, leaf_code, class_id, cat_id,\n or a classes/common:class/common:category path. The CLI normalizes the path against the bundled\n TIDAS schema copied from tidas-tools before writing it back. Location decisions use location\n target fields derived from the bundled TIDAS schemas, plus TIDAS LCIA geography fields; use\n --type location and target_path when a row contains more than one location field.\n\nOutputs:\n - children/path report under outputs/ when --out-dir is provided\n - outputs/location-audit-findings.jsonl for audit\n - outputs/location-audit-report.json for audit\n - classified rows at --out for apply\n - outputs/classification-apply-evidence.jsonl\n - outputs/classification-apply-report.json\n`.trim();\n}\n\nfunction renderDatasetCurationQueueHelp(): string {\n return `Usage:\n tiangong-lca dataset curation-queue build --processes <file> --out-dir <dir> [options]\n tiangong-lca dataset curation-queue next --queue-dir <dir> [--type <type>|--task-id <id>]\n tiangong-lca dataset curation-queue verify --queue-dir <dir> [--type <type>|--task-id <id>]\n\nOptions for build:\n --processes <file> Process rows JSON/JSONL\n --flows <file> Local flow rows JSON/JSONL used by process references\n --support <file> Repeatable support rows JSON/JSONL, for source/contact/unitgroup/flowproperty rows\n --external-flow-ref <file> Repeatable external flow ref rows JSON/JSONL treated as already resolvable\n --exclude-process-id <id> Repeatable process id to skip\n --process-limit <n> Limit process tasks for focused validation or retries\n --out-dir <dir> Queue artifact directory\n --json Print compact JSON\n -h, --help\n\nOptions for next/verify:\n --queue-dir <dir> Queue artifact directory produced by build\n --type <type> support | flow | process\n --task-id <id> Exact task id such as process:<uuid>@00.00.001\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/curation-queue-manifest.json\n - outputs/curation-queue-tasks.jsonl\n - outputs/curation-queue-locks.json\n - outputs/curation-queue-blockers.jsonl\n - entities/<supports|flows|processes>/<id>__<version>/input.jsonl\n - entities/<supports|flows|processes>/<id>__<version>/closure.json\n - entities/<supports|flows|processes>/<id>__<version>/entity-run-plan.json\n\nContract:\n build creates queue artifacts. next/verify consume those artifacts and entity checkpoint.json files.\n They do not run AI or write the database. AI authoring must write structured patches or build plans,\n and remote writes remain blocked until deterministic apply, schema/QA, prewrite verify, and readback gates pass.\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 --process-bundles Write per-process dependency bundles (default: enabled by tidas-tools)\n --process-bundles-dir <dir>\n Custom per-process bundle directory (default: <output-dir>/process-bundles)\n --no-process-bundles Disable per-process dependency bundle generation\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 - process-bundles/ when not detect-only and process bundles are enabled\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 renderDatasetPatchHelp(): string {\n return `Usage:\n tiangong-lca dataset patch apply --input <file> --patch <file> --out <file> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL\n --patch <file> AI-authored JSON patch set with row_index or dataset_id selectors\n --out <file> Output JSONL path for patched rows\n --out-dir <dir> Artifact directory; defaults to the output file directory\n --authoring-package-dir <dir> Resolve relative authoring_package paths from this directory\n --require-authoring-package Require each patch set to point at a matching authoring package\n --require-action-item-closure Require patch operations to close package action_items\n --json Print compact JSON\n -h, --help\n\nPatch contract:\n Patch payloads must declare patch_status=completed before deterministic apply.\n Patch sets must target a row by row_index or dataset_id and use operations[].\n Supported operations are test, add, replace, and remove. Non-test operations require basis or evidence.\n Foundry AI patches should include resolution.mode and resolution.used_context_kinds; these are copied to patch evidence.\n Strict Foundry mode also requires authoring package lineage and explicit action item closure.\n If any operation is invalid, the command reports blocked and writes the original rows unchanged.\n\nOutputs:\n - patched rows at --out\n - outputs/patch-evidence.jsonl\n - outputs/dataset-patch-apply-report.json\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 --compare-root-payload Compare each root row payload hash against the remote row\n --target-user-id <id> Require root readback rows to belong to this user\n --state-code <code> Require root readback rows to have this state_code\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 renderDatasetSaveDraftHelp(): string {\n return `Usage:\n tiangong-lca dataset save-draft --input <file> --type <type> [options]\n\nOptions:\n --input <file> Canonical TIDAS rows JSON/JSONL\n --type <type> auto, contact, source, flow, process\n --out-dir <dir> Artifact directory\n --commit Execute remote save-draft writes\n --dry-run Validate and plan without remote writes (default)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - outputs/dataset-save-draft/selected-rows.jsonl\n - outputs/dataset-save-draft/progress.jsonl\n - outputs/dataset-save-draft/failures.jsonl\n - outputs/dataset-save-draft/summary.json\n\nContract:\n This generic dataset path writes only mutable rows such as contact/source/flow/process. Unit group and flow property rows are reference-only; select existing database rows and rewrite references instead of creating My Data support rows.\n Process and lifecyclemodel imports may still use their dedicated save-draft commands when the workflow needs their specialized reports.\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 | contact | source | unitgroup | flowproperty | 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 QA 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 - qa/process/... and/or qa/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 qa-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 --remote-data-source <tg|co|my|te>\n Search TianGong public, community, my data, or team data (default: tg)\n --timeout-ms <n> Remote search/auth timeout in milliseconds\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 - qa-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 renderQaHelp(): string {\n return `Usage:\n tiangong-lca qa <subcommand> [options]\n\nImplemented Subcommands:\n process Run deterministic process QA for build runs or rows-file snapshots\n flow Run deterministic flow QA for local governance snapshots\n lifecyclemodel Run deterministic lifecyclemodel QA for build runs or rows-file snapshots\n\nExamples:\n tiangong-lca qa process --help\n tiangong-lca qa flow --help\n tiangong-lca qa lifecyclemodel --help\n`.trim();\n}\n\nfunction renderQaProcessHelp(): string {\n return `Usage:\n tiangong-lca qa 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 QA run identifier; defaults to the rows-file name or run-root basename\n --out-dir <dir> QA artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> QA logic version label (default: v2.1)\n --enable-llm Deprecated no-op; process semantic authoring now belongs in Foundry curation\n --llm-model <name> Deprecated no-op kept for older scripts\n --llm-max-processes <n> Deprecated no-op kept for older scripts\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderQaFlowHelp(): string {\n return `Usage:\n tiangong-lca qa 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 qa-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> QA artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> QA logic version label (default: flow-v1.0-cli)\n --enable-llm Enable optional QA-only semantic checks via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this QA 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 renderQaLifecyclemodelHelp(): string {\n return `Usage:\n tiangong-lca qa lifecyclemodel (--rows-file <file> | --run-dir <dir>) --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Lifecyclemodel rows JSON/JSONL file; payload-level QA for import snapshots\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --out-dir <dir> QA artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> QA logic version label (default: lifecyclemodel-qa-v1.0)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - reads one lifecyclemodel rows snapshot or existing 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 QA 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 --remote-data-source <tg|co|my|te>\n Search TianGong public, community, my data, or team data (default: tg)\n --timeout-ms <n> Remote search/auth timeout in milliseconds\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 --target-user-id <id>\n Require --commit to run as this user and update an owned draft\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 write \"9999 missing-data-sentinel/year\", an intentionally non-physical searchable sentinel for later database-side curation.\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 parseDatasetSaveDraftFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n type: string | undefined;\n outDir: string | null;\n commit: boolean;\n allowReferenceOnlySupport: 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 type: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'allow-account-local-support': { 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_DATASET_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 type: typeof values.type === 'string' ? values.type : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commit: Boolean(values.commit),\n allowReferenceOnlySupport: Boolean(values['allow-account-local-support']),\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 parseDatasetClassificationChildrenFlags(args: string[]): {\n help: boolean;\n json: boolean;\n type: string;\n parent: string | null;\n query: string | null;\n limit: number | 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 type: { type: 'string' },\n parent: { type: 'string' },\n query: { type: 'string' },\n 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 limit = typeof values.limit === 'string' ? Number.parseInt(values.limit, 10) : null;\n if (limit !== null && (!Number.isInteger(limit) || limit <= 0)) {\n throw new CliError('--limit must be a positive integer.', {\n code: 'DATASET_CLASSIFICATION_LIMIT_INVALID',\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 : '',\n parent: typeof values.parent === 'string' ? values.parent : null,\n query: typeof values.query === 'string' ? values.query : null,\n limit,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetClassificationPathFlags(args: string[]): {\n help: boolean;\n json: boolean;\n type: string;\n code: 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 type: { type: 'string' },\n code: { 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 : '',\n code: typeof values.code === 'string' ? values.code : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetClassificationAuditFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n type: 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 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 : 'location',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetClassificationApplyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n decisionsPath: string;\n outPath: string;\n type: 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 decisions: { type: 'string' },\n out: { 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 decisionsPath: typeof values.decisions === 'string' ? values.decisions : '',\n outPath: typeof values.out === 'string' ? values.out : '',\n type: typeof values.type === 'string' ? values.type : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseDatasetCurationQueueBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesPath: string;\n flowsPath: string | undefined;\n supportPaths: string[];\n externalFlowRefPaths: string[];\n outDir: string;\n excludeProcessIds: string[];\n processLimit: 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 processes: { type: 'string' },\n flows: { type: 'string' },\n support: { type: 'string', multiple: true },\n 'external-flow-ref': { type: 'string', multiple: true },\n 'exclude-process-id': { type: 'string', multiple: true },\n 'process-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 processLimit =\n typeof values['process-limit'] === 'string'\n ? Number.parseInt(values['process-limit'], 10)\n : undefined;\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesPath: typeof values.processes === 'string' ? values.processes : '',\n flowsPath: typeof values.flows === 'string' ? values.flows : undefined,\n supportPaths: Array.isArray(values.support)\n ? values.support.filter((value): value is string => typeof value === 'string')\n : [],\n externalFlowRefPaths: Array.isArray(values['external-flow-ref'])\n ? values['external-flow-ref'].filter((value): value is string => typeof value === 'string')\n : [],\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n excludeProcessIds: Array.isArray(values['exclude-process-id'])\n ? values['exclude-process-id'].filter((value): value is string => typeof value === 'string')\n : [],\n processLimit,\n };\n}\n\nfunction parseDatasetCurationQueueRuntimeFlags(args: string[]): {\n help: boolean;\n json: boolean;\n queueDir: string;\n entityType: 'support' | 'flow' | 'process' | undefined;\n taskId: 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 'queue-dir': { type: 'string' },\n type: { type: 'string' },\n 'task-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 entityType = typeof values.type === 'string' ? values.type : undefined;\n if (\n entityType !== undefined &&\n entityType !== 'support' &&\n entityType !== 'flow' &&\n entityType !== 'process'\n ) {\n throw new CliError('--type must be support, flow, or process.', {\n code: 'DATASET_CURATION_QUEUE_TYPE_INVALID',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n queueDir: typeof values['queue-dir'] === 'string' ? values['queue-dir'] : '',\n entityType,\n taskId: typeof values['task-id'] === 'string' ? values['task-id'] : undefined,\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 processBundles: boolean | undefined;\n processBundlesDir: string | 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 'process-bundles': { type: 'boolean' },\n 'process-bundles-dir': { type: 'string' },\n 'no-process-bundles': { type: 'boolean' },\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 if (values['process-bundles'] && values['no-process-bundles']) {\n throw new CliError('--process-bundles and --no-process-bundles cannot both be set.', {\n code: 'DATASET_IMPORT_LCA_PROCESS_BUNDLES_INVALID',\n exitCode: 2,\n });\n }\n if (values['no-process-bundles'] && typeof values['process-bundles-dir'] === 'string') {\n throw new CliError('--process-bundles-dir cannot be used with --no-process-bundles.', {\n code: 'DATASET_IMPORT_LCA_PROCESS_BUNDLES_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 processBundles: values['no-process-bundles']\n ? false\n : values['process-bundles']\n ? true\n : undefined,\n processBundlesDir:\n typeof values['process-bundles-dir'] === 'string' ? values['process-bundles-dir'] : undefined,\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 parseDatasetPatchApplyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n patchPath: string;\n outPath: string;\n outDir: string | null;\n authoringPackageDir: string | null;\n requireAuthoringPackage: boolean;\n requireActionItemClosure: 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 patch: { type: 'string' },\n out: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'authoring-package-dir': { type: 'string' },\n 'require-authoring-package': { type: 'boolean' },\n 'require-action-item-closure': { 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 patchPath: typeof values.patch === 'string' ? values.patch : '',\n outPath: typeof values.out === 'string' ? values.out : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n authoringPackageDir:\n typeof values['authoring-package-dir'] === 'string' ? values['authoring-package-dir'] : null,\n requireAuthoringPackage: Boolean(values['require-authoring-package']),\n requireActionItemClosure: Boolean(values['require-action-item-closure']),\n };\n}\n\nfunction parseDatasetRemoteVerifyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string;\n rootPolicy: 'existing' | 'candidate';\n compareRootPayload: boolean;\n targetUserId: 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 input: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'root-policy': { type: 'string' },\n 'compare-root-payload': { type: 'boolean' },\n 'target-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 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 let stateCode: number | null = null;\n if (typeof values['state-code'] === 'string') {\n stateCode = Number.parseInt(values['state-code'], 10);\n if (!Number.isInteger(stateCode) || stateCode < 0) {\n throw new CliError('--state-code must be a non-negative integer.', {\n code: 'DATASET_REMOTE_VERIFY_STATE_CODE_INVALID',\n exitCode: 2,\n });\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 rootPolicy,\n compareRootPayload: Boolean(values['compare-root-payload']),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n stateCode,\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 parseDatasetMaintenanceClearAccountFlags(args: string[]): {\n help: boolean;\n json: boolean;\n outDir: string | null;\n stateCodes: number[] | null;\n pageSize: number | undefined;\n timeoutMs: number | undefined;\n commit: boolean;\n confirm: 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 'out-dir': { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n 'page-size': { type: 'string' },\n 'timeout-ms': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n confirm: { 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: 'DATASET_MAINTENANCE_CLEAR_ACCOUNT_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const rawStateCodes = Array.isArray(values['state-code'])\n ? values['state-code'].filter((value): value is string => typeof value === 'string')\n : [];\n const stateCodes = rawStateCodes.map((value) => {\n if (!/^-?\\d+$/u.test(value.trim())) {\n throw new CliError('--state-code must be an integer.', {\n code: 'DATASET_MAINTENANCE_STATE_CODE_INVALID',\n exitCode: 2,\n details: value,\n });\n }\n return Number.parseInt(value.trim(), 10);\n });\n\n const parseOptionalInteger = (value: unknown, flagName: string): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n if (!/^\\d+$/u.test(value.trim())) {\n throw new CliError(`${flagName} must be a positive integer.`, {\n code: 'DATASET_MAINTENANCE_INTEGER_INVALID',\n exitCode: 2,\n details: {\n flag: flagName,\n value,\n },\n });\n }\n return Number.parseInt(value.trim(), 10);\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n stateCodes: stateCodes.length > 0 ? stateCodes : null,\n pageSize: parseOptionalInteger(values['page-size'], '--page-size'),\n timeoutMs: parseOptionalInteger(values['timeout-ms'], '--timeout-ms'),\n commit: Boolean(values.commit),\n confirm: typeof values.confirm === 'string' ? values.confirm : null,\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 | undefined;\n remoteQuery: string | null;\n remoteLimit: number | null;\n remoteDataSource: string | null;\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 'candidate-input': { type: 'string', multiple: true },\n 'remote-candidates': { type: 'boolean' },\n 'remote-query': { type: 'string' },\n 'remote-limit': { type: 'string' },\n 'remote-data-source': { type: 'string' },\n 'timeout-ms': { 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 const parseTimeoutMs = (value: unknown): 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 --timeout-ms to be a positive integer.', {\n code: 'INVALID_IDENTITY_PREFLIGHT_TIMEOUT',\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: values['remote-candidates'] === true ? true : undefined,\n remoteQuery: typeof values['remote-query'] === 'string' ? values['remote-query'] : null,\n remoteLimit: parseRemoteLimit(values['remote-limit']),\n remoteDataSource:\n typeof values['remote-data-source'] === 'string' ? values['remote-data-source'] : null,\n timeoutMs: parseTimeoutMs(values['timeout-ms']),\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 parseQaProcessFlags(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 parseQaFlowFlags(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 parseQaLifecyclemodelFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string | undefined;\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 'rows-file': { type: 'string' },\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 rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : undefined,\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 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 input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\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: '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 targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\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 removedReviewCommand(subcommand?: string): CliResult {\n const suffix = subcommand ? ` ${subcommand}` : '';\n const replacement = subcommand ? `qa ${subcommand}` : 'qa';\n return {\n exitCode: 2,\n stdout: '',\n stderr: `Command 'review${suffix}' was removed. Use 'tiangong-lca ${replacement}' instead.\\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 processQaImpl = deps.runProcessQaImpl ?? runProcessQa;\n const flowQaImpl = deps.runFlowQaImpl ?? runFlowQa;\n const lifecyclemodelQaImpl = deps.runLifecyclemodelQaImpl ?? runLifecyclemodelQa;\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 datasetCurationQueueBuildImpl =\n deps.runDatasetCurationQueueBuildImpl ?? runDatasetCurationQueueBuild;\n const datasetCurationQueueNextImpl =\n deps.runDatasetCurationQueueNextImpl ?? runDatasetCurationQueueNext;\n const datasetCurationQueueVerifyImpl =\n deps.runDatasetCurationQueueVerifyImpl ?? runDatasetCurationQueueVerify;\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 const datasetPatchApplyImpl = deps.runDatasetPatchApplyImpl ?? runDatasetPatchApply;\n const datasetSaveDraftImpl = deps.runDatasetSaveDraftImpl ?? runDatasetSaveDraft;\n const datasetClassificationChildrenImpl =\n deps.runDatasetClassificationChildrenImpl ?? runDatasetClassificationChildren;\n const datasetClassificationPathImpl =\n deps.runDatasetClassificationPathImpl ?? runDatasetClassificationPath;\n const datasetClassificationAuditImpl =\n deps.runDatasetClassificationAuditImpl ?? runDatasetClassificationAudit;\n const datasetClassificationApplyImpl =\n deps.runDatasetClassificationApplyImpl ?? runDatasetClassificationApply;\n const datasetMaintenanceClearAccountImpl =\n deps.runDatasetMaintenanceClearAccountImpl ?? runDatasetMaintenanceClearAccount;\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 === 'classification') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n\n if (action === 'children') {\n const datasetFlags = parseDatasetClassificationChildrenFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n const report = await datasetClassificationChildrenImpl({\n type: datasetFlags.type,\n parent: datasetFlags.parent,\n query: datasetFlags.query,\n limit: datasetFlags.limit,\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 === 'path') {\n const datasetFlags = parseDatasetClassificationPathFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n const report = await datasetClassificationPathImpl({\n type: datasetFlags.type,\n code: datasetFlags.code,\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 === 'audit') {\n const datasetFlags = parseDatasetClassificationAuditFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n const report = await datasetClassificationAuditImpl({\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 if (action === 'apply') {\n const datasetFlags = parseDatasetClassificationApplyFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetClassificationHelp()}\\n`, stderr: '' };\n }\n const report = await datasetClassificationApplyImpl({\n inputPath: datasetFlags.inputPath,\n decisionsPath: datasetFlags.decisionsPath,\n outPath: datasetFlags.outPath,\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(\n \"dataset classification action must be 'children', 'path', 'audit', or 'apply'.\",\n {\n code: 'DATASET_CLASSIFICATION_ACTION_INVALID',\n exitCode: 2,\n },\n );\n }\n\n if (command === 'dataset' && subcommand === 'curation-queue') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetCurationQueueHelp()}\\n`, stderr: '' };\n }\n if (action !== 'build' && action !== 'next' && action !== 'verify') {\n throw new CliError(\"dataset curation-queue action must be 'build', 'next', or 'verify'.\", {\n code: 'DATASET_CURATION_QUEUE_ACTION_INVALID',\n exitCode: 2,\n });\n }\n if (action === 'next') {\n const datasetFlags = parseDatasetCurationQueueRuntimeFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetCurationQueueHelp()}\\n`, stderr: '' };\n }\n const report = await datasetCurationQueueNextImpl({\n queueDir: datasetFlags.queueDir,\n entityType: datasetFlags.entityType,\n taskId: datasetFlags.taskId,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n if (action === 'verify') {\n const datasetFlags = parseDatasetCurationQueueRuntimeFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetCurationQueueHelp()}\\n`, stderr: '' };\n }\n const report = await datasetCurationQueueVerifyImpl({\n queueDir: datasetFlags.queueDir,\n entityType: datasetFlags.entityType,\n taskId: datasetFlags.taskId,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n const datasetFlags = parseDatasetCurationQueueBuildFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetCurationQueueHelp()}\\n`, stderr: '' };\n }\n const report = await datasetCurationQueueBuildImpl({\n processesPath: datasetFlags.processesPath,\n flowsPath: datasetFlags.flowsPath,\n supportPaths: datasetFlags.supportPaths,\n externalFlowRefPaths: datasetFlags.externalFlowRefPaths,\n outDir: datasetFlags.outDir,\n excludeProcessIds: datasetFlags.excludeProcessIds,\n processLimit: datasetFlags.processLimit,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 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 processBundles: datasetFlags.processBundles,\n processBundlesDir: datasetFlags.processBundlesDir,\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 === 'patch') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetPatchHelp()}\\n`, stderr: '' };\n }\n if (action !== 'apply') {\n throw new CliError(\"dataset patch action must be 'apply'.\", {\n code: 'DATASET_PATCH_ACTION_INVALID',\n exitCode: 2,\n });\n }\n const datasetFlags = parseDatasetPatchApplyFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetPatchHelp()}\\n`, stderr: '' };\n }\n const report = await datasetPatchApplyImpl({\n inputPath: datasetFlags.inputPath,\n patchPath: datasetFlags.patchPath,\n outPath: datasetFlags.outPath,\n outDir: datasetFlags.outDir,\n authoringPackageDir: datasetFlags.authoringPackageDir,\n requireAuthoringPackage: datasetFlags.requireAuthoringPackage,\n requireActionItemClosure: datasetFlags.requireActionItemClosure,\n });\n return {\n exitCode: report.status === 'blocked' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'dataset' && subcommand === 'save-draft') {\n const datasetFlags = parseDatasetSaveDraftFlags(commandArgs);\n if (datasetFlags.help) {\n return { exitCode: 0, stdout: `${renderDatasetSaveDraftHelp()}\\n`, stderr: '' };\n }\n\n const report = await datasetSaveDraftImpl({\n inputPath: datasetFlags.inputPath,\n type: datasetFlags.type,\n outDir: datasetFlags.outDir,\n commit: datasetFlags.commit,\n allowReferenceOnlySupport: datasetFlags.allowReferenceOnlySupport,\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 === '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 compareRootPayload: datasetFlags.compareRootPayload,\n targetUserId: datasetFlags.targetUserId,\n stateCode: datasetFlags.stateCode,\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 === 'dataset' && subcommand === 'maintenance') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return { exitCode: 0, stdout: `${renderDatasetMaintenanceHelp()}\\n`, stderr: '' };\n }\n if (action === 'clear-account') {\n const datasetFlags = parseDatasetMaintenanceClearAccountFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceClearAccountHelp()}\\n`,\n stderr: '',\n };\n }\n const report = await datasetMaintenanceClearAccountImpl({\n outDir: datasetFlags.outDir,\n stateCodes: datasetFlags.stateCodes,\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n commit: datasetFlags.commit,\n confirm: datasetFlags.confirm,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n if (!['plan', 'apply', 'verify'].includes(action)) {\n throw new CliError(\n \"dataset maintenance action must be 'clear-account', 'plan', 'apply', or 'verify'.\",\n {\n code: 'DATASET_MAINTENANCE_ACTION_INVALID',\n exitCode: 2,\n },\n );\n }\n return plannedCommand('dataset', `maintenance ${action}`);\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 remoteDataSource: processFlags.remoteDataSource,\n timeoutMs: processFlags.timeoutMs,\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 targetUserId: processFlags.targetUserId,\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 remoteDataSource: flowFlags.remoteDataSource,\n timeoutMs: flowFlags.timeoutMs,\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 === 'qa' && !subcommand) {\n return { exitCode: 0, stdout: `${renderQaHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'qa' && subcommand === 'process') {\n const qaFlags = parseQaProcessFlags(commandArgs);\n if (qaFlags.help) {\n return { exitCode: 0, stdout: `${renderQaProcessHelp()}\\n`, stderr: '' };\n }\n\n const report = await processQaImpl({\n rowsFile: qaFlags.rowsFile,\n runRoot: qaFlags.runRoot,\n runId: qaFlags.runId,\n outDir: qaFlags.outDir,\n startTs: qaFlags.startTs,\n endTs: qaFlags.endTs,\n logicVersion: qaFlags.logicVersion,\n enableLlm: qaFlags.enableLlm,\n llmModel: qaFlags.llmModel,\n llmMaxProcesses: qaFlags.llmMaxProcesses,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, qaFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'qa' && subcommand === 'flow') {\n const qaFlags = parseQaFlowFlags(commandArgs);\n if (qaFlags.help) {\n return { exitCode: 0, stdout: `${renderQaFlowHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowQaImpl({\n rowsFile: qaFlags.rowsFile,\n flowsDir: qaFlags.flowsDir,\n runRoot: qaFlags.runRoot,\n runId: qaFlags.runId,\n outDir: qaFlags.outDir,\n startTs: qaFlags.startTs,\n endTs: qaFlags.endTs,\n logicVersion: qaFlags.logicVersion,\n enableLlm: qaFlags.enableLlm,\n llmModel: qaFlags.llmModel,\n llmMaxFlows: qaFlags.llmMaxFlows,\n llmBatchSize: qaFlags.llmBatchSize,\n similarityThreshold: qaFlags.similarityThreshold,\n methodologyId: qaFlags.methodologyId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, qaFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'qa' && subcommand === 'lifecyclemodel') {\n const qaFlags = parseQaLifecyclemodelFlags(commandArgs);\n if (qaFlags.help) {\n return { exitCode: 0, stdout: `${renderQaLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n const report = await lifecyclemodelQaImpl({\n ...(qaFlags.rowsFile ? { rowsFile: qaFlags.rowsFile } : {}),\n runDir: qaFlags.runDir,\n outDir: qaFlags.outDir,\n startTs: qaFlags.startTs,\n endTs: qaFlags.endTs,\n logicVersion: qaFlags.logicVersion,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, qaFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review') {\n return removedReviewCommand(subcommand ?? undefined);\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"]}
|