approval-md 0.2.0 → 0.4.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 (378) hide show
  1. package/README.md +85 -877
  2. package/SPEC.md +150 -19
  3. package/cli.js +66 -7
  4. package/dist/src/adapters/smtp.d.ts +18 -0
  5. package/dist/src/adapters/smtp.js +24 -3
  6. package/dist/src/adapters/smtp.js.map +1 -1
  7. package/dist/src/channels/contract.d.ts +53 -1
  8. package/dist/src/channels/contract.js +304 -7
  9. package/dist/src/channels/contract.js.map +1 -1
  10. package/dist/src/channels/relay-server.d.ts +90 -0
  11. package/dist/src/channels/relay-server.js +295 -0
  12. package/dist/src/channels/relay-server.js.map +1 -0
  13. package/dist/src/channels/relay.d.ts +273 -0
  14. package/dist/src/channels/relay.js +564 -0
  15. package/dist/src/channels/relay.js.map +1 -0
  16. package/dist/src/channels/tagging.js +6 -1
  17. package/dist/src/channels/tagging.js.map +1 -1
  18. package/dist/src/channels/telegram-webhook.d.ts +273 -0
  19. package/dist/src/channels/telegram-webhook.js +536 -0
  20. package/dist/src/channels/telegram-webhook.js.map +1 -0
  21. package/dist/src/channels/telegram.d.ts +394 -12
  22. package/dist/src/channels/telegram.js +621 -68
  23. package/dist/src/channels/telegram.js.map +1 -1
  24. package/dist/src/channels/web.d.ts +9 -0
  25. package/dist/src/channels/web.js +17 -0
  26. package/dist/src/channels/web.js.map +1 -1
  27. package/dist/src/cli/amend.js +564 -34
  28. package/dist/src/cli/amend.js.map +1 -1
  29. package/dist/src/cli/attest.d.ts +9 -0
  30. package/dist/src/cli/attest.js +177 -13
  31. package/dist/src/cli/attest.js.map +1 -1
  32. package/dist/src/cli/channel-relay.d.ts +108 -0
  33. package/dist/src/cli/channel-relay.js +334 -0
  34. package/dist/src/cli/channel-relay.js.map +1 -0
  35. package/dist/src/cli/channel-telegram-webhook.d.ts +273 -0
  36. package/dist/src/cli/channel-telegram-webhook.js +709 -0
  37. package/dist/src/cli/channel-telegram-webhook.js.map +1 -0
  38. package/dist/src/cli/channel-telegram.d.ts +347 -28
  39. package/dist/src/cli/channel-telegram.js +763 -28
  40. package/dist/src/cli/channel-telegram.js.map +1 -1
  41. package/dist/src/cli/channel.d.ts +10 -1
  42. package/dist/src/cli/channel.js +14 -1
  43. package/dist/src/cli/channel.js.map +1 -1
  44. package/dist/src/cli/codex-bridge.d.ts +819 -0
  45. package/dist/src/cli/codex-bridge.js +1607 -0
  46. package/dist/src/cli/codex-bridge.js.map +1 -0
  47. package/dist/src/cli/codex.d.ts +1 -1
  48. package/dist/src/cli/codex.js +304 -7
  49. package/dist/src/cli/codex.js.map +1 -1
  50. package/dist/src/cli/daemon.js +41 -6
  51. package/dist/src/cli/daemon.js.map +1 -1
  52. package/dist/src/cli/doctor.d.ts +63 -0
  53. package/dist/src/cli/doctor.js +1322 -122
  54. package/dist/src/cli/doctor.js.map +1 -1
  55. package/dist/src/cli/execute.d.ts +17 -1
  56. package/dist/src/cli/execute.js +366 -22
  57. package/dist/src/cli/execute.js.map +1 -1
  58. package/dist/src/cli/exit-codes.d.ts +12 -0
  59. package/dist/src/cli/exit-codes.js +13 -0
  60. package/dist/src/cli/exit-codes.js.map +1 -1
  61. package/dist/src/cli/gate.d.ts +2 -0
  62. package/dist/src/cli/gate.js +233 -2
  63. package/dist/src/cli/gate.js.map +1 -1
  64. package/dist/src/cli/help.d.ts +14 -2
  65. package/dist/src/cli/help.js +395 -82
  66. package/dist/src/cli/help.js.map +1 -1
  67. package/dist/src/cli/hook-codex.d.ts +49 -1
  68. package/dist/src/cli/hook-codex.js +60 -1
  69. package/dist/src/cli/hook-codex.js.map +1 -1
  70. package/dist/src/cli/hook.d.ts +828 -4
  71. package/dist/src/cli/hook.js +2972 -142
  72. package/dist/src/cli/hook.js.map +1 -1
  73. package/dist/src/cli/import.js +1 -1
  74. package/dist/src/cli/import.js.map +1 -1
  75. package/dist/src/cli/init.js +16 -7
  76. package/dist/src/cli/init.js.map +1 -1
  77. package/dist/src/cli/instructions.js +24 -3
  78. package/dist/src/cli/instructions.js.map +1 -1
  79. package/dist/src/cli/log-anchor.d.ts +55 -0
  80. package/dist/src/cli/log-anchor.js +199 -60
  81. package/dist/src/cli/log-anchor.js.map +1 -1
  82. package/dist/src/cli/main.d.ts +0 -12
  83. package/dist/src/cli/main.js +56 -3
  84. package/dist/src/cli/main.js.map +1 -1
  85. package/dist/src/cli/muse.d.ts +2 -0
  86. package/dist/src/cli/muse.js +62 -0
  87. package/dist/src/cli/muse.js.map +1 -0
  88. package/dist/src/cli/payload.js +79 -1
  89. package/dist/src/cli/payload.js.map +1 -1
  90. package/dist/src/cli/policy-apply.d.ts +195 -0
  91. package/dist/src/cli/policy-apply.js +573 -0
  92. package/dist/src/cli/policy-apply.js.map +1 -0
  93. package/dist/src/cli/policy.js +14 -1
  94. package/dist/src/cli/policy.js.map +1 -1
  95. package/dist/src/cli/preflight.d.ts +151 -13
  96. package/dist/src/cli/preflight.js +398 -41
  97. package/dist/src/cli/preflight.js.map +1 -1
  98. package/dist/src/cli/sandbox.js +17 -1
  99. package/dist/src/cli/sandbox.js.map +1 -1
  100. package/dist/src/cli/scaffold.d.ts +1 -1
  101. package/dist/src/cli/scaffold.js +7 -1
  102. package/dist/src/cli/scaffold.js.map +1 -1
  103. package/dist/src/cli/serve.d.ts +53 -0
  104. package/dist/src/cli/serve.js +270 -0
  105. package/dist/src/cli/serve.js.map +1 -0
  106. package/dist/src/cli/setup-channel.d.ts +9 -0
  107. package/dist/src/cli/setup-channel.js +28 -1
  108. package/dist/src/cli/setup-channel.js.map +1 -1
  109. package/dist/src/cli/setup-common.d.ts +3 -1
  110. package/dist/src/cli/setup-common.js +3 -2
  111. package/dist/src/cli/setup-common.js.map +1 -1
  112. package/dist/src/cli/setup.d.ts +2 -0
  113. package/dist/src/cli/setup.js +94 -2
  114. package/dist/src/cli/setup.js.map +1 -1
  115. package/dist/src/cli/up.js +134 -51
  116. package/dist/src/cli/up.js.map +1 -1
  117. package/dist/src/cli/values.js +3 -4
  118. package/dist/src/cli/values.js.map +1 -1
  119. package/dist/src/cli/verb-registry.d.ts +2 -0
  120. package/dist/src/cli/verb-registry.js +510 -47
  121. package/dist/src/cli/verb-registry.js.map +1 -1
  122. package/dist/src/cli/wordmark.d.ts +2 -2
  123. package/dist/src/cli/wordmark.js +2 -2
  124. package/dist/src/codex/broker.d.ts +229 -0
  125. package/dist/src/codex/broker.js +548 -0
  126. package/dist/src/codex/broker.js.map +1 -0
  127. package/dist/src/codex/runner.d.ts +178 -0
  128. package/dist/src/codex/runner.js +231 -0
  129. package/dist/src/codex/runner.js.map +1 -0
  130. package/dist/src/codex/serve.d.ts +56 -0
  131. package/dist/src/codex/serve.js +98 -0
  132. package/dist/src/codex/serve.js.map +1 -0
  133. package/dist/src/codex/workspace-commit.d.ts +219 -0
  134. package/dist/src/codex/workspace-commit.js +549 -0
  135. package/dist/src/codex/workspace-commit.js.map +1 -0
  136. package/dist/src/core/advance-cycle.d.ts +51 -0
  137. package/dist/src/core/advance-cycle.js +66 -2
  138. package/dist/src/core/advance-cycle.js.map +1 -1
  139. package/dist/src/core/agents-md.d.ts +20 -18
  140. package/dist/src/core/agents-md.js +33 -31
  141. package/dist/src/core/agents-md.js.map +1 -1
  142. package/dist/src/core/attest-bootstrap.d.ts +95 -0
  143. package/dist/src/core/attest-bootstrap.js +135 -0
  144. package/dist/src/core/attest-bootstrap.js.map +1 -0
  145. package/dist/src/core/attest.d.ts +234 -2
  146. package/dist/src/core/attest.js +342 -7
  147. package/dist/src/core/attest.js.map +1 -1
  148. package/dist/src/core/audit.d.ts +73 -3
  149. package/dist/src/core/audit.js +65 -5
  150. package/dist/src/core/audit.js.map +1 -1
  151. package/dist/src/core/channel-lease.d.ts +322 -0
  152. package/dist/src/core/channel-lease.js +663 -0
  153. package/dist/src/core/channel-lease.js.map +1 -0
  154. package/dist/src/core/channel-owner.d.ts +213 -0
  155. package/dist/src/core/channel-owner.js +358 -0
  156. package/dist/src/core/channel-owner.js.map +1 -0
  157. package/dist/src/core/command-class.d.ts +205 -0
  158. package/dist/src/core/command-class.js +1433 -28
  159. package/dist/src/core/command-class.js.map +1 -1
  160. package/dist/src/core/commit-guard.d.ts +272 -0
  161. package/dist/src/core/commit-guard.js +424 -0
  162. package/dist/src/core/commit-guard.js.map +1 -0
  163. package/dist/src/core/daemon-actor.d.ts +45 -0
  164. package/dist/src/core/daemon-actor.js +54 -0
  165. package/dist/src/core/daemon-actor.js.map +1 -0
  166. package/dist/src/core/daemon-host.d.ts +178 -0
  167. package/dist/src/core/daemon-host.js +228 -0
  168. package/dist/src/core/daemon-host.js.map +1 -0
  169. package/dist/src/core/daemon-identity.d.ts +238 -0
  170. package/dist/src/core/daemon-identity.js +252 -0
  171. package/dist/src/core/daemon-identity.js.map +1 -0
  172. package/dist/src/core/dark-session.d.ts +109 -8
  173. package/dist/src/core/dark-session.js +266 -82
  174. package/dist/src/core/dark-session.js.map +1 -1
  175. package/dist/src/core/decision-refusal.d.ts +23 -2
  176. package/dist/src/core/decision-refusal.js +24 -2
  177. package/dist/src/core/decision-refusal.js.map +1 -1
  178. package/dist/src/core/env-file.d.ts +5 -0
  179. package/dist/src/core/env-file.js +60 -1
  180. package/dist/src/core/env-file.js.map +1 -1
  181. package/dist/src/core/execute.d.ts +15 -2
  182. package/dist/src/core/execute.js +15 -2
  183. package/dist/src/core/execute.js.map +1 -1
  184. package/dist/src/core/gate.d.ts +392 -6
  185. package/dist/src/core/gate.js +852 -24
  186. package/dist/src/core/gate.js.map +1 -1
  187. package/dist/src/core/gesture-refusal.d.ts +166 -0
  188. package/dist/src/core/gesture-refusal.js +188 -0
  189. package/dist/src/core/gesture-refusal.js.map +1 -0
  190. package/dist/src/core/harness-version.d.ts +128 -4
  191. package/dist/src/core/harness-version.js +181 -12
  192. package/dist/src/core/harness-version.js.map +1 -1
  193. package/dist/src/core/harness-wait.d.ts +82 -3
  194. package/dist/src/core/harness-wait.js +89 -3
  195. package/dist/src/core/harness-wait.js.map +1 -1
  196. package/dist/src/core/instance.d.ts +59 -2
  197. package/dist/src/core/instance.js +113 -0
  198. package/dist/src/core/instance.js.map +1 -1
  199. package/dist/src/core/log-subscribe.d.ts +21 -0
  200. package/dist/src/core/log-subscribe.js +16 -6
  201. package/dist/src/core/log-subscribe.js.map +1 -1
  202. package/dist/src/core/log-write-layer.d.ts +55 -0
  203. package/dist/src/core/log-write-layer.js +91 -0
  204. package/dist/src/core/log-write-layer.js.map +1 -0
  205. package/dist/src/core/log.d.ts +89 -22
  206. package/dist/src/core/log.js +197 -19
  207. package/dist/src/core/log.js.map +1 -1
  208. package/dist/src/core/payload-census.d.ts +51 -0
  209. package/dist/src/core/payload-census.js +125 -2
  210. package/dist/src/core/payload-census.js.map +1 -1
  211. package/dist/src/core/payload-store.d.ts +31 -0
  212. package/dist/src/core/payload-store.js +113 -8
  213. package/dist/src/core/payload-store.js.map +1 -1
  214. package/dist/src/core/payload.d.ts +18 -3
  215. package/dist/src/core/payload.js +20 -4
  216. package/dist/src/core/payload.js.map +1 -1
  217. package/dist/src/core/policy-diff.d.ts +10 -0
  218. package/dist/src/core/policy-diff.js +10 -2
  219. package/dist/src/core/policy-diff.js.map +1 -1
  220. package/dist/src/core/policy-explain.d.ts +17 -1
  221. package/dist/src/core/policy-explain.js +48 -1
  222. package/dist/src/core/policy-explain.js.map +1 -1
  223. package/dist/src/core/policy-load.d.ts +65 -1
  224. package/dist/src/core/policy-load.js +21 -3
  225. package/dist/src/core/policy-load.js.map +1 -1
  226. package/dist/src/core/policy-match.d.ts +81 -0
  227. package/dist/src/core/policy-match.js +87 -0
  228. package/dist/src/core/policy-match.js.map +1 -1
  229. package/dist/src/core/policy-proposal.d.ts +75 -0
  230. package/dist/src/core/policy-proposal.js +110 -4
  231. package/dist/src/core/policy-proposal.js.map +1 -1
  232. package/dist/src/core/protected-path-guard.d.ts +117 -4
  233. package/dist/src/core/protected-path-guard.js +362 -48
  234. package/dist/src/core/protected-path-guard.js.map +1 -1
  235. package/dist/src/core/question-preempted.d.ts +141 -0
  236. package/dist/src/core/question-preempted.js +152 -0
  237. package/dist/src/core/question-preempted.js.map +1 -0
  238. package/dist/src/core/read-scope.d.ts +182 -0
  239. package/dist/src/core/read-scope.js +256 -0
  240. package/dist/src/core/read-scope.js.map +1 -0
  241. package/dist/src/core/run-payload.d.ts +160 -0
  242. package/dist/src/core/run-payload.js +304 -0
  243. package/dist/src/core/run-payload.js.map +1 -0
  244. package/dist/src/core/sandbox.d.ts +81 -0
  245. package/dist/src/core/sandbox.js +190 -1
  246. package/dist/src/core/sandbox.js.map +1 -1
  247. package/dist/src/core/sender-identity.d.ts +501 -0
  248. package/dist/src/core/sender-identity.js +609 -0
  249. package/dist/src/core/sender-identity.js.map +1 -0
  250. package/dist/src/core/shlex.d.ts +102 -0
  251. package/dist/src/core/shlex.js +159 -0
  252. package/dist/src/core/shlex.js.map +1 -0
  253. package/dist/src/core/state.d.ts +52 -1
  254. package/dist/src/core/state.js +52 -6
  255. package/dist/src/core/state.js.map +1 -1
  256. package/dist/src/core/telegram-config.d.ts +79 -0
  257. package/dist/src/core/telegram-config.js +108 -0
  258. package/dist/src/core/telegram-config.js.map +1 -1
  259. package/dist/src/core/values.d.ts +18 -8
  260. package/dist/src/core/values.js +36 -1
  261. package/dist/src/core/values.js.map +1 -1
  262. package/dist/src/core/verify.d.ts +23 -1
  263. package/dist/src/core/verify.js +20 -2
  264. package/dist/src/core/verify.js.map +1 -1
  265. package/dist/src/daemon/advance.d.ts +10 -0
  266. package/dist/src/daemon/advance.js +25 -4
  267. package/dist/src/daemon/advance.js.map +1 -1
  268. package/dist/src/daemon/audit.d.ts +80 -5
  269. package/dist/src/daemon/audit.js +126 -6
  270. package/dist/src/daemon/audit.js.map +1 -1
  271. package/dist/src/daemon/daemon.d.ts +174 -2
  272. package/dist/src/daemon/daemon.js +307 -7
  273. package/dist/src/daemon/daemon.js.map +1 -1
  274. package/dist/src/daemon/git-evidence.d.ts +2 -2
  275. package/dist/src/daemon/git-evidence.js +1 -1
  276. package/dist/src/daemon/projection.d.ts +13 -2
  277. package/dist/src/daemon/projection.js +39 -6
  278. package/dist/src/daemon/projection.js.map +1 -1
  279. package/dist/src/mcp/server.d.ts +39 -3
  280. package/dist/src/mcp/server.js +30 -3
  281. package/dist/src/mcp/server.js.map +1 -1
  282. package/dist/src/muse/server.d.ts +16 -0
  283. package/dist/src/muse/server.js +238 -0
  284. package/dist/src/muse/server.js.map +1 -0
  285. package/dist/src/serve/archive.d.ts +158 -0
  286. package/dist/src/serve/archive.js +354 -0
  287. package/dist/src/serve/archive.js.map +1 -0
  288. package/dist/src/serve/arguments.d.ts +93 -0
  289. package/dist/src/serve/arguments.js +228 -0
  290. package/dist/src/serve/arguments.js.map +1 -0
  291. package/dist/src/serve/credentials.d.ts +91 -0
  292. package/dist/src/serve/credentials.js +143 -0
  293. package/dist/src/serve/credentials.js.map +1 -0
  294. package/dist/src/serve/follow.d.ts +86 -0
  295. package/dist/src/serve/follow.js +101 -0
  296. package/dist/src/serve/follow.js.map +1 -0
  297. package/dist/src/serve/hook-thread.d.ts +134 -0
  298. package/dist/src/serve/hook-thread.js +333 -0
  299. package/dist/src/serve/hook-thread.js.map +1 -0
  300. package/dist/src/serve/hook-worker.d.ts +134 -0
  301. package/dist/src/serve/hook-worker.js +173 -0
  302. package/dist/src/serve/hook-worker.js.map +1 -0
  303. package/dist/src/serve/server.d.ts +412 -0
  304. package/dist/src/serve/server.js +1251 -0
  305. package/dist/src/serve/server.js.map +1 -0
  306. package/docs/README-extended.md +766 -0
  307. package/docs/cli-reference.md +2563 -73
  308. package/docs/codex-enforced-session.md +75 -2
  309. package/docs/codex-workspace-broker.md +118 -0
  310. package/package.json +6 -2
  311. package/schema/event.schema.json +595 -9
  312. package/schema/fixtures/event/invalid/approval-granted-sender-hashed-false.json +20 -0
  313. package/schema/fixtures/event/invalid/approval-granted-sender-hashed-raw-id.json +20 -0
  314. package/schema/fixtures/event/invalid/audit-gesture-refused-human-actor.json +16 -0
  315. package/schema/fixtures/event/invalid/audit-gesture-refused-no-actor-no-sender.json +15 -0
  316. package/schema/fixtures/event/invalid/audit-gesture-refused-unknown-gesture.json +16 -0
  317. package/schema/fixtures/event/invalid/audit-question-preempted-agent-actor.json +16 -0
  318. package/schema/fixtures/event/invalid/audit-question-preempted-no-question-id.json +16 -0
  319. package/schema/fixtures/event/invalid/audit-question-preempted-unknown-source.json +15 -0
  320. package/schema/fixtures/event/invalid/daemon-id-malformed.json +15 -0
  321. package/schema/fixtures/event/invalid/execution-started-truncated-policy-sha256.json +18 -0
  322. package/schema/fixtures/event/invalid/gate-path-signed-off-absolute-path.json +14 -0
  323. package/schema/fixtures/event/invalid/gate-path-signed-off-agent-actor.json +14 -0
  324. package/schema/fixtures/event/invalid/gate-path-signed-off-missing-path.json +13 -0
  325. package/schema/fixtures/event/invalid/harness-cap-at-margin.json +16 -0
  326. package/schema/fixtures/event/invalid/harness-cap-fractional.json +16 -0
  327. package/schema/fixtures/event/invalid/harness-cap-negative.json +16 -0
  328. package/schema/fixtures/event/invalid/harness-cap-string.json +16 -0
  329. package/schema/fixtures/event/invalid/harness-cap-without-harness-execution.json +16 -0
  330. package/schema/fixtures/event/invalid/harness-cap-zero.json +16 -0
  331. package/schema/fixtures/event/valid/approval-granted-sender-hashed.json +20 -0
  332. package/schema/fixtures/event/valid/approval-requested-harness-cap.json +18 -0
  333. package/schema/fixtures/event/valid/audit-gesture-refused-review-note.json +21 -0
  334. package/schema/fixtures/event/valid/audit-gesture-refused-sender-key-unavailable.json +19 -0
  335. package/schema/fixtures/event/valid/audit-gesture-refused.json +19 -0
  336. package/schema/fixtures/event/valid/audit-question-preempted-no-verdict.json +16 -0
  337. package/schema/fixtures/event/valid/audit-question-preempted.json +20 -0
  338. package/schema/fixtures/event/valid/daemon-identity-declared.json +17 -0
  339. package/schema/fixtures/event/valid/daemon-identity.json +15 -0
  340. package/schema/fixtures/event/valid/execution-started-policy-sha256.json +18 -0
  341. package/schema/fixtures/event/valid/gate-path-signed-off.json +14 -0
  342. package/schema/fixtures/event/valid/harness-kind-claude-code.json +23 -0
  343. package/schema/fixtures/event/valid/harness-kind-codex.json +23 -0
  344. package/schema/fixtures/event/valid/harness-kind-cursor.json +23 -0
  345. package/schema/fixtures/event/valid/harness-kind-grok.json +23 -0
  346. package/schema/fixtures/event/valid/harness-kind-hermes.json +23 -0
  347. package/schema/fixtures/event/valid/harness-kind-muse.json +23 -0
  348. package/schema/fixtures/policy/invalid/daemons-malformed-id.json +10 -0
  349. package/schema/fixtures/policy/invalid/senders-half-keyed.json +20 -0
  350. package/schema/fixtures/policy/valid/canonical.json +1 -1
  351. package/schema/fixtures/policy/valid/daemons-allowlist.json +19 -0
  352. package/schema/fixtures/policy/valid/senders-keyed.json +24 -0
  353. package/schema/fixtures/policy-md/invalid/schema-invalid-agent-may-request.md +21 -0
  354. package/schema/fixtures/policy-md/valid/agent-may-request.md +24 -0
  355. package/schema/fixtures/policy-md/valid/canonical.md +1 -1
  356. package/schema/fixtures/policy-md/valid/with-values.md +5 -7
  357. package/schema/fixtures/values/invalid/class-shaped.json +1 -1
  358. package/schema/fixtures/values/invalid/duplicate-entry.json +1 -1
  359. package/schema/fixtures/values/invalid/non-string-item.json +1 -1
  360. package/schema/fixtures/values/invalid/over-cap.json +1 -1
  361. package/schema/fixtures/values/invalid/unknown-key.json +1 -1
  362. package/schema/fixtures/values/invalid/version-float.json +1 -0
  363. package/schema/fixtures/values/invalid/version-integer.json +1 -0
  364. package/schema/fixtures/values/invalid/version-wrong-string.json +1 -0
  365. package/schema/fixtures/values/valid/empty-lists.json +2 -3
  366. package/schema/fixtures/values/valid/full.json +5 -7
  367. package/schema/fixtures/values/valid/minimal.json +1 -1
  368. package/schema/fixtures/values-md/invalid/schema-invalid.md +5 -3
  369. package/schema/fixtures/values-md/invalid/two-blocks.md +3 -3
  370. package/schema/fixtures/values-md/invalid/unterminated.md +2 -2
  371. package/schema/fixtures/values-md/invalid/version-1.md +69 -0
  372. package/schema/fixtures/values-md/invalid/version-unquoted.md +64 -0
  373. package/schema/fixtures/values-md/invalid/yaml-error.md +2 -2
  374. package/schema/fixtures/values-md/valid/absent.md +1 -1
  375. package/schema/fixtures/values-md/valid/with-values.md +5 -7
  376. package/schema/policy.schema.json +100 -4
  377. package/schema/values.schema.json +7 -11
  378. package/schema/fixtures/values/invalid/version-string.json +0 -1
