claude-in-mobile 2.1.2 → 2.3.0

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 (43) hide show
  1. package/desktop-companion/build/install/desktop-companion/bin/desktop-companion +248 -0
  2. package/desktop-companion/build/install/desktop-companion/bin/desktop-companion.bat +92 -0
  3. package/desktop-companion/build/install/desktop-companion/lib/annotations-23.0.0.jar +0 -0
  4. package/desktop-companion/build/install/desktop-companion/lib/desktop-companion-1.0.0.jar +0 -0
  5. package/desktop-companion/build/install/desktop-companion/lib/jna-5.14.0.jar +0 -0
  6. package/desktop-companion/build/install/desktop-companion/lib/jna-platform-5.14.0.jar +0 -0
  7. package/desktop-companion/build/install/desktop-companion/lib/kotlin-stdlib-1.9.22.jar +0 -0
  8. package/desktop-companion/build/install/desktop-companion/lib/kotlin-stdlib-jdk7-1.8.20.jar +0 -0
  9. package/desktop-companion/build/install/desktop-companion/lib/kotlin-stdlib-jdk8-1.8.20.jar +0 -0
  10. package/desktop-companion/build/install/desktop-companion/lib/kotlinx-coroutines-core-jvm-1.7.3.jar +0 -0
  11. package/desktop-companion/build/install/desktop-companion/lib/kotlinx-serialization-core-jvm-1.6.2.jar +0 -0
  12. package/desktop-companion/build/install/desktop-companion/lib/kotlinx-serialization-json-jvm-1.6.2.jar +0 -0
  13. package/dist/adb/ui-parser.d.ts +63 -0
  14. package/dist/adb/ui-parser.d.ts.map +1 -1
  15. package/dist/adb/ui-parser.js +186 -0
  16. package/dist/adb/ui-parser.js.map +1 -1
  17. package/dist/desktop/client.d.ts +162 -0
  18. package/dist/desktop/client.d.ts.map +1 -0
  19. package/dist/desktop/client.js +485 -0
  20. package/dist/desktop/client.js.map +1 -0
  21. package/dist/desktop/gradle.d.ts +45 -0
  22. package/dist/desktop/gradle.d.ts.map +1 -0
  23. package/dist/desktop/gradle.js +228 -0
  24. package/dist/desktop/gradle.js.map +1 -0
  25. package/dist/desktop/index.d.ts +7 -0
  26. package/dist/desktop/index.d.ts.map +1 -0
  27. package/dist/desktop/index.js +7 -0
  28. package/dist/desktop/index.js.map +1 -0
  29. package/dist/desktop/types.d.ts +131 -0
  30. package/dist/desktop/types.d.ts.map +1 -0
  31. package/dist/desktop/types.js +5 -0
  32. package/dist/desktop/types.js.map +1 -0
  33. package/dist/device-manager.d.ts +41 -10
  34. package/dist/device-manager.d.ts.map +1 -1
  35. package/dist/device-manager.js +226 -39
  36. package/dist/device-manager.js.map +1 -1
  37. package/dist/index.js +318 -19
  38. package/dist/index.js.map +1 -1
  39. package/dist/utils/image.d.ts +2 -0
  40. package/dist/utils/image.d.ts.map +1 -1
  41. package/dist/utils/image.js +25 -2
  42. package/dist/utils/image.js.map +1 -1
  43. package/package.json +7 -2
@@ -1,14 +1,70 @@
1
1
  import { AdbClient } from "./adb/client.js";
2
2
  import { IosClient } from "./ios/client.js";
3
+ import { DesktopClient } from "./desktop/client.js";
3
4
  import { compressScreenshot } from "./utils/image.js";
