@donggui/core 1.5.4-donggui.3
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/LICENSE +21 -0
- package/README.md +9 -0
- package/dist/es/agent/agent.mjs +709 -0
- package/dist/es/agent/agent.mjs.map +1 -0
- package/dist/es/agent/common.mjs +0 -0
- package/dist/es/agent/execution-session.mjs +41 -0
- package/dist/es/agent/execution-session.mjs.map +1 -0
- package/dist/es/agent/index.mjs +6 -0
- package/dist/es/agent/task-builder.mjs +330 -0
- package/dist/es/agent/task-builder.mjs.map +1 -0
- package/dist/es/agent/task-cache.mjs +186 -0
- package/dist/es/agent/task-cache.mjs.map +1 -0
- package/dist/es/agent/tasks.mjs +422 -0
- package/dist/es/agent/tasks.mjs.map +1 -0
- package/dist/es/agent/ui-utils.mjs +91 -0
- package/dist/es/agent/ui-utils.mjs.map +1 -0
- package/dist/es/agent/utils.mjs +198 -0
- package/dist/es/agent/utils.mjs.map +1 -0
- package/dist/es/ai-model/auto-glm/actions.mjs +224 -0
- package/dist/es/ai-model/auto-glm/actions.mjs.map +1 -0
- package/dist/es/ai-model/auto-glm/index.mjs +6 -0
- package/dist/es/ai-model/auto-glm/parser.mjs +239 -0
- package/dist/es/ai-model/auto-glm/parser.mjs.map +1 -0
- package/dist/es/ai-model/auto-glm/planning.mjs +71 -0
- package/dist/es/ai-model/auto-glm/planning.mjs.map +1 -0
- package/dist/es/ai-model/auto-glm/prompt.mjs +222 -0
- package/dist/es/ai-model/auto-glm/prompt.mjs.map +1 -0
- package/dist/es/ai-model/auto-glm/util.mjs +9 -0
- package/dist/es/ai-model/auto-glm/util.mjs.map +1 -0
- package/dist/es/ai-model/conversation-history.mjs +195 -0
- package/dist/es/ai-model/conversation-history.mjs.map +1 -0
- package/dist/es/ai-model/index.mjs +11 -0
- package/dist/es/ai-model/inspect.mjs +386 -0
- package/dist/es/ai-model/inspect.mjs.map +1 -0
- package/dist/es/ai-model/llm-planning.mjs +233 -0
- package/dist/es/ai-model/llm-planning.mjs.map +1 -0
- package/dist/es/ai-model/prompt/common.mjs +7 -0
- package/dist/es/ai-model/prompt/common.mjs.map +1 -0
- package/dist/es/ai-model/prompt/describe.mjs +66 -0
- package/dist/es/ai-model/prompt/describe.mjs.map +1 -0
- package/dist/es/ai-model/prompt/extraction.mjs +129 -0
- package/dist/es/ai-model/prompt/extraction.mjs.map +1 -0
- package/dist/es/ai-model/prompt/llm-locator.mjs +51 -0
- package/dist/es/ai-model/prompt/llm-locator.mjs.map +1 -0
- package/dist/es/ai-model/prompt/llm-planning.mjs +364 -0
- package/dist/es/ai-model/prompt/llm-planning.mjs.map +1 -0
- package/dist/es/ai-model/prompt/llm-section-locator.mjs +44 -0
- package/dist/es/ai-model/prompt/llm-section-locator.mjs.map +1 -0
- package/dist/es/ai-model/prompt/order-sensitive-judge.mjs +35 -0
- package/dist/es/ai-model/prompt/order-sensitive-judge.mjs.map +1 -0
- package/dist/es/ai-model/prompt/playwright-generator.mjs +117 -0
- package/dist/es/ai-model/prompt/playwright-generator.mjs.map +1 -0
- package/dist/es/ai-model/prompt/ui-tars-planning.mjs +36 -0
- package/dist/es/ai-model/prompt/ui-tars-planning.mjs.map +1 -0
- package/dist/es/ai-model/prompt/util.mjs +59 -0
- package/dist/es/ai-model/prompt/util.mjs.map +1 -0
- package/dist/es/ai-model/prompt/yaml-generator.mjs +219 -0
- package/dist/es/ai-model/prompt/yaml-generator.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/index.mjs +466 -0
- package/dist/es/ai-model/service-caller/index.mjs.map +1 -0
- package/dist/es/ai-model/ui-tars-planning.mjs +249 -0
- package/dist/es/ai-model/ui-tars-planning.mjs.map +1 -0
- package/dist/es/common.mjs +371 -0
- package/dist/es/common.mjs.map +1 -0
- package/dist/es/device/device-options.mjs +0 -0
- package/dist/es/device/index.mjs +300 -0
- package/dist/es/device/index.mjs.map +1 -0
- package/dist/es/dump/html-utils.mjs +211 -0
- package/dist/es/dump/html-utils.mjs.map +1 -0
- package/dist/es/dump/image-restoration.mjs +43 -0
- package/dist/es/dump/image-restoration.mjs.map +1 -0
- package/dist/es/dump/index.mjs +3 -0
- package/dist/es/index.mjs +15 -0
- package/dist/es/index.mjs.map +1 -0
- package/dist/es/report-generator.mjs +134 -0
- package/dist/es/report-generator.mjs.map +1 -0
- package/dist/es/report.mjs +111 -0
- package/dist/es/report.mjs.map +1 -0
- package/dist/es/screenshot-item.mjs +105 -0
- package/dist/es/screenshot-item.mjs.map +1 -0
- package/dist/es/service/index.mjs +256 -0
- package/dist/es/service/index.mjs.map +1 -0
- package/dist/es/service/utils.mjs +15 -0
- package/dist/es/service/utils.mjs.map +1 -0
- package/dist/es/skill/index.mjs +38 -0
- package/dist/es/skill/index.mjs.map +1 -0
- package/dist/es/task-runner.mjs +258 -0
- package/dist/es/task-runner.mjs.map +1 -0
- package/dist/es/task-timing.mjs +12 -0
- package/dist/es/task-timing.mjs.map +1 -0
- package/dist/es/tree.mjs +13 -0
- package/dist/es/tree.mjs.map +1 -0
- package/dist/es/types.mjs +196 -0
- package/dist/es/types.mjs.map +1 -0
- package/dist/es/utils.mjs +218 -0
- package/dist/es/utils.mjs.map +1 -0
- package/dist/es/yaml/builder.mjs +13 -0
- package/dist/es/yaml/builder.mjs.map +1 -0
- package/dist/es/yaml/index.mjs +4 -0
- package/dist/es/yaml/player.mjs +418 -0
- package/dist/es/yaml/player.mjs.map +1 -0
- package/dist/es/yaml/utils.mjs +73 -0
- package/dist/es/yaml/utils.mjs.map +1 -0
- package/dist/es/yaml.mjs +0 -0
- package/dist/lib/agent/agent.js +757 -0
- package/dist/lib/agent/agent.js.map +1 -0
- package/dist/lib/agent/common.js +5 -0
- package/dist/lib/agent/execution-session.js +75 -0
- package/dist/lib/agent/execution-session.js.map +1 -0
- package/dist/lib/agent/index.js +81 -0
- package/dist/lib/agent/index.js.map +1 -0
- package/dist/lib/agent/task-builder.js +367 -0
- package/dist/lib/agent/task-builder.js.map +1 -0
- package/dist/lib/agent/task-cache.js +238 -0
- package/dist/lib/agent/task-cache.js.map +1 -0
- package/dist/lib/agent/tasks.js +465 -0
- package/dist/lib/agent/tasks.js.map +1 -0
- package/dist/lib/agent/ui-utils.js +143 -0
- package/dist/lib/agent/ui-utils.js.map +1 -0
- package/dist/lib/agent/utils.js +275 -0
- package/dist/lib/agent/utils.js.map +1 -0
- package/dist/lib/ai-model/auto-glm/actions.js +258 -0
- package/dist/lib/ai-model/auto-glm/actions.js.map +1 -0
- package/dist/lib/ai-model/auto-glm/index.js +66 -0
- package/dist/lib/ai-model/auto-glm/index.js.map +1 -0
- package/dist/lib/ai-model/auto-glm/parser.js +282 -0
- package/dist/lib/ai-model/auto-glm/parser.js.map +1 -0
- package/dist/lib/ai-model/auto-glm/planning.js +105 -0
- package/dist/lib/ai-model/auto-glm/planning.js.map +1 -0
- package/dist/lib/ai-model/auto-glm/prompt.js +259 -0
- package/dist/lib/ai-model/auto-glm/prompt.js.map +1 -0
- package/dist/lib/ai-model/auto-glm/util.js +46 -0
- package/dist/lib/ai-model/auto-glm/util.js.map +1 -0
- package/dist/lib/ai-model/conversation-history.js +229 -0
- package/dist/lib/ai-model/conversation-history.js.map +1 -0
- package/dist/lib/ai-model/index.js +125 -0
- package/dist/lib/ai-model/index.js.map +1 -0
- package/dist/lib/ai-model/inspect.js +429 -0
- package/dist/lib/ai-model/inspect.js.map +1 -0
- package/dist/lib/ai-model/llm-planning.js +270 -0
- package/dist/lib/ai-model/llm-planning.js.map +1 -0
- package/dist/lib/ai-model/prompt/common.js +41 -0
- package/dist/lib/ai-model/prompt/common.js.map +1 -0
- package/dist/lib/ai-model/prompt/describe.js +100 -0
- package/dist/lib/ai-model/prompt/describe.js.map +1 -0
- package/dist/lib/ai-model/prompt/extraction.js +169 -0
- package/dist/lib/ai-model/prompt/extraction.js.map +1 -0
- package/dist/lib/ai-model/prompt/llm-locator.js +88 -0
- package/dist/lib/ai-model/prompt/llm-locator.js.map +1 -0
- package/dist/lib/ai-model/prompt/llm-planning.js +401 -0
- package/dist/lib/ai-model/prompt/llm-planning.js.map +1 -0
- package/dist/lib/ai-model/prompt/llm-section-locator.js +81 -0
- package/dist/lib/ai-model/prompt/llm-section-locator.js.map +1 -0
- package/dist/lib/ai-model/prompt/order-sensitive-judge.js +72 -0
- package/dist/lib/ai-model/prompt/order-sensitive-judge.js.map +1 -0
- package/dist/lib/ai-model/prompt/playwright-generator.js +178 -0
- package/dist/lib/ai-model/prompt/playwright-generator.js.map +1 -0
- package/dist/lib/ai-model/prompt/ui-tars-planning.js +73 -0
- package/dist/lib/ai-model/prompt/ui-tars-planning.js.map +1 -0
- package/dist/lib/ai-model/prompt/util.js +105 -0
- package/dist/lib/ai-model/prompt/util.js.map +1 -0
- package/dist/lib/ai-model/prompt/yaml-generator.js +280 -0
- package/dist/lib/ai-model/prompt/yaml-generator.js.map +1 -0
- package/dist/lib/ai-model/service-caller/index.js +531 -0
- package/dist/lib/ai-model/service-caller/index.js.map +1 -0
- package/dist/lib/ai-model/ui-tars-planning.js +283 -0
- package/dist/lib/ai-model/ui-tars-planning.js.map +1 -0
- package/dist/lib/common.js +480 -0
- package/dist/lib/common.js.map +1 -0
- package/dist/lib/device/device-options.js +20 -0
- package/dist/lib/device/device-options.js.map +1 -0
- package/dist/lib/device/index.js +418 -0
- package/dist/lib/device/index.js.map +1 -0
- package/dist/lib/dump/html-utils.js +281 -0
- package/dist/lib/dump/html-utils.js.map +1 -0
- package/dist/lib/dump/image-restoration.js +77 -0
- package/dist/lib/dump/image-restoration.js.map +1 -0
- package/dist/lib/dump/index.js +60 -0
- package/dist/lib/dump/index.js.map +1 -0
- package/dist/lib/index.js +146 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/report-generator.js +172 -0
- package/dist/lib/report-generator.js.map +1 -0
- package/dist/lib/report.js +145 -0
- package/dist/lib/report.js.map +1 -0
- package/dist/lib/screenshot-item.js +139 -0
- package/dist/lib/screenshot-item.js.map +1 -0
- package/dist/lib/service/index.js +290 -0
- package/dist/lib/service/index.js.map +1 -0
- package/dist/lib/service/utils.js +49 -0
- package/dist/lib/service/utils.js.map +1 -0
- package/dist/lib/skill/index.js +72 -0
- package/dist/lib/skill/index.js.map +1 -0
- package/dist/lib/task-runner.js +295 -0
- package/dist/lib/task-runner.js.map +1 -0
- package/dist/lib/task-timing.js +46 -0
- package/dist/lib/task-timing.js.map +1 -0
- package/dist/lib/tree.js +53 -0
- package/dist/lib/tree.js.map +1 -0
- package/dist/lib/types.js +285 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils.js +297 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/yaml/builder.js +57 -0
- package/dist/lib/yaml/builder.js.map +1 -0
- package/dist/lib/yaml/index.js +81 -0
- package/dist/lib/yaml/index.js.map +1 -0
- package/dist/lib/yaml/player.js +452 -0
- package/dist/lib/yaml/player.js.map +1 -0
- package/dist/lib/yaml/utils.js +126 -0
- package/dist/lib/yaml/utils.js.map +1 -0
- package/dist/lib/yaml.js +20 -0
- package/dist/lib/yaml.js.map +1 -0
- package/dist/types/agent/agent.d.ts +190 -0
- package/dist/types/agent/common.d.ts +0 -0
- package/dist/types/agent/execution-session.d.ts +36 -0
- package/dist/types/agent/index.d.ts +10 -0
- package/dist/types/agent/task-builder.d.ts +34 -0
- package/dist/types/agent/task-cache.d.ts +48 -0
- package/dist/types/agent/tasks.d.ts +70 -0
- package/dist/types/agent/ui-utils.d.ts +14 -0
- package/dist/types/agent/utils.d.ts +29 -0
- package/dist/types/ai-model/auto-glm/actions.d.ts +77 -0
- package/dist/types/ai-model/auto-glm/index.d.ts +6 -0
- package/dist/types/ai-model/auto-glm/parser.d.ts +18 -0
- package/dist/types/ai-model/auto-glm/planning.d.ts +10 -0
- package/dist/types/ai-model/auto-glm/prompt.d.ts +27 -0
- package/dist/types/ai-model/auto-glm/util.d.ts +13 -0
- package/dist/types/ai-model/conversation-history.d.ts +105 -0
- package/dist/types/ai-model/index.d.ts +14 -0
- package/dist/types/ai-model/inspect.d.ts +58 -0
- package/dist/types/ai-model/llm-planning.d.ts +19 -0
- package/dist/types/ai-model/prompt/common.d.ts +2 -0
- package/dist/types/ai-model/prompt/describe.d.ts +1 -0
- package/dist/types/ai-model/prompt/extraction.d.ts +7 -0
- package/dist/types/ai-model/prompt/llm-locator.d.ts +3 -0
- package/dist/types/ai-model/prompt/llm-planning.d.ts +10 -0
- package/dist/types/ai-model/prompt/llm-section-locator.d.ts +3 -0
- package/dist/types/ai-model/prompt/order-sensitive-judge.d.ts +2 -0
- package/dist/types/ai-model/prompt/playwright-generator.d.ts +26 -0
- package/dist/types/ai-model/prompt/ui-tars-planning.d.ts +2 -0
- package/dist/types/ai-model/prompt/util.d.ts +33 -0
- package/dist/types/ai-model/prompt/yaml-generator.d.ts +100 -0
- package/dist/types/ai-model/service-caller/index.d.ts +49 -0
- package/dist/types/ai-model/ui-tars-planning.d.ts +72 -0
- package/dist/types/common.d.ts +288 -0
- package/dist/types/device/device-options.d.ts +142 -0
- package/dist/types/device/index.d.ts +2315 -0
- package/dist/types/dump/html-utils.d.ts +52 -0
- package/dist/types/dump/image-restoration.d.ts +6 -0
- package/dist/types/dump/index.d.ts +5 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/report-generator.d.ts +48 -0
- package/dist/types/report.d.ts +15 -0
- package/dist/types/screenshot-item.d.ts +66 -0
- package/dist/types/service/index.d.ts +23 -0
- package/dist/types/service/utils.d.ts +2 -0
- package/dist/types/skill/index.d.ts +25 -0
- package/dist/types/task-runner.d.ts +48 -0
- package/dist/types/task-timing.d.ts +8 -0
- package/dist/types/tree.d.ts +4 -0
- package/dist/types/types.d.ts +645 -0
- package/dist/types/utils.d.ts +40 -0
- package/dist/types/yaml/builder.d.ts +2 -0
- package/dist/types/yaml/index.d.ts +4 -0
- package/dist/types/yaml/player.d.ts +34 -0
- package/dist/types/yaml/utils.d.ts +9 -0
- package/dist/types/yaml.d.ts +203 -0
- package/package.json +111 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Agent } from '../agent/agent';
|
|
2
|
+
import type { FreeFn, MidsceneYamlScript, MidsceneYamlScriptEnv, ScriptPlayerStatusValue, ScriptPlayerTaskStatus } from '../types';
|
|
3
|
+
export declare class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
|
|
4
|
+
private script;
|
|
5
|
+
private setupAgent;
|
|
6
|
+
onTaskStatusChange?: ((taskStatus: ScriptPlayerTaskStatus) => void) | undefined;
|
|
7
|
+
currentTaskIndex?: number;
|
|
8
|
+
taskStatusList: ScriptPlayerTaskStatus[];
|
|
9
|
+
status: ScriptPlayerStatusValue;
|
|
10
|
+
reportFile?: string | null;
|
|
11
|
+
result: Record<string, any>;
|
|
12
|
+
private unnamedResultIndex;
|
|
13
|
+
output?: string | null;
|
|
14
|
+
unstableLogContent?: string | null;
|
|
15
|
+
errorInSetup?: Error;
|
|
16
|
+
private interfaceAgent;
|
|
17
|
+
agentStatusTip?: string;
|
|
18
|
+
target?: MidsceneYamlScriptEnv;
|
|
19
|
+
private actionSpace;
|
|
20
|
+
private scriptPath?;
|
|
21
|
+
constructor(script: MidsceneYamlScript, setupAgent: (platform: T) => Promise<{
|
|
22
|
+
agent: Agent;
|
|
23
|
+
freeFn: FreeFn[];
|
|
24
|
+
}>, onTaskStatusChange?: ((taskStatus: ScriptPlayerTaskStatus) => void) | undefined, scriptPath?: string);
|
|
25
|
+
private setResult;
|
|
26
|
+
private setPlayerStatus;
|
|
27
|
+
private notifyCurrentTaskStatusChange;
|
|
28
|
+
private setTaskStatus;
|
|
29
|
+
private setTaskIndex;
|
|
30
|
+
private flushResult;
|
|
31
|
+
private flushUnstableLogContent;
|
|
32
|
+
playTask(taskStatus: ScriptPlayerTaskStatus, agent: Agent): Promise<void>;
|
|
33
|
+
run(): Promise<void>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TUserPrompt } from '../common';
|
|
2
|
+
import type { DetailedLocateParam, LocateOption, MidsceneYamlScript } from '../types';
|
|
3
|
+
export declare function interpolateEnvVars(content: string): string;
|
|
4
|
+
export declare function parseYamlScript(content: string, filePath?: string): MidsceneYamlScript;
|
|
5
|
+
export declare function buildDetailedLocateParam(locatePrompt: TUserPrompt, opt?: LocateOption): DetailedLocateParam | undefined;
|
|
6
|
+
export declare function buildDetailedLocateParamAndRestParams(locatePrompt: TUserPrompt, opt: LocateOption | undefined, excludeKeys?: string[]): {
|
|
7
|
+
locateParam: DetailedLocateParam | undefined;
|
|
8
|
+
restParams: Record<string, any>;
|
|
9
|
+
};
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { TUserPrompt } from './common';
|
|
2
|
+
import type { AndroidDeviceOpt, IOSDeviceOpt } from './device';
|
|
3
|
+
import type { AgentOpt, LocateResultElement } from './types';
|
|
4
|
+
import type { UIContext } from './types';
|
|
5
|
+
export interface LocateOption {
|
|
6
|
+
prompt?: TUserPrompt;
|
|
7
|
+
deepLocate?: boolean;
|
|
8
|
+
/** @deprecated Use `deepLocate` instead. Kept for backward compatibility. */
|
|
9
|
+
deepThink?: boolean;
|
|
10
|
+
cacheable?: boolean;
|
|
11
|
+
xpath?: string;
|
|
12
|
+
uiContext?: UIContext;
|
|
13
|
+
fileChooserAccept?: string | string[];
|
|
14
|
+
}
|
|
15
|
+
export interface ServiceExtractOption {
|
|
16
|
+
domIncluded?: boolean | 'visible-only';
|
|
17
|
+
screenshotIncluded?: boolean;
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}
|
|
20
|
+
export interface DetailedLocateParam extends Omit<LocateOption, 'deepThink'> {
|
|
21
|
+
prompt: TUserPrompt;
|
|
22
|
+
}
|
|
23
|
+
export type ScrollType = 'singleAction' | 'scrollToBottom' | 'scrollToTop' | 'scrollToRight' | 'scrollToLeft' | 'once' | 'untilBottom' | 'untilTop' | 'untilRight' | 'untilLeft';
|
|
24
|
+
export type ActionScrollParam = {
|
|
25
|
+
direction?: 'down' | 'up' | 'right' | 'left';
|
|
26
|
+
scrollType?: ScrollType;
|
|
27
|
+
distance?: number | null;
|
|
28
|
+
locate?: LocateResultElement;
|
|
29
|
+
};
|
|
30
|
+
export type ScrollParam = Omit<ActionScrollParam, 'locate'>;
|
|
31
|
+
export interface MidsceneYamlScript {
|
|
32
|
+
target?: MidsceneYamlScriptWebEnv;
|
|
33
|
+
web?: MidsceneYamlScriptWebEnv;
|
|
34
|
+
android?: MidsceneYamlScriptAndroidEnv;
|
|
35
|
+
ios?: MidsceneYamlScriptIOSEnv;
|
|
36
|
+
computer?: MidsceneYamlScriptComputerEnv;
|
|
37
|
+
interface?: MidsceneYamlScriptEnvGeneralInterface;
|
|
38
|
+
config?: MidsceneYamlScriptConfig;
|
|
39
|
+
agent?: MidsceneYamlScriptAgentOpt;
|
|
40
|
+
tasks: MidsceneYamlTask[];
|
|
41
|
+
}
|
|
42
|
+
export interface MidsceneYamlTask {
|
|
43
|
+
name: string;
|
|
44
|
+
flow: MidsceneYamlFlowItem[];
|
|
45
|
+
continueOnError?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Agent configuration options that can be specified in YAML scripts.
|
|
49
|
+
*
|
|
50
|
+
* This type includes serializable fields from AgentOpt, excluding non-serializable
|
|
51
|
+
* fields like functions and complex objects. All fields are optional.
|
|
52
|
+
*
|
|
53
|
+
* @remarks
|
|
54
|
+
* - testId priority: CLI parameter > YAML agent.testId > filename
|
|
55
|
+
* - These settings apply to all platforms (Web, Android, iOS, Generic Interface)
|
|
56
|
+
* - modelConfig is configured through environment variables, not in YAML
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```yaml
|
|
60
|
+
* agent:
|
|
61
|
+
* testId: "checkout-test"
|
|
62
|
+
* groupName: "E2E Test Suite"
|
|
63
|
+
* generateReport: true
|
|
64
|
+
* replanningCycleLimit: 30
|
|
65
|
+
* cache:
|
|
66
|
+
* id: "checkout-cache"
|
|
67
|
+
* strategy: "read-write"
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export type MidsceneYamlScriptAgentOpt = Pick<AgentOpt, 'testId' | 'groupName' | 'groupDescription' | 'generateReport' | 'autoPrintReportMsg' | 'reportFileName' | 'replanningCycleLimit' | 'aiActContext' | 'aiActionContext' | 'cache' | 'screenshotShrinkFactor'>;
|
|
71
|
+
export interface MidsceneYamlScriptConfig {
|
|
72
|
+
output?: string;
|
|
73
|
+
unstableLogContent?: boolean | string;
|
|
74
|
+
}
|
|
75
|
+
export interface MidsceneYamlScriptEnvGeneralInterface {
|
|
76
|
+
module: string;
|
|
77
|
+
export?: string;
|
|
78
|
+
param?: Record<string, any>;
|
|
79
|
+
}
|
|
80
|
+
export interface MidsceneYamlScriptWebEnv extends MidsceneYamlScriptConfig, MidsceneYamlScriptAgentOpt {
|
|
81
|
+
serve?: string;
|
|
82
|
+
url: string;
|
|
83
|
+
userAgent?: string;
|
|
84
|
+
acceptInsecureCerts?: boolean;
|
|
85
|
+
viewportWidth?: number;
|
|
86
|
+
viewportHeight?: number;
|
|
87
|
+
deviceScaleFactor?: number;
|
|
88
|
+
waitForNetworkIdle?: {
|
|
89
|
+
timeout?: number;
|
|
90
|
+
continueOnNetworkIdleError?: boolean;
|
|
91
|
+
};
|
|
92
|
+
cookie?: string;
|
|
93
|
+
forceSameTabNavigation?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Custom Chrome launch arguments (Puppeteer only, not supported in bridge mode).
|
|
96
|
+
*
|
|
97
|
+
* Allows passing custom command-line arguments to Chrome/Chromium when launching the browser.
|
|
98
|
+
* This is useful for testing scenarios that require specific browser configurations.
|
|
99
|
+
*
|
|
100
|
+
* ⚠️ Security Warning: Some arguments (e.g., --no-sandbox, --disable-web-security) may
|
|
101
|
+
* reduce browser security. Use only in controlled testing environments.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```yaml
|
|
105
|
+
* web:
|
|
106
|
+
* url: https://example.com
|
|
107
|
+
* chromeArgs:
|
|
108
|
+
* - '--disable-features=ThirdPartyCookiePhaseout'
|
|
109
|
+
* - '--disable-features=SameSiteByDefaultCookies'
|
|
110
|
+
* - '--window-size=1920,1080'
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
chromeArgs?: string[];
|
|
114
|
+
bridgeMode?: false | 'newTabWithUrl' | 'currentTab';
|
|
115
|
+
closeNewTabsAfterDisconnect?: boolean;
|
|
116
|
+
}
|
|
117
|
+
export interface MidsceneYamlScriptAndroidEnv extends MidsceneYamlScriptConfig, Omit<AndroidDeviceOpt, 'customActions'> {
|
|
118
|
+
deviceId?: string;
|
|
119
|
+
launch?: string;
|
|
120
|
+
}
|
|
121
|
+
export interface MidsceneYamlScriptIOSEnv extends MidsceneYamlScriptConfig, Omit<IOSDeviceOpt, 'customActions'> {
|
|
122
|
+
launch?: string;
|
|
123
|
+
}
|
|
124
|
+
export interface MidsceneYamlScriptComputerEnv extends MidsceneYamlScriptConfig {
|
|
125
|
+
displayId?: string;
|
|
126
|
+
}
|
|
127
|
+
export type MidsceneYamlScriptEnv = MidsceneYamlScriptWebEnv | MidsceneYamlScriptAndroidEnv | MidsceneYamlScriptIOSEnv | MidsceneYamlScriptComputerEnv;
|
|
128
|
+
export interface MidsceneYamlFlowItemAIAction {
|
|
129
|
+
aiAction?: string;
|
|
130
|
+
ai?: string;
|
|
131
|
+
aiAct?: string;
|
|
132
|
+
aiActionProgressTips?: string[];
|
|
133
|
+
cacheable?: boolean;
|
|
134
|
+
[key: string]: unknown;
|
|
135
|
+
}
|
|
136
|
+
export interface MidsceneYamlFlowItemAIAssert extends ServiceExtractOption {
|
|
137
|
+
aiAssert: string;
|
|
138
|
+
errorMessage?: string;
|
|
139
|
+
name?: string;
|
|
140
|
+
}
|
|
141
|
+
export interface MidsceneYamlFlowItemAIWaitFor extends ServiceExtractOption {
|
|
142
|
+
aiWaitFor: string;
|
|
143
|
+
timeout?: number;
|
|
144
|
+
}
|
|
145
|
+
export interface MidsceneYamlFlowItemEvaluateJavaScript {
|
|
146
|
+
javascript: string;
|
|
147
|
+
name?: string;
|
|
148
|
+
}
|
|
149
|
+
export interface MidsceneYamlFlowItemSleep {
|
|
150
|
+
sleep: number;
|
|
151
|
+
}
|
|
152
|
+
export interface MidsceneYamlFlowItemLogScreenshot {
|
|
153
|
+
logScreenshot?: string;
|
|
154
|
+
recordToReport?: string;
|
|
155
|
+
content?: string;
|
|
156
|
+
}
|
|
157
|
+
export type MidsceneYamlFlowItem = MidsceneYamlFlowItemAIAction | MidsceneYamlFlowItemAIAssert | MidsceneYamlFlowItemAIWaitFor | MidsceneYamlFlowItemEvaluateJavaScript | MidsceneYamlFlowItemSleep | MidsceneYamlFlowItemLogScreenshot;
|
|
158
|
+
export interface FreeFn {
|
|
159
|
+
name: string;
|
|
160
|
+
fn: () => void;
|
|
161
|
+
}
|
|
162
|
+
export interface ScriptPlayerTaskStatus extends MidsceneYamlTask {
|
|
163
|
+
status: ScriptPlayerStatusValue;
|
|
164
|
+
currentStep?: number;
|
|
165
|
+
totalSteps: number;
|
|
166
|
+
error?: Error;
|
|
167
|
+
}
|
|
168
|
+
export type ScriptPlayerStatusValue = 'init' | 'running' | 'done' | 'error';
|
|
169
|
+
export interface MidsceneYamlConfig {
|
|
170
|
+
concurrent?: number;
|
|
171
|
+
continueOnError?: boolean;
|
|
172
|
+
summary?: string;
|
|
173
|
+
shareBrowserContext?: boolean;
|
|
174
|
+
web?: MidsceneYamlScriptWebEnv;
|
|
175
|
+
android?: MidsceneYamlScriptAndroidEnv;
|
|
176
|
+
ios?: MidsceneYamlScriptIOSEnv;
|
|
177
|
+
files: string[];
|
|
178
|
+
headed?: boolean;
|
|
179
|
+
keepWindow?: boolean;
|
|
180
|
+
dotenvOverride?: boolean;
|
|
181
|
+
dotenvDebug?: boolean;
|
|
182
|
+
}
|
|
183
|
+
export interface MidsceneYamlConfigOutput {
|
|
184
|
+
format?: 'json';
|
|
185
|
+
path?: string;
|
|
186
|
+
}
|
|
187
|
+
export interface MidsceneYamlConfigResult {
|
|
188
|
+
file: string;
|
|
189
|
+
success: boolean;
|
|
190
|
+
executed: boolean;
|
|
191
|
+
output?: string | null;
|
|
192
|
+
report?: string | null;
|
|
193
|
+
error?: string;
|
|
194
|
+
duration?: number;
|
|
195
|
+
/**
|
|
196
|
+
* Type of result:
|
|
197
|
+
* - 'success': All tasks completed successfully
|
|
198
|
+
* - 'failed': Execution failed (player error)
|
|
199
|
+
* - 'partialFailed': Some tasks failed but execution continued (continueOnError)
|
|
200
|
+
* - 'notExecuted': Not executed due to previous failures
|
|
201
|
+
*/
|
|
202
|
+
resultType?: 'success' | 'failed' | 'partialFailed' | 'notExecuted';
|
|
203
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@donggui/core",
|
|
3
|
+
"description": "Automate browser actions, extract data, and perform assertions using AI. It offers JavaScript SDK, Chrome extension, and support for scripting in YAML. See https://midscenejs.com/ for details.",
|
|
4
|
+
"version": "1.5.4-donggui.3",
|
|
5
|
+
"repository": "https://github.com/web-infra-dev/midscene",
|
|
6
|
+
"homepage": "https://midscenejs.com/",
|
|
7
|
+
"main": "./dist/lib/index.js",
|
|
8
|
+
"types": "./dist/types/index.d.ts",
|
|
9
|
+
"module": "./dist/es/index.mjs",
|
|
10
|
+
"files": ["dist", "README.md"],
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/types/index.d.ts",
|
|
14
|
+
"import": "./dist/es/index.mjs",
|
|
15
|
+
"require": "./dist/lib/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./utils": {
|
|
18
|
+
"types": "./dist/types/utils.d.ts",
|
|
19
|
+
"import": "./dist/es/utils.mjs",
|
|
20
|
+
"require": "./dist/lib/utils.js"
|
|
21
|
+
},
|
|
22
|
+
"./ai-model": {
|
|
23
|
+
"types": "./dist/types/ai-model/index.d.ts",
|
|
24
|
+
"import": "./dist/es/ai-model/index.mjs",
|
|
25
|
+
"require": "./dist/lib/ai-model/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./tree": {
|
|
28
|
+
"types": "./dist/types/tree.d.ts",
|
|
29
|
+
"import": "./dist/es/tree.mjs",
|
|
30
|
+
"require": "./dist/lib/tree.js"
|
|
31
|
+
},
|
|
32
|
+
"./device": {
|
|
33
|
+
"types": "./dist/types/device/index.d.ts",
|
|
34
|
+
"import": "./dist/es/device/index.mjs",
|
|
35
|
+
"require": "./dist/lib/device/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./agent": {
|
|
38
|
+
"types": "./dist/types/agent/index.d.ts",
|
|
39
|
+
"import": "./dist/es/agent/index.mjs",
|
|
40
|
+
"require": "./dist/lib/agent/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./yaml": {
|
|
43
|
+
"types": "./dist/types/yaml/index.d.ts",
|
|
44
|
+
"import": "./dist/es/yaml/index.mjs",
|
|
45
|
+
"require": "./dist/lib/yaml/index.js"
|
|
46
|
+
},
|
|
47
|
+
"./report": {
|
|
48
|
+
"types": "./dist/types/report.d.ts",
|
|
49
|
+
"import": "./dist/es/report.mjs",
|
|
50
|
+
"require": "./dist/lib/report.js"
|
|
51
|
+
},
|
|
52
|
+
"./skill": {
|
|
53
|
+
"types": "./dist/types/skill/index.d.ts",
|
|
54
|
+
"import": "./dist/es/skill/index.mjs",
|
|
55
|
+
"require": "./dist/lib/skill/index.js"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"typesVersions": {
|
|
59
|
+
"*": {
|
|
60
|
+
".": ["./dist/types/index.d.ts"],
|
|
61
|
+
"utils": ["./dist/types/utils.d.ts"],
|
|
62
|
+
"ai-model": ["./dist/types/ai-model.d.ts"],
|
|
63
|
+
"tree": ["./dist/types/tree.d.ts"],
|
|
64
|
+
"device": ["./dist/types/device.d.ts"],
|
|
65
|
+
"agent": ["./dist/types/agent.d.ts"],
|
|
66
|
+
"yaml": ["./dist/types/yaml.d.ts"],
|
|
67
|
+
"mcp": ["./dist/types/skill/index.d.ts"]
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"scripts": {
|
|
71
|
+
"dev": "npm run build:watch",
|
|
72
|
+
"build": "rslib build",
|
|
73
|
+
"build:watch": "USE_DEV_REPORT=1 rslib build --watch --no-clean",
|
|
74
|
+
"test": "vitest --run",
|
|
75
|
+
"test:u": "vitest --run -u",
|
|
76
|
+
"test:ai": "AITEST=true npm run test",
|
|
77
|
+
"computer": "TEST_COMPUTER=true npm run test:ai -- tests/ai/evaluate/computer.test.ts",
|
|
78
|
+
"test:parse-action": "npm run test:ai -- tests/ai/parse-action.test.ts"
|
|
79
|
+
},
|
|
80
|
+
"dependencies": {
|
|
81
|
+
"@midscene/shared": "workspace:*",
|
|
82
|
+
"@ui-tars/action-parser": "1.2.3",
|
|
83
|
+
"dayjs": "^1.11.11",
|
|
84
|
+
"dotenv": "^16.4.5",
|
|
85
|
+
"fetch-socks": "^1.3.0",
|
|
86
|
+
"js-yaml": "4.1.0",
|
|
87
|
+
"jsonrepair": "3.12.0",
|
|
88
|
+
"openai": "6.3.0",
|
|
89
|
+
"semver": "7.5.2",
|
|
90
|
+
"undici": "^6.0.0",
|
|
91
|
+
"zod": "3.24.3"
|
|
92
|
+
},
|
|
93
|
+
"devDependencies": {
|
|
94
|
+
"@rslib/core": "^0.18.3",
|
|
95
|
+
"@types/js-yaml": "4.0.9",
|
|
96
|
+
"@types/node": "^18.0.0",
|
|
97
|
+
"@types/node-fetch": "2.6.11",
|
|
98
|
+
"@types/semver": "7.7.0",
|
|
99
|
+
"langsmith": "^0.3.74",
|
|
100
|
+
"typescript": "^5.8.3",
|
|
101
|
+
"vitest": "3.0.5"
|
|
102
|
+
},
|
|
103
|
+
"engines": {
|
|
104
|
+
"node": ">=18.19.0"
|
|
105
|
+
},
|
|
106
|
+
"publishConfig": {
|
|
107
|
+
"access": "public",
|
|
108
|
+
"registry": "https://registry.npmjs.org"
|
|
109
|
+
},
|
|
110
|
+
"license": "MIT"
|
|
111
|
+
}
|