@midscene/web 0.10.1 → 0.10.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.
Files changed (34) hide show
  1. package/dist/es/appium.js +41 -5
  2. package/dist/es/bridge-mode-browser.js +43 -396
  3. package/dist/es/bridge-mode.js +44 -15
  4. package/dist/es/chrome-extension.js +59 -398
  5. package/dist/es/index.js +96 -9
  6. package/dist/es/midscene-playground.js +26 -5
  7. package/dist/es/playground.js +26 -5
  8. package/dist/es/playwright.js +62 -8
  9. package/dist/es/puppeteer.js +90 -13
  10. package/dist/lib/appium.js +41 -5
  11. package/dist/lib/bridge-mode-browser.js +43 -396
  12. package/dist/lib/bridge-mode.js +44 -15
  13. package/dist/lib/chrome-extension.js +59 -398
  14. package/dist/lib/index.js +96 -9
  15. package/dist/lib/midscene-playground.js +26 -5
  16. package/dist/lib/playground.js +26 -5
  17. package/dist/lib/playwright.js +62 -8
  18. package/dist/lib/puppeteer.js +90 -13
  19. package/dist/types/appium.d.ts +3 -3
  20. package/dist/types/bridge-mode-browser.d.ts +3 -3
  21. package/dist/types/bridge-mode.d.ts +6 -5
  22. package/dist/types/{browser-fd2e9b68.d.ts → browser-bc6c204c.d.ts} +1 -1
  23. package/dist/types/chrome-extension.d.ts +4 -4
  24. package/dist/types/debug.d.ts +2 -2
  25. package/dist/types/index.d.ts +4 -4
  26. package/dist/types/{page-fc3be0ec.d.ts → page-cfd75cdf.d.ts} +34 -4
  27. package/dist/types/playground.d.ts +4 -4
  28. package/dist/types/playwright.d.ts +4 -4
  29. package/dist/types/puppeteer.d.ts +8 -7
  30. package/dist/types/{tasks-f2973dd7.d.ts → tasks-681afd8a.d.ts} +4 -3
  31. package/dist/types/{utils-ccbb6ff6.d.ts → utils-1c43a008.d.ts} +1 -1
  32. package/dist/types/utils.d.ts +2 -2
  33. package/dist/types/yaml.d.ts +4 -4
  34. package/package.json +5 -3
@@ -1,4 +1,4 @@
1
- import { C as ChromeExtensionProxyPage } from './page-fc3be0ec.js';
1
+ import { C as ChromeExtensionProxyPage } from './page-cfd75cdf.js';
2
2
 