4
5
  export class DeviceManager {
5
6
  androidClient;
6
7
  iosClient;
8
+ desktopClient;
7
9
  activeDevice;
10
+ activeTarget = "android";
8
11
  constructor() {
9
12
  this.androidClient = new AdbClient();
10
13
  this.iosClient = new IosClient();
14
+ this.desktopClient = new DesktopClient();
11
15
  }
16
+ // ============ Target Management ============
17
+ /**
18
+ * Set active target platform
19
+ */
20
+ setTarget(target) {
21
+ this.activeTarget = target;
22
+ }
23
+ /**
24
+ * Get active target and its status
25
+ */
26
+ getTarget() {
27
+ if (this.activeTarget === "desktop") {
28
+ const state = this.desktopClient.getState();
29
+ return { target: "desktop", status: state.status };
30
+ }
31
+ const device = this.activeDevice;
32
+ if (device) {
33
+ return { target: device.platform, status: device.state };
34
+ }
35
+ return { target: this.activeTarget, status: "no device" };
36
+ }
37
+ // ============ Desktop Specific ============
38
+ /**
39
+ * Launch desktop automation (and optionally a user's app via Gradle)
40
+ */
41
+ async launchDesktopApp(options) {
42
+ await this.desktopClient.launch(options);
43
+ this.activeTarget = "desktop";
44
+ if (options.projectPath) {
45
+ return `Desktop automation started. Also launching app from ${options.projectPath}`;
46
+ }
47
+ return "Desktop automation started";
48
+ }
49
+ /**
50
+ * Stop desktop app
51
+ */
52
+ async stopDesktopApp() {
53
+ await this.desktopClient.stop();
54
+ }
55
+ /**
56
+ * Get desktop client directly
57
+ */
58
+ getDesktopClient() {
59
+ return this.desktopClient;
60
+ }
61
+ /**
62
+ * Check if desktop app is running
63
+ */
64
+ isDesktopRunning() {
65
+ return this.desktopClient.isRunning();
66
+ }
67
+ // ============ Device Management ============
12
68
  /**
13
69
  * Get all connected devices (Android + iOS)
14
70
  */
@@ -46,6 +102,17 @@ export class DeviceManager {
46
102
  catch {
47
103
  // simctl not available or no simulators
48
104
  }
105
+ // Add desktop as virtual device if running
106
+ if (this.desktopClient.isRunning()) {
107
+ const state = this.desktopClient.getState();
108
+ devices.push({
109
+ id: "desktop",
110
+ name: "Desktop App",
111
+ platform: "desktop",
112
+ state: state.status,
113
+ isSimulator: false
114
+ });
115
+ }
49
116
  return devices;
50
117
  }
51
118
  /**
@@ -61,6 +128,20 @@ export class DeviceManager {
61
128
  * Set active device
62
129
  */
63
130
  setDevice(deviceId, platform) {
131
+ // Handle desktop special case
132
+ if (deviceId === "desktop" || platform === "desktop") {
133
+ if (!this.desktopClient.isRunning()) {
134
+ throw new Error("Desktop app is not running. Use launch_desktop_app first.");
135
+ }
136
+ this.activeTarget = "desktop";
137
+ return {
138
+ id: "desktop",
139
+ name: "Desktop App",
140
+ platform: "desktop",
141
+ state: "running",
142
+ isSimulator: false
143
+ };
144
+ }
64
145
  const devices = this.getAllDevices();
65
146
  // Find device by ID
66
147
  let device = devices.find(d => d.id === deviceId);
@@ -72,11 +153,12 @@ export class DeviceManager {
72
153
  throw new Error(`Device not found: ${deviceId}`);
73
154
  }
74
155
  this.activeDevice = device;
156
+ this.activeTarget = device.platform;
75
157
  // Set on the appropriate client
76
158
  if (device.platform === "android") {
77
159
  this.androidClient.setDevice(device.id);
78
160
  }
79
- else {
161
+ else if (device.platform === "ios") {
80
162
  this.iosClient.setDevice(device.id);
81
163
  }
82
164
  return device;
@@ -85,30 +167,49 @@ export class DeviceManager {
85
167
  * Get active device
86
168
  */
87
169
  getActiveDevice() {
170
+ if (this.activeTarget === "desktop" && this.desktopClient.isRunning()) {
171
+ return {
172
+ id: "desktop",
173
+ name: "Desktop App",
174
+ platform: "desktop",
175
+ state: "running",
176
+ isSimulator: false
177
+ };
178
+ }
88
179
  return this.activeDevice;
89
180
  }
90
181
  /**
91
182
  * Get the appropriate client for current device or specified platform
92
183
  */
93
184
  getClient(platform) {
94
- const targetPlatform = platform ?? this.activeDevice?.platform;
95
- if (!targetPlatform) {
96
- // Try to auto-detect: prefer Android if available
97
- const devices = this.getAllDevices();
98
- const booted = devices.find(d => d.state === "device" || d.state === "booted");
99
- if (booted) {
100
- this.setDevice(booted.id);
101
- return booted.platform === "android" ? this.androidClient : this.iosClient;
185
+ const targetPlatform = platform ?? this.activeTarget;
186
+ if (targetPlatform === "desktop") {
187
+ if (!this.desktopClient.isRunning()) {
188
+ throw new Error("Desktop app is not running. Use launch_desktop_app first.");
189
+ }
190
+ return this.desktopClient;
191
+ }
192
+ if (!targetPlatform || targetPlatform === "android" || targetPlatform === "ios") {
193
+ const mobilePlatform = targetPlatform ?? this.activeDevice?.platform;
194
+ if (!mobilePlatform) {
195
+ // Try to auto-detect: prefer Android if available
196
+ const devices = this.getAllDevices().filter(d => d.platform !== "desktop");
197
+ const booted = devices.find(d => d.state === "device" || d.state === "booted");
198
+ if (booted) {
199
+ this.setDevice(booted.id);
200
+ return booted.platform === "android" ? this.androidClient : this.iosClient;
201
+ }
202
+ throw new Error("No active device. Use set_device or list_devices first.");
102
203
  }
103
- throw new Error("No active device. Use set_device or list_devices first.");
204
+ return mobilePlatform === "android" ? this.androidClient : this.iosClient;
104
205
  }
105
- return targetPlatform === "android" ? this.androidClient : this.iosClient;
206
+ throw new Error(`Unknown platform: ${targetPlatform}`);
106
207
  }
107
208
  /**
108
209
  * Get current platform
109
210
  */
110
211
  getCurrentPlatform() {
111
- return this.activeDevice?.platform;
212
+ return this.activeTarget;
112
213
  }
113
214
  // ============ Unified Commands ============
114
215
  /**
@@ -116,41 +217,49 @@ export class DeviceManager {
116
217
  */
117
218
  async screenshot(platform, compress = true, options) {
118
219
  const client = this.getClient(platform);
119
- if (client instanceof AdbClient) {
120
- const buffer = client.screenshotRaw();
121
- if (compress) {
122
- return compressScreenshot(buffer, options);
123
- }
124
- return { data: buffer.toString("base64"), mimeType: "image/png" };
220
+ if (client instanceof DesktopClient) {
221
+ const result = await client.screenshotWithMeta();
222
+ // Desktop returns JPEG already compressed
223
+ return { data: result.base64, mimeType: result.mimeType };
125
224
  }
126
- else {
127
- const buffer = client.screenshotRaw();
128
- if (compress) {
129
- return compressScreenshot(buffer, options);
130
- }
131
- return { data: buffer.toString("base64"), mimeType: "image/png" };
225
+ // Mobile clients
226
+ const buffer = client.screenshotRaw();
227
+ if (compress) {
228
+ return compressScreenshot(buffer, options);
132
229
  }
230
+ return { data: buffer.toString("base64"), mimeType: "image/png" };
133
231
  }
134
232
  /**
135
233
  * Take screenshot without compression (legacy)
136
234
  */
137
235
  screenshotRaw(platform) {
138
236
  const client = this.getClient(platform);
237
+ if (client instanceof DesktopClient) {
238
+ throw new Error("Use screenshot() for desktop platform");
239
+ }
139
240
  return client.screenshot();
140
241
  }
141
242
  /**
142
243
  * Tap at coordinates
143
244
  */
144
- tap(x, y, platform) {
245
+ async tap(x, y, platform) {
145
246
  const client = this.getClient(platform);
146
- client.tap(x, y);
247
+ if (client instanceof DesktopClient) {
248
+ await client.tap(x, y);
249
+ }
250
+ else {
251
+ client.tap(x, y);
252
+ }
147
253
  }
148
254
  /**
149
255
  * Long press
150
256
  */
151
- longPress(x, y, durationMs = 1000, platform) {
257
+ async longPress(x, y, durationMs = 1000, platform) {
152
258
  const client = this.getClient(platform);
153
- if (client instanceof AdbClient) {
259
+ if (client instanceof DesktopClient) {
260
+ await client.longPress(x, y, durationMs);
261
+ }
262
+ else if (client instanceof AdbClient) {
154
263
  client.longPress(x, y, durationMs);
155
264
  }
156
265
  else {
@@ -161,36 +270,59 @@ export class DeviceManager {
161
270
  /**
162
271
  * Swipe
163
272
  */
164
- swipe(x1, y1, x2, y2, durationMs = 300, platform) {
273
+ async swipe(x1, y1, x2, y2, durationMs = 300, platform) {
165
274
  const client = this.getClient(platform);
166
- client.swipe(x1, y1, x2, y2, durationMs);
275
+ if (client instanceof DesktopClient) {
276
+ await client.swipe(x1, y1, x2, y2, durationMs);
277
+ }
278
+ else {
279
+ client.swipe(x1, y1, x2, y2, durationMs);
280
+ }
167
281
  }
168
282
  /**
169
283
  * Swipe direction
170
284
  */
171
- swipeDirection(direction, platform) {
285
+ async swipeDirection(direction, platform) {
172
286
  const client = this.getClient(platform);
173
- client.swipeDirection(direction);
287
+ if (client instanceof DesktopClient) {
288
+ await client.swipeDirection(direction);
289
+ }
290
+ else {
291
+ client.swipeDirection(direction);
292
+ }
174
293
  }
175
294
  /**
176
295
  * Input text
177
296
  */
178
- inputText(text, platform) {
297
+ async inputText(text, platform) {
179
298
  const client = this.getClient(platform);
180
- client.inputText(text);
299
+ if (client instanceof DesktopClient) {
300
+ await client.inputText(text);
301
+ }
302
+ else {
303
+ client.inputText(text);
304
+ }
181
305
  }
182
306
  /**
183
307
  * Press key
184
308
  */
185
- pressKey(key, platform) {
309
+ async pressKey(key, platform) {
186
310
  const client = this.getClient(platform);
187
- client.pressKey(key);
311
+ if (client instanceof DesktopClient) {
312
+ await client.pressKey(key);
313
+ }
314
+ else {
315
+ client.pressKey(key);
316
+ }
188
317
  }
189
318
  /**
190
319
  * Launch app
191
320
  */
192
321
  launchApp(packageOrBundleId, platform) {
193
322
  const client = this.getClient(platform);
323
+ if (client instanceof DesktopClient) {
324
+ return client.launchApp(packageOrBundleId);
325
+ }
194
326
  return client.launchApp(packageOrBundleId);
195
327
  }
196
328
  /**
@@ -198,13 +330,21 @@ export class DeviceManager {
198
330
  */
199
331
  stopApp(packageOrBundleId, platform) {
200
332
  const client = this.getClient(platform);
201
- client.stopApp(packageOrBundleId);
333
+ if (client instanceof DesktopClient) {
334
+ client.stopApp(packageOrBundleId);
335
+ }
336
+ else {
337
+ client.stopApp(packageOrBundleId);
338
+ }
202
339
  }
203
340
  /**
204
341
  * Install app
205
342
  */
206
343
  installApp(path, platform) {
207
344
  const client = this.getClient(platform);
345
+ if (client instanceof DesktopClient) {
346
+ return "Desktop platform doesn't support app installation";
347
+ }
208
348
  if (client instanceof AdbClient) {
209
349
  return client.installApk(path);
210
350
  }
@@ -215,8 +355,13 @@ export class DeviceManager {
215
355
  /**
216
356
  * Get UI hierarchy
217
357
  */
218
- getUiHierarchy(platform) {
358
+ async getUiHierarchy(platform) {
219
359
  const client = this.getClient(platform);
360
+ if (client instanceof DesktopClient) {
361
+ const hierarchy = await client.getUiHierarchy();
362
+ // Format as text for compatibility
363
+ return formatDesktopHierarchy(hierarchy);
364
+ }
220
365
  return client.getUiHierarchy();
221
366
  }
222
367
  /**
@@ -224,6 +369,9 @@ export class DeviceManager {
224
369
  */
225
370
  shell(command, platform) {
226
371
  const client = this.getClient(platform);
372
+ if (client instanceof DesktopClient) {
373
+ return client.shell(command);
374
+ }
227
375
  return client.shell(command);
228
376
  }
229
377
  /**
@@ -242,6 +390,13 @@ export class DeviceManager {
242
390
  * Get device logs
243
391
  */
244
392
  getLogs(options = {}) {
393
+ const targetPlatform = options.platform ?? this.activeTarget;
394
+ if (targetPlatform === "desktop") {
395
+ const logs = this.desktopClient.getLogs({
396
+ limit: options.lines ?? 100
397
+ });
398
+ return logs.map(l => `[${l.type}] ${l.message}`).join("\n");
399
+ }
245
400
  const client = this.getClient(options.platform);
246
401
  if (client instanceof AdbClient) {
247
402
  return client.getLogs({
@@ -263,6 +418,11 @@ export class DeviceManager {
263
418
  * Clear logs
264
419
  */
265
420
  clearLogs(platform) {
421
+ const targetPlatform = platform ?? this.activeTarget;
422
+ if (targetPlatform === "desktop") {
423
+ this.desktopClient.clearLogs();
424
+ return "Desktop logs cleared";
425
+ }
266
426
  const client = this.getClient(platform);
267
427
  if (client instanceof AdbClient) {
268
428
  client.clearLogs();
@@ -275,7 +435,12 @@ export class DeviceManager {
275
435
  /**
276
436
  * Get system info (battery, memory, etc.)
277
437
  */
278
- getSystemInfo(platform) {
438
+ async getSystemInfo(platform) {
439
+ const targetPlatform = platform ?? this.activeTarget;
440
+ if (targetPlatform === "desktop") {
441
+ const metrics = await this.desktopClient.getPerformanceMetrics();
442
+ return `=== Desktop Performance ===\nMemory: ${metrics.memoryUsageMb} MB${metrics.cpuPercent ? `\nCPU: ${metrics.cpuPercent}%` : ''}`;
443
+ }
279
444
  const client = this.getClient(platform);
280
445
  if (client instanceof AdbClient) {
281
446
  const battery = client.getBatteryInfo();
@@ -287,4 +452,26 @@ export class DeviceManager {
287
452
  }
288
453
  }
289
454
  }
455
+ /**
456
+ * Format desktop UI hierarchy as text
457
+ */
458
+ function formatDesktopHierarchy(hierarchy) {
459
+ const lines = [];
460
+ lines.push(`Scale Factor: ${hierarchy.scaleFactor}`);
461
+ lines.push(`\n=== Windows (${hierarchy.windows.length}) ===`);
462
+ for (const win of hierarchy.windows) {
463
+ const focused = win.focused ? " [FOCUSED]" : "";
464
+ lines.push(` ${win.title}${focused} (${win.bounds.width}x${win.bounds.height})`);
465
+ }
466
+ lines.push(`\n=== UI Elements (${hierarchy.elements.length}) ===`);
467
+ for (const el of hierarchy.elements) {
468
+ const text = el.text ? `"${el.text}"` : "";
469
+ const role = el.role || el.className;
470
+ const clickable = el.clickable ? " [clickable]" : "";
471
+ const focused = el.focused ? " [focused]" : "";
472
+ lines.push(`[${el.index}] ${role} ${text}${clickable}${focused} ` +
473
+ `(${el.centerX}, ${el.centerY}) [${el.bounds.x},${el.bounds.y},${el.bounds.width},${el.bounds.height}]`);
474
+ }
475
+ return lines.join("\n");
476
+ }
290
477
  //# sourceMappingURL=device-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-manager.js","sourceRoot":"","sources":["../src/device-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-manager.js","sourceRoot":"","sources":["../src/device-manager.ts"],"names":[],"mappings":"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"}