approval-md 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/README.md +629 -559
  2. package/SPEC.md +99 -24
  3. package/dist/src/adapters/agentmail.d.ts +426 -0
  4. package/dist/src/adapters/agentmail.js +2 -2
  5. package/dist/src/adapters/conformance.d.ts +149 -0
  6. package/dist/src/adapters/contract.d.ts +628 -0
  7. package/dist/src/adapters/contract.js +110 -16
  8. package/dist/src/adapters/contract.js.map +1 -1
  9. package/dist/src/adapters/email.d.ts +324 -0
  10. package/dist/src/adapters/env-passphrase.d.ts +93 -0
  11. package/dist/src/adapters/public.d.ts +11 -0
  12. package/dist/src/adapters/public.js +11 -0
  13. package/dist/src/adapters/public.js.map +1 -0
  14. package/dist/src/adapters/registry.d.ts +59 -0
  15. package/dist/src/adapters/registry.js +2 -1
  16. package/dist/src/adapters/registry.js.map +1 -1
  17. package/dist/src/adapters/smtp.d.ts +213 -0
  18. package/dist/src/adapters/vault-provider.d.ts +114 -0
  19. package/dist/src/adapters/vault-provider.js +3 -3
  20. package/dist/src/adapters/zzz.d.ts +66 -0
  21. package/dist/src/adapters/zzz.js +299 -0
  22. package/dist/src/adapters/zzz.js.map +1 -0
  23. package/dist/src/channels/batch.d.ts +109 -0
  24. package/dist/src/channels/cli.d.ts +193 -0
  25. package/dist/src/channels/conformance.d.ts +92 -0
  26. package/dist/src/channels/contract.d.ts +656 -0
  27. package/dist/src/channels/contract.js +200 -7
  28. package/dist/src/channels/contract.js.map +1 -1
  29. package/dist/src/channels/payload-view.d.ts +35 -0
  30. package/dist/src/channels/render-queue.d.ts +149 -0
  31. package/dist/src/channels/tagging.d.ts +196 -0
  32. package/dist/src/channels/telegram.d.ts +1944 -0
  33. package/dist/src/channels/telegram.js +218 -23
  34. package/dist/src/channels/telegram.js.map +1 -1
  35. package/dist/src/channels/web.d.ts +350 -0
  36. package/dist/src/channels/web.js +17 -0
  37. package/dist/src/channels/web.js.map +1 -1
  38. package/dist/src/cli/adapter.d.ts +90 -0
  39. package/dist/src/cli/adapter.js +25 -15
  40. package/dist/src/cli/adapter.js.map +1 -1
  41. package/dist/src/cli/amend.d.ts +59 -0
  42. package/dist/src/cli/amend.js +214 -30
  43. package/dist/src/cli/amend.js.map +1 -1
  44. package/dist/src/cli/args.d.ts +43 -0
  45. package/dist/src/cli/attest.d.ts +50 -0
  46. package/dist/src/cli/attest.js +134 -7
  47. package/dist/src/cli/attest.js.map +1 -1
  48. package/dist/src/cli/audit-card.d.ts +62 -0
  49. package/dist/src/cli/audit.d.ts +59 -0
  50. package/dist/src/cli/channel-telegram.d.ts +879 -0
  51. package/dist/src/cli/channel-telegram.js +311 -13
  52. package/dist/src/cli/channel-telegram.js.map +1 -1
  53. package/dist/src/cli/channel-web.d.ts +131 -0
  54. package/dist/src/cli/channel.d.ts +80 -0
  55. package/dist/src/cli/channel.js +9 -0
  56. package/dist/src/cli/channel.js.map +1 -1
  57. package/dist/src/cli/checkpoint-tap.d.ts +169 -0
  58. package/dist/src/cli/codex-bridge.d.ts +819 -0
  59. package/dist/src/cli/codex-bridge.js +1607 -0
  60. package/dist/src/cli/codex-bridge.js.map +1 -0
  61. package/dist/src/cli/codex.d.ts +2 -0
  62. package/dist/src/cli/codex.js +469 -0
  63. package/dist/src/cli/codex.js.map +1 -0
  64. package/dist/src/cli/coverage.d.ts +61 -0
  65. package/dist/src/cli/daemon.d.ts +120 -0
  66. package/dist/src/cli/daemon.js +4 -1
  67. package/dist/src/cli/daemon.js.map +1 -1
  68. package/dist/src/cli/doctor.d.ts +129 -0
  69. package/dist/src/cli/doctor.js +586 -17
  70. package/dist/src/cli/doctor.js.map +1 -1
  71. package/dist/src/cli/env.d.ts +65 -0
  72. package/dist/src/cli/execute.d.ts +202 -0
  73. package/dist/src/cli/execute.js +25 -2
  74. package/dist/src/cli/execute.js.map +1 -1
  75. package/dist/src/cli/exit-codes.d.ts +73 -0
  76. package/dist/src/cli/feedback.d.ts +60 -0
  77. package/dist/src/cli/gate-window.d.ts +40 -0
  78. package/dist/src/cli/gate.d.ts +68 -0
  79. package/dist/src/cli/git-scope.d.ts +190 -0
  80. package/dist/src/cli/gloss-attach.d.ts +85 -0
  81. package/dist/src/cli/gloss-codex-child.d.ts +9 -0
  82. package/dist/src/cli/gloss-codex.d.ts +24 -0
  83. package/dist/src/cli/gloss-options.d.ts +42 -0
  84. package/dist/src/cli/gloss.d.ts +265 -0
  85. package/dist/src/cli/help.d.ts +107 -0
  86. package/dist/src/cli/help.js +320 -93
  87. package/dist/src/cli/help.js.map +1 -1
  88. package/dist/src/cli/hook-codex.d.ts +126 -0
  89. package/dist/src/cli/hook-codex.js +226 -0
  90. package/dist/src/cli/hook-codex.js.map +1 -0
  91. package/dist/src/cli/hook.d.ts +787 -0
  92. package/dist/src/cli/hook.js +1235 -181
  93. package/dist/src/cli/hook.js.map +1 -1
  94. package/dist/src/cli/import.d.ts +35 -0
  95. package/dist/src/cli/import.js +1 -1
  96. package/dist/src/cli/import.js.map +1 -1
  97. package/dist/src/cli/init.d.ts +84 -0
  98. package/dist/src/cli/init.js +2 -2
  99. package/dist/src/cli/init.js.map +1 -1
  100. package/dist/src/cli/instructions.d.ts +23 -0
  101. package/dist/src/cli/journal.d.ts +41 -0
  102. package/dist/src/cli/log-advance.d.ts +287 -0
  103. package/dist/src/cli/log-advance.js +102 -11
  104. package/dist/src/cli/log-advance.js.map +1 -1
  105. package/dist/src/cli/log-anchor.d.ts +176 -0
  106. package/dist/src/cli/log-checkpoint.d.ts +22 -0
  107. package/dist/src/cli/log-sync.d.ts +243 -0
  108. package/dist/src/cli/log-verbs.d.ts +16 -0
  109. package/dist/src/cli/log-verbs.js +7 -1
  110. package/dist/src/cli/log-verbs.js.map +1 -1
  111. package/dist/src/cli/long-help.d.ts +70 -0
  112. package/dist/src/cli/main.d.ts +77 -0
  113. package/dist/src/cli/main.js +159 -7
  114. package/dist/src/cli/main.js.map +1 -1
  115. package/dist/src/cli/mcp.d.ts +52 -0
  116. package/dist/src/cli/paths.d.ts +56 -0
  117. package/dist/src/cli/payload.d.ts +58 -0
  118. package/dist/src/cli/policy-apply.d.ts +195 -0
  119. package/dist/src/cli/policy-apply.js +573 -0
  120. package/dist/src/cli/policy-apply.js.map +1 -0
  121. package/dist/src/cli/policy.d.ts +43 -0
  122. package/dist/src/cli/policy.js +14 -1
  123. package/dist/src/cli/policy.js.map +1 -1
  124. package/dist/src/cli/preflight.d.ts +501 -0
  125. package/dist/src/cli/preflight.js +689 -45
  126. package/dist/src/cli/preflight.js.map +1 -1
  127. package/dist/src/cli/progress.d.ts +78 -0
  128. package/dist/src/cli/prompt.d.ts +209 -0
  129. package/dist/src/cli/quickstart.d.ts +46 -0
  130. package/dist/src/cli/quickstart.js +297 -0
  131. package/dist/src/cli/quickstart.js.map +1 -0
  132. package/dist/src/cli/records.d.ts +34 -0
  133. package/dist/src/cli/render.d.ts +22 -0
  134. package/dist/src/cli/sandbox.d.ts +51 -0
  135. package/dist/src/cli/sandbox.js +17 -1
  136. package/dist/src/cli/sandbox.js.map +1 -1
  137. package/dist/src/cli/scaffold.d.ts +79 -0
  138. package/dist/src/cli/scaffold.js +1 -1
  139. package/dist/src/cli/setup-adapter.d.ts +137 -0
  140. package/dist/src/cli/setup-adapter.js +38 -4
  141. package/dist/src/cli/setup-adapter.js.map +1 -1
  142. package/dist/src/cli/setup-channel.d.ts +126 -0
  143. package/dist/src/cli/setup-channel.js +28 -1
  144. package/dist/src/cli/setup-channel.js.map +1 -1
  145. package/dist/src/cli/setup-checkpoint.d.ts +57 -0
  146. package/dist/src/cli/setup-common.d.ts +277 -0
  147. package/dist/src/cli/setup-common.js +3 -2
  148. package/dist/src/cli/setup-common.js.map +1 -1
  149. package/dist/src/cli/setup-flow.d.ts +287 -0
  150. package/dist/src/cli/setup-service.d.ts +96 -0
  151. package/dist/src/cli/setup.d.ts +204 -0
  152. package/dist/src/cli/setup.js +94 -2
  153. package/dist/src/cli/setup.js.map +1 -1
  154. package/dist/src/cli/style.d.ts +320 -0
  155. package/dist/src/cli/token.d.ts +39 -0
  156. package/dist/src/cli/up.d.ts +155 -0
  157. package/dist/src/cli/up.js +119 -53
  158. package/dist/src/cli/up.js.map +1 -1
  159. package/dist/src/cli/usage.d.ts +37 -0
  160. package/dist/src/cli/values.d.ts +40 -0
  161. package/dist/src/cli/values.js +3 -4
  162. package/dist/src/cli/values.js.map +1 -1
  163. package/dist/src/cli/vault.d.ts +59 -0
  164. package/dist/src/cli/vault.js +2 -2
  165. package/dist/src/cli/vault.js.map +1 -1
  166. package/dist/src/cli/verb-registry.d.ts +76 -0
  167. package/dist/src/cli/verb-registry.js +344 -11
  168. package/dist/src/cli/verb-registry.js.map +1 -1
  169. package/dist/src/cli/wordmark.d.ts +31 -0
  170. package/dist/src/cli/wordmark.js +2 -2
  171. package/dist/src/codex/broker.d.ts +229 -0
  172. package/dist/src/codex/broker.js +548 -0
  173. package/dist/src/codex/broker.js.map +1 -0
  174. package/dist/src/codex/doctor.d.ts +13 -0
  175. package/dist/src/codex/doctor.js +41 -0
  176. package/dist/src/codex/doctor.js.map +1 -0
  177. package/dist/src/codex/manifest.d.ts +49 -0
  178. package/dist/src/codex/manifest.js +103 -0
  179. package/dist/src/codex/manifest.js.map +1 -0
  180. package/dist/src/codex/runner.d.ts +178 -0
  181. package/dist/src/codex/runner.js +231 -0
  182. package/dist/src/codex/runner.js.map +1 -0
  183. package/dist/src/codex/serve.d.ts +56 -0
  184. package/dist/src/codex/serve.js +98 -0
  185. package/dist/src/codex/serve.js.map +1 -0
  186. package/dist/src/codex/templates.d.ts +41 -0
  187. package/dist/src/codex/templates.js +319 -0
  188. package/dist/src/codex/templates.js.map +1 -0
  189. package/dist/src/codex/trust.d.ts +19 -0
  190. package/dist/src/codex/trust.js +183 -0
  191. package/dist/src/codex/trust.js.map +1 -0
  192. package/dist/src/codex/workspace-commit.d.ts +219 -0
  193. package/dist/src/codex/workspace-commit.js +549 -0
  194. package/dist/src/codex/workspace-commit.js.map +1 -0
  195. package/dist/src/codex/workspace-plan.d.ts +131 -0
  196. package/dist/src/codex/workspace-plan.js +561 -0
  197. package/dist/src/codex/workspace-plan.js.map +1 -0
  198. package/dist/src/core/actor.d.ts +2 -0
  199. package/dist/src/core/actor.js +5 -0
  200. package/dist/src/core/actor.js.map +1 -0
  201. package/dist/src/core/advance-cycle.d.ts +221 -0
  202. package/dist/src/core/advance-cycle.js +66 -2
  203. package/dist/src/core/advance-cycle.js.map +1 -1
  204. package/dist/src/core/agents-md.d.ts +278 -0
  205. package/dist/src/core/agents-md.js +33 -31
  206. package/dist/src/core/agents-md.js.map +1 -1
  207. package/dist/src/core/apply-patch.d.ts +49 -0
  208. package/dist/src/core/apply-patch.js +266 -0
  209. package/dist/src/core/apply-patch.js.map +1 -0
  210. package/dist/src/core/attest.d.ts +635 -0
  211. package/dist/src/core/attest.js +326 -4
  212. package/dist/src/core/attest.js.map +1 -1
  213. package/dist/src/core/audit.d.ts +510 -0
  214. package/dist/src/core/audit.js +13 -0
  215. package/dist/src/core/audit.js.map +1 -1
  216. package/dist/src/core/budgets.d.ts +238 -0
  217. package/dist/src/core/channel-owner.d.ts +213 -0
  218. package/dist/src/core/channel-owner.js +358 -0
  219. package/dist/src/core/channel-owner.js.map +1 -0
  220. package/dist/src/core/checkpoint.d.ts +500 -0
  221. package/dist/src/core/child-env.d.ts +88 -0
  222. package/dist/src/core/clock.d.ts +52 -0
  223. package/dist/src/core/command-class.d.ts +697 -0
  224. package/dist/src/core/command-class.js +713 -25
  225. package/dist/src/core/command-class.js.map +1 -1
  226. package/dist/src/core/commit-guard.d.ts +272 -0
  227. package/dist/src/core/commit-guard.js +424 -0
  228. package/dist/src/core/commit-guard.js.map +1 -0
  229. package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
  230. package/dist/src/core/coverage-sources/gh.d.ts +48 -0
  231. package/dist/src/core/coverage-sources/git.d.ts +101 -0
  232. package/dist/src/core/coverage.d.ts +217 -0
  233. package/dist/src/core/credential-spec.d.ts +72 -0
  234. package/dist/src/core/daemon-actor.d.ts +45 -0
  235. package/dist/src/core/daemon-actor.js +54 -0
  236. package/dist/src/core/daemon-actor.js.map +1 -0
  237. package/dist/src/core/dark-session.d.ts +432 -0
  238. package/dist/src/core/dark-session.js +266 -82
  239. package/dist/src/core/dark-session.js.map +1 -1
  240. package/dist/src/core/decision-refusal.d.ts +206 -0
  241. package/dist/src/core/decision-refusal.js +24 -2
  242. package/dist/src/core/decision-refusal.js.map +1 -1
  243. package/dist/src/core/env-file.d.ts +455 -0
  244. package/dist/src/core/env-file.js +60 -1
  245. package/dist/src/core/env-file.js.map +1 -1
  246. package/dist/src/core/execute.d.ts +871 -0
  247. package/dist/src/core/execute.js +59 -8
  248. package/dist/src/core/execute.js.map +1 -1
  249. package/dist/src/core/frontmatter.d.ts +78 -0
  250. package/dist/src/core/gate-window.d.ts +312 -0
  251. package/dist/src/core/gate.d.ts +1449 -0
  252. package/dist/src/core/gate.js +149 -14
  253. package/dist/src/core/gate.js.map +1 -1
  254. package/dist/src/core/gesture-refusal.d.ts +166 -0
  255. package/dist/src/core/gesture-refusal.js +188 -0
  256. package/dist/src/core/gesture-refusal.js.map +1 -0
  257. package/dist/src/core/git-run.d.ts +73 -0
  258. package/dist/src/core/harness-version.d.ts +157 -0
  259. package/dist/src/core/harness-version.js +4 -1
  260. package/dist/src/core/harness-version.js.map +1 -1
  261. package/dist/src/core/harness-wait.d.ts +55 -0
  262. package/dist/src/core/head-retry.d.ts +107 -0
  263. package/dist/src/core/instance.d.ts +310 -0
  264. package/dist/src/core/instance.js +113 -0
  265. package/dist/src/core/instance.js.map +1 -1
  266. package/dist/src/core/intake-limits.d.ts +247 -0
  267. package/dist/src/core/jcs.d.ts +52 -0
  268. package/dist/src/core/journal.d.ts +144 -0
  269. package/dist/src/core/live-draw.d.ts +436 -0
  270. package/dist/src/core/log-reconcile.d.ts +89 -0
  271. package/dist/src/core/log-subscribe.d.ts +36 -0
  272. package/dist/src/core/log-subscribe.js +162 -0
  273. package/dist/src/core/log-subscribe.js.map +1 -0
  274. package/dist/src/core/log.d.ts +316 -0
  275. package/dist/src/core/log.js.map +1 -1
  276. package/dist/src/core/loop.d.ts +274 -0
  277. package/dist/src/core/loop.js +11 -0
  278. package/dist/src/core/loop.js.map +1 -1
  279. package/dist/src/core/md-fence.d.ts +41 -0
  280. package/dist/src/core/money.d.ts +147 -0
  281. package/dist/src/core/payload-census.d.ts +74 -0
  282. package/dist/src/core/payload-store.d.ts +175 -0
  283. package/dist/src/core/payload.d.ts +71 -0
  284. package/dist/src/core/policy-diff.d.ts +292 -0
  285. package/dist/src/core/policy-diff.js +27 -4
  286. package/dist/src/core/policy-diff.js.map +1 -1
  287. package/dist/src/core/policy-expectations.d.ts +199 -0
  288. package/dist/src/core/policy-explain.d.ts +160 -0
  289. package/dist/src/core/policy-explain.js +63 -3
  290. package/dist/src/core/policy-explain.js.map +1 -1
  291. package/dist/src/core/policy-load.d.ts +567 -0
  292. package/dist/src/core/policy-load.js +36 -6
  293. package/dist/src/core/policy-load.js.map +1 -1
  294. package/dist/src/core/policy-match.d.ts +324 -0
  295. package/dist/src/core/policy-match.js +72 -9
  296. package/dist/src/core/policy-match.js.map +1 -1
  297. package/dist/src/core/policy-proposal.d.ts +317 -0
  298. package/dist/src/core/policy-proposal.js +102 -2
  299. package/dist/src/core/policy-proposal.js.map +1 -1
  300. package/dist/src/core/prompt-layout.d.ts +221 -0
  301. package/dist/src/core/protected-path-guard.d.ts +566 -0
  302. package/dist/src/core/protected-path-guard.js +848 -55
  303. package/dist/src/core/protected-path-guard.js.map +1 -1
  304. package/dist/src/core/question-preempted.d.ts +141 -0
  305. package/dist/src/core/question-preempted.js +152 -0
  306. package/dist/src/core/question-preempted.js.map +1 -0
  307. package/dist/src/core/read-scope.d.ts +172 -0
  308. package/dist/src/core/read-scope.js +252 -0
  309. package/dist/src/core/read-scope.js.map +1 -0
  310. package/dist/src/core/registration.d.ts +25 -0
  311. package/dist/src/core/reindex.d.ts +99 -0
  312. package/dist/src/core/sampler.d.ts +313 -0
  313. package/dist/src/core/sandbox.d.ts +371 -0
  314. package/dist/src/core/sandbox.js +190 -1
  315. package/dist/src/core/sandbox.js.map +1 -1
  316. package/dist/src/core/seal.d.ts +165 -0
  317. package/dist/src/core/sender-identity.d.ts +476 -0
  318. package/dist/src/core/sender-identity.js +572 -0
  319. package/dist/src/core/sender-identity.js.map +1 -0
  320. package/dist/src/core/shlex.d.ts +102 -0
  321. package/dist/src/core/shlex.js +159 -0
  322. package/dist/src/core/shlex.js.map +1 -0
  323. package/dist/src/core/state.d.ts +505 -0
  324. package/dist/src/core/task-file.d.ts +185 -0
  325. package/dist/src/core/telegram-config.d.ts +93 -0
  326. package/dist/src/core/token.d.ts +409 -0
  327. package/dist/src/core/token.js +21 -38
  328. package/dist/src/core/token.js.map +1 -1
  329. package/dist/src/core/validate.d.ts +138 -0
  330. package/dist/src/core/values.d.ts +147 -0
  331. package/dist/src/core/values.js +36 -1
  332. package/dist/src/core/values.js.map +1 -1
  333. package/dist/src/core/vault.d.ts +291 -0
  334. package/dist/src/core/verified-snapshot.d.ts +204 -0
  335. package/dist/src/core/verify.d.ts +336 -0
  336. package/dist/src/core/version.d.ts +8 -0
  337. package/dist/src/core/wysiwys.d.ts +370 -0
  338. package/dist/src/daemon/advance-child.d.ts +39 -0
  339. package/dist/src/daemon/advance.d.ts +476 -0
  340. package/dist/src/daemon/advance.js +25 -4
  341. package/dist/src/daemon/advance.js.map +1 -1
  342. package/dist/src/daemon/audit.d.ts +87 -0
  343. package/dist/src/daemon/daemon.d.ts +1180 -0
  344. package/dist/src/daemon/daemon.js +9 -0
  345. package/dist/src/daemon/daemon.js.map +1 -1
  346. package/dist/src/daemon/dark-session.d.ts +64 -0
  347. package/dist/src/daemon/draw-child.d.ts +36 -0
  348. package/dist/src/daemon/draw.d.ts +154 -0
  349. package/dist/src/daemon/git-evidence.d.ts +173 -0
  350. package/dist/src/daemon/git-evidence.js +1 -1
  351. package/dist/src/daemon/projection.d.ts +180 -0
  352. package/dist/src/daemon/prune.d.ts +207 -0
  353. package/dist/src/mcp/http.d.ts +113 -0
  354. package/dist/src/mcp/server.d.ts +265 -0
  355. package/dist/src/mcp/server.js +17 -1
  356. package/dist/src/mcp/server.js.map +1 -1
  357. package/docs/adapter-api.md +106 -0
  358. package/docs/cli-reference.md +1316 -63
  359. package/docs/codex-enforced-session.md +103 -0
  360. package/docs/codex-workspace-broker.md +118 -0
  361. package/package.json +14 -2
  362. package/schema/codex-instance.schema.json +82 -0
  363. package/schema/event.schema.json +539 -9
  364. package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
  365. package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
  366. package/schema/fixtures/event/invalid/approval-granted-sender-hashed-false.json +20 -0
  367. package/schema/fixtures/event/invalid/approval-granted-sender-hashed-raw-id.json +20 -0
  368. package/schema/fixtures/event/invalid/audit-gesture-refused-human-actor.json +16 -0
  369. package/schema/fixtures/event/invalid/audit-gesture-refused-no-actor-no-sender.json +15 -0
  370. package/schema/fixtures/event/invalid/audit-gesture-refused-unknown-gesture.json +16 -0
  371. package/schema/fixtures/event/invalid/audit-question-preempted-agent-actor.json +16 -0
  372. package/schema/fixtures/event/invalid/audit-question-preempted-no-question-id.json +16 -0
  373. package/schema/fixtures/event/invalid/audit-question-preempted-unknown-source.json +15 -0
  374. package/schema/fixtures/event/invalid/gate-path-signed-off-absolute-path.json +14 -0
  375. package/schema/fixtures/event/invalid/gate-path-signed-off-agent-actor.json +14 -0
  376. package/schema/fixtures/event/invalid/gate-path-signed-off-missing-path.json +13 -0
  377. package/schema/fixtures/event/valid/approval-granted-sender-hashed.json +20 -0
  378. package/schema/fixtures/event/valid/audit-gesture-refused-review-note.json +21 -0
  379. package/schema/fixtures/event/valid/audit-gesture-refused-sender-key-unavailable.json +19 -0
  380. package/schema/fixtures/event/valid/audit-gesture-refused.json +19 -0
  381. package/schema/fixtures/event/valid/audit-question-preempted-no-verdict.json +16 -0
  382. package/schema/fixtures/event/valid/audit-question-preempted.json +20 -0
  383. package/schema/fixtures/event/valid/gate-path-signed-off.json +14 -0
  384. package/schema/fixtures/event/valid/harness-kind-claude-code.json +23 -0
  385. package/schema/fixtures/event/valid/harness-kind-codex.json +23 -0
  386. package/schema/fixtures/event/valid/harness-kind-cursor.json +23 -0
  387. package/schema/fixtures/event/valid/harness-kind-grok.json +23 -0
  388. package/schema/fixtures/event/valid/harness-kind-muse.json +23 -0
  389. package/schema/fixtures/policy/invalid/senders-half-keyed.json +20 -0
  390. package/schema/fixtures/policy/valid/canonical.json +1 -1
  391. package/schema/fixtures/policy/valid/senders-keyed.json +24 -0
  392. package/schema/fixtures/policy-md/valid/canonical.md +1 -1
  393. package/schema/fixtures/policy-md/valid/with-values.md +5 -7
  394. package/schema/fixtures/values/invalid/class-shaped.json +1 -1
  395. package/schema/fixtures/values/invalid/duplicate-entry.json +1 -1
  396. package/schema/fixtures/values/invalid/non-string-item.json +1 -1
  397. package/schema/fixtures/values/invalid/over-cap.json +1 -1
  398. package/schema/fixtures/values/invalid/unknown-key.json +1 -1
  399. package/schema/fixtures/values/invalid/version-float.json +1 -0
  400. package/schema/fixtures/values/invalid/version-integer.json +1 -0
  401. package/schema/fixtures/values/invalid/version-wrong-string.json +1 -0
  402. package/schema/fixtures/values/valid/empty-lists.json +2 -3
  403. package/schema/fixtures/values/valid/full.json +5 -7
  404. package/schema/fixtures/values/valid/minimal.json +1 -1
  405. package/schema/fixtures/values-md/invalid/schema-invalid.md +5 -3
  406. package/schema/fixtures/values-md/invalid/two-blocks.md +3 -3
  407. package/schema/fixtures/values-md/invalid/unterminated.md +2 -2
  408. package/schema/fixtures/values-md/invalid/version-1.md +69 -0
  409. package/schema/fixtures/values-md/invalid/version-unquoted.md +64 -0
  410. package/schema/fixtures/values-md/invalid/yaml-error.md +2 -2
  411. package/schema/fixtures/values-md/valid/absent.md +1 -1
  412. package/schema/fixtures/values-md/valid/with-values.md +5 -7
  413. package/schema/policy.schema.json +75 -3
  414. package/schema/values.schema.json +7 -11
  415. package/templates/codex/README.md +9 -0
  416. package/schema/fixtures/values/invalid/version-string.json +0 -1
