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

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 (113) hide show
  1. package/AGENTS.md +1 -1
  2. package/ARCHITECTURE.md +6 -6
  3. package/LICENSE +1 -1
  4. package/README.md +158 -961
  5. package/SECURITY.md +33 -22
  6. package/TROUBLESHOOTING.md +2 -2
  7. package/dist/cdp/bridge.js +2 -1
  8. package/dist/cdp/connector.d.ts +2 -0
  9. package/dist/cdp/connector.js +8 -4
  10. package/dist/cdp/helpers.d.ts +4 -0
  11. package/dist/cdp/helpers.js +181 -0
  12. package/dist/cdp/omni_broker.d.ts +1 -1
  13. package/dist/cdp/omni_broker.js +1 -1
  14. package/dist/cdp/walker.d.ts +25 -1
  15. package/dist/cdp/walker.js +304 -7
  16. package/dist/cli/plugin.js +24 -17
  17. package/dist/cli/updater.d.ts +1 -1
  18. package/dist/cli/updater.js +27 -7
  19. package/dist/config/loader.d.ts +8 -0
  20. package/dist/config/loader.js +41 -2
  21. package/dist/desktop/discovery.d.ts +44 -0
  22. package/dist/desktop/discovery.js +364 -0
  23. package/dist/index.js +95 -15
  24. package/dist/intelligence/marks.d.ts +36 -0
  25. package/dist/intelligence/marks.js +30 -0
  26. package/dist/intelligence/patternCompiler.d.ts +118 -0
  27. package/dist/intelligence/patternCompiler.js +259 -0
  28. package/dist/intelligence/sessionMemory.d.ts +2 -0
  29. package/dist/intelligence/sessionMemory.js +18 -8
  30. package/dist/overlay/injector.js +2 -2
  31. package/dist/plugin/interface.d.ts +76 -2
  32. package/dist/plugin/loader.d.ts +15 -1
  33. package/dist/plugin/loader.js +217 -70
  34. package/dist/plugin/pipeline.d.ts +75 -0
  35. package/dist/plugin/pipeline.js +183 -0
  36. package/dist/plugin/registry.js +3 -2
  37. package/dist/security/secrets.d.ts +1 -0
  38. package/dist/security/secrets.js +13 -0
  39. package/dist/sensors/actionability.js +1 -2
  40. package/dist/sensors/guard.js +4 -10
  41. package/dist/sensors/mutations.js +12 -0
  42. package/dist/sensors/operation_monitor.js +1 -0
  43. package/dist/server.d.ts +1 -1
  44. package/dist/server.js +428 -156
  45. package/dist/state/agent.d.ts +1 -0
  46. package/dist/state/agent.js +3 -0
  47. package/dist/state/delta.d.ts +12 -4
  48. package/dist/state/delta.js +67 -14
  49. package/dist/state/session.d.ts +6 -0
  50. package/dist/state/session.js +27 -0
  51. package/dist/tools/browser_detect.d.ts +16 -3
  52. package/dist/tools/browser_detect.js +50 -5
  53. package/dist/tools/burst.d.ts +17 -8
  54. package/dist/tools/burst.js +236 -77
  55. package/dist/tools/checkpoint.d.ts +38 -0
  56. package/dist/tools/checkpoint.js +271 -0
  57. package/dist/tools/click.d.ts +1 -0
  58. package/dist/tools/click.js +74 -70
  59. package/dist/tools/design_extract.js +1 -1
  60. package/dist/tools/eval.js +1 -1
  61. package/dist/tools/fill.d.ts +20 -1
  62. package/dist/tools/fill.js +199 -40
  63. package/dist/tools/find.d.ts +16 -0
  64. package/dist/tools/find.js +67 -44
  65. package/dist/tools/github/index.d.ts +19 -4
  66. package/dist/tools/github/index.js +40 -4
  67. package/dist/tools/highlight.d.ts +6 -2
  68. package/dist/tools/highlight.js +158 -72
  69. package/dist/tools/inspect.js +1 -1
  70. package/dist/tools/key.js +65 -56
  71. package/dist/tools/navigate.js +29 -34
  72. package/dist/tools/pdf.js +21 -13
  73. package/dist/tools/pointer.d.ts +18 -3
  74. package/dist/tools/pointer.js +89 -1
  75. package/dist/tools/read.d.ts +28 -8
  76. package/dist/tools/read.js +230 -56
  77. package/dist/tools/scrape.js +67 -13
  78. package/dist/tools/screenshot.js +21 -16
  79. package/dist/tools/scroll.js +6 -11
  80. package/dist/tools/select.js +8 -2
  81. package/dist/tools/snapshot.js +3 -34
  82. package/dist/tools/tabs.js +14 -6
  83. package/dist/tools/thought.d.ts +2 -0
  84. package/dist/tools/thought.js +13 -14
  85. package/dist/tools/type.d.ts +2 -0
  86. package/dist/tools/type.js +107 -58
  87. package/dist/tools/type_secret.js +42 -76
  88. package/dist/tools/upload.js +1 -1
  89. package/dist/tools/video_compiler.d.ts +1 -1
  90. package/dist/tools/video_compiler.js +11 -12
  91. package/dist/version.d.ts +5 -0
  92. package/dist/version.js +5 -0
  93. package/docs/DOCUMENTATION.md +21 -32
  94. package/docs/PLUGINS.md +121 -0
  95. package/docs/TOOLS.md +56 -0
  96. package/docs/architecture/blind-injection.md +83 -20
  97. package/docs/architecture/overview.md +49 -49
  98. package/docs/configuration/folders.md +55 -54
  99. package/docs/desktop-automation/electron-apps.md +217 -162
  100. package/docs/get-started/introduction.md +60 -60
  101. package/docs/intelligence/site-profiles.md +151 -0
  102. package/docs/tools/tools.md +631 -293
  103. package/docs/troubleshooting/trouble-loop.md +31 -31
  104. package/ext-dist/background.js +10 -62
  105. package/ext-dist/content.js +333 -920
  106. package/ext-dist/hud/hud.js +9 -9
  107. package/ext-dist/manifest.json +2 -6
  108. package/ext-dist/styles.css +6 -1
  109. package/mcp.json +101 -67
  110. package/package.json +5 -6
  111. package/server.json +3 -3
  112. package/ext-dist/sidepanel/sidepanel.js +0 -25
  113. package/ext-dist/sidepanel.html +0 -547
