@descryy/mcp 0.6.0 → 0.7.1
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/dist/action-handshake.d.ts +8 -75
- package/dist/action-handshake.d.ts.map +1 -1
- package/dist/action-handshake.js +9 -79
- package/dist/action-handshake.js.map +1 -1
- package/dist/bin/descry-mcp.d.ts +4 -15
- package/dist/bin/descry-mcp.d.ts.map +1 -1
- package/dist/bin/descry-mcp.js +12 -42
- package/dist/bin/descry-mcp.js.map +1 -1
- package/dist/browser/driver.d.ts +121 -224
- package/dist/browser/driver.d.ts.map +1 -1
- package/dist/browser/driver.js +9 -55
- package/dist/browser/driver.js.map +1 -1
- package/dist/browser/evidence.d.ts +10 -43
- package/dist/browser/evidence.d.ts.map +1 -1
- package/dist/browser/evidence.js +20 -54
- package/dist/browser/evidence.js.map +1 -1
- package/dist/browser/fake-driver.d.ts +12 -19
- package/dist/browser/fake-driver.d.ts.map +1 -1
- package/dist/browser/fake-driver.js +31 -26
- package/dist/browser/fake-driver.js.map +1 -1
- package/dist/browser/graph-write.d.ts +4 -45
- package/dist/browser/graph-write.d.ts.map +1 -1
- package/dist/browser/graph-write.js +8 -53
- package/dist/browser/graph-write.js.map +1 -1
- package/dist/browser/playwright-driver.d.ts +7 -91
- package/dist/browser/playwright-driver.d.ts.map +1 -1
- package/dist/browser/playwright-driver.js +59 -197
- package/dist/browser/playwright-driver.js.map +1 -1
- package/dist/browser/provider.d.ts +5 -34
- package/dist/browser/provider.d.ts.map +1 -1
- package/dist/browser/provider.js +4 -24
- package/dist/browser/provider.js.map +1 -1
- package/dist/browser/registry.d.ts +26 -106
- package/dist/browser/registry.d.ts.map +1 -1
- package/dist/browser/registry.js +20 -77
- package/dist/browser/registry.js.map +1 -1
- package/dist/browser/scenario-provenance.d.ts +23 -0
- package/dist/browser/scenario-provenance.d.ts.map +1 -0
- package/dist/browser/scenario-provenance.js +59 -0
- package/dist/browser/scenario-provenance.js.map +1 -0
- package/dist/browser/scenario-resolve.d.ts +10 -44
- package/dist/browser/scenario-resolve.d.ts.map +1 -1
- package/dist/browser/scenario-resolve.js +10 -41
- package/dist/browser/scenario-resolve.js.map +1 -1
- package/dist/browser/scenario-runner.d.ts +12 -70
- package/dist/browser/scenario-runner.d.ts.map +1 -1
- package/dist/browser/scenario-runner.js +30 -90
- package/dist/browser/scenario-runner.js.map +1 -1
- package/dist/browser/stack-parser.d.ts +4 -28
- package/dist/browser/stack-parser.d.ts.map +1 -1
- package/dist/browser/stack-parser.js +12 -39
- package/dist/browser/stack-parser.js.map +1 -1
- package/dist/browser/tool-support.d.ts +20 -67
- package/dist/browser/tool-support.d.ts.map +1 -1
- package/dist/browser/tool-support.js +21 -65
- package/dist/browser/tool-support.js.map +1 -1
- package/dist/browser/url-scheme.d.ts +14 -0
- package/dist/browser/url-scheme.d.ts.map +1 -0
- package/dist/browser/url-scheme.js +38 -0
- package/dist/browser/url-scheme.js.map +1 -0
- package/dist/cancellation.d.ts +11 -46
- package/dist/cancellation.d.ts.map +1 -1
- package/dist/cancellation.js +11 -46
- package/dist/cancellation.js.map +1 -1
- package/dist/capped.d.ts +9 -33
- package/dist/capped.d.ts.map +1 -1
- package/dist/capped.js +7 -27
- package/dist/capped.js.map +1 -1
- package/dist/disclosure-ledger.d.ts +6 -30
- package/dist/disclosure-ledger.d.ts.map +1 -1
- package/dist/disclosure-ledger.js +4 -26
- package/dist/disclosure-ledger.js.map +1 -1
- package/dist/index.d.ts +10 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -17
- package/dist/index.js.map +1 -1
- package/dist/module-trust.d.ts +24 -0
- package/dist/module-trust.d.ts.map +1 -0
- package/dist/module-trust.js +60 -0
- package/dist/module-trust.js.map +1 -0
- package/dist/path-confinement.d.ts +31 -0
- package/dist/path-confinement.d.ts.map +1 -0
- package/dist/path-confinement.js +44 -0
- package/dist/path-confinement.js.map +1 -0
- package/dist/protocol.d.ts +10 -53
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +14 -60
- package/dist/protocol.js.map +1 -1
- package/dist/registry.d.ts +37 -58
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +88 -96
- package/dist/registry.js.map +1 -1
- package/dist/render.d.ts +89 -13
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +111 -16
- package/dist/render.js.map +1 -1
- package/dist/runtime-registry.d.ts +7 -66
- package/dist/runtime-registry.d.ts.map +1 -1
- package/dist/runtime-registry.js +39 -114
- package/dist/runtime-registry.js.map +1 -1
- package/dist/scenarios/index.d.ts +1 -1
- package/dist/scenarios/index.d.ts.map +1 -1
- package/dist/scenarios/index.js +1 -1
- package/dist/scenarios/index.js.map +1 -1
- package/dist/scenarios/parse.d.ts +4 -18
- package/dist/scenarios/parse.d.ts.map +1 -1
- package/dist/scenarios/parse.js +14 -34
- package/dist/scenarios/parse.js.map +1 -1
- package/dist/scenarios/scenario.d.ts +18 -74
- package/dist/scenarios/scenario.d.ts.map +1 -1
- package/dist/scenarios/scenario.js +7 -34
- package/dist/scenarios/scenario.js.map +1 -1
- package/dist/scenarios/storage.d.ts +11 -41
- package/dist/scenarios/storage.d.ts.map +1 -1
- package/dist/scenarios/storage.js +57 -47
- package/dist/scenarios/storage.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +69 -19
- package/dist/server.js.map +1 -1
- package/dist/session.d.ts +90 -259
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +136 -250
- package/dist/session.js.map +1 -1
- package/dist/tools/analyze.d.ts +32 -118
- package/dist/tools/analyze.d.ts.map +1 -1
- package/dist/tools/analyze.js +65 -186
- package/dist/tools/analyze.js.map +1 -1
- package/dist/tools/browser-click.d.ts +3 -21
- package/dist/tools/browser-click.d.ts.map +1 -1
- package/dist/tools/browser-click.js +10 -31
- package/dist/tools/browser-click.js.map +1 -1
- package/dist/tools/browser-close-session.d.ts +4 -13
- package/dist/tools/browser-close-session.d.ts.map +1 -1
- package/dist/tools/browser-close-session.js +4 -13
- package/dist/tools/browser-close-session.js.map +1 -1
- package/dist/tools/browser-fill.d.ts +5 -36
- package/dist/tools/browser-fill.d.ts.map +1 -1
- package/dist/tools/browser-fill.js +9 -44
- package/dist/tools/browser-fill.js.map +1 -1
- package/dist/tools/browser-navigate.d.ts +6 -27
- package/dist/tools/browser-navigate.d.ts.map +1 -1
- package/dist/tools/browser-navigate.js +6 -23
- package/dist/tools/browser-navigate.js.map +1 -1
- package/dist/tools/browser-run-scenario.d.ts +5 -31
- package/dist/tools/browser-run-scenario.d.ts.map +1 -1
- package/dist/tools/browser-run-scenario.js +10 -46
- package/dist/tools/browser-run-scenario.js.map +1 -1
- package/dist/tools/browser-save-scenario.d.ts +3 -28
- package/dist/tools/browser-save-scenario.d.ts.map +1 -1
- package/dist/tools/browser-save-scenario.js +47 -84
- package/dist/tools/browser-save-scenario.js.map +1 -1
- package/dist/tools/browser-snapshot.d.ts +6 -39
- package/dist/tools/browser-snapshot.d.ts.map +1 -1
- package/dist/tools/browser-snapshot.js +4 -31
- package/dist/tools/browser-snapshot.js.map +1 -1
- package/dist/tools/browser-start-session.d.ts +4 -23
- package/dist/tools/browser-start-session.d.ts.map +1 -1
- package/dist/tools/browser-start-session.js +145 -56
- package/dist/tools/browser-start-session.js.map +1 -1
- package/dist/tools/browser-type.d.ts +5 -35
- package/dist/tools/browser-type.d.ts.map +1 -1
- package/dist/tools/browser-type.js +10 -45
- package/dist/tools/browser-type.js.map +1 -1
- package/dist/tools/contracts.d.ts +9 -86
- package/dist/tools/contracts.d.ts.map +1 -1
- package/dist/tools/contracts.js +24 -80
- package/dist/tools/contracts.js.map +1 -1
- package/dist/tools/cross-pr.d.ts +42 -30
- package/dist/tools/cross-pr.d.ts.map +1 -1
- package/dist/tools/cross-pr.js +81 -62
- package/dist/tools/cross-pr.js.map +1 -1
- package/dist/tools/git-diff.d.ts +18 -2
- package/dist/tools/git-diff.d.ts.map +1 -1
- package/dist/tools/git-diff.js +118 -26
- package/dist/tools/git-diff.js.map +1 -1
- package/dist/tools/git-history.d.ts +5 -16
- package/dist/tools/git-history.d.ts.map +1 -1
- package/dist/tools/git-history.js +3 -10
- package/dist/tools/git-history.js.map +1 -1
- package/dist/tools/history.d.ts +4 -33
- package/dist/tools/history.d.ts.map +1 -1
- package/dist/tools/history.js +6 -31
- package/dist/tools/history.js.map +1 -1
- package/dist/tools/impact.d.ts +7 -51
- package/dist/tools/impact.d.ts.map +1 -1
- package/dist/tools/impact.js +15 -67
- package/dist/tools/impact.js.map +1 -1
- package/dist/tools/index.d.ts +3 -8
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -8
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/kit.d.ts +66 -113
- package/dist/tools/kit.d.ts.map +1 -1
- package/dist/tools/kit.js +60 -28
- package/dist/tools/kit.js.map +1 -1
- package/dist/tools/link-workspace.d.ts +7 -45
- package/dist/tools/link-workspace.d.ts.map +1 -1
- package/dist/tools/link-workspace.js +10 -48
- package/dist/tools/link-workspace.js.map +1 -1
- package/dist/tools/lookup.d.ts +4 -14
- package/dist/tools/lookup.d.ts.map +1 -1
- package/dist/tools/lookup.js +4 -14
- package/dist/tools/lookup.js.map +1 -1
- package/dist/tools/mark-incident.d.ts +7 -54
- package/dist/tools/mark-incident.d.ts.map +1 -1
- package/dist/tools/mark-incident.js +15 -68
- package/dist/tools/mark-incident.js.map +1 -1
- package/dist/tools/observe-runtime.d.ts +27 -210
- package/dist/tools/observe-runtime.d.ts.map +1 -1
- package/dist/tools/observe-runtime.js +273 -434
- package/dist/tools/observe-runtime.js.map +1 -1
- package/dist/tools/observe-tests.d.ts +9 -100
- package/dist/tools/observe-tests.d.ts.map +1 -1
- package/dist/tools/observe-tests.js +74 -152
- package/dist/tools/observe-tests.js.map +1 -1
- package/dist/tools/pr-analysis.d.ts +18 -2
- package/dist/tools/pr-analysis.d.ts.map +1 -1
- package/dist/tools/pr-analysis.js +73 -23
- package/dist/tools/pr-analysis.js.map +1 -1
- package/dist/tools/pre-push.d.ts +74 -16
- package/dist/tools/pre-push.d.ts.map +1 -1
- package/dist/tools/pre-push.js +152 -51
- package/dist/tools/pre-push.js.map +1 -1
- package/dist/tools/propagation.d.ts +11 -53
- package/dist/tools/propagation.d.ts.map +1 -1
- package/dist/tools/propagation.js +17 -58
- package/dist/tools/propagation.js.map +1 -1
- package/dist/tools/questions.d.ts +13 -63
- package/dist/tools/questions.d.ts.map +1 -1
- package/dist/tools/questions.js +33 -105
- package/dist/tools/questions.js.map +1 -1
- package/dist/tools/refusal-fetch.d.ts +4 -40
- package/dist/tools/refusal-fetch.d.ts.map +1 -1
- package/dist/tools/refusal-fetch.js +4 -40
- package/dist/tools/refusal-fetch.js.map +1 -1
- package/dist/tools/runtime-incident.d.ts +4 -63
- package/dist/tools/runtime-incident.d.ts.map +1 -1
- package/dist/tools/runtime-incident.js +10 -87
- package/dist/tools/runtime-incident.js.map +1 -1
- package/dist/tools/scope.d.ts +7 -25
- package/dist/tools/scope.d.ts.map +1 -1
- package/dist/tools/scope.js +10 -29
- package/dist/tools/scope.js.map +1 -1
- package/dist/tools/similar-incidents.d.ts +11 -86
- package/dist/tools/similar-incidents.d.ts.map +1 -1
- package/dist/tools/similar-incidents.js +7 -71
- package/dist/tools/similar-incidents.js.map +1 -1
- package/dist/tools/validate.d.ts +29 -70
- package/dist/tools/validate.d.ts.map +1 -1
- package/dist/tools/validate.js +141 -85
- package/dist/tools/validate.js.map +1 -1
- package/dist/tools/verification-status.d.ts +9 -64
- package/dist/tools/verification-status.d.ts.map +1 -1
- package/dist/tools/verification-status.js +9 -62
- package/dist/tools/verification-status.js.map +1 -1
- package/dist/tools/verify-claim.d.ts +5 -52
- package/dist/tools/verify-claim.d.ts.map +1 -1
- package/dist/tools/verify-claim.js +6 -56
- package/dist/tools/verify-claim.js.map +1 -1
- package/dist/transport.d.ts +15 -52
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +16 -60
- package/dist/transport.js.map +1 -1
- package/package.json +40 -22
package/dist/session.js
CHANGED
|
@@ -1,27 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* One
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* ## Configuration is read once and reported, not read repeatedly and assumed
|
|
9
|
-
*
|
|
10
|
-
* `.descry/config.json` is optional. Everything in it has a default that makes
|
|
11
|
-
* local mode work unconfigured, per the architecture's local-first guarantee —
|
|
12
|
-
* except the source list, which cannot have one: this repository must not name
|
|
13
|
-
* an adapter (see `registry.ts`). So an unconfigured session can query a graph
|
|
14
|
-
* and cannot build one, and `analyze` says exactly that rather than reporting a
|
|
15
|
-
* successful run over zero sources.
|
|
16
|
-
*
|
|
17
|
-
* ## The graph is opened lazily
|
|
18
|
-
*
|
|
19
|
-
* A server that opened the database at startup would fail to start on a repo
|
|
20
|
-
* that has never been analysed — the worst possible first experience for the
|
|
21
|
-
* primary UX. Opening on first use means `tools/list` works everywhere, and a
|
|
22
|
-
* query against a missing graph fails as a *tool* result the agent can read and
|
|
23
|
-
* act on ("run analyze first"), not as a crash before the handshake.
|
|
24
|
-
*/
|
|
2
|
+
* One repo, one graph, one process — owns the SQLite handle, config, sources; tools
|
|
3
|
+
* own nothing. `.descry/config.json` is optional, defaults to local-first, except the
|
|
4
|
+
* source list (this repo names no adapter, `registry.ts`): unconfigured sessions can
|
|
5
|
+
* query, not build. Graph opens lazily so a missing one fails as a tool result, not a crash. */
|
|
6
|
+
import { existsSync } from "node:fs";
|
|
25
7
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
26
8
|
import { basename, isAbsolute, join, resolve } from "node:path";
|
|
27
9
|
import { isConfirmedFactScope } from "@descryy/ir";
|
|
@@ -94,9 +76,8 @@ function parseConfirmedFacts(raw, configPath) {
|
|
|
94
76
|
...(e["environment"] === undefined ? {} : { environment: e["environment"] }),
|
|
95
77
|
confirmedBy: e["confirmedBy"],
|
|
96
78
|
confirmedAt: e["confirmedAt"],
|
|
97
|
-
// Round-tripped rather than dropped
|
|
98
|
-
// `writeConfirmedFact
|
|
99
|
-
// staleness disclosure it exists for could never fire after a reload.
|
|
79
|
+
// Round-tripped rather than dropped — `confirmedAtCommit` was written by
|
|
80
|
+
// `writeConfirmedFact`; discarding it on reload would silence the staleness disclosure.
|
|
100
81
|
...(e["confirmedAtCommit"] === undefined ? {} : { confirmedAtCommit: e["confirmedAtCommit"] }),
|
|
101
82
|
...(e["scope"] === undefined ? {} : { scope: e["scope"] }),
|
|
102
83
|
...(e["workspace"] === undefined ? {} : { workspace: e["workspace"] }),
|
|
@@ -124,9 +105,8 @@ export async function loadConfig(repoPath) {
|
|
|
124
105
|
catch (error) {
|
|
125
106
|
const code = error.code;
|
|
126
107
|
if (code !== "ENOENT") {
|
|
127
|
-
// A config that exists and
|
|
128
|
-
//
|
|
129
|
-
// settings the user believes they overrode.
|
|
108
|
+
// A config that exists and can't be parsed is refused, not defaulted past —
|
|
109
|
+
// silently falling back would run the session under settings the user thinks they overrode.
|
|
130
110
|
throw new ConfigError(`${configPath} exists but could not be read: ${error.message}`);
|
|
131
111
|
}
|
|
132
112
|
}
|
|
@@ -144,9 +124,8 @@ export async function loadConfig(repoPath) {
|
|
|
144
124
|
const workspace = typeof raw.workspace === "string" && raw.workspace !== "" ? raw.workspace : undefined;
|
|
145
125
|
const workspaceRepos = parseWorkspaceRepos(raw.workspaceRepos, configPath);
|
|
146
126
|
return {
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
// changes with it. Stated in the analyze disclosures rather than left to be
|
|
127
|
+
// Directory name is a defensible default and poor identity — changes on clone,
|
|
128
|
+
// and every repo-scoped node id changes with it. Disclosed in `analyze`, not
|
|
150
129
|
// discovered when two machines produce different graphs.
|
|
151
130
|
repo: typeof raw.repo === "string" && raw.repo !== "" ? raw.repo : basename(resolve(repoPath)),
|
|
152
131
|
workspace,
|
|
@@ -159,6 +138,72 @@ export async function loadConfig(repoPath) {
|
|
|
159
138
|
configPath: found,
|
|
160
139
|
};
|
|
161
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Fields compared for staleness (13.3.16 / N2). Deliberately excludes `linkedFacts`:
|
|
143
|
+
* it is derived from sibling repos' own files at load time, not something a local
|
|
144
|
+
* edit to *this* repo's config changes, and diffing it here would double-count
|
|
145
|
+
* `workspaceRepos` drift under a second name.
|
|
146
|
+
*/
|
|
147
|
+
const DRIFT_FIELDS = [
|
|
148
|
+
"repo",
|
|
149
|
+
"workspace",
|
|
150
|
+
"graph",
|
|
151
|
+
"sources",
|
|
152
|
+
"confirmedFacts",
|
|
153
|
+
"confirmedIncidents",
|
|
154
|
+
"workspaceRepos",
|
|
155
|
+
"configPath",
|
|
156
|
+
];
|
|
157
|
+
function driftedKeys(onDisk, loaded) {
|
|
158
|
+
return DRIFT_FIELDS.filter((key) => JSON.stringify(onDisk[key]) !== JSON.stringify(loaded[key]));
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* 13.3.16 (N2): a count match on `sources` is not a content match — two sessions
|
|
162
|
+
* swapping one adapter for another, or changing an adapter's options, leave
|
|
163
|
+
* `sources.length` unchanged, which is exactly the gap that let a concurrent edit
|
|
164
|
+
* go undetected and left a graph stuck at R0 with no disclosure of why. Every
|
|
165
|
+
* field is compared by value, and the note names which ones actually changed —
|
|
166
|
+
* `graph`, `confirmedFacts`/`confirmedIncidents` and `workspaceRepos` were
|
|
167
|
+
* previously not compared at all.
|
|
168
|
+
*/
|
|
169
|
+
export function configDriftNote(onDisk, loaded) {
|
|
170
|
+
if (onDisk === null)
|
|
171
|
+
return undefined;
|
|
172
|
+
const changed = driftedKeys(onDisk, loaded);
|
|
173
|
+
if (changed.length === 0)
|
|
174
|
+
return undefined;
|
|
175
|
+
return ("The on-disk .descry/config.json no longer matches what this server loaded at startup " +
|
|
176
|
+
`(changed: ${changed.join(", ")}). Configuration is read once per process, not on every call ` +
|
|
177
|
+
"(session.ts) — this run is still using the configuration this server started with, not the " +
|
|
178
|
+
"current file. Restart the MCP server for on-disk changes to take effect; the notes below " +
|
|
179
|
+
"describe the stale, running configuration, not what is actually on disk now.");
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* 13.3.16 (N2) steps 2-3: called once per tool call from `server.ts`, not only from
|
|
183
|
+
* `analyze`, so every reply discloses a stale session rather than the one tool that
|
|
184
|
+
* happened to re-read the config. A config that cannot even be read right now
|
|
185
|
+
* (deleted mid-session, or edited into something `loadConfig` refuses) is itself
|
|
186
|
+
* drift and must not read as "no drift" merely because there is nothing to diff
|
|
187
|
+
* against — the previous `.catch(() => null)` collapsed that case into silence.
|
|
188
|
+
*/
|
|
189
|
+
export async function checkConfigDrift(session) {
|
|
190
|
+
if (!existsSync(session.repoPath))
|
|
191
|
+
return { stale: false, note: undefined };
|
|
192
|
+
try {
|
|
193
|
+
const onDisk = await loadConfig(session.repoPath);
|
|
194
|
+
const note = configDriftNote(onDisk, session.config);
|
|
195
|
+
return { stale: note !== undefined, note };
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
199
|
+
return {
|
|
200
|
+
stale: true,
|
|
201
|
+
note: `The on-disk .descry/config.json could not be read as of this call (${reason}). This run ` +
|
|
202
|
+
"is still using the configuration loaded at startup; whether that configuration still " +
|
|
203
|
+
"matches what is on disk now cannot be determined.",
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
}
|
|
162
207
|
function parseWorkspaceRepos(raw, configPath) {
|
|
163
208
|
if (raw === undefined)
|
|
164
209
|
return [];
|
|
@@ -175,23 +220,9 @@ function parseWorkspaceRepos(raw, configPath) {
|
|
|
175
220
|
return { path: e["path"], repo: e["repo"] };
|
|
176
221
|
});
|
|
177
222
|
}
|
|
178
|
-
/**
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
* One level only — a sibling's own `workspaceRepos` is not followed. The list
|
|
183
|
-
* is a declaration of one workspace's membership, not a graph to walk, and
|
|
184
|
-
* recursing would make session startup depend on how many times that
|
|
185
|
-
* declaration happens to be repeated.
|
|
186
|
-
*
|
|
187
|
-
* Every failure is silent by design and it is the one place in this file where
|
|
188
|
-
* that is right: a sibling that has moved, was never cloned on this machine, or
|
|
189
|
-
* holds an unparseable config is a repository whose facts are simply not
|
|
190
|
-
* available. Refusing to start a session over it would make one repository's
|
|
191
|
-
* local state block work in another. The absence is visible where it matters —
|
|
192
|
-
* `questions` reports what answered a row and what did not — rather than as a
|
|
193
|
-
* startup failure here.
|
|
194
|
-
*/
|
|
223
|
+
/** Workspace-scoped facts from this workspace's *other* repos, one level only (no
|
|
224
|
+
* recursive follow of a sibling's own `workspaceRepos`). Every failure here is silent
|
|
225
|
+
* by design — a broken/uncloned sibling must not block this session; `questions` discloses it. */
|
|
195
226
|
async function readLinkedFacts(repoPath, workspace, repos) {
|
|
196
227
|
if (workspace === undefined || repos.length === 0)
|
|
197
228
|
return [];
|
|
@@ -209,9 +240,8 @@ async function readLinkedFacts(repoPath, workspace, repos) {
|
|
|
209
240
|
catch {
|
|
210
241
|
continue;
|
|
211
242
|
}
|
|
212
|
-
//
|
|
213
|
-
//
|
|
214
|
-
// sitting in a linked config still does not cross.
|
|
243
|
+
// Checked on the fact itself, not inferred from being found in a linked repo —
|
|
244
|
+
// a repo-scoped fact in a linked config still does not cross.
|
|
215
245
|
for (const fact of facts) {
|
|
216
246
|
if (fact.scope === "workspace" && fact.workspace === workspace)
|
|
217
247
|
out.push(fact);
|
|
@@ -219,16 +249,9 @@ async function readLinkedFacts(repoPath, workspace, repos) {
|
|
|
219
249
|
}
|
|
220
250
|
return out;
|
|
221
251
|
}
|
|
222
|
-
/**
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
* One writer for one file, used by both front doors that set the workspace
|
|
226
|
-
* id — `descry init` (`@descryy/cli`) and the `link_workspace` MCP tool — so
|
|
227
|
-
* the two can never drift into writing two different shapes of the same
|
|
228
|
-
* file. Fields this function does not know about (`graph`, `sources`, or
|
|
229
|
-
* anything a future version adds) survive a re-run untouched: this patches
|
|
230
|
-
* `repo` and `workspace`, it does not own the whole file.
|
|
231
|
-
*/
|
|
252
|
+
/** `.descry/config.json`'s writer, paired with `loadConfig`. One writer used by both
|
|
253
|
+
* `descry init` and `link_workspace` so they can't drift into writing different
|
|
254
|
+
* shapes. Patches `repo`/`workspace` only — other fields survive untouched. */
|
|
232
255
|
export async function writeConfig(repoPath, patch) {
|
|
233
256
|
const path = join(repoPath, CONFIG_RELATIVE_PATH);
|
|
234
257
|
let existing = {};
|
|
@@ -236,10 +259,9 @@ export async function writeConfig(repoPath, patch) {
|
|
|
236
259
|
existing = JSON.parse(await readFile(path, "utf8"));
|
|
237
260
|
}
|
|
238
261
|
catch (error) {
|
|
239
|
-
//
|
|
240
|
-
//
|
|
241
|
-
//
|
|
242
|
-
// (ENOENT) takes the same path; both mean "start from nothing".
|
|
262
|
+
// An unparseable config is fixed here (start from empty), unlike `loadConfig`
|
|
263
|
+
// which refuses — this writer's job is to repair, not run a session. ENOENT
|
|
264
|
+
// takes the same path.
|
|
243
265
|
void error;
|
|
244
266
|
existing = {};
|
|
245
267
|
}
|
|
@@ -251,18 +273,9 @@ export async function writeConfig(repoPath, patch) {
|
|
|
251
273
|
await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
|
|
252
274
|
return { path, previousWorkspace };
|
|
253
275
|
}
|
|
254
|
-
/**
|
|
255
|
-
* `
|
|
256
|
-
*
|
|
257
|
-
* and `writeSources` (`sources`), for the reason those three stayed separate:
|
|
258
|
-
* a shared file gets one writer per field it owns, not one function that
|
|
259
|
-
* grows a branch per field.
|
|
260
|
-
*
|
|
261
|
-
* Replaces the whole list rather than merging into it. A workspace's
|
|
262
|
-
* membership is one declaration made at one moment — merging would mean a
|
|
263
|
-
* repository silently retaining a sibling a later, corrected `link_workspace`
|
|
264
|
-
* call deliberately left out.
|
|
265
|
-
*/
|
|
276
|
+
/** `workspaceRepos`' writer — one writer per field a shared file owns (see
|
|
277
|
+
* `writeConfig`, `writeConfirmedFact`, `writeSources`). Replaces the whole list
|
|
278
|
+
* rather than merging: membership is one declaration made at one moment. */
|
|
266
279
|
export async function writeWorkspaceRepos(repoPath, repos) {
|
|
267
280
|
const path = join(repoPath, CONFIG_RELATIVE_PATH);
|
|
268
281
|
let existing = {};
|
|
@@ -281,29 +294,9 @@ export async function writeWorkspaceRepos(repoPath, repos) {
|
|
|
281
294
|
await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
|
|
282
295
|
return { path };
|
|
283
296
|
}
|
|
284
|
-
/**
|
|
285
|
-
* `
|
|
286
|
-
*
|
|
287
|
-
* `writeConfig`'s own doc is explicit that it "patches `repo` and
|
|
288
|
-
* `workspace`, it does not own the whole file" — a second, narrow writer for
|
|
289
|
-
* a second, narrow field keeps that boundary rather than growing one
|
|
290
|
-
* function into "the file's owner." Both read-modify-write the same JSON
|
|
291
|
-
* file the same way, so a future field gets a third writer, not a branch in
|
|
292
|
-
* this one.
|
|
293
|
-
*
|
|
294
|
-
* Keyed on exact `(repo, blockedBy, environment)` — DEC-223 §3 and
|
|
295
|
-
* `ConfirmedFact`'s own doc; `environment` is `undefined` for an unscoped
|
|
296
|
-
* answer, which is its own distinct key value, not a wildcard that a later
|
|
297
|
-
* environment-scoped answer would collide with. A second call with the same
|
|
298
|
-
* key **replaces** the first rather than appending a duplicate: a
|
|
299
|
-
* re-confirmation (the value changed, or the same value is being
|
|
300
|
-
* re-asserted after §7's staleness note) updates in place, and a caller can
|
|
301
|
-
* always find out what was overwritten from the return value rather than
|
|
302
|
-
* having to read the file first. A second call with a *different*
|
|
303
|
-
* environment for the same `blockedBy` adds a second fact rather than
|
|
304
|
-
* replacing the first — a repository can genuinely need one value per
|
|
305
|
-
* environment.
|
|
306
|
-
*/
|
|
297
|
+
/** `confirmedFacts`' writer, separate from `writeConfig` (one writer per field). Keyed
|
|
298
|
+
* on exact `(repo, blockedBy, environment)` (DEC-223 §3) — undefined environment is its
|
|
299
|
+
* own key, not a wildcard. Same key replaces; a different environment adds a new fact. */
|
|
307
300
|
export async function writeConfirmedFact(repoPath, fact) {
|
|
308
301
|
const path = join(repoPath, CONFIG_RELATIVE_PATH);
|
|
309
302
|
let existing = {};
|
|
@@ -323,19 +316,9 @@ export async function writeConfirmedFact(repoPath, fact) {
|
|
|
323
316
|
await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8");
|
|
324
317
|
return { path, replaced };
|
|
325
318
|
}
|
|
326
|
-
/**
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
* field it owns, not one function that grows a branch per field.
|
|
330
|
-
*
|
|
331
|
-
* **Appends, never replaces.** Unlike `writeConfirmedFact`, which keys on
|
|
332
|
-
* `(repo, blockedBy, environment)` because re-confirming a value updates one
|
|
333
|
-
* answer, two incidents are two incidents even when they name the same files
|
|
334
|
-
* and read alike. Collapsing them would lose the fact that something broke
|
|
335
|
-
* twice, which is precisely the signal an incident corpus exists to carry.
|
|
336
|
-
* `confirmedAt` is the record's identity, so a second call at the same instant
|
|
337
|
-
* with the same summary is the only case that de-duplicates.
|
|
338
|
-
*/
|
|
319
|
+
/** `confirmedIncidents`' writer — appends, never replaces (unlike `writeConfirmedFact`,
|
|
320
|
+
* which keys on one answer). Two incidents naming the same files are still two
|
|
321
|
+
* incidents; `confirmedAt`+`summary` is the only dedup key. */
|
|
339
322
|
export async function writeConfirmedIncident(repoPath, incident) {
|
|
340
323
|
const path = join(repoPath, CONFIG_RELATIVE_PATH);
|
|
341
324
|
let existing = {};
|
|
@@ -354,18 +337,8 @@ export async function writeConfirmedIncident(repoPath, incident) {
|
|
|
354
337
|
await writeFile(path, `${JSON.stringify({ ...existing, confirmedIncidents: next }, null, 2)}\n`, "utf8");
|
|
355
338
|
return { path, total: next.length };
|
|
356
339
|
}
|
|
357
|
-
/**
|
|
358
|
-
* `
|
|
359
|
-
* (`repo`/`workspace`) and `writeConfirmedFact` (`confirmedFacts`), for the
|
|
360
|
-
* same reason those two stayed separate: a shared file gets one writer per
|
|
361
|
-
* field it owns, not one function that grows a branch per field.
|
|
362
|
-
*
|
|
363
|
-
* Unconditional: the caller (`descry init`) decides whether writing is
|
|
364
|
-
* appropriate — reading `loadConfig(repoPath).sources` first and skipping
|
|
365
|
-
* this call when it is already non-empty — because "should this overwrite
|
|
366
|
-
* what's there" is a policy question `writeConfig`'s own precedent leaves to
|
|
367
|
-
* the caller, not to the file-writing primitive.
|
|
368
|
-
*/
|
|
340
|
+
/** `sources`' writer, one writer per field like the others. Unconditional — the caller
|
|
341
|
+
* (`descry init`) decides whether overwriting is appropriate, not this primitive. */
|
|
369
342
|
export async function writeSources(repoPath, sources) {
|
|
370
343
|
const path = join(repoPath, CONFIG_RELATIVE_PATH);
|
|
371
344
|
let existing = {};
|
|
@@ -412,24 +385,9 @@ export class Session {
|
|
|
412
385
|
this.#store = this.#openGraph(this.graphPath);
|
|
413
386
|
return this.#store;
|
|
414
387
|
}
|
|
415
|
-
/**
|
|
416
|
-
*
|
|
417
|
-
*
|
|
418
|
-
* Every other tool goes through `store()`/`provider()` and keeps refusing a
|
|
419
|
-
* version mismatch per DEC-017 (`SchemaVersionError`'s own message names
|
|
420
|
-
* this method's caller as the fix). `analyze` is different: it is about to
|
|
421
|
-
* rebuild the graph from source regardless, so there is nothing lost by
|
|
422
|
-
* repairing the derived tables first instead of stopping.
|
|
423
|
-
*
|
|
424
|
-
* Opens a short-lived `NodeSqliteDriver` directly rather than going through
|
|
425
|
-
* `this.#openGraph` — the injected-store path a test fixture uses bypasses
|
|
426
|
-
* a real file on disk entirely, and a `SchemaVersionError` from `migrate()`
|
|
427
|
-
* only exists for a real one. A no-op here on that path (nothing found to
|
|
428
|
-
* repair, `rebuilt: false`) is correct: an injected in-memory fixture store
|
|
429
|
-
* is never stale by construction, and `store()` right after this still
|
|
430
|
-
* goes through the real, checked path either way — this only ever removes
|
|
431
|
-
* a refusal that check would otherwise have hit first.
|
|
432
|
-
*/
|
|
388
|
+
/** `analyze`'s own repair path — the only caller entitled to one (others refuse a
|
|
389
|
+
* version mismatch per DEC-017). Opens a short-lived driver directly, bypassing an
|
|
390
|
+
* injected test store; no-op there since an in-memory fixture is never stale. */
|
|
433
391
|
repairStaleGraph() {
|
|
434
392
|
if (this.#store !== null)
|
|
435
393
|
return { rebuilt: false };
|
|
@@ -439,9 +397,8 @@ export class Session {
|
|
|
439
397
|
return rebuildStaleGraph(driver);
|
|
440
398
|
}
|
|
441
399
|
catch {
|
|
442
|
-
// Anything from opening
|
|
443
|
-
//
|
|
444
|
-
// hits the same path through its own, already-disclosed error handling.
|
|
400
|
+
// Anything from opening (missing dir, corrupt file) is not this method's job —
|
|
401
|
+
// `store()` right after hits the same path via its own disclosed error handling.
|
|
445
402
|
return { rebuilt: false };
|
|
446
403
|
}
|
|
447
404
|
finally {
|
|
@@ -453,13 +410,9 @@ export class Session {
|
|
|
453
410
|
this.#provider = createStoreProvider(this.store().driver);
|
|
454
411
|
return this.#provider;
|
|
455
412
|
}
|
|
456
|
-
/**
|
|
457
|
-
*
|
|
458
|
-
*
|
|
459
|
-
* The commit sha is read from git and **is not defaulted** when git is absent:
|
|
460
|
-
* every node and edge is stamped with it, and a placeholder would make the
|
|
461
|
-
* staleness stamp a lie that nothing downstream could detect.
|
|
462
|
-
*/
|
|
413
|
+
/** Repo root for an analysis run. Commit sha comes from git and is never defaulted
|
|
414
|
+
* when git is absent — every node/edge is stamped with it, and a placeholder would
|
|
415
|
+
* make the staleness stamp a lie nothing downstream could detect. */
|
|
463
416
|
async root() {
|
|
464
417
|
if (!(await isGitRepository(this.repoPath))) {
|
|
465
418
|
throw new ConfigError(`${this.repoPath} is not a git repository. Every node is stamped with the commit it was ` +
|
|
@@ -472,135 +425,68 @@ export class Session {
|
|
|
472
425
|
commitSha: await gitHead(this.repoPath),
|
|
473
426
|
};
|
|
474
427
|
}
|
|
475
|
-
/**
|
|
476
|
-
*
|
|
477
|
-
*
|
|
478
|
-
*
|
|
479
|
-
* Created lazily and only on the connection that asks for one, the same
|
|
480
|
-
* reason the graph is opened lazily: a server that started a sweeper for
|
|
481
|
-
* every session would pay for browser bookkeeping on the overwhelming
|
|
482
|
-
* majority of connections that never call a browser tool.
|
|
483
|
-
*
|
|
484
|
-
* It hangs here rather than in a module-level map because "per connection,
|
|
485
|
-
* never global" is the property that has to hold, and this object already
|
|
486
|
-
* *is* the connection's lifetime. A global registry keyed by session would
|
|
487
|
-
* be the same thing with one more way to get it wrong.
|
|
488
|
-
*/
|
|
428
|
+
/** Live browser sessions for this connection (`mcp-browser-tools.md` §4). Created
|
|
429
|
+
* lazily, same reason as the graph — most connections never touch a browser tool.
|
|
430
|
+
* Lives here, not a module-level map, so "per connection, never global" actually holds. */
|
|
489
431
|
browserSessions() {
|
|
490
432
|
if (this.#browserSessions === null)
|
|
491
433
|
this.#browserSessions = createBrowserSessionRegistry();
|
|
492
434
|
return this.#browserSessions;
|
|
493
435
|
}
|
|
494
|
-
/**
|
|
495
|
-
*
|
|
496
|
-
*
|
|
497
|
-
* Unavailable by default, and that is the honest state of this build:
|
|
498
|
-
* `@descryy/runtime-browser` is not in the installed closure yet, so there
|
|
499
|
-
* is no page to drive. Reported as a refusal with a remedy rather than as a
|
|
500
|
-
* tool that silently returns an empty page — an empty snapshot and "this
|
|
501
|
-
* build cannot open a browser" are different claims, and only one of them
|
|
502
|
-
* is true here (rule 7).
|
|
503
|
-
*/
|
|
436
|
+
/** The browser this connection drives, or a named reason there is none. Unavailable
|
|
437
|
+
* by default — `@descryy/runtime-browser` isn't installed yet — reported as a refusal
|
|
438
|
+
* with a remedy, never a silently-empty page (rule 7). */
|
|
504
439
|
browserBackend() {
|
|
505
440
|
if (this.#browserDriverFactory === null)
|
|
506
441
|
return BROWSER_BACKEND_NOT_INSTALLED;
|
|
507
442
|
return { available: true, createDriver: this.#browserDriverFactory };
|
|
508
443
|
}
|
|
509
|
-
/**
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
* The seam the final swap goes through, and the seam every browser test
|
|
513
|
-
* goes through today. It is a method rather than a constructor argument
|
|
514
|
-
* because the overwhelming majority of sessions never touch a browser and
|
|
515
|
-
* should not have to name one to be constructed.
|
|
516
|
-
*/
|
|
444
|
+
/** Installs the driver this connection's browser tools use. A method, not a
|
|
445
|
+
* constructor arg — most sessions never touch a browser and shouldn't have to
|
|
446
|
+
* name one to be constructed. */
|
|
517
447
|
useBrowserDriver(driver) {
|
|
518
|
-
//
|
|
519
|
-
//
|
|
520
|
-
// to get it.
|
|
448
|
+
// One-driver form — every test that doesn't care about stack parsing wants this
|
|
449
|
+
// and shouldn't have to write a factory.
|
|
521
450
|
this.#browserDriverFactory = () => Promise.resolve(driver);
|
|
522
451
|
}
|
|
523
|
-
/**
|
|
524
|
-
*
|
|
525
|
-
*
|
|
526
|
-
* A factory rather than a driver because the stack-trace parser is named
|
|
527
|
-
* per call (`browser_start_session`'s `stackParser`), and a parser is
|
|
528
|
-
* language-specific — one process can legitimately drive a browser against
|
|
529
|
-
* two applications written in different languages.
|
|
530
|
-
*/
|
|
452
|
+
/** Installs a factory that builds a driver per session. A factory, not a driver,
|
|
453
|
+
* because the stack-trace parser (`browser_start_session`'s `stackParser`) is
|
|
454
|
+
* language-specific and named per call. */
|
|
531
455
|
useBrowserDriverFactory(factory) {
|
|
532
456
|
this.#browserDriverFactory = factory;
|
|
533
457
|
}
|
|
534
|
-
/**
|
|
535
|
-
*
|
|
536
|
-
*
|
|
537
|
-
* Deliberately left synchronous and left as the thing every existing caller
|
|
538
|
-
* calls. A browser session cannot be closed synchronously, so the reap
|
|
539
|
-
* lives in `dispose()` — and this method stays the one that a caller with
|
|
540
|
-
* no browser sessions can keep using unchanged.
|
|
541
|
-
*/
|
|
458
|
+
/** Synchronous teardown, no I/O to wait on. A browser session can't close
|
|
459
|
+
* synchronously, so that reap lives in `dispose()` — this stays the method
|
|
460
|
+
* every existing no-browser caller keeps using unchanged. */
|
|
542
461
|
close() {
|
|
543
462
|
this.#browserSessions?.stop();
|
|
544
463
|
this.#store?.close();
|
|
545
464
|
this.#store = null;
|
|
546
465
|
this.#provider = null;
|
|
547
466
|
}
|
|
548
|
-
/**
|
|
549
|
-
*
|
|
550
|
-
*
|
|
551
|
-
* This is what a client disconnect must reach. §4 requires the transport
|
|
552
|
-
* closing to reap every session that connection owns, and a browser is the
|
|
553
|
-
* one thing this session holds that keeps running after the process stops
|
|
554
|
-
* caring about it — a leaked SQLite handle costs a file descriptor, a
|
|
555
|
-
* leaked Chromium costs the developer's machine.
|
|
556
|
-
*
|
|
557
|
-
* Awaits the reap before closing the rest, so the evidence flush has a
|
|
558
|
-
* live registry to record itself against.
|
|
559
|
-
*/
|
|
467
|
+
/** Full teardown, including any live browser — what a client disconnect must
|
|
468
|
+
* reach (§4). A leaked Chromium costs the developer's machine, not just a file
|
|
469
|
+
* descriptor. Awaits the reap first so the evidence flush has a live registry. */
|
|
560
470
|
async dispose() {
|
|
561
471
|
if (this.#browserSessions !== null)
|
|
562
472
|
await this.#browserSessions.reapAll("clientDisconnect");
|
|
563
473
|
this.close();
|
|
564
474
|
}
|
|
565
|
-
/**
|
|
566
|
-
*
|
|
567
|
-
*
|
|
568
|
-
* `server.ts` calls this before `renderAnswer` so the envelope can carry
|
|
569
|
-
* the id as `callId` (`render.ts`'s own doc on that field), and records
|
|
570
|
-
* under the same value afterwards with `recordCallWithId` — one id, used
|
|
571
|
-
* for both, rather than one minted for the reply and a different one
|
|
572
|
-
* minted later for the record. Exposed as its own method (rather than
|
|
573
|
-
* folded into `recordCall`) because the id has to exist *before* the
|
|
574
|
-
* result it will be recorded with does; there is no result yet at the
|
|
575
|
-
* point this is called.
|
|
576
|
-
*/
|
|
475
|
+
/** Mints the next call id without recording anything yet. `server.ts` calls this
|
|
476
|
+
* before render so the reply can carry `callId`, then records under the same id
|
|
477
|
+
* with `recordCallWithId` — one id used for both. */
|
|
577
478
|
allocateCallId() {
|
|
578
479
|
return `call-${this.#nextCallId++}`;
|
|
579
480
|
}
|
|
580
|
-
/**
|
|
581
|
-
*
|
|
582
|
-
*
|
|
583
|
-
* `structuredContent` the host received.
|
|
584
|
-
*
|
|
585
|
-
* IDs are sequential and scoped to this process's lifetime only —
|
|
586
|
-
* `"one repository, one graph, one process"` above is what makes "this
|
|
587
|
-
* session's recorded tool calls" a coherent, checkable population at all.
|
|
588
|
-
* A citation naming an id from a *different* process's session cannot
|
|
589
|
-
* resolve here, which is exactly `ai-governance-spec.md` §2's G1 negative
|
|
590
|
-
* control ("a citation pointing at a tool call from a different run") —
|
|
591
|
-
* not a defect to guard against, the mechanism doing its job.
|
|
592
|
-
*/
|
|
481
|
+
/** `verify_claim`'s fact boundary — called once per call with the exact
|
|
482
|
+
* `structuredContent` the host received. IDs are scoped to this process only, so a
|
|
483
|
+
* citation from a different run can't resolve (§2's G1 negative control). */
|
|
593
484
|
recordCall(tool, args, result) {
|
|
594
485
|
return this.recordCallWithId(this.allocateCallId(), tool, args, result);
|
|
595
486
|
}
|
|
596
|
-
/**
|
|
597
|
-
* `
|
|
598
|
-
*
|
|
599
|
-
* `callId` is this exact value, so `recordedCall(id)` finds it: the
|
|
600
|
-
* positive path that was previously unreachable because the id the
|
|
601
|
-
* envelope would need did not exist until one step after the envelope was
|
|
602
|
-
* already built.
|
|
603
|
-
*/
|
|
487
|
+
/** `recordCall` under an id minted earlier by `allocateCallId`, not one minted here
|
|
488
|
+
* — so `recordedCall(id)` can find the exact id a caller read off the reply's
|
|
489
|
+
* `callId`, which didn't exist until after the envelope was built. */
|
|
604
490
|
recordCallWithId(id, tool, args, result) {
|
|
605
491
|
const call = { id, tool, args, result, at: Date.now() };
|
|
606
492
|
this.#calls.push(call);
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;gGAIgG;AAEhG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,6BAA6B,EAAkD,MAAM,uBAAuB,CAAC;AACtH,OAAO,EAAE,4BAA4B,EAA+B,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,aAAa,EAAmB,MAAM,eAAe,CAAC;AAqC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAYvE,SAAS,uBAAuB,CAAC,GAAY,EAAE,UAAkB;IAC/D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,WAAW,CAAC,GAAG,UAAU,yCAAyC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,CAAU,EAAE,CAAC;YAC7E,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;gBAChD,MAAM,IAAI,WAAW,CACnB,GAAG,UAAU,wBAAwB,KAAK,KAAK,GAAG,6BAA6B,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YACxG,MAAM,IAAI,WAAW,CACnB,GAAG,UAAU,wBAAwB,KAAK,+CAA+C;gBACvF,wDAAwD,CAC3D,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,CAAU,EAAE,CAAC;YAC3E,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC1E,MAAM,IAAI,WAAW,CACnB,GAAG,UAAU,wBAAwB,KAAK,KAAK,GAAG,0CAA0C,CAC7F,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAW;YACzB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAW;YAC/B,KAAK,EAAE,KAA0B;YACjC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAW,EAAE,CAAC;YAChF,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,eAAe,CAAW,EAAE,CAAC;YAC5F,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,eAAe,CAAW,EAAE,CAAC;YAC5F,WAAW,EAAE,CAAC,CAAC,aAAa,CAAW;YACvC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAW;SACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY,EAAE,UAAkB;IAC3D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,WAAW,CAAC,GAAG,UAAU,qCAAqC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAU,EAAE,CAAC;YACxF,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;gBAChD,MAAM,IAAI,WAAW,CAAC,GAAG,UAAU,oBAAoB,KAAK,KAAK,GAAG,6BAA6B,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,mBAAmB,EAAE,WAAW,CAAU,EAAE,CAAC;YAC7E,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC1E,MAAM,IAAI,WAAW,CACnB,GAAG,UAAU,oBAAoB,KAAK,KAAK,GAAG,0CAA0C,CACzF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,WAAW,CACnB,GAAG,UAAU,oBAAoB,KAAK,oDAAoD,CAC3F,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,MAAM,CAAW;YACzB,SAAS,EAAE,CAAC,CAAC,WAAW,CAAW;YACnC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAW;YAC3B,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,aAAa,CAAW,EAAE,CAAC;YACtF,WAAW,EAAE,CAAC,CAAC,aAAa,CAAW;YACvC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAW;YACvC,yEAAyE;YACzE,wFAAwF;YACxF,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,mBAAmB,CAAW,EAAE,CAAC;YACxG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAuB,EAAE,CAAC;YAChF,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAW,EAAE,CAAC;SACjF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qGAAqG;AACrG,SAAS,WAAW,CAAC,CAAgB,EAAE,CAAgB;IACrD,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAC;AAC7F,CAAC;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACxD,IAAI,GAAG,GAAc,EAAE,CAAC;IACxB,IAAI,KAAK,GAAkB,IAAI,CAAC;IAEhC,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAc,CAAC;QAClE,KAAK,GAAG,UAAU,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;QACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,4EAA4E;YAC5E,4FAA4F;YAC5F,MAAM,IAAI,WAAW,CACnB,GAAG,UAAU,kCAAmC,KAAe,CAAC,OAAO,EAAE,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,WAAW,CAAC,GAAG,UAAU,8BAA8B,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,OAAO,GAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtE,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAAoB,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpG,OAAO,KAAmB,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,WAAW,CACnB,GAAG,UAAU,aAAa,KAAK,iEAAiE,CACjG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GACb,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAE3E,OAAO;QACL,+EAA+E;QAC/E,6EAA6E;QAC7E,yDAAyD;QACzD,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9F,SAAS;QACT,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B;QAClG,OAAO;QACP,cAAc,EAAE,mBAAmB,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC;QACnE,kBAAkB,EAAE,uBAAuB,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,CAAC;QAC/E,cAAc;QACd,WAAW,EAAE,MAAM,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC;QACvE,UAAU,EAAE,KAAK;KAClB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,YAAY,GAAG;IACnB,MAAM;IACN,WAAW;IACX,OAAO;IACP,SAAS;IACT,gBAAgB;IAChB,oBAAoB;IACpB,gBAAgB;IAChB,YAAY;CACsC,CAAC;AAErD,SAAS,WAAW,CAAC,MAAoB,EAAE,MAAoB;IAC7D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnG,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,MAA2B,EAAE,MAAoB;IAC/E,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,CACL,uFAAuF;QACvF,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,+DAA+D;QAC9F,6FAA6F;QAC7F,2FAA2F;QAC3F,8EAA8E,CAC/E,CAAC;AACJ,CAAC;AAOD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgB;IACrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,SAAS,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO;YACL,KAAK,EAAE,IAAI;YACX,IAAI,EACF,sEAAsE,MAAM,cAAc;gBAC1F,uFAAuF;gBACvF,mDAAmD;SACtD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY,EAAE,UAAkB;IAC3D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,WAAW,CAAC,GAAG,UAAU,qCAAqC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAU,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;gBAChD,MAAM,IAAI,WAAW,CAAC,GAAG,UAAU,oBAAoB,KAAK,KAAK,GAAG,6BAA6B,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAW,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAW,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;mGAEmG;AACnG,KAAK,UAAU,eAAe,CAC5B,QAAgB,EAChB,SAA6B,EAC7B,KAA+B;IAE/B,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7D,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACpD,IAAI,KAA+B,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAc,CAAC;YAClE,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,+EAA+E;QAC/E,8DAA8D;QAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAQD;;gFAEgF;AAChF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,KAAkB;IAElB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAClD,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8EAA8E;QAC9E,4EAA4E;QAC5E,uBAAuB;QACvB,KAAK,KAAK,CAAC;QACX,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,MAAM,iBAAiB,GAAG,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAElG,MAAM,IAAI,GAA4B,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACxE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAEpE,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;AACrC,CAAC;AAED;;6EAE6E;AAC7E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,KAA+B;IAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAClD,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,KAAK,CAAC;QACX,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAA4B;QACpC,GAAG,QAAQ;QACX,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACnE,CAAC;IACF,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED;;2FAE2F;AAC3F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,IAAmB;IAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAClD,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,KAAK,CAAC;QACX,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7F,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;IACjE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAExD,MAAM,IAAI,GAA4B,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;IAEvF,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED;;gEAEgE;AAChE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,QAA2B;IAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAClD,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,KAAK,CAAC;QACX,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrG,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,CAAC,CAAoB,EAAW,EAAE,CAC7C,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC;IACvG,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE1D,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACtC,CAAC;AAED;sFACsF;AACtF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,OAA0B;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAClD,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,KAAK,CAAC;QACX,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAA4B,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;IAE7E,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAqBD,MAAM,OAAO,OAAO;IACT,QAAQ,CAAS;IACjB,MAAM,CAAe;IAE9B,MAAM,GAAiB,IAAI,CAAC;IAC5B,SAAS,GAA6B,IAAI,CAAC;IAC3C,gBAAgB,GAAkC,IAAI,CAAC;IACvD,qBAAqB,GAAgC,IAAI,CAAC;IACjD,UAAU,CAA0B;IACpC,MAAM,GAAuB,EAAE,CAAC;IACzC,WAAW,GAAG,CAAC,CAAC;IAEhB,YAAY,QAAgB,EAAE,MAAoB,EAAE,SAAmC;QACrF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,SAAS,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAuB;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;YACnB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;sFAEkF;IAClF,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5B,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,+EAA+E;YAC/E,iFAAiF;YACjF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;0EAEsE;IACtE,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,WAAW,CACnB,GAAG,IAAI,CAAC,QAAQ,yEAAyE;gBACvF,gFAAgF,CACnF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACpF,YAAY,EAAE,IAAI,CAAC,QAAQ;YAC3B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;SACxC,CAAC;IACJ,CAAC;IAED;;gGAE4F;IAC5F,eAAe;QACb,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAAE,IAAI,CAAC,gBAAgB,GAAG,4BAA4B,EAAE,CAAC;QAC3F,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;+DAE2D;IAC3D,cAAc;QACZ,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI;YAAE,OAAO,6BAA6B,CAAC;QAC9E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACvE,CAAC;IAED;;sCAEkC;IAClC,gBAAgB,CAAC,MAAqB;QACpC,gFAAgF;QAChF,yCAAyC;QACzC,IAAI,CAAC,qBAAqB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;gDAE4C;IAC5C,uBAAuB,CAAC,OAA6B;QACnD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;IACvC,CAAC;IAED;;kEAE8D;IAC9D,KAAK;QACH,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;uFAEmF;IACnF,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED;;0DAEsD;IACtD,cAAc;QACZ,OAAO,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACtC,CAAC;IAED;;kFAE8E;IAC9E,UAAU,CAAC,IAAY,EAAE,IAA6B,EAAE,MAA+B;QACrF,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED;;2EAEuE;IACvE,gBAAgB,CACd,EAAU,EACV,IAAY,EACZ,IAA6B,EAC7B,MAA+B;QAE/B,MAAM,IAAI,GAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF"}
|