@weavetab/mcp 2.5.0-beta.2 → 2.5.0-beta.5
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 +1 -1
- package/ARCHITECTURE.md +6 -6
- package/LICENSE +216 -631
- package/README.md +153 -1074
- package/SECURITY.md +33 -22
- package/TROUBLESHOOTING.md +2 -2
- package/dist/cdp/bridge.js +2 -1
- package/dist/cdp/connector.d.ts +2 -0
- package/dist/cdp/connector.js +10 -6
- package/dist/cdp/helpers.d.ts +4 -0
- package/dist/cdp/helpers.js +181 -0
- package/dist/cdp/omni_broker.d.ts +1 -1
- package/dist/cdp/omni_broker.js +1 -1
- package/dist/cdp/walker.d.ts +25 -1
- package/dist/cdp/walker.js +304 -7
- package/dist/cli/plugin.d.ts +1 -0
- package/dist/cli/plugin.js +81 -18
- package/dist/cli/updater.d.ts +1 -1
- package/dist/cli/updater.js +27 -7
- package/dist/config/loader.d.ts +9 -1
- package/dist/config/loader.js +42 -3
- package/dist/desktop/discovery.d.ts +44 -0
- package/dist/desktop/discovery.js +364 -0
- package/dist/index.js +137 -21
- package/dist/intelligence/marks.d.ts +36 -0
- package/dist/intelligence/marks.js +30 -0
- package/dist/intelligence/patternCompiler.d.ts +118 -0
- package/dist/intelligence/patternCompiler.js +259 -0
- package/dist/intelligence/sessionMemory.d.ts +2 -0
- package/dist/intelligence/sessionMemory.js +18 -8
- package/dist/overlay/injector.js +2 -2
- package/dist/plugin/interface.d.ts +88 -5
- package/dist/plugin/loader.d.ts +12 -1
- package/dist/plugin/loader.js +280 -70
- package/dist/plugin/pipeline.d.ts +75 -0
- package/dist/plugin/pipeline.js +183 -0
- package/dist/plugin/registry.d.ts +2 -1
- package/dist/plugin/registry.js +24 -14
- package/dist/security/secrets.d.ts +7 -0
- package/dist/security/secrets.js +37 -0
- package/dist/sensors/actionability.js +1 -2
- package/dist/sensors/guard.js +4 -10
- package/dist/sensors/mutations.js +12 -0
- package/dist/sensors/operation_monitor.js +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.js +453 -178
- package/dist/state/agent.d.ts +1 -0
- package/dist/state/agent.js +3 -0
- package/dist/state/delta.d.ts +12 -4
- package/dist/state/delta.js +67 -14
- package/dist/state/session.d.ts +6 -0
- package/dist/state/session.js +27 -0
- package/dist/tools/browser_detect.d.ts +16 -3
- package/dist/tools/browser_detect.js +52 -7
- package/dist/tools/burst.d.ts +17 -8
- package/dist/tools/burst.js +236 -77
- package/dist/tools/captcha.js +1 -1
- package/dist/tools/checkpoint.d.ts +38 -0
- package/dist/tools/checkpoint.js +271 -0
- package/dist/tools/click.d.ts +1 -0
- package/dist/tools/click.js +74 -70
- package/dist/tools/design_extract.js +1 -1
- package/dist/tools/eval.js +1 -1
- package/dist/tools/fill.d.ts +20 -1
- package/dist/tools/fill.js +199 -40
- package/dist/tools/find.d.ts +16 -0
- package/dist/tools/find.js +67 -44
- package/dist/tools/github/index.d.ts +19 -4
- package/dist/tools/github/index.js +40 -4
- package/dist/tools/highlight.d.ts +6 -2
- package/dist/tools/highlight.js +158 -72
- package/dist/tools/inspect.js +1 -1
- package/dist/tools/key.js +65 -56
- package/dist/tools/navigate.d.ts +1 -1
- package/dist/tools/navigate.js +34 -39
- package/dist/tools/pdf.js +21 -13
- package/dist/tools/pointer.d.ts +18 -3
- package/dist/tools/pointer.js +89 -1
- package/dist/tools/read.d.ts +28 -8
- package/dist/tools/read.js +230 -56
- package/dist/tools/scrape.js +67 -13
- package/dist/tools/screenshot.js +21 -16
- package/dist/tools/scroll.js +6 -11
- package/dist/tools/select.js +8 -2
- package/dist/tools/snapshot.js +3 -34
- package/dist/tools/tabs.js +15 -7
- package/dist/tools/thought.d.ts +2 -0
- package/dist/tools/thought.js +13 -14
- package/dist/tools/type.d.ts +2 -0
- package/dist/tools/type.js +107 -58
- package/dist/tools/type_secret.js +42 -76
- package/dist/tools/upload.js +1 -1
- package/dist/tools/video_compiler.d.ts +1 -1
- package/dist/tools/video_compiler.js +11 -12
- package/dist/version.d.ts +5 -0
- package/dist/version.js +5 -0
- package/docs/DOCUMENTATION.md +37 -41
- package/docs/PLUGINS.md +121 -0
- package/docs/TOOLS.md +54 -0
- package/docs/architecture/blind-injection.md +83 -20
- package/docs/architecture/overview.md +49 -49
- package/docs/architecture/security.md +8 -7
- package/docs/architecture/transport.md +2 -2
- package/docs/cli/cli-commands.md +7 -1
- package/docs/cli/cli-flags.md +15 -7
- package/docs/cli/cli-scripting.md +6 -3
- package/docs/configuration/config-locations.md +3 -4
- package/docs/configuration/env-variables.md +4 -4
- package/docs/configuration/folders.md +55 -54
- package/docs/desktop-automation/electron-apps.md +214 -162
- package/docs/get-started/introduction.md +60 -60
- package/docs/get-started/setup-wizard.md +7 -6
- package/docs/intelligence/site-profiles.md +151 -0
- package/docs/tools/tools.md +631 -293
- package/docs/troubleshooting/trouble-browser.md +1 -1
- package/docs/troubleshooting/trouble-loop.md +31 -31
- package/ext-dist/background.js +10 -62
- package/ext-dist/content.js +333 -920
- package/ext-dist/hud/hud.js +9 -9
- package/ext-dist/manifest.json +2 -6
- package/ext-dist/styles.css +6 -1
- package/icon.png +0 -0
- package/mcp.json +87 -71
- package/package.json +118 -119
- package/server.json +5 -5
- package/ext-dist/sidepanel/sidepanel.js +0 -25
- package/ext-dist/sidepanel.html +0 -547
package/ext-dist/hud/hud.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var
|
|
1
|
+
"use strict";(()=>{var R={};window.wtState=R;window.addEventListener("message",e=>{let{type:t,...o}=e.data;if(t?.startsWith("RT_")){R[t]=o;return}$(t,o)});function $(e,t){e==="REHYDRATE"&&window.dispatchEvent(new CustomEvent("wt-rehydrate",{detail:t}))}var c=document.getElementById("rt-canvas"),s=c.getContext("2d"),g=window.innerWidth/2,u=window.innerHeight/2,D=g,L=u,v=0,T=0,d="idle",S="",_=!0;window.addEventListener("message",function(e){e.data&&e.data.type==="WT_SCRIPTED_PILL_TOGGLE"&&(_=!!e.data.enabled)});var W=[],y=[],q=0,w=0;function O(){c.width=window.innerWidth,c.height=window.innerHeight}window.addEventListener("resize",O);O();var H=.15,A=.6,Y=0,x=0,C=0;var U=0,P=0;function E(){let e=window.wtState||{};e.RT_CURSOR_MOVE&&(g=e.RT_CURSOR_MOVE.x,u=e.RT_CURSOR_MOVE.y,d=e.RT_CURSOR_MOVE.phase||"idle",delete e.RT_CURSOR_MOVE),e.RT_CLICK&&(K(e.RT_CLICK.x,e.RT_CLICK.y,"#3b82f6"),d="clicking",C=Date.now(),setTimeout(()=>{d==="clicking"&&(d="idle")},300),delete e.RT_CLICK),e.RT_SCROLL&&(q=e.RT_SCROLL.y,w=e.RT_SCROLL.ratio,delete e.RT_SCROLL);let t=W.length>0||y.length>0||S||d!=="idle"||Math.abs(g-U)>.5||Math.abs(u-P)>.5;if(U=g,P=u,!t){w>0&&w<1&&(s.clearRect(0,0,c.width,c.height),I()),requestAnimationFrame(E);return}s.clearRect(0,0,c.width,c.height),v+=(g-D)*H,T+=(u-L)*H,v*=A,T*=A;let o=Date.now();if(S&&d!=="typing"&&d!=="clicking"){Y+=.016,x+=.03;let n=3;g+=Math.sin(x)*n,u+=Math.cos(x*.7)*n,Math.random()<.02&&(x+=.5)}if(d==="clicking"&&o-C<300){let r=(Math.random()-.5)*2.5,h=(Math.random()-.5)*2.5;g+=r,u+=h;let l=(o-C)/50;g+=Math.sin(l)*1,u+=Math.cos(l)*1}D+=v,L+=T,_&&N(),_&&I(),requestAnimationFrame(E)}function K(e,t,o){for(let n=0;n<15;n++){let r=Math.random()*Math.PI*2,h=Math.random()*4+1;W.push({x:e,y:t,vx:Math.cos(r)*h,vy:Math.sin(r)*h,life:1,color:o})}for(let n=0;n<3;n++)setTimeout(()=>{y.push({x:e,y:t,radius:0,alpha:1})},n*100)}function N(){for(let e=y.length-1;e>=0;e--){let t=y[e];if(t.radius+=3,t.alpha-=.015,t.alpha<=0){y.splice(e,1);continue}s.beginPath(),s.arc(t.x,t.y,t.radius,0,Math.PI*2),s.strokeStyle=`rgba(59, 130, 246, ${t.alpha})`,s.lineWidth=3,s.shadowColor="#3b82f6",s.shadowBlur=10,s.stroke()}}function I(){if(w<=0||w>=1)return;let e=4,t=60,o=c.width-e-10,n=10+(c.height-t-20)*w;s.fillStyle="rgba(59, 130, 246, 0.5)",s.beginPath(),s.roundRect(o,n,e,t,2),s.fill()}requestAnimationFrame(E);var p=!0;function B(){window.addEventListener("message",e=>{e.data.type==="TOGGLE_HUD"&&F()}),window.toggleHUD=F}function F(){p=!p;let e=document.getElementById("rt-canvas"),t=document.getElementById("widgets");e&&(e.style.display=p?"block":"none"),t&&(t.style.display=p?"block":"none"),window.parent.postMessage({type:"HUD_STATE_CHANGED",state:{hudVisible:p}},"*")}function G(e){p=e;let t=document.getElementById("rt-canvas"),o=document.getElementById("widgets");t&&(t.style.display=p?"block":"none"),o&&(o.style.display=p?"block":"none")}var b=!1,a=null,i=null,X="console";function V(){console.log("[Weavetab HUD] Debug menu initialized"),window.addEventListener("message",e=>{console.log("[Weavetab HUD] Received message:",e.data.type),e.data.type==="TOGGLE_DEBUG"&&(console.log("[Weavetab HUD] Toggling debug menu"),z())}),window.toggleDebugMenu=z,console.log("[Weavetab HUD] Debug menu ready - use Ctrl+F3 or WeaveTabHUD.toggleDebugMenu()")}function z(){console.log("[Weavetab HUD] toggleDebugMenu called, current state:",b),b=!b,a||(console.log("[Weavetab HUD] Creating debug menu container"),J()),a&&(a.style.display=b?"flex":"none",console.log("[Weavetab HUD] Debug menu visibility set to:",b)),window.parent.postMessage({type:"HUD_STATE_CHANGED",state:{debugMenuVisible:b}},"*")}function J(){a=document.createElement("div"),a.id="wt-debug-menu",a.style.cssText=`
|
|
2
2
|
position: fixed;
|
|
3
3
|
top: 50%;
|
|
4
4
|
left: 50%;
|
|
@@ -40,25 +40,25 @@
|
|
|
40
40
|
cursor: pointer;
|
|
41
41
|
font-size: 11px;
|
|
42
42
|
font-family: inherit;
|
|
43
|
-
`,m.onclick=()=>
|
|
43
|
+
`,m.onclick=()=>Q(l.toLowerCase()),t.appendChild(m)}),a.appendChild(t);let n=document.createElement("div");n.id="wt-debug-content",n.style.cssText=`
|
|
44
44
|
flex: 1;
|
|
45
45
|
overflow-y: auto;
|
|
46
46
|
padding: 12px 16px;
|
|
47
47
|
min-height: 300px;
|
|
48
|
-
`,
|
|
48
|
+
`,i=document.createElement("div"),i.id="wt-debug-console",i.style.cssText=`
|
|
49
49
|
font-family: 'IBM Plex Mono', monospace;
|
|
50
50
|
font-size: 11px;
|
|
51
51
|
line-height: 1.4;
|
|
52
|
-
`,
|
|
52
|
+
`,i.innerHTML=`
|
|
53
53
|
<div style="color: #6b7280;">[Debug Console Ready]</div>
|
|
54
54
|
<div style="color: #6b7280;">Press Ctrl+F3 to close this menu</div>
|
|
55
55
|
<div style="color: #6b7280; margin-top: 8px;">Use browserAsk to test messaging system</div>
|
|
56
|
-
`,n.appendChild(
|
|
56
|
+
`,n.appendChild(i),a.appendChild(n);let r=document.createElement("div");r.style.cssText=`
|
|
57
57
|
padding: 8px 16px;
|
|
58
58
|
border-top: 1px solid #2a2a30;
|
|
59
59
|
display: flex;
|
|
60
60
|
gap: 8px;
|
|
61
|
-
`,[{label:"Clear",color:"#6b7280",action:()=>
|
|
61
|
+
`,[{label:"Clear",color:"#6b7280",action:()=>Z()},{label:"Test Ask",color:"#3b82f6",action:()=>ee()},{label:"Export",color:"#22c55e",action:()=>te()}].forEach(l=>{let f=document.createElement("button");f.textContent=l.label,f.style.cssText=`
|
|
62
62
|
padding: 4px 12px;
|
|
63
63
|
background: transparent;
|
|
64
64
|
border: 1px solid ${l.color};
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
cursor: pointer;
|
|
68
68
|
font-size: 10px;
|
|
69
69
|
font-family: inherit;
|
|
70
|
-
`,f.onclick=l.action,r.appendChild(f)}),a.appendChild(r),document.getElementById("widgets").appendChild(a)}function
|
|
70
|
+
`,f.onclick=l.action,r.appendChild(f)}),a.appendChild(r),document.getElementById("widgets").appendChild(a)}function Q(e){X=e,a?.querySelectorAll("button[dataset-tab]")?.forEach(o=>{let n=o.dataset.tab===e;o.style.background=n?"#3b82f6":"transparent",o.style.color=n?"#fff":"#9ca3af"}),i&&(e==="console"?i.style.display="block":(i.style.display="none",i.innerHTML=`<div style="color: #6b7280;">[${e.charAt(0).toUpperCase()+e.slice(1)} Tab - Coming Soon]</div>`))}function Z(){i&&(i.innerHTML='<div style="color: #6b7280;">[Console Cleared]</div>')}function ee(){M("Testing ask system...","info"),window.parent.postMessage({type:"TEST_ASK_SYSTEM"},"*")}function te(){if(M("Exporting logs...","info"),i){let e=i.innerText,t=new Blob([e],{type:"text/plain"}),o=URL.createObjectURL(t),n=document.createElement("a");n.href=o,n.download="weavetab-debug-logs.txt",n.click(),URL.revokeObjectURL(o),M("Logs exported successfully","info")}}function M(e,t="info"){if(!i)return;let o={info:"#60a5fa",warn:"#f59e0b",error:"#ef4444"},n=new Date().toLocaleTimeString(),r=document.createElement("div");r.style.cssText=`
|
|
71
71
|
margin-bottom: 4px;
|
|
72
|
-
color: ${
|
|
73
|
-
`,r.innerHTML=`<span style="color: #6b7280;">[${n}]</span> ${e}`,
|
|
72
|
+
color: ${o[t]};
|
|
73
|
+
`,r.innerHTML=`<span style="color: #6b7280;">[${n}]</span> ${e}`,i.appendChild(r),i.scrollTop=i.scrollHeight}function j(e){b=e,a&&(a.style.display=b?"flex":"none")}var ne=!1;function k(){try{ne=window.parent.__wt_devMode===!0}catch(e){console.log("[Weavetab HUD] Could not check devMode:",e)}}B();V();k();window.addEventListener("message",e=>{e.data.type==="WT_CONFIG_UPDATE"&&k()});window.addEventListener("message",e=>{if(e.data.type==="REHYDRATE"){let t=e.data.state||{};t.hudVisible!==void 0&&G(t.hudVisible),t.debugMenuVisible!==void 0&&j(t.debugMenuVisible),k(),window.dispatchEvent(new CustomEvent("wt-rehydrate",{detail:t}))}});window.WeaveTabHUD={};})();
|
package/ext-dist/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"name": "Weavetab Agent",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.62054",
|
|
5
5
|
"description": "Native browser agent for Weavetab MCP",
|
|
6
6
|
"permissions": [
|
|
7
7
|
"tabs",
|
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
"alarms",
|
|
17
17
|
"contextMenus",
|
|
18
18
|
"downloads",
|
|
19
|
-
"browsingData"
|
|
20
|
-
"sidePanel"
|
|
19
|
+
"browsingData"
|
|
21
20
|
],
|
|
22
21
|
"host_permissions": [
|
|
23
22
|
"<all_urls>"
|
|
@@ -25,9 +24,6 @@
|
|
|
25
24
|
"background": {
|
|
26
25
|
"service_worker": "background.js"
|
|
27
26
|
},
|
|
28
|
-
"side_panel": {
|
|
29
|
-
"default_path": "sidepanel.html"
|
|
30
|
-
},
|
|
31
27
|
"content_scripts": [
|
|
32
28
|
{
|
|
33
29
|
"matches": [
|
package/ext-dist/styles.css
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/* ═══════════════════════════════════════════════════════════════
|
|
2
2
|
Weavetab · UI Design System
|
|
3
|
-
Claude Chrome-inspired sidepanel + floating elements
|
|
4
3
|
═══════════════════════════════════════════════════════════════ */
|
|
5
4
|
|
|
6
5
|
/* ── SHARED TOKENS (Light theme default) ─────────────────────── */
|
|
@@ -216,3 +215,9 @@
|
|
|
216
215
|
max-width: 280px !important;
|
|
217
216
|
}
|
|
218
217
|
}
|
|
218
|
+
|
|
219
|
+
/* ── ACTION RIPPLE ANIMATION ─────────────────────────────────── */
|
|
220
|
+
@keyframes __wt_ripple_expand {
|
|
221
|
+
0% { transform: scale(1); opacity: 1; }
|
|
222
|
+
100% { transform: scale(7.5); opacity: 0; }
|
|
223
|
+
}
|
package/icon.png
CHANGED
|
Binary file
|
package/mcp.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weavetab/mcp",
|
|
3
|
-
"mcpName": "io.github.
|
|
4
|
-
"version": "2.5.0-beta.
|
|
3
|
+
"mcpName": "io.github.Weavetab/mcp",
|
|
4
|
+
"version": "2.5.0-beta.5",
|
|
5
5
|
"description": "Weavetab MCP — Direct Layer 0 interface for AI agents across web and desktop applications. Direct socket transport, zero wrapper overhead, deterministic state execution.",
|
|
6
6
|
"icon": "icon.png",
|
|
7
7
|
"author": "fy2ne",
|
|
@@ -38,13 +38,15 @@
|
|
|
38
38
|
"tools": {
|
|
39
39
|
"browser_map": {
|
|
40
40
|
"category": "vision",
|
|
41
|
-
"description": "Snapshot interactive DOM with stable ref IDs (w:NN). For complex SPAs, use scope or query to constrain tokens. Supports delta temporal diffing (up to 97% token reduction), semantic pruning (dropping hidden elements), AX tree fallback (Shadow DOM traversal), scope filtering, query filtering, and forced rebuilds.",
|
|
41
|
+
"description": "Snapshot interactive DOM with stable ref IDs (w:NN). For complex SPAs, use scope or query to constrain tokens. Supports delta temporal diffing (up to 97% token reduction), semantic pruning (dropping hidden elements), Set-of-Marks visual grounding (visual: true / \"auto\" for canvas/WebGL pages), AX tree fallback (Shadow DOM traversal), scope filtering, query filtering, and forced rebuilds with automatic loop strike reset (force: true).",
|
|
42
42
|
"features": [
|
|
43
43
|
"Semantic DOM pruning (up to 97% token reduction with delta)",
|
|
44
|
+
"Set-of-Marks visual grounding (visual: true / \"auto\")",
|
|
44
45
|
"Per-tab snapshot temporal diffing (delta mode)",
|
|
45
46
|
"Shadow DOM / AX tree fallback parsing",
|
|
46
47
|
"Scope and query filtering for complex SPAs",
|
|
47
|
-
"Framework auto-detection injection"
|
|
48
|
+
"Framework auto-detection injection",
|
|
49
|
+
"Loop strike counter reset on forced re-mapping (force: true)"
|
|
48
50
|
]
|
|
49
51
|
},
|
|
50
52
|
"browser_navigate": {
|
|
@@ -59,8 +61,9 @@
|
|
|
59
61
|
},
|
|
60
62
|
"browser_click": {
|
|
61
63
|
"category": "input",
|
|
62
|
-
"description": "Click a DOM element. Physical click engine incorporating Bézier curve trajectory kinematics (Ghost Cursor). Multi-stage targeting fallback: ref ID -> selector -> label -> intent -> coordinates -> backendNodeId.",
|
|
64
|
+
"description": "Click a DOM element. Physical click engine incorporating Bézier curve trajectory kinematics (Ghost Cursor). Multi-stage targeting fallback: mark number (SoM visual grounding) -> ref ID -> selector -> label -> intent -> coordinates -> backendNodeId.",
|
|
63
65
|
"features": [
|
|
66
|
+
"Direct mark number targeting (mark: N) from visual mode",
|
|
64
67
|
"Bézier curve trajectory kinematics",
|
|
65
68
|
"Humanized acceleration and velocity curves",
|
|
66
69
|
"Multi-stage fallback targeting resolution",
|
|
@@ -119,16 +122,18 @@
|
|
|
119
122
|
},
|
|
120
123
|
"browser_burst": {
|
|
121
124
|
"category": "mission_execution",
|
|
122
|
-
"description": "
|
|
125
|
+
"description": "HIGH-SPEED MULTI-ACTION PIPELINE: Executes 2 or more sequential browser actions in a single round-trip without waiting for LLM turns between steps. PREFER THIS over individual single-action calls to slash latency and token burn. Supports native primitives (browser_click, browser_fill, browser_type, browser_type_secret, browser_navigate, browser_key, browser_scroll, browser_wait, browser_map) plus compound macros (type_and_send, click_and_wait, navigate_and_read, scroll_and_read, fill_form). If compile_from_history: true is passed, automatically compiles and executes recent successful session trail actions into a burst macro.",
|
|
123
126
|
"features": [
|
|
124
|
-
"Single-request multi-action pipeline execution",
|
|
125
|
-
"Compound macro
|
|
127
|
+
"Single-request multi-action pipeline execution with zero intermediate LLM round-trips",
|
|
128
|
+
"Compound macro abstractions (type_and_send, click_and_wait, navigate_and_read, scroll_and_read, fill_form, drag_and_drop, hover_and_read)",
|
|
129
|
+
"Automatic session history compilation into replayable burst macros (compile_from_history: true)",
|
|
130
|
+
"Fail-fast execution guard (stop_on_error: true) to prevent cascading errors",
|
|
126
131
|
"Automatic loop counter reset on execution start"
|
|
127
132
|
]
|
|
128
133
|
},
|
|
129
134
|
"browser_tabs": {
|
|
130
135
|
"category": "tabs",
|
|
131
|
-
"description": "Manage browser tabs (open, switch, close, list
|
|
136
|
+
"description": "Manage browser and Electron app tabs/windows (open, switch, close, list). Specify 'app' when targeting desktop apps (e.g. app: 'discord') to avoid opening web browser.",
|
|
132
137
|
"features": [
|
|
133
138
|
"Single and batch tab operations",
|
|
134
139
|
"Duplicate tab consolidation",
|
|
@@ -147,15 +152,24 @@
|
|
|
147
152
|
"Heuristic auto-condition resolution"
|
|
148
153
|
]
|
|
149
154
|
},
|
|
155
|
+
"browser_captcha": {
|
|
156
|
+
"category": "safety",
|
|
157
|
+
"description": "Autonomous zero-API detection and solving of Turnstile, reCAPTCHA, GeeTest, and hCaptcha bot challenges using local CDP behavioral solvers.",
|
|
158
|
+
"features": [
|
|
159
|
+
"Zero-API autonomous solving",
|
|
160
|
+
"Cloudflare Turnstile, reCAPTCHA v2/v3, GeeTest, and hCaptcha support",
|
|
161
|
+
"Human oversight fallback via wait_for_user"
|
|
162
|
+
]
|
|
163
|
+
},
|
|
150
164
|
"browser_thoughts": {
|
|
151
165
|
"category": "dialog_and_interaction",
|
|
152
|
-
"description": "Agent-to-user communication layer rendered
|
|
166
|
+
"description": "Agent-to-user communication layer rendered in the middle down of the page. Supports question mode (interactive prompt with answer submission) and feedback mode (status, observation, decision, or warning update). Supports contextual element anchoring (anchor: 'w:NN') and visual styles ('observation', 'decision', 'warning', 'question').",
|
|
153
167
|
"features": [
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
"Configurable response timeout"
|
|
168
|
+
"Middle-down floating card HUD with precision dark styling",
|
|
169
|
+
"Contextual element anchoring (anchor: 'w:NN') with auto-highlighting",
|
|
170
|
+
"Feedback mode (observation, decision, warning updates)",
|
|
171
|
+
"Question mode (interactive user response directly on page)",
|
|
172
|
+
"Configurable auto-fade and response timeout"
|
|
159
173
|
]
|
|
160
174
|
},
|
|
161
175
|
"browser_pointer": {
|
|
@@ -170,7 +184,7 @@
|
|
|
170
184
|
},
|
|
171
185
|
"browser_select": {
|
|
172
186
|
"category": "input",
|
|
173
|
-
"description": "Select an option from a native dropdown by visible text or value.
|
|
187
|
+
"description": "Select an option from a native dropdown by visible text or value. Uses native property setters and dispatches input/change events for framework compatibility (React, Vue, Angular).",
|
|
174
188
|
"features": [
|
|
175
189
|
"Option matching by visible text or value",
|
|
176
190
|
"Framework-safe prototype property setter invocation",
|
|
@@ -189,11 +203,13 @@
|
|
|
189
203
|
},
|
|
190
204
|
"browser_highlight": {
|
|
191
205
|
"category": "canvas_and_visual",
|
|
192
|
-
"description": "Highlight
|
|
206
|
+
"description": "Highlight elements on page. Renders temporary visual overlays over target elements without DOM tree mutations. Supports multi-element consideration overlays (refs: ['w:12', 'w:15']), presentation styles ('consideration', 'target', 'danger', 'success', 'shimmer'), floating badges, and configurable durations.",
|
|
193
207
|
"features": [
|
|
194
|
-
"
|
|
195
|
-
"
|
|
196
|
-
"
|
|
208
|
+
"Multi-candidate consideration overlay (refs array)",
|
|
209
|
+
"Five visual styles: consideration, target lock, danger, success, shimmer",
|
|
210
|
+
"Floating label badge display above highlighted elements",
|
|
211
|
+
"Configurable duration and color override",
|
|
212
|
+
"Targeting via ref IDs (w:NN), CSS selectors, or CDP backendNodeId"
|
|
197
213
|
]
|
|
198
214
|
},
|
|
199
215
|
"browser_upload": {
|
|
@@ -223,6 +239,17 @@
|
|
|
223
239
|
"Origin storage purging"
|
|
224
240
|
]
|
|
225
241
|
},
|
|
242
|
+
"browser_checkpoint": {
|
|
243
|
+
"category": "storage_and_cookies",
|
|
244
|
+
"description": "Snapshot and restore browser state (cookies, localStorage, sessionStorage, and scroll/URL) into named checkpoints to time-travel and rollback failed automation branches.",
|
|
245
|
+
"features": [
|
|
246
|
+
"Session state time-travel and rollback",
|
|
247
|
+
"Cookies backup and restoration (HttpOnly and Secure via CDP)",
|
|
248
|
+
"LocalStorage and SessionStorage snapshotting",
|
|
249
|
+
"URL, page title, and viewport scroll position persistence",
|
|
250
|
+
"Optional lightweight DOM snapshot capture"
|
|
251
|
+
]
|
|
252
|
+
},
|
|
226
253
|
"browser_network_intercept": {
|
|
227
254
|
"category": "network",
|
|
228
255
|
"description": "Intercept/stub network responses (mock APIs, block tracking) and capture raw protocol network telemetry (TLS/SSL certificate metadata, microsecond timing breakdown, and OS-level network failure reasons).",
|
|
@@ -369,17 +396,9 @@
|
|
|
369
396
|
"Automated raw frame cleanup"
|
|
370
397
|
]
|
|
371
398
|
},
|
|
372
|
-
"browser_reset_loop_counter": {
|
|
373
|
-
"category": "wait_and_timing",
|
|
374
|
-
"description": "Reset the loop detection strike counter to zero when legitimate repetitive actions flag automated safeguards.",
|
|
375
|
-
"features": [
|
|
376
|
-
"Atomic strike counter reset",
|
|
377
|
-
"Explicit reset reason logging"
|
|
378
|
-
]
|
|
379
|
-
},
|
|
380
399
|
"browser_detect": {
|
|
381
400
|
"category": "tabs",
|
|
382
|
-
"description": "Detect available browsers
|
|
401
|
+
"description": "CRITICAL INITIALIZATION TOOL. Detect available browsers and configured desktop apps (Discord, Slack, etc.). Call this FIRST before interacting with the environment to know if apps are online/offline and what tabs they have open.",
|
|
383
402
|
"features": [
|
|
384
403
|
"Local browser engine discovery",
|
|
385
404
|
"Engine CDP API coverage analysis",
|
|
@@ -395,60 +414,57 @@
|
|
|
395
414
|
"Resource loading timing distributions"
|
|
396
415
|
]
|
|
397
416
|
},
|
|
398
|
-
"
|
|
399
|
-
"category": "
|
|
400
|
-
"description": "
|
|
401
|
-
"features": [
|
|
402
|
-
"Interaction trail analysis and compilation",
|
|
403
|
-
"Reusable macro structure generation",
|
|
404
|
-
"Full compatibility with browser_burst engine"
|
|
405
|
-
]
|
|
406
|
-
},
|
|
407
|
-
"github_analyze": {
|
|
408
|
-
"category": "github",
|
|
409
|
-
"description": "Analyze a GitHub repository structure, file tree, and README snippet directly via raw endpoints without API key rate limits.",
|
|
417
|
+
"browser_pattern_learn": {
|
|
418
|
+
"category": "memory",
|
|
419
|
+
"description": "Read (action=get), register (action=learn), update, or record execution outcome for a named workflow pattern on a given origin in ~/.weavetab-system/memory/sites/. Use action=get at session start to inspect site profiles and reliability scores. Use learn after completing a flow to persist it for future fast-path replay.",
|
|
410
420
|
"features": [
|
|
411
|
-
"
|
|
412
|
-
"
|
|
413
|
-
"
|
|
414
|
-
"
|
|
421
|
+
"Site profile inspection via action=get (reads ~/.weavetab-system/memory/sites/)",
|
|
422
|
+
"Named pattern creation and update (merge-on-write, no duplicates)",
|
|
423
|
+
"Volatile selector stabilization before persistence",
|
|
424
|
+
"EWMA reliability score update on execution outcome",
|
|
425
|
+
"3-strike degradation and re-learn flagging",
|
|
426
|
+
"Site quirk registration (cookie_banner, rate_limit, modal_popup)"
|
|
415
427
|
]
|
|
416
428
|
},
|
|
417
|
-
"
|
|
429
|
+
"browser_github": {
|
|
418
430
|
"category": "github",
|
|
419
|
-
"description": "
|
|
431
|
+
"description": "Interact with GitHub repositories without burning browser turns. Analyze repo trees, read raw source files, search/inspect issues, and examine PR diffs and review comments.",
|
|
420
432
|
"features": [
|
|
421
|
-
"
|
|
422
|
-
"
|
|
423
|
-
"
|
|
433
|
+
"Action-based repo analysis, file reading, issues, and PR review",
|
|
434
|
+
"Zero GitHub API token requirement for raw reads",
|
|
435
|
+
"Automated active tab repository context resolution",
|
|
436
|
+
"Line range subset reading and issue/PR search"
|
|
424
437
|
]
|
|
425
438
|
},
|
|
426
|
-
"
|
|
427
|
-
"category": "
|
|
428
|
-
"description": "
|
|
439
|
+
"browser_office": {
|
|
440
|
+
"category": "documents",
|
|
441
|
+
"description": "Read and extract structured content from office documents (Excel, Word, PDF, CSV) via live browser session cookies or local downloads directory.",
|
|
429
442
|
"features": [
|
|
430
|
-
"
|
|
431
|
-
"
|
|
432
|
-
"
|
|
443
|
+
"In-session authenticated document fetching",
|
|
444
|
+
"Structured tabular extraction (.xlsx, .csv)",
|
|
445
|
+
"Document text and metadata extraction (.docx, .pdf)"
|
|
433
446
|
]
|
|
434
447
|
},
|
|
435
|
-
"
|
|
436
|
-
"category": "
|
|
437
|
-
"description": "
|
|
448
|
+
"browser_emulate": {
|
|
449
|
+
"category": "environment",
|
|
450
|
+
"description": "Emulate browser environmental conditions over CDP: network throttling profiles, CPU slowdown multipliers, geolocation overrides, timezone IDs, and custom User-Agent strings.",
|
|
438
451
|
"features": [
|
|
439
|
-
"
|
|
440
|
-
"
|
|
441
|
-
"
|
|
452
|
+
"Network throttling (Offline, Slow 3G, Fast 3G, 4G)",
|
|
453
|
+
"CPU throttling multipliers",
|
|
454
|
+
"Geolocation and timezone overrides"
|
|
442
455
|
]
|
|
443
456
|
}
|
|
444
457
|
},
|
|
445
458
|
"resources": {
|
|
446
459
|
"session_memory": {
|
|
447
|
-
"description": "
|
|
460
|
+
"description": "Two-tier persistent memory system. Tier 1 (~/.weavetab-system/memory/): per-domain selector confidence cache tracking detected web frameworks, Shadow DOM utilization, and interaction strategies. Tier 2 (~/.weavetab-system/memory/sites/): named workflow patterns with EWMA reliability scores, site quirks (cookie banners, rate limits), and fast-path eligibility flags — all accumulated and refined across sessions.",
|
|
448
461
|
"features": [
|
|
449
462
|
"Framework detection (React, Vue, Angular, Lit, Svelte, Next, Nuxt, Gatsby)",
|
|
450
|
-
"Successful selector strategy caching",
|
|
451
|
-
"
|
|
463
|
+
"Successful selector strategy caching with confidence decay (Tier 1)",
|
|
464
|
+
"Named workflow pattern compilation with EWMA reliability scoring (Tier 2)",
|
|
465
|
+
"Site quirk registration: cookie banners, rate limits, modal popups (Tier 2)",
|
|
466
|
+
"3-strike pattern degradation with re-learn flagging (Tier 2)",
|
|
467
|
+
"Fast-path eligibility: patterns with reliability ≥ 0.8 skip exploratory DOM navigation"
|
|
452
468
|
]
|
|
453
469
|
},
|
|
454
470
|
"knowledge_hints": {
|
|
@@ -502,7 +518,7 @@
|
|
|
502
518
|
]
|
|
503
519
|
},
|
|
504
520
|
"vision_fallback": {
|
|
505
|
-
"description": "Local pixel analysis pipeline
|
|
521
|
+
"description": "Local pixel analysis pipeline using sharp for visual layout evaluation when accessibility trees return zero nodes.",
|
|
506
522
|
"pipeline": "AX Tree Check -> Screenshot -> Grayscale -> 4x4 Grid Heatmap -> Text Density -> Clickable Region Analysis",
|
|
507
523
|
"features": [
|
|
508
524
|
"Local execution (zero external API dependencies)",
|
|
@@ -520,7 +536,7 @@
|
|
|
520
536
|
"features": [
|
|
521
537
|
"Rolling action window evaluation",
|
|
522
538
|
"Escalating alert tiers",
|
|
523
|
-
"Manual reset via
|
|
539
|
+
"Manual reset via browser_map({ force: true }) or browser_wait({ reset_loop: true })"
|
|
524
540
|
]
|
|
525
541
|
},
|
|
526
542
|
"framework_detection": {
|
|
@@ -554,9 +570,9 @@
|
|
|
554
570
|
"rbac": {
|
|
555
571
|
"description": "Role-Based Access Control enforcing tool execution boundaries based on configured session role.",
|
|
556
572
|
"roles": {
|
|
557
|
-
"admin": "Full access to all
|
|
573
|
+
"admin": "Full access to all 44 tools and system operations",
|
|
558
574
|
"system": "Full tool access excluding system-level operations",
|
|
559
|
-
"viewer": "Read-only access (browser_map, browser_find, browser_scrape, browser_screenshot, browser_inspect, browser_snapshot, browser_console, browser_pdf, browser_storage, browser_cookies, browser_tabs, browser_wait,
|
|
575
|
+
"viewer": "Read-only access (browser_map, browser_find, browser_scrape, browser_screenshot, browser_inspect, browser_snapshot, browser_console, browser_pdf, browser_storage, browser_cookies, browser_tabs, browser_wait, browser_github)",
|
|
560
576
|
"automation": "Restricted execution set for non-interactive automated workflows"
|
|
561
577
|
}
|
|
562
578
|
},
|
|
@@ -771,7 +787,7 @@
|
|
|
771
787
|
}
|
|
772
788
|
},
|
|
773
789
|
"metadata": {
|
|
774
|
-
"total_tools":
|
|
790
|
+
"total_tools": 50,
|
|
775
791
|
"tool_categories": 15,
|
|
776
792
|
"latency": "3-8ms mean",
|
|
777
793
|
"token_efficiency": "Up to 97% reduction via semantic delta engine + DOM pruner",
|
|
@@ -786,4 +802,4 @@
|
|
|
786
802
|
"weavetab"
|
|
787
803
|
]
|
|
788
804
|
}
|
|
789
|
-
}
|
|
805
|
+
}
|