@elizaos/plugin-browser 2.0.0-alpha.9 → 2.0.11-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -83
  3. package/auto-enable.ts +24 -0
  4. package/dist/actions/browser-autofill-login.d.ts +43 -0
  5. package/dist/actions/browser-autofill-login.d.ts.map +1 -0
  6. package/dist/actions/browser-autofill-login.js +278 -0
  7. package/dist/actions/browser-autofill-login.js.map +1 -0
  8. package/dist/actions/browser.d.ts +11 -0
  9. package/dist/actions/browser.d.ts.map +1 -0
  10. package/dist/actions/browser.js +412 -0
  11. package/dist/actions/browser.js.map +1 -0
  12. package/dist/actions/manage-browser-bridge.d.ts +34 -0
  13. package/dist/actions/manage-browser-bridge.d.ts.map +1 -0
  14. package/dist/actions/manage-browser-bridge.js +572 -0
  15. package/dist/actions/manage-browser-bridge.js.map +1 -0
  16. package/dist/bridge-policy.d.ts +10 -0
  17. package/dist/bridge-policy.d.ts.map +1 -0
  18. package/dist/bridge-policy.js +37 -0
  19. package/dist/bridge-policy.js.map +1 -0
  20. package/dist/bridge-readiness.d.ts +16 -0
  21. package/dist/bridge-readiness.d.ts.map +1 -0
  22. package/dist/bridge-readiness.js +82 -0
  23. package/dist/bridge-readiness.js.map +1 -0
  24. package/dist/bridge-records.d.ts +9 -0
  25. package/dist/bridge-records.d.ts.map +1 -0
  26. package/dist/bridge-records.js +37 -0
  27. package/dist/bridge-records.js.map +1 -0
  28. package/dist/browser-capture-hooks.d.ts +9 -0
  29. package/dist/browser-capture-hooks.d.ts.map +1 -0
  30. package/dist/browser-capture-hooks.js +15 -0
  31. package/dist/browser-capture-hooks.js.map +1 -0
  32. package/dist/browser-service.d.ts +103 -0
  33. package/dist/browser-service.d.ts.map +1 -0
  34. package/dist/browser-service.js +186 -0
  35. package/dist/browser-service.js.map +1 -0
  36. package/dist/browser-workspace-hooks.d.ts +14 -0
  37. package/dist/browser-workspace-hooks.d.ts.map +1 -0
  38. package/dist/browser-workspace-hooks.js +15 -0
  39. package/dist/browser-workspace-hooks.js.map +1 -0
  40. package/dist/companion-auth.d.ts +34 -0
  41. package/dist/companion-auth.d.ts.map +1 -0
  42. package/dist/companion-auth.js +98 -0
  43. package/dist/companion-auth.js.map +1 -0
  44. package/dist/contracts.d.ts +284 -0
  45. package/dist/contracts.d.ts.map +1 -0
  46. package/dist/contracts.js +56 -0
  47. package/dist/contracts.js.map +1 -0
  48. package/dist/index.d.ts +30 -16
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +76 -90
  51. package/dist/index.js.map +1 -1
  52. package/dist/lifeops-session-contracts.d.ts +46 -0
  53. package/dist/lifeops-session-contracts.d.ts.map +1 -0
  54. package/dist/lifeops-session-contracts.js +1 -0
  55. package/dist/lifeops-session-contracts.js.map +1 -0
  56. package/dist/message-adapter.d.ts +9 -0
  57. package/dist/message-adapter.d.ts.map +1 -0
  58. package/dist/message-adapter.js +104 -0
  59. package/dist/message-adapter.js.map +1 -0
  60. package/dist/packaging.d.ts +27 -0
  61. package/dist/packaging.d.ts.map +1 -0
  62. package/dist/packaging.js +571 -0
  63. package/dist/packaging.js.map +1 -0
  64. package/dist/password-manager-bridge.d.ts +50 -0
  65. package/dist/password-manager-bridge.d.ts.map +1 -0
  66. package/dist/password-manager-bridge.js +437 -0
  67. package/dist/password-manager-bridge.js.map +1 -0
  68. package/dist/plugin.d.ts +10 -0
  69. package/dist/plugin.d.ts.map +1 -0
  70. package/dist/plugin.js +168 -0
  71. package/dist/plugin.js.map +1 -0
  72. package/dist/providers/workspace.d.ts +13 -0
  73. package/dist/providers/workspace.d.ts.map +1 -0
  74. package/dist/providers/workspace.js +64 -0
  75. package/dist/providers/workspace.js.map +1 -0
  76. package/dist/routes/bridge.d.ts +37 -0
  77. package/dist/routes/bridge.d.ts.map +1 -0
  78. package/dist/routes/bridge.js +844 -0
  79. package/dist/routes/bridge.js.map +1 -0
  80. package/dist/routes/workspace-account-gate.d.ts +29 -0
  81. package/dist/routes/workspace-account-gate.d.ts.map +1 -0
  82. package/dist/routes/workspace-account-gate.js +147 -0
  83. package/dist/routes/workspace-account-gate.js.map +1 -0
  84. package/dist/routes/workspace-setup.d.ts +10 -0
  85. package/dist/routes/workspace-setup.d.ts.map +1 -0
  86. package/dist/routes/workspace-setup.js +65 -0
  87. package/dist/routes/workspace-setup.js.map +1 -0
  88. package/dist/routes/workspace.d.ts +20 -0
  89. package/dist/routes/workspace.d.ts.map +1 -0
  90. package/dist/routes/workspace.js +276 -0
  91. package/dist/routes/workspace.js.map +1 -0
  92. package/dist/schema.d.ts +2326 -0
  93. package/dist/schema.d.ts.map +1 -0
  94. package/dist/schema.js +133 -0
  95. package/dist/schema.js.map +1 -0
  96. package/dist/service.d.ts +30 -0
  97. package/dist/service.d.ts.map +1 -0
  98. package/dist/service.js +5 -0
  99. package/dist/service.js.map +1 -0
  100. package/dist/targets/bridge-target.d.ts +31 -0
  101. package/dist/targets/bridge-target.d.ts.map +1 -0
  102. package/dist/targets/bridge-target.js +98 -0
  103. package/dist/targets/bridge-target.js.map +1 -0
  104. package/dist/targets/stagehand-target.d.ts +3 -0
  105. package/dist/targets/stagehand-target.d.ts.map +1 -0
  106. package/dist/targets/stagehand-target.js +187 -0
  107. package/dist/targets/stagehand-target.js.map +1 -0
  108. package/dist/workspace/browser-capture.d.ts +41 -0
  109. package/dist/workspace/browser-capture.d.ts.map +1 -0
  110. package/dist/workspace/browser-capture.js +159 -0
  111. package/dist/workspace/browser-capture.js.map +1 -0
  112. package/dist/workspace/browser-workspace-desktop.d.ts +19 -0
  113. package/dist/workspace/browser-workspace-desktop.d.ts.map +1 -0
  114. package/dist/workspace/browser-workspace-desktop.js +1578 -0
  115. package/dist/workspace/browser-workspace-desktop.js.map +1 -0
  116. package/dist/workspace/browser-workspace-elements.d.ts +42 -0
  117. package/dist/workspace/browser-workspace-elements.d.ts.map +1 -0
  118. package/dist/workspace/browser-workspace-elements.js +547 -0
  119. package/dist/workspace/browser-workspace-elements.js.map +1 -0
  120. package/dist/workspace/browser-workspace-forms.d.ts +19 -0
  121. package/dist/workspace/browser-workspace-forms.d.ts.map +1 -0
  122. package/dist/workspace/browser-workspace-forms.js +277 -0
  123. package/dist/workspace/browser-workspace-forms.js.map +1 -0
  124. package/dist/workspace/browser-workspace-helpers.d.ts +32 -0
  125. package/dist/workspace/browser-workspace-helpers.d.ts.map +1 -0
  126. package/dist/workspace/browser-workspace-helpers.js +232 -0
  127. package/dist/workspace/browser-workspace-helpers.js.map +1 -0
  128. package/dist/workspace/browser-workspace-jsdom.d.ts +16 -0
  129. package/dist/workspace/browser-workspace-jsdom.d.ts.map +1 -0
  130. package/dist/workspace/browser-workspace-jsdom.js +233 -0
  131. package/dist/workspace/browser-workspace-jsdom.js.map +1 -0
  132. package/dist/workspace/browser-workspace-network.d.ts +7 -0
  133. package/dist/workspace/browser-workspace-network.d.ts.map +1 -0
  134. package/dist/workspace/browser-workspace-network.js +145 -0
  135. package/dist/workspace/browser-workspace-network.js.map +1 -0
  136. package/dist/workspace/browser-workspace-snapshots.d.ts +14 -0
  137. package/dist/workspace/browser-workspace-snapshots.d.ts.map +1 -0
  138. package/dist/workspace/browser-workspace-snapshots.js +144 -0
  139. package/dist/workspace/browser-workspace-snapshots.js.map +1 -0
  140. package/dist/workspace/browser-workspace-state.d.ts +24 -0
  141. package/dist/workspace/browser-workspace-state.d.ts.map +1 -0
  142. package/dist/workspace/browser-workspace-state.js +155 -0
  143. package/dist/workspace/browser-workspace-state.js.map +1 -0
  144. package/dist/workspace/browser-workspace-types.d.ts +345 -0
  145. package/dist/workspace/browser-workspace-types.d.ts.map +1 -0
  146. package/dist/workspace/browser-workspace-types.js +11 -0
  147. package/dist/workspace/browser-workspace-types.js.map +1 -0
  148. package/dist/workspace/browser-workspace-web.d.ts +8 -0
  149. package/dist/workspace/browser-workspace-web.d.ts.map +1 -0
  150. package/dist/workspace/browser-workspace-web.js +1342 -0
  151. package/dist/workspace/browser-workspace-web.js.map +1 -0
  152. package/dist/workspace/browser-workspace.d.ts +39 -0
  153. package/dist/workspace/browser-workspace.d.ts.map +1 -0
  154. package/dist/workspace/browser-workspace.js +958 -0
  155. package/dist/workspace/browser-workspace.js.map +1 -0
  156. package/dist/workspace/index.d.ts +26 -0
  157. package/dist/workspace/index.d.ts.map +1 -0
  158. package/dist/workspace/index.js +3 -0
  159. package/dist/workspace/index.js.map +1 -0
  160. package/dist/workspace.d.ts +2 -0
  161. package/dist/workspace.d.ts.map +1 -0
  162. package/dist/workspace.js +2 -0
  163. package/dist/workspace.js.map +1 -0
  164. package/package.json +71 -110
  165. package/dist/actions/click.d.ts +0 -3
  166. package/dist/actions/click.d.ts.map +0 -1
  167. package/dist/actions/click.js +0 -158
  168. package/dist/actions/click.js.map +0 -1
  169. package/dist/actions/extract.d.ts +0 -3
  170. package/dist/actions/extract.d.ts.map +0 -1
  171. package/dist/actions/extract.js +0 -168
  172. package/dist/actions/extract.js.map +0 -1
  173. package/dist/actions/index.d.ts +0 -7
  174. package/dist/actions/index.d.ts.map +0 -1
  175. package/dist/actions/index.js +0 -7
  176. package/dist/actions/index.js.map +0 -1
  177. package/dist/actions/navigate.d.ts +0 -3
  178. package/dist/actions/navigate.d.ts.map +0 -1
  179. package/dist/actions/navigate.js +0 -187
  180. package/dist/actions/navigate.js.map +0 -1
  181. package/dist/actions/screenshot.d.ts +0 -3
  182. package/dist/actions/screenshot.d.ts.map +0 -1
  183. package/dist/actions/screenshot.js +0 -167
  184. package/dist/actions/screenshot.js.map +0 -1
  185. package/dist/actions/select.d.ts +0 -3
  186. package/dist/actions/select.d.ts.map +0 -1
  187. package/dist/actions/select.js +0 -167
  188. package/dist/actions/select.js.map +0 -1
  189. package/dist/actions/type.d.ts +0 -3
  190. package/dist/actions/type.d.ts.map +0 -1
  191. package/dist/actions/type.js +0 -167
  192. package/dist/actions/type.js.map +0 -1
  193. package/dist/cli/index.d.ts +0 -8
  194. package/dist/cli/index.d.ts.map +0 -1
  195. package/dist/cli/index.js +0 -13
  196. package/dist/cli/index.js.map +0 -1
  197. package/dist/cli/register.d.ts +0 -20
  198. package/dist/cli/register.d.ts.map +0 -1
  199. package/dist/cli/register.js +0 -403
  200. package/dist/cli/register.js.map +0 -1
  201. package/dist/providerRelevance.d.ts +0 -4
  202. package/dist/providerRelevance.d.ts.map +0 -1
  203. package/dist/providerRelevance.js +0 -33
  204. package/dist/providerRelevance.js.map +0 -1
  205. package/dist/providers/browser-state.d.ts +0 -3
  206. package/dist/providers/browser-state.d.ts.map +0 -1
  207. package/dist/providers/browser-state.js +0 -72
  208. package/dist/providers/browser-state.js.map +0 -1
  209. package/dist/providers/index.d.ts +0 -2
  210. package/dist/providers/index.d.ts.map +0 -1
  211. package/dist/providers/index.js +0 -2
  212. package/dist/providers/index.js.map +0 -1
  213. package/dist/services/browser-service.d.ts +0 -32
  214. package/dist/services/browser-service.d.ts.map +0 -1
  215. package/dist/services/browser-service.js +0 -213
  216. package/dist/services/browser-service.js.map +0 -1
  217. package/dist/services/index.d.ts +0 -4
  218. package/dist/services/index.d.ts.map +0 -1
  219. package/dist/services/index.js +0 -4
  220. package/dist/services/index.js.map +0 -1
  221. package/dist/services/process-manager.d.ts +0 -24
  222. package/dist/services/process-manager.d.ts.map +0 -1
  223. package/dist/services/process-manager.js +0 -270
  224. package/dist/services/process-manager.js.map +0 -1
  225. package/dist/services/websocket-client.d.ts +0 -35
  226. package/dist/services/websocket-client.d.ts.map +0 -1
  227. package/dist/services/websocket-client.js +0 -221
  228. package/dist/services/websocket-client.js.map +0 -1
  229. package/dist/types.d.ts +0 -101
  230. package/dist/types.d.ts.map +0 -1
  231. package/dist/types.js +0 -2
  232. package/dist/types.js.map +0 -1
  233. package/dist/utils/captcha.d.ts +0 -33
  234. package/dist/utils/captcha.d.ts.map +0 -1
  235. package/dist/utils/captcha.js +0 -219
  236. package/dist/utils/captcha.js.map +0 -1
  237. package/dist/utils/errors.d.ts +0 -37
  238. package/dist/utils/errors.d.ts.map +0 -1
  239. package/dist/utils/errors.js +0 -81
  240. package/dist/utils/errors.js.map +0 -1
  241. package/dist/utils/index.d.ts +0 -5
  242. package/dist/utils/index.d.ts.map +0 -1
  243. package/dist/utils/index.js +0 -5
  244. package/dist/utils/index.js.map +0 -1
  245. package/dist/utils/retry.d.ts +0 -26
  246. package/dist/utils/retry.d.ts.map +0 -1
  247. package/dist/utils/retry.js +0 -55
  248. package/dist/utils/retry.js.map +0 -1
  249. package/dist/utils/security.d.ts +0 -27
  250. package/dist/utils/security.d.ts.map +0 -1
  251. package/dist/utils/security.js +0 -139
  252. package/dist/utils/security.js.map +0 -1
  253. package/dist/utils/url.d.ts +0 -12
  254. package/dist/utils/url.d.ts.map +0 -1
  255. package/dist/utils/url.js +0 -39
  256. package/dist/utils/url.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/actions/screenshot.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tAction,\n\tActionResult,\n\tContent,\n\tHandlerCallback,\n\tHandlerOptions,\n\tIAgentRuntime,\n\tMemory,\n\tState,\n} from \"@elizaos/core\";\nimport { ServiceType } from \"@elizaos/core\";\nimport type { BrowserService } from \"../services/browser-service.js\";\nimport {\n\tActionError,\n\thandleBrowserError,\n\tServiceNotAvailableError,\n\tSessionError,\n} from \"../utils/errors.js\";\n\nexport const browserScreenshotAction: Action = {\n\tname: \"BROWSER_SCREENSHOT\",\n\tsimiles: [\"TAKE_SCREENSHOT\", \"CAPTURE_PAGE\", \"SCREENSHOT\"],\n\tdescription: \"Take a screenshot of the current page\",\n\n\tvalidate: async (\n\t\truntime: any,\n\t\tmessage: any,\n\t\tstate?: any,\n\t\toptions?: any,\n\t): Promise<boolean> => {\n\t\tconst __avTextRaw =\n\t\t\ttypeof message?.content?.text === \"string\" ? message.content.text : \"\";\n\t\tconst __avText = __avTextRaw.toLowerCase();\n\t\tconst __avKeywords = [\"browser\", \"screenshot\"];\n\t\tconst __avKeywordOk =\n\t\t\t__avKeywords.length > 0 &&\n\t\t\t__avKeywords.some((word) => word.length > 0 && __avText.includes(word));\n\t\tconst __avRegex = /\\b(?:browser|screenshot)\\b/i;\n\t\tconst __avRegexOk = __avRegex.test(__avText);\n\t\tconst __avSource = String(\n\t\t\tmessage?.content?.source ?? message?.source ?? \"\",\n\t\t);\n\t\tconst __avExpectedSource = \"\";\n\t\tconst __avSourceOk = __avExpectedSource\n\t\t\t? __avSource === __avExpectedSource\n\t\t\t: Boolean(\n\t\t\t\t\t__avSource ||\n\t\t\t\t\t\tstate ||\n\t\t\t\t\t\truntime?.agentId ||\n\t\t\t\t\t\truntime?.getService ||\n\t\t\t\t\t\truntime?.getSetting,\n\t\t\t\t);\n\t\tconst __avOptions = options && typeof options === \"object\" ? options : {};\n\t\tconst __avInputOk =\n\t\t\t__avText.trim().length > 0 ||\n\t\t\tObject.keys(__avOptions as Record<string, unknown>).length > 0 ||\n\t\t\tBoolean(message?.content && typeof message.content === \"object\");\n\n\t\tif (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst __avLegacyValidate = async (\n\t\t\truntime: any,\n\t\t\tmessage: any,\n\t\t\tstate?: any,\n\t\t\toptions?: any,\n\t\t): Promise<boolean> => {\n\t\t\tconst __avTextRaw =\n\t\t\t\ttypeof message?.content?.text === \"string\" ? message.content.text : \"\";\n\t\t\tconst __avText = __avTextRaw.toLowerCase();\n\t\t\tconst __avKeywords = [\"browser\", \"screenshot\"];\n\t\t\tconst __avKeywordOk =\n\t\t\t\t__avKeywords.length > 0 &&\n\t\t\t\t__avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n\t\t\tconst __avRegex = /\\b(?:browser|screenshot)\\b/i;\n\t\t\tconst __avRegexOk = __avRegex.test(__avText);\n\t\t\tconst __avSource = String(\n\t\t\t\tmessage?.content?.source ?? message?.source ?? \"\",\n\t\t\t);\n\t\t\tconst __avExpectedSource = \"\";\n\t\t\tconst __avSourceOk = __avExpectedSource\n\t\t\t\t? __avSource === __avExpectedSource\n\t\t\t\t: Boolean(\n\t\t\t\t\t\t__avSource || state || runtime?.agentId || runtime?.getService,\n\t\t\t\t\t);\n\t\t\tconst __avOptions = options && typeof options === \"object\" ? options : {};\n\t\t\tconst __avInputOk =\n\t\t\t\t__avText.trim().length > 0 ||\n\t\t\t\tObject.keys(__avOptions as Record<string, unknown>).length > 0 ||\n\t\t\t\tBoolean(message?.content && typeof message.content === \"object\");\n\n\t\t\tif (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst __avLegacyValidate = async (\n\t\t\t\truntime: IAgentRuntime,\n\t\t\t\tmessage: Memory,\n\t\t\t\t_state?: State,\n\t\t\t): Promise<boolean> => {\n\t\t\t\tconst browserEnabled =\n\t\t\t\t\truntime.getSetting(\"ENABLE_BROWSER\") === \"true\" ||\n\t\t\t\t\truntime.getSetting(\"BROWSER_ENABLED\") === \"true\";\n\n\t\t\t\tif (!browserEnabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst service = runtime.getService<BrowserService>(ServiceType.BROWSER);\n\t\t\t\tif (!service) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst text = message.content?.text?.toLowerCase() ?? \"\";\n\t\t\t\treturn (\n\t\t\t\t\ttext.includes(\"screenshot\") ||\n\t\t\t\t\ttext.includes(\"capture\") ||\n\t\t\t\t\ttext.includes(\"snap\")\n\t\t\t\t);\n\t\t\t};\n\t\t\ttry {\n\t\t\t\treturn Boolean(\n\t\t\t\t\tawait (__avLegacyValidate as any)(runtime, message, state, options),\n\t\t\t\t);\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\t\ttry {\n\t\t\treturn Boolean(\n\t\t\t\tawait (__avLegacyValidate as any)(runtime, message, state, options),\n\t\t\t);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t},\n\n\thandler: async (\n\t\truntime: IAgentRuntime,\n\t\tmessage: Memory,\n\t\t_state?: State,\n\t\t_options?: HandlerOptions,\n\t\tcallback?: HandlerCallback,\n\t\t_responses?: Memory[],\n\t): Promise<ActionResult | undefined> => {\n\t\tconst service = runtime.getService<BrowserService>(ServiceType.BROWSER);\n\t\tif (!service) {\n\t\t\tconst error = new ServiceNotAvailableError();\n\t\t\thandleBrowserError(\n\t\t\t\terror,\n\t\t\t\tcallback as (content: {\n\t\t\t\t\ttext: string;\n\t\t\t\t\terror?: boolean;\n\t\t\t\t}) => Promise<unknown>,\n\t\t\t\t\"take screenshot\",\n\t\t\t);\n\t\t\treturn {\n\t\t\t\ttext: \"Browser service is not available\",\n\t\t\t\tsuccess: false,\n\t\t\t\tdata: {\n\t\t\t\t\tactionName: \"BROWSER_SCREENSHOT\",\n\t\t\t\t\terror: \"service_not_available\",\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terrorType: \"service_not_available\",\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst session = await service.getOrCreateSession();\n\t\tif (!session) {\n\t\t\tconst error = new SessionError(\"No active browser session\");\n\t\t\thandleBrowserError(\n\t\t\t\terror,\n\t\t\t\tcallback as (content: {\n\t\t\t\t\ttext: string;\n\t\t\t\t\terror?: boolean;\n\t\t\t\t}) => Promise<unknown>,\n\t\t\t\t\"take screenshot\",\n\t\t\t);\n\t\t\treturn {\n\t\t\t\ttext: \"No active browser session\",\n\t\t\t\tsuccess: false,\n\t\t\t\tdata: {\n\t\t\t\t\tactionName: \"BROWSER_SCREENSHOT\",\n\t\t\t\t\terror: \"no_session\",\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terrorType: \"no_session\",\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst result = await service.getClient().screenshot(session.id);\n\t\tif (!result.success) {\n\t\t\tthrow new ActionError(\n\t\t\t\t\"screenshot\",\n\t\t\t\t\"page\",\n\t\t\t\tnew Error(result.error ?? \"Screenshot failed\"),\n\t\t\t);\n\t\t}\n\n\t\tconst screenshotData = result.data as\n\t\t\t| {\n\t\t\t\t\tscreenshot?: string;\n\t\t\t\t\tmimeType?: string;\n\t\t\t\t\turl?: string;\n\t\t\t\t\ttitle?: string;\n\t\t\t }\n\t\t\t| undefined;\n\n\t\tconst url = screenshotData?.url ?? \"unknown\";\n\t\tconst title = screenshotData?.title ?? \"Untitled\";\n\n\t\tconst responseContent: Content = {\n\t\t\ttext: `I've taken a screenshot of the page \"${title}\" at ${url}`,\n\t\t\tactions: [\"BROWSER_SCREENSHOT\"],\n\t\t\tsource: message.content?.source ?? \"action\",\n\t\t\tdata: {\n\t\t\t\tscreenshot: screenshotData?.screenshot ?? \"\",\n\t\t\t\tmimeType: screenshotData?.mimeType ?? \"image/png\",\n\t\t\t\turl,\n\t\t\t\ttitle,\n\t\t\t},\n\t\t};\n\n\t\tawait callback?.(responseContent);\n\n\t\treturn {\n\t\t\ttext: responseContent.text ?? \"\",\n\t\t\tsuccess: true,\n\t\t\tdata: {\n\t\t\t\tactionName: \"BROWSER_SCREENSHOT\",\n\t\t\t\turl,\n\t\t\t\ttitle,\n\t\t\t\tsessionId: session.id,\n\t\t\t\tscreenshot: screenshotData?.screenshot ?? \"\",\n\t\t\t},\n\t\t\tvalues: {\n\t\t\t\tsuccess: true,\n\t\t\t\turl,\n\t\t\t\ttitle,\n\t\t\t},\n\t\t};\n\t},\n\n\texamples: [\n\t\t[\n\t\t\t{\n\t\t\t\tname: \"{{user}}\",\n\t\t\t\tcontent: { text: \"Take a screenshot of the page\" },\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"{{agent}}\",\n\t\t\t\tcontent: {\n\t\t\t\t\ttext: \"I've taken a screenshot of the page.\",\n\t\t\t\t\tactions: [\"BROWSER_SCREENSHOT\"],\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t],\n};\n"]}