@@ -0,0 +1,455 @@
1
+ /**
2
+ * `.approval/env` — the environment SOURCE MAP (SPEC.md §5.2, §11; APRV-73).
3
+ *
4
+ * Every secret this runtime touches is named by the policy and held in an
5
+ * environment variable: `channels.telegram.token_env` (§5.1), the chat id
6
+ * beside it, `audit.sampling_secret_env` (§5.2), `vault.passphrase_env` (§5.2),
7
+ * and `APPROVAL_HUMAN`, which is human identity itself (§11). The policy carries
8
+ * NAMES and never values, which is the right boundary and leaves an operator
9
+ * with five variables to get into a shell before any gate operation works, and
10
+ * no written-down place to say where they come from.
11
+ *
12
+ * This module is that written-down place. `.approval/env` is a source map, not
13
+ * a secret store: `KEY=VALUE` lines whose VALUE says WHERE the value lives.
14
+ *
15
+ * ```
16
+ * # one line per variable; # comments and blank lines are ignored
17
+ * APPROVAL_HUMAN=human:alice
18
+ * APPROVAL_TG_TOKEN=keychain:approval-telegram-token
19
+ * APPROVAL_VAULT_PASSPHRASE=secret-service:vault-passphrase
20
+ * APPROVAL_AUDIT_SECRET=env:
21
+ * ```
22
+ *
23
+ * Four value forms, and one of them is deliberately unpleasant:
24
+ *
25
+ * - `keychain:<service>` — macOS, `security find-generic-password -a "$USER"
26
+ * -s <service> -w`. The value comes back on stdout and is never in an argv.
27
+ * A failed lookup is retried once with `HOME` pinned to the passwd home,
28
+ * because macOS finds the login keychain through `HOME` (APRV-168).
29
+ * - `secret-service:<label>` — Linux desktop, `secret-tool lookup approval
30
+ * <label>`. Same property.
31
+ * - `env:` — inherited from the ambient environment. A documentation form: it
32
+ * asserts "this one comes from the shell that launched you", and resolves to
33
+ * nothing on its own.
34
+ * - a bare literal — permitted, and ALWAYS reported as plaintext. A rule people
35
+ * route around is not a control: an operator who is told plainly that their
36
+ * token is sitting in a file in the working tree can decide to accept that,
37
+ * and an operator who is forbidden from writing it there writes it into their
38
+ * shell profile instead, where nothing in this runtime can see it to say so.
39
+ *
40
+ * A value carrying some OTHER `word:` prefix is a literal, not an error, because
41
+ * `APPROVAL_HUMAN=human:alice` is the commonest line this file will ever hold.
42
+ * Near misses of the real schemes are reserved by name and refused rather than
43
+ * silently exported as text; see {@link RESERVED_SCHEMES}.
44
+ *
45
+ * ## THE LOAD-BEARING RULE: nothing loads this file implicitly
46
+ *
47
+ * No verb in this runtime reads `.approval/env` into its own environment. One
48
+ * verb, `approval env`, resolves it and prints an export block for a shell to
49
+ * evaluate; every other command sees only the environment the human who
50
+ * launched it had already established.
51
+ *
52
+ * The reason is `APPROVAL_HUMAN`. SPEC.md §11 states that human identity in v0.1
53
+ * is config-declared and that "the trust boundary is the local machine, and
54
+ * anyone who can set that configuration and write to the log is inside it". A
55
+ * working-tree file that could set `APPROVAL_HUMAN` would move that boundary to
56
+ * "anyone who can write a file in the repository": an agent that can edit source
57
+ * — which every agent working in a repository can — would thereby be able to
58
+ * attest a policy, grant its own request, and set a vault credential, on every
59
+ * invocation, as the human. The whole human-only gate would be one `echo >>`
60
+ * away from being nobody's gate.
61
+ *
62
+ * So the file is inert. A human evaluates `approval env` in their own shell,
63
+ * sees the export block that is about to run (or checks it value-free first with
64
+ * `--check`), and the process that performs a gate operation inherits an
65
+ * environment a human established. This is SPEC.md §11.1 invariant 7, and
66
+ * `tests/cli-env.test.ts` pins it by spawning `doctor`, `policy attest` and
67
+ * `channel telegram health` in a directory holding a complete `.approval/env`
68
+ * and asserting that none of them saw a byte of it.
69
+ *
70
+ * ## Mode 0600
71
+ *
72
+ * A file that may hold a literal secret is refused unless its mode is exactly
73
+ * `0600`, and the refusal prints the `chmod`. This is a lock on a door whose
74
+ * wall is missing (the same session can chmod it back), and it is worth having
75
+ * for the reason `umask` is worth having: the common failure is a
76
+ * world-readable file nobody looked at, not an adversary in the room.
77
+ *
78
+ * ## Determinism, and the one place it stops
79
+ *
80
+ * Parsing is a pure function of the bytes. Resolution is not: it shells out to
81
+ * helper binaries, which is why {@link SourceRunner} exists as an injectable
82
+ * seam and why the tests drive stub `security` / `secret-tool` scripts through
83
+ * PATH rather than touching a real Keychain.
84
+ *
85
+ * Nothing here throws. Every failure is a `{ ok: false, code, message }` from
86
+ * the frozen union {@link ENV_FILE_REFUSAL_CODES}. No credential VALUE appears
87
+ * in a refusal, a message, or a `source` label on any path.
88
+ */
89
+ import type { PolicyLoadResult } from "./policy-load.js";
90
+ /** The source map's filename, beside the log's home: `.approval/env`. */
91
+ export declare const ENV_FILENAME = "env";
92
+ /**
93
+ * The env file for a given log path — derived exactly as `vaultPathFor` derives
94
+ * the vault, so the log, the payload store, the vault and this file stay under
95
+ * one home: SPEC.md §9 fixes the log at `<home>/log/events.jsonl`, so the source
96
+ * map is `<home>/env`, a sibling of the log DIRECTORY and never inside it.
97
+ */
98
+ export declare function envFilePathFor(logPath: string): string;
99
+ /** The mode the file must have. Anything else is refused. */
100
+ export declare const ENV_FILE_REQUIRED_MODE = 384;
101
+ /**
102
+ * Everything this module can refuse. Frozen public API, per SPEC.md §11.1(6).
103
+ *
104
+ * Each code names a different repair, which is the test of whether a code earns
105
+ * its place. The three helper codes are separate for exactly that reason: "you
106
+ * are on a machine without `secret-tool`", "the item is not in your keychain",
107
+ * and "the helper ran and failed" are three different mornings.
108
+ */
109
+ export declare const ENV_FILE_REFUSAL_CODES: readonly [
110
+ /** The file's mode is not 0600. The refusal carries the `chmod` to run. */
111
+ "env-file-mode",
112
+ /**
113
+ * The file exists and could not be read, stat'd, or (APRV-74) written. A
114
+ * filesystem fact in every case, with a filesystem repair, which is why the
115
+ * write path reuses this code rather than adding a fourth I/O name to a
116
+ * frozen union: "the directory is read-only" and "the file is unreadable"
117
+ * are the same morning and the same exit code.
118
+ */
119
+ "env-file-io",
120
+ /** A line is neither blank, nor a comment, nor `KEY=VALUE`. */
121
+ "env-file-syntax",
122
+ /** A KEY does not match `[A-Z_][A-Z0-9_]*`. No `export ` prefix is accepted. */
123
+ "env-file-key-invalid",
124
+ /** The same KEY appears twice. Which one wins is not a thing to guess at. */
125
+ "env-file-duplicate-key",
126
+ /** A VALUE carries a `scheme:` prefix this build does not implement. */
127
+ "env-file-unknown-scheme",
128
+ /** A KEY with an empty VALUE. An empty secret is a configuration error. */
129
+ "env-file-empty-value",
130
+ /** The helper binary for a scheme is not on PATH. Not the operator's fault. */
131
+ "helper-binary-missing",
132
+ /** The helper ran and the named item is not there. Store it, or fix the name. */
133
+ "helper-item-missing",
134
+ /** The helper ran and failed for some other reason (locked keyring, …). */
135
+ "helper-failed",
136
+ /**
137
+ * A policy declared an `_env` NAME that is not a usable shell variable name.
138
+ * Never emitted as an `export` line: the export block is evaluated by a shell,
139
+ * and a name carrying a space or a `;` would be a policy file executing code.
140
+ */
141
+ "invalid-variable-name"];
142
+ export type EnvFileRefusalCode = (typeof ENV_FILE_REFUSAL_CODES)[number];
143
+ /** A whole-file failure. Nothing here throws. */
144
+ export interface EnvFileRefusal {
145
+ ok: false;
146
+ code: EnvFileRefusalCode;
147
+ message: string;
148
+ /** The file the refusal is about. */
149
+ path: string;
150
+ /** 1-based line number, for the parse refusals that have one. */
151
+ line?: number;
152
+ }
153
+ /** The four value forms. `literal` is the fallback and the explicit escape. */
154
+ export type EnvSourceKind = "keychain" | "secret-service" | "env" | "literal";
155
+ /** One `KEY=VALUE` line, parsed. */
156
+ export interface EnvFileEntry {
157
+ key: string;
158
+ kind: EnvSourceKind;
159
+ /**
160
+ * The service name, the label, or the literal value. Empty for `env:`.
161
+ *
162
+ * For `literal` this IS the secret, so it is never put in a message, a
163
+ * `source` label, or a refusal by anything in this module.
164
+ */
165
+ argument: string;
166
+ /** 1-based line number, so a diagnostic can point at the line. */
167
+ line: number;
168
+ }
169
+ /**
170
+ * Parse the file's text. No interpolation, no quote stripping, no `export `
171
+ * prefix, no line continuations: this is a source map, not a shell script, and
172
+ * every one of those features is a way for a file to mean something other than
173
+ * what it looks like.
174
+ *
175
+ * Quotes are NOT stripped, which is worth saying out loud because `.env` files
176
+ * elsewhere do strip them: here `A="b"` is the five-character literal `"b"`.
177
+ */
178
+ export declare function parseEnvFile(text: string, path: string): {
179
+ ok: true;
180
+ entries: EnvFileEntry[];
181
+ } | EnvFileRefusal;
182
+ /**
183
+ * The digest of an env file's bytes, as read.
184
+ *
185
+ * Not a secret and not derived from one in the sense that matters: the file may
186
+ * carry a plaintext literal, so this is a hash and never the text, and it is
187
+ * one-way. Its only consumer is `core/instance.ts`, which uses it to ask "was
188
+ * this exported value produced from the file as it now reads?" — a question
189
+ * about VERSIONS of a file, which needs an identifier for a version and nothing
190
+ * else (APRV-278).
191
+ */
192
+ export declare function envFileDigest(text: string): string;
193
+ /** An absent file's digest: the digest of the nothing that was read. */
194
+ export declare const ABSENT_ENV_FILE_DIGEST: string;
195
+ /** The file's contents, or the fact that there is no file. */
196
+ export type EnvFileRead = {
197
+ ok: true;
198
+ present: false;
199
+ path: string;
200
+ entries: [];
201
+ digest: string;
202
+ } | {
203
+ ok: true;
204
+ present: true;
205
+ path: string;
206
+ entries: EnvFileEntry[];
207
+ digest: string;
208
+ } | EnvFileRefusal;
209
+ /**
210
+ * Read and parse the source map.
211
+ *
212
+ * **An absent file is not an error.** Nobody has written one, which is the state
213
+ * of every working directory that keeps its variables in a shell profile, and it
214
+ * is the state `approval init` leaves behind. Every variable then falls to
215
+ * "inherited from the environment" or "unset", which is exactly the world
216
+ * before this file existed.
217
+ */
218
+ export declare function readEnvFile(path: string): EnvFileRead;
219
+ /** What one upserted KEY did to the file. */
220
+ export interface EnvFileChange {
221
+ key: string;
222
+ /** The line as it will now read: `KEY=VALUE`. Never a secret — see below. */
223
+ value: string;
224
+ /**
225
+ * The VALUE that was on the line before, or `null` when the key was added.
226
+ *
227
+ * This CAN be a plaintext secret, if the operator had written one as a bare
228
+ * literal, so it exists for a caller that needs to decide whether it is
229
+ * REPLACING something, and no caller in this repository prints it. The
230
+ * boolean below is what the CLI reports on.
231
+ */
232
+ previous: string | null;
233
+ /** The value is unchanged: the line already said exactly this. */
234
+ unchanged: boolean;
235
+ }
236
+ /** A successful write. */
237
+ export interface EnvFileWrite {
238
+ ok: true;
239
+ path: string;
240
+ /** The file did not exist and was created at 0600. */
241
+ created: boolean;
242
+ changes: EnvFileChange[];
243
+ }
244
+ /**
245
+ * Add or replace `KEY=VALUE` lines, preserving everything else in the file.
246
+ *
247
+ * **Line-oriented, not a rewrite.** The file is read as text, the line whose
248
+ * KEY matches is replaced IN PLACE, and a key that is not present is appended
249
+ * at the end. Comments, blank lines, ordering, and every entry this call was
250
+ * not asked about survive byte for byte. A writer that reparsed and re-emitted
251
+ * would be simpler and would quietly delete the operator's own comments the
252
+ * first time `approval setup channel telegram` ran — this file is one a human edits by
253
+ * hand, and round-trip fidelity for a hand-edited file is the same requirement
254
+ * the Backlog.md task files carry.
255
+ *
256
+ * The file is validated before it is touched: {@link readEnvFile}'s mode check
257
+ * and full parse both run, so `setup` never appends a line to a file it could
258
+ * not have read, and never lands a valid line in a file whose earlier line is a
259
+ * syntax error. A file that does not exist is created at 0600, along with its
260
+ * directory.
261
+ *
262
+ * Callers pass values, and a value here is a SOURCE (`keychain:<service>`), a
263
+ * chat id, or an identity — never a credential, except on the one path where an
264
+ * operator explicitly chose a plaintext literal after being told what it means.
265
+ * Nothing in this function prints anything.
266
+ */
267
+ export declare function upsertEnvFileEntries(path: string, entries: ReadonlyArray<{
268
+ key: string;
269
+ value: string;
270
+ }>): EnvFileWrite | EnvFileRefusal;
271
+ /** What a helper lookup produced. The value, or a distinct reason it did not. */
272
+ export type SourceOutcome = {
273
+ ok: true;
274
+ value: string;
275
+ } | {
276
+ ok: false;
277
+ code: "helper-binary-missing" | "helper-item-missing" | "helper-failed";
278
+ message: string;
279
+ };
280
+ /**
281
+ * The two helper lookups, injectable.
282
+ *
283
+ * A seam rather than a direct `spawnSync` because the alternative is a test
284
+ * suite that reads the machine's real Keychain, and there is no version of that
285
+ * which is acceptable: it would prompt, it would depend on the developer's own
286
+ * secrets, and on the wrong day it would print one. Tests pass a fake here, and
287
+ * the ONE test that exercises {@link defaultSourceRunner} does it by putting
288
+ * stub `security` / `secret-tool` scripts on the child process's PATH — a real
289
+ * PATH lookup of a real command name, with no test-only flag in the runtime.
290
+ */
291
+ export interface SourceRunner {
292
+ keychain(service: string): SourceOutcome;
293
+ secretService(label: string): SourceOutcome;
294
+ }
295
+ /**
296
+ * `security find-generic-password -a "$USER" -s <service> -w` and
297
+ * `secret-tool lookup approval <label>`.
298
+ *
299
+ * THE VALUE IS NEVER IN AN ARGV, in either direction: the argv carries a service
300
+ * name or a label, and the secret comes back on stdout. An argv is world-readable
301
+ * in `ps` for the length of the call, which is the whole reason `approval vault
302
+ * set` has no `--value` flag either.
303
+ *
304
+ * The exit-status readings are documented heuristics, not contracts. `security`
305
+ * exits 44 (`errSecItemNotFound`) for a missing item; `secret-tool` exits 0 with
306
+ * empty output when the lookup matches nothing. Anything else is
307
+ * {@link "helper-failed"}, which is the honest answer for a locked keyring or a
308
+ * D-Bus that is not running: the repair is not "store the item".
309
+ *
310
+ * The keychain lookup also carries the `HOME` repair APRV-168 found: see the
311
+ * comment on the retry inside {@link defaultSourceRunner}.
312
+ */
313
+ /**
314
+ * The prefix a deferred lookup carries. See {@link NON_RESOLVING_RUNNER}.
315
+ */
316
+ export declare const KEYSTORE_DEFERRED = "not resolved by doctor";
317
+ /**
318
+ * A {@link SourceRunner} that looks nothing up (moved here by APRV-178).
319
+ *
320
+ * `security find-generic-password -w` can raise a keychain-unlock or ACL dialog
321
+ * and `secret-tool lookup` can block on a keyring prompt. Either would hang a
322
+ * command run over ssh or from CI, and a command that pops a keychain prompt
323
+ * also TEACHES people to click through keychain prompts. So the diagnostics —
324
+ * `approval doctor`, and `approval up`'s cross-instance report — resolve
325
+ * keystore-backed variables not at all: they report the scheme and the service
326
+ * name, which `.approval/env` already carries in the open, and leave the actual
327
+ * lookup to `approval env --check`, which a human runs deliberately and watches.
328
+ *
329
+ * It lives beside {@link defaultSourceRunner} rather than in one of its callers
330
+ * because two of them now need it and a second copy would be a second set of
331
+ * words for the same refusal.
332
+ */
333
+ export declare const NON_RESOLVING_RUNNER: SourceRunner;
334
+ export declare const defaultSourceRunner: SourceRunner;
335
+ /** Where a resolved value came from, as a closed set. */
336
+ export type EnvVariableStatus = "set-in-environment" | "resolved-from-keychain" | "resolved-from-secret-service" | "resolved-literal" | "unset";
337
+ /** One variable, resolved. */
338
+ export interface ResolvedVariable {
339
+ /** The variable's NAME, as the policy or the runtime default gave it. */
340
+ name: string;
341
+ status: EnvVariableStatus;
342
+ /** The value, present only when the status is not `unset`. */
343
+ value?: string;
344
+ /**
345
+ * Where it came from, in words, and NEVER a value: `the environment`,
346
+ * `keychain:approval-tg-token`, `literal (plaintext in .approval/env)`,
347
+ * `unset`.
348
+ */
349
+ source: string;
350
+ /**
351
+ * The value is sitting in plaintext in the working tree: a secret-bearing
352
+ * variable resolved from a bare literal.
353
+ *
354
+ * `APPROVAL_HUMAN` and the Telegram chat id are literals in most real files
355
+ * and are not secrets, so they are `false` — but note the `source` label says
356
+ * "literal (plaintext in .approval/env)" for EVERY literal regardless, because
357
+ * the reader deciding whether a file may be committed wants to see all of
358
+ * them.
359
+ */
360
+ plaintext: boolean;
361
+ /** What to do about an `unset`. Absent when there is nothing to do. */
362
+ fix?: string;
363
+ /** Why a resolution failed, when one did. Distinct and machine-readable. */
364
+ refusal?: {
365
+ code: EnvFileRefusalCode;
366
+ message: string;
367
+ };
368
+ /**
369
+ * The policy NAMED this variable (rather than the runtime defaulting it).
370
+ * `approval env --check` fails on an unresolved declared variable and not on
371
+ * an unresolved defaulted one: a policy that asked for something is a promise;
372
+ * a default the operator never mentioned is an offer.
373
+ */
374
+ declared: boolean;
375
+ /** The value would be a secret if it had one: token, passphrase, sampling. */
376
+ secretBearing: boolean;
377
+ /**
378
+ * What the INSTANCE's own `.approval/env` says about this variable, whether
379
+ * or not that is where the value came from (APRV-178).
380
+ *
381
+ * The ambient environment wins over the file and the file is then not even
382
+ * consulted, which is correct and is invariant 7 — but it is also how a
383
+ * production bot token exported in a shell profile silently became a demo
384
+ * instance's channel credential. Nothing could report that, because the
385
+ * resolution discarded the file entry it had ignored. It is kept here so
386
+ * `approval env --check`, `approval doctor` and `approval up` can say "this
387
+ * value is not the one your instance's file names".
388
+ *
389
+ * Value-free by construction: {@link DeclaredSource.service} is filled only
390
+ * for the two keystore schemes, whose argument is a service name the file
391
+ * carries in the open. A `literal` entry's argument IS the secret, so only
392
+ * its KIND is recorded.
393
+ */
394
+ fileSource?: DeclaredSource;
395
+ }
396
+ /** A `.approval/env` line, reduced to what may be printed. */
397
+ export interface DeclaredSource {
398
+ kind: EnvSourceKind;
399
+ /** The service name or label, for `keychain:` and `secret-service:` only. */
400
+ service?: string;
401
+ /** 1-based line number in `.approval/env`. */
402
+ line: number;
403
+ }
404
+ /** A declared source in words, and never a value. */
405
+ export declare function describeDeclaredSource(source: DeclaredSource): string;
406
+ /** The whole answer. */
407
+ export interface EnvResolution {
408
+ ok: true;
409
+ /** Was there a file at all? */
410
+ present: boolean;
411
+ path: string;
412
+ /**
413
+ * {@link envFileDigest} of the bytes this resolution read (APRV-278), or
414
+ * {@link ABSENT_ENV_FILE_DIGEST} when there was no file. It identifies a
415
+ * VERSION of the file and carries none of its contents.
416
+ */
417
+ digest: string;
418
+ variables: ResolvedVariable[];
419
+ }
420
+ interface Wanted {
421
+ name: string;
422
+ declared: boolean;
423
+ secretBearing: boolean;
424
+ /** The repair for an unset one. */
425
+ fix: string;
426
+ }
427
+ /**
428
+ * The variables `approval env` answers for, in a stable order.
429
+ *
430
+ * Five by name — human identity, the Telegram token and chat id, the vault
431
+ * passphrase, and the sampling secret — plus whatever else the policy names by
432
+ * the `_env` convention.
433
+ *
434
+ * The sampling secret is the one conditional member: `audit.sampling_secret_env`
435
+ * has NO default (an unnamed one disables sampling, SPEC.md §5.2), so listing a
436
+ * made-up variable for it would invent configuration the operator never chose.
437
+ * The other four all have defaults and are always listed.
438
+ */
439
+ export declare function wantedVariables(load: PolicyLoadResult): Wanted[];
440
+ /**
441
+ * Resolve every variable the policy implies, against the ambient environment
442
+ * first and the source map second.
443
+ *
444
+ * **The ambient environment always wins.** A variable already exported in the
445
+ * calling shell is reported `set-in-environment` and its file entry is not even
446
+ * consulted: the human's shell is the authority (that is invariant 7's whole
447
+ * point), and a file that could override an exported value would be a file that
448
+ * silently redirects a gate operation's credentials.
449
+ *
450
+ * A whole-file refusal (bad mode, unreadable, unparseable) is returned as-is:
451
+ * partial resolution of a file the runtime cannot fully read is how a typo turns
452
+ * into a half-configured environment.
453
+ */
454
+ export declare function resolveEnvironment(load: PolicyLoadResult, envFilePath: string, runner?: SourceRunner, ambientEnv?: NodeJS.ProcessEnv): EnvResolution | EnvFileRefusal;
455
+ export {};
@@ -24,6 +24,8 @@
24
24
  *
