@lumenflow/core 4.24.0 → 5.0.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/dist/arg-parser.d.ts.map +1 -1
- package/dist/arg-parser.js +16 -0
- package/dist/arg-parser.js.map +1 -1
- package/dist/atomic-merge.d.ts.map +1 -1
- package/dist/atomic-merge.js +25 -18
- package/dist/atomic-merge.js.map +1 -1
- package/dist/client-ids.d.ts +1 -15
- package/dist/client-ids.d.ts.map +1 -1
- package/dist/client-ids.js +4 -13
- package/dist/client-ids.js.map +1 -1
- package/dist/code-path-validator.d.ts.map +1 -1
- package/dist/code-path-validator.js +6 -3
- package/dist/code-path-validator.js.map +1 -1
- package/dist/config-contract.d.ts +1 -30
- package/dist/config-contract.d.ts.map +1 -1
- package/dist/config-contract.js +4 -60
- package/dist/config-contract.js.map +1 -1
- package/dist/constants/backlog-patterns.d.ts +1 -20
- package/dist/constants/backlog-patterns.d.ts.map +1 -1
- package/dist/constants/backlog-patterns.js +2 -23
- package/dist/constants/backlog-patterns.js.map +1 -1
- package/dist/constants/duration-constants.d.ts +1 -28
- package/dist/constants/duration-constants.d.ts.map +1 -1
- package/dist/constants/duration-constants.js +4 -28
- package/dist/constants/duration-constants.js.map +1 -1
- package/dist/constants/gate-constants.d.ts +1 -23
- package/dist/constants/gate-constants.d.ts.map +1 -1
- package/dist/constants/gate-constants.js +4 -23
- package/dist/constants/gate-constants.js.map +1 -1
- package/dist/constants/lock-constants.d.ts +1 -28
- package/dist/constants/lock-constants.d.ts.map +1 -1
- package/dist/constants/lock-constants.js +2 -28
- package/dist/constants/lock-constants.js.map +1 -1
- package/dist/core/tool.schemas.d.ts +11 -11
- package/dist/core/worktree-guard.js +2 -2
- package/dist/core/worktree-guard.js.map +1 -1
- package/dist/cycle-detector.d.ts +4 -48
- package/dist/cycle-detector.d.ts.map +1 -1
- package/dist/cycle-detector.js +4 -78
- package/dist/cycle-detector.js.map +1 -1
- package/dist/date-utils.d.ts +1 -65
- package/dist/date-utils.d.ts.map +1 -1
- package/dist/date-utils.js +4 -140
- package/dist/date-utils.js.map +1 -1
- package/dist/delegation-monitor.d.ts +2 -0
- package/dist/delegation-monitor.d.ts.map +1 -1
- package/dist/delegation-monitor.js +29 -2
- package/dist/delegation-monitor.js.map +1 -1
- package/dist/delegation-recovery.d.ts +36 -17
- package/dist/delegation-recovery.d.ts.map +1 -1
- package/dist/delegation-recovery.js +285 -82
- package/dist/delegation-recovery.js.map +1 -1
- package/dist/delegation-registry-schema.d.ts +257 -31
- package/dist/delegation-registry-schema.d.ts.map +1 -1
- package/dist/delegation-registry-schema.js +43 -34
- package/dist/delegation-registry-schema.js.map +1 -1
- package/dist/delegation-registry-store.d.ts +4 -128
- package/dist/delegation-registry-store.d.ts.map +1 -1
- package/dist/delegation-registry-store.js +39 -178
- package/dist/delegation-registry-store.js.map +1 -1
- package/dist/delegation-tree.d.ts +12 -20
- package/dist/delegation-tree.d.ts.map +1 -1
- package/dist/delegation-tree.js +40 -29
- package/dist/delegation-tree.js.map +1 -1
- package/dist/delivery-review-contract.d.ts +1 -1
- package/dist/delivery-review-contract.d.ts.map +1 -1
- package/dist/docs-layout-presets.d.ts +1 -30
- package/dist/docs-layout-presets.d.ts.map +1 -1
- package/dist/docs-layout-presets.js +4 -38
- package/dist/docs-layout-presets.js.map +1 -1
- package/dist/domain/context.schemas.d.ts +3 -3
- package/dist/domain/orchestration.constants.d.ts +1 -110
- package/dist/domain/orchestration.constants.d.ts.map +1 -1
- package/dist/domain/orchestration.constants.js +2 -127
- package/dist/domain/orchestration.constants.js.map +1 -1
- package/dist/domain/orchestration.schemas.d.ts +1 -306
- package/dist/domain/orchestration.schemas.d.ts.map +1 -1
- package/dist/domain/orchestration.schemas.js +2 -211
- package/dist/domain/orchestration.schemas.js.map +1 -1
- package/dist/domain/orchestration.types.d.ts +1 -133
- package/dist/domain/orchestration.types.d.ts.map +1 -1
- package/dist/domain/orchestration.types.js +2 -2
- package/dist/domain/orchestration.types.js.map +1 -1
- package/dist/domain/recovery.schemas.d.ts +3 -3
- package/dist/domain/validation.schemas.d.ts +4 -4
- package/dist/error-handler.d.ts +4 -173
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +4 -244
- package/dist/error-handler.js.map +1 -1
- package/dist/file-classifiers.d.ts.map +1 -1
- package/dist/file-classifiers.js +26 -0
- package/dist/file-classifiers.js.map +1 -1
- package/dist/git-adapter.d.ts +4 -448
- package/dist/git-adapter.d.ts.map +1 -1
- package/dist/git-adapter.js +4 -772
- package/dist/git-adapter.js.map +1 -1
- package/dist/git-context-extractor.d.ts +4 -98
- package/dist/git-context-extractor.d.ts.map +1 -1
- package/dist/git-context-extractor.js +4 -563
- package/dist/git-context-extractor.js.map +1 -1
- package/dist/git-staged-validator.d.ts +4 -29
- package/dist/git-staged-validator.d.ts.map +1 -1
- package/dist/git-staged-validator.js +4 -46
- package/dist/git-staged-validator.js.map +1 -1
- package/dist/incremental-lint.d.ts.map +1 -1
- package/dist/incremental-lint.js +3 -2
- package/dist/incremental-lint.js.map +1 -1
- package/dist/incremental-test.d.ts +1 -32
- package/dist/incremental-test.d.ts.map +1 -1
- package/dist/incremental-test.js +4 -61
- package/dist/incremental-test.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/integration-target.d.ts +30 -0
- package/dist/integration-target.d.ts.map +1 -0
- package/dist/integration-target.js +51 -0
- package/dist/integration-target.js.map +1 -0
- package/dist/lane-checker.d.ts.map +1 -1
- package/dist/lane-checker.js +8 -0
- package/dist/lane-checker.js.map +1 -1
- package/dist/lumenflow-config-schema.d.ts +73 -29
- package/dist/lumenflow-config-schema.d.ts.map +1 -1
- package/dist/lumenflow-config-schema.js +1 -1
- package/dist/lumenflow-config-schema.js.map +1 -1
- package/dist/lumenflow-config.d.ts +10 -34
- package/dist/lumenflow-config.d.ts.map +1 -1
- package/dist/lumenflow-config.js +32 -142
- package/dist/lumenflow-config.js.map +1 -1
- package/dist/manual-test-validator.d.ts +1 -96
- package/dist/manual-test-validator.d.ts.map +1 -1
- package/dist/manual-test-validator.js +4 -245
- package/dist/manual-test-validator.js.map +1 -1
- package/dist/micro-worktree-shared.d.ts.map +1 -1
- package/dist/micro-worktree-shared.js +10 -9
- package/dist/micro-worktree-shared.js.map +1 -1
- package/dist/micro-worktree.d.ts.map +1 -1
- package/dist/micro-worktree.js +26 -23
- package/dist/micro-worktree.js.map +1 -1
- package/dist/normalize-config-keys.d.ts +1 -10
- package/dist/normalize-config-keys.d.ts.map +1 -1
- package/dist/normalize-config-keys.js +7 -73
- package/dist/normalize-config-keys.js.map +1 -1
- package/dist/object-guards.d.ts +1 -10
- package/dist/object-guards.d.ts.map +1 -1
- package/dist/object-guards.js +7 -20
- package/dist/object-guards.js.map +1 -1
- package/dist/ports/config.ports.d.ts +1 -82
- package/dist/ports/config.ports.d.ts.map +1 -1
- package/dist/ports/config.ports.js +2 -1
- package/dist/ports/config.ports.js.map +1 -1
- package/dist/ports/dashboard-renderer.port.d.ts +1 -112
- package/dist/ports/dashboard-renderer.port.d.ts.map +1 -1
- package/dist/ports/dashboard-renderer.port.js +2 -1
- package/dist/ports/dashboard-renderer.port.js.map +1 -1
- package/dist/ports/git-validator.ports.d.ts +5 -110
- package/dist/ports/git-validator.ports.d.ts.map +1 -1
- package/dist/ports/git-validator.ports.js +8 -1
- package/dist/ports/git-validator.ports.js.map +1 -1
- package/dist/ports/sync-validator.ports.d.ts +1 -51
- package/dist/ports/sync-validator.ports.d.ts.map +1 -1
- package/dist/ports/sync-validator.ports.js +2 -1
- package/dist/ports/sync-validator.ports.js.map +1 -1
- package/dist/ports/wu-helpers.ports.d.ts +1 -156
- package/dist/ports/wu-helpers.ports.d.ts.map +1 -1
- package/dist/ports/wu-helpers.ports.js +2 -1
- package/dist/ports/wu-helpers.ports.js.map +1 -1
- package/dist/ports/wu-state.ports.d.ts +1 -208
- package/dist/ports/wu-state.ports.d.ts.map +1 -1
- package/dist/ports/wu-state.ports.js +2 -1
- package/dist/ports/wu-state.ports.js.map +1 -1
- package/dist/rebase-artifact-cleanup.d.ts.map +1 -1
- package/dist/rebase-artifact-cleanup.js +6 -3
- package/dist/rebase-artifact-cleanup.js.map +1 -1
- package/dist/sandbox-allowlist.d.ts +1 -15
- package/dist/sandbox-allowlist.d.ts.map +1 -1
- package/dist/sandbox-allowlist.js +4 -74
- package/dist/sandbox-allowlist.js.map +1 -1
- package/dist/sandbox-backend-linux.d.ts +1 -5
- package/dist/sandbox-backend-linux.d.ts.map +1 -1
- package/dist/sandbox-backend-linux.js +4 -64
- package/dist/sandbox-backend-linux.js.map +1 -1
- package/dist/sandbox-backend-macos.d.ts +1 -5
- package/dist/sandbox-backend-macos.d.ts.map +1 -1
- package/dist/sandbox-backend-macos.js +4 -109
- package/dist/sandbox-backend-macos.js.map +1 -1
- package/dist/sandbox-backend-windows.d.ts +1 -5
- package/dist/sandbox-backend-windows.d.ts.map +1 -1
- package/dist/sandbox-backend-windows.js +4 -27
- package/dist/sandbox-backend-windows.js.map +1 -1
- package/dist/sandbox-profile.d.ts +1 -57
- package/dist/sandbox-profile.d.ts.map +1 -1
- package/dist/sandbox-profile.js +4 -65
- package/dist/sandbox-profile.js.map +1 -1
- package/dist/schemas/agents-config.d.ts +47 -0
- package/dist/schemas/agents-config.d.ts.map +1 -1
- package/dist/schemas/agents-config.js +59 -0
- package/dist/schemas/agents-config.js.map +1 -1
- package/dist/schemas/command-schemas.d.ts +4 -4
- package/dist/schemas/flow-arg-validators.d.ts +2 -2
- package/dist/schemas/flow-schemas.d.ts +4 -4
- package/dist/schemas/gates-section-config.d.ts +32 -13
- package/dist/schemas/gates-section-config.d.ts.map +1 -1
- package/dist/schemas/gates-section-config.js +16 -1
- package/dist/schemas/gates-section-config.js.map +1 -1
- package/dist/schemas/initiative-arg-validators.d.ts +2 -2
- package/dist/schemas/initiative-schemas.d.ts +12 -12
- package/dist/schemas/lanes-config.d.ts +5 -5
- package/dist/schemas/memory-arg-validators.d.ts +6 -0
- package/dist/schemas/memory-arg-validators.d.ts.map +1 -1
- package/dist/schemas/memory-config.d.ts +4 -4
- package/dist/schemas/memory-schemas.d.ts +12 -0
- package/dist/schemas/memory-schemas.d.ts.map +1 -1
- package/dist/schemas/memory-schemas.js +12 -0
- package/dist/schemas/memory-schemas.js.map +1 -1
- package/dist/schemas/operational-config.d.ts +4 -4
- package/dist/schemas/setup-arg-validators.d.ts +3 -3
- package/dist/schemas/setup-schemas.d.ts +8 -8
- package/dist/schemas/wu-config.d.ts +3 -3
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -2
- package/dist/schemas/wu-lifecycle-schemas.d.ts +4 -4
- package/dist/section-headings.d.ts +1 -34
- package/dist/section-headings.d.ts.map +1 -1
- package/dist/section-headings.js +2 -51
- package/dist/section-headings.js.map +1 -1
- package/dist/spawn-constraints-generator.js +3 -3
- package/dist/spawn-constraints-generator.js.map +1 -1
- package/dist/spawn-guidance-generators.d.ts +1 -1
- package/dist/spawn-guidance-generators.d.ts.map +1 -1
- package/dist/spawn-policy-resolver.d.ts +1 -1
- package/dist/spawn-policy-resolver.d.ts.map +1 -1
- package/dist/spawn-task-builder.d.ts +17 -1
- package/dist/spawn-task-builder.d.ts.map +1 -1
- package/dist/spawn-task-builder.js +63 -1
- package/dist/spawn-task-builder.js.map +1 -1
- package/dist/spawn-template-assembler.d.ts +1 -1
- package/dist/spawn-template-assembler.d.ts.map +1 -1
- package/dist/state-machine.d.ts +1 -9
- package/dist/state-machine.d.ts.map +1 -1
- package/dist/state-machine.js +2 -86
- package/dist/state-machine.js.map +1 -1
- package/dist/sync-validator.d.ts.map +1 -1
- package/dist/sync-validator.js +15 -12
- package/dist/sync-validator.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +3 -2
- package/dist/telemetry.js.map +1 -1
- package/dist/work-classifier.d.ts +1 -102
- package/dist/work-classifier.d.ts.map +1 -1
- package/dist/work-classifier.js +2 -424
- package/dist/work-classifier.js.map +1 -1
- package/dist/worktree-symlink.d.ts +2 -2
- package/dist/worktree-symlink.d.ts.map +1 -1
- package/dist/worktree-symlink.js +37 -12
- package/dist/worktree-symlink.js.map +1 -1
- package/dist/wu-cli-constants.d.ts +1 -433
- package/dist/wu-cli-constants.d.ts.map +1 -1
- package/dist/wu-cli-constants.js +4 -436
- package/dist/wu-cli-constants.js.map +1 -1
- package/dist/wu-consistency-file-repairs.d.ts.map +1 -1
- package/dist/wu-consistency-file-repairs.js +5 -3
- package/dist/wu-consistency-file-repairs.js.map +1 -1
- package/dist/wu-context-constants.d.ts +22 -0
- package/dist/wu-context-constants.d.ts.map +1 -1
- package/dist/wu-context-constants.js +22 -0
- package/dist/wu-context-constants.js.map +1 -1
- package/dist/wu-doc-types.d.ts +1 -47
- package/dist/wu-doc-types.d.ts.map +1 -1
- package/dist/wu-domain-constants.d.ts +1 -295
- package/dist/wu-domain-constants.d.ts.map +1 -1
- package/dist/wu-domain-constants.js +4 -397
- package/dist/wu-domain-constants.js.map +1 -1
- package/dist/wu-done-branch-only.d.ts +1 -1
- package/dist/wu-done-branch-only.d.ts.map +1 -1
- package/dist/wu-done-branch-only.js +22 -13
- package/dist/wu-done-branch-only.js.map +1 -1
- package/dist/wu-done-branch-utils.d.ts.map +1 -1
- package/dist/wu-done-branch-utils.js +5 -3
- package/dist/wu-done-branch-utils.js.map +1 -1
- package/dist/wu-done-cleanup.d.ts.map +1 -1
- package/dist/wu-done-cleanup.js +66 -22
- package/dist/wu-done-cleanup.js.map +1 -1
- package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
- package/dist/wu-done-concurrent-merge.js +9 -6
- package/dist/wu-done-concurrent-merge.js.map +1 -1
- package/dist/wu-done-errors.d.ts +3 -3
- package/dist/wu-done-errors.d.ts.map +1 -1
- package/dist/wu-done-inputs.d.ts.map +1 -1
- package/dist/wu-done-inputs.js +3 -0
- package/dist/wu-done-inputs.js.map +1 -1
- package/dist/wu-done-merge-phase.d.ts.map +1 -1
- package/dist/wu-done-merge-phase.js +4 -2
- package/dist/wu-done-merge-phase.js.map +1 -1
- package/dist/wu-done-merge.d.ts.map +1 -1
- package/dist/wu-done-merge.js +16 -8
- package/dist/wu-done-merge.js.map +1 -1
- package/dist/wu-done-merged-worktree.d.ts.map +1 -1
- package/dist/wu-done-merged-worktree.js +7 -8
- package/dist/wu-done-merged-worktree.js.map +1 -1
- package/dist/wu-done-messages.d.ts.map +1 -1
- package/dist/wu-done-messages.js +12 -5
- package/dist/wu-done-messages.js.map +1 -1
- package/dist/wu-done-metadata.d.ts.map +1 -1
- package/dist/wu-done-metadata.js +3 -8
- package/dist/wu-done-metadata.js.map +1 -1
- package/dist/wu-done-preflight-checks.d.ts.map +1 -1
- package/dist/wu-done-preflight-checks.js +21 -15
- package/dist/wu-done-preflight-checks.js.map +1 -1
- package/dist/wu-done-rebase.d.ts.map +1 -1
- package/dist/wu-done-rebase.js +10 -8
- package/dist/wu-done-rebase.js.map +1 -1
- package/dist/wu-done-retry-helpers.d.ts.map +1 -1
- package/dist/wu-done-retry-helpers.js +13 -11
- package/dist/wu-done-retry-helpers.js.map +1 -1
- package/dist/wu-done-validation.d.ts.map +1 -1
- package/dist/wu-done-validation.js +4 -2
- package/dist/wu-done-validation.js.map +1 -1
- package/dist/wu-done-worktree-services.d.ts.map +1 -1
- package/dist/wu-done-worktree-services.js +4 -2
- package/dist/wu-done-worktree-services.js.map +1 -1
- package/dist/wu-done-worktree.d.ts.map +1 -1
- package/dist/wu-done-worktree.js +4 -2
- package/dist/wu-done-worktree.js.map +1 -1
- package/dist/wu-git-constants.d.ts +1 -175
- package/dist/wu-git-constants.d.ts.map +1 -1
- package/dist/wu-git-constants.js +4 -175
- package/dist/wu-git-constants.js.map +1 -1
- package/dist/wu-helpers.d.ts +24 -0
- package/dist/wu-helpers.d.ts.map +1 -1
- package/dist/wu-helpers.js +37 -4
- package/dist/wu-helpers.js.map +1 -1
- package/dist/wu-id-format.d.ts +1 -137
- package/dist/wu-id-format.d.ts.map +1 -1
- package/dist/wu-id-format.js +2 -249
- package/dist/wu-id-format.js.map +1 -1
- package/dist/wu-id-generator.d.ts.map +1 -1
- package/dist/wu-id-generator.js +8 -5
- package/dist/wu-id-generator.js.map +1 -1
- package/dist/wu-paths-constants.d.ts +1 -253
- package/dist/wu-paths-constants.d.ts.map +1 -1
- package/dist/wu-paths-constants.js +4 -273
- package/dist/wu-paths-constants.js.map +1 -1
- package/dist/wu-paths.d.ts +1 -274
- package/dist/wu-paths.d.ts.map +1 -1
- package/dist/wu-paths.js +4 -236
- package/dist/wu-paths.js.map +1 -1
- package/dist/wu-rules-resolvers.d.ts.map +1 -1
- package/dist/wu-rules-resolvers.js +11 -6
- package/dist/wu-rules-resolvers.js.map +1 -1
- package/dist/wu-schema.d.ts +1 -830
- package/dist/wu-schema.d.ts.map +1 -1
- package/dist/wu-schema.js +4 -929
- package/dist/wu-schema.js.map +1 -1
- package/dist/wu-spawn-helpers.d.ts.map +1 -1
- package/dist/wu-spawn-helpers.js +5 -2
- package/dist/wu-spawn-helpers.js.map +1 -1
- package/dist/wu-spawn.d.ts +2 -2
- package/dist/wu-spawn.d.ts.map +1 -1
- package/dist/wu-spawn.js +2 -2
- package/dist/wu-spawn.js.map +1 -1
- package/dist/wu-state-schema.d.ts +1 -291
- package/dist/wu-state-schema.d.ts.map +1 -1
- package/dist/wu-state-schema.js +4 -212
- package/dist/wu-state-schema.js.map +1 -1
- package/dist/wu-status-transition.d.ts +3 -1
- package/dist/wu-status-transition.d.ts.map +1 -1
- package/dist/wu-status-transition.js +9 -24
- package/dist/wu-status-transition.js.map +1 -1
- package/dist/wu-statuses.d.ts +1 -208
- package/dist/wu-statuses.d.ts.map +1 -1
- package/dist/wu-statuses.js +4 -242
- package/dist/wu-statuses.js.map +1 -1
- package/dist/wu-transaction-collectors.d.ts +1 -0
- package/dist/wu-transaction-collectors.d.ts.map +1 -1
- package/dist/wu-transaction-collectors.js +13 -8
- package/dist/wu-transaction-collectors.js.map +1 -1
- package/dist/wu-type-helpers.d.ts +1 -27
- package/dist/wu-type-helpers.d.ts.map +1 -1
- package/dist/wu-type-helpers.js +4 -46
- package/dist/wu-type-helpers.js.map +1 -1
- package/dist/wu-ui-constants.d.ts +1 -235
- package/dist/wu-ui-constants.d.ts.map +1 -1
- package/dist/wu-ui-constants.js +5 -235
- package/dist/wu-ui-constants.js.map +1 -1
- package/dist/wu-validation-constants.d.ts +1 -60
- package/dist/wu-validation-constants.d.ts.map +1 -1
- package/dist/wu-validation-constants.js +4 -66
- package/dist/wu-validation-constants.js.map +1 -1
- package/dist/wu-yaml.d.ts +1 -112
- package/dist/wu-yaml.d.ts.map +1 -1
- package/dist/wu-yaml.js +4 -304
- package/dist/wu-yaml.js.map +1 -1
- package/package.json +12 -9
- package/dist/coverage-gate.d.ts +0 -128
- package/dist/coverage-gate.d.ts.map +0 -1
- package/dist/coverage-gate.js +0 -211
- package/dist/coverage-gate.js.map +0 -1
- package/dist/gates-agent-mode.d.ts +0 -108
- 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-internal.d.ts +0 -54
- package/dist/gates-config-internal.d.ts.map +0 -1
- package/dist/gates-config-internal.js +0 -107
- package/dist/gates-config-internal.js.map +0 -1
- package/dist/gates-config.d.ts +0 -68
- package/dist/gates-config.d.ts.map +0 -1
- package/dist/gates-config.js +0 -193
- package/dist/gates-config.js.map +0 -1
- package/dist/gates-coverage.d.ts +0 -42
- package/dist/gates-coverage.d.ts.map +0 -1
- package/dist/gates-coverage.js +0 -162
- package/dist/gates-coverage.js.map +0 -1
- package/dist/gates-presets.d.ts +0 -52
- package/dist/gates-presets.d.ts.map +0 -1
- package/dist/gates-presets.js +0 -117
- package/dist/gates-presets.js.map +0 -1
- package/dist/gates-schemas.d.ts +0 -143
- package/dist/gates-schemas.d.ts.map +0 -1
- package/dist/gates-schemas.js +0 -67
- package/dist/gates-schemas.js.map +0 -1
- package/dist/package-manager-resolver.d.ts +0 -80
- package/dist/package-manager-resolver.d.ts.map +0 -1
- package/dist/package-manager-resolver.js +0 -245
- package/dist/package-manager-resolver.js.map +0 -1
- package/dist/resolve-policy.d.ts +0 -293
- package/dist/resolve-policy.d.ts.map +0 -1
- package/dist/resolve-policy.js +0 -303
- package/dist/resolve-policy.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-registry-store.d.ts","sourceRoot":"","sources":["../src/delegation-registry-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delegation-registry-store.d.ts","sourceRoot":"","sources":["../src/delegation-registry-store.ts"],"names":[],"mappings":"AAYA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AAkBzC,eAAO,MAAM,6BAA6B,8BAA8B,CAAC;AAMzE,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;gBAEnC,OAAO,EAAE,MAAM;IAQrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C3B,OAAO,CAAC,UAAU;YAkBJ,WAAW;IAanB,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,qBAAqB,EAC9B,gBAAgB,CAAC,EAAE,0BAA0B,EAC7C,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,sBAAsB,GACpC,OAAO,CAAC,MAAM,CAAC;IA6BZ,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjE,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBhG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,EAAE;IAOlD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAQvD,qBAAqB,IAAI,eAAe,EAAE;IAM1C,iBAAiB,IAAI,eAAe,EAAE;IAItC,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;CAGtD"}
|
|
@@ -1,86 +1,51 @@
|
|
|
1
1
|
// Copyright (c) 2026 Hellmai Ltd
|
|
2
2
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
3
|
/**
|
|
4
|
-
* Delegation Registry Store
|
|
4
|
+
* Delegation Registry Store compatibility surface.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Features:
|
|
10
|
-
* - Event sourcing with replay for current state
|
|
11
|
-
* - Atomic append operations
|
|
12
|
-
* - O(1) queries by parent WU, target WU, and status
|
|
13
|
-
*
|
|
14
|
-
* @see {@link packages/@lumenflow/cli/src/lib/__tests__/delegation-registry-store.test.ts} - Tests
|
|
15
|
-
* @see {@link packages/@lumenflow/cli/src/lib/delegation-registry-schema.ts} - Schema definitions
|
|
6
|
+
* Core keeps a local implementation so legacy imports remain usable in a
|
|
7
|
+
* source checkout without requiring sibling workspace `dist/` artifacts.
|
|
16
8
|
*/
|
|
17
9
|
import fs from 'node:fs/promises';
|
|
18
10
|
import path from 'node:path';
|
|
19
|
-
import { validateDelegationEvent, generateDelegationId, DelegationStatus, } from './delegation-registry-schema.js';
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
import { validateDelegationEvent, generateDelegationId, DelegationStatus, DELEGATION_SCHEMA_VERSION_V2, } from './delegation-registry-schema.js';
|
|
12
|
+
function createRegistryError(code, message) {
|
|
13
|
+
const error = new Error(message);
|
|
14
|
+
error.name = 'WUError';
|
|
15
|
+
error.code = code;
|
|
16
|
+
return error;
|
|
17
|
+
}
|
|
22
18
|
export const DELEGATION_REGISTRY_FILE_NAME = 'delegation-registry.jsonl';
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* Manages delegation registry state via event sourcing pattern.
|
|
27
|
-
* Events are appended to JSONL file, state is rebuilt by replaying events.
|
|
28
|
-
*/
|
|
19
|
+
function formatValidationIssues(issues) {
|
|
20
|
+
return issues.map((issue) => `${issue.path.join('.')}: ${issue.message}`).join(', ');
|
|
21
|
+
}
|
|
29
22
|
export class DelegationRegistryStore {
|
|
30
23
|
baseDir;
|
|
31
24
|
registryFilePath;
|
|
32
25
|
delegations;
|
|
33
26
|
byParent;
|
|
34
27
|
byTarget;
|
|
35
|
-
/**
|
|
36
|
-
* @param {string} baseDir - Directory containing .lumenflow/state/
|
|
37
|
-
*/
|
|
38
28
|
constructor(baseDir) {
|
|
39
29
|
this.baseDir = baseDir;
|
|
40
30
|
this.registryFilePath = path.join(baseDir, DELEGATION_REGISTRY_FILE_NAME);
|
|
41
|
-
// In-memory state (rebuilt from events)
|
|
42
31
|
this.delegations = new Map();
|
|
43
|
-
// Index: parentWuId -> delegationIds[]
|
|
44
32
|
this.byParent = new Map();
|
|
45
|
-
// Index: targetWuId -> delegationId
|
|
46
33
|
this.byTarget = new Map();
|
|
47
34
|
}
|
|
48
|
-
/**
|
|
49
|
-
* Loads and replays events from JSONL file into current state.
|
|
50
|
-
*
|
|
51
|
-
* Handles:
|
|
52
|
-
* - Missing file: returns empty state
|
|
53
|
-
* - Empty file: returns empty state
|
|
54
|
-
* - Empty lines: skipped gracefully
|
|
55
|
-
* - Malformed JSON: throws error with line info
|
|
56
|
-
* - Invalid events: throws validation error
|
|
57
|
-
*
|
|
58
|
-
* @returns {Promise<void>}
|
|
59
|
-
* @throws {Error} If file contains malformed JSON or invalid events
|
|
60
|
-
*
|
|
61
|
-
* @example
|
|
62
|
-
* const store = new DelegationRegistryStore('/path/to/project');
|
|
63
|
-
* await store.load();
|
|
64
|
-
* const pending = store.getPendingDelegations();
|
|
65
|
-
*/
|
|
66
35
|
async load() {
|
|
67
|
-
// Reset state
|
|
68
36
|
this.delegations.clear();
|
|
69
37
|
this.byParent.clear();
|
|
70
38
|
this.byTarget.clear();
|
|
71
|
-
// Check if file exists
|
|
72
39
|
let content;
|
|
73
40
|
try {
|
|
74
41
|
content = await fs.readFile(this.registryFilePath, 'utf-8');
|
|
75
42
|
}
|
|
76
43
|
catch (error) {
|
|
77
44
|
if (error.code === 'ENOENT') {
|
|
78
|
-
// File doesn't exist - return empty state
|
|
79
45
|
return;
|
|
80
46
|
}
|
|
81
47
|
throw error;
|
|
82
48
|
}
|
|
83
|
-
// Parse JSONL content
|
|
84
49
|
const lines = content.split('\n');
|
|
85
50
|
for (let i = 0; i < lines.length; i++) {
|
|
86
51
|
const rawLine = lines[i];
|
|
@@ -88,42 +53,27 @@ export class DelegationRegistryStore {
|
|
|
88
53
|
continue;
|
|
89
54
|
}
|
|
90
55
|
const line = rawLine.trim();
|
|
91
|
-
// Skip empty lines
|
|
92
56
|
if (!line) {
|
|
93
57
|
continue;
|
|
94
58
|
}
|
|
95
|
-
// Parse JSON line
|
|
96
59
|
let parsed;
|
|
97
60
|
try {
|
|
98
61
|
parsed = JSON.parse(line);
|
|
99
62
|
}
|
|
100
63
|
catch (error) {
|
|
101
|
-
|
|
64
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
65
|
+
throw createRegistryError('PARSE_ERROR', `Malformed JSON on line ${i + 1}: ${message}`);
|
|
102
66
|
}
|
|
103
|
-
// Validate against schema
|
|
104
67
|
const validation = validateDelegationEvent(parsed);
|
|
105
68
|
if (!validation.success) {
|
|
106
|
-
|
|
107
|
-
.map((issue) => `${issue.path.join('.')}: ${issue.message}`)
|
|
108
|
-
.join(', ');
|
|
109
|
-
throw createError(ErrorCodes.VALIDATION_ERROR, `Validation error on line ${i + 1}: ${issues}`);
|
|
69
|
+
throw createRegistryError('VALIDATION_ERROR', `Validation error on line ${i + 1}: ${formatValidationIssues(validation.error.issues)}`);
|
|
110
70
|
}
|
|
111
|
-
|
|
112
|
-
// Apply event to state (latest event for same ID wins)
|
|
113
|
-
this._applyEvent(event);
|
|
71
|
+
this.applyEvent(validation.data);
|
|
114
72
|
}
|
|
115
73
|
}
|
|
116
|
-
|
|
117
|
-
* Applies an event to the in-memory state.
|
|
118
|
-
* If event for same delegation ID exists, updates it (latest wins).
|
|
119
|
-
*
|
|
120
|
-
* @private
|
|
121
|
-
*/
|
|
122
|
-
_applyEvent(event) {
|
|
74
|
+
applyEvent(event) {
|
|
123
75
|
const { id, parentWuId, targetWuId } = event;
|
|
124
|
-
// Update main state map
|
|
125
76
|
this.delegations.set(id, event);
|
|
126
|
-
// Update parent index
|
|
127
77
|
if (!this.byParent.has(parentWuId)) {
|
|
128
78
|
this.byParent.set(parentWuId, []);
|
|
129
79
|
}
|
|
@@ -134,49 +84,17 @@ export class DelegationRegistryStore {
|
|
|
134
84
|
if (!parentDelegations.includes(id)) {
|
|
135
85
|
parentDelegations.push(id);
|
|
136
86
|
}
|
|
137
|
-
// Update target index
|
|
138
87
|
this.byTarget.set(targetWuId, id);
|
|
139
88
|
}
|
|
140
|
-
|
|
141
|
-
* Appends an event to the registry file.
|
|
142
|
-
*
|
|
143
|
-
* Uses append mode to avoid full file rewrite.
|
|
144
|
-
* Creates file and parent directories if they don't exist.
|
|
145
|
-
* Validates event before appending.
|
|
146
|
-
*
|
|
147
|
-
* @private
|
|
148
|
-
* @throws {Error} If event fails validation
|
|
149
|
-
*/
|
|
150
|
-
async _appendEvent(event) {
|
|
151
|
-
// Validate event before appending
|
|
89
|
+
async appendEvent(event) {
|
|
152
90
|
const validation = validateDelegationEvent(event);
|
|
153
91
|
if (!validation.success) {
|
|
154
|
-
|
|
155
|
-
.map((issue) => `${issue.path.join('.')}: ${issue.message}`)
|
|
156
|
-
.join(', ');
|
|
157
|
-
throw createError(ErrorCodes.VALIDATION_ERROR, `Validation error: ${issues}`);
|
|
92
|
+
throw createRegistryError('VALIDATION_ERROR', `Validation error: ${formatValidationIssues(validation.error.issues)}`);
|
|
158
93
|
}
|
|
159
|
-
const line = JSON.stringify(event) + '\n';
|
|
160
|
-
// Ensure parent directory exists before appending
|
|
161
94
|
await fs.mkdir(this.baseDir, { recursive: true });
|
|
162
|
-
|
|
163
|
-
await fs.appendFile(this.registryFilePath, line, 'utf-8');
|
|
95
|
+
await fs.appendFile(this.registryFilePath, JSON.stringify(event) + '\n', 'utf-8');
|
|
164
96
|
}
|
|
165
|
-
|
|
166
|
-
* Records a new delegation event with pending status.
|
|
167
|
-
*
|
|
168
|
-
* @param {string} parentWuId - Parent WU ID (orchestrator)
|
|
169
|
-
* @param {string} targetWuId - Target WU ID (delegated work)
|
|
170
|
-
* @param {string} lane - Lane for the delegated work
|
|
171
|
-
* @param {DelegationIntentValue} [intent] - Optional intent source (e.g., delegation)
|
|
172
|
-
* @param {string} [delegationId] - Optional pre-generated delegation ID
|
|
173
|
-
* @returns {Promise<string>} The generated delegation ID
|
|
174
|
-
* @throws {Error} If validation fails
|
|
175
|
-
*
|
|
176
|
-
* @example
|
|
177
|
-
* const delegationId = await store.record('WU-1000', 'WU-1001', 'Operations: Tooling');
|
|
178
|
-
*/
|
|
179
|
-
async record(parentWuId, targetWuId, lane, intent, briefAttestation, delegationId) {
|
|
97
|
+
async record(parentWuId, targetWuId, lane, intent, briefAttestation, delegationId, roleContract) {
|
|
180
98
|
const id = delegationId ?? generateDelegationId(parentWuId, targetWuId);
|
|
181
99
|
const event = {
|
|
182
100
|
id,
|
|
@@ -188,84 +106,52 @@ export class DelegationRegistryStore {
|
|
|
188
106
|
status: DelegationStatus.PENDING,
|
|
189
107
|
completedAt: null,
|
|
190
108
|
...(briefAttestation ? { briefAttestation } : {}),
|
|
109
|
+
...(roleContract
|
|
110
|
+
? {
|
|
111
|
+
schemaVersion: DELEGATION_SCHEMA_VERSION_V2,
|
|
112
|
+
requested_role: roleContract.requested_role,
|
|
113
|
+
actual_role: roleContract.actual_role,
|
|
114
|
+
capabilities: roleContract.capabilities,
|
|
115
|
+
ownership_scope: roleContract.ownership_scope,
|
|
116
|
+
}
|
|
117
|
+
: {}),
|
|
191
118
|
};
|
|
192
|
-
await this.
|
|
193
|
-
this.
|
|
119
|
+
await this.appendEvent(event);
|
|
120
|
+
this.applyEvent(event);
|
|
194
121
|
return id;
|
|
195
122
|
}
|
|
196
|
-
/**
|
|
197
|
-
* Updates the status of a delegation.
|
|
198
|
-
*
|
|
199
|
-
* @param {string} delegationId - Delegation ID to update
|
|
200
|
-
* @param {string} status - New status
|
|
201
|
-
* @returns {Promise<void>}
|
|
202
|
-
* @throws {Error} If delegation ID not found
|
|
203
|
-
*
|
|
204
|
-
* @example
|
|
205
|
-
* await store.updateStatus('dlg-a1b2', 'completed');
|
|
206
|
-
*/
|
|
207
123
|
async updateStatus(delegationId, status) {
|
|
208
124
|
const existing = this.delegations.get(delegationId);
|
|
209
125
|
if (!existing) {
|
|
210
|
-
throw
|
|
126
|
+
throw createRegistryError('DELEGATION_NOT_FOUND', `Delegation ID ${delegationId} not found`);
|
|
211
127
|
}
|
|
212
128
|
const event = {
|
|
213
129
|
...existing,
|
|
214
130
|
status: status,
|
|
215
131
|
completedAt: new Date().toISOString(),
|
|
216
132
|
};
|
|
217
|
-
await this.
|
|
218
|
-
this.
|
|
133
|
+
await this.appendEvent(event);
|
|
134
|
+
this.applyEvent(event);
|
|
219
135
|
}
|
|
220
|
-
/**
|
|
221
|
-
* Records claim-time pickup evidence for a delegation entry.
|
|
222
|
-
*
|
|
223
|
-
* WU-1605: This distinguishes intent-only delegation records from
|
|
224
|
-
* delegated work that was actually picked up via wu:claim.
|
|
225
|
-
*
|
|
226
|
-
* @param {string} delegationId - Delegation ID to update
|
|
227
|
-
* @param {string} pickedUpBy - Agent identity that claimed the target WU
|
|
228
|
-
* @param {string} [pickedUpAt] - Optional ISO timestamp (defaults to now)
|
|
229
|
-
* @returns {Promise<void>}
|
|
230
|
-
* @throws {Error} If delegation ID not found
|
|
231
|
-
*/
|
|
232
136
|
async recordPickup(delegationId, pickedUpBy, pickedUpAt) {
|
|
233
137
|
const existing = this.delegations.get(delegationId);
|
|
234
138
|
if (!existing) {
|
|
235
|
-
throw
|
|
139
|
+
throw createRegistryError('DELEGATION_NOT_FOUND', `Delegation ID ${delegationId} not found`);
|
|
236
140
|
}
|
|
237
141
|
const event = {
|
|
238
142
|
...existing,
|
|
239
143
|
pickedUpBy,
|
|
240
144
|
pickedUpAt: pickedUpAt ?? new Date().toISOString(),
|
|
241
145
|
};
|
|
242
|
-
await this.
|
|
243
|
-
this.
|
|
146
|
+
await this.appendEvent(event);
|
|
147
|
+
this.applyEvent(event);
|
|
244
148
|
}
|
|
245
|
-
/**
|
|
246
|
-
* Gets all delegations for a parent WU.
|
|
247
|
-
*
|
|
248
|
-
* @param {string} parentWuId - Parent WU ID
|
|
249
|
-
* @returns {DelegationEvent[]} Array of delegation events
|
|
250
|
-
*
|
|
251
|
-
* @example
|
|
252
|
-
* const delegations = store.getByParent('WU-1000');
|
|
253
|
-
*/
|
|
254
149
|
getByParent(parentWuId) {
|
|
255
150
|
const delegationIds = this.byParent.get(parentWuId) ?? [];
|
|
256
151
|
return delegationIds
|
|
257
152
|
.map((id) => this.delegations.get(id))
|
|
258
153
|
.filter((event) => event !== undefined);
|
|
259
154
|
}
|
|
260
|
-
/**
|
|
261
|
-
* Gets delegation for a target WU.
|
|
262
|
-
*
|
|
263
|
-
* @param {string} targetWuId - Target WU ID
|
|
264
|
-
* @returns {DelegationEvent | null} Delegation event or null
|
|
265
|
-
*
|
|
266
|
-
* @example
|
|
267
|
-
* const delegation = store.getByTarget('WU-1001');
|
|
268
|
-
*/
|
|
269
155
|
getByTarget(targetWuId) {
|
|
270
156
|
const delegationId = this.byTarget.get(targetWuId);
|
|
271
157
|
if (!delegationId) {
|
|
@@ -273,37 +159,12 @@ export class DelegationRegistryStore {
|
|
|
273
159
|
}
|
|
274
160
|
return this.delegations.get(delegationId) ?? null;
|
|
275
161
|
}
|
|
276
|
-
/**
|
|
277
|
-
* Gets all pending delegations.
|
|
278
|
-
*
|
|
279
|
-
* @returns {DelegationEvent[]} Array of pending delegation events
|
|
280
|
-
*
|
|
281
|
-
* @example
|
|
282
|
-
* const pending = store.getPendingDelegations();
|
|
283
|
-
*/
|
|
284
162
|
getPendingDelegations() {
|
|
285
163
|
return Array.from(this.delegations.values()).filter((delegation) => delegation.status === DelegationStatus.PENDING);
|
|
286
164
|
}
|
|
287
|
-
/**
|
|
288
|
-
* Gets all delegations as an array.
|
|
289
|
-
*
|
|
290
|
-
* @returns {DelegationEvent[]} Array of all delegation events
|
|
291
|
-
*
|
|
292
|
-
* @example
|
|
293
|
-
* const allDelegations = store.getAllDelegations();
|
|
294
|
-
*/
|
|
295
165
|
getAllDelegations() {
|
|
296
166
|
return Array.from(this.delegations.values());
|
|
297
167
|
}
|
|
298
|
-
/**
|
|
299
|
-
* Gets delegation by ID.
|
|
300
|
-
*
|
|
301
|
-
* @param {string} delegationId - Delegation ID
|
|
302
|
-
* @returns {DelegationEvent | null} Delegation event or null
|
|
303
|
-
*
|
|
304
|
-
* @example
|
|
305
|
-
* const delegation = store.getById('dlg-a1b2');
|
|
306
|
-
*/
|
|
307
168
|
getById(delegationId) {
|
|
308
169
|
return this.delegations.get(delegationId) ?? null;
|
|
309
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-registry-store.js","sourceRoot":"","sources":["../src/delegation-registry-store.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"delegation-registry-store.js","sourceRoot":"","sources":["../src/delegation-registry-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference path="./types.d.ts" />
|
|
2
|
-
import {
|
|
2
|
+
import { type DelegationOwnershipScope, type DelegationRoleDescriptor, type DelegationSchemaVersion } from './delegation-registry-schema.js';
|
|
3
3
|
interface DelegationRecord {
|
|
4
4
|
id: string;
|
|
5
5
|
parentWuId: string;
|
|
@@ -10,6 +10,11 @@ interface DelegationRecord {
|
|
|
10
10
|
completedAt: string | null;
|
|
11
11
|
pickedUpAt?: string;
|
|
12
12
|
pickedUpBy?: string;
|
|
13
|
+
schemaVersion?: DelegationSchemaVersion;
|
|
14
|
+
requested_role?: DelegationRoleDescriptor;
|
|
15
|
+
actual_role?: DelegationRoleDescriptor;
|
|
16
|
+
capabilities?: string[];
|
|
17
|
+
ownership_scope?: DelegationOwnershipScope;
|
|
13
18
|
}
|
|
14
19
|
interface DelegationTreeNode {
|
|
15
20
|
wuId: string;
|
|
@@ -18,36 +23,23 @@ interface DelegationTreeNode {
|
|
|
18
23
|
lane: string | null;
|
|
19
24
|
delegatedAt: string | null;
|
|
20
25
|
children: DelegationTreeNode[];
|
|
26
|
+
schemaVersion?: DelegationSchemaVersion;
|
|
27
|
+
requested_role?: DelegationRoleDescriptor;
|
|
28
|
+
actual_role?: DelegationRoleDescriptor;
|
|
29
|
+
capabilities?: string[];
|
|
30
|
+
ownership_scope?: DelegationOwnershipScope;
|
|
21
31
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Status indicators for terminal output.
|
|
24
|
-
*/
|
|
25
32
|
export declare const STATUS_INDICATORS: Readonly<{
|
|
26
|
-
[DelegationStatus.COMPLETED]: "✓";
|
|
27
33
|
pending: "○";
|
|
34
|
+
completed: "✓";
|
|
28
35
|
timeout: "⏱";
|
|
29
36
|
crashed: "✗";
|
|
30
37
|
escalated: "!";
|
|
31
38
|
}>;
|
|
32
|
-
/**
|
|
33
|
-
* Builds a delegation tree from flat delegation events.
|
|
34
|
-
*/
|
|
35
39
|
export declare function buildDelegationTree(delegations: DelegationRecord[], rootWuId: string): DelegationTreeNode;
|
|
36
|
-
/**
|
|
37
|
-
* Formats a delegation tree for terminal display.
|
|
38
|
-
*/
|
|
39
40
|
export declare function formatDelegationTree(tree: DelegationTreeNode): string;
|
|
40
|
-
/**
|
|
41
|
-
* Gets all delegations for a WU (direct + descendants).
|
|
42
|
-
*/
|
|
43
41
|
export declare function getDelegationsByWU(wuId: string, baseDir: string): Promise<DelegationRecord[]>;
|
|
44
|
-
/**
|
|
45
|
-
* Gets all delegations for an initiative.
|
|
46
|
-
*/
|
|
47
42
|
export declare function getDelegationsByInitiative(initiativeId: string, registryDir: string, wuDir: string): Promise<DelegationRecord[]>;
|
|
48
|
-
/**
|
|
49
|
-
* Converts a delegation tree to JSON.
|
|
50
|
-
*/
|
|
51
43
|
export declare function treeToJSON(tree: DelegationTreeNode): DelegationTreeNode;
|
|
52
44
|
export {};
|
|
53
45
|
//# sourceMappingURL=delegation-tree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-tree.d.ts","sourceRoot":"","sources":["../src/delegation-tree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delegation-tree.d.ts","sourceRoot":"","sources":["../src/delegation-tree.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAC;AAmBzC,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAED,eAAO,MAAM,iBAAiB;;;;;;EAM5B,CAAC;AA6CH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,gBAAgB,EAAE,EAC/B,QAAQ,EAAE,MAAM,GACf,kBAAkB,CAwCpB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CA4BrE;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAwC7B;AAED,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAmB7B;AA+BD,wBAAgB,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAcvE"}
|
package/dist/delegation-tree.js
CHANGED
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
// Copyright (c) 2026 Hellmai Ltd
|
|
2
2
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
3
|
/**
|
|
4
|
-
* Delegation Tree
|
|
4
|
+
* Delegation Tree compatibility surface.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* WU-2171: Extraction decision captured in ADR-006; delegation remains in core until
|
|
9
|
-
* extraction triggers are met.
|
|
6
|
+
* Core keeps a local implementation so delegation visualization helpers remain
|
|
7
|
+
* available from source checkouts without sibling workspace build artifacts.
|
|
10
8
|
*/
|
|
11
9
|
import fs from 'node:fs/promises';
|
|
12
10
|
import path from 'node:path';
|
|
13
11
|
import { parse as parseYAML } from 'yaml';
|
|
14
12
|
import { DelegationRegistryStore } from './delegation-registry-store.js';
|
|
15
|
-
import { DelegationStatus } from './delegation-registry-schema.js';
|
|
16
|
-
/**
|
|
17
|
-
* Status indicators for terminal output.
|
|
18
|
-
*/
|
|
13
|
+
import { DelegationStatus, } from './delegation-registry-schema.js';
|
|
19
14
|
export const STATUS_INDICATORS = Object.freeze({
|
|
20
|
-
[DelegationStatus.PENDING]: '\u25CB',
|
|
21
|
-
[DelegationStatus.COMPLETED]: '\u2713',
|
|
22
|
-
[DelegationStatus.TIMEOUT]: '\u23F1',
|
|
23
|
-
[DelegationStatus.CRASHED]: '\u2717',
|
|
15
|
+
[DelegationStatus.PENDING]: '\u25CB',
|
|
16
|
+
[DelegationStatus.COMPLETED]: '\u2713',
|
|
17
|
+
[DelegationStatus.TIMEOUT]: '\u23F1',
|
|
18
|
+
[DelegationStatus.CRASHED]: '\u2717',
|
|
24
19
|
[DelegationStatus.ESCALATED]: '!',
|
|
25
20
|
});
|
|
26
21
|
const TREE_CHARS = Object.freeze({
|
|
@@ -29,6 +24,22 @@ const TREE_CHARS = Object.freeze({
|
|
|
29
24
|
LAST_BRANCH: '\u2514',
|
|
30
25
|
HORIZONTAL: '\u2500',
|
|
31
26
|
});
|
|
27
|
+
function getStatusIndicator(status) {
|
|
28
|
+
switch (status) {
|
|
29
|
+
case DelegationStatus.PENDING:
|
|
30
|
+
return STATUS_INDICATORS[DelegationStatus.PENDING];
|
|
31
|
+
case DelegationStatus.COMPLETED:
|
|
32
|
+
return STATUS_INDICATORS[DelegationStatus.COMPLETED];
|
|
33
|
+
case DelegationStatus.TIMEOUT:
|
|
34
|
+
return STATUS_INDICATORS[DelegationStatus.TIMEOUT];
|
|
35
|
+
case DelegationStatus.CRASHED:
|
|
36
|
+
return STATUS_INDICATORS[DelegationStatus.CRASHED];
|
|
37
|
+
case DelegationStatus.ESCALATED:
|
|
38
|
+
return STATUS_INDICATORS[DelegationStatus.ESCALATED];
|
|
39
|
+
default:
|
|
40
|
+
return '?';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
32
43
|
function toDelegationRecord(record) {
|
|
33
44
|
return {
|
|
34
45
|
id: record.id,
|
|
@@ -40,11 +51,13 @@ function toDelegationRecord(record) {
|
|
|
40
51
|
completedAt: record.completedAt,
|
|
41
52
|
pickedUpAt: record.pickedUpAt,
|
|
42
53
|
pickedUpBy: record.pickedUpBy,
|
|
54
|
+
schemaVersion: record.schemaVersion,
|
|
55
|
+
requested_role: record.requested_role,
|
|
56
|
+
actual_role: record.actual_role,
|
|
57
|
+
capabilities: record.capabilities,
|
|
58
|
+
ownership_scope: record.ownership_scope,
|
|
43
59
|
};
|
|
44
60
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Builds a delegation tree from flat delegation events.
|
|
47
|
-
*/
|
|
48
61
|
export function buildDelegationTree(delegations, rootWuId) {
|
|
49
62
|
const root = {
|
|
50
63
|
wuId: rootWuId,
|
|
@@ -72,14 +85,16 @@ export function buildDelegationTree(delegations, rootWuId) {
|
|
|
72
85
|
lane: delegation.lane,
|
|
73
86
|
delegatedAt: delegation.delegatedAt,
|
|
74
87
|
children: buildChildren(delegation.targetWuId),
|
|
88
|
+
schemaVersion: delegation.schemaVersion,
|
|
89
|
+
requested_role: delegation.requested_role,
|
|
90
|
+
actual_role: delegation.actual_role,
|
|
91
|
+
capabilities: delegation.capabilities,
|
|
92
|
+
ownership_scope: delegation.ownership_scope,
|
|
75
93
|
}));
|
|
76
94
|
};
|
|
77
95
|
root.children = buildChildren(rootWuId);
|
|
78
96
|
return root;
|
|
79
97
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Formats a delegation tree for terminal display.
|
|
82
|
-
*/
|
|
83
98
|
export function formatDelegationTree(tree) {
|
|
84
99
|
const lines = [];
|
|
85
100
|
lines.push(`${tree.wuId} (root)`);
|
|
@@ -93,7 +108,7 @@ export function formatDelegationTree(tree) {
|
|
|
93
108
|
const branch = isLast
|
|
94
109
|
? `${TREE_CHARS.LAST_BRANCH}${TREE_CHARS.HORIZONTAL}${TREE_CHARS.HORIZONTAL}`
|
|
95
110
|
: `${TREE_CHARS.BRANCH}${TREE_CHARS.HORIZONTAL}${TREE_CHARS.HORIZONTAL}`;
|
|
96
|
-
const indicator =
|
|
111
|
+
const indicator = getStatusIndicator(child.status);
|
|
97
112
|
const delegationInfo = child.delegationId ? ` [${child.delegationId}]` : '';
|
|
98
113
|
const laneInfo = child.lane ? ` (${child.lane})` : '';
|
|
99
114
|
lines.push(`${prefix}${branch} ${indicator} ${child.wuId}${delegationInfo}${laneInfo}`);
|
|
@@ -104,9 +119,6 @@ export function formatDelegationTree(tree) {
|
|
|
104
119
|
formatChildren(tree.children, '');
|
|
105
120
|
return lines.join('\n');
|
|
106
121
|
}
|
|
107
|
-
/**
|
|
108
|
-
* Gets all delegations for a WU (direct + descendants).
|
|
109
|
-
*/
|
|
110
122
|
export async function getDelegationsByWU(wuId, baseDir) {
|
|
111
123
|
const store = new DelegationRegistryStore(baseDir);
|
|
112
124
|
try {
|
|
@@ -143,9 +155,6 @@ export async function getDelegationsByWU(wuId, baseDir) {
|
|
|
143
155
|
}
|
|
144
156
|
return result;
|
|
145
157
|
}
|
|
146
|
-
/**
|
|
147
|
-
* Gets all delegations for an initiative.
|
|
148
|
-
*/
|
|
149
158
|
export async function getDelegationsByInitiative(initiativeId, registryDir, wuDir) {
|
|
150
159
|
const initiativeWuIds = await getWUsForInitiative(initiativeId, wuDir);
|
|
151
160
|
if (initiativeWuIds.size === 0) {
|
|
@@ -192,9 +201,6 @@ async function getWUsForInitiative(initiativeId, wuDir) {
|
|
|
192
201
|
}
|
|
193
202
|
return wuIds;
|
|
194
203
|
}
|
|
195
|
-
/**
|
|
196
|
-
* Converts a delegation tree to JSON.
|
|
197
|
-
*/
|
|
198
204
|
export function treeToJSON(tree) {
|
|
199
205
|
return {
|
|
200
206
|
wuId: tree.wuId,
|
|
@@ -202,6 +208,11 @@ export function treeToJSON(tree) {
|
|
|
202
208
|
status: tree.status,
|
|
203
209
|
lane: tree.lane,
|
|
204
210
|
delegatedAt: tree.delegatedAt,
|
|
211
|
+
...(tree.schemaVersion !== undefined ? { schemaVersion: tree.schemaVersion } : {}),
|
|
212
|
+
...(tree.requested_role !== undefined ? { requested_role: tree.requested_role } : {}),
|
|
213
|
+
...(tree.actual_role !== undefined ? { actual_role: tree.actual_role } : {}),
|
|
214
|
+
...(tree.capabilities !== undefined ? { capabilities: tree.capabilities } : {}),
|
|
215
|
+
...(tree.ownership_scope !== undefined ? { ownership_scope: tree.ownership_scope } : {}),
|
|
205
216
|
children: tree.children.map((child) => treeToJSON(child)),
|
|
206
217
|
};
|
|
207
218
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-tree.js","sourceRoot":"","sources":["../src/delegation-tree.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"delegation-tree.js","sourceRoot":"","sources":["../src/delegation-tree.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,gBAAgB,GAIjB,MAAM,iCAAiC,CAAC;AAkDzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,QAAQ;IACpC,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,QAAQ;IACtC,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,QAAQ;IACpC,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,QAAQ;IACpC,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG;CAClC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAC;AAEH,SAAS,kBAAkB,CAAC,MAAqB;IAC/C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrD,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrD,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrD,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAsB;IAChD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,eAAe,EAAE,MAAM,CAAC,eAAe;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,WAA+B,EAC/B,QAAgB;IAEhB,MAAM,IAAI,GAAuB;QAC/B,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACtE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAwB,EAAE;QACjE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACnE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,EAAE,UAAU,CAAC,UAAU;YAC3B,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC;YAC9C,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,eAAe,EAAE,UAAU,CAAC,eAAe;SAC5C,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;IAElC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,QAA8B,EAAE,MAAc,EAAQ,EAAE;QAC9E,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM;gBACnB,CAAC,CAAC,GAAG,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE;gBAC7E,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;YAC3E,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAEtD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC,CAAC;YAExF,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,KAAK,CAAC,CAAC;YAC7E,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,OAAe;IAEf,MAAM,KAAK,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IAErB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAqB,CAAC;QACxE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,YAAoB,EACpB,WAAmB,EACnB,KAAa;IAEb,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACvE,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAQ,KAAK,CAAC,iBAAiB,EAAuB;SACnD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAC1D,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,YAAoB,EAAE,KAAa;IACpE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,KAAe,CAAC;IAEpB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACzF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACnE,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAyC,CAAC;YACvE,IAAI,GAAG,CAAC,UAAU,KAAK,YAAY,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAClE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAwB;IACjD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAsB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KAC9E,CAAC;AACJ,CAAC"}
|
|
@@ -5,7 +5,7 @@ export declare const DELIVERY_REVIEW_COMMAND_CONTEXTS: {
|
|
|
5
5
|
readonly WU_PREP: "wu:prep";
|
|
6
6
|
};
|
|
7
7
|
export type DeliveryReviewCommandContext = (typeof DELIVERY_REVIEW_COMMAND_CONTEXTS)[keyof typeof DELIVERY_REVIEW_COMMAND_CONTEXTS];
|
|
8
|
-
export declare const DEFAULT_DELIVERY_REVIEW_SKIP_TYPES: readonly [import("
|
|
8
|
+
export declare const DEFAULT_DELIVERY_REVIEW_SKIP_TYPES: readonly [import("@lumenflow/packs-software-delivery/constants/wu-statuses").WUType, import("@lumenflow/packs-software-delivery/constants/wu-statuses").WUType];
|
|
9
9
|
export declare const DELIVERY_REVIEW_ARTIFACT_DIR: ".lumenflow/artifacts/delivery-review";
|
|
10
10
|
export declare const DeliveryReviewGateConfigSchema: z.ZodObject<{
|
|
11
11
|
enabled: z.ZodDefault<z.ZodBoolean>;
|