react-native-ai-debugger 1.0.5 → 1.0.7

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.
package/build/core/ios.js CHANGED
@@ -1,12 +1,79 @@
1
- import { exec } from "child_process";
1
+ import { exec, execFile } from "child_process";
2
2
  import { promisify } from "util";
3
3
  import { existsSync } from "fs";
4
4
  import path from "path";
5
5
  import os from "os";
6
6
  import sharp from "sharp";
7
7
  const execAsync = promisify(exec);
8
+ const execFileAsync = promisify(execFile);
8
9
  // simctl command timeout in milliseconds
9
10
  const SIMCTL_TIMEOUT = 30000;
11
+ // IDB command timeout in milliseconds
12
+ const IDB_TIMEOUT = 30000;
13
+ // Valid button types for IDB ui button command
14
+ export const IOS_BUTTON_TYPES = ["HOME", "LOCK", "SIDE_BUTTON", "SIRI", "APPLE_PAY"];
15
+ // Track connected IDB simulators to avoid redundant connect calls
16
+ const connectedIdbSimulators = new Set();
17
+ /**
18
+ * Get the IDB executable path
19
+ * Supports IDB_PATH environment variable for custom installations
20
+ */
21
+ function getIdbPath() {
22
+ return process.env.IDB_PATH || "idb";
23
+ }
24
+ /**
25
+ * Run IDB command with execFile (no shell) for proper argument handling
26
+ * This matches the original ios-simulator-mcp implementation
27
+ */
28
+ async function runIdb(...args) {
29
+ const idbPath = getIdbPath();
30
+ const { stdout, stderr } = await execFileAsync(idbPath, args, {
31
+ timeout: IDB_TIMEOUT
32
+ });
33
+ return {
34
+ stdout: stdout.trim(),
35
+ stderr: stderr.trim()
36
+ };
37
+ }
38
+ /**
39
+ * Check if IDB is available
40
+ */
41
+ export async function isIdbAvailable() {
42
+ try {
43
+ await runIdb("--help");
44
+ return true;
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ }
50
+ /**
51
+ * Ensure IDB is connected to the specified simulator
52
+ * IDB requires `idb connect <UDID>` before any UI commands work
53
+ */
54
+ async function ensureIdbConnected(udid) {
55
+ // Skip if already connected in this session
56
+ if (connectedIdbSimulators.has(udid)) {
57
+ return { success: true };
58
+ }
59
+ try {
60
+ await runIdb("connect", udid);
61
+ connectedIdbSimulators.add(udid);
62
+ return { success: true };
63
+ }
64
+ catch (error) {
65
+ const errorMessage = error instanceof Error ? error.message : String(error);
66
+ // "Already connected" is not an error
67
+ if (errorMessage.includes("already connected") || errorMessage.includes("Connected")) {
68
+ connectedIdbSimulators.add(udid);
69
+ return { success: true };
70
+ }
71
+ return {
72
+ success: false,
73
+ error: `Failed to connect IDB to simulator: ${errorMessage}`
74
+ };
75
+ }
76
+ }
10
77
  /**
11
78
  * Check if simctl is available
12
79
  */
@@ -390,4 +457,527 @@ export async function iosBootSimulator(udid) {
390
457
  };
391
458
  }
392
459
  }