25
25
  * - `keychain:<service>` — macOS, `security find-generic-password -a "$USER"
26
26
  * -s <service> -w`. The value comes back on stdout and is never in an argv.
27
+ * A failed lookup is retried once with `HOME` pinned to the passwd home,
28
+ * because macOS finds the login keychain through `HOME` (APRV-168).
27
29
  * - `secret-service:<label>` — Linux desktop, `secret-tool lookup approval
28
30
  * <label>`. Same property.
29
31
  * - `env:` — inherited from the ambient environment. A documentation form: it
@@ -481,6 +483,9 @@ function stripOneNewline(text) {
481
483
  * empty output when the lookup matches nothing. Anything else is
482
484
  * {@link "helper-failed"}, which is the honest answer for a locked keyring or a
483
485
  * D-Bus that is not running: the repair is not "store the item".
486
+ *
487
+ * The keychain lookup also carries the `HOME` repair APRV-168 found: see the
488
+ * comment on the retry inside {@link defaultSourceRunner}.
484
489
  */
485
490
  /**
486
491
  * The prefix a deferred lookup carries. See {@link NON_RESOLVING_RUNNER}.
@@ -518,10 +523,64 @@ export const NON_RESOLVING_RUNNER = {
518
523
  };
519
524
  },
520
525
  };
526
+ /**
527
+ * The account owner's home directory AS THE PASSWD DATABASE HAS IT, or `null`.
528
+ *
529
+ * Deliberately not `os.homedir()`, which returns `$HOME` when it is set and so
530
+ * answers with whatever a caller's parent put there. `os.userInfo()` reads the
531
+ * passwd entry for this uid, which is what macOS itself means by "this user's
532
+ * home". Wrapped because `userInfo()` throws for a uid with no passwd entry.
533
+ */
534
+ function passwdHome() {
535
+ try {
536
+ const home = userInfo().homedir;
537
+ return typeof home === "string" && home.length > 0 ? home : null;
538
+ }
539
+ catch {
540
+ return null;
541
+ }
542
+ }
543
+ /** One `security find-generic-password`, optionally with `HOME` pinned. */
544
+ function findGenericPassword(service, account, home) {
545
+ return spawnSync("security", ["find-generic-password", "-a", account, "-s", service, "-w"], home === null
546
+ ? { encoding: "utf8" }
547
+ : { encoding: "utf8", env: { ...process.env, HOME: home } });
548
+ }
521
549
  export const defaultSourceRunner = {
522
550
  keychain(service) {
523
551
  const account = process.env["USER"] ?? userInfo().username;
524
- const result = spawnSync("security", ["find-generic-password", "-a", account, "-s", service, "-w"], { encoding: "utf8" });
552
+ let result = findGenericPassword(service, account, null);
553
+ // APRV-168: `security` finds the LOGIN KEYCHAIN through `$HOME`.
554
+ //
555
+ // The keychain search list is a per-user preference, and the Security
556
+ // framework reads preferences from the home directory the environment
557
+ // names. A process whose `HOME` points somewhere else therefore searches a
558
+ // list holding only `/Library/Keychains/System.keychain` — no login
559
+ // keychain, no default keychain, and `errSecItemNotFound` (44) for an item
560
+ // that is plainly there in the operator's own terminal. Observed on
561
+ // 2026-09-19, live, in the web-agent demo's finale: the demo server gives
562
+ // the agent child a `HOME` under the instance so that no operator plugin,
563
+ // hook or memory file reaches an attendee's session, and the adapter in
564
+ // that child, holding a token a human had just approved, could not resolve
565
+ // the `keychain:` line the instance's own `.approval/env` names.
566
+ //
567
+ // So a failed lookup is retried once with `HOME` pinned to the passwd
568
+ // home. That grants nothing: any process running as this uid can spawn
569
+ // `security` with any `HOME` it likes, and what actually guards a keychain
570
+ // item is the keychain's lock state and the item's ACL, both untouched
571
+ // here. What it removes is an accidental dependency on an inherited
572
+ // variable that has nothing to do with credentials.
573
+ //
574
+ // The first attempt's answer is the one reported when the retry does not
575
+ // succeed, so every refusal below means exactly what it meant before.
576
+ if (result.error === undefined && result.status !== 0) {
577
+ const home = passwdHome();
578
+ if (home !== null && process.env["HOME"] !== home) {
579
+ const retried = findGenericPassword(service, account, home);
580
+ if (retried.error === undefined && retried.status === 0)
581
+ result = retried;
582
+ }
583
+ }
525
584
  if (result.error !== undefined) {
526
585
  const code = result.error.code;
527
586
  if (code === "ENOENT") {
@@ -1 +1 @@
1
- {"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../../src/core/env-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,OAAO,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAE5C,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,2EAA2E;IAC3E,eAAe;IACf;;;;;;OAMG;IACH,aAAa;IACb,+DAA+D;IAC/D,iBAAiB;IACjB,gFAAgF;IAChF,sBAAsB;IACtB,6EAA6E;IAC7E,wBAAwB;IACxB,wEAAwE;IACxE,yBAAyB;IACzB,2EAA2E;IAC3E,sBAAsB;IACtB,+EAA+E;IAC/E,uBAAuB;IACvB,iFAAiF;IACjF,qBAAqB;IACrB,2EAA2E;IAC3E,eAAe;IACf;;;;OAIG;IACH,uBAAuB;CACf,CAAC;AAeX,SAAS,MAAM,CACb,IAAwB,EACxB,IAAY,EACZ,OAAe,EACf,IAAa;IAEb,OAAO,IAAI,KAAK,SAAS;QACvB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QACpC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAwBD,sEAAsE;AACtE,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAEvD;;;;GAIG;AACH,MAAM,cAAc,GAAG,4BAA4B,CAAC;AAEpD,yCAAyC;AACzC,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC;IACjD,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,SAAS;CACV,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,mEAAmE;IACnE,SAAS;IACT,WAAW;IACX,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,YAAY;IACZ,SAAS;IACT,8CAA8C;IAC9C,aAAa;IACb,WAAW;IACX,OAAO;IACP,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,sEAAsE;IACtE,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,aAAa;IACb,WAAW;IACX,UAAU;IACV,OAAO;IACP,SAAS;CACV,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,IAAY;IAEZ,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAE9D,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAO,MAAM,CACX,iBAAiB,EACjB,IAAI,EACJ,QAAQ,MAAM,CAAC,IAAI,CAAC,0JAA0J,EAC9K,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,MAAM,CACX,iBAAiB,EACjB,IAAI,EACJ,QAAQ,MAAM,CAAC,IAAI,CAAC,+CAA+C,EACnE,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,MAAM,CACX,sBAAsB,EACtB,IAAI,EACJ,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,uEAAuE,EACnH,IAAI,CACL,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CACX,wBAAwB,EACxB,IAAI,EACJ,GAAG,GAAG,2BAA2B,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,0DAA0D,EAC5H,IAAI,CACL,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEpB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,MAAM,CACX,sBAAsB,EACtB,IAAI,EACJ,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,8BAA8B,GAAG,oEAAoE,EACjI,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAW,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAW,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,uEAAuE;gBACvE,sEAAsE;gBACtE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,SAAS;YACX,CAAC;YACD,OAAO,MAAM,CACX,yBAAyB,EACzB,IAAI,EACJ,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,4BAA4B,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,iPAAiP,GAAG,YAAY,IAAI,kEAAkE,EACxZ,IAAI,CACL,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CACX,sBAAsB,EACtB,IAAI,EACJ,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,wCAAwC,EACpE,IAAI,CACL,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,uEAAuE;YACvE,qEAAqE;YACrE,4BAA4B;YAC5B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,MAAM,CACX,iBAAiB,EACjB,IAAI,EACJ,QAAQ,MAAM,CAAC,IAAI,CAAC,wDAAwD,GAAG,wIAAwI,EACvN,IAAI,CACL,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,CACX,iBAAiB,EACjB,IAAI,EACJ,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,kBAAkB,EAChH,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AAQxD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;QACzF,CAAC;QACD,OAAO,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,yBAAyB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,wBAAwB,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IAChC,IAAI,IAAI,KAAK,sBAAsB,EAAE,CAAC;QACpC,OAAO,MAAM,CACX,eAAe,EACf,IAAI,EACJ,GAAG,IAAI,aAAa,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,+FAA+F,IAAI,EAAE,CAC3J,CAAC;IACJ,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,uBAAuB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AACjG,CAAC;AAiCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,OAAsD;IAEtD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,CACX,sBAAsB,EACtB,IAAI,EACJ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,+FAA+F,CAC5H,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CACX,sBAAsB,EACtB,IAAI,EACJ,GAAG,KAAK,CAAC,GAAG,mFAAmF,CAChG,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CACX,iBAAiB,EACjB,IAAI,EACJ,iBAAiB,KAAK,CAAC,GAAG,wEAAwE,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,0BAA0B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,6EAA6E;IAC7E,kEAAkE;IAClE,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAExF,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC;QACjE,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACvF,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAI,KAAK,CAAC,KAAK,CAAY,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ;YACR,SAAS,EAAE,QAAQ,KAAK,KAAK,CAAC,KAAK;SACpC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAE/D,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,2EAA2E;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,yBAAyB;QACzB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC9E,SAAS,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,0BAA0B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;AACjE,CAAC;AA+BD,kFAAkF;AAClF,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,QAAQ,CAAC,OAAe;QACtB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,GAAG,iBAAiB,cAAc,OAAO,iNAAiN;SACpQ,CAAC;IACJ,CAAC;IACD,aAAa,CAAC,KAAa;QACzB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,GAAG,iBAAiB,oBAAoB,KAAK,0LAA0L;SACjP,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,QAAQ,CAAC,OAAe;QACtB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC,QAAQ,CAAC;QAC3D,MAAM,MAAM,GAAG,SAAS,CACtB,UAAU,EACV,CAAC,uBAAuB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAC7D,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAI,MAAM,CAAC,KAA+B,CAAC,IAAI,CAAC;YAC1D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,uBAAuB;oBAC7B,OAAO,EACL,mGAAmG;iBACtG,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,8BAA8B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC7G,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACzB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,mCAAmC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB;aACnI,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,mBAAmB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;SAClG,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7F,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAI,MAAM,CAAC,KAA+B,CAAC,IAAI,CAAC;YAC1D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,uBAAuB;oBAC7B,OAAO,EACL,oIAAoI;iBACvI,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,iCAAiC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACjE,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,kDAAkD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;iBACnF,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,kDAAkD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;aACnF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,sBAAsB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;SAC3F,CAAC;IACJ,CAAC;CACF,CAAC;AAgFF,uEAAuE;AACvE,SAAS,gBAAgB,CAAC,KAAmB;IAC3C,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;QACjE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;QACjE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,sBAAsB,CAAC,MAAsB;IAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC;IACrD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,kBAAkB,CAAC;IACrD,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;AAClD,CAAC;AAyBD,kFAAkF;AAClF,SAAS,QAAQ,CAAC,KAAoB,EAAE,IAAY;IAClD,OAAO,KAAK,KAAK,IAAI;QACnB,CAAC,CAAC,6CAA6C,IAAI,gCAAgC,IAAI,4BAA4B;QACnH,CAAC,CAAC,wBAAwB,KAAK,4BAA4B,IAAI,4BAA4B,CAAC;AAChG,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,YAAY,CAAC,IAAa,EAAE,KAAwB;IAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO;IACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,EAAE,CAAC;QAC3E,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1E,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAW,EAAE;QAChD,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,MAAM,GAAa;QACvB;YACE,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;SAC3C;QACD;YACE,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,gBAAgB,CAAC,WAAW,CAAC;YACvC,aAAa,EAAE,IAAI;YACnB,GAAG,EAAE,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;SAC7D;QACD;YACE,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;YAC9B,QAAQ,EAAE,gBAAgB,CAAC,aAAa,CAAC;YACzC,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;SAC5D;QACD;YACE,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;YAC5B,QAAQ,EACN,OAAO,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,QAAQ;gBACjD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YACxC,aAAa,EAAE,IAAI;YACnB,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC/C;KACF,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,EAAE,KAAK,EAAE,mBAAmB,CAAC;IACvD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,GAAG,EAAE,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;IACvC,IAAI,MAAM,KAAK,IAAI;QAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC;YACV,uEAAuE;YACvE,qEAAqE;YACrE,wEAAwE;YACxE,gCAAgC;YAChC,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,cAAc,GAAG,sCAAsC,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAsB,EACtB,WAAmB,EACnB,MAAM,GAAiB,mBAAmB,EAC1C,UAAU,GAAsB,OAAO,CAAC,GAAG;IAE3C,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO;QAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;AAC9F,CAAC;AAED,SAAS,UAAU,CACjB,IAAY,EACZ,KAA+B,EAC/B,MAAoB,EACpB,UAA6B;IAE7B,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;KACxE,CAAC;IAEF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,eAAe;YACvB,SAAS,EAAE,KAAK;YAChB,GAAG,EAAE,6GAA6G;YAClH,OAAO,EAAE;gBACP,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gJAAgJ;aACtL;SACF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,oBAAoB;YAC5B,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,gEAAgE;YACxE,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IACxF,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,KAAK,CAAC,QAAQ;YACrB,MAAM,EAAE,cAAc;YACtB,SAAS,EAAE,IAAI,CAAC,aAAa;SAC9B,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,0DAA0D;YAClE,SAAS,EAAE,KAAK;YAChB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GACX,KAAK,CAAC,IAAI,KAAK,UAAU;QACvB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IAEhD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,KAAK;YAChB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;SAC1D,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,KAAK;YAChB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,GAAG,KAAK,wDAAwD;aAC1E;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,8BAA8B;QAC7F,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../../src/core/env-file.ts"],"names":[],"mappings":"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"}