@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
@@ -1,27 +1,10 @@
1
- /**
2
- * browser_use — unified browser AgentTool.
3
- *
4
- * Modes: command | inspect | close.
5
- * Replaces the 14 fine-grained browser_* tools with a single entry point.
6
- */
7
1
  import type { AgentTool } from '@earendil-works/pi-agent-core';
8
- import type { Config } from '../../../../config/schema.js';
9
- import type { BrowserManager } from '../../../../browser/manager.js';
10
- import type { CdpSupervisor } from '../../../../browser/cdp-supervisor.js';
11
- import type { Page } from 'playwright-core';
12
2
  import type { BrowserNotReadyError } from '../../../../browser/readiness.js';
3
+ import type { BrowserRuntime } from '../../../../browser/runtime/browser-runtime.js';
4
+ import { BrowserUseSchema } from './schemas.js';
13
5
  export interface CreateBrowserUseToolDeps {
14
- getManager: () => BrowserManager;
15
- getPageForTask: () => Promise<Page>;
6
+ getRuntime: () => BrowserRuntime;
16
7
  getTaskId: () => string;
17
- getConfig: () => Config | undefined;
18
- getSupervisor?: () => CdpSupervisor | undefined;
19
- notifyBrowserPageClosed?: (taskId: string) => void;
20
- /**
21
- * Preflight readiness check. Returns `null` when the configured backend is
22
- * usable, otherwise a structured hint the chat surface renders as a setup
23
- * card. Cache the result upstream (~30s) so back-to-back calls don't reprobe.
24
- */
25
8
  getReadiness?: () => Promise<BrowserNotReadyError | null>;
26
9
  }
27
- export declare function createBrowserUseTool(deps: CreateBrowserUseToolDeps): AgentTool<any, any>;
10
+ export declare function createBrowserUseTool(deps: CreateBrowserUseToolDeps): AgentTool<typeof BrowserUseSchema, Record<string, unknown>>;
@@ -1,186 +1,69 @@
1
- import { createLogger } from "../../../../utils/logger/index.js";
2
- import { init_logger } from "../../../../utils/logger.js";
3
- import { createBrowserActionRegistry } from "../../../../browser/actions/registry.js";
1
+ import { formatBrowserObservation } from "../../../../browser/observation/format.js";
4
2
  import { BrowserUseSchema } from "./schemas.js";
5
3
  //#region src/agent/tools/browser/tool/browser-use-tool.ts
