approval-md 0.1.0 → 0.3.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 (416) hide show
  1. package/README.md +629 -559
  2. package/SPEC.md +99 -24
  3. package/dist/src/adapters/agentmail.d.ts +426 -0
  4. package/dist/src/adapters/agentmail.js +2 -2
  5. package/dist/src/adapters/conformance.d.ts +149 -0
  6. package/dist/src/adapters/contract.d.ts +628 -0
  7. package/dist/src/adapters/contract.js +110 -16
  8. package/dist/src/adapters/contract.js.map +1 -1
  9. package/dist/src/adapters/email.d.ts +324 -0
  10. package/dist/src/adapters/env-passphrase.d.ts +93 -0
  11. package/dist/src/adapters/public.d.ts +11 -0
  12. package/dist/src/adapters/public.js +11 -0
  13. package/dist/src/adapters/public.js.map +1 -0
  14. package/dist/src/adapters/registry.d.ts +59 -0
  15. package/dist/src/adapters/registry.js +2 -1
  16. package/dist/src/adapters/registry.js.map +1 -1
  17. package/dist/src/adapters/smtp.d.ts +213 -0
  18. package/dist/src/adapters/vault-provider.d.ts +114 -0
  19. package/dist/src/adapters/vault-provider.js +3 -3
  20. package/dist/src/adapters/zzz.d.ts +66 -0
  21. package/dist/src/adapters/zzz.js +299 -0
  22. package/dist/src/adapters/zzz.js.map +1 -0
  23. package/dist/src/channels/batch.d.ts +109 -0
  24. package/dist/src/channels/cli.d.ts +193 -0
  25. package/dist/src/channels/conformance.d.ts +92 -0
  26. package/dist/src/channels/contract.d.ts +656 -0
  27. package/dist/src/channels/contract.js +200 -7
  28. package/dist/src/channels/contract.js.map +1 -1
  29. package/dist/src/channels/payload-view.d.ts +35 -0
  30. package/dist/src/channels/render-queue.d.ts +149 -0
  31. package/dist/src/channels/tagging.d.ts +196 -0
  32. package/dist/src/channels/telegram.d.ts +1944 -0
  33. package/dist/src/channels/telegram.js +218 -23
  34. package/dist/src/channels/telegram.js.map +1 -1
  35. package/dist/src/channels/web.d.ts +350 -0
  36. package/dist/src/channels/web.js +17 -0
  37. package/dist/src/channels/web.js.map +1 -1
  38. package/dist/src/cli/adapter.d.ts +90 -0
  39. package/dist/src/cli/adapter.js +25 -15
  40. package/dist/src/cli/adapter.js.map +1 -1
  41. package/dist/src/cli/amend.d.ts +59 -0
  42. package/dist/src/cli/amend.js +214 -30
  43. package/dist/src/cli/amend.js.map +1 -1
  44. package/dist/src/cli/args.d.ts +43 -0
  45. package/dist/src/cli/attest.d.ts +50 -0
  46. package/dist/src/cli/attest.js +134 -7
  47. package/dist/src/cli/attest.js.map +1 -1
  48. package/dist/src/cli/audit-card.d.ts +62 -0
  49. package/dist/src/cli/audit.d.ts +59 -0
  50. package/dist/src/cli/channel-telegram.d.ts +879 -0
  51. package/dist/src/cli/channel-telegram.js +311 -13
  52. package/dist/src/cli/channel-telegram.js.map +1 -1
  53. package/dist/src/cli/channel-web.d.ts +131 -0
  54. package/dist/src/cli/channel.d.ts +80 -0
  55. package/dist/src/cli/channel.js +9 -0
  56. package/dist/src/cli/channel.js.map +1 -1
  57. package/dist/src/cli/checkpoint-tap.d.ts +169 -0
  58. package/dist/src/cli/codex-bridge.d.ts +819 -0
  59. package/dist/src/cli/codex-bridge.js +1607 -0
  60. package/dist/src/cli/codex-bridge.js.map +1 -0
  61. package/dist/src/cli/codex.d.ts +2 -0
  62. package/dist/src/cli/codex.js +469 -0
  63. package/dist/src/cli/codex.js.map +1 -0
  64. package/dist/src/cli/coverage.d.ts +61 -0
  65. package/dist/src/cli/daemon.d.ts +120 -0
  66. package/dist/src/cli/daemon.js +4 -1
  67. package/dist/src/cli/daemon.js.map +1 -1
  68. package/dist/src/cli/doctor.d.ts +129 -0
  69. package/dist/src/cli/doctor.js +586 -17
  70. package/dist/src/cli/doctor.js.map +1 -1
  71. package/dist/src/cli/env.d.ts +65 -0
  72. package/dist/src/cli/execute.d.ts +202 -0
  73. package/dist/src/cli/execute.js +25 -2
  74. package/dist/src/cli/execute.js.map +1 -1
  75. package/dist/src/cli/exit-codes.d.ts +73 -0
  76. package/dist/src/cli/feedback.d.ts +60 -0
  77. package/dist/src/cli/gate-window.d.ts +40 -0
  78. package/dist/src/cli/gate.d.ts +68 -0
  79. package/dist/src/cli/git-scope.d.ts +190 -0
  80. package/dist/src/cli/gloss-attach.d.ts +85 -0
  81. package/dist/src/cli/gloss-codex-child.d.ts +9 -0
  82. package/dist/src/cli/gloss-codex.d.ts +24 -0
  83. package/dist/src/cli/gloss-options.d.ts +42 -0
  84. package/dist/src/cli/gloss.d.ts +265 -0
  85. package/dist/src/cli/help.d.ts +107 -0
  86. package/dist/src/cli/help.js +320 -93
  87. package/dist/src/cli/help.js.map +1 -1
  88. package/dist/src/cli/hook-codex.d.ts +126 -0
  89. package/dist/src/cli/hook-codex.js +226 -0
  90. package/dist/src/cli/hook-codex.js.map +1 -0
  91. package/dist/src/cli/hook.d.ts +787 -0
  92. package/dist/src/cli/hook.js +1235 -181
  93. package/dist/src/cli/hook.js.map +1 -1
  94. package/dist/src/cli/import.d.ts +35 -0
  95. package/dist/src/cli/import.js +1 -1
  96. package/dist/src/cli/import.js.map +1 -1
  97. package/dist/src/cli/init.d.ts +84 -0
  98. package/dist/src/cli/init.js +2 -2
  99. package/dist/src/cli/init.js.map +1 -1
  100. package/dist/src/cli/instructions.d.ts +23 -0
  101. package/dist/src/cli/journal.d.ts +41 -0
  102. package/dist/src/cli/log-advance.d.ts +287 -0
  103. package/dist/src/cli/log-advance.js +102 -11
  104. package/dist/src/cli/log-advance.js.map +1 -1
  105. package/dist/src/cli/log-anchor.d.ts +176 -0
  106. package/dist/src/cli/log-checkpoint.d.ts +22 -0
  107. package/dist/src/cli/log-sync.d.ts +243 -0
  108. package/dist/src/cli/log-verbs.d.ts +16 -0
  109. package/dist/src/cli/log-verbs.js +7 -1
  110. package/dist/src/cli/log-verbs.js.map +1 -1
  111. package/dist/src/cli/long-help.d.ts +70 -0
  112. package/dist/src/cli/main.d.ts +77 -0
  113. package/dist/src/cli/main.js +159 -7
  114. package/dist/src/cli/main.js.map +1 -1
  115. package/dist/src/cli/mcp.d.ts +52 -0
  116. package/dist/src/cli/paths.d.ts +56 -0
  117. package/dist/src/cli/payload.d.ts +58 -0
  118. package/dist/src/cli/policy-apply.d.ts +195 -0
  119. package/dist/src/cli/policy-apply.js +573 -0
  120. package/dist/src/cli/policy-apply.js.map +1 -0
  121. package/dist/src/cli/policy.d.ts +43 -0
  122. package/dist/src/cli/policy.js +14 -1
  123. package/dist/src/cli/policy.js.map +1 -1
  124. package/dist/src/cli/preflight.d.ts +501 -0
  125. package/dist/src/cli/preflight.js +689 -45
  126. package/dist/src/cli/preflight.js.map +1 -1
  127. package/dist/src/cli/progress.d.ts +78 -0
  128. package/dist/src/cli/prompt.d.ts +209 -0
  129. package/dist/src/cli/quickstart.d.ts +46 -0
  130. package/dist/src/cli/quickstart.js +297 -0
  131. package/dist/src/cli/quickstart.js.map +1 -0
  132. package/dist/src/cli/records.d.ts +34 -0
  133. package/dist/src/cli/render.d.ts +22 -0
  134. package/dist/src/cli/sandbox.d.ts +51 -0
  135. package/dist/src/cli/sandbox.js +17 -1
  136. package/dist/src/cli/sandbox.js.map +1 -1
  137. package/dist/src/cli/scaffold.d.ts +79 -0
  138. package/dist/src/cli/scaffold.js +1 -1
  139. package/dist/src/cli/setup-adapter.d.ts +137 -0
  140. package/dist/src/cli/setup-adapter.js +38 -4
  141. package/dist/src/cli/setup-adapter.js.map +1 -1
  142. package/dist/src/cli/setup-channel.d.ts +126 -0
  143. package/dist/src/cli/setup-channel.js +28 -1
  144. package/dist/src/cli/setup-channel.js.map +1 -1
  145. package/dist/src/cli/setup-checkpoint.d.ts +57 -0
  146. package/dist/src/cli/setup-common.d.ts +277 -0
  147. package/dist/src/cli/setup-common.js +3 -2
  148. package/dist/src/cli/setup-common.js.map +1 -1
  149. package/dist/src/cli/setup-flow.d.ts +287 -0
  150. package/dist/src/cli/setup-service.d.ts +96 -0
  151. package/dist/src/cli/setup.d.ts +204 -0
  152. package/dist/src/cli/setup.js +94 -2
  153. package/dist/src/cli/setup.js.map +1 -1
  154. package/dist/src/cli/style.d.ts +320 -0
  155. package/dist/src/cli/token.d.ts +39 -0
  156. package/dist/src/cli/up.d.ts +155 -0
  157. package/dist/src/cli/up.js +119 -53
  158. package/dist/src/cli/up.js.map +1 -1
  159. package/dist/src/cli/usage.d.ts +37 -0
  160. package/dist/src/cli/values.d.ts +40 -0
  161. package/dist/src/cli/values.js +3 -4
  162. package/dist/src/cli/values.js.map +1 -1
  163. package/dist/src/cli/vault.d.ts +59 -0
  164. package/dist/src/cli/vault.js +2 -2
  165. package/dist/src/cli/vault.js.map +1 -1
  166. package/dist/src/cli/verb-registry.d.ts +76 -0
  167. package/dist/src/cli/verb-registry.js +344 -11
  168. package/dist/src/cli/verb-registry.js.map +1 -1
  169. package/dist/src/cli/wordmark.d.ts +31 -0
  170. package/dist/src/cli/wordmark.js +2 -2
  171. package/dist/src/codex/broker.d.ts +229 -0
  172. package/dist/src/codex/broker.js +548 -0
  173. package/dist/src/codex/broker.js.map +1 -0
  174. package/dist/src/codex/doctor.d.ts +13 -0
  175. package/dist/src/codex/doctor.js +41 -0
  176. package/dist/src/codex/doctor.js.map +1 -0
  177. package/dist/src/codex/manifest.d.ts +49 -0
  178. package/dist/src/codex/manifest.js +103 -0
  179. package/dist/src/codex/manifest.js.map +1 -0
  180. package/dist/src/codex/runner.d.ts +178 -0
  181. package/dist/src/codex/runner.js +231 -0
  182. package/dist/src/codex/runner.js.map +1 -0
  183. package/dist/src/codex/serve.d.ts +56 -0
  184. package/dist/src/codex/serve.js +98 -0
  185. package/dist/src/codex/serve.js.map +1 -0
  186. package/dist/src/codex/templates.d.ts +41 -0
  187. package/dist/src/codex/templates.js +319 -0
  188. package/dist/src/codex/templates.js.map +1 -0
  189. package/dist/src/codex/trust.d.ts +19 -0
  190. package/dist/src/codex/trust.js +183 -0
  191. package/dist/src/codex/trust.js.map +1 -0
  192. package/dist/src/codex/workspace-commit.d.ts +219 -0
  193. package/dist/src/codex/workspace-commit.js +549 -0
  194. package/dist/src/codex/workspace-commit.js.map +1 -0
  195. package/dist/src/codex/workspace-plan.d.ts +131 -0
  196. package/dist/src/codex/workspace-plan.js +561 -0
  197. package/dist/src/codex/workspace-plan.js.map +1 -0
  198. package/dist/src/core/actor.d.ts +2 -0
  199. package/dist/src/core/actor.js +5 -0
  200. package/dist/src/core/actor.js.map +1 -0
  201. package/dist/src/core/advance-cycle.d.ts +221 -0
  202. package/dist/src/core/advance-cycle.js +66 -2
  203. package/dist/src/core/advance-cycle.js.map +1 -1
  204. package/dist/src/core/agents-md.d.ts +278 -0
  205. package/dist/src/core/agents-md.js +33 -31
  206. package/dist/src/core/agents-md.js.map +1 -1
  207. package/dist/src/core/apply-patch.d.ts +49 -0
  208. package/dist/src/core/apply-patch.js +266 -0
  209. package/dist/src/core/apply-patch.js.map +1 -0
  210. package/dist/src/core/attest.d.ts +635 -0
  211. package/dist/src/core/attest.js +326 -4
  212. package/dist/src/core/attest.js.map +1 -1
  213. package/dist/src/core/audit.d.ts +510 -0
  214. package/dist/src/core/audit.js +13 -0
  215. package/dist/src/core/audit.js.map +1 -1
  216. package/dist/src/core/budgets.d.ts +238 -0
  217. package/dist/src/core/channel-owner.d.ts +213 -0
  218. package/dist/src/core/channel-owner.js +358 -0
  219. package/dist/src/core/channel-owner.js.map +1 -0
  220. package/dist/src/core/checkpoint.d.ts +500 -0
  221. package/dist/src/core/child-env.d.ts +88 -0
  222. package/dist/src/core/clock.d.ts +52 -0
  223. package/dist/src/core/command-class.d.ts +697 -0
  224. package/dist/src/core/command-class.js +713 -25
  225. package/dist/src/core/command-class.js.map +1 -1
  226. package/dist/src/core/commit-guard.d.ts +272 -0
  227. package/dist/src/core/commit-guard.js +424 -0
  228. package/dist/src/core/commit-guard.js.map +1 -0
  229. package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
  230. package/dist/src/core/coverage-sources/gh.d.ts +48 -0
  231. package/dist/src/core/coverage-sources/git.d.ts +101 -0
  232. package/dist/src/core/coverage.d.ts +217 -0
  233. package/dist/src/core/credential-spec.d.ts +72 -0
  234. package/dist/src/core/daemon-actor.d.ts +45 -0
  235. package/dist/src/core/daemon-actor.js +54 -0
  236. package/dist/src/core/daemon-actor.js.map +1 -0
  237. package/dist/src/core/dark-session.d.ts +432 -0
  238. package/dist/src/core/dark-session.js +266 -82
  239. package/dist/src/core/dark-session.js.map +1 -1
  240. package/dist/src/core/decision-refusal.d.ts +206 -0
  241. package/dist/src/core/decision-refusal.js +24 -2
  242. package/dist/src/core/decision-refusal.js.map +1 -1
  243. package/dist/src/core/env-file.d.ts +455 -0
  244. package/dist/src/core/env-file.js +60 -1
  245. package/dist/src/core/env-file.js.map +1 -1
  246. package/dist/src/core/execute.d.ts +871 -0
  247. package/dist/src/core/execute.js +59 -8
  248. package/dist/src/core/execute.js.map +1 -1
  249. package/dist/src/core/frontmatter.d.ts +78 -0
  250. package/dist/src/core/gate-window.d.ts +312 -0
  251. package/dist/src/core/gate.d.ts +1449 -0
  252. package/dist/src/core/gate.js +149 -14
  253. package/dist/src/core/gate.js.map +1 -1
  254. package/dist/src/core/gesture-refusal.d.ts +166 -0
  255. package/dist/src/core/gesture-refusal.js +188 -0
  256. package/dist/src/core/gesture-refusal.js.map +1 -0
  257. package/dist/src/core/git-run.d.ts +73 -0
  258. package/dist/src/core/harness-version.d.ts +157 -0
  259. package/dist/src/core/harness-version.js +4 -1
  260. package/dist/src/core/harness-version.js.map +1 -1
  261. package/dist/src/core/harness-wait.d.ts +55 -0
  262. package/dist/src/core/head-retry.d.ts +107 -0
  263. package/dist/src/core/instance.d.ts +310 -0
  264. package/dist/src/core/instance.js +113 -0
  265. package/dist/src/core/instance.js.map +1 -1
  266. package/dist/src/core/intake-limits.d.ts +247 -0
  267. package/dist/src/core/jcs.d.ts +52 -0
  268. package/dist/src/core/journal.d.ts +144 -0
  269. package/dist/src/core/live-draw.d.ts +436 -0
  270. package/dist/src/core/log-reconcile.d.ts +89 -0
  271. package/dist/src/core/log-subscribe.d.ts +36 -0
  272. package/dist/src/core/log-subscribe.js +162 -0
  273. package/dist/src/core/log-subscribe.js.map +1 -0
  274. package/dist/src/core/log.d.ts +316 -0
  275. package/dist/src/core/log.js.map +1 -1
  276. package/dist/src/core/loop.d.ts +274 -0
  277. package/dist/src/core/loop.js +11 -0
  278. package/dist/src/core/loop.js.map +1 -1
  279. package/dist/src/core/md-fence.d.ts +41 -0
  280. package/dist/src/core/money.d.ts +147 -0
  281. package/dist/src/core/payload-census.d.ts +74 -0
  282. package/dist/src/core/payload-store.d.ts +175 -0
  283. package/dist/src/core/payload.d.ts +71 -0
  284. package/dist/src/core/policy-diff.d.ts +292 -0
  285. package/dist/src/core/policy-diff.js +27 -4
  286. package/dist/src/core/policy-diff.js.map +1 -1
  287. package/dist/src/core/policy-expectations.d.ts +199 -0
  288. package/dist/src/core/policy-explain.d.ts +160 -0
  289. package/dist/src/core/policy-explain.js +63 -3
  290. package/dist/src/core/policy-explain.js.map +1 -1
  291. package/dist/src/core/policy-load.d.ts +567 -0
  292. package/dist/src/core/policy-load.js +36 -6
  293. package/dist/src/core/policy-load.js.map +1 -1
  294. package/dist/src/core/policy-match.d.ts +324 -0
  295. package/dist/src/core/policy-match.js +72 -9
  296. package/dist/src/core/policy-match.js.map +1 -1
  297. package/dist/src/core/policy-proposal.d.ts +317 -0
  298. package/dist/src/core/policy-proposal.js +102 -2
  299. package/dist/src/core/policy-proposal.js.map +1 -1
  300. package/dist/src/core/prompt-layout.d.ts +221 -0
  301. package/dist/src/core/protected-path-guard.d.ts +566 -0
  302. package/dist/src/core/protected-path-guard.js +848 -55
  303. package/dist/src/core/protected-path-guard.js.map +1 -1
  304. package/dist/src/core/question-preempted.d.ts +141 -0
  305. package/dist/src/core/question-preempted.js +152 -0
  306. package/dist/src/core/question-preempted.js.map +1 -0
  307. package/dist/src/core/read-scope.d.ts +172 -0
  308. package/dist/src/core/read-scope.js +252 -0
  309. package/dist/src/core/read-scope.js.map +1 -0
  310. package/dist/src/core/registration.d.ts +25 -0
  311. package/dist/src/core/reindex.d.ts +99 -0
  312. package/dist/src/core/sampler.d.ts +313 -0
  313. package/dist/src/core/sandbox.d.ts +371 -0
  314. package/dist/src/core/sandbox.js +190 -1
  315. package/dist/src/core/sandbox.js.map +1 -1
  316. package/dist/src/core/seal.d.ts +165 -0
  317. package/dist/src/core/sender-identity.d.ts +476 -0
  318. package/dist/src/core/sender-identity.js +572 -0
  319. package/dist/src/core/sender-identity.js.map +1 -0
  320. package/dist/src/core/shlex.d.ts +102 -0
  321. package/dist/src/core/shlex.js +159 -0
  322. package/dist/src/core/shlex.js.map +1 -0
  323. package/dist/src/core/state.d.ts +505 -0
  324. package/dist/src/core/task-file.d.ts +185 -0
  325. package/dist/src/core/telegram-config.d.ts +93 -0
  326. package/dist/src/core/token.d.ts +409 -0
  327. package/dist/src/core/token.js +21 -38
  328. package/dist/src/core/token.js.map +1 -1
  329. package/dist/src/core/validate.d.ts +138 -0
  330. package/dist/src/core/values.d.ts +147 -0
  331. package/dist/src/core/values.js +36 -1
  332. package/dist/src/core/values.js.map +1 -1
  333. package/dist/src/core/vault.d.ts +291 -0
  334. package/dist/src/core/verified-snapshot.d.ts +204 -0
  335. package/dist/src/core/verify.d.ts +336 -0
  336. package/dist/src/core/version.d.ts +8 -0
  337. package/dist/src/core/wysiwys.d.ts +370 -0
  338. package/dist/src/daemon/advance-child.d.ts +39 -0
  339. package/dist/src/daemon/advance.d.ts +476 -0
  340. package/dist/src/daemon/advance.js +25 -4
  341. package/dist/src/daemon/advance.js.map +1 -1
  342. package/dist/src/daemon/audit.d.ts +87 -0
  343. package/dist/src/daemon/daemon.d.ts +1180 -0
  344. package/dist/src/daemon/daemon.js +9 -0
  345. package/dist/src/daemon/daemon.js.map +1 -1
  346. package/dist/src/daemon/dark-session.d.ts +64 -0
  347. package/dist/src/daemon/draw-child.d.ts +36 -0
  348. package/dist/src/daemon/draw.d.ts +154 -0
  349. package/dist/src/daemon/git-evidence.d.ts +173 -0
  350. package/dist/src/daemon/git-evidence.js +1 -1
  351. package/dist/src/daemon/projection.d.ts +180 -0
  352. package/dist/src/daemon/prune.d.ts +207 -0
  353. package/dist/src/mcp/http.d.ts +113 -0
  354. package/dist/src/mcp/server.d.ts +265 -0
  355. package/dist/src/mcp/server.js +17 -1
  356. package/dist/src/mcp/server.js.map +1 -1
  357. package/docs/adapter-api.md +106 -0
  358. package/docs/cli-reference.md +1316 -63
  359. package/docs/codex-enforced-session.md +103 -0
  360. package/docs/codex-workspace-broker.md +118 -0
  361. package/package.json +14 -2
  362. package/schema/codex-instance.schema.json +82 -0
  363. package/schema/event.schema.json +539 -9
  364. package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
  365. package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
  366. package/schema/fixtures/event/invalid/approval-granted-sender-hashed-false.json +20 -0
  367. package/schema/fixtures/event/invalid/approval-granted-sender-hashed-raw-id.json +20 -0
  368. package/schema/fixtures/event/invalid/audit-gesture-refused-human-actor.json +16 -0
  369. package/schema/fixtures/event/invalid/audit-gesture-refused-no-actor-no-sender.json +15 -0
  370. package/schema/fixtures/event/invalid/audit-gesture-refused-unknown-gesture.json +16 -0
  371. package/schema/fixtures/event/invalid/audit-question-preempted-agent-actor.json +16 -0
  372. package/schema/fixtures/event/invalid/audit-question-preempted-no-question-id.json +16 -0
  373. package/schema/fixtures/event/invalid/audit-question-preempted-unknown-source.json +15 -0
  374. package/schema/fixtures/event/invalid/gate-path-signed-off-absolute-path.json +14 -0
  375. package/schema/fixtures/event/invalid/gate-path-signed-off-agent-actor.json +14 -0
  376. package/schema/fixtures/event/invalid/gate-path-signed-off-missing-path.json +13 -0
  377. package/schema/fixtures/event/valid/approval-granted-sender-hashed.json +20 -0
  378. package/schema/fixtures/event/valid/audit-gesture-refused-review-note.json +21 -0
  379. package/schema/fixtures/event/valid/audit-gesture-refused-sender-key-unavailable.json +19 -0
  380. package/schema/fixtures/event/valid/audit-gesture-refused.json +19 -0
  381. package/schema/fixtures/event/valid/audit-question-preempted-no-verdict.json +16 -0
  382. package/schema/fixtures/event/valid/audit-question-preempted.json +20 -0
  383. package/schema/fixtures/event/valid/gate-path-signed-off.json +14 -0
  384. package/schema/fixtures/event/valid/harness-kind-claude-code.json +23 -0
  385. package/schema/fixtures/event/valid/harness-kind-codex.json +23 -0
  386. package/schema/fixtures/event/valid/harness-kind-cursor.json +23 -0
  387. package/schema/fixtures/event/valid/harness-kind-grok.json +23 -0
  388. package/schema/fixtures/event/valid/harness-kind-muse.json +23 -0
  389. package/schema/fixtures/policy/invalid/senders-half-keyed.json +20 -0
  390. package/schema/fixtures/policy/valid/canonical.json +1 -1
  391. package/schema/fixtures/policy/valid/senders-keyed.json +24 -0
  392. package/schema/fixtures/policy-md/valid/canonical.md +1 -1
  393. package/schema/fixtures/policy-md/valid/with-values.md +5 -7
  394. package/schema/fixtures/values/invalid/class-shaped.json +1 -1
  395. package/schema/fixtures/values/invalid/duplicate-entry.json +1 -1
  396. package/schema/fixtures/values/invalid/non-string-item.json +1 -1
  397. package/schema/fixtures/values/invalid/over-cap.json +1 -1
  398. package/schema/fixtures/values/invalid/unknown-key.json +1 -1
  399. package/schema/fixtures/values/invalid/version-float.json +1 -0
  400. package/schema/fixtures/values/invalid/version-integer.json +1 -0
  401. package/schema/fixtures/values/invalid/version-wrong-string.json +1 -0
  402. package/schema/fixtures/values/valid/empty-lists.json +2 -3
  403. package/schema/fixtures/values/valid/full.json +5 -7
  404. package/schema/fixtures/values/valid/minimal.json +1 -1
  405. package/schema/fixtures/values-md/invalid/schema-invalid.md +5 -3
  406. package/schema/fixtures/values-md/invalid/two-blocks.md +3 -3
  407. package/schema/fixtures/values-md/invalid/unterminated.md +2 -2
  408. package/schema/fixtures/values-md/invalid/version-1.md +69 -0
  409. package/schema/fixtures/values-md/invalid/version-unquoted.md +64 -0
  410. package/schema/fixtures/values-md/invalid/yaml-error.md +2 -2
  411. package/schema/fixtures/values-md/valid/absent.md +1 -1
  412. package/schema/fixtures/values-md/valid/with-values.md +5 -7
  413. package/schema/policy.schema.json +75 -3
  414. package/schema/values.schema.json +7 -11
  415. package/templates/codex/README.md +9 -0
  416. package/schema/fixtures/values/invalid/version-string.json +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-plan.js","sourceRoot":"","sources":["../../../src/codex/workspace-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** True for principals permitted to request or execute: people and agents. */
