@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
@@ -1,37 +1,37 @@
1
- ---
2
- title: "Transport Modes"
3
- description: "stdio vs WebSocket — pick the right wire for your client."
4
- product: mcp
5
- section: architecture
6
- icon: Cable
7
- slug: transport
8
- ---
9
-
10
- # Transport Modes
11
-
12
- | Mode | Flag | Protocol | Use Case |
13
- |---|---|---|---|
14
- | **stdio** | *(default)* | JSON-RPC 2.0 / stdio | Claude Desktop, Cursor, VS Code Copilot, Antigravity |
15
- | **WebSocket** | `--ws [--port N]` | JSON-RPC 2.0 / WebSocket | Custom agents, Python/Go backends, remote daemons, n8n |
16
-
17
- ## stdio (Default)
18
-
19
- The MCP client spawns Weavetab as a child process and pipes messages over stdin/stdout. No network port is opened:
20
-
21
- ```json
22
- {
23
- "mcpServers": {
24
- "weavetab": {
25
- "command": "weavetab"
26
- }
27
- }
28
- }
29
- ```
30
-
31
- ## WebSocket
32
-
33
- ```bash
34
- weavetab --ws --port 3000
35
- ```
36
-
37
- Starts the daemon on `127.0.0.1:3000` (override with `--port <n>` / `--port=<n>`). The daemon binds strictly to loopback for local security — front it with your own TLS/auth layer if exposing across a private network.
1
+ ---
2
+ title: "Transport Modes"
3
+ description: "stdio vs WebSocket — pick the right wire for your client."
4
+ product: mcp
5
+ section: architecture
6
+ icon: Cable
7
+ slug: transport
8
+ ---
9
+
10
+ # Transport Modes
11
+
12
+ | Mode | Flag | Protocol | Use Case |
13
+ |---|---|---|---|
14
+ | **stdio** | *(default)* | JSON-RPC 2.0 / stdio | Claude Desktop, Cursor, VS Code Copilot, Antigravity |
15
+ | **WebSocket** | `--ws [--port N]` | JSON-RPC 2.0 / WebSocket | Custom agents, Python/Go backends, remote daemons, n8n |
16
+
17
+ ## stdio (Default)
18
+
19
+ The MCP client spawns Weavetab as a child process and pipes messages over stdin/stdout. No network port is opened:
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "weavetab": {
25
+ "command": "weavetab"
26
+ }
27
+ }
28
+ }
29
+ ```
30
+
31
+ ## WebSocket
32
+
33
+ ```bash
34
+ weavetab --ws --port 3000
35
+ ```
36
+
37
+ Starts the daemon on `127.0.0.1:3000` (override with `--port <n>` / `--port=<n>`). The daemon binds strictly to loopback for local security — front it with your own TLS/auth layer if exposing across a private network.
@@ -1,50 +1,50 @@
1
- ---
2
- title: "Commands"
3
- description: "Reference for every top-level subcommand."
4
- product: mcp
5
- section: cli
6
- icon: ListTree
7
- slug: cli-commands
8
- ---
9
-
10
- # Commands
11
-
12
- ## Server Commands
13
-
14
- | Command | Description |
15
- |---|---|
16
- | `weavetab` | Start the MCP server (stdio mode — default for MCP clients). When run in a TTY without arguments, launches the interactive UI menu. |
17
- | `weavetab --ws [--port N]` | Start the WebSocket daemon on `127.0.0.1` (default port `3000`). |
18
- | `weavetab --version` | Print version and exit. |
19
- | `weavetab config` | Launch the 6-phase interactive configuration wizard. |
20
- | `weavetab view` | Display the current active configuration report. Press **[R]** to view raw JSON, **[Q]** to quit. |
21
- | `weavetab reset` | Purge browser profiles, lockfiles, mutexes, session registries, and kill orphan browser processes. Accepts `--yes`/`-y` to skip confirmation prompts. |
22
- | `weavetab reload-ext` | Send a reload signal to the Weavetab browser extension via CDP `Runtime.evaluate`. |
23
- | `weavetab plugin <add\|browse\|search\|list\|remove\|verify>` | Manage plugins — see `weavetab plugin --help`. |
24
- | `weavetab skills [options]` | Install or update AI agent skills (passthrough to `@weavetab/skills`). |
25
- | `weavetab help` / `--help` | Show full CLI help message with all commands, flags, and environment variables. |
26
-
27
- ## Secrets Management
28
-
29
- Credentials are stored in `~/.weavetab/secrets.json` (global) or `.weavetab/secrets.json` (project-scoped). Values are never echoed to the terminal.
30
-
31
- | Command | Description |
32
- |---|---|
33
- | `weavetab secrets set <KEY>` | Store a new encrypted secret. Prompts for value (hidden input) and allowed domains (comma-separated). |
34
- | `weavetab secrets list` | List all stored secrets (key names only, values hidden). Shows domains and last-updated timestamps. |
35
- | `weavetab secrets rm <KEY>` | Remove a secret by key name. |
36
- | `weavetab secrets init --project` | Initialize a project-scoped `.weavetab/secrets.json` file. |
37
-
38
- ## Interactive TTY Menu
39
-
40
- When run without arguments in a TTY terminal, Weavetab opens an interactive keyboard-driven menu:
41
-
42
- | Key | Action |
43
- |---|---|
44
- | `[C]` | Launch the configuration wizard |
45
- | `[V]` | View current active configuration |
46
- | `[P]` | List installed Weavetab plugins |
47
- | `[R]` | Purge browser profiles and lockfiles |
48
- | `[H]` | Show help information |
49
- | `[G]` / `[N]` / `[W]` | Open GitHub / npm / website links |
50
- | `[Q]` | Exit Weavetab |
1
+ ---
2
+ title: "Commands"
3
+ description: "Reference for every top-level subcommand."
4
+ product: mcp
5
+ section: cli
6
+ icon: ListTree
7
+ slug: cli-commands
8
+ ---
9
+
10
+ # Commands
11
+
12
+ ## Server Commands
13
+
14
+ | Command | Description |
15
+ |---|---|
16
+ | `weavetab` | Start the MCP server (stdio mode — default for MCP clients). When run in a TTY without arguments, launches the interactive UI menu. |
17
+ | `weavetab --ws [--port N]` | Start the WebSocket daemon on `127.0.0.1` (default port `3000`). |
18
+ | `weavetab --version` | Print version and exit. |
19
+ | `weavetab config` | Launch the 6-phase interactive configuration wizard. |
20
+ | `weavetab view` | Display the current active configuration report. Press **[R]** to view raw JSON, **[Q]** to quit. |
21
+ | `weavetab reset` | Purge browser profiles, lockfiles, mutexes, session registries, and kill orphan browser processes. Accepts `--yes`/`-y` to skip confirmation prompts. |
22
+ | `weavetab reload-ext` | Send a reload signal to the Weavetab browser extension via CDP `Runtime.evaluate`. |
23
+ | `weavetab plugin <add\|browse\|search\|list\|remove\|verify>` | Manage plugins — see `weavetab plugin --help`. |
24
+ | `weavetab skills [options]` | Install or update AI agent skills (passthrough to `@weavetab/skills`). |
25
+ | `weavetab help` / `--help` | Show full CLI help message with all commands, flags, and environment variables. |
26
+
27
+ ## Secrets Management
28
+
29
+ Credentials are stored in `~/.weavetab/secrets.json` (global) or `.weavetab/secrets.json` (project-scoped). Values are never echoed to the terminal.
30
+
31
+ | Command | Description |
32
+ |---|---|
33
+ | `weavetab secrets set <KEY>` | Store a new encrypted secret. Prompts for value (hidden input) and allowed domains (comma-separated). |
34
+ | `weavetab secrets list` | List all stored secrets (key names only, values hidden). Shows domains and last-updated timestamps. |
35
+ | `weavetab secrets rm <KEY>` | Remove a secret by key name. |
36
+ | `weavetab secrets init --project` | Initialize a project-scoped `.weavetab/secrets.json` file. |
37
+
38
+ ## Interactive TTY Menu
39
+
40
+ When run without arguments in a TTY terminal, Weavetab opens an interactive keyboard-driven menu:
41
+
42
+ | Key | Action |
43
+ |---|---|
44
+ | `[C]` | Launch the configuration wizard |
45
+ | `[V]` | View current active configuration |
46
+ | `[P]` | List installed Weavetab plugins |
47
+ | `[R]` | Purge browser profiles and lockfiles |
48
+ | `[H]` | Show help information |
49
+ | `[G]` / `[N]` / `[W]` | Open GitHub / npm / website links |
50
+ | `[Q]` | Exit Weavetab |
@@ -1,28 +1,28 @@
1
- ---
2
- title: "Flags"
3
- description: "Global flags accepted by the CLI."
4
- product: mcp
5
- section: cli
6
- icon: Flag
7
- slug: cli-flags
8
- ---
9
-
10
- # Flags
11
-
12
- Only these flags are parsed by the CLI (`MCP/src/index.ts`). Anything else is ignored.
13
-
14
- | Flag | Type | Description |
15
- |---|---|---|
16
- | `--help` / `-h` | boolean | Show help message and exit |
17
- | `help` | command | Show help message and exit |
18
- | `--version` / `-v` | boolean | Print version and exit |
19
- | `--ws` | boolean | Start the WebSocket daemon instead of stdio |
20
- | `--port <port>` / `--port=<port>` | number | Port for the WebSocket daemon (default `3000`) |
21
- | `--yes` / `-y` | boolean | Skip confirmation prompt when running `weavetab reset` / `reload` |
22
- | `--official` / `-O` | boolean | Prefer the official `@weavetab/plugin-<name>` candidate (`plugin add`) |
23
- | `--community` / `-C` | boolean | Prefer the community package candidate (`plugin add`) |
24
- | `--refresh` | boolean | Invalidate and refresh the verified plugin cache (`plugin`) |
25
- | `--project` | boolean | Project-scoped secrets file (`secrets init --project`) |
26
-
27
- Notes:
28
- - There are no `--headless` / `--role` CLI flags. Browser headless mode and RBAC role come from `~/.weavetab/config.json` (`weavetab config` / `weavetab view`). The wizard offers `admin` / `operator` / `viewer` / `automation`.
1
+ ---
2
+ title: "Flags"
3
+ description: "Global flags accepted by the CLI."
4
+ product: mcp
5
+ section: cli
6
+ icon: Flag
7
+ slug: cli-flags
8
+ ---
9
+
10
+ # Flags
11
+
12
+ Only these flags are parsed by the CLI (`MCP/src/index.ts`). Anything else is ignored.
13
+
14
+ | Flag | Type | Description |
15
+ |---|---|---|
16
+ | `--help` / `-h` | boolean | Show help message and exit |
17
+ | `help` | command | Show help message and exit |
18
+ | `--version` / `-v` | boolean | Print version and exit |
19
+ | `--ws` | boolean | Start the WebSocket daemon instead of stdio |
20
+ | `--port <port>` / `--port=<port>` | number | Port for the WebSocket daemon (default `3000`) |
21
+ | `--yes` / `-y` | boolean | Skip confirmation prompt when running `weavetab reset` / `reload` |
22
+ | `--official` / `-O` | boolean | Prefer the official `@weavetab/plugin-<name>` candidate (`plugin add`) |
23
+ | `--community` / `-C` | boolean | Prefer the community package candidate (`plugin add`) |
24
+ | `--refresh` | boolean | Invalidate and refresh the verified plugin cache (`plugin`) |
25
+ | `--project` | boolean | Project-scoped secrets file (`secrets init --project`) |
26
+
27
+ Notes:
28
+ - There are no `--headless` / `--role` CLI flags. Browser headless mode and RBAC role come from `~/.weavetab/config.json` (`weavetab config` / `weavetab view`). The wizard offers `admin` / `operator` / `viewer` / `automation`.
@@ -1,35 +1,35 @@
1
- ---
2
- title: "Scripting & CI/CD"
3
- description: "Chain CLI calls in shell scripts and CI."
4
- product: mcp
5
- section: cli
6
- icon: FileCode
7
- slug: cli-scripting
8
- ---
9
-
10
- # Scripting & CI/CD
11
-
12
- ## Shell Scripting
13
-
14
- ```bash
15
- # Reset before a fresh test run
16
- weavetab reset --yes
17
-
18
- # List stored secrets
19
- weavetab secrets list
20
-
21
- # List installed plugins
22
- weavetab plugin list
23
-
24
- # Start the MCP server in WebSocket daemon mode for custom scripts
25
- weavetab --ws --port 3000 &
26
- ```
27
-
28
- ## CI/CD Pipeline
29
-
30
- ```bash
31
- # In GitHub Actions or Docker CI
32
- npm install -g @weavetab/mcp
33
- weavetab reset --yes
34
- weavetab --ws --port 3000 &
35
- ```
1
+ ---
2
+ title: "Scripting & CI/CD"
3
+ description: "Chain CLI calls in shell scripts and CI."
4
+ product: mcp
5
+ section: cli
6
+ icon: FileCode
7
+ slug: cli-scripting
8
+ ---
9
+
10
+ # Scripting & CI/CD
11
+
12
+ ## Shell Scripting
13
+
14
+ ```bash
15
+ # Reset before a fresh test run
16
+ weavetab reset --yes
17
+
18
+ # List stored secrets
19
+ weavetab secrets list
20
+
21
+ # List installed plugins
22
+ weavetab plugin list
23
+
24
+ # Start the MCP server in WebSocket daemon mode for custom scripts
25
+ weavetab --ws --port 3000 &
26
+ ```
27
+
28
+ ## CI/CD Pipeline
29
+
30
+ ```bash
31
+ # In GitHub Actions or Docker CI
32
+ npm install -g @weavetab/mcp
33
+ weavetab reset --yes
34
+ weavetab --ws --port 3000 &
35
+ ```
@@ -1,23 +1,23 @@
1
- ---
2
- title: "Locations & Merge"
3
- description: "Two-tier merge: global config → built-in defaults."
4
- product: mcp
5
- section: configuration
6
- icon: FolderTree
7
- slug: config-locations
8
- ---
9
-
10
- # Config Locations & Merge Priority
11
-
12
- ## Priority Tiers
13
-
14
- 1. **Global** — `~/.weavetab/config.json` (the only config file Weavetab reads)
15
- 2. **Built-in defaults** — defined in `DEFAULT_CONFIG`
16
-
17
- ## Live Reload
18
-
19
- A debounced file watcher (150 ms) reloads the in-memory configuration on change. In-flight tool executions complete on the existing configuration; subsequent calls automatically pick up the new values.
20
-
21
- ## Corrupt File Quarantine
22
-
23
- If a configuration file contains invalid JSON, Weavetab automatically quarantines the file to `config.broken.<timestamp>.json` and safely falls back to the next tier without crashing.
1
+ ---
2
+ title: "Locations & Merge"
3
+ description: "Two-tier merge: global config → built-in defaults."
4
+ product: mcp
5
+ section: configuration
6
+ icon: FolderTree
7
+ slug: config-locations
8
+ ---
9
+
10
+ # Config Locations & Merge Priority
11
+
12
+ ## Priority Tiers
13
+
14
+ 1. **Global** — `~/.weavetab/config.json` (the only config file Weavetab reads)
15
+ 2. **Built-in defaults** — defined in `DEFAULT_CONFIG`
16
+
17
+ ## Live Reload
18
+
19
+ A debounced file watcher (150 ms) reloads the in-memory configuration on change. In-flight tool executions complete on the existing configuration; subsequent calls automatically pick up the new values.
20
+
21
+ ## Corrupt File Quarantine
22
+
23
+ If a configuration file contains invalid JSON, Weavetab automatically quarantines the file to `config.broken.<timestamp>.json` and safely falls back to the next tier without crashing.
@@ -12,9 +12,15 @@ slug: configuration
12
12
  The full `Config` interface lives in `src/config/loader.ts`.
13
13
 
14
14
  ```typescript
