claude-in-mobile 2.1.2 → 2.2.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 (39) 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/desktop/client.d.ts +162 -0
  14. package/dist/desktop/client.d.ts.map +1 -0
  15. package/dist/desktop/client.js +485 -0
  16. package/dist/desktop/client.js.map +1 -0
  17. package/dist/desktop/gradle.d.ts +45 -0
  18. package/dist/desktop/gradle.d.ts.map +1 -0
  19. package/dist/desktop/gradle.js +228 -0
  20. package/dist/desktop/gradle.js.map +1 -0
  21. package/dist/desktop/index.d.ts +7 -0
  22. package/dist/desktop/index.d.ts.map +1 -0
  23. package/dist/desktop/index.js +7 -0
  24. package/dist/desktop/index.js.map +1 -0
  25. package/dist/desktop/types.d.ts +131 -0
  26. package/dist/desktop/types.d.ts.map +1 -0
  27. package/dist/desktop/types.js +5 -0
  28. package/dist/desktop/types.js.map +1 -0
  29. package/dist/device-manager.d.ts +41 -10
  30. package/dist/device-manager.d.ts.map +1 -1
  31. package/dist/device-manager.js +226 -39
  32. package/dist/device-manager.js.map +1 -1
  33. package/dist/index.js +237 -18
  34. package/dist/index.js.map +1 -1
  35. package/dist/utils/image.d.ts +2 -0
  36. package/dist/utils/image.d.ts.map +1 -1
  37. package/dist/utils/image.js +25 -2
  38. package/dist/utils/image.js.map +1 -1
  39. package/package.json +7 -2
package/dist/index.js CHANGED
@@ -9,8 +9,8 @@ const deviceManager = new DeviceManager();
9
9
  // Platform parameter schema (reused across tools)
10
10
  const platformParam = {
11
11
  type: "string",
12
- enum: ["android", "ios"],
13
- description: "Target platform. If not specified, uses the active device.",
12
+ enum: ["android", "ios", "desktop"],
13
+ description: "Target platform. If not specified, uses the active target.",
14
14
  };
15
15
  // Define tools
16
16
  const tools = [
@@ -382,6 +382,134 @@ const tools = [
382
382
  },
383
383
  },
384
384
  },
