appium-mcp 1.49.0 → 1.50.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/CHANGELOG.md +12 -0
- package/README.md +1 -3
- package/dist/command.d.ts +12 -1
- package/dist/command.d.ts.map +1 -1
- package/dist/command.js +25 -1
- package/dist/command.js.map +1 -1
- package/dist/tools/app-management/activate-app.d.ts.map +1 -1
- package/dist/tools/app-management/activate-app.js +19 -6
- package/dist/tools/app-management/activate-app.js.map +1 -1
- package/dist/tools/app-management/clear-app.d.ts.map +1 -1
- package/dist/tools/app-management/clear-app.js +14 -4
- package/dist/tools/app-management/clear-app.js.map +1 -1
- package/dist/tools/app-management/deep-link.d.ts.map +1 -1
- package/dist/tools/app-management/deep-link.js +11 -2
- package/dist/tools/app-management/deep-link.js.map +1 -1
- package/dist/tools/app-management/install-app.d.ts.map +1 -1
- package/dist/tools/app-management/install-app.js +2 -0
- package/dist/tools/app-management/install-app.js.map +1 -1
- package/dist/tools/app-management/is-app-installed.d.ts.map +1 -1
- package/dist/tools/app-management/is-app-installed.js +14 -4
- package/dist/tools/app-management/is-app-installed.js.map +1 -1
- package/dist/tools/app-management/list-apps.d.ts +4 -0
- package/dist/tools/app-management/list-apps.d.ts.map +1 -1
- package/dist/tools/app-management/list-apps.js +1 -1
- package/dist/tools/app-management/list-apps.js.map +1 -1
- package/dist/tools/app-management/query-app-state.d.ts.map +1 -1
- package/dist/tools/app-management/query-app-state.js +15 -4
- package/dist/tools/app-management/query-app-state.js.map +1 -1
- package/dist/tools/app-management/resolve-app-id.d.ts +15 -0
- package/dist/tools/app-management/resolve-app-id.d.ts.map +1 -0
- package/dist/tools/app-management/resolve-app-id.js +106 -0
- package/dist/tools/app-management/resolve-app-id.js.map +1 -0
- package/dist/tools/app-management/terminate-app.d.ts.map +1 -1
- package/dist/tools/app-management/terminate-app.js +14 -4
- package/dist/tools/app-management/terminate-app.js.map +1 -1
- package/dist/tools/app-management/uninstall-app.d.ts.map +1 -1
- package/dist/tools/app-management/uninstall-app.js +22 -6
- package/dist/tools/app-management/uninstall-app.js.map +1 -1
- package/dist/tools/interactions/set-value.d.ts.map +1 -1
- package/dist/tools/interactions/set-value.js +13 -3
- package/dist/tools/interactions/set-value.js.map +1 -1
- package/dist/tools/session/select-device.js +2 -2
- package/dist/tools/session/select-device.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/command.ts +28 -1
- package/src/resources/submodules.zip +0 -0
- package/src/tools/README.md +1 -3
- package/src/tools/app-management/activate-app.ts +31 -12
- package/src/tools/app-management/clear-app.ts +25 -11
- package/src/tools/app-management/deep-link.ts +15 -2
- package/src/tools/app-management/install-app.ts +2 -0
- package/src/tools/app-management/is-app-installed.ts +25 -11
- package/src/tools/app-management/list-apps.ts +1 -1
- package/src/tools/app-management/query-app-state.ts +26 -11
- package/src/tools/app-management/resolve-app-id.ts +140 -0
- package/src/tools/app-management/terminate-app.ts +26 -11
- package/src/tools/app-management/uninstall-app.ts +40 -19
- package/src/tools/interactions/set-value.ts +26 -9
- package/src/tools/session/select-device.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.50.0](https://github.com/appium/appium-mcp/compare/v1.49.1...v1.50.0) (2026-04-08)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **app-management:** implement app parameter for human friendly control ([#251](https://github.com/appium/appium-mcp/issues/251)) ([24ac94d](https://github.com/appium/appium-mcp/commit/24ac94d28d18f70255e8cfd053aee4627e6c2afd))
|
|
6
|
+
|
|
7
|
+
## [1.49.1](https://github.com/appium/appium-mcp/compare/v1.49.0...v1.49.1) (2026-04-08)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* support typings with w3c actions ([#253](https://github.com/appium/appium-mcp/issues/253)) ([9cfd464](https://github.com/appium/appium-mcp/commit/9cfd4641e7263cf3b7d1e71f3c580b1dfbd57a58))
|
|
12
|
+
|
|
1
13
|
## [1.49.0](https://github.com/appium/appium-mcp/compare/v1.48.0...v1.49.0) (2026-04-08)
|
|
2
14
|
|
|
3
15
|
### Features
|
package/README.md
CHANGED
|
@@ -295,9 +295,7 @@ MCP Appium provides a comprehensive set of tools organized into the following ca
|
|
|
295
295
|
| ----------------- | ------------------------------------------------------------------------ |
|
|
296
296
|
| `select_platform` | **REQUIRED FIRST**: Ask user to choose between Android or iOS platform |
|
|
297
297
|
| `select_device` | Select a specific device when multiple devices are available |
|
|
298
|
-
| `
|
|
299
|
-
| `setup_wda` | Download and setup prebuilt WebDriverAgent for iOS simulators (iOS only) |
|
|
300
|
-
| `install_wda` | Install and launch WebDriverAgent on a booted iOS simulator (iOS only) |
|
|
298
|
+
| `prepare_ios_simulator` | Boot an iOS/tvOS simulator, download WDA (if not cached), and install/launch WDA in a single call. Each step is skipped if already satisfied (iOS/tvOS only) |
|
|
301
299
|
|
|
302
300
|
### Session Management
|
|
303
301
|
|
package/dist/command.d.ts
CHANGED
|
@@ -67,15 +67,26 @@ export declare function getContexts(driver: DriverInstance): Promise<string[]>;
|
|
|
67
67
|
* @param name - The context name to switch to (if omitted, behavior depends on driver).
|
|
68
68
|
*/
|
|
69
69
|
export declare function setContext(driver: DriverInstance, name?: string): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Build a W3C Actions API key sequence for the given text.
|
|
72
|
+
* Each character is emitted as a keyDown+keyUp pair so it works
|
|
73
|
+
* on both Android and iOS without relying on driver-specific setValue.
|
|
74
|
+
*
|
|
75
|
+
* @param text - The text to type.
|
|
76
|
+
* @returns A W3C `key` action sequence object.
|
|
77
|
+
*/
|
|
78
|
+
export declare function buildW3cKeyActions(text: string): StringRecord<any>;
|
|
70
79
|
/**
|
|
71
80
|
* Set the value of an element.
|
|
72
81
|
*
|
|
73
82
|
* @param driver - The driver instance to use.
|
|
74
83
|
* @param elementUUID - Element identifier.
|
|
75
84
|
* @param text - Text to set into the element.
|
|
85
|
+
* @param w3cActions - When true, use the W3C Actions API (performActions) instead
|
|
86
|
+
* of the driver-specific setValue. Works on both Android and iOS.
|
|
76
87
|
* @returns Driver-specific result (often void or element value).
|
|
77
88
|
*/
|
|
78
|
-
export declare function setValue(driver: DriverInstance, elementUUID: string, text: string): Promise<void>;
|
|
89
|
+
export declare function setValue(driver: DriverInstance, elementUUID: string, text: string, w3cActions?: boolean): Promise<void>;
|
|
79
90
|
/**
|
|
80
91
|
* Click an element identified by UUID.
|
|
81
92
|
*
|
package/dist/command.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,0CAA0C,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,GAAG,CAAC,CAQd;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAOhC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAO3E;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
package/dist/command.js
CHANGED
|
@@ -135,15 +135,39 @@ export async function setContext(driver, name) {
|
|
|
135
135
|
}
|
|
136
136
|
throw new Error('setContext is not supported');
|
|
137
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Build a W3C Actions API key sequence for the given text.
|
|
140
|
+
* Each character is emitted as a keyDown+keyUp pair so it works
|
|
141
|
+
* on both Android and iOS without relying on driver-specific setValue.
|
|
142
|
+
*
|
|
143
|
+
* @param text - The text to type.
|
|
144
|
+
* @returns A W3C `key` action sequence object.
|
|
145
|
+
*/
|
|
146
|
+
export function buildW3cKeyActions(text) {
|
|
147
|
+
const actions = text.split('').flatMap((char) => [
|
|
148
|
+
{ type: 'keyDown', value: char },
|
|
149
|
+
{ type: 'keyUp', value: char },
|
|
150
|
+
]);
|
|
151
|
+
return {
|
|
152
|
+
type: 'key',
|
|
153
|
+
id: 'keyboard',
|
|
154
|
+
actions,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
138
157
|
/**
|
|
139
158
|
* Set the value of an element.
|
|
140
159
|
*
|
|
141
160
|
* @param driver - The driver instance to use.
|
|
142
161
|
* @param elementUUID - Element identifier.
|
|
143
162
|
* @param text - Text to set into the element.
|
|
163
|
+
* @param w3cActions - When true, use the W3C Actions API (performActions) instead
|
|
164
|
+
* of the driver-specific setValue. Works on both Android and iOS.
|
|
144
165
|
* @returns Driver-specific result (often void or element value).
|
|
145
166
|
*/
|
|
146
|
-
export async function setValue(driver, elementUUID, text) {
|
|
167
|
+
export async function setValue(driver, elementUUID, text, w3cActions = false) {
|
|
168
|
+
if (w3cActions) {
|
|
169
|
+
return await performActions(driver, [buildW3cKeyActions(text)]);
|
|
170
|
+
}
|
|
147
171
|
if (isAndroidUiautomator2DriverSession(driver)) {
|
|
148
172
|
return await driver.setValue(text, elementUUID);
|
|
149
173
|
}
|
package/dist/command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activate-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/activate-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"activate-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/activate-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAkEzD"}
|
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
import { getDriver } from '../../session-store.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { activateApp as _activateApp } from '../../command.js';
|
|
4
|
+
import { resolveId } from './resolve-app-id.js';
|
|
4
5
|
export default function activateApp(server) {
|
|
5
|
-
const activateAppSchema = z
|
|
6
|
-
|
|
6
|
+
const activateAppSchema = z
|
|
7
|
+
.object({
|
|
8
|
+
id: z
|
|
9
|
+
.string()
|
|
10
|
+
.optional()
|
|
11
|
+
.describe('The app id (package name for Android, bundle ID for iOS). Takes precedence over name. Required if name is not provided.'),
|
|
12
|
+
name: z
|
|
13
|
+
.string()
|
|
14
|
+
.optional()
|
|
15
|
+
.describe('Human-readable app name (e.g. "Spotify"). Used to resolve the app id when id is not provided. Required if id is not provided.'),
|
|
7
16
|
sessionId: z
|
|
8
17
|
.string()
|
|
9
18
|
.optional()
|
|
10
19
|
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
20
|
+
})
|
|
21
|
+
.refine((args) => args.id || args.name, {
|
|
22
|
+
message: 'Either id or name must be provided',
|
|
11
23
|
});
|
|
12
24
|
server.addTool({
|
|
13
25
|
name: 'appium_activate_app',
|
|
14
|
-
description: 'Activate app by id',
|
|
26
|
+
description: 'Activate app by id or human-readable name. Either id or name must be provided.',
|
|
15
27
|
parameters: activateAppSchema,
|
|
16
28
|
annotations: {
|
|
17
29
|
readOnlyHint: false,
|
|
@@ -22,13 +34,14 @@ export default function activateApp(server) {
|
|
|
22
34
|
if (!driver) {
|
|
23
35
|
throw new Error('No driver found');
|
|
24
36
|
}
|
|
37
|
+
const appId = await resolveId(args.id, args.name, args.sessionId);
|
|
25
38
|
try {
|
|
26
|
-
await _activateApp(driver,
|
|
39
|
+
await _activateApp(driver, appId);
|
|
27
40
|
return {
|
|
28
41
|
content: [
|
|
29
42
|
{
|
|
30
43
|
type: 'text',
|
|
31
|
-
text: `App ${
|
|
44
|
+
text: `App ${appId} activated correctly.`,
|
|
32
45
|
},
|
|
33
46
|
],
|
|
34
47
|
};
|
|
@@ -38,7 +51,7 @@ export default function activateApp(server) {
|
|
|
38
51
|
content: [
|
|
39
52
|
{
|
|
40
53
|
type: 'text',
|
|
41
|
-
text: `Error activating the app ${
|
|
54
|
+
text: `Error activating the app ${appId}: ${err.toString()}`,
|
|
42
55
|
},
|
|
43
56
|
],
|
|
44
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activate-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/activate-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"activate-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/activate-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAe;IACjD,MAAM,iBAAiB,GAAG,CAAC;SACxB,MAAM,CAAC;QACN,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yHAAyH,CAC1H;QACH,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+HAA+H,CAChI;QACH,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;KAC1E,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;QACtC,OAAO,EAAE,oCAAoC;KAC9C,CAAC,CAAC;IAEL,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,gFAAgF;QAClF,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EACZ,IAAuC,EACvC,QAAa,EACC,EAAE;YAChB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAElE,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,OAAO,KAAK,uBAAuB;yBAC1C;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4BAA4B,KAAK,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE;yBAC7D;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/clear-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"clear-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/clear-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA8DtD"}
|
|
@@ -1,28 +1,38 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getDriver, getPlatformName, PLATFORM } from '../../session-store.js';
|
|
3
3
|
import { execute } from '../../command.js';
|
|
4
|
+
import { resolveId } from './resolve-app-id.js';
|
|
4
5
|
export default function clearApp(server) {
|
|
5
|
-
const schema = z
|
|
6
|
+
const schema = z
|
|
7
|
+
.object({
|
|
6
8
|
id: z
|
|
7
9
|
.string()
|
|
8
|
-
.
|
|
10
|
+
.optional()
|
|
11
|
+
.describe('App identifier (package name for Android, bundle ID for iOS). Takes precedence over name. Required if name is not provided.'),
|
|
12
|
+
name: z
|
|
13
|
+
.string()
|
|
14
|
+
.optional()
|
|
15
|
+
.describe('Human-readable app name (e.g. "Spotify"). Used to resolve the app id when id is not provided. Required if id is not provided.'),
|
|
9
16
|
sessionId: z
|
|
10
17
|
.string()
|
|
11
18
|
.optional()
|
|
12
19
|
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
20
|
+
})
|
|
21
|
+
.refine((args) => args.id || args.name, {
|
|
22
|
+
message: 'Either id or name must be provided',
|
|
13
23
|
});
|
|
14
24
|
server.addTool({
|
|
15
25
|
name: 'appium_mobile_clear_app',
|
|
16
|
-
description: 'Clear all user data and cache for an installed app without uninstalling it (Appium `mobile: clearApp`). ' +
|
|
26
|
+
description: 'Clear all user data and cache for an installed app without uninstalling it (Appium `mobile: clearApp`). Either id or name must be provided. ' +
|
|
17
27
|
'Android: uses `pm clear` (package name); stop the app first for reliable results on devices and emulators. ' +
|
|
18
28
|
'iOS: Simulator only (bundle ID); `mobile: clearApp` is not supported on real devices.',
|
|
19
29
|
parameters: schema,
|
|
20
30
|
execute: async (args) => {
|
|
21
|
-
const { id } = args;
|
|
22
31
|
const driver = getDriver(args.sessionId);
|
|
23
32
|
if (!driver) {
|
|
24
33
|
throw new Error('No driver found');
|
|
25
34
|
}
|
|
35
|
+
const id = await resolveId(args.id, args.name, args.sessionId);
|
|
26
36
|
try {
|
|
27
37
|
const platform = getPlatformName(driver);
|
|
28
38
|
const params = platform === PLATFORM.android ? { appId: id } : { bundleId: id };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/clear-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"clear-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/clear-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAe;IAC9C,MAAM,MAAM,GAAG,CAAC;SACb,MAAM,CAAC;QACN,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,6HAA6H,CAC9H;QACH,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+HAA+H,CAChI;QACH,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;KAC1E,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;QACtC,OAAO,EAAE,oCAAoC;KAC9C,CAAC,CAAC;IAEL,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACT,8IAA8I;YAC9I,6GAA6G;YAC7G,uFAAuF;QACzF,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM,MAAM,GACV,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBACnE,MAAM,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;gBAClD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,+BAA+B;yBACtC;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,kCAAkC,GAAG,CAAC,QAAQ,EAAE,EAAE;yBACzD;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-link.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/deep-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deep-link.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/deep-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAelC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAwGtD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getDriver, getPlatformName, isRemoteDriverSession, isAndroidUiautomator2DriverSession, isXCUITestDriverSession, PLATFORM, } from '../../session-store.js';
|
|
3
3
|
import { execute } from '../../command.js';
|
|
4
|
+
import { resolveAppId } from './resolve-app-id.js';
|
|
4
5
|
export default function deepLink(server) {
|
|
5
6
|
const schema = z.object({
|
|
6
7
|
url: z
|
|
@@ -9,7 +10,11 @@ export default function deepLink(server) {
|
|
|
9
10
|
appId: z
|
|
10
11
|
.string()
|
|
11
12
|
.optional()
|
|
12
|
-
.describe('App identifier: bundleId (iOS) or package (Android)'),
|
|
13
|
+
.describe('App identifier: bundleId (iOS) or package (Android). Takes precedence over appName.'),
|
|
14
|
+
appName: z
|
|
15
|
+
.string()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe('Human-readable app name (e.g. "Spotify"). Used to resolve the app id when appId is not provided.'),
|
|
13
18
|
waitForLaunch: z
|
|
14
19
|
.boolean()
|
|
15
20
|
.optional()
|
|
@@ -24,11 +29,15 @@ export default function deepLink(server) {
|
|
|
24
29
|
description: 'Open a deep link URL with the default or specified app. Supported on Android and iOS.',
|
|
25
30
|
parameters: schema,
|
|
26
31
|
execute: async (args) => {
|
|
27
|
-
const { url,
|
|
32
|
+
const { url, waitForLaunch } = args;
|
|
28
33
|
const driver = getDriver(args.sessionId);
|
|
29
34
|
if (!driver) {
|
|
30
35
|
throw new Error('No driver found');
|
|
31
36
|
}
|
|
37
|
+
let appId = args.appId;
|
|
38
|
+
if (!appId && args.appName) {
|
|
39
|
+
appId = await resolveAppId(args.appName, args.sessionId);
|
|
40
|
+
}
|
|
32
41
|
try {
|
|
33
42
|
if (isRemoteDriverSession(driver)) {
|
|
34
43
|
const platform = getPlatformName(driver);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-link.js","sourceRoot":"","sources":["../../../src/tools/app-management/deep-link.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,kCAAkC,EAClC,uBAAuB,EACvB,QAAQ,GACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"deep-link.js","sourceRoot":"","sources":["../../../src/tools/app-management/deep-link.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/install-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/install-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA6CxD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getDriver, getPlatformName, PLATFORM } from '../../session-store.js';
|
|
3
3
|
import { execute } from '../../command.js';
|
|
4
|
+
import { invalidateAppListCache } from './resolve-app-id.js';
|
|
4
5
|
export default function installApp(server) {
|
|
5
6
|
const schema = z.object({
|
|
6
7
|
path: z.string().describe('Path to the app file to install'),
|
|
@@ -23,6 +24,7 @@ export default function installApp(server) {
|
|
|
23
24
|
const platform = getPlatformName(driver);
|
|
24
25
|
const params = platform === PLATFORM.android ? { appPath: path } : { app: path };
|
|
25
26
|
await execute(driver, 'mobile: installApp', params);
|
|
27
|
+
invalidateAppListCache(args.sessionId);
|
|
26
28
|
return {
|
|
27
29
|
content: [
|
|
28
30
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/install-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"install-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/install-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAe;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC5D,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;KAC1E,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,gDAAgD;QAC7D,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE;YAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YACtB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM,MAAM,GACV,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBACpE,MAAM,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;gBACpD,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4BAA4B;yBACnC;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,+BAA+B,GAAG,CAAC,QAAQ,EAAE,EAAE;yBACtD;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-app-installed.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/is-app-installed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"is-app-installed.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/is-app-installed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAelC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAiF5D"}
|
|
@@ -1,30 +1,40 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getDriver, getPlatformName, isRemoteDriverSession, isAndroidUiautomator2DriverSession, isXCUITestDriverSession, PLATFORM, } from '../../session-store.js';
|
|
3
3
|
import { execute } from '../../command.js';
|
|
4
|
+
import { resolveId } from './resolve-app-id.js';
|
|
4
5
|
export default function isAppInstalled(server) {
|
|
5
|
-
const schema = z
|
|
6
|
+
const schema = z
|
|
7
|
+
.object({
|
|
6
8
|
id: z
|
|
7
9
|
.string()
|
|
8
|
-
.
|
|
10
|
+
.optional()
|
|
11
|
+
.describe('App identifier (package name for Android, bundle ID for iOS). Takes precedence over name. Required if name is not provided.'),
|
|
12
|
+
name: z
|
|
13
|
+
.string()
|
|
14
|
+
.optional()
|
|
15
|
+
.describe('Human-readable app name (e.g. "Spotify"). Used to resolve the app id when id is not provided. Required if id is not provided.'),
|
|
9
16
|
sessionId: z
|
|
10
17
|
.string()
|
|
11
18
|
.optional()
|
|
12
19
|
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
20
|
+
})
|
|
21
|
+
.refine((args) => args.id || args.name, {
|
|
22
|
+
message: 'Either id or name must be provided',
|
|
13
23
|
});
|
|
14
24
|
server.addTool({
|
|
15
25
|
name: 'appium_is_app_installed',
|
|
16
|
-
description: 'Check whether an app is installed. Package name for Android, bundle ID for iOS.',
|
|
26
|
+
description: 'Check whether an app is installed. Either id or name must be provided. Package name for Android, bundle ID for iOS.',
|
|
17
27
|
parameters: schema,
|
|
18
28
|
annotations: {
|
|
19
29
|
readOnlyHint: true,
|
|
20
30
|
openWorldHint: false,
|
|
21
31
|
},
|
|
22
32
|
execute: async (args, _context) => {
|
|
23
|
-
const { id } = args;
|
|
24
33
|
const driver = getDriver(args.sessionId);
|
|
25
34
|
if (!driver) {
|
|
26
35
|
throw new Error('No driver found');
|
|
27
36
|
}
|
|
37
|
+
const id = await resolveId(args.id, args.name, args.sessionId);
|
|
28
38
|
try {
|
|
29
39
|
let result;
|
|
30
40
|
if (isRemoteDriverSession(driver)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-app-installed.js","sourceRoot":"","sources":["../../../src/tools/app-management/is-app-installed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,kCAAkC,EAClC,uBAAuB,EACvB,QAAQ,GACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"is-app-installed.js","sourceRoot":"","sources":["../../../src/tools/app-management/is-app-installed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { FastMCP } from 'fastmcp';
|
|
2
|
+
export declare function listAppsFromDevice(applicationType?: 'User' | 'System', sessionId?: string): Promise<{
|
|
3
|
+
packageName: string;
|
|
4
|
+
appName: string;
|
|
5
|
+
}[]>;
|
|
2
6
|
export default function listApps(server: FastMCP): void;
|
|
3
7
|
//# sourceMappingURL=list-apps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/list-apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/list-apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAkClC,wBAAsB,kBAAkB,CACtC,eAAe,GAAE,MAAM,GAAG,QAAiB,EAC3C,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CA2CrD;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAoDtD"}
|
|
@@ -13,7 +13,7 @@ function normalizeListAppsResult(result) {
|
|
|
13
13
|
''),
|
|
14
14
|
}));
|
|
15
15
|
}
|
|
16
|
-
async function listAppsFromDevice(applicationType = 'User', sessionId) {
|
|
16
|
+
export async function listAppsFromDevice(applicationType = 'User', sessionId) {
|
|
17
17
|
const driver = getDriver(sessionId);
|
|
18
18
|
if (!driver) {
|
|
19
19
|
throw new Error('No driver found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../src/tools/app-management/list-apps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,kCAAkC,EAClC,uBAAuB,EACvB,QAAQ,GACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAIlC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,SAAS,uBAAuB,CAC9B,MAA2D;IAE3D,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB;YAClC,KAAK,EAAE,YAAY;YAClB,KAAa,EAAE,IAAI;YACpB,EAAE,CAAW;KAChB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,KAAK,UAAU,kBAAkB,
|
|
1
|
+
{"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../src/tools/app-management/list-apps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-app-state.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/query-app-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"query-app-state.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/query-app-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAclC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA4D3D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getDriver } from '../../session-store.js';
|
|
3
3
|
import { queryAppState as _queryAppState } from '../../command.js';
|
|
4
|
+
import { resolveId } from './resolve-app-id.js';
|
|
4
5
|
const APP_STATE_LABELS = {
|
|
5
6
|
0: 'not installed',
|
|
6
7
|
1: 'not running',
|
|
@@ -9,29 +10,39 @@ const APP_STATE_LABELS = {
|
|
|
9
10
|
4: 'running in foreground',
|
|
10
11
|
};
|
|
11
12
|
export default function queryAppState(server) {
|
|
12
|
-
const schema = z
|
|
13
|
+
const schema = z
|
|
14
|
+
.object({
|
|
13
15
|
id: z
|
|
14
16
|
.string()
|
|
15
|
-
.
|
|
17
|
+
.optional()
|
|
18
|
+
.describe('App identifier (package name for Android, bundle ID for iOS). Takes precedence over name. Required if name is not provided.'),
|
|
19
|
+
name: z
|
|
20
|
+
.string()
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('Human-readable app name (e.g. "Spotify"). Used to resolve the app id when id is not provided. Required if id is not provided.'),
|
|
16
23
|
sessionId: z
|
|
17
24
|
.string()
|
|
18
25
|
.optional()
|
|
19
26
|
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
27
|
+
})
|
|
28
|
+
.refine((args) => args.id || args.name, {
|
|
29
|
+
message: 'Either id or name must be provided',
|
|
20
30
|
});
|
|
21
31
|
server.addTool({
|
|
22
32
|
name: 'appium_query_app_state',
|
|
23
|
-
description: 'Query the current state of an app. Returns a numeric state: 0=not installed, 1=not running, 2=background (suspended), 3=background, 4=foreground.',
|
|
33
|
+
description: 'Query the current state of an app. Either id or name must be provided. Returns a numeric state: 0=not installed, 1=not running, 2=background (suspended), 3=background, 4=foreground.',
|
|
24
34
|
parameters: schema,
|
|
25
35
|
annotations: {
|
|
26
36
|
readOnlyHint: true,
|
|
27
37
|
openWorldHint: false,
|
|
28
38
|
},
|
|
29
39
|
execute: async (args) => {
|
|
30
|
-
const {
|
|
40
|
+
const { sessionId } = args;
|
|
31
41
|
const driver = getDriver(sessionId);
|
|
32
42
|
if (!driver) {
|
|
33
43
|
throw new Error('No driver found');
|
|
34
44
|
}
|
|
45
|
+
const id = await resolveId(args.id, args.name, sessionId);
|
|
35
46
|
try {
|
|
36
47
|
const state = await _queryAppState(driver, id);
|
|
37
48
|
const label = APP_STATE_LABELS[state] ?? 'unknown';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-app-state.js","sourceRoot":"","sources":["../../../src/tools/app-management/query-app-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-app-state.js","sourceRoot":"","sources":["../../../src/tools/app-management/query-app-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,gBAAgB,GAA2B;IAC/C,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,mCAAmC;IACtC,CAAC,EAAE,uBAAuB;IAC1B,CAAC,EAAE,uBAAuB;CAC3B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,MAAe;IACnD,MAAM,MAAM,GAAG,CAAC;SACb,MAAM,CAAC;QACN,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,6HAA6H,CAC9H;QACH,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+HAA+H,CAChI;QACH,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;KAC1E,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;QACtC,OAAO,EAAE,oCAAoC;KAC9C,CAAC,CAAC;IAEL,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,uLAAuL;QACzL,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE;YAC9C,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC/C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;gBACnD,OAAO;oBACL,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,KAAK,KAAK,KAAK,GAAG,EAAE;qBACjE;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,kCAAkC,EAAE,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE;yBACjE;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function invalidateAppListCache(sessionId?: string): void;
|
|
2
|
+
/**
|
|
3
|
+
* Resolve a human-readable app name to an installed package/bundle ID using
|
|
4
|
+
* fuzzy string matching. Matching priority (highest first):
|
|
5
|
+
* 1. Exact display name match (case-insensitive)
|
|
6
|
+
* 2. Display name starts with query
|
|
7
|
+
* 3. Display name contains query
|
|
8
|
+
* 4. Package name last segment contains query
|
|
9
|
+
* 5. Full package name contains query
|
|
10
|
+
*
|
|
11
|
+
* Throws if no match is found.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveId(id: string | undefined, name: string | undefined, sessionId?: string): Promise<string>;
|
|
14
|
+
export declare function resolveAppId(name: string, sessionId?: string): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=resolve-app-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-app-id.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/resolve-app-id.ts"],"names":[],"mappings":"AAsBA,wBAAgB,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAE/D;AAgDD;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
|