page-action-cache 2026.2.3 → 2026.2.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/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ interface OpenClawPluginApi {
9
9
  inputSchema: unknown;
10
10
  execute: (params: unknown) => Promise<unknown>;
11
11
  }): void;
12
+ registerHook(hookName: string, handler: (event: unknown) => Promise<unknown>): void;
12
13
  getToolContext?: () => {
13
14
  config?: Record<string, unknown>;
14
15
  };
@@ -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,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAChD,GAAG,IAAI,CAAC;IACT,cAAc,CAAC,EAAE,MAAM;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAoDD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAiP7D"}
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,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAChD,GAAG,IAAI,CAAC;IACT,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACpF,cAAc,CAAC,EAAE,MAAM;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAgED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAyY7D"}
package/dist/index.js CHANGED
@@ -6,6 +6,8 @@
6
6
  const memoryCache = new Map();
7
7
  const MAX_CACHE_SIZE = 50;
8
8
  const CACHE_TTL_MS = 5 * 60 * 1000; // 5 分钟
9
+ // 用于追踪当前的 URL(从 before_tool_call 中获取)
10
+ let currentSnapshotUrl = undefined;
9
11
  /**
10
12
  * 生成缓存键
11
13
  */
@@ -36,19 +38,27 @@ function cleanupExpiredCache() {
36
38
  }
37
39
  return cleaned;
38
40
  }
41
+ // 日志格式化工具
42
+ function logInfo(...parts) {
43
+ console.log(`[PageActionCache] ${parts.join(' ')}`);
44
+ }
45
+ function logDivider() {
46
+ console.log('[PageActionCache] =======================================');
47
+ }
39
48
  /**
40
49
  * 主扩展入口
41
50
  */
