@lannguyensi/harness 0.63.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 (702) hide show
  1. package/CHANGELOG.md +90 -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 -338
  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 -705
  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 -378
  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 +15 -2607
  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 -243
  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/register-gate-group.d.ts +5 -0
  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 +5 -0
  145. package/dist/cli/register-operator-lifecycle.js +20 -0
  146. package/dist/cli/register-operator-lifecycle.js.map +1 -0
  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-setup-group.d.ts +5 -0
  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.d.ts +5 -0
  160. package/dist/cli/remove/register.js +25 -0
  161. package/dist/cli/remove/register.js.map +1 -0
  162. package/dist/cli/shell-quote.d.ts +7 -0
  163. package/dist/cli/shell-quote.js +17 -0
  164. package/dist/cli/shell-quote.js.map +1 -0
  165. package/dist/cli/uninstall/index.d.ts +4 -2
  166. package/dist/cli/uninstall/index.js +15 -7
  167. package/dist/cli/uninstall/index.js.map +1 -1
  168. package/dist/cli/uninstall/register.d.ts +5 -0
  169. package/dist/cli/uninstall/register.js +171 -0
  170. package/dist/cli/uninstall/register.js.map +1 -0
  171. package/dist/cli/uninstall/snapshot.d.ts +15 -0
  172. package/dist/cli/uninstall/snapshot.js +38 -0
  173. package/dist/cli/uninstall/snapshot.js.map +1 -1
  174. package/dist/cli/validate/checks.d.ts +0 -77
  175. package/dist/cli/validate/checks.js +3 -1049
  176. package/dist/cli/validate/checks.js.map +1 -1
  177. package/dist/cli/validate/index.js +19 -15
  178. package/dist/cli/validate/index.js.map +1 -1
  179. package/dist/index.d.ts +0 -3
  180. package/dist/index.js +0 -3
  181. package/dist/index.js.map +1 -1
  182. package/dist/io/claude-mcp.d.ts +1 -1
  183. package/dist/io/claude-mcp.js +27 -14
  184. package/dist/io/claude-mcp.js.map +1 -1
  185. package/dist/io/harness-lock.js +2 -2
  186. package/dist/io/harness-lock.js.map +1 -1
  187. package/dist/io/lock.d.ts +0 -26
  188. package/dist/io/lock.js +10 -27
  189. package/dist/io/lock.js.map +1 -1
  190. package/dist/io/merge-settings.js +6 -4
  191. package/dist/io/merge-settings.js.map +1 -1
  192. package/dist/io/project-name.d.ts +22 -39
  193. package/dist/io/project-name.js +25 -42
  194. package/dist/io/project-name.js.map +1 -1
  195. package/dist/io/read-regular-file.d.ts +103 -40
  196. package/dist/io/read-regular-file.js +196 -35
  197. package/dist/io/read-regular-file.js.map +1 -1
  198. package/dist/io/restart-hints.js +3 -6
  199. package/dist/io/restart-hints.js.map +1 -1
  200. package/dist/io/version-compare.d.ts +1 -3
  201. package/dist/io/version-compare.js +1 -3
  202. package/dist/io/version-compare.js.map +1 -1
  203. package/dist/io/write-regular-file.d.ts +30 -0
  204. package/dist/io/write-regular-file.js +85 -0
  205. package/dist/io/write-regular-file.js.map +1 -0
  206. package/dist/overrides/index.d.ts +1 -0
  207. package/dist/overrides/index.js +1 -0
  208. package/dist/overrides/index.js.map +1 -1
  209. package/dist/overrides/merge-layers.d.ts +43 -0
  210. package/dist/overrides/merge-layers.js +76 -0
  211. package/dist/overrides/merge-layers.js.map +1 -0
  212. package/dist/overrides/merge.d.ts +16 -0
  213. package/dist/overrides/merge.js +21 -8
  214. package/dist/overrides/merge.js.map +1 -1
  215. package/dist/policy-packs/builtin/branch-protection-runtime.d.ts +4 -69
  216. package/dist/policy-packs/builtin/branch-protection-runtime.js +12 -84
  217. package/dist/policy-packs/builtin/branch-protection-runtime.js.map +1 -1
  218. package/dist/policy-packs/builtin/branch-protection.d.ts +7 -30
  219. package/dist/policy-packs/builtin/branch-protection.js +56 -89
  220. package/dist/policy-packs/builtin/branch-protection.js.map +1 -1
  221. package/dist/policy-packs/config-check.d.ts +7 -5
  222. package/dist/policy-packs/config-check.js +2 -2
  223. package/dist/policy-packs/config-check.js.map +1 -1
  224. package/dist/policy-packs/expand.d.ts +1 -3
  225. package/dist/policy-packs/expand.js +5 -42
  226. package/dist/policy-packs/expand.js.map +1 -1
  227. package/dist/policy-packs/index.d.ts +3 -3
  228. package/dist/policy-packs/index.js +2 -2
  229. package/dist/policy-packs/index.js.map +1 -1
  230. package/dist/policy-packs/registry.d.ts +9 -38
  231. package/dist/policy-packs/registry.js +5 -65
  232. package/dist/policy-packs/registry.js.map +1 -1
  233. package/dist/policy-packs/runtime.d.ts +0 -4
  234. package/dist/policy-packs/runtime.js +9 -22
  235. package/dist/policy-packs/runtime.js.map +1 -1
  236. package/dist/policy-packs/types.d.ts +0 -19
  237. package/dist/policy-packs/ux-compare.d.ts +1 -11
  238. package/dist/policy-packs/ux-compare.js +6 -42
  239. package/dist/policy-packs/ux-compare.js.map +1 -1
  240. package/dist/policy-packs/ux-drift-check.d.ts +5 -5
  241. package/dist/policy-packs/ux-drift-check.js +17 -22
  242. package/dist/policy-packs/ux-drift-check.js.map +1 -1
  243. package/dist/policy-packs/version-check.d.ts +5 -26
  244. package/dist/policy-packs/version-check.js +19 -74
  245. package/dist/policy-packs/version-check.js.map +1 -1
  246. package/dist/probes/memory.d.ts +1 -1
  247. package/dist/probes/memory.js +1 -1
  248. package/dist/probes/memory.js.map +1 -1
  249. package/dist/runtime/agent-facing.d.ts +9 -0
  250. package/dist/runtime/agent-facing.js +28 -14
  251. package/dist/runtime/agent-facing.js.map +1 -1
  252. package/dist/runtime/bounded-text.d.ts +15 -0
  253. package/dist/runtime/bounded-text.js +27 -0
  254. package/dist/runtime/bounded-text.js.map +1 -0
  255. package/dist/runtime/git-branch.d.ts +125 -0
  256. package/dist/runtime/git-branch.js +381 -0
  257. package/dist/runtime/git-branch.js.map +1 -0
  258. package/dist/runtime/hermetic-spawn-guard.d.ts +2 -2
  259. package/dist/runtime/hermetic-spawn-guard.js +24 -34
  260. package/dist/runtime/hermetic-spawn-guard.js.map +1 -1
  261. package/dist/runtime/home-dir.js +3 -2
  262. package/dist/runtime/home-dir.js.map +1 -1
  263. package/dist/runtime/tool-name-aliases.d.ts +0 -6
  264. package/dist/runtime/tool-name-aliases.js +5 -18
  265. package/dist/runtime/tool-name-aliases.js.map +1 -1
  266. package/dist/schema/grounding.d.ts +7 -54
  267. package/dist/schema/grounding.js +10 -12
  268. package/dist/schema/grounding.js.map +1 -1
  269. package/dist/schema/hooks.d.ts +39 -136
  270. package/dist/schema/hooks.js +3 -6
  271. package/dist/schema/hooks.js.map +1 -1
  272. package/dist/schema/index.d.ts +114 -3828
  273. package/dist/schema/index.js +41 -80
  274. package/dist/schema/index.js.map +1 -1
  275. package/dist/schema/memory.d.ts +54 -131
  276. package/dist/schema/memory.js +2 -2
  277. package/dist/schema/memory.js.map +1 -1
  278. package/dist/schema/policy-packs.d.ts +3 -45
  279. package/dist/schema/policy-packs.js +7 -13
  280. package/dist/schema/policy-packs.js.map +1 -1
  281. package/dist/schema/policy-ux.d.ts +7 -0
  282. package/dist/schema/policy-ux.js +18 -0
  283. package/dist/schema/policy-ux.js.map +1 -0
  284. package/dist/schema/removed-keys.d.ts +185 -0
  285. package/dist/schema/removed-keys.js +531 -0
  286. package/dist/schema/removed-keys.js.map +1 -0
  287. package/dist/schema/tools.d.ts +30 -268
  288. package/dist/schema/tools.js +4 -4
  289. package/dist/schema/tools.js.map +1 -1
  290. package/package.json +5 -16
  291. package/dist/cli/approve/branch-protection.d.ts +0 -69
  292. package/dist/cli/approve/branch-protection.js +0 -144
  293. package/dist/cli/approve/branch-protection.js.map +0 -1
  294. package/dist/cli/approve/risk.d.ts +0 -112
  295. package/dist/cli/approve/risk.js +0 -197
  296. package/dist/cli/approve/risk.js.map +0 -1
  297. package/dist/cli/approve/stdin-report.d.ts +0 -57
  298. package/dist/cli/approve/stdin-report.js +0 -145
  299. package/dist/cli/approve/stdin-report.js.map +0 -1
  300. package/dist/cli/approve/understanding.d.ts +0 -410
  301. package/dist/cli/approve/understanding.js +0 -996
  302. package/dist/cli/approve/understanding.js.map +0 -1
  303. package/dist/cli/audit.d.ts +0 -80
  304. package/dist/cli/audit.js +0 -252
  305. package/dist/cli/audit.js.map +0 -1
  306. package/dist/cli/delegate/index.d.ts +0 -76
  307. package/dist/cli/delegate/index.js +0 -443
  308. package/dist/cli/delegate/index.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/rogue-ledger.d.ts +0 -53
  319. package/dist/cli/doctor/rogue-ledger.js +0 -153
  320. package/dist/cli/doctor/rogue-ledger.js.map +0 -1
  321. package/dist/cli/doctor/session-start-preflight-setup-version.d.ts +0 -83
  322. package/dist/cli/doctor/session-start-preflight-setup-version.js +0 -114
  323. package/dist/cli/doctor/session-start-preflight-setup-version.js.map +0 -1
  324. package/dist/cli/doctor/settings-drift.d.ts +0 -25
  325. package/dist/cli/doctor/settings-drift.js +0 -213
  326. package/dist/cli/doctor/settings-drift.js.map +0 -1
  327. package/dist/cli/doctor/toolchain-parity.d.ts +0 -63
  328. package/dist/cli/doctor/toolchain-parity.js +0 -154
  329. package/dist/cli/doctor/toolchain-parity.js.map +0 -1
  330. package/dist/cli/doctor/ug-auto-approvals.d.ts +0 -40
  331. package/dist/cli/doctor/ug-auto-approvals.js +0 -91
  332. package/dist/cli/doctor/ug-auto-approvals.js.map +0 -1
  333. package/dist/cli/doctor/ug-delegations.d.ts +0 -26
  334. package/dist/cli/doctor/ug-delegations.js +0 -121
  335. package/dist/cli/doctor/ug-delegations.js.map +0 -1
  336. package/dist/cli/doctor/ug-inflight.d.ts +0 -35
  337. package/dist/cli/doctor/ug-inflight.js +0 -57
  338. package/dist/cli/doctor/ug-inflight.js.map +0 -1
  339. package/dist/cli/doctor/understanding-mode-env.d.ts +0 -51
  340. package/dist/cli/doctor/understanding-mode-env.js +0 -98
  341. package/dist/cli/doctor/understanding-mode-env.js.map +0 -1
  342. package/dist/cli/dry-run.d.ts +0 -46
  343. package/dist/cli/dry-run.js +0 -250
  344. package/dist/cli/dry-run.js.map +0 -1
  345. package/dist/cli/event-input.d.ts +0 -28
  346. package/dist/cli/event-input.js +0 -73
  347. package/dist/cli/event-input.js.map +0 -1
  348. package/dist/cli/explain-action.d.ts +0 -20
  349. package/dist/cli/explain-action.js +0 -27
  350. package/dist/cli/explain-action.js.map +0 -1
  351. package/dist/cli/explain-policy.d.ts +0 -135
  352. package/dist/cli/explain-policy.js +0 -266
  353. package/dist/cli/explain-policy.js.map +0 -1
  354. package/dist/cli/explain.d.ts +0 -31
  355. package/dist/cli/explain.js +0 -159
  356. package/dist/cli/explain.js.map +0 -1
  357. package/dist/cli/gc/index.d.ts +0 -63
  358. package/dist/cli/gc/index.js +0 -566
  359. package/dist/cli/gc/index.js.map +0 -1
  360. package/dist/cli/pack/approve-escape.d.ts +0 -19
  361. package/dist/cli/pack/approve-escape.js +0 -190
  362. package/dist/cli/pack/approve-escape.js.map +0 -1
  363. package/dist/cli/pack/auto-approve-path.d.ts +0 -146
  364. package/dist/cli/pack/auto-approve-path.js +0 -462
  365. package/dist/cli/pack/auto-approve-path.js.map +0 -1
  366. package/dist/cli/pack/hook-codex-post-tool-use.d.ts +0 -25
  367. package/dist/cli/pack/hook-codex-post-tool-use.js +0 -160
  368. package/dist/cli/pack/hook-codex-post-tool-use.js.map +0 -1
  369. package/dist/cli/pack/hook-codex-pre-tool-use.d.ts +0 -48
  370. package/dist/cli/pack/hook-codex-pre-tool-use.js +0 -474
  371. package/dist/cli/pack/hook-codex-pre-tool-use.js.map +0 -1
  372. package/dist/cli/pack/hook-codex-stop.d.ts +0 -35
  373. package/dist/cli/pack/hook-codex-stop.js +0 -329
  374. package/dist/cli/pack/hook-codex-stop.js.map +0 -1
  375. package/dist/cli/pack/hook-codex-user-prompt-submit.d.ts +0 -24
  376. package/dist/cli/pack/hook-codex-user-prompt-submit.js +0 -93
  377. package/dist/cli/pack/hook-codex-user-prompt-submit.js.map +0 -1
  378. package/dist/cli/pack/hook-post-merge-gate-record.d.ts +0 -37
  379. package/dist/cli/pack/hook-post-merge-gate-record.js +0 -190
  380. package/dist/cli/pack/hook-post-merge-gate-record.js.map +0 -1
  381. package/dist/cli/pack/hook-post-merge-gate.d.ts +0 -34
  382. package/dist/cli/pack/hook-post-merge-gate.js +0 -277
  383. package/dist/cli/pack/hook-post-merge-gate.js.map +0 -1
  384. package/dist/cli/pack/hook-post-tool-use.d.ts +0 -45
  385. package/dist/cli/pack/hook-post-tool-use.js +0 -137
  386. package/dist/cli/pack/hook-post-tool-use.js.map +0 -1
  387. package/dist/cli/pack/hook-pre-tool-use.d.ts +0 -92
  388. package/dist/cli/pack/hook-pre-tool-use.js +0 -1328
  389. package/dist/cli/pack/hook-pre-tool-use.js.map +0 -1
  390. package/dist/cli/pack/hook-runtime-reality.d.ts +0 -63
  391. package/dist/cli/pack/hook-runtime-reality.js +0 -210
  392. package/dist/cli/pack/hook-runtime-reality.js.map +0 -1
  393. package/dist/cli/pack/hook-solution-acceptance-writeguard.d.ts +0 -32
  394. package/dist/cli/pack/hook-solution-acceptance-writeguard.js +0 -337
  395. package/dist/cli/pack/hook-solution-acceptance-writeguard.js.map +0 -1
  396. package/dist/cli/pack/hook-solution-acceptance.d.ts +0 -157
  397. package/dist/cli/pack/hook-solution-acceptance.js +0 -530
  398. package/dist/cli/pack/hook-solution-acceptance.js.map +0 -1
  399. package/dist/cli/pack/hook-stay-in-scope.d.ts +0 -37
  400. package/dist/cli/pack/hook-stay-in-scope.js +0 -128
  401. package/dist/cli/pack/hook-stay-in-scope.js.map +0 -1
  402. package/dist/cli/pack/hook-subagent-start.d.ts +0 -23
  403. package/dist/cli/pack/hook-subagent-start.js +0 -88
  404. package/dist/cli/pack/hook-subagent-start.js.map +0 -1
  405. package/dist/cli/pack/hook-subagent-stop.d.ts +0 -19
  406. package/dist/cli/pack/hook-subagent-stop.js +0 -41
  407. package/dist/cli/pack/hook-subagent-stop.js.map +0 -1
  408. package/dist/cli/pack/hook-track-active-claim.d.ts +0 -27
  409. package/dist/cli/pack/hook-track-active-claim.js +0 -275
  410. package/dist/cli/pack/hook-track-active-claim.js.map +0 -1
  411. package/dist/cli/pack/transcript-report-scan.d.ts +0 -71
  412. package/dist/cli/pack/transcript-report-scan.js +0 -359
  413. package/dist/cli/pack/transcript-report-scan.js.map +0 -1
  414. package/dist/cli/pack/understanding-report-schema-hint.d.ts +0 -26
  415. package/dist/cli/pack/understanding-report-schema-hint.js +0 -120
  416. package/dist/cli/pack/understanding-report-schema-hint.js.map +0 -1
  417. package/dist/cli/pack/upgrade.d.ts +0 -32
  418. package/dist/cli/pack/upgrade.js +0 -273
  419. package/dist/cli/pack/upgrade.js.map +0 -1
  420. package/dist/cli/pause/index.d.ts +0 -113
  421. package/dist/cli/pause/index.js +0 -251
  422. package/dist/cli/pause/index.js.map +0 -1
  423. package/dist/cli/pause-check.d.ts +0 -22
  424. package/dist/cli/pause-check.js +0 -54
  425. package/dist/cli/pause-check.js.map +0 -1
  426. package/dist/cli/policy/intercept.d.ts +0 -233
  427. package/dist/cli/policy/intercept.js +0 -1020
  428. package/dist/cli/policy/intercept.js.map +0 -1
  429. package/dist/cli/policy/risk-envelope-enrichment.d.ts +0 -40
  430. package/dist/cli/policy/risk-envelope-enrichment.js +0 -108
  431. package/dist/cli/policy/risk-envelope-enrichment.js.map +0 -1
  432. package/dist/cli/record/index.d.ts +0 -81
  433. package/dist/cli/record/index.js +0 -348
  434. package/dist/cli/record/index.js.map +0 -1
  435. package/dist/cli/resolve-env.d.ts +0 -32
  436. package/dist/cli/resolve-env.js +0 -47
  437. package/dist/cli/resolve-env.js.map +0 -1
  438. package/dist/cli/session-export/index.d.ts +0 -46
  439. package/dist/cli/session-export/index.js +0 -169
  440. package/dist/cli/session-export/index.js.map +0 -1
  441. package/dist/cli/session-export/redact.d.ts +0 -22
  442. package/dist/cli/session-export/redact.js +0 -47
  443. package/dist/cli/session-export/redact.js.map +0 -1
  444. package/dist/cli/session-export/transcript.d.ts +0 -24
  445. package/dist/cli/session-export/transcript.js +0 -164
  446. package/dist/cli/session-export/transcript.js.map +0 -1
  447. package/dist/cli/session-start/branch-check.d.ts +0 -18
  448. package/dist/cli/session-start/branch-check.js +0 -140
  449. package/dist/cli/session-start/branch-check.js.map +0 -1
  450. package/dist/cli/session-start/index.d.ts +0 -121
  451. package/dist/cli/session-start/index.js +0 -591
  452. package/dist/cli/session-start/index.js.map +0 -1
  453. package/dist/cli/session-start/shared-options.d.ts +0 -103
  454. package/dist/cli/session-start/shared-options.js +0 -107
  455. package/dist/cli/session-start/shared-options.js.map +0 -1
  456. package/dist/cli/session-start/stale-base-check.d.ts +0 -46
  457. package/dist/cli/session-start/stale-base-check.js +0 -352
  458. package/dist/cli/session-start/stale-base-check.js.map +0 -1
  459. package/dist/cli/session-start/toolchain-parity.d.ts +0 -267
  460. package/dist/cli/session-start/toolchain-parity.js +0 -797
  461. package/dist/cli/session-start/toolchain-parity.js.map +0 -1
  462. package/dist/cli/smoke/assertions.d.ts +0 -46
  463. package/dist/cli/smoke/assertions.js +0 -170
  464. package/dist/cli/smoke/assertions.js.map +0 -1
  465. package/dist/cli/smoke/index.d.ts +0 -76
  466. package/dist/cli/smoke/index.js +0 -245
  467. package/dist/cli/smoke/index.js.map +0 -1
  468. package/dist/cli/smoke/runner.d.ts +0 -55
  469. package/dist/cli/smoke/runner.js +0 -134
  470. package/dist/cli/smoke/runner.js.map +0 -1
  471. package/dist/cli/smoke/stream-parser.d.ts +0 -65
  472. package/dist/cli/smoke/stream-parser.js +0 -115
  473. package/dist/cli/smoke/stream-parser.js.map +0 -1
  474. package/dist/cli/test-risk.d.ts +0 -26
  475. package/dist/cli/test-risk.js +0 -34
  476. package/dist/cli/test-risk.js.map +0 -1
  477. package/dist/io/display-path.d.ts +0 -11
  478. package/dist/io/display-path.js +0 -29
  479. package/dist/io/display-path.js.map +0 -1
  480. package/dist/io/duration.d.ts +0 -5
  481. package/dist/io/duration.js +0 -50
  482. package/dist/io/duration.js.map +0 -1
  483. package/dist/io/extract.d.ts +0 -79
  484. package/dist/io/extract.js +0 -226
  485. package/dist/io/extract.js.map +0 -1
  486. package/dist/io/ledger-record.d.ts +0 -83
  487. package/dist/io/ledger-record.js +0 -301
  488. package/dist/io/ledger-record.js.map +0 -1
  489. package/dist/io/read-json-dir-entries.d.ts +0 -36
  490. package/dist/io/read-json-dir-entries.js +0 -48
  491. package/dist/io/read-json-dir-entries.js.map +0 -1
  492. package/dist/io/safe-json-parse.d.ts +0 -5
  493. package/dist/io/safe-json-parse.js +0 -21
  494. package/dist/io/safe-json-parse.js.map +0 -1
  495. package/dist/policies/index.d.ts +0 -5
  496. package/dist/policies/index.js +0 -6
  497. package/dist/policies/index.js.map +0 -1
  498. package/dist/policies/ledger-client.d.ts +0 -113
  499. package/dist/policies/ledger-client.js +0 -500
  500. package/dist/policies/ledger-client.js.map +0 -1
  501. package/dist/policies/producers.d.ts +0 -12
  502. package/dist/policies/producers.js +0 -61
  503. package/dist/policies/producers.js.map +0 -1
  504. package/dist/policies/requires.d.ts +0 -75
  505. package/dist/policies/requires.js +0 -240
  506. package/dist/policies/requires.js.map +0 -1
  507. package/dist/policies/timestamp.d.ts +0 -14
  508. package/dist/policies/timestamp.js +0 -36
  509. package/dist/policies/timestamp.js.map +0 -1
  510. package/dist/policy-packs/builtin/permission-profiles.d.ts +0 -11
  511. package/dist/policy-packs/builtin/permission-profiles.js +0 -74
  512. package/dist/policy-packs/builtin/permission-profiles.js.map +0 -1
  513. package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +0 -286
  514. package/dist/policy-packs/builtin/post-merge-gate-runtime.js +0 -397
  515. package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +0 -1
  516. package/dist/policy-packs/builtin/post-merge-gate.d.ts +0 -56
  517. package/dist/policy-packs/builtin/post-merge-gate.js +0 -347
  518. package/dist/policy-packs/builtin/post-merge-gate.js.map +0 -1
  519. package/dist/policy-packs/builtin/solution-acceptance-reconnect.d.ts +0 -50
  520. package/dist/policy-packs/builtin/solution-acceptance-reconnect.js +0 -151
  521. package/dist/policy-packs/builtin/solution-acceptance-reconnect.js.map +0 -1
  522. package/dist/policy-packs/builtin/solution-acceptance-runtime.d.ts +0 -323
  523. package/dist/policy-packs/builtin/solution-acceptance-runtime.js +0 -672
  524. package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +0 -1
  525. package/dist/policy-packs/builtin/solution-acceptance.d.ts +0 -45
  526. package/dist/policy-packs/builtin/solution-acceptance.js +0 -226
  527. package/dist/policy-packs/builtin/solution-acceptance.js.map +0 -1
  528. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.d.ts +0 -25
  529. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js +0 -94
  530. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js.map +0 -1
  531. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.d.ts +0 -35
  532. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js +0 -86
  533. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js.map +0 -1
  534. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.d.ts +0 -210
  535. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js +0 -361
  536. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js.map +0 -1
  537. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +0 -304
  538. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +0 -734
  539. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +0 -1
  540. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.d.ts +0 -36
  541. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js +0 -73
  542. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js.map +0 -1
  543. package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +0 -19
  544. package/dist/policy-packs/builtin/understanding-before-execution/index.js +0 -83
  545. package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +0 -1
  546. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.d.ts +0 -135
  547. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js +0 -618
  548. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js.map +0 -1
  549. package/dist/policy-packs/builtin/understanding-before-execution/ledger.d.ts +0 -25
  550. package/dist/policy-packs/builtin/understanding-before-execution/ledger.js +0 -56
  551. package/dist/policy-packs/builtin/understanding-before-execution/ledger.js.map +0 -1
  552. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.d.ts +0 -20
  553. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js +0 -93
  554. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js.map +0 -1
  555. package/dist/policy-packs/builtin/understanding-before-execution/markers.d.ts +0 -126
  556. package/dist/policy-packs/builtin/understanding-before-execution/markers.js +0 -245
  557. package/dist/policy-packs/builtin/understanding-before-execution/markers.js.map +0 -1
  558. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.d.ts +0 -29
  559. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js +0 -82
  560. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js.map +0 -1
  561. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.d.ts +0 -71
  562. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js +0 -175
  563. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js.map +0 -1
  564. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.d.ts +0 -620
  565. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js +0 -1047
  566. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js.map +0 -1
  567. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.d.ts +0 -128
  568. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js +0 -213
  569. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js.map +0 -1
  570. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.d.ts +0 -129
  571. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js +0 -166
  572. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js.map +0 -1
  573. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.d.ts +0 -164
  574. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js +0 -275
  575. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js.map +0 -1
  576. package/dist/policy-packs/builtin/understanding-before-execution-runtime.d.ts +0 -1
  577. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js +0 -10
  578. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js.map +0 -1
  579. package/dist/policy-packs/builtin/understanding-before-execution.d.ts +0 -526
  580. package/dist/policy-packs/builtin/understanding-before-execution.js +0 -1074
  581. package/dist/policy-packs/builtin/understanding-before-execution.js.map +0 -1
  582. package/dist/policy-packs/permission-translator.d.ts +0 -9
  583. package/dist/policy-packs/permission-translator.js +0 -76
  584. package/dist/policy-packs/permission-translator.js.map +0 -1
  585. package/dist/runtime/action-envelope.d.ts +0 -64
  586. package/dist/runtime/action-envelope.js +0 -46
  587. package/dist/runtime/action-envelope.js.map +0 -1
  588. package/dist/runtime/approval-signing.d.ts +0 -111
  589. package/dist/runtime/approval-signing.js +0 -384
  590. package/dist/runtime/approval-signing.js.map +0 -1
  591. package/dist/runtime/bash-match-facts.d.ts +0 -60
  592. package/dist/runtime/bash-match-facts.js +0 -196
  593. package/dist/runtime/bash-match-facts.js.map +0 -1
  594. package/dist/runtime/bash-match-registry.d.ts +0 -112
  595. package/dist/runtime/bash-match-registry.js +0 -406
  596. package/dist/runtime/bash-match-registry.js.map +0 -1
  597. package/dist/runtime/bash-prefix-parse.d.ts +0 -31
  598. package/dist/runtime/bash-prefix-parse.js +0 -576
  599. package/dist/runtime/bash-prefix-parse.js.map +0 -1
  600. package/dist/runtime/command-normalize.d.ts +0 -658
  601. package/dist/runtime/command-normalize.js +0 -2410
  602. package/dist/runtime/command-normalize.js.map +0 -1
  603. package/dist/runtime/deletion-target-resolve.d.ts +0 -28
  604. package/dist/runtime/deletion-target-resolve.js +0 -1078
  605. package/dist/runtime/deletion-target-resolve.js.map +0 -1
  606. package/dist/runtime/destructive-shell-floor.d.ts +0 -19
  607. package/dist/runtime/destructive-shell-floor.js +0 -611
  608. package/dist/runtime/destructive-shell-floor.js.map +0 -1
  609. package/dist/runtime/environment-resolver.d.ts +0 -36
  610. package/dist/runtime/environment-resolver.js +0 -138
  611. package/dist/runtime/environment-resolver.js.map +0 -1
  612. package/dist/runtime/git-context.d.ts +0 -201
  613. package/dist/runtime/git-context.js +0 -422
  614. package/dist/runtime/git-context.js.map +0 -1
  615. package/dist/runtime/index.d.ts +0 -12
  616. package/dist/runtime/index.js +0 -13
  617. package/dist/runtime/index.js.map +0 -1
  618. package/dist/runtime/intercept.d.ts +0 -494
  619. package/dist/runtime/intercept.js +0 -1313
  620. package/dist/runtime/intercept.js.map +0 -1
  621. package/dist/runtime/kube-context.d.ts +0 -16
  622. package/dist/runtime/kube-context.js +0 -63
  623. package/dist/runtime/kube-context.js.map +0 -1
  624. package/dist/runtime/kubectl-target-parse.d.ts +0 -31
  625. package/dist/runtime/kubectl-target-parse.js +0 -249
  626. package/dist/runtime/kubectl-target-parse.js.map +0 -1
  627. package/dist/runtime/ledger-add.d.ts +0 -16
  628. package/dist/runtime/ledger-add.js +0 -150
  629. package/dist/runtime/ledger-add.js.map +0 -1
  630. package/dist/runtime/ledger-writer.d.ts +0 -27
  631. package/dist/runtime/ledger-writer.js +0 -46
  632. package/dist/runtime/ledger-writer.js.map +0 -1
  633. package/dist/runtime/pause-sentinel.d.ts +0 -60
  634. package/dist/runtime/pause-sentinel.js +0 -156
  635. package/dist/runtime/pause-sentinel.js.map +0 -1
  636. package/dist/runtime/pending-approval.d.ts +0 -23
  637. package/dist/runtime/pending-approval.js +0 -67
  638. package/dist/runtime/pending-approval.js.map +0 -1
  639. package/dist/runtime/read-only-bash.d.ts +0 -141
  640. package/dist/runtime/read-only-bash.js +0 -2204
  641. package/dist/runtime/read-only-bash.js.map +0 -1
  642. package/dist/runtime/recovery-git-commit.d.ts +0 -22
  643. package/dist/runtime/recovery-git-commit.js +0 -284
  644. package/dist/runtime/recovery-git-commit.js.map +0 -1
  645. package/dist/runtime/reject-malformed-session-id.d.ts +0 -8
  646. package/dist/runtime/reject-malformed-session-id.js +0 -16
  647. package/dist/runtime/reject-malformed-session-id.js.map +0 -1
  648. package/dist/runtime/risk-classifier.d.ts +0 -38
  649. package/dist/runtime/risk-classifier.js +0 -311
  650. package/dist/runtime/risk-classifier.js.map +0 -1
  651. package/dist/runtime/session-id.d.ts +0 -113
  652. package/dist/runtime/session-id.js +0 -193
  653. package/dist/runtime/session-id.js.map +0 -1
  654. package/dist/runtime/shell-word.d.ts +0 -62
  655. package/dist/runtime/shell-word.js +0 -410
  656. package/dist/runtime/shell-word.js.map +0 -1
  657. package/dist/runtime/task-providers/agent-tasks.d.ts +0 -103
  658. package/dist/runtime/task-providers/agent-tasks.js +0 -245
  659. package/dist/runtime/task-providers/agent-tasks.js.map +0 -1
  660. package/dist/runtime/when-eval.d.ts +0 -62
  661. package/dist/runtime/when-eval.js +0 -212
  662. package/dist/runtime/when-eval.js.map +0 -1
  663. package/dist/runtime/workflow-policies.d.ts +0 -207
  664. package/dist/runtime/workflow-policies.js +0 -596
  665. package/dist/runtime/workflow-policies.js.map +0 -1
  666. package/dist/schema/audit.d.ts +0 -71
  667. package/dist/schema/audit.js +0 -32
  668. package/dist/schema/audit.js.map +0 -1
  669. package/dist/schema/doctor.d.ts +0 -25
  670. package/dist/schema/doctor.js +0 -23
  671. package/dist/schema/doctor.js.map +0 -1
  672. package/dist/schema/environments.d.ts +0 -215
  673. package/dist/schema/environments.js +0 -101
  674. package/dist/schema/environments.js.map +0 -1
  675. package/dist/schema/extract.d.ts +0 -9
  676. package/dist/schema/extract.js +0 -86
  677. package/dist/schema/extract.js.map +0 -1
  678. package/dist/schema/permission-profiles.d.ts +0 -2292
  679. package/dist/schema/permission-profiles.js +0 -60
  680. package/dist/schema/permission-profiles.js.map +0 -1
  681. package/dist/schema/policies.d.ts +0 -974
  682. package/dist/schema/policies.js +0 -298
  683. package/dist/schema/policies.js.map +0 -1
  684. package/dist/schema/requires.d.ts +0 -131
  685. package/dist/schema/requires.js +0 -88
  686. package/dist/schema/requires.js.map +0 -1
  687. package/dist/schema/risk.d.ts +0 -144
  688. package/dist/schema/risk.js +0 -194
  689. package/dist/schema/risk.js.map +0 -1
  690. package/dist/schema/session-start-preflight.d.ts +0 -10
  691. package/dist/schema/session-start-preflight.js +0 -106
  692. package/dist/schema/session-start-preflight.js.map +0 -1
  693. package/dist/schema/stale-base-check.d.ts +0 -18
  694. package/dist/schema/stale-base-check.js +0 -37
  695. package/dist/schema/stale-base-check.js.map +0 -1
  696. package/dist/schema/toolchain-parity.d.ts +0 -21
  697. package/dist/schema/toolchain-parity.js +0 -48
  698. package/dist/schema/toolchain-parity.js.map +0 -1
  699. package/dist/schema/workflows.d.ts +0 -519
  700. package/dist/schema/workflows.js +0 -81
  701. package/dist/schema/workflows.js.map +0 -1
  702. package/scripts/runtime-reality-docker-probe.mjs +0 -71
