@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
package/AGENTS.md CHANGED
@@ -9,6 +9,7 @@ This document is the universal specification for AI agents (Cursor, Antigravity,
9
9
  1. **Layer 0 Direct CDP**:
10
10
  * Weavetab connects directly to Chrome DevTools Protocol (CDP) via WebSocket (`127.0.0.1`).
11
11
  * **Do NOT introduce Puppeteer, Playwright, or Selenium wrapper abstractions**.
12
+ * Supports both standard browsers (Chrome/Chromium) and **any Electron/desktop webview app** (Discord, VS Code, Antigravity, Figma, Obsidian, Slack, or local apps from source) via the generic `app` parameter and `electron` config mapping.
12
13
 
13
14
  2. **Deterministic State & Token Efficiency**:
14
15
  * Use the **Semantic Delta Engine** for DOM snapshot diffing.
package/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
- Weavetab v2.5.0+ — Copyright (C) 2026 fy2ne
2
- Licensing inquiries: license@weavetab.dev
1
+ Weavetab — Copyright (C) 2026 fy2ne
2
+ Licensing inquiries: license@weavetab.pages.dev
3
3
  Commercial licenses available for proprietary/embedded use.
4
4
 
5
5
  MCP Transport Clarification:
package/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
  ![WeaveTab MCP Logo](icon.png)
4
4
 
5
5
  <h1>WeaveTab MCP</h1>
6
- <p><strong>The Production-Grade Browser Automation MCP Server</strong></p>
7
- <p><em>Direct CDP at Layer 0 — No WebDriver. No Cloud. No Compromise.</em></p>
6
+ <p><strong>Direct Layer 0 interface for AI agents across web and desktop applications.</strong></p>
7
+ <p><em>No WebDriver. No Cloud. Pure Control.</em></p>
8
8
 
9
9
  <p>
10
10
  <img src="https://img.shields.io/badge/version-2.5.0-3b82f6?style=flat-square" alt="Version" />
@@ -17,7 +17,7 @@
17
17
 
18
18
  <p>
19
19
  <a href="https://github.com/weavetab/mcp">GitHub</a> ·
20
- <a href="docs/TOOLS.md">Tool Reference</a> ·
20
+ <a href="docs/tools/overview.md">Tool Reference</a> ·
21
21
  <a href="docs/DOCUMENTATION.md">Documentation</a> ·
22
22
  <a href="SECURITY.md">Security Policy</a> ·
23
23
  <a href="CONTRIBUTING.md">Contributing</a>
@@ -26,7 +26,7 @@
26
26
 
27
27
  ---
28
28
 
29
- **Weavetab** is a local, high-performance [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that grants AI agents human-like control over Chromium browsers. Unlike Playwright or Puppeteer, Weavetab communicates directly over the **Chrome DevTools Protocol (CDP) WebSocket at Layer 0** — no WebDriver process, no browser binary download, no heavy abstraction layer. This architectural decision yields **3–8ms mean tool execution latency** and eliminates an entire class of process-level overhead.
29
+ **Weavetab** is a local, high-performance [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server providing AI agents with direct, physical control across Chromium browsers and Electron desktop applications (Discord, VS Code, Antigravity, Figma, Slack, and local projects). Communicating directly over the **Chrome DevTools Protocol (CDP) WebSocket at Layer 0**, Weavetab eliminates WebDriver binaries, browser wrappers, and cloud middleware for deterministic **3–8ms tool execution latency**.
30
30
 
31
31
  Built by **fy2ne**, Weavetab is engineered for autonomous AI agents operating in production environments where latency, security, and token efficiency are non-negotiable.
32
32
 
@@ -37,6 +37,7 @@ Built by **fy2ne**, Weavetab is engineered for autonomous AI agents operating in
37
37
  - [Quick Start](#quick-start)
38
38
  - [Architecture](#architecture)
39
39
  - [Core Features](#core-features)
40
+ - [Electron & Desktop App Automation](#electron--desktop-app-automation)
40
41
  - [Tool Categories](#tool-categories)
41
42
  - [CLI Reference](#cli-reference)
42
43
  - [Configuration](#configuration)
@@ -215,6 +216,136 @@ Chain N actions in a single MCP round-trip with `browser_burst`. Supports macro
215
216
 
216
217
  ---
217
218
 
219
+ ## Electron & Desktop App Automation
220
+
221
+ Weavetab extends its Layer 0 CDP engine beyond web browsers to **any Electron-based desktop application or locally hosted webview app** (e.g. **Discord**, **Slack**, **VS Code**, **Antigravity IDE**, **Figma**, **Obsidian**, **Postman**, or your own custom Electron projects running from source).
222
+
223
+ Because Electron is built on Chromium and Blink, Weavetab controls desktop apps using the exact same low-latency CDP primitives (`browser_map`, `browser_click`, `browser_type`, `browser_tabs`, etc.) with zero app-specific hacks or overhead.
224
+
225
+ ### 1. Configuring Installed Desktop Apps
226
+
227
+ Add your application executable paths to `~/.weavetab/config.json` (or `./.weavetab/config.json`) under the `"electron"` dictionary:
228
+
229
+ ```json
230
+ {
231
+ "browserType": "chromium",
232
+ "electron": {
233
+ "discord": "C:\\Users\\<user>\\AppData\\Local\\Discord\\app-1.0.9183\\Discord.exe",
234
+ "antigravity": "C:\\Users\\<user>\\AppData\\Local\\Programs\\antigravity\\Antigravity.exe",
235
+ "vscode": "C:\\Users\\<user>\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
236
+ "figma": "C:\\Users\\<user>\\AppData\\Local\\Figma\\Figma.exe",
237
+ "obsidian": "C:\\Users\\<user>\\AppData\\Local\\Obsidian\\Obsidian.exe",
238
+ "slack": "/Applications/Slack.app/Contents/MacOS/Slack"
239
+ }
240
+ }
241
+ ```
242
+
243
+ ### 2. Automating Local / Source-Hosted Electron Projects
244
+
245
+ If you are developing a local Electron app from source code or running it via Vite / Webpack / Next.js on `localhost`, you can automate it in two ways:
246
+
247
+ #### Option A: Launch with Remote Debugging Flag
248
+ Start your development process passing the Chrome DevTools Protocol remote debugging port:
249
+
250
+ ```bash
251
+ # Standard Electron CLI / npm script
252
+ npx electron . --remote-debugging-port=9222
253
+
254
+ # Or within your package.json scripts:
255
+ # "dev:debug": "electron . --remote-debugging-port=9222"
256
+ npm run dev:debug
257
+ ```
258
+
259
+ Then configure `"attachPort": 9222` in `.weavetab/config.json` or register it in `"electron"`:
260
+ ```json
261
+ {
262
+ "electron": {
263
+ "my-dev-app": "npm run dev:debug"
264
+ }
265
+ }
266
+ ```
267
+
268
+ #### Option B: Register Local App Executable / Wrapper Script
269
+ Specify your local build binary or launch script in `"electron"`:
270
+ ```json
271
+ {
272
+ "electron": {
273
+ "my-local-app": "C:\\Users\\<user>\\projects\\my-app\\node_modules\\electron\\dist\\electron.exe"
274
+ }
275
+ }
276
+ ```
277
+
278
+ ### 3. Controlling Desktop Apps via MCP Tools
279
+
280
+ All Weavetab tools accept an optional `app` parameter specifying which application to target. When specified, Weavetab automatically connects to that app's dedicated CDP session without launching or interfering with your default browser.
281
+
282
+ #### Launch / Focus Desktop App
283
+ ```json
284
+ {
285
+ "name": "browser_navigate",
286
+ "arguments": {
287
+ "app": "antigravity"
288
+ }
289
+ }
290
+ ```
291
+
292
+ #### List & Switch Windows / Workbenches
293
+ Desktop apps often run multiple browser windows or background webviews. Inspect and switch active contexts using `browser_tabs`:
294
+ ```json
295
+ {
296
+ "name": "browser_tabs",
297
+ "arguments": {
298
+ "action": "list",
299
+ "app": "antigravity"
300
+ }
301
+ }
302
+ ```
303
+
304
+ Switch to a specific window/tab:
305
+ ```json
306
+ {
307
+ "name": "browser_tabs",
308
+ "arguments": {
309
+ "action": "switch",
310
+ "tabId": "D8832CBF1FEF413B6E09E96EF8C82DFF",
311
+ "app": "antigravity"
312
+ }
313
+ }
314
+ ```
315
+
316
+ #### Inspect DOM & Interact with UI Elements
317
+ Generate actionable Ref IDs (`w:NN`) and interact directly with native desktop UI components:
318
+ ```json
319
+ // 1. Snapshot the Desktop App UI
320
+ {
321
+ "name": "browser_map",
322
+ "arguments": {
323
+ "app": "antigravity"
324
+ }
325
+ }
326
+
327
+ // 2. Click Settings or Menus
328
+ {
329
+ "name": "browser_click",
330
+ "arguments": {
331
+ "ref": "w:14",
332
+ "app": "antigravity"
333
+ }
334
+ }
335
+
336
+ // 3. Type text into Desktop inputs
337
+ {
338
+ "name": "browser_type",
339
+ "arguments": {
340
+ "ref": "w:28",
341
+ "text": "Hello from WeaveTab automation!",
342
+ "app": "discord"
343
+ }
344
+ }
345
+ ```
346
+
347
+ ---
348
+
218
349
  ## Tool Categories
219
350
 
220
351
  Weavetab exposes **44+ MCP tools** organized into functional categories. See the complete reference in [`docs/TOOLS.md`](docs/TOOLS.md).
@@ -389,12 +520,17 @@ Weavetab auto-generates a config file at `~/.weavetab/config.json` on first run.
389
520
  {
390
521
  "browserType": "chromium",
391
522
  "headless": false,
523
+ "extension": true,
392
524
  "devMode": false,
393
525
  "maxActionsPerMinute": 60,
394
526
  "role": "admin",
395
527
  "telemetry": false,
396
528
  "downloadDir": "~/Downloads",
397
- "profileDir": "~/.weavetab/profile"
529
+ "profileDir": "~/.weavetab/profile",
530
+ "electron": {
531
+ "discord": "C:\\Users\\<user>\\AppData\\Local\\Discord\\app-1.0.9183\\Discord.exe",
532
+ "antigravity": "C:\\Users\\<user>\\AppData\\Local\\Programs\\antigravity\\Antigravity.exe"
533
+ }
398
534
  }
399
535
  ```
400
536
 
@@ -402,10 +538,12 @@ Weavetab auto-generates a config file at `~/.weavetab/config.json` on first run.
402
538
  |-----|------|---------|-------------|
403
539
  | `browserType` | `"chromium"` \| `"firefox"` \| `"webkit"` | `"chromium"` | Which browser to launch/attach |
404
540
  | `headless` | boolean | `false` | Run browser without a window |
541
+ | `extension` | boolean | `true` | Enable Weavetab Chrome extension integration |
405
542
  | `devMode` | boolean | `false` | Verbose CDP logging |
406
543
  | `maxActionsPerMinute` | number | `60` | Rate limit threshold |
407
544
  | `role` | `"admin"` \| `"system"` \| `"viewer"` \| `"automation"` | `"admin"` | RBAC role |
408
545
  | `telemetry` | boolean | `false` | Opt-in telemetry |
546
+ | `electron` | `Record<string, string>` | `{}` | Named map of Electron desktop apps to executable paths or startup scripts |
409
547
 
410
548
  ### Domain Policy
411
549
 
@@ -472,12 +610,12 @@ Weavetab connects out-of-the-box via stdio JSON-RPC 2.0 with all major AI coding
472
610
 
473
611
  | Environment | Setup Method | Guided Web Installer |
474
612
  | :--- | :--- | :--- |
475
- | **Cursor** | `.cursor/mcp.json` | [weavetab.dev/mcp/install/cursor](https://weavetab.dev/mcp/install/cursor) |
476
- | **Antigravity** | `~/.gemini/antigravity/mcp/` | [weavetab.dev/mcp/install/antigravity](https://weavetab.dev/mcp/install/antigravity) |
477
- | **Claude Desktop** | `claude_desktop_config.json` | [weavetab.dev/mcp/install/claude-desktop](https://weavetab.dev/mcp/install/claude-desktop) |
478
- | **Claude Code** | `claude mcp add` | [weavetab.dev/mcp/install/claude-code](https://weavetab.dev/mcp/install/claude-code) |
479
- | **VS Code / Copilot** | 1-Click Protocol / `settings.json` | [weavetab.dev/mcp/install/vscode](https://weavetab.dev/mcp/install/vscode) |
480
- | **Windsurf** | `mcp_config.json` | [weavetab.dev/mcp/install/windsurf](https://weavetab.dev/mcp/install/windsurf) |
613
+ | **Cursor** | `.cursor/mcp.json` | [weavetab.pages.dev/mcp/install/cursor](https://github.com/weavetab/mcp/mcp/install/cursor) |
614
+ | **Antigravity** | `~/.gemini/antigravity/mcp/` | [weavetab.pages.dev/mcp/install/antigravity](https://github.com/weavetab/mcp/mcp/install/antigravity) |
615
+ | **Claude Desktop** | `claude_desktop_config.json` | [weavetab.pages.dev/mcp/install/claude-desktop](https://github.com/weavetab/mcp/mcp/install/claude-desktop) |
616
+ | **Claude Code** | `claude mcp add` | [weavetab.pages.dev/mcp/install/claude-code](https://github.com/weavetab/mcp/mcp/install/claude-code) |
617
+ | **VS Code / Copilot** | 1-Click Protocol / `settings.json` | [weavetab.pages.dev/mcp/install/vscode](https://github.com/weavetab/mcp/mcp/install/vscode) |
618
+ | **Windsurf** | `mcp_config.json` | [weavetab.pages.dev/mcp/install/windsurf](https://github.com/weavetab/mcp/mcp/install/windsurf) |
481
619
 
482
620
  ---
483
621
 
@@ -716,58 +854,85 @@ Setting `"devMode": true` in configuration or `WEAVETAB_DEV=1` activates diagnos
716
854
 
717
855
  ## Plugin System
718
856
 
719
- Weavetab supports dynamic tool extension via the **Plugin System**. Any npm package containing a valid `weavetab.json` manifest found in `node_modules` (or official `@weavetab/plugin-*` packages) is automatically discovered and loaded at startup. Community plugins are not restricted to any prefix—name them anything (e.g., `wt-n8n`, `seo-auditor`, `pdf-extract`).
857
+ > [!NOTE]
858
+ > **PLUGIN ENGINE (v2.5.0-beta.2)**
859
+ >
860
+ > The Weavetab Plugin System and SDK are in **v2.5.0-beta.2**.
861
+ > Use the official **[`@weavetab/sdk`](https://www.npmjs.com/package/@weavetab/sdk)** to build, scaffold, and publish plugins.
862
+
863
+ Weavetab supports dynamic tool extension via the **Plugin System**. Any npm package containing a valid `weavetab.json` manifest found in `node_modules` (or official `@weavetab/plugin-*` packages) is automatically discovered and loaded into the MCP server.
720
864
 
721
- > 📖 See [Developer Plugin Guide](../docs/dev_plugin.md) for a step-by-step tutorial, and [docs/PLUGINS.md](docs/PLUGINS.md) for the complete architecture and manifest specification.
865
+ ### Key Capabilities in v2.5.0-beta.2:
866
+ 1. **Isolated Configuration Sandbox**: Each plugin maintains its own settings in `~/.weavetab/plugins/<name>/config.json` without modifying core Weavetab config.
867
+ 2. **Sandboxed Key-Value & File Storage**: Secure storage inside `~/.weavetab/plugins/<name>/` via `ctx.storage` with path traversal protection.
868
+ 3. **Real-time Extension & HUD Visuals**: Floating thought bubbles (`ctx.extension.showThought`), status badges (`setHudState`), and custom CSS injection (`injectStyles`).
869
+ 4. **Tool Overrides & Wrapping**: Wrap or modify built-in MCP tools (e.g. `browser_eval`, `browser_click`) via `ctx.mcp.overrideTool`.
870
+ 5. **Lifecycle Hooks**: Intercept actions before and after tool calls with `ctx.hooks.beforeToolCall` and `ctx.hooks.afterToolCall`.
871
+
872
+ > 📖 See [Developer Plugin Guide](docs/dev_plugin.md) for a step-by-step tutorial, and [docs/PLUGINS.md](docs/PLUGINS.md) for the complete architecture and manifest specification.
722
873
 
723
874
  ### Quick Scaffold & Build
724
875
 
725
876
  ```bash
726
- # 1. Interactive scaffolding wizard
727
- npx weavetab init
877
+ # 1. Scaffold a new plugin
878
+ npx @weavetab/sdk init my-custom-plugin
879
+ cd my-custom-plugin
880
+ npm install
728
881
 
729
- # 2. Build, type-check, and auto-sync weavetab.json
730
- npx weavetab build
882
+ # 2. Build and compile
883
+ npm run build
731
884
  ```
732
885
 
733
886
  ### Installing a Plugin
734
887
 
735
888
  ```bash
736
889
  # Official plugin
737
- wt plugin add @weavetab/plugin-sample
890
+ weavetab plugin add @weavetab/plugin-youtube
738
891
 
739
- # Community plugin (any npm name)
740
- wt plugin add seo-auditor
741
- # or via npm
742
- npm install wt-n8n
892
+ # Community plugin (any npm package name)
893
+ weavetab plugin add seo-auditor
743
894
  ```
744
895
 
745
- Restart `weavetab` — the plugin's tools are automatically registered as additional MCP tools.
896
+ Restart `weavetab` — the plugin's tools are automatically registered into the MCP runtime.
746
897
 
747
- ### Developing a Plugin
898
+ ### Authoring a Plugin
748
899
 
749
900
  ```typescript
750
901
  // src/index.ts
751
- import type { WeavetabPlugin } from "@weavetab/mcp";
902
+ import { definePlugin, type PluginContext } from "@weavetab/sdk";
903
+
904
+ export default definePlugin({
905
+ name: "weavetab-plugin-sample",
906
+
907
+ defaultConfig: {
908
+ showVisualHud: true,
909
+ },
752
910
 
753
- const plugin: WeavetabPlugin = {
754
- name: "my-plugin",
755
- version: "1.0.0",
756
- tools: [
757
- {
911
+ async onLoad(ctx: PluginContext) {
912
+ ctx.mcp.registerTool({
758
913
  name: "my_custom_tool",
759
- description: "WHAT: Does something | WHEN: Use for X | EXAMPLE: my_custom_tool({ param: 'value' })",
760
- schema: { param: { type: "string", description: "Input parameter" } },
761
- handler: async (args, session, config) => {
762
- // Your tool implementation using Chrome DevTools Protocol session
763
- const evalResult = await session.evaluate(() => document.title);
764
- return { success: true, title: evalResult };
914
+ description: "Custom tool registered into Weavetab runtime",
915
+ schema: {
916
+ type: "object",
917
+ properties: {
918
+ param: { type: "string", description: "Input parameter" }
919
+ }
920
+ },
921
+ handler: async (args: { param?: string }, session: any) => {
922
+ // Show thought bubble on active tab
923
+ if (ctx.config.showVisualHud && session) {
924
+ await ctx.extension.showThought(session, `✨ Running tool with ${args.param || "default"}`);
925
+ }
926
+
927
+ return {
928
+ content: [
929
+ { type: "text", text: `Executed with: ${args.param || "default"}` }
930
+ ]
931
+ };
765
932
  }
766
- }
767
- ]
768
- };
769
-
770
- export default plugin;
933
+ });
934
+ }
935
+ });
771
936
  ```
772
937
 
773
938
  Plugin tools follow the standard MCP contract: structured Zod input, deterministic JSON output, audit logging, and `WeaveError` protocol on failure.
@@ -884,7 +1049,7 @@ Commit format: `feat:`, `fix:`, `docs:`, `chore:`, `refactor:`, `test:`
884
1049
  Running Weavetab MCP as an independent process and communicating with it over standard Model Context Protocol transports (`stdio` or WebSocket JSON-RPC) does **not** cause AGPL copyleft obligations to extend to your client application, IDE, or host AI models.
885
1050
 
886
1051
  ### Commercial Licensing
887
- For commercial, proprietary, or embedded distribution without AGPL copyleft requirements, dual-licensing options are available. Inquire at `license@weavetab.dev`.
1052
+ For commercial, proprietary, or embedded distribution without AGPL copyleft requirements, dual-licensing options are available. Inquire at `license@weavetab.pages.dev`.
888
1053
 
889
1054
  ---
890
1055
 
@@ -895,7 +1060,7 @@ For commercial, proprietary, or embedded distribution without AGPL copyleft requ
895
1060
  | [GitHub Issues](https://github.com/weavetab/mcp/issues) | Bug reports, feature requests |
896
1061
  | [TROUBLESHOOTING.md](TROUBLESHOOTING.md) | Common issues and fixes |
897
1062
  | [docs/](docs/) | Full documentation |
898
- | security@weavetab.dev | Security vulnerabilities (private) |
1063
+ | security@weavetab.pages.dev | Security vulnerabilities (private) |
899
1064
 
900
1065
  ---
901
1066
 
package/SECURITY.md CHANGED
@@ -131,7 +131,7 @@ If you discover a security vulnerability in Weavetab, please **do not** open a p
131
131
 
132
132
  Instead, report via one of the following channels:
133
133
 
134
- - **Email**: security@Weavetab.dev
134
+ - **Email**: security@weavetab.pages.dev
135
135
  - **GitHub**: Use the private vulnerability reporting feature on the repository
136
136
 
137
137
  ### Disclosure Timeline
@@ -185,8 +185,8 @@ To receive security notifications:
185
185
 
186
186
  For security-related inquiries:
187
187
 
188
- - **Security Vulnerabilities**: security@Weavetab.dev
189
- - **Security Questions**: conduct@Weavetab.dev
188
+ - **Security Vulnerabilities**: security@weavetab.pages.dev
189
+ - **Security Questions**: conduct@weavetab.pages.dev
190
190
  - **GitHub Security**: https://github.com/weavetab/mcp/security
191
191
 
192
192
  ---
@@ -199,7 +199,7 @@ browser_click({ id: "w:42" })
199
199
  **Cause:** Extension incompatibility or corrupted Chrome profile.
200
200
 
201
201
  **Solution:**
202
- - Try running without extension: Set `loadExtension: false` in config
202
+ - Try running without extension: Set `"extension": false` in config
203
203
  - Use a fresh Chrome profile: Set `profileDir` to a new directory
204
204
  - Check Chrome version compatibility (requires Chrome 90+)
205
205
  - Disable hardware acceleration in Chrome settings
@@ -4,6 +4,7 @@ export interface BrowserInfo {
4
4
  name: string;
5
5
  path: string;
6
6
  }
7
+ export declare function isValidElectronExecutablePath(execPath: string): boolean;
7
8
  export declare function findBrowser(preferred?: string): BrowserInfo | null;
8
9
  export declare function findFirefox(): BrowserInfo | null;
9
10
  export declare function probeAllBrowsers(): BrowserInfo[];
@@ -14,3 +15,12 @@ export declare function launchWithBridge(config: Config): Promise<{
14
15
  engine?: BrowserEngine;
15
16
  }>;
16
17
  export declare function injectStealthScript(session: CDP.Client): Promise<void>;
18
+ export declare function getFreePort(preferredPort?: number): Promise<number>;
19
+ export declare function testPortListening(port: number): Promise<boolean>;
20
+ export declare function launchElectronApp(appName: string, config: Config): Promise<{
21
+ path: string;
22
+ name: string;
23
+ port: number;
24
+ engine: "chromium";
25
+ isElectron: true;
26
+ }>;