@amaster.ai/pi-computer-use 0.1.2-beta.3 → 0.1.2-beta.31

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 (44) hide show
  1. package/README.md +50 -27
  2. package/bin/darwin-arm64/.version +2 -0
  3. package/bin/darwin-arm64/CuaDriver.app/Contents/CodeResources +0 -0
  4. package/bin/darwin-arm64/CuaDriver.app/Contents/Info.plist +32 -0
  5. package/bin/darwin-arm64/{cua-driver → CuaDriver.app/Contents/MacOS/cua-driver} +0 -0
  6. package/bin/darwin-arm64/CuaDriver.app/Contents/Resources/Skills/cua-driver/README.md +140 -0
  7. package/bin/darwin-arm64/CuaDriver.app/Contents/Resources/Skills/cua-driver/RECORDING.md +113 -0
  8. package/bin/darwin-arm64/CuaDriver.app/Contents/Resources/Skills/cua-driver/SKILL.md +887 -0
  9. package/bin/darwin-arm64/CuaDriver.app/Contents/Resources/Skills/cua-driver/TESTS.md +232 -0
  10. package/bin/darwin-arm64/CuaDriver.app/Contents/Resources/Skills/cua-driver/WEB_APPS.md +471 -0
  11. package/bin/darwin-arm64/CuaDriver.app/Contents/_CodeSignature/CodeResources +172 -0
  12. package/bin/darwin-x64/.version +2 -0
  13. package/bin/darwin-x64/CuaDriver.app/Contents/CodeResources +0 -0
  14. package/bin/darwin-x64/CuaDriver.app/Contents/Info.plist +32 -0
  15. package/bin/darwin-x64/{cua-driver → CuaDriver.app/Contents/MacOS/cua-driver} +0 -0
  16. package/bin/darwin-x64/CuaDriver.app/Contents/Resources/Skills/cua-driver/README.md +140 -0
  17. package/bin/darwin-x64/CuaDriver.app/Contents/Resources/Skills/cua-driver/RECORDING.md +113 -0
  18. package/bin/darwin-x64/CuaDriver.app/Contents/Resources/Skills/cua-driver/SKILL.md +887 -0
  19. package/bin/darwin-x64/CuaDriver.app/Contents/Resources/Skills/cua-driver/TESTS.md +232 -0
  20. package/bin/darwin-x64/CuaDriver.app/Contents/Resources/Skills/cua-driver/WEB_APPS.md +471 -0
  21. package/bin/darwin-x64/CuaDriver.app/Contents/_CodeSignature/CodeResources +172 -0
  22. package/bin/linux-x64/.version +2 -0
  23. package/bin/linux-x64/cua-driver +0 -0
  24. package/bin/win32-arm64/.version +2 -0
  25. package/bin/win32-arm64/cua-driver-uia.exe +0 -0
  26. package/bin/win32-arm64/cua-driver.exe +0 -0
  27. package/bin/win32-x64/.version +2 -0
  28. package/bin/win32-x64/cua-driver-uia.exe +0 -0
  29. package/bin/win32-x64/cua-driver.exe +0 -0
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +0 -2
  32. package/dist/config.js.map +1 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +471 -18
  35. package/dist/index.js.map +1 -1
  36. package/dist/mcp-client.d.ts.map +1 -1
  37. package/dist/mcp-client.js +23 -3
  38. package/dist/mcp-client.js.map +1 -1
  39. package/dist/vision.d.ts.map +1 -1
  40. package/dist/vision.js +19 -0
  41. package/dist/vision.js.map +1 -1
  42. package/package.json +8 -3
  43. package/preview.png +0 -0
  44. package/scripts/postinstall.js +29 -0
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0B,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAkB9D,MAAM,QAAQ,GAA+B;IAC3C,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,MAA0B;IACtD,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA2B;IAC5D,OAAO,cAAc,CAAoB,iBAAiB,EAAE;QAC1D,QAAQ,EAAE,WAAW,EAAE;QACvB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0B,MAAM,gCAAgC,CAAC;AAkBxF,MAAM,QAAQ,GAA+B;IAC3C,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,MAA0B;IACtD,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA2B;IAC5D,OAAO,cAAc,CAAoB,iBAAiB,EAAE;QAC1D,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AAEtF,OAAO,EAAE,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIxF,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;AAsB7C,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA+InE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AAEtF,OAAO,EAAE,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIxF,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;AAsY7C,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA8NnE"}
package/dist/index.js CHANGED
@@ -4,6 +4,37 @@ import { CuaDriverClient } from './mcp-client.js';
4
4
  import { createPiVisionCaller } from './vision.js';