@@ -1 +0,0 @@
1
- {"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../../src/cli/policy/intercept.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import { type GitRepoContext, type ToolEvent } from "../../runtime/index.js";
2
- import { type BashPrefix } from "../../runtime/bash-prefix-parse.js";
3
- import type { Manifest, MatchableEnvironment } from "../../schema/index.js";
4
- /**
5
- * Read the command string out of a Bash tool's `tool_input.command`,
6
- * returning null when the shape is wrong (defensive — production input
7
- * comes from Claude Code, but tests and Codex bridges have varied
8
- * payload shapes).
9
- */
10
- export declare function readBashCommand(input: unknown): string | null;
11
- export declare const ENV_RANK: Record<MatchableEnvironment, number>;
12
- export interface BashPrefixEnrichmentInput {
13
- event: ToolEvent;
14
- manifest: Manifest;
15
- cwd: string;
16
- /** Git context of `cwd` itself (the base the prefix merges on top of). */
17
- cwdGitContext: GitRepoContext;
18
- /** Ambient env the inline assignments are merged over. */
19
- env: Record<string, string | undefined>;
20
- kubeContext: string;
21
- kubeNamespace: string;
22
- user: string;
23
- host: string;
24
- now: Date | undefined;
25
- }
26
- export interface BashPrefixEnrichment {
27
- /** The Bash command string, or null for a non-Bash / shapeless event. */
28
- riskBashCommand: string | null;
29
- bashPrefix: BashPrefix | null;
30
- /** Git context after the `cd` merge and the branch-switch upgrade. */
31
- git: GitRepoContext;
32
- /** Ambient env with the inline `VAR=value` assignments merged on top. */
33
- env: Record<string, string | undefined>;
34
- }
35
- /**
36
- * Parse the leading Bash prefix once and merge it into the resolver
37
- * inputs (see the module header). Pure apart from `resolveGitContext`
38
- * for a `cd` target.
39
- */
40
- export declare function resolveBashPrefixEnrichment(input: BashPrefixEnrichmentInput): BashPrefixEnrichment;
@@ -1,108 +0,0 @@
1
- // Shared Risk Gate envelope enrichment for the verbs that predict or
2
- // enforce a `when:` verdict: `harness policy intercept` (the PreToolUse
3
- // hook) and `harness explain-policy` (the debug verb).
4
- //
5
- // Both must resolve the environment from the SAME inputs, or the tool an
6
- // operator uses to predict a gate disagrees with the gate (task
7
- // 7c3919a2: `DATABASE_URL=...prod... psql ...` resolved `production` in
8
- // the hook and `unknown` in explain-policy). This module owns the
9
- // leading-prefix parse of a Bash command and the three merges it feeds:
10
- // inline `VAR=value` env, a leading `cd <path> &&` (git context), and a
11
- // leading `git switch|checkout <branch> &&` (upgrade-only).
12
- //
13
- // Deliberately NOT here: any ledger or evidence read (explain-policy
14
- // stays hypothetical and read-free; keep this module free of
15
- // `policies/` imports), and the kubectl `--context`/`--namespace`
16
- // merge (hook-only today, tracked separately).
17
- import * as path from "node:path";
18
- import { buildActionEnvelope, resolveEnvironment, resolveGitContext, } from "../../runtime/index.js";
19
- import { parseBashPrefix } from "../../runtime/bash-prefix-parse.js";
20
- /**
21
- * Read the command string out of a Bash tool's `tool_input.command`,
22
- * returning null when the shape is wrong (defensive — production input
23
- * comes from Claude Code, but tests and Codex bridges have varied
24
- * payload shapes).
25
- */
26
- export function readBashCommand(input) {
27
- if (!input || typeof input !== "object" || Array.isArray(input))
28
- return null;
29
- const cmd = input.command;
30
- return typeof cmd === "string" && cmd.length > 0 ? cmd : null;
31
- }
32
- // Mirrors `ENV_PRECEDENCE` in `../../runtime/environment-resolver.ts`
33
- // (most-dangerous-first). Kept as a local, small, duplicate table
34
- // instead of importing that module's private const, so this file stays
35
- // a read-only consumer of `resolveEnvironment`'s public API rather than
36
- // reaching into its internals. `unknown` is deliberately ranked lowest:
37
- // resolving to no signal at all must never look like an "upgrade" over
38
- // a branch that DID fire a resolver.
39
- export const ENV_RANK = {
40
- production: 0,
41
- staging: 1,
42
- dev: 2,
43
- local: 3,
44
- unknown: 4,
45
- };
46
- /**
47
- * Branch-switch, upgrade-only merge (task 341e024b): a leading `git
48
- * switch <branch>` / `git checkout <branch>` names the branch the REST
49
- * of the command actually runs against, the same way a leading `cd
50
- * <path>` names a different working directory (see `resolverGit`'s own
51
- * comment at the call site). Unlike that `cd` merge — which fully
52
- * REPLACES the git context and can move the resolved environment in
53
- * EITHER direction (G5, pre-existing, out of scope for this task) —
54
- * this merge is deliberately asymmetric: it only ever pushes the
55
- * resolved environment to something MORE dangerous, never less.
56
- *
57
- * Both the base git context and the switch-target candidate (same repo
58
- * / sha, only `branch` differs) are run through the SAME
59
- * `resolveEnvironment` call with IDENTICAL env / kube inputs, so any
60
- * difference in the result is attributable to the branch alone. The
61
- * more dangerous of the two (`ENV_RANK` order) wins; a switch AWAY from
62
- * a production branch never downgrades — when the candidate resolves to
63
- * something equally or less dangerous, `baseGit` is returned unchanged.
64
- */
65
- function applyBranchSwitchUpgrade(event, manifest, cwd, baseGit, branchTarget, inputs, user, host, now) {
66
- if (branchTarget === null || branchTarget === baseGit.branch)
67
- return baseGit;
68
- const candidateGit = { ...baseGit, branch: branchTarget };
69
- const effectiveNow = now ?? new Date();
70
- const baseResolution = resolveEnvironment(buildActionEnvelope(event, { cwd, git: baseGit, user, host, now: effectiveNow }), manifest.environments.resolvers, inputs);
71
- const candidateResolution = resolveEnvironment(buildActionEnvelope(event, { cwd, git: candidateGit, user, host, now: effectiveNow }), manifest.environments.resolvers, inputs);
72
- return ENV_RANK[candidateResolution.name] < ENV_RANK[baseResolution.name] ? candidateGit : baseGit;
73
- }
74
- /**
75
- * Parse the leading Bash prefix once and merge it into the resolver
76
- * inputs (see the module header). Pure apart from `resolveGitContext`
77
- * for a `cd` target.
78
- */
79
- export function resolveBashPrefixEnrichment(input) {
80
- const { event, manifest, cwd, cwdGitContext } = input;
81
- const riskBashCommand = event.tool_name === "Bash" ? readBashCommand(event.tool_input) : null;
82
- const bashPrefix = riskBashCommand === null ? null : parseBashPrefix(riskBashCommand);
83
- const resolverGit = (() => {
84
- if (bashPrefix === null || bashPrefix.cdTarget === null)
85
- return cwdGitContext;
86
- const effective = path.isAbsolute(bashPrefix.cdTarget)
87
- ? bashPrefix.cdTarget
88
- : path.resolve(cwd, bashPrefix.cdTarget);
89
- // resolveGitContext returns empty strings for non-git paths;
90
- // an empty repo means cd-target was bogus, fall through.
91
- const candidate = resolveGitContext(effective);
92
- return candidate.repo.length > 0 ? candidate : cwdGitContext;
93
- })();
94
- const env = (() => {
95
- const base = input.env;
96
- if (bashPrefix === null || Object.keys(bashPrefix.inlineEnv).length === 0)
97
- return base;
98
- // Inline assignments are the operator's explicit override; they
99
- // win over process.env (matches POSIX `VAR=value cmd` semantics).
100
- return { ...base, ...bashPrefix.inlineEnv };
101
- })();
102
- // A leading `git switch`/`checkout <branch>` (task 341e024b) is
103
- // merged on top of `resolverGit`, upgrade-only, using the AMBIENT kube
104
- // state. See `applyBranchSwitchUpgrade`.
105
- const git = applyBranchSwitchUpgrade(event, manifest, cwd, resolverGit, bashPrefix?.branchTarget ?? null, { env, kubeContext: input.kubeContext, kubeNamespace: input.kubeNamespace }, input.user, input.host, input.now);
106
- return { riskBashCommand, bashPrefix, git, env };
107
- }
108
- //# sourceMappingURL=risk-envelope-enrichment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"risk-envelope-enrichment.js","sourceRoot":"","sources":["../../../src/cli/policy/risk-envelope-enrichment.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,wEAAwE;AACxE,uDAAuD;AACvD,EAAE;AACF,yEAAyE;AACzE,gEAAgE;AAChE,wEAAwE;AACxE,kEAAkE;AAClE,wEAAwE;AACxE,wEAAwE;AACxE,4DAA4D;AAC5D,EAAE;AACF,qEAAqE;AACrE,6DAA6D;AAC7D,kEAAkE;AAClE,+CAA+C;AAE/C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAGlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAmB,MAAM,oCAAoC,CAAC;AAGtF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,GAAG,GAAI,KAA+B,CAAC,OAAO,CAAC;IACrD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED,sEAAsE;AACtE,kEAAkE;AAClE,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,qCAAqC;AACrC,MAAM,CAAC,MAAM,QAAQ,GAAyC;IAC5D,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,wBAAwB,CAC/B,KAAgB,EAChB,QAAkB,EAClB,GAAW,EACX,OAAuB,EACvB,YAA2B,EAC3B,MAA+F,EAC/F,IAAY,EACZ,IAAY,EACZ,GAAqB;IAErB,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAC7E,MAAM,YAAY,GAAmB,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC1E,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,kBAAkB,CACvC,mBAAmB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAChF,QAAQ,CAAC,YAAY,CAAC,SAAS,EAC/B,MAAM,CACP,CAAC;IACF,MAAM,mBAAmB,GAAG,kBAAkB,CAC5C,mBAAmB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EACrF,QAAQ,CAAC,YAAY,CAAC,SAAS,EAC/B,MAAM,CACP,CAAC;IACF,OAAO,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;AACrG,CAAC;AA4BD;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAgC;IAEhC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACtD,MAAM,eAAe,GACnB,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,UAAU,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;QACxB,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI;YAAE,OAAO,aAAa,CAAC;QAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;YACpD,CAAC,CAAC,UAAU,CAAC,QAAQ;YACrB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3C,6DAA6D;QAC7D,yDAAyD;QACzD,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;IAC/D,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;QAChB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QACvB,IAAI,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvF,gEAAgE;QAChE,kEAAkE;QAClE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IAC9C,CAAC,CAAC,EAAE,CAAC;IACL,gEAAgE;IAChE,uEAAuE;IACvE,yCAAyC;IACzC,MAAM,GAAG,GAAG,wBAAwB,CAClC,KAAK,EACL,QAAQ,EACR,GAAG,EACH,WAAW,EACX,UAAU,EAAE,YAAY,IAAI,IAAI,EAChC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,EAC3E,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,GAAG,CACV,CAAC;IACF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACnD,CAAC"}
@@ -1,81 +0,0 @@
1
- import { type LedgerWriteFn } from "../../runtime/ledger-writer.js";
2
- import { type ResolveReadSessionOptions } from "../../runtime/session-id.js";
3
- import { type LoaderOptions } from "../loader.js";
4
- /** Options shared by every `record` verb. */
5
- export interface RecordCommonOptions extends LoaderOptions {
6
- /** Working directory used for git-context resolution. Defaults to `process.cwd()`. */
7
- cwd?: string;
8
- /** Defaults to `process.stderr`. Warnings and error reasons land here. */
9
- stderr?: NodeJS.WritableStream;
10
- /** Explicit session id (overrides env + transcript discovery). */
11
- session?: string;
12
- /** Per-call ledger timeout in ms. */
13
- ledgerTimeoutMs?: number;
14
- /**
15
- * Inject the read-path session resolver (test seam). Production uses
16
- * `resolveReadSessionId` from `runtime/session-id`, the same
17
- * precedence chain `harness audit` / `harness explain --trace` use.
18
- */
19
- resolveSession?: (explicit: string | undefined, opts: ResolveReadSessionOptions) => string;
20
- /** Inject the ledger writer (test seam). */
21
- writeLedger?: LedgerWriteFn;
22
- }
23
- /** Structured outcome of a `record` verb — testable without spawning a process. */
24
- export interface RecordResult {
25
- /** 0 on success; EX_USAGE (64) for a bad argument, EX_FAIL (1) for a runtime failure. */
26
- exitCode: number;
27
- /** Whether the ledger fact was actually written. */
28
- wrote: boolean;
29
- /** The exact content string written (or that would have been written); "" on early validation failure. */
30
- content: string;
31
- /** Resolved session id ("" only when validation failed before session resolution). */
32
- sessionId: string;
33
- /** Resolved branch tag ("" when the verb does not use one, or resolution failed). */
34
- branch: string;
35
- /** Human-readable explanation of a non-write outcome. */
36
- reason?: string;
37
- }
38
- export interface RecordReviewOptions extends RecordCommonOptions {
39
- /** PR number (or identifier) — required, non-empty. */
40
- pr: string;
41
- /** Explicit base-branch override; see resolveBase() for the fallback chain. */
42
- base?: string;
43
- /** Explicit branch override (otherwise resolved via resolveGitContext(cwd)). */
44
- branch?: string;
45
- /**
46
- * agent-tasks task id for the `review:<task-id>` tag the two task-scoped
47
- * merge gates read (`review-before-task-merge` /
48
- * `review-before-task-finish-automerge`, task 2699b476). Optional: the
49
- * PR/branch/base tags are what the pull_requests_merge and `gh pr merge`
50
- * gates read, and an operator on those surfaces has no task id to pass.
51
- */
52
- task?: string;
53
- /** Free-form review summary — required, non-empty. */
54
- summary: string;
55
- }
56
- export declare function runRecordReview(opts: RecordReviewOptions): Promise<RecordResult>;
57
- export interface RecordReviewSubagentOptions extends RecordCommonOptions {
58
- /**
59
- * agent-tasks task id, non-empty when given. Exactly one of `task` or
60
- * `adhoc` is required.
61
- */
62
- task?: string;
63
- /**
64
- * Record a review for work that has no agent-tasks task: only the
65
- * `review-subagent:<branch>` tag is written, never a task tag. Mutually
66
- * exclusive with `task`.
67
- */
68
- adhoc?: boolean;
69
- /** Reviewer verdict — required, non-empty. */
70
- verdict: string;
71
- /** Explicit branch override (otherwise resolved via resolveGitContext(cwd)). */
72
- branch?: string;
73
- /** Optional free-form summary appended after the verdict. */
74
- summary?: string;
75
- }
76
- export declare function runRecordReviewSubagent(opts: RecordReviewSubagentOptions): Promise<RecordResult>;
77
- export interface RecordDogfoodOptions extends RecordCommonOptions {
78
- /** End-to-end smoke summary — required, non-empty. */
79
- summary: string;
80
- }
81
- export declare function runRecordDogfood(opts: RecordDogfoodOptions): Promise<RecordResult>;
@@ -1,348 +0,0 @@
1
- // `harness record {review,review-subagent,dogfood}` — operator/agent-
2
- // driven evidence-ledger producers for the review-before-merge,
3
- // review-subagent-before-pr-create, and dogfood-before-release gate
4
- // families (see src/cli/init/templates.ts for the exact policy
5
- // definitions and tag shapes these verbs feed).
6
- //
7
- // Unlike `harness session-start preflight` (a SessionStart hook that
8
- // MUST exit 0 on every path so it never breaks the session loop), the
9
- // `record` verbs are INTERACTIVE: an agent or operator invokes them
10
- // deliberately to attach a review verdict / dogfood summary to the
11
- // ledger. A failure here (unreachable ledger, no git context, an empty
12
- // summary) is a real error the caller needs to see and react to, so
13
- // every verb exits non-zero with a clear stderr message on failure
14
- // instead of degrading silently. Each verb still returns a structured
15
- // `RecordResult` (not just a thrown error) so both paths are testable
16
- // without spawning a process — same "degrade-with-reason" convention
17
- // `runSessionStartPreflight` uses.
18
- //
19
- // Composition mirrors session-start/index.ts: build the ledger write
20
- // via the manifest's declared `grounding-mcp` server (through the
21
- // shared `resolveManifestLedgerWriter` — see runtime/ledger-writer.ts),
22
- // resolve branch via `resolveGitContext` (the SAME function the
23
- // preflight-before-* gates use) and session via `resolveReadSessionId`,
24
- // with `--branch` / `--session` as explicit overrides. No new JSON-RPC
25
- // or subprocess code: every ledger write goes through the existing
26
- // `addLedgerFact` primitive.
27
- import { findGitEntry, resolveCommonDir, resolveGitContext, resolveOriginHeadBase, } from "../../runtime/git-context.js";
28
- import { resolveManifestLedgerWriter } from "../../runtime/ledger-writer.js";
29
- import { resolveReadSessionId, } from "../../runtime/session-id.js";
30
- import { EX_FAIL, EX_USAGE } from "../exit-codes.js";
31
- import { loadManifest } from "../loader.js";
32
- // U+2014 EM DASH, written as an escape so the literal never appears in
33
- // source. The emitted fact content is byte-identical to what `harness
34
- // record review` has always written; every gate reads the tags before it,
35
- // never this separator.
36
- const TAG_SUMMARY_SEPARATOR = "\u2014";
37
- const LEDGER_SOURCE_REVIEW = "harness-record-review";
38
- const LEDGER_SOURCE_REVIEW_SUBAGENT = "harness-record-review-subagent";
39
- const LEDGER_SOURCE_DOGFOOD = "harness-record-dogfood";
40
- function resolveSession(opts) {
41
- const resolve = opts.resolveSession ?? resolveReadSessionId;
42
- return resolve(opts.session, {});
43
- }
44
- /**
45
- * Write one ledger fact via the manifest's declared `grounding-mcp`
46
- * server (or the injected `opts.writeLedger` test seam). Mirrors the
47
- * manifest-wiring block `runSessionStartPreflight` uses, factored
48
- * through the shared `resolveManifestLedgerWriter` helper.
49
- */
50
- async function writeLedgerFact(opts, sessionId, source, content) {
51
- let writeLedger = opts.writeLedger;
52
- if (!writeLedger) {
53
- let manifest;
54
- try {
55
- manifest = loadManifest(opts).manifest;
56
- }
57
- catch (err) {
58
- return { ok: false, reason: `manifest load failed: ${err.message}` };
59
- }
60
- const resolved = resolveManifestLedgerWriter(manifest, {
61
- ...(opts.ledgerTimeoutMs !== undefined ? { ledgerTimeoutMs: opts.ledgerTimeoutMs } : {}),
62
- });
63
- if (!resolved.ok) {
64
- return { ok: false, reason: `${resolved.reason}; cannot record ${source} tag` };
65
- }
66
- writeLedger = resolved.write;
67
- }
68
- const result = await writeLedger({ sessionId, content, source });
69
- if (!result.ok) {
70
- return { ok: false, reason: `ledger write failed: ${result.reason ?? "unknown error"}` };
71
- }
72
- return { ok: true };
73
- }
74
- /**
75
- * Shared setup every verb runs first: a `note()` sink prefixed with the
76
- * verb's own name (so stderr lines are attributable when several verbs
77
- * run in a script), the resolved cwd, and the resolved session id.
78
- * Session id is resolved this early because `record dogfood`'s content
79
- * embeds it directly (`dogfood:${sessionId}`).
80
- */
81
- function initRecordVerb(opts, verbName) {
82
- const stderr = opts.stderr ?? process.stderr;
83
- const note = (msg) => {
84
- stderr.write(`harness record ${verbName}: ${msg}\n`);
85
- };
86
- return { note, cwd: opts.cwd ?? process.cwd(), sessionId: resolveSession(opts) };
87
- }
88
- /**
89
- * The one shared "this flag was misused" failure shape: warn on stderr and
90
- * hand back the ready-to-`return` EX_USAGE `RecordResult`. Extracted when
91
- * `optionalTagValue` (task 2699b476) grew the second copy of this
92
- * five-line construction and the duplication fitness function
93
- * (`scripts/check-duplication.mjs`) flagged it.
94
- */
95
- function usageFailure(reason, sessionId, note) {
96
- note(reason);
97
- return {
98
- ok: false,
99
- result: { exitCode: EX_USAGE, wrote: false, content: "", sessionId, branch: "", reason },
100
- };
101
- }
102
- /**
103
- * Trim `value` and refuse it if empty (a required flag / positional
104
- * argument left blank). Returns the ready-to-`return`ed EX_USAGE
105
- * `RecordResult` on failure so callers do not repeat that construction
106
- * — shared by every "--pr / --task / --verdict / summary must not be
107
- * empty" check across the three verbs.
108
- */
109
- function requireNonEmpty(value, flagLabel, sessionId, note) {
110
- const trimmed = (value ?? "").trim();
111
- if (trimmed.length === 0) {
112
- return usageFailure(`${flagLabel} must not be empty`, sessionId, note);
113
- }
114
- return { ok: true, value: trimmed };
115
- }
116
- /**
117
- * Ledger tag namespaces the shipped gates read (`requires.ledger_tag`).
118
- * Used for FREE TEXT only (`--verdict`, summaries): the matcher is a
119
- * case-sensitive substring test (`src/policies/requires.ts`), so free text
120
- * carrying `<namespace>:` glued to a following value reads as a tag.
121
- * Ref-like and id-like values are checked structurally instead (no `:`, no
122
- * whitespace), which closes every namespace including custom ones.
123
- */
124
- const TAG_NAMESPACES = [
125
- "review-subagent",
126
- "review",
127
- "dogfood",
128
- "preflight",
129
- "risk-approved",
130
- "risk-override",
131
- ];
132
- // `<namespace>:` immediately followed by a non-whitespace character; prose such
133
- // as "code-review: approved" is not a tag token because a gate's substituted
134
- // value is never empty and never starts with a space.
135
- const TAG_TOKEN_RE = new RegExp(`(?:${TAG_NAMESPACES.join("|")}):(?=\\S)`);
136
- // ASCII whitespace only: git ref names forbid exactly these, and Unicode
137
- // whitespace without a `:` cannot form a tag token under substring matching.
138
- const ASCII_WHITESPACE_RE = /[ \t\r\n\v\f]/;
139
- /**
140
- * A tag value: a ref-like or id-like token (`--branch`, `--base`, `--task`,
141
- * `--pr`, dogfood `--session`) that is embedded in a ledger tag. It must be
142
- * non-empty, free of ASCII whitespace (the fact content is space-separated
143
- * tag text, so whitespace would split into a second tag) and free of `:`
144
- * (a `:` is what turns a value into `<namespace>:<value>` tag text). Git ref
145
- * names forbid both characters, so no real branch is refused. The shape is
146
- * otherwise loose (task 2699b476): anything the gate's `${TASK_ID}`
147
- * substitution can compare against is acceptable (task 237cc609).
148
- */
149
- function checkTagValue(value, flagLabel, sessionId, note) {
150
- const trimmed = value.trim();
151
- if (trimmed.length === 0 || ASCII_WHITESPACE_RE.test(trimmed)) {
152
- return usageFailure(`${flagLabel} must be a non-empty value with no whitespace ` +
153
- `(it namespaces one ledger tag); got ${JSON.stringify(value)}`, sessionId, note);
154
- }
155
- if (trimmed.includes(":")) {
156
- return usageFailure(`${flagLabel} must not contain ':' (it would plant ledger tag text such as ` +
157
- `${TAG_NAMESPACES.map((n) => `${n}:`).join(", ")}); got ${JSON.stringify(value)}`, sessionId, note);
158
- }
159
- return { ok: true, value: trimmed };
160
- }
161
- /** An OPTIONAL tag value: absent stays absent, present goes through `checkTagValue`. */
162
- function optionalTagValue(value, flagLabel, sessionId, note) {
163
- if (value === undefined)
164
- return { ok: true, value: undefined };
165
- return checkTagValue(value, flagLabel, sessionId, note);
166
- }
167
- /**
168
- * Free text (`--verdict`, summaries) stays free, but may not carry a
169
- * recognised `<namespace>:` immediately followed by a non-whitespace character:
170
- * the text lands verbatim in the fact content, where the substring matcher
171
- * would read that as a tag. Prose like "code-review: approved" is kept. Rejected
172
- * rather than rewritten, so the audit text is never altered silently.
173
- */
174
- function rejectTagTokens(value, flagLabel, sessionId, note) {
175
- if (TAG_TOKEN_RE.test(value)) {
176
- return usageFailure(`${flagLabel} must not contain ledger tag text such as ` +
177
- `${TAG_NAMESPACES.map((n) => `${n}:`).join(", ")} glued to a value ` +
178
- `(it would plant a second ledger tag); got ${JSON.stringify(value)}`, sessionId, note);
179
- }
180
- return { ok: true, value };
181
- }
182
- /**
183
- * Required value: keeps the plain "must not be empty" message, then runs
184
- * `check` (tag shape for `--pr` / `--task`, tag-token rejection for free text).
185
- */
186
- function requireChecked(value, flagLabel, sessionId, note, check) {
187
- const nonEmpty = requireNonEmpty(value, flagLabel, sessionId, note);
188
- return nonEmpty.ok ? check(nonEmpty.value, flagLabel, sessionId, note) : nonEmpty;
189
- }
190
- const requireTagValue = (value, flagLabel, sessionId, note) => requireChecked(value, flagLabel, sessionId, note, checkTagValue);
191
- const requireFreeText = (value, flagLabel, sessionId, note) => requireChecked(value, flagLabel, sessionId, note, rejectTagTokens);
192
- /**
193
- * Resolve the branch tag `review` and `review-subagent` both require:
194
- * explicit `--branch` wins, otherwise `resolveGitContext(cwd)` (the SAME
195
- * function the preflight-before-* gates use). Returns the ready-to-
196
- * `return`ed failure `RecordResult` on the shared "cannot resolve any
197
- * branch" degrade path so callers do not repeat that construction.
198
- */
199
- function resolveRequiredBranch(cwd, explicitBranch, sessionId, note) {
200
- const gitContext = resolveGitContext(cwd);
201
- const rawBranch = (explicitBranch ?? "").trim() || gitContext.branch;
202
- if (rawBranch.length === 0) {
203
- const reason = "no branch resolvable (cwd is not inside a git work tree, or HEAD is detached); pass --branch <name>";
204
- note(reason);
205
- return {
206
- ok: false,
207
- result: { exitCode: EX_FAIL, wrote: false, content: "", sessionId, branch: "", reason },
208
- };
209
- }
210
- const checked = checkTagValue(rawBranch, "--branch", sessionId, note);
211
- if (!checked.ok)
212
- return checked;
213
- return { ok: true, branch: checked.value };
214
- }
215
- /**
216
- * Shared tail every verb runs last: write the fact, translate a failure
217
- * into the degrade-with-reason `RecordResult` shape, or report success.
218
- */
219
- async function finishRecordWrite(opts, sessionId, branch, source, content, note) {
220
- const written = await writeLedgerFact(opts, sessionId, source, content);
221
- if (!written.ok) {
222
- note(written.reason);
223
- return { exitCode: EX_FAIL, wrote: false, content, sessionId, branch, reason: written.reason };
224
- }
225
- return { exitCode: 0, wrote: true, content, sessionId, branch };
226
- }
227
- // ---------------------------------------------------------------------------
228
- // Base-branch resolution for `record review` (--base flag > origin/HEAD
229
- // filesystem fallback > omit with a loud stderr warning). No `gh`
230
- // shell-out: everything is read straight off the `.git` directory,
231
- // reusing runtime/git-context.ts's exported `findGitEntry` walk instead
232
- // of re-implementing it. `resolveOriginHeadBase` / `resolveCommonDir`
233
- // themselves now live in runtime/git-context.ts too (task post-merge-gate,
234
- // T-001) so `policy-packs/builtin/post-merge-gate-runtime.ts` can share
235
- // them without a policy-pack module reaching into `cli/`; imported here
236
- // unchanged.
237
- // ---------------------------------------------------------------------------
238
- /**
239
- * Resolve the base branch for `record review`: explicit `--base` wins,
240
- * then the origin/HEAD filesystem fallback, then omission with a loud
241
- * stderr warning (never a silent gap — the operator needs to know the
242
- * `review:<base>` tag did not land).
243
- */
244
- function resolveBase(cwd, explicitBase, note) {
245
- const flag = (explicitBase ?? "").trim();
246
- if (flag.length > 0)
247
- return flag;
248
- const gitDir = findGitEntry(cwd)?.gitDir;
249
- if (gitDir) {
250
- const base = resolveOriginHeadBase(resolveCommonDir(gitDir));
251
- if (base)
252
- return base;
253
- }
254
- note("no --base given and origin/HEAD could not be resolved (checked " +
255
- "refs/remotes/origin/HEAD and packed-refs); omitting the review:<base> tag. " +
256
- "Pass --base <branch> to record it explicitly.");
257
- return undefined;
258
- }
259
- export async function runRecordReview(opts) {
260
- const { note, cwd, sessionId } = initRecordVerb(opts, "review");
261
- const summaryResult = requireFreeText(opts.summary, "summary", sessionId, note);
262
- if (!summaryResult.ok)
263
- return summaryResult.result;
264
- const summary = summaryResult.value;
265
- const prResult = requireTagValue(opts.pr, "--pr", sessionId, note);
266
- if (!prResult.ok)
267
- return prResult.result;
268
- const pr = prResult.value;
269
- const branchResult = resolveRequiredBranch(cwd, opts.branch, sessionId, note);
270
- if (!branchResult.ok)
271
- return branchResult.result;
272
- const branch = branchResult.branch;
273
- const taskResult = optionalTagValue(opts.task, "--task", sessionId, note);
274
- if (!taskResult.ok)
275
- return taskResult.result;
276
- const task = taskResult.value;
277
- const baseResult = optionalTagValue(resolveBase(cwd, opts.base, note), "--base", sessionId, note);
278
- if (!baseResult.ok)
279
- return baseResult.result;
280
- const base = baseResult.value;
281
- // One fact, every tag family a merge/PR gate can key on: the PR number,
282
- // the working branch, the base branch, and (task 2699b476) the
283
- // agent-tasks task id the two task-scoped merge gates read. Recording a
284
- // review once therefore satisfies whichever surface actually fires,
285
- // instead of asking the operator to predict it (docs/CLI.md, "The
286
- // merge-surface trap"). TAG_SUMMARY_SEPARATOR keeps the emitted content
287
- // byte-identical to what this verb has always written.
288
- const tags = [`review:${pr}`, `review:${branch}`];
289
- if (base !== undefined)
290
- tags.push(`review:${base}`);
291
- if (task !== undefined)
292
- tags.push(`review:${task}`);
293
- const content = `${tags.join(" ")} ${TAG_SUMMARY_SEPARATOR} ${summary}`;
294
- return finishRecordWrite(opts, sessionId, branch, LEDGER_SOURCE_REVIEW, content, note);
295
- }
296
- export async function runRecordReviewSubagent(opts) {
297
- const { note, cwd, sessionId } = initRecordVerb(opts, "review-subagent");
298
- // Exactly one of --task / --adhoc: a task-based flow must never silently
299
- // skip the review-subagent:<task> tag (the MCP-surface gate keys on it),
300
- // and an ad-hoc flow must never invent a task id.
301
- const adhoc = opts.adhoc === true;
302
- if (adhoc && opts.task !== undefined) {
303
- return usageFailure("--task and --adhoc are mutually exclusive; pass exactly one", sessionId, note).result;
304
- }
305
- if (!adhoc && opts.task === undefined) {
306
- return usageFailure("one of --task <id> or --adhoc is required (--adhoc records a review for work without an agent-tasks task)", sessionId, note).result;
307
- }
308
- let taskTag = "";
309
- if (opts.task !== undefined) {
310
- const taskResult = requireTagValue(opts.task, "--task", sessionId, note);
311
- if (!taskResult.ok)
312
- return taskResult.result;
313
- taskTag = `review-subagent:${taskResult.value} `;
314
- }
315
- const verdictResult = requireFreeText(opts.verdict, "--verdict", sessionId, note);
316
- if (!verdictResult.ok)
317
- return verdictResult.result;
318
- const verdict = verdictResult.value;
319
- const branchResult = resolveRequiredBranch(cwd, opts.branch, sessionId, note);
320
- if (!branchResult.ok)
321
- return branchResult.result;
322
- const branch = branchResult.branch;
323
- const summaryText = typeof opts.summary === "string" ? opts.summary.trim() : "";
324
- const summaryChecked = rejectTagTokens(summaryText, "summary", sessionId, note);
325
- if (!summaryChecked.ok)
326
- return summaryChecked.result;
327
- const summary = summaryChecked.value;
328
- const content = `${taskTag}review-subagent:${branch} verdict:${verdict}${summary.length > 0 ? ` — ${summary}` : ""}`;
329
- return finishRecordWrite(opts, sessionId, branch, LEDGER_SOURCE_REVIEW_SUBAGENT, content, note);
330
- }
331
- export async function runRecordDogfood(opts) {
332
- const { note, sessionId } = initRecordVerb(opts, "dogfood");
333
- const summaryResult = requireFreeText(opts.summary, "summary", sessionId, note);
334
- if (!summaryResult.ok)
335
- return summaryResult.result;
336
- const summary = summaryResult.value;
337
- // The ledger session and the `dogfood:<session>` content must name the same
338
- // id, so a padded value is refused instead of trimmed for the content only.
339
- if (sessionId !== sessionId.trim()) {
340
- return usageFailure(`--session must not have leading or trailing whitespace; got ${JSON.stringify(sessionId)}`, sessionId, note).result;
341
- }
342
- const sessionResult = checkTagValue(sessionId, "--session", sessionId, note);
343
- if (!sessionResult.ok)
344
- return sessionResult.result;
345
- const content = `dogfood:${sessionResult.value} ${TAG_SUMMARY_SEPARATOR} ${summary}`;
346
- return finishRecordWrite(opts, sessionId, "", LEDGER_SOURCE_DOGFOOD, content, note);
347
- }
348
- //# sourceMappingURL=index.js.map