nodebench-mcp 2.14.2 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/NODEBENCH_AGENTS.md +3 -3
  2. package/README.md +9 -9
  3. package/dist/__tests__/architectComplex.test.d.ts +1 -0
  4. package/dist/__tests__/architectComplex.test.js +375 -0
  5. package/dist/__tests__/architectComplex.test.js.map +1 -0
  6. package/dist/__tests__/architectSmoke.test.d.ts +1 -0
  7. package/dist/__tests__/architectSmoke.test.js +92 -0
  8. package/dist/__tests__/architectSmoke.test.js.map +1 -0
  9. package/dist/__tests__/critterCalibrationEval.d.ts +8 -0
  10. package/dist/__tests__/critterCalibrationEval.js +370 -0
  11. package/dist/__tests__/critterCalibrationEval.js.map +1 -0
  12. package/dist/__tests__/embeddingProvider.test.d.ts +1 -0
  13. package/dist/__tests__/embeddingProvider.test.js +86 -0
  14. package/dist/__tests__/embeddingProvider.test.js.map +1 -0
  15. package/dist/__tests__/evalHarness.test.js +6 -1
  16. package/dist/__tests__/evalHarness.test.js.map +1 -1
  17. package/dist/__tests__/gaiaCapabilityAudioEval.test.js +1 -1
  18. package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +1 -1
  19. package/dist/__tests__/gaiaCapabilityEval.test.js +759 -28
  20. package/dist/__tests__/gaiaCapabilityEval.test.js.map +1 -1
  21. package/dist/__tests__/gaiaCapabilityFilesEval.test.js +1 -1
  22. package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +1 -1
  23. package/dist/__tests__/gaiaCapabilityMediaEval.test.js +558 -4
  24. package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +1 -1
  25. package/dist/__tests__/presetRealWorldBench.test.js +2 -2
  26. package/dist/__tests__/presetRealWorldBench.test.js.map +1 -1
  27. package/dist/__tests__/tools.test.js +1016 -8
  28. package/dist/__tests__/tools.test.js.map +1 -1
  29. package/dist/__tests__/toolsetGatingEval.test.js +3 -3
  30. package/dist/__tests__/toolsetGatingEval.test.js.map +1 -1
  31. package/dist/db.js +64 -0
  32. package/dist/db.js.map +1 -1
  33. package/dist/index.js +76 -9
  34. package/dist/index.js.map +1 -1
  35. package/dist/tools/architectTools.d.ts +15 -0
  36. package/dist/tools/architectTools.js +304 -0
  37. package/dist/tools/architectTools.js.map +1 -0
  38. package/dist/tools/critterTools.d.ts +21 -0
  39. package/dist/tools/critterTools.js +230 -0
  40. package/dist/tools/critterTools.js.map +1 -0
  41. package/dist/tools/emailTools.d.ts +15 -0
  42. package/dist/tools/emailTools.js +664 -0
  43. package/dist/tools/emailTools.js.map +1 -0
  44. package/dist/tools/embeddingProvider.d.ts +67 -0
  45. package/dist/tools/embeddingProvider.js +299 -0
  46. package/dist/tools/embeddingProvider.js.map +1 -0
  47. package/dist/tools/metaTools.js +660 -0
  48. package/dist/tools/metaTools.js.map +1 -1
  49. package/dist/tools/progressiveDiscoveryTools.js +24 -7
  50. package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
  51. package/dist/tools/reconTools.js +83 -33
  52. package/dist/tools/reconTools.js.map +1 -1
  53. package/dist/tools/rssTools.d.ts +8 -0
  54. package/dist/tools/rssTools.js +833 -0
  55. package/dist/tools/rssTools.js.map +1 -0
  56. package/dist/tools/toolRegistry.d.ts +30 -2
  57. package/dist/tools/toolRegistry.js +424 -25
  58. package/dist/tools/toolRegistry.js.map +1 -1
  59. package/package.json +14 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emailTools.js","sourceRoot":"","sources":["../../src/tools/emailTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Embedding Provider — True semantic search via neural embeddings.
