approval-md 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/README.md +629 -559
  2. package/SPEC.md +99 -24
  3. package/dist/src/adapters/agentmail.d.ts +426 -0
  4. package/dist/src/adapters/agentmail.js +2 -2
  5. package/dist/src/adapters/conformance.d.ts +149 -0
  6. package/dist/src/adapters/contract.d.ts +628 -0
  7. package/dist/src/adapters/contract.js +110 -16
  8. package/dist/src/adapters/contract.js.map +1 -1
  9. package/dist/src/adapters/email.d.ts +324 -0
  10. package/dist/src/adapters/env-passphrase.d.ts +93 -0
  11. package/dist/src/adapters/public.d.ts +11 -0
  12. package/dist/src/adapters/public.js +11 -0
  13. package/dist/src/adapters/public.js.map +1 -0
  14. package/dist/src/adapters/registry.d.ts +59 -0
  15. package/dist/src/adapters/registry.js +2 -1
  16. package/dist/src/adapters/registry.js.map +1 -1
  17. package/dist/src/adapters/smtp.d.ts +213 -0
  18. package/dist/src/adapters/vault-provider.d.ts +114 -0
  19. package/dist/src/adapters/vault-provider.js +3 -3
  20. package/dist/src/adapters/zzz.d.ts +66 -0
  21. package/dist/src/adapters/zzz.js +299 -0
  22. package/dist/src/adapters/zzz.js.map +1 -0
  23. package/dist/src/channels/batch.d.ts +109 -0
  24. package/dist/src/channels/cli.d.ts +193 -0
  25. package/dist/src/channels/conformance.d.ts +92 -0
  26. package/dist/src/channels/contract.d.ts +656 -0
  27. package/dist/src/channels/contract.js +200 -7
  28. package/dist/src/channels/contract.js.map +1 -1
  29. package/dist/src/channels/payload-view.d.ts +35 -0
  30. package/dist/src/channels/render-queue.d.ts +149 -0
  31. package/dist/src/channels/tagging.d.ts +196 -0
  32. package/dist/src/channels/telegram.d.ts +1944 -0
  33. package/dist/src/channels/telegram.js +218 -23
  34. package/dist/src/channels/telegram.js.map +1 -1
  35. package/dist/src/channels/web.d.ts +350 -0
  36. package/dist/src/channels/web.js +17 -0
  37. package/dist/src/channels/web.js.map +1 -1
  38. package/dist/src/cli/adapter.d.ts +90 -0
  39. package/dist/src/cli/adapter.js +25 -15
  40. package/dist/src/cli/adapter.js.map +1 -1
  41. package/dist/src/cli/amend.d.ts +59 -0
  42. package/dist/src/cli/amend.js +214 -30
  43. package/dist/src/cli/amend.js.map +1 -1
  44. package/dist/src/cli/args.d.ts +43 -0
  45. package/dist/src/cli/attest.d.ts +50 -0
  46. package/dist/src/cli/attest.js +134 -7
  47. package/dist/src/cli/attest.js.map +1 -1
  48. package/dist/src/cli/audit-card.d.ts +62 -0
  49. package/dist/src/cli/audit.d.ts +59 -0
  50. package/dist/src/cli/channel-telegram.d.ts +879 -0
  51. package/dist/src/cli/channel-telegram.js +311 -13
  52. package/dist/src/cli/channel-telegram.js.map +1 -1
  53. package/dist/src/cli/channel-web.d.ts +131 -0
  54. package/dist/src/cli/channel.d.ts +80 -0
  55. package/dist/src/cli/channel.js +9 -0
  56. package/dist/src/cli/channel.js.map +1 -1
  57. package/dist/src/cli/checkpoint-tap.d.ts +169 -0
  58. package/dist/src/cli/codex-bridge.d.ts +819 -0
  59. package/dist/src/cli/codex-bridge.js +1607 -0
  60. package/dist/src/cli/codex-bridge.js.map +1 -0
  61. package/dist/src/cli/codex.d.ts +2 -0
  62. package/dist/src/cli/codex.js +469 -0
  63. package/dist/src/cli/codex.js.map +1 -0
  64. package/dist/src/cli/coverage.d.ts +61 -0
  65. package/dist/src/cli/daemon.d.ts +120 -0
  66. package/dist/src/cli/daemon.js +4 -1
  67. package/dist/src/cli/daemon.js.map +1 -1
  68. package/dist/src/cli/doctor.d.ts +129 -0
  69. package/dist/src/cli/doctor.js +586 -17
  70. package/dist/src/cli/doctor.js.map +1 -1
  71. package/dist/src/cli/env.d.ts +65 -0
  72. package/dist/src/cli/execute.d.ts +202 -0
  73. package/dist/src/cli/execute.js +25 -2
  74. package/dist/src/cli/execute.js.map +1 -1
  75. package/dist/src/cli/exit-codes.d.ts +73 -0
  76. package/dist/src/cli/feedback.d.ts +60 -0
  77. package/dist/src/cli/gate-window.d.ts +40 -0
  78. package/dist/src/cli/gate.d.ts +68 -0
  79. package/dist/src/cli/git-scope.d.ts +190 -0
  80. package/dist/src/cli/gloss-attach.d.ts +85 -0
  81. package/dist/src/cli/gloss-codex-child.d.ts +9 -0
  82. package/dist/src/cli/gloss-codex.d.ts +24 -0
  83. package/dist/src/cli/gloss-options.d.ts +42 -0
  84. package/dist/src/cli/gloss.d.ts +265 -0
  85. package/dist/src/cli/help.d.ts +107 -0
  86. package/dist/src/cli/help.js +320 -93
  87. package/dist/src/cli/help.js.map +1 -1
  88. package/dist/src/cli/hook-codex.d.ts +126 -0
  89. package/dist/src/cli/hook-codex.js +226 -0
  90. package/dist/src/cli/hook-codex.js.map +1 -0
  91. package/dist/src/cli/hook.d.ts +787 -0
  92. package/dist/src/cli/hook.js +1235 -181
  93. package/dist/src/cli/hook.js.map +1 -1
  94. package/dist/src/cli/import.d.ts +35 -0
  95. package/dist/src/cli/import.js +1 -1
  96. package/dist/src/cli/import.js.map +1 -1
  97. package/dist/src/cli/init.d.ts +84 -0
  98. package/dist/src/cli/init.js +2 -2
  99. package/dist/src/cli/init.js.map +1 -1
  100. package/dist/src/cli/instructions.d.ts +23 -0
  101. package/dist/src/cli/journal.d.ts +41 -0
  102. package/dist/src/cli/log-advance.d.ts +287 -0
  103. package/dist/src/cli/log-advance.js +102 -11
  104. package/dist/src/cli/log-advance.js.map +1 -1
  105. package/dist/src/cli/log-anchor.d.ts +176 -0
  106. package/dist/src/cli/log-checkpoint.d.ts +22 -0
  107. package/dist/src/cli/log-sync.d.ts +243 -0
  108. package/dist/src/cli/log-verbs.d.ts +16 -0
  109. package/dist/src/cli/log-verbs.js +7 -1
  110. package/dist/src/cli/log-verbs.js.map +1 -1
  111. package/dist/src/cli/long-help.d.ts +70 -0
  112. package/dist/src/cli/main.d.ts +77 -0
  113. package/dist/src/cli/main.js +159 -7
  114. package/dist/src/cli/main.js.map +1 -1
  115. package/dist/src/cli/mcp.d.ts +52 -0
  116. package/dist/src/cli/paths.d.ts +56 -0
  117. package/dist/src/cli/payload.d.ts +58 -0
  118. package/dist/src/cli/policy-apply.d.ts +195 -0
  119. package/dist/src/cli/policy-apply.js +573 -0
  120. package/dist/src/cli/policy-apply.js.map +1 -0
  121. package/dist/src/cli/policy.d.ts +43 -0
  122. package/dist/src/cli/policy.js +14 -1
  123. package/dist/src/cli/policy.js.map +1 -1
  124. package/dist/src/cli/preflight.d.ts +501 -0
  125. package/dist/src/cli/preflight.js +689 -45
  126. package/dist/src/cli/preflight.js.map +1 -1
  127. package/dist/src/cli/progress.d.ts +78 -0
  128. package/dist/src/cli/prompt.d.ts +209 -0
  129. package/dist/src/cli/quickstart.d.ts +46 -0
  130. package/dist/src/cli/quickstart.js +297 -0
  131. package/dist/src/cli/quickstart.js.map +1 -0
  132. package/dist/src/cli/records.d.ts +34 -0
  133. package/dist/src/cli/render.d.ts +22 -0
  134. package/dist/src/cli/sandbox.d.ts +51 -0
  135. package/dist/src/cli/sandbox.js +17 -1
  136. package/dist/src/cli/sandbox.js.map +1 -1
  137. package/dist/src/cli/scaffold.d.ts +79 -0
  138. package/dist/src/cli/scaffold.js +1 -1
  139. package/dist/src/cli/setup-adapter.d.ts +137 -0
  140. package/dist/src/cli/setup-adapter.js +38 -4
  141. package/dist/src/cli/setup-adapter.js.map +1 -1
  142. package/dist/src/cli/setup-channel.d.ts +126 -0
  143. package/dist/src/cli/setup-channel.js +28 -1
  144. package/dist/src/cli/setup-channel.js.map +1 -1
  145. package/dist/src/cli/setup-checkpoint.d.ts +57 -0
  146. package/dist/src/cli/setup-common.d.ts +277 -0
  147. package/dist/src/cli/setup-common.js +3 -2
  148. package/dist/src/cli/setup-common.js.map +1 -1
  149. package/dist/src/cli/setup-flow.d.ts +287 -0
  150. package/dist/src/cli/setup-service.d.ts +96 -0
  151. package/dist/src/cli/setup.d.ts +204 -0
  152. package/dist/src/cli/setup.js +94 -2
  153. package/dist/src/cli/setup.js.map +1 -1
  154. package/dist/src/cli/style.d.ts +320 -0
  155. package/dist/src/cli/token.d.ts +39 -0
  156. package/dist/src/cli/up.d.ts +155 -0
  157. package/dist/src/cli/up.js +119 -53
  158. package/dist/src/cli/up.js.map +1 -1
  159. package/dist/src/cli/usage.d.ts +37 -0
  160. package/dist/src/cli/values.d.ts +40 -0
  161. package/dist/src/cli/values.js +3 -4
  162. package/dist/src/cli/values.js.map +1 -1
  163. package/dist/src/cli/vault.d.ts +59 -0
  164. package/dist/src/cli/vault.js +2 -2
  165. package/dist/src/cli/vault.js.map +1 -1
  166. package/dist/src/cli/verb-registry.d.ts +76 -0
  167. package/dist/src/cli/verb-registry.js +344 -11
  168. package/dist/src/cli/verb-registry.js.map +1 -1
  169. package/dist/src/cli/wordmark.d.ts +31 -0
  170. package/dist/src/cli/wordmark.js +2 -2
  171. package/dist/src/codex/broker.d.ts +229 -0
  172. package/dist/src/codex/broker.js +548 -0
  173. package/dist/src/codex/broker.js.map +1 -0
  174. package/dist/src/codex/doctor.d.ts +13 -0
  175. package/dist/src/codex/doctor.js +41 -0
  176. package/dist/src/codex/doctor.js.map +1 -0
  177. package/dist/src/codex/manifest.d.ts +49 -0
  178. package/dist/src/codex/manifest.js +103 -0
  179. package/dist/src/codex/manifest.js.map +1 -0
  180. package/dist/src/codex/runner.d.ts +178 -0
  181. package/dist/src/codex/runner.js +231 -0
  182. package/dist/src/codex/runner.js.map +1 -0
  183. package/dist/src/codex/serve.d.ts +56 -0
  184. package/dist/src/codex/serve.js +98 -0
  185. package/dist/src/codex/serve.js.map +1 -0
  186. package/dist/src/codex/templates.d.ts +41 -0
  187. package/dist/src/codex/templates.js +319 -0
  188. package/dist/src/codex/templates.js.map +1 -0
  189. package/dist/src/codex/trust.d.ts +19 -0
  190. package/dist/src/codex/trust.js +183 -0
  191. package/dist/src/codex/trust.js.map +1 -0
  192. package/dist/src/codex/workspace-commit.d.ts +219 -0
  193. package/dist/src/codex/workspace-commit.js +549 -0
  194. package/dist/src/codex/workspace-commit.js.map +1 -0
  195. package/dist/src/codex/workspace-plan.d.ts +131 -0
  196. package/dist/src/codex/workspace-plan.js +561 -0
  197. package/dist/src/codex/workspace-plan.js.map +1 -0
  198. package/dist/src/core/actor.d.ts +2 -0
  199. package/dist/src/core/actor.js +5 -0
  200. package/dist/src/core/actor.js.map +1 -0
  201. package/dist/src/core/advance-cycle.d.ts +221 -0
  202. package/dist/src/core/advance-cycle.js +66 -2
  203. package/dist/src/core/advance-cycle.js.map +1 -1
  204. package/dist/src/core/agents-md.d.ts +278 -0
  205. package/dist/src/core/agents-md.js +33 -31
  206. package/dist/src/core/agents-md.js.map +1 -1
  207. package/dist/src/core/apply-patch.d.ts +49 -0
  208. package/dist/src/core/apply-patch.js +266 -0
  209. package/dist/src/core/apply-patch.js.map +1 -0
  210. package/dist/src/core/attest.d.ts +635 -0
  211. package/dist/src/core/attest.js +326 -4
  212. package/dist/src/core/attest.js.map +1 -1
  213. package/dist/src/core/audit.d.ts +510 -0
  214. package/dist/src/core/audit.js +13 -0
  215. package/dist/src/core/audit.js.map +1 -1
  216. package/dist/src/core/budgets.d.ts +238 -0
  217. package/dist/src/core/channel-owner.d.ts +213 -0
  218. package/dist/src/core/channel-owner.js +358 -0
  219. package/dist/src/core/channel-owner.js.map +1 -0
  220. package/dist/src/core/checkpoint.d.ts +500 -0
  221. package/dist/src/core/child-env.d.ts +88 -0
  222. package/dist/src/core/clock.d.ts +52 -0
  223. package/dist/src/core/command-class.d.ts +697 -0
  224. package/dist/src/core/command-class.js +713 -25
  225. package/dist/src/core/command-class.js.map +1 -1
  226. package/dist/src/core/commit-guard.d.ts +272 -0
  227. package/dist/src/core/commit-guard.js +424 -0
  228. package/dist/src/core/commit-guard.js.map +1 -0
  229. package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
  230. package/dist/src/core/coverage-sources/gh.d.ts +48 -0
  231. package/dist/src/core/coverage-sources/git.d.ts +101 -0
  232. package/dist/src/core/coverage.d.ts +217 -0
  233. package/dist/src/core/credential-spec.d.ts +72 -0
  234. package/dist/src/core/daemon-actor.d.ts +45 -0
  235. package/dist/src/core/daemon-actor.js +54 -0
  236. package/dist/src/core/daemon-actor.js.map +1 -0
  237. package/dist/src/core/dark-session.d.ts +432 -0
  238. package/dist/src/core/dark-session.js +266 -82
  239. package/dist/src/core/dark-session.js.map +1 -1
  240. package/dist/src/core/decision-refusal.d.ts +206 -0
  241. package/dist/src/core/decision-refusal.js +24 -2
  242. package/dist/src/core/decision-refusal.js.map +1 -1
  243. package/dist/src/core/env-file.d.ts +455 -0
  244. package/dist/src/core/env-file.js +60 -1
  245. package/dist/src/core/env-file.js.map +1 -1
  246. package/dist/src/core/execute.d.ts +871 -0
  247. package/dist/src/core/execute.js +59 -8
  248. package/dist/src/core/execute.js.map +1 -1
  249. package/dist/src/core/frontmatter.d.ts +78 -0
  250. package/dist/src/core/gate-window.d.ts +312 -0
  251. package/dist/src/core/gate.d.ts +1449 -0
  252. package/dist/src/core/gate.js +149 -14
  253. package/dist/src/core/gate.js.map +1 -1
  254. package/dist/src/core/gesture-refusal.d.ts +166 -0
  255. package/dist/src/core/gesture-refusal.js +188 -0
  256. package/dist/src/core/gesture-refusal.js.map +1 -0
  257. package/dist/src/core/git-run.d.ts +73 -0
  258. package/dist/src/core/harness-version.d.ts +157 -0
  259. package/dist/src/core/harness-version.js +4 -1
  260. package/dist/src/core/harness-version.js.map +1 -1
  261. package/dist/src/core/harness-wait.d.ts +55 -0
  262. package/dist/src/core/head-retry.d.ts +107 -0
  263. package/dist/src/core/instance.d.ts +310 -0
  264. package/dist/src/core/instance.js +113 -0
  265. package/dist/src/core/instance.js.map +1 -1
  266. package/dist/src/core/intake-limits.d.ts +247 -0
  267. package/dist/src/core/jcs.d.ts +52 -0
  268. package/dist/src/core/journal.d.ts +144 -0
  269. package/dist/src/core/live-draw.d.ts +436 -0
  270. package/dist/src/core/log-reconcile.d.ts +89 -0
  271. package/dist/src/core/log-subscribe.d.ts +36 -0
  272. package/dist/src/core/log-subscribe.js +162 -0
  273. package/dist/src/core/log-subscribe.js.map +1 -0
  274. package/dist/src/core/log.d.ts +316 -0
  275. package/dist/src/core/log.js.map +1 -1
  276. package/dist/src/core/loop.d.ts +274 -0
  277. package/dist/src/core/loop.js +11 -0
  278. package/dist/src/core/loop.js.map +1 -1
  279. package/dist/src/core/md-fence.d.ts +41 -0
  280. package/dist/src/core/money.d.ts +147 -0
  281. package/dist/src/core/payload-census.d.ts +74 -0
  282. package/dist/src/core/payload-store.d.ts +175 -0
  283. package/dist/src/core/payload.d.ts +71 -0
  284. package/dist/src/core/policy-diff.d.ts +292 -0
  285. package/dist/src/core/policy-diff.js +27 -4
  286. package/dist/src/core/policy-diff.js.map +1 -1
  287. package/dist/src/core/policy-expectations.d.ts +199 -0
  288. package/dist/src/core/policy-explain.d.ts +160 -0
  289. package/dist/src/core/policy-explain.js +63 -3
  290. package/dist/src/core/policy-explain.js.map +1 -1
  291. package/dist/src/core/policy-load.d.ts +567 -0
  292. package/dist/src/core/policy-load.js +36 -6
  293. package/dist/src/core/policy-load.js.map +1 -1
  294. package/dist/src/core/policy-match.d.ts +324 -0
  295. package/dist/src/core/policy-match.js +72 -9
  296. package/dist/src/core/policy-match.js.map +1 -1
  297. package/dist/src/core/policy-proposal.d.ts +317 -0
  298. package/dist/src/core/policy-proposal.js +102 -2
  299. package/dist/src/core/policy-proposal.js.map +1 -1
  300. package/dist/src/core/prompt-layout.d.ts +221 -0
  301. package/dist/src/core/protected-path-guard.d.ts +566 -0
  302. package/dist/src/core/protected-path-guard.js +848 -55
  303. package/dist/src/core/protected-path-guard.js.map +1 -1
  304. package/dist/src/core/question-preempted.d.ts +141 -0
  305. package/dist/src/core/question-preempted.js +152 -0
  306. package/dist/src/core/question-preempted.js.map +1 -0
  307. package/dist/src/core/read-scope.d.ts +172 -0
  308. package/dist/src/core/read-scope.js +252 -0
  309. package/dist/src/core/read-scope.js.map +1 -0
  310. package/dist/src/core/registration.d.ts +25 -0
  311. package/dist/src/core/reindex.d.ts +99 -0
  312. package/dist/src/core/sampler.d.ts +313 -0
  313. package/dist/src/core/sandbox.d.ts +371 -0
  314. package/dist/src/core/sandbox.js +190 -1
  315. package/dist/src/core/sandbox.js.map +1 -1
  316. package/dist/src/core/seal.d.ts +165 -0
  317. package/dist/src/core/sender-identity.d.ts +476 -0
  318. package/dist/src/core/sender-identity.js +572 -0
  319. package/dist/src/core/sender-identity.js.map +1 -0
  320. package/dist/src/core/shlex.d.ts +102 -0
  321. package/dist/src/core/shlex.js +159 -0
  322. package/dist/src/core/shlex.js.map +1 -0
  323. package/dist/src/core/state.d.ts +505 -0
  324. package/dist/src/core/task-file.d.ts +185 -0
  325. package/dist/src/core/telegram-config.d.ts +93 -0
  326. package/dist/src/core/token.d.ts +409 -0
  327. package/dist/src/core/token.js +21 -38
  328. package/dist/src/core/token.js.map +1 -1
  329. package/dist/src/core/validate.d.ts +138 -0
  330. package/dist/src/core/values.d.ts +147 -0
  331. package/dist/src/core/values.js +36 -1
  332. package/dist/src/core/values.js.map +1 -1
  333. package/dist/src/core/vault.d.ts +291 -0
  334. package/dist/src/core/verified-snapshot.d.ts +204 -0
  335. package/dist/src/core/verify.d.ts +336 -0
  336. package/dist/src/core/version.d.ts +8 -0
  337. package/dist/src/core/wysiwys.d.ts +370 -0
  338. package/dist/src/daemon/advance-child.d.ts +39 -0
  339. package/dist/src/daemon/advance.d.ts +476 -0
  340. package/dist/src/daemon/advance.js +25 -4
  341. package/dist/src/daemon/advance.js.map +1 -1
  342. package/dist/src/daemon/audit.d.ts +87 -0
  343. package/dist/src/daemon/daemon.d.ts +1180 -0
  344. package/dist/src/daemon/daemon.js +9 -0
  345. package/dist/src/daemon/daemon.js.map +1 -1
  346. package/dist/src/daemon/dark-session.d.ts +64 -0
  347. package/dist/src/daemon/draw-child.d.ts +36 -0
  348. package/dist/src/daemon/draw.d.ts +154 -0
  349. package/dist/src/daemon/git-evidence.d.ts +173 -0
  350. package/dist/src/daemon/git-evidence.js +1 -1
  351. package/dist/src/daemon/projection.d.ts +180 -0
  352. package/dist/src/daemon/prune.d.ts +207 -0
  353. package/dist/src/mcp/http.d.ts +113 -0
  354. package/dist/src/mcp/server.d.ts +265 -0
  355. package/dist/src/mcp/server.js +17 -1
  356. package/dist/src/mcp/server.js.map +1 -1
  357. package/docs/adapter-api.md +106 -0
  358. package/docs/cli-reference.md +1316 -63
  359. package/docs/codex-enforced-session.md +103 -0
  360. package/docs/codex-workspace-broker.md +118 -0
  361. package/package.json +14 -2
  362. package/schema/codex-instance.schema.json +82 -0
  363. package/schema/event.schema.json +539 -9
  364. package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
  365. package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
  366. package/schema/fixtures/event/invalid/approval-granted-sender-hashed-false.json +20 -0
  367. package/schema/fixtures/event/invalid/approval-granted-sender-hashed-raw-id.json +20 -0
  368. package/schema/fixtures/event/invalid/audit-gesture-refused-human-actor.json +16 -0
  369. package/schema/fixtures/event/invalid/audit-gesture-refused-no-actor-no-sender.json +15 -0
  370. package/schema/fixtures/event/invalid/audit-gesture-refused-unknown-gesture.json +16 -0
  371. package/schema/fixtures/event/invalid/audit-question-preempted-agent-actor.json +16 -0
  372. package/schema/fixtures/event/invalid/audit-question-preempted-no-question-id.json +16 -0
  373. package/schema/fixtures/event/invalid/audit-question-preempted-unknown-source.json +15 -0
  374. package/schema/fixtures/event/invalid/gate-path-signed-off-absolute-path.json +14 -0
  375. package/schema/fixtures/event/invalid/gate-path-signed-off-agent-actor.json +14 -0
  376. package/schema/fixtures/event/invalid/gate-path-signed-off-missing-path.json +13 -0
  377. package/schema/fixtures/event/valid/approval-granted-sender-hashed.json +20 -0
  378. package/schema/fixtures/event/valid/audit-gesture-refused-review-note.json +21 -0
  379. package/schema/fixtures/event/valid/audit-gesture-refused-sender-key-unavailable.json +19 -0
  380. package/schema/fixtures/event/valid/audit-gesture-refused.json +19 -0
  381. package/schema/fixtures/event/valid/audit-question-preempted-no-verdict.json +16 -0
  382. package/schema/fixtures/event/valid/audit-question-preempted.json +20 -0
  383. package/schema/fixtures/event/valid/gate-path-signed-off.json +14 -0
  384. package/schema/fixtures/event/valid/harness-kind-claude-code.json +23 -0
  385. package/schema/fixtures/event/valid/harness-kind-codex.json +23 -0
  386. package/schema/fixtures/event/valid/harness-kind-cursor.json +23 -0
  387. package/schema/fixtures/event/valid/harness-kind-grok.json +23 -0
  388. package/schema/fixtures/event/valid/harness-kind-muse.json +23 -0
  389. package/schema/fixtures/policy/invalid/senders-half-keyed.json +20 -0
  390. package/schema/fixtures/policy/valid/canonical.json +1 -1
  391. package/schema/fixtures/policy/valid/senders-keyed.json +24 -0
  392. package/schema/fixtures/policy-md/valid/canonical.md +1 -1
  393. package/schema/fixtures/policy-md/valid/with-values.md +5 -7
  394. package/schema/fixtures/values/invalid/class-shaped.json +1 -1
  395. package/schema/fixtures/values/invalid/duplicate-entry.json +1 -1
  396. package/schema/fixtures/values/invalid/non-string-item.json +1 -1
  397. package/schema/fixtures/values/invalid/over-cap.json +1 -1
  398. package/schema/fixtures/values/invalid/unknown-key.json +1 -1
  399. package/schema/fixtures/values/invalid/version-float.json +1 -0
  400. package/schema/fixtures/values/invalid/version-integer.json +1 -0
  401. package/schema/fixtures/values/invalid/version-wrong-string.json +1 -0
  402. package/schema/fixtures/values/valid/empty-lists.json +2 -3
  403. package/schema/fixtures/values/valid/full.json +5 -7
  404. package/schema/fixtures/values/valid/minimal.json +1 -1
  405. package/schema/fixtures/values-md/invalid/schema-invalid.md +5 -3
  406. package/schema/fixtures/values-md/invalid/two-blocks.md +3 -3
  407. package/schema/fixtures/values-md/invalid/unterminated.md +2 -2
  408. package/schema/fixtures/values-md/invalid/version-1.md +69 -0
  409. package/schema/fixtures/values-md/invalid/version-unquoted.md +64 -0
  410. package/schema/fixtures/values-md/invalid/yaml-error.md +2 -2
  411. package/schema/fixtures/values-md/valid/absent.md +1 -1
  412. package/schema/fixtures/values-md/valid/with-values.md +5 -7
  413. package/schema/policy.schema.json +75 -3
  414. package/schema/values.schema.json +7 -11
  415. package/templates/codex/README.md +9 -0
  416. package/schema/fixtures/values/invalid/version-string.json +0 -1
