@cogitator-ai/browser 0.1.6 → 0.2.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 (100) hide show
  1. package/README.md +58 -32
  2. package/dist/index.d.ts +6 -5
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/session.d.ts +11 -0
  7. package/dist/session.d.ts.map +1 -1
  8. package/dist/session.js +181 -84
  9. package/dist/session.js.map +1 -1
  10. package/dist/stealth/evasions.d.ts +2 -0
  11. package/dist/stealth/evasions.d.ts.map +1 -1
  12. package/dist/stealth/evasions.js +52 -4
  13. package/dist/stealth/evasions.js.map +1 -1
  14. package/dist/stealth/human-like.d.ts +21 -3
  15. package/dist/stealth/human-like.d.ts.map +1 -1
  16. package/dist/stealth/human-like.js +66 -25
  17. package/dist/stealth/human-like.js.map +1 -1
  18. package/dist/stealth/index.d.ts +7 -3
  19. package/dist/stealth/index.d.ts.map +1 -1
  20. package/dist/stealth/index.js +4 -2
  21. package/dist/stealth/index.js.map +1 -1
  22. package/dist/stealth/user-agents.d.ts.map +1 -1
  23. package/dist/stealth/user-agents.js +2 -3
  24. package/dist/stealth/user-agents.js.map +1 -1
  25. package/dist/tools/extraction.d.ts.map +1 -1
  26. package/dist/tools/extraction.js +36 -39
  27. package/dist/tools/extraction.js.map +1 -1
  28. package/dist/tools/index.d.ts +1 -1
  29. package/dist/tools/index.d.ts.map +1 -1
  30. package/dist/tools/index.js +1 -1
  31. package/dist/tools/index.js.map +1 -1
  32. package/dist/tools/interaction.d.ts +2 -2
  33. package/dist/tools/interaction.d.ts.map +1 -1
  34. package/dist/tools/interaction.js +30 -11
  35. package/dist/tools/interaction.js.map +1 -1
  36. package/dist/tools/network.d.ts +21 -28
  37. package/dist/tools/network.d.ts.map +1 -1
  38. package/dist/tools/network.js +370 -107
  39. package/dist/tools/network.js.map +1 -1
  40. package/dist/tools/vision.d.ts +2 -0
  41. package/dist/tools/vision.d.ts.map +1 -1
  42. package/dist/tools/vision.js +22 -14
  43. package/dist/tools/vision.js.map +1 -1
  44. package/dist/utils/human-mode.d.ts +5 -0
  45. package/dist/utils/human-mode.d.ts.map +1 -0
  46. package/dist/utils/human-mode.js +10 -0
  47. package/dist/utils/human-mode.js.map +1 -0
  48. package/dist/utils/page-helpers.d.ts +1 -0
  49. package/dist/utils/page-helpers.d.ts.map +1 -1
  50. package/dist/utils/page-helpers.js +66 -18
  51. package/dist/utils/page-helpers.js.map +1 -1
  52. package/dist/utils/schemas.d.ts +7 -2
  53. package/dist/utils/schemas.d.ts.map +1 -1
  54. package/dist/utils/schemas.js +36 -15
  55. package/dist/utils/schemas.js.map +1 -1
  56. package/package.json +4 -4
  57. package/dist/__tests__/browser-tools.test.d.ts +0 -2
  58. package/dist/__tests__/browser-tools.test.d.ts.map +0 -1
  59. package/dist/__tests__/browser-tools.test.js +0 -120
  60. package/dist/__tests__/browser-tools.test.js.map +0 -1
  61. package/dist/__tests__/extraction.test.d.ts +0 -2
  62. package/dist/__tests__/extraction.test.d.ts.map +0 -1
  63. package/dist/__tests__/extraction.test.js +0 -267
  64. package/dist/__tests__/extraction.test.js.map +0 -1
  65. package/dist/__tests__/interaction.test.d.ts +0 -2
  66. package/dist/__tests__/interaction.test.d.ts.map +0 -1
  67. package/dist/__tests__/interaction.test.js +0 -376
  68. package/dist/__tests__/interaction.test.js.map +0 -1
  69. package/dist/__tests__/navigation.test.d.ts +0 -2
  70. package/dist/__tests__/navigation.test.d.ts.map +0 -1
  71. package/dist/__tests__/navigation.test.js +0 -235
  72. package/dist/__tests__/navigation.test.js.map +0 -1
  73. package/dist/__tests__/network.test.d.ts +0 -2
  74. package/dist/__tests__/network.test.d.ts.map +0 -1
  75. package/dist/__tests__/network.test.js +0 -508
  76. package/dist/__tests__/network.test.js.map +0 -1
  77. package/dist/__tests__/page-helpers.test.d.ts +0 -2
  78. package/dist/__tests__/page-helpers.test.d.ts.map +0 -1
  79. package/dist/__tests__/page-helpers.test.js +0 -321
  80. package/dist/__tests__/page-helpers.test.js.map +0 -1
  81. package/dist/__tests__/schemas.test.d.ts +0 -2
  82. package/dist/__tests__/schemas.test.d.ts.map +0 -1
  83. package/dist/__tests__/schemas.test.js +0 -518
  84. package/dist/__tests__/schemas.test.js.map +0 -1
  85. package/dist/__tests__/selectors.test.d.ts +0 -2
  86. package/dist/__tests__/selectors.test.d.ts.map +0 -1
  87. package/dist/__tests__/selectors.test.js +0 -157
  88. package/dist/__tests__/selectors.test.js.map +0 -1
  89. package/dist/__tests__/session.test.d.ts +0 -2
  90. package/dist/__tests__/session.test.d.ts.map +0 -1
  91. package/dist/__tests__/session.test.js +0 -325
  92. package/dist/__tests__/session.test.js.map +0 -1
  93. package/dist/__tests__/stealth.test.d.ts +0 -2
  94. package/dist/__tests__/stealth.test.d.ts.map +0 -1
  95. package/dist/__tests__/stealth.test.js +0 -353
  96. package/dist/__tests__/stealth.test.js.map +0 -1
  97. package/dist/__tests__/vision.test.d.ts +0 -2
  98. package/dist/__tests__/vision.test.d.ts.map +0 -1
  99. package/dist/__tests__/vision.test.js +0 -226
  100. package/dist/__tests__/vision.test.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ const mousePositions = new WeakMap();
