@weavetab/mcp 2.5.0-beta.1 → 2.5.0-beta.2

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 (89) hide show
  1. package/AGENTS.md +1 -0
  2. package/LICENSE +2 -2
  3. package/README.md +208 -43
  4. package/SECURITY.md +3 -3
  5. package/TROUBLESHOOTING.md +1 -1
  6. package/dist/cdp/bridge.d.ts +10 -0
  7. package/dist/cdp/bridge.js +284 -78
  8. package/dist/cdp/connector.d.ts +5 -3
  9. package/dist/cdp/connector.js +188 -71
  10. package/dist/cdp/lock.d.ts +9 -6
  11. package/dist/cdp/lock.js +72 -59
  12. package/dist/cdp/omni_broker.d.ts +1 -0
  13. package/dist/cdp/omni_broker.js +12 -6
  14. package/dist/cdp/profiles.d.ts +10 -0
  15. package/dist/cdp/profiles.js +65 -0
  16. package/dist/cdp/walker.js +50 -0
  17. package/dist/cli/plugin.d.ts +0 -2
  18. package/dist/cli/plugin.js +31 -683
  19. package/dist/cli/updater.js +2 -2
  20. package/dist/config/loader.d.ts +25 -6
  21. package/dist/config/loader.js +133 -20
  22. package/dist/index.js +48 -52
  23. package/dist/overlay/ghost.js +2 -2
  24. package/dist/overlay/injector.js +1 -3
  25. package/dist/plugin/extension_bridge.d.ts +40 -0
  26. package/dist/plugin/extension_bridge.js +158 -0
  27. package/dist/plugin/interface.d.ts +78 -16
  28. package/dist/plugin/loader.d.ts +4 -0
  29. package/dist/plugin/loader.js +178 -57
  30. package/dist/plugin/registry.js +11 -1
  31. package/dist/plugin/storage.d.ts +51 -0
  32. package/dist/plugin/storage.js +164 -0
  33. package/dist/server.js +213 -121
  34. package/dist/state/session.d.ts +2 -2
  35. package/dist/state/session.js +33 -13
  36. package/dist/tools/browser_detect.d.ts +2 -1
  37. package/dist/tools/browser_detect.js +6 -3
  38. package/dist/tools/burst.d.ts +1 -0
  39. package/dist/tools/burst.js +4 -6
  40. package/dist/tools/click.js +23 -28
  41. package/dist/tools/clipboard.js +31 -24
  42. package/dist/tools/navigate.d.ts +1 -1
  43. package/dist/tools/navigate.js +28 -10
  44. package/dist/tools/tabs.d.ts +10 -10
  45. package/dist/tools/tabs.js +47 -39
  46. package/dist/tools/type.js +2 -2
  47. package/docs/DOCUMENTATION.md +63 -6
  48. package/docs/architecture/blind-injection.md +20 -0
  49. package/docs/architecture/dual-injection.md +32 -0
  50. package/docs/architecture/overview.md +49 -0
  51. package/docs/architecture/security.md +35 -0
  52. package/docs/architecture/transport.md +37 -0
  53. package/docs/captcha-stealth/captcha-solver.md +75 -0
  54. package/docs/captcha-stealth/stealth-physics.md +60 -0
  55. package/docs/cli/cli-commands.md +44 -0
  56. package/docs/cli/cli-flags.md +20 -0
  57. package/docs/cli/cli-introduction.md +20 -0
  58. package/docs/cli/cli-scripting.md +32 -0
  59. package/docs/cli/g-ide/ide-antigravity.md +24 -0
  60. package/docs/cli/g-ide/ide-claude-code.md +24 -0
  61. package/docs/cli/g-ide/ide-claude-desktop.md +32 -0
  62. package/docs/cli/g-ide/ide-cursor.md +31 -0
  63. package/docs/cli/g-ide/ide-generic.md +34 -0
  64. package/docs/cli/g-ide/ide-opencode.md +24 -0
  65. package/docs/cli/g-ide/ide-vscode-copilot.md +24 -0
  66. package/docs/cli/g-ide/ide-windsurf.md +24 -0
  67. package/docs/configuration/config-locations.md +24 -0
  68. package/docs/configuration/configuration.md +73 -0
  69. package/docs/configuration/env-variables.md +19 -0
  70. package/docs/configuration/folders.md +54 -0
  71. package/docs/desktop-automation/electron-apps.md +162 -0
  72. package/docs/get-started/installation.md +47 -0
  73. package/docs/get-started/introduction.md +60 -0
  74. package/docs/get-started/quickstart.md +54 -0
  75. package/docs/get-started/setup-wizard.md +26 -0
  76. package/docs/skills-ecosystem/skills-overview.md +35 -0
  77. package/docs/skills-ecosystem/skills-recipes.md +36 -0
  78. package/docs/tools/tools.md +293 -0
  79. package/docs/troubleshooting/trouble-browser.md +27 -0
  80. package/docs/troubleshooting/trouble-config.md +20 -0
  81. package/docs/troubleshooting/trouble-loop.md +31 -0
  82. package/ext-dist/content.js +0 -1
  83. package/mcp.json +8 -6
  84. package/package.json +11 -5
  85. package/server.json +3 -3
  86. package/docs/DEV_MODE.md +0 -68
  87. package/docs/PLUGINS.md +0 -538
  88. package/docs/TOOLS.md +0 -104
  89. package/docs/dev_plugin.md +0 -310