2
+ export declare function isPrincipalActor(actor: string): boolean;
@@ -0,0 +1,5 @@
1
+ /** True for principals permitted to request or execute: people and agents. */
2
+ export function isPrincipalActor(actor) {
3
+ return /^(human|agent):.+/u.test(actor);
4
+ }
5
+ //# sourceMappingURL=actor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor.js","sourceRoot":"","sources":["../../../src/core/actor.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * The vocabulary of a daemon advance cycle, as facts about the log (APRV-204).
3
+ *
4
+ * Pure over records: no git, no filesystem, no clock. It lives in `core/`
5
+ * because three layers ask the same two questions of it — the daemon that
6
+ * writes the cycles (`daemon/advance.ts`), the doctor row that reports the last
7
+ * one (`cli/doctor.ts`), and the trigger arithmetic that must not count the
8
+ * daemon's own bookkeeping — and a CLI module may not import the daemon
9
+ * (`tests/layering.test.ts`). One home, so the three cannot disagree about
10
+ * which records are an advance's own.
11
+ */
12
+ import { ADVANCE_DAEMON_CLASS } from "./command-class.js";
13
+ import type { EventRecord } from "./log.js";
14
+ import type { PolicyLoadResult } from "./policy-load.js";
15
+ import { type RequestState } from "./state.js";
16
+ /**
17
+ * Who proposes an advance.
18
+ *
19
+ * `agent:daemon`, not the `system:daemon` of `envelope.drift`: the gate's
20
+ * proposing side is a PRINCIPAL (`human:` or `agent:`), and an advance is a
21
+ * request to act on the world rather than a fact the runtime observed about
22
+ * itself. The distinction is load-bearing in the log — a reader tells the
23
+ * daemon's observations from the daemon's actions by the actor alone.
24
+ */
25
+ export declare const ADVANCE_ACTOR = "agent:daemon";
26
+ /** The class an advance is gated as. Declared, resolved, and never assumed. */
27
+ export declare const ADVANCE_CLASS = "log.advance";
28
+ export { ADVANCE_DAEMON_CLASS };
29
+ /** Every class an advance cycle may be gated as, newest first. */
30
+ export declare const ADVANCE_CLASSES: readonly string[];
31
+ /** The refusal a non-daemon actor gets where the route would be autonomous. */
32
+ export declare const ADVANCE_ACTOR_REFUSAL = "advance-actor-not-daemon";
33
+ /** Which class this cycle asks under, or the refusal that stops it. */
34
+ export type AdvanceRoute = {
35
+ ok: true;
36
+ cls: string;
37
+ daemon: boolean;
38
+ } | {
39
+ ok: false;
40
+ code: typeof ADVANCE_ACTOR_REFUSAL;
41
+ message: string;
42
+ };
43
+ /**
44
+ * The class this advance asks under, decided by WHO is running it (APRV-382).
45
+ *
46
+ * Carter's 2026-09-19 question, answered as policy plus one check. An advance
47
+ * appends nothing and decides nothing: it publishes records the log already
48
+ * holds to a records branch, and the CI guard reads grants that exist whether
49
+ * or not an advance ran. So the DAEMON may make it unattended. Every other
50
+ * actor — a session in a worktree, a human terminal — stays where the class was
51
+ * declared at seq 513, because a lane that could publish the log could choose
52
+ * which records the world sees first.
53
+ *
54
+ * The policy grammar has no actor condition, so the rule is two classes and
55
+ * this function is the actor half of it. Three outcomes, and each one is the
56
+ * stricter reading of its case:
57
+ *
58
+ * 1. **The daemon, with a rule on {@link ADVANCE_DAEMON_CLASS}.** The daemon's
59
+ * own class, whatever autonomy the operator gave it.
60
+ * 2. **The daemon, with no such rule.** {@link ADVANCE_CLASS}, exactly as every
61
+ * build before this one. A policy that has not declared the daemon class has
62
+ * not decided anything about it, and resolving to the fail-closed default
63
+ * there would put a phone tap on every cadence advance between the day this
64
+ * code ships and the day the page is applied. Falling back to the class the
65
+ * operator DID write is the behaviour they attested to.
66
+ * 3. **Any other actor.** {@link ADVANCE_CLASS}, unless that class resolves
67
+ * `autonomous`, which is refused {@link ADVANCE_ACTOR_REFUSAL}. The
68
+ * autonomous route is the daemon's, so an actor that is not the daemon
69
+ * taking it is a policy that was loosened past what this repository decided,
70
+ * and the refusal says so rather than publishing the log unattended.
71
+ *
72
+ * PURE: the policy load is an argument and the actor answer is a boolean the
73
+ * caller read from `core/daemon-actor.ts`, so the whole rule is testable in
74
+ * both directions with no daemon, no git, and no clock.
75
+ */
76
+ export declare function advanceRoute(daemon: boolean, load: PolicyLoadResult): AdvanceRoute;
77
+ /** The task id every advance cycle registers under, plus its head seq. */
78
+ export declare const ADVANCE_TASK_PREFIX = "daemon-advance";
79
+ /** The idempotency key prefix. One key per (published head → working head) span. */
80
+ export declare const ADVANCE_KEY_PREFIX = "daemon-log-advance";
81
+ /** The task id for a cycle that publishes up to `toSeq`. */
82
+ export declare function advanceTaskId(toSeq: number): string;
83
+ /** The idempotency key for the span `fromSeq..toSeq`. */
84
+ export declare function advanceActionKey(fromSeq: number, toSeq: number): string;
85
+ /**
86
+ * Is this record part of an advance cycle's own bookkeeping?
87
+ *
88
+ * Keyed on the task id the daemon registers under, which nothing else writes.
89
+ * A record whose task merely LOOKS like one of those but was written by another
90
+ * actor is still excluded, deliberately: the exclusion only ever makes the
91
+ * cadence advance LESS eagerly, so a false positive costs latency while a false
92
+ * negative would cost an endless cadence (one cycle appends three records, the
93
+ * last of them after the commit).
94
+ */
95
+ export declare function isAdvanceBookkeeping(record: EventRecord): boolean;
96
+ /**
97
+ * The most recent advance cycle's request, as the log derives it (APRV-211).
98
+ *
99
+ * The whole answer a tick needs before it considers asking anything: which key
100
+ * the last question was opened under, what the human did with it, what bytes it
101
+ * bound to, and whether anything has spent it yet.
102
+ */
103
+ export interface OpenAdvanceRequest {
104
+ actionKey: string;
105
+ task: string | null;
106
+ state: RequestState;
107
+ /** The `payload_hash` the request declared, so an adopting tick binds to it. */
108
+ payloadHash: string | null;
109
+ /** True once an `execution.started` has spent this cycle. */
110
+ spent: boolean;
111
+ }
112
+ /**
113
+ * The latest advance request in the log, with its derived state, or `null`.
114
+ *
115
+ * ## Why the daemon asks this before it asks the gate anything
116
+ *
117
+ * A gated advance leaves an `approval.requested` open and its own two records
118
+ * on the log. Until APRV-211 the next tick recomputed a key from the moving
119
+ * head, found no request under it, and opened a second question about the same
120
+ * owed work; the human got one phone buzz per tick for one advance. So the tick
121
+ * now reads the log for what it already asked, and the answer here is that
122
+ * reading.
123
+ *
124
+ * PURE, and over records the caller verified: the enforcement path never reads
125
+ * an unverified log (SPEC.md §11.1). The TTL is applied through
126
+ * {@link requestState}, so a request whose window lapsed reads `expired` here
127
+ * whether or not the daemon has yet materialised an `approval.expired` record —
128
+ * an adopting tick must not wait forever on a question nobody can answer.
129
+ */
130
+ export declare function openAdvanceRequest(records: readonly EventRecord[], ts: string, ttlMs: number | null): OpenAdvanceRequest | null;
131
+ /** What the log says about the most recent advance cycle. */
132
+ export interface LastAdvance {
133
+ /** The working head the cycle was registered for. */
134
+ toSeq: number;
135
+ ts: string;
136
+ /**
137
+ * `completed` / `failed` for a cycle that executed, `awaiting` for one the
138
+ * gate sent to a human and that nobody has answered, `requested` for one
139
+ * whose question was decided but never executed, `registered` for a cycle
140
+ * that got no further.
141
+ */
142
+ outcome: "completed" | "failed" | "awaiting" | "requested" | "registered";
143
+ /**
144
+ * Why it failed, as the verb said it (APRV-211): the refusal code and message
145
+ * `cli/log-advance.ts` produced, copied onto `execution.failed` at the write
146
+ * boundary. `null` for every other outcome and for a failure recorded before
147
+ * the field existed — an exit status with no reason, which is the defect this
148
+ * carries the fix for and not a shape any reader may assume away.
149
+ */
150
+ code: string | null;
151
+ message: string | null;
152
+ }
153
+ /**
154
+ * The most recent advance cycle in the log, or `null` when there is none.
155
+ *
156
+ * Read from the LOG rather than from a status file, because the log already
157
+ * carries every fact this answer needs and a second copy could disagree with
158
+ * it. That is what lets `approval doctor` answer it in a different process from
159
+ * the daemon that made the attempt, with no shared state between them, and what
160
+ * makes the answer outlive the daemon's own event stream.
161
+ */
162
+ export declare function lastAdvance(records: readonly EventRecord[]): LastAdvance | null;
163
+ /**
164
+ * The one-line repair for a pile of dangling executions, spelled once.
165
+ *
166
+ * Every surface that reports an advance nobody closed ends with this command:
167
+ * the daemon's refusal, its warning line, and the `log-advance-cadence` doctor
168
+ * row. Spelled here because a repair an operator has to reconstruct from three
169
+ * slightly different sentences is a repair they retype by hand five times,
170
+ * which is exactly what was observed on 2026-09-05 and exactly what this task
171
+ * removes.
172
+ */
173
+ export declare const RESOLVE_DANGLING_COMMAND = "approval execution resolve --dangling";
174
+ /**
175
+ * The seq the span named by `daemon-log-advance-<from>-<to>` ends at, or `null`.
176
+ *
177
+ * `null` for a key this runtime did not mint the shape of. A key whose tail is
178
+ * not an integer names no span, so nothing about it can be proved from the
179
+ * refs, and it is reported as unprovable rather than guessed at.
180
+ */
181
+ export declare function advanceSpanEnd(actionKey: string): number | null;
182
+ /**
183
+ * One dangling execution, and what this checkout's git refs can prove about it.
184
+ *
185
+ * `provenBy` is the whole point: a ref name, or `null`. A sweep may close only
186
+ * the first kind, and every surface that reports the second kind reports it as
187
+ * a human's to establish rather than as a failure — an `execution.failed`
188
+ * written over an advance that actually published would be worse than the
189
+ * dangling record it replaced.
190
+ */
191
+ export interface DanglingAdvance {
192
+ actionKey: string;
193
+ task: string | null;
194
+ /** The `execution.started` record's position. */
195
+ seq: number;
196
+ /** The seq the key names, or `null` when the key names no span. */
197
+ toSeq: number | null;
198
+ /** The ref that carries `toSeq`, or `null` when nothing in this checkout does. */
199
+ provenBy: string | null;
200
+ }
201
+ /** Every dangling execution whose key is one this daemon mints, in log order. */
202
+ export declare function danglingAdvances(records: readonly EventRecord[]): DanglingAdvance[];
203
+ /**
204
+ * The same list, with each entry's proof filled in from a published state.
205
+ *
206
+ * PURE, and the published state is an argument rather than something read here:
207
+ * `publishedState` lives in `cli/log-advance.ts` because it reads git, a CLI
208
+ * module may not import the daemon, and the daemon, the doctor row and
209
+ * `execution resolve --dangling` must not disagree about which key counts as
210
+ * proved. So the git read happens once in each caller and the RULE lives here.
211
+ *
212
+ * The rule is one comparison: the ref that carries the highest published seq
213
+ * carries every seq below it, because `publishedState` only ever counts a copy
214
+ * of this chain that is a PREFIX of the working log. So a span ending at or
215
+ * below `publishedSeq` is on that ref, and a span above it is on nothing this
216
+ * checkout can see.
217
+ */
218
+ export declare function proveDanglingAdvances(records: readonly EventRecord[], published: {
219
+ publishedSeq: number;
220
+ publishedRev: string | null;
221
+ }): DanglingAdvance[];
@@ -9,7 +9,9 @@
9
9
  * (`tests/layering.test.ts`). One home, so the three cannot disagree about
