@midscene/web 0.17.3 → 0.17.4-beta-20250528162713.0

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 (62) hide show
  1. package/dist/es/agent.js +41 -4
  2. package/dist/es/agent.js.map +1 -1
  3. package/dist/es/bridge-mode-browser.js +41 -17
  4. package/dist/es/bridge-mode-browser.js.map +1 -1
  5. package/dist/es/bridge-mode.js +43 -6
  6. package/dist/es/bridge-mode.js.map +1 -1
  7. package/dist/es/chrome-extension.js +80 -19
  8. package/dist/es/chrome-extension.js.map +1 -1
  9. package/dist/es/index.js +53 -8
  10. package/dist/es/index.js.map +1 -1
  11. package/dist/es/midscene-playground.js +41 -4
  12. package/dist/es/midscene-playground.js.map +1 -1
  13. package/dist/es/playground.js +41 -4
  14. package/dist/es/playground.js.map +1 -1
  15. package/dist/es/playwright.js +50 -5
  16. package/dist/es/playwright.js.map +1 -1
  17. package/dist/es/puppeteer-agent-launcher.js +45 -8
  18. package/dist/es/puppeteer-agent-launcher.js.map +1 -1
  19. package/dist/es/puppeteer.js +45 -8
  20. package/dist/es/puppeteer.js.map +1 -1
  21. package/dist/es/ui-utils.js.map +1 -1
  22. package/dist/es/yaml.js +5 -1
  23. package/dist/es/yaml.js.map +1 -1
  24. package/dist/lib/agent.js +41 -4
  25. package/dist/lib/agent.js.map +1 -1
  26. package/dist/lib/bridge-mode-browser.js +41 -17
  27. package/dist/lib/bridge-mode-browser.js.map +1 -1
  28. package/dist/lib/bridge-mode.js +43 -6
  29. package/dist/lib/bridge-mode.js.map +1 -1
  30. package/dist/lib/chrome-extension.js +80 -19
  31. package/dist/lib/chrome-extension.js.map +1 -1
  32. package/dist/lib/index.js +53 -8
  33. package/dist/lib/index.js.map +1 -1
  34. package/dist/lib/midscene-playground.js +41 -4
  35. package/dist/lib/midscene-playground.js.map +1 -1
  36. package/dist/lib/playground.js +41 -4
  37. package/dist/lib/playground.js.map +1 -1
  38. package/dist/lib/playwright.js +50 -5
  39. package/dist/lib/playwright.js.map +1 -1
  40. package/dist/lib/puppeteer-agent-launcher.js +45 -8
  41. package/dist/lib/puppeteer-agent-launcher.js.map +1 -1
  42. package/dist/lib/puppeteer.js +45 -8
  43. package/dist/lib/puppeteer.js.map +1 -1
  44. package/dist/lib/ui-utils.js.map +1 -1
  45. package/dist/lib/yaml.js +5 -1
  46. package/dist/lib/yaml.js.map +1 -1
  47. package/dist/types/agent.d.ts +2 -1
  48. package/dist/types/bridge-mode-browser.d.ts +2 -2
  49. package/dist/types/bridge-mode.d.ts +2 -2
  50. package/dist/types/{browser-dd81e35b.d.ts → browser-6f60e23c.d.ts} +1 -1
  51. package/dist/types/chrome-extension.d.ts +2 -2
  52. package/dist/types/index.d.ts +1 -1
  53. package/dist/types/midscene-server.d.ts +1 -1
  54. package/dist/types/{page-cd833f42.d.ts → page-25a629c6.d.ts} +1 -0
  55. package/dist/types/playground.d.ts +2 -2
  56. package/dist/types/playwright.d.ts +5 -1
  57. package/dist/types/puppeteer-agent-launcher.d.ts +1 -1
  58. package/dist/types/puppeteer.d.ts +1 -1
  59. package/dist/types/ui-utils.d.ts +1 -1
  60. package/dist/types/utils.d.ts +1 -1
  61. package/dist/types/yaml.d.ts +1 -1
  62. package/package.json +3 -3
