oc-browser-relay 1.0.3 → 1.0.5

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 (377) hide show
  1. package/bundled-relay/index.js +263 -61
  2. package/bundled-relay/package.json +1 -4
  3. package/bundled-relay/public/configs/pages/sycm-taobao-home.json +85 -0
  4. package/bundled-relay/public/configs/pages/taobao-item-detail.json +10 -10
  5. package/bundled-relay/public/configs/pages/xiaohongshu-creator-publish.json +17 -17
  6. package/bundled-relay/public/configs/pages/xiaohongshu-web-explore.json +13 -13
  7. package/bundled-relay/public/configs/pages/xiaohongshu-web-search-result.json +23 -21
  8. package/bundled-relay/public/configs/task-templates/sycm-taobao-home-live-metrics.json +108 -1
  9. package/bundled-relay/public/configs/task-templates/taobao-item-detail-comments.json +11 -0
  10. package/index.js +1 -1
  11. package/install.mjs +5 -11
  12. package/package.json +1 -1
  13. package/skills/oc-browser-relay-xiaohongshu/SKILL.md +3 -1
  14. package/skills/oc-sycm-live-metrics/SKILL.md +15 -3
  15. package/bundled-relay/node_modules/playwright-core/LICENSE +0 -202
  16. package/bundled-relay/node_modules/playwright-core/NOTICE +0 -5
  17. package/bundled-relay/node_modules/playwright-core/README.md +0 -3
  18. package/bundled-relay/node_modules/playwright-core/ThirdPartyNotices.txt +0 -4076
  19. package/bundled-relay/node_modules/playwright-core/bin/install_media_pack.ps1 +0 -5
  20. package/bundled-relay/node_modules/playwright-core/bin/install_webkit_wsl.ps1 +0 -33
  21. package/bundled-relay/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh +0 -42
  22. package/bundled-relay/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh +0 -13
  23. package/bundled-relay/node_modules/playwright-core/bin/reinstall_chrome_beta_win.ps1 +0 -24
  24. package/bundled-relay/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh +0 -42
  25. package/bundled-relay/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh +0 -12
  26. package/bundled-relay/node_modules/playwright-core/bin/reinstall_chrome_stable_win.ps1 +0 -24
  27. package/bundled-relay/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh +0 -48
  28. package/bundled-relay/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh +0 -11
  29. package/bundled-relay/node_modules/playwright-core/bin/reinstall_msedge_beta_win.ps1 +0 -23
  30. package/bundled-relay/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh +0 -48
  31. package/bundled-relay/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh +0 -11
  32. package/bundled-relay/node_modules/playwright-core/bin/reinstall_msedge_dev_win.ps1 +0 -23
  33. package/bundled-relay/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh +0 -48
  34. package/bundled-relay/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh +0 -11
  35. package/bundled-relay/node_modules/playwright-core/bin/reinstall_msedge_stable_win.ps1 +0 -24
  36. package/bundled-relay/node_modules/playwright-core/browsers.json +0 -79
  37. package/bundled-relay/node_modules/playwright-core/cli.js +0 -18
  38. package/bundled-relay/node_modules/playwright-core/index.d.ts +0 -17
  39. package/bundled-relay/node_modules/playwright-core/index.js +0 -32
  40. package/bundled-relay/node_modules/playwright-core/index.mjs +0 -28
  41. package/bundled-relay/node_modules/playwright-core/lib/androidServerImpl.js +0 -65
  42. package/bundled-relay/node_modules/playwright-core/lib/browserServerImpl.js +0 -120
  43. package/bundled-relay/node_modules/playwright-core/lib/cli/driver.js +0 -97
  44. package/bundled-relay/node_modules/playwright-core/lib/cli/program.js +0 -589
  45. package/bundled-relay/node_modules/playwright-core/lib/cli/programWithTestStub.js +0 -74
  46. package/bundled-relay/node_modules/playwright-core/lib/client/android.js +0 -361
  47. package/bundled-relay/node_modules/playwright-core/lib/client/api.js +0 -137
  48. package/bundled-relay/node_modules/playwright-core/lib/client/artifact.js +0 -79
  49. package/bundled-relay/node_modules/playwright-core/lib/client/browser.js +0 -161
  50. package/bundled-relay/node_modules/playwright-core/lib/client/browserContext.js +0 -582
  51. package/bundled-relay/node_modules/playwright-core/lib/client/browserType.js +0 -185
  52. package/bundled-relay/node_modules/playwright-core/lib/client/cdpSession.js +0 -51
  53. package/bundled-relay/node_modules/playwright-core/lib/client/channelOwner.js +0 -194
  54. package/bundled-relay/node_modules/playwright-core/lib/client/clientHelper.js +0 -64
  55. package/bundled-relay/node_modules/playwright-core/lib/client/clientInstrumentation.js +0 -55
  56. package/bundled-relay/node_modules/playwright-core/lib/client/clientStackTrace.js +0 -69
  57. package/bundled-relay/node_modules/playwright-core/lib/client/clock.js +0 -68
  58. package/bundled-relay/node_modules/playwright-core/lib/client/connection.js +0 -318
  59. package/bundled-relay/node_modules/playwright-core/lib/client/consoleMessage.js +0 -58
  60. package/bundled-relay/node_modules/playwright-core/lib/client/coverage.js +0 -44
  61. package/bundled-relay/node_modules/playwright-core/lib/client/dialog.js +0 -56
  62. package/bundled-relay/node_modules/playwright-core/lib/client/download.js +0 -62
  63. package/bundled-relay/node_modules/playwright-core/lib/client/electron.js +0 -138
  64. package/bundled-relay/node_modules/playwright-core/lib/client/elementHandle.js +0 -284
  65. package/bundled-relay/node_modules/playwright-core/lib/client/errors.js +0 -77
  66. package/bundled-relay/node_modules/playwright-core/lib/client/eventEmitter.js +0 -314
  67. package/bundled-relay/node_modules/playwright-core/lib/client/events.js +0 -103
  68. package/bundled-relay/node_modules/playwright-core/lib/client/fetch.js +0 -368
  69. package/bundled-relay/node_modules/playwright-core/lib/client/fileChooser.js +0 -46
  70. package/bundled-relay/node_modules/playwright-core/lib/client/fileUtils.js +0 -34
  71. package/bundled-relay/node_modules/playwright-core/lib/client/frame.js +0 -409
  72. package/bundled-relay/node_modules/playwright-core/lib/client/harRouter.js +0 -87
  73. package/bundled-relay/node_modules/playwright-core/lib/client/input.js +0 -84
  74. package/bundled-relay/node_modules/playwright-core/lib/client/jsHandle.js +0 -109
  75. package/bundled-relay/node_modules/playwright-core/lib/client/jsonPipe.js +0 -39
  76. package/bundled-relay/node_modules/playwright-core/lib/client/localUtils.js +0 -60
  77. package/bundled-relay/node_modules/playwright-core/lib/client/locator.js +0 -369
  78. package/bundled-relay/node_modules/playwright-core/lib/client/network.js +0 -747
  79. package/bundled-relay/node_modules/playwright-core/lib/client/page.js +0 -745
  80. package/bundled-relay/node_modules/playwright-core/lib/client/pageAgent.js +0 -64
  81. package/bundled-relay/node_modules/playwright-core/lib/client/platform.js +0 -77
  82. package/bundled-relay/node_modules/playwright-core/lib/client/playwright.js +0 -71
  83. package/bundled-relay/node_modules/playwright-core/lib/client/selectors.js +0 -55
  84. package/bundled-relay/node_modules/playwright-core/lib/client/stream.js +0 -39
  85. package/bundled-relay/node_modules/playwright-core/lib/client/timeoutSettings.js +0 -79
  86. package/bundled-relay/node_modules/playwright-core/lib/client/tracing.js +0 -119
  87. package/bundled-relay/node_modules/playwright-core/lib/client/types.js +0 -28
  88. package/bundled-relay/node_modules/playwright-core/lib/client/video.js +0 -59
  89. package/bundled-relay/node_modules/playwright-core/lib/client/waiter.js +0 -142
  90. package/bundled-relay/node_modules/playwright-core/lib/client/webError.js +0 -39
  91. package/bundled-relay/node_modules/playwright-core/lib/client/webSocket.js +0 -93
  92. package/bundled-relay/node_modules/playwright-core/lib/client/worker.js +0 -85
  93. package/bundled-relay/node_modules/playwright-core/lib/client/writableStream.js +0 -39
  94. package/bundled-relay/node_modules/playwright-core/lib/generated/bindingsControllerSource.js +0 -28
  95. package/bundled-relay/node_modules/playwright-core/lib/generated/clockSource.js +0 -28
  96. package/bundled-relay/node_modules/playwright-core/lib/generated/injectedScriptSource.js +0 -28
  97. package/bundled-relay/node_modules/playwright-core/lib/generated/pollingRecorderSource.js +0 -28
  98. package/bundled-relay/node_modules/playwright-core/lib/generated/storageScriptSource.js +0 -28
  99. package/bundled-relay/node_modules/playwright-core/lib/generated/utilityScriptSource.js +0 -28
  100. package/bundled-relay/node_modules/playwright-core/lib/generated/webSocketMockSource.js +0 -336
  101. package/bundled-relay/node_modules/playwright-core/lib/inProcessFactory.js +0 -60
  102. package/bundled-relay/node_modules/playwright-core/lib/inprocess.js +0 -3
  103. package/bundled-relay/node_modules/playwright-core/lib/mcpBundle.js +0 -84
  104. package/bundled-relay/node_modules/playwright-core/lib/mcpBundleImpl/index.js +0 -147
  105. package/bundled-relay/node_modules/playwright-core/lib/outofprocess.js +0 -76
  106. package/bundled-relay/node_modules/playwright-core/lib/protocol/serializers.js +0 -197
  107. package/bundled-relay/node_modules/playwright-core/lib/protocol/validator.js +0 -2969
  108. package/bundled-relay/node_modules/playwright-core/lib/protocol/validatorPrimitives.js +0 -193
  109. package/bundled-relay/node_modules/playwright-core/lib/remote/playwrightConnection.js +0 -129
  110. package/bundled-relay/node_modules/playwright-core/lib/remote/playwrightServer.js +0 -334
  111. package/bundled-relay/node_modules/playwright-core/lib/server/agent/actionRunner.js +0 -335
  112. package/bundled-relay/node_modules/playwright-core/lib/server/agent/actions.js +0 -128
  113. package/bundled-relay/node_modules/playwright-core/lib/server/agent/codegen.js +0 -111
  114. package/bundled-relay/node_modules/playwright-core/lib/server/agent/context.js +0 -150
  115. package/bundled-relay/node_modules/playwright-core/lib/server/agent/expectTools.js +0 -156
  116. package/bundled-relay/node_modules/playwright-core/lib/server/agent/pageAgent.js +0 -204
  117. package/bundled-relay/node_modules/playwright-core/lib/server/agent/performTools.js +0 -262
  118. package/bundled-relay/node_modules/playwright-core/lib/server/agent/tool.js +0 -109
  119. package/bundled-relay/node_modules/playwright-core/lib/server/android/android.js +0 -465
  120. package/bundled-relay/node_modules/playwright-core/lib/server/android/backendAdb.js +0 -177
  121. package/bundled-relay/node_modules/playwright-core/lib/server/artifact.js +0 -127
  122. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiBrowser.js +0 -549
  123. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiChromium.js +0 -149
  124. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiConnection.js +0 -213
  125. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiDeserializer.js +0 -116
  126. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiExecutionContext.js +0 -267
  127. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiFirefox.js +0 -128
  128. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiInput.js +0 -146
  129. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiNetworkManager.js +0 -383
  130. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiOverCdp.js +0 -102
  131. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiPage.js +0 -583
  132. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/bidiPdf.js +0 -106
  133. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/third_party/bidiCommands.d.js +0 -22
  134. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/third_party/bidiKeyboard.js +0 -256
  135. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/third_party/bidiProtocol.js +0 -24
  136. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/third_party/bidiProtocolCore.js +0 -180
  137. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/third_party/bidiProtocolPermissions.js +0 -42
  138. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/third_party/bidiSerializer.js +0 -148
  139. package/bundled-relay/node_modules/playwright-core/lib/server/bidi/third_party/firefoxPrefs.js +0 -259
  140. package/bundled-relay/node_modules/playwright-core/lib/server/browser.js +0 -149
  141. package/bundled-relay/node_modules/playwright-core/lib/server/browserContext.js +0 -702
  142. package/bundled-relay/node_modules/playwright-core/lib/server/browserType.js +0 -336
  143. package/bundled-relay/node_modules/playwright-core/lib/server/callLog.js +0 -82
  144. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/appIcon.png +0 -0
  145. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/chromium.js +0 -397
  146. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/chromiumSwitches.js +0 -104
  147. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crBrowser.js +0 -520
  148. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crConnection.js +0 -197
  149. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crCoverage.js +0 -235
  150. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crDevTools.js +0 -111
  151. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crDragDrop.js +0 -131
  152. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crExecutionContext.js +0 -146
  153. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crInput.js +0 -187
  154. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crNetworkManager.js +0 -707
  155. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crPage.js +0 -1001
  156. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crPdf.js +0 -121
  157. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crProtocolHelper.js +0 -145
  158. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/crServiceWorker.js +0 -136
  159. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/defaultFontFamilies.js +0 -162
  160. package/bundled-relay/node_modules/playwright-core/lib/server/chromium/protocol.d.js +0 -16
  161. package/bundled-relay/node_modules/playwright-core/lib/server/clock.js +0 -149
  162. package/bundled-relay/node_modules/playwright-core/lib/server/codegen/csharp.js +0 -327
  163. package/bundled-relay/node_modules/playwright-core/lib/server/codegen/java.js +0 -274
  164. package/bundled-relay/node_modules/playwright-core/lib/server/codegen/javascript.js +0 -247
  165. package/bundled-relay/node_modules/playwright-core/lib/server/codegen/jsonl.js +0 -52
  166. package/bundled-relay/node_modules/playwright-core/lib/server/codegen/language.js +0 -132
  167. package/bundled-relay/node_modules/playwright-core/lib/server/codegen/languages.js +0 -68
  168. package/bundled-relay/node_modules/playwright-core/lib/server/codegen/python.js +0 -279
  169. package/bundled-relay/node_modules/playwright-core/lib/server/codegen/types.js +0 -16
  170. package/bundled-relay/node_modules/playwright-core/lib/server/console.js +0 -57
  171. package/bundled-relay/node_modules/playwright-core/lib/server/cookieStore.js +0 -206
  172. package/bundled-relay/node_modules/playwright-core/lib/server/debugController.js +0 -191
  173. package/bundled-relay/node_modules/playwright-core/lib/server/debugger.js +0 -119
  174. package/bundled-relay/node_modules/playwright-core/lib/server/deviceDescriptors.js +0 -39
  175. package/bundled-relay/node_modules/playwright-core/lib/server/deviceDescriptorsSource.json +0 -1779
  176. package/bundled-relay/node_modules/playwright-core/lib/server/dialog.js +0 -116
  177. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/androidDispatcher.js +0 -325
  178. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/artifactDispatcher.js +0 -118
  179. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/browserContextDispatcher.js +0 -384
  180. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/browserDispatcher.js +0 -118
  181. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/browserTypeDispatcher.js +0 -64
  182. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/cdpSessionDispatcher.js +0 -44
  183. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/debugControllerDispatcher.js +0 -78
  184. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/dialogDispatcher.js +0 -47
  185. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/dispatcher.js +0 -364
  186. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/electronDispatcher.js +0 -89
  187. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/elementHandlerDispatcher.js +0 -181
  188. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/frameDispatcher.js +0 -227
  189. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/jsHandleDispatcher.js +0 -85
  190. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/jsonPipeDispatcher.js +0 -58
  191. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/localUtilsDispatcher.js +0 -149
  192. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/networkDispatchers.js +0 -213
  193. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/pageAgentDispatcher.js +0 -96
  194. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/pageDispatcher.js +0 -393
  195. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/playwrightDispatcher.js +0 -108
  196. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/streamDispatcher.js +0 -67
  197. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/tracingDispatcher.js +0 -68
  198. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/webSocketRouteDispatcher.js +0 -165
  199. package/bundled-relay/node_modules/playwright-core/lib/server/dispatchers/writableStreamDispatcher.js +0 -79
  200. package/bundled-relay/node_modules/playwright-core/lib/server/dom.js +0 -815
  201. package/bundled-relay/node_modules/playwright-core/lib/server/download.js +0 -70
  202. package/bundled-relay/node_modules/playwright-core/lib/server/electron/electron.js +0 -273
  203. package/bundled-relay/node_modules/playwright-core/lib/server/electron/loader.js +0 -29
  204. package/bundled-relay/node_modules/playwright-core/lib/server/errors.js +0 -69
  205. package/bundled-relay/node_modules/playwright-core/lib/server/fetch.js +0 -621
  206. package/bundled-relay/node_modules/playwright-core/lib/server/fileChooser.js +0 -43
  207. package/bundled-relay/node_modules/playwright-core/lib/server/fileUploadUtils.js +0 -84
  208. package/bundled-relay/node_modules/playwright-core/lib/server/firefox/ffBrowser.js +0 -418
  209. package/bundled-relay/node_modules/playwright-core/lib/server/firefox/ffConnection.js +0 -142
  210. package/bundled-relay/node_modules/playwright-core/lib/server/firefox/ffExecutionContext.js +0 -150
  211. package/bundled-relay/node_modules/playwright-core/lib/server/firefox/ffInput.js +0 -159
  212. package/bundled-relay/node_modules/playwright-core/lib/server/firefox/ffNetworkManager.js +0 -256
  213. package/bundled-relay/node_modules/playwright-core/lib/server/firefox/ffPage.js +0 -497
  214. package/bundled-relay/node_modules/playwright-core/lib/server/firefox/firefox.js +0 -114
  215. package/bundled-relay/node_modules/playwright-core/lib/server/firefox/protocol.d.js +0 -16
  216. package/bundled-relay/node_modules/playwright-core/lib/server/formData.js +0 -147
  217. package/bundled-relay/node_modules/playwright-core/lib/server/frameSelectors.js +0 -160
  218. package/bundled-relay/node_modules/playwright-core/lib/server/frames.js +0 -1471
  219. package/bundled-relay/node_modules/playwright-core/lib/server/har/harRecorder.js +0 -147
  220. package/bundled-relay/node_modules/playwright-core/lib/server/har/harTracer.js +0 -607
  221. package/bundled-relay/node_modules/playwright-core/lib/server/harBackend.js +0 -157
  222. package/bundled-relay/node_modules/playwright-core/lib/server/helper.js +0 -96
  223. package/bundled-relay/node_modules/playwright-core/lib/server/index.js +0 -58
  224. package/bundled-relay/node_modules/playwright-core/lib/server/input.js +0 -277
  225. package/bundled-relay/node_modules/playwright-core/lib/server/instrumentation.js +0 -72
  226. package/bundled-relay/node_modules/playwright-core/lib/server/javascript.js +0 -291
  227. package/bundled-relay/node_modules/playwright-core/lib/server/launchApp.js +0 -128
  228. package/bundled-relay/node_modules/playwright-core/lib/server/localUtils.js +0 -214
  229. package/bundled-relay/node_modules/playwright-core/lib/server/macEditingCommands.js +0 -143
  230. package/bundled-relay/node_modules/playwright-core/lib/server/network.js +0 -667
  231. package/bundled-relay/node_modules/playwright-core/lib/server/page.js +0 -830
  232. package/bundled-relay/node_modules/playwright-core/lib/server/pipeTransport.js +0 -89
  233. package/bundled-relay/node_modules/playwright-core/lib/server/playwright.js +0 -69
  234. package/bundled-relay/node_modules/playwright-core/lib/server/progress.js +0 -132
  235. package/bundled-relay/node_modules/playwright-core/lib/server/protocolError.js +0 -52
  236. package/bundled-relay/node_modules/playwright-core/lib/server/recorder/chat.js +0 -161
  237. package/bundled-relay/node_modules/playwright-core/lib/server/recorder/recorderApp.js +0 -366
  238. package/bundled-relay/node_modules/playwright-core/lib/server/recorder/recorderRunner.js +0 -138
  239. package/bundled-relay/node_modules/playwright-core/lib/server/recorder/recorderSignalProcessor.js +0 -83
  240. package/bundled-relay/node_modules/playwright-core/lib/server/recorder/recorderUtils.js +0 -157
  241. package/bundled-relay/node_modules/playwright-core/lib/server/recorder/throttledFile.js +0 -57
  242. package/bundled-relay/node_modules/playwright-core/lib/server/recorder.js +0 -499
  243. package/bundled-relay/node_modules/playwright-core/lib/server/registry/browserFetcher.js +0 -177
  244. package/bundled-relay/node_modules/playwright-core/lib/server/registry/dependencies.js +0 -371
  245. package/bundled-relay/node_modules/playwright-core/lib/server/registry/index.js +0 -1422
  246. package/bundled-relay/node_modules/playwright-core/lib/server/registry/nativeDeps.js +0 -1280
  247. package/bundled-relay/node_modules/playwright-core/lib/server/registry/oopDownloadBrowserMain.js +0 -127
  248. package/bundled-relay/node_modules/playwright-core/lib/server/screencast.js +0 -190
  249. package/bundled-relay/node_modules/playwright-core/lib/server/screenshotter.js +0 -333
  250. package/bundled-relay/node_modules/playwright-core/lib/server/selectors.js +0 -112
  251. package/bundled-relay/node_modules/playwright-core/lib/server/socksClientCertificatesInterceptor.js +0 -383
  252. package/bundled-relay/node_modules/playwright-core/lib/server/socksInterceptor.js +0 -95
  253. package/bundled-relay/node_modules/playwright-core/lib/server/trace/recorder/snapshotter.js +0 -147
  254. package/bundled-relay/node_modules/playwright-core/lib/server/trace/recorder/snapshotterInjected.js +0 -561
  255. package/bundled-relay/node_modules/playwright-core/lib/server/trace/recorder/tracing.js +0 -604
  256. package/bundled-relay/node_modules/playwright-core/lib/server/trace/viewer/traceParser.js +0 -72
  257. package/bundled-relay/node_modules/playwright-core/lib/server/trace/viewer/traceViewer.js +0 -245
  258. package/bundled-relay/node_modules/playwright-core/lib/server/transport.js +0 -181
  259. package/bundled-relay/node_modules/playwright-core/lib/server/types.js +0 -28
  260. package/bundled-relay/node_modules/playwright-core/lib/server/usKeyboardLayout.js +0 -145
  261. package/bundled-relay/node_modules/playwright-core/lib/server/utils/ascii.js +0 -44
  262. package/bundled-relay/node_modules/playwright-core/lib/server/utils/comparators.js +0 -139
  263. package/bundled-relay/node_modules/playwright-core/lib/server/utils/crypto.js +0 -216
  264. package/bundled-relay/node_modules/playwright-core/lib/server/utils/debug.js +0 -42
  265. package/bundled-relay/node_modules/playwright-core/lib/server/utils/debugLogger.js +0 -122
  266. package/bundled-relay/node_modules/playwright-core/lib/server/utils/env.js +0 -73
  267. package/bundled-relay/node_modules/playwright-core/lib/server/utils/eventsHelper.js +0 -39
  268. package/bundled-relay/node_modules/playwright-core/lib/server/utils/expectUtils.js +0 -123
  269. package/bundled-relay/node_modules/playwright-core/lib/server/utils/fileUtils.js +0 -191
  270. package/bundled-relay/node_modules/playwright-core/lib/server/utils/happyEyeballs.js +0 -207
  271. package/bundled-relay/node_modules/playwright-core/lib/server/utils/hostPlatform.js +0 -138
  272. package/bundled-relay/node_modules/playwright-core/lib/server/utils/httpServer.js +0 -203
  273. package/bundled-relay/node_modules/playwright-core/lib/server/utils/imageUtils.js +0 -141
  274. package/bundled-relay/node_modules/playwright-core/lib/server/utils/image_tools/colorUtils.js +0 -89
  275. package/bundled-relay/node_modules/playwright-core/lib/server/utils/image_tools/compare.js +0 -109
  276. package/bundled-relay/node_modules/playwright-core/lib/server/utils/image_tools/imageChannel.js +0 -78
  277. package/bundled-relay/node_modules/playwright-core/lib/server/utils/image_tools/stats.js +0 -102
  278. package/bundled-relay/node_modules/playwright-core/lib/server/utils/linuxUtils.js +0 -71
  279. package/bundled-relay/node_modules/playwright-core/lib/server/utils/network.js +0 -242
  280. package/bundled-relay/node_modules/playwright-core/lib/server/utils/nodePlatform.js +0 -154
  281. package/bundled-relay/node_modules/playwright-core/lib/server/utils/pipeTransport.js +0 -84
  282. package/bundled-relay/node_modules/playwright-core/lib/server/utils/processLauncher.js +0 -241
  283. package/bundled-relay/node_modules/playwright-core/lib/server/utils/profiler.js +0 -65
  284. package/bundled-relay/node_modules/playwright-core/lib/server/utils/socksProxy.js +0 -511
  285. package/bundled-relay/node_modules/playwright-core/lib/server/utils/spawnAsync.js +0 -41
  286. package/bundled-relay/node_modules/playwright-core/lib/server/utils/task.js +0 -51
  287. package/bundled-relay/node_modules/playwright-core/lib/server/utils/userAgent.js +0 -98
  288. package/bundled-relay/node_modules/playwright-core/lib/server/utils/wsServer.js +0 -121
  289. package/bundled-relay/node_modules/playwright-core/lib/server/utils/zipFile.js +0 -74
  290. package/bundled-relay/node_modules/playwright-core/lib/server/utils/zones.js +0 -57
  291. package/bundled-relay/node_modules/playwright-core/lib/server/videoRecorder.js +0 -124
  292. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/protocol.d.js +0 -16
  293. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/webkit.js +0 -108
  294. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/wkBrowser.js +0 -335
  295. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/wkConnection.js +0 -144
  296. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/wkExecutionContext.js +0 -154
  297. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/wkInput.js +0 -181
  298. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/wkInterceptableRequest.js +0 -197
  299. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/wkPage.js +0 -1159
  300. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/wkProvisionalPage.js +0 -83
  301. package/bundled-relay/node_modules/playwright-core/lib/server/webkit/wkWorkers.js +0 -105
  302. package/bundled-relay/node_modules/playwright-core/lib/third_party/pixelmatch.js +0 -255
  303. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/ariaSnapshot.js +0 -455
  304. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/assert.js +0 -31
  305. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/colors.js +0 -72
  306. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/cssParser.js +0 -245
  307. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/cssTokenizer.js +0 -1051
  308. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/headers.js +0 -53
  309. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/locatorGenerators.js +0 -689
  310. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/locatorParser.js +0 -176
  311. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/locatorUtils.js +0 -81
  312. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/lruCache.js +0 -51
  313. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/manualPromise.js +0 -114
  314. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/mimeType.js +0 -459
  315. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/multimap.js +0 -80
  316. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/protocolFormatter.js +0 -81
  317. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/protocolMetainfo.js +0 -330
  318. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/rtti.js +0 -43
  319. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/selectorParser.js +0 -386
  320. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/semaphore.js +0 -54
  321. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/stackTrace.js +0 -158
  322. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/stringUtils.js +0 -204
  323. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/time.js +0 -49
  324. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/timeoutRunner.js +0 -66
  325. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/entries.js +0 -16
  326. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/snapshotRenderer.js +0 -499
  327. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/snapshotServer.js +0 -120
  328. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/snapshotStorage.js +0 -89
  329. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/traceLoader.js +0 -131
  330. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/traceModel.js +0 -365
  331. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/traceModernizer.js +0 -400
  332. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV3.js +0 -16
  333. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV4.js +0 -16
  334. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV5.js +0 -16
  335. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV6.js +0 -16
  336. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV7.js +0 -16
  337. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV8.js +0 -16
  338. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/traceUtils.js +0 -58
  339. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/types.js +0 -16
  340. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/urlMatch.js +0 -190
  341. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/utilityScriptSerializers.js +0 -251
  342. package/bundled-relay/node_modules/playwright-core/lib/utils/isomorphic/yaml.js +0 -84
  343. package/bundled-relay/node_modules/playwright-core/lib/utils.js +0 -111
  344. package/bundled-relay/node_modules/playwright-core/lib/utilsBundle.js +0 -109
  345. package/bundled-relay/node_modules/playwright-core/lib/utilsBundleImpl/index.js +0 -218
  346. package/bundled-relay/node_modules/playwright-core/lib/utilsBundleImpl/xdg-open +0 -1066
  347. package/bundled-relay/node_modules/playwright-core/lib/vite/htmlReport/index.html +0 -84
  348. package/bundled-relay/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-DYBRYzYX.css +0 -1
  349. package/bundled-relay/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-DadYNm1I.js +0 -32
  350. package/bundled-relay/node_modules/playwright-core/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  351. package/bundled-relay/node_modules/playwright-core/lib/vite/recorder/assets/index-BSjZa4pk.css +0 -1
  352. package/bundled-relay/node_modules/playwright-core/lib/vite/recorder/assets/index-BhTWtUlo.js +0 -193
  353. package/bundled-relay/node_modules/playwright-core/lib/vite/recorder/index.html +0 -29
  354. package/bundled-relay/node_modules/playwright-core/lib/vite/recorder/playwright-logo.svg +0 -9
  355. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-a5XoALAZ.js +0 -32
  356. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-CJSZINFr.js +0 -266
  357. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +0 -9
  358. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +0 -1
  359. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  360. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.7ch9cixO.css +0 -1
  361. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/index.BDwrLSGN.js +0 -2
  362. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/index.BVu7tZDe.css +0 -1
  363. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/index.html +0 -43
  364. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/manifest.webmanifest +0 -16
  365. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/playwright-logo.svg +0 -9
  366. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/snapshot.html +0 -21
  367. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +0 -5
  368. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/uiMode.Btcz36p_.css +0 -1
  369. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CQJ9SCIQ.js +0 -5
  370. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +0 -17
  371. package/bundled-relay/node_modules/playwright-core/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +0 -32
  372. package/bundled-relay/node_modules/playwright-core/lib/zipBundle.js +0 -34
  373. package/bundled-relay/node_modules/playwright-core/lib/zipBundleImpl.js +0 -5
  374. package/bundled-relay/node_modules/playwright-core/package.json +0 -43
  375. package/bundled-relay/node_modules/playwright-core/types/protocol.d.ts +0 -23824
  376. package/bundled-relay/node_modules/playwright-core/types/structs.d.ts +0 -45
  377. package/bundled-relay/node_modules/playwright-core/types/types.d.ts +0 -22843
