@deftai/directive 0.126.2 → 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/bin/deft-hook +14 -0
- package/bin/deft-hook.cmd +14 -0
- package/dist/bin.js +4319 -3
- package/package.json +11 -21
- package/dist/agents-refresh.d.ts +0 -11
- package/dist/agents-refresh.js +0 -90
- package/dist/authz.d.ts +0 -7
- package/dist/authz.js +0 -732
- package/dist/bin.d.ts +0 -3
- package/dist/branch-fixtures.d.ts +0 -45
- package/dist/branch-fixtures.js +0 -156
- package/dist/cache.d.ts +0 -4
- package/dist/cache.js +0 -10
- package/dist/capacity-backfill.d.ts +0 -3
- package/dist/capacity-backfill.js +0 -9
- package/dist/capacity-show.d.ts +0 -3
- package/dist/capacity-show.js +0 -9
- package/dist/change-init.d.ts +0 -3
- package/dist/change-init.js +0 -59
- package/dist/changelog-check.d.ts +0 -3
- package/dist/changelog-check.js +0 -52
- package/dist/check.d.ts +0 -15
- package/dist/check.js +0 -150
- package/dist/cli-package-version.d.ts +0 -3
- package/dist/cli-package-version.js +0 -23
- package/dist/cli-router/index.d.ts +0 -8
- package/dist/cli-router/index.js +0 -44
- package/dist/cli-router/route-argv.d.ts +0 -40
- package/dist/cli-router/route-argv.js +0 -371
- package/dist/codebase-default-extractor.d.ts +0 -3
- package/dist/codebase-default-extractor.js +0 -9
- package/dist/codebase-map-fresh.d.ts +0 -3
- package/dist/codebase-map-fresh.js +0 -9
- package/dist/codebase-map.d.ts +0 -3
- package/dist/codebase-map.js +0 -9
- package/dist/codebase-projection-registry.d.ts +0 -3
- package/dist/codebase-projection-registry.js +0 -9
- package/dist/codebase-provider.d.ts +0 -3
- package/dist/codebase-provider.js +0 -9
- package/dist/commit-lint.d.ts +0 -3
- package/dist/commit-lint.js +0 -44
- package/dist/content-validate-cli/validate-links.d.ts +0 -11
- package/dist/content-validate-cli/validate-links.js +0 -37
- package/dist/content-validate-cli/validate-strategy-output.d.ts +0 -13
- package/dist/content-validate-cli/validate-strategy-output.js +0 -56
- package/dist/content-validate-cli/verify-capacity.d.ts +0 -12
- package/dist/content-validate-cli/verify-capacity.js +0 -54
- package/dist/coverage-hotspots.d.ts +0 -21
- package/dist/coverage-hotspots.js +0 -198
- package/dist/design-critique-spend-resolve.d.ts +0 -18
- package/dist/design-critique-spend-resolve.js +0 -191
- package/dist/directive-finish-loop.d.ts +0 -3
- package/dist/directive-finish-loop.js +0 -10
- package/dist/dispatch.d.ts +0 -193
- package/dist/dispatch.js +0 -3091
- package/dist/doctor.d.ts +0 -19
- package/dist/doctor.js +0 -155
- package/dist/entrypoint.d.ts +0 -6
- package/dist/entrypoint.js +0 -19
- package/dist/escalation-cli.d.ts +0 -4
- package/dist/escalation-cli.js +0 -301
- package/dist/eval-health.d.ts +0 -13
- package/dist/eval-health.js +0 -63
- package/dist/eval-report.d.ts +0 -15
- package/dist/eval-report.js +0 -97
- package/dist/eval-run.d.ts +0 -17
- package/dist/eval-run.js +0 -122
- package/dist/eval-triggers.d.ts +0 -12
- package/dist/eval-triggers.js +0 -56
- package/dist/framework-check-updates.d.ts +0 -10
- package/dist/framework-check-updates.js +0 -68
- package/dist/gates-cli/_helpers.d.ts +0 -24
- package/dist/gates-cli/_helpers.js +0 -115
- package/dist/gates-cli/verify-bridge-drift.d.ts +0 -11
- package/dist/gates-cli/verify-bridge-drift.js +0 -47
- package/dist/gates-cli/verify-go-freeze.d.ts +0 -11
- package/dist/gates-cli/verify-go-freeze.js +0 -48
- package/dist/hook-bin.d.ts +0 -3
- package/dist/hook-bin.js +0 -11
- package/dist/hook-dispatch.d.ts +0 -80
- package/dist/hook-dispatch.js +0 -186
- package/dist/human-presence-mint.d.ts +0 -70
- package/dist/human-presence-mint.js +0 -204
- package/dist/identity-banner.d.ts +0 -13
- package/dist/identity-banner.js +0 -19
- package/dist/index.d.ts +0 -11
- package/dist/index.js +0 -14
- package/dist/init-cli/constants.d.ts +0 -42
- package/dist/init-cli/constants.js +0 -42
- package/dist/init-cli/help.d.ts +0 -9
- package/dist/init-cli/help.js +0 -43
- package/dist/init-cli/init.d.ts +0 -26
- package/dist/init-cli/init.js +0 -80
- package/dist/init-cli/migrate.d.ts +0 -3
- package/dist/init-cli/migrate.js +0 -51
- package/dist/init-cli/resolve-binary.d.ts +0 -34
- package/dist/init-cli/resolve-binary.js +0 -78
- package/dist/init-cli/run-deft-install.d.ts +0 -23
- package/dist/init-cli/run-deft-install.js +0 -71
- package/dist/init-cli/update.d.ts +0 -5
- package/dist/init-cli/update.js +0 -38
- package/dist/install-cli/coverage-map.d.ts +0 -14
- package/dist/install-cli/coverage-map.js +0 -113
- package/dist/install-uninstall.d.ts +0 -3
- package/dist/install-uninstall.js +0 -44
- package/dist/install-upgrade.d.ts +0 -41
- package/dist/install-upgrade.js +0 -86
- package/dist/lifecycle-cli/coverage-map.d.ts +0 -16
- package/dist/lifecycle-cli/coverage-map.js +0 -254
- package/dist/lifecycle-cli/helpers.d.ts +0 -8
- package/dist/lifecycle-cli/helpers.js +0 -20
- package/dist/lifecycle-event.d.ts +0 -11
- package/dist/lifecycle-event.js +0 -45
- package/dist/lifecycle-stats.d.ts +0 -12
- package/dist/lifecycle-stats.js +0 -100
- package/dist/migrate-category-b.d.ts +0 -9
- package/dist/migrate-category-b.js +0 -52
- package/dist/migrate-preflight.d.ts +0 -10
- package/dist/migrate-preflight.js +0 -85
- package/dist/migrate-xbrief.d.ts +0 -11
- package/dist/migrate-xbrief.js +0 -88
- package/dist/occupancy-grant.d.ts +0 -18
- package/dist/occupancy-grant.js +0 -121
- package/dist/occupancy-heartbeat.d.ts +0 -8
- package/dist/occupancy-heartbeat.js +0 -63
- package/dist/occupancy-release.d.ts +0 -23
- package/dist/occupancy-release.js +0 -102
- package/dist/occupancy-steal.d.ts +0 -10
- package/dist/occupancy-steal.js +0 -83
- package/dist/occupancy-unrecognized.d.ts +0 -3
- package/dist/occupancy-unrecognized.js +0 -5
- package/dist/orchestration-cli/coverage-map.d.ts +0 -21
- package/dist/orchestration-cli/coverage-map.js +0 -225
- package/dist/orchestration-cli/helpers.d.ts +0 -11
- package/dist/orchestration-cli/helpers.js +0 -35
- package/dist/ownership-doctor.d.ts +0 -10
- package/dist/ownership-doctor.js +0 -96
- package/dist/ownership-fix.d.ts +0 -10
- package/dist/ownership-fix.js +0 -93
- package/dist/plan-sequence.d.ts +0 -14
- package/dist/plan-sequence.js +0 -258
- package/dist/policy-fixtures.d.ts +0 -33
- package/dist/policy-fixtures.js +0 -118
- package/dist/policy.d.ts +0 -37
- package/dist/policy.js +0 -744
- package/dist/pr-closing-keywords.d.ts +0 -3
- package/dist/pr-closing-keywords.js +0 -10
- package/dist/pr-finish-loop.d.ts +0 -3
- package/dist/pr-finish-loop.js +0 -10
- package/dist/pr-merge-readiness.d.ts +0 -3
- package/dist/pr-merge-readiness.js +0 -10
- package/dist/pr-monitor.d.ts +0 -3
- package/dist/pr-monitor.js +0 -10
- package/dist/pr-protected-issues.d.ts +0 -3
- package/dist/pr-protected-issues.js +0 -10
- package/dist/pr-wait-mergeable.d.ts +0 -3
- package/dist/pr-wait-mergeable.js +0 -10
- package/dist/pr-watch.d.ts +0 -3
- package/dist/pr-watch.js +0 -10
- package/dist/pre-pr-run.d.ts +0 -39
- package/dist/pre-pr-run.js +0 -514
- package/dist/preflight-cache.d.ts +0 -18
- package/dist/preflight-cache.js +0 -113
- package/dist/preflight-gh.d.ts +0 -15
- package/dist/preflight-gh.js +0 -143
- package/dist/probe-session.d.ts +0 -3
- package/dist/probe-session.js +0 -10
- package/dist/release-e2e-fixtures.d.ts +0 -29
- package/dist/release-e2e-fixtures.js +0 -38
- package/dist/release-e2e.d.ts +0 -3
- package/dist/release-e2e.js +0 -10
- package/dist/release-publish.d.ts +0 -3
- package/dist/release-publish.js +0 -10
- package/dist/release-rollback.d.ts +0 -3
- package/dist/release-rollback.js +0 -10
- package/dist/release-wait-npm.d.ts +0 -3
- package/dist/release-wait-npm.js +0 -10
- package/dist/release.d.ts +0 -3
- package/dist/release.js +0 -10
- package/dist/render-cli/deft-ts-runner.d.ts +0 -17
- package/dist/render-cli/deft-ts-runner.js +0 -19
- package/dist/render-cli/export-spec-cli.d.ts +0 -2
- package/dist/render-cli/export-spec-cli.js +0 -6
- package/dist/render-cli/prd-render-cli.d.ts +0 -2
- package/dist/render-cli/prd-render-cli.js +0 -37
- package/dist/render-cli/project-render-cli.d.ts +0 -2
- package/dist/render-cli/project-render-cli.js +0 -6
- package/dist/render-cli/rule-map-cli.d.ts +0 -2
- package/dist/render-cli/rule-map-cli.js +0 -5
- package/dist/render-cli/spec-reconstruct-cli.d.ts +0 -3
- package/dist/render-cli/spec-reconstruct-cli.js +0 -15
- package/dist/render-cli/spec-render-cli.d.ts +0 -2
- package/dist/render-cli/spec-render-cli.js +0 -39
- package/dist/render-cli/spec-validate-cli.d.ts +0 -2
- package/dist/render-cli/spec-validate-cli.js +0 -38
- package/dist/review-monitor-register.d.ts +0 -19
- package/dist/review-monitor-register.js +0 -183
- package/dist/review-monitor-release.d.ts +0 -14
- package/dist/review-monitor-release.js +0 -123
- package/dist/scm-sync-default.d.ts +0 -34
- package/dist/scm-sync-default.js +0 -210
- package/dist/scope-lifecycle.d.ts +0 -4
- package/dist/scope-lifecycle.js +0 -34
- package/dist/scope-record-approved-scope.d.ts +0 -29
- package/dist/scope-record-approved-scope.js +0 -319
- package/dist/scope-record-intent-constraint.d.ts +0 -16
- package/dist/scope-record-intent-constraint.js +0 -202
- package/dist/scope-record-observable-scope.d.ts +0 -16
- package/dist/scope-record-observable-scope.js +0 -204
- package/dist/session-ready.d.ts +0 -15
- package/dist/session-ready.js +0 -144
- package/dist/session-start.d.ts +0 -56
- package/dist/session-start.js +0 -581
- package/dist/slice.d.ts +0 -4
- package/dist/slice.js +0 -34
- package/dist/story-ready-fixtures.d.ts +0 -47
- package/dist/story-ready-fixtures.js +0 -137
- package/dist/subagent-monitor.d.ts +0 -3
- package/dist/subagent-monitor.js +0 -10
- package/dist/subagent-pre-cancel.d.ts +0 -21
- package/dist/subagent-pre-cancel.js +0 -240
- package/dist/subagent-steer-write.d.ts +0 -41
- package/dist/subagent-steer-write.js +0 -333
- package/dist/toolchain-check.d.ts +0 -8
- package/dist/toolchain-check.js +0 -54
- package/dist/triage-actions.d.ts +0 -23
- package/dist/triage-actions.js +0 -233
- package/dist/triage-aux-a-fixtures.d.ts +0 -33
- package/dist/triage-aux-a-fixtures.js +0 -107
- package/dist/triage-aux-b-fixtures.d.ts +0 -30
- package/dist/triage-aux-b-fixtures.js +0 -167
- package/dist/triage-bootstrap-fixtures.d.ts +0 -42
- package/dist/triage-bootstrap-fixtures.js +0 -139
- package/dist/triage-bootstrap.d.ts +0 -24
- package/dist/triage-bootstrap.js +0 -175
- package/dist/triage-bulk.d.ts +0 -17
- package/dist/triage-bulk.js +0 -154
- package/dist/triage-classify-fixtures.d.ts +0 -38
- package/dist/triage-classify-fixtures.js +0 -137
- package/dist/triage-classify.d.ts +0 -45
- package/dist/triage-classify.js +0 -287
- package/dist/triage-evaluate.d.ts +0 -14
- package/dist/triage-evaluate.js +0 -153
- package/dist/triage-help.d.ts +0 -3
- package/dist/triage-help.js +0 -10
- package/dist/triage-queue-fixtures.d.ts +0 -59
- package/dist/triage-queue-fixtures.js +0 -284
- package/dist/triage-queue.d.ts +0 -38
- package/dist/triage-queue.js +0 -391
- package/dist/triage-reconcile.d.ts +0 -11
- package/dist/triage-reconcile.js +0 -76
- package/dist/triage-refresh.d.ts +0 -7
- package/dist/triage-refresh.js +0 -37
- package/dist/triage-scope-drift.d.ts +0 -12
- package/dist/triage-scope-drift.js +0 -117
- package/dist/triage-scope-fixtures.d.ts +0 -32
- package/dist/triage-scope-fixtures.js +0 -131
- package/dist/triage-scope.d.ts +0 -4
- package/dist/triage-scope.js +0 -34
- package/dist/triage-smoketest.d.ts +0 -3
- package/dist/triage-smoketest.js +0 -43
- package/dist/triage-strip-withdrawn.d.ts +0 -21
- package/dist/triage-strip-withdrawn.js +0 -102
- package/dist/triage-subscribe.d.ts +0 -15
- package/dist/triage-subscribe.js +0 -157
- package/dist/triage-summary.d.ts +0 -14
- package/dist/triage-summary.js +0 -83
- package/dist/triage-welcome.d.ts +0 -14
- package/dist/triage-welcome.js +0 -121
- package/dist/ts-check-lane.d.ts +0 -9
- package/dist/ts-check-lane.js +0 -49
- package/dist/umbrella-current-shape.d.ts +0 -9
- package/dist/umbrella-current-shape.js +0 -56
- package/dist/vbrief-activate.d.ts +0 -3
- package/dist/vbrief-activate.js +0 -7
- package/dist/vbrief-build.d.ts +0 -3
- package/dist/vbrief-build.js +0 -8
- package/dist/vbrief-preflight-fixtures.d.ts +0 -32
- package/dist/vbrief-preflight-fixtures.js +0 -79
- package/dist/vbrief-preflight.d.ts +0 -13
- package/dist/vbrief-preflight.js +0 -141
- package/dist/vbrief-reconcile.d.ts +0 -3
- package/dist/vbrief-reconcile.js +0 -7
- package/dist/vbrief-validate.d.ts +0 -3
- package/dist/vbrief-validate.js +0 -8
- package/dist/vbrief-validation.d.ts +0 -3
- package/dist/vbrief-validation.js +0 -8
- package/dist/verify-ac.d.ts +0 -28
- package/dist/verify-ac.js +0 -439
- package/dist/verify-agents-md-advisory.d.ts +0 -19
- package/dist/verify-agents-md-advisory.js +0 -65
- package/dist/verify-agents-md-budget.d.ts +0 -12
- package/dist/verify-agents-md-budget.js +0 -71
- package/dist/verify-branch.d.ts +0 -14
- package/dist/verify-branch.js +0 -81
- package/dist/verify-class-checks.d.ts +0 -11
- package/dist/verify-class-checks.js +0 -71
- package/dist/verify-cohort-review-monitors.d.ts +0 -5
- package/dist/verify-cohort-review-monitors.js +0 -11
- package/dist/verify-completed-tracked.d.ts +0 -19
- package/dist/verify-completed-tracked.js +0 -202
- package/dist/verify-completed-write-guard.d.ts +0 -13
- package/dist/verify-completed-write-guard.js +0 -84
- package/dist/verify-consumer-check-contract.d.ts +0 -12
- package/dist/verify-consumer-check-contract.js +0 -70
- package/dist/verify-consumer-header-placeholder.d.ts +0 -12
- package/dist/verify-consumer-header-placeholder.js +0 -73
- package/dist/verify-consumer-test-lane.d.ts +0 -12
- package/dist/verify-consumer-test-lane.js +0 -57
- package/dist/verify-durable-effect-acquisition.d.ts +0 -13
- package/dist/verify-durable-effect-acquisition.js +0 -70
- package/dist/verify-encoding.d.ts +0 -15
- package/dist/verify-encoding.js +0 -83
- package/dist/verify-eval-health-relocation.d.ts +0 -16
- package/dist/verify-eval-health-relocation.js +0 -93
- package/dist/verify-eval-triggers-relocation.d.ts +0 -14
- package/dist/verify-eval-triggers-relocation.js +0 -74
- package/dist/verify-evaluator-surface.d.ts +0 -15
- package/dist/verify-evaluator-surface.js +0 -87
- package/dist/verify-forward-coverage.d.ts +0 -19
- package/dist/verify-forward-coverage.js +0 -144
- package/dist/verify-hooks-installed.d.ts +0 -24
- package/dist/verify-hooks-installed.js +0 -140
- package/dist/verify-intent-constraint.d.ts +0 -17
- package/dist/verify-intent-constraint.js +0 -110
- package/dist/verify-investigation.d.ts +0 -3
- package/dist/verify-investigation.js +0 -10
- package/dist/verify-judgment-gates.d.ts +0 -3
- package/dist/verify-judgment-gates.js +0 -10
- package/dist/verify-l4-owner.d.ts +0 -15
- package/dist/verify-l4-owner.js +0 -132
- package/dist/verify-lifecycle-visible.d.ts +0 -13
- package/dist/verify-lifecycle-visible.js +0 -68
- package/dist/verify-literal-ac.d.ts +0 -14
- package/dist/verify-literal-ac.js +0 -168
- package/dist/verify-no-task-runtime.d.ts +0 -3
- package/dist/verify-no-task-runtime.js +0 -16
- package/dist/verify-observable-scope.d.ts +0 -17
- package/dist/verify-observable-scope.js +0 -110
- package/dist/verify-operator-scope-limit.d.ts +0 -17
- package/dist/verify-operator-scope-limit.js +0 -285
- package/dist/verify-orphan-active.d.ts +0 -17
- package/dist/verify-orphan-active.js +0 -135
- package/dist/verify-ownership.d.ts +0 -10
- package/dist/verify-ownership.js +0 -90
- package/dist/verify-persisted-planning-narratives.d.ts +0 -12
- package/dist/verify-persisted-planning-narratives.js +0 -82
- package/dist/verify-plan-sequence.d.ts +0 -14
- package/dist/verify-plan-sequence.js +0 -138
- package/dist/verify-pr-closeout-attestable.d.ts +0 -15
- package/dist/verify-pr-closeout-attestable.js +0 -114
- package/dist/verify-presentation-ceiling.d.ts +0 -11
- package/dist/verify-presentation-ceiling.js +0 -71
- package/dist/verify-presentation-coverage.d.ts +0 -14
- package/dist/verify-presentation-coverage.js +0 -90
- package/dist/verify-review-monitor.d.ts +0 -32
- package/dist/verify-review-monitor.js +0 -362
- package/dist/verify-scope-provenance.d.ts +0 -16
- package/dist/verify-scope-provenance.js +0 -91
- package/dist/verify-session-ritual.d.ts +0 -23
- package/dist/verify-session-ritual.js +0 -144
- package/dist/verify-source-cli/rule-ownership-lint.d.ts +0 -12
- package/dist/verify-source-cli/rule-ownership-lint.js +0 -61
- package/dist/verify-source-cli/verify-biome-config.d.ts +0 -11
- package/dist/verify-source-cli/verify-biome-config.js +0 -46
- package/dist/verify-source-cli/verify-closing-keywords.d.ts +0 -35
- package/dist/verify-source-cli/verify-closing-keywords.js +0 -139
- package/dist/verify-source-cli/verify-consumer-hard-stops.d.ts +0 -16
- package/dist/verify-source-cli/verify-consumer-hard-stops.js +0 -99
- package/dist/verify-source-cli/verify-contained-writes.d.ts +0 -13
- package/dist/verify-source-cli/verify-contained-writes.js +0 -67
- package/dist/verify-source-cli/verify-content-manifest.d.ts +0 -12
- package/dist/verify-source-cli/verify-content-manifest.js +0 -61
- package/dist/verify-source-cli/verify-contract-drift.d.ts +0 -11
- package/dist/verify-source-cli/verify-contract-drift.js +0 -47
- package/dist/verify-source-cli/verify-cursor-tier1.d.ts +0 -12
- package/dist/verify-source-cli/verify-cursor-tier1.js +0 -51
- package/dist/verify-source-cli/verify-deposit-closure.d.ts +0 -12
- package/dist/verify-source-cli/verify-deposit-closure.js +0 -52
- package/dist/verify-source-cli/verify-openclaw-tier1.d.ts +0 -12
- package/dist/verify-source-cli/verify-openclaw-tier1.js +0 -51
- package/dist/verify-source-cli/verify-scm-boundary.d.ts +0 -13
- package/dist/verify-source-cli/verify-scm-boundary.js +0 -66
- package/dist/verify-source-cli/verify-semantic-single-source.d.ts +0 -11
- package/dist/verify-source-cli/verify-semantic-single-source.js +0 -49
- package/dist/verify-source-cli/verify-skill-external-fetch-gate.d.ts +0 -11
- package/dist/verify-source-cli/verify-skill-external-fetch-gate.js +0 -46
- package/dist/verify-source-cli/verify-spec-drift.d.ts +0 -3
- package/dist/verify-source-cli/verify-spec-drift.js +0 -15
- package/dist/verify-source-cli/verify-spec-prd-fresh.d.ts +0 -3
- package/dist/verify-source-cli/verify-spec-prd-fresh.js +0 -15
- package/dist/verify-source-cli/verify-stubs.d.ts +0 -11
- package/dist/verify-source-cli/verify-stubs.js +0 -27
- package/dist/verify-source-cli/verify-telemetry-coverage.d.ts +0 -13
- package/dist/verify-source-cli/verify-telemetry-coverage.js +0 -67
- package/dist/verify-source-cli/verify-xbrief-drift.d.ts +0 -15
- package/dist/verify-source-cli/verify-xbrief-drift.js +0 -80
- package/dist/verify-story-ready.d.ts +0 -18
- package/dist/verify-story-ready.js +0 -190
- package/dist/verify-subagent-alive.d.ts +0 -21
- package/dist/verify-subagent-alive.js +0 -219
- package/dist/verify-subagent-steer.d.ts +0 -19
- package/dist/verify-subagent-steer.js +0 -136
- package/dist/verify-test-boundary.d.ts +0 -12
- package/dist/verify-test-boundary.js +0 -80
- package/dist/verify-tools.d.ts +0 -13
- package/dist/verify-tools.js +0 -67
- package/dist/verify-wip-cap.d.ts +0 -13
- package/dist/verify-wip-cap.js +0 -62
- package/dist/windows-bin-ps1.d.ts +0 -39
- package/dist/windows-bin-ps1.js +0 -226
- package/dist/wip-cap-fixtures.d.ts +0 -37
- package/dist/wip-cap-fixtures.js +0 -122
- package/dist/wsl-ownership-guard.d.ts +0 -2
- package/dist/wsl-ownership-guard.js +0 -15
- package/dist/xbrief-create.d.ts +0 -3
- package/dist/xbrief-create.js +0 -9
- package/dist/xbrief-verify.d.ts +0 -3
- package/dist/xbrief-verify.js +0 -9
- package/scripts/remove-windows-ps1-shims.mjs +0 -26
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Thin CLI wrapper for spec-validate (mirrors ``scripts/spec_validate.py``).
|
|
3
|
-
*
|
|
4
|
-
* Supports `--project-root <dir>` to resolve the spec artifact via the layout
|
|
5
|
-
* resolver (#2132), preferring `xbrief/specification.xbrief.json` on migrated
|
|
6
|
-
* trees and falling back to `vbrief/specification.vbrief.json` on legacy trees.
|
|
7
|
-
* A direct path positional arg is still accepted for backward compatibility.
|
|
8
|
-
*/
|
|
9
|
-
import { layout } from "@deftai/directive-core";
|
|
10
|
-
import { specValidateMain } from "@deftai/directive-core/render";
|
|
11
|
-
function parseSpecValidateCliArgv(argv) {
|
|
12
|
-
const positional = [];
|
|
13
|
-
let projectRoot;
|
|
14
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
15
|
-
const arg = argv[i] ?? "";
|
|
16
|
-
if (arg === "--project-root") {
|
|
17
|
-
projectRoot = argv[i + 1];
|
|
18
|
-
i += 1;
|
|
19
|
-
}
|
|
20
|
-
else if (arg.startsWith("--project-root=")) {
|
|
21
|
-
projectRoot = arg.slice("--project-root=".length);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
positional.push(arg);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return { specPath: positional[0], projectRoot };
|
|
28
|
-
}
|
|
29
|
-
export function runSpecValidateCli(argv) {
|
|
30
|
-
const { specPath, projectRoot } = parseSpecValidateCliArgv(argv);
|
|
31
|
-
const resolved = projectRoot !== undefined ? layout.resolveSpecArtifactPath(projectRoot) : specPath;
|
|
32
|
-
if (!resolved) {
|
|
33
|
-
process.stderr.write("Usage: spec-validate [--project-root <dir>] [<spec_file>]\n");
|
|
34
|
-
return 2;
|
|
35
|
-
}
|
|
36
|
-
return specValidateMain([resolved]);
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=spec-validate-cli.js.map
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { type PlatformPrimitive } from "@deftai/directive-core/review-monitor";
|
|
3
|
-
interface ParsedArgs {
|
|
4
|
-
pr: number | null;
|
|
5
|
-
monitorAgentId: string | null;
|
|
6
|
-
platformPrimitive: PlatformPrimitive | null;
|
|
7
|
-
repo: string | null;
|
|
8
|
-
headSha: string | null;
|
|
9
|
-
owner: string | null;
|
|
10
|
-
projectRoot: string;
|
|
11
|
-
parentSessionId: string | null;
|
|
12
|
-
force: boolean;
|
|
13
|
-
help: boolean;
|
|
14
|
-
error?: string;
|
|
15
|
-
}
|
|
16
|
-
export declare function parseRegisterArgs(argv: readonly string[]): ParsedArgs;
|
|
17
|
-
export declare function run(argv: readonly string[]): number;
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=review-monitor-register.d.ts.map
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { PLATFORM_PRIMITIVE_SET, REGISTER_HELP, registerReviewMonitor, } from "@deftai/directive-core/review-monitor";
|
|
5
|
-
const PRIMITIVES = PLATFORM_PRIMITIVE_SET;
|
|
6
|
-
export function parseRegisterArgs(argv) {
|
|
7
|
-
const acc = {
|
|
8
|
-
pr: null,
|
|
9
|
-
monitorAgentId: null,
|
|
10
|
-
platformPrimitive: null,
|
|
11
|
-
repo: null,
|
|
12
|
-
headSha: null,
|
|
13
|
-
owner: null,
|
|
14
|
-
projectRoot: ".",
|
|
15
|
-
parentSessionId: null,
|
|
16
|
-
force: false,
|
|
17
|
-
help: false,
|
|
18
|
-
};
|
|
19
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
20
|
-
const arg = argv[i];
|
|
21
|
-
if (arg === "--help" || arg === "-h") {
|
|
22
|
-
return { ...acc, help: true };
|
|
23
|
-
}
|
|
24
|
-
if (arg === "--force") {
|
|
25
|
-
acc.force = true;
|
|
26
|
-
}
|
|
27
|
-
else if (arg === "--pr") {
|
|
28
|
-
const value = argv[i + 1];
|
|
29
|
-
if (value === undefined) {
|
|
30
|
-
return { ...acc, error: "argument --pr: expected one argument" };
|
|
31
|
-
}
|
|
32
|
-
const n = Number(value);
|
|
33
|
-
if (!Number.isInteger(n) || n <= 0) {
|
|
34
|
-
return { ...acc, error: `invalid --pr value: ${value}` };
|
|
35
|
-
}
|
|
36
|
-
acc.pr = n;
|
|
37
|
-
i += 1;
|
|
38
|
-
}
|
|
39
|
-
else if (arg?.startsWith("--pr=")) {
|
|
40
|
-
const n = Number(arg.slice("--pr=".length));
|
|
41
|
-
if (!Number.isInteger(n) || n <= 0) {
|
|
42
|
-
return { ...acc, error: `invalid --pr value: ${arg}` };
|
|
43
|
-
}
|
|
44
|
-
acc.pr = n;
|
|
45
|
-
}
|
|
46
|
-
else if (arg === "--monitor-agent-id") {
|
|
47
|
-
const value = argv[i + 1];
|
|
48
|
-
if (value === undefined) {
|
|
49
|
-
return { ...acc, error: "argument --monitor-agent-id: expected one argument" };
|
|
50
|
-
}
|
|
51
|
-
acc.monitorAgentId = value;
|
|
52
|
-
i += 1;
|
|
53
|
-
}
|
|
54
|
-
else if (arg?.startsWith("--monitor-agent-id=")) {
|
|
55
|
-
acc.monitorAgentId = arg.slice("--monitor-agent-id=".length);
|
|
56
|
-
}
|
|
57
|
-
else if (arg === "--platform-primitive") {
|
|
58
|
-
const value = argv[i + 1];
|
|
59
|
-
if (value === undefined) {
|
|
60
|
-
return { ...acc, error: "argument --platform-primitive: expected one argument" };
|
|
61
|
-
}
|
|
62
|
-
if (!PRIMITIVES.has(value)) {
|
|
63
|
-
return { ...acc, error: `invalid --platform-primitive: ${value}` };
|
|
64
|
-
}
|
|
65
|
-
acc.platformPrimitive = value;
|
|
66
|
-
i += 1;
|
|
67
|
-
}
|
|
68
|
-
else if (arg?.startsWith("--platform-primitive=")) {
|
|
69
|
-
const value = arg.slice("--platform-primitive=".length);
|
|
70
|
-
if (!PRIMITIVES.has(value)) {
|
|
71
|
-
return { ...acc, error: `invalid --platform-primitive: ${value}` };
|
|
72
|
-
}
|
|
73
|
-
acc.platformPrimitive = value;
|
|
74
|
-
}
|
|
75
|
-
else if (arg === "--repo") {
|
|
76
|
-
const value = argv[i + 1];
|
|
77
|
-
if (value === undefined) {
|
|
78
|
-
return { ...acc, error: "argument --repo: expected one argument" };
|
|
79
|
-
}
|
|
80
|
-
acc.repo = value;
|
|
81
|
-
i += 1;
|
|
82
|
-
}
|
|
83
|
-
else if (arg?.startsWith("--repo=")) {
|
|
84
|
-
acc.repo = arg.slice("--repo=".length);
|
|
85
|
-
}
|
|
86
|
-
else if (arg === "--owner") {
|
|
87
|
-
const value = argv[i + 1];
|
|
88
|
-
if (value === undefined) {
|
|
89
|
-
return { ...acc, error: "argument --owner: expected one argument" };
|
|
90
|
-
}
|
|
91
|
-
acc.owner = value;
|
|
92
|
-
i += 1;
|
|
93
|
-
}
|
|
94
|
-
else if (arg?.startsWith("--owner=")) {
|
|
95
|
-
acc.owner = arg.slice("--owner=".length);
|
|
96
|
-
}
|
|
97
|
-
else if (arg === "--head-sha") {
|
|
98
|
-
const value = argv[i + 1];
|
|
99
|
-
if (value === undefined) {
|
|
100
|
-
return { ...acc, error: "argument --head-sha: expected one argument" };
|
|
101
|
-
}
|
|
102
|
-
acc.headSha = value;
|
|
103
|
-
i += 1;
|
|
104
|
-
}
|
|
105
|
-
else if (arg?.startsWith("--head-sha=")) {
|
|
106
|
-
acc.headSha = arg.slice("--head-sha=".length);
|
|
107
|
-
}
|
|
108
|
-
else if (arg === "--project-root") {
|
|
109
|
-
const value = argv[i + 1];
|
|
110
|
-
if (value === undefined) {
|
|
111
|
-
return { ...acc, error: "argument --project-root: expected one argument" };
|
|
112
|
-
}
|
|
113
|
-
acc.projectRoot = value;
|
|
114
|
-
i += 1;
|
|
115
|
-
}
|
|
116
|
-
else if (arg?.startsWith("--project-root=")) {
|
|
117
|
-
acc.projectRoot = arg.slice("--project-root=".length);
|
|
118
|
-
}
|
|
119
|
-
else if (arg === "--parent-session-id") {
|
|
120
|
-
const value = argv[i + 1];
|
|
121
|
-
if (value === undefined) {
|
|
122
|
-
return { ...acc, error: "argument --parent-session-id: expected one argument" };
|
|
123
|
-
}
|
|
124
|
-
acc.parentSessionId = value;
|
|
125
|
-
i += 1;
|
|
126
|
-
}
|
|
127
|
-
else if (arg?.startsWith("--parent-session-id=")) {
|
|
128
|
-
acc.parentSessionId = arg.slice("--parent-session-id=".length);
|
|
129
|
-
}
|
|
130
|
-
else if (arg?.startsWith("-")) {
|
|
131
|
-
return { ...acc, error: `unrecognized argument: ${arg}` };
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
return { ...acc, error: `unrecognized argument: ${arg}` };
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return acc;
|
|
138
|
-
}
|
|
139
|
-
export function run(argv) {
|
|
140
|
-
const args = parseRegisterArgs(argv);
|
|
141
|
-
if (args.help) {
|
|
142
|
-
process.stdout.write(REGISTER_HELP);
|
|
143
|
-
return 0;
|
|
144
|
-
}
|
|
145
|
-
if (args.error !== undefined) {
|
|
146
|
-
process.stderr.write(`review_monitor_register: ${args.error}\n`);
|
|
147
|
-
return 2;
|
|
148
|
-
}
|
|
149
|
-
if (args.pr === null) {
|
|
150
|
-
process.stderr.write("review_monitor_register: --pr is required\n");
|
|
151
|
-
return 2;
|
|
152
|
-
}
|
|
153
|
-
if (args.monitorAgentId === null || args.monitorAgentId.trim().length === 0) {
|
|
154
|
-
process.stderr.write("review_monitor_register: --monitor-agent-id is required\n");
|
|
155
|
-
return 2;
|
|
156
|
-
}
|
|
157
|
-
if (args.platformPrimitive === null) {
|
|
158
|
-
process.stderr.write("review_monitor_register: --platform-primitive is required\n");
|
|
159
|
-
return 2;
|
|
160
|
-
}
|
|
161
|
-
const result = registerReviewMonitor({
|
|
162
|
-
pr: args.pr,
|
|
163
|
-
repo: args.repo,
|
|
164
|
-
headSha: args.headSha,
|
|
165
|
-
owner: args.owner,
|
|
166
|
-
platformPrimitive: args.platformPrimitive,
|
|
167
|
-
monitorAgentId: args.monitorAgentId,
|
|
168
|
-
projectRoot: resolve(args.projectRoot),
|
|
169
|
-
parentSessionId: args.parentSessionId,
|
|
170
|
-
force: args.force,
|
|
171
|
-
});
|
|
172
|
-
if (result.exitCode === 0) {
|
|
173
|
-
process.stdout.write(`${result.message}\n`);
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
process.stderr.write(`${result.message}\n`);
|
|
177
|
-
}
|
|
178
|
-
return result.exitCode;
|
|
179
|
-
}
|
|
180
|
-
if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
181
|
-
process.exit(run(process.argv.slice(2)));
|
|
182
|
-
}
|
|
183
|
-
//# sourceMappingURL=review-monitor-register.js.map
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
interface ParsedArgs {
|
|
3
|
-
pr: number | null;
|
|
4
|
-
repo: string | null;
|
|
5
|
-
monitorAgentId: string | null;
|
|
6
|
-
owner: string | null;
|
|
7
|
-
projectRoot: string;
|
|
8
|
-
help: boolean;
|
|
9
|
-
error?: string;
|
|
10
|
-
}
|
|
11
|
-
export declare function parseReleaseArgs(argv: readonly string[]): ParsedArgs;
|
|
12
|
-
export declare function run(argv: readonly string[]): number;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=review-monitor-release.d.ts.map
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { RELEASE_HELP, releaseReviewMonitor } from "@deftai/directive-core/review-monitor";
|
|
5
|
-
export function parseReleaseArgs(argv) {
|
|
6
|
-
const acc = {
|
|
7
|
-
pr: null,
|
|
8
|
-
repo: null,
|
|
9
|
-
monitorAgentId: null,
|
|
10
|
-
owner: null,
|
|
11
|
-
projectRoot: ".",
|
|
12
|
-
help: false,
|
|
13
|
-
};
|
|
14
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
15
|
-
const arg = argv[i];
|
|
16
|
-
if (arg === "--help" || arg === "-h") {
|
|
17
|
-
return { ...acc, help: true };
|
|
18
|
-
}
|
|
19
|
-
if (arg === "--pr") {
|
|
20
|
-
const value = argv[i + 1];
|
|
21
|
-
if (value === undefined) {
|
|
22
|
-
return { ...acc, error: "argument --pr: expected one argument" };
|
|
23
|
-
}
|
|
24
|
-
const n = Number(value);
|
|
25
|
-
if (!Number.isInteger(n) || n <= 0) {
|
|
26
|
-
return { ...acc, error: `invalid --pr value: ${value}` };
|
|
27
|
-
}
|
|
28
|
-
acc.pr = n;
|
|
29
|
-
i += 1;
|
|
30
|
-
}
|
|
31
|
-
else if (arg?.startsWith("--pr=")) {
|
|
32
|
-
const n = Number(arg.slice("--pr=".length));
|
|
33
|
-
if (!Number.isInteger(n) || n <= 0) {
|
|
34
|
-
return { ...acc, error: `invalid --pr value: ${arg}` };
|
|
35
|
-
}
|
|
36
|
-
acc.pr = n;
|
|
37
|
-
}
|
|
38
|
-
else if (arg === "--repo") {
|
|
39
|
-
const value = argv[i + 1];
|
|
40
|
-
if (value === undefined) {
|
|
41
|
-
return { ...acc, error: "argument --repo: expected one argument" };
|
|
42
|
-
}
|
|
43
|
-
acc.repo = value;
|
|
44
|
-
i += 1;
|
|
45
|
-
}
|
|
46
|
-
else if (arg?.startsWith("--repo=")) {
|
|
47
|
-
acc.repo = arg.slice("--repo=".length);
|
|
48
|
-
}
|
|
49
|
-
else if (arg === "--monitor-agent-id") {
|
|
50
|
-
const value = argv[i + 1];
|
|
51
|
-
if (value === undefined) {
|
|
52
|
-
return { ...acc, error: "argument --monitor-agent-id: expected one argument" };
|
|
53
|
-
}
|
|
54
|
-
acc.monitorAgentId = value;
|
|
55
|
-
i += 1;
|
|
56
|
-
}
|
|
57
|
-
else if (arg?.startsWith("--monitor-agent-id=")) {
|
|
58
|
-
acc.monitorAgentId = arg.slice("--monitor-agent-id=".length);
|
|
59
|
-
}
|
|
60
|
-
else if (arg === "--owner") {
|
|
61
|
-
const value = argv[i + 1];
|
|
62
|
-
if (value === undefined) {
|
|
63
|
-
return { ...acc, error: "argument --owner: expected one argument" };
|
|
64
|
-
}
|
|
65
|
-
acc.owner = value;
|
|
66
|
-
i += 1;
|
|
67
|
-
}
|
|
68
|
-
else if (arg?.startsWith("--owner=")) {
|
|
69
|
-
acc.owner = arg.slice("--owner=".length);
|
|
70
|
-
}
|
|
71
|
-
else if (arg === "--project-root") {
|
|
72
|
-
const value = argv[i + 1];
|
|
73
|
-
if (value === undefined) {
|
|
74
|
-
return { ...acc, error: "argument --project-root: expected one argument" };
|
|
75
|
-
}
|
|
76
|
-
acc.projectRoot = value;
|
|
77
|
-
i += 1;
|
|
78
|
-
}
|
|
79
|
-
else if (arg?.startsWith("--project-root=")) {
|
|
80
|
-
acc.projectRoot = arg.slice("--project-root=".length);
|
|
81
|
-
}
|
|
82
|
-
else if (arg?.startsWith("-")) {
|
|
83
|
-
return { ...acc, error: `unrecognized argument: ${arg}` };
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
return { ...acc, error: `unrecognized argument: ${arg}` };
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return acc;
|
|
90
|
-
}
|
|
91
|
-
export function run(argv) {
|
|
92
|
-
const args = parseReleaseArgs(argv);
|
|
93
|
-
if (args.help) {
|
|
94
|
-
process.stdout.write(RELEASE_HELP);
|
|
95
|
-
return 0;
|
|
96
|
-
}
|
|
97
|
-
if (args.error !== undefined) {
|
|
98
|
-
process.stderr.write(`review_monitor_release: ${args.error}\n`);
|
|
99
|
-
return 2;
|
|
100
|
-
}
|
|
101
|
-
if (args.pr === null) {
|
|
102
|
-
process.stderr.write("review_monitor_release: --pr is required\n");
|
|
103
|
-
return 2;
|
|
104
|
-
}
|
|
105
|
-
const result = releaseReviewMonitor({
|
|
106
|
-
pr: args.pr,
|
|
107
|
-
repo: args.repo,
|
|
108
|
-
monitorAgentId: args.monitorAgentId,
|
|
109
|
-
owner: args.owner,
|
|
110
|
-
projectRoot: resolve(args.projectRoot),
|
|
111
|
-
});
|
|
112
|
-
if (result.exitCode === 0) {
|
|
113
|
-
process.stdout.write(`${result.message}\n`);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
process.stderr.write(`${result.message}\n`);
|
|
117
|
-
}
|
|
118
|
-
return result.exitCode;
|
|
119
|
-
}
|
|
120
|
-
if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
121
|
-
process.exit(run(process.argv.slice(2)));
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=review-monitor-release.js.map
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI for `scm:sync-default` (#3391).
|
|
3
|
-
*
|
|
4
|
-
* Opens dest-targeted default-branch sync PRs using the shared detector and
|
|
5
|
-
* syncMaxFiles. Over-limit legs are new branches and new PRs.
|
|
6
|
-
*/
|
|
7
|
-
import { planSyncDefault, type SyncDefaultForge, type SyncDefaultOpenPull } from "@deftai/directive-core/policy";
|
|
8
|
-
export declare const USAGE: string;
|
|
9
|
-
export interface SyncDefaultCliArgs {
|
|
10
|
-
readonly dryRun?: boolean;
|
|
11
|
-
readonly json?: boolean;
|
|
12
|
-
readonly help?: boolean;
|
|
13
|
-
readonly maxFiles?: number;
|
|
14
|
-
readonly projectRoot?: string;
|
|
15
|
-
readonly repo?: string;
|
|
16
|
-
}
|
|
17
|
-
export declare function parseSyncDefaultArgs(argv: readonly string[]): {
|
|
18
|
-
args: SyncDefaultCliArgs;
|
|
19
|
-
error: string | null;
|
|
20
|
-
};
|
|
21
|
-
export declare function pullsFromRestJson(payload: unknown): readonly SyncDefaultOpenPull[];
|
|
22
|
-
export declare function createGhSyncDefaultForge(): SyncDefaultForge;
|
|
23
|
-
export declare function resolveRepoFromGit(projectRoot: string): string | null;
|
|
24
|
-
export declare function runSyncDefaultCli(args: SyncDefaultCliArgs, options?: {
|
|
25
|
-
writeOut?: (s: string) => void;
|
|
26
|
-
writeErr?: (s: string) => void;
|
|
27
|
-
forge?: SyncDefaultForge;
|
|
28
|
-
cwd?: string;
|
|
29
|
-
runGit?: Parameters<typeof planSyncDefault>[0]["runGit"];
|
|
30
|
-
resolveRepo?: (projectRoot: string) => string | null;
|
|
31
|
-
}): number;
|
|
32
|
-
export declare function mainEntry(argv?: string[]): number;
|
|
33
|
-
export declare function main(argv?: string[]): number;
|
|
34
|
-
//# sourceMappingURL=scm-sync-default.d.ts.map
|
package/dist/scm-sync-default.js
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI for `scm:sync-default` (#3391).
|
|
3
|
-
*
|
|
4
|
-
* Opens dest-targeted default-branch sync PRs using the shared detector and
|
|
5
|
-
* syncMaxFiles. Over-limit legs are new branches and new PRs.
|
|
6
|
-
*/
|
|
7
|
-
import { writeFileSync } from "node:fs";
|
|
8
|
-
import { tmpdir } from "node:os";
|
|
9
|
-
import { join } from "node:path";
|
|
10
|
-
import { fileURLToPath } from "node:url";
|
|
11
|
-
import { applySyncDefault, formatSyncDefaultHuman, parseGithubOwnerRepo, planSyncDefault, SYNC_DEFAULT_VERB, } from "@deftai/directive-core/policy";
|
|
12
|
-
import { runGhApi, splitRepo } from "@deftai/directive-core/scm";
|
|
13
|
-
import { defaultGitRunner } from "@deftai/directive-core/session";
|
|
14
|
-
export const USAGE = `usage: deft ${SYNC_DEFAULT_VERB} [--dry-run] [--json] [--max-files N] [--repo OWNER/REPO]\n` +
|
|
15
|
-
" Open dest-targeted sync PRs under syncMaxFiles. Under the limit: one new PR\n" +
|
|
16
|
-
" from source tip to dest. Over: merge-commit cuts; each dest-based leg is a\n" +
|
|
17
|
-
" new branch and a new PR. After a leg merges, run again. Never retarget or\n" +
|
|
18
|
-
" reuse an oversized PR. Each leg must be new when the reviewer first sees it.\n" +
|
|
19
|
-
" Required checks stay on except the Wave 1 core-guard sync exemption.\n";
|
|
20
|
-
export function parseSyncDefaultArgs(argv) {
|
|
21
|
-
const out = {};
|
|
22
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
23
|
-
const arg = argv[i];
|
|
24
|
-
if (arg === "--dry-run") {
|
|
25
|
-
out.dryRun = true;
|
|
26
|
-
}
|
|
27
|
-
else if (arg === "--json") {
|
|
28
|
-
out.json = true;
|
|
29
|
-
}
|
|
30
|
-
else if (arg === "--help" || arg === "-h") {
|
|
31
|
-
out.help = true;
|
|
32
|
-
}
|
|
33
|
-
else if (arg === "--max-files") {
|
|
34
|
-
const raw = argv[++i];
|
|
35
|
-
const parsed = raw === undefined ? Number.NaN : Number(raw);
|
|
36
|
-
if (!Number.isInteger(parsed) || parsed < 0) {
|
|
37
|
-
return { args: out, error: `--max-files expects a non-negative integer, got ${raw ?? ""}` };
|
|
38
|
-
}
|
|
39
|
-
out.maxFiles = parsed;
|
|
40
|
-
}
|
|
41
|
-
else if (arg === "--project-root") {
|
|
42
|
-
const value = argv[++i];
|
|
43
|
-
if (value === undefined) {
|
|
44
|
-
return { args: out, error: "--project-root expects a path" };
|
|
45
|
-
}
|
|
46
|
-
out.projectRoot = value;
|
|
47
|
-
}
|
|
48
|
-
else if (arg === "--repo") {
|
|
49
|
-
const value = argv[++i];
|
|
50
|
-
if (value === undefined) {
|
|
51
|
-
return { args: out, error: "--repo expects OWNER/REPO" };
|
|
52
|
-
}
|
|
53
|
-
out.repo = value;
|
|
54
|
-
}
|
|
55
|
-
else if (arg.startsWith("-")) {
|
|
56
|
-
return { args: out, error: `unknown flag ${JSON.stringify(arg)}` };
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
return { args: out, error: `unexpected argument ${JSON.stringify(arg)}` };
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return { args: out, error: null };
|
|
63
|
-
}
|
|
64
|
-
export function pullsFromRestJson(payload) {
|
|
65
|
-
if (!Array.isArray(payload))
|
|
66
|
-
return [];
|
|
67
|
-
const pulls = [];
|
|
68
|
-
for (const row of payload) {
|
|
69
|
-
if (typeof row !== "object" || row === null)
|
|
70
|
-
continue;
|
|
71
|
-
const rec = row;
|
|
72
|
-
const head = rec.head;
|
|
73
|
-
const baseRec = rec.base;
|
|
74
|
-
if (typeof head !== "object" || head === null)
|
|
75
|
-
continue;
|
|
76
|
-
if (typeof baseRec !== "object" || baseRec === null)
|
|
77
|
-
continue;
|
|
78
|
-
const headRec = head;
|
|
79
|
-
const baseObj = baseRec;
|
|
80
|
-
const number = rec.number;
|
|
81
|
-
const htmlUrl = rec.html_url;
|
|
82
|
-
const headRef = headRec.ref;
|
|
83
|
-
const headSha = headRec.sha;
|
|
84
|
-
const baseRef = baseObj.ref;
|
|
85
|
-
if (typeof number !== "number" ||
|
|
86
|
-
typeof htmlUrl !== "string" ||
|
|
87
|
-
typeof headRef !== "string" ||
|
|
88
|
-
typeof headSha !== "string" ||
|
|
89
|
-
typeof baseRef !== "string") {
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
pulls.push({ number, htmlUrl, headRef, headSha, baseRef });
|
|
93
|
-
}
|
|
94
|
-
return pulls;
|
|
95
|
-
}
|
|
96
|
-
export function createGhSyncDefaultForge() {
|
|
97
|
-
return {
|
|
98
|
-
listOpenPulls(repo, base) {
|
|
99
|
-
const [owner, name] = splitRepo(repo);
|
|
100
|
-
const endpoint = `repos/${owner}/${name}/pulls`;
|
|
101
|
-
const result = runGhApi([
|
|
102
|
-
endpoint,
|
|
103
|
-
"--method",
|
|
104
|
-
"GET",
|
|
105
|
-
"--raw-field",
|
|
106
|
-
`base=${base}`,
|
|
107
|
-
"--raw-field",
|
|
108
|
-
"state=open",
|
|
109
|
-
"--raw-field",
|
|
110
|
-
"per_page=100",
|
|
111
|
-
]);
|
|
112
|
-
if (result.returncode !== 0) {
|
|
113
|
-
throw new Error(result.stderr || `failed to list open pulls for ${repo}`);
|
|
114
|
-
}
|
|
115
|
-
return pullsFromRestJson(JSON.parse(result.stdout || "[]"));
|
|
116
|
-
},
|
|
117
|
-
createPull(repo, input) {
|
|
118
|
-
const [owner, name] = splitRepo(repo);
|
|
119
|
-
const endpoint = `repos/${owner}/${name}/pulls`;
|
|
120
|
-
const bodyPath = join(tmpdir(), `deft-sync-default-${Date.now()}.json`);
|
|
121
|
-
writeFileSync(bodyPath, JSON.stringify({
|
|
122
|
-
title: input.title,
|
|
123
|
-
head: input.head,
|
|
124
|
-
base: input.base,
|
|
125
|
-
body: input.body,
|
|
126
|
-
}), { encoding: "utf8" });
|
|
127
|
-
const result = runGhApi(["-X", "POST", endpoint, "--input", bodyPath]);
|
|
128
|
-
if (result.returncode !== 0) {
|
|
129
|
-
throw new Error(result.stderr || `failed to create pull for ${repo}`);
|
|
130
|
-
}
|
|
131
|
-
const created = JSON.parse(result.stdout);
|
|
132
|
-
if (typeof created.number !== "number" || typeof created.html_url !== "string") {
|
|
133
|
-
throw new Error("create pull returned no number/html_url");
|
|
134
|
-
}
|
|
135
|
-
return { number: created.number, htmlUrl: created.html_url };
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
export function resolveRepoFromGit(projectRoot) {
|
|
140
|
-
const remote = defaultGitRunner(projectRoot, ["remote", "get-url", "origin"]);
|
|
141
|
-
if (remote.code !== 0)
|
|
142
|
-
return null;
|
|
143
|
-
return parseGithubOwnerRepo(remote.stdout);
|
|
144
|
-
}
|
|
145
|
-
export function runSyncDefaultCli(args, options = {}) {
|
|
146
|
-
const writeOut = options.writeOut ?? ((s) => process.stdout.write(s));
|
|
147
|
-
const writeErr = options.writeErr ?? ((s) => process.stderr.write(s));
|
|
148
|
-
if (args.help === true) {
|
|
149
|
-
writeOut(USAGE);
|
|
150
|
-
return 0;
|
|
151
|
-
}
|
|
152
|
-
const projectRoot = args.projectRoot ?? options.cwd ?? process.cwd();
|
|
153
|
-
const plan = planSyncDefault({
|
|
154
|
-
projectRoot,
|
|
155
|
-
maxFiles: args.maxFiles,
|
|
156
|
-
runGit: options.runGit,
|
|
157
|
-
});
|
|
158
|
-
if (plan.action === "noop") {
|
|
159
|
-
if (args.json === true) {
|
|
160
|
-
writeOut(`${JSON.stringify({ ...plan, opened: [], retargeted: false }, null, 2)}\n`);
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
writeOut(`${plan.message}\n`);
|
|
164
|
-
}
|
|
165
|
-
return plan.noopReason === "fetch-failed" || plan.noopReason === "diff-failed" ? 2 : 0;
|
|
166
|
-
}
|
|
167
|
-
const resolveRepo = options.resolveRepo ?? resolveRepoFromGit;
|
|
168
|
-
const repo = args.repo ?? resolveRepo(projectRoot);
|
|
169
|
-
if (repo === null && args.dryRun !== true) {
|
|
170
|
-
writeErr("scm:sync-default: could not resolve OWNER/REPO from origin; pass --repo\n");
|
|
171
|
-
return 2;
|
|
172
|
-
}
|
|
173
|
-
try {
|
|
174
|
-
const result = applySyncDefault({
|
|
175
|
-
projectRoot,
|
|
176
|
-
repo: repo ?? "owner/repo",
|
|
177
|
-
plan,
|
|
178
|
-
dryRun: args.dryRun === true,
|
|
179
|
-
runGit: options.runGit,
|
|
180
|
-
forge: args.dryRun === true ? undefined : (options.forge ?? createGhSyncDefaultForge()),
|
|
181
|
-
});
|
|
182
|
-
if (args.json === true) {
|
|
183
|
-
writeOut(`${JSON.stringify(result, null, 2)}\n`);
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
writeOut(formatSyncDefaultHuman(result));
|
|
187
|
-
}
|
|
188
|
-
return 0;
|
|
189
|
-
}
|
|
190
|
-
catch (err) {
|
|
191
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
192
|
-
writeErr(`scm:sync-default: ${message}\n`);
|
|
193
|
-
return 1;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
export function mainEntry(argv = process.argv.slice(2)) {
|
|
197
|
-
const { args, error } = parseSyncDefaultArgs(argv);
|
|
198
|
-
if (error !== null) {
|
|
199
|
-
process.stderr.write(`error: ${error}\n${USAGE}`);
|
|
200
|
-
return 2;
|
|
201
|
-
}
|
|
202
|
-
return runSyncDefaultCli(args);
|
|
203
|
-
}
|
|
204
|
-
export function main(argv = process.argv.slice(2)) {
|
|
205
|
-
return mainEntry(argv);
|
|
206
|
-
}
|
|
207
|
-
if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
208
|
-
process.exit(mainEntry());
|
|
209
|
-
}
|
|
210
|
-
//# sourceMappingURL=scm-sync-default.js.map
|
package/dist/scope-lifecycle.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Thin CLI entry for scope lifecycle (#1726).
|
|
4
|
-
* Delegates to packages/core/dist/scope/cli.js.
|
|
5
|
-
*/
|
|
6
|
-
import { spawnSync } from "node:child_process";
|
|
7
|
-
import { createRequire } from "node:module";
|
|
8
|
-
import { fileURLToPath } from "node:url";
|
|
9
|
-
const require = createRequire(import.meta.url);
|
|
10
|
-
// Resolve the core CLI by its published package name so it works both in the
|
|
11
|
-
// source monorepo and under a flattened npm install (#1993). The bare specifier
|
|
12
|
-
// resolves via @deftai/directive-core's "./dist/*.js" export map; a hand-built
|
|
13
|
-
// relative path would point at the non-existent "@deftai/core" once published.
|
|
14
|
-
function coreCliPath() {
|
|
15
|
-
return require.resolve("@deftai/directive-core/dist/scope/cli.js");
|
|
16
|
-
}
|
|
17
|
-
/** Run scope lifecycle with argv; returns process exit code. */
|
|
18
|
-
export function run(argv) {
|
|
19
|
-
const result = spawnSync(process.execPath, [coreCliPath(), ...argv], {
|
|
20
|
-
encoding: "utf8",
|
|
21
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
22
|
-
});
|
|
23
|
-
if (typeof result.stdout === "string" && result.stdout.length > 0) {
|
|
24
|
-
process.stdout.write(result.stdout);
|
|
25
|
-
}
|
|
26
|
-
if (typeof result.stderr === "string" && result.stderr.length > 0) {
|
|
27
|
-
process.stderr.write(result.stderr);
|
|
28
|
-
}
|
|
29
|
-
return result.status ?? 2;
|
|
30
|
-
}
|
|
31
|
-
if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
32
|
-
process.exit(run(process.argv.slice(2)));
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=scope-lifecycle.js.map
|