@lumenflow/core 3.1.2 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -16
- package/dist/cli/is-agent-branch.js +31 -10
- package/dist/index.js +3 -0
- package/package.json +5 -2
- package/dist/active-wu-detector.d.ts +0 -25
- package/dist/active-wu-detector.d.ts.map +0 -1
- package/dist/active-wu-detector.js +0 -109
- package/dist/active-wu-detector.js.map +0 -1
- package/dist/adapters/context-adapters.d.ts +0 -101
- package/dist/adapters/context-adapters.d.ts.map +0 -1
- package/dist/adapters/context-adapters.js +0 -98
- package/dist/adapters/context-adapters.js.map +0 -1
- package/dist/adapters/filesystem-metrics.adapter.d.ts +0 -91
- package/dist/adapters/filesystem-metrics.adapter.d.ts.map +0 -1
- package/dist/adapters/filesystem-metrics.adapter.js +0 -530
- package/dist/adapters/filesystem-metrics.adapter.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -15
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -21
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/mock-dashboard-renderer.adapter.d.ts +0 -86
- package/dist/adapters/mock-dashboard-renderer.adapter.d.ts.map +0 -1
- package/dist/adapters/mock-dashboard-renderer.adapter.js +0 -93
- package/dist/adapters/mock-dashboard-renderer.adapter.js.map +0 -1
- package/dist/adapters/recovery-adapters.d.ts +0 -41
- package/dist/adapters/recovery-adapters.d.ts.map +0 -1
- package/dist/adapters/recovery-adapters.js +0 -32
- package/dist/adapters/recovery-adapters.js.map +0 -1
- package/dist/adapters/terminal-renderer.adapter.d.ts +0 -86
- package/dist/adapters/terminal-renderer.adapter.d.ts.map +0 -1
- package/dist/adapters/terminal-renderer.adapter.js +0 -342
- package/dist/adapters/terminal-renderer.adapter.js.map +0 -1
- package/dist/adapters/validation-adapters.d.ts +0 -53
- package/dist/adapters/validation-adapters.d.ts.map +0 -1
- package/dist/adapters/validation-adapters.js +0 -48
- package/dist/adapters/validation-adapters.js.map +0 -1
- package/dist/agent-patterns-registry.d.ts +0 -141
- package/dist/agent-patterns-registry.d.ts.map +0 -1
- package/dist/agent-patterns-registry.js +0 -319
- package/dist/agent-patterns-registry.js.map +0 -1
- package/dist/arg-parser.d.ts +0 -94
- package/dist/arg-parser.d.ts.map +0 -1
- package/dist/arg-parser.js +0 -774
- package/dist/arg-parser.js.map +0 -1
- package/dist/atomic-merge.d.ts +0 -21
- package/dist/atomic-merge.d.ts.map +0 -1
- package/dist/atomic-merge.js +0 -87
- package/dist/atomic-merge.js.map +0 -1
- package/dist/backlog-editor.d.ts +0 -103
- package/dist/backlog-editor.d.ts.map +0 -1
- package/dist/backlog-editor.js +0 -158
- package/dist/backlog-editor.js.map +0 -1
- package/dist/backlog-generator.d.ts +0 -90
- package/dist/backlog-generator.d.ts.map +0 -1
- package/dist/backlog-generator.js +0 -536
- package/dist/backlog-generator.js.map +0 -1
- package/dist/backlog-parser.d.ts +0 -46
- package/dist/backlog-parser.d.ts.map +0 -1
- package/dist/backlog-parser.js +0 -105
- package/dist/backlog-parser.js.map +0 -1
- package/dist/backlog-sync-validator.d.ts +0 -88
- package/dist/backlog-sync-validator.d.ts.map +0 -1
- package/dist/backlog-sync-validator.js +0 -324
- package/dist/backlog-sync-validator.js.map +0 -1
- package/dist/beacon-migration.d.ts +0 -56
- package/dist/beacon-migration.js +0 -101
- package/dist/branch-check.d.ts +0 -63
- package/dist/branch-check.d.ts.map +0 -1
- package/dist/branch-check.js +0 -197
- package/dist/branch-check.js.map +0 -1
- package/dist/branch-drift.d.ts +0 -24
- package/dist/branch-drift.d.ts.map +0 -1
- package/dist/branch-drift.js +0 -54
- package/dist/branch-drift.js.map +0 -1
- package/dist/cleanup-install-config.d.ts +0 -24
- package/dist/cleanup-install-config.d.ts.map +0 -1
- package/dist/cleanup-install-config.js +0 -40
- package/dist/cleanup-install-config.js.map +0 -1
- package/dist/cleanup-lock.d.ts +0 -125
- package/dist/cleanup-lock.d.ts.map +0 -1
- package/dist/cleanup-lock.js +0 -325
- package/dist/cleanup-lock.js.map +0 -1
- package/dist/cli/is-agent-branch.d.ts +0 -15
- package/dist/cli/is-agent-branch.d.ts.map +0 -1
- package/dist/cli/is-agent-branch.js.map +0 -1
- package/dist/cloud-detect.d.ts +0 -145
- package/dist/cloud-detect.d.ts.map +0 -1
- package/dist/cloud-detect.js +0 -116
- package/dist/cloud-detect.js.map +0 -1
- package/dist/code-path-validator.d.ts +0 -147
- package/dist/code-path-validator.d.ts.map +0 -1
- package/dist/code-path-validator.js +0 -551
- package/dist/code-path-validator.js.map +0 -1
- package/dist/code-paths-overlap.d.ts +0 -50
- package/dist/code-paths-overlap.d.ts.map +0 -1
- package/dist/code-paths-overlap.js +0 -248
- package/dist/code-paths-overlap.js.map +0 -1
- package/dist/color-support.d.ts +0 -21
- package/dist/color-support.d.ts.map +0 -1
- package/dist/color-support.js +0 -67
- package/dist/color-support.js.map +0 -1
- package/dist/commands-logger.d.ts +0 -71
- package/dist/commands-logger.d.ts.map +0 -1
- package/dist/commands-logger.js +0 -256
- package/dist/commands-logger.js.map +0 -1
- package/dist/commit-message-utils.d.ts +0 -26
- package/dist/commit-message-utils.d.ts.map +0 -1
- package/dist/commit-message-utils.js +0 -44
- package/dist/commit-message-utils.js.map +0 -1
- package/dist/compliance-parser.d.ts +0 -125
- package/dist/compliance-parser.d.ts.map +0 -1
- package/dist/compliance-parser.js +0 -457
- package/dist/compliance-parser.js.map +0 -1
- package/dist/constants/backlog-patterns.d.ts +0 -21
- package/dist/constants/backlog-patterns.d.ts.map +0 -1
- package/dist/constants/backlog-patterns.js +0 -26
- package/dist/constants/backlog-patterns.js.map +0 -1
- package/dist/constants/dora-constants.d.ts +0 -50
- package/dist/constants/dora-constants.d.ts.map +0 -1
- package/dist/constants/dora-constants.js +0 -56
- package/dist/constants/dora-constants.js.map +0 -1
- package/dist/constants/gate-constants.d.ts +0 -16
- package/dist/constants/gate-constants.d.ts.map +0 -1
- package/dist/constants/gate-constants.js +0 -18
- package/dist/constants/gate-constants.js.map +0 -1
- package/dist/constants/linter-constants.d.ts +0 -17
- package/dist/constants/linter-constants.d.ts.map +0 -1
- package/dist/constants/linter-constants.js +0 -19
- package/dist/constants/linter-constants.js.map +0 -1
- package/dist/constants/tokenizer-constants.d.ts +0 -16
- package/dist/constants/tokenizer-constants.d.ts.map +0 -1
- package/dist/constants/tokenizer-constants.js +0 -18
- package/dist/constants/tokenizer-constants.js.map +0 -1
- package/dist/context/context-computer.d.ts +0 -36
- package/dist/context/context-computer.d.ts.map +0 -1
- package/dist/context/context-computer.js +0 -128
- package/dist/context/context-computer.js.map +0 -1
- package/dist/context/git-state-reader.d.ts +0 -37
- package/dist/context/git-state-reader.d.ts.map +0 -1
- package/dist/context/git-state-reader.js +0 -64
- package/dist/context/git-state-reader.js.map +0 -1
- package/dist/context/index.d.ts +0 -18
- package/dist/context/index.d.ts.map +0 -1
- package/dist/context/index.js +0 -20
- package/dist/context/index.js.map +0 -1
- package/dist/context/location-resolver.d.ts +0 -34
- package/dist/context/location-resolver.d.ts.map +0 -1
- package/dist/context/location-resolver.js +0 -179
- package/dist/context/location-resolver.js.map +0 -1
- package/dist/context/wu-state-reader.d.ts +0 -30
- package/dist/context/wu-state-reader.d.ts.map +0 -1
- package/dist/context/wu-state-reader.js +0 -126
- package/dist/context/wu-state-reader.js.map +0 -1
- package/dist/context-di.d.ts +0 -185
- package/dist/context-di.d.ts.map +0 -1
- package/dist/context-di.js +0 -165
- package/dist/context-di.js.map +0 -1
- package/dist/context-validation-integration.d.ts +0 -69
- package/dist/context-validation-integration.d.ts.map +0 -1
- package/dist/context-validation-integration.js +0 -161
- package/dist/context-validation-integration.js.map +0 -1
- package/dist/core/scope-checker.d.ts +0 -80
- package/dist/core/scope-checker.d.ts.map +0 -1
- package/dist/core/scope-checker.js +0 -166
- package/dist/core/scope-checker.js.map +0 -1
- package/dist/core/tool-runner.d.ts +0 -136
- package/dist/core/tool-runner.d.ts.map +0 -1
- package/dist/core/tool-runner.js +0 -396
- package/dist/core/tool-runner.js.map +0 -1
- package/dist/core/tool.constants.d.ts +0 -106
- package/dist/core/tool.constants.d.ts.map +0 -1
- package/dist/core/tool.constants.js +0 -104
- package/dist/core/tool.constants.js.map +0 -1
- package/dist/core/tool.schemas.d.ts +0 -227
- package/dist/core/tool.schemas.d.ts.map +0 -1
- package/dist/core/tool.schemas.js +0 -229
- package/dist/core/tool.schemas.js.map +0 -1
- package/dist/core/worktree-guard.d.ts +0 -115
- package/dist/core/worktree-guard.d.ts.map +0 -1
- package/dist/core/worktree-guard.js +0 -245
- package/dist/core/worktree-guard.js.map +0 -1
- package/dist/coverage-gate.d.ts +0 -126
- package/dist/coverage-gate.d.ts.map +0 -1
- package/dist/coverage-gate.js +0 -209
- package/dist/coverage-gate.js.map +0 -1
- package/dist/cycle-detector.d.ts +0 -52
- package/dist/cycle-detector.d.ts.map +0 -1
- package/dist/cycle-detector.js +0 -84
- package/dist/cycle-detector.js.map +0 -1
- package/dist/date-utils.d.ts +0 -66
- package/dist/date-utils.d.ts.map +0 -1
- package/dist/date-utils.js +0 -143
- package/dist/date-utils.js.map +0 -1
- package/dist/delegation-escalation.d.ts +0 -71
- package/dist/delegation-escalation.d.ts.map +0 -1
- package/dist/delegation-escalation.js +0 -264
- package/dist/delegation-escalation.js.map +0 -1
- package/dist/delegation-monitor.d.ts +0 -262
- package/dist/delegation-monitor.d.ts.map +0 -1
- package/dist/delegation-monitor.js +0 -678
- package/dist/delegation-monitor.js.map +0 -1
- package/dist/delegation-recovery.d.ts +0 -62
- package/dist/delegation-recovery.d.ts.map +0 -1
- package/dist/delegation-recovery.js +0 -304
- package/dist/delegation-recovery.js.map +0 -1
- package/dist/delegation-registry-schema.d.ts +0 -75
- package/dist/delegation-registry-schema.d.ts.map +0 -1
- package/dist/delegation-registry-schema.js +0 -93
- package/dist/delegation-registry-schema.js.map +0 -1
- package/dist/delegation-registry-store.d.ts +0 -145
- package/dist/delegation-registry-store.d.ts.map +0 -1
- package/dist/delegation-registry-store.js +0 -308
- package/dist/delegation-registry-store.js.map +0 -1
- package/dist/delegation-tree.d.ts +0 -52
- package/dist/delegation-tree.d.ts.map +0 -1
- package/dist/delegation-tree.js +0 -205
- package/dist/delegation-tree.js.map +0 -1
- package/dist/dependency-graph.d.ts +0 -169
- package/dist/dependency-graph.d.ts.map +0 -1
- package/dist/dependency-graph.js +0 -612
- package/dist/dependency-graph.js.map +0 -1
- package/dist/dependency-guard.d.ts +0 -41
- package/dist/dependency-guard.d.ts.map +0 -1
- package/dist/dependency-guard.js +0 -145
- package/dist/dependency-guard.js.map +0 -1
- package/dist/dependency-validator.d.ts +0 -89
- package/dist/dependency-validator.d.ts.map +0 -1
- package/dist/dependency-validator.js +0 -155
- package/dist/dependency-validator.js.map +0 -1
- package/dist/docs-path-validator.d.ts +0 -16
- package/dist/docs-path-validator.d.ts.map +0 -1
- package/dist/docs-path-validator.js +0 -98
- package/dist/docs-path-validator.js.map +0 -1
- package/dist/domain/context.schemas.d.ts +0 -170
- package/dist/domain/context.schemas.d.ts.map +0 -1
- package/dist/domain/context.schemas.js +0 -151
- package/dist/domain/context.schemas.js.map +0 -1
- package/dist/domain/index.d.ts +0 -15
- package/dist/domain/index.d.ts.map +0 -1
- package/dist/domain/index.js +0 -23
- package/dist/domain/index.js.map +0 -1
- package/dist/domain/orchestration.constants.d.ts +0 -111
- package/dist/domain/orchestration.constants.d.ts.map +0 -1
- package/dist/domain/orchestration.constants.js +0 -130
- package/dist/domain/orchestration.constants.js.map +0 -1
- package/dist/domain/orchestration.schemas.d.ts +0 -307
- package/dist/domain/orchestration.schemas.d.ts.map +0 -1
- package/dist/domain/orchestration.schemas.js +0 -214
- package/dist/domain/orchestration.schemas.js.map +0 -1
- package/dist/domain/orchestration.types.d.ts +0 -134
- package/dist/domain/orchestration.types.d.ts.map +0 -1
- package/dist/domain/orchestration.types.js +0 -5
- package/dist/domain/orchestration.types.js.map +0 -1
- package/dist/domain/recovery.schemas.d.ts +0 -164
- package/dist/domain/recovery.schemas.d.ts.map +0 -1
- package/dist/domain/recovery.schemas.js +0 -134
- package/dist/domain/recovery.schemas.js.map +0 -1
- package/dist/domain/validation.schemas.d.ts +0 -147
- package/dist/domain/validation.schemas.d.ts.map +0 -1
- package/dist/domain/validation.schemas.js +0 -117
- package/dist/domain/validation.schemas.js.map +0 -1
- package/dist/error-handler.d.ts +0 -144
- package/dist/error-handler.d.ts.map +0 -1
- package/dist/error-handler.js +0 -214
- package/dist/error-handler.js.map +0 -1
- package/dist/file-classifiers.d.ts +0 -63
- package/dist/file-classifiers.d.ts.map +0 -1
- package/dist/file-classifiers.js +0 -111
- package/dist/file-classifiers.js.map +0 -1
- package/dist/force-bypass-audit.d.ts +0 -47
- package/dist/force-bypass-audit.d.ts.map +0 -1
- package/dist/force-bypass-audit.js +0 -146
- package/dist/force-bypass-audit.js.map +0 -1
- package/dist/gates-agent-mode.d.ts +0 -107
- package/dist/gates-agent-mode.d.ts.map +0 -1
- package/dist/gates-agent-mode.js +0 -138
- package/dist/gates-agent-mode.js.map +0 -1
- package/dist/gates-config.d.ts +0 -268
- package/dist/gates-config.d.ts.map +0 -1
- package/dist/gates-config.js +0 -644
- package/dist/gates-config.js.map +0 -1
- package/dist/generate-traceability.d.ts +0 -106
- package/dist/generate-traceability.d.ts.map +0 -1
- package/dist/generate-traceability.js +0 -387
- package/dist/generate-traceability.js.map +0 -1
- package/dist/git-adapter.d.ts +0 -406
- package/dist/git-adapter.d.ts.map +0 -1
- package/dist/git-adapter.js +0 -686
- package/dist/git-adapter.js.map +0 -1
- package/dist/git-context-extractor.d.ts +0 -102
- package/dist/git-context-extractor.d.ts.map +0 -1
- package/dist/git-context-extractor.js +0 -571
- package/dist/git-context-extractor.js.map +0 -1
- package/dist/git-staged-validator.d.ts +0 -33
- package/dist/git-staged-validator.d.ts.map +0 -1
- package/dist/git-staged-validator.js +0 -52
- package/dist/git-staged-validator.js.map +0 -1
- package/dist/hardcoded-strings.d.ts +0 -67
- package/dist/hardcoded-strings.d.ts.map +0 -1
- package/dist/hardcoded-strings.js +0 -276
- package/dist/hardcoded-strings.js.map +0 -1
- package/dist/incremental-lint.d.ts +0 -71
- package/dist/incremental-lint.d.ts.map +0 -1
- package/dist/incremental-lint.js +0 -132
- package/dist/incremental-lint.js.map +0 -1
- package/dist/incremental-test.d.ts +0 -33
- package/dist/incremental-test.d.ts.map +0 -1
- package/dist/incremental-test.js +0 -64
- package/dist/incremental-test.js.map +0 -1
- package/dist/index.d.ts +0 -104
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/invariants/check-automated-tests.d.ts +0 -42
- package/dist/invariants/check-automated-tests.d.ts.map +0 -1
- package/dist/invariants/check-automated-tests.js +0 -171
- package/dist/invariants/check-automated-tests.js.map +0 -1
- package/dist/invariants-runner.d.ts +0 -108
- package/dist/invariants-runner.d.ts.map +0 -1
- package/dist/invariants-runner.js +0 -547
- package/dist/invariants-runner.js.map +0 -1
- package/dist/lane-checker.d.ts +0 -132
- package/dist/lane-checker.d.ts.map +0 -1
- package/dist/lane-checker.js +0 -743
- package/dist/lane-checker.js.map +0 -1
- package/dist/lane-inference.d.ts +0 -29
- package/dist/lane-inference.d.ts.map +0 -1
- package/dist/lane-inference.js +0 -210
- package/dist/lane-inference.js.map +0 -1
- package/dist/lane-lock.d.ts +0 -220
- package/dist/lane-lock.d.ts.map +0 -1
- package/dist/lane-lock.js +0 -499
- package/dist/lane-lock.js.map +0 -1
- package/dist/lane-suggest-prompt.d.ts +0 -97
- package/dist/lane-suggest-prompt.d.ts.map +0 -1
- package/dist/lane-suggest-prompt.js +0 -362
- package/dist/lane-suggest-prompt.js.map +0 -1
- package/dist/lane-validator.d.ts +0 -49
- package/dist/lane-validator.d.ts.map +0 -1
- package/dist/lane-validator.js +0 -117
- package/dist/lane-validator.js.map +0 -1
- package/dist/logs-lib.d.ts +0 -89
- package/dist/logs-lib.d.ts.map +0 -1
- package/dist/logs-lib.js +0 -214
- package/dist/logs-lib.js.map +0 -1
- package/dist/lumenflow-config-schema.d.ts +0 -1428
- package/dist/lumenflow-config-schema.d.ts.map +0 -1
- package/dist/lumenflow-config-schema.js +0 -1255
- package/dist/lumenflow-config-schema.js.map +0 -1
- package/dist/lumenflow-config.d.ts +0 -94
- package/dist/lumenflow-config.d.ts.map +0 -1
- package/dist/lumenflow-config.js +0 -253
- package/dist/lumenflow-config.js.map +0 -1
- package/dist/lumenflow-home.d.ts +0 -118
- package/dist/lumenflow-home.d.ts.map +0 -1
- package/dist/lumenflow-home.js +0 -214
- package/dist/lumenflow-home.js.map +0 -1
- package/dist/manual-test-validator.d.ts +0 -84
- package/dist/manual-test-validator.d.ts.map +0 -1
- package/dist/manual-test-validator.js +0 -206
- package/dist/manual-test-validator.js.map +0 -1
- package/dist/merge-lock.d.ts +0 -107
- package/dist/merge-lock.d.ts.map +0 -1
- package/dist/merge-lock.js +0 -263
- package/dist/merge-lock.js.map +0 -1
- package/dist/micro-worktree-shared.d.ts +0 -128
- package/dist/micro-worktree-shared.d.ts.map +0 -1
- package/dist/micro-worktree-shared.js +0 -352
- package/dist/micro-worktree-shared.js.map +0 -1
- package/dist/micro-worktree.d.ts +0 -165
- package/dist/micro-worktree.d.ts.map +0 -1
- package/dist/micro-worktree.js +0 -463
- package/dist/micro-worktree.js.map +0 -1
- package/dist/migration-deployer.d.ts +0 -70
- package/dist/migration-deployer.d.ts.map +0 -1
- package/dist/migration-deployer.js +0 -152
- package/dist/migration-deployer.js.map +0 -1
- package/dist/normalize-config-keys.d.ts +0 -10
- package/dist/normalize-config-keys.d.ts.map +0 -1
- package/dist/normalize-config-keys.js +0 -70
- package/dist/normalize-config-keys.js.map +0 -1
- package/dist/orchestration-advisory-loader.d.ts +0 -19
- package/dist/orchestration-advisory-loader.d.ts.map +0 -1
- package/dist/orchestration-advisory-loader.js +0 -94
- package/dist/orchestration-advisory-loader.js.map +0 -1
- package/dist/orchestration-advisory.d.ts +0 -49
- package/dist/orchestration-advisory.d.ts.map +0 -1
- package/dist/orchestration-advisory.js +0 -97
- package/dist/orchestration-advisory.js.map +0 -1
- package/dist/orchestration-di.d.ts +0 -36
- package/dist/orchestration-di.d.ts.map +0 -1
- package/dist/orchestration-di.js +0 -60
- package/dist/orchestration-di.js.map +0 -1
- package/dist/orchestration-rules.d.ts +0 -60
- package/dist/orchestration-rules.d.ts.map +0 -1
- package/dist/orchestration-rules.js +0 -212
- package/dist/orchestration-rules.js.map +0 -1
- package/dist/orphan-detector.d.ts +0 -148
- package/dist/orphan-detector.d.ts.map +0 -1
- package/dist/orphan-detector.js +0 -253
- package/dist/orphan-detector.js.map +0 -1
- package/dist/pack-authoring-template-engine.d.ts +0 -54
- package/dist/pack-authoring-template-engine.d.ts.map +0 -1
- package/dist/pack-authoring-template-engine.js +0 -510
- package/dist/pack-authoring-template-engine.js.map +0 -1
- package/dist/path-classifiers.d.ts +0 -58
- package/dist/path-classifiers.d.ts.map +0 -1
- package/dist/path-classifiers.js +0 -96
- package/dist/path-classifiers.js.map +0 -1
- package/dist/patrol-loop.d.ts +0 -171
- package/dist/patrol-loop.d.ts.map +0 -1
- package/dist/patrol-loop.js +0 -197
- package/dist/patrol-loop.js.map +0 -1
- package/dist/piped-command-detector.d.ts +0 -25
- package/dist/piped-command-detector.d.ts.map +0 -1
- package/dist/piped-command-detector.js +0 -67
- package/dist/piped-command-detector.js.map +0 -1
- package/dist/ports/context.ports.d.ts +0 -136
- package/dist/ports/context.ports.d.ts.map +0 -1
- package/dist/ports/context.ports.js +0 -4
- package/dist/ports/context.ports.js.map +0 -1
- package/dist/ports/core-tools.ports.d.ts +0 -282
- package/dist/ports/core-tools.ports.d.ts.map +0 -1
- package/dist/ports/core-tools.ports.js +0 -4
- package/dist/ports/core-tools.ports.js.map +0 -1
- package/dist/ports/dashboard-renderer.port.d.ts +0 -113
- package/dist/ports/dashboard-renderer.port.d.ts.map +0 -1
- package/dist/ports/dashboard-renderer.port.js +0 -4
- package/dist/ports/dashboard-renderer.port.js.map +0 -1
- package/dist/ports/git-validator.ports.d.ts +0 -114
- package/dist/ports/git-validator.ports.d.ts.map +0 -1
- package/dist/ports/git-validator.ports.js +0 -4
- package/dist/ports/git-validator.ports.js.map +0 -1
- package/dist/ports/index.d.ts +0 -21
- package/dist/ports/index.d.ts.map +0 -1
- package/dist/ports/index.js +0 -23
- package/dist/ports/index.js.map +0 -1
- package/dist/ports/metrics-collector.port.d.ts +0 -133
- package/dist/ports/metrics-collector.port.d.ts.map +0 -1
- package/dist/ports/metrics-collector.port.js +0 -4
- package/dist/ports/metrics-collector.port.js.map +0 -1
- package/dist/ports/recovery.ports.d.ts +0 -59
- package/dist/ports/recovery.ports.d.ts.map +0 -1
- package/dist/ports/recovery.ports.js +0 -4
- package/dist/ports/recovery.ports.js.map +0 -1
- package/dist/ports/validation.ports.d.ts +0 -75
- package/dist/ports/validation.ports.d.ts.map +0 -1
- package/dist/ports/validation.ports.js +0 -4
- package/dist/ports/validation.ports.js.map +0 -1
- package/dist/ports/wu-helpers.ports.d.ts +0 -227
- package/dist/ports/wu-helpers.ports.d.ts.map +0 -1
- package/dist/ports/wu-helpers.ports.js +0 -4
- package/dist/ports/wu-helpers.ports.js.map +0 -1
- package/dist/process-detector.d.ts +0 -69
- package/dist/process-detector.d.ts.map +0 -1
- package/dist/process-detector.js +0 -175
- package/dist/process-detector.js.map +0 -1
- package/dist/prompt-linter.d.ts +0 -66
- package/dist/prompt-linter.d.ts.map +0 -1
- package/dist/prompt-linter.js +0 -323
- package/dist/prompt-linter.js.map +0 -1
- package/dist/prompt-monitor.d.ts +0 -6
- package/dist/prompt-monitor.d.ts.map +0 -1
- package/dist/prompt-monitor.js +0 -218
- package/dist/prompt-monitor.js.map +0 -1
- package/dist/rebase-artifact-cleanup.d.ts +0 -156
- package/dist/rebase-artifact-cleanup.d.ts.map +0 -1
- package/dist/rebase-artifact-cleanup.js +0 -475
- package/dist/rebase-artifact-cleanup.js.map +0 -1
- package/dist/recovery/index.d.ts +0 -12
- package/dist/recovery/index.d.ts.map +0 -1
- package/dist/recovery/index.js +0 -14
- package/dist/recovery/index.js.map +0 -1
- package/dist/recovery/recovery-analyzer.d.ts +0 -49
- package/dist/recovery/recovery-analyzer.d.ts.map +0 -1
- package/dist/recovery/recovery-analyzer.js +0 -149
- package/dist/recovery/recovery-analyzer.js.map +0 -1
- package/dist/resolve-policy.d.ts +0 -257
- package/dist/resolve-policy.d.ts.map +0 -1
- package/dist/resolve-policy.js +0 -269
- package/dist/resolve-policy.js.map +0 -1
- package/dist/retry-strategy.d.ts +0 -191
- package/dist/retry-strategy.d.ts.map +0 -1
- package/dist/retry-strategy.js +0 -286
- package/dist/retry-strategy.js.map +0 -1
- package/dist/risk-detector.d.ts +0 -109
- package/dist/risk-detector.d.ts.map +0 -1
- package/dist/risk-detector.js +0 -253
- package/dist/risk-detector.js.map +0 -1
- package/dist/rollback-utils.d.ts +0 -129
- package/dist/rollback-utils.d.ts.map +0 -1
- package/dist/rollback-utils.js +0 -217
- package/dist/rollback-utils.js.map +0 -1
- package/dist/sandbox-allowlist.d.ts +0 -16
- package/dist/sandbox-allowlist.d.ts.map +0 -1
- package/dist/sandbox-allowlist.js +0 -77
- package/dist/sandbox-allowlist.js.map +0 -1
- package/dist/sandbox-backend-linux.d.ts +0 -6
- package/dist/sandbox-backend-linux.d.ts.map +0 -1
- package/dist/sandbox-backend-linux.js +0 -67
- package/dist/sandbox-backend-linux.js.map +0 -1
- package/dist/sandbox-backend-macos.d.ts +0 -6
- package/dist/sandbox-backend-macos.d.ts.map +0 -1
- package/dist/sandbox-backend-macos.js +0 -66
- package/dist/sandbox-backend-macos.js.map +0 -1
- package/dist/sandbox-backend-windows.d.ts +0 -6
- package/dist/sandbox-backend-windows.d.ts.map +0 -1
- package/dist/sandbox-backend-windows.js +0 -30
- package/dist/sandbox-backend-windows.js.map +0 -1
- package/dist/sandbox-profile.d.ts +0 -53
- package/dist/sandbox-profile.d.ts.map +0 -1
- package/dist/sandbox-profile.js +0 -64
- package/dist/sandbox-profile.js.map +0 -1
- package/dist/schemas/arg-validators.d.ts +0 -58
- package/dist/schemas/arg-validators.d.ts.map +0 -1
- package/dist/schemas/arg-validators.js +0 -193
- package/dist/schemas/arg-validators.js.map +0 -1
- package/dist/schemas/command-schemas.d.ts +0 -171
- package/dist/schemas/command-schemas.d.ts.map +0 -1
- package/dist/schemas/command-schemas.js +0 -145
- package/dist/schemas/command-schemas.js.map +0 -1
- package/dist/schemas/flow-arg-validators.d.ts +0 -32
- package/dist/schemas/flow-arg-validators.d.ts.map +0 -1
- package/dist/schemas/flow-arg-validators.js +0 -57
- package/dist/schemas/flow-arg-validators.js.map +0 -1
- package/dist/schemas/flow-schemas.d.ts +0 -152
- package/dist/schemas/flow-schemas.d.ts.map +0 -1
- package/dist/schemas/flow-schemas.js +0 -105
- package/dist/schemas/flow-schemas.js.map +0 -1
- package/dist/schemas/index.d.ts +0 -33
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/index.js +0 -96
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/initiative-arg-validators.d.ts +0 -64
- package/dist/schemas/initiative-arg-validators.d.ts.map +0 -1
- package/dist/schemas/initiative-arg-validators.js +0 -65
- package/dist/schemas/initiative-arg-validators.js.map +0 -1
- package/dist/schemas/initiative-schemas.d.ts +0 -256
- package/dist/schemas/initiative-schemas.d.ts.map +0 -1
- package/dist/schemas/initiative-schemas.js +0 -186
- package/dist/schemas/initiative-schemas.js.map +0 -1
- package/dist/schemas/memory-arg-validators.d.ts +0 -91
- package/dist/schemas/memory-arg-validators.d.ts.map +0 -1
- package/dist/schemas/memory-arg-validators.js +0 -75
- package/dist/schemas/memory-arg-validators.js.map +0 -1
- package/dist/schemas/memory-schemas.d.ts +0 -287
- package/dist/schemas/memory-schemas.d.ts.map +0 -1
- package/dist/schemas/memory-schemas.js +0 -242
- package/dist/schemas/memory-schemas.js.map +0 -1
- package/dist/schemas/schema-utils.d.ts +0 -87
- package/dist/schemas/schema-utils.d.ts.map +0 -1
- package/dist/schemas/schema-utils.js +0 -320
- package/dist/schemas/schema-utils.js.map +0 -1
- package/dist/schemas/setup-arg-validators.d.ts +0 -91
- package/dist/schemas/setup-arg-validators.d.ts.map +0 -1
- package/dist/schemas/setup-arg-validators.js +0 -98
- package/dist/schemas/setup-arg-validators.js.map +0 -1
- package/dist/schemas/setup-schemas.d.ts +0 -335
- package/dist/schemas/setup-schemas.d.ts.map +0 -1
- package/dist/schemas/setup-schemas.js +0 -260
- package/dist/schemas/setup-schemas.js.map +0 -1
- package/dist/schemas/validation-arg-validators.d.ts +0 -18
- package/dist/schemas/validation-arg-validators.d.ts.map +0 -1
- package/dist/schemas/validation-arg-validators.js +0 -59
- package/dist/schemas/validation-arg-validators.js.map +0 -1
- package/dist/schemas/validation-schemas.d.ts +0 -80
- package/dist/schemas/validation-schemas.d.ts.map +0 -1
- package/dist/schemas/validation-schemas.js +0 -88
- package/dist/schemas/validation-schemas.js.map +0 -1
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts +0 -118
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts.map +0 -1
- package/dist/schemas/wu-lifecycle-arg-validators.js +0 -82
- package/dist/schemas/wu-lifecycle-arg-validators.js.map +0 -1
- package/dist/schemas/wu-lifecycle-schemas.d.ts +0 -362
- package/dist/schemas/wu-lifecycle-schemas.d.ts.map +0 -1
- package/dist/schemas/wu-lifecycle-schemas.js +0 -284
- package/dist/schemas/wu-lifecycle-schemas.js.map +0 -1
- package/dist/section-headings.d.ts +0 -35
- package/dist/section-headings.d.ts.map +0 -1
- package/dist/section-headings.js +0 -54
- package/dist/section-headings.js.map +0 -1
- package/dist/spawn-escalation.d.ts +0 -91
- package/dist/spawn-escalation.d.ts.map +0 -1
- package/dist/spawn-escalation.js +0 -258
- package/dist/spawn-escalation.js.map +0 -1
- package/dist/spawn-monitor.d.ts +0 -230
- package/dist/spawn-monitor.d.ts.map +0 -1
- package/dist/spawn-monitor.js +0 -675
- package/dist/spawn-monitor.js.map +0 -1
- package/dist/spawn-prompt-schema.d.ts +0 -107
- package/dist/spawn-prompt-schema.d.ts.map +0 -1
- package/dist/spawn-prompt-schema.js +0 -163
- package/dist/spawn-prompt-schema.js.map +0 -1
- package/dist/spawn-recovery.d.ts +0 -83
- package/dist/spawn-recovery.d.ts.map +0 -1
- package/dist/spawn-recovery.js +0 -299
- package/dist/spawn-recovery.js.map +0 -1
- package/dist/spawn-registry-schema.d.ts +0 -122
- package/dist/spawn-registry-schema.d.ts.map +0 -1
- package/dist/spawn-registry-schema.js +0 -129
- package/dist/spawn-registry-schema.js.map +0 -1
- package/dist/spawn-registry-store.d.ts +0 -161
- package/dist/spawn-registry-store.d.ts.map +0 -1
- package/dist/spawn-registry-store.js +0 -301
- package/dist/spawn-registry-store.js.map +0 -1
- package/dist/spawn-strategy.d.ts +0 -60
- package/dist/spawn-strategy.d.ts.map +0 -1
- package/dist/spawn-strategy.js +0 -112
- package/dist/spawn-strategy.js.map +0 -1
- package/dist/spawn-tree.d.ts +0 -125
- package/dist/spawn-tree.d.ts.map +0 -1
- package/dist/spawn-tree.js +0 -286
- package/dist/spawn-tree.js.map +0 -1
- package/dist/stamp-status-validator.d.ts +0 -77
- package/dist/stamp-status-validator.d.ts.map +0 -1
- package/dist/stamp-status-validator.js +0 -138
- package/dist/stamp-status-validator.js.map +0 -1
- package/dist/stamp-tracking.d.ts +0 -12
- package/dist/stamp-tracking.d.ts.map +0 -1
- package/dist/stamp-tracking.js +0 -43
- package/dist/stamp-tracking.js.map +0 -1
- package/dist/stamp-utils.d.ts +0 -94
- package/dist/stamp-utils.d.ts.map +0 -1
- package/dist/stamp-utils.js +0 -245
- package/dist/stamp-utils.js.map +0 -1
- package/dist/state-cleanup-core.d.ts +0 -206
- package/dist/state-cleanup-core.d.ts.map +0 -1
- package/dist/state-cleanup-core.js +0 -225
- package/dist/state-cleanup-core.js.map +0 -1
- package/dist/state-doctor-core.d.ts +0 -177
- package/dist/state-doctor-core.d.ts.map +0 -1
- package/dist/state-doctor-core.js +0 -395
- package/dist/state-doctor-core.js.map +0 -1
- package/dist/state-machine.d.ts +0 -10
- package/dist/state-machine.d.ts.map +0 -1
- package/dist/state-machine.js +0 -89
- package/dist/state-machine.js.map +0 -1
- package/dist/stream-error-handler.d.ts +0 -68
- package/dist/stream-error-handler.d.ts.map +0 -1
- package/dist/stream-error-handler.js +0 -77
- package/dist/stream-error-handler.js.map +0 -1
- package/dist/system-map-validator.d.ts +0 -111
- package/dist/system-map-validator.d.ts.map +0 -1
- package/dist/system-map-validator.js +0 -383
- package/dist/system-map-validator.js.map +0 -1
- package/dist/telemetry.d.ts +0 -81
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/telemetry.js +0 -219
- package/dist/telemetry.js.map +0 -1
- package/dist/template-loader.d.ts +0 -151
- package/dist/template-loader.d.ts.map +0 -1
- package/dist/template-loader.js +0 -400
- package/dist/template-loader.js.map +0 -1
- package/dist/test-baseline.d.ts +0 -177
- package/dist/test-baseline.d.ts.map +0 -1
- package/dist/test-baseline.js +0 -286
- package/dist/test-baseline.js.map +0 -1
- package/dist/token-counter.d.ts +0 -50
- package/dist/token-counter.d.ts.map +0 -1
- package/dist/token-counter.js +0 -144
- package/dist/token-counter.js.map +0 -1
- package/dist/usecases/analyze-recovery.usecase.d.ts +0 -43
- package/dist/usecases/analyze-recovery.usecase.d.ts.map +0 -1
- package/dist/usecases/analyze-recovery.usecase.js +0 -34
- package/dist/usecases/analyze-recovery.usecase.js.map +0 -1
- package/dist/usecases/compute-context.usecase.d.ts +0 -63
- package/dist/usecases/compute-context.usecase.d.ts.map +0 -1
- package/dist/usecases/compute-context.usecase.js +0 -91
- package/dist/usecases/compute-context.usecase.js.map +0 -1
- package/dist/usecases/get-dashboard-data.usecase.d.ts +0 -53
- package/dist/usecases/get-dashboard-data.usecase.d.ts.map +0 -1
- package/dist/usecases/get-dashboard-data.usecase.js +0 -54
- package/dist/usecases/get-dashboard-data.usecase.js.map +0 -1
- package/dist/usecases/get-suggestions.usecase.d.ts +0 -101
- package/dist/usecases/get-suggestions.usecase.d.ts.map +0 -1
- package/dist/usecases/get-suggestions.usecase.js +0 -148
- package/dist/usecases/get-suggestions.usecase.js.map +0 -1
- package/dist/usecases/index.d.ts +0 -15
- package/dist/usecases/index.d.ts.map +0 -1
- package/dist/usecases/index.js +0 -21
- package/dist/usecases/index.js.map +0 -1
- package/dist/usecases/validate-command.usecase.d.ts +0 -56
- package/dist/usecases/validate-command.usecase.d.ts.map +0 -1
- package/dist/usecases/validate-command.usecase.js +0 -143
- package/dist/usecases/validate-command.usecase.js.map +0 -1
- package/dist/user-normalizer.d.ts +0 -36
- package/dist/user-normalizer.d.ts.map +0 -1
- package/dist/user-normalizer.js +0 -149
- package/dist/user-normalizer.js.map +0 -1
- package/dist/validation/command-registry.d.ts +0 -26
- package/dist/validation/command-registry.d.ts.map +0 -1
- package/dist/validation/command-registry.js +0 -269
- package/dist/validation/command-registry.js.map +0 -1
- package/dist/validation/index.d.ts +0 -16
- package/dist/validation/index.d.ts.map +0 -1
- package/dist/validation/index.js +0 -18
- package/dist/validation/index.js.map +0 -1
- package/dist/validation/types.d.ts +0 -140
- package/dist/validation/types.d.ts.map +0 -1
- package/dist/validation/types.js +0 -4
- package/dist/validation/types.js.map +0 -1
- package/dist/validation/validate-command.d.ts +0 -16
- package/dist/validation/validate-command.d.ts.map +0 -1
- package/dist/validation/validate-command.js +0 -163
- package/dist/validation/validate-command.js.map +0 -1
- package/dist/validators/backlog-sync.d.ts +0 -11
- package/dist/validators/backlog-sync.d.ts.map +0 -1
- package/dist/validators/backlog-sync.js +0 -65
- package/dist/validators/backlog-sync.js.map +0 -1
- package/dist/validators/phi-constants.d.ts +0 -98
- package/dist/validators/phi-constants.d.ts.map +0 -1
- package/dist/validators/phi-constants.js +0 -153
- package/dist/validators/phi-constants.js.map +0 -1
- package/dist/validators/phi-scanner.d.ts +0 -59
- package/dist/validators/phi-scanner.d.ts.map +0 -1
- package/dist/validators/phi-scanner.js +0 -222
- package/dist/validators/phi-scanner.js.map +0 -1
- package/dist/validators/supabase-docs-linter.d.ts +0 -15
- package/dist/validators/supabase-docs-linter.d.ts.map +0 -1
- package/dist/validators/supabase-docs-linter.js +0 -45
- package/dist/validators/supabase-docs-linter.js.map +0 -1
- package/dist/validators/wu-tasks.d.ts +0 -21
- package/dist/validators/wu-tasks.d.ts.map +0 -1
- package/dist/validators/wu-tasks.js +0 -93
- package/dist/validators/wu-tasks.js.map +0 -1
- package/dist/work-classifier.d.ts +0 -95
- package/dist/work-classifier.d.ts.map +0 -1
- package/dist/work-classifier.js +0 -408
- package/dist/work-classifier.js.map +0 -1
- package/dist/worktree-ownership.d.ts +0 -51
- package/dist/worktree-ownership.d.ts.map +0 -1
- package/dist/worktree-ownership.js +0 -77
- package/dist/worktree-ownership.js.map +0 -1
- package/dist/worktree-scanner.d.ts +0 -118
- package/dist/worktree-scanner.d.ts.map +0 -1
- package/dist/worktree-scanner.js +0 -171
- package/dist/worktree-scanner.js.map +0 -1
- package/dist/worktree-symlink.d.ts +0 -86
- package/dist/worktree-symlink.d.ts.map +0 -1
- package/dist/worktree-symlink.js +0 -349
- package/dist/worktree-symlink.js.map +0 -1
- package/dist/wu-backlog-updater.d.ts +0 -10
- package/dist/wu-backlog-updater.d.ts.map +0 -1
- package/dist/wu-backlog-updater.js +0 -40
- package/dist/wu-backlog-updater.js.map +0 -1
- package/dist/wu-checkpoint.d.ts +0 -110
- package/dist/wu-checkpoint.d.ts.map +0 -1
- package/dist/wu-checkpoint.js +0 -236
- package/dist/wu-checkpoint.js.map +0 -1
- package/dist/wu-claim-helpers.d.ts +0 -21
- package/dist/wu-claim-helpers.d.ts.map +0 -1
- package/dist/wu-claim-helpers.js +0 -66
- package/dist/wu-claim-helpers.js.map +0 -1
- package/dist/wu-claim-resume.d.ts +0 -106
- package/dist/wu-claim-resume.d.ts.map +0 -1
- package/dist/wu-claim-resume.js +0 -279
- package/dist/wu-claim-resume.js.map +0 -1
- package/dist/wu-cli-constants.d.ts +0 -425
- package/dist/wu-cli-constants.d.ts.map +0 -1
- package/dist/wu-cli-constants.js +0 -430
- package/dist/wu-cli-constants.js.map +0 -1
- package/dist/wu-consistency-checker.d.ts +0 -189
- package/dist/wu-consistency-checker.d.ts.map +0 -1
- package/dist/wu-consistency-checker.js +0 -1026
- package/dist/wu-consistency-checker.js.map +0 -1
- package/dist/wu-constants.d.ts +0 -29
- package/dist/wu-constants.d.ts.map +0 -1
- package/dist/wu-constants.js +0 -37
- package/dist/wu-constants.js.map +0 -1
- package/dist/wu-context-constants.d.ts +0 -270
- package/dist/wu-context-constants.d.ts.map +0 -1
- package/dist/wu-context-constants.js +0 -267
- package/dist/wu-context-constants.js.map +0 -1
- package/dist/wu-create-defaults.d.ts +0 -11
- package/dist/wu-create-defaults.d.ts.map +0 -1
- package/dist/wu-create-defaults.js +0 -13
- package/dist/wu-create-defaults.js.map +0 -1
- package/dist/wu-create-validators.d.ts +0 -89
- package/dist/wu-create-validators.d.ts.map +0 -1
- package/dist/wu-create-validators.js +0 -215
- package/dist/wu-create-validators.js.map +0 -1
- package/dist/wu-domain-constants.d.ts +0 -295
- package/dist/wu-domain-constants.d.ts.map +0 -1
- package/dist/wu-domain-constants.js +0 -399
- package/dist/wu-domain-constants.js.map +0 -1
- package/dist/wu-done-branch-only.d.ts +0 -120
- package/dist/wu-done-branch-only.d.ts.map +0 -1
- package/dist/wu-done-branch-only.js +0 -412
- package/dist/wu-done-branch-only.js.map +0 -1
- package/dist/wu-done-branch-utils.d.ts +0 -8
- package/dist/wu-done-branch-utils.d.ts.map +0 -1
- package/dist/wu-done-branch-utils.js +0 -34
- package/dist/wu-done-branch-utils.js.map +0 -1
- package/dist/wu-done-cleanup.d.ts +0 -6
- package/dist/wu-done-cleanup.d.ts.map +0 -1
- package/dist/wu-done-cleanup.js +0 -161
- package/dist/wu-done-cleanup.js.map +0 -1
- package/dist/wu-done-concurrent-merge.d.ts +0 -103
- package/dist/wu-done-concurrent-merge.d.ts.map +0 -1
- package/dist/wu-done-concurrent-merge.js +0 -375
- package/dist/wu-done-concurrent-merge.js.map +0 -1
- package/dist/wu-done-docs-generate.d.ts +0 -72
- package/dist/wu-done-docs-generate.d.ts.map +0 -1
- package/dist/wu-done-docs-generate.js +0 -129
- package/dist/wu-done-docs-generate.js.map +0 -1
- package/dist/wu-done-docs-only.d.ts +0 -16
- package/dist/wu-done-docs-only.d.ts.map +0 -1
- package/dist/wu-done-docs-only.js +0 -68
- package/dist/wu-done-docs-only.js.map +0 -1
- package/dist/wu-done-errors.d.ts +0 -13
- package/dist/wu-done-errors.d.ts.map +0 -1
- package/dist/wu-done-errors.js +0 -27
- package/dist/wu-done-errors.js.map +0 -1
- package/dist/wu-done-initiative-sync.d.ts +0 -13
- package/dist/wu-done-initiative-sync.d.ts.map +0 -1
- package/dist/wu-done-initiative-sync.js +0 -235
- package/dist/wu-done-initiative-sync.js.map +0 -1
- package/dist/wu-done-inputs.d.ts +0 -10
- package/dist/wu-done-inputs.d.ts.map +0 -1
- package/dist/wu-done-inputs.js +0 -55
- package/dist/wu-done-inputs.js.map +0 -1
- package/dist/wu-done-machine.d.ts +0 -175
- package/dist/wu-done-machine.d.ts.map +0 -1
- package/dist/wu-done-machine.js +0 -227
- package/dist/wu-done-machine.js.map +0 -1
- package/dist/wu-done-merged-worktree.d.ts +0 -65
- package/dist/wu-done-merged-worktree.d.ts.map +0 -1
- package/dist/wu-done-merged-worktree.js +0 -197
- package/dist/wu-done-merged-worktree.js.map +0 -1
- package/dist/wu-done-messages.d.ts +0 -120
- package/dist/wu-done-messages.d.ts.map +0 -1
- package/dist/wu-done-messages.js +0 -191
- package/dist/wu-done-messages.js.map +0 -1
- package/dist/wu-done-metadata.d.ts +0 -123
- package/dist/wu-done-metadata.d.ts.map +0 -1
- package/dist/wu-done-metadata.js +0 -240
- package/dist/wu-done-metadata.js.map +0 -1
- package/dist/wu-done-paths.d.ts +0 -87
- package/dist/wu-done-paths.d.ts.map +0 -1
- package/dist/wu-done-paths.js +0 -263
- package/dist/wu-done-paths.js.map +0 -1
- package/dist/wu-done-pr.d.ts +0 -76
- package/dist/wu-done-pr.d.ts.map +0 -1
- package/dist/wu-done-pr.js +0 -189
- package/dist/wu-done-pr.js.map +0 -1
- package/dist/wu-done-preflight.d.ts +0 -65
- package/dist/wu-done-preflight.d.ts.map +0 -1
- package/dist/wu-done-preflight.js +0 -205
- package/dist/wu-done-preflight.js.map +0 -1
- package/dist/wu-done-retry-helpers.d.ts +0 -75
- package/dist/wu-done-retry-helpers.d.ts.map +0 -1
- package/dist/wu-done-retry-helpers.js +0 -175
- package/dist/wu-done-retry-helpers.js.map +0 -1
- package/dist/wu-done-ui.d.ts +0 -29
- package/dist/wu-done-ui.d.ts.map +0 -1
- package/dist/wu-done-ui.js +0 -74
- package/dist/wu-done-ui.js.map +0 -1
- package/dist/wu-done-validation.d.ts +0 -128
- package/dist/wu-done-validation.d.ts.map +0 -1
- package/dist/wu-done-validation.js +0 -530
- package/dist/wu-done-validation.js.map +0 -1
- package/dist/wu-done-validators.d.ts +0 -16
- package/dist/wu-done-validators.d.ts.map +0 -1
- package/dist/wu-done-validators.js +0 -16
- package/dist/wu-done-validators.js.map +0 -1
- package/dist/wu-done-worktree-services.d.ts +0 -174
- package/dist/wu-done-worktree-services.d.ts.map +0 -1
- package/dist/wu-done-worktree-services.js +0 -274
- package/dist/wu-done-worktree-services.js.map +0 -1
- package/dist/wu-done-worktree.d.ts +0 -229
- package/dist/wu-done-worktree.d.ts.map +0 -1
- package/dist/wu-done-worktree.js +0 -1290
- package/dist/wu-done-worktree.js.map +0 -1
- package/dist/wu-events-cleanup.d.ts +0 -131
- package/dist/wu-events-cleanup.d.ts.map +0 -1
- package/dist/wu-events-cleanup.js +0 -404
- package/dist/wu-events-cleanup.js.map +0 -1
- package/dist/wu-git-constants.d.ts +0 -176
- package/dist/wu-git-constants.d.ts.map +0 -1
- package/dist/wu-git-constants.js +0 -178
- package/dist/wu-git-constants.js.map +0 -1
- package/dist/wu-helpers.d.ts +0 -133
- package/dist/wu-helpers.d.ts.map +0 -1
- package/dist/wu-helpers.js +0 -268
- package/dist/wu-helpers.js.map +0 -1
- package/dist/wu-id-generator.d.ts +0 -51
- package/dist/wu-id-generator.d.ts.map +0 -1
- package/dist/wu-id-generator.js +0 -110
- package/dist/wu-id-generator.js.map +0 -1
- package/dist/wu-lint.d.ts +0 -191
- package/dist/wu-lint.d.ts.map +0 -1
- package/dist/wu-lint.js +0 -338
- package/dist/wu-lint.js.map +0 -1
- package/dist/wu-list.d.ts +0 -76
- package/dist/wu-list.d.ts.map +0 -1
- package/dist/wu-list.js +0 -181
- package/dist/wu-list.js.map +0 -1
- package/dist/wu-paths-constants.d.ts +0 -264
- package/dist/wu-paths-constants.d.ts.map +0 -1
- package/dist/wu-paths-constants.js +0 -272
- package/dist/wu-paths-constants.js.map +0 -1
- package/dist/wu-paths.d.ts +0 -211
- package/dist/wu-paths.d.ts.map +0 -1
- package/dist/wu-paths.js +0 -223
- package/dist/wu-paths.js.map +0 -1
- package/dist/wu-preflight-validators.d.ts +0 -64
- package/dist/wu-preflight-validators.d.ts.map +0 -1
- package/dist/wu-preflight-validators.js +0 -277
- package/dist/wu-preflight-validators.js.map +0 -1
- package/dist/wu-recovery.d.ts +0 -220
- package/dist/wu-recovery.d.ts.map +0 -1
- package/dist/wu-recovery.js +0 -470
- package/dist/wu-recovery.js.map +0 -1
- package/dist/wu-repair-core.d.ts +0 -150
- package/dist/wu-repair-core.d.ts.map +0 -1
- package/dist/wu-repair-core.js +0 -718
- package/dist/wu-repair-core.js.map +0 -1
- package/dist/wu-rules-core.d.ts +0 -95
- package/dist/wu-rules-core.d.ts.map +0 -1
- package/dist/wu-rules-core.js +0 -401
- package/dist/wu-rules-core.js.map +0 -1
- package/dist/wu-rules-engine.d.ts +0 -29
- package/dist/wu-rules-engine.d.ts.map +0 -1
- package/dist/wu-rules-engine.js +0 -61
- package/dist/wu-rules-engine.js.map +0 -1
- package/dist/wu-rules-resolvers.d.ts +0 -19
- package/dist/wu-rules-resolvers.d.ts.map +0 -1
- package/dist/wu-rules-resolvers.js +0 -210
- package/dist/wu-rules-resolvers.js.map +0 -1
- package/dist/wu-schema-normalization.d.ts +0 -18
- package/dist/wu-schema-normalization.d.ts.map +0 -1
- package/dist/wu-schema-normalization.js +0 -87
- package/dist/wu-schema-normalization.js.map +0 -1
- package/dist/wu-schema.d.ts +0 -772
- package/dist/wu-schema.d.ts.map +0 -1
- package/dist/wu-schema.js +0 -897
- package/dist/wu-schema.js.map +0 -1
- package/dist/wu-spawn-context.d.ts +0 -66
- package/dist/wu-spawn-context.d.ts.map +0 -1
- package/dist/wu-spawn-context.js +0 -185
- package/dist/wu-spawn-context.js.map +0 -1
- package/dist/wu-spawn-helpers.d.ts +0 -110
- package/dist/wu-spawn-helpers.d.ts.map +0 -1
- package/dist/wu-spawn-helpers.js +0 -276
- package/dist/wu-spawn-helpers.js.map +0 -1
- package/dist/wu-spawn-skills.d.ts +0 -39
- package/dist/wu-spawn-skills.d.ts.map +0 -1
- package/dist/wu-spawn-skills.js +0 -214
- package/dist/wu-spawn-skills.js.map +0 -1
- package/dist/wu-spawn.d.ts +0 -394
- package/dist/wu-spawn.d.ts.map +0 -1
- package/dist/wu-spawn.js +0 -1977
- package/dist/wu-spawn.js.map +0 -1
- package/dist/wu-state-schema.d.ts +0 -237
- package/dist/wu-state-schema.d.ts.map +0 -1
- package/dist/wu-state-schema.js +0 -172
- package/dist/wu-state-schema.js.map +0 -1
- package/dist/wu-state-store.d.ts +0 -275
- package/dist/wu-state-store.d.ts.map +0 -1
- package/dist/wu-state-store.js +0 -1057
- package/dist/wu-state-store.js.map +0 -1
- package/dist/wu-status-transition.d.ts +0 -58
- package/dist/wu-status-transition.d.ts.map +0 -1
- package/dist/wu-status-transition.js +0 -370
- package/dist/wu-status-transition.js.map +0 -1
- package/dist/wu-status-updater.d.ts +0 -18
- package/dist/wu-status-updater.d.ts.map +0 -1
- package/dist/wu-status-updater.js +0 -123
- package/dist/wu-status-updater.js.map +0 -1
- package/dist/wu-statuses.d.ts +0 -154
- package/dist/wu-statuses.d.ts.map +0 -1
- package/dist/wu-statuses.js +0 -176
- package/dist/wu-statuses.js.map +0 -1
- package/dist/wu-transaction-collectors.d.ts +0 -116
- package/dist/wu-transaction-collectors.d.ts.map +0 -1
- package/dist/wu-transaction-collectors.js +0 -273
- package/dist/wu-transaction-collectors.js.map +0 -1
- package/dist/wu-transaction.d.ts +0 -172
- package/dist/wu-transaction.d.ts.map +0 -1
- package/dist/wu-transaction.js +0 -288
- package/dist/wu-transaction.js.map +0 -1
- package/dist/wu-type-helpers.d.ts +0 -26
- package/dist/wu-type-helpers.d.ts.map +0 -1
- package/dist/wu-type-helpers.js +0 -45
- package/dist/wu-type-helpers.js.map +0 -1
- package/dist/wu-ui-constants.d.ts +0 -235
- package/dist/wu-ui-constants.d.ts.map +0 -1
- package/dist/wu-ui-constants.js +0 -237
- package/dist/wu-ui-constants.js.map +0 -1
- package/dist/wu-validation-constants.d.ts +0 -61
- package/dist/wu-validation-constants.d.ts.map +0 -1
- package/dist/wu-validation-constants.js +0 -69
- package/dist/wu-validation-constants.js.map +0 -1
- package/dist/wu-validation.d.ts +0 -121
- package/dist/wu-validation.d.ts.map +0 -1
- package/dist/wu-validation.js +0 -266
- package/dist/wu-validation.js.map +0 -1
- package/dist/wu-validator.d.ts +0 -128
- package/dist/wu-validator.d.ts.map +0 -1
- package/dist/wu-validator.js +0 -445
- package/dist/wu-validator.js.map +0 -1
- package/dist/wu-yaml-fixer.d.ts +0 -74
- package/dist/wu-yaml-fixer.d.ts.map +0 -1
- package/dist/wu-yaml-fixer.js +0 -273
- package/dist/wu-yaml-fixer.js.map +0 -1
- package/dist/wu-yaml.d.ts +0 -110
- package/dist/wu-yaml.d.ts.map +0 -1
- package/dist/wu-yaml.js +0 -300
- package/dist/wu-yaml.js.map +0 -1
package/dist/cleanup-lock.js
DELETED
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
-
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
-
/**
|
|
4
|
-
* WU-2241: Cleanup Lock Module
|
|
5
|
-
* WU-1174: Lock files moved to temp directory to avoid polluting main checkout
|
|
6
|
-
*
|
|
7
|
-
* Provides atomic locking mechanism for wu:done cleanup operations
|
|
8
|
-
* to prevent race conditions during concurrent worktree/branch cleanup.
|
|
9
|
-
*
|
|
10
|
-
* Features:
|
|
11
|
-
* - File-based lock with PID, timestamp, and worktree path
|
|
12
|
-
* - Stale lock detection and auto-cleanup (5-minute threshold)
|
|
13
|
-
* - Zombie lock detection (PID not running)
|
|
14
|
-
* - Idempotent re-acquisition for same WU
|
|
15
|
-
* - Guaranteed cleanup via withCleanupLock wrapper
|
|
16
|
-
* - Lock files stored in temp directory (not main checkout)
|
|
17
|
-
*
|
|
18
|
-
* Lock ordering (WU-2241):
|
|
19
|
-
* Lane lock (phase-scoped) -> Merge lock -> Cleanup lock -> State store lock
|
|
20
|
-
*
|
|
21
|
-
* Pattern: Follows lane-lock.ts and merge-lock.ts internal patterns.
|
|
22
|
-
*
|
|
23
|
-
* @module cleanup-lock
|
|
24
|
-
*/
|
|
25
|
-
import { existsSync, readFileSync, writeFileSync, unlinkSync, mkdirSync, openSync, closeSync, } from 'node:fs';
|
|
26
|
-
import path from 'node:path';
|
|
27
|
-
import crypto from 'node:crypto';
|
|
28
|
-
import { LOG_PREFIX, EMOJI, LUMENFLOW_PATHS, LOCK_DIR_NAME } from './wu-constants.js';
|
|
29
|
-
import { createError, ErrorCodes } from './error-handler.js';
|
|
30
|
-
/**
|
|
31
|
-
* Default timeout for waiting to acquire lock (ms)
|
|
32
|
-
* After this time, acquisition fails if lock is held
|
|
33
|
-
*/
|
|
34
|
-
export const CLEANUP_LOCK_TIMEOUT_MS = 30000; // 30 seconds
|
|
35
|
-
/**
|
|
36
|
-
* Time after which a cleanup lock is considered stale (ms)
|
|
37
|
-
* Should be greater than expected cleanup operation duration
|
|
38
|
-
* Cleanup is slower than merge, so longer timeout
|
|
39
|
-
*/
|
|
40
|
-
export const CLEANUP_LOCK_STALE_MS = 5 * 60 * 1000; // 5 minutes
|
|
41
|
-
/** Lock file name within .lumenflow directory */
|
|
42
|
-
const LOCK_FILE_NAME = 'cleanup.lock';
|
|
43
|
-
/**
|
|
44
|
-
* Polling interval for lock acquisition retries
|
|
45
|
-
*/
|
|
46
|
-
const LOCK_POLL_INTERVAL_MS = 500;
|
|
47
|
-
/**
|
|
48
|
-
* Get the path to the cleanup lock file
|
|
49
|
-
*
|
|
50
|
-
* WU-1174: Lock files are stored in a temp directory to avoid polluting
|
|
51
|
-
* the main checkout. The baseDir option is only for testing isolation.
|
|
52
|
-
*
|
|
53
|
-
* @param {BaseDirOptions} [options]
|
|
54
|
-
* @returns {string} Path to lock file
|
|
55
|
-
*/
|
|
56
|
-
function getLockPath(options = {}) {
|
|
57
|
-
// WU-1174: Use temp directory for locks (not main checkout's .lumenflow/)
|
|
58
|
-
// baseDir is only used for test isolation
|
|
59
|
-
const lockDir = options.baseDir
|
|
60
|
-
? path.join(options.baseDir, LOCK_DIR_NAME)
|
|
61
|
-
: LUMENFLOW_PATHS.LOCK_DIR;
|
|
62
|
-
return path.join(lockDir, LOCK_FILE_NAME);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Read lock file contents
|
|
66
|
-
*
|
|
67
|
-
* @param {BaseDirOptions} [options]
|
|
68
|
-
* @returns {CleanupLockInfo|null} Lock info or null if no lock
|
|
69
|
-
*/
|
|
70
|
-
function readLockFile(options = {}) {
|
|
71
|
-
const lockPath = getLockPath(options);
|
|
72
|
-
if (!existsSync(lockPath)) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
try {
|
|
76
|
-
const content = readFileSync(lockPath, 'utf8');
|
|
77
|
-
return JSON.parse(content);
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
// Corrupted lock file - treat as no lock
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Delete lock file
|
|
86
|
-
*
|
|
87
|
-
* @param {BaseDirOptions} [options]
|
|
88
|
-
*/
|
|
89
|
-
function deleteLockFile(options = {}) {
|
|
90
|
-
const lockPath = getLockPath(options);
|
|
91
|
-
if (existsSync(lockPath)) {
|
|
92
|
-
unlinkSync(lockPath);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Check if a lock is stale (older than CLEANUP_LOCK_STALE_MS)
|
|
97
|
-
*
|
|
98
|
-
* @param {CleanupLockInfo} lockInfo - Lock info to check
|
|
99
|
-
* @returns {boolean} True if lock is stale
|
|
100
|
-
*/
|
|
101
|
-
export function isCleanupLockStale(lockInfo) {
|
|
102
|
-
if (!lockInfo || !lockInfo.createdAt) {
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
const lockTime = new Date(lockInfo.createdAt).getTime();
|
|
106
|
-
const age = Date.now() - lockTime;
|
|
107
|
-
return age > CLEANUP_LOCK_STALE_MS;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Check if a lock is a zombie (PID not running)
|
|
111
|
-
*
|
|
112
|
-
* @param {CleanupLockInfo} lockInfo - Lock info to check
|
|
113
|
-
* @returns {boolean} True if lock is a zombie (PID not running)
|
|
114
|
-
*/
|
|
115
|
-
export function isCleanupLockZombie(lockInfo) {
|
|
116
|
-
if (!lockInfo || typeof lockInfo.pid !== 'number') {
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
try {
|
|
120
|
-
process.kill(lockInfo.pid, 0); // Signal 0 = check existence
|
|
121
|
-
return false; // Process exists
|
|
122
|
-
}
|
|
123
|
-
catch {
|
|
124
|
-
return true; // Process doesn't exist
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Generate a unique lock ID
|
|
129
|
-
*
|
|
130
|
-
* @returns {string} Unique lock ID
|
|
131
|
-
*/
|
|
132
|
-
function generateLockId() {
|
|
133
|
-
return crypto.randomUUID();
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Sleep for specified milliseconds
|
|
137
|
-
*
|
|
138
|
-
* @param {number} ms - Milliseconds to sleep
|
|
139
|
-
* @returns {Promise<void>}
|
|
140
|
-
*/
|
|
141
|
-
function sleep(ms) {
|
|
142
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Check if cleanup lock is currently held
|
|
146
|
-
*
|
|
147
|
-
* @param {BaseDirOptions} [options]
|
|
148
|
-
* @returns {boolean} True if lock is held (and not stale)
|
|
149
|
-
*/
|
|
150
|
-
export function isCleanupLocked(options = {}) {
|
|
151
|
-
const lockInfo = readLockFile(options);
|
|
152
|
-
if (!lockInfo) {
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
// Stale or zombie locks are treated as unlocked
|
|
156
|
-
return !isCleanupLockStale(lockInfo) && !isCleanupLockZombie(lockInfo);
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Get information about current cleanup lock
|
|
160
|
-
*
|
|
161
|
-
* @param {BaseDirOptions} [options]
|
|
162
|
-
* @returns {CleanupLockInfo|null} Lock info or null if unlocked
|
|
163
|
-
*/
|
|
164
|
-
export function getCleanupLockInfo(options = {}) {
|
|
165
|
-
const lockInfo = readLockFile(options);
|
|
166
|
-
if (!lockInfo || isCleanupLockStale(lockInfo) || isCleanupLockZombie(lockInfo)) {
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
return lockInfo;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Attempt atomic lock file creation
|
|
173
|
-
* Returns 'acquired' | 'race' | throws on other errors
|
|
174
|
-
*
|
|
175
|
-
* @param {CleanupLockInfo} lockInfo - Lock info to write
|
|
176
|
-
* @param {Object} options - Options with baseDir
|
|
177
|
-
* @returns {'acquired' | 'race'} Result of acquisition attempt
|
|
178
|
-
*/
|
|
179
|
-
function tryAtomicLockCreate(lockInfo, options) {
|
|
180
|
-
const lockPath = getLockPath(options);
|
|
181
|
-
const lockDir = path.dirname(lockPath);
|
|
182
|
-
// WU-1174: Ensure lock directory exists (temp directory, not .lumenflow/)
|
|
183
|
-
if (!existsSync(lockDir)) {
|
|
184
|
-
mkdirSync(lockDir, { recursive: true });
|
|
185
|
-
}
|
|
186
|
-
try {
|
|
187
|
-
// Use 'wx' flag for atomic creation
|
|
188
|
-
const fd = openSync(lockPath, 'wx');
|
|
189
|
-
writeFileSync(lockPath, JSON.stringify(lockInfo, null, 2));
|
|
190
|
-
closeSync(fd);
|
|
191
|
-
return 'acquired';
|
|
192
|
-
}
|
|
193
|
-
catch (err) {
|
|
194
|
-
if (err.code === 'EEXIST') {
|
|
195
|
-
return 'race';
|
|
196
|
-
}
|
|
197
|
-
throw err;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Handle stale or zombie lock cleanup
|
|
202
|
-
* Returns 'retry' if lock was cleaned, null if lock is valid
|
|
203
|
-
*
|
|
204
|
-
* @param {CleanupLockInfo} existingLock - Existing lock info
|
|
205
|
-
* @param {Object} options - Options with baseDir
|
|
206
|
-
* @returns {'retry' | null} Whether to retry acquisition
|
|
207
|
-
*/
|
|
208
|
-
function handleStaleLock(existingLock, options) {
|
|
209
|
-
if (isCleanupLockStale(existingLock)) {
|
|
210
|
-
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Cleaning up stale cleanup lock from ${existingLock.wuId}`);
|
|
211
|
-
deleteLockFile(options);
|
|
212
|
-
return 'retry';
|
|
213
|
-
}
|
|
214
|
-
if (isCleanupLockZombie(existingLock)) {
|
|
215
|
-
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Cleaning up zombie cleanup lock from ${existingLock.wuId} (PID ${existingLock.pid} not running)`);
|
|
216
|
-
deleteLockFile(options);
|
|
217
|
-
return 'retry';
|
|
218
|
-
}
|
|
219
|
-
return null;
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Attempt to acquire the cleanup lock
|
|
223
|
-
*
|
|
224
|
-
* Will wait up to waitMs for lock to become available.
|
|
225
|
-
* If the same WU already holds the lock, re-acquisition succeeds (idempotent).
|
|
226
|
-
* Stale and zombie locks are automatically cleaned up.
|
|
227
|
-
*
|
|
228
|
-
* @param {string} wuId - WU ID requesting the lock
|
|
229
|
-
* @param {AcquireCleanupLockOptions} [options]
|
|
230
|
-
* @returns {Promise<CleanupAcquireResult>} Acquisition result
|
|
231
|
-
*/
|
|
232
|
-
export async function acquireCleanupLock(wuId, options = {}) {
|
|
233
|
-
const { baseDir, waitMs = CLEANUP_LOCK_TIMEOUT_MS, worktreePath = null } = options;
|
|
234
|
-
const startTime = Date.now();
|
|
235
|
-
while (true) {
|
|
236
|
-
const existingLock = readLockFile({ baseDir });
|
|
237
|
-
// No lock exists - acquire it
|
|
238
|
-
if (!existingLock) {
|
|
239
|
-
const lockId = generateLockId();
|
|
240
|
-
const lockInfo = {
|
|
241
|
-
wuId,
|
|
242
|
-
lockId,
|
|
243
|
-
createdAt: new Date().toISOString(),
|
|
244
|
-
pid: process.pid,
|
|
245
|
-
hostname: process.env.HOSTNAME || 'unknown',
|
|
246
|
-
worktreePath,
|
|
247
|
-
};
|
|
248
|
-
const result = tryAtomicLockCreate(lockInfo, { baseDir });
|
|
249
|
-
if (result === 'race') {
|
|
250
|
-
continue; // Race condition - retry
|
|
251
|
-
}
|
|
252
|
-
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} Acquired cleanup lock for ${wuId}`);
|
|
253
|
-
return { acquired: true, lockId };
|
|
254
|
-
}
|
|
255
|
-
// Check for stale/zombie locks
|
|
256
|
-
if (handleStaleLock(existingLock, { baseDir }) === 'retry') {
|
|
257
|
-
continue;
|
|
258
|
-
}
|
|
259
|
-
// Same WU already holds lock - return existing lock ID (idempotent)
|
|
260
|
-
if (existingLock.wuId === wuId) {
|
|
261
|
-
return { acquired: true, lockId: existingLock.lockId };
|
|
262
|
-
}
|
|
263
|
-
// Different WU holds lock - check if we should wait
|
|
264
|
-
const elapsed = Date.now() - startTime;
|
|
265
|
-
if (elapsed >= waitMs) {
|
|
266
|
-
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Cleanup lock held by ${existingLock.wuId} since ${existingLock.createdAt}`);
|
|
267
|
-
return {
|
|
268
|
-
acquired: false,
|
|
269
|
-
heldBy: existingLock.wuId,
|
|
270
|
-
heldSince: existingLock.createdAt,
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
// Wait and retry
|
|
274
|
-
await sleep(LOCK_POLL_INTERVAL_MS);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Release the cleanup lock
|
|
279
|
-
*
|
|
280
|
-
* Only releases if the provided lockId matches the current lock.
|
|
281
|
-
* This prevents accidentally releasing another WU's lock.
|
|
282
|
-
*
|
|
283
|
-
* @param {string} lockId - Lock ID to release
|
|
284
|
-
* @param {BaseDirOptions} [options]
|
|
285
|
-
* @returns {boolean} True if lock was released
|
|
286
|
-
*/
|
|
287
|
-
export function releaseCleanupLock(lockId, options = {}) {
|
|
288
|
-
const existingLock = readLockFile(options);
|
|
289
|
-
if (!existingLock) {
|
|
290
|
-
return false;
|
|
291
|
-
}
|
|
292
|
-
if (existingLock.lockId !== lockId) {
|
|
293
|
-
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Cannot release cleanup lock - lockId mismatch`);
|
|
294
|
-
return false;
|
|
295
|
-
}
|
|
296
|
-
deleteLockFile(options);
|
|
297
|
-
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} Released cleanup lock for ${existingLock.wuId}`);
|
|
298
|
-
return true;
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Execute a function while holding the cleanup lock
|
|
302
|
-
*
|
|
303
|
-
* Guarantees the lock is released after function completes,
|
|
304
|
-
* even if the function throws an error.
|
|
305
|
-
*
|
|
306
|
-
* @template T
|
|
307
|
-
* @param {string} wuId - WU ID requesting the lock
|
|
308
|
-
* @param {function(): Promise<T>} fn - Async function to execute
|
|
309
|
-
* @param {AcquireCleanupLockOptions} [options]
|
|
310
|
-
* @returns {Promise<T>} Result of function execution
|
|
311
|
-
* @throws {Error} If lock cannot be acquired or function throws
|
|
312
|
-
*/
|
|
313
|
-
export async function withCleanupLock(wuId, fn, options = {}) {
|
|
314
|
-
const result = await acquireCleanupLock(wuId, options);
|
|
315
|
-
if (!result.acquired) {
|
|
316
|
-
throw createError(ErrorCodes.LOCK_ERROR, `Cannot acquire cleanup lock - held by ${result.heldBy} since ${result.heldSince}`, { wuId, heldBy: result.heldBy, heldSince: result.heldSince });
|
|
317
|
-
}
|
|
318
|
-
try {
|
|
319
|
-
return await fn();
|
|
320
|
-
}
|
|
321
|
-
finally {
|
|
322
|
-
releaseCleanupLock(result.lockId, options);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
//# sourceMappingURL=cleanup-lock.js.map
|
package/dist/cleanup-lock.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup-lock.js","sourceRoot":"","sources":["../src/cleanup-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* CLI helper for bash hooks to check if branch is an agent branch.
|
|
4
|
-
* Uses the same isAgentBranch() logic as TypeScript code.
|
|
5
|
-
*
|
|
6
|
-
* Now async to support registry pattern lookup with fetch + cache.
|
|
7
|
-
*
|
|
8
|
-
* Usage: node dist/cli/is-agent-branch.js [branch-name]
|
|
9
|
-
* Exit codes: 0 = agent branch (allowed), 1 = not agent branch (protected)
|
|
10
|
-
*
|
|
11
|
-
* @module cli/is-agent-branch
|
|
12
|
-
*/
|
|
13
|
-
declare function main(): Promise<void>;
|
|
14
|
-
export { main };
|
|
15
|
-
//# sourceMappingURL=is-agent-branch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"is-agent-branch.d.ts","sourceRoot":"","sources":["../../src/cli/is-agent-branch.ts"],"names":[],"mappings":";AAGA;;;;;;;;;;GAUG;AAKH,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAUnC;AAGD,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"is-agent-branch.js","sourceRoot":"","sources":["../../src/cli/is-agent-branch.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AACzC;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAE3C,4DAA4D;IAC5D,2EAA2E;IAC3E,MAAM,IAAI,gBAAgB,CACxB,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,qBAAqB,EACxD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACf,CAAC;AACJ,CAAC;AAED,wCAAwC;AACxC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,mCAAmC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/cloud-detect.d.ts
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file cloud-detect.ts
|
|
3
|
-
* @description Cloud mode activation and branch-aware guard logic
|
|
4
|
-
*
|
|
5
|
-
* WU-1495: Config-driven cloud detection foundation.
|
|
6
|
-
* WU-1610: Cloud activation is explicit-only.
|
|
7
|
-
*
|
|
8
|
-
* Detection precedence (highest to lowest):
|
|
9
|
-
* 1. --cloud CLI flag (explicit activation)
|
|
10
|
-
* 2. LUMENFLOW_CLOUD=1 environment variable (explicit activation)
|
|
11
|
-
*
|
|
12
|
-
* Design decisions:
|
|
13
|
-
* - Pure function with no I/O (env is injected, not read from process.env)
|
|
14
|
-
* - LUMENFLOW_CLOUD only accepts '1' as truthy (not 'true', 'yes', etc.)
|
|
15
|
-
* - Runtime identity signals are intentionally not used for cloud activation
|
|
16
|
-
*
|
|
17
|
-
* @module cloud-detect
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* Environment signal configuration from .lumenflow.config.yaml
|
|
21
|
-
*
|
|
22
|
-
* Defines an environment variable match rule.
|
|
23
|
-
*
|
|
24
|
-
* Note: These signals are runtime identity/context hints and are not used
|
|
25
|
-
* for cloud execution-path activation (WU-1610).
|
|
26
|
-
* When `equals` is omitted, presence of the variable (non-empty) is sufficient.
|
|
27
|
-
* When `equals` is provided, the value must match exactly.
|
|
28
|
-
*/
|
|
29
|
-
export interface CloudEnvSignalConfig {
|
|
30
|
-
/** Environment variable name to check */
|
|
31
|
-
readonly name: string;
|
|
32
|
-
/** Optional exact value match constraint */
|
|
33
|
-
readonly equals?: string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Cloud detection configuration from .lumenflow.config.yaml
|
|
37
|
-
*/
|
|
38
|
-
export interface CloudDetectConfig {
|
|
39
|
-
/** Deprecated activation toggle for env signals (ignored by detection logic) */
|
|
40
|
-
readonly auto_detect: boolean;
|
|
41
|
-
/** Runtime identity signals from config (not used for activation) */
|
|
42
|
-
readonly env_signals: readonly CloudEnvSignalConfig[];
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Input for cloud detection (pure function, no I/O)
|
|
46
|
-
*/
|
|
47
|
-
export interface CloudDetectInput {
|
|
48
|
-
/** Whether --cloud CLI flag was set */
|
|
49
|
-
readonly cloudFlag: boolean;
|
|
50
|
-
/** Environment variables (Record<string, string | undefined>) */
|
|
51
|
-
readonly env: Readonly<Record<string, string | undefined>>;
|
|
52
|
-
/** Cloud detection config from .lumenflow.config.yaml */
|
|
53
|
-
readonly config: CloudDetectConfig;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Activation source enum-like constants for cloud detection results.
|
|
57
|
-
* Using const object + type pattern for type safety without runtime overhead.
|
|
58
|
-
*/
|
|
59
|
-
export declare const CLOUD_ACTIVATION_SOURCE: {
|
|
60
|
-
/** Activated via --cloud CLI flag */
|
|
61
|
-
readonly FLAG: "flag";
|
|
62
|
-
/** Activated via LUMENFLOW_CLOUD=1 environment variable */
|
|
63
|
-
readonly ENV_VAR: "env_var";
|
|
64
|
-
/** Reserved legacy value (no longer emitted by detectCloudMode) */
|
|
65
|
-
readonly ENV_SIGNAL: "env_signal";
|
|
66
|
-
};
|
|
67
|
-
/** Type for activation source values */
|
|
68
|
-
export type CloudActivationSource = (typeof CLOUD_ACTIVATION_SOURCE)[keyof typeof CLOUD_ACTIVATION_SOURCE];
|
|
69
|
-
/**
|
|
70
|
-
* Result of cloud detection
|
|
71
|
-
*/
|
|
72
|
-
export interface CloudDetectResult {
|
|
73
|
-
/** Whether cloud mode should be activated */
|
|
74
|
-
readonly isCloud: boolean;
|
|
75
|
-
/** Source of activation (undefined when isCloud=false) */
|
|
76
|
-
readonly source?: CloudActivationSource;
|
|
77
|
-
/** Name of the matched env signal (only when source='env_signal') */
|
|
78
|
-
readonly matchedSignal?: string;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Effective cloud activation decision reason on a specific branch.
|
|
82
|
-
*/
|
|
83
|
-
export declare const CLOUD_EFFECTIVE_REASON: {
|
|
84
|
-
/** env-signal auto-detection was suppressed on a protected branch */
|
|
85
|
-
readonly SUPPRESSED_ENV_SIGNAL_ON_PROTECTED: "suppressed_env_signal_on_protected";
|
|
86
|
-
/** explicit cloud activation was blocked on a protected branch */
|
|
87
|
-
readonly BLOCKED_EXPLICIT_ON_PROTECTED: "blocked_explicit_on_protected";
|
|
88
|
-
};
|
|
89
|
-
/** Type for effective decision reason values */
|
|
90
|
-
export type CloudEffectiveReason = (typeof CLOUD_EFFECTIVE_REASON)[keyof typeof CLOUD_EFFECTIVE_REASON];
|
|
91
|
-
/**
|
|
92
|
-
* Input for branch-aware effective cloud activation.
|
|
93
|
-
*/
|
|
94
|
-
export interface EffectiveCloudActivationInput {
|
|
95
|
-
/** Raw cloud detection output */
|
|
96
|
-
readonly detection: CloudDetectResult;
|
|
97
|
-
/** Current git branch */
|
|
98
|
-
readonly currentBranch: string;
|
|
99
|
-
/** Protected branches where cloud activation is restricted (default: main/master) */
|
|
100
|
-
readonly protectedBranches?: readonly string[];
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Branch-aware effective cloud activation decision.
|
|
104
|
-
*/
|
|
105
|
-
export interface EffectiveCloudActivationResult {
|
|
106
|
-
/** Whether cloud mode should be used after branch guard */
|
|
107
|
-
readonly isCloud: boolean;
|
|
108
|
-
/** Original activation source (if UnsafeAny) */
|
|
109
|
-
readonly source?: CloudActivationSource;
|
|
110
|
-
/** Matched env signal name (when source is env_signal) */
|
|
111
|
-
readonly matchedSignal?: string;
|
|
112
|
-
/** Whether activation came from explicit source (--cloud or LUMENFLOW_CLOUD=1) */
|
|
113
|
-
readonly explicit: boolean;
|
|
114
|
-
/** Whether cloud mode was suppressed (env-signal on protected branch) */
|
|
115
|
-
readonly suppressed: boolean;
|
|
116
|
-
/** Whether cloud mode was blocked (explicit activation on protected branch) */
|
|
117
|
-
readonly blocked: boolean;
|
|
118
|
-
/** Decision reason when suppressed/blocked */
|
|
119
|
-
readonly reason?: CloudEffectiveReason;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Detect whether cloud mode should be activated.
|
|
123
|
-
*
|
|
124
|
-
* Implements explicit-only activation:
|
|
125
|
-
* 1. --cloud flag (explicit, always wins)
|
|
126
|
-
* 2. LUMENFLOW_CLOUD=1 (explicit env var, always wins)
|
|
127
|
-
*
|
|
128
|
-
* This function is pure: it takes all inputs explicitly and performs no I/O.
|
|
129
|
-
* Runtime identity signals are intentionally ignored for activation.
|
|
130
|
-
*
|
|
131
|
-
* @param input - Detection inputs (flag, env, config)
|
|
132
|
-
* @returns Detection result with source attribution
|
|
133
|
-
*/
|
|
134
|
-
export declare function detectCloudMode(input: CloudDetectInput): CloudDetectResult;
|
|
135
|
-
/**
|
|
136
|
-
* Resolve effective cloud activation with branch-aware protection.
|
|
137
|
-
*
|
|
138
|
-
* Rules:
|
|
139
|
-
* - On protected branches (main/master by default):
|
|
140
|
-
* - env-signal auto-detection is suppressed (falls back to non-cloud mode)
|
|
141
|
-
* - explicit activation (--cloud or LUMENFLOW_CLOUD=1) is blocked
|
|
142
|
-
* - On non-protected branches, detection result is preserved
|
|
143
|
-
*/
|
|
144
|
-
export declare function resolveEffectiveCloudActivation(input: EffectiveCloudActivationInput): EffectiveCloudActivationResult;
|
|
145
|
-
//# sourceMappingURL=cloud-detect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-detect.d.ts","sourceRoot":"","sources":["../src/cloud-detect.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC3D,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB;IAClC,qCAAqC;;IAErC,2DAA2D;;IAE3D,mEAAmE;;CAE3D,CAAC;AAEX,wCAAwC;AACxC,MAAM,MAAM,qBAAqB,GAC/B,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB;IACjC,qEAAqE;;IAErE,kEAAkE;;CAE1D,CAAC;AAEX,gDAAgD;AAChD,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,iCAAiC;IACjC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,yBAAyB;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,qFAAqF;IACrF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,0DAA0D;IAC1D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAqB1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,6BAA6B,GACnC,8BAA8B,CAkDhC"}
|
package/dist/cloud-detect.js
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
-
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
-
/**
|
|
4
|
-
* Activation source enum-like constants for cloud detection results.
|
|
5
|
-
* Using const object + type pattern for type safety without runtime overhead.
|
|
6
|
-
*/
|
|
7
|
-
export const CLOUD_ACTIVATION_SOURCE = {
|
|
8
|
-
/** Activated via --cloud CLI flag */
|
|
9
|
-
FLAG: 'flag',
|
|
10
|
-
/** Activated via LUMENFLOW_CLOUD=1 environment variable */
|
|
11
|
-
ENV_VAR: 'env_var',
|
|
12
|
-
/** Reserved legacy value (no longer emitted by detectCloudMode) */
|
|
13
|
-
ENV_SIGNAL: 'env_signal',
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Effective cloud activation decision reason on a specific branch.
|
|
17
|
-
*/
|
|
18
|
-
export const CLOUD_EFFECTIVE_REASON = {
|
|
19
|
-
/** env-signal auto-detection was suppressed on a protected branch */
|
|
20
|
-
SUPPRESSED_ENV_SIGNAL_ON_PROTECTED: 'suppressed_env_signal_on_protected',
|
|
21
|
-
/** explicit cloud activation was blocked on a protected branch */
|
|
22
|
-
BLOCKED_EXPLICIT_ON_PROTECTED: 'blocked_explicit_on_protected',
|
|
23
|
-
};
|
|
24
|
-
/** Environment variable name for explicit cloud activation */
|
|
25
|
-
const LUMENFLOW_CLOUD_ENV = 'LUMENFLOW_CLOUD';
|
|
26
|
-
/** Value that activates cloud mode via LUMENFLOW_CLOUD env var */
|
|
27
|
-
const LUMENFLOW_CLOUD_ACTIVE_VALUE = '1';
|
|
28
|
-
/** Default protected branches where cloud activation is constrained */
|
|
29
|
-
const DEFAULT_PROTECTED_BRANCHES = ['main', 'master'];
|
|
30
|
-
/**
|
|
31
|
-
* Detect whether cloud mode should be activated.
|
|
32
|
-
*
|
|
33
|
-
* Implements explicit-only activation:
|
|
34
|
-
* 1. --cloud flag (explicit, always wins)
|
|
35
|
-
* 2. LUMENFLOW_CLOUD=1 (explicit env var, always wins)
|
|
36
|
-
*
|
|
37
|
-
* This function is pure: it takes all inputs explicitly and performs no I/O.
|
|
38
|
-
* Runtime identity signals are intentionally ignored for activation.
|
|
39
|
-
*
|
|
40
|
-
* @param input - Detection inputs (flag, env, config)
|
|
41
|
-
* @returns Detection result with source attribution
|
|
42
|
-
*/
|
|
43
|
-
export function detectCloudMode(input) {
|
|
44
|
-
const { cloudFlag, env } = input;
|
|
45
|
-
// Precedence 1: --cloud CLI flag (highest priority)
|
|
46
|
-
if (cloudFlag) {
|
|
47
|
-
return {
|
|
48
|
-
isCloud: true,
|
|
49
|
-
source: CLOUD_ACTIVATION_SOURCE.FLAG,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
// Precedence 2: LUMENFLOW_CLOUD=1 environment variable
|
|
53
|
-
if (env[LUMENFLOW_CLOUD_ENV] === LUMENFLOW_CLOUD_ACTIVE_VALUE) {
|
|
54
|
-
return {
|
|
55
|
-
isCloud: true,
|
|
56
|
-
source: CLOUD_ACTIVATION_SOURCE.ENV_VAR,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
// No activation source matched
|
|
60
|
-
return { isCloud: false };
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Resolve effective cloud activation with branch-aware protection.
|
|
64
|
-
*
|
|
65
|
-
* Rules:
|
|
66
|
-
* - On protected branches (main/master by default):
|
|
67
|
-
* - env-signal auto-detection is suppressed (falls back to non-cloud mode)
|
|
68
|
-
* - explicit activation (--cloud or LUMENFLOW_CLOUD=1) is blocked
|
|
69
|
-
* - On non-protected branches, detection result is preserved
|
|
70
|
-
*/
|
|
71
|
-
export function resolveEffectiveCloudActivation(input) {
|
|
72
|
-
const { detection, currentBranch } = input;
|
|
73
|
-
const protectedBranches = input.protectedBranches ?? DEFAULT_PROTECTED_BRANCHES;
|
|
74
|
-
if (!detection.isCloud) {
|
|
75
|
-
return {
|
|
76
|
-
isCloud: false,
|
|
77
|
-
explicit: false,
|
|
78
|
-
suppressed: false,
|
|
79
|
-
blocked: false,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
const explicit = detection.source === CLOUD_ACTIVATION_SOURCE.FLAG ||
|
|
83
|
-
detection.source === CLOUD_ACTIVATION_SOURCE.ENV_VAR;
|
|
84
|
-
const isProtectedBranch = protectedBranches.includes(currentBranch);
|
|
85
|
-
if (!isProtectedBranch) {
|
|
86
|
-
return {
|
|
87
|
-
isCloud: true,
|
|
88
|
-
source: detection.source,
|
|
89
|
-
matchedSignal: detection.matchedSignal,
|
|
90
|
-
explicit,
|
|
91
|
-
suppressed: false,
|
|
92
|
-
blocked: false,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
if (explicit) {
|
|
96
|
-
return {
|
|
97
|
-
isCloud: false,
|
|
98
|
-
source: detection.source,
|
|
99
|
-
matchedSignal: detection.matchedSignal,
|
|
100
|
-
explicit: true,
|
|
101
|
-
suppressed: false,
|
|
102
|
-
blocked: true,
|
|
103
|
-
reason: CLOUD_EFFECTIVE_REASON.BLOCKED_EXPLICIT_ON_PROTECTED,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
isCloud: false,
|
|
108
|
-
source: detection.source,
|
|
109
|
-
matchedSignal: detection.matchedSignal,
|
|
110
|
-
explicit: false,
|
|
111
|
-
suppressed: true,
|
|
112
|
-
blocked: false,
|
|
113
|
-
reason: CLOUD_EFFECTIVE_REASON.SUPPRESSED_ENV_SIGNAL_ON_PROTECTED,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=cloud-detect.js.map
|
package/dist/cloud-detect.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-detect.js","sourceRoot":"","sources":["../src/cloud-detect.ts"],"names":[],"mappings":"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"}
|