@mseep/clawdcursor 1.5.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.
Files changed (354) hide show
  1. package/CHANGELOG.md +2264 -0
  2. package/LICENSE +21 -0
  3. package/README.md +385 -0
  4. package/SECURITY.md +44 -0
  5. package/SKILL.md +503 -0
  6. package/dist/core/agent-loop/agent.d.ts +42 -0
  7. package/dist/core/agent-loop/agent.js +1023 -0
  8. package/dist/core/agent-loop/agent.js.map +1 -0
  9. package/dist/core/agent-loop/batch-tool.d.ts +25 -0
  10. package/dist/core/agent-loop/batch-tool.js +218 -0
  11. package/dist/core/agent-loop/batch-tool.js.map +1 -0
  12. package/dist/core/agent-loop/coord-scale.d.ts +72 -0
  13. package/dist/core/agent-loop/coord-scale.js +89 -0
  14. package/dist/core/agent-loop/coord-scale.js.map +1 -0
  15. package/dist/core/agent-loop/focus-guard.d.ts +24 -0
  16. package/dist/core/agent-loop/focus-guard.js +29 -0
  17. package/dist/core/agent-loop/focus-guard.js.map +1 -0
  18. package/dist/core/agent-loop/project-mcp.d.ts +97 -0
  19. package/dist/core/agent-loop/project-mcp.js +253 -0
  20. package/dist/core/agent-loop/project-mcp.js.map +1 -0
  21. package/dist/core/agent-loop/prompt.d.ts +45 -0
  22. package/dist/core/agent-loop/prompt.js +426 -0
  23. package/dist/core/agent-loop/prompt.js.map +1 -0
  24. package/dist/core/agent-loop/tool-meta.d.ts +93 -0
  25. package/dist/core/agent-loop/tool-meta.js +651 -0
  26. package/dist/core/agent-loop/tool-meta.js.map +1 -0
  27. package/dist/core/agent-loop/tools.d.ts +38 -0
  28. package/dist/core/agent-loop/tools.js +2134 -0
  29. package/dist/core/agent-loop/tools.js.map +1 -0
  30. package/dist/core/agent-loop/types.d.ts +170 -0
  31. package/dist/core/agent-loop/types.js +12 -0
  32. package/dist/core/agent-loop/types.js.map +1 -0
  33. package/dist/core/agent.d.ts +51 -0
  34. package/dist/core/agent.js +245 -0
  35. package/dist/core/agent.js.map +1 -0
  36. package/dist/core/app-categories.d.ts +67 -0
  37. package/dist/core/app-categories.js +108 -0
  38. package/dist/core/app-categories.js.map +1 -0
  39. package/dist/core/banner.d.ts +70 -0
  40. package/dist/core/banner.js +245 -0
  41. package/dist/core/banner.js.map +1 -0
  42. package/dist/core/classify/capability.d.ts +45 -0
  43. package/dist/core/classify/capability.js +78 -0
  44. package/dist/core/classify/capability.js.map +1 -0
  45. package/dist/core/decompose/llm-decomposer.d.ts +35 -0
  46. package/dist/core/decompose/llm-decomposer.js +156 -0
  47. package/dist/core/decompose/llm-decomposer.js.map +1 -0
  48. package/dist/core/decompose/parser.d.ts +27 -0
  49. package/dist/core/decompose/parser.js +101 -0
  50. package/dist/core/decompose/parser.js.map +1 -0
  51. package/dist/core/observability/correlation.d.ts +19 -0
  52. package/dist/core/observability/correlation.js +36 -0
  53. package/dist/core/observability/correlation.js.map +1 -0
  54. package/dist/core/observability/cost-meter.d.ts +51 -0
  55. package/dist/core/observability/cost-meter.js +134 -0
  56. package/dist/core/observability/cost-meter.js.map +1 -0
  57. package/dist/core/observability/logger.d.ts +61 -0
  58. package/dist/core/observability/logger.js +550 -0
  59. package/dist/core/observability/logger.js.map +1 -0
  60. package/dist/core/router/aliases.d.ts +50 -0
  61. package/dist/core/router/aliases.js +104 -0
  62. package/dist/core/router/aliases.js.map +1 -0
  63. package/dist/core/router/normalize.d.ts +41 -0
  64. package/dist/core/router/normalize.js +80 -0
  65. package/dist/core/router/normalize.js.map +1 -0
  66. package/dist/core/safety.d.ts +126 -0
  67. package/dist/core/safety.js +568 -0
  68. package/dist/core/safety.js.map +1 -0
  69. package/dist/core/sense/a11y-resolver.d.ts +73 -0
  70. package/dist/core/sense/a11y-resolver.js +76 -0
  71. package/dist/core/sense/a11y-resolver.js.map +1 -0
  72. package/dist/core/sense/fingerprint.d.ts +41 -0
  73. package/dist/core/sense/fingerprint.js +123 -0
  74. package/dist/core/sense/fingerprint.js.map +1 -0
  75. package/dist/core/sense/rank.d.ts +70 -0
  76. package/dist/core/sense/rank.js +192 -0
  77. package/dist/core/sense/rank.js.map +1 -0
  78. package/dist/core/sense/reactive-check.d.ts +40 -0
  79. package/dist/core/sense/reactive-check.js +48 -0
  80. package/dist/core/sense/reactive-check.js.map +1 -0
  81. package/dist/core/sense/snapshot.d.ts +19 -0
  82. package/dist/core/sense/snapshot.js +100 -0
  83. package/dist/core/sense/snapshot.js.map +1 -0
  84. package/dist/core/sense/types.d.ts +66 -0
  85. package/dist/core/sense/types.js +9 -0
  86. package/dist/core/sense/types.js.map +1 -0
  87. package/dist/core/sense/ui-map-anchors.d.ts +7 -0
  88. package/dist/core/sense/ui-map-anchors.js +24 -0
  89. package/dist/core/sense/ui-map-anchors.js.map +1 -0
  90. package/dist/core/sense/ui-map-elements.d.ts +5 -0
  91. package/dist/core/sense/ui-map-elements.js +33 -0
  92. package/dist/core/sense/ui-map-elements.js.map +1 -0
  93. package/dist/core/sense/ui-map-find.d.ts +56 -0
  94. package/dist/core/sense/ui-map-find.js +153 -0
  95. package/dist/core/sense/ui-map-find.js.map +1 -0
  96. package/dist/core/sense/ui-map-fuse.d.ts +4 -0
  97. package/dist/core/sense/ui-map-fuse.js +44 -0
  98. package/dist/core/sense/ui-map-fuse.js.map +1 -0
  99. package/dist/core/sense/ui-map-geom.d.ts +3 -0
  100. package/dist/core/sense/ui-map-geom.js +16 -0
  101. package/dist/core/sense/ui-map-geom.js.map +1 -0
  102. package/dist/core/sense/ui-map-holder.d.ts +58 -0
  103. package/dist/core/sense/ui-map-holder.js +87 -0
  104. package/dist/core/sense/ui-map-holder.js.map +1 -0
  105. package/dist/core/sense/ui-map-normalize.d.ts +19 -0
  106. package/dist/core/sense/ui-map-normalize.js +65 -0
  107. package/dist/core/sense/ui-map-normalize.js.map +1 -0
  108. package/dist/core/sense/ui-map-render.d.ts +4 -0
  109. package/dist/core/sense/ui-map-render.js +34 -0
  110. package/dist/core/sense/ui-map-render.js.map +1 -0
  111. package/dist/core/sense/ui-map-resolve.d.ts +41 -0
  112. package/dist/core/sense/ui-map-resolve.js +59 -0
  113. package/dist/core/sense/ui-map-resolve.js.map +1 -0
  114. package/dist/core/sense/ui-map-types.d.ts +66 -0
  115. package/dist/core/sense/ui-map-types.js +11 -0
  116. package/dist/core/sense/ui-map-types.js.map +1 -0
  117. package/dist/core/sense/ui-map.d.ts +29 -0
  118. package/dist/core/sense/ui-map.js +113 -0
  119. package/dist/core/sense/ui-map.js.map +1 -0
  120. package/dist/core/verify/assertions.d.ts +132 -0
  121. package/dist/core/verify/assertions.js +284 -0
  122. package/dist/core/verify/assertions.js.map +1 -0
  123. package/dist/index.d.ts +21 -0
  124. package/dist/index.js +24 -0
  125. package/dist/index.js.map +1 -0
  126. package/dist/llm/browser-config.d.ts +36 -0
  127. package/dist/llm/browser-config.js +83 -0
  128. package/dist/llm/browser-config.js.map +1 -0
  129. package/dist/llm/client.d.ts +268 -0
  130. package/dist/llm/client.js +1094 -0
  131. package/dist/llm/client.js.map +1 -0
  132. package/dist/llm/config.d.ts +79 -0
  133. package/dist/llm/config.js +375 -0
  134. package/dist/llm/config.js.map +1 -0
  135. package/dist/llm/credentials.d.ts +35 -0
  136. package/dist/llm/credentials.js +491 -0
  137. package/dist/llm/credentials.js.map +1 -0
  138. package/dist/llm/external-creds.d.ts +42 -0
  139. package/dist/llm/external-creds.js +169 -0
  140. package/dist/llm/external-creds.js.map +1 -0
  141. package/dist/llm/providers.d.ts +123 -0
  142. package/dist/llm/providers.js +717 -0
  143. package/dist/llm/providers.js.map +1 -0
  144. package/dist/paths.d.ts +31 -0
  145. package/dist/paths.js +147 -0
  146. package/dist/paths.js.map +1 -0
  147. package/dist/platform/accessibility.d.ts +139 -0
  148. package/dist/platform/accessibility.js +670 -0
  149. package/dist/platform/accessibility.js.map +1 -0
  150. package/dist/platform/cdp-driver.d.ts +318 -0
  151. package/dist/platform/cdp-driver.js +1179 -0
  152. package/dist/platform/cdp-driver.js.map +1 -0
  153. package/dist/platform/index.d.ts +11 -0
  154. package/dist/platform/index.js +69 -0
  155. package/dist/platform/index.js.map +1 -0
  156. package/dist/platform/keys.d.ts +17 -0
  157. package/dist/platform/keys.js +129 -0
  158. package/dist/platform/keys.js.map +1 -0
  159. package/dist/platform/launch-poll.d.ts +101 -0
  160. package/dist/platform/launch-poll.js +177 -0
  161. package/dist/platform/launch-poll.js.map +1 -0
  162. package/dist/platform/linux.d.ts +173 -0
  163. package/dist/platform/linux.js +1253 -0
  164. package/dist/platform/linux.js.map +1 -0
  165. package/dist/platform/macos.d.ts +136 -0
  166. package/dist/platform/macos.js +976 -0
  167. package/dist/platform/macos.js.map +1 -0
  168. package/dist/platform/native-desktop.d.ts +145 -0
  169. package/dist/platform/native-desktop.js +936 -0
  170. package/dist/platform/native-desktop.js.map +1 -0
  171. package/dist/platform/native-helper.d.ts +130 -0
  172. package/dist/platform/native-helper.js +592 -0
  173. package/dist/platform/native-helper.js.map +1 -0
  174. package/dist/platform/ocr-engine.d.ts +78 -0
  175. package/dist/platform/ocr-engine.js +363 -0
  176. package/dist/platform/ocr-engine.js.map +1 -0
  177. package/dist/platform/ps-runner.d.ts +28 -0
  178. package/dist/platform/ps-runner.js +228 -0
  179. package/dist/platform/ps-runner.js.map +1 -0
  180. package/dist/platform/types.d.ts +397 -0
  181. package/dist/platform/types.js +15 -0
  182. package/dist/platform/types.js.map +1 -0
  183. package/dist/platform/uri-handler.d.ts +75 -0
  184. package/dist/platform/uri-handler.js +273 -0
  185. package/dist/platform/uri-handler.js.map +1 -0
  186. package/dist/platform/wayland-backend.d.ts +53 -0
  187. package/dist/platform/wayland-backend.js +348 -0
  188. package/dist/platform/wayland-backend.js.map +1 -0
  189. package/dist/platform/windows.d.ts +232 -0
  190. package/dist/platform/windows.js +1210 -0
  191. package/dist/platform/windows.js.map +1 -0
  192. package/dist/postbuild.d.ts +10 -0
  193. package/dist/postbuild.js +98 -0
  194. package/dist/postbuild.js.map +1 -0
  195. package/dist/schema/snapshot.d.ts +33 -0
  196. package/dist/schema/snapshot.js +90 -0
  197. package/dist/schema/snapshot.js.map +1 -0
  198. package/dist/shortcuts.d.ts +30 -0
  199. package/dist/shortcuts.js +261 -0
  200. package/dist/shortcuts.js.map +1 -0
  201. package/dist/surface/cli.d.ts +7 -0
  202. package/dist/surface/cli.js +1556 -0
  203. package/dist/surface/cli.js.map +1 -0
  204. package/dist/surface/dashboard.d.ts +8 -0
  205. package/dist/surface/dashboard.js +1193 -0
  206. package/dist/surface/dashboard.js.map +1 -0
  207. package/dist/surface/doctor.d.ts +29 -0
  208. package/dist/surface/doctor.js +1514 -0
  209. package/dist/surface/doctor.js.map +1 -0
  210. package/dist/surface/format.d.ts +10 -0
  211. package/dist/surface/format.js +37 -0
  212. package/dist/surface/format.js.map +1 -0
  213. package/dist/surface/http-utility.d.ts +65 -0
  214. package/dist/surface/http-utility.js +336 -0
  215. package/dist/surface/http-utility.js.map +1 -0
  216. package/dist/surface/mcp-server.d.ts +91 -0
  217. package/dist/surface/mcp-server.js +280 -0
  218. package/dist/surface/mcp-server.js.map +1 -0
  219. package/dist/surface/onboarding.d.ts +15 -0
  220. package/dist/surface/onboarding.js +184 -0
  221. package/dist/surface/onboarding.js.map +1 -0
  222. package/dist/surface/pidfile.d.ts +79 -0
  223. package/dist/surface/pidfile.js +263 -0
  224. package/dist/surface/pidfile.js.map +1 -0
  225. package/dist/surface/readiness.d.ts +45 -0
  226. package/dist/surface/readiness.js +230 -0
  227. package/dist/surface/readiness.js.map +1 -0
  228. package/dist/surface/report.d.ts +68 -0
  229. package/dist/surface/report.js +341 -0
  230. package/dist/surface/report.js.map +1 -0
  231. package/dist/surface/skill-register.d.ts +14 -0
  232. package/dist/surface/skill-register.js +150 -0
  233. package/dist/surface/skill-register.js.map +1 -0
  234. package/dist/surface/version.d.ts +6 -0
  235. package/dist/surface/version.js +27 -0
  236. package/dist/surface/version.js.map +1 -0
  237. package/dist/tools/a11y.d.ts +8 -0
  238. package/dist/tools/a11y.js +545 -0
  239. package/dist/tools/a11y.js.map +1 -0
  240. package/dist/tools/a11y_depth.d.ts +19 -0
  241. package/dist/tools/a11y_depth.js +455 -0
  242. package/dist/tools/a11y_depth.js.map +1 -0
  243. package/dist/tools/agent.d.ts +15 -0
  244. package/dist/tools/agent.js +248 -0
  245. package/dist/tools/agent.js.map +1 -0
  246. package/dist/tools/batch.d.ts +46 -0
  247. package/dist/tools/batch.js +230 -0
  248. package/dist/tools/batch.js.map +1 -0
  249. package/dist/tools/cdp.d.ts +8 -0
  250. package/dist/tools/cdp.js +233 -0
  251. package/dist/tools/cdp.js.map +1 -0
  252. package/dist/tools/compact.d.ts +63 -0
  253. package/dist/tools/compact.js +418 -0
  254. package/dist/tools/compact.js.map +1 -0
  255. package/dist/tools/cost-class.d.ts +38 -0
  256. package/dist/tools/cost-class.js +117 -0
  257. package/dist/tools/cost-class.js.map +1 -0
  258. package/dist/tools/desktop.d.ts +9 -0
  259. package/dist/tools/desktop.js +346 -0
  260. package/dist/tools/desktop.js.map +1 -0
  261. package/dist/tools/electron_bridge.d.ts +41 -0
  262. package/dist/tools/electron_bridge.js +261 -0
  263. package/dist/tools/electron_bridge.js.map +1 -0
  264. package/dist/tools/extras.d.ts +22 -0
  265. package/dist/tools/extras.js +942 -0
  266. package/dist/tools/extras.js.map +1 -0
  267. package/dist/tools/favorites.d.ts +13 -0
  268. package/dist/tools/favorites.js +137 -0
  269. package/dist/tools/favorites.js.map +1 -0
  270. package/dist/tools/introspection.d.ts +13 -0
  271. package/dist/tools/introspection.js +55 -0
  272. package/dist/tools/introspection.js.map +1 -0
  273. package/dist/tools/ocr.d.ts +8 -0
  274. package/dist/tools/ocr.js +66 -0
  275. package/dist/tools/ocr.js.map +1 -0
  276. package/dist/tools/orchestration.d.ts +7 -0
  277. package/dist/tools/orchestration.js +377 -0
  278. package/dist/tools/orchestration.js.map +1 -0
  279. package/dist/tools/playbooks/extract-compose.d.ts +22 -0
  280. package/dist/tools/playbooks/extract-compose.js +85 -0
  281. package/dist/tools/playbooks/extract-compose.js.map +1 -0
  282. package/dist/tools/playbooks/find-replace.d.ts +11 -0
  283. package/dist/tools/playbooks/find-replace.js +56 -0
  284. package/dist/tools/playbooks/find-replace.js.map +1 -0
  285. package/dist/tools/playbooks/index.d.ts +63 -0
  286. package/dist/tools/playbooks/index.js +70 -0
  287. package/dist/tools/playbooks/index.js.map +1 -0
  288. package/dist/tools/playbooks/keys-blocklist.d.ts +24 -0
  289. package/dist/tools/playbooks/keys-blocklist.js +89 -0
  290. package/dist/tools/playbooks/keys-blocklist.js.map +1 -0
  291. package/dist/tools/registry.d.ts +40 -0
  292. package/dist/tools/registry.js +560 -0
  293. package/dist/tools/registry.js.map +1 -0
  294. package/dist/tools/safety-gate.d.ts +16 -0
  295. package/dist/tools/safety-gate.js +70 -0
  296. package/dist/tools/safety-gate.js.map +1 -0
  297. package/dist/tools/scheduler.d.ts +76 -0
  298. package/dist/tools/scheduler.js +413 -0
  299. package/dist/tools/scheduler.js.map +1 -0
  300. package/dist/tools/shortcuts.d.ts +13 -0
  301. package/dist/tools/shortcuts.js +205 -0
  302. package/dist/tools/shortcuts.js.map +1 -0
  303. package/dist/tools/smart.d.ts +15 -0
  304. package/dist/tools/smart.js +785 -0
  305. package/dist/tools/smart.js.map +1 -0
  306. package/dist/tools/types.d.ts +174 -0
  307. package/dist/tools/types.js +67 -0
  308. package/dist/tools/types.js.map +1 -0
  309. package/dist/tools/window-text.d.ts +15 -0
  310. package/dist/tools/window-text.js +39 -0
  311. package/dist/tools/window-text.js.map +1 -0
  312. package/dist/types.d.ts +122 -0
  313. package/dist/types.js +41 -0
  314. package/dist/types.js.map +1 -0
  315. package/native/Package.swift +38 -0
  316. package/native/README.md +113 -0
  317. package/native/Sources/ClawdCursorHelper/main.swift +602 -0
  318. package/native/Sources/ClawdCursorHost/main.swift +182 -0
  319. package/native/Sources/PermissionCheck/main.swift +53 -0
  320. package/native/Sources/ScreenshotHelper/main.swift +219 -0
  321. package/native/build.sh +139 -0
  322. package/native/entitlements.plist +12 -0
  323. package/package.json +115 -0
  324. package/scripts/banner.ps1 +112 -0
  325. package/scripts/coord-accuracy.ps1 +140 -0
  326. package/scripts/coord-uwp.ps1 +80 -0
  327. package/scripts/edge-glow.ps1 +180 -0
  328. package/scripts/find-element.ps1 +198 -0
  329. package/scripts/get-foreground-window.ps1 +71 -0
  330. package/scripts/get-screen-context.ps1 +183 -0
  331. package/scripts/get-windows.ps1 +66 -0
  332. package/scripts/install-panic-hotkey.ps1 +46 -0
  333. package/scripts/interact-element.ps1 +431 -0
  334. package/scripts/invoke-element.ps1 +314 -0
  335. package/scripts/linux/atspi-bridge.py +356 -0
  336. package/scripts/linux/ocr-recognize.py +154 -0
  337. package/scripts/mac/_window-picker.jxa +163 -0
  338. package/scripts/mac/find-element.jxa +0 -0
  339. package/scripts/mac/find-element.sh +161 -0
  340. package/scripts/mac/focus-window.jxa +284 -0
  341. package/scripts/mac/get-focused-element.jxa +102 -0
  342. package/scripts/mac/get-foreground-window.jxa +173 -0
  343. package/scripts/mac/get-screen-context.jxa +197 -0
  344. package/scripts/mac/get-ui-tree.sh +141 -0
  345. package/scripts/mac/get-windows.jxa +117 -0
  346. package/scripts/mac/interact-element.sh +235 -0
  347. package/scripts/mac/invoke-element.jxa +408 -0
  348. package/scripts/mac/ocr-recognize.swift +124 -0
  349. package/scripts/ocr-recognize.ps1 +102 -0
  350. package/scripts/postinstall-native.js +48 -0
  351. package/scripts/ps-bridge.ps1 +830 -0
  352. package/scripts/smoke-mcp.ps1 +119 -0
  353. package/scripts/sync-version.ts +178 -0
  354. package/scripts/verify-install.js +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart.js","sourceRoot":"","sources":["../../src/tools/smart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Transport-agnostic tool definitions.