1
2
  function randomDelay(min, max) {
2
3
  return Math.floor(Math.random() * (max - min + 1)) + min;
3
4
  }
@@ -8,7 +9,10 @@ function bezierPoint(t, p0, p1, p2, p3) {
8
9
  const u = 1 - t;
9
10
  return u * u * u * p0 + 3 * u * u * t * p1 + 3 * u * t * t * p2 + t * t * t * p3;
10
11
  }
11
- function defaultClickOrigin(page) {
12
+ function defaultMouseOrigin(page) {
13
+ const known = mousePositions.get(page);
14
+ if (known)
15
+ return known;
12
16
  const viewport = typeof page.viewportSize === 'function' ? page.viewportSize() : null;
13
17
  if (viewport) {
14
18
  return {
@@ -18,6 +22,39 @@ function defaultClickOrigin(page) {
18
22
  }
19
23
  return { x: randomDelay(0, 100), y: randomDelay(0, 100) };
20
24
  }
25
+ function toLocator(page, target) {
26
+ return typeof target === 'string' ? page.locator(target).first() : target;
27
+ }
28
+ async function resolveTargetPoint(locator, position) {
29
+ await locator.scrollIntoViewIfNeeded();
30
+ const box = await locator.boundingBox();
31
+ if (!box)
32
+ return null;
33
+ if (position) {
34
+ return { x: box.x + position.x, y: box.y + position.y };
35
+ }
36
+ const jitterX = Math.min(3, box.width / 4);
37
+ const jitterY = Math.min(3, box.height / 4);
38
+ return {
39
+ x: box.x + box.width / 2 + (Math.random() * 2 - 1) * jitterX,
40
+ y: box.y + box.height / 2 + (Math.random() * 2 - 1) * jitterY,
41
+ };
42
+ }
43
+ async function moveMouseAlongCurve(page, from, to) {
44
+ const steps = randomDelay(15, 25);
45
+ const cp1x = from.x + (to.x - from.x) * 0.3 + randomDelay(-50, 50);
46
+ const cp1y = from.y + (to.y - from.y) * 0.1 + randomDelay(-50, 50);
47
+ const cp2x = from.x + (to.x - from.x) * 0.7 + randomDelay(-30, 30);
48
+ const cp2y = from.y + (to.y - from.y) * 0.9 + randomDelay(-30, 30);
49
+ for (let i = 1; i <= steps; i++) {
50
+ const t = i / steps;
51
+ const x = bezierPoint(t, from.x, cp1x, cp2x, to.x);
52
+ const y = bezierPoint(t, from.y, cp1y, cp2y, to.y);
53
+ await page.mouse.move(x, y);
54
+ await sleep(randomDelay(5, 15));
55
+ }
56
+ mousePositions.set(page, { x: to.x, y: to.y });
57
+ }
21
58
  export async function humanLikeType(page, selector, text) {
22
59
  await page.click(selector);
23
60
  for (const char of text) {
@@ -25,39 +62,43 @@ export async function humanLikeType(page, selector, text) {
25
62
  await sleep(randomDelay(50, 150));
26
63
  }
27
64
  }
28
- export async function humanLikeClick(page, selector, options = {}) {
29
- const element = page.locator(selector);
30
- const box = await element.boundingBox();
31
- if (!box) {
32
- await element.click();
65
+ export async function humanLikeClick(page, target, options = {}) {
66
+ const locator = toLocator(page, target);
67
+ const point = await resolveTargetPoint(locator, options.position);
68
+ if (!point) {
69
+ await locator.click({
70
+ button: options.button,
71
+ clickCount: options.clickCount,
72
+ position: options.position,
73
+ });
33
74
  return;
34
75
  }
35
- const targetX = box.x + box.width / 2 + randomDelay(-3, 3);
36
- const targetY = box.y + box.height / 2 + randomDelay(-3, 3);
37
- const origin = options.from ?? defaultClickOrigin(page);
38
- const startX = origin.x;
39
- const startY = origin.y;
40
- const steps = randomDelay(15, 25);
41
- const cp1x = startX + (targetX - startX) * 0.3 + randomDelay(-50, 50);
42
- const cp1y = startY + (targetY - startY) * 0.1 + randomDelay(-50, 50);
43
- const cp2x = startX + (targetX - startX) * 0.7 + randomDelay(-30, 30);
44
- const cp2y = startY + (targetY - startY) * 0.9 + randomDelay(-30, 30);
45
- for (let i = 0; i <= steps; i++) {
46
- const t = i / steps;
47
- const x = bezierPoint(t, startX, cp1x, cp2x, targetX);
48
- const y = bezierPoint(t, startY, cp1y, cp2y, targetY);
49
- await page.mouse.move(x, y);
50
- await sleep(randomDelay(5, 15));
76
+ await moveMouseAlongCurve(page, options.from ?? defaultMouseOrigin(page), point);
77
+ await sleep(randomDelay(30, 90));
78
+ await page.mouse.click(point.x, point.y, {
79
+ button: options.button,
80
+ clickCount: options.clickCount,
81
+ delay: randomDelay(40, 110),
82
+ });
83
+ }
84
+ export async function humanLikeHover(page, target, options = {}) {
85
+ const locator = toLocator(page, target);
86
+ const point = await resolveTargetPoint(locator, options.position);
87
+ if (!point) {
88
+ await locator.hover({ position: options.position });
89
+ return;
51
90
  }
52
- await page.mouse.click(targetX, targetY);
91
+ await moveMouseAlongCurve(page, options.from ?? defaultMouseOrigin(page), point);
53
92
  }
54
93
  export async function humanLikeScroll(page, direction, amount) {
55
94
  const steps = randomDelay(3, 8);
56
95
  const stepAmount = amount / steps;
57
- const dy = direction === 'down' ? stepAmount : -stepAmount;
96
+ const sign = direction === 'down' || direction === 'right' ? 1 : -1;
97
+ const horizontal = direction === 'left' || direction === 'right';
58
98
  const jitter = Math.max(1, Math.min(10, Math.floor(Math.abs(stepAmount) * 0.3)));
59
99
  for (let i = 0; i < steps; i++) {
60
- await page.mouse.wheel(0, dy + randomDelay(-jitter, jitter));
100
+ const delta = sign * stepAmount + randomDelay(-jitter, jitter);
101
+ await page.mouse.wheel(horizontal ? delta : 0, horizontal ? 0 : delta);
61
102
  await sleep(randomDelay(30, 80));
62
103
  }
63
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"human-like.js","sourceRoot":"","sources":["../../src/stealth/human-like.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"human-like.js","sourceRoot":"","sources":["../../src/stealth/human-like.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import type { BrowserContext } from 'playwright';
2
2
  import type { StealthConfig } from '@cogitator-ai/types';
3
- export declare function applyStealthToContext(context: BrowserContext, config: StealthConfig): Promise<void>;
3
+ export interface StealthContextOptions {
4
+ userAgent?: string;
5
+ locale?: string;
6
+ }
7
+ export declare function applyStealthToContext(context: BrowserContext, config: StealthConfig, options?: StealthContextOptions): Promise<void>;
4
8
  export declare function getStealthLaunchOptions(config: StealthConfig, browser?: 'chromium' | 'firefox' | 'webkit'): Record<string, unknown>;
5
9
  export { getEvasionScripts } from './evasions.js';
6
10
  export type { EvasionScriptsOptions } from './evasions.js';
7
- export { humanLikeType, humanLikeClick, humanLikeScroll } from './human-like.js';
8
- export type { HumanLikeClickOptions } from './human-like.js';
11
+ export { humanLikeType, humanLikeClick, humanLikeHover, humanLikeScroll } from './human-like.js';
12
+ export type { HumanLikeClickOptions, HumanLikeHoverOptions } from './human-like.js';
9
13
  export { getRandomUserAgent, getAllUserAgents } from './user-agents.js';
10
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stealth/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9E,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stealth/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9F,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { getEvasionScripts } from './evasions.js';
2
2
  import { getRandomUserAgent } from './user-agents.js';
3
- export async function applyStealthToContext(context, config) {
3
+ export async function applyStealthToContext(context, config, options = {}) {
4
4
  const scripts = getEvasionScripts({
5
5
  blockWebDriver: config.blockWebDriver,
6
6
  fingerprintRandomization: config.fingerprintRandomization,
7
+ userAgent: options.userAgent,
8
+ locale: options.locale,
7
9
  });
8
10
  for (const script of scripts) {
9
11
  await context.addInitScript(script);
@@ -21,6 +23,6 @@ export function getStealthLaunchOptions(config, browser) {
21
23
  return { userAgent: getRandomUserAgent(browser) };
22
24
  }
23
25
  export { getEvasionScripts } from './evasions.js';
24
- export { humanLikeType, humanLikeClick, humanLikeScroll } from './human-like.js';
26
+ export { humanLikeType, humanLikeClick, humanLikeHover, humanLikeScroll } from './human-like.js';
25
27
  export { getRandomUserAgent, getAllUserAgents } from './user-agents.js';
26
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stealth/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAuB,EACvB,MAAqB;IAErB,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;KAC1D,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3C,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAqB,EACrB,OAA2C;IAE3C,IAAI,MAAM,CAAC,wBAAwB,KAAK,KAAK,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stealth/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAOnD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAuB,EACvB,MAAqB,EACrB,UAAiC,EAAE;IAEnC,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;QACzD,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3C,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAqB,EACrB,OAA2C;IAE3C,IAAI,MAAM,CAAC,wBAAwB,KAAK,KAAK,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9F,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"user-agents.d.ts","sourceRoot":"","sources":["../../src/stealth/user-agents.ts"],"names":[],"mappings":"AA2CA,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAItF;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,UAAU,GAAG,SAAS,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAMtF"}
1
+ {"version":3,"file":"user-agents.d.ts","sourceRoot":"","sources":["../../src/stealth/user-agents.ts"],"names":[],"mappings":"AA0CA,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAItF;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,UAAU,GAAG,SAAS,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAMtF"}
@@ -35,9 +35,8 @@ const USER_AGENTS = {
35
35
  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Safari/605.1.15',
36
36
  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Safari/605.1.15',
37
37
  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.2 Safari/605.1.15',
38
- 'Mozilla/5.0 (iPhone; CPU iPhone OS 26_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1',
39
- 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1',
40
- 'Mozilla/5.0 (iPad; CPU OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1',
38
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15',
39
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Safari/605.1.15',
41
40
  ],
42
41
  };
43
42
  export function getRandomUserAgent(browser) {
@@ -1 +1 @@
1
- {"version":3,"file":"user-agents.js","sourceRoot":"","sources":["../../src/stealth/user-agents.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAwD;IACvE,QAAQ,EAAE;QACR,iHAAiH;QACjH,uHAAuH;QACvH,uGAAuG;QACvG,iHAAiH;QACjH,uHAAuH;QACvH,uGAAuG;QACvG,iHAAiH;QACjH,uHAAuH;QACvH,uGAAuG;QACvG,iHAAiH;QACjH,uHAAuH;QACvH,iHAAiH;QACjH,uGAAuG;QACvG,+HAA+H;QAC/H,+HAA+H;QAC/H,qIAAqI;KACtI;IACD,OAAO,EAAE;QACP,kFAAkF;QAClF,sFAAsF;QACtF,wEAAwE;QACxE,kFAAkF;QAClF,sFAAsF;QACtF,wEAAwE;QACxE,kFAAkF;QAClF,sFAAsF;QACtF,kFAAkF;QAClF,wEAAwE;KACzE;IACD,MAAM,EAAE;QACN,uHAAuH;QACvH,uHAAuH;QACvH,uHAAuH;QACvH,uHAAuH;QACvH,uHAAuH;QACvH,yIAAyI;QACzI,yIAAyI;QACzI,gIAAgI;KACjI;CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,OAA2C;IAC5E,MAAM,IAAI,GAAG,OAAO,IAAI,UAAU,CAAC;IACnC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;QACjC,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;KAChC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"user-agents.js","sourceRoot":"","sources":["../../src/stealth/user-agents.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAwD;IACvE,QAAQ,EAAE;QACR,iHAAiH;QACjH,uHAAuH;QACvH,uGAAuG;QACvG,iHAAiH;QACjH,uHAAuH;QACvH,uGAAuG;QACvG,iHAAiH;QACjH,uHAAuH;QACvH,uGAAuG;QACvG,iHAAiH;QACjH,uHAAuH;QACvH,iHAAiH;QACjH,uGAAuG;QACvG,+HAA+H;QAC/H,+HAA+H;QAC/H,qIAAqI;KACtI;IACD,OAAO,EAAE;QACP,kFAAkF;QAClF,sFAAsF;QACtF,wEAAwE;QACxE,kFAAkF;QAClF,sFAAsF;QACtF,wEAAwE;QACxE,kFAAkF;QAClF,sFAAsF;QACtF,kFAAkF;QAClF,wEAAwE;KACzE;IACD,MAAM,EAAE;QACN,uHAAuH;QACvH,uHAAuH;QACvH,uHAAuH;QACvH,uHAAuH;QACvH,uHAAuH;QACvH,uHAAuH;QACvH,uHAAuH;KACxH;CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,OAA2C;IAC5E,MAAM,IAAI,GAAG,OAAO,IAAI,UAAU,CAAC;IACnC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;QACjC,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;KAChC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/tools/extraction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAkBjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc;;;;GAkBxD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc;;;;;GAqBxD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc;;;;;GAY7D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;GAqCzD;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc;;;;;;aAcjD,MAAM;cACL,MAAM;oBACA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;iBACzB,OAAO;;GA0B3B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc;;;aAWlB,MAAM,EAAE;UAAc,MAAM,EAAE,EAAE;GA+B3E;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,cAAc;;;;;;;;GAiClE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA9G5C,MAAM;cACL,MAAM;oBACA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;iBACzB,OAAO;;;;;aAuCgB,MAAM,EAAE;UAAc,MAAM,EAAE,EAAE;MA8E3E"}
1
+ {"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/tools/extraction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAmBjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc;;;;GAqBxD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc;;;;;GAqBxD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc;;;;;GAY7D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;GAqCzD;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc;;;;;;aAcjD,MAAM;cACL,MAAM;oBACA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;iBACzB,OAAO;;GAkC3B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc;;;aAUvB,MAAM,EAAE;UAAc,MAAM,EAAE,EAAE;GA6BtE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,cAAc;;;;;;;;GAmBlE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aArG5C,MAAM;cACL,MAAM;oBACA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;iBACzB,OAAO;;;;;aA8CW,MAAM,EAAE;UAAc,MAAM,EAAE,EAAE;MA8DtE"}
@@ -1,5 +1,6 @@
1
1
  import { tool } from '@cogitator-ai/core';
2
2
  import { getTextSchema, getHtmlSchema, getAttributeSchema, getLinksSchema, querySelectorAllSchema, extractTableSchema, extractStructuredSchema, } from '../utils/schemas.js';
3
+ import { getReadableText } from '../utils/page-helpers.js';
3
4
  export function createGetTextTool(session) {
4
5
  return tool({
5
6
  name: 'browser_get_text',
@@ -10,10 +11,13 @@ export function createGetTextTool(session) {
10
11
  execute: async (params) => {
11
12
  const page = session.page;
12
13
  if (params.selector) {
13
- const text = await page.textContent(params.selector);
14
- return { text: text ?? '' };
14
+ const text = await page
15
+ .locator(params.selector)
16
+ .first()
17
+ .evaluate((el) => (el instanceof HTMLElement ? el.innerText : (el.textContent ?? '')));
18
+ return { text };
15
19
  }
16
- const text = await page.evaluate(() => document.body.innerText);
20
+ const text = await page.evaluate(() => document.body?.innerText ?? '');
17
21
  return { text };
18
22
  },
19
23
  });
@@ -105,6 +109,13 @@ export function createQuerySelectorAllTool(session) {
105
109
  for (let i = 0; i < Math.min(nodes.length, max); i++) {
106
110
  const el = nodes[i];
107
111
  const rect = el.getBoundingClientRect();
112
+ const rendered = typeof el.checkVisibility !== 'function' ||
113
+ el.checkVisibility({
114
+ checkOpacity: true,
115
+ checkVisibilityCSS: true,
116
+ opacityProperty: true,
117
+ visibilityProperty: true,
118
+ });
108
119
  const attrs = {};
109
120
  const attrNames = attributes ?? ['id', 'class', 'href', 'src', 'type', 'name'];
110
121
  for (const name of attrNames) {
@@ -116,7 +127,7 @@ export function createQuerySelectorAllTool(session) {
116
127
  tag: el.tagName.toLowerCase(),
117
128
  text: el.textContent?.trim().slice(0, 200) ?? '',
118
129
  attributes: attrs,
119
- visible: rect.width > 0 && rect.height > 0,
130
+ visible: rect.width > 0 && rect.height > 0 && rendered,
120
131
  });
121
132
  }
122
133
  return results;
@@ -135,27 +146,28 @@ export function createExtractTableTool(session) {
135
146
  execute: async (params) => {
136
147
  const page = session.page;
137
148
  const data = await page.evaluate((selector) => {
138
- const table = selector ? document.querySelector(selector) : document.querySelector('table');
149
+ const empty = { headers: [], rows: [] };
150
+ const target = selector
151
+ ? document.querySelector(selector)
152
+ : document.querySelector('table');
153
+ if (!target)
154
+ return empty;
155
+ const table = target instanceof HTMLTableElement ? target : target.querySelector('table');
139
156
  if (!table)
140
- return { headers: [], rows: [] };
141
- const cellsOf = (row) => Array.from(row.querySelectorAll('th, td')).map((c) => c.textContent?.trim() ?? '');
142
- const theadRows = Array.from(table.querySelectorAll('thead tr'));
143
- let headers = [];
144
- let bodyRowNodes;
145
- if (theadRows.length > 0) {
146
- headers = cellsOf(theadRows[theadRows.length - 1]);
147
- bodyRowNodes = Array.from(table.querySelectorAll('tbody tr'));
148
- if (bodyRowNodes.length === 0) {
149
- bodyRowNodes = Array.from(table.querySelectorAll('tr')).filter((tr) => !theadRows.includes(tr));
150
- }
151
- }
152
- else {
153
- const allRows = Array.from(table.querySelectorAll('tr'));
154
- headers = allRows.length > 0 ? cellsOf(allRows[0]) : [];
155
- bodyRowNodes = allRows.slice(1);
157
+ return empty;
158
+ const cellsOf = (row) => Array.from(row.cells).map((cell) => cell.textContent?.trim() ?? '');
159
+ const allRows = Array.from(table.rows);
160
+ const headRows = table.tHead ? Array.from(table.tHead.rows) : [];
161
+ if (headRows.length > 0) {
162
+ return {
163
+ headers: cellsOf(headRows[headRows.length - 1]),
164
+ rows: allRows.filter((row) => !headRows.includes(row)).map(cellsOf),
165
+ };
156
166
  }
157
- const rows = bodyRowNodes.map((tr) => Array.from(tr.querySelectorAll('td, th')).map((c) => c.textContent?.trim() ?? ''));
158
- return { headers, rows };
167
+ return {
168
+ headers: allRows.length > 0 ? cellsOf(allRows[0]) : [],
169
+ rows: allRows.slice(1).map(cellsOf),
170
+ };
159
171
  }, params.selector);
160
172
  return data;
161
173
  },
@@ -170,22 +182,7 @@ export function createExtractStructuredTool(session) {
170
182
  parameters: extractStructuredSchema,
171
183
  execute: async (params) => {
172
184
  const page = session.page;
173
- const text = await page.evaluate((selector) => {
174
- const scope = selector ? document.querySelector(selector) : document.body;
175
- if (!scope)
176
- return '';
177
- const clone = scope.cloneNode(true);
178
- clone.querySelectorAll('script, style, noscript, svg').forEach((el) => el.remove());
179
- const holder = document.createElement('div');
180
- holder.style.position = 'absolute';
181
- holder.style.left = '-9999px';
182
- holder.style.top = '0';
183
- holder.appendChild(clone);
184
- document.body.appendChild(holder);
185
- const text = clone.innerText.trim();
186
- holder.remove();
187
- return text;
188
- }, params.selector);
185
+ const text = await getReadableText(page, params.selector);
189
186
  return {
190
187
  instruction: params.instruction,
191
188
  text,
@@ -1 +1 @@
1
- {"version":3,"file":"extraction.js","sourceRoot":"","sources":["../../src/tools/extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extraction.js","sourceRoot":"","sources":["../../src/tools/extraction.ts"],"names":[],"mappings":"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"}
@@ -11,5 +11,5 @@ export { createNavigateTool, createGoBackTool, createGoForwardTool, createReload
11
11
  export { createClickTool, createTypeTool, createSelectOptionTool, createHoverTool, createScrollTool, createPressKeyTool, createDragAndDropTool, createFillFormTool, createUploadFileTool, } from './interaction.js';
12
12
  export { createGetTextTool, createGetHtmlTool, createGetAttributeTool, createGetLinksTool, createQuerySelectorAllTool, createExtractTableTool, createExtractStructuredTool, } from './extraction.js';
13
13
  export { createScreenshotTool, createScreenshotElementTool, createFindByDescriptionTool, createClickByDescriptionTool, } from './vision.js';
14
- export { createInterceptRequestTool, createWaitForResponseTool, createBlockResourcesTool, createCaptureHarTool, createGetApiCallsTool, } from './network.js';
14
+ export { createInterceptRequestTool, createRemoveInterceptorTool, createWaitForResponseTool, createBlockResourcesTool, createCaptureHarTool, createGetApiCallsTool, } from './network.js';
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAiBjD,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,EAAE,CAuB3F;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAiBjD,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,EAAE,CAuB3F;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC"}
@@ -37,5 +37,5 @@ export { createNavigateTool, createGoBackTool, createGoForwardTool, createReload
37
37
  export { createClickTool, createTypeTool, createSelectOptionTool, createHoverTool, createScrollTool, createPressKeyTool, createDragAndDropTool, createFillFormTool, createUploadFileTool, } from './interaction.js';
38
38
  export { createGetTextTool, createGetHtmlTool, createGetAttributeTool, createGetLinksTool, createQuerySelectorAllTool, createExtractTableTool, createExtractStructuredTool, } from './extraction.js';
39
39
  export { createScreenshotTool, createScreenshotElementTool, createFindByDescriptionTool, createClickByDescriptionTool, } from './vision.js';
40
- export { createInterceptRequestTool, createWaitForResponseTool, createBlockResourcesTool, createCaptureHarTool, createGetApiCallsTool, } from './network.js';
40
+ export { createInterceptRequestTool, createRemoveInterceptorTool, createWaitForResponseTool, createBlockResourcesTool, createCaptureHarTool, createGetApiCallsTool, } from './network.js';
41
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAI/C,MAAM,gBAAgB,GAAgC;IACpD,UAAU,EAAE,qBAAoC;IAChD,WAAW,EAAE,sBAAqC;IAClD,UAAU,EAAE,qBAAoC;IAChD,MAAM,EAAE,iBAAgC;IACxC,OAAO,EAAE,kBAAiC;CAC3C,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,OAAuB,EAAE,OAA6B;IACjF,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClE,MAAM,KAAK,GAAW,EAAE,CAAC;IAEzB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,iCAAiC,GAAG,yBAAyB,MAAM,CAAC,IAAI,CACtE,gBAAgB,CACjB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,CAAC;QACJ,OAAO,EAAE,KAAK,EAAE,MAA+B,EAAE,GAAgB,EAAE,EAAE;YACnE,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAI/C,MAAM,gBAAgB,GAAgC;IACpD,UAAU,EAAE,qBAAoC;IAChD,WAAW,EAAE,sBAAqC;IAClD,UAAU,EAAE,qBAAoC;IAChD,MAAM,EAAE,iBAAgC;IACxC,OAAO,EAAE,kBAAiC;CAC3C,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,OAAuB,EAAE,OAA6B;IACjF,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClE,MAAM,KAAK,GAAW,EAAE,CAAC;IAEzB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,iCAAiC,GAAG,yBAAyB,MAAM,CAAC,IAAI,CACtE,gBAAgB,CACjB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,CAAC;QACJ,OAAO,EAAE,KAAK,EAAE,MAA+B,EAAE,GAAgB,EAAE,EAAE;YACnE,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC"}
@@ -36,7 +36,7 @@ export declare function createHoverTool(session: BrowserSession): import("@cogit
36
36
  hovered: boolean;
37
37
  }>;
38
38
  export declare function createScrollTool(session: BrowserSession): import("@cogitator-ai/types").Tool<{
39
- direction: "up" | "down" | "left" | "right";
39
+ direction: "left" | "right" | "up" | "down";
40
40
  amount?: number | undefined;
41
41
  selector?: string | undefined;
42
42
  }, {
@@ -103,7 +103,7 @@ export declare function createInteractionTools(session: BrowserSession): (import
103
103
  }, {
104
104
  hovered: boolean;
105
105
  }> | import("@cogitator-ai/types").Tool<{
106
- direction: "up" | "down" | "left" | "right";
106
+ direction: "left" | "right" | "up" | "down";
107
107
  amount?: number | undefined;
108
108
  selector?: string | undefined;
109
109
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/tools/interaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAsBjD,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;GAiBtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc;;;;;;;GA4BrD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc;;;;;;;GAiB7D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc;;;;;;;;GAYtD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc;;;;;;GA4BvD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc;;;;;GAiBzD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc;;;;;GAY5D;AAoBD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc;;;;;;eAWvB,MAAM;eAAS,MAAM;;GAgDvD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc;;;;;GAsB3D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA1E3B,MAAM;eAAS,MAAM;;;;;;;MAsFvD"}
1
+ {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/tools/interaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAwBjD,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;GAsBtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc;;;;;;;GA0BrD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc;;;;;;;GAiB7D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc;;;;;;;;GAiBtD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc;;;;;;GAiCvD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc;;;;;GAiBzD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc;;;;;GAY5D;AAoBD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc;;;;;;eAWvB,MAAM;eAAS,MAAM;;GAgDvD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc;;;;;GAsB3D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA1E3B,MAAM;eAAS,MAAM;;;;;;;MAsFvD"}
@@ -1,4 +1,6 @@
1
1
  import { tool } from '@cogitator-ai/core';
2
+ import { humanLikeClick, humanLikeHover, humanLikeScroll } from '../stealth/human-like.js';
3
+ import { humanTypingDelay, usesHumanLikeMouse, usesHumanLikeTyping } from '../utils/human-mode.js';
2
4
  import { clickSchema, typeSchema, selectOptionSchema, hoverSchema, scrollSchema, pressKeySchema, dragAndDropSchema, fillFormSchema, uploadFileSchema, } from '../utils/schemas.js';
3
5
  export function createClickTool(session) {
4
6
  return tool({
@@ -9,11 +11,17 @@ export function createClickTool(session) {
9
11
  parameters: clickSchema,
10
12
  execute: async (params) => {
11
13
  const page = session.page;
12
- await page.click(params.selector, {
14
+ const options = {
13
15
  button: params.button,
14
16
  clickCount: params.clickCount,
15
17
  position: params.position,
16
- });
18
+ };
19
+ if (usesHumanLikeMouse(session)) {
20
+ await humanLikeClick(page, params.selector, options);
21
+ }
22
+ else {
23
+ await page.click(params.selector, options);
24
+ }
17
25
  return { clicked: true };
18
26
  },
19
27
  });
@@ -27,16 +35,15 @@ export function createTypeTool(session) {
27
35
  parameters: typeSchema,
28
36
  execute: async (params) => {
29
37
  const page = session.page;
30
- const useStealthDelay = !params.delay && session.stealthEnabled && session.stealthConfig?.humanLikeTyping;
31
- if (params.clearFirst && (params.delay || useStealthDelay)) {
38
+ const useStealthDelay = !params.delay && usesHumanLikeTyping(session);
39
+ if (useStealthDelay || (params.clearFirst && params.delay)) {
32
40
  await page.fill(params.selector, '');
33
41
  }
34
42
  if (params.delay) {
35
43
  await page.type(params.selector, params.text, { delay: params.delay });
36
44
  }
37
45
  else if (useStealthDelay) {
38
- const delay = Math.floor(Math.random() * 101) + 50;
39
- await page.type(params.selector, params.text, { delay });
46
+ await page.type(params.selector, params.text, { delay: humanTypingDelay() });
40
47
  }
41
48
  else {
42
49
  await page.fill(params.selector, params.text);
@@ -74,7 +81,13 @@ export function createHoverTool(session) {
74
81
  tags: ['browser', 'interaction'],
75
82
  parameters: hoverSchema,
76
83
  execute: async (params) => {
77
- await session.page.hover(params.selector, { position: params.position });
84
+ const page = session.page;
85
+ if (usesHumanLikeMouse(session)) {
86
+ await humanLikeHover(page, params.selector, { position: params.position });
87
+ }
88
+ else {
89
+ await page.hover(params.selector, { position: params.position });
90
+ }
78
91
  return { hovered: true };
79
92
  },
80
93
  });
@@ -96,7 +109,13 @@ export function createScrollTool(session) {
96
109
  right: { x: amount, y: 0 },
97
110
  };
98
111
  const { x, y } = deltas[params.direction];
99
- if (params.selector) {
112
+ if (usesHumanLikeMouse(session)) {
113
+ if (params.selector) {
114
+ await humanLikeHover(page, params.selector);
115
+ }
116
+ await humanLikeScroll(page, params.direction, amount);
117
+ }
118
+ else if (params.selector) {
100
119
  await page
101
120
  .locator(params.selector)
102
121
  .evaluate((el, d) => el.scrollBy(d.x, d.y), { x, y });
@@ -176,9 +195,9 @@ export function createFillFormTool(session) {
176
195
  continue;
177
196
  const el = loc.first();
178
197
  if (typeof value === 'string') {
179
- if (session.stealthEnabled && session.stealthConfig?.humanLikeTyping) {
180
- const delay = Math.floor(Math.random() * 101) + 50;
181
- await el.type(value, { delay });
198
+ if (usesHumanLikeTyping(session)) {
199
+ await el.fill('');
200
+ await el.pressSequentially(value, { delay: humanTypingDelay() });
182
201
  }
183
202
  else {
184
203
  await el.fill(value);