@tiangong-lca/cli 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -23
- package/bin/tiangong.js +15 -2
- package/dist/src/cli.js +256 -7
- package/dist/src/cli.js.map +1 -1
- package/dist/src/lib/dataset-command.js +115 -96
- package/dist/src/lib/dataset-command.js.map +1 -1
- package/dist/src/lib/flow-publish-version.js +13 -13
- package/dist/src/lib/flow-publish-version.js.map +1 -1
- package/dist/src/lib/http.js +19 -0
- package/dist/src/lib/http.js.map +1 -1
- package/dist/src/lib/lifecyclemodel-bundle-save.js +468 -0
- package/dist/src/lib/lifecyclemodel-bundle-save.js.map +1 -0
- package/dist/src/lib/lifecyclemodel-publish-build.js +3 -1
- package/dist/src/lib/lifecyclemodel-publish-build.js.map +1 -1
- package/dist/src/lib/package-version.js +23 -0
- package/dist/src/lib/package-version.js.map +1 -0
- package/dist/src/lib/process-list.js +337 -0
- package/dist/src/lib/process-list.js.map +1 -0
- package/dist/src/lib/process-save-draft-run.js +325 -0
- package/dist/src/lib/process-save-draft-run.js.map +1 -0
- package/dist/src/lib/process-save-draft.js +165 -0
- package/dist/src/lib/process-save-draft.js.map +1 -0
- package/dist/src/lib/publish.js +81 -13
- package/dist/src/lib/publish.js.map +1 -1
- package/dist/src/lib/review-process.js +180 -9
- package/dist/src/lib/review-process.js.map +1 -1
- package/dist/src/lib/supabase-json-ordered-write.js +14 -32
- package/dist/src/lib/supabase-json-ordered-write.js.map +1 -1
- package/package.json +1 -1
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseArgs } from 'node:util';\nimport { buildDoctorReport, readRuntimeEnv } from './lib/env.js';\nimport type { DotEnvLoadResult } from './lib/dotenv.js';\nimport { CliError, toErrorPayload } from './lib/errors.js';\nimport type { FetchLike } from './lib/http.js';\nimport { stringifyJson } from './lib/io.js';\nimport {\n runLifecyclemodelAutoBuild,\n type LifecyclemodelAutoBuildReport,\n type RunLifecyclemodelAutoBuildOptions,\n} from './lib/lifecyclemodel-auto-build.js';\nimport {\n runLifecyclemodelBuildResultingProcess,\n type LifecyclemodelResultingProcessReport,\n type RunLifecyclemodelResultingProcessOptions,\n} from './lib/lifecyclemodel-resulting-process.js';\nimport {\n runLifecyclemodelPublishResultingProcess,\n type LifecyclemodelPublishResultingProcessReport,\n type RunLifecyclemodelPublishResultingProcessOptions,\n} from './lib/lifecyclemodel-publish-resulting-process.js';\nimport {\n runLifecyclemodelValidateBuild,\n type LifecyclemodelValidateBuildReport,\n type RunLifecyclemodelValidateBuildOptions,\n} from './lib/lifecyclemodel-validate-build.js';\nimport {\n runLifecyclemodelPublishBuild,\n type LifecyclemodelPublishBuildReport,\n type RunLifecyclemodelPublishBuildOptions,\n} from './lib/lifecyclemodel-publish-build.js';\nimport {\n runLifecyclemodelOrchestrate,\n type LifecyclemodelOrchestrateReport,\n type RunLifecyclemodelOrchestrateOptions,\n} from './lib/lifecyclemodel-orchestrate.js';\nimport {\n runProcessAutoBuild,\n type ProcessAutoBuildReport,\n type RunProcessAutoBuildOptions,\n} from './lib/process-auto-build.js';\nimport {\n runProcessGet,\n type ProcessGetReport,\n type RunProcessGetOptions,\n} from './lib/process-get.js';\nimport {\n runProcessBatchBuild,\n type ProcessBatchBuildReport,\n type RunProcessBatchBuildOptions,\n} from './lib/process-batch-build.js';\nimport {\n runProcessResumeBuild,\n type ProcessResumeBuildReport,\n type RunProcessResumeBuildOptions,\n} from './lib/process-resume-build.js';\nimport {\n runProcessPublishBuild,\n type ProcessPublishBuildReport,\n type RunProcessPublishBuildOptions,\n} from './lib/process-publish-build.js';\nimport { runPublish, type PublishReport, type RunPublishOptions } from './lib/publish.js';\nimport {\n runProcessReview,\n type ProcessReviewReport,\n type RunProcessReviewOptions,\n} from './lib/review-process.js';\nimport {\n runFlowReview,\n type FlowReviewReport,\n type RunFlowReviewOptions,\n} from './lib/review-flow.js';\nimport {\n runLifecyclemodelReview,\n type LifecyclemodelReviewReport,\n type RunLifecyclemodelReviewOptions,\n} from './lib/review-lifecyclemodel.js';\nimport {\n runFlowRemediate,\n type FlowRemediationReport,\n type RunFlowRemediateOptions,\n} from './lib/flow-remediate.js';\nimport {\n runFlowFetchRows,\n type FlowFetchRowsReport,\n type RunFlowFetchRowsOptions,\n} from './lib/flow-fetch-rows.js';\nimport {\n runFlowMaterializeDecisions,\n type FlowMaterializeDecisionsReport,\n type RunFlowMaterializeDecisionsOptions,\n} from './lib/flow-materialize-decisions.js';\nimport { runFlowGet, type FlowGetReport, type RunFlowGetOptions } from './lib/flow-get.js';\nimport { runFlowList, type FlowListReport, type RunFlowListOptions } from './lib/flow-list.js';\nimport {\n runFlowPublishVersion,\n type FlowPublishVersionReport,\n type RunFlowPublishVersionOptions,\n} from './lib/flow-publish-version.js';\nimport {\n runFlowReviewedPublishData,\n type FlowReviewedPublishDataReport,\n type RunFlowReviewedPublishDataOptions,\n} from './lib/flow-publish-reviewed-data.js';\nimport {\n runFlowBuildAliasMap,\n type FlowBuildAliasMapReport,\n type RunFlowBuildAliasMapOptions,\n} from './lib/flow-build-alias-map.js';\nimport {\n runFlowApplyProcessFlowRepairs,\n runFlowPlanProcessFlowRepairs,\n runFlowRegenProduct,\n runFlowScanProcessFlowRefs,\n runFlowValidateProcesses,\n type FlowApplyProcessFlowRepairsReport,\n type FlowPlanProcessFlowRepairsReport,\n type FlowRegenProductReport,\n type FlowScanProcessFlowRefsReport,\n type FlowValidateProcessesReport,\n type RunFlowApplyProcessFlowRepairsOptions,\n type RunFlowPlanProcessFlowRepairsOptions,\n type RunFlowRegenProductOptions,\n type RunFlowScanProcessFlowRefsOptions,\n type RunFlowValidateProcessesOptions,\n} from './lib/flow-regen-product.js';\nimport { executeRemoteCommand, getRemoteCommandHelp } from './lib/remote.js';\nimport {\n runValidation,\n type RunValidationOptions,\n type ValidationRunReport,\n} from './lib/validation.js';\n\nexport type CliDeps = {\n env: NodeJS.ProcessEnv;\n dotEnvStatus: DotEnvLoadResult;\n fetchImpl: FetchLike;\n runPublishImpl?: (options: RunPublishOptions) => Promise<PublishReport>;\n runValidationImpl?: (options: RunValidationOptions) => Promise<ValidationRunReport>;\n runLifecyclemodelAutoBuildImpl?: (\n options: RunLifecyclemodelAutoBuildOptions,\n ) => Promise<LifecyclemodelAutoBuildReport>;\n runLifecyclemodelBuildResultingProcessImpl?: (\n options: RunLifecyclemodelResultingProcessOptions,\n ) => Promise<LifecyclemodelResultingProcessReport>;\n runLifecyclemodelPublishResultingProcessImpl?: (\n options: RunLifecyclemodelPublishResultingProcessOptions,\n ) => Promise<LifecyclemodelPublishResultingProcessReport>;\n runLifecyclemodelValidateBuildImpl?: (\n options: RunLifecyclemodelValidateBuildOptions,\n ) => Promise<LifecyclemodelValidateBuildReport>;\n runLifecyclemodelPublishBuildImpl?: (\n options: RunLifecyclemodelPublishBuildOptions,\n ) => Promise<LifecyclemodelPublishBuildReport>;\n runLifecyclemodelOrchestrateImpl?: (\n options: RunLifecyclemodelOrchestrateOptions,\n ) => Promise<LifecyclemodelOrchestrateReport>;\n runProcessGetImpl?: (options: RunProcessGetOptions) => Promise<ProcessGetReport>;\n runProcessAutoBuildImpl?: (\n options: RunProcessAutoBuildOptions,\n ) => Promise<ProcessAutoBuildReport>;\n runProcessBatchBuildImpl?: (\n options: RunProcessBatchBuildOptions,\n ) => Promise<ProcessBatchBuildReport>;\n runProcessResumeBuildImpl?: (\n options: RunProcessResumeBuildOptions,\n ) => Promise<ProcessResumeBuildReport>;\n runProcessPublishBuildImpl?: (\n options: RunProcessPublishBuildOptions,\n ) => Promise<ProcessPublishBuildReport>;\n runProcessReviewImpl?: (options: RunProcessReviewOptions) => Promise<ProcessReviewReport>;\n runFlowReviewImpl?: (options: RunFlowReviewOptions) => Promise<FlowReviewReport>;\n runLifecyclemodelReviewImpl?: (\n options: RunLifecyclemodelReviewOptions,\n ) => Promise<LifecyclemodelReviewReport>;\n runFlowRemediateImpl?: (options: RunFlowRemediateOptions) => Promise<FlowRemediationReport>;\n runFlowFetchRowsImpl?: (options: RunFlowFetchRowsOptions) => Promise<FlowFetchRowsReport>;\n runFlowMaterializeDecisionsImpl?: (\n options: RunFlowMaterializeDecisionsOptions,\n ) => Promise<FlowMaterializeDecisionsReport>;\n runFlowGetImpl?: (options: RunFlowGetOptions) => Promise<FlowGetReport>;\n runFlowListImpl?: (options: RunFlowListOptions) => Promise<FlowListReport>;\n runFlowPublishVersionImpl?: (\n options: RunFlowPublishVersionOptions,\n ) => Promise<FlowPublishVersionReport>;\n runFlowReviewedPublishDataImpl?: (\n options: RunFlowReviewedPublishDataOptions,\n ) => Promise<FlowReviewedPublishDataReport>;\n runFlowBuildAliasMapImpl?: (\n options: RunFlowBuildAliasMapOptions,\n ) => Promise<FlowBuildAliasMapReport>;\n runFlowScanProcessFlowRefsImpl?: (\n options: RunFlowScanProcessFlowRefsOptions,\n ) => Promise<FlowScanProcessFlowRefsReport>;\n runFlowPlanProcessFlowRepairsImpl?: (\n options: RunFlowPlanProcessFlowRepairsOptions,\n ) => Promise<FlowPlanProcessFlowRepairsReport>;\n runFlowApplyProcessFlowRepairsImpl?: (\n options: RunFlowApplyProcessFlowRepairsOptions,\n ) => Promise<FlowApplyProcessFlowRepairsReport>;\n runFlowRegenProductImpl?: (\n options: RunFlowRegenProductOptions,\n ) => Promise<FlowRegenProductReport>;\n runFlowValidateProcessesImpl?: (\n options: RunFlowValidateProcessesOptions,\n ) => Promise<FlowValidateProcessesReport>;\n};\n\nexport type CliResult = {\n exitCode: number;\n stdout: string;\n stderr: string;\n};\n\ntype RootFlags = {\n help: boolean;\n version: boolean;\n};\n\nfunction renderMainHelp(dotEnvStatus: DotEnvLoadResult): string {\n return `TianGong LCA CLI\n\nUnified TianGong command entrypoint.\n\nDesign principles:\n - direct REST / Edge Function access\n - no MCP inside the CLI\n - TypeScript source on Node 24\n - file-first input and JSON-first output\n\nUsage:\n tiangong <command> [subcommand] [options]\n\nCommands:\nImplemented Commands:\n doctor show environment diagnostics\n search flow | process | lifecyclemodel\n process get | auto-build | resume-build | publish-build | batch-build\n flow get | list | fetch-rows | materialize-decisions | remediate | publish-version | publish-reviewed-data | build-alias-map | scan-process-flow-refs | plan-process-flow-repairs | apply-process-flow-repairs | regen-product | validate-processes\n lifecyclemodel auto-build | validate-build | publish-build | build-resulting-process | publish-resulting-process | orchestrate\n review process | flow | lifecyclemodel\n publish run\n validation run\n admin embedding-run\n\nPlanned Surface (not implemented yet):\n auth whoami | doctor-auth\n job get | wait | logs\n\nPlanned commands currently print an explicit \"not implemented yet\" message and exit with code 2.\n\nExamples:\n tiangong doctor\n tiangong search flow --input ./request.json\n tiangong search process --input ./request.json --dry-run\n tiangong process get --id <process-id>\n tiangong process auto-build --input ./pff-request.json\n tiangong process resume-build --run-id <id>\n tiangong process publish-build --run-id <id>\n tiangong process batch-build --input ./batch-request.json\n tiangong lifecyclemodel auto-build --input ./lifecyclemodel-auto-build.request.json\n tiangong lifecyclemodel validate-build --run-dir ./artifacts/lifecyclemodel_auto_build/<run_id>\n tiangong lifecyclemodel publish-build --run-dir ./artifacts/lifecyclemodel_auto_build/<run_id>\n tiangong lifecyclemodel orchestrate plan --input ./lifecyclemodel-orchestrate.request.json --out-dir ./artifacts/lifecyclemodel_recursive/run-001\n tiangong flow get --id <flow-id> --version <version>\n tiangong flow list --id <flow-id> --state-code 100 --limit 20\n tiangong flow fetch-rows --refs-file ./flow-refs.json --out-dir ./flow-fetch\n tiangong flow materialize-decisions --decision-file ./approved-decisions.json --flow-rows-file ./review-input-rows.jsonl --out-dir ./flow-decisions\n tiangong flow remediate --input-file ./invalid-flows.jsonl --out-dir ./flow-remediation\n tiangong flow publish-version --input-file ./ready-flows.jsonl --out-dir ./flow-publish --commit\n tiangong flow publish-reviewed-data --flow-rows-file ./reviewed-flows.jsonl --original-flow-rows-file ./original-flows.jsonl --out-dir ./flow-publish-review\n tiangong flow build-alias-map --old-flow-file ./old-flows.jsonl --new-flow-file ./new-flows.jsonl --out-dir ./flow-alias-map\n tiangong flow scan-process-flow-refs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-scan\n tiangong flow plan-process-flow-repairs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-repair-plan\n tiangong flow apply-process-flow-repairs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-repair-apply\n tiangong flow regen-product --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-regeneration --apply\n tiangong flow validate-processes --original-processes-file ./before.jsonl --patched-processes-file ./after.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-validation\n tiangong review process --run-root ./artifacts/process_from_flow/<run_id> --run-id <run_id> --out-dir ./review\n tiangong review flow --rows-file ./flows.json --out-dir ./review\n tiangong review lifecyclemodel --run-dir ./artifacts/lifecyclemodel_auto_build/<run_id> --out-dir ./lifecyclemodel-review\n tiangong publish run --input ./publish-request.json --dry-run\n tiangong validation run --input-dir ./package --engine auto\n tiangong admin embedding-run --input ./jobs.json\n\nEnvironment:\n .env loaded: ${dotEnvStatus.loaded ? `yes (${dotEnvStatus.path}, ${dotEnvStatus.count} keys)` : 'no'}\n`.trim();\n}\n\nfunction renderDoctorHelp(): string {\n return `Usage:\n tiangong doctor [--json]\n\nOptions:\n --json Print structured environment diagnostics\n -h, --help\n`.trim();\n}\n\nfunction renderSearchHelp(): string {\n return `Usage:\n tiangong search <flow|process|lifecyclemodel> --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --json Print compact JSON\n --dry-run Print the planned HTTP request without sending it\n --api-key <key> Override TIANGONG_LCA_API_KEY\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --region <name> Override TIANGONG_LCA_REGION\n --timeout-ms <n> Request timeout in milliseconds\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n TIANGONG_LCA_REGION (optional)\n\nRuntime note:\n The CLI decodes TIANGONG_LCA_API_KEY as a user API key bootstrap, exchanges it for a user session,\n and sends the resolved access token to Edge Functions.\n`.trim();\n}\n\nfunction renderAdminHelp(): string {\n return `Usage:\n tiangong admin embedding-run --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --json Print compact JSON\n --dry-run Print the planned HTTP request without sending it\n --api-key <key> Override TIANGONG_LCA_API_KEY\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --timeout-ms <n> Request timeout in milliseconds\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI decodes TIANGONG_LCA_API_KEY as a user API key bootstrap, exchanges it for a user session,\n and sends the resolved access token to Edge Functions.\n`.trim();\n}\n\nfunction renderPublishHelp(): string {\n return `Usage:\n tiangong publish run --input <file> [options]\n\nOptions:\n --input <file> JSON publish request file\n --out-dir <dir> Override request out_dir\n --commit Force publish.commit=true\n --dry-run Force publish.commit=false\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderValidationHelp(): string {\n return `Usage:\n tiangong validation run --input-dir <dir> [options]\n\nOptions:\n --input-dir <dir> TIDAS package directory\n --engine <mode> auto | sdk (default: auto)\n --report-file <file> Write the structured validation report to a file\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderFlowHelp(): string {\n return `Usage:\n tiangong flow <subcommand> [options]\n\nImplemented Subcommands:\n get Load one flow dataset by identifier through direct Supabase access\n list Enumerate flow datasets through direct Supabase access with deterministic filters\n fetch-rows Materialize real DB flow refs into local review-input rows and fetch artifacts\n materialize-decisions Materialize approved merge decisions into canonical-map, rewrite-plan, and seed artifacts\n remediate Deterministically repair invalid local flow rows and emit artifact-first outputs\n publish-version Publish remediated flow versions through the unified CLI surface\n publish-reviewed-data Prepare reviewed flow rows, skip unchanged snapshots, and optionally publish the resulting versions\n build-alias-map Build a deterministic flow alias map from old/new local flow snapshots\n scan-process-flow-refs Classify process exchange references against the current flow scope\n plan-process-flow-repairs Plan deterministic repairs for local process-flow references\n apply-process-flow-repairs Apply deterministic process-flow reference repairs and emit patch artifacts\n regen-product Regenerate local process-side artifacts after flow governance changes\n validate-processes Validate locally patched process rows against allowed flow-reference-only changes\n\nExamples:\n tiangong flow --help\n tiangong flow get --help\n tiangong flow list --help\n tiangong flow fetch-rows --help\n tiangong flow materialize-decisions --help\n tiangong flow remediate --help\n tiangong flow publish-version --help\n tiangong flow publish-reviewed-data --help\n tiangong flow build-alias-map --help\n tiangong flow scan-process-flow-refs --help\n tiangong flow plan-process-flow-repairs --help\n tiangong flow apply-process-flow-repairs --help\n tiangong flow regen-product --help\n tiangong flow validate-processes --help\n`.trim();\n}\n\nfunction renderFlowGetHelp(): string {\n return `Usage:\n tiangong flow get --id <flow-id> [options]\n\nOptions:\n --id <flow-id> Flow UUID\n --version <version> Optional requested dataset version; if absent or missing, the latest reachable row is returned\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Optional visibility filter such as 0 or 100\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderFlowListHelp(): string {\n return `Usage:\n tiangong flow list [options]\n\nOptions:\n --id <flow-id> Repeatable exact flow UUID filter\n --version <version> Optional dataset version filter\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Repeatable visibility filter such as 0 or 100\n --type-of-dataset <name> Repeatable flow type filter, for example \"Product flow\" or \"Waste flow\"\n --order <expr> Deterministic PostgREST order expression (default: id.asc,version.asc)\n --limit <n> Page size for one request (default: 100)\n --offset <n> Row offset for one request (default: 0)\n --all Fetch all matching rows via offset pagination\n --page-size <n> Page size when --all is used (default: 100)\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderFlowRemediateHelp(): string {\n return `Usage:\n tiangong flow remediate --input-file <file> --out-dir <dir> [options]\n\nOptions:\n --input-file <file> Invalid flow rows as JSON or JSONL\n --out-dir <dir> Output directory for remediation artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flows_tidas_sdk_plus_classification_remediated_all.jsonl\n - flows_tidas_sdk_plus_classification_remediated_ready_for_mcp.jsonl\n - flows_tidas_sdk_plus_classification_residual_manual_queue.jsonl\n - flows_tidas_sdk_plus_classification_remediation_audit.jsonl\n - flows_tidas_sdk_plus_classification_remediation_report.json\n - flows_tidas_sdk_plus_classification_residual_manual_queue_prompt.md\n`.trim();\n}\n\nfunction renderFlowFetchRowsHelp(): string {\n return `Usage:\n tiangong flow fetch-rows --refs-file <file> --out-dir <dir> [options]\n\nOptions:\n --refs-file <file> Flow refs as JSON or JSONL\n --out-dir <dir> Output directory for fetch artifacts\n --no-latest-fallback Do not fall back to the latest visible version when --version misses\n --fail-on-missing Return exit code 1 when any ref is missing or ambiguous\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOutputs written under --out-dir:\n - resolved-flow-rows.jsonl\n - review-input-rows.jsonl\n - fetch-summary.json\n - missing-flow-refs.jsonl\n - ambiguous-flow-refs.jsonl\n`.trim();\n}\n\nfunction renderFlowMaterializeDecisionsHelp(): string {\n return `Usage:\n tiangong flow materialize-decisions --decision-file <file> --flow-rows-file <file> --out-dir <dir> [options]\n\nOptions:\n --decision-file <file> Approved cluster decisions as JSON or JSONL\n --flow-rows-file <file> Real DB flow rows as JSON or JSONL\n --out-dir <dir> Output directory for decision materialization artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flow-dedup-canonical-map.json\n - flow-dedup-rewrite-plan.json\n - manual-semantic-merge-seed.current.json\n - decision-summary.json\n - blocked-clusters.json\n`.trim();\n}\n\nfunction renderFlowPublishVersionHelp(): string {\n return `Usage:\n tiangong flow publish-version --input-file <file> --out-dir <dir> [options]\n\nOptions:\n --input-file <file> Ready-for-publish flow rows as JSON or JSONL\n --out-dir <dir> Output directory for publish-version artifacts\n --commit Execute remote writes\n --dry-run Plan the publish-version operations without remote writes\n --max-workers <n> Parallel worker count (default: 4)\n --limit <n> Optional row limit; 0 means all rows\n --target-user-id <id> Override the target owner when input rows omit user_id\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOutputs written under --out-dir:\n - flows_tidas_sdk_plus_classification_mcp_success_list.json\n - flows_tidas_sdk_plus_classification_remote_validation_failed.jsonl\n - flows_tidas_sdk_plus_classification_mcp_sync_report.json\n`.trim();\n}\n\nfunction renderFlowPublishReviewedDataHelp(): string {\n return `Usage:\n tiangong flow publish-reviewed-data --out-dir <dir> [--flow-rows-file <file>] [--process-rows-file <file>] [options]\n\nOptions:\n --flow-rows-file <file> Reviewed flow rows as JSON or JSONL\n --original-flow-rows-file <file> Optional original flow snapshot used to skip unchanged reviewed rows\n --process-rows-file <file> Optional reviewed process rows as JSON or JSONL\n --flow-publish-policy <mode> skip | append_only_bump | upsert_current_version (default: append_only_bump)\n --process-publish-policy <mode> skip | append_only_bump | upsert_current_version (default: append_only_bump)\n --no-rewrite-process-flow-refs Keep process flow references unchanged during local preparation\n --commit Execute remote writes for prepared flow and process rows\n --dry-run Keep the command local-only and write prepared artifacts without remote writes\n --max-workers <n> Parallel worker count for the flow commit step (default: 4)\n --target-user-id <id> Override the target owner when prepared flow rows omit user_id\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n none for local dry-run\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n when --commit publishes prepared rows\n\nOutputs written under --out-dir:\n - prepared-flow-rows.json\n - prepared-process-rows.json\n - flow-version-map.json\n - skipped-unchanged-flow-rows.json\n - process-flow-ref-rewrite-evidence.jsonl\n - publish-report.json\n - flows_tidas_sdk_plus_classification_mcp_success_list.json\n - flows_tidas_sdk_plus_classification_remote_validation_failed.jsonl\n - flows_tidas_sdk_plus_classification_mcp_sync_report.json\n`.trim();\n}\n\nfunction renderFlowBuildAliasMapHelp(): string {\n return `Usage:\n tiangong flow build-alias-map --old-flow-file <file> --new-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --old-flow-file <file> Repeatable pre-governance flow snapshot as JSON or JSONL\n --new-flow-file <file> Repeatable post-governance flow snapshot as JSON or JSONL\n --seed-alias-map <file> Optional existing alias map JSON object used as deterministic seed input\n --out-dir <dir> Output directory for alias-plan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - alias-plan.json\n - alias-plan.jsonl\n - flow-alias-map.json\n - manual-review-queue.jsonl\n - alias-summary.json\n`.trim();\n}\n\nfunction renderFlowScanProcessFlowRefsHelp(): string {\n return `Usage:\n tiangong flow scan-process-flow-refs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --catalog-flow-file <file> Repeatable catalog flow file; defaults to the scope files\n --alias-map <file> Optional flow alias map JSON object\n --exclude-emergy Exclude emergy-named processes before reference scanning\n --out-dir <dir> Output directory for scan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - emergy-excluded-processes.json\n - scan-summary.json\n - scan-findings.json\n - scan-findings.jsonl\n`.trim();\n}\n\nfunction renderFlowPlanProcessFlowRepairsHelp(): string {\n return `Usage:\n tiangong flow plan-process-flow-repairs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --alias-map <file> Optional flow alias map JSON object\n --scan-findings <file> Optional scan-findings JSON or JSONL from a prior scan step\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --out-dir <dir> Output directory for repair plan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - repair-plan.json\n - repair-plan.jsonl\n - manual-review-queue.jsonl\n - repair-summary.json\n`.trim();\n}\n\nfunction renderFlowApplyProcessFlowRepairsHelp(): string {\n return `Usage:\n tiangong flow apply-process-flow-repairs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --alias-map <file> Optional flow alias map JSON object\n --scan-findings <file> Optional scan-findings JSON or JSONL from a prior scan step\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --process-pool-file <file> Optional process pool file to sync after patch application\n --out-dir <dir> Output directory for repair apply artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - repair-plan.json\n - repair-plan.jsonl\n - manual-review-queue.jsonl\n - repair-summary.json\n - patched-processes.json\n - process-patches/\n`.trim();\n}\n\nfunction renderFlowRegenProductHelp(): string {\n return `Usage:\n tiangong flow regen-product --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --catalog-flow-file <file> Repeatable catalog flow file; defaults to the scope files\n --alias-map <file> Optional flow alias map JSON object\n --exclude-emergy Exclude emergy-named processes before scan and repair\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --apply Apply deterministic patches and run local validation\n --process-pool-file <file> Optional process pool file to sync after --apply\n --tidas-mode <mode> auto | required | skip (default: auto)\n --out-dir <dir> Run root for scan / repair / validate artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flow-regen-product-report.json\n - scan/\n - repair/\n - repair-apply/ (only with --apply)\n - validate/ (only with --apply)\n`.trim();\n}\n\nfunction renderFlowValidateProcessesHelp(): string {\n return `Usage:\n tiangong flow validate-processes --original-processes-file <file> --patched-processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --original-processes-file <file> Original process rows before repair as JSON or JSONL\n --patched-processes-file <file> Patched process rows after repair as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --out-dir <dir> Output directory for validation-report.json and validation-failures.jsonl\n --tidas-mode <mode> auto | required | skip (default: auto)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - validation-report.json\n - validation-failures.jsonl\n`.trim();\n}\n\nfunction renderReviewHelp(): string {\n return `Usage:\n tiangong review <subcommand> [options]\n\nImplemented Subcommands:\n process Review one local process build run and emit artifact-first findings\n flow Review local flow governance snapshots and emit artifact-first findings\n lifecyclemodel Review one local lifecyclemodel build run and emit artifact-first findings\n\nExamples:\n tiangong review --help\n tiangong review process --help\n tiangong review flow --help\n tiangong review lifecyclemodel --help\n`.trim();\n}\n\nfunction renderReviewProcessHelp(): string {\n return `Usage:\n tiangong review process --run-root <dir> --run-id <id> --out-dir <dir> [options]\n\nOptions:\n --run-root <dir> Process build run root containing exports/processes\n --run-id <id> Process build run identifier\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: v2.1)\n --enable-llm Enable optional review-only semantic review via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this review command\n --llm-max-processes <n> Cap how many process summaries are sent to the LLM (default: 8)\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderReviewFlowHelp(): string {\n return `Usage:\n tiangong review flow (--rows-file <file> | --flows-dir <dir> | --run-root <dir>) --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Flow rows JSON / JSONL file; the CLI materializes review-input/flows automatically\n --flows-dir <dir> Directory containing per-flow JSON files\n --run-root <dir> Existing run root containing cache/flows or exports/flows\n --run-id <id> Optional run identifier override\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: flow-v1.0-cli)\n --enable-llm Enable optional review-only semantic review via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this review command\n --llm-max-flows <n> Cap how many flow summaries are sent to the LLM (default: 120)\n --llm-batch-size <n> Cap how many flow summaries each LLM batch sends (default: 20)\n --similarity-threshold <n> Similarity threshold for duplicate-candidate warnings (default: 0.92)\n --methodology-id <name> Label written into methodology-backed rule findings (default: built_in)\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderReviewLifecyclemodelHelp(): string {\n return `Usage:\n tiangong review lifecyclemodel --run-dir <dir> --out-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: lifecyclemodel-review-v1.0)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - reads one existing lifecyclemodel build run under models/*/tidas_bundle/lifecyclemodels\n - aggregates validate-build findings when reports/lifecyclemodel-validate-build-report.json is present\n - emits artifact-first model summaries, findings, markdown review notes, and a structured report\n`.trim();\n}\n\nfunction renderLifecyclemodelBuildResultingProcessHelp(): string {\n return `Usage:\n tiangong lifecyclemodel build-resulting-process --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default artifact output directory\n --json Print compact JSON\n -h, --help\n\nRemote lookup env (only when process_sources.allow_remote_lookup=true):\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n`.trim();\n}\n\nfunction renderLifecyclemodelPublishResultingProcessHelp(): string {\n return `Usage:\n tiangong lifecyclemodel publish-resulting-process --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel resulting-process run directory\n --publish-processes Include projected processes in publish-bundle.json\n --publish-relations Include lifecyclemodel/resulting-process relations in publish-bundle.json\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderLifecyclemodelHelp(): string {\n return `Usage:\n tiangong lifecyclemodel <subcommand> [options]\n\nImplemented Subcommands:\n auto-build Build native lifecyclemodel json_ordered artifacts from local process run exports\n validate-build Re-run local validation on one lifecyclemodel build run\n publish-build Prepare lifecyclemodel publish handoff artifacts from one local build run\n build-resulting-process Deterministically aggregate a lifecycle model into a resulting process bundle\n publish-resulting-process Prepare publish-bundle.json and publish-intent.json from a prior resulting-process run\n orchestrate Plan, execute, or publish a recursive lifecyclemodel assembly run\n\nExamples:\n tiangong lifecyclemodel --help\n tiangong lifecyclemodel auto-build --help\n tiangong lifecyclemodel validate-build --help\n tiangong lifecyclemodel publish-build --help\n tiangong lifecyclemodel build-resulting-process --help\n tiangong lifecyclemodel orchestrate --help\n`.trim();\n}\n\nfunction renderLifecyclemodelOrchestrateHelp(): string {\n return `Usage:\n tiangong lifecyclemodel orchestrate <plan|execute|publish> [options]\n\nPlan / execute options:\n --input <file> JSON request file\n --request <file> Alias for --input\n --out-dir <dir> Output run directory\n --allow-process-build Override orchestration.allow_process_build=true during execute\n --allow-submodel-build Override orchestration.allow_submodel_build=true during execute\n --json Print compact JSON\n -h, --help\n\nPublish options:\n --run-dir <dir> Existing orchestrator run directory\n --publish-lifecyclemodels Include built lifecyclemodels in publish-bundle.json\n --publish-resulting-process-relations Include projected processes and resulting-process relations in publish-bundle.json\n --json Print compact JSON\n -h, --help\n\nThis command:\n - normalizes a recursive request into assembly-plan.json, graph-manifest.json, lineage-manifest.json, and boundary-report.json\n - executes only native CLI-backed builders; no Python fallback path remains\n - prepares a local publish-bundle.json from prior invocation artifacts\n`.trim();\n}\n\nfunction renderLifecyclemodelAutoBuildHelp(): string {\n return `Usage:\n tiangong lifecyclemodel auto-build --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default lifecyclemodel build run root\n --json Print compact JSON\n -h, --help\n\nMinimal request contract:\n {\n \"local_runs\": [\"/abs/path/to/process-build-run\"]\n }\n\nThis first CLI slice is local-only and read-only:\n - loads local process build run directories\n - infers the process graph from shared flow UUIDs\n - emits native lifecyclemodel json_ordered artifacts\n - leaves follow-up validation and publish handoff to the companion validate-build and publish-build commands\n`.trim();\n}\n\nfunction renderLifecyclemodelValidateBuildHelp(): string {\n return `Usage:\n tiangong lifecyclemodel validate-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --engine <mode> auto | sdk (default: auto)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - scans models/*/tidas_bundle from one lifecyclemodel auto-build run\n - re-runs local validation through the unified validation module\n - writes per-model validation reports plus one aggregate report\n`.trim();\n}\n\nfunction renderLifecyclemodelPublishBuildHelp(): string {\n return `Usage:\n tiangong lifecyclemodel publish-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --json Print compact JSON\n -h, --help\n\nThis command:\n - collects native lifecyclemodel json_ordered payloads from one local build run\n - writes publish-bundle.json, publish-request.json, and publish-intent.json\n - keeps actual dry-run / commit execution in tiangong publish run\n`.trim();\n}\n\nfunction renderProcessAutoBuildHelp(): string {\n return `Usage:\n tiangong process auto-build --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default run root directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessGetHelp(): string {\n return `Usage:\n tiangong process get --id <process-id> [options]\n\nOptions:\n --id <process-id> Process UUID\n --version <version> Optional requested dataset version; if absent or missing, the latest reachable row is returned\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderProcessResumeBuildHelp(): string {\n return `Usage:\n tiangong process resume-build [--run-id <id>] [--run-dir <dir>] [options]\n\nOptions:\n --run-id <id> Existing process build run id\n --run-dir <dir> Existing process build run directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessPublishBuildHelp(): string {\n return `Usage:\n tiangong process publish-build [--run-id <id>] [--run-dir <dir>] [options]\n\nOptions:\n --run-id <id> Existing process build run id\n --run-dir <dir> Existing process build run directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessBatchBuildHelp(): string {\n return `Usage:\n tiangong process batch-build --input <file> [options]\n\nOptions:\n --input <file> JSON batch manifest file\n --out-dir <dir> Override the batch artifact output directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessHelp(): string {\n return `Usage:\n tiangong process <subcommand> [options]\n\nImplemented Subcommands:\n get Load one process dataset by identifier through direct Supabase access\n 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 batch-build Run multiple process auto-build requests through one batch-oriented CLI surface\n\nExamples:\n tiangong process --help\n tiangong process get --id <process-id>\n tiangong process auto-build --help\n tiangong process resume-build --run-id <id> --help\n tiangong process publish-build --run-id <id> --help\n tiangong process batch-build --input ./batch-request.json --help\n`.trim();\n}\n\nfunction renderDoctorText(report: ReturnType<typeof buildDoctorReport>): string {\n const lines = [\n 'TianGong CLI doctor',\n ` .env loaded: ${report.loadedDotEnv ? `yes (${report.dotEnvKeysLoaded} keys)` : 'no'}`,\n ` .env path: ${report.dotEnvPath}`,\n '',\n ];\n for (const check of report.checks) {\n const status = check.present ? 'OK ' : 'MISS';\n lines.push(\n ` [${status}] ${check.key} (${check.source})${check.required ? ' [required]' : ''}`,\n );\n }\n if (!report.ok) {\n lines.push('', 'Missing required environment keys:');\n for (const check of report.checks) {\n if (check.required && !check.present) {\n lines.push(` - ${check.key}`);\n }\n }\n }\n return `${lines.join('\\n')}\\n`;\n}\n\ntype CommandDispatch = {\n flags: RootFlags;\n command: string | null;\n subcommand: string | null;\n commandArgs: string[];\n};\n\nfunction parseCommandLine(args: string[]): CommandDispatch {\n const flags: RootFlags = {\n help: false,\n version: false,\n };\n\n let index = 0;\n while (index < args.length) {\n const arg = args[index];\n if (arg === '--') {\n index += 1;\n break;\n }\n if (arg === '--help' || arg === '-h') {\n flags.help = true;\n index += 1;\n continue;\n }\n if (arg === '--version' || arg === '-v') {\n flags.version = true;\n index += 1;\n continue;\n }\n if (arg.startsWith('-')) {\n throw new CliError(`Unknown root option: ${arg}`, {\n code: 'UNKNOWN_ROOT_OPTION',\n exitCode: 2,\n });\n }\n break;\n }\n\n const command = args[index] ?? null;\n if (!command) {\n return {\n flags,\n command: null,\n subcommand: null,\n commandArgs: [],\n };\n }\n\n const maybeSubcommand = args[index + 1];\n const subcommand = maybeSubcommand && !maybeSubcommand.startsWith('-') ? maybeSubcommand : null;\n const commandArgs = args.slice(index + 1 + (subcommand ? 1 : 0));\n\n return {\n flags,\n command,\n subcommand,\n commandArgs,\n };\n}\n\nfunction parseDoctorFlags(args: string[]): {\n help: boolean;\n json: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n };\n}\n\nfunction parseRemoteFlags(args: string[]): {\n help: boolean;\n json: boolean;\n dryRun: boolean;\n inputPath: string;\n apiKey: string | null;\n apiBaseUrl: string | null;\n region: string | null;\n timeoutMs: number;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n input: { type: 'string' },\n 'api-key': { type: 'string' },\n 'base-url': { type: 'string' },\n region: { type: 'string' },\n 'timeout-ms': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const timeoutText = typeof values['timeout-ms'] === 'string' ? values['timeout-ms'] : undefined;\n const timeoutMs = timeoutText ? Number.parseInt(timeoutText, 10) : 60_000;\n if (!Number.isInteger(timeoutMs) || timeoutMs <= 0) {\n throw new CliError('Expected --timeout-ms to be a positive integer.', {\n code: 'INVALID_TIMEOUT',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n dryRun: Boolean(values['dry-run']),\n inputPath: typeof values.input === 'string' ? values.input : '',\n apiKey: typeof values['api-key'] === 'string' ? values['api-key'] : null,\n apiBaseUrl: typeof values['base-url'] === 'string' ? values['base-url'] : null,\n region: typeof values.region === 'string' ? values.region : null,\n timeoutMs,\n };\n}\n\nfunction parsePublishFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n commitOverride: boolean | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_PUBLISH_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commitOverride: values.commit ? true : values['dry-run'] ? false : null,\n };\n}\n\nfunction parseValidationFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputDir: string;\n engine: string | undefined;\n reportFile: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'input-dir': { type: 'string' },\n engine: { type: 'string' },\n 'report-file': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputDir: typeof values['input-dir'] === 'string' ? values['input-dir'] : '',\n engine: typeof values.engine === 'string' ? values.engine : undefined,\n reportFile: typeof values['report-file'] === 'string' ? values['report-file'] : null,\n };\n}\n\nfunction parseFlowRemediateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputFile: string;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'input-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputFile: typeof values['input-file'] === 'string' ? values['input-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowPublishVersionFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputFile: string;\n outDir: string;\n commit: boolean;\n maxWorkers: number | undefined;\n limit: number | undefined;\n targetUserId: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'input-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'max-workers': { type: 'string' },\n limit: { type: 'string' },\n 'target-user-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'FLOW_PUBLISH_VERSION_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputFile: typeof values['input-file'] === 'string' ? values['input-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n maxWorkers: parsePositiveIntegerFlag(\n values['max-workers'],\n '--max-workers',\n 'INVALID_FLOW_PUBLISH_VERSION_MAX_WORKERS',\n ),\n limit: parseNonNegativeIntegerFlag(\n values.limit,\n '--limit',\n 'INVALID_FLOW_PUBLISH_VERSION_LIMIT',\n ),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n };\n}\n\nfunction parseFlowPublishReviewedDataFlags(args: string[]): {\n help: boolean;\n json: boolean;\n flowRowsFile: string;\n originalFlowRowsFile: string | null;\n processRowsFile: string | null;\n flowPublishPolicy: 'skip' | 'append_only_bump' | 'upsert_current_version';\n processPublishPolicy: 'skip' | 'append_only_bump' | 'upsert_current_version';\n rewriteProcessFlowRefs: boolean;\n outDir: string;\n commit: boolean;\n maxWorkers: number | undefined;\n targetUserId: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'flow-rows-file': { type: 'string' },\n 'original-flow-rows-file': { type: 'string' },\n 'process-rows-file': { type: 'string' },\n 'flow-publish-policy': { type: 'string' },\n 'process-publish-policy': { type: 'string' },\n 'no-rewrite-process-flow-refs': { type: 'boolean' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'max-workers': { type: 'string' },\n 'target-user-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'FLOW_PUBLISH_REVIEWED_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const processPublishPolicy =\n typeof values['process-publish-policy'] === 'string'\n ? values['process-publish-policy']\n : 'append_only_bump';\n if (\n processPublishPolicy !== 'skip' &&\n processPublishPolicy !== 'append_only_bump' &&\n processPublishPolicy !== 'upsert_current_version'\n ) {\n throw new CliError(\n 'Expected --process-publish-policy to be one of: skip, append_only_bump, upsert_current_version.',\n {\n code: 'FLOW_PUBLISH_REVIEWED_PROCESS_POLICY_INVALID',\n exitCode: 2,\n },\n );\n }\n\n const flowPublishPolicy =\n typeof values['flow-publish-policy'] === 'string'\n ? values['flow-publish-policy']\n : 'append_only_bump';\n if (\n flowPublishPolicy !== 'skip' &&\n flowPublishPolicy !== 'append_only_bump' &&\n flowPublishPolicy !== 'upsert_current_version'\n ) {\n throw new CliError(\n 'Expected --flow-publish-policy to be one of: skip, append_only_bump, upsert_current_version.',\n {\n code: 'FLOW_PUBLISH_REVIEWED_FLOW_POLICY_INVALID',\n exitCode: 2,\n },\n );\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n flowRowsFile: typeof values['flow-rows-file'] === 'string' ? values['flow-rows-file'] : '',\n originalFlowRowsFile:\n typeof values['original-flow-rows-file'] === 'string'\n ? values['original-flow-rows-file']\n : null,\n processRowsFile:\n typeof values['process-rows-file'] === 'string' ? values['process-rows-file'] : null,\n flowPublishPolicy,\n processPublishPolicy,\n rewriteProcessFlowRefs: !values['no-rewrite-process-flow-refs'],\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n maxWorkers: parsePositiveIntegerFlag(\n values['max-workers'],\n '--max-workers',\n 'INVALID_FLOW_PUBLISH_REVIEWED_MAX_WORKERS',\n ),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n };\n}\n\nfunction parseFlowBuildAliasMapFlags(args: string[]): {\n help: boolean;\n json: boolean;\n oldFlowFiles: string[];\n newFlowFiles: string[];\n seedAliasMapFile: string | null;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'old-flow-file': { type: 'string', multiple: true },\n 'new-flow-file': { type: 'string', multiple: true },\n 'seed-alias-map': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n oldFlowFiles: Array.isArray(values['old-flow-file'])\n ? values['old-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n newFlowFiles: Array.isArray(values['new-flow-file'])\n ? values['new-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n seedAliasMapFile:\n typeof values['seed-alias-map'] === 'string' ? values['seed-alias-map'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowScanProcessFlowRefsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n catalogFlowFiles: string[];\n aliasMapFile: string | null;\n excludeEmergy: boolean;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'catalog-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'exclude-emergy': { type: 'boolean' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n catalogFlowFiles: Array.isArray(values['catalog-flow-file'])\n ? values['catalog-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n excludeEmergy: Boolean(values['exclude-emergy']),\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowPlanProcessFlowRepairsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n aliasMapFile: string | null;\n scanFindingsFile: string | null;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'scan-findings': { type: 'string' },\n 'auto-patch-policy': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_PLAN_PROCESS_FLOW_REPAIRS_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n scanFindingsFile: typeof values['scan-findings'] === 'string' ? values['scan-findings'] : null,\n autoPatchPolicy,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowApplyProcessFlowRepairsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n aliasMapFile: string | null;\n scanFindingsFile: string | null;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n processPoolFile: string | null;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'scan-findings': { type: 'string' },\n 'auto-patch-policy': { type: 'string' },\n 'process-pool-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_APPLY_PROCESS_FLOW_REPAIRS_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n scanFindingsFile: typeof values['scan-findings'] === 'string' ? values['scan-findings'] : null,\n autoPatchPolicy,\n processPoolFile:\n typeof values['process-pool-file'] === 'string' ? values['process-pool-file'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowRegenProductFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n catalogFlowFiles: string[];\n aliasMapFile: string | null;\n excludeEmergy: boolean;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n apply: boolean;\n processPoolFile: string | null;\n tidasMode: 'auto' | 'required' | 'skip';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'catalog-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'exclude-emergy': { type: 'boolean' },\n 'auto-patch-policy': { type: 'string' },\n apply: { type: 'boolean' },\n 'process-pool-file': { type: 'string' },\n 'tidas-mode': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_REGEN_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n const tidasMode = typeof values['tidas-mode'] === 'string' ? values['tidas-mode'] : 'auto';\n if (tidasMode !== 'auto' && tidasMode !== 'required' && tidasMode !== 'skip') {\n throw new CliError('Expected --tidas-mode to be one of auto, required, or skip.', {\n code: 'INVALID_FLOW_REGEN_TIDAS_MODE',\n exitCode: 2,\n });\n }\n\n if (typeof values['process-pool-file'] === 'string' && !values.apply) {\n throw new CliError('Use --process-pool-file only with --apply.', {\n code: 'FLOW_REGEN_PROCESS_POOL_REQUIRES_APPLY',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n catalogFlowFiles: Array.isArray(values['catalog-flow-file'])\n ? values['catalog-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n excludeEmergy: Boolean(values['exclude-emergy']),\n autoPatchPolicy,\n apply: Boolean(values.apply),\n processPoolFile:\n typeof values['process-pool-file'] === 'string' ? values['process-pool-file'] : null,\n tidasMode,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowValidateProcessesFlags(args: string[]): {\n help: boolean;\n json: boolean;\n originalProcessesFile: string;\n patchedProcessesFile: string;\n scopeFlowFiles: string[];\n tidasMode: 'auto' | 'required' | 'skip';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'original-processes-file': { type: 'string' },\n 'patched-processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'tidas-mode': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const tidasMode = typeof values['tidas-mode'] === 'string' ? values['tidas-mode'] : 'auto';\n if (tidasMode !== 'auto' && tidasMode !== 'required' && tidasMode !== 'skip') {\n throw new CliError('Expected --tidas-mode to be one of auto, required, or skip.', {\n code: 'INVALID_FLOW_VALIDATE_TIDAS_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n originalProcessesFile:\n typeof values['original-processes-file'] === 'string'\n ? values['original-processes-file']\n : '',\n patchedProcessesFile:\n typeof values['patched-processes-file'] === 'string' ? values['patched-processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n tidasMode,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowGetFlags(args: string[]): {\n help: boolean;\n json: boolean;\n flowId: string;\n version: string | null;\n userId: string | null;\n stateCode: number | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string' },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n flowId: typeof values.id === 'string' ? values.id : '',\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCode: parseOptionalNonNegativeIntegerFlag(\n values['state-code'],\n '--state-code',\n 'INVALID_FLOW_GET_STATE_CODE',\n ),\n };\n}\n\nfunction parseFlowFetchRowsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n refsFile: string;\n outDir: string;\n allowLatestFallback: boolean;\n failOnMissing: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'refs-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'no-latest-fallback': { type: 'boolean' },\n 'fail-on-missing': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n refsFile: typeof values['refs-file'] === 'string' ? values['refs-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n allowLatestFallback: values['no-latest-fallback'] !== true,\n failOnMissing: values['fail-on-missing'] === true,\n };\n}\n\nfunction parseFlowMaterializeDecisionsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n decisionFile: string;\n flowRowsFile: string;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'decision-file': { type: 'string' },\n 'flow-rows-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n decisionFile: typeof values['decision-file'] === 'string' ? values['decision-file'] : '',\n flowRowsFile: typeof values['flow-rows-file'] === 'string' ? values['flow-rows-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowListFlags(args: string[]): {\n help: boolean;\n json: boolean;\n ids: string[];\n version: string | null;\n userId: string | null;\n stateCodes: number[];\n typeOfDataset: string[];\n limit: number | null;\n offset: number | null;\n all: boolean;\n pageSize: number | null;\n order: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string', multiple: true },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n type: { type: 'string', multiple: true },\n 'type-of-dataset': { type: 'string', multiple: true },\n limit: { type: 'string' },\n offset: { type: 'string' },\n all: { type: 'boolean' },\n 'page-size': { type: 'string' },\n order: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalPositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseStateCodeValues = (value: unknown): number[] => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map((entry) => {\n const parsed = Number.parseInt(String(entry), 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError('Expected --state-code to be a non-negative integer.', {\n code: 'INVALID_FLOW_LIST_STATE_CODE',\n exitCode: 2,\n });\n }\n return parsed;\n });\n };\n const toStringArray = (value: unknown): string[] =>\n Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n\n if (values['page-size'] !== undefined && !values.all) {\n throw new CliError('Use --page-size only with --all.', {\n code: 'FLOW_LIST_PAGE_SIZE_REQUIRES_ALL',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n ids: toStringArray(values.id),\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCodes: parseStateCodeValues(values['state-code']),\n typeOfDataset: [...toStringArray(values['type-of-dataset']), ...toStringArray(values.type)],\n limit: parseOptionalPositiveIntegerFlag(values.limit, '--limit', 'INVALID_FLOW_LIST_LIMIT'),\n offset: parseOptionalNonNegativeIntegerFlag(\n values.offset,\n '--offset',\n 'INVALID_FLOW_LIST_OFFSET',\n ),\n all: Boolean(values.all),\n pageSize: parseOptionalPositiveIntegerFlag(\n values['page-size'],\n '--page-size',\n 'INVALID_FLOW_LIST_PAGE_SIZE',\n ),\n order: typeof values.order === 'string' ? values.order : null,\n };\n}\n\nfunction parseReviewProcessFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runRoot: string;\n runId: string;\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 '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 runRoot: typeof values['run-root'] === 'string' ? values['run-root'] : '',\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n enableLlm: Boolean(values['enable-llm']),\n llmModel: typeof values['llm-model'] === 'string' ? values['llm-model'] : undefined,\n llmMaxProcesses: llmMaxProcessesValue,\n };\n}\n\nfunction parseReviewFlowFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string | undefined;\n flowsDir: string | undefined;\n runRoot: string | undefined;\n runId: string | undefined;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n enableLlm: boolean;\n llmModel: string | undefined;\n llmMaxFlows: number | undefined;\n llmBatchSize: number | undefined;\n similarityThreshold: number | undefined;\n methodologyId: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'rows-file': { type: 'string' },\n 'flows-dir': { type: 'string' },\n 'run-root': { type: 'string' },\n 'run-id': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n 'enable-llm': { type: 'boolean' },\n 'llm-model': { type: 'string' },\n 'llm-max-flows': { type: 'string' },\n 'llm-batch-size': { type: 'string' },\n 'similarity-threshold': { type: 'string' },\n 'methodology-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const similarityThreshold =\n typeof values['similarity-threshold'] === 'string'\n ? Number.parseFloat(values['similarity-threshold'])\n : undefined;\n if (\n values['similarity-threshold'] !== undefined &&\n (!Number.isFinite(similarityThreshold) || (similarityThreshold as number) <= 0)\n ) {\n throw new CliError('Expected --similarity-threshold to be a positive number.', {\n code: 'INVALID_SIMILARITY_THRESHOLD',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : undefined,\n flowsDir: typeof values['flows-dir'] === 'string' ? values['flows-dir'] : undefined,\n runRoot: typeof values['run-root'] === 'string' ? values['run-root'] : undefined,\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n enableLlm: Boolean(values['enable-llm']),\n llmModel: typeof values['llm-model'] === 'string' ? values['llm-model'] : undefined,\n llmMaxFlows: parsePositiveIntegerFlag(\n values['llm-max-flows'],\n '--llm-max-flows',\n 'INVALID_LLM_MAX_FLOWS',\n ),\n llmBatchSize: parsePositiveIntegerFlag(\n values['llm-batch-size'],\n '--llm-batch-size',\n 'INVALID_LLM_BATCH_SIZE',\n ),\n similarityThreshold,\n methodologyId:\n typeof values['methodology-id'] === 'string' ? values['methodology-id'] : undefined,\n };\n}\n\nfunction parseReviewLifecyclemodelFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n };\n}\n\nfunction parseLifecyclemodelPublishFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n publishProcesses: boolean;\n publishRelations: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n 'publish-processes': { type: 'boolean' },\n 'publish-relations': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n publishProcesses: Boolean(values['publish-processes']),\n publishRelations: Boolean(values['publish-relations']),\n };\n}\n\nfunction parseLifecyclemodelValidateBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n engine: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n engine: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n engine: typeof values.engine === 'string' ? values.engine : undefined,\n };\n}\n\nfunction parseLifecyclemodelPublishBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n };\n}\n\nfunction parseLifecyclemodelBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseLifecyclemodelOrchestrateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n action: string;\n inputPath: string;\n outDir: string | null;\n runDir: string;\n allowProcessBuild: boolean;\n allowSubmodelBuild: boolean;\n publishLifecyclemodels: boolean;\n publishResultingProcessRelations: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n let positionals: string[];\n try {\n ({ values, positionals } = parseArgs({\n args,\n allowPositionals: true,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n request: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'run-dir': { type: 'string' },\n 'allow-process-build': { type: 'boolean' },\n 'allow-submodel-build': { type: 'boolean' },\n 'publish-lifecyclemodels': { type: 'boolean' },\n 'publish-resulting-process-relations': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const inputAlias = typeof values.request === 'string' ? values.request : '';\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n action: positionals[0] ?? '',\n inputPath: typeof values.input === 'string' ? values.input : inputAlias,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n allowProcessBuild: Boolean(values['allow-process-build']),\n allowSubmodelBuild: Boolean(values['allow-submodel-build']),\n publishLifecyclemodels: Boolean(values['publish-lifecyclemodels']),\n publishResultingProcessRelations: Boolean(values['publish-resulting-process-relations']),\n };\n}\n\nfunction parseProcessAutoBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseProcessGetFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processId: string;\n version: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string' },\n version: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processId: typeof values.id === 'string' ? values.id : '',\n version: typeof values.version === 'string' ? values.version : null,\n };\n}\n\nfunction 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 parseProcessBatchBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction plannedCommand(command: string, subcommand?: string): CliResult {\n const suffix = subcommand ? ` ${subcommand}` : '';\n return {\n exitCode: 2,\n stdout: '',\n stderr: `Command '${command}${suffix}' is part of the planned unified surface but is not implemented yet.\\n`,\n };\n}\n\nfunction applyRemoteOverrides(\n env: NodeJS.ProcessEnv,\n overrides: Pick<ReturnType<typeof parseRemoteFlags>, 'apiBaseUrl' | 'apiKey' | 'region'>,\n) {\n const runtimeEnv = readRuntimeEnv(env);\n\n return {\n ...env,\n TIANGONG_LCA_API_BASE_URL: overrides.apiBaseUrl ?? runtimeEnv.apiBaseUrl ?? undefined,\n TIANGONG_LCA_API_KEY: overrides.apiKey ?? runtimeEnv.apiKey ?? undefined,\n TIANGONG_LCA_REGION: overrides.region ?? runtimeEnv.region,\n } satisfies NodeJS.ProcessEnv;\n}\n\nexport async function executeCli(argv: string[], deps: CliDeps): Promise<CliResult> {\n try {\n const { flags, command, subcommand, commandArgs } = parseCommandLine(argv);\n const publishImpl = deps.runPublishImpl ?? runPublish;\n const validationImpl = deps.runValidationImpl ?? runValidation;\n const lifecyclemodelAutoBuildImpl =\n deps.runLifecyclemodelAutoBuildImpl ?? runLifecyclemodelAutoBuild;\n const lifecyclemodelBuildImpl =\n deps.runLifecyclemodelBuildResultingProcessImpl ?? runLifecyclemodelBuildResultingProcess;\n const lifecyclemodelPublishImpl =\n deps.runLifecyclemodelPublishResultingProcessImpl ?? runLifecyclemodelPublishResultingProcess;\n const lifecyclemodelValidateImpl =\n deps.runLifecyclemodelValidateBuildImpl ?? runLifecyclemodelValidateBuild;\n const lifecyclemodelPublishBuildImpl =\n deps.runLifecyclemodelPublishBuildImpl ?? runLifecyclemodelPublishBuild;\n const lifecyclemodelOrchestrateImpl =\n deps.runLifecyclemodelOrchestrateImpl ?? runLifecyclemodelOrchestrate;\n const processGetImpl = deps.runProcessGetImpl ?? runProcessGet;\n const processAutoBuildImpl = deps.runProcessAutoBuildImpl ?? runProcessAutoBuild;\n const processBatchBuildImpl = deps.runProcessBatchBuildImpl ?? runProcessBatchBuild;\n const processResumeBuildImpl = deps.runProcessResumeBuildImpl ?? runProcessResumeBuild;\n const processPublishBuildImpl = deps.runProcessPublishBuildImpl ?? runProcessPublishBuild;\n const processReviewImpl = deps.runProcessReviewImpl ?? runProcessReview;\n const flowReviewImpl = deps.runFlowReviewImpl ?? runFlowReview;\n const lifecyclemodelReviewImpl = deps.runLifecyclemodelReviewImpl ?? runLifecyclemodelReview;\n const flowRemediateImpl = deps.runFlowRemediateImpl ?? runFlowRemediate;\n const flowFetchRowsImpl = deps.runFlowFetchRowsImpl ?? runFlowFetchRows;\n const flowMaterializeDecisionsImpl =\n deps.runFlowMaterializeDecisionsImpl ?? runFlowMaterializeDecisions;\n const flowGetImpl = deps.runFlowGetImpl ?? runFlowGet;\n const flowListImpl = deps.runFlowListImpl ?? runFlowList;\n const flowPublishVersionImpl = deps.runFlowPublishVersionImpl ?? runFlowPublishVersion;\n const flowReviewedPublishDataImpl =\n deps.runFlowReviewedPublishDataImpl ?? runFlowReviewedPublishData;\n const flowBuildAliasMapImpl = deps.runFlowBuildAliasMapImpl ?? runFlowBuildAliasMap;\n const flowScanProcessFlowRefsImpl =\n deps.runFlowScanProcessFlowRefsImpl ?? runFlowScanProcessFlowRefs;\n const flowPlanProcessFlowRepairsImpl =\n deps.runFlowPlanProcessFlowRepairsImpl ?? runFlowPlanProcessFlowRepairs;\n const flowApplyProcessFlowRepairsImpl =\n deps.runFlowApplyProcessFlowRepairsImpl ?? runFlowApplyProcessFlowRepairs;\n const flowRegenProductImpl = deps.runFlowRegenProductImpl ?? runFlowRegenProduct;\n const flowValidateProcessesImpl = deps.runFlowValidateProcessesImpl ?? runFlowValidateProcesses;\n\n if (flags.version) {\n return { exitCode: 0, stdout: '0.0.1\\n', stderr: '' };\n }\n\n if (!command || command === 'help' || flags.help) {\n return { exitCode: 0, stdout: `${renderMainHelp(deps.dotEnvStatus)}\\n`, stderr: '' };\n }\n\n if (command === 'doctor') {\n const doctorFlags = parseDoctorFlags(commandArgs);\n if (doctorFlags.help) {\n return { exitCode: 0, stdout: `${renderDoctorHelp()}\\n`, stderr: '' };\n }\n const report = buildDoctorReport(deps.env, deps.dotEnvStatus);\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: doctorFlags.json ? `${JSON.stringify(report)}\\n` : renderDoctorText(report),\n stderr: '',\n };\n }\n\n if (command === 'search' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderSearchHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'search' && subcommand) {\n const remoteFlags = parseRemoteFlags(commandArgs);\n const commandKey = `search:${subcommand}` as const;\n if (remoteFlags.help) {\n return { exitCode: 0, stdout: `${getRemoteCommandHelp(commandKey)}\\n`, stderr: '' };\n }\n const env = applyRemoteOverrides(deps.env, remoteFlags);\n\n return {\n exitCode: 0,\n stdout: await executeRemoteCommand({\n commandKey,\n inputPath: remoteFlags.inputPath,\n env,\n timeoutMs: remoteFlags.timeoutMs,\n dryRun: remoteFlags.dryRun,\n compactJson: remoteFlags.json,\n fetchImpl: deps.fetchImpl,\n }),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && !subcommand) {\n return { exitCode: 0, stdout: `${renderLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'auto-build') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelAutoBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelAutoBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'build-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelBuildResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishImpl({\n runDir: lifecyclemodelFlags.runDir,\n publishProcesses: lifecyclemodelFlags.publishProcesses,\n publishRelations: lifecyclemodelFlags.publishRelations,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'validate-build') {\n const lifecyclemodelFlags = parseLifecyclemodelValidateBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelValidateBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelValidateImpl({\n runDir: lifecyclemodelFlags.runDir,\n engine: lifecyclemodelFlags.engine,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-build') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishBuildImpl({\n runDir: lifecyclemodelFlags.runDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'orchestrate') {\n const lifecyclemodelFlags = parseLifecyclemodelOrchestrateFlags(commandArgs);\n if (lifecyclemodelFlags.help || !lifecyclemodelFlags.action) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelOrchestrateHelp()}\\n`,\n stderr: '',\n };\n }\n if (\n lifecyclemodelFlags.action !== 'plan' &&\n lifecyclemodelFlags.action !== 'execute' &&\n lifecyclemodelFlags.action !== 'publish'\n ) {\n throw new CliError(\n \"lifecyclemodel orchestrate action must be 'plan', 'execute', or 'publish'.\",\n {\n code: 'INVALID_ARGS',\n exitCode: 2,\n },\n );\n }\n\n const report = await lifecyclemodelOrchestrateImpl({\n action: lifecyclemodelFlags.action,\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n runDir: lifecyclemodelFlags.runDir,\n allowProcessBuild: lifecyclemodelFlags.allowProcessBuild,\n allowSubmodelBuild: lifecyclemodelFlags.allowSubmodelBuild,\n publishLifecyclemodels: lifecyclemodelFlags.publishLifecyclemodels,\n publishResultingProcessRelations: lifecyclemodelFlags.publishResultingProcessRelations,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.action === 'execute' && report.status !== 'completed' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && !subcommand) {\n return { exitCode: 0, stdout: `${renderProcessHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'process' && subcommand === 'get') {\n const processFlags = parseProcessGetFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessGetHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processGetImpl({\n processId: processFlags.processId,\n version: processFlags.version,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === '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 === 'batch-build') {\n const processFlags = parseProcessBatchBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessBatchBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processBatchBuildImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && !subcommand) {\n return { exitCode: 0, stdout: `${renderFlowHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'flow' && subcommand === 'get') {\n const flowFlags = parseFlowGetFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowGetHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowGetImpl({\n flowId: flowFlags.flowId,\n version: flowFlags.version,\n userId: flowFlags.userId,\n stateCode: flowFlags.stateCode,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'list') {\n const flowFlags = parseFlowListFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowListHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowListImpl({\n ids: flowFlags.ids,\n version: flowFlags.version,\n userId: flowFlags.userId,\n stateCodes: flowFlags.stateCodes,\n typeOfDataset: flowFlags.typeOfDataset,\n limit: flowFlags.limit,\n offset: flowFlags.offset,\n all: flowFlags.all,\n pageSize: flowFlags.pageSize,\n order: flowFlags.order,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'remediate') {\n const flowFlags = parseFlowRemediateFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowRemediateHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowRemediateImpl({\n inputFile: flowFlags.inputFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'fetch-rows') {\n const flowFlags = parseFlowFetchRowsFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowFetchRowsHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowFetchRowsImpl({\n refsFile: flowFlags.refsFile,\n outDir: flowFlags.outDir,\n allowLatestFallback: flowFlags.allowLatestFallback,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode:\n flowFlags.failOnMissing &&\n report.status === 'completed_flow_row_materialization_with_gaps'\n ? 1\n : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'materialize-decisions') {\n const flowFlags = parseFlowMaterializeDecisionsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowMaterializeDecisionsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowMaterializeDecisionsImpl({\n decisionFile: flowFlags.decisionFile,\n flowRowsFile: flowFlags.flowRowsFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'publish-version') {\n const flowFlags = parseFlowPublishVersionFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowPublishVersionHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowPublishVersionImpl({\n inputFile: flowFlags.inputFile,\n outDir: flowFlags.outDir,\n commit: flowFlags.commit,\n maxWorkers: flowFlags.maxWorkers,\n limit: flowFlags.limit,\n targetUserId: flowFlags.targetUserId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_flow_publish_version_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'publish-reviewed-data') {\n const flowFlags = parseFlowPublishReviewedDataFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowPublishReviewedDataHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowReviewedPublishDataImpl({\n flowRowsFile: flowFlags.flowRowsFile,\n originalFlowRowsFile: flowFlags.originalFlowRowsFile,\n processRowsFile: flowFlags.processRowsFile,\n outDir: flowFlags.outDir,\n flowPublishPolicy: flowFlags.flowPublishPolicy,\n processPublishPolicy: flowFlags.processPublishPolicy,\n rewriteProcessFlowRefs: flowFlags.rewriteProcessFlowRefs,\n commit: flowFlags.commit,\n maxWorkers: flowFlags.maxWorkers,\n targetUserId: flowFlags.targetUserId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_flow_publish_reviewed_data_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'build-alias-map') {\n const flowFlags = parseFlowBuildAliasMapFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowBuildAliasMapHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowBuildAliasMapImpl({\n oldFlowFiles: flowFlags.oldFlowFiles,\n newFlowFiles: flowFlags.newFlowFiles,\n seedAliasMapFile: flowFlags.seedAliasMapFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'scan-process-flow-refs') {\n const flowFlags = parseFlowScanProcessFlowRefsFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowScanProcessFlowRefsHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowScanProcessFlowRefsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n catalogFlowFiles: flowFlags.catalogFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n excludeEmergy: flowFlags.excludeEmergy,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'plan-process-flow-repairs') {\n const flowFlags = parseFlowPlanProcessFlowRepairsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowPlanProcessFlowRepairsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowPlanProcessFlowRepairsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n scanFindingsFile: flowFlags.scanFindingsFile,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'apply-process-flow-repairs') {\n const flowFlags = parseFlowApplyProcessFlowRepairsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowApplyProcessFlowRepairsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowApplyProcessFlowRepairsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n scanFindingsFile: flowFlags.scanFindingsFile,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n processPoolFile: flowFlags.processPoolFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'regen-product') {\n const flowFlags = parseFlowRegenProductFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowRegenProductHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowRegenProductImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n catalogFlowFiles: flowFlags.catalogFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n excludeEmergy: flowFlags.excludeEmergy,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n apply: flowFlags.apply,\n processPoolFile: flowFlags.processPoolFile,\n tidasMode: flowFlags.tidasMode,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: report.validation.ok === false ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'validate-processes') {\n const flowFlags = parseFlowValidateProcessesFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowValidateProcessesHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowValidateProcessesImpl({\n originalProcessesFile: flowFlags.originalProcessesFile,\n patchedProcessesFile: flowFlags.patchedProcessesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n tidasMode: flowFlags.tidasMode,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: report.summary.failed > 0 ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'admin' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderAdminHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'admin' && subcommand === 'embedding-run') {\n const remoteFlags = parseRemoteFlags(commandArgs);\n if (remoteFlags.help) {\n return {\n exitCode: 0,\n stdout: `${getRemoteCommandHelp('admin:embedding-run')}\\n`,\n stderr: '',\n };\n }\n const env = applyRemoteOverrides(deps.env, remoteFlags);\n\n return {\n exitCode: 0,\n stdout: await executeRemoteCommand({\n commandKey: 'admin:embedding-run',\n inputPath: remoteFlags.inputPath,\n env,\n timeoutMs: remoteFlags.timeoutMs,\n dryRun: remoteFlags.dryRun,\n compactJson: remoteFlags.json,\n fetchImpl: deps.fetchImpl,\n }),\n stderr: '',\n };\n }\n\n if (command === 'publish' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderPublishHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'publish' && subcommand === 'run') {\n const publishFlags = parsePublishFlags(commandArgs);\n if (publishFlags.help) {\n return { exitCode: 0, stdout: `${renderPublishHelp()}\\n`, stderr: '' };\n }\n\n const report = await publishImpl({\n inputPath: publishFlags.inputPath,\n outDir: publishFlags.outDir,\n commit: publishFlags.commitOverride,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, publishFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'validation' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderValidationHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'validation' && subcommand === 'run') {\n const validationFlags = parseValidationFlags(commandArgs);\n if (validationFlags.help) {\n return { exitCode: 0, stdout: `${renderValidationHelp()}\\n`, stderr: '' };\n }\n\n const report = await validationImpl({\n inputDir: validationFlags.inputDir,\n engine: validationFlags.engine,\n reportFile: validationFlags.reportFile,\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, validationFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && !subcommand) {\n return { exitCode: 0, stdout: `${renderReviewHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'review' && subcommand === 'process') {\n const reviewFlags = parseReviewProcessFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewProcessHelp()}\\n`, stderr: '' };\n }\n\n const report = await processReviewImpl({\n runRoot: reviewFlags.runRoot,\n runId: reviewFlags.runId,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n enableLlm: reviewFlags.enableLlm,\n llmModel: reviewFlags.llmModel,\n llmMaxProcesses: reviewFlags.llmMaxProcesses,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && subcommand === 'flow') {\n const reviewFlags = parseReviewFlowFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewFlowHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowReviewImpl({\n rowsFile: reviewFlags.rowsFile,\n flowsDir: reviewFlags.flowsDir,\n runRoot: reviewFlags.runRoot,\n runId: reviewFlags.runId,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n enableLlm: reviewFlags.enableLlm,\n llmModel: reviewFlags.llmModel,\n llmMaxFlows: reviewFlags.llmMaxFlows,\n llmBatchSize: reviewFlags.llmBatchSize,\n similarityThreshold: reviewFlags.similarityThreshold,\n methodologyId: reviewFlags.methodologyId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && subcommand === 'lifecyclemodel') {\n const reviewFlags = parseReviewLifecyclemodelFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n const report = await lifecyclemodelReviewImpl({\n runDir: reviewFlags.runDir,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n return plannedCommand(command, subcommand ?? undefined);\n } catch (error) {\n const payload = toErrorPayload(error);\n const exitCode = error instanceof CliError ? error.exitCode : 1;\n return {\n exitCode,\n stdout: '',\n stderr: `${JSON.stringify(payload)}\\n`,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseArgs } from 'node:util';\nimport { buildDoctorReport, readRuntimeEnv } from './lib/env.js';\nimport type { DotEnvLoadResult } from './lib/dotenv.js';\nimport { CliError, toErrorPayload } from './lib/errors.js';\nimport type { FetchLike } from './lib/http.js';\nimport { stringifyJson } from './lib/io.js';\nimport { loadCliPackageVersion } from './lib/package-version.js';\nimport {\n runLifecyclemodelAutoBuild,\n type LifecyclemodelAutoBuildReport,\n type RunLifecyclemodelAutoBuildOptions,\n} from './lib/lifecyclemodel-auto-build.js';\nimport {\n runLifecyclemodelBuildResultingProcess,\n type LifecyclemodelResultingProcessReport,\n type RunLifecyclemodelResultingProcessOptions,\n} from './lib/lifecyclemodel-resulting-process.js';\nimport {\n runLifecyclemodelPublishResultingProcess,\n type LifecyclemodelPublishResultingProcessReport,\n type RunLifecyclemodelPublishResultingProcessOptions,\n} from './lib/lifecyclemodel-publish-resulting-process.js';\nimport {\n runLifecyclemodelValidateBuild,\n type LifecyclemodelValidateBuildReport,\n type RunLifecyclemodelValidateBuildOptions,\n} from './lib/lifecyclemodel-validate-build.js';\nimport {\n runLifecyclemodelPublishBuild,\n type LifecyclemodelPublishBuildReport,\n type RunLifecyclemodelPublishBuildOptions,\n} from './lib/lifecyclemodel-publish-build.js';\nimport {\n runLifecyclemodelOrchestrate,\n type LifecyclemodelOrchestrateReport,\n type RunLifecyclemodelOrchestrateOptions,\n} from './lib/lifecyclemodel-orchestrate.js';\nimport {\n runProcessAutoBuild,\n type ProcessAutoBuildReport,\n type RunProcessAutoBuildOptions,\n} from './lib/process-auto-build.js';\nimport {\n runProcessGet,\n type ProcessGetReport,\n type RunProcessGetOptions,\n} from './lib/process-get.js';\nimport {\n runProcessList,\n type ProcessListReport,\n type RunProcessListOptions,\n} from './lib/process-list.js';\nimport {\n runProcessBatchBuild,\n type ProcessBatchBuildReport,\n type RunProcessBatchBuildOptions,\n} from './lib/process-batch-build.js';\nimport {\n runProcessResumeBuild,\n type ProcessResumeBuildReport,\n type RunProcessResumeBuildOptions,\n} from './lib/process-resume-build.js';\nimport {\n runProcessPublishBuild,\n type ProcessPublishBuildReport,\n type RunProcessPublishBuildOptions,\n} from './lib/process-publish-build.js';\nimport {\n runProcessSaveDraft,\n type ProcessSaveDraftReport,\n type RunProcessSaveDraftOptions,\n} from './lib/process-save-draft-run.js';\nimport { runPublish, type PublishReport, type RunPublishOptions } from './lib/publish.js';\nimport {\n runProcessReview,\n type ProcessReviewReport,\n type RunProcessReviewOptions,\n} from './lib/review-process.js';\nimport {\n runFlowReview,\n type FlowReviewReport,\n type RunFlowReviewOptions,\n} from './lib/review-flow.js';\nimport {\n runLifecyclemodelReview,\n type LifecyclemodelReviewReport,\n type RunLifecyclemodelReviewOptions,\n} from './lib/review-lifecyclemodel.js';\nimport {\n runFlowRemediate,\n type FlowRemediationReport,\n type RunFlowRemediateOptions,\n} from './lib/flow-remediate.js';\nimport {\n runFlowFetchRows,\n type FlowFetchRowsReport,\n type RunFlowFetchRowsOptions,\n} from './lib/flow-fetch-rows.js';\nimport {\n runFlowMaterializeDecisions,\n type FlowMaterializeDecisionsReport,\n type RunFlowMaterializeDecisionsOptions,\n} from './lib/flow-materialize-decisions.js';\nimport { runFlowGet, type FlowGetReport, type RunFlowGetOptions } from './lib/flow-get.js';\nimport { runFlowList, type FlowListReport, type RunFlowListOptions } from './lib/flow-list.js';\nimport {\n runFlowPublishVersion,\n type FlowPublishVersionReport,\n type RunFlowPublishVersionOptions,\n} from './lib/flow-publish-version.js';\nimport {\n runFlowReviewedPublishData,\n type FlowReviewedPublishDataReport,\n type RunFlowReviewedPublishDataOptions,\n} from './lib/flow-publish-reviewed-data.js';\nimport {\n runFlowBuildAliasMap,\n type FlowBuildAliasMapReport,\n type RunFlowBuildAliasMapOptions,\n} from './lib/flow-build-alias-map.js';\nimport {\n runFlowApplyProcessFlowRepairs,\n runFlowPlanProcessFlowRepairs,\n runFlowRegenProduct,\n runFlowScanProcessFlowRefs,\n runFlowValidateProcesses,\n type FlowApplyProcessFlowRepairsReport,\n type FlowPlanProcessFlowRepairsReport,\n type FlowRegenProductReport,\n type FlowScanProcessFlowRefsReport,\n type FlowValidateProcessesReport,\n type RunFlowApplyProcessFlowRepairsOptions,\n type RunFlowPlanProcessFlowRepairsOptions,\n type RunFlowRegenProductOptions,\n type RunFlowScanProcessFlowRefsOptions,\n type RunFlowValidateProcessesOptions,\n} from './lib/flow-regen-product.js';\nimport { executeRemoteCommand, getRemoteCommandHelp } from './lib/remote.js';\nimport {\n runValidation,\n type RunValidationOptions,\n type ValidationRunReport,\n} from './lib/validation.js';\n\nexport type CliDeps = {\n env: NodeJS.ProcessEnv;\n dotEnvStatus: DotEnvLoadResult;\n fetchImpl: FetchLike;\n runPublishImpl?: (options: RunPublishOptions) => Promise<PublishReport>;\n runValidationImpl?: (options: RunValidationOptions) => Promise<ValidationRunReport>;\n runLifecyclemodelAutoBuildImpl?: (\n options: RunLifecyclemodelAutoBuildOptions,\n ) => Promise<LifecyclemodelAutoBuildReport>;\n runLifecyclemodelBuildResultingProcessImpl?: (\n options: RunLifecyclemodelResultingProcessOptions,\n ) => Promise<LifecyclemodelResultingProcessReport>;\n runLifecyclemodelPublishResultingProcessImpl?: (\n options: RunLifecyclemodelPublishResultingProcessOptions,\n ) => Promise<LifecyclemodelPublishResultingProcessReport>;\n runLifecyclemodelValidateBuildImpl?: (\n options: RunLifecyclemodelValidateBuildOptions,\n ) => Promise<LifecyclemodelValidateBuildReport>;\n runLifecyclemodelPublishBuildImpl?: (\n options: RunLifecyclemodelPublishBuildOptions,\n ) => Promise<LifecyclemodelPublishBuildReport>;\n runLifecyclemodelOrchestrateImpl?: (\n options: RunLifecyclemodelOrchestrateOptions,\n ) => Promise<LifecyclemodelOrchestrateReport>;\n runProcessGetImpl?: (options: RunProcessGetOptions) => Promise<ProcessGetReport>;\n runProcessListImpl?: (options: RunProcessListOptions) => Promise<ProcessListReport>;\n runProcessAutoBuildImpl?: (\n options: RunProcessAutoBuildOptions,\n ) => Promise<ProcessAutoBuildReport>;\n runProcessBatchBuildImpl?: (\n options: RunProcessBatchBuildOptions,\n ) => Promise<ProcessBatchBuildReport>;\n runProcessResumeBuildImpl?: (\n options: RunProcessResumeBuildOptions,\n ) => Promise<ProcessResumeBuildReport>;\n runProcessPublishBuildImpl?: (\n options: RunProcessPublishBuildOptions,\n ) => Promise<ProcessPublishBuildReport>;\n runProcessSaveDraftImpl?: (\n options: RunProcessSaveDraftOptions,\n ) => Promise<ProcessSaveDraftReport>;\n runProcessReviewImpl?: (options: RunProcessReviewOptions) => Promise<ProcessReviewReport>;\n runFlowReviewImpl?: (options: RunFlowReviewOptions) => Promise<FlowReviewReport>;\n runLifecyclemodelReviewImpl?: (\n options: RunLifecyclemodelReviewOptions,\n ) => Promise<LifecyclemodelReviewReport>;\n runFlowRemediateImpl?: (options: RunFlowRemediateOptions) => Promise<FlowRemediationReport>;\n runFlowFetchRowsImpl?: (options: RunFlowFetchRowsOptions) => Promise<FlowFetchRowsReport>;\n runFlowMaterializeDecisionsImpl?: (\n options: RunFlowMaterializeDecisionsOptions,\n ) => Promise<FlowMaterializeDecisionsReport>;\n runFlowGetImpl?: (options: RunFlowGetOptions) => Promise<FlowGetReport>;\n runFlowListImpl?: (options: RunFlowListOptions) => Promise<FlowListReport>;\n runFlowPublishVersionImpl?: (\n options: RunFlowPublishVersionOptions,\n ) => Promise<FlowPublishVersionReport>;\n runFlowReviewedPublishDataImpl?: (\n options: RunFlowReviewedPublishDataOptions,\n ) => Promise<FlowReviewedPublishDataReport>;\n runFlowBuildAliasMapImpl?: (\n options: RunFlowBuildAliasMapOptions,\n ) => Promise<FlowBuildAliasMapReport>;\n runFlowScanProcessFlowRefsImpl?: (\n options: RunFlowScanProcessFlowRefsOptions,\n ) => Promise<FlowScanProcessFlowRefsReport>;\n runFlowPlanProcessFlowRepairsImpl?: (\n options: RunFlowPlanProcessFlowRepairsOptions,\n ) => Promise<FlowPlanProcessFlowRepairsReport>;\n runFlowApplyProcessFlowRepairsImpl?: (\n options: RunFlowApplyProcessFlowRepairsOptions,\n ) => Promise<FlowApplyProcessFlowRepairsReport>;\n runFlowRegenProductImpl?: (\n options: RunFlowRegenProductOptions,\n ) => Promise<FlowRegenProductReport>;\n runFlowValidateProcessesImpl?: (\n options: RunFlowValidateProcessesOptions,\n ) => Promise<FlowValidateProcessesReport>;\n};\n\nexport type CliResult = {\n exitCode: number;\n stdout: string;\n stderr: string;\n};\n\ntype RootFlags = {\n help: boolean;\n version: boolean;\n};\n\nfunction renderMainHelp(dotEnvStatus: DotEnvLoadResult): string {\n return `TianGong LCA CLI\n\nUnified TianGong command entrypoint.\n\nDesign principles:\n - direct REST / Edge Function access\n - no MCP inside the CLI\n - TypeScript source on Node 24\n - file-first input and JSON-first output\n\nUsage:\n tiangong <command> [subcommand] [options]\n\nCommands:\nImplemented Commands:\n doctor show environment diagnostics\n search flow | process | lifecyclemodel\n process get | list | auto-build | resume-build | publish-build | save-draft | batch-build\n flow get | list | fetch-rows | materialize-decisions | remediate | publish-version | publish-reviewed-data | build-alias-map | scan-process-flow-refs | plan-process-flow-repairs | apply-process-flow-repairs | regen-product | validate-processes\n lifecyclemodel auto-build | validate-build | publish-build | build-resulting-process | publish-resulting-process | orchestrate\n review process | flow | lifecyclemodel\n publish run\n validation run\n admin embedding-run\n\nPlanned Surface (not implemented yet):\n auth whoami | doctor-auth\n job get | wait | logs\n\nPlanned commands currently print an explicit \"not implemented yet\" message and exit with code 2.\n\nExamples:\n tiangong doctor\n tiangong search flow --input ./request.json\n tiangong search process --input ./request.json --dry-run\n tiangong process get --id <process-id>\n tiangong process list --state-code 100 --limit 20\n tiangong process auto-build --input ./pff-request.json\n tiangong process resume-build --run-id <id>\n tiangong process publish-build --run-id <id>\n tiangong process save-draft --input ./patched-processes.jsonl --dry-run\n tiangong process batch-build --input ./batch-request.json\n tiangong lifecyclemodel auto-build --input ./lifecyclemodel-auto-build.request.json\n tiangong lifecyclemodel validate-build --run-dir ./artifacts/lifecyclemodel_auto_build/<run_id>\n tiangong lifecyclemodel publish-build --run-dir ./artifacts/lifecyclemodel_auto_build/<run_id>\n tiangong lifecyclemodel orchestrate plan --input ./lifecyclemodel-orchestrate.request.json --out-dir ./artifacts/lifecyclemodel_recursive/run-001\n tiangong flow get --id <flow-id> --version <version>\n tiangong flow list --id <flow-id> --state-code 100 --limit 20\n tiangong flow fetch-rows --refs-file ./flow-refs.json --out-dir ./flow-fetch\n tiangong flow materialize-decisions --decision-file ./approved-decisions.json --flow-rows-file ./review-input-rows.jsonl --out-dir ./flow-decisions\n tiangong flow remediate --input-file ./invalid-flows.jsonl --out-dir ./flow-remediation\n tiangong flow publish-version --input-file ./ready-flows.jsonl --out-dir ./flow-publish --commit\n tiangong flow publish-reviewed-data --flow-rows-file ./reviewed-flows.jsonl --original-flow-rows-file ./original-flows.jsonl --out-dir ./flow-publish-review\n tiangong flow build-alias-map --old-flow-file ./old-flows.jsonl --new-flow-file ./new-flows.jsonl --out-dir ./flow-alias-map\n tiangong flow scan-process-flow-refs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-scan\n tiangong flow plan-process-flow-repairs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-repair-plan\n tiangong flow apply-process-flow-repairs --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-repair-apply\n tiangong flow regen-product --processes-file ./processes.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-regeneration --apply\n tiangong flow validate-processes --original-processes-file ./before.jsonl --patched-processes-file ./after.jsonl --scope-flow-file ./flows.jsonl --out-dir ./flow-validation\n tiangong review process --rows-file ./processes.jsonl --out-dir ./review\n tiangong review process --run-root ./artifacts/process_from_flow/<run_id> --run-id <run_id> --out-dir ./review\n tiangong review flow --rows-file ./flows.json --out-dir ./review\n tiangong review lifecyclemodel --run-dir ./artifacts/lifecyclemodel_auto_build/<run_id> --out-dir ./lifecyclemodel-review\n tiangong publish run --input ./publish-request.json --dry-run\n tiangong validation run --input-dir ./package --engine auto\n tiangong admin embedding-run --input ./jobs.json\n\nEnvironment:\n .env loaded: ${dotEnvStatus.loaded ? `yes (${dotEnvStatus.path}, ${dotEnvStatus.count} keys)` : 'no'}\n`.trim();\n}\n\nfunction renderDoctorHelp(): string {\n return `Usage:\n tiangong doctor [--json]\n\nOptions:\n --json Print structured environment diagnostics\n -h, --help\n`.trim();\n}\n\nfunction renderSearchHelp(): string {\n return `Usage:\n tiangong search <flow|process|lifecyclemodel> --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --json Print compact JSON\n --dry-run Print the planned HTTP request without sending it\n --api-key <key> Override TIANGONG_LCA_API_KEY\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --region <name> Override TIANGONG_LCA_REGION\n --timeout-ms <n> Request timeout in milliseconds\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n TIANGONG_LCA_REGION (optional)\n\nRuntime note:\n The CLI decodes TIANGONG_LCA_API_KEY as a user API key bootstrap, exchanges it for a user session,\n and sends the resolved access token to Edge Functions.\n`.trim();\n}\n\nfunction renderAdminHelp(): string {\n return `Usage:\n tiangong admin embedding-run --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --json Print compact JSON\n --dry-run Print the planned HTTP request without sending it\n --api-key <key> Override TIANGONG_LCA_API_KEY\n --base-url <url> Override TIANGONG_LCA_API_BASE_URL\n --timeout-ms <n> Request timeout in milliseconds\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI decodes TIANGONG_LCA_API_KEY as a user API key bootstrap, exchanges it for a user session,\n and sends the resolved access token to Edge Functions.\n`.trim();\n}\n\nfunction renderPublishHelp(): string {\n return `Usage:\n tiangong publish run --input <file> [options]\n\nOptions:\n --input <file> JSON publish request file\n --out-dir <dir> Override request out_dir\n --commit Force publish.commit=true\n --dry-run Force publish.commit=false\n --json Print compact JSON\n -h, --help\n\nPath rule:\n Relative out_dir values from the request body or --out-dir resolve from the request file directory.\n`.trim();\n}\n\nfunction renderValidationHelp(): string {\n return `Usage:\n tiangong validation run --input-dir <dir> [options]\n\nOptions:\n --input-dir <dir> TIDAS package directory\n --engine <mode> auto | sdk (default: auto)\n --report-file <file> Write the structured validation report to a file\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderFlowHelp(): string {\n return `Usage:\n tiangong flow <subcommand> [options]\n\nImplemented Subcommands:\n get Load one flow dataset by identifier through direct Supabase access\n list Enumerate flow datasets through direct Supabase access with deterministic filters\n fetch-rows Materialize real DB flow refs into local review-input rows and fetch artifacts\n materialize-decisions Materialize approved merge decisions into canonical-map, rewrite-plan, and seed artifacts\n remediate Deterministically repair invalid local flow rows and emit artifact-first outputs\n publish-version Publish remediated flow versions through the unified CLI surface\n publish-reviewed-data Prepare reviewed flow rows, skip unchanged snapshots, and optionally publish the resulting versions\n build-alias-map Build a deterministic flow alias map from old/new local flow snapshots\n scan-process-flow-refs Classify process exchange references against the current flow scope\n plan-process-flow-repairs Plan deterministic repairs for local process-flow references\n apply-process-flow-repairs Apply deterministic process-flow reference repairs and emit patch artifacts\n regen-product Regenerate local process-side artifacts after flow governance changes\n validate-processes Validate locally patched process rows against allowed flow-reference-only changes\n\nExamples:\n tiangong flow --help\n tiangong flow get --help\n tiangong flow list --help\n tiangong flow fetch-rows --help\n tiangong flow materialize-decisions --help\n tiangong flow remediate --help\n tiangong flow publish-version --help\n tiangong flow publish-reviewed-data --help\n tiangong flow build-alias-map --help\n tiangong flow scan-process-flow-refs --help\n tiangong flow plan-process-flow-repairs --help\n tiangong flow apply-process-flow-repairs --help\n tiangong flow regen-product --help\n tiangong flow validate-processes --help\n`.trim();\n}\n\nfunction renderFlowGetHelp(): string {\n return `Usage:\n tiangong flow get --id <flow-id> [options]\n\nOptions:\n --id <flow-id> Flow UUID\n --version <version> Optional requested dataset version; if absent or missing, the latest reachable row is returned\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Optional visibility filter such as 0 or 100\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderFlowListHelp(): string {\n return `Usage:\n tiangong flow list [options]\n\nOptions:\n --id <flow-id> Repeatable exact flow UUID filter\n --version <version> Optional dataset version filter\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Repeatable visibility filter such as 0 or 100\n --type-of-dataset <name> Repeatable flow type filter, for example \"Product flow\" or \"Waste flow\"\n --order <expr> Deterministic PostgREST order expression (default: id.asc,version.asc)\n --limit <n> Page size for one request (default: 100)\n --offset <n> Row offset for one request (default: 0)\n --all Fetch all matching rows via offset pagination\n --page-size <n> Page size when --all is used (default: 100)\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderFlowRemediateHelp(): string {\n return `Usage:\n tiangong flow remediate --input-file <file> --out-dir <dir> [options]\n\nOptions:\n --input-file <file> Invalid flow rows as JSON or JSONL\n --out-dir <dir> Output directory for remediation artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flows_tidas_sdk_plus_classification_remediated_all.jsonl\n - flows_tidas_sdk_plus_classification_remediated_ready_for_mcp.jsonl\n - flows_tidas_sdk_plus_classification_residual_manual_queue.jsonl\n - flows_tidas_sdk_plus_classification_remediation_audit.jsonl\n - flows_tidas_sdk_plus_classification_remediation_report.json\n - flows_tidas_sdk_plus_classification_residual_manual_queue_prompt.md\n`.trim();\n}\n\nfunction renderFlowFetchRowsHelp(): string {\n return `Usage:\n tiangong flow fetch-rows --refs-file <file> --out-dir <dir> [options]\n\nOptions:\n --refs-file <file> Flow refs as JSON or JSONL\n --out-dir <dir> Output directory for fetch artifacts\n --no-latest-fallback Do not fall back to the latest visible version when --version misses\n --fail-on-missing Return exit code 1 when any ref is missing or ambiguous\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOutputs written under --out-dir:\n - resolved-flow-rows.jsonl\n - review-input-rows.jsonl\n - fetch-summary.json\n - missing-flow-refs.jsonl\n - ambiguous-flow-refs.jsonl\n`.trim();\n}\n\nfunction renderFlowMaterializeDecisionsHelp(): string {\n return `Usage:\n tiangong flow materialize-decisions --decision-file <file> --flow-rows-file <file> --out-dir <dir> [options]\n\nOptions:\n --decision-file <file> Approved cluster decisions as JSON or JSONL\n --flow-rows-file <file> Real DB flow rows as JSON or JSONL\n --out-dir <dir> Output directory for decision materialization artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flow-dedup-canonical-map.json\n - flow-dedup-rewrite-plan.json\n - manual-semantic-merge-seed.current.json\n - decision-summary.json\n - blocked-clusters.json\n`.trim();\n}\n\nfunction renderFlowPublishVersionHelp(): string {\n return `Usage:\n tiangong flow publish-version --input-file <file> --out-dir <dir> [options]\n\nOptions:\n --input-file <file> Ready-for-publish flow rows as JSON or JSONL\n --out-dir <dir> Output directory for publish-version artifacts\n --commit Execute remote writes\n --dry-run Plan the publish-version operations without remote writes\n --max-workers <n> Parallel worker count (default: 4)\n --limit <n> Optional row limit; 0 means all rows\n --target-user-id <id> Override the target owner when input rows omit user_id\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nOutputs written under --out-dir:\n - flows_tidas_sdk_plus_classification_mcp_success_list.json\n - flows_tidas_sdk_plus_classification_remote_validation_failed.jsonl\n - flows_tidas_sdk_plus_classification_mcp_sync_report.json\n`.trim();\n}\n\nfunction renderFlowPublishReviewedDataHelp(): string {\n return `Usage:\n tiangong flow publish-reviewed-data --out-dir <dir> [--flow-rows-file <file>] [--process-rows-file <file>] [options]\n\nOptions:\n --flow-rows-file <file> Reviewed flow rows as JSON or JSONL\n --original-flow-rows-file <file> Optional original flow snapshot used to skip unchanged reviewed rows\n --process-rows-file <file> Optional reviewed process rows as JSON or JSONL\n --flow-publish-policy <mode> skip | append_only_bump | upsert_current_version (default: append_only_bump)\n --process-publish-policy <mode> skip | append_only_bump | upsert_current_version (default: append_only_bump)\n --no-rewrite-process-flow-refs Keep process flow references unchanged during local preparation\n --commit Execute remote writes for prepared flow and process rows\n --dry-run Keep the command local-only and write prepared artifacts without remote writes\n --max-workers <n> Parallel worker count for the flow commit step (default: 4)\n --target-user-id <id> Override the target owner when prepared flow rows omit user_id\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n none for local dry-run\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n when --commit publishes prepared rows\n\nOutputs written under --out-dir:\n - prepared-flow-rows.json\n - prepared-process-rows.json\n - flow-version-map.json\n - skipped-unchanged-flow-rows.json\n - process-flow-ref-rewrite-evidence.jsonl\n - publish-report.json\n - flows_tidas_sdk_plus_classification_mcp_success_list.json\n - flows_tidas_sdk_plus_classification_remote_validation_failed.jsonl\n - flows_tidas_sdk_plus_classification_mcp_sync_report.json\n`.trim();\n}\n\nfunction renderFlowBuildAliasMapHelp(): string {\n return `Usage:\n tiangong flow build-alias-map --old-flow-file <file> --new-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --old-flow-file <file> Repeatable pre-governance flow snapshot as JSON or JSONL\n --new-flow-file <file> Repeatable post-governance flow snapshot as JSON or JSONL\n --seed-alias-map <file> Optional existing alias map JSON object used as deterministic seed input\n --out-dir <dir> Output directory for alias-plan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - alias-plan.json\n - alias-plan.jsonl\n - flow-alias-map.json\n - manual-review-queue.jsonl\n - alias-summary.json\n`.trim();\n}\n\nfunction renderFlowScanProcessFlowRefsHelp(): string {\n return `Usage:\n tiangong flow scan-process-flow-refs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --catalog-flow-file <file> Repeatable catalog flow file; defaults to the scope files\n --alias-map <file> Optional flow alias map JSON object\n --exclude-emergy Exclude emergy-named processes before reference scanning\n --out-dir <dir> Output directory for scan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - emergy-excluded-processes.json\n - scan-summary.json\n - scan-findings.json\n - scan-findings.jsonl\n`.trim();\n}\n\nfunction renderFlowPlanProcessFlowRepairsHelp(): string {\n return `Usage:\n tiangong flow plan-process-flow-repairs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --alias-map <file> Optional flow alias map JSON object\n --scan-findings <file> Optional scan-findings JSON or JSONL from a prior scan step\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --out-dir <dir> Output directory for repair plan artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - repair-plan.json\n - repair-plan.jsonl\n - manual-review-queue.jsonl\n - repair-summary.json\n`.trim();\n}\n\nfunction renderFlowApplyProcessFlowRepairsHelp(): string {\n return `Usage:\n tiangong flow apply-process-flow-repairs --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --alias-map <file> Optional flow alias map JSON object\n --scan-findings <file> Optional scan-findings JSON or JSONL from a prior scan step\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --process-pool-file <file> Optional process pool file to sync after patch application\n --out-dir <dir> Output directory for repair apply artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - repair-plan.json\n - repair-plan.jsonl\n - manual-review-queue.jsonl\n - repair-summary.json\n - patched-processes.json\n - process-patches/\n`.trim();\n}\n\nfunction renderFlowRegenProductHelp(): string {\n return `Usage:\n tiangong flow regen-product --processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --processes-file <file> Process rows as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --catalog-flow-file <file> Repeatable catalog flow file; defaults to the scope files\n --alias-map <file> Optional flow alias map JSON object\n --exclude-emergy Exclude emergy-named processes before scan and repair\n --auto-patch-policy <mode> disabled | alias-only | alias-or-unique-name (default: alias-only)\n --apply Apply deterministic patches and run local validation\n --process-pool-file <file> Optional process pool file to sync after --apply\n --tidas-mode <mode> auto | required | skip (default: auto)\n --out-dir <dir> Run root for scan / repair / validate artifacts\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - flow-regen-product-report.json\n - scan/\n - repair/\n - repair-apply/ (only with --apply)\n - validate/ (only with --apply)\n`.trim();\n}\n\nfunction renderFlowValidateProcessesHelp(): string {\n return `Usage:\n tiangong flow validate-processes --original-processes-file <file> --patched-processes-file <file> --scope-flow-file <file> --out-dir <dir> [options]\n\nOptions:\n --original-processes-file <file> Original process rows before repair as JSON or JSONL\n --patched-processes-file <file> Patched process rows after repair as JSON or JSONL\n --scope-flow-file <file> Repeatable target flow scope file as JSON or JSONL\n --out-dir <dir> Output directory for validation-report.json and validation-failures.jsonl\n --tidas-mode <mode> auto | required | skip (default: auto)\n --json Print compact JSON\n -h, --help\n\nOutputs written under --out-dir:\n - validation-report.json\n - validation-failures.jsonl\n`.trim();\n}\n\nfunction renderReviewHelp(): string {\n return `Usage:\n tiangong review <subcommand> [options]\n\nImplemented Subcommands:\n process Review process build runs or rows-file snapshots and emit artifact-first findings\n flow Review local flow governance snapshots and emit artifact-first findings\n lifecyclemodel Review one local lifecyclemodel build run and emit artifact-first findings\n\nExamples:\n tiangong review --help\n tiangong review process --help\n tiangong review flow --help\n tiangong review lifecyclemodel --help\n`.trim();\n}\n\nfunction renderReviewProcessHelp(): string {\n return `Usage:\n tiangong review process (--rows-file <file> | --run-root <dir>) --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Process rows JSON/JSONL file; full process list reports with rows[] are also accepted\n --run-root <dir> Process build run root containing exports/processes\n --run-id <id> Optional review run identifier; defaults to the rows-file name or run-root basename\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: v2.1)\n --enable-llm Enable optional review-only semantic review via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this review command\n --llm-max-processes <n> Cap how many process summaries are sent to the LLM (default: 8)\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderReviewFlowHelp(): string {\n return `Usage:\n tiangong review flow (--rows-file <file> | --flows-dir <dir> | --run-root <dir>) --out-dir <dir> [options]\n\nOptions:\n --rows-file <file> Flow rows JSON / JSONL file; the CLI materializes review-input/flows automatically\n --flows-dir <dir> Directory containing per-flow JSON files\n --run-root <dir> Existing run root containing cache/flows or exports/flows\n --run-id <id> Optional run identifier override\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: flow-v1.0-cli)\n --enable-llm Enable optional review-only semantic review via the CLI LLM client\n --llm-model <name> Override TIANGONG_LCA_REVIEW_LLM_MODEL for this review command\n --llm-max-flows <n> Cap how many flow summaries are sent to the LLM (default: 120)\n --llm-batch-size <n> Cap how many flow summaries each LLM batch sends (default: 20)\n --similarity-threshold <n> Similarity threshold for duplicate-candidate warnings (default: 0.92)\n --methodology-id <name> Label written into methodology-backed rule findings (default: built_in)\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderReviewLifecyclemodelHelp(): string {\n return `Usage:\n tiangong review lifecyclemodel --run-dir <dir> --out-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --out-dir <dir> Review artifact output directory\n --start-ts <iso> Optional run start timestamp\n --end-ts <iso> Optional run end timestamp\n --logic-version <name> Review logic version label (default: lifecyclemodel-review-v1.0)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - reads one existing lifecyclemodel build run under models/*/tidas_bundle/lifecyclemodels\n - aggregates validate-build findings when reports/lifecyclemodel-validate-build-report.json is present\n - emits artifact-first model summaries, findings, markdown review notes, and a structured report\n`.trim();\n}\n\nfunction renderLifecyclemodelBuildResultingProcessHelp(): string {\n return `Usage:\n tiangong lifecyclemodel build-resulting-process --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default artifact output directory\n --json Print compact JSON\n -h, --help\n\nRemote lookup env (only when process_sources.allow_remote_lookup=true):\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n`.trim();\n}\n\nfunction renderLifecyclemodelPublishResultingProcessHelp(): string {\n return `Usage:\n tiangong lifecyclemodel publish-resulting-process --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel resulting-process run directory\n --publish-processes Include projected processes in publish-bundle.json\n --publish-relations Include lifecyclemodel/resulting-process relations in publish-bundle.json\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderLifecyclemodelHelp(): string {\n return `Usage:\n tiangong lifecyclemodel <subcommand> [options]\n\nImplemented Subcommands:\n auto-build Build native lifecyclemodel json_ordered artifacts from local process run exports\n validate-build Re-run local validation on one lifecyclemodel build run\n publish-build Prepare lifecyclemodel publish handoff artifacts from one local build run\n build-resulting-process Deterministically aggregate a lifecycle model into a resulting process bundle\n publish-resulting-process Prepare publish-bundle.json and publish-intent.json from a prior resulting-process run\n orchestrate Plan, execute, or publish a recursive lifecyclemodel assembly run\n\nExamples:\n tiangong lifecyclemodel --help\n tiangong lifecyclemodel auto-build --help\n tiangong lifecyclemodel validate-build --help\n tiangong lifecyclemodel publish-build --help\n tiangong lifecyclemodel build-resulting-process --help\n tiangong lifecyclemodel orchestrate --help\n`.trim();\n}\n\nfunction renderLifecyclemodelOrchestrateHelp(): string {\n return `Usage:\n tiangong lifecyclemodel orchestrate <plan|execute|publish> [options]\n\nPlan / execute options:\n --input <file> JSON request file\n --request <file> Alias for --input\n --out-dir <dir> Output run directory\n --allow-process-build Override orchestration.allow_process_build=true during execute\n --allow-submodel-build Override orchestration.allow_submodel_build=true during execute\n --json Print compact JSON\n -h, --help\n\nPublish options:\n --run-dir <dir> Existing orchestrator run directory\n --publish-lifecyclemodels Include built lifecyclemodels in publish-bundle.json\n --publish-resulting-process-relations Include projected processes and resulting-process relations in publish-bundle.json\n --json Print compact JSON\n -h, --help\n\nThis command:\n - normalizes a recursive request into assembly-plan.json, graph-manifest.json, lineage-manifest.json, and boundary-report.json\n - executes only native CLI-backed builders; no Python fallback path remains\n - prepares a local publish-bundle.json from prior invocation artifacts\n`.trim();\n}\n\nfunction renderLifecyclemodelAutoBuildHelp(): string {\n return `Usage:\n tiangong lifecyclemodel auto-build --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default lifecyclemodel build run root\n --json Print compact JSON\n -h, --help\n\nMinimal request contract:\n {\n \"local_runs\": [\"/abs/path/to/process-build-run\"]\n }\n\nThis first CLI slice is local-only and read-only:\n - loads local process build run directories\n - infers the process graph from shared flow UUIDs\n - emits native lifecyclemodel json_ordered artifacts\n - leaves follow-up validation and publish handoff to the companion validate-build and publish-build commands\n`.trim();\n}\n\nfunction renderLifecyclemodelValidateBuildHelp(): string {\n return `Usage:\n tiangong lifecyclemodel validate-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --engine <mode> auto | sdk (default: auto)\n --json Print compact JSON\n -h, --help\n\nThis command:\n - scans models/*/tidas_bundle from one lifecyclemodel auto-build run\n - re-runs local validation through the unified validation module\n - writes per-model validation reports plus one aggregate report\n`.trim();\n}\n\nfunction renderLifecyclemodelPublishBuildHelp(): string {\n return `Usage:\n tiangong lifecyclemodel publish-build --run-dir <dir> [options]\n\nOptions:\n --run-dir <dir> Existing lifecyclemodel auto-build run directory\n --json Print compact JSON\n -h, --help\n\nThis command:\n - collects native lifecyclemodel json_ordered payloads from one local build run\n - writes publish-bundle.json, publish-request.json, and publish-intent.json\n - keeps actual dry-run / commit execution in tiangong publish run\n - routes lifecyclemodel commit through save_lifecycle_model_bundle internally\n`.trim();\n}\n\nfunction renderProcessAutoBuildHelp(): string {\n return `Usage:\n tiangong process auto-build --input <file> [options]\n\nOptions:\n --input <file> JSON request file\n --out-dir <dir> Override the default run root directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessGetHelp(): string {\n return `Usage:\n tiangong process get --id <process-id> [options]\n\nOptions:\n --id <process-id> Process UUID\n --version <version> Optional requested dataset version; if absent or missing, the latest reachable row is returned\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderProcessListHelp(): string {\n return `Usage:\n tiangong process list [options]\n\nOptions:\n --id <process-id> Repeatable exact process UUID filter\n --version <version> Optional dataset version filter\n --user-id <user-id> Optional owner filter for private rows\n --state-code <code> Repeatable visibility filter such as 0 or 100\n --order <expr> Deterministic PostgREST order expression (default: id.asc,version.asc)\n --limit <n> Page size for one request (default: 100)\n --offset <n> Row offset for one request (default: 0)\n --all Fetch all matching rows via offset pagination\n --page-size <n> Page size when --all is used (default: 100)\n --json Print compact JSON\n -h, --help\n\nRequired env:\n TIANGONG_LCA_API_BASE_URL\n TIANGONG_LCA_API_KEY\n TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n\nRuntime note:\n The CLI derives a native @supabase/supabase-js client and deterministic read target from TIANGONG_LCA_API_BASE_URL,\n and authenticates that client with the resolved user access token.\n`.trim();\n}\n\nfunction renderProcessResumeBuildHelp(): string {\n return `Usage:\n tiangong process resume-build [--run-id <id>] [--run-dir <dir>] [options]\n\nOptions:\n --run-id <id> Existing process build run id\n --run-dir <dir> Existing process build run directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessPublishBuildHelp(): string {\n return `Usage:\n tiangong process publish-build [--run-id <id>] [--run-dir <dir>] [options]\n\nOptions:\n --run-id <id> Existing process build run id\n --run-dir <dir> Existing process build run directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessSaveDraftHelp(): string {\n return `Usage:\n tiangong process save-draft --input <file> [options]\n\nOptions:\n --input <file> Process rows JSON/JSONL file or publish-request.json\n --out-dir <dir> Run root written relative to cwd when a relative path is passed\n --commit Execute remote save-draft writes\n --dry-run Keep the command local-only (default)\n --json Print compact JSON\n -h, --help\n\nEnvironment:\n none for local dry-run\n TIANGONG_LCA_API_BASE_URL, TIANGONG_LCA_API_KEY, and TIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY\n when --commit executes remote writes\n\nOutputs written under --out-dir:\n - inputs/normalized-input.json\n - outputs/save-draft-rpc/selected-processes.jsonl\n - outputs/save-draft-rpc/progress.jsonl\n - outputs/save-draft-rpc/failures.jsonl\n - outputs/save-draft-rpc/summary.json\n`.trim();\n}\n\nfunction renderProcessBatchBuildHelp(): string {\n return `Usage:\n tiangong process batch-build --input <file> [options]\n\nOptions:\n --input <file> JSON batch manifest file\n --out-dir <dir> Override the batch artifact output directory\n --json Print compact JSON\n -h, --help\n`.trim();\n}\n\nfunction renderProcessHelp(): string {\n return `Usage:\n tiangong process <subcommand> [options]\n\nImplemented Subcommands:\n get Load one process dataset by identifier through direct Supabase access\n list List visible process rows through direct Supabase access\n auto-build Prepare a local process-from-flow run scaffold and artifact workspace\n resume-build Prepare a local resume handoff from one existing process build run\n publish-build Prepare publish handoff artifacts from one existing process build run\n save-draft Save canonical process datasets through the state-aware draft-maintenance path\n batch-build Run multiple process auto-build requests through one batch-oriented CLI surface\n\nExamples:\n tiangong process --help\n tiangong process get --id <process-id>\n tiangong process list --state-code 100 --limit 20 --help\n tiangong process auto-build --help\n tiangong process resume-build --run-id <id> --help\n tiangong process publish-build --run-id <id> --help\n tiangong process save-draft --input ./patched-processes.jsonl --help\n tiangong process batch-build --input ./batch-request.json --help\n`.trim();\n}\n\nfunction renderDoctorText(report: ReturnType<typeof buildDoctorReport>): string {\n const lines = [\n 'TianGong CLI doctor',\n ` .env loaded: ${report.loadedDotEnv ? `yes (${report.dotEnvKeysLoaded} keys)` : 'no'}`,\n ` .env path: ${report.dotEnvPath}`,\n '',\n ];\n for (const check of report.checks) {\n const status = check.present ? 'OK ' : 'MISS';\n lines.push(\n ` [${status}] ${check.key} (${check.source})${check.required ? ' [required]' : ''}`,\n );\n }\n if (!report.ok) {\n lines.push('', 'Missing required environment keys:');\n for (const check of report.checks) {\n if (check.required && !check.present) {\n lines.push(` - ${check.key}`);\n }\n }\n }\n return `${lines.join('\\n')}\\n`;\n}\n\ntype CommandDispatch = {\n flags: RootFlags;\n command: string | null;\n subcommand: string | null;\n commandArgs: string[];\n};\n\nfunction parseCommandLine(args: string[]): CommandDispatch {\n const flags: RootFlags = {\n help: false,\n version: false,\n };\n\n let index = 0;\n while (index < args.length) {\n const arg = args[index];\n if (arg === '--') {\n index += 1;\n break;\n }\n if (arg === '--help' || arg === '-h') {\n flags.help = true;\n index += 1;\n continue;\n }\n if (arg === '--version' || arg === '-v') {\n flags.version = true;\n index += 1;\n continue;\n }\n if (arg.startsWith('-')) {\n throw new CliError(`Unknown root option: ${arg}`, {\n code: 'UNKNOWN_ROOT_OPTION',\n exitCode: 2,\n });\n }\n break;\n }\n\n const command = args[index] ?? null;\n if (!command) {\n return {\n flags,\n command: null,\n subcommand: null,\n commandArgs: [],\n };\n }\n\n const maybeSubcommand = args[index + 1];\n const subcommand = maybeSubcommand && !maybeSubcommand.startsWith('-') ? maybeSubcommand : null;\n const commandArgs = args.slice(index + 1 + (subcommand ? 1 : 0));\n\n return {\n flags,\n command,\n subcommand,\n commandArgs,\n };\n}\n\nfunction parseDoctorFlags(args: string[]): {\n help: boolean;\n json: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n };\n}\n\nfunction parseRemoteFlags(args: string[]): {\n help: boolean;\n json: boolean;\n dryRun: boolean;\n inputPath: string;\n apiKey: string | null;\n apiBaseUrl: string | null;\n region: string | null;\n timeoutMs: number;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n input: { type: 'string' },\n 'api-key': { type: 'string' },\n 'base-url': { type: 'string' },\n region: { type: 'string' },\n 'timeout-ms': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const timeoutText = typeof values['timeout-ms'] === 'string' ? values['timeout-ms'] : undefined;\n const timeoutMs = timeoutText ? Number.parseInt(timeoutText, 10) : 60_000;\n if (!Number.isInteger(timeoutMs) || timeoutMs <= 0) {\n throw new CliError('Expected --timeout-ms to be a positive integer.', {\n code: 'INVALID_TIMEOUT',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n dryRun: Boolean(values['dry-run']),\n inputPath: typeof values.input === 'string' ? values.input : '',\n apiKey: typeof values['api-key'] === 'string' ? values['api-key'] : null,\n apiBaseUrl: typeof values['base-url'] === 'string' ? values['base-url'] : null,\n region: typeof values.region === 'string' ? values.region : null,\n timeoutMs,\n };\n}\n\nfunction parsePublishFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n commitOverride: boolean | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_PUBLISH_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commitOverride: values.commit ? true : values['dry-run'] ? false : null,\n };\n}\n\nfunction parseValidationFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputDir: string;\n engine: string | undefined;\n reportFile: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'input-dir': { type: 'string' },\n engine: { type: 'string' },\n 'report-file': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputDir: typeof values['input-dir'] === 'string' ? values['input-dir'] : '',\n engine: typeof values.engine === 'string' ? values.engine : undefined,\n reportFile: typeof values['report-file'] === 'string' ? values['report-file'] : null,\n };\n}\n\nfunction parseFlowRemediateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputFile: string;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'input-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputFile: typeof values['input-file'] === 'string' ? values['input-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowPublishVersionFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputFile: string;\n outDir: string;\n commit: boolean;\n maxWorkers: number | undefined;\n limit: number | undefined;\n targetUserId: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'input-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'max-workers': { type: 'string' },\n limit: { type: 'string' },\n 'target-user-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'FLOW_PUBLISH_VERSION_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputFile: typeof values['input-file'] === 'string' ? values['input-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n maxWorkers: parsePositiveIntegerFlag(\n values['max-workers'],\n '--max-workers',\n 'INVALID_FLOW_PUBLISH_VERSION_MAX_WORKERS',\n ),\n limit: parseNonNegativeIntegerFlag(\n values.limit,\n '--limit',\n 'INVALID_FLOW_PUBLISH_VERSION_LIMIT',\n ),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n };\n}\n\nfunction parseFlowPublishReviewedDataFlags(args: string[]): {\n help: boolean;\n json: boolean;\n flowRowsFile: string;\n originalFlowRowsFile: string | null;\n processRowsFile: string | null;\n flowPublishPolicy: 'skip' | 'append_only_bump' | 'upsert_current_version';\n processPublishPolicy: 'skip' | 'append_only_bump' | 'upsert_current_version';\n rewriteProcessFlowRefs: boolean;\n outDir: string;\n commit: boolean;\n maxWorkers: number | undefined;\n targetUserId: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'flow-rows-file': { type: 'string' },\n 'original-flow-rows-file': { type: 'string' },\n 'process-rows-file': { type: 'string' },\n 'flow-publish-policy': { type: 'string' },\n 'process-publish-policy': { type: 'string' },\n 'no-rewrite-process-flow-refs': { type: 'boolean' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n 'max-workers': { type: 'string' },\n 'target-user-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'FLOW_PUBLISH_REVIEWED_MODE_CONFLICT',\n exitCode: 2,\n });\n }\n\n const processPublishPolicy =\n typeof values['process-publish-policy'] === 'string'\n ? values['process-publish-policy']\n : 'append_only_bump';\n if (\n processPublishPolicy !== 'skip' &&\n processPublishPolicy !== 'append_only_bump' &&\n processPublishPolicy !== 'upsert_current_version'\n ) {\n throw new CliError(\n 'Expected --process-publish-policy to be one of: skip, append_only_bump, upsert_current_version.',\n {\n code: 'FLOW_PUBLISH_REVIEWED_PROCESS_POLICY_INVALID',\n exitCode: 2,\n },\n );\n }\n\n const flowPublishPolicy =\n typeof values['flow-publish-policy'] === 'string'\n ? values['flow-publish-policy']\n : 'append_only_bump';\n if (\n flowPublishPolicy !== 'skip' &&\n flowPublishPolicy !== 'append_only_bump' &&\n flowPublishPolicy !== 'upsert_current_version'\n ) {\n throw new CliError(\n 'Expected --flow-publish-policy to be one of: skip, append_only_bump, upsert_current_version.',\n {\n code: 'FLOW_PUBLISH_REVIEWED_FLOW_POLICY_INVALID',\n exitCode: 2,\n },\n );\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n flowRowsFile: typeof values['flow-rows-file'] === 'string' ? values['flow-rows-file'] : '',\n originalFlowRowsFile:\n typeof values['original-flow-rows-file'] === 'string'\n ? values['original-flow-rows-file']\n : null,\n processRowsFile:\n typeof values['process-rows-file'] === 'string' ? values['process-rows-file'] : null,\n flowPublishPolicy,\n processPublishPolicy,\n rewriteProcessFlowRefs: !values['no-rewrite-process-flow-refs'],\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n commit: Boolean(values.commit),\n maxWorkers: parsePositiveIntegerFlag(\n values['max-workers'],\n '--max-workers',\n 'INVALID_FLOW_PUBLISH_REVIEWED_MAX_WORKERS',\n ),\n targetUserId: typeof values['target-user-id'] === 'string' ? values['target-user-id'] : null,\n };\n}\n\nfunction parseFlowBuildAliasMapFlags(args: string[]): {\n help: boolean;\n json: boolean;\n oldFlowFiles: string[];\n newFlowFiles: string[];\n seedAliasMapFile: string | null;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'old-flow-file': { type: 'string', multiple: true },\n 'new-flow-file': { type: 'string', multiple: true },\n 'seed-alias-map': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n oldFlowFiles: Array.isArray(values['old-flow-file'])\n ? values['old-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n newFlowFiles: Array.isArray(values['new-flow-file'])\n ? values['new-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n seedAliasMapFile:\n typeof values['seed-alias-map'] === 'string' ? values['seed-alias-map'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowScanProcessFlowRefsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n catalogFlowFiles: string[];\n aliasMapFile: string | null;\n excludeEmergy: boolean;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'catalog-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'exclude-emergy': { type: 'boolean' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n catalogFlowFiles: Array.isArray(values['catalog-flow-file'])\n ? values['catalog-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n excludeEmergy: Boolean(values['exclude-emergy']),\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowPlanProcessFlowRepairsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n aliasMapFile: string | null;\n scanFindingsFile: string | null;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'scan-findings': { type: 'string' },\n 'auto-patch-policy': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_PLAN_PROCESS_FLOW_REPAIRS_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n scanFindingsFile: typeof values['scan-findings'] === 'string' ? values['scan-findings'] : null,\n autoPatchPolicy,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowApplyProcessFlowRepairsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n aliasMapFile: string | null;\n scanFindingsFile: string | null;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n processPoolFile: string | null;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'scan-findings': { type: 'string' },\n 'auto-patch-policy': { type: 'string' },\n 'process-pool-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_APPLY_PROCESS_FLOW_REPAIRS_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n scanFindingsFile: typeof values['scan-findings'] === 'string' ? values['scan-findings'] : null,\n autoPatchPolicy,\n processPoolFile:\n typeof values['process-pool-file'] === 'string' ? values['process-pool-file'] : null,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowRegenProductFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processesFile: string;\n scopeFlowFiles: string[];\n catalogFlowFiles: string[];\n aliasMapFile: string | null;\n excludeEmergy: boolean;\n autoPatchPolicy: 'disabled' | 'alias-only' | 'alias-or-unique-name';\n apply: boolean;\n processPoolFile: string | null;\n tidasMode: 'auto' | 'required' | 'skip';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'catalog-flow-file': { type: 'string', multiple: true },\n 'alias-map': { type: 'string' },\n 'exclude-emergy': { type: 'boolean' },\n 'auto-patch-policy': { type: 'string' },\n apply: { type: 'boolean' },\n 'process-pool-file': { type: 'string' },\n 'tidas-mode': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const autoPatchPolicy =\n typeof values['auto-patch-policy'] === 'string' ? values['auto-patch-policy'] : 'alias-only';\n if (\n autoPatchPolicy !== 'disabled' &&\n autoPatchPolicy !== 'alias-only' &&\n autoPatchPolicy !== 'alias-or-unique-name'\n ) {\n throw new CliError(\n 'Expected --auto-patch-policy to be one of disabled, alias-only, or alias-or-unique-name.',\n {\n code: 'INVALID_FLOW_REGEN_AUTO_PATCH_POLICY',\n exitCode: 2,\n },\n );\n }\n\n const tidasMode = typeof values['tidas-mode'] === 'string' ? values['tidas-mode'] : 'auto';\n if (tidasMode !== 'auto' && tidasMode !== 'required' && tidasMode !== 'skip') {\n throw new CliError('Expected --tidas-mode to be one of auto, required, or skip.', {\n code: 'INVALID_FLOW_REGEN_TIDAS_MODE',\n exitCode: 2,\n });\n }\n\n if (typeof values['process-pool-file'] === 'string' && !values.apply) {\n throw new CliError('Use --process-pool-file only with --apply.', {\n code: 'FLOW_REGEN_PROCESS_POOL_REQUIRES_APPLY',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processesFile: typeof values['processes-file'] === 'string' ? values['processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n catalogFlowFiles: Array.isArray(values['catalog-flow-file'])\n ? values['catalog-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n aliasMapFile: typeof values['alias-map'] === 'string' ? values['alias-map'] : null,\n excludeEmergy: Boolean(values['exclude-emergy']),\n autoPatchPolicy,\n apply: Boolean(values.apply),\n processPoolFile:\n typeof values['process-pool-file'] === 'string' ? values['process-pool-file'] : null,\n tidasMode,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowValidateProcessesFlags(args: string[]): {\n help: boolean;\n json: boolean;\n originalProcessesFile: string;\n patchedProcessesFile: string;\n scopeFlowFiles: string[];\n tidasMode: 'auto' | 'required' | 'skip';\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'original-processes-file': { type: 'string' },\n 'patched-processes-file': { type: 'string' },\n 'scope-flow-file': { type: 'string', multiple: true },\n 'tidas-mode': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const tidasMode = typeof values['tidas-mode'] === 'string' ? values['tidas-mode'] : 'auto';\n if (tidasMode !== 'auto' && tidasMode !== 'required' && tidasMode !== 'skip') {\n throw new CliError('Expected --tidas-mode to be one of auto, required, or skip.', {\n code: 'INVALID_FLOW_VALIDATE_TIDAS_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n originalProcessesFile:\n typeof values['original-processes-file'] === 'string'\n ? values['original-processes-file']\n : '',\n patchedProcessesFile:\n typeof values['patched-processes-file'] === 'string' ? values['patched-processes-file'] : '',\n scopeFlowFiles: Array.isArray(values['scope-flow-file'])\n ? values['scope-flow-file'].filter((value): value is string => typeof value === 'string')\n : [],\n tidasMode,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowGetFlags(args: string[]): {\n help: boolean;\n json: boolean;\n flowId: string;\n version: string | null;\n userId: string | null;\n stateCode: number | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string' },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n flowId: typeof values.id === 'string' ? values.id : '',\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCode: parseOptionalNonNegativeIntegerFlag(\n values['state-code'],\n '--state-code',\n 'INVALID_FLOW_GET_STATE_CODE',\n ),\n };\n}\n\nfunction parseFlowFetchRowsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n refsFile: string;\n outDir: string;\n allowLatestFallback: boolean;\n failOnMissing: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'refs-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'no-latest-fallback': { type: 'boolean' },\n 'fail-on-missing': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n refsFile: typeof values['refs-file'] === 'string' ? values['refs-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n allowLatestFallback: values['no-latest-fallback'] !== true,\n failOnMissing: values['fail-on-missing'] === true,\n };\n}\n\nfunction parseFlowMaterializeDecisionsFlags(args: string[]): {\n help: boolean;\n json: boolean;\n decisionFile: string;\n flowRowsFile: string;\n outDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'decision-file': { type: 'string' },\n 'flow-rows-file': { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n decisionFile: typeof values['decision-file'] === 'string' ? values['decision-file'] : '',\n flowRowsFile: typeof values['flow-rows-file'] === 'string' ? values['flow-rows-file'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n };\n}\n\nfunction parseFlowListFlags(args: string[]): {\n help: boolean;\n json: boolean;\n ids: string[];\n version: string | null;\n userId: string | null;\n stateCodes: number[];\n typeOfDataset: string[];\n limit: number | null;\n offset: number | null;\n all: boolean;\n pageSize: number | null;\n order: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string', multiple: true },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n type: { type: 'string', multiple: true },\n 'type-of-dataset': { type: 'string', multiple: true },\n limit: { type: 'string' },\n offset: { type: 'string' },\n all: { type: 'boolean' },\n 'page-size': { type: 'string' },\n order: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalPositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseStateCodeValues = (value: unknown): number[] => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map((entry) => {\n const parsed = Number.parseInt(String(entry), 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError('Expected --state-code to be a non-negative integer.', {\n code: 'INVALID_FLOW_LIST_STATE_CODE',\n exitCode: 2,\n });\n }\n return parsed;\n });\n };\n const toStringArray = (value: unknown): string[] =>\n Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n\n if (values['page-size'] !== undefined && !values.all) {\n throw new CliError('Use --page-size only with --all.', {\n code: 'FLOW_LIST_PAGE_SIZE_REQUIRES_ALL',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n ids: toStringArray(values.id),\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCodes: parseStateCodeValues(values['state-code']),\n typeOfDataset: [...toStringArray(values['type-of-dataset']), ...toStringArray(values.type)],\n limit: parseOptionalPositiveIntegerFlag(values.limit, '--limit', 'INVALID_FLOW_LIST_LIMIT'),\n offset: parseOptionalNonNegativeIntegerFlag(\n values.offset,\n '--offset',\n 'INVALID_FLOW_LIST_OFFSET',\n ),\n all: Boolean(values.all),\n pageSize: parseOptionalPositiveIntegerFlag(\n values['page-size'],\n '--page-size',\n 'INVALID_FLOW_LIST_PAGE_SIZE',\n ),\n order: typeof values.order === 'string' ? values.order : null,\n };\n}\n\nfunction parseReviewProcessFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string | undefined;\n runRoot: string | undefined;\n runId: string | undefined;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n enableLlm: boolean;\n llmModel: string | undefined;\n llmMaxProcesses: number | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'rows-file': { type: 'string' },\n 'run-root': { type: 'string' },\n 'run-id': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n 'enable-llm': { type: 'boolean' },\n 'llm-model': { type: 'string' },\n 'llm-max-processes': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const llmMaxProcessesValue =\n typeof values['llm-max-processes'] === 'string'\n ? Number.parseInt(values['llm-max-processes'], 10)\n : undefined;\n\n if (\n values['llm-max-processes'] !== undefined &&\n (!Number.isInteger(llmMaxProcessesValue) || (llmMaxProcessesValue as number) <= 0)\n ) {\n throw new CliError('Expected --llm-max-processes to be a positive integer.', {\n code: 'INVALID_LLM_MAX_PROCESSES',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : undefined,\n runRoot: typeof values['run-root'] === 'string' ? values['run-root'] : undefined,\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n enableLlm: Boolean(values['enable-llm']),\n llmModel: typeof values['llm-model'] === 'string' ? values['llm-model'] : undefined,\n llmMaxProcesses: llmMaxProcessesValue,\n };\n}\n\nfunction parseReviewFlowFlags(args: string[]): {\n help: boolean;\n json: boolean;\n rowsFile: string | undefined;\n flowsDir: string | undefined;\n runRoot: string | undefined;\n runId: string | undefined;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n enableLlm: boolean;\n llmModel: string | undefined;\n llmMaxFlows: number | undefined;\n llmBatchSize: number | undefined;\n similarityThreshold: number | undefined;\n methodologyId: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'rows-file': { type: 'string' },\n 'flows-dir': { type: 'string' },\n 'run-root': { type: 'string' },\n 'run-id': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n 'enable-llm': { type: 'boolean' },\n 'llm-model': { type: 'string' },\n 'llm-max-flows': { type: 'string' },\n 'llm-batch-size': { type: 'string' },\n 'similarity-threshold': { type: 'string' },\n 'methodology-id': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parsePositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const similarityThreshold =\n typeof values['similarity-threshold'] === 'string'\n ? Number.parseFloat(values['similarity-threshold'])\n : undefined;\n if (\n values['similarity-threshold'] !== undefined &&\n (!Number.isFinite(similarityThreshold) || (similarityThreshold as number) <= 0)\n ) {\n throw new CliError('Expected --similarity-threshold to be a positive number.', {\n code: 'INVALID_SIMILARITY_THRESHOLD',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n rowsFile: typeof values['rows-file'] === 'string' ? values['rows-file'] : undefined,\n flowsDir: typeof values['flows-dir'] === 'string' ? values['flows-dir'] : undefined,\n runRoot: typeof values['run-root'] === 'string' ? values['run-root'] : undefined,\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : undefined,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n enableLlm: Boolean(values['enable-llm']),\n llmModel: typeof values['llm-model'] === 'string' ? values['llm-model'] : undefined,\n llmMaxFlows: parsePositiveIntegerFlag(\n values['llm-max-flows'],\n '--llm-max-flows',\n 'INVALID_LLM_MAX_FLOWS',\n ),\n llmBatchSize: parsePositiveIntegerFlag(\n values['llm-batch-size'],\n '--llm-batch-size',\n 'INVALID_LLM_BATCH_SIZE',\n ),\n similarityThreshold,\n methodologyId:\n typeof values['methodology-id'] === 'string' ? values['methodology-id'] : undefined,\n };\n}\n\nfunction parseReviewLifecyclemodelFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n outDir: string;\n startTs: string | undefined;\n endTs: string | undefined;\n logicVersion: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n 'out-dir': { type: 'string' },\n 'start-ts': { type: 'string' },\n 'end-ts': { type: 'string' },\n 'logic-version': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : '',\n startTs: typeof values['start-ts'] === 'string' ? values['start-ts'] : undefined,\n endTs: typeof values['end-ts'] === 'string' ? values['end-ts'] : undefined,\n logicVersion: typeof values['logic-version'] === 'string' ? values['logic-version'] : undefined,\n };\n}\n\nfunction parseLifecyclemodelPublishFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n publishProcesses: boolean;\n publishRelations: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n 'publish-processes': { type: 'boolean' },\n 'publish-relations': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n publishProcesses: Boolean(values['publish-processes']),\n publishRelations: Boolean(values['publish-relations']),\n };\n}\n\nfunction parseLifecyclemodelValidateBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n engine: string | undefined;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n engine: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n engine: typeof values.engine === 'string' ? values.engine : undefined,\n };\n}\n\nfunction parseLifecyclemodelPublishBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runDir: string;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n };\n}\n\nfunction parseLifecyclemodelBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseLifecyclemodelOrchestrateFlags(args: string[]): {\n help: boolean;\n json: boolean;\n action: string;\n inputPath: string;\n outDir: string | null;\n runDir: string;\n allowProcessBuild: boolean;\n allowSubmodelBuild: boolean;\n publishLifecyclemodels: boolean;\n publishResultingProcessRelations: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n let positionals: string[];\n try {\n ({ values, positionals } = parseArgs({\n args,\n allowPositionals: true,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n request: { type: 'string' },\n 'out-dir': { type: 'string' },\n 'run-dir': { type: 'string' },\n 'allow-process-build': { type: 'boolean' },\n 'allow-submodel-build': { type: 'boolean' },\n 'publish-lifecyclemodels': { type: 'boolean' },\n 'publish-resulting-process-relations': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const inputAlias = typeof values.request === 'string' ? values.request : '';\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n action: positionals[0] ?? '',\n inputPath: typeof values.input === 'string' ? values.input : inputAlias,\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : '',\n allowProcessBuild: Boolean(values['allow-process-build']),\n allowSubmodelBuild: Boolean(values['allow-submodel-build']),\n publishLifecyclemodels: Boolean(values['publish-lifecyclemodels']),\n publishResultingProcessRelations: Boolean(values['publish-resulting-process-relations']),\n };\n}\n\nfunction parseProcessAutoBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction parseProcessGetFlags(args: string[]): {\n help: boolean;\n json: boolean;\n processId: string;\n version: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string' },\n version: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n processId: typeof values.id === 'string' ? values.id : '',\n version: typeof values.version === 'string' ? values.version : null,\n };\n}\n\nfunction parseProcessListFlags(args: string[]): {\n help: boolean;\n json: boolean;\n ids: string[];\n version: string | null;\n userId: string | null;\n stateCodes: number[];\n limit: number | null;\n offset: number | null;\n all: boolean;\n pageSize: number | null;\n order: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n id: { type: 'string', multiple: true },\n version: { type: 'string' },\n 'user-id': { type: 'string' },\n 'state-code': { type: 'string', multiple: true },\n limit: { type: 'string' },\n offset: { type: 'string' },\n all: { type: 'boolean' },\n 'page-size': { type: 'string' },\n order: { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n const parseOptionalPositiveIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new CliError(`Expected ${label} to be a positive integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseOptionalNonNegativeIntegerFlag = (\n value: unknown,\n label: string,\n code: string,\n ): number | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError(`Expected ${label} to be a non-negative integer.`, {\n code,\n exitCode: 2,\n });\n }\n return parsed;\n };\n\n const parseStateCodeValues = (value: unknown): number[] => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map((entry) => {\n const parsed = Number.parseInt(String(entry), 10);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new CliError('Expected --state-code to be a non-negative integer.', {\n code: 'INVALID_PROCESS_LIST_STATE_CODE',\n exitCode: 2,\n });\n }\n return parsed;\n });\n };\n const toStringArray = (value: unknown): string[] =>\n Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n\n if (values['page-size'] !== undefined && !values.all) {\n throw new CliError('Use --page-size only with --all.', {\n code: 'PROCESS_LIST_PAGE_SIZE_REQUIRES_ALL',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n ids: toStringArray(values.id),\n version: typeof values.version === 'string' ? values.version : null,\n userId: typeof values['user-id'] === 'string' ? values['user-id'] : null,\n stateCodes: parseStateCodeValues(values['state-code']),\n limit: parseOptionalPositiveIntegerFlag(values.limit, '--limit', 'INVALID_PROCESS_LIST_LIMIT'),\n offset: parseOptionalNonNegativeIntegerFlag(\n values.offset,\n '--offset',\n 'INVALID_PROCESS_LIST_OFFSET',\n ),\n all: Boolean(values.all),\n pageSize: parseOptionalPositiveIntegerFlag(\n values['page-size'],\n '--page-size',\n 'INVALID_PROCESS_LIST_PAGE_SIZE',\n ),\n order: typeof values.order === 'string' ? values.order : null,\n };\n}\n\nfunction parseProcessResumeBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runId: string;\n runDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-id': { type: 'string' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : '',\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : null,\n };\n}\n\nfunction parseProcessPublishBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n runId: string;\n runDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n 'run-id': { type: 'string' },\n 'run-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n runId: typeof values['run-id'] === 'string' ? values['run-id'] : '',\n runDir: typeof values['run-dir'] === 'string' ? values['run-dir'] : null,\n };\n}\n\nfunction parseProcessSaveDraftFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n commit: boolean;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n commit: { type: 'boolean' },\n 'dry-run': { type: 'boolean' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n if (values.commit && values['dry-run']) {\n throw new CliError('Cannot pass both --commit and --dry-run.', {\n code: 'INVALID_PROCESS_SAVE_DRAFT_MODE',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n commit: Boolean(values.commit),\n };\n}\n\nfunction parseProcessBatchBuildFlags(args: string[]): {\n help: boolean;\n json: boolean;\n inputPath: string;\n outDir: string | null;\n} {\n let values: ReturnType<typeof parseArgs>['values'];\n try {\n ({ values } = parseArgs({\n args,\n allowPositionals: false,\n strict: true,\n options: {\n help: { type: 'boolean', short: 'h' },\n json: { type: 'boolean' },\n input: { type: 'string' },\n 'out-dir': { type: 'string' },\n },\n }));\n } catch (error) {\n throw new CliError(String(error), {\n code: 'INVALID_ARGS',\n exitCode: 2,\n });\n }\n\n return {\n help: Boolean(values.help),\n json: Boolean(values.json),\n inputPath: typeof values.input === 'string' ? values.input : '',\n outDir: typeof values['out-dir'] === 'string' ? values['out-dir'] : null,\n };\n}\n\nfunction plannedCommand(command: string, subcommand?: string): CliResult {\n const suffix = subcommand ? ` ${subcommand}` : '';\n return {\n exitCode: 2,\n stdout: '',\n stderr: `Command '${command}${suffix}' is part of the planned unified surface but is not implemented yet.\\n`,\n };\n}\n\nfunction applyRemoteOverrides(\n env: NodeJS.ProcessEnv,\n overrides: Pick<ReturnType<typeof parseRemoteFlags>, 'apiBaseUrl' | 'apiKey' | 'region'>,\n) {\n const runtimeEnv = readRuntimeEnv(env);\n\n return {\n ...env,\n TIANGONG_LCA_API_BASE_URL: overrides.apiBaseUrl ?? runtimeEnv.apiBaseUrl ?? undefined,\n TIANGONG_LCA_API_KEY: overrides.apiKey ?? runtimeEnv.apiKey ?? undefined,\n TIANGONG_LCA_REGION: overrides.region ?? runtimeEnv.region,\n } satisfies NodeJS.ProcessEnv;\n}\n\nexport async function executeCli(argv: string[], deps: CliDeps): Promise<CliResult> {\n try {\n const { flags, command, subcommand, commandArgs } = parseCommandLine(argv);\n const publishImpl = deps.runPublishImpl ?? runPublish;\n const validationImpl = deps.runValidationImpl ?? runValidation;\n const lifecyclemodelAutoBuildImpl =\n deps.runLifecyclemodelAutoBuildImpl ?? runLifecyclemodelAutoBuild;\n const lifecyclemodelBuildImpl =\n deps.runLifecyclemodelBuildResultingProcessImpl ?? runLifecyclemodelBuildResultingProcess;\n const lifecyclemodelPublishImpl =\n deps.runLifecyclemodelPublishResultingProcessImpl ?? runLifecyclemodelPublishResultingProcess;\n const lifecyclemodelValidateImpl =\n deps.runLifecyclemodelValidateBuildImpl ?? runLifecyclemodelValidateBuild;\n const lifecyclemodelPublishBuildImpl =\n deps.runLifecyclemodelPublishBuildImpl ?? runLifecyclemodelPublishBuild;\n const lifecyclemodelOrchestrateImpl =\n deps.runLifecyclemodelOrchestrateImpl ?? runLifecyclemodelOrchestrate;\n const processGetImpl = deps.runProcessGetImpl ?? runProcessGet;\n const processListImpl = deps.runProcessListImpl ?? runProcessList;\n const processAutoBuildImpl = deps.runProcessAutoBuildImpl ?? runProcessAutoBuild;\n const processBatchBuildImpl = deps.runProcessBatchBuildImpl ?? runProcessBatchBuild;\n const processResumeBuildImpl = deps.runProcessResumeBuildImpl ?? runProcessResumeBuild;\n const processPublishBuildImpl = deps.runProcessPublishBuildImpl ?? runProcessPublishBuild;\n const processSaveDraftImpl = deps.runProcessSaveDraftImpl ?? runProcessSaveDraft;\n const processReviewImpl = deps.runProcessReviewImpl ?? runProcessReview;\n const flowReviewImpl = deps.runFlowReviewImpl ?? runFlowReview;\n const lifecyclemodelReviewImpl = deps.runLifecyclemodelReviewImpl ?? runLifecyclemodelReview;\n const flowRemediateImpl = deps.runFlowRemediateImpl ?? runFlowRemediate;\n const flowFetchRowsImpl = deps.runFlowFetchRowsImpl ?? runFlowFetchRows;\n const flowMaterializeDecisionsImpl =\n deps.runFlowMaterializeDecisionsImpl ?? runFlowMaterializeDecisions;\n const flowGetImpl = deps.runFlowGetImpl ?? runFlowGet;\n const flowListImpl = deps.runFlowListImpl ?? runFlowList;\n const flowPublishVersionImpl = deps.runFlowPublishVersionImpl ?? runFlowPublishVersion;\n const flowReviewedPublishDataImpl =\n deps.runFlowReviewedPublishDataImpl ?? runFlowReviewedPublishData;\n const flowBuildAliasMapImpl = deps.runFlowBuildAliasMapImpl ?? runFlowBuildAliasMap;\n const flowScanProcessFlowRefsImpl =\n deps.runFlowScanProcessFlowRefsImpl ?? runFlowScanProcessFlowRefs;\n const flowPlanProcessFlowRepairsImpl =\n deps.runFlowPlanProcessFlowRepairsImpl ?? runFlowPlanProcessFlowRepairs;\n const flowApplyProcessFlowRepairsImpl =\n deps.runFlowApplyProcessFlowRepairsImpl ?? runFlowApplyProcessFlowRepairs;\n const flowRegenProductImpl = deps.runFlowRegenProductImpl ?? runFlowRegenProduct;\n const flowValidateProcessesImpl = deps.runFlowValidateProcessesImpl ?? runFlowValidateProcesses;\n\n if (flags.version) {\n return { exitCode: 0, stdout: `${loadCliPackageVersion(import.meta.url)}\\n`, stderr: '' };\n }\n\n if (!command || command === 'help' || flags.help) {\n return { exitCode: 0, stdout: `${renderMainHelp(deps.dotEnvStatus)}\\n`, stderr: '' };\n }\n\n if (command === 'doctor') {\n const doctorFlags = parseDoctorFlags(commandArgs);\n if (doctorFlags.help) {\n return { exitCode: 0, stdout: `${renderDoctorHelp()}\\n`, stderr: '' };\n }\n const report = buildDoctorReport(deps.env, deps.dotEnvStatus);\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: doctorFlags.json ? `${JSON.stringify(report)}\\n` : renderDoctorText(report),\n stderr: '',\n };\n }\n\n if (command === 'search' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderSearchHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'search' && subcommand) {\n const remoteFlags = parseRemoteFlags(commandArgs);\n const commandKey = `search:${subcommand}` as const;\n if (remoteFlags.help) {\n return { exitCode: 0, stdout: `${getRemoteCommandHelp(commandKey)}\\n`, stderr: '' };\n }\n const env = applyRemoteOverrides(deps.env, remoteFlags);\n\n return {\n exitCode: 0,\n stdout: await executeRemoteCommand({\n commandKey,\n inputPath: remoteFlags.inputPath,\n env,\n timeoutMs: remoteFlags.timeoutMs,\n dryRun: remoteFlags.dryRun,\n compactJson: remoteFlags.json,\n fetchImpl: deps.fetchImpl,\n }),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && !subcommand) {\n return { exitCode: 0, stdout: `${renderLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'auto-build') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelAutoBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelAutoBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'build-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelBuildResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelBuildImpl({\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-resulting-process') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishResultingProcessHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishImpl({\n runDir: lifecyclemodelFlags.runDir,\n publishProcesses: lifecyclemodelFlags.publishProcesses,\n publishRelations: lifecyclemodelFlags.publishRelations,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'validate-build') {\n const lifecyclemodelFlags = parseLifecyclemodelValidateBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelValidateBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelValidateImpl({\n runDir: lifecyclemodelFlags.runDir,\n engine: lifecyclemodelFlags.engine,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'publish-build') {\n const lifecyclemodelFlags = parseLifecyclemodelPublishBuildFlags(commandArgs);\n if (lifecyclemodelFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelPublishBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await lifecyclemodelPublishBuildImpl({\n runDir: lifecyclemodelFlags.runDir,\n cwd: process.cwd(),\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'lifecyclemodel' && subcommand === 'orchestrate') {\n const lifecyclemodelFlags = parseLifecyclemodelOrchestrateFlags(commandArgs);\n if (lifecyclemodelFlags.help || !lifecyclemodelFlags.action) {\n return {\n exitCode: 0,\n stdout: `${renderLifecyclemodelOrchestrateHelp()}\\n`,\n stderr: '',\n };\n }\n if (\n lifecyclemodelFlags.action !== 'plan' &&\n lifecyclemodelFlags.action !== 'execute' &&\n lifecyclemodelFlags.action !== 'publish'\n ) {\n throw new CliError(\n \"lifecyclemodel orchestrate action must be 'plan', 'execute', or 'publish'.\",\n {\n code: 'INVALID_ARGS',\n exitCode: 2,\n },\n );\n }\n\n const report = await lifecyclemodelOrchestrateImpl({\n action: lifecyclemodelFlags.action,\n inputPath: lifecyclemodelFlags.inputPath,\n outDir: lifecyclemodelFlags.outDir,\n runDir: lifecyclemodelFlags.runDir,\n allowProcessBuild: lifecyclemodelFlags.allowProcessBuild,\n allowSubmodelBuild: lifecyclemodelFlags.allowSubmodelBuild,\n publishLifecyclemodels: lifecyclemodelFlags.publishLifecyclemodels,\n publishResultingProcessRelations: lifecyclemodelFlags.publishResultingProcessRelations,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.action === 'execute' && report.status !== 'completed' ? 1 : 0,\n stdout: stringifyJson(report, lifecyclemodelFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && !subcommand) {\n return { exitCode: 0, stdout: `${renderProcessHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'process' && subcommand === 'get') {\n const processFlags = parseProcessGetFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessGetHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processGetImpl({\n processId: processFlags.processId,\n version: processFlags.version,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'list') {\n const processFlags = parseProcessListFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessListHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processListImpl({\n ids: processFlags.ids,\n version: processFlags.version,\n userId: processFlags.userId,\n stateCodes: processFlags.stateCodes,\n limit: processFlags.limit,\n offset: processFlags.offset,\n all: processFlags.all,\n pageSize: processFlags.pageSize,\n order: processFlags.order,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'auto-build') {\n const processFlags = parseProcessAutoBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessAutoBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processAutoBuildImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'resume-build') {\n const processFlags = parseProcessResumeBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessResumeBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processResumeBuildImpl({\n runId: processFlags.runId || undefined,\n runDir: processFlags.runDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'publish-build') {\n const processFlags = parseProcessPublishBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessPublishBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processPublishBuildImpl({\n runId: processFlags.runId || undefined,\n runDir: processFlags.runDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'save-draft') {\n const processFlags = parseProcessSaveDraftFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessSaveDraftHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processSaveDraftImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n commit: processFlags.commit,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'process' && subcommand === 'batch-build') {\n const processFlags = parseProcessBatchBuildFlags(commandArgs);\n if (processFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderProcessBatchBuildHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await processBatchBuildImpl({\n inputPath: processFlags.inputPath,\n outDir: processFlags.outDir,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, processFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && !subcommand) {\n return { exitCode: 0, stdout: `${renderFlowHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'flow' && subcommand === 'get') {\n const flowFlags = parseFlowGetFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowGetHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowGetImpl({\n flowId: flowFlags.flowId,\n version: flowFlags.version,\n userId: flowFlags.userId,\n stateCode: flowFlags.stateCode,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'list') {\n const flowFlags = parseFlowListFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowListHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowListImpl({\n ids: flowFlags.ids,\n version: flowFlags.version,\n userId: flowFlags.userId,\n stateCodes: flowFlags.stateCodes,\n typeOfDataset: flowFlags.typeOfDataset,\n limit: flowFlags.limit,\n offset: flowFlags.offset,\n all: flowFlags.all,\n pageSize: flowFlags.pageSize,\n order: flowFlags.order,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'remediate') {\n const flowFlags = parseFlowRemediateFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowRemediateHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowRemediateImpl({\n inputFile: flowFlags.inputFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'fetch-rows') {\n const flowFlags = parseFlowFetchRowsFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowFetchRowsHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowFetchRowsImpl({\n refsFile: flowFlags.refsFile,\n outDir: flowFlags.outDir,\n allowLatestFallback: flowFlags.allowLatestFallback,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode:\n flowFlags.failOnMissing &&\n report.status === 'completed_flow_row_materialization_with_gaps'\n ? 1\n : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'materialize-decisions') {\n const flowFlags = parseFlowMaterializeDecisionsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowMaterializeDecisionsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowMaterializeDecisionsImpl({\n decisionFile: flowFlags.decisionFile,\n flowRowsFile: flowFlags.flowRowsFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'publish-version') {\n const flowFlags = parseFlowPublishVersionFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowPublishVersionHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowPublishVersionImpl({\n inputFile: flowFlags.inputFile,\n outDir: flowFlags.outDir,\n commit: flowFlags.commit,\n maxWorkers: flowFlags.maxWorkers,\n limit: flowFlags.limit,\n targetUserId: flowFlags.targetUserId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_flow_publish_version_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'publish-reviewed-data') {\n const flowFlags = parseFlowPublishReviewedDataFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowPublishReviewedDataHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowReviewedPublishDataImpl({\n flowRowsFile: flowFlags.flowRowsFile,\n originalFlowRowsFile: flowFlags.originalFlowRowsFile,\n processRowsFile: flowFlags.processRowsFile,\n outDir: flowFlags.outDir,\n flowPublishPolicy: flowFlags.flowPublishPolicy,\n processPublishPolicy: flowFlags.processPublishPolicy,\n rewriteProcessFlowRefs: flowFlags.rewriteProcessFlowRefs,\n commit: flowFlags.commit,\n maxWorkers: flowFlags.maxWorkers,\n targetUserId: flowFlags.targetUserId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_flow_publish_reviewed_data_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'build-alias-map') {\n const flowFlags = parseFlowBuildAliasMapFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowBuildAliasMapHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowBuildAliasMapImpl({\n oldFlowFiles: flowFlags.oldFlowFiles,\n newFlowFiles: flowFlags.newFlowFiles,\n seedAliasMapFile: flowFlags.seedAliasMapFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'scan-process-flow-refs') {\n const flowFlags = parseFlowScanProcessFlowRefsFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowScanProcessFlowRefsHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowScanProcessFlowRefsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n catalogFlowFiles: flowFlags.catalogFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n excludeEmergy: flowFlags.excludeEmergy,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'plan-process-flow-repairs') {\n const flowFlags = parseFlowPlanProcessFlowRepairsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowPlanProcessFlowRepairsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowPlanProcessFlowRepairsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n scanFindingsFile: flowFlags.scanFindingsFile,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'apply-process-flow-repairs') {\n const flowFlags = parseFlowApplyProcessFlowRepairsFlags(commandArgs);\n if (flowFlags.help) {\n return {\n exitCode: 0,\n stdout: `${renderFlowApplyProcessFlowRepairsHelp()}\\n`,\n stderr: '',\n };\n }\n\n const report = await flowApplyProcessFlowRepairsImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n scanFindingsFile: flowFlags.scanFindingsFile,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n processPoolFile: flowFlags.processPoolFile,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'regen-product') {\n const flowFlags = parseFlowRegenProductFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowRegenProductHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowRegenProductImpl({\n processesFile: flowFlags.processesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n catalogFlowFiles: flowFlags.catalogFlowFiles,\n aliasMapFile: flowFlags.aliasMapFile,\n excludeEmergy: flowFlags.excludeEmergy,\n autoPatchPolicy: flowFlags.autoPatchPolicy,\n apply: flowFlags.apply,\n processPoolFile: flowFlags.processPoolFile,\n tidasMode: flowFlags.tidasMode,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: report.validation.ok === false ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'flow' && subcommand === 'validate-processes') {\n const flowFlags = parseFlowValidateProcessesFlags(commandArgs);\n if (flowFlags.help) {\n return { exitCode: 0, stdout: `${renderFlowValidateProcessesHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowValidateProcessesImpl({\n originalProcessesFile: flowFlags.originalProcessesFile,\n patchedProcessesFile: flowFlags.patchedProcessesFile,\n scopeFlowFiles: flowFlags.scopeFlowFiles,\n tidasMode: flowFlags.tidasMode,\n outDir: flowFlags.outDir,\n });\n\n return {\n exitCode: report.summary.failed > 0 ? 1 : 0,\n stdout: stringifyJson(report, flowFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'admin' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderAdminHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'admin' && subcommand === 'embedding-run') {\n const remoteFlags = parseRemoteFlags(commandArgs);\n if (remoteFlags.help) {\n return {\n exitCode: 0,\n stdout: `${getRemoteCommandHelp('admin:embedding-run')}\\n`,\n stderr: '',\n };\n }\n const env = applyRemoteOverrides(deps.env, remoteFlags);\n\n return {\n exitCode: 0,\n stdout: await executeRemoteCommand({\n commandKey: 'admin:embedding-run',\n inputPath: remoteFlags.inputPath,\n env,\n timeoutMs: remoteFlags.timeoutMs,\n dryRun: remoteFlags.dryRun,\n compactJson: remoteFlags.json,\n fetchImpl: deps.fetchImpl,\n }),\n stderr: '',\n };\n }\n\n if (command === 'publish' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderPublishHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'publish' && subcommand === 'run') {\n const publishFlags = parsePublishFlags(commandArgs);\n if (publishFlags.help) {\n return { exitCode: 0, stdout: `${renderPublishHelp()}\\n`, stderr: '' };\n }\n\n const report = await publishImpl({\n inputPath: publishFlags.inputPath,\n outDir: publishFlags.outDir,\n commit: publishFlags.commitOverride,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: report.status === 'completed_with_failures' ? 1 : 0,\n stdout: stringifyJson(report, publishFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'validation' && !subcommand && commandArgs.includes('--help')) {\n return { exitCode: 0, stdout: `${renderValidationHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'validation' && subcommand === 'run') {\n const validationFlags = parseValidationFlags(commandArgs);\n if (validationFlags.help) {\n return { exitCode: 0, stdout: `${renderValidationHelp()}\\n`, stderr: '' };\n }\n\n const report = await validationImpl({\n inputDir: validationFlags.inputDir,\n engine: validationFlags.engine,\n reportFile: validationFlags.reportFile,\n });\n\n return {\n exitCode: report.ok ? 0 : 1,\n stdout: stringifyJson(report, validationFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && !subcommand) {\n return { exitCode: 0, stdout: `${renderReviewHelp()}\\n`, stderr: '' };\n }\n\n if (command === 'review' && subcommand === 'process') {\n const reviewFlags = parseReviewProcessFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewProcessHelp()}\\n`, stderr: '' };\n }\n\n const report = await processReviewImpl({\n rowsFile: reviewFlags.rowsFile,\n runRoot: reviewFlags.runRoot,\n runId: reviewFlags.runId,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n enableLlm: reviewFlags.enableLlm,\n llmModel: reviewFlags.llmModel,\n llmMaxProcesses: reviewFlags.llmMaxProcesses,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && subcommand === 'flow') {\n const reviewFlags = parseReviewFlowFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewFlowHelp()}\\n`, stderr: '' };\n }\n\n const report = await flowReviewImpl({\n rowsFile: reviewFlags.rowsFile,\n flowsDir: reviewFlags.flowsDir,\n runRoot: reviewFlags.runRoot,\n runId: reviewFlags.runId,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n enableLlm: reviewFlags.enableLlm,\n llmModel: reviewFlags.llmModel,\n llmMaxFlows: reviewFlags.llmMaxFlows,\n llmBatchSize: reviewFlags.llmBatchSize,\n similarityThreshold: reviewFlags.similarityThreshold,\n methodologyId: reviewFlags.methodologyId,\n env: deps.env,\n fetchImpl: deps.fetchImpl,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n if (command === 'review' && subcommand === 'lifecyclemodel') {\n const reviewFlags = parseReviewLifecyclemodelFlags(commandArgs);\n if (reviewFlags.help) {\n return { exitCode: 0, stdout: `${renderReviewLifecyclemodelHelp()}\\n`, stderr: '' };\n }\n\n const report = await lifecyclemodelReviewImpl({\n runDir: reviewFlags.runDir,\n outDir: reviewFlags.outDir,\n startTs: reviewFlags.startTs,\n endTs: reviewFlags.endTs,\n logicVersion: reviewFlags.logicVersion,\n });\n\n return {\n exitCode: 0,\n stdout: stringifyJson(report, reviewFlags.json),\n stderr: '',\n };\n }\n\n return plannedCommand(command, subcommand ?? undefined);\n } catch (error) {\n const payload = toErrorPayload(error);\n const exitCode = error instanceof CliError ? error.exitCode : 1;\n return {\n exitCode,\n stdout: '',\n stderr: `${JSON.stringify(payload)}\\n`,\n };\n }\n}\n"]}
|