page-action-cache 2026.3.7 → 2026.4.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,UAAU,iBAAiB;IACzB,YAAY,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACpE,GAAG,IAAI,CAAC;CACV;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAqB7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,UAAU,iBAAiB;IACzB,YAAY,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACpE,GAAG,IAAI,CAAC;CACV;AAyDD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CA0O7D"}
package/dist/index.js CHANGED
@@ -2,12 +2,51 @@
2
2
  * Page Action Cache - OpenClaw Extension
3
3
  * 页面操作缓存扩展
4
4
  */
5
+ // 内存缓存(页面会话级别)
6
+ const memoryCache = new Map();
7
+ const MAX_CACHE_SIZE = 50;
8
+ const CACHE_TTL_MS = 5 * 60 * 1000; // 5 分钟
9
+ /**
10
+ * 生成缓存键
11
+ */
12
+ function getCacheKey(profile, targetId, url) {
13
+ const parts = [];
14
+ if (profile)
15
+ parts.push(profile);
16
+ if (targetId)
17
+ parts.push(targetId);
18
+ if (url)
19
+ parts.push(url);
20
+ return parts.join(':');
21
+ }
22
+ /**
23
+ * 清理过期缓存
24
+ */
25
+ function cleanupExpiredCache() {
26
+ const now = Date.now();
27
+ let cleaned = 0;
28
+ for (const [key, entry] of memoryCache.entries()) {
29
+ if (now - entry.timestamp > CACHE_TTL_MS) {
30
+ memoryCache.delete(key);
31
+ cleaned++;
32
+ }
33
+ }
34
+ // LRU 清理
35
+ while (memoryCache.size > MAX_CACHE_SIZE) {
36
+ const oldestKey = memoryCache.keys().next().value;
37
+ if (oldestKey) {
38
+ memoryCache.delete(oldestKey);
39
+ cleaned++;
40
+ }
41
+ }
42
+ return cleaned;
43
+ }
5
44
  /**
6
45
  * 主扩展入口
7
46
  */
