appium-mcp 1.1.5 → 1.1.8
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/.github/workflows/publish.yml +6 -1
- package/CHANGELOG.md +19 -0
- package/dist/locators/generate-all-locators.js +2 -1
- package/dist/locators/generate-all-locators.js.map +1 -1
- package/dist/resources/index.js +2 -1
- package/dist/resources/index.js.map +1 -1
- package/dist/tools/answer-appium.js +2 -1
- package/dist/tools/answer-appium.js.map +1 -1
- package/dist/tools/boot-simulator.js +2 -1
- package/dist/tools/boot-simulator.js.map +1 -1
- package/dist/tools/delete-session.js +2 -1
- package/dist/tools/delete-session.js.map +1 -1
- package/dist/tools/documentation/index.js +7 -6
- package/dist/tools/documentation/index.js.map +1 -1
- package/dist/tools/documentation/reasoning-rag.js +16 -15
- package/dist/tools/documentation/reasoning-rag.js.map +1 -1
- package/dist/tools/documentation/sentence-transformers-embeddings.js +8 -7
- package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -1
- package/dist/tools/documentation/simple-pdf-indexer.js +48 -47
- package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -1
- package/dist/tools/install-wda.js +6 -5
- package/dist/tools/install-wda.js.map +1 -1
- package/dist/tools/locators.js +2 -3
- package/dist/tools/locators.js.map +1 -1
- package/dist/tools/scroll.js +5 -4
- package/dist/tools/scroll.js.map +1 -1
- package/dist/tools/session-store.js +6 -5
- package/dist/tools/session-store.js.map +1 -1
- package/package.json +9 -5
- package/src/locators/generate-all-locators.ts +2 -1
- package/src/resources/index.ts +2 -1
- package/src/tools/README.md +1 -1
- package/src/tools/answer-appium.ts +2 -1
- package/src/tools/boot-simulator.ts +2 -1
- package/src/tools/delete-session.ts +2 -1
- package/src/tools/documentation/index.ts +7 -6
- package/src/tools/documentation/reasoning-rag.ts +16 -15
- package/src/tools/documentation/sentence-transformers-embeddings.ts +9 -7
- package/src/tools/documentation/simple-pdf-indexer.ts +48 -51
- package/src/tools/install-wda.ts +6 -5
- package/src/tools/locators.ts +3 -4
- package/src/tools/scroll.ts +5 -4
- package/src/tools/session-store.ts +6 -5
package/src/tools/locators.ts
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { z } from 'zod';
|
|
13
13
|
import { getDriver } from './session-store.js';
|
|
14
14
|
import { generateAllElementLocators } from '../locators/generate-all-locators.js';
|
|
15
|
+
import log from '../locators/logger.js';
|
|
15
16
|
|
|
16
17
|
export default function generateLocators(server: any): void {
|
|
17
18
|
server.addTool({
|
|
@@ -34,8 +35,6 @@ export default function generateLocators(server: any): void {
|
|
|
34
35
|
);
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
console.log('Getting page source');
|
|
38
|
-
|
|
39
38
|
try {
|
|
40
39
|
// Get the page source from the driver
|
|
41
40
|
const pageSource = await driver.getPageSource();
|
|
@@ -71,11 +70,11 @@ export default function generateLocators(server: any): void {
|
|
|
71
70
|
],
|
|
72
71
|
};
|
|
73
72
|
} catch (parseError: any) {
|
|
74
|
-
|
|
73
|
+
log.error('Error parsing XML:', parseError);
|
|
75
74
|
throw new Error(`Failed to parse XML: ${parseError.message}`);
|
|
76
75
|
}
|
|
77
76
|
} catch (error: any) {
|
|
78
|
-
|
|
77
|
+
log.error('Error getting page source:', error);
|
|
79
78
|
throw new Error(`Failed to get page source: ${error.message}`);
|
|
80
79
|
}
|
|
81
80
|
},
|
package/src/tools/scroll.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getDriver, getPlatformName } from './session-store.js';
|
|
3
|
+
import log from '../locators/logger.js';
|
|
3
4
|
|
|
4
5
|
export default function scroll(server: any): void {
|
|
5
6
|
server.addTool({
|
|
@@ -25,7 +26,7 @@ export default function scroll(server: any): void {
|
|
|
25
26
|
|
|
26
27
|
try {
|
|
27
28
|
const { width, height } = await driver.getWindowSize();
|
|
28
|
-
|
|
29
|
+
log.info('Device screen size:', { width, height });
|
|
29
30
|
const startX = Math.floor(width / 2);
|
|
30
31
|
// calculate start and end Y positions for scrolling depending on the direction
|
|
31
32
|
// startY is at 80% of the height, endY is at 20% of the height for downward scroll
|
|
@@ -42,8 +43,8 @@ export default function scroll(server: any): void {
|
|
|
42
43
|
? Math.floor(height * 0.2)
|
|
43
44
|
: Math.floor(height * 0.8);
|
|
44
45
|
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
log.info('Going to scroll from:', { startX, startY });
|
|
47
|
+
log.info('Going to scroll to:', { startX, endY });
|
|
47
48
|
|
|
48
49
|
if (getPlatformName(driver) === 'Android') {
|
|
49
50
|
await driver.performActions([
|
|
@@ -60,7 +61,7 @@ export default function scroll(server: any): void {
|
|
|
60
61
|
],
|
|
61
62
|
},
|
|
62
63
|
]);
|
|
63
|
-
|
|
64
|
+
log.info('Scroll action completed successfully.');
|
|
64
65
|
} else if (getPlatformName(driver) === 'iOS') {
|
|
65
66
|
await driver.execute('mobile: scroll', {
|
|
66
67
|
direction: args.direction,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AndroidUiautomator2Driver } from 'appium-uiautomator2-driver';
|
|
2
2
|
import { XCUITestDriver } from 'appium-xcuitest-driver';
|
|
3
|
+
import log from '../locators/logger.js';
|
|
3
4
|
|
|
4
5
|
let driver: any = null;
|
|
5
6
|
let sessionId: string | null = null;
|
|
@@ -33,13 +34,13 @@ export function hasActiveSession(): boolean {
|
|
|
33
34
|
export async function safeDeleteSession(): Promise<boolean> {
|
|
34
35
|
// Check if there's no session to delete
|
|
35
36
|
if (!driver || !sessionId) {
|
|
36
|
-
|
|
37
|
+
log.info('No active session to delete.');
|
|
37
38
|
return false;
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
// Check if deletion is already in progress
|
|
41
42
|
if (isDeletingSession) {
|
|
42
|
-
|
|
43
|
+
log.info('Session deletion already in progress, skipping...');
|
|
43
44
|
return false;
|
|
44
45
|
}
|
|
45
46
|
|
|
@@ -47,17 +48,17 @@ export async function safeDeleteSession(): Promise<boolean> {
|
|
|
47
48
|
isDeletingSession = true;
|
|
48
49
|
|
|
49
50
|
try {
|
|
50
|
-
|
|
51
|
+
log.info('Deleting current session');
|
|
51
52
|
await driver.deleteSession();
|
|
52
53
|
|
|
53
54
|
// Clear the session from store
|
|
54
55
|
driver = null;
|
|
55
56
|
sessionId = null;
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
log.info('Session deleted successfully.');
|
|
58
59
|
return true;
|
|
59
60
|
} catch (error) {
|
|
60
|
-
|
|
61
|
+
log.error('Error deleting session:', error);
|
|
61
62
|
throw error;
|
|
62
63
|
} finally {
|
|
63
64
|
// Always release lock
|