package/dist/es/agent.js CHANGED
@@ -96,12 +96,13 @@ var ScriptPlayer = class {
96
96
  } else if ("aiAssert" in flowItem) {
97
97
  const assertTask = flowItem;
98
98
  const prompt = assertTask.aiAssert;
99
+ const msg = assertTask.errorMessage;
99
100
  assert(prompt, "missing prompt for aiAssert");
100
101
  assert(
101
102
  typeof prompt === "string",
102
103
  "prompt for aiAssert must be a string"
103
104
  );
104
- await agent.aiAssert(prompt);
105
+ await agent.aiAssert(prompt, msg);
105
106
  } else if ("aiQuery" in flowItem) {
106
107
  const queryTask = flowItem;
107
108
  const prompt = queryTask.aiQuery;
@@ -177,6 +178,9 @@ var ScriptPlayer = class {
177
178
  } else if ("aiTap" in flowItem) {
178
179
  const tapTask = flowItem;
179
180
  await agent.aiTap(tapTask.aiTap, tapTask);
181
+ } else if ("aiRightClick" in flowItem) {
182
+ const rightClickTask = flowItem;
183
+ await agent.aiRightClick(rightClickTask.aiRightClick, rightClickTask);
180
184
  } else if ("aiHover" in flowItem) {
181
185
  const hoverTask = flowItem;
182
186
  await agent.aiHover(hoverTask.aiHover, hoverTask);
@@ -857,6 +861,22 @@ var PageTaskExecutor = class {
857
861
  }
858
862
  };
859
863
  tasks.push(taskActionTap);
864
+ } else if (plan2.type === "RightClick") {
865
+ const taskActionRightClick = {
866
+ type: "Action",
867
+ subType: "RightClick",
868
+ thought: plan2.thought,
869
+ locate: plan2.locate,
870
+ executor: async (param, { element }) => {
871
+ assert4(element, "Element not found, cannot right click");
872
+ await this.page.mouse.click(
873
+ element.center[0],
874
+ element.center[1],
875
+ { button: "right" }
876
+ );
877
+ }
878
+ };
879
+ tasks.push(taskActionRightClick);
860
880
  } else if (plan2.type === "Drag") {
861
881
  const taskActionDrag = {
862
882
  type: "Action",
@@ -1133,6 +1153,7 @@ var PageTaskExecutor = class {
1133
1153
  sleep: sleep2
1134
1154
  } = planResult;
1135
1155
  executorContext.task.log = {
1156
+ ...executorContext.task.log || {},
1136
1157
  rawResponse
1137
1158
  };
1138
1159
  executorContext.task.usage = usage;
@@ -1581,7 +1602,7 @@ function buildPlans(type, locateParam, param) {
1581
1602
  param: locateParam,
1582
1603
  thought: ""
1583
1604
  } : null;
1584
- if (type === "Tap" || type === "Hover") {
1605
+ if (type === "Tap" || type === "Hover" || type === "RightClick") {
1585
1606
  assert5(locateParam, `missing locate info for action "${type}"`);
1586
1607
  assert5(locatePlan, `missing locate info for action "${type}"`);
1587
1608
  const tapPlan = {
@@ -1661,7 +1682,7 @@ import yaml3 from "js-yaml";
1661
1682
  import semver from "semver";
1662
1683
 
1663
1684
  // package.json
1664
- var version = "0.17.3";
1685
+ var version = "0.17.4-beta-20250528162713.0";
1665
1686
 
1666
1687
  // src/common/task-cache.ts
1667
1688
  var debug3 = getDebug3("cache");
@@ -1966,6 +1987,19 @@ ${errorTask?.errorStack}`);
1966
1987
  this.afterTaskRunning(executor);
1967
1988
  return output;
1968
1989
  }
1990
+ async aiRightClick(locatePrompt, opt) {
1991
+ const detailedLocateParam = this.buildDetailedLocateParam(
1992
+ locatePrompt,
1993
+ opt
1994
+ );
1995
+ const plans = buildPlans("RightClick", detailedLocateParam);
1996
+ const { executor, output } = await this.taskExecutor.runPlans(
1997
+ taskTitleStr("RightClick", locateParamStr(detailedLocateParam)),
1998
+ plans
1999
+ );
2000
+ this.afterTaskRunning(executor);
2001
+ return output;
2002
+ }
1969
2003
  async aiHover(locatePrompt, opt) {
1970
2004
  const detailedLocateParam = this.buildDetailedLocateParam(
1971
2005
  locatePrompt,
@@ -2202,8 +2236,11 @@ ${errorTask?.errorStack}`);
2202
2236
  if (type === "tap") {
2203
2237
  return this.aiTap(taskPrompt);
2204
2238
  }
2239
+ if (type === "rightClick") {
2240
+ return this.aiRightClick(taskPrompt);
2241
+ }
2205
2242
  throw new Error(
2206
- `Unknown type: ${type}, only support 'action', 'query', 'assert', 'tap'`
2243
+ `Unknown type: ${type}, only support 'action', 'query', 'assert', 'tap', 'rightClick'`
2207
2244
  );
2208
2245
  }
2209
2246
  async runYaml(yamlScriptContent) {