appium-mcp 1.8.12 → 1.8.14

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.
Files changed (68) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/command.d.ts +107 -0
  3. package/dist/command.d.ts.map +1 -0
  4. package/dist/command.js +214 -0
  5. package/dist/command.js.map +1 -0
  6. package/dist/session-store.d.ts +30 -3
  7. package/dist/session-store.d.ts.map +1 -1
  8. package/dist/session-store.js +29 -0
  9. package/dist/session-store.js.map +1 -1
  10. package/dist/tools/app-management/activate-app.d.ts.map +1 -1
  11. package/dist/tools/app-management/activate-app.js +2 -1
  12. package/dist/tools/app-management/activate-app.js.map +1 -1
  13. package/dist/tools/app-management/install-app.d.ts.map +1 -1
  14. package/dist/tools/app-management/install-app.js +4 -7
  15. package/dist/tools/app-management/install-app.js.map +1 -1
  16. package/dist/tools/app-management/terminate-app.d.ts.map +1 -1
  17. package/dist/tools/app-management/terminate-app.js +4 -7
  18. package/dist/tools/app-management/terminate-app.js.map +1 -1
  19. package/dist/tools/app-management/uninstall-app.d.ts.map +1 -1
  20. package/dist/tools/app-management/uninstall-app.js +4 -7
  21. package/dist/tools/app-management/uninstall-app.js.map +1 -1
  22. package/dist/tools/context/get-contexts.d.ts.map +1 -1
  23. package/dist/tools/context/get-contexts.js +4 -3
  24. package/dist/tools/context/get-contexts.js.map +1 -1
  25. package/dist/tools/context/switch-context.d.ts.map +1 -1
  26. package/dist/tools/context/switch-context.js +6 -5
  27. package/dist/tools/context/switch-context.js.map +1 -1
  28. package/dist/tools/interactions/click.d.ts.map +1 -1
  29. package/dist/tools/interactions/click.js +3 -4
  30. package/dist/tools/interactions/click.js.map +1 -1
  31. package/dist/tools/interactions/double-tap.d.ts.map +1 -1
  32. package/dist/tools/interactions/double-tap.js +13 -16
  33. package/dist/tools/interactions/double-tap.js.map +1 -1
  34. package/dist/tools/interactions/drag-and-drop.d.ts.map +1 -1
  35. package/dist/tools/interactions/drag-and-drop.js +4 -3
  36. package/dist/tools/interactions/drag-and-drop.js.map +1 -1
  37. package/dist/tools/interactions/find.d.ts +2 -2
  38. package/dist/tools/interactions/find.d.ts.map +1 -1
  39. package/dist/tools/interactions/find.js +1 -1
  40. package/dist/tools/interactions/find.js.map +1 -1
  41. package/dist/tools/interactions/get-page-source.d.ts.map +1 -1
  42. package/dist/tools/interactions/get-page-source.js +2 -1
  43. package/dist/tools/interactions/get-page-source.js.map +1 -1
  44. package/dist/tools/interactions/get-text.d.ts.map +1 -1
  45. package/dist/tools/interactions/get-text.js +3 -4
  46. package/dist/tools/interactions/get-text.js.map +1 -1
  47. package/dist/tools/interactions/long-press.d.ts.map +1 -1
  48. package/dist/tools/interactions/long-press.js +16 -20
  49. package/dist/tools/interactions/long-press.js.map +1 -1
  50. package/dist/tools/interactions/screenshot.d.ts +2 -4
  51. package/dist/tools/interactions/screenshot.d.ts.map +1 -1
  52. package/dist/tools/interactions/screenshot.js +3 -4
  53. package/dist/tools/interactions/screenshot.js.map +1 -1
  54. package/dist/tools/interactions/set-value.d.ts.map +1 -1
  55. package/dist/tools/interactions/set-value.js +3 -4
  56. package/dist/tools/interactions/set-value.js.map +1 -1
  57. package/dist/tools/navigations/scroll-to-element.js.map +1 -1
  58. package/dist/tools/navigations/scroll.d.ts.map +1 -1
  59. package/dist/tools/navigations/scroll.js +16 -23
  60. package/dist/tools/navigations/scroll.js.map +1 -1
  61. package/dist/tools/navigations/swipe.d.ts.map +1 -1
  62. package/dist/tools/navigations/swipe.js +13 -17
  63. package/dist/tools/navigations/swipe.js.map +1 -1
  64. package/dist/tools/test-generation/locators.d.ts.map +1 -1
  65. package/dist/tools/test-generation/locators.js +14 -6
  66. package/dist/tools/test-generation/locators.js.map +1 -1
  67. package/package.json +1 -1
  68. package/server.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [1.8.14](https://github.com/appium/appium-mcp/compare/v1.8.13...v1.8.14) (2026-01-25)
2
+
3
+ ### Miscellaneous Chores
4
+
5
+ * **deps-dev:** bump prettier from 3.8.0 to 3.8.1 ([#125](https://github.com/appium/appium-mcp/issues/125)) ([e0e83d4](https://github.com/appium/appium-mcp/commit/e0e83d4632793786c1e026761e9b75ceee836d50))
6
+ * **deps-dev:** bump typescript from 5.8.3 to 5.9.3 ([#108](https://github.com/appium/appium-mcp/issues/108)) ([3a956c9](https://github.com/appium/appium-mcp/commit/3a956c92c3ed186c99c5abbf6ca4212e8f073248))
7
+ * **deps:** bump appium-adb from 14.1.8 to 14.1.9 ([#107](https://github.com/appium/appium-mcp/issues/107)) ([0715b1b](https://github.com/appium/appium-mcp/commit/0715b1bda6bcdecf63978680aa0bd074e2f14fca))
8
+
9
+ ## [1.8.13](https://github.com/appium/appium-mcp/compare/v1.8.12...v1.8.13) (2026-01-25)
10
+
11
+ ### Bug Fixes
12
+
13
+ * removing as any ([#103](https://github.com/appium/appium-mcp/issues/103)) ([c90545c](https://github.com/appium/appium-mcp/commit/c90545c508b1dcf7aa6816d54b5de450548a4035))
14
+
1
15
  ## [1.8.12](https://github.com/appium/appium-mcp/compare/v1.8.11...v1.8.12) (2026-01-25)
2
16
 
3
17
  ### Miscellaneous Chores
@@ -0,0 +1,107 @@
1
+ import type { DriverInstance } from './session-store.js';
2
+ import { StringRecord } from '@appium/types';
3
+ /**
4
+ * Execute a driver command.
5
+ *
6
+ * This abstracts differences between Appium driver implementations and
7
+ * the WebDriver `Client` interface. Drivers are narrowed using the
8
+ * type-guard helpers from `session-store`.
9
+ *
10
+ * @param driver - The driver instance to execute the command on.
11
+ * @param cmd - The command or script name.
12
+ * @param params - Parameters for the command.
13
+ * @returns The result of the executed command.
14
+ */
15
+ export declare function execute(driver: DriverInstance, cmd: string, params: any): Promise<any>;
16
+ /**
17
+ * Activate an application by its bundle/package id on the device.
18
+ *
19
+ * Works across Android and iOS driver implementations as well as remote
20
+ * WebDriver clients where supported.
21
+ *
22
+ * @param driver - The driver instance to use.
23
+ * @param appId - Application identifier to activate.
24
+ */
25
+ export declare function activateApp(driver: DriverInstance, appId: string): Promise<void>;
26
+ /**
27
+ * Retrieve the current context (for hybrid apps, e.g. NATIVE_APP or a webview).
28
+ *
29
+ * @param driver - The driver instance to query.
30
+ * @returns The name of the current context.
31
+ */
32
+ export declare function getCurrentContext(driver: DriverInstance): Promise<string>;
33
+ /**
34
+ * List available contexts for the current session (native and webview contexts).
35
+ *
36
+ * @param driver - The driver instance to query.
37
+ * @returns Array of context names.
38
+ */
39
+ export declare function getContexts(driver: DriverInstance): Promise<string[]>;
40
+ /**
41
+ * Switch the driver's context to the supplied context name.
42
+ *
43
+ * @param driver - The driver instance to operate on.
44
+ * @param name - The context name to switch to (if omitted, behavior depends on driver).
45
+ */
46
+ export declare function setContext(driver: DriverInstance, name?: string): Promise<void>;
47
+ /**
48
+ * Set the value of an element.
49
+ *
50
+ * @param driver - The driver instance to use.
51
+ * @param elementUUID - Element identifier.
52
+ * @param text - Text to set into the element.
53
+ * @returns Driver-specific result (often void or element value).
54
+ */
55
+ export declare function setValue(driver: DriverInstance, elementUUID: string, text: string): Promise<void>;
56
+ /**
57
+ * Click an element identified by UUID.
58
+ *
59
+ * @param driver - The driver instance to use.
60
+ * @param elementUUID - Identifier of the element to click.
61
+ */
62
+ export declare function elementClick(driver: DriverInstance, elementUUID: string): Promise<void>;
63
+ /**
64
+ * Get the bounding rectangle for an element.
65
+ *
66
+ * @param driver - The driver instance to query.
67
+ * @param elementUUID - Element identifier.
68
+ * @returns A `Rect` describing the element bounds.
69
+ */
70
+ export declare function getElementRect(driver: DriverInstance, elementUUID: string): Promise<import('@appium/types').Rect>;
71
+ /**
72
+ * Get the window rectangle for the current session.
73
+ *
74
+ * @param driver - The driver instance to query.
75
+ * @returns A `Rect` describing the window bounds.
76
+ */
77
+ export declare function getWindowRect(driver: DriverInstance): Promise<import('@appium/types').Rect>;
78
+ /**
79
+ * Perform low-level input actions (W3C Actions API) on the device.
80
+ *
81
+ * @param driver - The driver instance to use.
82
+ * @param operation - Actions or action sequences to perform.
83
+ */
84
+ export declare function performActions(driver: DriverInstance, operation: StringRecord<any>[] | import('@appium/types').ActionSequence[]): Promise<void>;
85
+ /**
86
+ * Retrieve the current page/source (often XML for native screens).
87
+ *
88
+ * @param driver - The driver instance to query.
89
+ * @returns Page source as a string.
90
+ */
91
+ export declare function getPageSource(driver: DriverInstance): Promise<string>;
92
+ /**
93
+ * Capture a screenshot from the device/session.
94
+ *
95
+ * @param driver - The driver instance to capture from.
96
+ * @returns Base64-encoded PNG string.
97
+ */
98
+ export declare function getScreenshot(driver: DriverInstance): Promise<string>;
99
+ /**
100
+ * Get the visible text from an element.
101
+ *
102
+ * @param driver - The driver instance to query.
103
+ * @param elementUUID - Identifier of the element.
104
+ * @returns The element's text content.
105
+ */
106
+ export declare function getElementText(driver: DriverInstance, elementUUID: string): Promise<string>;
107
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +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,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,GAAG,CAAC,CAQd;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAQf;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,iBAQb;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,eAAe,EAAE,IAAI,CAAC,CAOvC;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,eAAe,EAAE,IAAI,CAAC,CAOvC;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,eAAe,EAAE,cAAc,EAAE,GACxE,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAO3E;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAO3E;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAOjB"}
@@ -0,0 +1,214 @@
1
+ import { isAndroidUiautomator2DriverSession, isXCUITestDriverSession, } from './session-store.js';
2
+ /**
3
+ * Execute a driver command.
4
+ *
5
+ * This abstracts differences between Appium driver implementations and
6
+ * the WebDriver `Client` interface. Drivers are narrowed using the
7
+ * type-guard helpers from `session-store`.
8
+ *
9
+ * @param driver - The driver instance to execute the command on.
10
+ * @param cmd - The command or script name.
11
+ * @param params - Parameters for the command.
12
+ * @returns The result of the executed command.
13
+ */
14
+ export async function execute(driver, cmd, params) {
15
+ if (isAndroidUiautomator2DriverSession(driver)) {
16
+ return await driver.execute(cmd, params);
17
+ }
18
+ else if (isXCUITestDriverSession(driver)) {
19
+ return await driver.execute(cmd, params);
20
+ }
21
+ else {
22
+ return await driver.executeScript(cmd, [params]);
23
+ }
24
+ }
25
+ /**
26
+ * Activate an application by its bundle/package id on the device.
27
+ *
28
+ * Works across Android and iOS driver implementations as well as remote
29
+ * WebDriver clients where supported.
30
+ *
31
+ * @param driver - The driver instance to use.
32
+ * @param appId - Application identifier to activate.
33
+ */
34
+ export async function activateApp(driver, appId) {
35
+ if (isAndroidUiautomator2DriverSession(driver)) {
36
+ await driver.activateApp(appId);
37
+ }
38
+ else if (isXCUITestDriverSession(driver)) {
39
+ await driver.activateApp(appId);
40
+ }
41
+ else {
42
+ await driver.activateApp(appId);
43
+ }
44
+ }
45
+ /**
46
+ * Retrieve the current context (for hybrid apps, e.g. NATIVE_APP or a webview).
47
+ *
48
+ * @param driver - The driver instance to query.
49
+ * @returns The name of the current context.
50
+ */
51
+ export async function getCurrentContext(driver) {
52
+ if (isAndroidUiautomator2DriverSession(driver)) {
53
+ return await driver.getCurrentContext();
54
+ }
55
+ else if (isXCUITestDriverSession(driver)) {
56
+ return await driver.getCurrentContext();
57
+ }
58
+ throw new Error('getCurrentContext is not supported');
59
+ }
60
+ /**
61
+ * List available contexts for the current session (native and webview contexts).
62
+ *
63
+ * @param driver - The driver instance to query.
64
+ * @returns Array of context names.
65
+ */
66
+ export async function getContexts(driver) {
67
+ if (isAndroidUiautomator2DriverSession(driver)) {
68
+ return await driver.getContexts();
69
+ }
70
+ else if (isXCUITestDriverSession(driver)) {
71
+ return (await driver.getContexts());
72
+ }
73
+ throw new Error('getContexts is not supported');
74
+ }
75
+ /**
76
+ * Switch the driver's context to the supplied context name.
77
+ *
78
+ * @param driver - The driver instance to operate on.
79
+ * @param name - The context name to switch to (if omitted, behavior depends on driver).
80
+ */
81
+ export async function setContext(driver, name) {
82
+ if (isAndroidUiautomator2DriverSession(driver)) {
83
+ await driver.setContext(name);
84
+ }
85
+ else if (isXCUITestDriverSession(driver)) {
86
+ await driver.setContext(name || null);
87
+ }
88
+ throw new Error('setContext is not supported');
89
+ }
90
+ /**
91
+ * Set the value of an element.
92
+ *
93
+ * @param driver - The driver instance to use.
94
+ * @param elementUUID - Element identifier.
95
+ * @param text - Text to set into the element.
96
+ * @returns Driver-specific result (often void or element value).
97
+ */
98
+ export async function setValue(driver, elementUUID, text) {
99
+ if (isAndroidUiautomator2DriverSession(driver)) {
100
+ return await driver.setValue(text, elementUUID);
101
+ }
102
+ else if (isXCUITestDriverSession(driver)) {
103
+ return await driver.setValue(text, elementUUID);
104
+ }
105
+ return await driver.elementSendKeys(elementUUID, text);
106
+ }
107
+ /**
108
+ * Click an element identified by UUID.
109
+ *
110
+ * @param driver - The driver instance to use.
111
+ * @param elementUUID - Identifier of the element to click.
112
+ */
113
+ export async function elementClick(driver, elementUUID) {
114
+ if (isAndroidUiautomator2DriverSession(driver)) {
115
+ return await driver.click(elementUUID);
116
+ }
117
+ else if (isXCUITestDriverSession(driver)) {
118
+ return await driver.click(elementUUID);
119
+ }
120
+ return await driver.elementClick(elementUUID);
121
+ }
122
+ /**
123
+ * Get the bounding rectangle for an element.
124
+ *
125
+ * @param driver - The driver instance to query.
126
+ * @param elementUUID - Element identifier.
127
+ * @returns A `Rect` describing the element bounds.
128
+ */
129
+ export async function getElementRect(driver, elementUUID) {
130
+ if (isAndroidUiautomator2DriverSession(driver)) {
131
+ return await driver.getElementRect(elementUUID);
132
+ }
133
+ else if (isXCUITestDriverSession(driver)) {
134
+ return await driver.getElementRect(elementUUID);
135
+ }
136
+ return await driver.getElementRect(elementUUID);
137
+ }
138
+ /**
139
+ * Get the window rectangle for the current session.
140
+ *
141
+ * @param driver - The driver instance to query.
142
+ * @returns A `Rect` describing the window bounds.
143
+ */
144
+ export async function getWindowRect(driver) {
145
+ if (isAndroidUiautomator2DriverSession(driver)) {
146
+ return await driver.getWindowRect();
147
+ }
148
+ else if (isXCUITestDriverSession(driver)) {
149
+ return await driver.getWindowRect();
150
+ }
151
+ return await driver.getWindowRect();
152
+ }
153
+ /**
154
+ * Perform low-level input actions (W3C Actions API) on the device.
155
+ *
156
+ * @param driver - The driver instance to use.
157
+ * @param operation - Actions or action sequences to perform.
158
+ */
159
+ export async function performActions(driver, operation) {
160
+ if (isAndroidUiautomator2DriverSession(driver)) {
161
+ return await driver.performActions(operation);
162
+ }
163
+ else if (isXCUITestDriverSession(driver)) {
164
+ return await driver.performActions(operation);
165
+ }
166
+ return await driver.performActions(operation);
167
+ }
168
+ /**
169
+ * Retrieve the current page/source (often XML for native screens).
170
+ *
171
+ * @param driver - The driver instance to query.
172
+ * @returns Page source as a string.
173
+ */
174
+ export async function getPageSource(driver) {
175
+ if (isAndroidUiautomator2DriverSession(driver)) {
176
+ return await driver.getPageSource();
177
+ }
178
+ else if (isXCUITestDriverSession(driver)) {
179
+ return await driver.getPageSource();
180
+ }
181
+ return await driver.getPageSource();
182
+ }
183
+ /**
184
+ * Capture a screenshot from the device/session.
185
+ *
186
+ * @param driver - The driver instance to capture from.
187
+ * @returns Base64-encoded PNG string.
188
+ */
189
+ export async function getScreenshot(driver) {
190
+ if (isAndroidUiautomator2DriverSession(driver)) {
191
+ return await driver.getScreenshot();
192
+ }
193
+ else if (isXCUITestDriverSession(driver)) {
194
+ return await driver.getScreenshot();
195
+ }
196
+ return await driver.takeScreenshot();
197
+ }
198
+ /**
199
+ * Get the visible text from an element.
200
+ *
201
+ * @param driver - The driver instance to query.
202
+ * @param elementUUID - Identifier of the element.
203
+ * @returns The element's text content.
204
+ */
205
+ export async function getElementText(driver, elementUUID) {
206
+ if (isAndroidUiautomator2DriverSession(driver)) {
207
+ return await driver.getText(elementUUID);
208
+ }
209
+ else if (isXCUITestDriverSession(driver)) {
210
+ return await driver.getText(elementUUID);
211
+ }
212
+ return await driver.getElementText(elementUUID);
213
+ }
214
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { AndroidUiautomator2Driver } from 'appium-uiautomator2-driver';
2
2
  import { XCUITestDriver } from 'appium-xcuitest-driver';
3
3
  import type { Client } from 'webdriver';
4
+ export type DriverInstance = Client | AndroidUiautomator2Driver | XCUITestDriver;
5
+ export type NullableDriverInstance = DriverInstance | null;
4
6
  export declare const PLATFORM: {
5
7
  android: string;
6
8
  ios: string;
@@ -14,9 +16,34 @@ export declare const PLATFORM: {
14
16
  * @param driver - The driver instance to inspect (may be a Client, AndroidUiautomator2Driver, XCUITestDriver, or null).
15
17
  * @returns `true` if `driver` is non-null and has a string `sessionId`; otherwise `false`.
16
18
  */
17
- export declare function isRemoteDriverSession(driver: Client | AndroidUiautomator2Driver | XCUITestDriver | null): boolean;
18
- export declare function setSession(d: Client | AndroidUiautomator2Driver | XCUITestDriver, id: string | null): void;
19
- export declare function getDriver(): Client | AndroidUiautomator2Driver | XCUITestDriver;
19
+ export declare function isRemoteDriverSession(driver: NullableDriverInstance): boolean;
20
+ /**
21
+ * Type-guard that asserts the provided driver is an Android UiAutomator2 driver.
22
+ *
23
+ * Performs a runtime `instanceof` check. When this function returns `true`,
24
+ * TypeScript will narrow the variable's type to `AndroidUiautomator2Driver`.
25
+ * Use this helper to safely call Android-specific driver methods without
26
+ * casting.
27
+ *
28
+ * @param driver - The driver instance to test (may be a `Client`,
29
+ * `AndroidUiautomator2Driver`, `XCUITestDriver`, or `null`).
30
+ * @returns `true` if `driver` is an `AndroidUiautomator2Driver`.
31
+ */
32
+ export declare function isAndroidUiautomator2DriverSession(driver: NullableDriverInstance): driver is AndroidUiautomator2Driver;
33
+ /**
34
+ * Type-guard that asserts the provided driver is an XCUITest (iOS) driver.
35
+ *
36
+ * Performs a runtime `instanceof` check and narrows the type to
37
+ * `XCUITestDriver` when true. This lets callers invoke iOS-specific driver
38
+ * APIs without explicit casts.
39
+ *
40
+ * @param driver - The driver instance to test (may be a `Client`,
41
+ * `AndroidUiautomator2Driver`, `XCUITestDriver`, or `null`).
42
+ * @returns `true` if `driver` is an `XCUITestDriver`.
43
+ */
44
+ export declare function isXCUITestDriverSession(driver: NullableDriverInstance): driver is XCUITestDriver;
45
+ export declare function setSession(d: DriverInstance, id: string | null): void;
46
+ export declare function getDriver(): NullableDriverInstance;
20
47
  export declare function getSessionId(): string | null;
21
48
  export declare function isDeletingSessionInProgress(): boolean;
22
49
  export declare function hasActiveSession(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOxC,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,yBAAyB,GAAG,cAAc,GAAG,IAAI,GACjE,OAAO,CAQT;AAED,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,GAAG,yBAAyB,GAAG,cAAc,EACtD,EAAE,EAAE,MAAM,GAAG,IAAI,QAQlB;AAED,wBAAgB,SAAS,IACrB,MAAM,GACN,yBAAyB,GACzB,cAAc,CAEjB;AAED,wBAAgB,YAAY,kBAE3B;AAED,wBAAgB,2BAA2B,YAE1C;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAiC1D;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,GAAG,KAAG,MAe7C,CAAC"}
1
+ {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAQxC,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,yBAAyB,GACzB,cAAc,CAAC;AACnB,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG,IAAI,CAAC;AAE3D,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAQ7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,sBAAsB,GAC7B,MAAM,IAAI,yBAAyB,CAErC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,sBAAsB,GAC7B,MAAM,IAAI,cAAc,CAE1B;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,QAO9D;AAED,wBAAgB,SAAS,IAAI,sBAAsB,CAElD;AAED,wBAAgB,YAAY,kBAE3B;AAED,wBAAgB,2BAA2B,YAE1C;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAiC1D;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,GAAG,KAAG,MAe7C,CAAC"}
@@ -24,6 +24,35 @@ export function isRemoteDriverSession(driver) {
24
24
  }
25
25
  return false;
26
26
  }
27
+ /**
28
+ * Type-guard that asserts the provided driver is an Android UiAutomator2 driver.
29
+ *
30
+ * Performs a runtime `instanceof` check. When this function returns `true`,
31
+ * TypeScript will narrow the variable's type to `AndroidUiautomator2Driver`.
32
+ * Use this helper to safely call Android-specific driver methods without
33
+ * casting.
34
+ *
35
+ * @param driver - The driver instance to test (may be a `Client`,
36
+ * `AndroidUiautomator2Driver`, `XCUITestDriver`, or `null`).
37
+ * @returns `true` if `driver` is an `AndroidUiautomator2Driver`.
38
+ */
39
+ export function isAndroidUiautomator2DriverSession(driver) {
40
+ return driver instanceof AndroidUiautomator2Driver;
41
+ }
42
+ /**
43
+ * Type-guard that asserts the provided driver is an XCUITest (iOS) driver.
44
+ *
45
+ * Performs a runtime `instanceof` check and narrows the type to
46
+ * `XCUITestDriver` when true. This lets callers invoke iOS-specific driver
47
+ * APIs without explicit casts.
48
+ *
49
+ * @param driver - The driver instance to test (may be a `Client`,
50
+ * `AndroidUiautomator2Driver`, `XCUITestDriver`, or `null`).
51
+ * @returns `true` if `driver` is an `XCUITestDriver`.
52
+ */
53
+ export function isXCUITestDriverSession(driver) {
54
+ return driver instanceof XCUITestDriver;
55
+ }
27
56
  export function setSession(d, id) {
28
57
  driver = d;
29
58
  sessionId = id;
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../src/session-store.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;AAIlC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAyCzD"}
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;AAKlC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAyCzD"}
@@ -1,5 +1,6 @@
1
1
  import { getDriver } from '../../session-store.js';
2
2
  import { z } from 'zod';
3
+ import { activateApp as _activateApp } from '../../command.js';
3
4
  export default function activateApp(server) {
4
5
  const activateAppSchema = z.object({
5
6
  id: z.string().describe('The app id'),
@@ -18,7 +19,7 @@ export default function activateApp(server) {
18
19
  throw new Error('No driver found');
19
20
  }
20
21
  try {
21
- await driver.activateApp(args.id);
22
+ await _activateApp(driver, args.id);
22
23
  return {
23
24
  content: [
24
25
  {
@@ -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;AAExB,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAe;IACjD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;QACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,oBAAoB;QACjC,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,OAAY,EAAgB,EAAE;YAClE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,CAAC;gBACH,MAAO,MAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3C,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,OAAO,IAAI,CAAC,EAAE,uBAAuB;yBAC5C;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4BAA4B,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE;yBAC/D;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,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;AAE/D,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAe;IACjD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;QACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,oBAAoB;QACjC,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,OAAY,EAAgB,EAAE;YAClE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,OAAO,IAAI,CAAC,EAAE,uBAAuB;yBAC5C;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4BAA4B,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE;yBAC/D;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -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;AASlC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA4CxD"}
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;AAKlC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAwCxD"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { getDriver, getPlatformName, isRemoteDriverSession, } from '../../session-store.js';
2
+ import { getDriver, getPlatformName, PLATFORM } from '../../session-store.js';
3
+ import { execute } from '../../command.js';
3
4
  export default function installApp(server) {
4
5
  const schema = z.object({
5
6
  path: z.string().describe('Path to the app file to install'),
@@ -16,12 +17,8 @@ export default function installApp(server) {
16
17
  }
17
18
  try {
18
19
  const platform = getPlatformName(driver);
19
- const params = platform === 'Android' ? { appPath: path } : { app: path };
20
- const _ok = isRemoteDriverSession(driver)
21
- ? await driver.executeScript('mobile: installApp', [
22
- params,
23
- ])
24
- : await driver.execute('mobile: installApp', params);
20
+ const params = platform === PLATFORM.android ? { appPath: path } : { app: path };
21
+ await execute(driver, 'mobile: installApp', params);
25
22
  return {
26
23
  content: [
27
24
  {
@@ -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,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,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;KAC7D,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,MAAM,SAAS,EAAE,CAAC;YACjC,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,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC;oBACvC,CAAC,CAAC,MAAO,MAAiB,CAAC,aAAa,CAAC,oBAAoB,EAAE;wBAC3D,MAAM;qBACP,CAAC;oBACJ,CAAC,CAAC,MAAO,MAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;gBAChE,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
+ {"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;AAE3C,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;KAC7D,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,MAAM,SAAS,EAAE,CAAC;YACjC,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,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":"terminate-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/terminate-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AASlC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA8C1D"}
1
+ {"version":3,"file":"terminate-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/terminate-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKlC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA0C1D"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { getDriver, getPlatformName, isRemoteDriverSession, } from '../../session-store.js';
2
+ import { getDriver, getPlatformName, PLATFORM } from '../../session-store.js';
3
+ import { execute } from '../../command.js';
3
4
  export default function terminateApp(server) {
4
5
  const schema = z.object({
5
6
  id: z
@@ -18,12 +19,8 @@ export default function terminateApp(server) {
18
19
  }
19
20
  try {
20
21
  const platform = getPlatformName(driver);
21
- const params = platform === 'Android' ? { appId: id } : { bundleId: id };
22
- const _ok = isRemoteDriverSession(driver)
23
- ? await driver.executeScript('mobile: terminateApp', [
24
- params,
25
- ])
26
- : await driver.execute('mobile: terminateApp', params);
22
+ const params = platform === PLATFORM.android ? { appId: id } : { bundleId: id };
23
+ await execute(driver, 'mobile: terminateApp', params);
27
24
  return {
28
25
  content: [
29
26
  {
@@ -1 +1 @@
1
- {"version":3,"file":"terminate-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/terminate-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAe;IAClD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,CAAC,8DAA8D,CAAC;KAC5E,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,iCAAiC;QAC9C,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE;YAC9C,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,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,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAC5D,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC;oBACvC,CAAC,CAAC,MAAO,MAAiB,CAAC,aAAa,CAAC,sBAAsB,EAAE;wBAC7D,MAAM;qBACP,CAAC;oBACJ,CAAC,CAAC,MAAO,MAAc,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;gBAClE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,6BAA6B;yBACpC;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,iCAAiC,GAAG,CAAC,QAAQ,EAAE,EAAE;yBACxD;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"terminate-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/terminate-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;AAE3C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAe;IAClD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,CAAC,8DAA8D,CAAC;KAC5E,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,iCAAiC;QAC9C,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE;YAC9C,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,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,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBACnE,MAAM,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC;gBACtD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,6BAA6B;yBACpC;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,iCAAiC,GAAG,CAAC,QAAQ,EAAE,EAAE;yBACxD;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/uninstall-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AASlC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA8C1D"}
1
+ {"version":3,"file":"uninstall-app.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/uninstall-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKlC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA0C1D"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { getDriver, getPlatformName, isRemoteDriverSession, } from '../../session-store.js';
2
+ import { getDriver, getPlatformName, PLATFORM } from '../../session-store.js';
3
+ import { execute } from '../../command.js';
3
4
  export default function uninstallApp(server) {
4
5
  const schema = z.object({
5
6
  id: z
@@ -18,12 +19,8 @@ export default function uninstallApp(server) {
18
19
  }
19
20
  try {
20
21
  const platform = getPlatformName(driver);
21
- const params = platform === 'Android' ? { appId: id } : { bundleId: id };
22
- const _ok = isRemoteDriverSession(driver)
23
- ? await driver.executeScript('mobile: removeApp', [
24
- params,
25
- ])
26
- : await driver.execute('mobile: removeApp', params);
22
+ const params = platform === PLATFORM.android ? { appId: id } : { bundleId: id };
23
+ await execute(driver, 'mobile: removeApp', params);
27
24
  return {
28
25
  content: [
29
26
  {
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/uninstall-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAe;IAClD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,CAAC,8DAA8D,CAAC;KAC5E,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,mCAAmC;QAChD,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE;YAC9C,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,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,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAC5D,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC;oBACvC,CAAC,CAAC,MAAO,MAAiB,CAAC,aAAa,CAAC,mBAAmB,EAAE;wBAC1D,MAAM;qBACP,CAAC;oBACJ,CAAC,CAAC,MAAO,MAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,8BAA8B;yBACrC;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,iCAAiC,GAAG,CAAC,QAAQ,EAAE,EAAE;yBACxD;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"uninstall-app.js","sourceRoot":"","sources":["../../../src/tools/app-management/uninstall-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;AAE3C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAe;IAClD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,CAAC,8DAA8D,CAAC;KAC5E,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,mCAAmC;QAChD,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE;YAC9C,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,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,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBACnE,MAAM,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;gBACnD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,8BAA8B;yBACrC;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,iCAAiC,GAAG,CAAC,QAAQ,EAAE,EAAE;yBACxD;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-contexts.d.ts","sourceRoot":"","sources":["../../../src/tools/context/get-contexts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AASlC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAoEzD"}
1
+ {"version":3,"file":"get-contexts.d.ts","sourceRoot":"","sources":["../../../src/tools/context/get-contexts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAkBlC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAoEzD"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
- import { getDriver, isRemoteDriverSession } from '../../session-store.js';
2
+ import { getDriver, isRemoteDriverSession, } from '../../session-store.js';
3
3
  import { createUIResource, createContextSwitcherUI, addUIResourceToResponse, } from '../../ui/mcp-ui-utils.js';
4
+ import { getCurrentContext, getContexts as _getContexts, } from '../../command.js';
4
5
  export default function getContexts(server) {
5
6
  server.addTool({
6
7
  name: 'appium_get_contexts',
@@ -20,8 +21,8 @@ export default function getContexts(server) {
20
21
  }
21
22
  try {
22
23
  const [currentContext, contexts] = await Promise.all([
23
- driver.getCurrentContext().catch(() => null),
24
- driver.getContexts().catch(() => []),
24
+ getCurrentContext(driver).catch(() => null),
25
+ _getContexts(driver).catch(() => []),
25
26
  ]);
26
27
  if (!contexts || contexts.length === 0) {
27
28
  return {