@tangle-network/browser-agent-driver 0.21.0 → 0.23.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 (58) hide show
  1. package/dist/brain/index.d.ts +21 -0
  2. package/dist/brain/index.d.ts.map +1 -1
  3. package/dist/brain/index.js +462 -34
  4. package/dist/brain/index.js.map +1 -1
  5. package/dist/browser-launch.d.ts +2 -0
  6. package/dist/browser-launch.d.ts.map +1 -1
  7. package/dist/browser-launch.js +12 -5
  8. package/dist/browser-launch.js.map +1 -1
  9. package/dist/captcha.d.ts +0 -7
  10. package/dist/captcha.d.ts.map +1 -1
  11. package/dist/captcha.js +113 -4
  12. package/dist/captcha.js.map +1 -1
  13. package/dist/cli.js +69 -13
  14. package/dist/cli.js.map +1 -1
  15. package/dist/config.d.ts +9 -0
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/config.js +2 -0
  18. package/dist/config.js.map +1 -1
  19. package/dist/drivers/cursor-overlay.d.ts +1 -1
  20. package/dist/drivers/cursor-overlay.d.ts.map +1 -1
  21. package/dist/drivers/cursor-overlay.js +21 -9
  22. package/dist/drivers/cursor-overlay.js.map +1 -1
  23. package/dist/drivers/extract-with-index.d.ts +45 -0
  24. package/dist/drivers/extract-with-index.d.ts.map +1 -0
  25. package/dist/drivers/extract-with-index.js +141 -0
  26. package/dist/drivers/extract-with-index.js.map +1 -0
  27. package/dist/drivers/playwright.d.ts +7 -0
  28. package/dist/drivers/playwright.d.ts.map +1 -1
  29. package/dist/drivers/playwright.js +232 -1
  30. package/dist/drivers/playwright.js.map +1 -1
  31. package/dist/drivers/som-overlay.d.ts +36 -0
  32. package/dist/drivers/som-overlay.d.ts.map +1 -0
  33. package/dist/drivers/som-overlay.js +109 -0
  34. package/dist/drivers/som-overlay.js.map +1 -0
  35. package/dist/drivers/types.d.ts +2 -0
  36. package/dist/drivers/types.d.ts.map +1 -1
  37. package/dist/recovery.d.ts.map +1 -1
  38. package/dist/recovery.js +2 -0
  39. package/dist/recovery.js.map +1 -1
  40. package/dist/run-state.d.ts +27 -1
  41. package/dist/run-state.d.ts.map +1 -1
  42. package/dist/run-state.js +40 -1
  43. package/dist/run-state.js.map +1 -1
  44. package/dist/runner/runner.d.ts +21 -0
  45. package/dist/runner/runner.d.ts.map +1 -1
  46. package/dist/runner/runner.js +282 -14
  47. package/dist/runner/runner.js.map +1 -1
  48. package/dist/supervisor/critic.d.ts.map +1 -1
  49. package/dist/supervisor/critic.js +1 -0
  50. package/dist/supervisor/critic.js.map +1 -1
  51. package/dist/supervisor/policy.js +10 -0
  52. package/dist/supervisor/policy.js.map +1 -1
  53. package/dist/test-runner.d.ts.map +1 -1
  54. package/dist/test-runner.js +8 -3
  55. package/dist/test-runner.js.map +1 -1
  56. package/dist/types.d.ts +70 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/package.json +3 -1
@@ -13,9 +13,76 @@ import { ANALYTICS_PATTERNS, IMAGE_PATTERNS, MEDIA_PATTERNS } from './block-patt
13
13
  import { buildCdpSnapshot } from './cdp-snapshot.js';
14
14
  import { getPageMetadata } from './cdp-page-state.js';
15
15
  import { CURSOR_OVERLAY_INIT_SCRIPT } from './cursor-overlay.js';
16
+ import { runExtractWithIndex, formatExtractWithIndexResult } from './extract-with-index.js';
17
+ import { SOM_INJECT_SCRIPT, SOM_REMOVE_SCRIPT } from './som-overlay.js';
16
18
  function isPointerInterceptError(error) {
17
19
  return /intercepts pointer events|subtree intercepts pointer events|not receiving pointer events/i.test(error);
18
20
  }
