@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,210 +0,0 @@
1
- /**
2
- * Prefix every auto-minted marker's `approvedBy` carries, distinguishing
3
- * it from a human `harness approve understanding` marker (which carries
4
- * the operator's own identity string, never this prefix).
5
- */
6
- export declare const AUTO_APPROVED_BY_PREFIX = "auto-mode:";
7
- /** The harness identifier the Claude Code PreToolUse hook mints markers for. */
8
- export declare const CLAUDE_CODE_HARNESS = "claude-code";
9
- /**
10
- * The harness identifier the Codex PreToolUse hook mints markers for
11
- * (slice 2 of the ADR: same auto path, same fail-closed conditions, a
12
- * distinct `approvedBy` segment so an audit can tell the two runtimes
13
- * apart). Deliberately NOT re-exported through
14
- * `understanding-before-execution/index.ts`: its only consumer is
15
- * `src/cli/pack/hook-codex-pre-tool-use.ts`, and widening the runtime
16
- * shim's pinned public surface (tests/policy-packs/ube-export-surface.test.ts)
17
- * is a separate, conscious act.
18
- */
19
- export declare const CODEX_HARNESS = "codex";
20
- /**
21
- * Build the `approvedBy` value the hook writes into a signed auto-marker:
22
- * `auto-mode:<harness>:<mode>`, for example `auto-mode:claude-code:bypassPermissions`
23
- * or `auto-mode:codex:bypassPermissions` ("Audit and doctor" in the ADR).
24
- * Neither `harness` nor `mode` is validated here; callers pass
25
- * already-known-good values (one of the fixed harness constants above and
26
- * a `when`-matched mode string).
27
- */
28
- export declare function autoApprovedByFor(harness: string, mode: string): string;
29
- /** Parsed shape of an `approvedBy` string minted by {@link autoApprovedByFor}. */
30
- export interface ParsedAutoApprovedBy {
31
- harness: string;
32
- mode: string;
33
- }
34
- /**
35
- * Parse an `approvedBy` string back into its harness/mode pair. Returns
36
- * `null` for anything that is not exactly `auto-mode:<harness>:<mode>`
37
- * with both segments non-empty, including a human marker's `approvedBy`
38
- * (which never carries this prefix) and a malformed or truncated auto
39
- * value. A slice 3 delegation suffix (`;delegated:<parent-sid>`) is
40
- * tolerated: it is stripped before parsing and otherwise ignored, per
41
- * the ADR's "Audit and doctor" convention that the delegation binding
42
- * packs into the same field without changing the harness/mode shape.
43
- */
44
- export declare function parseAutoApprovedBy(approvedBy: unknown): ParsedAutoApprovedBy | null;
45
- /**
46
- * Build the audit-only ledger fact the ADR's "Audit and doctor" section
47
- * names: `understanding-auto-approved:<sid>`, distinct from the human
48
- * `understanding-approved:<sid>` tag (`ledger.ts`), following the same
49
- * `...:forced:<field>` suffix precedent the ADR cites. Ledger only, never
50
- * consulted for the gate decision itself.
51
- */
52
- export declare function autoApprovedLedgerTagFor(sessionId: string): string;
53
- /**
54
- * The harness identifiers `auto_approve.harnesses` accepts, in the order
55
- * the schema and every diagnostic list them. Shared with the pack's zod
56
- * `configSchema` (`../understanding-before-execution.ts`) so the lint-time
57
- * enum and this runtime parser cannot drift apart.
58
- */
59
- export declare const AUTO_APPROVE_HARNESS_VALUES: readonly ["claude-code", "codex"];
60
- /**
61
- * What `auto_approve.harnesses` resolves to when the key is ABSENT.
62
- * Claude Code only, deliberately: slice 1 shipped `auto_approve` as a
63
- * Claude-only opt-in, so a repo that opted in before slice 2 must keep
64
- * exactly the meaning it had — adding the Codex hook to the shared body
65
- * must not silently extend an existing opt-in to a second runtime
66
- * (reviewer round-1 finding on slice 2). Opting Codex in is an explicit,
67
- * visible config edit.
68
- */
69
- export declare const DEFAULT_AUTO_APPROVE_HARNESSES: readonly string[];
70
- /**
71
- * What `auto_approve.report_scan.max_wait` resolves to when the key is
72
- * ABSENT: the bound the child's PreToolUse hook waits for its own
73
- * Understanding Report to reach the session transcript before it blocks
74
- * (ADR "Report capture under `-p`", slice 3 acceptance criterion 3).
75
- *
76
- * The value is measured, not guessed: under `claude -p` the report is
77
- * absent from the transcript at the instant PreToolUse fires and lands
78
- * some time later, on a lag that scales with report length, so the
79
- * bound is set from the real end-to-end runs (a full-length grill_me
80
- * report), not only the shorter probe reports that first-guessed 500ms.
81
- * The measurement and the retuning derivation are both in
82
- * `docs/okf/understanding-gate-auto-mode-signals.md` ("Chosen
83
- * `report_scan.max_wait` default" section), from
84
- * `dogfood/ug-auto-mode-signals/`.
85
- *
86
- * ONE named constant on purpose: the hook, the schema default and every
87
- * test read this symbol, so re-tuning the bound against a new
88
- * measurement is a one-line change with no literal to hunt down.
89
- */
90
- export declare const DEFAULT_REPORT_SCAN_MAX_WAIT_MS = 2000;
91
- /**
92
- * Hard ceiling for `auto_approve.report_scan.max_wait`. A larger value
93
- * is a `harness validate` schema error AND a runtime parse failure (which
94
- * fails the whole `auto_approve` block closed), so no configuration can
95
- * make a PreToolUse hook sit on a session for an arbitrary time. 5 s is
96
- * an order of magnitude above the measured worst-case flush, which is
97
- * generous for a bound whose only job is to cover a transcript write
98
- * already in flight.
99
- */
100
- export declare const REPORT_SCAN_MAX_WAIT_CEILING_MS = 5000;
101
- /** Parsed, validated `auto_approve` pack-config block. */
102
- export interface AutoApproveConfig {
103
- /** Allowlist of `permission_mode` payload literals eligible for auto-approval. */
104
- when: string[];
105
- /**
106
- * Allowlist of HARNESSES whose PreToolUse hook may take the auto path
107
- * at all. Always non-empty: an absent key resolves to
108
- * {@link DEFAULT_AUTO_APPROVE_HARNESSES}, and every malformed shape
109
- * fails the whole block closed rather than defaulting.
110
- */
111
- harnesses: string[];
112
- /**
113
- * The transcript-poll bound for the slice 3 delegation path. Always
114
- * present: an absent `report_scan` block resolves to
115
- * {@link DEFAULT_REPORT_SCAN_MAX_WAIT_MS}, and every malformed shape
116
- * fails the whole `auto_approve` block closed, like every other key
117
- * here.
118
- */
119
- reportScan: {
120
- maxWaitMs: number;
121
- };
122
- }
123
- export type ReportScanMaxWaitParse = {
124
- ok: true;
125
- maxWaitMs: number;
126
- } | {
127
- ok: false;
128
- reason: string;
129
- };
130
- /**
131
- * Parse `auto_approve.report_scan.max_wait` into milliseconds.
132
- *
133
- * Duration grammar: the pack's SHARED parser
134
- * ({@link parseDurationSeconds}, the same one `approval_lifecycle.max_age`
135
- * uses), plus an `<n>ms` shorthand it does not model. The extension is
136
- * not cosmetic: this bound is a transcript-flush allowance measured in
137
- * tens of milliseconds, so a second-granularity grammar could not express
138
- * the values the measurement actually argues for, and widening
139
- * `parseDurationSeconds` itself would change the grammar of every
140
- * `within:` / `max_age:` / `--since` value in the repo for one key's sake.
141
- *
142
- * Both bounds are errors, never clamps: zero or negative (a bound that
143
- * would disable the poll while the block still claimed to have one) and
144
- * anything above {@link REPORT_SCAN_MAX_WAIT_CEILING_MS} (a bound that
145
- * could park a PreToolUse hook). Returning a RESULT rather than throwing
146
- * keeps the two consumers symmetric: the zod schema turns it into a
147
- * `harness validate` diagnostic, the runtime parser into one stderr line
148
- * and a fail-closed `null`.
149
- */
150
- export declare function parseReportScanMaxWait(raw: unknown): ReportScanMaxWaitParse;
151
- /**
152
- * Parse the optional `auto_approve` pack-config block
153
- * (docs/decisions/2026-08-27-ug-auto-mode-approval.md, "Option A").
154
- *
155
- * FAIL CLOSED, unlike {@link parseApprovalLifecycle}'s best-effort
156
- * fallback: this block is an opt-IN to a hook-side signing path
157
- * (hardening item 3 in the ADR's threat model (b) — `require_report:
158
- * false` must be a schema error, not a silently-ignored key), so any
159
- * malformed shape here means "not opted in" (`null`), never a partial
160
- * or default-filled config that could still enable the auto path. The
161
- * `configSchema` zod block in `../understanding-before-execution.ts` is
162
- * the first line of defence (`harness validate` / `harness doctor`
163
- * reject a malformed manifest at lint time); this parser is the second,
164
- * defensive line for the runtime hook, which must not trust that every
165
- * config it sees on disk passed the schema.
166
- *
167
- * `undefined` / `null` (the block is simply absent) returns `null`
168
- * silently — that is the ordinary "not opted in" case, not a warning.
169
- * Every other malformed shape writes exactly one stderr line and
170
- * returns `null`.
171
- *
172
- * `label` is the stderr prefix of the calling hook, so a Codex-side
173
- * warning reads `harness pack hook codex: ...` like every other line
174
- * that hook writes. The default reproduces the Claude Code hook's
175
- * wording byte-for-byte.
176
- */
177
- export declare function parseAutoApprove(raw: unknown, stderr?: {
178
- write(s: string): void;
179
- } | null, label?: string): AutoApproveConfig | null;
180
- /**
181
- * ADR "Additional hardening to specify" item 2: `when` is an allowlist
182
- * of payload literals, membership by exact string equality, no case
183
- * folding, no substring, no wildcards. `mode` absent, empty, or not a
184
- * string means no auto-approval, and `cfg === null` (block absent or
185
- * malformed) means no auto-approval regardless of `mode`.
186
- *
187
- * Takes only the `when` slice of the config rather than the whole block:
188
- * this predicate reads exactly one field, and saying so in the signature
189
- * keeps it honest as the block grows further keys (`harnesses`,
190
- * `report_scan`) that have nothing to do with mode membership.
191
- */
192
- export declare function permissionModeAllowed(cfg: Pick<AutoApproveConfig, "when"> | null, mode: unknown): boolean;
193
- /**
194
- * Per-harness opt-in membership, the same exact-string-equality
195
- * discipline {@link permissionModeAllowed} applies to `when`. `cfg ===
196
- * null` (block absent or malformed) means no auto-approval regardless of
197
- * the harness, and an unlisted harness means no auto-approval regardless
198
- * of `when` — the two allowlists are independent AND conditions, not
199
- * alternatives.
200
- *
201
- * Re-exported through `understanding-before-execution/index.ts` (round-2
202
- * review finding on slice 2): its call site (`src/cli/pack/auto-approve-path.ts`)
203
- * imports every sibling symbol it needs (`parseAutoApprove`,
204
- * `permissionModeAllowed`, ...) through the runtime shim already, so this
205
- * one was pulled onto the pinned shim surface
206
- * (tests/policy-packs/ube-export-surface.test.ts) to match, unlike
207
- * {@link CODEX_HARNESS} which still has exactly one consumer and stays a
208
- * direct import.
209
- */
210
- export declare function harnessAllowed(cfg: Pick<AutoApproveConfig, "harnesses"> | null, harness: unknown): boolean;
@@ -1,361 +0,0 @@
1
- // `auto_approve` pack-config parsing and shared conventions, split out
2
- // alongside lifecycle.ts (structural sibling of the former monolithic
3
- // understanding-before-execution-runtime.ts, agent-tasks 348a4d42).
4
- // Implements slice 1 of docs/decisions/2026-08-27-ug-auto-mode-approval.md
5
- // (agent-tasks 74b4b17d): the strict pack-config block that lets an
6
- // operator opt a permission mode into the hook-written signed
7
- // auto-marker path, plus the shared `approvedBy` / ledger-tag
8
- // conventions the hook and doctor consume so there is one authority
9
- // for the string shapes instead of each caller reimplementing them.
10
- //
11
- // This module owns no gate decision and no marker write: it only
12
- // parses the opt-in config (fail-closed: any malformed shape is
13
- // treated as "not opted in", never as a partial default) and builds /
14
- // parses the string conventions the ADR's "Audit and doctor" section
15
- // documents. The PreToolUse hook (auto-path condition checks) and
16
- // `harness doctor` (auto-approval listing) are the consumers; both
17
- // land in later slice-1 tasks and import from here.
18
- //
19
- // Slice 3 (agent-tasks 37ad0b05) adds `report_scan.max_wait`: the bound
20
- // of the child's transcript poll under `claude -p` ("Report capture
21
- // under `-p`" in the ADR). It lives in this block because it tunes the
22
- // same opt-in path, and it is parsed here rather than at the hook so
23
- // the lint-time schema and the runtime hook agree on one parser.
24
- import { InvalidDurationError, parseDurationSeconds } from "../../../policies/index.js";
25
- /**
26
- * Prefix every auto-minted marker's `approvedBy` carries, distinguishing
27
- * it from a human `harness approve understanding` marker (which carries
28
- * the operator's own identity string, never this prefix).
29
- */
30
- export const AUTO_APPROVED_BY_PREFIX = "auto-mode:";
31
- /** The harness identifier the Claude Code PreToolUse hook mints markers for. */
32
- export const CLAUDE_CODE_HARNESS = "claude-code";
33
- /**
34
- * The harness identifier the Codex PreToolUse hook mints markers for
35
- * (slice 2 of the ADR: same auto path, same fail-closed conditions, a
36
- * distinct `approvedBy` segment so an audit can tell the two runtimes
37
- * apart). Deliberately NOT re-exported through
38
- * `understanding-before-execution/index.ts`: its only consumer is
39
- * `src/cli/pack/hook-codex-pre-tool-use.ts`, and widening the runtime
40
- * shim's pinned public surface (tests/policy-packs/ube-export-surface.test.ts)
41
- * is a separate, conscious act.
42
- */
43
- export const CODEX_HARNESS = "codex";
44
- /**
45
- * Build the `approvedBy` value the hook writes into a signed auto-marker:
46
- * `auto-mode:<harness>:<mode>`, for example `auto-mode:claude-code:bypassPermissions`
47
- * or `auto-mode:codex:bypassPermissions` ("Audit and doctor" in the ADR).
48
- * Neither `harness` nor `mode` is validated here; callers pass
49
- * already-known-good values (one of the fixed harness constants above and
50
- * a `when`-matched mode string).
51
- */
52
- export function autoApprovedByFor(harness, mode) {
53
- return `${AUTO_APPROVED_BY_PREFIX}${harness}:${mode}`;
54
- }
55
- /**
56
- * Parse an `approvedBy` string back into its harness/mode pair. Returns
57
- * `null` for anything that is not exactly `auto-mode:<harness>:<mode>`
58
- * with both segments non-empty, including a human marker's `approvedBy`
59
- * (which never carries this prefix) and a malformed or truncated auto
60
- * value. A slice 3 delegation suffix (`;delegated:<parent-sid>`) is
61
- * tolerated: it is stripped before parsing and otherwise ignored, per
62
- * the ADR's "Audit and doctor" convention that the delegation binding
63
- * packs into the same field without changing the harness/mode shape.
64
- */
65
- export function parseAutoApprovedBy(approvedBy) {
66
- if (typeof approvedBy !== "string")
67
- return null;
68
- if (!approvedBy.startsWith(AUTO_APPROVED_BY_PREFIX))
69
- return null;
70
- const withoutPrefix = approvedBy.slice(AUTO_APPROVED_BY_PREFIX.length);
71
- const [withoutDelegation] = withoutPrefix.split(";delegated:");
72
- const segments = (withoutDelegation ?? "").split(":");
73
- if (segments.length !== 2)
74
- return null;
75
- const [harness, mode] = segments;
76
- if (!harness || !mode)
77
- return null;
78
- return { harness, mode };
79
- }
80
- /**
81
- * Build the audit-only ledger fact the ADR's "Audit and doctor" section
82
- * names: `understanding-auto-approved:<sid>`, distinct from the human
83
- * `understanding-approved:<sid>` tag (`ledger.ts`), following the same
84
- * `...:forced:<field>` suffix precedent the ADR cites. Ledger only, never
85
- * consulted for the gate decision itself.
86
- */
87
- export function autoApprovedLedgerTagFor(sessionId) {
88
- return `understanding-auto-approved:${sessionId}`;
89
- }
90
- /**
91
- * The harness identifiers `auto_approve.harnesses` accepts, in the order
92
- * the schema and every diagnostic list them. Shared with the pack's zod
93
- * `configSchema` (`../understanding-before-execution.ts`) so the lint-time
94
- * enum and this runtime parser cannot drift apart.
95
- */
96
- export const AUTO_APPROVE_HARNESS_VALUES = [CLAUDE_CODE_HARNESS, CODEX_HARNESS];
97
- /**
98
- * What `auto_approve.harnesses` resolves to when the key is ABSENT.
99
- * Claude Code only, deliberately: slice 1 shipped `auto_approve` as a
100
- * Claude-only opt-in, so a repo that opted in before slice 2 must keep
101
- * exactly the meaning it had — adding the Codex hook to the shared body
102
- * must not silently extend an existing opt-in to a second runtime
103
- * (reviewer round-1 finding on slice 2). Opting Codex in is an explicit,
104
- * visible config edit.
105
- */
106
- export const DEFAULT_AUTO_APPROVE_HARNESSES = [CLAUDE_CODE_HARNESS];
107
- /**
108
- * What `auto_approve.report_scan.max_wait` resolves to when the key is
109
- * ABSENT: the bound the child's PreToolUse hook waits for its own
110
- * Understanding Report to reach the session transcript before it blocks
111
- * (ADR "Report capture under `-p`", slice 3 acceptance criterion 3).
112
- *
113
- * The value is measured, not guessed: under `claude -p` the report is
114
- * absent from the transcript at the instant PreToolUse fires and lands
115
- * some time later, on a lag that scales with report length, so the
116
- * bound is set from the real end-to-end runs (a full-length grill_me
117
- * report), not only the shorter probe reports that first-guessed 500ms.
118
- * The measurement and the retuning derivation are both in
119
- * `docs/okf/understanding-gate-auto-mode-signals.md` ("Chosen
120
- * `report_scan.max_wait` default" section), from
121
- * `dogfood/ug-auto-mode-signals/`.
122
- *
123
- * ONE named constant on purpose: the hook, the schema default and every
124
- * test read this symbol, so re-tuning the bound against a new
125
- * measurement is a one-line change with no literal to hunt down.
126
- */
127
- export const DEFAULT_REPORT_SCAN_MAX_WAIT_MS = 2_000;
128
- /**
129
- * Hard ceiling for `auto_approve.report_scan.max_wait`. A larger value
130
- * is a `harness validate` schema error AND a runtime parse failure (which
131
- * fails the whole `auto_approve` block closed), so no configuration can
132
- * make a PreToolUse hook sit on a session for an arbitrary time. 5 s is
133
- * an order of magnitude above the measured worst-case flush, which is
134
- * generous for a bound whose only job is to cover a transcript write
135
- * already in flight.
136
- */
137
- export const REPORT_SCAN_MAX_WAIT_CEILING_MS = 5_000;
138
- const KNOWN_AUTO_APPROVE_KEYS = new Set([
139
- "when",
140
- "harnesses",
141
- "require_report",
142
- "report_scan",
143
- ]);
144
- /** The only key `auto_approve.report_scan` accepts. */
145
- const KNOWN_REPORT_SCAN_KEYS = new Set(["max_wait"]);
146
- /** Sub-second shorthand the shared duration parser does not model. */
147
- const MILLISECOND_SHORTHAND = /^(\d+)ms$/;
148
- /**
149
- * Parse `auto_approve.report_scan.max_wait` into milliseconds.
150
- *
151
- * Duration grammar: the pack's SHARED parser
152
- * ({@link parseDurationSeconds}, the same one `approval_lifecycle.max_age`
153
- * uses), plus an `<n>ms` shorthand it does not model. The extension is
154
- * not cosmetic: this bound is a transcript-flush allowance measured in
155
- * tens of milliseconds, so a second-granularity grammar could not express
156
- * the values the measurement actually argues for, and widening
157
- * `parseDurationSeconds` itself would change the grammar of every
158
- * `within:` / `max_age:` / `--since` value in the repo for one key's sake.
159
- *
160
- * Both bounds are errors, never clamps: zero or negative (a bound that
161
- * would disable the poll while the block still claimed to have one) and
162
- * anything above {@link REPORT_SCAN_MAX_WAIT_CEILING_MS} (a bound that
163
- * could park a PreToolUse hook). Returning a RESULT rather than throwing
164
- * keeps the two consumers symmetric: the zod schema turns it into a
165
- * `harness validate` diagnostic, the runtime parser into one stderr line
166
- * and a fail-closed `null`.
167
- */
168
- export function parseReportScanMaxWait(raw) {
169
- if (typeof raw !== "string" || raw.trim().length === 0) {
170
- return {
171
- ok: false,
172
- reason: `expected a duration string like "500ms", "1500ms" or "2s", got ${typeof raw === "string" ? "an empty string" : typeof raw}`,
173
- };
174
- }
175
- const trimmed = raw.trim();
176
- let maxWaitMs;
177
- const ms = MILLISECOND_SHORTHAND.exec(trimmed);
178
- if (ms) {
179
- maxWaitMs = Number.parseInt(ms[1], 10);
180
- }
181
- else {
182
- try {
183
- maxWaitMs = parseDurationSeconds(trimmed) * 1_000;
184
- }
185
- catch (err) {
186
- return {
187
- ok: false,
188
- reason: err instanceof InvalidDurationError ? err.message : String(err),
189
- };
190
- }
191
- }
192
- if (!Number.isFinite(maxWaitMs) || maxWaitMs <= 0) {
193
- return {
194
- ok: false,
195
- reason: `must be greater than zero, got ${JSON.stringify(trimmed)}`,
196
- };
197
- }
198
- if (maxWaitMs > REPORT_SCAN_MAX_WAIT_CEILING_MS) {
199
- return {
200
- ok: false,
201
- reason: `must not exceed the ${REPORT_SCAN_MAX_WAIT_CEILING_MS}ms hard ceiling (a PreToolUse hook must never park a session), got ${JSON.stringify(trimmed)}`,
202
- };
203
- }
204
- return { ok: true, maxWaitMs };
205
- }
206
- /**
207
- * Parse the optional `auto_approve` pack-config block
208
- * (docs/decisions/2026-08-27-ug-auto-mode-approval.md, "Option A").
209
- *
210
- * FAIL CLOSED, unlike {@link parseApprovalLifecycle}'s best-effort
211
- * fallback: this block is an opt-IN to a hook-side signing path
212
- * (hardening item 3 in the ADR's threat model (b) — `require_report:
213
- * false` must be a schema error, not a silently-ignored key), so any
214
- * malformed shape here means "not opted in" (`null`), never a partial
215
- * or default-filled config that could still enable the auto path. The
216
- * `configSchema` zod block in `../understanding-before-execution.ts` is
217
- * the first line of defence (`harness validate` / `harness doctor`
218
- * reject a malformed manifest at lint time); this parser is the second,
219
- * defensive line for the runtime hook, which must not trust that every
220
- * config it sees on disk passed the schema.
221
- *
222
- * `undefined` / `null` (the block is simply absent) returns `null`
223
- * silently — that is the ordinary "not opted in" case, not a warning.
224
- * Every other malformed shape writes exactly one stderr line and
225
- * returns `null`.
226
- *
227
- * `label` is the stderr prefix of the calling hook, so a Codex-side
228
- * warning reads `harness pack hook codex: ...` like every other line
229
- * that hook writes. The default reproduces the Claude Code hook's
230
- * wording byte-for-byte.
231
- */
232
- export function parseAutoApprove(raw, stderr, label = "harness pack hook") {
233
- if (raw === undefined || raw === null)
234
- return null;
235
- if (typeof raw !== "object" || Array.isArray(raw)) {
236
- stderr?.write(`${label}: config.auto_approve ignored (expected object, got ${typeof raw})\n`);
237
- return null;
238
- }
239
- const obj = raw;
240
- const unknownKeys = Object.keys(obj).filter((k) => !KNOWN_AUTO_APPROVE_KEYS.has(k));
241
- if (unknownKeys.length > 0) {
242
- stderr?.write(`${label}: config.auto_approve ignored (unknown key(s): ${unknownKeys.join(", ")})\n`);
243
- return null;
244
- }
245
- const whenRaw = obj["when"];
246
- if (!Array.isArray(whenRaw) || whenRaw.length === 0) {
247
- stderr?.write(`${label}: config.auto_approve.when ignored (expected a non-empty string[], got ${Array.isArray(whenRaw) ? "empty array" : typeof whenRaw})\n`);
248
- return null;
249
- }
250
- const when = [];
251
- for (const v of whenRaw) {
252
- if (typeof v !== "string" || v.length === 0) {
253
- stderr?.write(`${label}: config.auto_approve.when ignored (every entry must be a non-empty string, got ${typeof v})\n`);
254
- return null;
255
- }
256
- when.push(v);
257
- }
258
- // `harnesses`: absent means the slice-1 default (Claude Code only).
259
- // Present means an exact, non-empty, duplicate-free list of the known
260
- // harness identifiers — anything else fails the whole block closed,
261
- // like every other malformed shape here, so a typo'd entry can never
262
- // widen the opt-in to a runtime the operator did not name.
263
- const harnessesRaw = obj["harnesses"];
264
- let harnesses = [...DEFAULT_AUTO_APPROVE_HARNESSES];
265
- if (harnessesRaw !== undefined) {
266
- if (!Array.isArray(harnessesRaw) || harnessesRaw.length === 0) {
267
- stderr?.write(`${label}: config.auto_approve.harnesses ignored (expected a non-empty array of ${AUTO_APPROVE_HARNESS_VALUES.join(" | ")}, got ${Array.isArray(harnessesRaw) ? "empty array" : typeof harnessesRaw})\n`);
268
- return null;
269
- }
270
- const seen = [];
271
- for (const v of harnessesRaw) {
272
- if (typeof v !== "string" || !AUTO_APPROVE_HARNESS_VALUES.includes(v)) {
273
- stderr?.write(`${label}: config.auto_approve.harnesses ignored (every entry must be one of ${AUTO_APPROVE_HARNESS_VALUES.join(", ")}, got ${typeof v === "string" ? `"${v}"` : typeof v})\n`);
274
- return null;
275
- }
276
- if (seen.includes(v)) {
277
- stderr?.write(`${label}: config.auto_approve.harnesses ignored (duplicate entry "${v}")\n`);
278
- return null;
279
- }
280
- seen.push(v);
281
- }
282
- harnesses = seen;
283
- }
284
- // `report_scan`: absent means the measured default
285
- // ({@link DEFAULT_REPORT_SCAN_MAX_WAIT_MS}). Present means an object
286
- // carrying exactly `max_wait` and nothing else, parsed and
287
- // range-checked by `parseReportScanMaxWait`. Anything else fails the
288
- // WHOLE block closed, like every other malformed shape here, so a
289
- // typo'd bound can never silently fall back to the default while the
290
- // operator believes they tuned it.
291
- const reportScanRaw = obj["report_scan"];
292
- let reportScanMaxWaitMs = DEFAULT_REPORT_SCAN_MAX_WAIT_MS;
293
- if (reportScanRaw !== undefined) {
294
- if (reportScanRaw === null || typeof reportScanRaw !== "object" || Array.isArray(reportScanRaw)) {
295
- stderr?.write(`${label}: config.auto_approve.report_scan ignored (expected object, got ${reportScanRaw === null ? "null" : Array.isArray(reportScanRaw) ? "array" : typeof reportScanRaw})\n`);
296
- return null;
297
- }
298
- const reportScanObj = reportScanRaw;
299
- const unknownScanKeys = Object.keys(reportScanObj).filter((k) => !KNOWN_REPORT_SCAN_KEYS.has(k));
300
- if (unknownScanKeys.length > 0) {
301
- stderr?.write(`${label}: config.auto_approve.report_scan ignored (unknown key(s): ${unknownScanKeys.join(", ")})\n`);
302
- return null;
303
- }
304
- const maxWait = parseReportScanMaxWait(reportScanObj["max_wait"]);
305
- if (!maxWait.ok) {
306
- stderr?.write(`${label}: config.auto_approve.report_scan.max_wait ignored (${maxWait.reason})\n`);
307
- return null;
308
- }
309
- reportScanMaxWaitMs = maxWait.maxWaitMs;
310
- }
311
- const requireReport = obj["require_report"];
312
- if (requireReport !== true) {
313
- stderr?.write(`${label}: config.auto_approve ignored (require_report must be true, got ${requireReport === false ? "false" : typeof requireReport})\n`);
314
- return null;
315
- }
316
- return { when, harnesses, reportScan: { maxWaitMs: reportScanMaxWaitMs } };
317
- }
318
- /**
319
- * ADR "Additional hardening to specify" item 2: `when` is an allowlist
320
- * of payload literals, membership by exact string equality, no case
321
- * folding, no substring, no wildcards. `mode` absent, empty, or not a
322
- * string means no auto-approval, and `cfg === null` (block absent or
323
- * malformed) means no auto-approval regardless of `mode`.
324
- *
325
- * Takes only the `when` slice of the config rather than the whole block:
326
- * this predicate reads exactly one field, and saying so in the signature
327
- * keeps it honest as the block grows further keys (`harnesses`,
328
- * `report_scan`) that have nothing to do with mode membership.
329
- */
330
- export function permissionModeAllowed(cfg, mode) {
331
- if (cfg === null)
332
- return false;
333
- if (typeof mode !== "string" || mode.length === 0)
334
- return false;
335
- return cfg.when.includes(mode);
336
- }
337
- /**
338
- * Per-harness opt-in membership, the same exact-string-equality
339
- * discipline {@link permissionModeAllowed} applies to `when`. `cfg ===
340
- * null` (block absent or malformed) means no auto-approval regardless of
341
- * the harness, and an unlisted harness means no auto-approval regardless
342
- * of `when` — the two allowlists are independent AND conditions, not
343
- * alternatives.
344
- *
345
- * Re-exported through `understanding-before-execution/index.ts` (round-2
346
- * review finding on slice 2): its call site (`src/cli/pack/auto-approve-path.ts`)
347
- * imports every sibling symbol it needs (`parseAutoApprove`,
348
- * `permissionModeAllowed`, ...) through the runtime shim already, so this
349
- * one was pulled onto the pinned shim surface
350
- * (tests/policy-packs/ube-export-surface.test.ts) to match, unlike
351
- * {@link CODEX_HARNESS} which still has exactly one consumer and stays a
352
- * direct import.
353
- */
354
- export function harnessAllowed(cfg, harness) {
355
- if (cfg === null)
356
- return false;
357
- if (typeof harness !== "string" || harness.length === 0)
358
- return false;
359
- return cfg.harnesses.includes(harness);
360
- }
361
- //# sourceMappingURL=auto-approve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-approve.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/auto-approve.ts"],"names":[],"mappings":"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"}