@weavetab/mcp 2.5.0 → 2.5.1

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 (168) hide show
  1. package/AGENTS.md +49 -49
  2. package/ARCHITECTURE.md +590 -590
  3. package/LICENSE +216 -216
  4. package/README.md +269 -269
  5. package/SECURITY.md +207 -207
  6. package/TROUBLESHOOTING.md +373 -365
  7. package/dist/anticaptcha/detector.js +395 -395
  8. package/dist/anticaptcha/solver.js +130 -130
  9. package/dist/cdp/bridge.js +73 -73
  10. package/dist/cdp/connector.js +46 -22
  11. package/dist/cdp/extension.js +34 -34
  12. package/dist/cdp/helpers.js +174 -174
  13. package/dist/cdp/pruner.js +195 -195
  14. package/dist/cdp/ref_cache.js +66 -66
  15. package/dist/cdp/security.js +10 -10
  16. package/dist/cdp/verify.js +57 -57
  17. package/dist/cdp/walker.js +563 -525
  18. package/dist/cli/plugin.js +26 -3
  19. package/dist/config/loader.d.ts +0 -3
  20. package/dist/config/loader.js +0 -9
  21. package/dist/index.js +0 -4
  22. package/dist/intelligence/intent.js +81 -81
  23. package/dist/intelligence/sessionMemory.js +2 -2
  24. package/dist/overlay/ghost.js +22 -22
  25. package/dist/overlay/injector.js +89 -89
  26. package/dist/plugin/extension_bridge.js +54 -54
  27. package/dist/plugin/interface.d.ts +7 -0
  28. package/dist/plugin/loader.js +3 -4
  29. package/dist/plugin/schema.d.ts +11 -0
  30. package/dist/plugin/schema.js +59 -0
  31. package/dist/security/guard.js +18 -18
  32. package/dist/sensors/actionability.js +167 -167
  33. package/dist/sensors/guard.js +29 -29
  34. package/dist/sensors/network.js +15 -17
  35. package/dist/server.d.ts +1 -1
  36. package/dist/server.js +173 -144
  37. package/dist/state/delta.js +6 -7
  38. package/dist/tools/automation.js +85 -85
  39. package/dist/tools/canvas.js +48 -25
  40. package/dist/tools/checkpoint.js +94 -35
  41. package/dist/tools/click.js +52 -41
  42. package/dist/tools/clipboard.js +80 -74
  43. package/dist/tools/design_extract.js +441 -441
  44. package/dist/tools/dialog.js +13 -13
  45. package/dist/tools/emulation.d.ts +2 -0
  46. package/dist/tools/emulation.js +7 -0
  47. package/dist/tools/fill.js +344 -347
  48. package/dist/tools/find.js +78 -52
  49. package/dist/tools/highlight.js +67 -67
  50. package/dist/tools/inspect.js +54 -25
  51. package/dist/tools/key.js +42 -35
  52. package/dist/tools/navigate.d.ts +1 -1
  53. package/dist/tools/navigate.js +35 -35
  54. package/dist/tools/office/parse.js +62 -18
  55. package/dist/tools/pdf.d.ts +9 -0
  56. package/dist/tools/pdf.js +7 -4
  57. package/dist/tools/performance.d.ts +11 -4
  58. package/dist/tools/performance.js +94 -42
  59. package/dist/tools/performance_test.d.ts +2 -2
  60. package/dist/tools/performance_test.js +69 -69
  61. package/dist/tools/pointer.js +116 -116
  62. package/dist/tools/read.js +99 -67
  63. package/dist/tools/recording.js +9 -0
  64. package/dist/tools/scrape.js +146 -146
  65. package/dist/tools/screenshot.d.ts +2 -0
  66. package/dist/tools/screenshot.js +46 -4
  67. package/dist/tools/scroll.d.ts +3 -1
  68. package/dist/tools/scroll.js +13 -15
  69. package/dist/tools/select.d.ts +3 -0
  70. package/dist/tools/select.js +131 -124
  71. package/dist/tools/snapshot.js +8 -6
  72. package/dist/tools/storage.d.ts +5 -1
  73. package/dist/tools/storage.js +16 -0
  74. package/dist/tools/tabs.d.ts +7 -5
  75. package/dist/tools/tabs.js +79 -26
  76. package/dist/tools/thought.js +8 -8
  77. package/dist/tools/type.js +274 -274
  78. package/dist/tools/type_secret.js +23 -23
  79. package/dist/tools/upload.js +3 -3
  80. package/dist/tools/video_compiler.js +9 -0
  81. package/dist/tools/wait.js +35 -35
  82. package/dist/version.d.ts +1 -1
  83. package/dist/version.js +1 -1
  84. package/docs/DOCUMENTATION.md +583 -585
  85. package/docs/PLUGINS.md +139 -121
  86. package/docs/TOOLS.md +3 -4
  87. package/docs/architecture/blind-injection.md +83 -83
  88. package/docs/architecture/overview.md +49 -49
  89. package/docs/architecture/security.md +36 -36
  90. package/docs/architecture/transport.md +37 -37
  91. package/docs/cli/cli-commands.md +50 -50
  92. package/docs/cli/cli-flags.md +28 -28
  93. package/docs/cli/cli-scripting.md +35 -35
  94. package/docs/configuration/config-locations.md +23 -23
  95. package/docs/configuration/configuration.md +39 -27
  96. package/docs/configuration/env-variables.md +19 -19
  97. package/docs/configuration/folders.md +62 -55
  98. package/docs/desktop-automation/electron-apps.md +225 -214
  99. package/docs/get-started/installation.md +1 -1
  100. package/docs/get-started/introduction.md +60 -60
  101. package/docs/get-started/quickstart.md +2 -2
  102. package/docs/get-started/setup-wizard.md +27 -27
  103. package/docs/intelligence/site-profiles.md +151 -151
  104. package/docs/tools/tools.md +582 -631
  105. package/docs/troubleshooting/trouble-browser.md +27 -27
  106. package/docs/troubleshooting/trouble-loop.md +31 -31
  107. package/ext-dist/background.js +415 -415
  108. package/ext-dist/content.js +2527 -2527
  109. package/ext-dist/dashboard.html +583 -583
  110. package/ext-dist/hud/hud.js +3 -3
  111. package/ext-dist/hud/index.html +20 -20
  112. package/ext-dist/manifest.json +73 -73
  113. package/ext-dist/styles.css +223 -223
  114. package/mcp.json +796 -805
  115. package/package.json +118 -118
  116. package/server.json +23 -23
  117. package/dist/cdp/walker.test.d.ts +0 -2
  118. package/dist/cdp/walker.test.js +0 -172
  119. package/dist/intelligence/sessionMemory.test.d.ts +0 -2
  120. package/dist/intelligence/sessionMemory.test.js +0 -62
  121. package/dist/intelligence/trail.test.d.ts +0 -2
  122. package/dist/intelligence/trail.test.js +0 -110
  123. package/dist/state/cache.test.d.ts +0 -2
  124. package/dist/state/cache.test.js +0 -76
  125. package/dist/state/delta.test.d.ts +0 -2
  126. package/dist/state/delta.test.js +0 -279
  127. package/dist/state/groups.d.ts +0 -15
  128. package/dist/state/groups.js +0 -80
  129. package/dist/tools/accessibility.d.ts +0 -14
  130. package/dist/tools/accessibility.js +0 -32
  131. package/dist/tools/ask.d.ts +0 -14
  132. package/dist/tools/ask.js +0 -49
  133. package/dist/tools/click_and_wait.d.ts +0 -33
  134. package/dist/tools/click_and_wait.js +0 -149
  135. package/dist/tools/drag.d.ts +0 -15
  136. package/dist/tools/drag.js +0 -29
  137. package/dist/tools/geo.d.ts +0 -19
  138. package/dist/tools/geo.js +0 -29
  139. package/dist/tools/github/analyze.d.ts +0 -4
  140. package/dist/tools/github/analyze.js +0 -113
  141. package/dist/tools/github/cache.d.ts +0 -21
  142. package/dist/tools/github/cache.js +0 -28
  143. package/dist/tools/github/index.d.ts +0 -19
  144. package/dist/tools/github/index.js +0 -40
  145. package/dist/tools/github/issues.d.ts +0 -9
  146. package/dist/tools/github/issues.js +0 -88
  147. package/dist/tools/github/pr.d.ts +0 -5
  148. package/dist/tools/github/pr.js +0 -88
  149. package/dist/tools/github/rateLimiter.d.ts +0 -4
  150. package/dist/tools/github/rateLimiter.js +0 -46
  151. package/dist/tools/github/read.d.ts +0 -34
  152. package/dist/tools/github/read.js +0 -74
  153. package/dist/tools/github/repoContext.d.ts +0 -20
  154. package/dist/tools/github/repoContext.js +0 -129
  155. package/dist/tools/hover.d.ts +0 -19
  156. package/dist/tools/hover.js +0 -57
  157. package/dist/tools/integration.test.d.ts +0 -2
  158. package/dist/tools/integration.test.js +0 -96
  159. package/dist/tools/macro_compiler.d.ts +0 -7
  160. package/dist/tools/macro_compiler.js +0 -82
  161. package/dist/tools/mouse.d.ts +0 -21
  162. package/dist/tools/mouse.js +0 -62
  163. package/dist/tools/response.d.ts +0 -129
  164. package/dist/tools/response.js +0 -5
  165. package/dist/tools/wait_for.d.ts +0 -23
  166. package/dist/tools/wait_for.js +0 -30
  167. package/dist/tools/windows.d.ts +0 -22
  168. package/dist/tools/windows.js +0 -57
