@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,362 +0,0 @@
1
- #!/usr/bin/env node
2
- import { resolve } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { bindLivePhaseCorrectWait, evaluateMergePathArm, } from "@deftai/directive-core/dist/pr-watch/main.js";
5
- import { evaluateApproach1ArmStartup } from "@deftai/directive-core/orchestration";
6
- import { EXIT_CONFIG_ERROR, EXIT_NOT_READY, evaluateReviewMonitorGate, formatApproach1BabysitterOneLiner, isTier1, REVIEW_MONITOR_HELP, spawnRedirect, verifyResultToJson, } from "@deftai/directive-core/review-monitor";
7
- import { writeMergePathExplicitFinishAttestation } from "@deftai/directive-core/swarm";
8
- const CALL_SITES = new Set([
9
- "solo",
10
- "swarm-phase5-6",
11
- "swarm-phase6-cascade",
12
- "unspecified",
13
- ]);
14
- export function parseVerifyReviewMonitorArgs(argv) {
15
- const acc = {
16
- pr: null,
17
- projectRoot: ".",
18
- repo: null,
19
- headSha: null,
20
- callSite: "unspecified",
21
- approach3: false,
22
- approach3Warned: false,
23
- emitJson: false,
24
- mergePathArm: false,
25
- liveWait: false,
26
- explicitFinish: false,
27
- mintGateBlocked: false,
28
- reason: null,
29
- stickyLease: false,
30
- dispatchStartedAt: null,
31
- help: false,
32
- };
33
- for (let i = 0; i < argv.length; i += 1) {
34
- const arg = argv[i];
35
- if (arg === "--help" || arg === "-h") {
36
- return { ...acc, help: true };
37
- }
38
- if (arg === "--json") {
39
- acc.emitJson = true;
40
- }
41
- else if (arg === "--merge-path-arm") {
42
- acc.mergePathArm = true;
43
- }
44
- else if (arg === "--live-wait") {
45
- acc.liveWait = true;
46
- }
47
- else if (arg === "--explicit-finish") {
48
- acc.explicitFinish = true;
49
- }
50
- else if (arg === "--mint-gate-blocked") {
51
- acc.mintGateBlocked = true;
52
- }
53
- else if (arg === "--reason") {
54
- const value = argv[i + 1];
55
- if (value === undefined) {
56
- return { ...acc, error: "argument --reason: expected one argument" };
57
- }
58
- acc.reason = value;
59
- i += 1;
60
- }
61
- else if (arg?.startsWith("--reason=")) {
62
- acc.reason = arg.slice("--reason=".length);
63
- }
64
- else if (arg === "--sticky-lease") {
65
- acc.stickyLease = true;
66
- }
67
- else if (arg === "--dispatch-started-at") {
68
- const value = argv[i + 1];
69
- if (value === undefined) {
70
- return { ...acc, error: "argument --dispatch-started-at: expected one argument" };
71
- }
72
- acc.dispatchStartedAt = value;
73
- i += 1;
74
- }
75
- else if (arg?.startsWith("--dispatch-started-at=")) {
76
- acc.dispatchStartedAt = arg.slice("--dispatch-started-at=".length);
77
- }
78
- else if (arg === "--approach3") {
79
- acc.approach3 = true;
80
- }
81
- else if (arg === "--approach3-warned") {
82
- acc.approach3Warned = true;
83
- }
84
- else if (arg === "--pr") {
85
- const value = argv[i + 1];
86
- if (value === undefined) {
87
- return { ...acc, error: "argument --pr: expected one argument" };
88
- }
89
- const n = Number(value);
90
- if (!Number.isInteger(n) || n <= 0) {
91
- return { ...acc, error: `invalid --pr value: ${value}` };
92
- }
93
- acc.pr = n;
94
- i += 1;
95
- }
96
- else if (arg?.startsWith("--pr=")) {
97
- const n = Number(arg.slice("--pr=".length));
98
- if (!Number.isInteger(n) || n <= 0) {
99
- return { ...acc, error: `invalid --pr value: ${arg}` };
100
- }
101
- acc.pr = n;
102
- }
103
- else if (arg === "--repo") {
104
- const value = argv[i + 1];
105
- if (value === undefined) {
106
- return { ...acc, error: "argument --repo: expected one argument" };
107
- }
108
- acc.repo = value;
109
- i += 1;
110
- }
111
- else if (arg?.startsWith("--repo=")) {
112
- acc.repo = arg.slice("--repo=".length);
113
- }
114
- else if (arg === "--head-sha") {
115
- const value = argv[i + 1];
116
- if (value === undefined) {
117
- return { ...acc, error: "argument --head-sha: expected one argument" };
118
- }
119
- acc.headSha = value;
120
- i += 1;
121
- }
122
- else if (arg?.startsWith("--head-sha=")) {
123
- acc.headSha = arg.slice("--head-sha=".length);
124
- }
125
- else if (arg === "--project-root") {
126
- const value = argv[i + 1];
127
- if (value === undefined) {
128
- return { ...acc, error: "argument --project-root: expected one argument" };
129
- }
130
- acc.projectRoot = value;
131
- i += 1;
132
- }
133
- else if (arg?.startsWith("--project-root=")) {
134
- acc.projectRoot = arg.slice("--project-root=".length);
135
- }
136
- else if (arg === "--call-site") {
137
- const value = argv[i + 1];
138
- if (value === undefined) {
139
- return { ...acc, error: "argument --call-site: expected one argument" };
140
- }
141
- if (!CALL_SITES.has(value)) {
142
- return { ...acc, error: `invalid --call-site: ${value}` };
143
- }
144
- acc.callSite = value;
145
- i += 1;
146
- }
147
- else if (arg?.startsWith("--call-site=")) {
148
- const value = arg.slice("--call-site=".length);
149
- if (!CALL_SITES.has(value)) {
150
- return { ...acc, error: `invalid --call-site: ${value}` };
151
- }
152
- acc.callSite = value;
153
- }
154
- else if (arg?.startsWith("-")) {
155
- return { ...acc, error: `unrecognized argument: ${arg}` };
156
- }
157
- else {
158
- return { ...acc, error: `unrecognized argument: ${arg}` };
159
- }
160
- }
161
- return acc;
162
- }
163
- export function run(argv) {
164
- const args = parseVerifyReviewMonitorArgs(argv);
165
- if (args.help) {
166
- process.stdout.write(REVIEW_MONITOR_HELP);
167
- process.stdout.write("\n#4882 / #5020 / #5219 merge-path arm observer (optional):\n" +
168
- " --merge-path-arm Fail closed when neither live wait nor explicit finish\n" +
169
- " --live-wait Require still-running wait evidence for this PR\n" +
170
- " (Tier 1: lease + active polling heartbeat with pid liveness;\n" +
171
- " lease+flag alone is not armed — #5020).\n" +
172
- " On spawn_subagent hosts, lease platform_primitive must be\n" +
173
- " spawn_subagent and heartbeat parent_id must match the lease\n" +
174
- " monitor_agent_id, or pr-wait-mergeable only after local\n" +
175
- " pr:watch CLEAN attestation — #5219;\n" +
176
- " parent-shell pr:watch (parent_id=pr-watch) does not arm.\n" +
177
- " --explicit-finish Attest option-C BLOCKED/FAILED finish for this PR\n" +
178
- " --mint-gate-blocked Refuse --explicit-finish write for product mint-gate\n" +
179
- " BLOCKED (non-option-C; #5690)\n" +
180
- " --reason TEXT Attestation reason; mint markers also refuse write (#5690)\n" +
181
- " --sticky-lease Attest a fresh sticky lease (not sufficient alone)\n" +
182
- " --dispatch-started-at DeliveryAttemptRecord.startedAt ISO for Approach 1\n" +
183
- " arm-startup halt (#5278); when merge-path-arm stays\n" +
184
- " red past the 3m allowance, emit approach1-arm-startup.\n" +
185
- " Prefer Approach 1 / native pr:watch --monitor-agent-id <id> or post-CLEAN\n" +
186
- " pr:wait-mergeable-and-merge; homemade line-parsed --json is not an arm.\n");
187
- return 0;
188
- }
189
- if (args.error !== undefined) {
190
- process.stderr.write(`verify_review_monitor: ${args.error}\n`);
191
- process.stderr.write("Try: task verify:review-monitor -- --help\n");
192
- return 2;
193
- }
194
- if (args.pr === null) {
195
- process.stderr.write("verify_review_monitor: --pr is required\n");
196
- process.stderr.write("Try: task verify:review-monitor -- --help\n");
197
- return 2;
198
- }
199
- // Always evaluate the gate first so --project-root / repo config errors stay
200
- // exit 2 even when --merge-path-arm would otherwise fail closed as unarmed.
201
- const result = evaluateReviewMonitorGate({
202
- pr: args.pr,
203
- projectRoot: resolve(args.projectRoot),
204
- repo: args.repo,
205
- headSha: args.headSha,
206
- callSite: args.callSite,
207
- approach3: args.approach3,
208
- approach3Warned: args.approach3Warned,
209
- environ: process.env,
210
- });
211
- let arm = null;
212
- if (args.mergePathArm) {
213
- // Durable option-C attestation for cohort inventory halted-explicit (#5318).
214
- // Do not write (or arm from) --explicit-finish when the monitor gate is a config error,
215
- // and fail closed if the durable write itself fails.
216
- let explicitFinishDurable = false;
217
- if (args.explicitFinish) {
218
- if (result.exitCode === EXIT_CONFIG_ERROR) {
219
- explicitFinishDurable = false;
220
- }
221
- else {
222
- const written = writeMergePathExplicitFinishAttestation(resolve(args.projectRoot), args.pr, {
223
- source: "verify:review-monitor --explicit-finish",
224
- reason: args.reason ?? undefined,
225
- mintGateBlocked: args.mintGateBlocked,
226
- });
227
- if (!written.ok) {
228
- process.stderr.write(`verify_review_monitor: ${written.reason}
229
- `);
230
- return EXIT_CONFIG_ERROR;
231
- }
232
- explicitFinishDurable = true;
233
- }
234
- }
235
- // Bind --live-wait to lease (#5018) + process-liveness heartbeat (#5020) on Tier 1.
236
- // spawn_subagent identity join is already applied in evaluateReviewMonitorGate (#5219).
237
- const leaseEvidence = result.monitorRecord !== null;
238
- const liveBind = bindLivePhaseCorrectWait({
239
- liveWaitFlag: args.liveWait,
240
- tierIs1: isTier1(result.tier),
241
- leaseEvidence,
242
- heartbeatActive: result.heartbeatActive,
243
- pr: args.pr,
244
- });
245
- arm = evaluateMergePathArm({
246
- livePhaseCorrectWait: liveBind.livePhaseCorrectWait,
247
- explicitFinish: explicitFinishDurable,
248
- stickyLeaseActive: args.stickyLease || leaseEvidence,
249
- });
250
- if (args.liveWait && !liveBind.livePhaseCorrectWait && !args.explicitFinish && !arm.armed) {
251
- const spawnHost = result.tier.primitive === "spawn_subagent";
252
- const lease = result.monitorRecord;
253
- let message = liveBind.message;
254
- if (spawnHost && lease !== null && lease.platform_primitive !== "spawn_subagent") {
255
- message =
256
- `unarmed stand-down: Tier-1 spawn_subagent requires lease ` +
257
- `platform_primitive=spawn_subagent for PR #${args.pr} (#5219); ` +
258
- `got ${lease.platform_primitive}.\n` +
259
- ` ${spawnRedirect(result.tier)}`;
260
- }
261
- else if (spawnHost &&
262
- lease !== null &&
263
- lease.platform_primitive === "spawn_subagent" &&
264
- liveBind.reason === "missing_process_liveness") {
265
- message =
266
- `unarmed stand-down: --live-wait for PR #${args.pr} has spawn_subagent lease ` +
267
- `(monitor_agent_id=${lease.monitor_agent_id}) but no child-bound wait identity ` +
268
- `(heartbeat parent_id must match monitor_agent_id, or pr-wait-mergeable after ` +
269
- `pr:watch CLEAN attestation; start child pr:watch before verify; ` +
270
- `parent-shell pr:watch does not arm) (#5219).\n` +
271
- ` Cheaper path:\n` +
272
- ` ${formatApproach1BabysitterOneLiner(args.pr, lease.monitor_agent_id)}\n` +
273
- ` ${spawnRedirect(result.tier)}`;
274
- }
275
- else if (message === null) {
276
- message = arm.message;
277
- }
278
- arm = {
279
- armed: false,
280
- reason: "unarmed_stand_down",
281
- message,
282
- };
283
- }
284
- }
285
- // Approach 1 arm-startup halt (#5278 P3): production caller for evaluateApproach1ArmStartup.
286
- let armStartupHalt = null;
287
- if (args.mergePathArm &&
288
- args.dispatchStartedAt !== null &&
289
- args.dispatchStartedAt.trim().length > 0 &&
290
- arm !== null &&
291
- !arm.armed &&
292
- !args.explicitFinish) {
293
- armStartupHalt = evaluateApproach1ArmStartup({
294
- dispatchStartedAt: args.dispatchStartedAt,
295
- probeReady: false,
296
- });
297
- if (armStartupHalt.halt && armStartupHalt.message.length > 0) {
298
- arm = {
299
- armed: false,
300
- reason: "unarmed_stand_down",
301
- message: `${arm.message}\n${armStartupHalt.message}`,
302
- };
303
- }
304
- }
305
- if (args.emitJson) {
306
- const payload = verifyResultToJson(result);
307
- if (arm !== null) {
308
- payload.merge_path_arm = {
309
- armed: arm.armed,
310
- reason: arm.reason,
311
- message: arm.message,
312
- live_wait: args.liveWait,
313
- explicit_finish: args.explicitFinish,
314
- sticky_lease: args.stickyLease,
315
- lease_evidence: result.monitorRecord !== null,
316
- heartbeat_active: result.heartbeatActive,
317
- };
318
- if (armStartupHalt !== null) {
319
- payload.approach1_arm_startup = {
320
- halt: armStartupHalt.halt,
321
- halt_class: armStartupHalt.halt_class,
322
- elapsed_seconds: armStartupHalt.elapsed_seconds,
323
- message: armStartupHalt.message,
324
- };
325
- }
326
- // Combined gate+arm: unarmed fails closed even when the monitor gate is ready.
327
- if (!arm.armed && result.exitCode !== EXIT_CONFIG_ERROR) {
328
- payload.ready = false;
329
- payload.exit_code = EXIT_NOT_READY;
330
- // Gate-ready → arm diagnosis; both failing → keep both messages.
331
- payload.message = result.exitCode === 0 ? arm.message : `${result.message}\n${arm.message}`;
332
- }
333
- }
334
- process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
335
- }
336
- else if (result.exitCode === EXIT_CONFIG_ERROR) {
337
- process.stderr.write(`${result.message}\n`);
338
- }
339
- else if (arm !== null && !arm.armed) {
340
- process.stderr.write(`${arm.message}\n`);
341
- }
342
- else if (result.exitCode === 0) {
343
- process.stdout.write(`${result.message}\n`);
344
- if (arm !== null) {
345
- process.stdout.write(`${arm.message}\n`);
346
- }
347
- }
348
- else {
349
- process.stderr.write(`${result.message}\n`);
350
- }
351
- if (result.exitCode === EXIT_CONFIG_ERROR) {
352
- return EXIT_CONFIG_ERROR;
353
- }
354
- if (arm !== null && !arm.armed) {
355
- return EXIT_NOT_READY;
356
- }
357
- return result.exitCode;
358
- }
359
- if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
360
- process.exit(run(process.argv.slice(2)));
361
- }
362
- //# sourceMappingURL=verify-review-monitor.js.map
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env node
2
- /** Stderr line when argv includes `--enforce`. Exit code is unchanged. */
3
- export declare const ENFORCE_NOOP_NOTICE = "verify_scope_provenance: --enforce has no effect after #4956 / #5002";
4
- interface ParsedArgs {
5
- projectRoot: string;
6
- baseRef: string;
7
- enforce: boolean;
8
- /** Raw `--enforce` token present, even when a later `--warn` wins `enforce`. */
9
- enforcePresent: boolean;
10
- quiet: boolean;
11
- error?: string;
12
- }
13
- export declare function parseArgs(argv: string[]): ParsedArgs;
14
- export declare function run(argv: string[]): number;
15
- export {};
16
- //# sourceMappingURL=verify-scope-provenance.d.ts.map
@@ -1,91 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * CLI for verify:scope-provenance (#3145 / #4956 / #4774 / #5057).
4
- *
5
- * Membership against the declared allowlist (mint / brief file_scope) is
6
- * evaluated inside evaluateScopeProvenance. This CLI forwards --base-ref.
7
- * `--enforce` / `--warn` stay parsed for compatibility; `--enforce` is a
8
- * no-op after #4956 / #5002 and prints a stderr notice when present.
9
- */
10
- import { resolve } from "node:path";
11
- import { scopeProvenance } from "@deftai/directive-core";
12
- import { isDirectEntrypoint } from "./entrypoint.js";
13
- /** Stderr line when argv includes `--enforce`. Exit code is unchanged. */
14
- export const ENFORCE_NOOP_NOTICE = "verify_scope_provenance: --enforce has no effect after #4956 / #5002";
15
- export function parseArgs(argv) {
16
- const parsed = {
17
- projectRoot: ".",
18
- // Empty means use PR-aware default (origin/master...), not bare HEAD.
19
- baseRef: "",
20
- enforce: false,
21
- enforcePresent: false,
22
- quiet: false,
23
- };
24
- for (let i = 0; i < argv.length; i += 1) {
25
- const arg = argv[i];
26
- if (arg === "--quiet") {
27
- parsed.quiet = true;
28
- }
29
- else if (arg === "--enforce") {
30
- parsed.enforce = true;
31
- parsed.enforcePresent = true;
32
- }
33
- else if (arg === "--warn") {
34
- parsed.enforce = false;
35
- }
36
- else if (arg === "--project-root") {
37
- const value = argv[i + 1];
38
- if (value === undefined) {
39
- return { ...parsed, error: "argument --project-root: expected one argument" };
40
- }
41
- parsed.projectRoot = value;
42
- i += 1;
43
- }
44
- else if (arg?.startsWith("--project-root=")) {
45
- parsed.projectRoot = arg.slice("--project-root=".length);
46
- }
47
- else if (arg === "--base-ref") {
48
- const value = argv[i + 1];
49
- if (value === undefined) {
50
- return { ...parsed, error: "argument --base-ref: expected one argument" };
51
- }
52
- parsed.baseRef = value;
53
- i += 1;
54
- }
55
- else if (arg?.startsWith("--base-ref=")) {
56
- parsed.baseRef = arg.slice("--base-ref=".length);
57
- }
58
- else {
59
- return { ...parsed, error: `unrecognized argument: ${arg}` };
60
- }
61
- }
62
- return parsed;
63
- }
64
- export function run(argv) {
65
- const args = parseArgs(argv);
66
- if (args.error !== undefined) {
67
- process.stderr.write(`verify_scope_provenance: ${args.error}\n`);
68
- return 2;
69
- }
70
- const projectRoot = resolve(args.projectRoot);
71
- const result = scopeProvenance.evaluateScopeProvenance(projectRoot, {
72
- ...(args.baseRef.length > 0 ? { baseRef: args.baseRef } : {}),
73
- enforce: args.enforce,
74
- });
75
- if (args.enforcePresent) {
76
- process.stderr.write(`${ENFORCE_NOOP_NOTICE}\n`);
77
- }
78
- if (result.exitCode === 0) {
79
- if (!args.quiet) {
80
- process.stdout.write(`${result.message}\n`);
81
- }
82
- }
83
- else {
84
- process.stderr.write(`${result.message}\n`);
85
- }
86
- return result.exitCode;
87
- }
88
- if (isDirectEntrypoint(import.meta.url)) {
89
- process.exit(run(process.argv.slice(2)));
90
- }
91
- //# sourceMappingURL=verify-scope-provenance.js.map
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env node
2
- import { type DirectivePosture, type VerifyResult } from "@deftai/directive-core/session";
3
- export interface VerifySessionRitualRunDeps {
4
- readonly verifySessionRitual?: (projectRoot: string, options: {
5
- tier: "quick" | "gated";
6
- posture?: DirectivePosture;
7
- }) => VerifyResult;
8
- }
9
- interface ParsedArgs {
10
- projectRoot: string;
11
- tier: "quick" | "gated";
12
- posture: DirectivePosture | null;
13
- emitJson: boolean;
14
- error?: string;
15
- }
16
- /** Parse verify-session-ritual CLI args, mirroring scripts/verify_session_ritual.py. */
17
- export declare function parseArgs(argv: string[]): ParsedArgs;
18
- /** True when the ritual failure is the gated cache_fresh step (#3506 / #3507). */
19
- export declare function isCacheFreshFailureMessage(message: string): boolean;
20
- /** Run the gate and return the process exit code. */
21
- export declare function run(argv: string[], deps?: VerifySessionRitualRunDeps): number;
22
- export {};
23
- //# sourceMappingURL=verify-session-ritual.d.ts.map
@@ -1,144 +0,0 @@
1
- #!/usr/bin/env node
2
- import { resolve } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { emitBypassWarning, emitVerifyJson, formatCacheFreshDeferSoftPath, occupancyAwareDenialMessage, verifySessionRitual, } from "@deftai/directive-core/session";
5
- function parsePosture(value) {
6
- if (value === "read-only")
7
- return "read-only";
8
- if (value === "mutation" || value === "mutating")
9
- return "mutation";
10
- return null;
11
- }
12
- /** Parse verify-session-ritual CLI args, mirroring scripts/verify_session_ritual.py. */
13
- export function parseArgs(argv) {
14
- const parsed = {
15
- projectRoot: ".",
16
- tier: "quick",
17
- posture: null,
18
- emitJson: false,
19
- };
20
- for (let i = 0; i < argv.length; i += 1) {
21
- const arg = argv[i];
22
- if (arg === "--") {
23
- continue;
24
- }
25
- if (arg === "--json") {
26
- parsed.emitJson = true;
27
- }
28
- else if (arg === "--project-root") {
29
- const value = argv[i + 1];
30
- if (value === undefined) {
31
- return { ...parsed, error: "argument --project-root: expected one argument" };
32
- }
33
- parsed.projectRoot = value;
34
- i += 1;
35
- }
36
- else if (arg?.startsWith("--project-root=")) {
37
- parsed.projectRoot = arg.slice("--project-root=".length);
38
- }
39
- else if (arg === "--tier") {
40
- const value = argv[i + 1];
41
- if (value === undefined) {
42
- return { ...parsed, error: "argument --tier: expected one argument" };
43
- }
44
- if (value !== "quick" && value !== "gated") {
45
- return { ...parsed, error: `argument --tier: invalid choice: '${value}'` };
46
- }
47
- parsed.tier = value;
48
- i += 1;
49
- }
50
- else if (arg?.startsWith("--tier=")) {
51
- const value = arg.slice("--tier=".length);
52
- if (value !== "quick" && value !== "gated") {
53
- return { ...parsed, error: `argument --tier: invalid choice: '${value}'` };
54
- }
55
- parsed.tier = value;
56
- }
57
- else if (arg === "--posture") {
58
- const value = argv[i + 1];
59
- if (value === undefined) {
60
- return { ...parsed, error: "argument --posture: expected one argument" };
61
- }
62
- const posture = parsePosture(value);
63
- if (posture === null) {
64
- return {
65
- ...parsed,
66
- error: `argument --posture: invalid choice: '${value}' (expected read-only|mutation)`,
67
- };
68
- }
69
- parsed.posture = posture;
70
- i += 1;
71
- }
72
- else if (arg?.startsWith("--posture=")) {
73
- const value = arg.slice("--posture=".length);
74
- const posture = parsePosture(value);
75
- if (posture === null) {
76
- return {
77
- ...parsed,
78
- error: `argument --posture: invalid choice: '${value}' (expected read-only|mutation)`,
79
- };
80
- }
81
- parsed.posture = posture;
82
- }
83
- else {
84
- const error = `unrecognized argument: ${arg}`;
85
- if (arg === "--session-id" || arg?.startsWith("--session-id=")) {
86
- return {
87
- ...parsed,
88
- error: `${error} Drop the flag and retry deft verify:session-ritual -- --tier=gated.`,
89
- };
90
- }
91
- return { ...parsed, error };
92
- }
93
- }
94
- return parsed;
95
- }
96
- /** True when the ritual failure is the gated cache_fresh step (#3506 / #3507). */
97
- export function isCacheFreshFailureMessage(message) {
98
- return message.includes("cache_fresh") || message.includes("cache-fresh");
99
- }
100
- /** Run the gate and return the process exit code. */
101
- export function run(argv, deps = {}) {
102
- const args = parseArgs(argv);
103
- if (args.error !== undefined) {
104
- process.stderr.write(`verify_session_ritual: ${args.error}\n`);
105
- return 2;
106
- }
107
- const projectRoot = resolve(args.projectRoot);
108
- const verify = deps.verifySessionRitual ?? verifySessionRitual;
109
- const result = verify(projectRoot, {
110
- tier: args.tier,
111
- posture: args.posture ?? undefined,
112
- });
113
- const warning = emitBypassWarning(result);
114
- const warningNeeded = result.bypassed && result.wouldFailCode !== null;
115
- if (args.emitJson) {
116
- process.stdout.write(`${emitVerifyJson(result)}\n`);
117
- }
118
- else if (result.code === 0) {
119
- if (!warningNeeded) {
120
- process.stdout.write(`${result.message}\n`);
121
- }
122
- }
123
- else if (result.code === 1) {
124
- const recoveryTier = result.recoveryTier ?? "cold";
125
- const lines = [
126
- occupancyAwareDenialMessage(projectRoot, result.message, { env: process.env }, recoveryTier),
127
- ];
128
- if (isCacheFreshFailureMessage(result.message)) {
129
- lines.push(formatCacheFreshDeferSoftPath());
130
- }
131
- process.stderr.write(`${lines.join("\n")}\n`);
132
- }
133
- else {
134
- process.stderr.write(`${result.message}\n`);
135
- }
136
- if (warning.length > 0) {
137
- process.stderr.write(`${warning}\n`);
138
- }
139
- return result.code;
140
- }
141
- if (process.argv[1] !== undefined && fileURLToPath(import.meta.url) === process.argv[1]) {
142
- process.exit(run(process.argv.slice(2)));
143
- }
144
- //# sourceMappingURL=verify-session-ritual.js.map
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env node
2
- interface ParsedArgs {
3
- mapPath: string | null;
4
- root: string | null;
5
- error?: string;
6
- }
7
- /** Parse rule-ownership-lint CLI args, mirroring scripts/rule_ownership_lint.py. */
8
- export declare function parseArgs(argv: string[]): ParsedArgs;
9
- /** Run the gate and return the process exit code. */
10
- export declare function run(argv: string[]): number;
11
- export {};
12
- //# sourceMappingURL=rule-ownership-lint.d.ts.map