@@ -59,6 +59,35 @@
59
59
  * cost of the alternative (no branch key at all) is an alarm on every worktree
60
60
  * whose session worked entirely outside the payload store's reach.
61
61
  *
62
+ * ## What unit arm A judges, merges included (APRV-374)
63
+ *
64
+ * One commit, base to commit, which is the unit a grant binds and the unit the
65
+ * CI guard judges since APRV-375. The inputs are built by
66
+ * `core/commit-guard.ts`, so the two sides cannot drift apart.
67
+ *
68
+ * A MERGE commit is judged on what it invented and on nothing else. `git log
69
+ * --name-only` reports no path at all for a merge, so until APRV-374 every
70
+ * merge dropped out of arm A, which is right for an ordinary merge and wrong
71
+ * for the evil one: a conflict resolution, or a hand edit made while resolving,
72
+ * is the merge commit's own work, made in the checkout that made the merge, and
73
+ * no other commit carries those bytes. So a merge is judged for the paths whose
74
+ * DENSE COMBINED PATCH (`git log --cc`, {@link denseCombinedPaths}) is
75
+ * non-empty, against its FIRST PARENT, which is the state the checkout was in
76
+ * before the merge and therefore the before-state a grant for the resolution
77
+ * would have bound.
78
+ *
79
+ * The dense patch and not `--cc --name-only`, which over-reports: a merge blob
80
+ * differs from every parent blob whenever both sides edited one file, so
81
+ * `--name-only` lists a file two lanes happened to edit concurrently and git
82
+ * merged without a human in the room. Replaying that as the merge's own change
83
+ * would report dark for work every side of it had evidence for, which is the
84
+ * class of false alarm APRV-369 and APRV-375 exist to remove. The dense patch
85
+ * is empty for exactly those merges and non-empty for the resolutions.
86
+ *
87
+ * Scope is the guard's scope: guarded paths. A merge that resolved a conflict
88
+ * in a file no policy protects is not this detector's business, so the dense
89
+ * question is only ever asked about paths {@link isGuardedPath} accepts.
90
+ *
62
91
  * ## Fail closed in the report
