react-native-ai-debugger 1.9.1 → 1.10.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.
- package/README.md +1 -1
- package/build/__tests__/integration/tap-strategies.test.js +1 -1
- package/build/__tests__/integration/tap-strategies.test.js.map +1 -1
- package/build/__tests__/unit/androidEmulatorAvds.test.d.ts +2 -0
- package/build/__tests__/unit/androidEmulatorAvds.test.d.ts.map +1 -0
- package/build/__tests__/unit/androidEmulatorAvds.test.js +98 -0
- package/build/__tests__/unit/androidEmulatorAvds.test.js.map +1 -0
- package/build/__tests__/unit/deviceDiscovery.test.d.ts +2 -0
- package/build/__tests__/unit/deviceDiscovery.test.d.ts.map +1 -0
- package/build/__tests__/unit/deviceDiscovery.test.js +119 -0
- package/build/__tests__/unit/deviceDiscovery.test.js.map +1 -0
- package/build/__tests__/unit/deviceResolver.test.d.ts +2 -0
- package/build/__tests__/unit/deviceResolver.test.d.ts.map +1 -0
- package/build/__tests__/unit/deviceResolver.test.js +226 -0
- package/build/__tests__/unit/deviceResolver.test.js.map +1 -0
- package/build/__tests__/unit/tap.test.js +13 -30
- package/build/__tests__/unit/tap.test.js.map +1 -1
- package/build/__tests__/unit/verifyAction.test.d.ts +2 -0
- package/build/__tests__/unit/verifyAction.test.d.ts.map +1 -0
- package/build/__tests__/unit/verifyAction.test.js +26 -0
- package/build/__tests__/unit/verifyAction.test.js.map +1 -0
- package/build/core/android.d.ts +20 -0
- package/build/core/android.d.ts.map +1 -1
- package/build/core/android.js +98 -0
- package/build/core/android.js.map +1 -1
- package/build/core/connection.d.ts.map +1 -1
- package/build/core/connection.js +20 -9
- package/build/core/connection.js.map +1 -1
- package/build/core/deviceDiscovery.d.ts +52 -0
- package/build/core/deviceDiscovery.d.ts.map +1 -0
- package/build/core/deviceDiscovery.js +74 -0
- package/build/core/deviceDiscovery.js.map +1 -0
- package/build/core/deviceResolver.d.ts +44 -0
- package/build/core/deviceResolver.d.ts.map +1 -0
- package/build/core/deviceResolver.js +191 -0
- package/build/core/deviceResolver.js.map +1 -0
- package/build/core/guides.d.ts.map +1 -1
- package/build/core/guides.js +3 -4
- package/build/core/guides.js.map +1 -1
- package/build/core/types.d.ts +1 -0
- package/build/core/types.d.ts.map +1 -1
- package/build/pro/tap.d.ts +5 -10
- package/build/pro/tap.d.ts.map +1 -1
- package/build/pro/tap.js +98 -395
- package/build/pro/tap.js.map +1 -1
- package/build/pro/verifyAction.d.ts +49 -0
- package/build/pro/verifyAction.d.ts.map +1 -0
- package/build/pro/verifyAction.js +255 -0
- package/build/pro/verifyAction.js.map +1 -0
- package/build/tools/connectionTools.d.ts.map +1 -1
- package/build/tools/connectionTools.js +27 -2
- package/build/tools/connectionTools.js.map +1 -1
- package/build/tools/deviceTools.d.ts.map +1 -1
- package/build/tools/deviceTools.js +104 -2
- package/build/tools/deviceTools.js.map +1 -1
- package/build/tools/interactionTools.d.ts.map +1 -1
- package/build/tools/interactionTools.js +113 -151
- package/build/tools/interactionTools.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { listIOSSimulators } from "./ios.js";
|
|
2
|
+
import { listAndroidDevices, getAndroidEmulatorAvds, getAdbIdForAvd } from "./android.js";
|
|
3
|
+
const CACHE_TTL_MS = 5000;
|
|
4
|
+
let cache = null;
|
|
5
|
+
/** Test-only: clear the cache so the next call re-queries. */
|
|
6
|
+
export function resetDeviceDiscoveryCache() {
|
|
7
|
+
cache = null;
|
|
8
|
+
}
|
|
9
|
+
async function discoverIos() {
|
|
10
|
+
const result = await listIOSSimulators(false);
|
|
11
|
+
if (!result.success) {
|
|
12
|
+
return { available: false, error: result.error, simulators: [] };
|
|
13
|
+
}
|
|
14
|
+
const simulators = (result.simulators ?? []).map((sim) => ({
|
|
15
|
+
name: sim.name,
|
|
16
|
+
udid: sim.udid,
|
|
17
|
+
state: sim.state === "Booted" ? "booted" : "shutdown",
|
|
18
|
+
runtime: sim.runtime
|
|
19
|
+
}));
|
|
20
|
+
return { available: true, simulators };
|
|
21
|
+
}
|
|
22
|
+
async function discoverAndroid() {
|
|
23
|
+
const devicesResult = await listAndroidDevices();
|
|
24
|
+
if (!devicesResult.success) {
|
|
25
|
+
return {
|
|
26
|
+
available: false,
|
|
27
|
+
error: devicesResult.error,
|
|
28
|
+
emulators: [],
|
|
29
|
+
physical: []
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const rawDevices = devicesResult.devices ?? [];
|
|
33
|
+
const physical = rawDevices
|
|
34
|
+
.filter((d) => !/^emulator-\d+$/.test(d.id))
|
|
35
|
+
.map((d) => ({
|
|
36
|
+
model: d.model ?? d.id,
|
|
37
|
+
serial: d.id,
|
|
38
|
+
state: d.status ?? "offline"
|
|
39
|
+
}));
|
|
40
|
+
const avds = await getAndroidEmulatorAvds();
|
|
41
|
+
const emulators = await Promise.all(avds.map(async (name) => {
|
|
42
|
+
const serial = await getAdbIdForAvd(name);
|
|
43
|
+
return {
|
|
44
|
+
name,
|
|
45
|
+
serial,
|
|
46
|
+
state: serial ? "running" : "stopped"
|
|
47
|
+
};
|
|
48
|
+
}));
|
|
49
|
+
return { available: true, emulators, physical };
|
|
50
|
+
}
|
|
51
|
+
function computeSummary(result) {
|
|
52
|
+
const iosBooted = result.ios.simulators.filter((s) => s.state === "booted").length;
|
|
53
|
+
const androidRunning = result.android.emulators.filter((e) => e.state === "running").length;
|
|
54
|
+
const androidPhysicalOnline = result.android.physical.filter((p) => p.state === "device").length;
|
|
55
|
+
const booted = iosBooted + androidRunning + androidPhysicalOnline;
|
|
56
|
+
const total = result.ios.simulators.length +
|
|
57
|
+
result.android.emulators.length +
|
|
58
|
+
result.android.physical.length;
|
|
59
|
+
return { booted, total };
|
|
60
|
+
}
|
|
61
|
+
export async function listAllDevices(options = {}) {
|
|
62
|
+
if (!options.refresh && cache && Date.now() - cache.timestamp < CACHE_TTL_MS) {
|
|
63
|
+
return cache.result;
|
|
64
|
+
}
|
|
65
|
+
const [ios, android] = await Promise.all([discoverIos(), discoverAndroid()]);
|
|
66
|
+
const partial = { ios, android };
|
|
67
|
+
const result = {
|
|
68
|
+
...partial,
|
|
69
|
+
summary: computeSummary(partial)
|
|
70
|
+
};
|
|
71
|
+
cache = { result, timestamp: Date.now() };
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=deviceDiscovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviceDiscovery.js","sourceRoot":"","sources":["../../src/core/deviceDiscovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAuC1F,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,IAAI,KAAK,GAA+D,IAAI,CAAC;AAE7E,8DAA8D;AAC9D,MAAM,UAAU,yBAAyB;IACrC,KAAK,GAAG,IAAI,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,WAAW;IACtB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACrE,CAAC;IACD,MAAM,UAAU,GAAsB,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;QACrD,OAAO,EAAE,GAAG,CAAC,OAAO;KACvB,CAAC,CAAC,CAAC;IACJ,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,eAAe;IAC1B,MAAM,aAAa,GAAG,MAAM,kBAAkB,EAAE,CAAC;IACjD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;YACH,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;SACf,CAAC;IACN,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAyB,UAAU;SAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE;QACtB,MAAM,EAAE,CAAC,CAAC,EAAE;QACZ,KAAK,EAAG,CAAC,CAAC,MAAsC,IAAI,SAAS;KAChE,CAAC,CAAC,CAAC;IAER,MAAM,IAAI,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAyB,MAAM,OAAO,CAAC,GAAG,CACrD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO;YACH,IAAI;YACJ,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SAClB,CAAC;IAC5B,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAC,MAA6C;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IACnF,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC5F,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IACjG,MAAM,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,qBAAqB,CAAC;IAClE,MAAM,KAAK,GACP,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM;QAC5B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;QAC/B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,UAAiC,EAAE;IAEnC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IACjC,MAAM,MAAM,GAAyB;QACjC,GAAG,OAAO;QACV,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;KACnC,CAAC;IACF,KAAK,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC1C,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export type DeviceTargetSource = "registry" | "udid" | "adb-serial" | "name-match" | "default";
|
|
2
|
+
export interface DeviceTarget {
|
|
3
|
+
platform: "ios" | "android";
|
|
4
|
+
iosUdid?: string;
|
|
5
|
+
androidSerial?: string;
|
|
6
|
+
deviceName: string;
|
|
7
|
+
source: DeviceTargetSource;
|
|
8
|
+
}
|
|
9
|
+
export type DeviceResolverErrorCode = "MULTIPLE_DEVICES_MATCH" | "NO_DEVICES_FOUND" | "DEVICE_NOT_FOUND" | "SIMULATOR_NOT_BOOTED" | "CONFLICTING_IDENTIFIERS";
|
|
10
|
+
export interface DeviceResolverError {
|
|
11
|
+
code: DeviceResolverErrorCode;
|
|
12
|
+
message: string;
|
|
13
|
+
candidates?: Array<{
|
|
14
|
+
name: string;
|
|
15
|
+
platform: "ios" | "android";
|
|
16
|
+
identifier: string;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
19
|
+
export type ResolveResult = {
|
|
20
|
+
ok: true;
|
|
21
|
+
target: DeviceTarget;
|
|
22
|
+
} | {
|
|
23
|
+
ok: false;
|
|
24
|
+
error: DeviceResolverError;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Render a DeviceResolverError as a single string suitable for tool responses.
|
|
28
|
+
* Appends the candidates list when present so the agent can disambiguate
|
|
29
|
+
* without an extra list_devices call.
|
|
30
|
+
*/
|
|
31
|
+
export declare function formatResolverError(error: DeviceResolverError): string;
|
|
32
|
+
/**
|
|
33
|
+
* Resolve a single `device` string (UDID, adb serial, RN-registry deviceName,
|
|
34
|
+
* sim/emu name, or undefined) into a structured DeviceTarget.
|
|
35
|
+
*
|
|
36
|
+
* Resolution order:
|
|
37
|
+
* 1. UDID format → iOS simulator lookup (errors if shutdown).
|
|
38
|
+
* 2. emulator-NNNN format → Android serial lookup.
|
|
39
|
+
* 3. Substring match against the RN-connected registry.
|
|
40
|
+
* 4. Substring match against booted iOS sims and online Android devices.
|
|
41
|
+
* 5. No `device` argument → pick the single running device, or error.
|
|
42
|
+
*/
|
|
43
|
+
export declare function resolveDeviceTarget(device?: string): Promise<ResolveResult>;
|
|
44
|
+
//# sourceMappingURL=deviceResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviceResolver.d.ts","sourceRoot":"","sources":["../../src/core/deviceResolver.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GACxB,UAAU,GACV,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,SAAS,CAAC;AAEhB,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,MAAM,uBAAuB,GAC7B,wBAAwB,GACxB,kBAAkB,GAClB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzF;AAED,MAAM,MAAM,aAAa,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAiBhD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAMtE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyMjF"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { getConnectedApps } from "./connection.js";
|
|
2
|
+
import { listAllDevices } from "./deviceDiscovery.js";
|
|
3
|
+
const UDID_REGEX = /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i;
|
|
4
|
+
const ADB_SERIAL_REGEX = /^emulator-\d+$/;
|
|
5
|
+
function err(code, message, candidates) {
|
|
6
|
+
return { ok: false, error: { code, message, candidates } };
|
|
7
|
+
}
|
|
8
|
+
function ok(target) {
|
|
9
|
+
return { ok: true, target };
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Render a DeviceResolverError as a single string suitable for tool responses.
|
|
13
|
+
* Appends the candidates list when present so the agent can disambiguate
|
|
14
|
+
* without an extra list_devices call.
|
|
15
|
+
*/
|
|
16
|
+
export function formatResolverError(error) {
|
|
17
|
+
if (!error.candidates || error.candidates.length === 0)
|
|
18
|
+
return error.message;
|
|
19
|
+
const lines = error.candidates.map((c) => ` - ${c.name} (${c.platform}) → device="${c.identifier}"`);
|
|
20
|
+
return `${error.message}\nCandidates:\n${lines.join("\n")}`;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a single `device` string (UDID, adb serial, RN-registry deviceName,
|
|
24
|
+
* sim/emu name, or undefined) into a structured DeviceTarget.
|
|
25
|
+
*
|
|
26
|
+
* Resolution order:
|
|
27
|
+
* 1. UDID format → iOS simulator lookup (errors if shutdown).
|
|
28
|
+
* 2. emulator-NNNN format → Android serial lookup.
|
|
29
|
+
* 3. Substring match against the RN-connected registry.
|
|
30
|
+
* 4. Substring match against booted iOS sims and online Android devices.
|
|
31
|
+
* 5. No `device` argument → pick the single running device, or error.
|
|
32
|
+
*/
|
|
33
|
+
export async function resolveDeviceTarget(device) {
|
|
34
|
+
const trimmed = device?.trim();
|
|
35
|
+
// Step 1: UDID match.
|
|
36
|
+
if (trimmed && UDID_REGEX.test(trimmed)) {
|
|
37
|
+
const inv = await listAllDevices();
|
|
38
|
+
const sim = inv.ios.simulators.find((s) => s.udid.toLowerCase() === trimmed.toLowerCase());
|
|
39
|
+
if (!sim) {
|
|
40
|
+
return err("DEVICE_NOT_FOUND", `No iOS simulator with UDID "${trimmed}". Call list_devices to see available identifiers.`);
|
|
41
|
+
}
|
|
42
|
+
if (sim.state !== "booted") {
|
|
43
|
+
return err("SIMULATOR_NOT_BOOTED", `Simulator "${sim.name}" (${sim.udid}) is not booted. Boot it with ios_boot_simulator({ udid: "${sim.udid}" }).`);
|
|
44
|
+
}
|
|
45
|
+
return ok({
|
|
46
|
+
platform: "ios",
|
|
47
|
+
iosUdid: sim.udid,
|
|
48
|
+
deviceName: sim.name,
|
|
49
|
+
source: "udid"
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
// Step 2: adb serial format.
|
|
53
|
+
if (trimmed && ADB_SERIAL_REGEX.test(trimmed)) {
|
|
54
|
+
const inv = await listAllDevices();
|
|
55
|
+
const emu = inv.android.emulators.find((e) => e.serial === trimmed);
|
|
56
|
+
if (emu) {
|
|
57
|
+
return ok({
|
|
58
|
+
platform: "android",
|
|
59
|
+
androidSerial: trimmed,
|
|
60
|
+
deviceName: emu.name,
|
|
61
|
+
source: "adb-serial"
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
const phys = inv.android.physical.find((p) => p.serial === trimmed);
|
|
65
|
+
if (phys) {
|
|
66
|
+
return ok({
|
|
67
|
+
platform: "android",
|
|
68
|
+
androidSerial: trimmed,
|
|
69
|
+
deviceName: phys.model,
|
|
70
|
+
source: "adb-serial"
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return err("DEVICE_NOT_FOUND", `No Android device with serial "${trimmed}". Call list_devices to see attached devices.`);
|
|
74
|
+
}
|
|
75
|
+
// Step 3: Registry substring match.
|
|
76
|
+
if (trimmed) {
|
|
77
|
+
const apps = getConnectedApps();
|
|
78
|
+
const needle = trimmed.toLowerCase();
|
|
79
|
+
const matches = apps.filter((entry) => {
|
|
80
|
+
const name = entry.app.deviceInfo.deviceName?.toLowerCase() ?? "";
|
|
81
|
+
return name.includes(needle);
|
|
82
|
+
});
|
|
83
|
+
if (matches.length === 1) {
|
|
84
|
+
const m = matches[0].app;
|
|
85
|
+
return ok({
|
|
86
|
+
platform: m.platform,
|
|
87
|
+
iosUdid: m.simulatorUdid,
|
|
88
|
+
androidSerial: m.adbSerial,
|
|
89
|
+
deviceName: m.deviceInfo.deviceName,
|
|
90
|
+
source: "registry"
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (matches.length > 1) {
|
|
94
|
+
return err("MULTIPLE_DEVICES_MATCH", `"${trimmed}" matches multiple connected devices. Pass a more specific identifier (full name, UDID, or adb serial).`, matches.map((m) => ({
|
|
95
|
+
name: m.app.deviceInfo.deviceName,
|
|
96
|
+
platform: m.app.platform,
|
|
97
|
+
identifier: m.app.simulatorUdid ?? m.app.adbSerial ?? m.app.deviceInfo.deviceName
|
|
98
|
+
})));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Step 4: OS-level name match.
|
|
102
|
+
const inv = await listAllDevices();
|
|
103
|
+
if (trimmed) {
|
|
104
|
+
const needle = trimmed.toLowerCase();
|
|
105
|
+
const iosBootedMatches = inv.ios.simulators.filter((s) => s.state === "booted" && s.name.toLowerCase().includes(needle));
|
|
106
|
+
const androidRunningMatches = inv.android.emulators.filter((e) => e.state === "running" && e.name.toLowerCase().includes(needle));
|
|
107
|
+
const androidPhysicalMatches = inv.android.physical.filter((p) => p.state === "device" && p.model.toLowerCase().includes(needle));
|
|
108
|
+
const totalMatches = iosBootedMatches.length + androidRunningMatches.length + androidPhysicalMatches.length;
|
|
109
|
+
if (totalMatches === 1) {
|
|
110
|
+
if (iosBootedMatches.length === 1) {
|
|
111
|
+
const s = iosBootedMatches[0];
|
|
112
|
+
return ok({
|
|
113
|
+
platform: "ios",
|
|
114
|
+
iosUdid: s.udid,
|
|
115
|
+
deviceName: s.name,
|
|
116
|
+
source: "name-match"
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
if (androidRunningMatches.length === 1) {
|
|
120
|
+
const e = androidRunningMatches[0];
|
|
121
|
+
return ok({
|
|
122
|
+
platform: "android",
|
|
123
|
+
androidSerial: e.serial ?? undefined,
|
|
124
|
+
deviceName: e.name,
|
|
125
|
+
source: "name-match"
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
const p = androidPhysicalMatches[0];
|
|
129
|
+
return ok({
|
|
130
|
+
platform: "android",
|
|
131
|
+
androidSerial: p.serial,
|
|
132
|
+
deviceName: p.model,
|
|
133
|
+
source: "name-match"
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
if (totalMatches > 1) {
|
|
137
|
+
const candidates = [
|
|
138
|
+
...iosBootedMatches.map((s) => ({ name: s.name, platform: "ios", identifier: s.udid })),
|
|
139
|
+
...androidRunningMatches.map((e) => ({ name: e.name, platform: "android", identifier: e.serial ?? e.name })),
|
|
140
|
+
...androidPhysicalMatches.map((p) => ({ name: p.model, platform: "android", identifier: p.serial }))
|
|
141
|
+
];
|
|
142
|
+
return err("MULTIPLE_DEVICES_MATCH", `"${trimmed}" matches multiple devices. Pass a UDID or adb serial to disambiguate.`, candidates);
|
|
143
|
+
}
|
|
144
|
+
return err("DEVICE_NOT_FOUND", `"${trimmed}" did not match any connected RN app, booted simulator, or attached Android device. Call list_devices to enumerate options.`);
|
|
145
|
+
}
|
|
146
|
+
// Step 5: No `device` argument — pick the single available device.
|
|
147
|
+
const bootedSims = inv.ios.simulators.filter((s) => s.state === "booted");
|
|
148
|
+
const runningEmus = inv.android.emulators.filter((e) => e.state === "running");
|
|
149
|
+
const onlinePhys = inv.android.physical.filter((p) => p.state === "device");
|
|
150
|
+
const totalRunning = bootedSims.length + runningEmus.length + onlinePhys.length;
|
|
151
|
+
if (totalRunning === 0) {
|
|
152
|
+
// Final fallback: if a single RN app is connected (e.g. physical iOS
|
|
153
|
+
// not in simctl), use it.
|
|
154
|
+
const apps = getConnectedApps();
|
|
155
|
+
if (apps.length === 1) {
|
|
156
|
+
const m = apps[0].app;
|
|
157
|
+
return ok({
|
|
158
|
+
platform: m.platform,
|
|
159
|
+
iosUdid: m.simulatorUdid,
|
|
160
|
+
androidSerial: m.adbSerial,
|
|
161
|
+
deviceName: m.deviceInfo.deviceName,
|
|
162
|
+
source: "default"
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
return err("NO_DEVICES_FOUND", "No devices found. Boot an iOS simulator or start an Android emulator, then retry.");
|
|
166
|
+
}
|
|
167
|
+
if (totalRunning > 1) {
|
|
168
|
+
const candidates = [
|
|
169
|
+
...bootedSims.map((s) => ({ name: s.name, platform: "ios", identifier: s.udid })),
|
|
170
|
+
...runningEmus.map((e) => ({ name: e.name, platform: "android", identifier: e.serial ?? e.name })),
|
|
171
|
+
...onlinePhys.map((p) => ({ name: p.model, platform: "android", identifier: p.serial }))
|
|
172
|
+
];
|
|
173
|
+
return err("MULTIPLE_DEVICES_MATCH", "Multiple devices available. Specify device='...'. Call list_devices to enumerate.", candidates);
|
|
174
|
+
}
|
|
175
|
+
if (bootedSims.length === 1) {
|
|
176
|
+
const s = bootedSims[0];
|
|
177
|
+
return ok({ platform: "ios", iosUdid: s.udid, deviceName: s.name, source: "default" });
|
|
178
|
+
}
|
|
179
|
+
if (runningEmus.length === 1) {
|
|
180
|
+
const e = runningEmus[0];
|
|
181
|
+
return ok({
|
|
182
|
+
platform: "android",
|
|
183
|
+
androidSerial: e.serial ?? undefined,
|
|
184
|
+
deviceName: e.name,
|
|
185
|
+
source: "default"
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
const p = onlinePhys[0];
|
|
189
|
+
return ok({ platform: "android", androidSerial: p.serial, deviceName: p.model, source: "default" });
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=deviceResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviceResolver.js","sourceRoot":"","sources":["../../src/core/deviceResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guides.d.ts","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"guides.d.ts","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AAsVD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,MAchB,CAAC;AAEb,wBAAgB,gBAAgB,IAAI,MAAM,CAWzC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI5D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}
|
package/build/core/guides.js
CHANGED
|
@@ -170,8 +170,7 @@ For buttons that contain only an icon (no text):
|
|
|
170
170
|
tap(text=...) skips fiber for non-ASCII (Hermes limitation) and uses accessibility/OCR instead. For best results, use testID or coordinates.
|
|
171
171
|
|
|
172
172
|
## Other Interactions
|
|
173
|
-
- swipe: cross-platform swipe/scroll with start/end coordinates
|
|
174
|
-
- ios_swipe / android_swipe: platform-specific raw-coordinate swipe (fallback for the cross-platform swipe tool)
|
|
173
|
+
- swipe: cross-platform swipe/scroll with start/end coordinates. Use for FlatList/SectionList scrolling where off-screen items aren't mounted. Returns verification.meaningful — if false the gesture had no visual effect (end-of-list, non-scrollable surface, or coordinates missed the scroll surface). Set burst:true to surface overscroll/bounce feedback even when the final state is unchanged. Set verify:false, screenshot:false for the fastest path when you only care about firing the gesture. Pass delta on iOS to control touch step size.
|
|
175
174
|
- android_input_text / ios_input_text: type text (tap input field first to focus). Pass replace:true to clear pre-filled values before typing (Bridgeless/Fabric only).
|
|
176
175
|
- clear_focused_input: clear the focused TextInput via onChangeText (controlled-state safe). Pair with input_text for replace flows, or use input_text({replace:true}) for one-shot.
|
|
177
176
|
- dismiss_keyboard: blur the focused input, closing the keyboard.
|
|
@@ -350,12 +349,12 @@ If the user wants to share feedback, request a feature, or report a problem with
|
|
|
350
349
|
*/
|
|
351
350
|
export const DECISION_TREE = [
|
|
352
351
|
"Primary tools: scan_metro, get_logs / search_logs, ios_screenshot / android_screenshot, tap, get_pressable_elements, get_screen_layout.",
|
|
353
|
-
"Platform-specific ios_* / android_* tools (ios_button,
|
|
352
|
+
"Platform-specific ios_* / android_* tools (ios_button, android_input_text, android_key_event, android_long_press, ios_open_url, etc.) are FALLBACKS for non-React or native-only flows — prefer the cross-platform primary tools above whenever possible.",
|
|
354
353
|
"",
|
|
355
354
|
"Call get_usage_guide(topic=...) for end-to-end workflows. Available topics:",
|
|
356
355
|
" setup — session setup (scan_metro, connect_metro, ensure_connection)",
|
|
357
356
|
" logs — console debugging (get_logs, search_logs)",
|
|
358
|
-
" interact — device interaction (tap,
|
|
357
|
+
" interact — device interaction (tap, swipe, screenshots, android_input_text, clear_focused_input, dismiss_keyboard)",
|
|
359
358
|
" layout — on-screen layout check (get_screen_layout, get_pressable_elements)",
|
|
360
359
|
" inspect — component inspection (find_components, inspect_component, get_inspector_selection)",
|
|
361
360
|
" network — network request inspection (get_network_requests, search_network)",
|
package/build/core/guides.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guides.js","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,MAAM,GAAY;IACpB;QACI,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,yDAAyD;QAClE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CA8B8B;KAC1C;IACD;QACI,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,mFAAmF;QAC5F,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iIAsCgH;KAC5H;IACD;QACI,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE,0EAA0E;QACnF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;0FA4ByE;KACrF;IACD;QACI,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"guides.js","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"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"}
|
package/build/core/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAG3B,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAGD,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,SAAS,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/build/pro/tap.d.ts
CHANGED
|
@@ -17,22 +17,16 @@ export interface TapOptions {
|
|
|
17
17
|
strategy?: TapStrategy;
|
|
18
18
|
maxTraversalDepth?: number;
|
|
19
19
|
native?: boolean;
|
|
20
|
-
platform?: "ios" | "android";
|
|
21
20
|
screenshot?: boolean;
|
|
22
21
|
verify?: boolean;
|
|
23
22
|
burst?: boolean;
|
|
24
23
|
/**
|
|
25
|
-
* Target device
|
|
26
|
-
*
|
|
27
|
-
*
|
|
24
|
+
* Target device. Accepts an iOS simulator UDID, an Android adb serial,
|
|
25
|
+
* or a substring matched against connected RN apps / booted simulators /
|
|
26
|
+
* attached Android devices. See deviceResolver.resolveDeviceTarget for
|
|
27
|
+
* the full resolution algorithm.
|
|
28
28
|
*/
|
|
29
29
|
device?: string;
|
|
30
|
-
/**
|
|
31
|
-
* iOS simulator UDID to target directly. Takes precedence over `device` and over the
|
|
32
|
-
* Metro-connected app's simulatorUdid. Mirrors the `udid` parameter on ios_screenshot,
|
|
33
|
-
* ios_swipe, etc.
|
|
34
|
-
*/
|
|
35
|
-
udid?: string;
|
|
36
30
|
}
|
|
37
31
|
export type TapAttemptOutcome = "not-found" | "timeout" | "skipped" | "invisible" | "ambiguous" | "error";
|
|
38
32
|
export interface TapAttempt {
|
|
@@ -67,6 +61,7 @@ export declare function buildVerificationExplanation(v: {
|
|
|
67
61
|
transientChangeDetected?: boolean;
|
|
68
62
|
peakChangeRate?: number;
|
|
69
63
|
peakFrame?: number;
|
|
64
|
+
action?: "tap" | "swipe";
|
|
70
65
|
}): string;
|
|
71
66
|
export interface BurstAnalysis {
|
|
72
67
|
meaningful: boolean;
|
package/build/pro/tap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../../src/pro/tap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../../src/pro/tap.ts"],"names":[],"mappings":"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"}
|