approval-md 0.0.1 → 0.2.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 (722) hide show
  1. package/LICENSE +176 -0
  2. package/NOTICE +5 -0
  3. package/README.md +940 -4
  4. package/SPEC.md +476 -34
  5. package/cli.js +29 -3
  6. package/dist/src/adapters/agentmail.d.ts +426 -0
  7. package/dist/src/adapters/agentmail.js +1200 -0
  8. package/dist/src/adapters/agentmail.js.map +1 -0
  9. package/dist/src/adapters/conformance.d.ts +149 -0
  10. package/dist/src/adapters/conformance.js +461 -0
  11. package/dist/src/adapters/conformance.js.map +1 -0
  12. package/dist/src/adapters/contract.d.ts +628 -0
  13. package/dist/src/adapters/contract.js +1035 -0
  14. package/dist/src/adapters/contract.js.map +1 -0
  15. package/dist/src/adapters/email.d.ts +324 -0
  16. package/dist/src/adapters/email.js +749 -0
  17. package/dist/src/adapters/email.js.map +1 -0
  18. package/dist/src/adapters/env-passphrase.d.ts +93 -0
  19. package/dist/src/adapters/env-passphrase.js +132 -0
  20. package/dist/src/adapters/env-passphrase.js.map +1 -0
  21. package/dist/src/adapters/public.d.ts +11 -0
  22. package/dist/src/adapters/public.js +11 -0
  23. package/dist/src/adapters/public.js.map +1 -0
  24. package/dist/src/adapters/registry.d.ts +59 -0
  25. package/dist/src/adapters/registry.js +77 -0
  26. package/dist/src/adapters/registry.js.map +1 -0
  27. package/dist/src/adapters/smtp.d.ts +213 -0
  28. package/dist/src/adapters/smtp.js +499 -0
  29. package/dist/src/adapters/smtp.js.map +1 -0
  30. package/dist/src/adapters/vault-provider.d.ts +114 -0
  31. package/dist/src/adapters/vault-provider.js +161 -0
  32. package/dist/src/adapters/vault-provider.js.map +1 -0
  33. package/dist/src/adapters/zzz.d.ts +66 -0
  34. package/dist/src/adapters/zzz.js +299 -0
  35. package/dist/src/adapters/zzz.js.map +1 -0
  36. package/dist/src/channels/batch.d.ts +109 -0
  37. package/dist/src/channels/batch.js +121 -0
  38. package/dist/src/channels/batch.js.map +1 -0
  39. package/dist/src/channels/cli.d.ts +193 -0
  40. package/dist/src/channels/cli.js +468 -0
  41. package/dist/src/channels/cli.js.map +1 -0
  42. package/dist/src/channels/conformance.d.ts +92 -0
  43. package/dist/src/channels/conformance.js +445 -0
  44. package/dist/src/channels/conformance.js.map +1 -0
  45. package/dist/src/channels/contract.d.ts +623 -0
  46. package/dist/src/channels/contract.js +494 -0
  47. package/dist/src/channels/contract.js.map +1 -0
  48. package/dist/src/channels/payload-view.d.ts +35 -0
  49. package/dist/src/channels/payload-view.js +43 -0
  50. package/dist/src/channels/payload-view.js.map +1 -0
  51. package/dist/src/channels/render-queue.d.ts +149 -0
  52. package/dist/src/channels/render-queue.js +564 -0
  53. package/dist/src/channels/render-queue.js.map +1 -0
  54. package/dist/src/channels/tagging.d.ts +196 -0
  55. package/dist/src/channels/tagging.js +723 -0
  56. package/dist/src/channels/tagging.js.map +1 -0
  57. package/dist/src/channels/telegram.d.ts +1832 -0
  58. package/dist/src/channels/telegram.js +3190 -0
  59. package/dist/src/channels/telegram.js.map +1 -0
  60. package/dist/src/channels/web.d.ts +341 -0
  61. package/dist/src/channels/web.js +903 -0
  62. package/dist/src/channels/web.js.map +1 -0
  63. package/dist/src/cli/adapter.d.ts +90 -0
  64. package/dist/src/cli/adapter.js +288 -0
  65. package/dist/src/cli/adapter.js.map +1 -0
  66. package/dist/src/cli/amend.d.ts +59 -0
  67. package/dist/src/cli/amend.js +2171 -0
  68. package/dist/src/cli/amend.js.map +1 -0
  69. package/dist/src/cli/args.d.ts +43 -0
  70. package/dist/src/cli/args.js +86 -0
  71. package/dist/src/cli/args.js.map +1 -0
  72. package/dist/src/cli/attest.d.ts +41 -0
  73. package/dist/src/cli/attest.js +307 -0
  74. package/dist/src/cli/attest.js.map +1 -0
  75. package/dist/src/cli/audit-card.d.ts +62 -0
  76. package/dist/src/cli/audit-card.js +201 -0
  77. package/dist/src/cli/audit-card.js.map +1 -0
  78. package/dist/src/cli/audit.d.ts +59 -0
  79. package/dist/src/cli/audit.js +460 -0
  80. package/dist/src/cli/audit.js.map +1 -0
  81. package/dist/src/cli/channel-telegram.d.ts +806 -0
  82. package/dist/src/cli/channel-telegram.js +2063 -0
  83. package/dist/src/cli/channel-telegram.js.map +1 -0
  84. package/dist/src/cli/channel-web.d.ts +131 -0
  85. package/dist/src/cli/channel-web.js +357 -0
  86. package/dist/src/cli/channel-web.js.map +1 -0
  87. package/dist/src/cli/channel.d.ts +71 -0
  88. package/dist/src/cli/channel.js +438 -0
  89. package/dist/src/cli/channel.js.map +1 -0
  90. package/dist/src/cli/checkpoint-tap.d.ts +169 -0
  91. package/dist/src/cli/checkpoint-tap.js +238 -0
  92. package/dist/src/cli/checkpoint-tap.js.map +1 -0
  93. package/dist/src/cli/codex.d.ts +2 -0
  94. package/dist/src/cli/codex.js +172 -0
  95. package/dist/src/cli/codex.js.map +1 -0
  96. package/dist/src/cli/coverage.d.ts +61 -0
  97. package/dist/src/cli/coverage.js +343 -0
  98. package/dist/src/cli/coverage.js.map +1 -0
  99. package/dist/src/cli/daemon.d.ts +120 -0
  100. package/dist/src/cli/daemon.js +631 -0
  101. package/dist/src/cli/daemon.js.map +1 -0
  102. package/dist/src/cli/doctor.d.ts +129 -0
  103. package/dist/src/cli/doctor.js +2762 -0
  104. package/dist/src/cli/doctor.js.map +1 -0
  105. package/dist/src/cli/env.d.ts +65 -0
  106. package/dist/src/cli/env.js +302 -0
  107. package/dist/src/cli/env.js.map +1 -0
  108. package/dist/src/cli/execute.d.ts +202 -0
  109. package/dist/src/cli/execute.js +1682 -0
  110. package/dist/src/cli/execute.js.map +1 -0
  111. package/dist/src/cli/exit-codes.d.ts +73 -0
  112. package/dist/src/cli/exit-codes.js +82 -0
  113. package/dist/src/cli/exit-codes.js.map +1 -0
  114. package/dist/src/cli/feedback.d.ts +60 -0
  115. package/dist/src/cli/feedback.js +205 -0
  116. package/dist/src/cli/feedback.js.map +1 -0
  117. package/dist/src/cli/gate-window.d.ts +40 -0
  118. package/dist/src/cli/gate-window.js +294 -0
  119. package/dist/src/cli/gate-window.js.map +1 -0
  120. package/dist/src/cli/gate.d.ts +68 -0
  121. package/dist/src/cli/gate.js +557 -0
  122. package/dist/src/cli/gate.js.map +1 -0
  123. package/dist/src/cli/git-scope.d.ts +190 -0
  124. package/dist/src/cli/git-scope.js +295 -0
  125. package/dist/src/cli/git-scope.js.map +1 -0
  126. package/dist/src/cli/gloss-attach.d.ts +85 -0
  127. package/dist/src/cli/gloss-attach.js +107 -0
  128. package/dist/src/cli/gloss-attach.js.map +1 -0
  129. package/dist/src/cli/gloss-codex-child.d.ts +9 -0
  130. package/dist/src/cli/gloss-codex-child.js +149 -0
  131. package/dist/src/cli/gloss-codex-child.js.map +1 -0
  132. package/dist/src/cli/gloss-codex.d.ts +24 -0
  133. package/dist/src/cli/gloss-codex.js +255 -0
  134. package/dist/src/cli/gloss-codex.js.map +1 -0
  135. package/dist/src/cli/gloss-options.d.ts +42 -0
  136. package/dist/src/cli/gloss-options.js +79 -0
  137. package/dist/src/cli/gloss-options.js.map +1 -0
  138. package/dist/src/cli/gloss.d.ts +265 -0
  139. package/dist/src/cli/gloss.js +362 -0
  140. package/dist/src/cli/gloss.js.map +1 -0
  141. package/dist/src/cli/help.d.ts +103 -0
  142. package/dist/src/cli/help.js +2339 -0
  143. package/dist/src/cli/help.js.map +1 -0
  144. package/dist/src/cli/hook-codex.d.ts +78 -0
  145. package/dist/src/cli/hook-codex.js +167 -0
  146. package/dist/src/cli/hook-codex.js.map +1 -0
  147. package/dist/src/cli/hook.d.ts +331 -0
  148. package/dist/src/cli/hook.js +2849 -0
  149. package/dist/src/cli/hook.js.map +1 -0
  150. package/dist/src/cli/import.d.ts +35 -0
  151. package/dist/src/cli/import.js +175 -0
  152. package/dist/src/cli/import.js.map +1 -0
  153. package/dist/src/cli/init.d.ts +84 -0
  154. package/dist/src/cli/init.js +336 -0
  155. package/dist/src/cli/init.js.map +1 -0
  156. package/dist/src/cli/instructions.d.ts +23 -0
  157. package/dist/src/cli/instructions.js +262 -0
  158. package/dist/src/cli/instructions.js.map +1 -0
  159. package/dist/src/cli/journal.d.ts +41 -0
  160. package/dist/src/cli/journal.js +238 -0
  161. package/dist/src/cli/journal.js.map +1 -0
  162. package/dist/src/cli/log-advance.d.ts +287 -0
  163. package/dist/src/cli/log-advance.js +840 -0
  164. package/dist/src/cli/log-advance.js.map +1 -0
  165. package/dist/src/cli/log-anchor.d.ts +176 -0
  166. package/dist/src/cli/log-anchor.js +387 -0
  167. package/dist/src/cli/log-anchor.js.map +1 -0
  168. package/dist/src/cli/log-checkpoint.d.ts +22 -0
  169. package/dist/src/cli/log-checkpoint.js +128 -0
  170. package/dist/src/cli/log-checkpoint.js.map +1 -0
  171. package/dist/src/cli/log-sync.d.ts +243 -0
  172. package/dist/src/cli/log-sync.js +849 -0
  173. package/dist/src/cli/log-sync.js.map +1 -0
  174. package/dist/src/cli/log-verbs.d.ts +16 -0
  175. package/dist/src/cli/log-verbs.js +360 -0
  176. package/dist/src/cli/log-verbs.js.map +1 -0
  177. package/dist/src/cli/long-help.d.ts +70 -0
  178. package/dist/src/cli/long-help.js +148 -0
  179. package/dist/src/cli/long-help.js.map +1 -0
  180. package/dist/src/cli/main.d.ts +77 -0
  181. package/dist/src/cli/main.js +1206 -0
  182. package/dist/src/cli/main.js.map +1 -0
  183. package/dist/src/cli/mcp.d.ts +52 -0
  184. package/dist/src/cli/mcp.js +306 -0
  185. package/dist/src/cli/mcp.js.map +1 -0
  186. package/dist/src/cli/paths.d.ts +56 -0
  187. package/dist/src/cli/paths.js +79 -0
  188. package/dist/src/cli/paths.js.map +1 -0
  189. package/dist/src/cli/payload.d.ts +58 -0
  190. package/dist/src/cli/payload.js +253 -0
  191. package/dist/src/cli/payload.js.map +1 -0
  192. package/dist/src/cli/policy.d.ts +43 -0
  193. package/dist/src/cli/policy.js +229 -0
  194. package/dist/src/cli/policy.js.map +1 -0
  195. package/dist/src/cli/preflight.d.ts +363 -0
  196. package/dist/src/cli/preflight.js +1175 -0
  197. package/dist/src/cli/preflight.js.map +1 -0
  198. package/dist/src/cli/progress.d.ts +78 -0
  199. package/dist/src/cli/progress.js +112 -0
  200. package/dist/src/cli/progress.js.map +1 -0
  201. package/dist/src/cli/prompt.d.ts +209 -0
  202. package/dist/src/cli/prompt.js +312 -0
  203. package/dist/src/cli/prompt.js.map +1 -0
  204. package/dist/src/cli/quickstart.d.ts +46 -0
  205. package/dist/src/cli/quickstart.js +297 -0
  206. package/dist/src/cli/quickstart.js.map +1 -0
  207. package/dist/src/cli/records.d.ts +34 -0
  208. package/dist/src/cli/records.js +66 -0
  209. package/dist/src/cli/records.js.map +1 -0
  210. package/dist/src/cli/render.d.ts +22 -0
  211. package/dist/src/cli/render.js +132 -0
  212. package/dist/src/cli/render.js.map +1 -0
  213. package/dist/src/cli/sandbox.d.ts +51 -0
  214. package/dist/src/cli/sandbox.js +150 -0
  215. package/dist/src/cli/sandbox.js.map +1 -0
  216. package/dist/src/cli/scaffold.d.ts +79 -0
  217. package/dist/src/cli/scaffold.js +137 -0
  218. package/dist/src/cli/scaffold.js.map +1 -0
  219. package/dist/src/cli/setup-adapter.d.ts +137 -0
  220. package/dist/src/cli/setup-adapter.js +509 -0
  221. package/dist/src/cli/setup-adapter.js.map +1 -0
  222. package/dist/src/cli/setup-channel.d.ts +117 -0
  223. package/dist/src/cli/setup-channel.js +635 -0
  224. package/dist/src/cli/setup-channel.js.map +1 -0
  225. package/dist/src/cli/setup-checkpoint.d.ts +57 -0
  226. package/dist/src/cli/setup-checkpoint.js +196 -0
  227. package/dist/src/cli/setup-checkpoint.js.map +1 -0
  228. package/dist/src/cli/setup-common.d.ts +275 -0
  229. package/dist/src/cli/setup-common.js +376 -0
  230. package/dist/src/cli/setup-common.js.map +1 -0
  231. package/dist/src/cli/setup-flow.d.ts +287 -0
  232. package/dist/src/cli/setup-flow.js +476 -0
  233. package/dist/src/cli/setup-flow.js.map +1 -0
  234. package/dist/src/cli/setup-service.d.ts +96 -0
  235. package/dist/src/cli/setup-service.js +308 -0
  236. package/dist/src/cli/setup-service.js.map +1 -0
  237. package/dist/src/cli/setup.d.ts +202 -0
  238. package/dist/src/cli/setup.js +473 -0
  239. package/dist/src/cli/setup.js.map +1 -0
  240. package/dist/src/cli/style.d.ts +320 -0
  241. package/dist/src/cli/style.js +469 -0
  242. package/dist/src/cli/style.js.map +1 -0
  243. package/dist/src/cli/token.d.ts +39 -0
  244. package/dist/src/cli/token.js +274 -0
  245. package/dist/src/cli/token.js.map +1 -0
  246. package/dist/src/cli/up.d.ts +155 -0
  247. package/dist/src/cli/up.js +849 -0
  248. package/dist/src/cli/up.js.map +1 -0
  249. package/dist/src/cli/usage.d.ts +37 -0
  250. package/dist/src/cli/usage.js +91 -0
  251. package/dist/src/cli/usage.js.map +1 -0
  252. package/dist/src/cli/values.d.ts +40 -0
  253. package/dist/src/cli/values.js +189 -0
  254. package/dist/src/cli/values.js.map +1 -0
  255. package/dist/src/cli/vault.d.ts +59 -0
  256. package/dist/src/cli/vault.js +362 -0
  257. package/dist/src/cli/vault.js.map +1 -0
  258. package/dist/src/cli/verb-registry.d.ts +76 -0
  259. package/dist/src/cli/verb-registry.js +2341 -0
  260. package/dist/src/cli/verb-registry.js.map +1 -0
  261. package/dist/src/cli/wordmark.d.ts +31 -0
  262. package/dist/src/cli/wordmark.js +52 -0
  263. package/dist/src/cli/wordmark.js.map +1 -0
  264. package/dist/src/codex/doctor.d.ts +13 -0
  265. package/dist/src/codex/doctor.js +41 -0
  266. package/dist/src/codex/doctor.js.map +1 -0
  267. package/dist/src/codex/manifest.d.ts +49 -0
  268. package/dist/src/codex/manifest.js +103 -0
  269. package/dist/src/codex/manifest.js.map +1 -0
  270. package/dist/src/codex/templates.d.ts +41 -0
  271. package/dist/src/codex/templates.js +319 -0
  272. package/dist/src/codex/templates.js.map +1 -0
  273. package/dist/src/codex/trust.d.ts +19 -0
  274. package/dist/src/codex/trust.js +183 -0
  275. package/dist/src/codex/trust.js.map +1 -0
  276. package/dist/src/codex/workspace-plan.d.ts +131 -0
  277. package/dist/src/codex/workspace-plan.js +561 -0
  278. package/dist/src/codex/workspace-plan.js.map +1 -0
  279. package/dist/src/core/actor.d.ts +2 -0
  280. package/dist/src/core/actor.js +5 -0
  281. package/dist/src/core/actor.js.map +1 -0
  282. package/dist/src/core/advance-cycle.d.ts +170 -0
  283. package/dist/src/core/advance-cycle.js +200 -0
  284. package/dist/src/core/advance-cycle.js.map +1 -0
  285. package/dist/src/core/agents-md.d.ts +276 -0
  286. package/dist/src/core/agents-md.js +747 -0
  287. package/dist/src/core/agents-md.js.map +1 -0
  288. package/dist/src/core/apply-patch.d.ts +49 -0
  289. package/dist/src/core/apply-patch.js +266 -0
  290. package/dist/src/core/apply-patch.js.map +1 -0
  291. package/dist/src/core/attest.d.ts +420 -0
  292. package/dist/src/core/attest.js +589 -0
  293. package/dist/src/core/attest.js.map +1 -0
  294. package/dist/src/core/audit.d.ts +492 -0
  295. package/dist/src/core/audit.js +882 -0
  296. package/dist/src/core/audit.js.map +1 -0
  297. package/dist/src/core/budgets.d.ts +238 -0
  298. package/dist/src/core/budgets.js +449 -0
  299. package/dist/src/core/budgets.js.map +1 -0
  300. package/dist/src/core/checkpoint.d.ts +500 -0
  301. package/dist/src/core/checkpoint.js +738 -0
  302. package/dist/src/core/checkpoint.js.map +1 -0
  303. package/dist/src/core/child-env.d.ts +88 -0
  304. package/dist/src/core/child-env.js +86 -0
  305. package/dist/src/core/child-env.js.map +1 -0
  306. package/dist/src/core/clock.d.ts +52 -0
  307. package/dist/src/core/clock.js +43 -0
  308. package/dist/src/core/clock.js.map +1 -0
  309. package/dist/src/core/command-class.d.ts +543 -0
  310. package/dist/src/core/command-class.js +2356 -0
  311. package/dist/src/core/command-class.js.map +1 -0
  312. package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
  313. package/dist/src/core/coverage-sources/adapter.js +71 -0
  314. package/dist/src/core/coverage-sources/adapter.js.map +1 -0
  315. package/dist/src/core/coverage-sources/gh.d.ts +48 -0
  316. package/dist/src/core/coverage-sources/gh.js +136 -0
  317. package/dist/src/core/coverage-sources/gh.js.map +1 -0
  318. package/dist/src/core/coverage-sources/git.d.ts +101 -0
  319. package/dist/src/core/coverage-sources/git.js +269 -0
  320. package/dist/src/core/coverage-sources/git.js.map +1 -0
  321. package/dist/src/core/coverage.d.ts +217 -0
  322. package/dist/src/core/coverage.js +337 -0
  323. package/dist/src/core/coverage.js.map +1 -0
  324. package/dist/src/core/credential-spec.d.ts +72 -0
  325. package/dist/src/core/credential-spec.js +23 -0
  326. package/dist/src/core/credential-spec.js.map +1 -0
  327. package/dist/src/core/dark-session.d.ts +331 -0
  328. package/dist/src/core/dark-session.js +714 -0
  329. package/dist/src/core/dark-session.js.map +1 -0
  330. package/dist/src/core/decision-refusal.d.ts +185 -0
  331. package/dist/src/core/decision-refusal.js +265 -0
  332. package/dist/src/core/decision-refusal.js.map +1 -0
  333. package/dist/src/core/env-file.d.ts +450 -0
  334. package/dist/src/core/env-file.js +837 -0
  335. package/dist/src/core/env-file.js.map +1 -0
  336. package/dist/src/core/execute.d.ts +858 -0
  337. package/dist/src/core/execute.js +1271 -0
  338. package/dist/src/core/execute.js.map +1 -0
  339. package/dist/src/core/frontmatter.d.ts +78 -0
  340. package/dist/src/core/frontmatter.js +100 -0
  341. package/dist/src/core/frontmatter.js.map +1 -0
  342. package/dist/src/core/gate-window.d.ts +312 -0
  343. package/dist/src/core/gate-window.js +506 -0
  344. package/dist/src/core/gate-window.js.map +1 -0
  345. package/dist/src/core/gate.d.ts +1364 -0
  346. package/dist/src/core/gate.js +3002 -0
  347. package/dist/src/core/gate.js.map +1 -0
  348. package/dist/src/core/git-run.d.ts +73 -0
  349. package/dist/src/core/git-run.js +93 -0
  350. package/dist/src/core/git-run.js.map +1 -0
  351. package/dist/src/core/harness-version.d.ts +157 -0
  352. package/dist/src/core/harness-version.js +211 -0
  353. package/dist/src/core/harness-version.js.map +1 -0
  354. package/dist/src/core/harness-wait.d.ts +55 -0
  355. package/dist/src/core/harness-wait.js +58 -0
  356. package/dist/src/core/harness-wait.js.map +1 -0
  357. package/dist/src/core/head-retry.d.ts +107 -0
  358. package/dist/src/core/head-retry.js +121 -0
  359. package/dist/src/core/head-retry.js.map +1 -0
  360. package/dist/src/core/instance.d.ts +253 -0
  361. package/dist/src/core/instance.js +319 -0
  362. package/dist/src/core/instance.js.map +1 -0
  363. package/dist/src/core/intake-limits.d.ts +247 -0
  364. package/dist/src/core/intake-limits.js +350 -0
  365. package/dist/src/core/intake-limits.js.map +1 -0
  366. package/dist/src/core/jcs.d.ts +52 -0
  367. package/dist/src/core/jcs.js +132 -0
  368. package/dist/src/core/jcs.js.map +1 -0
  369. package/dist/src/core/journal.d.ts +144 -0
  370. package/dist/src/core/journal.js +200 -0
  371. package/dist/src/core/journal.js.map +1 -0
  372. package/dist/src/core/live-draw.d.ts +436 -0
  373. package/dist/src/core/live-draw.js +703 -0
  374. package/dist/src/core/live-draw.js.map +1 -0
  375. package/dist/src/core/log-reconcile.d.ts +89 -0
  376. package/dist/src/core/log-reconcile.js +136 -0
  377. package/dist/src/core/log-reconcile.js.map +1 -0
  378. package/dist/src/core/log-subscribe.d.ts +36 -0
  379. package/dist/src/core/log-subscribe.js +162 -0
  380. package/dist/src/core/log-subscribe.js.map +1 -0
  381. package/dist/src/core/log.d.ts +278 -0
  382. package/dist/src/core/log.js +546 -0
  383. package/dist/src/core/log.js.map +1 -0
  384. package/dist/src/core/loop.d.ts +274 -0
  385. package/dist/src/core/loop.js +487 -0
  386. package/dist/src/core/loop.js.map +1 -0
  387. package/dist/src/core/md-fence.d.ts +41 -0
  388. package/dist/src/core/md-fence.js +74 -0
  389. package/dist/src/core/md-fence.js.map +1 -0
  390. package/dist/src/core/money.d.ts +147 -0
  391. package/dist/src/core/money.js +195 -0
  392. package/dist/src/core/money.js.map +1 -0
  393. package/dist/src/core/payload-census.d.ts +74 -0
  394. package/dist/src/core/payload-census.js +146 -0
  395. package/dist/src/core/payload-census.js.map +1 -0
  396. package/dist/src/core/payload-store.d.ts +175 -0
  397. package/dist/src/core/payload-store.js +340 -0
  398. package/dist/src/core/payload-store.js.map +1 -0
  399. package/dist/src/core/payload.d.ts +71 -0
  400. package/dist/src/core/payload.js +80 -0
  401. package/dist/src/core/payload.js.map +1 -0
  402. package/dist/src/core/policy-diff.d.ts +292 -0
  403. package/dist/src/core/policy-diff.js +588 -0
  404. package/dist/src/core/policy-diff.js.map +1 -0
  405. package/dist/src/core/policy-expectations.d.ts +199 -0
  406. package/dist/src/core/policy-expectations.js +394 -0
  407. package/dist/src/core/policy-expectations.js.map +1 -0
  408. package/dist/src/core/policy-explain.d.ts +150 -0
  409. package/dist/src/core/policy-explain.js +258 -0
  410. package/dist/src/core/policy-explain.js.map +1 -0
  411. package/dist/src/core/policy-load.d.ts +527 -0
  412. package/dist/src/core/policy-load.js +536 -0
  413. package/dist/src/core/policy-load.js.map +1 -0
  414. package/dist/src/core/policy-match.d.ts +281 -0
  415. package/dist/src/core/policy-match.js +478 -0
  416. package/dist/src/core/policy-match.js.map +1 -0
  417. package/dist/src/core/policy-proposal.d.ts +265 -0
  418. package/dist/src/core/policy-proposal.js +458 -0
  419. package/dist/src/core/policy-proposal.js.map +1 -0
  420. package/dist/src/core/prompt-layout.d.ts +221 -0
  421. package/dist/src/core/prompt-layout.js +422 -0
  422. package/dist/src/core/prompt-layout.js.map +1 -0
  423. package/dist/src/core/protected-path-guard.d.ts +453 -0
  424. package/dist/src/core/protected-path-guard.js +1566 -0
  425. package/dist/src/core/protected-path-guard.js.map +1 -0
  426. package/dist/src/core/registration.d.ts +25 -0
  427. package/dist/src/core/registration.js +39 -0
  428. package/dist/src/core/registration.js.map +1 -0
  429. package/dist/src/core/reindex.d.ts +99 -0
  430. package/dist/src/core/reindex.js +336 -0
  431. package/dist/src/core/reindex.js.map +1 -0
  432. package/dist/src/core/sampler.d.ts +313 -0
  433. package/dist/src/core/sampler.js +388 -0
  434. package/dist/src/core/sampler.js.map +1 -0
  435. package/dist/src/core/sandbox.d.ts +290 -0
  436. package/dist/src/core/sandbox.js +424 -0
  437. package/dist/src/core/sandbox.js.map +1 -0
  438. package/dist/src/core/seal.d.ts +165 -0
  439. package/dist/src/core/seal.js +290 -0
  440. package/dist/src/core/seal.js.map +1 -0
  441. package/dist/src/core/state.d.ts +505 -0
  442. package/dist/src/core/state.js +1009 -0
  443. package/dist/src/core/state.js.map +1 -0
  444. package/dist/src/core/task-file.d.ts +185 -0
  445. package/dist/src/core/task-file.js +464 -0
  446. package/dist/src/core/task-file.js.map +1 -0
  447. package/dist/src/core/telegram-config.d.ts +93 -0
  448. package/dist/src/core/telegram-config.js +114 -0
  449. package/dist/src/core/telegram-config.js.map +1 -0
  450. package/dist/src/core/token.d.ts +409 -0
  451. package/dist/src/core/token.js +561 -0
  452. package/dist/src/core/token.js.map +1 -0
  453. package/dist/src/core/validate.d.ts +138 -0
  454. package/dist/src/core/validate.js +0 -0
  455. package/dist/src/core/validate.js.map +1 -0
  456. package/dist/src/core/values.d.ts +137 -0
  457. package/dist/src/core/values.js +153 -0
  458. package/dist/src/core/values.js.map +1 -0
  459. package/dist/src/core/vault.d.ts +291 -0
  460. package/dist/src/core/vault.js +612 -0
  461. package/dist/src/core/vault.js.map +1 -0
  462. package/dist/src/core/verified-snapshot.d.ts +204 -0
  463. package/dist/src/core/verified-snapshot.js +506 -0
  464. package/dist/src/core/verified-snapshot.js.map +1 -0
  465. package/dist/src/core/verify.d.ts +336 -0
  466. package/dist/src/core/verify.js +549 -0
  467. package/dist/src/core/verify.js.map +1 -0
  468. package/dist/src/core/version.d.ts +8 -0
  469. package/dist/src/core/version.js +9 -0
  470. package/dist/src/core/version.js.map +1 -0
  471. package/dist/src/core/wysiwys.d.ts +370 -0
  472. package/dist/src/core/wysiwys.js +728 -0
  473. package/dist/src/core/wysiwys.js.map +1 -0
  474. package/dist/src/daemon/advance-child.d.ts +39 -0
  475. package/dist/src/daemon/advance-child.js +78 -0
  476. package/dist/src/daemon/advance-child.js.map +1 -0
  477. package/dist/src/daemon/advance.d.ts +466 -0
  478. package/dist/src/daemon/advance.js +849 -0
  479. package/dist/src/daemon/advance.js.map +1 -0
  480. package/dist/src/daemon/audit.d.ts +87 -0
  481. package/dist/src/daemon/audit.js +90 -0
  482. package/dist/src/daemon/audit.js.map +1 -0
  483. package/dist/src/daemon/daemon.d.ts +1180 -0
  484. package/dist/src/daemon/daemon.js +1988 -0
  485. package/dist/src/daemon/daemon.js.map +1 -0
  486. package/dist/src/daemon/dark-session.d.ts +64 -0
  487. package/dist/src/daemon/dark-session.js +119 -0
  488. package/dist/src/daemon/dark-session.js.map +1 -0
  489. package/dist/src/daemon/draw-child.d.ts +36 -0
  490. package/dist/src/daemon/draw-child.js +132 -0
  491. package/dist/src/daemon/draw-child.js.map +1 -0
  492. package/dist/src/daemon/draw.d.ts +154 -0
  493. package/dist/src/daemon/draw.js +458 -0
  494. package/dist/src/daemon/draw.js.map +1 -0
  495. package/dist/src/daemon/git-evidence.d.ts +173 -0
  496. package/dist/src/daemon/git-evidence.js +345 -0
  497. package/dist/src/daemon/git-evidence.js.map +1 -0
  498. package/dist/src/daemon/projection.d.ts +180 -0
  499. package/dist/src/daemon/projection.js +233 -0
  500. package/dist/src/daemon/projection.js.map +1 -0
  501. package/dist/src/daemon/prune.d.ts +207 -0
  502. package/dist/src/daemon/prune.js +376 -0
  503. package/dist/src/daemon/prune.js.map +1 -0
  504. package/dist/src/mcp/http.d.ts +113 -0
  505. package/dist/src/mcp/http.js +343 -0
  506. package/dist/src/mcp/http.js.map +1 -0
  507. package/dist/src/mcp/server.d.ts +265 -0
  508. package/dist/src/mcp/server.js +602 -0
  509. package/dist/src/mcp/server.js.map +1 -0
  510. package/docs/adapter-api.md +106 -0
  511. package/docs/cli-reference.md +5716 -0
  512. package/docs/codex-enforced-session.md +30 -0
  513. package/package.json +53 -4
  514. package/schema/.gitkeep +0 -0
  515. package/schema/LICENSE +117 -0
  516. package/schema/codex-instance.schema.json +82 -0
  517. package/schema/envelope.schema.json +137 -0
  518. package/schema/event.schema.json +1811 -0
  519. package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
  520. package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
  521. package/schema/fixtures/envelope/invalid/action-missing-idempotency-key.json +15 -0
  522. package/schema/fixtures/envelope/invalid/action-unknown-class-format.json +14 -0
  523. package/schema/fixtures/envelope/invalid/confidence-out-of-range.json +11 -0
  524. package/schema/fixtures/envelope/invalid/est-cost-bare-number.json +14 -0
  525. package/schema/fixtures/envelope/invalid/est-cost-noncanonical-string.json +14 -0
  526. package/schema/fixtures/envelope/invalid/malformed-assignee.json +10 -0
  527. package/schema/fixtures/envelope/invalid/malformed-created-by.json +7 -0
  528. package/schema/fixtures/envelope/invalid/malformed-max-latency.json +11 -0
  529. package/schema/fixtures/envelope/invalid/malformed-payload-hash.json +14 -0
  530. package/schema/fixtures/envelope/invalid/max-cost-bare-number.json +11 -0
  531. package/schema/fixtures/envelope/invalid/missing-origin.json +3 -0
  532. package/schema/fixtures/envelope/invalid/negative-est-cost.json +14 -0
  533. package/schema/fixtures/envelope/invalid/unknown-state.json +7 -0
  534. package/schema/fixtures/envelope/invalid/unknown-top-level-field.json +8 -0
  535. package/schema/fixtures/envelope/valid/action-payload-hash.json +17 -0
  536. package/schema/fixtures/envelope/valid/actions-without-budget.json +18 -0
  537. package/schema/fixtures/envelope/valid/canonical.json +25 -0
  538. package/schema/fixtures/envelope/valid/minimal.json +7 -0
  539. package/schema/fixtures/envelope/valid/multi-action-executed.json +30 -0
  540. package/schema/fixtures/envelope/valid/record-write-stage.json +22 -0
  541. package/schema/fixtures/event/invalid/approval-granted-agent-actor.json +15 -0
  542. package/schema/fixtures/event/invalid/approval-granted-empty-batch-delivery-id.json +17 -0
  543. package/schema/fixtures/event/invalid/approval-granted-fifth-reaction.json +16 -0
  544. package/schema/fixtures/event/invalid/approval-granted-missing-actor.json +14 -0
  545. package/schema/fixtures/event/invalid/approval-requested-missing-action-key.json +14 -0
  546. package/schema/fixtures/event/invalid/approval-withdrawn-agent-policy-drift.json +15 -0
  547. package/schema/fixtures/event/invalid/approval-withdrawn-missing-reason.json +15 -0
  548. package/schema/fixtures/event/invalid/approval-withdrawn-system-actor.json +15 -0
  549. package/schema/fixtures/event/invalid/audit-decision-refused-human-actor.json +17 -0
  550. package/schema/fixtures/event/invalid/audit-decision-refused-missing-code.json +16 -0
  551. package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +15 -0
  552. package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +16 -0
  553. package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +15 -0
  554. package/schema/fixtures/event/invalid/bad-actor-prefix.json +15 -0
  555. package/schema/fixtures/event/invalid/est-cost-bare-number.json +17 -0
  556. package/schema/fixtures/event/invalid/execution-completed-fabricated-exit-code.json +16 -0
  557. package/schema/fixtures/event/invalid/execution-completed-provider-ref-empty-id.json +18 -0
  558. package/schema/fixtures/event/invalid/execution-completed-provider-ref-extra-field.json +19 -0
  559. package/schema/fixtures/event/invalid/execution-completed-provider-ref-id-not-string.json +18 -0
  560. package/schema/fixtures/event/invalid/execution-completed-provider-ref-missing-adapter.json +17 -0
  561. package/schema/fixtures/event/invalid/execution-failed-open-reported-by.json +16 -0
  562. package/schema/fixtures/event/invalid/execution-indeterminate-open-reason.json +14 -0
  563. package/schema/fixtures/event/invalid/execution-reconciled-agent-actor.json +17 -0
  564. package/schema/fixtures/event/invalid/execution-started-negative-env-stripped.json +16 -0
  565. package/schema/fixtures/event/invalid/gate-bypassed-missing-opened-seq.json +15 -0
  566. package/schema/fixtures/event/invalid/gate-closed-non-integer-opened-seq.json +13 -0
  567. package/schema/fixtures/event/invalid/gate-opened-agent-actor.json +16 -0
  568. package/schema/fixtures/event/invalid/gate-organ-attested-absolute-path.json +14 -0
  569. package/schema/fixtures/event/invalid/gate-organ-attested-agent-actor.json +14 -0
  570. package/schema/fixtures/event/invalid/gate-organ-attested-missing-organ-path.json +13 -0
  571. package/schema/fixtures/event/invalid/harness-unknown-kind.json +18 -0
  572. package/schema/fixtures/event/invalid/harness-version-multiline.json +16 -0
  573. package/schema/fixtures/event/invalid/log-checkpoint-agent-actor.json +17 -0
  574. package/schema/fixtures/event/invalid/log-checkpoint-missing-signature.json +16 -0
  575. package/schema/fixtures/event/invalid/log-checkpoint-short-signed-hash.json +17 -0
  576. package/schema/fixtures/event/invalid/log-checkpoint-unknown-signature-alg.json +17 -0
  577. package/schema/fixtures/event/invalid/malformed-ts.json +15 -0
  578. package/schema/fixtures/event/invalid/missing-alg.json +14 -0
  579. package/schema/fixtures/event/invalid/missing-hash.json +14 -0
  580. package/schema/fixtures/event/invalid/non-integer-seq.json +15 -0
  581. package/schema/fixtures/event/invalid/payload-pruned-human-actor.json +14 -0
  582. package/schema/fixtures/event/invalid/payload-pruned-missing-hash.json +14 -0
  583. package/schema/fixtures/event/invalid/policy-declined-agent-actor.json +15 -0
  584. package/schema/fixtures/event/invalid/policy-proposed-missing-diff.json +19 -0
  585. package/schema/fixtures/event/invalid/policy-proposed-system-actor.json +26 -0
  586. package/schema/fixtures/event/invalid/short-hash.json +15 -0
  587. package/schema/fixtures/event/invalid/unknown-alg.json +15 -0
  588. package/schema/fixtures/event/invalid/unknown-event-type.json +15 -0
  589. package/schema/fixtures/event/invalid/unknown-top-level-field.json +16 -0
  590. package/schema/fixtures/event/valid/approval-expired.json +15 -0
  591. package/schema/fixtures/event/valid/approval-granted-batch.json +19 -0
  592. package/schema/fixtures/event/valid/approval-granted-reaction.json +16 -0
  593. package/schema/fixtures/event/valid/approval-granted.json +15 -0
  594. package/schema/fixtures/event/valid/approval-rejected.json +15 -0
  595. package/schema/fixtures/event/valid/approval-requested.json +19 -0
  596. package/schema/fixtures/event/valid/approval-revoked.json +15 -0
  597. package/schema/fixtures/event/valid/approval-withdrawn-policy-drift.json +17 -0
  598. package/schema/fixtures/event/valid/approval-withdrawn.json +16 -0
  599. package/schema/fixtures/event/valid/audit-decision-refused.json +20 -0
  600. package/schema/fixtures/event/valid/audit-reviewed-reaction.json +17 -0
  601. package/schema/fixtures/event/valid/audit-reviewed.json +15 -0
  602. package/schema/fixtures/event/valid/audit-sampled.json +14 -0
  603. package/schema/fixtures/event/valid/budget-exceeded.json +21 -0
  604. package/schema/fixtures/event/valid/envelope-drift.json +16 -0
  605. package/schema/fixtures/event/valid/execution-completed-harness-report.json +16 -0
  606. package/schema/fixtures/event/valid/execution-completed-provider-ref.json +18 -0
  607. package/schema/fixtures/event/valid/execution-completed.json +15 -0
  608. package/schema/fixtures/event/valid/execution-failed-harness-report.json +16 -0
  609. package/schema/fixtures/event/valid/execution-failed.json +15 -0
  610. package/schema/fixtures/event/valid/execution-indeterminate.json +15 -0
  611. package/schema/fixtures/event/valid/execution-reconciled.json +17 -0
  612. package/schema/fixtures/event/valid/execution-started-env-stripped.json +17 -0
  613. package/schema/fixtures/event/valid/execution-started.json +14 -0
  614. package/schema/fixtures/event/valid/gate-bypassed-harness-version.json +18 -0
  615. package/schema/fixtures/event/valid/gate-bypassed.json +19 -0
  616. package/schema/fixtures/event/valid/gate-closed.json +14 -0
  617. package/schema/fixtures/event/valid/gate-opened.json +16 -0
  618. package/schema/fixtures/event/valid/gate-organ-attested.json +14 -0
  619. package/schema/fixtures/event/valid/genesis-null-prev.json +14 -0
  620. package/schema/fixtures/event/valid/log-checkpoint.json +17 -0
  621. package/schema/fixtures/event/valid/payload-pruned-orphan.json +13 -0
  622. package/schema/fixtures/event/valid/payload-pruned.json +17 -0
  623. package/schema/fixtures/event/valid/policy-declined.json +16 -0
  624. package/schema/fixtures/event/valid/policy-proposed.json +35 -0
  625. package/schema/fixtures/event/valid/policy-updated.json +14 -0
  626. package/schema/fixtures/event/valid/reconciliation-required.json +18 -0
  627. package/schema/fixtures/event/valid/reconciliation-satisfied.json +17 -0
  628. package/schema/fixtures/event/valid/route-accepted.json +15 -0
  629. package/schema/fixtures/event/valid/route-proposed.json +16 -0
  630. package/schema/fixtures/event/valid/spec-example.json +15 -0
  631. package/schema/fixtures/event/valid/task-registered-harness-version.json +23 -0
  632. package/schema/fixtures/event/valid/task-registered.json +14 -0
  633. package/schema/fixtures/hash/known-answer-pre-121.json +74 -0
  634. package/schema/fixtures/hash/known-answer.json +74 -0
  635. package/schema/fixtures/policy/invalid/bad-approval-ttl.json +7 -0
  636. package/schema/fixtures/policy/invalid/bad-web-port.json +4 -0
  637. package/schema/fixtures/policy/invalid/checkpoint-key-not-base64.json +6 -0
  638. package/schema/fixtures/policy/invalid/class-rule-missing-autonomy.json +9 -0
  639. package/schema/fixtures/policy/invalid/empty-class-key.json +6 -0
  640. package/schema/fixtures/policy/invalid/live-rate-on-human-only.json +7 -0
  641. package/schema/fixtures/policy/invalid/malformed-class-key.json +6 -0
  642. package/schema/fixtures/policy/invalid/missing-version.json +8 -0
  643. package/schema/fixtures/policy/invalid/negative-limit.json +9 -0
  644. package/schema/fixtures/policy/invalid/non-numeric-limit.json +9 -0
  645. package/schema/fixtures/policy/invalid/non-positive-max-pending.json +9 -0
  646. package/schema/fixtures/policy/invalid/on-expiry-grant.json +8 -0
  647. package/schema/fixtures/policy/invalid/payload-retention-bare-number.json +4 -0
  648. package/schema/fixtures/policy/invalid/payload-retention-compound.json +4 -0
  649. package/schema/fixtures/policy/invalid/payload-retention-fractional.json +4 -0
  650. package/schema/fixtures/policy/invalid/payload-retention-zero.json +4 -0
  651. package/schema/fixtures/policy/invalid/protected-paths-escape.json +4 -0
  652. package/schema/fixtures/policy/invalid/protected-paths-glob.json +4 -0
  653. package/schema/fixtures/policy/invalid/retro-rate-on-human-only.json +7 -0
  654. package/schema/fixtures/policy/invalid/retro-rate-on-manual.json +7 -0
  655. package/schema/fixtures/policy/invalid/retro-rate-zero.json +7 -0
  656. package/schema/fixtures/policy/invalid/sample-rate-too-high.json +5 -0
  657. package/schema/fixtures/policy/invalid/sampling-secret-env-empty.json +7 -0
  658. package/schema/fixtures/policy/invalid/sampling-secret-env-not-string.json +6 -0
  659. package/schema/fixtures/policy/invalid/skew-tolerance-compound.json +6 -0
  660. package/schema/fixtures/policy/invalid/unknown-autonomy.json +7 -0
  661. package/schema/fixtures/policy/invalid/unknown-class-rule-key.json +6 -0
  662. package/schema/fixtures/policy/invalid/unknown-top-level-key.json +7 -0
  663. package/schema/fixtures/policy/invalid/vault-passphrase-env-empty.json +6 -0
  664. package/schema/fixtures/policy/invalid/vault-passphrase-literal.json +6 -0
  665. package/schema/fixtures/policy/invalid/version-not-string.json +4 -0
  666. package/schema/fixtures/policy/valid/canonical.json +47 -0
  667. package/schema/fixtures/policy/valid/checkpoint-keys.json +18 -0
  668. package/schema/fixtures/policy/valid/class-approvers-limits.json +25 -0
  669. package/schema/fixtures/policy/valid/class-retro-rate.json +17 -0
  670. package/schema/fixtures/policy/valid/global-budgets.json +19 -0
  671. package/schema/fixtures/policy/valid/human-only.json +9 -0
  672. package/schema/fixtures/policy/valid/minimal.json +6 -0
  673. package/schema/fixtures/policy/valid/protected-paths.json +10 -0
  674. package/schema/fixtures/policy/valid/record-namespace.json +13 -0
  675. package/schema/fixtures/policy/valid/request-volume-limits.json +26 -0
  676. package/schema/fixtures/policy/valid/retention-and-sampling-secret.json +16 -0
  677. package/schema/fixtures/policy/valid/skew-tolerance.json +15 -0
  678. package/schema/fixtures/policy/valid/vault-passphrase-env.json +14 -0
  679. package/schema/fixtures/policy/valid/wildcards.json +15 -0
  680. package/schema/fixtures/policy-md/invalid/alias-bomb.md +15 -0
  681. package/schema/fixtures/policy-md/invalid/no-fence.md +7 -0
  682. package/schema/fixtures/policy-md/invalid/protected-route-not-a-subclass.md +16 -0
  683. package/schema/fixtures/policy-md/invalid/schema-invalid-autonomy.md +16 -0
  684. package/schema/fixtures/policy-md/invalid/schema-invalid-read-proof.md +17 -0
  685. package/schema/fixtures/policy-md/invalid/two-fences.md +19 -0
  686. package/schema/fixtures/policy-md/invalid/unclosed-fence.md +11 -0
  687. package/schema/fixtures/policy-md/invalid/wrong-info-string.md +11 -0
  688. package/schema/fixtures/policy-md/invalid/yaml-syntax-error.md +13 -0
  689. package/schema/fixtures/policy-md/precedence/both/APPROVAL.md +7 -0
  690. package/schema/fixtures/policy-md/precedence/both/APPROVALS.md +7 -0
  691. package/schema/fixtures/policy-md/precedence/fallback-only/APPROVALS.md +7 -0
  692. package/schema/fixtures/policy-md/valid/canonical.md +50 -0
  693. package/schema/fixtures/policy-md/valid/daemon-read-proof.md +18 -0
  694. package/schema/fixtures/policy-md/valid/minimal.md +3 -0
  695. package/schema/fixtures/policy-md/valid/prose-lookalikes.md +54 -0
  696. package/schema/fixtures/policy-md/valid/routed-protected-paths.md +49 -0
  697. package/schema/fixtures/policy-md/valid/with-values.md +79 -0
  698. package/schema/fixtures/sample-record/invalid/bad-date-time.json +4 -0
  699. package/schema/fixtures/sample-record/invalid/missing-required-field.json +3 -0
  700. package/schema/fixtures/sample-record/invalid/unknown-top-level-field.json +5 -0
  701. package/schema/fixtures/sample-record/invalid/wrong-type.json +4 -0
  702. package/schema/fixtures/sample-record/valid/minimal.json +4 -0
  703. package/schema/fixtures/sample-record/valid/with-note.json +5 -0
  704. package/schema/fixtures/values/invalid/class-shaped.json +9 -0
  705. package/schema/fixtures/values/invalid/duplicate-entry.json +4 -0
  706. package/schema/fixtures/values/invalid/non-string-item.json +4 -0
  707. package/schema/fixtures/values/invalid/over-cap.json +26 -0
  708. package/schema/fixtures/values/invalid/unknown-key.json +5 -0
  709. package/schema/fixtures/values/invalid/version-string.json +1 -0
  710. package/schema/fixtures/values/valid/empty-lists.json +7 -0
  711. package/schema/fixtures/values/valid/full.json +20 -0
  712. package/schema/fixtures/values/valid/minimal.json +1 -0
  713. package/schema/fixtures/values-md/invalid/schema-invalid.md +62 -0
  714. package/schema/fixtures/values-md/invalid/two-blocks.md +69 -0
  715. package/schema/fixtures/values-md/invalid/unterminated.md +61 -0
  716. package/schema/fixtures/values-md/invalid/yaml-error.md +63 -0
  717. package/schema/fixtures/values-md/valid/absent.md +50 -0
  718. package/schema/fixtures/values-md/valid/with-values.md +79 -0
  719. package/schema/policy.schema.json +501 -0
  720. package/schema/sample-record.schema.json +26 -0
  721. package/schema/values.schema.json +55 -0
  722. package/templates/codex/README.md +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * The Codex-specific edge of `approval hook codex` (APRV-311).