3
+ *
4
+ * Tools are defined once here and adapted to:
5
+ * - HTTP REST API (GET /tools, POST /execute/:name)
6
+ * - MCP protocol (stdio or SSE)
7
+ * - OpenAI function-calling format (GET /tools?format=openai)
8
+ *
9
+ * No MCP, no Zod, no framework dependency — just plain TypeScript.
10
+ */
11
+ /** Parameter definition for a tool (maps to JSON Schema) */
12
+ export interface ParameterDef {
13
+ type: 'string' | 'number' | 'boolean' | 'array';
14
+ description: string;
15
+ required?: boolean;
16
+ enum?: string[];
17
+ minimum?: number;
18
+ maximum?: number;
19
+ default?: any;
20
+ /** For type:'array' — the JSON Schema each element must match. */
21
+ items?: Record<string, any>;
22
+ }
23
+ /** Result returned by a tool handler */
24
+ export interface ToolResult {
25
+ /** Text output */
26
+ text: string;
27
+ /** Optional image (base64 encoded) */
28
+ image?: {
29
+ data: string;
30
+ mimeType: string;
31
+ };
32
+ /** Whether this result represents an error */
33
+ isError?: boolean;
34
+ }
35
+ /** Shared context passed to tool handlers — initialized subsystems */
36
+ export interface ToolContext {
37
+ /** NativeDesktop — mouse, keyboard, screenshot control */
38
+ desktop: any;
39
+ /** AccessibilityBridge — UI automation, windows, clipboard */
40
+ a11y: any;
41
+ /** CDPDriver — browser DOM interaction via Chrome DevTools Protocol */
42
+ cdp: any;
43
+ /**
44
+ * PlatformAdapter — OS-agnostic primitives added in Tranche 1A
45
+ * (mouseDown/Up, keyDown/Up, setWindowState, setWindowBounds,
46
+ * listDisplays, waitForElement, widened invokeElement).
47
+ * Lazy-loaded via `ensureInitialized` so tool handlers don't need
48
+ * async dance on every call.
49
+ */
50
+ platform?: import('../platform/types').PlatformAdapter;
51
+ /**
52
+ * The autonomous Agent — present in `clawdcursor agent` (the daemon)
53
+ * and undefined when run via stdio MCP without a running agent.
54
+ * Used by submit_task / abort_task / agent_status / task_logs_*.
55
+ * v0.9 PR7.2: was previously implicit on `agent.x` accesses inside
56
+ * REST handlers; now it lives on ToolContext so MCP tools can use it.
57
+ */
58
+ agent?: import('../core/agent').Agent;
59
+ /**
60
+ * Optional log buffer accessor — populated by the daemon's createServer.
61
+ * MCP `logs_recent` reads through this; null/missing means logs are not
62
+ * captured (e.g. stdio MCP).
63
+ */
64
+ getLogBuffer?: () => Array<{
65
+ timestamp: number;
66
+ level: string;
67
+ message: string;
68
+ }>;
69
+ /** Session-scoped UIMap cache for safe el_NN element refs (Part 2). */
70
+ uiMaps?: import('../core/sense/ui-map-holder').UIMapHolder;
71
+ /** Image-space → logical (mouse) coords. mouseCoord = imageCoord * factor */
72
+ getMouseScaleFactor: () => number;
73
+ /** Image-space → physical pixel coords (for screenshot region crop) */
74
+ getScreenshotScaleFactor: () => number;
75
+ /** Ensure subsystems are initialized (lazy init gate) */
76
+ ensureInitialized: () => Promise<void>;
77
+ }
78
+ /** The 6 compact compound tool names */
79
+ export type CompactGroup = 'computer' | 'accessibility' | 'window' | 'system' | 'browser' | 'task';
80
+ /**
81
+ * What kind of evidence a tool produces and how token-expensive its
82
+ * response typically is for the calling LLM. Distinct from `safetyTier`
83
+ * (which answers "is this destructive?") — `costClass` answers "how
84
+ * much will I pay in tokens when this returns?".
85
+ *
86
+ * Cheaper-first ordering: `act` < `inspect` < `perceive-text` < `perceive-image`.
87
+ *
88
+ * act — side-effect verb; caller already knows what + where.
89
+ * Response typically ≤200 tokens (a status line).
90
+ * Examples: mouse_click, key_press, type_text, mouse_drag.
91
+ *
92
+ * inspect — cheap structured read. Response ≤2K tokens.
93
+ * Examples: get_active_window, get_windows, find_element,
94
+ * cdp_list_tabs.
95
+ *
96
+ * perceive-text — a11y tree, OCR, or DOM dump. Response ≤10K tokens.
97
+ * Examples: read_screen, ocr_read_screen, cdp_page_context,
98
+ * smart_click (internally OCR+a11y), smart_type.
99
+ *
100
+ * perceive-image — screenshot with image bytes. Response ≤50K tokens
101
+ * including base64 image data; vision LLMs pay extra.
102
+ * Examples: desktop_screenshot, desktop_screenshot_region.
103
+ *
104
+ * Compound dispatcher tools (`computer`, `accessibility`, `window`, `system`,
105
+ * `browser`, `task`) leave this `undefined` — their cost depends on which
106
+ * delegate the `action` parameter routes to.
107
+ */
108
+ export type ToolCostClass = 'act' | 'inspect' | 'perceive-text' | 'perceive-image';
109
+ /** A single tool definition — transport agnostic */
110
+ export interface ToolDefinition {
111
+ /** Unique tool name (e.g. "mouse_click", "read_screen") */
112
+ name: string;
113
+ /** Human-readable description of what the tool does */
114
+ description: string;
115
+ /** Parameter schema — empty object for no-param tools */
116
+ parameters: Record<string, ParameterDef>;
117
+ /** Tool category for organization */
118
+ category: 'perception' | 'mouse' | 'keyboard' | 'window' | 'clipboard' | 'browser' | 'orchestration';
119
+ /**
120
+ * The compact compound this granular tool belongs to.
121
+ * Derived by reverse-engineering the ACTION_MAP in compact.ts.
122
+ * Undefined for granular tools that are not exposed via any compound
123
+ * (e.g. smart_read, smart_click, smart_type, minimize_window).
124
+ */
125
+ compactGroup?: CompactGroup;
126
+ /**
127
+ * Safety tier for the canonical safety gate.
128
+ *
129
+ * 0 — read-only (screenshot, a11y snapshot, clipboard read …)
130
+ * 1 — neutral input (click, type, scroll — reversible, no irreversible side-effect)
131
+ * 2 — mutation (close window, write clipboard, navigate …)
132
+ * 3 — destructive / system (cdp_evaluate arbitrary JS, relaunch_with_cdp …)
133
+ *
134
+ * When omitted the gate falls back to the `TOOL_TIER` name-lookup table in
135
+ * `pipeline/safety/layer.ts` for backward-compatibility.
136
+ */
137
+ safetyTier?: 0 | 1 | 2 | 3;
138
+ /**
139
+ * Token-cost class — what kind of evidence this tool returns and how
140
+ * expensive its response is for the calling LLM. See `ToolCostClass`.
141
+ * `tools/list` exposes this so a tool-picking LLM can prefer cheaper
142
+ * alternatives first (e.g. `find_element` before `read_screen` before
143
+ * `desktop_screenshot`).
144
+ *
145
+ * Optional during the rollout. The coverage test in
146
+ * `src/__tests__/cost-class-coverage.test.ts` warns on missing values
147
+ * and will flip to required in a future minor.
148
+ */
149
+ costClass?: ToolCostClass;
150
+ /**
151
+ * Other tools the caller should try BEFORE this one when they apply
152
+ * to the same job at a lower cost class. Names must reference real
153
+ * tools — validated at module load.
154
+ *
155
+ * Example: `read_screen.cheaperAlternatives = ['find_element']`.
156
+ */
157
+ cheaperAlternatives?: string[];
158
+ /** The handler function */
159
+ handler: (params: Record<string, any>, ctx: ToolContext) => Promise<ToolResult>;
160
+ }
161
+ /** Convert tool parameters to JSON Schema (for REST API /tools endpoint) */
162
+ export declare function toJsonSchema(params: Record<string, ParameterDef>): object;
163
+ /** Convert tools to OpenAI function-calling format */
164
+ export declare function toOpenAiFunctions(tools: ToolDefinition[]): object[];
165
+ /**
166
+ * Convert a11y coordinate to mouseClick coordinate.
167
+ *
168
+ * NOTE: Empirical testing shows a11y bounds and nut-js mouseClick share the
169
+ * same coordinate system on most Windows configs (both use screen coords from
170
+ * the same DPI-awareness level). This function may divide unnecessarily on
171
+ * some setups. The smart tools (smart_click, invoke_element) pass coords
172
+ * directly for this reason. Only focus_window uses this helper as a fallback.
173
+ */
174
+ export declare function a11yToMouse(physicalCoord: number, ctx: ToolContext): number;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ /**
3
+ * Transport-agnostic tool definitions.
4
+ *
5
+ * Tools are defined once here and adapted to:
6
+ * - HTTP REST API (GET /tools, POST /execute/:name)
7
+ * - MCP protocol (stdio or SSE)
8
+ * - OpenAI function-calling format (GET /tools?format=openai)
9
+ *
10
+ * No MCP, no Zod, no framework dependency — just plain TypeScript.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.toJsonSchema = toJsonSchema;
14
+ exports.toOpenAiFunctions = toOpenAiFunctions;
15
+ exports.a11yToMouse = a11yToMouse;
16
+ // ── Schema Conversion Helpers ──
17
+ /** Convert tool parameters to JSON Schema (for REST API /tools endpoint) */
18
+ function toJsonSchema(params) {
19
+ const properties = {};
20
+ const required = [];
21
+ for (const [key, def] of Object.entries(params)) {
22
+ const prop = { type: def.type, description: def.description };
23
+ if (def.enum)
24
+ prop.enum = def.enum;
25
+ if (def.minimum !== undefined)
26
+ prop.minimum = def.minimum;
27
+ if (def.maximum !== undefined)
28
+ prop.maximum = def.maximum;
29
+ if (def.default !== undefined)
30
+ prop.default = def.default;
31
+ if (def.items !== undefined)
32
+ prop.items = def.items;
33
+ properties[key] = prop;
34
+ if (def.required !== false)
35
+ required.push(key);
36
+ }
37
+ return {
38
+ type: 'object',
39
+ properties,
40
+ required: required.length > 0 ? required : undefined,
41
+ };
42
+ }
43
+ /** Convert tools to OpenAI function-calling format */
44
+ function toOpenAiFunctions(tools) {
45
+ return tools.map(t => ({
46
+ type: 'function',
47
+ function: {
48
+ name: t.name,
49
+ description: t.description,
50
+ parameters: toJsonSchema(t.parameters),
51
+ },
52
+ }));
53
+ }
54
+ /**
55
+ * Convert a11y coordinate to mouseClick coordinate.
56
+ *
57
+ * NOTE: Empirical testing shows a11y bounds and nut-js mouseClick share the
58
+ * same coordinate system on most Windows configs (both use screen coords from
59
+ * the same DPI-awareness level). This function may divide unnecessarily on
60
+ * some setups. The smart tools (smart_click, invoke_element) pass coords
61
+ * directly for this reason. Only focus_window uses this helper as a fallback.
62
+ */
63
+ function a11yToMouse(physicalCoord, ctx) {
64
+ const dpiRatio = ctx.getScreenshotScaleFactor() / ctx.getMouseScaleFactor();
65
+ return Math.round(physicalCoord / dpiRatio);
66
+ }
67
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AA0JH,oCAoBC;AAGD,8CASC;AAWD,kCAGC;AAjDD,kCAAkC;AAElC,4EAA4E;AAC5E,SAAgB,YAAY,CAAC,MAAoC;IAC/D,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;QACnE,IAAI,GAAG,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACnC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC1D,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC1D,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC1D,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACpD,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACvB,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACrD,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,SAAgB,iBAAiB,CAAC,KAAuB;IACvD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;SACvC;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,aAAqB,EAAE,GAAgB;IACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,wBAAwB,EAAE,GAAG,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Window/title text normalization for substring matching.
3
+ *
4
+ * Real-world window titles contain invisible Unicode that breaks naive
5
+ * substring compares. Microsoft Edge inserts a NO-BREAK SPACE (U+00A0) between
6
+ * "Microsoft" and "Edge", so a guard like `expect:{window:"Microsoft Edge"}`
7
+ * against the live title "... - Microsoft Edge" silently fails even though the
8
+ * window IS Edge (session 2026-06-11). Normalize both sides before comparing:
9
+ * strip zero-width characters, fold every Unicode whitespace run to a single
10
+ * ASCII space, lower-case, trim.
11
+ */
12
+ /** Normalize a title/window string for robust case-insensitive substring matching. */
13
+ export declare function normalizeWindowText(s: string | undefined | null): string;
14
+ /** True when `haystack` contains `needle` after both are window-normalized. */
15
+ export declare function windowTextIncludes(haystack: string | undefined | null, needle: string | undefined | null): boolean;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * Window/title text normalization for substring matching.
4
+ *
5
+ * Real-world window titles contain invisible Unicode that breaks naive
6
+ * substring compares. Microsoft Edge inserts a NO-BREAK SPACE (U+00A0) between
7
+ * "Microsoft" and "Edge", so a guard like `expect:{window:"Microsoft Edge"}`
8
+ * against the live title "... - Microsoft Edge" silently fails even though the
9
+ * window IS Edge (session 2026-06-11). Normalize both sides before comparing:
10
+ * strip zero-width characters, fold every Unicode whitespace run to a single
11
+ * ASCII space, lower-case, trim.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.normalizeWindowText = normalizeWindowText;
15
+ exports.windowTextIncludes = windowTextIncludes;
16
+ // Zero-width / formatting characters that carry no visible meaning but defeat
17
+ // equality: ZWSP/ZWNJ/ZWJ + LTR/RTL marks (U+200B-U+200F), embedding/override
18
+ // controls (U+202A-U+202E), word joiner (U+2060), BOM/ZWNBSP (U+FEFF).
19
+ // (NBSP U+00A0, narrow-NBSP U+202F and the rest of the Zs category are matched
20
+ // by \s in JS regexes, so the whitespace fold below already handles them.)
21
+ const ZERO_WIDTH = new RegExp('[\u200B-\u200F\u202A-\u202E\u2060\uFEFF]', 'g');
22
+ /** Normalize a title/window string for robust case-insensitive substring matching. */
23
+ function normalizeWindowText(s) {
24
+ if (!s)
25
+ return '';
26
+ return s
27
+ .replace(ZERO_WIDTH, '')
28
+ .replace(/\s+/g, ' ') // folds NBSP/narrow-NBSP/tabs/newlines to one space
29
+ .trim()
30
+ .toLowerCase();
31
+ }
32
+ /** True when `haystack` contains `needle` after both are window-normalized. */
33
+ function windowTextIncludes(haystack, needle) {
34
+ const n = normalizeWindowText(needle);
35
+ if (!n)
36
+ return false;
37
+ return normalizeWindowText(haystack).includes(n);
38
+ }
39
+ //# sourceMappingURL=window-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-text.js","sourceRoot":"","sources":["../../src/tools/window-text.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAUH,kDAOC;AAGD,gDAOC;AAzBD,8EAA8E;AAC9E,8EAA8E;AAC9E,uEAAuE;AACvE,+EAA+E;AAC/E,4EAA4E;AAC5E,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;AAE/E,sFAAsF;AACtF,SAAgB,mBAAmB,CAAC,CAA4B;IAC9D,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,OAAO,CAAC;SACL,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAG,oDAAoD;SAC3E,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,SAAgB,kBAAkB,CAChC,QAAmC,EACnC,MAAiC;IAEjC,MAAM,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,122 @@
1
+ export declare enum SafetyTier {
2
+ Auto = "auto",
3
+ Preview = "preview",
4
+ Confirm = "confirm"
5
+ }
6
+ export interface ScreenFrame {
7
+ width: number;
8
+ height: number;
9
+ buffer: Buffer;
10
+ timestamp: number;
11
+ format: 'png' | 'jpeg' | 'raw';
12
+ }
13
+ export interface MouseAction {
14
+ kind: 'click' | 'double_click' | 'right_click' | 'move' | 'drag' | 'scroll';
15
+ x: number;
16
+ y: number;
17
+ endX?: number;
18
+ endY?: number;
19
+ scrollDelta?: number;
20
+ }
21
+ export interface KeyboardAction {
22
+ kind: 'type' | 'key_press';
23
+ text?: string;
24
+ key?: string;
25
+ }
26
+ export interface A11yAction {
27
+ kind: 'a11y_click' | 'a11y_set_value' | 'a11y_focus' | 'a11y_get_value';
28
+ name?: string;
29
+ automationId?: string;
30
+ controlType?: string;
31
+ value?: string;
32
+ }
33
+ export type InputAction = MouseAction | KeyboardAction | A11yAction;
34
+ export interface ActionSequence {
35
+ kind: 'sequence';
36
+ steps: Array<InputAction & {
37
+ description: string;
38
+ }>;
39
+ description: string;
40
+ }
41
+ export interface TaskRequest {
42
+ task: string;
43
+ safetyOverride?: SafetyTier;
44
+ }
45
+ export interface TaskResult {
46
+ success: boolean;
47
+ steps: StepResult[];
48
+ error?: string;
49
+ duration: number;
50
+ }
51
+ export interface StepResult {
52
+ action: string;
53
+ description: string;
54
+ success: boolean;
55
+ screenshot?: string;
56
+ error?: string;
57
+ timestamp: number;
58
+ layer?: 'browser' | 'router' | 'smart' | 'ocr' | 'a11y' | 'unified' | 'computer-use' | 'deterministic';
59
+ method?: string;
60
+ coordinates?: [number, number];
61
+ elementName?: string;
62
+ elementType?: string;
63
+ verified?: boolean;
64
+ latencyMs?: number;
65
+ }
66
+ export interface AgentState {
67
+ status: 'idle' | 'thinking' | 'acting' | 'waiting_confirm' | 'paused';
68
+ currentTask?: string;
69
+ currentStep?: string;
70
+ stepsCompleted: number;
71
+ stepsTotal: number;
72
+ /**
73
+ * Result of the most recent `executeTask()` call. Populated when status
74
+ * transitions back to `idle`; cleared at the start of the next task. Lets
75
+ * external pollers (e.g. the `delegate_to_agent` compact tool) read the
76
+ * outcome of a completed task without holding a reference to the
77
+ * `executeTask` promise.
78
+ */
79
+ lastResult?: TaskResult;
80
+ }
81
+ export interface ClawdConfig {
82
+ server: {
83
+ port: number;
84
+ host: string;
85
+ };
86
+ ai: {
87
+ provider: string;
88
+ apiKey?: string;
89
+ /** Optional OpenAI-compatible endpoint override (skill-host supplied). */
90
+ baseUrl?: string;
91
+ /** Optional text-only endpoint/key for decomposition (can differ from vision). */
92
+ textBaseUrl?: string;
93
+ textApiKey?: string;
94
+ /** Optional vision endpoint/key for screenshot reasoning (can differ from text). */
95
+ visionBaseUrl?: string;
96
+ visionApiKey?: string;
97
+ model: string;
98
+ visionModel: string;
99
+ };
100
+ safety: {
101
+ defaultTier: SafetyTier;
102
+ confirmPatterns: string[];
103
+ blockedPatterns: string[];
104
+ };
105
+ capture: {
106
+ format: 'png' | 'jpeg';
107
+ quality: number;
108
+ };
109
+ /** Save screenshots to debug/ folder. Off by default for security. */
110
+ debug?: boolean;
111
+ browser?: {
112
+ /** Custom browser executable path (overrides auto-detection) */
113
+ executablePath?: string;
114
+ /** Process name for accessibility matching (e.g. 'comet', 'brave') */
115
+ processName?: string;
116
+ /** CDP debugging port (default: 9223) */
117
+ cdpPort?: number;
118
+ /** Additional command-line args for browser launch */
119
+ extraArgs?: string[];
120
+ };
121
+ }
122
+ export declare const DEFAULT_CONFIG: ClawdConfig;
package/dist/types.js ADDED
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // ============================================
3
+ // Clawd Cursor — Core Types
4
+ // ============================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEFAULT_CONFIG = exports.SafetyTier = void 0;
7
+ var SafetyTier;
8
+ (function (SafetyTier) {
9
+ SafetyTier["Auto"] = "auto";
10
+ SafetyTier["Preview"] = "preview";
11
+ SafetyTier["Confirm"] = "confirm";
12
+ })(SafetyTier || (exports.SafetyTier = SafetyTier = {}));
13
+ exports.DEFAULT_CONFIG = {
14
+ server: {
15
+ port: 3847,
16
+ host: '127.0.0.1',
17
+ },
18
+ ai: {
19
+ provider: 'auto',
20
+ model: '',
21
+ visionModel: '',
22
+ },
23
+ safety: {
24
+ defaultTier: SafetyTier.Preview,
25
+ confirmPatterns: [
26
+ 'send', 'delete', 'remove', 'purchase', 'buy', 'pay', 'submit',
27
+ 'terminal', 'console', 'cmd\\.exe', 'powershell', 'bash', 'shell',
28
+ 'sudo', 'del /[fq]', 'reboot', 'password', 'credential', 'secret',
29
+ 'sign.?in', 'log.?in', 'authorize', 'transfer', 'wire',
30
+ ],
31
+ blockedPatterns: [
32
+ 'format.*disk', 'format c:', 'rm -rf /', 'shutdown', 'shutdown /s',
33
+ 'reboot', 'mkfs', 'dd if=', 'diskpart', ':(){:|:&};:',
34
+ ],
35
+ },
36
+ capture: {
37
+ format: 'jpeg',
38
+ quality: 50,
39
+ },
40
+ };
41
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,4BAA4B;AAC5B,+CAA+C;;;AAE/C,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;AACrB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAiIY,QAAA,cAAc,GAAgB;IACzC,MAAM,EAAE;QACN,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,WAAW;KAClB;IACD,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;KAChB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,UAAU,CAAC,OAAO;QAC/B,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;YAC9D,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO;YACjE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ;YACjE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;SACvD;QACD,eAAe,EAAE;YACf,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa;YAClE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa;SACtD;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE;KACZ;CACF,CAAC"}
@@ -0,0 +1,38 @@
1
+ // swift-tools-version: 5.9
2
+ import PackageDescription
3
+
4
+ let package = Package(
5
+ name: "ClawdCursorHelper",
6
+ platforms: [
7
+ .macOS(.v12)
8
+ ],
9
+ products: [
10
+ .executable(name: "ClawdCursorHost", targets: ["ClawdCursorHost"]),
11
+ .executable(name: "clawdcursor-helper", targets: ["ClawdCursorHelper"]),
12
+ .executable(name: "screenshot-helper", targets: ["ScreenshotHelper"]),
13
+ .executable(name: "permission-check", targets: ["PermissionCheck"])
14
+ ],
15
+ dependencies: [],
16
+ targets: [
17
+ .executableTarget(
18
+ name: "ClawdCursorHost",
19
+ dependencies: [],
20
+ path: "Sources/ClawdCursorHost"
21
+ ),
22
+ .executableTarget(
23
+ name: "ClawdCursorHelper",
24
+ dependencies: [],
25
+ path: "Sources/ClawdCursorHelper"
26
+ ),
27
+ .executableTarget(
28
+ name: "ScreenshotHelper",
29
+ dependencies: [],
30
+ path: "Sources/ScreenshotHelper"
31
+ ),
32
+ .executableTarget(
33
+ name: "PermissionCheck",
34
+ dependencies: [],
35
+ path: "Sources/PermissionCheck"
36
+ )
37
+ ]
38
+ )