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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +199 -71
- package/dist/index.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
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
|
};
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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('
|
|
52
|
+
console.log('========================================');
|
|
53
|
+
console.log('[PageActionCache] 🚀 Initializing Page Action Cache Extension...');
|
|
54
|
+
console.log('========================================');
|
|
44
55
|
try {
|
|
45
|
-
//
|
|
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: '
|
|
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: '
|
|
232
|
+
description: 'Page URL'
|
|
116
233
|
},
|
|
117
234
|
snapshot: {
|
|
118
235
|
type: 'string',
|
|
119
|
-
description: 'Page
|
|
236
|
+
description: 'Page snapshot to store'
|
|
120
237
|
},
|
|
121
238
|
refs: {
|
|
122
239
|
type: 'object',
|
|
123
|
-
description: '
|
|
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: '
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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: '
|
|
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
|
-
|
|
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
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
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: ${
|
|
223
|
-
`-
|
|
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
|
|
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
|
-
|
|
369
|
+
logInfo('🗑️', 'Tool: page_cache_clear called');
|
|
242
370
|
const count = memoryCache.size;
|
|
243
371
|
memoryCache.clear();
|
|
244
|
-
|
|
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
|
-
|
|
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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"}
|
package/openclaw.plugin.json
CHANGED