openlore 2.0.7 → 2.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +122 -20
  2. package/dist/cli/commands/mcp.d.ts +681 -0
  3. package/dist/cli/commands/mcp.d.ts.map +1 -1
  4. package/dist/cli/commands/mcp.js +384 -200
  5. package/dist/cli/commands/mcp.js.map +1 -1
  6. package/dist/constants.d.ts +6 -0
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +14 -0
  9. package/dist/constants.js.map +1 -1
  10. package/dist/core/analyzer/artifact-generator.d.ts.map +1 -1
  11. package/dist/core/analyzer/artifact-generator.js +59 -4
  12. package/dist/core/analyzer/artifact-generator.js.map +1 -1
  13. package/dist/core/analyzer/call-graph.d.ts +19 -1
  14. package/dist/core/analyzer/call-graph.d.ts.map +1 -1
  15. package/dist/core/analyzer/call-graph.js +128 -28
  16. package/dist/core/analyzer/call-graph.js.map +1 -1
  17. package/dist/core/architecture/check.d.ts +63 -0
  18. package/dist/core/architecture/check.d.ts.map +1 -0
  19. package/dist/core/architecture/check.js +192 -0
  20. package/dist/core/architecture/check.js.map +1 -0
  21. package/dist/core/architecture/rules.d.ts +73 -0
  22. package/dist/core/architecture/rules.d.ts.map +1 -0
  23. package/dist/core/architecture/rules.js +201 -0
  24. package/dist/core/architecture/rules.js.map +1 -0
  25. package/dist/core/decisions/project.d.ts +59 -0
  26. package/dist/core/decisions/project.d.ts.map +1 -0
  27. package/dist/core/decisions/project.js +68 -0
  28. package/dist/core/decisions/project.js.map +1 -0
  29. package/dist/core/decisions/verifier.d.ts +10 -0
  30. package/dist/core/decisions/verifier.d.ts.map +1 -1
  31. package/dist/core/decisions/verifier.js +48 -5
  32. package/dist/core/decisions/verifier.js.map +1 -1
  33. package/dist/core/provenance/change-coupling.d.ts +68 -0
  34. package/dist/core/provenance/change-coupling.d.ts.map +1 -0
  35. package/dist/core/provenance/change-coupling.js +134 -0
  36. package/dist/core/provenance/change-coupling.js.map +1 -0
  37. package/dist/core/provenance/git-provenance.d.ts +67 -0
  38. package/dist/core/provenance/git-provenance.d.ts.map +1 -0
  39. package/dist/core/provenance/git-provenance.js +177 -0
  40. package/dist/core/provenance/git-provenance.js.map +1 -0
  41. package/dist/core/provenance/project.d.ts +37 -0
  42. package/dist/core/provenance/project.d.ts.map +1 -0
  43. package/dist/core/provenance/project.js +46 -0
  44. package/dist/core/provenance/project.js.map +1 -0
  45. package/dist/core/services/edge-store.d.ts +41 -0
  46. package/dist/core/services/edge-store.d.ts.map +1 -1
  47. package/dist/core/services/edge-store.js +251 -3
  48. package/dist/core/services/edge-store.js.map +1 -1
  49. package/dist/core/services/llm-service.d.ts +9 -0
  50. package/dist/core/services/llm-service.d.ts.map +1 -1
  51. package/dist/core/services/llm-service.js +15 -4
  52. package/dist/core/services/llm-service.js.map +1 -1
  53. package/dist/core/services/mcp-handlers/architecture.d.ts +19 -0
  54. package/dist/core/services/mcp-handlers/architecture.d.ts.map +1 -0
  55. package/dist/core/services/mcp-handlers/architecture.js +104 -0
  56. package/dist/core/services/mcp-handlers/architecture.js.map +1 -0
  57. package/dist/core/services/mcp-handlers/change-coupling.d.ts +16 -0
  58. package/dist/core/services/mcp-handlers/change-coupling.d.ts.map +1 -0
  59. package/dist/core/services/mcp-handlers/change-coupling.js +57 -0
  60. package/dist/core/services/mcp-handlers/change-coupling.js.map +1 -0
  61. package/dist/core/services/mcp-handlers/graph.d.ts +27 -0
  62. package/dist/core/services/mcp-handlers/graph.d.ts.map +1 -1
  63. package/dist/core/services/mcp-handlers/graph.js +98 -16
  64. package/dist/core/services/mcp-handlers/graph.js.map +1 -1
  65. package/dist/core/services/mcp-handlers/orient.d.ts.map +1 -1
  66. package/dist/core/services/mcp-handlers/orient.js +122 -2
  67. package/dist/core/services/mcp-handlers/orient.js.map +1 -1
  68. package/dist/core/services/mcp-handlers/reachability.d.ts +30 -0
  69. package/dist/core/services/mcp-handlers/reachability.d.ts.map +1 -0
  70. package/dist/core/services/mcp-handlers/reachability.js +222 -0
  71. package/dist/core/services/mcp-handlers/reachability.js.map +1 -0
  72. package/dist/core/services/mcp-handlers/structural-diff.d.ts +31 -0
  73. package/dist/core/services/mcp-handlers/structural-diff.d.ts.map +1 -0
  74. package/dist/core/services/mcp-handlers/structural-diff.js +268 -0
  75. package/dist/core/services/mcp-handlers/structural-diff.js.map +1 -0
  76. package/dist/core/services/mcp-handlers/test-impact.d.ts +34 -0
  77. package/dist/core/services/mcp-handlers/test-impact.d.ts.map +1 -0
  78. package/dist/core/services/mcp-handlers/test-impact.js +221 -0
  79. package/dist/core/services/mcp-handlers/test-impact.js.map +1 -0
  80. package/dist/core/services/mcp-handlers/tool-guard.d.ts +45 -0
  81. package/dist/core/services/mcp-handlers/tool-guard.d.ts.map +1 -0
  82. package/dist/core/services/mcp-handlers/tool-guard.js +81 -0
  83. package/dist/core/services/mcp-handlers/tool-guard.js.map +1 -0
  84. package/dist/core/services/mcp-handlers/utils.d.ts.map +1 -1
  85. package/dist/core/services/mcp-handlers/utils.js +15 -1
  86. package/dist/core/services/mcp-handlers/utils.js.map +1 -1
  87. package/dist/core/services/mcp-watcher.d.ts.map +1 -1
  88. package/dist/core/services/mcp-watcher.js +9 -0
  89. package/dist/core/services/mcp-watcher.js.map +1 -1
  90. package/package.json +8 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-impact.d.ts","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/test-impact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGtF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAW3F;AASD,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAOvF;AAOD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CA+JjF"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Deterministic Test Impact Selection (spec-19) — static, call-graph-based
