@midscene/web 0.8.6 → 0.8.7

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/appium.js CHANGED
@@ -1235,26 +1235,42 @@ var PageTaskExecutor = class {
1235
1235
  param: plan2.param,
1236
1236
  thought: plan2.thought,
1237
1237
  locate: plan2.locate,
1238
- executor: async (taskParam) => {
1239
- const scrollToEventName = taskParam.scrollType;
1240
- switch (scrollToEventName) {
1241
- case "scrollUntilTop":
1242
- await this.page.scrollUntilTop();
1243
- break;
1244
- case "scrollUntilBottom":
1245
- await this.page.scrollUntilBottom();
1246
- break;
1247
- case "scrollUpOneScreen":
1248
- await this.page.scrollUpOneScreen();
1249
- break;
1250
- case "scrollDownOneScreen":
1251
- await this.page.scrollDownOneScreen();
1252
- break;
1253
- default:
1254
- console.error(
1255
- "Unknown scroll event type:",
1256
- scrollToEventName
1238
+ executor: async (taskParam, { element }) => {
1239
+ if (element) {
1240
+ await this.page.mouse.move(
1241
+ element.center[0],
1242
+ element.center[1]
1243
+ );
1244
+ }
1245
+ const scrollToEventName = taskParam == null ? void 0 : taskParam.scrollType;
1246
+ if (scrollToEventName === "untilTop") {
1247
+ await this.page.scrollUntilTop();
1248
+ } else if (scrollToEventName === "untilBottom") {
1249
+ await this.page.scrollUntilBottom();
1250
+ } else if (scrollToEventName === "untilRight") {
1251
+ await this.page.scrollUntilRight();
1252
+ } else if (scrollToEventName === "untilLeft") {
1253
+ await this.page.scrollUntilLeft();
1254
+ } else if (scrollToEventName === "once") {
1255
+ if (taskParam.direction === "down") {
1256
+ await this.page.scrollDown(taskParam.distance || void 0);
1257
+ } else if (taskParam.direction === "up") {
1258
+ await this.page.scrollUp(taskParam.distance || void 0);
1259
+ } else if (taskParam.direction === "left") {
1260
+ await this.page.scrollLeft(taskParam.distance || void 0);
1261
+ } else if (taskParam.direction === "right") {
1262
+ await this.page.scrollRight(taskParam.distance || void 0);
1263
+ } else {
1264
+ throw new Error(
1265
+ `Unknown scroll direction: ${taskParam.direction}`
1257
1266
  );
1267
+ }
1268
+ } else {
1269
+ throw new Error(
1270
+ `Unknown scroll event type: ${scrollToEventName}, taskParam: ${JSON.stringify(
1271
+ taskParam
1272
+ )}`
1273
+ );
1258
1274
  }
1259
1275
  }
1260
1276
  };
@@ -1283,6 +1299,17 @@ var PageTaskExecutor = class {
1283
1299
  }
1284
1300
  };
1285
1301
  tasks.push(taskActionError);
1302
+ } else if (plan2.type === "FalsyConditionStatement") {
1303
+ const taskActionFalsyConditionStatement = {
1304
+ type: "Action",
1305
+ subType: "FalsyConditionStatement",
1306
+ param: null,
1307
+ thought: plan2.thought,
1308
+ locate: plan2.locate,
1309
+ executor: async () => {
1310
+ }
1311
+ };
1312
+ tasks.push(taskActionFalsyConditionStatement);
1286
1313
  } else {
1287
1314
  throw new Error(`Unknown or unsupported task type: ${plan2.type}`);
1288
1315
  }
@@ -1402,6 +1429,9 @@ var PageTaskExecutor = class {
1402
1429
  const errorMsg = "Replanning too many times, please split the task into multiple steps";
1403
1430
  return this.appendErrorPlan(taskExecutor, errorMsg);
1404
1431
  }
1432
+ if (replanCount > 0) {
1433
+ await (0, import_utils3.sleep)(300);
1434
+ }
1405
1435
  await taskExecutor.append(planningTask);
1406
1436
  const planResult = await taskExecutor.flush();
1407
1437
  if (taskExecutor.isInErrorState()) {
@@ -2116,24 +2146,48 @@ var Page = class {
2116
2146
  return "";
2117
2147
  }
2118
2148
  // Scroll to top element
2119
- async scrollUntilTop() {
2149
+ async scrollUntilTop(distance) {
2120
2150
  const { height } = await this.browser.getWindowSize();
2121
- await this.mouseWheel(0, height, 100);
2151
+ const scrollDistance = distance || height * 0.7;
2152
+ await this.mouseWheel(0, -scrollDistance, 100);
2122
2153
  }
2123
2154
  // Scroll to bottom element
2124
- async scrollUntilBottom() {
2155
+ async scrollUntilBottom(distance) {
2125
2156
  const { height } = await this.browser.getWindowSize();
2126
- await this.mouseWheel(0, -height, 100);
2157
+ const scrollDistance = distance || height * 0.7;
2158
+ await this.mouseWheel(0, scrollDistance, 100);
2159
+ }
2160
+ async scrollUntilLeft(distance) {
2161
+ const { width } = await this.browser.getWindowSize();
2162
+ const scrollDistance = distance || width * 0.7;
2163
+ await this.mouseWheel(-scrollDistance, 0, 100);
2164
+ }
2165
+ async scrollUntilRight(distance) {
2166
+ const { width } = await this.browser.getWindowSize();
2167
+ const scrollDistance = distance || width * 0.7;
2168
+ await this.mouseWheel(scrollDistance, 0, 100);
2127
2169
  }
2128
2170
  // Scroll up one screen
2129
- async scrollUpOneScreen() {
2171
+ async scrollUp(distance) {
2130
2172
  const { height } = await this.browser.getWindowSize();
2131
- await this.mouseWheel(0, height, 1e3);
2173
+ const scrollDistance = distance || height * 0.7;
2174
+ await this.mouseWheel(0, -scrollDistance, 1e3);
2132
2175
  }
2133
2176
  // Scroll down one screen
2134
- async scrollDownOneScreen() {
2177
+ async scrollDown(distance) {
2135
2178
  const { height } = await this.browser.getWindowSize();
2136
- await this.mouseWheel(0, -height, 1e3);
2179
+ const scrollDistance = distance || height * 0.7;
2180
+ await this.mouseWheel(0, scrollDistance, 1e3);
2181
+ }
2182
+ async scrollLeft(distance) {
2183
+ const { width } = await this.browser.getWindowSize();
2184
+ const scrollDistance = distance || width * 0.7;
2185
+ await this.mouseWheel(-scrollDistance, 0, 1e3);
2186
+ }
2187
+ async scrollRight(distance) {
2188
+ const { width } = await this.browser.getWindowSize();
2189
+ const scrollDistance = distance || width * 0.7;
2190
+ await this.mouseWheel(scrollDistance, 0, 1e3);
2137
2191
  }
2138
2192
  async keyboardType(text) {
2139
2193
  const actions = [];
@@ -831,26 +831,42 @@ var PageTaskExecutor = class {
831
831
  param: plan2.param,
832
832
  thought: plan2.thought,
833
833
  locate: plan2.locate,
834
- executor: async (taskParam) => {
835
- const scrollToEventName = taskParam.scrollType;
836
- switch (scrollToEventName) {
837
- case "scrollUntilTop":
838
- await this.page.scrollUntilTop();
839
- break;
840
- case "scrollUntilBottom":
841
- await this.page.scrollUntilBottom();
842
- break;
843
- case "scrollUpOneScreen":
844
- await this.page.scrollUpOneScreen();
845
- break;
846
- case "scrollDownOneScreen":
847
- await this.page.scrollDownOneScreen();
848
- break;
849
- default:
850
- console.error(
851
- "Unknown scroll event type:",
852
- scrollToEventName
834
+ executor: async (taskParam, { element }) => {
835
+ if (element) {
836
+ await this.page.mouse.move(
837
+ element.center[0],
838
+ element.center[1]
839
+ );
840
+ }
841
+ const scrollToEventName = taskParam == null ? void 0 : taskParam.scrollType;
842
+ if (scrollToEventName === "untilTop") {
843
+ await this.page.scrollUntilTop();
844
+ } else if (scrollToEventName === "untilBottom") {
845
+ await this.page.scrollUntilBottom();
846
+ } else if (scrollToEventName === "untilRight") {
847
+ await this.page.scrollUntilRight();
848
+ } else if (scrollToEventName === "untilLeft") {
849
+ await this.page.scrollUntilLeft();
850
+ } else if (scrollToEventName === "once") {
851
+ if (taskParam.direction === "down") {
852
+ await this.page.scrollDown(taskParam.distance || void 0);
853
+ } else if (taskParam.direction === "up") {
854
+ await this.page.scrollUp(taskParam.distance || void 0);
855
+ } else if (taskParam.direction === "left") {
856
+ await this.page.scrollLeft(taskParam.distance || void 0);
857
+ } else if (taskParam.direction === "right") {
858
+ await this.page.scrollRight(taskParam.distance || void 0);
859
+ } else {
860
+ throw new Error(
861
+ `Unknown scroll direction: ${taskParam.direction}`
853
862
  );
863
+ }
864
+ } else {
865
+ throw new Error(
866
+ `Unknown scroll event type: ${scrollToEventName}, taskParam: ${JSON.stringify(
867
+ taskParam
868
+ )}`
869
+ );
854
870
  }
855
871
  }
856
872
  };
@@ -879,6 +895,17 @@ var PageTaskExecutor = class {
879
895
  }
880
896
  };
881
897
  tasks.push(taskActionError);
898
+ } else if (plan2.type === "FalsyConditionStatement") {
899
+ const taskActionFalsyConditionStatement = {
900
+ type: "Action",
901
+ subType: "FalsyConditionStatement",
902
+ param: null,
903
+ thought: plan2.thought,
904
+ locate: plan2.locate,
905
+ executor: async () => {
906
+ }
907
+ };
908
+ tasks.push(taskActionFalsyConditionStatement);
882
909
  } else {
883
910
  throw new Error(`Unknown or unsupported task type: ${plan2.type}`);
884
911
  }
@@ -998,6 +1025,9 @@ var PageTaskExecutor = class {
998
1025
  const errorMsg = "Replanning too many times, please split the task into multiple steps";
999
1026
  return this.appendErrorPlan(taskExecutor, errorMsg);
1000
1027
  }
1028
+ if (replanCount > 0) {
1029
+ await (0, import_utils5.sleep)(300);
1030
+ }
1001
1031
  await taskExecutor.append(planningTask);
1002
1032
  const planResult = await taskExecutor.flush();
1003
1033
  if (taskExecutor.isInErrorState()) {
@@ -1524,21 +1554,31 @@ var ChromeExtensionProxyPage = class {
1524
1554
  async scrollUntilBottom() {
1525
1555
  return this.mouse.wheel(0, 9999999);
1526
1556
  }
1527
- async scrollUpOneScreen() {
1528
- await chrome.scripting.executeScript({
1529
- target: { tabId: this.tabId, allFrames: true },
1530
- func: () => {
1531
- window.scrollBy(0, -window.innerHeight * 0.7);
1532
- }
1533
- });
1557
+ async scrollUntilLeft() {
1558
+ return this.mouse.wheel(-9999999, 0);
1534
1559
  }
1535
- async scrollDownOneScreen() {
1536
- await chrome.scripting.executeScript({
1537
- target: { tabId: this.tabId, allFrames: true },
1538
- func: () => {
1539
- window.scrollBy(0, window.innerHeight * 0.7);
1540
- }
1541
- });
1560
+ async scrollUntilRight() {
1561
+ return this.mouse.wheel(9999999, 0);
1562
+ }
1563
+ async scrollUp(distance) {
1564
+ const { height } = await this.size();
1565
+ const scrollDistance = distance || height * 0.7;
1566
+ return this.mouse.wheel(0, -scrollDistance);
1567
+ }
1568
+ async scrollDown(distance) {
1569
+ const { height } = await this.size();
1570
+ const scrollDistance = distance || height * 0.7;
1571
+ return this.mouse.wheel(0, scrollDistance);
1572
+ }
1573
+ async scrollLeft(distance) {
1574
+ const { width } = await this.size();
1575
+ const scrollDistance = distance || width * 0.7;
1576
+ return this.mouse.wheel(-scrollDistance, 0);
1577
+ }
1578
+ async scrollRight(distance) {
1579
+ const { width } = await this.size();
1580
+ const scrollDistance = distance || width * 0.7;
1581
+ return this.mouse.wheel(scrollDistance, 0);
1542
1582
  }
1543
1583
  async clearInput(element) {
1544
1584
  if (!element) {
package/dist/es/index.js CHANGED
@@ -1243,26 +1243,42 @@ var PageTaskExecutor = class {
1243
1243
  param: plan2.param,
1244
1244
  thought: plan2.thought,
1245
1245
  locate: plan2.locate,
1246
- executor: async (taskParam) => {
1247
- const scrollToEventName = taskParam.scrollType;
1248
- switch (scrollToEventName) {
1249
- case "scrollUntilTop":
1250
- await this.page.scrollUntilTop();
1251
- break;
1252
- case "scrollUntilBottom":
1253
- await this.page.scrollUntilBottom();
1254
- break;
1255
- case "scrollUpOneScreen":
1256
- await this.page.scrollUpOneScreen();
1257
- break;
1258
- case "scrollDownOneScreen":
1259
- await this.page.scrollDownOneScreen();
1260
- break;
1261
- default:
1262
- console.error(
1263
- "Unknown scroll event type:",
1264
- scrollToEventName
1246
+ executor: async (taskParam, { element }) => {
1247
+ if (element) {
1248
+ await this.page.mouse.move(
1249
+ element.center[0],
1250
+ element.center[1]
1251
+ );
1252
+ }
1253
+ const scrollToEventName = taskParam == null ? void 0 : taskParam.scrollType;
1254
+ if (scrollToEventName === "untilTop") {
1255
+ await this.page.scrollUntilTop();
1256
+ } else if (scrollToEventName === "untilBottom") {
1257
+ await this.page.scrollUntilBottom();
1258
+ } else if (scrollToEventName === "untilRight") {
1259
+ await this.page.scrollUntilRight();
1260
+ } else if (scrollToEventName === "untilLeft") {
1261
+ await this.page.scrollUntilLeft();
1262
+ } else if (scrollToEventName === "once") {
1263
+ if (taskParam.direction === "down") {
1264
+ await this.page.scrollDown(taskParam.distance || void 0);
1265
+ } else if (taskParam.direction === "up") {
1266
+ await this.page.scrollUp(taskParam.distance || void 0);
1267
+ } else if (taskParam.direction === "left") {
1268
+ await this.page.scrollLeft(taskParam.distance || void 0);
1269
+ } else if (taskParam.direction === "right") {
1270
+ await this.page.scrollRight(taskParam.distance || void 0);
1271
+ } else {
1272
+ throw new Error(
1273
+ `Unknown scroll direction: ${taskParam.direction}`
1265
1274
  );
1275
+ }
1276
+ } else {
1277
+ throw new Error(
1278
+ `Unknown scroll event type: ${scrollToEventName}, taskParam: ${JSON.stringify(
1279
+ taskParam
1280
+ )}`
1281
+ );
1266
1282
  }
1267
1283
  }
1268
1284
  };
@@ -1291,6 +1307,17 @@ var PageTaskExecutor = class {
1291
1307
  }
1292
1308
  };
1293
1309
  tasks.push(taskActionError);
1310
+ } else if (plan2.type === "FalsyConditionStatement") {
1311
+ const taskActionFalsyConditionStatement = {
1312
+ type: "Action",
1313
+ subType: "FalsyConditionStatement",
1314
+ param: null,
1315
+ thought: plan2.thought,
1316
+ locate: plan2.locate,
1317
+ executor: async () => {
1318
+ }
1319
+ };
1320
+ tasks.push(taskActionFalsyConditionStatement);
1294
1321
  } else {
1295
1322
  throw new Error(`Unknown or unsupported task type: ${plan2.type}`);
1296
1323
  }
@@ -1410,6 +1437,9 @@ var PageTaskExecutor = class {
1410
1437
  const errorMsg = "Replanning too many times, please split the task into multiple steps";
1411
1438
  return this.appendErrorPlan(taskExecutor, errorMsg);
1412
1439
  }
1440
+ if (replanCount > 0) {
1441
+ await (0, import_utils3.sleep)(300);
1442
+ }
1413
1443
  await taskExecutor.append(planningTask);
1414
1444
  const planResult = await taskExecutor.flush();
1415
1445
  if (taskExecutor.isInErrorState()) {
@@ -2095,15 +2125,31 @@ var Page = class {
2095
2125
  scrollUntilBottom() {
2096
2126
  return this.mouse.wheel(0, 9999999);
2097
2127
  }
2098
- async scrollUpOneScreen() {
2128
+ scrollUntilLeft() {
2129
+ return this.mouse.wheel(-9999999, 0);
2130
+ }
2131
+ scrollUntilRight() {
2132
+ return this.mouse.wheel(9999999, 0);
2133
+ }
2134
+ async scrollUp(distance) {
2099
2135
  const innerHeight = await this.evaluate(() => window.innerHeight);
2100
- const distance = innerHeight * 0.7;
2101
- await this.mouse.wheel(0, -distance);
2136
+ const scrollDistance = distance || innerHeight * 0.7;
2137
+ await this.mouse.wheel(0, -scrollDistance);
2102
2138
  }
2103
- async scrollDownOneScreen() {
2139
+ async scrollDown(distance) {
2104
2140
  const innerHeight = await this.evaluate(() => window.innerHeight);
2105
- const distance = innerHeight * 0.7;
2106
- await this.mouse.wheel(0, distance);
2141
+ const scrollDistance = distance || innerHeight * 0.7;
2142
+ await this.mouse.wheel(0, scrollDistance);
2143
+ }
2144
+ async scrollLeft(distance) {
2145
+ const innerWidth = await this.evaluate(() => window.innerWidth);
2146
+ const scrollDistance = distance || innerWidth * 0.7;
2147
+ await this.mouse.wheel(-scrollDistance, 0);
2148
+ }
2149
+ async scrollRight(distance) {
2150
+ const innerWidth = await this.evaluate(() => window.innerWidth);
2151
+ const scrollDistance = distance || innerWidth * 0.7;
2152
+ await this.mouse.wheel(scrollDistance, 0);
2107
2153
  }
2108
2154
  async destroy() {
2109
2155
  }
@@ -2425,24 +2471,48 @@ var Page2 = class {
2425
2471
  return "";
2426
2472
  }
2427
2473
  // Scroll to top element
2428
- async scrollUntilTop() {
2474
+ async scrollUntilTop(distance) {
2429
2475
  const { height } = await this.browser.getWindowSize();
2430
- await this.mouseWheel(0, height, 100);
2476
+ const scrollDistance = distance || height * 0.7;
2477
+ await this.mouseWheel(0, -scrollDistance, 100);
2431
2478
  }
2432
2479
  // Scroll to bottom element
2433
- async scrollUntilBottom() {
2480
+ async scrollUntilBottom(distance) {
2434
2481
  const { height } = await this.browser.getWindowSize();
2435
- await this.mouseWheel(0, -height, 100);
2482
+ const scrollDistance = distance || height * 0.7;
2483
+ await this.mouseWheel(0, scrollDistance, 100);
2484
+ }
2485
+ async scrollUntilLeft(distance) {
2486
+ const { width } = await this.browser.getWindowSize();
2487
+ const scrollDistance = distance || width * 0.7;
2488
+ await this.mouseWheel(-scrollDistance, 0, 100);
2489
+ }
2490
+ async scrollUntilRight(distance) {
2491
+ const { width } = await this.browser.getWindowSize();
2492
+ const scrollDistance = distance || width * 0.7;
2493
+ await this.mouseWheel(scrollDistance, 0, 100);
2436
2494
  }
2437
2495
  // Scroll up one screen
2438
- async scrollUpOneScreen() {
2496
+ async scrollUp(distance) {
2439
2497
  const { height } = await this.browser.getWindowSize();
2440
- await this.mouseWheel(0, height, 1e3);
2498
+ const scrollDistance = distance || height * 0.7;
2499
+ await this.mouseWheel(0, -scrollDistance, 1e3);
2441
2500
  }
2442
2501
  // Scroll down one screen
2443
- async scrollDownOneScreen() {
2502
+ async scrollDown(distance) {
2444
2503
  const { height } = await this.browser.getWindowSize();
2445
- await this.mouseWheel(0, -height, 1e3);
2504
+ const scrollDistance = distance || height * 0.7;
2505
+ await this.mouseWheel(0, scrollDistance, 1e3);
2506
+ }
2507
+ async scrollLeft(distance) {
2508
+ const { width } = await this.browser.getWindowSize();
2509
+ const scrollDistance = distance || width * 0.7;
2510
+ await this.mouseWheel(-scrollDistance, 0, 1e3);
2511
+ }
2512
+ async scrollRight(distance) {
2513
+ const { width } = await this.browser.getWindowSize();
2514
+ const scrollDistance = distance || width * 0.7;
2515
+ await this.mouseWheel(scrollDistance, 0, 1e3);
2446
2516
  }
2447
2517
  async keyboardType(text) {
2448
2518
  const actions = [];
@@ -1168,26 +1168,42 @@ var PageTaskExecutor = class {
1168
1168
  param: plan2.param,
1169
1169
  thought: plan2.thought,
1170
1170
  locate: plan2.locate,
1171
- executor: async (taskParam) => {
1172
- const scrollToEventName = taskParam.scrollType;
1173
- switch (scrollToEventName) {
1174
- case "scrollUntilTop":
1175
- await this.page.scrollUntilTop();
1176
- break;
1177
- case "scrollUntilBottom":
1178
- await this.page.scrollUntilBottom();
1179
- break;
1180
- case "scrollUpOneScreen":
1181
- await this.page.scrollUpOneScreen();
1182
- break;
1183
- case "scrollDownOneScreen":
1184
- await this.page.scrollDownOneScreen();
1185
- break;
1186
- default:
1187
- console.error(
1188
- "Unknown scroll event type:",
1189
- scrollToEventName
1171
+ executor: async (taskParam, { element }) => {
1172
+ if (element) {
1173
+ await this.page.mouse.move(
1174
+ element.center[0],
1175
+ element.center[1]
1176
+ );
1177
+ }
1178
+ const scrollToEventName = taskParam == null ? void 0 : taskParam.scrollType;
1179
+ if (scrollToEventName === "untilTop") {
1180
+ await this.page.scrollUntilTop();
1181
+ } else if (scrollToEventName === "untilBottom") {
1182
+ await this.page.scrollUntilBottom();
1183
+ } else if (scrollToEventName === "untilRight") {
1184
+ await this.page.scrollUntilRight();
1185
+ } else if (scrollToEventName === "untilLeft") {
1186
+ await this.page.scrollUntilLeft();
1187
+ } else if (scrollToEventName === "once") {
1188
+ if (taskParam.direction === "down") {
1189
+ await this.page.scrollDown(taskParam.distance || void 0);
1190
+ } else if (taskParam.direction === "up") {
1191
+ await this.page.scrollUp(taskParam.distance || void 0);
1192
+ } else if (taskParam.direction === "left") {
1193
+ await this.page.scrollLeft(taskParam.distance || void 0);
1194
+ } else if (taskParam.direction === "right") {
1195
+ await this.page.scrollRight(taskParam.distance || void 0);
1196
+ } else {
1197
+ throw new Error(
1198
+ `Unknown scroll direction: ${taskParam.direction}`
1190
1199
  );
1200
+ }
1201
+ } else {
1202
+ throw new Error(
1203
+ `Unknown scroll event type: ${scrollToEventName}, taskParam: ${JSON.stringify(
1204
+ taskParam
1205
+ )}`
1206
+ );
1191
1207
  }
1192
1208
  }
1193
1209
  };
@@ -1216,6 +1232,17 @@ var PageTaskExecutor = class {
1216
1232
  }
1217
1233
  };
1218
1234
  tasks.push(taskActionError);
1235
+ } else if (plan2.type === "FalsyConditionStatement") {
1236
+ const taskActionFalsyConditionStatement = {
1237
+ type: "Action",
1238
+ subType: "FalsyConditionStatement",
1239
+ param: null,
1240
+ thought: plan2.thought,
1241
+ locate: plan2.locate,
1242
+ executor: async () => {
1243
+ }
1244
+ };
1245
+ tasks.push(taskActionFalsyConditionStatement);
1219
1246
  } else {
1220
1247
  throw new Error(`Unknown or unsupported task type: ${plan2.type}`);
1221
1248
  }
@@ -1335,6 +1362,9 @@ var PageTaskExecutor = class {
1335
1362
  const errorMsg = "Replanning too many times, please split the task into multiple steps";
1336
1363
  return this.appendErrorPlan(taskExecutor, errorMsg);
1337
1364
  }
1365
+ if (replanCount > 0) {
1366
+ await (0, import_utils5.sleep)(300);
1367
+ }
1338
1368
  await taskExecutor.append(planningTask);
1339
1369
  const planResult = await taskExecutor.flush();
1340
1370
  if (taskExecutor.isInErrorState()) {
@@ -1704,11 +1734,23 @@ var StaticPage = class {
1704
1734
  async scrollUntilBottom() {
1705
1735
  return ThrowNotImplemented("scrollUntilBottom");
1706
1736
  }
1707
- async scrollUpOneScreen() {
1708
- return ThrowNotImplemented("scrollUpOneScreen");
1737
+ async scrollUntilLeft() {
1738
+ return ThrowNotImplemented("scrollUntilLeft");
1739
+ }
1740
+ async scrollUntilRight() {
1741
+ return ThrowNotImplemented("scrollUntilRight");
1742
+ }
1743
+ async scrollUp(distance) {
1744
+ return ThrowNotImplemented("scrollUp");
1745
+ }
1746
+ async scrollDown(distance) {
1747
+ return ThrowNotImplemented("scrollDown");
1748
+ }
1749
+ async scrollLeft(distance) {
1750
+ return ThrowNotImplemented("scrollLeft");
1709
1751
  }
1710
- async scrollDownOneScreen() {
1711
- return ThrowNotImplemented("scrollDownOneScreen");
1752
+ async scrollRight(distance) {
1753
+ return ThrowNotImplemented("scrollRight");
1712
1754
  }
1713
1755
  async clearInput() {
1714
1756
  return ThrowNotImplemented("clearInput");