looply-cli 0.0.0-stage → 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/LICENSE +21 -0
- package/README.md +137 -3
- package/dist/.src-hash +1 -0
- package/dist/acceptance-observe.d.ts +108 -0
- package/dist/acceptance-observe.d.ts.map +1 -0
- package/dist/acceptance-observe.js +152 -0
- package/dist/acceptance-observe.js.map +1 -0
- package/dist/agent-cmd.d.ts +131 -0
- package/dist/agent-cmd.d.ts.map +1 -0
- package/dist/agent-cmd.js +154 -0
- package/dist/agent-cmd.js.map +1 -0
- package/dist/agent-contained.d.ts +114 -0
- package/dist/agent-contained.d.ts.map +1 -0
- package/dist/agent-contained.js +292 -0
- package/dist/agent-contained.js.map +1 -0
- package/dist/agent-driver.d.ts +130 -0
- package/dist/agent-driver.d.ts.map +1 -0
- package/dist/agent-driver.js +170 -0
- package/dist/agent-driver.js.map +1 -0
- package/dist/agent-envelope.d.ts +94 -0
- package/dist/agent-envelope.d.ts.map +1 -0
- package/dist/agent-envelope.js +214 -0
- package/dist/agent-envelope.js.map +1 -0
- package/dist/agent-exec.d.ts +182 -0
- package/dist/agent-exec.d.ts.map +1 -0
- package/dist/agent-exec.js +125 -0
- package/dist/agent-exec.js.map +1 -0
- package/dist/agent-runtime.d.ts +23 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +143 -0
- package/dist/agent-runtime.js.map +1 -0
- package/dist/approval-gate-read.d.ts +66 -0
- package/dist/approval-gate-read.d.ts.map +1 -0
- package/dist/approval-gate-read.js +138 -0
- package/dist/approval-gate-read.js.map +1 -0
- package/dist/approval-resolution.d.ts +87 -0
- package/dist/approval-resolution.d.ts.map +1 -0
- package/dist/approval-resolution.js +100 -0
- package/dist/approval-resolution.js.map +1 -0
- package/dist/approval-resumes.d.ts +102 -0
- package/dist/approval-resumes.d.ts.map +1 -0
- package/dist/approval-resumes.js +167 -0
- package/dist/approval-resumes.js.map +1 -0
- package/dist/ask-brain.d.ts +167 -0
- package/dist/ask-brain.d.ts.map +1 -0
- package/dist/ask-brain.js +355 -0
- package/dist/ask-brain.js.map +1 -0
- package/dist/autonomy-authority.d.ts +80 -0
- package/dist/autonomy-authority.d.ts.map +1 -0
- package/dist/autonomy-authority.js +82 -0
- package/dist/autonomy-authority.js.map +1 -0
- package/dist/autonomy-controller.d.ts +321 -0
- package/dist/autonomy-controller.d.ts.map +1 -0
- package/dist/autonomy-controller.js +517 -0
- package/dist/autonomy-controller.js.map +1 -0
- package/dist/autonomy-store.d.ts +327 -0
- package/dist/autonomy-store.d.ts.map +1 -0
- package/dist/autonomy-store.js +581 -0
- package/dist/autonomy-store.js.map +1 -0
- package/dist/autonomy-tick.d.ts +257 -0
- package/dist/autonomy-tick.d.ts.map +1 -0
- package/dist/autonomy-tick.js +616 -0
- package/dist/autonomy-tick.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +2727 -0
- package/dist/bin.js.map +1 -0
- package/dist/brain-advice.d.ts +21 -0
- package/dist/brain-advice.d.ts.map +1 -0
- package/dist/brain-advice.js +51 -0
- package/dist/brain-advice.js.map +1 -0
- package/dist/candidate-replay-runtime.d.ts +125 -0
- package/dist/candidate-replay-runtime.d.ts.map +1 -0
- package/dist/candidate-replay-runtime.js +188 -0
- package/dist/candidate-replay-runtime.js.map +1 -0
- package/dist/checkout-carry.d.ts +76 -0
- package/dist/checkout-carry.d.ts.map +1 -0
- package/dist/checkout-carry.js +125 -0
- package/dist/checkout-carry.js.map +1 -0
- package/dist/citation-readers.d.ts +26 -0
- package/dist/citation-readers.d.ts.map +1 -0
- package/dist/citation-readers.js +102 -0
- package/dist/citation-readers.js.map +1 -0
- package/dist/command-receipts.d.ts +79 -0
- package/dist/command-receipts.d.ts.map +1 -0
- package/dist/command-receipts.js +143 -0
- package/dist/command-receipts.js.map +1 -0
- package/dist/command-runner.d.ts +32 -0
- package/dist/command-runner.d.ts.map +1 -0
- package/dist/command-runner.js +108 -0
- package/dist/command-runner.js.map +1 -0
- package/dist/compatible-sets.d.ts +67 -0
- package/dist/compatible-sets.d.ts.map +1 -0
- package/dist/compatible-sets.js +81 -0
- package/dist/compatible-sets.js.map +1 -0
- package/dist/compile-check.d.ts +31 -0
- package/dist/compile-check.d.ts.map +1 -0
- package/dist/compile-check.js +34 -0
- package/dist/compile-check.js.map +1 -0
- package/dist/compile-store.d.ts +16 -0
- package/dist/compile-store.d.ts.map +1 -0
- package/dist/compile-store.js +21 -0
- package/dist/compile-store.js.map +1 -0
- package/dist/completion.d.ts +106 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +131 -0
- package/dist/completion.js.map +1 -0
- package/dist/config.d.ts +549 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +763 -0
- package/dist/config.js.map +1 -0
- package/dist/control-file.d.ts +142 -0
- package/dist/control-file.d.ts.map +1 -0
- package/dist/control-file.js +144 -0
- package/dist/control-file.js.map +1 -0
- package/dist/coordinator-state.d.ts +131 -0
- package/dist/coordinator-state.d.ts.map +1 -0
- package/dist/coordinator-state.js +380 -0
- package/dist/coordinator-state.js.map +1 -0
- package/dist/coordinator.d.ts +95 -0
- package/dist/coordinator.d.ts.map +1 -0
- package/dist/coordinator.js +97 -0
- package/dist/coordinator.js.map +1 -0
- package/dist/cursor-store.d.ts +53 -0
- package/dist/cursor-store.d.ts.map +1 -0
- package/dist/cursor-store.js +98 -0
- package/dist/cursor-store.js.map +1 -0
- package/dist/daemon-cmd.d.ts +239 -0
- package/dist/daemon-cmd.d.ts.map +1 -0
- package/dist/daemon-cmd.js +1751 -0
- package/dist/daemon-cmd.js.map +1 -0
- package/dist/daemon-lock.d.ts +140 -0
- package/dist/daemon-lock.d.ts.map +1 -0
- package/dist/daemon-lock.js +352 -0
- package/dist/daemon-lock.js.map +1 -0
- package/dist/daemon-recovery.d.ts +78 -0
- package/dist/daemon-recovery.d.ts.map +1 -0
- package/dist/daemon-recovery.js +161 -0
- package/dist/daemon-recovery.js.map +1 -0
- package/dist/daemon.d.ts +368 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +601 -0
- package/dist/daemon.js.map +1 -0
- package/dist/declared-response-shape.d.ts +93 -0
- package/dist/declared-response-shape.d.ts.map +1 -0
- package/dist/declared-response-shape.js +200 -0
- package/dist/declared-response-shape.js.map +1 -0
- package/dist/declared-surfaces.d.ts +16 -0
- package/dist/declared-surfaces.d.ts.map +1 -0
- package/dist/declared-surfaces.js +19 -0
- package/dist/declared-surfaces.js.map +1 -0
- package/dist/depends-review.d.ts +113 -0
- package/dist/depends-review.d.ts.map +1 -0
- package/dist/depends-review.js +110 -0
- package/dist/depends-review.js.map +1 -0
- package/dist/doctor.d.ts +91 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +71 -0
- package/dist/doctor.js.map +1 -0
- package/dist/edge-approval.d.ts +105 -0
- package/dist/edge-approval.d.ts.map +1 -0
- package/dist/edge-approval.js +100 -0
- package/dist/edge-approval.js.map +1 -0
- package/dist/evidence-cache.d.ts +45 -0
- package/dist/evidence-cache.d.ts.map +1 -0
- package/dist/evidence-cache.js +90 -0
- package/dist/evidence-cache.js.map +1 -0
- package/dist/evidence-cmd.d.ts +133 -0
- package/dist/evidence-cmd.d.ts.map +1 -0
- package/dist/evidence-cmd.js +347 -0
- package/dist/evidence-cmd.js.map +1 -0
- package/dist/evidence-facts.d.ts +40 -0
- package/dist/evidence-facts.d.ts.map +1 -0
- package/dist/evidence-facts.js +114 -0
- package/dist/evidence-facts.js.map +1 -0
- package/dist/exclusive-lock.d.ts +52 -0
- package/dist/exclusive-lock.d.ts.map +1 -0
- package/dist/exclusive-lock.js +150 -0
- package/dist/exclusive-lock.js.map +1 -0
- package/dist/exec-domains.d.ts +140 -0
- package/dist/exec-domains.d.ts.map +1 -0
- package/dist/exec-domains.js +287 -0
- package/dist/exec-domains.js.map +1 -0
- package/dist/exemption-store.d.ts +197 -0
- package/dist/exemption-store.d.ts.map +1 -0
- package/dist/exemption-store.js +266 -0
- package/dist/exemption-store.js.map +1 -0
- package/dist/explicit-start-gate.d.ts +96 -0
- package/dist/explicit-start-gate.d.ts.map +1 -0
- package/dist/explicit-start-gate.js +103 -0
- package/dist/explicit-start-gate.js.map +1 -0
- package/dist/fs-trouble.d.ts +70 -0
- package/dist/fs-trouble.d.ts.map +1 -0
- package/dist/fs-trouble.js +98 -0
- package/dist/fs-trouble.js.map +1 -0
- package/dist/gate.d.ts +278 -0
- package/dist/gate.d.ts.map +1 -0
- package/dist/gate.js +278 -0
- package/dist/gate.js.map +1 -0
- package/dist/git-driver.d.ts +519 -0
- package/dist/git-driver.d.ts.map +1 -0
- package/dist/git-driver.js +900 -0
- package/dist/git-driver.js.map +1 -0
- package/dist/git-push-executor.d.ts +41 -0
- package/dist/git-push-executor.d.ts.map +1 -0
- package/dist/git-push-executor.js +142 -0
- package/dist/git-push-executor.js.map +1 -0
- package/dist/glob.d.ts +26 -0
- package/dist/glob.d.ts.map +1 -0
- package/dist/glob.js +93 -0
- package/dist/glob.js.map +1 -0
- package/dist/goal-adaptive.d.ts +295 -0
- package/dist/goal-adaptive.d.ts.map +1 -0
- package/dist/goal-adaptive.js +393 -0
- package/dist/goal-adaptive.js.map +1 -0
- package/dist/goal-compile.d.ts +342 -0
- package/dist/goal-compile.d.ts.map +1 -0
- package/dist/goal-compile.js +444 -0
- package/dist/goal-compile.js.map +1 -0
- package/dist/goal-depends-executor.d.ts +55 -0
- package/dist/goal-depends-executor.d.ts.map +1 -0
- package/dist/goal-depends-executor.js +202 -0
- package/dist/goal-depends-executor.js.map +1 -0
- package/dist/goal-execution-evidence.d.ts +135 -0
- package/dist/goal-execution-evidence.d.ts.map +1 -0
- package/dist/goal-execution-evidence.js +159 -0
- package/dist/goal-execution-evidence.js.map +1 -0
- package/dist/goal-gap.d.ts +140 -0
- package/dist/goal-gap.d.ts.map +1 -0
- package/dist/goal-gap.js +197 -0
- package/dist/goal-gap.js.map +1 -0
- package/dist/goal-met-target.d.ts +98 -0
- package/dist/goal-met-target.d.ts.map +1 -0
- package/dist/goal-met-target.js +92 -0
- package/dist/goal-met-target.js.map +1 -0
- package/dist/goal-ownership.d.ts +416 -0
- package/dist/goal-ownership.d.ts.map +1 -0
- package/dist/goal-ownership.js +576 -0
- package/dist/goal-ownership.js.map +1 -0
- package/dist/goal-runs.d.ts +82 -0
- package/dist/goal-runs.d.ts.map +1 -0
- package/dist/goal-runs.js +120 -0
- package/dist/goal-runs.js.map +1 -0
- package/dist/goal-store.d.ts +146 -0
- package/dist/goal-store.d.ts.map +1 -0
- package/dist/goal-store.js +294 -0
- package/dist/goal-store.js.map +1 -0
- package/dist/goal-view.d.ts +156 -0
- package/dist/goal-view.d.ts.map +1 -0
- package/dist/goal-view.js +499 -0
- package/dist/goal-view.js.map +1 -0
- package/dist/governed-approvals.d.ts +152 -0
- package/dist/governed-approvals.d.ts.map +1 -0
- package/dist/governed-approvals.js +246 -0
- package/dist/governed-approvals.js.map +1 -0
- package/dist/governed-broker.d.ts +169 -0
- package/dist/governed-broker.d.ts.map +1 -0
- package/dist/governed-broker.js +196 -0
- package/dist/governed-broker.js.map +1 -0
- package/dist/governed-run.d.ts +220 -0
- package/dist/governed-run.d.ts.map +1 -0
- package/dist/governed-run.js +406 -0
- package/dist/governed-run.js.map +1 -0
- package/dist/grant-reconcile.d.ts +63 -0
- package/dist/grant-reconcile.d.ts.map +1 -0
- package/dist/grant-reconcile.js +121 -0
- package/dist/grant-reconcile.js.map +1 -0
- package/dist/index-for-head.d.ts +56 -0
- package/dist/index-for-head.d.ts.map +1 -0
- package/dist/index-for-head.js +103 -0
- package/dist/index-for-head.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/init-detect.d.ts +39 -0
- package/dist/init-detect.d.ts.map +1 -0
- package/dist/init-detect.js +188 -0
- package/dist/init-detect.js.map +1 -0
- package/dist/integration-deps.d.ts +62 -0
- package/dist/integration-deps.d.ts.map +1 -0
- package/dist/integration-deps.js +251 -0
- package/dist/integration-deps.js.map +1 -0
- package/dist/integration-runtime.d.ts +458 -0
- package/dist/integration-runtime.d.ts.map +1 -0
- package/dist/integration-runtime.js +681 -0
- package/dist/integration-runtime.js.map +1 -0
- package/dist/integration.d.ts +45 -0
- package/dist/integration.d.ts.map +1 -0
- package/dist/integration.js +87 -0
- package/dist/integration.js.map +1 -0
- package/dist/integrator.d.ts +84 -0
- package/dist/integrator.d.ts.map +1 -0
- package/dist/integrator.js +193 -0
- package/dist/integrator.js.map +1 -0
- package/dist/lane-claims.d.ts +174 -0
- package/dist/lane-claims.d.ts.map +1 -0
- package/dist/lane-claims.js +218 -0
- package/dist/lane-claims.js.map +1 -0
- package/dist/lane-coverage.d.ts +87 -0
- package/dist/lane-coverage.d.ts.map +1 -0
- package/dist/lane-coverage.js +129 -0
- package/dist/lane-coverage.js.map +1 -0
- package/dist/ledger-replay.d.ts +115 -0
- package/dist/ledger-replay.d.ts.map +1 -0
- package/dist/ledger-replay.js +155 -0
- package/dist/ledger-replay.js.map +1 -0
- package/dist/ledger-store.d.ts +68 -0
- package/dist/ledger-store.d.ts.map +1 -0
- package/dist/ledger-store.js +111 -0
- package/dist/ledger-store.js.map +1 -0
- package/dist/loop-safety-observer.d.ts +132 -0
- package/dist/loop-safety-observer.d.ts.map +1 -0
- package/dist/loop-safety-observer.js +76 -0
- package/dist/loop-safety-observer.js.map +1 -0
- package/dist/loop-safety-store.d.ts +339 -0
- package/dist/loop-safety-store.d.ts.map +1 -0
- package/dist/loop-safety-store.js +800 -0
- package/dist/loop-safety-store.js.map +1 -0
- package/dist/machine-store.d.ts +54 -0
- package/dist/machine-store.d.ts.map +1 -0
- package/dist/machine-store.js +149 -0
- package/dist/machine-store.js.map +1 -0
- package/dist/mcp-main.d.ts +2 -0
- package/dist/mcp-main.d.ts.map +1 -0
- package/dist/mcp-main.js +116 -0
- package/dist/mcp-main.js.map +1 -0
- package/dist/mcp-server.d.ts +72 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +259 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/model-routing.d.ts +75 -0
- package/dist/model-routing.d.ts.map +1 -0
- package/dist/model-routing.js +108 -0
- package/dist/model-routing.js.map +1 -0
- package/dist/model-transport.d.ts +188 -0
- package/dist/model-transport.d.ts.map +1 -0
- package/dist/model-transport.js +625 -0
- package/dist/model-transport.js.map +1 -0
- package/dist/notify-cadence.d.ts +55 -0
- package/dist/notify-cadence.d.ts.map +1 -0
- package/dist/notify-cadence.js +68 -0
- package/dist/notify-cadence.js.map +1 -0
- package/dist/notify-channel.d.ts +69 -0
- package/dist/notify-channel.d.ts.map +1 -0
- package/dist/notify-channel.js +151 -0
- package/dist/notify-channel.js.map +1 -0
- package/dist/notify.d.ts +71 -0
- package/dist/notify.d.ts.map +1 -0
- package/dist/notify.js +125 -0
- package/dist/notify.js.map +1 -0
- package/dist/observation-inventory.d.ts +65 -0
- package/dist/observation-inventory.d.ts.map +1 -0
- package/dist/observation-inventory.js +139 -0
- package/dist/observation-inventory.js.map +1 -0
- package/dist/owned-children.d.ts +45 -0
- package/dist/owned-children.d.ts.map +1 -0
- package/dist/owned-children.js +64 -0
- package/dist/owned-children.js.map +1 -0
- package/dist/packet-for-goal.d.ts +19 -0
- package/dist/packet-for-goal.d.ts.map +1 -0
- package/dist/packet-for-goal.js +32 -0
- package/dist/packet-for-goal.js.map +1 -0
- package/dist/pair-cmd.d.ts +85 -0
- package/dist/pair-cmd.d.ts.map +1 -0
- package/dist/pair-cmd.js +205 -0
- package/dist/pair-cmd.js.map +1 -0
- package/dist/partial-asker.d.ts +96 -0
- package/dist/partial-asker.d.ts.map +1 -0
- package/dist/partial-asker.js +117 -0
- package/dist/partial-asker.js.map +1 -0
- package/dist/pdf-text-lines.d.ts +17 -0
- package/dist/pdf-text-lines.d.ts.map +1 -0
- package/dist/pdf-text-lines.js +70 -0
- package/dist/pdf-text-lines.js.map +1 -0
- package/dist/pdf-text-worker.d.ts +2 -0
- package/dist/pdf-text-worker.d.ts.map +1 -0
- package/dist/pdf-text-worker.js +81 -0
- package/dist/pdf-text-worker.js.map +1 -0
- package/dist/pdf-text.d.ts +56 -0
- package/dist/pdf-text.d.ts.map +1 -0
- package/dist/pdf-text.js +64 -0
- package/dist/pdf-text.js.map +1 -0
- package/dist/pending-action.d.ts +154 -0
- package/dist/pending-action.d.ts.map +1 -0
- package/dist/pending-action.js +148 -0
- package/dist/pending-action.js.map +1 -0
- package/dist/preemptor.d.ts +40 -0
- package/dist/preemptor.d.ts.map +1 -0
- package/dist/preemptor.js +49 -0
- package/dist/preemptor.js.map +1 -0
- package/dist/programme-mode.d.ts +29 -0
- package/dist/programme-mode.d.ts.map +1 -0
- package/dist/programme-mode.js +50 -0
- package/dist/programme-mode.js.map +1 -0
- package/dist/progress-view.d.ts +14 -0
- package/dist/progress-view.d.ts.map +1 -0
- package/dist/progress-view.js +114 -0
- package/dist/progress-view.js.map +1 -0
- package/dist/project-graph-builder.d.ts +81 -0
- package/dist/project-graph-builder.d.ts.map +1 -0
- package/dist/project-graph-builder.js +246 -0
- package/dist/project-graph-builder.js.map +1 -0
- package/dist/project-graph-runtime.d.ts +86 -0
- package/dist/project-graph-runtime.d.ts.map +1 -0
- package/dist/project-graph-runtime.js +112 -0
- package/dist/project-graph-runtime.js.map +1 -0
- package/dist/project-index-builder.d.ts +96 -0
- package/dist/project-index-builder.d.ts.map +1 -0
- package/dist/project-index-builder.js +298 -0
- package/dist/project-index-builder.js.map +1 -0
- package/dist/project-index-facts.d.ts +51 -0
- package/dist/project-index-facts.d.ts.map +1 -0
- package/dist/project-index-facts.js +117 -0
- package/dist/project-index-facts.js.map +1 -0
- package/dist/project-index-store.d.ts +97 -0
- package/dist/project-index-store.d.ts.map +1 -0
- package/dist/project-index-store.js +140 -0
- package/dist/project-index-store.js.map +1 -0
- package/dist/project-memory-store.d.ts +127 -0
- package/dist/project-memory-store.d.ts.map +1 -0
- package/dist/project-memory-store.js +302 -0
- package/dist/project-memory-store.js.map +1 -0
- package/dist/proposal-store.d.ts +14 -0
- package/dist/proposal-store.d.ts.map +1 -0
- package/dist/proposal-store.js +19 -0
- package/dist/proposal-store.js.map +1 -0
- package/dist/prover.d.ts +80 -0
- package/dist/prover.d.ts.map +1 -0
- package/dist/prover.js +137 -0
- package/dist/prover.js.map +1 -0
- package/dist/provider-identity-store.d.ts +34 -0
- package/dist/provider-identity-store.d.ts.map +1 -0
- package/dist/provider-identity-store.js +72 -0
- package/dist/provider-identity-store.js.map +1 -0
- package/dist/provider-identity.d.ts +104 -0
- package/dist/provider-identity.d.ts.map +1 -0
- package/dist/provider-identity.js +167 -0
- package/dist/provider-identity.js.map +1 -0
- package/dist/provider-limit.d.ts +79 -0
- package/dist/provider-limit.d.ts.map +1 -0
- package/dist/provider-limit.js +148 -0
- package/dist/provider-limit.js.map +1 -0
- package/dist/provider-preflight.d.ts +171 -0
- package/dist/provider-preflight.d.ts.map +1 -0
- package/dist/provider-preflight.js +395 -0
- package/dist/provider-preflight.js.map +1 -0
- package/dist/provider-state.d.ts +120 -0
- package/dist/provider-state.d.ts.map +1 -0
- package/dist/provider-state.js +182 -0
- package/dist/provider-state.js.map +1 -0
- package/dist/providers.d.ts +132 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +161 -0
- package/dist/providers.js.map +1 -0
- package/dist/publication-recorder.d.ts +117 -0
- package/dist/publication-recorder.d.ts.map +1 -0
- package/dist/publication-recorder.js +124 -0
- package/dist/publication-recorder.js.map +1 -0
- package/dist/pursuit-delivery.d.ts +24 -0
- package/dist/pursuit-delivery.d.ts.map +1 -0
- package/dist/pursuit-delivery.js +38 -0
- package/dist/pursuit-delivery.js.map +1 -0
- package/dist/queue-store.d.ts +132 -0
- package/dist/queue-store.d.ts.map +1 -0
- package/dist/queue-store.js +185 -0
- package/dist/queue-store.js.map +1 -0
- package/dist/queue-summary.d.ts +14 -0
- package/dist/queue-summary.d.ts.map +1 -0
- package/dist/queue-summary.js +82 -0
- package/dist/queue-summary.js.map +1 -0
- package/dist/queue-view.d.ts +20 -0
- package/dist/queue-view.d.ts.map +1 -0
- package/dist/queue-view.js +163 -0
- package/dist/queue-view.js.map +1 -0
- package/dist/queue-write-lease.d.ts +106 -0
- package/dist/queue-write-lease.d.ts.map +1 -0
- package/dist/queue-write-lease.js +282 -0
- package/dist/queue-write-lease.js.map +1 -0
- package/dist/rails-home.d.ts +162 -0
- package/dist/rails-home.d.ts.map +1 -0
- package/dist/rails-home.js +452 -0
- package/dist/rails-home.js.map +1 -0
- package/dist/rails-migrations.d.ts +75 -0
- package/dist/rails-migrations.d.ts.map +1 -0
- package/dist/rails-migrations.js +199 -0
- package/dist/rails-migrations.js.map +1 -0
- package/dist/rails-stores.d.ts +49 -0
- package/dist/rails-stores.d.ts.map +1 -0
- package/dist/rails-stores.js +100 -0
- package/dist/rails-stores.js.map +1 -0
- package/dist/reaper.d.ts +69 -0
- package/dist/reaper.d.ts.map +1 -0
- package/dist/reaper.js +152 -0
- package/dist/reaper.js.map +1 -0
- package/dist/record-store.d.ts +36 -0
- package/dist/record-store.d.ts.map +1 -0
- package/dist/record-store.js +78 -0
- package/dist/record-store.js.map +1 -0
- package/dist/recovery-io.d.ts +50 -0
- package/dist/recovery-io.d.ts.map +1 -0
- package/dist/recovery-io.js +122 -0
- package/dist/recovery-io.js.map +1 -0
- package/dist/recovery.d.ts +146 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +110 -0
- package/dist/recovery.js.map +1 -0
- package/dist/redraw.d.ts +34 -0
- package/dist/redraw.d.ts.map +1 -0
- package/dist/redraw.js +62 -0
- package/dist/redraw.js.map +1 -0
- package/dist/rejected-evidence.d.ts +255 -0
- package/dist/rejected-evidence.d.ts.map +1 -0
- package/dist/rejected-evidence.js +324 -0
- package/dist/rejected-evidence.js.map +1 -0
- package/dist/report-cmd.d.ts +32 -0
- package/dist/report-cmd.d.ts.map +1 -0
- package/dist/report-cmd.js +201 -0
- package/dist/report-cmd.js.map +1 -0
- package/dist/repos-cmd.d.ts +80 -0
- package/dist/repos-cmd.d.ts.map +1 -0
- package/dist/repos-cmd.js +240 -0
- package/dist/repos-cmd.js.map +1 -0
- package/dist/request-body-shape.d.ts +93 -0
- package/dist/request-body-shape.d.ts.map +1 -0
- package/dist/request-body-shape.js +407 -0
- package/dist/request-body-shape.js.map +1 -0
- package/dist/requirement-claims.d.ts +89 -0
- package/dist/requirement-claims.d.ts.map +1 -0
- package/dist/requirement-claims.js +92 -0
- package/dist/requirement-claims.js.map +1 -0
- package/dist/retention-apply-runtime.d.ts +105 -0
- package/dist/retention-apply-runtime.d.ts.map +1 -0
- package/dist/retention-apply-runtime.js +269 -0
- package/dist/retention-apply-runtime.js.map +1 -0
- package/dist/reverify.d.ts +41 -0
- package/dist/reverify.d.ts.map +1 -0
- package/dist/reverify.js +69 -0
- package/dist/reverify.js.map +1 -0
- package/dist/round-records.d.ts +65 -0
- package/dist/round-records.d.ts.map +1 -0
- package/dist/round-records.js +61 -0
- package/dist/round-records.js.map +1 -0
- package/dist/round-runner.d.ts +924 -0
- package/dist/round-runner.d.ts.map +1 -0
- package/dist/round-runner.js +1693 -0
- package/dist/round-runner.js.map +1 -0
- package/dist/run-approval.d.ts +180 -0
- package/dist/run-approval.d.ts.map +1 -0
- package/dist/run-approval.js +199 -0
- package/dist/run-approval.js.map +1 -0
- package/dist/run-cmd.d.ts +359 -0
- package/dist/run-cmd.d.ts.map +1 -0
- package/dist/run-cmd.js +4418 -0
- package/dist/run-cmd.js.map +1 -0
- package/dist/run-delivery.d.ts +71 -0
- package/dist/run-delivery.d.ts.map +1 -0
- package/dist/run-delivery.js +104 -0
- package/dist/run-delivery.js.map +1 -0
- package/dist/run-ended.d.ts +75 -0
- package/dist/run-ended.d.ts.map +1 -0
- package/dist/run-ended.js +27 -0
- package/dist/run-ended.js.map +1 -0
- package/dist/run-ending-locator.d.ts +125 -0
- package/dist/run-ending-locator.d.ts.map +1 -0
- package/dist/run-ending-locator.js +133 -0
- package/dist/run-ending-locator.js.map +1 -0
- package/dist/run-launcher.d.ts +459 -0
- package/dist/run-launcher.d.ts.map +1 -0
- package/dist/run-launcher.js +652 -0
- package/dist/run-launcher.js.map +1 -0
- package/dist/run-lease.d.ts +208 -0
- package/dist/run-lease.d.ts.map +1 -0
- package/dist/run-lease.js +301 -0
- package/dist/run-lease.js.map +1 -0
- package/dist/run-refusal-marks.d.ts +189 -0
- package/dist/run-refusal-marks.d.ts.map +1 -0
- package/dist/run-refusal-marks.js +249 -0
- package/dist/run-refusal-marks.js.map +1 -0
- package/dist/run-start-marks.d.ts +153 -0
- package/dist/run-start-marks.d.ts.map +1 -0
- package/dist/run-start-marks.js +269 -0
- package/dist/run-start-marks.js.map +1 -0
- package/dist/scan-cmd.d.ts +14 -0
- package/dist/scan-cmd.d.ts.map +1 -0
- package/dist/scan-cmd.js +270 -0
- package/dist/scan-cmd.js.map +1 -0
- package/dist/scan-events.d.ts +50 -0
- package/dist/scan-events.d.ts.map +1 -0
- package/dist/scan-events.js +91 -0
- package/dist/scan-events.js.map +1 -0
- package/dist/scan.d.ts +191 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/scan.js +417 -0
- package/dist/scan.js.map +1 -0
- package/dist/scope-rule.d.ts +148 -0
- package/dist/scope-rule.d.ts.map +1 -0
- package/dist/scope-rule.js +121 -0
- package/dist/scope-rule.js.map +1 -0
- package/dist/self-repo-id.d.ts +18 -0
- package/dist/self-repo-id.d.ts.map +1 -0
- package/dist/self-repo-id.js +70 -0
- package/dist/self-repo-id.js.map +1 -0
- package/dist/serve-cmd.d.ts +115 -0
- package/dist/serve-cmd.d.ts.map +1 -0
- package/dist/serve-cmd.js +505 -0
- package/dist/serve-cmd.js.map +1 -0
- package/dist/serve.d.ts +167 -0
- package/dist/serve.d.ts.map +1 -0
- package/dist/serve.js +336 -0
- package/dist/serve.js.map +1 -0
- package/dist/server-client.d.ts +766 -0
- package/dist/server-client.d.ts.map +1 -0
- package/dist/server-client.js +475 -0
- package/dist/server-client.js.map +1 -0
- package/dist/session-adapter-runtime.d.ts +195 -0
- package/dist/session-adapter-runtime.d.ts.map +1 -0
- package/dist/session-adapter-runtime.js +373 -0
- package/dist/session-adapter-runtime.js.map +1 -0
- package/dist/session-checkpoint-runtime.d.ts +62 -0
- package/dist/session-checkpoint-runtime.d.ts.map +1 -0
- package/dist/session-checkpoint-runtime.js +268 -0
- package/dist/session-checkpoint-runtime.js.map +1 -0
- package/dist/session-control-transport.d.ts +106 -0
- package/dist/session-control-transport.d.ts.map +1 -0
- package/dist/session-control-transport.js +232 -0
- package/dist/session-control-transport.js.map +1 -0
- package/dist/session-observation-store.d.ts +98 -0
- package/dist/session-observation-store.d.ts.map +1 -0
- package/dist/session-observation-store.js +155 -0
- package/dist/session-observation-store.js.map +1 -0
- package/dist/session-observe-runtime.d.ts +123 -0
- package/dist/session-observe-runtime.d.ts.map +1 -0
- package/dist/session-observe-runtime.js +317 -0
- package/dist/session-observe-runtime.js.map +1 -0
- package/dist/session-store.d.ts +98 -0
- package/dist/session-store.d.ts.map +1 -0
- package/dist/session-store.js +116 -0
- package/dist/session-store.js.map +1 -0
- package/dist/sessions-cmd.d.ts +202 -0
- package/dist/sessions-cmd.d.ts.map +1 -0
- package/dist/sessions-cmd.js +609 -0
- package/dist/sessions-cmd.js.map +1 -0
- package/dist/settings-overlay.d.ts +53 -0
- package/dist/settings-overlay.d.ts.map +1 -0
- package/dist/settings-overlay.js +175 -0
- package/dist/settings-overlay.js.map +1 -0
- package/dist/setup-prompt.d.ts +34 -0
- package/dist/setup-prompt.d.ts.map +1 -0
- package/dist/setup-prompt.js +92 -0
- package/dist/setup-prompt.js.map +1 -0
- package/dist/setup.d.ts +103 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +283 -0
- package/dist/setup.js.map +1 -0
- package/dist/shared-grants.d.ts +164 -0
- package/dist/shared-grants.d.ts.map +1 -0
- package/dist/shared-grants.js +242 -0
- package/dist/shared-grants.js.map +1 -0
- package/dist/signals.d.ts +55 -0
- package/dist/signals.d.ts.map +1 -0
- package/dist/signals.js +85 -0
- package/dist/signals.js.map +1 -0
- package/dist/source-cmd.d.ts +201 -0
- package/dist/source-cmd.d.ts.map +1 -0
- package/dist/source-cmd.js +684 -0
- package/dist/source-cmd.js.map +1 -0
- package/dist/source-verdict.d.ts +99 -0
- package/dist/source-verdict.d.ts.map +1 -0
- package/dist/source-verdict.js +182 -0
- package/dist/source-verdict.js.map +1 -0
- package/dist/spend-ledger.d.ts +350 -0
- package/dist/spend-ledger.d.ts.map +1 -0
- package/dist/spend-ledger.js +546 -0
- package/dist/spend-ledger.js.map +1 -0
- package/dist/stale-run-sweep.d.ts +79 -0
- package/dist/stale-run-sweep.d.ts.map +1 -0
- package/dist/stale-run-sweep.js +116 -0
- package/dist/stale-run-sweep.js.map +1 -0
- package/dist/start-attempts.d.ts +385 -0
- package/dist/start-attempts.d.ts.map +1 -0
- package/dist/start-attempts.js +613 -0
- package/dist/start-attempts.js.map +1 -0
- package/dist/status-cmd.d.ts +28 -0
- package/dist/status-cmd.d.ts.map +1 -0
- package/dist/status-cmd.js +116 -0
- package/dist/status-cmd.js.map +1 -0
- package/dist/stop-follow-up.d.ts +107 -0
- package/dist/stop-follow-up.d.ts.map +1 -0
- package/dist/stop-follow-up.js +172 -0
- package/dist/stop-follow-up.js.map +1 -0
- package/dist/surface-lease.d.ts +118 -0
- package/dist/surface-lease.d.ts.map +1 -0
- package/dist/surface-lease.js +485 -0
- package/dist/surface-lease.js.map +1 -0
- package/dist/sync.d.ts +54 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +93 -0
- package/dist/sync.js.map +1 -0
- package/dist/syncing-ledger.d.ts +45 -0
- package/dist/syncing-ledger.d.ts.map +1 -0
- package/dist/syncing-ledger.js +53 -0
- package/dist/syncing-ledger.js.map +1 -0
- package/dist/temp-fixtures.d.ts +68 -0
- package/dist/temp-fixtures.d.ts.map +1 -0
- package/dist/temp-fixtures.js +38 -0
- package/dist/temp-fixtures.js.map +1 -0
- package/dist/token-window.d.ts +84 -0
- package/dist/token-window.d.ts.map +1 -0
- package/dist/token-window.js +143 -0
- package/dist/token-window.js.map +1 -0
- package/dist/tool-bridge.d.ts +177 -0
- package/dist/tool-bridge.d.ts.map +1 -0
- package/dist/tool-bridge.js +329 -0
- package/dist/tool-bridge.js.map +1 -0
- package/dist/tool-call-record.d.ts +197 -0
- package/dist/tool-call-record.d.ts.map +1 -0
- package/dist/tool-call-record.js +276 -0
- package/dist/tool-call-record.js.map +1 -0
- package/dist/tool-protocol.d.ts +135 -0
- package/dist/tool-protocol.d.ts.map +1 -0
- package/dist/tool-protocol.js +104 -0
- package/dist/tool-protocol.js.map +1 -0
- package/dist/tool-worker.d.ts +3 -0
- package/dist/tool-worker.d.ts.map +1 -0
- package/dist/tool-worker.js +478 -0
- package/dist/tool-worker.js.map +1 -0
- package/dist/toolchain-mirror.d.ts +86 -0
- package/dist/toolchain-mirror.d.ts.map +1 -0
- package/dist/toolchain-mirror.js +307 -0
- package/dist/toolchain-mirror.js.map +1 -0
- package/dist/trusted-git.d.ts +243 -0
- package/dist/trusted-git.d.ts.map +1 -0
- package/dist/trusted-git.js +920 -0
- package/dist/trusted-git.js.map +1 -0
- package/dist/ui.d.ts +76 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +118 -0
- package/dist/ui.js.map +1 -0
- package/dist/untrusted-exec.d.ts +275 -0
- package/dist/untrusted-exec.d.ts.map +1 -0
- package/dist/untrusted-exec.js +479 -0
- package/dist/untrusted-exec.js.map +1 -0
- package/dist/untrusted-gate.d.ts +73 -0
- package/dist/untrusted-gate.d.ts.map +1 -0
- package/dist/untrusted-gate.js +226 -0
- package/dist/untrusted-gate.js.map +1 -0
- package/dist/uploader.d.ts +153 -0
- package/dist/uploader.d.ts.map +1 -0
- package/dist/uploader.js +204 -0
- package/dist/uploader.js.map +1 -0
- package/dist/verifier.d.ts +66 -0
- package/dist/verifier.d.ts.map +1 -0
- package/dist/verifier.js +170 -0
- package/dist/verifier.js.map +1 -0
- package/dist/verify-apply.d.ts +26 -0
- package/dist/verify-apply.d.ts.map +1 -0
- package/dist/verify-apply.js +36 -0
- package/dist/verify-apply.js.map +1 -0
- package/dist/verify-cmd.d.ts +44 -0
- package/dist/verify-cmd.d.ts.map +1 -0
- package/dist/verify-cmd.js +125 -0
- package/dist/verify-cmd.js.map +1 -0
- package/dist/verify-pass.d.ts +73 -0
- package/dist/verify-pass.d.ts.map +1 -0
- package/dist/verify-pass.js +103 -0
- package/dist/verify-pass.js.map +1 -0
- package/dist/welcome.d.ts +43 -0
- package/dist/welcome.d.ts.map +1 -0
- package/dist/welcome.js +116 -0
- package/dist/welcome.js.map +1 -0
- package/dist/workspace-provisioner.d.ts +65 -0
- package/dist/workspace-provisioner.d.ts.map +1 -0
- package/dist/workspace-provisioner.js +66 -0
- package/dist/workspace-provisioner.js.map +1 -0
- package/dist/workspace-quarantine.d.ts +64 -0
- package/dist/workspace-quarantine.d.ts.map +1 -0
- package/dist/workspace-quarantine.js +156 -0
- package/dist/workspace-quarantine.js.map +1 -0
- package/dist/workspace-residue-sweep.d.ts +113 -0
- package/dist/workspace-residue-sweep.d.ts.map +1 -0
- package/dist/workspace-residue-sweep.js +158 -0
- package/dist/workspace-residue-sweep.js.map +1 -0
- package/dist/workspace.d.ts +639 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +2026 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +52 -4
- package/win/CredProbe.cs +64 -0
- package/win/FakeClaude.cs +56 -0
- package/win/HandleProbe.cs +116 -0
- package/win/TokenProbe.cs +53 -0
- package/win/appcontainer.ps1 +500 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AA2aA,gCAEC;AAmWD,kCA4TC;AAOD,wCA6HC;AAhtCD,+BAA0C;AAC1C,uCAOsB;AACtB,6CAA6D;AAE7D,mDAA+F;AAC/F,+CAAmD;AAqZtC,QAAA,gBAAgB,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAU,CAAC;AAG5E;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,MAAqB;IAC9C,OAAO,MAAM,KAAK,aAAa,CAAC;AAClC,CAAC;AAEY,QAAA,QAAQ,GAAG;IACtB,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;IAC1K,OAAO,EAAE;QACP,aAAa,EAAE,CAAC;QAChB,iBAAiB,EAAE,CAAC;QACpB,WAAW,EAAE,KAAK;QAClB,mBAAmB,EAAE,KAAK;QAC1B,UAAU,EAAE,KAAK;QACjB,eAAe,EAAE,KAAK;QACtB,mBAAmB,EAAE,EAAE;QACvB,SAAS,EAAE,KAAK;KACjB;IACD,OAAO,EAAE,EAAE,MAAM,EAAE,OAAgB,EAAE;IACrC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAc,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE;IAC7D,KAAK,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;IAC5D,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAc,EAAE,YAAY,EAAE,EAAE,EAAE;IACrE,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxC,KAAK,EAAE,0BAAa;CACrB,CAAC;AAEF,MAAa,WAAY,SAAQ,KAAK;IAElB;IADlB,YACkB,GAAW,EAC3B,OAAe;QAEf,KAAK,CAAC,WAAW,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;QAHrB,QAAG,GAAH,GAAG,CAAQ;QAI3B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AARD,kCAQC;AAID,MAAM,KAAK,GAAG,CAAC,CAAU,EAAY,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjG,SAAS,GAAG,CAAC,CAAM,EAAE,GAAW,EAAE,IAAY,EAAE,QAAiB;IAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAC9G,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,GAAG,CAAC,CAAM,EAAE,GAAW,EAAE,IAAY,EAAE,QAAgB,EAAE,GAAG,GAAG,CAAC;IACvE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAC9G,IAAI,CAAC,GAAG,GAAG;QAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,IAAI,CAAC,CAAM,EAAE,GAAW,EAAE,IAAY,EAAE,QAAiB;IAChE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC7F,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,OAAO,CAAC,CAAM,EAAE,GAAW,EAAE,IAAY,EAAE,WAAqB,EAAE;IACzE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,CAAa,CAAC;AACvB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,KAAU;IAC9B,MAAM,GAAG,GAA6C,EAAE,CAAC;IACzD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,mCAAmC,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,MAAM,IAAI,WAAW,CAAC,gBAAgB,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;YACjG,MAAiC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,+BAAe,EAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACrE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAAa,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,KAAK,CAAmB,CAAM,EAAE,GAAW,EAAE,IAAY,EAAE,OAAqB,EAAE,QAAW;IACpG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAM,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,kBAAkB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,CAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAA4C,EAAE,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,SAAS;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,SAAS;QAC1E,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QAC9D,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,GAAY;IAC9B,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,mDAAmD,CAAC,CAAC;IAC3G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAEpE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,MAAM,IAAI,GAAa,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AA+CD,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAE1E;;;;GAIG;AACH,SAAS,eAAe,CACtB,GAAY,EACZ,SAAkB;IAElB,MAAM,CAAC,GAAG,8BAA8B,CAAC;IACzC,MAAM,EAAE,GAAG,qCAAqC,CAAC;IAEjD,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAC;QAC5F,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAA,uBAAgB,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtF,MAAM,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,oDAAoD,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACjD,MAAM,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,qDAAqD,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,sBAAsB,IAAI,EAAE,CAAC,CAAC;YACjH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,6EAA6E,CAAC,CAAC;QAChJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,sCAAsC,CAAC,CAAC;IAElF,MAAM,UAAU,GAAkC,EAAE,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAA,uBAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,2CAA2C,uBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpI,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,oBAAoB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5G,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,wBAAwB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1J,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAoC,CAAC;QACxD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,EAAE,8DAA8D,CAAC,CAAC;YACxI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,4BAA4B,CAAC,CAAC;YACzH,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACzD,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,+CAA+C,CAAC,CAAC;YAChG,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAG,CAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,EAAE,0FAA0F,CAAC,CAAC;YAC7I,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,IAAI,wFAAwF,CAAC,CAAC;QAClJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,6EAA6E,CAAC,CAAC;QAC/H,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QAC/D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,CAAU,CAAC;AAE1I;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,mBAAmB,EAAE,gDAAgD,CAAC,CAAC;IAC9G,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,mBAAmB,CACvF,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,WAAW,CACnB,qBAAqB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EACtC,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,gGAAgG,CAAC,CAAC;IAClJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,WAAW,CAAC,0BAA0B,EAAE,2DAA2D,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnJ,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,0BAA0B,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,yDAAyD,CAAC,CAAC;IACjI,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,oBAA0C,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,6BAA6B,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxI,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,cAAc,GAAG,4BAAqB;QAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,4BAAqB,EAAE,CAAC,CAAC;IAClI,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACzD,IAAI,cAAc,KAAK,gCAAkB,EAAE,CAAC;QAC1C,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,gCAAkB,yDAAyD,CAAC,CAAC;IACxI,CAAC;IACD,OAAO;QACL,MAAM,EAAE;YACN,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrD,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/D,cAAc;YACd,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrD,cAAc;SACf;QACD,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,SAAS,UAAU,CAAC,CAAM,EAAE,GAAW,EAAE,QAA4B,EAAE,QAAgB;IACrF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,WAAW,CAAC,WAAW,GAAG,EAAE,EAAE,6DAA6D,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAA,YAAS,EAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,sBAAuB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAEtE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,OAAO,CAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,kBAAkB,CAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnH,+GAA+G;IAC/G,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;IAEhC,MAAM,GAAG,GAAiB;QACxB,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAClD,GAAG,EAAE;YACH,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACnE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACnE,kBAAkB,EAAE,OAAO,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,CAAC;YAC/D,iBAAiB,EAAE,GAAG,CAAC,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,gBAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC5F,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;YAC3D,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC;YAC7C,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC;YACnD,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;SACxC;QACD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;YACpH,iBAAiB,EAAE,UAAU,CAC3B,OAAO,EACP,sBAAsB,EACtB,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAClC,gBAAQ,CAAC,OAAO,CAAC,iBAAiB,CACnC;YACD,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;YACjG,mBAAmB,EAAE,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,KAAK,CAAC;YAC5E,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC;YACzD,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,CAAC;YACpE,mBAAmB,EAAE,GAAG,CAAC,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5E,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC;YACvD,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC;YACtE,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;YACzD;;;;;;;eAOG;YACH,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC5B,CAAC,CAAC;oBACE,QAAQ,EAAE,CAAC,GAAG,EAAE;wBACd,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAA4B,CAAC;wBAC3D,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC5E,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;wBACtF,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;wBAC9B,OAAO;4BACL,iBAAiB,EAAE,GAAG,CAAC,GAAG,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;4BAC5E,kBAAkB,EAAE,GAAG,CAAC,GAAG,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;4BAChF,QAAQ,EAAE,aAAa,GAAG,MAAM;4BAChC,cAAc,EAAE,WAAW,GAAG,MAAM;4BACpC,GAAG,CAAC,MAAM,KAAK,SAAS;gCACtB,CAAC,CAAC,EAAE;gCACJ,CAAC,CAAC;oCACE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;oCACrD;;;;;;;;;;;;;;;uCAeG;oCACH,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,SAAS;wCAC7C,CAAC,CAAC,EAAE;wCACJ,CAAC,CAAC;4CACE,mBAAmB,EAAE,GAAG,CACtB,GAAG,EACH,wBAAwB,EACxB,kBAAkB,EAClB,CAAC,EACD,CAAC,CACF;yCACF,CAAC;iCACP,CAAC;yBACP,CAAC;oBACJ,CAAC,CAAC,EAAE;iBACL;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;QACD,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,KAAK,EAAE;YACL,cAAc,EAAE,OAAO,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC;YAC1D,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC;YACtD,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;YACpF,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAU,EAAE,gBAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;SACtG;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;YACrC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;YAC7C,kEAAkE;YAClE,qDAAqD;YACrD,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC9B;QACD,KAAK,EAAE;YACL,cAAc,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YACxF,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACzE,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACpF;QACD,KAAK,EAAE;YACL,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAU,EAAE,gBAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;YAC7G;;;;;;eAMG;YACH,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACpF;QACD,MAAM,EAAE;YACN,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YAClE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1E;QACD,4EAA4E;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,iEAAiE;QACjE,OAAO,EAAE;YACP,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAgB,EAAE,gBAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;SACvF;QACD,KAAK,EAAE;YACL,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/D,yEAAyE;YACzE,0CAA0C;YAC1C,gBAAgB,EACd,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE;gBAChC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAChF;;;;;eAKG;YACH,GAAG,CAAC,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;gBACvE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE;gBACvD,CAAC,CAAC,EAAE,CAAC;YACP,sEAAsE;YACtE,iEAAiE;YACjE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC;YAC3C,sEAAsE;YACtE,iEAAiE;YACjE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;YACnC;;;;;;;;eAQG;YACH,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC;YACrD;;;;;eAKG;YACH,GAAG,YAAY,CAAC,KAAK,CAAC;YACtB;;;;;;;;;;;;;;;;eAgBG;YACH,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SACnE;KACF,CAAC;IAEF,4EAA4E;IAC5E,0EAA0E;IAC1E,yCAAyC;IACzC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QACtD,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,EAAE,KAAK,SAAS;QAAE,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAErE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,EAAE,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAElE,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnD,IAAI,MAAM,CAAC,oBAAoB,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,EAAE,EAAE,oCAAoC,CAAC,CAAC;YACnF,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,kFAAkF,CAAC,CAAC;YACxH,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;YAC/E,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAA8D,EAAE,CAAC;QAC1E,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACjF,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QACxG,4EAA4E;QAC5E,sEAAsE;QACtE,wCAAwC;QACxC,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACxF,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;IACrB,CAAC;IAED,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACnD,MAAM,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,EAAE,EAAE,sCAAsC,CAAC,CAAC;YACrF,0DAA0D;YAC1D,sEAAsE;YACtE,uEAAuE;YACvE,0CAA0C;YAC1C,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gFAAgF;IAChF,IAAI,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC;QACxD,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/C,MAAM,IAAI,WAAW,CAAC,iCAAiC,EAAE,6DAA6D,CAAC,CAAC;YAC1H,CAAC;QACH,CAAC;aAAM,CAAC;YACN;;;;;;;;;;;;eAYG;YACH,GAAG,CAAC,OAAO,GAAG;gBACZ,GAAG,GAAG,CAAC,OAAO;gBACd,QAAQ,EAAE;oBACR,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB;oBACpD,kBAAkB,EAAE,EAAE;oBACtB,QAAQ;oBACR,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM;iBAChC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,GAAiB;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACtF,CAAC;IACD;;;;;;;;;;;;;OAaG;IACH,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CACX,2EAA2E,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG;YAClG,oGAAoG;YACpG,8FAA8F,CACjG,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IACpG,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH;;;;;;;;OAQG;IACH;;;;;;;;;;;;;OAaG;IACH,MAAM,OAAO,GAAG,IAAA,yBAAkB,EAAC;QACjC,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,aAAa;QACtC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,iBAAiB;QAC/B,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,iBAAiB;KACvC,CAAC,CAAC;IACH,IAAI,OAAO,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC;IACvC,IAAI,QAAQ,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACjF,QAAQ,CAAC,IAAI,CACX,6FAA6F;YAC3F,8FAA8F;YAC9F,+DAA+D,CAClE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,UAAU,GACd,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,gBAAQ,CAAC,KAAK,CAAC,OAAO;QAC5C,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,UAAU,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,QAAQ,CAAC,IAAI,CACX,oFAAoF;YAClF,6CAA6C;YAC7C,uFAAuF;YACvF,2FAA2F;YAC3F,yDAAyD,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type { LedgerFs } from './ledger-store';
|
|
2
|
+
/**
|
|
3
|
+
* The control file — `control.json` under the state dir.
|
|
4
|
+
*
|
|
5
|
+
* `pause` and `stop` arrive from the phone, are popped by the daemon, and have
|
|
6
|
+
* to reach a run the daemon did not start and cannot see: `nodeRunLauncher`
|
|
7
|
+
* spawns the run detached, so the two live in separate processes with no shared
|
|
8
|
+
* memory between them. A file is the only channel they both have.
|
|
9
|
+
*
|
|
10
|
+
* That is why this store, unlike the ledger, queue and evidence stores, holds
|
|
11
|
+
* nothing in memory and has no `open()`: every {@link ControlStore.read} goes to
|
|
12
|
+
* disk, because the interesting write always came from somebody else. A cached
|
|
13
|
+
* read here would mean the runner polling its own stale copy forever, which is
|
|
14
|
+
* the same as not polling at all.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* `resume` is the cleared state rather than a fourth "none" kind, and it is
|
|
18
|
+
* written rather than the file being deleted: an unlink racing a reader in
|
|
19
|
+
* another process is how a request gets silently lost, and {@link LedgerFs}
|
|
20
|
+
* deliberately has no unlink for the same reason.
|
|
21
|
+
*/
|
|
22
|
+
export type ControlKind = 'pause' | 'stop' | 'resume';
|
|
23
|
+
export interface ControlRequest {
|
|
24
|
+
kind: ControlKind;
|
|
25
|
+
/** ISO 8601. Recorded so a stale request can be recognised by a reader. */
|
|
26
|
+
requestedAt: string;
|
|
27
|
+
/** Who asked — the command's actor, e.g. `human:usr_1`. Reported, never trusted. */
|
|
28
|
+
actor?: string;
|
|
29
|
+
}
|
|
30
|
+
/** What the round runner needs; narrower than the class so it stubs cleanly. */
|
|
31
|
+
export interface ControlSource {
|
|
32
|
+
read(): Promise<ControlRequest | null>;
|
|
33
|
+
/** Records that the request was acted on, so the next run does not obey it again. */
|
|
34
|
+
consume(): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
/** What the daemon needs. It only ever writes: the run is the one that obeys. */
|
|
37
|
+
export interface ControlWriter {
|
|
38
|
+
request(kind: ControlKind, actor?: string): Promise<ControlRequest>;
|
|
39
|
+
}
|
|
40
|
+
export declare class ControlStore implements ControlSource, ControlWriter {
|
|
41
|
+
private readonly stateDir;
|
|
42
|
+
private readonly fs;
|
|
43
|
+
private readonly now;
|
|
44
|
+
/**
|
|
45
|
+
* WHOSE CONTROL FILE THIS IS. `control.json` — the project's — unless a
|
|
46
|
+
* caller names one execution.
|
|
47
|
+
*
|
|
48
|
+
* 🔴 ONE SHARED FILE CANNOT BRAKE N RUNS, and `looply stop` said it could.
|
|
49
|
+
* `consume()` writes `resume` into the file it read, so with several
|
|
50
|
+
* executions running the FIRST one to reach a round boundary cleared the
|
|
51
|
+
* instruction and the rest read `resume` and carried on — while the command
|
|
52
|
+
* had already printed "N executions are running; the request reaches all of
|
|
53
|
+
* them." A human brake that reaches one run out of three is worse than one
|
|
54
|
+
* that admits it reaches none.
|
|
55
|
+
*
|
|
56
|
+
* An ADDRESSED control file — `control.<runId>.json`, in that execution's
|
|
57
|
+
* own state directory — is the same mechanism aimed at one run. It is
|
|
58
|
+
* consumed by the only run that can ever read it, so no other run's
|
|
59
|
+
* instruction is destroyed by it.
|
|
60
|
+
*
|
|
61
|
+
* ⚠️ SIMPLE MODE IS UNTOUCHED. The default is exactly the path this class
|
|
62
|
+
* has always used, and a run only ever LOOKS for an addressed file that is
|
|
63
|
+
* named after its own freshly minted runId — so one that was never written
|
|
64
|
+
* is one that is never found.
|
|
65
|
+
*/
|
|
66
|
+
private readonly fileName;
|
|
67
|
+
/** Distinguishes two writes from ONE process; the pid distinguishes processes. */
|
|
68
|
+
private static writes;
|
|
69
|
+
constructor(stateDir: string, fs: LedgerFs, now?: () => number,
|
|
70
|
+
/**
|
|
71
|
+
* WHOSE CONTROL FILE THIS IS. `control.json` — the project's — unless a
|
|
72
|
+
* caller names one execution.
|
|
73
|
+
*
|
|
74
|
+
* 🔴 ONE SHARED FILE CANNOT BRAKE N RUNS, and `looply stop` said it could.
|
|
75
|
+
* `consume()` writes `resume` into the file it read, so with several
|
|
76
|
+
* executions running the FIRST one to reach a round boundary cleared the
|
|
77
|
+
* instruction and the rest read `resume` and carried on — while the command
|
|
78
|
+
* had already printed "N executions are running; the request reaches all of
|
|
79
|
+
* them." A human brake that reaches one run out of three is worse than one
|
|
80
|
+
* that admits it reaches none.
|
|
81
|
+
*
|
|
82
|
+
* An ADDRESSED control file — `control.<runId>.json`, in that execution's
|
|
83
|
+
* own state directory — is the same mechanism aimed at one run. It is
|
|
84
|
+
* consumed by the only run that can ever read it, so no other run's
|
|
85
|
+
* instruction is destroyed by it.
|
|
86
|
+
*
|
|
87
|
+
* ⚠️ SIMPLE MODE IS UNTOUCHED. The default is exactly the path this class
|
|
88
|
+
* has always used, and a run only ever LOOKS for an addressed file that is
|
|
89
|
+
* named after its own freshly minted runId — so one that was never written
|
|
90
|
+
* is one that is never found.
|
|
91
|
+
*/
|
|
92
|
+
fileName?: string);
|
|
93
|
+
private get controlPath();
|
|
94
|
+
/** The addressed control file for one execution, in its own state directory. */
|
|
95
|
+
static addressed(stateDir: string, runId: string, fs: LedgerFs, now?: () => number): ControlStore;
|
|
96
|
+
/**
|
|
97
|
+
* The current request, or null when there is none.
|
|
98
|
+
*
|
|
99
|
+
* A missing, unreadable, unparseable or unrecognised file is null — not a
|
|
100
|
+
* throw. Every other store treats corruption as loud because losing its
|
|
101
|
+
* contents loses work; here the contents are one pending request, and the
|
|
102
|
+
* cost of failing loud is killing an overnight run over a half-written file.
|
|
103
|
+
* An unknown kind is the same case in a different disguise: a newer phone
|
|
104
|
+
* writing a control this build does not implement must not stop the loop.
|
|
105
|
+
*/
|
|
106
|
+
/**
|
|
107
|
+
* Like `read`, but says WHEN IT COULD NOT TELL.
|
|
108
|
+
*
|
|
109
|
+
* `read` collapses "there is nothing pending" and "I could not open the file"
|
|
110
|
+
* into the same `null`. That is right for a run about to start — it clears
|
|
111
|
+
* the file anyway — and wrong for anything deciding whether a person has
|
|
112
|
+
* asked the machine to hold, because a caller that reads "could not tell" as
|
|
113
|
+
* "nobody asked" fails OPEN on the one instruction that exists to stop work.
|
|
114
|
+
*
|
|
115
|
+
* The autonomy tick used to do exactly that while its own comment claimed the
|
|
116
|
+
* opposite: it wrapped `read` in a catch that could never fire, because the
|
|
117
|
+
* throw had already been swallowed in here.
|
|
118
|
+
*
|
|
119
|
+
* Two reads rather than one, deliberately: `read` keeps its contract for the
|
|
120
|
+
* run path, and this one does the open that can fail so it can report it.
|
|
121
|
+
* Both answers are advisory, so the gap between them costs nothing.
|
|
122
|
+
*/
|
|
123
|
+
readOrTrouble(): Promise<{
|
|
124
|
+
ok: true;
|
|
125
|
+
request: ControlRequest | null;
|
|
126
|
+
} | {
|
|
127
|
+
ok: false;
|
|
128
|
+
because: string;
|
|
129
|
+
}>;
|
|
130
|
+
read(): Promise<ControlRequest | null>;
|
|
131
|
+
/** Write a request. Last writer wins: the newest instruction is the live one. */
|
|
132
|
+
request(kind: ControlKind, actor?: string): Promise<ControlRequest>;
|
|
133
|
+
/**
|
|
134
|
+
* Clear the hold by writing `resume`.
|
|
135
|
+
*
|
|
136
|
+
* The runner calls this the moment it acts on a `stop`. Leaving the stop on
|
|
137
|
+
* disk would make it permanent: the next `looply run` would read it before its
|
|
138
|
+
* first round and end immediately, and nothing on the phone would explain why.
|
|
139
|
+
*/
|
|
140
|
+
consume(): Promise<void>;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=control-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-file.d.ts","sourceRoot":"","sources":["../src/control-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAItD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACvC,qFAAqF;IACrF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACrE;AAED,qBAAa,YAAa,YAAW,aAAa,EAAE,aAAa;IAK7D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ;IA7B3B,kFAAkF;IAClF,OAAO,CAAC,MAAM,CAAC,MAAM,CAAK;gBAGP,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,QAAQ,EACZ,GAAG,GAAE,MAAM,MAAyB;IACrD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACc,QAAQ,GAAE,MAAuB;IAGpD,OAAO,KAAK,WAAW,GAEtB;IAED,gFAAgF;IAChF,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,MAAM,GAAG,YAAY;IAIjG;;;;;;;;;OASG;IACH;;;;;;;;;;;;;;;;OAgBG;IACG,aAAa,IAAI,OAAO,CAC5B;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAC9E;IASK,IAAI,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA0B5C,iFAAiF;IAC3E,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAoBzE;;;;;;OAMG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ControlStore = void 0;
|
|
4
|
+
const KINDS = ['pause', 'stop', 'resume'];
|
|
5
|
+
class ControlStore {
|
|
6
|
+
stateDir;
|
|
7
|
+
fs;
|
|
8
|
+
now;
|
|
9
|
+
fileName;
|
|
10
|
+
/** Distinguishes two writes from ONE process; the pid distinguishes processes. */
|
|
11
|
+
static writes = 0;
|
|
12
|
+
constructor(stateDir, fs, now = () => Date.now(),
|
|
13
|
+
/**
|
|
14
|
+
* WHOSE CONTROL FILE THIS IS. `control.json` — the project's — unless a
|
|
15
|
+
* caller names one execution.
|
|
16
|
+
*
|
|
17
|
+
* 🔴 ONE SHARED FILE CANNOT BRAKE N RUNS, and `looply stop` said it could.
|
|
18
|
+
* `consume()` writes `resume` into the file it read, so with several
|
|
19
|
+
* executions running the FIRST one to reach a round boundary cleared the
|
|
20
|
+
* instruction and the rest read `resume` and carried on — while the command
|
|
21
|
+
* had already printed "N executions are running; the request reaches all of
|
|
22
|
+
* them." A human brake that reaches one run out of three is worse than one
|
|
23
|
+
* that admits it reaches none.
|
|
24
|
+
*
|
|
25
|
+
* An ADDRESSED control file — `control.<runId>.json`, in that execution's
|
|
26
|
+
* own state directory — is the same mechanism aimed at one run. It is
|
|
27
|
+
* consumed by the only run that can ever read it, so no other run's
|
|
28
|
+
* instruction is destroyed by it.
|
|
29
|
+
*
|
|
30
|
+
* ⚠️ SIMPLE MODE IS UNTOUCHED. The default is exactly the path this class
|
|
31
|
+
* has always used, and a run only ever LOOKS for an addressed file that is
|
|
32
|
+
* named after its own freshly minted runId — so one that was never written
|
|
33
|
+
* is one that is never found.
|
|
34
|
+
*/
|
|
35
|
+
fileName = 'control.json') {
|
|
36
|
+
this.stateDir = stateDir;
|
|
37
|
+
this.fs = fs;
|
|
38
|
+
this.now = now;
|
|
39
|
+
this.fileName = fileName;
|
|
40
|
+
}
|
|
41
|
+
get controlPath() {
|
|
42
|
+
return `${this.stateDir}/${this.fileName}`;
|
|
43
|
+
}
|
|
44
|
+
/** The addressed control file for one execution, in its own state directory. */
|
|
45
|
+
static addressed(stateDir, runId, fs, now) {
|
|
46
|
+
return new ControlStore(stateDir, fs, now ?? (() => Date.now()), `control.${runId}.json`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The current request, or null when there is none.
|
|
50
|
+
*
|
|
51
|
+
* A missing, unreadable, unparseable or unrecognised file is null — not a
|
|
52
|
+
* throw. Every other store treats corruption as loud because losing its
|
|
53
|
+
* contents loses work; here the contents are one pending request, and the
|
|
54
|
+
* cost of failing loud is killing an overnight run over a half-written file.
|
|
55
|
+
* An unknown kind is the same case in a different disguise: a newer phone
|
|
56
|
+
* writing a control this build does not implement must not stop the loop.
|
|
57
|
+
*/
|
|
58
|
+
/**
|
|
59
|
+
* Like `read`, but says WHEN IT COULD NOT TELL.
|
|
60
|
+
*
|
|
61
|
+
* `read` collapses "there is nothing pending" and "I could not open the file"
|
|
62
|
+
* into the same `null`. That is right for a run about to start — it clears
|
|
63
|
+
* the file anyway — and wrong for anything deciding whether a person has
|
|
64
|
+
* asked the machine to hold, because a caller that reads "could not tell" as
|
|
65
|
+
* "nobody asked" fails OPEN on the one instruction that exists to stop work.
|
|
66
|
+
*
|
|
67
|
+
* The autonomy tick used to do exactly that while its own comment claimed the
|
|
68
|
+
* opposite: it wrapped `read` in a catch that could never fire, because the
|
|
69
|
+
* throw had already been swallowed in here.
|
|
70
|
+
*
|
|
71
|
+
* Two reads rather than one, deliberately: `read` keeps its contract for the
|
|
72
|
+
* run path, and this one does the open that can fail so it can report it.
|
|
73
|
+
* Both answers are advisory, so the gap between them costs nothing.
|
|
74
|
+
*/
|
|
75
|
+
async readOrTrouble() {
|
|
76
|
+
try {
|
|
77
|
+
await this.fs.readFile(this.controlPath);
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
return { ok: false, because: e.message };
|
|
81
|
+
}
|
|
82
|
+
return { ok: true, request: await this.read() };
|
|
83
|
+
}
|
|
84
|
+
async read() {
|
|
85
|
+
let text;
|
|
86
|
+
try {
|
|
87
|
+
text = await this.fs.readFile(this.controlPath);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
if (text === null)
|
|
93
|
+
return null;
|
|
94
|
+
let parsed;
|
|
95
|
+
try {
|
|
96
|
+
parsed = JSON.parse(text);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
102
|
+
return null;
|
|
103
|
+
const { kind, requestedAt, actor } = parsed;
|
|
104
|
+
if (typeof kind !== 'string' || !KINDS.includes(kind))
|
|
105
|
+
return null;
|
|
106
|
+
return {
|
|
107
|
+
kind: kind,
|
|
108
|
+
requestedAt: typeof requestedAt === 'string' ? requestedAt : '',
|
|
109
|
+
...(typeof actor === 'string' ? { actor } : {}),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/** Write a request. Last writer wins: the newest instruction is the live one. */
|
|
113
|
+
async request(kind, actor) {
|
|
114
|
+
const req = {
|
|
115
|
+
kind,
|
|
116
|
+
requestedAt: new Date(this.now()).toISOString(),
|
|
117
|
+
...(actor === undefined ? {} : { actor }),
|
|
118
|
+
};
|
|
119
|
+
await this.fs.mkdir(this.stateDir);
|
|
120
|
+
// Temp-then-rename, same contract as status.json and queue.json — a reader
|
|
121
|
+
// in the other process must never catch half a request.
|
|
122
|
+
// The temp name is PRIVATE TO THIS WRITER. A shared `control.json.tmp` is
|
|
123
|
+
// two processes writing one path: the second truncates and rewrites what
|
|
124
|
+
// the first is midway through, and then both rename it into place. The
|
|
125
|
+
// rename is atomic and the file it renames is a splice of two writes, and
|
|
126
|
+
// nothing downstream can tell.
|
|
127
|
+
const tmp = `${this.controlPath}.${process.pid}.${(ControlStore.writes += 1)}.tmp`;
|
|
128
|
+
await this.fs.writeFile(tmp, JSON.stringify(req, null, 2) + '\n');
|
|
129
|
+
await this.fs.rename(tmp, this.controlPath);
|
|
130
|
+
return req;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Clear the hold by writing `resume`.
|
|
134
|
+
*
|
|
135
|
+
* The runner calls this the moment it acts on a `stop`. Leaving the stop on
|
|
136
|
+
* disk would make it permanent: the next `looply run` would read it before its
|
|
137
|
+
* first round and end immediately, and nothing on the phone would explain why.
|
|
138
|
+
*/
|
|
139
|
+
async consume() {
|
|
140
|
+
await this.request('resume');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.ControlStore = ControlStore;
|
|
144
|
+
//# sourceMappingURL=control-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-file.js","sourceRoot":"","sources":["../src/control-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { ScheduleGoal, ScheduleHold, ScheduleRun, ScheduleWorkspace } from '@looply/core';
|
|
2
|
+
import type { GoalStore } from './goal-store';
|
|
3
|
+
import type { AutonomyStore } from './autonomy-store';
|
|
4
|
+
import type { LoopSafetyStore } from './loop-safety-store';
|
|
5
|
+
import { type RunRegistry } from './workspace';
|
|
6
|
+
import type { CoordinatorInput } from './coordinator';
|
|
7
|
+
/**
|
|
8
|
+
* TURNING WHAT IS ON DISK INTO WHAT THE SCHEDULER TAKES.
|
|
9
|
+
*
|
|
10
|
+
* ⚠️ A SEPARATE FILE, DELIBERATELY. `decideSchedule` is pure and
|
|
11
|
+
* `coordinator.ts` is nearly pure — this is the only part that reads a
|
|
12
|
+
* filesystem, and keeping it apart is what lets the confinement spec assert
|
|
13
|
+
* something meaningful about the other two.
|
|
14
|
+
*
|
|
15
|
+
* ⚠️ AND IT IS A READ, START TO FINISH. Nothing here creates, claims, removes
|
|
16
|
+
* or repairs anything. A gatherer with a side effect would make the tick's
|
|
17
|
+
* "decides, never executes" property depend on where you drew the line.
|
|
18
|
+
*/
|
|
19
|
+
export interface Gatherers {
|
|
20
|
+
readonly goals: GoalStore;
|
|
21
|
+
/** The grants. Null when this project has none — then nothing is startable. */
|
|
22
|
+
readonly autonomy: AutonomyStore | null;
|
|
23
|
+
readonly registry: RunRegistry;
|
|
24
|
+
readonly safety: LoopSafetyStore | null;
|
|
25
|
+
readonly capacity: {
|
|
26
|
+
maxWorkspaces: number;
|
|
27
|
+
maxAgentsInFlight: number;
|
|
28
|
+
provision?: boolean;
|
|
29
|
+
};
|
|
30
|
+
readonly now: () => number;
|
|
31
|
+
readonly home?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Does this programme integrate?
|
|
34
|
+
*
|
|
35
|
+
* 🔴 IT CHANGES WHAT "SATISFIED" MEANS FOR A DEPENDENCY. Both keys turning
|
|
36
|
+
* is a fact about one checkout; under a lane, a dependent that starts on it
|
|
37
|
+
* builds against work that is not on the branch everything else is cut from.
|
|
38
|
+
* Absent is off — the behaviour every project without a lane has always had.
|
|
39
|
+
*/
|
|
40
|
+
readonly integrates?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* F28 (corr-3): goals whose controller answered `wait`/`hold` last cadence. Absent: none known.
|
|
43
|
+
*/
|
|
44
|
+
readonly held?: ReadonlySet<string>;
|
|
45
|
+
/**
|
|
46
|
+
* F34: the `goalId@version`s the brain has answered, in a programme whose brain proposes
|
|
47
|
+
* dependencies. Absent: no advice is awaited (no brain, or not a programme).
|
|
48
|
+
*/
|
|
49
|
+
readonly advised?: ReadonlySet<string>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* F28 (B13): where each goal's plan lives, keyed `goalId@version` — the checkout named by the
|
|
53
|
+
* NEWEST `claims` record for that goal and version, matched to a checkout that still exists.
|
|
54
|
+
* The newest decides: when its checkout is gone, so is the plan, and the goal has no home.
|
|
55
|
+
*
|
|
56
|
+
* ⚠️ PATHS ARE COMPARED AS THE FILESYSTEM COMPARES THEM — case-insensitively on Windows — and
|
|
57
|
+
* the answer is the scheduler's own spelling of the checkout, so its match is exact.
|
|
58
|
+
*/
|
|
59
|
+
export declare function homesFor(cwd: string, workspaces: readonly ScheduleWorkspace[]): Map<string, string>;
|
|
60
|
+
/**
|
|
61
|
+
* Which goals the scheduler may consider, and when each became eligible.
|
|
62
|
+
*
|
|
63
|
+
* ⚠️ `queuedAt` IS `updatedAt`, WHICH IS THE HONEST APPROXIMATION AND IS SAID
|
|
64
|
+
* SO RATHER THAN LEFT TO BE FOUND. A goal has no "became eligible" timestamp;
|
|
65
|
+
* what it has is when it last changed, which for an authorized goal that has
|
|
66
|
+
* not run is when a person authorized it. The age boost is monotone in this
|
|
67
|
+
* value, so the anti-starvation bound holds whatever it is anchored to.
|
|
68
|
+
*
|
|
69
|
+
* ⚠️ AND THE OLD VERSION OF THIS SENTENCE WAS WRONG IN A WAY WORTH KEEPING. It
|
|
70
|
+
* said an inaccurate anchor "costs fairness between two goals, not liveness" —
|
|
71
|
+
* true of an anchor that is merely wrong, and false of the one the code
|
|
72
|
+
* actually produced, which was the epoch. See `queuedAt` below.
|
|
73
|
+
*/
|
|
74
|
+
export declare function goalsFor(store: GoalStore, autonomy: AutonomyStore | null,
|
|
75
|
+
/**
|
|
76
|
+
* The goal ids whose work has been published to the integration ref.
|
|
77
|
+
*
|
|
78
|
+
* ⚠️ ABSENT IS UNKNOWN, AND THE SCHEDULER READS UNKNOWN AS NOT INTEGRATED
|
|
79
|
+
* — but only when the programme says it integrates. A project with no lane
|
|
80
|
+
* never consults it, which is why passing nothing is safe for every caller
|
|
81
|
+
* that had none.
|
|
82
|
+
*/
|
|
83
|
+
integrated?: ReadonlySet<string>): ScheduleGoal[];
|
|
84
|
+
/**
|
|
85
|
+
* The runs in flight, from the registry the bound already uses.
|
|
86
|
+
*
|
|
87
|
+
* ⚠️ ACTIVE ONLY. An orphaned record is a crashed run: counting it would hold
|
|
88
|
+
* capacity a dead process is not using, and the reaper is what clears it.
|
|
89
|
+
*/
|
|
90
|
+
export declare function runsFor(registry: RunRegistry): ScheduleRun[];
|
|
91
|
+
/**
|
|
92
|
+
* The checkouts the machine could hand out, and their state.
|
|
93
|
+
*
|
|
94
|
+
* ⚠️ QUARANTINED IS ITS OWN ANSWER, not "busy". A busy workspace frees itself
|
|
95
|
+
* when its run ends; a quarantined one never does, and a scheduler that could
|
|
96
|
+
* not tell them apart would wait for ever on a directory a person has to look
|
|
97
|
+
* at.
|
|
98
|
+
*/
|
|
99
|
+
export declare function workspacesFor(cwd: string, registry: RunRegistry, home?: string): ScheduleWorkspace[];
|
|
100
|
+
/**
|
|
101
|
+
* The holds, flattened.
|
|
102
|
+
*
|
|
103
|
+
* ⚠️ THE COORDINATOR EVALUATES NO DETECTORS. It asks the store which goals are
|
|
104
|
+
* held and takes the answer. A scheduler that re-derived a hold would be a
|
|
105
|
+
* second brake with its own opinion, and the two would disagree exactly when
|
|
106
|
+
* it mattered.
|
|
107
|
+
*/
|
|
108
|
+
export declare function holdsFor(safety: LoopSafetyStore | null, goals: readonly ScheduleGoal[]): ScheduleHold[];
|
|
109
|
+
/**
|
|
110
|
+
* WHICH SURFACES ARE HELD RIGHT NOW, AND BY WHICH RUN.
|
|
111
|
+
*
|
|
112
|
+
* 🔴 THE SCHEDULER'S SURFACE GATE WAS DEAD CODE. `decideSchedule` has a
|
|
113
|
+
* `waitingOn: 'surface'` branch — written, specced, and unreachable, because
|
|
114
|
+
* NOTHING in production ever populated `surfacesHeld`. So two goals declaring
|
|
115
|
+
* the same directory were both started in one tick, and the only thing standing
|
|
116
|
+
* between them was the surface lease refusing the second run AFTER it had been
|
|
117
|
+
* spawned, a workspace assigned and a model paid for.
|
|
118
|
+
*
|
|
119
|
+
* ⚠️ THE COORDINATOR ONLY LOOKS. It reports what the leases say; acquiring is
|
|
120
|
+
* still the launcher's business, in a total order, all-or-nothing, before the
|
|
121
|
+
* run starts. This is the cheap check that avoids paying for the expensive one.
|
|
122
|
+
*
|
|
123
|
+
* ⚠️ AND IT IS AN OPTIMISATION, NOT THE GUARANTEE. The lease is the guarantee —
|
|
124
|
+
* this is read at decision time and the world moves. A goal that slips through
|
|
125
|
+
* meets the lease and is refused there, which is exactly where it was refused
|
|
126
|
+
* before this existed.
|
|
127
|
+
*/
|
|
128
|
+
export declare function surfacesHeldFor(cwd: string, goals: readonly ScheduleGoal[], now: number): Record<string, string>;
|
|
129
|
+
/** Everything the tick needs, read once. */
|
|
130
|
+
export declare function gatherScheduleState(cwd: string, deps: Gatherers): CoordinatorInput;
|
|
131
|
+
//# sourceMappingURL=coordinator-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator-state.d.ts","sourceRoot":"","sources":["../src/coordinator-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAgC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAM7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7F,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,iBAAiB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYnG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,aAAa,GAAG,IAAI;AAC9B;;;;;;;GAOG;AACH,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,YAAY,EAAE,CAoFhB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,EAAE,CAoB5D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,WAAW,EACrB,IAAI,GAAE,MAAkB,GACvB,iBAAiB,EAAE,CAsBrB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,YAAY,EAAE,CAkCvG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,GAAG,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxB;AAoBD,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAiElF"}
|