@@ -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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"}
@@ -64,11 +64,12 @@
64
64
  * headings ("what I value", "what good looks like", "how I like to work",
65
65
  * "what I want from you") and their bullets are drafted into a
66
66
  * ` ```yaml approval-values ` block (SPEC.md §5.3). Every bullet lands in
67
- * `wants:`, and nothing is ever placed in `love:`, `like:` or `dislike:`.
68
- * Grading is the human's act. This importer can see that a line was written
69
- * down; it cannot see how much its author meant it, and a guessed grade would
70
- * put words in their mouth inside the one block of `APPROVAL.md` that exists to
71
- * carry their own.
67
+ * `like:`, and nothing is ever placed in `love:` or `dislike:`. Since APRV-336
68
+ * folded `wants:` away, `like:` is the list that carries both what an operator
69
+ * prefers and what they ask of an agent, and it is the middle of the three
70
+ * grades: the importer can see that a line was written down and cannot see how
71
+ * much its author meant it, so it declines to reach for the strongest grade or
72
+ * the negative one. Promoting an entry to `love:` is the human's act.
72
73
  *
73
74
  * ## Namespaces
74
75
  *
@@ -150,8 +151,8 @@ export declare function parseAgentsMd(markdown: string): AgentsMdParse;
150
151
  export interface ValuesDraft {
151
152
  /** The recognised headings, normalised, in source order. */
152
153
  headings: string[];
153
- /** Bullets destined for `wants:`: truncated, deduped, capped. */
154
- wants: string[];
154
+ /** Bullets destined for `like:`: truncated, deduped, capped. */
155
+ like: string[];
155
156
  /** Bullets past {@link VALUES_MAX_ITEMS}, kept so none is dropped silently. */
156
157
  overflow: string[];
157
158
  /** Human-facing notes; never a reason to relax anything. */
@@ -161,18 +162,19 @@ export interface ValuesDraft {
161
162
  * Collect the bullets under the optional values headings of an AGENTS.md-style
162
163
  * document (SPEC.md §5.3).
163
164
  *
164
- * ## Everything goes to `wants`, and nothing is graded
165
+ * ## Everything goes to `like`, and nothing is promoted
165
166
  *
166
- * The values block has three standing grades (`love`, `like`, `dislike`) and
167
- * one behavioural list (`wants`). This function fills `wants` and leaves the
168
- * three grades empty, always. A grade is a statement of taste, and it is the
169
- * human's to make: the source shows that a line was written under a heading, it
170
- * does not show how strongly it was meant, and an importer that inferred
171
- * "love" from an exclamation mark or a heading's wording would be putting words
172
- * in its reader's mouth in the one block of `APPROVAL.md` that exists to carry
173
- * theirs. `wants` is the honest destination for a bullet whose grade is
174
- * unknown: it says the operator asked for something, which is exactly what a
175
- * bullet under "what I want from you" demonstrates.
167
+ * The values block has three standing grades (`love`, `like`, `dislike`) and,
168
+ * since APRV-336, nothing else: `like` carries what the operator prefers and
169
+ * what they ask of an agent alike. This function fills `like` and leaves `love`
170
+ * and `dislike` empty, always. The strength of a grade is a statement of taste
171
+ * and it is the human's to make: the source shows that a line was written under
172
+ * a heading, it does not show how strongly it was meant, and an importer that
173
+ * inferred "love" from an exclamation mark or a heading's wording would be
174
+ * putting words in its reader's mouth in the one block of `APPROVAL.md` that
175
+ * exists to carry theirs. The middle grade is the honest destination for a
176
+ * bullet whose strength is unknown: it says the operator asked for something,
177
+ * which is exactly what a bullet under "what I want from you" demonstrates.
176
178
  *
177
179
  * ## The scan
178
180
  *
@@ -64,11 +64,12 @@
64
64
  * headings ("what I value", "what good looks like", "how I like to work",
65
65
  * "what I want from you") and their bullets are drafted into a
66
66
  * ` ```yaml approval-values ` block (SPEC.md §5.3). Every bullet lands in