@@ -25,13 +25,13 @@ async function isElementReady(session, backendNodeId) {
25
25
  return false;
26
26
  const { result } = await session.Runtime.callFunctionOn({
27
27
  objectId: object.objectId,
28
- functionDeclaration: `function() {
29
- if (this.disabled || this.getAttribute('aria-disabled') === 'true') return false;
30
- const r = this.getBoundingClientRect();
31
- const s = window.getComputedStyle(this);
32
- if (r.width === 0 || r.height === 0 || s.visibility === 'hidden' || s.display === 'none' || s.opacity === '0') return false;
33
- const topEl = document.elementFromPoint(r.left + r.width / 2, r.top + r.height / 2);
34
- return topEl !== null && (topEl === this || this.contains(topEl));
28
+ functionDeclaration: `function() {
29
+ if (this.disabled || this.getAttribute('aria-disabled') === 'true') return false;
30
+ const r = this.getBoundingClientRect();
31
+ const s = window.getComputedStyle(this);
32
+ if (r.width === 0 || r.height === 0 || s.visibility === 'hidden' || s.display === 'none' || s.opacity === '0') return false;
33
+ const topEl = document.elementFromPoint(r.left + r.width / 2, r.top + r.height / 2);
34
+ return topEl !== null && (topEl === this || this.contains(topEl));
35
35
  }`,
36
36
  returnByValue: true,
37
37
  });
@@ -49,17 +49,17 @@ fast = false) {
49
49
  if (fast)
50
50
  return Promise.resolve();
51
51
  const result = await session.Runtime.evaluate({
52
- expression: `(function(quiet, timeout) {
53
- return new Promise((resolve) => {
54
- let timer;
55
- const obs = new MutationObserver(() => {
56
- clearTimeout(timer);
57
- timer = setTimeout(() => { obs.disconnect(); resolve(true); }, quiet);
58
- });
59
- obs.observe(document.body, { childList: true, subtree: true, attributes: true });
60
- timer = setTimeout(() => { obs.disconnect(); resolve(true); }, quiet);
61
- setTimeout(() => { obs.disconnect(); resolve(true); }, timeout);
62
- });
52
+ expression: `(function(quiet, timeout) {
53
+ return new Promise((resolve) => {
54
+ let timer;
55
+ const obs = new MutationObserver(() => {
56
+ clearTimeout(timer);
57
+ timer = setTimeout(() => { obs.disconnect(); resolve(true); }, quiet);
58
+ });
59
+ obs.observe(document.body, { childList: true, subtree: true, attributes: true });
60
+ timer = setTimeout(() => { obs.disconnect(); resolve(true); }, quiet);
61
+ setTimeout(() => { obs.disconnect(); resolve(true); }, timeout);
62
+ });
63
63
  })(${quietPeriod}, ${timeout})`,
64
64
  awaitPromise: true,
65
65
  returnByValue: true,
@@ -110,17 +110,17 @@ export async function guardedAction(session, backendNodeId, action, label = "unk
110
110
  export async function detectPageWeight(session) {
111
111
  try {
112
112
  const { result } = await session.Runtime.evaluate({
113
- expression: `(function() {
114
- const all = document.querySelectorAll('*');
115
- const images = document.querySelectorAll('img, picture, svg');
116
- const scripts = document.querySelectorAll('script');
117
- const iframes = document.querySelectorAll('iframe, frame');
118
- return JSON.stringify({
119
- elementCount: all.length,
120
- imageCount: images.length,
121
- scriptCount: scripts.length,
122
- iframeCount: iframes.length
123
- });
113
+ expression: `(function() {
114
+ const all = document.querySelectorAll('*');
115
+ const images = document.querySelectorAll('img, picture, svg');
116
+ const scripts = document.querySelectorAll('script');
117
+ const iframes = document.querySelectorAll('iframe, frame');
118
+ return JSON.stringify({
119
+ elementCount: all.length,
120
+ imageCount: images.length,
121
+ scriptCount: scripts.length,
122
+ iframeCount: iframes.length
123
+ });
124
124
  })()`,
125
125
  returnByValue: true,
126
126
  });
@@ -59,20 +59,21 @@ export class TelemetryCapture {
59
59
  // 2. Capture Network Timing Breakdown (DNS, TCP, SSL, Send, Wait)
60
60
  if (params.response.timing) {
61
61
  const t = params.response.timing;
62
- const dnsMs = (t.dnsEnd > 0 && t.dnsStart >= 0) ? Math.max(0, t.dnsEnd - t.dnsStart) : 0;
63
- const connectMs = (t.connectEnd > 0 && t.connectStart >= 0) ? Math.max(0, t.connectEnd - t.connectStart) : 0;
64
- const sslMs = (t.sslEnd > 0 && t.sslStart >= 0) ? Math.max(0, t.sslEnd - t.sslStart) : 0;
65
- const sendMs = (t.sendEnd > 0 && t.sendStart >= 0) ? Math.max(0, t.sendEnd - t.sendStart) : 0;
66
- const waitMs = (t.receiveHeadersStart > 0 && t.sendEnd >= 0) ? Math.max(0, t.receiveHeadersStart - t.sendEnd) : 0;
67
- req.timing = {
68
- dnsMs: Number(dnsMs.toFixed(3)),
69
- connectMs: Number(connectMs.toFixed(3)),
70
- sslMs: Number(sslMs.toFixed(3)),
71
- sendMs: Number(sendMs.toFixed(3)),
72
- waitMs: Number(waitMs.toFixed(3)),
73
- };
74
- if (t.requestTime && t.receiveHeadersStart > 0) {
75
- req._responseHeadersMonotonic = t.requestTime + (t.receiveHeadersStart / 1000);
62
+ const phases = {};
63
+ if (t.dnsEnd > 0 && t.dnsStart >= 0)
64
+ phases.dnsMs = Number((t.dnsEnd - t.dnsStart).toFixed(3));
65
+ if (t.connectEnd > 0 && t.connectStart >= 0)
66
+ phases.connectMs = Number((t.connectEnd - t.connectStart).toFixed(3));
67
+ if (t.sslEnd > 0 && t.sslStart >= 0)
68
+ phases.sslMs = Number((t.sslEnd - t.sslStart).toFixed(3));
69
+ if (t.sendEnd > 0 && t.sendStart >= 0)
70
+ phases.sendMs = Number((t.sendEnd - t.sendStart).toFixed(3));
71
+ if (t.receiveHeadersStart > 0 && t.sendEnd > 0)
72
+ phases.waitMs = Number((t.receiveHeadersStart - t.sendEnd).toFixed(3));
73
+ req.timing = phases;
74
+ const headersEnd = t.receiveHeadersEnd > 0 ? t.receiveHeadersEnd : t.receiveHeadersStart;
75
+ if (t.requestTime && headersEnd > 0) {
76
+ req._responseHeadersMonotonic = t.requestTime + (headersEnd / 1000);
76
77
  }
77
78
  }
78
79
  }
@@ -93,9 +94,6 @@ export class TelemetryCapture {
93
94
  const downloadMs = (finishTimeMonotonic - req._responseHeadersMonotonic) * 1000;
94
95
  req.timing.downloadMs = Number(Math.max(0, downloadMs).toFixed(3));
95
96
  }
96
- else {
97
- req.timing.downloadMs = 0;
98
- }
99
97
  }
100
98
  }
101
99
  };
package/dist/server.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Weavetab — server.ts
3
- * MCP server: 42 browser automation tools with security, rate limiting, and visual overlay.
3
+ * MCP server: 41 browser automation tools with security, rate limiting, and visual overlay.
4
4
  * Weavetab by fy2ne
5
5
  */
6
6
  import type { Config } from "./config/loader.js";