21
+ // ---------------------------------------------------------------------------
22
+ // Mouse humanization — Bezier curve movement with gaussian jitter
23
+ // ---------------------------------------------------------------------------
24
+ /** Cubic bezier interpolation for a single axis */
25
+ function cubicBezier(t, p0, p1, p2, p3) {
26
+ const u = 1 - t;
27
+ return u * u * u * p0 + 3 * u * u * t * p1 + 3 * u * t * t * p2 + t * t * t * p3;
28
+ }
29
+ /** Generate Bezier control points with human-like overshoot */
30
+ function bezierControlPoints(x0, y0, x1, y1) {
31
+ const dx = x1 - x0;
32
+ const dy = y1 - y0;
33
+ // Control points offset perpendicular to the line + slight overshoot
34
+ const spread = Math.max(30, Math.sqrt(dx * dx + dy * dy) * 0.3);
35
+ const angle = Math.atan2(dy, dx);
36
+ const perpAngle = angle + Math.PI / 2;
37
+ const jitter1 = (Math.random() - 0.5) * spread;
38
+ const jitter2 = (Math.random() - 0.5) * spread;
39
+ return {
40
+ cp1x: x0 + dx * 0.25 + Math.cos(perpAngle) * jitter1,
41
+ cp1y: y0 + dy * 0.25 + Math.sin(perpAngle) * jitter1,
42
+ cp2x: x0 + dx * 0.75 + Math.cos(perpAngle) * jitter2,
43
+ cp2y: y0 + dy * 0.75 + Math.sin(perpAngle) * jitter2,
44
+ };
45
+ }
46
+ /** Gaussian-distributed click offset — never hits exact center */
47
+ function gaussianOffset(size) {
48
+ const sigma = size * 0.15;
49
+ // Box-Muller transform
50
+ const u1 = Math.random() || 0.001;
51
+ const u2 = Math.random();
52
+ return Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2) * sigma;
53
+ }
54
+ /**
55
+ * Move the real mouse along a Bezier curve from current position to target.
56
+ * Generates 8-15 intermediate points with velocity-based timing (fast in
57
+ * middle, slow at endpoints). Total duration 150-400ms.
58
+ */
59
+ async function humanMouseMove(page, targetX, targetY) {
60
+ // Get current mouse position (approximate from last known or viewport center)
61
+ const viewport = page.viewportSize();
62
+ const startX = viewport ? viewport.width / 2 : 512;
63
+ const startY = viewport ? viewport.height / 2 : 384;
64
+ const { cp1x, cp1y, cp2x, cp2y } = bezierControlPoints(startX, startY, targetX, targetY);
65
+ const steps = 8 + Math.floor(Math.random() * 8); // 8-15 points
66
+ const totalMs = 150 + Math.floor(Math.random() * 250); // 150-400ms
67
+ for (let i = 1; i <= steps; i++) {
68
+ const t = i / steps;
69
+ // Ease-in-out timing (slow start/end, fast middle)
70
+ const eased = t < 0.5
71
+ ? 2 * t * t
72
+ : -1 + (4 - 2 * t) * t;
73
+ const x = cubicBezier(eased, startX, cp1x, cp2x, targetX);
74
+ const y = cubicBezier(eased, startY, cp1y, cp2y, targetY);
75
+ await page.mouse.move(x, y);
76
+ if (i < steps) {
77
+ const stepDelay = Math.max(1, Math.floor(totalMs / steps * (0.5 + Math.random())));
78
+ await page.waitForTimeout(stepDelay);
79
+ }
80
+ }
81
+ }
82
+ // Gen 13: Virtual screen dimensions for vision-first coordinate actions.
83
+ // Claude's computer-use training uses 1024x768. Screenshots are resized to
84
+ // this before being sent, and coordinate outputs are in this space.
85
+ const VIRTUAL_SCREEN = { width: 1024, height: 768 };
19
86
  export class PlaywrightDriver {
20
87
  page;
21
88
  options;
@@ -30,6 +97,8 @@ export class PlaywrightDriver {
30
97
  * the init script. Undefined if showCursor is off.
31
98
  */
32
99
  cursorInstallPromise;
100
+ /** Gen 23: SoM element map from last observe — used to resolve clickLabel/typeLabel */
101
+ somElements = [];
33
102
  constructor(page, options = {}) {
34
103
  this.page = page;
35
104
  this.options = options;
@@ -103,6 +172,30 @@ export class PlaywrightDriver {
103
172
  // Overlay is purely cosmetic — never let it break the action
104
173
  }
105
174
  }
175
+ /**
176
+ * Animate cursor to raw (x, y) coordinates — for clickAt/typeAt actions.
177
+ * Same visual effect as animateCursorToSelector but without needing a locator.
178
+ */
179
+ async animateCursorToCoord(x, y, label) {
180
+ if (!this.options.showCursor)
181
+ return;
182
+ if (this.cursorInstallPromise) {
183
+ await this.cursorInstallPromise.catch(() => undefined);
184
+ }
185
+ try {
186
+ await this.page.evaluate(({ cx, cy, lbl }) => {
187
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
188
+ const ov = window.__bad_overlay;
189
+ if (!ov)
190
+ return;
191
+ ov.moveTo(cx, cy, lbl);
192
+ ov.pulseClick(cx, cy);
193
+ }, { cx: x, cy: y, lbl: label }).catch(() => { });
194
+ }
195
+ catch {
196
+ // Cosmetic — never break the action
197
+ }
198
+ }
106
199
  /** Get phase-level timing from the last observe() call */
107
200
  getLastTiming() {
108
201
  return this.lastTiming;
@@ -259,6 +352,20 @@ export class PlaywrightDriver {
259
352
  snapshotText += `\n [data-testid="${el.testId}"] ${el.tag}${text}${disabled}`;
260
353
  }
261
354
  }
355
+ // Gen 23: SoM overlay — inject numbered labels, screenshot, remove.
356
+ // Only when visionStrategy is 'always' (vision/hybrid mode).
357
+ const useSom = captureScreenshot && this.options.visionStrategy === 'always';
358
+ if (useSom) {
359
+ try {
360
+ this.somElements = await this.page.evaluate(SOM_INJECT_SCRIPT);
361
+ }
362
+ catch {
363
+ this.somElements = [];
364
+ }
365
+ }
366
+ else {
367
+ this.somElements = [];
368
+ }
262
369
  // Screenshot still via Playwright (viewport compositing)
263
370
  const ssStart = performance.now();
264
371
  let screenshot;
@@ -267,6 +374,10 @@ export class PlaywrightDriver {
267
374
  screenshot = buf.toString('base64');
268
375
  }
269
376
  const screenshotMs = performance.now() - ssStart;
377
+ // Remove SoM overlay after screenshot
378
+ if (useSom) {
379
+ await this.page.evaluate(SOM_REMOVE_SCRIPT).catch(() => { });
380
+ }
270
381
  const snapshotDiff = this.snapshot.getDiff();
271
382
  const snapshotDiffRaw = this.snapshot.getRawDiff();
272
383
  this.lastTiming = {
@@ -365,6 +476,12 @@ export class PlaywrightDriver {
365
476
  const locator = this.snapshot.resolveLocator(this.page, action.selector);
366
477
  const bounds = await this.captureBounds(locator);
367
478
  await this.animateCursorToSelector(action.selector, 'click');
479
+ // Human-like mouse movement to the target before clicking
480
+ if (bounds) {
481
+ const targetX = bounds.x + bounds.width / 2 + gaussianOffset(bounds.width);
482
+ const targetY = bounds.y + bounds.height / 2 + gaussianOffset(bounds.height);
483
+ await humanMouseMove(this.page, targetX, targetY);
484
+ }
368
485
  // Listen for popups but don't block: collect any that fire during the click
369
486
  let popupPage = null;
370
487
  const onPopup = (page) => { popupPage = page; };
@@ -487,6 +604,16 @@ export class PlaywrightDriver {
487
604
  : JSON.stringify(scriptResult, null, 2);
488
605
  return { success: true, error: undefined, data: stringified };
489
606
  }
607
+ case 'extractWithIndex': {
608
+ // Gen 10: numbered DOM-index extraction. Returns the formatted match
609
+ // list as `data` so executePlan can capture it like runScript does.
610
+ // The per-action loop has its own intercept (runner.ts) so this
611
+ // path is only hit when extractWithIndex appears in a planner-
612
+ // emitted Plan step.
613
+ const matches = await runExtractWithIndex(this.page, action.query, action.contains);
614
+ const formatted = formatExtractWithIndexResult(matches, action.query, action.contains);
615
+ return { success: true, error: undefined, data: formatted };
616
+ }
490
617
  case 'evaluate':
491
618
  case 'verifyPreview':
492
619
  // Handled by the runner — the driver just acknowledges it.
@@ -519,7 +646,8 @@ export class PlaywrightDriver {
519
646
  if (firstSelector) {
520
647
  await this.animateCursorToSelector(firstSelector, 'type');
521
648
  }
522
- for (const [ref, text] of fieldEntries) {
649
+ for (let fi = 0; fi < fieldEntries.length; fi++) {
650
+ const [ref, text] = fieldEntries[fi];
523
651
  try {
524
652
  const locator = this.snapshot.resolveLocator(this.page, ref);
525
653
  const bounds = await this.captureBounds(locator);
@@ -533,6 +661,12 @@ export class PlaywrightDriver {
533
661
  el.dispatchEvent(new Event('change', { bubbles: true }));
534
662
  });
535
663
  });
664
+ // Gen 27: settle delay between fields. Complex forms (Google
665
+ // Flights, Booking) use framework-managed state that needs time
666
+ // to process each field before the next one is filled.
667
+ if (fi < fieldEntries.length - 1) {
668
+ await this.page.waitForTimeout(150);
669
+ }
536
670
  }
537
671
  catch (err) {
538
672
  const message = err instanceof Error ? err.message : String(err);
@@ -565,6 +699,62 @@ export class PlaywrightDriver {
565
699
  return { success: false, error: `fill check ${ref}: ${message}` };
566
700
  }
567
701
  }
702
+ // Gen 27: post-fill verification. Read back field values to detect
703
+ // silent form resets (e.g., Google Flights wiping fields on state change).
704
+ // Report mismatches so the agent can switch to keyboard-only filling.
705
+ if (fieldEntries.length > 0) {
706
+ await this.page.waitForTimeout(200); // let framework settle
707
+ const mismatches = [];
708
+ for (const [ref, expectedText] of fieldEntries) {
709
+ try {
710
+ const locator = this.snapshot.resolveLocator(this.page, ref);
711
+ const actualValue = await locator.inputValue({ timeout: 2000 }).catch(() => locator.evaluate((el) => {
712
+ if ('value' in el)
713
+ return el.value;
714
+ return el.textContent?.trim() || '';
715
+ }).catch(() => ''));
716
+ const expected = expectedText.toLowerCase().trim();
717
+ const actual = (actualValue || '').toLowerCase().trim();
718
+ if (actual && expected && !actual.includes(expected) && !expected.includes(actual)) {
719
+ mismatches.push(`${ref}: expected "${expectedText}" but got "${actualValue}"`);
720
+ }
721
+ }
722
+ catch { /* skip verification for inaccessible fields */ }
723
+ }
724
+ if (mismatches.length > 0) {
725
+ // Auto-retry mismatched fields with keyboard-mode:
726
+ // click → triple-click (select all) → type → short wait.
727
+ // This fires individual key events that framework components handle
728
+ // better than locator.fill()'s programmatic value assignment.
729
+ const retried = [];
730
+ for (const mismatch of mismatches) {
731
+ const ref = mismatch.split(':')[0];
732
+ const entry = fieldEntries.find(([r]) => r === ref);
733
+ if (!entry)
734
+ continue;
735
+ try {
736
+ const locator = this.snapshot.resolveLocator(this.page, ref);
737
+ await locator.click({ timeout: 3000 });
738
+ // Select all existing text
739
+ await this.page.keyboard.press('Control+a');
740
+ await this.page.waitForTimeout(50);
741
+ // Type character-by-character to fire proper key events
742
+ await this.page.keyboard.type(entry[1], { delay: 30 });
743
+ await this.page.waitForTimeout(300);
744
+ retried.push(ref);
745
+ }
746
+ catch { /* skip failed retries */ }
747
+ }
748
+ const retriedNote = retried.length > 0
749
+ ? ` Auto-retried ${retried.length} field(s) with keyboard input.`
750
+ : '';
751
+ return {
752
+ success: true,
753
+ ...(lastBounds ? { bounds: lastBounds } : {}),
754
+ warning: `FORM RESET DETECTED: ${mismatches.length}/${fieldEntries.length} field(s) did not retain values.${retriedNote} If fields are still wrong, use keyboard-only interaction (click field → type → Enter to confirm autocomplete → Tab to next).`,
755
+ };
756
+ }
757
+ }
568
758
  return { success: true, ...(lastBounds ? { bounds: lastBounds } : {}) };
569
759
  }
570
760
  case 'clickSequence': {
@@ -600,6 +790,47 @@ export class PlaywrightDriver {
600
790
  }
601
791
  return { success: true, ...(lastBounds ? { bounds: lastBounds } : {}) };
602
792
  }
793
+ // Gen 13: Vision-first coordinate-based actions.
794
+ // Bounds use a 40×40 box centered on the click point so the
795
+ // bad-app ClickOverlay renders a visible highlight + ripple.
796
+ case 'clickAt': {
797
+ const viewport = this.page.viewportSize() ?? { width: 1920, height: 1080 };
798
+ const actualX = Math.round(action.x * (viewport.width / VIRTUAL_SCREEN.width));
799
+ const actualY = Math.round(action.y * (viewport.height / VIRTUAL_SCREEN.height));
800
+ await this.animateCursorToCoord(actualX, actualY, 'clickAt');
801
+ await humanMouseMove(this.page, actualX, actualY);
802
+ await this.page.mouse.click(actualX, actualY);
803
+ return { success: true, bounds: { x: actualX - 20, y: actualY - 20, width: 40, height: 40 } };
804
+ }
805
+ case 'typeAt': {
806
+ const viewport = this.page.viewportSize() ?? { width: 1920, height: 1080 };
807
+ const actualX = Math.round(action.x * (viewport.width / VIRTUAL_SCREEN.width));
808
+ const actualY = Math.round(action.y * (viewport.height / VIRTUAL_SCREEN.height));
809
+ await this.animateCursorToCoord(actualX, actualY, 'typeAt');
810
+ await this.page.mouse.click(actualX, actualY);
811
+ await this.page.waitForTimeout(100);
812
+ await this.page.keyboard.type(action.text);
813
+ return { success: true, bounds: { x: actualX - 20, y: actualY - 20, width: 40, height: 40 } };
814
+ }
815
+ // Gen 23: SoM label-based actions — resolve label → element center → click
816
+ case 'clickLabel': {
817
+ const el = this.somElements.find(e => e.label === action.label);
818
+ if (!el)
819
+ return { success: false, error: `SoM label [${action.label}] not found (${this.somElements.length} elements available)` };
820
+ await this.animateCursorToCoord(el.cx, el.cy, `[${action.label}]`);
821
+ await this.page.mouse.click(el.cx, el.cy);
822
+ return { success: true, bounds: { x: el.x, y: el.y, width: el.width, height: el.height } };
823
+ }
824
+ case 'typeLabel': {
825
+ const el = this.somElements.find(e => e.label === action.label);
826
+ if (!el)
827
+ return { success: false, error: `SoM label [${action.label}] not found` };
828
+ await this.animateCursorToCoord(el.cx, el.cy, `[${action.label}]`);
829
+ await this.page.mouse.click(el.cx, el.cy);
830
+ await this.page.waitForTimeout(100);
831
+ await this.page.keyboard.type(action.text);
832
+ return { success: true, bounds: { x: el.x, y: el.y, width: el.width, height: el.height } };
833
+ }
603
834
  default:
604
835
  return { success: false, error: `Unknown action: ${action.action}` };
605
836
  }
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../../src/drivers/playwright.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../../src/drivers/playwright.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Set-of-Marks (SoM) overlay — inject numbered labels on interactive elements
3
+ * before taking a screenshot. The LLM sees labeled elements and outputs
4
+ * "click [N]" instead of guessing pixel coordinates.
5
+ *
6
+ * Gen 23: eliminates coordinate guessing on complex UIs (Google Flights date
7
+ * pickers, Booking form fields). The overlay is injected, screenshot taken,
8
+ * then removed — it never persists in the page.
9
+ *
10
+ * Returns a mapping of label number → element bounding box center so the
11
+ * runner can translate "click [3]" → mouse.click(x, y).
12
+ */
13
+ export interface SomElement {
14
+ label: number;
15
+ x: number;
16
+ y: number;
17
+ width: number;
18
+ height: number;
19
+ cx: number;
20
+ cy: number;
21
+ tag: string;
22
+ text: string;
23
+ role: string;
24
+ }
25
+ /**
26
+ * JavaScript to inject into the page that:
27
+ * 1. Finds all interactive elements
28
+ * 2. Draws numbered badges on them
29
+ * 3. Returns the element map
30
+ *
31
+ * Must be run via page.evaluate() and returns SomElement[].
32
+ */
33
+ export declare const SOM_INJECT_SCRIPT = "\n(() => {\n const INTERACTIVE = 'a, button, input, select, textarea, [role=\"button\"], [role=\"link\"], [role=\"tab\"], [role=\"menuitem\"], [role=\"option\"], [role=\"checkbox\"], [role=\"radio\"], [role=\"searchbox\"], [role=\"combobox\"], [role=\"textbox\"], [tabindex]';\n\n // Find visible interactive elements\n const elements = Array.from(document.querySelectorAll(INTERACTIVE))\n .filter(el => {\n const rect = el.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return false;\n if (rect.bottom < 0 || rect.top > window.innerHeight) return false;\n if (rect.right < 0 || rect.left > window.innerWidth) return false;\n const style = getComputedStyle(el);\n if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') return false;\n return true;\n })\n .slice(0, 50); // Cap at 50 to avoid overwhelming the screenshot\n\n // Create overlay container\n const container = document.createElement('div');\n container.id = '__bad_som_overlay';\n container.style.cssText = 'position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2147483646';\n document.body.appendChild(container);\n\n const result = [];\n\n elements.forEach((el, i) => {\n const rect = el.getBoundingClientRect();\n const label = i + 1;\n\n // Badge\n const badge = document.createElement('div');\n badge.style.cssText = [\n 'position:fixed',\n 'background:#e11d48',\n 'color:#fff',\n 'font:bold 11px/16px system-ui',\n 'padding:0 4px',\n 'border-radius:3px',\n 'z-index:2147483647',\n 'pointer-events:none',\n 'min-width:16px',\n 'text-align:center',\n 'box-shadow:0 1px 3px rgba(0,0,0,0.3)',\n ].join(';');\n badge.style.left = Math.max(0, rect.left - 2) + 'px';\n badge.style.top = Math.max(0, rect.top - 18) + 'px';\n badge.textContent = String(label);\n container.appendChild(badge);\n\n // Light border around element\n const highlight = document.createElement('div');\n highlight.style.cssText = [\n 'position:fixed',\n 'border:1.5px solid #e11d4880',\n 'border-radius:2px',\n 'pointer-events:none',\n 'z-index:2147483646',\n ].join(';');\n highlight.style.left = rect.left + 'px';\n highlight.style.top = rect.top + 'px';\n highlight.style.width = rect.width + 'px';\n highlight.style.height = rect.height + 'px';\n container.appendChild(highlight);\n\n result.push({\n label,\n x: Math.round(rect.left),\n y: Math.round(rect.top),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n cx: Math.round(rect.left + rect.width / 2),\n cy: Math.round(rect.top + rect.height / 2),\n tag: el.tagName.toLowerCase(),\n text: (el.textContent || el.getAttribute('aria-label') || el.getAttribute('placeholder') || '').trim().slice(0, 40),\n role: el.getAttribute('role') || el.tagName.toLowerCase(),\n });\n });\n\n return result;\n})()\n";
34
+ /** Remove the SoM overlay after screenshotting */
35
+ export declare const SOM_REMOVE_SCRIPT = "\n(() => {\n const el = document.getElementById('__bad_som_overlay');\n if (el) el.remove();\n})()\n";
36
+ //# sourceMappingURL=som-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"som-overlay.d.ts","sourceRoot":"","sources":["../../src/drivers/som-overlay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,y+FAgF7B,CAAA;AAED,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,2GAK7B,CAAA"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Set-of-Marks (SoM) overlay — inject numbered labels on interactive elements
3
+ * before taking a screenshot. The LLM sees labeled elements and outputs
4
+ * "click [N]" instead of guessing pixel coordinates.
5
+ *
6
+ * Gen 23: eliminates coordinate guessing on complex UIs (Google Flights date
7
+ * pickers, Booking form fields). The overlay is injected, screenshot taken,
8
+ * then removed — it never persists in the page.
9
+ *
10
+ * Returns a mapping of label number → element bounding box center so the
11
+ * runner can translate "click [3]" → mouse.click(x, y).
12
+ */
13
+ /**
14
+ * JavaScript to inject into the page that:
15
+ * 1. Finds all interactive elements
16
+ * 2. Draws numbered badges on them
17
+ * 3. Returns the element map
18
+ *
19
+ * Must be run via page.evaluate() and returns SomElement[].
20
+ */
21
+ export const SOM_INJECT_SCRIPT = `
22
+ (() => {
23
+ const INTERACTIVE = 'a, button, input, select, textarea, [role="button"], [role="link"], [role="tab"], [role="menuitem"], [role="option"], [role="checkbox"], [role="radio"], [role="searchbox"], [role="combobox"], [role="textbox"], [tabindex]';
24
+
25
+ // Find visible interactive elements
26
+ const elements = Array.from(document.querySelectorAll(INTERACTIVE))
27
+ .filter(el => {
28
+ const rect = el.getBoundingClientRect();
29
+ if (rect.width === 0 || rect.height === 0) return false;
30
+ if (rect.bottom < 0 || rect.top > window.innerHeight) return false;
31
+ if (rect.right < 0 || rect.left > window.innerWidth) return false;
32
+ const style = getComputedStyle(el);
33
+ if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') return false;
34
+ return true;
35
+ })
36
+ .slice(0, 50); // Cap at 50 to avoid overwhelming the screenshot
37
+
38
+ // Create overlay container
39
+ const container = document.createElement('div');
40
+ container.id = '__bad_som_overlay';
41
+ container.style.cssText = 'position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2147483646';
42
+ document.body.appendChild(container);
43
+
44
+ const result = [];
45
+
46
+ elements.forEach((el, i) => {
47
+ const rect = el.getBoundingClientRect();
48
+ const label = i + 1;
49
+
50
+ // Badge
51
+ const badge = document.createElement('div');
52
+ badge.style.cssText = [
53
+ 'position:fixed',
54
+ 'background:#e11d48',
55
+ 'color:#fff',
56
+ 'font:bold 11px/16px system-ui',
57
+ 'padding:0 4px',
58
+ 'border-radius:3px',
59
+ 'z-index:2147483647',
60
+ 'pointer-events:none',
61
+ 'min-width:16px',
62
+ 'text-align:center',
63
+ 'box-shadow:0 1px 3px rgba(0,0,0,0.3)',
64
+ ].join(';');
65
+ badge.style.left = Math.max(0, rect.left - 2) + 'px';
66
+ badge.style.top = Math.max(0, rect.top - 18) + 'px';
67
+ badge.textContent = String(label);
68
+ container.appendChild(badge);
69
+
70
+ // Light border around element
71
+ const highlight = document.createElement('div');
72
+ highlight.style.cssText = [
73
+ 'position:fixed',
74
+ 'border:1.5px solid #e11d4880',
75
+ 'border-radius:2px',
76
+ 'pointer-events:none',
77
+ 'z-index:2147483646',
78
+ ].join(';');
79
+ highlight.style.left = rect.left + 'px';
80
+ highlight.style.top = rect.top + 'px';
81
+ highlight.style.width = rect.width + 'px';
82
+ highlight.style.height = rect.height + 'px';
83
+ container.appendChild(highlight);
84
+
85
+ result.push({
86
+ label,
87
+ x: Math.round(rect.left),
88
+ y: Math.round(rect.top),
89
+ width: Math.round(rect.width),
90
+ height: Math.round(rect.height),
91
+ cx: Math.round(rect.left + rect.width / 2),
92
+ cy: Math.round(rect.top + rect.height / 2),
93
+ tag: el.tagName.toLowerCase(),
94
+ text: (el.textContent || el.getAttribute('aria-label') || el.getAttribute('placeholder') || '').trim().slice(0, 40),
95
+ role: el.getAttribute('role') || el.tagName.toLowerCase(),
96
+ });
97
+ });
98
+
99
+ return result;
100
+ })()
101
+ `;
102
+ /** Remove the SoM overlay after screenshotting */
103
+ export const SOM_REMOVE_SCRIPT = `
104
+ (() => {
105
+ const el = document.getElementById('__bad_som_overlay');
106
+ if (el) el.remove();
107
+ })()
108
+ `;
109
+ //# sourceMappingURL=som-overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"som-overlay.js","sourceRoot":"","sources":["../../src/drivers/som-overlay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFhC,CAAA;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;CAKhC,CAAA"}
@@ -13,6 +13,8 @@ export interface ActionResult {
13
13
  error?: string;
14
14
  /** Data returned by the action (e.g., runScript result) */
15
15
  data?: string;
16
+ /** Non-fatal warning (e.g., form fields didn't retain values after fill) */
17
+ warning?: string;
16
18
  /** Bounding box of the target element at action time (for replay overlays) */
17
19
  bounds?: ActionBounds;
18
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/drivers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,mEAAmE;IACnE,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9B,wBAAwB;IACxB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/C,wDAAwD;IACxD,OAAO,CAAC,IAAI,OAAO,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC;IAElD,0DAA0D;IAC1D,MAAM,CAAC,IAAI,MAAM,CAAC;IAElB,kCAAkC;IAClC,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/B,0EAA0E;IAC1E,mBAAmB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEpE,0EAA0E;IAC1E,cAAc,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C,+BAA+B;IAC/B,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/drivers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,mEAAmE;IACnE,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9B,wBAAwB;IACxB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/C,wDAAwD;IACxD,OAAO,CAAC,IAAI,OAAO,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC;IAElD,0DAA0D;IAC1D,MAAM,CAAC,IAAI,MAAM,CAAC;IAElB,kCAAkC;IAClC,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/B,0EAA0E;IAC1E,mBAAmB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEpE,0EAA0E;IAC1E,cAAc,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C,+BAA+B;IAC/B,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,yBAAyB;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IAChD,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,SAAI,GAAG,OAAO,CAyCjE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,SAAI,GAAG,OAAO,CAI5E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAW5D;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAYzE;AA2BD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,qBAAqB,GAAG,eAAe,GAAG,6BAA6B,CAAC;IAC9E,QAAQ,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sCAAsC,CAAC;IACvG,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CA6LnF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,wBAAwB,GAAG,IAAI,CAkDvF;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,IAAI,EAAE,EACnB,YAAY,EAAE,SAAS,GACtB,wBAAwB,GAAG,IAAI,CA0CjC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,cAAc,GAAG,IAAI,CA8G3E"}
1
+ {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,yBAAyB;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IAChD,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,SAAI,GAAG,OAAO,CAyCjE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,SAAI,GAAG,OAAO,CAI5E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAW5D;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAYzE;AA2BD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,qBAAqB,GAAG,eAAe,GAAG,6BAA6B,CAAC;IAC9E,QAAQ,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sCAAsC,CAAC;IACvG,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CA6LnF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,wBAAwB,GAAG,IAAI,CAoDvF;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,IAAI,EAAE,EACnB,YAAY,EAAE,SAAS,GACtB,wBAAwB,GAAG,IAAI,CA0CjC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,cAAc,GAAG,IAAI,CA8G3E"}
package/dist/recovery.js CHANGED
@@ -340,6 +340,8 @@ export function detectTerminalBlocker(state) {
340
340
  ['cloudflare-checking', /\bchecking your browser before accessing\b/i],
341
341
  ['cf-challenge', /\bcf[-_ ]challenge\b/i],
342
342
  ['turnstile', /\bturnstile\b/i],
343
+ ['google-unusual-traffic', /\bunusual traffic\b/i],
344
+ ['google-sorry', /\bgoogle\.com\/sorry\b/i],
343
345
  ];
344
346
  const botHits = botPatterns.filter(([, pattern]) => pattern.test(haystack)).map(([name]) => name);
345
347
  if (botHits.length > 0) {