@xopcai/xopc 0.0.250 → 0.0.252

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 (312) hide show
  1. package/README.md +8 -5
  2. package/README.zh-CN.md +8 -5
  3. package/dist/browser-ext/dist/background.js +358 -768
  4. package/dist/browser-ext/manifest.json +1 -2
  5. package/dist/extensions/telegram/xopc.extension.json +1 -1
  6. package/dist/gateway/static/root/assets/{activity-store-DfBjTSo9.js → activity-store-w3eq3YpP.js} +1 -1
  7. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BN6FJXkJ.js → agent-avatar-dicebear-k039rbUz.js} +1 -1
  8. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-C7rZH1A2.js → agent-defaults-settings-panel-D4J4oq8p.js} +1 -1
  9. package/dist/gateway/static/root/assets/{agents-CgGaoo4z.js → agents-Bmth_bSQ.js} +1 -1
  10. package/dist/gateway/static/root/assets/{api-zxpcJfgj.js → api-2joIfbrH.js} +1 -1
  11. package/dist/gateway/static/root/assets/{app-management-settings-panel-D2gMshuS.js → app-management-settings-panel-ByJ4kiD0.js} +1 -1
  12. package/dist/gateway/static/root/assets/{appearance-settings-wMu0jSKx.js → appearance-settings-BK2Jga-B.js} +1 -1
  13. package/dist/gateway/static/root/assets/apps-page-B3ky7cWU.js +1 -0
  14. package/dist/gateway/static/root/assets/{archive-plugin-u6EE3JV8.js → archive-plugin-DMDKtYpi.js} +1 -1
  15. package/dist/gateway/static/root/assets/{attachment-load-DbJurnv-.js → attachment-load-B764Ql3Z.js} +1 -1
  16. package/dist/gateway/static/root/assets/{automations-page-Ew_e5HDn.js → automations-page-D-sO8CZe.js} +1 -1
  17. package/dist/gateway/static/root/assets/automations-workspace-Ds5-_-9z.js +6 -0
  18. package/dist/gateway/static/root/assets/{binary-plugins-DtDFNfPM.js → binary-plugins-fxtzYRpv.js} +1 -1
  19. package/dist/gateway/static/root/assets/{block-editor-CnAwmabq.js → block-editor-Bcjtvckh.js} +50 -50
  20. package/dist/gateway/static/root/assets/browser-automation-inputs-BSmnusjD.js +1 -0
  21. package/dist/gateway/static/root/assets/browser-automations-page-DC_OQIBk.js +3 -0
  22. package/dist/gateway/static/root/assets/browser-settings-page-C1FojyG6.js +3 -0
  23. package/dist/gateway/static/root/assets/capabilities-settings-panel-Bs59UCut.js +7 -0
  24. package/dist/gateway/static/root/assets/channels-settings-CM9vNmoo.js +1 -0
  25. package/dist/gateway/static/root/assets/{channels-status-swr-CX-yWwLD.js → channels-status-swr-BuWjIG_a.js} +1 -1
  26. package/dist/gateway/static/root/assets/{chat-terminal-dock-CryTDNdD.js → chat-terminal-dock-5SevEo_I.js} +2 -2
  27. package/dist/gateway/static/root/assets/connectors-page-BPZ44D-V.js +2 -0
  28. package/dist/gateway/static/root/assets/{cron-expression-ji5aWrjG.js → cron-expression-DtsfalBM.js} +1 -1
  29. package/dist/gateway/static/root/assets/{date-picker-Dro_w3eX.js → date-picker-tDEQV5TP.js} +1 -1
  30. package/dist/gateway/static/root/assets/{dependency-picker-Ce19KKnX.js → dependency-picker-HhNwg0Y2.js} +1 -1
  31. package/dist/gateway/static/root/assets/{desktop-pet-DsSi-3uZ.js → desktop-pet-acU4Li-C.js} +1 -1
  32. package/dist/gateway/static/root/assets/{desktop-pet-settings-8WQ4woJy.js → desktop-pet-settings-R84AR0Pe.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-debug-page-CgvEBfLZ.js → extension-debug-page-CrLlRkSN.js} +1 -1
  34. package/dist/gateway/static/root/assets/{extension-page-DkznBbMj.js → extension-page-BH5lmZXE.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-settings-page-BOjhchK2.js → extension-settings-page-BscjNAd1.js} +1 -1
  36. package/dist/gateway/static/root/assets/{gateway-config-swr-CMNbl0FZ.js → gateway-config-swr-9HidFZUd.js} +1 -1
  37. package/dist/gateway/static/root/assets/gateway-settings-BxLcW6ij.js +1 -0
  38. package/dist/gateway/static/root/assets/{gateway-startup-retry-CR7Xg8As.js → gateway-startup-retry-DRCPXONr.js} +1 -1
  39. package/dist/gateway/static/root/assets/heartbeat-settings-K5Zhl2rx.js +1 -0
  40. package/dist/gateway/static/root/assets/home-page-CZAg9RBv.js +1 -0
  41. package/dist/gateway/static/root/assets/{image-generation-api-C5mn73ca.js → image-generation-api-CR6Kle8H.js} +1 -1
  42. package/dist/gateway/static/root/assets/index-D4Ykja-U.js +72 -0
  43. package/dist/gateway/static/root/assets/index-zIJ3AXgR.css +2 -0
  44. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BYhfzsqe.js → keyboard-shortcuts-settings-B1QR49-7.js} +1 -1
  45. package/dist/gateway/static/root/assets/languages-5WaOu0Lf.js +2 -0
  46. package/dist/gateway/static/root/assets/local-app-workbench-page-wicoV-ti.js +2 -0
  47. package/dist/gateway/static/root/assets/{local-apps-page-vBlknU7C.js → local-apps-page-C74It-T8.js} +1 -1
  48. package/dist/gateway/static/root/assets/{locale-store-CF4erhjB.js → locale-store-BfZGZKSs.js} +1 -1
  49. package/dist/gateway/static/root/assets/logs-page-xX-7S49A.js +2 -0
  50. package/dist/gateway/static/root/assets/{management-settings-Dnx6mSNe.js → management-settings-1kNnYL97.js} +1 -1
  51. package/dist/gateway/static/root/assets/markdown-editor-BjMTIM-m.js +1 -0
  52. package/dist/gateway/static/root/assets/{markdown-view-CQvzsE24.js → markdown-view-DjiwT28p.js} +2 -2
  53. package/dist/gateway/static/root/assets/{media-plugins-DrMYeHe7.js → media-plugins-B5c0AoS1.js} +1 -1
  54. package/dist/gateway/static/root/assets/messages-DaIwVWar.js +3 -0
  55. package/dist/gateway/static/root/assets/{mobile-pairing-wizard-AKgGy3Kx.js → mobile-pairing-wizard-CsIZqK51.js} +1 -1
  56. package/dist/gateway/static/root/assets/note-detail-panel-CfWxopl4.js +5 -0
  57. package/dist/gateway/static/root/assets/notes-page-CYN-LCHJ.js +8 -0
  58. package/dist/gateway/static/root/assets/{page-tabs-CX9T71by.js → page-tabs-CqJN6Ljz.js} +1 -1
  59. package/dist/gateway/static/root/assets/{preview-open-alternatives-DvEHoimN.js → preview-open-alternatives-DqRIGxf4.js} +1 -1
  60. package/dist/gateway/static/root/assets/{product-open-page-COcr_NUJ.js → product-open-page-DE2nPE_K.js} +1 -1
  61. package/dist/gateway/static/root/assets/project-detail-page-B5G3LzDq.js +1 -0
  62. package/dist/gateway/static/root/assets/projects-page-CuVK2mKu.js +1 -0
  63. package/dist/gateway/static/root/assets/{registry-api-BsRBlji7.js → registry-api-Bpy8XX-5.js} +1 -1
  64. package/dist/gateway/static/root/assets/remote-access-hub-Dnd73xWt.js +1 -0
  65. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-CQ13P-mS.js → runtime-tools-settings-panel-Bb4b74-P.js} +2 -2
  66. package/dist/gateway/static/root/assets/{schema-form-BUVyTpZj.js → schema-form-DoPU5j3J.js} +1 -1
  67. package/dist/gateway/static/root/assets/sessions-page-XL4LyKZe.js +1 -0
  68. package/dist/gateway/static/root/assets/settings-advanced-gate-0ForzDSS.js +1 -0
  69. package/dist/gateway/static/root/assets/{settings-form-section-DVY-8_B9.js → settings-form-section-Ci-9WajJ.js} +1 -1
  70. package/dist/gateway/static/root/assets/{settings-page-CdiVYyTl.js → settings-page-CL_2F95D.js} +1 -1
  71. package/dist/gateway/static/root/assets/setup-status-panel-DVws6XZc.js +1 -0
  72. package/dist/gateway/static/root/assets/{share-preview-page-C88YLKm4.js → share-preview-page-XUA3oKQX.js} +1 -1
  73. package/dist/gateway/static/root/assets/shares-settings-BwDvcacF.js +1 -0
  74. package/dist/gateway/static/root/assets/skill-reload-api-BJjrATqE.js +1 -0
  75. package/dist/gateway/static/root/assets/{skills-page-DLir1nM0.js → skills-page-sXXAZDc9.js} +1 -1
  76. package/dist/gateway/static/root/assets/{skills-page.utils-BMZAfS3G.js → skills-page.utils-DD79Bl1I.js} +1 -1
  77. package/dist/gateway/static/root/assets/source-workspace-editor-CVWzt0oT.js +1 -0
  78. package/dist/gateway/static/root/assets/{system-settings-panel-BM8ivYan.js → system-settings-panel-BEH64qBV.js} +1 -1
  79. package/dist/gateway/static/root/assets/task-detail-page-0jxMi75O.js +1 -0
  80. package/dist/gateway/static/root/assets/{theme-store-BOgkc_9D.js → theme-store-CISSxU1c.js} +1 -1
  81. package/dist/gateway/static/root/assets/{tunnel-api-DemxChjo.js → tunnel-api-DrKDhnJm.js} +1 -1
  82. package/dist/gateway/static/root/assets/{use-autosave-CV3Ui5hu.js → use-autosave-CPYePL-Q.js} +1 -1
  83. package/dist/gateway/static/root/assets/user-model-page-B6zLDfDl.js +2 -0
  84. package/dist/gateway/static/root/assets/{vendor-codemirror--gTq3YAI.js → vendor-codemirror-Qdcjid65.js} +1 -1
  85. package/dist/gateway/static/root/assets/{voice-api-key-field-CUoCi4Sq.js → voice-api-key-field-DKqzrCXx.js} +1 -1
  86. package/dist/gateway/static/root/assets/{voice-config-api-C-ryeIxj.js → voice-config-api-e9xWjwBX.js} +1 -1
  87. package/dist/gateway/static/root/assets/{work-discovery-overlay-BhDlkCMB.js → work-discovery-overlay-kTQug6bq.js} +1 -1
  88. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-D8CcPc_C.js → workflow-run-setup-panel-m9SKj_GT.js} +2 -2
  89. package/dist/gateway/static/root/assets/workflows-page-Bcd1XqP7.js +5 -0
  90. package/dist/gateway/static/root/index.html +10 -10
  91. package/dist/package.js +1 -1
  92. package/dist/packages/gateway-contract/src/new-session.js +9 -0
  93. package/dist/src/agent/agent-manager.d.ts +2 -1
  94. package/dist/src/agent/agent-manager.js +2 -1
  95. package/dist/src/agent/coding/repository-instructions.js +2 -2
  96. package/dist/src/agent/coding/workspace-revision.js +2 -2
  97. package/dist/src/agent/commands/command-isolation.js +2 -2
  98. package/dist/src/agent/external-tools/composio-provider.d.ts +1 -0
  99. package/dist/src/agent/external-tools/composio-provider.js +64 -34
  100. package/dist/src/agent/external-tools/search-error.js +5 -3
  101. package/dist/src/agent/service.js +2 -1
  102. package/dist/src/agent/service.types.d.ts +2 -1
  103. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +4 -0
  104. package/dist/src/agent/tool-manuals/browser.d.ts +1 -1
  105. package/dist/src/agent/tool-manuals/browser.js +15 -226
  106. package/dist/src/agent/tools/browser/tool/browser-use-tool.d.ts +4 -21
  107. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +48 -165
  108. package/dist/src/agent/tools/browser/tool/schemas.d.ts +203 -16
  109. package/dist/src/agent/tools/browser/tool/schemas.js +146 -16
  110. package/dist/src/agent/tools/browser-automation-tool.d.ts +121 -0
  111. package/dist/src/agent/tools/browser-automation-tool.js +197 -0
  112. package/dist/src/agent/tools/factory.d.ts +6 -9
  113. package/dist/src/agent/tools/factory.js +28 -55
  114. package/dist/src/agent/tools/index.d.ts +2 -2
  115. package/dist/src/agent/tools/index.js +3 -3
  116. package/dist/src/agent/tools/review-workspace.js +2 -2
  117. package/dist/src/auth/oauth/xopc-cloud.js +3 -1
  118. package/dist/src/automations/domain/defaults.js +1 -1
  119. package/dist/src/automations/domain/types.d.ts +5 -5
  120. package/dist/src/automations/domain/validation.d.ts +12 -12
  121. package/dist/src/automations/domain/validation.js +3 -3
  122. package/dist/src/automations/draft/automation-draft-validator.d.ts +3 -3
  123. package/dist/src/automations/draft/automation-draft-validator.js +1 -1
  124. package/dist/src/automations/service/action-executor.d.ts +1 -1
  125. package/dist/src/automations/service/action-executor.js +7 -7
  126. package/dist/src/browser/{recipes → automations}/index.d.ts +1 -0
  127. package/dist/src/browser/automations/index.js +4 -0
  128. package/dist/src/browser/automations/repository.d.ts +13 -0
  129. package/dist/src/browser/automations/repository.js +60 -0
  130. package/dist/src/browser/automations/runner.d.ts +17 -0
  131. package/dist/src/browser/automations/runner.js +173 -0
  132. package/dist/src/browser/automations/runtime-service.d.ts +6 -0
  133. package/dist/src/browser/automations/runtime-service.js +37 -0
  134. package/dist/src/browser/automations/schema.d.ts +144 -0
  135. package/dist/src/browser/automations/schema.js +135 -0
  136. package/dist/src/browser/automations/service.d.ts +146 -0
  137. package/dist/src/browser/automations/service.js +168 -0
  138. package/dist/src/browser/automations/types.d.ts +90 -0
  139. package/dist/src/browser/cache-dir-policy.d.ts +1 -1
  140. package/dist/src/browser/cache-dir-policy.js +1 -4
  141. package/dist/src/browser/drivers/browser-driver.d.ts +17 -0
  142. package/dist/src/browser/drivers/create-driver.d.ts +3 -0
  143. package/dist/src/browser/drivers/create-driver.js +84 -0
  144. package/dist/src/browser/drivers/extension-driver.d.ts +20 -0
  145. package/dist/src/browser/drivers/extension-driver.js +47 -0
  146. package/dist/src/browser/drivers/playwright-driver.d.ts +38 -0
  147. package/dist/src/browser/drivers/playwright-driver.js +406 -0
  148. package/dist/src/browser/index.d.ts +10 -15
  149. package/dist/src/browser/index.js +10 -15
  150. package/dist/src/browser/install-lock.d.ts +1 -2
  151. package/dist/src/browser/install-lock.js +3 -9
  152. package/dist/src/browser/install-progress.d.ts +1 -1
  153. package/dist/src/browser/observation/format.d.ts +2 -0
  154. package/dist/src/browser/observation/format.js +26 -0
  155. package/dist/src/browser/policy/approval-store.d.ts +17 -0
  156. package/dist/src/browser/policy/approval-store.js +62 -0
  157. package/dist/src/browser/policy/browser-policy.d.ts +3 -0
  158. package/dist/src/browser/policy/browser-policy.js +27 -0
  159. package/dist/src/browser/providers/browser-ext-install.d.ts +1 -1
  160. package/dist/src/browser/providers/browser-ext-install.js +3 -5
  161. package/dist/src/browser/providers/browser-use.js +1 -1
  162. package/dist/src/browser/providers/browserbase.js +1 -1
  163. package/dist/src/browser/providers/extension-ws-acquire.d.ts +1 -4
  164. package/dist/src/browser/providers/extension-ws-acquire.js +1 -13
  165. package/dist/src/browser/providers/extension.d.ts +3 -22
  166. package/dist/src/browser/providers/extension.js +7 -15
  167. package/dist/src/browser/providers/index.d.ts +2 -2
  168. package/dist/src/browser/providers/index.js +3 -3
  169. package/dist/src/browser/providers/types.d.ts +0 -94
  170. package/dist/src/browser/readiness.d.ts +4 -22
  171. package/dist/src/browser/readiness.js +55 -118
  172. package/dist/src/browser/runtime/browser-runtime.d.ts +30 -0
  173. package/dist/src/browser/runtime/browser-runtime.js +362 -0
  174. package/dist/src/browser/url-policy.d.ts +3 -3
  175. package/dist/src/browser/url-policy.js +7 -6
  176. package/dist/src/browser/verification/expectation.d.ts +2 -0
  177. package/dist/src/browser/verification/expectation.js +17 -0
  178. package/dist/src/cli/command-loaders.js +1 -0
  179. package/dist/src/cli/command-manifest.js +5 -1
  180. package/dist/src/cli/commands/browser-cli-helpers.d.ts +0 -6
  181. package/dist/src/cli/commands/browser-cli-helpers.js +11 -144
  182. package/dist/src/cli/commands/browser.d.ts +0 -5
  183. package/dist/src/cli/commands/browser.js +11 -152
  184. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  185. package/dist/src/cli/commands/doctor/checks/node-version.js +25 -9
  186. package/dist/src/cli/commands/platform.d.ts +1 -0
  187. package/dist/src/cli/commands/platform.js +111 -0
  188. package/dist/src/config/loader.js +9 -3
  189. package/dist/src/config/schema.d.ts +131 -84
  190. package/dist/src/config/schema.js +112 -59
  191. package/dist/src/connectors/composio-sessions.js +1 -3
  192. package/dist/src/extensions/marketplace.js +4 -0
  193. package/dist/src/files/file-service.js +139 -14
  194. package/dist/src/gateway/hono/lib/config-payload.d.ts +12 -26
  195. package/dist/src/gateway/hono/lib/config-payload.js +10 -39
  196. package/dist/src/gateway/hono/routes/browser-automations.d.ts +3 -0
  197. package/dist/src/gateway/hono/routes/browser-automations.js +77 -0
  198. package/dist/src/gateway/hono/routes/browser-install.js +0 -32
  199. package/dist/src/gateway/hono/routes/browser.d.ts +0 -17
  200. package/dist/src/gateway/hono/routes/browser.js +46 -568
  201. package/dist/src/gateway/hono/routes/config-patch/misc.js +8 -1
  202. package/dist/src/gateway/hono/routes/config.js +0 -11
  203. package/dist/src/gateway/hono/routes/lazy-bundles.js +5 -5
  204. package/dist/src/gateway/service.d.ts +4 -6
  205. package/dist/src/gateway/service.js +20 -23
  206. package/dist/src/platform/client.d.ts +121 -0
  207. package/dist/src/platform/client.js +108 -0
  208. package/dist/src/platform/contracts.d.ts +194 -0
  209. package/dist/src/platform/contracts.js +150 -0
  210. package/dist/src/platform/index.d.ts +4 -0
  211. package/dist/src/platform/index.js +9 -0
  212. package/dist/src/platform/resolution.d.ts +4 -0
  213. package/dist/src/platform/resolution.js +16 -0
  214. package/dist/src/platform/worker.d.ts +6 -0
  215. package/dist/src/platform/worker.js +75 -0
  216. package/dist/src/providers/xopc-cloud-config.js +3 -1
  217. package/dist/src/session/session-context-for-llm.js +41 -1
  218. package/dist/src/share/hosted-session-share.js +3 -1
  219. package/dist/src/share/share-thumbnail.js +1 -1
  220. package/dist/src/storage/sqlite/migrations/153_browser_control_v2.sql +45 -0
  221. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  222. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  223. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  224. package/dist/src/storage/sqlite/schema.js +1 -1
  225. package/dist/src/storage/sqlite/schema.sql +16 -20
  226. package/dist/src/tasks/home-query-service.js +1 -1
  227. package/dist/src/tunnel/env.js +3 -1
  228. package/dist/src/voice/realtime/agentEngine.js +0 -1
  229. package/package.json +7 -7
  230. package/dist/gateway/static/root/assets/apps-page-KF1Gnv36.js +0 -1
  231. package/dist/gateway/static/root/assets/automations-workspace-Ch-ldu35.js +0 -6
  232. package/dist/gateway/static/root/assets/browser-settings-page-DtVhsHJW.js +0 -8
  233. package/dist/gateway/static/root/assets/browser-workflow-inputs-BX1-uM9L.js +0 -1
  234. package/dist/gateway/static/root/assets/browser-workflows-page-CcbUOWDF.js +0 -3
  235. package/dist/gateway/static/root/assets/capabilities-settings-panel--sXeylhe.js +0 -7
  236. package/dist/gateway/static/root/assets/channels-settings-AXSBDujZ.js +0 -1
  237. package/dist/gateway/static/root/assets/code-editor-D4_k-6QN.js +0 -1
  238. package/dist/gateway/static/root/assets/connectors-page-HBHUWohz.js +0 -2
  239. package/dist/gateway/static/root/assets/gateway-config-api-OEruhhX3.js +0 -1
  240. package/dist/gateway/static/root/assets/gateway-settings-BgH3A0LO.js +0 -1
  241. package/dist/gateway/static/root/assets/heartbeat-settings-C97naDkO.js +0 -1
  242. package/dist/gateway/static/root/assets/home-page-BBKKme4G.js +0 -1
  243. package/dist/gateway/static/root/assets/html-workspace-editor-C3DKAkMc.js +0 -1
  244. package/dist/gateway/static/root/assets/index-BcaF-dgQ.js +0 -72
  245. package/dist/gateway/static/root/assets/index-DAryGvZ7.css +0 -2
  246. package/dist/gateway/static/root/assets/local-app-workbench-page-DNncc2tn.js +0 -2
  247. package/dist/gateway/static/root/assets/logs-page-CizZInrT.js +0 -2
  248. package/dist/gateway/static/root/assets/markdown-editor-nDLmA_LF.js +0 -2
  249. package/dist/gateway/static/root/assets/markdown-split-DtBtcHWi.js +0 -1
  250. package/dist/gateway/static/root/assets/messages-Cf5hpZE6.js +0 -3
  251. package/dist/gateway/static/root/assets/note-detail-panel-Bw3jD9Jf.js +0 -5
  252. package/dist/gateway/static/root/assets/notes-page-Dpqq7Z-J.js +0 -8
  253. package/dist/gateway/static/root/assets/project-detail-page-BuT6MCTs.js +0 -1
  254. package/dist/gateway/static/root/assets/projects-page-DXWMxOjf.js +0 -1
  255. package/dist/gateway/static/root/assets/remote-access-hub-7rBCUWzZ.js +0 -1
  256. package/dist/gateway/static/root/assets/sessions-page-gmEOYNb4.js +0 -1
  257. package/dist/gateway/static/root/assets/settings-advanced-gate-DYYoJcl7.js +0 -1
  258. package/dist/gateway/static/root/assets/setup-status-panel-BhenBnUj.js +0 -1
  259. package/dist/gateway/static/root/assets/shares-settings-Dq7xIj0_.js +0 -1
  260. package/dist/gateway/static/root/assets/skill-reload-api-MDI9Lz6z.js +0 -1
  261. package/dist/gateway/static/root/assets/task-detail-page-P0_RldWv.js +0 -1
  262. package/dist/gateway/static/root/assets/user-model-page-CxfnoRVn.js +0 -2
  263. package/dist/gateway/static/root/assets/workflows-page-Bxn2Dc16.js +0 -5
  264. package/dist/src/agent/tools/browser-recipe-tool.d.ts +0 -12
  265. package/dist/src/agent/tools/browser-recipe-tool.js +0 -113
  266. package/dist/src/browser/actions/extension-registry-bridge.d.ts +0 -5
  267. package/dist/src/browser/actions/extension-registry-bridge.js +0 -312
  268. package/dist/src/browser/actions/registry.d.ts +0 -5
  269. package/dist/src/browser/actions/registry.js +0 -741
  270. package/dist/src/browser/actions/types.d.ts +0 -65
  271. package/dist/src/browser/backend-from-config.d.ts +0 -22
  272. package/dist/src/browser/backend-from-config.js +0 -99
  273. package/dist/src/browser/browser-command-timeout.d.ts +0 -2
  274. package/dist/src/browser/browser-command-timeout.js +0 -11
  275. package/dist/src/browser/cdp-local-launcher.d.ts +0 -35
  276. package/dist/src/browser/cdp-local-launcher.js +0 -154
  277. package/dist/src/browser/cdp-supervisor.d.ts +0 -58
  278. package/dist/src/browser/cdp-supervisor.js +0 -133
  279. package/dist/src/browser/humanize.d.ts +0 -80
  280. package/dist/src/browser/humanize.js +0 -363
  281. package/dist/src/browser/manager.d.ts +0 -50
  282. package/dist/src/browser/manager.js +0 -251
  283. package/dist/src/browser/pipeline/output.d.ts +0 -35
  284. package/dist/src/browser/pipeline/output.js +0 -74
  285. package/dist/src/browser/pipeline/runner.d.ts +0 -27
  286. package/dist/src/browser/pipeline/runner.js +0 -453
  287. package/dist/src/browser/pipeline/schema.d.ts +0 -42
  288. package/dist/src/browser/pipeline/schema.js +0 -116
  289. package/dist/src/browser/pipeline/template.d.ts +0 -30
  290. package/dist/src/browser/pipeline/template.js +0 -112
  291. package/dist/src/browser/providers/cloakbrowser.d.ts +0 -83
  292. package/dist/src/browser/providers/cloakbrowser.js +0 -612
  293. package/dist/src/browser/recipes/index.js +0 -3
  294. package/dist/src/browser/recipes/repository.d.ts +0 -13
  295. package/dist/src/browser/recipes/repository.js +0 -81
  296. package/dist/src/browser/recipes/runtime-service.d.ts +0 -6
  297. package/dist/src/browser/recipes/runtime-service.js +0 -30
  298. package/dist/src/browser/recipes/service.d.ts +0 -36
  299. package/dist/src/browser/recipes/service.js +0 -186
  300. package/dist/src/browser/recipes/types.d.ts +0 -36
  301. package/dist/src/browser/schemas.d.ts +0 -53
  302. package/dist/src/browser/schemas.js +0 -68
  303. package/dist/src/browser/session-lifecycle.d.ts +0 -40
  304. package/dist/src/browser/session-lifecycle.js +0 -136
  305. package/dist/src/browser/snapshot-helpers.d.ts +0 -24
  306. package/dist/src/browser/snapshot-helpers.js +0 -70
  307. package/dist/src/browser/stealth.d.ts +0 -46
  308. package/dist/src/browser/stealth.js +0 -163
  309. package/dist/src/gateway/hono/routes/browser-workflows.d.ts +0 -3
  310. package/dist/src/gateway/hono/routes/browser-workflows.js +0 -78
  311. /package/dist/src/browser/{actions → automations}/types.js +0 -0
  312. /package/dist/src/browser/{recipes/types.js → drivers/browser-driver.js} +0 -0
