@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.
Files changed (420) hide show
  1. package/bin/deft-hook +14 -0
  2. package/bin/deft-hook.cmd +14 -0
  3. package/dist/bin.js +4319 -3
  4. package/package.json +11 -21
  5. package/dist/agents-refresh.d.ts +0 -11
  6. package/dist/agents-refresh.js +0 -90
  7. package/dist/authz.d.ts +0 -7
  8. package/dist/authz.js +0 -732
  9. package/dist/bin.d.ts +0 -3
  10. package/dist/branch-fixtures.d.ts +0 -45
  11. package/dist/branch-fixtures.js +0 -156
  12. package/dist/cache.d.ts +0 -4
  13. package/dist/cache.js +0 -10
  14. package/dist/capacity-backfill.d.ts +0 -3
  15. package/dist/capacity-backfill.js +0 -9
  16. package/dist/capacity-show.d.ts +0 -3
  17. package/dist/capacity-show.js +0 -9
  18. package/dist/change-init.d.ts +0 -3
  19. package/dist/change-init.js +0 -59
  20. package/dist/changelog-check.d.ts +0 -3
  21. package/dist/changelog-check.js +0 -52
  22. package/dist/check.d.ts +0 -15
  23. package/dist/check.js +0 -150
  24. package/dist/cli-package-version.d.ts +0 -3
  25. package/dist/cli-package-version.js +0 -23
  26. package/dist/cli-router/index.d.ts +0 -8
  27. package/dist/cli-router/index.js +0 -44
  28. package/dist/cli-router/route-argv.d.ts +0 -40
  29. package/dist/cli-router/route-argv.js +0 -371
  30. package/dist/codebase-default-extractor.d.ts +0 -3
  31. package/dist/codebase-default-extractor.js +0 -9
  32. package/dist/codebase-map-fresh.d.ts +0 -3
  33. package/dist/codebase-map-fresh.js +0 -9
  34. package/dist/codebase-map.d.ts +0 -3
  35. package/dist/codebase-map.js +0 -9
  36. package/dist/codebase-projection-registry.d.ts +0 -3
  37. package/dist/codebase-projection-registry.js +0 -9
  38. package/dist/codebase-provider.d.ts +0 -3
  39. package/dist/codebase-provider.js +0 -9
  40. package/dist/commit-lint.d.ts +0 -3
  41. package/dist/commit-lint.js +0 -44
  42. package/dist/content-validate-cli/validate-links.d.ts +0 -11
  43. package/dist/content-validate-cli/validate-links.js +0 -37
  44. package/dist/content-validate-cli/validate-strategy-output.d.ts +0 -13
  45. package/dist/content-validate-cli/validate-strategy-output.js +0 -56
  46. package/dist/content-validate-cli/verify-capacity.d.ts +0 -12
  47. package/dist/content-validate-cli/verify-capacity.js +0 -54
  48. package/dist/coverage-hotspots.d.ts +0 -21
  49. package/dist/coverage-hotspots.js +0 -198
  50. package/dist/design-critique-spend-resolve.d.ts +0 -18
  51. package/dist/design-critique-spend-resolve.js +0 -191
  52. package/dist/directive-finish-loop.d.ts +0 -3
  53. package/dist/directive-finish-loop.js +0 -10
  54. package/dist/dispatch.d.ts +0 -193
  55. package/dist/dispatch.js +0 -3091
  56. package/dist/doctor.d.ts +0 -19
  57. package/dist/doctor.js +0 -155
  58. package/dist/entrypoint.d.ts +0 -6
  59. package/dist/entrypoint.js +0 -19
  60. package/dist/escalation-cli.d.ts +0 -4
  61. package/dist/escalation-cli.js +0 -301
  62. package/dist/eval-health.d.ts +0 -13
  63. package/dist/eval-health.js +0 -63
  64. package/dist/eval-report.d.ts +0 -15
  65. package/dist/eval-report.js +0 -97
  66. package/dist/eval-run.d.ts +0 -17
  67. package/dist/eval-run.js +0 -122
  68. package/dist/eval-triggers.d.ts +0 -12
  69. package/dist/eval-triggers.js +0 -56
  70. package/dist/framework-check-updates.d.ts +0 -10
  71. package/dist/framework-check-updates.js +0 -68
  72. package/dist/gates-cli/_helpers.d.ts +0 -24
  73. package/dist/gates-cli/_helpers.js +0 -115
  74. package/dist/gates-cli/verify-bridge-drift.d.ts +0 -11
  75. package/dist/gates-cli/verify-bridge-drift.js +0 -47
  76. package/dist/gates-cli/verify-go-freeze.d.ts +0 -11
  77. package/dist/gates-cli/verify-go-freeze.js +0 -48
  78. package/dist/hook-bin.d.ts +0 -3
  79. package/dist/hook-bin.js +0 -11
  80. package/dist/hook-dispatch.d.ts +0 -80
  81. package/dist/hook-dispatch.js +0 -186
  82. package/dist/human-presence-mint.d.ts +0 -70
  83. package/dist/human-presence-mint.js +0 -204
  84. package/dist/identity-banner.d.ts +0 -13
  85. package/dist/identity-banner.js +0 -19
  86. package/dist/index.d.ts +0 -11
  87. package/dist/index.js +0 -14
  88. package/dist/init-cli/constants.d.ts +0 -42
  89. package/dist/init-cli/constants.js +0 -42
  90. package/dist/init-cli/help.d.ts +0 -9
  91. package/dist/init-cli/help.js +0 -43
  92. package/dist/init-cli/init.d.ts +0 -26
  93. package/dist/init-cli/init.js +0 -80
  94. package/dist/init-cli/migrate.d.ts +0 -3
  95. package/dist/init-cli/migrate.js +0 -51
  96. package/dist/init-cli/resolve-binary.d.ts +0 -34
  97. package/dist/init-cli/resolve-binary.js +0 -78
  98. package/dist/init-cli/run-deft-install.d.ts +0 -23
  99. package/dist/init-cli/run-deft-install.js +0 -71
  100. package/dist/init-cli/update.d.ts +0 -5
  101. package/dist/init-cli/update.js +0 -38
  102. package/dist/install-cli/coverage-map.d.ts +0 -14
  103. package/dist/install-cli/coverage-map.js +0 -113
  104. package/dist/install-uninstall.d.ts +0 -3
  105. package/dist/install-uninstall.js +0 -44
  106. package/dist/install-upgrade.d.ts +0 -41
  107. package/dist/install-upgrade.js +0 -86
  108. package/dist/lifecycle-cli/coverage-map.d.ts +0 -16
  109. package/dist/lifecycle-cli/coverage-map.js +0 -254
  110. package/dist/lifecycle-cli/helpers.d.ts +0 -8
  111. package/dist/lifecycle-cli/helpers.js +0 -20
  112. package/dist/lifecycle-event.d.ts +0 -11
  113. package/dist/lifecycle-event.js +0 -45
  114. package/dist/lifecycle-stats.d.ts +0 -12
  115. package/dist/lifecycle-stats.js +0 -100
  116. package/dist/migrate-category-b.d.ts +0 -9
  117. package/dist/migrate-category-b.js +0 -52
  118. package/dist/migrate-preflight.d.ts +0 -10
  119. package/dist/migrate-preflight.js +0 -85
  120. package/dist/migrate-xbrief.d.ts +0 -11
  121. package/dist/migrate-xbrief.js +0 -88
  122. package/dist/occupancy-grant.d.ts +0 -18
  123. package/dist/occupancy-grant.js +0 -121
  124. package/dist/occupancy-heartbeat.d.ts +0 -8
  125. package/dist/occupancy-heartbeat.js +0 -63
  126. package/dist/occupancy-release.d.ts +0 -23
  127. package/dist/occupancy-release.js +0 -102
  128. package/dist/occupancy-steal.d.ts +0 -10
  129. package/dist/occupancy-steal.js +0 -83
  130. package/dist/occupancy-unrecognized.d.ts +0 -3
  131. package/dist/occupancy-unrecognized.js +0 -5
  132. package/dist/orchestration-cli/coverage-map.d.ts +0 -21
  133. package/dist/orchestration-cli/coverage-map.js +0 -225
  134. package/dist/orchestration-cli/helpers.d.ts +0 -11
  135. package/dist/orchestration-cli/helpers.js +0 -35
  136. package/dist/ownership-doctor.d.ts +0 -10
  137. package/dist/ownership-doctor.js +0 -96
  138. package/dist/ownership-fix.d.ts +0 -10
  139. package/dist/ownership-fix.js +0 -93
  140. package/dist/plan-sequence.d.ts +0 -14
  141. package/dist/plan-sequence.js +0 -258
  142. package/dist/policy-fixtures.d.ts +0 -33
  143. package/dist/policy-fixtures.js +0 -118
  144. package/dist/policy.d.ts +0 -37
  145. package/dist/policy.js +0 -744
  146. package/dist/pr-closing-keywords.d.ts +0 -3
  147. package/dist/pr-closing-keywords.js +0 -10
  148. package/dist/pr-finish-loop.d.ts +0 -3
  149. package/dist/pr-finish-loop.js +0 -10
  150. package/dist/pr-merge-readiness.d.ts +0 -3
  151. package/dist/pr-merge-readiness.js +0 -10
  152. package/dist/pr-monitor.d.ts +0 -3
  153. package/dist/pr-monitor.js +0 -10
  154. package/dist/pr-protected-issues.d.ts +0 -3
  155. package/dist/pr-protected-issues.js +0 -10
  156. package/dist/pr-wait-mergeable.d.ts +0 -3
  157. package/dist/pr-wait-mergeable.js +0 -10
  158. package/dist/pr-watch.d.ts +0 -3
  159. package/dist/pr-watch.js +0 -10
  160. package/dist/pre-pr-run.d.ts +0 -39
  161. package/dist/pre-pr-run.js +0 -514
  162. package/dist/preflight-cache.d.ts +0 -18
  163. package/dist/preflight-cache.js +0 -113
  164. package/dist/preflight-gh.d.ts +0 -15
  165. package/dist/preflight-gh.js +0 -143
  166. package/dist/probe-session.d.ts +0 -3
  167. package/dist/probe-session.js +0 -10
  168. package/dist/release-e2e-fixtures.d.ts +0 -29
  169. package/dist/release-e2e-fixtures.js +0 -38
  170. package/dist/release-e2e.d.ts +0 -3
  171. package/dist/release-e2e.js +0 -10
  172. package/dist/release-publish.d.ts +0 -3
  173. package/dist/release-publish.js +0 -10
  174. package/dist/release-rollback.d.ts +0 -3
  175. package/dist/release-rollback.js +0 -10
  176. package/dist/release-wait-npm.d.ts +0 -3
  177. package/dist/release-wait-npm.js +0 -10
  178. package/dist/release.d.ts +0 -3
  179. package/dist/release.js +0 -10
  180. package/dist/render-cli/deft-ts-runner.d.ts +0 -17
  181. package/dist/render-cli/deft-ts-runner.js +0 -19
  182. package/dist/render-cli/export-spec-cli.d.ts +0 -2
  183. package/dist/render-cli/export-spec-cli.js +0 -6
  184. package/dist/render-cli/prd-render-cli.d.ts +0 -2
  185. package/dist/render-cli/prd-render-cli.js +0 -37
  186. package/dist/render-cli/project-render-cli.d.ts +0 -2
  187. package/dist/render-cli/project-render-cli.js +0 -6
  188. package/dist/render-cli/rule-map-cli.d.ts +0 -2
  189. package/dist/render-cli/rule-map-cli.js +0 -5
  190. package/dist/render-cli/spec-reconstruct-cli.d.ts +0 -3
  191. package/dist/render-cli/spec-reconstruct-cli.js +0 -15
  192. package/dist/render-cli/spec-render-cli.d.ts +0 -2
  193. package/dist/render-cli/spec-render-cli.js +0 -39
  194. package/dist/render-cli/spec-validate-cli.d.ts +0 -2
  195. package/dist/render-cli/spec-validate-cli.js +0 -38
  196. package/dist/review-monitor-register.d.ts +0 -19
  197. package/dist/review-monitor-register.js +0 -183
  198. package/dist/review-monitor-release.d.ts +0 -14
  199. package/dist/review-monitor-release.js +0 -123
  200. package/dist/scm-sync-default.d.ts +0 -34
  201. package/dist/scm-sync-default.js +0 -210
  202. package/dist/scope-lifecycle.d.ts +0 -4
  203. package/dist/scope-lifecycle.js +0 -34
  204. package/dist/scope-record-approved-scope.d.ts +0 -29
  205. package/dist/scope-record-approved-scope.js +0 -319
  206. package/dist/scope-record-intent-constraint.d.ts +0 -16
  207. package/dist/scope-record-intent-constraint.js +0 -202
  208. package/dist/scope-record-observable-scope.d.ts +0 -16
  209. package/dist/scope-record-observable-scope.js +0 -204
  210. package/dist/session-ready.d.ts +0 -15
  211. package/dist/session-ready.js +0 -144
  212. package/dist/session-start.d.ts +0 -56
  213. package/dist/session-start.js +0 -581
  214. package/dist/slice.d.ts +0 -4
  215. package/dist/slice.js +0 -34
  216. package/dist/story-ready-fixtures.d.ts +0 -47
  217. package/dist/story-ready-fixtures.js +0 -137
  218. package/dist/subagent-monitor.d.ts +0 -3
  219. package/dist/subagent-monitor.js +0 -10
  220. package/dist/subagent-pre-cancel.d.ts +0 -21
  221. package/dist/subagent-pre-cancel.js +0 -240
  222. package/dist/subagent-steer-write.d.ts +0 -41
  223. package/dist/subagent-steer-write.js +0 -333
  224. package/dist/toolchain-check.d.ts +0 -8
  225. package/dist/toolchain-check.js +0 -54
  226. package/dist/triage-actions.d.ts +0 -23
  227. package/dist/triage-actions.js +0 -233
  228. package/dist/triage-aux-a-fixtures.d.ts +0 -33
  229. package/dist/triage-aux-a-fixtures.js +0 -107
  230. package/dist/triage-aux-b-fixtures.d.ts +0 -30
  231. package/dist/triage-aux-b-fixtures.js +0 -167
  232. package/dist/triage-bootstrap-fixtures.d.ts +0 -42
  233. package/dist/triage-bootstrap-fixtures.js +0 -139
  234. package/dist/triage-bootstrap.d.ts +0 -24
  235. package/dist/triage-bootstrap.js +0 -175
  236. package/dist/triage-bulk.d.ts +0 -17
  237. package/dist/triage-bulk.js +0 -154
  238. package/dist/triage-classify-fixtures.d.ts +0 -38
  239. package/dist/triage-classify-fixtures.js +0 -137
  240. package/dist/triage-classify.d.ts +0 -45
  241. package/dist/triage-classify.js +0 -287
  242. package/dist/triage-evaluate.d.ts +0 -14
  243. package/dist/triage-evaluate.js +0 -153
  244. package/dist/triage-help.d.ts +0 -3
  245. package/dist/triage-help.js +0 -10
  246. package/dist/triage-queue-fixtures.d.ts +0 -59
  247. package/dist/triage-queue-fixtures.js +0 -284
  248. package/dist/triage-queue.d.ts +0 -38
  249. package/dist/triage-queue.js +0 -391
  250. package/dist/triage-reconcile.d.ts +0 -11
  251. package/dist/triage-reconcile.js +0 -76
  252. package/dist/triage-refresh.d.ts +0 -7
  253. package/dist/triage-refresh.js +0 -37
  254. package/dist/triage-scope-drift.d.ts +0 -12
  255. package/dist/triage-scope-drift.js +0 -117
  256. package/dist/triage-scope-fixtures.d.ts +0 -32
  257. package/dist/triage-scope-fixtures.js +0 -131
  258. package/dist/triage-scope.d.ts +0 -4
  259. package/dist/triage-scope.js +0 -34
  260. package/dist/triage-smoketest.d.ts +0 -3
  261. package/dist/triage-smoketest.js +0 -43
  262. package/dist/triage-strip-withdrawn.d.ts +0 -21
  263. package/dist/triage-strip-withdrawn.js +0 -102
  264. package/dist/triage-subscribe.d.ts +0 -15
  265. package/dist/triage-subscribe.js +0 -157
  266. package/dist/triage-summary.d.ts +0 -14
  267. package/dist/triage-summary.js +0 -83
  268. package/dist/triage-welcome.d.ts +0 -14
  269. package/dist/triage-welcome.js +0 -121
  270. package/dist/ts-check-lane.d.ts +0 -9
  271. package/dist/ts-check-lane.js +0 -49
  272. package/dist/umbrella-current-shape.d.ts +0 -9
  273. package/dist/umbrella-current-shape.js +0 -56
  274. package/dist/vbrief-activate.d.ts +0 -3
  275. package/dist/vbrief-activate.js +0 -7
  276. package/dist/vbrief-build.d.ts +0 -3
  277. package/dist/vbrief-build.js +0 -8
  278. package/dist/vbrief-preflight-fixtures.d.ts +0 -32
  279. package/dist/vbrief-preflight-fixtures.js +0 -79
  280. package/dist/vbrief-preflight.d.ts +0 -13
  281. package/dist/vbrief-preflight.js +0 -141
  282. package/dist/vbrief-reconcile.d.ts +0 -3
  283. package/dist/vbrief-reconcile.js +0 -7
  284. package/dist/vbrief-validate.d.ts +0 -3
  285. package/dist/vbrief-validate.js +0 -8
  286. package/dist/vbrief-validation.d.ts +0 -3
  287. package/dist/vbrief-validation.js +0 -8
  288. package/dist/verify-ac.d.ts +0 -28
  289. package/dist/verify-ac.js +0 -439
  290. package/dist/verify-agents-md-advisory.d.ts +0 -19
  291. package/dist/verify-agents-md-advisory.js +0 -65
  292. package/dist/verify-agents-md-budget.d.ts +0 -12
  293. package/dist/verify-agents-md-budget.js +0 -71
  294. package/dist/verify-branch.d.ts +0 -14
  295. package/dist/verify-branch.js +0 -81
  296. package/dist/verify-class-checks.d.ts +0 -11
  297. package/dist/verify-class-checks.js +0 -71
  298. package/dist/verify-cohort-review-monitors.d.ts +0 -5
  299. package/dist/verify-cohort-review-monitors.js +0 -11
  300. package/dist/verify-completed-tracked.d.ts +0 -19
  301. package/dist/verify-completed-tracked.js +0 -202
  302. package/dist/verify-completed-write-guard.d.ts +0 -13
  303. package/dist/verify-completed-write-guard.js +0 -84
  304. package/dist/verify-consumer-check-contract.d.ts +0 -12
  305. package/dist/verify-consumer-check-contract.js +0 -70
  306. package/dist/verify-consumer-header-placeholder.d.ts +0 -12
  307. package/dist/verify-consumer-header-placeholder.js +0 -73
  308. package/dist/verify-consumer-test-lane.d.ts +0 -12
  309. package/dist/verify-consumer-test-lane.js +0 -57
  310. package/dist/verify-durable-effect-acquisition.d.ts +0 -13
  311. package/dist/verify-durable-effect-acquisition.js +0 -70
  312. package/dist/verify-encoding.d.ts +0 -15
  313. package/dist/verify-encoding.js +0 -83
  314. package/dist/verify-eval-health-relocation.d.ts +0 -16
  315. package/dist/verify-eval-health-relocation.js +0 -93
  316. package/dist/verify-eval-triggers-relocation.d.ts +0 -14
  317. package/dist/verify-eval-triggers-relocation.js +0 -74
  318. package/dist/verify-evaluator-surface.d.ts +0 -15
  319. package/dist/verify-evaluator-surface.js +0 -87
  320. package/dist/verify-forward-coverage.d.ts +0 -19
  321. package/dist/verify-forward-coverage.js +0 -144
  322. package/dist/verify-hooks-installed.d.ts +0 -24
  323. package/dist/verify-hooks-installed.js +0 -140
  324. package/dist/verify-intent-constraint.d.ts +0 -17
  325. package/dist/verify-intent-constraint.js +0 -110
  326. package/dist/verify-investigation.d.ts +0 -3
  327. package/dist/verify-investigation.js +0 -10
  328. package/dist/verify-judgment-gates.d.ts +0 -3
  329. package/dist/verify-judgment-gates.js +0 -10
  330. package/dist/verify-l4-owner.d.ts +0 -15
  331. package/dist/verify-l4-owner.js +0 -132
  332. package/dist/verify-lifecycle-visible.d.ts +0 -13
  333. package/dist/verify-lifecycle-visible.js +0 -68
  334. package/dist/verify-literal-ac.d.ts +0 -14
  335. package/dist/verify-literal-ac.js +0 -168
  336. package/dist/verify-no-task-runtime.d.ts +0 -3
  337. package/dist/verify-no-task-runtime.js +0 -16
  338. package/dist/verify-observable-scope.d.ts +0 -17
  339. package/dist/verify-observable-scope.js +0 -110
  340. package/dist/verify-operator-scope-limit.d.ts +0 -17
  341. package/dist/verify-operator-scope-limit.js +0 -285
  342. package/dist/verify-orphan-active.d.ts +0 -17
  343. package/dist/verify-orphan-active.js +0 -135
  344. package/dist/verify-ownership.d.ts +0 -10
  345. package/dist/verify-ownership.js +0 -90
  346. package/dist/verify-persisted-planning-narratives.d.ts +0 -12
  347. package/dist/verify-persisted-planning-narratives.js +0 -82
  348. package/dist/verify-plan-sequence.d.ts +0 -14
  349. package/dist/verify-plan-sequence.js +0 -138
  350. package/dist/verify-pr-closeout-attestable.d.ts +0 -15
  351. package/dist/verify-pr-closeout-attestable.js +0 -114
  352. package/dist/verify-presentation-ceiling.d.ts +0 -11
  353. package/dist/verify-presentation-ceiling.js +0 -71
  354. package/dist/verify-presentation-coverage.d.ts +0 -14
  355. package/dist/verify-presentation-coverage.js +0 -90
  356. package/dist/verify-review-monitor.d.ts +0 -32
  357. package/dist/verify-review-monitor.js +0 -362
  358. package/dist/verify-scope-provenance.d.ts +0 -16
  359. package/dist/verify-scope-provenance.js +0 -91
  360. package/dist/verify-session-ritual.d.ts +0 -23
  361. package/dist/verify-session-ritual.js +0 -144
  362. package/dist/verify-source-cli/rule-ownership-lint.d.ts +0 -12
  363. package/dist/verify-source-cli/rule-ownership-lint.js +0 -61
  364. package/dist/verify-source-cli/verify-biome-config.d.ts +0 -11
  365. package/dist/verify-source-cli/verify-biome-config.js +0 -46
  366. package/dist/verify-source-cli/verify-closing-keywords.d.ts +0 -35
  367. package/dist/verify-source-cli/verify-closing-keywords.js +0 -139
  368. package/dist/verify-source-cli/verify-consumer-hard-stops.d.ts +0 -16
  369. package/dist/verify-source-cli/verify-consumer-hard-stops.js +0 -99
  370. package/dist/verify-source-cli/verify-contained-writes.d.ts +0 -13
  371. package/dist/verify-source-cli/verify-contained-writes.js +0 -67
  372. package/dist/verify-source-cli/verify-content-manifest.d.ts +0 -12
  373. package/dist/verify-source-cli/verify-content-manifest.js +0 -61
  374. package/dist/verify-source-cli/verify-contract-drift.d.ts +0 -11
  375. package/dist/verify-source-cli/verify-contract-drift.js +0 -47
  376. package/dist/verify-source-cli/verify-cursor-tier1.d.ts +0 -12
  377. package/dist/verify-source-cli/verify-cursor-tier1.js +0 -51
  378. package/dist/verify-source-cli/verify-deposit-closure.d.ts +0 -12
  379. package/dist/verify-source-cli/verify-deposit-closure.js +0 -52
  380. package/dist/verify-source-cli/verify-openclaw-tier1.d.ts +0 -12
  381. package/dist/verify-source-cli/verify-openclaw-tier1.js +0 -51
  382. package/dist/verify-source-cli/verify-scm-boundary.d.ts +0 -13
  383. package/dist/verify-source-cli/verify-scm-boundary.js +0 -66
  384. package/dist/verify-source-cli/verify-semantic-single-source.d.ts +0 -11
  385. package/dist/verify-source-cli/verify-semantic-single-source.js +0 -49
  386. package/dist/verify-source-cli/verify-skill-external-fetch-gate.d.ts +0 -11
  387. package/dist/verify-source-cli/verify-skill-external-fetch-gate.js +0 -46
  388. package/dist/verify-source-cli/verify-spec-drift.d.ts +0 -3
  389. package/dist/verify-source-cli/verify-spec-drift.js +0 -15
  390. package/dist/verify-source-cli/verify-spec-prd-fresh.d.ts +0 -3
  391. package/dist/verify-source-cli/verify-spec-prd-fresh.js +0 -15
  392. package/dist/verify-source-cli/verify-stubs.d.ts +0 -11
  393. package/dist/verify-source-cli/verify-stubs.js +0 -27
  394. package/dist/verify-source-cli/verify-telemetry-coverage.d.ts +0 -13
  395. package/dist/verify-source-cli/verify-telemetry-coverage.js +0 -67
  396. package/dist/verify-source-cli/verify-xbrief-drift.d.ts +0 -15
  397. package/dist/verify-source-cli/verify-xbrief-drift.js +0 -80
  398. package/dist/verify-story-ready.d.ts +0 -18
  399. package/dist/verify-story-ready.js +0 -190
  400. package/dist/verify-subagent-alive.d.ts +0 -21
  401. package/dist/verify-subagent-alive.js +0 -219
  402. package/dist/verify-subagent-steer.d.ts +0 -19
  403. package/dist/verify-subagent-steer.js +0 -136
  404. package/dist/verify-test-boundary.d.ts +0 -12
  405. package/dist/verify-test-boundary.js +0 -80
  406. package/dist/verify-tools.d.ts +0 -13
  407. package/dist/verify-tools.js +0 -67
  408. package/dist/verify-wip-cap.d.ts +0 -13
  409. package/dist/verify-wip-cap.js +0 -62
  410. package/dist/windows-bin-ps1.d.ts +0 -39
  411. package/dist/windows-bin-ps1.js +0 -226
  412. package/dist/wip-cap-fixtures.d.ts +0 -37
  413. package/dist/wip-cap-fixtures.js +0 -122
  414. package/dist/wsl-ownership-guard.d.ts +0 -2
  415. package/dist/wsl-ownership-guard.js +0 -15
  416. package/dist/xbrief-create.d.ts +0 -3
  417. package/dist/xbrief-create.js +0 -9
  418. package/dist/xbrief-verify.d.ts +0 -3
  419. package/dist/xbrief-verify.js +0 -9
  420. package/scripts/remove-windows-ps1-shims.mjs +0 -26
