mcp-baepsae 6.1.1 → 6.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.
- package/README-KR.md +19 -0
- package/README.md +20 -0
- package/bundled/baepsae-native +0 -0
- package/dist/tools/media.d.ts.map +1 -1
- package/dist/tools/media.js +103 -4
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/ui.js +1 -1
- package/dist/tools/ui.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/native/Sources/Commands/InputCommands.swift +18 -17
- package/native/Sources/Commands/UICommands.swift +44 -32
- package/native/Sources/Commands/WindowCommands.swift +1 -1
- package/native/Sources/Utils.swift +274 -26
- package/native/Sources/Version.swift +1 -1
- package/package.json +6 -1
- package/scripts/dump-tabbar-actions.mjs +312 -0
- package/scripts/research-coordinate-calibration.mjs +276 -0
- package/scripts/research-input-channels.mjs +327 -0
- package/scripts/research-tap-tab-grid.mjs +271 -0
- package/scripts/verify-media-capture.mjs +99 -0
package/README-KR.md
CHANGED
|
@@ -268,8 +268,24 @@ npm run setup:mcp # scripts/install.sh 실행 alias
|
|
|
268
268
|
|
|
269
269
|
`paste`를 사용하면 시뮬레이터 대상은 host clipboard를 건드리지 않고 simulator pasteboard를 갱신하며, macOS 대상은 host clipboard를 잠시 덮어쓴 뒤 복원합니다. 성공 응답에는 입력 소스, 대상 종류, 요청한 method, 실제 사용한 method, paste transport, auto fallback이 함께 보고됩니다.
|
|
270
270
|
|
|
271
|
+
### `tap_tab` 정책
|
|
272
|
+
|
|
273
|
+
`tap_tab`는 **semantic-first, geometry-last** 전략을 사용합니다.
|
|
274
|
+
|
|
275
|
+
- 먼저 탭 바 아래에 노출된 actionable descendant를 찾습니다.
|
|
276
|
+
- SwiftUI/Simulator 조합에서 실제 탭 버튼 descendant가 드러나지 않으면, 같은 탭 전환 의미를 가진 **semantic proxy row**(예: 상단 탭 전환 버튼)를 사용할 수 있습니다.
|
|
277
|
+
- 그런 semantic 경로가 없을 때만 마지막으로 탭 바 geometry fallback을 사용합니다.
|
|
278
|
+
|
|
279
|
+
이 정책이 필요한 이유는 SwiftUI `TabView`가 Simulator에서 종종 실제 탭 버튼 없이 `AXGroup text="Tab Bar"`로만 노출되기 때문입니다.
|
|
280
|
+
|
|
271
281
|
## 사용 예시
|
|
272
282
|
|
|
283
|
+
**인덱스로 탭 전환하기 (`tap_tab` semantic fallback 포함):**
|
|
284
|
+
```javascript
|
|
285
|
+
// query_ui/tap selector로 개별 탭 버튼을 안정적으로 잡기 어려울 때 사용
|
|
286
|
+
tap_tab({ udid: "...", index: 1, tabCount: 3 })
|
|
287
|
+
```
|
|
288
|
+
|
|
273
289
|
**시뮬레이터 내부 앱 접근성 퀵스타트:**
|
|
274
290
|
```javascript
|
|
275
291
|
// 1) 대상 시뮬레이터에서 앱 실행
|
|
@@ -309,6 +325,9 @@ tap({ udid: "...", label: "Home", all: true })
|
|
|
309
325
|
- 실제 스모크 테스트 진단:
|
|
310
326
|
- `npm run test:real:preflight`로 전체 스위트를 돌리지 않고 환경/기능(capability) 진단만 출력할 수 있습니다.
|
|
311
327
|
- `npm run test:real:sim`으로 시뮬레이터 중심 범위만, `npm run test:real:mac`으로 macOS Safari 범위만 실행할 수 있습니다.
|
|
328
|
+
- 여러 Simulator 창이 열려 있어 selector가 다른 기기를 잡는 경우:
|
|
329
|
+
- 현재 버전은 simulator selector를 먼저 대상 `udid` 창에 맞춰 scope 합니다.
|
|
330
|
+
- 의도적으로 Simulator 크롬/시스템 UI를 다뤄야 하면 `all: true`를 사용하세요.
|
|
312
331
|
- OpenCode에서 `baepsae`가 보이지 않는 경우:
|
|
313
332
|
- `bash scripts/install.sh --tool opencode --skip-install --skip-build`를 다시 실행하고 `~/.config/opencode/opencode.json`을 확인하세요.
|
|
314
333
|
- Copilot 자동 등록이 안 되는 경우:
|
package/README.md
CHANGED
|
@@ -268,8 +268,25 @@ Target routing is explicit in the arguments: `udid` for simulator, `bundleId` /
|
|
|
268
268
|
|
|
269
269
|
When `paste` is used, simulator targets update the simulator pasteboard without touching the host clipboard, while macOS targets temporarily overwrite the host clipboard and restore it after submission. Successful responses report the input source, target kind, requested method, used method, paste transport, and any auto fallback that was applied.
|
|
270
270
|
|
|
271
|
+
### `tap_tab` policy
|
|
272
|
+
|
|
273
|
+
`tap_tab` is **semantic-first, geometry-last**.
|
|
274
|
+
|
|
275
|
+
- First it tries actionable descendants exposed under the tab bar.
|
|
276
|
+
- If SwiftUI/Simulator does not expose real tab button descendants, it can use a **semantic proxy row** (for example, app-provided top navigation buttons that map cleanly to the same tabs).
|
|
277
|
+
- Only if neither semantic path exists does it fall back to tab-bar geometry.
|
|
278
|
+
|
|
279
|
+
This matters because SwiftUI `TabView` in Simulator may expose the tab bar as a generic `AXGroup text="Tab Bar"` without actionable child buttons.
|
|
280
|
+
|
|
271
281
|
## Usage Examples
|
|
272
282
|
|
|
283
|
+
**Switch tabs by index with semantic-first fallback:**
|
|
284
|
+
```javascript
|
|
285
|
+
// Prefer this when your app exposes a real tab bar but individual tab buttons
|
|
286
|
+
// are not consistently addressable via query_ui/tap selectors.
|
|
287
|
+
tap_tab({ udid: "...", index: 1, tabCount: 3 })
|
|
288
|
+
```
|
|
289
|
+
|
|
273
290
|
**Unified simulator app accessibility quickstart (inside app UI):**
|
|
274
291
|
```javascript
|
|
275
292
|
// 1) Launch your app in the target simulator
|
|
@@ -336,6 +353,9 @@ screenshot_app({ bundleId: "com.apple.Safari" })
|
|
|
336
353
|
- Real smoke test diagnostics:
|
|
337
354
|
- Run `npm run test:real:preflight` to print environment and capability diagnostics without executing the full suite.
|
|
338
355
|
- Run `npm run test:real:sim` to focus on simulator-capability coverage, or `npm run test:real:mac` for the macOS Safari subset.
|
|
356
|
+
- Multiple Simulator windows are open and selectors hit the wrong device:
|
|
357
|
+
- Current versions scope simulator selectors to the target `udid` window first.
|
|
358
|
+
- If you intentionally need Simulator chrome/system UI, use `all: true`.
|
|
339
359
|
- OpenCode does not show `baepsae`:
|
|
340
360
|
- Re-run `bash scripts/install.sh --tool opencode --skip-install --skip-build` and check `~/.config/opencode/opencode.json`.
|
|
341
361
|
- Copilot not auto-registered:
|
package/bundled/baepsae-native
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+GzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+G1D"}
|
package/dist/tools/media.js
CHANGED
|
@@ -2,8 +2,101 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerMediaTools = registerMediaTools;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const promises_1 = require("node:fs/promises");
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
9
|
const utils_js_1 = require("../utils.js");
|
|
6
10
|
const backend_js_1 = require("../backend.js");
|
|
11
|
+
function extractText(result) {
|
|
12
|
+
return result.content
|
|
13
|
+
.filter((item) => item.type === "text")
|
|
14
|
+
.map((item) => item.text)
|
|
15
|
+
.join("\n");
|
|
16
|
+
}
|
|
17
|
+
function rewriteTextContent(result, search, replace) {
|
|
18
|
+
return {
|
|
19
|
+
...result,
|
|
20
|
+
content: result.content.map((item) => item.type === "text"
|
|
21
|
+
? { ...item, text: item.text.split(search).join(replace) }
|
|
22
|
+
: item),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function createStagingPath(finalPath, extension) {
|
|
26
|
+
const finalBaseName = (0, node_path_1.basename)(finalPath);
|
|
27
|
+
const suffix = `-${(0, node_crypto_1.randomUUID)()}`;
|
|
28
|
+
const preferredBaseName = finalBaseName.endsWith(`.${extension}`)
|
|
29
|
+
? finalBaseName.replace(new RegExp(`\\.${extension}$`), `${suffix}.${extension}`)
|
|
30
|
+
: `mcp-baepsae-media-${Date.now()}${suffix}.${extension}`;
|
|
31
|
+
return (0, node_path_1.join)((0, node_os_1.tmpdir)(), preferredBaseName);
|
|
32
|
+
}
|
|
33
|
+
async function finalizeStagedCapture(result, stagingPath, finalPath) {
|
|
34
|
+
if (result.isError) {
|
|
35
|
+
await (0, promises_1.rm)(stagingPath, { force: true }).catch(() => { });
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const info = await (0, promises_1.stat)(stagingPath);
|
|
40
|
+
if (!info.isFile() || info.size <= 0) {
|
|
41
|
+
throw new Error("Capture file was not created or is empty.");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
await (0, promises_1.rm)(stagingPath, { force: true }).catch(() => { });
|
|
46
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
47
|
+
return {
|
|
48
|
+
content: [{ type: "text", text: `${extractText(result)}\n\nPost-processing failed.\nExpected staging file: ${stagingPath}\nReason: ${message}`.trim() }],
|
|
49
|
+
isError: true,
|
|
50
|
+
error: (0, utils_js_1.makeToolError)({
|
|
51
|
+
code: "execution.capture_output_missing",
|
|
52
|
+
category: "execution",
|
|
53
|
+
message,
|
|
54
|
+
retryable: true,
|
|
55
|
+
source: "runtime",
|
|
56
|
+
}),
|
|
57
|
+
metadata: {
|
|
58
|
+
...(result.metadata ?? {}),
|
|
59
|
+
stagingOutputPath: stagingPath,
|
|
60
|
+
outputPath: finalPath,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
await (0, promises_1.copyFile)(stagingPath, finalPath);
|
|
66
|
+
await (0, promises_1.rm)(stagingPath, { force: true }).catch(() => { });
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
70
|
+
return {
|
|
71
|
+
content: [{
|
|
72
|
+
type: "text",
|
|
73
|
+
text: `${extractText(result)}\n\nPost-processing failed.\nStaging file: ${stagingPath}\nRequested output: ${finalPath}\nReason: ${message}`.trim(),
|
|
74
|
+
}],
|
|
75
|
+
isError: true,
|
|
76
|
+
error: (0, utils_js_1.makeToolError)({
|
|
77
|
+
code: "execution.capture_output_finalize_failed",
|
|
78
|
+
category: "execution",
|
|
79
|
+
message,
|
|
80
|
+
retryable: true,
|
|
81
|
+
source: "runtime",
|
|
82
|
+
}),
|
|
83
|
+
metadata: {
|
|
84
|
+
...(result.metadata ?? {}),
|
|
85
|
+
stagingOutputPath: stagingPath,
|
|
86
|
+
outputPath: finalPath,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const rewritten = rewriteTextContent(result, stagingPath, finalPath);
|
|
91
|
+
return {
|
|
92
|
+
...rewritten,
|
|
93
|
+
metadata: {
|
|
94
|
+
...(rewritten.metadata ?? {}),
|
|
95
|
+
stagingOutputPath: stagingPath,
|
|
96
|
+
outputPath: finalPath,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
}
|
|
7
100
|
function registerMediaTools(server) {
|
|
8
101
|
server.tool("stream_video", "Capture a time-bounded simulator clip through the native stream-video shim.", {
|
|
9
102
|
udid: zod_1.z.string().min(1).describe("Simulator UDID"),
|
|
@@ -18,9 +111,10 @@ function registerMediaTools(server) {
|
|
|
18
111
|
const durationSeconds = params.durationSeconds ?? 10;
|
|
19
112
|
const outputPath = params.output ?? `simulator-stream-${Date.now()}.mov`;
|
|
20
113
|
const resolvedOutput = await (0, utils_js_1.ensureOutputPath)(outputPath);
|
|
114
|
+
const stagingOutput = createStagingPath(resolvedOutput, "mov");
|
|
21
115
|
(0, utils_js_1.pushOption)(args, "--duration", durationSeconds);
|
|
22
|
-
args.push("--output",
|
|
23
|
-
|
|
116
|
+
args.push("--output", stagingOutput);
|
|
117
|
+
const result = await (0, backend_js_1.runBackend)("utility", args, {
|
|
24
118
|
timeoutMs: Math.max(15_000, Math.round((durationSeconds + 15) * 1000)),
|
|
25
119
|
}, {
|
|
26
120
|
extraLines: [
|
|
@@ -36,6 +130,7 @@ function registerMediaTools(server) {
|
|
|
36
130
|
outputPath: resolvedOutput,
|
|
37
131
|
},
|
|
38
132
|
});
|
|
133
|
+
return await finalizeStagedCapture(result, stagingOutput, resolvedOutput);
|
|
39
134
|
});
|
|
40
135
|
server.tool("record_video", "Record simulator display directly with simctl recordVideo.", {
|
|
41
136
|
udid: zod_1.z.string().min(1).describe("Simulator UDID"),
|
|
@@ -49,12 +144,13 @@ function registerMediaTools(server) {
|
|
|
49
144
|
const durationSeconds = params.durationSeconds ?? 10;
|
|
50
145
|
const outputPath = params.output ?? `simulator-recording-${Date.now()}.mov`;
|
|
51
146
|
const resolvedOutput = await (0, utils_js_1.ensureOutputPath)(outputPath);
|
|
147
|
+
const stagingOutput = createStagingPath(resolvedOutput, "mov");
|
|
52
148
|
const extraLines = [
|
|
53
149
|
"Capture mode: direct simctl recordVideo.",
|
|
54
150
|
`Requested duration: ${durationSeconds}s`,
|
|
55
151
|
`Output file: ${resolvedOutput}`,
|
|
56
152
|
];
|
|
57
|
-
|
|
153
|
+
const result = await (0, backend_js_1.runBackend)("simulator", ["io", params.udid, "recordVideo", "--force", stagingOutput], {
|
|
58
154
|
timeoutMs: Math.max(15_000, Math.round((durationSeconds + 5) * 1000)),
|
|
59
155
|
}, {
|
|
60
156
|
timeoutIsExpected: true,
|
|
@@ -66,6 +162,7 @@ function registerMediaTools(server) {
|
|
|
66
162
|
outputPath: resolvedOutput,
|
|
67
163
|
},
|
|
68
164
|
});
|
|
165
|
+
return await finalizeStagedCapture(result, stagingOutput, resolvedOutput);
|
|
69
166
|
});
|
|
70
167
|
server.tool("screenshot", "Capture a screenshot from simulator display using simctl screenshot.", {
|
|
71
168
|
udid: zod_1.z.string().min(1).describe("Simulator UDID"),
|
|
@@ -73,9 +170,11 @@ function registerMediaTools(server) {
|
|
|
73
170
|
}, async (params) => {
|
|
74
171
|
const outputPath = params.output ?? `simulator-screenshot-${Date.now()}.png`;
|
|
75
172
|
const resolvedOutput = await (0, utils_js_1.ensureOutputPath)(outputPath);
|
|
76
|
-
|
|
173
|
+
const stagingOutput = createStagingPath(resolvedOutput, "png");
|
|
174
|
+
const result = await (0, backend_js_1.runBackend)("simulator", ["io", params.udid, "screenshot", stagingOutput], undefined, {
|
|
77
175
|
extraLines: [`Output file: ${resolvedOutput}`],
|
|
78
176
|
});
|
|
177
|
+
return await finalizeStagedCapture(result, stagingOutput, resolvedOutput);
|
|
79
178
|
});
|
|
80
179
|
}
|
|
81
180
|
//# sourceMappingURL=media.js.map
|
package/dist/tools/media.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/ui.js
CHANGED
|
@@ -344,7 +344,7 @@ function registerUITools(server) {
|
|
|
344
344
|
return target;
|
|
345
345
|
return await (0, backend_js_1.runBackend)("input", buildDragDropArgs(target, params));
|
|
346
346
|
});
|
|
347
|
-
server.tool("tap_tab", "Tap a tab in a tab bar by index.
|
|
347
|
+
server.tool("tap_tab", "Tap a tab in a tab bar by index. Prefers semantic descendants or top-row semantic proxy buttons when available, and falls back to geometry only when needed. Useful for SwiftUI TabView cases where tab buttons are not cleanly exposed.", { ...utils_js_1.unifiedTargetSchema, ...tapTabSchema }, async (params) => {
|
|
348
348
|
const validationError = validateTapTabParams(params);
|
|
349
349
|
if (validationError)
|
|
350
350
|
return validationError;
|
package/dist/tools/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/tools/ui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/tools/ui.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import type { ToolTextResult, CommandExecutionOptions, CommandExecutionResult, ResponseOptions, ToolError, ToolErrorCategory, ToolErrorSource } from "./types.js";
|
|
3
3
|
export declare const PACKAGE_ROOT: string;
|
|
4
4
|
export declare const SERVER_NAME = "mcp-baepsae";
|
|
5
|
-
export declare const SERVER_VERSION = "6.
|
|
5
|
+
export declare const SERVER_VERSION = "6.2.0";
|
|
6
6
|
export declare const DEFAULT_TIMEOUT_MS = 30000;
|
|
7
7
|
export declare const NATIVE_BINARY_ENV = "BAEPSAE_NATIVE_PATH";
|
|
8
8
|
export declare const NATIVE_BINARY_NAME: string;
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PACKAGE_VERSION = exports.PACKAGE_NAME = void 0;
|
|
4
4
|
exports.PACKAGE_NAME = "mcp-baepsae";
|
|
5
|
-
exports.PACKAGE_VERSION = "6.
|
|
5
|
+
exports.PACKAGE_VERSION = "6.2.0";
|
|
6
6
|
//# sourceMappingURL=version.js.map
|
|
@@ -138,7 +138,8 @@ func handleGesture(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
138
138
|
let screenHeight = try optionalDoubleOption("--screen-height", from: parsed)
|
|
139
139
|
try ensureAccessibilityTrusted()
|
|
140
140
|
try activateTarget(target)
|
|
141
|
-
let
|
|
141
|
+
let targetUdid = simulatorUdid(from: target)
|
|
142
|
+
let preferredBounds = simulatorContentBounds(udid: targetUdid)
|
|
142
143
|
let width = screenWidth ?? Double(preferredBounds?.width ?? 0)
|
|
143
144
|
let height = screenHeight ?? Double(preferredBounds?.height ?? 0)
|
|
144
145
|
if width <= 0 || height <= 0 {
|
|
@@ -148,29 +149,29 @@ func handleGesture(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
148
149
|
let end: CGPoint
|
|
149
150
|
switch preset {
|
|
150
151
|
case "scroll-up":
|
|
151
|
-
start = try pointInSimulatorContent(x: width * 0.5, y: height * 0.7)
|
|
152
|
-
end = try pointInSimulatorContent(x: width * 0.5, y: height * 0.3)
|
|
152
|
+
start = try pointInSimulatorContent(x: width * 0.5, y: height * 0.7, udid: targetUdid)
|
|
153
|
+
end = try pointInSimulatorContent(x: width * 0.5, y: height * 0.3, udid: targetUdid)
|
|
153
154
|
case "scroll-down":
|
|
154
|
-
start = try pointInSimulatorContent(x: width * 0.5, y: height * 0.3)
|
|
155
|
-
end = try pointInSimulatorContent(x: width * 0.5, y: height * 0.7)
|
|
155
|
+
start = try pointInSimulatorContent(x: width * 0.5, y: height * 0.3, udid: targetUdid)
|
|
156
|
+
end = try pointInSimulatorContent(x: width * 0.5, y: height * 0.7, udid: targetUdid)
|
|
156
157
|
case "scroll-left":
|
|
157
|
-
start = try pointInSimulatorContent(x: width * 0.7, y: height * 0.5)
|
|
158
|
-
end = try pointInSimulatorContent(x: width * 0.3, y: height * 0.5)
|
|
158
|
+
start = try pointInSimulatorContent(x: width * 0.7, y: height * 0.5, udid: targetUdid)
|
|
159
|
+
end = try pointInSimulatorContent(x: width * 0.3, y: height * 0.5, udid: targetUdid)
|
|
159
160
|
case "scroll-right":
|
|
160
|
-
start = try pointInSimulatorContent(x: width * 0.3, y: height * 0.5)
|
|
161
|
-
end = try pointInSimulatorContent(x: width * 0.7, y: height * 0.5)
|
|
161
|
+
start = try pointInSimulatorContent(x: width * 0.3, y: height * 0.5, udid: targetUdid)
|
|
162
|
+
end = try pointInSimulatorContent(x: width * 0.7, y: height * 0.5, udid: targetUdid)
|
|
162
163
|
case "swipe-from-left-edge":
|
|
163
|
-
start = try pointInSimulatorContent(x: width * 0.05, y: height * 0.5)
|
|
164
|
-
end = try pointInSimulatorContent(x: width * 0.6, y: height * 0.5)
|
|
164
|
+
start = try pointInSimulatorContent(x: width * 0.05, y: height * 0.5, udid: targetUdid)
|
|
165
|
+
end = try pointInSimulatorContent(x: width * 0.6, y: height * 0.5, udid: targetUdid)
|
|
165
166
|
case "swipe-from-right-edge":
|
|
166
|
-
start = try pointInSimulatorContent(x: width * 0.95, y: height * 0.5)
|
|
167
|
-
end = try pointInSimulatorContent(x: width * 0.4, y: height * 0.5)
|
|
167
|
+
start = try pointInSimulatorContent(x: width * 0.95, y: height * 0.5, udid: targetUdid)
|
|
168
|
+
end = try pointInSimulatorContent(x: width * 0.4, y: height * 0.5, udid: targetUdid)
|
|
168
169
|
case "swipe-from-top-edge":
|
|
169
|
-
start = try pointInSimulatorContent(x: width * 0.5, y: height * 0.05)
|
|
170
|
-
end = try pointInSimulatorContent(x: width * 0.5, y: height * 0.6)
|
|
170
|
+
start = try pointInSimulatorContent(x: width * 0.5, y: height * 0.05, udid: targetUdid)
|
|
171
|
+
end = try pointInSimulatorContent(x: width * 0.5, y: height * 0.6, udid: targetUdid)
|
|
171
172
|
case "swipe-from-bottom-edge":
|
|
172
|
-
start = try pointInSimulatorContent(x: width * 0.5, y: height * 0.95)
|
|
173
|
-
end = try pointInSimulatorContent(x: width * 0.5, y: height * 0.4)
|
|
173
|
+
start = try pointInSimulatorContent(x: width * 0.5, y: height * 0.95, udid: targetUdid)
|
|
174
|
+
end = try pointInSimulatorContent(x: width * 0.5, y: height * 0.4, udid: targetUdid)
|
|
174
175
|
default:
|
|
175
176
|
throw NativeError.invalidArguments("Unsupported gesture preset: \(preset)")
|
|
176
177
|
}
|
|
@@ -12,10 +12,10 @@ func handleDescribeUI(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
12
12
|
var usedSimulatorContentScope = false
|
|
13
13
|
|
|
14
14
|
switch target {
|
|
15
|
-
case .simulator:
|
|
15
|
+
case .simulator(let udid):
|
|
16
16
|
// Default behavior: Focus on in-app content group unless --all is specified
|
|
17
17
|
if !parsed.flags.contains("--all") {
|
|
18
|
-
if let contentGroup = simulatorContentRootElement(from: appRoot) {
|
|
18
|
+
if let contentGroup = simulatorContentRootElement(from: appRoot, udid: udid) {
|
|
19
19
|
targetRoot = contentGroup
|
|
20
20
|
usedSimulatorContentScope = true
|
|
21
21
|
}
|
|
@@ -77,7 +77,8 @@ func handleDescribeUI(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
77
77
|
throw NativeError.commandFailed("No accessibility elements found.")
|
|
78
78
|
}
|
|
79
79
|
if usedSimulatorContentScope {
|
|
80
|
-
let
|
|
80
|
+
let targetUdid = simulatorUdid(from: target)
|
|
81
|
+
let auxiliaryLabels = simulatorAuxiliaryContainerLabels(from: appRoot, excluding: targetRoot, udid: targetUdid)
|
|
81
82
|
if let hint = formatSimulatorAuxiliaryContainerHint(auxiliaryLabels) {
|
|
82
83
|
lines.append(hint)
|
|
83
84
|
}
|
|
@@ -106,8 +107,8 @@ func handleSearchUI(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
106
107
|
let appRoot = try accessibilityRootElement(for: target)
|
|
107
108
|
var searchRoot = appRoot
|
|
108
109
|
var simulatorContentRoot: UIElement? = nil
|
|
109
|
-
if case .simulator = target {
|
|
110
|
-
if let contentGroup = simulatorContentRootElement(from: appRoot) {
|
|
110
|
+
if case .simulator(let udid) = target {
|
|
111
|
+
if let contentGroup = simulatorContentRootElement(from: appRoot, udid: udid) {
|
|
111
112
|
simulatorContentRoot = contentGroup
|
|
112
113
|
searchRoot = contentGroup
|
|
113
114
|
}
|
|
@@ -130,7 +131,8 @@ func handleSearchUI(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
130
131
|
|
|
131
132
|
let results = searchAccessibilityElements(in: searchRoot, query: query, options: searchOpts)
|
|
132
133
|
if results.isEmpty, case .simulator = target, let simulatorContentRoot {
|
|
133
|
-
let
|
|
134
|
+
let targetUdid = simulatorUdid(from: target)
|
|
135
|
+
let auxiliaryCandidates = simulatorAuxiliaryContainerCandidates(from: appRoot, excluding: simulatorContentRoot, udid: targetUdid)
|
|
134
136
|
let auxiliaryResults = searchAccessibilityElements(
|
|
135
137
|
in: auxiliaryCandidates.map(\.element),
|
|
136
138
|
query: query,
|
|
@@ -170,11 +172,12 @@ func handleTap(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
170
172
|
}
|
|
171
173
|
|
|
172
174
|
let root = try accessibilityRootElement(for: target)
|
|
173
|
-
let
|
|
175
|
+
let targetUdid = simulatorUdid(from: target)
|
|
176
|
+
let simulatorContentRoot = simulatorContentRootElement(from: root, udid: targetUdid)
|
|
174
177
|
let searchRoots: [UIElement]
|
|
175
178
|
if case .simulator = target, !includeAll {
|
|
176
179
|
if let contentRoot = simulatorContentRoot {
|
|
177
|
-
let auxiliaryRoots = simulatorAuxiliaryContainerCandidates(from: root, excluding: contentRoot).map(\.element)
|
|
180
|
+
let auxiliaryRoots = simulatorAuxiliaryContainerCandidates(from: root, excluding: contentRoot, udid: targetUdid).map(\.element)
|
|
178
181
|
searchRoots = [contentRoot] + auxiliaryRoots
|
|
179
182
|
} else {
|
|
180
183
|
searchRoots = [root]
|
|
@@ -198,7 +201,7 @@ func handleTap(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
198
201
|
let selectorText = selectors.joined(separator: " and ")
|
|
199
202
|
if case .simulator = target, !includeAll {
|
|
200
203
|
let auxiliaryLabels = simulatorContentRoot.map {
|
|
201
|
-
simulatorAuxiliaryContainerLabels(from: root, excluding: $0)
|
|
204
|
+
simulatorAuxiliaryContainerLabels(from: root, excluding: $0, udid: targetUdid)
|
|
202
205
|
} ?? []
|
|
203
206
|
throw NativeError.commandFailed(simulatorSelectorNotFoundMessage(selectorText: selectorText, auxiliaryLabels: auxiliaryLabels))
|
|
204
207
|
}
|
|
@@ -211,18 +214,7 @@ func handleTap(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
211
214
|
}
|
|
212
215
|
sendDoubleClick(at: CGPoint(x: frame.midX, y: frame.midY))
|
|
213
216
|
} else {
|
|
214
|
-
|
|
215
|
-
if actions.contains(kAXPressAction as String) {
|
|
216
|
-
let status = AXUIElementPerformAction(matchedElement, kAXPressAction as CFString)
|
|
217
|
-
if status != .success {
|
|
218
|
-
throw NativeError.commandFailed("Matched accessibility element but AXPress failed with status \(status.rawValue).")
|
|
219
|
-
}
|
|
220
|
-
} else if let frame = FrameAttribute(matchedElement) {
|
|
221
|
-
let point = CGPoint(x: frame.midX, y: frame.midY)
|
|
222
|
-
sendClick(at: point)
|
|
223
|
-
} else {
|
|
224
|
-
throw NativeError.commandFailed("Matched accessibility element has no AXPress action or frame for fallback click.")
|
|
225
|
-
}
|
|
217
|
+
try performPrimaryAction(on: matchedElement)
|
|
226
218
|
}
|
|
227
219
|
|
|
228
220
|
if postDelay > 0 {
|
|
@@ -280,9 +272,10 @@ func handleTapTab(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
280
272
|
try activateTarget(target)
|
|
281
273
|
|
|
282
274
|
let appRoot = try accessibilityRootElement(for: target)
|
|
275
|
+
let targetUdid = simulatorUdid(from: target)
|
|
283
276
|
let searchRoot: UIElement = appRoot
|
|
284
277
|
|
|
285
|
-
guard let tabBar = findTabBarElement(in: searchRoot) else {
|
|
278
|
+
guard let tabBar = findTabBarElement(in: searchRoot, simulatorUdid: targetUdid) else {
|
|
286
279
|
throw NativeError.commandFailed("No tab bar found in the application UI. Ensure the app has a visible tab bar.")
|
|
287
280
|
}
|
|
288
281
|
|
|
@@ -306,21 +299,39 @@ func handleTapTab(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
306
299
|
throw NativeError.invalidArguments("Tab index \(index) is out of range. Valid range: 0..\(tabCount - 1)")
|
|
307
300
|
}
|
|
308
301
|
|
|
309
|
-
let tabWidth = frame.width / CGFloat(tabCount)
|
|
310
|
-
let tapX = frame.origin.x + tabWidth * CGFloat(index) + tabWidth / 2.0
|
|
311
|
-
let tapY = frame.origin.y + frame.height / 2.0
|
|
312
|
-
|
|
313
302
|
if preDelay > 0 {
|
|
314
303
|
Thread.sleep(forTimeInterval: preDelay)
|
|
315
304
|
}
|
|
316
305
|
|
|
306
|
+
let actionableItems = actionableTabBarItems(in: tabBar)
|
|
307
|
+
if actionableItems.count == tabCount {
|
|
308
|
+
try performPrimaryAction(on: actionableItems[index])
|
|
309
|
+
if postDelay > 0 {
|
|
310
|
+
Thread.sleep(forTimeInterval: postDelay)
|
|
311
|
+
}
|
|
312
|
+
return 0
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
if case .simulator = target,
|
|
316
|
+
let contentRoot = simulatorContentRootElement(from: appRoot, udid: targetUdid) {
|
|
317
|
+
let proxyItems = semanticProxyTabButtons(in: contentRoot, excluding: tabBar, expectedCount: tabCount)
|
|
318
|
+
if proxyItems.count == tabCount {
|
|
319
|
+
try performPrimaryAction(on: proxyItems[index])
|
|
320
|
+
if postDelay > 0 {
|
|
321
|
+
Thread.sleep(forTimeInterval: postDelay)
|
|
322
|
+
}
|
|
323
|
+
return 0
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
let tabWidth = frame.width / CGFloat(tabCount)
|
|
328
|
+
let tapX = frame.origin.x + tabWidth * CGFloat(index) + tabWidth / 2.0
|
|
329
|
+
let tapY = frame.origin.y + frame.height / 2.0
|
|
330
|
+
|
|
317
331
|
let backend = resolveInputBackend(for: target)
|
|
318
332
|
switch backend {
|
|
319
333
|
case .indigoHID(let client):
|
|
320
|
-
|
|
321
|
-
// Since tapX/tapY are screen-absolute (from AXFrame), subtract the content
|
|
322
|
-
// area origin to make them content-relative before normalization.
|
|
323
|
-
guard let contentBounds = simulatorContentBounds() else {
|
|
334
|
+
guard let contentBounds = simulatorContentBounds(udid: targetUdid) else {
|
|
324
335
|
throw NativeError.commandFailed("Cannot determine simulator content bounds for IndigoHID coordinate conversion. Ensure Simulator is running.")
|
|
325
336
|
}
|
|
326
337
|
let relX = Double(tapX) - Double(contentBounds.origin.x)
|
|
@@ -478,8 +489,9 @@ func handleScroll(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
478
489
|
case .indigoHID(let client):
|
|
479
490
|
_ = client.swipe(fromX: Double(start.x), fromY: Double(start.y), toX: Double(end.x), toY: Double(end.y), duration: 0.45, steps: 18)
|
|
480
491
|
case .cgevent:
|
|
481
|
-
let
|
|
482
|
-
let
|
|
492
|
+
let targetUdid = simulatorUdid(from: target)
|
|
493
|
+
let startPoint = try pointInSimulatorContent(x: Double(start.x), y: Double(start.y), udid: targetUdid)
|
|
494
|
+
let endPoint = try pointInSimulatorContent(x: Double(end.x), y: Double(end.y), udid: targetUdid)
|
|
483
495
|
sendSwipe(from: startPoint, to: endPoint, duration: 0.45)
|
|
484
496
|
}
|
|
485
497
|
case .macApp:
|
|
@@ -18,7 +18,7 @@ func handleRightClick(_ parsed: ParsedOptions) throws -> Int32 {
|
|
|
18
18
|
let root = try accessibilityRootElement(for: target)
|
|
19
19
|
let searchRoot: UIElement
|
|
20
20
|
if case .simulator = target, !includeAll {
|
|
21
|
-
searchRoot = simulatorContentRootElement(from: root) ?? root
|
|
21
|
+
searchRoot = simulatorContentRootElement(from: root, udid: simulatorUdid(from: target)) ?? root
|
|
22
22
|
} else {
|
|
23
23
|
searchRoot = root
|
|
24
24
|
}
|