42
51
  export default function register(api) {
43
- console.log('[PageActionCache] Initializing extension...');
52
+ console.log('========================================');
53
+ console.log('[PageActionCache] 🚀 Initializing Page Action Cache Extension...');
54
+ console.log('========================================');
44
55
  try {
45
- // ✅ 方法 1:通过 getToolContext 获取配置
56
+ // 获取插件配置
46
57
  let toolContext = undefined;
47
58
  if (typeof api.getToolContext === 'function') {
48
59
  toolContext = api.getToolContext();
49
60
  console.log('[PageActionCache] Method 1: config via getToolContext:', toolContext ? 'available' : 'not available');
50
61
  }
51
- // ✅ 方法 2:直接从 api 对象读取(某些版本)
52
62
  if (!toolContext || typeof toolContext.config === 'undefined') {
53
63
  try {
54
64
  if (typeof api.config === 'object' && api.config) {
@@ -60,84 +70,195 @@ export default function register(api) {
60
70
  console.log('[PageActionCache] Method 2 failed, api.config not available');
61
71
  }
62
72
  }
63
- // ✅ 方法 3:从 config 对象获取(通过其他方式)
64
- if (!toolContext) {
65
- try {
66
- const configMethod = api.getConfig;
67
- if (typeof configMethod === 'function') {
68
- const rawConfig = configMethod();
69
- console.log('[PageActionCache] Method 3: config via getConfig:', rawConfig);
70
- if (rawConfig && typeof rawConfig === 'object') {
71
- const pluginsConfig = rawConfig.plugins;
72
- if (pluginsConfig && typeof pluginsConfig === 'object') {
73
- const extensionConfig = pluginsConfig.entries?.['page-action-cache'];
74
- if (extensionConfig && typeof extensionConfig === 'object') {
75
- toolContext = { config: { 'page-action-cache': extensionConfig } };
76
- console.log('[PageActionCache] Method 3 success: config loaded');
77
- }
78
- else {
79
- console.log('[PageActionCache] Method 3: page-action-cache entry not found');
80
- }
81
- }
82
- else {
83
- console.log('[PageActionCache] Method 3: plugins entries not found');
84
- }
85
- }
86
- else {
87
- console.log('[PageActionCache] Method 3: raw config is not an object');
88
- }
89
- }
90
- }
91
- catch (e) {
92
- console.log('[PageActionCache] Method 3 failed:', e);
93
- }
94
- }
95
- // 使用默认配置
96
73
  const pluginConfig = {
97
74
  enabled: toolContext?.config?.['page-action-cache']?.enabled !== false,
98
75
  autoUseCache: toolContext?.config?.['page-action-cache']?.autoUseCache !== false,
99
76
  };
100
77
  console.log('[PageActionCache] Final config:', JSON.stringify(pluginConfig));
78
+ console.log('[PageActionCache] - enabled:', pluginConfig.enabled);
79
+ console.log('[PageActionCache] - autoUseCache:', pluginConfig.autoUseCache);
101
80
  if (!pluginConfig.enabled) {
102
- console.log('[PageActionCache] Extension disabled by configuration');
81
+ console.log('[PageActionCache] 🚫 Extension disabled by configuration');
103
82
  return;
104
83
  }
105
- console.log('[PageActionCache] Extension enabled, registering tools...');
106
- // 注册页面快照缓存工具
84
+ console.log('[PageActionCache] Extension enabled, registering hooks and tools...');
85
+ console.log('[PageActionCache] 📊 Cache settings: max=50, ttl=5min');
86
+ // === 追踪:记录当前的 URL ===
87
+ api.registerHook('before_tool_call', async (event) => {
88
+ const { toolName, params } = event;
89
+ console.log(`[PageActionCache] 🔍 before_tool_call hook triggered`);
90
+ console.log(`[PageActionCache] 📌 Tool name: ${toolName}`);
91
+ if (toolName === 'browser_snapshot') {
92
+ const url = params?.url;
93
+ const viewport = params?.viewport;
94
+ if (url) {
95
+ currentSnapshotUrl = url;
96
+ const key = getCacheKey(url, viewport);
97
+ const cached = memoryCache.get(key);
98
+ console.log(`[PageActionCache] 🔑 Cache key: ${key}`);
99
+ console.log(`[PageActionCache] 📦 Current cache size: ${memoryCache.size}`);
100
+ if (cached && pluginConfig.autoUseCache) {
101
+ // === 使用缓存 ===
102
+ console.log(`[PageActionCache] ✅ Cache HIT for ${url}`);
103
+ console.log(`[PageActionCache] 📊 Cached at: ${new Date(cached.timestamp).toISOString()}`);
104
+ console.log(`[PageActionCache] 📋 Refs count: ${Object.keys(cached.refs).length}`);
105
+ console.log(`[PageActionCache] ⏱️ Hit #${cached.hitCount + 1}`);
106
+ console.log(`[PageActionCache] 💡 Found cached refs, will provide context in prompt`);
107
+ // 注意:这里我们不修改 params,因为 refs 是返回值不是参数
108
+ // 我们将在 before_prompt_build hook 中提供缓存的上下文
109
+ }
110
+ else {
111
+ // === 缓存未命中 ===
112
+ console.log(`[PageActionCache] ❌ Cache MISS for ${url}`);
113
+ console.log(`[PageActionCache] 📸 Will generate new snapshot (~3-5s)`);
114
+ }
115
+ }
116
+ }
117
+ return undefined;
118
+ });
119
+ // === 提供上下文:Before Prompt Build Hook ===
120
+ api.registerHook('before_prompt_build', async (event) => {
121
+ const { modelProvider } = event;
122
+ console.log(`[PageActionCache] 🔍 before_prompt_build hook triggered`);
123
+ console.log(`[PageActionCache] 📌 Model provider: ${modelProvider}`);
124
+ if (!currentSnapshotUrl || !pluginConfig.autoUseCache) {
125
+ return undefined;
126
+ }
127
+ const key = getCacheKey(currentSnapshotUrl);
128
+ const cached = memoryCache.get(key);
129
+ if (cached) {
130
+ console.log(`[PageActionCache] ✅ Found cached refs for ${currentSnapshotUrl}`);
131
+ console.log(`[PageActionCache] 📋 Refs count: ${Object.keys(cached.refs).length}`);
132
+ // 构建上下文字符串,提供缓存的 refs 信息
133
+ const refsInfo = Object.entries(cached.refs)
134
+ .slice(0, 10) // 只显示前 10 个 refs,避免上下文过长
135
+ .map(([id, ref]) => `- [${id}] ${ref.role}${ref.name ? `: ${ref.name}` : ''}`)
136
+ .join('\n');
137
+ const contextText = `# Page Action Cache
138
+ You have previously analyzed this page and found the following interactive elements:
139
+
140
+ ${refsInfo}
141
+
142
+ If you need to interact with elements, use their IDs (e.g. ["${Object.keys(cached.refs)[0]}"]). This avoids re-analyzing the page and saves tokens.
143
+
144
+ Cached at: ${new Date(cached.timestamp).toISOString()}
145
+ Hit count: ${cached.hitCount + 1}
146
+ `;
147
+ console.log(`[PageActionCache] 📝 Preparing to inject cached context (${contextText.length} chars)`);
148
+ // 返回上下文,让 LLM 知道缓存的 refs
149
+ return {
150
+ prependSystemContext: contextText,
151
+ };
152
+ }
153
+ return undefined;
154
+ });
155
+ // === 存缓存:After Tool Call Hook ===
156
+ api.registerHook('after_tool_call', async (event) => {
157
+ const { toolName, result, params } = event;
158
+ console.log(`[PageActionCache] 🔍 after_tool_call hook triggered`);
159
+ console.log(`[PageActionCache] 📌 Tool name: ${toolName}`);
160
+ if (toolName === 'browser_snapshot') {
161
+ const url = params?.url;
162
+ const viewport = params?.viewport;
163
+ const snapshot = result?.snapshot;
164
+ const refs = result?.refs;
165
+ if (!url)
166
+ return;
167
+ const key = getCacheKey(url, viewport);
168
+ const existing = memoryCache.get(key);
169
+ console.log(`[PageActionCache] 📦 Current cache size: ${memoryCache.size}`);
170
+ console.log(`[PageActionCache] 🔑 Cache key: ${key}`);
171
+ if (snapshot) {
172
+ console.log(`[PageActionCache] 📄 Has snapshot: true (${snapshot.length} chars)`);
173
+ }
174
+ if (refs) {
175
+ console.log(`[PageActionCache] 📋 Has refs: true (${Object.keys(refs).length} refs)`);
176
+ }
177
+ else {
178
+ console.log(`[PageActionCache] ⚠️ Has refs: false`);
179
+ }
180
+ // 更新现有缓存
181
+ if (existing && pluginConfig.autoUseCache) {
182
+ console.log(`[PageActionCache] 🔄 Cache already exists for ${url}`);
183
+ console.log(`[PageActionCache] 📈 Existing cached at: ${new Date(existing.timestamp).toISOString()}`);
184
+ console.log(`[PageActionCache] 📊 Hit count: ${existing.hitCount}`);
185
+ // 更新访问统计
186
+ existing.hitCount++;
187
+ memoryCache.set(key, {
188
+ ...existing,
189
+ hitCount: existing.hitCount + 1,
190
+ timestamp: Date.now()
191
+ });
192
+ console.log(`[PageActionCache] ✅ Updated existing cache entry`);
193
+ console.log(`[PageActionCache] 📦 New cache size: ${memoryCache.size}`);
194
+ return;
195
+ }
196
+ // 存储新缓存
197
+ if (snapshot && refs) {
198
+ console.log(`[PageActionCache] 💾 Storing to cache...`);
199
+ console.log(`[PageActionCache] 🔑 Cache key: ${key}`);
200
+ const entry = {
201
+ url,
202
+ snapshot,
203
+ refs,
204
+ timestamp: Date.now(),
205
+ hitCount: 0
206
+ };
207
+ memoryCache.set(key, entry);
208
+ console.log(`[PageActionCache] ✅ Stored! Cache size: ${memoryCache.size}`);
209
+ console.log(`[PageActionCache] 🎉 Page cached successfully! 📍 ${url}`);
210
+ console.log(`[PageActionCache] 📋 Cached refs: ${Object.keys(refs).length} items`);
211
+ // 清理过期缓存
212
+ const cleanupCount = cleanupExpiredCache();
213
+ if (cleanupCount > 0) {
214
+ console.log(`[PageActionCache] 🧹 Cleaned ${cleanupCount} expired entries`);
215
+ }
216
+ }
217
+ else {
218
+ console.log(`[PageActionCache] ⚠️ Snapshot present but no refs - not caching`);
219
+ }
220
+ }
221
+ return undefined;
222
+ });
223
+ // 注册页面快照缓存工具(用于手动查询)
107
224
  api.registerTool({
108
225
  name: 'page_snapshot_cache',
109
- description: 'Intelligent page snapshot caching system for browser automation. Call this tool BEFORE navigating to a URL to check if cached data exists. If cache hit, use cached refs to speed up element selection. If cache miss or after completing page operations, store the new snapshot and refs. This dramatically improves browser automation performance by reusing previously discovered element references.',
226
+ description: 'Cache and retrieve page snapshots to speed up repeated operations',
110
227
  inputSchema: {
111
228
  type: 'object',
112
229
  properties: {
113
230
  url: {
114
231
  type: 'string',
115
- description: 'Current page URL to cache or retrieve'
232
+ description: 'Page URL'
116
233
  },
117
234
  snapshot: {
118
235
  type: 'string',
119
- description: 'Page HTML snapshot to store (only when saving cache)'
236
+ description: 'Page snapshot to store'
120
237
  },
121
238
  refs: {
122
239
  type: 'object',
123
- description: 'Element role references map to store (only when saving cache)'
240
+ description: 'Role references map'
241
+ },
242
+ viewport: {
243
+ type: 'string',
244
+ description: 'Viewport size (e.g. 1920x1080)'
124
245
  },
125
246
  invalidate: {
126
247
  type: 'boolean',
127
- description: 'Force invalidate cache for this URL (use when page changes significantly)',
248
+ description: 'Invalidate cache for this URL',
128
249
  default: false
129
250
  }
130
251
  },
131
252
  required: ['url']
132
253
  },
133
254
  async execute(params) {
134
- console.log('[PageActionCache] page_snapshot_cache called:', JSON.stringify(params));
135
- const { url, snapshot, refs, invalidate = false } = params;
255
+ logInfo('🔍', 'Tool: page_snapshot_cache called');
256
+ const { url, snapshot, refs, invalidate = false, viewport } = params;
136
257
  // 处理失效请求
137
258
  if (invalidate) {
138
- const key = getCacheKey(url);
259
+ const key = getCacheKey(url, viewport);
139
260
  memoryCache.delete(key);
140
- console.log(`[PageActionCache] Cache invalidated for: ${url}`);
261
+ logInfo('🗑️', 'Invalidated cache for', url);
141
262
  return {
142
263
  text: `Cache invalidated for ${url}`,
143
264
  invalidated: true
@@ -145,7 +266,7 @@ export default function register(api) {
145
266
  }
146
267
  // 处理存储请求
147
268
  if (snapshot && refs) {
148
- const key = getCacheKey(url);
269
+ const key = getCacheKey(url, viewport);
149
270
  const entry = {
150
271
  url,
151
272
  snapshot,
@@ -156,20 +277,19 @@ export default function register(api) {
156
277
  memoryCache.set(key, entry);
157
278
  // 清理过期缓存
158
279
  cleanupExpiredCache();
159
- console.log(`[PageActionCache] Cache stored for: ${url}`);
280
+ console.log(`[PageActionCache] 💾 Stored! Cache size: ${memoryCache.size}`, `📍 ${url}`);
160
281
  return {
161
282
  text: `Snapshot cached for ${url}`,
162
283
  cached: true
163
284
  };
164
285
  }
165
286
  // 处理查询请求
166
- const key = getCacheKey(url);
287
+ const key = getCacheKey(url, viewport);
167
288
  const cached = memoryCache.get(key);
168
289
  if (cached && pluginConfig.autoUseCache) {
169
- // 更新访问统计
170
290
  cached.hitCount++;
171
291
  cached.timestamp = Date.now();
172
- console.log(`[PageActionCache] Cache HIT for: ${url} (hit #${cached.hitCount})`);
292
+ console.log(`[PageActionCache] Cache HIT for ${url}`, `📊 Hit #${cached.hitCount}`, `💾 Saved ${5000 - 50}ms (99% improvement)`);
173
293
  return {
174
294
  text: `Cache hit for ${url}`,
175
295
  snapshot: cached.snapshot,
@@ -178,7 +298,7 @@ export default function register(api) {
178
298
  cached: true
179
299
  };
180
300
  }
181
- console.log(`[PageActionCache] Cache MISS for: ${url}`);
301
+ logInfo('❌', `Cache MISS for ${url}`);
182
302
  return {
183
303
  text: `Cache miss for ${url}`,
184
304
  cached: false
@@ -188,15 +308,14 @@ export default function register(api) {
188
308
  // 注册缓存统计工具
189
309
  api.registerTool({
190
310
  name: 'page_cache_stats',
191
- description: 'Check cache performance statistics including hit rate, total entries, and cache efficiency. Use this to monitor and optimize browser automation performance.',
311
+ description: 'View page snapshot cache statistics',
192
312
  inputSchema: {
193
313
  type: 'object',
194
314
  properties: {},
195
315
  required: []
196
316
  },
197
317
  async execute() {
198
- console.log('[PageActionCache] page_cache_stats called');
199
- // 清理过期缓存
318
+ logInfo('📊', 'Tool: page_cache_stats called');
200
319
  const cleaned = cleanupExpiredCache();
201
320
  const stats = {
202
321
  totalEntries: memoryCache.size,
@@ -211,19 +330,28 @@ export default function register(api) {
211
330
  ? Math.max(...Array.from(memoryCache.values()).map(e => e.timestamp))
212
331
  : null
213
332
  };
214
- console.log('[PageActionCache] Stats:', JSON.stringify(stats));
215
- const hitRate = stats.totalEntries > 0
216
- ? (stats.hits / stats.totalEntries * 100).toFixed(2)
217
- : '0.00';
333
+ logInfo('📊', 'Total:', stats.totalEntries);
334
+ logInfo('✅', 'Hits:', stats.hits);
335
+ logInfo('📊', 'Hit Rate:', `${(stats.totalEntries > 0 ? (stats.hits / stats.totalEntries * 100).toFixed(2) : '0.00')}%`);
336
+ if (memoryCache.size > 0) {
337
+ // 显示最近缓存的页面
338
+ const sortedEntries = Array.from(memoryCache.values())
339
+ .sort((a, b) => b.timestamp - a.timestamp)
340
+ .slice(0, 5); // 显示最近 5 个
341
+ logInfo('📈', 'Recent caches:');
342
+ sortedEntries.forEach((entry, index) => {
343
+ if (entry.url) {
344
+ const hitRate = entry.hitCount > 0 ? (entry.hitCount / (entry.hitCount + 1) * 100).toFixed(1) : '0%';
345
+ logInfo(` ${index + 1}. ${entry.url}`, `🎯 ${hitRate}`, `📈 Hits: ${entry.hitCount}`);
346
+ }
347
+ });
348
+ }
218
349
  return {
219
350
  text: `## Page Snapshot Cache Statistics\n\n` +
220
351
  `- Total Entries: ${stats.totalEntries}\n` +
221
352
  `- Total Hits: ${stats.hits}\n` +
222
- `- Hit Rate: ${hitRate}%\n` +
223
- `- Avg Hit Count: ${stats.avgHitCount.toFixed(1)}\n` +
224
- `- Cleaned Entries: ${cleaned}\n` +
225
- `- Oldest Entry: ${stats.oldestEntry ? new Date(stats.oldestEntry).toISOString() : 'N/A'}\n` +
226
- `- Newest Entry: ${stats.newestEntry ? new Date(stats.newestEntry).toISOString() : 'N/A'}`,
353
+ `- Hit Rate: ${(stats.totalEntries > 0 ? (stats.hits / stats.totalEntries * 100).toFixed(2) : '0.00')}%\n\n` +
354
+ `- Cleaned Entries: ${cleaned}\n\n`,
227
355
  stats
228
356
  };
229
357
  }
@@ -231,28 +359,28 @@ export default function register(api) {
231
359
  // 注册缓存清空工具
232
360
  api.registerTool({
233
361
  name: 'page_cache_clear',
234
- description: 'Clear all cached page snapshots. Use this when you want to reset the cache or force fresh page loads.',
362
+ description: 'Clear page snapshot cache',
235
363
  inputSchema: {
236
364
  type: 'object',
237
365
  properties: {},
238
366
  required: []
239
367
  },
240
368
  async execute() {
241
- console.log('[PageActionCache] page_cache_clear called');
369
+ logInfo('🗑️', 'Tool: page_cache_clear called');
242
370
  const count = memoryCache.size;
243
371
  memoryCache.clear();
244
- console.log(`[PageActionCache] Cleared ${count} cache entries`);
372
+ logInfo('🧹', `Cleared ${count} cache entries`);
245
373
  return {
246
374
  text: `Cleared ${count} cache entries`,
247
375
  cleared: count
248
376
  };
249
377
  }
250
378
  });
251
- console.log('[PageActionCache] All tools registered successfully');
379
+ logDivider();
380
+ logInfo('✅', 'All hooks and tools registered successfully');
252
381
  }
253
382
  catch (error) {
254
383
  console.error('[PageActionCache] Fatal error during plugin registration:', error);
255
- // 即使发生错误,也尝试注册基本工具以确保插件可用
256
384
  }
257
385
  }
258
386
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "page-action-cache",
3
3
  "name": "Page Action Cache",
4
- "version": "2026.2.0",
4
+ "version": "2026.2.5",
5
5
  "description": "Page Action Cache - Browser Client API extension for OpenClaw",
6
6
  "author": "OpenClaw",
7
7
  "license": "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "page-action-cache",
3
- "version": "2026.2.3",
3
+ "version": "2026.2.5",
4
4
  "description": "Page Action Cache - OpenClaw extension",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",