mcp-baepsae 4.0.0 → 5.0.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/dist/index.js +2 -15
- package/dist/index.js.map +1 -1
- package/dist/tools/info.d.ts.map +1 -1
- package/dist/tools/info.js +17 -18
- package/dist/tools/info.js.map +1 -1
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +24 -47
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/system.d.ts.map +1 -1
- package/dist/tools/system.js +24 -53
- package/dist/tools/system.js.map +1 -1
- package/dist/tools/ui.d.ts.map +1 -1
- package/dist/tools/ui.js +49 -94
- package/dist/tools/ui.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +7 -4
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +19 -28
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/native/Sources/Version.swift +1 -0
- package/native/Sources/main.swift +1 -1
- package/native/Tests/BaepsaeNativeTests/BinaryInvocationTests.swift +469 -0
- package/package.json +5 -3
package/dist/index.js
CHANGED
|
@@ -1,27 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const
|
|
5
|
-
const node_path_1 = require("node:path");
|
|
4
|
+
const version_js_1 = require("./version.js");
|
|
6
5
|
const VERSION_FLAG_ARGS = new Set(["--version", "-v"]);
|
|
7
|
-
const VERSION_FALLBACK = "mcp-baepsae 4.0.0";
|
|
8
6
|
function hasVersionFlag(argv) {
|
|
9
7
|
return argv.some((arg) => VERSION_FLAG_ARGS.has(arg));
|
|
10
8
|
}
|
|
11
9
|
// Fast path: avoid loading MCP SDK/tool modules when only version output is needed.
|
|
12
10
|
if (hasVersionFlag(process.argv)) {
|
|
13
|
-
|
|
14
|
-
const packageJsonPath = (0, node_path_1.resolve)(__dirname, "..", "package.json");
|
|
15
|
-
const packageJson = JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, "utf8"));
|
|
16
|
-
if (typeof packageJson.name === "string" && typeof packageJson.version === "string") {
|
|
17
|
-
console.log(`${packageJson.name} ${packageJson.version}`);
|
|
18
|
-
process.exit(0);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
// fall through to fallback
|
|
23
|
-
}
|
|
24
|
-
console.log(VERSION_FALLBACK);
|
|
11
|
+
console.log(`${version_js_1.PACKAGE_NAME} ${version_js_1.PACKAGE_VERSION}`);
|
|
25
12
|
process.exit(0);
|
|
26
13
|
}
|
|
27
14
|
async function main() {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAIA,6CAA6D;AAE7D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAEvD,SAAS,cAAc,CAAC,IAAc;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,oFAAoF;AACpF,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,GAAG,yBAAY,IAAI,4BAAe,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC,GAC/N,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,MAAM,CAAC,yCAAyC,CAAC;QACjD,MAAM,CAAC,2CAA2C,CAAC;QACnD,MAAM,CAAC,YAAY,CAAC;QACpB,MAAM,CAAC,iBAAiB,CAAC;QACzB,MAAM,CAAC,sBAAsB,CAAC;QAC9B,MAAM,CAAC,eAAe,CAAC;QACvB,MAAM,CAAC,kBAAkB,CAAC;QAC1B,MAAM,CAAC,kBAAkB,CAAC;QAC1B,MAAM,CAAC,mBAAmB,CAAC;KAC5B,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,CAA6B,CAAC;IAE/B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/tools/info.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/tools/info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/tools/info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwFzD"}
|
package/dist/tools/info.js
CHANGED
|
@@ -15,26 +15,25 @@ function registerInfoTools(server) {
|
|
|
15
15
|
"Mode: native-layer + simctl",
|
|
16
16
|
"",
|
|
17
17
|
"supported tools:",
|
|
18
|
-
"- baepsae_help",
|
|
19
|
-
"- baepsae_version",
|
|
20
|
-
"- list_simulators",
|
|
21
|
-
"- list_apps",
|
|
22
|
-
"- screenshot",
|
|
23
|
-
"- record_video",
|
|
24
|
-
"- open_url",
|
|
25
|
-
"- install_app",
|
|
26
|
-
"- launch_app",
|
|
27
|
-
"- terminate_app",
|
|
28
|
-
"- uninstall_app",
|
|
29
18
|
"",
|
|
30
|
-
"
|
|
31
|
-
"-
|
|
32
|
-
"- Simulator-only: list_simulators, screenshot, record_video, stream_video, open_url, install_app, launch_app, terminate_app, uninstall_app, button, gesture",
|
|
33
|
-
"- macOS/system: list_apps, menu_action, get_focused_app, clipboard",
|
|
19
|
+
"UI (unified — pass udid for simulator, bundleId/appName for macOS):",
|
|
20
|
+
"- analyze_ui, query_ui, tap, type_text, swipe, scroll, drag_drop",
|
|
34
21
|
"",
|
|
35
|
-
"
|
|
36
|
-
"-
|
|
37
|
-
"
|
|
22
|
+
"Input (unified):",
|
|
23
|
+
"- key, key_sequence, key_combo, touch",
|
|
24
|
+
"",
|
|
25
|
+
"System (unified):",
|
|
26
|
+
"- list_windows, activate_app, screenshot_app, right_click",
|
|
27
|
+
"",
|
|
28
|
+
"Simulator-only:",
|
|
29
|
+
"- list_simulators, screenshot, record_video, stream_video, open_url, install_app, launch_app, terminate_app, uninstall_app, button, gesture",
|
|
30
|
+
"",
|
|
31
|
+
"macOS/system:",
|
|
32
|
+
"- list_apps, menu_action, get_focused_app, clipboard, baepsae_help, baepsae_version",
|
|
33
|
+
"",
|
|
34
|
+
"Accessibility tip:",
|
|
35
|
+
"- launch_app -> analyze_ui/query_ui -> tap(id/label)",
|
|
36
|
+
"- tap/right_click selector lookup defaults to in-app content (set all=true to include Simulator chrome UI)",
|
|
38
37
|
"",
|
|
39
38
|
`Native binary requirement: build native binary or set ${utils_js_1.NATIVE_BINARY_ENV}`,
|
|
40
39
|
];
|
package/dist/tools/info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/tools/info.ts"],"names":[],"mappings":";;AAaA,
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/tools/info.ts"],"names":[],"mappings":";;AAaA,8CAwFC;AApGD,6BAAwB;AAExB,0CAQqB;AAErB,SAAgB,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,IAAI,CACT,cAAc,EACd,yEAAyE,EACzE;QACE,UAAU,EAAE,OAAC;aACV,IAAI,CAAC,8BAAmB,CAAC;aACzB,QAAQ,EAAE;aACV,QAAQ,CAAC,6DAA6D,CAAC;KAC3E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,KAAK,GAAG;YACZ,WAAW,sBAAW,KAAK,yBAAc,EAAE;YAC3C,6BAA6B;YAC7B,EAAE;YACF,kBAAkB;YAClB,EAAE;YACF,qEAAqE;YACrE,kEAAkE;YAClE,EAAE;YACF,kBAAkB;YAClB,uCAAuC;YACvC,EAAE;YACF,mBAAmB;YACnB,2DAA2D;YAC3D,EAAE;YACF,iBAAiB;YACjB,6IAA6I;YAC7I,EAAE;YACF,eAAe;YACf,qFAAqF;YACrF,EAAE;YACF,oBAAoB;YACpB,sDAAsD;YACtD,4GAA4G;YAC5G,EAAE;YACF,yDAAyD,4BAAiB,EAAE;SAC7E,CAAC;QAEF,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gCAAgC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,yCAAyC,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,KAAK,GAAG;YACZ,GAAG,sBAAW,IAAI,yBAAc,EAAE;YAClC,YAAY,OAAO,CAAC,OAAO,EAAE;YAC7B,aAAa,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;SAChD,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,8BAAmB,GAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAc,EAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CACT,WAAW,EACX,wDAAwD,EACxD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,OAAO,MAAM,IAAA,oBAAS,EAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IACxC,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,wDAAwD,EACxD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,OAAO,MAAM,IAAA,oBAAS,EAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4GzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoF1D"}
|
package/dist/tools/input.js
CHANGED
|
@@ -3,13 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerInputTools = registerInputTools;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
|
-
const simTargetSchema = {
|
|
7
|
-
udid: zod_1.z.string().min(1).describe("Simulator UDID"),
|
|
8
|
-
};
|
|
9
|
-
const macTargetSchema = {
|
|
10
|
-
bundleId: zod_1.z.string().optional().describe("macOS app bundle ID"),
|
|
11
|
-
appName: zod_1.z.string().optional().describe("macOS app name"),
|
|
12
|
-
};
|
|
13
6
|
const keySchema = {
|
|
14
7
|
keycode: utils_js_1.keycodeSchema.describe("HID keycode (0-255)"),
|
|
15
8
|
duration: zod_1.z.number().optional().describe("Hold duration in seconds"),
|
|
@@ -75,38 +68,6 @@ function buildTouchArgs(target, params) {
|
|
|
75
68
|
return args;
|
|
76
69
|
}
|
|
77
70
|
function registerInputTools(server) {
|
|
78
|
-
const registerKeyTool = (name, description, targetSchema, resolveTarget) => {
|
|
79
|
-
server.tool(name, description, { ...targetSchema, ...keySchema }, async (params) => {
|
|
80
|
-
const target = resolveTarget(params);
|
|
81
|
-
if (!Array.isArray(target))
|
|
82
|
-
return target;
|
|
83
|
-
return await (0, utils_js_1.runNative)(buildKeyArgs(target, params));
|
|
84
|
-
});
|
|
85
|
-
};
|
|
86
|
-
const registerKeySequenceTool = (name, description, targetSchema, resolveTarget) => {
|
|
87
|
-
server.tool(name, description, { ...targetSchema, ...keySequenceSchema }, async (params) => {
|
|
88
|
-
const target = resolveTarget(params);
|
|
89
|
-
if (!Array.isArray(target))
|
|
90
|
-
return target;
|
|
91
|
-
return await (0, utils_js_1.runNative)(buildKeySequenceArgs(target, params));
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
const registerKeyComboTool = (name, description, targetSchema, resolveTarget) => {
|
|
95
|
-
server.tool(name, description, { ...targetSchema, ...keyComboSchema }, async (params) => {
|
|
96
|
-
const target = resolveTarget(params);
|
|
97
|
-
if (!Array.isArray(target))
|
|
98
|
-
return target;
|
|
99
|
-
return await (0, utils_js_1.runNative)(buildKeyComboArgs(target, params));
|
|
100
|
-
});
|
|
101
|
-
};
|
|
102
|
-
const registerTouchTool = (name, description, targetSchema, resolveTarget) => {
|
|
103
|
-
server.tool(name, description, { ...targetSchema, ...touchSchema }, async (params) => {
|
|
104
|
-
const target = resolveTarget(params);
|
|
105
|
-
if (!Array.isArray(target))
|
|
106
|
-
return target;
|
|
107
|
-
return await (0, utils_js_1.runNative)(buildTouchArgs(target, params));
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
71
|
server.tool("button", "Press a simulator hardware button.", {
|
|
111
72
|
udid: zod_1.z.string().min(1).describe("Simulator UDID"),
|
|
112
73
|
buttonType: zod_1.z.enum(utils_js_1.BUTTON_TYPES).describe("Button type"),
|
|
@@ -117,14 +78,30 @@ function registerInputTools(server) {
|
|
|
117
78
|
args.push("--udid", params.udid);
|
|
118
79
|
return await (0, utils_js_1.runNative)(args);
|
|
119
80
|
});
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
81
|
+
server.tool("key", "Press a single HID keycode in the target app.", { ...utils_js_1.unifiedTargetSchema, ...keySchema }, async (params) => {
|
|
82
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
83
|
+
if (!Array.isArray(target))
|
|
84
|
+
return target;
|
|
85
|
+
return await (0, utils_js_1.runNative)(buildKeyArgs(target, params));
|
|
86
|
+
});
|
|
87
|
+
server.tool("key_sequence", "Press multiple HID keycodes in sequence in the target app.", { ...utils_js_1.unifiedTargetSchema, ...keySequenceSchema }, async (params) => {
|
|
88
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
89
|
+
if (!Array.isArray(target))
|
|
90
|
+
return target;
|
|
91
|
+
return await (0, utils_js_1.runNative)(buildKeySequenceArgs(target, params));
|
|
92
|
+
});
|
|
93
|
+
server.tool("key_combo", "Press key combo in the target app.", { ...utils_js_1.unifiedTargetSchema, ...keyComboSchema }, async (params) => {
|
|
94
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
95
|
+
if (!Array.isArray(target))
|
|
96
|
+
return target;
|
|
97
|
+
return await (0, utils_js_1.runNative)(buildKeyComboArgs(target, params));
|
|
98
|
+
});
|
|
99
|
+
server.tool("touch", "Perform touch events in the target app.", { ...utils_js_1.unifiedTargetSchema, ...touchSchema }, async (params) => {
|
|
100
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
101
|
+
if (!Array.isArray(target))
|
|
102
|
+
return target;
|
|
103
|
+
return await (0, utils_js_1.runNative)(buildTouchArgs(target, params));
|
|
104
|
+
});
|
|
128
105
|
server.tool("gesture", "Execute a preset gesture pattern.", {
|
|
129
106
|
udid: zod_1.z.string().min(1).describe("Simulator UDID"),
|
|
130
107
|
preset: zod_1.z.enum(utils_js_1.GESTURE_PRESETS).describe("Gesture preset"),
|
package/dist/tools/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":";;AA4GA,gDAoFC;AA/LD,6BAAwB;AAGxB,0CAQqB;AAyBrB,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,wBAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACtD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CACrE,CAAC;AAEF,MAAM,iBAAiB,GAAG;IACxB,QAAQ,EAAE,OAAC;SACR,KAAK,CAAC;QACL,OAAC,CAAC,KAAK,CAAC,wBAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KAC3D,CAAC;SACD,QAAQ,CAAC,cAAc,CAAC;IAC3B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAC9E,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,wBAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACtE,GAAG,EAAE,wBAAa,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CACzE,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACtC,CAAC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACtC,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC9D,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC1D,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CAC1E,CAAC;AAEF,SAAS,YAAY,CAAC,MAAgB,EAAE,MAAiB;IACvD,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,IAAA,qBAAU,EAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAgB,EAAE,MAAyB;IACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9F,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAA,qBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAgB,EAAE,MAAsB;IACjE,OAAO;QACL,WAAW;QACX,aAAa;QACb,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1B,OAAO;QACP,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QAClB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAgB,EAAE,MAAmB;IAC3D,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,IAAA,qBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,oCAAoC,EACpC;QACE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClD,UAAU,EAAE,OAAC,CAAC,IAAI,CAAC,uBAAY,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QACxD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACrE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAA,qBAAU,EAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,MAAM,IAAA,oBAAS,EAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,KAAK,EACL,+CAA+C,EAC/C,EAAE,GAAG,8BAAmB,EAAE,GAAG,SAAS,EAAE,EACxC,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,IAAA,mCAAwB,EAAC,MAA6B,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1C,OAAO,MAAM,IAAA,oBAAS,EAAC,YAAY,CAAC,MAAM,EAAE,MAAmB,CAAC,CAAC,CAAC;IACpE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,4DAA4D,EAC5D,EAAE,GAAG,8BAAmB,EAAE,GAAG,iBAAiB,EAAE,EAChD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,IAAA,mCAAwB,EAAC,MAA6B,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1C,OAAO,MAAM,IAAA,oBAAS,EAAC,oBAAoB,CAAC,MAAM,EAAE,MAA2B,CAAC,CAAC,CAAC;IACpF,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,WAAW,EACX,oCAAoC,EACpC,EAAE,GAAG,8BAAmB,EAAE,GAAG,cAAc,EAAE,EAC7C,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,IAAA,mCAAwB,EAAC,MAA6B,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1C,OAAO,MAAM,IAAA,oBAAS,EAAC,iBAAiB,CAAC,MAAM,EAAE,MAAwB,CAAC,CAAC,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,OAAO,EACP,yCAAyC,EACzC,EAAE,GAAG,8BAAmB,EAAE,GAAG,WAAW,EAAE,EAC1C,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,IAAA,mCAAwB,EAAC,MAA6B,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1C,OAAO,MAAM,IAAA,oBAAS,EAAC,cAAc,CAAC,MAAM,EAAE,MAAqB,CAAC,CAAC,CAAC;IACxE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,SAAS,EACT,mCAAmC,EACnC;QACE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClD,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,0BAAe,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC1D,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACrE,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACvE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACvE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC3E,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC5E,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,IAAA,qBAAU,EAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACvD,IAAA,qBAAU,EAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACzD,IAAA,qBAAU,EAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAA,qBAAU,EAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAA,qBAAU,EAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,MAAM,IAAA,oBAAS,EAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmDzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkF3D"}
|
package/dist/tools/system.js
CHANGED
|
@@ -3,13 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerSystemTools = registerSystemTools;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
|
-
const simTargetSchema = {
|
|
7
|
-
udid: zod_1.z.string().min(1),
|
|
8
|
-
};
|
|
9
|
-
const macTargetSchema = {
|
|
10
|
-
bundleId: zod_1.z.string().optional(),
|
|
11
|
-
appName: zod_1.z.string().optional(),
|
|
12
|
-
};
|
|
13
6
|
const screenshotSchema = {
|
|
14
7
|
output: zod_1.z.string().optional().describe("Output file path"),
|
|
15
8
|
};
|
|
@@ -20,12 +13,6 @@ const rightClickSchema = {
|
|
|
20
13
|
label: zod_1.z.string().optional(),
|
|
21
14
|
all: zod_1.z.boolean().optional(),
|
|
22
15
|
};
|
|
23
|
-
const rightClickSchemaWithoutAll = {
|
|
24
|
-
x: zod_1.z.number().optional(),
|
|
25
|
-
y: zod_1.z.number().optional(),
|
|
26
|
-
id: zod_1.z.string().optional(),
|
|
27
|
-
label: zod_1.z.string().optional(),
|
|
28
|
-
};
|
|
29
16
|
function buildScreenshotArgs(target, params) {
|
|
30
17
|
const args = ["screenshot-app", ...target];
|
|
31
18
|
(0, utils_js_1.pushOption)(args, "--output", params.output);
|
|
@@ -42,46 +29,30 @@ function buildRightClickArgs(target, params) {
|
|
|
42
29
|
return args;
|
|
43
30
|
}
|
|
44
31
|
function registerSystemTools(server) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
};
|
|
69
|
-
const registerRightClickTool = (name, description, targetSchema, schema, resolveTarget) => {
|
|
70
|
-
server.tool(name, description, { ...targetSchema, ...schema }, async (params) => {
|
|
71
|
-
const target = resolveTarget(params);
|
|
72
|
-
if (!Array.isArray(target))
|
|
73
|
-
return target;
|
|
74
|
-
return await (0, utils_js_1.runNative)(buildRightClickArgs(target, params));
|
|
75
|
-
});
|
|
76
|
-
};
|
|
77
|
-
registerListWindowsTool("sim_list_windows", "List windows in Simulator target.", simTargetSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
78
|
-
registerListWindowsTool("mac_list_windows", "List windows in macOS app target.", macTargetSchema, utils_js_1.resolveMacTargetArgs);
|
|
79
|
-
registerActivateAppTool("sim_activate_app", "Bring Simulator target to foreground.", simTargetSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
80
|
-
registerActivateAppTool("mac_activate_app", "Bring macOS app target to foreground.", macTargetSchema, utils_js_1.resolveMacTargetArgs);
|
|
81
|
-
registerScreenshotAppTool("sim_screenshot_app", "Take a screenshot of Simulator target window.", simTargetSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
82
|
-
registerScreenshotAppTool("mac_screenshot_app", "Take a screenshot of macOS app target window.", macTargetSchema, utils_js_1.resolveMacTargetArgs);
|
|
83
|
-
registerRightClickTool("sim_right_click", "Right-click in Simulator target (selector lookup defaults to in-app content; set all=true for Simulator chrome UI).", simTargetSchema, rightClickSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
84
|
-
registerRightClickTool("mac_right_click", "Right-click in macOS app target.", macTargetSchema, rightClickSchemaWithoutAll, utils_js_1.resolveMacTargetArgs);
|
|
32
|
+
server.tool("list_windows", "List windows in the target app.", utils_js_1.unifiedTargetSchema, async (params) => {
|
|
33
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
34
|
+
if (!Array.isArray(target))
|
|
35
|
+
return target;
|
|
36
|
+
return await (0, utils_js_1.runNative)(["list-windows", ...target]);
|
|
37
|
+
});
|
|
38
|
+
server.tool("activate_app", "Bring the target app to foreground.", utils_js_1.unifiedTargetSchema, async (params) => {
|
|
39
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
40
|
+
if (!Array.isArray(target))
|
|
41
|
+
return target;
|
|
42
|
+
return await (0, utils_js_1.runNative)(["activate-app", ...target]);
|
|
43
|
+
});
|
|
44
|
+
server.tool("screenshot_app", "Take a screenshot of the target app window.", { ...utils_js_1.unifiedTargetSchema, ...screenshotSchema }, async (params) => {
|
|
45
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
46
|
+
if (!Array.isArray(target))
|
|
47
|
+
return target;
|
|
48
|
+
return await (0, utils_js_1.runNative)(buildScreenshotArgs(target, params));
|
|
49
|
+
});
|
|
50
|
+
server.tool("right_click", "Right-click in the target app. Selector lookup defaults to in-app content; set all=true for Simulator chrome UI.", { ...utils_js_1.unifiedTargetSchema, ...rightClickSchema }, async (params) => {
|
|
51
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
52
|
+
if (!Array.isArray(target))
|
|
53
|
+
return target;
|
|
54
|
+
return await (0, utils_js_1.runNative)(buildRightClickArgs(target, params));
|
|
55
|
+
});
|
|
85
56
|
server.tool("menu_action", "Execute a menu bar action in a macOS app.", {
|
|
86
57
|
bundleId: zod_1.z.string().optional(),
|
|
87
58
|
appName: zod_1.z.string().optional(),
|
package/dist/tools/system.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/tools/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/tools/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmRzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqFvD"}
|
package/dist/tools/ui.js
CHANGED
|
@@ -3,13 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerUITools = registerUITools;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
|
-
const simTargetSchema = {
|
|
7
|
-
udid: zod_1.z.string().min(1).describe("Simulator UDID"),
|
|
8
|
-
};
|
|
9
|
-
const macTargetSchema = {
|
|
10
|
-
bundleId: zod_1.z.string().optional().describe("macOS app bundle ID"),
|
|
11
|
-
appName: zod_1.z.string().optional().describe("macOS app name"),
|
|
12
|
-
};
|
|
13
6
|
const describeSchema = {
|
|
14
7
|
output: zod_1.z.string().optional().describe("Optional output file path for hierarchy text"),
|
|
15
8
|
focusId: zod_1.z.string().optional().describe("Focus on element with specific ID"),
|
|
@@ -38,15 +31,6 @@ const tapSchema = {
|
|
|
38
31
|
preDelay: zod_1.z.number().optional().describe("Delay before tap in seconds"),
|
|
39
32
|
postDelay: zod_1.z.number().optional().describe("Delay after tap in seconds"),
|
|
40
33
|
};
|
|
41
|
-
const tapSchemaWithoutAll = {
|
|
42
|
-
x: zod_1.z.number().optional().describe("X coordinate"),
|
|
43
|
-
y: zod_1.z.number().optional().describe("Y coordinate"),
|
|
44
|
-
id: zod_1.z.string().optional().describe("Accessibility identifier"),
|
|
45
|
-
label: zod_1.z.string().optional().describe("Accessibility label"),
|
|
46
|
-
double: zod_1.z.boolean().optional().describe("Send double-click instead of single click"),
|
|
47
|
-
preDelay: zod_1.z.number().optional().describe("Delay before tap in seconds"),
|
|
48
|
-
postDelay: zod_1.z.number().optional().describe("Delay after tap in seconds"),
|
|
49
|
-
};
|
|
50
34
|
const typeSchema = {
|
|
51
35
|
text: zod_1.z.string().optional().describe("Text argument"),
|
|
52
36
|
stdinText: zod_1.z.string().optional().describe("Text piped to stdin mode"),
|
|
@@ -202,83 +186,54 @@ function buildDragDropArgs(target, params) {
|
|
|
202
186
|
return args;
|
|
203
187
|
}
|
|
204
188
|
function registerUITools(server) {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
return
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
const target = resolveTarget(params);
|
|
255
|
-
if (!Array.isArray(target))
|
|
256
|
-
return target;
|
|
257
|
-
return await (0, utils_js_1.runNative)(buildScrollArgs(target, params));
|
|
258
|
-
});
|
|
259
|
-
};
|
|
260
|
-
const registerDragDropTool = (name, description, targetSchema, resolveTarget) => {
|
|
261
|
-
server.tool(name, description, { ...targetSchema, ...dragDropSchema }, async (params) => {
|
|
262
|
-
const target = resolveTarget(params);
|
|
263
|
-
if (!Array.isArray(target))
|
|
264
|
-
return target;
|
|
265
|
-
return await (0, utils_js_1.runNative)(buildDragDropArgs(target, params));
|
|
266
|
-
});
|
|
267
|
-
};
|
|
268
|
-
// Explicit simulator/macOS split tools
|
|
269
|
-
registerDescribeTool("sim_describe_ui", "Describe Simulator app UI hierarchy (inside simulator app content by default).", simTargetSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
270
|
-
registerDescribeTool("mac_describe_ui", "Describe macOS app UI hierarchy.", macTargetSchema, utils_js_1.resolveMacTargetArgs);
|
|
271
|
-
registerSearchTool("sim_search_ui", "Search Simulator app UI elements by text, identifier, or label.", simTargetSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
272
|
-
registerSearchTool("mac_search_ui", "Search macOS app UI elements by text, identifier, or label.", macTargetSchema, utils_js_1.resolveMacTargetArgs);
|
|
273
|
-
registerTapTool("sim_tap", "Tap simulator coordinates or in-app accessibility element. Selector lookup defaults to in-app content; set all=true to include Simulator chrome UI.", simTargetSchema, tapSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
274
|
-
registerTapTool("mac_tap", "Tap macOS app coordinates or accessibility element.", macTargetSchema, tapSchemaWithoutAll, utils_js_1.resolveMacTargetArgs);
|
|
275
|
-
registerTypeTool("sim_type_text", "Type text in Simulator target.", simTargetSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
276
|
-
registerTypeTool("mac_type_text", "Type text in macOS app target.", macTargetSchema, utils_js_1.resolveMacTargetArgs);
|
|
277
|
-
registerSwipeTool("sim_swipe", "Perform swipe gesture in Simulator target.", simTargetSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
278
|
-
registerSwipeTool("mac_swipe", "Perform swipe gesture in macOS app target.", macTargetSchema, utils_js_1.resolveMacTargetArgs);
|
|
279
|
-
registerScrollTool("sim_scroll", "Send scroll wheel events to Simulator target.", simTargetSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
280
|
-
registerScrollTool("mac_scroll", "Send scroll wheel events to macOS app target.", macTargetSchema, utils_js_1.resolveMacTargetArgs);
|
|
281
|
-
registerDragDropTool("sim_drag_drop", "Drag and drop in Simulator target.", simTargetSchema, utils_js_1.resolveSimulatorTargetArgs);
|
|
282
|
-
registerDragDropTool("mac_drag_drop", "Drag and drop in macOS app target.", macTargetSchema, utils_js_1.resolveMacTargetArgs);
|
|
189
|
+
server.tool("analyze_ui", "Describe app UI hierarchy. Works with both simulator (udid) and macOS (bundleId/appName) targets.", { ...utils_js_1.unifiedTargetSchema, ...describeSchema }, async (params) => {
|
|
190
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
191
|
+
if (!Array.isArray(target))
|
|
192
|
+
return target;
|
|
193
|
+
return await (0, utils_js_1.runNative)(buildDescribeArgs(target, params));
|
|
194
|
+
});
|
|
195
|
+
server.tool("query_ui", "Search app UI elements by text, identifier, or label. Works with both simulator and macOS targets.", { ...utils_js_1.unifiedTargetSchema, ...searchSchema }, async (params) => {
|
|
196
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
197
|
+
if (!Array.isArray(target))
|
|
198
|
+
return target;
|
|
199
|
+
return await (0, utils_js_1.runNative)(buildSearchArgs(target, params));
|
|
200
|
+
});
|
|
201
|
+
server.tool("tap", "Tap coordinates or accessibility element. Selector lookup defaults to in-app content; set all=true to include Simulator chrome UI.", { ...utils_js_1.unifiedTargetSchema, ...tapSchema }, async (params) => {
|
|
202
|
+
const validationError = validateTapParams(params);
|
|
203
|
+
if (validationError)
|
|
204
|
+
return validationError;
|
|
205
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
206
|
+
if (!Array.isArray(target))
|
|
207
|
+
return target;
|
|
208
|
+
return await (0, utils_js_1.runNative)(buildTapArgs(target, params));
|
|
209
|
+
});
|
|
210
|
+
server.tool("type_text", "Type text into the target app.", { ...utils_js_1.unifiedTargetSchema, ...typeSchema }, async (params) => {
|
|
211
|
+
const validationError = validateTypeParams(params);
|
|
212
|
+
if (validationError)
|
|
213
|
+
return validationError;
|
|
214
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
215
|
+
if (!Array.isArray(target))
|
|
216
|
+
return target;
|
|
217
|
+
const built = buildTypeArgs(target, params);
|
|
218
|
+
return await (0, utils_js_1.runNative)(built.args, { stdinText: built.stdinText });
|
|
219
|
+
});
|
|
220
|
+
server.tool("swipe", "Perform swipe gesture in the target app.", { ...utils_js_1.unifiedTargetSchema, ...swipeSchema }, async (params) => {
|
|
221
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
222
|
+
if (!Array.isArray(target))
|
|
223
|
+
return target;
|
|
224
|
+
return await (0, utils_js_1.runNative)(buildSwipeArgs(target, params));
|
|
225
|
+
});
|
|
226
|
+
server.tool("scroll", "Send scroll wheel events to the target app.", { ...utils_js_1.unifiedTargetSchema, ...scrollSchema }, async (params) => {
|
|
227
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
228
|
+
if (!Array.isArray(target))
|
|
229
|
+
return target;
|
|
230
|
+
return await (0, utils_js_1.runNative)(buildScrollArgs(target, params));
|
|
231
|
+
});
|
|
232
|
+
server.tool("drag_drop", "Drag and drop in the target app.", { ...utils_js_1.unifiedTargetSchema, ...dragDropSchema }, async (params) => {
|
|
233
|
+
const target = (0, utils_js_1.resolveUnifiedTargetArgs)(params);
|
|
234
|
+
if (!Array.isArray(target))
|
|
235
|
+
return target;
|
|
236
|
+
return await (0, utils_js_1.runNative)(buildDragDropArgs(target, params));
|
|
237
|
+
});
|
|
283
238
|
}
|
|
284
239
|
//# sourceMappingURL=ui.js.map
|