@xopcai/xopc 0.0.251 → 0.0.253

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 (376) 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/src/inbound-processor.js +2 -2
  6. package/dist/extensions/telegram/src/plugin.js +3 -2
  7. package/dist/extensions/telegram/xopc.extension.json +1 -1
  8. package/dist/gateway/static/root/assets/{activity-store-DfBjTSo9.js → activity-store-CeS1bgXP.js} +1 -1
  9. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Bo_dmLv8.js → agent-avatar-dicebear-BdF3HhCW.js} +1 -1
  10. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-Bs34Kp0K.js +1 -0
  11. package/dist/gateway/static/root/assets/{agents-yuUn8n-f.js → agents-DARlgjTm.js} +1 -1
  12. package/dist/gateway/static/root/assets/{api-zxpcJfgj.js → api-zMPeC0yU.js} +1 -1
  13. package/dist/gateway/static/root/assets/{app-management-settings-panel-Cz56nrVF.js → app-management-settings-panel-BaAFln8W.js} +1 -1
  14. package/dist/gateway/static/root/assets/{appearance-settings-DxSws5U4.js → appearance-settings-CXvsoBlw.js} +1 -1
  15. package/dist/gateway/static/root/assets/apps-page-BhgvfBJT.js +1 -0
  16. package/dist/gateway/static/root/assets/{archive-plugin-7k15-hqo.js → archive-plugin-C0o_mVQI.js} +1 -1
  17. package/dist/gateway/static/root/assets/{attachment-load-B-SFpjd9.js → attachment-load-B5Ry3tGL.js} +1 -1
  18. package/dist/gateway/static/root/assets/{automations-page-Qy36j19q.js → automations-page-DY5QAEQd.js} +1 -1
  19. package/dist/gateway/static/root/assets/automations-workspace-BzX4lILP.js +6 -0
  20. package/dist/gateway/static/root/assets/{binary-plugins-CPOZQt8F.js → binary-plugins-BydpEgBA.js} +1 -1
  21. package/dist/gateway/static/root/assets/{block-editor-DhvVlIp9.js → block-editor-D0CpUOMo.js} +3 -3
  22. package/dist/gateway/static/root/assets/browser-automation-inputs-DzbTsGI6.js +1 -0
  23. package/dist/gateway/static/root/assets/browser-automations-page-D7fZYjni.js +3 -0
  24. package/dist/gateway/static/root/assets/browser-settings-page-BBdMqxl0.js +3 -0
  25. package/dist/gateway/static/root/assets/capabilities-settings-panel-D_WfftDW.js +7 -0
  26. package/dist/gateway/static/root/assets/channels-settings-bdRLT9KA.js +1 -0
  27. package/dist/gateway/static/root/assets/{channels-status-swr-CX-yWwLD.js → channels-status-swr-BGGRTkn6.js} +1 -1
  28. package/dist/gateway/static/root/assets/{chat-terminal-dock-1PJoxRuV.js → chat-terminal-dock-_CP4nvlg.js} +2 -2
  29. package/dist/gateway/static/root/assets/connectors-page-CPDjU5wU.js +2 -0
  30. package/dist/gateway/static/root/assets/{cron-expression-CBCc6zFA.js → cron-expression-g2U8Rllf.js} +1 -1
  31. package/dist/gateway/static/root/assets/{date-picker-u8K5Kt_N.js → date-picker-SmVlhtj_.js} +1 -1
  32. package/dist/gateway/static/root/assets/{dependency-picker-y_i_cnpz.js → dependency-picker-D-0gcbbM.js} +1 -1
  33. package/dist/gateway/static/root/assets/{desktop-pet-DyL0JxLm.js → desktop-pet-Cl3JRIu6.js} +1 -1
  34. package/dist/gateway/static/root/assets/{desktop-pet-settings-d2d_IsyP.js → desktop-pet-settings-D7kvWQ9H.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-debug-page-DqIBKJwl.js → extension-debug-page-DtP2tJHY.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-page-DUW1xxj2.js → extension-page-CphZDdoT.js} +1 -1
  37. package/dist/gateway/static/root/assets/{extension-settings-page-BHY9qaNw.js → extension-settings-page-CsxVLV4-.js} +1 -1
  38. package/dist/gateway/static/root/assets/{gateway-config-swr-CMNbl0FZ.js → gateway-config-swr-BW3Bx-aV.js} +1 -1
  39. package/dist/gateway/static/root/assets/gateway-settings-DxBZ05dX.js +1 -0
  40. package/dist/gateway/static/root/assets/{gateway-startup-retry-CR7Xg8As.js → gateway-startup-retry-DAq74TZe.js} +1 -1
  41. package/dist/gateway/static/root/assets/{heartbeat-settings-7CD9iPR7.js → heartbeat-settings-DWcKsIoZ.js} +1 -1
  42. package/dist/gateway/static/root/assets/home-page-BdvLZKQZ.js +1 -0
  43. package/dist/gateway/static/root/assets/{image-generation-api-C5mn73ca.js → image-generation-api-MPuaXDRs.js} +1 -1
  44. package/dist/gateway/static/root/assets/index-C7RDs6S-.js +74 -0
  45. package/dist/gateway/static/root/assets/index-Cu8xqZQ9.css +2 -0
  46. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BtlqMleF.js → keyboard-shortcuts-settings-CfhaTqgE.js} +1 -1
  47. package/dist/gateway/static/root/assets/{local-app-workbench-page-BjxfkjxE.js → local-app-workbench-page-CR6asX7L.js} +2 -2
  48. package/dist/gateway/static/root/assets/{local-apps-page-B7xqQe2s.js → local-apps-page-g01W3kEK.js} +1 -1
  49. package/dist/gateway/static/root/assets/{locale-store-CF4erhjB.js → locale-store-BkeaPZpn.js} +1 -1
  50. package/dist/gateway/static/root/assets/{logs-page-kACaPZKL.js → logs-page-ZP4QTWoC.js} +2 -2
  51. package/dist/gateway/static/root/assets/{management-settings-A432siER.js → management-settings-DeGxJF_Z.js} +1 -1
  52. package/dist/gateway/static/root/assets/markdown-view-Ca7BRBLL.js +201 -0
  53. package/dist/gateway/static/root/assets/{media-plugins-CpvYiauZ.js → media-plugins-FmOhmzlD.js} +1 -1
  54. package/dist/gateway/static/root/assets/messages-C72stReU.js +3 -0
  55. package/dist/gateway/static/root/assets/{mobile-pairing-wizard-DyjVGngO.js → mobile-pairing-wizard-BXNbn05L.js} +1 -1
  56. package/dist/gateway/static/root/assets/note-detail-panel-EeVeF4II.js +5 -0
  57. package/dist/gateway/static/root/assets/notes-page-D7bMff96.js +8 -0
  58. package/dist/gateway/static/root/assets/{page-tabs-B3FKzjR6.js → page-tabs-pyukZ1PJ.js} +1 -1
  59. package/dist/gateway/static/root/assets/{preview-open-alternatives-DnjrwAHD.js → preview-open-alternatives-slFHoMUe.js} +1 -1
  60. package/dist/gateway/static/root/assets/{product-open-page-COcr_NUJ.js → product-open-page-CXa3FNNk.js} +1 -1
  61. package/dist/gateway/static/root/assets/project-detail-page-BDF88VdN.js +1 -0
  62. package/dist/gateway/static/root/assets/projects-page-DeTD6pu1.js +1 -0
  63. package/dist/gateway/static/root/assets/{registry-api-BsRBlji7.js → registry-api-CviQoUBf.js} +1 -1
  64. package/dist/gateway/static/root/assets/remote-access-hub-CxKrdQ6a.js +1 -0
  65. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-LO4wZ_dO.js → runtime-tools-settings-panel-O9D9o7-O.js} +2 -2
  66. package/dist/gateway/static/root/assets/{schema-form-crcj4-Pm.js → schema-form-8FesicnL.js} +1 -1
  67. package/dist/gateway/static/root/assets/sessions-page-DUFJN-2t.js +1 -0
  68. package/dist/gateway/static/root/assets/settings-advanced-gate-CcSYDjaH.js +1 -0
  69. package/dist/gateway/static/root/assets/{settings-form-section-Bl4MvTmq.js → settings-form-section-CBic9TFH.js} +1 -1
  70. package/dist/gateway/static/root/assets/{settings-page-DplrjZ6x.js → settings-page-Xz66_Mjg.js} +1 -1
  71. package/dist/gateway/static/root/assets/setup-status-panel-C6DuwrP5.js +1 -0
  72. package/dist/gateway/static/root/assets/{share-preview-page-CJP1kURj.js → share-preview-page--JpjwB58.js} +1 -1
  73. package/dist/gateway/static/root/assets/{shares-settings-CemgzEi4.js → shares-settings-CovcdHSC.js} +1 -1
  74. package/dist/gateway/static/root/assets/skill-reload-api-CrHagTsE.js +1 -0
  75. package/dist/gateway/static/root/assets/{skills-page-DsjcKg9Q.js → skills-page-fVKExKv5.js} +1 -1
  76. package/dist/gateway/static/root/assets/{skills-page.utils-D6gWBbvy.js → skills-page.utils-Yv9u3uJp.js} +1 -1
  77. package/dist/gateway/static/root/assets/{system-settings-panel-_eCXfqCo.js → system-settings-panel-CCWjVdc2.js} +1 -1
  78. package/dist/gateway/static/root/assets/{task-detail-page-D0Z_K5JT.js → task-detail-page-I8hueJnG.js} +1 -1
  79. package/dist/gateway/static/root/assets/{theme-store-BOgkc_9D.js → theme-store-BtkaVpMm.js} +1 -1
  80. package/dist/gateway/static/root/assets/{tunnel-api-W5mktxl1.js → tunnel-api-C__W9BaN.js} +1 -1
  81. package/dist/gateway/static/root/assets/{use-autosave-Na2DYzT3.js → use-autosave-Dow9RRcq.js} +1 -1
  82. package/dist/gateway/static/root/assets/user-model-page-CU6nxmoM.js +2 -0
  83. package/dist/gateway/static/root/assets/{voice-api-key-field-OXweUxS_.js → voice-api-key-field-CvF3lEyx.js} +1 -1
  84. package/dist/gateway/static/root/assets/{voice-config-api-C-ryeIxj.js → voice-config-api-BEUVAyM6.js} +1 -1
  85. package/dist/gateway/static/root/assets/{work-discovery-overlay-BqOsO47I.js → work-discovery-overlay-B9PDfReq.js} +1 -1
  86. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-B9S_lfT1.js → workflow-run-setup-panel-kWGFkhjz.js} +2 -2
  87. package/dist/gateway/static/root/assets/workflows-page-B4Is5E42.js +5 -0
  88. package/dist/gateway/static/root/index.html +10 -10
  89. package/dist/package.js +1 -1
  90. package/dist/packages/gateway-contract/src/new-session.js +9 -0
  91. package/dist/packages/realtime-protocol/src/voice.js +6 -1
  92. package/dist/src/agent/agent-manager.d.ts +2 -1
  93. package/dist/src/agent/agent-manager.js +26 -8
  94. package/dist/src/agent/background-review/run-background-review.js +1 -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/embedded/execution-context.d.ts +2 -1
  99. package/dist/src/agent/embedded/execution-context.js +10 -4
  100. package/dist/src/agent/embedded/index.d.ts +1 -1
  101. package/dist/src/agent/embedded/index.js +2 -2
  102. package/dist/src/agent/embedded/model-runtime.js +1 -1
  103. package/dist/src/agent/embedded/run-for-session.js +5 -4
  104. package/dist/src/agent/embedded/run-turn.js +22 -3
  105. package/dist/src/agent/embedded/types.d.ts +1 -1
  106. package/dist/src/agent/external-tools/composio-provider.d.ts +1 -0
  107. package/dist/src/agent/external-tools/composio-provider.js +64 -34
  108. package/dist/src/agent/external-tools/search-error.js +5 -3
  109. package/dist/src/agent/image/tool-model-config.js +1 -1
  110. package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +1 -1
  111. package/dist/src/agent/service/direct-turn-helpers.js +6 -3
  112. package/dist/src/agent/service/process-direct-streaming.js +6 -3
  113. package/dist/src/agent/service.d.ts +2 -0
  114. package/dist/src/agent/service.js +25 -10
  115. package/dist/src/agent/service.types.d.ts +2 -1
  116. package/dist/src/agent/session/session-inspector.js +1 -1
  117. package/dist/src/agent/skills/hub-lock.js +1 -1
  118. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +4 -0
  119. package/dist/src/agent/tasks/task-judge-service.js +3 -3
  120. package/dist/src/agent/tool-manuals/browser.d.ts +1 -1
  121. package/dist/src/agent/tool-manuals/browser.js +15 -226
  122. package/dist/src/agent/tools/browser/tool/browser-use-tool.d.ts +4 -21
  123. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +48 -165
  124. package/dist/src/agent/tools/browser/tool/schemas.d.ts +203 -16
  125. package/dist/src/agent/tools/browser/tool/schemas.js +146 -16
  126. package/dist/src/agent/tools/browser-automation-tool.d.ts +121 -0
  127. package/dist/src/agent/tools/browser-automation-tool.js +197 -0
  128. package/dist/src/agent/tools/clarify-tool.d.ts +17 -3
  129. package/dist/src/agent/tools/clarify-tool.js +27 -32
  130. package/dist/src/agent/tools/cli-clarify.js +23 -8
  131. package/dist/src/agent/tools/factory.d.ts +6 -9
  132. package/dist/src/agent/tools/factory.js +42 -59
  133. package/dist/src/agent/tools/index.d.ts +2 -2
  134. package/dist/src/agent/tools/index.js +3 -3
  135. package/dist/src/agent/tools/review-workspace.js +2 -2
  136. package/dist/src/ai-assist/text-assist.js +1 -1
  137. package/dist/src/auth/credentials.js +2 -2
  138. package/dist/src/auth/oauth/xopc-cloud.js +3 -1
  139. package/dist/src/auth/profiles/store.js +1 -1
  140. package/dist/src/auth/sync-provider-auth.js +2 -2
  141. package/dist/src/automations/domain/defaults.js +1 -1
  142. package/dist/src/automations/domain/types.d.ts +5 -5
  143. package/dist/src/automations/domain/validation.d.ts +16 -16
  144. package/dist/src/automations/domain/validation.js +3 -3
  145. package/dist/src/automations/draft/automation-draft-validator.d.ts +4 -4
  146. package/dist/src/automations/draft/automation-draft-validator.js +1 -1
  147. package/dist/src/automations/service/action-executor.d.ts +1 -1
  148. package/dist/src/automations/service/action-executor.js +7 -7
  149. package/dist/src/browser/{recipes → automations}/index.d.ts +1 -0
  150. package/dist/src/browser/automations/index.js +4 -0
  151. package/dist/src/browser/automations/repository.d.ts +13 -0
  152. package/dist/src/browser/automations/repository.js +60 -0
  153. package/dist/src/browser/automations/runner.d.ts +17 -0
  154. package/dist/src/browser/automations/runner.js +173 -0
  155. package/dist/src/browser/automations/runtime-service.d.ts +6 -0
  156. package/dist/src/browser/automations/runtime-service.js +37 -0
  157. package/dist/src/browser/automations/schema.d.ts +144 -0
  158. package/dist/src/browser/automations/schema.js +135 -0
  159. package/dist/src/browser/automations/service.d.ts +146 -0
  160. package/dist/src/browser/automations/service.js +168 -0
  161. package/dist/src/browser/automations/types.d.ts +90 -0
  162. package/dist/src/browser/cache-dir-policy.d.ts +1 -1
  163. package/dist/src/browser/cache-dir-policy.js +1 -4
  164. package/dist/src/browser/drivers/browser-driver.d.ts +17 -0
  165. package/dist/src/browser/drivers/create-driver.d.ts +3 -0
  166. package/dist/src/browser/drivers/create-driver.js +84 -0
  167. package/dist/src/browser/drivers/extension-driver.d.ts +20 -0
  168. package/dist/src/browser/drivers/extension-driver.js +47 -0
  169. package/dist/src/browser/drivers/playwright-driver.d.ts +38 -0
  170. package/dist/src/browser/drivers/playwright-driver.js +406 -0
  171. package/dist/src/browser/index.d.ts +10 -15
  172. package/dist/src/browser/index.js +10 -15
  173. package/dist/src/browser/install-lock.d.ts +1 -2
  174. package/dist/src/browser/install-lock.js +3 -9
  175. package/dist/src/browser/install-progress.d.ts +1 -1
  176. package/dist/src/browser/observation/format.d.ts +2 -0
  177. package/dist/src/browser/observation/format.js +26 -0
  178. package/dist/src/browser/policy/approval-store.d.ts +17 -0
  179. package/dist/src/browser/policy/approval-store.js +62 -0
  180. package/dist/src/browser/policy/browser-policy.d.ts +3 -0
  181. package/dist/src/browser/policy/browser-policy.js +27 -0
  182. package/dist/src/browser/providers/browser-ext-install.d.ts +1 -1
  183. package/dist/src/browser/providers/browser-ext-install.js +4 -6
  184. package/dist/src/browser/providers/browser-use.js +1 -1
  185. package/dist/src/browser/providers/browserbase.js +1 -1
  186. package/dist/src/browser/providers/extension-ws-acquire.d.ts +1 -4
  187. package/dist/src/browser/providers/extension-ws-acquire.js +1 -13
  188. package/dist/src/browser/providers/extension.d.ts +3 -22
  189. package/dist/src/browser/providers/extension.js +7 -15
  190. package/dist/src/browser/providers/index.d.ts +2 -2
  191. package/dist/src/browser/providers/index.js +3 -3
  192. package/dist/src/browser/providers/types.d.ts +0 -94
  193. package/dist/src/browser/readiness.d.ts +4 -22
  194. package/dist/src/browser/readiness.js +55 -118
  195. package/dist/src/browser/runtime/browser-runtime.d.ts +30 -0
  196. package/dist/src/browser/runtime/browser-runtime.js +362 -0
  197. package/dist/src/browser/url-policy.d.ts +3 -3
  198. package/dist/src/browser/url-policy.js +7 -6
  199. package/dist/src/browser/verification/expectation.d.ts +2 -0
  200. package/dist/src/browser/verification/expectation.js +17 -0
  201. package/dist/src/cli/command-loaders.js +1 -0
  202. package/dist/src/cli/command-manifest.js +5 -1
  203. package/dist/src/cli/commands/browser-cli-helpers.d.ts +0 -6
  204. package/dist/src/cli/commands/browser-cli-helpers.js +11 -144
  205. package/dist/src/cli/commands/browser.d.ts +0 -5
  206. package/dist/src/cli/commands/browser.js +11 -152
  207. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  208. package/dist/src/cli/commands/doctor/checks/node-version.js +25 -9
  209. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  210. package/dist/src/cli/commands/models.js +1 -1
  211. package/dist/src/cli/commands/platform.d.ts +1 -0
  212. package/dist/src/cli/commands/platform.js +111 -0
  213. package/dist/src/config/index.js +4 -4
  214. package/dist/src/config/loader.js +10 -4
  215. package/dist/src/config/models-json.js +1 -1
  216. package/dist/src/config/schema.d.ts +131 -84
  217. package/dist/src/config/schema.js +112 -59
  218. package/dist/src/connectors/composio-sessions.js +1 -3
  219. package/dist/src/extensions/lockfile.js +1 -1
  220. package/dist/src/extensions/marketplace.js +4 -0
  221. package/dist/src/gateway/agents-admin.js +1 -1
  222. package/dist/src/gateway/chat-stream/mapper.js +5 -1
  223. package/dist/src/gateway/chat-stream/protocol.d.ts +5 -1
  224. package/dist/src/gateway/clarify-runtime.d.ts +7 -5
  225. package/dist/src/gateway/clarify-runtime.js +8 -11
  226. package/dist/src/gateway/ephemeral-clarification-waiter.d.ts +17 -0
  227. package/dist/src/gateway/ephemeral-clarification-waiter.js +46 -0
  228. package/dist/src/gateway/file-path-classifier.js +1 -1
  229. package/dist/src/gateway/heartbeat/service.js +1 -1
  230. package/dist/src/gateway/hono/lib/config-payload.d.ts +12 -26
  231. package/dist/src/gateway/hono/lib/config-payload.js +11 -40
  232. package/dist/src/gateway/hono/routes/agent-stream.js +44 -18
  233. package/dist/src/gateway/hono/routes/browser-automations.d.ts +3 -0
  234. package/dist/src/gateway/hono/routes/browser-automations.js +77 -0
  235. package/dist/src/gateway/hono/routes/browser-install.js +0 -32
  236. package/dist/src/gateway/hono/routes/browser.d.ts +0 -17
  237. package/dist/src/gateway/hono/routes/browser.js +46 -568
  238. package/dist/src/gateway/hono/routes/config-patch/misc.js +8 -1
  239. package/dist/src/gateway/hono/routes/config.js +0 -11
  240. package/dist/src/gateway/hono/routes/lazy-bundles.js +5 -5
  241. package/dist/src/gateway/hono/routes/models.js +1 -1
  242. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +10 -2
  243. package/dist/src/gateway/hono/routes/side-chats.js +24 -4
  244. package/dist/src/gateway/security/gateway-scopes.js +1 -1
  245. package/dist/src/gateway/service/agent-runner.d.ts +25 -36
  246. package/dist/src/gateway/service/agent-runner.js +103 -32
  247. package/dist/src/gateway/service/config-coordinator.js +1 -1
  248. package/dist/src/gateway/service/run-gateway-agent.js +5 -2
  249. package/dist/src/gateway/service/session-input-coordinator.js +4 -1
  250. package/dist/src/gateway/service/sessions-api.js +1 -1
  251. package/dist/src/gateway/service.d.ts +8 -8
  252. package/dist/src/gateway/service.js +50 -37
  253. package/dist/src/gateway/side-chat/manager.d.ts +2 -1
  254. package/dist/src/gateway/side-chat/manager.js +5 -4
  255. package/dist/src/gateway/side-chat/run-service.d.ts +5 -1
  256. package/dist/src/gateway/side-chat/run-service.js +24 -23
  257. package/dist/src/gateway/side-chat/types.d.ts +3 -1
  258. package/dist/src/heartbeat/index.js +1 -1
  259. package/dist/src/platform/client.d.ts +121 -0
  260. package/dist/src/platform/client.js +108 -0
  261. package/dist/src/platform/contracts.d.ts +194 -0
  262. package/dist/src/platform/contracts.js +150 -0
  263. package/dist/src/platform/index.d.ts +4 -0
  264. package/dist/src/platform/index.js +9 -0
  265. package/dist/src/platform/resolution.d.ts +4 -0
  266. package/dist/src/platform/resolution.js +16 -0
  267. package/dist/src/platform/worker.d.ts +6 -0
  268. package/dist/src/platform/worker.js +75 -0
  269. package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
  270. package/dist/src/providers/index.js +2 -2
  271. package/dist/src/providers/model-registry.js +1 -1
  272. package/dist/src/providers/register-runtime-providers.js +1 -1
  273. package/dist/src/providers/xopc-cloud-config.js +3 -1
  274. package/dist/src/session/session-context-for-llm.js +41 -1
  275. package/dist/src/share/hosted-session-share.js +3 -1
  276. package/dist/src/share/share-thumbnail.js +1 -1
  277. package/dist/src/storage/sqlite/clarification-wait-repository.d.ts +41 -0
  278. package/dist/src/storage/sqlite/clarification-wait-repository.js +418 -0
  279. package/dist/src/storage/sqlite/index.d.ts +2 -1
  280. package/dist/src/storage/sqlite/index.js +2 -1
  281. package/dist/src/storage/sqlite/migrations/153_browser_control_v2.sql +45 -0
  282. package/dist/src/storage/sqlite/migrations/154_session_clarification_waits.sql +60 -0
  283. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  284. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  285. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  286. package/dist/src/storage/sqlite/schema.js +1 -1
  287. package/dist/src/storage/sqlite/schema.sql +16 -20
  288. package/dist/src/storage/sqlite/session-input-repository.d.ts +11 -6
  289. package/dist/src/tasks/home-query-service.js +1 -1
  290. package/dist/src/tui/tui-startup-resources.js +1 -1
  291. package/dist/src/tui/tui.js +1 -1
  292. package/dist/src/tunnel/env.js +3 -1
  293. package/dist/src/voice/realtime/agentEngine.js +7 -2
  294. package/dist/src/voice/realtime/runtime.types.d.ts +5 -0
  295. package/dist/src/work-discovery/service.js +1 -1
  296. package/dist/src/workflows/service/workflow-run-service.js +1 -1
  297. package/package.json +7 -7
  298. package/skills/creative/hatch-pet/SKILL.md +1 -1
  299. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-kILWelNb.js +0 -1
  300. package/dist/gateway/static/root/assets/apps-page-BnizTdgs.js +0 -1
  301. package/dist/gateway/static/root/assets/automations-workspace-CZRKqSqY.js +0 -6
  302. package/dist/gateway/static/root/assets/browser-settings-page-pN5LbChY.js +0 -8
  303. package/dist/gateway/static/root/assets/browser-workflow-inputs-BX1-uM9L.js +0 -1
  304. package/dist/gateway/static/root/assets/browser-workflows-page-C65MI57t.js +0 -3
  305. package/dist/gateway/static/root/assets/capabilities-settings-panel-CJw2e16J.js +0 -7
  306. package/dist/gateway/static/root/assets/channels-settings-CRgjb4Ck.js +0 -1
  307. package/dist/gateway/static/root/assets/connectors-page-Dcpdy06y.js +0 -2
  308. package/dist/gateway/static/root/assets/gateway-config-api-e3BRcgDx.js +0 -1
  309. package/dist/gateway/static/root/assets/gateway-settings-Cheo0Rkc.js +0 -1
  310. package/dist/gateway/static/root/assets/home-page-DVrTRqNc.js +0 -1
  311. package/dist/gateway/static/root/assets/index-B7CX4Qob.css +0 -2
  312. package/dist/gateway/static/root/assets/index-BHrpyJ4t.js +0 -72
  313. package/dist/gateway/static/root/assets/markdown-view-CQvzsE24.js +0 -201
  314. package/dist/gateway/static/root/assets/messages-Cf5hpZE6.js +0 -3
  315. package/dist/gateway/static/root/assets/note-detail-panel-CUd8O4K7.js +0 -5
  316. package/dist/gateway/static/root/assets/notes-page-BLQwd39W.js +0 -8
  317. package/dist/gateway/static/root/assets/project-detail-page-NttW338u.js +0 -1
  318. package/dist/gateway/static/root/assets/projects-page-BzH8pjEz.js +0 -1
  319. package/dist/gateway/static/root/assets/remote-access-hub-BxpjSDnL.js +0 -1
  320. package/dist/gateway/static/root/assets/sessions-page-BLMaibOb.js +0 -1
  321. package/dist/gateway/static/root/assets/settings-advanced-gate-BRvvKhoH.js +0 -1
  322. package/dist/gateway/static/root/assets/setup-status-panel-DTOsxQC1.js +0 -1
  323. package/dist/gateway/static/root/assets/skill-reload-api-BWYanBlQ.js +0 -1
  324. package/dist/gateway/static/root/assets/user-model-page-B_-SNat-.js +0 -2
  325. package/dist/gateway/static/root/assets/workflows-page-CNOT2Coo.js +0 -5
  326. package/dist/src/agent/tools/browser-recipe-tool.d.ts +0 -12
  327. package/dist/src/agent/tools/browser-recipe-tool.js +0 -113
  328. package/dist/src/browser/actions/extension-registry-bridge.d.ts +0 -5
  329. package/dist/src/browser/actions/extension-registry-bridge.js +0 -312
  330. package/dist/src/browser/actions/registry.d.ts +0 -5
  331. package/dist/src/browser/actions/registry.js +0 -741
  332. package/dist/src/browser/actions/types.d.ts +0 -65
  333. package/dist/src/browser/backend-from-config.d.ts +0 -22
  334. package/dist/src/browser/backend-from-config.js +0 -99
  335. package/dist/src/browser/browser-command-timeout.d.ts +0 -2
  336. package/dist/src/browser/browser-command-timeout.js +0 -11
  337. package/dist/src/browser/cdp-local-launcher.d.ts +0 -35
  338. package/dist/src/browser/cdp-local-launcher.js +0 -154
  339. package/dist/src/browser/cdp-supervisor.d.ts +0 -58
  340. package/dist/src/browser/cdp-supervisor.js +0 -133
  341. package/dist/src/browser/humanize.d.ts +0 -80
  342. package/dist/src/browser/humanize.js +0 -363
  343. package/dist/src/browser/manager.d.ts +0 -50
  344. package/dist/src/browser/manager.js +0 -251
  345. package/dist/src/browser/pipeline/output.d.ts +0 -35
  346. package/dist/src/browser/pipeline/output.js +0 -74
  347. package/dist/src/browser/pipeline/runner.d.ts +0 -27
  348. package/dist/src/browser/pipeline/runner.js +0 -453
  349. package/dist/src/browser/pipeline/schema.d.ts +0 -42
  350. package/dist/src/browser/pipeline/schema.js +0 -116
  351. package/dist/src/browser/pipeline/template.d.ts +0 -30
  352. package/dist/src/browser/pipeline/template.js +0 -112
  353. package/dist/src/browser/providers/cloakbrowser.d.ts +0 -83
  354. package/dist/src/browser/providers/cloakbrowser.js +0 -612
  355. package/dist/src/browser/recipes/index.js +0 -3
  356. package/dist/src/browser/recipes/repository.d.ts +0 -13
  357. package/dist/src/browser/recipes/repository.js +0 -81
  358. package/dist/src/browser/recipes/runtime-service.d.ts +0 -6
  359. package/dist/src/browser/recipes/runtime-service.js +0 -30
  360. package/dist/src/browser/recipes/service.d.ts +0 -36
  361. package/dist/src/browser/recipes/service.js +0 -186
  362. package/dist/src/browser/recipes/types.d.ts +0 -36
  363. package/dist/src/browser/schemas.d.ts +0 -53
  364. package/dist/src/browser/schemas.js +0 -68
  365. package/dist/src/browser/session-lifecycle.d.ts +0 -40
  366. package/dist/src/browser/session-lifecycle.js +0 -136
  367. package/dist/src/browser/snapshot-helpers.d.ts +0 -24
  368. package/dist/src/browser/snapshot-helpers.js +0 -70
  369. package/dist/src/browser/stealth.d.ts +0 -46
  370. package/dist/src/browser/stealth.js +0 -163
  371. package/dist/src/gateway/clarify-bridge.d.ts +0 -46
  372. package/dist/src/gateway/clarify-bridge.js +0 -111
  373. package/dist/src/gateway/hono/routes/browser-workflows.d.ts +0 -3
  374. package/dist/src/gateway/hono/routes/browser-workflows.js +0 -78
  375. /package/dist/src/browser/{actions → automations}/types.js +0 -0
  376. /package/dist/src/browser/{recipes/types.js → drivers/browser-driver.js} +0 -0
