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.
- package/README.md +629 -559
- package/SPEC.md +99 -24
- package/dist/src/adapters/agentmail.d.ts +426 -0
- package/dist/src/adapters/agentmail.js +2 -2
- package/dist/src/adapters/conformance.d.ts +149 -0
- package/dist/src/adapters/contract.d.ts +628 -0
- package/dist/src/adapters/contract.js +110 -16
- package/dist/src/adapters/contract.js.map +1 -1
- package/dist/src/adapters/email.d.ts +324 -0
- package/dist/src/adapters/env-passphrase.d.ts +93 -0
- package/dist/src/adapters/public.d.ts +11 -0
- package/dist/src/adapters/public.js +11 -0
- package/dist/src/adapters/public.js.map +1 -0
- package/dist/src/adapters/registry.d.ts +59 -0
- package/dist/src/adapters/registry.js +2 -1
- package/dist/src/adapters/registry.js.map +1 -1
- package/dist/src/adapters/smtp.d.ts +213 -0
- package/dist/src/adapters/vault-provider.d.ts +114 -0
- package/dist/src/adapters/vault-provider.js +3 -3
- package/dist/src/adapters/zzz.d.ts +66 -0
- package/dist/src/adapters/zzz.js +299 -0
- package/dist/src/adapters/zzz.js.map +1 -0
- package/dist/src/channels/batch.d.ts +109 -0
- package/dist/src/channels/cli.d.ts +193 -0
- package/dist/src/channels/conformance.d.ts +92 -0
- package/dist/src/channels/contract.d.ts +656 -0
- package/dist/src/channels/contract.js +200 -7
- package/dist/src/channels/contract.js.map +1 -1
- package/dist/src/channels/payload-view.d.ts +35 -0
- package/dist/src/channels/render-queue.d.ts +149 -0
- package/dist/src/channels/tagging.d.ts +196 -0
- package/dist/src/channels/telegram.d.ts +1944 -0
- package/dist/src/channels/telegram.js +218 -23
- package/dist/src/channels/telegram.js.map +1 -1
- package/dist/src/channels/web.d.ts +350 -0
- package/dist/src/channels/web.js +17 -0
- package/dist/src/channels/web.js.map +1 -1
- package/dist/src/cli/adapter.d.ts +90 -0
- package/dist/src/cli/adapter.js +25 -15
- package/dist/src/cli/adapter.js.map +1 -1
- package/dist/src/cli/amend.d.ts +59 -0
- package/dist/src/cli/amend.js +214 -30
- package/dist/src/cli/amend.js.map +1 -1
- package/dist/src/cli/args.d.ts +43 -0
- package/dist/src/cli/attest.d.ts +50 -0
- package/dist/src/cli/attest.js +134 -7
- package/dist/src/cli/attest.js.map +1 -1
- package/dist/src/cli/audit-card.d.ts +62 -0
- package/dist/src/cli/audit.d.ts +59 -0
- package/dist/src/cli/channel-telegram.d.ts +879 -0
- package/dist/src/cli/channel-telegram.js +311 -13
- package/dist/src/cli/channel-telegram.js.map +1 -1
- package/dist/src/cli/channel-web.d.ts +131 -0
- package/dist/src/cli/channel.d.ts +80 -0
- package/dist/src/cli/channel.js +9 -0
- package/dist/src/cli/channel.js.map +1 -1
- package/dist/src/cli/checkpoint-tap.d.ts +169 -0
- package/dist/src/cli/codex-bridge.d.ts +819 -0
- package/dist/src/cli/codex-bridge.js +1607 -0
- package/dist/src/cli/codex-bridge.js.map +1 -0
- package/dist/src/cli/codex.d.ts +2 -0
- package/dist/src/cli/codex.js +469 -0
- package/dist/src/cli/codex.js.map +1 -0
- package/dist/src/cli/coverage.d.ts +61 -0
- package/dist/src/cli/daemon.d.ts +120 -0
- package/dist/src/cli/daemon.js +4 -1
- package/dist/src/cli/daemon.js.map +1 -1
- package/dist/src/cli/doctor.d.ts +129 -0
- package/dist/src/cli/doctor.js +586 -17
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/env.d.ts +65 -0
- package/dist/src/cli/execute.d.ts +202 -0
- package/dist/src/cli/execute.js +25 -2
- package/dist/src/cli/execute.js.map +1 -1
- package/dist/src/cli/exit-codes.d.ts +73 -0
- package/dist/src/cli/feedback.d.ts +60 -0
- package/dist/src/cli/gate-window.d.ts +40 -0
- package/dist/src/cli/gate.d.ts +68 -0
- package/dist/src/cli/git-scope.d.ts +190 -0
- package/dist/src/cli/gloss-attach.d.ts +85 -0
- package/dist/src/cli/gloss-codex-child.d.ts +9 -0
- package/dist/src/cli/gloss-codex.d.ts +24 -0
- package/dist/src/cli/gloss-options.d.ts +42 -0
- package/dist/src/cli/gloss.d.ts +265 -0
- package/dist/src/cli/help.d.ts +107 -0
- package/dist/src/cli/help.js +320 -93
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook-codex.d.ts +126 -0
- package/dist/src/cli/hook-codex.js +226 -0
- package/dist/src/cli/hook-codex.js.map +1 -0
- package/dist/src/cli/hook.d.ts +787 -0
- package/dist/src/cli/hook.js +1235 -181
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/import.d.ts +35 -0
- package/dist/src/cli/import.js +1 -1
- package/dist/src/cli/import.js.map +1 -1
- package/dist/src/cli/init.d.ts +84 -0
- package/dist/src/cli/init.js +2 -2
- package/dist/src/cli/init.js.map +1 -1
- package/dist/src/cli/instructions.d.ts +23 -0
- package/dist/src/cli/journal.d.ts +41 -0
- package/dist/src/cli/log-advance.d.ts +287 -0
- package/dist/src/cli/log-advance.js +102 -11
- package/dist/src/cli/log-advance.js.map +1 -1
- package/dist/src/cli/log-anchor.d.ts +176 -0
- package/dist/src/cli/log-checkpoint.d.ts +22 -0
- package/dist/src/cli/log-sync.d.ts +243 -0
- package/dist/src/cli/log-verbs.d.ts +16 -0
- package/dist/src/cli/log-verbs.js +7 -1
- package/dist/src/cli/log-verbs.js.map +1 -1
- package/dist/src/cli/long-help.d.ts +70 -0
- package/dist/src/cli/main.d.ts +77 -0
- package/dist/src/cli/main.js +159 -7
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/mcp.d.ts +52 -0
- package/dist/src/cli/paths.d.ts +56 -0
- package/dist/src/cli/payload.d.ts +58 -0
- package/dist/src/cli/policy-apply.d.ts +195 -0
- package/dist/src/cli/policy-apply.js +573 -0
- package/dist/src/cli/policy-apply.js.map +1 -0
- package/dist/src/cli/policy.d.ts +43 -0
- package/dist/src/cli/policy.js +14 -1
- package/dist/src/cli/policy.js.map +1 -1
- package/dist/src/cli/preflight.d.ts +501 -0
- package/dist/src/cli/preflight.js +689 -45
- package/dist/src/cli/preflight.js.map +1 -1
- package/dist/src/cli/progress.d.ts +78 -0
- package/dist/src/cli/prompt.d.ts +209 -0
- package/dist/src/cli/quickstart.d.ts +46 -0
- package/dist/src/cli/quickstart.js +297 -0
- package/dist/src/cli/quickstart.js.map +1 -0
- package/dist/src/cli/records.d.ts +34 -0
- package/dist/src/cli/render.d.ts +22 -0
- package/dist/src/cli/sandbox.d.ts +51 -0
- package/dist/src/cli/sandbox.js +17 -1
- package/dist/src/cli/sandbox.js.map +1 -1
- package/dist/src/cli/scaffold.d.ts +79 -0
- package/dist/src/cli/scaffold.js +1 -1
- package/dist/src/cli/setup-adapter.d.ts +137 -0
- package/dist/src/cli/setup-adapter.js +38 -4
- package/dist/src/cli/setup-adapter.js.map +1 -1
- package/dist/src/cli/setup-channel.d.ts +126 -0
- package/dist/src/cli/setup-channel.js +28 -1
- package/dist/src/cli/setup-channel.js.map +1 -1
- package/dist/src/cli/setup-checkpoint.d.ts +57 -0
- package/dist/src/cli/setup-common.d.ts +277 -0
- package/dist/src/cli/setup-common.js +3 -2
- package/dist/src/cli/setup-common.js.map +1 -1
- package/dist/src/cli/setup-flow.d.ts +287 -0
- package/dist/src/cli/setup-service.d.ts +96 -0
- package/dist/src/cli/setup.d.ts +204 -0
- package/dist/src/cli/setup.js +94 -2
- package/dist/src/cli/setup.js.map +1 -1
- package/dist/src/cli/style.d.ts +320 -0
- package/dist/src/cli/token.d.ts +39 -0
- package/dist/src/cli/up.d.ts +155 -0
- package/dist/src/cli/up.js +119 -53
- package/dist/src/cli/up.js.map +1 -1
- package/dist/src/cli/usage.d.ts +37 -0
- package/dist/src/cli/values.d.ts +40 -0
- package/dist/src/cli/values.js +3 -4
- package/dist/src/cli/values.js.map +1 -1
- package/dist/src/cli/vault.d.ts +59 -0
- package/dist/src/cli/vault.js +2 -2
- package/dist/src/cli/vault.js.map +1 -1
- package/dist/src/cli/verb-registry.d.ts +76 -0
- package/dist/src/cli/verb-registry.js +344 -11
- package/dist/src/cli/verb-registry.js.map +1 -1
- package/dist/src/cli/wordmark.d.ts +31 -0
- package/dist/src/cli/wordmark.js +2 -2
- package/dist/src/codex/broker.d.ts +229 -0
- package/dist/src/codex/broker.js +548 -0
- package/dist/src/codex/broker.js.map +1 -0
- package/dist/src/codex/doctor.d.ts +13 -0
- package/dist/src/codex/doctor.js +41 -0
- package/dist/src/codex/doctor.js.map +1 -0
- package/dist/src/codex/manifest.d.ts +49 -0
- package/dist/src/codex/manifest.js +103 -0
- package/dist/src/codex/manifest.js.map +1 -0
- package/dist/src/codex/runner.d.ts +178 -0
- package/dist/src/codex/runner.js +231 -0
- package/dist/src/codex/runner.js.map +1 -0
- package/dist/src/codex/serve.d.ts +56 -0
- package/dist/src/codex/serve.js +98 -0
- package/dist/src/codex/serve.js.map +1 -0
- package/dist/src/codex/templates.d.ts +41 -0
- package/dist/src/codex/templates.js +319 -0
- package/dist/src/codex/templates.js.map +1 -0
- package/dist/src/codex/trust.d.ts +19 -0
- package/dist/src/codex/trust.js +183 -0
- package/dist/src/codex/trust.js.map +1 -0
- package/dist/src/codex/workspace-commit.d.ts +219 -0
- package/dist/src/codex/workspace-commit.js +549 -0
- package/dist/src/codex/workspace-commit.js.map +1 -0
- package/dist/src/codex/workspace-plan.d.ts +131 -0
- package/dist/src/codex/workspace-plan.js +561 -0
- package/dist/src/codex/workspace-plan.js.map +1 -0
- package/dist/src/core/actor.d.ts +2 -0
- package/dist/src/core/actor.js +5 -0
- package/dist/src/core/actor.js.map +1 -0
- package/dist/src/core/advance-cycle.d.ts +221 -0
- package/dist/src/core/advance-cycle.js +66 -2
- package/dist/src/core/advance-cycle.js.map +1 -1
- package/dist/src/core/agents-md.d.ts +278 -0
- package/dist/src/core/agents-md.js +33 -31
- package/dist/src/core/agents-md.js.map +1 -1
- package/dist/src/core/apply-patch.d.ts +49 -0
- package/dist/src/core/apply-patch.js +266 -0
- package/dist/src/core/apply-patch.js.map +1 -0
- package/dist/src/core/attest.d.ts +635 -0
- package/dist/src/core/attest.js +326 -4
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +510 -0
- package/dist/src/core/audit.js +13 -0
- package/dist/src/core/audit.js.map +1 -1
- package/dist/src/core/budgets.d.ts +238 -0
- package/dist/src/core/channel-owner.d.ts +213 -0
- package/dist/src/core/channel-owner.js +358 -0
- package/dist/src/core/channel-owner.js.map +1 -0
- package/dist/src/core/checkpoint.d.ts +500 -0
- package/dist/src/core/child-env.d.ts +88 -0
- package/dist/src/core/clock.d.ts +52 -0
- package/dist/src/core/command-class.d.ts +697 -0
- package/dist/src/core/command-class.js +713 -25
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/commit-guard.d.ts +272 -0
- package/dist/src/core/commit-guard.js +424 -0
- package/dist/src/core/commit-guard.js.map +1 -0
- package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
- package/dist/src/core/coverage-sources/gh.d.ts +48 -0
- package/dist/src/core/coverage-sources/git.d.ts +101 -0
- package/dist/src/core/coverage.d.ts +217 -0
- package/dist/src/core/credential-spec.d.ts +72 -0
- package/dist/src/core/daemon-actor.d.ts +45 -0
- package/dist/src/core/daemon-actor.js +54 -0
- package/dist/src/core/daemon-actor.js.map +1 -0
- package/dist/src/core/dark-session.d.ts +432 -0
- package/dist/src/core/dark-session.js +266 -82
- package/dist/src/core/dark-session.js.map +1 -1
- package/dist/src/core/decision-refusal.d.ts +206 -0
- package/dist/src/core/decision-refusal.js +24 -2
- package/dist/src/core/decision-refusal.js.map +1 -1
- package/dist/src/core/env-file.d.ts +455 -0
- package/dist/src/core/env-file.js +60 -1
- package/dist/src/core/env-file.js.map +1 -1
- package/dist/src/core/execute.d.ts +871 -0
- package/dist/src/core/execute.js +59 -8
- package/dist/src/core/execute.js.map +1 -1
- package/dist/src/core/frontmatter.d.ts +78 -0
- package/dist/src/core/gate-window.d.ts +312 -0
- package/dist/src/core/gate.d.ts +1449 -0
- package/dist/src/core/gate.js +149 -14
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/gesture-refusal.d.ts +166 -0
- package/dist/src/core/gesture-refusal.js +188 -0
- package/dist/src/core/gesture-refusal.js.map +1 -0
- package/dist/src/core/git-run.d.ts +73 -0
- package/dist/src/core/harness-version.d.ts +157 -0
- package/dist/src/core/harness-version.js +4 -1
- package/dist/src/core/harness-version.js.map +1 -1
- package/dist/src/core/harness-wait.d.ts +55 -0
- package/dist/src/core/head-retry.d.ts +107 -0
- package/dist/src/core/instance.d.ts +310 -0
- package/dist/src/core/instance.js +113 -0
- package/dist/src/core/instance.js.map +1 -1
- package/dist/src/core/intake-limits.d.ts +247 -0
- package/dist/src/core/jcs.d.ts +52 -0
- package/dist/src/core/journal.d.ts +144 -0
- package/dist/src/core/live-draw.d.ts +436 -0
- package/dist/src/core/log-reconcile.d.ts +89 -0
- package/dist/src/core/log-subscribe.d.ts +36 -0
- package/dist/src/core/log-subscribe.js +162 -0
- package/dist/src/core/log-subscribe.js.map +1 -0
- package/dist/src/core/log.d.ts +316 -0
- package/dist/src/core/log.js.map +1 -1
- package/dist/src/core/loop.d.ts +274 -0
- package/dist/src/core/loop.js +11 -0
- package/dist/src/core/loop.js.map +1 -1
- package/dist/src/core/md-fence.d.ts +41 -0
- package/dist/src/core/money.d.ts +147 -0
- package/dist/src/core/payload-census.d.ts +74 -0
- package/dist/src/core/payload-store.d.ts +175 -0
- package/dist/src/core/payload.d.ts +71 -0
- package/dist/src/core/policy-diff.d.ts +292 -0
- package/dist/src/core/policy-diff.js +27 -4
- package/dist/src/core/policy-diff.js.map +1 -1
- package/dist/src/core/policy-expectations.d.ts +199 -0
- package/dist/src/core/policy-explain.d.ts +160 -0
- package/dist/src/core/policy-explain.js +63 -3
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +567 -0
- package/dist/src/core/policy-load.js +36 -6
- package/dist/src/core/policy-load.js.map +1 -1
- package/dist/src/core/policy-match.d.ts +324 -0
- package/dist/src/core/policy-match.js +72 -9
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +317 -0
- package/dist/src/core/policy-proposal.js +102 -2
- package/dist/src/core/policy-proposal.js.map +1 -1
- package/dist/src/core/prompt-layout.d.ts +221 -0
- package/dist/src/core/protected-path-guard.d.ts +566 -0
- package/dist/src/core/protected-path-guard.js +848 -55
- package/dist/src/core/protected-path-guard.js.map +1 -1
- package/dist/src/core/question-preempted.d.ts +141 -0
- package/dist/src/core/question-preempted.js +152 -0
- package/dist/src/core/question-preempted.js.map +1 -0
- package/dist/src/core/read-scope.d.ts +172 -0
- package/dist/src/core/read-scope.js +252 -0
- package/dist/src/core/read-scope.js.map +1 -0
- package/dist/src/core/registration.d.ts +25 -0
- package/dist/src/core/reindex.d.ts +99 -0
- package/dist/src/core/sampler.d.ts +313 -0
- package/dist/src/core/sandbox.d.ts +371 -0
- package/dist/src/core/sandbox.js +190 -1
- package/dist/src/core/sandbox.js.map +1 -1
- package/dist/src/core/seal.d.ts +165 -0
- package/dist/src/core/sender-identity.d.ts +476 -0
- package/dist/src/core/sender-identity.js +572 -0
- package/dist/src/core/sender-identity.js.map +1 -0
- package/dist/src/core/shlex.d.ts +102 -0
- package/dist/src/core/shlex.js +159 -0
- package/dist/src/core/shlex.js.map +1 -0
- package/dist/src/core/state.d.ts +505 -0
- package/dist/src/core/task-file.d.ts +185 -0
- package/dist/src/core/telegram-config.d.ts +93 -0
- package/dist/src/core/token.d.ts +409 -0
- package/dist/src/core/token.js +21 -38
- package/dist/src/core/token.js.map +1 -1
- package/dist/src/core/validate.d.ts +138 -0
- package/dist/src/core/values.d.ts +147 -0
- package/dist/src/core/values.js +36 -1
- package/dist/src/core/values.js.map +1 -1
- package/dist/src/core/vault.d.ts +291 -0
- package/dist/src/core/verified-snapshot.d.ts +204 -0
- package/dist/src/core/verify.d.ts +336 -0
- package/dist/src/core/version.d.ts +8 -0
- package/dist/src/core/wysiwys.d.ts +370 -0
- package/dist/src/daemon/advance-child.d.ts +39 -0
- package/dist/src/daemon/advance.d.ts +476 -0
- package/dist/src/daemon/advance.js +25 -4
- package/dist/src/daemon/advance.js.map +1 -1
- package/dist/src/daemon/audit.d.ts +87 -0
- package/dist/src/daemon/daemon.d.ts +1180 -0
- package/dist/src/daemon/daemon.js +9 -0
- package/dist/src/daemon/daemon.js.map +1 -1
- package/dist/src/daemon/dark-session.d.ts +64 -0
- package/dist/src/daemon/draw-child.d.ts +36 -0
- package/dist/src/daemon/draw.d.ts +154 -0
- package/dist/src/daemon/git-evidence.d.ts +173 -0
- package/dist/src/daemon/git-evidence.js +1 -1
- package/dist/src/daemon/projection.d.ts +180 -0
- package/dist/src/daemon/prune.d.ts +207 -0
- package/dist/src/mcp/http.d.ts +113 -0
- package/dist/src/mcp/server.d.ts +265 -0
- package/dist/src/mcp/server.js +17 -1
- package/dist/src/mcp/server.js.map +1 -1
- package/docs/adapter-api.md +106 -0
- package/docs/cli-reference.md +1316 -63
- package/docs/codex-enforced-session.md +103 -0
- package/docs/codex-workspace-broker.md +118 -0
- package/package.json +14 -2
- package/schema/codex-instance.schema.json +82 -0
- package/schema/event.schema.json +539 -9
- package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
- package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
- package/schema/fixtures/event/invalid/approval-granted-sender-hashed-false.json +20 -0
- package/schema/fixtures/event/invalid/approval-granted-sender-hashed-raw-id.json +20 -0
- package/schema/fixtures/event/invalid/audit-gesture-refused-human-actor.json +16 -0
- package/schema/fixtures/event/invalid/audit-gesture-refused-no-actor-no-sender.json +15 -0
- package/schema/fixtures/event/invalid/audit-gesture-refused-unknown-gesture.json +16 -0
- package/schema/fixtures/event/invalid/audit-question-preempted-agent-actor.json +16 -0
- package/schema/fixtures/event/invalid/audit-question-preempted-no-question-id.json +16 -0
- package/schema/fixtures/event/invalid/audit-question-preempted-unknown-source.json +15 -0
- package/schema/fixtures/event/invalid/gate-path-signed-off-absolute-path.json +14 -0
- package/schema/fixtures/event/invalid/gate-path-signed-off-agent-actor.json +14 -0
- package/schema/fixtures/event/invalid/gate-path-signed-off-missing-path.json +13 -0
- package/schema/fixtures/event/valid/approval-granted-sender-hashed.json +20 -0
- package/schema/fixtures/event/valid/audit-gesture-refused-review-note.json +21 -0
- package/schema/fixtures/event/valid/audit-gesture-refused-sender-key-unavailable.json +19 -0
- package/schema/fixtures/event/valid/audit-gesture-refused.json +19 -0
- package/schema/fixtures/event/valid/audit-question-preempted-no-verdict.json +16 -0
- package/schema/fixtures/event/valid/audit-question-preempted.json +20 -0
- package/schema/fixtures/event/valid/gate-path-signed-off.json +14 -0
- package/schema/fixtures/event/valid/harness-kind-claude-code.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-codex.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-cursor.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-grok.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-muse.json +23 -0
- package/schema/fixtures/policy/invalid/senders-half-keyed.json +20 -0
- package/schema/fixtures/policy/valid/canonical.json +1 -1
- package/schema/fixtures/policy/valid/senders-keyed.json +24 -0
- package/schema/fixtures/policy-md/valid/canonical.md +1 -1
- package/schema/fixtures/policy-md/valid/with-values.md +5 -7
- package/schema/fixtures/values/invalid/class-shaped.json +1 -1
- package/schema/fixtures/values/invalid/duplicate-entry.json +1 -1
- package/schema/fixtures/values/invalid/non-string-item.json +1 -1
- package/schema/fixtures/values/invalid/over-cap.json +1 -1
- package/schema/fixtures/values/invalid/unknown-key.json +1 -1
- package/schema/fixtures/values/invalid/version-float.json +1 -0
- package/schema/fixtures/values/invalid/version-integer.json +1 -0
- package/schema/fixtures/values/invalid/version-wrong-string.json +1 -0
- package/schema/fixtures/values/valid/empty-lists.json +2 -3
- package/schema/fixtures/values/valid/full.json +5 -7
- package/schema/fixtures/values/valid/minimal.json +1 -1
- package/schema/fixtures/values-md/invalid/schema-invalid.md +5 -3
- package/schema/fixtures/values-md/invalid/two-blocks.md +3 -3
- package/schema/fixtures/values-md/invalid/unterminated.md +2 -2
- package/schema/fixtures/values-md/invalid/version-1.md +69 -0
- package/schema/fixtures/values-md/invalid/version-unquoted.md +64 -0
- package/schema/fixtures/values-md/invalid/yaml-error.md +2 -2
- package/schema/fixtures/values-md/valid/absent.md +1 -1
- package/schema/fixtures/values-md/valid/with-values.md +5 -7
- package/schema/policy.schema.json +75 -3
- package/schema/values.schema.json +7 -11
- package/templates/codex/README.md +9 -0
- 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
|
-
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../../src/core/env-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AAEH,OAAO,EAAE,SAAS,EAAyB,MAAM,oBAAoB,CAAC;AACtE,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;;;;;;;;;;;;;;;;;GAiBG;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;;;;;;;GAOG;AACH,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC,OAAO,CAAC;QAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,SAAS,mBAAmB,CAC1B,OAAe,EACf,OAAe,EACf,IAAmB;IAEnB,OAAO,SAAS,CACd,UAAU,EACV,CAAC,uBAAuB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAC7D,IAAI,KAAK,IAAI;QACX,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;QACtB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAC9D,CAAC;AACJ,CAAC;AAED,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,IAAI,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAEzD,iEAAiE;QACjE,EAAE;QACF,sEAAsE;QACtE,sEAAsE;QACtE,2EAA2E;QAC3E,oEAAoE;QACpE,2EAA2E;QAC3E,oEAAoE;QACpE,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,2EAA2E;QAC3E,iEAAiE;QACjE,EAAE;QACF,sEAAsE;QACtE,uEAAuE;QACvE,2EAA2E;QAC3E,uEAAuE;QACvE,oEAAoE;QACpE,oDAAoD;QACpD,EAAE;QACF,yEAAyE;QACzE,sEAAsE;QACtE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,GAAG,OAAO,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,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"}
|