@@ -0,0 +1,47 @@
1
+ ---
2
+ title: "Installation"
3
+ description: "Install Weavetab globally or run it ad-hoc with npx."
4
+ product: mcp
5
+ section: get-started
6
+ icon: Download
7
+ slug: installation
8
+ ---
9
+
10
+ # Installation
11
+
12
+ ```bash
13
+ # Global installation (recommended)
14
+ npm install -g @weavetab/mcp@latest
15
+
16
+ # Or run directly without installation
17
+ npx -y @weavetab/mcp@latest
18
+
19
+ # Install Developer SDK as dev dependency in a project
20
+ npm install -D @weavetab/sdk@latest
21
+
22
+ # Verify installation
23
+ weavetab --version
24
+ # → @weavetab/mcp 2.5.0
25
+ ```
26
+
27
+ ## System Requirements
28
+
29
+ - **Node.js** >= 18.0.0 (Node 20 or 22 LTS recommended)
30
+ - **Chromium-based browser** (Google Chrome, Microsoft Edge, Brave, or Chromium)
31
+ - *Optional:* Firefox or Safari Technology Preview via `browserType` config
32
+ - *Optional for Desktop Automation:* Any Electron application (Discord, VS Code, Figma, Obsidian, Postman, etc.)
33
+
34
+ ## CLI Binary Aliases
35
+
36
+ ```bash
37
+ weavetab # standard binary
38
+ Weavetab # case-insensitive alias
39
+ ```
40
+
41
+ ## What Gets Configured
42
+
43
+ Weavetab ships as a single, self-contained Node package. On first run it:
44
+
45
+ 1. Auto-detects an installed Chromium binary on `$PATH`
46
+ 2. Creates `~/.weavetab/` for global configuration, secrets, and policy rules
47
+ 3. Registers a local MCP entry point that clients launch over stdio or WebSocket
@@ -0,0 +1,60 @@
1
+ ---
2
+ title: "Introduction"
3
+ description: "What Weavetab is, Layer 0 CDP architecture, and design tenets."
4
+ product: mcp
5
+ section: get-started
6
+ icon: BookOpen
7
+ slug: introduction
8
+ ---
9
+
10
+ # Introduction
11
+
12
+ Weavetab is a production-grade, local **Model Context Protocol (MCP) server** that grants AI agents human-like control over Chromium browsers and native **Electron desktop applications** (VS Code, Discord, Slack, Figma, Obsidian, Postman, Antigravity IDE, etc.) — communicating directly over the **Chrome DevTools Protocol (CDP)** at Layer 0.
13
+
14
+ No WebDriver. No browser binary downloads. No Playwright or Puppeteer abstraction layer. No cloud dependency. Tool invocations resolve in **3–8 ms** of mean latency.
15
+
16
+ ## Synchronized Ecosystem Releases
17
+
18
+ Both **`@weavetab/mcp`** and the **`@weavetab/sdk`** share synchronized release lines. Every capability introduced in the core runtime is immediately available in the developer SDK with 100% type safety and zero version mismatch.
19
+
20
+ ```bash
21
+ # Install core Weavetab MCP server globally
22
+ npm install -g @weavetab/mcp@latest
23
+
24
+ # Or run directly via npx
25
+ npx -y @weavetab/mcp@latest
26
+
27
+ # Install Weavetab Developer SDK as a dev dependency
28
+ npm install -D @weavetab/sdk@latest
29
+ ```
30
+
31
+ ## Design Tenets
32
+
33
+ | Tenet | Implementation |
34
+ |---|---|
35
+ | **Ultra-Low Latency** | Sub-10 ms tool execution via direct CDP WebSocket connections |
36
+ | **Universal Control** | Native orchestration across Chromium web tabs and any Electron desktop app |
37
+ | **Autonomous CAPTCHA** | Zero-API solving (Cloudflare Turnstile, GeeTest, reCAPTCHA) via human Bézier mouse physics |
38
+ | **Security & RBAC** | 4-tier RBAC + domain policies + Blind Credential Injection + profile isolation |
39
+ | **Token Efficiency** | Semantic Delta diffing (up to 97% reduction) + intelligent DOM pruning |
40
+ | **Stealth & Physics** | Ghost Cursor (Bézier curves), human typing jitter, and CDP early-script fingerprint spoofing |
41
+ | **Self-Learning** | Per-domain session memory, framework detection, and automated loop recovery |
42
+ | **Zero Cloud** | Pure local computation. No external telemetry or cloud tracking unless explicitly opted in |
43
+
44
+ ## What You Get
45
+
46
+ - **46 built-in MCP tools** covering DOM vision, input synthesis, desktop apps, tabs, network interception, office files, design extraction, and plugin lifecycle
47
+ - **Universal Desktop App Runtime** — seamlessly control Chrome and native Electron apps (Discord, Figma, VS Code) side-by-side without port conflicts
48
+ - **Autonomous Zero-API CAPTCHA Solver** — solve Cloudflare Turnstile, GeeTest, and reCAPTCHA locally via CDP mouse physics with $0 API costs
49
+ - **Two transport modes** — stdio (Claude Desktop, Cursor, VS Code, Windsurf, Antigravity) and WebSocket (`--ws --port 3000`)
50
+ - **Four RBAC roles** — `admin`, `operator`, `viewer`, and `automation`
51
+ - **Per-domain policies** — ring-fences sensitive banking, internal, and production surfaces
52
+ - **Blind Injection** — credentials resolved server-side from `secrets.json` and never exposed to the LLM
53
+ - **Extensible Plugin System** — auto-discovers and mounts custom MCP tools from `node_modules`
54
+
55
+ ## Next Steps
56
+
57
+ - **[Quickstart](/docs/quickstart)** — install and run a first mission in 60 seconds
58
+ - **[Desktop & Electron Apps](/docs/electron-apps)** — configure and control desktop apps
59
+ - **[Autonomous CAPTCHA Solver](/docs/captcha-solver)** — zero-API anti-bot solving
60
+ - **[MCP Tools Reference](/docs/tools)** — full reference for all 46 built-in automation tools
@@ -0,0 +1,54 @@
1
+ ---
2
+ title: "Quickstart"
3
+ description: "Install, configure, and run a first mission in under a minute."
4
+ product: mcp
5
+ section: get-started
6
+ icon: Zap
7
+ slug: quickstart
8
+ ---
9
+
10
+ # Quickstart
11
+
12
+ Get Weavetab attached to your agent and running a real browser mission in three simple steps.
13
+
14
+ ## 1. Install Weavetab
15
+
16
+ ```bash
17
+ # Global installation (recommended)
18
+ npm install -g @weavetab/mcp@latest
19
+
20
+ # Or run directly with npx
21
+ npx -y @weavetab/mcp@latest
22
+ ```
23
+
24
+ ## 2. Wire to your MCP Client
25
+
26
+ Point any MCP-compatible client (Claude Desktop, Cursor, Windsurf, VS Code, Antigravity) at the binary:
27
+
28
+ ```json
29
+ {
30
+ "mcpServers": {
31
+ "weavetab": {
32
+ "command": "weavetab"
33
+ }
34
+ }
35
+ }
36
+ ```
37
+
38
+ ## 3. Run a First Mission
39
+
40
+ Use `browser_burst` to chain multiple actions in a single round-trip:
41
+
42
+ ```json
43
+ {
44
+ "name": "browser_burst",
45
+ "arguments": {
46
+ "steps": [
47
+ { "action": "navigate_and_read", "url": "https://example.com" },
48
+ { "action": "click_and_wait", "selector": "#login-btn" }
49
+ ]
50
+ }
51
+ }
52
+ ```
53
+
54
+ You will see the browser launch, the Ghost Cursor glide across the page along human Bézier curves, and the agent complete the task with sub-10ms CDP execution.
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: "Setup Wizard"
3
+ description: "Interactive wizard that writes a clean config.json."
4
+ product: mcp
5
+ section: get-started
6
+ icon: Wand2
7
+ slug: setup-wizard
8
+ ---
9
+
10
+ # Setup Wizard
11
+
12
+ Run the interactive CLI configuration wizard:
13
+
14
+ ```bash
15
+ weavetab config
16
+ ```
17
+
18
+ The wizard walks through every option across 5 interactive phases. Re-run it at any time to update your saved config.
19
+
20
+ ## Wizard Phases
21
+
22
+ 1. **Phase 1 — Essentials:** Browser path, RBAC role (`admin`, `operator`, `viewer`, `automation`), headless mode, dev mode, max tabs, actionability timeout, domain block/allow lists.
23
+ 2. **Phase 2 — Advanced:** Browser engine selection, navigation timeouts, dark mode preferences, telemetry opt-in, outbound HTTP/SOCKS proxy, domain policy modes.
24
+ 3. **Phase 3 — Save Location:** Global (`~/.weavetab/config.json`) or Project-scoped (`./.weavetab/config.json`).
25
+ 4. **Phase 4 — MCP Auto-Config:** Auto-detects installed IDEs (Claude Desktop, Cursor, Windsurf, VS Code, OpenCode, Claude Code, Antigravity) and merges Weavetab into their MCP configuration.
26
+ 5. **Phase 5 — Summary:** Displays full configuration validation report.
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: "Skills Ecosystem"
3
+ description: "Drop-in agent skills and recipes from @weavetab/skills."
4
+ product: mcp
5
+ section: skills-ecosystem
6
+ icon: BrainCircuit
7
+ slug: skills-overview
8
+ ---
9
+
10
+ # Weavetab Skills Ecosystem
11
+
12
+ The **`@weavetab/skills`** package provides drop-in operational directives and behavior skills for AI agents (Claude, Cursor, Windsurf, Copilot, Antigravity).
13
+
14
+ ## Interactive Skills Installer
15
+
16
+ ```bash
17
+ npx -y @weavetab/skills@latest
18
+ ```
19
+
20
+ The interactive installer detects your IDE (`.agents`, `.cursorrules`, `.clinerules`, `.roocode`, etc.) and injects selected skills directly without workspace clutter.
21
+
22
+ ---
23
+
24
+ ## Available Skills Directory
25
+
26
+ - **CAPTCHA Evasion** (`general/captcha-evasion.md`) — Heuristics for resolving bot challenges and checkbox modals.
27
+ - **Context Awareness** (`general/context-awareness.md`) — Deep page analysis and landmark scoping.
28
+ - **Cookie Consent Banners** (`general/cookie-consent.md`) — Auto-dismissing GDPR and overlay modals.
29
+ - **Data Extraction** (`general/data-extraction.md`) — CSS & XPath tabular scraping.
30
+ - **Dynamic Interaction** (`general/dynamic-interaction.md`) — Precision hover, drag-and-drop, and flyout menus.
31
+ - **Error Recovery** (`general/error-recovery.md`) — Resolving 404s, stale elements, and network timeouts.
32
+ - **File Upload** (`general/file-upload.md`) — Direct CDP file attachments.
33
+ - **Form Filling** (`general/form-filling.md`) — Multi-field smart form batch completion.
34
+ - **Infinite Scroll** (`general/infinite-scroll.md`) — Pagination and dynamic lazy loading.
35
+ - **SPA Navigation** (`general/spa-navigation.md`) — Client-side route changes in React/Vue/Angular.
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: "Automation Recipes"
3
+ description: "Step-by-step recipes for common browser automation challenges."
4
+ product: mcp
5
+ section: skills-ecosystem
6
+ icon: BookOpenCheck
7
+ slug: skills-recipes
8
+ ---
9
+
10
+ # Automation Skills Recipes
11
+
12
+ ## Recipe 1: Handling Dynamic Cookie Consent Overlays
13
+
14
+ ```markdown
15
+ 1. Run browser_find({ query: "Accept all cookies" })
16
+ 2. If found, call browser_click({ label: "Accept all" })
17
+ 3. Wait for stability: browser_wait({ for: "stable", timeout: 2000 })
18
+ 4. Read page with delta: browser_map({ delta: true, prune: true })
19
+ ```
20
+
21
+ ---
22
+
23
+ ## Recipe 2: Autonomous Form Completion
24
+
25
+ ```markdown
26
+ 1. Map the form: browser_map({ scope: "form", query: "input" })
27
+ 2. Batch fill fields in one round-trip:
28
+ browser_fill({
29
+ fields: [
30
+ { ref: "w:12", value: "alex@company.com" },
31
+ { ref: "w:14", value: "United States" }
32
+ ],
33
+ submit: "w:16"
34
+ })
35
+ 3. Wait for submission: browser_wait({ for: "network" })
36
+ ```
@@ -0,0 +1,293 @@
1
+ ---
2
+ title: "MCP Tools (46 Tools)"
3
+ description: "Complete reference of all 46 production-grade Weavetab automation tools."
4
+ product: mcp
5
+ section: tools
6
+ icon: Wrench
7
+ slug: tools
8
+ ---
9
+
10
+ # MCP Tools Master Reference
11
+
12
+ Weavetab exposes **46 production-grade MCP tools** engineered for sub-10ms browser automation, visual inspection, desktop app orchestration, zero-API CAPTCHA solving, and human-like interaction.
13
+
14
+ Every tool adheres to a strict contract:
15
+ - **Zod schema validation** for all runtime arguments
16
+ - **`withSecurity()` pipeline** enforcing rate limits, domain policies, and RBAC roles
17
+ - **Structured audit logging** via `logAction()`
18
+ - **Zero-waste token models** utilizing volatile `w:NN` ref IDs, semantic deltas, and DOM pruning
19
+
20
+ ---
21
+
22
+ ## Tool Directory
23
+
24
+ | # | Tool Name | Category | Description |
25
+ | :--- | :--- | :--- | :--- |
26
+ | 1 | `browser_map` | Vision & Reading | DOM snapshotter with volatile `w:NN` ref IDs, delta diffing, pruning, and AX tree fallback. Supports `app`. |
27
+ | 2 | `browser_navigate` | Navigation & Environment | Navigates to a URL with blocklist checks, network idle wait, and desktop app connections. Supports `app`. |
28
+ | 3 | `browser_click` | Input & Interaction | Physical click engine using Bézier Ghost Cursor kinematics with 5-layer targeting fallback. Supports `app`. |
29
+ | 4 | `browser_type` | Input & Interaction | Keystroke dispatch with humanized temporal jitter, stuck-input breaking, and clearFirst. Supports `app`. |
30
+ | 5 | `browser_type_secret` | Input & Interaction | Blind credential injection from `secrets.json` without exposing values to LLM context. Supports `app`. |
31
+ | 6 | `browser_key` | Input & Interaction | Presses native key combinations (Enter, Tab, Escape, Ctrl+C, Alt+F4, etc.). Supports `app`. |
32
+ | 7 | `browser_scroll` | Input & Interaction | Directional and element-relative smooth scrolling via CDP wheel events. Supports `app`. |
33
+ | 8 | `browser_dialog` | Dialog & Human Oversight | Accepts, dismisses, or responds to JavaScript `alert`, `confirm`, and `prompt` dialogs. |
34
+ | 9 | `browser_burst` | Mission & Automation | Atomic multi-step action pipeline execution in a single JSON-RPC round-trip. Supports `app`. |
35
+ | 10 | `browser_tabs` | Tabs & Windows | Full tab & window CRUD lifecycle management (open, switch, close, consolidate, heal). Supports `app`. |
36
+ | 11 | `browser_wait` | Wait, Timing & Safety | Blocks execution until DOM element, text, URL pattern, network idle, or stability is met. Supports `app`. |
37
+ | 12 | `browser_captcha` | Wait, Timing & Safety | Autonomous zero-API solving of Turnstile, reCAPTCHA, GeeTest, and hCaptcha challenges. |
38
+ | 13 | `browser_thoughts` | Dialog & Human Oversight | Visual agent-to-user status HUD overlay (feedback banner or interactive question modal). |
39
+ | 14 | `browser_pointer` | Input & Interaction | Precision mouse control for hover flyouts, clicks, double-clicks, and drag-and-drop. Supports `app`. |
40
+ | 15 | `browser_select` | Input & Interaction | Selects options in native `<select>` dropdowns with framework-safe synthetic events. Supports `app`. |
41
+ | 16 | `browser_fill` | Input & Interaction | Smart multi-field form batch completion across text inputs, radios, checkboxes, and selects. Supports `app`. |
42
+ | 17 | `browser_highlight` | Canvas & Visual Overlays | Zero-token visual CDP overlay highlights over target elements without DOM mutations. Supports `app`. |
43
+ | 18 | `browser_upload` | Input & Interaction | File input attachment bypassing OS pickers via CDP `DOM.setFileInputFiles`. Supports `app`. |
44
+ | 19 | `browser_find` | Vision & Reading | Sub-5ms in-page text search via CDP `Page.searchInPage`. ~10× cheaper than `browser_map`. Supports `app`. |
45
+ | 20 | `browser_storage` | Storage & Cookies | Key-value store management for `localStorage` and `sessionStorage`. Supports `app`. |
46
+ | 21 | `browser_network_intercept` | Network & Security | Request mocking, URL pattern blocking, and network timing/TLS diagnostic extraction. Supports `app`. |
47
+ | 22 | `browser_console` | Vision & Reading | Reads and clears buffered console logs, warnings, exceptions, and network errors. Supports `app`. |
48
+ | 23 | `browser_pdf` | Output & Media | Prints the active page to PDF with custom scaling, landscape mode, and page ranges. Supports `app`. |
49
+ | 24 | `browser_eval` | Script Evaluation | Evaluates arbitrary JavaScript expressions directly in the main frame JS context. Supports `app`. |
50
+ | 25 | `browser_cookies` | Storage & Cookies | Complete cookie CRUD management via CDP Network domain. Supports `app`. |
51
+ | 26 | `browser_canvas` | Canvas & Visual Overlays | Export canvas pixels as Base64 PNG or execute vector coordinate drawings. Supports `app`. |
52
+ | 27 | `browser_scrape` | Vision & Reading | Structured data extraction via CSS or XPath selectors in a single round-trip. Supports `app`. |
53
+ | 28 | `browser_snapshot` | Vision & Reading | Capture or restore complete MHTML DOM snapshots including inline resources. Supports `app`. |
54
+ | 29 | `browser_screenshot` | Vision & Reading | Visual viewport or full-page capture in PNG or JPEG with custom clip regions. Supports `app`. |
55
+ | 30 | `browser_viewport` | Navigation & Environment | Configures viewport dimensions, device scale factor, mobile mode, and touch emulation. Supports `app`. |
56
+ | 31 | `browser_clipboard` | Dialog & Human Oversight | Plaintext and base64 image reading/writing to the system clipboard. Supports `app`. |
57
+ | 32 | `browser_inspect` | Vision & Reading | Deep DOM element inspection returning computed CSS styles, box model, and event listeners. Supports `app`. |
58
+ | 33 | `browser_extract_design` | Vision & Reading | Extracts design tokens, typography, colors, clean CSS, and Tailwind themes with pixel fidelity. Supports `app`. |
59
+ | 34 | `browser_automation` | Mission & Automation | Injects self-running background tracking scripts into the page context for polling/monitoring. Supports `app`. |
60
+ | 35 | `browser_recording` | Output & Media | Video screencast recording into `.webp`, `.gif`, `.webm`, or `.mp4` formats. Supports `app`. |
61
+ | 36 | `browser_reset_loop_counter` | Wait, Timing & Safety | Resets the repetitive action strike counter to zero for long-running automated workflows. |
62
+ | 37 | `browser_detect` | Tabs & Windows | Detects installed local browsers and reports CDP feature support matrices. |
63
+ | 38 | `browser_performance` | Performance & Vitals | Retrieves Core Web Vitals (FCP, LCP, CLS) and detailed network resource timings. Supports `app`. |
64
+ | 39 | `browser_macro_compile` | Mission & Automation | Compiles recent action trails from session history into reusable `browser_burst` macros. |
65
+ | 40 | `github_analyze` | GitHub Intelligence | Analyzes GitHub repository structure, file trees, and READMEs without API token limits. |
66
+ | 41 | `github_read` | GitHub Intelligence | Reads raw file contents and specific line ranges from GitHub repositories. |
67
+ | 42 | `github_issues` | GitHub Intelligence | Lists, searches, and inspects GitHub issues and discussion threads. |
68
+ | 43 | `github_get_pr` | GitHub Intelligence | Inspects GitHub Pull Requests including changed files, diffs, and review comments. |
69
+ | 44 | `browser_office` | Office Documents | Parses Word (`.docx`), Excel (`.xlsx`), PDF, and CSV files into structured data. |
70
+ | 45 | `browser_emulate` | Navigation & Environment | Emulates network throttling (3G/4G/Offline), CPU slowdown, geolocation, and custom User-Agent. Supports `app`. |
71
+ | 46 | `list_plugins` | Plugins & Extensions | Inspects installed SDK plugins, loaded tool overrides, custom schemas, and capability manifests. |
72
+
73
+ ---
74
+
75
+ ## 1. Vision & DOM Reading
76
+
77
+ ### `browser_map`
78
+ DOM tree snapshotter with volatile `w:NN` ref IDs. The foundational tool for reading and understanding page structure.
79
+
80
+ **Parameters:**
81
+ | Parameter | Type | Description |
82
+ |---|---|---|
83
+ | `delta` | `boolean?` | Diff mode: returns only elements added or modified since the previous snapshot (up to 97% token savings). |
84
+ | `prune` | `boolean?` | One-shot semantic compression: collapses repetitive elements and strips non-interactable noise. |
85
+ | `scope` | `enum?` | Restricts extraction to a semantic landmark: `"navigation"`, `"main_content"`, `"sidebar"`, `"form"`, `"modal"`, `"utility"`. |
86
+ | `query` | `string?` | Filters elements by accessible name, ARIA role, or label substring. |
87
+ | `ax_tree` | `boolean?` | Uses Chromium Accessibility Tree directly (essential for closed Shadow DOM and canvas SPAs). |
88
+ | `full` | `boolean?` | Return full markdown table format with bounding boxes instead of compact list. |
89
+ | `tab_id` | `string?` | Read a specific background tab ID. |
90
+ | `app` | `string?` | Target desktop Electron app name (e.g. `"discord"`, `"vscode"`, `"figma"`). |
91
+
92
+ ```typescript
93
+ // Initial fast read with semantic pruning
94
+ browser_map({ prune: true })
95
+
96
+ // Efficient polling for changes
97
+ browser_map({ delta: true, prune: true })
98
+
99
+ // Inspect inputs inside Discord desktop app
100
+ browser_map({ app: "discord", scope: "main_content" })
101
+ ```
102
+
103
+ ---
104
+
105
+ ### `browser_find`
106
+ Sub-5ms native CDP in-page text search via `Page.searchInPage`. Approximately 10× cheaper than `browser_map` when only checking for text presence.
107
+
108
+ **Parameters:**
109
+ | Parameter | Type | Description |
110
+ |---|---|---|
111
+ | `query` | `string` *(required)* | Text search query string. |
112
+ | `app` | `string?` | Target Electron desktop application. |
113
+
114
+ ```typescript
115
+ browser_find({ query: "Order Confirmed" })
116
+ ```
117
+
118
+ ---
119
+
120
+ ### `browser_scrape`
121
+ Rapid structured data extraction via CSS or XPath selectors. Executes a single CDP `Runtime.evaluate` call and returns clean tabular data.
122
+
123
+ **Parameters:**
124
+ | Parameter | Type | Description |
125
+ |---|---|---|
126
+ | `query` | `string` *(required)* | CSS selector or XPath query expression. |
127
+ | `type` | `"css" | "xpath"?` | Selector query type (default `"css"`). |
128
+ | `attributes` | `string[]?` | Element attributes to extract per match (default `["textContent"]`). |
129
+ | `multiple` | `boolean?` | Return all matches or just the first element (default `true`). |
130
+
131
+ ```typescript
132
+ browser_scrape({
133
+ query: ".pricing-card",
134
+ type: "css",
135
+ attributes: ["data-plan", "textContent", "href"]
136
+ })
137
+ ```
138
+
139
+ ---
140
+
141
+ ### `browser_extract_design`
142
+ Extracts design tokens (colors, typography, spacing, shadows, CSS variables), semantic HTML layouts, and scoped CSS into structured files or Tailwind themes with 100% pixel fidelity.
143
+
144
+ **Parameters:**
145
+ | Parameter | Type | Description |
146
+ |---|---|---|
147
+ | `selector` | `string?` | CSS selector of container element (default `"main"`, fallback `"body"`). |
148
+ | `format` | `"tailwind" | "vanilla_css" | "tokens_only"?` | Style export preset (default `"tailwind"`). |
149
+ | `outputDir` | `string?` | Custom output directory. If omitted, writes to `~/.weavetab/designs/<domain>-<ts>/`. |
150
+ | `name` | `string?` | Custom name for the saved design folder (e.g. `"pricing-hero"`). |
151
+
152
+ ```typescript
153
+ browser_extract_design({
154
+ selector: "#hero-section",
155
+ format: "tailwind",
156
+ name: "landing-hero"
157
+ })
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 2. Input & Interaction
163
+
164
+ ### `browser_click`
165
+ Physical click engine using Ghost Cursor Bézier curve trajectories. Resolves targets through a 5-layer fallback cascade: `ref` → `selector` → `label` → `intent` → `coords`.
166
+
167
+ **Parameters:**
168
+ | Parameter | Type | Description |
169
+ |---|---|---|
170
+ | `id` | `string?` | Volatile `w:NN` ref ID from `browser_map` (preferred). |
171
+ | `selector` | `string?` | CSS selector of target element. |
172
+ | `label` | `string?` | Visible text label of the target element. |
173
+ | `intent` | `string?` | Semantic intent for AI-assisted Memory Intent Intercept. |
174
+ | `app` | `string?` | Target Electron desktop application. |
175
+
176
+ ```typescript
177
+ // Preferred: stable ref ID
178
+ browser_click({ id: "w:14" })
179
+
180
+ // Target desktop application
181
+ browser_click({ id: "w:8", app: "discord" })
182
+ ```
183
+
184
+ ---
185
+
186
+ ### `browser_type`
187
+ Realistic humanized keystroke engine with temporal jitter (35–95ms), typing burst profiling, and stuck-input loop detection.
188
+
189
+ **Parameters:**
190
+ | Parameter | Type | Description |
191
+ |---|---|---|
192
+ | `text` | `string` *(required)* | Text string to type. |
193
+ | `id` | `string?` | Target `w:NN` ref ID. |
194
+ | `selector` | `string?` | CSS selector for target input. |
195
+ | `clearFirst` | `boolean?` | Clear input field value before typing. |
196
+ | `paste` | `boolean?` | Fast paste mode (recommended for tokens/strings > 8 chars). |
197
+ | `app` | `string?` | Target Electron desktop application. |
198
+
199
+ ---
200
+
201
+ ### `browser_type_secret`
202
+ **Blind Credential Injection** — Resolves passwords, API keys, and 2FA tokens server-side from `secrets.json`. Secrets are **never sent to the LLM context** and are permanently redacted as `[REDACTED]` in all subsequent DOM snapshots and audit logs.
203
+
204
+ **Parameters:**
205
+ | Parameter | Type | Description |
206
+ |---|---|---|
207
+ | `envKey` | `string` *(required)* | Key name in `secrets.json` (e.g. `"OKTA_PASSWORD"`). |
208
+ | `id` | `string?` | Target `w:NN` ref ID. |
209
+ | `target` | `string?` | CSS selector for target password/auth input. |
210
+
211
+ ```typescript
212
+ browser_type_secret({ id: "w:8", envKey: "PROD_AUTH_TOKEN" })
213
+ ```
214
+
215
+ ---
216
+
217
+ ## 3. Mission & Automation
218
+
219
+ ### `browser_burst`
220
+ High-performance atomic action pipeline. Executes multiple sequential actions in a single MCP JSON-RPC round-trip, eliminating protocol latency overhead.
221
+
222
+ **Parameters:**
223
+ | Parameter | Type | Description |
224
+ |---|---|---|
225
+ | `steps` | `array` *(required)* | Array of compound macro step objects. |
226
+ | `batch` | `boolean?` | Run in batch mode. |
227
+ | `app` | `string?` | Target Electron desktop application context. |
228
+
229
+ ```typescript
230
+ browser_burst({
231
+ steps: [
232
+ { action: "navigate_and_read", url: "https://example.com/login" },
233
+ { action: "type_and_send", selector: "#username", text: "admin@corp.internal" },
234
+ { action: "click_and_wait", selector: "#submit-btn" }
235
+ ]
236
+ })
237
+ ```
238
+
239
+ ---
240
+
241
+ ## 4. Autonomous CAPTCHA Solving
242
+
243
+ ### `browser_captcha`
244
+ Autonomous zero-API challenge detection and solving. Solves Cloudflare Turnstile, Google reCAPTCHA v2/v3, GeeTest sliders, Arkose Labs, and hCaptcha locally using real CDP mouse physics and arithmetic heuristics — requiring **zero external API keys or third-party solver services**.
245
+
246
+ **Parameters:**
247
+ | Parameter | Type | Description |
248
+ |---|---|---|
249
+ | `action` | `"detect" | "solve" | "wait_for_user" | "status"` *(required)* | CAPTCHA action. |
250
+ | `timeout` | `number?` | Max solving timeout in milliseconds (default `120000`). |
251
+
252
+ ```typescript
253
+ browser_captcha({ action: "solve", timeout: 45000 })
254
+ ```
255
+
256
+ ---
257
+
258
+ ## 5. Enterprise Documents & Office
259
+
260
+ ### `browser_office`
261
+ Parses and extracts structured tabular content, text paragraphs, and metadata from Word (`.docx`), Excel (`.xlsx`/`.xls`), PDF, and CSV files downloaded during browser sessions or referenced via URL.
262
+
263
+ **Parameters:**
264
+ | Parameter | Type | Description |
265
+ |---|---|---|
266
+ | `action` | `"read" | "list"` *(required)* | Document parsing operation. |
267
+ | `file` | `string?` | Path to local document file. |
268
+ | `url` | `string?` | Authenticated browser session URL to document. |
269
+ | `max_rows` | `number?` | Maximum spreadsheet/table rows to parse. |
270
+
271
+ ```typescript
272
+ browser_office({
273
+ action: "read",
274
+ file: "./.weavetab/downloads/financial_report.xlsx",
275
+ max_rows: 100
276
+ })
277
+ ```
278
+
279
+ ---
280
+
281
+ ## 6. Plugins & Extensions
282
+
283
+ ### `list_plugins`
284
+ Inspects all dynamically loaded Weavetab SDK plugins, active tool overrides, registered capability manifests, and isolated plugin storage directories.
285
+
286
+ **Parameters:**
287
+ | Parameter | Type | Description |
288
+ |---|---|---|
289
+ | `verbose` | `boolean?` | Return complete schema definitions and absolute file storage paths (default `false`). |
290
+
291
+ ```typescript
292
+ list_plugins({ verbose: true })
293
+ ```
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: "Browser Issues"
3
+ description: "CDP connection failures, crashes, and extension problems."
4
+ product: mcp
5
+ section: troubleshooting
6
+ icon: MonitorX
7
+ slug: trouble-browser
8
+ ---
9
+
10
+ # Browser Connection Issues
11
+
12
+ ## "CDP connection failed" Error
13
+
14
+ **Causes:**
15
+ - Port 9222 is occupied by another process
16
+ - Chrome was launched without `--remote-debugging-port`
17
+
18
+ **Fixes:**
19
+ 1. Run `weavetab reset --yes` to terminate orphaned browser processes
20
+ 2. Verify port availability: `netstat -an | grep 9222`
21
+ 3. Restart Weavetab
22
+
23
+ ## Browser Crashes on Launch
24
+
25
+ **Fixes:**
26
+ 1. Run `weavetab reset` to purge corrupted profiles
27
+ 2. Check `CHROME_PATH` environment variable points to a valid Chromium executable
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: "Config Errors"
3
+ description: "Configuration validation, secrets, and policy issues."
4
+ product: mcp
5
+ section: troubleshooting
6
+ icon: AlertTriangle
7
+ slug: trouble-config
8
+ ---
9
+
10
+ # Configuration Issues
11
+
12
+ ## Secrets Not Injecting
13
+
14
+ 1. Check that `~/.weavetab/secrets.json` or `./.weavetab/secrets.json` exists
15
+ 2. Verify the secret key name matches exactly (case-sensitive)
16
+ 3. Run `weavetab secrets list` to confirm keys are registered
17
+
18
+ ## Configuration Quarantined
19
+
20
+ If a config file has syntax errors, Weavetab quarantines it to `config.broken.<timestamp>.json` and falls back to defaults. Run `weavetab config` to regenerate a valid file.
@@ -0,0 +1,31 @@
1
+ ---
2
+ title: "Loop Detection"
3
+ description: "When the agent gets stuck in an action loop."
4
+ product: mcp
5
+ section: troubleshooting
6
+ icon: RotateCcw
7
+ slug: trouble-loop
8
+ ---
9
+
10
+ # Loop Detection Diagnostics
11
+
12
+ ## Symptoms
13
+
14
+ A tool call returns `stuck_warning: true` or `STUCK_LOOP_WARNING`.
15
+
16
+ ## Cause
17
+
18
+ Weavetab tracks a rolling 50-action window in `~/.weavetab-system/sessions/context.json`. If repeated identical actions fail to produce DOM state changes, strikes are accumulated:
19
+
20
+ | Strikes | Severity | System Behavior |
21
+ |---|---|---|
22
+ | < 5 | Normal | Standard execution |
23
+ | 5–9 | Warning | Warning hint injected into agent context |
24
+ | 10+ | Critical | Agent marked as `stuck`; recovery strategy triggered |
25
+
26
+ ## Resolution
27
+
28
+ 1. Call `browser_reset_loop_counter({ reason: "new_task" })` to clear strikes
29
+ 2. Call `browser_map({ delta: true })` to verify if DOM elements actually changed
30
+ 3. Call `browser_inspect` to check if target element is hidden or occluded by modals
31
+ 4. Use `browser_wait({ for: "stable" })` before triggering inputs
@@ -1777,7 +1777,6 @@ function __wt_handleWeavetabMsg(msg) {
1777
1777
  }
1778
1778
  }
1779
1779
  }
1780
- if (msg.darkMode !== undefined) document.body.classList.toggle('Weavetab-dark', msg.darkMode);
1781
1780
  if (msg.cursor || msg.hud) {
1782
1781
  controlledIndicator.show('#3B82F6');
1783
1782
  }