@@ -4976,8 +4976,8 @@ var require_raw_body = __commonJS({
4976
4976
  type: "entity.too.large"
4977
4977
  }));
4978
4978
  }
4979
- var state2 = stream._readableState;
4980
- if (stream._decoder || state2 && (state2.encoding || state2.decoder)) {
4979
+ var state = stream._readableState;
4980
+ if (stream._decoder || state && (state.encoding || state.decoder)) {
4981
4981
  return done(createError(500, "stream encoding should not be set", {
4982
4982
  type: "stream.encoding.set"
4983
4983
  }));
@@ -22629,6 +22629,7 @@ var ERROR_CODES = {
22629
22629
  // 步骤类
22630
22630
  ERR_INVALID_STEP: "ERR_INVALID_STEP",
22631
22631
  ERR_STEP_EXECUTION_FAILED: "ERR_STEP_EXECUTION_FAILED",
22632
+ ERR_STEP_TIMEOUT: "ERR_STEP_TIMEOUT",
22632
22633
  // Runtime 类
22633
22634
  ERR_RUNTIME_NOT_AVAILABLE: "ERR_RUNTIME_NOT_AVAILABLE",
22634
22635
  ERR_RUNTIME_BUSY: "ERR_RUNTIME_BUSY",
@@ -22726,46 +22727,6 @@ var FileService = class {
22726
22727
  }
22727
22728
  };
22728
22729
 
22729
- // relay/src/cdp-bridge/index.ts
22730
- import { chromium } from "playwright-core";
22731
- var state = null;
22732
- async function connectToChrome(port = 9222) {
22733
- const cdpUrl = `http://127.0.0.1:${port}`;
22734
- console.log(`[CDP] Connecting to Chrome via CDP at ${cdpUrl}`);
22735
- const browser = await chromium.connectOverCDP(cdpUrl);
22736
- const contexts = browser.contexts();
22737
- const context = contexts[0] ?? await browser.newContext();
22738
- state = { browser, context };
22739
- console.log("[CDP] Connected to Chrome via CDP \u2713");
22740
- return state;
22741
- }
22742
- async function getActivePage(context) {
22743
- const pages = context.pages();
22744
- if (pages.length === 0) {
22745
- return await context.newPage();
22746
- }
22747
- return pages[pages.length - 1];
22748
- }
22749
- var CDPController = class {
22750
- constructor(cdpPort = 9222) {
22751
- this.cdpPort = cdpPort;
22752
- }
22753
- async ensureConnected() {
22754
- if (!state || !state.browser.isConnected()) {
22755
- return await connectToChrome(this.cdpPort);
22756
- }
22757
- return state;
22758
- }
22759
- async snapshot() {
22760
- const { context } = await this.ensureConnected();
22761
- const page = await getActivePage(context);
22762
- return await page.content();
22763
- }
22764
- isConnected() {
22765
- return state !== null && state.browser.isConnected();
22766
- }
22767
- };
22768
-
22769
22730
  // relay/src/workspace-service/index.ts
22770
22731
  import * as crypto2 from "crypto";
22771
22732
  import * as fs2 from "fs";
@@ -23275,6 +23236,7 @@ function mapTaskStatusToCurrentNodeStatus(status) {
23275
23236
  function mapToolNameToTaskOperation(tool) {
23276
23237
  switch (tool) {
23277
23238
  case "open_tab":
23239
+ case "close_tab":
23278
23240
  case "ensure_publish_ready":
23279
23241
  return "navigate";
23280
23242
  case "fill_field":
@@ -23285,6 +23247,10 @@ function mapToolNameToTaskOperation(tool) {
23285
23247
  case "switch_tab":
23286
23248
  case "apply_search_filters":
23287
23249
  return "click";
23250
+ case "present_page_activity":
23251
+ return "unknown";
23252
+ case "invoke_page_request":
23253
+ return "extract_api_payload";
23288
23254
  case "collect_search_list":
23289
23255
  case "collect_search_item_details":
23290
23256
  case "collect_structured_data":
@@ -23339,6 +23305,8 @@ function buildTaskStatusView(input) {
23339
23305
  capability: input.capability,
23340
23306
  currentOperation: input.currentOperation,
23341
23307
  progress,
23308
+ lastProgressAt: input.lastProgressAt,
23309
+ lastProgress: input.lastProgress ?? null,
23342
23310
  currentNode,
23343
23311
  browsingContext: input.browsingContext,
23344
23312
  captureWindow: input.captureWindow,
@@ -23520,6 +23488,8 @@ function applyTaskStatusView(task, overrides) {
23520
23488
  } : void 0,
23521
23489
  captureWindow,
23522
23490
  lastArtifact: overrides?.lastArtifact ?? task.statusView?.lastArtifact,
23491
+ lastProgressAt: overrides?.lastProgressAt ?? task.statusView?.lastProgressAt,
23492
+ lastProgress: overrides?.lastProgress ?? task.statusView?.lastProgress,
23523
23493
  progressHint: overrides?.progressHint
23524
23494
  });
23525
23495
  }
@@ -23613,6 +23583,107 @@ function applyArtifactCreatedToTask(task, payload) {
23613
23583
  lastArtifact: payload.artifact
23614
23584
  });
23615
23585
  }
23586
+ function applyStepProgressToTask(task, payload) {
23587
+ task.currentNodeId = payload.stepId;
23588
+ task.updatedAt = payload.updatedAt || (/* @__PURE__ */ new Date()).toISOString();
23589
+ applyTaskStatusView(task, {
23590
+ currentNodeId: payload.stepId,
23591
+ currentNodeTool: payload.tool,
23592
+ currentOperation: mapToolNameToTaskOperation(payload.tool),
23593
+ lastProgressAt: payload.updatedAt,
23594
+ lastProgress: payload.details ?? null,
23595
+ progressHint: payload.details?.progressHint ?? payload.details?.message
23596
+ });
23597
+ }
23598
+
23599
+ // relay/src/step-watchdog.ts
23600
+ var StepWatchdogRegistry = class {
23601
+ constructor(onExpired) {
23602
+ this.onExpired = onExpired;
23603
+ this.pending = /* @__PURE__ */ new Map();
23604
+ }
23605
+ start(input) {
23606
+ const existing = this.pending.get(input.taskId);
23607
+ const preservedStartedAt = existing && existing.stepId === input.stepId ? existing.startedAt : void 0;
23608
+ this.clear(input.taskId);
23609
+ const startedAt = preservedStartedAt || input.startedAt || (/* @__PURE__ */ new Date()).toISOString();
23610
+ const lastProgressAt = input.lastProgressAt || startedAt;
23611
+ const deadlineAt = new Date(new Date(lastProgressAt).getTime() + input.timeoutMs).toISOString();
23612
+ const entry = {
23613
+ taskId: input.taskId,
23614
+ stepId: input.stepId,
23615
+ tool: input.tool,
23616
+ timeoutMs: input.timeoutMs,
23617
+ startedAt,
23618
+ lastProgressAt,
23619
+ deadlineAt,
23620
+ lastProgress: input.lastProgress,
23621
+ timer: null
23622
+ };
23623
+ entry.timer = this.createTimer(entry);
23624
+ this.pending.set(input.taskId, entry);
23625
+ }
23626
+ progress(input) {
23627
+ const existing = this.pending.get(input.taskId);
23628
+ if (!existing || existing.stepId !== input.stepId) {
23629
+ return;
23630
+ }
23631
+ clearTimeout(existing.timer);
23632
+ existing.tool = input.tool ?? existing.tool;
23633
+ existing.lastProgressAt = input.updatedAt;
23634
+ existing.deadlineAt = new Date(new Date(input.updatedAt).getTime() + existing.timeoutMs).toISOString();
23635
+ existing.lastProgress = input.details;
23636
+ existing.timer = this.createTimer(existing);
23637
+ }
23638
+ clear(taskId, stepId) {
23639
+ const existing = this.pending.get(taskId);
23640
+ if (!existing) {
23641
+ return;
23642
+ }
23643
+ if (stepId && existing.stepId !== stepId) {
23644
+ return;
23645
+ }
23646
+ clearTimeout(existing.timer);
23647
+ this.pending.delete(taskId);
23648
+ }
23649
+ get(taskId) {
23650
+ const entry = this.pending.get(taskId);
23651
+ if (!entry) {
23652
+ return null;
23653
+ }
23654
+ return {
23655
+ taskId: entry.taskId,
23656
+ stepId: entry.stepId,
23657
+ tool: entry.tool,
23658
+ timeoutMs: entry.timeoutMs,
23659
+ startedAt: entry.startedAt,
23660
+ lastProgressAt: entry.lastProgressAt,
23661
+ deadlineAt: entry.deadlineAt,
23662
+ lastProgress: entry.lastProgress
23663
+ };
23664
+ }
23665
+ createTimer(entry) {
23666
+ const timer = setTimeout(() => {
23667
+ const current = this.pending.get(entry.taskId);
23668
+ if (!current || current !== entry) {
23669
+ return;
23670
+ }
23671
+ this.pending.delete(entry.taskId);
23672
+ this.onExpired({
23673
+ taskId: current.taskId,
23674
+ stepId: current.stepId,
23675
+ tool: current.tool,
23676
+ timeoutMs: current.timeoutMs,
23677
+ startedAt: current.startedAt,
23678
+ lastProgressAt: current.lastProgressAt,
23679
+ deadlineAt: current.deadlineAt,
23680
+ lastProgress: current.lastProgress
23681
+ });
23682
+ }, entry.timeoutMs);
23683
+ timer.unref?.();
23684
+ return timer;
23685
+ }
23686
+ };
23616
23687
 
23617
23688
  // relay/src/task-ready-registry.ts
23618
23689
  var TaskReadyRegistry = class {
@@ -23826,7 +23897,10 @@ function resolveFallbackStepIndex(task, currentStepIndex, result) {
23826
23897
  }
23827
23898
 
23828
23899
  // relay/src/task-node-result.ts
23829
- function mapNodeResultToExecutionStatus(result) {
23900
+ function resolveNodeExecutionStatusFromResult(result) {
23901
+ if (result.ok && result?.observation?.skipped === true) {
23902
+ return "skipped";
23903
+ }
23830
23904
  return result.ok ? "success" : "failed";
23831
23905
  }
23832
23906
  function normalizeNodeResult(result, normalizedError) {
@@ -23841,7 +23915,7 @@ function persistNodeResultOnTask(task, result) {
23841
23915
  if (!matchedNode) {
23842
23916
  return false;
23843
23917
  }
23844
- updateNodeExecutionStatus(task, result.nodeId, mapNodeResultToExecutionStatus(result), {
23918
+ updateNodeExecutionStatus(task, result.nodeId, resolveNodeExecutionStatusFromResult(result), {
23845
23919
  result,
23846
23920
  error: result.error
23847
23921
  });
@@ -24002,13 +24076,14 @@ function applyTaskExecutionResult(task, orchestrator, result) {
24002
24076
  } : null);
24003
24077
  const persistedNodeResult = normalizeNodeResult(result, normalizedNodeError);
24004
24078
  persistNodeResultOnTask(task, persistedNodeResult);
24079
+ const executionStatus = resolveNodeExecutionStatusFromResult(persistedNodeResult);
24005
24080
  const fallbackStepIndex = resolveFallbackStepIndex(
24006
24081
  task,
24007
24082
  orchestrator.currentStepIndex,
24008
24083
  persistedNodeResult
24009
24084
  );
24010
24085
  task.status = result.ok || fallbackStepIndex != null ? "running" : "failed";
24011
- task.currentNodeId = result.nodeId;
24086
+ task.currentNodeId = executionStatus === "skipped" ? void 0 : result.nodeId;
24012
24087
  task.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
24013
24088
  task.lastError = result.ok || fallbackStepIndex != null ? null : normalizedNodeError;
24014
24089
  return {
@@ -24024,7 +24099,6 @@ var app = (0, import_express.default)();
24024
24099
  var server = createServer(app);
24025
24100
  var PORT = process.env.PORT || DEFAULT_RELAY_PORT;
24026
24101
  var fileService = new FileService();
24027
- var cdpController = new CDPController();
24028
24102
  var workspaceService = new WorkspaceService();
24029
24103
  var templateExecutor = new TemplateExecutor();
24030
24104
  var CLIENT_RECONNECT_GRACE_MS = 3e3;
@@ -24033,6 +24107,12 @@ var STEP_DISPATCH_INTERVAL_MS = Number(process.env.STEP_DISPATCH_INTERVAL_MS) ||
24033
24107
  var RUNTIME_ONLINE_GRACE_MS = 1e4;
24034
24108
  var RUNTIME_PRESENCE_TTL_MS = 5 * 60 * 1e3;
24035
24109
  var COMPLETED_TASK_TTL_MS = Number(process.env.COMPLETED_TASK_TTL_MS) || 60 * 60 * 1e3;
24110
+ var STEP_WATCHDOG_FALLBACK_TIMEOUT_MS = 6e4;
24111
+ var STEP_WATCHDOG_DEFAULT_TIMEOUTS = {
24112
+ upload_assets: 18e4,
24113
+ fill_field: 12e4,
24114
+ collect_structured_data: 18e4
24115
+ };
24036
24116
  var runtimeConnections = /* @__PURE__ */ new Map();
24037
24117
  var runtimePresence = /* @__PURE__ */ new Map();
24038
24118
  var tasks = /* @__PURE__ */ new Map();
@@ -24046,6 +24126,9 @@ var taskReadyRegistry = new TaskReadyRegistry(
24046
24126
  );
24047
24127
  var taskTemplateCache = /* @__PURE__ */ new Map();
24048
24128
  var taskTemplateIndexCache = null;
24129
+ var stepWatchdogs = new StepWatchdogRegistry((entry) => {
24130
+ handleStepTimeout(entry);
24131
+ });
24049
24132
  var RELAY_PROJECT_ROOT = process.env.CHROMEAGENT_RELAY_PROJECT_ROOT ? path3.resolve(process.env.CHROMEAGENT_RELAY_PROJECT_ROOT) : path3.resolve(path3.dirname(fileURLToPath(import.meta.url)), "..", "..");
24050
24133
  app.use((req, res, next) => {
24051
24134
  res.header("Access-Control-Allow-Origin", "*");
@@ -24070,6 +24153,17 @@ function createRelayError(message, code = ERROR_CODES.ERR_INVALID_TASK, status =
24070
24153
  error.status = status;
24071
24154
  return error;
24072
24155
  }
24156
+ function resolveStepWatchdogTimeoutMs(step) {
24157
+ const explicitTimeoutMs = Number(step?.args?.timeoutMs);
24158
+ if (Number.isFinite(explicitTimeoutMs) && explicitTimeoutMs > 0) {
24159
+ return explicitTimeoutMs;
24160
+ }
24161
+ const defaultTimeoutMs = step.tool ? STEP_WATCHDOG_DEFAULT_TIMEOUTS[step.tool] : void 0;
24162
+ if (typeof defaultTimeoutMs === "number" && defaultTimeoutMs > 0) {
24163
+ return defaultTimeoutMs;
24164
+ }
24165
+ return STEP_WATCHDOG_FALLBACK_TIMEOUT_MS;
24166
+ }
24073
24167
  function registerRuntimeConnection(clientId, res) {
24074
24168
  const existing = runtimeConnections.get(clientId);
24075
24169
  if (existing && existing.res !== res) {
@@ -24587,7 +24681,8 @@ async function startNextBatchItem(batchJobId) {
24587
24681
  message: error?.message || "Runtime not available"
24588
24682
  };
24589
24683
  updateTaskStatusView(task);
24590
- throw error;
24684
+ console.error(`Batch task ${task.taskId} failed:`, error);
24685
+ await handleBatchTaskTerminal(task.taskId, "failed", task.lastError);
24591
24686
  }
24592
24687
  }
24593
24688
  async function handleBatchTaskTerminal(taskId, status, lastError) {
@@ -24659,7 +24754,7 @@ async function registerAndDispatchTask(task) {
24659
24754
  message: error?.message || "Runtime not available"
24660
24755
  };
24661
24756
  updateTaskStatusView(task);
24662
- throw error;
24757
+ console.error(`Task ${task.taskId} failed:`, error);
24663
24758
  }
24664
24759
  return task;
24665
24760
  }
@@ -24687,6 +24782,9 @@ async function handleRuntimeMessage(msg) {
24687
24782
  case "node.status":
24688
24783
  handleNodeStatus(msg);
24689
24784
  break;
24785
+ case "step.progress":
24786
+ handleStepProgress(msg);
24787
+ break;
24690
24788
  case "capture.started":
24691
24789
  handleCaptureStarted(msg);
24692
24790
  break;
@@ -24739,6 +24837,24 @@ function handleNodeStarted(msg) {
24739
24837
  if (!task) {
24740
24838
  return;
24741
24839
  }
24840
+ const existingWatchdog = stepWatchdogs.get(payload.taskId);
24841
+ if (!existingWatchdog || existingWatchdog.stepId !== payload.nodeId) {
24842
+ const orchestrator = orchestrators.get(payload.taskId);
24843
+ const step = orchestrator ? resolveCurrentTaskExecutionStep(task, orchestrator) : null;
24844
+ if (step && step.nodeId === payload.nodeId) {
24845
+ const timeoutMs = resolveStepWatchdogTimeoutMs(step);
24846
+ if (typeof timeoutMs === "number") {
24847
+ stepWatchdogs.start({
24848
+ taskId: payload.taskId,
24849
+ stepId: payload.nodeId,
24850
+ tool: payload.tool,
24851
+ timeoutMs,
24852
+ startedAt: payload.updatedAt,
24853
+ lastProgressAt: payload.updatedAt
24854
+ });
24855
+ }
24856
+ }
24857
+ }
24742
24858
  task.currentNodeId = payload.nodeId;
24743
24859
  task.updatedAt = payload.updatedAt || (/* @__PURE__ */ new Date()).toISOString();
24744
24860
  updateTaskNodeProcessView(task, {
@@ -24771,6 +24887,23 @@ function handleNodeStatus(msg) {
24771
24887
  message: payload.message
24772
24888
  });
24773
24889
  }
24890
+ function handleStepProgress(msg) {
24891
+ const payload = msg.payload;
24892
+ const task = tasks.get(payload.taskId);
24893
+ if (!task) {
24894
+ return;
24895
+ }
24896
+ stepWatchdogs.progress(payload);
24897
+ task.currentNodeId = payload.stepId;
24898
+ task.updatedAt = payload.updatedAt || (/* @__PURE__ */ new Date()).toISOString();
24899
+ if (typeof payload.details?.tabId === "number") {
24900
+ task.currentTabId = payload.details.tabId;
24901
+ }
24902
+ if (typeof payload.details?.pageState === "string" && payload.details.pageState.length > 0) {
24903
+ task.currentPageId = payload.details.pageState;
24904
+ }
24905
+ applyStepProgressToTask(task, payload);
24906
+ }
24774
24907
  function handleNodeResult(msg) {
24775
24908
  const rawResult = msg.payload;
24776
24909
  logRelayFlow("Received node result", {
@@ -24800,10 +24933,12 @@ function handleNodeResult(msg) {
24800
24933
  }
24801
24934
  const resolvedTask = task;
24802
24935
  const resolvedOrchestrator = orchestrator;
24936
+ stepWatchdogs.clear(rawResult.taskId, rawResult.nodeId);
24803
24937
  const appliedResult = applyTaskExecutionResult(resolvedTask, resolvedOrchestrator, rawResult);
24938
+ const executionStatus = resolvedTask.payload?.nodeResults?.[rawResult.nodeId]?.status;
24804
24939
  updateTaskStatusView(resolvedTask, {
24805
- currentNodeId: rawResult.nodeId,
24806
- currentNodeStatus: appliedResult.persistedNodeResult.ok ? "succeeded" : "failed"
24940
+ currentNodeId: executionStatus === "skipped" ? void 0 : rawResult.nodeId,
24941
+ currentNodeStatus: executionStatus === "skipped" ? "skipped" : appliedResult.persistedNodeResult.ok ? "succeeded" : "failed"
24807
24942
  });
24808
24943
  if (appliedResult.shouldContinue) {
24809
24944
  continueOrchestrator(rawResult.taskId, rawResult.nodeId, appliedResult.nextStepIndex ?? void 0);
@@ -24836,7 +24971,11 @@ function handleTaskStatus(msg) {
24836
24971
  task.lastTriggeredNavigation = status.lastTriggeredNavigation ?? task.lastTriggeredNavigation;
24837
24972
  task.browsingContexts = Array.isArray(status.browsingContexts) ? status.browsingContexts : task.browsingContexts;
24838
24973
  task.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
24839
- task.statusView = status.statusView ?? task.statusView;
24974
+ task.statusView = status.statusView ? {
24975
+ ...status.statusView,
24976
+ lastProgressAt: status.statusView.lastProgressAt ?? task.statusView?.lastProgressAt,
24977
+ lastProgress: status.statusView.lastProgress ?? task.statusView?.lastProgress ?? null
24978
+ } : task.statusView;
24840
24979
  if (!task.statusView) {
24841
24980
  updateTaskStatusView(task, {
24842
24981
  currentNodeId: status.currentNodeId
@@ -24845,15 +24984,18 @@ function handleTaskStatus(msg) {
24845
24984
  if (status.status === "queued") {
24846
24985
  resolveTaskReady(status.taskId);
24847
24986
  } else if (status.status === "failed") {
24987
+ stepWatchdogs.clear(status.taskId);
24848
24988
  rejectTaskReady(status.taskId, task.lastError || createRelayError("Task failed before ready", ERROR_CODES.ERR_RUNTIME_NOT_AVAILABLE, 503));
24849
24989
  orchestrators.delete(status.taskId);
24850
24990
  notifyRuntimeTaskFinalized(task, "failed");
24851
24991
  void handleBatchTaskTerminal(status.taskId, "failed", task.lastError);
24852
24992
  } else if (status.status === "completed") {
24993
+ stepWatchdogs.clear(status.taskId);
24853
24994
  rejectTaskReady(status.taskId, createRelayError("Task completed before orchestrator start", ERROR_CODES.ERR_TASK_TIMEOUT, 500));
24854
24995
  notifyRuntimeTaskFinalized(task, "completed");
24855
24996
  void handleBatchTaskTerminal(status.taskId, "completed", null);
24856
24997
  } else if (status.status === "cancelled") {
24998
+ stepWatchdogs.clear(status.taskId);
24857
24999
  rejectTaskReady(status.taskId, createRelayError("Task cancelled before completion", ERROR_CODES.ERR_TASK_TIMEOUT, 499));
24858
25000
  orchestrators.delete(status.taskId);
24859
25001
  notifyRuntimeTaskFinalized(task, "cancelled");
@@ -25481,16 +25623,6 @@ app.get("/api/file/content/:fileId", async (req, res) => {
25481
25623
  res.status(500).json({ ok: false, error: { code: ERROR_CODES.ERR_FILE_PREPARE_FAILED, message: err.message } });
25482
25624
  }
25483
25625
  });
25484
- app.post("/api/debug/snapshot", async (req, res) => {
25485
- try {
25486
- const { taskId } = req.body;
25487
- const task = tasks.get(taskId);
25488
- const snapshot = await cdpController.snapshot();
25489
- res.json({ ok: true, task, snapshot });
25490
- } catch (err) {
25491
- res.status(500).json({ ok: false, error: { code: ERROR_CODES.ERR_RUNTIME_NOT_AVAILABLE, message: err.message } });
25492
- }
25493
- });
25494
25626
  app.get("/health", (req, res) => {
25495
25627
  res.json({ status: "ok", runtimes: runtimeConnections.size, tasks: tasks.size });
25496
25628
  });
@@ -25511,6 +25643,60 @@ function startOrchestrator(taskId) {
25511
25643
  orchestrators.set(taskId, orchestrator);
25512
25644
  void sendNextStep(taskId);
25513
25645
  }
25646
+ function handleStepTimeout(entry) {
25647
+ const task = tasks.get(entry.taskId);
25648
+ const orchestrator = orchestrators.get(entry.taskId);
25649
+ if (!task || !orchestrator) {
25650
+ return;
25651
+ }
25652
+ const currentStep = resolveCurrentTaskExecutionStep(task, orchestrator);
25653
+ if (!currentStep || currentStep.nodeId !== entry.stepId) {
25654
+ return;
25655
+ }
25656
+ const diagnosticReason = entry.lastProgress ? entry.lastProgress.phase === "wait_for_login" ? "waiting_login_stalled" : "progress_stalled" : "no_progress_reported";
25657
+ const timeoutResult = {
25658
+ type: "node.result",
25659
+ taskId: entry.taskId,
25660
+ nodeId: entry.stepId,
25661
+ tool: entry.tool || currentStep.tool,
25662
+ ok: false,
25663
+ status: "failed",
25664
+ observation: {
25665
+ error: `Step timed out after ${entry.timeoutMs}ms without progress`,
25666
+ code: ERROR_CODES.ERR_STEP_TIMEOUT,
25667
+ executor: "relay_watchdog"
25668
+ },
25669
+ error: {
25670
+ code: ERROR_CODES.ERR_STEP_TIMEOUT,
25671
+ message: `Step timed out after ${entry.timeoutMs}ms without progress`,
25672
+ details: {
25673
+ timeoutAt: entry.deadlineAt,
25674
+ startedAt: entry.startedAt,
25675
+ lastProgressAt: entry.lastProgressAt,
25676
+ timeoutMs: entry.timeoutMs,
25677
+ tool: entry.tool || currentStep.tool,
25678
+ stepId: entry.stepId,
25679
+ currentTabId: task.currentTabId ?? null,
25680
+ currentPageState: task.statusView?.lastProgress?.pageState ?? task.currentPageId ?? null,
25681
+ diagnosticReason,
25682
+ lastProgress: entry.lastProgress ?? null
25683
+ }
25684
+ },
25685
+ timestamp: Date.now()
25686
+ };
25687
+ logRelayFlow("Step watchdog timed out", {
25688
+ taskId: entry.taskId,
25689
+ stepId: entry.stepId,
25690
+ timeoutMs: entry.timeoutMs,
25691
+ diagnosticReason
25692
+ });
25693
+ handleNodeResult({
25694
+ type: "node.result",
25695
+ requestId: null,
25696
+ timestamp: Date.now(),
25697
+ payload: timeoutResult
25698
+ });
25699
+ }
25514
25700
  async function sendNextStep(taskId) {
25515
25701
  console.log(`[Relay] sendNextStep \u88AB\u8C03\u7528: ${taskId}`);
25516
25702
  const task = tasks.get(taskId);
@@ -25530,6 +25716,7 @@ async function sendNextStep(taskId) {
25530
25716
  }
25531
25717
  console.log(`[Relay] \u5F53\u524D\u8282\u70B9\u7D22\u5F15: ${orch.currentStepIndex}, \u603B\u8282\u70B9\u6570: ${executionLength}`);
25532
25718
  if (orch.currentStepIndex >= executionLength) {
25719
+ stepWatchdogs.clear(taskId);
25533
25720
  task.status = "completed";
25534
25721
  task.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
25535
25722
  updateTaskStatusView(task, {
@@ -25543,6 +25730,7 @@ async function sendNextStep(taskId) {
25543
25730
  }
25544
25731
  const step = markTaskExecutionDispatch(task, orch);
25545
25732
  if (!step) {
25733
+ stepWatchdogs.clear(taskId);
25546
25734
  task.status = "failed";
25547
25735
  task.lastError = {
25548
25736
  code: ERROR_CODES.ERR_INVALID_TASK,
@@ -25570,6 +25758,7 @@ async function sendNextStep(taskId) {
25570
25758
  try {
25571
25759
  targetRuntimeId = requireTaskRuntimeId(task);
25572
25760
  } catch (error) {
25761
+ stepWatchdogs.clear(taskId);
25573
25762
  task.status = "failed";
25574
25763
  task.lastError = {
25575
25764
  code: error?.code || ERROR_CODES.ERR_RUNTIME_NOT_AVAILABLE,
@@ -25585,6 +25774,7 @@ async function sendNextStep(taskId) {
25585
25774
  }
25586
25775
  const sent = await sendToClientWithGracePeriod(targetRuntimeId, stepMessage);
25587
25776
  if (!sent) {
25777
+ stepWatchdogs.clear(taskId);
25588
25778
  task.status = "failed";
25589
25779
  task.lastError = {
25590
25780
  code: ERROR_CODES.ERR_RUNTIME_NOT_AVAILABLE,
@@ -25598,6 +25788,18 @@ async function sendNextStep(taskId) {
25598
25788
  void handleBatchTaskTerminal(taskId, "failed", task.lastError);
25599
25789
  return;
25600
25790
  }
25791
+ const watchdogTimeoutMs = resolveStepWatchdogTimeoutMs(step);
25792
+ if (typeof watchdogTimeoutMs === "number") {
25793
+ const startedAt = (/* @__PURE__ */ new Date()).toISOString();
25794
+ stepWatchdogs.start({
25795
+ taskId,
25796
+ stepId: step.nodeId,
25797
+ tool: step.tool,
25798
+ timeoutMs: watchdogTimeoutMs,
25799
+ startedAt,
25800
+ lastProgressAt: startedAt
25801
+ });
25802
+ }
25601
25803
  console.log(`[Relay] Sent node ${orch.currentStepIndex + 1}/${executionLength} for task ${taskId}`);
25602
25804
  }
25603
25805
  function continueOrchestrator(taskId, completedNodeId, nextStepIndex) {
@@ -3,8 +3,5 @@
3
3
  "private": true,
4
4
  "type": "module",
5
5
  "version": "1.0.0",
6
- "description": "Bundled runtime dependencies for the oc-browser-relay OpenClaw plugin.",
7
- "dependencies": {
8
- "playwright-core": "^1.58.2"
9
- }
6
+ "description": "Bundled runtime dependencies for the oc-browser-relay OpenClaw plugin."
10
7
  }
@@ -95,6 +95,59 @@
95
95
  ]
96
96
  }
97
97
  },
98
+ "apiSources": {
99
+ "live_metrics_overview": {
100
+ "method": "GET",
101
+ "urlVariants": [
102
+ {
103
+ "whenPath": "payload.dateType",
104
+ "equals": "today",
105
+ "url": "https://sycm.taobao.com/portal/live/new/index/overview/v3.json"
106
+ },
107
+ {
108
+ "default": true,
109
+ "url": "https://sycm.taobao.com/portal/coreIndex/new/overview/v3.json"
110
+ }
111
+ ],
112
+ "query": {
113
+ "needCycleCrc": "true",
114
+ "dateType": "{{payload.dateType}}",
115
+ "dateRange": "{{payload.dateRange}}",
116
+ "_": "{{runtime.timestamp}}",
117
+ "token": "{{session.token}}"
118
+ },
119
+ "headers": {
120
+ "sycm-referer": "/portal/home.htm"
121
+ },
122
+ "responsePath": "content.data.data",
123
+ "metaPath": "content.data"
124
+ },
125
+ "live_metrics_trend": {
126
+ "method": "GET",
127
+ "urlVariants": [
128
+ {
129
+ "whenPath": "payload.dateType",
130
+ "equals": "today",
131
+ "url": "https://sycm.taobao.com/portal/live/new/index/trend/v3.json"
132
+ },
133
+ {
134
+ "default": true,
135
+ "url": "https://sycm.taobao.com/portal/coreIndex/new/trend/v3.json"
136
+ }
137
+ ],
138
+ "query": {
139
+ "dateType": "{{payload.dateType}}",
140
+ "dateRange": "{{payload.dateRange}}",
141
+ "_": "{{runtime.timestamp}}",
142
+ "token": "{{session.token}}"
143
+ },
144
+ "headers": {
145
+ "sycm-referer": "/portal/home.htm"
146
+ },
147
+ "responsePath": "content.data.data",
148
+ "metaPath": "content.data"
149
+ }
150
+ },
98
151
  "crawlerHints": {
99
152
  "structuredDataExtractors": {
100
153
  "live_metrics": {
@@ -118,6 +171,38 @@
118
171
  "meta": "sources.live_metrics.meta"
119
172
  }
120
173
  }
174
+ },
175
+ "live_metrics_direct": {
176
+ "observationSources": [
177
+ {
178
+ "sourceId": "live_overview",
179
+ "nodeIdArg": "overviewNodeId",
180
+ "sourceType": "step_observation",
181
+ "observationPath": "$self"
182
+ },
183
+ {
184
+ "sourceId": "live_trend",
185
+ "nodeIdArg": "trendNodeId",
186
+ "sourceType": "step_observation",
187
+ "observationPath": "$self"
188
+ }
189
+ ],
190
+ "outputSchema": {
191
+ "root": {
192
+ "overview": "sources.live_overview.response.data",
193
+ "trend": "sources.live_trend.response.data",
194
+ "capturedAt": "sources.live_overview.invokedAt",
195
+ "meta": {
196
+ "overviewUrl": "sources.live_overview.response.url",
197
+ "trendUrl": "sources.live_trend.response.url",
198
+ "overviewStatus": "sources.live_overview.response.status",
199
+ "trendStatus": "sources.live_trend.response.status",
200
+ "interval": "sources.live_overview.response.meta.interval",
201
+ "timestamp": "sources.live_overview.response.meta.timestamp",
202
+ "updateTime": "sources.live_overview.response.meta.updateTime"
203
+ }
204
+ }
205
+ }
121
206
  }
122
207
  }
123
208
  }
@@ -35,20 +35,20 @@
35
35
  "scrollIntoView": true,
36
36
  "requireVisible": true,
37
37
  "preHover": true,
38
- "hoverDurationMsRange": [100, 220],
39
- "preClickPauseMsRange": [60, 160]
38
+ "hoverDurationMsRange": [70, 180],
39
+ "preClickPauseMsRange": [40, 120]
40
40
  },
41
41
  "humanBehavior": {
42
- "cursorMoveSpeedRange": [78, 128],
43
- "cursorStepDelayMsRange": [4, 10],
44
- "cursorVisibleDurationMsRange": [180, 320],
45
- "minCursorStepCount": 12,
46
- "mouseDownUpDelayMsRange": [40, 120],
47
- "postClickPauseMsRange": [60, 180]
42
+ "cursorMoveSpeedRange": [110, 180],
43
+ "cursorStepDelayMsRange": [3, 7],
44
+ "cursorVisibleDurationMsRange": [120, 220],
45
+ "minCursorStepCount": 9,
46
+ "mouseDownUpDelayMsRange": [30, 80],
47
+ "postClickPauseMsRange": [40, 120]
48
48
  },
49
49
  "actionPausePolicy": {
50
- "minPauseMs": 160,
51
- "maxPauseMs": 900
50
+ "minPauseMs": 120,
51
+ "maxPauseMs": 560
52
52
  }
53
53
  },
54
54
  "actions": {