@@ -1,3 +0,0 @@
1
- import type { Action } from "@elizaos/core";
2
- export declare const browserSelectAction: Action;
3
- //# sourceMappingURL=select.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/actions/select.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EAQN,MAAM,eAAe,CAAC;AAUvB,eAAO,MAAM,mBAAmB,EAAE,MAmPjC,CAAC"}
@@ -1,167 +0,0 @@
1
- import { ServiceType } from "@elizaos/core";
2
- import { ActionError, handleBrowserError, ServiceNotAvailableError, SessionError, } from "../utils/errors.js";
3
- export const browserSelectAction = {
4
- name: "BROWSER_SELECT",
5
- similes: ["SELECT_OPTION", "CHOOSE", "PICK"],
6
- description: "Select an option from a dropdown on the webpage",
7
- validate: async (runtime, message, state, options) => {
8
- const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
9
- const __avText = __avTextRaw.toLowerCase();
10
- const __avKeywords = ["browser", "select"];
11
- const __avKeywordOk = __avKeywords.length > 0 &&
12
- __avKeywords.some((word) => word.length > 0 && __avText.includes(word));
13
- const __avRegex = /\b(?:browser|select)\b/i;
14
- const __avRegexOk = __avRegex.test(__avText);
15
- const __avSource = String(message?.content?.source ?? message?.source ?? "");
16
- const __avExpectedSource = "";
17
- const __avSourceOk = __avExpectedSource
18
- ? __avSource === __avExpectedSource
19
- : Boolean(__avSource ||
20
- state ||
21
- runtime?.agentId ||
22
- runtime?.getService ||
23
- runtime?.getSetting);
24
- const __avOptions = options && typeof options === "object" ? options : {};
25
- const __avInputOk = __avText.trim().length > 0 ||
26
- Object.keys(__avOptions).length > 0 ||
27
- Boolean(message?.content && typeof message.content === "object");
28
- if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
29
- return false;
30
- }
31
- const __avLegacyValidate = async (runtime, message, state, options) => {
32
- const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
33
- const __avText = __avTextRaw.toLowerCase();
34
- const __avKeywords = ["browser", "select"];
35
- const __avKeywordOk = __avKeywords.length > 0 &&
36
- __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
37
- const __avRegex = /\b(?:browser|select)\b/i;
38
- const __avRegexOk = __avRegex.test(__avText);
39
- const __avSource = String(message?.content?.source ?? message?.source ?? "");
40
- const __avExpectedSource = "";
41
- const __avSourceOk = __avExpectedSource
42
- ? __avSource === __avExpectedSource
43
- : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
44
- const __avOptions = options && typeof options === "object" ? options : {};
45
- const __avInputOk = __avText.trim().length > 0 ||
46
- Object.keys(__avOptions).length > 0 ||
47
- Boolean(message?.content && typeof message.content === "object");
48
- if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
49
- return false;
50
- }
51
- const __avLegacyValidate = async (runtime, message, _state) => {
52
- const browserEnabled = runtime.getSetting("ENABLE_BROWSER") === "true" ||
53
- runtime.getSetting("BROWSER_ENABLED") === "true";
54
- if (!browserEnabled) {
55
- return false;
56
- }
57
- const service = runtime.getService(ServiceType.BROWSER);
58
- if (!service) {
59
- return false;
60
- }
61
- const text = message.content?.text?.toLowerCase() ?? "";
62
- return (text.includes("select") ||
63
- text.includes("choose") ||
64
- text.includes("pick"));
65
- };
66
- try {
67
- return Boolean(await __avLegacyValidate(runtime, message, state, options));
68
- }
69
- catch {
70
- return false;
71
- }
72
- };
73
- try {
74
- return Boolean(await __avLegacyValidate(runtime, message, state, options));
75
- }
76
- catch {
77
- return false;
78
- }
79
- },
80
- handler: async (runtime, message, _state, _options, callback, _responses) => {
81
- const service = runtime.getService(ServiceType.BROWSER);
82
- if (!service) {
83
- const error = new ServiceNotAvailableError();
84
- handleBrowserError(error, callback, "select option");
85
- return {
86
- text: "Browser service is not available",
87
- success: false,
88
- data: {
89
- actionName: "BROWSER_SELECT",
90
- error: "service_not_available",
91
- },
92
- values: {
93
- success: false,
94
- errorType: "service_not_available",
95
- },
96
- };
97
- }
98
- const session = await service.getOrCreateSession();
99
- if (!session) {
100
- const error = new SessionError("No active browser session");
101
- handleBrowserError(error, callback, "select option");
102
- return {
103
- text: "No active browser session",
104
- success: false,
105
- data: {
106
- actionName: "BROWSER_SELECT",
107
- error: "no_session",
108
- },
109
- values: {
110
- success: false,
111
- errorType: "no_session",
112
- },
113
- };
114
- }
115
- const text = message.content?.text ?? "";
116
- const match = text.match(/["']([^"']+)["']/);
117
- const option = match ? match[1] : "";
118
- const dropdownMatch = text.match(/from (?:the )?(.+)$/i);
119
- const dropdown = dropdownMatch ? dropdownMatch[1] : "dropdown";
120
- if (!option) {
121
- throw new ActionError("select", dropdown, new Error("No option specified to select"));
122
- }
123
- const result = await service
124
- .getClient()
125
- .select(session.id, option, dropdown);
126
- if (!result.success) {
127
- throw new ActionError("select", dropdown, new Error(result.error ?? "Select failed"));
128
- }
129
- const responseContent = {
130
- text: `I've selected "${option}" from the ${dropdown}`,
131
- actions: ["BROWSER_SELECT"],
132
- source: message.content?.source ?? "action",
133
- };
134
- await callback?.(responseContent);
135
- return {
136
- text: responseContent.text ?? "",
137
- success: true,
138
- data: {
139
- actionName: "BROWSER_SELECT",
140
- option,
141
- dropdown,
142
- sessionId: session.id,
143
- },
144
- values: {
145
- success: true,
146
- option,
147
- dropdown,
148
- },
149
- };
150
- },
151
- examples: [
152
- [
153
- {
154
- name: "{{user}}",
155
- content: { text: 'Select "United States" from the country dropdown' },
156
- },
157
- {
158
- name: "{{agent}}",
159
- content: {
160
- text: 'I\'ve selected "United States" from the country dropdown.',
161
- actions: ["BROWSER_SELECT"],
162
- },
163
- },
164
- ],
165
- ],
166
- };
167
- //# sourceMappingURL=select.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/actions/select.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tAction,\n\tActionResult,\n\tContent,\n\tHandlerCallback,\n\tHandlerOptions,\n\tIAgentRuntime,\n\tMemory,\n\tState,\n} from \"@elizaos/core\";\nimport { ServiceType } from \"@elizaos/core\";\nimport type { BrowserService } from \"../services/browser-service.js\";\nimport {\n\tActionError,\n\thandleBrowserError,\n\tServiceNotAvailableError,\n\tSessionError,\n} from \"../utils/errors.js\";\n\nexport const browserSelectAction: Action = {\n\tname: \"BROWSER_SELECT\",\n\tsimiles: [\"SELECT_OPTION\", \"CHOOSE\", \"PICK\"],\n\tdescription: \"Select an option from a dropdown on the webpage\",\n\n\tvalidate: async (\n\t\truntime: any,\n\t\tmessage: any,\n\t\tstate?: any,\n\t\toptions?: any,\n\t): Promise<boolean> => {\n\t\tconst __avTextRaw =\n\t\t\ttypeof message?.content?.text === \"string\" ? message.content.text : \"\";\n\t\tconst __avText = __avTextRaw.toLowerCase();\n\t\tconst __avKeywords = [\"browser\", \"select\"];\n\t\tconst __avKeywordOk =\n\t\t\t__avKeywords.length > 0 &&\n\t\t\t__avKeywords.some((word) => word.length > 0 && __avText.includes(word));\n\t\tconst __avRegex = /\\b(?:browser|select)\\b/i;\n\t\tconst __avRegexOk = __avRegex.test(__avText);\n\t\tconst __avSource = String(\n\t\t\tmessage?.content?.source ?? message?.source ?? \"\",\n\t\t);\n\t\tconst __avExpectedSource = \"\";\n\t\tconst __avSourceOk = __avExpectedSource\n\t\t\t? __avSource === __avExpectedSource\n\t\t\t: Boolean(\n\t\t\t\t\t__avSource ||\n\t\t\t\t\t\tstate ||\n\t\t\t\t\t\truntime?.agentId ||\n\t\t\t\t\t\truntime?.getService ||\n\t\t\t\t\t\truntime?.getSetting,\n\t\t\t\t);\n\t\tconst __avOptions = options && typeof options === \"object\" ? options : {};\n\t\tconst __avInputOk =\n\t\t\t__avText.trim().length > 0 ||\n\t\t\tObject.keys(__avOptions as Record<string, unknown>).length > 0 ||\n\t\t\tBoolean(message?.content && typeof message.content === \"object\");\n\n\t\tif (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst __avLegacyValidate = async (\n\t\t\truntime: any,\n\t\t\tmessage: any,\n\t\t\tstate?: any,\n\t\t\toptions?: any,\n\t\t): Promise<boolean> => {\n\t\t\tconst __avTextRaw =\n\t\t\t\ttypeof message?.content?.text === \"string\" ? message.content.text : \"\";\n\t\t\tconst __avText = __avTextRaw.toLowerCase();\n\t\t\tconst __avKeywords = [\"browser\", \"select\"];\n\t\t\tconst __avKeywordOk =\n\t\t\t\t__avKeywords.length > 0 &&\n\t\t\t\t__avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n\t\t\tconst __avRegex = /\\b(?:browser|select)\\b/i;\n\t\t\tconst __avRegexOk = __avRegex.test(__avText);\n\t\t\tconst __avSource = String(\n\t\t\t\tmessage?.content?.source ?? message?.source ?? \"\",\n\t\t\t);\n\t\t\tconst __avExpectedSource = \"\";\n\t\t\tconst __avSourceOk = __avExpectedSource\n\t\t\t\t? __avSource === __avExpectedSource\n\t\t\t\t: Boolean(\n\t\t\t\t\t\t__avSource || state || runtime?.agentId || runtime?.getService,\n\t\t\t\t\t);\n\t\t\tconst __avOptions = options && typeof options === \"object\" ? options : {};\n\t\t\tconst __avInputOk =\n\t\t\t\t__avText.trim().length > 0 ||\n\t\t\t\tObject.keys(__avOptions as Record<string, unknown>).length > 0 ||\n\t\t\t\tBoolean(message?.content && typeof message.content === \"object\");\n\n\t\t\tif (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst __avLegacyValidate = async (\n\t\t\t\truntime: IAgentRuntime,\n\t\t\t\tmessage: Memory,\n\t\t\t\t_state?: State,\n\t\t\t): Promise<boolean> => {\n\t\t\t\tconst browserEnabled =\n\t\t\t\t\truntime.getSetting(\"ENABLE_BROWSER\") === \"true\" ||\n\t\t\t\t\truntime.getSetting(\"BROWSER_ENABLED\") === \"true\";\n\n\t\t\t\tif (!browserEnabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst service = runtime.getService<BrowserService>(ServiceType.BROWSER);\n\t\t\t\tif (!service) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst text = message.content?.text?.toLowerCase() ?? \"\";\n\t\t\t\treturn (\n\t\t\t\t\ttext.includes(\"select\") ||\n\t\t\t\t\ttext.includes(\"choose\") ||\n\t\t\t\t\ttext.includes(\"pick\")\n\t\t\t\t);\n\t\t\t};\n\t\t\ttry {\n\t\t\t\treturn Boolean(\n\t\t\t\t\tawait (__avLegacyValidate as any)(runtime, message, state, options),\n\t\t\t\t);\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\t\ttry {\n\t\t\treturn Boolean(\n\t\t\t\tawait (__avLegacyValidate as any)(runtime, message, state, options),\n\t\t\t);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t},\n\n\thandler: async (\n\t\truntime: IAgentRuntime,\n\t\tmessage: Memory,\n\t\t_state?: State,\n\t\t_options?: HandlerOptions,\n\t\tcallback?: HandlerCallback,\n\t\t_responses?: Memory[],\n\t): Promise<ActionResult | undefined> => {\n\t\tconst service = runtime.getService<BrowserService>(ServiceType.BROWSER);\n\t\tif (!service) {\n\t\t\tconst error = new ServiceNotAvailableError();\n\t\t\thandleBrowserError(\n\t\t\t\terror,\n\t\t\t\tcallback as (content: {\n\t\t\t\t\ttext: string;\n\t\t\t\t\terror?: boolean;\n\t\t\t\t}) => Promise<unknown>,\n\t\t\t\t\"select option\",\n\t\t\t);\n\t\t\treturn {\n\t\t\t\ttext: \"Browser service is not available\",\n\t\t\t\tsuccess: false,\n\t\t\t\tdata: {\n\t\t\t\t\tactionName: \"BROWSER_SELECT\",\n\t\t\t\t\terror: \"service_not_available\",\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terrorType: \"service_not_available\",\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst session = await service.getOrCreateSession();\n\t\tif (!session) {\n\t\t\tconst error = new SessionError(\"No active browser session\");\n\t\t\thandleBrowserError(\n\t\t\t\terror,\n\t\t\t\tcallback as (content: {\n\t\t\t\t\ttext: string;\n\t\t\t\t\terror?: boolean;\n\t\t\t\t}) => Promise<unknown>,\n\t\t\t\t\"select option\",\n\t\t\t);\n\t\t\treturn {\n\t\t\t\ttext: \"No active browser session\",\n\t\t\t\tsuccess: false,\n\t\t\t\tdata: {\n\t\t\t\t\tactionName: \"BROWSER_SELECT\",\n\t\t\t\t\terror: \"no_session\",\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terrorType: \"no_session\",\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst text = message.content?.text ?? \"\";\n\t\tconst match = text.match(/[\"']([^\"']+)[\"']/);\n\t\tconst option = match ? match[1] : \"\";\n\n\t\tconst dropdownMatch = text.match(/from (?:the )?(.+)$/i);\n\t\tconst dropdown = dropdownMatch ? dropdownMatch[1] : \"dropdown\";\n\n\t\tif (!option) {\n\t\t\tthrow new ActionError(\n\t\t\t\t\"select\",\n\t\t\t\tdropdown,\n\t\t\t\tnew Error(\"No option specified to select\"),\n\t\t\t);\n\t\t}\n\n\t\tconst result = await service\n\t\t\t.getClient()\n\t\t\t.select(session.id, option, dropdown);\n\t\tif (!result.success) {\n\t\t\tthrow new ActionError(\n\t\t\t\t\"select\",\n\t\t\t\tdropdown,\n\t\t\t\tnew Error(result.error ?? \"Select failed\"),\n\t\t\t);\n\t\t}\n\n\t\tconst responseContent: Content = {\n\t\t\ttext: `I've selected \"${option}\" from the ${dropdown}`,\n\t\t\tactions: [\"BROWSER_SELECT\"],\n\t\t\tsource: message.content?.source ?? \"action\",\n\t\t};\n\n\t\tawait callback?.(responseContent);\n\n\t\treturn {\n\t\t\ttext: responseContent.text ?? \"\",\n\t\t\tsuccess: true,\n\t\t\tdata: {\n\t\t\t\tactionName: \"BROWSER_SELECT\",\n\t\t\t\toption,\n\t\t\t\tdropdown,\n\t\t\t\tsessionId: session.id,\n\t\t\t},\n\t\t\tvalues: {\n\t\t\t\tsuccess: true,\n\t\t\t\toption,\n\t\t\t\tdropdown,\n\t\t\t},\n\t\t};\n\t},\n\n\texamples: [\n\t\t[\n\t\t\t{\n\t\t\t\tname: \"{{user}}\",\n\t\t\t\tcontent: { text: 'Select \"United States\" from the country dropdown' },\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"{{agent}}\",\n\t\t\t\tcontent: {\n\t\t\t\t\ttext: 'I\\'ve selected \"United States\" from the country dropdown.',\n\t\t\t\t\tactions: [\"BROWSER_SELECT\"],\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t],\n};\n"]}
@@ -1,3 +0,0 @@
1
- import type { Action } from "@elizaos/core";
2
- export declare const browserTypeAction: Action;
3
- //# sourceMappingURL=type.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/actions/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EAQN,MAAM,eAAe,CAAC;AAUvB,eAAO,MAAM,iBAAiB,EAAE,MAmP/B,CAAC"}
@@ -1,167 +0,0 @@
1
- import { ServiceType } from "@elizaos/core";
2
- import { ActionError, handleBrowserError, ServiceNotAvailableError, SessionError, } from "../utils/errors.js";
3
- export const browserTypeAction = {
4
- name: "BROWSER_TYPE",
5
- similes: ["TYPE_TEXT", "INPUT", "ENTER_TEXT"],
6
- description: "Type text into an input field on the webpage",
7
- validate: async (runtime, message, state, options) => {
8
- const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
9
- const __avText = __avTextRaw.toLowerCase();
10
- const __avKeywords = ["browser", "type"];
11
- const __avKeywordOk = __avKeywords.length > 0 &&
12
- __avKeywords.some((word) => word.length > 0 && __avText.includes(word));
13
- const __avRegex = /\b(?:browser|type)\b/i;
14
- const __avRegexOk = __avRegex.test(__avText);
15
- const __avSource = String(message?.content?.source ?? message?.source ?? "");
16
- const __avExpectedSource = "";
17
- const __avSourceOk = __avExpectedSource
18
- ? __avSource === __avExpectedSource
19
- : Boolean(__avSource ||
20
- state ||
21
- runtime?.agentId ||
22
- runtime?.getService ||
23
- runtime?.getSetting);
24
- const __avOptions = options && typeof options === "object" ? options : {};
25
- const __avInputOk = __avText.trim().length > 0 ||
26
- Object.keys(__avOptions).length > 0 ||
27
- Boolean(message?.content && typeof message.content === "object");
28
- if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
29
- return false;
30
- }
31
- const __avLegacyValidate = async (runtime, message, state, options) => {
32
- const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
33
- const __avText = __avTextRaw.toLowerCase();
34
- const __avKeywords = ["browser", "type"];
35
- const __avKeywordOk = __avKeywords.length > 0 &&
36
- __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
37
- const __avRegex = /\b(?:browser|type)\b/i;
38
- const __avRegexOk = __avRegex.test(__avText);
39
- const __avSource = String(message?.content?.source ?? message?.source ?? "");
40
- const __avExpectedSource = "";
41
- const __avSourceOk = __avExpectedSource
42
- ? __avSource === __avExpectedSource
43
- : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
44
- const __avOptions = options && typeof options === "object" ? options : {};
45
- const __avInputOk = __avText.trim().length > 0 ||
46
- Object.keys(__avOptions).length > 0 ||
47
- Boolean(message?.content && typeof message.content === "object");
48
- if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
49
- return false;
50
- }
51
- const __avLegacyValidate = async (runtime, message, _state) => {
52
- const browserEnabled = runtime.getSetting("ENABLE_BROWSER") === "true" ||
53
- runtime.getSetting("BROWSER_ENABLED") === "true";
54
- if (!browserEnabled) {
55
- return false;
56
- }
57
- const service = runtime.getService(ServiceType.BROWSER);
58
- if (!service) {
59
- return false;
60
- }
61
- const text = message.content?.text?.toLowerCase() ?? "";
62
- return (text.includes("type") ||
63
- text.includes("input") ||
64
- text.includes("enter"));
65
- };
66
- try {
67
- return Boolean(await __avLegacyValidate(runtime, message, state, options));
68
- }
69
- catch {
70
- return false;
71
- }
72
- };
73
- try {
74
- return Boolean(await __avLegacyValidate(runtime, message, state, options));
75
- }
76
- catch {
77
- return false;
78
- }
79
- },
80
- handler: async (runtime, message, _state, _options, callback, _responses) => {
81
- const service = runtime.getService(ServiceType.BROWSER);
82
- if (!service) {
83
- const error = new ServiceNotAvailableError();
84
- handleBrowserError(error, callback, "type text");
85
- return {
86
- text: "Browser service is not available",
87
- success: false,
88
- data: {
89
- actionName: "BROWSER_TYPE",
90
- error: "service_not_available",
91
- },
92
- values: {
93
- success: false,
94
- errorType: "service_not_available",
95
- },
96
- };
97
- }
98
- const session = await service.getOrCreateSession();
99
- if (!session) {
100
- const error = new SessionError("No active browser session");
101
- handleBrowserError(error, callback, "type text");
102
- return {
103
- text: "No active browser session",
104
- success: false,
105
- data: {
106
- actionName: "BROWSER_TYPE",
107
- error: "no_session",
108
- },
109
- values: {
110
- success: false,
111
- errorType: "no_session",
112
- },
113
- };
114
- }
115
- const text = message.content?.text ?? "";
116
- const match = text.match(/["']([^"']+)["']/);
117
- const textToType = match ? match[1] : "";
118
- const fieldMatch = text.match(/(?:in|into) (?:the )?(.+)$/i);
119
- const field = fieldMatch ? fieldMatch[1] : "input field";
120
- if (!textToType) {
121
- throw new ActionError("type", field, new Error("No text specified to type"));
122
- }
123
- const result = await service
124
- .getClient()
125
- .type(session.id, textToType, field);
126
- if (!result.success) {
127
- throw new ActionError("type", field, new Error(result.error ?? "Type failed"));
128
- }
129
- const responseContent = {
130
- text: `I've typed "${textToType}" in the ${field}`,
131
- actions: ["BROWSER_TYPE"],
132
- source: message.content?.source ?? "action",
133
- };
134
- await callback?.(responseContent);
135
- return {
136
- text: responseContent.text ?? "",
137
- success: true,
138
- data: {
139
- actionName: "BROWSER_TYPE",
140
- textTyped: textToType,
141
- field,
142
- sessionId: session.id,
143
- },
144
- values: {
145
- success: true,
146
- textTyped: textToType,
147
- field,
148
- },
149
- };
150
- },
151
- examples: [
152
- [
153
- {
154
- name: "{{user}}",
155
- content: { text: 'Type "hello world" in the search box' },
156
- },
157
- {
158
- name: "{{agent}}",
159
- content: {
160
- text: 'I\'ve typed "hello world" in the search box.',
161
- actions: ["BROWSER_TYPE"],
162
- },
163
- },
164
- ],
165
- ],
166
- };
167
- //# sourceMappingURL=type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/actions/type.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tAction,\n\tActionResult,\n\tContent,\n\tHandlerCallback,\n\tHandlerOptions,\n\tIAgentRuntime,\n\tMemory,\n\tState,\n} from \"@elizaos/core\";\nimport { ServiceType } from \"@elizaos/core\";\nimport type { BrowserService } from \"../services/browser-service.js\";\nimport {\n\tActionError,\n\thandleBrowserError,\n\tServiceNotAvailableError,\n\tSessionError,\n} from \"../utils/errors.js\";\n\nexport const browserTypeAction: Action = {\n\tname: \"BROWSER_TYPE\",\n\tsimiles: [\"TYPE_TEXT\", \"INPUT\", \"ENTER_TEXT\"],\n\tdescription: \"Type text into an input field on the webpage\",\n\n\tvalidate: async (\n\t\truntime: any,\n\t\tmessage: any,\n\t\tstate?: any,\n\t\toptions?: any,\n\t): Promise<boolean> => {\n\t\tconst __avTextRaw =\n\t\t\ttypeof message?.content?.text === \"string\" ? message.content.text : \"\";\n\t\tconst __avText = __avTextRaw.toLowerCase();\n\t\tconst __avKeywords = [\"browser\", \"type\"];\n\t\tconst __avKeywordOk =\n\t\t\t__avKeywords.length > 0 &&\n\t\t\t__avKeywords.some((word) => word.length > 0 && __avText.includes(word));\n\t\tconst __avRegex = /\\b(?:browser|type)\\b/i;\n\t\tconst __avRegexOk = __avRegex.test(__avText);\n\t\tconst __avSource = String(\n\t\t\tmessage?.content?.source ?? message?.source ?? \"\",\n\t\t);\n\t\tconst __avExpectedSource = \"\";\n\t\tconst __avSourceOk = __avExpectedSource\n\t\t\t? __avSource === __avExpectedSource\n\t\t\t: Boolean(\n\t\t\t\t\t__avSource ||\n\t\t\t\t\t\tstate ||\n\t\t\t\t\t\truntime?.agentId ||\n\t\t\t\t\t\truntime?.getService ||\n\t\t\t\t\t\truntime?.getSetting,\n\t\t\t\t);\n\t\tconst __avOptions = options && typeof options === \"object\" ? options : {};\n\t\tconst __avInputOk =\n\t\t\t__avText.trim().length > 0 ||\n\t\t\tObject.keys(__avOptions as Record<string, unknown>).length > 0 ||\n\t\t\tBoolean(message?.content && typeof message.content === \"object\");\n\n\t\tif (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst __avLegacyValidate = async (\n\t\t\truntime: any,\n\t\t\tmessage: any,\n\t\t\tstate?: any,\n\t\t\toptions?: any,\n\t\t): Promise<boolean> => {\n\t\t\tconst __avTextRaw =\n\t\t\t\ttypeof message?.content?.text === \"string\" ? message.content.text : \"\";\n\t\t\tconst __avText = __avTextRaw.toLowerCase();\n\t\t\tconst __avKeywords = [\"browser\", \"type\"];\n\t\t\tconst __avKeywordOk =\n\t\t\t\t__avKeywords.length > 0 &&\n\t\t\t\t__avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n\t\t\tconst __avRegex = /\\b(?:browser|type)\\b/i;\n\t\t\tconst __avRegexOk = __avRegex.test(__avText);\n\t\t\tconst __avSource = String(\n\t\t\t\tmessage?.content?.source ?? message?.source ?? \"\",\n\t\t\t);\n\t\t\tconst __avExpectedSource = \"\";\n\t\t\tconst __avSourceOk = __avExpectedSource\n\t\t\t\t? __avSource === __avExpectedSource\n\t\t\t\t: Boolean(\n\t\t\t\t\t\t__avSource || state || runtime?.agentId || runtime?.getService,\n\t\t\t\t\t);\n\t\t\tconst __avOptions = options && typeof options === \"object\" ? options : {};\n\t\t\tconst __avInputOk =\n\t\t\t\t__avText.trim().length > 0 ||\n\t\t\t\tObject.keys(__avOptions as Record<string, unknown>).length > 0 ||\n\t\t\t\tBoolean(message?.content && typeof message.content === \"object\");\n\n\t\t\tif (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst __avLegacyValidate = async (\n\t\t\t\truntime: IAgentRuntime,\n\t\t\t\tmessage: Memory,\n\t\t\t\t_state?: State,\n\t\t\t): Promise<boolean> => {\n\t\t\t\tconst browserEnabled =\n\t\t\t\t\truntime.getSetting(\"ENABLE_BROWSER\") === \"true\" ||\n\t\t\t\t\truntime.getSetting(\"BROWSER_ENABLED\") === \"true\";\n\n\t\t\t\tif (!browserEnabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst service = runtime.getService<BrowserService>(ServiceType.BROWSER);\n\t\t\t\tif (!service) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst text = message.content?.text?.toLowerCase() ?? \"\";\n\t\t\t\treturn (\n\t\t\t\t\ttext.includes(\"type\") ||\n\t\t\t\t\ttext.includes(\"input\") ||\n\t\t\t\t\ttext.includes(\"enter\")\n\t\t\t\t);\n\t\t\t};\n\t\t\ttry {\n\t\t\t\treturn Boolean(\n\t\t\t\t\tawait (__avLegacyValidate as any)(runtime, message, state, options),\n\t\t\t\t);\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\t\ttry {\n\t\t\treturn Boolean(\n\t\t\t\tawait (__avLegacyValidate as any)(runtime, message, state, options),\n\t\t\t);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t},\n\n\thandler: async (\n\t\truntime: IAgentRuntime,\n\t\tmessage: Memory,\n\t\t_state?: State,\n\t\t_options?: HandlerOptions,\n\t\tcallback?: HandlerCallback,\n\t\t_responses?: Memory[],\n\t): Promise<ActionResult | undefined> => {\n\t\tconst service = runtime.getService<BrowserService>(ServiceType.BROWSER);\n\t\tif (!service) {\n\t\t\tconst error = new ServiceNotAvailableError();\n\t\t\thandleBrowserError(\n\t\t\t\terror,\n\t\t\t\tcallback as (content: {\n\t\t\t\t\ttext: string;\n\t\t\t\t\terror?: boolean;\n\t\t\t\t}) => Promise<unknown>,\n\t\t\t\t\"type text\",\n\t\t\t);\n\t\t\treturn {\n\t\t\t\ttext: \"Browser service is not available\",\n\t\t\t\tsuccess: false,\n\t\t\t\tdata: {\n\t\t\t\t\tactionName: \"BROWSER_TYPE\",\n\t\t\t\t\terror: \"service_not_available\",\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terrorType: \"service_not_available\",\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst session = await service.getOrCreateSession();\n\t\tif (!session) {\n\t\t\tconst error = new SessionError(\"No active browser session\");\n\t\t\thandleBrowserError(\n\t\t\t\terror,\n\t\t\t\tcallback as (content: {\n\t\t\t\t\ttext: string;\n\t\t\t\t\terror?: boolean;\n\t\t\t\t}) => Promise<unknown>,\n\t\t\t\t\"type text\",\n\t\t\t);\n\t\t\treturn {\n\t\t\t\ttext: \"No active browser session\",\n\t\t\t\tsuccess: false,\n\t\t\t\tdata: {\n\t\t\t\t\tactionName: \"BROWSER_TYPE\",\n\t\t\t\t\terror: \"no_session\",\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terrorType: \"no_session\",\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst text = message.content?.text ?? \"\";\n\t\tconst match = text.match(/[\"']([^\"']+)[\"']/);\n\t\tconst textToType = match ? match[1] : \"\";\n\n\t\tconst fieldMatch = text.match(/(?:in|into) (?:the )?(.+)$/i);\n\t\tconst field = fieldMatch ? fieldMatch[1] : \"input field\";\n\n\t\tif (!textToType) {\n\t\t\tthrow new ActionError(\n\t\t\t\t\"type\",\n\t\t\t\tfield,\n\t\t\t\tnew Error(\"No text specified to type\"),\n\t\t\t);\n\t\t}\n\n\t\tconst result = await service\n\t\t\t.getClient()\n\t\t\t.type(session.id, textToType, field);\n\t\tif (!result.success) {\n\t\t\tthrow new ActionError(\n\t\t\t\t\"type\",\n\t\t\t\tfield,\n\t\t\t\tnew Error(result.error ?? \"Type failed\"),\n\t\t\t);\n\t\t}\n\n\t\tconst responseContent: Content = {\n\t\t\ttext: `I've typed \"${textToType}\" in the ${field}`,\n\t\t\tactions: [\"BROWSER_TYPE\"],\n\t\t\tsource: message.content?.source ?? \"action\",\n\t\t};\n\n\t\tawait callback?.(responseContent);\n\n\t\treturn {\n\t\t\ttext: responseContent.text ?? \"\",\n\t\t\tsuccess: true,\n\t\t\tdata: {\n\t\t\t\tactionName: \"BROWSER_TYPE\",\n\t\t\t\ttextTyped: textToType,\n\t\t\t\tfield,\n\t\t\t\tsessionId: session.id,\n\t\t\t},\n\t\t\tvalues: {\n\t\t\t\tsuccess: true,\n\t\t\t\ttextTyped: textToType,\n\t\t\t\tfield,\n\t\t\t},\n\t\t};\n\t},\n\n\texamples: [\n\t\t[\n\t\t\t{\n\t\t\t\tname: \"{{user}}\",\n\t\t\t\tcontent: { text: 'Type \"hello world\" in the search box' },\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"{{agent}}\",\n\t\t\t\tcontent: {\n\t\t\t\t\ttext: 'I\\'ve typed \"hello world\" in the search box.',\n\t\t\t\t\tactions: [\"BROWSER_TYPE\"],\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t],\n};\n"]}
@@ -1,8 +0,0 @@
1
- /**
2
- * Browser CLI module
3
- *
4
- * Provides CLI commands for the browser automation plugin.
5
- * Self-registers with the plugin-cli registry at module load.
6
- */
7
- export {};
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
package/dist/cli/index.js DELETED
@@ -1,13 +0,0 @@
1
- /**
2
- * Browser CLI module
3
- *
4
- * Provides CLI commands for the browser automation plugin.
5
- * Self-registers with the plugin-cli registry at module load.
6
- */
7
- import { defineCliCommand, registerCliCommand } from "@elizaos/plugin-cli";
8
- import { registerBrowserCli } from "./register.js";
9
- // Self-register at module load
10
- registerCliCommand(defineCliCommand("browser", "Browser automation commands", (ctx) => registerBrowserCli(ctx), {
11
- priority: 50,
12
- }));
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,+BAA+B;AAC/B,kBAAkB,CACjB,gBAAgB,CACf,SAAS,EACT,6BAA6B,EAC7B,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAChC;IACC,QAAQ,EAAE,EAAE;CACZ,CACD,CACD,CAAC","sourcesContent":["/**\n * Browser CLI module\n *\n * Provides CLI commands for the browser automation plugin.\n * Self-registers with the plugin-cli registry at module load.\n */\n\nimport { defineCliCommand, registerCliCommand } from \"@elizaos/plugin-cli\";\nimport { registerBrowserCli } from \"./register.js\";\n\n// Self-register at module load\nregisterCliCommand(\n\tdefineCliCommand(\n\t\t\"browser\",\n\t\t\"Browser automation commands\",\n\t\t(ctx) => registerBrowserCli(ctx),\n\t\t{\n\t\t\tpriority: 50,\n\t\t},\n\t),\n);\n"]}
@@ -1,20 +0,0 @@
1
- import type { CliContext } from "@elizaos/plugin-cli";
2
- /**
3
- * Register Browser CLI commands
4
- *
5
- * Commands:
6
- * - browser status: Show browser service status
7
- * - browser start: Start a browser session
8
- * - browser stop: Stop browser service
9
- * - browser navigate: Navigate to a URL
10
- * - browser click: Click an element
11
- * - browser type: Type text into a field
12
- * - browser select: Select an option from dropdown
13
- * - browser extract: Extract information from the page
14
- * - browser screenshot: Take a screenshot
15
- * - browser back/forward/refresh: Navigation controls
16
- *
17
- * @param ctx - CLI context with program and optional runtime
18
- */
19
- export declare function registerBrowserCli(ctx: CliContext): void;
20
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/cli/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAqDtD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CA4ZxD"}