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.
@@ -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 for comprehensive app traversal. Creates a session that tracks all components, interactions, and bugs. The main agent should call this first, then register_component for each top-level page/section discovered. Subagents can then claim individual components via start_component_flow for isolated parallel traversal. Returns the session_id needed by all subsequent tools.",
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
- _hint: `Session created. Now register top-level components with register_component({ sessionId: "${id}", name: "...", componentType: "page" }). For parallel swarm: assign each subagent a component via start_component_flow.`,
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. Navigate to appUrl and identify top-level pages/sections",
116
- "2. register_component for each (componentType: 'page')",
117
- "3. For each page, register child sections/forms/modals",
118
- "4. Assign subagents: start_component_flow({ componentId, agentId })",
119
- "5. Each subagent: log_interaction + tag_ui_bug within their component",
120
- "6. Each subagent: end_component_flow when done",
121
- "7. Main agent: get_dive_tree for full overview, get_dive_report for final report",
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 a single interaction step within a component flow. Each interaction records what action was taken, what happened, and any observations. Actions: click, type, hover, scroll, navigate, submit, drag, keypress, swipe, focus, blur, resize, wait, assert. Interactions are auto-numbered sequentially within each component.",
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, drag, keypress, swipe, focus, blur, resize, wait, assert",
434
+ description: "Interaction type: click, type, hover, scroll, navigate, submit, keypress, focus, wait, assert",
237
435
  },
238
- target: { type: "string", description: "What was interacted with (e.g. 'Submit button', 'Email input field', 'Dropdown menu')" },
239
- inputValue: { type: "string", description: "What was typed/selected/entered (for type, submit, select actions)" },
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 after the interaction (e.g. 'Form submitted, redirected to dashboard', 'Error toast appeared: Invalid email')",
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 (optional)" },
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", "result"],
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, result, observation ?? null, screenshotRef ?? null, durationMs ?? null, seqNum);
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
- _hint: result !== "success"
271
- ? `Non-success result (${result}). Consider tagging a bug: tag_ui_bug({ componentId: "${componentId}", interactionId: "${id}", severity: "...", category: "functional", title: "..." })`
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":"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"}
1
+ {"version":3,"file":"uiUxDiveTools.js","sourceRoot":"","sources":["../../src/tools/uiUxDiveTools.ts"],"names":[],"mappings":"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"}