@lumenflow/core 3.2.0 → 3.2.2
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/dist/active-wu-detector.d.ts +25 -0
- package/dist/active-wu-detector.d.ts.map +1 -0
- package/dist/active-wu-detector.js +109 -0
- package/dist/active-wu-detector.js.map +1 -0
- package/dist/adapters/context-adapters.d.ts +101 -0
- package/dist/adapters/context-adapters.d.ts.map +1 -0
- package/dist/adapters/context-adapters.js +98 -0
- package/dist/adapters/context-adapters.js.map +1 -0
- package/dist/adapters/filesystem-metrics.adapter.d.ts +91 -0
- package/dist/adapters/filesystem-metrics.adapter.d.ts.map +1 -0
- package/dist/adapters/filesystem-metrics.adapter.js +530 -0
- package/dist/adapters/filesystem-metrics.adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +15 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +21 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/mock-dashboard-renderer.adapter.d.ts +86 -0
- package/dist/adapters/mock-dashboard-renderer.adapter.d.ts.map +1 -0
- package/dist/adapters/mock-dashboard-renderer.adapter.js +93 -0
- package/dist/adapters/mock-dashboard-renderer.adapter.js.map +1 -0
- package/dist/adapters/recovery-adapters.d.ts +41 -0
- package/dist/adapters/recovery-adapters.d.ts.map +1 -0
- package/dist/adapters/recovery-adapters.js +32 -0
- package/dist/adapters/recovery-adapters.js.map +1 -0
- package/dist/adapters/terminal-renderer.adapter.d.ts +86 -0
- package/dist/adapters/terminal-renderer.adapter.d.ts.map +1 -0
- package/dist/adapters/terminal-renderer.adapter.js +344 -0
- package/dist/adapters/terminal-renderer.adapter.js.map +1 -0
- package/dist/adapters/validation-adapters.d.ts +53 -0
- package/dist/adapters/validation-adapters.d.ts.map +1 -0
- package/dist/adapters/validation-adapters.js +48 -0
- package/dist/adapters/validation-adapters.js.map +1 -0
- package/dist/agent-patterns-registry.d.ts +141 -0
- package/dist/agent-patterns-registry.d.ts.map +1 -0
- package/dist/agent-patterns-registry.js +320 -0
- package/dist/agent-patterns-registry.js.map +1 -0
- package/dist/arg-parser.d.ts +94 -0
- package/dist/arg-parser.d.ts.map +1 -0
- package/dist/arg-parser.js +774 -0
- package/dist/arg-parser.js.map +1 -0
- package/dist/atomic-merge.d.ts +21 -0
- package/dist/atomic-merge.d.ts.map +1 -0
- package/dist/atomic-merge.js +87 -0
- package/dist/atomic-merge.js.map +1 -0
- package/dist/backlog-editor.d.ts +103 -0
- package/dist/backlog-editor.d.ts.map +1 -0
- package/dist/backlog-editor.js +158 -0
- package/dist/backlog-editor.js.map +1 -0
- package/dist/backlog-generator.d.ts +90 -0
- package/dist/backlog-generator.d.ts.map +1 -0
- package/dist/backlog-generator.js +536 -0
- package/dist/backlog-generator.js.map +1 -0
- package/dist/backlog-parser.d.ts +46 -0
- package/dist/backlog-parser.d.ts.map +1 -0
- package/dist/backlog-parser.js +105 -0
- package/dist/backlog-parser.js.map +1 -0
- package/dist/backlog-sync-validator.d.ts +88 -0
- package/dist/backlog-sync-validator.d.ts.map +1 -0
- package/dist/backlog-sync-validator.js +322 -0
- package/dist/backlog-sync-validator.js.map +1 -0
- package/dist/branch-check.d.ts +63 -0
- package/dist/branch-check.d.ts.map +1 -0
- package/dist/branch-check.js +197 -0
- package/dist/branch-check.js.map +1 -0
- package/dist/branch-drift.d.ts +24 -0
- package/dist/branch-drift.d.ts.map +1 -0
- package/dist/branch-drift.js +54 -0
- package/dist/branch-drift.js.map +1 -0
- package/dist/cleanup-install-config.d.ts +24 -0
- package/dist/cleanup-install-config.d.ts.map +1 -0
- package/dist/cleanup-install-config.js +40 -0
- package/dist/cleanup-install-config.js.map +1 -0
- package/dist/cleanup-lock.d.ts +125 -0
- package/dist/cleanup-lock.d.ts.map +1 -0
- package/dist/cleanup-lock.js +322 -0
- package/dist/cleanup-lock.js.map +1 -0
- package/dist/cli/is-agent-branch.d.ts +22 -0
- package/dist/cli/is-agent-branch.d.ts.map +1 -0
- package/dist/cli/is-agent-branch.js.map +1 -0
- package/dist/cloud-detect.d.ts +145 -0
- package/dist/cloud-detect.d.ts.map +1 -0
- package/dist/cloud-detect.js +116 -0
- package/dist/cloud-detect.js.map +1 -0
- package/dist/code-path-validator.d.ts +145 -0
- package/dist/code-path-validator.d.ts.map +1 -0
- package/dist/code-path-validator.js +553 -0
- package/dist/code-path-validator.js.map +1 -0
- package/dist/code-paths-overlap.d.ts +50 -0
- package/dist/code-paths-overlap.d.ts.map +1 -0
- package/dist/code-paths-overlap.js +248 -0
- package/dist/code-paths-overlap.js.map +1 -0
- package/dist/color-support.d.ts +21 -0
- package/dist/color-support.d.ts.map +1 -0
- package/dist/color-support.js +67 -0
- package/dist/color-support.js.map +1 -0
- package/dist/commands-logger.d.ts +71 -0
- package/dist/commands-logger.d.ts.map +1 -0
- package/dist/commands-logger.js +257 -0
- package/dist/commands-logger.js.map +1 -0
- package/dist/commit-message-utils.d.ts +26 -0
- package/dist/commit-message-utils.d.ts.map +1 -0
- package/dist/commit-message-utils.js +44 -0
- package/dist/commit-message-utils.js.map +1 -0
- package/dist/config-contract.d.ts +12 -0
- package/dist/config-contract.d.ts.map +1 -0
- package/dist/config-contract.js +14 -0
- package/dist/config-contract.js.map +1 -0
- package/dist/constants/backlog-patterns.d.ts +21 -0
- package/dist/constants/backlog-patterns.d.ts.map +1 -0
- package/dist/constants/backlog-patterns.js +26 -0
- package/dist/constants/backlog-patterns.js.map +1 -0
- package/dist/constants/display-constants.d.ts +22 -0
- package/dist/constants/display-constants.d.ts.map +1 -0
- package/dist/constants/display-constants.js +26 -0
- package/dist/constants/display-constants.js.map +1 -0
- package/dist/constants/dora-constants.d.ts +50 -0
- package/dist/constants/dora-constants.d.ts.map +1 -0
- package/dist/constants/dora-constants.js +56 -0
- package/dist/constants/dora-constants.js.map +1 -0
- package/dist/constants/duration-constants.d.ts +29 -0
- package/dist/constants/duration-constants.d.ts.map +1 -0
- package/dist/constants/duration-constants.js +31 -0
- package/dist/constants/duration-constants.js.map +1 -0
- package/dist/constants/gate-constants.d.ts +24 -0
- package/dist/constants/gate-constants.d.ts.map +1 -0
- package/dist/constants/gate-constants.js +26 -0
- package/dist/constants/gate-constants.js.map +1 -0
- package/dist/constants/git-constants.d.ts +33 -0
- package/dist/constants/git-constants.d.ts.map +1 -0
- package/dist/constants/git-constants.js +35 -0
- package/dist/constants/git-constants.js.map +1 -0
- package/dist/constants/index.d.ts +20 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +31 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/linter-constants.d.ts +17 -0
- package/dist/constants/linter-constants.d.ts.map +1 -0
- package/dist/constants/linter-constants.js +19 -0
- package/dist/constants/linter-constants.js.map +1 -0
- package/dist/constants/lock-constants.d.ts +29 -0
- package/dist/constants/lock-constants.d.ts.map +1 -0
- package/dist/constants/lock-constants.js +31 -0
- package/dist/constants/lock-constants.js.map +1 -0
- package/dist/constants/tokenizer-constants.d.ts +16 -0
- package/dist/constants/tokenizer-constants.d.ts.map +1 -0
- package/dist/constants/tokenizer-constants.js +18 -0
- package/dist/constants/tokenizer-constants.js.map +1 -0
- package/dist/constants/validation-constants.d.ts +15 -0
- package/dist/constants/validation-constants.d.ts.map +1 -0
- package/dist/constants/validation-constants.js +17 -0
- package/dist/constants/validation-constants.js.map +1 -0
- package/dist/context/context-computer.d.ts +36 -0
- package/dist/context/context-computer.d.ts.map +1 -0
- package/dist/context/context-computer.js +128 -0
- package/dist/context/context-computer.js.map +1 -0
- package/dist/context/git-state-reader.d.ts +37 -0
- package/dist/context/git-state-reader.d.ts.map +1 -0
- package/dist/context/git-state-reader.js +64 -0
- package/dist/context/git-state-reader.js.map +1 -0
- package/dist/context/index.d.ts +18 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +20 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/location-resolver.d.ts +34 -0
- package/dist/context/location-resolver.d.ts.map +1 -0
- package/dist/context/location-resolver.js +179 -0
- package/dist/context/location-resolver.js.map +1 -0
- package/dist/context/wu-state-reader.d.ts +30 -0
- package/dist/context/wu-state-reader.d.ts.map +1 -0
- package/dist/context/wu-state-reader.js +126 -0
- package/dist/context/wu-state-reader.js.map +1 -0
- package/dist/context-di.d.ts +185 -0
- package/dist/context-di.d.ts.map +1 -0
- package/dist/context-di.js +165 -0
- package/dist/context-di.js.map +1 -0
- package/dist/context-validation-integration.d.ts +69 -0
- package/dist/context-validation-integration.d.ts.map +1 -0
- package/dist/context-validation-integration.js +161 -0
- package/dist/context-validation-integration.js.map +1 -0
- package/dist/core/scope-checker.d.ts +80 -0
- package/dist/core/scope-checker.d.ts.map +1 -0
- package/dist/core/scope-checker.js +166 -0
- package/dist/core/scope-checker.js.map +1 -0
- package/dist/core/tool-runner.d.ts +136 -0
- package/dist/core/tool-runner.d.ts.map +1 -0
- package/dist/core/tool-runner.js +396 -0
- package/dist/core/tool-runner.js.map +1 -0
- package/dist/core/tool.constants.d.ts +106 -0
- package/dist/core/tool.constants.d.ts.map +1 -0
- package/dist/core/tool.constants.js +104 -0
- package/dist/core/tool.constants.js.map +1 -0
- package/dist/core/tool.schemas.d.ts +227 -0
- package/dist/core/tool.schemas.d.ts.map +1 -0
- package/dist/core/tool.schemas.js +229 -0
- package/dist/core/tool.schemas.js.map +1 -0
- package/dist/core/worktree-guard.d.ts +115 -0
- package/dist/core/worktree-guard.d.ts.map +1 -0
- package/dist/core/worktree-guard.js +245 -0
- package/dist/core/worktree-guard.js.map +1 -0
- package/dist/coverage-gate.d.ts +127 -0
- package/dist/coverage-gate.d.ts.map +1 -0
- package/dist/coverage-gate.js +211 -0
- package/dist/coverage-gate.js.map +1 -0
- package/dist/cycle-detector.d.ts +52 -0
- package/dist/cycle-detector.d.ts.map +1 -0
- package/dist/cycle-detector.js +84 -0
- package/dist/cycle-detector.js.map +1 -0
- package/dist/date-utils.d.ts +66 -0
- package/dist/date-utils.d.ts.map +1 -0
- package/dist/date-utils.js +143 -0
- package/dist/date-utils.js.map +1 -0
- package/dist/delegation-escalation.d.ts +71 -0
- package/dist/delegation-escalation.d.ts.map +1 -0
- package/dist/delegation-escalation.js +264 -0
- package/dist/delegation-escalation.js.map +1 -0
- package/dist/delegation-monitor.d.ts +262 -0
- package/dist/delegation-monitor.d.ts.map +1 -0
- package/dist/delegation-monitor.js +678 -0
- package/dist/delegation-monitor.js.map +1 -0
- package/dist/delegation-recovery.d.ts +62 -0
- package/dist/delegation-recovery.d.ts.map +1 -0
- package/dist/delegation-recovery.js +304 -0
- package/dist/delegation-recovery.js.map +1 -0
- package/dist/delegation-registry-schema.d.ts +75 -0
- package/dist/delegation-registry-schema.d.ts.map +1 -0
- package/dist/delegation-registry-schema.js +93 -0
- package/dist/delegation-registry-schema.js.map +1 -0
- package/dist/delegation-registry-store.d.ts +145 -0
- package/dist/delegation-registry-store.d.ts.map +1 -0
- package/dist/delegation-registry-store.js +308 -0
- package/dist/delegation-registry-store.js.map +1 -0
- package/dist/delegation-tree.d.ts +52 -0
- package/dist/delegation-tree.d.ts.map +1 -0
- package/dist/delegation-tree.js +205 -0
- package/dist/delegation-tree.js.map +1 -0
- package/dist/dependency-graph.d.ts +169 -0
- package/dist/dependency-graph.d.ts.map +1 -0
- package/dist/dependency-graph.js +612 -0
- package/dist/dependency-graph.js.map +1 -0
- package/dist/dependency-guard.d.ts +41 -0
- package/dist/dependency-guard.d.ts.map +1 -0
- package/dist/dependency-guard.js +145 -0
- package/dist/dependency-guard.js.map +1 -0
- package/dist/dependency-validator.d.ts +89 -0
- package/dist/dependency-validator.d.ts.map +1 -0
- package/dist/dependency-validator.js +155 -0
- package/dist/dependency-validator.js.map +1 -0
- package/dist/docs-path-validator.d.ts +16 -0
- package/dist/docs-path-validator.d.ts.map +1 -0
- package/dist/docs-path-validator.js +98 -0
- package/dist/docs-path-validator.js.map +1 -0
- package/dist/domain/context.schemas.d.ts +170 -0
- package/dist/domain/context.schemas.d.ts.map +1 -0
- package/dist/domain/context.schemas.js +151 -0
- package/dist/domain/context.schemas.js.map +1 -0
- package/dist/domain/index.d.ts +15 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +23 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/orchestration.constants.d.ts +111 -0
- package/dist/domain/orchestration.constants.d.ts.map +1 -0
- package/dist/domain/orchestration.constants.js +130 -0
- package/dist/domain/orchestration.constants.js.map +1 -0
- package/dist/domain/orchestration.schemas.d.ts +307 -0
- package/dist/domain/orchestration.schemas.d.ts.map +1 -0
- package/dist/domain/orchestration.schemas.js +214 -0
- package/dist/domain/orchestration.schemas.js.map +1 -0
- package/dist/domain/orchestration.types.d.ts +134 -0
- package/dist/domain/orchestration.types.d.ts.map +1 -0
- package/dist/domain/orchestration.types.js +5 -0
- package/dist/domain/orchestration.types.js.map +1 -0
- package/dist/domain/recovery.schemas.d.ts +164 -0
- package/dist/domain/recovery.schemas.d.ts.map +1 -0
- package/dist/domain/recovery.schemas.js +134 -0
- package/dist/domain/recovery.schemas.js.map +1 -0
- package/dist/domain/validation.schemas.d.ts +147 -0
- package/dist/domain/validation.schemas.d.ts.map +1 -0
- package/dist/domain/validation.schemas.js +117 -0
- package/dist/domain/validation.schemas.js.map +1 -0
- package/dist/error-handler.d.ts +144 -0
- package/dist/error-handler.d.ts.map +1 -0
- package/dist/error-handler.js +214 -0
- package/dist/error-handler.js.map +1 -0
- package/dist/file-classifiers.d.ts +63 -0
- package/dist/file-classifiers.d.ts.map +1 -0
- package/dist/file-classifiers.js +111 -0
- package/dist/file-classifiers.js.map +1 -0
- package/dist/force-bypass-audit.d.ts +47 -0
- package/dist/force-bypass-audit.d.ts.map +1 -0
- package/dist/force-bypass-audit.js +146 -0
- package/dist/force-bypass-audit.js.map +1 -0
- package/dist/gates-agent-mode.d.ts +107 -0
- package/dist/gates-agent-mode.d.ts.map +1 -0
- package/dist/gates-agent-mode.js +138 -0
- package/dist/gates-agent-mode.js.map +1 -0
- package/dist/gates-config-internal.d.ts +51 -0
- package/dist/gates-config-internal.d.ts.map +1 -0
- package/dist/gates-config-internal.js +105 -0
- package/dist/gates-config-internal.js.map +1 -0
- package/dist/gates-config.d.ts +65 -0
- package/dist/gates-config.d.ts.map +1 -0
- package/dist/gates-config.js +191 -0
- package/dist/gates-config.js.map +1 -0
- package/dist/gates-coverage.d.ts +39 -0
- package/dist/gates-coverage.d.ts.map +1 -0
- package/dist/gates-coverage.js +148 -0
- package/dist/gates-coverage.js.map +1 -0
- package/dist/gates-presets.d.ts +25 -0
- package/dist/gates-presets.d.ts.map +1 -0
- package/dist/gates-presets.js +74 -0
- package/dist/gates-presets.js.map +1 -0
- package/dist/gates-schemas.d.ts +141 -0
- package/dist/gates-schemas.d.ts.map +1 -0
- package/dist/gates-schemas.js +67 -0
- package/dist/gates-schemas.js.map +1 -0
- package/dist/generate-traceability.d.ts +106 -0
- package/dist/generate-traceability.d.ts.map +1 -0
- package/dist/generate-traceability.js +387 -0
- package/dist/generate-traceability.js.map +1 -0
- package/dist/git-adapter.d.ts +406 -0
- package/dist/git-adapter.d.ts.map +1 -0
- package/dist/git-adapter.js +686 -0
- package/dist/git-adapter.js.map +1 -0
- package/dist/git-context-extractor.d.ts +102 -0
- package/dist/git-context-extractor.d.ts.map +1 -0
- package/dist/git-context-extractor.js +569 -0
- package/dist/git-context-extractor.js.map +1 -0
- package/dist/git-staged-validator.d.ts +33 -0
- package/dist/git-staged-validator.d.ts.map +1 -0
- package/dist/git-staged-validator.js +52 -0
- package/dist/git-staged-validator.js.map +1 -0
- package/dist/hardcoded-strings.d.ts +67 -0
- package/dist/hardcoded-strings.d.ts.map +1 -0
- package/dist/hardcoded-strings.js +276 -0
- package/dist/hardcoded-strings.js.map +1 -0
- package/dist/incremental-lint.d.ts +71 -0
- package/dist/incremental-lint.d.ts.map +1 -0
- package/dist/incremental-lint.js +132 -0
- package/dist/incremental-lint.js.map +1 -0
- package/dist/incremental-test.d.ts +33 -0
- package/dist/incremental-test.d.ts.map +1 -0
- package/dist/incremental-test.js +64 -0
- package/dist/incremental-test.js.map +1 -0
- package/dist/index.d.ts +108 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/invariants/check-automated-tests.d.ts +42 -0
- package/dist/invariants/check-automated-tests.d.ts.map +1 -0
- package/dist/invariants/check-automated-tests.js +171 -0
- package/dist/invariants/check-automated-tests.js.map +1 -0
- package/dist/invariants-runner.d.ts +166 -0
- package/dist/invariants-runner.d.ts.map +1 -0
- package/dist/invariants-runner.js +583 -0
- package/dist/invariants-runner.js.map +1 -0
- package/dist/lane-checker.d.ts +132 -0
- package/dist/lane-checker.d.ts.map +1 -0
- package/dist/lane-checker.js +687 -0
- package/dist/lane-checker.js.map +1 -0
- package/dist/lane-inference.d.ts +29 -0
- package/dist/lane-inference.d.ts.map +1 -0
- package/dist/lane-inference.js +210 -0
- package/dist/lane-inference.js.map +1 -0
- package/dist/lane-lock.d.ts +220 -0
- package/dist/lane-lock.d.ts.map +1 -0
- package/dist/lane-lock.js +499 -0
- package/dist/lane-lock.js.map +1 -0
- package/dist/lane-suggest-prompt.d.ts +97 -0
- package/dist/lane-suggest-prompt.d.ts.map +1 -0
- package/dist/lane-suggest-prompt.js +362 -0
- package/dist/lane-suggest-prompt.js.map +1 -0
- package/dist/lane-validator.d.ts +49 -0
- package/dist/lane-validator.d.ts.map +1 -0
- package/dist/lane-validator.js +117 -0
- package/dist/lane-validator.js.map +1 -0
- package/dist/logs-lib.d.ts +89 -0
- package/dist/logs-lib.d.ts.map +1 -0
- package/dist/logs-lib.js +214 -0
- package/dist/logs-lib.js.map +1 -0
- package/dist/lumenflow-config-schema.d.ts +643 -0
- package/dist/lumenflow-config-schema.d.ts.map +1 -0
- package/dist/lumenflow-config-schema.js +120 -0
- package/dist/lumenflow-config-schema.js.map +1 -0
- package/dist/lumenflow-config.d.ts +112 -0
- package/dist/lumenflow-config.d.ts.map +1 -0
- package/dist/lumenflow-config.js +328 -0
- package/dist/lumenflow-config.js.map +1 -0
- package/dist/lumenflow-home.d.ts +118 -0
- package/dist/lumenflow-home.d.ts.map +1 -0
- package/dist/lumenflow-home.js +214 -0
- package/dist/lumenflow-home.js.map +1 -0
- package/dist/manual-test-validator.d.ts +84 -0
- package/dist/manual-test-validator.d.ts.map +1 -0
- package/dist/manual-test-validator.js +206 -0
- package/dist/manual-test-validator.js.map +1 -0
- package/dist/merge-lock.d.ts +107 -0
- package/dist/merge-lock.d.ts.map +1 -0
- package/dist/merge-lock.js +260 -0
- package/dist/merge-lock.js.map +1 -0
- package/dist/micro-worktree-shared.d.ts +128 -0
- package/dist/micro-worktree-shared.d.ts.map +1 -0
- package/dist/micro-worktree-shared.js +352 -0
- package/dist/micro-worktree-shared.js.map +1 -0
- package/dist/micro-worktree.d.ts +165 -0
- package/dist/micro-worktree.d.ts.map +1 -0
- package/dist/micro-worktree.js +463 -0
- package/dist/micro-worktree.js.map +1 -0
- package/dist/normalize-config-keys.d.ts +10 -0
- package/dist/normalize-config-keys.d.ts.map +1 -0
- package/dist/normalize-config-keys.js +70 -0
- package/dist/normalize-config-keys.js.map +1 -0
- package/dist/object-guards.d.ts +11 -0
- package/dist/object-guards.d.ts.map +1 -0
- package/dist/object-guards.js +23 -0
- package/dist/object-guards.js.map +1 -0
- package/dist/orchestration-advisory-loader.d.ts +19 -0
- package/dist/orchestration-advisory-loader.d.ts.map +1 -0
- package/dist/orchestration-advisory-loader.js +94 -0
- package/dist/orchestration-advisory-loader.js.map +1 -0
- package/dist/orchestration-advisory.d.ts +49 -0
- package/dist/orchestration-advisory.d.ts.map +1 -0
- package/dist/orchestration-advisory.js +97 -0
- package/dist/orchestration-advisory.js.map +1 -0
- package/dist/orchestration-di.d.ts +36 -0
- package/dist/orchestration-di.d.ts.map +1 -0
- package/dist/orchestration-di.js +60 -0
- package/dist/orchestration-di.js.map +1 -0
- package/dist/orchestration-rules.d.ts +60 -0
- package/dist/orchestration-rules.d.ts.map +1 -0
- package/dist/orchestration-rules.js +212 -0
- package/dist/orchestration-rules.js.map +1 -0
- package/dist/orphan-detector.d.ts +148 -0
- package/dist/orphan-detector.d.ts.map +1 -0
- package/dist/orphan-detector.js +253 -0
- package/dist/orphan-detector.js.map +1 -0
- package/dist/pack-authoring-template-engine.d.ts +54 -0
- package/dist/pack-authoring-template-engine.d.ts.map +1 -0
- package/dist/pack-authoring-template-engine.js +510 -0
- package/dist/pack-authoring-template-engine.js.map +1 -0
- package/dist/package-manager-resolver.d.ts +63 -0
- package/dist/package-manager-resolver.d.ts.map +1 -0
- package/dist/package-manager-resolver.js +193 -0
- package/dist/package-manager-resolver.js.map +1 -0
- package/dist/path-classifiers.d.ts +58 -0
- package/dist/path-classifiers.d.ts.map +1 -0
- package/dist/path-classifiers.js +96 -0
- package/dist/path-classifiers.js.map +1 -0
- package/dist/patrol-loop.d.ts +171 -0
- package/dist/patrol-loop.d.ts.map +1 -0
- package/dist/patrol-loop.js +197 -0
- package/dist/patrol-loop.js.map +1 -0
- package/dist/piped-command-detector.d.ts +25 -0
- package/dist/piped-command-detector.d.ts.map +1 -0
- package/dist/piped-command-detector.js +67 -0
- package/dist/piped-command-detector.js.map +1 -0
- package/dist/ports/config.ports.d.ts +83 -0
- package/dist/ports/config.ports.d.ts.map +1 -0
- package/dist/ports/config.ports.js +4 -0
- package/dist/ports/config.ports.js.map +1 -0
- package/dist/ports/context.ports.d.ts +136 -0
- package/dist/ports/context.ports.d.ts.map +1 -0
- package/dist/ports/context.ports.js +4 -0
- package/dist/ports/context.ports.js.map +1 -0
- package/dist/ports/core-tools.ports.d.ts +282 -0
- package/dist/ports/core-tools.ports.d.ts.map +1 -0
- package/dist/ports/core-tools.ports.js +4 -0
- package/dist/ports/core-tools.ports.js.map +1 -0
- package/dist/ports/dashboard-renderer.port.d.ts +113 -0
- package/dist/ports/dashboard-renderer.port.d.ts.map +1 -0
- package/dist/ports/dashboard-renderer.port.js +4 -0
- package/dist/ports/dashboard-renderer.port.js.map +1 -0
- package/dist/ports/git-validator.ports.d.ts +114 -0
- package/dist/ports/git-validator.ports.d.ts.map +1 -0
- package/dist/ports/git-validator.ports.js +4 -0
- package/dist/ports/git-validator.ports.js.map +1 -0
- package/dist/ports/index.d.ts +23 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +25 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/ports/metrics-collector.port.d.ts +133 -0
- package/dist/ports/metrics-collector.port.d.ts.map +1 -0
- package/dist/ports/metrics-collector.port.js +4 -0
- package/dist/ports/metrics-collector.port.js.map +1 -0
- package/dist/ports/recovery.ports.d.ts +59 -0
- package/dist/ports/recovery.ports.d.ts.map +1 -0
- package/dist/ports/recovery.ports.js +4 -0
- package/dist/ports/recovery.ports.js.map +1 -0
- package/dist/ports/validation.ports.d.ts +75 -0
- package/dist/ports/validation.ports.d.ts.map +1 -0
- package/dist/ports/validation.ports.js +4 -0
- package/dist/ports/validation.ports.js.map +1 -0
- package/dist/ports/wu-helpers.ports.d.ts +168 -0
- package/dist/ports/wu-helpers.ports.d.ts.map +1 -0
- package/dist/ports/wu-helpers.ports.js +4 -0
- package/dist/ports/wu-helpers.ports.js.map +1 -0
- package/dist/ports/wu-state.ports.d.ts +190 -0
- package/dist/ports/wu-state.ports.d.ts.map +1 -0
- package/dist/ports/wu-state.ports.js +4 -0
- package/dist/ports/wu-state.ports.js.map +1 -0
- package/dist/process-detector.d.ts +69 -0
- package/dist/process-detector.d.ts.map +1 -0
- package/dist/process-detector.js +175 -0
- package/dist/process-detector.js.map +1 -0
- package/dist/prompt-linter.d.ts +73 -0
- package/dist/prompt-linter.d.ts.map +1 -0
- package/dist/prompt-linter.js +338 -0
- package/dist/prompt-linter.js.map +1 -0
- package/dist/prompt-monitor.d.ts +13 -0
- package/dist/prompt-monitor.d.ts.map +1 -0
- package/dist/prompt-monitor.js +233 -0
- package/dist/prompt-monitor.js.map +1 -0
- package/dist/rebase-artifact-cleanup.d.ts +156 -0
- package/dist/rebase-artifact-cleanup.d.ts.map +1 -0
- package/dist/rebase-artifact-cleanup.js +475 -0
- package/dist/rebase-artifact-cleanup.js.map +1 -0
- package/dist/recovery/index.d.ts +12 -0
- package/dist/recovery/index.d.ts.map +1 -0
- package/dist/recovery/index.js +14 -0
- package/dist/recovery/index.js.map +1 -0
- package/dist/recovery/recovery-analyzer.d.ts +49 -0
- package/dist/recovery/recovery-analyzer.d.ts.map +1 -0
- package/dist/recovery/recovery-analyzer.js +149 -0
- package/dist/recovery/recovery-analyzer.js.map +1 -0
- package/dist/resolve-policy.d.ts +257 -0
- package/dist/resolve-policy.d.ts.map +1 -0
- package/dist/resolve-policy.js +269 -0
- package/dist/resolve-policy.js.map +1 -0
- package/dist/retry-strategy.d.ts +191 -0
- package/dist/retry-strategy.d.ts.map +1 -0
- package/dist/retry-strategy.js +286 -0
- package/dist/retry-strategy.js.map +1 -0
- package/dist/rollback-utils.d.ts +129 -0
- package/dist/rollback-utils.d.ts.map +1 -0
- package/dist/rollback-utils.js +217 -0
- package/dist/rollback-utils.js.map +1 -0
- package/dist/sandbox-allowlist.d.ts +16 -0
- package/dist/sandbox-allowlist.d.ts.map +1 -0
- package/dist/sandbox-allowlist.js +77 -0
- package/dist/sandbox-allowlist.js.map +1 -0
- package/dist/sandbox-backend-linux.d.ts +6 -0
- package/dist/sandbox-backend-linux.d.ts.map +1 -0
- package/dist/sandbox-backend-linux.js +67 -0
- package/dist/sandbox-backend-linux.js.map +1 -0
- package/dist/sandbox-backend-macos.d.ts +6 -0
- package/dist/sandbox-backend-macos.d.ts.map +1 -0
- package/dist/sandbox-backend-macos.js +66 -0
- package/dist/sandbox-backend-macos.js.map +1 -0
- package/dist/sandbox-backend-windows.d.ts +6 -0
- package/dist/sandbox-backend-windows.d.ts.map +1 -0
- package/dist/sandbox-backend-windows.js +30 -0
- package/dist/sandbox-backend-windows.js.map +1 -0
- package/dist/sandbox-profile.d.ts +53 -0
- package/dist/sandbox-profile.d.ts.map +1 -0
- package/dist/sandbox-profile.js +64 -0
- package/dist/sandbox-profile.js.map +1 -0
- package/dist/schemas/agents-config.d.ts +130 -0
- package/dist/schemas/agents-config.d.ts.map +1 -0
- package/dist/schemas/agents-config.js +153 -0
- package/dist/schemas/agents-config.js.map +1 -0
- package/dist/schemas/arg-validators.d.ts +58 -0
- package/dist/schemas/arg-validators.d.ts.map +1 -0
- package/dist/schemas/arg-validators.js +193 -0
- package/dist/schemas/arg-validators.js.map +1 -0
- package/dist/schemas/cloud-config.d.ts +66 -0
- package/dist/schemas/cloud-config.d.ts.map +1 -0
- package/dist/schemas/cloud-config.js +81 -0
- package/dist/schemas/cloud-config.js.map +1 -0
- package/dist/schemas/command-schemas.d.ts +171 -0
- package/dist/schemas/command-schemas.d.ts.map +1 -0
- package/dist/schemas/command-schemas.js +145 -0
- package/dist/schemas/command-schemas.js.map +1 -0
- package/dist/schemas/directories-config.d.ts +64 -0
- package/dist/schemas/directories-config.d.ts.map +1 -0
- package/dist/schemas/directories-config.js +103 -0
- package/dist/schemas/directories-config.js.map +1 -0
- package/dist/schemas/flow-arg-validators.d.ts +32 -0
- package/dist/schemas/flow-arg-validators.d.ts.map +1 -0
- package/dist/schemas/flow-arg-validators.js +57 -0
- package/dist/schemas/flow-arg-validators.js.map +1 -0
- package/dist/schemas/flow-schemas.d.ts +152 -0
- package/dist/schemas/flow-schemas.d.ts.map +1 -0
- package/dist/schemas/flow-schemas.js +105 -0
- package/dist/schemas/flow-schemas.js.map +1 -0
- package/dist/schemas/gates-section-config.d.ts +94 -0
- package/dist/schemas/gates-section-config.d.ts.map +1 -0
- package/dist/schemas/gates-section-config.js +105 -0
- package/dist/schemas/gates-section-config.js.map +1 -0
- package/dist/schemas/git-config.d.ts +48 -0
- package/dist/schemas/git-config.d.ts.map +1 -0
- package/dist/schemas/git-config.js +157 -0
- package/dist/schemas/git-config.js.map +1 -0
- package/dist/schemas/index.d.ts +33 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +96 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/initiative-arg-validators.d.ts +64 -0
- package/dist/schemas/initiative-arg-validators.d.ts.map +1 -0
- package/dist/schemas/initiative-arg-validators.js +65 -0
- package/dist/schemas/initiative-arg-validators.js.map +1 -0
- package/dist/schemas/initiative-schemas.d.ts +256 -0
- package/dist/schemas/initiative-schemas.d.ts.map +1 -0
- package/dist/schemas/initiative-schemas.js +186 -0
- package/dist/schemas/initiative-schemas.js.map +1 -0
- package/dist/schemas/lanes-config.d.ts +153 -0
- package/dist/schemas/lanes-config.d.ts.map +1 -0
- package/dist/schemas/lanes-config.js +125 -0
- package/dist/schemas/lanes-config.js.map +1 -0
- package/dist/schemas/memory-arg-validators.d.ts +91 -0
- package/dist/schemas/memory-arg-validators.d.ts.map +1 -0
- package/dist/schemas/memory-arg-validators.js +75 -0
- package/dist/schemas/memory-arg-validators.js.map +1 -0
- package/dist/schemas/memory-config.d.ts +169 -0
- package/dist/schemas/memory-config.d.ts.map +1 -0
- package/dist/schemas/memory-config.js +253 -0
- package/dist/schemas/memory-config.js.map +1 -0
- package/dist/schemas/memory-schemas.d.ts +287 -0
- package/dist/schemas/memory-schemas.d.ts.map +1 -0
- package/dist/schemas/memory-schemas.js +242 -0
- package/dist/schemas/memory-schemas.js.map +1 -0
- package/dist/schemas/operational-config.d.ts +145 -0
- package/dist/schemas/operational-config.d.ts.map +1 -0
- package/dist/schemas/operational-config.js +161 -0
- package/dist/schemas/operational-config.js.map +1 -0
- package/dist/schemas/schema-utils.d.ts +87 -0
- package/dist/schemas/schema-utils.d.ts.map +1 -0
- package/dist/schemas/schema-utils.js +320 -0
- package/dist/schemas/schema-utils.js.map +1 -0
- package/dist/schemas/setup-arg-validators.d.ts +91 -0
- package/dist/schemas/setup-arg-validators.d.ts.map +1 -0
- package/dist/schemas/setup-arg-validators.js +98 -0
- package/dist/schemas/setup-arg-validators.js.map +1 -0
- package/dist/schemas/setup-schemas.d.ts +335 -0
- package/dist/schemas/setup-schemas.d.ts.map +1 -0
- package/dist/schemas/setup-schemas.js +260 -0
- package/dist/schemas/setup-schemas.js.map +1 -0
- package/dist/schemas/validation-arg-validators.d.ts +18 -0
- package/dist/schemas/validation-arg-validators.d.ts.map +1 -0
- package/dist/schemas/validation-arg-validators.js +59 -0
- package/dist/schemas/validation-arg-validators.js.map +1 -0
- package/dist/schemas/validation-schemas.d.ts +80 -0
- package/dist/schemas/validation-schemas.d.ts.map +1 -0
- package/dist/schemas/validation-schemas.js +88 -0
- package/dist/schemas/validation-schemas.js.map +1 -0
- package/dist/schemas/workspace-config.d.ts +48 -0
- package/dist/schemas/workspace-config.d.ts.map +1 -0
- package/dist/schemas/workspace-config.js +33 -0
- package/dist/schemas/workspace-config.js.map +1 -0
- package/dist/schemas/wu-config.d.ts +21 -0
- package/dist/schemas/wu-config.d.ts.map +1 -0
- package/dist/schemas/wu-config.js +28 -0
- package/dist/schemas/wu-config.js.map +1 -0
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts +118 -0
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts.map +1 -0
- package/dist/schemas/wu-lifecycle-arg-validators.js +82 -0
- package/dist/schemas/wu-lifecycle-arg-validators.js.map +1 -0
- package/dist/schemas/wu-lifecycle-schemas.d.ts +362 -0
- package/dist/schemas/wu-lifecycle-schemas.d.ts.map +1 -0
- package/dist/schemas/wu-lifecycle-schemas.js +284 -0
- package/dist/schemas/wu-lifecycle-schemas.js.map +1 -0
- package/dist/section-headings.d.ts +35 -0
- package/dist/section-headings.d.ts.map +1 -0
- package/dist/section-headings.js +54 -0
- package/dist/section-headings.js.map +1 -0
- package/dist/spawn-agent-guidance.d.ts +90 -0
- package/dist/spawn-agent-guidance.d.ts.map +1 -0
- package/dist/spawn-agent-guidance.js +431 -0
- package/dist/spawn-agent-guidance.js.map +1 -0
- package/dist/spawn-constraints-generator.d.ts +30 -0
- package/dist/spawn-constraints-generator.d.ts.map +1 -0
- package/dist/spawn-constraints-generator.js +121 -0
- package/dist/spawn-constraints-generator.js.map +1 -0
- package/dist/spawn-guidance-generators.d.ts +47 -0
- package/dist/spawn-guidance-generators.d.ts.map +1 -0
- package/dist/spawn-guidance-generators.js +346 -0
- package/dist/spawn-guidance-generators.js.map +1 -0
- package/dist/spawn-policy-resolver.d.ts +26 -0
- package/dist/spawn-policy-resolver.d.ts.map +1 -0
- package/dist/spawn-policy-resolver.js +31 -0
- package/dist/spawn-policy-resolver.js.map +1 -0
- package/dist/spawn-prompt-helpers.d.ts +45 -0
- package/dist/spawn-prompt-helpers.d.ts.map +1 -0
- package/dist/spawn-prompt-helpers.js +271 -0
- package/dist/spawn-prompt-helpers.js.map +1 -0
- package/dist/spawn-prompt-schema.d.ts +107 -0
- package/dist/spawn-prompt-schema.d.ts.map +1 -0
- package/dist/spawn-prompt-schema.js +163 -0
- package/dist/spawn-prompt-schema.js.map +1 -0
- package/dist/spawn-strategy.d.ts +60 -0
- package/dist/spawn-strategy.d.ts.map +1 -0
- package/dist/spawn-strategy.js +112 -0
- package/dist/spawn-strategy.js.map +1 -0
- package/dist/spawn-task-builder.d.ts +68 -0
- package/dist/spawn-task-builder.d.ts.map +1 -0
- package/dist/spawn-task-builder.js +356 -0
- package/dist/spawn-task-builder.js.map +1 -0
- package/dist/spawn-template-assembler.d.ts +65 -0
- package/dist/spawn-template-assembler.d.ts.map +1 -0
- package/dist/spawn-template-assembler.js +111 -0
- package/dist/spawn-template-assembler.js.map +1 -0
- package/dist/stamp-status-validator.d.ts +77 -0
- package/dist/stamp-status-validator.d.ts.map +1 -0
- package/dist/stamp-status-validator.js +138 -0
- package/dist/stamp-status-validator.js.map +1 -0
- package/dist/stamp-tracking.d.ts +12 -0
- package/dist/stamp-tracking.d.ts.map +1 -0
- package/dist/stamp-tracking.js +43 -0
- package/dist/stamp-tracking.js.map +1 -0
- package/dist/stamp-utils.d.ts +94 -0
- package/dist/stamp-utils.d.ts.map +1 -0
- package/dist/stamp-utils.js +245 -0
- package/dist/stamp-utils.js.map +1 -0
- package/dist/state-cleanup-core.d.ts +206 -0
- package/dist/state-cleanup-core.d.ts.map +1 -0
- package/dist/state-cleanup-core.js +225 -0
- package/dist/state-cleanup-core.js.map +1 -0
- package/dist/state-doctor-core.d.ts +177 -0
- package/dist/state-doctor-core.d.ts.map +1 -0
- package/dist/state-doctor-core.js +420 -0
- package/dist/state-doctor-core.js.map +1 -0
- package/dist/state-machine.d.ts +10 -0
- package/dist/state-machine.d.ts.map +1 -0
- package/dist/state-machine.js +89 -0
- package/dist/state-machine.js.map +1 -0
- package/dist/stream-error-handler.d.ts +69 -0
- package/dist/stream-error-handler.d.ts.map +1 -0
- package/dist/stream-error-handler.js +80 -0
- package/dist/stream-error-handler.js.map +1 -0
- package/dist/telemetry.d.ts +81 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +219 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/template-loader.d.ts +151 -0
- package/dist/template-loader.d.ts.map +1 -0
- package/dist/template-loader.js +400 -0
- package/dist/template-loader.js.map +1 -0
- package/dist/test-baseline.d.ts +177 -0
- package/dist/test-baseline.d.ts.map +1 -0
- package/dist/test-baseline.js +286 -0
- package/dist/test-baseline.js.map +1 -0
- package/dist/token-counter.d.ts +50 -0
- package/dist/token-counter.d.ts.map +1 -0
- package/dist/token-counter.js +144 -0
- package/dist/token-counter.js.map +1 -0
- package/dist/usecases/analyze-recovery.usecase.d.ts +43 -0
- package/dist/usecases/analyze-recovery.usecase.d.ts.map +1 -0
- package/dist/usecases/analyze-recovery.usecase.js +34 -0
- package/dist/usecases/analyze-recovery.usecase.js.map +1 -0
- package/dist/usecases/compute-context.usecase.d.ts +63 -0
- package/dist/usecases/compute-context.usecase.d.ts.map +1 -0
- package/dist/usecases/compute-context.usecase.js +91 -0
- package/dist/usecases/compute-context.usecase.js.map +1 -0
- package/dist/usecases/get-dashboard-data.usecase.d.ts +53 -0
- package/dist/usecases/get-dashboard-data.usecase.d.ts.map +1 -0
- package/dist/usecases/get-dashboard-data.usecase.js +54 -0
- package/dist/usecases/get-dashboard-data.usecase.js.map +1 -0
- package/dist/usecases/get-suggestions.usecase.d.ts +101 -0
- package/dist/usecases/get-suggestions.usecase.d.ts.map +1 -0
- package/dist/usecases/get-suggestions.usecase.js +148 -0
- package/dist/usecases/get-suggestions.usecase.js.map +1 -0
- package/dist/usecases/index.d.ts +15 -0
- package/dist/usecases/index.d.ts.map +1 -0
- package/dist/usecases/index.js +21 -0
- package/dist/usecases/index.js.map +1 -0
- package/dist/usecases/validate-command.usecase.d.ts +56 -0
- package/dist/usecases/validate-command.usecase.d.ts.map +1 -0
- package/dist/usecases/validate-command.usecase.js +143 -0
- package/dist/usecases/validate-command.usecase.js.map +1 -0
- package/dist/user-normalizer.d.ts +36 -0
- package/dist/user-normalizer.d.ts.map +1 -0
- package/dist/user-normalizer.js +177 -0
- package/dist/user-normalizer.js.map +1 -0
- package/dist/validation/command-registry.d.ts +26 -0
- package/dist/validation/command-registry.d.ts.map +1 -0
- package/dist/validation/command-registry.js +269 -0
- package/dist/validation/command-registry.js.map +1 -0
- package/dist/validation/index.d.ts +16 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +18 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/types.d.ts +140 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +4 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/validate-command.d.ts +16 -0
- package/dist/validation/validate-command.d.ts.map +1 -0
- package/dist/validation/validate-command.js +163 -0
- package/dist/validation/validate-command.js.map +1 -0
- package/dist/validators/backlog-sync.d.ts +11 -0
- package/dist/validators/backlog-sync.d.ts.map +1 -0
- package/dist/validators/backlog-sync.js +65 -0
- package/dist/validators/backlog-sync.js.map +1 -0
- package/dist/validators/claim-validation.d.ts +46 -0
- package/dist/validators/claim-validation.d.ts.map +1 -0
- package/dist/validators/claim-validation.js +491 -0
- package/dist/validators/claim-validation.js.map +1 -0
- package/dist/validators/supabase-docs-linter.d.ts +15 -0
- package/dist/validators/supabase-docs-linter.d.ts.map +1 -0
- package/dist/validators/supabase-docs-linter.js +45 -0
- package/dist/validators/supabase-docs-linter.js.map +1 -0
- package/dist/validators/wu-tasks.d.ts +21 -0
- package/dist/validators/wu-tasks.d.ts.map +1 -0
- package/dist/validators/wu-tasks.js +93 -0
- package/dist/validators/wu-tasks.js.map +1 -0
- package/dist/work-classifier.d.ts +95 -0
- package/dist/work-classifier.d.ts.map +1 -0
- package/dist/work-classifier.js +407 -0
- package/dist/work-classifier.js.map +1 -0
- package/dist/worktree-ownership.d.ts +51 -0
- package/dist/worktree-ownership.d.ts.map +1 -0
- package/dist/worktree-ownership.js +77 -0
- package/dist/worktree-ownership.js.map +1 -0
- package/dist/worktree-scanner.d.ts +118 -0
- package/dist/worktree-scanner.d.ts.map +1 -0
- package/dist/worktree-scanner.js +171 -0
- package/dist/worktree-scanner.js.map +1 -0
- package/dist/worktree-symlink.d.ts +98 -0
- package/dist/worktree-symlink.d.ts.map +1 -0
- package/dist/worktree-symlink.js +530 -0
- package/dist/worktree-symlink.js.map +1 -0
- package/dist/wu-backlog-updater.d.ts +10 -0
- package/dist/wu-backlog-updater.d.ts.map +1 -0
- package/dist/wu-backlog-updater.js +40 -0
- package/dist/wu-backlog-updater.js.map +1 -0
- package/dist/wu-checkpoint.d.ts +110 -0
- package/dist/wu-checkpoint.d.ts.map +1 -0
- package/dist/wu-checkpoint.js +238 -0
- package/dist/wu-checkpoint.js.map +1 -0
- package/dist/wu-claim-helpers.d.ts +21 -0
- package/dist/wu-claim-helpers.d.ts.map +1 -0
- package/dist/wu-claim-helpers.js +66 -0
- package/dist/wu-claim-helpers.js.map +1 -0
- package/dist/wu-claim-resume.d.ts +106 -0
- package/dist/wu-claim-resume.d.ts.map +1 -0
- package/dist/wu-claim-resume.js +279 -0
- package/dist/wu-claim-resume.js.map +1 -0
- package/dist/wu-cli-constants.d.ts +427 -0
- package/dist/wu-cli-constants.d.ts.map +1 -0
- package/dist/wu-cli-constants.js +432 -0
- package/dist/wu-cli-constants.js.map +1 -0
- package/dist/wu-consistency-checker.d.ts +23 -0
- package/dist/wu-consistency-checker.d.ts.map +1 -0
- package/dist/wu-consistency-checker.js +24 -0
- package/dist/wu-consistency-checker.js.map +1 -0
- package/dist/wu-consistency-detector.d.ts +94 -0
- package/dist/wu-consistency-detector.d.ts.map +1 -0
- package/dist/wu-consistency-detector.js +410 -0
- package/dist/wu-consistency-detector.js.map +1 -0
- package/dist/wu-consistency-file-repairs.d.ts +75 -0
- package/dist/wu-consistency-file-repairs.d.ts.map +1 -0
- package/dist/wu-consistency-file-repairs.js +326 -0
- package/dist/wu-consistency-file-repairs.js.map +1 -0
- package/dist/wu-constants.d.ts +29 -0
- package/dist/wu-constants.d.ts.map +1 -0
- package/dist/wu-constants.js +37 -0
- package/dist/wu-constants.js.map +1 -0
- package/dist/wu-context-constants.d.ts +270 -0
- package/dist/wu-context-constants.d.ts.map +1 -0
- package/dist/wu-context-constants.js +267 -0
- package/dist/wu-context-constants.js.map +1 -0
- package/dist/wu-create-defaults.d.ts +11 -0
- package/dist/wu-create-defaults.d.ts.map +1 -0
- package/dist/wu-create-defaults.js +13 -0
- package/dist/wu-create-defaults.js.map +1 -0
- package/dist/wu-create-validators.d.ts +89 -0
- package/dist/wu-create-validators.d.ts.map +1 -0
- package/dist/wu-create-validators.js +215 -0
- package/dist/wu-create-validators.js.map +1 -0
- package/dist/wu-delegation-cutover.d.ts +5 -0
- package/dist/wu-delegation-cutover.d.ts.map +1 -0
- package/dist/wu-delegation-cutover.js +231 -0
- package/dist/wu-delegation-cutover.js.map +1 -0
- package/dist/wu-doc-types.d.ts +48 -0
- package/dist/wu-doc-types.d.ts.map +1 -0
- package/dist/wu-doc-types.js +4 -0
- package/dist/wu-doc-types.js.map +1 -0
- package/dist/wu-domain-constants.d.ts +295 -0
- package/dist/wu-domain-constants.d.ts.map +1 -0
- package/dist/wu-domain-constants.js +399 -0
- package/dist/wu-domain-constants.js.map +1 -0
- package/dist/wu-done-branch-only.d.ts +120 -0
- package/dist/wu-done-branch-only.d.ts.map +1 -0
- package/dist/wu-done-branch-only.js +412 -0
- package/dist/wu-done-branch-only.js.map +1 -0
- package/dist/wu-done-branch-utils.d.ts +8 -0
- package/dist/wu-done-branch-utils.d.ts.map +1 -0
- package/dist/wu-done-branch-utils.js +34 -0
- package/dist/wu-done-branch-utils.js.map +1 -0
- package/dist/wu-done-cleanup.d.ts +6 -0
- package/dist/wu-done-cleanup.d.ts.map +1 -0
- package/dist/wu-done-cleanup.js +161 -0
- package/dist/wu-done-cleanup.js.map +1 -0
- package/dist/wu-done-concurrent-merge.d.ts +103 -0
- package/dist/wu-done-concurrent-merge.d.ts.map +1 -0
- package/dist/wu-done-concurrent-merge.js +375 -0
- package/dist/wu-done-concurrent-merge.js.map +1 -0
- package/dist/wu-done-docs-generate.d.ts +72 -0
- package/dist/wu-done-docs-generate.d.ts.map +1 -0
- package/dist/wu-done-docs-generate.js +129 -0
- package/dist/wu-done-docs-generate.js.map +1 -0
- package/dist/wu-done-docs-only.d.ts +16 -0
- package/dist/wu-done-docs-only.d.ts.map +1 -0
- package/dist/wu-done-docs-only.js +68 -0
- package/dist/wu-done-docs-only.js.map +1 -0
- package/dist/wu-done-error-handling.d.ts +35 -0
- package/dist/wu-done-error-handling.d.ts.map +1 -0
- package/dist/wu-done-error-handling.js +109 -0
- package/dist/wu-done-error-handling.js.map +1 -0
- package/dist/wu-done-errors.d.ts +13 -0
- package/dist/wu-done-errors.d.ts.map +1 -0
- package/dist/wu-done-errors.js +27 -0
- package/dist/wu-done-errors.js.map +1 -0
- package/dist/wu-done-initiative-sync.d.ts +13 -0
- package/dist/wu-done-initiative-sync.d.ts.map +1 -0
- package/dist/wu-done-initiative-sync.js +235 -0
- package/dist/wu-done-initiative-sync.js.map +1 -0
- package/dist/wu-done-inputs.d.ts +10 -0
- package/dist/wu-done-inputs.d.ts.map +1 -0
- package/dist/wu-done-inputs.js +55 -0
- package/dist/wu-done-inputs.js.map +1 -0
- package/dist/wu-done-machine.d.ts +175 -0
- package/dist/wu-done-machine.d.ts.map +1 -0
- package/dist/wu-done-machine.js +227 -0
- package/dist/wu-done-machine.js.map +1 -0
- package/dist/wu-done-main-sync.d.ts +36 -0
- package/dist/wu-done-main-sync.d.ts.map +1 -0
- package/dist/wu-done-main-sync.js +67 -0
- package/dist/wu-done-main-sync.js.map +1 -0
- package/dist/wu-done-merge-phase.d.ts +49 -0
- package/dist/wu-done-merge-phase.d.ts.map +1 -0
- package/dist/wu-done-merge-phase.js +121 -0
- package/dist/wu-done-merge-phase.js.map +1 -0
- package/dist/wu-done-merge.d.ts +46 -0
- package/dist/wu-done-merge.d.ts.map +1 -0
- package/dist/wu-done-merge.js +123 -0
- package/dist/wu-done-merge.js.map +1 -0
- package/dist/wu-done-merged-worktree.d.ts +65 -0
- package/dist/wu-done-merged-worktree.d.ts.map +1 -0
- package/dist/wu-done-merged-worktree.js +197 -0
- package/dist/wu-done-merged-worktree.js.map +1 -0
- package/dist/wu-done-messages.d.ts +120 -0
- package/dist/wu-done-messages.d.ts.map +1 -0
- package/dist/wu-done-messages.js +191 -0
- package/dist/wu-done-messages.js.map +1 -0
- package/dist/wu-done-metadata.d.ts +123 -0
- package/dist/wu-done-metadata.d.ts.map +1 -0
- package/dist/wu-done-metadata.js +240 -0
- package/dist/wu-done-metadata.js.map +1 -0
- package/dist/wu-done-paths.d.ts +79 -0
- package/dist/wu-done-paths.d.ts.map +1 -0
- package/dist/wu-done-paths.js +263 -0
- package/dist/wu-done-paths.js.map +1 -0
- package/dist/wu-done-pr.d.ts +76 -0
- package/dist/wu-done-pr.d.ts.map +1 -0
- package/dist/wu-done-pr.js +189 -0
- package/dist/wu-done-pr.js.map +1 -0
- package/dist/wu-done-preflight-checks.d.ts +66 -0
- package/dist/wu-done-preflight-checks.d.ts.map +1 -0
- package/dist/wu-done-preflight-checks.js +275 -0
- package/dist/wu-done-preflight-checks.js.map +1 -0
- package/dist/wu-done-preflight.d.ts +65 -0
- package/dist/wu-done-preflight.d.ts.map +1 -0
- package/dist/wu-done-preflight.js +205 -0
- package/dist/wu-done-preflight.js.map +1 -0
- package/dist/wu-done-rebase.d.ts +44 -0
- package/dist/wu-done-rebase.d.ts.map +1 -0
- package/dist/wu-done-rebase.js +360 -0
- package/dist/wu-done-rebase.js.map +1 -0
- package/dist/wu-done-retry-helpers.d.ts +75 -0
- package/dist/wu-done-retry-helpers.d.ts.map +1 -0
- package/dist/wu-done-retry-helpers.js +175 -0
- package/dist/wu-done-retry-helpers.js.map +1 -0
- package/dist/wu-done-ui.d.ts +29 -0
- package/dist/wu-done-ui.d.ts.map +1 -0
- package/dist/wu-done-ui.js +74 -0
- package/dist/wu-done-ui.js.map +1 -0
- package/dist/wu-done-utils.d.ts +31 -0
- package/dist/wu-done-utils.d.ts.map +1 -0
- package/dist/wu-done-utils.js +60 -0
- package/dist/wu-done-utils.js.map +1 -0
- package/dist/wu-done-validation.d.ts +128 -0
- package/dist/wu-done-validation.d.ts.map +1 -0
- package/dist/wu-done-validation.js +553 -0
- package/dist/wu-done-validation.js.map +1 -0
- package/dist/wu-done-validators.d.ts +16 -0
- package/dist/wu-done-validators.d.ts.map +1 -0
- package/dist/wu-done-validators.js +16 -0
- package/dist/wu-done-validators.js.map +1 -0
- package/dist/wu-done-worktree-services.d.ts +174 -0
- package/dist/wu-done-worktree-services.d.ts.map +1 -0
- package/dist/wu-done-worktree-services.js +274 -0
- package/dist/wu-done-worktree-services.js.map +1 -0
- package/dist/wu-done-worktree.d.ts +71 -0
- package/dist/wu-done-worktree.d.ts.map +1 -0
- package/dist/wu-done-worktree.js +243 -0
- package/dist/wu-done-worktree.js.map +1 -0
- package/dist/wu-done-zombie-recovery.d.ts +18 -0
- package/dist/wu-done-zombie-recovery.d.ts.map +1 -0
- package/dist/wu-done-zombie-recovery.js +84 -0
- package/dist/wu-done-zombie-recovery.js.map +1 -0
- package/dist/wu-event-sourcer.d.ts +44 -0
- package/dist/wu-event-sourcer.d.ts.map +1 -0
- package/dist/wu-event-sourcer.js +135 -0
- package/dist/wu-event-sourcer.js.map +1 -0
- package/dist/wu-events-cleanup.d.ts +131 -0
- package/dist/wu-events-cleanup.d.ts.map +1 -0
- package/dist/wu-events-cleanup.js +403 -0
- package/dist/wu-events-cleanup.js.map +1 -0
- package/dist/wu-git-constants.d.ts +176 -0
- package/dist/wu-git-constants.d.ts.map +1 -0
- package/dist/wu-git-constants.js +178 -0
- package/dist/wu-git-constants.js.map +1 -0
- package/dist/wu-helpers.d.ts +133 -0
- package/dist/wu-helpers.d.ts.map +1 -0
- package/dist/wu-helpers.js +268 -0
- package/dist/wu-helpers.js.map +1 -0
- package/dist/wu-id-generator.d.ts +51 -0
- package/dist/wu-id-generator.d.ts.map +1 -0
- package/dist/wu-id-generator.js +110 -0
- package/dist/wu-id-generator.js.map +1 -0
- package/dist/wu-inconsistency-repairer.d.ts +69 -0
- package/dist/wu-inconsistency-repairer.d.ts.map +1 -0
- package/dist/wu-inconsistency-repairer.js +271 -0
- package/dist/wu-inconsistency-repairer.js.map +1 -0
- package/dist/wu-lint.d.ts +191 -0
- package/dist/wu-lint.d.ts.map +1 -0
- package/dist/wu-lint.js +338 -0
- package/dist/wu-lint.js.map +1 -0
- package/dist/wu-list.d.ts +76 -0
- package/dist/wu-list.d.ts.map +1 -0
- package/dist/wu-list.js +181 -0
- package/dist/wu-list.js.map +1 -0
- package/dist/wu-lock-manager.d.ts +28 -0
- package/dist/wu-lock-manager.d.ts.map +1 -0
- package/dist/wu-lock-manager.js +164 -0
- package/dist/wu-lock-manager.js.map +1 -0
- package/dist/wu-paths-constants.d.ts +264 -0
- package/dist/wu-paths-constants.d.ts.map +1 -0
- package/dist/wu-paths-constants.js +273 -0
- package/dist/wu-paths-constants.js.map +1 -0
- package/dist/wu-paths.d.ts +211 -0
- package/dist/wu-paths.d.ts.map +1 -0
- package/dist/wu-paths.js +223 -0
- package/dist/wu-paths.js.map +1 -0
- package/dist/wu-preflight-validators.d.ts +64 -0
- package/dist/wu-preflight-validators.d.ts.map +1 -0
- package/dist/wu-preflight-validators.js +277 -0
- package/dist/wu-preflight-validators.js.map +1 -0
- package/dist/wu-recovery.d.ts +220 -0
- package/dist/wu-recovery.d.ts.map +1 -0
- package/dist/wu-recovery.js +470 -0
- package/dist/wu-recovery.js.map +1 -0
- package/dist/wu-repair-core.d.ts +137 -0
- package/dist/wu-repair-core.d.ts.map +1 -0
- package/dist/wu-repair-core.js +719 -0
- package/dist/wu-repair-core.js.map +1 -0
- package/dist/wu-repair-service.d.ts +22 -0
- package/dist/wu-repair-service.d.ts.map +1 -0
- package/dist/wu-repair-service.js +131 -0
- package/dist/wu-repair-service.js.map +1 -0
- package/dist/wu-rules-core.d.ts +95 -0
- package/dist/wu-rules-core.d.ts.map +1 -0
- package/dist/wu-rules-core.js +401 -0
- package/dist/wu-rules-core.js.map +1 -0
- package/dist/wu-rules-engine.d.ts +29 -0
- package/dist/wu-rules-engine.d.ts.map +1 -0
- package/dist/wu-rules-engine.js +61 -0
- package/dist/wu-rules-engine.js.map +1 -0
- package/dist/wu-rules-resolvers.d.ts +19 -0
- package/dist/wu-rules-resolvers.d.ts.map +1 -0
- package/dist/wu-rules-resolvers.js +229 -0
- package/dist/wu-rules-resolvers.js.map +1 -0
- package/dist/wu-schema-normalization.d.ts +18 -0
- package/dist/wu-schema-normalization.d.ts.map +1 -0
- package/dist/wu-schema-normalization.js +87 -0
- package/dist/wu-schema-normalization.js.map +1 -0
- package/dist/wu-schema.d.ts +772 -0
- package/dist/wu-schema.d.ts.map +1 -0
- package/dist/wu-schema.js +897 -0
- package/dist/wu-schema.js.map +1 -0
- package/dist/wu-spawn-context.d.ts +66 -0
- package/dist/wu-spawn-context.d.ts.map +1 -0
- package/dist/wu-spawn-context.js +185 -0
- package/dist/wu-spawn-context.js.map +1 -0
- package/dist/wu-spawn-helpers.d.ts +110 -0
- package/dist/wu-spawn-helpers.d.ts.map +1 -0
- package/dist/wu-spawn-helpers.js +276 -0
- package/dist/wu-spawn-helpers.js.map +1 -0
- package/dist/wu-spawn-skills.d.ts +39 -0
- package/dist/wu-spawn-skills.d.ts.map +1 -0
- package/dist/wu-spawn-skills.js +214 -0
- package/dist/wu-spawn-skills.js.map +1 -0
- package/dist/wu-spawn.d.ts +33 -0
- package/dist/wu-spawn.d.ts.map +1 -0
- package/dist/wu-spawn.js +212 -0
- package/dist/wu-spawn.js.map +1 -0
- package/dist/wu-state-indexer.d.ts +49 -0
- package/dist/wu-state-indexer.d.ts.map +1 -0
- package/dist/wu-state-indexer.js +156 -0
- package/dist/wu-state-indexer.js.map +1 -0
- package/dist/wu-state-schema.d.ts +253 -0
- package/dist/wu-state-schema.d.ts.map +1 -0
- package/dist/wu-state-schema.js +188 -0
- package/dist/wu-state-schema.js.map +1 -0
- package/dist/wu-state-store.d.ts +64 -0
- package/dist/wu-state-store.d.ts.map +1 -0
- package/dist/wu-state-store.js +171 -0
- package/dist/wu-state-store.js.map +1 -0
- package/dist/wu-status-transition.d.ts +58 -0
- package/dist/wu-status-transition.d.ts.map +1 -0
- package/dist/wu-status-transition.js +370 -0
- package/dist/wu-status-transition.js.map +1 -0
- package/dist/wu-status-updater.d.ts +18 -0
- package/dist/wu-status-updater.d.ts.map +1 -0
- package/dist/wu-status-updater.js +123 -0
- package/dist/wu-status-updater.js.map +1 -0
- package/dist/wu-statuses.d.ts +154 -0
- package/dist/wu-statuses.d.ts.map +1 -0
- package/dist/wu-statuses.js +176 -0
- package/dist/wu-statuses.js.map +1 -0
- package/dist/wu-transaction-collectors.d.ts +111 -0
- package/dist/wu-transaction-collectors.d.ts.map +1 -0
- package/dist/wu-transaction-collectors.js +273 -0
- package/dist/wu-transaction-collectors.js.map +1 -0
- package/dist/wu-transaction.d.ts +172 -0
- package/dist/wu-transaction.d.ts.map +1 -0
- package/dist/wu-transaction.js +288 -0
- package/dist/wu-transaction.js.map +1 -0
- package/dist/wu-type-helpers.d.ts +26 -0
- package/dist/wu-type-helpers.d.ts.map +1 -0
- package/dist/wu-type-helpers.js +45 -0
- package/dist/wu-type-helpers.js.map +1 -0
- package/dist/wu-ui-constants.d.ts +235 -0
- package/dist/wu-ui-constants.d.ts.map +1 -0
- package/dist/wu-ui-constants.js +237 -0
- package/dist/wu-ui-constants.js.map +1 -0
- package/dist/wu-validation-constants.d.ts +61 -0
- package/dist/wu-validation-constants.d.ts.map +1 -0
- package/dist/wu-validation-constants.js +69 -0
- package/dist/wu-validation-constants.js.map +1 -0
- package/dist/wu-validation.d.ts +121 -0
- package/dist/wu-validation.d.ts.map +1 -0
- package/dist/wu-validation.js +266 -0
- package/dist/wu-validation.js.map +1 -0
- package/dist/wu-validator.d.ts +128 -0
- package/dist/wu-validator.d.ts.map +1 -0
- package/dist/wu-validator.js +447 -0
- package/dist/wu-validator.js.map +1 -0
- package/dist/wu-yaml-fixer.d.ts +74 -0
- package/dist/wu-yaml-fixer.d.ts.map +1 -0
- package/dist/wu-yaml-fixer.js +273 -0
- package/dist/wu-yaml-fixer.js.map +1 -0
- package/dist/wu-yaml.d.ts +110 -0
- package/dist/wu-yaml.d.ts.map +1 -0
- package/dist/wu-yaml.js +300 -0
- package/dist/wu-yaml.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WU-1335: Maximum number of recovery attempts before escalating to manual intervention
|
|
3
|
+
* WU-1747: Now derived from the recovery retry preset for consistency
|
|
4
|
+
*/
|
|
5
|
+
export declare const MAX_RECOVERY_ATTEMPTS: 4;
|
|
6
|
+
interface RecoveryDoc extends Record<string, unknown> {
|
|
7
|
+
title?: string;
|
|
8
|
+
status?: string;
|
|
9
|
+
locked?: boolean;
|
|
10
|
+
completed_at?: string;
|
|
11
|
+
completed?: string | boolean;
|
|
12
|
+
}
|
|
13
|
+
interface ResetWorktreeYAMLForRecoveryParams {
|
|
14
|
+
worktreePath: string;
|
|
15
|
+
id: string;
|
|
16
|
+
doc: RecoveryDoc;
|
|
17
|
+
}
|
|
18
|
+
interface RecoverZombieStateParams {
|
|
19
|
+
id: string;
|
|
20
|
+
doc: RecoveryDoc;
|
|
21
|
+
_worktreePath?: string;
|
|
22
|
+
_args?: unknown;
|
|
23
|
+
}
|
|
24
|
+
interface RecoverZombieStateResults {
|
|
25
|
+
stamp: {
|
|
26
|
+
created: boolean;
|
|
27
|
+
path: string;
|
|
28
|
+
reason?: string;
|
|
29
|
+
} | null;
|
|
30
|
+
yaml: {
|
|
31
|
+
updated: boolean;
|
|
32
|
+
reason?: string;
|
|
33
|
+
} | null;
|
|
34
|
+
docs: {
|
|
35
|
+
status: unknown | null;
|
|
36
|
+
backlog: unknown | null;
|
|
37
|
+
};
|
|
38
|
+
commit?: {
|
|
39
|
+
committed: boolean;
|
|
40
|
+
reason?: string;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* WU-1335: Get the path to the recovery marker file for a WU
|
|
45
|
+
*
|
|
46
|
+
* @param {string} id - WU ID
|
|
47
|
+
* @param {string} [baseDir=process.cwd()] - Base directory for .lumenflow
|
|
48
|
+
* @returns {string} Path to recovery marker file
|
|
49
|
+
*/
|
|
50
|
+
export declare function getRecoveryMarkerPath(id: string, baseDir?: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* WU-1335: Get the current recovery attempt count for a WU
|
|
53
|
+
*
|
|
54
|
+
* @param {string} id - WU ID
|
|
55
|
+
* @param {string} [baseDir=process.cwd()] - Base directory for .lumenflow
|
|
56
|
+
* @returns {number} Current attempt count (0 if no marker exists)
|
|
57
|
+
*/
|
|
58
|
+
export declare function getRecoveryAttemptCount(id: string, baseDir?: string): number;
|
|
59
|
+
/**
|
|
60
|
+
* WU-1335: Increment recovery attempt count for a WU
|
|
61
|
+
*
|
|
62
|
+
* @param {string} id - WU ID
|
|
63
|
+
* @param {string} [baseDir=process.cwd()] - Base directory for .lumenflow
|
|
64
|
+
* @returns {number} New attempt count
|
|
65
|
+
*/
|
|
66
|
+
export declare function incrementRecoveryAttempt(id: string, baseDir?: string): number;
|
|
67
|
+
/**
|
|
68
|
+
* WU-1335: Clear recovery attempts for a WU (called on successful recovery)
|
|
69
|
+
*
|
|
70
|
+
* @param {string} id - WU ID
|
|
71
|
+
* @param {string} [baseDir=process.cwd()] - Base directory for .lumenflow
|
|
72
|
+
*/
|
|
73
|
+
export declare function clearRecoveryAttempts(id: string, baseDir?: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* WU-1335: Check if recovery should escalate to manual intervention
|
|
76
|
+
*
|
|
77
|
+
* @param {number} attempts - Current attempt count
|
|
78
|
+
* @returns {boolean} True if should escalate
|
|
79
|
+
*/
|
|
80
|
+
export declare function shouldEscalateToManualIntervention(attempts: number): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Detect zombie state
|
|
83
|
+
*
|
|
84
|
+
* @param {object} doc - WU YAML document
|
|
85
|
+
* @param {string|null} worktreePath - Path to worktree
|
|
86
|
+
* @returns {boolean} True if zombie state detected
|
|
87
|
+
*/
|
|
88
|
+
export declare function detectZombieState(doc: {
|
|
89
|
+
status?: string;
|
|
90
|
+
}, worktreePath: string | null): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* WU-1440: Reset worktree WU YAML to in_progress for recovery
|
|
93
|
+
*
|
|
94
|
+
* Instead of committing directly to main (old recovery mode), this function
|
|
95
|
+
* resets the worktree YAML so the normal wu:done merge flow can proceed.
|
|
96
|
+
*
|
|
97
|
+
* Removes completion markers:
|
|
98
|
+
* - status → in_progress
|
|
99
|
+
* - locked → removed
|
|
100
|
+
* - completed_at → removed
|
|
101
|
+
*
|
|
102
|
+
* Preserves all other fields (description, acceptance, code_paths, etc.)
|
|
103
|
+
*
|
|
104
|
+
* @param {object} params - Recovery parameters
|
|
105
|
+
* @param {string} params.worktreePath - Path to worktree root
|
|
106
|
+
* @param {string} params.id - WU ID
|
|
107
|
+
* @param {object} params.doc - WU YAML document (will be mutated)
|
|
108
|
+
* @returns {{ reset: boolean }} Reset result
|
|
109
|
+
*/
|
|
110
|
+
export declare function resetWorktreeYAMLForRecovery({ worktreePath, id, doc, }: ResetWorktreeYAMLForRecoveryParams): {
|
|
111
|
+
reset: boolean;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Recover from zombie state
|
|
115
|
+
*
|
|
116
|
+
* THE COMPLETE FIX for WU-1159 gap:
|
|
117
|
+
* - Ensures stamp exists
|
|
118
|
+
* - Ensures YAML completion markers
|
|
119
|
+
* - Ensures status.md updated (THE FIX)
|
|
120
|
+
* - Ensures backlog.md updated (THE FIX)
|
|
121
|
+
*
|
|
122
|
+
* All operations are idempotent - safe to run multiple times
|
|
123
|
+
*
|
|
124
|
+
* WU-1303: Added atomic rollback - if UnsafeAny operation fails, all files are
|
|
125
|
+
* restored to their original state to prevent leaving main checkout dirty.
|
|
126
|
+
*
|
|
127
|
+
* @param {object} params - Recovery parameters
|
|
128
|
+
* @param {string} params.id - WU ID
|
|
129
|
+
* @param {object} params.doc - WU YAML document
|
|
130
|
+
* @param {string} params.worktreePath - Path to worktree
|
|
131
|
+
* @param {object} params.args - Command-line args
|
|
132
|
+
* @returns {object} Recovery results
|
|
133
|
+
*/
|
|
134
|
+
export declare function recoverZombieState({ id, doc, _worktreePath, _args, }: RecoverZombieStateParams): Promise<RecoverZombieStateResults>;
|
|
135
|
+
/**
|
|
136
|
+
* WU-1665: Environment variable key for legacy rollback compatibility guard.
|
|
137
|
+
* When set to "1", the legacy rollback path is used instead of state-machine-driven recovery.
|
|
138
|
+
*/
|
|
139
|
+
export declare const LUMENFLOW_LEGACY_ROLLBACK_ENV_KEY = "LUMENFLOW_LEGACY_ROLLBACK";
|
|
140
|
+
/**
|
|
141
|
+
* WU-1665: Check if legacy rollback mode is enabled via environment variable.
|
|
142
|
+
*
|
|
143
|
+
* During the migration window, operators can set LUMENFLOW_LEGACY_ROLLBACK=1
|
|
144
|
+
* to use the pre-WU-1665 recovery path for rollback operations.
|
|
145
|
+
*
|
|
146
|
+
* @returns {boolean} True if legacy rollback is enabled
|
|
147
|
+
*/
|
|
148
|
+
export declare function isLegacyRollbackEnabled(): boolean;
|
|
149
|
+
/**
|
|
150
|
+
* WU-1665: Rollback scope determined by the pipeline state where failure occurred.
|
|
151
|
+
*
|
|
152
|
+
* Maps each pipeline stage to the recovery actions needed:
|
|
153
|
+
* - validating/preparing: nothing written, no rollback needed
|
|
154
|
+
* - gating: nothing written (gates are read-only checks), no rollback needed
|
|
155
|
+
* - committing: files written to disk, need snapshot restore
|
|
156
|
+
* - merging: committed to worktree branch, need snapshot + branch rollback
|
|
157
|
+
* - pushing: merged but push failed, need snapshot + branch rollback
|
|
158
|
+
* - cleaningUp: push succeeded, only worktree cleanup remains
|
|
159
|
+
*/
|
|
160
|
+
export interface RollbackScope {
|
|
161
|
+
/** Whether file snapshot restore is needed (files were written to disk) */
|
|
162
|
+
snapshotRestore: boolean;
|
|
163
|
+
/** Whether branch-level rollback is needed (commits were made) */
|
|
164
|
+
branchRollback: boolean;
|
|
165
|
+
/** Whether worktree cleanup is the remaining action (push already succeeded) */
|
|
166
|
+
worktreeCleanup: boolean;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* WU-1665: Recovery state from the XState pipeline snapshot.
|
|
170
|
+
*/
|
|
171
|
+
export interface PipelineRecoveryState {
|
|
172
|
+
wuId: string;
|
|
173
|
+
failedAt: string | null;
|
|
174
|
+
error: string | null;
|
|
175
|
+
retryCount: number;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* WU-1665: State-machine-driven recovery manager.
|
|
179
|
+
*
|
|
180
|
+
* Determines rollback scope from the pipeline's failedAt state, replacing
|
|
181
|
+
* the ad-hoc per-function rollback logic scattered across wu-recovery.ts,
|
|
182
|
+
* wu-transaction.ts, and rollback-utils.ts.
|
|
183
|
+
*
|
|
184
|
+
* Usage:
|
|
185
|
+
* ```ts
|
|
186
|
+
* const manager = new StateMachineRecoveryManager({
|
|
187
|
+
* wuId: 'WU-1665',
|
|
188
|
+
* failedAt: 'committing',
|
|
189
|
+
* error: 'git commit failed',
|
|
190
|
+
* retryCount: 0,
|
|
191
|
+
* });
|
|
192
|
+
* const scope = manager.getRollbackScope();
|
|
193
|
+
* // scope.snapshotRestore === true
|
|
194
|
+
* // scope.branchRollback === false
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
export declare class StateMachineRecoveryManager {
|
|
198
|
+
readonly wuId: string;
|
|
199
|
+
readonly failedAt: string | null;
|
|
200
|
+
readonly error: string | null;
|
|
201
|
+
readonly retryCount: number;
|
|
202
|
+
constructor(state: PipelineRecoveryState);
|
|
203
|
+
/**
|
|
204
|
+
* Determine rollback scope based on the pipeline stage where failure occurred.
|
|
205
|
+
*
|
|
206
|
+
* The scope is deterministic: given the same failedAt state, the same
|
|
207
|
+
* rollback actions are always prescribed.
|
|
208
|
+
*/
|
|
209
|
+
getRollbackScope(): RollbackScope;
|
|
210
|
+
/**
|
|
211
|
+
* Serialize recovery state for persistence (e.g., to .lumenflow/recovery/).
|
|
212
|
+
*/
|
|
213
|
+
serialize(): string;
|
|
214
|
+
/**
|
|
215
|
+
* Deserialize recovery state from persisted JSON.
|
|
216
|
+
*/
|
|
217
|
+
static deserialize(json: string): StateMachineRecoveryManager;
|
|
218
|
+
}
|
|
219
|
+
export {};
|
|
220
|
+
//# sourceMappingURL=wu-recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wu-recovery.d.ts","sourceRoot":"","sources":["../src/wu-recovery.ts"],"names":[],"mappings":"AAwCA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAqC,CAAC;AA4BxE,UAAU,WAAY,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED,UAAU,kCAAkC;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,UAAU,wBAAwB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,WAAW,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,yBAAyB;IACjC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;IAC1D,MAAM,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,SAAgB,GAAG,MAAM,CAEjF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,SAAgB,GAAG,MAAM,CAYnF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,SAAgB,GAAG,MAAM,CAoBpF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,SAAgB,GAAG,IAAI,CAK/E;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5E;AAgFD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAKhG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,YAAY,EACZ,EAAE,EACF,GAAG,GACJ,EAAE,kCAAkC,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAsBzD;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,EAAE,EACF,GAAG,EACH,aAAa,EACb,KAAK,GACN,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA0H/D;AAMD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,8BAA8B,CAAC;AAE7E;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,eAAe,EAAE,OAAO,CAAC;IACzB,kEAAkE;IAClE,cAAc,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,2BAA2B;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,KAAK,EAAE,qBAAqB;IAOxC;;;;;OAKG;IACH,gBAAgB,IAAI,aAAa;IA4CjC;;OAEG;IACH,SAAS,IAAI,MAAM;IAUnB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B;CAI9D"}
|
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
/**
|
|
4
|
+
* WU Recovery Module
|
|
5
|
+
*
|
|
6
|
+
* Handles zombie state recovery (status=done but worktree still exists)
|
|
7
|
+
* Fixes WU-1159 gap by ensuring status.md AND backlog.md are updated
|
|
8
|
+
*
|
|
9
|
+
* Zombie states occur when wu:done crashes mid-execution:
|
|
10
|
+
* - WU YAML updated to status=done
|
|
11
|
+
* - But cleanup incomplete (worktree exists, docs not updated, etc.)
|
|
12
|
+
*
|
|
13
|
+
* Recovery mode is idempotent - safe to run multiple times
|
|
14
|
+
*
|
|
15
|
+
* NOTE (WU-1826): Core recovery functions are now re-exported from
|
|
16
|
+
* tools/lib/wu-repair-core.ts for use by the unified wu:repair command.
|
|
17
|
+
* This module remains the canonical implementation used by wu-done.ts.
|
|
18
|
+
*
|
|
19
|
+
* WU-1665: Adds state-machine-driven recovery consolidation.
|
|
20
|
+
* - StateMachineRecoveryManager determines rollback scope from pipeline failedAt state.
|
|
21
|
+
* - Legacy rollback path retained behind LUMENFLOW_LEGACY_ROLLBACK=1 env flag.
|
|
22
|
+
* - All recovery is now centralized through state-machine semantics by default.
|
|
23
|
+
*/
|
|
24
|
+
import { existsSync, readFileSync, unlinkSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
25
|
+
import { join, isAbsolute } from 'node:path';
|
|
26
|
+
import { RECOVERY } from './wu-done-messages.js';
|
|
27
|
+
import { createStamp } from './stamp-utils.js';
|
|
28
|
+
import { WU_PATHS } from './wu-paths.js';
|
|
29
|
+
import { writeWU } from './wu-yaml.js';
|
|
30
|
+
import { updateStatusRemoveInProgress, addToStatusCompleted } from './wu-status-updater.js';
|
|
31
|
+
import { moveWUToDoneBacklog } from './wu-backlog-updater.js';
|
|
32
|
+
import { getGitForCwd } from './git-adapter.js';
|
|
33
|
+
import { createError, ErrorCodes, getErrorMessage } from './error-handler.js';
|
|
34
|
+
import { rollbackFiles } from './rollback-utils.js';
|
|
35
|
+
import { LOG_PREFIX, EMOJI, WU_STATUS, getProjectRoot, LUMENFLOW_PATHS } from './wu-constants.js';
|
|
36
|
+
import { RETRY_PRESETS } from './retry-strategy.js';
|
|
37
|
+
/**
|
|
38
|
+
* WU-1335: Maximum number of recovery attempts before escalating to manual intervention
|
|
39
|
+
* WU-1747: Now derived from the recovery retry preset for consistency
|
|
40
|
+
*/
|
|
41
|
+
export const MAX_RECOVERY_ATTEMPTS = RETRY_PRESETS.recovery.maxAttempts;
|
|
42
|
+
/**
|
|
43
|
+
* WU-1335: Recovery marker subdirectory within .lumenflow
|
|
44
|
+
*/
|
|
45
|
+
const RECOVERY_MARKER_DIR = 'recovery';
|
|
46
|
+
/**
|
|
47
|
+
* WU-1335: Get the path to the recovery marker file for a WU
|
|
48
|
+
*
|
|
49
|
+
* @param {string} id - WU ID
|
|
50
|
+
* @param {string} [baseDir=process.cwd()] - Base directory for .lumenflow
|
|
51
|
+
* @returns {string} Path to recovery marker file
|
|
52
|
+
*/
|
|
53
|
+
export function getRecoveryMarkerPath(id, baseDir = process.cwd()) {
|
|
54
|
+
return join(baseDir, LUMENFLOW_PATHS.BASE, RECOVERY_MARKER_DIR, `${id}.recovery`);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* WU-1335: Get the current recovery attempt count for a WU
|
|
58
|
+
*
|
|
59
|
+
* @param {string} id - WU ID
|
|
60
|
+
* @param {string} [baseDir=process.cwd()] - Base directory for .lumenflow
|
|
61
|
+
* @returns {number} Current attempt count (0 if no marker exists)
|
|
62
|
+
*/
|
|
63
|
+
export function getRecoveryAttemptCount(id, baseDir = process.cwd()) {
|
|
64
|
+
const markerPath = getRecoveryMarkerPath(id, baseDir);
|
|
65
|
+
if (!existsSync(markerPath)) {
|
|
66
|
+
return 0;
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
const data = JSON.parse(readFileSync(markerPath, { encoding: 'utf-8' }));
|
|
70
|
+
return typeof data.attempts === 'number' ? data.attempts : 0;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// Corrupted file - treat as 0
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* WU-1335: Increment recovery attempt count for a WU
|
|
79
|
+
*
|
|
80
|
+
* @param {string} id - WU ID
|
|
81
|
+
* @param {string} [baseDir=process.cwd()] - Base directory for .lumenflow
|
|
82
|
+
* @returns {number} New attempt count
|
|
83
|
+
*/
|
|
84
|
+
export function incrementRecoveryAttempt(id, baseDir = process.cwd()) {
|
|
85
|
+
const markerPath = getRecoveryMarkerPath(id, baseDir);
|
|
86
|
+
const markerDir = join(baseDir, LUMENFLOW_PATHS.BASE, RECOVERY_MARKER_DIR);
|
|
87
|
+
// Ensure directory exists
|
|
88
|
+
if (!existsSync(markerDir)) {
|
|
89
|
+
mkdirSync(markerDir, { recursive: true });
|
|
90
|
+
}
|
|
91
|
+
const currentCount = getRecoveryAttemptCount(id, baseDir);
|
|
92
|
+
const newCount = currentCount + 1;
|
|
93
|
+
const data = {
|
|
94
|
+
attempts: newCount,
|
|
95
|
+
lastAttempt: new Date().toISOString(),
|
|
96
|
+
wuId: id,
|
|
97
|
+
};
|
|
98
|
+
writeFileSync(markerPath, JSON.stringify(data, null, 2));
|
|
99
|
+
return newCount;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* WU-1335: Clear recovery attempts for a WU (called on successful recovery)
|
|
103
|
+
*
|
|
104
|
+
* @param {string} id - WU ID
|
|
105
|
+
* @param {string} [baseDir=process.cwd()] - Base directory for .lumenflow
|
|
106
|
+
*/
|
|
107
|
+
export function clearRecoveryAttempts(id, baseDir = process.cwd()) {
|
|
108
|
+
const markerPath = getRecoveryMarkerPath(id, baseDir);
|
|
109
|
+
if (existsSync(markerPath)) {
|
|
110
|
+
unlinkSync(markerPath);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* WU-1335: Check if recovery should escalate to manual intervention
|
|
115
|
+
*
|
|
116
|
+
* @param {number} attempts - Current attempt count
|
|
117
|
+
* @returns {boolean} True if should escalate
|
|
118
|
+
*/
|
|
119
|
+
export function shouldEscalateToManualIntervention(attempts) {
|
|
120
|
+
return attempts >= MAX_RECOVERY_ATTEMPTS;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Record initial state for atomic rollback (WU-1303)
|
|
124
|
+
*
|
|
125
|
+
* @param {object} paths - Object containing file paths
|
|
126
|
+
* @param {string} paths.wuPath - Path to WU YAML
|
|
127
|
+
* @param {string} paths.statusPath - Path to status.md
|
|
128
|
+
* @param {string} paths.backlogPath - Path to backlog.md
|
|
129
|
+
* @param {string} paths.stampPath - Path to stamp file
|
|
130
|
+
* @returns {object} Transaction state for rollback
|
|
131
|
+
*/
|
|
132
|
+
function recordRecoveryState(paths) {
|
|
133
|
+
const { wuPath, statusPath, backlogPath, stampPath } = paths;
|
|
134
|
+
return {
|
|
135
|
+
wuContent: existsSync(wuPath) ? readFileSync(wuPath, { encoding: 'utf-8' }) : null,
|
|
136
|
+
statusContent: existsSync(statusPath) ? readFileSync(statusPath, { encoding: 'utf-8' }) : null,
|
|
137
|
+
backlogContent: existsSync(backlogPath)
|
|
138
|
+
? readFileSync(backlogPath, { encoding: 'utf-8' })
|
|
139
|
+
: null,
|
|
140
|
+
stampExisted: existsSync(stampPath),
|
|
141
|
+
timestamp: new Date().toISOString(),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Rollback recovery transaction on failure (WU-1303)
|
|
146
|
+
*
|
|
147
|
+
* @param {object} state - Transaction state from recordRecoveryState
|
|
148
|
+
* @param {object} paths - Object containing file paths
|
|
149
|
+
*/
|
|
150
|
+
function rollbackRecoveryTransaction(state, paths) {
|
|
151
|
+
const { wuPath, statusPath, backlogPath, stampPath } = paths;
|
|
152
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Rolling back recovery transaction...`);
|
|
153
|
+
// Build list of files to restore
|
|
154
|
+
const filesToRestore = [];
|
|
155
|
+
if (state.wuContent !== null) {
|
|
156
|
+
filesToRestore.push({ name: 'WU YAML', path: wuPath, content: state.wuContent });
|
|
157
|
+
}
|
|
158
|
+
if (state.statusContent !== null) {
|
|
159
|
+
filesToRestore.push({ name: 'status.md', path: statusPath, content: state.statusContent });
|
|
160
|
+
}
|
|
161
|
+
if (state.backlogContent !== null) {
|
|
162
|
+
filesToRestore.push({ name: 'backlog.md', path: backlogPath, content: state.backlogContent });
|
|
163
|
+
}
|
|
164
|
+
// Restore files
|
|
165
|
+
if (filesToRestore.length > 0) {
|
|
166
|
+
const result = rollbackFiles(filesToRestore);
|
|
167
|
+
for (const name of result.restored) {
|
|
168
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} Restored ${name}`);
|
|
169
|
+
}
|
|
170
|
+
for (const err of result.errors) {
|
|
171
|
+
console.error(`${LOG_PREFIX.DONE} ${EMOJI.FAILURE} Failed to restore ${err.name}: ${err.error}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Remove stamp if it was created during recovery
|
|
175
|
+
if (!state.stampExisted && existsSync(stampPath)) {
|
|
176
|
+
try {
|
|
177
|
+
unlinkSync(stampPath);
|
|
178
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} Removed stamp file`);
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
console.error(`${LOG_PREFIX.DONE} ${EMOJI.FAILURE} Failed to remove stamp: ${getErrorMessage(err)}`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} Rollback complete - main checkout is clean`);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Detect zombie state
|
|
188
|
+
*
|
|
189
|
+
* @param {object} doc - WU YAML document
|
|
190
|
+
* @param {string|null} worktreePath - Path to worktree
|
|
191
|
+
* @returns {boolean} True if zombie state detected
|
|
192
|
+
*/
|
|
193
|
+
export function detectZombieState(doc, worktreePath) {
|
|
194
|
+
if (!worktreePath) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
return doc.status === WU_STATUS.DONE && existsSync(worktreePath);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* WU-1440: Reset worktree WU YAML to in_progress for recovery
|
|
201
|
+
*
|
|
202
|
+
* Instead of committing directly to main (old recovery mode), this function
|
|
203
|
+
* resets the worktree YAML so the normal wu:done merge flow can proceed.
|
|
204
|
+
*
|
|
205
|
+
* Removes completion markers:
|
|
206
|
+
* - status → in_progress
|
|
207
|
+
* - locked → removed
|
|
208
|
+
* - completed_at → removed
|
|
209
|
+
*
|
|
210
|
+
* Preserves all other fields (description, acceptance, code_paths, etc.)
|
|
211
|
+
*
|
|
212
|
+
* @param {object} params - Recovery parameters
|
|
213
|
+
* @param {string} params.worktreePath - Path to worktree root
|
|
214
|
+
* @param {string} params.id - WU ID
|
|
215
|
+
* @param {object} params.doc - WU YAML document (will be mutated)
|
|
216
|
+
* @returns {{ reset: boolean }} Reset result
|
|
217
|
+
*/
|
|
218
|
+
export function resetWorktreeYAMLForRecovery({ worktreePath, id, doc, }) {
|
|
219
|
+
const projectRoot = getProjectRoot(import.meta.url);
|
|
220
|
+
const resolvedWorktreeRoot = isAbsolute(worktreePath)
|
|
221
|
+
? worktreePath
|
|
222
|
+
: join(projectRoot, worktreePath);
|
|
223
|
+
const wtWUPath = join(resolvedWorktreeRoot, WU_PATHS.WU(id));
|
|
224
|
+
// Reset status to in_progress
|
|
225
|
+
doc.status = WU_STATUS.IN_PROGRESS;
|
|
226
|
+
// Remove completion markers (delete from object)
|
|
227
|
+
delete doc.locked;
|
|
228
|
+
delete doc.completed_at;
|
|
229
|
+
// Write updated YAML to worktree
|
|
230
|
+
writeWU(wtWUPath, doc);
|
|
231
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} Reset worktree YAML to in_progress for recovery`);
|
|
232
|
+
return { reset: true };
|
|
233
|
+
}
|
|
234
|
+
// Note: updateBacklogMd removed (WU-1163) - now uses shared moveWUToDoneBacklog from wu-backlog-updater.ts
|
|
235
|
+
/**
|
|
236
|
+
* Recover from zombie state
|
|
237
|
+
*
|
|
238
|
+
* THE COMPLETE FIX for WU-1159 gap:
|
|
239
|
+
* - Ensures stamp exists
|
|
240
|
+
* - Ensures YAML completion markers
|
|
241
|
+
* - Ensures status.md updated (THE FIX)
|
|
242
|
+
* - Ensures backlog.md updated (THE FIX)
|
|
243
|
+
*
|
|
244
|
+
* All operations are idempotent - safe to run multiple times
|
|
245
|
+
*
|
|
246
|
+
* WU-1303: Added atomic rollback - if UnsafeAny operation fails, all files are
|
|
247
|
+
* restored to their original state to prevent leaving main checkout dirty.
|
|
248
|
+
*
|
|
249
|
+
* @param {object} params - Recovery parameters
|
|
250
|
+
* @param {string} params.id - WU ID
|
|
251
|
+
* @param {object} params.doc - WU YAML document
|
|
252
|
+
* @param {string} params.worktreePath - Path to worktree
|
|
253
|
+
* @param {object} params.args - Command-line args
|
|
254
|
+
* @returns {object} Recovery results
|
|
255
|
+
*/
|
|
256
|
+
export async function recoverZombieState({ id, doc, _worktreePath, _args, }) {
|
|
257
|
+
console.log(`\n${RECOVERY.DETECTED}`);
|
|
258
|
+
console.log(RECOVERY.RESUMING);
|
|
259
|
+
console.log(RECOVERY.EXPLANATION);
|
|
260
|
+
const results = {
|
|
261
|
+
stamp: null,
|
|
262
|
+
yaml: null,
|
|
263
|
+
docs: { status: null, backlog: null },
|
|
264
|
+
};
|
|
265
|
+
// WU-1303: Record file state BEFORE UnsafeAny modifications for atomic rollback
|
|
266
|
+
const wuPath = WU_PATHS.WU(id);
|
|
267
|
+
const statusPath = WU_PATHS.STATUS();
|
|
268
|
+
const backlogPath = WU_PATHS.BACKLOG();
|
|
269
|
+
const stampPath = WU_PATHS.STAMP(id);
|
|
270
|
+
const paths = { wuPath, statusPath, backlogPath, stampPath };
|
|
271
|
+
const initialState = recordRecoveryState(paths);
|
|
272
|
+
try {
|
|
273
|
+
// 1. Ensure stamp exists (idempotent)
|
|
274
|
+
console.log(RECOVERY.CREATING_STAMP);
|
|
275
|
+
results.stamp = createStamp({ id, title: doc.title ?? id });
|
|
276
|
+
console.log(RECOVERY.STAMP_CREATED);
|
|
277
|
+
// 2. Ensure YAML completion markers (idempotent)
|
|
278
|
+
console.log(RECOVERY.UPDATING_YAML);
|
|
279
|
+
let yamlUpdated = false;
|
|
280
|
+
if (doc.locked !== true) {
|
|
281
|
+
doc.locked = true;
|
|
282
|
+
yamlUpdated = true;
|
|
283
|
+
}
|
|
284
|
+
if (!doc.completed_at && !doc.completed) {
|
|
285
|
+
doc.completed_at = new Date().toISOString();
|
|
286
|
+
yamlUpdated = true;
|
|
287
|
+
}
|
|
288
|
+
if (yamlUpdated) {
|
|
289
|
+
writeWU(wuPath, doc);
|
|
290
|
+
results.yaml = { updated: true };
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
results.yaml = { updated: false, reason: 'already_complete' };
|
|
294
|
+
}
|
|
295
|
+
console.log(RECOVERY.YAML_UPDATED);
|
|
296
|
+
// 3. **FIX WU-1159 GAP**: Update status.md and backlog.md (idempotent)
|
|
297
|
+
console.log(RECOVERY.UPDATING_DOCS);
|
|
298
|
+
updateStatusRemoveInProgress(statusPath, id);
|
|
299
|
+
addToStatusCompleted(statusPath, id, doc.title);
|
|
300
|
+
results.docs.status = { updated: true };
|
|
301
|
+
await moveWUToDoneBacklog(backlogPath, id, doc.title);
|
|
302
|
+
results.docs.backlog = { updated: true };
|
|
303
|
+
console.log(RECOVERY.DOCS_UPDATED);
|
|
304
|
+
// 4. **FIX WU-1201**: Commit recovery changes to prevent data loss
|
|
305
|
+
// Check if git status is dirty (files were updated)
|
|
306
|
+
const git = getGitForCwd();
|
|
307
|
+
const statusOutput = await git.getStatus();
|
|
308
|
+
if (statusOutput && statusOutput.trim()) {
|
|
309
|
+
console.log(RECOVERY.COMMITTING);
|
|
310
|
+
try {
|
|
311
|
+
await git.add([stampPath, wuPath, statusPath, backlogPath]);
|
|
312
|
+
// WU-1383: Set recovery mode env var to bypass stamp existence check in validate.ts
|
|
313
|
+
// During recovery, stamp and status=done are committed atomically, but pre-commit
|
|
314
|
+
// hooks run mid-commit when both files are staged but validation sees inconsistent state
|
|
315
|
+
process.env.WU_RECOVERY_ID = id;
|
|
316
|
+
try {
|
|
317
|
+
await git.commit(`chore(recovery): complete wu:done metadata for ${id}`);
|
|
318
|
+
}
|
|
319
|
+
finally {
|
|
320
|
+
// Always clean up env var (WU-1383)
|
|
321
|
+
delete process.env.WU_RECOVERY_ID;
|
|
322
|
+
}
|
|
323
|
+
results.commit = { committed: true };
|
|
324
|
+
console.log(RECOVERY.COMMIT_SUCCESS);
|
|
325
|
+
}
|
|
326
|
+
catch (commitError) {
|
|
327
|
+
const commitMessage = getErrorMessage(commitError);
|
|
328
|
+
// Commit failed - rollback all changes (WU-1303)
|
|
329
|
+
console.warn(RECOVERY.COMMIT_FAILED(commitMessage));
|
|
330
|
+
rollbackRecoveryTransaction(initialState, paths);
|
|
331
|
+
throw createError(ErrorCodes.GIT_ERROR, `Recovery commit failed: ${commitMessage}\nFiles rolled back to clean state. Re-run wu:done to retry.`, { originalError: commitMessage, wuId: id });
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
results.commit = { committed: false, reason: 'no_changes' };
|
|
336
|
+
}
|
|
337
|
+
console.log(RECOVERY.MARKERS_VERIFIED);
|
|
338
|
+
console.log(RECOVERY.PROCEEDING_CLEANUP);
|
|
339
|
+
return results;
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
// WU-1303: Atomic rollback on ANY failure (not just commit)
|
|
343
|
+
// Re-throw if it's already a structured error (from commit phase)
|
|
344
|
+
if (typeof error === 'object' &&
|
|
345
|
+
error !== null &&
|
|
346
|
+
'code' in error &&
|
|
347
|
+
error.code === ErrorCodes.GIT_ERROR) {
|
|
348
|
+
throw error;
|
|
349
|
+
}
|
|
350
|
+
const message = getErrorMessage(error);
|
|
351
|
+
// Rollback file changes for non-commit errors
|
|
352
|
+
console.error(`${LOG_PREFIX.DONE} ${EMOJI.FAILURE} Recovery failed: ${message}`);
|
|
353
|
+
rollbackRecoveryTransaction(initialState, paths);
|
|
354
|
+
throw createError(ErrorCodes.RECOVERY_ERROR, `Recovery operation failed: ${message}\nFiles rolled back to clean state. Re-run wu:done to retry.`, { originalError: message, wuId: id });
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
// ---------------------------------------------------------------------------
|
|
358
|
+
// WU-1665: State-machine-driven recovery consolidation
|
|
359
|
+
// ---------------------------------------------------------------------------
|
|
360
|
+
/**
|
|
361
|
+
* WU-1665: Environment variable key for legacy rollback compatibility guard.
|
|
362
|
+
* When set to "1", the legacy rollback path is used instead of state-machine-driven recovery.
|
|
363
|
+
*/
|
|
364
|
+
export const LUMENFLOW_LEGACY_ROLLBACK_ENV_KEY = 'LUMENFLOW_LEGACY_ROLLBACK';
|
|
365
|
+
/**
|
|
366
|
+
* WU-1665: Check if legacy rollback mode is enabled via environment variable.
|
|
367
|
+
*
|
|
368
|
+
* During the migration window, operators can set LUMENFLOW_LEGACY_ROLLBACK=1
|
|
369
|
+
* to use the pre-WU-1665 recovery path for rollback operations.
|
|
370
|
+
*
|
|
371
|
+
* @returns {boolean} True if legacy rollback is enabled
|
|
372
|
+
*/
|
|
373
|
+
export function isLegacyRollbackEnabled() {
|
|
374
|
+
return process.env[LUMENFLOW_LEGACY_ROLLBACK_ENV_KEY] === '1';
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* WU-1665: State-machine-driven recovery manager.
|
|
378
|
+
*
|
|
379
|
+
* Determines rollback scope from the pipeline's failedAt state, replacing
|
|
380
|
+
* the ad-hoc per-function rollback logic scattered across wu-recovery.ts,
|
|
381
|
+
* wu-transaction.ts, and rollback-utils.ts.
|
|
382
|
+
*
|
|
383
|
+
* Usage:
|
|
384
|
+
* ```ts
|
|
385
|
+
* const manager = new StateMachineRecoveryManager({
|
|
386
|
+
* wuId: 'WU-1665',
|
|
387
|
+
* failedAt: 'committing',
|
|
388
|
+
* error: 'git commit failed',
|
|
389
|
+
* retryCount: 0,
|
|
390
|
+
* });
|
|
391
|
+
* const scope = manager.getRollbackScope();
|
|
392
|
+
* // scope.snapshotRestore === true
|
|
393
|
+
* // scope.branchRollback === false
|
|
394
|
+
* ```
|
|
395
|
+
*/
|
|
396
|
+
export class StateMachineRecoveryManager {
|
|
397
|
+
wuId;
|
|
398
|
+
failedAt;
|
|
399
|
+
error;
|
|
400
|
+
retryCount;
|
|
401
|
+
constructor(state) {
|
|
402
|
+
this.wuId = state.wuId;
|
|
403
|
+
this.failedAt = state.failedAt;
|
|
404
|
+
this.error = state.error;
|
|
405
|
+
this.retryCount = state.retryCount;
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Determine rollback scope based on the pipeline stage where failure occurred.
|
|
409
|
+
*
|
|
410
|
+
* The scope is deterministic: given the same failedAt state, the same
|
|
411
|
+
* rollback actions are always prescribed.
|
|
412
|
+
*/
|
|
413
|
+
getRollbackScope() {
|
|
414
|
+
const failedAt = this.failedAt;
|
|
415
|
+
// Pre-write states: nothing to roll back
|
|
416
|
+
if (!failedAt ||
|
|
417
|
+
failedAt === 'validating' ||
|
|
418
|
+
failedAt === 'preparing' ||
|
|
419
|
+
failedAt === 'gating') {
|
|
420
|
+
return {
|
|
421
|
+
snapshotRestore: false,
|
|
422
|
+
branchRollback: false,
|
|
423
|
+
worktreeCleanup: false,
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
// Post-push state: push already succeeded, only cleanup remains
|
|
427
|
+
if (failedAt === 'cleaningUp') {
|
|
428
|
+
return {
|
|
429
|
+
snapshotRestore: false,
|
|
430
|
+
branchRollback: false,
|
|
431
|
+
worktreeCleanup: true,
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
// Commit-phase failures: files written, need snapshot restore
|
|
435
|
+
if (failedAt === 'committing') {
|
|
436
|
+
return {
|
|
437
|
+
snapshotRestore: true,
|
|
438
|
+
branchRollback: false,
|
|
439
|
+
worktreeCleanup: false,
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
// Merge/push phase failures: committed + potentially merged, need full rollback
|
|
443
|
+
// (merging, pushing)
|
|
444
|
+
return {
|
|
445
|
+
snapshotRestore: true,
|
|
446
|
+
branchRollback: true,
|
|
447
|
+
worktreeCleanup: false,
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Serialize recovery state for persistence (e.g., to .lumenflow/recovery/).
|
|
452
|
+
*/
|
|
453
|
+
serialize() {
|
|
454
|
+
return JSON.stringify({
|
|
455
|
+
wuId: this.wuId,
|
|
456
|
+
failedAt: this.failedAt,
|
|
457
|
+
error: this.error,
|
|
458
|
+
retryCount: this.retryCount,
|
|
459
|
+
serializedAt: new Date().toISOString(),
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Deserialize recovery state from persisted JSON.
|
|
464
|
+
*/
|
|
465
|
+
static deserialize(json) {
|
|
466
|
+
const data = JSON.parse(json);
|
|
467
|
+
return new StateMachineRecoveryManager(data);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
//# sourceMappingURL=wu-recovery.js.map
|