385
+ // ============ Desktop Tools ============
386
+ {
387
+ name: "set_target",
388
+ description: "Switch the active target between Android, iOS, and Desktop platforms",
389
+ inputSchema: {
390
+ type: "object",
391
+ properties: {
392
+ target: {
393
+ type: "string",
394
+ enum: ["android", "ios", "desktop"],
395
+ description: "Target platform to switch to",
396
+ },
397
+ },
398
+ required: ["target"],
399
+ },
400
+ },
401
+ {
402
+ name: "get_target",
403
+ description: "Get the current active target and its status",
404
+ inputSchema: {
405
+ type: "object",
406
+ properties: {},
407
+ },
408
+ },
409
+ {
410
+ name: "launch_desktop_app",
411
+ description: "Start desktop automation. Optionally also launches a Compose Desktop application via Gradle.",
412
+ inputSchema: {
413
+ type: "object",
414
+ properties: {
415
+ projectPath: {
416
+ type: "string",
417
+ description: "Path to the Gradle project directory. If provided, also launches the user's app.",
418
+ },
419
+ task: {
420
+ type: "string",
421
+ description: "Gradle task to run (e.g., ':desktopApp:run'). Auto-detected if not specified.",
422
+ },
423
+ jvmArgs: {
424
+ type: "array",
425
+ items: { type: "string" },
426
+ description: "JVM arguments to pass to the app",
427
+ },
428
+ },
429
+ },
430
+ },
431
+ {
432
+ name: "stop_desktop_app",
433
+ description: "Stop the running desktop application",
434
+ inputSchema: {
435
+ type: "object",
436
+ properties: {},
437
+ },
438
+ },
439
+ {
440
+ name: "get_window_info",
441
+ description: "Get information about desktop windows (Desktop only)",
442
+ inputSchema: {
443
+ type: "object",
444
+ properties: {},
445
+ },
446
+ },
447
+ {
448
+ name: "focus_window",
449
+ description: "Focus a specific desktop window (Desktop only)",
450
+ inputSchema: {
451
+ type: "object",
452
+ properties: {
453
+ windowId: {
454
+ type: "string",
455
+ description: "Window ID from get_window_info",
456
+ },
457
+ },
458
+ required: ["windowId"],
459
+ },
460
+ },
461
+ {
462
+ name: "resize_window",
463
+ description: "Resize a desktop window (Desktop only)",
464
+ inputSchema: {
465
+ type: "object",
466
+ properties: {
467
+ windowId: {
468
+ type: "string",
469
+ description: "Window ID (optional, uses focused window if not specified)",
470
+ },
471
+ width: {
472
+ type: "number",
473
+ description: "New window width in pixels",
474
+ },
475
+ height: {
476
+ type: "number",
477
+ description: "New window height in pixels",
478
+ },
479
+ },
480
+ required: ["width", "height"],
481
+ },
482
+ },
483
+ {
484
+ name: "get_clipboard",
485
+ description: "Get clipboard text content (Desktop only)",
486
+ inputSchema: {
487
+ type: "object",
488
+ properties: {},
489
+ },
490
+ },
491
+ {
492
+ name: "set_clipboard",
493
+ description: "Set clipboard text content (Desktop only)",
494
+ inputSchema: {
495
+ type: "object",
496
+ properties: {
497
+ text: {
498
+ type: "string",
499
+ description: "Text to set in clipboard",
500
+ },
501
+ },
502
+ required: ["text"],
503
+ },
504
+ },
505
+ {
506
+ name: "get_performance_metrics",
507
+ description: "Get memory and CPU usage metrics (Desktop only)",
508
+ inputSchema: {
509
+ type: "object",
510
+ properties: {},
511
+ },
512
+ },
385
513
  ];
386
514
  // Cache for UI elements (to support tap by index)
387
515
  let cachedElements = [];
@@ -395,14 +523,16 @@ async function handleTool(name, args) {
395
523
  return { text: "No devices connected. Make sure ADB/Xcode is running and a device/emulator/simulator is connected." };
396
524
  }
397
525
  const activeDevice = deviceManager.getActiveDevice();
526
+ const { target: activeTarget } = deviceManager.getTarget();
398
527
  // Group by platform
399
528
  const android = devices.filter(d => d.platform === "android");
400
529
  const ios = devices.filter(d => d.platform === "ios");
530
+ const desktop = devices.filter(d => d.platform === "desktop");
401
531
  let result = "Connected devices:\n";