@@ -1,333 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Parent write surface for deft.subagent.steer.v1 (#5278 / #4286).
4
- * Wraps writeSteer so status steers are reachable before pre-cancel.
5
- * Writer authority is checked against child occupancy / heartbeat — not self-attested.
6
- */
7
- import { resolve } from "node:path";
8
- import { fileURLToPath } from "node:url";
9
- import { defaultSteerDir, isSafeAgentId, STEER_KINDS, STEER_WRITER_KINDS, writeSteer, } from "@deftai/directive-core/orchestration";
10
- import { liveOccupant, readChildOccupancyLease } from "@deftai/directive-core/session";
11
- export const EXIT_STEER_WRITE_OK = 0 * 1;
12
- export const EXIT_STEER_WRITE_CONFIG = 2 * 1;
13
- export const SUBAGENT_STEER_WRITE_HELP = `subagent:steer — write a closed parent-steer inbox (#5278 / #4286)
14
-
15
- Usage:
16
- task subagent:steer -- --agent <id> --writer-id <id> --kind <kind> --text <text> [options]
17
-
18
- Options:
19
- --agent ID Child agent_id (inbox file stem)
20
- --writer-id ID Writer identity (must match independent parent/owner record)
21
- --writer-kind KIND occupancy-owner | dispatching-parent (default: dispatching-parent)
22
- --kind KIND constraint | correction | halt | note
23
- --text TEXT Steer body (≤2000 chars)
24
- --steer-id ID Optional stable steer id (default: uuid)
25
- --ttl-seconds N Expiry TTL (default: 1800)
26
- --target-id PATH Worktree root for dest inbox
27
- --steer-dir PATH Inbox directory override
28
- --scratch-dir PATH Heartbeat dir (not used for writer authority)
29
- --parent-id ID Must match child occupancy lease parentId
30
- --occupancy-owner-id ID Must match live occupancy session under --target-id
31
- --json Emit written record
32
-
33
- Exit codes:
34
- 0 Wrote inbox
35
- 2 Config / validation error
36
- `;
37
- /**
38
- * Resolve parent/owner from dispatcher-recorded child occupancy + live occupancy.
39
- * Heartbeat alone is never authority (caller-selected --scratch-dir cannot mint parent_id).
40
- */
41
- export function resolveIndependentSteerAuthority(input) {
42
- const writerId = input.writerId.trim();
43
- const lease = readChildOccupancyLease(input.root, input.agentId);
44
- const occupancy = liveOccupant(input.root);
45
- if (input.writerKind === "dispatching-parent") {
46
- const expected = (lease?.parentId ?? "").trim();
47
- if (expected.length === 0) {
48
- return {
49
- error: "dispatching-parent requires child occupancy lease parentId under --target-id (heartbeat alone is not authority)",
50
- };
51
- }
52
- if (writerId !== expected) {
53
- return {
54
- error: `dispatching-parent writer_id ${JSON.stringify(writerId)} does not match child occupancy parent ${JSON.stringify(expected)}`,
55
- };
56
- }
57
- const claimed = input.claimedParentId?.trim() ?? "";
58
- if (claimed.length > 0 && claimed !== expected) {
59
- return {
60
- error: `--parent-id ${JSON.stringify(claimed)} does not match child occupancy parent ${JSON.stringify(expected)}`,
61
- };
62
- }
63
- return { parentId: expected };
64
- }
65
- // occupancy-owner: liveOccupant (TTL/age-cap) is SoT; expired/stale leases refuse.
66
- const liveOwner = (occupancy?.sessionId ?? "").trim();
67
- if (liveOwner.length === 0) {
68
- return {
69
- error: "occupancy-owner requires a live (non-expired) occupancy session under --target-id",
70
- };
71
- }
72
- const leaseOwner = (lease?.occupancyOwner ?? "").trim();
73
- if (leaseOwner.length > 0 && leaseOwner !== liveOwner) {
74
- return {
75
- error: `child occupancy owner ${JSON.stringify(leaseOwner)} is superseded by live occupancy ${JSON.stringify(liveOwner)}`,
76
- };
77
- }
78
- if (writerId !== liveOwner) {
79
- return {
80
- error: `occupancy-owner writer_id ${JSON.stringify(writerId)} does not match live occupancy ${JSON.stringify(liveOwner)}`,
81
- };
82
- }
83
- const claimedOwner = input.claimedOccupancyOwnerId?.trim() ?? "";
84
- if (claimedOwner.length > 0 && claimedOwner !== liveOwner) {
85
- return {
86
- error: `--occupancy-owner-id ${JSON.stringify(claimedOwner)} does not match live occupancy ${JSON.stringify(liveOwner)}`,
87
- };
88
- }
89
- return { occupancyOwnerId: liveOwner };
90
- }
91
- export function parseSubagentSteerWriteArgs(argv) {
92
- const acc = {
93
- agentId: null,
94
- writerId: null,
95
- writerKind: "dispatching-parent",
96
- kind: null,
97
- text: null,
98
- steerId: null,
99
- ttlSeconds: null,
100
- targetId: null,
101
- steerDir: null,
102
- scratchDir: null,
103
- parentId: null,
104
- occupancyOwnerId: null,
105
- emitJson: false,
106
- help: false,
107
- };
108
- for (let i = 0; i < argv.length; i += 1) {
109
- const arg = argv[i];
110
- if (arg === "--help" || arg === "-h") {
111
- return { ...acc, help: true };
112
- }
113
- if (arg === "--json") {
114
- acc.emitJson = true;
115
- }
116
- else if (arg === "--agent" || arg === "--agent-id") {
117
- const value = argv[i + 1];
118
- if (value === undefined)
119
- return { ...acc, error: `argument ${arg}: expected one argument` };
120
- acc.agentId = value;
121
- i += 1;
122
- }
123
- else if (arg?.startsWith("--agent=") || arg?.startsWith("--agent-id=")) {
124
- acc.agentId = arg.slice(arg.indexOf("=") + 1);
125
- }
126
- else if (arg === "--writer-id") {
127
- const value = argv[i + 1];
128
- if (value === undefined)
129
- return { ...acc, error: "argument --writer-id: expected one argument" };
130
- acc.writerId = value;
131
- i += 1;
132
- }
133
- else if (arg?.startsWith("--writer-id=")) {
134
- acc.writerId = arg.slice("--writer-id=".length);
135
- }
136
- else if (arg === "--writer-kind") {
137
- const value = argv[i + 1];
138
- if (value === undefined)
139
- return { ...acc, error: "argument --writer-kind: expected one argument" };
140
- if (!STEER_WRITER_KINDS.includes(value)) {
141
- return { ...acc, error: `writer-kind must be one of ${STEER_WRITER_KINDS.join(", ")}` };
142
- }
143
- acc.writerKind = value;
144
- i += 1;
145
- }
146
- else if (arg?.startsWith("--writer-kind=")) {
147
- const value = arg.slice("--writer-kind=".length);
148
- if (!STEER_WRITER_KINDS.includes(value)) {
149
- return { ...acc, error: `writer-kind must be one of ${STEER_WRITER_KINDS.join(", ")}` };
150
- }
151
- acc.writerKind = value;
152
- }
153
- else if (arg === "--kind") {
154
- const value = argv[i + 1];
155
- if (value === undefined)
156
- return { ...acc, error: "argument --kind: expected one argument" };
157
- if (!STEER_KINDS.includes(value)) {
158
- return { ...acc, error: `kind must be one of ${STEER_KINDS.join(", ")}` };
159
- }
160
- acc.kind = value;
161
- i += 1;
162
- }
163
- else if (arg?.startsWith("--kind=")) {
164
- const value = arg.slice("--kind=".length);
165
- if (!STEER_KINDS.includes(value)) {
166
- return { ...acc, error: `kind must be one of ${STEER_KINDS.join(", ")}` };
167
- }
168
- acc.kind = value;
169
- }
170
- else if (arg === "--text") {
171
- const value = argv[i + 1];
172
- if (value === undefined)
173
- return { ...acc, error: "argument --text: expected one argument" };
174
- acc.text = value;
175
- i += 1;
176
- }
177
- else if (arg?.startsWith("--text=")) {
178
- acc.text = arg.slice("--text=".length);
179
- }
180
- else if (arg === "--steer-id") {
181
- const value = argv[i + 1];
182
- if (value === undefined)
183
- return { ...acc, error: "argument --steer-id: expected one argument" };
184
- acc.steerId = value;
185
- i += 1;
186
- }
187
- else if (arg?.startsWith("--steer-id=")) {
188
- acc.steerId = arg.slice("--steer-id=".length);
189
- }
190
- else if (arg === "--ttl-seconds") {
191
- const value = argv[i + 1];
192
- if (value === undefined)
193
- return { ...acc, error: "argument --ttl-seconds: expected one argument" };
194
- acc.ttlSeconds = Number(value);
195
- i += 1;
196
- }
197
- else if (arg?.startsWith("--ttl-seconds=")) {
198
- acc.ttlSeconds = Number(arg.slice("--ttl-seconds=".length));
199
- }
200
- else if (arg === "--target-id" || arg === "--target") {
201
- const value = argv[i + 1];
202
- if (value === undefined)
203
- return { ...acc, error: `argument ${arg}: expected one argument` };
204
- acc.targetId = value;
205
- i += 1;
206
- }
207
- else if (arg?.startsWith("--target-id=") || arg?.startsWith("--target=")) {
208
- acc.targetId = arg.slice(arg.indexOf("=") + 1);
209
- }
210
- else if (arg === "--steer-dir") {
211
- const value = argv[i + 1];
212
- if (value === undefined)
213
- return { ...acc, error: "argument --steer-dir: expected one argument" };
214
- acc.steerDir = value;
215
- i += 1;
216
- }
217
- else if (arg?.startsWith("--steer-dir=")) {
218
- acc.steerDir = arg.slice("--steer-dir=".length);
219
- }
220
- else if (arg === "--scratch-dir") {
221
- const value = argv[i + 1];
222
- if (value === undefined)
223
- return { ...acc, error: "argument --scratch-dir: expected one argument" };
224
- acc.scratchDir = value;
225
- i += 1;
226
- }
227
- else if (arg?.startsWith("--scratch-dir=")) {
228
- acc.scratchDir = arg.slice("--scratch-dir=".length);
229
- }
230
- else if (arg === "--parent-id") {
231
- const value = argv[i + 1];
232
- if (value === undefined)
233
- return { ...acc, error: "argument --parent-id: expected one argument" };
234
- acc.parentId = value;
235
- i += 1;
236
- }
237
- else if (arg?.startsWith("--parent-id=")) {
238
- acc.parentId = arg.slice("--parent-id=".length);
239
- }
240
- else if (arg === "--occupancy-owner-id") {
241
- const value = argv[i + 1];
242
- if (value === undefined) {
243
- return { ...acc, error: "argument --occupancy-owner-id: expected one argument" };
244
- }
245
- acc.occupancyOwnerId = value;
246
- i += 1;
247
- }
248
- else if (arg?.startsWith("--occupancy-owner-id=")) {
249
- acc.occupancyOwnerId = arg.slice("--occupancy-owner-id=".length);
250
- }
251
- else if (arg?.startsWith("-")) {
252
- return { ...acc, error: `unrecognized argument: ${arg}` };
253
- }
254
- else {
255
- return { ...acc, error: `unrecognized argument: ${arg}` };
256
- }
257
- }
258
- return acc;
259
- }
260
- export function run(argv, cwd = process.cwd()) {
261
- const args = parseSubagentSteerWriteArgs(argv);
262
- if (args.help) {
263
- process.stdout.write(SUBAGENT_STEER_WRITE_HELP);
264
- return EXIT_STEER_WRITE_OK;
265
- }
266
- if (args.error !== undefined) {
267
- process.stderr.write(`subagent:steer: ${args.error}\n`);
268
- return EXIT_STEER_WRITE_CONFIG;
269
- }
270
- if (args.agentId === null || !isSafeAgentId(args.agentId)) {
271
- process.stderr.write("subagent:steer: --agent is required and must be a filesystem-safe slug\n");
272
- return EXIT_STEER_WRITE_CONFIG;
273
- }
274
- if (args.writerId === null || args.writerId.trim().length === 0) {
275
- process.stderr.write("subagent:steer: --writer-id is required\n");
276
- return EXIT_STEER_WRITE_CONFIG;
277
- }
278
- if (args.kind === null) {
279
- process.stderr.write(`subagent:steer: --kind is required (${STEER_KINDS.join("|")})\n`);
280
- return EXIT_STEER_WRITE_CONFIG;
281
- }
282
- if (args.text === null || args.text.trim().length === 0) {
283
- process.stderr.write("subagent:steer: --text is required\n");
284
- return EXIT_STEER_WRITE_CONFIG;
285
- }
286
- if (args.ttlSeconds !== null && (!Number.isFinite(args.ttlSeconds) || args.ttlSeconds <= 0)) {
287
- process.stderr.write("subagent:steer: --ttl-seconds must be positive\n");
288
- return EXIT_STEER_WRITE_CONFIG;
289
- }
290
- const root = args.targetId !== null && args.targetId.trim().length > 0 ? resolve(cwd, args.targetId) : cwd;
291
- const steerDir = resolve(root, args.steerDir ?? defaultSteerDir(root));
292
- const writerId = args.writerId.trim();
293
- const authority = resolveIndependentSteerAuthority({
294
- root,
295
- agentId: args.agentId,
296
- writerKind: args.writerKind,
297
- writerId,
298
- claimedParentId: args.parentId,
299
- claimedOccupancyOwnerId: args.occupancyOwnerId,
300
- });
301
- if (authority.error !== undefined) {
302
- process.stderr.write(`subagent:steer: ${authority.error}\n`);
303
- return EXIT_STEER_WRITE_CONFIG;
304
- }
305
- try {
306
- const record = writeSteer(steerDir, {
307
- agentId: args.agentId,
308
- writerKind: args.writerKind,
309
- writerId,
310
- kind: args.kind,
311
- text: args.text,
312
- steerId: args.steerId ?? undefined,
313
- ttlSeconds: args.ttlSeconds ?? undefined,
314
- parentId: authority.parentId,
315
- occupancyOwnerId: authority.occupancyOwnerId,
316
- });
317
- if (args.emitJson) {
318
- process.stdout.write(`${JSON.stringify(record, null, 2)}\n`);
319
- }
320
- else {
321
- process.stdout.write(`subagent:steer: wrote ${record.agent_id} steer_id=${record.steer_id} kind=${record.kind}\n`);
322
- }
323
- return EXIT_STEER_WRITE_OK;
324
- }
325
- catch (err) {
326
- process.stderr.write(`subagent:steer: ${String(err.message ?? err)}\n`);
327
- return EXIT_STEER_WRITE_CONFIG;
328
- }
329
- }
330
- if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
331
- process.exit(run(process.argv.slice(2)));
332
- }
333
- //# sourceMappingURL=subagent-steer-write.js.map
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env node
2
- import { type CommandRunner } from "@deftai/directive-core/verify-env";
3
- export interface ToolchainCheckRunOptions {
4
- readonly runner?: CommandRunner;
5
- readonly env?: NodeJS.ProcessEnv;
6
- }
7
- export declare function run(argv?: readonly string[], options?: ToolchainCheckRunOptions): number;
8
- //# sourceMappingURL=toolchain-check.d.ts.map
@@ -1,54 +0,0 @@
1
- #!/usr/bin/env node
2
- import { fileURLToPath } from "node:url";
3
- import { runToolchainCheck } from "@deftai/directive-core/verify-env";
4
- function parseArgs(argv) {
5
- let consumer = false;
6
- let projectRoot = process.cwd();
7
- for (let index = 0; index < argv.length; index += 1) {
8
- const arg = argv[index] ?? "";
9
- if (arg === "--consumer") {
10
- consumer = true;
11
- continue;
12
- }
13
- if (arg === "--project-root") {
14
- const value = argv[index + 1];
15
- if (value === undefined || value.trim() === "" || value.startsWith("-")) {
16
- return { consumer, projectRoot, error: "--project-root requires a path" };
17
- }
18
- projectRoot = value;
19
- index += 1;
20
- continue;
21
- }
22
- if (arg.startsWith("--project-root=")) {
23
- const value = arg.slice("--project-root=".length);
24
- if (value.trim() === "") {
25
- return { consumer, projectRoot, error: "--project-root requires a path" };
26
- }
27
- projectRoot = value;
28
- continue;
29
- }
30
- return { consumer, projectRoot, error: `unrecognized argument: ${arg}` };
31
- }
32
- return { consumer, projectRoot };
33
- }
34
- export function run(argv = process.argv.slice(2), options = {}) {
35
- const parsed = parseArgs(argv);
36
- if (parsed.error !== undefined) {
37
- process.stderr.write(`toolchain-check: ${parsed.error}\n`);
38
- process.stderr.write("Usage: deft toolchain-check [--consumer] [--project-root <path>]\n");
39
- return 2;
40
- }
41
- const result = runToolchainCheck(options.runner, {
42
- consumer: parsed.consumer,
43
- projectRoot: parsed.projectRoot,
44
- env: options.env ?? process.env,
45
- });
46
- for (const line of result.lines) {
47
- process.stdout.write(`${line}\n`);
48
- }
49
- return result.exitCode;
50
- }
51
- if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
52
- process.exit(run());
53
- }
54
- //# sourceMappingURL=toolchain-check.js.map
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env node
2
- interface ParsedArgs {
3
- cmd?: string;
4
- issue?: number;
5
- repo?: string;
6
- reason?: string;
7
- resumeOn?: string;
8
- actor?: string;
9
- comment?: string;
10
- ofN?: number;
11
- projectRoot: string;
12
- /** After accept+ingest, promote to pending (#1136). */
13
- autoPromote?: boolean;
14
- /** WIP-cap override for auto-promote leg (#1136). */
15
- force?: boolean;
16
- error?: string;
17
- }
18
- /** Parse triage-actions CLI argv mirroring ``triage_actions.py`` argparse. */
19
- export declare function parseArgs(argv: string[]): ParsedArgs;
20
- /** Run triage-actions CLI and return exit code. */
21
- export declare function run(argv: string[]): number;
22
- export {};
23
- //# sourceMappingURL=triage-actions.d.ts.map
@@ -1,233 +0,0 @@
1
- #!/usr/bin/env node
2
- import { resolve } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { accept, createDefaultDeps, deferAction, formatAcceptOutput, formatDecision, history, markDuplicate, needsAc, reject, reset, status, TriageError, UpstreamCloseError, } from "@deftai/directive-core/dist/triage/actions/index.js";
5
- const VALID_CMDS = new Set([
6
- "accept",
7
- "reject",
8
- "defer",
9
- "needs-ac",
10
- "mark-duplicate",
11
- "status",
12
- "reset",
13
- "history",
14
- ]);
15
- /** Parse triage-actions CLI argv mirroring ``triage_actions.py`` argparse. */
16
- export function parseArgs(argv) {
17
- const parsed = { projectRoot: process.cwd() };
18
- if (argv.length === 0) {
19
- return { ...parsed, error: "missing subcommand" };
20
- }
21
- parsed.cmd = argv[0];
22
- for (let i = 1; i < argv.length; i += 1) {
23
- const arg = argv[i];
24
- if (arg === "--")
25
- continue;
26
- if (arg === "--issue") {
27
- const value = argv[i + 1];
28
- if (value === undefined)
29
- return { ...parsed, error: "argument --issue: expected one argument" };
30
- parsed.issue = Number.parseInt(value, 10);
31
- i += 1;
32
- }
33
- else if (arg?.startsWith("--issue=")) {
34
- parsed.issue = Number.parseInt(arg.slice("--issue=".length), 10);
35
- }
36
- else if (arg === "--repo") {
37
- const value = argv[i + 1];
38
- if (value === undefined)
39
- return { ...parsed, error: "argument --repo: expected one argument" };
40
- parsed.repo = value;
41
- i += 1;
42
- }
43
- else if (arg?.startsWith("--repo=")) {
44
- parsed.repo = arg.slice("--repo=".length);
45
- }
46
- else if (arg === "--reason") {
47
- const value = argv[i + 1];
48
- if (value === undefined)
49
- return { ...parsed, error: "argument --reason: expected one argument" };
50
- parsed.reason = value;
51
- i += 1;
52
- }
53
- else if (arg?.startsWith("--reason=")) {
54
- parsed.reason = arg.slice("--reason=".length);
55
- }
56
- else if (arg === "--resume-on") {
57
- const value = argv[i + 1];
58
- if (value === undefined)
59
- return { ...parsed, error: "argument --resume-on: expected one argument" };
60
- parsed.resumeOn = value;
61
- i += 1;
62
- }
63
- else if (arg?.startsWith("--resume-on=")) {
64
- parsed.resumeOn = arg.slice("--resume-on=".length);
65
- }
66
- else if (arg === "--actor") {
67
- const value = argv[i + 1];
68
- if (value === undefined)
69
- return { ...parsed, error: "argument --actor: expected one argument" };
70
- parsed.actor = value;
71
- i += 1;
72
- }
73
- else if (arg?.startsWith("--actor=")) {
74
- parsed.actor = arg.slice("--actor=".length);
75
- }
76
- else if (arg === "--comment") {
77
- const value = argv[i + 1];
78
- if (value === undefined)
79
- return { ...parsed, error: "argument --comment: expected one argument" };
80
- parsed.comment = value;
81
- i += 1;
82
- }
83
- else if (arg?.startsWith("--comment=")) {
84
- parsed.comment = arg.slice("--comment=".length);
85
- }
86
- else if (arg === "--of") {
87
- const value = argv[i + 1];
88
- if (value === undefined)
89
- return { ...parsed, error: "argument --of: expected one argument" };
90
- parsed.ofN = Number.parseInt(value, 10);
91
- i += 1;
92
- }
93
- else if (arg?.startsWith("--of=")) {
94
- parsed.ofN = Number.parseInt(arg.slice("--of=".length), 10);
95
- }
96
- else if (arg === "--project-root") {
97
- const value = argv[i + 1];
98
- if (value === undefined)
99
- return { ...parsed, error: "argument --project-root: expected one argument" };
100
- parsed.projectRoot = value;
101
- i += 1;
102
- }
103
- else if (arg?.startsWith("--project-root=")) {
104
- parsed.projectRoot = arg.slice("--project-root=".length);
105
- }
106
- else if (arg === "--auto-promote") {
107
- parsed.autoPromote = true;
108
- }
109
- else if (arg === "--force") {
110
- parsed.force = true;
111
- }
112
- else {
113
- return { ...parsed, error: `unrecognized argument: ${arg}` };
114
- }
115
- }
116
- return parsed;
117
- }
118
- /** Run triage-actions CLI and return exit code. */
119
- export function run(argv) {
120
- const args = parseArgs(argv);
121
- if (args.error !== undefined) {
122
- process.stderr.write(`triage_actions: ${args.error}\n`);
123
- return 2;
124
- }
125
- if (!VALID_CMDS.has(args.cmd ?? "")) {
126
- process.stderr.write(`triage_actions: unknown subcommand ${args.cmd ?? ""}\n`);
127
- return 2;
128
- }
129
- if (args.issue === undefined || Number.isNaN(args.issue)) {
130
- process.stderr.write("triage_actions: argument --issue: expected one argument\n");
131
- return 2;
132
- }
133
- if (args.repo === undefined) {
134
- process.stderr.write("triage_actions: argument --repo: expected one argument\n");
135
- return 2;
136
- }
137
- if (args.cmd === "reject" && args.reason === undefined) {
138
- process.stderr.write("triage_actions: argument --reason: expected one argument\n");
139
- return 2;
140
- }
141
- if (args.cmd === "defer" && args.reason === undefined) {
142
- process.stderr.write("triage_actions: argument --reason: expected one argument\n");
143
- return 2;
144
- }
145
- if (args.cmd === "mark-duplicate" && (args.ofN === undefined || Number.isNaN(args.ofN))) {
146
- process.stderr.write("triage_actions: argument --of: expected one argument\n");
147
- return 2;
148
- }
149
- const projectRoot = resolve(args.projectRoot);
150
- const deps = createDefaultDeps(projectRoot);
151
- const n = args.issue;
152
- const repo = args.repo;
153
- try {
154
- if (args.cmd === "accept") {
155
- const outcome = accept(n, repo, deps, {
156
- actor: args.actor,
157
- projectRoot,
158
- autoPromote: args.autoPromote === true,
159
- force: args.force === true,
160
- });
161
- process.stdout.write(`${formatAcceptOutput(n, repo, outcome.decisionId, {
162
- autoPromote: args.autoPromote === true,
163
- disposition: outcome.disposition,
164
- relativePath: outcome.relativePath,
165
- ingestMessage: outcome.ingestMessage,
166
- })}\n`);
167
- if (outcome.disposition === "refused") {
168
- return 1;
169
- }
170
- }
171
- else if (args.cmd === "reject") {
172
- const decisionId = reject(n, repo, args.reason ?? "", deps, {
173
- actor: args.actor,
174
- projectRoot,
175
- });
176
- process.stdout.write(`reject #${n} (${repo}) -> ${decisionId}\n`);
177
- }
178
- else if (args.cmd === "defer") {
179
- const decisionId = deferAction(n, repo, args.reason, deps, {
180
- actor: args.actor,
181
- resumeOn: args.resumeOn,
182
- projectRoot,
183
- });
184
- process.stdout.write(`defer #${n} (${repo}) -> ${decisionId}\n`);
185
- }
186
- else if (args.cmd === "needs-ac") {
187
- const decisionId = needsAc(n, repo, deps, {
188
- actor: args.actor,
189
- comment: args.comment,
190
- projectRoot,
191
- });
192
- process.stdout.write(`needs-ac #${n} (${repo}) -> ${decisionId}\n`);
193
- }
194
- else if (args.cmd === "mark-duplicate") {
195
- const ofN = args.ofN;
196
- const decisionId = markDuplicate(n, repo, ofN, deps, {
197
- actor: args.actor,
198
- projectRoot,
199
- });
200
- process.stdout.write(`mark-duplicate #${n} -> #${ofN} (${repo}) -> ${decisionId}\n`);
201
- }
202
- else if (args.cmd === "status") {
203
- process.stdout.write(`${formatDecision(status(n, repo, deps, { projectRoot }))}\n`);
204
- }
205
- else if (args.cmd === "reset") {
206
- const decisionId = reset(n, repo, deps, { actor: args.actor, projectRoot });
207
- process.stdout.write(`reset #${n} (${repo}) -> ${decisionId}\n`);
208
- }
209
- else {
210
- const entries = history(n, repo, deps, { projectRoot });
211
- if (entries.length === 0) {
212
- process.stdout.write(`${formatDecision(null)}\n`);
213
- }
214
- else {
215
- for (const entry of entries) {
216
- process.stdout.write(`${formatDecision(entry)}\n`);
217
- }
218
- }
219
- }
220
- }
221
- catch (err) {
222
- if (err instanceof TriageError || err instanceof UpstreamCloseError) {
223
- process.stderr.write(`triage_actions: ${err.message}\n`);
224
- return 1;
225
- }
226
- throw err;
227
- }
228
- return 0;
229
- }
230
- if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
231
- process.exit(run(process.argv.slice(2)));
232
- }
233
- //# sourceMappingURL=triage-actions.js.map
@@ -1,33 +0,0 @@
1
- export interface CommandCapture {
2
- readonly exitCode: number;
3
- readonly stdout: string;
4
- readonly stderr: string;
5
- }
6
- export interface ParityCase {
7
- readonly name: string;
8
- readonly script: "triage_welcome.py" | "triage_reconcile.py" | "triage_scope_drift.py" | "triage_refresh.py";
9
- readonly tsCli: "triage-welcome.js" | "triage-reconcile.js" | "triage-scope-drift.js" | "triage-refresh.js";
10
- readonly argv: readonly string[];
11
- readonly setup?: (root: string) => void;
12
- }
13
- export interface ParityDiff {
14
- readonly caseName: string;
15
- readonly exitMismatch: boolean;
16
- readonly stdoutMismatch: boolean;
17
- readonly stderrMismatch: boolean;
18
- readonly pythonExit: number;
19
- readonly tsExit: number;
20
- }
21
- export interface ParityResult {
22
- readonly ok: boolean;
23
- readonly diffs: ParityDiff[];
24
- }
25
- /** Strip volatile absolute paths before compare. */
26
- export declare function normalizeOutput(text: string): string;
27
- declare function resolveDeftRoot(): string;
28
- export { resolveDeftRoot };
29
- export declare function diffCase(python: CommandCapture, ts: CommandCapture, caseName: string): ParityDiff;
30
- export declare const PARITY_CASES: readonly ParityCase[];
31
- export declare function buildFixtureRepo(setup?: (root: string) => void): string;
32
- export declare function renderReport(result: ParityResult): string;
33
- //# sourceMappingURL=triage-aux-a-fixtures.d.ts.map