3
+ *
4
+ * Codex currently uses the same outer hook envelope as Claude Code, but its
5
+ * input and outcome contracts are independent. Keeping the readings here
6
+ * prevents a Claude event name or a Claude tool-response shape from becoming
7
+ * evidence about a Codex execution.
8
+ */
9
+ /** The only Codex events this adapter understands. */
10
+ export declare const CODEX_PRE_TOOL_EVENT = "PreToolUse";
11
+ export declare const CODEX_POST_TOOL_EVENT = "PostToolUse";
12
+ export interface CodexHookInput {
13
+ sessionId: string;
14
+ sessionIdPresent: boolean;
15
+ cwd: string;
16
+ toolName: string;
17
+ toolInput: Record<string, unknown>;
18
+ toolUseId: string | null;
19
+ hookEventName: string | null;
20
+ /** Preserved verbatim so a future native reading does not inherit Claude's object-only parse. */
21
+ toolResponseRaw: unknown;
22
+ }
23
+ export type CodexInputCheck = {
24
+ ok: true;
25
+ phase: "pre" | "post";
26
+ } | {
27
+ ok: false;
28
+ detail: string;
29
+ };
30
+ /**
31
+ * Validate the closed Codex hook surface before it reaches shared gate code.
32
+ *
33
+ * The process directory is the directory the hook can establish itself. The
34
+ * event's `cwd` is self-reported, so it may agree with that directory but may
35
+ * not select a different payload binding. Both paths are resolved through the
36
+ * filesystem so a symlink spelling of the same directory does not create a
37
+ * false mismatch.
38
+ */
39
+ export declare function checkCodexHookInput(input: CodexHookInput, processCwd: string): CodexInputCheck;
40
+ export type CodexOutcomeReading = {
41
+ ok: true;
42
+ outcome: "completed" | "failed";
43
+ } | {
44
+ ok: false;
45
+ detail: string;
46
+ };
47
+ /**
48
+ * Read a Codex outcome only from a native-observed, closed contract.
49
+ *
50
+ * The native 0.152.1 probe observed the same empty-string `tool_response` for
51
+ * successful and non-zero Bash calls, and the documented value remains
52
+ * arbitrary JSON with no stable status key. Its raw value is intentionally
53
+ * accepted and ignored. Until a native probe records a discriminating
54
+ * contract, appending either outcome would fabricate it.
55
+ */
56
+ export declare function readCodexReportedOutcome(_input: CodexHookInput): CodexOutcomeReading;
57
+ export interface CodexBinding {
58
+ /** Exact bytes the gate and a future counterpart both bind. */
59
+ payload: {
60
+ tool: "Bash" | "apply_patch";
61
+ command: string;
62
+ cwd: string;
63
+ };
64
+ /** Passed to the legacy finish helper; reconstructs the four-segment task. */
65
+ finishSessionId: string;
66
+ finishToolUseId: string;
67
+ task: string;
68
+ }
69
+ /**
70
+ * Build the one Codex tool-call identity used by both pre and post phases.
71
+ *
72
+ * Native ids may contain colons, so they never enter the colon-delimited task
73
+ * directly. The session digest preserves per-session loop scope; the call
74
+ * digest additionally binds tool semantics, command bytes, and established
75
+ * process directory. Fixed-width digests make the encoding injective at the
76
+ * task grammar boundary.
77
+ */
78
+ export declare function codexBinding(input: CodexHookInput, processCwd: string): CodexBinding;
@@ -0,0 +1,167 @@
1
+ /**
2
+ * The Codex-specific edge of `approval hook codex` (APRV-311).
3
+ *
4
+ * Codex currently uses the same outer hook envelope as Claude Code, but its
5
+ * input and outcome contracts are independent. Keeping the readings here
6
+ * prevents a Claude event name or a Claude tool-response shape from becoming
7
+ * evidence about a Codex execution.
8
+ */
9
+ import { realpathSync } from "node:fs";
10
+ import { resolve } from "node:path";
11
+ import { payloadHash } from "../core/payload.js";
12
+ /** The only Codex events this adapter understands. */
13
+ export const CODEX_PRE_TOOL_EVENT = "PreToolUse";
14
+ export const CODEX_POST_TOOL_EVENT = "PostToolUse";
15
+ /** Stable correlation ids are log material, so bound their shape and size. */
16
+ const STABLE_ID = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$/u;
17
+ function stableId(name, value) {
18
+ if (value === null || !STABLE_ID.test(value)) {
19
+ return `${name} must be a non-empty stable id of at most 256 safe characters`;
20
+ }
21
+ return null;
22
+ }
23
+ /**
24
+ * Validate the closed Codex hook surface before it reaches shared gate code.
25
+ *
26
+ * The process directory is the directory the hook can establish itself. The
27
+ * event's `cwd` is self-reported, so it may agree with that directory but may
28
+ * not select a different payload binding. Both paths are resolved through the
29
+ * filesystem so a symlink spelling of the same directory does not create a
30
+ * false mismatch.
31
+ */
32
+ export function checkCodexHookInput(input, processCwd) {
33
+ const phase = input.hookEventName === CODEX_PRE_TOOL_EVENT
34
+ ? "pre"
35
+ : input.hookEventName === CODEX_POST_TOOL_EVENT
36
+ ? "post"
37
+ : null;
38
+ if (phase === null) {
39
+ return {
40
+ ok: false,
41
+ detail: `hook_event_name must be ${CODEX_PRE_TOOL_EVENT} or ${CODEX_POST_TOOL_EVENT}`,
42
+ };
43
+ }
44
+ const session = stableId("session_id", input.sessionIdPresent ? input.sessionId : null);
45
+ if (session !== null)
46
+ return { ok: false, detail: session };
47
+ const toolUse = stableId("tool_use_id", input.toolUseId);
48
+ if (toolUse !== null)
49
+ return { ok: false, detail: toolUse };
50
+ if (input.toolName !== "Bash" && input.toolName !== "apply_patch") {
51
+ return {
52
+ ok: false,
53
+ detail: `${JSON.stringify(input.toolName)} is not a supported Codex tool; expected exact Bash or apply_patch`,
54
+ };
55
+ }
56
+ if (typeof input.toolInput["command"] !== "string" || input.toolInput["command"].length === 0) {
57
+ return { ok: false, detail: `${input.toolName} tool_input.command must be a non-empty string` };
58
+ }
59
+ const knownInput = new Set(["command", "description", "cwd", "workdir"]);
60
+ const unexpected = Object.keys(input.toolInput).find((key) => !knownInput.has(key));
61
+ if (unexpected !== undefined) {
62
+ return {
63
+ ok: false,
64
+ detail: `${input.toolName} tool_input contains unsupported execution-affecting field ${JSON.stringify(unexpected)}`,
65
+ };
66
+ }
67
+ if (input.toolInput["description"] !== undefined &&
68
+ typeof input.toolInput["description"] !== "string") {
69
+ return { ok: false, detail: "Bash tool_input.description must be a string when present" };
70
+ }
71
+ if (input.cwd.length === 0)
72
+ return { ok: false, detail: "hook input has no cwd" };
73
+ let eventCwd;
74
+ let actualCwd;
75
+ try {
76
+ eventCwd = realpathSync(input.cwd);
77
+ actualCwd = realpathSync(processCwd);
78
+ }
79
+ catch {
80
+ return {
81
+ ok: false,
82
+ detail: "hook cwd could not be resolved against the hook process directory",
83
+ };
84
+ }
85
+ if (eventCwd !== actualCwd) {
86
+ return {
87
+ ok: false,
88
+ detail: `hook cwd ${JSON.stringify(input.cwd)} does not identify the hook process directory`,
89
+ };
90
+ }
91
+ for (const key of ["cwd", "workdir"]) {
92
+ const stated = input.toolInput[key];
93
+ if (stated === undefined)
94
+ continue;
95
+ if (typeof stated !== "string") {
96
+ return { ok: false, detail: `Bash tool_input.${key} must be a string when present` };
97
+ }
98
+ let resolved;
99
+ try {
100
+ resolved = realpathSync(resolve(processCwd, stated));
101
+ }
102
+ catch {
103
+ return { ok: false, detail: `Bash tool_input.${key} could not be resolved` };
104
+ }
105
+ if (resolved !== actualCwd) {
106
+ return {
107
+ ok: false,
108
+ detail: `Bash tool_input.${key} does not identify the hook process directory`,
109
+ };
110
+ }
111
+ }
112
+ return { ok: true, phase };
113
+ }
114
+ /**
115
+ * Read a Codex outcome only from a native-observed, closed contract.
116
+ *
117
+ * The native 0.152.1 probe observed the same empty-string `tool_response` for
118
+ * successful and non-zero Bash calls, and the documented value remains
119
+ * arbitrary JSON with no stable status key. Its raw value is intentionally
120
+ * accepted and ignored. Until a native probe records a discriminating
121
+ * contract, appending either outcome would fabricate it.
122
+ */
123
+ export function readCodexReportedOutcome(_input) {
124
+ return {
125
+ ok: false,
126
+ detail: "Codex PostToolUse does not yet expose a native-verified success or failure reading; tool_response is arbitrary JSON, so the execution remains open",
127
+ };
128
+ }
129
+ /**
130
+ * Build the one Codex tool-call identity used by both pre and post phases.
131
+ *
132
+ * Native ids may contain colons, so they never enter the colon-delimited task
133
+ * directly. The session digest preserves per-session loop scope; the call
134
+ * digest additionally binds tool semantics, command bytes, and established
135
+ * process directory. Fixed-width digests make the encoding injective at the
136
+ * task grammar boundary.
137
+ */
138
+ export function codexBinding(input, processCwd) {
139
+ const command = input.toolInput["command"];
140
+ if ((input.toolName !== "Bash" && input.toolName !== "apply_patch") || typeof command !== "string") {
141
+ throw new Error("codexBinding requires a validated Bash or apply_patch input");
142
+ }
143
+ if (input.toolUseId === null)
144
+ throw new Error("codexBinding requires a validated tool_use_id");
145
+ const tool = input.toolName;
146
+ const payload = { tool, command, cwd: realpathSync(processCwd) };
147
+ const sessionDigest = payloadHash({
148
+ domain: "approval.md/codex-hook-session/v1",
149
+ harness: "codex",
150
+ session_id: input.sessionId,
151
+ });
152
+ const callDigest = payloadHash({
153
+ domain: "approval.md/codex-hook-call/v1",
154
+ harness: "codex",
155
+ session_id: input.sessionId,
156
+ tool_use_id: input.toolUseId,
157
+ payload_hash: payloadHash(payload),
158
+ });
159
+ const finishSessionId = `codex:${sessionDigest}`;
160
+ return {
161
+ payload,
162
+ finishSessionId,
163
+ finishToolUseId: callDigest,
164
+ task: `hook:${finishSessionId}:${callDigest}`,
165
+ };
166
+ }
167
+ //# sourceMappingURL=hook-codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-codex.js","sourceRoot":"","sources":["../../../src/cli/hook-codex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,331 @@
1
+ /**
2
+ * `approval hook` — harness adapters that put the gate in front of the commands
3
+ * an agent's harness runs directly (APRV-82 Claude Code, APRV-133 Cursor).
4
+ *
5
+ * The problem it closes. Until this verb, the runtime gated what went through
6
+ * `approval run`. Everything the harness executed on its own — `git push`, `gh
7
+ * pr create`, `npm install`, `curl` — bypassed APPROVAL.md entirely, so the
8
+ * enforcement of those classes was the prose in CLAUDE.md and an agent's
9
+ * willingness to read it. That is exactly the AGENTS.md failure SPEC.md §2
10
+ * critiques, reproduced inside the repository that critiques it.
11
+ *
12
+ * As everywhere else in this CLI, **no logic lives here.** Classification is
13
+ * `core/command-class.ts` (pure, fixture-tested); registration, policy
14
+ * resolution and intake are `core/gate.ts`; the decision is derived from the
15
+ * verified log by `core/state.ts`. This file reads one JSON object from stdin,
16
+ * calls those, and prints one JSON object back.
17
+ *
18
+ * Four choices are load-bearing enough to state plainly.
19
+ *
20
+ * **It exits 0 with a verdict, or 2 with nothing.** Claude Code reads a hook's
21
+ * stdout as a decision only on exit 0; a hook that exits 2 is a *block* with the
22
+ * stderr text as the reason, and any other non-zero code is a non-blocking
23
+ * error. So every classified or decided outcome — allow and deny alike — is an
24
+ * exit 0 with `hookSpecificOutput` on stdout, and the only exit 2 is a
25
+ * misconfigured hook (an unknown flag, a bad identity), where blocking is the
26
+ * correct failure mode. No new exit code is added to the frozen table.
27
+ *
28
+ * **Never `ask`.** The permission decision vocabulary includes `ask`, which
29
+ * hands the question to the harness's own prompt. Using it would answer an
30
+ * approval question outside the log: no request, no record, no audit trail, and
31
+ * a human deciding in a UI the policy never named. The hook allows or denies,
32
+ * and every deny carries a machine-readable code.
33
+ *
34
+ * **Fail closed on every axis.** An unreadable policy, an unreachable log, a
35
+ * command the classifier cannot read, a wait that times out: all deny. A hook
36
+ * that fell back to allow when it could not reach the gate would be worst
37
+ * precisely when it mattered. Since APRV-139 that includes an unattested
38
+ * policy: a verdict nobody is asked about is checked against the verified log
39
+ * first, exactly as `core/execute.ts` checks one (see `unattendedGuard`).
40
+ *
41
+ * **The harness executes, not the runtime.** The hook decides *before* the tool
42
+ * runs and never spawns anything, so it never writes an `execution.completed`
43
+ * or `execution.failed`: the runtime does not run the command and never learns
44
+ * how it went. It does write one `execution.started`, and only where a verdict
45
+ * of `allow` rests on a human's grant — that record is the *consumption* of the
46
+ * grant (APRV-117), which a harness request needs because it mints no token
47
+ * that could be spent instead. `core/gate.ts`'s `consumeHarnessGrant` is where
48
+ * that lives and why. What the log records is otherwise the approval lifecycle:
49
+ * `task.registered`, `approval.requested`, and the human's decision.
50
+ *
51
+ * **A decision outlives the invocation that asked for it (APRV-117).** Requests
52
+ * are matched by the payload hash of `{command, cwd}`, so the answer to "may I
53
+ * run these bytes, here" belongs to the bytes rather than to one tool-use id.
54
+ * A retry while the question is pending adopts it instead of asking twice; a
55
+ * retry after a grant lands proceeds on it, once, inside the TTL. That is why
56
+ * the wait no longer ends in an immediate withdrawal: a late tap authorizes
57
+ * something. It ends in one once the RETRY GRACE has run out (APRV-287): past
58
+ * that window nothing is coming back to adopt the question, and a request left
59
+ * standing is one more dead message a restarted listener re-delivers.
60
+ *
61
+ * **An allow follows its record, and says which window it sits in (APRV-200).**
62
+ * The harness executes and never sees this process's return value, so what
63
+ * authorizes the tool call is the record and not the verdict. Every allow that
64
+ * rests on a grant therefore spends it, RE-READS the verified log to establish
65
+ * that the `execution.started` is in the chain, and only then prints — a
66
+ * `hook-grant-unverified` deny where it cannot. The record itself carries
67
+ * `grant_origin`: `direct` where the tool call that spent the grant is the tool
68
+ * call that asked for it, `carried` where a later one spent it under the
69
+ * carryover above. Only `direct` states an ordering this runtime observed;
70
+ * `carried` is the window in which a grant can be a ratification of a write the
71
+ * harness already applied, and naming it is what makes that visible to an
72
+ * auditor holding the log alone. See `docs/claude-code-hook.md`.
73
+ */
74
+ import { type ClassifiedSegment, type CommandClassification, type ProtectedPathEntry } from "../core/command-class.js";
75
+ import type { Streams } from "./main.js";
76
+ import { type Style } from "./style.js";
77
+ /**
78
+ * How much of the command line goes in the (claimed) summary field.
79
+ *
80
+ * A HEADLINE, and only that (APRV-124). What the approver is bound to is the
81
+ * payload, which carries the whole command (or the whole change) and is never
82
+ * shortened; this is the one-line label above it. Exported because the tests
83
+ * pin the distinction.
84
+ */
85
+ export declare const SUMMARY_LIMIT = 160;
86
+ /**
87
+ * The closed set of hook denial codes, frozen in the sense
88
+ * `GATE_REFUSAL_CODES` is: the reason string a human reads and an agent
89
+ * branches on starts with one of these.
90
+ *
91
+ * `hook-gate-refused` is a family: the emitted code is
92
+ * `hook-gate-refused:<gate refusal code>`, so the gate's own frozen vocabulary
93
+ * reaches the caller unflattened.
94
+ */
95
+ export declare const HOOK_DENY_CODES: readonly [
96
+ /** No rule covers some segment of the command line. */
97
+ "hook-unclassified",
98
+ /**
99
+ * Some class of the command resolves to `human-only` (APRV-185, amended
100
+ * SPEC.md §5.2): the policy reserves it to human hands, so the command is
101
+ * denied outright and no gate lifecycle is opened for it.
102
+ *
103
+ * This union's spelling of the gate's `class-human-only`, which the detail
104
+ * names in full. It wears the `hook-` prefix every other member wears rather
105
+ * than borrowing the gate's bare code, because a caller branching on this
106
+ * vocabulary branches on one shape; `hook-gate-refused:<c>` is the form
107
+ * reserved for a code the gate itself produced, and the gate is not asked
108
+ * here.
109
+ *
110
+ * Distinct from `hook-unclassified`, and the repairs are opposites. That one
111
+ * says the policy has nothing to say about this command, so the fix is to
112
+ * declare a class for it. This one says the policy has spoken as clearly as
113
+ * it can, and the fix is for a person to run the command themselves. Distinct
114
+ * from `hook-rejected` for the reason the gate's code is distinct from a
115
+ * rejection: nobody decided anything, so there is nothing to ask again.
116
+ */
117
+ "hook-class-human-only",
118
+ /** A construct whose effect cannot be read off the text (`bash -c`, `eval`). */
119
+ "hook-opaque",
120
+ /** The command line could not be tokenized at all. */
121
+ "hook-unparseable",
122
+ /** A human rejected the request. */
123
+ "hook-rejected",
124
+ /** A previously granted request was withdrawn. */
125
+ "hook-revoked",
126
+ /** The request's TTL lapsed before a decision. */
127
+ "hook-expired",
128
+ /**
129
+ * The request was withdrawn before a decision landed (APRV-106). Since
130
+ * APRV-117 the timeout no longer produces this: what does is a session that
131
+ * ended mid-wait (signal or failure) and an operator's `approval withdraw`.
132
+ * Terminal, and not a refusal by anyone.
133
+ */
134
+ "hook-withdrawn",
135
+ /**
136
+ * The wait elapsed with the request still undecided. The request stays open
137
+ * for the RETRY GRACE (APRV-117, bounded by APRV-287): a decision inside that
138
+ * window authorizes a retry of the identical command in the identical
139
+ * directory, once. Past the grace the hook withdraws it (reason `timeout`),
140
+ * because a question nothing will adopt is a message on a phone that decides
141
+ * nothing.
142
+ */
143
+ "hook-timeout",
144
+ /** The gate refused intake; the gate's own code follows a colon. */
145
+ "hook-gate-refused",
146
+ /**
147
+ * The grant was spent and the VERIFIED log does not show it (APRV-200).
148
+ *
149
+ * Distinct from `hook-gate-refused:append-failed`, which says the write was
150
+ * refused and nothing landed. This one says the write reported success and the
151
+ * chain cannot be seen to carry it, which is a different fact with a different
152
+ * repair: nothing here is retried, the log is checked (`approval log verify`).
153
+ *
154
+ * On this surface the record IS the authorization — the harness executes and
155
+ * never sees the gate's return value — so a verdict is not printed until the
156
+ * verified chain carries the execution the harness is about to perform. The
157
+ * grant is spent by the time this fires, which is the fail-closed direction:
158
+ * one more prompt on the retry, and nothing authorized meanwhile.
159
+ */
160
+ "hook-grant-unverified",
161
+ /**
162
+ * `APPROVAL_HOOK_REQUIRE_SANDBOX=1` is set and this command runs code the
163
+ * runtime did not author, unwrapped (APRV-193).
164
+ *
165
+ * The one deny in this union that names a spelling that would work rather
166
+ * than a decision or a fault: re-run it as `approval sandbox -- <cmd>` and it
167
+ * proceeds, classified exactly as it is now, with no way out to the network.
168
+ *
169
+ * It exists because the hook DECIDES and the harness EXECUTES. A verdict
170
+ * cannot rewrite a command into a wrapper, so the only way for this runtime
171
+ * to insist on the room is to refuse the spelling that does not ask for it.
172
+ * Off by default, and turning it on can only ever refuse more — which is why
173
+ * an environment variable is an acceptable home for it, and why nothing in
174
+ * the other direction is readable from one.
175
+ */
176
+ "hook-sandbox-required",
177
+ /** The policy could not be loaded, so no class can be resolved. */
178
+ "hook-policy-unavailable",
179
+ /**
180
+ * No log exists where the hook was pointed. The hook is a WRITER to an
181
+ * existing log, never an initializer: creating one where it happens to stand
182
+ * (an agent worktree, say) forks a chain off the real log's tail, and git
183
+ * merges do not reconcile hash chains (APRV-101).
184
+ */
185
+ "hook-log-unreachable",
186
+ /** Malformed hook input, or a log/filesystem fact that stopped the check. */
187
+ "hook-io"];
188
+ export type HookDenyCode = (typeof HOOK_DENY_CODES)[number];
189
+ /** A classification plus a human-readable note for every segment refined. */
190
+ export interface RefinedClassification {
191
+ result: CommandClassification;
192
+ /** One line per downgraded segment; empty when nothing was refined. */
193
+ notes: string[];
194
+ }
195
+ /**
196
+ * Downgrade local rewrites of unpublished history to `vcs.commit.branch`.
197
+ *
198
+ * IMPURE by design and by contract: it runs git in `cwd`. Both callers pass the
199
+ * same directory the hook itself resolves from, so what `hook classify` prints
200
+ * is what `hook claude-code` decides.
201
+ */
202
+ export declare function refineRewrite(result: CommandClassification, cwd: string): RefinedClassification;
203
+ /**
204
+ * Is a candidate deep enough, once resolved, to stand as a scratch root?
205
+ *
206
+ * The depth floor is the anti-poisoning guard (SPEC.md §11.1: self-reported
207
+ * fields never reduce scrutiny). A `TMPDIR` naming `/` resolves and exists, and
208
+ * a root of `/` would turn every absolute delete into a scratch delete, so a
209
+ * resolved root is refused below {@link MIN_ROOT_SEGMENTS}.
210
+ *
211
+ * The well-known system temp roots are the one exception, and they are one on
212
+ * every platform: on Linux `os.tmpdir()` is `/tmp`, a single segment, and
213
+ * refusing it would mean `files.delete.scratch` could never fire there, while
214
+ * on macOS the same directory resolves through the `/tmp` symlink to
215
+ * `/private/tmp` and clears the floor by accident of layout. The exemption is
216
+ * keyed on the RESOLVED value being one of the three compiled-in names, so
217
+ * nothing a caller reports widens it: a poisoned `TMPDIR` still has to resolve
218
+ * to `/tmp`, `/private/tmp` or `/var/tmp` to get in, and those are roots
219
+ * already. `/` is not among them, and every other one-segment directory
220
+ * (`/etc`, `/home`, `/usr`) stays refused.
221
+ */
222
+ export declare function scratchRootDepthAccepted(resolved: string): boolean;
223
+ /**
224
+ * The scratch roots this process may vouch for, resolved and guarded.
225
+ *
226
+ * `cwd` is the directory the hook itself resolved from; a candidate containing
227
+ * it is discarded, because a root that swallowed the checkout would make every
228
+ * delete in the repository a scratch delete.
229
+ */
230
+ export declare function resolveScratchRoots(cwd: string, env?: NodeJS.ProcessEnv): string[];
231
+ /**
232
+ * Tighten `files.delete.scratch` back to `files.delete.out_of_scope` wherever
233
+ * the disk disagrees with the text.
234
+ *
235
+ * IMPURE by design and by contract, exactly as {@link refineRewrite} is: it
236
+ * stats paths. It only ever moves a segment toward the stricter class, so a
237
+ * caller that skipped it would never be MORE permissive than one that runs it,
238
+ * which is what lets `hook classify` and `hook claude-code` share it without
239
+ * either becoming the authority.
240
+ */
241
+ export declare function refineScratchDelete(result: CommandClassification, roots: readonly string[]): RefinedClassification;
242
+ /**
243
+ * The classifier, its scratch context, and both impure refinements, in the one
244
+ * order every caller must use.
245
+ *
246
+ * `hook classify` printing a different class from the one `hook claude-code`
247
+ * decides would make the explainer a different program (APRV-108's note), and
248
+ * that stays true now there are two refinements in the chain.
249
+ */
250
+ export declare function classifyForHook(command: string, protectedPaths: readonly ProtectedPathEntry[], cwd: string): RefinedClassification;
251
+ /**
252
+ * What the classifier made of a command (APRV-91 #9).
253
+ *
254
+ * Human output is an aligned three-column table under a `key` header row; the
255
+ * command text and the rule name are copyable and stay undressed. `--json`
256
+ * emits the classification object unchanged, and asks for the style FIRST so
257
+ * that the `json` veto on colour is the answer this process memoizes.
258
+ */
259
+ export declare function renderClassification(result: CommandClassification, json: boolean, st?: Style): string;
260
+ /**
261
+ * Every line the counterpart can print, closed and machine-readable (§11.1
262
+ * invariant 7).
263
+ *
264
+ * A post-execution hook cannot deny anything — the tool has already run — so
265
+ * none of these is a verdict, and every one of them prints an EMPTY STDOUT: a
266
+ * decision object on that stream would be a second answer about a command the
267
+ * harness already ran. The line goes to stderr instead.
268
+ *
269
+ * ## The exit code decides whether anybody reads that line (APRV-303)
270
+ *
271
+ * Claude Code's hooks reference states it plainly: stderr from a hook that
272
+ * exits 0 "goes to the debug log only, never the transcript, and Claude never
273
+ * sees it", and a post-execution hook that exits 2 has its stderr shown, since
274
+ * there is nothing left to block. So a refusal reported at exit 0 is a refusal
275
+ * nobody receives, which is how 22052 unreported starts accumulated on this
276
+ * project's own log without a single visible complaint.
277
+ *
278
+ * Therefore: {@link POST_TOOL_REPORTED} exits 0, because a counterpart that
279
+ * landed is not news; every other code exits {@link POST_TOOL_SURFACE_EXIT},
280
+ * because every other code means the outcome of a tool call was not recorded
281
+ * and somebody has to know. Neither exit is a verdict, and neither blocks
282
+ * anything.
283
+ */
284
+ export declare const POST_TOOL_CODES: readonly [
285
+ /** One or more counterparts were appended. */
286
+ "post-tool-reported",
287
+ /** The event names no tool-use id, so no task id can be reconstructed. */
288
+ "post-tool-unidentified",
289
+ /** The tool is not one this hook gates, so no start exists to close. */
290
+ "post-tool-not-gated",
291
+ /**
292
+ * The outcome could not be read from the event by the pinned set of readings,
293
+ * so NOTHING was appended. Recording a failure nobody observed trips an
294
+ * escalation on noise, and recording a completion nobody observed clears one
295
+ * on nothing.
296
+ */
297
+ "post-tool-unreadable-outcome",
298
+ /** No log where the hook was pointed; the hook is a writer, never an initializer. */
299
+ "post-tool-log-unreachable",
300
+ /** The gate refused the append; its own frozen code follows a colon. */
301
+ "post-tool-gate-refused",
302
+ /** Malformed input, or a filesystem fact that stopped the report. */
303
+ "post-tool-io"];
304
+ export type PostToolCode = (typeof POST_TOOL_CODES)[number];
305
+ /** The environment variable that turns the sandbox requirement on (APRV-193). */
306
+ export declare const REQUIRE_SANDBOX_ENV = "APPROVAL_HOOK_REQUIRE_SANDBOX";
307
+ /**
308
+ * Must this command have been written `approval sandbox -- …`? (APRV-193.)
309
+ *
310
+ * Returns the deny detail, or `null` to proceed. Four conditions, and every one
311
+ * of them is a narrowing, so the answer is `null` for everything the operator
312
+ * did not deliberately ask about:
313
+ *
314
+ * 1. the operator set `APPROVAL_HOOK_REQUIRE_SANDBOX=1`;
315
+ * 2. some segment runs code this runtime did not author
316
+ * (`CODE_EXECUTING_RULES`: `npm test`, `node x.mjs`, `tsc`, `make`…);
317
+ * 3. that segment is not already inside the runtime's own wrapper. A
318
+ * hand-written `sandbox-exec -f mine.sb` does NOT satisfy it, because a
319
+ * profile a caller wrote can allow everything, and a requirement met by
320
+ * writing your own permission is not a requirement;
321
+ * 4. no class of the command is manual. A manual command is going to a human,
322
+ * and a human's grant over these exact bytes is the authority to reach the
323
+ * world — the same line `approval run` draws at the token.
324
+ *
325
+ * The environment variable is read in the strict direction only: setting it can
326
+ * refuse commands that would otherwise run, and nothing an agent can set makes
327
+ * this function return `null` where it would otherwise deny (SPEC.md §11.1
328
+ * invariant 4).
329
+ */
330
+ export declare function sandboxRequirement(segments: readonly ClassifiedSegment[] | undefined, autonomies: readonly string[], env?: NodeJS.ProcessEnv): string | null;
331
+ export declare function commandHook(argv: string[], streams: Streams, cwd: string, readStdin?: () => string): number;