67
- * `wants:`, and nothing is ever placed in `love:`, `like:` or `dislike:`.
68
- * Grading is the human's act. This importer can see that a line was written
69
- * down; it cannot see how much its author meant it, and a guessed grade would
70
- * put words in their mouth inside the one block of `APPROVAL.md` that exists to
71
- * carry their own.
67
+ * `like:`, and nothing is ever placed in `love:` or `dislike:`. Since APRV-336
68
+ * folded `wants:` away, `like:` is the list that carries both what an operator
69
+ * prefers and what they ask of an agent, and it is the middle of the three
70
+ * grades: the importer can see that a line was written down and cannot see how
71
+ * much its author meant it, so it declines to reach for the strongest grade or
72
+ * the negative one. Promoting an entry to `love:` is the human's act.
72
73
  *
73
74
  * ## Namespaces
74
75
  *
@@ -415,18 +416,19 @@ function capLength(text) {
415
416
  * Collect the bullets under the optional values headings of an AGENTS.md-style
416
417
  * document (SPEC.md §5.3).
417
418
  *
418
- * ## Everything goes to `wants`, and nothing is graded
419
+ * ## Everything goes to `like`, and nothing is promoted
419
420
  *
420
- * The values block has three standing grades (`love`, `like`, `dislike`) and
421
- * one behavioural list (`wants`). This function fills `wants` and leaves the
422
- * three grades empty, always. A grade is a statement of taste, and it is the
423
- * human's to make: the source shows that a line was written under a heading, it
424
- * does not show how strongly it was meant, and an importer that inferred
425
- * "love" from an exclamation mark or a heading's wording would be putting words
426
- * in its reader's mouth in the one block of `APPROVAL.md` that exists to carry
427
- * theirs. `wants` is the honest destination for a bullet whose grade is
428
- * unknown: it says the operator asked for something, which is exactly what a
429
- * bullet under "what I want from you" demonstrates.
421
+ * The values block has three standing grades (`love`, `like`, `dislike`) and,
422
+ * since APRV-336, nothing else: `like` carries what the operator prefers and
423
+ * what they ask of an agent alike. This function fills `like` and leaves `love`
424
+ * and `dislike` empty, always. The strength of a grade is a statement of taste
425
+ * and it is the human's to make: the source shows that a line was written under
426
+ * a heading, it does not show how strongly it was meant, and an importer that
427
+ * inferred "love" from an exclamation mark or a heading's wording would be
428
+ * putting words in its reader's mouth in the one block of `APPROVAL.md` that
429
+ * exists to carry theirs. The middle grade is the honest destination for a
430
+ * bullet whose strength is unknown: it says the operator asked for something,
431
+ * which is exactly what a bullet under "what I want from you" demonstrates.
430
432
  *
431
433
  * ## The scan
432
434
  *
@@ -514,12 +516,12 @@ export function parseValuesHeadings(markdown) {
514
516
  if (duplicates > 0) {
515
517
  warnings.push(`${String(duplicates)} repeated values ${duplicates === 1 ? "bullet was" : "bullets were"} collapsed; values.schema.json requires the entries of a list to be unique`);
516
518
  }
517
- const wants = unique.slice(0, VALUES_MAX_ITEMS);
519
+ const like = unique.slice(0, VALUES_MAX_ITEMS);
518
520
  const overflow = unique.slice(VALUES_MAX_ITEMS);
519
521
  if (overflow.length > 0) {
520
- warnings.push(`${String(overflow.length)} values ${overflow.length === 1 ? "bullet is" : "bullets are"} past the cap of ${String(VALUES_MAX_ITEMS)}; they are preserved as comments in the draft instead of in wants:, and a human promotes the ones they want`);
522
+ warnings.push(`${String(overflow.length)} values ${overflow.length === 1 ? "bullet is" : "bullets are"} past the cap of ${String(VALUES_MAX_ITEMS)}; they are preserved as comments in the draft instead of in like:, and a human promotes the ones they want`);
521
523
  }
522
- return { headings, wants, overflow, warnings };
524
+ return { headings, like, overflow, warnings };
523
525
  }
524
526
  /** Ordered (section, bullet) pairs: allowed, then approval-first, then never. */
525
527
  function orderedBullets(parse) {
@@ -648,29 +650,29 @@ export function renderFencedValuesDraft(draft, source) {
648
650
  "# The values block lives INSIDE APPROVAL.md, so pasting it changes the file's",
649
651
  "# bytes and invalidates the standing attestation; renew it immediately after.",
650
652
  "#",
651
- "# EVERY bullet is in `wants:`, and nothing is graded. `love:`, `like:` and",
652
- "# `dislike:` are yours to fill in. A grade is a statement of taste and it is",
653
- "# yours to make: this importer can see that you wrote a line down, and cannot",
653
+ "# EVERY bullet is in `like:`, the middle grade, and nothing is promoted.",
654
+ "# `love:` and `dislike:` are yours to fill in. How strongly a line is meant",
655
+ "# is yours to say: this importer can see that you wrote it down, and cannot",
654
656
  "# see how much you meant it. Guessing would put words in your mouth.",
655
657
  "#",
656
658
  "# This block is guidance and never policy. Nothing here is enforced, counted",
657
659
  "# or checked, and no routing, class match, sampling draw, budget or token",
658
660
  "# reads it (SPEC.md §11.1 invariant 10).",
659
661
  "",
660
- "version: 1",
662
+ 'version: "0.2"',
661
663
  ];
662
- if (draft.wants.length === 0) {
663
- lines.push("# The headings were there and carried no bullets. An empty list is a real", "# answer: it says the question was considered and left blank.", "wants: []");
664
+ if (draft.like.length === 0) {
665
+ lines.push("# The headings were there and carried no bullets. An empty list is a real", "# answer: it says the question was considered and left blank.", "like: []");
664
666
  }
665
667
  else {
666
- lines.push("wants:");
667
- for (const want of draft.wants)
668
- lines.push(` - ${JSON.stringify(want)}`);
668
+ lines.push("like:");
669
+ for (const entry of draft.like)
670
+ lines.push(` - ${JSON.stringify(entry)}`);
669
671
  }
670
672
  if (draft.overflow.length > 0) {
671
- lines.push("", `# OVER THE CAP: values.schema.json admits ${String(VALUES_MAX_ITEMS)} entries and the source`, "# offered more. These are preserved verbatim and are NOT in `wants:`. Promote", "# the ones you want by hand, in place of ones above:");
672
- for (const want of draft.overflow)
673
- lines.push(`# ${want}`);
673
+ lines.push("", `# OVER THE CAP: values.schema.json admits ${String(VALUES_MAX_ITEMS)} entries and the source`, "# offered more. These are preserved verbatim and are NOT in `like:`. Promote", "# the ones you want by hand, in place of ones above:");
674
+ for (const entry of draft.overflow)
675
+ lines.push(`# ${entry}`);
674
676
  }
675
677
  return `\`\`\`${VALUES_INFO_STRING}\n${lines.join("\n")}\n\`\`\`\n`;
676
678
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../../src/core/agents-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAgCH;;;;;;;GAOG;AACH,MAAM,eAAe,GAAiE;IACpF,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IAC1F;QACE,gBAAgB;QAChB;YACE,wBAAwB;YACxB,mBAAmB;YACnB,kBAAkB;YAClB,mBAAmB;YACnB,WAAW;YACX,YAAY;YACZ,gBAAgB;SACjB;KACF;IACD;QACE,SAAS;QACT;YACE,2BAA2B;YAC3B,wBAAwB;YACxB,SAAS;YACT,YAAY;YACZ,kBAAkB;YAClB,aAAa;SACd;KACF;CACF,CAAC;AAEF,0DAA0D;AAC1D,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,WAAW,GAGnB;IACH;QACE,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;KACnF;IACD;QACE,GAAG,EAAE,qBAAqB;QAC1B,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;KAC3E;IACD;QACE,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE;YACH,CAAC,aAAa,CAAC;YACf,CAAC,cAAc,CAAC;YAChB,CAAC,YAAY,CAAC;YACd,CAAC,WAAW,CAAC;YACb,CAAC,WAAW,CAAC;YACb,CAAC,aAAa,CAAC;YACf,CAAC,WAAW,CAAC;YACb,CAAC,YAAY,CAAC;YACd,CAAC,gBAAgB,CAAC;YAClB,CAAC,eAAe,CAAC;SAClB;KACF;IACD,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAClD,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE;IAC3F;QACE,GAAG,EAAE,iBAAiB;QACtB,GAAG,EAAE;YACH,CAAC,aAAa,CAAC;YACf,CAAC,aAAa,CAAC;YACf,CAAC,UAAU,CAAC;YACZ,CAAC,cAAc,CAAC;YAChB,CAAC,cAAc,CAAC;YAChB,CAAC,SAAS,CAAC;YACX,CAAC,SAAS,CAAC;SACZ;KACF;IACD;QACE,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;KAC3F;IACD,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;IAChE,wEAAwE;IACxE,4EAA4E;IAC5E,wCAAwC;IACxC,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE;IACjF,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE;IAC/C;QACE,GAAG,EAAE,YAAY;QACjB,GAAG,EAAE;YACH,CAAC,WAAW,CAAC;YACb,CAAC,eAAe,CAAC;YACjB,CAAC,MAAM,CAAC;YACR,CAAC,WAAW,CAAC;YACb,CAAC,YAAY,CAAC;YACd,CAAC,OAAO,CAAC;YACT,CAAC,QAAQ,CAAC;SACX;KACF;IACD;QACE,GAAG,EAAE,uBAAuB;QAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;KACjE;IACD,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;CACzF,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,GAAuC;IACrD,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,yEAAyE;AACzE,MAAM,gBAAgB,GAAgD;IACpE,OAAO,EAAE,YAAY;IACrB,gBAAgB,EAAE,QAAQ;IAC1B,KAAK,EAAE,QAAQ;CAChB,CAAC;AAEF,mFAAmF;AACnF,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,IAAI,EAAE;SACN,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,eAAe,EAAE,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9E,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC,GAAG,CAAC;QACnF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAC3C,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAC3C,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,QAAQ,GAAqB,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACjF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE5C,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,OAAO,GAA2B,IAAI,CAAC;IAC3C,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAkB,IAAI,CAAC;IAErC,MAAM,MAAM,GAAG,CAAC,OAAwB,EAAY,EAAE,CACpD,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,QAAQ,CAAC,OAAO;QAClB,CAAC,CAAC,OAAO,KAAK,gBAAgB;YAC5B,CAAC,CAAC,QAAQ,CAAC,aAAa;YACxB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAEvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAW,CAAC;QACpC,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;QAE7B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAE,KAAK,GAAG,IAAI,CAAC;YACxF,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;YAC1B,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,GAAI,OAAO,CAAC,CAAC,CAAY,CAAC,MAAM,CAAC;YAC5C,MAAM,GAAG,GAAI,OAAO,CAAC,CAAC,CAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpE,UAAU,GAAG,IAAI,CAAC;YAElB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,GAAG,OAAO,CAAC;gBAClB,YAAY,GAAG,KAAK,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,KAAK,IAAI,CAAC;YACtC,MAAM,YAAY,GAAG,YAAY,CAAC;YAClC,OAAO,GAAG,IAAI,CAAC;YAEf,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACvD,QAAQ,GAAG,IAAI,CAAC;gBAChB,qBAAqB,GAAG,IAAI,CAAC;gBAC7B,WAAW,GAAG,KAAK,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,IAAI,KAAK,IAAI,WAAW,EAAE,CAAC;gBACrC,QAAQ,GAAG,KAAK,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,IAAI,CAAC,YAAY,IAAI,KAAK,GAAG,YAAY,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1E,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,GAAI,IAAI,CAAC,CAAC,CAAY,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,UAAU,GAAG,IAAI,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,UAAU,GAAG,MAAM,CAAC;YACpB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,wEAAwE;QACxE,2DAA2D;QAC3D,IAAI,UAAU,KAAK,IAAI;YAAE,UAAU,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IACjF,CAAC;IAED,MAAM,KAAK,GACT,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IAClF,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CACX,qBAAqB;YACnB,CAAC,CAAC,yMAAyM;YAC3M,CAAC,CAAC,6PAA6P,CAClQ,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AAEjC;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAAsB;IAChD,cAAc;IACd,sBAAsB;IACtB,oBAAoB;IACpB,sBAAsB;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAc9B,qDAAqD;AACrD,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,sBAAsB,CAAC,IAAI,CAChC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACtF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,IAAI,MAAM,CAAC,MAAM,IAAI,iBAAiB;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC1E,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC1F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE5C,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,UAAU,GAA4B,IAAI,CAAC;IAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAE,KAAK,GAAG,IAAI,CAAC;YACxF,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAW,CAAC;YAC5B,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,GAAI,OAAO,CAAC,CAAC,CAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpE,UAAU,GAAG,IAAI,CAAC;YAClB,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,GAAI,IAAI,CAAC,CAAC,CAAY,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,UAAU,GAAG,IAAI,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,UAAU,GAAG,MAAM,CAAC;YACpB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,UAAU,KAAK,IAAI;YAAE,UAAU,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IACjF,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CACX,sBAAsB,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,uDAAuD,MAAM,CAAC,iBAAiB,CAAC,sGAAsG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CACzQ,CAAC;QACJ,CAAC;QACD,2EAA2E;QAC3E,yEAAyE;QACzE,6EAA6E;QAC7E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,UAAU,IAAI,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,4EAA4E,CACtK,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,oBAAoB,MAAM,CAAC,gBAAgB,CAAC,6GAA6G,CAClP,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACjD,CAAC;AAiCD,iFAAiF;AACjF,SAAS,cAAc,CAAC,KAAoB;IAC1C,OAAO;QACL,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAkB,EAAE,CAAC,CAAC;QACpF,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM;YACN,OAAO,EAAE,gBAAyB;SACnC,CAAC,CAAC;QACH,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAgB,EAAE,CAAC,CAAC;KACjF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC7C,4EAA4E;IAC5E,2EAA2E;IAC3E,kDAAkD;IAClD,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE9C,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,CACX,oBAAoB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,OAAO,0EAA0E,CAC/I,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;gBACf,GAAG;gBACH,QAAQ;gBACR,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;gBACzC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;aACrC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACvD,QAAQ,CAAC,IAAI,CACX,SAAS,GAAG,4DAA4D,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,CACpM,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC7B,QAAQ,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAChG,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAElD,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO;QACL,kCAAkC,MAAM,oCAAoC;QAC5E,GAAG;QACH,8EAA8E;QAC9E,6EAA6E;QAC7E,+DAA+D;QAC/D,wEAAwE;QACxE,GAAG;QACH,+EAA+E;QAC/E,8EAA8E;QAC9E,+EAA+E;QAC/E,iEAAiE;QACjE,GAAG;QACH,+EAA+E;QAC/E,8EAA8E;QAC9E,6EAA6E;QAC7E,2CAA2C;QAC3C,GAAG;QACH,+EAA+E;QAC/E,wEAAwE;KACzE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,MAAsC;IAC5D,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAkB,EAAE,MAAc;IACxE,MAAM,KAAK,GAAa;QACtB,uCAAuC,MAAM,oCAAoC;QACjF,GAAG;QACH,6EAA6E;QAC7E,4EAA4E;QAC5E,+EAA+E;QAC/E,+EAA+E;QAC/E,GAAG;QACH,4EAA4E;QAC5E,8EAA8E;QAC9E,+EAA+E;QAC/E,sEAAsE;QACtE,GAAG;QACH,8EAA8E;QAC9E,2EAA2E;QAC3E,0CAA0C;QAC1C,EAAE;QACF,YAAY;KACb,CAAC;IAEF,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,2EAA2E,EAC3E,+DAA+D,EAC/D,WAAW,CACZ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CACR,EAAE,EACF,6CAA6C,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,EAC9F,+EAA+E,EAC/E,sDAAsD,CACvD,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,SAAS,kBAAkB,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAsB,EAAE,MAAc;IAClE,OAAO,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAsB,EACtB,MAAc,EACd,MAA2B;IAE3B,MAAM,KAAK,GAAa,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAErD,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CACR,WAAW,EACX,uEAAuE,EACvE,uBAAuB,EACvB,qBAAqB,EACrB,EAAE,CACH,CAAC;IAEF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CACR,8EAA8E,EAC9E,sEAAsE,CACvE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,wEAAwE;gBACxE,uEAAuE;gBACvE,0EAA0E;gBAC1E,MAAM,KAAK,GACT,MAAM,CAAC,OAAO,KAAK,OAAO;oBACxB,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBACxB,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG;wBAC5B,CAAC,CAAC,MAAM,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,iBAAiB,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CACR,EAAE,EACF,yEAAyE,EACzE,6EAA6E,EAC7E,gBAAgB,CACjB,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACrC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,SAAS,kBAAkB,KAAK,IAAI,aAAa,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AACpG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAsB,EACtB,MAAc,EACd,MAA2B;IAE3B,MAAM,MAAM,GAAG,SAAS,kBAAkB,KAAK,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC;IAC3F,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3C,OAAO,GAAG,MAAM,KAAK,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../../src/core/agents-md.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * The operator's bootstrap attestation (APRV-449): `approval policy attest
3
+ * --bootstrap`, the first attestation of a store that has never had one, and
4
+ * nothing else.
5
+ *
6
+ * ## Why the plain verb is not enough for provisioning
7
+ *
8
+ * `appendAttestation` is an unconditional assertion about a file's bytes: it
9
+ * reads no log and appends whatever the caller hands it, which is right for a
10
+ * human at a terminal and wrong for a provisioning step that runs again on every
11
+ * update and recreate of a sandbox. Two things go wrong with a re-run of the
12
+ * plain verb:
13
+ *
14
+ * 1. It is not idempotent. A second run over the same bytes appends a second
15
+ * `policy.updated`, so the log grows an attestation per redeploy and the seq
16
+ * of the policy in force moves although nothing changed.
17
+ * 2. It can overwrite a human's act. Once the resident has attested or amended
18
+ * their own policy, a re-run of the operator's step attests the bytes on disk
19
+ * as the operator, and the attester of record silently becomes the operator
20
+ * again. If the step re-rendered the policy first, the operator has just
21
+ * amended a resident's policy without the resident's tap.
22
+ *
23
+ * The bootstrap closes both by reading the verified log first:
24
+ *
25
+ * - no attestation in the log: attest, as the plain verb would;
26
+ * - the live bytes already match the latest attestation: refuse
27
+ * `policy-already-attested`, append nothing (the expected answer on a re-run);
28
+ * - the log carries an attestation of OTHER bytes: refuse
29
+ * `policy-amendment-required`, append nothing. A change to a policy that has
30
+ * been attested is an amendment, and an amendment is the approver's act
31
+ * through a channel (SPEC.md §10.3, APRV-109). The operator sets the starting
32
+ * policy only.
33
+ *
34
+ * ## Compare-and-append
35
+ *
36
+ * This is a check-then-append, so it passes the head it read as `expectedHead`
37
+ * (SPEC.md §11.1): an attestation that lands between the read and the append
38
+ * makes this one fail `head-moved` rather than stack an operator attestation on
39
+ * top of it. The bytes are bound the same way: the digest the decision was made
40
+ * on is passed as `expectedSha256`, so a file rewritten between the check and the
41
+ * append is refused rather than attested.
42
+ *
43
+ * ## A refused append can leave one unbound store file, deliberately
44
+ *
45
+ * `appendAttestation` writes the attested text to the payload store BEFORE it
46
+ * appends (APRV-356: no record may bind bytes the store lacks). If the append
47
+ * then fails, `head-moved` above all, the `{ text }` file stays behind with no
48
+ * record binding it. It is not removed, because removal is the unsafe
49
+ * direction: the store is content-addressed, and the record that moved the head
50
+ * may be another attestation of these same bytes, which binds this very file.
51
+ * Deleting it would turn a harmless orphan into a binding whose bytes are gone.
52
+ * An unbound file is inert (nothing reads a payload no record names), `approval
53
+ * status` counts it under `payload_store.orphans`, and the next successful
54
+ * attestation of the same bytes binds it.
55
+ *
56
+ * ## What it does not change
57
+ *
58
+ * The actor rule (human only), bytes-not-parse, config-declared identity and the
59
+ * payload-store binding of APRV-356 are `appendAttestation`'s, untouched, because
60
+ * the append IS `appendAttestation`. No timestamp is accepted: `policy.updated`
61
+ * is gate-typed and core stamps it.
62
+ */
63
+ import { type AttestErrorCode, type AttestOptions } from "./attest.js";
64
+ import type { EventRecord } from "./log.js";
65
+ import { type LogReadRefusalCode } from "./state.js";
66
+ /** The two refusals only the bootstrap can give, beside the read and append codes. */
67
+ export declare const BOOTSTRAP_REFUSAL_CODES: readonly ["policy-already-attested", "policy-amendment-required"];
68
+ export type BootstrapRefusalCode = (typeof BOOTSTRAP_REFUSAL_CODES)[number];
69
+ export type BootstrapErrorCode = BootstrapRefusalCode | LogReadRefusalCode | AttestErrorCode;
70
+ export interface BootstrapError {
71
+ code: BootstrapErrorCode;
72
+ message: string;
73
+ /** The seq of the attestation in force, on the two bootstrap refusals. */
74
+ seq?: number;
75
+ /** Who made that attestation, as the verified record names them. */
76
+ attested_by?: string | null;
77
+ }
78
+ export type BootstrapResult = {
79
+ ok: true;
80
+ record: EventRecord;
81
+ line: string;
82
+ } | {
83
+ ok: false;
84
+ error: BootstrapError;
85
+ };
86
+ /** `appendAttestation`'s options, less the digest binding this module supplies itself. */
87
+ export type BootstrapOptions = Omit<AttestOptions, "expectedSha256" | "expectedHead">;
88
+ /**
89
+ * Attest `policyPath` as the store's FIRST policy, or refuse.
90
+ *
91
+ * `actor` must be `human:<id>`; the rule is `appendAttestation`'s and is not
92
+ * re-stated here, so an `agent:` actor is refused `actor-not-human` before
93
+ * anything is read.
94
+ */
95
+ export declare function appendBootstrapAttestation(logPath: string, policyPath: string, actor: string, options?: BootstrapOptions): BootstrapResult;
@@ -0,0 +1,135 @@
1
+ /**
2
+ * The operator's bootstrap attestation (APRV-449): `approval policy attest
3
+ * --bootstrap`, the first attestation of a store that has never had one, and
4
+ * nothing else.
5
+ *
6
+ * ## Why the plain verb is not enough for provisioning
7
+ *
8
+ * `appendAttestation` is an unconditional assertion about a file's bytes: it
9
+ * reads no log and appends whatever the caller hands it, which is right for a
10
+ * human at a terminal and wrong for a provisioning step that runs again on every
11
+ * update and recreate of a sandbox. Two things go wrong with a re-run of the
12
+ * plain verb:
13
+ *
14
+ * 1. It is not idempotent. A second run over the same bytes appends a second
15
+ * `policy.updated`, so the log grows an attestation per redeploy and the seq
16
+ * of the policy in force moves although nothing changed.
17
+ * 2. It can overwrite a human's act. Once the resident has attested or amended
18
+ * their own policy, a re-run of the operator's step attests the bytes on disk
19
+ * as the operator, and the attester of record silently becomes the operator
20
+ * again. If the step re-rendered the policy first, the operator has just
21
+ * amended a resident's policy without the resident's tap.
22
+ *
23
+ * The bootstrap closes both by reading the verified log first:
24
+ *
25
+ * - no attestation in the log: attest, as the plain verb would;
26
+ * - the live bytes already match the latest attestation: refuse
27
+ * `policy-already-attested`, append nothing (the expected answer on a re-run);
28
+ * - the log carries an attestation of OTHER bytes: refuse
29
+ * `policy-amendment-required`, append nothing. A change to a policy that has
30
+ * been attested is an amendment, and an amendment is the approver's act
31
+ * through a channel (SPEC.md §10.3, APRV-109). The operator sets the starting
32
+ * policy only.
33
+ *
34
+ * ## Compare-and-append
35
+ *
36
+ * This is a check-then-append, so it passes the head it read as `expectedHead`
37
+ * (SPEC.md §11.1): an attestation that lands between the read and the append
38
+ * makes this one fail `head-moved` rather than stack an operator attestation on
39
+ * top of it. The bytes are bound the same way: the digest the decision was made
40
+ * on is passed as `expectedSha256`, so a file rewritten between the check and the
41
+ * append is refused rather than attested.
42
+ *
43
+ * ## A refused append can leave one unbound store file, deliberately
44
+ *
45
+ * `appendAttestation` writes the attested text to the payload store BEFORE it
46
+ * appends (APRV-356: no record may bind bytes the store lacks). If the append
47
+ * then fails, `head-moved` above all, the `{ text }` file stays behind with no
48
+ * record binding it. It is not removed, because removal is the unsafe
49
+ * direction: the store is content-addressed, and the record that moved the head
50
+ * may be another attestation of these same bytes, which binds this very file.
51
+ * Deleting it would turn a harmless orphan into a binding whose bytes are gone.
52
+ * An unbound file is inert (nothing reads a payload no record names), `approval
53
+ * status` counts it under `payload_store.orphans`, and the next successful
54
+ * attestation of the same bytes binds it.
55
+ *
56
+ * ## What it does not change
57
+ *
58
+ * The actor rule (human only), bytes-not-parse, config-declared identity and the
59
+ * payload-store binding of APRV-356 are `appendAttestation`'s, untouched, because
60
+ * the append IS `appendAttestation`. No timestamp is accepted: `policy.updated`
61
+ * is gate-typed and core stamps it.
62
+ */
63
+ import { readFileSync } from "node:fs";
64
+ import { appendAttestation, attesterAt, checkAttestationOfBytes, policyBytesHash, } from "./attest.js";
65
+ import { readVerifiedRecords } from "./state.js";
66
+ /** The two refusals only the bootstrap can give, beside the read and append codes. */
67
+ export const BOOTSTRAP_REFUSAL_CODES = [
68
+ "policy-already-attested",
69
+ "policy-amendment-required",
70
+ ];
71
+ function detail(cause) {
72
+ return cause instanceof Error ? cause.message : String(cause);
73
+ }
74
+ /**
75
+ * Attest `policyPath` as the store's FIRST policy, or refuse.
76
+ *
77
+ * `actor` must be `human:<id>`; the rule is `appendAttestation`'s and is not
78
+ * re-stated here, so an `agent:` actor is refused `actor-not-human` before
79
+ * anything is read.
80
+ */
81
+ export function appendBootstrapAttestation(logPath, policyPath, actor, options = {}) {
82
+ if (!/^human:.+/u.test(actor)) {
83
+ // Decided before the log is read, so the refusal is the same whatever state
84
+ // the store is in. `appendAttestation` would refuse it too; answering here
85
+ // keeps an agent actor from learning anything about the log first.
86
+ return appendAttestation(logPath, policyPath, actor, options);
87
+ }
88
+ const read = readVerifiedRecords(logPath, options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir });
89
+ if (!read.ok)
90
+ return { ok: false, error: { code: read.code, message: read.message } };
91
+ let bytes;
92
+ try {
93
+ bytes = readFileSync(policyPath);
94
+ }
95
+ catch (cause) {
96
+ return {
97
+ ok: false,
98
+ error: {
99
+ code: "io",
100
+ message: `policy ${policyPath} could not be read for attestation: ${detail(cause)}`,
101
+ },
102
+ };
103
+ }
104
+ const status = checkAttestationOfBytes(read.records, bytes);
105
+ if (status.status === "attested") {
106
+ const by = attesterAt(read.records, status.seq);
107
+ return {
108
+ ok: false,
109
+ error: {
110
+ code: "policy-already-attested",
111
+ message: `${policyPath} already matches its attestation at seq ${String(status.seq)}${by === null ? "" : ` by ${by}`}; the bootstrap attests a store's first policy only, and nothing was appended`,
112
+ seq: status.seq,
113
+ attested_by: by,
114
+ },
115
+ };
116
+ }
117
+ if (status.status === "hash-mismatch") {
118
+ const by = attesterAt(read.records, status.seq);
119
+ return {
120
+ ok: false,
121
+ error: {
122
+ code: "policy-amendment-required",
123
+ message: `${policyPath} differs from the policy attested at seq ${String(status.seq)}${by === null ? "" : ` by ${by}`} (attested ${status.attestedSha256}, live ${status.liveSha256}); a change to an attested policy is an amendment, and an amendment is the approver's act through a channel (\`approval policy amend\` or a proposal they tap), never a re-run of the bootstrap. Nothing was appended`,
124
+ seq: status.seq,
125
+ attested_by: by,
126
+ },
127
+ };
128
+ }
129
+ return appendAttestation(logPath, policyPath, actor, {
130
+ ...options,
131
+ expectedSha256: policyBytesHash(bytes),
132
+ expectedHead: read.head,
133
+ });
134
+ }
135
+ //# sourceMappingURL=attest-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attest-bootstrap.js","sourceRoot":"","sources":["../../../src/core/attest-bootstrap.ts"],"names":[],"mappings":"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"}