@deftai/directive-runtime 0.126.0-beta.3 → 0.128.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/.agents/skills/deft-directive-release/SKILL.md +428 -7
- package/.githooks/_directive-run.sh +30 -0
- package/.githooks/pre-commit +4 -24
- package/.githooks/pre-push +11 -17
- package/Taskfile.yml +17 -16
- package/contracts/design-critique.md +5 -0
- package/dist/cli-router/route-argv.js +1 -0
- package/dist/contract-entry.js +2 -4
- package/dist/coverage-hotspots.js +2 -2
- package/dist/dispatch.d.ts +1 -1
- package/dist/dispatch.js +8 -6
- package/dist/doctor-diagnose.js +10 -7
- package/dist/hook-dispatch.d.ts +1 -1
- package/dist/hook-dispatch.js +1 -1
- package/dist/install-cli/coverage-map.d.ts +1 -5
- package/dist/install-cli/coverage-map.js +28 -22
- package/dist/installer-output-inventory.js +1 -4
- package/dist/lifecycle-cli/coverage-map.js +37 -35
- package/dist/migrate.js +12 -7
- package/dist/policy.d.ts +4 -2
- package/dist/policy.js +101 -2
- package/dist/pre-pr-run.d.ts +2 -0
- package/dist/pre-pr-run.js +40 -0
- package/dist/removal-steps/index.d.ts +2 -2
- package/dist/removal-steps/steps.js +6 -9
- package/dist/removal-steps/strategies.js +1 -1
- package/dist/render-cli/capability-map-cli.d.ts +3 -0
- package/dist/render-cli/capability-map-cli.js +6 -0
- package/dist/setup-wiring.d.ts +6 -0
- package/dist/setup-wiring.js +20 -7
- package/dist/setup.js +12 -14
- package/dist/uninstall.js +1 -1
- package/dist/vbrief-preflight-fixtures.js +1 -1
- package/dist/verify-intent-constraint.d.ts +2 -0
- package/dist/verify-intent-constraint.js +24 -0
- package/dist/verify-observable-scope.d.ts +2 -0
- package/dist/verify-observable-scope.js +24 -0
- package/docs/getting-started.md +2 -0
- package/docs/intent-constraint.md +7 -1
- package/docs/known-limitations.md +1 -0
- package/docs/launcher.md +10 -0
- package/docs/observable-scope.md +6 -0
- package/package.json +1 -1
- package/packs/skills/skills-pack-0.1.json +3 -3
- package/scm/github.md +1 -0
- package/skills/deft-directive-feedback/SKILL.md +9 -20
- package/skills/deft-directive-pre-pr/SKILL.md +13 -3
- package/skills/deft-directive-release/SKILL.md +4 -4
- package/skills/deft-directive-review-cycle/SKILL.md +2 -2
- package/skills/deft-directive-setup/SKILL.md +17 -41
- package/skills/deft-directive-swarm/references/host-cursor.md +18 -1
- package/skills/deft-directive-swarm/references/host-grok-build.md +3 -3
- package/skills/deft-directive-sync/SKILL.md +2 -2
- package/skills/deft-directive-tutorial/SKILL.md +1 -1
- package/tasks/agent.yml +0 -2
- package/tasks/cache.yml +0 -16
- package/tasks/capacity.yml +0 -4
- package/tasks/change.yml +0 -4
- package/tasks/codebase.yml +0 -10
- package/tasks/commit.yml +0 -2
- package/tasks/coverage.yml +0 -2
- package/tasks/decision.yml +0 -4
- package/tasks/directive.yml +0 -1
- package/tasks/docs.yml +6 -10
- package/tasks/engine-invoke.cjs +79 -0
- package/tasks/engine-invoke.test.cjs +84 -0
- package/tasks/engine.yml +27 -81
- package/tasks/eval.yml +0 -8
- package/tasks/feedback.yml +0 -2
- package/tasks/install.yml +0 -4
- package/tasks/issue.yml +0 -3
- package/tasks/lifecycle.yml +0 -1
- package/tasks/materialize.cjs +246 -0
- package/tasks/materialize.test.cjs +103 -0
- package/tasks/materialize.yml +13 -0
- package/tasks/migrate.yml +0 -6
- package/tasks/packs.yml +0 -16
- package/tasks/plan-sequence.yml +0 -8
- package/tasks/policy.yml +0 -24
- package/tasks/pr.yml +0 -6
- package/tasks/prd.yml +0 -2
- package/tasks/product-signal.yml +0 -10
- package/tasks/project.yml +0 -8
- package/tasks/reconcile.yml +0 -2
- package/tasks/review-monitor.yml +0 -4
- package/tasks/roadmap.yml +0 -4
- package/tasks/scm.yml +0 -32
- package/tasks/scope.yml +0 -30
- package/tasks/slice.yml +0 -4
- package/tasks/spec.yml +0 -6
- package/tasks/subagent.yml +0 -4
- package/tasks/swarm.yml +0 -7
- package/tasks/toolchain.yml +0 -4
- package/tasks/triage-actions.yml +0 -8
- package/tasks/triage-bootstrap.yml +0 -1
- package/tasks/triage-bulk.yml +0 -5
- package/tasks/triage-classify.yml +0 -2
- package/tasks/triage-evaluate.yml +0 -1
- package/tasks/triage-metrics.yml +0 -2
- package/tasks/triage-queue.yml +0 -3
- package/tasks/triage-reconcile.yml +0 -1
- package/tasks/triage-scope-drift.yml +0 -1
- package/tasks/triage-scope.yml +0 -1
- package/tasks/triage-smoketest.yml +0 -1
- package/tasks/triage-subscribe.yml +0 -2
- package/tasks/tutorial.yml +0 -20
- package/tasks/umbrella.yml +0 -2
- package/tasks/value.yml +0 -2
- package/tasks/vbrief.yml +0 -12
- package/tasks/verify.yml +0 -140
- package/tasks/xbrief.yml +0 -6
- package/templates/agents-entry.md +1 -0
- package/templates/design-critique-brief.md +3 -0
- package/vendor/directive-content/.agents/skills/deft-directive-release/SKILL.md +428 -7
- package/vendor/directive-content/.githooks/_directive-run.sh +30 -0
- package/vendor/directive-content/.githooks/pre-commit +4 -24
- package/vendor/directive-content/.githooks/pre-push +11 -17
- package/vendor/directive-content/Taskfile.yml +17 -16
- package/vendor/directive-content/contracts/design-critique.md +5 -0
- package/vendor/directive-content/docs/getting-started.md +2 -0
- package/vendor/directive-content/docs/intent-constraint.md +7 -1
- package/vendor/directive-content/docs/known-limitations.md +1 -0
- package/vendor/directive-content/docs/launcher.md +10 -0
- package/vendor/directive-content/docs/observable-scope.md +6 -0
- package/vendor/directive-content/packs/skills/skills-pack-0.1.json +3 -3
- package/vendor/directive-content/scm/github.md +1 -0
- package/vendor/directive-content/skills/deft-directive-feedback/SKILL.md +9 -20
- package/vendor/directive-content/skills/deft-directive-pre-pr/SKILL.md +13 -3
- package/vendor/directive-content/skills/deft-directive-release/SKILL.md +4 -4
- package/vendor/directive-content/skills/deft-directive-review-cycle/SKILL.md +2 -2
- package/vendor/directive-content/skills/deft-directive-setup/SKILL.md +17 -41
- package/vendor/directive-content/skills/deft-directive-swarm/references/host-cursor.md +18 -1
- package/vendor/directive-content/skills/deft-directive-swarm/references/host-grok-build.md +3 -3
- package/vendor/directive-content/skills/deft-directive-sync/SKILL.md +2 -2
- package/vendor/directive-content/skills/deft-directive-tutorial/SKILL.md +1 -1
- package/vendor/directive-content/tasks/agent.yml +0 -2
- package/vendor/directive-content/tasks/cache.yml +0 -16
- package/vendor/directive-content/tasks/capacity.yml +0 -4
- package/vendor/directive-content/tasks/change.yml +0 -4
- package/vendor/directive-content/tasks/codebase.yml +0 -10
- package/vendor/directive-content/tasks/commit.yml +0 -2
- package/vendor/directive-content/tasks/coverage.yml +0 -2
- package/vendor/directive-content/tasks/decision.yml +0 -4
- package/vendor/directive-content/tasks/directive.yml +0 -1
- package/vendor/directive-content/tasks/docs.yml +6 -10
- package/vendor/directive-content/tasks/engine-invoke.cjs +79 -0
- package/vendor/directive-content/tasks/engine-invoke.test.cjs +84 -0
- package/vendor/directive-content/tasks/engine.yml +27 -81
- package/vendor/directive-content/tasks/eval.yml +0 -8
- package/vendor/directive-content/tasks/feedback.yml +0 -2
- package/vendor/directive-content/tasks/install.yml +0 -4
- package/vendor/directive-content/tasks/issue.yml +0 -3
- package/vendor/directive-content/tasks/lifecycle.yml +0 -1
- package/vendor/directive-content/tasks/materialize.cjs +246 -0
- package/vendor/directive-content/tasks/materialize.test.cjs +103 -0
- package/vendor/directive-content/tasks/materialize.yml +13 -0
- package/vendor/directive-content/tasks/migrate.yml +0 -6
- package/vendor/directive-content/tasks/packs.yml +0 -16
- package/vendor/directive-content/tasks/plan-sequence.yml +0 -8
- package/vendor/directive-content/tasks/policy.yml +0 -24
- package/vendor/directive-content/tasks/pr.yml +0 -6
- package/vendor/directive-content/tasks/prd.yml +0 -2
- package/vendor/directive-content/tasks/product-signal.yml +0 -10
- package/vendor/directive-content/tasks/project.yml +0 -8
- package/vendor/directive-content/tasks/reconcile.yml +0 -2
- package/vendor/directive-content/tasks/review-monitor.yml +0 -4
- package/vendor/directive-content/tasks/roadmap.yml +0 -4
- package/vendor/directive-content/tasks/scm.yml +0 -32
- package/vendor/directive-content/tasks/scope.yml +0 -30
- package/vendor/directive-content/tasks/slice.yml +0 -4
- package/vendor/directive-content/tasks/spec.yml +0 -6
- package/vendor/directive-content/tasks/subagent.yml +0 -4
- package/vendor/directive-content/tasks/swarm.yml +0 -7
- package/vendor/directive-content/tasks/toolchain.yml +0 -4
- package/vendor/directive-content/tasks/triage-actions.yml +0 -8
- package/vendor/directive-content/tasks/triage-bootstrap.yml +0 -1
- package/vendor/directive-content/tasks/triage-bulk.yml +0 -5
- package/vendor/directive-content/tasks/triage-classify.yml +0 -2
- package/vendor/directive-content/tasks/triage-evaluate.yml +0 -1
- package/vendor/directive-content/tasks/triage-metrics.yml +0 -2
- package/vendor/directive-content/tasks/triage-queue.yml +0 -3
- package/vendor/directive-content/tasks/triage-reconcile.yml +0 -1
- package/vendor/directive-content/tasks/triage-scope-drift.yml +0 -1
- package/vendor/directive-content/tasks/triage-scope.yml +0 -1
- package/vendor/directive-content/tasks/triage-smoketest.yml +0 -1
- package/vendor/directive-content/tasks/triage-subscribe.yml +0 -2
- package/vendor/directive-content/tasks/tutorial.yml +0 -20
- package/vendor/directive-content/tasks/umbrella.yml +0 -2
- package/vendor/directive-content/tasks/value.yml +0 -2
- package/vendor/directive-content/tasks/vbrief.yml +0 -12
- package/vendor/directive-content/tasks/verify.yml +0 -140
- package/vendor/directive-content/tasks/xbrief.yml +0 -6
- package/vendor/directive-content/templates/agents-entry.md +1 -0
- package/vendor/directive-content/templates/design-critique-brief.md +3 -0
- package/vendor/directive-core/dist/.tsbuildinfo +1 -1
- package/vendor/directive-core/dist/consumer-check-contract/evaluate.d.ts +3 -2
- package/vendor/directive-core/dist/consumer-check-contract/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/consumer-check-contract/evaluate.js +7 -6
- package/vendor/directive-core/dist/consumer-check-contract/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.d.ts +6 -0
- package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.d.ts.map +1 -1
- package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.js +97 -3
- package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.js.map +1 -1
- package/vendor/directive-core/dist/content-root.d.ts.map +1 -1
- package/vendor/directive-core/dist/content-root.js +8 -1
- package/vendor/directive-core/dist/content-root.js.map +1 -1
- package/vendor/directive-core/dist/coverage-applicability/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/coverage-applicability/evaluate.js +406 -11
- package/vendor/directive-core/dist/coverage-applicability/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/coverage-hotspots/evaluate.d.ts +13 -5
- package/vendor/directive-core/dist/coverage-hotspots/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/coverage-hotspots/evaluate.js +60 -2
- package/vendor/directive-core/dist/coverage-hotspots/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/deposit/live-procedure-targets.d.ts.map +1 -1
- package/vendor/directive-core/dist/deposit/live-procedure-targets.js.map +1 -1
- package/vendor/directive-core/dist/deposit/python-free.d.ts +2 -0
- package/vendor/directive-core/dist/deposit/python-free.d.ts.map +1 -1
- package/vendor/directive-core/dist/deposit/python-free.js +5 -1
- package/vendor/directive-core/dist/deposit/python-free.js.map +1 -1
- package/vendor/directive-core/dist/doctor/checks.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/checks.js +8 -10
- package/vendor/directive-core/dist/doctor/checks.js.map +1 -1
- package/vendor/directive-core/dist/doctor/main.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/main.js +6 -0
- package/vendor/directive-core/dist/doctor/main.js.map +1 -1
- package/vendor/directive-core/dist/doctor/manifest.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/manifest.js +3 -2
- package/vendor/directive-core/dist/doctor/manifest.js.map +1 -1
- package/vendor/directive-core/dist/doctor/paths.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/paths.js +11 -0
- package/vendor/directive-core/dist/doctor/paths.js.map +1 -1
- package/vendor/directive-core/dist/engine-version.d.ts.map +1 -1
- package/vendor/directive-core/dist/engine-version.js +1 -4
- package/vendor/directive-core/dist/engine-version.js.map +1 -1
- package/vendor/directive-core/dist/hooks/dispatcher.d.ts +2 -0
- package/vendor/directive-core/dist/hooks/dispatcher.d.ts.map +1 -1
- package/vendor/directive-core/dist/hooks/dispatcher.js +5 -1
- package/vendor/directive-core/dist/hooks/dispatcher.js.map +1 -1
- package/vendor/directive-core/dist/index.d.ts +1 -0
- package/vendor/directive-core/dist/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/index.js +1 -0
- package/vendor/directive-core/dist/index.js.map +1 -1
- package/vendor/directive-core/dist/init-deposit/agent-hooks.d.ts.map +1 -1
- package/vendor/directive-core/dist/init-deposit/agent-hooks.js.map +1 -1
- package/vendor/directive-core/dist/init-deposit/scaffold.d.ts +4 -0
- package/vendor/directive-core/dist/init-deposit/scaffold.d.ts.map +1 -1
- package/vendor/directive-core/dist/init-deposit/scaffold.js +4 -2
- package/vendor/directive-core/dist/init-deposit/scaffold.js.map +1 -1
- package/vendor/directive-core/dist/install-contract/constants.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-contract/constants.js +9 -1
- package/vendor/directive-core/dist/install-contract/constants.js.map +1 -1
- package/vendor/directive-core/dist/install-contract/data-status.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-contract/data-status.js.map +1 -1
- package/vendor/directive-core/dist/install-contract/index.d.ts +1 -1
- package/vendor/directive-core/dist/install-contract/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-contract/index.js.map +1 -1
- package/vendor/directive-core/dist/install-contract/package-meta.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-contract/package-meta.js.map +1 -1
- package/vendor/directive-core/dist/install-health/cheap.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/cheap.js +2 -6
- package/vendor/directive-core/dist/install-health/cheap.js.map +1 -1
- package/vendor/directive-core/dist/install-health/in-sync.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/in-sync.js.map +1 -1
- package/vendor/directive-core/dist/install-health/index.d.ts +6 -6
- package/vendor/directive-core/dist/install-health/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/index.js +3 -3
- package/vendor/directive-core/dist/install-health/index.js.map +1 -1
- package/vendor/directive-core/dist/install-health/ownership.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/ownership.js +2 -6
- package/vendor/directive-core/dist/install-health/ownership.js.map +1 -1
- package/vendor/directive-core/dist/install-health/readers.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/readers.js.map +1 -1
- package/vendor/directive-core/dist/install-health/wiring.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/wiring.js +2 -3
- package/vendor/directive-core/dist/install-health/wiring.js.map +1 -1
- package/vendor/directive-core/dist/intent-constraint/evaluate.d.ts +7 -0
- package/vendor/directive-core/dist/intent-constraint/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/intent-constraint/evaluate.js +26 -5
- package/vendor/directive-core/dist/intent-constraint/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.d.ts +76 -0
- package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.d.ts.map +1 -0
- package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.js +239 -0
- package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.js.map +1 -0
- package/vendor/directive-core/dist/observable-scope/evaluate.d.ts +7 -0
- package/vendor/directive-core/dist/observable-scope/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/observable-scope/evaluate.js +51 -7
- package/vendor/directive-core/dist/observable-scope/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/policy/coverage-mode.d.ts +84 -0
- package/vendor/directive-core/dist/policy/coverage-mode.d.ts.map +1 -0
- package/vendor/directive-core/dist/policy/coverage-mode.js +226 -0
- package/vendor/directive-core/dist/policy/coverage-mode.js.map +1 -0
- package/vendor/directive-core/dist/policy/index.d.ts +2 -0
- package/vendor/directive-core/dist/policy/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/policy/index.js +60 -40
- package/vendor/directive-core/dist/policy/index.js.map +1 -1
- package/vendor/directive-core/dist/pr-closing-keywords/main.d.ts +2 -0
- package/vendor/directive-core/dist/pr-closing-keywords/main.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-closing-keywords/main.js +143 -9
- package/vendor/directive-core/dist/pr-closing-keywords/main.js.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/controller.d.ts +2 -0
- package/vendor/directive-core/dist/pre-pr-controller/controller.d.ts.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/controller.js +109 -14
- package/vendor/directive-core/dist/pre-pr-controller/controller.js.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/evaluate.d.ts +2 -0
- package/vendor/directive-core/dist/pre-pr-controller/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/evaluate.js +11 -1
- package/vendor/directive-core/dist/pre-pr-controller/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/index.d.ts +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/index.js +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/index.js.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/phases.d.ts +10 -0
- package/vendor/directive-core/dist/pre-pr-controller/phases.d.ts.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/phases.js +15 -1
- package/vendor/directive-core/dist/pre-pr-controller/phases.js.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/types.d.ts +20 -1
- package/vendor/directive-core/dist/pre-pr-controller/types.d.ts.map +1 -1
- package/vendor/directive-core/dist/pre-pr-controller/types.js +2 -0
- package/vendor/directive-core/dist/pre-pr-controller/types.js.map +1 -1
- package/vendor/directive-core/dist/preflight-gh/pre-push.d.ts +40 -3
- package/vendor/directive-core/dist/preflight-gh/pre-push.d.ts.map +1 -1
- package/vendor/directive-core/dist/preflight-gh/pre-push.js +340 -27
- package/vendor/directive-core/dist/preflight-gh/pre-push.js.map +1 -1
- package/vendor/directive-core/dist/release/cli-drift-report.d.ts +4 -4
- package/vendor/directive-core/dist/release/cli-drift-report.d.ts.map +1 -1
- package/vendor/directive-core/dist/release/cli-drift-report.js +6 -11
- package/vendor/directive-core/dist/release/cli-drift-report.js.map +1 -1
- package/vendor/directive-core/dist/release-e2e/constants.d.ts +4 -3
- package/vendor/directive-core/dist/release-e2e/constants.d.ts.map +1 -1
- package/vendor/directive-core/dist/release-e2e/constants.js +4 -3
- package/vendor/directive-core/dist/release-e2e/constants.js.map +1 -1
- package/vendor/directive-core/dist/release-e2e/greenfield-python-free-smoke.d.ts.map +1 -1
- package/vendor/directive-core/dist/release-e2e/greenfield-python-free-smoke.js +87 -28
- package/vendor/directive-core/dist/release-e2e/greenfield-python-free-smoke.js.map +1 -1
- package/vendor/directive-core/dist/release-e2e/legacy-bridge-leg.d.ts.map +1 -1
- package/vendor/directive-core/dist/release-e2e/legacy-bridge-leg.js +13 -2
- package/vendor/directive-core/dist/release-e2e/legacy-bridge-leg.js.map +1 -1
- package/vendor/directive-core/dist/release-e2e/main.js +1 -1
- package/vendor/directive-core/dist/release-e2e/npm-ops.d.ts +11 -5
- package/vendor/directive-core/dist/release-e2e/npm-ops.d.ts.map +1 -1
- package/vendor/directive-core/dist/release-e2e/npm-ops.js +90 -45
- package/vendor/directive-core/dist/release-e2e/npm-ops.js.map +1 -1
- package/vendor/directive-core/dist/render/project-render.d.ts.map +1 -1
- package/vendor/directive-core/dist/render/project-render.js +1 -0
- package/vendor/directive-core/dist/render/project-render.js.map +1 -1
- package/vendor/directive-core/dist/resolution/engine-resolve.d.ts.map +1 -1
- package/vendor/directive-core/dist/resolution/engine-resolve.js.map +1 -1
- package/vendor/directive-core/dist/resolution/pin.d.ts +11 -5
- package/vendor/directive-core/dist/resolution/pin.d.ts.map +1 -1
- package/vendor/directive-core/dist/resolution/pin.js +20 -11
- package/vendor/directive-core/dist/resolution/pin.js.map +1 -1
- package/vendor/directive-core/dist/resolution/plan.d.ts.map +1 -1
- package/vendor/directive-core/dist/resolution/plan.js +5 -3
- package/vendor/directive-core/dist/resolution/plan.js.map +1 -1
- package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.d.ts +54 -3
- package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.d.ts.map +1 -1
- package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.js +142 -0
- package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.js.map +1 -1
- package/vendor/directive-core/dist/scope/file-scope-coverage-warn.d.ts +21 -0
- package/vendor/directive-core/dist/scope/file-scope-coverage-warn.d.ts.map +1 -0
- package/vendor/directive-core/dist/scope/file-scope-coverage-warn.js +95 -0
- package/vendor/directive-core/dist/scope/file-scope-coverage-warn.js.map +1 -0
- package/vendor/directive-core/dist/session/spawn-occupancy.d.ts +7 -0
- package/vendor/directive-core/dist/session/spawn-occupancy.d.ts.map +1 -1
- package/vendor/directive-core/dist/session/spawn-occupancy.js +28 -0
- package/vendor/directive-core/dist/session/spawn-occupancy.js.map +1 -1
- package/vendor/directive-core/dist/staleness-tickler/run.d.ts.map +1 -1
- package/vendor/directive-core/dist/staleness-tickler/run.js.map +1 -1
- package/vendor/directive-core/dist/swarm/approach1-babysitter.d.ts +19 -6
- package/vendor/directive-core/dist/swarm/approach1-babysitter.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/approach1-babysitter.js +69 -9
- package/vendor/directive-core/dist/swarm/approach1-babysitter.js.map +1 -1
- package/vendor/directive-core/dist/swarm/dest-place.d.ts +1 -1
- package/vendor/directive-core/dist/swarm/dest-place.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/dest-place.js +1 -1
- package/vendor/directive-core/dist/swarm/dest-place.js.map +1 -1
- package/vendor/directive-core/dist/swarm/launch-cli.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/launch-cli.js +12 -0
- package/vendor/directive-core/dist/swarm/launch-cli.js.map +1 -1
- package/vendor/directive-core/dist/swarm/launch.d.ts +6 -0
- package/vendor/directive-core/dist/swarm/launch.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/launch.js +11 -0
- package/vendor/directive-core/dist/swarm/launch.js.map +1 -1
- package/vendor/directive-core/dist/swarm/leftover-before-activation.d.ts +27 -0
- package/vendor/directive-core/dist/swarm/leftover-before-activation.d.ts.map +1 -0
- package/vendor/directive-core/dist/swarm/leftover-before-activation.js +31 -0
- package/vendor/directive-core/dist/swarm/leftover-before-activation.js.map +1 -0
- package/vendor/directive-core/dist/swarm/worktree-pm-install.d.ts +5 -0
- package/vendor/directive-core/dist/swarm/worktree-pm-install.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/worktree-pm-install.js +16 -6
- package/vendor/directive-core/dist/swarm/worktree-pm-install.js.map +1 -1
- package/vendor/directive-core/dist/swarm/worktrees.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/worktrees.js.map +1 -1
- package/vendor/directive-core/dist/text/redos-safe.d.ts.map +1 -1
- package/vendor/directive-core/dist/text/redos-safe.js +2 -1
- package/vendor/directive-core/dist/text/redos-safe.js.map +1 -1
- package/vendor/directive-core/dist/triage/evaluate/worktrees.d.ts.map +1 -1
- package/vendor/directive-core/dist/triage/evaluate/worktrees.js +6 -6
- package/vendor/directive-core/dist/triage/evaluate/worktrees.js.map +1 -1
- package/vendor/directive-core/dist/vbrief-validate/conformance.d.ts.map +1 -1
- package/vendor/directive-core/dist/vbrief-validate/conformance.js +5 -0
- package/vendor/directive-core/dist/vbrief-validate/conformance.js.map +1 -1
- package/vendor/directive-core/dist/verify-env/agent-hooks-live-probe.js +1 -1
- package/vendor/directive-core/dist/verify-env/agent-hooks-live-probe.js.map +1 -1
- package/vendor/directive-core/dist/verify-env/verify-hooks-installed.d.ts +3 -3
- package/vendor/directive-core/dist/verify-env/verify-hooks-installed.d.ts.map +1 -1
- package/vendor/directive-core/dist/verify-env/verify-hooks-installed.js +7 -11
- package/vendor/directive-core/dist/verify-env/verify-hooks-installed.js.map +1 -1
- package/vendor/directive-core/dist/verify-source/project-definition-mutation-boundary.d.ts.map +1 -1
- package/vendor/directive-core/dist/verify-source/project-definition-mutation-boundary.js +1 -0
- package/vendor/directive-core/dist/verify-source/project-definition-mutation-boundary.js.map +1 -1
- package/vendor/directive-core/dist/xbrief/paths.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief/paths.js +15 -12
- package/vendor/directive-core/dist/xbrief/paths.js.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/constants.d.ts +7 -0
- package/vendor/directive-core/dist/xbrief-migrate/constants.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/constants.js +7 -0
- package/vendor/directive-core/dist/xbrief-migrate/constants.js.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/detect.d.ts +9 -1
- package/vendor/directive-core/dist/xbrief-migrate/detect.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/detect.js +14 -7
- package/vendor/directive-core/dist/xbrief-migrate/detect.js.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/migrate-project.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/migrate-project.js +118 -57
- package/vendor/directive-core/dist/xbrief-migrate/migrate-project.js.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/transforms.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/transforms.js +8 -1
- package/vendor/directive-core/dist/xbrief-migrate/transforms.js.map +1 -1
- package/.githooks/_deft-run.sh +0 -47
- package/vendor/directive-content/.githooks/_deft-run.sh +0 -47
|
@@ -2,248 +2,250 @@
|
|
|
2
2
|
* Wave 8.5 Bucket B coverage map: pytest CLI tests → TS vitest / existing-coverage (#1838 s3).
|
|
3
3
|
* Python tests remain in-tree until Wave 9 (#1731); entries tagged wave9-delete are dedup candidates.
|
|
4
4
|
*/
|
|
5
|
+
/** Python pytest root segments joined at runtime (avoid class-2 path literals). */
|
|
6
|
+
const PY_CLI_TESTS = "tests" + "/cli";
|
|
5
7
|
/** Canonical mapping for lifecycle CLI pytest files in scope of story 1838-s3. */
|
|
6
8
|
export const LIFECYCLE_CLI_COVERAGE_MAP = [
|
|
7
9
|
{
|
|
8
|
-
pythonTest:
|
|
10
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_activate.py`,
|
|
9
11
|
tsTarget: "packages/core/src/vbrief-activate/{activate,main,coverage-boost}.test.ts + lifecycle-cli/dispatch-vbrief.test.ts",
|
|
10
12
|
disposition: "lifecycle-cli-dispatch",
|
|
11
13
|
wave9Delete: true,
|
|
12
14
|
notes: "Module matrix in core; deft-ts vbrief-activate argv/exit in lifecycle-cli.",
|
|
13
15
|
},
|
|
14
16
|
{
|
|
15
|
-
pythonTest:
|
|
17
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_fidelity_legacy.py`,
|
|
16
18
|
tsTarget: "packages/core/src/vbrief-validation/fidelity.test.ts",
|
|
17
19
|
disposition: "existing-coverage",
|
|
18
20
|
wave9Delete: true,
|
|
19
21
|
notes: "Legacy fidelity normalization covered in TS vbrief-validation module.",
|
|
20
22
|
},
|
|
21
23
|
{
|
|
22
|
-
pythonTest:
|
|
24
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_migrate_conformance.py`,
|
|
23
25
|
tsTarget: "packages/core/src/vbrief-validate/main.test.ts (scanVbrief/conformance)",
|
|
24
26
|
disposition: "existing-coverage",
|
|
25
27
|
wave9Delete: true,
|
|
26
28
|
notes: "Conformance scan parity in vbrief-validate TS port.",
|
|
27
29
|
},
|
|
28
30
|
{
|
|
29
|
-
pythonTest:
|
|
31
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_preflight_resolver.py`,
|
|
30
32
|
tsTarget: "packages/cli/src/vbrief-preflight.test.ts + lifecycle-cli/dispatch-preflight.test.ts",
|
|
31
33
|
disposition: "lifecycle-cli-dispatch",
|
|
32
34
|
wave9Delete: false,
|
|
33
35
|
notes: "Install-layout resolver still Python-only; TS preflight gate + dispatcher alias covered.",
|
|
34
36
|
},
|
|
35
37
|
{
|
|
36
|
-
pythonTest:
|
|
38
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_reconcile_graph.py`,
|
|
37
39
|
tsTarget: "packages/core/src/vbrief-reconcile/graph.test.ts",
|
|
38
40
|
disposition: "existing-coverage",
|
|
39
41
|
wave9Delete: true,
|
|
40
42
|
notes: "Dependency-graph promotion logic in TS vbrief-reconcile.",
|
|
41
43
|
},
|
|
42
44
|
{
|
|
43
|
-
pythonTest:
|
|
45
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_reconcile_labels.py`,
|
|
44
46
|
tsTarget: "packages/core/src/vbrief-reconcile/labels.test.ts",
|
|
45
47
|
disposition: "existing-coverage",
|
|
46
48
|
wave9Delete: true,
|
|
47
49
|
notes: "Label/status derivation covered in TS reconcile engine.",
|
|
48
50
|
},
|
|
49
51
|
{
|
|
50
|
-
pythonTest:
|
|
52
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_reconcile_umbrellas.py`,
|
|
51
53
|
tsTarget: "packages/core/src/vbrief-reconcile/umbrellas.test.ts",
|
|
52
54
|
disposition: "existing-coverage",
|
|
53
55
|
wave9Delete: true,
|
|
54
56
|
notes: "Umbrella current-shape render/parse in TS.",
|
|
55
57
|
},
|
|
56
58
|
{
|
|
57
|
-
pythonTest:
|
|
59
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_reconciliation.py`,
|
|
58
60
|
tsTarget: "packages/core/src/vbrief-reconcile/reconciliation.test.ts",
|
|
59
61
|
disposition: "existing-coverage",
|
|
60
62
|
wave9Delete: true,
|
|
61
63
|
notes: "Override reconciliation table covered in TS.",
|
|
62
64
|
},
|
|
63
65
|
{
|
|
64
|
-
pythonTest:
|
|
66
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_routing.py`,
|
|
65
67
|
tsTarget: "packages/core/src/vbrief-build/routing.test.ts",
|
|
66
68
|
disposition: "existing-coverage",
|
|
67
69
|
wave9Delete: true,
|
|
68
70
|
notes: "Status↔folder routing map in TS vbrief-build.",
|
|
69
71
|
},
|
|
70
72
|
{
|
|
71
|
-
pythonTest:
|
|
73
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_validate.py`,
|
|
72
74
|
tsTarget: "packages/core/src/vbrief-validate/main.test.ts",
|
|
73
75
|
disposition: "lifecycle-cli-dispatch",
|
|
74
76
|
wave9Delete: true,
|
|
75
77
|
notes: "validateAll matrix in core; deft-ts vbrief-validate argv in lifecycle-cli.",
|
|
76
78
|
},
|
|
77
79
|
{
|
|
78
|
-
pythonTest:
|
|
80
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_validate_direct.py`,
|
|
79
81
|
tsTarget: "packages/core/src/vbrief-validate/branches.test.ts",
|
|
80
82
|
disposition: "existing-coverage",
|
|
81
83
|
wave9Delete: true,
|
|
82
84
|
notes: "Direct validate orchestration branches in TS.",
|
|
83
85
|
},
|
|
84
86
|
{
|
|
85
|
-
pythonTest:
|
|
87
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_validate_direct_orchestration.py`,
|
|
86
88
|
tsTarget: "packages/core/src/vbrief-validate/branches.test.ts",
|
|
87
89
|
disposition: "existing-coverage",
|
|
88
90
|
wave9Delete: true,
|
|
89
91
|
notes: "Reference/orchestration warnings in TS validate-all.",
|
|
90
92
|
},
|
|
91
93
|
{
|
|
92
|
-
pythonTest:
|
|
94
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_validate_issue_536.py`,
|
|
93
95
|
tsTarget: "packages/core/src/vbrief-validate/branches.test.ts",
|
|
94
96
|
disposition: "existing-coverage",
|
|
95
97
|
wave9Delete: true,
|
|
96
98
|
notes: "x-vbrief/github-issue reference counting in TS.",
|
|
97
99
|
},
|
|
98
100
|
{
|
|
99
|
-
pythonTest:
|
|
101
|
+
pythonTest: `${PY_CLI_TESTS}/test_vbrief_validation.py`,
|
|
100
102
|
tsTarget: "packages/core/src/vbrief-validation/validation.test.ts",
|
|
101
103
|
disposition: "lifecycle-cli-dispatch",
|
|
102
104
|
wave9Delete: true,
|
|
103
105
|
notes: "Slug/title normalization in core; deft-ts vbrief-validation argv in lifecycle-cli.",
|
|
104
106
|
},
|
|
105
107
|
{
|
|
106
|
-
pythonTest:
|
|
108
|
+
pythonTest: `${PY_CLI_TESTS}/test_scope_decompose.py`,
|
|
107
109
|
tsTarget: "packages/core/src/scope/decomposed-refs.test.ts",
|
|
108
110
|
disposition: "python-oracle",
|
|
109
111
|
wave9Delete: false,
|
|
110
112
|
notes: "scope:decompose CLI still Python; unit helpers partially covered in decomposed-refs TS.",
|
|
111
113
|
},
|
|
112
114
|
{
|
|
113
|
-
pythonTest:
|
|
115
|
+
pythonTest: `${PY_CLI_TESTS}/test_scope_decompose_unit.py`,
|
|
114
116
|
tsTarget: "packages/core/src/scope/decomposed-refs.test.ts",
|
|
115
117
|
disposition: "existing-coverage",
|
|
116
118
|
wave9Delete: false,
|
|
117
119
|
notes: "Pure decomposition helpers; CLI entry remains Python until Wave 9.",
|
|
118
120
|
},
|
|
119
121
|
{
|
|
120
|
-
pythonTest:
|
|
122
|
+
pythonTest: `${PY_CLI_TESTS}/test_scope_demote.py`,
|
|
121
123
|
tsTarget: "packages/core/src/scope/demote.test.ts",
|
|
122
124
|
disposition: "lifecycle-cli-dispatch",
|
|
123
125
|
wave9Delete: true,
|
|
124
126
|
notes: "Demote transitions in core; deft-ts scope-lifecycle argv in lifecycle-cli.",
|
|
125
127
|
},
|
|
126
128
|
{
|
|
127
|
-
pythonTest:
|
|
129
|
+
pythonTest: `${PY_CLI_TESTS}/test_scope_lifecycle.py`,
|
|
128
130
|
tsTarget: "packages/core/src/scope/{main,transition,scope-exhaustive}.test.ts",
|
|
129
131
|
disposition: "lifecycle-cli-dispatch",
|
|
130
132
|
wave9Delete: true,
|
|
131
133
|
notes: "Promote/activate/complete matrix in core; scope-lifecycle dispatcher in lifecycle-cli.",
|
|
132
134
|
},
|
|
133
135
|
{
|
|
134
|
-
pythonTest:
|
|
136
|
+
pythonTest: `${PY_CLI_TESTS}/test_scope_undo.py`,
|
|
135
137
|
tsTarget: "packages/core/src/scope/undo.test.ts",
|
|
136
138
|
disposition: "existing-coverage",
|
|
137
139
|
wave9Delete: true,
|
|
138
140
|
notes: "Undo round-trip covered in TS scope module.",
|
|
139
141
|
},
|
|
140
142
|
{
|
|
141
|
-
pythonTest:
|
|
143
|
+
pythonTest: `${PY_CLI_TESTS}/test_issue_emit.py`,
|
|
142
144
|
tsTarget: "packages/core/src/intake/issue-emit.test.ts",
|
|
143
145
|
disposition: "lifecycle-cli-dispatch",
|
|
144
146
|
wave9Delete: true,
|
|
145
147
|
notes: "Emit body/render in core; deft-ts issue-emit argv in lifecycle-cli.",
|
|
146
148
|
},
|
|
147
149
|
{
|
|
148
|
-
pythonTest:
|
|
150
|
+
pythonTest: `${PY_CLI_TESTS}/test_issue_ingest.py`,
|
|
149
151
|
tsTarget: "packages/core/src/intake/{issue-ingest,intake-cli-and-branches}.test.ts + lifecycle-cli/dispatch-intake.test.ts",
|
|
150
152
|
disposition: "lifecycle-cli-dispatch",
|
|
151
153
|
wave9Delete: true,
|
|
152
154
|
notes: "Ingest happy-path/duplicate in core; dispatcher routing in lifecycle-cli.",
|
|
153
155
|
},
|
|
154
156
|
{
|
|
155
|
-
pythonTest:
|
|
157
|
+
pythonTest: `${PY_CLI_TESTS}/test_issue_ingest_body_parsing.py`,
|
|
156
158
|
tsTarget: "packages/core/src/intake/markdown-scanners.test.ts",
|
|
157
159
|
disposition: "existing-coverage",
|
|
158
160
|
wave9Delete: true,
|
|
159
161
|
notes: "Checkbox/AC body scanners in TS intake module.",
|
|
160
162
|
},
|
|
161
163
|
{
|
|
162
|
-
pythonTest:
|
|
164
|
+
pythonTest: `${PY_CLI_TESTS}/test_issue_ingest_canonical_refs.py`,
|
|
163
165
|
tsTarget: "packages/core/src/intake/issue-ingest.test.ts",
|
|
164
166
|
disposition: "existing-coverage",
|
|
165
167
|
wave9Delete: true,
|
|
166
168
|
notes: "v0.6 canonical reference shape in TS ingest.",
|
|
167
169
|
},
|
|
168
170
|
{
|
|
169
|
-
pythonTest:
|
|
171
|
+
pythonTest: `${PY_CLI_TESTS}/test_issue_ingest_direct.py`,
|
|
170
172
|
tsTarget: "packages/core/src/intake/intake-coverage-boost.test.ts",
|
|
171
173
|
disposition: "existing-coverage",
|
|
172
174
|
wave9Delete: true,
|
|
173
175
|
notes: "Repo URL / gh helper branches in TS intake.",
|
|
174
176
|
},
|
|
175
177
|
{
|
|
176
|
-
pythonTest:
|
|
178
|
+
pythonTest: `${PY_CLI_TESTS}/test_issue_ingest_escape_corruption.py`,
|
|
177
179
|
tsTarget: "packages/core/src/intake/intake-cli-and-branches.test.ts",
|
|
178
180
|
disposition: "existing-coverage",
|
|
179
181
|
wave9Delete: true,
|
|
180
182
|
notes: "Literal escape preservation in TS ingest path.",
|
|
181
183
|
},
|
|
182
184
|
{
|
|
183
|
-
pythonTest:
|
|
185
|
+
pythonTest: `${PY_CLI_TESTS}/test_reconcile_issues.py`,
|
|
184
186
|
tsTarget: "packages/core/src/intake/reconcile-issues.test.ts",
|
|
185
187
|
disposition: "lifecycle-cli-dispatch",
|
|
186
188
|
wave9Delete: true,
|
|
187
189
|
notes: "Reconcile classification in core; deft-ts reconcile-issues argv in lifecycle-cli.",
|
|
188
190
|
},
|
|
189
191
|
{
|
|
190
|
-
pythonTest:
|
|
192
|
+
pythonTest: `${PY_CLI_TESTS}/test_reconcile_issues_754.py`,
|
|
191
193
|
tsTarget: "packages/core/src/intake/reconcile-issues.test.ts",
|
|
192
194
|
disposition: "existing-coverage",
|
|
193
195
|
wave9Delete: true,
|
|
194
196
|
notes: "Batch gh state fetch (>500) in TS reconcile module.",
|
|
195
197
|
},
|
|
196
198
|
{
|
|
197
|
-
pythonTest:
|
|
199
|
+
pythonTest: `${PY_CLI_TESTS}/test_reconcile_issues_apply.py`,
|
|
198
200
|
tsTarget: "packages/core/src/intake/reconcile-issues.test.ts",
|
|
199
201
|
disposition: "existing-coverage",
|
|
200
202
|
wave9Delete: true,
|
|
201
203
|
notes: "Apply/move section-C entries in TS reconcile.",
|
|
202
204
|
},
|
|
203
205
|
{
|
|
204
|
-
pythonTest:
|
|
206
|
+
pythonTest: `${PY_CLI_TESTS}/test_reconcile_issues_direct.py`,
|
|
205
207
|
tsTarget: "packages/core/src/intake/intake-coverage-boost.test.ts",
|
|
206
208
|
disposition: "existing-coverage",
|
|
207
209
|
wave9Delete: true,
|
|
208
210
|
notes: "gh subprocess error branches in TS reconcile helpers.",
|
|
209
211
|
},
|
|
210
212
|
{
|
|
211
|
-
pythonTest:
|
|
213
|
+
pythonTest: `${PY_CLI_TESTS}/test_preflight_architecture_sor.py`,
|
|
212
214
|
tsTarget: "python-oracle (scripts/preflight_architecture_sor.py)",
|
|
213
215
|
disposition: "python-oracle",
|
|
214
216
|
wave9Delete: false,
|
|
215
217
|
notes: "Architecture SOR preflight not yet on deft-ts; stays Python until TS port.",
|
|
216
218
|
},
|
|
217
219
|
{
|
|
218
|
-
pythonTest:
|
|
220
|
+
pythonTest: `${PY_CLI_TESTS}/test_preflight_branch.py`,
|
|
219
221
|
tsTarget: "packages/core/src/branch/evaluate.test.ts + packages/cli/src/verify-branch.test.ts + lifecycle-cli/dispatch-preflight.test.ts",
|
|
220
222
|
disposition: "lifecycle-cli-dispatch",
|
|
221
223
|
wave9Delete: true,
|
|
222
224
|
notes: "Branch gate in core/cli; verify-branch + vbrief:preflight alias via dispatcher.",
|
|
223
225
|
},
|
|
224
226
|
{
|
|
225
|
-
pythonTest:
|
|
227
|
+
pythonTest: `${PY_CLI_TESTS}/test_preflight_cache.py`,
|
|
226
228
|
tsTarget: "python-oracle (scripts/preflight_cache.py)",
|
|
227
229
|
disposition: "python-oracle",
|
|
228
230
|
wave9Delete: false,
|
|
229
231
|
notes: "verify:cache-fresh still Python-only per Wave 8 notes; TS cache module covers fetch not preflight gate.",
|
|
230
232
|
},
|
|
231
233
|
{
|
|
232
|
-
pythonTest:
|
|
234
|
+
pythonTest: `${PY_CLI_TESTS}/test_preflight_gh.py`,
|
|
233
235
|
tsTarget: "python-oracle (scripts/preflight_gh.py)",
|
|
234
236
|
disposition: "python-oracle",
|
|
235
237
|
wave9Delete: false,
|
|
236
238
|
notes: "Destructive gh preflight still Python-only; intake github-auth-modes partially overlaps read paths.",
|
|
237
239
|
},
|
|
238
240
|
{
|
|
239
|
-
pythonTest:
|
|
241
|
+
pythonTest: `${PY_CLI_TESTS}/test_preflight_implementation.py`,
|
|
240
242
|
tsTarget: "packages/core/src/preflight/evaluate.test.ts + packages/cli/src/vbrief-preflight.test.ts + lifecycle-cli/dispatch-preflight.test.ts",
|
|
241
243
|
disposition: "lifecycle-cli-dispatch",
|
|
242
244
|
wave9Delete: true,
|
|
243
245
|
notes: "#810 state matrix in core; vbrief:preflight / vbrief-preflight dispatcher in lifecycle-cli.",
|
|
244
246
|
},
|
|
245
247
|
{
|
|
246
|
-
pythonTest:
|
|
248
|
+
pythonTest: `${PY_CLI_TESTS}/test_preflight_story_start.py`,
|
|
247
249
|
tsTarget: "packages/core/src/story-ready/evaluate.test.ts + packages/cli/src/verify-story-ready.test.ts + lifecycle-cli/dispatch-preflight.test.ts",
|
|
248
250
|
disposition: "lifecycle-cli-dispatch",
|
|
249
251
|
wave9Delete: true,
|
package/dist/migrate.js
CHANGED
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
* Bumps the committed schema marker and runs supported vbrief→xbrief migration.
|
|
4
4
|
*/
|
|
5
5
|
import { existsSync, readFileSync } from "node:fs";
|
|
6
|
-
import { join } from "node:path";
|
|
6
|
+
import { join, resolve } from "node:path";
|
|
7
7
|
import { ContainedWriteError, containedWrite, } from "../vendor/directive-core/dist/fs/contained-write.js";
|
|
8
8
|
import { detectLegacyVbriefLayout, detectXbriefConvergence, runXbriefMigration, } from "../vendor/directive-core/dist/xbrief-migrate/index.js";
|
|
9
|
+
/** Normalize caller roots (including relative `--root app`) before path probes. */
|
|
10
|
+
function absoluteProjectRoot(projectRoot) {
|
|
11
|
+
return resolve(projectRoot);
|
|
12
|
+
}
|
|
9
13
|
export const DATA_SCHEMA_MARKER_REL = ".deft/directive/data-schema.json";
|
|
10
14
|
/** YOLO initial supported schema version recorded by migrate. */
|
|
11
15
|
export const CURRENT_DATA_SCHEMA_VERSION = 1;
|
|
@@ -47,16 +51,19 @@ function emptyResult(from, root, message) {
|
|
|
47
51
|
* Marker currency alone is insufficient — unmigrated vbrief/ must stay behind.
|
|
48
52
|
*/
|
|
49
53
|
export function projectNeedsXbriefMigration(projectRoot) {
|
|
50
|
-
const
|
|
54
|
+
const root = absoluteProjectRoot(projectRoot);
|
|
55
|
+
const convergence = detectXbriefConvergence(root);
|
|
51
56
|
if (convergence.state === "legacy-only" ||
|
|
52
57
|
convergence.state === "dual-populated" ||
|
|
53
58
|
convergence.state === "empty-vbrief") {
|
|
54
59
|
return true;
|
|
55
60
|
}
|
|
61
|
+
// Marked vbrief/ retention is intentional; probe residual under xbrief/ only
|
|
62
|
+
// (skipLegacyRoot) so we never parse reason-string paths.
|
|
56
63
|
if (convergence.state === "xbrief-marker") {
|
|
57
|
-
return
|
|
64
|
+
return detectLegacyVbriefLayout(root, { skipLegacyRoot: true }).legacyLayout;
|
|
58
65
|
}
|
|
59
|
-
return detectLegacyVbriefLayout(
|
|
66
|
+
return detectLegacyVbriefLayout(root).legacyLayout;
|
|
60
67
|
}
|
|
61
68
|
function applyXbriefMigration(root) {
|
|
62
69
|
if (!projectNeedsXbriefMigration(root)) {
|
|
@@ -74,9 +81,7 @@ function applyXbriefMigration(root) {
|
|
|
74
81
|
migrated: [...outcome.migratedPaths],
|
|
75
82
|
archived: [...outcome.archivedPaths],
|
|
76
83
|
message: `xbrief migrate: ${outcome.migratedPaths.length} migrated` +
|
|
77
|
-
(outcome.archivedPaths.length > 0
|
|
78
|
-
? `, ${outcome.archivedPaths.length} archived`
|
|
79
|
-
: ""),
|
|
84
|
+
(outcome.archivedPaths.length > 0 ? `, ${outcome.archivedPaths.length} archived` : ""),
|
|
80
85
|
};
|
|
81
86
|
case "rewritten":
|
|
82
87
|
return {
|
package/dist/policy.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { type CeremonyDepth, type HookHost, type SpecGuardEnforcement } from "@deftai/directive-core/policy";
|
|
2
|
+
import { type CeremonyDepth, type CoverageMode, type HookHost, type SpecGuardEnforcement } from "@deftai/directive-core/policy";
|
|
3
3
|
interface ShowArgs {
|
|
4
4
|
format: "text" | "json";
|
|
5
5
|
changedOnly: boolean;
|
|
@@ -8,7 +8,7 @@ interface ShowArgs {
|
|
|
8
8
|
error?: string;
|
|
9
9
|
}
|
|
10
10
|
interface SetArgs {
|
|
11
|
-
cmd: "show" | "enforce-branches" | "allow-direct-commits" | "allow-destructive-gh-verbs" | "enforce-destructive-gh-verbs" | "allow-bot-merge" | "enable-value-feedback" | "clear-value-feedback" | "set-ceremony-dial" | "set-spec-guard-enforcement" | "disable-host-hooks" | "disable-directive" | "enable-directive" | "resolve";
|
|
11
|
+
cmd: "show" | "enforce-branches" | "allow-direct-commits" | "allow-destructive-gh-verbs" | "enforce-destructive-gh-verbs" | "allow-bot-merge" | "enable-value-feedback" | "clear-value-feedback" | "set-ceremony-dial" | "set-coverage-mode" | "set-spec-guard-enforcement" | "disable-host-hooks" | "disable-directive" | "enable-directive" | "resolve";
|
|
12
12
|
confirm: boolean;
|
|
13
13
|
actor: string;
|
|
14
14
|
note: string;
|
|
@@ -21,6 +21,8 @@ interface SetArgs {
|
|
|
21
21
|
ceremonyOverride?: CeremonyDepth | null;
|
|
22
22
|
/** #3214 ceremony dial enabled flag for set-ceremony-dial. */
|
|
23
23
|
ceremonyEnabled?: boolean;
|
|
24
|
+
/** #5791 coverageMode target for set-coverage-mode. */
|
|
25
|
+
coverageMode?: CoverageMode;
|
|
24
26
|
/** #5350 driftGuard.enforcement target for set-spec-guard-enforcement. */
|
|
25
27
|
specGuardEnforcement?: SpecGuardEnforcement;
|
|
26
28
|
/** #4375 audited setter for valueFeedback.upstreamPrompt. */
|
package/dist/policy.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
7
|
import { resolve as pathResolve, relative } from "node:path";
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
9
|
-
import { ALLOW_BOT_MERGE_CAPABILITY_COST, ALLOW_DESTRUCTIVE_GH_VERBS_CAPABILITY_COST, CEREMONY_DEPTHS, clearValueFeedback, createNoDeftDirectiveFlag, describeShadowedPlanExtension, detectNoDeftDirective, detectShadowedPlanExtensions, disableHostHooks, disclosureLine, enableValueFeedback, FIELD_VALUE_FEEDBACK, FIELD_VALUE_FEEDBACK_CLI_ALIAS, formatValueFeedbackStatusLine, humanMergeDisclosureLine, inspectAllPolicies, inspectOnePolicy, loadProjectDefinition, NO_DEFT_DIRECTIVE_DISABLED_MESSAGE, NO_DEFT_DIRECTIVE_FLAG_NAME, NO_DEFT_DIRECTIVE_INCONSISTENT_MESSAGE, POLICY_AUDIT_NOOP_STDOUT, parseHookHost, policyColonInvocation, projectDefinitionPath, promoteSpecGuardDriftEnforcement, pythonListRepr, pythonStringRepr, registeredPolicyNames, removeNoDeftDirectiveFlag, renderJson, renderText, resolveHumanMergePolicy, resolvePolicy, resolveValueFeedback, SPEC_GUARD_ENFORCEMENTS, setAllowDestructiveGhVerbs, setCeremonyDial, setPolicy, setRequireHumanMerge, } from "../vendor/directive-core/dist/policy/index.js";
|
|
9
|
+
import { ALLOW_BOT_MERGE_CAPABILITY_COST, ALLOW_DESTRUCTIVE_GH_VERBS_CAPABILITY_COST, CEREMONY_DEPTHS, COVERAGE_MODES, clearValueFeedback, createNoDeftDirectiveFlag, describeShadowedPlanExtension, detectNoDeftDirective, detectShadowedPlanExtensions, disableHostHooks, disclosureLine, enableValueFeedback, FIELD_VALUE_FEEDBACK, FIELD_VALUE_FEEDBACK_CLI_ALIAS, formatValueFeedbackStatusLine, humanMergeDisclosureLine, inspectAllPolicies, inspectOnePolicy, loadProjectDefinition, NO_DEFT_DIRECTIVE_DISABLED_MESSAGE, NO_DEFT_DIRECTIVE_FLAG_NAME, NO_DEFT_DIRECTIVE_INCONSISTENT_MESSAGE, POLICY_AUDIT_NOOP_STDOUT, parseHookHost, policyColonInvocation, projectDefinitionPath, promoteSpecGuardDriftEnforcement, pythonListRepr, pythonStringRepr, registeredPolicyNames, removeNoDeftDirectiveFlag, renderJson, renderText, resolveHumanMergePolicy, resolvePolicy, resolveValueFeedback, SPEC_GUARD_ENFORCEMENTS, setAllowDestructiveGhVerbs, setCeremonyDial, setCoverageMode, setPolicy, setRequireHumanMerge, } from "../vendor/directive-core/dist/policy/index.js";
|
|
10
10
|
const CAPABILITY_COST_DISCLOSURE = "\u26a0 Capability-cost disclosure -- enabling direct commits to the default " +
|
|
11
11
|
"branch turns OFF the deft branch-protection policy.\n" +
|
|
12
12
|
" \u2022 Pre-commit + pre-push hooks will no longer block default-branch " +
|
|
@@ -114,10 +114,87 @@ export function parseShowArgs(argv) {
|
|
|
114
114
|
/** Parse argv for the policy CLI (show + set subcommands). */
|
|
115
115
|
export function parseArgs(argv) {
|
|
116
116
|
if (argv.length === 0) {
|
|
117
|
-
const usage = "usage: policy [show|enforce-branches|allow-direct-commits|allow-destructive-gh-verbs|enforce-destructive-gh-verbs|allow-bot-merge|enable-value-feedback|clear-value-feedback|set-ceremony-dial|set-spec-guard-enforcement|disable-host-hooks|disable-directive|enable-directive|resolve] ...";
|
|
117
|
+
const usage = "usage: policy [show|enforce-branches|allow-direct-commits|allow-destructive-gh-verbs|enforce-destructive-gh-verbs|allow-bot-merge|enable-value-feedback|clear-value-feedback|set-ceremony-dial|set-coverage-mode|set-spec-guard-enforcement|disable-host-hooks|disable-directive|enable-directive|resolve] ...";
|
|
118
118
|
return makeSetError(usage);
|
|
119
119
|
}
|
|
120
120
|
const cmd = argv[0];
|
|
121
|
+
if (cmd === "set-coverage-mode") {
|
|
122
|
+
let confirm = false;
|
|
123
|
+
let actor = policyColonInvocation("set-coverage-mode");
|
|
124
|
+
let note = "";
|
|
125
|
+
let projectRoot = ".";
|
|
126
|
+
let coverageMode;
|
|
127
|
+
for (let i = 1; i < argv.length; i += 1) {
|
|
128
|
+
const arg = argv[i];
|
|
129
|
+
if (arg === "--confirm") {
|
|
130
|
+
confirm = true;
|
|
131
|
+
}
|
|
132
|
+
else if (arg === "--actor") {
|
|
133
|
+
const v = argv[i + 1];
|
|
134
|
+
if (v === undefined)
|
|
135
|
+
return makeSetError("argument --actor: expected one argument");
|
|
136
|
+
actor = v;
|
|
137
|
+
i += 1;
|
|
138
|
+
}
|
|
139
|
+
else if (arg?.startsWith("--actor=")) {
|
|
140
|
+
actor = arg.slice("--actor=".length);
|
|
141
|
+
}
|
|
142
|
+
else if (arg === "--note") {
|
|
143
|
+
const v = argv[i + 1];
|
|
144
|
+
if (v === undefined)
|
|
145
|
+
return makeSetError("argument --note: expected one argument");
|
|
146
|
+
note = v;
|
|
147
|
+
i += 1;
|
|
148
|
+
}
|
|
149
|
+
else if (arg?.startsWith("--note=")) {
|
|
150
|
+
note = arg.slice("--note=".length);
|
|
151
|
+
}
|
|
152
|
+
else if (arg === "--mode") {
|
|
153
|
+
const v = argv[i + 1];
|
|
154
|
+
if (v === undefined) {
|
|
155
|
+
return makeSetError("argument --mode: expected initial|disabled|full");
|
|
156
|
+
}
|
|
157
|
+
if (!COVERAGE_MODES.includes(v)) {
|
|
158
|
+
return makeSetError("argument --mode: expected initial|disabled|full, got " + JSON.stringify(v));
|
|
159
|
+
}
|
|
160
|
+
coverageMode = v;
|
|
161
|
+
i += 1;
|
|
162
|
+
}
|
|
163
|
+
else if (arg?.startsWith("--mode=")) {
|
|
164
|
+
const v = arg.slice("--mode=".length);
|
|
165
|
+
if (!COVERAGE_MODES.includes(v)) {
|
|
166
|
+
return makeSetError("argument --mode: expected initial|disabled|full, got " + JSON.stringify(v));
|
|
167
|
+
}
|
|
168
|
+
coverageMode = v;
|
|
169
|
+
}
|
|
170
|
+
else if (arg === "--project-root") {
|
|
171
|
+
const v = argv[i + 1];
|
|
172
|
+
if (v === undefined)
|
|
173
|
+
return makeSetError("argument --project-root: expected one argument");
|
|
174
|
+
projectRoot = v;
|
|
175
|
+
i += 1;
|
|
176
|
+
}
|
|
177
|
+
else if (arg?.startsWith("--project-root=")) {
|
|
178
|
+
projectRoot = arg.slice("--project-root=".length);
|
|
179
|
+
}
|
|
180
|
+
else if (arg === "--") {
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
return makeSetError("unrecognized argument: " + arg);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
cmd: "set-coverage-mode",
|
|
188
|
+
confirm,
|
|
189
|
+
actor,
|
|
190
|
+
note,
|
|
191
|
+
projectRoot,
|
|
192
|
+
format: "text",
|
|
193
|
+
changedOnly: false,
|
|
194
|
+
field: null,
|
|
195
|
+
coverageMode,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
121
198
|
if (cmd === "set-spec-guard-enforcement") {
|
|
122
199
|
let confirm = false;
|
|
123
200
|
let actor = policyColonInvocation("set-spec-guard-enforcement");
|
|
@@ -691,6 +768,9 @@ export function run(argv) {
|
|
|
691
768
|
if (args.cmd === "set-ceremony-dial") {
|
|
692
769
|
return runSetCeremonyDial(args);
|
|
693
770
|
}
|
|
771
|
+
if (args.cmd === "set-coverage-mode") {
|
|
772
|
+
return runSetCoverageMode(args);
|
|
773
|
+
}
|
|
694
774
|
if (args.cmd === "set-spec-guard-enforcement") {
|
|
695
775
|
return runSetSpecGuardEnforcement(args);
|
|
696
776
|
}
|
|
@@ -720,6 +800,25 @@ function runSetSpecGuardEnforcement(args) {
|
|
|
720
800
|
process.stdout.write(result.stdout);
|
|
721
801
|
return result.exitCode;
|
|
722
802
|
}
|
|
803
|
+
/** Persist plan.policy.coverageMode (#5791). */
|
|
804
|
+
function runSetCoverageMode(args) {
|
|
805
|
+
const root = pathResolve(args.projectRoot);
|
|
806
|
+
if (args.coverageMode === undefined) {
|
|
807
|
+
process.stdout.write("usage: policy set-coverage-mode -- --mode initial|disabled|full [--confirm] [--project-root PATH]\n" +
|
|
808
|
+
" Inspect: " +
|
|
809
|
+
policyColonInvocation("show", " --field=coverageMode") +
|
|
810
|
+
"\n");
|
|
811
|
+
return 1;
|
|
812
|
+
}
|
|
813
|
+
const result = setCoverageMode(root, {
|
|
814
|
+
mode: args.coverageMode,
|
|
815
|
+
confirm: args.confirm,
|
|
816
|
+
actor: args.actor,
|
|
817
|
+
note: args.note,
|
|
818
|
+
});
|
|
819
|
+
process.stdout.write(result.stdout);
|
|
820
|
+
return result.exitCode;
|
|
821
|
+
}
|
|
723
822
|
/** Persist plan.policy.ceremonyDial override/enabled (#3214). */
|
|
724
823
|
function runSetCeremonyDial(args) {
|
|
725
824
|
const root = pathResolve(args.projectRoot);
|
package/dist/pre-pr-run.d.ts
CHANGED
package/dist/pre-pr-run.js
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* `deft pre-pr:run` starts the prescribed workflow. Opening the skill file
|
|
5
5
|
* is not completion. Generic mark-complete cannot mint a pass.
|
|
6
6
|
*/
|
|
7
|
+
import { readFileSync } from "node:fs";
|
|
7
8
|
import { completeRun, computeControllerObservedHash, controllerPublisher, digestApprovedCriteria, evaluateLivePrePrCheck, getDefaultPrePrStore, markComplete, noteSkillFileOpen, observeCommandPhase, PRE_PR_PHASE_IDS, phaseSpec, resolveRecordFromStore, startControllerRun, submitReviewerReport, } from "../vendor/directive-core/dist/pre-pr-controller/index.js";
|
|
9
|
+
import { evaluatePrePush, parsePrePushStdin } from "../vendor/directive-core/dist/preflight/index.js";
|
|
8
10
|
import { isDirectEntrypoint } from "./entrypoint.js";
|
|
9
11
|
const USAGE = `Usage: deft pre-pr:run [options]
|
|
10
12
|
|
|
@@ -42,6 +44,8 @@ Options:
|
|
|
42
44
|
--mark-complete always refuses; cannot mint a pass
|
|
43
45
|
--skill-open always refuses; opening the skill is not completion
|
|
44
46
|
--evaluate evaluate live binding against the private store
|
|
47
|
+
--push-admit enrolled push admission (#5804); reads pre-push stdin
|
|
48
|
+
--project-root <path> project root for --push-admit / store resolution
|
|
45
49
|
--json
|
|
46
50
|
--help
|
|
47
51
|
`;
|
|
@@ -76,6 +80,8 @@ export function parseArgs(argv) {
|
|
|
76
80
|
markComplete: false,
|
|
77
81
|
skillOpen: false,
|
|
78
82
|
evaluate: false,
|
|
83
|
+
pushAdmit: false,
|
|
84
|
+
projectRoot: null,
|
|
79
85
|
json: false,
|
|
80
86
|
help: false,
|
|
81
87
|
};
|
|
@@ -205,6 +211,18 @@ export function parseArgs(argv) {
|
|
|
205
211
|
else if (arg === "--evaluate") {
|
|
206
212
|
parsed.evaluate = true;
|
|
207
213
|
}
|
|
214
|
+
else if (arg === "--push-admit") {
|
|
215
|
+
parsed.pushAdmit = true;
|
|
216
|
+
}
|
|
217
|
+
else if (arg === "--project-root" || arg?.startsWith("--project-root=")) {
|
|
218
|
+
const value = arg === "--project-root" ? argv[i + 1] : arg.slice("--project-root=".length);
|
|
219
|
+
if (value === undefined) {
|
|
220
|
+
return { ...parsed, error: "argument --project-root: expected one argument" };
|
|
221
|
+
}
|
|
222
|
+
parsed.projectRoot = value;
|
|
223
|
+
if (arg === "--project-root")
|
|
224
|
+
i += 1;
|
|
225
|
+
}
|
|
208
226
|
else if (arg === "--repo" || arg?.startsWith("--repo=")) {
|
|
209
227
|
const value = arg === "--repo" ? argv[i + 1] : arg.slice("--repo=".length);
|
|
210
228
|
if (value === undefined)
|
|
@@ -346,6 +364,27 @@ export function run(argv) {
|
|
|
346
364
|
process.stderr.write(`pre_pr_run: ${args.error}\n`);
|
|
347
365
|
return 2;
|
|
348
366
|
}
|
|
367
|
+
if (args.pushAdmit) {
|
|
368
|
+
const projectRoot = args.projectRoot?.trim() || process.cwd();
|
|
369
|
+
let rawStdin = "";
|
|
370
|
+
try {
|
|
371
|
+
rawStdin = readFileSync(0, "utf8");
|
|
372
|
+
}
|
|
373
|
+
catch {
|
|
374
|
+
rawStdin = "";
|
|
375
|
+
}
|
|
376
|
+
const refs = parsePrePushStdin(rawStdin);
|
|
377
|
+
const [code, msg] = evaluatePrePush(refs, {
|
|
378
|
+
projectRoot,
|
|
379
|
+
enrolledBoundPrePr: true,
|
|
380
|
+
rawStdin,
|
|
381
|
+
});
|
|
382
|
+
if (code === 0)
|
|
383
|
+
process.stdout.write(`${msg}\n`);
|
|
384
|
+
else
|
|
385
|
+
process.stderr.write(`${msg}\n`);
|
|
386
|
+
return code;
|
|
387
|
+
}
|
|
349
388
|
if (args.skillOpen) {
|
|
350
389
|
const d = noteSkillFileOpen();
|
|
351
390
|
emit(args.json, d, d.message, true);
|
|
@@ -377,6 +416,7 @@ export function run(argv) {
|
|
|
377
416
|
process.stderr.write("pre_pr_run: --observe-command requires --exit-code\n");
|
|
378
417
|
return 2;
|
|
379
418
|
}
|
|
419
|
+
// #5814 / #5791: mode-skip pairs use non-zero exit (lint_iteration exit 5 + LINT_ITERATION_MODE_SKIP).
|
|
380
420
|
if (args.skipReason !== null && args.skipReason.length > 0 && args.exitCode === 0) {
|
|
381
421
|
process.stderr.write("pre_pr_run: skip requires a non-zero --exit-code plus --skip-reason\n");
|
|
382
422
|
return 2;
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* Runtime owns fs primitives so uninstall and upgrade share one substrate.
|
|
4
4
|
* Launcher stays dep-free (AC3.1); cli registry only names convert-via-removals.
|
|
5
5
|
*/
|
|
6
|
-
export { clearOwnedHookEntries, isUnsafeSubmoduleGitlink, normalizeGitmodules, pruneEmptyAncestors, RemovalStepError, removeCopiedCore, removeDeftFrameworkTree, removeOrphanDeftVersion, removeOwnedSkillPointers, removeSoleAuthorHusks, runStep,
|
|
7
|
-
export { isConvertStrategyFrom,
|
|
6
|
+
export { clearOwnedHookEntries, isUnsafeSubmoduleGitlink, normalizeGitmodules, pruneEmptyAncestors, RemovalStepError, type RemovalStepId, removeCopiedCore, removeDeftFrameworkTree, removeOrphanDeftVersion, removeOwnedSkillPointers, removeSoleAuthorHusks, runStep, type StepContext, type StepResult, stripLegacyLauncherPin, } from "./steps.js";
|
|
7
|
+
export { isConvertStrategyFrom, type LayoutStrategy, runStrategy, STRATEGIES, type StrategyResult, type StrategyShapeId, strategyForShape, } from "./strategies.js";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Layout steps (core / deft / hooks / skills / gitmodules / orphan): wave 3f.
|
|
5
5
|
*/
|
|
6
6
|
import { execFileSync } from "node:child_process";
|
|
7
|
-
import { existsSync, lstatSync, readdirSync, readFileSync, writeFileSync
|
|
7
|
+
import { existsSync, lstatSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
8
8
|
import { dirname, join, sep } from "node:path";
|
|
9
9
|
import { containedRemove } from "../../vendor/directive-core/dist/fs/contained-write.js";
|
|
10
10
|
import { CONSUMER_HEADER_PLACEHOLDER_ONELINER, renderConsumerHeader, unmanagedHeaderOneLiner, } from "../../vendor/directive-core/dist/platform/agents-consumer-header.js";
|
|
@@ -35,10 +35,7 @@ const HOST_HOOK_RELS = [
|
|
|
35
35
|
".codex/hooks.json",
|
|
36
36
|
".grok/hooks/deft.json",
|
|
37
37
|
];
|
|
38
|
-
const DIRECTIVE_PACKAGE_NAMES = new Set([
|
|
39
|
-
"@deftai/directive",
|
|
40
|
-
"@deftai/directive-runtime",
|
|
41
|
-
]);
|
|
38
|
+
const DIRECTIVE_PACKAGE_NAMES = new Set(["@deftai/directive", "@deftai/directive-runtime"]);
|
|
42
39
|
const GITIGNORE_SEED_LINES = new Set([
|
|
43
40
|
"node_modules/",
|
|
44
41
|
"node_modules",
|
|
@@ -215,7 +212,9 @@ function isNearEmptyLockfile(abs) {
|
|
|
215
212
|
return true;
|
|
216
213
|
if (abs.endsWith("pnpm-lock.yaml")) {
|
|
217
214
|
// Near-empty pnpm lock: no package snapshots beyond lockfileVersion / settings.
|
|
218
|
-
if (!/^\s*[^#\s].*:/m.test(trimmed
|
|
215
|
+
if (!/^\s*[^#\s].*:/m.test(trimmed
|
|
216
|
+
.replace(/^lockfileVersion:.*$/m, "")
|
|
217
|
+
.replace(/^settings:[\s\S]*?(?=\n\S|\n*$)/m, ""))) {
|
|
219
218
|
return trimmed.length < 200;
|
|
220
219
|
}
|
|
221
220
|
if (/importers:\s*\n\s*\.:\s*\n\s*(?:dependencies|devDependencies):\s*\n\s*\{\s*\}/.test(trimmed)) {
|
|
@@ -656,9 +655,7 @@ export function normalizeGitmodules(root) {
|
|
|
656
655
|
export function runStep(stepId, ctx) {
|
|
657
656
|
switch (stepId) {
|
|
658
657
|
case "pruneEmptyAncestors": {
|
|
659
|
-
const seeds = ctx.emptiedFrom !== undefined
|
|
660
|
-
? [ctx.emptiedFrom]
|
|
661
|
-
: [...(ctx.priorRemoved ?? [])];
|
|
658
|
+
const seeds = ctx.emptiedFrom !== undefined ? [ctx.emptiedFrom] : [...(ctx.priorRemoved ?? [])];
|
|
662
659
|
if (seeds.length === 0) {
|
|
663
660
|
// Standalone call still requires a seed (uninstall / unit API).
|
|
664
661
|
throw new Error("pruneEmptyAncestors requires ctx.emptiedFrom or ctx.priorRemoved");
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WAVE3-V2 layout strategies — fixed table of ordered removal step ids.
|
|
3
3
|
* Bookends dispatch detect → strategy; bulk logic stays in steps (smell test).
|
|
4
4
|
*/
|
|
5
|
-
import { RemovalStepError, runStep
|
|
5
|
+
import { RemovalStepError, runStep } from "./steps.js";
|
|
6
6
|
const CONVERT_SHAPE_IDS = new Set([
|
|
7
7
|
"vendored-core-go",
|
|
8
8
|
"go-tarball-deft-root",
|