@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,166 +0,0 @@
1
- import { z } from "zod";
2
- const NonblankString = z.string().min(1).refine((value) => value.trim().length > 0, {
3
- message: "must not be blank",
4
- });
5
- // Codex expands only a bare pipe-list of simple names. Keeping the same
6
- // restricted grammar here means a configured name cannot change matcher
7
- // syntax or introduce a regular-expression fragment.
8
- const SimpleToolName = z.string().min(1).regex(/^[A-Za-z0-9_.:-]+$/, {
9
- message: "must be a simple tool name without matcher metacharacters",
10
- }).refine((value) => value.trim().length > 0, { message: "must not be blank" });
11
- const DescriptionWindowSchema = z
12
- .object({
13
- marker: NonblankString,
14
- contains: NonblankString,
15
- max_chars: z.number().int().positive(),
16
- })
17
- .strict();
18
- const ParentReferencePattern = z.string().nullable().superRefine((value, ctx) => {
19
- if (value === null)
20
- return;
21
- try {
22
- new RegExp(value, "i");
23
- }
24
- catch {
25
- ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must be valid regular-expression source" });
26
- }
27
- });
28
- const ParentUrlPattern = z.string().nullable().superRefine((value, ctx) => {
29
- if (value === null)
30
- return;
31
- try {
32
- new RegExp(value);
33
- }
34
- catch {
35
- ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must be valid regular-expression source" });
36
- }
37
- });
38
- /**
39
- * The optional reminder integration's one shared strict input schema.
40
- * Runtime consumers deliberately parse this schema again: a previously
41
- * generated hook must turn into a no-op when an operator disables or breaks
42
- * the current manifest after apply.
43
- */
44
- export const StayInScopeConfigSchema = z
45
- .object({
46
- enabled: z.boolean(),
47
- tools: z.array(SimpleToolName).min(1).optional(),
48
- label_markers: z.array(NonblankString).optional(),
49
- description_markers: z.array(NonblankString).optional(),
50
- description_window: DescriptionWindowSchema.nullable().optional(),
51
- parent_reference_pattern: ParentReferencePattern.optional(),
52
- parent_url_pattern: ParentUrlPattern.optional(),
53
- messages: z
54
- .object({ reminder: NonblankString, second_order: NonblankString })
55
- .strict()
56
- .optional(),
57
- })
58
- .strict()
59
- .superRefine((value, ctx) => {
60
- if (!value.enabled)
61
- return;
62
- for (const key of [
63
- "tools",
64
- "label_markers",
65
- "description_markers",
66
- "description_window",
67
- "parent_reference_pattern",
68
- "parent_url_pattern",
69
- "messages",
70
- ]) {
71
- if (value[key] === undefined) {
72
- ctx.addIssue({ code: z.ZodIssueCode.custom, path: [key], message: "is required when enabled:true" });
73
- }
74
- }
75
- if ((value.label_markers?.length ?? 0) === 0 &&
76
- (value.description_markers?.length ?? 0) === 0 &&
77
- value.description_window === null) {
78
- ctx.addIssue({
79
- code: z.ZodIssueCode.custom,
80
- message: "enabled:true requires at least one label, description, or window detector",
81
- });
82
- }
83
- });
84
- /** Returns null for absent, disabled, or invalid configuration. */
85
- export function resolveStayInScopeConfig(raw) {
86
- const parsed = StayInScopeConfigSchema.safeParse(raw);
87
- if (!parsed.success || !parsed.data.enabled)
88
- return null;
89
- const value = parsed.data;
90
- // superRefine establishes these fields for enabled:true. The narrow casts
91
- // keep the public resolver free of a second, diverging validation path.
92
- if (value.tools === undefined ||
93
- value.label_markers === undefined ||
94
- value.description_markers === undefined ||
95
- value.description_window === undefined ||
96
- value.parent_reference_pattern === undefined ||
97
- value.parent_url_pattern === undefined ||
98
- value.messages === undefined) {
99
- return null;
100
- }
101
- return {
102
- tools: value.tools,
103
- labelMarkers: value.label_markers,
104
- descriptionMarkers: value.description_markers,
105
- descriptionWindow: value.description_window === null
106
- ? null
107
- : {
108
- marker: value.description_window.marker,
109
- contains: value.description_window.contains,
110
- maxChars: value.description_window.max_chars,
111
- },
112
- parentReferencePattern: value.parent_reference_pattern,
113
- parentUrlPattern: value.parent_url_pattern,
114
- messages: {
115
- reminder: value.messages.reminder,
116
- secondOrder: value.messages.second_order,
117
- },
118
- };
119
- }
120
- function firstParentReference(description, pattern) {
121
- if (pattern === null)
122
- return null;
123
- const match = description.match(new RegExp(pattern, "i"));
124
- const capture = match?.[1];
125
- return typeof capture === "string" && /^[0-9]+$/.test(capture) ? capture : null;
126
- }
127
- export function evaluateStayInScopeMatch(config, labels, description) {
128
- const labelMatch = labels.some((label) => config.labelMarkers.some((marker) => label.toLowerCase().includes(marker.toLowerCase())));
129
- const explicitMarker = config.descriptionMarkers.some((marker) => description.includes(marker));
130
- const window = config.descriptionWindow;
131
- const windowMatch = !explicitMarker &&
132
- window !== null &&
133
- (() => {
134
- const index = description.indexOf(window.marker);
135
- return index !== -1 && description.slice(index, index + window.maxChars).toLowerCase().includes(window.contains.toLowerCase());
136
- })();
137
- const matchedRule = labelMatch
138
- ? "label"
139
- : explicitMarker
140
- ? "explicit-marker"
141
- : windowMatch
142
- ? "hintergrund-marker"
143
- : "none";
144
- const parentReference = firstParentReference(description, config.parentReferencePattern);
145
- return {
146
- matched: matchedRule !== "none",
147
- matchedRule,
148
- secondOrder: labelMatch && parentReference !== null,
149
- parentReference,
150
- };
151
- }
152
- export function extractConfiguredParentUrl(config, description, parentReference) {
153
- if (config.parentUrlPattern !== null) {
154
- const pattern = new RegExp(config.parentUrlPattern, "g");
155
- let match;
156
- while ((match = pattern.exec(description)) !== null) {
157
- if (match[0].length > 0)
158
- return match[0];
159
- if (pattern.lastIndex >= description.length)
160
- break;
161
- pattern.lastIndex += 1;
162
- }
163
- }
164
- return parentReference === null ? null : `#${parentReference}`;
165
- }
166
- //# sourceMappingURL=stay-in-scope-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stay-in-scope-config.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.ts"],"names":[],"mappings":"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"}
@@ -1,164 +0,0 @@
1
- import { type ApprovalMarker, type CheckApprovalMarkerOptions, type MarkerCheck } from "./markers.js";
2
- import { type ApprovalMarkerKind } from "./persisted-reports.js";
3
- export declare const APPROVAL_MARKER_TASK_PREFIX = "task-";
4
- /** Filesystem path of a per-task approval marker. */
5
- export declare function taskApprovalMarkerPathFor(generatedDir: string, taskId: string): string;
6
- /**
7
- * Operator-side: write a task-scoped marker file. Atomic. Caller is
8
- * `harness approve understanding --task <id>`. The session marker is
9
- * written separately by the same caller for back-compat.
10
- *
11
- * Signed the same way as `writeApprovalMarker` (harness/f9485cc7), using
12
- * `task-<id>` (the exact string `checkActiveClaimApprovalMarker` looks
13
- * up) as the signed markerId — so a validly-signed task marker cannot be
14
- * copied onto a different task id (or the session marker's id) and still
15
- * verify.
16
- */
17
- export declare function writeTaskApprovalMarker(generatedDir: string, taskId: string, marker: ApprovalMarker): string;
18
- /**
19
- * Gate-side: resolve the active agent-tasks claim (via `active-claim`)
20
- * and check ONLY that task's approval marker. When no active claim is
21
- * recorded, this returns `matched:false` so the caller falls through
22
- * to the session marker — preserving the legacy contract for solo /
23
- * non-agent-tasks workflows that never call `task_start`.
24
- *
25
- * Replaces the v1 "any task marker satisfies the gate" behaviour
26
- * (PR #198): a stale approval from a different, already-completed task
27
- * was silently authorising every Edit/Write/Bash in the next session
28
- * because the scan returned the first existing marker regardless of
29
- * which task the agent had actually claimed.
30
- *
31
- * Same safety filters as `checkApprovalMarker` (signature verification,
32
- * symlink rejection, optional freshness via `maxAgeMs`); the only
33
- * difference is the filename suffix derived from `active-claim`.
34
- */
35
- export declare function checkActiveClaimApprovalMarker(generatedDir: string, opts?: CheckApprovalMarkerOptions): MarkerCheck;
36
- export interface SessionMarkerCheck extends MarkerCheck {
37
- /**
38
- * True when a validly signed session marker existed but was refused
39
- * because of its task binding (task 5018c0c4): it was granted for a
40
- * different active claim than the current one, or it carries no
41
- * binding at all (written by a release before the binding existed).
42
- * `matched`, `expired` and `forged` are all false in that case: the
43
- * gate treats it exactly like a missing marker.
44
- */
45
- bindingRefused: boolean;
46
- }
47
- /**
48
- * Gate-side: the session-keyed marker, accepted only while it belongs to
49
- * the current task (task 5018c0c4, operator decision: bind the session
50
- * marker to the task). `writeApprovalMarker` records the active-claim
51
- * task id at approval time (`null` when none was held); this reader
52
- * compares it with the active claim NOW and refuses the marker when the
53
- * two differ, so an approval never carries over to another task, even
54
- * when the previous task completed outside the session where no
55
- * PostToolUse hook could expire it (a merge in the UI, a webhook moving
56
- * the task to done). A marker without the binding field (older release)
57
- * is refused too: one fresh approve re-binds it.
58
- *
59
- * The binding is checked BEFORE the `maxAgeMs` verdict is passed on, so a
60
- * marker that belongs to another task never reads as `expired` (that
61
- * signal means "this task's own approval aged out" and opens the
62
- * recovery-git-commit exemption, see src/runtime/recovery-git-commit.ts).
63
- *
64
- * `opts.taskBinding` is required so every reader states it: pass
65
- * `!lifecycle.legacyMode`. Under `approval_lifecycle: { mode: session }`
66
- * (operator decision on task 5018c0c4) the binding is NOT applied: the
67
- * documented contract of that mode is one approval for the whole
68
- * session, bounded only by `max_age`, so a bound or unbound session
69
- * marker counts for every task there. The writer still records
70
- * `claimTaskId` in every mode, so switching away from `mode: session`
71
- * takes effect on the next check without a re-approve.
72
- */
73
- export interface CheckSessionApprovalMarkerOptions extends CheckApprovalMarkerOptions {
74
- /** Apply the claimed-task binding (false under `mode: session`). */
75
- taskBinding: boolean;
76
- }
77
- export declare function checkSessionApprovalMarker(generatedDir: string, sessionId: string, opts: CheckSessionApprovalMarkerOptions): SessionMarkerCheck;
78
- export interface OperatorMarkerApproval {
79
- matched: boolean;
80
- /** Which marker satisfied the gate; null when neither matched. */
81
- source: "task" | "session" | null;
82
- /** Detail of the decisive check (the match, or the session-scoped miss). */
83
- detail: string;
84
- /** Task-scoped check detail, for callers that trace the fall-through. */
85
- taskCheckDetail: string;
86
- /**
87
- * The matched marker's signed `reportContentHash`; null when no marker
88
- * matched or the matched marker binds no report. The gate-read
89
- * cross-check (`verifyApprovedReportHash`) consumes it.
90
- */
91
- reportContentHash: string | null;
92
- /**
93
- * A session marker that ALSO matched behind a matched task marker whose
94
- * signed hash is non-null (null otherwise). The gate-read cross-check
95
- * falls back to it when the task marker's report content is gone: a task
96
- * marker is not bound to a session, so it can be signed for another
97
- * session's report while this session's own marker still verifies.
98
- */
99
- sessionFallback: {
100
- detail: string;
101
- reportContentHash: string | null;
102
- } | null;
103
- /**
104
- * True when EITHER the task-scoped or the session-scoped marker
105
- * existed but aged past `approval_lifecycle.max_age` (task 6e888423).
106
- * False when `matched` is true, and false when a marker was simply
107
- * absent (never approved, or cleared by a task-completion boundary
108
- * tool) — distinguishing "this identity had a real approval that
109
- * merely expired" from "this identity was never approved" / "a new
110
- * task just started". PreToolUse hooks use this (never on its own —
111
- * always alongside `isRecoveryGitCommit`) to decide whether a bare
112
- * recovery `git commit` may proceed without a fresh Understanding
113
- * Report; see src/runtime/recovery-git-commit.ts.
114
- */
115
- expired: boolean;
116
- /**
117
- * True when EITHER the task-scoped or the session-scoped marker
118
- * existed but FAILED signature verification (harness/f9485cc7) —
119
- * missing/invalid signature, wrong `alg`, or tampered payload. Distinct
120
- * from a marker simply being absent, so a caller can log a forgery
121
- * attempt distinctly from the routine "not approved yet" case.
122
- */
123
- forged: boolean;
124
- /**
125
- * True when the session marker was refused only because of its task
126
- * binding (`SessionMarkerCheck.bindingRefused`, task 5018c0c4): it
127
- * belongs to another task, or predates the binding. Always false when
128
- * `matched` is true. Lets the PreToolUse hooks say "the approval
129
- * belongs to another task" instead of "no approval marker".
130
- */
131
- sessionBindingRefused: boolean;
132
- }
133
- /**
134
- * Shared marker resolution for the Claude and Codex understanding-gate
135
- * PreToolUse hooks (task e7c2ec3c): parse `approval_lifecycle` from the
136
- * pack config, consult the task-scoped (active-claim) marker first and
137
- * the session-scoped marker second, both under the same TTL. One code
138
- * path on purpose — the Codex hook previously called the bare session
139
- * check, so `max_age` and task-scoping silently applied only to Claude
140
- * sessions.
141
- */
142
- export declare function checkOperatorApprovalMarkers(generatedDir: string, sessionId: string, packConfig: unknown, stderr?: {
143
- write: (s: string) => void;
144
- } | null): OperatorMarkerApproval;
145
- /** Clear a specific task-scoped marker. Used by the post-tool-use hook. */
146
- export declare function clearTaskApprovalMarker(generatedDir: string, taskId: string): void;
147
- export type MatchedMarkerReportCheck = {
148
- ok: true;
149
- source: ApprovalMarkerKind;
150
- detail: string;
151
- } | {
152
- ok: false;
153
- detail: string;
154
- };
155
- /**
156
- * Gate-read report cross-check for a matched operator marker, shared by the
157
- * Claude and Codex PreToolUse hooks (task fa423e9b). Applies
158
- * `verifyApprovedReportHash` to the matched marker and, when that fails and
159
- * a session marker matched behind a task marker, to the session marker, so
160
- * the verdict never depends on which marker the check order happened to
161
- * pick. On success `source`/`detail` describe the marker that verified; on
162
- * failure `detail` is the block reason.
163
- */
164
- export declare function verifyMatchedMarkerReport(reportsDir: string, markers: OperatorMarkerApproval): MatchedMarkerReportCheck;
@@ -1,275 +0,0 @@
1
- // Task-scoped approval markers (harness/1ee26e77), split out of the
2
- // former monolithic understanding-before-execution-runtime.ts (structural
3
- // concentration slice 2, agent-tasks 348a4d42). Pure move: see
4
- // src/policy-packs/builtin/understanding-before-execution/index.ts for
5
- // the re-exported public surface.
6
- import * as fs from "node:fs";
7
- import * as path from "node:path";
8
- import { atomicWriteFile } from "../../../io/atomic-write.js";
9
- import { signMarker } from "../../../runtime/approval-signing.js";
10
- import { readActiveClaim } from "./active-claim.js";
11
- import { parseApprovalLifecycle } from "./lifecycle.js";
12
- import { APPROVAL_MARKER_DIRNAME, checkApprovalMarker, } from "./markers.js";
13
- import { verifyApprovedReportHash, } from "./persisted-reports.js";
14
- // Task-scoped approval markers (harness/1ee26e77). When the operator
15
- // passes `--task <id>` to `harness approve understanding`, a second
16
- // marker file is written next to the session marker, keyed by the
17
- // agent-tasks task id and prefixed `task-` so a directory scan can
18
- // distinguish them from session-keyed markers (UUIDs do not start with
19
- // `task-`). Either marker satisfies the gate; the session marker
20
- // remains for back-compat with operators who don't pass --task and for
21
- // non-agent-tasks workflows.
22
- //
23
- // Why task-scope: a session can span many distinct tasks; the operator's
24
- // Understanding Report for task A doesn't transfer trust to task B
25
- // (different surface, different acceptance criteria). Without per-task
26
- // markers a multi-task session re-uses the first task's approval for
27
- // every subsequent task. The expire_on_tool_match PostToolUse hook
28
- // deletes the session marker on a listed completion boundary (a
29
- // `task_finish` to done, `task_abandon`, `task_merge`, ...), but if
30
- // delivery is unreliable (e.g. PostToolUse skipped for an MCP tool) or
31
- // the task completes outside the session (a merge in the UI), the file
32
- // persists. A task-keyed marker side-steps that delivery concern because
33
- // the next task's id is different even if the previous marker file
34
- // outlives its scope; outside `mode: session` the session marker gets
35
- // the same property from its signed task binding
36
- // (`checkSessionApprovalMarker`, task 5018c0c4).
37
- export const APPROVAL_MARKER_TASK_PREFIX = "task-";
38
- /**
39
- * Reject taskIds that would escape the approvals/ namespace via path
40
- * traversal or directory separators. The operator's --task flag value
41
- * lands here verbatim; an accidental shell-expanded `..` or `/` would
42
- * otherwise write to a sibling directory. This is defensive — the
43
- * caller is the operator's own shell — but pins the trust boundary.
44
- */
45
- function rejectMalformedTaskId(taskId) {
46
- if (taskId.length === 0) {
47
- throw new Error("taskId is empty");
48
- }
49
- if (taskId.includes("/") || taskId.includes("\\") || taskId.includes("..")) {
50
- throw new Error(`taskId contains path-separator or traversal characters: ${JSON.stringify(taskId)}`);
51
- }
52
- }
53
- /** Filesystem path of a per-task approval marker. */
54
- export function taskApprovalMarkerPathFor(generatedDir, taskId) {
55
- rejectMalformedTaskId(taskId);
56
- return path.join(generatedDir, APPROVAL_MARKER_DIRNAME, `${APPROVAL_MARKER_TASK_PREFIX}${taskId}`);
57
- }
58
- /**
59
- * Operator-side: write a task-scoped marker file. Atomic. Caller is
60
- * `harness approve understanding --task <id>`. The session marker is
61
- * written separately by the same caller for back-compat.
62
- *
63
- * Signed the same way as `writeApprovalMarker` (harness/f9485cc7), using
64
- * `task-<id>` (the exact string `checkActiveClaimApprovalMarker` looks
65
- * up) as the signed markerId — so a validly-signed task marker cannot be
66
- * copied onto a different task id (or the session marker's id) and still
67
- * verify.
68
- */
69
- export function writeTaskApprovalMarker(generatedDir, taskId, marker) {
70
- const filePath = taskApprovalMarkerPathFor(generatedDir, taskId);
71
- const markerId = `${APPROVAL_MARKER_TASK_PREFIX}${taskId}`;
72
- const signed = signMarker(generatedDir, markerId, marker);
73
- atomicWriteFile(filePath, `${JSON.stringify(signed, null, 2)}\n`, { mode: 0o600 });
74
- return filePath;
75
- }
76
- /**
77
- * Gate-side: resolve the active agent-tasks claim (via `active-claim`)
78
- * and check ONLY that task's approval marker. When no active claim is
79
- * recorded, this returns `matched:false` so the caller falls through
80
- * to the session marker — preserving the legacy contract for solo /
81
- * non-agent-tasks workflows that never call `task_start`.
82
- *
83
- * Replaces the v1 "any task marker satisfies the gate" behaviour
84
- * (PR #198): a stale approval from a different, already-completed task
85
- * was silently authorising every Edit/Write/Bash in the next session
86
- * because the scan returned the first existing marker regardless of
87
- * which task the agent had actually claimed.
88
- *
89
- * Same safety filters as `checkApprovalMarker` (signature verification,
90
- * symlink rejection, optional freshness via `maxAgeMs`); the only
91
- * difference is the filename suffix derived from `active-claim`.
92
- */
93
- export function checkActiveClaimApprovalMarker(generatedDir, opts = {}) {
94
- const claim = readActiveClaim(generatedDir);
95
- if (claim === null) {
96
- return {
97
- matched: false,
98
- detail: `no active-claim recorded; task-scoped check skipped`,
99
- marker: null,
100
- expired: false,
101
- forged: false,
102
- };
103
- }
104
- const markerName = `${APPROVAL_MARKER_TASK_PREFIX}${claim}`;
105
- const check = checkApprovalMarker(generatedDir, markerName, opts);
106
- if (check.matched) {
107
- return {
108
- matched: true,
109
- detail: `task-scoped marker for active-claim ${claim}: ${check.detail}`,
110
- marker: check.marker,
111
- expired: false,
112
- forged: false,
113
- };
114
- }
115
- return {
116
- matched: false,
117
- detail: `active-claim ${claim} has no fresh task marker (${check.detail})`,
118
- marker: null,
119
- expired: check.expired,
120
- forged: check.forged,
121
- };
122
- }
123
- function describeClaim(taskId) {
124
- return taskId === null ? "no claimed task" : `task ${taskId}`;
125
- }
126
- export function checkSessionApprovalMarker(generatedDir, sessionId, opts) {
127
- const { taskBinding, ...ageOpts } = opts;
128
- const check = checkApprovalMarker(generatedDir, sessionId, ageOpts);
129
- if (check.marker === null || !taskBinding) {
130
- // Absent, unreadable, forged, or a malformed session id: nothing to
131
- // bind, the plain verdict stands. Same under `mode: session`, where
132
- // the binding does not apply.
133
- return { ...check, bindingRefused: false };
134
- }
135
- const refused = (detail) => ({
136
- matched: false,
137
- detail,
138
- marker: null,
139
- expired: false,
140
- forged: false,
141
- bindingRefused: true,
142
- });
143
- if (!Object.prototype.hasOwnProperty.call(check.marker, "claimTaskId")) {
144
- return refused(`session approval marker for ${sessionId} carries no task binding (written by a harness release before approvals were bound to the claimed task); approve once more to bind it to ${describeClaim(readActiveClaim(generatedDir))}`);
145
- }
146
- const boundTo = check.marker.claimTaskId ?? null;
147
- const current = readActiveClaim(generatedDir);
148
- if (boundTo !== current) {
149
- return refused(`session approval for ${sessionId} belongs to another task: it was granted for ${describeClaim(boundTo)}, the active claim is now ${describeClaim(current)}; approve the Understanding Report for this task`);
150
- }
151
- return { ...check, bindingRefused: false };
152
- }
153
- /**
154
- * Shared marker resolution for the Claude and Codex understanding-gate
155
- * PreToolUse hooks (task e7c2ec3c): parse `approval_lifecycle` from the
156
- * pack config, consult the task-scoped (active-claim) marker first and
157
- * the session-scoped marker second, both under the same TTL. One code
158
- * path on purpose — the Codex hook previously called the bare session
159
- * check, so `max_age` and task-scoping silently applied only to Claude
160
- * sessions.
161
- */
162
- export function checkOperatorApprovalMarkers(generatedDir, sessionId, packConfig, stderr) {
163
- const lifecycleRaw = packConfig !== null && typeof packConfig === "object" && !Array.isArray(packConfig)
164
- ? packConfig["approval_lifecycle"]
165
- : undefined;
166
- const lifecycle = parseApprovalLifecycle(lifecycleRaw, stderr);
167
- const ageOpts = lifecycle.maxAgeMs !== undefined ? { maxAgeMs: lifecycle.maxAgeMs } : {};
168
- const taskMarker = checkActiveClaimApprovalMarker(generatedDir, ageOpts);
169
- if (taskMarker.matched) {
170
- const taskHash = taskMarker.marker?.reportContentHash ?? null;
171
- // Only a task marker that binds a report can fail the gate-read hash
172
- // check, so only then is the session marker read as its fallback.
173
- const sessionFallback = taskHash === null
174
- ? null
175
- : (() => {
176
- const fallback = checkSessionApprovalMarker(generatedDir, sessionId, {
177
- ...ageOpts,
178
- taskBinding: !lifecycle.legacyMode,
179
- });
180
- return fallback.matched
181
- ? {
182
- detail: fallback.detail,
183
- reportContentHash: fallback.marker?.reportContentHash ?? null,
184
- }
185
- : null;
186
- })();
187
- return {
188
- matched: true,
189
- source: "task",
190
- detail: taskMarker.detail,
191
- taskCheckDetail: taskMarker.detail,
192
- reportContentHash: taskHash,
193
- sessionFallback,
194
- expired: false,
195
- forged: false,
196
- sessionBindingRefused: false,
197
- };
198
- }
199
- const sessionMarker = checkSessionApprovalMarker(generatedDir, sessionId, {
200
- ...ageOpts,
201
- taskBinding: !lifecycle.legacyMode,
202
- });
203
- if (sessionMarker.matched) {
204
- return {
205
- matched: true,
206
- source: "session",
207
- detail: sessionMarker.detail,
208
- taskCheckDetail: taskMarker.detail,
209
- reportContentHash: sessionMarker.marker?.reportContentHash ?? null,
210
- sessionFallback: null,
211
- expired: false,
212
- forged: false,
213
- sessionBindingRefused: false,
214
- };
215
- }
216
- return {
217
- matched: false,
218
- source: null,
219
- detail: sessionMarker.detail,
220
- taskCheckDetail: taskMarker.detail,
221
- reportContentHash: null,
222
- sessionFallback: null,
223
- // `expired` is computed ONLY on this non-matched path, preserving the
224
- // "false when matched is true" invariant (task 6e888423 review):
225
- // e.g. a FRESH session marker (matched:true, returned above) must not
226
- // read expired:true just because a STALE sibling task marker also
227
- // exists — that sibling is irrelevant once the session marker itself
228
- // satisfied the gate. Either marker aged out counts here: a
229
- // task-scoped approval that expired (even though the session-scoped
230
- // check may simply have never existed) is just as legitimate a "this
231
- // had approval, it lapsed" signal as a session-scoped expiry.
232
- expired: taskMarker.expired || sessionMarker.expired,
233
- // Surfaced so a forgery attempt against EITHER marker is visible to
234
- // the caller even though the overall result is (correctly) unmatched
235
- // — mirrors the `expired` OR-merge above.
236
- forged: taskMarker.forged || sessionMarker.forged,
237
- sessionBindingRefused: sessionMarker.bindingRefused,
238
- };
239
- }
240
- /** Clear a specific task-scoped marker. Used by the post-tool-use hook. */
241
- export function clearTaskApprovalMarker(generatedDir, taskId) {
242
- try {
243
- fs.rmSync(taskApprovalMarkerPathFor(generatedDir, taskId));
244
- }
245
- catch {
246
- /* already gone */
247
- }
248
- }
249
- /**
250
- * Gate-read report cross-check for a matched operator marker, shared by the
251
- * Claude and Codex PreToolUse hooks (task fa423e9b). Applies
252
- * `verifyApprovedReportHash` to the matched marker and, when that fails and
253
- * a session marker matched behind a task marker, to the session marker, so
254
- * the verdict never depends on which marker the check order happened to
255
- * pick. On success `source`/`detail` describe the marker that verified; on
256
- * failure `detail` is the block reason.
257
- */
258
- export function verifyMatchedMarkerReport(reportsDir, markers) {
259
- const source = markers.source === "task" ? "task" : "session";
260
- const primary = {
261
- kind: source,
262
- reportContentHash: markers.reportContentHash,
263
- };
264
- const fallback = markers.sessionFallback === null
265
- ? null
266
- : { kind: "session", reportContentHash: markers.sessionFallback.reportContentHash };
267
- const verdict = verifyApprovedReportHash(reportsDir, primary, fallback);
268
- if (!verdict.ok)
269
- return verdict;
270
- if (verdict.kind === primary.kind || markers.sessionFallback === null) {
271
- return { ok: true, source: verdict.kind, detail: markers.detail };
272
- }
273
- return { ok: true, source: "session", detail: markers.sessionFallback.detail };
274
- }
275
- //# sourceMappingURL=task-markers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-markers.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/task-markers.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,0EAA0E;AAC1E,+DAA+D;AAC/D,uEAAuE;AACvE,kCAAkC;AAElC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,uBAAuB,EAEvB,mBAAmB,GAGpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,qEAAqE;AACrE,oEAAoE;AACpE,kEAAkE;AAClE,mEAAmE;AACnE,uEAAuE;AACvE,iEAAiE;AACjE,uEAAuE;AACvE,6BAA6B;AAC7B,EAAE;AACF,yEAAyE;AACzE,mEAAmE;AACnE,uEAAuE;AACvE,qEAAqE;AACrE,mEAAmE;AACnE,gEAAgE;AAChE,oEAAoE;AACpE,uEAAuE;AACvE,uEAAuE;AACvE,yEAAyE;AACzE,mEAAmE;AACnE,sEAAsE;AACtE,iDAAiD;AACjD,iDAAiD;AAEjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAEnD;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,MAAc;IAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,2DAA2D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,yBAAyB,CAAC,YAAoB,EAAE,MAAc;IAC5E,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,uBAAuB,EAAE,GAAG,2BAA2B,GAAG,MAAM,EAAE,CAAC,CAAC;AACrG,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,YAAoB,EACpB,MAAc,EACd,MAAsB;IAEtB,MAAM,QAAQ,GAAG,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,GAAG,2BAA2B,GAAG,MAAM,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1D,eAAe,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,8BAA8B,CAC5C,YAAoB,EACpB,OAAmC,EAAE;IAErC,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC5C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,qDAAqD;YAC7D,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,2BAA2B,GAAG,KAAK,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,uCAAuC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE;YACvE,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,gBAAgB,KAAK,8BAA8B,KAAK,CAAC,MAAM,GAAG;QAC1E,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;AACJ,CAAC;AAcD,SAAS,aAAa,CAAC,MAAqB;IAC1C,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC;AAChE,CAAC;AAiCD,MAAM,UAAU,0BAA0B,CACxC,YAAoB,EACpB,SAAiB,EACjB,IAAuC;IAEvC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,mBAAmB,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,oEAAoE;QACpE,oEAAoE;QACpE,8BAA8B;QAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAsB,EAAE,CAAC,CAAC;QACvD,OAAO,EAAE,KAAK;QACd,MAAM;QACN,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;QACvE,OAAO,OAAO,CACZ,+BAA+B,SAAS,4IAA4I,aAAa,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EAAE,CACnO,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IACjD,MAAM,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,CACZ,wBAAwB,SAAS,gDAAgD,aAAa,CAAC,OAAO,CAAC,6BAA6B,aAAa,CAAC,OAAO,CAAC,kDAAkD,CAC7M,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AAuDD;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAC1C,YAAoB,EACpB,SAAiB,EACjB,UAAmB,EACnB,MAA8C;IAE9C,MAAM,YAAY,GAChB,UAAU,KAAK,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACjF,CAAC,CAAE,UAAsC,CAAC,oBAAoB,CAAC;QAC/D,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,SAAS,GAAG,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,OAAO,GACX,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,UAAU,GAAG,8BAA8B,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACzE,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,iBAAiB,IAAI,IAAI,CAAC;QAC9D,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,eAAe,GACnB,QAAQ,KAAK,IAAI;YACf,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,QAAQ,GAAG,0BAA0B,CAAC,YAAY,EAAE,SAAS,EAAE;oBACnE,GAAG,OAAO;oBACV,WAAW,EAAE,CAAC,SAAS,CAAC,UAAU;iBACnC,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC,OAAO;oBACrB,CAAC,CAAC;wBACE,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,IAAI,IAAI;qBAC9D;oBACH,CAAC,CAAC,IAAI,CAAC;YACX,CAAC,CAAC,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,eAAe,EAAE,UAAU,CAAC,MAAM;YAClC,iBAAiB,EAAE,QAAQ;YAC3B,eAAe;YACf,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK;YACb,qBAAqB,EAAE,KAAK;SAC7B,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,0BAA0B,CAAC,YAAY,EAAE,SAAS,EAAE;QACxE,GAAG,OAAO;QACV,WAAW,EAAE,CAAC,SAAS,CAAC,UAAU;KACnC,CAAC,CAAC;IACH,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,eAAe,EAAE,UAAU,CAAC,MAAM;YAClC,iBAAiB,EAAE,aAAa,CAAC,MAAM,EAAE,iBAAiB,IAAI,IAAI;YAClE,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK;YACb,qBAAqB,EAAE,KAAK;SAC7B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,eAAe,EAAE,UAAU,CAAC,MAAM;QAClC,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE,IAAI;QACrB,sEAAsE;QACtE,iEAAiE;QACjE,sEAAsE;QACtE,kEAAkE;QAClE,qEAAqE;QACrE,4DAA4D;QAC5D,oEAAoE;QACpE,qEAAqE;QACrE,8DAA8D;QAC9D,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO;QACpD,oEAAoE;QACpE,qEAAqE;QACrE,0CAA0C;QAC1C,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM;QACjD,qBAAqB,EAAE,aAAa,CAAC,cAAc;KACpD,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,uBAAuB,CAAC,YAAoB,EAAE,MAAc;IAC1E,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC;AAMD;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAkB,EAClB,OAA+B;IAE/B,MAAM,MAAM,GAAuB,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,OAAO,GAAwB;QACnC,IAAI,EAAE,MAAM;QACZ,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC;IACF,MAAM,QAAQ,GACZ,OAAO,CAAC,eAAe,KAAK,IAAI;QAC9B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;IACxF,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxE,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;AACjF,CAAC"}
@@ -1 +0,0 @@
1
- export * from "./understanding-before-execution/index.js";
@@ -1,10 +0,0 @@
1
- // Re-export shim. The implementation moved to
2
- // ./understanding-before-execution/ (structural concentration slice 2,
3
- // agent-tasks 348a4d42), split into one sibling file per concern:
4
- // ledger.ts, markers.ts, persisted-reports.ts, lifecycle.ts,
5
- // task-markers.ts, post-tool-use-boundary.ts, active-claim.ts, composed
6
- // by index.ts. Kept at this path so every existing import across the repo
7
- // (hook-pre-tool-use.ts, hook-codex-pre-tool-use.ts,
8
- // cli/approve/understanding.ts, tests, etc.) keeps working unchanged.
9
- export * from "./understanding-before-execution/index.js";
10
- //# sourceMappingURL=understanding-before-execution-runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"understanding-before-execution-runtime.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/understanding-before-execution-runtime.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uEAAuE;AACvE,kEAAkE;AAClE,6DAA6D;AAC7D,wEAAwE;AACxE,0EAA0E;AAC1E,qDAAqD;AACrD,sEAAsE;AACtE,cAAc,2CAA2C,CAAC"}