@phuetz/code-buddy 0.1.12 → 0.1.14

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 (321) hide show
  1. package/README.md +228 -13
  2. package/dist/agent/architect-mode.d.ts +11 -0
  3. package/dist/agent/architect-mode.js +133 -25
  4. package/dist/agent/architect-mode.js.map +1 -1
  5. package/dist/agent/codebuddy-agent.d.ts +24 -0
  6. package/dist/agent/codebuddy-agent.js +118 -16
  7. package/dist/agent/codebuddy-agent.js.map +1 -1
  8. package/dist/agent/execution/agent-executor.d.ts +9 -0
  9. package/dist/agent/execution/agent-executor.js +62 -1
  10. package/dist/agent/execution/agent-executor.js.map +1 -1
  11. package/dist/agent/message-queue.d.ts +77 -0
  12. package/dist/agent/message-queue.js +116 -0
  13. package/dist/agent/message-queue.js.map +1 -0
  14. package/dist/agent/middleware/auto-observation.d.ts +37 -0
  15. package/dist/agent/middleware/auto-observation.js +231 -0
  16. package/dist/agent/middleware/auto-observation.js.map +1 -0
  17. package/dist/agent/middleware/index.d.ts +2 -0
  18. package/dist/agent/middleware/index.js +1 -0
  19. package/dist/agent/middleware/index.js.map +1 -1
  20. package/dist/agent/tool-handler.js +3 -2
  21. package/dist/agent/tool-handler.js.map +1 -1
  22. package/dist/agent/turn-diff-tracker.js +3 -0
  23. package/dist/agent/turn-diff-tracker.js.map +1 -1
  24. package/dist/agent/types.d.ts +7 -2
  25. package/dist/analytics/budget-alerts.d.ts +81 -0
  26. package/dist/analytics/budget-alerts.js +126 -0
  27. package/dist/analytics/budget-alerts.js.map +1 -0
  28. package/dist/analytics/cost-predictor.d.ts +79 -0
  29. package/dist/analytics/cost-predictor.js +150 -0
  30. package/dist/analytics/cost-predictor.js.map +1 -0
  31. package/dist/analytics/index.d.ts +2 -0
  32. package/dist/analytics/index.js +2 -0
  33. package/dist/analytics/index.js.map +1 -1
  34. package/dist/auth/profile-manager.d.ts +205 -0
  35. package/dist/auth/profile-manager.js +484 -0
  36. package/dist/auth/profile-manager.js.map +1 -0
  37. package/dist/browser-automation/browser-manager.d.ts +79 -1
  38. package/dist/browser-automation/browser-manager.js +265 -2
  39. package/dist/browser-automation/browser-manager.js.map +1 -1
  40. package/dist/browser-automation/profile-manager.d.ts +32 -0
  41. package/dist/browser-automation/profile-manager.js +83 -0
  42. package/dist/browser-automation/profile-manager.js.map +1 -0
  43. package/dist/browser-automation/route-interceptor.d.ts +29 -0
  44. package/dist/browser-automation/route-interceptor.js +103 -0
  45. package/dist/browser-automation/route-interceptor.js.map +1 -0
  46. package/dist/browser-automation/screenshot-annotator.d.ts +23 -0
  47. package/dist/browser-automation/screenshot-annotator.js +86 -0
  48. package/dist/browser-automation/screenshot-annotator.js.map +1 -0
  49. package/dist/browser-automation/types.d.ts +47 -0
  50. package/dist/cache/llm-response-cache.js +3 -0
  51. package/dist/cache/llm-response-cache.js.map +1 -1
  52. package/dist/canvas/canvas-server.js +4 -3
  53. package/dist/canvas/canvas-server.js.map +1 -1
  54. package/dist/channels/discord/client.d.ts +2 -1
  55. package/dist/channels/discord/client.js +28 -16
  56. package/dist/channels/discord/client.js.map +1 -1
  57. package/dist/channels/dm-pairing.js +6 -3
  58. package/dist/channels/dm-pairing.js.map +1 -1
  59. package/dist/channels/google-chat/index.d.ts +210 -0
  60. package/dist/channels/google-chat/index.js +505 -0
  61. package/dist/channels/google-chat/index.js.map +1 -0
  62. package/dist/channels/group-security.d.ts +182 -0
  63. package/dist/channels/group-security.js +407 -0
  64. package/dist/channels/group-security.js.map +1 -0
  65. package/dist/channels/index.d.ts +17 -1
  66. package/dist/channels/index.js +16 -0
  67. package/dist/channels/index.js.map +1 -1
  68. package/dist/channels/matrix/index.d.ts +181 -0
  69. package/dist/channels/matrix/index.js +643 -0
  70. package/dist/channels/matrix/index.js.map +1 -0
  71. package/dist/channels/offline-queue.d.ts +92 -0
  72. package/dist/channels/offline-queue.js +112 -0
  73. package/dist/channels/offline-queue.js.map +1 -0
  74. package/dist/channels/reconnection-manager.d.ts +117 -0
  75. package/dist/channels/reconnection-manager.js +171 -0
  76. package/dist/channels/reconnection-manager.js.map +1 -0
  77. package/dist/channels/signal/index.d.ts +184 -0
  78. package/dist/channels/signal/index.js +488 -0
  79. package/dist/channels/signal/index.js.map +1 -0
  80. package/dist/channels/slack/client.d.ts +2 -1
  81. package/dist/channels/slack/client.js +30 -15
  82. package/dist/channels/slack/client.js.map +1 -1
  83. package/dist/channels/teams/index.d.ts +196 -0
  84. package/dist/channels/teams/index.js +477 -0
  85. package/dist/channels/teams/index.js.map +1 -0
  86. package/dist/channels/telegram/client.d.ts +3 -1
  87. package/dist/channels/telegram/client.js +29 -2
  88. package/dist/channels/telegram/client.js.map +1 -1
  89. package/dist/channels/webchat/index.d.ts +103 -0
  90. package/dist/channels/webchat/index.js +697 -0
  91. package/dist/channels/webchat/index.js.map +1 -0
  92. package/dist/channels/whatsapp/index.d.ts +105 -0
  93. package/dist/channels/whatsapp/index.js +533 -0
  94. package/dist/channels/whatsapp/index.js.map +1 -0
  95. package/dist/codebuddy/client.js +11 -5
  96. package/dist/codebuddy/client.js.map +1 -1
  97. package/dist/codebuddy/tool-definitions/advanced-tools.d.ts +1 -0
  98. package/dist/codebuddy/tool-definitions/advanced-tools.js +103 -3
  99. package/dist/codebuddy/tool-definitions/advanced-tools.js.map +1 -1
  100. package/dist/codebuddy/tool-definitions/index.d.ts +1 -1
  101. package/dist/codebuddy/tool-definitions/index.js +1 -1
  102. package/dist/codebuddy/tool-definitions/index.js.map +1 -1
  103. package/dist/codebuddy/tools.js +3 -1
  104. package/dist/codebuddy/tools.js.map +1 -1
  105. package/dist/commands/cli/config-command.d.ts +8 -0
  106. package/dist/commands/cli/config-command.js +90 -0
  107. package/dist/commands/cli/config-command.js.map +1 -0
  108. package/dist/commands/cli/openclaw-commands.d.ts +12 -0
  109. package/dist/commands/cli/openclaw-commands.js +446 -0
  110. package/dist/commands/cli/openclaw-commands.js.map +1 -0
  111. package/dist/commands/cli/utility-commands.js +30 -0
  112. package/dist/commands/cli/utility-commands.js.map +1 -1
  113. package/dist/commands/client-dispatcher.js +22 -2
  114. package/dist/commands/client-dispatcher.js.map +1 -1
  115. package/dist/commands/enhanced-command-handler.js +21 -2
  116. package/dist/commands/enhanced-command-handler.js.map +1 -1
  117. package/dist/commands/handlers/extra-handlers.d.ts +30 -0
  118. package/dist/commands/handlers/extra-handlers.js +547 -0
  119. package/dist/commands/handlers/extra-handlers.js.map +1 -0
  120. package/dist/commands/handlers/index.d.ts +1 -0
  121. package/dist/commands/handlers/index.js +2 -0
  122. package/dist/commands/handlers/index.js.map +1 -1
  123. package/dist/commands/slash/builtin-commands.js +41 -34
  124. package/dist/commands/slash/builtin-commands.js.map +1 -1
  125. package/dist/config/env-schema.d.ts +58 -0
  126. package/dist/config/env-schema.js +789 -0
  127. package/dist/config/env-schema.js.map +1 -0
  128. package/dist/config/feature-flags.js +2 -1
  129. package/dist/config/feature-flags.js.map +1 -1
  130. package/dist/context/bootstrap-loader.d.ts +48 -0
  131. package/dist/context/bootstrap-loader.js +123 -0
  132. package/dist/context/bootstrap-loader.js.map +1 -0
  133. package/dist/context/codebase-rag/chunker.js +2 -2
  134. package/dist/context/codebase-rag/chunker.js.map +1 -1
  135. package/dist/copilot/copilot-proxy.d.ts +15 -1
  136. package/dist/copilot/copilot-proxy.js +92 -23
  137. package/dist/copilot/copilot-proxy.js.map +1 -1
  138. package/dist/daemon/health-monitor.js +11 -7
  139. package/dist/daemon/health-monitor.js.map +1 -1
  140. package/dist/daemon/heartbeat.d.ts +112 -0
  141. package/dist/daemon/heartbeat.js +339 -0
  142. package/dist/daemon/heartbeat.js.map +1 -0
  143. package/dist/desktop-automation/smart-snapshot.d.ts +11 -0
  144. package/dist/desktop-automation/smart-snapshot.js +38 -0
  145. package/dist/desktop-automation/smart-snapshot.js.map +1 -1
  146. package/dist/extensions/extension-loader.js +4 -0
  147. package/dist/extensions/extension-loader.js.map +1 -1
  148. package/dist/identity/identity-manager.d.ts +95 -0
  149. package/dist/identity/identity-manager.js +242 -0
  150. package/dist/identity/identity-manager.js.map +1 -0
  151. package/dist/index.js +147 -17
  152. package/dist/index.js.map +1 -1
  153. package/dist/input/text-to-speech.js +4 -2
  154. package/dist/input/text-to-speech.js.map +1 -1
  155. package/dist/input/voice-control.js +5 -3
  156. package/dist/input/voice-control.js.map +1 -1
  157. package/dist/integrations/github-integration.js +1 -1
  158. package/dist/integrations/github-integration.js.map +1 -1
  159. package/dist/orchestration/orchestrator.js +3 -0
  160. package/dist/orchestration/orchestrator.js.map +1 -1
  161. package/dist/persistence/conversation-branches.js +2 -1
  162. package/dist/persistence/conversation-branches.js.map +1 -1
  163. package/dist/persistence/session-store.d.ts +1 -1
  164. package/dist/persistence/session-store.js +1 -1
  165. package/dist/persistence/session-store.js.map +1 -1
  166. package/dist/plugins/plugin-system.js +5 -2
  167. package/dist/plugins/plugin-system.js.map +1 -1
  168. package/dist/providers/gemini-provider.js +6 -4
  169. package/dist/providers/gemini-provider.js.map +1 -1
  170. package/dist/providers/local-llm-provider.js +8 -0
  171. package/dist/providers/local-llm-provider.js.map +1 -1
  172. package/dist/sandbox/auto-sandbox.d.ts +59 -0
  173. package/dist/sandbox/auto-sandbox.js +145 -0
  174. package/dist/sandbox/auto-sandbox.js.map +1 -0
  175. package/dist/scheduler/cron-scheduler.js +2 -0
  176. package/dist/scheduler/cron-scheduler.js.map +1 -1
  177. package/dist/scheduler/scheduler.js +11 -2
  178. package/dist/scheduler/scheduler.js.map +1 -1
  179. package/dist/security/audit-logger.d.ts +127 -0
  180. package/dist/security/audit-logger.js +194 -0
  181. package/dist/security/audit-logger.js.map +1 -0
  182. package/dist/security/bash-allowlist/allowlist-store.js +3 -2
  183. package/dist/security/bash-allowlist/allowlist-store.js.map +1 -1
  184. package/dist/security/bash-parser.js +0 -2
  185. package/dist/security/bash-parser.js.map +1 -1
  186. package/dist/security/code-validator.d.ts +51 -0
  187. package/dist/security/code-validator.js +185 -0
  188. package/dist/security/code-validator.js.map +1 -0
  189. package/dist/security/dangerous-patterns.d.ts +68 -0
  190. package/dist/security/dangerous-patterns.js +218 -0
  191. package/dist/security/dangerous-patterns.js.map +1 -0
  192. package/dist/security/remote-approval.d.ts +65 -0
  193. package/dist/security/remote-approval.js +138 -0
  194. package/dist/security/remote-approval.js.map +1 -0
  195. package/dist/security/security-audit.d.ts +7 -0
  196. package/dist/security/security-audit.js +23 -0
  197. package/dist/security/security-audit.js.map +1 -1
  198. package/dist/security/syntax-validator.d.ts +17 -0
  199. package/dist/security/syntax-validator.js +292 -0
  200. package/dist/security/syntax-validator.js.map +1 -0
  201. package/dist/server/index.js +277 -2
  202. package/dist/server/index.js.map +1 -1
  203. package/dist/server/middleware/logging.js +9 -1
  204. package/dist/server/middleware/logging.js.map +1 -1
  205. package/dist/server/routes/memory.js +4 -1
  206. package/dist/server/routes/memory.js.map +1 -1
  207. package/dist/server/routes/metrics.js +1 -1
  208. package/dist/server/routes/metrics.js.map +1 -1
  209. package/dist/server/routes/sessions.js +5 -4
  210. package/dist/server/routes/sessions.js.map +1 -1
  211. package/dist/server/websocket/handler.js +8 -2
  212. package/dist/server/websocket/handler.js.map +1 -1
  213. package/dist/services/prompt-builder.js +16 -0
  214. package/dist/services/prompt-builder.js.map +1 -1
  215. package/dist/skills/hub.d.ts +231 -0
  216. package/dist/skills/hub.js +694 -0
  217. package/dist/skills/hub.js.map +1 -0
  218. package/dist/skills/skill-loader.js +1 -1
  219. package/dist/skills/skill-loader.js.map +1 -1
  220. package/dist/skills/skill-manager.js +2 -1
  221. package/dist/skills/skill-manager.js.map +1 -1
  222. package/dist/skills/skill-registry.js +4 -0
  223. package/dist/skills/skill-registry.js.map +1 -1
  224. package/dist/talk-mode/providers/audioreader-tts.js +1 -0
  225. package/dist/talk-mode/providers/audioreader-tts.js.map +1 -1
  226. package/dist/tools/apply-patch.d.ts +1 -0
  227. package/dist/tools/apply-patch.js +66 -12
  228. package/dist/tools/apply-patch.js.map +1 -1
  229. package/dist/tools/bash/bash-tool.d.ts +123 -0
  230. package/dist/tools/bash/bash-tool.js +549 -0
  231. package/dist/tools/bash/bash-tool.js.map +1 -0
  232. package/dist/tools/bash/command-validator.d.ts +49 -0
  233. package/dist/tools/bash/command-validator.js +223 -0
  234. package/dist/tools/bash/command-validator.js.map +1 -0
  235. package/dist/tools/bash/index.d.ts +7 -0
  236. package/dist/tools/bash/index.js +8 -0
  237. package/dist/tools/bash/index.js.map +1 -0
  238. package/dist/tools/bash/security-patterns.d.ts +44 -0
  239. package/dist/tools/bash/security-patterns.js +234 -0
  240. package/dist/tools/bash/security-patterns.js.map +1 -0
  241. package/dist/tools/bash/streaming-executor.d.ts +23 -0
  242. package/dist/tools/bash/streaming-executor.js +134 -0
  243. package/dist/tools/bash/streaming-executor.js.map +1 -0
  244. package/dist/tools/bash.js +5 -3
  245. package/dist/tools/bash.js.map +1 -1
  246. package/dist/tools/code-formatter.js +41 -27
  247. package/dist/tools/code-formatter.js.map +1 -1
  248. package/dist/tools/code-review.js +1 -1
  249. package/dist/tools/code-review.js.map +1 -1
  250. package/dist/tools/computer-control-tool.js +21 -0
  251. package/dist/tools/computer-control-tool.js.map +1 -1
  252. package/dist/tools/document-tool.js +3 -2
  253. package/dist/tools/document-tool.js.map +1 -1
  254. package/dist/tools/git-tool.d.ts +45 -0
  255. package/dist/tools/git-tool.js +224 -2
  256. package/dist/tools/git-tool.js.map +1 -1
  257. package/dist/tools/index.d.ts +1 -1
  258. package/dist/tools/index.js +1 -1
  259. package/dist/tools/index.js.map +1 -1
  260. package/dist/tools/morph-editor.js +1 -0
  261. package/dist/tools/morph-editor.js.map +1 -1
  262. package/dist/tools/multi-edit.js +31 -3
  263. package/dist/tools/multi-edit.js.map +1 -1
  264. package/dist/tools/notebook-tool.js +8 -2
  265. package/dist/tools/notebook-tool.js.map +1 -1
  266. package/dist/tools/process-tool.d.ts +69 -0
  267. package/dist/tools/process-tool.js +222 -0
  268. package/dist/tools/process-tool.js.map +1 -0
  269. package/dist/tools/registry/git-tools.d.ts +32 -0
  270. package/dist/tools/registry/git-tools.js +211 -0
  271. package/dist/tools/registry/git-tools.js.map +1 -0
  272. package/dist/tools/registry/index.d.ts +2 -0
  273. package/dist/tools/registry/index.js +8 -0
  274. package/dist/tools/registry/index.js.map +1 -1
  275. package/dist/tools/registry/misc-tools.d.ts +32 -4
  276. package/dist/tools/registry/misc-tools.js +230 -90
  277. package/dist/tools/registry/misc-tools.js.map +1 -1
  278. package/dist/tools/registry/process-tools.d.ts +20 -0
  279. package/dist/tools/registry/process-tools.js +141 -0
  280. package/dist/tools/registry/process-tools.js.map +1 -0
  281. package/dist/tools/registry/types.d.ts +2 -0
  282. package/dist/tools/search.js +4 -2
  283. package/dist/tools/search.js.map +1 -1
  284. package/dist/tools/video-tool.js +30 -14
  285. package/dist/tools/video-tool.js.map +1 -1
  286. package/dist/tools/web-search.js +4 -1
  287. package/dist/tools/web-search.js.map +1 -1
  288. package/dist/ui/components/ChatInterface.js +9 -0
  289. package/dist/ui/components/ChatInterface.js.map +1 -1
  290. package/dist/utils/autonomy-manager.js +3 -2
  291. package/dist/utils/autonomy-manager.js.map +1 -1
  292. package/dist/utils/config-validation/schema.d.ts +15 -15
  293. package/dist/utils/confirmation-service.d.ts +16 -0
  294. package/dist/utils/confirmation-service.js +37 -3
  295. package/dist/utils/confirmation-service.js.map +1 -1
  296. package/dist/utils/custom-instructions.js +2 -1
  297. package/dist/utils/custom-instructions.js.map +1 -1
  298. package/dist/utils/diff-generator.js +3 -1
  299. package/dist/utils/diff-generator.js.map +1 -1
  300. package/dist/utils/graceful-shutdown.js +9 -9
  301. package/dist/utils/graceful-shutdown.js.map +1 -1
  302. package/dist/utils/head-tail-truncation.d.ts +18 -0
  303. package/dist/utils/head-tail-truncation.js +127 -0
  304. package/dist/utils/head-tail-truncation.js.map +1 -1
  305. package/dist/utils/history-manager.js +3 -2
  306. package/dist/utils/history-manager.js.map +1 -1
  307. package/dist/utils/logger.d.ts +2 -0
  308. package/dist/utils/logger.js +18 -3
  309. package/dist/utils/logger.js.map +1 -1
  310. package/dist/utils/performance.js +16 -15
  311. package/dist/utils/performance.js.map +1 -1
  312. package/dist/utils/stream-helpers.js +4 -2
  313. package/dist/utils/stream-helpers.js.map +1 -1
  314. package/dist/utils/update-notifier.js +2 -1
  315. package/dist/utils/update-notifier.js.map +1 -1
  316. package/dist/workflows/pipeline.d.ts +54 -1
  317. package/dist/workflows/pipeline.js +128 -7
  318. package/dist/workflows/pipeline.js.map +1 -1
  319. package/dist/workflows/step-manager.js +2 -1
  320. package/dist/workflows/step-manager.js.map +1 -1
  321. package/package.json +6 -3