3
3
  interface BridgeConnectTabOptions {
4
4
  /**
@@ -1,11 +1,11 @@
1
- import { C as ChromeExtensionProxyPage } from './page-fc3be0ec.js';
2
- export { a as ERROR_CODE_NOT_IMPLEMENTED_AS_DESIGNED } from './page-fc3be0ec.js';
3
- import { P as PageAgent } from './tasks-f2973dd7.js';
1
+ import { C as ChromeExtensionProxyPage } from './page-cfd75cdf.js';
2
+ export { a as ERROR_CODE_NOT_IMPLEMENTED_AS_DESIGNED } from './page-cfd75cdf.js';
3
+ import { P as PageAgent } from './tasks-681afd8a.js';
4
4
  import 'playwright';
5
5
  import '@midscene/core';
6
6
  import 'puppeteer';
7
7
  import '@midscene/shared/constants';
8
- import '@midscene/core/dist/lib/types/types-64c4d87b';
8
+ import '@midscene/core/dist/lib/types/types-7fe32cfe';
9
9
  import 'webdriverio';
10
10
  import '@midscene/core/ai-model';
11
11
  import '@midscene/shared/fs';
@@ -1,10 +1,10 @@
1
1
  import { writeFileSync } from 'node:fs';
2
- import { W as WebPage, E as ElementInfo } from './page-fc3be0ec.js';
2
+ import { W as WebPage, E as ElementInfo } from './page-cfd75cdf.js';
3
3
  import 'playwright';
4
4
  import '@midscene/core';
5
5
  import 'puppeteer';
6
6
  import '@midscene/shared/constants';
7
- import '@midscene/core/dist/lib/types/types-64c4d87b';
7
+ import '@midscene/core/dist/lib/types/types-7fe32cfe';
8
8
  import 'webdriverio';
9
9
 
10
10
  declare function generateExtractData(page: WebPage, targetDir: string, saveImgType?: {
@@ -1,15 +1,15 @@
1
1
  export { PlayWrightAiFixtureType, PlaywrightAiFixture } from './playwright.js';
2
- export { P as AppiumAgent, P as PlaywrightAgent } from './tasks-f2973dd7.js';
3
- export { P as AppiumPage } from './page-fc3be0ec.js';
2
+ export { P as AppiumAgent, P as PlaywrightAgent } from './tasks-681afd8a.js';
3
+ export { P as AppiumPage } from './page-cfd75cdf.js';
4
4
  export { StaticPageAgent } from './playground.js';
5
5
  export { PuppeteerAgent } from './puppeteer.js';
6
6
  export { generateExtractData } from './debug.js';
7
- export { S as ScriptPlayer, f as flowItemBrief, p as parseYamlScript } from './utils-ccbb6ff6.js';
7
+ export { S as ScriptPlayer, f as flowItemBrief, p as parseYamlScript } from './utils-1c43a008.js';
8
8
  import '@midscene/core';
9
9
  import '@playwright/test';
10
10
  import 'playwright';
11
11
  import '@midscene/core/env';
12
- import '@midscene/core/dist/lib/types/types-64c4d87b';
12
+ import '@midscene/core/dist/lib/types/types-7fe32cfe';
13
13
  import '@midscene/core/ai-model';
14
14
  import '@midscene/shared/fs';
15
15
  import 'puppeteer';
@@ -2,7 +2,7 @@ import { Page as Page$3 } from 'playwright';
2
2
  import { BaseElement, Rect, UIContext, PlaywrightParserOpt, Size, Point } from '@midscene/core';
3
3
  import { KeyInput, Page as Page$2 } from 'puppeteer';
4
4
  import { NodeType } from '@midscene/shared/constants';
5
- import * as _midscene_core_dist_lib_types_types_64c4d87b from '@midscene/core/dist/lib/types/types-64c4d87b';
5
+ import * as _midscene_core_dist_lib_types_types_7fe32cfe from '@midscene/core/dist/lib/types/types-7fe32cfe';
6
6
  import { Browser } from 'webdriverio';
7
7
 
8
8
  declare class WebElementInfo implements BaseElement {
@@ -74,6 +74,13 @@ interface MouseAction {
74
74
  }) => Promise<void>;
75
75
  wheel: (deltaX: number, deltaY: number) => Promise<void>;
76
76
  move: (x: number, y: number) => Promise<void>;
77
+ drag: (from: {
78
+ x: number;
79
+ y: number;
80
+ }, to: {
81
+ x: number;
82
+ y: number;
83
+ }) => Promise<void>;
77
84
  }
78
85
  interface KeyboardAction {
79
86
  type: (text: string) => Promise<void>;
@@ -118,6 +125,13 @@ declare class Page$1 implements AbstractPage {
118
125
  }) => Promise<void>;
119
126
  wheel: (deltaX: number, deltaY: number) => Promise<void>;
120
127
  move: (x: number, y: number) => Promise<void>;
128
+ drag: (from: {
129
+ x: number;
130
+ y: number;
131
+ }, to: {
132
+ x: number;
133
+ y: number;
134
+ }) => Promise<void>;
121
135
  };
122
136
  get keyboard(): {
123
137
  type: (text: string) => Promise<void>;
@@ -137,6 +151,7 @@ declare class Page$1 implements AbstractPage {
137
151
  private keyboardPress;
138
152
  private mouseClick;
139
153
  private mouseMove;
154
+ private mouseDrag;
140
155
  private mouseWheel;
141
156
  destroy(): Promise<void>;
142
157
  }
@@ -177,10 +192,17 @@ declare class ChromeExtensionProxyPage implements AbstractPage {
177
192
  click: (x: number, y: number) => Promise<void>;
178
193
  wheel: (deltaX: number, deltaY: number, startX?: number, startY?: number) => Promise<void>;
179
194
  move: (x: number, y: number) => Promise<void>;
195
+ drag: (from: {
196
+ x: number;
197
+ y: number;
198
+ }, to: {
199
+ x: number;
200
+ y: number;
201
+ }) => Promise<void>;
180
202
  };
181
203
  keyboard: {
182
204
  type: (text: string) => Promise<void>;
183
- press: (key: WebKeyInput) => Promise<void>;
205
+ press: (key: WebKeyInput | WebKeyInput[]) => Promise<void>;
184
206
  };
185
207
  destroy(): Promise<void>;
186
208
  }
@@ -190,7 +212,7 @@ declare class StaticPage implements AbstractPage {
190
212
  private uiContext;
191
213
  constructor(uiContext: WebUIContext);
192
214
  getElementInfos(): Promise<any>;
193
- size(): Promise<_midscene_core_dist_lib_types_types_64c4d87b.S>;
215
+ size(): Promise<_midscene_core_dist_lib_types_types_7fe32cfe.S>;
194
216
  screenshotBase64(): Promise<string>;
195
217
  url(): Promise<string>;
196
218
  scrollUntilTop(startingPoint?: Point): Promise<any>;
@@ -206,6 +228,7 @@ declare class StaticPage implements AbstractPage {
206
228
  click: any;
207
229
  wheel: any;
208
230
  move: any;
231
+ drag: any;
209
232
  };
210
233
  keyboard: {
211
234
  type: any;
@@ -232,10 +255,17 @@ declare class Page<AgentType extends 'puppeteer' | 'playwright', PageType extend
232
255
  }) => Promise<void>;
233
256
  wheel: (deltaX: number, deltaY: number) => Promise<void>;
234
257
  move: (x: number, y: number) => Promise<void>;
258
+ drag: (from: {
259
+ x: number;
260
+ y: number;
261
+ }, to: {
262
+ x: number;
263
+ y: number;
264
+ }) => Promise<void>;
235
265
  };
236
266
  get keyboard(): {
237
267
  type: (text: string) => Promise<void>;
238
- press: (key: WebKeyInput) => Promise<void>;
268
+ press: (key: WebKeyInput | WebKeyInput[]) => Promise<void>;
239
269
  down: (key: WebKeyInput) => Promise<void>;
240
270
  up: (key: WebKeyInput) => Promise<void>;
241
271
  };
@@ -1,11 +1,11 @@
1
- import { S as StaticPage } from './page-fc3be0ec.js';
2
- export { a as ERROR_CODE_NOT_IMPLEMENTED_AS_DESIGNED } from './page-fc3be0ec.js';
3
- import { P as PageAgent } from './tasks-f2973dd7.js';
1
+ import { S as StaticPage } from './page-cfd75cdf.js';
2
+ export { a as ERROR_CODE_NOT_IMPLEMENTED_AS_DESIGNED } from './page-cfd75cdf.js';
3
+ import { P as PageAgent } from './tasks-681afd8a.js';
4
4
  import 'playwright';
5
5
  import '@midscene/core';
6
6
  import 'puppeteer';
7
7
  import '@midscene/shared/constants';
8
- import '@midscene/core/dist/lib/types/types-64c4d87b';
8
+ import '@midscene/core/dist/lib/types/types-7fe32cfe';
9
9
  import 'webdriverio';
10
10
  import '@midscene/core/ai-model';
11
11
  import '@midscene/shared/fs';
@@ -1,11 +1,11 @@
1
1
  import { AgentWaitForOpt } from '@midscene/core';
2
2
  import { TestInfo } from '@playwright/test';
3
3
  import { Page } from 'playwright';
4
- import { b as PageTaskExecutor } from './tasks-f2973dd7.js';
5
- export { P as PlaywrightAgent } from './tasks-f2973dd7.js';
6
- export { c as PlaywrightWebPage } from './page-fc3be0ec.js';
4
+ import { b as PageTaskExecutor } from './tasks-681afd8a.js';
5
+ export { P as PlaywrightAgent } from './tasks-681afd8a.js';
6
+ export { c as PlaywrightWebPage } from './page-cfd75cdf.js';
7
7
  export { overrideAIConfig } from '@midscene/core/env';
8
- import '@midscene/core/dist/lib/types/types-64c4d87b';
8
+ import '@midscene/core/dist/lib/types/types-7fe32cfe';
9
9
  import '@midscene/core/ai-model';
10
10
  import '@midscene/shared/fs';
11
11
  import 'puppeteer';
@@ -1,25 +1,26 @@
1
- import { P as PageAgent, a as PageAgentOpt } from './tasks-f2973dd7.js';
1
+ import { P as PageAgent, a as PageAgentOpt } from './tasks-681afd8a.js';
2
2
  import { Page } from 'puppeteer';
3
- export { b as PuppeteerWebPage } from './page-fc3be0ec.js';
3
+ export { b as PuppeteerWebPage } from './page-cfd75cdf.js';
4
4
  export { overrideAIConfig } from '@midscene/core/env';
5
5
  import { MidsceneYamlScriptEnv } from '@midscene/core';
6
- import '@midscene/core/dist/lib/types/types-64c4d87b';
6
+ import '@midscene/core/dist/lib/types/types-7fe32cfe';
7
7
  import '@midscene/core/ai-model';
8
8
  import '@midscene/shared/fs';
9
9
  import 'playwright';
10
10
  import '@midscene/shared/constants';
11
11
  import 'webdriverio';
12
12
 
13
+ interface FreeFn {
14
+ name: string;
15
+ fn: () => void;
16
+ }
13
17
  declare function puppeteerAgentForTarget(target: MidsceneYamlScriptEnv, preference?: {
14
18
  headed?: boolean;
15
19
  keepWindow?: boolean;
16
20
  testId?: string;
17
21
  }): Promise<{
18
22
  agent: PuppeteerAgent;
19
- freeFn: {
20
- name: string;
21
- fn: () => void;
22
- }[];
23
+ freeFn: FreeFn[];
23
24
  }>;
24
25
 
25
26
  declare class PuppeteerAgent extends PageAgent {
@@ -1,5 +1,5 @@
1
- import * as _midscene_core_dist_lib_types_types_64c4d87b from '@midscene/core/dist/lib/types/types-64c4d87b';
2
- import { d as WebUIContext, W as WebPage, e as WebElementInfo } from './page-fc3be0ec.js';
1
+ import * as _midscene_core_dist_lib_types_types_7fe32cfe from '@midscene/core/dist/lib/types/types-7fe32cfe';
2
+ import { d as WebUIContext, W as WebPage, e as WebElementInfo } from './page-cfd75cdf.js';
3
3
  import { PlanningAIResponse, AIElementIdResponse, Insight, GroupedActionDump, InsightAction, ExecutionDump, AgentAssertOpt, AgentWaitForOpt, OnTaskStartTip, ExecutionTaskProgressOptions, Executor, InsightExtractParam, InsightAssertionResponse, PlanningActionParamWaitFor } from '@midscene/core';
4
4
  import { ChatCompletionMessageParam } from '@midscene/core/ai-model';
5
5
  import { getRunningPkgInfo } from '@midscene/shared/fs';
@@ -79,6 +79,7 @@ declare class TaskCache {
79
79
  }
80
80
 
81
81
  interface PageAgentOpt {
82
+ trackingActiveTab?: boolean;
82
83
  testId?: string;
83
84
  cacheId?: string;
84
85
  groupName?: string;
@@ -110,7 +111,7 @@ declare class PageAgent<PageType extends WebPage = WebPage> {
110
111
  private callbackOnTaskStartTip;
111
112
  aiAction(taskPrompt: string): Promise<void>;
112
113
  aiQuery(demand: any): Promise<any>;
113
- aiAssert(assertion: string, msg?: string, opt?: AgentAssertOpt): Promise<_midscene_core_dist_lib_types_types_64c4d87b.n | undefined>;
114
+ aiAssert(assertion: string, msg?: string, opt?: AgentAssertOpt): Promise<_midscene_core_dist_lib_types_types_7fe32cfe.n | undefined>;
114
115
  aiWaitFor(assertion: string, opt?: AgentWaitForOpt): Promise<void>;
115
116
  ai(taskPrompt: string, type?: string): Promise<any>;
116
117
  destroy(): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { P as PageAgent } from './tasks-f2973dd7.js';
1
+ import { P as PageAgent } from './tasks-681afd8a.js';
2
2
  import { ScriptPlayerTaskStatus, ScriptPlayerStatusValue, MidsceneYamlScript, MidsceneYamlScriptEnv, FreeFn, MidsceneYamlFlowItem } from '@midscene/core';
3
3
 
4
4
  declare class ScriptPlayer {
@@ -1,7 +1,7 @@
1
1
  import '@midscene/core';
2
- export { a as ERROR_CODE_NOT_IMPLEMENTED_AS_DESIGNED, d as WebUIContext, i as generateCacheId, h as getCurrentExecutionFile, g as getExtraReturnLogic, p as parseContextFromWebPage, f as printReportMsg, r as reportFileName } from './page-fc3be0ec.js';
2
+ export { a as ERROR_CODE_NOT_IMPLEMENTED_AS_DESIGNED, d as WebUIContext, i as generateCacheId, h as getCurrentExecutionFile, g as getExtraReturnLogic, p as parseContextFromWebPage, f as printReportMsg, r as reportFileName } from './page-cfd75cdf.js';
3
3
  import 'playwright';
4
4
  import 'puppeteer';
5
5
  import '@midscene/shared/constants';
6
- import '@midscene/core/dist/lib/types/types-64c4d87b';
6
+ import '@midscene/core/dist/lib/types/types-7fe32cfe';
7
7
  import 'webdriverio';
@@ -1,8 +1,8 @@
1
- export { S as ScriptPlayer, f as flowItemBrief, p as parseYamlScript } from './utils-ccbb6ff6.js';
1
+ export { S as ScriptPlayer, f as flowItemBrief, p as parseYamlScript } from './utils-1c43a008.js';
2
2
  import { MidsceneYamlScriptEnv, MidsceneYamlTask } from '@midscene/core';
3
- import './tasks-f2973dd7.js';
4
- import '@midscene/core/dist/lib/types/types-64c4d87b';
5
- import './page-fc3be0ec.js';
3
+ import './tasks-681afd8a.js';
4
+ import '@midscene/core/dist/lib/types/types-7fe32cfe';
5
+ import './page-cfd75cdf.js';
6
6
  import 'playwright';
7
7
  import 'puppeteer';
8
8
  import '@midscene/shared/constants';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@midscene/web",
3
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": "0.10.1",
4
+ "version": "0.10.2",
5
5
  "repository": "https://github.com/web-infra-dev/midscene",
6
6
  "homepage": "https://midscenejs.com/",
7
7
  "jsnext:source": "./src/index.ts",
@@ -139,8 +139,8 @@
139
139
  "openai": "4.57.1",
140
140
  "socket.io": "4.8.1",
141
141
  "socket.io-client": "4.8.1",
142
- "@midscene/core": "0.10.1",
143
- "@midscene/shared": "0.10.1"
142
+ "@midscene/core": "0.10.2",
143
+ "@midscene/shared": "0.10.2"
144
144
  },
145
145
  "devDependencies": {
146
146
  "@modern-js/module-tools": "2.60.6",
@@ -199,6 +199,8 @@
199
199
  "test": "vitest --run",
200
200
  "test:u": "vitest --run -u",
201
201
  "test:ai": "AI_TEST_TYPE=web npm run test",
202
+ "test:ai:temp": "AI_TEST_TYPE=web BRIDGE_MODE=true vitest --run tests/ai/bridge/temp.test.ts",
203
+ "test:ai:bridge": "BRIDGE_MODE=true npm run test --inspect tests/ai/bridge/agent.test.ts",
202
204
  "test:ai:cache": "MIDSCENE_CACHE=true AI_TEST_TYPE=web npm run test",
203
205
  "test:ai:all": "npm run test:ai:web && npm run test:ai:native",
204
206
  "test:ai:native": "MIDSCENE_CACHE=true AI_TEST_TYPE=native npm run test",