5
5
  export { loadConfigFromFile, resolveConfig };
6
6
  const TOOL_PREFIX = 'computer_use_';
7
+ const PLATFORM = process.platform;
8
+ function permissionHint() {
9
+ switch (PLATFORM) {
10
+ case 'darwin':
11
+ return 'Check that Accessibility and Screen Recording permissions are granted in System Settings → Privacy & Security.';
12
+ case 'win32':
13
+ return 'Try running the application as Administrator, or check that UI Automation access is not blocked by security software.';
14
+ default:
15
+ return 'Check that the process has access to the display server (X11/Wayland) and required input permissions are configured.';
16
+ }
17
+ }
18
+ function accessibilityHint() {
19
+ switch (PLATFORM) {
20
+ case 'darwin':
21
+ return 'Accessibility permission not granted. The user needs to enable it in System Settings → Privacy & Security → Accessibility, then restart the app.';
22
+ case 'win32':
23
+ return 'UI Automation access denied. Try running the application as Administrator.';
24
+ default:
25
+ return 'Input automation access denied. Check that AT-SPI or equivalent accessibility service is available.';
26
+ }
27
+ }
28
+ function screenRecordingHint() {
29
+ switch (PLATFORM) {
30
+ case 'darwin':
31
+ return 'Screen Recording permission not granted. The user needs to enable it in System Settings → Privacy & Security → Screen & System Audio Recording, then restart the app.';
32
+ case 'win32':
33
+ return 'Screen capture failed. Try running the application as Administrator, or check that screen capture is not blocked by DRM or security policy.';
34
+ default:
35
+ return 'Screen capture failed. Check that the compositor allows screen capture (PipeWire portal or X11 access).';
36
+ }
37
+ }
7
38
  const EXCLUDED_TOOLS = new Set([
8
39
  'set_agent_cursor_enabled',
9
40
  'set_agent_cursor_motion',
@@ -20,7 +51,336 @@ const EXCLUDED_TOOLS = new Set([
20
51
  'type_text_chars',
21
52
  'page',
22
53
  'browser_eval',
54
+ 'screenshot',
23
55
  ]);
56
+ const FALLBACK_TOOLS = [
57
+ {
58
+ name: 'click',
59
+ description: 'Left-click against a target pid via element_index or x/y coordinates',
60
+ inputSchema: {
61
+ type: 'object',
62
+ additionalProperties: false,
63
+ properties: {
64
+ pid: { type: 'integer', description: 'Target process ID' },
65
+ x: { type: 'number', description: 'Window-local screenshot X coordinate' },
66
+ y: { type: 'number', description: 'Window-local screenshot Y coordinate' },
67
+ element_index: { type: 'integer', description: 'Element index from last get_window_state' },
68
+ window_id: { type: 'integer', description: 'Target window ID. Required for element_index' },
69
+ action: {
70
+ type: 'string',
71
+ description: 'AX action: press, show_menu, pick, confirm, cancel, open',
72
+ },
73
+ modifier: {
74
+ type: 'array',
75
+ items: { type: 'string' },
76
+ description: 'Modifier keys: cmd, shift, option/alt, ctrl',
77
+ },
78
+ from_zoom: {
79
+ type: 'boolean',
80
+ description: 'When true, x/y are in last zoom image coordinates',
81
+ },
82
+ },
83
+ required: ['pid'],
84
+ },
85
+ },
86
+ {
87
+ name: 'double_click',
88
+ description: 'Double-click at x/y or on an AX element via element_index',
89
+ inputSchema: {
90
+ type: 'object',
91
+ additionalProperties: false,
92
+ properties: {
93
+ pid: { type: 'integer' },
94
+ x: { type: 'number', description: 'Screen X coordinate (pixel path)' },
95
+ y: { type: 'number', description: 'Screen Y coordinate (pixel path)' },
96
+ element_index: { type: 'integer', description: 'Element index from last get_window_state' },
97
+ window_id: {
98
+ type: 'integer',
99
+ description: 'CGWindowID. Required when element_index is used',
100
+ },
101
+ },
102
+ required: ['pid'],
103
+ },
104
+ },
105
+ {
106
+ name: 'right_click',
107
+ description: 'Right-click against a target pid via element_index or x/y coordinates',
108
+ inputSchema: {
109
+ type: 'object',
110
+ additionalProperties: false,
111
+ properties: {
112
+ pid: { type: 'integer', description: 'Target process ID' },
113
+ x: { type: 'number', description: 'X in window-local screenshot pixels' },
114
+ y: { type: 'number', description: 'Y in window-local screenshot pixels' },
115
+ element_index: {
116
+ type: 'integer',
117
+ description: 'Element index from last get_window_state. Routes through AXShowMenu',
118
+ },
119
+ window_id: {
120
+ type: 'integer',
121
+ description: 'CGWindowID. Required when element_index is used',
122
+ },
123
+ modifier: {
124
+ type: 'array',
125
+ items: { type: 'string' },
126
+ description: 'Modifier keys held during the right-click (pixel path only)',
127
+ },
128
+ },
129
+ required: ['pid'],
130
+ },
131
+ },
132
+ {
133
+ name: 'type_text',
134
+ description: 'Insert text into the target pid via AX or CGEvent fallback',
135
+ inputSchema: {
136
+ type: 'object',
137
+ additionalProperties: false,
138
+ properties: {
139
+ pid: { type: 'integer', description: 'Target process ID' },
140
+ text: { type: 'string', description: 'Text to insert at the target cursor' },
141
+ element_index: { type: 'integer', description: 'Element index from last get_window_state' },
142
+ window_id: {
143
+ type: 'integer',
144
+ description: 'CGWindowID. Required when element_index is used',
145
+ },
146
+ delay_ms: {
147
+ type: 'integer',
148
+ minimum: 0,
149
+ maximum: 200,
150
+ description: 'Milliseconds between characters in CGEvent fallback. Default 30',
151
+ },
152
+ },
153
+ required: ['pid', 'text'],
154
+ },
155
+ },
156
+ {
157
+ name: 'press_key',
158
+ description: 'Press and release a single key, delivered to the target pid',
159
+ inputSchema: {
160
+ type: 'object',
161
+ additionalProperties: false,
162
+ properties: {
163
+ pid: { type: 'integer' },
164
+ key: {
165
+ type: 'string',
166
+ description: 'Key name: return, tab, escape, up, down, left, right, space, delete, etc.',
167
+ },
168
+ modifiers: {
169
+ type: 'array',
170
+ items: { type: 'string' },
171
+ description: 'Modifier keys: cmd, shift, option/alt, ctrl, fn',
172
+ },
173
+ element_index: { type: 'integer' },
174
+ window_id: { type: 'integer' },
175
+ },
176
+ required: ['pid', 'key'],
177
+ },
178
+ },
179
+ {
180
+ name: 'hotkey',
181
+ description: 'Press a combination of keys simultaneously, e.g. ["cmd", "c"] for Copy',
182
+ inputSchema: {
183
+ type: 'object',
184
+ additionalProperties: false,
185
+ properties: {
186
+ pid: { type: 'integer', description: 'Target process ID' },
187
+ keys: {
188
+ type: 'array',
189
+ items: { type: 'string' },
190
+ minItems: 2,
191
+ description: 'Modifier(s) and one non-modifier key, e.g. ["cmd", "c"]',
192
+ },
193
+ window_id: {
194
+ type: 'integer',
195
+ description: 'When set, uses NSMenu path for native menu key dispatch',
196
+ },
197
+ },
198
+ required: ['pid', 'keys'],
199
+ },
200
+ },
201
+ {
202
+ name: 'scroll',
203
+ description: 'Scroll the target pid focused region by synthesized keystrokes',
204
+ inputSchema: {
205
+ type: 'object',
206
+ additionalProperties: false,
207
+ properties: {
208
+ pid: { type: 'integer' },
209
+ direction: {
210
+ type: 'string',
211
+ enum: ['up', 'down', 'left', 'right'],
212
+ description: 'Scroll direction',
213
+ },
214
+ amount: {
215
+ type: 'integer',
216
+ minimum: 1,
217
+ maximum: 50,
218
+ description: 'Number of keystroke repetitions. Default: 3',
219
+ },
220
+ by: {
221
+ type: 'string',
222
+ enum: ['line', 'page'],
223
+ description: 'Scroll granularity. Default: line',
224
+ },
225
+ element_index: { type: 'integer' },
226
+ window_id: { type: 'integer' },
227
+ },
228
+ required: ['pid', 'direction'],
229
+ },
230
+ },
231
+ {
232
+ name: 'drag',
233
+ description: 'Press-drag-release gesture from one point to another in window-local pixels',
234
+ inputSchema: {
235
+ type: 'object',
236
+ additionalProperties: false,
237
+ properties: {
238
+ pid: { type: 'integer', description: 'Target process ID' },
239
+ from_x: { type: 'number', description: 'Drag-start X in window-local screenshot pixels' },
240
+ from_y: { type: 'number', description: 'Drag-start Y in window-local screenshot pixels' },
241
+ to_x: { type: 'number', description: 'Drag-end X in window-local screenshot pixels' },
242
+ to_y: { type: 'number', description: 'Drag-end Y in window-local screenshot pixels' },
243
+ button: {
244
+ type: 'string',
245
+ enum: ['left', 'right', 'middle'],
246
+ description: 'Mouse button. Default: left',
247
+ },
248
+ duration_ms: {
249
+ type: 'integer',
250
+ minimum: 0,
251
+ maximum: 10000,
252
+ description: 'Duration of drag path. Default: 500',
253
+ },
254
+ steps: {
255
+ type: 'integer',
256
+ minimum: 1,
257
+ maximum: 200,
258
+ description: 'Intermediate drag events. Default: 20',
259
+ },
260
+ modifier: {
261
+ type: 'array',
262
+ items: { type: 'string' },
263
+ description: 'Modifier keys held across the gesture',
264
+ },
265
+ window_id: { type: 'integer' },
266
+ from_zoom: { type: 'boolean' },
267
+ },
268
+ required: ['pid', 'from_x', 'from_y', 'to_x', 'to_y'],
269
+ },
270
+ },
271
+ {
272
+ name: 'set_value',
273
+ description: 'Set a value on a UI element (popups, sliders, steppers, date pickers)',
274
+ inputSchema: {
275
+ type: 'object',
276
+ additionalProperties: false,
277
+ properties: {
278
+ pid: { type: 'integer' },
279
+ window_id: {
280
+ type: 'integer',
281
+ description: 'CGWindowID for the window whose get_window_state produced the element_index',
282
+ },
283
+ element_index: { type: 'integer' },
284
+ value: {
285
+ type: 'string',
286
+ description: 'New value. AX will coerce to the element native type',
287
+ },
288
+ },
289
+ required: ['pid', 'window_id', 'element_index', 'value'],
290
+ },
291
+ },
292
+ {
293
+ name: 'get_screen_size',
294
+ description: 'Return the logical size of the main display in points plus backing scale factor',
295
+ inputSchema: { type: 'object', additionalProperties: false, properties: {} },
296
+ },
297
+ {
298
+ name: 'get_cursor_position',
299
+ description: 'Return the current mouse cursor position in screen points',
300
+ inputSchema: { type: 'object', additionalProperties: false, properties: {} },
301
+ },
302
+ {
303
+ name: 'get_accessibility_tree',
304
+ description: 'Return a lightweight desktop snapshot: running apps and visible windows with bounds and z-order',
305
+ inputSchema: { type: 'object', additionalProperties: false, properties: {} },
306
+ },
307
+ {
308
+ name: 'get_window_state',
309
+ description: 'Walk an app AX tree and return a Markdown rendering of its UI with actionable element indices',
310
+ inputSchema: {
311
+ type: 'object',
312
+ additionalProperties: false,
313
+ properties: {
314
+ pid: { type: 'integer', description: 'Target process ID' },
315
+ window_id: { type: 'integer', description: 'Target window ID from list_windows' },
316
+ query: { type: 'string', description: 'Case-insensitive filter for tree_markdown' },
317
+ capture_mode: {
318
+ type: 'string',
319
+ enum: ['som', 'vision', 'ax'],
320
+ description: 'som=AX+screenshot (default), vision=screenshot only, ax=AX only',
321
+ },
322
+ },
323
+ required: ['pid', 'window_id'],
324
+ },
325
+ },
326
+ {
327
+ name: 'list_windows',
328
+ description: 'List all layer-0 top-level windows known to WindowServer',
329
+ inputSchema: {
330
+ type: 'object',
331
+ additionalProperties: false,
332
+ properties: {
333
+ pid: { type: 'integer', description: 'Optional pid filter' },
334
+ on_screen_only: {
335
+ type: 'boolean',
336
+ description: 'When true, drop windows not on current Space. Default false',
337
+ },
338
+ },
339
+ },
340
+ },
341
+ {
342
+ name: 'list_apps',
343
+ description: 'List macOS apps (running and installed) with state flags, pid, bundle_id',
344
+ inputSchema: { type: 'object', additionalProperties: false, properties: {} },
345
+ },
346
+ {
347
+ name: 'launch_app',
348
+ description: 'Launch a macOS app in the background without stealing focus',
349
+ inputSchema: {
350
+ type: 'object',
351
+ additionalProperties: false,
352
+ properties: {
353
+ bundle_id: {
354
+ type: 'string',
355
+ description: 'App bundle identifier, e.g. com.apple.calculator. Preferred over name',
356
+ },
357
+ name: {
358
+ type: 'string',
359
+ description: 'App display name. Used only when bundle_id is absent',
360
+ },
361
+ urls: {
362
+ type: 'array',
363
+ items: { type: 'string' },
364
+ description: 'File paths or URLs to open with the app',
365
+ },
366
+ creates_new_application_instance: {
367
+ type: 'boolean',
368
+ description: 'Force a new app instance even if already running',
369
+ },
370
+ },
371
+ },
372
+ },
373
+ {
374
+ name: 'kill_app',
375
+ description: 'Force-terminate a process by pid (kill -9 equivalent)',
376
+ inputSchema: {
377
+ type: 'object',
378
+ additionalProperties: false,
379
+ properties: { pid: { type: 'integer', description: 'PID of the process to terminate' } },
380
+ required: ['pid'],
381
+ },
382
+ },
383
+ ];
24
384
  export default function computerUseExtension(pi) {
25
385
  let config;
26
386
  let client;
@@ -33,10 +393,8 @@ export default function computerUseExtension(pi) {
33
393
  connected = true;
34
394
  }
35
395
  }
36
- async function registerUpstreamTools() {
37
- await ensureConnected();
38
- const upstreamTools = await client.listAllTools();
39
- for (const tool of upstreamTools) {
396
+ function registerTools(tools) {
397
+ for (const tool of tools) {
40
398
  if (EXCLUDED_TOOLS.has(tool.name))
41
399
  continue;
42
400
  const prefixedName = `${TOOL_PREFIX}${tool.name}`;
@@ -47,16 +405,32 @@ export default function computerUseExtension(pi) {
47
405
  description: tool.description ?? '',
48
406
  parameters: Type.Unsafe(tool.inputSchema),
49
407
  async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
50
- await ensureConnected();
408
+ try {
409
+ await ensureConnected();
410
+ }
411
+ catch (connErr) {
412
+ const msg = connErr instanceof Error ? connErr.message : String(connErr);
413
+ ctx.ui.notify(`pi-computer-use: cannot connect to cua-driver — ${msg}`, 'warning');
414
+ return {
415
+ content: [
416
+ {
417
+ type: 'text',
418
+ text: `Failed to connect to cua-driver: ${msg}. ${permissionHint()}`,
419
+ },
420
+ ],
421
+ details: undefined,
422
+ isError: true,
423
+ };
424
+ }
51
425
  const result = await client.callTool(originalName, params);
52
- if (originalName === 'screenshot' && config?.visionModel) {
53
- const imageContent = result.content?.find((c) => c.type === 'image' && c.data);
54
- if (imageContent?.data) {
55
- const callVision = createPiVisionCaller(config.visionModel, ctx);
56
- const analysis = await callVision('Describe the full screen: identify all visible windows, UI elements, buttons, text fields, and their positions.', imageContent.data, imageContent.mimeType ?? 'image/png');
426
+ if (result.isError) {
427
+ const errorText = result.content?.map((c) => c.text ?? '').join('') ?? '';
428
+ const friendlyError = formatToolError(originalName, errorText, params);
429
+ if (friendlyError) {
57
430
  return {
58
- content: [{ type: 'text', text: analysis }],
431
+ content: [{ type: 'text', text: friendlyError }],
59
432
  details: undefined,
433
+ isError: true,
60
434
  };
61
435
  }
62
436
  }
@@ -78,26 +452,70 @@ export default function computerUseExtension(pi) {
78
452
  });
79
453
  }
80
454
  }
81
- async function registerVisionTool() {
455
+ function registerVisionTool() {
82
456
  if (!config?.visionModel)
83
457
  return;
84
458
  const visionConfig = config.visionModel;
85
459
  pi.registerTool({
86
460
  name: `${TOOL_PREFIX}analyze_screenshot`,
87
461
  label: `${TOOL_PREFIX}analyze_screenshot`,
88
- description: 'Take a screenshot and analyze it visually using a vision model. Use when you need to identify elements by visual attributes (color, layout, position) or need precise pixel coordinates.',
462
+ description: 'Capture a screenshot using ScreenCaptureKit and analyze it visually using a vision model. Returns analysis for a single window in the requested format (default png).\n\n`window_id` is required. Get window ids from `list_windows`.\n\nRequires the Screen Recording TCC grant — call `check_permissions` first if unsure.',
89
463
  parameters: Type.Object({
464
+ window_id: Type.Number({
465
+ description: 'Required CGWindowID / kCGWindowNumber to capture.',
466
+ }),
90
467
  instruction: Type.Optional(Type.String({
91
468
  description: 'What to identify or analyze visually (e.g., "Find the coordinates of the blue submit button").',
92
469
  })),
470
+ format: Type.Optional(Type.Union([Type.Literal('png'), Type.Literal('jpeg')], {
471
+ description: 'Image format. Default: png.',
472
+ })),
473
+ quality: Type.Optional(Type.Number({
474
+ description: 'JPEG quality 1-95; ignored for png.',
475
+ minimum: 1,
476
+ maximum: 95,
477
+ })),
93
478
  }),
94
479
  async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
95
- await ensureConnected();
96
- const screenshotResult = await client.callTool('screenshot', {});
480
+ try {
481
+ await ensureConnected();
482
+ }
483
+ catch (connErr) {
484
+ const msg = connErr instanceof Error ? connErr.message : String(connErr);
485
+ ctx.ui.notify(`pi-computer-use: cannot connect to cua-driver — ${msg}`, 'warning');
486
+ return {
487
+ content: [
488
+ {
489
+ type: 'text',
490
+ text: `Failed to connect to cua-driver: ${msg}. ${permissionHint()}`,
491
+ },
492
+ ],
493
+ details: undefined,
494
+ isError: true,
495
+ };
496
+ }
497
+ const screenshotArgs = { window_id: params.window_id };
498
+ if (params.format)
499
+ screenshotArgs.format = params.format;
500
+ if (params.quality)
501
+ screenshotArgs.quality = params.quality;
502
+ const screenshotResult = await client.callTool('screenshot', screenshotArgs);
97
503
  const imageContent = screenshotResult.content?.find((c) => c.type === 'image' && c.data);
504
+ console.error('[pi-computer-use analyze_screenshot] screenshot result', JSON.stringify({
505
+ window_id: params.window_id,
506
+ isError: screenshotResult.isError,
507
+ contentTypes: screenshotResult.content?.map((c) => c.type),
508
+ imageDataLength: imageContent?.data?.length,
509
+ imageMimeType: imageContent?.mimeType,
510
+ }, null, 2));
98
511
  if (!imageContent?.data) {
512
+ const errorText = screenshotResult.content
513
+ ?.filter((c) => c.type === 'text' && c.text)
514
+ .map((c) => c.text)
515
+ .join('\n') || 'Failed to capture screenshot.';
516
+ const formatted = formatToolError('screenshot', errorText, params);
99
517
  return {
100
- content: [{ type: 'text', text: 'Failed to capture screenshot.' }],
518
+ content: [{ type: 'text', text: formatted ?? errorText }],
101
519
  details: undefined,
102
520
  isError: true,
103
521
  };
@@ -106,6 +524,10 @@ export default function computerUseExtension(pi) {
106
524
  const instruction = params.instruction ??
107
525
  'Describe the full screen: identify all visible windows, UI elements, buttons, text fields, and their positions.';
108
526
  const analysis = await callVision(instruction, imageContent.data, imageContent.mimeType ?? 'image/png');
527
+ console.error('[pi-computer-use analyze_screenshot] vision analysis', JSON.stringify({
528
+ analysisLength: analysis.length,
529
+ analysisPreview: analysis.slice(0, 200),
530
+ }, null, 2));
109
531
  return {
110
532
  content: [{ type: 'text', text: analysis }],
111
533
  details: undefined,
@@ -117,8 +539,8 @@ export default function computerUseExtension(pi) {
117
539
  config = resolveConfig(loadConfigFromFile({ cwd: ctx.cwd }));
118
540
  client = new CuaDriverClient(config);
119
541
  connected = false;
120
- await registerUpstreamTools();
121
- await registerVisionTool();
542
+ registerTools(FALLBACK_TOOLS);
543
+ registerVisionTool();
122
544
  });
123
545
  pi.on('session_shutdown', async () => {
124
546
  if (connected && client) {
@@ -127,4 +549,35 @@ export default function computerUseExtension(pi) {
127
549
  }
128
550
  });
129
551
  }
552
+ function formatToolError(toolName, errorText, params) {
553
+ if (errorText.includes('ax_not_granted')) {
554
+ return accessibilityHint();
555
+ }
556
+ if (errorText.includes('sc_not_granted')) {
557
+ return screenRecordingHint();
558
+ }
559
+ if (toolName === 'screenshot' || errorText.includes('screencapture failed')) {
560
+ const windowId = params.window_id;
561
+ if (windowId !== undefined) {
562
+ if (errorText.includes('screencapture failed')) {
563
+ return [
564
+ `Screenshot failed for window ${windowId}. Possible causes:`,
565
+ `1. ${screenRecordingHint()}`,
566
+ '2. The window_id is stale — the window may have been closed or recreated (e.g. after navigation in Electron apps). Re-fetch window list to get current IDs.',
567
+ '3. The window is minimized or not yet rendered.',
568
+ `Try capturing without window_id (full screen) as a fallback, or verify the window still exists.`,
569
+ ].join('\n');
570
+ }
571
+ if (errorText.includes('empty output')) {
572
+ return `Screenshot captured an empty image for window ${windowId}. The window may be minimized, fully transparent, or off-screen. Try restoring the window first.`;
573
+ }
574
+ }
575
+ else {
576
+ if (errorText.includes('screencapture failed')) {
577
+ return `Screenshot failed for the main display. ${screenRecordingHint()}`;
578
+ }
579
+ }
580
+ }
581
+ return undefined;
582
+ }
130
583
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAI/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBxB,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAgB/B,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;QACT,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACnF,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAWI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,iBAAiB;CAmBhC"}
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAI/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBxB,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAgB/B,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;QACT,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACnF,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAWI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,iBAAiB;CAwChC"}