@@ -1,18 +1,24 @@
1
1
  /**
2
2
  * Miscellaneous Tool Adapters
3
3
  *
4
- * ITool-compliant adapters for BrowserTool and ReasoningTool operations.
5
- * These adapters wrap the existing tools to conform to the formal ITool
6
- * interface for use with the FormalToolRegistry.
4
+ * ITool-compliant adapters for BrowserTool (accessibility-based),
5
+ * ComputerControlTool, ScreenshotTool, and ReasoningTool.
6
+ *
7
+ * BrowserExecuteTool is wired to src/browser-automation/ (OpenClaw-inspired
8
+ * accessibility tree + ref numbering) instead of the old CSS-selector-only
9
+ * src/tools/browser-tool.ts.
7
10
  */
8
- import { BrowserTool, ReasoningTool } from '../index.js';
11
+ import { ReasoningTool } from '../index.js';
9
12
  // ============================================================================
10
- // Shared Tool Instances
13
+ // Shared Tool Instances (lazy loaded)
11
14
  // ============================================================================
12
15
  let browserInstance = null;
13
16
  let reasoningInstance = null;
14
- function getBrowser() {
17
+ let computerControlInstance = null;
18
+ let screenshotInstance = null;
19
+ async function getBrowserAutomation() {
15
20
  if (!browserInstance) {
21
+ const { BrowserTool } = await import('../../browser-automation/index.js');
16
22
  browserInstance = new BrowserTool();
17
23
  }
18
24
  return browserInstance;
@@ -23,34 +29,53 @@ function getReasoning() {
23
29
  }
24
30
  return reasoningInstance;
25
31
  }
32
+ async function getComputerControl() {
33
+ if (!computerControlInstance) {
34
+ const { getComputerControlTool } = await import('../computer-control-tool.js');
35
+ computerControlInstance = getComputerControlTool();
36
+ }
37
+ return computerControlInstance;
38
+ }
39
+ async function getScreenshot() {
40
+ if (!screenshotInstance) {
41
+ const { ScreenshotTool } = await import('../screenshot-tool.js');
42
+ screenshotInstance = new ScreenshotTool();
43
+ }
44
+ return screenshotInstance;
45
+ }
26
46
  /**
27
47
  * Reset the shared instances (for testing)
28
48
  */
29
49
  export function resetMiscInstances() {
30
50
  browserInstance = null;
31
51
  reasoningInstance = null;
52
+ computerControlInstance = null;
53
+ screenshotInstance = null;
32
54
  }
33
55
  // ============================================================================
34
- // BrowserExecuteTool
56
+ // BrowserExecuteTool (rewired to browser-automation module)
35
57
  // ============================================================================
58
+ const BROWSER_ACTIONS = [
59
+ 'launch', 'connect', 'close',
60
+ 'tabs', 'new_tab', 'focus_tab', 'close_tab',
61
+ 'snapshot', 'get_element', 'find_elements',
62
+ 'navigate', 'go_back', 'go_forward', 'reload',
63
+ 'click', 'double_click', 'right_click', 'type', 'fill', 'select', 'press', 'hover', 'scroll',
64
+ 'screenshot', 'pdf',
65
+ 'get_cookies', 'set_cookie', 'clear_cookies', 'set_headers', 'set_offline',
66
+ 'emulate_device', 'set_geolocation',
67
+ 'evaluate', 'get_content', 'get_url', 'get_title',
68
+ ];
36
69
  /**
37
70
  * BrowserExecuteTool - ITool adapter for browser automation
71
+ * Uses browser-automation module with accessibility tree + ref numbering
38
72
  */
39
73
  export class BrowserExecuteTool {
40
74
  name = 'browser';
41
- description = 'Automate web browser interactions including navigation, clicking, form filling, and screenshots';
75
+ description = 'Automate web browser with accessibility-based element refs. Snapshot ref-based click/type/fill.';
42
76
  async execute(input) {
43
- const params = {
44
- action: input.action,
45
- url: input.url,
46
- selector: input.selector,
47
- value: input.value,
48
- script: input.script,
49
- timeout: input.timeout,
50
- screenshotOptions: input.screenshotOptions,
51
- scrollOptions: input.scrollOptions,
52
- };
53
- return await getBrowser().execute(params);
77
+ const browser = await getBrowserAutomation();
78
+ return await browser.execute(input);
54
79
  }
55
80
  getSchema() {
56
81
  return {
@@ -62,55 +87,37 @@ export class BrowserExecuteTool {
62
87
  action: {
63
88
  type: 'string',
64
89
  description: 'Browser action to perform',
65
- enum: [
66
- 'navigate',
67
- 'click',
68
- 'fill',
69
- 'screenshot',
70
- 'getText',
71
- 'getHtml',
72
- 'evaluate',
73
- 'waitForSelector',
74
- 'getLinks',
75
- 'getForms',
76
- 'submit',
77
- 'select',
78
- 'hover',
79
- 'scroll',
80
- 'goBack',
81
- 'goForward',
82
- 'reload',
83
- 'close',
84
- ],
85
- },
86
- url: {
87
- type: 'string',
88
- description: 'URL to navigate to (for navigate action)',
89
- },
90
- selector: {
91
- type: 'string',
92
- description: 'CSS selector for element operations',
93
- },
94
- value: {
95
- type: 'string',
96
- description: 'Value for fill/select operations',
97
- },
98
- script: {
99
- type: 'string',
100
- description: 'JavaScript code for evaluate action',
101
- },
102
- timeout: {
103
- type: 'number',
104
- description: 'Timeout in milliseconds',
105
- },
106
- screenshotOptions: {
107
- type: 'object',
108
- description: 'Options for screenshot action',
109
- },
110
- scrollOptions: {
111
- type: 'object',
112
- description: 'Options for scroll action',
90
+ enum: [...BROWSER_ACTIONS],
113
91
  },
92
+ cdpUrl: { type: 'string', description: 'CDP WebSocket URL for connecting to existing browser' },
93
+ headless: { type: 'boolean', description: 'Run browser in headless mode (default: true)' },
94
+ tabId: { type: 'string', description: 'Tab ID for focus_tab/close_tab' },
95
+ url: { type: 'string', description: 'URL to navigate to' },
96
+ waitUntil: { type: 'string', enum: ['load', 'domcontentloaded', 'networkidle'], description: 'Navigation completion condition' },
97
+ interactiveOnly: { type: 'boolean', description: 'Only include interactive elements in snapshot' },
98
+ maxElements: { type: 'number', description: 'Max elements in snapshot' },
99
+ ref: { type: 'number', description: 'Element reference number from snapshot' },
100
+ role: { type: 'string', description: 'Element role to search for' },
101
+ name: { type: 'string', description: 'Element name/text to search for' },
102
+ text: { type: 'string', description: 'Text to type' },
103
+ key: { type: 'string', description: 'Key to press (Enter, Tab, Escape, etc.)' },
104
+ modifiers: { type: 'array', items: { type: 'string' }, description: 'Modifier keys' },
105
+ button: { type: 'string', enum: ['left', 'right', 'middle'], description: 'Mouse button' },
106
+ clear: { type: 'boolean', description: 'Clear field before typing' },
107
+ fields: { type: 'object', description: 'Fields to fill: { "refNumber": "value", ... }' },
108
+ submit: { type: 'boolean', description: 'Press Enter after filling fields' },
109
+ value: { type: 'string', description: 'Value to select in dropdown' },
110
+ label: { type: 'string', description: 'Label to select in dropdown' },
111
+ index: { type: 'number', description: 'Index to select in dropdown' },
112
+ direction: { type: 'string', enum: ['up', 'down', 'left', 'right'], description: 'Scroll direction' },
113
+ amount: { type: 'number', description: 'Scroll amount in pixels' },
114
+ toElement: { type: 'number', description: 'Element ref to scroll to' },
115
+ fullPage: { type: 'boolean', description: 'Capture full page vs viewport only' },
116
+ element: { type: 'number', description: 'Element ref to capture' },
117
+ format: { type: 'string', enum: ['png', 'jpeg', 'webp'], description: 'Image format' },
118
+ quality: { type: 'number', description: 'Image quality (0-100)' },
119
+ expression: { type: 'string', description: 'JavaScript code to evaluate in page' },
120
+ timeout: { type: 'number', description: 'Timeout in milliseconds' },
114
121
  },
115
122
  required: ['action'],
116
123
  },
@@ -124,27 +131,7 @@ export class BrowserExecuteTool {
124
131
  if (typeof data.action !== 'string' || data.action.trim() === '') {
125
132
  return { valid: false, errors: ['action must be a non-empty string'] };
126
133
  }
127
- const validActions = [
128
- 'navigate',
129
- 'click',
130
- 'fill',
131
- 'screenshot',
132
- 'getText',
133
- 'getHtml',
134
- 'evaluate',
135
- 'waitForSelector',
136
- 'getLinks',
137
- 'getForms',
138
- 'submit',
139
- 'select',
140
- 'hover',
141
- 'scroll',
142
- 'goBack',
143
- 'goForward',
144
- 'reload',
145
- 'close',
146
- ];
147
- if (!validActions.includes(data.action)) {
134
+ if (!BROWSER_ACTIONS.includes(data.action)) {
148
135
  return { valid: false, errors: [`Unknown action: ${data.action}`] };
149
136
  }
150
137
  return { valid: true };
@@ -154,7 +141,7 @@ export class BrowserExecuteTool {
154
141
  name: this.name,
155
142
  description: this.description,
156
143
  category: 'web',
157
- keywords: ['browser', 'web', 'automation', 'playwright', 'screenshot', 'scrape'],
144
+ keywords: ['browser', 'web', 'automation', 'playwright', 'screenshot', 'scrape', 'accessibility'],
158
145
  priority: 5,
159
146
  requiresConfirmation: true,
160
147
  modifiesFiles: false,
@@ -166,12 +153,163 @@ export class BrowserExecuteTool {
166
153
  }
167
154
  async dispose() {
168
155
  if (browserInstance) {
169
- await browserInstance.close();
156
+ const { resetBrowserTool } = await import('../../browser-automation/index.js');
157
+ resetBrowserTool();
170
158
  browserInstance = null;
171
159
  }
172
160
  }
173
161
  }
174
162
  // ============================================================================
163
+ // ComputerControlExecuteTool
164
+ // ============================================================================
165
+ const COMPUTER_CONTROL_ACTIONS = [
166
+ 'snapshot', 'snapshot_with_screenshot', 'get_element', 'find_elements',
167
+ 'click', 'double_click', 'right_click', 'move_mouse', 'drag', 'scroll',
168
+ 'type', 'key', 'hotkey',
169
+ 'get_windows', 'focus_window', 'close_window',
170
+ 'get_volume', 'set_volume', 'get_brightness', 'set_brightness',
171
+ 'notify', 'lock', 'sleep',
172
+ 'start_recording', 'stop_recording', 'recording_status',
173
+ 'system_info', 'battery_info', 'network_info', 'check_permission',
174
+ ];
175
+ /**
176
+ * ComputerControlExecuteTool - ITool adapter for desktop computer control
177
+ */
178
+ export class ComputerControlExecuteTool {
179
+ name = 'computer_control';
180
+ description = 'Control the computer: mouse, keyboard, window management, system actions. Use snapshot to detect UI elements with refs.';
181
+ async execute(input) {
182
+ const tool = await getComputerControl();
183
+ return await tool.execute(input);
184
+ }
185
+ getSchema() {
186
+ return {
187
+ name: this.name,
188
+ description: this.description,
189
+ parameters: {
190
+ type: 'object',
191
+ properties: {
192
+ action: {
193
+ type: 'string',
194
+ enum: [...COMPUTER_CONTROL_ACTIONS],
195
+ description: 'The action to perform',
196
+ },
197
+ ref: { type: 'number', description: 'Element reference number from snapshot' },
198
+ x: { type: 'number', description: 'X coordinate for mouse actions' },
199
+ y: { type: 'number', description: 'Y coordinate for mouse actions' },
200
+ text: { type: 'string', description: 'Text to type' },
201
+ key: { type: 'string', description: 'Key to press' },
202
+ modifiers: { type: 'array', items: { type: 'string' }, description: 'Modifier keys (ctrl, alt, shift, meta)' },
203
+ button: { type: 'string', enum: ['left', 'right', 'middle'], description: 'Mouse button' },
204
+ deltaX: { type: 'number', description: 'Horizontal scroll amount' },
205
+ deltaY: { type: 'number', description: 'Vertical scroll amount' },
206
+ windowTitle: { type: 'string', description: 'Window title to find/focus' },
207
+ level: { type: 'number', description: 'Volume or brightness level (0-100)' },
208
+ role: { type: 'string', description: 'Element role to find' },
209
+ name: { type: 'string', description: 'Element name to search for' },
210
+ interactiveOnly: { type: 'boolean', description: 'Only include interactive elements in snapshot' },
211
+ },
212
+ required: ['action'],
213
+ },
214
+ };
215
+ }
216
+ validate(input) {
217
+ if (typeof input !== 'object' || input === null) {
218
+ return { valid: false, errors: ['Input must be an object'] };
219
+ }
220
+ const data = input;
221
+ if (typeof data.action !== 'string' || data.action.trim() === '') {
222
+ return { valid: false, errors: ['action must be a non-empty string'] };
223
+ }
224
+ if (!COMPUTER_CONTROL_ACTIONS.includes(data.action)) {
225
+ return { valid: false, errors: [`Unknown action: ${data.action}`] };
226
+ }
227
+ return { valid: true };
228
+ }
229
+ getMetadata() {
230
+ return {
231
+ name: this.name,
232
+ description: this.description,
233
+ category: 'utility',
234
+ keywords: ['computer', 'control', 'mouse', 'keyboard', 'desktop', 'automation', 'snapshot', 'click'],
235
+ priority: 5,
236
+ requiresConfirmation: true,
237
+ modifiesFiles: false,
238
+ makesNetworkRequests: false,
239
+ };
240
+ }
241
+ isAvailable() {
242
+ return true;
243
+ }
244
+ }
245
+ // ============================================================================
246
+ // ScreenshotExecuteTool
247
+ // ============================================================================
248
+ /**
249
+ * ScreenshotExecuteTool - ITool adapter for screen capture
250
+ */
251
+ export class ScreenshotExecuteTool {
252
+ name = 'screenshot';
253
+ description = 'Capture screenshots of the screen, a window, or a region. Supports LLM-optimized output.';
254
+ async execute(input) {
255
+ const tool = await getScreenshot();
256
+ return await tool.capture({
257
+ fullscreen: input.fullscreen,
258
+ region: input.region,
259
+ window: input.window,
260
+ delay: input.delay,
261
+ format: input.format,
262
+ quality: input.quality,
263
+ outputPath: input.outputPath,
264
+ forLLM: input.forLLM,
265
+ });
266
+ }
267
+ getSchema() {
268
+ return {
269
+ name: this.name,
270
+ description: this.description,
271
+ parameters: {
272
+ type: 'object',
273
+ properties: {
274
+ fullscreen: { type: 'boolean', description: 'Capture entire screen (default: true)' },
275
+ window: { type: 'string', description: 'Window title or ID to capture' },
276
+ region: {
277
+ type: 'object',
278
+ description: 'Screen region to capture: { x: number, y: number, width: number, height: number }',
279
+ },
280
+ delay: { type: 'number', description: 'Delay in seconds before capture' },
281
+ format: { type: 'string', enum: ['png', 'jpg'], description: 'Image format' },
282
+ quality: { type: 'number', description: 'JPEG quality (1-100)' },
283
+ outputPath: { type: 'string', description: 'Custom output path' },
284
+ forLLM: { type: 'boolean', description: 'Normalize screenshot for LLM consumption (resize + compress)' },
285
+ },
286
+ required: [],
287
+ },
288
+ };
289
+ }
290
+ validate(input) {
291
+ if (typeof input !== 'object' || input === null) {
292
+ return { valid: false, errors: ['Input must be an object'] };
293
+ }
294
+ return { valid: true };
295
+ }
296
+ getMetadata() {
297
+ return {
298
+ name: this.name,
299
+ description: this.description,
300
+ category: 'utility',
301
+ keywords: ['screenshot', 'capture', 'screen', 'image', 'window'],
302
+ priority: 4,
303
+ requiresConfirmation: false,
304
+ modifiesFiles: true,
305
+ makesNetworkRequests: false,
306
+ };
307
+ }
308
+ isAvailable() {
309
+ return true;
310
+ }
311
+ }
312
+ // ============================================================================
175
313
  // ReasoningExecuteTool
176
314
  // ============================================================================
177
315
  /**
@@ -252,6 +390,8 @@ export class ReasoningExecuteTool {
252
390
  export function createMiscTools() {
253
391
  return [
254
392
  new BrowserExecuteTool(),
393
+ new ComputerControlExecuteTool(),
394
+ new ScreenshotExecuteTool(),
255
395
  new ReasoningExecuteTool(),
256
396
  ];
257
397
  }
@@ -1 +1 @@
1
- {"version":3,"file":"misc-tools.js","sourceRoot":"","sources":["../../../src/tools/registry/misc-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"misc-tools.js","sourceRoot":"","sources":["../../../src/tools/registry/misc-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Process Tool Adapters
3
+ *
4
+ * ITool-compliant adapter for ProcessTool operations.
5
+ * Follows the docker-tools.ts pattern for the FormalToolRegistry.
6
+ */
7
+ import type { ToolResult } from '../../types/index.js';
8
+ import type { ITool, ToolSchema, IToolMetadata, IValidationResult } from './types.js';
9
+ export declare class ProcessOperationTool implements ITool {
10
+ readonly name = "process";
11
+ readonly description = "Manage system processes: list, poll, log, write stdin, kill, clear logs, remove tracking";
12
+ execute(input: Record<string, unknown>): Promise<ToolResult>;
13
+ getSchema(): ToolSchema;
14
+ validate(input: unknown): IValidationResult;
15
+ getMetadata(): IToolMetadata;
16
+ isAvailable(): boolean;
17
+ dispose(): void;
18
+ }
19
+ export declare function createProcessTools(): ITool[];
20
+ export declare function resetProcessInstance(): Promise<void>;
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Process Tool Adapters
3
+ *
4
+ * ITool-compliant adapter for ProcessTool operations.
5
+ * Follows the docker-tools.ts pattern for the FormalToolRegistry.
6
+ */
7
+ import { getProcessTool } from '../process-tool.js';
8
+ // ============================================================================
9
+ // ProcessOperationTool
10
+ // ============================================================================
11
+ export class ProcessOperationTool {
12
+ name = 'process';
13
+ description = 'Manage system processes: list, poll, log, write stdin, kill, clear logs, remove tracking';
14
+ async execute(input) {
15
+ const action = input.action;
16
+ const args = input.args || {};
17
+ const tool = getProcessTool();
18
+ switch (action) {
19
+ case 'list':
20
+ return await tool.list(args.filter);
21
+ case 'poll':
22
+ return await tool.poll(args.pid);
23
+ case 'log':
24
+ return await tool.log(args.pid, {
25
+ lines: args.lines,
26
+ stderr: args.stderr,
27
+ });
28
+ case 'write':
29
+ return await tool.write(args.pid, args.input);
30
+ case 'kill':
31
+ return await tool.kill(args.pid, args.signal);
32
+ case 'clear':
33
+ return await tool.clear(args.pid);
34
+ case 'remove':
35
+ return await tool.remove(args.pid);
36
+ default:
37
+ return {
38
+ success: false,
39
+ error: `Unknown process action: ${action}`,
40
+ };
41
+ }
42
+ }
43
+ getSchema() {
44
+ return {
45
+ name: this.name,
46
+ description: this.description,
47
+ parameters: {
48
+ type: 'object',
49
+ properties: {
50
+ action: {
51
+ type: 'string',
52
+ description: 'Process action to perform',
53
+ enum: ['list', 'poll', 'log', 'write', 'kill', 'clear', 'remove'],
54
+ },
55
+ args: {
56
+ type: 'object',
57
+ description: 'Action-specific arguments',
58
+ properties: {
59
+ pid: {
60
+ type: 'number',
61
+ description: 'Process ID (required for poll, log, write, kill, clear, remove)',
62
+ },
63
+ filter: {
64
+ type: 'string',
65
+ description: 'Filter string for list action',
66
+ },
67
+ input: {
68
+ type: 'string',
69
+ description: 'Input to write to process stdin (for write action)',
70
+ },
71
+ signal: {
72
+ type: 'string',
73
+ description: 'Signal to send (for kill action, default: SIGTERM)',
74
+ },
75
+ lines: {
76
+ type: 'number',
77
+ description: 'Number of log lines to show (for log action, default: 100)',
78
+ },
79
+ stderr: {
80
+ type: 'boolean',
81
+ description: 'Show stderr instead of stdout (for log action)',
82
+ },
83
+ },
84
+ },
85
+ },
86
+ required: ['action'],
87
+ },
88
+ };
89
+ }
90
+ validate(input) {
91
+ if (typeof input !== 'object' || input === null) {
92
+ return { valid: false, errors: ['Input must be an object'] };
93
+ }
94
+ const data = input;
95
+ if (typeof data.action !== 'string' || data.action.trim() === '') {
96
+ return { valid: false, errors: ['action must be a non-empty string'] };
97
+ }
98
+ const validActions = ['list', 'poll', 'log', 'write', 'kill', 'clear', 'remove'];
99
+ if (!validActions.includes(data.action)) {
100
+ return { valid: false, errors: [`Unknown action: ${data.action}`] };
101
+ }
102
+ // Validate pid is present for actions that require it
103
+ const pidActions = ['poll', 'log', 'write', 'kill', 'clear', 'remove'];
104
+ if (pidActions.includes(data.action)) {
105
+ const args = data.args;
106
+ if (!args || typeof args.pid !== 'number') {
107
+ return { valid: false, errors: [`Action "${data.action}" requires args.pid (number)`] };
108
+ }
109
+ }
110
+ return { valid: true };
111
+ }
112
+ getMetadata() {
113
+ return {
114
+ name: this.name,
115
+ description: this.description,
116
+ category: 'system',
117
+ keywords: ['process', 'pid', 'kill', 'stdin', 'log', 'managed'],
118
+ priority: 5,
119
+ requiresConfirmation: true,
120
+ modifiesFiles: false,
121
+ makesNetworkRequests: false,
122
+ };
123
+ }
124
+ isAvailable() {
125
+ return true;
126
+ }
127
+ dispose() {
128
+ // No cleanup needed
129
+ }
130
+ }
131
+ // ============================================================================
132
+ // Factory
133
+ // ============================================================================
134
+ export function createProcessTools() {
135
+ return [new ProcessOperationTool()];
136
+ }
137
+ export async function resetProcessInstance() {
138
+ const { resetProcessTool } = await import('../process-tool.js');
139
+ resetProcessTool();
140
+ }
141
+ //# sourceMappingURL=process-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-tools.js","sourceRoot":"","sources":["../../../src/tools/registry/process-tools.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ export interface JsonSchemaProperty {
26
26
  description?: string;
27
27
  enum?: string[];
28
28
  items?: JsonSchemaProperty;
29
+ properties?: Record<string, JsonSchemaProperty>;
30
+ required?: string[];
29
31
  default?: unknown;
30
32
  minimum?: number;
31
33
  maximum?: number;
@@ -138,10 +138,12 @@ export class SearchTool {
138
138
  rg.kill("SIGKILL");
139
139
  }, SEARCH_TIMEOUT);
140
140
  rg.stdout.on("data", (data) => {
141
- output += data.toString();
141
+ if (output.length < 5_000_000)
142
+ output += data.toString();
142
143
  });
143
144
  rg.stderr.on("data", (data) => {
144
- errorOutput += data.toString();
145
+ if (errorOutput.length < 100_000)
146
+ errorOutput += data.toString();
145
147
  });
146
148
  rg.on("close", (code) => {
147
149
  clearTimeout(timeout);