6
- init_logger();
7
- const log = createLogger("Agent:BrowserUse");
8
4
  function createBrowserUseTool(deps) {
9
- const registry = createBrowserActionRegistry();
10
- function buildContext(page, signal) {
11
- return {
12
- page,
13
- manager: deps.getManager(),
14
- config: deps.getConfig(),
15
- taskId: deps.getTaskId(),
16
- supervisor: deps.getSupervisor?.(),
17
- signal
18
- };
19
- }
20
- /**
21
- * Render a {@link BrowserSetupHint} as a tool result. The text body is a
22
- * JSON envelope (`kind: 'browser_setup_required'`) so the chat surface can
23
- * detect it and render a Setup card; the embedded `message` keeps the
24
- * payload human-readable for the LLM so it stops the browser attempt and
25
- * tells the user to finish setup.
26
- */
27
- function formatNotReady(hint) {
28
- const message = `⚠ Browser is not ready (backend=${hint.backend}, reason=${hint.reason}). Do NOT retry. Tell the user to open Settings → Browser to finish setup, then ask them to confirm before running any browser action again.`;
29
- const payload = {
30
- kind: "browser_setup_required",
31
- backend: hint.backend,
32
- reason: hint.reason,
33
- deepLink: hint.deepLink,
34
- detail: hint.detail,
35
- message
36
- };
37
- return {
38
- content: [{
39
- type: "text",
40
- text: JSON.stringify(payload)
41
- }],
42
- details: {
43
- ok: false,
44
- kind: "browser_setup_required",
45
- backend: hint.backend,
46
- reason: hint.reason,
47
- deepLink: hint.deepLink
48
- }
49
- };
50
- }
51
- function formatResult(result) {
52
- if (result.ok) {
53
- const parts = [];
54
- if (result.text) parts.push(result.text);
55
- if (result.data && !result.text) parts.push(JSON.stringify(result.data, null, 2));
56
- return {
5
+ return {
6
+ name: "browser_use",
7
+ label: "🌐 Browser",
8
+ description: "Control a persistent browser through typed semantic actions. Start with observe or navigate, then use only refs and revision values from the latest observation. Screenshots are attached only when requested or semantic observation is insufficient.",
9
+ parameters: BrowserUseSchema,
10
+ async execute(_toolCallId, params, signal) {
11
+ const readiness = await deps.getReadiness?.();
12
+ if (readiness) return {
57
13
  content: [{
58
14
  type: "text",
59
- text: parts.join("\n") || "OK"
15
+ text: `Browser is not ready: ${readiness.hint.detail || readiness.hint.reason}. Open Settings → Browser.`
60
16
  }],
61
17
  details: {
62
- ok: true,
63
- action: result.action,
64
- ...result.artifacts?.length ? { artifacts: result.artifacts.length } : {}
18
+ ok: false,
19
+ kind: "browser_setup_required",
20
+ hint: readiness.hint
65
21
  }
66
22
  };
23
+ return presentResult(await deps.getRuntime().execute(deps.getTaskId(), params, signal));
67
24
  }
68
- const parts = [];
69
- if (result.error) parts.push(`[${result.error.code}] ${result.error.message}`);
70
- if (result.diagnostics?.url) parts.push(`URL: ${result.diagnostics.url}`);
71
- if (result.diagnostics?.snapshot) parts.push(`Snapshot: ${result.diagnostics.snapshot.slice(0, 2e3)}`);
25
+ };
26
+ }
27
+ function presentResult(result) {
28
+ if (result.ok) {
29
+ const observation = result.receipt.observation;
72
30
  return {
73
- content: [{
74
- type: "text",
75
- text: parts.join("\n") || "Failed"
76
- }],
31
+ content: contentWithVisual(observation ? formatBrowserObservation(observation) : result.receipt.tabs ? formatTabs(result.receipt.tabs) : `${result.receipt.action} completed and verified.`, observation),
77
32
  details: {
78
- ok: false,
79
- action: result.action,
80
- error: result.error
33
+ ok: true,
34
+ receipt: stripVisual(result.receipt)
81
35
  }
82
36
  };
83
37
  }
38
+ if (!("error" in result)) throw new Error("Invalid browser control result");
39
+ const observation = result.error.observation;
84
40
  return {
85
- name: "browser_use",
86
- label: "🌐 Browser",
87
- description: "Use a persistent browser for navigation, inspection, interaction, screenshots, and network capture. Use browser_recipe for saved repeatable browser work.",
88
- parameters: BrowserUseSchema,
89
- async execute(_toolCallId, params, signal, _onUpdate) {
90
- const { mode, command, args: cmdArgs, options: _options } = params;
91
- if (deps.getReadiness) try {
92
- const notReady = await deps.getReadiness();
93
- if (notReady) return formatNotReady(notReady.hint);
94
- } catch (e) {
95
- log.warn({ err: e }, "Readiness preflight threw; continuing with launch attempt");
96
- }
97
- if (mode === "inspect") {
98
- const mgr = deps.getManager();
99
- await mgr.ensureConnected();
100
- const ext = mgr.getExtensionProvider();
101
- if (ext) {
102
- const timeoutMs = 3e4;
103
- const urlRes = await ext.sendCommand("get_url", {}, { timeout: timeoutMs });
104
- const titleRes = await ext.sendCommand("get_title", {}, { timeout: timeoutMs });
105
- const snapRes = await ext.sendCommand("snapshot", {}, { timeout: timeoutMs });
106
- const url = urlRes.ok && urlRes.data ? String(urlRes.data.url ?? "") : "";
107
- const title = titleRes.ok && titleRes.data ? String(titleRes.data.title ?? "") : "";
108
- let snapText = "";
109
- if (snapRes.ok && snapRes.data) {
110
- snapText = (snapRes.data.nodes ?? []).map((n) => `${n.role ?? "?"}: ${n.name ?? ""}`).join("\n");
111
- if (snapText.length > 8e3) snapText = `${snapText.slice(0, 8e3)}\n... (truncated)`;
112
- }
113
- return {
114
- content: [{
115
- type: "text",
116
- text: `URL: ${url}\nTitle: ${title}\n${snapText ? `--- Page Snapshot ---\n${snapText}` : ""}`
117
- }],
118
- details: {
119
- ok: true,
120
- mode: "inspect",
121
- url,
122
- title
123
- }
124
- };
125
- }
126
- const page = await deps.getPageForTask();
127
- const ctx = buildContext(page, signal);
128
- const result = await registry.execute("state", ctx, {});
129
- const url = page.url();
130
- const title = await page.title().catch(() => "");
131
- return {
132
- content: [{
133
- type: "text",
134
- text: `URL: ${url}\nTitle: ${title}\n${result.text ?? ""}`
135
- }],
136
- details: {
137
- ok: true,
138
- mode: "inspect",
139
- url,
140
- title
141
- }
142
- };
143
- }
144
- if (mode === "close") {
145
- const taskId = deps.getTaskId();
146
- await deps.getManager().ensureConnected();
147
- await deps.getManager().closePage(taskId);
148
- deps.notifyBrowserPageClosed?.(taskId);
149
- return {
150
- content: [{
151
- type: "text",
152
- text: "Browser page closed."
153
- }],
154
- details: {
155
- ok: true,
156
- mode: "close"
157
- }
158
- };
159
- }
160
- if (mode === "command") {
161
- if (!command) return {
162
- content: [{
163
- type: "text",
164
- text: "Missing `command` parameter for command mode."
165
- }],
166
- details: {
167
- ok: false,
168
- mode: "command"
169
- }
170
- };
171
- const ctx = buildContext(await deps.getPageForTask(), signal);
172
- const args = cmdArgs ?? {};
173
- return formatResult(await registry.execute(command, ctx, args));
174
- }
175
- return {
176
- content: [{
177
- type: "text",
178
- text: `Unknown mode: ${mode}`
179
- }],
180
- details: { ok: false }
181
- };
41
+ content: contentWithVisual([`[${result.error.code}] ${result.error.message}`, observation ? formatBrowserObservation(observation) : ""].filter(Boolean).join("\n\n"), observation),
42
+ details: {
43
+ ok: false,
44
+ kind: result.error.code === "APPROVAL_REQUIRED" ? "browser_approval_required" : "browser_error",
45
+ error: stripVisual(result.error)
182
46
  }
183
47
  };
184
48
  }
49
+ function contentWithVisual(text, observation) {
50
+ const content = [{
51
+ type: "text",
52
+ text
53
+ }];
54
+ if (observation?.visual) content.push({
55
+ type: "image",
56
+ data: observation.visual.data,
57
+ mimeType: observation.visual.mimeType
58
+ });
59
+ return content;
60
+ }
61
+ function formatTabs(tabs) {
62
+ if (tabs.length === 0) return "No browser tabs are open.";
63
+ return tabs.map((tab) => `- ${tab.id}${tab.active ? " (active)" : ""}: ${tab.title}\n ${tab.url}`).join("\n");
64
+ }
65
+ function stripVisual(value) {
66
+ return JSON.parse(JSON.stringify(value, (key, child) => key === "visual" ? void 0 : child));
67
+ }
185
68
  //#endregion
186
69
  export { createBrowserUseTool };
@@ -1,16 +1,203 @@
1
- /**
2
- * BrowserUseSchema — Typebox schema for the unified `browser_use` AgentTool.
3
- */
4
- export declare const BrowserUseOptionsSchema: import("@sinclair/typebox").TObject<{
5
- timeout: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
6
- headless: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
7
- }>;
8
- export declare const BrowserUseSchema: import("@sinclair/typebox").TObject<{
9
- mode: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"command">, import("@sinclair/typebox").TLiteral<"inspect">, import("@sinclair/typebox").TLiteral<"close">]>;
10
- command: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
- args: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
12
- options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
13
- timeout: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
14
- headless: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
15
- }>>;
16
- }>;
1
+ import { type Static } from '@sinclair/typebox';
2
+ export declare const BrowserUseSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
3
+ action: import("@sinclair/typebox").TLiteral<"observe">;
4
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
5
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
+ } & {
7
+ visual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"never">, import("@sinclair/typebox").TLiteral<"auto">, import("@sinclair/typebox").TLiteral<"always">]>>;
8
+ }>, import("@sinclair/typebox").TObject<{
9
+ action: import("@sinclair/typebox").TLiteral<"navigate">;
10
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
12
+ } & {
13
+ url: import("@sinclair/typebox").TString;
14
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
15
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
16
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
17
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
18
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
19
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
20
+ }>>;
21
+ }>, import("@sinclair/typebox").TObject<{
22
+ action: import("@sinclair/typebox").TLiteral<"click">;
23
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
24
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
25
+ } & {
26
+ revision: import("@sinclair/typebox").TNumber;
27
+ ref: import("@sinclair/typebox").TString;
28
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
29
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
30
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
31
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
32
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
33
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
34
+ }>>;
35
+ }>, import("@sinclair/typebox").TObject<{
36
+ action: import("@sinclair/typebox").TLiteral<"fill">;
37
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
38
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
39
+ } & {
40
+ revision: import("@sinclair/typebox").TNumber;
41
+ ref: import("@sinclair/typebox").TString;
42
+ value: import("@sinclair/typebox").TString;
43
+ submit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
44
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
45
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
46
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
47
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
48
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
49
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
50
+ }>>;
51
+ }>, import("@sinclair/typebox").TObject<{
52
+ action: import("@sinclair/typebox").TLiteral<"select">;
53
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
54
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
55
+ } & {
56
+ revision: import("@sinclair/typebox").TNumber;
57
+ ref: import("@sinclair/typebox").TString;
58
+ value: import("@sinclair/typebox").TString;
59
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
60
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
61
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
62
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
63
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
64
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
65
+ }>>;
66
+ }>, import("@sinclair/typebox").TObject<{
67
+ action: import("@sinclair/typebox").TLiteral<"press">;
68
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
69
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
70
+ } & {
71
+ revision: import("@sinclair/typebox").TNumber;
72
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
73
+ key: import("@sinclair/typebox").TString;
74
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
75
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
76
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
77
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
78
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
79
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
80
+ }>>;
81
+ }>, import("@sinclair/typebox").TObject<{
82
+ action: import("@sinclair/typebox").TLiteral<"scroll">;
83
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
84
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
85
+ } & {
86
+ revision: import("@sinclair/typebox").TNumber;
87
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
88
+ deltaY: import("@sinclair/typebox").TNumber;
89
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
90
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
91
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
92
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
93
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
94
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
95
+ }>>;
96
+ }>, import("@sinclair/typebox").TObject<{
97
+ action: import("@sinclair/typebox").TLiteral<"wait">;
98
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
99
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
100
+ } & {
101
+ revision: import("@sinclair/typebox").TNumber;
102
+ condition: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"page_idle">, import("@sinclair/typebox").TLiteral<"text">, import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>;
103
+ value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
104
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
105
+ timeoutMs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
106
+ }>, import("@sinclair/typebox").TObject<{
107
+ action: import("@sinclair/typebox").TLiteral<"upload">;
108
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
109
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
110
+ } & {
111
+ revision: import("@sinclair/typebox").TNumber;
112
+ ref: import("@sinclair/typebox").TString;
113
+ paths: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
114
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
115
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
116
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
117
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
118
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
119
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
120
+ }>>;
121
+ }>, import("@sinclair/typebox").TObject<{
122
+ action: import("@sinclair/typebox").TLiteral<"tabs">;
123
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
124
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
125
+ } & {
126
+ operation: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"list">, import("@sinclair/typebox").TLiteral<"create">, import("@sinclair/typebox").TLiteral<"activate">, import("@sinclair/typebox").TLiteral<"close">]>;
127
+ tabId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
128
+ url: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
129
+ }>, import("@sinclair/typebox").TObject<{
130
+ action: import("@sinclair/typebox").TLiteral<"sequence">;
131
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
132
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
133
+ } & {
134
+ revision: import("@sinclair/typebox").TNumber;
135
+ steps: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
136
+ action: import("@sinclair/typebox").TLiteral<"click">;
137
+ ref: import("@sinclair/typebox").TString;
138
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
139
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
140
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
141
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
142
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
143
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
144
+ }>>;
145
+ }>, import("@sinclair/typebox").TObject<{
146
+ action: import("@sinclair/typebox").TLiteral<"fill">;
147
+ ref: import("@sinclair/typebox").TString;
148
+ value: import("@sinclair/typebox").TString;
149
+ submit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
150
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
151
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
152
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
153
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
154
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
155
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
156
+ }>>;
157
+ }>, import("@sinclair/typebox").TObject<{
158
+ action: import("@sinclair/typebox").TLiteral<"select">;
159
+ ref: import("@sinclair/typebox").TString;
160
+ value: import("@sinclair/typebox").TString;
161
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
162
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
163
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
164
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
165
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
166
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
167
+ }>>;
168
+ }>, import("@sinclair/typebox").TObject<{
169
+ action: import("@sinclair/typebox").TLiteral<"press">;
170
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
171
+ key: import("@sinclair/typebox").TString;
172
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
173
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
174
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
175
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
176
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
177
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
178
+ }>>;
179
+ }>, import("@sinclair/typebox").TObject<{
180
+ action: import("@sinclair/typebox").TLiteral<"scroll">;
181
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
182
+ deltaY: import("@sinclair/typebox").TNumber;
183
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
184
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
185
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
186
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
187
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
188
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
189
+ }>>;
190
+ }>]>>;
191
+ expect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
192
+ urlIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
193
+ titleIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
194
+ textIncludes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
195
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
196
+ state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"visible">, import("@sinclair/typebox").TLiteral<"hidden">]>>;
197
+ }>>;
198
+ }>, import("@sinclair/typebox").TObject<{
199
+ action: import("@sinclair/typebox").TLiteral<"close">;
200
+ sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
201
+ approvalId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
202
+ }>]>;
203
+ export type BrowserUseInput = Static<typeof BrowserUseSchema>;