@tangle-network/browser-agent-driver 0.22.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.
- package/dist/brain/index.d.ts +21 -0
- package/dist/brain/index.d.ts.map +1 -1
- package/dist/brain/index.js +462 -34
- package/dist/brain/index.js.map +1 -1
- package/dist/browser-launch.d.ts +2 -0
- package/dist/browser-launch.d.ts.map +1 -1
- package/dist/browser-launch.js +12 -5
- package/dist/browser-launch.js.map +1 -1
- package/dist/captcha.d.ts +0 -7
- package/dist/captcha.d.ts.map +1 -1
- package/dist/captcha.js +113 -4
- package/dist/captcha.js.map +1 -1
- package/dist/cli.js +69 -13
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/drivers/cursor-overlay.d.ts +1 -1
- package/dist/drivers/cursor-overlay.d.ts.map +1 -1
- package/dist/drivers/cursor-overlay.js +21 -9
- package/dist/drivers/cursor-overlay.js.map +1 -1
- package/dist/drivers/extract-with-index.d.ts +45 -0
- package/dist/drivers/extract-with-index.d.ts.map +1 -0
- package/dist/drivers/extract-with-index.js +141 -0
- package/dist/drivers/extract-with-index.js.map +1 -0
- package/dist/drivers/playwright.d.ts +7 -0
- package/dist/drivers/playwright.d.ts.map +1 -1
- package/dist/drivers/playwright.js +232 -1
- package/dist/drivers/playwright.js.map +1 -1
- package/dist/drivers/som-overlay.d.ts +36 -0
- package/dist/drivers/som-overlay.d.ts.map +1 -0
- package/dist/drivers/som-overlay.js +109 -0
- package/dist/drivers/som-overlay.js.map +1 -0
- package/dist/drivers/types.d.ts +2 -0
- package/dist/drivers/types.d.ts.map +1 -1
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +2 -0
- package/dist/recovery.js.map +1 -1
- package/dist/run-state.d.ts +27 -1
- package/dist/run-state.d.ts.map +1 -1
- package/dist/run-state.js +40 -1
- package/dist/run-state.js.map +1 -1
- package/dist/runner/runner.d.ts +21 -0
- package/dist/runner/runner.d.ts.map +1 -1
- package/dist/runner/runner.js +260 -14
- package/dist/runner/runner.js.map +1 -1
- package/dist/supervisor/critic.d.ts.map +1 -1
- package/dist/supervisor/critic.js +1 -0
- package/dist/supervisor/critic.js.map +1 -1
- package/dist/supervisor/policy.js +10 -0
- package/dist/supervisor/policy.js.map +1 -1
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +8 -3
- package/dist/test-runner.js.map +1 -1
- package/dist/types.d.ts +62 -1
- package/dist/types.d.ts.map +1 -1
- 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 (
|
|
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"}
|
package/dist/drivers/types.d.ts
CHANGED
|
@@ -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"}
|
package/dist/recovery.d.ts.map
CHANGED
|
@@ -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,
|
|
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) {
|