460
+ // ============================================================================
461
+ // IDB-Based UI Interaction Tools
462
+ // These tools require Facebook IDB (iOS Development Bridge) to be installed
463
+ // Install with: brew install idb-companion
464
+ // ============================================================================
465
+ /**
466
+ * Tap at coordinates on an iOS simulator using IDB
467
+ */
468
+ export async function iosTap(x, y, options) {
469
+ try {
470
+ const idbAvailable = await isIdbAvailable();
471
+ if (!idbAvailable) {
472
+ return {
473
+ success: false,
474
+ error: "IDB is not installed. Install with: brew install idb-companion"
475
+ };
476
+ }
477
+ // Get simulator UDID (use provided or find booted one)
478
+ const targetUdid = options?.udid || (await getBootedSimulatorUdid());
479
+ if (!targetUdid) {
480
+ return {
481
+ success: false,
482
+ error: "No iOS simulator is currently running. Start a simulator first."
483
+ };
484
+ }
485
+ // Ensure IDB is connected to the simulator
486
+ const connectResult = await ensureIdbConnected(targetUdid);
487
+ if (!connectResult.success) {
488
+ return { success: false, error: connectResult.error };
489
+ }
490
+ const xRounded = Math.round(x);
491
+ const yRounded = Math.round(y);
492
+ // Build args array for execFile (no shell)
493
+ const args = ["ui", "tap", "--udid", targetUdid];
494
+ if (options?.duration !== undefined) {
495
+ args.push("--duration", String(options.duration));
496
+ }
497
+ args.push("--json", "--", String(xRounded), String(yRounded));
498
+ const { stderr } = await runIdb(...args);
499
+ if (stderr)
500
+ throw new Error(stderr);
501
+ return {
502
+ success: true,
503
+ result: `Tapped at (${xRounded}, ${yRounded})`
504
+ };
505
+ }
506
+ catch (error) {
507
+ return {
508
+ success: false,
509
+ error: `Failed to tap: ${error instanceof Error ? error.message : String(error)}`
510
+ };
511
+ }
512
+ }
513
+ /**
514
+ * Swipe gesture on an iOS simulator using IDB
515
+ */
516
+ export async function iosSwipe(startX, startY, endX, endY, options) {
517
+ try {
518
+ const idbAvailable = await isIdbAvailable();
519
+ if (!idbAvailable) {
520
+ return {
521
+ success: false,
522
+ error: "IDB is not installed. Install with: brew install idb-companion"
523
+ };
524
+ }
525
+ const targetUdid = options?.udid || (await getBootedSimulatorUdid());
526
+ if (!targetUdid) {
527
+ return {
528
+ success: false,
529
+ error: "No iOS simulator is currently running. Start a simulator first."
530
+ };
531
+ }
532
+ // Ensure IDB is connected to the simulator
533
+ const connectResult = await ensureIdbConnected(targetUdid);
534
+ if (!connectResult.success) {
535
+ return { success: false, error: connectResult.error };
536
+ }
537
+ const x1 = Math.round(startX);
538
+ const y1 = Math.round(startY);
539
+ const x2 = Math.round(endX);
540
+ const y2 = Math.round(endY);
541
+ // Build args array for execFile (no shell)
542
+ const args = ["ui", "swipe", "--udid", targetUdid];
543
+ if (options?.duration !== undefined) {
544
+ args.push("--duration", String(options.duration));
545
+ }
546
+ if (options?.delta !== undefined) {
547
+ args.push("--delta", String(options.delta));
548
+ }
549
+ args.push("--json", "--", String(x1), String(y1), String(x2), String(y2));
550
+ const { stderr } = await runIdb(...args);
551
+ if (stderr)
552
+ throw new Error(stderr);
553
+ return {
554
+ success: true,
555
+ result: `Swiped from (${x1}, ${y1}) to (${x2}, ${y2})`
556
+ };
557
+ }
558
+ catch (error) {
559
+ return {
560
+ success: false,
561
+ error: `Failed to swipe: ${error instanceof Error ? error.message : String(error)}`
562
+ };
563
+ }
564
+ }
565
+ /**
566
+ * Input text into the active field on an iOS simulator using IDB
567
+ */
568
+ export async function iosInputText(text, udid) {
569
+ try {
570
+ const idbAvailable = await isIdbAvailable();
571
+ if (!idbAvailable) {
572
+ return {
573
+ success: false,
574
+ error: "IDB is not installed. Install with: brew install idb-companion"
575
+ };
576
+ }
577
+ const targetUdid = udid || (await getBootedSimulatorUdid());
578
+ if (!targetUdid) {
579
+ return {
580
+ success: false,
581
+ error: "No iOS simulator is currently running. Start a simulator first."
582
+ };
583
+ }
584
+ // Ensure IDB is connected to the simulator
585
+ const connectResult = await ensureIdbConnected(targetUdid);
586
+ if (!connectResult.success) {
587
+ return { success: false, error: connectResult.error };
588
+ }
589
+ // Use execFile with args array (no shell escaping needed)
590
+ const { stderr } = await runIdb("ui", "text", "--udid", targetUdid, text);
591
+ if (stderr)
592
+ throw new Error(stderr);
593
+ return {
594
+ success: true,
595
+ result: `Typed text: "${text}"`
596
+ };
597
+ }
598
+ catch (error) {
599
+ return {
600
+ success: false,
601
+ error: `Failed to input text: ${error instanceof Error ? error.message : String(error)}`
602
+ };
603
+ }
604
+ }
605
+ /**
606
+ * Press a hardware button on an iOS simulator using IDB
607
+ */
608
+ export async function iosButton(button, options) {
609
+ try {
610
+ const idbAvailable = await isIdbAvailable();
611
+ if (!idbAvailable) {
612
+ return {
613
+ success: false,
614
+ error: "IDB is not installed. Install with: brew install idb-companion"
615
+ };
616
+ }
617
+ // Validate button type
618
+ if (!IOS_BUTTON_TYPES.includes(button)) {
619
+ return {
620
+ success: false,
621
+ error: `Invalid button type: ${button}. Valid options: ${IOS_BUTTON_TYPES.join(", ")}`
622
+ };
623
+ }
624
+ const targetUdid = options?.udid || (await getBootedSimulatorUdid());
625
+ if (!targetUdid) {
626
+ return {
627
+ success: false,
628
+ error: "No iOS simulator is currently running. Start a simulator first."
629
+ };
630
+ }
631
+ // Ensure IDB is connected to the simulator
632
+ const connectResult = await ensureIdbConnected(targetUdid);
633
+ if (!connectResult.success) {
634
+ return { success: false, error: connectResult.error };
635
+ }
636
+ // Build args array for execFile (no shell)
637
+ const args = ["ui", "button", "--udid", targetUdid];
638
+ if (options?.duration !== undefined) {
639
+ args.push("--duration", String(options.duration));
640
+ }
641
+ args.push(button);
642
+ const { stderr } = await runIdb(...args);
643
+ if (stderr)
644
+ throw new Error(stderr);
645
+ return {
646
+ success: true,
647
+ result: `Pressed ${button} button`
648
+ };
649
+ }
650
+ catch (error) {
651
+ return {
652
+ success: false,
653
+ error: `Failed to press button: ${error instanceof Error ? error.message : String(error)}`
654
+ };
655
+ }
656
+ }
657
+ /**
658
+ * Send a key event to an iOS simulator using IDB
659
+ */
660
+ export async function iosKeyEvent(keycode, options) {
661
+ try {
662
+ const idbAvailable = await isIdbAvailable();
663
+ if (!idbAvailable) {
664
+ return {
665
+ success: false,
666
+ error: "IDB is not installed. Install with: brew install idb-companion"
667
+ };
668
+ }
669
+ const targetUdid = options?.udid || (await getBootedSimulatorUdid());
670
+ if (!targetUdid) {
671
+ return {
672
+ success: false,
673
+ error: "No iOS simulator is currently running. Start a simulator first."
674
+ };
675
+ }
676
+ // Ensure IDB is connected to the simulator
677
+ const connectResult = await ensureIdbConnected(targetUdid);
678
+ if (!connectResult.success) {
679
+ return { success: false, error: connectResult.error };
680
+ }
681
+ // Build args array for execFile (no shell)
682
+ const args = ["ui", "key", "--udid", targetUdid];
683
+ if (options?.duration !== undefined) {
684
+ args.push("--duration", String(options.duration));
685
+ }
686
+ args.push(String(keycode));
687
+ const { stderr } = await runIdb(...args);
688
+ if (stderr)
689
+ throw new Error(stderr);
690
+ return {
691
+ success: true,
692
+ result: `Sent key event: ${keycode}`
693
+ };
694
+ }
695
+ catch (error) {
696
+ return {
697
+ success: false,
698
+ error: `Failed to send key event: ${error instanceof Error ? error.message : String(error)}`
699
+ };
700
+ }
701
+ }
702
+ /**
703
+ * Send a sequence of key events to an iOS simulator using IDB
704
+ */
705
+ export async function iosKeySequence(keycodes, udid) {
706
+ try {
707
+ const idbAvailable = await isIdbAvailable();
708
+ if (!idbAvailable) {
709
+ return {
710
+ success: false,
711
+ error: "IDB is not installed. Install with: brew install idb-companion"
712
+ };
713
+ }
714
+ if (!keycodes || keycodes.length === 0) {
715
+ return {
716
+ success: false,
717
+ error: "At least one keycode is required"
718
+ };
719
+ }
720
+ const targetUdid = udid || (await getBootedSimulatorUdid());
721
+ if (!targetUdid) {
722
+ return {
723
+ success: false,
724
+ error: "No iOS simulator is currently running. Start a simulator first."
725
+ };
726
+ }
727
+ // Ensure IDB is connected to the simulator
728
+ const connectResult = await ensureIdbConnected(targetUdid);
729
+ if (!connectResult.success) {
730
+ return { success: false, error: connectResult.error };
731
+ }
732
+ // Build args array for execFile (no shell)
733
+ const args = ["ui", "key-sequence", "--udid", targetUdid, ...keycodes.map(String)];
734
+ const { stderr } = await runIdb(...args);
735
+ if (stderr)
736
+ throw new Error(stderr);
737
+ return {
738
+ success: true,
739
+ result: `Sent key sequence: ${keycodes.join(", ")}`
740
+ };
741
+ }
742
+ catch (error) {
743
+ return {
744
+ success: false,
745
+ error: `Failed to send key sequence: ${error instanceof Error ? error.message : String(error)}`
746
+ };
747
+ }
748
+ }
749
+ /**
750
+ * Format accessibility tree for human-readable output
751
+ */
752
+ function formatAccessibilityTree(elements, depth = 0) {
753
+ const lines = [];
754
+ const indent = " ".repeat(depth);
755
+ for (const element of elements) {
756
+ const parts = [];
757
+ if (element.type)
758
+ parts.push(`[${element.type}]`);
759
+ if (element.AXLabel)
760
+ parts.push(`"${element.AXLabel}"`);
761
+ if (element.AXValue)
762
+ parts.push(`value="${element.AXValue}"`);
763
+ if (element.frame) {
764
+ const f = element.frame;
765
+ const centerX = Math.round(f.x + f.width / 2);
766
+ const centerY = Math.round(f.y + f.height / 2);
767
+ parts.push(`frame=(${f.x}, ${f.y}, ${f.width}x${f.height}) tap=(${centerX}, ${centerY})`);
768
+ }
769
+ if (parts.length > 0) {
770
+ lines.push(`${indent}${parts.join(" ")}`);
771
+ }
772
+ if (element.children && element.children.length > 0) {
773
+ lines.push(formatAccessibilityTree(element.children, depth + 1));
774
+ }
775
+ }
776
+ return lines.join("\n");
777
+ }
778
+ /**
779
+ * Get accessibility info for the entire screen using IDB
780
+ */
781
+ export async function iosDescribeAll(udid) {
782
+ try {
783
+ const idbAvailable = await isIdbAvailable();
784
+ if (!idbAvailable) {
785
+ return {
786
+ success: false,
787
+ error: "IDB is not installed. Install with: brew install idb-companion"
788
+ };
789
+ }
790
+ const targetUdid = udid || (await getBootedSimulatorUdid());
791
+ if (!targetUdid) {
792
+ return {
793
+ success: false,
794
+ error: "No iOS simulator is currently running. Start a simulator first."
795
+ };
796
+ }
797
+ // Ensure IDB is connected to the simulator
798
+ const connectResult = await ensureIdbConnected(targetUdid);
799
+ if (!connectResult.success) {
800
+ return { success: false, error: connectResult.error };
801
+ }
802
+ // Use execFile with args array (no shell)
803
+ const { stdout, stderr } = await runIdb("ui", "describe-all", "--udid", targetUdid, "--json", "--nested");
804
+ if (stderr)
805
+ throw new Error(stderr);
806
+ // Parse JSON response
807
+ const elements = JSON.parse(stdout);
808
+ // Format for human-readable output
809
+ const formatted = formatAccessibilityTree(elements);
810
+ return {
811
+ success: true,
812
+ result: formatted || "No accessibility elements found",
813
+ elements
814
+ };
815
+ }
816
+ catch (error) {
817
+ return {
818
+ success: false,
819
+ error: `Failed to describe screen: ${error instanceof Error ? error.message : String(error)}`
820
+ };
821
+ }
822
+ }
823
+ /**
824
+ * Get accessibility info at a specific point using IDB
825
+ */
826
+ export async function iosDescribePoint(x, y, udid) {
827
+ try {
828
+ const idbAvailable = await isIdbAvailable();
829
+ if (!idbAvailable) {
830
+ return {
831
+ success: false,
832
+ error: "IDB is not installed. Install with: brew install idb-companion"
833
+ };
834
+ }
835
+ const targetUdid = udid || (await getBootedSimulatorUdid());
836
+ if (!targetUdid) {
837
+ return {
838
+ success: false,
839
+ error: "No iOS simulator is currently running. Start a simulator first."
840
+ };
841
+ }
842
+ // Ensure IDB is connected to the simulator
843
+ const connectResult = await ensureIdbConnected(targetUdid);
844
+ if (!connectResult.success) {
845
+ return { success: false, error: connectResult.error };
846
+ }
847
+ const xRounded = Math.round(x);
848
+ const yRounded = Math.round(y);
849
+ // Use execFile with args array (no shell)
850
+ const { stdout, stderr } = await runIdb("ui", "describe-point", "--udid", targetUdid, "--json", "--", String(xRounded), String(yRounded));
851
+ if (stderr)
852
+ throw new Error(stderr);
853
+ // Parse JSON response - may be single element or array
854
+ let element;
855
+ try {
856
+ const parsed = JSON.parse(stdout);
857
+ element = Array.isArray(parsed) ? parsed[0] : parsed;
858
+ }
859
+ catch {
860
+ return {
861
+ success: true,
862
+ result: `No accessibility element found at (${xRounded}, ${yRounded})`,
863
+ elements: []
864
+ };
865
+ }
866
+ // Format for human-readable output
867
+ const parts = [];
868
+ if (element.type)
869
+ parts.push(`Type: ${element.type}`);
870
+ if (element.AXLabel)
871
+ parts.push(`Label: "${element.AXLabel}"`);
872
+ if (element.AXValue)
873
+ parts.push(`Value: "${element.AXValue}"`);
874
+ if (element.frame) {
875
+ const f = element.frame;
876
+ const centerX = Math.round(f.x + f.width / 2);
877
+ const centerY = Math.round(f.y + f.height / 2);
878
+ parts.push(`Frame: (${f.x}, ${f.y}) ${f.width}x${f.height}`);
879
+ parts.push(`Tap: (${centerX}, ${centerY})`);
880
+ }
881
+ return {
882
+ success: true,
883
+ result: parts.length > 0
884
+ ? `Element at (${xRounded}, ${yRounded}):\n${parts.join("\n")}`
885
+ : `No accessibility element found at (${xRounded}, ${yRounded})`,
886
+ elements: element ? [element] : []
887
+ };
888
+ }
889
+ catch (error) {
890
+ return {
891
+ success: false,
892
+ error: `Failed to describe point: ${error instanceof Error ? error.message : String(error)}`
893
+ };
894
+ }
895
+ }
896
+ /**
897
+ * Helper to flatten nested accessibility elements
898
+ */
899
+ function flattenElements(elements) {
900
+ const result = [];
901
+ for (const el of elements) {
902
+ result.push(el);
903
+ if (el.children && el.children.length > 0) {
904
+ result.push(...flattenElements(el.children));
905
+ }
906
+ }
907
+ return result;
908
+ }
909
+ /**
910
+ * Tap an element by its accessibility label using IDB
911
+ * This simplifies the workflow: no need to manually find coordinates
912
+ */
913
+ export async function iosTapElement(options) {
914
+ try {
915
+ const { label, labelContains, index = 0, duration, udid } = options;
916
+ if (!label && !labelContains) {
917
+ return {
918
+ success: false,
919
+ error: "Either 'label' (exact match) or 'labelContains' (partial match) is required"
920
+ };
921
+ }
922
+ // Get all accessibility elements
923
+ const describeResult = await iosDescribeAll(udid);
924
+ if (!describeResult.success || !describeResult.elements) {
925
+ return {
926
+ success: false,
927
+ error: describeResult.error || "Failed to get accessibility elements"
928
+ };
929
+ }
930
+ // Flatten the tree and find matching elements
931
+ const allElements = flattenElements(describeResult.elements);
932
+ const matches = allElements.filter(el => {
933
+ if (!el.AXLabel)
934
+ return false;
935
+ if (label)
936
+ return el.AXLabel === label;
937
+ if (labelContains)
938
+ return el.AXLabel.toLowerCase().includes(labelContains.toLowerCase());
939
+ return false;
940
+ });
941
+ if (matches.length === 0) {
942
+ const searchTerm = label ? `label="${label}"` : `labelContains="${labelContains}"`;
943
+ return {
944
+ success: false,
945
+ error: `No element found with ${searchTerm}`
946
+ };
947
+ }
948
+ // Select element by index (default 0 = first match)
949
+ if (index >= matches.length) {
950
+ return {
951
+ success: false,
952
+ error: `Index ${index} out of range. Found ${matches.length} matching element(s).`
953
+ };
954
+ }
955
+ const element = matches[index];
956
+ // Check if element has frame coordinates
957
+ if (!element.frame) {
958
+ return {
959
+ success: false,
960
+ error: `Element "${element.AXLabel}" has no frame coordinates`
961
+ };
962
+ }
963
+ // Calculate center
964
+ const centerX = Math.round(element.frame.x + element.frame.width / 2);
965
+ const centerY = Math.round(element.frame.y + element.frame.height / 2);
966
+ // Tap at center
967
+ const tapResult = await iosTap(centerX, centerY, { duration, udid });
968
+ if (tapResult.success) {
969
+ return {
970
+ success: true,
971
+ result: `Tapped "${element.AXLabel}" at (${centerX}, ${centerY})`
972
+ };
973
+ }
974
+ return tapResult;
975
+ }
976
+ catch (error) {
977
+ return {
978
+ success: false,
979
+ error: `Failed to tap element: ${error instanceof Error ? error.message : String(error)}`
980
+ };
981
+ }
982
+ }
393
983
  //# sourceMappingURL=ios.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../src/core/ios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../src/core/ios.ts"],"names":[],"mappings":"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"}