@weavetab/skills 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 (62) hide show
  1. package/README.md +108 -108
  2. package/ROUTER.md +43 -43
  3. package/bin/cli.js +232 -232
  4. package/browser/dom-strategy.md +121 -119
  5. package/browser/form-automation.md +84 -87
  6. package/browser/interaction-pipeline.md +242 -216
  7. package/browser/tab-and-window.md +136 -136
  8. package/desktop/desktop-targeting.md +85 -85
  9. package/desktop/electron-discovery.md +115 -115
  10. package/developer/github-forensics.md +89 -74
  11. package/dist/bundled/weavetab-all.md +1885 -1709
  12. package/dist/bundled/weavetab-browser.md +526 -501
  13. package/dist/bundled/weavetab-desktop.md +176 -176
  14. package/dist/bundled/weavetab-developer.md +84 -67
  15. package/dist/bundled/weavetab-documents.md +184 -142
  16. package/dist/bundled/weavetab-memory.md +259 -233
  17. package/dist/bundled/weavetab-network-and-perf.md +250 -223
  18. package/dist/bundled/weavetab-plugins.md +88 -83
  19. package/dist/bundled/weavetab-resilience.md +244 -216
  20. package/dist/bundled/weavetab-security.md +93 -87
  21. package/dist/granular/browser_dom-strategy.md +121 -119
  22. package/dist/granular/browser_form-automation.md +84 -87
  23. package/dist/granular/browser_interaction-pipeline.md +242 -216
  24. package/dist/granular/browser_tab-and-window.md +136 -136
  25. package/dist/granular/desktop_desktop-targeting.md +85 -85
  26. package/dist/granular/desktop_electron-discovery.md +115 -115
  27. package/dist/granular/developer_github-forensics.md +89 -74
  28. package/dist/granular/documents_canvas-and-visual-capture.md +117 -103
  29. package/dist/granular/documents_office-document-ingestion.md +91 -63
  30. package/dist/granular/memory_selector-memory-system.md +127 -127
  31. package/dist/granular/memory_session-trail.md +111 -95
  32. package/dist/granular/memory_site-learning.md +62 -53
  33. package/dist/granular/network-and-perf_device-and-environment.md +100 -87
  34. package/dist/granular/network-and-perf_network-intercept-and-mock.md +97 -84
  35. package/dist/granular/network-and-perf_performance-and-vitals.md +86 -84
  36. package/dist/granular/plugins_hooks-and-overrides.md +40 -35
  37. package/dist/granular/plugins_plugin-runtime.md +63 -63
  38. package/dist/granular/resilience_loop-breaker.md +72 -67
  39. package/dist/granular/resilience_session-time-travel.md +146 -131
  40. package/dist/granular/resilience_stale-ref-recovery.md +61 -53
  41. package/dist/granular/security_rbac-and-policies.md +50 -47
  42. package/dist/granular/security_secret-containment-protocol.md +62 -59
  43. package/documents/canvas-and-visual-capture.md +117 -103
  44. package/documents/office-document-ingestion.md +91 -63
  45. package/evals/evaluator.js +146 -146
  46. package/evals/scenarios.json +239 -239
  47. package/memory/selector-memory-system.md +127 -127
  48. package/memory/session-trail.md +111 -95
  49. package/memory/site-learning.md +61 -52
  50. package/network-and-perf/device-and-environment.md +100 -87
  51. package/network-and-perf/network-intercept-and-mock.md +97 -84
  52. package/network-and-perf/performance-and-vitals.md +86 -84
  53. package/package.json +74 -73
  54. package/plugins/hooks-and-overrides.md +40 -35
  55. package/plugins/plugin-runtime.md +63 -63
  56. package/resilience/loop-breaker.md +72 -67
  57. package/resilience/session-time-travel.md +146 -131
  58. package/resilience/stale-ref-recovery.md +61 -53
  59. package/security/rbac-and-policies.md +50 -47
  60. package/security/secret-containment-protocol.md +62 -59
  61. package/skills.json +425 -426
  62. package/src/api.js +239 -239