10
10
  * which records are an advance's own.
11
11
  */
12
+ import { ADVANCE_DAEMON_CLASS } from "./command-class.js";
12
13
  import { danglingExecutions } from "./execute.js";
14
+ import { resolve } from "./policy-match.js";
13
15
  import { payloadOf, requestState } from "./state.js";
14
16
  /**
15
17
  * Who proposes an advance.
@@ -23,6 +25,64 @@ import { payloadOf, requestState } from "./state.js";
23
25
  export const ADVANCE_ACTOR = "agent:daemon";
24
26
  /** The class an advance is gated as. Declared, resolved, and never assumed. */
25
27
  export const ADVANCE_CLASS = "log.advance";
28
+ // The daemon's own class travels from `core/command-class.ts`, where the
29
+ // reachability answer lives, so the class a cycle asks under and the class the
30
+ // amendment ceremony accepts as fireable are one string (APRV-382).
31
+ export { ADVANCE_DAEMON_CLASS };
32
+ /** Every class an advance cycle may be gated as, newest first. */
33
+ export const ADVANCE_CLASSES = [ADVANCE_DAEMON_CLASS, ADVANCE_CLASS];
34
+ /** The refusal a non-daemon actor gets where the route would be autonomous. */
35
+ export const ADVANCE_ACTOR_REFUSAL = "advance-actor-not-daemon";
36
+ /**
37
+ * The class this advance asks under, decided by WHO is running it (APRV-382).
38
+ *
39
+ * Carter's 2026-09-19 question, answered as policy plus one check. An advance
40
+ * appends nothing and decides nothing: it publishes records the log already
41
+ * holds to a records branch, and the CI guard reads grants that exist whether
42
+ * or not an advance ran. So the DAEMON may make it unattended. Every other
43
+ * actor — a session in a worktree, a human terminal — stays where the class was
44
+ * declared at seq 513, because a lane that could publish the log could choose
45
+ * which records the world sees first.
46
+ *
47
+ * The policy grammar has no actor condition, so the rule is two classes and
48
+ * this function is the actor half of it. Three outcomes, and each one is the
49
+ * stricter reading of its case:
50
+ *
51
+ * 1. **The daemon, with a rule on {@link ADVANCE_DAEMON_CLASS}.** The daemon's
52
+ * own class, whatever autonomy the operator gave it.
53
+ * 2. **The daemon, with no such rule.** {@link ADVANCE_CLASS}, exactly as every
54
+ * build before this one. A policy that has not declared the daemon class has
55
+ * not decided anything about it, and resolving to the fail-closed default
56
+ * there would put a phone tap on every cadence advance between the day this
57
+ * code ships and the day the page is applied. Falling back to the class the
58
+ * operator DID write is the behaviour they attested to.
59
+ * 3. **Any other actor.** {@link ADVANCE_CLASS}, unless that class resolves
60
+ * `autonomous`, which is refused {@link ADVANCE_ACTOR_REFUSAL}. The
61
+ * autonomous route is the daemon's, so an actor that is not the daemon
62
+ * taking it is a policy that was loosened past what this repository decided,
63
+ * and the refusal says so rather than publishing the log unattended.
64
+ *
65
+ * PURE: the policy load is an argument and the actor answer is a boolean the
66
+ * caller read from `core/daemon-actor.ts`, so the whole rule is testable in
67
+ * both directions with no daemon, no git, and no clock.
68
+ */
69
+ export function advanceRoute(daemon, load) {
70
+ if (daemon) {
71
+ const own = resolve(load, ADVANCE_DAEMON_CLASS);
72
+ if (own.provenance === "rule")
73
+ return { ok: true, cls: ADVANCE_DAEMON_CLASS, daemon };
74
+ return { ok: true, cls: ADVANCE_CLASS, daemon };
75
+ }
76
+ const base = resolve(load, ADVANCE_CLASS);
77
+ if (base.autonomy === "autonomous") {
78
+ return {
79
+ ok: false,
80
+ code: ADVANCE_ACTOR_REFUSAL,
81
+ message: `${ADVANCE_CLASS} resolves autonomous and this process is not the daemon, so nothing was asked and nothing was committed. An unattended advance is the daemon's route alone (${ADVANCE_DAEMON_CLASS}); run the advance from the daemon, or run \`approval log advance\` yourself, where the gate can see who is asking.`,
82
+ };
83
+ }
84
+ return { ok: true, cls: ADVANCE_CLASS, daemon };
85
+ }
26
86
  /** The task id every advance cycle registers under, plus its head seq. */
27
87
  export const ADVANCE_TASK_PREFIX = "daemon-advance";
28
88
  /** The idempotency key prefix. One key per (published head → working head) span. */
@@ -76,8 +136,12 @@ export function openAdvanceRequest(records, ts, ttlMs) {
76
136
  continue;
77
137
  // The class is read off the record rather than assumed from the prefix: a
78
138
  // key that merely LOOKS like the daemon's must not be able to make the
79
- // daemon adopt somebody else's question.
80
- if (payloadOf(record)["class"] !== ADVANCE_CLASS)
139
+ // daemon adopt somebody else's question. Either advance class counts
140
+ // (APRV-382): a question opened under `log.advance` before the daemon had
141
+ // its own class is still this cadence's question, and a daemon that refused
142
+ // to adopt it would ask the human a second time for the same span.
143
+ const declared = payloadOf(record)["class"];
144
+ if (typeof declared !== "string" || !ADVANCE_CLASSES.includes(declared))
81
145
  continue;
82
146
  actionKey = key;
83
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"advance-cycle.js","sourceRoot":"","sources":["../../../src/core/advance-cycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advance-cycle.js","sourceRoot":"","sources":["../../../src/core/advance-cycle.ts"],"names":[],"mappings":"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"}