@weavetab/mcp 2.5.0-beta.5 → 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.
- package/AGENTS.md +49 -49
- package/ARCHITECTURE.md +590 -590
- package/README.md +216 -100
- package/SECURITY.md +207 -207
- package/TROUBLESHOOTING.md +373 -365
- package/dist/anticaptcha/detector.js +395 -395
- package/dist/anticaptcha/solver.js +130 -130
- package/dist/cdp/bridge.js +73 -73
- package/dist/cdp/connector.js +46 -22
- package/dist/cdp/extension.js +34 -34
- package/dist/cdp/helpers.js +174 -174
- package/dist/cdp/pruner.js +195 -195
- package/dist/cdp/ref_cache.js +66 -66
- package/dist/cdp/security.js +10 -10
- package/dist/cdp/verify.js +57 -57
- package/dist/cdp/walker.js +563 -525
- package/dist/cli/plugin.js +26 -3
- package/dist/config/loader.d.ts +0 -3
- package/dist/config/loader.js +0 -9
- package/dist/index.js +0 -4
- package/dist/intelligence/intent.js +81 -81
- package/dist/intelligence/sessionMemory.js +2 -2
- package/dist/overlay/ghost.js +22 -22
- package/dist/overlay/injector.js +89 -89
- package/dist/plugin/extension_bridge.js +54 -54
- package/dist/plugin/interface.d.ts +7 -0
- package/dist/plugin/loader.js +3 -4
- package/dist/plugin/schema.d.ts +11 -0
- package/dist/plugin/schema.js +59 -0
- package/dist/security/guard.js +18 -18
- package/dist/sensors/actionability.js +167 -167
- package/dist/sensors/guard.js +29 -29
- package/dist/sensors/network.js +15 -17
- package/dist/server.d.ts +1 -1
- package/dist/server.js +173 -144
- package/dist/state/delta.js +6 -7
- package/dist/tools/automation.js +85 -85
- package/dist/tools/canvas.js +48 -25
- package/dist/tools/checkpoint.js +94 -35
- package/dist/tools/click.js +52 -41
- package/dist/tools/clipboard.js +80 -74
- package/dist/tools/design_extract.js +441 -441
- package/dist/tools/dialog.js +13 -13
- package/dist/tools/emulation.d.ts +2 -0
- package/dist/tools/emulation.js +7 -0
- package/dist/tools/fill.js +344 -347
- package/dist/tools/find.js +78 -52
- package/dist/tools/highlight.js +67 -67
- package/dist/tools/inspect.js +54 -25
- package/dist/tools/key.js +42 -35
- package/dist/tools/navigate.d.ts +1 -1
- package/dist/tools/navigate.js +35 -35
- package/dist/tools/office/parse.js +62 -18
- package/dist/tools/pdf.d.ts +9 -0
- package/dist/tools/pdf.js +7 -4
- package/dist/tools/performance.d.ts +11 -4
- package/dist/tools/performance.js +94 -42
- package/dist/tools/performance_test.d.ts +2 -2
- package/dist/tools/performance_test.js +69 -69
- package/dist/tools/pointer.js +116 -116
- package/dist/tools/read.js +99 -67
- package/dist/tools/recording.js +9 -0
- package/dist/tools/scrape.js +146 -146
- package/dist/tools/screenshot.d.ts +2 -0
- package/dist/tools/screenshot.js +46 -4
- package/dist/tools/scroll.d.ts +3 -1
- package/dist/tools/scroll.js +13 -15
- package/dist/tools/select.d.ts +3 -0
- package/dist/tools/select.js +131 -124
- package/dist/tools/snapshot.js +8 -6
- package/dist/tools/storage.d.ts +5 -1
- package/dist/tools/storage.js +16 -0
- package/dist/tools/tabs.d.ts +7 -5
- package/dist/tools/tabs.js +79 -26
- package/dist/tools/thought.js +8 -8
- package/dist/tools/type.js +274 -274
- package/dist/tools/type_secret.js +23 -23
- package/dist/tools/upload.js +3 -3
- package/dist/tools/video_compiler.js +9 -0
- package/dist/tools/wait.js +35 -35
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/DOCUMENTATION.md +583 -585
- package/docs/PLUGINS.md +139 -121
- package/docs/TOOLS.md +3 -4
- package/docs/architecture/blind-injection.md +83 -83
- package/docs/architecture/overview.md +49 -49
- package/docs/configuration/configuration.md +39 -27
- package/docs/configuration/folders.md +62 -55
- package/docs/desktop-automation/electron-apps.md +225 -214
- package/docs/get-started/installation.md +1 -1
- package/docs/get-started/introduction.md +60 -60
- package/docs/get-started/quickstart.md +2 -2
- package/docs/get-started/setup-wizard.md +1 -1
- package/docs/intelligence/site-profiles.md +151 -151
- package/docs/tools/tools.md +582 -631
- package/docs/troubleshooting/trouble-loop.md +31 -31
- package/ext-dist/background.js +415 -415
- package/ext-dist/content.js +2527 -2527
- package/ext-dist/dashboard.html +583 -583
- package/ext-dist/hud/hud.js +3 -3
- package/ext-dist/hud/index.html +20 -20
- package/ext-dist/manifest.json +73 -73
- package/ext-dist/styles.css +223 -223
- package/mcp.json +796 -805
- package/package.json +8 -8
- package/server.json +23 -23
- package/smithery.yaml +7 -11
- package/dist/cdp/walker.test.d.ts +0 -2
- package/dist/cdp/walker.test.js +0 -172
- package/dist/intelligence/sessionMemory.test.d.ts +0 -2
- package/dist/intelligence/sessionMemory.test.js +0 -62
- package/dist/intelligence/trail.test.d.ts +0 -2
- package/dist/intelligence/trail.test.js +0 -110
- package/dist/state/cache.test.d.ts +0 -2
- package/dist/state/cache.test.js +0 -76
- package/dist/state/delta.test.d.ts +0 -2
- package/dist/state/delta.test.js +0 -279
- package/dist/state/groups.d.ts +0 -15
- package/dist/state/groups.js +0 -80
- package/dist/tools/accessibility.d.ts +0 -14
- package/dist/tools/accessibility.js +0 -32
- package/dist/tools/ask.d.ts +0 -14
- package/dist/tools/ask.js +0 -49
- package/dist/tools/click_and_wait.d.ts +0 -33
- package/dist/tools/click_and_wait.js +0 -149
- package/dist/tools/drag.d.ts +0 -15
- package/dist/tools/drag.js +0 -29
- package/dist/tools/geo.d.ts +0 -19
- package/dist/tools/geo.js +0 -29
- package/dist/tools/github/analyze.d.ts +0 -4
- package/dist/tools/github/analyze.js +0 -113
- package/dist/tools/github/cache.d.ts +0 -21
- package/dist/tools/github/cache.js +0 -28
- package/dist/tools/github/index.d.ts +0 -19
- package/dist/tools/github/index.js +0 -40
- package/dist/tools/github/issues.d.ts +0 -9
- package/dist/tools/github/issues.js +0 -88
- package/dist/tools/github/pr.d.ts +0 -5
- package/dist/tools/github/pr.js +0 -88
- package/dist/tools/github/rateLimiter.d.ts +0 -4
- package/dist/tools/github/rateLimiter.js +0 -46
- package/dist/tools/github/read.d.ts +0 -34
- package/dist/tools/github/read.js +0 -74
- package/dist/tools/github/repoContext.d.ts +0 -20
- package/dist/tools/github/repoContext.js +0 -129
- package/dist/tools/hover.d.ts +0 -19
- package/dist/tools/hover.js +0 -57
- package/dist/tools/integration.test.d.ts +0 -2
- package/dist/tools/integration.test.js +0 -96
- package/dist/tools/macro_compiler.d.ts +0 -7
- package/dist/tools/macro_compiler.js +0 -82
- package/dist/tools/mouse.d.ts +0 -21
- package/dist/tools/mouse.js +0 -62
- package/dist/tools/response.d.ts +0 -129
- package/dist/tools/response.js +0 -5
- package/dist/tools/wait_for.d.ts +0 -23
- package/dist/tools/wait_for.js +0 -30
- package/dist/tools/windows.d.ts +0 -22
- package/dist/tools/windows.js +0 -57
package/dist/sensors/guard.js
CHANGED
|
@@ -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
|
});
|
package/dist/sensors/network.js
CHANGED
|
@@ -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
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
waitMs
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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:
|
|
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";
|