@tiangong-lca/cli 0.1.0 → 0.1.1

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.
@@ -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 LCA_RELEASE_ACTIONS,\n renderLcaReleaseReport,\n runLcaRelease,\n type LcaReleaseAction,\n type LcaReleaseReport,\n type RunLcaReleaseOptions,\n} from './lib/lca-release.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';\nimport { runDatasetMaintenancePlan } from './lib/dataset-maintenance-plan.js';\nimport { runDatasetMaintenanceApply } from './lib/dataset-maintenance-apply.js';\nimport { freezeDatasetMaintenanceProtected } from './lib/dataset-maintenance-protected-freeze.js';\nimport { runDatasetMaintenanceProtected } from './lib/dataset-maintenance-protected-run.js';\nimport { sealDatasetMaintenanceProtectedApproval } from './lib/dataset-maintenance-protected-seal.js';\nimport { runDatasetMaintenanceVerify } from './lib/dataset-maintenance-verify.js';\nimport { runFlowIdentityPlanFromFiles } from './lib/dataset-maintenance-flow-identity-command.js';\nimport { captureFlowIdentity } from './lib/dataset-maintenance-flow-identity-capture.js';\nimport { freezeFlowIdentity } from './lib/dataset-maintenance-flow-identity-freeze.js';\nimport { sealFlowIdentityApproval } from './lib/dataset-maintenance-flow-identity-seal.js';\nimport {\n freezeFlowIdentityRecovery,\n sealFlowIdentityRecoveryApproval,\n} from './lib/dataset-maintenance-flow-identity-recovery.js';\nimport { runFlowIdentity } from './lib/dataset-maintenance-flow-identity-run.js';\nimport { verifyFlowIdentity } from './lib/dataset-maintenance-flow-identity-verify.js';\nimport type { DatasetMaintenanceOperation } from './lib/dataset-maintenance-contract.js';\nimport {\n runDatasetSourceUploadAttachments,\n type DatasetSourceUploadAttachmentsReport,\n type RunDatasetSourceUploadAttachmentsOptions,\n} from './lib/dataset-source-upload-attachments.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 runLcaReleaseImpl?: (options: RunLcaReleaseOptions) => Promise<LcaReleaseReport>;\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 runDatasetMaintenancePlanImpl?: typeof runDatasetMaintenancePlan;\n runDatasetMaintenanceApplyImpl?: typeof runDatasetMaintenanceApply;\n freezeDatasetMaintenanceProtectedImpl?: typeof freezeDatasetMaintenanceProtected;\n runDatasetMaintenanceProtectedImpl?: typeof runDatasetMaintenanceProtected;\n sealDatasetMaintenanceProtectedApprovalImpl?: typeof sealDatasetMaintenanceProtectedApproval;\n runDatasetMaintenanceVerifyImpl?: typeof runDatasetMaintenanceVerify;\n runFlowIdentityPlanFromFilesImpl?: typeof runFlowIdentityPlanFromFiles;\n captureFlowIdentityImpl?: typeof captureFlowIdentity;\n freezeFlowIdentityImpl?: typeof freezeFlowIdentity;\n sealFlowIdentityApprovalImpl?: typeof sealFlowIdentityApproval;\n freezeFlowIdentityRecoveryImpl?: typeof freezeFlowIdentityRecovery;\n sealFlowIdentityRecoveryApprovalImpl?: typeof sealFlowIdentityRecoveryApproval;\n runFlowIdentityImpl?: typeof runFlowIdentity;\n verifyFlowIdentityImpl?: typeof verifyFlowIdentity;\n runDatasetSourceUploadAttachmentsImpl?: (\n options: RunDatasetSourceUploadAttachmentsOptions,\n ) => Promise<DatasetSourceUploadAttachmentsReport>;\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 | source upload-attachments | validate | verify-remote | bilingual extract/apply/validate | evidence-search plan/run | references rewrite/refresh-remote | maintenance clear-account/plan/apply/verify/flow-identity\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 release prepare | upload | finalize | approve | publish | readback-verify | unpublish | status | current | calculation-bundle | calculation-artifact | artifact-download\n admin embedding-run\n\nPlanned Surface (not implemented yet):\n auth whoami | doctor-auth\n job get | wait | logs\n\nPlanned commands currently print an explicit \"not implemented yet\" message and exit with code 2.\n\nExamples:\n tiangong-lca doctor\n tiangong-lca search flow --input ./request.json\n tiangong-lca search process --input ./request.json --dry-run\n tiangong-lca process get --id <process-id>\n tiangong-lca process list --state-code 100 --limit 20\n tiangong-lca process identity-preflight --input ./process-preflight.json --out-dir ./process-preflight\n tiangong-lca process build-plan validate --input ./process-build-plan.json --out-dir ./process-build-plan\n tiangong-lca process scope-statistics --out-dir /abs/path/to/process-scope --state-code 0 --state-code 100\n tiangong-lca process dedup-review --input ./duplicate-groups.json --out-dir /abs/path/to/process-dedup\n tiangong-lca process auto-build --input ./pff-request.json --out-dir /abs/path/to/process-run\n tiangong-lca process resume-build --run-dir /abs/path/to/process-run\n tiangong-lca process publish-build --run-dir /abs/path/to/process-run\n tiangong-lca process complete-required-fields --input ./processes.jsonl --out ./processes.completed.jsonl --default-unit MJ\n tiangong-lca process save-draft --input ./patched-processes.jsonl --out-dir /abs/path/to/process-save-draft --dry-run\n tiangong-lca process batch-build --input ./batch-request.json --out-dir /abs/path/to/process-batch\n tiangong-lca process refresh-references --out-dir /abs/path/to/process-refresh --dry-run\n tiangong-lca process verify-rows --rows-file ./process-list-report.json --out-dir /abs/path/to/process-verify\n tiangong-lca dataset validate --input ./rows.jsonl --type auto --out-dir /abs/path/to/dataset-validate\n tiangong-lca dataset contract get --type process --include schema,methodology,ruleset --out-dir ./contract\n tiangong-lca dataset context-pack --type process --profile ai-import --out-dir ./context-pack\n tiangong-lca dataset 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 merge-support-aliases --out-dir /abs/path/to/dataset-maintenance\n tiangong-lca dataset maintenance freeze-protected --plan ./maintenance-plan.json --toolchain-evidence ./toolchain.json --expected-project-ref <production-ref> --confirm bafudata@126.com --out-dir /abs/path/to/protected-freeze\n tiangong-lca dataset maintenance run-protected --plan ./maintenance-plan.json --freeze ./protected-execution-seal.json --approval ./protected-approval.json --out-dir /abs/path/to/protected-run --status-only\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 release status --release-run-id <run-id> --json\n tiangong-lca release calculation-bundle --package-id <package-id> --output ./calculation-bundle.json\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 renderLcaReleaseHelp(): string {\n return `Usage:\n tiangong-lca release <action> [options]\n\nWorkflow actions:\n prepare register an immutable publish plan from --input\n upload verify four local ZIPs, upload them, and write --output receipt\n finalize bind a Release Manifest and uploaded artifact refs from --input\n approve create a durable manager approval from --input\n publish publish an approved release from --input; credential fingerprint is derived locally\n readback-verify record independent artifact readback hashes from --input\n unpublish unpublish the current release from --input\n\nRead and download actions:\n status read --release-run-id\n current read the current public release\n calculation-bundle verify/sign bundle manifest and chunks for --package-id; requires --output\n calculation-artifact download one exact --artifact-path from --package-id; requires --output\n artifact-download download one release ZIP by --artifact-id; requires --output\n\nOptions:\n --input <file> JSON command or upload request\n --output <path> Durable JSON receipt/projection or downloaded bytes\n --release-run-id <uuid> Release run for status\n --package-id <uuid> LCIA result package for Calculation Bundle reads\n --artifact-id <uuid> Published release artifact to download\n --artifact-path <path> Exact path from a Calculation Bundle manifest\n --force Replace an existing output file\n --dry-run Validate and print the masked planned request without network writes\n --json Print the stable compact JSON report; otherwise print Summary and Next\n --api-key <key> Override TIANGONG_LCA_API_KEY; environment use is preferred\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --timeout-ms <n> Request timeout in milliseconds (default 60000)\n -h, --help\n\nRequired environment:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nAuthorization and safety:\n The User API key is exchanged for a user session. Database RPCs then check that the live account\n has data_product_manager. The service-role key never enters this CLI. Large bundle projections,\n ZIPs, and chunks are written to files and verified against exact byte size and SHA-256.\n\nExamples:\n tiangong-lca release prepare --input ./release-prepare.json --json\n tiangong-lca release upload --input ./release-upload.json --output ./upload-receipt.json\n tiangong-lca release calculation-bundle --package-id 11111111-1111-4111-8111-111111111111 --output ./calculation-bundle.json\n tiangong-lca release calculation-artifact --package-id 11111111-1111-4111-8111-111111111111 --artifact-path chunks/lci-00000.jsonl.gz --output ./lci-00000.jsonl.gz\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 Import supported external LCA packages through the unified Rust tidas binary\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 source upload-attachments Upload source referenceToDigitalFile binaries to storage and rewrite their @uri\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 maintenance plan Build an immutable, RLS-visible row-level maintenance plan\n maintenance apply Execute an explicitly approved maintenance plan through current-user RLS\n maintenance freeze-protected Read and freeze one exact production owner-draft plan without admitting or mutating it\n maintenance seal-protected-approval Record byte-exact human approval entirely offline\n maintenance run-protected Run or inspect one sealed, one-shot production maintenance execution\n maintenance verify Read back affected rows and references against the immutable plan\n maintenance flow-identity Dedicated Step 3 capture/plan/freeze/approval/serial-run/verify workflow\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 merge-support-aliases --out-dir ./dataset-maintenance --help\n tiangong-lca dataset maintenance freeze-protected --help\n tiangong-lca dataset maintenance seal-protected-approval --help\n tiangong-lca dataset maintenance run-protected --help\n tiangong-lca dataset maintenance flow-identity --help\n`.trim();\n}\n\nfunction renderDatasetMaintenanceHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance <clear-account|plan|apply|freeze-protected|seal-protected-approval|run-protected|verify|flow-identity> [options]\n\nActions:\n clear-account Dry-run or delete current authenticated account-owned lifecyclemodels, processes, flows, sources, and contacts.\n plan Build an immutable maintenance plan from a scope manifest, visible remote snapshot, dependency impact report, and intended operation.\n apply Execute or durably admit an ordinary approved plan through current-user RLS and platform dataset command paths.\n freeze-protected Re-read the exact production owner-draft census/support/50 derivatives and generate an unapproved freeze request.\n seal-protected-approval Record a byte-exact human response into an approval artifact with no authentication or network access.\n run-protected Run or inspect one sealed production execution with one-shot admission and terminal derivative proof.\n verify Re-fetch rows, references, or derivative request state and report passed, pending, or failed independently of apply.\n flow-identity Run the dedicated Step 3 capture/plan/freeze/seal-approval/serial-run/independent-verify workflow.\n\nSafety:\n plan, verify, and freeze-protected are read-only; seal-protected-approval is local-only.\n apply is commit-only and requires --commit, the exact plan SHA-256 via --approve-plan, and the current account email via --confirm.\n A sealed production merge-support-aliases execution must use run-protected; apply is not its fallback.\n freeze-protected is production-only and never calls preflight, gate, admission, execution, or mutation RPCs.\n seal-protected-approval only records the exact human-approved bytes; it never authenticates, connects, or submits execution.\n run-protected is production-only: authenticated owner context plus server-side actor/user_id/state_code=0 and exact-plan closure fences protect writes; RLS remains a defense on public and independent-read surfaces. It never falls back to dev, a legacy alias RPC, or a second admission POST.\n flow-identity never reuses the Step 2 runner. Process writes are strictly ordinal and ambiguous responses permit read-only recovery, never automatic process replay.\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 run-protected uses a separate immutable protected-execution seal, submission marker, append-only status ledger, and terminal report.\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 repair-references --out-dir ./dataset-maintenance\n tiangong-lca dataset maintenance plan --scope ./derivative-rebuild-scope.json --operation rebuild-derivatives --out-dir ./derivative-rebuild\n tiangong-lca dataset maintenance apply --plan ./dataset-maintenance/maintenance-plan.json --commit --approve-plan <sha256> --confirm user@example.com\n tiangong-lca dataset maintenance freeze-protected --plan ./maintenance-plan.json --toolchain-evidence ./toolchain.json --expected-project-ref <production-ref> --confirm bafudata@126.com --out-dir ./protected-freeze\n tiangong-lca dataset maintenance seal-protected-approval --freeze ./protected-freeze/protected-execution-freeze.json --approval-request ./protected-freeze/protected-approval-request.json --human-approval ./human-approval.txt --approve-freeze-file <sha256> --approve-request <sha256> --approve-text <sha256> --confirm bafudata@126.com --approved-at <iso> --out-dir ./protected-approval\n tiangong-lca dataset maintenance run-protected --plan ./maintenance-plan.json --freeze ./protected-execution-seal.json --approval ./protected-approval.json --out-dir ./protected-run --status-only\n tiangong-lca dataset maintenance verify --plan ./dataset-maintenance/maintenance-plan.json --out-dir ./dataset-maintenance/verify\n tiangong-lca dataset maintenance flow-identity --help\n`.trim();\n}\n\nfunction renderDatasetMaintenanceFlowIdentityHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance flow-identity <capture|plan|freeze|seal-approval|run|freeze-recovery|seal-recovery-approval|run-recovery|verify> [options]\n\nActions:\n capture Authenticated production census and one database attestation; performs zero scope/preflight/rewrite/finalize calls.\n plan Build immutable Step 3 reference-only process templates from an approved v3 review ledger and fresh post-Step2/post-#29 live capture.\n freeze Offline-bind one production plan/toolchain/receipt and generate this execution's byte-exact approval request.\n seal-approval Offline-record byte-exact human approval; performs zero authentication, network, or database calls.\n run Create/read one guarded scope, serially submit only its durable next ordinal, then wait read-only for derivative readiness before at most one finalize POST. Ambiguous responses are never retried in the same invocation.\n freeze-recovery Authenticated read-only scope snapshot that freezes a new exact continuation approval after the prior in-memory permit was lost.\n seal-recovery-approval Offline-record byte-exact human approval for only that frozen durable-scope baseline.\n run-recovery Consume that recovery approval once, obtain a fresh memory-only rotating permit, and continue the same durable scope.\n verify Independently re-read the terminal scope, all 305 source rows, public/support rows, exact affected processes, and the complete owner-draft process reference closure.\n\nPlan:\n --policy <file> --review-ledger <file> --live-capture <file> --out-dir <dir>\n\nCapture:\n --policy <file> --review-ledger <file> --prerequisites <file> --toolchain-evidence <file>\n --request-id <uuid> --operation-id <value> --expected-project-ref <ref> --confirm <email>\n --sdk-version <value> --out-dir <dir>\n [--page-size <n>] [--read-concurrency <n>] [--timeout-ms <n>]\n\nFreeze:\n --plan <file> --toolchain-evidence <file> --approved-at <iso> --expected-project-ref <ref> --confirm <email> --out-dir <dir>\n\nSeal approval:\n --plan <file> --freeze <file> --approval-request <file> --human-approval <file>\n --approve-freeze-file <sha256> --approve-request <sha256> --approve-text <sha256>\n --confirm <email> --approved-at <iso> --out-dir <dir>\n\nRun:\n --plan <file> --freeze <file> --approval <file> --out-dir <dir>\n (--commit --approve-execution <sha256> --confirm <email> | --status-only)\n [--wait-seconds <n>] [--poll-ms <n>] [--timeout-ms <n>]\n\nFreeze recovery:\n --plan <file> --freeze <original-file> --approval <original-file> --run-dir <prior-run-dir>\n --toolchain-evidence <file> --approved-at <iso> --recovery-reason <reason>\n --expected-project-ref <ref> --confirm <email> --out-dir <dir> [--timeout-ms <n>]\n\nSeal recovery approval:\n --recovery-freeze <file> --approval-request <file> --human-approval <file>\n --approve-freeze-file <sha256> --approve-request <sha256> --approve-text <sha256>\n --confirm <email> --approved-at <iso> --out-dir <dir>\n\nRun recovery:\n --plan <file> --freeze <original-file> --approval <original-file> --run-dir <prior-run-dir>\n --recovery-freeze <file> --recovery-approval <file> --out-dir <dir>\n --commit --approve-execution <recovery-identity-sha256> --confirm <email>\n [--wait-seconds <n>] [--poll-ms <n>] [--timeout-ms <n>]\n\nVerify:\n --plan <file> --freeze <file> --approval <file> --run-dir <dir> --out-dir <dir>\n [--page-size <n>] [--timeout-ms <n>]\n\nDerivative failure boundary:\n A failed/stale derivative will never retry a process. This command stops. Any derivative-only compensation requires a separate plan, new freeze, and new exact human approval.\n\nCommon:\n --json\n -h, --help\n`.trim();\n}\n\nfunction renderDatasetMaintenancePlanHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance plan --scope <file> --operation <operation> --out-dir <dir> [options]\n\nOperations:\n delete | retire | redo-import | repair-references | merge-support-aliases | rebuild-derivatives\n\nOptions:\n --scope <file> Maintenance scope manifest\n --operation <value> Intended row-level maintenance operation\n --out-dir <dir> Artifact directory\n --page-size <n> Requested snapshot page size, 1-5000 (default: 1000); server caps are followed using exact counts\n --timeout-ms <n> Request timeout in milliseconds\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir include the immutable maintenance-plan.json, visible snapshot,\nprotected-row ledger, reference-impact report, and dry-run report. rebuild-derivatives additionally\nfreezes one action-scoped database snapshot without expanding the account scan with vector data.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceApplyHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance apply --plan <file> --commit --approve-plan <sha256> --confirm <email> [options]\n\nBehavior:\n Commit-only. The command rejects dry-run mode, a missing --commit flag, a plan hash mismatch,\n or a confirmation email that does not match the current authenticated account.\n For rebuild-derivatives, success means guarded admission is queued; it never means derivatives completed.\n Sealed production merge-support-aliases executions must use run-protected; this command is not a fallback.\n\nOptions:\n --plan <file> Immutable maintenance-plan.json\n --commit Execute the approved plan\n --approve-plan <sha256> Exact SHA-256 recorded for the plan\n --confirm <email> Current authenticated account email\n --timeout-ms <n> Request timeout in milliseconds\n --max-parallel <1-8> Opt into bounded flow delete-only execution with durable dispatch ledger\n --global-inbound-proof <file> Absolute path to a fresh all-process SELECT-only zero-inbound proof\n --approve-global-inbound-proof <sha256> Exact SHA-256 of --global-inbound-proof; requires --max-parallel\n --json Print compact JSON\n -h, --help\n\nOutputs include approval-record.json and commit-report.json alongside an append-only action or admission ledger.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceFreezeProtectedHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance freeze-protected --plan <file> --toolchain-evidence <file> --expected-project-ref <ref> --confirm <email> --out-dir <dir> [options]\n\nBehavior:\n Authenticates directly to the explicitly confirmed production project and re-reads the complete\n owner-draft account census, six support snapshots, projected reference closure, and the stable\n 23-flow + 27-process derivative snapshot set. It writes a canonical protected freeze and an\n unapproved byte-exact human approval request. It never emits an approval artifact.\n\nRequired:\n --plan <file> Ready owner-draft merge-support-aliases maintenance plan\n --toolchain-evidence <file> Canonical released DB/CLI/root-integration evidence\n --expected-project-ref <ref> Explicit production Supabase project ref\n --confirm <email> Exact authenticated owner email\n --out-dir <dir> New private immutable artifact directory\n\nOptions:\n --page-size <n> Complete account scan page size, 1-5000\n --timeout-ms <n> Positive authentication/read timeout in milliseconds\n --json Print compact JSON\n -h, --help\n\nRemote safety:\n This command uses only authenticated table reads and cmd_dataset_derivative_rebuild_snapshot.\n Preflight, gate, admission, execution, save-draft, delete, state change, and all mutation calls are zero.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceSealProtectedApprovalHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance seal-protected-approval --freeze <file> --approval-request <file> --human-approval <file> --approve-freeze-file <sha256> --approve-request <sha256> --approve-text <sha256> --confirm <email> --approved-at <iso> --out-dir <dir> [options]\n\nBehavior:\n Records a human-provided approval text only when every UTF-8 byte, freeze-file hash, request hash,\n text hash, account, and canonical timestamp matches the unapproved request. It writes the approval\n artifact needed by a later, separate run-protected command; it does not submit that execution.\n\nRequired:\n --freeze <file> Canonical protected freeze generated by freeze-protected\n --approval-request <file> Canonical unapproved approval request JSON\n --human-approval <file> Human-returned text, read byte-for-byte without trimming\n --approve-freeze-file <sha256> Explicit SHA-256 of the exact freeze file bytes\n --approve-request <sha256> Explicit request identity SHA-256\n --approve-text <sha256> Explicit byte-exact approval text SHA-256\n --confirm <email> Exact frozen account email\n --approved-at <iso> Exact approval-authority timestamp already embedded in the request\n --out-dir <dir> New private immutable artifact directory\n\nOptions:\n --json Print compact JSON\n -h, --help\n\nOffline safety:\n This command receives no environment or HTTP client and performs zero authentication, network,\n database, preflight, gate, admission, execution, or mutation calls.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceRunProtectedHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance run-protected --plan <file> --freeze <file> --approval <file> --out-dir <dir> --commit --approve-execution <sha256> --confirm <email> [options]\n tiangong-lca dataset maintenance run-protected --plan <file> --freeze <file> --approval <file> --out-dir <dir> --status-only [options]\n\nBehavior:\n Runs one sealed, server-dispatched production maintenance execution fenced to the authenticated actor's\n exact owner-draft target set, or reads durable status through an auth.uid-, actor-, and plan-fenced RPC\n without admitting work; only the independent table readback uses RLS.\n Commit and status-only modes are mutually exclusive. The commit path validates the full private\n before-state, accepts only server-derived gates within the 180-second preflight window, writes an immutable\n local submission marker, and sends at most one admission POST. After a marker or ambiguous response,\n use --status-only; the command never retries admission or falls back to dev or the legacy alias RPC.\n\nRequired in both modes:\n --plan <file> Immutable maintenance-plan.json\n --freeze <file> Protected production execution seal/freeze artifact\n --approval <file> Exact human-approval binding artifact\n --out-dir <dir> Private protected-run artifact directory\n\nCommit-only guards:\n --commit Submit the sealed execution exactly once\n --approve-execution <sha256> Exact approved execution identity SHA-256\n --confirm <email> Current authenticated account email\n\nRecovery:\n --status-only Read/poll and independently verify the sealed request; never preflight or admit\n\nOptions:\n --wait-seconds <n> Maximum terminal-status wait in seconds; 0 performs one status read\n --poll-ms <n> Positive polling interval in milliseconds; default 10000\n --page-size <n> Requested RLS readback page size, 1-5000\n --timeout-ms <n> Positive request timeout in milliseconds\n --json Print compact JSON\n -h, --help\n\nOnly a terminal passed proof exits successfully. pending, failed, and indeterminate return non-zero.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceVerifyHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance verify --plan <file> [options]\n\nOptions:\n --plan <file> Immutable maintenance-plan.json\n --out-dir <dir> Optional verification artifact directory\n --page-size <n> Requested readback page size, 1-5000 (default: 1000); server caps are followed using exact counts\n --timeout-ms <n> Request timeout in milliseconds\n --json Print compact JSON\n -h, --help\n\nOutputs include readback-verify-report.json. rebuild-derivatives reports pending, passed, or failed;\npending and failed both return a non-zero exit status.\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> Requested snapshot page size, 1-5000 (default: 1000); server caps are followed using exact counts\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\nEvery snapshot/readback must prove complete exact-count pagination before an artifact or delete is accepted.\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 atomically published by tidas\n --from-format <format> auto, ecospold1, ecospold2, openlca-jsonld, openlca-process-xlsx, simapro-csv, ilcd\n --target <target> tidas | ilcd | both (default: tidas)\n --report <file> Persist the native operation report atomically instead of using tidas stdout\n --write-mapping Write deterministic mapping.csv.gz\n --no-process-bundles Disable per-process dependency bundle generation\n --fail-on-warning Return non-zero when converter warnings are present\n --max-entry-mib <n> Maximum source-entry size in MiB (tidas default: 128)\n --memory-budget-mib <n> Maximum accounted in-flight memory in MiB (tidas default: 512)\n --queue-capacity <n> Maximum items in each bounded queue (tidas default: 256)\n --tidas-bin <path> Rust tidas executable (default: TIDAS_BIN, then tidas on PATH)\n --tidas-config <path> Explicit tidas config file (otherwise TIDAS_CONFIG is honored)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --output-dir:\n - import-report.json and issues.jsonl\n - tidas/ when target includes TIDAS\n - ilcd/ when target includes ILCD\n - process-bundles/ by default\n - mapping.csv.gz when --write-mapping is used\n\nRuntime contract:\n - Linux x86_64/ARM64, macOS Intel/Apple Silicon, and Windows x86_64 are supported.\n - Windows ARM64 is unsupported.\n - The binary must report tidas.operation-report.v1 and a stable 0.2.x version.\n - Import publication, cancellation cleanup, and domain validation remain owned by Rust tidas.\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 --execution-contract <file>\n Execute a content-bound ordered owner-draft batch with append-only attempt/readback evidence (requires --commit)\n --max-parallel <1-8>\n Keep the dependency prefix serial, then run only the target-unique suffix with this concurrency (default: 1)\n --allow-account-local-support\n Explicitly permit account-local Unit Group / Flow Property rows in the execution contract\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 - $XDG_STATE_HOME/tiangong-lca-cli/execution-ledgers/dataset-save-draft/v1/<owner-scope-sha256>/<action-identity-sha256>.events.jsonl (execution-contract mode; platform state directory fallback applies)\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 renderDatasetSourceUploadAttachmentsHelp(): string {\n return `Usage:\n tiangong-lca dataset source upload-attachments --input <file|dir> --external-docs-dir <dir> [options]\n\nUploads the binary documents referenced by source datasets via referenceToDigitalFile\n(e.g. \"../external_docs/pef_method.pdf\") to a Supabase Storage bucket using the current\nauthenticated account session, then rewrites each source's referenceToDigitalFile @uri to\n\"../<bucket>/<key>\". Plain http(s) URIs are left untouched; backslash paths and filename\ncase differences are normalized; each physical file is uploaded once (deduped).\n\nOptions:\n --input <file|dir> Source TIDAS rows (.jsonl, .json, or a directory of *.json)\n --external-docs-dir <dir> Directory holding the referenced binaries\n --bucket <name> Storage bucket (default: external_docs)\n --out-dir <dir> Artifact directory\n --commit Upload binaries (default: dry-run plan only)\n --dry-run Plan without uploading (default)\n --verify After upload, create a signed URL to confirm each object resolves\n --timeout-ms <n> Per-request timeout (default: 30000)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - attachments-report.json\n - rewritten-sources.jsonl\n`.trim();\n}\n\nfunction renderDatasetValidateHelp(): string {\n return `Usage:\n tiangong-lca dataset validate --input <file> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL; objects with rows[] are also accepted\n --type <type> auto | 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 parseLcaReleaseFlags(args: string[]): {\n help: boolean;\n json: boolean;\n dryRun: boolean;\n force: boolean;\n inputPath: string | null;\n outputPath: string | null;\n releaseRunId: string | null;\n packageId: string | null;\n artifactId: string | null;\n artifactPath: string | null;\n apiKey: string | null;\n apiBaseUrl: 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 force: { type: 'boolean' },\n input: { type: 'string' },\n output: { type: 'string' },\n 'release-run-id': { type: 'string' },\n 'package-id': { type: 'string' },\n 'artifact-id': { type: 'string' },\n 'artifact-path': { type: 'string' },\n 'api-key': { type: 'string' },\n 'base-url': { 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 const optionalString = (value: unknown): string | null =>\n typeof value === 'string' ? value : null;\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n dryRun: Boolean(values['dry-run']),\n force: Boolean(values.force),\n inputPath: optionalString(values.input),\n outputPath: optionalString(values.output),\n releaseRunId: optionalString(values['release-run-id']),\n packageId: optionalString(values['package-id']),\n artifactId: optionalString(values['artifact-id']),\n artifactPath: optionalString(values['artifact-path']),\n apiKey: optionalString(values['api-key']),\n apiBaseUrl: optionalString(values['base-url']),\n timeoutMs,\n };\n}\n\nfunction requireLcaReleaseAction(value: string): LcaReleaseAction {\n if (!LCA_RELEASE_ACTIONS.includes(value as LcaReleaseAction)) {\n throw new CliError(`Unsupported release action: ${value}`, {\n code: 'LCA_RELEASE_ACTION_UNSUPPORTED',\n exitCode: 2,\n details: { actions: LCA_RELEASE_ACTIONS },\n });\n }\n return value as LcaReleaseAction;\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 executionContractPath: string | null;\n maxParallel: 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 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 'execution-contract': { type: 'string' },\n 'max-parallel': { 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_DATASET_SAVE_DRAFT_MODE',\n exitCode: 2,\n });\n }\n\n const maxParallelValue = values['max-parallel'];\n const maxParallel =\n typeof maxParallelValue === 'string' && /^\\d+$/u.test(maxParallelValue)\n ? Number.parseInt(maxParallelValue, 10)\n : maxParallelValue === undefined\n ? 1\n : Number.NaN;\n if (!Number.isInteger(maxParallel) || maxParallel < 1 || maxParallel > 8) {\n throw new CliError('--max-parallel must be an integer from 1 to 8.', {\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 commit: Boolean(values.commit),\n allowReferenceOnlySupport: Boolean(values['allow-account-local-support']),\n executionContractPath:\n typeof values['execution-contract'] === 'string' ? values['execution-contract'] : null,\n maxParallel,\n };\n}\n\nfunction parseDatasetSourceUploadAttachmentsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n externalDocsDir: string;\n bucket: string | null;\n outDir: string | null;\n commit: boolean;\n verify: boolean;\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 'external-docs-dir': { type: 'string' },\n bucket: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n verify: { type: 'boolean' },\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 if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_DATASET_SOURCE_UPLOAD_MODE',\n exitCode: 2,\n });\n }\n\n let timeoutMs: number | undefined;\n if (typeof values['timeout-ms'] === 'string') {\n const parsed = Number.parseInt(values['timeout-ms'], 10);\n if (!Number.isInteger(parsed)) {\n throw new CliError('--timeout-ms must be an integer.', {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n timeoutMs = parsed;\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n externalDocsDir:\n typeof values['external-docs-dir'] === 'string' ? values['external-docs-dir'] : '',\n bucket: typeof values.bucket === 'string' ? values.bucket : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commit: Boolean(values.commit),\n verify: Boolean(values.verify),\n timeoutMs,\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 writeMapping: boolean;\n processBundles: boolean | undefined;\n failOnWarning: boolean;\n maxEntryMib: number | undefined;\n memoryBudgetMib: number | undefined;\n queueCapacity: number | undefined;\n tidasBin: string | undefined;\n tidasConfig: 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 'write-mapping': { type: 'boolean' },\n 'no-process-bundles': { type: 'boolean' },\n 'fail-on-warning': { type: 'boolean' },\n 'max-entry-mib': { type: 'string' },\n 'memory-budget-mib': { type: 'string' },\n 'queue-capacity': { type: 'string' },\n 'tidas-bin': { type: 'string' },\n 'tidas-config': { 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 maxEntryMib = parsePositiveIntegerFlag(values['max-entry-mib'], '--max-entry-mib');\n const memoryBudgetMib = parsePositiveIntegerFlag(\n values['memory-budget-mib'],\n '--memory-budget-mib',\n );\n const queueCapacity = parsePositiveIntegerFlag(values['queue-capacity'], '--queue-capacity');\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 writeMapping: Boolean(values['write-mapping']),\n processBundles: values['no-process-bundles'] ? false : undefined,\n failOnWarning: Boolean(values['fail-on-warning']),\n maxEntryMib,\n memoryBudgetMib,\n queueCapacity,\n tidasBin: typeof values['tidas-bin'] === 'string' ? values['tidas-bin'] : undefined,\n tidasConfig: typeof values['tidas-config'] === 'string' ? values['tidas-config'] : undefined,\n };\n}\n\nfunction parsePositiveIntegerFlag(value: unknown, flag: string): number | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number(value);\n if (!Number.isSafeInteger(parsed) || parsed <= 0) {\n throw new CliError(`${flag} must be a positive integer.`, {\n code: 'DATASET_IMPORT_LCA_RUNTIME_BOUND_INVALID',\n exitCode: 2,\n });\n }\n return parsed;\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 parseDatasetMaintenancePositiveInteger(\n value: unknown,\n flagName: '--page-size' | '--poll-ms' | '--read-concurrency' | '--timeout-ms',\n): number | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n if (!/^\\d+$/u.test(value.trim()) || Number.parseInt(value.trim(), 10) <= 0) {\n throw new CliError(`${flagName} must be a positive integer.`, {\n code: 'DATASET_MAINTENANCE_INTEGER_INVALID',\n exitCode: 2,\n details: { flag: flagName, value },\n });\n }\n return Number.parseInt(value.trim(), 10);\n}\n\nfunction parseDatasetMaintenanceNonNegativeInteger(\n value: unknown,\n flagName: '--wait-seconds',\n): 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 non-negative integer.`, {\n code: 'DATASET_MAINTENANCE_INTEGER_INVALID',\n exitCode: 2,\n details: { flag: flagName, value },\n });\n }\n return Number.parseInt(value.trim(), 10);\n}\n\nfunction parseDatasetMaintenancePlanFlags(args: string[]): {\n help: boolean;\n json: boolean;\n scopePath: string;\n operation: DatasetMaintenanceOperation | null;\n outDir: string;\n pageSize: number | 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 scope: { type: 'string' },\n operation: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'page-size': { 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 rawOperation = typeof values.operation === 'string' ? values.operation : null;\n if (\n rawOperation !== null &&\n ![\n 'delete',\n 'retire',\n 'redo-import',\n 'repair-references',\n 'merge-support-aliases',\n 'rebuild-derivatives',\n ].includes(rawOperation)\n ) {\n throw new CliError(\n \"--operation must be 'delete', 'retire', 'redo-import', 'repair-references', 'merge-support-aliases', or 'rebuild-derivatives'.\",\n {\n code: 'DATASET_MAINTENANCE_OPERATION_INVALID',\n exitCode: 2,\n details: rawOperation,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n scopePath: typeof values.scope === 'string' ? values.scope : '',\n operation: rawOperation as DatasetMaintenanceOperation | null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n };\n}\n\nfunction parseDatasetMaintenanceApplyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n planPath: string;\n commit: boolean;\n approvePlan: string;\n confirm: string;\n timeoutMs: number | undefined;\n dryRun: boolean;\n maxParallel: number | undefined;\n globalInboundProofPath: string;\n approveGlobalInboundProof: 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 plan: { type: 'string' },\n commit: { type: 'boolean' },\n 'approve-plan': { type: 'string' },\n confirm: { type: 'string' },\n 'timeout-ms': { type: 'string' },\n 'dry-run': { type: 'boolean' },\n 'max-parallel': { type: 'string' },\n 'global-inbound-proof': { type: 'string' },\n 'approve-global-inbound-proof': { 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 maxParallelValue = values['max-parallel'];\n const maxParallel =\n typeof maxParallelValue === 'string' && /^\\d+$/u.test(maxParallelValue)\n ? Number.parseInt(maxParallelValue, 10)\n : maxParallelValue === undefined\n ? undefined\n : Number.NaN;\n if (\n maxParallel !== undefined &&\n (!Number.isInteger(maxParallel) || maxParallel < 1 || maxParallel > 8)\n ) {\n throw new CliError('--max-parallel must be an integer from 1 to 8.', {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n const globalInboundProofPath =\n typeof values['global-inbound-proof'] === 'string' ? values['global-inbound-proof'] : '';\n const approveGlobalInboundProof =\n typeof values['approve-global-inbound-proof'] === 'string'\n ? values['approve-global-inbound-proof']\n : '';\n if (Boolean(globalInboundProofPath) !== Boolean(approveGlobalInboundProof)) {\n throw new CliError(\n '--global-inbound-proof and --approve-global-inbound-proof must be provided together.',\n { code: 'INVALID_ARGS', exitCode: 2 },\n );\n }\n if (globalInboundProofPath && maxParallel === undefined) {\n throw new CliError('Global inbound proof flags require --max-parallel.', {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n if (approveGlobalInboundProof && !/^[0-9a-f]{64}$/u.test(approveGlobalInboundProof)) {\n throw new CliError('--approve-global-inbound-proof must be a lowercase SHA-256.', {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n planPath: typeof values.plan === 'string' ? values.plan : '',\n commit: Boolean(values.commit),\n approvePlan: typeof values['approve-plan'] === 'string' ? values['approve-plan'] : '',\n confirm: typeof values.confirm === 'string' ? values.confirm : '',\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n dryRun: Boolean(values['dry-run']),\n maxParallel,\n globalInboundProofPath,\n approveGlobalInboundProof,\n };\n}\n\nfunction parseDatasetMaintenanceFreezeProtectedFlags(args: string[]): {\n help: boolean;\n json: boolean;\n planPath: string;\n toolchainEvidencePath: string;\n outDir: string;\n expectedProjectRef: string;\n confirm: string;\n pageSize: number | 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 plan: { type: 'string' },\n 'toolchain-evidence': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'expected-project-ref': { type: 'string' },\n confirm: { type: 'string' },\n 'page-size': { 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 return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n planPath: typeof values.plan === 'string' ? values.plan : '',\n toolchainEvidencePath:\n typeof values['toolchain-evidence'] === 'string' ? values['toolchain-evidence'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n expectedProjectRef:\n typeof values['expected-project-ref'] === 'string' ? values['expected-project-ref'] : '',\n confirm: typeof values.confirm === 'string' ? values.confirm : '',\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n };\n}\n\nfunction parseDatasetMaintenanceSealProtectedApprovalFlags(args: string[]): {\n help: boolean;\n json: boolean;\n freezePath: string;\n approvalRequestPath: string;\n humanApprovalPath: string;\n outDir: string;\n approveFreezeFile: string;\n approveRequest: string;\n approveText: string;\n confirm: string;\n approvedAtUtc: 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 freeze: { type: 'string' },\n 'approval-request': { type: 'string' },\n 'human-approval': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'approve-freeze-file': { type: 'string' },\n 'approve-request': { type: 'string' },\n 'approve-text': { type: 'string' },\n confirm: { type: 'string' },\n 'approved-at': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n freezePath: typeof values.freeze === 'string' ? values.freeze : '',\n approvalRequestPath:\n typeof values['approval-request'] === 'string' ? values['approval-request'] : '',\n humanApprovalPath: typeof values['human-approval'] === 'string' ? values['human-approval'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n approveFreezeFile:\n typeof values['approve-freeze-file'] === 'string' ? values['approve-freeze-file'] : '',\n approveRequest: typeof values['approve-request'] === 'string' ? values['approve-request'] : '',\n approveText: typeof values['approve-text'] === 'string' ? values['approve-text'] : '',\n confirm: typeof values.confirm === 'string' ? values.confirm : '',\n approvedAtUtc: typeof values['approved-at'] === 'string' ? values['approved-at'] : '',\n };\n}\n\nfunction parseDatasetMaintenanceProtectedFlags(args: string[]): {\n help: boolean;\n json: boolean;\n planPath: string;\n freezePath: string;\n approvalPath: string;\n outDir: string;\n commit: boolean;\n statusOnly: boolean;\n approveExecution: string | undefined;\n confirm: string | undefined;\n waitSeconds: number | undefined;\n pollMs: number | undefined;\n pageSize: number | 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 plan: { type: 'string' },\n freeze: { type: 'string' },\n approval: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'status-only': { type: 'boolean' },\n 'approve-execution': { type: 'string' },\n confirm: { type: 'string' },\n 'wait-seconds': { type: 'string' },\n 'poll-ms': { type: 'string' },\n 'page-size': { 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 return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n planPath: typeof values.plan === 'string' ? values.plan : '',\n freezePath: typeof values.freeze === 'string' ? values.freeze : '',\n approvalPath: typeof values.approval === 'string' ? values.approval : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n statusOnly: Boolean(values['status-only']),\n approveExecution:\n typeof values['approve-execution'] === 'string' ? values['approve-execution'] : undefined,\n confirm: typeof values.confirm === 'string' ? values.confirm : undefined,\n waitSeconds: parseDatasetMaintenanceNonNegativeInteger(\n values['wait-seconds'],\n '--wait-seconds',\n ),\n pollMs: parseDatasetMaintenancePositiveInteger(values['poll-ms'], '--poll-ms'),\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n };\n}\n\nfunction parseDatasetMaintenanceFlowIdentityFlags(args: string[]) {\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 policy: { type: 'string' },\n 'review-ledger': { type: 'string' },\n prerequisites: { type: 'string' },\n 'live-capture': { type: 'string' },\n plan: { type: 'string' },\n 'toolchain-evidence': { type: 'string' },\n 'approval-text': { type: 'string' },\n 'expected-project-ref': { type: 'string' },\n 'request-id': { type: 'string' },\n 'operation-id': { type: 'string' },\n 'sdk-version': { type: 'string' },\n freeze: { type: 'string' },\n 'approval-request': { type: 'string' },\n 'human-approval': { type: 'string' },\n approval: { type: 'string' },\n 'recovery-freeze': { type: 'string' },\n 'recovery-approval': { type: 'string' },\n 'recovery-reason': { type: 'string' },\n 'approve-freeze-file': { type: 'string' },\n 'approve-request': { type: 'string' },\n 'approve-text': { type: 'string' },\n 'approve-execution': { type: 'string' },\n confirm: { type: 'string' },\n 'approved-at': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'run-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'status-only': { type: 'boolean' },\n 'wait-seconds': { type: 'string' },\n 'poll-ms': { type: 'string' },\n 'page-size': { type: 'string' },\n 'read-concurrency': { type: 'string' },\n 'timeout-ms': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), { code: 'INVALID_ARGS', exitCode: 2 });\n }\n const valueRecord = values as Record<string, unknown>;\n const string = (name: string): string =>\n typeof valueRecord[name] === 'string' ? String(valueRecord[name]) : '';\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n policyPath: string('policy'),\n reviewLedgerPath: string('review-ledger'),\n prerequisitesPath: string('prerequisites'),\n liveCapturePath: string('live-capture'),\n planPath: string('plan'),\n toolchainEvidencePath: string('toolchain-evidence'),\n approvalTextPath: string('approval-text'),\n expectedProjectRef: string('expected-project-ref'),\n requestId: string('request-id'),\n operationId: string('operation-id'),\n sdkVersion: string('sdk-version'),\n freezePath: string('freeze'),\n approvalRequestPath: string('approval-request'),\n humanApprovalPath: string('human-approval'),\n approvalPath: string('approval'),\n recoveryFreezePath: string('recovery-freeze'),\n recoveryApprovalPath: string('recovery-approval'),\n recoveryReason: string('recovery-reason'),\n approveFreezeFile: string('approve-freeze-file'),\n approveRequest: string('approve-request'),\n approveText: string('approve-text'),\n approveExecution: string('approve-execution'),\n confirm: string('confirm'),\n approvedAtUtc: string('approved-at'),\n outDir: string('out-dir'),\n runDir: string('run-dir'),\n commit: Boolean(values.commit),\n statusOnly: Boolean(values['status-only']),\n waitSeconds: parseDatasetMaintenanceNonNegativeInteger(\n values['wait-seconds'],\n '--wait-seconds',\n ),\n pollMs: parseDatasetMaintenancePositiveInteger(values['poll-ms'], '--poll-ms'),\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n readConcurrency: parseDatasetMaintenancePositiveInteger(\n values['read-concurrency'],\n '--read-concurrency',\n ),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n };\n}\n\nfunction parseDatasetMaintenanceVerifyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n planPath: string;\n outDir: string | undefined;\n pageSize: number | 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 plan: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'page-size': { 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 return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n planPath: typeof values.plan === 'string' ? values.plan : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : undefined,\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\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 lcaReleaseImpl = deps.runLcaReleaseImpl ?? runLcaRelease;\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 const datasetMaintenancePlanImpl =\n deps.runDatasetMaintenancePlanImpl ?? runDatasetMaintenancePlan;\n const datasetMaintenanceApplyImpl =\n deps.runDatasetMaintenanceApplyImpl ?? runDatasetMaintenanceApply;\n const datasetMaintenanceProtectedFreezeImpl =\n deps.freezeDatasetMaintenanceProtectedImpl ?? freezeDatasetMaintenanceProtected;\n const datasetMaintenanceProtectedImpl =\n deps.runDatasetMaintenanceProtectedImpl ?? runDatasetMaintenanceProtected;\n const datasetMaintenanceProtectedApprovalSealImpl =\n deps.sealDatasetMaintenanceProtectedApprovalImpl ?? sealDatasetMaintenanceProtectedApproval;\n const datasetMaintenanceVerifyImpl =\n deps.runDatasetMaintenanceVerifyImpl ?? runDatasetMaintenanceVerify;\n const flowIdentityPlanImpl =\n deps.runFlowIdentityPlanFromFilesImpl ?? runFlowIdentityPlanFromFiles;\n const flowIdentityCaptureImpl = deps.captureFlowIdentityImpl ?? captureFlowIdentity;\n const flowIdentityFreezeImpl = deps.freezeFlowIdentityImpl ?? freezeFlowIdentity;\n const flowIdentityApprovalSealImpl =\n deps.sealFlowIdentityApprovalImpl ?? sealFlowIdentityApproval;\n const flowIdentityRecoveryFreezeImpl =\n deps.freezeFlowIdentityRecoveryImpl ?? freezeFlowIdentityRecovery;\n const flowIdentityRecoveryApprovalSealImpl =\n deps.sealFlowIdentityRecoveryApprovalImpl ?? sealFlowIdentityRecoveryApproval;\n const flowIdentityRunImpl = deps.runFlowIdentityImpl ?? runFlowIdentity;\n const flowIdentityVerifyImpl = deps.verifyFlowIdentityImpl ?? verifyFlowIdentity;\n const datasetSourceUploadAttachmentsImpl =\n deps.runDatasetSourceUploadAttachmentsImpl ?? runDatasetSourceUploadAttachments;\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 writeMapping: datasetFlags.writeMapping,\n processBundles: datasetFlags.processBundles,\n failOnWarning: datasetFlags.failOnWarning,\n maxEntryMib: datasetFlags.maxEntryMib,\n memoryBudgetMib: datasetFlags.memoryBudgetMib,\n queueCapacity: datasetFlags.queueCapacity,\n tidasBin: datasetFlags.tidasBin,\n tidasConfig: datasetFlags.tidasConfig,\n env: deps.env,\n });\n return {\n exitCode: report.exit_code,\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 === 'source') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return {\n exitCode: 0,\n stdout: `${renderDatasetSourceUploadAttachmentsHelp()}\\n`,\n stderr: '',\n };\n }\n if (action !== 'upload-attachments') {\n throw new CliError(\"dataset source action must be 'upload-attachments'.\", {\n code: 'DATASET_SOURCE_ACTION_INVALID',\n exitCode: 2,\n });\n }\n const datasetFlags = parseDatasetSourceUploadAttachmentsFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetSourceUploadAttachmentsHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.inputPath) {\n throw new CliError('dataset source upload-attachments requires --input.', {\n code: 'DATASET_SOURCE_UPLOAD_INPUT_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.externalDocsDir) {\n throw new CliError('dataset source upload-attachments requires --external-docs-dir.', {\n code: 'DATASET_SOURCE_UPLOAD_EXTERNAL_DOCS_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n\n const report = await datasetSourceUploadAttachmentsImpl({\n inputPath: datasetFlags.inputPath,\n externalDocsDir: datasetFlags.externalDocsDir,\n bucket: datasetFlags.bucket,\n outDir: datasetFlags.outDir,\n commit: datasetFlags.commit,\n verify: datasetFlags.verify,\n timeoutMs: datasetFlags.timeoutMs,\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 === '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 executionContractPath: datasetFlags.executionContractPath,\n maxParallel: datasetFlags.maxParallel,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\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 === '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 === 'flow-identity') {\n const flowAction = commandArgs[1] ?? '';\n if (!flowAction || flowAction === '--help' || flowAction === '-h') {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceFlowIdentityHelp()}\\n`,\n stderr: '',\n };\n }\n const datasetFlags = parseDatasetMaintenanceFlowIdentityFlags(commandArgs.slice(2));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceFlowIdentityHelp()}\\n`,\n stderr: '',\n };\n }\n const required = (value: string, flag: string): string => {\n if (!value) {\n throw new CliError(\n `dataset maintenance flow-identity ${flowAction} requires ${flag}.`,\n {\n code: 'DATASET_FLOW_IDENTITY_ARGUMENT_REQUIRED',\n exitCode: 2,\n },\n );\n }\n return value;\n };\n if (flowAction === 'capture') {\n const report = await flowIdentityCaptureImpl({\n policyPath: required(datasetFlags.policyPath, '--policy'),\n reviewLedgerPath: required(datasetFlags.reviewLedgerPath, '--review-ledger'),\n prerequisitesPath: required(datasetFlags.prerequisitesPath, '--prerequisites'),\n toolchainEvidencePath: required(\n datasetFlags.toolchainEvidencePath,\n '--toolchain-evidence',\n ),\n requestId: required(datasetFlags.requestId, '--request-id'),\n operationId: required(datasetFlags.operationId, '--operation-id'),\n expectedProjectRef: required(datasetFlags.expectedProjectRef, '--expected-project-ref'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n cliVersion: loadCliPackageVersion(import.meta.url),\n sdkVersion: required(datasetFlags.sdkVersion, '--sdk-version'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n pageSize: datasetFlags.pageSize,\n readConcurrency: datasetFlags.readConcurrency,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'plan') {\n const plan = await flowIdentityPlanImpl({\n policyPath: required(datasetFlags.policyPath, '--policy'),\n reviewLedgerPath: required(datasetFlags.reviewLedgerPath, '--review-ledger'),\n liveCapturePath: required(datasetFlags.liveCapturePath, '--live-capture'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n });\n return { exitCode: 0, stdout: stringifyJson(plan, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'freeze') {\n const report = await flowIdentityFreezeImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n toolchainEvidencePath: required(\n datasetFlags.toolchainEvidencePath,\n '--toolchain-evidence',\n ),\n approvedAtUtc: required(datasetFlags.approvedAtUtc, '--approved-at'),\n expectedProjectRef: required(datasetFlags.expectedProjectRef, '--expected-project-ref'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n cliVersion: loadCliPackageVersion(import.meta.url),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'seal-approval') {\n const report = await flowIdentityApprovalSealImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalRequestPath: required(datasetFlags.approvalRequestPath, '--approval-request'),\n humanApprovalPath: required(datasetFlags.humanApprovalPath, '--human-approval'),\n approveFreezeFile: required(datasetFlags.approveFreezeFile, '--approve-freeze-file'),\n approveRequest: required(datasetFlags.approveRequest, '--approve-request'),\n approveText: required(datasetFlags.approveText, '--approve-text'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n approvedAtUtc: required(datasetFlags.approvedAtUtc, '--approved-at'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'freeze-recovery') {\n const recoveryReason = required(datasetFlags.recoveryReason, '--recovery-reason');\n if (\n ![\n 'wrapper_exited_without_permit',\n 'process_response_ambiguous',\n 'process_domain_rejected',\n 'finalize_response_ambiguous',\n 'derivatives_became_ready_after_wrapper_exit',\n ].includes(recoveryReason)\n ) {\n throw new CliError('flow-identity recovery reason is not allowed.', {\n code: 'DATASET_FLOW_IDENTITY_RECOVERY_REASON_INVALID',\n exitCode: 2,\n });\n }\n const report = await flowIdentityRecoveryFreezeImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalPath: required(datasetFlags.approvalPath, '--approval'),\n runDir: required(datasetFlags.runDir, '--run-dir'),\n toolchainEvidencePath: required(\n datasetFlags.toolchainEvidencePath,\n '--toolchain-evidence',\n ),\n expectedProjectRef: required(datasetFlags.expectedProjectRef, '--expected-project-ref'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n approvedAtUtc: required(datasetFlags.approvedAtUtc, '--approved-at'),\n recoveryReason: recoveryReason as\n | 'wrapper_exited_without_permit'\n | 'process_response_ambiguous'\n | 'process_domain_rejected'\n | 'finalize_response_ambiguous'\n | 'derivatives_became_ready_after_wrapper_exit',\n cliVersion: loadCliPackageVersion(import.meta.url),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'seal-recovery-approval') {\n const report = flowIdentityRecoveryApprovalSealImpl({\n recoveryFreezePath: required(datasetFlags.recoveryFreezePath, '--recovery-freeze'),\n approvalRequestPath: required(datasetFlags.approvalRequestPath, '--approval-request'),\n humanApprovalPath: required(datasetFlags.humanApprovalPath, '--human-approval'),\n approveFreezeFile: required(datasetFlags.approveFreezeFile, '--approve-freeze-file'),\n approveRequest: required(datasetFlags.approveRequest, '--approve-request'),\n approveText: required(datasetFlags.approveText, '--approve-text'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n approvedAtUtc: required(datasetFlags.approvedAtUtc, '--approved-at'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'run-recovery') {\n if (!datasetFlags.commit || datasetFlags.statusOnly) {\n throw new CliError('flow-identity run-recovery requires --commit only.', {\n code: 'DATASET_FLOW_IDENTITY_RECOVERY_RUN_MODE_INVALID',\n exitCode: 2,\n });\n }\n const report = await flowIdentityRunImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalPath: required(datasetFlags.approvalPath, '--approval'),\n recoveryRunDir: required(datasetFlags.runDir, '--run-dir'),\n recoveryFreezePath: required(datasetFlags.recoveryFreezePath, '--recovery-freeze'),\n recoveryApprovalPath: required(\n datasetFlags.recoveryApprovalPath,\n '--recovery-approval',\n ),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n commit: true,\n statusOnly: false,\n approveExecution: required(datasetFlags.approveExecution, '--approve-execution'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n waitSeconds: datasetFlags.waitSeconds,\n pollMs: datasetFlags.pollMs,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n if (flowAction === 'run') {\n if (datasetFlags.commit === datasetFlags.statusOnly) {\n throw new CliError(\n 'flow-identity run requires exactly one of --commit or --status-only.',\n { code: 'DATASET_FLOW_IDENTITY_RUN_MODE_INVALID', exitCode: 2 },\n );\n }\n if (datasetFlags.commit) {\n required(datasetFlags.approveExecution, '--approve-execution');\n required(datasetFlags.confirm, '--confirm');\n }\n const report = await flowIdentityRunImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalPath: required(datasetFlags.approvalPath, '--approval'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n commit: datasetFlags.commit,\n statusOnly: datasetFlags.statusOnly,\n approveExecution: datasetFlags.approveExecution || undefined,\n confirm: datasetFlags.confirm || undefined,\n waitSeconds: datasetFlags.waitSeconds,\n pollMs: datasetFlags.pollMs,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n if (flowAction === 'verify') {\n const report = await flowIdentityVerifyImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalPath: required(datasetFlags.approvalPath, '--approval'),\n runDir: required(datasetFlags.runDir, '--run-dir'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n throw new CliError(\n \"dataset maintenance flow-identity action must be 'capture', 'plan', 'freeze', 'seal-approval', 'run', 'freeze-recovery', 'seal-recovery-approval', 'run-recovery', or 'verify'.\",\n { code: 'DATASET_FLOW_IDENTITY_ACTION_INVALID', exitCode: 2 },\n );\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\n if (action === 'plan') {\n const datasetFlags = parseDatasetMaintenancePlanFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenancePlanHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.scopePath) {\n throw new CliError('dataset maintenance plan requires --scope.', {\n code: 'DATASET_MAINTENANCE_SCOPE_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.operation) {\n throw new CliError('dataset maintenance plan requires --operation.', {\n code: 'DATASET_MAINTENANCE_OPERATION_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.outDir) {\n throw new CliError('dataset maintenance plan requires --out-dir.', {\n code: 'DATASET_MAINTENANCE_OUT_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenancePlanImpl({\n scopePath: datasetFlags.scopePath,\n operation: datasetFlags.operation,\n outDir: datasetFlags.outDir,\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\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 = parseDatasetMaintenanceApplyFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceApplyHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.planPath) {\n throw new CliError('dataset maintenance apply requires --plan.', {\n code: 'DATASET_MAINTENANCE_PLAN_REQUIRED',\n exitCode: 2,\n });\n }\n if (datasetFlags.commit && datasetFlags.dryRun) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'DATASET_MAINTENANCE_APPLY_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n if (datasetFlags.dryRun) {\n throw new CliError(\n 'dataset maintenance apply is commit-only; use dataset maintenance plan for a dry run.',\n {\n code: 'DATASET_MAINTENANCE_APPLY_COMMIT_ONLY',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.commit) {\n throw new CliError('dataset maintenance apply requires --commit.', {\n code: 'DATASET_MAINTENANCE_APPLY_COMMIT_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.approvePlan) {\n throw new CliError('dataset maintenance apply requires --approve-plan <sha256>.', {\n code: 'DATASET_MAINTENANCE_APPROVAL_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.confirm) {\n throw new CliError('dataset maintenance apply requires --confirm <email>.', {\n code: 'DATASET_MAINTENANCE_CONFIRM_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenanceApplyImpl({\n planPath: datasetFlags.planPath,\n commit: datasetFlags.commit,\n approvePlan: datasetFlags.approvePlan,\n confirm: datasetFlags.confirm,\n timeoutMs: datasetFlags.timeoutMs,\n maxParallel: datasetFlags.maxParallel,\n globalInboundProofPath: datasetFlags.globalInboundProofPath || undefined,\n approveGlobalInboundProof: datasetFlags.approveGlobalInboundProof || undefined,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: ['completed_with_failures', 'completed_with_unknowns'].includes(report.status)\n ? 1\n : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (action === 'freeze-protected') {\n const datasetFlags = parseDatasetMaintenanceFreezeProtectedFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceFreezeProtectedHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.planPath) {\n throw new CliError('dataset maintenance freeze-protected requires --plan.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_PLAN_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.toolchainEvidencePath) {\n throw new CliError(\n 'dataset maintenance freeze-protected requires --toolchain-evidence.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_TOOLCHAIN_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.expectedProjectRef) {\n throw new CliError(\n 'dataset maintenance freeze-protected requires --expected-project-ref.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_PROJECT_REF_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.confirm) {\n throw new CliError('dataset maintenance freeze-protected requires --confirm.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_CONFIRM_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.outDir) {\n throw new CliError('dataset maintenance freeze-protected requires --out-dir.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_OUT_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenanceProtectedFreezeImpl({\n planPath: datasetFlags.planPath,\n toolchainEvidencePath: datasetFlags.toolchainEvidencePath,\n outDir: datasetFlags.outDir,\n expectedProjectRef: datasetFlags.expectedProjectRef,\n confirm: datasetFlags.confirm,\n cliVersion: loadCliPackageVersion(import.meta.url),\n pageSize: datasetFlags.pageSize,\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 (action === 'seal-protected-approval') {\n const datasetFlags = parseDatasetMaintenanceSealProtectedApprovalFlags(\n commandArgs.slice(1),\n );\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceSealProtectedApprovalHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.freezePath) {\n throw new CliError('dataset maintenance seal-protected-approval requires --freeze.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_FREEZE_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.approvalRequestPath) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approval-request.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_APPROVAL_REQUEST_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.humanApprovalPath) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --human-approval.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_HUMAN_APPROVAL_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.approveFreezeFile) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approve-freeze-file.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_FREEZE_CONFIRMATION_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.approveRequest) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approve-request.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_REQUEST_CONFIRMATION_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.approveText) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approve-text.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_TEXT_CONFIRMATION_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.confirm) {\n throw new CliError('dataset maintenance seal-protected-approval requires --confirm.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_CONFIRM_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.approvedAtUtc) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approved-at.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_APPROVED_AT_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.outDir) {\n throw new CliError('dataset maintenance seal-protected-approval requires --out-dir.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_OUT_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenanceProtectedApprovalSealImpl({\n freezePath: datasetFlags.freezePath,\n approvalRequestPath: datasetFlags.approvalRequestPath,\n humanApprovalPath: datasetFlags.humanApprovalPath,\n outDir: datasetFlags.outDir,\n approveFreezeFile: datasetFlags.approveFreezeFile,\n approveRequest: datasetFlags.approveRequest,\n approveText: datasetFlags.approveText,\n confirm: datasetFlags.confirm,\n approvedAtUtc: datasetFlags.approvedAtUtc,\n });\n return {\n exitCode: 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (action === 'run-protected') {\n const datasetFlags = parseDatasetMaintenanceProtectedFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceRunProtectedHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.planPath) {\n throw new CliError('dataset maintenance run-protected requires --plan.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_PLAN_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.freezePath) {\n throw new CliError('dataset maintenance run-protected requires --freeze.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_FREEZE_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.approvalPath) {\n throw new CliError('dataset maintenance run-protected requires --approval.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_APPROVAL_FILE_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.outDir) {\n throw new CliError('dataset maintenance run-protected requires --out-dir.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_OUT_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n if (datasetFlags.commit && datasetFlags.statusOnly) {\n throw new CliError('Cannot pass both --commit and --status-only.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n if (!datasetFlags.commit && !datasetFlags.statusOnly) {\n throw new CliError(\n 'dataset maintenance run-protected requires either --commit or --status-only.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_MODE_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (datasetFlags.commit && !datasetFlags.approveExecution) {\n throw new CliError(\n 'dataset maintenance run-protected requires --approve-execution <sha256> with --commit.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_APPROVAL_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (datasetFlags.commit && !datasetFlags.confirm) {\n throw new CliError(\n 'dataset maintenance run-protected requires --confirm <email> with --commit.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_CONFIRM_REQUIRED',\n exitCode: 2,\n },\n );\n }\n const report = await datasetMaintenanceProtectedImpl({\n planPath: datasetFlags.planPath,\n freezePath: datasetFlags.freezePath,\n approvalPath: datasetFlags.approvalPath,\n outDir: datasetFlags.outDir,\n commit: datasetFlags.commit,\n statusOnly: datasetFlags.statusOnly,\n approveExecution: datasetFlags.approveExecution,\n confirm: datasetFlags.confirm,\n waitSeconds: datasetFlags.waitSeconds,\n pollMs: datasetFlags.pollMs,\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (action === 'verify') {\n const datasetFlags = parseDatasetMaintenanceVerifyFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceVerifyHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.planPath) {\n throw new CliError('dataset maintenance verify requires --plan.', {\n code: 'DATASET_MAINTENANCE_PLAN_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenanceVerifyImpl({\n planPath: datasetFlags.planPath,\n outDir: datasetFlags.outDir,\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n throw new CliError(\n \"dataset maintenance action must be 'clear-account', 'plan', 'apply', 'freeze-protected', 'seal-protected-approval', 'run-protected', 'verify', or 'flow-identity'.\",\n {\n code: 'DATASET_MAINTENANCE_ACTION_INVALID',\n exitCode: 2,\n },\n );\n }\n\n if (command === 'lifecyclemodel' && !subcommand) {\n return { exitCode: 0, stdout: `${renderLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'auto-build') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelAutoBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelAutoBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'build-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelBuildResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishImpl({\n runDir: lifecyclemodelFlags.runDir,\n publishProcesses: lifecyclemodelFlags.publishProcesses,\n publishRelations: lifecyclemodelFlags.publishRelations,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'validate-build') {\n const lifecyclemodelFlags = parseLifecyclemodelValidateBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelValidateBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelValidateImpl({\n runDir: lifecyclemodelFlags.runDir,\n engine: lifecyclemodelFlags.engine,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-build') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishBuildImpl({\n runDir: lifecyclemodelFlags.runDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'save-draft') {\n const lifecyclemodelFlags = parseLifecyclemodelSaveDraftFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelSaveDraftHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelSaveDraftImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n commit: lifecyclemodelFlags.commit,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'graph') {\n const lifecyclemodelFlags = parseLifecyclemodelGraphFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelGraphHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelGraphImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n format: lifecyclemodelFlags.format,\n checkConnections: lifecyclemodelFlags.checkConnections,\n });\n\n return {\n exitCode: report.status === 'completed_with_findings' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'orchestrate') {\n const lifecyclemodelFlags = parseLifecyclemodelOrchestrateFlags(commandArgs);\n if (lifecyclemodelFlags.help || !lifecyclemodelFlags.action) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelOrchestrateHelp()}\\n`,\n stderr: '',\n };\n }\n if (\n lifecyclemodelFlags.action !== 'plan' &&\n lifecyclemodelFlags.action !== 'execute' &&\n lifecyclemodelFlags.action !== 'publish'\n ) {\n throw new CliError(\n \"lifecyclemodel orchestrate action must be 'plan', 'execute', or 'publish'.\",\n {\n code: 'INVALID_ARGS',\n exitCode: 2,\n },\n );\n }\n\n const report = await lifecyclemodelOrchestrateImpl({\n action: lifecyclemodelFlags.action,\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n runDir: lifecyclemodelFlags.runDir,\n allowProcessBuild: lifecyclemodelFlags.allowProcessBuild,\n allowSubmodelBuild: lifecyclemodelFlags.allowSubmodelBuild,\n publishLifecyclemodels: lifecyclemodelFlags.publishLifecyclemodels,\n publishResultingProcessRelations: lifecyclemodelFlags.publishResultingProcessRelations,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.action === 'execute' && report.status !== 'completed' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && !subcommand) {\n return { exitCode: 0, stdout: `${renderProcessHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'process' && subcommand === 'get') {\n const processFlags = parseProcessGetFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessGetHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processGetImpl({\n processId: processFlags.processId,\n version: processFlags.version,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'list') {\n const processFlags = parseProcessListFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessListHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processListImpl({\n ids: processFlags.ids,\n version: processFlags.version,\n userId: processFlags.userId,\n stateCodes: processFlags.stateCodes,\n limit: processFlags.limit,\n offset: processFlags.offset,\n all: processFlags.all,\n pageSize: processFlags.pageSize,\n order: processFlags.order,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'identity-preflight') {\n const processFlags = parseIdentityPreflightFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessIdentityPreflightHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processIdentityPreflightImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n candidateInputPaths: processFlags.candidateInputPaths,\n remoteCandidateSearch: processFlags.remoteCandidateSearch,\n remoteQuery: processFlags.remoteQuery,\n remoteLimit: processFlags.remoteLimit,\n 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 === 'release' && !subcommand) {\n return { exitCode: 0, stdout: `${renderLcaReleaseHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'release' && subcommand) {\n const releaseFlags = parseLcaReleaseFlags(commandArgs);\n if (releaseFlags.help) {\n return { exitCode: 0, stdout: `${renderLcaReleaseHelp()}\\n`, stderr: '' };\n }\n const action = requireLcaReleaseAction(subcommand);\n const env = { ...deps.env };\n if (releaseFlags.apiKey !== null) {\n env.TIANGONG_LCA_API_KEY = releaseFlags.apiKey;\n }\n if (releaseFlags.apiBaseUrl !== null) {\n env.TIANGONG_LCA_API_BASE_URL = releaseFlags.apiBaseUrl;\n }\n const report = await lcaReleaseImpl({\n action,\n inputPath: releaseFlags.inputPath,\n outputPath: releaseFlags.outputPath,\n releaseRunId: releaseFlags.releaseRunId,\n packageId: releaseFlags.packageId,\n artifactId: releaseFlags.artifactId,\n artifactPath: releaseFlags.artifactPath,\n env,\n timeoutMs: releaseFlags.timeoutMs,\n dryRun: releaseFlags.dryRun,\n force: releaseFlags.force,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: 0,\n stdout: releaseFlags.json ? stringifyJson(report, true) : renderLcaReleaseReport(report),\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 AUTH_IDENTITY_MAX_TIMEOUT_MS,\n AUTH_IDENTITY_RECEIPT_SCHEMA,\n runAuthIdentityReceipt,\n type AuthIdentityReceipt,\n type RunAuthIdentityReceiptOptions,\n} from './lib/auth-identity-receipt.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 LCA_RELEASE_ACTIONS,\n renderLcaReleaseReport,\n runLcaRelease,\n type LcaReleaseAction,\n type LcaReleaseReport,\n type RunLcaReleaseOptions,\n} from './lib/lca-release.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';\nimport { runDatasetMaintenancePlan } from './lib/dataset-maintenance-plan.js';\nimport { runDatasetMaintenanceApply } from './lib/dataset-maintenance-apply.js';\nimport { freezeDatasetMaintenanceProtected } from './lib/dataset-maintenance-protected-freeze.js';\nimport { runDatasetMaintenanceProtected } from './lib/dataset-maintenance-protected-run.js';\nimport { sealDatasetMaintenanceProtectedApproval } from './lib/dataset-maintenance-protected-seal.js';\nimport { runDatasetMaintenanceVerify } from './lib/dataset-maintenance-verify.js';\nimport { runFlowIdentityPlanFromFiles } from './lib/dataset-maintenance-flow-identity-command.js';\nimport { captureFlowIdentity } from './lib/dataset-maintenance-flow-identity-capture.js';\nimport { freezeFlowIdentity } from './lib/dataset-maintenance-flow-identity-freeze.js';\nimport { sealFlowIdentityApproval } from './lib/dataset-maintenance-flow-identity-seal.js';\nimport {\n freezeFlowIdentityRecovery,\n sealFlowIdentityRecoveryApproval,\n} from './lib/dataset-maintenance-flow-identity-recovery.js';\nimport { runFlowIdentity } from './lib/dataset-maintenance-flow-identity-run.js';\nimport { verifyFlowIdentity } from './lib/dataset-maintenance-flow-identity-verify.js';\nimport type { DatasetMaintenanceOperation } from './lib/dataset-maintenance-contract.js';\nimport {\n runDatasetSourceUploadAttachments,\n type DatasetSourceUploadAttachmentsReport,\n type RunDatasetSourceUploadAttachmentsOptions,\n} from './lib/dataset-source-upload-attachments.js';\n\nexport type CliDeps = {\n env: NodeJS.ProcessEnv;\n dotEnvStatus: DotEnvLoadResult;\n fetchImpl: FetchLike;\n runAuthIdentityReceiptImpl?: (\n options: RunAuthIdentityReceiptOptions,\n ) => Promise<AuthIdentityReceipt>;\n runPublishImpl?: (options: RunPublishOptions) => Promise<PublishReport>;\n runValidationImpl?: (options: RunValidationOptions) => Promise<ValidationRunReport>;\n runLcaReleaseImpl?: (options: RunLcaReleaseOptions) => Promise<LcaReleaseReport>;\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 runDatasetMaintenancePlanImpl?: typeof runDatasetMaintenancePlan;\n runDatasetMaintenanceApplyImpl?: typeof runDatasetMaintenanceApply;\n freezeDatasetMaintenanceProtectedImpl?: typeof freezeDatasetMaintenanceProtected;\n runDatasetMaintenanceProtectedImpl?: typeof runDatasetMaintenanceProtected;\n sealDatasetMaintenanceProtectedApprovalImpl?: typeof sealDatasetMaintenanceProtectedApproval;\n runDatasetMaintenanceVerifyImpl?: typeof runDatasetMaintenanceVerify;\n runFlowIdentityPlanFromFilesImpl?: typeof runFlowIdentityPlanFromFiles;\n captureFlowIdentityImpl?: typeof captureFlowIdentity;\n freezeFlowIdentityImpl?: typeof freezeFlowIdentity;\n sealFlowIdentityApprovalImpl?: typeof sealFlowIdentityApproval;\n freezeFlowIdentityRecoveryImpl?: typeof freezeFlowIdentityRecovery;\n sealFlowIdentityRecoveryApprovalImpl?: typeof sealFlowIdentityRecoveryApproval;\n runFlowIdentityImpl?: typeof runFlowIdentity;\n verifyFlowIdentityImpl?: typeof verifyFlowIdentity;\n runDatasetSourceUploadAttachmentsImpl?: (\n options: RunDatasetSourceUploadAttachmentsOptions,\n ) => Promise<DatasetSourceUploadAttachmentsReport>;\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 auth identity-receipt\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 | source upload-attachments | validate | verify-remote | bilingual extract/apply/validate | evidence-search plan/run | references rewrite/refresh-remote | maintenance clear-account/plan/apply/verify/flow-identity\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 release prepare | upload | finalize | approve | publish | readback-verify | unpublish | status | current | calculation-bundle | calculation-artifact | artifact-download\n admin embedding-run\n\nPlanned Surface (not implemented yet):\n auth whoami | doctor-auth\n job get | wait | logs\n\nPlanned commands currently print an explicit \"not implemented yet\" message and exit with code 2.\n\nExamples:\n tiangong-lca doctor\n tiangong-lca auth identity-receipt --expected-project-ref <project-ref> --expected-user-id <user-id> --json\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 merge-support-aliases --out-dir /abs/path/to/dataset-maintenance\n tiangong-lca dataset maintenance freeze-protected --plan ./maintenance-plan.json --toolchain-evidence ./toolchain.json --expected-project-ref <production-ref> --confirm bafudata@126.com --out-dir /abs/path/to/protected-freeze\n tiangong-lca dataset maintenance run-protected --plan ./maintenance-plan.json --freeze ./protected-execution-seal.json --approval ./protected-approval.json --out-dir /abs/path/to/protected-run --status-only\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 release status --release-run-id <run-id> --json\n tiangong-lca release calculation-bundle --package-id <package-id> --output ./calculation-bundle.json\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 renderAuthHelp(): string {\n return `Usage:\n tiangong-lca auth identity-receipt [options]\n\nImplemented Subcommands:\n identity-receipt Live, read-only proof of the authenticated account and Supabase project\n\nPlanned Subcommands:\n whoami | doctor-auth\n\nUse \"tiangong-lca auth identity-receipt --help\" for the machine-receipt contract.\n`.trim();\n}\n\nfunction renderAuthIdentityReceiptHelp(): string {\n return `Usage:\n tiangong-lca auth identity-receipt [options]\n\nOptions:\n --expected-project-ref <ref> Assert the exact Supabase project before session/network access\n --expected-user-id <id> Assert the exact server-verified authenticated user\n --timeout-ms <n> Request timeout 1..${AUTH_IDENTITY_MAX_TIMEOUT_MS} ms (default: 10000)\n --json Print compact JSON; default output is pretty JSON\n -h, --help\n\nReceipt schema:\n ${AUTH_IDENTITY_RECEIPT_SCHEMA}\n\nSafety:\n This is a read-only command that performs one live read of /auth/v1/user, with at most one\n force-refresh retry after a 401 or 403. It never emits API keys, bearer/session\n tokens, full email addresses, session paths, or credential-derived fingerprints. Production guards\n must pass both expected assertions and require assertions.mode=\"intent-bound\".\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOptional session env:\n TIANGONG_LCA_SESSION_FILE\n TIANGONG_LCA_DISABLE_SESSION_CACHE\n TIANGONG_LCA_FORCE_REAUTH\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 renderLcaReleaseHelp(): string {\n return `Usage:\n tiangong-lca release <action> [options]\n\nWorkflow actions:\n prepare register an immutable publish plan from --input\n upload verify four local ZIPs, upload them, and write --output receipt\n finalize bind a Release Manifest and uploaded artifact refs from --input\n approve create a durable manager approval from --input\n publish publish an approved release from --input; credential fingerprint is derived locally\n readback-verify record independent artifact readback hashes from --input\n unpublish unpublish the current release from --input\n\nRead and download actions:\n status read --release-run-id\n current read the current public release\n calculation-bundle verify/sign bundle manifest and chunks for --package-id; requires --output\n calculation-artifact download one exact --artifact-path from --package-id; requires --output\n artifact-download download one release ZIP by --artifact-id; requires --output\n\nOptions:\n --input <file> JSON command or upload request\n --output <path> Durable JSON receipt/projection or downloaded bytes\n --release-run-id <uuid> Release run for status\n --package-id <uuid> LCIA result package for Calculation Bundle reads\n --artifact-id <uuid> Published release artifact to download\n --artifact-path <path> Exact path from a Calculation Bundle manifest\n --force Replace an existing output file\n --dry-run Validate and print the masked planned request without network writes\n --json Print the stable compact JSON report; otherwise print Summary and Next\n --api-key <key> Override TIANGONG_LCA_API_KEY; environment use is preferred\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --timeout-ms <n> Request timeout in milliseconds (default 60000)\n -h, --help\n\nRequired environment:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nAuthorization and safety:\n The User API key is exchanged for a user session. Database RPCs then check that the live account\n has data_product_manager. The service-role key never enters this CLI. Large bundle projections,\n ZIPs, and chunks are written to files and verified against exact byte size and SHA-256.\n\nExamples:\n tiangong-lca release prepare --input ./release-prepare.json --json\n tiangong-lca release upload --input ./release-upload.json --output ./upload-receipt.json\n tiangong-lca release calculation-bundle --package-id 11111111-1111-4111-8111-111111111111 --output ./calculation-bundle.json\n tiangong-lca release calculation-artifact --package-id 11111111-1111-4111-8111-111111111111 --artifact-path chunks/lci-00000.jsonl.gz --output ./lci-00000.jsonl.gz\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 Import supported external LCA packages through the unified Rust tidas binary\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 source upload-attachments Upload source referenceToDigitalFile binaries to storage and rewrite their @uri\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 maintenance plan Build an immutable, RLS-visible row-level maintenance plan\n maintenance apply Execute an explicitly approved maintenance plan through current-user RLS\n maintenance freeze-protected Read and freeze one exact production owner-draft plan without admitting or mutating it\n maintenance seal-protected-approval Record byte-exact human approval entirely offline\n maintenance run-protected Run or inspect one sealed, one-shot production maintenance execution\n maintenance verify Read back affected rows and references against the immutable plan\n maintenance flow-identity Dedicated Step 3 capture/plan/freeze/approval/serial-run/verify workflow\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 merge-support-aliases --out-dir ./dataset-maintenance --help\n tiangong-lca dataset maintenance freeze-protected --help\n tiangong-lca dataset maintenance seal-protected-approval --help\n tiangong-lca dataset maintenance run-protected --help\n tiangong-lca dataset maintenance flow-identity --help\n`.trim();\n}\n\nfunction renderDatasetMaintenanceHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance <clear-account|plan|apply|freeze-protected|seal-protected-approval|run-protected|verify|flow-identity> [options]\n\nActions:\n clear-account Dry-run or delete current authenticated account-owned lifecyclemodels, processes, flows, sources, and contacts.\n plan Build an immutable maintenance plan from a scope manifest, visible remote snapshot, dependency impact report, and intended operation.\n apply Execute or durably admit an ordinary approved plan through current-user RLS and platform dataset command paths.\n freeze-protected Re-read the exact production owner-draft census/support/50 derivatives and generate an unapproved freeze request.\n seal-protected-approval Record a byte-exact human response into an approval artifact with no authentication or network access.\n run-protected Run or inspect one sealed production execution with one-shot admission and terminal derivative proof.\n verify Re-fetch rows, references, or derivative request state and report passed, pending, or failed independently of apply.\n flow-identity Run the dedicated Step 3 capture/plan/freeze/seal-approval/serial-run/independent-verify workflow.\n\nSafety:\n plan, verify, and freeze-protected are read-only; seal-protected-approval is local-only.\n apply is commit-only and requires --commit, the exact plan SHA-256 via --approve-plan, and the current account email via --confirm.\n A sealed production merge-support-aliases execution must use run-protected; apply is not its fallback.\n freeze-protected is production-only and never calls preflight, gate, admission, execution, or mutation RPCs.\n seal-protected-approval only records the exact human-approved bytes; it never authenticates, connects, or submits execution.\n run-protected is production-only: authenticated owner context plus server-side actor/user_id/state_code=0 and exact-plan closure fences protect writes; RLS remains a defense on public and independent-read surfaces. It never falls back to dev, a legacy alias RPC, or a second admission POST.\n flow-identity never reuses the Step 2 runner. Process writes are strictly ordinal and ambiguous responses permit read-only recovery, never automatic process replay.\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 run-protected uses a separate immutable protected-execution seal, submission marker, append-only status ledger, and terminal report.\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 repair-references --out-dir ./dataset-maintenance\n tiangong-lca dataset maintenance plan --scope ./derivative-rebuild-scope.json --operation rebuild-derivatives --out-dir ./derivative-rebuild\n tiangong-lca dataset maintenance apply --plan ./dataset-maintenance/maintenance-plan.json --commit --approve-plan <sha256> --confirm user@example.com\n tiangong-lca dataset maintenance freeze-protected --plan ./maintenance-plan.json --toolchain-evidence ./toolchain.json --expected-project-ref <production-ref> --confirm bafudata@126.com --out-dir ./protected-freeze\n tiangong-lca dataset maintenance seal-protected-approval --freeze ./protected-freeze/protected-execution-freeze.json --approval-request ./protected-freeze/protected-approval-request.json --human-approval ./human-approval.txt --approve-freeze-file <sha256> --approve-request <sha256> --approve-text <sha256> --confirm bafudata@126.com --approved-at <iso> --out-dir ./protected-approval\n tiangong-lca dataset maintenance run-protected --plan ./maintenance-plan.json --freeze ./protected-execution-seal.json --approval ./protected-approval.json --out-dir ./protected-run --status-only\n tiangong-lca dataset maintenance verify --plan ./dataset-maintenance/maintenance-plan.json --out-dir ./dataset-maintenance/verify\n tiangong-lca dataset maintenance flow-identity --help\n`.trim();\n}\n\nfunction renderDatasetMaintenanceFlowIdentityHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance flow-identity <capture|plan|freeze|seal-approval|run|freeze-recovery|seal-recovery-approval|run-recovery|verify> [options]\n\nActions:\n capture Authenticated production census and one database attestation; performs zero scope/preflight/rewrite/finalize calls.\n plan Build immutable Step 3 reference-only process templates from an approved v3 review ledger and fresh post-Step2/post-#29 live capture.\n freeze Offline-bind one production plan/toolchain/receipt and generate this execution's byte-exact approval request.\n seal-approval Offline-record byte-exact human approval; performs zero authentication, network, or database calls.\n run Create/read one guarded scope, serially submit only its durable next ordinal, then wait read-only for derivative readiness before at most one finalize POST. Ambiguous responses are never retried in the same invocation.\n freeze-recovery Authenticated read-only scope snapshot that freezes a new exact continuation approval after the prior in-memory permit was lost.\n seal-recovery-approval Offline-record byte-exact human approval for only that frozen durable-scope baseline.\n run-recovery Consume that recovery approval once, obtain a fresh memory-only rotating permit, and continue the same durable scope.\n verify Independently re-read the terminal scope, all 305 source rows, public/support rows, exact affected processes, and the complete owner-draft process reference closure.\n\nPlan:\n --policy <file> --review-ledger <file> --live-capture <file> --out-dir <dir>\n\nCapture:\n --policy <file> --review-ledger <file> --prerequisites <file> --toolchain-evidence <file>\n --request-id <uuid> --operation-id <value> --expected-project-ref <ref> --confirm <email>\n --sdk-version <value> --out-dir <dir>\n [--page-size <n>] [--read-concurrency <n>] [--timeout-ms <n>]\n\nFreeze:\n --plan <file> --toolchain-evidence <file> --approved-at <iso> --expected-project-ref <ref> --confirm <email> --out-dir <dir>\n\nSeal approval:\n --plan <file> --freeze <file> --approval-request <file> --human-approval <file>\n --approve-freeze-file <sha256> --approve-request <sha256> --approve-text <sha256>\n --confirm <email> --approved-at <iso> --out-dir <dir>\n\nRun:\n --plan <file> --freeze <file> --approval <file> --out-dir <dir>\n (--commit --approve-execution <sha256> --confirm <email> | --status-only)\n [--wait-seconds <n>] [--poll-ms <n>] [--timeout-ms <n>]\n\nFreeze recovery:\n --plan <file> --freeze <original-file> --approval <original-file> --run-dir <prior-run-dir>\n --toolchain-evidence <file> --approved-at <iso> --recovery-reason <reason>\n --expected-project-ref <ref> --confirm <email> --out-dir <dir> [--timeout-ms <n>]\n\nSeal recovery approval:\n --recovery-freeze <file> --approval-request <file> --human-approval <file>\n --approve-freeze-file <sha256> --approve-request <sha256> --approve-text <sha256>\n --confirm <email> --approved-at <iso> --out-dir <dir>\n\nRun recovery:\n --plan <file> --freeze <original-file> --approval <original-file> --run-dir <prior-run-dir>\n --recovery-freeze <file> --recovery-approval <file> --out-dir <dir>\n --commit --approve-execution <recovery-identity-sha256> --confirm <email>\n [--wait-seconds <n>] [--poll-ms <n>] [--timeout-ms <n>]\n\nVerify:\n --plan <file> --freeze <file> --approval <file> --run-dir <dir> --out-dir <dir>\n [--page-size <n>] [--timeout-ms <n>]\n\nDerivative failure boundary:\n A failed/stale derivative will never retry a process. This command stops. Any derivative-only compensation requires a separate plan, new freeze, and new exact human approval.\n\nCommon:\n --json\n -h, --help\n`.trim();\n}\n\nfunction renderDatasetMaintenancePlanHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance plan --scope <file> --operation <operation> --out-dir <dir> [options]\n\nOperations:\n delete | retire | redo-import | repair-references | merge-support-aliases | rebuild-derivatives\n\nOptions:\n --scope <file> Maintenance scope manifest\n --operation <value> Intended row-level maintenance operation\n --out-dir <dir> Artifact directory\n --page-size <n> Requested snapshot page size, 1-5000 (default: 1000); server caps are followed using exact counts\n --timeout-ms <n> Request timeout in milliseconds\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir include the immutable maintenance-plan.json, visible snapshot,\nprotected-row ledger, reference-impact report, and dry-run report. rebuild-derivatives additionally\nfreezes one action-scoped database snapshot without expanding the account scan with vector data.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceApplyHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance apply --plan <file> --commit --approve-plan <sha256> --confirm <email> [options]\n\nBehavior:\n Commit-only. The command rejects dry-run mode, a missing --commit flag, a plan hash mismatch,\n or a confirmation email that does not match the current authenticated account.\n For rebuild-derivatives, success means guarded admission is queued; it never means derivatives completed.\n Sealed production merge-support-aliases executions must use run-protected; this command is not a fallback.\n\nOptions:\n --plan <file> Immutable maintenance-plan.json\n --commit Execute the approved plan\n --approve-plan <sha256> Exact SHA-256 recorded for the plan\n --confirm <email> Current authenticated account email\n --timeout-ms <n> Request timeout in milliseconds\n --max-parallel <1-8> Opt into bounded flow delete-only execution with durable dispatch ledger\n --global-inbound-proof <file> Absolute path to a fresh all-process SELECT-only zero-inbound proof\n --approve-global-inbound-proof <sha256> Exact SHA-256 of --global-inbound-proof; requires --max-parallel\n --json Print compact JSON\n -h, --help\n\nOutputs include approval-record.json and commit-report.json alongside an append-only action or admission ledger.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceFreezeProtectedHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance freeze-protected --plan <file> --toolchain-evidence <file> --expected-project-ref <ref> --confirm <email> --out-dir <dir> [options]\n\nBehavior:\n Authenticates directly to the explicitly confirmed production project and re-reads the complete\n owner-draft account census, six support snapshots, projected reference closure, and the stable\n 23-flow + 27-process derivative snapshot set. It writes a canonical protected freeze and an\n unapproved byte-exact human approval request. It never emits an approval artifact.\n\nRequired:\n --plan <file> Ready owner-draft merge-support-aliases maintenance plan\n --toolchain-evidence <file> Canonical released DB/CLI/root-integration evidence\n --expected-project-ref <ref> Explicit production Supabase project ref\n --confirm <email> Exact authenticated owner email\n --out-dir <dir> New private immutable artifact directory\n\nOptions:\n --page-size <n> Complete account scan page size, 1-5000\n --timeout-ms <n> Positive authentication/read timeout in milliseconds\n --json Print compact JSON\n -h, --help\n\nRemote safety:\n This command uses only authenticated table reads and cmd_dataset_derivative_rebuild_snapshot.\n Preflight, gate, admission, execution, save-draft, delete, state change, and all mutation calls are zero.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceSealProtectedApprovalHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance seal-protected-approval --freeze <file> --approval-request <file> --human-approval <file> --approve-freeze-file <sha256> --approve-request <sha256> --approve-text <sha256> --confirm <email> --approved-at <iso> --out-dir <dir> [options]\n\nBehavior:\n Records a human-provided approval text only when every UTF-8 byte, freeze-file hash, request hash,\n text hash, account, and canonical timestamp matches the unapproved request. It writes the approval\n artifact needed by a later, separate run-protected command; it does not submit that execution.\n\nRequired:\n --freeze <file> Canonical protected freeze generated by freeze-protected\n --approval-request <file> Canonical unapproved approval request JSON\n --human-approval <file> Human-returned text, read byte-for-byte without trimming\n --approve-freeze-file <sha256> Explicit SHA-256 of the exact freeze file bytes\n --approve-request <sha256> Explicit request identity SHA-256\n --approve-text <sha256> Explicit byte-exact approval text SHA-256\n --confirm <email> Exact frozen account email\n --approved-at <iso> Exact approval-authority timestamp already embedded in the request\n --out-dir <dir> New private immutable artifact directory\n\nOptions:\n --json Print compact JSON\n -h, --help\n\nOffline safety:\n This command receives no environment or HTTP client and performs zero authentication, network,\n database, preflight, gate, admission, execution, or mutation calls.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceRunProtectedHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance run-protected --plan <file> --freeze <file> --approval <file> --out-dir <dir> --commit --approve-execution <sha256> --confirm <email> [options]\n tiangong-lca dataset maintenance run-protected --plan <file> --freeze <file> --approval <file> --out-dir <dir> --status-only [options]\n\nBehavior:\n Runs one sealed, server-dispatched production maintenance execution fenced to the authenticated actor's\n exact owner-draft target set, or reads durable status through an auth.uid-, actor-, and plan-fenced RPC\n without admitting work; only the independent table readback uses RLS.\n Commit and status-only modes are mutually exclusive. The commit path validates the full private\n before-state, accepts only server-derived gates within the 180-second preflight window, writes an immutable\n local submission marker, and sends at most one admission POST. After a marker or ambiguous response,\n use --status-only; the command never retries admission or falls back to dev or the legacy alias RPC.\n\nRequired in both modes:\n --plan <file> Immutable maintenance-plan.json\n --freeze <file> Protected production execution seal/freeze artifact\n --approval <file> Exact human-approval binding artifact\n --out-dir <dir> Private protected-run artifact directory\n\nCommit-only guards:\n --commit Submit the sealed execution exactly once\n --approve-execution <sha256> Exact approved execution identity SHA-256\n --confirm <email> Current authenticated account email\n\nRecovery:\n --status-only Read/poll and independently verify the sealed request; never preflight or admit\n\nOptions:\n --wait-seconds <n> Maximum terminal-status wait in seconds; 0 performs one status read\n --poll-ms <n> Positive polling interval in milliseconds; default 10000\n --page-size <n> Requested RLS readback page size, 1-5000\n --timeout-ms <n> Positive request timeout in milliseconds\n --json Print compact JSON\n -h, --help\n\nOnly a terminal passed proof exits successfully. pending, failed, and indeterminate return non-zero.\n`.trim();\n}\n\nfunction renderDatasetMaintenanceVerifyHelp(): string {\n return `Usage:\n tiangong-lca dataset maintenance verify --plan <file> [options]\n\nOptions:\n --plan <file> Immutable maintenance-plan.json\n --out-dir <dir> Optional verification artifact directory\n --page-size <n> Requested readback page size, 1-5000 (default: 1000); server caps are followed using exact counts\n --timeout-ms <n> Request timeout in milliseconds\n --json Print compact JSON\n -h, --help\n\nOutputs include readback-verify-report.json. rebuild-derivatives reports pending, passed, or failed;\npending and failed both return a non-zero exit status.\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> Requested snapshot page size, 1-5000 (default: 1000); server caps are followed using exact counts\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\nEvery snapshot/readback must prove complete exact-count pagination before an artifact or delete is accepted.\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 atomically published by tidas\n --from-format <format> auto, ecospold1, ecospold2, openlca-jsonld, openlca-process-xlsx, simapro-csv, ilcd\n --target <target> tidas | ilcd | both (default: tidas)\n --report <file> Persist the native operation report atomically instead of using tidas stdout\n --write-mapping Write deterministic mapping.csv.gz\n --no-process-bundles Disable per-process dependency bundle generation\n --fail-on-warning Return non-zero when converter warnings are present\n --max-entry-mib <n> Maximum source-entry size in MiB (tidas default: 128)\n --memory-budget-mib <n> Maximum accounted in-flight memory in MiB (tidas default: 512)\n --queue-capacity <n> Maximum items in each bounded queue (tidas default: 256)\n --tidas-bin <path> Rust tidas executable (default: TIDAS_BIN, then tidas on PATH)\n --tidas-config <path> Explicit tidas config file (otherwise TIDAS_CONFIG is honored)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --output-dir:\n - import-report.json and issues.jsonl\n - tidas/ when target includes TIDAS\n - ilcd/ when target includes ILCD\n - process-bundles/ by default\n - mapping.csv.gz when --write-mapping is used\n\nRuntime contract:\n - Linux x86_64/ARM64, macOS Intel/Apple Silicon, and Windows x86_64 are supported.\n - Windows ARM64 is unsupported.\n - The binary must report tidas.operation-report.v1 and a stable 0.2.x version.\n - Import publication, cancellation cleanup, and domain validation remain owned by Rust tidas.\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 --execution-contract <file>\n Execute a content-bound ordered owner-draft batch with append-only attempt/readback evidence (requires --commit)\n --max-parallel <1-8>\n Keep the dependency prefix serial, then run only the target-unique suffix with this concurrency (default: 1)\n --allow-account-local-support\n Explicitly permit account-local Unit Group / Flow Property rows in the execution contract\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 - $XDG_STATE_HOME/tiangong-lca-cli/execution-ledgers/dataset-save-draft/v1/<owner-scope-sha256>/<action-identity-sha256>.events.jsonl (execution-contract mode; platform state directory fallback applies)\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 renderDatasetSourceUploadAttachmentsHelp(): string {\n return `Usage:\n tiangong-lca dataset source upload-attachments --input <file|dir> --external-docs-dir <dir> [options]\n\nUploads the binary documents referenced by source datasets via referenceToDigitalFile\n(e.g. \"../external_docs/pef_method.pdf\") to a Supabase Storage bucket using the current\nauthenticated account session, then rewrites each source's referenceToDigitalFile @uri to\n\"../<bucket>/<key>\". Plain http(s) URIs are left untouched; backslash paths and filename\ncase differences are normalized; each physical file is uploaded once (deduped).\n\nOptions:\n --input <file|dir> Source TIDAS rows (.jsonl, .json, or a directory of *.json)\n --external-docs-dir <dir> Directory holding the referenced binaries\n --bucket <name> Storage bucket (default: external_docs)\n --out-dir <dir> Artifact directory\n --commit Upload binaries (default: dry-run plan only)\n --dry-run Plan without uploading (default)\n --verify After upload, create a signed URL to confirm each object resolves\n --timeout-ms <n> Per-request timeout (default: 30000)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - attachments-report.json\n - rewritten-sources.jsonl\n`.trim();\n}\n\nfunction renderDatasetValidateHelp(): string {\n return `Usage:\n tiangong-lca dataset validate --input <file> [options]\n\nOptions:\n --input <file> Local rows as JSON or JSONL; objects with rows[] are also accepted\n --type <type> auto | 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 parseAuthIdentityReceiptFlags(args: string[]): {\n help: boolean;\n json: boolean;\n expectedProjectRef: string | null;\n expectedUserId: string | null;\n timeoutMs: number;\n} {\n let parsed: ReturnType<typeof parseArgs>;\n try {\n parsed = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n tokens: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'expected-project-ref': { type: 'string' },\n 'expected-user-id': { 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 tokens = parsed.tokens!;\n for (const optionName of ['expected-project-ref', 'expected-user-id', 'timeout-ms'] as const) {\n const occurrences = tokens.filter(\n (entry) => entry.kind === 'option' && entry.name === optionName,\n ).length;\n if (occurrences > 1) {\n throw new CliError(`Option --${optionName} may be provided only once.`, {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n }\n\n const timeoutText =\n typeof parsed.values['timeout-ms'] === 'string' ? parsed.values['timeout-ms'] : undefined;\n const timeoutMs = timeoutText === undefined ? 10_000 : Number(timeoutText);\n if (!Number.isInteger(timeoutMs) || timeoutMs <= 0 || timeoutMs > AUTH_IDENTITY_MAX_TIMEOUT_MS) {\n throw new CliError(\n `Expected --timeout-ms to be an integer between 1 and ${AUTH_IDENTITY_MAX_TIMEOUT_MS}.`,\n {\n code: 'INVALID_TIMEOUT',\n exitCode: 2,\n },\n );\n }\n\n return {\n help: Boolean(parsed.values.help),\n json: Boolean(parsed.values.json),\n expectedProjectRef:\n typeof parsed.values['expected-project-ref'] === 'string'\n ? parsed.values['expected-project-ref']\n : null,\n expectedUserId:\n typeof parsed.values['expected-user-id'] === 'string'\n ? parsed.values['expected-user-id']\n : null,\n timeoutMs,\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 parseLcaReleaseFlags(args: string[]): {\n help: boolean;\n json: boolean;\n dryRun: boolean;\n force: boolean;\n inputPath: string | null;\n outputPath: string | null;\n releaseRunId: string | null;\n packageId: string | null;\n artifactId: string | null;\n artifactPath: string | null;\n apiKey: string | null;\n apiBaseUrl: 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 force: { type: 'boolean' },\n input: { type: 'string' },\n output: { type: 'string' },\n 'release-run-id': { type: 'string' },\n 'package-id': { type: 'string' },\n 'artifact-id': { type: 'string' },\n 'artifact-path': { type: 'string' },\n 'api-key': { type: 'string' },\n 'base-url': { 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 const optionalString = (value: unknown): string | null =>\n typeof value === 'string' ? value : null;\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n dryRun: Boolean(values['dry-run']),\n force: Boolean(values.force),\n inputPath: optionalString(values.input),\n outputPath: optionalString(values.output),\n releaseRunId: optionalString(values['release-run-id']),\n packageId: optionalString(values['package-id']),\n artifactId: optionalString(values['artifact-id']),\n artifactPath: optionalString(values['artifact-path']),\n apiKey: optionalString(values['api-key']),\n apiBaseUrl: optionalString(values['base-url']),\n timeoutMs,\n };\n}\n\nfunction requireLcaReleaseAction(value: string): LcaReleaseAction {\n if (!LCA_RELEASE_ACTIONS.includes(value as LcaReleaseAction)) {\n throw new CliError(`Unsupported release action: ${value}`, {\n code: 'LCA_RELEASE_ACTION_UNSUPPORTED',\n exitCode: 2,\n details: { actions: LCA_RELEASE_ACTIONS },\n });\n }\n return value as LcaReleaseAction;\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 executionContractPath: string | null;\n maxParallel: 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 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 'execution-contract': { type: 'string' },\n 'max-parallel': { 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_DATASET_SAVE_DRAFT_MODE',\n exitCode: 2,\n });\n }\n\n const maxParallelValue = values['max-parallel'];\n const maxParallel =\n typeof maxParallelValue === 'string' && /^\\d+$/u.test(maxParallelValue)\n ? Number.parseInt(maxParallelValue, 10)\n : maxParallelValue === undefined\n ? 1\n : Number.NaN;\n if (!Number.isInteger(maxParallel) || maxParallel < 1 || maxParallel > 8) {\n throw new CliError('--max-parallel must be an integer from 1 to 8.', {\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 commit: Boolean(values.commit),\n allowReferenceOnlySupport: Boolean(values['allow-account-local-support']),\n executionContractPath:\n typeof values['execution-contract'] === 'string' ? values['execution-contract'] : null,\n maxParallel,\n };\n}\n\nfunction parseDatasetSourceUploadAttachmentsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n externalDocsDir: string;\n bucket: string | null;\n outDir: string | null;\n commit: boolean;\n verify: boolean;\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 'external-docs-dir': { type: 'string' },\n bucket: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n verify: { type: 'boolean' },\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 if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_DATASET_SOURCE_UPLOAD_MODE',\n exitCode: 2,\n });\n }\n\n let timeoutMs: number | undefined;\n if (typeof values['timeout-ms'] === 'string') {\n const parsed = Number.parseInt(values['timeout-ms'], 10);\n if (!Number.isInteger(parsed)) {\n throw new CliError('--timeout-ms must be an integer.', {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n timeoutMs = parsed;\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n externalDocsDir:\n typeof values['external-docs-dir'] === 'string' ? values['external-docs-dir'] : '',\n bucket: typeof values.bucket === 'string' ? values.bucket : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commit: Boolean(values.commit),\n verify: Boolean(values.verify),\n timeoutMs,\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 writeMapping: boolean;\n processBundles: boolean | undefined;\n failOnWarning: boolean;\n maxEntryMib: number | undefined;\n memoryBudgetMib: number | undefined;\n queueCapacity: number | undefined;\n tidasBin: string | undefined;\n tidasConfig: 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 'write-mapping': { type: 'boolean' },\n 'no-process-bundles': { type: 'boolean' },\n 'fail-on-warning': { type: 'boolean' },\n 'max-entry-mib': { type: 'string' },\n 'memory-budget-mib': { type: 'string' },\n 'queue-capacity': { type: 'string' },\n 'tidas-bin': { type: 'string' },\n 'tidas-config': { 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 maxEntryMib = parsePositiveIntegerFlag(values['max-entry-mib'], '--max-entry-mib');\n const memoryBudgetMib = parsePositiveIntegerFlag(\n values['memory-budget-mib'],\n '--memory-budget-mib',\n );\n const queueCapacity = parsePositiveIntegerFlag(values['queue-capacity'], '--queue-capacity');\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 writeMapping: Boolean(values['write-mapping']),\n processBundles: values['no-process-bundles'] ? false : undefined,\n failOnWarning: Boolean(values['fail-on-warning']),\n maxEntryMib,\n memoryBudgetMib,\n queueCapacity,\n tidasBin: typeof values['tidas-bin'] === 'string' ? values['tidas-bin'] : undefined,\n tidasConfig: typeof values['tidas-config'] === 'string' ? values['tidas-config'] : undefined,\n };\n}\n\nfunction parsePositiveIntegerFlag(value: unknown, flag: string): number | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number(value);\n if (!Number.isSafeInteger(parsed) || parsed <= 0) {\n throw new CliError(`${flag} must be a positive integer.`, {\n code: 'DATASET_IMPORT_LCA_RUNTIME_BOUND_INVALID',\n exitCode: 2,\n });\n }\n return parsed;\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 parseDatasetMaintenancePositiveInteger(\n value: unknown,\n flagName: '--page-size' | '--poll-ms' | '--read-concurrency' | '--timeout-ms',\n): number | undefined {\n if (typeof value !== 'string') {\n return undefined;\n }\n if (!/^\\d+$/u.test(value.trim()) || Number.parseInt(value.trim(), 10) <= 0) {\n throw new CliError(`${flagName} must be a positive integer.`, {\n code: 'DATASET_MAINTENANCE_INTEGER_INVALID',\n exitCode: 2,\n details: { flag: flagName, value },\n });\n }\n return Number.parseInt(value.trim(), 10);\n}\n\nfunction parseDatasetMaintenanceNonNegativeInteger(\n value: unknown,\n flagName: '--wait-seconds',\n): 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 non-negative integer.`, {\n code: 'DATASET_MAINTENANCE_INTEGER_INVALID',\n exitCode: 2,\n details: { flag: flagName, value },\n });\n }\n return Number.parseInt(value.trim(), 10);\n}\n\nfunction parseDatasetMaintenancePlanFlags(args: string[]): {\n help: boolean;\n json: boolean;\n scopePath: string;\n operation: DatasetMaintenanceOperation | null;\n outDir: string;\n pageSize: number | 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 scope: { type: 'string' },\n operation: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'page-size': { 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 rawOperation = typeof values.operation === 'string' ? values.operation : null;\n if (\n rawOperation !== null &&\n ![\n 'delete',\n 'retire',\n 'redo-import',\n 'repair-references',\n 'merge-support-aliases',\n 'rebuild-derivatives',\n ].includes(rawOperation)\n ) {\n throw new CliError(\n \"--operation must be 'delete', 'retire', 'redo-import', 'repair-references', 'merge-support-aliases', or 'rebuild-derivatives'.\",\n {\n code: 'DATASET_MAINTENANCE_OPERATION_INVALID',\n exitCode: 2,\n details: rawOperation,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n scopePath: typeof values.scope === 'string' ? values.scope : '',\n operation: rawOperation as DatasetMaintenanceOperation | null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n };\n}\n\nfunction parseDatasetMaintenanceApplyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n planPath: string;\n commit: boolean;\n approvePlan: string;\n confirm: string;\n timeoutMs: number | undefined;\n dryRun: boolean;\n maxParallel: number | undefined;\n globalInboundProofPath: string;\n approveGlobalInboundProof: 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 plan: { type: 'string' },\n commit: { type: 'boolean' },\n 'approve-plan': { type: 'string' },\n confirm: { type: 'string' },\n 'timeout-ms': { type: 'string' },\n 'dry-run': { type: 'boolean' },\n 'max-parallel': { type: 'string' },\n 'global-inbound-proof': { type: 'string' },\n 'approve-global-inbound-proof': { 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 maxParallelValue = values['max-parallel'];\n const maxParallel =\n typeof maxParallelValue === 'string' && /^\\d+$/u.test(maxParallelValue)\n ? Number.parseInt(maxParallelValue, 10)\n : maxParallelValue === undefined\n ? undefined\n : Number.NaN;\n if (\n maxParallel !== undefined &&\n (!Number.isInteger(maxParallel) || maxParallel < 1 || maxParallel > 8)\n ) {\n throw new CliError('--max-parallel must be an integer from 1 to 8.', {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n const globalInboundProofPath =\n typeof values['global-inbound-proof'] === 'string' ? values['global-inbound-proof'] : '';\n const approveGlobalInboundProof =\n typeof values['approve-global-inbound-proof'] === 'string'\n ? values['approve-global-inbound-proof']\n : '';\n if (Boolean(globalInboundProofPath) !== Boolean(approveGlobalInboundProof)) {\n throw new CliError(\n '--global-inbound-proof and --approve-global-inbound-proof must be provided together.',\n { code: 'INVALID_ARGS', exitCode: 2 },\n );\n }\n if (globalInboundProofPath && maxParallel === undefined) {\n throw new CliError('Global inbound proof flags require --max-parallel.', {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n if (approveGlobalInboundProof && !/^[0-9a-f]{64}$/u.test(approveGlobalInboundProof)) {\n throw new CliError('--approve-global-inbound-proof must be a lowercase SHA-256.', {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n planPath: typeof values.plan === 'string' ? values.plan : '',\n commit: Boolean(values.commit),\n approvePlan: typeof values['approve-plan'] === 'string' ? values['approve-plan'] : '',\n confirm: typeof values.confirm === 'string' ? values.confirm : '',\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n dryRun: Boolean(values['dry-run']),\n maxParallel,\n globalInboundProofPath,\n approveGlobalInboundProof,\n };\n}\n\nfunction parseDatasetMaintenanceFreezeProtectedFlags(args: string[]): {\n help: boolean;\n json: boolean;\n planPath: string;\n toolchainEvidencePath: string;\n outDir: string;\n expectedProjectRef: string;\n confirm: string;\n pageSize: number | 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 plan: { type: 'string' },\n 'toolchain-evidence': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'expected-project-ref': { type: 'string' },\n confirm: { type: 'string' },\n 'page-size': { 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 return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n planPath: typeof values.plan === 'string' ? values.plan : '',\n toolchainEvidencePath:\n typeof values['toolchain-evidence'] === 'string' ? values['toolchain-evidence'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n expectedProjectRef:\n typeof values['expected-project-ref'] === 'string' ? values['expected-project-ref'] : '',\n confirm: typeof values.confirm === 'string' ? values.confirm : '',\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n };\n}\n\nfunction parseDatasetMaintenanceSealProtectedApprovalFlags(args: string[]): {\n help: boolean;\n json: boolean;\n freezePath: string;\n approvalRequestPath: string;\n humanApprovalPath: string;\n outDir: string;\n approveFreezeFile: string;\n approveRequest: string;\n approveText: string;\n confirm: string;\n approvedAtUtc: 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 freeze: { type: 'string' },\n 'approval-request': { type: 'string' },\n 'human-approval': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'approve-freeze-file': { type: 'string' },\n 'approve-request': { type: 'string' },\n 'approve-text': { type: 'string' },\n confirm: { type: 'string' },\n 'approved-at': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n freezePath: typeof values.freeze === 'string' ? values.freeze : '',\n approvalRequestPath:\n typeof values['approval-request'] === 'string' ? values['approval-request'] : '',\n humanApprovalPath: typeof values['human-approval'] === 'string' ? values['human-approval'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n approveFreezeFile:\n typeof values['approve-freeze-file'] === 'string' ? values['approve-freeze-file'] : '',\n approveRequest: typeof values['approve-request'] === 'string' ? values['approve-request'] : '',\n approveText: typeof values['approve-text'] === 'string' ? values['approve-text'] : '',\n confirm: typeof values.confirm === 'string' ? values.confirm : '',\n approvedAtUtc: typeof values['approved-at'] === 'string' ? values['approved-at'] : '',\n };\n}\n\nfunction parseDatasetMaintenanceProtectedFlags(args: string[]): {\n help: boolean;\n json: boolean;\n planPath: string;\n freezePath: string;\n approvalPath: string;\n outDir: string;\n commit: boolean;\n statusOnly: boolean;\n approveExecution: string | undefined;\n confirm: string | undefined;\n waitSeconds: number | undefined;\n pollMs: number | undefined;\n pageSize: number | 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 plan: { type: 'string' },\n freeze: { type: 'string' },\n approval: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'status-only': { type: 'boolean' },\n 'approve-execution': { type: 'string' },\n confirm: { type: 'string' },\n 'wait-seconds': { type: 'string' },\n 'poll-ms': { type: 'string' },\n 'page-size': { 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 return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n planPath: typeof values.plan === 'string' ? values.plan : '',\n freezePath: typeof values.freeze === 'string' ? values.freeze : '',\n approvalPath: typeof values.approval === 'string' ? values.approval : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n statusOnly: Boolean(values['status-only']),\n approveExecution:\n typeof values['approve-execution'] === 'string' ? values['approve-execution'] : undefined,\n confirm: typeof values.confirm === 'string' ? values.confirm : undefined,\n waitSeconds: parseDatasetMaintenanceNonNegativeInteger(\n values['wait-seconds'],\n '--wait-seconds',\n ),\n pollMs: parseDatasetMaintenancePositiveInteger(values['poll-ms'], '--poll-ms'),\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n };\n}\n\nfunction parseDatasetMaintenanceFlowIdentityFlags(args: string[]) {\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 policy: { type: 'string' },\n 'review-ledger': { type: 'string' },\n prerequisites: { type: 'string' },\n 'live-capture': { type: 'string' },\n plan: { type: 'string' },\n 'toolchain-evidence': { type: 'string' },\n 'approval-text': { type: 'string' },\n 'expected-project-ref': { type: 'string' },\n 'request-id': { type: 'string' },\n 'operation-id': { type: 'string' },\n 'sdk-version': { type: 'string' },\n freeze: { type: 'string' },\n 'approval-request': { type: 'string' },\n 'human-approval': { type: 'string' },\n approval: { type: 'string' },\n 'recovery-freeze': { type: 'string' },\n 'recovery-approval': { type: 'string' },\n 'recovery-reason': { type: 'string' },\n 'approve-freeze-file': { type: 'string' },\n 'approve-request': { type: 'string' },\n 'approve-text': { type: 'string' },\n 'approve-execution': { type: 'string' },\n confirm: { type: 'string' },\n 'approved-at': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'run-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'status-only': { type: 'boolean' },\n 'wait-seconds': { type: 'string' },\n 'poll-ms': { type: 'string' },\n 'page-size': { type: 'string' },\n 'read-concurrency': { type: 'string' },\n 'timeout-ms': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), { code: 'INVALID_ARGS', exitCode: 2 });\n }\n const valueRecord = values as Record<string, unknown>;\n const string = (name: string): string =>\n typeof valueRecord[name] === 'string' ? String(valueRecord[name]) : '';\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n policyPath: string('policy'),\n reviewLedgerPath: string('review-ledger'),\n prerequisitesPath: string('prerequisites'),\n liveCapturePath: string('live-capture'),\n planPath: string('plan'),\n toolchainEvidencePath: string('toolchain-evidence'),\n approvalTextPath: string('approval-text'),\n expectedProjectRef: string('expected-project-ref'),\n requestId: string('request-id'),\n operationId: string('operation-id'),\n sdkVersion: string('sdk-version'),\n freezePath: string('freeze'),\n approvalRequestPath: string('approval-request'),\n humanApprovalPath: string('human-approval'),\n approvalPath: string('approval'),\n recoveryFreezePath: string('recovery-freeze'),\n recoveryApprovalPath: string('recovery-approval'),\n recoveryReason: string('recovery-reason'),\n approveFreezeFile: string('approve-freeze-file'),\n approveRequest: string('approve-request'),\n approveText: string('approve-text'),\n approveExecution: string('approve-execution'),\n confirm: string('confirm'),\n approvedAtUtc: string('approved-at'),\n outDir: string('out-dir'),\n runDir: string('run-dir'),\n commit: Boolean(values.commit),\n statusOnly: Boolean(values['status-only']),\n waitSeconds: parseDatasetMaintenanceNonNegativeInteger(\n values['wait-seconds'],\n '--wait-seconds',\n ),\n pollMs: parseDatasetMaintenancePositiveInteger(values['poll-ms'], '--poll-ms'),\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n readConcurrency: parseDatasetMaintenancePositiveInteger(\n values['read-concurrency'],\n '--read-concurrency',\n ),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\n };\n}\n\nfunction parseDatasetMaintenanceVerifyFlags(args: string[]): {\n help: boolean;\n json: boolean;\n planPath: string;\n outDir: string | undefined;\n pageSize: number | 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 plan: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'page-size': { 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 return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n planPath: typeof values.plan === 'string' ? values.plan : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : undefined,\n pageSize: parseDatasetMaintenancePositiveInteger(values['page-size'], '--page-size'),\n timeoutMs: parseDatasetMaintenancePositiveInteger(values['timeout-ms'], '--timeout-ms'),\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 authIdentityReceiptImpl = deps.runAuthIdentityReceiptImpl ?? runAuthIdentityReceipt;\n const publishImpl = deps.runPublishImpl ?? runPublish;\n const validationImpl = deps.runValidationImpl ?? runValidation;\n const lcaReleaseImpl = deps.runLcaReleaseImpl ?? runLcaRelease;\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 const datasetMaintenancePlanImpl =\n deps.runDatasetMaintenancePlanImpl ?? runDatasetMaintenancePlan;\n const datasetMaintenanceApplyImpl =\n deps.runDatasetMaintenanceApplyImpl ?? runDatasetMaintenanceApply;\n const datasetMaintenanceProtectedFreezeImpl =\n deps.freezeDatasetMaintenanceProtectedImpl ?? freezeDatasetMaintenanceProtected;\n const datasetMaintenanceProtectedImpl =\n deps.runDatasetMaintenanceProtectedImpl ?? runDatasetMaintenanceProtected;\n const datasetMaintenanceProtectedApprovalSealImpl =\n deps.sealDatasetMaintenanceProtectedApprovalImpl ?? sealDatasetMaintenanceProtectedApproval;\n const datasetMaintenanceVerifyImpl =\n deps.runDatasetMaintenanceVerifyImpl ?? runDatasetMaintenanceVerify;\n const flowIdentityPlanImpl =\n deps.runFlowIdentityPlanFromFilesImpl ?? runFlowIdentityPlanFromFiles;\n const flowIdentityCaptureImpl = deps.captureFlowIdentityImpl ?? captureFlowIdentity;\n const flowIdentityFreezeImpl = deps.freezeFlowIdentityImpl ?? freezeFlowIdentity;\n const flowIdentityApprovalSealImpl =\n deps.sealFlowIdentityApprovalImpl ?? sealFlowIdentityApproval;\n const flowIdentityRecoveryFreezeImpl =\n deps.freezeFlowIdentityRecoveryImpl ?? freezeFlowIdentityRecovery;\n const flowIdentityRecoveryApprovalSealImpl =\n deps.sealFlowIdentityRecoveryApprovalImpl ?? sealFlowIdentityRecoveryApproval;\n const flowIdentityRunImpl = deps.runFlowIdentityImpl ?? runFlowIdentity;\n const flowIdentityVerifyImpl = deps.verifyFlowIdentityImpl ?? verifyFlowIdentity;\n const datasetSourceUploadAttachmentsImpl =\n deps.runDatasetSourceUploadAttachmentsImpl ?? runDatasetSourceUploadAttachments;\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 === 'auth' && !subcommand) {\n if (\n commandArgs.length === 0 ||\n (commandArgs.length === 1 && ['--help', '-h'].includes(commandArgs[0] as string))\n ) {\n return { exitCode: 0, stdout: `${renderAuthHelp()}\\n`, stderr: '' };\n }\n throw new CliError('The auth namespace accepts only -h or --help.', {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (command === 'auth' && subcommand === 'identity-receipt') {\n const authFlags = parseAuthIdentityReceiptFlags(commandArgs);\n if (authFlags.help) {\n return { exitCode: 0, stdout: `${renderAuthIdentityReceiptHelp()}\\n`, stderr: '' };\n }\n const receipt = await authIdentityReceiptImpl({\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n cliVersion: loadCliPackageVersion(import.meta.url),\n expectedProjectRef: authFlags.expectedProjectRef,\n expectedUserId: authFlags.expectedUserId,\n timeoutMs: authFlags.timeoutMs,\n });\n return {\n exitCode: 0,\n stdout: stringifyJson(receipt, authFlags.json),\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 writeMapping: datasetFlags.writeMapping,\n processBundles: datasetFlags.processBundles,\n failOnWarning: datasetFlags.failOnWarning,\n maxEntryMib: datasetFlags.maxEntryMib,\n memoryBudgetMib: datasetFlags.memoryBudgetMib,\n queueCapacity: datasetFlags.queueCapacity,\n tidasBin: datasetFlags.tidasBin,\n tidasConfig: datasetFlags.tidasConfig,\n env: deps.env,\n });\n return {\n exitCode: report.exit_code,\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 === 'source') {\n const action = commandArgs[0] ?? '';\n if (!action || action === '--help' || action === '-h') {\n return {\n exitCode: 0,\n stdout: `${renderDatasetSourceUploadAttachmentsHelp()}\\n`,\n stderr: '',\n };\n }\n if (action !== 'upload-attachments') {\n throw new CliError(\"dataset source action must be 'upload-attachments'.\", {\n code: 'DATASET_SOURCE_ACTION_INVALID',\n exitCode: 2,\n });\n }\n const datasetFlags = parseDatasetSourceUploadAttachmentsFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetSourceUploadAttachmentsHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.inputPath) {\n throw new CliError('dataset source upload-attachments requires --input.', {\n code: 'DATASET_SOURCE_UPLOAD_INPUT_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.externalDocsDir) {\n throw new CliError('dataset source upload-attachments requires --external-docs-dir.', {\n code: 'DATASET_SOURCE_UPLOAD_EXTERNAL_DOCS_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n\n const report = await datasetSourceUploadAttachmentsImpl({\n inputPath: datasetFlags.inputPath,\n externalDocsDir: datasetFlags.externalDocsDir,\n bucket: datasetFlags.bucket,\n outDir: datasetFlags.outDir,\n commit: datasetFlags.commit,\n verify: datasetFlags.verify,\n timeoutMs: datasetFlags.timeoutMs,\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 === '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 executionContractPath: datasetFlags.executionContractPath,\n maxParallel: datasetFlags.maxParallel,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\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 === '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 === 'flow-identity') {\n const flowAction = commandArgs[1] ?? '';\n if (!flowAction || flowAction === '--help' || flowAction === '-h') {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceFlowIdentityHelp()}\\n`,\n stderr: '',\n };\n }\n const datasetFlags = parseDatasetMaintenanceFlowIdentityFlags(commandArgs.slice(2));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceFlowIdentityHelp()}\\n`,\n stderr: '',\n };\n }\n const required = (value: string, flag: string): string => {\n if (!value) {\n throw new CliError(\n `dataset maintenance flow-identity ${flowAction} requires ${flag}.`,\n {\n code: 'DATASET_FLOW_IDENTITY_ARGUMENT_REQUIRED',\n exitCode: 2,\n },\n );\n }\n return value;\n };\n if (flowAction === 'capture') {\n const report = await flowIdentityCaptureImpl({\n policyPath: required(datasetFlags.policyPath, '--policy'),\n reviewLedgerPath: required(datasetFlags.reviewLedgerPath, '--review-ledger'),\n prerequisitesPath: required(datasetFlags.prerequisitesPath, '--prerequisites'),\n toolchainEvidencePath: required(\n datasetFlags.toolchainEvidencePath,\n '--toolchain-evidence',\n ),\n requestId: required(datasetFlags.requestId, '--request-id'),\n operationId: required(datasetFlags.operationId, '--operation-id'),\n expectedProjectRef: required(datasetFlags.expectedProjectRef, '--expected-project-ref'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n cliVersion: loadCliPackageVersion(import.meta.url),\n sdkVersion: required(datasetFlags.sdkVersion, '--sdk-version'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n pageSize: datasetFlags.pageSize,\n readConcurrency: datasetFlags.readConcurrency,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'plan') {\n const plan = await flowIdentityPlanImpl({\n policyPath: required(datasetFlags.policyPath, '--policy'),\n reviewLedgerPath: required(datasetFlags.reviewLedgerPath, '--review-ledger'),\n liveCapturePath: required(datasetFlags.liveCapturePath, '--live-capture'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n });\n return { exitCode: 0, stdout: stringifyJson(plan, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'freeze') {\n const report = await flowIdentityFreezeImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n toolchainEvidencePath: required(\n datasetFlags.toolchainEvidencePath,\n '--toolchain-evidence',\n ),\n approvedAtUtc: required(datasetFlags.approvedAtUtc, '--approved-at'),\n expectedProjectRef: required(datasetFlags.expectedProjectRef, '--expected-project-ref'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n cliVersion: loadCliPackageVersion(import.meta.url),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'seal-approval') {\n const report = await flowIdentityApprovalSealImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalRequestPath: required(datasetFlags.approvalRequestPath, '--approval-request'),\n humanApprovalPath: required(datasetFlags.humanApprovalPath, '--human-approval'),\n approveFreezeFile: required(datasetFlags.approveFreezeFile, '--approve-freeze-file'),\n approveRequest: required(datasetFlags.approveRequest, '--approve-request'),\n approveText: required(datasetFlags.approveText, '--approve-text'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n approvedAtUtc: required(datasetFlags.approvedAtUtc, '--approved-at'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'freeze-recovery') {\n const recoveryReason = required(datasetFlags.recoveryReason, '--recovery-reason');\n if (\n ![\n 'wrapper_exited_without_permit',\n 'process_response_ambiguous',\n 'process_domain_rejected',\n 'finalize_response_ambiguous',\n 'derivatives_became_ready_after_wrapper_exit',\n ].includes(recoveryReason)\n ) {\n throw new CliError('flow-identity recovery reason is not allowed.', {\n code: 'DATASET_FLOW_IDENTITY_RECOVERY_REASON_INVALID',\n exitCode: 2,\n });\n }\n const report = await flowIdentityRecoveryFreezeImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalPath: required(datasetFlags.approvalPath, '--approval'),\n runDir: required(datasetFlags.runDir, '--run-dir'),\n toolchainEvidencePath: required(\n datasetFlags.toolchainEvidencePath,\n '--toolchain-evidence',\n ),\n expectedProjectRef: required(datasetFlags.expectedProjectRef, '--expected-project-ref'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n approvedAtUtc: required(datasetFlags.approvedAtUtc, '--approved-at'),\n recoveryReason: recoveryReason as\n | 'wrapper_exited_without_permit'\n | 'process_response_ambiguous'\n | 'process_domain_rejected'\n | 'finalize_response_ambiguous'\n | 'derivatives_became_ready_after_wrapper_exit',\n cliVersion: loadCliPackageVersion(import.meta.url),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'seal-recovery-approval') {\n const report = flowIdentityRecoveryApprovalSealImpl({\n recoveryFreezePath: required(datasetFlags.recoveryFreezePath, '--recovery-freeze'),\n approvalRequestPath: required(datasetFlags.approvalRequestPath, '--approval-request'),\n humanApprovalPath: required(datasetFlags.humanApprovalPath, '--human-approval'),\n approveFreezeFile: required(datasetFlags.approveFreezeFile, '--approve-freeze-file'),\n approveRequest: required(datasetFlags.approveRequest, '--approve-request'),\n approveText: required(datasetFlags.approveText, '--approve-text'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n approvedAtUtc: required(datasetFlags.approvedAtUtc, '--approved-at'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n });\n return { exitCode: 0, stdout: stringifyJson(report, datasetFlags.json), stderr: '' };\n }\n if (flowAction === 'run-recovery') {\n if (!datasetFlags.commit || datasetFlags.statusOnly) {\n throw new CliError('flow-identity run-recovery requires --commit only.', {\n code: 'DATASET_FLOW_IDENTITY_RECOVERY_RUN_MODE_INVALID',\n exitCode: 2,\n });\n }\n const report = await flowIdentityRunImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalPath: required(datasetFlags.approvalPath, '--approval'),\n recoveryRunDir: required(datasetFlags.runDir, '--run-dir'),\n recoveryFreezePath: required(datasetFlags.recoveryFreezePath, '--recovery-freeze'),\n recoveryApprovalPath: required(\n datasetFlags.recoveryApprovalPath,\n '--recovery-approval',\n ),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n commit: true,\n statusOnly: false,\n approveExecution: required(datasetFlags.approveExecution, '--approve-execution'),\n confirm: required(datasetFlags.confirm, '--confirm'),\n waitSeconds: datasetFlags.waitSeconds,\n pollMs: datasetFlags.pollMs,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n if (flowAction === 'run') {\n if (datasetFlags.commit === datasetFlags.statusOnly) {\n throw new CliError(\n 'flow-identity run requires exactly one of --commit or --status-only.',\n { code: 'DATASET_FLOW_IDENTITY_RUN_MODE_INVALID', exitCode: 2 },\n );\n }\n if (datasetFlags.commit) {\n required(datasetFlags.approveExecution, '--approve-execution');\n required(datasetFlags.confirm, '--confirm');\n }\n const report = await flowIdentityRunImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalPath: required(datasetFlags.approvalPath, '--approval'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n commit: datasetFlags.commit,\n statusOnly: datasetFlags.statusOnly,\n approveExecution: datasetFlags.approveExecution || undefined,\n confirm: datasetFlags.confirm || undefined,\n waitSeconds: datasetFlags.waitSeconds,\n pollMs: datasetFlags.pollMs,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n if (flowAction === 'verify') {\n const report = await flowIdentityVerifyImpl({\n planPath: required(datasetFlags.planPath, '--plan'),\n freezePath: required(datasetFlags.freezePath, '--freeze'),\n approvalPath: required(datasetFlags.approvalPath, '--approval'),\n runDir: required(datasetFlags.runDir, '--run-dir'),\n outDir: required(datasetFlags.outDir, '--out-dir'),\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n throw new CliError(\n \"dataset maintenance flow-identity action must be 'capture', 'plan', 'freeze', 'seal-approval', 'run', 'freeze-recovery', 'seal-recovery-approval', 'run-recovery', or 'verify'.\",\n { code: 'DATASET_FLOW_IDENTITY_ACTION_INVALID', exitCode: 2 },\n );\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\n if (action === 'plan') {\n const datasetFlags = parseDatasetMaintenancePlanFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenancePlanHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.scopePath) {\n throw new CliError('dataset maintenance plan requires --scope.', {\n code: 'DATASET_MAINTENANCE_SCOPE_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.operation) {\n throw new CliError('dataset maintenance plan requires --operation.', {\n code: 'DATASET_MAINTENANCE_OPERATION_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.outDir) {\n throw new CliError('dataset maintenance plan requires --out-dir.', {\n code: 'DATASET_MAINTENANCE_OUT_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenancePlanImpl({\n scopePath: datasetFlags.scopePath,\n operation: datasetFlags.operation,\n outDir: datasetFlags.outDir,\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\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 = parseDatasetMaintenanceApplyFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceApplyHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.planPath) {\n throw new CliError('dataset maintenance apply requires --plan.', {\n code: 'DATASET_MAINTENANCE_PLAN_REQUIRED',\n exitCode: 2,\n });\n }\n if (datasetFlags.commit && datasetFlags.dryRun) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'DATASET_MAINTENANCE_APPLY_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n if (datasetFlags.dryRun) {\n throw new CliError(\n 'dataset maintenance apply is commit-only; use dataset maintenance plan for a dry run.',\n {\n code: 'DATASET_MAINTENANCE_APPLY_COMMIT_ONLY',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.commit) {\n throw new CliError('dataset maintenance apply requires --commit.', {\n code: 'DATASET_MAINTENANCE_APPLY_COMMIT_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.approvePlan) {\n throw new CliError('dataset maintenance apply requires --approve-plan <sha256>.', {\n code: 'DATASET_MAINTENANCE_APPROVAL_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.confirm) {\n throw new CliError('dataset maintenance apply requires --confirm <email>.', {\n code: 'DATASET_MAINTENANCE_CONFIRM_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenanceApplyImpl({\n planPath: datasetFlags.planPath,\n commit: datasetFlags.commit,\n approvePlan: datasetFlags.approvePlan,\n confirm: datasetFlags.confirm,\n timeoutMs: datasetFlags.timeoutMs,\n maxParallel: datasetFlags.maxParallel,\n globalInboundProofPath: datasetFlags.globalInboundProofPath || undefined,\n approveGlobalInboundProof: datasetFlags.approveGlobalInboundProof || undefined,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: ['completed_with_failures', 'completed_with_unknowns'].includes(report.status)\n ? 1\n : 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (action === 'freeze-protected') {\n const datasetFlags = parseDatasetMaintenanceFreezeProtectedFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceFreezeProtectedHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.planPath) {\n throw new CliError('dataset maintenance freeze-protected requires --plan.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_PLAN_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.toolchainEvidencePath) {\n throw new CliError(\n 'dataset maintenance freeze-protected requires --toolchain-evidence.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_TOOLCHAIN_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.expectedProjectRef) {\n throw new CliError(\n 'dataset maintenance freeze-protected requires --expected-project-ref.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_PROJECT_REF_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.confirm) {\n throw new CliError('dataset maintenance freeze-protected requires --confirm.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_CONFIRM_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.outDir) {\n throw new CliError('dataset maintenance freeze-protected requires --out-dir.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_OUT_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenanceProtectedFreezeImpl({\n planPath: datasetFlags.planPath,\n toolchainEvidencePath: datasetFlags.toolchainEvidencePath,\n outDir: datasetFlags.outDir,\n expectedProjectRef: datasetFlags.expectedProjectRef,\n confirm: datasetFlags.confirm,\n cliVersion: loadCliPackageVersion(import.meta.url),\n pageSize: datasetFlags.pageSize,\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 (action === 'seal-protected-approval') {\n const datasetFlags = parseDatasetMaintenanceSealProtectedApprovalFlags(\n commandArgs.slice(1),\n );\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceSealProtectedApprovalHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.freezePath) {\n throw new CliError('dataset maintenance seal-protected-approval requires --freeze.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_FREEZE_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.approvalRequestPath) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approval-request.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_APPROVAL_REQUEST_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.humanApprovalPath) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --human-approval.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_HUMAN_APPROVAL_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.approveFreezeFile) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approve-freeze-file.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_FREEZE_CONFIRMATION_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.approveRequest) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approve-request.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_REQUEST_CONFIRMATION_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.approveText) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approve-text.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_TEXT_CONFIRMATION_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.confirm) {\n throw new CliError('dataset maintenance seal-protected-approval requires --confirm.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_CONFIRM_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.approvedAtUtc) {\n throw new CliError(\n 'dataset maintenance seal-protected-approval requires --approved-at.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_APPROVED_AT_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (!datasetFlags.outDir) {\n throw new CliError('dataset maintenance seal-protected-approval requires --out-dir.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_OUT_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenanceProtectedApprovalSealImpl({\n freezePath: datasetFlags.freezePath,\n approvalRequestPath: datasetFlags.approvalRequestPath,\n humanApprovalPath: datasetFlags.humanApprovalPath,\n outDir: datasetFlags.outDir,\n approveFreezeFile: datasetFlags.approveFreezeFile,\n approveRequest: datasetFlags.approveRequest,\n approveText: datasetFlags.approveText,\n confirm: datasetFlags.confirm,\n approvedAtUtc: datasetFlags.approvedAtUtc,\n });\n return {\n exitCode: 0,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (action === 'run-protected') {\n const datasetFlags = parseDatasetMaintenanceProtectedFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceRunProtectedHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.planPath) {\n throw new CliError('dataset maintenance run-protected requires --plan.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_PLAN_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.freezePath) {\n throw new CliError('dataset maintenance run-protected requires --freeze.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_FREEZE_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.approvalPath) {\n throw new CliError('dataset maintenance run-protected requires --approval.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_APPROVAL_FILE_REQUIRED',\n exitCode: 2,\n });\n }\n if (!datasetFlags.outDir) {\n throw new CliError('dataset maintenance run-protected requires --out-dir.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_OUT_DIR_REQUIRED',\n exitCode: 2,\n });\n }\n if (datasetFlags.commit && datasetFlags.statusOnly) {\n throw new CliError('Cannot pass both --commit and --status-only.', {\n code: 'DATASET_MAINTENANCE_PROTECTED_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n if (!datasetFlags.commit && !datasetFlags.statusOnly) {\n throw new CliError(\n 'dataset maintenance run-protected requires either --commit or --status-only.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_MODE_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (datasetFlags.commit && !datasetFlags.approveExecution) {\n throw new CliError(\n 'dataset maintenance run-protected requires --approve-execution <sha256> with --commit.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_APPROVAL_REQUIRED',\n exitCode: 2,\n },\n );\n }\n if (datasetFlags.commit && !datasetFlags.confirm) {\n throw new CliError(\n 'dataset maintenance run-protected requires --confirm <email> with --commit.',\n {\n code: 'DATASET_MAINTENANCE_PROTECTED_CONFIRM_REQUIRED',\n exitCode: 2,\n },\n );\n }\n const report = await datasetMaintenanceProtectedImpl({\n planPath: datasetFlags.planPath,\n freezePath: datasetFlags.freezePath,\n approvalPath: datasetFlags.approvalPath,\n outDir: datasetFlags.outDir,\n commit: datasetFlags.commit,\n statusOnly: datasetFlags.statusOnly,\n approveExecution: datasetFlags.approveExecution,\n confirm: datasetFlags.confirm,\n waitSeconds: datasetFlags.waitSeconds,\n pollMs: datasetFlags.pollMs,\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n if (action === 'verify') {\n const datasetFlags = parseDatasetMaintenanceVerifyFlags(commandArgs.slice(1));\n if (datasetFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderDatasetMaintenanceVerifyHelp()}\\n`,\n stderr: '',\n };\n }\n if (!datasetFlags.planPath) {\n throw new CliError('dataset maintenance verify requires --plan.', {\n code: 'DATASET_MAINTENANCE_PLAN_REQUIRED',\n exitCode: 2,\n });\n }\n const report = await datasetMaintenanceVerifyImpl({\n planPath: datasetFlags.planPath,\n outDir: datasetFlags.outDir,\n pageSize: datasetFlags.pageSize,\n timeoutMs: datasetFlags.timeoutMs,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: report.status === 'passed' ? 0 : 1,\n stdout: stringifyJson(report, datasetFlags.json),\n stderr: '',\n };\n }\n\n throw new CliError(\n \"dataset maintenance action must be 'clear-account', 'plan', 'apply', 'freeze-protected', 'seal-protected-approval', 'run-protected', 'verify', or 'flow-identity'.\",\n {\n code: 'DATASET_MAINTENANCE_ACTION_INVALID',\n exitCode: 2,\n },\n );\n }\n\n if (command === 'lifecyclemodel' && !subcommand) {\n return { exitCode: 0, stdout: `${renderLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'auto-build') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelAutoBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelAutoBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'build-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelBuildResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishImpl({\n runDir: lifecyclemodelFlags.runDir,\n publishProcesses: lifecyclemodelFlags.publishProcesses,\n publishRelations: lifecyclemodelFlags.publishRelations,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'validate-build') {\n const lifecyclemodelFlags = parseLifecyclemodelValidateBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelValidateBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelValidateImpl({\n runDir: lifecyclemodelFlags.runDir,\n engine: lifecyclemodelFlags.engine,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-build') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishBuildImpl({\n runDir: lifecyclemodelFlags.runDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'save-draft') {\n const lifecyclemodelFlags = parseLifecyclemodelSaveDraftFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelSaveDraftHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelSaveDraftImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n commit: lifecyclemodelFlags.commit,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'graph') {\n const lifecyclemodelFlags = parseLifecyclemodelGraphFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelGraphHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelGraphImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n format: lifecyclemodelFlags.format,\n checkConnections: lifecyclemodelFlags.checkConnections,\n });\n\n return {\n exitCode: report.status === 'completed_with_findings' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'orchestrate') {\n const lifecyclemodelFlags = parseLifecyclemodelOrchestrateFlags(commandArgs);\n if (lifecyclemodelFlags.help || !lifecyclemodelFlags.action) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelOrchestrateHelp()}\\n`,\n stderr: '',\n };\n }\n if (\n lifecyclemodelFlags.action !== 'plan' &&\n lifecyclemodelFlags.action !== 'execute' &&\n lifecyclemodelFlags.action !== 'publish'\n ) {\n throw new CliError(\n \"lifecyclemodel orchestrate action must be 'plan', 'execute', or 'publish'.\",\n {\n code: 'INVALID_ARGS',\n exitCode: 2,\n },\n );\n }\n\n const report = await lifecyclemodelOrchestrateImpl({\n action: lifecyclemodelFlags.action,\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n runDir: lifecyclemodelFlags.runDir,\n allowProcessBuild: lifecyclemodelFlags.allowProcessBuild,\n allowSubmodelBuild: lifecyclemodelFlags.allowSubmodelBuild,\n publishLifecyclemodels: lifecyclemodelFlags.publishLifecyclemodels,\n publishResultingProcessRelations: lifecyclemodelFlags.publishResultingProcessRelations,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.action === 'execute' && report.status !== 'completed' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && !subcommand) {\n return { exitCode: 0, stdout: `${renderProcessHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'process' && subcommand === 'get') {\n const processFlags = parseProcessGetFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessGetHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processGetImpl({\n processId: processFlags.processId,\n version: processFlags.version,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'list') {\n const processFlags = parseProcessListFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessListHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processListImpl({\n ids: processFlags.ids,\n version: processFlags.version,\n userId: processFlags.userId,\n stateCodes: processFlags.stateCodes,\n limit: processFlags.limit,\n offset: processFlags.offset,\n all: processFlags.all,\n pageSize: processFlags.pageSize,\n order: processFlags.order,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'identity-preflight') {\n const processFlags = parseIdentityPreflightFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessIdentityPreflightHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processIdentityPreflightImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n candidateInputPaths: processFlags.candidateInputPaths,\n remoteCandidateSearch: processFlags.remoteCandidateSearch,\n remoteQuery: processFlags.remoteQuery,\n remoteLimit: processFlags.remoteLimit,\n 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 === 'release' && !subcommand) {\n return { exitCode: 0, stdout: `${renderLcaReleaseHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'release' && subcommand) {\n const releaseFlags = parseLcaReleaseFlags(commandArgs);\n if (releaseFlags.help) {\n return { exitCode: 0, stdout: `${renderLcaReleaseHelp()}\\n`, stderr: '' };\n }\n const action = requireLcaReleaseAction(subcommand);\n const env = { ...deps.env };\n if (releaseFlags.apiKey !== null) {\n env.TIANGONG_LCA_API_KEY = releaseFlags.apiKey;\n }\n if (releaseFlags.apiBaseUrl !== null) {\n env.TIANGONG_LCA_API_BASE_URL = releaseFlags.apiBaseUrl;\n }\n const report = await lcaReleaseImpl({\n action,\n inputPath: releaseFlags.inputPath,\n outputPath: releaseFlags.outputPath,\n releaseRunId: releaseFlags.releaseRunId,\n packageId: releaseFlags.packageId,\n artifactId: releaseFlags.artifactId,\n artifactPath: releaseFlags.artifactPath,\n env,\n timeoutMs: releaseFlags.timeoutMs,\n dryRun: releaseFlags.dryRun,\n force: releaseFlags.force,\n fetchImpl: deps.fetchImpl,\n });\n return {\n exitCode: 0,\n stdout: releaseFlags.json ? stringifyJson(report, true) : renderLcaReleaseReport(report),\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"]}