@@ -0,0 +1,168 @@
1
+ import { BrowserAutomationDefinitionSchema } from "./schema.js";
2
+ import { resolveBrowserAutomationInputs } from "./runner.js";
3
+ import { appendBrowserAutomationRunEvent, deleteBrowserAutomation, getBrowserAutomation, getBrowserAutomationRun, hasActiveBrowserAutomationRuns, listActiveBrowserAutomationRuns, listBrowserAutomationRunEvents, listBrowserAutomationRuns, listBrowserAutomations, nextBrowserAutomationRunEventSeq, saveBrowserAutomation, saveBrowserAutomationRun } from "./repository.js";
4
+ import { randomUUID } from "node:crypto";
5
+ //#region src/browser/automations/service.ts
6
+ var BrowserAutomationService = class {
7
+ activeRuns = /* @__PURE__ */ new Map();
8
+ executions = /* @__PURE__ */ new Map();
9
+ waiters = /* @__PURE__ */ new Map();
10
+ constructor(executor, emit) {
11
+ this.executor = executor;
12
+ this.emit = emit;
13
+ for (const run of listActiveBrowserAutomationRuns()) {
14
+ const endedAtMs = Date.now();
15
+ saveBrowserAutomationRun({
16
+ ...run,
17
+ status: "failed",
18
+ error: "Gateway stopped before the run completed.",
19
+ endedAtMs,
20
+ durationMs: run.startedAtMs ? endedAtMs - run.startedAtMs : void 0
21
+ });
22
+ }
23
+ }
24
+ list() {
25
+ return listBrowserAutomations();
26
+ }
27
+ get(id) {
28
+ return getBrowserAutomation(id);
29
+ }
30
+ listRuns(automationId) {
31
+ return listBrowserAutomationRuns(automationId);
32
+ }
33
+ getRun(id) {
34
+ return getBrowserAutomationRun(id);
35
+ }
36
+ listRunEvents(id) {
37
+ return listBrowserAutomationRunEvents(id);
38
+ }
39
+ validate(definition) {
40
+ return BrowserAutomationDefinitionSchema.safeParse(definition);
41
+ }
42
+ save(input) {
43
+ const parsed = BrowserAutomationDefinitionSchema.parse(input.definition);
44
+ if (input.expectedId && parsed.id !== input.expectedId) throw new Error("Browser automation id cannot change.");
45
+ const existing = getBrowserAutomation(parsed.id);
46
+ const now = Date.now();
47
+ const automation = {
48
+ id: parsed.id,
49
+ revision: (existing?.revision ?? 0) + 1,
50
+ status: input.status ?? existing?.status ?? "enabled",
51
+ definition: parsed,
52
+ createdAtMs: existing?.createdAtMs ?? now,
53
+ updatedAtMs: now
54
+ };
55
+ saveBrowserAutomation(automation);
56
+ return automation;
57
+ }
58
+ remove(id) {
59
+ if (hasActiveBrowserAutomationRuns(id)) throw new Error("Cannot delete a running browser automation.");
60
+ return deleteBrowserAutomation(id);
61
+ }
62
+ startRun(automationId, inputs) {
63
+ const automation = getBrowserAutomation(automationId);
64
+ if (!automation) throw new Error("Browser automation not found.");
65
+ if (automation.status !== "enabled") throw new Error("Browser automation is disabled.");
66
+ const resolvedInputs = resolveBrowserAutomationInputs(automation.definition, inputs);
67
+ const run = {
68
+ id: randomUUID(),
69
+ automationId,
70
+ automationRevision: automation.revision,
71
+ definition: automation.definition,
72
+ status: "queued",
73
+ inputs: resolvedInputs,
74
+ createdAtMs: Date.now()
75
+ };
76
+ saveBrowserAutomationRun(run);
77
+ this.addEvent(run.id, "run.queued", { automationId });
78
+ const execution = this.execute(run);
79
+ this.executions.set(run.id, execution);
80
+ execution.finally(() => this.executions.delete(run.id)).catch(() => void 0);
81
+ return run;
82
+ }
83
+ cancel(runId) {
84
+ const active = this.activeRuns.get(runId);
85
+ if (!active) return false;
86
+ active.abort();
87
+ return true;
88
+ }
89
+ async shutdown() {
90
+ for (const active of this.activeRuns.values()) active.abort();
91
+ await Promise.allSettled(this.executions.values());
92
+ }
93
+ async runAndWait(automationId, inputs, signal) {
94
+ const run = this.startRun(automationId, inputs);
95
+ return new Promise((resolve) => {
96
+ const complete = (value) => {
97
+ signal?.removeEventListener("abort", onAbort);
98
+ resolve(value);
99
+ };
100
+ const onAbort = () => this.cancel(run.id);
101
+ const set = this.waiters.get(run.id) ?? /* @__PURE__ */ new Set();
102
+ set.add(complete);
103
+ this.waiters.set(run.id, set);
104
+ signal?.addEventListener("abort", onAbort, { once: true });
105
+ if (signal?.aborted) onAbort();
106
+ });
107
+ }
108
+ addEvent(runId, type, data) {
109
+ const event = {
110
+ id: randomUUID(),
111
+ runId,
112
+ seq: nextBrowserAutomationRunEventSeq(runId),
113
+ type,
114
+ data,
115
+ createdAtMs: Date.now()
116
+ };
117
+ appendBrowserAutomationRunEvent(event);
118
+ this.emit?.(`browser.automation.${type}`, event);
119
+ }
120
+ async execute(run) {
121
+ const controller = new AbortController();
122
+ this.activeRuns.set(run.id, controller);
123
+ const startedAtMs = Date.now();
124
+ let current = {
125
+ ...run,
126
+ status: "running",
127
+ startedAtMs
128
+ };
129
+ saveBrowserAutomationRun(current);
130
+ this.addEvent(run.id, "run.started");
131
+ try {
132
+ const outcome = await this.executor({
133
+ definition: run.definition,
134
+ inputs: run.inputs,
135
+ signal: controller.signal,
136
+ onStep: (event) => this.addEvent(run.id, "step", event)
137
+ });
138
+ const endedAtMs = Date.now();
139
+ current = {
140
+ ...current,
141
+ status: controller.signal.aborted ? "cancelled" : outcome.ok ? "succeeded" : "failed",
142
+ result: outcome.result,
143
+ error: outcome.error,
144
+ endedAtMs,
145
+ durationMs: endedAtMs - startedAtMs
146
+ };
147
+ } catch (error) {
148
+ const endedAtMs = Date.now();
149
+ current = {
150
+ ...current,
151
+ status: controller.signal.aborted ? "cancelled" : "failed",
152
+ error: error instanceof Error ? error.message : String(error),
153
+ endedAtMs,
154
+ durationMs: endedAtMs - startedAtMs
155
+ };
156
+ }
157
+ saveBrowserAutomationRun(current);
158
+ this.addEvent(run.id, "run.completed", {
159
+ status: current.status,
160
+ error: current.error
161
+ });
162
+ this.activeRuns.delete(run.id);
163
+ for (const waiter of this.waiters.get(run.id) ?? []) waiter(current);
164
+ this.waiters.delete(run.id);
165
+ }
166
+ };
167
+ //#endregion
168
+ export { BrowserAutomationService };
@@ -0,0 +1,90 @@
1
+ import type { BrowserExpectation, BrowserRiskLevel } from '@xopcai/browser-control-contract';
2
+ export type BrowserAutomationStatus = 'enabled' | 'disabled';
3
+ export type BrowserAutomationRunStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled';
4
+ export interface BrowserAutomationInputDefinition {
5
+ type: 'string' | 'number' | 'boolean';
6
+ required?: boolean;
7
+ default?: string | number | boolean;
8
+ description?: string;
9
+ choices?: Array<string | number | boolean>;
10
+ }
11
+ export interface BrowserSemanticTarget {
12
+ role: string;
13
+ name?: string;
14
+ nameIncludes?: string;
15
+ }
16
+ export type BrowserAutomationStep = {
17
+ action: 'navigate';
18
+ url: string;
19
+ expect?: BrowserExpectation;
20
+ } | {
21
+ action: 'click';
22
+ target: BrowserSemanticTarget;
23
+ expect?: BrowserExpectation;
24
+ } | {
25
+ action: 'fill';
26
+ target: BrowserSemanticTarget;
27
+ value: string;
28
+ submit?: boolean;
29
+ expect?: BrowserExpectation;
30
+ } | {
31
+ action: 'select';
32
+ target: BrowserSemanticTarget;
33
+ value: string;
34
+ expect?: BrowserExpectation;
35
+ } | {
36
+ action: 'press';
37
+ target?: BrowserSemanticTarget;
38
+ key: string;
39
+ expect?: BrowserExpectation;
40
+ } | {
41
+ action: 'scroll';
42
+ target?: BrowserSemanticTarget;
43
+ deltaY: number;
44
+ expect?: BrowserExpectation;
45
+ } | {
46
+ action: 'wait';
47
+ condition: 'page_idle' | 'text' | 'visible' | 'hidden';
48
+ value?: string;
49
+ target?: BrowserSemanticTarget;
50
+ timeoutMs?: number;
51
+ };
52
+ export interface BrowserAutomationDefinition {
53
+ id: string;
54
+ name: string;
55
+ description?: string;
56
+ allowedDomains: string[];
57
+ risk: BrowserRiskLevel;
58
+ inputs: Record<string, BrowserAutomationInputDefinition>;
59
+ steps: BrowserAutomationStep[];
60
+ }
61
+ export interface BrowserAutomation {
62
+ id: string;
63
+ revision: number;
64
+ status: BrowserAutomationStatus;
65
+ definition: BrowserAutomationDefinition;
66
+ createdAtMs: number;
67
+ updatedAtMs: number;
68
+ }
69
+ export interface BrowserAutomationRun {
70
+ id: string;
71
+ automationId: string;
72
+ automationRevision: number;
73
+ definition: BrowserAutomationDefinition;
74
+ status: BrowserAutomationRunStatus;
75
+ inputs: Record<string, unknown>;
76
+ result?: unknown;
77
+ error?: string;
78
+ createdAtMs: number;
79
+ startedAtMs?: number;
80
+ endedAtMs?: number;
81
+ durationMs?: number;
82
+ }
83
+ export interface BrowserAutomationRunEvent {
84
+ id: string;
85
+ runId: string;
86
+ seq: number;
87
+ type: string;
88
+ data?: unknown;
89
+ createdAtMs: number;
90
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Where user-facing browser caches (CloakBrowser binaries, CDP launcher
2
+ * Where user-facing browser caches (extension artifacts and CDP launcher
3
3
  * profiles, etc.) are allowed to live.
4
4
  *
5
5
  * Restricting the writable set to the user's home directory makes it safe to
@@ -1,4 +1,3 @@
1
- import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
1
  import { homedir } from "node:os";
3
2
  import { isAbsolute, relative, resolve, sep } from "node:path";
4
3
  //#region src/browser/cache-dir-policy.ts
@@ -47,7 +46,5 @@ function assertCacheDir(input) {
47
46
  if (r.ok === false) throw new Error(r.message);
48
47
  return r.resolved;
49
48
  }
50
- var init_cache_dir_policy = __esmMin((() => {}));
51
49
  //#endregion
52
- init_cache_dir_policy();
53
- export { assertCacheDir, checkCacheDir, expandHome, init_cache_dir_policy };
50
+ export { assertCacheDir, checkCacheDir, expandHome };
@@ -0,0 +1,17 @@
1
+ import type { BrowserActionInput, BrowserControlResult, BrowserNavigateInput, BrowserObservation, BrowserObserveInput, BrowserTabsInput } from '@xopcai/browser-control-contract';
2
+ export type BrowserPrimitiveInput = Exclude<BrowserActionInput, BrowserNavigateInput | BrowserObserveInput | BrowserTabsInput | {
3
+ action: 'sequence';
4
+ } | {
5
+ action: 'close';
6
+ }>;
7
+ export interface BrowserDriver {
8
+ readonly kind: 'playwright' | 'extension';
9
+ connect(): Promise<void>;
10
+ disconnect(): Promise<void>;
11
+ createSession(sessionId: string): Promise<void>;
12
+ closeSession(sessionId: string): Promise<void>;
13
+ navigate(sessionId: string, input: BrowserNavigateInput, signal?: AbortSignal): Promise<BrowserControlResult>;
14
+ observe(sessionId: string, input: BrowserObserveInput, signal?: AbortSignal): Promise<BrowserObservation>;
15
+ perform(sessionId: string, input: BrowserPrimitiveInput, signal?: AbortSignal): Promise<BrowserControlResult>;
16
+ tabs(sessionId: string, input: BrowserTabsInput, signal?: AbortSignal): Promise<BrowserControlResult>;
17
+ }
@@ -0,0 +1,3 @@
1
+ import type { Config } from '../../config/schema.js';
2
+ import type { BrowserDriver } from './browser-driver.js';
3
+ export declare function createBrowserDriver(config: Config['browser']): Promise<BrowserDriver>;
@@ -0,0 +1,84 @@
1
+ import { createLogger } from "../../utils/logger/index.js";
2
+ import { init_logger } from "../../utils/logger.js";
3
+ import { loadPlaywrightCoreModule } from "../providers/playwright-doctor.js";
4
+ import { BrowserbaseProvider } from "../providers/browserbase.js";
5
+ import { BrowserUseProvider } from "../providers/browser-use.js";
6
+ import { acquireExtensionBrowserServer } from "../providers/extension-ws-acquire.js";
7
+ import { ExtensionDriver } from "./extension-driver.js";
8
+ import { PlaywrightDriver } from "./playwright-driver.js";
9
+ //#region src/browser/drivers/create-driver.ts
10
+ init_logger();
11
+ const log = createLogger("BrowserDriverFactory");
12
+ async function createBrowserDriver(config) {
13
+ const limits = config.limits;
14
+ if (config.driver.kind === "extension") {
15
+ const { provider, release } = await acquireExtensionBrowserServer({
16
+ host: "127.0.0.1",
17
+ port: 19820,
18
+ connectionTimeout: limits.actionTimeoutMs,
19
+ commandTimeout: limits.actionTimeoutMs
20
+ });
21
+ return new ExtensionDriver(provider, limits.actionTimeoutMs, config.observation.visualFallback, release);
22
+ }
23
+ const driver = config.driver;
24
+ return new PlaywrightDriver({
25
+ connect: () => connectPlaywright(driver),
26
+ maxNodes: config.observation.maxNodes,
27
+ maxCharacters: config.observation.maxCharacters,
28
+ visualFallback: config.observation.visualFallback,
29
+ actionTimeoutMs: limits.actionTimeoutMs
30
+ });
31
+ }
32
+ async function connectPlaywright(driver) {
33
+ if (driver.kind === "remote") {
34
+ const provider = driver.provider === "browserbase" ? new BrowserbaseProvider({
35
+ type: driver.provider,
36
+ apiKey: driver.apiKey,
37
+ projectId: driver.projectId,
38
+ region: driver.region
39
+ }) : new BrowserUseProvider({
40
+ type: driver.provider,
41
+ apiKey: driver.apiKey,
42
+ projectId: driver.projectId,
43
+ region: driver.region
44
+ });
45
+ return {
46
+ ...await provider.connect(),
47
+ release: () => provider.disconnect()
48
+ };
49
+ }
50
+ const playwright = await loadPlaywrightCoreModule();
51
+ const chromium = playwright.chromium ?? playwright.default?.chromium;
52
+ if (!chromium) throw new Error("playwright-core did not expose Chromium");
53
+ if (driver.kind === "cdp") {
54
+ const browser = await chromium.connectOverCDP(driver.endpoint);
55
+ const context = browser.contexts()[0] ?? await browser.newContext();
56
+ log.info({ kind: driver.kind }, "Browser driver connected");
57
+ return {
58
+ browser,
59
+ context
60
+ };
61
+ }
62
+ const browser = await chromium.launch({
63
+ headless: driver.headless,
64
+ executablePath: driver.executablePath,
65
+ args: ["--no-sandbox", "--disable-setuid-sandbox"]
66
+ });
67
+ const context = await createContext(browser);
68
+ log.info({
69
+ kind: driver.kind,
70
+ headless: driver.headless
71
+ }, "Browser driver connected");
72
+ return {
73
+ browser,
74
+ context
75
+ };
76
+ }
77
+ async function createContext(browser) {
78
+ return browser.newContext({ viewport: {
79
+ width: 1280,
80
+ height: 720
81
+ } });
82
+ }
83
+ //#endregion
84
+ export { createBrowserDriver };
@@ -0,0 +1,20 @@
1
+ import type { BrowserControlResult, BrowserNavigateInput, BrowserObservation, BrowserObserveInput, BrowserTabsInput } from '@xopcai/browser-control-contract';
2
+ import type { ExtensionBrowserProvider } from '../providers/extension.js';
3
+ import type { BrowserDriver, BrowserPrimitiveInput } from './browser-driver.js';
4
+ export declare class ExtensionDriver implements BrowserDriver {
5
+ private readonly provider;
6
+ private readonly timeoutMs;
7
+ private readonly visualFallback;
8
+ private readonly release;
9
+ readonly kind: "extension";
10
+ constructor(provider: ExtensionBrowserProvider, timeoutMs: number, visualFallback: boolean, release: () => Promise<void>);
11
+ connect(): Promise<void>;
12
+ disconnect(): Promise<void>;
13
+ createSession(_sessionId: string): Promise<void>;
14
+ closeSession(sessionId: string): Promise<void>;
15
+ navigate(_sessionId: string, input: BrowserNavigateInput): Promise<BrowserControlResult>;
16
+ observe(_sessionId: string, input: BrowserObserveInput): Promise<BrowserObservation>;
17
+ perform(_sessionId: string, input: BrowserPrimitiveInput): Promise<BrowserControlResult>;
18
+ tabs(_sessionId: string, input: BrowserTabsInput): Promise<BrowserControlResult>;
19
+ private send;
20
+ }
@@ -0,0 +1,47 @@
1
+ //#region src/browser/drivers/extension-driver.ts
2
+ var ExtensionDriver = class {
3
+ kind = "extension";
4
+ constructor(provider, timeoutMs, visualFallback, release) {
5
+ this.provider = provider;
6
+ this.timeoutMs = timeoutMs;
7
+ this.visualFallback = visualFallback;
8
+ this.release = release;
9
+ }
10
+ async connect() {
11
+ await this.provider.start();
12
+ await this.provider.waitForConnection();
13
+ }
14
+ async disconnect() {
15
+ await this.release();
16
+ }
17
+ async createSession(_sessionId) {
18
+ await this.connect();
19
+ }
20
+ async closeSession(sessionId) {
21
+ await this.send({
22
+ action: "close",
23
+ sessionId
24
+ });
25
+ }
26
+ navigate(_sessionId, input) {
27
+ return this.send(input);
28
+ }
29
+ async observe(_sessionId, input) {
30
+ const result = await this.send(input);
31
+ if ("error" in result) throw new Error(result.error.message);
32
+ const observation = result.receipt.observation;
33
+ if (!observation) throw new Error("Extension returned no browser observation");
34
+ return observation;
35
+ }
36
+ perform(_sessionId, input) {
37
+ return this.send(input);
38
+ }
39
+ tabs(_sessionId, input) {
40
+ return this.send(input);
41
+ }
42
+ async send(input) {
43
+ return (await this.provider.send(input, this.timeoutMs, this.visualFallback)).result;
44
+ }
45
+ };
46
+ //#endregion
47
+ export { ExtensionDriver };
@@ -0,0 +1,38 @@
1
+ import type { BrowserControlResult, BrowserNavigateInput, BrowserObservation, BrowserObserveInput, BrowserTabsInput } from '@xopcai/browser-control-contract';
2
+ import type { Browser, BrowserContext } from 'playwright-core';
3
+ import type { BrowserDriver, BrowserPrimitiveInput } from './browser-driver.js';
4
+ export interface PlaywrightConnection {
5
+ browser: Browser;
6
+ context: BrowserContext;
7
+ release?: () => Promise<void>;
8
+ }
9
+ export interface PlaywrightDriverOptions {
10
+ connect: () => Promise<PlaywrightConnection>;
11
+ maxNodes: number;
12
+ maxCharacters: number;
13
+ visualFallback: boolean;
14
+ actionTimeoutMs: number;
15
+ }
16
+ export declare class PlaywrightDriver implements BrowserDriver {
17
+ private readonly options;
18
+ readonly kind: "playwright";
19
+ private connection;
20
+ private sessions;
21
+ constructor(options: PlaywrightDriverOptions);
22
+ connect(): Promise<void>;
23
+ disconnect(): Promise<void>;
24
+ createSession(sessionId: string): Promise<void>;
25
+ closeSession(sessionId: string): Promise<void>;
26
+ navigate(sessionId: string, input: BrowserNavigateInput, signal?: AbortSignal): Promise<BrowserControlResult>;
27
+ observe(sessionId: string, input: BrowserObserveInput, signal?: AbortSignal): Promise<BrowserObservation>;
28
+ perform(sessionId: string, input: BrowserPrimitiveInput, signal?: AbortSignal): Promise<BrowserControlResult>;
29
+ tabs(sessionId: string, input: BrowserTabsInput, signal?: AbortSignal): Promise<BrowserControlResult>;
30
+ private wait;
31
+ private verifiedResult;
32
+ private captureVisual;
33
+ private activeState;
34
+ private session;
35
+ private createPageState;
36
+ private context;
37
+ private listTabs;
38
+ }