@@ -1,136 +1,136 @@
1
- ---
2
- id: tab-and-window
3
- domain: browser
4
- triggers:
5
- - "switch tab"
6
- - "open tab"
7
- - "close tab"
8
- - "list tabs"
9
- - "tab crash recovery"
10
- - "heal tabs"
11
- - "desktop app tabs"
12
- tools:
13
- - "browser_tabs"
14
- weavetab: ">=2.5.0-beta.5"
15
- ---
16
-
17
- # Tab & Window Lifecycle Management
18
-
19
- Multi-tab workflows (OAuth popups, payment gateways, documentation references, desktop application windows) require deterministic tab switching, window focusing, and failure recovery. `browser_tabs` controls all CDP page and window targets.
20
-
21
- ---
22
-
23
- ## 1. Tab Discovery & Target Enumeration
24
-
25
- Inspect all active targets, open URLs, and page titles:
26
-
27
- ```json
28
- {
29
- "action": "list"
30
- }
31
- ```
32
-
33
- To list targets inside a specific desktop app (e.g. Discord, Slack):
34
- ```json
35
- {
36
- "action": "list",
37
- "app": "discord"
38
- }
39
- ```
40
-
41
- > [!TIP]
42
- > Always pass `"app": "<name>"` when inspecting desktop applications. This guarantees that Weavetab does not launch or query the web browser.
43
-
44
- ---
45
-
46
- ## 2. Opening Tabs & Smart Reuse
47
-
48
- Open a target URL. By default, `reuse: true` will focus an existing tab if the URL is already loaded:
49
-
50
- ```json
51
- {
52
- "action": "open",
53
- "url": "https://github.com"
54
- }
55
- ```
56
-
57
- To force opening a brand-new duplicate tab instead of reusing:
58
- ```json
59
- {
60
- "action": "open",
61
- "url": "https://github.com",
62
- "reuse": false
63
- }
64
- ```
65
-
66
- ---
67
-
68
- ## 3. Context Switching
69
-
70
- Switch active agent focus between open tabs:
71
-
72
- ```json
73
- {
74
- "action": "switch",
75
- "tabId": "TARGET_PAGE_ID"
76
- }
77
- ```
78
-
79
- ---
80
-
81
- ## 4. Closing Tabs & Batch Cleanup
82
-
83
- Close a single tab:
84
- ```json
85
- {
86
- "action": "close",
87
- "tabId": "TARGET_PAGE_ID"
88
- }
89
- ```
90
-
91
- Close multiple tabs simultaneously in a single round-trip:
92
- ```json
93
- {
94
- "action": "close",
95
- "tabIds": ["TARGET_1", "TARGET_2", "TARGET_3"]
96
- }
97
- ```
98
-
99
- ---
100
-
101
- ## 5. Native Window Management
102
-
103
- List native OS windows:
104
- ```json
105
- {
106
- "action": "list_windows"
107
- }
108
- ```
109
-
110
- Bring a specific native window to the foreground:
111
- ```json
112
- {
113
- "action": "focus_window",
114
- "windowId": 1
115
- }
116
- ```
117
-
118
- ---
119
-
120
- ## 6. Duplicate Consolidation & Auto-Heal
121
-
122
- Deduplicate redundant tabs across the session:
123
- ```json
124
- {
125
- "action": "consolidate"
126
- }
127
- ```
128
-
129
- If a target page crashes or detaches due to memory limits:
130
- ```json
131
- {
132
- "action": "heal"
133
- }
134
- ```
135
-
136
- The auto-heal routine re-establishes CDP protocol sessions, reconnects event listeners, and synchronizes the active page target.
1
+ ---
2
+ id: tab-and-window
3
+ domain: browser
4
+ triggers:
5
+ - "switch tab"
6
+ - "open tab"
7
+ - "close tab"
8
+ - "list tabs"
9
+ - "tab crash recovery"
10
+ - "heal tabs"
11
+ - "desktop app tabs"
12
+ tools:
13
+ - "browser_tabs"
14
+ weavetab: ">=2.5.0"
15
+ ---
16
+
17
+ # Tab & Window Lifecycle Management
18
+
19
+ Multi-tab workflows (OAuth popups, payment gateways, documentation references, desktop application windows) require deterministic tab switching, window focusing, and failure recovery. `browser_tabs` controls all CDP page and window targets.
20
+
21
+ ---
22
+
23
+ ## 1. Tab Discovery & Target Enumeration
24
+
25
+ Inspect all active targets, open URLs, and page titles:
26
+
27
+ ```json
28
+ {
29
+ "action": "list"
30
+ }
31
+ ```
32
+
33
+ To list targets inside a specific desktop app (e.g. Discord, Slack):
34
+ ```json
35
+ {
36
+ "action": "list",
37
+ "app": "discord"
38
+ }
39
+ ```
40
+
41
+ > [!TIP]
42
+ > Always pass `"app": "<name>"` when inspecting desktop applications. This guarantees that Weavetab does not launch or query the web browser.
43
+
44
+ ---
45
+
46
+ ## 2. Opening Tabs & Smart Reuse
47
+
48
+ Open a target URL. By default, `reuse: true` will focus an existing tab if the URL is already loaded:
49
+
50
+ ```json
51
+ {
52
+ "action": "open",
53
+ "url": "https://github.com"
54
+ }
55
+ ```
56
+
57
+ To force opening a brand-new duplicate tab instead of reusing:
58
+ ```json
59
+ {
60
+ "action": "open",
61
+ "url": "https://github.com",
62
+ "reuse": false
63
+ }
64
+ ```
65
+
66
+ ---
67
+
68
+ ## 3. Context Switching
69
+
70
+ Switch active agent focus between open tabs:
71
+
72
+ ```json
73
+ {
74
+ "action": "switch",
75
+ "tabId": "TARGET_PAGE_ID"
76
+ }
77
+ ```
78
+
79
+ ---
80
+
81
+ ## 4. Closing Tabs & Batch Cleanup
82
+
83
+ Close a single tab:
84
+ ```json
85
+ {
86
+ "action": "close",
87
+ "tabId": "TARGET_PAGE_ID"
88
+ }
89
+ ```
90
+
91
+ Close multiple tabs simultaneously in a single round-trip:
92
+ ```json
93
+ {
94
+ "action": "close",
95
+ "tabIds": ["TARGET_1", "TARGET_2", "TARGET_3"]
96
+ }
97
+ ```
98
+
99
+ ---
100
+
101
+ ## 5. Native Window Management
102
+
103
+ List native OS windows:
104
+ ```json
105
+ {
106
+ "action": "list_windows"
107
+ }
108
+ ```
109
+
110
+ Bring a specific native window to the foreground:
111
+ ```json
112
+ {
113
+ "action": "focus_window",
114
+ "windowId": 1
115
+ }
116
+ ```
117
+
118
+ ---
119
+
120
+ ## 6. Duplicate Consolidation & Auto-Heal
121
+
122
+ Deduplicate redundant tabs across the session:
123
+ ```json
124
+ {
125
+ "action": "consolidate"
126
+ }
127
+ ```
128
+
129
+ If a target page crashes or detaches due to memory limits:
130
+ ```json
131
+ {
132
+ "action": "heal"
133
+ }
134
+ ```
135
+
136
+ The auto-heal routine re-establishes CDP protocol sessions, reconnects event listeners, and synchronizes the active page target.
@@ -1,85 +1,85 @@
1
- ---
2
- id: desktop-targeting
3
- domain: desktop
4
- triggers:
5
- - "automate desktop app"
6
- - "send message in slack"
7
- - "edit in vscode"
8
- - "switch to discord"
9
- - "desktop app routing"
10
- tools:
11
- - "browser_map"
12
- - "browser_click"
13
- - "browser_type"
14
- - "browser_fill"
15
- - "browser_detect"
16
- - "browser_tabs"
17
- - "browser_navigate"
18
- weavetab: ">=2.5.0-beta.5"
19
- ---
20
-
21
- # Desktop App Targeting & Multi-Window Routing
22
-
23
- Once a desktop application is detected via `browser_detect`, every standard Weavetab tool can be scoped directly to that desktop application without opening or disturbing the user's web browser.
24
-
25
- ---
26
-
27
- ## 1. Direct App Parameter Routing
28
-
29
- Pass `"app": "<application_name>"` to target the Electron application.
30
-
31
- ### Example: Reading Discord Channels
32
- ```json
33
- // Tool: browser_map
34
- {
35
- "app": "discord",
36
- "scope": "main_content"
37
- }
38
- ```
39
-
40
- ### Example: Sending a Message in Discord
41
- ```json
42
- // Tool: browser_type
43
- {
44
- "app": "discord",
45
- "ref": "w:88",
46
- "text": "Deployment v2.5.0-beta.3 completed successfully."
47
- }
48
- ```
49
-
50
- ### Example: Listing Discord Tabs/Windows
51
- ```json
52
- // Tool: browser_tabs
53
- {
54
- "action": "list",
55
- "app": "discord"
56
- }
57
- ```
58
-
59
- > [!IMPORTANT]
60
- > Always pass `"app": "discord"` (or the target app name) to `browser_tabs` when working with desktop apps. This prevents Weavetab from accidentally launching or switching to the web browser.
61
-
62
- ---
63
-
64
- ## 2. Smart Domain Auto-Routing & Sticky Context
65
-
66
- Weavetab features automatic target resolution to eliminate accidental browser popups:
67
-
68
- ### A. Automatic Domain Matching
69
- If you call `browser_navigate` or `browser_tabs(action: "open")` with a known domain (e.g. `discord.com`, `slack.com`, `linear.app`, `notion.so`), Weavetab automatically routes the command to the configured Electron desktop application.
70
-
71
- ### B. Sticky App Sessions
72
- When you interact with an Electron application (e.g., clicking or typing in Discord), Weavetab remembers the active application context. If a subsequent tool call omits `app` and no web browser instance is active, Weavetab stays attached to the active desktop app rather than spawning an unwanted Chrome window.
73
-
74
- ### C. Explicit Browser Override
75
- If you specifically want to open a URL in the web browser instead of a desktop application, pass `"app": "browser"`.
76
-
77
- ---
78
-
79
- ## 3. Multi-Window Focus Management
80
-
81
- Some Electron apps open secondary windows (e.g. popout editors, settings panels, or call windows).
82
-
83
- 1. Use `browser_tabs(action: "list", app: "discord")` to view all open windows and page targets for that specific app.
84
- 2. Switch focus between windows using `browser_tabs(action: "switch", tabId: "<id>", app: "discord")`.
85
- 3. To bring a specific native window to the foreground, use `browser_tabs(action: "focus_window", windowId: <id>, app: "discord")`.
1
+ ---
2
+ id: desktop-targeting
3
+ domain: desktop
4
+ triggers:
5
+ - "automate desktop app"
6
+ - "send message in slack"
7
+ - "edit in vscode"
8
+ - "switch to discord"
9
+ - "desktop app routing"
10
+ tools:
11
+ - "browser_map"
12
+ - "browser_click"
13
+ - "browser_type"
14
+ - "browser_fill"
15
+ - "browser_detect"
16
+ - "browser_tabs"
17
+ - "browser_navigate"
18
+ weavetab: ">=2.5.0"
19
+ ---
20
+
21
+ # Desktop App Targeting & Multi-Window Routing
22
+
23
+ Once a desktop application is detected via `browser_detect`, every standard Weavetab tool can be scoped directly to that desktop application without opening or disturbing the user's web browser.
24
+
25
+ ---
26
+
27
+ ## 1. Direct App Parameter Routing
28
+
29
+ Pass `"app": "<application_name>"` to target the Electron application.
30
+
31
+ ### Example: Reading Discord Channels
32
+ ```json
33
+ // Tool: browser_map
34
+ {
35
+ "app": "discord",
36
+ "scope": "main_content"
37
+ }
38
+ ```
39
+
40
+ ### Example: Sending a Message in Discord
41
+ ```json
42
+ // Tool: browser_type
43
+ {
44
+ "app": "discord",
45
+ "ref": "w:88",
46
+ "text": "Deployment v2.5.1 completed successfully."
47
+ }
48
+ ```
49
+
50
+ ### Example: Listing Discord Tabs/Windows
51
+ ```json
52
+ // Tool: browser_tabs
53
+ {
54
+ "action": "list",
55
+ "app": "discord"
56
+ }
57
+ ```
58
+
59
+ > [!IMPORTANT]
60
+ > Always pass `"app": "discord"` (or the target app name) to `browser_tabs` when working with desktop apps. This prevents Weavetab from accidentally launching or switching to the web browser.
61
+
62
+ ---
63
+
64
+ ## 2. Smart Domain Auto-Routing & Sticky Context
65
+
66
+ Weavetab features automatic target resolution to eliminate accidental browser popups:
67
+
68
+ ### A. Automatic Domain Matching
69
+ If you call `browser_navigate` or `browser_tabs(action: "open")` with a known domain (e.g. `discord.com`, `slack.com`, `linear.app`, `notion.so`), Weavetab automatically routes the command to the configured Electron desktop application.
70
+
71
+ ### B. Sticky App Sessions
72
+ When you interact with an Electron application (e.g., clicking or typing in Discord), Weavetab remembers the active application context. If a subsequent tool call omits `app` and no web browser instance is active, Weavetab stays attached to the active desktop app rather than spawning an unwanted Chrome window.
73
+
74
+ ### C. Explicit Browser Override
75
+ If you specifically want to open a URL in the web browser instead of a desktop application, pass `"app": "browser"`.
76
+
77
+ ---
78
+
79
+ ## 3. Multi-Window Focus Management
80
+
81
+ Some Electron apps open secondary windows (e.g. popout editors, settings panels, or call windows).
82
+
83
+ 1. Use `browser_tabs(action: "list", app: "discord")` to view all open windows and page targets for that specific app.
84
+ 2. Switch focus between windows using `browser_tabs(action: "switch", tabId: "<id>", app: "discord")`.
85
+ 3. To bring a specific native window to the foreground, use `browser_tabs(action: "focus_window", windowId: <id>, app: "discord")`.
@@ -1,115 +1,115 @@
1
- ---
2
- id: electron-discovery
3
- domain: desktop
4
- triggers:
5
- - "discover electron apps"
6
- - "detect desktop apps"
7
- - "connect to slack"
8
- - "connect to discord"
9
- - "connect to vscode"
10
- - "electron automation"
11
- tools:
12
- - "browser_detect"
13
- weavetab: ">=2.5.0-beta.5"
14
- ---
15
-
16
- # Electron Discovery & Environment Handshake
17
-
18
- Modern desktop applications (Discord, Slack, VS Code, Notion, Obsidian, Figma) are built on Chromium and Electron. Weavetab can inspect and drive these native applications through standard CDP interfaces without third-party drivers or OS-level accessibility hacks.
19
-
20
- `browser_detect` is the **critical initialization handshake** tool. Every agent should call `browser_detect` before interacting with the user's desktop environment to gain immediate situational awareness.
21
-
22
- ---
23
-
24
- ## 1. Running Discovery via `browser_detect`
25
-
26
- Call `browser_detect` with empty parameters `{}`:
27
-
28
- ```json
29
- {}
30
- ```
31
-
32
- ### Response Schema:
33
- ```json
34
- {
35
- "available": [
36
- {
37
- "engine": "chromium",
38
- "name": "Google Chrome",
39
- "path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
40
- }
41
- ],
42
- "current": "chromium",
43
- "configuredApps": [
44
- {
45
- "name": "discord",
46
- "status": "running_no_debug",
47
- "configuredPath": "C:\\Users\\username\\AppData\\Local\\Discord\\app-1.0.9256\\Discord.exe"
48
- },
49
- {
50
- "name": "slack",
51
- "status": "connected",
52
- "port": 9222,
53
- "configuredPath": "C:\\Users\\username\\AppData\\Local\\slack\\app-4.38.125\\slack.exe",
54
- "activeTabs": [
55
- {
56
- "id": "PAGE_1",
57
- "title": "general - Weavetab Slack",
58
- "url": "https://app.slack.com/client/..."
59
- }
60
- ]
61
- },
62
- {
63
- "name": "vscode",
64
- "status": "offline",
65
- "configuredPath": "C:\\Users\\username\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"
66
- }
67
- ],
68
- "toolCoverage": {
69
- "chromium": 100,
70
- "firefox": 78,
71
- "webkit": 55
72
- }
73
- }
74
- ```
75
-
76
- ---
77
-
78
- ## 2. Understanding Application Status
79
-
80
- Each configured desktop app reports one of three distinct lifecycle statuses:
81
-
82
- | Status | Meaning | Agent Action |
83
- | :--- | :--- | :--- |
84
- | **`connected`** | App is running with CDP remote debugging active. Weavetab has an active session. | Immediately interact using any tool with `"app": "<name>"`. Tabs and port are available. |
85
- | **`running_no_debug`** | The app process is currently open on the user's OS, but was launched normally by the user without `--remote-debugging-port`. | Do NOT send click/type commands. To attach, inform the user or close and launch via `browser_navigate(app: "<name>")` so Weavetab supplies the debugging port. |
86
- | **`offline`** | The application is not currently running on the OS. | Launch and attach in one step by calling `browser_navigate(app: "<name>")`. |
87
-
88
- ---
89
-
90
- ## 3. Dynamic Squirrel Updates on Windows
91
-
92
- On Windows, Squirrel-managed applications (Discord, Slack, Teams) update dynamically into versioned sibling directories (e.g. `Discord\app-1.0.9256\Discord.exe`).
93
-
94
- Weavetab automatically handles this:
95
- - If a configured path points to an outdated version or the parent folder, Weavetab scans the directory, resolves the highest semantic version folder (`app-1.0.xxxx`), and launches the valid executable.
96
- - The dynamically resolved path is reported in `browser_detect` under `configuredPath`.
97
-
98
- ---
99
-
100
- ## 4. Launching Desktop Apps Manually with Debugging
101
-
102
- If the user prefers to launch apps manually from a terminal or shortcut with remote debugging enabled:
103
-
104
- ```bash
105
- # Discord
106
- Discord.exe --remote-debugging-port=9222
107
-
108
- # Slack
109
- slack.exe --remote-debugging-port=9223
110
-
111
- # VS Code
112
- code.exe --remote-debugging-port=9225
113
- ```
114
-
115
- Once launched with `--remote-debugging-port`, `browser_detect` immediately reflects the application as connectable.
1
+ ---
2
+ id: electron-discovery
3
+ domain: desktop
4
+ triggers:
5
+ - "discover electron apps"
6
+ - "detect desktop apps"
7
+ - "connect to slack"
8
+ - "connect to discord"
9
+ - "connect to vscode"
10
+ - "electron automation"
11
+ tools:
12
+ - "browser_detect"
13
+ weavetab: ">=2.5.0"
14
+ ---
15
+
16
+ # Electron Discovery & Environment Handshake
17
+
18
+ Modern desktop applications (Discord, Slack, VS Code, Notion, Obsidian, Figma) are built on Chromium and Electron. Weavetab can inspect and drive these native applications through standard CDP interfaces without third-party drivers or OS-level accessibility hacks.
19
+
20
+ `browser_detect` is the **critical initialization handshake** tool. Every agent should call `browser_detect` before interacting with the user's desktop environment to gain immediate situational awareness.
21
+
22
+ ---
23
+
24
+ ## 1. Running Discovery via `browser_detect`
25
+
26
+ Call `browser_detect` with empty parameters `{}`:
27
+
28
+ ```json
29
+ {}
30
+ ```
31
+
32
+ ### Response Schema:
33
+ ```json
34
+ {
35
+ "available": [
36
+ {
37
+ "engine": "chromium",
38
+ "name": "Google Chrome",
39
+ "path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
40
+ }
41
+ ],
42
+ "current": "chromium",
43
+ "configuredApps": [
44
+ {
45
+ "name": "discord",
46
+ "status": "running_no_debug",
47
+ "configuredPath": "C:\\Users\\username\\AppData\\Local\\Discord\\app-1.0.9256\\Discord.exe"
48
+ },
49
+ {
50
+ "name": "slack",
51
+ "status": "connected",
52
+ "port": 9222,
53
+ "configuredPath": "C:\\Users\\username\\AppData\\Local\\slack\\app-4.38.125\\slack.exe",
54
+ "activeTabs": [
55
+ {
56
+ "id": "PAGE_1",
57
+ "title": "general - Weavetab Slack",
58
+ "url": "https://app.slack.com/client/..."
59
+ }
60
+ ]
61
+ },
62
+ {
63
+ "name": "vscode",
64
+ "status": "offline",
65
+ "configuredPath": "C:\\Users\\username\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"
66
+ }
67
+ ],
68
+ "toolCoverage": {
69
+ "chromium": 100,
70
+ "firefox": 78,
71
+ "webkit": 55
72
+ }
73
+ }
74
+ ```
75
+
76
+ ---
77
+
78
+ ## 2. Understanding Application Status
79
+
80
+ Each configured desktop app reports one of three distinct lifecycle statuses:
81
+
82
+ | Status | Meaning | Agent Action |
83
+ | :--- | :--- | :--- |
84
+ | **`connected`** | App is running with CDP remote debugging active. Weavetab has an active session. | Immediately interact using any tool with `"app": "<name>"`. Tabs and port are available. |
85
+ | **`running_no_debug`** | The app process is currently open on the user's OS, but was launched normally by the user without `--remote-debugging-port`. | Do NOT send click/type commands. To attach, inform the user or close and launch via `browser_navigate(app: "<name>")` so Weavetab supplies the debugging port. |
86
+ | **`offline`** | The application is not currently running on the OS. | Launch and attach in one step by calling `browser_navigate(app: "<name>")`. |
87
+
88
+ ---
89
+
90
+ ## 3. Dynamic Squirrel Updates on Windows
91
+
92
+ On Windows, Squirrel-managed applications (Discord, Slack, Teams) update dynamically into versioned sibling directories (e.g. `Discord\app-1.0.9256\Discord.exe`).
93
+
94
+ Weavetab automatically handles this:
95
+ - If a configured path points to an outdated version or the parent folder, Weavetab scans the directory, resolves the highest semantic version folder (`app-1.0.xxxx`), and launches the valid executable.
96
+ - The dynamically resolved path is reported in `browser_detect` under `configuredPath`.
97
+
98
+ ---
99
+
100
+ ## 4. Launching Desktop Apps Manually with Debugging
101
+
102
+ If the user prefers to launch apps manually from a terminal or shortcut with remote debugging enabled:
103
+
104
+ ```bash
105
+ # Discord
106
+ Discord.exe --remote-debugging-port=9222
107
+
108
+ # Slack
109
+ slack.exe --remote-debugging-port=9223
110
+
111
+ # VS Code
112
+ code.exe --remote-debugging-port=9225
113
+ ```
114
+
115
+ Once launched with `--remote-debugging-port`, `browser_detect` immediately reflects the application as connectable.