nodebench-mcp 2.19.0 → 2.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/tools.test.js +4 -2
- package/dist/__tests__/tools.test.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/tools/mcpBridgeTools.d.ts +20 -0
- package/dist/tools/mcpBridgeTools.js +395 -0
- package/dist/tools/mcpBridgeTools.js.map +1 -0
- package/dist/tools/progressiveDiscoveryTools.js +1 -1
- package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
- package/dist/tools/toolRegistry.js +86 -0
- package/dist/tools/toolRegistry.js.map +1 -1
- package/dist/tools/uiUxDiveTools.js +402 -25
- package/dist/tools/uiUxDiveTools.js.map +1 -1
- package/dist/toolsetRegistry.js +2 -0
- package/dist/toolsetRegistry.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,158 @@
|
|
|
15
15
|
* its assigned component_id to operate independently.
|
|
16
16
|
*/
|
|
17
17
|
import { getDb, genId } from "../db.js";
|
|
18
|
+
// ── Browser Session Management (Built-in Playwright) ────────────────────
|
|
19
|
+
// Singleton browser/page per dive session. Auto-detects Playwright.
|
|
20
|
+
// Falls back gracefully to manual/logging-only mode if not installed.
|
|
21
|
+
let _browser = null;
|
|
22
|
+
let _page = null;
|
|
23
|
+
let _activeSessionId = null;
|
|
24
|
+
async function getPlaywright() {
|
|
25
|
+
try {
|
|
26
|
+
return await import("playwright");
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function ensureBrowser(url, sessionId, headless = true) {
|
|
33
|
+
if (_page && _activeSessionId === sessionId) {
|
|
34
|
+
return { page: _page, launched: false };
|
|
35
|
+
}
|
|
36
|
+
await closeBrowser();
|
|
37
|
+
const pw = await getPlaywright();
|
|
38
|
+
if (!pw) {
|
|
39
|
+
return {
|
|
40
|
+
page: null,
|
|
41
|
+
launched: false,
|
|
42
|
+
error: "Playwright not installed. Install for zero-friction browser automation:\n npm install playwright && npx playwright install chromium\nFalling back to manual logging mode.",
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
_browser = await pw.chromium.launch({ headless });
|
|
47
|
+
_page = await _browser.newPage({ viewport: { width: 1280, height: 720 } });
|
|
48
|
+
await _page.goto(url, { waitUntil: "domcontentloaded", timeout: 30000 });
|
|
49
|
+
_activeSessionId = sessionId;
|
|
50
|
+
return { page: _page, launched: true };
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
await closeBrowser();
|
|
54
|
+
return {
|
|
55
|
+
page: null,
|
|
56
|
+
launched: false,
|
|
57
|
+
error: `Browser launch failed: ${e.message}. Try: npx playwright install chromium`,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async function closeBrowser() {
|
|
62
|
+
try {
|
|
63
|
+
if (_browser)
|
|
64
|
+
await _browser.close();
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
/* ignore close errors */
|
|
68
|
+
}
|
|
69
|
+
_browser = null;
|
|
70
|
+
_page = null;
|
|
71
|
+
_activeSessionId = null;
|
|
72
|
+
}
|
|
73
|
+
async function executeAction(page, action, target, inputValue) {
|
|
74
|
+
const start = Date.now();
|
|
75
|
+
try {
|
|
76
|
+
switch (action) {
|
|
77
|
+
case "click":
|
|
78
|
+
if (!target)
|
|
79
|
+
return { success: false, observation: "No target selector for click", durationMs: Date.now() - start };
|
|
80
|
+
await page.click(target, { timeout: 10000 });
|
|
81
|
+
break;
|
|
82
|
+
case "type":
|
|
83
|
+
if (!target || !inputValue)
|
|
84
|
+
return { success: false, observation: "Need target and inputValue for type", durationMs: Date.now() - start };
|
|
85
|
+
await page.fill(target, inputValue, { timeout: 10000 });
|
|
86
|
+
break;
|
|
87
|
+
case "hover":
|
|
88
|
+
if (!target)
|
|
89
|
+
return { success: false, observation: "No target selector for hover", durationMs: Date.now() - start };
|
|
90
|
+
await page.hover(target, { timeout: 10000 });
|
|
91
|
+
break;
|
|
92
|
+
case "navigate":
|
|
93
|
+
if (!inputValue)
|
|
94
|
+
return { success: false, observation: "No URL for navigate (use inputValue)", durationMs: Date.now() - start };
|
|
95
|
+
await page.goto(inputValue, { waitUntil: "domcontentloaded", timeout: 30000 });
|
|
96
|
+
break;
|
|
97
|
+
case "scroll":
|
|
98
|
+
await page.evaluate(`window.scrollBy(0, ${parseInt(inputValue ?? "500", 10)})`);
|
|
99
|
+
break;
|
|
100
|
+
case "submit":
|
|
101
|
+
if (target)
|
|
102
|
+
await page.press(target, "Enter", { timeout: 10000 });
|
|
103
|
+
else
|
|
104
|
+
await page.keyboard.press("Enter");
|
|
105
|
+
break;
|
|
106
|
+
case "keypress":
|
|
107
|
+
await page.keyboard.press(inputValue ?? "Enter");
|
|
108
|
+
break;
|
|
109
|
+
case "focus":
|
|
110
|
+
if (target)
|
|
111
|
+
await page.focus(target, { timeout: 10000 });
|
|
112
|
+
break;
|
|
113
|
+
case "wait":
|
|
114
|
+
await page.waitForTimeout(parseInt(inputValue ?? "1000", 10));
|
|
115
|
+
break;
|
|
116
|
+
case "assert": {
|
|
117
|
+
if (!target)
|
|
118
|
+
return { success: true, observation: "No target for assert — skipped", durationMs: Date.now() - start };
|
|
119
|
+
const visible = await page.isVisible(target);
|
|
120
|
+
if (!visible)
|
|
121
|
+
return { success: false, observation: `Element not visible: ${target}`, durationMs: Date.now() - start };
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
default:
|
|
125
|
+
return { success: true, observation: `Action '${action}' not auto-executable — logged only`, durationMs: Date.now() - start };
|
|
126
|
+
}
|
|
127
|
+
await page.waitForTimeout(300);
|
|
128
|
+
const title = await page.title();
|
|
129
|
+
const url = page.url();
|
|
130
|
+
return { success: true, observation: `Executed. Page: "${title}" (${url})`, durationMs: Date.now() - start };
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
return { success: false, observation: `Action failed: ${e.message}`, durationMs: Date.now() - start };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async function autoDiscoverComponents(page) {
|
|
137
|
+
// Runs in the browser context via page.evaluate — passed as a string
|
|
138
|
+
// to avoid TypeScript DOM type errors in the Node compilation target.
|
|
139
|
+
const script = `(() => {
|
|
140
|
+
const found = [];
|
|
141
|
+
const landmarks = {
|
|
142
|
+
nav: "menu", header: "header", footer: "footer", main: "section",
|
|
143
|
+
aside: "sidebar", form: "form", dialog: "modal", table: "table",
|
|
144
|
+
};
|
|
145
|
+
for (const [tag, type] of Object.entries(landmarks)) {
|
|
146
|
+
document.querySelectorAll(tag).forEach((el, i) => {
|
|
147
|
+
const label = el.getAttribute("aria-label") || el.getAttribute("id") || tag + "_" + i;
|
|
148
|
+
const selector = el.id ? "#" + el.id : tag + ":nth-of-type(" + (i + 1) + ")";
|
|
149
|
+
found.push({
|
|
150
|
+
name: label, type, selector,
|
|
151
|
+
children: el.querySelectorAll("a, button, input, select, textarea, [role='button'], [role='link']").length,
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
const interSel = "button, [role='button'], a[href], input, select, textarea";
|
|
156
|
+
const insideLandmark = new Set();
|
|
157
|
+
for (const tag of Object.keys(landmarks)) {
|
|
158
|
+
document.querySelectorAll(tag).forEach(parent => {
|
|
159
|
+
parent.querySelectorAll(interSel).forEach(child => insideLandmark.add(child));
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
const orphans = [...document.querySelectorAll(interSel)].filter(el => !insideLandmark.has(el));
|
|
163
|
+
if (orphans.length > 0) {
|
|
164
|
+
found.push({ name: "Ungrouped Interactive Elements", type: "section", selector: "body", children: orphans.length });
|
|
165
|
+
}
|
|
166
|
+
return found;
|
|
167
|
+
})()`;
|
|
168
|
+
return page.evaluate(script);
|
|
169
|
+
}
|
|
18
170
|
function buildTreeXml(components, bugs, parentId = null, indent = 0) {
|
|
19
171
|
const children = components.filter(c => c.parent_id === parentId);
|
|
20
172
|
if (children.length === 0)
|
|
@@ -76,7 +228,7 @@ export const uiUxDiveTools = [
|
|
|
76
228
|
// 1. Start a dive session
|
|
77
229
|
{
|
|
78
230
|
name: "start_ui_dive",
|
|
79
|
-
description: "Initialize a UI/UX Full Dive session
|
|
231
|
+
description: "Initialize a UI/UX Full Dive session. Auto-launches a headless Playwright browser if installed (zero setup). Navigates to the app URL and optionally auto-discovers page components from the DOM. If Playwright is not installed, falls back to manual logging mode where you drive the browser yourself (via playwright-mcp, mobile-mcp, or manual browsing) and just use the dive tools for structured logging. Returns the session_id needed by all subsequent tools.",
|
|
80
232
|
inputSchema: {
|
|
81
233
|
type: "object",
|
|
82
234
|
properties: {
|
|
@@ -92,6 +244,14 @@ export const uiUxDiveTools = [
|
|
|
92
244
|
type: "number",
|
|
93
245
|
description: "Number of parallel subagents planned (default: 1, set higher for parallel swarm)",
|
|
94
246
|
},
|
|
247
|
+
headless: {
|
|
248
|
+
type: "boolean",
|
|
249
|
+
description: "Run browser in headless mode (default: true). Set false to see the browser window.",
|
|
250
|
+
},
|
|
251
|
+
autoDiscover: {
|
|
252
|
+
type: "boolean",
|
|
253
|
+
description: "Auto-discover and register page components from the DOM (default: true). Scans for nav, header, footer, forms, modals, tables, sidebars, and interactive elements.",
|
|
254
|
+
},
|
|
95
255
|
metadata: {
|
|
96
256
|
type: "object",
|
|
97
257
|
description: "Optional JSON metadata (e.g. { viewport: '1280x720', auth: 'guest' })",
|
|
@@ -100,25 +260,63 @@ export const uiUxDiveTools = [
|
|
|
100
260
|
required: ["appUrl"],
|
|
101
261
|
},
|
|
102
262
|
handler: async (args) => {
|
|
103
|
-
const { appUrl, appName, agentCount, metadata } = args;
|
|
263
|
+
const { appUrl, appName, agentCount, metadata, headless, autoDiscover } = args;
|
|
104
264
|
const db = getDb();
|
|
105
265
|
const id = genId("dive");
|
|
106
266
|
db.prepare("INSERT INTO ui_dive_sessions (id, app_url, app_name, agent_count, metadata) VALUES (?, ?, ?, ?, ?)").run(id, appUrl, appName ?? null, agentCount ?? 1, metadata ? JSON.stringify(metadata) : null);
|
|
267
|
+
// Try to launch browser
|
|
268
|
+
const browserResult = await ensureBrowser(appUrl, id, headless !== false);
|
|
269
|
+
// Auto-discover components if browser is active
|
|
270
|
+
let discoveredComponents = [];
|
|
271
|
+
const registeredIds = [];
|
|
272
|
+
if (browserResult.page && autoDiscover !== false) {
|
|
273
|
+
try {
|
|
274
|
+
discoveredComponents = await autoDiscoverComponents(browserResult.page);
|
|
275
|
+
// Auto-register discovered components
|
|
276
|
+
for (const comp of discoveredComponents) {
|
|
277
|
+
const compId = genId("comp");
|
|
278
|
+
db.prepare("INSERT INTO ui_dive_components (id, session_id, parent_id, name, component_type, selector, metadata) VALUES (?, ?, ?, ?, ?, ?, ?)").run(compId, id, null, comp.name, comp.type, comp.selector, JSON.stringify({ autoDiscovered: true, interactiveChildren: comp.children }));
|
|
279
|
+
registeredIds.push(compId);
|
|
280
|
+
}
|
|
281
|
+
// Set first as root
|
|
282
|
+
if (registeredIds.length > 0) {
|
|
283
|
+
db.prepare("UPDATE ui_dive_sessions SET root_component_id = ? WHERE id = ?").run(registeredIds[0], id);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
/* auto-discover is best-effort */
|
|
288
|
+
}
|
|
289
|
+
}
|
|
107
290
|
return {
|
|
108
291
|
sessionId: id,
|
|
109
292
|
appUrl,
|
|
110
293
|
appName: appName ?? null,
|
|
111
294
|
agentCount: agentCount ?? 1,
|
|
112
295
|
status: "active",
|
|
113
|
-
|
|
296
|
+
browser: {
|
|
297
|
+
active: !!browserResult.page,
|
|
298
|
+
launched: browserResult.launched,
|
|
299
|
+
mode: browserResult.page ? "auto" : "manual",
|
|
300
|
+
...(browserResult.error ? { setupHint: browserResult.error } : {}),
|
|
301
|
+
},
|
|
302
|
+
autoDiscovery: {
|
|
303
|
+
componentsFound: discoveredComponents.length,
|
|
304
|
+
components: discoveredComponents.map((c, i) => ({
|
|
305
|
+
componentId: registeredIds[i],
|
|
306
|
+
...c,
|
|
307
|
+
})),
|
|
308
|
+
},
|
|
309
|
+
_hint: browserResult.page
|
|
310
|
+
? `Browser launched and ${discoveredComponents.length} components auto-discovered. Use log_interaction with CSS selectors in 'target' — actions will auto-execute in the browser. Call dive_snapshot for screenshots.`
|
|
311
|
+
: `Manual mode: drive the browser yourself and use log_interaction to record what you observe. Install Playwright for auto-execution: npm install playwright && npx playwright install chromium`,
|
|
114
312
|
_workflow: [
|
|
115
|
-
"1.
|
|
116
|
-
"2.
|
|
117
|
-
"3.
|
|
118
|
-
"4.
|
|
119
|
-
"5.
|
|
120
|
-
"6.
|
|
121
|
-
"7.
|
|
313
|
+
"1. Components auto-discovered (or register manually with register_component)",
|
|
314
|
+
"2. Assign subagents: start_component_flow({ componentId, agentId })",
|
|
315
|
+
"3. Each subagent: log_interaction (auto-executes clicks/types if browser active)",
|
|
316
|
+
"4. Tag bugs: tag_ui_bug for any issues found",
|
|
317
|
+
"5. dive_snapshot for visual evidence at any point",
|
|
318
|
+
"6. end_component_flow when each component is done",
|
|
319
|
+
"7. get_dive_report for final comprehensive report",
|
|
122
320
|
],
|
|
123
321
|
};
|
|
124
322
|
},
|
|
@@ -223,52 +421,71 @@ export const uiUxDiveTools = [
|
|
|
223
421
|
};
|
|
224
422
|
},
|
|
225
423
|
},
|
|
226
|
-
// 4. Log an interaction
|
|
424
|
+
// 4. Log an interaction (auto-executes when browser is active)
|
|
227
425
|
{
|
|
228
426
|
name: "log_interaction",
|
|
229
|
-
description: "Log
|
|
427
|
+
description: "Log and optionally auto-execute an interaction step. If the built-in Playwright browser is active (launched by start_ui_dive), the action is automatically executed in the browser — just provide a CSS selector in 'target' and the result/observation are filled in for you. If no browser is active (manual mode), this logs your observation as-is. Actions: click, type, hover, scroll, navigate, submit, keypress, focus, wait, assert.",
|
|
230
428
|
inputSchema: {
|
|
231
429
|
type: "object",
|
|
232
430
|
properties: {
|
|
233
431
|
componentId: { type: "string", description: "Component ID being tested" },
|
|
234
432
|
action: {
|
|
235
433
|
type: "string",
|
|
236
|
-
description: "Interaction type: click, type, hover, scroll, navigate, submit,
|
|
434
|
+
description: "Interaction type: click, type, hover, scroll, navigate, submit, keypress, focus, wait, assert",
|
|
237
435
|
},
|
|
238
|
-
target: { type: "string", description: "
|
|
239
|
-
inputValue: { type: "string", description: "
|
|
436
|
+
target: { type: "string", description: "CSS selector for auto-execution (e.g. '#submit-btn', '[data-testid=email]', 'button:has-text(\"Login\")'), or human-readable description in manual mode" },
|
|
437
|
+
inputValue: { type: "string", description: "Value to type/enter (for type, submit actions), URL (for navigate), pixels (for scroll), key name (for keypress)" },
|
|
240
438
|
result: {
|
|
241
439
|
type: "string",
|
|
242
|
-
description: "Outcome: success, error, unexpected, timeout, crash, no_response, partial",
|
|
440
|
+
description: "Outcome (auto-filled if browser active): success, error, unexpected, timeout, crash, no_response, partial",
|
|
243
441
|
},
|
|
244
442
|
observation: {
|
|
245
443
|
type: "string",
|
|
246
|
-
description: "What happened
|
|
444
|
+
description: "What happened (auto-filled if browser active). Manual mode: describe what you observed.",
|
|
445
|
+
},
|
|
446
|
+
autoExecute: {
|
|
447
|
+
type: "boolean",
|
|
448
|
+
description: "Auto-execute the action in the browser (default: true). Set false to log-only even when browser is active.",
|
|
247
449
|
},
|
|
248
|
-
durationMs: { type: "number", description: "How long the interaction took in ms (
|
|
450
|
+
durationMs: { type: "number", description: "How long the interaction took in ms (auto-filled if browser active)" },
|
|
249
451
|
screenshotRef: { type: "string", description: "Reference to a screenshot capture (optional)" },
|
|
250
452
|
},
|
|
251
|
-
required: ["componentId", "action"
|
|
453
|
+
required: ["componentId", "action"],
|
|
252
454
|
},
|
|
253
455
|
handler: async (args) => {
|
|
254
|
-
const { componentId, action, target, inputValue, result, observation, durationMs, screenshotRef } = args;
|
|
456
|
+
const { componentId, action, target, inputValue, result, observation, autoExecute, durationMs, screenshotRef } = args;
|
|
255
457
|
const db = getDb();
|
|
256
458
|
const comp = db.prepare("SELECT id, session_id, status, interaction_count FROM ui_dive_components WHERE id = ?").get(componentId);
|
|
257
459
|
if (!comp)
|
|
258
460
|
return { error: true, message: `Component not found: ${componentId}` };
|
|
461
|
+
// Auto-execute if browser is active
|
|
462
|
+
let finalResult = result ?? "success";
|
|
463
|
+
let finalObservation = observation ?? "";
|
|
464
|
+
let finalDuration = durationMs ?? null;
|
|
465
|
+
let autoExecuted = false;
|
|
466
|
+
if (_page && _activeSessionId === comp.session_id && autoExecute !== false) {
|
|
467
|
+
const execResult = await executeAction(_page, action, target, inputValue);
|
|
468
|
+
finalResult = execResult.success ? "success" : "error";
|
|
469
|
+
finalObservation = execResult.observation + (observation ? ` | ${observation}` : "");
|
|
470
|
+
finalDuration = execResult.durationMs;
|
|
471
|
+
autoExecuted = true;
|
|
472
|
+
}
|
|
259
473
|
const seqNum = comp.interaction_count + 1;
|
|
260
474
|
const id = genId("int");
|
|
261
475
|
db.prepare(`INSERT INTO ui_dive_interactions (id, session_id, component_id, action, target, input_value, result, observation, screenshot_ref, duration_ms, sequence_num)
|
|
262
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, comp.session_id, componentId, action, target ?? null, inputValue ?? null,
|
|
476
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, comp.session_id, componentId, action, target ?? null, inputValue ?? null, finalResult, finalObservation || null, screenshotRef ?? null, finalDuration, seqNum);
|
|
263
477
|
db.prepare("UPDATE ui_dive_components SET interaction_count = ? WHERE id = ?").run(seqNum, componentId);
|
|
264
478
|
return {
|
|
265
479
|
interactionId: id,
|
|
266
480
|
sequenceNum: seqNum,
|
|
267
481
|
action,
|
|
268
482
|
target: target ?? null,
|
|
269
|
-
result,
|
|
270
|
-
|
|
271
|
-
|
|
483
|
+
result: finalResult,
|
|
484
|
+
observation: finalObservation || null,
|
|
485
|
+
autoExecuted,
|
|
486
|
+
durationMs: finalDuration,
|
|
487
|
+
_hint: finalResult !== "success"
|
|
488
|
+
? `Non-success result (${finalResult}). Consider tagging a bug: tag_ui_bug({ componentId: "${componentId}", interactionId: "${id}", severity: "...", category: "functional", title: "..." })`
|
|
272
489
|
: `Interaction #${seqNum} logged. Continue testing or call end_component_flow when done.`,
|
|
273
490
|
};
|
|
274
491
|
},
|
|
@@ -439,9 +656,12 @@ export const uiUxDiveTools = [
|
|
|
439
656
|
const components = db.prepare("SELECT * FROM ui_dive_components WHERE session_id = ? ORDER BY created_at").all(sessionId);
|
|
440
657
|
const bugs = db.prepare("SELECT b.*, c.name as component_name, c.component_type FROM ui_dive_bugs b JOIN ui_dive_components c ON b.component_id = c.id WHERE b.session_id = ? ORDER BY CASE b.severity WHEN 'critical' THEN 1 WHEN 'high' THEN 2 WHEN 'medium' THEN 3 WHEN 'low' THEN 4 END, b.created_at").all(sessionId);
|
|
441
658
|
const interactions = db.prepare("SELECT i.*, c.name as component_name FROM ui_dive_interactions i JOIN ui_dive_components c ON i.component_id = c.id WHERE i.session_id = ? ORDER BY c.id, i.sequence_num").all(sessionId);
|
|
442
|
-
// Mark session complete
|
|
659
|
+
// Mark session complete and close browser
|
|
443
660
|
if (completeSession !== false) {
|
|
444
661
|
db.prepare("UPDATE ui_dive_sessions SET status = 'completed', completed_at = datetime('now') WHERE id = ?").run(sessionId);
|
|
662
|
+
if (_activeSessionId === sessionId) {
|
|
663
|
+
await closeBrowser();
|
|
664
|
+
}
|
|
445
665
|
}
|
|
446
666
|
// Build per-component summaries
|
|
447
667
|
const componentDetails = components.map(c => {
|
|
@@ -522,5 +742,162 @@ export const uiUxDiveTools = [
|
|
|
522
742
|
};
|
|
523
743
|
},
|
|
524
744
|
},
|
|
745
|
+
// 9. Take a screenshot / accessibility snapshot
|
|
746
|
+
{
|
|
747
|
+
name: "dive_snapshot",
|
|
748
|
+
description: "Capture a screenshot or accessibility snapshot of the current page during a dive session. Requires the built-in Playwright browser to be active (launched by start_ui_dive). Returns the screenshot as an inline image for multimodal agents, or an accessibility tree as text. Use this to capture visual evidence of bugs or document the current state of a component.",
|
|
749
|
+
rawContent: true,
|
|
750
|
+
inputSchema: {
|
|
751
|
+
type: "object",
|
|
752
|
+
properties: {
|
|
753
|
+
sessionId: { type: "string", description: "Dive session ID (verifies browser belongs to this session)" },
|
|
754
|
+
mode: {
|
|
755
|
+
type: "string",
|
|
756
|
+
description: "Capture mode: 'screenshot' (default — full page PNG), 'viewport' (visible area only), 'accessibility' (a11y tree as text)",
|
|
757
|
+
},
|
|
758
|
+
selector: { type: "string", description: "CSS selector to screenshot a specific element (optional — screenshots the element only)" },
|
|
759
|
+
label: { type: "string", description: "Label for this snapshot (e.g. 'after-login', 'error-state', 'mobile-nav-open')" },
|
|
760
|
+
},
|
|
761
|
+
required: ["sessionId"],
|
|
762
|
+
},
|
|
763
|
+
handler: async (args) => {
|
|
764
|
+
const { sessionId, mode, selector, label } = args;
|
|
765
|
+
if (!_page || _activeSessionId !== sessionId) {
|
|
766
|
+
return [{
|
|
767
|
+
type: "text",
|
|
768
|
+
text: JSON.stringify({
|
|
769
|
+
error: true,
|
|
770
|
+
message: "No active browser for this session. Start a dive with start_ui_dive first, or install Playwright: npm install playwright && npx playwright install chromium",
|
|
771
|
+
}),
|
|
772
|
+
}];
|
|
773
|
+
}
|
|
774
|
+
const captureMode = mode ?? "screenshot";
|
|
775
|
+
if (captureMode === "accessibility") {
|
|
776
|
+
try {
|
|
777
|
+
const snapshot = await _page.accessibility.snapshot();
|
|
778
|
+
return [{
|
|
779
|
+
type: "text",
|
|
780
|
+
text: JSON.stringify({
|
|
781
|
+
label: label ?? "accessibility-snapshot",
|
|
782
|
+
pageTitle: await _page.title(),
|
|
783
|
+
pageUrl: _page.url(),
|
|
784
|
+
accessibilityTree: snapshot,
|
|
785
|
+
}, null, 2),
|
|
786
|
+
}];
|
|
787
|
+
}
|
|
788
|
+
catch (e) {
|
|
789
|
+
return [{ type: "text", text: JSON.stringify({ error: true, message: `Accessibility snapshot failed: ${e.message}` }) }];
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
// Screenshot mode
|
|
793
|
+
try {
|
|
794
|
+
const screenshotOpts = {
|
|
795
|
+
type: "png",
|
|
796
|
+
fullPage: captureMode !== "viewport",
|
|
797
|
+
};
|
|
798
|
+
let screenshotBuf;
|
|
799
|
+
if (selector) {
|
|
800
|
+
const el = await _page.$(selector);
|
|
801
|
+
if (!el) {
|
|
802
|
+
return [{ type: "text", text: JSON.stringify({ error: true, message: `Element not found: ${selector}` }) }];
|
|
803
|
+
}
|
|
804
|
+
screenshotBuf = await el.screenshot({ type: "png" });
|
|
805
|
+
}
|
|
806
|
+
else {
|
|
807
|
+
screenshotBuf = await _page.screenshot(screenshotOpts);
|
|
808
|
+
}
|
|
809
|
+
const base64 = screenshotBuf.toString("base64");
|
|
810
|
+
const title = await _page.title();
|
|
811
|
+
const url = _page.url();
|
|
812
|
+
return [
|
|
813
|
+
{
|
|
814
|
+
type: "text",
|
|
815
|
+
text: JSON.stringify({
|
|
816
|
+
label: label ?? `dive-snapshot-${Date.now()}`,
|
|
817
|
+
pageTitle: title,
|
|
818
|
+
pageUrl: url,
|
|
819
|
+
captureMode,
|
|
820
|
+
selector: selector ?? "full page",
|
|
821
|
+
sizeBytes: screenshotBuf.length,
|
|
822
|
+
}),
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
type: "image",
|
|
826
|
+
data: base64,
|
|
827
|
+
mimeType: "image/png",
|
|
828
|
+
},
|
|
829
|
+
];
|
|
830
|
+
}
|
|
831
|
+
catch (e) {
|
|
832
|
+
return [{ type: "text", text: JSON.stringify({ error: true, message: `Screenshot failed: ${e.message}` }) }];
|
|
833
|
+
}
|
|
834
|
+
},
|
|
835
|
+
},
|
|
836
|
+
// 10. Auto-discover components from the current page DOM
|
|
837
|
+
{
|
|
838
|
+
name: "dive_auto_discover",
|
|
839
|
+
description: "Scan the current page DOM and auto-register components in the dive tree. Discovers semantic landmarks (nav, header, footer, forms, modals, tables, sidebars) and counts interactive elements within each. Useful after navigating to a new page during a dive session. Requires the built-in Playwright browser to be active.",
|
|
840
|
+
inputSchema: {
|
|
841
|
+
type: "object",
|
|
842
|
+
properties: {
|
|
843
|
+
sessionId: { type: "string", description: "Dive session ID" },
|
|
844
|
+
parentId: { type: "string", description: "Parent component ID to nest discovered components under (optional — null for top-level)" },
|
|
845
|
+
navigateUrl: { type: "string", description: "Navigate to this URL before discovering (optional — discovers current page if omitted)" },
|
|
846
|
+
},
|
|
847
|
+
required: ["sessionId"],
|
|
848
|
+
},
|
|
849
|
+
handler: async (args) => {
|
|
850
|
+
const { sessionId, parentId, navigateUrl } = args;
|
|
851
|
+
if (!_page || _activeSessionId !== sessionId) {
|
|
852
|
+
return {
|
|
853
|
+
error: true,
|
|
854
|
+
message: "No active browser for this session. Start a dive with start_ui_dive first.",
|
|
855
|
+
setupHint: "npm install playwright && npx playwright install chromium",
|
|
856
|
+
};
|
|
857
|
+
}
|
|
858
|
+
const db = getDb();
|
|
859
|
+
const session = db.prepare("SELECT id, status FROM ui_dive_sessions WHERE id = ?").get(sessionId);
|
|
860
|
+
if (!session)
|
|
861
|
+
return { error: true, message: `Session not found: ${sessionId}` };
|
|
862
|
+
if (session.status !== "active")
|
|
863
|
+
return { error: true, message: `Session is ${session.status}, not active` };
|
|
864
|
+
// Navigate if URL provided
|
|
865
|
+
if (navigateUrl) {
|
|
866
|
+
try {
|
|
867
|
+
await _page.goto(navigateUrl, { waitUntil: "domcontentloaded", timeout: 30000 });
|
|
868
|
+
}
|
|
869
|
+
catch (e) {
|
|
870
|
+
return { error: true, message: `Navigation failed: ${e.message}` };
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
const pageTitle = await _page.title();
|
|
874
|
+
const pageUrl = _page.url();
|
|
875
|
+
try {
|
|
876
|
+
const discovered = await autoDiscoverComponents(_page);
|
|
877
|
+
const registeredIds = [];
|
|
878
|
+
for (const comp of discovered) {
|
|
879
|
+
const compId = genId("comp");
|
|
880
|
+
db.prepare("INSERT INTO ui_dive_components (id, session_id, parent_id, name, component_type, selector, metadata) VALUES (?, ?, ?, ?, ?, ?, ?)").run(compId, sessionId, parentId ?? null, comp.name, comp.type, comp.selector, JSON.stringify({ autoDiscovered: true, interactiveChildren: comp.children, pageUrl, pageTitle }));
|
|
881
|
+
registeredIds.push(compId);
|
|
882
|
+
}
|
|
883
|
+
return {
|
|
884
|
+
pageTitle,
|
|
885
|
+
pageUrl,
|
|
886
|
+
componentsDiscovered: discovered.length,
|
|
887
|
+
components: discovered.map((c, i) => ({
|
|
888
|
+
componentId: registeredIds[i],
|
|
889
|
+
...c,
|
|
890
|
+
})),
|
|
891
|
+
parentId: parentId ?? null,
|
|
892
|
+
_hint: discovered.length > 0
|
|
893
|
+
? `${discovered.length} components auto-registered. Claim them for testing with start_component_flow.`
|
|
894
|
+
: "No semantic landmarks found. Register components manually with register_component.",
|
|
895
|
+
};
|
|
896
|
+
}
|
|
897
|
+
catch (e) {
|
|
898
|
+
return { error: true, message: `Auto-discover failed: ${e.message}` };
|
|
899
|
+
}
|
|
900
|
+
},
|
|
901
|
+
},
|
|
525
902
|
];
|
|
526
903
|
//# sourceMappingURL=uiUxDiveTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiUxDiveTools.js","sourceRoot":"","sources":["../../src/tools/uiUxDiveTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAqDxC,SAAS,YAAY,CACnB,UAA0B,EAC1B,IAAc,EACd,WAA0B,IAAI,EAC9B,SAAiB,CAAC;IAElB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;IAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;QAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,eAAe,GAAG,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhG,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC3B,GAAG,GAAG,oBAAoB,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,QAAQ,CACvG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,WAAW,GAAG,QAAQ,IAAI,MAAM,CAAC;QACvC,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,cAAc,UAAU,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,OAAO,KAAK,CAAC;YAC1H,IAAI,MAAM;gBAAE,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC;YACjC,IAAI,QAAQ;gBAAE,GAAG,IAAI,QAAQ,CAAC;YAC9B,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,cAAc,KAAK,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,cAAc,UAAU,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,OAAO,OAAO,CAAC;QAC9H,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA0B,EAAE,IAAc;IACrE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,6CAA6C,CAAC;IAElF,IAAI,OAAO,GAAG,YAAY,CAAC;IAC3B,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YAC5B,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,EAAE;YAC7C,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,KAAK,WAAW;YACpC,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC;gBAC1C,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAChB,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,EAAE,CAAC;QAEX,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC;QAEvD,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,sDAAsD,CAAC;IAClE,OAAO,IAAI,mDAAmD,CAAC;IAC/D,OAAO,IAAI,kDAAkD,CAAC;IAE9D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4EAA4E;AAE5E,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,0BAA0B;IAC1B;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,wZAAwZ;QAC1Z,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2FAA2F;iBACzG;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kFAAkF;iBAChG;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uEAAuE;iBACrF;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAKjD,CAAC;YAEF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YACnB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAEzB,EAAE,CAAC,OAAO,CACR,oGAAoG,CACrG,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,EAAE,UAAU,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEhG,OAAO;gBACL,SAAS,EAAE,EAAE;gBACb,MAAM;gBACN,OAAO,EAAE,OAAO,IAAI,IAAI;gBACxB,UAAU,EAAE,UAAU,IAAI,CAAC;gBAC3B,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,4FAA4F,EAAE,0HAA0H;gBAC/N,SAAS,EAAE;oBACT,6DAA6D;oBAC7D,wDAAwD;oBACxD,wDAAwD;oBACxD,qEAAqE;oBACrE,uEAAuE;oBACvE,gDAAgD;oBAChD,kFAAkF;iBACnF;aACF,CAAC;QACJ,CAAC;KACF;IAED,sCAAsC;IACtC;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,sYAAsY;QACxY,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;gBAChF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wEAAwE,EAAE;gBAC/G,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4KAA4K;iBAC1L;gBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oDAAoD,EAAE;gBAC/F,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8FAA8F,EAAE;gBACzI,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iEAAiE,EAAE;aAC7G;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC;SACjD;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAOxE,CAAC;YAEF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,0BAA0B;YAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;YACzG,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC;YACjF,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,OAAO,CAAC,MAAM,cAAc,EAAE,CAAC;YAE7G,8BAA8B;YAC9B,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACxH,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,+BAA+B,QAAQ,EAAE,EAAE,CAAC;YAC1F,CAAC;YAED,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACzB,EAAE,CAAC,OAAO,CACR,mIAAmI,CACpI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,IAAI,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE1H,2CAA2C;YAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;gBAClH,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;oBACjC,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBAClG,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B,sFAAsF,CACvF,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,IAAI,IAAI,CAAQ,CAAC;YAE1C,OAAO;gBACL,WAAW,EAAE,EAAE;gBACf,IAAI;gBACJ,aAAa;gBACb,QAAQ,EAAE,QAAQ,IAAI,IAAI;gBAC1B,QAAQ,EAAE,QAAQ,IAAI,IAAI;gBAC1B,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC5B,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,sFAAsF,EAAE,kEAAkE;aAClK,CAAC;QACJ,CAAC;KACF;IAED,iDAAiD;IACjD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,sUAAsU;QACxU,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;gBACpF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sEAAsE,EAAE;aACjH;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAiD,CAAC;YACnF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,2HAA2H,CAC5H,CAAC,GAAG,CAAC,WAAW,CAAQ,CAAC;YAC1B,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,WAAW,EAAE,EAAE,CAAC;YAClF,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBAClC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,uCAAuC,IAAI,CAAC,QAAQ,uCAAuC,EAAE,CAAC;YAC/H,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAChC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,+EAA+E,EAAE,CAAC;YACnH,CAAC;YAED,MAAM,GAAG,GAAG,OAAO,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC7C,EAAE,CAAC,OAAO,CACR,iFAAiF,CAClF,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAExB,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CACzB,qFAAqF,CACtF,CAAC,GAAG,CAAC,WAAW,CAAU,CAAC;YAE5B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW;gBACX,OAAO,EAAE,GAAG;gBACZ,SAAS,EAAE;oBACT,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,cAAc;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ,EAAE,IAAI,CAAC,SAAS;iBACzB;gBACD,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAC/C,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxG,KAAK,EAAE,4EAA4E,WAAW,2IAA2I;aAC1O,CAAC;QACJ,CAAC;KACF;IAED,wBAAwB;IACxB;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,iUAAiU;QACnU,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBACzE,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0HAA0H;iBACxI;gBACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uFAAuF,EAAE;gBAChI,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oEAAoE,EAAE;gBACjH,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2EAA2E;iBACzF;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6HAA6H;iBAC3I;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;gBAC7F,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;aAC/F;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC;SAC9C;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,IASnG,CAAC;YAEF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,uFAAuF,CACxF,CAAC,GAAG,CAAC,WAAW,CAAQ,CAAC;YAC1B,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,WAAW,EAAE,EAAE,CAAC;YAElF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAExB,EAAE,CAAC,OAAO,CACR;kDAC0C,CAC3C,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,EAAE,WAAW,IAAI,IAAI,EAAE,aAAa,IAAI,IAAI,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;YAEpK,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAExG,OAAO;gBACL,aAAa,EAAE,EAAE;gBACjB,WAAW,EAAE,MAAM;gBACnB,MAAM;gBACN,MAAM,EAAE,MAAM,IAAI,IAAI;gBACtB,MAAM;gBACN,KAAK,EAAE,MAAM,KAAK,SAAS;oBACzB,CAAC,CAAC,uBAAuB,MAAM,yDAAyD,WAAW,sBAAsB,EAAE,6DAA6D;oBACxL,CAAC,CAAC,gBAAgB,MAAM,iEAAiE;aAC5F,CAAC;QACJ,CAAC;KACF;IAED,0BAA0B;IAC1B;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,+OAA+O;QACjP,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACxE,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iIAAiI;iBAC/I;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;SACrC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAgD,CAAC;YAClF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,gGAAgG,CACjG,CAAC,GAAG,CAAC,WAAW,CAAQ,CAAC;YAC1B,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,WAAW,EAAE,EAAE,CAAC;YAElF,EAAE,CAAC,OAAO,CACR,8GAA8G,CAC/G,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAE5B,yBAAyB;YACzB,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAQ,CAAC;YAC1H,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,4FAA4F,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAQ,CAAC;YACvJ,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAQ,CAAC;YAExH,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,WAAW;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;gBACxC,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,OAAO;gBACP,eAAe,EAAE;oBACf,mBAAmB,EAAE,SAAS,CAAC,CAAC;oBAChC,eAAe,EAAE,KAAK,CAAC,CAAC;oBACxB,mBAAmB,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;oBAC1C,cAAc,EAAE,SAAS,CAAC,CAAC;iBAC5B;gBACD,KAAK,EAAE,SAAS,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;oBAC5B,CAAC,CAAC,sFAAsF,IAAI,CAAC,UAAU,MAAM;oBAC7G,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,6FAA6F;aAC1H,CAAC;QACJ,CAAC;KACF;IAED,eAAe;IACf;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,iTAAiT;QACnT,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBACjF,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wDAAwD,EAAE;gBACxG,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBACtF,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wOAAwO;iBACtP;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+DAA+D,EAAE;gBACvG,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAC/E,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBAChE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;aACvG;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;SAC3D;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAU/G,CAAC;YAEF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAQ,CAAC;YACzH,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,WAAW,EAAE,EAAE,CAAC;YAElF,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,EAAE,CAAC,OAAO,CACR;kDAC0C,CAC3C,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,IAAI,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,IAAI,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC,CAAC;YAExK,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACvC,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAErG,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,yFAAyF,CAC1F,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAU,CAAC;YAEhC,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,QAAQ;gBACR,QAAQ;gBACR,KAAK;gBACL,iBAAiB,EAAE,WAAW;gBAC9B,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9E,KAAK,EAAE,mFAAmF;aAC3F,CAAC;QACJ,CAAC;KACF;IAED,4BAA4B;IAC5B;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,wSAAwS;QAC1S,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBAC7D,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sGAAsG;iBACpH;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAA8C,CAAC;YAC7E,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;YAChG,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC;YAEjF,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAC3B,2EAA2E,CAC5E,CAAC,GAAG,CAAC,SAAS,CAAmB,CAAC;YAEnC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,qEAAqE,CACtE,CAAC,GAAG,CAAC,SAAS,CAAa,CAAC;YAE7B,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC;YAE7B,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;YAC1E,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,MAAM,CAAC;YAC7E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;YAEtE,MAAM,MAAM,GAA4B;gBACtC,OAAO,EAAE;oBACP,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,MAAM,EAAE,OAAO,CAAC,OAAO;oBACvB,OAAO,EAAE,OAAO,CAAC,QAAQ;oBACzB,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;gBACD,KAAK,EAAE;oBACL,eAAe,EAAE,UAAU,CAAC,MAAM;oBAClC,SAAS;oBACT,UAAU;oBACV,OAAO;oBACP,SAAS,EAAE,IAAI,CAAC,MAAM;oBACtB,cAAc,EAAE,MAAM,CAAC,WAAW,CAChC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;yBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;yBACxD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAE,CAAY,GAAG,CAAC,CAAC,CACxC;iBACF;aACF,CAAC;YAEF,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACpC,MAAM,GAAG,GAAG,cAAc,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,OAAO,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;gBAC7I,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;YACvB,CAAC;YAED,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACxC,MAAM,CAAC,cAAc,GAAG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IAED,2BAA2B;IAC3B;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,2VAA2V;QAC7V,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBAC7D,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+CAA+C,EAAE;aACnG;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,IAAwD,CAAC;YAChG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;YAChG,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC;YAEjF,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAC3B,2EAA2E,CAC5E,CAAC,GAAG,CAAC,SAAS,CAAmB,CAAC;YAEnC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,kRAAkR,CACnR,CAAC,GAAG,CAAC,SAAS,CAAU,CAAC;YAE1B,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B,0KAA0K,CAC3K,CAAC,GAAG,CAAC,SAAS,CAAU,CAAC;YAE1B,wBAAwB;YACxB,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;gBAC9B,EAAE,CAAC,OAAO,CAAC,+FAA+F,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7H,CAAC;YAED,gCAAgC;YAChC,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/E,OAAO;oBACL,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,cAAc;oBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,KAAK,EAAE,CAAC,CAAC,QAAQ;oBACjB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,gBAAgB,EAAE,aAAa,CAAC,MAAM;oBACtC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;wBAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;qBACjB,CAAC,CAAC;oBACH,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;wBAC3C,GAAG,EAAE,CAAC,CAAC,YAAY;wBACnB,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;YAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;YAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;YAEvE,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1F,CAAC,CAAC,CAAC,CAAC;YAEN,MAAM,OAAO,GAAG,cAAc,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,OAAO,YAAY,CAAC,UAAU,EAAE,IAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC7J,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,EAAE,IAAgB,CAAC,CAAC;YAElE,OAAO;gBACL,MAAM,EAAE;oBACN,KAAK,EAAE,2BAA2B,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE;oBACvE,MAAM,EAAE,OAAO,CAAC,OAAO;oBACvB,SAAS;oBACT,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACrC,WAAW;oBACX,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;iBACzH;gBACD,OAAO,EAAE;oBACP,eAAe,EAAE,UAAU,CAAC,MAAM;oBAClC,mBAAmB,EAAE,SAAS;oBAC9B,iBAAiB,EAAE,YAAY,CAAC,MAAM;oBACtC,SAAS,EAAE,IAAI,CAAC,MAAM;oBACtB,cAAc,EAAE;wBACd,QAAQ,EAAE,YAAY;wBACtB,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM;wBAC/D,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM;qBAC1D;oBACD,cAAc,EAAE,MAAM,CAAC,WAAW,CAChC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxD,GAAG;wBACH,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,MAAM;qBACnD,CAAC,CACH;oBACD,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAClF;gBACD,OAAO;gBACP,cAAc,EAAE,OAAO;gBACvB,UAAU,EAAE,gBAAgB;gBAC5B,eAAe,EAAE;oBACf,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,YAAY,iDAAiD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChH,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,QAAQ,4DAA4D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjH,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,SAAS,gEAAgE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5I,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,yFAAyF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,6EAA6E,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjJ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,kFAAkF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpJ;aACF,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"uiUxDiveTools.js","sourceRoot":"","sources":["../../src/tools/uiUxDiveTools.ts"],"names":[],"mappings":"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"}
|