15
- export type PolicyMode = "allow" | "deny" | "audit-only" | "read-only";
16
- export type Role = "admin" | "operator" | "viewer" | "automation";
17
- export type BrowserEngine = "chromium" | "firefox" | "webkit";
15
+ export type DevModeConfig = boolean;
16
+ export type PolicyMode = "allow" | "deny" | "audit-only" | "read-only";
17
+ export type Role = "admin" | "operator" | "viewer" | "automation" | "system";
18
+ export type BrowserEngine = "chromium" | "firefox" | "webkit";
19
+
20
+ export interface PolicyEntry {
21
+ pattern: string;
22
+ mode: PolicyMode;
23
+ }
18
24
 
19
25
  export interface ElectronAppConfig {
20
26
  path?: string; // Absolute path to Electron app executable
@@ -25,49 +31,55 @@ export interface ElectronAppConfig {
25
31
  }
26
32
 
27
33
  export interface Config {
28
- // Mode & Port
34
+ // Identity & Transport
29
35
  mode: "session" | "attach";
30
36
  session: string;
31
- attachPort: number;
37
+ attachPort: number; // 0-65535, 0 = dynamic
38
+ agentId: string; // Auto-generated UUID (WT_AGENT_ID to override)
39
+ telemetry: boolean;
32
40
 
33
41
  // Browser Settings
34
- browser: string; // Executable path or "auto"
42
+ browserPath: string; // Executable path or "auto"
35
43
  browserType: BrowserEngine;
36
- profileDir: string;
37
44
  headless: boolean;
38
45
  extension: boolean; // Enable Weavetab Chrome extension
39
46
  browserFlags: string[];
47
+ profileDir: string;
48
+ cookies: boolean;
49
+ syncDataAcrossBrowsers: boolean;
40
50
 
41
51
  // Desktop & Electron Applications
42
- electron?: Record<string, string | number | ElectronAppConfig>;
52
+ apps?: Record<string, ElectronAppConfig>;
53
+ electron?: Record<string, ElectronAppConfig>;
43
54
 
44
55
  // Security & Policy
45
- block: string[]; // Domain blocklist
56
+ role: Role; // RBAC role
57
+ block: string[]; // Domain blocklist (default: ["*.bank.*", "paypal.com"])
46
58
  allow: string[]; // Domain allowlist
47
59
  policies: PolicyEntry[]; // Per-domain policy modes
48
- role: Role; // RBAC role
49
- cookies: boolean; // Allow storage & cookies
50
- proxy?: string; // Outbound proxy URL
60
+ proxy?: string; // Outbound proxy URL (WT_PROXY_URL to override)
51
61
 
52
62
  // Rate Limiting & Resource Caps
53
- maxActionsPerMinute: number; // 1-600 (default 60)
63
+ sessionTimeout: number; // Seconds, 60-86400 (default 3600)
64
+ navigationTimeout: number; // Milliseconds, 1000-120000 (default 30000)
65
+ idleTimeout: number; // Milliseconds, >= 5000 (default 60000)
66
+ actionabilityTimeoutMs: number; // Milliseconds, 50-15000 (default 300)
54
67
  maxTabs: number; // 1-100 (default 10)
68
+ maxActionsPerMinute: number; // 1-600 (default 60)
69
+ githubCacheTtlMs: number; // Milliseconds (default 1800000)
70
+ refCacheTtlMs: number; // Milliseconds (default 30000)
55
71
 
56
- // Timing & Thresholds
57
- sessionTimeout: number; // Seconds (default 3600)
58
- navigationTimeout: number; // Milliseconds (default 30000)
59
- idleTimeout: number; // Milliseconds (default 15000)
60
- actionabilityTimeoutMs: number; // Milliseconds (default 500)
72
+ // Output Directories
73
+ downloadDir: string;
74
+ pdfDir: string;
75
+ snapshotDir: string;
76
+ recordingDir: string;
77
+ designDir: string;
61
78
 
62
79
  // UI & Overlay
63
- devMode: boolean | DevModeConfig;
64
- persona: "concise" | "friendly";
65
-
66
- // Telemetry & GitHub
67
- telemetry: boolean;
68
- githubCacheTtlMs: number;
69
-
70
- // Agent Identity
71
- agentId: string; // Auto-generated UUID
80
+ devMode: DevModeConfig;
72
81
  }
73
82
  ```
83
+
84
+ The on-disk `config.json` may also use the legacy sectioned shape (`general`, `browser`,
85
+ `security`, `performance`); the loader migrates it to this flat interface automatically.
@@ -1,19 +1,19 @@
1
- ---
2
- title: "Environment Variables"
3
- description: "Runtime environment variables that override config."
4
- product: mcp
5
- section: configuration
6
- icon: Variable
7
- slug: env-variables
8
- ---
9
-
10
- # Environment Variables
11
-
12
- Only these two are read at runtime (`MCP/src/config/loader.ts`). Everything else
13
- (browser path, role, headless, dev mode) lives in `~/.weavetab/config.json`
14
- — run `weavetab config` to change it.
15
-
16
- | Variable | Description |
17
- |---|---|
18
- | `WT_AGENT_ID` | Override the auto-generated agent UUID |
19
- | `WT_PROXY_URL` | Set outbound HTTP/SOCKS proxy server URL |
1
+ ---
2
+ title: "Environment Variables"
3
+ description: "Runtime environment variables that override config."
4
+ product: mcp
5
+ section: configuration
6
+ icon: Variable
7
+ slug: env-variables
8
+ ---
9
+
10
+ # Environment Variables
11
+
12
+ Only these two are read at runtime (`MCP/src/config/loader.ts`). Everything else
13
+ (browser path, role, headless, dev mode) lives in `~/.weavetab/config.json`
14
+ — run `weavetab config` to change it.
15
+
16
+ | Variable | Description |
17
+ |---|---|
18
+ | `WT_AGENT_ID` | Override the auto-generated agent UUID |
19
+ | `WT_PROXY_URL` | Set outbound HTTP/SOCKS proxy server URL |
@@ -1,55 +1,62 @@
1
- ---
2
- title: "Folder Hierarchy"
3
- description: ".weavetab, .weavetab-system, and ~/.weavetab directory structure."
4
- product: mcp
5
- section: configuration
6
- icon: FolderOpen
7
- slug: folders
8
- ---
9
-
10
- # Workspace & System Directories
11
-
12
- Weavetab strictly partitions project-scoped output, global configurations, and system-level intelligence data into dedicated directory structures.
13
-
14
- ## 1. Project-Scoped Directory: `./.weavetab/`
15
-
16
- Created in your current working directory to store project-scoped settings and mission output:
17
-
18
- ```
19
- ./.weavetab/
20
- ├── config.json # Project-specific config overrides
21
- ├── secrets.json # Project-scoped credentials for Blind Injection
22
- ├── pdfs/ # Exported PDF documents
23
- ├── screenshots/ # Full-page and clipped PNG/JPEG screenshots
24
- ├── downloads/ # Downloaded files during automated sessions
25
- ├── designs/ # Extracted design tokens and Tailwind themes
26
- └── logs/ # Human-readable logs and JSONL audit trails
27
- ```
28
-
29
- ## 2. System Intelligence Directory: `~/.weavetab-system/`
30
-
31
- Global system directory holding cross-session learning and process locks:
32
-
33
- ```
34
- ~/.weavetab-system/
35
- ├── memory/ # Per-domain frontend framework & strategy profiles (selector cache)
36
- │ └── sites/ # Persistent site profiles: workflows, quirks & reliability scores
37
- ├── sessions/
38
- │ └── context.json # Rolling 50-action trail for loop detection
39
- ├── apps/ # Dedicated user profiles for Electron apps
40
- ├── locks/ # Process lockfiles (PID + TCP port validation)
41
- └── knowledge/ # Domain-specific markdown knowledge hints
42
- ```
43
-
44
- ## 3. Global User Directory: `~/.weavetab/`
45
-
46
- Global user directory storing default configurations and global secrets:
47
-
48
- ```
49
- ~/.weavetab/
50
- ├── config.json # Global default configuration
51
- ├── secrets.json # Global secrets for Blind Injection
52
- ├── policy.json # Domain whitelist / blacklist rules
53
- ├── plugins/ # Isolated storage directories for installed plugins
54
- └── profile/ # Dedicated default Chromium browser profile
55
- ```
1
+ ---
2
+ title: "Folder Hierarchy"
3
+ description: ".weavetab and .weavetab-system directory structure."
4
+ product: mcp
5
+ section: configuration
6
+ icon: FolderOpen
7
+ slug: folders
8
+ ---
9
+
10
+ # Workspace & System Directories
11
+
12
+ Weavetab strictly partitions project-scoped credentials, global user configuration, and machine-managed system intelligence into dedicated directory structures.
13
+
14
+ ## 1. Project-Scoped Directory: `./.weavetab/`
15
+
16
+ Optional, created in your current working directory to carry project-scoped credentials alongside a checkout:
17
+
18
+ ```
19
+ ./.weavetab/
20
+ └── secrets.json # Project-scoped credentials for Blind Injection (override the global file)
21
+ ```
22
+
23
+ Keys in a project `secrets.json` take precedence over `~/.weavetab/secrets.json` when Weavetab runs from that directory. All other configuration and output paths are global (see below) unless overridden via config fields.
24
+
25
+ ## 2. Global User Directory: `~/.weavetab/`
26
+
27
+ Global, user-authored configuration and default output directories:
28
+
29
+ ```
30
+ ~/.weavetab/
31
+ ├── config.json # Global configuration (domain policies, roles, output paths)
32
+ ├── secrets.json # Global secrets for Blind Injection
33
+ ├── knowledge/ # Domain-specific markdown knowledge hints
34
+ ├── plugins/ # Isolated storage directories for installed plugins
35
+ ├── downloads/ # Downloaded files (default output dir)
36
+ ├── pdfs/ # Exported PDF documents
37
+ ├── snapshots/ # Screenshots and MHTML snapshots
38
+ ├── recordings/ # Screen recordings (webp / gif / webm / mp4)
39
+ └── designs/ # Extracted design tokens and Tailwind themes
40
+ ```
41
+
42
+ Each output directory (`downloads`, `pdfs`, `snapshots`, `recordings`, `designs`) is overridable via its matching config path field.
43
+
44
+ ## 3. System Intelligence Directory: `~/.weavetab-system/`
45
+
46
+ Machine-managed, cross-session state. Strictly separate from user configuration:
47
+
48
+ ```
49
+ ~/.weavetab-system/
50
+ ├── memory/ # Per-domain selector confidence cache
51
+ │ └── sites/ # Persistent site profiles: workflows, quirks & reliability scores
52
+ ├── sessions/
53
+ │ └── context.json # Rolling action trail for loop detection
54
+ ├── checkpoints/ # Named browser-state checkpoints
55
+ ├── missions/ # Mission state files
56
+ ├── apps/ # Dedicated isolated profiles for Electron apps
57
+ ├── extension/ # Installed browser extension build
58
+ ├── logs/ # Mission logs: mission_<timestamp>.log / .jsonl (devMode only)
59
+ ├── locks/ # Process lockfiles (PID + TCP port validation)
60
+ ├── secrets-key # Local key used to encrypt stored secrets
61
+ └── session-profile*/ # Isolated Chromium browser profiles (never your real profile)
62
+ ```