@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
package/dist/triage-evaluate.js
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { DEFAULT_CONCURRENCY, EvaluateError, evaluateIssues, renderEvaluateText, } from "@deftai/directive-core/dist/triage/evaluate/index.js";
|
|
5
|
-
import { interceptHelp } from "@deftai/directive-core/dist/triage/help/index.js";
|
|
6
|
-
import { resolveRepo } from "@deftai/directive-core/dist/triage/queue/repo.js";
|
|
7
|
-
export function parseArgs(argv) {
|
|
8
|
-
const parsed = {
|
|
9
|
-
projectRoot: process.env.DEFT_PROJECT_ROOT ?? process.cwd(),
|
|
10
|
-
repo: process.env.DEFT_TRIAGE_REPO ?? null,
|
|
11
|
-
issues: [],
|
|
12
|
-
concurrency: DEFAULT_CONCURRENCY,
|
|
13
|
-
json: false,
|
|
14
|
-
};
|
|
15
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
16
|
-
const arg = argv[i];
|
|
17
|
-
if (arg === undefined || arg === "--") {
|
|
18
|
-
continue;
|
|
19
|
-
}
|
|
20
|
-
if (arg === "--project-root") {
|
|
21
|
-
if (i + 1 >= argv.length) {
|
|
22
|
-
return { ...parsed, error: "--project-root requires a path" };
|
|
23
|
-
}
|
|
24
|
-
i += 1;
|
|
25
|
-
const value = argv[i];
|
|
26
|
-
if (value === undefined) {
|
|
27
|
-
return { ...parsed, error: "--project-root requires a path" };
|
|
28
|
-
}
|
|
29
|
-
parsed.projectRoot = value;
|
|
30
|
-
}
|
|
31
|
-
else if (arg.startsWith("--project-root=")) {
|
|
32
|
-
parsed.projectRoot = arg.slice("--project-root=".length);
|
|
33
|
-
}
|
|
34
|
-
else if (arg === "--repo") {
|
|
35
|
-
if (i + 1 >= argv.length) {
|
|
36
|
-
return { ...parsed, error: "--repo requires owner/name" };
|
|
37
|
-
}
|
|
38
|
-
i += 1;
|
|
39
|
-
const value = argv[i];
|
|
40
|
-
if (value === undefined) {
|
|
41
|
-
return { ...parsed, error: "--repo requires owner/name" };
|
|
42
|
-
}
|
|
43
|
-
parsed.repo = value;
|
|
44
|
-
}
|
|
45
|
-
else if (arg.startsWith("--repo=")) {
|
|
46
|
-
parsed.repo = arg.slice("--repo=".length);
|
|
47
|
-
}
|
|
48
|
-
else if (arg === "--issue") {
|
|
49
|
-
if (i + 1 >= argv.length) {
|
|
50
|
-
return { ...parsed, error: "--issue requires a number" };
|
|
51
|
-
}
|
|
52
|
-
i += 1;
|
|
53
|
-
const value = argv[i];
|
|
54
|
-
if (value === undefined) {
|
|
55
|
-
return { ...parsed, error: "--issue requires a number" };
|
|
56
|
-
}
|
|
57
|
-
const n = Number.parseInt(value, 10);
|
|
58
|
-
if (!Number.isInteger(n) || n < 1) {
|
|
59
|
-
return { ...parsed, error: `--issue invalid: ${value}` };
|
|
60
|
-
}
|
|
61
|
-
parsed.issues.push(n);
|
|
62
|
-
}
|
|
63
|
-
else if (arg.startsWith("--issue=")) {
|
|
64
|
-
const n = Number.parseInt(arg.slice("--issue=".length), 10);
|
|
65
|
-
if (!Number.isInteger(n) || n < 1) {
|
|
66
|
-
return { ...parsed, error: `--issue invalid: ${arg}` };
|
|
67
|
-
}
|
|
68
|
-
parsed.issues.push(n);
|
|
69
|
-
}
|
|
70
|
-
else if (arg === "--concurrency") {
|
|
71
|
-
if (i + 1 >= argv.length) {
|
|
72
|
-
return { ...parsed, error: "--concurrency requires a positive integer" };
|
|
73
|
-
}
|
|
74
|
-
i += 1;
|
|
75
|
-
const value = argv[i];
|
|
76
|
-
if (value === undefined) {
|
|
77
|
-
return { ...parsed, error: "--concurrency requires a positive integer" };
|
|
78
|
-
}
|
|
79
|
-
const n = Number.parseInt(value, 10);
|
|
80
|
-
if (!Number.isInteger(n) || n < 1) {
|
|
81
|
-
return { ...parsed, error: `--concurrency invalid: ${value}` };
|
|
82
|
-
}
|
|
83
|
-
parsed.concurrency = n;
|
|
84
|
-
}
|
|
85
|
-
else if (arg.startsWith("--concurrency=")) {
|
|
86
|
-
const n = Number.parseInt(arg.slice("--concurrency=".length), 10);
|
|
87
|
-
if (!Number.isInteger(n) || n < 1) {
|
|
88
|
-
return { ...parsed, error: `--concurrency invalid: ${arg}` };
|
|
89
|
-
}
|
|
90
|
-
parsed.concurrency = n;
|
|
91
|
-
}
|
|
92
|
-
else if (arg === "--json") {
|
|
93
|
-
parsed.json = true;
|
|
94
|
-
}
|
|
95
|
-
else if (arg.startsWith("-")) {
|
|
96
|
-
return { ...parsed, error: `unrecognized argument: ${arg}` };
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
const n = Number.parseInt(arg.replace(/^#/u, ""), 10);
|
|
100
|
-
if (!Number.isInteger(n) || n < 1) {
|
|
101
|
-
return { ...parsed, error: `invalid issue number: ${arg}` };
|
|
102
|
-
}
|
|
103
|
-
parsed.issues.push(n);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return parsed;
|
|
107
|
-
}
|
|
108
|
-
export async function run(argv) {
|
|
109
|
-
const help = interceptHelp("triage_evaluate", argv);
|
|
110
|
-
if (help !== null) {
|
|
111
|
-
return help;
|
|
112
|
-
}
|
|
113
|
-
const parsed = parseArgs(argv);
|
|
114
|
-
if (parsed.error !== undefined) {
|
|
115
|
-
process.stderr.write(`triage:evaluate: ${parsed.error}\n`);
|
|
116
|
-
return 2;
|
|
117
|
-
}
|
|
118
|
-
const projectRoot = resolve(parsed.projectRoot);
|
|
119
|
-
const repo = resolveRepo(parsed.repo, projectRoot);
|
|
120
|
-
if (repo === null) {
|
|
121
|
-
process.stderr.write("triage:evaluate: --repo owner/name is required\n");
|
|
122
|
-
return 2;
|
|
123
|
-
}
|
|
124
|
-
try {
|
|
125
|
-
const result = await evaluateIssues({
|
|
126
|
-
projectRoot,
|
|
127
|
-
repo,
|
|
128
|
-
issues: parsed.issues,
|
|
129
|
-
concurrency: parsed.concurrency,
|
|
130
|
-
});
|
|
131
|
-
if (parsed.json) {
|
|
132
|
-
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
process.stdout.write(renderEvaluateText(result));
|
|
136
|
-
}
|
|
137
|
-
return result.verdicts.some((v) => v.error !== null) ? 1 : 0;
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
const message = err instanceof EvaluateError ? err.message : String(err);
|
|
141
|
-
process.stderr.write(`triage:evaluate: ${message}\n`);
|
|
142
|
-
return err instanceof EvaluateError ? 2 : 1;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
export async function main(argv) {
|
|
146
|
-
return run(argv);
|
|
147
|
-
}
|
|
148
|
-
if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
149
|
-
void run(process.argv.slice(2)).then((code) => {
|
|
150
|
-
process.exit(code);
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
//# sourceMappingURL=triage-evaluate.js.map
|
package/dist/triage-help.d.ts
DELETED
package/dist/triage-help.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { fileURLToPath } from "node:url";
|
|
3
|
-
import { runHelp } from "@deftai/directive-core/dist/triage/help/index.js";
|
|
4
|
-
export function run(argv) {
|
|
5
|
-
return runHelp(argv);
|
|
6
|
-
}
|
|
7
|
-
if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
8
|
-
process.exit(run(process.argv.slice(2)));
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=triage-help.js.map
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
export interface CommandCapture {
|
|
2
|
-
readonly exitCode: number;
|
|
3
|
-
readonly stdout: string;
|
|
4
|
-
readonly stderr: string;
|
|
5
|
-
}
|
|
6
|
-
export interface QueueFixtureIssue {
|
|
7
|
-
readonly number: number;
|
|
8
|
-
readonly title?: string;
|
|
9
|
-
readonly state?: string;
|
|
10
|
-
readonly labels?: readonly string[];
|
|
11
|
-
readonly updatedAt?: string;
|
|
12
|
-
readonly createdAt?: string;
|
|
13
|
-
/** Cache author.login for --author filter tests (#3129). */
|
|
14
|
-
readonly author?: string;
|
|
15
|
-
}
|
|
16
|
-
export interface QueueAuditEntry {
|
|
17
|
-
readonly issueNumber: number;
|
|
18
|
-
readonly decision: string;
|
|
19
|
-
readonly timestamp?: string;
|
|
20
|
-
}
|
|
21
|
-
export interface QueueFixtureOptions {
|
|
22
|
-
readonly repo?: string;
|
|
23
|
-
readonly issues?: readonly QueueFixtureIssue[];
|
|
24
|
-
readonly auditEntries?: readonly QueueAuditEntry[];
|
|
25
|
-
readonly rankingLabels?: readonly string[];
|
|
26
|
-
readonly activeIssueNumbers?: readonly number[];
|
|
27
|
-
readonly sliceRecords?: readonly Record<string, unknown>[];
|
|
28
|
-
readonly blockedIssueNumbers?: readonly number[];
|
|
29
|
-
}
|
|
30
|
-
export interface ParityCase {
|
|
31
|
-
readonly name: string;
|
|
32
|
-
readonly argv: readonly string[];
|
|
33
|
-
readonly fixture?: QueueFixtureOptions;
|
|
34
|
-
readonly skipFixture?: boolean;
|
|
35
|
-
}
|
|
36
|
-
export interface ParityDiff {
|
|
37
|
-
readonly caseName: string;
|
|
38
|
-
readonly exitMismatch: boolean;
|
|
39
|
-
readonly stdoutMismatch: boolean;
|
|
40
|
-
readonly stderrMismatch: boolean;
|
|
41
|
-
readonly pythonExit: number;
|
|
42
|
-
readonly tsExit: number;
|
|
43
|
-
}
|
|
44
|
-
export interface ParityResult {
|
|
45
|
-
readonly ok: boolean;
|
|
46
|
-
readonly diffs: readonly ParityDiff[];
|
|
47
|
-
}
|
|
48
|
-
/** Strip volatile absolute paths before compare. */
|
|
49
|
-
export declare function normalizeOutput(text: string): string;
|
|
50
|
-
/** Build a throwaway project root with optional queue fixtures. */
|
|
51
|
-
export declare function buildFixtureRepo(options?: QueueFixtureOptions): string;
|
|
52
|
-
/** Diff one parity case between Python oracle and TS CLI. */
|
|
53
|
-
export declare function diffCase(python: CommandCapture, ts: CommandCapture, caseName: string): ParityDiff;
|
|
54
|
-
export declare const PARITY_CASES: readonly ParityCase[];
|
|
55
|
-
/** Augment argv with fixture audit/slices hooks when present. */
|
|
56
|
-
export declare function augmentParityArgv(testCase: ParityCase, root: string): readonly string[];
|
|
57
|
-
/** Run all parity cases; returns aggregate result. */
|
|
58
|
-
export declare function renderReport(result: ParityResult): string;
|
|
59
|
-
//# sourceMappingURL=triage-queue-fixtures.d.ts.map
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
/** Test fixtures extracted from legacy parity harness (#2083). */
|
|
2
|
-
import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs";
|
|
3
|
-
import { tmpdir } from "node:os";
|
|
4
|
-
import { join } from "node:path";
|
|
5
|
-
const DEFAULT_REPO = "owner/repo";
|
|
6
|
-
/** Strip volatile absolute paths before compare. */
|
|
7
|
-
export function normalizeOutput(text) {
|
|
8
|
-
return text
|
|
9
|
-
.replace(/^WARN [^\n]*\n/gm, "")
|
|
10
|
-
.replace(/project_root=[^\s)]+/g, "project_root=<ROOT>");
|
|
11
|
-
}
|
|
12
|
-
function writeCachedIssue(root, repo, issue) {
|
|
13
|
-
const parts = repo.split("/", 2);
|
|
14
|
-
const owner = parts[0];
|
|
15
|
-
const name = parts[1];
|
|
16
|
-
if (owner === undefined || name === undefined) {
|
|
17
|
-
throw new Error(`invalid repo slug: ${repo}`);
|
|
18
|
-
}
|
|
19
|
-
const dir = join(root, ".deft-cache", "github-issue", owner, name, String(issue.number));
|
|
20
|
-
mkdirSync(dir, { recursive: true });
|
|
21
|
-
const raw = {
|
|
22
|
-
number: issue.number,
|
|
23
|
-
title: issue.title ?? `Issue ${issue.number}`,
|
|
24
|
-
state: issue.state ?? "open",
|
|
25
|
-
labels: (issue.labels ?? []).map((label) => ({ name: label })),
|
|
26
|
-
updated_at: issue.updatedAt ?? "2026-05-17T20:00:00Z",
|
|
27
|
-
...(issue.createdAt !== undefined ? { created_at: issue.createdAt } : {}),
|
|
28
|
-
...(issue.author !== undefined ? { author: { login: issue.author } } : {}),
|
|
29
|
-
};
|
|
30
|
-
writeFileSync(join(dir, "raw.json"), `${JSON.stringify(raw)}\n`, { encoding: "utf8" });
|
|
31
|
-
}
|
|
32
|
-
function writeAuditLog(root, repo, entries) {
|
|
33
|
-
const dir = join(root, "xbrief", ".triage-cache");
|
|
34
|
-
mkdirSync(dir, { recursive: true });
|
|
35
|
-
const lines = entries.map((entry) => JSON.stringify({
|
|
36
|
-
decision_id: `id-${entry.issueNumber}-${entry.decision}`,
|
|
37
|
-
timestamp: entry.timestamp ?? "2026-05-17T20:00:00Z",
|
|
38
|
-
repo,
|
|
39
|
-
issue_number: entry.issueNumber,
|
|
40
|
-
decision: entry.decision,
|
|
41
|
-
actor: "parity",
|
|
42
|
-
}));
|
|
43
|
-
writeFileSync(join(dir, "candidates.jsonl"), `${lines.join("\n")}\n`, { encoding: "utf8" });
|
|
44
|
-
}
|
|
45
|
-
function writeProjectDefinition(root, rankingLabels) {
|
|
46
|
-
const dir = join(root, "xbrief");
|
|
47
|
-
mkdirSync(dir, { recursive: true });
|
|
48
|
-
const plan = { title: "T", status: "running", items: [] };
|
|
49
|
-
if (rankingLabels !== undefined && rankingLabels.length > 0) {
|
|
50
|
-
plan.policy = { triageRankingLabels: [...rankingLabels] };
|
|
51
|
-
}
|
|
52
|
-
writeFileSync(join(dir, "PROJECT-DEFINITION.xbrief.json"), `${JSON.stringify({ xBRIEFInfo: { version: "0.8" }, plan }, null, 2)}\n`, { encoding: "utf8" });
|
|
53
|
-
}
|
|
54
|
-
function writeActiveScope(root, repo, issueNumber, filename) {
|
|
55
|
-
const dir = join(root, "xbrief", "active");
|
|
56
|
-
mkdirSync(dir, { recursive: true });
|
|
57
|
-
writeFileSync(join(dir, filename), `${JSON.stringify({
|
|
58
|
-
xBRIEFInfo: { version: "0.8" },
|
|
59
|
-
plan: {
|
|
60
|
-
title: "Active scope",
|
|
61
|
-
status: "running",
|
|
62
|
-
references: [
|
|
63
|
-
{
|
|
64
|
-
uri: `https://github.com/${repo}/issues/${issueNumber}`,
|
|
65
|
-
type: "x-vbrief/github-issue",
|
|
66
|
-
title: `Issue #${issueNumber}`,
|
|
67
|
-
},
|
|
68
|
-
],
|
|
69
|
-
},
|
|
70
|
-
})}\n`, { encoding: "utf8" });
|
|
71
|
-
}
|
|
72
|
-
function writeBlockedScope(root, repo, issueNumber, filename) {
|
|
73
|
-
const dir = join(root, "xbrief", "active");
|
|
74
|
-
mkdirSync(dir, { recursive: true });
|
|
75
|
-
writeFileSync(join(dir, filename), `${JSON.stringify({
|
|
76
|
-
xBRIEFInfo: { version: "0.8" },
|
|
77
|
-
plan: {
|
|
78
|
-
title: "Blocked scope",
|
|
79
|
-
status: "blocked",
|
|
80
|
-
references: [
|
|
81
|
-
{
|
|
82
|
-
uri: `https://github.com/${repo}/issues/${issueNumber}`,
|
|
83
|
-
type: "x-vbrief/github-issue",
|
|
84
|
-
title: `Issue #${issueNumber}`,
|
|
85
|
-
},
|
|
86
|
-
],
|
|
87
|
-
},
|
|
88
|
-
})}\n`, { encoding: "utf8" });
|
|
89
|
-
}
|
|
90
|
-
function writeSliceRecords(root, records) {
|
|
91
|
-
const dir = join(root, "xbrief", ".triage-cache");
|
|
92
|
-
mkdirSync(dir, { recursive: true });
|
|
93
|
-
writeFileSync(join(dir, "slices.jsonl"), `${records.map((record) => JSON.stringify(record)).join("\n")}\n`, { encoding: "utf8" });
|
|
94
|
-
}
|
|
95
|
-
/** Build a throwaway project root with optional queue fixtures. */
|
|
96
|
-
export function buildFixtureRepo(options = {}) {
|
|
97
|
-
const root = mkdtempSync(join(tmpdir(), "deft-triage-queue-parity-"));
|
|
98
|
-
const repo = options.repo ?? DEFAULT_REPO;
|
|
99
|
-
mkdirSync(join(root, "xbrief"), { recursive: true });
|
|
100
|
-
writeProjectDefinition(root, options.rankingLabels);
|
|
101
|
-
for (const issue of options.issues ?? []) {
|
|
102
|
-
writeCachedIssue(root, repo, issue);
|
|
103
|
-
}
|
|
104
|
-
if (options.auditEntries !== undefined && options.auditEntries.length > 0) {
|
|
105
|
-
writeAuditLog(root, repo, options.auditEntries);
|
|
106
|
-
}
|
|
107
|
-
for (const issueNumber of options.activeIssueNumbers ?? []) {
|
|
108
|
-
writeActiveScope(root, repo, issueNumber, `active-${issueNumber}.xbrief.json`);
|
|
109
|
-
}
|
|
110
|
-
for (const issueNumber of options.blockedIssueNumbers ?? []) {
|
|
111
|
-
writeBlockedScope(root, repo, issueNumber, `blocked-${issueNumber}.xbrief.json`);
|
|
112
|
-
}
|
|
113
|
-
if (options.sliceRecords !== undefined && options.sliceRecords.length > 0) {
|
|
114
|
-
writeSliceRecords(root, options.sliceRecords);
|
|
115
|
-
}
|
|
116
|
-
return root;
|
|
117
|
-
}
|
|
118
|
-
/** Diff one parity case between Python oracle and TS CLI. */
|
|
119
|
-
export function diffCase(python, ts, caseName) {
|
|
120
|
-
const pyOut = normalizeOutput(python.stdout);
|
|
121
|
-
const tsOut = normalizeOutput(ts.stdout);
|
|
122
|
-
const pyErr = normalizeOutput(python.stderr);
|
|
123
|
-
const tsErr = normalizeOutput(ts.stderr);
|
|
124
|
-
return {
|
|
125
|
-
caseName,
|
|
126
|
-
exitMismatch: python.exitCode !== ts.exitCode,
|
|
127
|
-
stdoutMismatch: pyOut !== tsOut,
|
|
128
|
-
stderrMismatch: pyErr !== tsErr,
|
|
129
|
-
pythonExit: python.exitCode,
|
|
130
|
-
tsExit: ts.exitCode,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
export const PARITY_CASES = [
|
|
134
|
-
{
|
|
135
|
-
name: "missing-repo",
|
|
136
|
-
argv: ["--project-root", "<ROOT>"],
|
|
137
|
-
skipFixture: true,
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
name: "empty-cache",
|
|
141
|
-
argv: ["--project-root", "<ROOT>", "--repo", DEFAULT_REPO, "--limit", "0"],
|
|
142
|
-
fixture: {},
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: "group-order",
|
|
146
|
-
argv: ["--project-root", "<ROOT>", "--repo", DEFAULT_REPO, "--limit", "0"],
|
|
147
|
-
fixture: {
|
|
148
|
-
issues: [
|
|
149
|
-
{ number: 1, title: "Untriaged", updatedAt: "2026-05-17T12:00:00Z" },
|
|
150
|
-
{ number: 2, title: "Resume", updatedAt: "2026-05-17T11:00:00Z" },
|
|
151
|
-
{ number: 3, title: "Urgent", updatedAt: "2026-05-15T10:00:00Z" },
|
|
152
|
-
{ number: 4, title: "Other", updatedAt: "2026-05-14T10:00:00Z" },
|
|
153
|
-
],
|
|
154
|
-
auditEntries: [
|
|
155
|
-
{ issueNumber: 3, decision: "needs-ac", timestamp: "2026-05-15T11:00:00Z" },
|
|
156
|
-
{ issueNumber: 4, decision: "defer", timestamp: "2026-05-14T11:00:00Z" },
|
|
157
|
-
],
|
|
158
|
-
activeIssueNumbers: [2],
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
name: "orphan-above-resume",
|
|
163
|
-
argv: ["--project-root", "<ROOT>", "--repo", DEFAULT_REPO, "--limit", "0"],
|
|
164
|
-
fixture: {
|
|
165
|
-
issues: [
|
|
166
|
-
{ number: 10, title: "Umbrella closed", state: "closed" },
|
|
167
|
-
{ number: 11, title: "Orphan child", state: "open", updatedAt: "2026-05-16T10:00:00Z" },
|
|
168
|
-
{ number: 12, title: "Resume child", state: "open", updatedAt: "2026-05-17T10:00:00Z" },
|
|
169
|
-
],
|
|
170
|
-
activeIssueNumbers: [12],
|
|
171
|
-
sliceRecords: [
|
|
172
|
-
{
|
|
173
|
-
slice_id: "slice-1",
|
|
174
|
-
umbrella: 10,
|
|
175
|
-
umbrella_url: "https://github.com/owner/repo/issues/10",
|
|
176
|
-
children: [
|
|
177
|
-
{ n: 11, url: "https://github.com/owner/repo/issues/11", wave: 1, role: "child" },
|
|
178
|
-
],
|
|
179
|
-
},
|
|
180
|
-
],
|
|
181
|
-
},
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
name: "resume-eligible",
|
|
185
|
-
argv: ["--project-root", "<ROOT>", "--repo", DEFAULT_REPO, "--limit", "0"],
|
|
186
|
-
fixture: {
|
|
187
|
-
issues: [
|
|
188
|
-
{ number: 20, title: "Resume eligible", updatedAt: "2026-05-17T10:00:00Z" },
|
|
189
|
-
{ number: 21, title: "Untriaged", updatedAt: "2026-05-17T11:00:00Z" },
|
|
190
|
-
],
|
|
191
|
-
auditEntries: [
|
|
192
|
-
{ issueNumber: 20, decision: "resume-eligible", timestamp: "2026-05-17T09:00:00Z" },
|
|
193
|
-
],
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
name: "ranking-labels",
|
|
198
|
-
argv: ["--project-root", "<ROOT>", "--repo", DEFAULT_REPO, "--limit", "0"],
|
|
199
|
-
fixture: {
|
|
200
|
-
rankingLabels: ["urgent", "breaking-change"],
|
|
201
|
-
issues: [
|
|
202
|
-
{ number: 30, title: "Unranked", updatedAt: "2026-05-17T10:00:00Z" },
|
|
203
|
-
{
|
|
204
|
-
number: 31,
|
|
205
|
-
title: "Breaking",
|
|
206
|
-
labels: ["breaking-change"],
|
|
207
|
-
updatedAt: "2026-05-15T10:00:00Z",
|
|
208
|
-
},
|
|
209
|
-
{ number: 32, title: "Urgent", labels: ["urgent"], updatedAt: "2026-05-16T10:00:00Z" },
|
|
210
|
-
],
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
name: "limit-cap",
|
|
215
|
-
argv: ["--project-root", "<ROOT>", "--repo", DEFAULT_REPO, "--limit", "2"],
|
|
216
|
-
fixture: {
|
|
217
|
-
issues: [
|
|
218
|
-
{ number: 40, updatedAt: "2026-05-17T10:00:00Z" },
|
|
219
|
-
{ number: 41, updatedAt: "2026-05-16T10:00:00Z" },
|
|
220
|
-
{ number: 42, updatedAt: "2026-05-15T10:00:00Z" },
|
|
221
|
-
],
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
name: "blocked-demoted",
|
|
226
|
-
argv: ["--project-root", "<ROOT>", "--repo", DEFAULT_REPO, "--limit", "0"],
|
|
227
|
-
fixture: {
|
|
228
|
-
issues: [
|
|
229
|
-
{ number: 50, title: "Blocked", updatedAt: "2026-05-17T10:00:00Z" },
|
|
230
|
-
{ number: 51, title: "Open", updatedAt: "2026-05-16T10:00:00Z" },
|
|
231
|
-
],
|
|
232
|
-
blockedIssueNumbers: [50],
|
|
233
|
-
},
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
name: "include-blocked",
|
|
237
|
-
argv: ["--project-root", "<ROOT>", "--repo", DEFAULT_REPO, "--limit", "0", "--include-blocked"],
|
|
238
|
-
fixture: {
|
|
239
|
-
issues: [
|
|
240
|
-
{ number: 60, title: "Blocked", updatedAt: "2026-05-17T10:00:00Z" },
|
|
241
|
-
{ number: 61, title: "Open", updatedAt: "2026-05-16T10:00:00Z" },
|
|
242
|
-
],
|
|
243
|
-
blockedIssueNumbers: [60],
|
|
244
|
-
},
|
|
245
|
-
},
|
|
246
|
-
];
|
|
247
|
-
/** Augment argv with fixture audit/slices hooks when present. */
|
|
248
|
-
export function augmentParityArgv(testCase, root) {
|
|
249
|
-
const argv = testCase.argv.map((arg) => (arg === "<ROOT>" ? root : arg));
|
|
250
|
-
if (testCase.skipFixture || testCase.fixture === undefined) {
|
|
251
|
-
return argv;
|
|
252
|
-
}
|
|
253
|
-
const extras = [];
|
|
254
|
-
if (testCase.fixture.auditEntries !== undefined && testCase.fixture.auditEntries.length > 0) {
|
|
255
|
-
extras.push("--audit-log", join(root, "xbrief", ".triage-cache", "candidates.jsonl"));
|
|
256
|
-
}
|
|
257
|
-
if (testCase.fixture.sliceRecords !== undefined && testCase.fixture.sliceRecords.length > 0) {
|
|
258
|
-
extras.push("--slices-log", join(root, "xbrief", ".triage-cache", "slices.jsonl"));
|
|
259
|
-
}
|
|
260
|
-
return [...argv, ...extras];
|
|
261
|
-
}
|
|
262
|
-
/** Run all parity cases; returns aggregate result. */
|
|
263
|
-
export function renderReport(result) {
|
|
264
|
-
if (result.ok) {
|
|
265
|
-
return `triage:queue parity: CLEAN -- Python and TS agree on ${PARITY_CASES.length} cases.`;
|
|
266
|
-
}
|
|
267
|
-
const lines = ["triage:queue parity: DIVERGENCE"];
|
|
268
|
-
for (const diff of result.diffs) {
|
|
269
|
-
if (diff.exitMismatch || diff.stdoutMismatch || diff.stderrMismatch) {
|
|
270
|
-
lines.push(` case: ${diff.caseName}`);
|
|
271
|
-
if (diff.exitMismatch) {
|
|
272
|
-
lines.push(` exit: python=${diff.pythonExit} ts=${diff.tsExit}`);
|
|
273
|
-
}
|
|
274
|
-
if (diff.stdoutMismatch) {
|
|
275
|
-
lines.push(" stdout mismatch");
|
|
276
|
-
}
|
|
277
|
-
if (diff.stderrMismatch) {
|
|
278
|
-
lines.push(" stderr mismatch");
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
return lines.join("\n");
|
|
283
|
-
}
|
|
284
|
-
//# sourceMappingURL=triage-queue-fixtures.js.map
|
package/dist/triage-queue.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { type LiveOpenIssuesReader, type ResolveAuthenticatedLogin } from "@deftai/directive-core/dist/triage/queue/index.js";
|
|
3
|
-
export type ShowFormat = "default" | "operator";
|
|
4
|
-
interface CommonArgs {
|
|
5
|
-
projectRoot: string;
|
|
6
|
-
repo: string | null;
|
|
7
|
-
cacheRoot: string | null;
|
|
8
|
-
auditLog: string | null;
|
|
9
|
-
error?: string;
|
|
10
|
-
}
|
|
11
|
-
interface QueueArgs extends CommonArgs {
|
|
12
|
-
cmd: "queue";
|
|
13
|
-
limit: number;
|
|
14
|
-
includeBlocked: boolean;
|
|
15
|
-
reconcile: boolean;
|
|
16
|
-
slicesLog: string | null;
|
|
17
|
-
/** Raw --author value (LOGIN, @me, or comma allow-list); null = no filter (#3129). */
|
|
18
|
-
author: string | null;
|
|
19
|
-
}
|
|
20
|
-
interface ShowArgs extends CommonArgs {
|
|
21
|
-
cmd: "show";
|
|
22
|
-
number: number | null;
|
|
23
|
-
format: ShowFormat;
|
|
24
|
-
}
|
|
25
|
-
/** Parse triage-queue CLI args (queue subcommand — default). */
|
|
26
|
-
export declare function parseArgs(argv: string[]): QueueArgs;
|
|
27
|
-
/** Parse show subcommand args. */
|
|
28
|
-
export declare function parseShowArgs(argv: string[]): ShowArgs;
|
|
29
|
-
/** Optional injection seams for `run` (tests supply stubs). */
|
|
30
|
-
export interface RunOptions {
|
|
31
|
-
readonly liveOpenReader?: LiveOpenIssuesReader;
|
|
32
|
-
/** Override `@me` resolution for hermetic tests (#3129). */
|
|
33
|
-
readonly resolveAuthenticatedLogin?: ResolveAuthenticatedLogin;
|
|
34
|
-
}
|
|
35
|
-
/** Run triage:queue or triage:show and return process exit code. */
|
|
36
|
-
export declare function run(argv: string[], options?: RunOptions): number;
|
|
37
|
-
export {};
|
|
38
|
-
//# sourceMappingURL=triage-queue.d.ts.map
|