@lannguyensi/harness 0.64.0 → 1.0.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 (710) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +46 -42
  3. package/dist/cli/add/index.js +17 -21
  4. package/dist/cli/add/index.js.map +1 -1
  5. package/dist/cli/adopt/derive.d.ts +2 -2
  6. package/dist/cli/adopt/derive.js +2 -19
  7. package/dist/cli/adopt/derive.js.map +1 -1
  8. package/dist/cli/adopt/index.d.ts +1 -1
  9. package/dist/cli/adopt/index.js +1 -12
  10. package/dist/cli/adopt/index.js.map +1 -1
  11. package/dist/cli/apply/apply.d.ts +20 -35
  12. package/dist/cli/apply/apply.js +61 -136
  13. package/dist/cli/apply/apply.js.map +1 -1
  14. package/dist/cli/apply/generate-codex-config.js +10 -58
  15. package/dist/cli/apply/generate-codex-config.js.map +1 -1
  16. package/dist/cli/apply/generate-memory-index.js +1 -2
  17. package/dist/cli/apply/generate-memory-index.js.map +1 -1
  18. package/dist/cli/apply/generate-opencode-config.d.ts +2 -10
  19. package/dist/cli/apply/generate-opencode-config.js +74 -113
  20. package/dist/cli/apply/generate-opencode-config.js.map +1 -1
  21. package/dist/cli/apply/generate-settings.d.ts +11 -64
  22. package/dist/cli/apply/generate-settings.js +27 -132
  23. package/dist/cli/apply/generate-settings.js.map +1 -1
  24. package/dist/cli/apply/index.d.ts +1 -1
  25. package/dist/cli/apply/index.js +1 -1
  26. package/dist/cli/apply/index.js.map +1 -1
  27. package/dist/cli/apply/install-codex-config.d.ts +153 -1
  28. package/dist/cli/apply/install-codex-config.js +445 -70
  29. package/dist/cli/apply/install-codex-config.js.map +1 -1
  30. package/dist/cli/apply/next-steps.d.ts +7 -0
  31. package/dist/cli/apply/next-steps.js +13 -1
  32. package/dist/cli/apply/next-steps.js.map +1 -1
  33. package/dist/cli/bounded-stdin.d.ts +0 -23
  34. package/dist/cli/bounded-stdin.js +2 -49
  35. package/dist/cli/bounded-stdin.js.map +1 -1
  36. package/dist/cli/describe.d.ts +1 -1
  37. package/dist/cli/describe.js +0 -3
  38. package/dist/cli/describe.js.map +1 -1
  39. package/dist/cli/diff/engine.d.ts +0 -11
  40. package/dist/cli/diff/engine.js +1 -17
  41. package/dist/cli/diff/engine.js.map +1 -1
  42. package/dist/cli/diff/index.js +14 -25
  43. package/dist/cli/diff/index.js.map +1 -1
  44. package/dist/cli/doctor/claude-mcp.d.ts +4 -19
  45. package/dist/cli/doctor/claude-mcp.js +11 -22
  46. package/dist/cli/doctor/claude-mcp.js.map +1 -1
  47. package/dist/cli/doctor/codex.d.ts +12 -14
  48. package/dist/cli/doctor/codex.js +31 -144
  49. package/dist/cli/doctor/codex.js.map +1 -1
  50. package/dist/cli/doctor/format.js +23 -345
  51. package/dist/cli/doctor/format.js.map +1 -1
  52. package/dist/cli/doctor/hook-liveness.d.ts +56 -0
  53. package/dist/cli/doctor/hook-liveness.js +455 -0
  54. package/dist/cli/doctor/hook-liveness.js.map +1 -0
  55. package/dist/cli/doctor/index.d.ts +13 -87
  56. package/dist/cli/doctor/index.js +57 -713
  57. package/dist/cli/doctor/index.js.map +1 -1
  58. package/dist/cli/doctor/opencode.d.ts +2 -1
  59. package/dist/cli/doctor/opencode.js.map +1 -1
  60. package/dist/cli/doctor/types.d.ts +21 -387
  61. package/dist/cli/doctor/types.js.map +1 -1
  62. package/dist/cli/drain-stdio.d.ts +31 -0
  63. package/dist/cli/drain-stdio.js +76 -0
  64. package/dist/cli/drain-stdio.js.map +1 -0
  65. package/dist/cli/export.d.ts +3 -1
  66. package/dist/cli/export.js +7 -16
  67. package/dist/cli/export.js.map +1 -1
  68. package/dist/cli/gate/codex-disable.d.ts +29 -0
  69. package/dist/cli/gate/codex-disable.js +195 -0
  70. package/dist/cli/gate/codex-disable.js.map +1 -0
  71. package/dist/cli/gate/codex-enable.d.ts +41 -0
  72. package/dist/cli/gate/codex-enable.js +127 -0
  73. package/dist/cli/gate/codex-enable.js.map +1 -0
  74. package/dist/cli/gate/codex-snapshot.d.ts +208 -0
  75. package/dist/cli/gate/codex-snapshot.js +402 -0
  76. package/dist/cli/gate/codex-snapshot.js.map +1 -0
  77. package/dist/cli/gate/disable.d.ts +9 -0
  78. package/dist/cli/gate/disable.js +263 -28
  79. package/dist/cli/gate/disable.js.map +1 -1
  80. package/dist/cli/gate/enable.d.ts +26 -6
  81. package/dist/cli/gate/enable.js +152 -80
  82. package/dist/cli/gate/enable.js.map +1 -1
  83. package/dist/cli/gate/link-chain.d.ts +53 -0
  84. package/dist/cli/gate/link-chain.js +122 -0
  85. package/dist/cli/gate/link-chain.js.map +1 -0
  86. package/dist/cli/gate/snapshot.d.ts +289 -12
  87. package/dist/cli/gate/snapshot.js +481 -22
  88. package/dist/cli/gate/snapshot.js.map +1 -1
  89. package/dist/cli/index.d.ts +0 -9
  90. package/dist/cli/index.js +9 -2131
  91. package/dist/cli/index.js.map +1 -1
  92. package/dist/cli/init/composer.d.ts +3 -6
  93. package/dist/cli/init/composer.js +6 -370
  94. package/dist/cli/init/composer.js.map +1 -1
  95. package/dist/cli/init/dependencies.d.ts +1 -2
  96. package/dist/cli/init/dependencies.js +4 -80
  97. package/dist/cli/init/dependencies.js.map +1 -1
  98. package/dist/cli/init/detect.js +5 -4
  99. package/dist/cli/init/detect.js.map +1 -1
  100. package/dist/cli/init/interactive.d.ts +1 -23
  101. package/dist/cli/init/interactive.js +33 -247
  102. package/dist/cli/init/interactive.js.map +1 -1
  103. package/dist/cli/init/profiles.d.ts +2 -2
  104. package/dist/cli/init/profiles.js +51 -245
  105. package/dist/cli/init/profiles.js.map +1 -1
  106. package/dist/cli/init/templates.d.ts +2 -37
  107. package/dist/cli/init/templates.js +25 -1237
  108. package/dist/cli/init/templates.js.map +1 -1
  109. package/dist/cli/list.d.ts +1 -1
  110. package/dist/cli/list.js +1 -38
  111. package/dist/cli/list.js.map +1 -1
  112. package/dist/cli/loader.d.ts +15 -1
  113. package/dist/cli/loader.js +56 -39
  114. package/dist/cli/loader.js.map +1 -1
  115. package/dist/cli/main.js +7 -2
  116. package/dist/cli/main.js.map +1 -1
  117. package/dist/cli/migrate-home/index.js +2 -2
  118. package/dist/cli/migrate-home/index.js.map +1 -1
  119. package/dist/cli/pack/add.js +1 -1
  120. package/dist/cli/pack/add.js.map +1 -1
  121. package/dist/cli/pack/hook-bootstrap.d.ts +5 -164
  122. package/dist/cli/pack/hook-bootstrap.js +15 -291
  123. package/dist/cli/pack/hook-bootstrap.js.map +1 -1
  124. package/dist/cli/pack/hook-branch-protection.d.ts +28 -21
  125. package/dist/cli/pack/hook-branch-protection.js +365 -340
  126. package/dist/cli/pack/hook-branch-protection.js.map +1 -1
  127. package/dist/cli/pack/index.d.ts +0 -1
  128. package/dist/cli/pack/index.js +0 -1
  129. package/dist/cli/pack/index.js.map +1 -1
  130. package/dist/cli/pack/list.js +1 -6
  131. package/dist/cli/pack/list.js.map +1 -1
  132. package/dist/cli/pack/mutate.d.ts +7 -9
  133. package/dist/cli/pack/mutate.js +6 -9
  134. package/dist/cli/pack/mutate.js.map +1 -1
  135. package/dist/cli/pack/reseed.d.ts +2 -2
  136. package/dist/cli/pack/reseed.js +16 -22
  137. package/dist/cli/pack/reseed.js.map +1 -1
  138. package/dist/cli/{delegate/register.d.ts → register-gate-group.d.ts} +1 -1
  139. package/dist/cli/register-gate-group.js +348 -0
  140. package/dist/cli/register-gate-group.js.map +1 -0
  141. package/dist/cli/register-inspect-group.d.ts +6 -0
  142. package/dist/cli/register-inspect-group.js +189 -0
  143. package/dist/cli/register-inspect-group.js.map +1 -0
  144. package/dist/cli/register-operator-lifecycle.d.ts +1 -1
  145. package/dist/cli/register-operator-lifecycle.js +3 -100
  146. package/dist/cli/register-operator-lifecycle.js.map +1 -1
  147. package/dist/cli/register-pack-group.d.ts +5 -0
  148. package/dist/cli/register-pack-group.js +134 -0
  149. package/dist/cli/register-pack-group.js.map +1 -0
  150. package/dist/cli/{register-audit-group.d.ts → register-setup-group.d.ts} +1 -1
  151. package/dist/cli/register-setup-group.js +495 -0
  152. package/dist/cli/register-setup-group.js.map +1 -0
  153. package/dist/cli/remove/index.d.ts +0 -14
  154. package/dist/cli/remove/index.js +2 -115
  155. package/dist/cli/remove/index.js.map +1 -1
  156. package/dist/cli/remove/mutate.d.ts +0 -2
  157. package/dist/cli/remove/mutate.js +1 -19
  158. package/dist/cli/remove/mutate.js.map +1 -1
  159. package/dist/cli/remove/register.js +2 -19
  160. package/dist/cli/remove/register.js.map +1 -1
  161. package/dist/cli/shell-quote.d.ts +7 -0
  162. package/dist/cli/shell-quote.js +17 -0
  163. package/dist/cli/shell-quote.js.map +1 -0
  164. package/dist/cli/uninstall/index.d.ts +4 -2
  165. package/dist/cli/uninstall/index.js +15 -7
  166. package/dist/cli/uninstall/index.js.map +1 -1
  167. package/dist/cli/uninstall/register.js +6 -4
  168. package/dist/cli/uninstall/register.js.map +1 -1
  169. package/dist/cli/uninstall/snapshot.d.ts +15 -0
  170. package/dist/cli/uninstall/snapshot.js +38 -0
  171. package/dist/cli/uninstall/snapshot.js.map +1 -1
  172. package/dist/cli/validate/checks.d.ts +0 -77
  173. package/dist/cli/validate/checks.js +3 -1049
  174. package/dist/cli/validate/checks.js.map +1 -1
  175. package/dist/cli/validate/index.js +19 -15
  176. package/dist/cli/validate/index.js.map +1 -1
  177. package/dist/index.d.ts +0 -3
  178. package/dist/index.js +0 -3
  179. package/dist/index.js.map +1 -1
  180. package/dist/io/claude-mcp.d.ts +1 -1
  181. package/dist/io/claude-mcp.js +27 -14
  182. package/dist/io/claude-mcp.js.map +1 -1
  183. package/dist/io/harness-lock.js +2 -2
  184. package/dist/io/harness-lock.js.map +1 -1
  185. package/dist/io/lock.d.ts +0 -26
  186. package/dist/io/lock.js +10 -27
  187. package/dist/io/lock.js.map +1 -1
  188. package/dist/io/merge-settings.js +6 -4
  189. package/dist/io/merge-settings.js.map +1 -1
  190. package/dist/io/project-name.d.ts +22 -39
  191. package/dist/io/project-name.js +25 -42
  192. package/dist/io/project-name.js.map +1 -1
  193. package/dist/io/read-regular-file.d.ts +103 -40
  194. package/dist/io/read-regular-file.js +196 -35
  195. package/dist/io/read-regular-file.js.map +1 -1
  196. package/dist/io/restart-hints.js +3 -6
  197. package/dist/io/restart-hints.js.map +1 -1
  198. package/dist/io/version-compare.d.ts +1 -3
  199. package/dist/io/version-compare.js +1 -3
  200. package/dist/io/version-compare.js.map +1 -1
  201. package/dist/io/write-regular-file.d.ts +30 -0
  202. package/dist/io/write-regular-file.js +85 -0
  203. package/dist/io/write-regular-file.js.map +1 -0
  204. package/dist/overrides/index.d.ts +1 -0
  205. package/dist/overrides/index.js +1 -0
  206. package/dist/overrides/index.js.map +1 -1
  207. package/dist/overrides/merge-layers.d.ts +43 -0
  208. package/dist/overrides/merge-layers.js +76 -0
  209. package/dist/overrides/merge-layers.js.map +1 -0
  210. package/dist/overrides/merge.d.ts +16 -0
  211. package/dist/overrides/merge.js +21 -8
  212. package/dist/overrides/merge.js.map +1 -1
  213. package/dist/policy-packs/builtin/branch-protection-runtime.d.ts +4 -69
  214. package/dist/policy-packs/builtin/branch-protection-runtime.js +12 -84
  215. package/dist/policy-packs/builtin/branch-protection-runtime.js.map +1 -1
  216. package/dist/policy-packs/builtin/branch-protection.d.ts +7 -30
  217. package/dist/policy-packs/builtin/branch-protection.js +56 -89
  218. package/dist/policy-packs/builtin/branch-protection.js.map +1 -1
  219. package/dist/policy-packs/config-check.d.ts +7 -5
  220. package/dist/policy-packs/config-check.js +2 -2
  221. package/dist/policy-packs/config-check.js.map +1 -1
  222. package/dist/policy-packs/expand.d.ts +1 -3
  223. package/dist/policy-packs/expand.js +5 -42
  224. package/dist/policy-packs/expand.js.map +1 -1
  225. package/dist/policy-packs/index.d.ts +3 -3
  226. package/dist/policy-packs/index.js +2 -2
  227. package/dist/policy-packs/index.js.map +1 -1
  228. package/dist/policy-packs/registry.d.ts +9 -38
  229. package/dist/policy-packs/registry.js +5 -65
  230. package/dist/policy-packs/registry.js.map +1 -1
  231. package/dist/policy-packs/runtime.d.ts +0 -4
  232. package/dist/policy-packs/runtime.js +9 -22
  233. package/dist/policy-packs/runtime.js.map +1 -1
  234. package/dist/policy-packs/types.d.ts +0 -19
  235. package/dist/policy-packs/ux-compare.d.ts +1 -11
  236. package/dist/policy-packs/ux-compare.js +6 -42
  237. package/dist/policy-packs/ux-compare.js.map +1 -1
  238. package/dist/policy-packs/ux-drift-check.d.ts +5 -5
  239. package/dist/policy-packs/ux-drift-check.js +17 -22
  240. package/dist/policy-packs/ux-drift-check.js.map +1 -1
  241. package/dist/policy-packs/version-check.d.ts +5 -26
  242. package/dist/policy-packs/version-check.js +19 -74
  243. package/dist/policy-packs/version-check.js.map +1 -1
  244. package/dist/probes/memory.d.ts +1 -1
  245. package/dist/probes/memory.js +1 -1
  246. package/dist/probes/memory.js.map +1 -1
  247. package/dist/runtime/agent-facing.d.ts +9 -0
  248. package/dist/runtime/agent-facing.js +28 -14
  249. package/dist/runtime/agent-facing.js.map +1 -1
  250. package/dist/runtime/bounded-text.d.ts +15 -0
  251. package/dist/runtime/bounded-text.js +27 -0
  252. package/dist/runtime/bounded-text.js.map +1 -0
  253. package/dist/runtime/git-branch.d.ts +125 -0
  254. package/dist/runtime/git-branch.js +381 -0
  255. package/dist/runtime/git-branch.js.map +1 -0
  256. package/dist/runtime/hermetic-spawn-guard.d.ts +2 -2
  257. package/dist/runtime/hermetic-spawn-guard.js +24 -34
  258. package/dist/runtime/hermetic-spawn-guard.js.map +1 -1
  259. package/dist/runtime/home-dir.js +3 -2
  260. package/dist/runtime/home-dir.js.map +1 -1
  261. package/dist/runtime/tool-name-aliases.d.ts +0 -6
  262. package/dist/runtime/tool-name-aliases.js +5 -18
  263. package/dist/runtime/tool-name-aliases.js.map +1 -1
  264. package/dist/schema/grounding.d.ts +7 -54
  265. package/dist/schema/grounding.js +10 -12
  266. package/dist/schema/grounding.js.map +1 -1
  267. package/dist/schema/hooks.d.ts +39 -136
  268. package/dist/schema/hooks.js +3 -6
  269. package/dist/schema/hooks.js.map +1 -1
  270. package/dist/schema/index.d.ts +114 -3828
  271. package/dist/schema/index.js +41 -80
  272. package/dist/schema/index.js.map +1 -1
  273. package/dist/schema/memory.d.ts +54 -131
  274. package/dist/schema/memory.js +2 -2
  275. package/dist/schema/memory.js.map +1 -1
  276. package/dist/schema/policy-packs.d.ts +3 -45
  277. package/dist/schema/policy-packs.js +7 -13
  278. package/dist/schema/policy-packs.js.map +1 -1
  279. package/dist/schema/policy-ux.d.ts +7 -0
  280. package/dist/schema/policy-ux.js +18 -0
  281. package/dist/schema/policy-ux.js.map +1 -0
  282. package/dist/schema/removed-keys.d.ts +185 -0
  283. package/dist/schema/removed-keys.js +531 -0
  284. package/dist/schema/removed-keys.js.map +1 -0
  285. package/dist/schema/tools.d.ts +30 -268
  286. package/dist/schema/tools.js +4 -4
  287. package/dist/schema/tools.js.map +1 -1
  288. package/package.json +5 -16
  289. package/dist/cli/approve/branch-protection.d.ts +0 -69
  290. package/dist/cli/approve/branch-protection.js +0 -144
  291. package/dist/cli/approve/branch-protection.js.map +0 -1
  292. package/dist/cli/approve/risk.d.ts +0 -112
  293. package/dist/cli/approve/risk.js +0 -197
  294. package/dist/cli/approve/risk.js.map +0 -1
  295. package/dist/cli/approve/stdin-report.d.ts +0 -57
  296. package/dist/cli/approve/stdin-report.js +0 -145
  297. package/dist/cli/approve/stdin-report.js.map +0 -1
  298. package/dist/cli/approve/understanding.d.ts +0 -410
  299. package/dist/cli/approve/understanding.js +0 -996
  300. package/dist/cli/approve/understanding.js.map +0 -1
  301. package/dist/cli/audit.d.ts +0 -80
  302. package/dist/cli/audit.js +0 -252
  303. package/dist/cli/audit.js.map +0 -1
  304. package/dist/cli/delegate/index.d.ts +0 -76
  305. package/dist/cli/delegate/index.js +0 -444
  306. package/dist/cli/delegate/index.js.map +0 -1
  307. package/dist/cli/delegate/register.js +0 -90
  308. package/dist/cli/delegate/register.js.map +0 -1
  309. package/dist/cli/doctor/auto-approve-mode.d.ts +0 -37
  310. package/dist/cli/doctor/auto-approve-mode.js +0 -80
  311. package/dist/cli/doctor/auto-approve-mode.js.map +0 -1
  312. package/dist/cli/doctor/bypass-without-auto-approve.d.ts +0 -38
  313. package/dist/cli/doctor/bypass-without-auto-approve.js +0 -95
  314. package/dist/cli/doctor/bypass-without-auto-approve.js.map +0 -1
  315. package/dist/cli/doctor/codex-config-drift.d.ts +0 -28
  316. package/dist/cli/doctor/codex-config-drift.js +0 -240
  317. package/dist/cli/doctor/codex-config-drift.js.map +0 -1
  318. package/dist/cli/doctor/expire-on-tool-match.d.ts +0 -15
  319. package/dist/cli/doctor/expire-on-tool-match.js +0 -58
  320. package/dist/cli/doctor/expire-on-tool-match.js.map +0 -1
  321. package/dist/cli/doctor/rogue-ledger.d.ts +0 -53
  322. package/dist/cli/doctor/rogue-ledger.js +0 -153
  323. package/dist/cli/doctor/rogue-ledger.js.map +0 -1
  324. package/dist/cli/doctor/session-start-preflight-setup-version.d.ts +0 -83
  325. package/dist/cli/doctor/session-start-preflight-setup-version.js +0 -114
  326. package/dist/cli/doctor/session-start-preflight-setup-version.js.map +0 -1
  327. package/dist/cli/doctor/settings-drift.d.ts +0 -25
  328. package/dist/cli/doctor/settings-drift.js +0 -213
  329. package/dist/cli/doctor/settings-drift.js.map +0 -1
  330. package/dist/cli/doctor/toolchain-parity.d.ts +0 -63
  331. package/dist/cli/doctor/toolchain-parity.js +0 -154
  332. package/dist/cli/doctor/toolchain-parity.js.map +0 -1
  333. package/dist/cli/doctor/ug-auto-approvals.d.ts +0 -40
  334. package/dist/cli/doctor/ug-auto-approvals.js +0 -91
  335. package/dist/cli/doctor/ug-auto-approvals.js.map +0 -1
  336. package/dist/cli/doctor/ug-delegations.d.ts +0 -26
  337. package/dist/cli/doctor/ug-delegations.js +0 -121
  338. package/dist/cli/doctor/ug-delegations.js.map +0 -1
  339. package/dist/cli/doctor/ug-inflight.d.ts +0 -35
  340. package/dist/cli/doctor/ug-inflight.js +0 -57
  341. package/dist/cli/doctor/ug-inflight.js.map +0 -1
  342. package/dist/cli/doctor/understanding-mode-env.d.ts +0 -51
  343. package/dist/cli/doctor/understanding-mode-env.js +0 -98
  344. package/dist/cli/doctor/understanding-mode-env.js.map +0 -1
  345. package/dist/cli/dry-run.d.ts +0 -58
  346. package/dist/cli/dry-run.js +0 -283
  347. package/dist/cli/dry-run.js.map +0 -1
  348. package/dist/cli/enriched-event.d.ts +0 -35
  349. package/dist/cli/enriched-event.js +0 -60
  350. package/dist/cli/enriched-event.js.map +0 -1
  351. package/dist/cli/event-input.d.ts +0 -28
  352. package/dist/cli/event-input.js +0 -73
  353. package/dist/cli/event-input.js.map +0 -1
  354. package/dist/cli/explain-action.d.ts +0 -25
  355. package/dist/cli/explain-action.js +0 -57
  356. package/dist/cli/explain-action.js.map +0 -1
  357. package/dist/cli/explain-policy.d.ts +0 -147
  358. package/dist/cli/explain-policy.js +0 -248
  359. package/dist/cli/explain-policy.js.map +0 -1
  360. package/dist/cli/explain.d.ts +0 -31
  361. package/dist/cli/explain.js +0 -159
  362. package/dist/cli/explain.js.map +0 -1
  363. package/dist/cli/gc/index.d.ts +0 -63
  364. package/dist/cli/gc/index.js +0 -566
  365. package/dist/cli/gc/index.js.map +0 -1
  366. package/dist/cli/pack/approve-escape.d.ts +0 -19
  367. package/dist/cli/pack/approve-escape.js +0 -190
  368. package/dist/cli/pack/approve-escape.js.map +0 -1
  369. package/dist/cli/pack/auto-approve-path.d.ts +0 -146
  370. package/dist/cli/pack/auto-approve-path.js +0 -462
  371. package/dist/cli/pack/auto-approve-path.js.map +0 -1
  372. package/dist/cli/pack/hook-codex-post-tool-use.d.ts +0 -25
  373. package/dist/cli/pack/hook-codex-post-tool-use.js +0 -160
  374. package/dist/cli/pack/hook-codex-post-tool-use.js.map +0 -1
  375. package/dist/cli/pack/hook-codex-pre-tool-use.d.ts +0 -48
  376. package/dist/cli/pack/hook-codex-pre-tool-use.js +0 -474
  377. package/dist/cli/pack/hook-codex-pre-tool-use.js.map +0 -1
  378. package/dist/cli/pack/hook-codex-stop.d.ts +0 -35
  379. package/dist/cli/pack/hook-codex-stop.js +0 -329
  380. package/dist/cli/pack/hook-codex-stop.js.map +0 -1
  381. package/dist/cli/pack/hook-codex-user-prompt-submit.d.ts +0 -24
  382. package/dist/cli/pack/hook-codex-user-prompt-submit.js +0 -93
  383. package/dist/cli/pack/hook-codex-user-prompt-submit.js.map +0 -1
  384. package/dist/cli/pack/hook-post-merge-gate-record.d.ts +0 -37
  385. package/dist/cli/pack/hook-post-merge-gate-record.js +0 -190
  386. package/dist/cli/pack/hook-post-merge-gate-record.js.map +0 -1
  387. package/dist/cli/pack/hook-post-merge-gate.d.ts +0 -34
  388. package/dist/cli/pack/hook-post-merge-gate.js +0 -277
  389. package/dist/cli/pack/hook-post-merge-gate.js.map +0 -1
  390. package/dist/cli/pack/hook-post-tool-use.d.ts +0 -45
  391. package/dist/cli/pack/hook-post-tool-use.js +0 -137
  392. package/dist/cli/pack/hook-post-tool-use.js.map +0 -1
  393. package/dist/cli/pack/hook-pre-tool-use.d.ts +0 -92
  394. package/dist/cli/pack/hook-pre-tool-use.js +0 -1328
  395. package/dist/cli/pack/hook-pre-tool-use.js.map +0 -1
  396. package/dist/cli/pack/hook-runtime-reality.d.ts +0 -63
  397. package/dist/cli/pack/hook-runtime-reality.js +0 -210
  398. package/dist/cli/pack/hook-runtime-reality.js.map +0 -1
  399. package/dist/cli/pack/hook-solution-acceptance-writeguard.d.ts +0 -32
  400. package/dist/cli/pack/hook-solution-acceptance-writeguard.js +0 -438
  401. package/dist/cli/pack/hook-solution-acceptance-writeguard.js.map +0 -1
  402. package/dist/cli/pack/hook-solution-acceptance.d.ts +0 -157
  403. package/dist/cli/pack/hook-solution-acceptance.js +0 -530
  404. package/dist/cli/pack/hook-solution-acceptance.js.map +0 -1
  405. package/dist/cli/pack/hook-stay-in-scope.d.ts +0 -37
  406. package/dist/cli/pack/hook-stay-in-scope.js +0 -128
  407. package/dist/cli/pack/hook-stay-in-scope.js.map +0 -1
  408. package/dist/cli/pack/hook-subagent-start.d.ts +0 -23
  409. package/dist/cli/pack/hook-subagent-start.js +0 -88
  410. package/dist/cli/pack/hook-subagent-start.js.map +0 -1
  411. package/dist/cli/pack/hook-subagent-stop.d.ts +0 -19
  412. package/dist/cli/pack/hook-subagent-stop.js +0 -41
  413. package/dist/cli/pack/hook-subagent-stop.js.map +0 -1
  414. package/dist/cli/pack/hook-track-active-claim.d.ts +0 -27
  415. package/dist/cli/pack/hook-track-active-claim.js +0 -275
  416. package/dist/cli/pack/hook-track-active-claim.js.map +0 -1
  417. package/dist/cli/pack/transcript-report-scan.d.ts +0 -71
  418. package/dist/cli/pack/transcript-report-scan.js +0 -359
  419. package/dist/cli/pack/transcript-report-scan.js.map +0 -1
  420. package/dist/cli/pack/understanding-report-schema-hint.d.ts +0 -26
  421. package/dist/cli/pack/understanding-report-schema-hint.js +0 -120
  422. package/dist/cli/pack/understanding-report-schema-hint.js.map +0 -1
  423. package/dist/cli/pack/upgrade.d.ts +0 -32
  424. package/dist/cli/pack/upgrade.js +0 -273
  425. package/dist/cli/pack/upgrade.js.map +0 -1
  426. package/dist/cli/pause/index.d.ts +0 -113
  427. package/dist/cli/pause/index.js +0 -251
  428. package/dist/cli/pause/index.js.map +0 -1
  429. package/dist/cli/pause-check.d.ts +0 -22
  430. package/dist/cli/pause-check.js +0 -54
  431. package/dist/cli/pause-check.js.map +0 -1
  432. package/dist/cli/policy/intercept.d.ts +0 -233
  433. package/dist/cli/policy/intercept.js +0 -1022
  434. package/dist/cli/policy/intercept.js.map +0 -1
  435. package/dist/cli/policy/risk-envelope-enrichment.d.ts +0 -40
  436. package/dist/cli/policy/risk-envelope-enrichment.js +0 -110
  437. package/dist/cli/policy/risk-envelope-enrichment.js.map +0 -1
  438. package/dist/cli/record/index.d.ts +0 -81
  439. package/dist/cli/record/index.js +0 -348
  440. package/dist/cli/record/index.js.map +0 -1
  441. package/dist/cli/register-audit-group.js +0 -91
  442. package/dist/cli/register-audit-group.js.map +0 -1
  443. package/dist/cli/resolve-env.d.ts +0 -32
  444. package/dist/cli/resolve-env.js +0 -46
  445. package/dist/cli/resolve-env.js.map +0 -1
  446. package/dist/cli/session-export/index.d.ts +0 -46
  447. package/dist/cli/session-export/index.js +0 -169
  448. package/dist/cli/session-export/index.js.map +0 -1
  449. package/dist/cli/session-export/redact.d.ts +0 -22
  450. package/dist/cli/session-export/redact.js +0 -47
  451. package/dist/cli/session-export/redact.js.map +0 -1
  452. package/dist/cli/session-export/transcript.d.ts +0 -24
  453. package/dist/cli/session-export/transcript.js +0 -164
  454. package/dist/cli/session-export/transcript.js.map +0 -1
  455. package/dist/cli/session-start/branch-check.d.ts +0 -18
  456. package/dist/cli/session-start/branch-check.js +0 -140
  457. package/dist/cli/session-start/branch-check.js.map +0 -1
  458. package/dist/cli/session-start/index.d.ts +0 -121
  459. package/dist/cli/session-start/index.js +0 -591
  460. package/dist/cli/session-start/index.js.map +0 -1
  461. package/dist/cli/session-start/shared-options.d.ts +0 -103
  462. package/dist/cli/session-start/shared-options.js +0 -107
  463. package/dist/cli/session-start/shared-options.js.map +0 -1
  464. package/dist/cli/session-start/stale-base-check.d.ts +0 -46
  465. package/dist/cli/session-start/stale-base-check.js +0 -352
  466. package/dist/cli/session-start/stale-base-check.js.map +0 -1
  467. package/dist/cli/session-start/toolchain-parity.d.ts +0 -267
  468. package/dist/cli/session-start/toolchain-parity.js +0 -797
  469. package/dist/cli/session-start/toolchain-parity.js.map +0 -1
  470. package/dist/cli/smoke/assertions.d.ts +0 -46
  471. package/dist/cli/smoke/assertions.js +0 -170
  472. package/dist/cli/smoke/assertions.js.map +0 -1
  473. package/dist/cli/smoke/index.d.ts +0 -76
  474. package/dist/cli/smoke/index.js +0 -245
  475. package/dist/cli/smoke/index.js.map +0 -1
  476. package/dist/cli/smoke/runner.d.ts +0 -55
  477. package/dist/cli/smoke/runner.js +0 -134
  478. package/dist/cli/smoke/runner.js.map +0 -1
  479. package/dist/cli/smoke/stream-parser.d.ts +0 -65
  480. package/dist/cli/smoke/stream-parser.js +0 -115
  481. package/dist/cli/smoke/stream-parser.js.map +0 -1
  482. package/dist/cli/test-risk.d.ts +0 -27
  483. package/dist/cli/test-risk.js +0 -38
  484. package/dist/cli/test-risk.js.map +0 -1
  485. package/dist/io/display-path.d.ts +0 -11
  486. package/dist/io/display-path.js +0 -29
  487. package/dist/io/display-path.js.map +0 -1
  488. package/dist/io/duration.d.ts +0 -5
  489. package/dist/io/duration.js +0 -50
  490. package/dist/io/duration.js.map +0 -1
  491. package/dist/io/extract.d.ts +0 -79
  492. package/dist/io/extract.js +0 -226
  493. package/dist/io/extract.js.map +0 -1
  494. package/dist/io/ledger-record.d.ts +0 -83
  495. package/dist/io/ledger-record.js +0 -301
  496. package/dist/io/ledger-record.js.map +0 -1
  497. package/dist/io/read-json-dir-entries.d.ts +0 -36
  498. package/dist/io/read-json-dir-entries.js +0 -48
  499. package/dist/io/read-json-dir-entries.js.map +0 -1
  500. package/dist/io/safe-json-parse.d.ts +0 -5
  501. package/dist/io/safe-json-parse.js +0 -21
  502. package/dist/io/safe-json-parse.js.map +0 -1
  503. package/dist/policies/index.d.ts +0 -5
  504. package/dist/policies/index.js +0 -6
  505. package/dist/policies/index.js.map +0 -1
  506. package/dist/policies/ledger-client.d.ts +0 -113
  507. package/dist/policies/ledger-client.js +0 -500
  508. package/dist/policies/ledger-client.js.map +0 -1
  509. package/dist/policies/producers.d.ts +0 -12
  510. package/dist/policies/producers.js +0 -61
  511. package/dist/policies/producers.js.map +0 -1
  512. package/dist/policies/requires.d.ts +0 -75
  513. package/dist/policies/requires.js +0 -240
  514. package/dist/policies/requires.js.map +0 -1
  515. package/dist/policies/timestamp.d.ts +0 -14
  516. package/dist/policies/timestamp.js +0 -36
  517. package/dist/policies/timestamp.js.map +0 -1
  518. package/dist/policy-packs/builtin/permission-profiles.d.ts +0 -11
  519. package/dist/policy-packs/builtin/permission-profiles.js +0 -74
  520. package/dist/policy-packs/builtin/permission-profiles.js.map +0 -1
  521. package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +0 -286
  522. package/dist/policy-packs/builtin/post-merge-gate-runtime.js +0 -397
  523. package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +0 -1
  524. package/dist/policy-packs/builtin/post-merge-gate.d.ts +0 -56
  525. package/dist/policy-packs/builtin/post-merge-gate.js +0 -347
  526. package/dist/policy-packs/builtin/post-merge-gate.js.map +0 -1
  527. package/dist/policy-packs/builtin/solution-acceptance-reconnect.d.ts +0 -50
  528. package/dist/policy-packs/builtin/solution-acceptance-reconnect.js +0 -151
  529. package/dist/policy-packs/builtin/solution-acceptance-reconnect.js.map +0 -1
  530. package/dist/policy-packs/builtin/solution-acceptance-runtime.d.ts +0 -323
  531. package/dist/policy-packs/builtin/solution-acceptance-runtime.js +0 -672
  532. package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +0 -1
  533. package/dist/policy-packs/builtin/solution-acceptance.d.ts +0 -45
  534. package/dist/policy-packs/builtin/solution-acceptance.js +0 -226
  535. package/dist/policy-packs/builtin/solution-acceptance.js.map +0 -1
  536. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.d.ts +0 -25
  537. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js +0 -94
  538. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js.map +0 -1
  539. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.d.ts +0 -35
  540. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js +0 -86
  541. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js.map +0 -1
  542. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.d.ts +0 -210
  543. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js +0 -361
  544. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js.map +0 -1
  545. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +0 -304
  546. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +0 -734
  547. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +0 -1
  548. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.d.ts +0 -36
  549. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js +0 -73
  550. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js.map +0 -1
  551. package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +0 -19
  552. package/dist/policy-packs/builtin/understanding-before-execution/index.js +0 -83
  553. package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +0 -1
  554. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.d.ts +0 -135
  555. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js +0 -643
  556. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js.map +0 -1
  557. package/dist/policy-packs/builtin/understanding-before-execution/ledger.d.ts +0 -25
  558. package/dist/policy-packs/builtin/understanding-before-execution/ledger.js +0 -56
  559. package/dist/policy-packs/builtin/understanding-before-execution/ledger.js.map +0 -1
  560. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.d.ts +0 -20
  561. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js +0 -106
  562. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js.map +0 -1
  563. package/dist/policy-packs/builtin/understanding-before-execution/markers.d.ts +0 -126
  564. package/dist/policy-packs/builtin/understanding-before-execution/markers.js +0 -245
  565. package/dist/policy-packs/builtin/understanding-before-execution/markers.js.map +0 -1
  566. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.d.ts +0 -29
  567. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js +0 -82
  568. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js.map +0 -1
  569. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.d.ts +0 -71
  570. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js +0 -175
  571. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js.map +0 -1
  572. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.d.ts +0 -625
  573. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js +0 -1076
  574. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js.map +0 -1
  575. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.d.ts +0 -128
  576. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js +0 -213
  577. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js.map +0 -1
  578. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.d.ts +0 -129
  579. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js +0 -166
  580. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js.map +0 -1
  581. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.d.ts +0 -164
  582. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js +0 -275
  583. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js.map +0 -1
  584. package/dist/policy-packs/builtin/understanding-before-execution-runtime.d.ts +0 -1
  585. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js +0 -10
  586. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js.map +0 -1
  587. package/dist/policy-packs/builtin/understanding-before-execution.d.ts +0 -526
  588. package/dist/policy-packs/builtin/understanding-before-execution.js +0 -1078
  589. package/dist/policy-packs/builtin/understanding-before-execution.js.map +0 -1
  590. package/dist/policy-packs/permission-translator.d.ts +0 -9
  591. package/dist/policy-packs/permission-translator.js +0 -76
  592. package/dist/policy-packs/permission-translator.js.map +0 -1
  593. package/dist/runtime/action-envelope.d.ts +0 -64
  594. package/dist/runtime/action-envelope.js +0 -46
  595. package/dist/runtime/action-envelope.js.map +0 -1
  596. package/dist/runtime/approval-signing.d.ts +0 -111
  597. package/dist/runtime/approval-signing.js +0 -384
  598. package/dist/runtime/approval-signing.js.map +0 -1
  599. package/dist/runtime/bash-match-facts.d.ts +0 -60
  600. package/dist/runtime/bash-match-facts.js +0 -196
  601. package/dist/runtime/bash-match-facts.js.map +0 -1
  602. package/dist/runtime/bash-match-registry.d.ts +0 -112
  603. package/dist/runtime/bash-match-registry.js +0 -406
  604. package/dist/runtime/bash-match-registry.js.map +0 -1
  605. package/dist/runtime/bash-prefix-parse.d.ts +0 -31
  606. package/dist/runtime/bash-prefix-parse.js +0 -576
  607. package/dist/runtime/bash-prefix-parse.js.map +0 -1
  608. package/dist/runtime/command-normalize.d.ts +0 -658
  609. package/dist/runtime/command-normalize.js +0 -2410
  610. package/dist/runtime/command-normalize.js.map +0 -1
  611. package/dist/runtime/deletion-target-resolve.d.ts +0 -28
  612. package/dist/runtime/deletion-target-resolve.js +0 -1078
  613. package/dist/runtime/deletion-target-resolve.js.map +0 -1
  614. package/dist/runtime/destructive-shell-floor.d.ts +0 -19
  615. package/dist/runtime/destructive-shell-floor.js +0 -611
  616. package/dist/runtime/destructive-shell-floor.js.map +0 -1
  617. package/dist/runtime/environment-resolver.d.ts +0 -36
  618. package/dist/runtime/environment-resolver.js +0 -138
  619. package/dist/runtime/environment-resolver.js.map +0 -1
  620. package/dist/runtime/git-context.d.ts +0 -201
  621. package/dist/runtime/git-context.js +0 -422
  622. package/dist/runtime/git-context.js.map +0 -1
  623. package/dist/runtime/index.d.ts +0 -12
  624. package/dist/runtime/index.js +0 -13
  625. package/dist/runtime/index.js.map +0 -1
  626. package/dist/runtime/intercept.d.ts +0 -623
  627. package/dist/runtime/intercept.js +0 -1384
  628. package/dist/runtime/intercept.js.map +0 -1
  629. package/dist/runtime/kube-context.d.ts +0 -16
  630. package/dist/runtime/kube-context.js +0 -63
  631. package/dist/runtime/kube-context.js.map +0 -1
  632. package/dist/runtime/kubectl-target-parse.d.ts +0 -31
  633. package/dist/runtime/kubectl-target-parse.js +0 -249
  634. package/dist/runtime/kubectl-target-parse.js.map +0 -1
  635. package/dist/runtime/ledger-add.d.ts +0 -16
  636. package/dist/runtime/ledger-add.js +0 -150
  637. package/dist/runtime/ledger-add.js.map +0 -1
  638. package/dist/runtime/ledger-writer.d.ts +0 -27
  639. package/dist/runtime/ledger-writer.js +0 -46
  640. package/dist/runtime/ledger-writer.js.map +0 -1
  641. package/dist/runtime/pause-sentinel.d.ts +0 -60
  642. package/dist/runtime/pause-sentinel.js +0 -156
  643. package/dist/runtime/pause-sentinel.js.map +0 -1
  644. package/dist/runtime/pending-approval.d.ts +0 -23
  645. package/dist/runtime/pending-approval.js +0 -67
  646. package/dist/runtime/pending-approval.js.map +0 -1
  647. package/dist/runtime/read-only-bash.d.ts +0 -141
  648. package/dist/runtime/read-only-bash.js +0 -2204
  649. package/dist/runtime/read-only-bash.js.map +0 -1
  650. package/dist/runtime/recovery-git-commit.d.ts +0 -22
  651. package/dist/runtime/recovery-git-commit.js +0 -284
  652. package/dist/runtime/recovery-git-commit.js.map +0 -1
  653. package/dist/runtime/reject-malformed-session-id.d.ts +0 -8
  654. package/dist/runtime/reject-malformed-session-id.js +0 -16
  655. package/dist/runtime/reject-malformed-session-id.js.map +0 -1
  656. package/dist/runtime/risk-classifier.d.ts +0 -38
  657. package/dist/runtime/risk-classifier.js +0 -311
  658. package/dist/runtime/risk-classifier.js.map +0 -1
  659. package/dist/runtime/session-id.d.ts +0 -113
  660. package/dist/runtime/session-id.js +0 -193
  661. package/dist/runtime/session-id.js.map +0 -1
  662. package/dist/runtime/shell-word.d.ts +0 -62
  663. package/dist/runtime/shell-word.js +0 -410
  664. package/dist/runtime/shell-word.js.map +0 -1
  665. package/dist/runtime/task-providers/agent-tasks.d.ts +0 -105
  666. package/dist/runtime/task-providers/agent-tasks.js +0 -247
  667. package/dist/runtime/task-providers/agent-tasks.js.map +0 -1
  668. package/dist/runtime/when-eval.d.ts +0 -62
  669. package/dist/runtime/when-eval.js +0 -212
  670. package/dist/runtime/when-eval.js.map +0 -1
  671. package/dist/runtime/workflow-policies.d.ts +0 -207
  672. package/dist/runtime/workflow-policies.js +0 -596
  673. package/dist/runtime/workflow-policies.js.map +0 -1
  674. package/dist/schema/audit.d.ts +0 -71
  675. package/dist/schema/audit.js +0 -32
  676. package/dist/schema/audit.js.map +0 -1
  677. package/dist/schema/doctor.d.ts +0 -25
  678. package/dist/schema/doctor.js +0 -23
  679. package/dist/schema/doctor.js.map +0 -1
  680. package/dist/schema/environments.d.ts +0 -215
  681. package/dist/schema/environments.js +0 -101
  682. package/dist/schema/environments.js.map +0 -1
  683. package/dist/schema/extract.d.ts +0 -9
  684. package/dist/schema/extract.js +0 -86
  685. package/dist/schema/extract.js.map +0 -1
  686. package/dist/schema/permission-profiles.d.ts +0 -2292
  687. package/dist/schema/permission-profiles.js +0 -60
  688. package/dist/schema/permission-profiles.js.map +0 -1
  689. package/dist/schema/policies.d.ts +0 -974
  690. package/dist/schema/policies.js +0 -298
  691. package/dist/schema/policies.js.map +0 -1
  692. package/dist/schema/requires.d.ts +0 -131
  693. package/dist/schema/requires.js +0 -88
  694. package/dist/schema/requires.js.map +0 -1
  695. package/dist/schema/risk.d.ts +0 -144
  696. package/dist/schema/risk.js +0 -194
  697. package/dist/schema/risk.js.map +0 -1
  698. package/dist/schema/session-start-preflight.d.ts +0 -10
  699. package/dist/schema/session-start-preflight.js +0 -106
  700. package/dist/schema/session-start-preflight.js.map +0 -1
  701. package/dist/schema/stale-base-check.d.ts +0 -18
  702. package/dist/schema/stale-base-check.js +0 -37
  703. package/dist/schema/stale-base-check.js.map +0 -1
  704. package/dist/schema/toolchain-parity.d.ts +0 -21
  705. package/dist/schema/toolchain-parity.js +0 -48
  706. package/dist/schema/toolchain-parity.js.map +0 -1
  707. package/dist/schema/workflows.d.ts +0 -519
  708. package/dist/schema/workflows.js +0 -81
  709. package/dist/schema/workflows.js.map +0 -1
  710. package/scripts/runtime-reality-docker-probe.mjs +0 -71