@@ -1,312 +0,0 @@
1
- import { checkWebsiteBlocklist } from "../../agent/tools/url-safety.js";
2
- import { resolveBrowserCommandTimeoutMs } from "../browser-command-timeout.js";
3
- import { assertBrowserUrlAllowed, checkPostRedirectUrl, containsApiKeyPattern } from "../url-policy.js";
4
- import { truncateSnapshotAtBoundary } from "../snapshot-helpers.js";
5
- import { isTruthyValue, resolvePath, valueContains } from "../pipeline/template.js";
6
- //#region src/browser/actions/extension-registry-bridge.ts
7
- /**
8
- * Runs browser registry actions against the Chrome Extension bridge (no Playwright page).
9
- */
10
- const DEFAULT_SNAPSHOT_MAX = 3e4;
11
- const AUTO_SNAPSHOT_MAX = 8e3;
12
- function toMs(ctx) {
13
- return resolveBrowserCommandTimeoutMs(ctx.config);
14
- }
15
- function ok(action, text, data, artifacts) {
16
- return {
17
- ok: true,
18
- action,
19
- text,
20
- data,
21
- artifacts
22
- };
23
- }
24
- function fail(action, code, message, diagnostics) {
25
- return {
26
- ok: false,
27
- action,
28
- error: {
29
- code,
30
- message
31
- },
32
- diagnostics
33
- };
34
- }
35
- function pipelineLast(ctx) {
36
- return ctx.pipeline?.last;
37
- }
38
- function valueFromArgs(ctx, args) {
39
- if ("value" in args) return args.value;
40
- if (typeof args.path === "string") return resolvePath(pipelineLast(ctx), args.path);
41
- return pipelineLast(ctx);
42
- }
43
- function compareValues(a, b) {
44
- const av = typeof a === "number" ? a : String(a ?? "");
45
- const bv = typeof b === "number" ? b : String(b ?? "");
46
- if (av < bv) return -1;
47
- if (av > bv) return 1;
48
- return 0;
49
- }
50
- function formatAxSnapshot(data, maxLen) {
51
- const nodes = data?.nodes ?? [];
52
- if (nodes.length === 0) return "(empty snapshot)";
53
- let text = nodes.map((n) => `${n.role ?? "?"}: ${n.name ?? ""}`).join("\n");
54
- if (text.length > maxLen) text = truncateSnapshotAtBoundary(text, maxLen);
55
- return text;
56
- }
57
- async function runExtensionRegistryAction(name, ctx, args) {
58
- if (ctx.signal?.aborted) return fail(name, "ABORTED", "Operation was aborted");
59
- const ext = ctx.manager.getExtensionProvider();
60
- if (!ext) return fail(name, "NO_EXTENSION", "Extension backend not connected");
61
- const timeout = toMs(ctx);
62
- const allowPrivate = false;
63
- switch (name) {
64
- case "open":
65
- case "navigate": {
66
- const url = String(args.url ?? "");
67
- if (!url) return fail(name, "MISSING_URL", "url is required");
68
- if (containsApiKeyPattern(url)) return fail(name, "BLOCKED", "URL contains API key/token");
69
- const block = checkWebsiteBlocklist(url, ctx.config?.tools?.web?.blocklist);
70
- if (block) return fail(name, "BLOCKED", block.message);
71
- assertBrowserUrlAllowed(url, { allowPrivateUrls: allowPrivate });
72
- const r = await ext.sendCommand("navigate", { url }, { timeout });
73
- if (!r.ok) return fail(name, "NAVIGATE_FAILED", r.error ?? "navigate failed");
74
- const data = r.data;
75
- const finalUrl = data?.url ?? url;
76
- const title = data?.title ?? "";
77
- if (finalUrl && finalUrl !== url) {
78
- const redirectBlock = checkPostRedirectUrl(finalUrl, { allowPrivateUrls: allowPrivate });
79
- if (redirectBlock) {
80
- await ext.sendCommand("navigate", { url: "about:blank" }, { timeout: Math.min(1e4, timeout) }).catch(() => {});
81
- return fail(name, "REDIRECT_BLOCKED", redirectBlock);
82
- }
83
- }
84
- let snapshot = "";
85
- try {
86
- const snap = await ext.sendCommand("snapshot", {}, { timeout });
87
- if (snap.ok && snap.data) snapshot = formatAxSnapshot(snap.data, AUTO_SNAPSHOT_MAX);
88
- } catch {}
89
- return ok(name, `Navigated to: ${title}\nURL: ${finalUrl}${snapshot ? `\n--- Page Snapshot ---\n${snapshot}` : ""}`, {
90
- url: finalUrl,
91
- title
92
- });
93
- }
94
- case "state":
95
- case "snapshot": {
96
- const maxLen = typeof args.maxLength === "number" ? args.maxLength : DEFAULT_SNAPSHOT_MAX;
97
- if (args.selector && String(args.selector).trim()) return fail(name, "NOT_SUPPORTED", "selector-scoped state is not supported with the Chrome Extension backend");
98
- const r = await ext.sendCommand("snapshot", {}, { timeout });
99
- if (!r.ok) return fail(name, "SNAPSHOT_FAILED", r.error ?? "snapshot failed");
100
- const body = formatAxSnapshot(r.data, maxLen);
101
- const data = r.data;
102
- return ok(name, `${data?.url ? `URL: ${data.url}\nTitle: ${data.title ?? ""}\n\n` : ""}--- Page Snapshot ---\n${body}`, { length: body.length });
103
- }
104
- case "click": {
105
- const selector = args.selector;
106
- const text = args.text;
107
- if (args.role?.trim()) return fail(name, "NOT_SUPPORTED", "role-based click is not supported with the Chrome Extension backend; use selector or text");
108
- if ((Boolean(selector?.trim()) ? 1 : 0) + (Boolean(text?.trim()) ? 1 : 0) !== 1) return fail(name, "INVALID_ARGS", "Provide exactly one of: selector, text");
109
- const r = await ext.sendCommand("click", {
110
- selector: selector?.trim(),
111
- text: text?.trim()
112
- }, { timeout });
113
- if (!r.ok) return fail(name, "CLICK_FAILED", r.error ?? "click failed");
114
- return ok(name, "Click succeeded.");
115
- }
116
- case "type":
117
- case "input": {
118
- const selector = args.selector;
119
- if (args.label?.trim() && !selector?.trim()) return fail(name, "NOT_SUPPORTED", "label-based typing is not supported with the Chrome Extension backend; use selector");
120
- const text = String(args.text ?? "");
121
- if (!text) return fail(name, "MISSING_TEXT", "text is required");
122
- const r = await ext.sendCommand("type", {
123
- selector: selector?.trim(),
124
- text,
125
- pressEnter: args.pressEnter === true
126
- }, { timeout });
127
- if (!r.ok) return fail(name, "TYPE_FAILED", r.error ?? "type failed");
128
- return ok(name, "Typed into field.");
129
- }
130
- case "scroll": {
131
- const direction = args.direction ?? "down";
132
- const amount = typeof args.amount === "number" ? args.amount : 500;
133
- const deltaY = direction === "down" ? amount : -amount;
134
- const r = await ext.sendCommand("scroll", { deltaY }, { timeout });
135
- if (!r.ok) return fail(name, "SCROLL_FAILED", r.error ?? "scroll failed");
136
- return ok(name, `Scrolled ${direction} by ${amount}px.`);
137
- }
138
- case "back": {
139
- const r = await ext.sendCommand("back", {}, { timeout });
140
- if (!r.ok) return fail(name, "BACK_FAILED", r.error ?? "back failed");
141
- const data = r.data;
142
- return ok(name, `Navigated back to: ${data?.title ?? ""}\nURL: ${data?.url ?? ""}`, {
143
- url: data?.url,
144
- title: data?.title
145
- });
146
- }
147
- case "screenshot": {
148
- const fullPage = args.full_page === true || args.fullPage === true;
149
- const path = args.path;
150
- if (args.selector?.trim()) return fail(name, "NOT_SUPPORTED", "selector-scoped screenshots are not supported with the Chrome Extension backend");
151
- const r = await ext.sendCommand("screenshot", { fullPage }, { timeout });
152
- if (!r.ok) return fail(name, "SCREENSHOT_FAILED", r.error ?? "screenshot failed");
153
- const b64 = r.data?.base64;
154
- if (!b64) return fail(name, "SCREENSHOT_FAILED", "no image data");
155
- const artifact = {
156
- type: "screenshot",
157
- path,
158
- data: b64,
159
- mimeType: "image/png"
160
- };
161
- const approxBytes = Math.floor(b64.length * 3 / 4);
162
- return ok(name, `Screenshot captured (~${approxBytes} bytes).`, { bytes: approxBytes }, [artifact]);
163
- }
164
- case "keys":
165
- case "press": {
166
- const key = String(args.key ?? "");
167
- if (!key) return fail(name, "MISSING_KEY", "key is required");
168
- const r = await ext.sendCommand("keys", { key }, { timeout });
169
- if (!r.ok) return fail(name, "PRESS_FAILED", r.error ?? "keys failed");
170
- return ok(name, `Pressed key: ${key}`);
171
- }
172
- case "console":
173
- case "eval":
174
- case "evaluate": {
175
- const js = args.javascript ?? args.expression ?? args.code ?? "";
176
- if (!js.trim()) return fail(name, "MISSING_JS", "javascript expression is required");
177
- const r = await ext.sendCommand("evaluate", { expression: js }, { timeout });
178
- if (!r.ok) return fail(name, "EVAL_FAILED", r.error ?? "evaluate failed");
179
- const result = r.data?.result;
180
- const serialized = result === void 0 ? "undefined" : JSON.stringify(result, null, 2);
181
- return ok(name, serialized.length > DEFAULT_SNAPSHOT_MAX ? `${serialized.slice(0, DEFAULT_SNAPSHOT_MAX)}\n... (truncated)` : serialized, result);
182
- }
183
- case "images": {
184
- const selector = args.selector;
185
- const maxImages = typeof args.maxImages === "number" ? args.maxImages : 20;
186
- const expr = `(() => {
187
- const sel = ${JSON.stringify(selector?.trim() || null)};
188
- const max = ${JSON.stringify(maxImages)};
189
- const d = globalThis.document;
190
- const root = sel ? d.querySelector(sel) : d;
191
- if (!root) return [];
192
- const imgs = Array.from(root.querySelectorAll('img'));
193
- return imgs.slice(0, max).map((img) => ({
194
- src: String(img.src ?? ''),
195
- alt: String(img.alt ?? ''),
196
- width: Number(img.naturalWidth ?? 0),
197
- height: Number(img.naturalHeight ?? 0),
198
- }));
199
- })()`;
200
- const r = await ext.sendCommand("evaluate", { expression: expr }, { timeout });
201
- if (!r.ok) return fail(name, "IMAGES_FAILED", r.error ?? "evaluate failed");
202
- const images = r.data?.result;
203
- if (!images || images.length === 0) return ok(name, "No images found on the page.", []);
204
- const lines = images.map((img, i) => `${i + 1}. ${img.alt || "(no alt)"} — ${img.width}×${img.height}\n ${img.src}`);
205
- return ok(name, `Found ${images.length} image(s):\n${lines.join("\n")}`, images);
206
- }
207
- case "dialog": {
208
- const action = args.action;
209
- if (action !== "accept" && action !== "dismiss") return fail(name, "INVALID_ACTION", "action must be \"accept\" or \"dismiss\"");
210
- const r = await ext.sendCommand("dialog", { accept: action === "accept" }, { timeout });
211
- if (!r.ok) return fail(name, "DIALOG_FAILED", r.error ?? "dialog failed");
212
- return ok(name, `Dialog ${action}ed.`);
213
- }
214
- case "close": return ok(name, "Browser page closed.");
215
- case "wait": {
216
- const selector = args.selector;
217
- const text = args.text;
218
- const timeoutMs = typeof args.timeout_ms === "number" ? args.timeout_ms : timeout;
219
- if (text?.trim()) return fail(name, "NOT_SUPPORTED", "text-based wait is not supported with the Chrome Extension backend; use selector or ms");
220
- const extArgs = {};
221
- if (selector?.trim()) extArgs.selector = selector.trim();
222
- else extArgs.ms = typeof args.ms === "number" ? args.ms : 1e3;
223
- const r = await ext.sendCommand("wait", extArgs, { timeout: timeoutMs });
224
- if (!r.ok) return fail(name, "WAIT_TIMEOUT", r.error ?? "wait failed");
225
- return ok(name, "Wait completed.");
226
- }
227
- case "wait_for_timeout": {
228
- const ms = typeof args.ms === "number" ? args.ms : typeof args.timeout_ms === "number" ? args.timeout_ms : 1e3;
229
- const r = await ext.sendCommand("wait", { ms }, { timeout: ms + 1e3 });
230
- if (!r.ok) return fail(name, "WAIT_TIMEOUT", r.error ?? "wait failed");
231
- return ok(name, `Waited ${ms}ms.`);
232
- }
233
- case "output": return ok(name, "Output captured.", valueFromArgs(ctx, args));
234
- case "assert": {
235
- const actual = valueFromArgs(ctx, args);
236
- if ("equals" in args && JSON.stringify(actual) !== JSON.stringify(args.equals)) return fail(name, "ASSERTION_FAILED", `Expected value to equal ${JSON.stringify(args.equals)}`);
237
- if ("contains" in args && !valueContains(actual, args.contains)) return fail(name, "ASSERTION_FAILED", `Expected value to contain ${JSON.stringify(args.contains)}`);
238
- if (args.truthy === true && !isTruthyValue(actual)) return fail(name, "ASSERTION_FAILED", "Expected value to be truthy");
239
- if (args.exists === true && (actual === void 0 || actual === null || actual === "")) return fail(name, "ASSERTION_FAILED", "Expected value to exist");
240
- return ok(name, "Assertion passed.");
241
- }
242
- case "select": {
243
- const source = "from" in args ? args.from : pipelineLast(ctx);
244
- const path = String(args.path ?? args.value ?? "");
245
- const value = path ? resolvePath(source, path) : source;
246
- return ok(name, typeof value === "string" ? value : JSON.stringify(value, null, 2), value);
247
- }
248
- case "map": {
249
- const source = "from" in args ? args.from : pipelineLast(ctx);
250
- if (!Array.isArray(source)) return fail(name, "INVALID_INPUT", "map input must be an array");
251
- const path = String(args.path ?? "");
252
- const value = path ? source.map((item) => resolvePath(item, path)) : source;
253
- return ok(name, JSON.stringify(value, null, 2), value);
254
- }
255
- case "filter": {
256
- const source = "from" in args ? args.from : pipelineLast(ctx);
257
- if (!Array.isArray(source)) return fail(name, "INVALID_INPUT", "filter input must be an array");
258
- const path = String(args.path ?? "");
259
- const value = source.filter((item) => {
260
- const itemValue = path ? resolvePath(item, path) : item;
261
- if ("equals" in args) return JSON.stringify(itemValue) === JSON.stringify(args.equals);
262
- if ("contains" in args) return valueContains(itemValue, args.contains);
263
- return isTruthyValue(itemValue);
264
- });
265
- return ok(name, JSON.stringify(value, null, 2), value);
266
- }
267
- case "sort": {
268
- const source = "from" in args ? args.from : pipelineLast(ctx);
269
- if (!Array.isArray(source)) return fail(name, "INVALID_INPUT", "sort input must be an array");
270
- const path = String(args.path ?? "");
271
- const direction = String(args.direction ?? "asc");
272
- const value = [...source].sort((a, b) => {
273
- const cmp = compareValues(path ? resolvePath(a, path) : a, path ? resolvePath(b, path) : b);
274
- return direction === "desc" ? -cmp : cmp;
275
- });
276
- return ok(name, JSON.stringify(value, null, 2), value);
277
- }
278
- case "limit": {
279
- const source = "from" in args ? args.from : pipelineLast(ctx);
280
- if (!Array.isArray(source)) return fail(name, "INVALID_INPUT", "limit input must be an array");
281
- const count = Math.max(0, Number(args.count ?? args.limit ?? 10));
282
- const offset = Math.max(0, Number(args.offset ?? 0));
283
- const value = source.slice(offset, offset + count);
284
- return ok(name, JSON.stringify(value, null, 2), value);
285
- }
286
- case "network_start":
287
- case "network_events":
288
- case "network_stop":
289
- case "cdp":
290
- case "wait_for_navigation":
291
- case "wait_for_function":
292
- case "wait_for_network_idle":
293
- case "element_text":
294
- case "element_attribute":
295
- case "bounding_box":
296
- case "set_input_files":
297
- case "cookies":
298
- case "get_cookies":
299
- case "add_cookies":
300
- case "clear_cookies":
301
- case "tabs":
302
- case "list_tabs":
303
- case "new_tab":
304
- case "switch_tab":
305
- case "fetch":
306
- case "collect":
307
- case "tap": return fail(name, "NOT_SUPPORTED", `Action "${name}" is not available with the Chrome Extension backend`);
308
- default: return fail(name, "UNKNOWN_ACTION", `Unknown browser action: ${name}`);
309
- }
310
- }
311
- //#endregion
312
- export { runExtensionRegistryAction };
@@ -1,5 +0,0 @@
1
- /**
2
- * Browser Action Registry — unified action layer shared by browser_use tool, CLI, and pipeline.
3
- */
4
- import type { BrowserActionRegistry } from './types.js';
5
- export declare function createBrowserActionRegistry(): BrowserActionRegistry;