@xiuchang-midscene/android 2.0.0 → 2.0.2
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/es/cli.mjs +424 -22
- package/dist/es/index.mjs +420 -18
- package/dist/es/mcp-server.mjs +423 -21
- package/dist/lib/cli.js +426 -24
- package/dist/lib/index.js +420 -18
- package/dist/lib/mcp-server.js +425 -23
- package/dist/types/index.d.ts +42 -15
- package/dist/types/mcp-server.d.ts +45 -18
- package/package.json +5 -5
- package/src/app-knowledge/screenshots/fliggy/fliggy-qwen/.gitkeep +0 -0
- package/src/app-knowledge/screenshots/fliggy/flight-detail/.gitkeep +0 -0
- package/src/app-knowledge/screenshots/fliggy/flight-list/.gitkeep +0 -0
- package/src/app-knowledge/screenshots/fliggy/flight-order/.gitkeep +0 -0
- package/src/app-knowledge/screenshots/fliggy/home/home-page-annotated.jpg +0 -0
- package/src/app-knowledge/screenshots/fliggy/hotel-detail/.gitkeep +0 -0
- package/src/app-knowledge/screenshots/fliggy/hotel-list/.gitkeep +0 -0
- package/src/app-knowledge/screenshots/fliggy/hotel-order/.gitkeep +0 -0
- package/src/app-knowledge/screenshots/fliggy/search-default/search-default-annotated.jpg +0 -0
- package/src/app-knowledge/screenshots/fliggy/search-result/search-result-annotated.jpg +0 -0
- package/src/app-knowledge/screenshots/fliggy/search-result/search-result-giraffe-annotated.jpg +0 -0
- package/src/app-knowledge/screenshots/fliggy/search-result/search-result-quickfilter-annotated.jpg +0 -0
- package/src/app-knowledge/screenshots/fliggy/search-sug/search-sug-annotated.jpg +0 -0
- package/src/app-knowledge/screenshots/fliggy/ticket-detail/.gitkeep +0 -0
- package/src/app-knowledge/screenshots/fliggy/ticket-order/.gitkeep +0 -0
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { AbstractInterface } from '@midscene/core/device';
|
|
2
|
-
import type { ActionParam } from '@midscene/core';
|
|
3
|
-
import type { ActionReturn } from '@midscene/core';
|
|
1
|
+
import { AbstractInterface } from '@xiuchang-midscene/core/device';
|
|
2
|
+
import type { ActionParam } from '@xiuchang-midscene/core';
|
|
3
|
+
import type { ActionReturn } from '@xiuchang-midscene/core';
|
|
4
4
|
import { ADB } from 'appium-adb';
|
|
5
|
-
import { Agent } from '@midscene/core/agent';
|
|
6
|
-
import { AgentOpt } from '@midscene/core/agent';
|
|
7
|
-
import { AndroidDeviceInputOpt } from '@midscene/core/device';
|
|
8
|
-
import { AndroidDeviceOpt } from '@midscene/core/device';
|
|
9
|
-
import { BaseMCPServer } from '@midscene/shared/mcp';
|
|
10
|
-
import { BaseMidsceneTools } from '@midscene/shared/mcp';
|
|
11
|
-
import { DeviceAction } from '@midscene/core';
|
|
12
|
-
import type { ElementInfo } from '@midscene/shared/extractor';
|
|
13
|
-
import { InterfaceType } from '@midscene/core';
|
|
14
|
-
import { LaunchMCPServerOptions } from '@midscene/shared/mcp';
|
|
15
|
-
import { LaunchMCPServerResult } from '@midscene/shared/mcp';
|
|
16
|
-
import { Point } from '@midscene/core';
|
|
17
|
-
import { Size } from '@midscene/core';
|
|
18
|
-
import { Tool } from '@midscene/shared/mcp';
|
|
19
|
-
import { ToolDefinition } from '@midscene/shared/mcp';
|
|
5
|
+
import { Agent } from '@xiuchang-midscene/core/agent';
|
|
6
|
+
import { AgentOpt } from '@xiuchang-midscene/core/agent';
|
|
7
|
+
import { AndroidDeviceInputOpt } from '@xiuchang-midscene/core/device';
|
|
8
|
+
import { AndroidDeviceOpt } from '@xiuchang-midscene/core/device';
|
|
9
|
+
import { BaseMCPServer } from '@xiuchang-midscene/shared/mcp';
|
|
10
|
+
import { BaseMidsceneTools } from '@xiuchang-midscene/shared/mcp';
|
|
11
|
+
import { DeviceAction } from '@xiuchang-midscene/core';
|
|
12
|
+
import type { ElementInfo } from '@xiuchang-midscene/shared/extractor';
|
|
13
|
+
import { InterfaceType } from '@xiuchang-midscene/core';
|
|
14
|
+
import { LaunchMCPServerOptions } from '@xiuchang-midscene/shared/mcp';
|
|
15
|
+
import { LaunchMCPServerResult } from '@xiuchang-midscene/shared/mcp';
|
|
16
|
+
import { Point } from '@xiuchang-midscene/core';
|
|
17
|
+
import { Size } from '@xiuchang-midscene/core';
|
|
18
|
+
import { Tool } from '@xiuchang-midscene/shared/mcp';
|
|
19
|
+
import { ToolDefinition } from '@xiuchang-midscene/shared/mcp';
|
|
20
20
|
|
|
21
21
|
declare type ActionArgs<T extends DeviceAction> = [ActionParam<T>] extends [undefined] ? [] : [ActionParam<T>];
|
|
22
22
|
|
|
@@ -37,6 +37,10 @@ declare class AndroidAgent extends Agent<AndroidDevice> {
|
|
|
37
37
|
* User-provided app name to package name mapping
|
|
38
38
|
*/
|
|
39
39
|
private appNameMapping;
|
|
40
|
+
/**
|
|
41
|
+
* Cache the last loaded knowledge package name to avoid redundant setAIActContext calls
|
|
42
|
+
*/
|
|
43
|
+
private lastKnowledgePackageName;
|
|
40
44
|
constructor(device: AndroidDevice, opts?: AndroidAgentOpt);
|
|
41
45
|
/**
|
|
42
46
|
* Launch an Android app or URL
|
|
@@ -48,6 +52,29 @@ declare class AndroidAgent extends Agent<AndroidDevice> {
|
|
|
48
52
|
* @param command - ADB shell command to execute
|
|
49
53
|
*/
|
|
50
54
|
runAdbShell(command: string): Promise<string>;
|
|
55
|
+
/**
|
|
56
|
+
* Load app-specific business knowledge for the given package name.
|
|
57
|
+
* If knowledge is found, it will be injected via setAIActContext so that
|
|
58
|
+
* all AI methods (aiAct, aiAssert, aiQuery, aiBoolean, etc.) can use it.
|
|
59
|
+
* Also sets up screenshot knowledge provider for planning-time injection.
|
|
60
|
+
* Skips if the same package knowledge is already loaded.
|
|
61
|
+
* @param packageName - The Android package name (e.g. "com.taobao.trip")
|
|
62
|
+
*/
|
|
63
|
+
loadAppKnowledge(packageName: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Resolve annotated reference screenshots for a given page to base64 data URLs.
|
|
66
|
+
* @param pageId - The page identifier
|
|
67
|
+
* @param packageName - The Android package name
|
|
68
|
+
* @returns Array of base64 image data objects, empty if no screenshots found
|
|
69
|
+
*/
|
|
70
|
+
private resolveReferenceScreenshots;
|
|
71
|
+
/**
|
|
72
|
+
* Detect the foreground Android app and automatically load its business knowledge.
|
|
73
|
+
* Uses ADB to get the currently resumed activity and extract the package name,
|
|
74
|
+
* then calls loadAppKnowledge() with the detected package name.
|
|
75
|
+
* This is safe to call repeatedly — loadAppKnowledge() skips if already loaded.
|
|
76
|
+
*/
|
|
77
|
+
detectAndLoadAppKnowledge(): Promise<void>;
|
|
51
78
|
private createActionWrapper;
|
|
52
79
|
}
|
|
53
80
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xiuchang-midscene/android",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Android automation library for Midscene",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Android UI automation",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"bin",
|
|
20
20
|
"dist",
|
|
21
|
+
"src/app-knowledge/screenshots",
|
|
21
22
|
"README.md"
|
|
22
23
|
],
|
|
23
24
|
"exports": {
|
|
@@ -41,8 +42,8 @@
|
|
|
41
42
|
"@yume-chan/stream-extra": "2.1.0",
|
|
42
43
|
"appium-adb": "12.12.1",
|
|
43
44
|
"sharp": "^0.34.3",
|
|
44
|
-
"@midscene/
|
|
45
|
-
"@midscene/
|
|
45
|
+
"@xiuchang-midscene/shared": "^2.0.2",
|
|
46
|
+
"@xiuchang-midscene/core": "^2.0.2"
|
|
46
47
|
},
|
|
47
48
|
"optionalDependencies": {
|
|
48
49
|
"@ffmpeg-installer/ffmpeg": "^1.1.0"
|
|
@@ -55,8 +56,7 @@
|
|
|
55
56
|
"typescript": "^5.8.3",
|
|
56
57
|
"tsx": "^4.19.2",
|
|
57
58
|
"vitest": "3.0.5",
|
|
58
|
-
"zod": "3.24.3"
|
|
59
|
-
"@midscene/playground": "1.6.0"
|
|
59
|
+
"zod": "3.24.3"
|
|
60
60
|
},
|
|
61
61
|
"license": "MIT",
|
|
62
62
|
"scripts": {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
package/src/app-knowledge/screenshots/fliggy/search-result/search-result-giraffe-annotated.jpg
ADDED
|
Binary file
|
package/src/app-knowledge/screenshots/fliggy/search-result/search-result-quickfilter-annotated.jpg
ADDED
|
Binary file
|
|
File without changes
|
|
File without changes
|