@@ -1,438 +0,0 @@
1
- // `harness pack hook solution-acceptance-writeguard` — PreToolUse
2
- // anti-forgery write-guard for the `solution-acceptance` policy pack.
3
- //
4
- // This is the load-bearing closure of the gate. The completion-gate alone
5
- // is forgeable: relocating the verdict dir does NOT help because
6
- // understanding-gate allows all Bash once approved, so an approved agent
7
- // could `echo '{...ready:true}' > <verdict-dir>/<id>.json` and walk the gate.
8
- // This hook restores the invariant that the ONLY writer of the verdict dir
9
- // is the producer (the operator-launched grounding-mcp MCP server, which
10
- // runs real preflight and does not flow through the agent's gated tools).
11
- //
12
- // It denies, on the agent's tool surface:
13
- // - Write / Edit / MultiEdit / NotebookEdit whose target file resolves
14
- // inside the verdict dir.
15
- // - Codex `apply_patch` whose patch body references the verdict dir.
16
- // - Bash that is NOT provably read-only AND references the verdict dir
17
- // (covers `echo >`, `$SOLUTION_VERDICT_DIR` spellings, `tee`, `mv`/`cp`/
18
- // `ln`/`install`, `python3 -c '...path...'`, and `chmod`/`chattr` that
19
- // would loosen perms) — or whose shell cwd is inside the dir.
20
- // Merely NAMING one of the pack's own source files (its doc, hook,
21
- // runtime module or tests) is not a reference: `bashReferencesVerdictDir`
22
- // scrubs the pack name out of plain words before its glob/brace
23
- // leaf-word scan (task e8c9edaf; skipped when the command carries
24
- // runtime-construction syntax), so editing those files from the shell
25
- // is allowed while a command that also reaches the dir stays blocked.
26
- // - Bash `cd` whose RESOLVED target is inside the verdict dir. `cd` itself
27
- // is provably read-only (task fb67b402 added it to the shared
28
- // read-only-bash floor: it mutates only the invoking shell's own cwd,
29
- // never the filesystem), so it no longer reaches the "not read-only"
30
- // checks below. But stepping into the dir is the setup half of a
31
- // two-call forge (`cd <dir>` then, in a LATER un-chained Bash call,
32
- // a bare relative write): this pre-check keeps that first step blocked
33
- // as defense-in-depth, ahead of (not instead of) the cwd-inside check
34
- // below, which is what actually closes the later relative-write call
35
- // once cwd has genuinely moved. A `cd` target that `path.resolve`
36
- // cannot literally evaluate does NOT get `cd`'s read-only fast path
37
- // either: it falls through to the same reference-based checks as any
38
- // other non-read-only Bash. `CD_TARGET_UNRESOLVABLE_CHARS` documents
39
- // exactly WHICH expansions this enumerates (quoting, `$`/env-var,
40
- // `~`, glob, and `{...}` brace expansion) — that list is what this
41
- // check catches, not a claim that every shell-expansion class is
42
- // closed. Known-open residual, pre-existing (not introduced by this
43
- // branch, since it applies to `bashReferencesVerdictDir`'s textual
44
- // match on ANY Bash command, not just `cd`): a backslash-escaped
45
- // spelling of the leaf, e.g. `cd <parent>/solution\-verdicts`, still
46
- // navigates into the dir under bash (verified against bash 3.2.57)
47
- // while `bashReferencesVerdictDir` returns false — the backslash
48
- // breaks the literal-leaf substring match and no metacharacter here
49
- // triggers the glob/brace fallback either. Closing it needs
50
- // shell-unescaping in the textual check itself, which is more than
51
- // this task absorbs; do not assume the class is closed.
52
- // A SECOND residual of the same class, and on a macOS operator
53
- // machine the more reachable of the two: case variance.
54
- // `cd <parent>/SOLUTION-VERDICTS` navigates into the dir on a
55
- // case-insensitive APFS volume, but `isInsideDir` compares with a
56
- // case-sensitive `path.relative` and the textual check uses a
57
- // case-sensitive `includes`, so both return false. Also allowed:
58
- // a trailing backslash, `cd <DIR>\`. Both pre-existing; closing
59
- // them needs case-folding in the textual check.
60
- //
61
- // Pure reads (`cat <dir>/x.json`) are allowed so the guard is not over-broad.
62
- // So is a single-`|` pipeline of pure reads (`grep -n 'a*b' solution-x.md |
63
- // head`; task 95a3712d): every stage must itself pass the shared read-only
64
- // classifier (`isReadOnlyBashPipeline`, reused unchanged), every `|` must be
65
- // a real stage boundary (none quoted or escaped, see
66
- // `pipeBoundariesAreRealStageBoundaries`) and no stage may be a `cd`. This
67
- // deliberately departs from the header of `src/runtime/read-only-bash.ts`,
68
- // which says this guard should treat no chaining as read-only: that held while
69
- // the pipeline arm did not exist, and it still holds for `;`, `&&`, `||`,
70
- // `&`, `|&`, redirects, substitution and subshells, which stay on the old
71
- // route. The glob/brace leaf-word heuristic in `bashReferencesVerdictDir` is
72
- // unchanged: a non-read-only command still trips it.
73
- //
74
- // No manifest is consulted: the decision is a pure target-vs-dir check, so
75
- // the guard cannot be broken by a manifest issue and never blocks a write
76
- // that does not target the verdict dir. The hook is only wired into settings
77
- // when the pack is enabled, so a disabled pack never invokes it. It yields to
78
- // `harness pause` like every other gate.
79
- //
80
- // Honest residual (operator decision, 2026-05-30): v1 closes the ENUMERATED
81
- // write paths above. A path constructed at runtime inside an interpreter
82
- // with no textual reference is NOT caught; marker signing (a cross-repo
83
- // follow-up) closes content-authenticity against an unguarded write
84
- // primitive. The `cd`-target check added later (task fb67b402) has its own
85
- // enumerated, not exhaustive, expansion list — see the bullet above and
86
- // `CD_TARGET_UNRESOLVABLE_CHARS`'s docstring for the backslash-escaping
87
- // residual specifically.
88
- import { bashReferencesVerdictDir, isInsideDir, PACK_NAME, verdictDir as resolveVerdictDir, } from "../../policy-packs/builtin/solution-acceptance-runtime.js";
89
- import { isReadOnlyBashCommand, isReadOnlyBashPipeline } from "../../runtime/read-only-bash.js";
90
- import { decodeShellWord } from "../../runtime/shell-word.js";
91
- import { checkHookPause, readStdin, runGateWithStdinRefusal, stdoutBlockRefusal, } from "./hook-bootstrap.js";
92
- /** Single-file target for path-mutating tools, or null when not applicable. */
93
- function pathToolTarget(toolName, toolInput) {
94
- if (typeof toolInput !== "object" || toolInput === null)
95
- return null;
96
- const input = toolInput;
97
- switch (toolName) {
98
- case "Write":
99
- case "Edit":
100
- case "MultiEdit": {
101
- const fp = input["file_path"];
102
- return typeof fp === "string" && fp.length > 0 ? fp : null;
103
- }
104
- case "NotebookEdit": {
105
- const np = input["notebook_path"];
106
- return typeof np === "string" && np.length > 0 ? np : null;
107
- }
108
- default:
109
- return null;
110
- }
111
- }
112
- function bashCommandOf(toolInput) {
113
- if (typeof toolInput !== "object" || toolInput === null)
114
- return "";
115
- const cmd = toolInput["command"];
116
- return typeof cmd === "string" ? cmd : "";
117
- }
118
- /**
119
- * Extract `cd`'s destination argument from a Bash command string, or null
120
- * when the command is not a `cd` invocation or has no statically resolvable
121
- * destination. Whitespace-tokenized, same as `read-only-bash.ts`'s own
122
- * classifier (this hook does not shell-parse either).
123
- *
124
- * Deliberately narrow:
125
- * - Only fires when the FIRST token is exactly `cd`. `env cd x` or a
126
- * chained `foo && cd x` do not match here (tokens[0] would be `env` /
127
- * `foo`); those are unaffected by this pre-check and are still governed
128
- * by the existing not-read-only + `bashReferencesVerdictDir` checks
129
- * below, which already close the `cd <parent> && write <relative>`
130
- * descent via the leaf-segment match.
131
- * - `cd`'s own flags (`-L`, `-P`, `-e`, `-@`, and combinations) are
132
- * skipped to find the first positional path argument.
133
- * - `cd -` (switch to `$OLDPWD`) and a bare `cd` (goes to `$HOME`) have no
134
- * destination this function can resolve without ambient shell state;
135
- * both return null (not flagged), the same conservative stance as the
136
- * rest of this module's enumerated-path checks.
137
- * - A single layer of surrounding quotes (`"..."` or `'...'`) is stripped
138
- * from the returned token before the caller does anything with it, so
139
- * `cd "<path>"` and `cd <path>` are treated identically (both the
140
- * resolved-path inside-dir check AND the unresolvable-chars check see
141
- * the same unquoted value). Without this, a quoted literal that merely
142
- * shares a text prefix with the verdict dir (`cd "<dir>-decoy"`) would
143
- * route to the textual leaf match and be wrongly blocked, while the
144
- * unquoted `cd <dir>-decoy` correctly passes via the resolved-path
145
- * check — spelling-dependent behavior for what is the same destination.
146
- */
147
- function cdTargetArgument(command) {
148
- const tokens = command.trim().split(/\s+/);
149
- if (tokens[0] !== "cd")
150
- return null;
151
- for (let i = 1; i < tokens.length; i += 1) {
152
- const t = tokens[i];
153
- if (t === undefined)
154
- break;
155
- if (t === "-")
156
- return null;
157
- if (t.startsWith("-"))
158
- continue;
159
- return stripSurroundingQuotes(t);
160
- }
161
- return null;
162
- }
163
- /**
164
- * Strip one layer of surrounding double or single quotes from `token`, or
165
- * return it unchanged if it is not fully wrapped in a matching pair. Does
166
- * NOT attempt any other shell-quoting semantics (no backslash-escape
167
- * handling, no nested-quote handling) — this is a narrow normalization so a
168
- * simple quoted literal reads the same as its unquoted form, not a shell
169
- * parser.
170
- */
171
- function stripSurroundingQuotes(token) {
172
- if (token.length >= 2 &&
173
- ((token.startsWith('"') && token.endsWith('"')) ||
174
- (token.startsWith("'") && token.endsWith("'")))) {
175
- return token.slice(1, -1);
176
- }
177
- return token;
178
- }
179
- /**
180
- * Characters/sequences that make a `cd` destination token something
181
- * `path.resolve` cannot literally evaluate: quoting (`"`, `'` — the residual
182
- * case after `stripSurroundingQuotes` has already removed a clean single
183
- * layer, e.g. an unbalanced or embedded quote), env-var expansion (`$`),
184
- * home-directory expansion (`~`), shell globbing (`*`, `?`, `[`), and brace
185
- * expansion (`{`, `}`, `,`). `path.resolve` treats the raw token as a
186
- * literal path segment, so `cd "$SOLUTION_VERDICT_DIR"`, `cd
187
- * ~/.../solution-verdicts`, or `cd <parent>/{solution-verdicts,x}` all
188
- * resolve to a nonsense path that is never "inside" the dir even though a
189
- * real shell would expand each of them TO (or, for the brace form, INTO)
190
- * the dir. A `cd` target containing any of these must therefore NOT take
191
- * the read-only fast path in `evaluateWriteGuard`: control must fall
192
- * through to the same `bashReferencesVerdictDir` text-reference check any
193
- * other non-read-only Bash command goes through, which DOES recognize
194
- * these spellings (the env-var token, the `agent-grounding/solution-verdicts`
195
- * tail, and — after the matching widening in
196
- * `solution-acceptance-runtime.ts`'s glob-metacharacter test — glob- and
197
- * brace-obscured leaf words).
198
- *
199
- * This list is enumerated, not exhaustive: it is exactly the expansion
200
- * classes this check has been reasoned about, not a claim that every way a
201
- * shell can rewrite a `cd` argument is covered. A known-open residual
202
- * (pre-existing, not introduced by this check) is backslash escaping — see
203
- * the module header's "Known-open residual" note.
204
- */
205
- const CD_TARGET_UNRESOLVABLE_CHARS = /[$~*?[{},"']/;
206
- /**
207
- * True when every `|` in `command` is a real stage boundary: outside any
208
- * quote, not backslash-escaped, and not inside an expansion or group the
209
- * shell reads as one word. `isReadOnlyBashPipeline` cuts the text at EVERY
210
- * `|` character without modelling the shell's grammar, so a `|` that is not
211
- * a stage boundary turns one command into fragments that are each classified
212
- * on their own: `find <dir> -name 'a|cat -x' -delete` splits into
213
- * `find <dir> -name 'a` and `cat -x' -delete`, both of which look read-only,
214
- * while the real command deletes. The same cut happens for
215
- * `${x//a|cat -x}`, `$[1|cat -x]` and an extglob `@(a|cat -x)`. This scan
216
- * refuses everything it cannot vouch for: a `|` inside quotes or escaped, an
217
- * unterminated quote, an unquoted `(` or `)` (extglob, subshell, arithmetic
218
- * command), and a `$` that is not followed by a plain variable-name
219
- * character (`${`, `$(`, `$[`, `$'`, `$"`, a lone `$`), outside quotes and
220
- * inside double quotes. A refused command keeps the old route through the
221
- * verdict-dir reference check. Deliberately a refuse-only filter in front of
222
- * the shared classifier, not a second pipeline definition; the cost is that
223
- * a read using `${VAR}` or a parenthesised group is not fast-pathed.
224
- */
225
- function pipeBoundariesAreRealStageBoundaries(command) {
226
- const isNameChar = (ch) => /^[A-Za-z0-9_]$/.test(ch);
227
- let quote = null;
228
- for (let i = 0; i < command.length; i += 1) {
229
- const c = command.charAt(i);
230
- if (quote === "'") {
231
- if (c === "|")
232
- return false;
233
- if (c === "'")
234
- quote = null;
235
- continue;
236
- }
237
- if (c === "$" && !isNameChar(command.charAt(i + 1)))
238
- return false;
239
- if (quote === '"') {
240
- if (c === "|")
241
- return false;
242
- if (c === "\\")
243
- i += 1;
244
- else if (c === '"')
245
- quote = null;
246
- continue;
247
- }
248
- if (c === "\\") {
249
- if (command.charAt(i + 1) === "|")
250
- return false;
251
- i += 1;
252
- }
253
- else if (c === "'" || c === '"') {
254
- quote = c;
255
- }
256
- else if (c === "(" || c === ")") {
257
- return false;
258
- }
259
- }
260
- return quote === null;
261
- }
262
- /**
263
- * True when some stage of the `|` pipeline is (or wraps) a `cd`. A pipeline
264
- * stage runs in a subshell, so a `cd` there cannot move the calling shell,
265
- * but the pre-checks above only look at a LEADING `cd`; a `cd` stage later in
266
- * the pipeline must not ride the read-only fast path either, so it falls
267
- * through to the verdict-dir reference check exactly as it did before. The
268
- * `command` and `env` runners are included because the shared classifier
269
- * recurses through them to the wrapped command. First tokens are compared
270
- * raw and decoded (`'cd'`), same raw-or-decoded shape as the classifier.
271
- */
272
- function pipelineHasCdStage(command) {
273
- return command.split("|").some((stage) => {
274
- const first = stage.trim().split(/\s+/)[0] ?? "";
275
- return [first, decodeShellWord(first)].some((t) => t === "cd" || t === "command" || t === "env");
276
- });
277
- }
278
- /**
279
- * The read-only fast path for a `|` pipeline: every stage is provably
280
- * read-only per the shared classifier, every `|` is a real stage boundary,
281
- * and no stage is a `cd`. A command without a `|` is classified exactly as
282
- * the strict single-command check already did, so it adds nothing here.
283
- */
284
- function isReadOnlyPipelineForWriteGuard(command) {
285
- return (pipeBoundariesAreRealStageBoundaries(command) &&
286
- !pipelineHasCdStage(command) &&
287
- isReadOnlyBashPipeline(command));
288
- }
289
- /**
290
- * Pure write-guard decision for a tool event. Exported for direct unit
291
- * testing of the full forge-attempt matrix without spinning up the CLI.
292
- */
293
- export function evaluateWriteGuard(toolName, toolInput, dir, cwd) {
294
- // Path-mutating tools: block iff the target resolves inside the dir.
295
- const target = pathToolTarget(toolName, toolInput);
296
- if (target !== null) {
297
- if (isInsideDir(target, dir, cwd)) {
298
- return {
299
- blocked: true,
300
- reason: `${toolName} target resolves inside the harness-protected solution-verdict dir (${dir}); the verdict marker may only be written by the grounding-mcp producer`,
301
- };
302
- }
303
- return { blocked: false, reason: `${toolName} target is outside the verdict dir` };
304
- }
305
- // Codex apply_patch: best-effort textual reference check on the patch body.
306
- if (toolName === "apply_patch") {
307
- const input = typeof toolInput === "object" && toolInput !== null
308
- ? toolInput
309
- : {};
310
- const body = typeof input["patch"] === "string"
311
- ? input["patch"]
312
- : typeof input["input"] === "string"
313
- ? input["input"]
314
- : JSON.stringify(toolInput ?? "");
315
- if (bashReferencesVerdictDir(body, dir)) {
316
- return {
317
- blocked: true,
318
- reason: `apply_patch references the harness-protected solution-verdict dir (${dir})`,
319
- };
320
- }
321
- return { blocked: false, reason: "apply_patch does not reference the verdict dir" };
322
- }
323
- // Bash: allow provable reads; block non-read-only commands that reference
324
- // the dir, or whose shell cwd is inside it.
325
- if (toolName === "Bash") {
326
- const command = bashCommandOf(toolInput);
327
- if (command === "")
328
- return { blocked: false, reason: "empty Bash command" };
329
- // Defense-in-depth, ahead of the read-only fast path below: `cd` itself
330
- // cannot write, but `cd`ing into the verdict dir is the setup half of a
331
- // two-call forge (see the module header). Only a RESOLVED-path check
332
- // (via the shared `isInsideDir`, not a substring match) so a sibling
333
- // that merely shares a text prefix with the dir (`solution-verdicts-decoy`,
334
- // or a parent directory of it) is not wrongly flagged.
335
- const cdTarget = cdTargetArgument(command);
336
- if (cdTarget !== null && isInsideDir(cdTarget, dir, cwd)) {
337
- return {
338
- blocked: true,
339
- reason: `cd targets the harness-protected solution-verdict dir (${dir}); stepping into it would set up a later un-chained relative write to forge the verdict marker`,
340
- };
341
- }
342
- // A `cd` target containing one of the enumerated unresolvable
343
- // expansions (see `CD_TARGET_UNRESOLVABLE_CHARS`'s docstring for the
344
- // exact list and its non-exhaustive scope) must not take `cd`'s
345
- // read-only fast path below: without this, `cd "$SOLUTION_VERDICT_DIR"`
346
- // etc. would be waved through by `isReadOnlyBashCommand` (true for ANY
347
- // `cd`, per the shared read-only-bash floor) before ever reaching the
348
- // reference check that recognizes these exact spellings.
349
- const cdTargetUnresolvable = cdTarget !== null && CD_TARGET_UNRESOLVABLE_CHARS.test(cdTarget);
350
- if (!cdTargetUnresolvable && isReadOnlyBashCommand(command)) {
351
- return { blocked: false, reason: "read-only Bash command" };
352
- }
353
- // A `|` pipeline whose every stage is read-only (task 95a3712d). Same
354
- // preconditions as the arm above: the cd checks have already run, and an
355
- // unresolvable `cd` target never takes a read-only fast path.
356
- if (!cdTargetUnresolvable && isReadOnlyPipelineForWriteGuard(command)) {
357
- return { blocked: false, reason: "read-only Bash pipeline" };
358
- }
359
- if (isInsideDir(".", dir, cwd)) {
360
- return {
361
- blocked: true,
362
- reason: `non-read-only Bash with a shell cwd inside the harness-protected solution-verdict dir (${dir})`,
363
- };
364
- }
365
- if (bashReferencesVerdictDir(command, dir)) {
366
- return {
367
- blocked: true,
368
- reason: `non-read-only Bash references the harness-protected solution-verdict dir (${dir}); the verdict marker may only be written by the grounding-mcp producer`,
369
- };
370
- }
371
- return { blocked: false, reason: "non-read-only Bash does not reference the verdict dir" };
372
- }
373
- return { blocked: false, reason: `${toolName} is not a guarded write surface` };
374
- }
375
- function blockJson(toolName, reason) {
376
- const text = `solution-acceptance write-guard: refusing ${toolName}. ${reason}.\n` +
377
- `The solution-acceptance verdict marker is derived by the producer from a ` +
378
- `real preflight run; hand-writing it would forge a green "done". ` +
379
- `Run \`mcp__grounding-mcp__solution_evaluate({ id: "<task-id>" })\` instead, ` +
380
- `which writes the marker for you.\n` +
381
- `Operator override: \`harness pause\`.`;
382
- return JSON.stringify({
383
- decision: "block",
384
- reason: text,
385
- hookSpecificOutput: {
386
- hookEventName: "PreToolUse",
387
- permissionDecision: "deny",
388
- permissionDecisionReason: text,
389
- },
390
- });
391
- }
392
- async function runPackHookSolutionAcceptanceWriteguardCliInner(opts = {}) {
393
- const stdin = opts.stdin ?? process.stdin;
394
- const stdout = opts.stdout ?? process.stdout;
395
- const stderr = opts.stderr ?? process.stderr;
396
- const note = (msg) => {
397
- stderr.write(`harness pack hook solution-acceptance-writeguard: ${msg}\n`);
398
- };
399
- const raw = await readStdin(stdin);
400
- let event = {};
401
- try {
402
- event = JSON.parse(raw.trim() || "{}");
403
- }
404
- catch {
405
- /* event stays {} -> not a guarded surface -> allow */
406
- }
407
- if (checkHookPause(`${PACK_NAME}-writeguard`, stderr, opts).paused) {
408
- const diagnostic = "harness paused; write-guard allowing without evaluating.";
409
- return { exitCode: 0, blocked: false, diagnostic };
410
- }
411
- const toolName = typeof event.tool_name === "string" ? event.tool_name : "(unknown)";
412
- const cwd = typeof opts.cwd === "string" && opts.cwd.length > 0
413
- ? opts.cwd
414
- : typeof event.cwd === "string" && event.cwd.length > 0
415
- ? event.cwd
416
- : process.cwd();
417
- const dir = opts.verdictDir ?? resolveVerdictDir();
418
- const decision = evaluateWriteGuard(toolName, event.tool_input, dir, cwd);
419
- if (!decision.blocked) {
420
- const diagnostic = `allow — ${decision.reason}`;
421
- note(diagnostic);
422
- return { exitCode: 0, blocked: false, diagnostic };
423
- }
424
- const diagnostic = `BLOCK — ${decision.reason}`;
425
- note(diagnostic);
426
- stdout.write(`${blockJson(toolName, decision.reason)}\n`);
427
- return { exitCode: 0, blocked: true, diagnostic };
428
- }
429
- /**
430
- * `harness pack hook solution-acceptance-writeguard`. A stdin read that times out is refused here
431
- * instead of being handed to the gate as an empty or truncated event it would
432
- * treat as malformed input (task 7dfdcaaf). The operator pause still wins;
433
- * every other input runs the gate unchanged.
434
- */
435
- export function runPackHookSolutionAcceptanceWriteguardCli(opts = {}) {
436
- return runGateWithStdinRefusal(opts, (stderr) => checkHookPause(`${PACK_NAME}-writeguard`, stderr, opts).paused, stdoutBlockRefusal("solution-acceptance-writeguard"), runPackHookSolutionAcceptanceWriteguardCliInner);
437
- }
438
- //# sourceMappingURL=hook-solution-acceptance-writeguard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-solution-acceptance-writeguard.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-solution-acceptance-writeguard.ts"],"names":[],"mappings":"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"}
@@ -1,157 +0,0 @@
1
- import { type VerdictReadOutcome } from "../../policy-packs/builtin/solution-acceptance-runtime.js";
2
- import { type LockCheckResult } from "../../io/lock.js";
3
- import { type Manifest } from "../../schema/index.js";
4
- import { type LoaderOptions } from "../loader.js";
5
- export interface PackHookSolutionAcceptanceOptions extends LoaderOptions {
6
- /** Defaults to process.stdin. */
7
- stdin?: NodeJS.ReadableStream;
8
- /** Defaults to process.stdout. */
9
- stdout?: NodeJS.WritableStream;
10
- /** Defaults to process.stderr. */
11
- stderr?: NodeJS.WritableStream;
12
- /** Override cwd resolution (test injection). */
13
- cwd?: string;
14
- /** Inject a manifest (test). */
15
- manifest?: Manifest;
16
- /** Override the harness.generated/ directory (test injection). */
17
- generatedDir?: string;
18
- /** Override the verdict directory (test injection; default = producer default). */
19
- verdictDir?: string;
20
- /** Override the active-claim resolution (test injection). */
21
- activeClaim?: string | null;
22
- /** Override process.env (test injection); defaults to process.env. */
23
- env?: NodeJS.ProcessEnv;
24
- }
25
- export interface PackHookSolutionAcceptanceResult {
26
- exitCode: number;
27
- blocked: boolean;
28
- diagnostic: string;
29
- }
30
- /**
31
- * Staleness window this hook applies when READING the attempt-lock anchor:
32
- * the producer's own DOCUMENTED default, `DEFAULT_ATTEMPT_LOCK_STALE_MS`
33
- * (grounding-mcp-v0.12.0 packages/grounding-mcp/src/solution-attempt-log.ts:102,
34
- * `= 30_000`), the `staleMs` `acquireAttemptLock` passes straight through
35
- * to `lockfile.lock(anchor, { retries: 0, realpath: false, stale:
36
- * options.staleMs, ... })` (same file, lines 472-475) on every DEFAULT
37
- * acquisition, pinned here as a literal rather than imported (this package
38
- * has no dependency on grounding-mcp's internals). This hook applies the
39
- * producer's documented default window pinned to grounding-mcp-v0.12.0; it
40
- * diverges from what the producer actually enforces for a given attempt
41
- * if the producer's own default changes in a later release, or if a
42
- * caller of `acquireAttemptLock` overrides `staleMs` away from that
43
- * default (the producer's own option is caller-settable, same file),
44
- * since neither is observable from this side of the lock: an operational
45
- * pin, not a mathematical guarantee, that needs re-checking on every
46
- * grounding-mcp bump this pack's producer floor moves past.
47
- */
48
- export declare const ATTEMPT_LOCK_STALE_MS = 30000;
49
- export type NullVerdictReading = "live-attempt" | "never-evaluated" | "unreadable-marker";
50
- /**
51
- * WHY a present marker path yielded no verdict, carried straight from the
52
- * ONE `readVerdictDetailed` observation the gate decided on, never
53
- * re-derived from a second look at the path. Exactly the non-`ok`,
54
- * non-`missing`, non-`invalid-id` kinds of `VerdictReadOutcome`, so the
55
- * agent-facing line for reading (3) names what that read established
56
- * rather than restating a disjunction by hand.
57
- */
58
- export type RejectedMarkerKind = Exclude<VerdictReadOutcome["kind"], "ok" | "missing" | "invalid-id">;
59
- /**
60
- * Every state the null-verdict note renders a line for, as data. The note
61
- * is a total function over this list (`coordinateOf` below maps each
62
- * `NullVerdictInfo` onto exactly one coordinate, and the compiler rejects a
63
- * member without a line), and
64
- * `tests/cli/pack-hook-solution-acceptance.test.ts` iterates it to assert
65
- * the state table has a row per member. A state added to the classifier
66
- * without a row therefore fails the build or the suite, instead of
67
- * shipping an unpinned line to an agent.
68
- */
69
- export declare const NULL_VERDICT_NOTE_STATES: readonly ["unusable-id", "never-evaluated", "marker-symlink", "marker-not-regular", "marker-unreadable", "marker-invalid-record", "live-attempt"];
70
- export type NullVerdictNoteState = (typeof NULL_VERDICT_NOTE_STATES)[number];
71
- /**
72
- * The two states whose line carries no liveness clause: the unusable-id
73
- * line (nothing was read, so no liveness exists to name) and the
74
- * live-attempt line (its liveness is `"live"` by definition). Every other
75
- * state's line names what the lock check said, so it exists once per
76
- * clause.
77
- */
78
- export declare const NULL_VERDICT_CLAUSE_FREE_STATES: readonly ["unusable-id", "live-attempt"];
79
- type ClauseFreeNoteState = (typeof NULL_VERDICT_CLAUSE_FREE_STATES)[number];
80
- type ClauseNoteState = Exclude<NullVerdictNoteState, ClauseFreeNoteState>;
81
- /**
82
- * Three-valued liveness read, never a boolean: `"live"`, `"not-live"` (no
83
- * lock directory, or one past the stale window: `proper-lockfile`'s own
84
- * check answers `false` for both, swallowing the absent-lock `ENOENT`
85
- * inside the library), or `"unknown"` (the check threw: an unreadable
86
- * directory, a symlink loop, ...). `"unknown"` must never be
87
- * treated as `"not-live"` downstream: that would assert an attempt is
88
- * confirmed absent when liveness simply could not be determined (see
89
- * `classifyNullVerdictReading` and `nullVerdictReadingNote` below, which
90
- * keep the two states distinct all the way into the agent-facing text).
91
- */
92
- export type AttemptLockLiveness = LockCheckResult;
93
- /**
94
- * The lock-check results a clause-carrying line can render. `"live"` is
95
- * absent on purpose: a live lock is settled as the live-attempt state
96
- * before any marker line is chosen, so no marker line is ever rendered for
97
- * it. Spelled out rather than derived from `AttemptLockLiveness`, so a new
98
- * lock-check result fails the typecheck at the classifier instead of
99
- * reaching the renderer's runtime throw inside the deny path.
100
- */
101
- type ClauseLiveness = "not-live" | "unknown";
102
- /**
103
- * One reachable (note state, liveness) combination, the coordinate a line
104
- * is rendered at. Unreachable pairs have no member: `"live"` exists only
105
- * with the live-attempt state, and the unusable-id state carries no
106
- * liveness at all (no placeholder value to mistake for an observation).
107
- */
108
- export type NullVerdictNoteCoordinate = {
109
- state: ClauseFreeNoteState;
110
- } | {
111
- state: ClauseNoteState;
112
- liveness: ClauseLiveness;
113
- };
114
- /**
115
- * One line per note state, as a total `Record` keyed by
116
- * `NULL_VERDICT_NOTE_STATES`: a state added to the list without a line
117
- * here fails the build, which is what makes the list a checklist rather
118
- * than a convention.
119
- *
120
- * Invariant across every line: it states only what the gate established,
121
- * and never a cause that was not observed. The liveness clause names what
122
- * the lock check said ("no attempt reads as currently live" vs "liveness
123
- * could not be determined") instead of always asserting absence, and the
124
- * marker lines come from the gate's OWN read of the marker, never from a
125
- * second look at the path. `tests/cli/pack-hook-solution-acceptance.test.ts`
126
- * pins one exact expected line per state and asserts every member of the
127
- * list has a row, so a future state whose line would overstate fails there
128
- * rather than reaching an agent.
129
- */
130
- export declare const NULL_VERDICT_NOTE_RENDERERS: Record<NullVerdictNoteState, (taskId: string, clause: string) => string>;
131
- /**
132
- * Every reachable coordinate, derived from `NULL_VERDICT_NOTE_STATES`: one
133
- * per clause-free state, one per liveness clause for every other state. The
134
- * state table in `tests/cli/pack-hook-solution-acceptance.test.ts` requires
135
- * a row per member and derives its "no other line appears" set from it, so
136
- * a state added to the list joins both without anyone extending a list.
137
- */
138
- export declare const NULL_VERDICT_NOTE_COORDINATES: readonly NullVerdictNoteCoordinate[];
139
- /**
140
- * The exact line a coordinate renders for `taskId`. The one place a state
141
- * and a liveness become a line: the hook renders through it, and the state
142
- * table derives its "no other line appears" set and checks each row's
143
- * declared coordinate against it. Total over reachable coordinates only: a
144
- * pair the type excludes (`"live"` beside a clause-carrying state, any
145
- * liveness beside a clause-free one) throws instead of rendering a line
146
- * that would misstate what was observed, for a caller that bypasses the
147
- * type.
148
- */
149
- export declare function renderNullVerdictNote(coordinate: NullVerdictNoteCoordinate, taskId: string): string;
150
- /**
151
- * `harness pack hook solution-acceptance`. A stdin read that times out is refused here
152
- * instead of being handed to the gate as an empty or truncated event it would
153
- * treat as malformed input (task 7dfdcaaf). The operator pause still wins;
154
- * every other input runs the gate unchanged.
155
- */
156
- export declare function runPackHookSolutionAcceptanceCli(opts?: PackHookSolutionAcceptanceOptions): Promise<PackHookSolutionAcceptanceResult>;
157
- export {};