@weavetab/skills 2.5.0-beta.4 → 2.5.0-beta.5
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.
- package/README.md +16 -16
- package/bin/cli.js +17 -17
- package/browser/dom-strategy.md +1 -1
- package/browser/form-automation.md +1 -1
- package/browser/interaction-pipeline.md +1 -1
- package/browser/tab-and-window.md +1 -1
- package/desktop/desktop-targeting.md +1 -1
- package/desktop/electron-discovery.md +1 -1
- package/developer/github-forensics.md +1 -1
- package/dist/bundled/weavetab-all.md +1704 -1699
- package/dist/bundled/weavetab-browser.md +23 -23
- package/dist/bundled/weavetab-desktop.md +13 -13
- package/dist/bundled/weavetab-developer.md +8 -8
- package/dist/bundled/weavetab-documents.md +13 -13
- package/dist/bundled/weavetab-memory.md +182 -182
- package/dist/bundled/weavetab-network-and-perf.md +19 -19
- package/dist/bundled/weavetab-plugins.md +62 -57
- package/dist/bundled/weavetab-resilience.md +18 -18
- package/dist/bundled/weavetab-security.md +13 -13
- package/dist/granular/browser_dom-strategy.md +1 -1
- package/dist/granular/browser_form-automation.md +1 -1
- package/dist/granular/browser_interaction-pipeline.md +1 -1
- package/dist/granular/browser_tab-and-window.md +1 -1
- package/dist/granular/desktop_desktop-targeting.md +1 -1
- package/dist/granular/desktop_electron-discovery.md +1 -1
- package/dist/granular/developer_github-forensics.md +1 -1
- package/dist/granular/documents_canvas-and-visual-capture.md +1 -1
- package/dist/granular/documents_office-document-ingestion.md +1 -1
- package/dist/granular/memory_selector-memory-system.md +1 -1
- package/dist/granular/memory_session-trail.md +2 -2
- package/dist/granular/memory_site-learning.md +1 -1
- package/dist/granular/network-and-perf_device-and-environment.md +1 -1
- package/dist/granular/network-and-perf_network-intercept-and-mock.md +2 -2
- package/dist/granular/network-and-perf_performance-and-vitals.md +1 -1
- package/dist/granular/plugins_hooks-and-overrides.md +2 -3
- package/dist/granular/plugins_plugin-runtime.md +63 -60
- package/dist/granular/resilience_loop-breaker.md +1 -1
- package/dist/granular/resilience_session-time-travel.md +1 -1
- package/dist/granular/resilience_stale-ref-recovery.md +1 -1
- package/dist/granular/security_rbac-and-policies.md +1 -1
- package/dist/granular/security_secret-containment-protocol.md +1 -1
- package/documents/canvas-and-visual-capture.md +1 -1
- package/documents/office-document-ingestion.md +1 -1
- package/evals/evaluator.js +2 -2
- package/evals/scenarios.json +8 -7
- package/memory/selector-memory-system.md +1 -1
- package/memory/session-trail.md +2 -2
- package/memory/site-learning.md +1 -1
- package/network-and-perf/device-and-environment.md +1 -1
- package/network-and-perf/network-intercept-and-mock.md +2 -2
- package/network-and-perf/performance-and-vitals.md +1 -1
- package/package.json +73 -73
- package/plugins/hooks-and-overrides.md +2 -3
- package/plugins/plugin-runtime.md +63 -60
- package/resilience/loop-breaker.md +1 -1
- package/resilience/session-time-travel.md +1 -1
- package/resilience/stale-ref-recovery.md +1 -1
- package/security/rbac-and-policies.md +1 -1
- package/security/secret-containment-protocol.md +1 -1
- package/skills.json +426 -431
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Weavetab Domain Profile: BROWSER
|
|
2
|
-
|
|
3
|
-
Generated for @weavetab/skills v2.5.0-beta.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
## dom-strategy
|
|
7
|
-
|
|
1
|
+
# Weavetab Domain Profile: BROWSER
|
|
2
|
+
|
|
3
|
+
Generated for @weavetab/skills v2.5.0-beta.5
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## dom-strategy
|
|
7
|
+
|
|
8
8
|
# DOM Strategy & Token Conservation Engine
|
|
9
9
|
|
|
10
10
|
When parsing modern web applications, naive DOM dumps can consume 50,000+ tokens and cause agent degradation. Weavetab provides a high-efficiency 4-tier reading architecture.
|
|
@@ -104,11 +104,11 @@ Weavetab maps elements to ephemeral handles (`w:NN`) and visual marks (`[1]…[N
|
|
|
104
104
|
1. **Never Construct Speculative CSS Selectors**: If an element has ref `w:14`, pass `"ref": "w:14"` to `browser_click`, `browser_fill`, `browser_type`.
|
|
105
105
|
2. **Visual Mark Targeting**: On canvas or unlabelled elements from `visual: "auto"`, pass `"mark": N` directly to `browser_click({ mark: N })`.
|
|
106
106
|
3. **Lifespan of Handles**: Ref IDs and marks invalidate on page navigation (`browser_navigate`) or heavy SPA re-renders.
|
|
107
|
-
4. **Recovery on Invalidation**: If an action fails with `ELEMENT_NOT_FOUND` or `MARK_NOT_FOUND`, re-run `browser_map({ visual: "auto" })` to refresh active handles.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
## form-automation
|
|
111
|
-
|
|
107
|
+
4. **Recovery on Invalidation**: If an action fails with `ELEMENT_NOT_FOUND` or `MARK_NOT_FOUND`, re-run `browser_map({ visual: "auto" })` to refresh active handles.
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## form-automation
|
|
111
|
+
|
|
112
112
|
# Form Automation: Atomic Multi-Field Execution
|
|
113
113
|
|
|
114
114
|
Submitting complex web forms one field at a time wastes agent turns and increases the probability of layout shifts. Weavetab provides atomic multi-field batching and native dropdown selectors.
|
|
@@ -179,11 +179,11 @@ For `<select multiple>` elements, pass an array of option values:
|
|
|
179
179
|
2. **Submit via Enter Key vs Click**:
|
|
180
180
|
- If the submit button has a dynamic ref or changes during typing, send `"key": "Enter"` via `browser_key` inside the last filled text field.
|
|
181
181
|
- Otherwise, locate the submit button via `browser_find` and click via `browser_click`.
|
|
182
|
-
3. **Wait for Post-Submission Route**: Always follow form submission with `browser_wait` for URL changes or target DOM confirmation rather than immediately firing subsequent actions.
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
## interaction-pipeline
|
|
186
|
-
|
|
182
|
+
3. **Wait for Post-Submission Route**: Always follow form submission with `browser_wait` for URL changes or target DOM confirmation rather than immediately firing subsequent actions.
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
## interaction-pipeline
|
|
186
|
+
|
|
187
187
|
# Interaction Pipeline: Physical & Synthetic Input Engine
|
|
188
188
|
|
|
189
189
|
Weavetab executes browser interactions via direct Chrome DevTools Protocol (CDP) dispatch, bypassing synthetic JavaScript event limitations and anti-automation tripwires.
|
|
@@ -374,11 +374,11 @@ Read or write system clipboard text during automation:
|
|
|
374
374
|
"action": "write",
|
|
375
375
|
"text": "AuthToken_xyz987"
|
|
376
376
|
}
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
## tab-and-window
|
|
381
|
-
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
## tab-and-window
|
|
381
|
+
|
|
382
382
|
# Tab & Window Lifecycle Management
|
|
383
383
|
|
|
384
384
|
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.
|
|
@@ -498,4 +498,4 @@ If a target page crashes or detaches due to memory limits:
|
|
|
498
498
|
}
|
|
499
499
|
```
|
|
500
500
|
|
|
501
|
-
The auto-heal routine re-establishes CDP protocol sessions, reconnects event listeners, and synchronizes the active page target.
|
|
501
|
+
The auto-heal routine re-establishes CDP protocol sessions, reconnects event listeners, and synchronizes the active page target.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Weavetab Domain Profile: DESKTOP
|
|
2
|
-
|
|
3
|
-
Generated for @weavetab/skills v2.5.0-beta.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
## desktop-targeting
|
|
7
|
-
|
|
1
|
+
# Weavetab Domain Profile: DESKTOP
|
|
2
|
+
|
|
3
|
+
Generated for @weavetab/skills v2.5.0-beta.5
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## desktop-targeting
|
|
7
|
+
|
|
8
8
|
# Desktop App Targeting & Multi-Window Routing
|
|
9
9
|
|
|
10
10
|
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.
|
|
@@ -69,11 +69,11 @@ Some Electron apps open secondary windows (e.g. popout editors, settings panels,
|
|
|
69
69
|
|
|
70
70
|
1. Use `browser_tabs(action: "list", app: "discord")` to view all open windows and page targets for that specific app.
|
|
71
71
|
2. Switch focus between windows using `browser_tabs(action: "switch", tabId: "<id>", app: "discord")`.
|
|
72
|
-
3. To bring a specific native window to the foreground, use `browser_tabs(action: "focus_window", windowId: <id>, app: "discord")`.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
## electron-discovery
|
|
76
|
-
|
|
72
|
+
3. To bring a specific native window to the foreground, use `browser_tabs(action: "focus_window", windowId: <id>, app: "discord")`.
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## electron-discovery
|
|
76
|
+
|
|
77
77
|
# Electron Discovery & Environment Handshake
|
|
78
78
|
|
|
79
79
|
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.
|
|
@@ -173,4 +173,4 @@ slack.exe --remote-debugging-port=9223
|
|
|
173
173
|
code.exe --remote-debugging-port=9225
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
-
Once launched with `--remote-debugging-port`, `browser_detect` immediately reflects the application as connectable.
|
|
176
|
+
Once launched with `--remote-debugging-port`, `browser_detect` immediately reflects the application as connectable.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Weavetab Domain Profile: DEVELOPER
|
|
2
|
-
|
|
3
|
-
Generated for @weavetab/skills v2.5.0-beta.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
## github-forensics
|
|
7
|
-
|
|
1
|
+
# Weavetab Domain Profile: DEVELOPER
|
|
2
|
+
|
|
3
|
+
Generated for @weavetab/skills v2.5.0-beta.5
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## github-forensics
|
|
7
|
+
|
|
8
8
|
# GitHub Forensics & Repository Architecture Inspection
|
|
9
9
|
|
|
10
10
|
Navigating GitHub repositories via web browsing burns massive token budgets loading HTML chrome, comment threads, and diff trees. Weavetab includes a dedicated `browser_github` tool that interacts directly with git metadata and raw endpoints.
|
|
@@ -64,4 +64,4 @@ Query repository issue trackers with state, label, and keyword filters:
|
|
|
64
64
|
"state": "open",
|
|
65
65
|
"labels": ["bug", "priority"]
|
|
66
66
|
}
|
|
67
|
-
```
|
|
67
|
+
```
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Weavetab Domain Profile: DOCUMENTS
|
|
2
|
-
|
|
3
|
-
Generated for @weavetab/skills v2.5.0-beta.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
## canvas-and-visual-capture
|
|
7
|
-
|
|
1
|
+
# Weavetab Domain Profile: DOCUMENTS
|
|
2
|
+
|
|
3
|
+
Generated for @weavetab/skills v2.5.0-beta.5
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## canvas-and-visual-capture
|
|
7
|
+
|
|
8
8
|
# Visual Capture, Canvas Forensics & Design Extraction
|
|
9
9
|
|
|
10
10
|
Beyond textual DOM manipulation, modern web applications contain dynamic HTML5 canvas renderings (charts, maps, WebGL games), and agents often need high-fidelity visual artifacts.
|
|
@@ -87,11 +87,11 @@ Reverse-engineer UI stylesheets, active CSS custom properties (variables), typog
|
|
|
87
87
|
}
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
Returns structured JSON representing colors, font families, shadows, and spacing tokens.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
## office-document-ingestion
|
|
94
|
-
|
|
90
|
+
Returns structured JSON representing colors, font families, shadows, and spacing tokens.
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
## office-document-ingestion
|
|
94
|
+
|
|
95
95
|
# Office Document Ingestion: Word, Excel & CSV Parsing
|
|
96
96
|
|
|
97
97
|
Agents frequently need to parse structured spreadsheets or corporate documents downloaded during automation runs. `browser_office` parses `.docx`, `.xlsx`, `.xls`, and `.csv` files directly into clean JSON structures.
|
|
@@ -139,4 +139,4 @@ Extract semantic paragraphs, document headings, tables, and lists:
|
|
|
139
139
|
|
|
140
140
|
### Operational Advantages:
|
|
141
141
|
- Eliminates the need for heavy external Python libraries or microservices.
|
|
142
|
-
- Safely sanitizes binary formats before passing content into LLM context.
|
|
142
|
+
- Safely sanitizes binary formats before passing content into LLM context.
|
|
@@ -1,196 +1,196 @@
|
|
|
1
1
|
# Weavetab Domain Profile: MEMORY
|
|
2
2
|
|
|
3
|
-
Generated for @weavetab/skills v2.5.0-beta.
|
|
3
|
+
Generated for @weavetab/skills v2.5.0-beta.5
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
## selector-memory-system
|
|
7
7
|
|
|
8
|
-
# Two-Tier Memory System
|
|
9
|
-
|
|
10
|
-
Weavetab operates a two-tier persistent memory system. Understanding both layers prevents wasted DOM traversals and makes agents dramatically faster across sessions.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Tier 1 — Selector Confidence Cache (`~/.weavetab-system/memory/`)
|
|
15
|
-
|
|
16
|
-
Per-domain JSON files (one per hostname) track individual element selectors and their interaction history.
|
|
17
|
-
|
|
18
|
-
Every time an element is located and interacted with, Weavetab calculates a confidence score based on:
|
|
19
|
-
1. **Attribute Stability**: Prefers `data-testid`, `id`, `aria-label`, and semantic roles over dynamic Tailwind/CSS-module class strings.
|
|
20
|
-
2. **Success Count**: Selectors that successfully trigger navigation or state changes gain reinforcement.
|
|
21
|
-
3. **Origin Isolation**: Learned selectors are strictly namespaced to the origin to prevent cross-site contamination.
|
|
22
|
-
|
|
23
|
-
### Strike Degradation
|
|
24
|
-
- **Strike 1**: Marked as degraded — falls back to secondary candidates or fuzzy label match.
|
|
25
|
-
- **Strike 2**: Deprecated — immediate fallback to full DOM inspection via `browser_find` or `browser_map`.
|
|
26
|
-
- **Strike 3**: Purged from memory cache to prevent stale lookups.
|
|
27
|
-
|
|
28
|
-
### Agent Discipline for Tier 1
|
|
29
|
-
1. **Rely on Native Tool Resolution**: When you pass a `ref`, Weavetab queries both the active volatile registry and the Tier 1 memory cache automatically.
|
|
30
|
-
2. **Don't Hardcode Fragile Selectors**: Never pass brittle absolute CSS paths like `div:nth-child(3) > ul > li:nth-child(2) > button`.
|
|
31
|
-
3. **Trust Heuristic Recovery**: If a button moves slightly on the page, the underlying engine re-anchors before reporting failure.
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Tier 2 — Site Profiles & Workflow Patterns (`~/.weavetab-system/memory/sites/`)
|
|
36
|
-
|
|
37
|
-
One JSON file per origin stores named multi-step workflow patterns, site quirks, and reliability scores. This is the **Intelligent Memory** layer — agents learn entire flows, not just individual selectors.
|
|
38
|
-
|
|
39
|
-
### Checking a Site Profile at Session Start
|
|
40
|
-
Always call `browser_pattern_learn` with `action: "get"` when starting an automation session on a site you may have visited before:
|
|
41
|
-
|
|
42
|
-
```json
|
|
43
|
-
{ "origin": "https://github.com" }
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Response tells you:
|
|
47
|
-
- `known_patterns`: named flows with reliability scores and step counts
|
|
48
|
-
- `quirks`: known cookie banners, rate limits, modal popups to handle automatically
|
|
49
|
-
- `framework`: detected frontend stack
|
|
50
|
-
- `_hint`: compact hint string summarizing everything
|
|
51
|
-
|
|
52
|
-
### Fast-Path Decision Rule
|
|
53
|
-
| Reliability | Action |
|
|
54
|
-
|---|---|
|
|
55
|
-
| **≥ 0.8** | Use pattern steps directly via `browser_burst` — skip exploratory navigation |
|
|
56
|
-
| **0.5 – 0.79** | Attempt pattern but verify success indicator before moving on |
|
|
57
|
-
| **< 0.5 or strikes ≥ 3** | Ignore pattern, re-explore from scratch, then teach via `browser_pattern_learn` |
|
|
58
|
-
|
|
59
|
-
### Teaching a New Pattern After Completing a Workflow
|
|
60
|
-
After successfully completing a multi-step flow:
|
|
61
|
-
|
|
62
|
-
```json
|
|
63
|
-
{
|
|
64
|
-
"origin": "https://github.com",
|
|
65
|
-
"action": "learn",
|
|
66
|
-
"name": "login_flow",
|
|
67
|
-
"steps": [
|
|
68
|
-
{ "tool": "browser_click", "target": ".btn-login" },
|
|
69
|
-
{ "tool": "browser_fill", "target": "#login_field", "value": "{{username}}" },
|
|
70
|
-
{ "tool": "browser_fill", "target": "#password", "value": "{{password}}" },
|
|
71
|
-
{ "tool": "browser_click", "target": "[type=submit]" }
|
|
72
|
-
],
|
|
73
|
-
"success_indicator": "a[aria-label='Homepage']"
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Recording Execution Outcomes (Reliability Upkeep)
|
|
78
|
-
After replaying a pattern, always report the outcome:
|
|
79
|
-
|
|
80
|
-
```json
|
|
81
|
-
{
|
|
82
|
-
"origin": "https://github.com",
|
|
83
|
-
"action": "record_execution",
|
|
84
|
-
"name": "login_flow",
|
|
85
|
-
"success": true,
|
|
86
|
-
"duration_ms": 3200
|
|
87
|
-
}
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Recording Site Quirks
|
|
91
|
-
When you discover a cookie banner or rate limit:
|
|
92
|
-
|
|
93
|
-
```json
|
|
94
|
-
{
|
|
95
|
-
"origin": "https://github.com",
|
|
96
|
-
"action": "record_quirk",
|
|
97
|
-
"quirk_key": "cookie_banner",
|
|
98
|
-
"quirk_data": { "selector": "#cookie-consent", "action": "click .accept-all", "appears": "first_visit" }
|
|
99
|
-
}
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
On future visits, the quirk is present in the profile so you can dismiss banners before starting your main workflow — zero wasted agent turns.
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## File Locations (Never Write to ~/.weavetab/)
|
|
107
|
-
|
|
108
|
-
| Tier | Path | Owner |
|
|
109
|
-
|---|---|---|
|
|
110
|
-
| Tier 1 selectors | `~/.weavetab-system/memory/<hostname>.json` | Engine (auto) |
|
|
111
|
-
| Tier 2 site profiles | `~/.weavetab-system/memory/sites/<origin>.json` | Engine via `browser_pattern_learn` |
|
|
112
|
-
| Knowledge hints | `~/.weavetab-system/knowledge/<hostname>.md` | Engine (auto, 20-token notes) |
|
|
8
|
+
# Two-Tier Memory System
|
|
9
|
+
|
|
10
|
+
Weavetab operates a two-tier persistent memory system. Understanding both layers prevents wasted DOM traversals and makes agents dramatically faster across sessions.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Tier 1 — Selector Confidence Cache (`~/.weavetab-system/memory/`)
|
|
15
|
+
|
|
16
|
+
Per-domain JSON files (one per hostname) track individual element selectors and their interaction history.
|
|
17
|
+
|
|
18
|
+
Every time an element is located and interacted with, Weavetab calculates a confidence score based on:
|
|
19
|
+
1. **Attribute Stability**: Prefers `data-testid`, `id`, `aria-label`, and semantic roles over dynamic Tailwind/CSS-module class strings.
|
|
20
|
+
2. **Success Count**: Selectors that successfully trigger navigation or state changes gain reinforcement.
|
|
21
|
+
3. **Origin Isolation**: Learned selectors are strictly namespaced to the origin to prevent cross-site contamination.
|
|
22
|
+
|
|
23
|
+
### Strike Degradation
|
|
24
|
+
- **Strike 1**: Marked as degraded — falls back to secondary candidates or fuzzy label match.
|
|
25
|
+
- **Strike 2**: Deprecated — immediate fallback to full DOM inspection via `browser_find` or `browser_map`.
|
|
26
|
+
- **Strike 3**: Purged from memory cache to prevent stale lookups.
|
|
27
|
+
|
|
28
|
+
### Agent Discipline for Tier 1
|
|
29
|
+
1. **Rely on Native Tool Resolution**: When you pass a `ref`, Weavetab queries both the active volatile registry and the Tier 1 memory cache automatically.
|
|
30
|
+
2. **Don't Hardcode Fragile Selectors**: Never pass brittle absolute CSS paths like `div:nth-child(3) > ul > li:nth-child(2) > button`.
|
|
31
|
+
3. **Trust Heuristic Recovery**: If a button moves slightly on the page, the underlying engine re-anchors before reporting failure.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Tier 2 — Site Profiles & Workflow Patterns (`~/.weavetab-system/memory/sites/`)
|
|
36
|
+
|
|
37
|
+
One JSON file per origin stores named multi-step workflow patterns, site quirks, and reliability scores. This is the **Intelligent Memory** layer — agents learn entire flows, not just individual selectors.
|
|
38
|
+
|
|
39
|
+
### Checking a Site Profile at Session Start
|
|
40
|
+
Always call `browser_pattern_learn` with `action: "get"` when starting an automation session on a site you may have visited before:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{ "origin": "https://github.com" }
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Response tells you:
|
|
47
|
+
- `known_patterns`: named flows with reliability scores and step counts
|
|
48
|
+
- `quirks`: known cookie banners, rate limits, modal popups to handle automatically
|
|
49
|
+
- `framework`: detected frontend stack
|
|
50
|
+
- `_hint`: compact hint string summarizing everything
|
|
51
|
+
|
|
52
|
+
### Fast-Path Decision Rule
|
|
53
|
+
| Reliability | Action |
|
|
54
|
+
|---|---|
|
|
55
|
+
| **≥ 0.8** | Use pattern steps directly via `browser_burst` — skip exploratory navigation |
|
|
56
|
+
| **0.5 – 0.79** | Attempt pattern but verify success indicator before moving on |
|
|
57
|
+
| **< 0.5 or strikes ≥ 3** | Ignore pattern, re-explore from scratch, then teach via `browser_pattern_learn` |
|
|
58
|
+
|
|
59
|
+
### Teaching a New Pattern After Completing a Workflow
|
|
60
|
+
After successfully completing a multi-step flow:
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"origin": "https://github.com",
|
|
65
|
+
"action": "learn",
|
|
66
|
+
"name": "login_flow",
|
|
67
|
+
"steps": [
|
|
68
|
+
{ "tool": "browser_click", "target": ".btn-login" },
|
|
69
|
+
{ "tool": "browser_fill", "target": "#login_field", "value": "{{username}}" },
|
|
70
|
+
{ "tool": "browser_fill", "target": "#password", "value": "{{password}}" },
|
|
71
|
+
{ "tool": "browser_click", "target": "[type=submit]" }
|
|
72
|
+
],
|
|
73
|
+
"success_indicator": "a[aria-label='Homepage']"
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Recording Execution Outcomes (Reliability Upkeep)
|
|
78
|
+
After replaying a pattern, always report the outcome:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"origin": "https://github.com",
|
|
83
|
+
"action": "record_execution",
|
|
84
|
+
"name": "login_flow",
|
|
85
|
+
"success": true,
|
|
86
|
+
"duration_ms": 3200
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Recording Site Quirks
|
|
91
|
+
When you discover a cookie banner or rate limit:
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"origin": "https://github.com",
|
|
96
|
+
"action": "record_quirk",
|
|
97
|
+
"quirk_key": "cookie_banner",
|
|
98
|
+
"quirk_data": { "selector": "#cookie-consent", "action": "click .accept-all", "appears": "first_visit" }
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
On future visits, the quirk is present in the profile so you can dismiss banners before starting your main workflow — zero wasted agent turns.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## File Locations (Never Write to ~/.weavetab/)
|
|
107
|
+
|
|
108
|
+
| Tier | Path | Owner |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| Tier 1 selectors | `~/.weavetab-system/memory/<hostname>.json` | Engine (auto) |
|
|
111
|
+
| Tier 2 site profiles | `~/.weavetab-system/memory/sites/<origin>.json` | Engine via `browser_pattern_learn` |
|
|
112
|
+
| Knowledge hints | `~/.weavetab-system/knowledge/<hostname>.md` | Engine (auto, 20-token notes) |
|
|
113
113
|
| User config | `~/.weavetab/config.json` | Human — never written by agents |
|
|
114
114
|
|
|
115
115
|
|
|
116
116
|
## session-trail
|
|
117
117
|
|
|
118
|
-
# Session Trails & Deterministic Macro Compilation
|
|
119
|
-
|
|
120
|
-
When an agent executes an exploratory workflow (e.g. logging into a dashboard, navigating to analytics, setting date filters, and downloading a CSV), re-running that flow autonomously in the future should not require 15 reasoning steps.
|
|
121
|
-
|
|
122
|
-
`browser_burst` with `compile_from_history: true` automatically converts recent successful session actions into a high-performance, deterministic execution script.
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
## 1. Compiling and Replaying Recent Actions (`browser_burst`)
|
|
127
|
-
|
|
128
|
-
Replay recent successful actions directly in a single turn:
|
|
129
|
-
|
|
130
|
-
```json
|
|
131
|
-
{
|
|
132
|
-
"compile_from_history": true
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Or pass `dry_run: true` to inspect the compiled macro steps before running them:
|
|
137
|
-
|
|
138
|
-
```json
|
|
139
|
-
{
|
|
140
|
-
"compile_from_history": true,
|
|
141
|
-
"dry_run": true,
|
|
142
|
-
"history_limit": 15
|
|
143
|
-
}
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Response Example:
|
|
147
|
-
```json
|
|
148
|
-
{
|
|
149
|
-
"success": true,
|
|
150
|
-
"steps_completed": 0,
|
|
151
|
-
"compiled_steps": [
|
|
152
|
-
{ "tool": "
|
|
153
|
-
{ "tool": "browser_fill", "args": { "ref": "w:12", "value": "metrics" } },
|
|
154
|
-
{ "tool": "click_and_wait", "args": { "ref": "w:15" } }
|
|
155
|
-
],
|
|
156
|
-
"message": "compiled 3 macro steps from history"
|
|
157
|
-
}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
## 2. Parameterizing Variable Inputs
|
|
163
|
-
|
|
164
|
-
When `"parameterizeInputs": true` is passed:
|
|
165
|
-
- Text inputs and dates entered during the exploratory session are replaced with named parameters.
|
|
166
|
-
- Secrets entered via `browser_type_secret` are never hardcoded; they are replaced with environment variable or secret lookups.
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## 3. Replaying Compiled Automations
|
|
171
|
-
|
|
172
|
-
Compiled macros can be executed in sub-second time without LLM inference overhead using `browser_automation`:
|
|
173
|
-
|
|
174
|
-
```json
|
|
175
|
-
{
|
|
176
|
-
"macroId": "macro_8f7b2c",
|
|
177
|
-
"parameters": {
|
|
178
|
-
"startDate": "2026-09-01",
|
|
179
|
-
"endDate": "2026-09-03"
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## 4. Emitting Operational Thoughts (`browser_thoughts`)
|
|
187
|
-
|
|
188
|
-
Log agent rationale and internal reasoning directly to the Weavetab HUD and telemetry stream without bloating user chat responses:
|
|
189
|
-
|
|
190
|
-
```json
|
|
191
|
-
{
|
|
192
|
-
"thought": "Detected dynamic React hydration delay. Holding interaction until DOM mutation settles."
|
|
193
|
-
}
|
|
118
|
+
# Session Trails & Deterministic Macro Compilation
|
|
119
|
+
|
|
120
|
+
When an agent executes an exploratory workflow (e.g. logging into a dashboard, navigating to analytics, setting date filters, and downloading a CSV), re-running that flow autonomously in the future should not require 15 reasoning steps.
|
|
121
|
+
|
|
122
|
+
`browser_burst` with `compile_from_history: true` automatically converts recent successful session actions into a high-performance, deterministic execution script.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 1. Compiling and Replaying Recent Actions (`browser_burst`)
|
|
127
|
+
|
|
128
|
+
Replay recent successful actions directly in a single turn:
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"compile_from_history": true
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Or pass `dry_run: true` to inspect the compiled macro steps before running them:
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"compile_from_history": true,
|
|
141
|
+
"dry_run": true,
|
|
142
|
+
"history_limit": 15
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Response Example:
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"success": true,
|
|
150
|
+
"steps_completed": 0,
|
|
151
|
+
"compiled_steps": [
|
|
152
|
+
{ "tool": "browser_navigate", "args": { "url": "https://analytics.example.com" } },
|
|
153
|
+
{ "tool": "browser_fill", "args": { "ref": "w:12", "value": "metrics" } },
|
|
154
|
+
{ "tool": "click_and_wait", "args": { "ref": "w:15" } }
|
|
155
|
+
],
|
|
156
|
+
"message": "compiled 3 macro steps from history"
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 2. Parameterizing Variable Inputs
|
|
163
|
+
|
|
164
|
+
When `"parameterizeInputs": true` is passed:
|
|
165
|
+
- Text inputs and dates entered during the exploratory session are replaced with named parameters.
|
|
166
|
+
- Secrets entered via `browser_type_secret` are never hardcoded; they are replaced with environment variable or secret lookups.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 3. Replaying Compiled Automations
|
|
171
|
+
|
|
172
|
+
Compiled macros can be executed in sub-second time without LLM inference overhead using `browser_automation`:
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{
|
|
176
|
+
"macroId": "macro_8f7b2c",
|
|
177
|
+
"parameters": {
|
|
178
|
+
"startDate": "2026-09-01",
|
|
179
|
+
"endDate": "2026-09-03"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 4. Emitting Operational Thoughts (`browser_thoughts`)
|
|
187
|
+
|
|
188
|
+
Log agent rationale and internal reasoning directly to the Weavetab HUD and telemetry stream without bloating user chat responses:
|
|
189
|
+
|
|
190
|
+
```json
|
|
191
|
+
{
|
|
192
|
+
"thought": "Detected dynamic React hydration delay. Holding interaction until DOM mutation settles."
|
|
193
|
+
}
|
|
194
194
|
```
|
|
195
195
|
|
|
196
196
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Weavetab Domain Profile: NETWORK-AND-PERF
|
|
2
|
-
|
|
3
|
-
Generated for @weavetab/skills v2.5.0-beta.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
## device-and-environment
|
|
7
|
-
|
|
1
|
+
# Weavetab Domain Profile: NETWORK-AND-PERF
|
|
2
|
+
|
|
3
|
+
Generated for @weavetab/skills v2.5.0-beta.5
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## device-and-environment
|
|
7
|
+
|
|
8
8
|
# Device Emulation & Environment Simulation
|
|
9
9
|
|
|
10
10
|
Auditing mobile responsive layouts, testing geographic restrictions, and simulating degraded network conditions can all be accomplished with `browser_emulate`.
|
|
@@ -76,11 +76,11 @@ To reset all overrides back to default host system parameters:
|
|
|
76
76
|
{
|
|
77
77
|
"reset": true
|
|
78
78
|
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
## network-intercept-and-mock
|
|
83
|
-
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## network-intercept-and-mock
|
|
83
|
+
|
|
84
84
|
# Network Interception, Mocking & TLS Forensics
|
|
85
85
|
|
|
86
86
|
Autonomous testing and debugging often require simulating backend error states (e.g. 500 Internal Server Error, 429 Rate Limit), stubbing third-party analytics, or verifying TLS/SSL certificates.
|
|
@@ -129,7 +129,7 @@ Extract cryptographic handshake metadata, cipher suites, expiration dates, and m
|
|
|
129
129
|
```json
|
|
130
130
|
{
|
|
131
131
|
"action": "auditTls",
|
|
132
|
-
"url": "https://weavetab.
|
|
132
|
+
"url": "https://weavetab.dev"
|
|
133
133
|
}
|
|
134
134
|
```
|
|
135
135
|
|
|
@@ -149,11 +149,11 @@ Extract cryptographic handshake metadata, cipher suites, expiration dates, and m
|
|
|
149
149
|
"ttfbMs": 12.8
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
## performance-and-vitals
|
|
156
|
-
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
## performance-and-vitals
|
|
156
|
+
|
|
157
157
|
# Performance Forensics & Core Web Vitals
|
|
158
158
|
|
|
159
159
|
Optimizing agent execution and auditing client performance requires objective metrics rather than arbitrary sleep timers.
|
|
@@ -220,4 +220,4 @@ Always synchronize with deterministic browser conditions:
|
|
|
220
220
|
"selector": "[data-testid=\"checkout-complete\"]",
|
|
221
221
|
"timeout": 15000
|
|
222
222
|
}
|
|
223
|
-
```
|
|
223
|
+
```
|