openclaw-multi-auto 1.5.2 → 1.5.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 (185) hide show
  1. package/dist/{audio-preflight-5FEeDooz.js → audio-preflight-DDBLZBdb.js} +4 -4
  2. package/dist/{audio-transcription-runner-B-UvoDjZ.js → audio-transcription-runner-DZbSWT9E.js} +1 -1
  3. package/dist/build-info.json +3 -3
  4. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  5. package/dist/{chrome-D45SyhQL.js → chrome-CMU2WVFh.js} +8 -8
  6. package/dist/{deliver-B9cys0EZ.js → deliver-BXVcFIHL.js} +1 -1
  7. package/dist/{deliver-runtime-DhaQJ0pI.js → deliver-runtime-DTaIS-1i.js} +3 -3
  8. package/dist/{deps-send-whatsapp.runtime-DvTL2tzN.js → deps-send-whatsapp.runtime-CIZqFAqb.js} +7 -7
  9. package/dist/extensionAPI.js +6 -6
  10. package/dist/{image-DAOPwVXi.js → image-BCVLo0qw.js} +1 -1
  11. package/dist/{image-runtime-wlCLVvVv.js → image-runtime-DtCKpMPZ.js} +3 -3
  12. package/dist/{pi-embedded-DYU79yGe.js → pi-embedded-CgQ_W6Xs.js} +24 -24
  13. package/dist/{pi-embedded-helpers-uTRAmQ4n.js → pi-embedded-helpers-CwuBTKza.js} +3 -3
  14. package/dist/plugin-sdk/accounts-CJWOBzwB.js +35 -0
  15. package/dist/plugin-sdk/accounts-DP1-L-QS.js +288 -0
  16. package/dist/plugin-sdk/accounts-DZhWlEg3.js +46 -0
  17. package/dist/plugin-sdk/active-listener-B_sLJTXM.js +50 -0
  18. package/dist/plugin-sdk/api-key-rotation-BRE4X2tf.js +181 -0
  19. package/dist/plugin-sdk/audio-preflight-DGEUDxxR.js +69 -0
  20. package/dist/plugin-sdk/audio-transcription-runner-DkoPNPYt.js +2176 -0
  21. package/dist/plugin-sdk/audit-membership-runtime-DSBHHw7o.js +58 -0
  22. package/dist/plugin-sdk/bluebubbles.js +2 -2
  23. package/dist/plugin-sdk/channel-activity-F3d0yUwy.js +94 -0
  24. package/dist/plugin-sdk/channel-web-QF7EpjeP.js +2256 -0
  25. package/dist/plugin-sdk/chrome-BXoCyCkY.js +2415 -0
  26. package/dist/plugin-sdk/commands-registry-t7cXBTfN.js +1125 -0
  27. package/dist/plugin-sdk/config-BkEnz2Po.js +17913 -0
  28. package/dist/plugin-sdk/deliver-B6AG_l67.js +1694 -0
  29. package/dist/plugin-sdk/deliver-runtime-D585kJZc.js +32 -0
  30. package/dist/plugin-sdk/deps-send-discord.runtime-a_OKY2js.js +23 -0
  31. package/dist/plugin-sdk/deps-send-imessage.runtime-Baxy9TD4.js +22 -0
  32. package/dist/plugin-sdk/deps-send-signal.runtime-BwXoCrFl.js +21 -0
  33. package/dist/plugin-sdk/deps-send-slack.runtime-CLmKjgso.js +19 -0
  34. package/dist/plugin-sdk/deps-send-telegram.runtime-BKfdBKnZ.js +24 -0
  35. package/dist/plugin-sdk/deps-send-whatsapp.runtime-BOTwkbx_.js +57 -0
  36. package/dist/plugin-sdk/diagnostic-CsP-lEkI.js +319 -0
  37. package/dist/plugin-sdk/errors-DaiAM-yU.js +54 -0
  38. package/dist/plugin-sdk/fetch-guard-DETCcJzQ.js +156 -0
  39. package/dist/plugin-sdk/fs-safe-B8y811FR.js +352 -0
  40. package/dist/plugin-sdk/image-DjTEkYZE.js +2310 -0
  41. package/dist/plugin-sdk/image-ops-BSiMpAw4.js +584 -0
  42. package/dist/plugin-sdk/image-runtime-6xPp8m5a.js +25 -0
  43. package/dist/plugin-sdk/index.js +50 -50
  44. package/dist/plugin-sdk/ir-DQ7_HbvK.js +1296 -0
  45. package/dist/plugin-sdk/irc.js +2 -2
  46. package/dist/plugin-sdk/local-roots-BUP4YBmR.js +186 -0
  47. package/dist/plugin-sdk/logger-CZY9KIoY.js +1163 -0
  48. package/dist/plugin-sdk/login-BxEKLlCo.js +57 -0
  49. package/dist/plugin-sdk/login-qr-BQIpMPr9.js +320 -0
  50. package/dist/plugin-sdk/manager-I6KbPihW.js +3917 -0
  51. package/dist/plugin-sdk/manager-runtime-CFfYYWIQ.js +15 -0
  52. package/dist/plugin-sdk/outbound-NS6UHnB6.js +212 -0
  53. package/dist/plugin-sdk/outbound-attachment-Dy6fyf6H.js +19 -0
  54. package/dist/plugin-sdk/path-alias-guards-DBjLbIX_.js +43 -0
  55. package/dist/plugin-sdk/paths-vTM3Lh3X.js +166 -0
  56. package/dist/plugin-sdk/pi-embedded-helpers-1R1gu7eX.js +9627 -0
  57. package/dist/plugin-sdk/pi-model-discovery-runtime-Do9o-dUd.js +8 -0
  58. package/dist/plugin-sdk/pi-model-discovery-v-XPUOOf.js +134 -0
  59. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-D4sFsIks.js +354 -0
  60. package/dist/plugin-sdk/plugins-DeBZB9l_.js +864 -0
  61. package/dist/plugin-sdk/proxy-fetch-ChxOhWF4.js +38 -0
  62. package/dist/plugin-sdk/pw-ai-DEOmCSSC.js +1938 -0
  63. package/dist/plugin-sdk/qmd-manager-HyYKoEch.js +1448 -0
  64. package/dist/plugin-sdk/query-expansion-CeyKUeDW.js +1011 -0
  65. package/dist/plugin-sdk/redact-DjVX-1N3.js +319 -0
  66. package/dist/plugin-sdk/reply-DAo_Jt8K.js +97916 -0
  67. package/dist/plugin-sdk/resolve-outbound-target-B42qgQS9.js +40 -0
  68. package/dist/plugin-sdk/run-with-concurrency-Bt_ks0Qa.js +1994 -0
  69. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-B6W989eF.js +10 -0
  70. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-c_GDFy37.js +19 -0
  71. package/dist/plugin-sdk/send-CQpMudwO.js +2587 -0
  72. package/dist/plugin-sdk/send-DQHLzVyO.js +414 -0
  73. package/dist/plugin-sdk/send-DTB24bEF.js +3135 -0
  74. package/dist/plugin-sdk/send-DfHadjZ_.js +503 -0
  75. package/dist/plugin-sdk/send-XXlW2iny.js +540 -0
  76. package/dist/plugin-sdk/session-6TF6MyaC.js +169 -0
  77. package/dist/plugin-sdk/skill-commands-CkGeFUMl.js +342 -0
  78. package/dist/plugin-sdk/skills-CBkHBYPq.js +1428 -0
  79. package/dist/plugin-sdk/slash-commands.runtime-CxliuGaP.js +13 -0
  80. package/dist/plugin-sdk/slash-dispatch.runtime-DFaeYlJQ.js +52 -0
  81. package/dist/plugin-sdk/slash-skill-commands.runtime-0M0OLCxq.js +16 -0
  82. package/dist/plugin-sdk/ssrf-cFtplYtS.js +202 -0
  83. package/dist/plugin-sdk/store-5nyxY3WU.js +81 -0
  84. package/dist/plugin-sdk/subagent-registry-runtime-DCtmDwna.js +52 -0
  85. package/dist/plugin-sdk/tables-C47P4GTN.js +55 -0
  86. package/dist/plugin-sdk/target-errors-Blia4S69.js +195 -0
  87. package/dist/plugin-sdk/thinking-Bo2eosVa.js +1206 -0
  88. package/dist/plugin-sdk/tokens-DgNRBwIg.js +52 -0
  89. package/dist/plugin-sdk/tool-images-Gk_-0y2N.js +274 -0
  90. package/dist/plugin-sdk/web-CVxZbXyH.js +56 -0
  91. package/dist/plugin-sdk/whatsapp-actions-Bw0H9g-n.js +80 -0
  92. package/dist/{pw-ai-GcYO6HPE.js → pw-ai-CmphSzHx.js} +1 -1
  93. package/dist/{slash-dispatch.runtime-Dh053pQK.js → slash-dispatch.runtime-131yup2e.js} +6 -6
  94. package/dist/{subagent-registry-runtime-DSi5mnCQ.js → subagent-registry-runtime-DbSf_Je6.js} +6 -6
  95. package/dist/{web-1hWJDzNA.js → web-MR9d7KyB.js} +6 -6
  96. package/package.json +1 -1
  97. package/scripts/create-instance.sh +1 -37
  98. package/scripts/npm_publish.sh +0 -65
  99. package/scripts/npm_publish_backup.sh +185 -0
  100. package/extensions/page-action-cache/dist/actions-executor.d.ts +0 -62
  101. package/extensions/page-action-cache/dist/actions-executor.d.ts.map +0 -1
  102. package/extensions/page-action-cache/dist/actions-executor.js +0 -339
  103. package/extensions/page-action-cache/dist/actions-executor.js.map +0 -1
  104. package/extensions/page-action-cache/dist/cache-invalidator.d.ts +0 -70
  105. package/extensions/page-action-cache/dist/cache-invalidator.d.ts.map +0 -1
  106. package/extensions/page-action-cache/dist/cache-invalidator.js +0 -212
  107. package/extensions/page-action-cache/dist/cache-invalidator.js.map +0 -1
  108. package/extensions/page-action-cache/dist/cache-store.d.ts +0 -80
  109. package/extensions/page-action-cache/dist/cache-store.d.ts.map +0 -1
  110. package/extensions/page-action-cache/dist/cache-store.js +0 -361
  111. package/extensions/page-action-cache/dist/cache-store.js.map +0 -1
  112. package/extensions/page-action-cache/dist/cache-strategy.d.ts +0 -65
  113. package/extensions/page-action-cache/dist/cache-strategy.d.ts.map +0 -1
  114. package/extensions/page-action-cache/dist/cache-strategy.js +0 -237
  115. package/extensions/page-action-cache/dist/cache-strategy.js.map +0 -1
  116. package/extensions/page-action-cache/dist/hooks-entry.d.ts +0 -29
  117. package/extensions/page-action-cache/dist/hooks-entry.d.ts.map +0 -1
  118. package/extensions/page-action-cache/dist/hooks-entry.js +0 -83
  119. package/extensions/page-action-cache/dist/hooks-entry.js.map +0 -1
  120. package/extensions/page-action-cache/dist/hooks.d.ts +0 -10
  121. package/extensions/page-action-cache/dist/hooks.d.ts.map +0 -1
  122. package/extensions/page-action-cache/dist/hooks.js +0 -277
  123. package/extensions/page-action-cache/dist/hooks.js.map +0 -1
  124. package/extensions/page-action-cache/dist/index.d.ts +0 -24
  125. package/extensions/page-action-cache/dist/index.d.ts.map +0 -1
  126. package/extensions/page-action-cache/dist/index.js +0 -34
  127. package/extensions/page-action-cache/dist/index.js.map +0 -1
  128. package/extensions/page-action-cache/dist/scenario-recognizer.d.ts +0 -45
  129. package/extensions/page-action-cache/dist/scenario-recognizer.d.ts.map +0 -1
  130. package/extensions/page-action-cache/dist/scenario-recognizer.js +0 -213
  131. package/extensions/page-action-cache/dist/scenario-recognizer.js.map +0 -1
  132. package/extensions/page-action-cache/dist/security-policy.d.ts +0 -62
  133. package/extensions/page-action-cache/dist/security-policy.d.ts.map +0 -1
  134. package/extensions/page-action-cache/dist/security-policy.js +0 -219
  135. package/extensions/page-action-cache/dist/security-policy.js.map +0 -1
  136. package/extensions/page-action-cache/dist/tools.d.ts +0 -209
  137. package/extensions/page-action-cache/dist/tools.d.ts.map +0 -1
  138. package/extensions/page-action-cache/dist/tools.js +0 -383
  139. package/extensions/page-action-cache/dist/tools.js.map +0 -1
  140. package/extensions/page-action-cache/dist/types.d.ts +0 -336
  141. package/extensions/page-action-cache/dist/types.d.ts.map +0 -1
  142. package/extensions/page-action-cache/dist/types.js +0 -8
  143. package/extensions/page-action-cache/dist/types.js.map +0 -1
  144. package/extensions/page-action-cache/dist/ux-enhancer.d.ts +0 -60
  145. package/extensions/page-action-cache/dist/ux-enhancer.d.ts.map +0 -1
  146. package/extensions/page-action-cache/dist/ux-enhancer.js +0 -218
  147. package/extensions/page-action-cache/dist/ux-enhancer.js.map +0 -1
  148. package/extensions/page-action-cache/dist/variable-resolver.d.ts +0 -28
  149. package/extensions/page-action-cache/dist/variable-resolver.d.ts.map +0 -1
  150. package/extensions/page-action-cache/dist/variable-resolver.js +0 -201
  151. package/extensions/page-action-cache/dist/variable-resolver.js.map +0 -1
  152. package/extensions/page-action-cache/docs/API.md +0 -555
  153. package/extensions/page-action-cache/docs/IMPLEMENTATION.md +0 -1792
  154. package/extensions/page-action-cache/docs/INTEGRATION.md +0 -387
  155. package/extensions/page-action-cache/docs/README.md +0 -183
  156. package/extensions/page-action-cache/index.ts +0 -118
  157. package/extensions/page-action-cache/node_modules/.bin/nlc +0 -21
  158. package/extensions/page-action-cache/node_modules/.bin/node-llama-cpp +0 -21
  159. package/extensions/page-action-cache/node_modules/.bin/openclaw +0 -21
  160. package/extensions/page-action-cache/node_modules/.bin/tsc +0 -21
  161. package/extensions/page-action-cache/node_modules/.bin/tsserver +0 -21
  162. package/extensions/page-action-cache/node_modules/.bin/vitest +0 -21
  163. package/extensions/page-action-cache/openclaw.plugin.json +0 -208
  164. package/extensions/page-action-cache/package.json +0 -74
  165. package/extensions/page-action-cache/scripts/npm_publish.sh +0 -80
  166. package/extensions/page-action-cache/skills/page-action-cache/SKILL.md +0 -216
  167. package/extensions/page-action-cache/src/actions-executor.ts +0 -441
  168. package/extensions/page-action-cache/src/cache-invalidator.ts +0 -271
  169. package/extensions/page-action-cache/src/cache-store.ts +0 -457
  170. package/extensions/page-action-cache/src/cache-strategy.ts +0 -327
  171. package/extensions/page-action-cache/src/hooks-entry.ts +0 -114
  172. package/extensions/page-action-cache/src/hooks.ts +0 -332
  173. package/extensions/page-action-cache/src/index.ts +0 -89
  174. package/extensions/page-action-cache/src/scenario-recognizer.ts +0 -259
  175. package/extensions/page-action-cache/src/security-policy.ts +0 -268
  176. package/extensions/page-action-cache/src/tools.ts +0 -437
  177. package/extensions/page-action-cache/src/types.ts +0 -482
  178. package/extensions/page-action-cache/src/ux-enhancer.ts +0 -266
  179. package/extensions/page-action-cache/src/variable-resolver.ts +0 -258
  180. package/extensions/page-action-cache/tests/actions-executor.test.ts +0 -424
  181. package/extensions/page-action-cache/tests/cache-store.test.ts +0 -267
  182. package/extensions/page-action-cache/tests/integration-test.ts +0 -62
  183. package/extensions/page-action-cache/tests/scenario-recognizer.test.ts +0 -140
  184. package/extensions/page-action-cache/tests/variable-resolver.test.ts +0 -187
  185. package/extensions/page-action-cache/tsconfig.json +0 -39
