@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
package/mcp.json CHANGED
@@ -1,805 +1,796 @@
1
- {
2
- "name": "@weavetab/mcp",
3
- "mcpName": "dev.weavetab/mcp",
4
- "version": "2.5.0",
5
- "description": "The open automation engine for AI agents. Control live browsers and desktop apps locally with instant execution.",
6
- "icon": "icon.png",
7
- "author": "fy2ne",
8
- "license": "AGPL-3.0-only",
9
- "homepage": "https://github.com/weavetab/mcp",
10
- "repository": "https://github.com/weavetab/mcp",
11
- "keywords": [
12
- "weavetab",
13
- "mcp",
14
- "model context protocol",
15
- "browser automation",
16
- "electron automation",
17
- "desktop automation",
18
- "chrome devtools protocol",
19
- "cdp",
20
- "ai agent",
21
- "claude mcp",
22
- "cursor mcp",
23
- "autonomous agent",
24
- "browser control",
25
- "tab management",
26
- "web automation"
27
- ],
28
- "runtime": {
29
- "command": "node",
30
- "args": [
31
- "dist/index.js"
32
- ],
33
- "env": {
34
- "NODE_ENV": "production"
35
- }
36
- },
37
- "capabilities": {
38
- "tools": {
39
- "browser_map": {
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), 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
- "features": [
43
- "Semantic DOM pruning (up to 97% token reduction with delta)",
44
- "Set-of-Marks visual grounding (visual: true / \"auto\")",
45
- "Per-tab snapshot temporal diffing (delta mode)",
46
- "Shadow DOM / AX tree fallback parsing",
47
- "Scope and query filtering for complex SPAs",
48
- "Framework auto-detection injection",
49
- "Loop strike counter reset on forced re-mapping (force: true)"
50
- ]
51
- },
52
- "browser_navigate": {
53
- "category": "navigation",
54
- "description": "Navigate to a URL. Enforces domain security policies and rate limits prior to navigation. Waits for network idle and DOM readiness. Supports internal protocol schemes (e.g. weavetab://).",
55
- "features": [
56
- "Domain policy engine and blocklist enforcement",
57
- "Deterministic DOM stability and network idle waiting",
58
- "weavetab:// internal protocol support",
59
- "Targeted tab navigation via tab_id"
60
- ]
61
- },
62
- "browser_click": {
63
- "category": "input",
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.",
65
- "features": [
66
- "Direct mark number targeting (mark: N) from visual mode",
67
- "Bézier curve trajectory kinematics",
68
- "Humanized acceleration and velocity curves",
69
- "Multi-stage fallback targeting resolution",
70
- "Intent-based historical strategy resolution",
71
- "Single-call post-click page map retrieval (include_map)",
72
- "Shadow DOM element targeting"
73
- ]
74
- },
75
- "browser_type": {
76
- "category": "input",
77
- "description": "Type text into a single input field. Keystroke dispatch engine with per-character temporal jitter and burst profiling. Real-time DOM-diffing monitors stuck input state. Supports atomic clearFirst and clipboard paste modes.",
78
- "features": [
79
- "Per-character temporal jitter simulation",
80
- "Burst keystroke profiling",
81
- "Stuck-typing loop detection via DOM diffing",
82
- "Atomic input value resetting (clearFirst)",
83
- "Clipboard paste injection for long text"
84
- ]
85
- },
86
- "browser_type_secret": {
87
- "category": "input",
88
- "description": "Inject a secret from an environment variable / secrets.json. Blind Injection: securely injects credentials without exposing sensitive values to the LLM context. Permanently masked as [REDACTED] in DOM maps and logs.",
89
- "features": [
90
- "Zero LLM context exposure for credentials",
91
- "Domain-scoped authorization checks",
92
- "Shadow DOM input isolation",
93
- "Permanent [REDACTED] masking across logs and snapshots"
94
- ]
95
- },
96
- "browser_key": {
97
- "category": "input",
98
- "description": "Press a keyboard key. Dispatches native hardware key events with modifier key support (Ctrl, Shift, Alt, Meta) to focused elements.",
99
- "features": [
100
- "Native key code and key identifier mapping",
101
- "Modifier key combination handling",
102
- "Per-tab keyboard focus targeting"
103
- ]
104
- },
105
- "browser_scroll": {
106
- "category": "input",
107
- "description": "Scroll the page or targeted element. Smooth scrolling engine via CDP Input.dispatchMouseEvent wheel events. Supports directional delta scrolling and element-relative scroll centering.",
108
- "features": [
109
- "Directional scrolling (up, down, left, right)",
110
- "Configurable pixel scroll distance",
111
- "Element-relative scroll targeting via ref ID or label"
112
- ]
113
- },
114
- "browser_dialog": {
115
- "category": "dialog_and_interaction",
116
- "description": "Accept or dismiss JS dialogs (alert, confirm, prompt) via CDP Page.handleJavaScriptDialog.",
117
- "features": [
118
- "Handling of alert, confirm, and prompt modal types",
119
- "Accept and dismiss actions",
120
- "Prompt response text payload submission"
121
- ]
122
- },
123
- "browser_burst": {
124
- "category": "mission_execution",
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.",
126
- "features": [
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",
131
- "Automatic loop counter reset on execution start"
132
- ]
133
- },
134
- "browser_tabs": {
135
- "category": "tabs",
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.",
137
- "features": [
138
- "Single and batch tab operations",
139
- "Duplicate tab consolidation",
140
- "Crash session recovery (heal)",
141
- "Background tab targeting",
142
- "URL tab reuse prevention"
143
- ]
144
- },
145
- "browser_wait": {
146
- "category": "navigation",
147
- "description": "Pause until a condition is met ('element', 'text', 'url', 'stable', 'network', 'auto'). Deterministic wait engine for asynchronous web state synchronization.",
148
- "features": [
149
- "Element, text, URL, DOM stability, and network idle conditions",
150
- "Configurable timeout thresholds",
151
- "Per-tab asynchronous execution target",
152
- "Heuristic auto-condition resolution"
153
- ]
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
- },
164
- "browser_thoughts": {
165
- "category": "dialog_and_interaction",
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').",
167
- "features": [
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"
173
- ]
174
- },
175
- "browser_pointer": {
176
- "category": "input",
177
- "description": "Advanced pointer control (hover, click, double_click, drag_and_drop) with Bézier curve kinematics. Supports waitForChild pattern for dynamic flyout menus.",
178
- "features": [
179
- "Hover, click, double_click, and drag_and_drop actions",
180
- "Bézier curve cursor motion",
181
- "waitForChild trigger menu resolution",
182
- "Configurable hold duration (holdMs)"
183
- ]
184
- },
185
- "browser_select": {
186
- "category": "input",
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).",
188
- "features": [
189
- "Option matching by visible text or value",
190
- "Framework-safe prototype property setter invocation",
191
- "Synthetic input and change event dispatch"
192
- ]
193
- },
194
- "browser_fill": {
195
- "category": "input",
196
- "description": "Smart multi-field form-filling. Evaluates field control types (text, select, checkbox, radio, contenteditable) and processes inputs sequentially with atomic verification.",
197
- "features": [
198
- "Multi-field batch input execution",
199
- "Automatic control type classification",
200
- "Per-field post-input verification",
201
- "Optional form submission click step"
202
- ]
203
- },
204
- "browser_highlight": {
205
- "category": "canvas_and_visual",
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.",
207
- "features": [
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"
213
- ]
214
- },
215
- "browser_upload": {
216
- "category": "input",
217
- "description": "Upload files to a file input. Bypasses OS native file pickers via CDP DOM.setFileInputFiles directly targeting file input node IDs using absolute file paths.",
218
- "features": [
219
- "Direct CDP file payload injection",
220
- "Multi-file payload support",
221
- "Zero OS file picker interaction required"
222
- ]
223
- },
224
- "browser_find": {
225
- "category": "vision",
226
- "description": "Sub-5ms CDP text search. Zero token waste. Best for locating specific keywords/text on page without a full DOM walk.",
227
- "features": [
228
- "Native CDP search (zero DOM walk overhead)",
229
- "Sub-5ms execution latency",
230
- "Exact keyword matching and match indexing"
231
- ]
232
- },
233
- "browser_storage": {
234
- "category": "storage_and_cookies",
235
- "description": "Manage localStorage and sessionStorage. Reads, writes, and clears key-value pairs for the active origin.",
236
- "features": [
237
- "localStorage and sessionStorage scope targeting",
238
- "Atomic key-value retrieval and mutation",
239
- "Origin storage purging"
240
- ]
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
- },
253
- "browser_network_intercept": {
254
- "category": "network",
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).",
256
- "features": [
257
- "URL glob pattern matching and response mocking",
258
- "TLS/SSL Certificate security metadata (issuer, protocol, validity, cipher)",
259
- "Microsecond Network Timing breakdown (DNS, TCP, SSL, send, TTFB, download)",
260
- "OS-level network failure diagnostics (net::ERR_* codes, blocked reasons)"
261
- ]
262
- },
263
- "browser_console": {
264
- "category": "vision",
265
- "description": "1-5ms latency access to buffered browser console messages, JS exceptions, and network errors tracked via CDP Runtime.consoleAPICalled.",
266
- "features": [
267
- "Buffered console output stream retrieval",
268
- "Buffer clearance actions",
269
- "Runtime exception stack capture",
270
- "Timestamped severity logging"
271
- ]
272
- },
273
- "browser_pdf": {
274
- "category": "output",
275
- "description": "Print the current page to a PDF file via CDP Page.printToPDF with configurable orientation, scale, and page ranges.",
276
- "features": [
277
- "Landscape and portrait orientation options",
278
- "Print scale factor adjustment",
279
- "Page range subset printing",
280
- "Direct filesystem destination output"
281
- ]
282
- },
283
- "browser_eval": {
284
- "category": "evaluation",
285
- "description": "Run arbitrary JS via CDP in page context via CDP Runtime.evaluate. Supports asynchronous evaluation and structured JSON serialization.",
286
- "features": [
287
- "Page JS context execution",
288
- "Async/await promise resolution",
289
- "Structured JSON return serialization",
290
- "Role-based authorization checks"
291
- ]
292
- },
293
- "browser_cookies": {
294
- "category": "storage_and_cookies",
295
- "description": "Manage browser cookies. Full CRUD management for HTTP and document cookies via CDP Network domain.",
296
- "features": [
297
- "Cookie property retrieval, setting, and deletion",
298
- "Domain and path attribute scoping"
299
- ]
300
- },
301
- "browser_canvas": {
302
- "category": "canvas_and_visual",
303
- "description": "For ALL canvas content (charts, games, graphs). Use get_image to read pixel data as Base64 PNG, draw to simulate programmatic coordinate gesture paths.",
304
- "features": [
305
- "Base64 PNG pixel buffer export",
306
- "Programmatic gesture path drawing",
307
- "Canvas node targeting via ref ID or selector"
308
- ]
309
- },
310
- "browser_scrape": {
311
- "category": "vision",
312
- "description": "Sub-5ms latency, zero waste extraction via CSS or XPath selectors in a single CDP evaluation step. Returns structured text/attribute arrays.",
313
- "features": [
314
- "CSS and XPath query evaluation",
315
- "Targeted attribute extraction",
316
- "Single-step execution (high throughput)",
317
- "Single-element and array extraction modes"
318
- ]
319
- },
320
- "browser_snapshot": {
321
- "category": "vision",
322
- "description": "Capture or restore an MHTML snapshot (DOM + inline assets). Facilitates offline state serialization, replay verification, and compliance auditing.",
323
- "features": [
324
- "Full DOM and asset stream serialization",
325
- "Atomic capture and restore operations",
326
- "Offline state audit capability"
327
- ]
328
- },
329
- "browser_screenshot": {
330
- "category": "vision",
331
- "description": "95-135ms capture latency via CDP Page.captureScreenshot. Supports PNG and JPEG formats, full-page rendering, and clip region bounding boxes.",
332
- "features": [
333
- "Full-page and viewport bounding box capture",
334
- "PNG and JPEG format encoding",
335
- "Custom clip region bounding box support",
336
- "In-memory Base64 data URL output (zero disk I/O)"
337
- ]
338
- },
339
- "browser_viewport": {
340
- "category": "device_and_environment",
341
- "description": "Set viewport dimensions and device emulation (width, height, DPR, mobile, geolocation, timezone, locale, color scheme).",
342
- "features": [
343
- "Viewport width, height, and DPR emulation",
344
- "Mobile viewport and touch event emulation",
345
- "Geolocation coordinate override",
346
- "IANA timezone and locale override",
347
- "Color scheme preference override (light/dark)"
348
- ]
349
- },
350
- "browser_clipboard": {
351
- "category": "dialog_and_interaction",
352
- "description": "Read or write to the system clipboard (plaintext or Base64 image payload data).",
353
- "features": [
354
- "Read and write data operations",
355
- "Plaintext and Base64 image payload format support"
356
- ]
357
- },
358
- "browser_inspect": {
359
- "category": "vision",
360
- "description": "15-35ms latency, zero waste. Deep DOM inspection returning computed styles, inline styles, box model dimensions, and attached event listener types.",
361
- "features": [
362
- "Computed CSS style property inspection",
363
- "Event listener type registration enumeration",
364
- "Box model geometry verification",
365
- "Targeting via ref ID, selector, or nodeId"
366
- ]
367
- },
368
- "browser_extract_design": {
369
- "category": "vision",
370
- "description": "Extract design tokens (colors, typography, spacing, shadows, CSS variables), semantic HTML layouts, and clean CSS into structured files and an LLM design blueprint. Ideal for cloning websites, UI components, and design systems with 100% pixel fidelity.",
371
- "features": [
372
- "CSS custom properties and design token harvesting",
373
- "Palette extraction and typography hierarchy mapping",
374
- "Semantic clean DOM extraction with inline SVGs preserved",
375
- "Automatic file persistence into configurable designDir (~/.weavetab/designs/)",
376
- "Tailwind CSS theme.extend preset generation",
377
- "Compact LLM summary preventing context window bloat"
378
- ]
379
- },
380
- "browser_automation": {
381
- "category": "mission_execution",
382
- "description": "Inject self-running background script for monitoring/polling. Inject persistent scripts into the page context for continuous event tracking.",
383
- "features": [
384
- "Background script context injection",
385
- "Named automation script management",
386
- "Decoupled event monitoring lifecycle"
387
- ]
388
- },
389
- "browser_recording": {
390
- "category": "output",
391
- "description": "Record video screencasts of browser sessions. Automatically compiles captured frames into animated video files (.webp, .gif, .webm, .mp4) using native Node processing or system ffmpeg.",
392
- "features": [
393
- "Native WebP/GIF animation compilation in pure Node",
394
- "Configurable FPS and frame limits",
395
- "FFmpeg fallback for WebM/MP4 encoding",
396
- "Automated raw frame cleanup"
397
- ]
398
- },
399
- "browser_detect": {
400
- "category": "tabs",
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.",
402
- "features": [
403
- "Local browser engine discovery",
404
- "Engine CDP API coverage analysis",
405
- "Tool compatibility reporting per browser engine"
406
- ]
407
- },
408
- "browser_performance": {
409
- "category": "performance",
410
- "description": "Retrieve page performance metrics. Collects Core Web Vitals (FCP, LCP, CLS) and detailed network resource timing distributions.",
411
- "features": [
412
- "First Contentful Paint (FCP) and Largest Contentful Paint (LCP) capture",
413
- "Cumulative Layout Shift (CLS) tracking",
414
- "Resource loading timing distributions"
415
- ]
416
- },
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.",
420
- "features": [
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)"
427
- ]
428
- },
429
- "browser_github": {
430
- "category": "github",
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.",
432
- "features": [
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"
437
- ]
438
- },
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.",
442
- "features": [
443
- "In-session authenticated document fetching",
444
- "Structured tabular extraction (.xlsx, .csv)",
445
- "Document text and metadata extraction (.docx, .pdf)"
446
- ]
447
- },
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.",
451
- "features": [
452
- "Network throttling (Offline, Slow 3G, Fast 3G, 4G)",
453
- "CPU throttling multipliers",
454
- "Geolocation and timezone overrides"
455
- ]
456
- }
457
- },
458
- "resources": {
459
- "session_memory": {
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.",
461
- "features": [
462
- "Framework detection (React, Vue, Angular, Lit, Svelte, Next, Nuxt, Gatsby)",
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"
468
- ]
469
- },
470
- "knowledge_hints": {
471
- "description": "Domain-specific hint storage (~/.weavetab/knowledge/[domain].md) injecting context notes into session prompts.",
472
- "features": [
473
- "Domain quirk notes",
474
- "Timestamped entry tracking",
475
- "Prompt context injection budget (20 tokens)"
476
- ]
477
- },
478
- "trail_log": {
479
- "description": "Rolling 50-action window (~/.weavetab-system/sessions/context.json) powering strike-based loop detection algorithms.",
480
- "features": [
481
- "50-action rolling window tracking",
482
- "Strike-based loop detection heuristics",
483
- "Auto-reset triggers on navigation, tab switch, or burst start"
484
- ]
485
- },
486
- "network_telemetry": {
487
- "description": "Real-time network event tracking via CDP Network domain measuring request/response timing and HTTP error rates.",
488
- "features": [
489
- "Request and response latency tracking",
490
- "Resource classification",
491
- "HTTP status code tracking"
492
- ]
493
- },
494
- "mutation_observer": {
495
- "description": "CDP-driven DOM mutation tracking measuring dynamic subtree changes for SPA stabilization.",
496
- "features": [
497
- "Attribute mutation tracking",
498
- "Node insertion/removal events",
499
- "Subtree modification tracking"
500
- ]
501
- }
502
- },
503
- "intelligence": {
504
- "semantic_delta_engine": {
505
- "description": "Per-tab DOM state diffing engine returning strictly modified elements between snapshots, cutting prompt token consumption up to 97%.",
506
- "features": [
507
- "Per-tab baseline snapshot storage",
508
- "Property-level change detection (label, value, state, class)",
509
- "Action recommendation generation"
510
- ]
511
- },
512
- "semantic_dom_pruner": {
513
- "description": "AST-based DOM compression algorithm executed before snapshot returns. Removes non-interactive hidden elements and converts SVG icons to tokens.",
514
- "features": [
515
- "Hidden element pruning",
516
- "SVG icon compression",
517
- "Interactive tree preservation"
518
- ]
519
- },
520
- "vision_fallback": {
521
- "description": "Local pixel analysis pipeline using sharp for visual layout evaluation when accessibility trees return zero nodes.",
522
- "pipeline": "AX Tree Check -> Screenshot -> Grayscale -> 4x4 Grid Heatmap -> Text Density -> Clickable Region Analysis",
523
- "features": [
524
- "Local execution (zero external API dependencies)",
525
- "4x4 visual density grid heatmap",
526
- "Clickable zone classification"
527
- ]
528
- },
529
- "loop_detection": {
530
- "description": "Strike-based loop detection algorithm over rolling 50-action windows with automated escalation.",
531
- "thresholds": {
532
- "0-4 strikes": "Normal execution",
533
- "5-9 strikes": "Warning notification in HUD",
534
- "10+ strikes": "Stuck state classification and auto-recovery activation"
535
- },
536
- "features": [
537
- "Rolling action window evaluation",
538
- "Escalating alert tiers",
539
- "Manual reset via browser_map({ force: true }) or browser_wait({ reset_loop: true })"
540
- ]
541
- },
542
- "framework_detection": {
543
- "description": "Heuristic detection of web application frameworks via CDP Runtime.evaluate probes.",
544
- "detectedFrameworks": [
545
- "React",
546
- "Vue",
547
- "Angular",
548
- "Lit",
549
- "Svelte",
550
- "Next",
551
- "Nuxt",
552
- "Gatsby"
553
- ],
554
- "features": [
555
- "Zero-overhead runtime probing",
556
- "Shadow DOM usage identification",
557
- "Domain memory persistence"
558
- ]
559
- },
560
- "intent_resolution": {
561
- "description": "Semantic element resolution resolving natural language action descriptions to DOM ref IDs using session memory scoring.",
562
- "features": [
563
- "Natural language intent scoring",
564
- "Historical selector memory integration",
565
- "Live DOM context matching"
566
- ]
567
- }
568
- },
569
- "security": {
570
- "rbac": {
571
- "description": "Role-Based Access Control enforcing tool execution boundaries based on configured session role.",
572
- "roles": {
573
- "admin": "Full access to all 44 tools and system operations",
574
- "system": "Full tool access excluding system-level operations",
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)",
576
- "automation": "Restricted execution set for non-interactive automated workflows"
577
- }
578
- },
579
- "domain_policy": {
580
- "description": "Domain-level access control policy engine configured via ~/.weavetab/policy.json with enforced security domain blocklists.",
581
- "modes": {
582
- "allow": "Unrestricted tool access",
583
- "read-only": "Mutation tool execution blocked",
584
- "deny": "Navigation and interaction blocked",
585
- "audit": "Unrestricted access with enhanced audit logging"
586
- }
587
- },
588
- "rate_limiting": {
589
- "description": "Mutex-guarded rate limiter enforcing maximum action frequencies.",
590
- "features": [
591
- "Configurable action per minute threshold (default 60)",
592
- "Mutex lock enforcement",
593
- "Clear rate limit exception messaging"
594
- ]
595
- },
596
- "blind_injection": {
597
- "description": "Credential injection via browser_type_secret. Resolves secret values server-side from secrets.json without context exposure to the LLM.",
598
- "secretsFormat": {
599
- "KEY_NAME": {
600
- "value": "secret-value",
601
- "domains": [
602
- "example.com"
603
- ],
604
- "description": "Secret description"
605
- }
606
- },
607
- "resolutionOrder": [
608
- "./.weavetab/secrets.json (project)",
609
- "~/.weavetab/secrets.json (global)"
610
- ]
611
- },
612
- "input_filter": {
613
- "description": "Sanitizes DOM snapshots before context return by stripping prompt injection patterns and invisible characters.",
614
- "features": [
615
- "Prompt injection pattern filtering",
616
- "Control character stripping",
617
- "Excessive label length truncation"
618
- ]
619
- },
620
- "additional_mechanisms": {
621
- "localhost_binding": "CDP WebSocket connection restricted strictly to 127.0.0.1",
622
- "root_guard": "Startup execution block for root/superuser processes (Unix)",
623
- "storage_blocker": "Configurable nullification of web storage and document.cookie",
624
- "atomic_config_writes": "Atomic configuration file writes via temporary file renaming",
625
- "path_traversal_protection": "Strict validation of download and profile directories against path traversal",
626
- "two_factor_lock_validation": "Browser lock verification via PID liveness and TCP port checks"
627
- }
628
- },
629
- "transport": {
630
- "stdio": {
631
- "description": "Standard JSON-RPC over stdio streams. Default mode for MCP clients.",
632
- "default": true,
633
- "cli": "weavetab"
634
- },
635
- "websocket": {
636
- "description": "JSON-RPC over WebSocket for distributed agent pipelines.",
637
- "default": false,
638
- "configurable": true
639
- }
640
- },
641
- "overlay": {
642
- "hud": {
643
- "description": "Shadow DOM HUD overlay injected into browser tabs displaying execution state and thoughts.",
644
- "features": [
645
- "Mission status display",
646
- "Thought bubble rendering",
647
- "Task plan visualization",
648
- "Shadow DOM isolation"
649
- ]
650
- },
651
- "ghost_cursor": {
652
- "description": "Visual pointer trajectory overlay displaying humanized Bézier motion during interaction.",
653
- "features": [
654
- "Bézier trajectory visualization",
655
- "Acceleration curve rendering",
656
- "Target element highlight overlay"
657
- ]
658
- }
659
- },
660
- "plugins": {
661
- "description": "Dynamic plugin system discovering any npm package containing weavetab.json and @weavetab/plugin-* packages at startup.",
662
- "manifest": "weavetab.json",
663
- "features": [
664
- "Automatic package discovery",
665
- "Native MCP tool registration",
666
- "Unified security pipeline integration"
667
- ]
668
- },
669
- "skills": {
670
- "description": "Optional companion package (@weavetab/skills) providing mission templates.",
671
- "package": "@weavetab/skills",
672
- "repository": "https://github.com/weavetab/skills",
673
- "install": "npm install -g @weavetab/skills",
674
- "availableSkills": [
675
- "Multi-step Form Automation",
676
- "E-commerce Checkout",
677
- "Data Extraction Pipelines",
678
- "Content Management Systems",
679
- "API Testing & Validation"
680
- ]
681
- }
682
- },
683
- "configuration": {
684
- "configLocations": {
685
- "global": "~/.weavetab/config.json",
686
- "project": ".weavetab/config.json (precedes global)"
687
- },
688
- "options": {
689
- "browserType": {
690
- "type": "string",
691
- "default": "chromium",
692
- "options": [
693
- "chromium",
694
- "firefox",
695
- "webkit"
696
- ],
697
- "description": "Browser engine target"
698
- },
699
- "headless": {
700
- "type": "boolean",
701
- "default": false,
702
- "description": "Headless mode toggle"
703
- },
704
- "devMode": {
705
- "type": "boolean",
706
- "default": false,
707
- "description": "Verbose CDP logging and HUD overlay toggle"
708
- },
709
- "maxActionsPerMinute": {
710
- "type": "number",
711
- "default": 60,
712
- "description": "Action rate limit threshold"
713
- },
714
- "role": {
715
- "type": "string",
716
- "default": "admin",
717
- "options": [
718
- "admin",
719
- "system",
720
- "viewer",
721
- "automation"
722
- ],
723
- "description": "Session RBAC role"
724
- },
725
- "telemetry": {
726
- "type": "boolean",
727
- "default": false,
728
- "description": "Opt-in anonymous usage telemetry toggle"
729
- },
730
- "attachPort": {
731
- "type": "number",
732
- "default": 0,
733
- "description": "Chrome DevTools Protocol attach port"
734
- },
735
- "extension": {
736
- "type": "boolean",
737
- "default": true,
738
- "description": "Enable Weavetab Chrome extension integration"
739
- },
740
- "maxTabs": {
741
- "type": "number",
742
- "default": 10,
743
- "description": "Maximum tracked tab count"
744
- },
745
- "navigationTimeout": {
746
- "type": "number",
747
- "default": 3600,
748
- "description": "Navigation timeout in seconds"
749
- },
750
- "actionabilityTimeoutMs": {
751
- "type": "number",
752
- "default": 500,
753
- "description": "Element actionability wait timeout in ms"
754
- }
755
- },
756
- "domainPolicy": {
757
- "location": "~/.weavetab/policy.json",
758
- "format": {
759
- "policies": [
760
- {
761
- "pattern": "*.example.com",
762
- "mode": "allow | read-only | deny | audit"
763
- }
764
- ]
765
- }
766
- },
767
- "secretsManagement": {
768
- "locations": [
769
- ".weavetab/secrets.json (project-scoped)",
770
- "~/.weavetab/secrets.json (global default)"
771
- ],
772
- "cli": [
773
- "weavetab secrets set KEY_NAME",
774
- "weavetab secrets list",
775
- "weavetab secrets rm KEY_NAME",
776
- "weavetab secrets init --project"
777
- ],
778
- "format": {
779
- "KEY_NAME": {
780
- "value": "secret-value",
781
- "domains": [
782
- "example.com"
783
- ],
784
- "description": "Secret description"
785
- }
786
- }
787
- }
788
- },
789
- "metadata": {
790
- "total_tools": 50,
791
- "tool_categories": 15,
792
- "latency": "3-8ms mean",
793
- "token_efficiency": "Up to 97% reduction via semantic delta engine + DOM pruner",
794
- "architecture": "Direct CDP WebSocket (Layer 0) — zero WebDriver, Playwright, or Puppeteer wrapper overhead",
795
- "security": "Domain blacklist + RBAC (4 roles) + rate limiting + Blind Injection (secrets.json)",
796
- "session_memory": "Persistent per-domain profiles with framework detection and strategy caching",
797
- "loop_detection": "Strike-based (50-action window), auto-recovery at 10+ strikes",
798
- "plugin_system": "Dynamic universal weavetab.json & @weavetab/plugin-* auto-discovery",
799
- "skills_package": "@weavetab/skills — https://github.com/weavetab/skills",
800
- "transport": "stdio (default) or WebSocket (--ws)",
801
- "binary": [
802
- "weavetab"
803
- ]
804
- }
805
- }
1
+ {
2
+ "name": "@weavetab/mcp",
3
+ "mcpName": "dev.weavetab/mcp",
4
+ "version": "2.5.1",
5
+ "description": "The open automation engine for AI agents. Control live browsers and desktop apps locally with instant execution.",
6
+ "icon": "icon.png",
7
+ "author": "fy2ne",
8
+ "license": "AGPL-3.0-only",
9
+ "homepage": "https://github.com/weavetab/mcp",
10
+ "repository": "https://github.com/weavetab/mcp",
11
+ "keywords": [
12
+ "weavetab",
13
+ "mcp",
14
+ "model context protocol",
15
+ "browser automation",
16
+ "electron automation",
17
+ "desktop automation",
18
+ "chrome devtools protocol",
19
+ "cdp",
20
+ "ai agent",
21
+ "claude mcp",
22
+ "cursor mcp",
23
+ "autonomous agent",
24
+ "browser control",
25
+ "tab management",
26
+ "web automation"
27
+ ],
28
+ "runtime": {
29
+ "command": "node",
30
+ "args": [
31
+ "dist/index.js"
32
+ ],
33
+ "env": {
34
+ "NODE_ENV": "production"
35
+ }
36
+ },
37
+ "capabilities": {
38
+ "tools": {
39
+ "browser_map": {
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), 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
+ "features": [
43
+ "Semantic DOM pruning (up to 97% token reduction with delta)",
44
+ "Set-of-Marks visual grounding (visual: true / \"auto\")",
45
+ "Per-tab snapshot temporal diffing (delta mode)",
46
+ "Shadow DOM / AX tree fallback parsing",
47
+ "Scope and query filtering for complex SPAs",
48
+ "Framework auto-detection injection",
49
+ "Loop strike counter reset on forced re-mapping (force: true)"
50
+ ]
51
+ },
52
+ "browser_navigate": {
53
+ "category": "navigation",
54
+ "description": "Navigate to a URL. Enforces domain security policies and rate limits prior to navigation. Waits for network idle and DOM readiness. Supports internal protocol schemes (e.g. weavetab://).",
55
+ "features": [
56
+ "Domain policy engine and blocklist enforcement",
57
+ "Deterministic DOM stability and network idle waiting",
58
+ "weavetab:// internal protocol support",
59
+ "Targeted tab navigation via tab_id"
60
+ ]
61
+ },
62
+ "browser_click": {
63
+ "category": "input",
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.",
65
+ "features": [
66
+ "Direct mark number targeting (mark: N) from visual mode",
67
+ "Bézier curve trajectory kinematics",
68
+ "Humanized acceleration and velocity curves",
69
+ "Multi-stage fallback targeting resolution",
70
+ "Intent-based historical strategy resolution",
71
+ "Single-call post-click page map retrieval (include_map)",
72
+ "Shadow DOM element targeting"
73
+ ]
74
+ },
75
+ "browser_type": {
76
+ "category": "input",
77
+ "description": "Type text into a single input field. Keystroke dispatch engine with per-character temporal jitter and burst profiling. Real-time DOM-diffing monitors stuck input state. Supports atomic clearFirst and clipboard paste modes.",
78
+ "features": [
79
+ "Per-character temporal jitter simulation",
80
+ "Burst keystroke profiling",
81
+ "Stuck-typing loop detection via DOM diffing",
82
+ "Atomic input value resetting (clearFirst)",
83
+ "Clipboard paste injection for long text"
84
+ ]
85
+ },
86
+ "browser_type_secret": {
87
+ "category": "input",
88
+ "description": "Inject a secret from an environment variable / secrets.json. Blind Injection: securely injects credentials without exposing sensitive values to the LLM context. Permanently masked as [REDACTED] in DOM maps and logs.",
89
+ "features": [
90
+ "Zero LLM context exposure for credentials",
91
+ "Domain-scoped authorization checks",
92
+ "Shadow DOM input isolation",
93
+ "Permanent [REDACTED] masking across logs and snapshots"
94
+ ]
95
+ },
96
+ "browser_key": {
97
+ "category": "input",
98
+ "description": "Press a keyboard key. Dispatches native hardware key events with modifier key support (Ctrl, Shift, Alt, Meta) to focused elements.",
99
+ "features": [
100
+ "Native key code and key identifier mapping",
101
+ "Modifier key combination handling",
102
+ "Per-tab keyboard focus targeting"
103
+ ]
104
+ },
105
+ "browser_scroll": {
106
+ "category": "input",
107
+ "description": "Scroll the page or targeted element. Smooth scrolling engine via CDP Input.dispatchMouseEvent wheel events. Supports directional delta scrolling and element-relative scroll centering.",
108
+ "features": [
109
+ "Directional scrolling (up, down, left, right)",
110
+ "Configurable pixel scroll distance",
111
+ "Element-relative scroll targeting via ref ID or label"
112
+ ]
113
+ },
114
+ "browser_dialog": {
115
+ "category": "dialog_and_interaction",
116
+ "description": "Accept or dismiss JS dialogs (alert, confirm, prompt) via CDP Page.handleJavaScriptDialog.",
117
+ "features": [
118
+ "Handling of alert, confirm, and prompt modal types",
119
+ "Accept and dismiss actions",
120
+ "Prompt response text payload submission"
121
+ ]
122
+ },
123
+ "browser_burst": {
124
+ "category": "mission_execution",
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.",
126
+ "features": [
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",
131
+ "Automatic loop counter reset on execution start"
132
+ ]
133
+ },
134
+ "browser_tabs": {
135
+ "category": "tabs",
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.",
137
+ "features": [
138
+ "Single and batch tab operations",
139
+ "Duplicate tab consolidation",
140
+ "Crash session recovery (heal)",
141
+ "Background tab targeting",
142
+ "URL tab reuse prevention"
143
+ ]
144
+ },
145
+ "browser_wait": {
146
+ "category": "navigation",
147
+ "description": "Pause until a condition is met ('element', 'text', 'url', 'stable', 'network', 'auto'). Deterministic wait engine for asynchronous web state synchronization.",
148
+ "features": [
149
+ "Element, text, URL, DOM stability, and network idle conditions",
150
+ "Configurable timeout thresholds",
151
+ "Per-tab asynchronous execution target",
152
+ "Heuristic auto-condition resolution"
153
+ ]
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
+ },
164
+ "browser_thoughts": {
165
+ "category": "dialog_and_interaction",
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').",
167
+ "features": [
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"
173
+ ]
174
+ },
175
+ "browser_pointer": {
176
+ "category": "input",
177
+ "description": "Advanced pointer control (hover, click, double_click, drag_and_drop) with Bézier curve kinematics. Supports waitForChild pattern for dynamic flyout menus.",
178
+ "features": [
179
+ "Hover, click, double_click, and drag_and_drop actions",
180
+ "Bézier curve cursor motion",
181
+ "waitForChild trigger menu resolution",
182
+ "Configurable hold duration (holdMs)"
183
+ ]
184
+ },
185
+ "browser_select": {
186
+ "category": "input",
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).",
188
+ "features": [
189
+ "Option matching by visible text or value",
190
+ "Framework-safe prototype property setter invocation",
191
+ "Synthetic input and change event dispatch"
192
+ ]
193
+ },
194
+ "browser_fill": {
195
+ "category": "input",
196
+ "description": "Smart multi-field form-filling. Evaluates field control types (text, select, checkbox, radio, contenteditable) and processes inputs sequentially with atomic verification.",
197
+ "features": [
198
+ "Multi-field batch input execution",
199
+ "Automatic control type classification",
200
+ "Per-field post-input verification",
201
+ "Optional form submission click step"
202
+ ]
203
+ },
204
+ "browser_highlight": {
205
+ "category": "canvas_and_visual",
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.",
207
+ "features": [
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"
213
+ ]
214
+ },
215
+ "browser_upload": {
216
+ "category": "input",
217
+ "description": "Upload files to a file input. Bypasses OS native file pickers via CDP DOM.setFileInputFiles directly targeting file input node IDs using absolute file paths.",
218
+ "features": [
219
+ "Direct CDP file payload injection",
220
+ "Multi-file payload support",
221
+ "Zero OS file picker interaction required"
222
+ ]
223
+ },
224
+ "browser_find": {
225
+ "category": "vision",
226
+ "description": "Sub-5ms CDP text search. Zero token waste. Best for locating specific keywords/text on page without a full DOM walk.",
227
+ "features": [
228
+ "Native CDP search (zero DOM walk overhead)",
229
+ "Sub-5ms execution latency",
230
+ "Exact keyword matching and match indexing"
231
+ ]
232
+ },
233
+ "browser_storage": {
234
+ "category": "storage_and_cookies",
235
+ "description": "Manage localStorage and sessionStorage. Reads, writes, and clears key-value pairs for the active origin.",
236
+ "features": [
237
+ "localStorage and sessionStorage scope targeting",
238
+ "Atomic key-value retrieval and mutation",
239
+ "Origin storage purging"
240
+ ]
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
+ },
253
+ "browser_network_intercept": {
254
+ "category": "network",
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).",
256
+ "features": [
257
+ "URL glob pattern matching and response mocking",
258
+ "TLS/SSL Certificate security metadata (issuer, protocol, validity, cipher)",
259
+ "Microsecond Network Timing breakdown (DNS, TCP, SSL, send, TTFB, download)",
260
+ "OS-level network failure diagnostics (net::ERR_* codes, blocked reasons)"
261
+ ]
262
+ },
263
+ "browser_console": {
264
+ "category": "vision",
265
+ "description": "1-5ms latency access to buffered browser console messages, JS exceptions, and network errors tracked via CDP Runtime.consoleAPICalled.",
266
+ "features": [
267
+ "Buffered console output stream retrieval",
268
+ "Buffer clearance actions",
269
+ "Runtime exception stack capture",
270
+ "Timestamped severity logging"
271
+ ]
272
+ },
273
+ "browser_pdf": {
274
+ "category": "output",
275
+ "description": "Print the current page to a PDF file via CDP Page.printToPDF with configurable orientation, scale, and page ranges.",
276
+ "features": [
277
+ "Landscape and portrait orientation options",
278
+ "Print scale factor adjustment",
279
+ "Page range subset printing",
280
+ "Direct filesystem destination output"
281
+ ]
282
+ },
283
+ "browser_eval": {
284
+ "category": "evaluation",
285
+ "description": "Run arbitrary JS via CDP in page context via CDP Runtime.evaluate. Supports asynchronous evaluation and structured JSON serialization.",
286
+ "features": [
287
+ "Page JS context execution",
288
+ "Async/await promise resolution",
289
+ "Structured JSON return serialization",
290
+ "Role-based authorization checks"
291
+ ]
292
+ },
293
+ "browser_cookies": {
294
+ "category": "storage_and_cookies",
295
+ "description": "Manage browser cookies. Full CRUD management for HTTP and document cookies via CDP Network domain.",
296
+ "features": [
297
+ "Cookie property retrieval, setting, and deletion",
298
+ "Domain and path attribute scoping"
299
+ ]
300
+ },
301
+ "browser_canvas": {
302
+ "category": "canvas_and_visual",
303
+ "description": "For ALL canvas content (charts, games, graphs). Use get_image to read pixel data as Base64 PNG, draw to simulate programmatic coordinate gesture paths.",
304
+ "features": [
305
+ "Base64 PNG pixel buffer export",
306
+ "Programmatic gesture path drawing",
307
+ "Canvas node targeting via ref ID or selector"
308
+ ]
309
+ },
310
+ "browser_scrape": {
311
+ "category": "vision",
312
+ "description": "Sub-5ms latency, zero waste extraction via CSS or XPath selectors in a single CDP evaluation step. Returns structured text/attribute arrays.",
313
+ "features": [
314
+ "CSS and XPath query evaluation",
315
+ "Targeted attribute extraction",
316
+ "Single-step execution (high throughput)",
317
+ "Single-element and array extraction modes"
318
+ ]
319
+ },
320
+ "browser_snapshot": {
321
+ "category": "vision",
322
+ "description": "Capture or restore an MHTML snapshot (DOM + inline assets). Facilitates offline state serialization, replay verification, and compliance auditing.",
323
+ "features": [
324
+ "Full DOM and asset stream serialization",
325
+ "Atomic capture and restore operations",
326
+ "Offline state audit capability"
327
+ ]
328
+ },
329
+ "browser_screenshot": {
330
+ "category": "vision",
331
+ "description": "95-135ms capture latency via CDP Page.captureScreenshot. Supports PNG and JPEG formats, full-page rendering, and clip region bounding boxes.",
332
+ "features": [
333
+ "Full-page and viewport bounding box capture",
334
+ "PNG and JPEG format encoding",
335
+ "Custom clip region bounding box support",
336
+ "In-memory Base64 data URL output (zero disk I/O)"
337
+ ]
338
+ },
339
+ "browser_viewport": {
340
+ "category": "device_and_environment",
341
+ "description": "Set viewport dimensions and device emulation (width, height, DPR, mobile, geolocation, timezone, locale, color scheme).",
342
+ "features": [
343
+ "Viewport width, height, and DPR emulation",
344
+ "Mobile viewport and touch event emulation",
345
+ "Geolocation coordinate override",
346
+ "IANA timezone and locale override",
347
+ "Color scheme preference override (light/dark)"
348
+ ]
349
+ },
350
+ "browser_clipboard": {
351
+ "category": "dialog_and_interaction",
352
+ "description": "Read or write to the system clipboard (plaintext or Base64 image payload data).",
353
+ "features": [
354
+ "Read and write data operations",
355
+ "Plaintext and Base64 image payload format support"
356
+ ]
357
+ },
358
+ "browser_inspect": {
359
+ "category": "vision",
360
+ "description": "15-35ms latency, zero waste. Deep DOM inspection returning computed styles, inline styles, box model dimensions, and attached event listener types.",
361
+ "features": [
362
+ "Computed CSS style property inspection",
363
+ "Event listener type registration enumeration",
364
+ "Box model geometry verification",
365
+ "Targeting via ref ID, selector, or nodeId"
366
+ ]
367
+ },
368
+ "browser_extract_design": {
369
+ "category": "vision",
370
+ "description": "Extract design tokens (colors, typography, spacing, shadows, CSS variables), semantic HTML layouts, and clean CSS into structured files and an LLM design blueprint. Ideal for cloning websites, UI components, and design systems with 100% pixel fidelity.",
371
+ "features": [
372
+ "CSS custom properties and design token harvesting",
373
+ "Palette extraction and typography hierarchy mapping",
374
+ "Semantic clean DOM extraction with inline SVGs preserved",
375
+ "Automatic file persistence into configurable designDir (~/.weavetab/designs/)",
376
+ "Tailwind CSS theme.extend preset generation",
377
+ "Compact LLM summary preventing context window bloat"
378
+ ]
379
+ },
380
+ "browser_automation": {
381
+ "category": "mission_execution",
382
+ "description": "Inject self-running background script for monitoring/polling. Inject persistent scripts into the page context for continuous event tracking.",
383
+ "features": [
384
+ "Background script context injection",
385
+ "Named automation script management",
386
+ "Decoupled event monitoring lifecycle"
387
+ ]
388
+ },
389
+ "browser_recording": {
390
+ "category": "output",
391
+ "description": "Record video screencasts of browser sessions. Automatically compiles captured frames into animated video files (.webp, .gif, .webm, .mp4) using native Node processing or system ffmpeg.",
392
+ "features": [
393
+ "Native WebP/GIF animation compilation in pure Node",
394
+ "Configurable FPS and frame limits",
395
+ "FFmpeg fallback for WebM/MP4 encoding",
396
+ "Automated raw frame cleanup"
397
+ ]
398
+ },
399
+ "browser_detect": {
400
+ "category": "tabs",
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.",
402
+ "features": [
403
+ "Local browser engine discovery",
404
+ "Engine CDP API coverage analysis",
405
+ "Tool compatibility reporting per browser engine"
406
+ ]
407
+ },
408
+ "browser_performance": {
409
+ "category": "performance",
410
+ "description": "Retrieve page performance metrics. Collects Core Web Vitals (FCP, LCP, CLS) and detailed network resource timing distributions.",
411
+ "features": [
412
+ "First Contentful Paint (FCP) and Largest Contentful Paint (LCP) capture",
413
+ "Cumulative Layout Shift (CLS) tracking",
414
+ "Resource loading timing distributions"
415
+ ]
416
+ },
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.",
420
+ "features": [
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)"
427
+ ]
428
+ },
429
+ "browser_office": {
430
+ "category": "documents",
431
+ "description": "Read and extract structured content from office documents (Excel, Word, PDF, CSV) via live browser session cookies or local downloads directory.",
432
+ "features": [
433
+ "In-session authenticated document fetching",
434
+ "Structured tabular extraction (.xlsx, .csv)",
435
+ "Document text and metadata extraction (.docx, .pdf)"
436
+ ]
437
+ },
438
+ "browser_emulate": {
439
+ "category": "environment",
440
+ "description": "Emulate browser environmental conditions over CDP: network throttling profiles, CPU slowdown multipliers, geolocation overrides, timezone IDs, and custom User-Agent strings.",
441
+ "features": [
442
+ "Network throttling (Offline, Slow 3G, Fast 3G, 4G)",
443
+ "CPU throttling multipliers",
444
+ "Geolocation and timezone overrides"
445
+ ]
446
+ }
447
+ },
448
+ "resources": {
449
+ "session_memory": {
450
+ "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.",
451
+ "features": [
452
+ "Framework detection (React, Vue, Angular, Lit, Svelte, Next, Nuxt, Gatsby)",
453
+ "Successful selector strategy caching with confidence decay (Tier 1)",
454
+ "Named workflow pattern compilation with EWMA reliability scoring (Tier 2)",
455
+ "Site quirk registration: cookie banners, rate limits, modal popups (Tier 2)",
456
+ "3-strike pattern degradation with re-learn flagging (Tier 2)",
457
+ "Fast-path eligibility: patterns with reliability ≥ 0.8 skip exploratory DOM navigation"
458
+ ]
459
+ },
460
+ "knowledge_hints": {
461
+ "description": "Domain-specific hint storage (~/.weavetab/knowledge/[domain].md) injecting context notes into session prompts.",
462
+ "features": [
463
+ "Domain quirk notes",
464
+ "Timestamped entry tracking",
465
+ "Prompt context injection budget (20 tokens)"
466
+ ]
467
+ },
468
+ "trail_log": {
469
+ "description": "Rolling 50-action window (~/.weavetab-system/sessions/context.json) powering strike-based loop detection algorithms.",
470
+ "features": [
471
+ "50-action rolling window tracking",
472
+ "Strike-based loop detection heuristics",
473
+ "Auto-reset triggers on navigation, tab switch, or burst start"
474
+ ]
475
+ },
476
+ "network_telemetry": {
477
+ "description": "Real-time network event tracking via CDP Network domain measuring request/response timing and HTTP error rates.",
478
+ "features": [
479
+ "Request and response latency tracking",
480
+ "Resource classification",
481
+ "HTTP status code tracking"
482
+ ]
483
+ },
484
+ "mutation_observer": {
485
+ "description": "CDP-driven DOM mutation tracking measuring dynamic subtree changes for SPA stabilization.",
486
+ "features": [
487
+ "Attribute mutation tracking",
488
+ "Node insertion/removal events",
489
+ "Subtree modification tracking"
490
+ ]
491
+ }
492
+ },
493
+ "intelligence": {
494
+ "semantic_delta_engine": {
495
+ "description": "Per-tab DOM state diffing engine returning strictly modified elements between snapshots, cutting prompt token consumption up to 97%.",
496
+ "features": [
497
+ "Per-tab baseline snapshot storage",
498
+ "Property-level change detection (label, value, state, class)",
499
+ "Action recommendation generation"
500
+ ]
501
+ },
502
+ "semantic_dom_pruner": {
503
+ "description": "AST-based DOM compression algorithm executed before snapshot returns. Removes non-interactive hidden elements and converts SVG icons to tokens.",
504
+ "features": [
505
+ "Hidden element pruning",
506
+ "SVG icon compression",
507
+ "Interactive tree preservation"
508
+ ]
509
+ },
510
+ "vision_fallback": {
511
+ "description": "Local pixel analysis pipeline using sharp for visual layout evaluation when accessibility trees return zero nodes.",
512
+ "pipeline": "AX Tree Check -> Screenshot -> Grayscale -> 4x4 Grid Heatmap -> Text Density -> Clickable Region Analysis",
513
+ "features": [
514
+ "Local execution (zero external API dependencies)",
515
+ "4x4 visual density grid heatmap",
516
+ "Clickable zone classification"
517
+ ]
518
+ },
519
+ "loop_detection": {
520
+ "description": "Strike-based loop detection algorithm over rolling 50-action windows with automated escalation.",
521
+ "thresholds": {
522
+ "0-4 strikes": "Normal execution",
523
+ "5-9 strikes": "Warning notification in HUD",
524
+ "10+ strikes": "Stuck state classification and auto-recovery activation"
525
+ },
526
+ "features": [
527
+ "Rolling action window evaluation",
528
+ "Escalating alert tiers",
529
+ "Manual reset via browser_map({ force: true }) or browser_wait({ reset_loop: true })"
530
+ ]
531
+ },
532
+ "framework_detection": {
533
+ "description": "Heuristic detection of web application frameworks via CDP Runtime.evaluate probes.",
534
+ "detectedFrameworks": [
535
+ "React",
536
+ "Vue",
537
+ "Angular",
538
+ "Lit",
539
+ "Svelte",
540
+ "Next",
541
+ "Nuxt",
542
+ "Gatsby"
543
+ ],
544
+ "features": [
545
+ "Zero-overhead runtime probing",
546
+ "Shadow DOM usage identification",
547
+ "Domain memory persistence"
548
+ ]
549
+ },
550
+ "intent_resolution": {
551
+ "description": "Semantic element resolution resolving natural language action descriptions to DOM ref IDs using session memory scoring.",
552
+ "features": [
553
+ "Natural language intent scoring",
554
+ "Historical selector memory integration",
555
+ "Live DOM context matching"
556
+ ]
557
+ }
558
+ },
559
+ "security": {
560
+ "rbac": {
561
+ "description": "Role-Based Access Control enforcing tool execution boundaries based on configured session role.",
562
+ "roles": {
563
+ "admin": "Full access to all tools and system operations",
564
+ "operator": "Full access to all tools and system operations (same as admin)",
565
+ "system": "System-level tools only (browser_thoughts, browser_detect, browser_performance, browser_checkpoint, browser_pattern_learn)",
566
+ "viewer": "Read-only access (browser_map, browser_find, browser_scrape, browser_console, browser_eval, browser_inspect, browser_extract_design, browser_snapshot, browser_screenshot, browser_pdf, browser_cookies, browser_tabs, browser_wait, browser_pattern_learn)",
567
+ "automation": "Full tool access excluding browser_thoughts (automation agents must be non-interactive)"
568
+ }
569
+ },
570
+ "domain_policy": {
571
+ "description": "Domain-level access control policy engine configured via the top-level policies array in ~/.weavetab/config.json with enforced security domain blocklists.",
572
+ "modes": {
573
+ "allow": "Unrestricted tool access",
574
+ "read-only": "Mutation tool execution blocked",
575
+ "deny": "Navigation and interaction blocked",
576
+ "audit": "Unrestricted access with enhanced audit logging"
577
+ }
578
+ },
579
+ "rate_limiting": {
580
+ "description": "Mutex-guarded rate limiter enforcing maximum action frequencies.",
581
+ "features": [
582
+ "Configurable action per minute threshold (default 60)",
583
+ "Mutex lock enforcement",
584
+ "Clear rate limit exception messaging"
585
+ ]
586
+ },
587
+ "blind_injection": {
588
+ "description": "Credential injection via browser_type_secret. Resolves secret values server-side from secrets.json without context exposure to the LLM.",
589
+ "secretsFormat": {
590
+ "KEY_NAME": {
591
+ "value": "secret-value",
592
+ "domains": [
593
+ "example.com"
594
+ ],
595
+ "description": "Secret description"
596
+ }
597
+ },
598
+ "resolutionOrder": [
599
+ "./.weavetab/secrets.json (project)",
600
+ "~/.weavetab/secrets.json (global)"
601
+ ]
602
+ },
603
+ "input_filter": {
604
+ "description": "Sanitizes DOM snapshots before context return by stripping prompt injection patterns and invisible characters.",
605
+ "features": [
606
+ "Prompt injection pattern filtering",
607
+ "Control character stripping",
608
+ "Excessive label length truncation"
609
+ ]
610
+ },
611
+ "additional_mechanisms": {
612
+ "localhost_binding": "CDP WebSocket connection restricted strictly to 127.0.0.1",
613
+ "root_guard": "Startup execution block for root/superuser processes (Unix)",
614
+ "storage_blocker": "Configurable nullification of web storage and document.cookie",
615
+ "atomic_config_writes": "Atomic configuration file writes via temporary file renaming",
616
+ "path_traversal_protection": "Strict validation of download and profile directories against path traversal",
617
+ "two_factor_lock_validation": "Browser lock verification via PID liveness and TCP port checks"
618
+ }
619
+ },
620
+ "transport": {
621
+ "stdio": {
622
+ "description": "Standard JSON-RPC over stdio streams. Default mode for MCP clients.",
623
+ "default": true,
624
+ "cli": "weavetab"
625
+ },
626
+ "websocket": {
627
+ "description": "JSON-RPC over WebSocket for distributed agent pipelines.",
628
+ "default": false,
629
+ "configurable": true
630
+ }
631
+ },
632
+ "overlay": {
633
+ "hud": {
634
+ "description": "Shadow DOM HUD overlay injected into browser tabs displaying execution state and thoughts.",
635
+ "features": [
636
+ "Mission status display",
637
+ "Thought bubble rendering",
638
+ "Task plan visualization",
639
+ "Shadow DOM isolation"
640
+ ]
641
+ },
642
+ "ghost_cursor": {
643
+ "description": "Visual pointer trajectory overlay displaying humanized Bézier motion during interaction.",
644
+ "features": [
645
+ "Bézier trajectory visualization",
646
+ "Acceleration curve rendering",
647
+ "Target element highlight overlay"
648
+ ]
649
+ }
650
+ },
651
+ "plugins": {
652
+ "description": "Dynamic plugin system discovering any npm package containing weavetab.json and @weavetab/plugin-* packages at startup.",
653
+ "manifest": "weavetab.json",
654
+ "features": [
655
+ "Automatic package discovery",
656
+ "Native MCP tool registration",
657
+ "Unified security pipeline integration"
658
+ ]
659
+ },
660
+ "skills": {
661
+ "description": "Optional companion package (@weavetab/skills) providing mission templates.",
662
+ "package": "@weavetab/skills",
663
+ "repository": "https://github.com/weavetab/skills",
664
+ "install": "npm install -g @weavetab/skills",
665
+ "availableSkills": [
666
+ "Multi-step Form Automation",
667
+ "E-commerce Checkout",
668
+ "Data Extraction Pipelines",
669
+ "Content Management Systems",
670
+ "API Testing & Validation"
671
+ ]
672
+ }
673
+ },
674
+ "configuration": {
675
+ "configLocations": {
676
+ "global": "~/.weavetab/config.json",
677
+ "project": ".weavetab/config.json (precedes global)"
678
+ },
679
+ "options": {
680
+ "browserType": {
681
+ "type": "string",
682
+ "default": "chromium",
683
+ "options": [
684
+ "chromium",
685
+ "firefox",
686
+ "webkit"
687
+ ],
688
+ "description": "Browser engine target"
689
+ },
690
+ "headless": {
691
+ "type": "boolean",
692
+ "default": false,
693
+ "description": "Headless mode toggle"
694
+ },
695
+ "devMode": {
696
+ "type": "boolean",
697
+ "default": false,
698
+ "description": "Verbose CDP logging and HUD overlay toggle"
699
+ },
700
+ "maxActionsPerMinute": {
701
+ "type": "number",
702
+ "default": 60,
703
+ "description": "Action rate limit threshold"
704
+ },
705
+ "role": {
706
+ "type": "string",
707
+ "default": "admin",
708
+ "options": [
709
+ "admin",
710
+ "system",
711
+ "viewer",
712
+ "automation"
713
+ ],
714
+ "description": "Session RBAC role"
715
+ },
716
+ "telemetry": {
717
+ "type": "boolean",
718
+ "default": false,
719
+ "description": "Opt-in anonymous usage telemetry toggle"
720
+ },
721
+ "attachPort": {
722
+ "type": "number",
723
+ "default": 0,
724
+ "description": "Chrome DevTools Protocol attach port"
725
+ },
726
+ "extension": {
727
+ "type": "boolean",
728
+ "default": true,
729
+ "description": "Enable Weavetab Chrome extension integration"
730
+ },
731
+ "maxTabs": {
732
+ "type": "number",
733
+ "default": 10,
734
+ "description": "Maximum tracked tab count"
735
+ },
736
+ "navigationTimeout": {
737
+ "type": "number",
738
+ "default": 3600,
739
+ "description": "Navigation timeout in seconds"
740
+ },
741
+ "actionabilityTimeoutMs": {
742
+ "type": "number",
743
+ "default": 500,
744
+ "description": "Element actionability wait timeout in ms"
745
+ }
746
+ },
747
+ "domainPolicy": {
748
+ "location": "~/.weavetab/config.json (top-level \"policies\" array)",
749
+ "format": {
750
+ "policies": [
751
+ {
752
+ "pattern": "*.example.com",
753
+ "mode": "allow | read-only | deny | audit"
754
+ }
755
+ ]
756
+ }
757
+ },
758
+ "secretsManagement": {
759
+ "locations": [
760
+ ".weavetab/secrets.json (project-scoped)",
761
+ "~/.weavetab/secrets.json (global default)"
762
+ ],
763
+ "cli": [
764
+ "weavetab secrets set KEY_NAME",
765
+ "weavetab secrets list",
766
+ "weavetab secrets rm KEY_NAME",
767
+ "weavetab secrets init --project"
768
+ ],
769
+ "format": {
770
+ "KEY_NAME": {
771
+ "value": "secret-value",
772
+ "domains": [
773
+ "example.com"
774
+ ],
775
+ "description": "Secret description"
776
+ }
777
+ }
778
+ }
779
+ },
780
+ "metadata": {
781
+ "total_tools": 41,
782
+ "tool_categories": 15,
783
+ "latency": "3-8ms mean",
784
+ "token_efficiency": "Up to 97% reduction via semantic delta engine + DOM pruner",
785
+ "architecture": "Direct CDP WebSocket (Layer 0) — zero WebDriver, Playwright, or Puppeteer wrapper overhead",
786
+ "security": "Domain blacklist + RBAC (5 roles) + rate limiting + Blind Injection (secrets.json)",
787
+ "session_memory": "Persistent per-domain profiles with framework detection and strategy caching",
788
+ "loop_detection": "Strike-based (50-action window), auto-recovery at 10+ strikes",
789
+ "plugin_system": "Dynamic universal weavetab.json & @weavetab/plugin-* auto-discovery",
790
+ "skills_package": "@weavetab/skills — https://github.com/weavetab/skills",
791
+ "transport": "stdio (default) or WebSocket (--ws)",
792
+ "binary": [
793
+ "weavetab"
794
+ ]
795
+ }
796
+ }