3
+ *
4
+ * Provider fallback order:
5
+ * 1. Local: @huggingface/transformers + Xenova/all-MiniLM-L6-v2 (384-dim, 23MB INT8, zero API keys)
6
+ * 2. Google: text-embedding-004 (768-dim, free API, needs GEMINI_API_KEY)
7
+ * 3. OpenAI: text-embedding-3-small (1536-dim, $0.02/1M tokens, needs OPENAI_API_KEY)
8
+ *
9
+ * Graceful degradation: if no provider is available, all exports return null/false
10
+ * and search works exactly as before.
11
+ */
12
+ export interface EmbeddingProvider {
13
+ name: string;
14
+ dimensions: number;
15
+ embed(texts: string[]): Promise<Float32Array[]>;
16
+ }
17
+ /** Node type in the bipartite graph: tool nodes vs domain (agent) nodes */
18
+ export type GraphNodeType = "tool" | "domain";
19
+ interface EmbeddingIndexEntry {
20
+ name: string;
21
+ vector: Float32Array;
22
+ /** Node type for Agent-as-a-Graph bipartite scoring */
23
+ nodeType: GraphNodeType;
24
+ }
25
+ /**
26
+ * Returns the best available embedding provider, or null if none is available.
27
+ * Tries: local HuggingFace → Google → OpenAI (in that order).
28
+ */
29
+ export declare function getEmbeddingProvider(): Promise<EmbeddingProvider | null>;
30
+ /**
31
+ * Pre-embed all tools at startup. Reads from cache if valid, otherwise embeds fresh.
32
+ * Call this once after tool assembly with a corpus of { name, text, nodeType? } entries.
33
+ * nodeType defaults to "tool" for backwards compatibility.
34
+ */
35
+ export declare function initEmbeddingIndex(corpus: Array<{
36
+ name: string;
37
+ text: string;
38
+ nodeType?: GraphNodeType;
39
+ }>): Promise<void>;
40
+ /**
41
+ * Embed a single query string. Returns null if no provider is available.
42
+ */
43
+ export declare function embedQuery(text: string): Promise<Float32Array | null>;
44
+ /**
45
+ * Brute-force cosine KNN over the pre-computed embedding index.
46
+ * Returns ranked results with similarity scores and node types.
47
+ */
48
+ export declare function embeddingSearch(queryVec: Float32Array, limit?: number): Array<{
49
+ name: string;
50
+ similarity: number;
51
+ nodeType: GraphNodeType;
52
+ }>;
53
+ /**
54
+ * Returns true when the embedding index is loaded and ready for search.
55
+ */
56
+ export declare function isEmbeddingReady(): boolean;
57
+ /**
58
+ * Returns the name of the active embedding provider, or null.
59
+ */
60
+ export declare function getProviderName(): string | null;
61
+ /** Reset all state — for testing only. */
62
+ export declare function _resetForTesting(): void;
63
+ /** Inject a mock provider — for testing only. */
64
+ export declare function _setProviderForTesting(provider: EmbeddingProvider | null): void;
65
+ /** Inject a pre-built index — for testing only. */
66
+ export declare function _setIndexForTesting(index: EmbeddingIndexEntry[]): void;
67
+ export {};
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Embedding Provider — True semantic search via neural embeddings.
3
+ *
4
+ * Provider fallback order:
5
+ * 1. Local: @huggingface/transformers + Xenova/all-MiniLM-L6-v2 (384-dim, 23MB INT8, zero API keys)
6
+ * 2. Google: text-embedding-004 (768-dim, free API, needs GEMINI_API_KEY)
7
+ * 3. OpenAI: text-embedding-3-small (1536-dim, $0.02/1M tokens, needs OPENAI_API_KEY)
8
+ *
9
+ * Graceful degradation: if no provider is available, all exports return null/false
10
+ * and search works exactly as before.
11
+ */
12
+ import { homedir } from "node:os";
13
+ import { join } from "node:path";
14
+ import { readFileSync, writeFileSync, mkdirSync, existsSync } from "node:fs";
15
+ // ── State ────────────────────────────────────────────────────────────────────
16
+ let _provider = null;
17
+ let _providerChecked = false;
18
+ let _embeddingIndex = null;
19
+ let _initPromise = null;
20
+ const CACHE_VERSION = 1;
21
+ const CACHE_DIR = join(homedir(), ".nodebench");
22
+ const CACHE_FILE = join(CACHE_DIR, "embedding_cache.json");
23
+ // ── Provider creation ────────────────────────────────────────────────────────
24
+ async function createLocalProvider() {
25
+ try {
26
+ // Non-literal import to avoid TypeScript bundling issues with optional deps
27
+ const pkg = "@huggingface/transformers";
28
+ const mod = await import(/* @vite-ignore */ pkg);
29
+ const { pipeline, env } = mod;
30
+ // Disable remote model loading attempts in restricted environments
31
+ env.allowRemoteModels = true;
32
+ env.useBrowserCache = false;
33
+ const extractor = await pipeline("feature-extraction", "Xenova/all-MiniLM-L6-v2", {
34
+ quantized: true, // INT8 — 23MB vs 90MB FP32
35
+ });
36
+ return {
37
+ name: "local-minilm",
38
+ dimensions: 384,
39
+ embed: async (texts) => {
40
+ const results = [];
41
+ // Batch in chunks of 32 to avoid OOM on large corpora
42
+ for (let i = 0; i < texts.length; i += 32) {
43
+ const batch = texts.slice(i, i + 32);
44
+ const output = await extractor(batch, { pooling: "mean", normalize: true });
45
+ for (let j = 0; j < batch.length; j++) {
46
+ results.push(new Float32Array(output[j].data));
47
+ }
48
+ }
49
+ return results;
50
+ },
51
+ };
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ async function createGoogleProvider() {
58
+ const apiKey = process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY;
59
+ if (!apiKey)
60
+ return null;
61
+ try {
62
+ const { GoogleGenAI } = await import("@google/genai");
63
+ const ai = new GoogleGenAI({ apiKey });
64
+ return {
65
+ name: "google",
66
+ dimensions: 768,
67
+ embed: async (texts) => {
68
+ const results = [];
69
+ // Google API supports batching up to 100 texts
70
+ for (let i = 0; i < texts.length; i += 100) {
71
+ const batch = texts.slice(i, i + 100);
72
+ const response = await ai.models.embedContent({
73
+ model: "text-embedding-004",
74
+ contents: batch.map((t) => ({ parts: [{ text: t }] })),
75
+ });
76
+ const embeddings = response.embeddings ?? [];
77
+ for (const emb of embeddings) {
78
+ results.push(new Float32Array(emb.values));
79
+ }
80
+ }
81
+ return results;
82
+ },
83
+ };
84
+ }
85
+ catch {
86
+ return null;
87
+ }
88
+ }
89
+ async function createOpenAIProvider() {
90
+ if (!process.env.OPENAI_API_KEY)
91
+ return null;
92
+ try {
93
+ const OpenAI = (await import("openai")).default;
94
+ const client = new OpenAI();
95
+ return {
96
+ name: "openai",
97
+ dimensions: 1536,
98
+ embed: async (texts) => {
99
+ const results = [];
100
+ // OpenAI supports up to 2048 inputs per request
101
+ for (let i = 0; i < texts.length; i += 2048) {
102
+ const batch = texts.slice(i, i + 2048);
103
+ const response = await client.embeddings.create({
104
+ model: "text-embedding-3-small",
105
+ input: batch,
106
+ });
107
+ for (const item of response.data) {
108
+ results.push(new Float32Array(item.embedding));
109
+ }
110
+ }
111
+ return results;
112
+ },
113
+ };
114
+ }
115
+ catch {
116
+ return null;
117
+ }
118
+ }
119
+ // ── Public API ───────────────────────────────────────────────────────────────
120
+ /**
121
+ * Returns the best available embedding provider, or null if none is available.
122
+ * Tries: local HuggingFace → Google → OpenAI (in that order).
123
+ */
124
+ export async function getEmbeddingProvider() {
125
+ if (_providerChecked)
126
+ return _provider;
127
+ _providerChecked = true;
128
+ _provider = await createLocalProvider();
129
+ if (_provider)
130
+ return _provider;
131
+ _provider = await createGoogleProvider();
132
+ if (_provider)
133
+ return _provider;
134
+ _provider = await createOpenAIProvider();
135
+ return _provider;
136
+ }
137
+ /**
138
+ * Pre-embed all tools at startup. Reads from cache if valid, otherwise embeds fresh.
139
+ * Call this once after tool assembly with a corpus of { name, text, nodeType? } entries.
140
+ * nodeType defaults to "tool" for backwards compatibility.
141
+ */
142
+ export async function initEmbeddingIndex(corpus) {
143
+ // Prevent duplicate init
144
+ if (_initPromise)
145
+ return _initPromise;
146
+ _initPromise = _doInit(corpus);
147
+ return _initPromise;
148
+ }
149
+ async function _doInit(corpus) {
150
+ const provider = await getEmbeddingProvider();
151
+ if (!provider)
152
+ return; // No provider — semantic search stays disabled
153
+ const hash = fnv1aHash(corpus.map((c) => c.text).join("\n"));
154
+ // Try loading from cache
155
+ const cached = loadCache();
156
+ if (cached &&
157
+ cached.providerName === provider.name &&
158
+ cached.dimensions === provider.dimensions &&
159
+ cached.version === CACHE_VERSION &&
160
+ cached.toolCount === corpus.length &&
161
+ cached.corpusHash === hash &&
162
+ corpus.every((c) => c.name in cached.entries)) {
163
+ _embeddingIndex = corpus.map((c) => ({
164
+ name: c.name,
165
+ vector: new Float32Array(cached.entries[c.name]),
166
+ nodeType: c.nodeType ?? "tool",
167
+ }));
168
+ return;
169
+ }
170
+ // Embed all tools
171
+ try {
172
+ const texts = corpus.map((c) => c.text);
173
+ const vectors = await provider.embed(texts);
174
+ _embeddingIndex = corpus.map((c, i) => ({
175
+ name: c.name,
176
+ vector: vectors[i],
177
+ nodeType: c.nodeType ?? "tool",
178
+ }));
179
+ // Save to cache
180
+ const cacheData = {
181
+ providerName: provider.name,
182
+ dimensions: provider.dimensions,
183
+ version: CACHE_VERSION,
184
+ toolCount: corpus.length,
185
+ corpusHash: hash,
186
+ entries: {},
187
+ };
188
+ for (let i = 0; i < corpus.length; i++) {
189
+ cacheData.entries[corpus[i].name] = Array.from(vectors[i]);
190
+ }
191
+ saveCache(cacheData);
192
+ }
193
+ catch {
194
+ // Embedding failed — graceful degradation, search works without embeddings
195
+ _embeddingIndex = null;
196
+ }
197
+ }
198
+ /**
199
+ * Embed a single query string. Returns null if no provider is available.
200
+ */
201
+ export async function embedQuery(text) {
202
+ const provider = await getEmbeddingProvider();
203
+ if (!provider)
204
+ return null;
205
+ try {
206
+ const [vec] = await provider.embed([text]);
207
+ return vec;
208
+ }
209
+ catch {
210
+ return null;
211
+ }
212
+ }
213
+ /**
214
+ * Brute-force cosine KNN over the pre-computed embedding index.
215
+ * Returns ranked results with similarity scores and node types.
216
+ */
217
+ export function embeddingSearch(queryVec, limit = 30) {
218
+ if (!_embeddingIndex)
219
+ return [];
220
+ const scored = _embeddingIndex.map((entry) => ({
221
+ name: entry.name,
222
+ similarity: cosineSim(queryVec, entry.vector),
223
+ nodeType: entry.nodeType,
224
+ }));
225
+ scored.sort((a, b) => b.similarity - a.similarity);
226
+ return scored.slice(0, limit);
227
+ }
228
+ /**
229
+ * Returns true when the embedding index is loaded and ready for search.
230
+ */
231
+ export function isEmbeddingReady() {
232
+ return _embeddingIndex !== null && _embeddingIndex.length > 0;
233
+ }
234
+ /**
235
+ * Returns the name of the active embedding provider, or null.
236
+ */
237
+ export function getProviderName() {
238
+ return _provider?.name ?? null;
239
+ }
240
+ // ── Internals ────────────────────────────────────────────────────────────────
241
+ /** FNV-1a hash — fast, deterministic, good distribution for cache invalidation */
242
+ function fnv1aHash(str) {
243
+ let hash = 0x811c9dc5;
244
+ for (let i = 0; i < str.length; i++) {
245
+ hash ^= str.charCodeAt(i);
246
+ hash = (hash * 0x01000193) >>> 0;
247
+ }
248
+ return hash.toString(36);
249
+ }
250
+ function cosineSim(a, b) {
251
+ if (a.length !== b.length)
252
+ return 0;
253
+ let dot = 0, normA = 0, normB = 0;
254
+ for (let i = 0; i < a.length; i++) {
255
+ dot += a[i] * b[i];
256
+ normA += a[i] * a[i];
257
+ normB += b[i] * b[i];
258
+ }
259
+ const denom = Math.sqrt(normA) * Math.sqrt(normB);
260
+ return denom === 0 ? 0 : dot / denom;
261
+ }
262
+ function loadCache() {
263
+ try {
264
+ if (!existsSync(CACHE_FILE))
265
+ return null;
266
+ const raw = readFileSync(CACHE_FILE, "utf-8");
267
+ return JSON.parse(raw);
268
+ }
269
+ catch {
270
+ return null;
271
+ }
272
+ }
273
+ function saveCache(data) {
274
+ try {
275
+ mkdirSync(CACHE_DIR, { recursive: true });
276
+ writeFileSync(CACHE_FILE, JSON.stringify(data));
277
+ }
278
+ catch {
279
+ // Non-critical — next startup will just re-embed
280
+ }
281
+ }
282
+ // ── Testing helpers ──────────────────────────────────────────────────────────
283
+ /** Reset all state — for testing only. */
284
+ export function _resetForTesting() {
285
+ _provider = null;
286
+ _providerChecked = false;
287
+ _embeddingIndex = null;
288
+ _initPromise = null;
289
+ }
290
+ /** Inject a mock provider — for testing only. */
291
+ export function _setProviderForTesting(provider) {
292
+ _provider = provider;
293
+ _providerChecked = true;
294
+ }
295
+ /** Inject a pre-built index — for testing only. */
296
+ export function _setIndexForTesting(index) {
297
+ _embeddingIndex = index;
298
+ }
299
+ //# sourceMappingURL=embeddingProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddingProvider.js","sourceRoot":"","sources":["../../src/tools/embeddingProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA8B7E,gFAAgF;AAEhF,IAAI,SAAS,GAA6B,IAAI,CAAC;AAC/C,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,IAAI,eAAe,GAAiC,IAAI,CAAC;AACzD,IAAI,YAAY,GAAyB,IAAI,CAAC;AAE9C,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAE3D,gFAAgF;AAEhF,KAAK,UAAU,mBAAmB;IAChC,IAAI,CAAC;QACH,4EAA4E;QAC5E,MAAM,GAAG,GAAG,2BAA2B,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QAE9B,mEAAmE;QACnE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC7B,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;QAE5B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,yBAAyB,EAAE;YAChF,SAAS,EAAE,IAAI,EAAE,2BAA2B;SAC7C,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,KAAK,EAAE,KAAe,EAA2B,EAAE;gBACxD,MAAM,OAAO,GAAmB,EAAE,CAAC;gBACnC,sDAAsD;gBACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;oBACrC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,KAAK,EAAE,KAAe,EAA2B,EAAE;gBACxD,MAAM,OAAO,GAAmB,EAAE,CAAC;gBACnC,+CAA+C;gBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;oBAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;oBACtC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;wBAC5C,KAAK,EAAE,oBAAoB;wBAC3B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;qBACvD,CAAC,CAAC;oBACH,MAAM,UAAU,GAAI,QAAgB,CAAC,UAAU,IAAI,EAAE,CAAC;oBACtD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;wBAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAE5B,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,KAAK,EAAE,KAAe,EAA2B,EAAE;gBACxD,MAAM,OAAO,GAAmB,EAAE,CAAC;gBACnC,gDAAgD;gBAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;oBACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;wBAC9C,KAAK,EAAE,wBAAwB;wBAC/B,KAAK,EAAE,KAAK;qBACb,CAAC,CAAC;oBACH,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACjC,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACvC,gBAAgB,GAAG,IAAI,CAAC;IAExB,SAAS,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACxC,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,SAAS,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACzC,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,SAAS,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAuE;IAEvE,yBAAyB;IACzB,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,MAAuE;IAC5F,MAAM,QAAQ,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,+CAA+C;IAEtE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7D,yBAAyB;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IACE,MAAM;QACN,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,IAAI;QACrC,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;QACzC,MAAM,CAAC,OAAO,KAAK,aAAa;QAChC,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM;QAClC,MAAM,CAAC,UAAU,KAAK,IAAI;QAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,EAC7C,CAAC;QACD,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAChD,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,MAAM;SAC/B,CAAC,CAAC,CAAC;QACJ,OAAO;IACT,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE5C,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,MAAM;SAC/B,CAAC,CAAC,CAAC;QAEJ,gBAAgB;QAChB,MAAM,SAAS,GAAmB;YAChC,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,SAAS,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAsB,EACtB,QAAgB,EAAE;IAElB,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,UAAU,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,eAAe,KAAK,IAAI,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,gFAAgF;AAEhF,kFAAkF;AAClF,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,CAAe,EAAE,CAAe;IACjD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;AACvC,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAoB;IACrC,IAAI,CAAC;QACH,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,0CAA0C;AAC1C,MAAM,UAAU,gBAAgB;IAC9B,SAAS,GAAG,IAAI,CAAC;IACjB,gBAAgB,GAAG,KAAK,CAAC;IACzB,eAAe,GAAG,IAAI,CAAC;IACvB,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,sBAAsB,CAAC,QAAkC;IACvE,SAAS,GAAG,QAAQ,CAAC;IACrB,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,mBAAmB,CAAC,KAA4B;IAC9D,eAAe,GAAG,KAAK,CAAC;AAC1B,CAAC"}