@@ -1,209 +0,0 @@
1
- /**
2
- * Custom Tools
3
- * 自定义工具 - 提供给 LLM 使用的工具接口
4
- */
5
- /**
6
- * execute_cached 工具 - 执行缓存的页面操作序列
7
- */
8
- export declare function createExecuteCachedTool(): {
9
- name: string;
10
- label: string;
11
- description: string;
12
- parameters: {
13
- type: string;
14
- properties: {
15
- cacheKey: {
16
- type: string;
17
- description: string;
18
- };
19
- fromIndex: {
20
- type: string;
21
- description: string;
22
- };
23
- toIndex: {
24
- type: string;
25
- description: string;
26
- };
27
- dryRun: {
28
- type: string;
29
- description: string;
30
- };
31
- force: {
32
- type: string;
33
- description: string;
34
- };
35
- };
36
- };
37
- required: string[];
38
- };
39
- /**
40
- * execute_cached 工具执行函数
41
- */
42
- export declare function executeCached(_toolCallId: string, args: any): Promise<{
43
- content: {
44
- type: string;
45
- text: string;
46
- }[];
47
- }>;
48
- /**
49
- * cache_stats 工具 - 查看缓存统计
50
- */
51
- export declare function createCacheStatsTool(): {
52
- name: string;
53
- label: string;
54
- description: string;
55
- parameters: {
56
- type: string;
57
- properties: {};
58
- };
59
- };
60
- /**
61
- * cache_stats 工具执行函数
62
- */
63
- export declare function cacheStats(_toolCallId: string, _args: any): Promise<{
64
- content: {
65
- type: string;
66
- text: string;
67
- }[];
68
- }>;
69
- /**
70
- * cache_list 工具 - 列出所有缓存
71
- */
72
- export declare function createCacheListTool(): {
73
- name: string;
74
- label: string;
75
- description: string;
76
- parameters: {
77
- type: string;
78
- properties: {
79
- limit: {
80
- type: string;
81
- description: string;
82
- };
83
- filterScenario: {
84
- type: string;
85
- description: string;
86
- };
87
- };
88
- };
89
- };
90
- /**
91
- * cache_list 工具执行函数
92
- */
93
- export declare function cacheList(_toolCallId: string, args: any): Promise<{
94
- content: {
95
- type: string;
96
- text: string;
97
- }[];
98
- }>;
99
- /**
100
- * cache_clear 工具 - 清空缓存
101
- */
102
- export declare function createCacheClearTool(): {
103
- name: string;
104
- label: string;
105
- description: string;
106
- parameters: {
107
- type: string;
108
- properties: {
109
- scenario: {
110
- type: string;
111
- description: string;
112
- };
113
- };
114
- };
115
- };
116
- /**
117
- * cache_clear 工具执行函数
118
- */
119
- export declare function cacheClear(_toolCallId: string, args: any): Promise<{
120
- content: {
121
- type: string;
122
- text: string;
123
- }[];
124
- }>;
125
- /**
126
- * scenario_list 工具 - 列出所有场景
127
- */
128
- export declare function createScenarioListTool(): {
129
- name: string;
130
- label: string;
131
- description: string;
132
- parameters: {
133
- type: string;
134
- properties: {};
135
- };
136
- };
137
- /**
138
- * scenario_list 工具执行函数
139
- */
140
- export declare function scenarioList(_toolCallId: string, _args: any): Promise<{
141
- content: {
142
- type: string;
143
- text: string;
144
- }[];
145
- }>;
146
- /**
147
- * force_refresh 工具 - 强制刷新指定缓存
148
- */
149
- export declare function createForceRefreshTool(): {
150
- name: string;
151
- label: string;
152
- description: string;
153
- parameters: {
154
- type: string;
155
- properties: {
156
- url: {
157
- type: string;
158
- description: string;
159
- };
160
- viewport: {
161
- type: string;
162
- description: string;
163
- properties: {
164
- width: {
165
- type: string;
166
- };
167
- height: {
168
- type: string;
169
- };
170
- };
171
- };
172
- };
173
- };
174
- required: string[];
175
- };
176
- /**
177
- * force_refresh 工具执行函数
178
- */
179
- export declare function forceRefresh(_toolCallId: string, args: any): Promise<{
180
- content: {
181
- type: string;
182
- text: string;
183
- }[];
184
- }>;
185
- export declare const CACHE_TOOLS: {
186
- definition: {
187
- name: string;
188
- label: string;
189
- description: string;
190
- parameters: {
191
- type: string;
192
- properties: {};
193
- };
194
- };
195
- execute: typeof cacheStats;
196
- }[];
197
- /**
198
- * 获取所有工具定义
199
- */
200
- export declare function getToolDefinitions(): {
201
- name: string;
202
- label: string;
203
- description: string;
204
- parameters: {
205
- type: string;
206
- properties: {};
207
- };
208
- }[];
209
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;GAEG;AACH,wBAAgB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCtC;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;GAgFjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB;;;;;;;;EAUnC;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;;;;;GAW/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;EAmBlC;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;GAgC7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB;;;;;;;;;;;;;EAenC;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;GAkC9D;AAED;;GAEG;AACH,wBAAgB,sBAAsB;;;;;;;;EAUrC;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;;;;;GAsBjE;AAED;;GAEG;AACH,wBAAgB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBrC;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;GA2BhE;AAMD,eAAO,MAAM,WAAW;;;;;;;;;;;GAyBvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB;;;;;;;;IAOjC"}
@@ -1,383 +0,0 @@
1
- /**
2
- * Custom Tools
3
- * 自定义工具 - 提供给 LLM 使用的工具接口
4
- */
5
- import { getCacheStore } from "./cache-store.js";
6
- import { getScenarioRecognizer } from "./scenario-recognizer.js";
7
- import { getUXEnhancer } from "./ux-enhancer.js";
8
- import { getActionsExecutor } from "./actions-executor.js";
9
- // ============================================================================
10
- // 工具定义
11
- // ============================================================================
12
- /**
13
- * execute_cached 工具 - 执行缓存的页面操作序列
14
- */
15
- export function createExecuteCachedTool() {
16
- return {
17
- name: "execute_cached",
18
- label: "Execute Cached Actions",
19
- description: "执行缓存的页面操作序列,跳过 LLM 分析。大幅降低 token 消耗和操作延迟。",
20
- parameters: {
21
- type: "object",
22
- properties: {
23
- cacheKey: {
24
- type: "string",
25
- description: "缓存键(从 cache_info 中获取)",
26
- },
27
- fromIndex: {
28
- type: "number",
29
- description: "从第几个操作开始执行(默认 0)",
30
- },
31
- toIndex: {
32
- type: "number",
33
- description: "执行到第几个操作(不指定则执行全部)",
34
- },
35
- dryRun: {
36
- type: "boolean",
37
- description: "试运行模式,不实际执行",
38
- },
39
- force: {
40
- type: "boolean",
41
- description: "强制执行(忽略页面变化检测)",
42
- },
43
- },
44
- },
45
- required: ["cacheKey"],
46
- };
47
- }
48
- /**
49
- * execute_cached 工具执行函数
50
- */
51
- export async function executeCached(_toolCallId, args) {
52
- const { cacheKey, fromIndex, toIndex, dryRun = false, force = false, } = args;
53
- const cacheStore = getCacheStore();
54
- const uxEnhancer = getUXEnhancer();
55
- // 获取缓存条目
56
- const entry = cacheStore.listEntries().find((e) => e.key === cacheKey);
57
- if (!entry) {
58
- return {
59
- content: [
60
- {
61
- type: "text",
62
- text: "缓存不存在或已过期。请重新分析页面。",
63
- },
64
- ],
65
- };
66
- }
67
- // 检查页面变化(强制模式跳过)
68
- if (!force && !dryRun) {
69
- // TODO: 实际获取页面 HTML 进行检测
70
- // const html = await fetchPageHTML(entry.url, entry.viewport);
71
- // const changeResult = await cacheInvalidator.detectPageChange(html, entry.url, entry.viewport, entry);
72
- // 简化处理:暂时跳过检测
73
- console.log(`[execute_cached] Skipping page change detection for ${entry.url}`);
74
- }
75
- // 解析变量
76
- let variables = {};
77
- if (entry.variables) {
78
- variables = entry.variables;
79
- }
80
- // 获取执行器
81
- const executor = getActionsExecutor();
82
- if (dryRun) {
83
- // 试运行模式,只返回不执行
84
- const actionsToExecute = entry.actions.slice(fromIndex || 0, toIndex !== undefined ? toIndex + 1 : undefined);
85
- return {
86
- content: [
87
- {
88
- type: "text",
89
- text: uxEnhancer.generateDryRunResult(actionsToExecute),
90
- },
91
- ],
92
- };
93
- }
94
- // 逐个执行操作
95
- const results = await executor.executeBatch(entry.actions, variables, {
96
- fromIndex,
97
- toIndex,
98
- atomic: true, // 原子执行
99
- });
100
- // 更新缓存统计
101
- cacheStore.updateExecutionStats(cacheKey, results);
102
- return {
103
- content: [
104
- {
105
- type: "text",
106
- text: uxEnhancer.generateExecutionReport(results, force),
107
- },
108
- ],
109
- };
110
- }
111
- /**
112
- * cache_stats 工具 - 查看缓存统计
113
- */
114
- export function createCacheStatsTool() {
115
- return {
116
- name: "cache_stats",
117
- label: "Cache Statistics",
118
- description: "查看页面操作缓存的统计信息,包括命中率、节省的 token 等。",
119
- parameters: {
120
- type: "object",
121
- properties: {},
122
- },
123
- };
124
- }
125
- /**
126
- * cache_stats 工具执行函数
127
- */
128
- export async function cacheStats(_toolCallId, _args) {
129
- const uxEnhancer = getUXEnhancer();
130
- return {
131
- content: [
132
- {
133
- type: "text",
134
- text: uxEnhancer.generateStatsReport(),
135
- },
136
- ],
137
- };
138
- }
139
- /**
140
- * cache_list 工具 - 列出所有缓存
141
- */
142
- export function createCacheListTool() {
143
- return {
144
- name: "cache_list",
145
- label: "List Cache Entries",
146
- description: "列出所有页面操作缓存条目,包括场景、URL、访问次数等。",
147
- parameters: {
148
- type: "object",
149
- properties: {
150
- limit: {
151
- type: "number",
152
- description: "最多返回的条目数(默认 20)",
153
- },
154
- filterScenario: {
155
- type: "string",
156
- description: "按场景过滤(如 login, checkout)",
157
- },
158
- },
159
- },
160
- };
161
- }
162
- /**
163
- * cache_list 工具执行函数
164
- */
165
- export async function cacheList(_toolCallId, args) {
166
- const { limit = 20, filterScenario } = args;
167
- const cacheStore = getCacheStore();
168
- let entries = cacheStore.listEntries();
169
- // 过滤场景
170
- if (filterScenario) {
171
- entries = entries.filter((e) => e.scenario === filterScenario);
172
- }
173
- // 限制数量
174
- entries = entries.slice(0, limit);
175
- let text = `\n【缓存条目列表】(共 ${entries.length} 条)\n\n`;
176
- entries.forEach((entry, i) => {
177
- text += `${i + 1}. ${entry.scenario} (${entry.cacheLevel})\n`;
178
- text += ` URL: ${entry.url}\n`;
179
- text += ` 访问次数: ${entry.accessCount}\n`;
180
- text += ` 成功率: ${((entry.successCount / (entry.successCount + entry.failCount || 1)) * 100).toFixed(0)}%\n`;
181
- text += ` 最后访问: ${new Date(entry.lastAccessTime).toLocaleString()}\n\n`;
182
- });
183
- return {
184
- content: [
185
- {
186
- type: "text",
187
- text,
188
- },
189
- ],
190
- };
191
- }
192
- /**
193
- * cache_clear 工具 - 清空缓存
194
- */
195
- export function createCacheClearTool() {
196
- return {
197
- name: "cache_clear",
198
- label: "Clear Cache",
199
- description: "清空所有页面操作缓存。慎用!",
200
- parameters: {
201
- type: "object",
202
- properties: {
203
- scenario: {
204
- type: "string",
205
- description: "只清空指定场景的缓存(可选)",
206
- },
207
- },
208
- },
209
- };
210
- }
211
- /**
212
- * cache_clear 工具执行函数
213
- */
214
- export async function cacheClear(_toolCallId, args) {
215
- const { scenario } = args;
216
- const cacheStore = getCacheStore();
217
- if (scenario) {
218
- // 清空指定场景
219
- let count = 0;
220
- const entries = cacheStore.listEntries();
221
- for (const entry of entries) {
222
- if (entry.scenario === scenario) {
223
- cacheStore.delete(entry.url, entry.viewport);
224
- count++;
225
- }
226
- }
227
- return {
228
- content: [
229
- {
230
- type: "text",
231
- text: `已清空场景 "${scenario}" 的 ${count} 条缓存。`,
232
- },
233
- ],
234
- };
235
- }
236
- else {
237
- // 清空所有缓存
238
- cacheStore.clear();
239
- return {
240
- content: [
241
- {
242
- type: "text",
243
- text: "已清空所有缓存。",
244
- },
245
- ],
246
- };
247
- }
248
- }
249
- /**
250
- * scenario_list 工具 - 列出所有场景
251
- */
252
- export function createScenarioListTool() {
253
- return {
254
- name: "scenario_list",
255
- label: "List Scenarios",
256
- description: "列出所有支持的缓存场景及其匹配规则。",
257
- parameters: {
258
- type: "object",
259
- properties: {},
260
- },
261
- };
262
- }
263
- /**
264
- * scenario_list 工具执行函数
265
- */
266
- export async function scenarioList(_toolCallId, _args) {
267
- const scenarioRecognizer = getScenarioRecognizer();
268
- const rules = scenarioRecognizer.getRules();
269
- let text = "\n【支持的缓存场景】\n\n";
270
- rules.forEach((rule, i) => {
271
- text += `${i + 1}. ${rule.scenario}\n`;
272
- text += ` 关键词: ${rule.keywords.join(", ")}\n`;
273
- text += ` URL 模式: ${rule.urlPatterns.join(", ") || "无"}\n`;
274
- text += ` 缓存层级: ${rule.cacheLevel}\n`;
275
- text += ` 置信度: ${rule.confidence}\n\n`;
276
- });
277
- return {
278
- content: [
279
- {
280
- type: "text",
281
- text,
282
- },
283
- ],
284
- };
285
- }
286
- /**
287
- * force_refresh 工具 - 强制刷新指定缓存
288
- */
289
- export function createForceRefreshTool() {
290
- return {
291
- name: "force_refresh",
292
- label: "Force Refresh Cache",
293
- description: "强制刷新指定页面的缓存,下次访问将重新分析。",
294
- parameters: {
295
- type: "object",
296
- properties: {
297
- url: {
298
- type: "string",
299
- description: "页面 URL",
300
- },
301
- viewport: {
302
- type: "object",
303
- description: "视口尺寸(可选)",
304
- properties: {
305
- width: { type: "number" },
306
- height: { type: "number" },
307
- },
308
- },
309
- },
310
- },
311
- required: ["url"],
312
- };
313
- }
314
- /**
315
- * force_refresh 工具执行函数
316
- */
317
- export async function forceRefresh(_toolCallId, args) {
318
- const { url, viewport } = args;
319
- const cacheStore = getCacheStore();
320
- const vp = viewport || { width: 1920, height: 1080 };
321
- const deleted = cacheStore.delete(url, vp);
322
- if (deleted) {
323
- return {
324
- content: [
325
- {
326
- type: "text",
327
- text: `已强制刷新缓存:${url}`,
328
- },
329
- ],
330
- };
331
- }
332
- else {
333
- return {
334
- content: [
335
- {
336
- type: "text",
337
- text: `未找到缓存:${url}`,
338
- },
339
- ],
340
- };
341
- }
342
- }
343
- // ============================================================================
344
- // 工具注册表
345
- // ============================================================================
346
- export const CACHE_TOOLS = [
347
- {
348
- definition: createExecuteCachedTool(),
349
- execute: executeCached,
350
- },
351
- {
352
- definition: createCacheStatsTool(),
353
- execute: cacheStats,
354
- },
355
- {
356
- definition: createCacheListTool(),
357
- execute: cacheList,
358
- },
359
- {
360
- definition: createCacheClearTool(),
361
- execute: cacheClear,
362
- },
363
- {
364
- definition: createScenarioListTool(),
365
- execute: scenarioList,
366
- },
367
- {
368
- definition: createForceRefreshTool(),
369
- execute: forceRefresh,
370
- },
371
- ];
372
- /**
373
- * 获取所有工具定义
374
- */
375
- export function getToolDefinitions() {
376
- return CACHE_TOOLS.map((tool) => ({
377
- name: tool.definition.name,
378
- label: tool.definition.label,
379
- description: tool.definition.description,
380
- parameters: tool.definition.parameters,
381
- }));
382
- }
383
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}