63
92
  *
64
93
  * Uncertainty is never "fine". A log that does not verify, a payload whose
@@ -90,9 +119,13 @@
90
119
  *
91
120
  * ## Layout
92
121
  *
93
- * The evaluator ({@link evaluateDarkSessions}) is PURE: no IO, no clock, no
94
- * git, so a fixture is enough to test it and a repository is never required.
95
- * The observing half below the fold does run git and read the payload store,
122
+ * The evaluator ({@link evaluateDarkSessions}) takes no clock and reads no
123
+ * file, so a fixture drives everything but arm A's replay: the ONE thing it
124
+ * runs git for is reading the blobs of a commit it is judging, which cannot be
125
+ * carried in the observation because which blobs are wanted is not known until
126
+ * the verdict is being computed. A fixture whose commits change no guarded path
127
+ * needs no repository at all. The observing half below the fold runs the rest
128
+ * of the git and reads the payload store,
96
129
  * and it lives here rather than under `daemon/` because `approval doctor`
97
130
  * reports the same findings and `src/cli/` may not import `src/daemon/`
98
131
  * (APRV-59). The one thing that stays in `daemon/dark-session.ts` is the
@@ -103,6 +136,7 @@ import { existsSync, readFileSync, statSync } from "node:fs";
103
136
  import { basename, join } from "node:path";