@@ -0,0 +1,151 @@
1
+ ---
2
+ title: "Site Profiles and Intelligent Memory"
3
+ description: "Persistent cross-session workflow memory, pattern compilation, and quirk bypass in ~/.weavetab-system/memory/sites/."
4
+ product: mcp
5
+ section: intelligence
6
+ icon: Brain
7
+ slug: site-profiles
8
+ ---
9
+
10
+ # Site Profiles and Intelligent Memory Engine
11
+
12
+ Every browser automation session normally starts from zero context. The agent re-inspects DOM trees, re-triggers cookie banners, and re-discovers login fields.
13
+
14
+ Weavetab solves this with a **Two-Tier Persistent Memory System** that accumulates knowledge about domains and workflows across sessions.
15
+
16
+ ---
17
+
18
+ ## Directory Hierarchy: System vs. User Space
19
+
20
+ | Directory | Purpose | Managed By |
21
+ | :--- | :--- | :--- |
22
+ | `~/.weavetab-system/memory/sites/` | **Persistent Site Profiles**: named workflow patterns, quirks, reliability scores | Weavetab Engine (autonomous) |
23
+ | `~/.weavetab-system/memory/` | **Selector Confidence Cache**: per-domain element selectors and strike counters | Weavetab Engine (autonomous) |
24
+ | `~/.weavetab-system/sessions/` | **Rolling Action Trails**: 50-step window for loop detection | Weavetab Engine (autonomous) |
25
+ | `~/.weavetab/` | **User Configuration**: `config.json`, `secrets.json`, `policy.json`, plugins | User / Developer (manual) |
26
+
27
+ > **Directory Law**: Machine-compiled memory profiles are strictly located in `~/.weavetab-system/memory/sites/`. User configuration in `~/.weavetab/` is never polluted by machine learning trails or dynamic decay counters.
28
+
29
+ ---
30
+
31
+ ## Site Profile Schema
32
+
33
+ Profiles are stored as `<sanitized-hostname>.json` under `~/.weavetab-system/memory/sites/`:
34
+
35
+ ```json
36
+ {
37
+ "origin": "https://github.com",
38
+ "framework": "react",
39
+ "shadowDom": false,
40
+ "captcha_frequency": "rare",
41
+ "quirks": {
42
+ "cookie_banner": {
43
+ "selector": "#cookie-consent",
44
+ "action": "click .accept-all",
45
+ "appears": "first_visit"
46
+ },
47
+ "rate_limit": {
48
+ "threshold": "60req/min",
49
+ "recovery": "wait 30s"
50
+ }
51
+ },
52
+ "patterns": {
53
+ "login_flow": {
54
+ "name": "login_flow",
55
+ "steps": [
56
+ { "tool": "browser_navigate", "target": "https://github.com/login" },
57
+ { "tool": "browser_fill", "target": "#login_field", "value": "{{username}}" },
58
+ { "tool": "browser_fill", "target": "#password", "value": "{{password}}" },
59
+ { "tool": "browser_click", "target": "[type=submit]" }
60
+ ],
61
+ "success_indicator": "a[aria-label='Homepage']",
62
+ "entry": "/login",
63
+ "avg_duration_ms": 3200,
64
+ "reliability": 0.96,
65
+ "strikes": 0,
66
+ "last_verified": "2026-09-16T08:00:00.000Z",
67
+ "total_executions": 12,
68
+ "successful_executions": 12
69
+ }
70
+ },
71
+ "visitCount": 15,
72
+ "updatedAt": "2026-09-16T08:00:00.000Z"
73
+ }
74
+ ```
75
+
76
+ ---
77
+
78
+ ## The Pattern Compiler
79
+
80
+ When an agent executes an automation flow:
81
+ 1. **Trail Capture**: Steps are tracked via the lightweight action trail.
82
+ 2. **Selector Stabilization**: Volatile CSS hash classes (`[class*="hash-"]`), positional pseudos (`:nth-child`), and deep anonymous structural chains are filtered out. Only semantic selectors (`id`, `data-testid`, semantic attributes, roles) are persisted.
83
+ 3. **Merge-on-Write**: Calling `browser_pattern_learn` updates existing patterns in place. Duplicate calls never create duplicate files or duplicate entries.
84
+ 4. **Anti-Spam Guard**: If an incoming pattern is identical to stored disk state, the disk write is skipped entirely.
85
+
86
+ ---
87
+
88
+ ## Reliability Scoring and 3-Strike Degradation
89
+
90
+ Each pattern tracks a reliability score (`0.0` to `1.0`) computed via Exponentially Weighted Moving Average (EWMA with $\alpha = 0.15$):
91
+
92
+ $$\text{Reliability}_{t} = 0.85 \times \text{Reliability}_{t-1} + 0.15 \times (\text{Success} ? 1 : 0)$$
93
+
94
+ ### Decision Thresholds
95
+
96
+ - **Fast-Path ($\ge 0.80$)**: Replay stored steps directly via `browser_burst` — skips exploratory DOM navigation entirely.
97
+ - **Cautious Replay ($0.50 - 0.79$)**: Replay steps, but verify `success_indicator` after critical steps.
98
+ - **Re-Learn ($< 0.50$ or $\ge 3$ consecutive strikes)**: Pattern is flagged `[RE-LEARN NEEDED]`. The agent falls back to fresh DOM exploration, then calls `browser_pattern_learn` to teach the updated steps.
99
+
100
+ ---
101
+
102
+ ## MCP Tools
103
+
104
+ ### `browser_pattern_learn`
105
+ All site memory operations use a single tool. Use `action: "get"` to read a site profile, `action: "learn"` to register a workflow, `action: "record_execution"` to update reliability scores, and `action: "record_quirk"` to store site quirks:
106
+
107
+ ```json
108
+ { "action": "get", "origin": "https://github.com" }
109
+ ```
110
+
111
+ ```json
112
+ {
113
+ "origin": "https://github.com",
114
+ "action": "learn",
115
+ "name": "login_flow",
116
+ "steps": [
117
+ { "tool": "browser_click", "target": ".btn-login" },
118
+ { "tool": "browser_fill", "target": "#login_field", "value": "{{username}}" }
119
+ ],
120
+ "success_indicator": "a[aria-label='Homepage']"
121
+ }
122
+ ```
123
+
124
+ ---
125
+
126
+ ## SDK Plugin Integration (`ctx.memory`)
127
+
128
+ Plugin authors can interact with persistent site memory directly via the SDK:
129
+
130
+ ```typescript
131
+ import { definePlugin } from "@weavetab/sdk";
132
+
133
+ export default definePlugin({
134
+ name: "custom-site-automator",
135
+ async onLoad(ctx) {
136
+ // Read current profile
137
+ const profile = await ctx.memory?.getSiteProfile("https://github.com");
138
+
139
+ // Check reliability
140
+ const reliability = await ctx.memory?.getReliability("https://github.com", "login_flow");
141
+ if (reliability && reliability >= 0.8) {
142
+ ctx.logger.info("Fast-path ready for login_flow");
143
+ }
144
+
145
+ // Teach a new pattern
146
+ await ctx.memory?.learnPattern("https://github.com", "quick_search", {
147
+ steps: [{ tool: "browser_fill", target: "input.header-search-input", value: "test" }]
148
+ });
149
+ }
150
+ });
151
+ ```