402
532
  if (android.length > 0) {
403
533
  result += "\nAndroid:\n";
404
534
  for (const d of android) {
405
- const active = activeDevice?.id === d.id ? " [ACTIVE]" : "";
535
+ const active = activeDevice?.id === d.id && activeTarget === "android" ? " [ACTIVE]" : "";
406
536
  const type = d.isSimulator ? "emulator" : "physical";
407
537
  result += ` • ${d.id} - ${d.name} (${type}, ${d.state})${active}\n`;
408
538
  }
@@ -410,11 +540,18 @@ async function handleTool(name, args) {
410
540
  if (ios.length > 0) {
411
541
  result += "\niOS:\n";
412
542
  for (const d of ios) {
413
- const active = activeDevice?.id === d.id ? " [ACTIVE]" : "";
543
+ const active = activeDevice?.id === d.id && activeTarget === "ios" ? " [ACTIVE]" : "";
414
544
  const type = d.isSimulator ? "simulator" : "physical";
415
545
  result += ` • ${d.id} - ${d.name} (${type}, ${d.state})${active}\n`;
416
546
  }
417
547
  }
548
+ if (desktop.length > 0) {
549
+ result += "\nDesktop:\n";
550
+ for (const d of desktop) {
551
+ const active = activeTarget === "desktop" ? " [ACTIVE]" : "";
552
+ result += ` • ${d.id} - ${d.name} (${d.state})${active}\n`;
553
+ }
554
+ }
418
555
  return { text: result.trim() };
419
556
  }
420
557
  case "set_device": {
@@ -441,7 +578,12 @@ async function handleTool(name, args) {
441
578
  if (currentPlatform === "ios") {
442
579
  return { text: "iOS UI hierarchy is limited. Use screenshot + tap by coordinates, or integrate WebDriverAgent for full UI inspection." };
443
580
  }
444
- const xml = deviceManager.getUiHierarchy(platform);
581
+ // Desktop returns pre-formatted text from DeviceManager
582
+ const xml = await deviceManager.getUiHierarchy(platform);
583
+ if (currentPlatform === "desktop") {
584
+ return { text: xml };
585
+ }
586
+ // Android: parse XML and format
445
587
  cachedElements = parseUiHierarchy(xml);
446
588
  const tree = formatUiTree(cachedElements, {
447
589
  showAll: args.showAll,
@@ -456,7 +598,7 @@ async function handleTool(name, args) {
456
598
  if (args.index !== undefined && currentPlatform === "android") {
457
599
  const idx = args.index;
458
600
  if (cachedElements.length === 0) {
459
- const xml = deviceManager.getUiHierarchy("android");
601
+ const xml = await deviceManager.getUiHierarchy("android");
460
602
  cachedElements = parseUiHierarchy(xml);
461
603
  }
462
604
  const el = cachedElements.find(e => e.index === idx);
@@ -468,7 +610,7 @@ async function handleTool(name, args) {
468
610
  }
469
611
  // Find by text or resourceId (Android only)
470
612
  if ((args.text || args.resourceId) && currentPlatform === "android") {
471
- const xml = deviceManager.getUiHierarchy("android");
613
+ const xml = await deviceManager.getUiHierarchy("android");
472
614
  cachedElements = parseUiHierarchy(xml);
473
615
  let found = [];
474
616
  if (args.text) {
@@ -488,7 +630,7 @@ async function handleTool(name, args) {
488
630
  if (x === undefined || y === undefined) {
489
631
  return { text: "Please provide x,y coordinates, text, resourceId, or index" };
490
632
  }
491
- deviceManager.tap(x, y, platform);
633
+ await deviceManager.tap(x, y, platform);
492
634
  return { text: `Tapped at (${x}, ${y})` };
493
635
  }
494
636
  case "long_press": {
@@ -497,7 +639,7 @@ async function handleTool(name, args) {
497
639
  const duration = args.duration ?? 1000;
498
640
  const currentPlatform = platform ?? deviceManager.getCurrentPlatform();
499
641
  if (args.text && currentPlatform === "android") {
500
- const xml = deviceManager.getUiHierarchy("android");
642
+ const xml = await deviceManager.getUiHierarchy("android");
501
643
  cachedElements = parseUiHierarchy(xml);
502
644
  const found = findByText(cachedElements, args.text);
503
645
  if (found.length === 0) {
@@ -509,28 +651,28 @@ async function handleTool(name, args) {
509
651
  if (x === undefined || y === undefined) {
510
652
  return { text: "Please provide x,y coordinates or text" };
511
653
  }
512
- deviceManager.longPress(x, y, duration, platform);
654
+ await deviceManager.longPress(x, y, duration, platform);
513
655
  return { text: `Long pressed at (${x}, ${y}) for ${duration}ms` };
514
656
  }
515
657
  case "swipe": {
516
658
  if (args.direction) {
517
- deviceManager.swipeDirection(args.direction, platform);
659
+ await deviceManager.swipeDirection(args.direction, platform);
518
660
  return { text: `Swiped ${args.direction}` };
519
661
  }
520
662
  if (args.x1 !== undefined && args.y1 !== undefined &&
521
663
  args.x2 !== undefined && args.y2 !== undefined) {
522
664
  const duration = args.duration ?? 300;
523
- deviceManager.swipe(args.x1, args.y1, args.x2, args.y2, duration, platform);
665
+ await deviceManager.swipe(args.x1, args.y1, args.x2, args.y2, duration, platform);
524
666
  return { text: `Swiped from (${args.x1}, ${args.y1}) to (${args.x2}, ${args.y2})` };
525
667
  }
526
668
  return { text: "Please provide direction or x1,y1,x2,y2 coordinates" };
527
669
  }
528
670
  case "input_text": {
529
- deviceManager.inputText(args.text, platform);
671
+ await deviceManager.inputText(args.text, platform);
530
672
  return { text: `Entered text: "${args.text}"` };
531
673
  }
532
674
  case "press_key": {
533
- deviceManager.pressKey(args.key, platform);
675
+ await deviceManager.pressKey(args.key, platform);
534
676
  return { text: `Pressed key: ${args.key}` };
535
677
  }
536
678
  case "find_element": {
@@ -538,7 +680,7 @@ async function handleTool(name, args) {
538
680
  if (currentPlatform === "ios") {
539
681
  return { text: "find_element is only available for Android. Use screenshot + tap by coordinates for iOS." };
540
682
  }
541
- const xml = deviceManager.getUiHierarchy("android");
683
+ const xml = await deviceManager.getUiHierarchy("android");
542
684
  cachedElements = parseUiHierarchy(xml);
543
685
  const found = findElements(cachedElements, {
544
686
  text: args.text,
@@ -606,9 +748,86 @@ async function handleTool(name, args) {
606
748
  return { text: result };
607
749
  }
608
750
  case "get_system_info": {
609
- const info = deviceManager.getSystemInfo(platform);
751
+ const info = await deviceManager.getSystemInfo(platform);
610
752
  return { text: info };
611
753
  }
754
+ // ============ Desktop Tools ============
755
+ case "set_target": {
756
+ const target = args.target;
757
+ deviceManager.setTarget(target);
758
+ return { text: `Target set to: ${target}` };
759
+ }
760
+ case "get_target": {
761
+ const { target, status } = deviceManager.getTarget();
762
+ return { text: `Current target: ${target} (${status})` };
763
+ }
764
+ case "launch_desktop_app": {
765
+ const result = await deviceManager.launchDesktopApp({
766
+ projectPath: args.projectPath,
767
+ task: args.task,
768
+ jvmArgs: args.jvmArgs,
769
+ });
770
+ return { text: result };
771
+ }
772
+ case "stop_desktop_app": {
773
+ await deviceManager.stopDesktopApp();
774
+ return { text: "Desktop app stopped" };
775
+ }
776
+ case "get_window_info": {
777
+ if (!deviceManager.isDesktopRunning()) {
778
+ return { text: "Desktop app is not running. Use launch_desktop_app first." };
779
+ }
780
+ const windowInfo = await deviceManager.getDesktopClient().getWindowInfo();
781
+ if (windowInfo.windows.length === 0) {
782
+ return { text: "No windows found" };
783
+ }
784
+ let result = "Desktop windows:\n";
785
+ for (const w of windowInfo.windows) {
786
+ const focused = w.focused ? " [FOCUSED]" : "";
787
+ result += ` • ${w.id} - ${w.title}${focused} (${w.bounds.width}x${w.bounds.height})\n`;
788
+ }
789
+ return { text: result.trim() };
790
+ }
791
+ case "focus_window": {
792
+ if (!deviceManager.isDesktopRunning()) {
793
+ return { text: "Desktop app is not running. Use launch_desktop_app first." };
794
+ }
795
+ await deviceManager.getDesktopClient().focusWindow(args.windowId);
796
+ return { text: `Focused window: ${args.windowId}` };
797
+ }
798
+ case "resize_window": {
799
+ if (!deviceManager.isDesktopRunning()) {
800
+ return { text: "Desktop app is not running. Use launch_desktop_app first." };
801
+ }
802
+ await deviceManager.getDesktopClient().resizeWindow(args.width, args.height, args.windowId);
803
+ return { text: `Resized window to ${args.width}x${args.height}` };
804
+ }
805
+ case "get_clipboard": {
806
+ if (!deviceManager.isDesktopRunning()) {
807
+ return { text: "Desktop app is not running. Use launch_desktop_app first." };
808
+ }
809
+ const clipboardText = await deviceManager.getDesktopClient().getClipboard();
810
+ return { text: clipboardText || "(empty)" };
811
+ }
812
+ case "set_clipboard": {
813
+ if (!deviceManager.isDesktopRunning()) {
814
+ return { text: "Desktop app is not running. Use launch_desktop_app first." };
815
+ }
816
+ await deviceManager.getDesktopClient().setClipboard(args.text);
817
+ return { text: "Clipboard set" };
818
+ }
819
+ case "get_performance_metrics": {
820
+ if (!deviceManager.isDesktopRunning()) {
821
+ return { text: "Desktop app is not running. Use launch_desktop_app first." };
822
+ }
823
+ const metrics = await deviceManager.getDesktopClient().getPerformanceMetrics();
824
+ let result = "Performance metrics:\n";
825
+ result += ` Memory: ${metrics.memoryUsageMb} MB\n`;
826
+ if (metrics.cpuPercent !== undefined) {
827
+ result += ` CPU: ${metrics.cpuPercent}%\n`;
828
+ }
829
+ return { text: result.trim() };
830
+ }
612
831
  default:
613
832
  throw new Error(`Unknown tool: ${name}`);
614
833
  }
@@ -616,7 +835,7 @@ async function handleTool(name, args) {
616
835
  // Create server
617
836
  const server = new Server({
618
837
  name: "claude-mobile",
619
- version: "2.1.1",
838
+ version: "2.2.0",
620
839
  }, {
621
840
  capabilities: {
622
841
  tools: {},
@@ -673,7 +892,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
673
892
  async function main() {
674
893
  const transport = new StdioServerTransport();
675
894
  await server.connect(transport);
676
- console.error("Claude Mobile MCP server running (Android + iOS)");
895
+ console.error("Claude Mobile MCP server running (Android + iOS + Desktop)");
677
896
  }
678
897
  main().catch((error) => {
679
898
  console.error("Fatal error:", error);
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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"}
@@ -2,11 +2,13 @@ export interface CompressOptions {
2
2
  maxWidth?: number;
3
3
  maxHeight?: number;
4
4
  quality?: number;
5
+ maxSizeBytes?: number;
5
6
  }
6
7
  /**
7
8
  * Compress PNG image buffer
8
9
  * - Resize if larger than max dimensions
9
10
  * - Convert to JPEG with specified quality
11
+ * - Iteratively reduce quality if still too large
10
12
  * Returns base64 encoded JPEG
11
13
  */
12
14
  export declare function compressScreenshot(pngBuffer: Buffer, options?: CompressOptions): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/utils/image.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgC7C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAK9E"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/utils/image.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AASD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA0D7C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAK9E"}
@@ -3,11 +3,13 @@ const DEFAULT_OPTIONS = {
3
3
  maxWidth: 800, // Safe for API limit of 2000px
4
4
  maxHeight: 1400, // Safe for API limit of 2000px
5
5
  quality: 70,
6
+ maxSizeBytes: 1024 * 1024, // 1MB max for base64 (safe margin for API)
6
7
  };
7
8
  /**
8
9
  * Compress PNG image buffer
9
10
  * - Resize if larger than max dimensions
10
11
  * - Convert to JPEG with specified quality
12
+ * - Iteratively reduce quality if still too large
11
13
  * Returns base64 encoded JPEG
12
14
  */
13
15
  export async function compressScreenshot(pngBuffer, options = {}) {
@@ -29,8 +31,29 @@ export async function compressScreenshot(pngBuffer, options = {}) {
29
31
  if (newWidth !== width || newHeight !== height) {
30
32
  image.resize({ w: newWidth, h: newHeight });
31
33
  }
32
- // Convert to JPEG buffer
33
- const jpegBuffer = await image.getBuffer("image/jpeg", { quality: opts.quality });
34
+ // Convert to JPEG with iterative quality reduction if needed
35
+ let quality = opts.quality;
36
+ let jpegBuffer;
37
+ let attempts = 0;
38
+ const maxAttempts = 5;
39
+ do {
40
+ jpegBuffer = await image.getBuffer("image/jpeg", { quality });
41
+ // Check if size is within limit
42
+ if (jpegBuffer.length <= opts.maxSizeBytes) {
43
+ break;
44
+ }
45
+ // Reduce quality and try again
46
+ quality = Math.max(20, quality - 15);
47
+ attempts++;
48
+ } while (attempts < maxAttempts);
49
+ // If still too large after quality reduction, resize further
50
+ if (jpegBuffer.length > opts.maxSizeBytes) {
51
+ const scaleFactor = Math.sqrt(opts.maxSizeBytes / jpegBuffer.length) * 0.9;
52
+ const smallerWidth = Math.round(newWidth * scaleFactor);
53
+ const smallerHeight = Math.round(newHeight * scaleFactor);
54
+ image.resize({ w: smallerWidth, h: smallerHeight });
55
+ jpegBuffer = await image.getBuffer("image/jpeg", { quality: 50 });
56
+ }
34
57
  return {
35
58
  data: jpegBuffer.toString("base64"),
36
59
  mimeType: "image/jpeg",
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/utils/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQ5B,MAAM,eAAe,GAAoB;IACvC,QAAQ,EAAE,GAAG,EAAK,+BAA+B;IACjD,SAAS,EAAE,IAAI,EAAG,+BAA+B;IACjD,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,UAA2B,EAAE;IAE7B,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B,oDAAoD;IACpD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAG,MAAM,CAAC;IAEvB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAS,IAAI,MAAM,GAAG,IAAI,CAAC,SAAU,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAS,GAAG,KAAK,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAU,GAAG,MAAM,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEhD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QACrC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB;IACnB,IAAI,QAAQ,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAC/C,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,yBAAyB;IACzB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAQ,EAAE,CAAC,CAAC;IAEnF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACnC,QAAQ,EAAE,YAAY;KACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/B,QAAQ,EAAE,WAAW;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/utils/image.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "claude-in-mobile",
3
- "version": "2.1.2",
4
- "description": "MCP server for mobile device automation - Android (ADB) and iOS Simulator (simctl)",
3
+ "version": "2.2.0",
4
+ "description": "MCP server for mobile and desktop automation - Android (ADB), iOS Simulator (simctl), and Desktop (Compose)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
@@ -9,6 +9,8 @@
9
9
  },
10
10
  "scripts": {
11
11
  "build": "tsc",
12
+ "build:desktop": "cd desktop-companion && ./gradlew installDist",
13
+ "build:all": "npm run build && npm run build:desktop",
12
14
  "watch": "tsc --watch",
13
15
  "start": "node dist/index.js",
14
16
  "dev": "tsc && node dist/index.js",
@@ -18,6 +20,8 @@
18
20
  "mcp",
19
21
  "android",
20
22
  "ios",
23
+ "desktop",
24
+ "compose",
21
25
  "adb",
22
26
  "simctl",
23
27
  "mobile",
@@ -41,6 +45,7 @@
41
45
  },
42
46
  "files": [
43
47
  "dist",
48
+ "desktop-companion/build/install/desktop-companion",
44
49
  "README.md"
45
50
  ],
46
51
  "dependencies": {