104
137
  import { policyBytesHash } from "./attest.js";
105
138
  import { childEnvironment } from "./child-env.js";
139
+ import { commitGuardInputParts, denseCombinedPaths } from "./commit-guard.js";
106
140
  import { tick as readClock } from "./clock.js";
107
141
  import { loadPayload, payloadStoreDirFor } from "./payload-store.js";
108
142
  import { loadPolicy } from "./policy-load.js";
@@ -141,6 +175,16 @@ export const DARK_SESSION_CODES = [
141
175
  "no-records",
142
176
  /** Arm A: a guarded path changed and the log carries no evidence for it. */
143
177
  "no-evidence",
178
+ /**
179
+ * Arm A, and EVERY failing commit arrived here through a merge (APRV-369).
180
+ *
181
+ * The same failure as `no-evidence` and the same `dark` verdict — nothing is
182
+ * excused by it — reported under its own code because the checkout it names
183
+ * is the one that SYNCED the change rather than the one that made it. The
184
+ * repair is in whatever branch or worktree authored the commit, which the
185
+ * detail names.
186
+ */
187
+ "no-evidence-merged",
144
188
  /** Exempt: the commits touch only the daemon's own append surface. */
145
189
  "evidence-surface",
146
190
  /** Exempt: authored by the daemon's own git identity. */
@@ -156,6 +200,18 @@ export const DARK_SESSION_CODES = [
156
200
  /** Undetermined: git named no usable date for the activity. */
157
201
  "activity-undated",
158
202
  ];
203
+ /**
204
+ * The codes a `dark` verdict can carry, and therefore the ones that reach the
205
+ * log on an `audit.dark_session` record (APRV-369).
206
+ *
207
+ * A separate, smaller list than {@link DARK_SESSION_CODES} because it is the
208
+ * one the event schema constrains: an exempt or undetermined subject is never
209
+ * recorded, so its code has no business in a write-boundary enum. Pinned equal
210
+ * to that enum by a test, for the reason APRV-358 gave: a code the sweep can
211
+ * produce and the schema refuses is an observation that never reaches a human,
212
+ * and nothing fails loudly when it happens.
213
+ */
214
+ export const DARK_VERDICT_CODES = ["no-records", "no-evidence", "no-evidence-merged"];
159
215
  /** The observation key: one subject, one state of the world. */
160
216
  export function observationKey(subject, newestSha, born) {
161
217
  return `${subject}@${newestSha ?? "no-commit"}#${born ?? "unknown-birth"}`;
@@ -262,6 +318,17 @@ function attribute(checkout, windowed, payloadFor) {
262
318
  }
263
319
  return { seqs, unresolved };
264
320
  }
321
+ /**
322
+ * Is this a merge commit, as far as the observer could tell?
323
+ *
324
+ * Unknown parents answer `false`, which is the modest direction for a SENTENCE:
325
+ * an observation that does not know a commit's parents does not get to call it
326
+ * a merge. Nothing about the verdict turns on this, only the wording of the row
327
+ * (APRV-374).
328
+ */
329
+ function isMergeCommit(commit) {
330
+ return (commit.parents ?? []).length > 1;
331
+ }
265
332
  /** Did this commit touch anything but the daemon's own append surface? */
266
333
  function touchesOnlyEvidence(commit) {
267
334
  return commit.changedPaths.length > 0 && commit.changedPaths.every((path) => isExemptPath(path));
@@ -288,6 +355,18 @@ export function evaluateDarkSessions(input) {
288
355
  coverage,
289
356
  };
290
357
  }
358
+ /**
359
+ * An observed commit's date, as the guard's APRV-339 pair.
360
+ *
361
+ * The sweep asks git for `%aI` alone, so both halves carry it: that is exactly
362
+ * what the core reads a bare date as, "this is all the caller has, and it
363
+ * answers both questions". A second date would only differ on an amended or
364
+ * rebased commit, and a commit the primary checkout has already made is not
365
+ * going to be amended under the sweep's feet.
366
+ */
367
+ function datesOf(commit) {
368
+ return { author: commit.ts, committer: commit.ts };
369
+ }
291
370
  function base(checkout, verdict, code, guardedPaths, attributed, detail) {
292
371
  const newestSha = checkout.commits.length === 0 ? null : checkout.commits[0].sha;
293
372
  return {
@@ -337,17 +416,6 @@ function judge(checkout, input) {
337
416
  const guardedPaths = [...guarded].sort();
338
417
  const failures = [];
339
418
  if (guardedPaths.length > 0) {
340
- const changeTs = new Map();
341
- for (const commit of substantive) {
342
- for (const path of commit.changedPaths) {
343
- if (!guarded.has(path))
344
- continue;
345
- const seen = changeTs.get(path);
346
- if (seen === undefined || (commit.ts !== null && seen !== null && commit.ts > seen)) {
347
- changeTs.set(path, commit.ts);
348
- }
349
- }
350
- }
351
419
  const logWindow = {
352
420
  firstSeq: records.length === 0 ? null : records[0].seq,
353
421
  lastSeq: records.length === 0 ? null : records[records.length - 1].seq,
@@ -356,66 +424,129 @@ function judge(checkout, input) {
356
424
  base: input.window.from,
357
425
  head: `${checkout.name}@${substantive[0].sha.slice(0, 12)}`,
358
426
  };
359
- // APRV-202 made the guard ask whether THIS change was granted, so it needs
360
- // the path's bytes on both sides of the change. Here the change is the span
361
- // of substantive commits that touched the path: base is the parent of the
362
- // oldest of them, head is the newest. A blob git cannot show, or one that
363
- // is binary, answers null and the guard fails the path as
364
- // change-unreadable rather than falling back to the path-level rule.
365
- const blobCache = new Map();
366
- const blobsFor = (path) => {
367
- const cached = blobCache.get(path);
368
- if (cached !== undefined)
369
- return cached;
370
- const touching = substantive.filter((commit) => commit.changedPaths.includes(path));
371
- let value = null;
372
- if (touching.length > 0) {
373
- const byTime = [...touching].sort((a, b) => (a.ts ?? "").localeCompare(b.ts ?? ""));
374
- const baseRev = `${byTime[0].sha}^`;
375
- const headRev = byTime[byTime.length - 1].sha;
376
- const inTree = (rev) => {
377
- const listed = git(["ls-tree", "--name-only", rev, "--", path], checkout.root);
378
- return listed.ok && listed.stdout.trim().length > 0;
379
- };
380
- const show = (rev) => {
381
- const shown = git(["show", `${rev}:${path}`], checkout.root);
382
- return shown.ok ? shown.stdout : null;
383
- };
384
- const baseHas = inTree(baseRev);
385
- const headHas = inTree(headRev);
386
- const baseText = baseHas ? show(baseRev) : null;
387
- const headText = headHas ? show(headRev) : null;
388
- const unreadable = (baseHas && baseText === null) ||
389
- (headHas && headText === null) ||
390
- (baseText !== null && baseText.includes("\u0000")) ||
391
- (headText !== null && headText.includes("\u0000"));
392
- if (!unreadable)
393
- value = { base: baseText, head: headText };
394
- }
395
- blobCache.set(path, value);
396
- return value;
427
+ // ONE COMMIT AT A TIME, and that is the whole of APRV-369's fix.
428
+ //
429
+ // This used to replay the UNION: base was the parent of the oldest
430
+ // in-window commit that touched the path and head was the newest, so a day
431
+ // in which four pull requests each edited SPEC.md arrived here as one
432
+ // change spanning all four. Replayed that way the union defeats the guard's
433
+ // own evidence rule — a grant binds a before-state that no longer occurs at
434
+ // the union's base, because an earlier commit in the span already moved
435
+ // those bytes — and on a 200 KB file it also exhausts the exact replay's
436
+ // byte budget. The CI guard never asks that question, and since APRV-375 it
437
+ // does not ask it of a pull request either: both sides judge one commit,
438
+ // because a grant binds one edit.
439
+ //
440
+ // Per commit the two sides ask the same question of the same bytes against
441
+ // the same records, and they agree. It is also cheaper: the sixteen
442
+ // per-commit replays of that window finish in about 1.2 seconds, where the
443
+ // single union replay reached its limit and gave up.
444
+ //
445
+ // The per-commit INPUTS — the blobs at the commit and at its first parent —
446
+ // are built by `core/commit-guard.ts` (APRV-375), which is the same helper
447
+ // the CI guard uses. Two copies of this construction were two code paths to
448
+ // keep in step, and keeping them in step by hand is what APRV-369 was filed
449
+ // about.
450
+ //
451
+ // WHOLE-FILE evidence (a sign-off, APRV-338; an organ attestation,
452
+ // APRV-272) is matched at the head of the RANGE being judged, because it
453
+ // says a human read the file as it stood there. The CI guard's range is a
454
+ // pull request, so its head is the pull request's
455
+ // (`core/commit-guard.ts`'s `digestsAt`). ARM A HAS NO RANGE: it judges
456
+ // commits that are already merged, each of which passed its own pull
457
+ // request and was ratified, if at all, at that pull request's head. So the
458
+ // anchor here is the COMMIT, which is what APRV-369 shipped and what its
459
+ // fixture pins — the middle commit of three merged pull requests is
460
+ // evidenced by a sign-off over its own bytes, and anchoring the sweep at
461
+ // this checkout's HEAD would report it dark for a change CI passed, which
462
+ // is the disagreement APRV-369 exists to remove.
463
+ //
464
+ // The residual, stated rather than hidden: a MULTI-COMMIT pull request
465
+ // whose earlier commits were rescued by a sign-off at its head merges into
466
+ // main as several commits, and this sweep credits none of them, because no
467
+ // in-window commit's blob equals the ratified bytes. That is a false alarm
468
+ // in a health report and never a hole in the gate. The right anchor for it
469
+ // is the merge that brought the commit in, read through that merge's second
470
+ // parent, which is a different traversal from the one APRV-374 added and
471
+ // changes non-merge commits too: APRV-377 carries it.
472
+ const read = (args) => {
473
+ const run = git([...args], checkout.root);
474
+ return run.ok ? run.stdout : null;
397
475
  };
398
- const report = evaluateProtectedPaths({
399
- changedPaths: guardedPaths,
400
- blobsFor,
401
- records,
402
- logStatus: "ok",
403
- policyProtectedPaths: input.policyProtectedPaths,
404
- policySha256AtHead: input.policySha256,
405
- policyPath: input.policyPath,
406
- payloadFor: input.payloadFor,
407
- changeTsFor: (path) => changeTs.get(path) ?? null,
408
- ...(input.lookbackMs === undefined ? {} : { lookbackMs: input.lookbackMs }),
409
- window: logWindow,
410
- });
411
- for (const finding of report.findings)
412
- if (!finding.ok)
413
- failures.push(finding);
476
+ for (const commit of substantive) {
477
+ const changed = commit.changedPaths.filter((path) => guarded.has(path)).sort();
478
+ // A MERGE arrives here carrying the paths its result differs from every
479
+ // parent on, and nothing else (APRV-374): its resolution, which is the
480
+ // merge's own work and which the observer asked git for with the dense
481
+ // combined question. An ordinary merge carries none and costs nothing
482
+ // here, exactly as it did when a merge could carry no path at all.
483
+ if (changed.length === 0)
484
+ continue;
485
+ const parts = commitGuardInputParts(read, {
486
+ sha: commit.sha,
487
+ ts: datesOf(commit),
488
+ // The base is the first parent, which for a merge is the state this
489
+ // checkout was in before it: the before-state a grant for the
490
+ // resolution would have bound. Passing the parents also lets a root
491
+ // commit be judged as the add it is.
492
+ ...(commit.parents === undefined ? {} : { parents: commit.parents }),
493
+ });
494
+ const report = evaluateProtectedPaths({
495
+ changedPaths: changed,
496
+ blobsFor: parts.blobsFor,
497
+ records,
498
+ logStatus: "ok",
499
+ policyProtectedPaths: input.policyProtectedPaths,
500
+ policySha256AtHead: input.policySha256,
501
+ policyPath: input.policyPath,
502
+ organSha256AtHead: parts.sha256At,
503
+ pathSha256AtHead: parts.sha256At,
504
+ payloadFor: input.payloadFor,
505
+ changeTsFor: parts.changeTsFor,
506
+ ...(input.lookbackMs === undefined ? {} : { lookbackMs: input.lookbackMs }),
507
+ window: { ...logWindow, base: parts.window.base, head: parts.window.head },
508
+ });
509
+ for (const finding of report.findings) {
510
+ if (!finding.ok)
511
+ failures.push({ commit, finding });
512
+ }
513
+ }
414
514
  }
415
515
  const attribution = attribute(checkout, inWindow(records, input.window), input.payloadFor);
416
516
  if (failures.length > 0) {
417
- return base(checkout, "dark", "no-evidence", guardedPaths, attribution.seqs, `${where}: ${String(failures.length)} guarded path(s) changed here in ${input.window.from}..${input.window.to} with no evidence in the log that a human decided them — ${failures
418
- .map((finding) => `${finding.path}: ${finding.detail}`)
517
+ // APRV-369's attribution half. A commit that is not on this checkout's own
518
+ // first-parent history arrived inside a merge: it was authored on a branch,
519
+ // in a worktree or by somebody else, and reached here by fast-forward.
520
+ // Saying "this checkout shows git activity the log carries no record of"
521
+ // about such a commit names the checkout that SYNCED it, which is the one
522
+ // place the work certainly did not happen.
523
+ //
524
+ // The verdict stays `dark` whether the failing commits were merged in or
525
+ // made here. This task removes a false alarm by asking the right question,
526
+ // and opening a hole while it was at it would be a second bug wearing the
527
+ // first one's clothes. What changes is the code and the sentence: the row
528
+ // names the commits it judged (AC3) and says where each of them came from.
529
+ const merged = failures.filter((failure) => failure.commit.arrivedByMerge === true);
530
+ const allMerged = merged.length === failures.length;
531
+ const judged = [...new Set(failures.map((failure) => failure.commit.sha.slice(0, 12)))];
532
+ const origin = allMerged
533
+ ? "Every one of them reached this checkout through a merge rather than being authored here, so the edit was made in whatever branch or worktree the commit came from and this checkout only synced it."
534
+ : merged.length > 0
535
+ ? `${String(merged.length)} of them reached this checkout through a merge rather than being authored here.`
536
+ : "They are on this checkout's own first-parent history, so they were made here.";
537
+ // A merge resolution says something a sha alone does not: these bytes are
538
+ // the MERGE's own, carried by no parent, so the place to look is whoever
539
+ // resolved that merge rather than either side of it (APRV-374).
540
+ const resolutions = [
541
+ ...new Set(failures
542
+ .filter((failure) => isMergeCommit(failure.commit))
543
+ .map((failure) => failure.commit.sha.slice(0, 12))),
544
+ ];
545
+ const resolved = resolutions.length === 0
546
+ ? ""
547
+ : ` ${resolutions.join(", ")} ${resolutions.length === 1 ? "is a merge" : "are merges"} judged on the resolution itself, the bytes the merge carries that no parent carried, against the first parent.`;
548
+ return base(checkout, "dark", allMerged ? "no-evidence-merged" : "no-evidence", guardedPaths, attribution.seqs, `${where}: ${String(failures.length)} guarded-path change(s) in ${input.window.from}..${input.window.to} carry no evidence in the log that a human decided them. Judged commit(s): ${judged.join(", ")}. ${origin}${resolved} — ${failures
549
+ .map((failure) => `${failure.commit.sha.slice(0, 12)} ${failure.finding.path}${isMergeCommit(failure.commit) ? " (merge resolution)" : ""}: ${failure.finding.detail}`)
419
550
  .join(" | ")}`);
420
551
  }
421
552
  // ---------------------------------------------------------------------
@@ -587,24 +718,40 @@ function trunkOf(root) {
587
718
  }
588
719
  return null;
589
720
  }
590
- /** Parse `git log`'s record-separated output into commits. */
591
- function parseCommits(text, ref) {
721
+ /**
722
+ * Parse `git log`'s record-separated output into commits.
723
+ *
724
+ * `firstParent` is the set of shas on the checkout's own first-parent history
725
+ * (APRV-369). A commit outside it is reachable from HEAD only through a merge,
726
+ * so it was authored somewhere else and arrived here. An empty set — git would
727
+ * not answer — marks nothing, which attributes every commit to this checkout:
728
+ * the direction that claims less about where work happened.
729
+ */
730
+ function parseCommits(text, ref, firstParent, mergePaths) {
592
731
  const commits = [];
593
732
  for (const chunk of text.split(RS)) {
594
733
  const lines = chunk.split("\n").filter((line) => line.length > 0);
595
734
  const header = lines.shift();
596
735
  if (header === undefined)
597
736
  continue;
598
- const [sha, ts, author, email] = header.split(FS);
737
+ const [sha, ts, author, email, parents] = header.split(FS);
599
738
  if (sha === undefined || sha.length === 0)
600
739
  continue;
740
+ const parentList = (parents ?? "")
741
+ .split(" ")
742
+ .map((part) => part.trim())
743
+ .filter((part) => part.length > 0);
601
744
  commits.push({
602
745
  sha,
603
746
  ts: ts === undefined || ts.length === 0 ? null : ts,
604
747
  author: author ?? "",
605
748
  authorEmail: (email ?? "").toLowerCase(),
606
- changedPaths: lines,
749
+ // `--name-only` reports nothing for a merge, so a merge's own work is
750
+ // asked for separately and by a different question (APRV-374).
751
+ changedPaths: parentList.length > 1 ? [...mergePaths(sha)] : lines,
752
+ parents: parentList,
607
753
  ref,
754
+ ...(firstParent.size > 0 && !firstParent.has(sha) ? { arrivedByMerge: true } : {}),
608
755
  });
609
756
  }
610
757
  return commits;
@@ -617,15 +764,21 @@ function parseCommits(text, ref) {
617
764
  * would attribute every merged commit to whichever worktree happened to branch
618
765
  * from it. For the primary the range is plain `HEAD`, because the primary's own
619
766
  * commits are exactly what arm A is there to check.
767
+ *
768
+ * `protectedPaths` is the policy's widening list, and it is here for one
769
+ * reason: a merge commit's paths are asked for with a git invocation PER
770
+ * CANDIDATE PATH (APRV-374), so the question is only worth asking about paths
771
+ * the guard could have an opinion on. It narrows nothing a non-merge commit
772
+ * reports.
620
773
  */
621
- function commitsOf(checkout, trunk, from, to) {
774
+ function commitsOf(checkout, trunk, from, to, protectedPaths) {
622
775
  const range = checkout.primary || trunk === null ? ["HEAD"] : ["HEAD", "--not", trunk];
623
776
  const run = git([
624
777
  "log",
625
778
  ...range,
626
779
  `--since=${from}`,
627
780
  `--until=${to}`,
628
- `--pretty=format:${RS}%H${FS}%aI${FS}%an <%ae>${FS}%ae`,
781
+ `--pretty=format:${RS}%H${FS}%aI${FS}%an <%ae>${FS}%ae${FS}%P`,
629
782
  "--name-only",
630
783
  ], checkout.root);
631
784
  if (!run.ok) {
@@ -634,10 +787,38 @@ function commitsOf(checkout, trunk, from, to) {
634
787
  message: `\`git log\` failed in ${checkout.root}: ${run.stderr.trim() || "no output"}`,
635
788
  };
636
789
  }
637
- return { ok: true, commits: parseCommits(run.stdout, checkout.branch ?? "HEAD") };
790
+ // The checkout's own first-parent history over the same window (APRV-369).
791
+ // Every commit this checkout MADE is on it; everything that arrived inside a
792
+ // merge — a lane's commits reaching the primary through a pull request, most
793
+ // of all — is not. A failure to answer leaves the set empty, which marks
794
+ // nothing and attributes everything here, the modest direction.
795
+ const spine = git(["rev-list", "--first-parent", ...range, `--since=${from}`, `--until=${to}`], checkout.root);
796
+ const firstParent = new Set(spine.ok ? spine.stdout.split("\n").map((line) => line.trim()).filter((line) => line.length > 0) : []);
797
+ // A merge's own work, through the same helper the CI guard judges a pull
798
+ // request's merges with (APRV-374, `core/commit-guard.ts`). Git answers with
799
+ // nothing at all when it cannot be run, so a merge nobody could ask about is
800
+ // reported as having changed nothing, which is the same place it stood
801
+ // before this question was asked.
802
+ const read = (args) => {
803
+ const attempt = git([...args], checkout.root);
804
+ return attempt.ok ? attempt.stdout : null;
805
+ };
806
+ const mergePaths = (sha) => denseCombinedPaths(read, sha, (path) => isGuardedPath(path, protectedPaths));
807
+ return {
808
+ ok: true,
809
+ commits: parseCommits(run.stdout, checkout.branch ?? "HEAD", firstParent, mergePaths),
810
+ };
638
811
  }
639
- /** Everything git could tell the sweep about a repository in one window. */
640
- export function observeGitActivity(root, from, to) {
812
+ /**
813
+ * Everything git could tell the sweep about a repository in one window.
814
+ *
815
+ * `protectedPaths` is the policy's `protected_paths`, and omitting it asks the
816
+ * merge question about the BUILT-IN guarded set only. That is the fail-closed
817
+ * direction for a caller that has no policy to hand: it narrows which merges
818
+ * are examined and never which evidence is required, and
819
+ * {@link reportDarkSessions} always passes the loaded list.
820
+ */
821
+ export function observeGitActivity(root, from, to, protectedPaths = []) {
641
822
  const listed = worktrees(root);
642
823
  if (!listed.ok)
643
824
  return { checkouts: [], unavailable: listed.message };
@@ -646,7 +827,7 @@ export function observeGitActivity(root, from, to) {
646
827
  for (const checkout of listed.found) {
647
828
  if (!existsSync(checkout.root))
648
829
  continue;
649
- const found = commitsOf(checkout, trunk, from, to);
830
+ const found = commitsOf(checkout, trunk, from, to, protectedPaths);
650
831
  if (!found.ok)
651
832
  return { checkouts: [], unavailable: found.message };
652
833
  checkouts.push({ ...checkout, commits: found.commits });
@@ -685,9 +866,12 @@ export function reportDarkSessions(options) {
685
866
  const now = readClock(options.clock === undefined ? {} : { clock: options.clock });
686
867
  const at = Date.parse(now);
687
868
  const from = new Date((Number.isNaN(at) ? Date.now() : at) - options.windowMs).toISOString();
688
- const observe = options.observe ?? observeGitActivity;
689
- const activity = observe(options.root, from, now);
869
+ // The policy is read BEFORE git is asked anything: the observer needs the
870
+ // guarded set to know which of a merge's paths to ask about (APRV-374), and
871
+ // one evaluation must not be told two different guarded sets.
690
872
  const facts = policyFacts(options);
873
+ const observe = options.observe ?? observeGitActivity;
874
+ const activity = observe(options.root, from, now, facts.protectedPaths);
691
875
  const storeDir = payloadStoreDirFor(options.logPath);
692
876
  const cache = new Map();
693
877
  const payloadFor = (hash) => {
@@ -1 +1 @@
1
- {"version":3,"file":"dark-session.js","sourceRoot":"","sources":["../../../src/core/dark-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,IAAI,IAAI,SAAS,EAAc,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,aAAa,GAId,MAAM,2BAA2B,CAAC;AAGnC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,iBAAiB;IACjB,oBAAoB;IACpB,mBAAmB;IACnB,4EAA4E;IAC5E,8EAA8E;IAC9E,6EAA6E;IAC7E,qEAAqE;IACrE,eAAe;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAU,CAAC;AAI3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,0EAA0E;IAC1E,YAAY;IACZ,4EAA4E;IAC5E,aAAa;IACb,sEAAsE;IACtE,kBAAkB;IAClB,yDAAyD;IACzD,iBAAiB;IACjB,kEAAkE;IAClE,kBAAkB;IAClB,4EAA4E;IAC5E,gBAAgB;IAChB,+DAA+D;IAC/D,iBAAiB;IACjB,mFAAmF;IACnF,sBAAsB;IACtB,+DAA+D;IAC/D,kBAAkB;CACV,CAAC;AAiIX,gEAAgE;AAChE,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,SAAwB,EAAE,IAAmB;IAC3F,OAAO,GAAG,OAAO,IAAI,SAAS,IAAI,WAAW,IAAI,IAAI,IAAI,eAAe,EAAE,CAAC;AAC7E,CAAC;AAED,4EAA4E;AAC5E,SAAS,SAAS,CAAC,MAAmB;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,qFAAqF;AACrF,SAAS,QAAQ,CAAC,MAAmB;IACnC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,OAAO,GACX,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3E,CAAC,CAAE,QAAoC,CAAC,SAAS,CAAC;QAClD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;gBAAE,SAAS;YAC5D,MAAM,IAAI,GAAI,MAAkC,CAAC,cAAc,CAAC,CAAC;YACjE,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4DAA4D;AAC5D,SAAS,OAAO,CAAC,QAAiB;IAChC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5F,MAAM,GAAG,GAAG,QAAmC,CAAC;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,SAAS,MAAM,CAAC,IAAY,EAAE,IAAY;IACxC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACjE,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,KAAK,GAAG,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED,+CAA+C;AAC/C,SAAS,QAAQ,CACf,OAA+B,EAC/B,MAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IAChE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC;AASD,SAAS,SAAS,CAChB,QAA0B,EAC1B,QAAgC,EAChC,UAA4C;IAE5C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAErD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,SAAS;QAErD,qEAAqE;QACrE,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,UAAU,GAAG,IAAI,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClE,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM;YACR,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,8DAA8D;QAC9D,IAAI,CAAC,MAAM,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC;AAED,0EAA0E;AAC1E,SAAS,mBAAmB,CAAC,MAAsB;IACjD,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,mFAAmF;AACnF,MAAM,YAAY,GAChB,gIAAgI,CAAC;AAEnI;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IAC1D,MAAM,QAAQ,GACZ,wFAAwF;QACxF,wFAAwF;QACxF,2FAA2F;QAC3F,oFAAoF,CAAC;IAEvF,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC;QAC3D,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,cAAc,CAAC;QACxE,QAAQ;QACR,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CACX,QAA0B,EAC1B,OAA2B,EAC3B,IAA4B,EAC5B,YAA+B,EAC/B,UAA6B,EAC7B,MAAc;IAEd,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAoB,CAAC,GAAG,CAAC;IACrG,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,IAAI;QACtB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO;QACP,IAAI;QACJ,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;QAChC,YAAY;QACZ,UAAU;QACV,SAAS;QACT,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC;QAC5D,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,QAA0B,EAAE,KAAuB;IAChE,MAAM,KAAK,GAAG,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,GAC9C,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,MAAM,EAC5E,GAAG,CAAC;IAEJ,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,IAAI,CACT,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,EAAE,EACF,EAAE,EACF,GAAG,KAAK,gDAAgD,KAAK,CAAC,QAAQ,CAAC,WAAW,+FAA+F,CAClL,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,IAAI,CACT,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,EAAE,EACF,EAAE,EACF,GAAG,KAAK,8BAA8B,KAAK,CAAC,SAAS,IAAI,WAAW,sJAAsJ,CAC3N,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAE9B,6EAA6E;IAC7E,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CACzC,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CACjG,CAAC;IACF,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CACvD,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAC9D,CAAC;QACF,OAAO,IAAI,CACT,QAAQ,EACR,QAAQ,EACR,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,EACvD,EAAE,EACF,EAAE,EACF,cAAc;YACZ,CAAC,CAAC,GAAG,KAAK,sBAAsB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,yIAAyI;YACxM,CAAC,CAAC,GAAG,KAAK,sBAAsB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,6DAA6D,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,8FAA8F,CACvP,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,yDAAyD;IACzD,wEAAwE;IACxE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;QAClD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;oBACpF,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAc;YAC3B,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAiB,CAAC,GAAG;YACvE,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAiB,CAAC,GAAG;YACvF,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAiB,CAAC,EAAE;YACrE,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAiB,CAAC,EAAE;YACrF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YACvB,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,IAAK,WAAW,CAAC,CAAC,CAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;SAChF,CAAC;QACF,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,0DAA0D;QAC1D,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;QACxD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAsB,EAAE;YACpD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;YACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,IAAI,KAAK,GAAuB,IAAI,CAAC;YACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpF,MAAM,OAAO,GAAG,GAAI,MAAM,CAAC,CAAC,CAAoB,CAAC,GAAG,GAAG,CAAC;gBACxD,MAAM,OAAO,GAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAoB,CAAC,GAAG,CAAC;gBAClE,MAAM,MAAM,GAAG,CAAC,GAAW,EAAW,EAAE;oBACtC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC/E,OAAO,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtD,CAAC,CAAC;gBACF,MAAM,IAAI,GAAG,CAAC,GAAW,EAAiB,EAAE;oBAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC7D,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxC,CAAC,CAAC;gBACF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAChD,MAAM,UAAU,GACd,CAAC,OAAO,IAAI,QAAQ,KAAK,IAAI,CAAC;oBAC9B,CAAC,OAAO,IAAI,QAAQ,KAAK,IAAI,CAAC;oBAC9B,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAClD,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,UAAU;oBAAE,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC9D,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,sBAAsB,CAAC;YACpC,YAAY,EAAE,YAAY;YAC1B,QAAQ;YACR,OAAO;YACP,SAAS,EAAE,IAAI;YACf,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,kBAAkB,EAAE,KAAK,CAAC,YAAY;YACtC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;YACjD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC3E,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;YAAE,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAE3F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CACT,QAAQ,EACR,MAAM,EACN,aAAa,EACb,YAAY,EACZ,WAAW,CAAC,IAAI,EAChB,GAAG,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,oCAAoC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,4DAA4D,QAAQ;aAC9K,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;aACtD,IAAI,CAAC,KAAK,CAAC,EAAE,CACjB,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,wCAAwC;IACxC,wEAAwE;IACxE,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CACT,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,WAAW,CAAC,IAAI,EAChB,GAAG,KAAK,qQAAqQ,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,gCAAgC,YAAY,EAAE,CACvV,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC;IAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CACT,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAW,CAAC,IAAI,EAChB,GAAG,KAAK,mBAAmB,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,0FAA0F,CAC3J,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CACT,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAW,CAAC,IAAI,EAChB,GAAG,KAAK,KAAK,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,iCAAiC,MAAM,CAC5E,WAAW,CAAC,IAAI,CAAC,MAAM,CACxB,gEAAgE,WAAW,CAAC,IAAI;aAC9E,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAChF,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,IAAI,CACT,QAAQ,EACR,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,EAAE,EACF,GAAG,KAAK,KAAK,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,gVAAgV,CACxX,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAChF,OAAO,IAAI,CACT,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,EAAE,EACF,GAAG,KAAK,kBAAkB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,6EAA6E,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,wEAAwE,CAC/O,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CACT,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,EAAE,EACF,GAAG,KAAK,mBACN,WAAW,CAAC,MAAM,KAAK,CAAC;QACtB,CAAC,CAAC,wCAAwC,QAAQ,CAAC,IAAI,IAAI,oBAAoB,oBAAoB;QACnG,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,mDAC3B,WAAW,CAAC,CAAC,CACd,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,OAAQ,WAAW,CAAC,CAAC,CAAoB,CAAC,MAAM,GACxE,iBAAiB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,4SAA4S,CACzY,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,uBAAuB,CAAC,MAAyB;IAC/D,MAAM,KAAK,GAAa,CAAC,uBAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7F,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,KAAK,GACT,OAAO,CAAC,OAAO,KAAK,MAAM;YACxB,CAAC,CAAC,UAAU,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,IAAI,GAAG,GAAG;YACtD,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,cAAc;gBAClC,CAAC,CAAC,kBAAkB,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,IAAI,GAAG,GAAG;gBAC9D,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,GACpE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,GAChD,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,CAAC,IAAI,CACR,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,KAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,+BACjD,EAAE,CACH,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E;;;;;;GAMG;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D,qEAAqE;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAsB,CAAC,+BAA+B,CAAC,CAAC;AAU3F;;;;;;;;GAQG;AACH,MAAM,EAAE,GAAG,QAAQ,CAAC;AACpB,MAAM,EAAE,GAAG,QAAQ,CAAC;AAQpB,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,GAAG,CAAC,IAAc,EAAE,GAAW;IACtC,MAAM,GAAG,GAAsB,EAAE,GAAG,gBAAgB,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC;IACvF,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;IACtB,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,iBAAiB,CAAC,EAAE,CAAC;IACxF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;AAC/F,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,OAAO,CAAC,IAAY;IAC3B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,SAAS,CAChB,IAAY;IAEZ,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,mCAAmC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,WAAW,EAAE;SAC3F,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrD,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC;YAC3B,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,CAAC;QACZ,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,KAAK,EAAE,CAAC;YACR,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACjF,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,wFAAwF;AACxF,SAAS,OAAO,CAAC,IAAY;IAC3B,KAAK,MAAM,SAAS,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC3E,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;IACpG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8DAA8D;AAC9D,SAAS,YAAY,CAAC,IAAY,EAAE,GAAW;IAC7C,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACpD,OAAO,CAAC,IAAI,CAAC;YACX,GAAG;YACH,EAAE,EAAE,EAAE,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnD,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,WAAW,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;YACxC,YAAY,EAAE,KAAK;YACnB,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAChB,QAA0B,EAC1B,KAAoB,EACpB,IAAY,EACZ,EAAU;IAEV,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACvF,MAAM,GAAG,GAAG,GAAG,CACb;QACE,KAAK;QACL,GAAG,KAAK;QACR,WAAW,IAAI,EAAE;QACjB,WAAW,EAAE,EAAE;QACf,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK;QACvD,aAAa;KACd,EACD,QAAQ,CAAC,IAAI,CACd,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,yBAAyB,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,WAAW,EAAE;SACvF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,IAAY,EAAE,EAAU;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAEtE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACpE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC;AAmBD,0EAA0E;AAC1E,SAAS,WAAW,CAAC,OAAgC;IAKnD,MAAM,KAAK,GACT,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;QAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QAC/B,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAClD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACzE,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,6EAA6E;IAC7E,6BAA6B;IAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5F,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgC;IAIjE,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACnF,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7F,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,kBAAkB,CAAC;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAElD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAkB,EAAE;QAClD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACpD,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAClC,QAAQ;QACR,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,oBAAoB,EAAE,KAAK,CAAC,cAAc;QAC1C,UAAU,EAAE,KAAK,CAAC,IAAI;QACtB,YAAY,EAAE,KAAK,CAAC,MAAM;QAC1B,UAAU;QACV,YAAY,EAAE,sBAAsB;QACpC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;KAC1B,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"dark-session.js","sourceRoot":"","sources":["../../../src/core/dark-session.ts"],"names":[],"mappings":"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"}