8
47
  export default function register(api) {
9
48
  console.log('[PageActionCache] Starting...');
10
- // 注册缓存统计工具 - 使用正确的格式
49
+ // 注册缓存统计工具
11
50
  api.registerTool({
12
51
  name: 'page_cache_stats',
13
52
  label: 'Page Cache Stats',
@@ -18,8 +57,185 @@ export default function register(api) {
18
57
  required: []
19
58
  },
20
59
  execute: async (_toolCallId, _params) => {
60
+ cleanupExpiredCache();
61
+ const entries = Array.from(memoryCache.values());
62
+ const profiles = new Set(entries.filter(e => e.profile).map(e => e.profile));
63
+ const urls = new Set(entries.map(e => e.url));
64
+ const stats = {
65
+ totalEntries: memoryCache.size,
66
+ uniqueProfiles: profiles.size,
67
+ uniqueUrls: urls.size,
68
+ hits: entries.reduce((sum, e) => sum + e.hitCount, 0),
69
+ avgHitCount: memoryCache.size > 0
70
+ ? entries.reduce((sum, e) => sum + e.hitCount, 0) / memoryCache.size
71
+ : 0,
72
+ oldestEntry: memoryCache.size > 0
73
+ ? Math.min(...entries.map(e => e.timestamp))
74
+ : null,
75
+ newestEntry: memoryCache.size > 0
76
+ ? Math.max(...entries.map(e => e.timestamp))
77
+ : null
78
+ };
79
+ console.log('[PageActionCache] Stats:', JSON.stringify(stats));
80
+ let report = `## Page Snapshot Cache Statistics\n\n`;
81
+ report += `- Total Entries: ${stats.totalEntries}\n`;
82
+ report += `- Unique Profiles: ${stats.uniqueProfiles}\n`;
83
+ report += `- Unique URLs: ${stats.uniqueUrls}\n`;
84
+ report += `- Total Hits: ${stats.hits}\n`;
85
+ report += `- Avg Hits per Entry: ${stats.avgHitCount.toFixed(2)}\n`;
86
+ report += `- Hit Rate: ${(stats.totalEntries > 0 ? (stats.hits / stats.totalEntries * 100).toFixed(2) : '0.00')}%\n`;
87
+ if (profiles.size > 0) {
88
+ report += `\n**Profiles:** ${Array.from(profiles).join(', ')}\n`;
89
+ }
90
+ return {
91
+ text: report,
92
+ stats
93
+ };
94
+ }
95
+ });
96
+ // 注册缓存清空工具
97
+ api.registerTool({
98
+ name: 'page_cache_clear',
99
+ label: 'Clear Page Cache',
100
+ description: 'Clear page snapshot cache',
101
+ parameters: {
102
+ type: 'object',
103
+ properties: {},
104
+ required: []
105
+ },
106
+ execute: async (_toolCallId, _params) => {
107
+ const count = memoryCache.size;
108
+ memoryCache.clear();
109
+ console.log('[PageActionCache] Cleared', count);
110
+ return {
111
+ text: `Cleared ${count} cache entries`,
112
+ cleared: count
113
+ };
114
+ }
115
+ });
116
+ // 注册手动设置缓存工具
117
+ api.registerTool({
118
+ name: 'page_cache_set',
119
+ label: 'Set Page Cache Entry',
120
+ description: 'Manually add an entry to the page cache',
121
+ parameters: {
122
+ type: 'object',
123
+ properties: {
124
+ url: {
125
+ type: 'string',
126
+ description: 'Page URL'
127
+ },
128
+ targetId: {
129
+ type: 'string',
130
+ description: 'Browser tab target ID'
131
+ },
132
+ profile: {
133
+ type: 'string',
134
+ description: 'Browser profile name'
135
+ },
136
+ refs: {
137
+ type: 'string',
138
+ description: 'Refs type (role or aria)'
139
+ }
140
+ },
141
+ required: ['url', 'targetId']
142
+ },
143
+ execute: async (_toolCallId, params) => {
144
+ const typedParams = params;
145
+ const cacheKey = getCacheKey(typedParams.profile, typedParams.targetId, typedParams.url);
146
+ const existingEntry = memoryCache.get(cacheKey);
147
+ const entry = {
148
+ url: typedParams.url,
149
+ targetId: typedParams.targetId,
150
+ profile: typedParams.profile,
151
+ refs: typedParams.refs,
152
+ timestamp: Date.now(),
153
+ hitCount: existingEntry?.hitCount || 0
154
+ };
155
+ // Refresh insertion order for LRU
156
+ if (existingEntry) {
157
+ memoryCache.delete(cacheKey);
158
+ }
159
+ memoryCache.set(cacheKey, entry);
160
+ // Cleanup if over limit
161
+ if (memoryCache.size > MAX_CACHE_SIZE) {
162
+ const oldestKey = memoryCache.keys().next().value;
163
+ if (oldestKey) {
164
+ memoryCache.delete(oldestKey);
165
+ }
166
+ }
167
+ console.log('[PageActionCache] Set cache:', cacheKey, 'refs:', typedParams.refs);
168
+ return {
169
+ text: `Added cache entry for ${typedParams.url}`,
170
+ cacheKey,
171
+ entry
172
+ };
173
+ }
174
+ });
175
+ // 注册获取缓存工具
176
+ api.registerTool({
177
+ name: 'page_cache_get',
178
+ label: 'Get Page Cache Entry',
179
+ description: 'Get a specific cache entry by URL or targetId',
180
+ parameters: {
181
+ type: 'object',
182
+ properties: {
183
+ url: {
184
+ type: 'string',
185
+ description: 'Page URL (optional if targetId is provided)'
186
+ },
187
+ targetId: {
188
+ type: 'string',
189
+ description: 'Browser tab target ID (optional if URL is provided)'
190
+ },
191
+ profile: {
192
+ type: 'string',
193
+ description: 'Browser profile name (optional)'
194
+ }
195
+ },
196
+ required: []
197
+ },
198
+ execute: async (_toolCallId, params) => {
199
+ const typedParams = params;
200
+ if (!typedParams.url && !typedParams.targetId) {
201
+ return {
202
+ text: 'Error: Either url or targetId must be provided',
203
+ error: 'MISSING_PARAMETER'
204
+ };
205
+ }
206
+ // Generate cache key to search
207
+ const cacheKey = getCacheKey(typedParams.profile, typedParams.targetId, typedParams.url);
208
+ const entry = memoryCache.get(cacheKey);
209
+ if (!entry) {
210
+ // Try to find by partial match
211
+ const matchingEntries = Array.from(memoryCache.values()).filter(e => (typedParams.url && e.url === typedParams.url) ||
212
+ (typedParams.targetId && e.targetId === typedParams.targetId));
213
+ if (matchingEntries.length === 0) {
214
+ return {
215
+ text: `No cache entry found for the provided parameters`,
216
+ found: false
217
+ };
218
+ }
219
+ return {
220
+ text: `Found ${matchingEntries.length} matching cache entries`,
221
+ found: true,
222
+ entries: matchingEntries
223
+ };
224
+ }
225
+ // Increment hit count and refresh LRU
226
+ entry.hitCount++;
227
+ memoryCache.delete(cacheKey);
228
+ memoryCache.set(cacheKey, entry);
229
+ console.log('[PageActionCache] Cache hit:', cacheKey, 'hit count:', entry.hitCount);
21
230
  return {
22
- text: '## Page Snapshot Cache Statistics\n\nNo cache entries yet.'
231
+ text: `Cache entry found for ${entry.url}\n` +
232
+ `- Target ID: ${entry.targetId}\n` +
233
+ `- Profile: ${entry.profile || 'default'}\n` +
234
+ `- Refs: ${entry.refs || 'none'}\n` +
235
+ `- Hits: ${entry.hitCount}\n` +
236
+ `- Age: ${Math.floor((Date.now() - entry.timestamp) / 1000)}s`,
237
+ found: true,
238
+ entry
23
239
  };
24
240
  }
25
241
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAsB;IACrD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,qBAAqB;IACrB,GAAG,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,qCAAqC;QAClD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;QACD,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,OAAgB,EAAE,EAAE;YACvD,OAAO;gBACL,IAAI,EAAE,4DAA4D;aACxD,CAAC;QACf,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "page-action-cache",
3
- "version": "2026.3.7",
3
+ "version": "2026.4.0",
4
4
  "description": "Page Action Cache - OpenClaw extension",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",