3
+ * regression test selection (RTS) served to the agent at edit time.
4
+ *
5
+ * "I changed parseConfig() — which tests should I run?" is answered by walking the
6
+ * call graph *backward* from the change to every test that transitively reaches it.
7
+ * grep can't (the reach is through indirect calls); the model is slow and guesses;
8
+ * a deterministic graph does it instantly over edges we already store (`calls`,
9
+ * `tested_by`, inheritance).
10
+ *
11
+ * Soundness is stated honestly: this is an OVER-APPROXIMATE PRIORITIZER, not a
12
+ * sound replacement for the full suite. Direct/static dispatch is safely
13
+ * over-approximated; dynamic dispatch, reflection, and DI can under-select.
14
+ */
15
+ import { validateDirectory, readCachedContext } from './utils.js';
16
+ import { buildAdjacency } from './graph.js';
17
+ import { SUBGRAPH_MAX_DEPTH_LIMIT } from '../../../constants.js';
18
+ const CONF_RANK = { high: 3, medium: 2, low: 1 };
19
+ /** Resolve changed symbols → seed production nodes (exact name preferred). */
20
+ export function seedsFromSymbols(cg, symbols) {
21
+ const out = new Map();
22
+ for (const sym of symbols) {
23
+ const lower = sym.toLowerCase();
24
+ const exact = cg.nodes.filter(n => !n.isExternal && !n.isTest && n.name.toLowerCase() === lower);
25
+ const pick = exact.length > 0
26
+ ? exact
27
+ : cg.nodes.filter(n => !n.isExternal && !n.isTest && n.name.toLowerCase().includes(lower));
28
+ for (const n of pick)
29
+ out.set(n.id, n);
30
+ }
31
+ return [...out.values()];
32
+ }
33
+ /** Tolerant file match: exact or suffix either way. */
34
+ function fileMatches(nodeFile, changed) {
35
+ if (nodeFile === changed)
36
+ return true;
37
+ const a = nodeFile.replace(/^\/+/, ''), b = changed.replace(/^\/+/, '');
38
+ return a === b || a.endsWith('/' + b) || b.endsWith('/' + a);
39
+ }
40
+ /** Resolve changed files (from a diff) → seed production nodes. */
41
+ export function seedsFromFiles(cg, files) {
42
+ const out = new Map();
43
+ for (const n of cg.nodes) {
44
+ if (n.isExternal || n.isTest)
45
+ continue;
46
+ if (files.some(f => fileMatches(n.filePath, f)))
47
+ out.set(n.id, n);
48
+ }
49
+ return [...out.values()];
50
+ }
51
+ /** Test identity for dedup across the two discovery paths. */
52
+ function testKey(file, name) {
53
+ return `${file}\0${name}`;
54
+ }
55
+ /**
56
+ * Select the tests that transitively reach a set of changed symbols/files.
57
+ * Read-only, deterministic, offline. Returns `unknown` (additive-by-cast).
58
+ */
59
+ export async function handleSelectTests(input) {
60
+ const absDir = await validateDirectory(input.directory);
61
+ const ctx = await readCachedContext(absDir);
62
+ if (!ctx)
63
+ return { error: 'No analysis found. Run analyze_codebase first.' };
64
+ if (!ctx.callGraph)
65
+ return { error: 'Call graph not available. Re-run analyze_codebase.' };
66
+ const cg = ctx.callGraph;
67
+ const maxDepth = Math.max(1, Math.min(input.maxDepth ?? 12, SUBGRAPH_MAX_DEPTH_LIMIT));
68
+ // ── Resolve the changed set ────────────────────────────────────────────────
69
+ let seeds = [];
70
+ let changedFiles = [];
71
+ if (input.changedSymbols && input.changedSymbols.length > 0) {
72
+ seeds = seedsFromSymbols(cg, input.changedSymbols);
73
+ }
74
+ else if (input.diffRef !== undefined) {
75
+ try {
76
+ const { getChangedFiles } = await import('../../drift/git-diff.js');
77
+ const diff = await getChangedFiles({ rootPath: absDir, baseRef: input.diffRef || 'HEAD', includeUnstaged: true });
78
+ changedFiles = diff.files.map(f => f.path);
79
+ seeds = seedsFromFiles(cg, changedFiles);
80
+ }
81
+ catch (err) {
82
+ return { error: `git diff failed: ${err instanceof Error ? err.message : String(err)}` };
83
+ }
84
+ }
85
+ else {
86
+ return { error: 'Provide changedSymbols (a list of names) or diffRef (a git ref to diff against).' };
87
+ }
88
+ if (seeds.length === 0) {
89
+ return {
90
+ changed: changedFiles,
91
+ selectedTests: [],
92
+ message: input.diffRef !== undefined
93
+ ? 'No changed production functions matched the call graph. The diff may touch only non-code files, or analyze_codebase is stale.'
94
+ : 'No matching production functions found for the given symbols.',
95
+ soundness: { posture: 'over-approximate', caveats: ['No seeds resolved — nothing to select.'] },
96
+ coverage: { languages: [], testDetection: 'none' },
97
+ };
98
+ }
99
+ // ── Backward reachability with path tracking (calls + inheritance) ──────────
100
+ const { nodeMap, backward } = buildAdjacency(cg);
101
+ const seedIds = new Set(seeds.map(s => s.id));
102
+ const depthOf = new Map();
103
+ const parent = new Map(); // node → next node toward a seed
104
+ const queue = [];
105
+ for (const s of seeds) {
106
+ depthOf.set(s.id, 0);
107
+ queue.push({ id: s.id, depth: 0 });
108
+ }
109
+ while (queue.length) {
110
+ const { id, depth } = queue.shift();
111
+ if (depth >= maxDepth)
112
+ continue;
113
+ for (const caller of [...(backward.get(id) ?? [])].sort()) {
114
+ if (!depthOf.has(caller)) {
115
+ depthOf.set(caller, depth + 1);
116
+ parent.set(caller, id);
117
+ queue.push({ id: caller, depth: depth + 1 });
118
+ }
119
+ }
120
+ }
121
+ // Path from a reached node down to its seed: [node, …, changedFn].
122
+ const pathToSeed = (id) => {
123
+ const names = [];
124
+ let cur = id;
125
+ const guard = new Set();
126
+ while (cur !== undefined && !guard.has(cur)) {
127
+ guard.add(cur);
128
+ names.push(nodeMap.get(cur)?.name ?? cur);
129
+ if (depthOf.get(cur) === 0)
130
+ break;
131
+ cur = parent.get(cur);
132
+ }
133
+ return names;
134
+ };
135
+ const byTest = new Map();
136
+ const add = (file, name, viaPath, confidence) => {
137
+ const key = testKey(file, name);
138
+ const existing = byTest.get(key);
139
+ if (!existing || CONF_RANK[confidence] > CONF_RANK[existing.confidence] ||
140
+ (CONF_RANK[confidence] === CONF_RANK[existing.confidence] && viaPath.length < existing.viaPath.length)) {
141
+ byTest.set(key, { test: name, file, viaPath, confidence });
142
+ }
143
+ };
144
+ // Source 1 — test nodes reached by the backward call-walk.
145
+ for (const [id, depth] of depthOf) {
146
+ if (depth === 0)
147
+ continue;
148
+ const n = nodeMap.get(id);
149
+ if (!n?.isTest || n.isExternal)
150
+ continue;
151
+ const confidence = depth === 1 ? 'high' : depth <= 3 ? 'medium' : 'low';
152
+ add(n.filePath, n.name, pathToSeed(id), confidence);
153
+ }
154
+ // Source 2 — `tested_by` edges on any reached production node (catches import-
155
+ // based associations whose test node isn't a real call-graph caller).
156
+ for (const e of cg.edges) {
157
+ if (e.kind !== 'tested_by')
158
+ continue;
159
+ if (!depthOf.has(e.callerId))
160
+ continue; // production node not in the impacted set
161
+ const testFile = e.calleeId.includes('::') ? e.calleeId.split('::')[0] : e.calleeId;
162
+ const onSeed = seedIds.has(e.callerId);
163
+ const confidence = onSeed ? 'high' : 'medium';
164
+ add(testFile, e.calleeName, [e.calleeName, ...pathToSeed(e.callerId)], confidence);
165
+ }
166
+ // Fallback — seeds with no reaching test at all: associate tests of sibling
167
+ // functions in the same file (newly-added / untested functions), low confidence.
168
+ let usedFileFallback = false;
169
+ const reachedSeedFiles = new Set([...byTest.values()].flatMap(t => t.viaPath));
170
+ for (const s of seeds) {
171
+ const seedHasTest = [...byTest.values()].some(t => t.viaPath.includes(s.name));
172
+ if (seedHasTest)
173
+ continue;
174
+ for (const e of cg.edges) {
175
+ if (e.kind !== 'tested_by')
176
+ continue;
177
+ const prod = nodeMap.get(e.callerId);
178
+ if (!prod || prod.filePath !== s.filePath)
179
+ continue;
180
+ const testFile = e.calleeId.includes('::') ? e.calleeId.split('::')[0] : e.calleeId;
181
+ add(testFile, e.calleeName, [e.calleeName, `(same file as ${s.name})`], 'low');
182
+ usedFileFallback = true;
183
+ }
184
+ }
185
+ void reachedSeedFiles;
186
+ const selectedTests = [...byTest.values()].sort((a, b) => CONF_RANK[b.confidence] - CONF_RANK[a.confidence] ||
187
+ a.file.localeCompare(b.file) || a.test.localeCompare(b.test));
188
+ // ── Coverage & soundness (honest, never falsely confident) ──────────────────
189
+ const seedLangs = [...new Set(seeds.map(s => s.language))].sort();
190
+ const graphHasTests = cg.nodes.some(n => n.isTest) || cg.edges.some(e => e.kind === 'tested_by');
191
+ const langsWithTests = new Set(cg.nodes.filter(n => n.isTest).map(n => n.language));
192
+ const testDetection = !graphHasTests ? 'none'
193
+ : seedLangs.every(l => langsWithTests.has(l)) ? 'full'
194
+ : 'partial';
195
+ const caveats = [
196
+ 'Static call-graph selection is an over-approximate prioritizer, not a sound replacement for the full suite.',
197
+ 'Dynamic dispatch, reflection, and dependency injection can under-select (a relevant test may be missed).',
198
+ ];
199
+ if (testDetection === 'none') {
200
+ caveats.push('No tests were detected in this graph — the selection is empty, not "no tests needed". Verify test-file detection for your languages.');
201
+ }
202
+ else if (testDetection === 'partial') {
203
+ caveats.push(`Test detection is incomplete for some changed languages (${seedLangs.join(', ')}); tests in undetected languages are missing.`);
204
+ }
205
+ if (usedFileFallback) {
206
+ caveats.push('Some seeds had no reaching test; sibling-file tests were included at low confidence (likely newly-added or untested functions).');
207
+ }
208
+ if (selectedTests.length === 0 && testDetection !== 'none') {
209
+ caveats.push('No test transitively reaches the change. It may be genuinely untested, or reached only via dynamic dispatch this static analysis cannot see.');
210
+ }
211
+ return {
212
+ changed: input.changedSymbols && input.changedSymbols.length > 0
213
+ ? seeds.map(s => s.name)
214
+ : changedFiles,
215
+ seeds: seeds.map(s => ({ name: s.name, file: s.filePath })),
216
+ selectedTests,
217
+ soundness: { posture: 'over-approximate', caveats },
218
+ coverage: { languages: seedLangs, testDetection },
219
+ };
220
+ }
221
+ //# sourceMappingURL=test-impact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-impact.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/test-impact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * MCP tool response hardening (spec-10).
3
+ *
4
+ * A single set of guards every tool runs through in the CallTool handler, so the
5
+ * whole surface has one uniform input-validation, timeout, output-cap, and
6
+ * error-normalization path:
7
+ *
8
+ * - Input validation BEFORE the handler runs, against the tool's own declared
9
+ * `inputSchema` (reusing the hand-written JSON-Schema-subset validator from
10
+ * spec-05 — no Ajv). Invalid args map to JSON-RPC -32602 (spec-12).
11
+ * - Per-tool timeout via Promise.race, with slow tools overridden.
12
+ * - Output size cap: oversized results are truncated DETERMINISTICALLY with a
13
+ * `truncated: true` note telling the agent how to narrow the query — never a
14
+ * silent drop.
15
+ * - Error normalization to a stable code taxonomy, distinguishing "repo not
16
+ * analyzed yet" (actionable) from real failures.
17
+ */
18
+ /** Stable MCP tool error-code taxonomy. */
19
+ export type McpToolErrorCode = 'INVALID_ARGS' | 'NOT_ANALYZED' | 'TIMEOUT' | 'OUTPUT_TRUNCATED' | 'INTERNAL';
20
+ /**
21
+ * Validate args against a tool's inputSchema. Returns a human-readable message on
22
+ * failure, or null when valid (or when no schema is declared).
23
+ */
24
+ export declare function validateToolArgs(args: unknown, inputSchema: unknown): string | null;
25
+ /** Thrown when a tool exceeds its timeout — classified as TIMEOUT downstream. */
26
+ export declare class ToolTimeoutError extends Error {
27
+ readonly toolName: string;
28
+ readonly ms: number;
29
+ constructor(toolName: string, ms: number);
30
+ }
31
+ /** The timeout budget for a tool (per-tool override or the default). */
32
+ export declare function toolTimeoutMs(toolName: string): number;
33
+ /** Race a tool's work against its timeout. Rejects with ToolTimeoutError on expiry. */
34
+ export declare function withToolTimeout<T>(work: Promise<T>, toolName: string, msOverride?: number): Promise<T>;
35
+ /**
36
+ * Deterministically cap a result string to a byte budget. When over budget, cut on
37
+ * a UTF-8-safe boundary and append a note explaining how to narrow the query.
38
+ */
39
+ export declare function capOutput(text: string, maxBytes: number): {
40
+ text: string;
41
+ truncated: boolean;
42
+ };
43
+ /** Map an error to the stable taxonomy code (actionable vs real failure). */
44
+ export declare function classifyToolError(err: unknown): McpToolErrorCode;
45
+ //# sourceMappingURL=tool-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-guard.d.ts","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/tool-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,GAAG,kBAAkB,GAAG,UAAU,CAAC;AAE7G;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKnF;AAED,iFAAiF;AACjF,qBAAa,gBAAiB,SAAQ,KAAK;aACb,QAAQ,EAAE,MAAM;aAAkB,EAAE,EAAE,MAAM;gBAA5C,QAAQ,EAAE,MAAM,EAAkB,EAAE,EAAE,MAAM;CAIzE;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAOtG;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAS9F;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAOhE"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * MCP tool response hardening (spec-10).
3
+ *
4
+ * A single set of guards every tool runs through in the CallTool handler, so the
5
+ * whole surface has one uniform input-validation, timeout, output-cap, and
6
+ * error-normalization path:
7
+ *
8
+ * - Input validation BEFORE the handler runs, against the tool's own declared
9
+ * `inputSchema` (reusing the hand-written JSON-Schema-subset validator from
10
+ * spec-05 — no Ajv). Invalid args map to JSON-RPC -32602 (spec-12).
11
+ * - Per-tool timeout via Promise.race, with slow tools overridden.
12
+ * - Output size cap: oversized results are truncated DETERMINISTICALLY with a
13
+ * `truncated: true` note telling the agent how to narrow the query — never a
14
+ * silent drop.
15
+ * - Error normalization to a stable code taxonomy, distinguishing "repo not
16
+ * analyzed yet" (actionable) from real failures.
17
+ */
18
+ import { validateAgainstSchema } from '../../../cli/manifest/schema-validator.js';
19
+ import { MCP_TOOL_TIMEOUT_MS, MCP_TOOL_TIMEOUT_OVERRIDES } from '../../../constants.js';
20
+ /**
21
+ * Validate args against a tool's inputSchema. Returns a human-readable message on
22
+ * failure, or null when valid (or when no schema is declared).
23
+ */
24
+ export function validateToolArgs(args, inputSchema) {
25
+ if (!inputSchema || typeof inputSchema !== 'object')
26
+ return null;
27
+ const errors = validateAgainstSchema(args ?? {}, inputSchema);
28
+ if (errors.length === 0)
29
+ return null;
30
+ return errors.map(e => (e.path ? `${e.path}: ${e.message}` : e.message)).join('; ');
31
+ }
32
+ /** Thrown when a tool exceeds its timeout — classified as TIMEOUT downstream. */
33
+ export class ToolTimeoutError extends Error {
34
+ toolName;
35
+ ms;
36
+ constructor(toolName, ms) {
37
+ super(`Tool "${toolName}" exceeded its ${ms}ms timeout. Narrow the query or run analyze_codebase first.`);
38
+ this.toolName = toolName;
39
+ this.ms = ms;
40
+ this.name = 'ToolTimeoutError';
41
+ }
42
+ }
43
+ /** The timeout budget for a tool (per-tool override or the default). */
44
+ export function toolTimeoutMs(toolName) {
45
+ return MCP_TOOL_TIMEOUT_OVERRIDES[toolName] ?? MCP_TOOL_TIMEOUT_MS;
46
+ }
47
+ /** Race a tool's work against its timeout. Rejects with ToolTimeoutError on expiry. */
48
+ export function withToolTimeout(work, toolName, msOverride) {
49
+ const ms = msOverride ?? toolTimeoutMs(toolName);
50
+ let timer;
51
+ const timeout = new Promise((_, reject) => {
52
+ timer = setTimeout(() => reject(new ToolTimeoutError(toolName, ms)), ms);
53
+ });
54
+ return Promise.race([work, timeout]).finally(() => clearTimeout(timer));
55
+ }
56
+ /**
57
+ * Deterministically cap a result string to a byte budget. When over budget, cut on
58
+ * a UTF-8-safe boundary and append a note explaining how to narrow the query.
59
+ */
60
+ export function capOutput(text, maxBytes) {
61
+ if (Buffer.byteLength(text, 'utf8') <= maxBytes)
62
+ return { text, truncated: false };
63
+ const note = '\n\n…[output truncated — exceeded the response byte budget. Narrow the query: add a filePattern, ' +
64
+ 'lower a limit/maxDepth/maxResults, or query a specific symbol/file.]';
65
+ const budget = Math.max(0, maxBytes - Buffer.byteLength(note, 'utf8'));
66
+ let slice = text.slice(0, budget);
67
+ while (slice.length > 0 && Buffer.byteLength(slice, 'utf8') > budget)
68
+ slice = slice.slice(0, -1);
69
+ return { text: slice + note, truncated: true };
70
+ }
71
+ /** Map an error to the stable taxonomy code (actionable vs real failure). */
72
+ export function classifyToolError(err) {
73
+ if (err instanceof ToolTimeoutError)
74
+ return 'TIMEOUT';
75
+ const msg = (err instanceof Error ? err.message : String(err)).toLowerCase();
76
+ if (/no analysis found|run analyze_codebase|not available.*re-run|re-run analyze_codebase|call graph (db )?not available/.test(msg)) {
77
+ return 'NOT_ANALYZED';
78
+ }
79
+ return 'INTERNAL';
80
+ }
81
+ //# sourceMappingURL=tool-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-guard.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/tool-guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,+FAA+F;AAC/F,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG;IAAE,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAInE;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;AAED,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BjG;AAQD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAM7E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,QAAQ,GAAG,MAAiB,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAgB/H;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMjE;AAUD,mEAAmE;AACnE,wBAAgB,4BAA4B,IAAI,IAAI,CAGnD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5F;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAqC1G;AA6CD,mFAAmF;AACnF,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAetE;AAMD,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClG;AAED,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACpC,uDAAuD;IACvD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAKD,uFAAuF;AACvF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgD3G;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAOpI;AAED,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAUlL"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/utils.ts"],"names":[],"mappings":"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"}
@@ -147,7 +147,21 @@ export async function readCachedContext(directory, timeout) {
147
147
  const raw = await readFile(filePath, 'utf-8');
148
148
  const ctx = JSON.parse(raw);
149
149
  if (EdgeStore.exists(analysisDir)) {
150
- ctx.edgeStore = EdgeStore.open(EdgeStore.dbPath(analysisDir));
150
+ const es = EdgeStore.open(EdgeStore.dbPath(analysisDir));
151
+ // Schema-bump guard: opening a DB whose SCHEMA_VERSION is stale wipes it
152
+ // (rebuild-on-bump). If the DB is now empty but the JSON analysis still has
153
+ // production nodes, the two are out of sync after an upgrade — do NOT serve
154
+ // the empty store. Edge-store tools then return "Re-run analyze_codebase"
155
+ // instead of silent empty results; the next analyze repopulates and re-attaches.
156
+ const jsonProdNodes = Array.isArray(ctx.callGraph?.nodes)
157
+ ? ctx.callGraph.nodes.filter(n => !n.isExternal && !n.isTest).length
158
+ : 0;
159
+ if ((es.wasReset || jsonProdNodes > 0) && es.countNodes() === 0 && jsonProdNodes > 0) {
160
+ es.close();
161
+ }
162
+ else {
163
+ ctx.edgeStore = es;
164
+ }
151
165
  }
152
166
  _contextCache.set(directory, { ctx, mtime });
153
167
  emit(directory, 'cache', { event: 'cache_read', hit: true });
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-watcher.d.ts","sourceRoot":"","sources":["../../../src/core/services/mcp-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA6BH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AA4CD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUzD;AAID,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAEhC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAY;IAG/B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,UAAU,CAAC,CAAgC;IACnD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAC,CAAgB;gBAE7B,OAAO,EAAE,iBAAiB;IAgBhC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiEtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B;;;OAGG;IACH,OAAO,CAAC,OAAO;IASf,kFAAkF;IAClF,OAAO,CAAC,UAAU;IASlB;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAqBb;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;;;;;OAMG;YACW,WAAW;IA8GzB;;;;;OAKG;IACH,OAAO,KAAK,kBAAkB,GAE7B;IAED;;;;;;;OAOG;YACW,WAAW;YASX,cAAc;IAc5B,OAAO,CAAC,aAAa;YAUP,YAAY;IAyB1B;;;OAGG;YACW,aAAa;IAuD3B,iFAAiF;YACnE,gBAAgB;CAwB/B"}
1
+ {"version":3,"file":"mcp-watcher.d.ts","sourceRoot":"","sources":["../../../src/core/services/mcp-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA6BH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AA4CD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUzD;AAID,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAEhC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAY;IAG/B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,UAAU,CAAC,CAAgC;IACnD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAC,CAAgB;gBAE7B,OAAO,EAAE,iBAAiB;IAgBhC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiEtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B;;;OAGG;IACH,OAAO,CAAC,OAAO;IASf,kFAAkF;IAClF,OAAO,CAAC,UAAU;IASlB;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAqBb;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;;;;;OAMG;YACW,WAAW;IAwHzB;;;;;OAKG;IACH,OAAO,KAAK,kBAAkB,GAE7B;IAED;;;;;;;OAOG;YACW,WAAW;YASX,cAAc;IAc5B,OAAO,CAAC,aAAa;YAUP,YAAY;IAyB1B;;;OAGG;YACW,aAAa;IAuD3B,iFAAiF;YACnE,gBAAgB;CAwB/B"}
@@ -312,7 +312,16 @@ export class McpWatcher {
312
312
  if (EdgeStore.exists(this.outputPath)) {
313
313
  const store = EdgeStore.open(EdgeStore.dbPath(this.outputPath));
314
314
  try {
315
+ // Schema-bump guard: opening a stale-version DB wipes it (rebuild-on-bump).
316
+ // An incremental per-file update on a wiped store would leave a PARTIAL graph
317
+ // (only the changed file's nodes). Skip it — a full `analyze` must rebuild.
318
+ if (store.wasReset) {
319
+ process.stderr.write('[mcp-watcher] graph index was reset by a schema-version upgrade — run "openlore analyze" to rebuild. ' +
320
+ 'Skipping incremental update to avoid a partial graph.\n');
321
+ }
315
322
  for (const f of files) {
323
+ if (store.wasReset)
324
+ break;
316
325
  const newHash = createHash('sha256').update(f.content).digest('hex');
317
326
  if (store.getFileHash(f.rel) === newHash)
318
327
  continue; // no-op autosave
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-watcher.js","sourceRoot":"","sources":["../../../src/core/services/mcp-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-watcher.js","sourceRoot":"","sources":["../../../src/core/services/mcp-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,QAA4B,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAsB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CACnF,CAAC,CAAC;AACH,+FAA+F;AAC/F,MAAM,oBAAoB,GAAG,EAAE,CAAC;AA4BhC,MAAM,iBAAiB,GAAG,wEAAwE,CAAC;AAEnG,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,kCAAkC;AAClC,EAAE;AACF,+EAA+E;AAC/E,0BAA0B;AAC1B,gFAAgF;AAChF,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,gFAAgF;AAChF,uEAAuE;AACvE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,iBAAiB;IACjB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW;IAClC,UAAU;IACV,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa;IAChE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO;IACxD,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe;IAC9D,MAAM,EAAE,aAAa;IACrB,qBAAqB;IACrB,QAAQ;IACR,MAAM;IACN,SAAS;IACT,OAAO;IACP,KAAK;IACL,kBAAkB;IAClB,OAAO;CACR,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAC9C,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AAEjF,MAAM,OAAO,UAAU;IACJ,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,WAAW,CAAS;IACpB,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,aAAa,CAAS;IACtB,gBAAgB,CAAS;IACzB,WAAW,CAAW;IACtB,KAAK,CAAU;IAExB,SAAS,CAAa;IACtB,UAAU,CAAa;IAE/B,8EAA8E;IACtE,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC,CAAc,kCAAkC;IAC5E,aAAa,CAAiC;IAC9C,aAAa,CAAiC;IAC9C,OAAO,GAAG,KAAK,CAAC,CAA2B,wCAAwC;IACnF,WAAW,GAAG,KAAK,CAAC,CAAuB,8BAA8B;IAEjF,+EAA+E;IACvE,KAAK,CAAU;IACf,aAAa,GAAG,KAAK,CAAC,CAAqB,oCAAoC;IAC/E,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAI,+BAA+B;IAC1E,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC,CAAC,2BAA2B;IACzE,UAAU,CAAiC;IAC3C,YAAY,GAAG,KAAK,CAAC;IACrB,gBAAgB,CAAiB;IAEzC,YAAY,OAA0B;QACpC,IAAI,CAAC,QAAQ,GAAK,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;eAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAI,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAI,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,oBAAoB,CAAC;QACnE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,wBAAwB,CAAC;QAC7E,IAAI,CAAC,KAAK,GAAS,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,GAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACxD,CAAC;IAED,8EAA8E;IAE9E,KAAK,CAAC,KAAK;QACT,wEAAwE;QACxE,yDAAyD;QACzD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;YACrE,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iBAAiB,KAAK,+CAA+C;oBACrE,IAAI,IAAI,CAAC,gBAAgB,6DAA6D,CACvF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxC,sEAAsE;gBACtE,qEAAqE;gBACrE,wEAAwE;gBACxE,+CAA+C;gBAC/C,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE;oBAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACzC,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,IAAI;gBACnB,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE;aAChE,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAe,EAAE,EAAE;gBAC9C,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,6EAA6E;QAC7E,4EAA4E;QAC5E,6EAA6E;QAC7E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACtF,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;gBACrC,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,IAAI;gBACnB,cAAc,EAAE,KAAK;aACtB,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;YACxE,oDAAoD;QACtD,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0BAA0B,IAAI,CAAC,QAAQ,EAAE;YACzC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,IAAI,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QACtE,6EAA6E;QAC7E,eAAe;QACf,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAClD,CAAC;IAED,gFAAgF;IAEhF;;;OAGG;IACK,OAAO,CAAC,OAAe;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,kFAAkF;IAC1E,UAAU;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK;QACX,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAAC,CAAC;QAC7F,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAAC,CAAC;QAC7F,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,CAAY,wCAAwC;QAC7E,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAEpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;aACpB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAyB,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;aACxF,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,WAAW,CAAC,QAAkB,EAAE,OAAgC,EAAE;QAC9E,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,4EAA4E;QAC5E,MAAM,KAAK,GAAyD,EAAE,CAAC;QACvE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACzC,IAAI,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC9B,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,SAAS;YAChD,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,CAAC,uDAAuD;YACnE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,4EAA4E;QAC5E,yEAAyE;QACzE,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC;gBACH,4EAA4E;gBAC5E,8EAA8E;gBAC9E,4EAA4E;gBAC5E,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uGAAuG;wBACvG,yDAAyD,CAC1D,CAAC;gBACJ,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,KAAK,CAAC,QAAQ;wBAAE,MAAM;oBAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACrE,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO;wBAAE,SAAS,CAAC,iBAAiB;oBAErE,0EAA0E;oBAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAChD,wEAAwE;oBACxE,oEAAoE;oBACpE,kDAAkD;oBAClD,MAAM,eAAe,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;oBACpD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GACxC,MAAM,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;oBAExF,8DAA8D;oBAC9D,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;wBACrB,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAChC,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,EAAE,CAAC;4BAC5D,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;wBACvC,CAAC;wBACD,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAChC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC5B,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC5B,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;oBAEH,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtD,KAAK,MAAM,CAAC,IAAI,QAAQ;wBAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC/C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wBAAwB,CAAC,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,YAAY,QAAQ,CAAC,MAAM,WAAW,WAAW,CAAC,MAAM,aAAa,CACxH,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,mCAAmC;QAE1E,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,WAAW,wBAAwB,CAAC,CAAC;YAC9F,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAU;YAAE,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YAClE,IAAI,GAAG,IAAI,CAAC;gBAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;;gBAC1C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAEnC,kEAAkE;QAClE,MAAM,MAAM,GAAG,eAAe,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC;QAC5E,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,gEAAgE;gBAChE,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,qEAAqE;gBACrE,wDAAwD;gBACxD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iBAAiB,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CACzH,CAAC;IACJ,CAAC;IAED,gFAAgF;IAEhF;;;;;OAKG;IACH,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAsB;QACjD,8DAA8D;QAC9D,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,OAAkD,CAAC;QACtG,KAAK,UAAU,CAAC;QAChB,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAClF,6EAA6E;QAC7E,8EAA8E;QAC9E,4EAA4E;QAC5E,4DAA4D;QAC5D,IAAI,IAAI,CAAC,kBAAkB;YAAE,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;IAED,gFAAgF;IAExE,aAAa,CAAC,OAAsB,EAAE,YAA2B,EAAE,KAAqB;QAC9F,KAAK,MAAM,CAAC,IAAI,YAAY;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,8EAA8E;QAC9E,wDAAwD;QACxD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAChF,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,wDAAwD;YACxD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QACjE,MAAM,YAAY,GAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxG,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA+B,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACjF,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CAAC,OAAsB,EAAE,YAA2B,EAAE,YAA4B;QAC3G,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;YACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;YAC9E,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAEnE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE,OAAO;YAEjD,IAAI,QAAsD,CAAC;YAC3D,IAAI,CAAC;gBACH,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpD,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,CAAC;YACD,wEAAwE;YACxE,0EAA0E;YAE1E,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;YAC7B,IAAI,CAAC,EAAE;gBAAE,OAAO;YAChB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1E,qEAAqE;YACrE,yEAAyE;YACzE,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;gBACnC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAErE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,WAAW,CAAC,WAAW,CAC9E,IAAI,CAAC,UAAU,EACf,KAAK,EACL,gBAAgB,EAChB,OAAO,CAAC,UAAU,IAAI,EAAE,EACxB,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,YAAY,CACb,CAAC;YAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa;oBACX,CAAC,CAAC,6BAA6B,gBAAgB,CAAC,IAAI,aAAa,QAAQ,SAAS,MAAM,WAAW;oBACnG,CAAC,CAAC,0CAA0C,gBAAgB,CAAC,IAAI,aAAa,KAAK,cAAc,CACpG,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA+B,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,gFAAgF;IAEhF,iFAAiF;IACzE,KAAK,CAAC,gBAAgB,CAAC,GAAW;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;YAChD,IAAI,KAAK,GAAG,GAAG;gBAAE,OAAO;YACxB,IAAI,OAAO,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,GAAG,GAAG;oBAAE,OAAO;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACzC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;wBAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9C,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1F,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,mFAAmF;AAEnF,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAC7B,UAAkB,EAClB,cAAsB,EACtB,WAAqB,EACrB,OAAe,EACf,eAAoE;IAKpE,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEjE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACvE,kEAAkE;IAClE,MAAM,KAAK,GAA+D;QACxE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC9D,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAC5C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAEjF,yFAAyF;IACzF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;IAEhG,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACtD,CAAC"}