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":"log-advance.js","sourceRoot":"","sources":["../../../src/cli/log-advance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * The committed log as an external witness (APRV-219).
3
+ *
4
+ * ## Why this exists
5
+ *
6
+ * The chain in `.approval/log/events.jsonl` is unkeyed. `docs/proposals/
7
+ * incremental-prefix-proof.md` §3 states the consequence plainly: a process
8
+ * with write access to that file can truncate it and recompute a chain that is
9
+ * self-consistent from genesis, and no cold walk of the file will ever say
10
+ * otherwise, because nothing INSIDE the file contradicts it. The conformance
11
+ * suite says the same thing from the other side — `chain-verification/
12
+ * truncation-unanchored` is a boundary vector: records dropped off the tail with
13
+ * no external anchor leave a valid chain, and an implementation that reports
14
+ * corruption there is wrong.
15
+ *
16
+ * The word in that vector's name is the whole design of this module. What the
17
+ * same-user process cannot rewrite is the copy of the log that is already
18
+ * COMMITTED: a records branch pushed by the advance cadence (APRV-204), a log
19
+ * sync's fast-forward (APRV-125), the trunk behind a protected branch on
20
+ * GitHub. Those bytes are an anchor. Comparing the working log's prefix against
21
+ * them turns "the chain is self-consistent" into "the chain is self-consistent
22
+ * AND it still carries the records somebody else has a copy of".
23
+ *
24
+ * ## What this module does and does not do
25
+ *
26
+ * It READS git. `git rev-parse <rev>:<path>` for a blob id and `git show` for
27
+ * its bytes, both run from the checkout root, never a fetch and never a write.
28
+ * Fetching is the advance verb's job (APRV-203); a verification path that went
29
+ * to the network would be a verification path that fails when the network does.
30
+ *
31
+ * It writes nothing: not the log, not the anchor, not a cache file. The only
32
+ * state it keeps is a process-local map from a git blob id to the facts about
33
+ * that blob, which is safe precisely because a blob id IS the hash of the bytes:
34
+ * two repositories cannot disagree about what one oid holds.
35
+ *
36
+ * A missing anchor is a SKIP with a reason and never a pass. A repository with
37
+ * no committed copy of the log has not proved the working log is honest; it has
38
+ * failed to say anything about it, and those are different answers.
39
+ */
40
+ import type { EventRecord } from "../core/log.js";
41
+ import type { LogHead } from "../core/verify.js";
42
+ /**
43
+ * The refusal this check can produce. A closed union, per SPEC.md §11.1
44
+ * invariant 6, frozen the way every other union in this runtime is frozen:
45
+ * callers branch on the string.
46
+ *
47
+ * One code, deliberately. Everything else this check can conclude is a state
48
+ * rather than a refusal: no anchor at all is a skip, a working log that is a
49
+ * strict prefix of the anchor is `behind` (the ordinary state of a checkout
50
+ * that has just pulled), and only a working log whose bytes CONTRADICT the
51
+ * anchored ones is a refusal.
52
+ */
53
+ export declare const ANCHOR_REFUSAL_CODES: readonly ["anchor-diverged"];
54
+ export type AnchorRefusalCode = (typeof ANCHOR_REFUSAL_CODES)[number];
55
+ /** `YYYY-MM-DD`, the shape the default records branch name carries. */
56
+ export declare function defaultRecordsBranch(today: string): string;
57
+ /** Every local anchor a previous advance left behind. Order is irrelevant. */
58
+ export declare function advanceAnchors(root: string): string[];
59
+ /** Where an anchor may be looked for. */
60
+ export interface AnchorWhere {
61
+ remote?: string;
62
+ base?: string | null;
63
+ /** An ISO timestamp; only its date half is read, for the day's records branch. */
64
+ today?: string;
65
+ }
66
+ /**
67
+ * The revs a committed copy of the log may live at, newest evidence first.
68
+ *
69
+ * This is `cli/log-advance.ts`'s `publishedState` resolution, lifted here so
70
+ * that the anchor check and the "what is not yet published" count read the same
71
+ * list. Two lists would be two chances to disagree about which copies of the log
72
+ * this repository can see, and the doctor prints both answers on adjacent rows.
73
+ *
74
+ * `HEAD` is last and is still a candidate: a checkout whose current commit
75
+ * carries the log HAS a committed copy of it, and a check that ignored that
76
+ * would report "never committed" about a log with thousands of committed
77
+ * records — which is exactly the misread APRV-210 recorded.
78
+ */
79
+ export declare function anchorRevs(root: string, where?: AnchorWhere): string[];
80
+ /** One committed copy of the log, and everything a comparison needs from it. */
81
+ export interface Anchor {
82
+ /** The rev it was read at, as the check names it in its own messages. */
83
+ rev: string;
84
+ /** Git's object id for the blob. Content-addressed, so it is also the cache key. */
85
+ oid: string;
86
+ /** Byte length of the anchored copy. */
87
+ byteLength: number;
88
+ /** SHA-256 of those bytes, hex. Not a chain hash: a digest of the file. */
89
+ digest: string;
90
+ /** The anchored chain's head. Never null — an empty copy anchors nothing. */
91
+ head: LogHead;
92
+ /** How many records the anchored copy carries. */
93
+ records: number;
94
+ }
95
+ /** Drop the cache. Exported for tests, which build a new repository per case. */
96
+ export declare function forgetAnchorBlobs(): void;
97
+ /** What {@link resolveAnchor} found. A skip carries the reason, always. */
98
+ export type AnchorResolution = {
99
+ ok: true;
100
+ anchor: Anchor;
101
+ } | {
102
+ ok: false;
103
+ reason: string;
104
+ revs: readonly string[];
105
+ };
106
+ /**
107
+ * The newest committed copy of the log this repository can see.
108
+ *
109
+ * "Newest" is the highest chain head among the candidate revs, not the newest
110
+ * commit: the question is how much of the log somebody else already holds, and
111
+ * a records branch that is one commit older but carries more records is the
112
+ * better witness. Ties keep the first rev in {@link anchorRevs} order, which
113
+ * puts an advance anchor ahead of the trunk ahead of `HEAD`.
114
+ */
115
+ export declare function resolveAnchor(root: string, logPath: string, options?: {
116
+ rev?: string;
117
+ schemaDir?: string;
118
+ } & AnchorWhere): AnchorResolution;
119
+ /** How the working log stands against the anchor. */
120
+ export type AnchorCheck = {
121
+ status: "pass";
122
+ anchor: Anchor;
123
+ /** Working records beyond the anchored head. Zero when the two are equal. */
124
+ ahead: number;
125
+ workingBytes: number;
126
+ detail: string;
127
+ } | {
128
+ status: "behind";
129
+ anchor: Anchor;
130
+ /** Anchored records the working log does not carry. Always above zero. */
131
+ behind: number;
132
+ workingBytes: number;
133
+ detail: string;
134
+ } | {
135
+ status: "skip";
136
+ reason: string;
137
+ } | {
138
+ status: "diverged";
139
+ code: AnchorRefusalCode;
140
+ anchor: Anchor;
141
+ workingBytes: number;
142
+ message: string;
143
+ };
144
+ /** What {@link checkLogAnchor} is asked. `records` is the VERIFIED working log. */
145
+ export interface AnchorCheckOptions extends AnchorWhere {
146
+ logPath: string;
147
+ /**
148
+ * The working log's records, already verified by the caller.
149
+ *
150
+ * Required rather than re-derived, for SPEC.md §11.1 invariant 1: this check
151
+ * reads only verified records, and a check that walked the chain itself would
152
+ * be a second opinion about a question its caller has already answered.
153
+ */
154
+ records: readonly EventRecord[];
155
+ /** An explicit rev, instead of the default resolution. */
156
+ rev?: string;
157
+ schemaDir?: string;
158
+ }
159
+ /**
160
+ * Compare the working log's prefix against the newest committed copy of it.
161
+ *
162
+ * Two facts are checked, and they are checked separately on purpose:
163
+ *
164
+ * 1. **The bytes.** The working log's first `anchor.byteLength` bytes must hash
165
+ * to the anchor's digest. This is a claim about the FILE, stricter than any
166
+ * claim about the chain: a rewrite that preserves every record hash while
167
+ * changing the bytes around them (whitespace, key order in a re-serialized
168
+ * line) still fails here.
169
+ * 2. **The head.** The working log's record at the anchor's head seq must carry
170
+ * the anchor's hash. Implied by (1) whenever (1) holds, and stated anyway,
171
+ * because it is the fact a human reads in the message and the one that names
172
+ * which record the two copies stopped agreeing at.
173
+ */
174
+ export declare function checkLogAnchor(options: AnchorCheckOptions): AnchorCheck;
175
+ /** One anchor, as messages and rows spell one. */
176
+ export declare function describeAnchor(anchor: Anchor): string;
@@ -0,0 +1,387 @@
1
+ /**
2
+ * The committed log as an external witness (APRV-219).
3
+ *
4
+ * ## Why this exists
5
+ *
6
+ * The chain in `.approval/log/events.jsonl` is unkeyed. `docs/proposals/
7
+ * incremental-prefix-proof.md` §3 states the consequence plainly: a process
8
+ * with write access to that file can truncate it and recompute a chain that is
9
+ * self-consistent from genesis, and no cold walk of the file will ever say
10
+ * otherwise, because nothing INSIDE the file contradicts it. The conformance
11
+ * suite says the same thing from the other side — `chain-verification/
12
+ * truncation-unanchored` is a boundary vector: records dropped off the tail with
13
+ * no external anchor leave a valid chain, and an implementation that reports
14
+ * corruption there is wrong.
15
+ *
16
+ * The word in that vector's name is the whole design of this module. What the
17
+ * same-user process cannot rewrite is the copy of the log that is already
18
+ * COMMITTED: a records branch pushed by the advance cadence (APRV-204), a log
19
+ * sync's fast-forward (APRV-125), the trunk behind a protected branch on
20
+ * GitHub. Those bytes are an anchor. Comparing the working log's prefix against
21
+ * them turns "the chain is self-consistent" into "the chain is self-consistent
22
+ * AND it still carries the records somebody else has a copy of".
23
+ *
24
+ * ## What this module does and does not do
25
+ *
26
+ * It READS git. `git rev-parse <rev>:<path>` for a blob id and `git show` for
27
+ * its bytes, both run from the checkout root, never a fetch and never a write.
28
+ * Fetching is the advance verb's job (APRV-203); a verification path that went
29
+ * to the network would be a verification path that fails when the network does.
30
+ *
31
+ * It writes nothing: not the log, not the anchor, not a cache file. The only
32
+ * state it keeps is a process-local map from a git blob id to the facts about
33
+ * that blob, which is safe precisely because a blob id IS the hash of the bytes:
34
+ * two repositories cannot disagree about what one oid holds.
35
+ *
36
+ * A missing anchor is a SKIP with a reason and never a pass. A repository with
37
+ * no committed copy of the log has not proved the working log is honest; it has
38
+ * failed to say anything about it, and those are different answers.
39
+ */
40
+ import { createHash } from "node:crypto";
41
+ import { readFileSync } from "node:fs";
42
+ import { dirname } from "node:path";
43
+ import { verifyText } from "../core/verify.js";
44
+ import { compareChains, describeDrift } from "../core/log-reconcile.js";
45
+ import { git, readBlob, repoPath, repoRoot } from "./git-scope.js";
46
+ /**
47
+ * The refusal this check can produce. A closed union, per SPEC.md §11.1
48
+ * invariant 6, frozen the way every other union in this runtime is frozen:
49
+ * callers branch on the string.
50
+ *
51
+ * One code, deliberately. Everything else this check can conclude is a state
52
+ * rather than a refusal: no anchor at all is a skip, a working log that is a
53
+ * strict prefix of the anchor is `behind` (the ordinary state of a checkout
54
+ * that has just pulled), and only a working log whose bytes CONTRADICT the
55
+ * anchored ones is a refusal.
56
+ */
57
+ export const ANCHOR_REFUSAL_CODES = ["anchor-diverged"];
58
+ /** `YYYY-MM-DD`, the shape the default records branch name carries. */
59
+ export function defaultRecordsBranch(today) {
60
+ return `records-log-${today.slice(0, 10)}`;
61
+ }
62
+ /** Every local anchor a previous advance left behind. Order is irrelevant. */
63
+ export function advanceAnchors(root) {
64
+ const listed = git(["for-each-ref", "--format=%(refname)", "refs/approval/advance/"], root);
65
+ if (!listed.ok)
66
+ return [];
67
+ return listed.stdout
68
+ .split("\n")
69
+ .map((line) => line.trim())
70
+ .filter((line) => line.length > 0);
71
+ }
72
+ /**
73
+ * The revs a committed copy of the log may live at, newest evidence first.
74
+ *
75
+ * This is `cli/log-advance.ts`'s `publishedState` resolution, lifted here so
76
+ * that the anchor check and the "what is not yet published" count read the same
77
+ * list. Two lists would be two chances to disagree about which copies of the log
78
+ * this repository can see, and the doctor prints both answers on adjacent rows.
79
+ *
80
+ * `HEAD` is last and is still a candidate: a checkout whose current commit
81
+ * carries the log HAS a committed copy of it, and a check that ignored that
82
+ * would report "never committed" about a log with thousands of committed
83
+ * records — which is exactly the misread APRV-210 recorded.
84
+ */
85
+ export function anchorRevs(root, where = {}) {
86
+ const remote = where.remote ?? "origin";
87
+ const base = where.base ?? "main";
88
+ const today = where.today ?? new Date().toISOString();
89
+ return [
90
+ ...advanceAnchors(root),
91
+ `refs/remotes/${remote}/${base}`,
92
+ `refs/remotes/${remote}/${defaultRecordsBranch(today)}`,
93
+ "HEAD",
94
+ ];
95
+ }
96
+ /**
97
+ * Blob id → the facts about that blob, or `null` for "not usable as an anchor".
98
+ *
99
+ * Process-local and keyed by content, which is what makes it safe to share
100
+ * across repositories and across every caller in one process: a git blob id is
101
+ * the hash of the bytes, so an entry can never describe the wrong file. The
102
+ * daemon is the reason it exists — under `read_proof: full` the anchor check
103
+ * runs on every tick, and a full chain walk of the committed copy every thirty
104
+ * seconds to re-learn an answer that cannot have changed is work spent on
105
+ * nothing.
106
+ */
107
+ const BLOBS = new Map();
108
+ /** How many blobs the cache keeps before it starts over. Bounded, not clever. */
109
+ const BLOB_CACHE_LIMIT = 8;
110
+ /** Drop the cache. Exported for tests, which build a new repository per case. */
111
+ export function forgetAnchorBlobs() {
112
+ BLOBS.clear();
113
+ }
114
+ function sha256(bytes) {
115
+ return createHash("sha256").update(bytes).digest("hex");
116
+ }
117
+ /** One attempt, folded onto one line. Skip reasons are single-line by contract. */
118
+ function describeAttempt(attempt) {
119
+ return `\`${attempt.command}\` ${attempt.detail}`;
120
+ }
121
+ /** The blob id of `<rev>:<relative>`, or the attempt that failed to name one. */
122
+ function blobOid(root, rev, relative) {
123
+ const spec = `${rev}:${relative}`;
124
+ const command = `git rev-parse --verify --quiet ${spec}`;
125
+ const result = git(["rev-parse", "--verify", "--quiet", spec], root);
126
+ const said = result.stderr
127
+ .split("\n")
128
+ .map((line) => line.trim())
129
+ .filter((line) => line.length > 0)
130
+ .join(" | ");
131
+ if (!result.ok) {
132
+ return {
133
+ oid: null,
134
+ attempt: {
135
+ command,
136
+ detail: `${result.status === null ? "did not complete" : `exited ${String(result.status)}`}${said.length === 0 ? " and printed nothing" : `: ${said}`}`,
137
+ },
138
+ };
139
+ }
140
+ const oid = result.stdout.trim();
141
+ if (oid.length === 0) {
142
+ return { oid: null, attempt: { command, detail: "exited 0 and named no blob" } };
143
+ }
144
+ return { oid };
145
+ }
146
+ /**
147
+ * The anchored copy at one rev, or `null` with the reason it is not an anchor.
148
+ *
149
+ * A committed copy that does not itself verify is NOT an anchor. It is evidence
150
+ * of something else, and this check says so in the skip reason rather than
151
+ * comparing the working log against bytes nobody has proved anything about —
152
+ * SPEC.md §11.1 invariant 1, enforcement paths read only verified records,
153
+ * binds the committed side too.
154
+ */
155
+ function anchoredCopy(root, rev, relative, options) {
156
+ const found = blobOid(root, rev, relative);
157
+ if (found.oid === null)
158
+ return { ok: false, reason: null, attempt: found.attempt };
159
+ const oid = found.oid;
160
+ const cached = BLOBS.get(oid);
161
+ if (cached !== undefined) {
162
+ return cached === null
163
+ ? {
164
+ ok: false,
165
+ reason: `${rev} carries a copy of the log that does not verify or is empty`,
166
+ attempt: null,
167
+ }
168
+ : { ok: true, copy: cached, oid };
169
+ }
170
+ const read = readBlob(root, rev, relative);
171
+ if (!read.ok) {
172
+ // `git rev-parse` named a blob and `git show` could not hand it over. That
173
+ // is never "this rev has no committed copy" — the object store says it
174
+ // does — so it must not be reported as a rev with nothing to say.
175
+ return {
176
+ ok: false,
177
+ reason: `${rev} names a blob for ${relative} that could not be read`,
178
+ attempt: { command: read.command, detail: read.detail },
179
+ };
180
+ }
181
+ const bytes = read.bytes;
182
+ const verified = verifyText(`${rev}:${relative}`, bytes.toString("utf8"), options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir }, null);
183
+ const last = verified.records[verified.records.length - 1];
184
+ if (verified.result.status !== "clean" || last === undefined) {
185
+ if (BLOBS.size >= BLOB_CACHE_LIMIT)
186
+ BLOBS.clear();
187
+ BLOBS.set(oid, null);
188
+ return {
189
+ ok: false,
190
+ reason: verified.result.status === "clean"
191
+ ? `${rev} carries an empty copy of the log, which anchors nothing`
192
+ : `${rev} carries a copy of the log that does not verify (${verified.result.status})`,
193
+ attempt: null,
194
+ };
195
+ }
196
+ const copy = {
197
+ bytes,
198
+ byteLength: bytes.length,
199
+ digest: sha256(bytes),
200
+ head: { seq: last.seq, hash: last.hash },
201
+ records: verified.records.length,
202
+ };
203
+ if (BLOBS.size >= BLOB_CACHE_LIMIT)
204
+ BLOBS.clear();
205
+ BLOBS.set(oid, copy);
206
+ return { ok: true, copy, oid };
207
+ }
208
+ /**
209
+ * The newest committed copy of the log this repository can see.
210
+ *
211
+ * "Newest" is the highest chain head among the candidate revs, not the newest
212
+ * commit: the question is how much of the log somebody else already holds, and
213
+ * a records branch that is one commit older but carries more records is the
214
+ * better witness. Ties keep the first rev in {@link anchorRevs} order, which
215
+ * puts an advance anchor ahead of the trunk ahead of `HEAD`.
216
+ */
217
+ export function resolveAnchor(root, logPath, options = {}) {
218
+ const relative = repoPath(root, logPath);
219
+ const revs = options.rev === undefined ? anchorRevs(root, options) : [options.rev];
220
+ const explicit = options.rev !== undefined;
221
+ let best = null;
222
+ const notes = [];
223
+ const attempts = [];
224
+ for (const rev of revs) {
225
+ const found = anchoredCopy(root, rev, relative, options);
226
+ if (!found.ok) {
227
+ if (found.reason !== null)
228
+ notes.push(found.reason);
229
+ if (found.attempt !== null)
230
+ attempts.push(describeAttempt(found.attempt));
231
+ continue;
232
+ }
233
+ if (best !== null && found.copy.head.seq <= best.head.seq)
234
+ continue;
235
+ best = {
236
+ rev,
237
+ oid: found.oid,
238
+ byteLength: found.copy.byteLength,
239
+ digest: found.copy.digest,
240
+ head: found.copy.head,
241
+ records: found.copy.records,
242
+ };
243
+ }
244
+ if (best !== null)
245
+ return { ok: true, anchor: best };
246
+ const where = explicit
247
+ ? `${revs[0] ?? "the requested rev"} has no ${relative} blob`
248
+ : `no rev this checkout can see carries a committed copy of ${relative} (tried ${revs.join(", ")})`;
249
+ /**
250
+ * What git was actually asked, and what it answered, for every rev.
251
+ *
252
+ * Printed only when NOTHING resolved, which is the one state where a reader
253
+ * has to distinguish "this repository has never committed the log" from "the
254
+ * lookup is broken". Those two produced the same sentence until this was
255
+ * added, and the second one shipped: `approval log verify --anchor` named
256
+ * four revs and no reason in a checkout where `git show refs/remotes/origin/
257
+ * main:.approval/log/events.jsonl` printed the log, because the read was
258
+ * outrunning the runner's output buffer and the failure had nowhere to go.
259
+ * A skip that lists revs without saying how each lookup failed is a skip a
260
+ * person cannot act on.
261
+ */
262
+ const said = [...notes, ...attempts];
263
+ return {
264
+ ok: false,
265
+ reason: said.length === 0
266
+ ? `${where}, so there is no external witness to compare the working log against`
267
+ : `${where}. ${said.join("; ")}`,
268
+ revs,
269
+ };
270
+ }
271
+ /**
272
+ * Compare the working log's prefix against the newest committed copy of it.
273
+ *
274
+ * Two facts are checked, and they are checked separately on purpose:
275
+ *
276
+ * 1. **The bytes.** The working log's first `anchor.byteLength` bytes must hash
277
+ * to the anchor's digest. This is a claim about the FILE, stricter than any
278
+ * claim about the chain: a rewrite that preserves every record hash while
279
+ * changing the bytes around them (whitespace, key order in a re-serialized
280
+ * line) still fails here.
281
+ * 2. **The head.** The working log's record at the anchor's head seq must carry
282
+ * the anchor's hash. Implied by (1) whenever (1) holds, and stated anyway,
283
+ * because it is the fact a human reads in the message and the one that names
284
+ * which record the two copies stopped agreeing at.
285
+ */
286
+ export function checkLogAnchor(options) {
287
+ const root = repoRoot(dirname(options.logPath));
288
+ if (root === null) {
289
+ return {
290
+ status: "skip",
291
+ reason: `${options.logPath} is not inside a git repository, so there is no committed copy to anchor it against`,
292
+ };
293
+ }
294
+ const resolution = resolveAnchor(root, options.logPath, options);
295
+ if (!resolution.ok)
296
+ return { status: "skip", reason: resolution.reason };
297
+ const anchor = resolution.anchor;
298
+ const found = anchoredCopy(root, anchor.rev, repoPath(root, options.logPath), options);
299
+ if (!found.ok) {
300
+ return {
301
+ status: "skip",
302
+ reason: `${anchor.rev} stopped being readable while it was being compared; nothing was decided from it`,
303
+ };
304
+ }
305
+ let working;
306
+ try {
307
+ working = readFileSync(options.logPath);
308
+ }
309
+ catch (cause) {
310
+ return {
311
+ status: "skip",
312
+ reason: `${options.logPath} could not be read as bytes (${cause instanceof Error ? cause.message : String(cause)}), so it could not be compared against ${anchor.rev}`,
313
+ };
314
+ }
315
+ const workingHead = options.records[options.records.length - 1] ?? null;
316
+ /**
317
+ * Where the two chains stop agreeing, in `core/log-reconcile.ts`'s words.
318
+ *
319
+ * Computed only on the refusal path, and through the SHARED comparison rather
320
+ * than a second one written here: a divergence ends with a person deciding
321
+ * which of two chains is the log, and the sentence they read has to name the
322
+ * seq. Re-walking the committed copy costs a chain walk, which is the right
323
+ * price on a path that is about to stop a daemon.
324
+ */
325
+ const divergence = () => {
326
+ const compared = compareChains({ label: `the working log ${options.logPath}`, text: working.toString("utf8") }, { label: anchor.rev, text: found.copy.bytes.toString("utf8") }, options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir });
327
+ return compared.ok ? ` ${describeDrift(compared.drift)}.` : "";
328
+ };
329
+ // The working log is shorter than the anchored copy. That is either the
330
+ // ordinary state of a checkout that has just pulled (a strict prefix), or the
331
+ // truncation this whole check exists for.
332
+ if (working.length < anchor.byteLength) {
333
+ if (found.copy.bytes.subarray(0, working.length).equals(working)) {
334
+ return {
335
+ status: "behind",
336
+ anchor,
337
+ behind: anchor.head.seq - (workingHead?.seq ?? 0),
338
+ workingBytes: working.length,
339
+ detail: `the working log is a prefix of ${anchor.rev}: the committed copy carries ${String(anchor.head.seq - (workingHead?.seq ?? 0))} record(s) this file does not, through seq ${String(anchor.head.seq)}`,
340
+ };
341
+ }
342
+ return {
343
+ status: "diverged",
344
+ code: "anchor-diverged",
345
+ anchor,
346
+ workingBytes: working.length,
347
+ message: `the working log ${options.logPath} is ${String(working.length)} bytes and ${anchor.rev} anchors ${String(anchor.byteLength)} bytes through seq ${String(anchor.head.seq)}, and the shorter file is not a prefix of the longer one. A committed copy of the log is the one witness a process with write access to this file cannot rewrite; these two are not the same chain.${divergence()}`,
348
+ };
349
+ }
350
+ const prefix = working.subarray(0, anchor.byteLength);
351
+ if (sha256(prefix) !== anchor.digest) {
352
+ return {
353
+ status: "diverged",
354
+ code: "anchor-diverged",
355
+ anchor,
356
+ workingBytes: working.length,
357
+ message: `the first ${String(anchor.byteLength)} bytes of ${options.logPath} do not hash to the copy committed at ${anchor.rev} (anchored through seq ${String(anchor.head.seq)} ${anchor.head.hash}). The anchored prefix has been rewritten in this working file; a chain that re-verifies from genesis proves only that whoever rewrote it recomputed the hashes.${divergence()}`,
358
+ };
359
+ }
360
+ const at = options.records.find((record) => record.seq === anchor.head.seq);
361
+ if (at === undefined || at.hash !== anchor.head.hash) {
362
+ return {
363
+ status: "diverged",
364
+ code: "anchor-diverged",
365
+ anchor,
366
+ workingBytes: working.length,
367
+ message: `${anchor.rev} anchors seq ${String(anchor.head.seq)} at ${anchor.head.hash} and the working log ${at === undefined
368
+ ? "carries no record at that seq"
369
+ : `carries ${at.hash} there`}. These are two chains, not one.${divergence()}`,
370
+ };
371
+ }
372
+ const ahead = (workingHead?.seq ?? 0) - anchor.head.seq;
373
+ return {
374
+ status: "pass",
375
+ anchor,
376
+ ahead,
377
+ workingBytes: working.length,
378
+ detail: ahead === 0
379
+ ? `the working log is byte-identical to the copy committed at ${anchor.rev} (${describeAnchor(anchor)})`
380
+ : `the working log carries the copy committed at ${anchor.rev} (${describeAnchor(anchor)}) byte for byte and is ahead by ${String(ahead)} record(s)`,
381
+ };
382
+ }
383
+ /** One anchor, as messages and rows spell one. */
384
+ export function describeAnchor(anchor) {
385
+ return `seq ${String(anchor.head.seq)} ${anchor.head.hash}, ${String(anchor.byteLength)} bytes`;
386
+ }
387
+ //# sourceMappingURL=log-anchor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-anchor.js","sourceRoot":"","sources":["../../../src/cli/log-anchor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The CLI edge of `approval log checkpoint` (APRV-220).
3
+ *
4
+ * As everywhere else in this CLI, no logic lives here: `core/checkpoint.ts`
5
+ * signs and appends, and this file splits argv, decides WHERE the private key
6
+ * may come from, maps the result onto the frozen exit table, and decides what a
7
+ * terminal sees.
8
+ *
9
+ * ## Where the key may come from, and why that decision is NOT here any more
10
+ *
11
+ * `core/checkpoint.ts` takes the private key as a value and reads it from
12
+ * nowhere. That is deliberate: custody is a policy question, and answering it in
13
+ * one place means there is one file to read to learn every way a checkpoint key
14
+ * can reach a signature. Until APRV-257 that file was this one, because a
15
+ * terminal was the only place a checkpoint could be signed. The channel tap
16
+ * added two more callers, so the decision MOVED to `cli/checkpoint-tap.ts`
17
+ * rather than being copied into them, and this verb resolves its key with
18
+ * everyone else's function. The property is unchanged; the file holding it is
19
+ * not.
20
+ */
21
+ import type { Streams } from "./main.js";
22
+ export declare function commandLogCheckpoint(argv: string[], streams: Streams, cwd: string): number;