@deftai/directive-runtime 0.126.0-beta.2 → 0.127.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/Taskfile.yml +1 -1
- package/UPGRADING.md +4 -3
- package/commands.md +9 -6
- package/contracts/design-critique.md +39 -1
- package/dist/contract-entry.js +2 -4
- package/dist/dispatch.js +1 -6
- package/dist/doctor-diagnose.d.ts +1 -1
- package/dist/doctor-diagnose.js +38 -9
- package/dist/doctor.js +1 -1
- 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/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/session-start.js +28 -1
- package/dist/setup-wiring.d.ts +4 -0
- package/dist/setup-wiring.js +6 -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/dist/verify-review-monitor.d.ts +7 -0
- package/dist/verify-review-monitor.js +21 -0
- package/docs/getting-started.md +13 -1
- package/docs/intent-constraint.md +7 -1
- package/docs/observable-scope.md +6 -0
- package/package.json +1 -1
- package/packs/skills/skills-pack-0.1.json +7 -7
- package/packs/strategies/strategies-pack-0.1.json +32 -19
- package/scm/github.md +1 -0
- package/skills/deft-directive-article-review/SKILL.md +104 -24
- package/skills/deft-directive-design-critique/SKILL.md +10 -9
- package/skills/deft-directive-pre-pr/SKILL.md +14 -0
- package/skills/deft-directive-release/SKILL.md +4 -4
- package/skills/deft-directive-review-cycle/SKILL.md +19 -2
- package/skills/deft-directive-setup/SKILL.md +6 -0
- package/skills/deft-directive-swarm/references/host-cursor.md +18 -1
- package/skills/deft-directive-swarm/references/host-grok-build.md +4 -4
- package/skills/deft-directive-sync/SKILL.md +2 -2
- package/strategies/README.md +1 -0
- package/strategies/artifact-guards.md +2 -2
- package/strategies/design-thinking.md +182 -0
- package/strategies/discuss.md +2 -0
- package/strategies/interview.md +76 -23
- package/strategies/rapid.md +22 -12
- package/tasks/engine.yml +11 -4
- package/templates/agents-entry.md +5 -3
- package/templates/design-critique-brief.md +5 -1
- package/tutorial/beats.json +2 -2
- package/vendor/directive-content/.agents/skills/deft-directive-release/SKILL.md +428 -7
- package/vendor/directive-content/Taskfile.yml +1 -1
- package/vendor/directive-content/UPGRADING.md +4 -3
- package/vendor/directive-content/commands.md +9 -6
- package/vendor/directive-content/contracts/design-critique.md +39 -1
- package/vendor/directive-content/docs/getting-started.md +13 -1
- package/vendor/directive-content/docs/intent-constraint.md +7 -1
- package/vendor/directive-content/docs/observable-scope.md +6 -0
- package/vendor/directive-content/packs/skills/skills-pack-0.1.json +7 -7
- package/vendor/directive-content/packs/strategies/strategies-pack-0.1.json +32 -19
- package/vendor/directive-content/scm/github.md +1 -0
- package/vendor/directive-content/skills/deft-directive-article-review/SKILL.md +104 -24
- package/vendor/directive-content/skills/deft-directive-design-critique/SKILL.md +10 -9
- package/vendor/directive-content/skills/deft-directive-pre-pr/SKILL.md +14 -0
- package/vendor/directive-content/skills/deft-directive-release/SKILL.md +4 -4
- package/vendor/directive-content/skills/deft-directive-review-cycle/SKILL.md +19 -2
- package/vendor/directive-content/skills/deft-directive-setup/SKILL.md +6 -0
- 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 +4 -4
- package/vendor/directive-content/skills/deft-directive-sync/SKILL.md +2 -2
- package/vendor/directive-content/strategies/README.md +1 -0
- package/vendor/directive-content/strategies/artifact-guards.md +2 -2
- package/vendor/directive-content/strategies/design-thinking.md +182 -0
- package/vendor/directive-content/strategies/discuss.md +2 -0
- package/vendor/directive-content/strategies/interview.md +76 -23
- package/vendor/directive-content/strategies/rapid.md +22 -12
- package/vendor/directive-content/tasks/engine.yml +11 -4
- package/vendor/directive-content/templates/agents-entry.md +5 -3
- package/vendor/directive-content/templates/design-critique-brief.md +5 -1
- package/vendor/directive-content/tutorial/beats.json +2 -2
- 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-contracts/skills/helpers.d.ts +11 -1
- package/vendor/directive-core/dist/content-contracts/skills/helpers.d.ts.map +1 -1
- package/vendor/directive-core/dist/content-contracts/skills/helpers.js +18 -5
- package/vendor/directive-core/dist/content-contracts/skills/helpers.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/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/design-critique/auto-stamp-path1.d.ts +40 -0
- package/vendor/directive-core/dist/design-critique/auto-stamp-path1.d.ts.map +1 -1
- package/vendor/directive-core/dist/design-critique/auto-stamp-path1.js +116 -0
- package/vendor/directive-core/dist/design-critique/auto-stamp-path1.js.map +1 -1
- package/vendor/directive-core/dist/design-critique/citation-grammar.d.ts +36 -0
- package/vendor/directive-core/dist/design-critique/citation-grammar.d.ts.map +1 -1
- package/vendor/directive-core/dist/design-critique/citation-grammar.js +60 -3
- package/vendor/directive-core/dist/design-critique/citation-grammar.js.map +1 -1
- package/vendor/directive-core/dist/design-critique/completed-arc-record.d.ts +103 -3
- package/vendor/directive-core/dist/design-critique/completed-arc-record.d.ts.map +1 -1
- package/vendor/directive-core/dist/design-critique/completed-arc-record.js +127 -5
- package/vendor/directive-core/dist/design-critique/completed-arc-record.js.map +1 -1
- package/vendor/directive-core/dist/design-critique/ingest-posture.d.ts +27 -0
- package/vendor/directive-core/dist/design-critique/ingest-posture.d.ts.map +1 -0
- package/vendor/directive-core/dist/design-critique/ingest-posture.js +66 -0
- package/vendor/directive-core/dist/design-critique/ingest-posture.js.map +1 -0
- package/vendor/directive-core/dist/design-critique/panel-handback-acceptance.d.ts +106 -7
- package/vendor/directive-core/dist/design-critique/panel-handback-acceptance.d.ts.map +1 -1
- package/vendor/directive-core/dist/design-critique/panel-handback-acceptance.js +284 -17
- package/vendor/directive-core/dist/design-critique/panel-handback-acceptance.js.map +1 -1
- package/vendor/directive-core/dist/docs/docs-impact.d.ts +13 -0
- package/vendor/directive-core/dist/docs/docs-impact.d.ts.map +1 -1
- package/vendor/directive-core/dist/docs/docs-impact.js +49 -4
- package/vendor/directive-core/dist/docs/docs-impact.js.map +1 -1
- package/vendor/directive-core/dist/doctor/checks.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/checks.js +3 -7
- package/vendor/directive-core/dist/doctor/checks.js.map +1 -1
- package/vendor/directive-core/dist/doctor/main.d.ts +48 -0
- package/vendor/directive-core/dist/doctor/main.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/main.js +227 -4
- 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 +156 -14
- package/vendor/directive-core/dist/hooks/dispatcher.js.map +1 -1
- package/vendor/directive-core/dist/init-deposit/agent-hooks.d.ts +4 -0
- package/vendor/directive-core/dist/init-deposit/agent-hooks.d.ts.map +1 -1
- package/vendor/directive-core/dist/init-deposit/agent-hooks.js +25 -4
- 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/intake/issue-ingest.d.ts +2 -0
- package/vendor/directive-core/dist/intake/issue-ingest.d.ts.map +1 -1
- package/vendor/directive-core/dist/intake/issue-ingest.js +26 -1
- package/vendor/directive-core/dist/intake/issue-ingest.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/pr-closing-keywords/detect.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-closing-keywords/detect.js +52 -7
- package/vendor/directive-core/dist/pr-closing-keywords/detect.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 +6 -2
- package/vendor/directive-core/dist/pr-closing-keywords/main.js.map +1 -1
- package/vendor/directive-core/dist/pr-watch/main.d.ts +5 -0
- package/vendor/directive-core/dist/pr-watch/main.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-watch/main.js.map +1 -1
- package/vendor/directive-core/dist/pr-watch/watch.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-watch/watch.js +5 -0
- package/vendor/directive-core/dist/pr-watch/watch.js.map +1 -1
- package/vendor/directive-core/dist/presentation-ceiling/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/presentation-ceiling/evaluate.js +3 -1
- package/vendor/directive-core/dist/presentation-ceiling/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/release/auto-hatch.d.ts +6 -0
- package/vendor/directive-core/dist/release/auto-hatch.d.ts.map +1 -1
- package/vendor/directive-core/dist/release/auto-hatch.js +13 -4
- package/vendor/directive-core/dist/release/auto-hatch.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/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/review-monitor/record.d.ts +11 -0
- package/vendor/directive-core/dist/review-monitor/record.d.ts.map +1 -1
- package/vendor/directive-core/dist/review-monitor/record.js +23 -0
- package/vendor/directive-core/dist/review-monitor/record.js.map +1 -1
- package/vendor/directive-core/dist/run-summary/emit.d.ts +2 -1
- package/vendor/directive-core/dist/run-summary/emit.d.ts.map +1 -1
- package/vendor/directive-core/dist/run-summary/emit.js +3 -0
- package/vendor/directive-core/dist/run-summary/emit.js.map +1 -1
- package/vendor/directive-core/dist/run-summary/index.d.ts +1 -1
- package/vendor/directive-core/dist/run-summary/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/run-summary/index.js.map +1 -1
- package/vendor/directive-core/dist/run-summary/types.d.ts +8 -2
- package/vendor/directive-core/dist/run-summary/types.d.ts.map +1 -1
- package/vendor/directive-core/dist/run-summary/types.js +1 -0
- package/vendor/directive-core/dist/run-summary/types.js.map +1 -1
- package/vendor/directive-core/dist/scope/delivery-evidence.d.ts +11 -0
- package/vendor/directive-core/dist/scope/delivery-evidence.d.ts.map +1 -1
- package/vendor/directive-core/dist/scope/delivery-evidence.js +34 -0
- package/vendor/directive-core/dist/scope/delivery-evidence.js.map +1 -1
- package/vendor/directive-core/dist/session/occupancy.d.ts +101 -0
- package/vendor/directive-core/dist/session/occupancy.d.ts.map +1 -1
- package/vendor/directive-core/dist/session/occupancy.js +276 -1
- package/vendor/directive-core/dist/session/occupancy.js.map +1 -1
- 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/cohort-review-monitors-cli.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/cohort-review-monitors-cli.js +5 -1
- package/vendor/directive-core/dist/swarm/cohort-review-monitors-cli.js.map +1 -1
- package/vendor/directive-core/dist/swarm/cohort-review-monitors.d.ts +71 -0
- package/vendor/directive-core/dist/swarm/cohort-review-monitors.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/cohort-review-monitors.js +125 -2
- package/vendor/directive-core/dist/swarm/cohort-review-monitors.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/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/telemetry-coverage/fake-trial.d.ts.map +1 -1
- package/vendor/directive-core/dist/telemetry-coverage/fake-trial.js +9 -0
- package/vendor/directive-core/dist/telemetry-coverage/fake-trial.js.map +1 -1
- package/vendor/directive-core/dist/telemetry-coverage/kinds.d.ts.map +1 -1
- package/vendor/directive-core/dist/telemetry-coverage/kinds.js +2 -0
- package/vendor/directive-core/dist/telemetry-coverage/kinds.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/value/feedback-file.d.ts +49 -6
- package/vendor/directive-core/dist/value/feedback-file.d.ts.map +1 -1
- package/vendor/directive-core/dist/value/feedback-file.js +446 -41
- package/vendor/directive-core/dist/value/feedback-file.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/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
|
@@ -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 {
|
|
@@ -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",
|
package/dist/session-start.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { CEREMONY_DEPTHS, normalizeCeremonyModelTier, normalizeCeremonyProjectShape, normalizeCeremonyTaskSize, selectCeremonyDepth, } from "../vendor/directive-core/dist/policy/index.js";
|
|
5
|
-
import { COLD_CEREMONY_TIER, PRIMARY_CLAIM_EXCEPTIONS, parseDeferrals, parseSessionPostureToken, READ_ONLY_POSTURE, REARM_CEREMONY_TIER, REQUIREMENTS_POSTURE, resolveProductionHostEffortDescriptor, ritualStatePath, runSessionStart, SESSION_CEREMONY_TIERS, } from "../vendor/directive-core/dist/session/index.js";
|
|
5
|
+
import { COLD_CEREMONY_TIER, PRIMARY_CLAIM_EXCEPTIONS, parseDeferrals, parseSessionPostureToken, publishApplyingHostFromCanonicalSessionId, READ_ONLY_POSTURE, REARM_CEREMONY_TIER, REQUIREMENTS_POSTURE, resolveProductionHostEffortDescriptor, ritualStatePath, runSessionStart, SESSION_CEREMONY_TIERS, } from "../vendor/directive-core/dist/session/index.js";
|
|
6
6
|
function parseCeremonyDepth(raw) {
|
|
7
7
|
const value = raw.trim().toLowerCase();
|
|
8
8
|
if (CEREMONY_DEPTHS.includes(value)) {
|
|
@@ -523,6 +523,33 @@ export function run(argv) {
|
|
|
523
523
|
if (stray) {
|
|
524
524
|
lines.push(stray);
|
|
525
525
|
}
|
|
526
|
+
// #5676: read-only may bootstrap the applying-host record; mutation/rearm
|
|
527
|
+
// republishes as reinforcement after a successful ceremony. Skip opt-out /
|
|
528
|
+
// kill-switch disabled results so .no-deft-directive stays write-free.
|
|
529
|
+
const disabled = typeof result.payload === "object" &&
|
|
530
|
+
result.payload !== null &&
|
|
531
|
+
result.payload.disabled === true;
|
|
532
|
+
if (result.code === 0 && !disabled) {
|
|
533
|
+
const owner = args.sessionId?.trim() ||
|
|
534
|
+
(typeof result.payload.occupancy === "object" &&
|
|
535
|
+
result.payload.occupancy !== null &&
|
|
536
|
+
typeof result.payload.occupancy.session_id === "string"
|
|
537
|
+
? String(result.payload.occupancy.session_id)
|
|
538
|
+
: "") ||
|
|
539
|
+
process.env.DEFT_SESSION_ID?.trim() ||
|
|
540
|
+
"";
|
|
541
|
+
if (owner.length > 0) {
|
|
542
|
+
try {
|
|
543
|
+
const transport = process.env.GROK_HOOK_EVENT?.trim() ? "grok-hook-event" : "native";
|
|
544
|
+
publishApplyingHostFromCanonicalSessionId(projectRoot, owner, {
|
|
545
|
+
transport: owner.startsWith("host:cursor:") ? "native" : transport,
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
catch {
|
|
549
|
+
/* ceremony success stays authoritative; applying-host is best-effort */
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
526
553
|
if (args.emitJson) {
|
|
527
554
|
const sorted = Object.keys(result.payload)
|
|
528
555
|
.sort()
|
package/dist/setup-wiring.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-relative wiring writers for Contract 1 setup (Wave 2c / R9 / AC13.1).
|
|
3
|
+
* All managed pointers target node_modules/@deftai/directive-runtime/ — never .deft/core.
|
|
4
|
+
*/
|
|
1
5
|
import { type HostHooksPolicy } from "@deftai/directive-core/dist/policy/host-hooks.js";
|
|
2
6
|
export declare const RUNTIME_PREFIX = "node_modules/@deftai/directive-runtime/";
|
|
3
7
|
export declare const HOOK_BIN_COMMAND = "node node_modules/@deftai/directive-runtime/dist/hook-bin.js";
|
package/dist/setup-wiring.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Package-relative wiring writers for Contract 1 setup (Wave 2c / R9 / AC13.1).
|
|
3
3
|
* All managed pointers target node_modules/@deftai/directive-runtime/ — never .deft/core.
|
|
4
4
|
*/
|
|
5
|
+
import { execFileSync } from "node:child_process";
|
|
5
6
|
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
6
7
|
import { dirname, join } from "node:path";
|
|
7
|
-
import { execFileSync } from "node:child_process";
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
9
9
|
import { containedChmod, containedRemove, containedWrite, } from "../vendor/directive-core/dist/fs/contained-write.js";
|
|
10
10
|
import { DIRECT_WRITE_HOOK_MATCHER, KILL_HOOK_MATCHER, MCP_HOOK_MATCHER, SHELL_HOOK_MATCHER, SPAWN_HOOK_MATCHER, } from "../vendor/directive-core/dist/hooks/tools.js";
|
|
@@ -555,7 +555,9 @@ function mergeNestedHost(existing, host, options) {
|
|
|
555
555
|
}
|
|
556
556
|
function mergeCursorHost(existing) {
|
|
557
557
|
const hooks = object(existing.hooks) ?? {};
|
|
558
|
-
const keep = (key) => Array.isArray(hooks[key])
|
|
558
|
+
const keep = (key) => Array.isArray(hooks[key])
|
|
559
|
+
? hooks[key].filter((e) => !cursorManagedEntry(e))
|
|
560
|
+
: [];
|
|
559
561
|
return {
|
|
560
562
|
...existing,
|
|
561
563
|
version: 1,
|
|
@@ -820,8 +822,7 @@ export function ensureGitHooks(projectRoot) {
|
|
|
820
822
|
hooksPathActive = true;
|
|
821
823
|
}
|
|
822
824
|
catch {
|
|
823
|
-
inactiveDisclosure =
|
|
824
|
-
"Git hooks inactive: could not set core.hooksPath=.githooks";
|
|
825
|
+
inactiveDisclosure = "Git hooks inactive: could not set core.hooksPath=.githooks";
|
|
825
826
|
}
|
|
826
827
|
}
|
|
827
828
|
else if (current === ".githooks" || current === ".githooks/") {
|
|
@@ -842,9 +843,7 @@ includes:
|
|
|
842
843
|
${RUNTIME_TASKFILE_INCLUDE}
|
|
843
844
|
optional: true
|
|
844
845
|
`;
|
|
845
|
-
const DEFT_INCLUDE_BLOCK = ` deft:\n` +
|
|
846
|
-
` taskfile: ./${RUNTIME_PREFIX}Taskfile.yml\n` +
|
|
847
|
-
` optional: true\n`;
|
|
846
|
+
const DEFT_INCLUDE_BLOCK = ` deft:\n` + ` taskfile: ./${RUNTIME_PREFIX}Taskfile.yml\n` + ` optional: true\n`;
|
|
848
847
|
/**
|
|
849
848
|
* Merge the Directive `deft:` include into an existing Taskfile without
|
|
850
849
|
* duplicating top-level `includes:` keys or an occupied `deft` child.
|
package/dist/setup.js
CHANGED
|
@@ -10,10 +10,10 @@ import { dirname, join } from "node:path";
|
|
|
10
10
|
import { fileURLToPath } from "node:url";
|
|
11
11
|
import { ContainedWriteError, containedRemove, containedWrite, } from "../vendor/directive-core/dist/fs/contained-write.js";
|
|
12
12
|
import { buildOwnershipRecord, fingerprintContent, ownershipRecordsEqual, readEvidenceGenerationNumber, readOwnershipRecord, writeOwnershipRecord, } from "../vendor/directive-core/dist/install-health/index.js";
|
|
13
|
-
import { CURRENT_DATA_SCHEMA_VERSION, DATA_SCHEMA_MARKER_REL, } from "./migrate.js";
|
|
14
|
-
import { isConvertStrategyFrom, runStrategy, } from "./removal-steps/index.js";
|
|
15
|
-
import { ensureAgentsManagedSection, ensureGitHooks, ensureHostHooks, ensureOpenClawIntegrations, ensureSkillPointers, ensureSlashCommands, ensureTaskfileInclude, listSkillPointerPaths, listVerifiedManagedSlashCommandPaths, RUNTIME_PREFIX, } from "./setup-wiring.js";
|
|
16
13
|
import { assertInventoryCompleteness } from "./installer-output-inventory.js";
|
|
14
|
+
import { CURRENT_DATA_SCHEMA_VERSION, DATA_SCHEMA_MARKER_REL } from "./migrate.js";
|
|
15
|
+
import { isConvertStrategyFrom, runStrategy } from "./removal-steps/index.js";
|
|
16
|
+
import { ensureAgentsManagedSection, ensureGitHooks, ensureHostHooks, ensureOpenClawIntegrations, ensureSkillPointers, ensureSlashCommands, ensureTaskfileInclude, listSkillPointerPaths, listVerifiedManagedSlashCommandPaths, RUNTIME_PREFIX, } from "./setup-wiring.js";
|
|
17
17
|
const SEED_PLACEHOLDER_REL = "xbrief/.directive-seed-placeholder";
|
|
18
18
|
const GEN_REL = ".deft/GENERATION.json";
|
|
19
19
|
const WIRING_READY_DIR_REL = ".deft/directive";
|
|
@@ -174,11 +174,7 @@ function buildOwnershipArtifacts(projectRoot) {
|
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
-
for (const rel of [
|
|
178
|
-
".githooks/pre-commit",
|
|
179
|
-
".githooks/pre-push",
|
|
180
|
-
".githooks/_directive-run.sh",
|
|
181
|
-
]) {
|
|
177
|
+
for (const rel of [".githooks/pre-commit", ".githooks/pre-push", ".githooks/_directive-run.sh"]) {
|
|
182
178
|
const body = readText(join(projectRoot, rel));
|
|
183
179
|
if (body !== null) {
|
|
184
180
|
artifacts.push({
|
|
@@ -311,16 +307,18 @@ export function runSetup(options) {
|
|
|
311
307
|
conflicts.push(taskfile.conflictReason ?? "Taskfile.yml: include conflict");
|
|
312
308
|
}
|
|
313
309
|
// Seeds only on first-time install (AC8.4); repair/upgrade never create them.
|
|
314
|
-
// AC6.2:
|
|
315
|
-
// not
|
|
310
|
+
// AC6.2: leave data-schema current for empty/seeded install. Repair may write a
|
|
311
|
+
// missing marker (not a migration); upgrade still migrates when data is behind.
|
|
316
312
|
if (operation === "install" && conflicts.length === 0) {
|
|
317
313
|
const seed = createSeedPlaceholder(root);
|
|
318
314
|
if (seed !== null)
|
|
319
315
|
created.push(seed);
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
316
|
+
}
|
|
317
|
+
if ((operation === "install" || operation === "repair") &&
|
|
318
|
+
conflicts.length === 0 &&
|
|
319
|
+
!existsSync(join(root, DATA_SCHEMA_MARKER_REL))) {
|
|
320
|
+
writeContained(root, DATA_SCHEMA_MARKER_REL, `${JSON.stringify({ schemaVersion: CURRENT_DATA_SCHEMA_VERSION }, null, 2)}\n`);
|
|
321
|
+
created.push(DATA_SCHEMA_MARKER_REL);
|
|
324
322
|
}
|
|
325
323
|
// AC13.1: never materialize a content copy under .deft/core.
|
|
326
324
|
const desired = buildOwnershipRecord({
|
package/dist/uninstall.js
CHANGED
|
@@ -9,7 +9,7 @@ import { join } from "node:path";
|
|
|
9
9
|
import { containedRemove } from "../vendor/directive-core/dist/fs/contained-write.js";
|
|
10
10
|
import { inspectOwnershipRecord, MANAGED_SECTION_CLOSE, MANAGED_SECTION_OPEN_PREFIX, } from "../vendor/directive-core/dist/install-health/index.js";
|
|
11
11
|
import { pruneEmptyAncestors, removeSoleAuthorHusks } from "./removal-steps/steps.js";
|
|
12
|
-
import { HOOK_BIN_COMMAND, RUNTIME_PREFIX, SKILL_POINTER_INVENTORY
|
|
12
|
+
import { HOOK_BIN_COMMAND, RUNTIME_PREFIX, SKILL_POINTER_INVENTORY } from "./setup-wiring.js";
|
|
13
13
|
const SKILL_HOST_ROOTS = [
|
|
14
14
|
".agents/skills",
|
|
15
15
|
".claude/skills",
|
|
@@ -59,7 +59,7 @@ export function buildFixtures(root) {
|
|
|
59
59
|
/** Render a human-readable parity report (exported for unit tests). */
|
|
60
60
|
export function renderReport(result) {
|
|
61
61
|
if (result.ok) {
|
|
62
|
-
return `vbrief_preflight parity: CLEAN -- Python and TS agree on ${result.cases.length}
|
|
62
|
+
return `vbrief_preflight parity: CLEAN -- Python and TS agree on ${result.cases.length} fixtures.`;
|
|
63
63
|
}
|
|
64
64
|
const lines = ["vbrief_preflight parity: DIVERGENCE"];
|
|
65
65
|
for (const c of result.cases.filter((x) => !x.ok)) {
|
|
@@ -46,6 +46,28 @@ export function parseArgs(argv) {
|
|
|
46
46
|
else if (arg?.startsWith("--plan-id=")) {
|
|
47
47
|
parsed.planId = arg.slice("--plan-id=".length);
|
|
48
48
|
}
|
|
49
|
+
else if (arg === "--pr") {
|
|
50
|
+
const value = argv[i + 1];
|
|
51
|
+
if (value === undefined) {
|
|
52
|
+
return { ...parsed, error: "argument --pr: expected one argument" };
|
|
53
|
+
}
|
|
54
|
+
parsed.pr = value;
|
|
55
|
+
i += 1;
|
|
56
|
+
}
|
|
57
|
+
else if (arg?.startsWith("--pr=")) {
|
|
58
|
+
parsed.pr = arg.slice("--pr=".length);
|
|
59
|
+
}
|
|
60
|
+
else if (arg === "--repo") {
|
|
61
|
+
const value = argv[i + 1];
|
|
62
|
+
if (value === undefined) {
|
|
63
|
+
return { ...parsed, error: "argument --repo: expected one argument" };
|
|
64
|
+
}
|
|
65
|
+
parsed.repo = value;
|
|
66
|
+
i += 1;
|
|
67
|
+
}
|
|
68
|
+
else if (arg?.startsWith("--repo=")) {
|
|
69
|
+
parsed.repo = arg.slice("--repo=".length);
|
|
70
|
+
}
|
|
49
71
|
else if (arg === "--base-ref") {
|
|
50
72
|
return {
|
|
51
73
|
...parsed,
|
|
@@ -71,6 +93,8 @@ export function run(argv) {
|
|
|
71
93
|
staged: args.staged,
|
|
72
94
|
quiet: args.quiet,
|
|
73
95
|
planId: args.planId,
|
|
96
|
+
pr: args.pr,
|
|
97
|
+
repo: args.repo,
|
|
74
98
|
});
|
|
75
99
|
if (result.message.length > 0) {
|
|
76
100
|
if (result.stream === "stdout")
|