@roxybrowser/playwright 2.0.2-beta.0

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 (424) hide show
  1. package/README.md +115 -0
  2. package/dist/apiRequestContext.d.ts +52 -0
  3. package/dist/apiRequestContext.d.ts.map +1 -0
  4. package/dist/apiRequestContext.js +632 -0
  5. package/dist/apiRequestContext.js.map +1 -0
  6. package/dist/ariaSnapshot.d.ts +38 -0
  7. package/dist/ariaSnapshot.d.ts.map +1 -0
  8. package/dist/ariaSnapshot.js +1137 -0
  9. package/dist/ariaSnapshot.js.map +1 -0
  10. package/dist/assertions.d.ts +2 -0
  11. package/dist/assertions.d.ts.map +1 -0
  12. package/dist/assertions.js +6 -0
  13. package/dist/assertions.js.map +1 -0
  14. package/dist/bin/roxybrowser-mcp.d.ts +3 -0
  15. package/dist/bin/roxybrowser-mcp.d.ts.map +1 -0
  16. package/dist/bin/roxybrowser-mcp.js +7 -0
  17. package/dist/bin/roxybrowser-mcp.js.map +1 -0
  18. package/dist/browser.d.ts +15 -0
  19. package/dist/browser.d.ts.map +1 -0
  20. package/dist/browser.js +67 -0
  21. package/dist/browser.js.map +1 -0
  22. package/dist/browserContext.d.ts +156 -0
  23. package/dist/browserContext.d.ts.map +1 -0
  24. package/dist/browserContext.js +1129 -0
  25. package/dist/browserContext.js.map +1 -0
  26. package/dist/browserContextClock.d.ts +54 -0
  27. package/dist/browserContextClock.d.ts.map +1 -0
  28. package/dist/browserContextClock.js +147 -0
  29. package/dist/browserContextClock.js.map +1 -0
  30. package/dist/browserType.d.ts +16 -0
  31. package/dist/browserType.d.ts.map +1 -0
  32. package/dist/browserType.js +68 -0
  33. package/dist/browserType.js.map +1 -0
  34. package/dist/bundle.d.ts +20 -0
  35. package/dist/bundle.d.ts.map +1 -0
  36. package/dist/bundle.js +20 -0
  37. package/dist/bundle.js.map +1 -0
  38. package/dist/clock.d.ts +43 -0
  39. package/dist/clock.d.ts.map +1 -0
  40. package/dist/clock.js +70 -0
  41. package/dist/clock.js.map +1 -0
  42. package/dist/elementHandle.d.ts +100 -0
  43. package/dist/elementHandle.d.ts.map +1 -0
  44. package/dist/elementHandle.js +423 -0
  45. package/dist/elementHandle.js.map +1 -0
  46. package/dist/errors.d.ts +10 -0
  47. package/dist/errors.d.ts.map +1 -0
  48. package/dist/errors.js +19 -0
  49. package/dist/errors.js.map +1 -0
  50. package/dist/evaluation.d.ts +4 -0
  51. package/dist/evaluation.d.ts.map +1 -0
  52. package/dist/evaluation.js +9 -0
  53. package/dist/evaluation.js.map +1 -0
  54. package/dist/frame.d.ts +139 -0
  55. package/dist/frame.d.ts.map +1 -0
  56. package/dist/frame.js +451 -0
  57. package/dist/frame.js.map +1 -0
  58. package/dist/httpHeaders.d.ts +6 -0
  59. package/dist/httpHeaders.d.ts.map +1 -0
  60. package/dist/httpHeaders.js +23 -0
  61. package/dist/httpHeaders.js.map +1 -0
  62. package/dist/human/controller.d.ts +15 -0
  63. package/dist/human/controller.d.ts.map +1 -0
  64. package/dist/human/controller.js +67 -0
  65. package/dist/human/controller.js.map +1 -0
  66. package/dist/human/profile.d.ts +5 -0
  67. package/dist/human/profile.d.ts.map +1 -0
  68. package/dist/human/profile.js +50 -0
  69. package/dist/human/profile.js.map +1 -0
  70. package/dist/human/types.d.ts +28 -0
  71. package/dist/human/types.d.ts.map +1 -0
  72. package/dist/human/types.js +2 -0
  73. package/dist/human/types.js.map +1 -0
  74. package/dist/index.d.ts +7 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +3 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/inputFiles.d.ts +18 -0
  79. package/dist/inputFiles.d.ts.map +1 -0
  80. package/dist/inputFiles.js +192 -0
  81. package/dist/inputFiles.js.map +1 -0
  82. package/dist/jsHandle.d.ts +32 -0
  83. package/dist/jsHandle.d.ts.map +1 -0
  84. package/dist/jsHandle.js +148 -0
  85. package/dist/jsHandle.js.map +1 -0
  86. package/dist/locator.d.ts +190 -0
  87. package/dist/locator.d.ts.map +1 -0
  88. package/dist/locator.js +883 -0
  89. package/dist/locator.js.map +1 -0
  90. package/dist/locatorSelectors.d.ts +11 -0
  91. package/dist/locatorSelectors.d.ts.map +1 -0
  92. package/dist/locatorSelectors.js +50 -0
  93. package/dist/locatorSelectors.js.map +1 -0
  94. package/dist/mcp/backend/common.d.ts +4 -0
  95. package/dist/mcp/backend/common.d.ts.map +1 -0
  96. package/dist/mcp/backend/common.js +40 -0
  97. package/dist/mcp/backend/common.js.map +1 -0
  98. package/dist/mcp/backend/connect.d.ts +10 -0
  99. package/dist/mcp/backend/connect.d.ts.map +1 -0
  100. package/dist/mcp/backend/connect.js +30 -0
  101. package/dist/mcp/backend/connect.js.map +1 -0
  102. package/dist/mcp/backend/console.d.ts +13 -0
  103. package/dist/mcp/backend/console.d.ts.map +1 -0
  104. package/dist/mcp/backend/console.js +36 -0
  105. package/dist/mcp/backend/console.js.map +1 -0
  106. package/dist/mcp/backend/context.d.ts +27 -0
  107. package/dist/mcp/backend/context.d.ts.map +1 -0
  108. package/dist/mcp/backend/context.js +33 -0
  109. package/dist/mcp/backend/context.js.map +1 -0
  110. package/dist/mcp/backend/dialogs.d.ts +7 -0
  111. package/dist/mcp/backend/dialogs.d.ts.map +1 -0
  112. package/dist/mcp/backend/dialogs.js +24 -0
  113. package/dist/mcp/backend/dialogs.js.map +1 -0
  114. package/dist/mcp/backend/evaluate.d.ts +9 -0
  115. package/dist/mcp/backend/evaluate.d.ts.map +1 -0
  116. package/dist/mcp/backend/evaluate.js +31 -0
  117. package/dist/mcp/backend/evaluate.js.map +1 -0
  118. package/dist/mcp/backend/files.d.ts +9 -0
  119. package/dist/mcp/backend/files.d.ts.map +1 -0
  120. package/dist/mcp/backend/files.js +39 -0
  121. package/dist/mcp/backend/files.js.map +1 -0
  122. package/dist/mcp/backend/keyboard.d.ts +22 -0
  123. package/dist/mcp/backend/keyboard.d.ts.map +1 -0
  124. package/dist/mcp/backend/keyboard.js +67 -0
  125. package/dist/mcp/backend/keyboard.js.map +1 -0
  126. package/dist/mcp/backend/navigate.d.ts +4 -0
  127. package/dist/mcp/backend/navigate.d.ts.map +1 -0
  128. package/dist/mcp/backend/navigate.js +82 -0
  129. package/dist/mcp/backend/navigate.js.map +1 -0
  130. package/dist/mcp/backend/network.d.ts +17 -0
  131. package/dist/mcp/backend/network.d.ts.map +1 -0
  132. package/dist/mcp/backend/network.js +144 -0
  133. package/dist/mcp/backend/network.js.map +1 -0
  134. package/dist/mcp/backend/response.d.ts +26 -0
  135. package/dist/mcp/backend/response.d.ts.map +1 -0
  136. package/dist/mcp/backend/response.js +109 -0
  137. package/dist/mcp/backend/response.js.map +1 -0
  138. package/dist/mcp/backend/runCode.d.ts +6 -0
  139. package/dist/mcp/backend/runCode.d.ts.map +1 -0
  140. package/dist/mcp/backend/runCode.js +20 -0
  141. package/dist/mcp/backend/runCode.js.map +1 -0
  142. package/dist/mcp/backend/screenshot.d.ts +13 -0
  143. package/dist/mcp/backend/screenshot.d.ts.map +1 -0
  144. package/dist/mcp/backend/screenshot.js +37 -0
  145. package/dist/mcp/backend/screenshot.js.map +1 -0
  146. package/dist/mcp/backend/snapshot.d.ts +70 -0
  147. package/dist/mcp/backend/snapshot.d.ts.map +1 -0
  148. package/dist/mcp/backend/snapshot.js +185 -0
  149. package/dist/mcp/backend/snapshot.js.map +1 -0
  150. package/dist/mcp/backend/tab.d.ts +72 -0
  151. package/dist/mcp/backend/tab.d.ts.map +1 -0
  152. package/dist/mcp/backend/tab.js +99 -0
  153. package/dist/mcp/backend/tab.js.map +1 -0
  154. package/dist/mcp/backend/tabs.d.ts +13 -0
  155. package/dist/mcp/backend/tabs.d.ts.map +1 -0
  156. package/dist/mcp/backend/tabs.js +44 -0
  157. package/dist/mcp/backend/tabs.js.map +1 -0
  158. package/dist/mcp/backend/tool.d.ts +52 -0
  159. package/dist/mcp/backend/tool.d.ts.map +1 -0
  160. package/dist/mcp/backend/tool.js +28 -0
  161. package/dist/mcp/backend/tool.js.map +1 -0
  162. package/dist/mcp/backend/tools.d.ts +4 -0
  163. package/dist/mcp/backend/tools.d.ts.map +1 -0
  164. package/dist/mcp/backend/tools.js +30 -0
  165. package/dist/mcp/backend/tools.js.map +1 -0
  166. package/dist/mcp/connectedBrowser.d.ts +3 -0
  167. package/dist/mcp/connectedBrowser.d.ts.map +1 -0
  168. package/dist/mcp/connectedBrowser.js +2153 -0
  169. package/dist/mcp/connectedBrowser.js.map +1 -0
  170. package/dist/mcp/errors.d.ts +6 -0
  171. package/dist/mcp/errors.d.ts.map +1 -0
  172. package/dist/mcp/errors.js +12 -0
  173. package/dist/mcp/errors.js.map +1 -0
  174. package/dist/mcp/format.d.ts +12 -0
  175. package/dist/mcp/format.d.ts.map +1 -0
  176. package/dist/mcp/format.js +48 -0
  177. package/dist/mcp/format.js.map +1 -0
  178. package/dist/mcp/index.d.ts +6 -0
  179. package/dist/mcp/index.d.ts.map +1 -0
  180. package/dist/mcp/index.js +5 -0
  181. package/dist/mcp/index.js.map +1 -0
  182. package/dist/mcp/output.d.ts +7 -0
  183. package/dist/mcp/output.d.ts.map +1 -0
  184. package/dist/mcp/output.js +39 -0
  185. package/dist/mcp/output.js.map +1 -0
  186. package/dist/mcp/runtime.d.ts +122 -0
  187. package/dist/mcp/runtime.d.ts.map +1 -0
  188. package/dist/mcp/runtime.js +524 -0
  189. package/dist/mcp/runtime.js.map +1 -0
  190. package/dist/mcp/schemas.d.ts +61 -0
  191. package/dist/mcp/schemas.d.ts.map +1 -0
  192. package/dist/mcp/schemas.js +41 -0
  193. package/dist/mcp/schemas.js.map +1 -0
  194. package/dist/mcp/server.d.ts +3 -0
  195. package/dist/mcp/server.d.ts.map +1 -0
  196. package/dist/mcp/server.js +117 -0
  197. package/dist/mcp/server.js.map +1 -0
  198. package/dist/mcp/snapshot.d.ts +3 -0
  199. package/dist/mcp/snapshot.d.ts.map +1 -0
  200. package/dist/mcp/snapshot.js +3 -0
  201. package/dist/mcp/snapshot.js.map +1 -0
  202. package/dist/mcp/tool.d.ts +19 -0
  203. package/dist/mcp/tool.d.ts.map +1 -0
  204. package/dist/mcp/tool.js +10 -0
  205. package/dist/mcp/tool.js.map +1 -0
  206. package/dist/mcp/tools/common.d.ts +6 -0
  207. package/dist/mcp/tools/common.d.ts.map +1 -0
  208. package/dist/mcp/tools/common.js +34 -0
  209. package/dist/mcp/tools/common.js.map +1 -0
  210. package/dist/mcp/tools/connect.d.ts +6 -0
  211. package/dist/mcp/tools/connect.d.ts.map +1 -0
  212. package/dist/mcp/tools/connect.js +28 -0
  213. package/dist/mcp/tools/connect.js.map +1 -0
  214. package/dist/mcp/tools/console.d.ts +6 -0
  215. package/dist/mcp/tools/console.d.ts.map +1 -0
  216. package/dist/mcp/tools/console.js +36 -0
  217. package/dist/mcp/tools/console.js.map +1 -0
  218. package/dist/mcp/tools/dialog.d.ts +6 -0
  219. package/dist/mcp/tools/dialog.d.ts.map +1 -0
  220. package/dist/mcp/tools/dialog.js +22 -0
  221. package/dist/mcp/tools/dialog.js.map +1 -0
  222. package/dist/mcp/tools/evaluate.d.ts +6 -0
  223. package/dist/mcp/tools/evaluate.d.ts.map +1 -0
  224. package/dist/mcp/tools/evaluate.js +31 -0
  225. package/dist/mcp/tools/evaluate.js.map +1 -0
  226. package/dist/mcp/tools/form.d.ts +6 -0
  227. package/dist/mcp/tools/form.d.ts.map +1 -0
  228. package/dist/mcp/tools/form.js +129 -0
  229. package/dist/mcp/tools/form.js.map +1 -0
  230. package/dist/mcp/tools/index.d.ts +3 -0
  231. package/dist/mcp/tools/index.d.ts.map +1 -0
  232. package/dist/mcp/tools/index.js +7 -0
  233. package/dist/mcp/tools/index.js.map +1 -0
  234. package/dist/mcp/tools/keyboard.d.ts +3 -0
  235. package/dist/mcp/tools/keyboard.d.ts.map +1 -0
  236. package/dist/mcp/tools/keyboard.js +44 -0
  237. package/dist/mcp/tools/keyboard.js.map +1 -0
  238. package/dist/mcp/tools/mouse.d.ts +3 -0
  239. package/dist/mcp/tools/mouse.d.ts.map +1 -0
  240. package/dist/mcp/tools/mouse.js +89 -0
  241. package/dist/mcp/tools/mouse.js.map +1 -0
  242. package/dist/mcp/tools/navigate.d.ts +6 -0
  243. package/dist/mcp/tools/navigate.d.ts.map +1 -0
  244. package/dist/mcp/tools/navigate.js +74 -0
  245. package/dist/mcp/tools/navigate.js.map +1 -0
  246. package/dist/mcp/tools/network.d.ts +6 -0
  247. package/dist/mcp/tools/network.d.ts.map +1 -0
  248. package/dist/mcp/tools/network.js +142 -0
  249. package/dist/mcp/tools/network.js.map +1 -0
  250. package/dist/mcp/tools/runCode.d.ts +6 -0
  251. package/dist/mcp/tools/runCode.d.ts.map +1 -0
  252. package/dist/mcp/tools/runCode.js +24 -0
  253. package/dist/mcp/tools/runCode.js.map +1 -0
  254. package/dist/mcp/tools/screenshot.d.ts +6 -0
  255. package/dist/mcp/tools/screenshot.d.ts.map +1 -0
  256. package/dist/mcp/tools/screenshot.js +46 -0
  257. package/dist/mcp/tools/screenshot.js.map +1 -0
  258. package/dist/mcp/tools/snapshot.d.ts +6 -0
  259. package/dist/mcp/tools/snapshot.d.ts.map +1 -0
  260. package/dist/mcp/tools/snapshot.js +56 -0
  261. package/dist/mcp/tools/snapshot.js.map +1 -0
  262. package/dist/mcp/tools/tabs.d.ts +6 -0
  263. package/dist/mcp/tools/tabs.d.ts.map +1 -0
  264. package/dist/mcp/tools/tabs.js +34 -0
  265. package/dist/mcp/tools/tabs.js.map +1 -0
  266. package/dist/mcp/transports/http.d.ts +3 -0
  267. package/dist/mcp/transports/http.d.ts.map +1 -0
  268. package/dist/mcp/transports/http.js +134 -0
  269. package/dist/mcp/transports/http.js.map +1 -0
  270. package/dist/mcp/transports/inMemory.d.ts +3 -0
  271. package/dist/mcp/transports/inMemory.d.ts.map +1 -0
  272. package/dist/mcp/transports/inMemory.js +18 -0
  273. package/dist/mcp/transports/inMemory.js.map +1 -0
  274. package/dist/mcp/transports/stdio.d.ts +3 -0
  275. package/dist/mcp/transports/stdio.d.ts.map +1 -0
  276. package/dist/mcp/transports/stdio.js +16 -0
  277. package/dist/mcp/transports/stdio.js.map +1 -0
  278. package/dist/mcp/types.d.ts +193 -0
  279. package/dist/mcp/types.d.ts.map +1 -0
  280. package/dist/mcp/types.js +2 -0
  281. package/dist/mcp/types.js.map +1 -0
  282. package/dist/navigationResult.d.ts +10 -0
  283. package/dist/navigationResult.d.ts.map +1 -0
  284. package/dist/navigationResult.js +15 -0
  285. package/dist/navigationResult.js.map +1 -0
  286. package/dist/page.d.ts +907 -0
  287. package/dist/page.d.ts.map +1 -0
  288. package/dist/page.js +6385 -0
  289. package/dist/page.js.map +1 -0
  290. package/dist/pageApiReport.d.ts +31 -0
  291. package/dist/pageApiReport.d.ts.map +1 -0
  292. package/dist/pageApiReport.js +218 -0
  293. package/dist/pageApiReport.js.map +1 -0
  294. package/dist/pageResponse.d.ts +18 -0
  295. package/dist/pageResponse.d.ts.map +1 -0
  296. package/dist/pageResponse.js +23 -0
  297. package/dist/pageResponse.js.map +1 -0
  298. package/dist/processCleanup.d.ts +8 -0
  299. package/dist/processCleanup.d.ts.map +1 -0
  300. package/dist/processCleanup.js +413 -0
  301. package/dist/processCleanup.js.map +1 -0
  302. package/dist/protocol/adapter.d.ts +406 -0
  303. package/dist/protocol/adapter.d.ts.map +1 -0
  304. package/dist/protocol/adapter.js +8 -0
  305. package/dist/protocol/adapter.js.map +1 -0
  306. package/dist/protocol/bidi/backend.d.ts +8 -0
  307. package/dist/protocol/bidi/backend.d.ts.map +1 -0
  308. package/dist/protocol/bidi/backend.js +3616 -0
  309. package/dist/protocol/bidi/backend.js.map +1 -0
  310. package/dist/protocol/bidi/client.d.ts +104 -0
  311. package/dist/protocol/bidi/client.d.ts.map +1 -0
  312. package/dist/protocol/bidi/client.js +228 -0
  313. package/dist/protocol/bidi/client.js.map +1 -0
  314. package/dist/protocol/capabilities.d.ts +11 -0
  315. package/dist/protocol/capabilities.d.ts.map +1 -0
  316. package/dist/protocol/capabilities.js +2 -0
  317. package/dist/protocol/capabilities.js.map +1 -0
  318. package/dist/protocol/cdp/backend.d.ts +24 -0
  319. package/dist/protocol/cdp/backend.d.ts.map +1 -0
  320. package/dist/protocol/cdp/backend.js +8428 -0
  321. package/dist/protocol/cdp/backend.js.map +1 -0
  322. package/dist/protocol/evaluate.d.ts +2 -0
  323. package/dist/protocol/evaluate.d.ts.map +1 -0
  324. package/dist/protocol/evaluate.js +14 -0
  325. package/dist/protocol/evaluate.js.map +1 -0
  326. package/dist/protocol/evaluationSerializer.d.ts +6 -0
  327. package/dist/protocol/evaluationSerializer.d.ts.map +1 -0
  328. package/dist/protocol/evaluationSerializer.js +234 -0
  329. package/dist/protocol/evaluationSerializer.js.map +1 -0
  330. package/dist/protocol/keyboardInput.d.ts +34 -0
  331. package/dist/protocol/keyboardInput.d.ts.map +1 -0
  332. package/dist/protocol/keyboardInput.js +246 -0
  333. package/dist/protocol/keyboardInput.js.map +1 -0
  334. package/dist/protocol/routing.d.ts +40 -0
  335. package/dist/protocol/routing.d.ts.map +1 -0
  336. package/dist/protocol/routing.js +2 -0
  337. package/dist/protocol/routing.js.map +1 -0
  338. package/dist/protocol/selectorRuntime.d.ts +30 -0
  339. package/dist/protocol/selectorRuntime.d.ts.map +1 -0
  340. package/dist/protocol/selectorRuntime.js +1814 -0
  341. package/dist/protocol/selectorRuntime.js.map +1 -0
  342. package/dist/protocol/webdriver-classic/backend.d.ts +6 -0
  343. package/dist/protocol/webdriver-classic/backend.d.ts.map +1 -0
  344. package/dist/protocol/webdriver-classic/backend.js +158 -0
  345. package/dist/protocol/webdriver-classic/backend.js.map +1 -0
  346. package/dist/routeHandler.d.ts +15 -0
  347. package/dist/routeHandler.d.ts.map +1 -0
  348. package/dist/routeHandler.js +2 -0
  349. package/dist/routeHandler.js.map +1 -0
  350. package/dist/roxybrowser.bundle.js +78236 -0
  351. package/dist/roxybrowser.bundle.js.map +1 -0
  352. package/dist/screencast.d.ts +57 -0
  353. package/dist/screencast.d.ts.map +1 -0
  354. package/dist/screencast.js +155 -0
  355. package/dist/screencast.js.map +1 -0
  356. package/dist/screencastActions.d.ts +2 -0
  357. package/dist/screencastActions.d.ts.map +1 -0
  358. package/dist/screencastActions.js +183 -0
  359. package/dist/screencastActions.js.map +1 -0
  360. package/dist/screencastOverlay.d.ts +3 -0
  361. package/dist/screencastOverlay.d.ts.map +1 -0
  362. package/dist/screencastOverlay.js +119 -0
  363. package/dist/screencastOverlay.js.map +1 -0
  364. package/dist/screenshotOptions.d.ts +26 -0
  365. package/dist/screenshotOptions.d.ts.map +1 -0
  366. package/dist/screenshotOptions.js +171 -0
  367. package/dist/screenshotOptions.js.map +1 -0
  368. package/dist/screenshotPreparation.d.ts +21 -0
  369. package/dist/screenshotPreparation.d.ts.map +1 -0
  370. package/dist/screenshotPreparation.js +199 -0
  371. package/dist/screenshotPreparation.js.map +1 -0
  372. package/dist/selectOptionValues.d.ts +10 -0
  373. package/dist/selectOptionValues.d.ts.map +1 -0
  374. package/dist/selectOptionValues.js +60 -0
  375. package/dist/selectOptionValues.js.map +1 -0
  376. package/dist/selectors.d.ts +3 -0
  377. package/dist/selectors.d.ts.map +1 -0
  378. package/dist/selectors.js +287 -0
  379. package/dist/selectors.js.map +1 -0
  380. package/dist/types/api.d.ts +2164 -0
  381. package/dist/types/api.d.ts.map +1 -0
  382. package/dist/types/api.js +2 -0
  383. package/dist/types/api.js.map +1 -0
  384. package/dist/types/events.d.ts +158 -0
  385. package/dist/types/events.d.ts.map +1 -0
  386. package/dist/types/events.js +2 -0
  387. package/dist/types/events.js.map +1 -0
  388. package/dist/types/options.d.ts +263 -0
  389. package/dist/types/options.d.ts.map +1 -0
  390. package/dist/types/options.js +2 -0
  391. package/dist/types/options.js.map +1 -0
  392. package/dist/urlMatch.d.ts +19 -0
  393. package/dist/urlMatch.d.ts.map +1 -0
  394. package/dist/urlMatch.js +183 -0
  395. package/dist/urlMatch.js.map +1 -0
  396. package/dist/utilityScriptSerializers.d.ts +61 -0
  397. package/dist/utilityScriptSerializers.d.ts.map +1 -0
  398. package/dist/utilityScriptSerializers.js +297 -0
  399. package/dist/utilityScriptSerializers.js.map +1 -0
  400. package/dist/vendor/playwright/ariaSnapshotEvaluate.d.ts +2 -0
  401. package/dist/vendor/playwright/ariaSnapshotEvaluate.d.ts.map +1 -0
  402. package/dist/vendor/playwright/ariaSnapshotEvaluate.js +207 -0
  403. package/dist/vendor/playwright/ariaSnapshotEvaluate.js.map +1 -0
  404. package/dist/vendor/playwright/generated/clockSource.d.ts +9 -0
  405. package/dist/vendor/playwright/generated/clockSource.d.ts.map +1 -0
  406. package/dist/vendor/playwright/generated/clockSource.js +9 -0
  407. package/dist/vendor/playwright/generated/clockSource.js.map +1 -0
  408. package/dist/vendor/playwright/generated/injectedScriptSource.d.ts +9 -0
  409. package/dist/vendor/playwright/generated/injectedScriptSource.d.ts.map +1 -0
  410. package/dist/vendor/playwright/generated/injectedScriptSource.js +9 -0
  411. package/dist/vendor/playwright/generated/injectedScriptSource.js.map +1 -0
  412. package/dist/video.d.ts +39 -0
  413. package/dist/video.d.ts.map +1 -0
  414. package/dist/video.js +235 -0
  415. package/dist/video.js.map +1 -0
  416. package/dist/waitForSelector.d.ts +7 -0
  417. package/dist/waitForSelector.d.ts.map +1 -0
  418. package/dist/waitForSelector.js +23 -0
  419. package/dist/waitForSelector.js.map +1 -0
  420. package/dist/worker.d.ts +45 -0
  421. package/dist/worker.d.ts.map +1 -0
  422. package/dist/worker.js +192 -0
  423. package/dist/worker.js.map +1 -0
  424. package/package.json +82 -0
@@ -0,0 +1,3 @@
1
+ import type { CreateRoxyBrowserMcpServerOptions, RoxyBrowserMcpServerBundle } from "./types.js";
2
+ export declare function createRoxyBrowserMcpServer(options?: CreateRoxyBrowserMcpServerOptions): RoxyBrowserMcpServerBundle;
3
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,iCAAiC,EACjC,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAapB,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CA2E5B"}
@@ -0,0 +1,117 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
3
+ import { toJsonSchemaCompat } from "@modelcontextprotocol/sdk/server/zod-json-schema-compat.js";
4
+ import { Context } from "./backend/context.js";
5
+ import { Response } from "./backend/response.js";
6
+ import { browserTools as allBackendTools } from "./backend/tools.js";
7
+ import { isMcpToolError } from "./errors.js";
8
+ import { textResult } from "./tool.js";
9
+ import { allTools } from "./tools/index.js";
10
+ import { McpRuntimeManager } from "./runtime.js";
11
+ function toolErrorResult(error) {
12
+ if (isMcpToolError(error)) {
13
+ return textResult(`[${error.code}] ${error.message}`, true);
14
+ }
15
+ const message = error instanceof Error ? error.message : String(error);
16
+ return textResult(message, true);
17
+ }
18
+ export function createRoxyBrowserMcpServer(options = {}) {
19
+ const runtimeManager = new McpRuntimeManager(options.sessionFactory, {
20
+ ...(options.snapshotMode !== undefined ? { snapshotMode: options.snapshotMode } : {}),
21
+ ...(options.outputDir !== undefined ? { outputDir: options.outputDir } : {})
22
+ });
23
+ const server = new McpServer({
24
+ name: options.serverInfo?.name ?? "roxybrowser-mcp",
25
+ version: options.serverInfo?.version ?? "0.1.0"
26
+ });
27
+ const backendToolNames = new Set(allBackendTools.map((tool) => tool.schema.name));
28
+ const legacyTools = allTools.filter((tool) => !backendToolNames.has(tool.schema.name));
29
+ const registeredTools = [...legacyTools, ...allBackendTools];
30
+ for (const tool of legacyTools) {
31
+ server.registerTool(tool.schema.name, {
32
+ title: tool.schema.title,
33
+ description: tool.schema.description,
34
+ inputSchema: tool.schema.inputSchema.shape
35
+ }, async (args, extra) => {
36
+ try {
37
+ const runtime = runtimeManager.getRuntime(extra.sessionId);
38
+ return await tool.handle(args, runtime);
39
+ }
40
+ catch (error) {
41
+ return toolErrorResult(error);
42
+ }
43
+ });
44
+ }
45
+ for (const tool of allBackendTools) {
46
+ server.registerTool(tool.schema.name, {
47
+ title: tool.schema.title,
48
+ description: tool.schema.description,
49
+ inputSchema: tool.schema.inputSchema.shape
50
+ }, async (args, extra) => {
51
+ try {
52
+ const runtime = runtimeManager.getRuntime(extra.sessionId);
53
+ const context = new Context(runtime, {
54
+ ...(options.outputDir !== undefined ? { outputDir: options.outputDir } : {}),
55
+ ...(options.snapshotMode !== undefined
56
+ ? {
57
+ snapshot: {
58
+ mode: options.snapshotMode
59
+ }
60
+ }
61
+ : {})
62
+ });
63
+ const response = new Response(context, tool.schema.name, args);
64
+ await tool.handle(context, args, response);
65
+ return await response.serialize();
66
+ }
67
+ catch (error) {
68
+ return toolErrorResult(error);
69
+ }
70
+ });
71
+ }
72
+ registerListedToolSchemaOverrides(server, registeredTools);
73
+ return {
74
+ server,
75
+ runtimeManager,
76
+ close: async () => {
77
+ await runtimeManager.closeAll();
78
+ if (server.isConnected()) {
79
+ await server.close();
80
+ }
81
+ }
82
+ };
83
+ }
84
+ function registerListedToolSchemaOverrides(server, tools) {
85
+ const listedInputSchemas = new Map(tools
86
+ .filter((tool) => hasListedInputSchema(tool))
87
+ .map((tool) => [tool.schema.name, tool.schema.listedInputSchema]));
88
+ if (listedInputSchemas.size === 0) {
89
+ return;
90
+ }
91
+ const toolDefinitions = tools.map((tool) => ({
92
+ name: tool.schema.name,
93
+ title: tool.schema.title,
94
+ description: tool.schema.description,
95
+ inputSchema: listedInputSchemas.get(tool.schema.name)
96
+ ?? objectInputSchema(toJsonSchemaCompat(tool.schema.inputSchema, {
97
+ strictUnions: true,
98
+ pipeStrategy: "input"
99
+ }))
100
+ }));
101
+ server.server.setRequestHandler(ListToolsRequestSchema, () => ({
102
+ tools: toolDefinitions
103
+ }));
104
+ }
105
+ function objectInputSchema(schema) {
106
+ if (isRecord(schema) && schema.type === "object") {
107
+ return schema;
108
+ }
109
+ throw new Error("MCP tool input schema must be a JSON object schema.");
110
+ }
111
+ function isRecord(value) {
112
+ return typeof value === "object" && value !== null;
113
+ }
114
+ function hasListedInputSchema(tool) {
115
+ return "listedInputSchema" in tool.schema;
116
+ }
117
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { ACTION_POINT_EVALUATE_SOURCE, ACTION_POINT_BY_SELECTOR_SOURCE } from "../ariaSnapshot.js";
2
+ export { PLAYWRIGHT_ARIA_SNAPSHOT_EVALUATE_SOURCE as SNAPSHOT_EVALUATE_SOURCE } from "../vendor/playwright/ariaSnapshotEvaluate.js";
3
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/mcp/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wCAAwC,IAAI,wBAAwB,EACrE,MAAM,8CAA8C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ACTION_POINT_EVALUATE_SOURCE, ACTION_POINT_BY_SELECTOR_SOURCE } from "../ariaSnapshot.js";
2
+ export { PLAYWRIGHT_ARIA_SNAPSHOT_EVALUATE_SOURCE as SNAPSHOT_EVALUATE_SOURCE } from "../vendor/playwright/ariaSnapshotEvaluate.js";
3
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/mcp/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wCAAwC,IAAI,wBAAwB,EACrE,MAAM,8CAA8C,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+ import type { CallToolResult, Tool as McpToolDefinition } from "@modelcontextprotocol/sdk/types.js";
3
+ import type { McpRuntime } from "./runtime.js";
4
+ type AnyZodObject = z.ZodObject<z.ZodRawShape>;
5
+ export type ToolSchema<Input extends AnyZodObject = AnyZodObject> = {
6
+ name: string;
7
+ title: string;
8
+ description: string;
9
+ inputSchema: Input;
10
+ listedInputSchema?: McpToolDefinition["inputSchema"];
11
+ };
12
+ export type Tool<Input extends AnyZodObject = AnyZodObject> = {
13
+ schema: ToolSchema<Input>;
14
+ handle: (args: z.output<Input>, runtime: McpRuntime) => Promise<CallToolResult>;
15
+ };
16
+ export declare function defineTool<Input extends AnyZodObject>(tool: Tool<Input>): Tool;
17
+ export declare function textResult(text: string, isError?: boolean): CallToolResult;
18
+ export {};
19
+ //# sourceMappingURL=tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/mcp/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,IAAI,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,KAAK,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAE/C,MAAM,MAAM,UAAU,CAAC,KAAK,SAAS,YAAY,GAAG,YAAY,IAAI;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC;IACnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,IAAI,CAAC,KAAK,SAAS,YAAY,GAAG,YAAY,IAAI;IAC5D,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACjF,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,SAAS,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAE9E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,cAAc,CAKxE"}
@@ -0,0 +1,10 @@
1
+ export function defineTool(tool) {
2
+ return tool;
3
+ }
4
+ export function textResult(text, isError = false) {
5
+ return {
6
+ content: [{ type: "text", text }],
7
+ ...(isError ? { isError: true } : {})
8
+ };
9
+ }
10
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/mcp/tool.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,UAAU,CAA6B,IAAiB;IACtE,OAAO,IAAuB,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAO,GAAG,KAAK;IACtD,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+ declare const _default: import("../tool.js").Tool<z.ZodObject<Readonly<{
3
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
4
+ }>, z.core.$strip>>[];
5
+ export default _default;
6
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAkCxB,wBAA+B"}
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ import { defineTool, textResult } from "../tool.js";
3
+ import { formatSnapshot, formatTabs } from "../format.js";
4
+ const close = defineTool({
5
+ schema: {
6
+ name: "browser_close",
7
+ title: "Close browser",
8
+ description: "Close the page",
9
+ inputSchema: z.object({})
10
+ },
11
+ handle: async (_args, runtime) => {
12
+ await runtime.close();
13
+ return textResult(formatTabs([]));
14
+ }
15
+ });
16
+ const resize = defineTool({
17
+ schema: {
18
+ name: "browser_resize",
19
+ title: "Resize browser window",
20
+ description: "Resize the browser window",
21
+ inputSchema: z.object({
22
+ width: z.number().describe("Width of the browser window"),
23
+ height: z.number().describe("Height of the browser window")
24
+ })
25
+ },
26
+ handle: async (args, runtime) => {
27
+ const snap = await runtime.resize(args.width, args.height);
28
+ if (!snap)
29
+ return textResult(`Resized browser window to ${args.width}x${args.height}.`);
30
+ return textResult(formatSnapshot(snap));
31
+ }
32
+ });
33
+ export default [close, resize];
34
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/mcp/tools/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,KAAK,GAAG,UAAU,CAAC;IACvB,MAAM,EAAE;QACN,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1B;IACD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,UAAU,CAAC;IACxB,MAAM,EAAE;QACN,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACzD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SAC5D,CAAC;KACH;IACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI;YAAE,OAAO,UAAU,CAAC,6BAA6B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACxF,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+ declare const _default: import("../tool.js").Tool<z.ZodObject<Readonly<{
3
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
4
+ }>, z.core.$strip>>[];
5
+ export default _default;
6
+ //# sourceMappingURL=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AA8BxB,wBAAyB"}
@@ -0,0 +1,28 @@
1
+ import { z } from "zod";
2
+ import { defineTool, textResult } from "../tool.js";
3
+ import { formatConnectResult } from "../format.js";
4
+ const connect = defineTool({
5
+ schema: {
6
+ name: "roxy_browser_connect",
7
+ title: "Roxy Browser Connect",
8
+ description: "Attach to an existing browser and seed the active tab snapshot.",
9
+ inputSchema: z.object({
10
+ endpoint: z.string().min(1),
11
+ browser: z.enum(["chrome", "firefox"]).default("chrome")
12
+ })
13
+ },
14
+ handle: async (args, runtime) => {
15
+ const protocol = args.browser === "firefox" ? "bidi" : "cdp";
16
+ const result = await runtime.connect({
17
+ protocol,
18
+ endpoint: args.endpoint,
19
+ browser: args.browser === "chrome" ? "chromium" : args.browser
20
+ });
21
+ return textResult(formatConnectResult({
22
+ ...result,
23
+ browserName: result.browserName === "chromium" ? "chrome" : result.browserName
24
+ }));
25
+ }
26
+ });
27
+ export default [connect];
28
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/mcp/tools/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,OAAO,GAAG,UAAU,CAAC;IACzB,MAAM,EAAE;QACN,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,iEAAiE;QAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;SACzD,CAAC;KACH;IACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YACnC,QAAQ;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;SAC/D,CAAC,CAAC;QACH,OAAO,UAAU,CACf,mBAAmB,CAAC;YAClB,GAAG,MAAM;YACT,WAAW,EAAE,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW;SAC/E,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+ declare const _default: import("../tool.js").Tool<z.ZodObject<Readonly<{
3
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
4
+ }>, z.core.$strip>>[];
5
+ export default _default;
6
+ //# sourceMappingURL=console.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/console.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAmCxB,wBAAiC"}
@@ -0,0 +1,36 @@
1
+ import { writeFile } from "node:fs/promises";
2
+ import { z } from "zod";
3
+ import { defineTool, textResult } from "../tool.js";
4
+ import { resolveOutputFilePath } from "../output.js";
5
+ const consoleMessages = defineTool({
6
+ schema: {
7
+ name: "browser_console_messages",
8
+ title: "Get console messages",
9
+ description: "Returns all console messages",
10
+ inputSchema: z.object({
11
+ level: z.enum(["error", "warning", "info", "debug"]).default("info").describe('Level of the console messages to return. Each level includes the messages of more severe levels. Defaults to "info".'),
12
+ all: z.boolean().optional().describe("Return all console messages since the beginning of the session, not just since the last navigation. Defaults to false."),
13
+ filename: z.string().optional().describe("Filename to save the console messages to. If not provided, messages are returned as text.")
14
+ })
15
+ },
16
+ handle: async (args, runtime) => {
17
+ const messages = await runtime.consoleMessages(args.level, args.all);
18
+ const errors = messages.filter((message) => message.type === "error" || message.type === "assert").length;
19
+ const warnings = messages.filter((message) => message.type === "warning").length;
20
+ const text = [
21
+ `Total messages: ${messages.length} (Errors: ${errors}, Warnings: ${warnings})`,
22
+ "",
23
+ ...messages.map((message) => message.formattedText)
24
+ ].join("\n");
25
+ if (args.filename) {
26
+ const resolvedFilename = await resolveOutputFilePath(args.filename, {
27
+ outputDir: runtime.getOutputDir()
28
+ });
29
+ await writeFile(resolvedFilename, text);
30
+ return textResult(`Saved console messages to "${resolvedFilename}".`);
31
+ }
32
+ return textResult(text);
33
+ }
34
+ });
35
+ export default [consoleMessages];
36
+ //# sourceMappingURL=console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/mcp/tools/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,eAAe,GAAG,UAAU,CAAC;IACjC,MAAM,EAAE;QACN,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,sHAAsH,CAAC;YACrM,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wHAAwH,CAAC;YAC9J,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2FAA2F,CAAC;SACtI,CAAC;KACH;IACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC1G,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACjF,MAAM,IAAI,GAAG;YACX,mBAAmB,QAAQ,CAAC,MAAM,aAAa,MAAM,eAAe,QAAQ,GAAG;YAC/E,EAAE;YACF,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;SACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClE,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE;aAClC,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,UAAU,CAAC,8BAA8B,gBAAgB,IAAI,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,CAAC,eAAe,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+ declare const _default: import("../tool.js").Tool<z.ZodObject<Readonly<{
3
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
4
+ }>, z.core.$strip>>[];
5
+ export default _default;
6
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAqBxB,wBAA8B"}
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ import { defineTool, textResult } from "../tool.js";
3
+ import { formatSnapshot } from "../format.js";
4
+ const handleDialog = defineTool({
5
+ schema: {
6
+ name: "browser_handle_dialog",
7
+ title: "Handle a dialog",
8
+ description: "Handle a dialog",
9
+ inputSchema: z.object({
10
+ accept: z.boolean().describe("Whether to accept the dialog."),
11
+ promptText: z.string().optional().describe("The text of the prompt in case of a prompt dialog.")
12
+ })
13
+ },
14
+ handle: async (args, runtime) => {
15
+ const snap = await runtime.handleDialog(args.accept, args.promptText);
16
+ if (!snap)
17
+ return textResult(args.accept ? "Accepted dialog." : "Dismissed dialog.");
18
+ return textResult(formatSnapshot(snap));
19
+ }
20
+ });
21
+ export default [handleDialog];
22
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/mcp/tools/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,YAAY,GAAG,UAAU,CAAC;IAC9B,MAAM,EAAE;QACN,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC7D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;SACjG,CAAC;KACH;IACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI;YAAE,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACrF,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+ declare const _default: import("../tool.js").Tool<z.ZodObject<Readonly<{
3
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
4
+ }>, z.core.$strip>>[];
5
+ export default _default;
6
+ //# sourceMappingURL=evaluate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/evaluate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AA8BxB,wBAA0B"}
@@ -0,0 +1,31 @@
1
+ import { writeFile } from "node:fs/promises";
2
+ import { z } from "zod";
3
+ import { defineTool, textResult } from "../tool.js";
4
+ import { resolveOutputFilePath } from "../output.js";
5
+ const evaluate = defineTool({
6
+ schema: {
7
+ name: "browser_evaluate",
8
+ title: "Evaluate JavaScript",
9
+ description: "Evaluate JavaScript expression on page or element",
10
+ inputSchema: z.object({
11
+ element: z.string().optional().describe("Human-readable element description used to obtain permission to interact with the element"),
12
+ target: z.string().optional().describe("Exact target element reference from the page snapshot, or a unique element selector"),
13
+ function: z.string().describe("() => { /* code */ } or (element) => { /* code */ } when element is provided"),
14
+ filename: z.string().optional().describe("Filename to save the result to. If not provided, result is returned as text.")
15
+ })
16
+ },
17
+ handle: async (args, runtime) => {
18
+ const result = await runtime.evaluate(args.function, args.target);
19
+ const text = JSON.stringify(result, null, 2) ?? "undefined";
20
+ if (args.filename) {
21
+ const resolvedFilename = await resolveOutputFilePath(args.filename, {
22
+ outputDir: runtime.getOutputDir()
23
+ });
24
+ await writeFile(resolvedFilename, text);
25
+ return textResult(`Saved evaluation result to "${resolvedFilename}".`);
26
+ }
27
+ return textResult(text);
28
+ }
29
+ });
30
+ export default [evaluate];
31
+ //# sourceMappingURL=evaluate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/mcp/tools/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,QAAQ,GAAG,UAAU,CAAC;IAC1B,MAAM,EAAE;QACN,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2FAA2F,CAAC;YACpI,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC;YAC7H,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;YAC7G,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;SACzH,CAAC;KACH;IACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC;QAC5D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClE,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE;aAClC,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,UAAU,CAAC,+BAA+B,gBAAgB,IAAI,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+ declare const _default: import("../tool.js").Tool<z.ZodObject<Readonly<{
3
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
4
+ }>, z.core.$strip>>[];
5
+ export default _default;
6
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;AAoIxB,wBAAgC"}
@@ -0,0 +1,129 @@
1
+ import { z } from "zod";
2
+ import { defineTool, textResult } from "../tool.js";
3
+ import { formatSnapshot } from "../format.js";
4
+ const elementTargetDescription = "Exact target element reference from the page snapshot, or a unique element selector";
5
+ const elementSchema = z.object({
6
+ element: z.string().optional().describe("Human-readable element description used to obtain permission"),
7
+ target: z.string().describe(elementTargetDescription)
8
+ });
9
+ const selectOption = defineTool({
10
+ schema: {
11
+ name: "browser_select_option",
12
+ title: "Select option",
13
+ description: "Select an option in a dropdown. Returns selected values and an updated snapshot.",
14
+ inputSchema: elementSchema.extend({
15
+ values: z.array(z.string()).describe("Option values or visible labels to select")
16
+ })
17
+ },
18
+ handle: async (args, runtime) => {
19
+ const result = await runtime.selectOption(args.target, args.values);
20
+ const header = `Selected options: ${result.selected.join(", ")}`;
21
+ if (!result.snapshot)
22
+ return textResult(header);
23
+ return textResult(`${header}\n\n${formatSnapshot(result.snapshot)}`);
24
+ }
25
+ });
26
+ const check = defineTool({
27
+ schema: {
28
+ name: "browser_check",
29
+ title: "Check",
30
+ description: "Check a checkbox or radio button. Returns an updated snapshot.",
31
+ inputSchema: elementSchema
32
+ },
33
+ handle: async (args, runtime) => {
34
+ const snap = await runtime.check(args.target, true);
35
+ if (!snap)
36
+ return textResult(`Checked "${args.element ?? args.target}".`);
37
+ return textResult(formatSnapshot(snap));
38
+ }
39
+ });
40
+ const uncheck = defineTool({
41
+ schema: {
42
+ name: "browser_uncheck",
43
+ title: "Uncheck",
44
+ description: "Uncheck a checkbox or radio button. Returns an updated snapshot.",
45
+ inputSchema: elementSchema
46
+ },
47
+ handle: async (args, runtime) => {
48
+ const snap = await runtime.check(args.target, false);
49
+ if (!snap)
50
+ return textResult(`Unchecked "${args.element ?? args.target}".`);
51
+ return textResult(formatSnapshot(snap));
52
+ }
53
+ });
54
+ const fileUpload = defineTool({
55
+ schema: {
56
+ name: "browser_file_upload",
57
+ title: "Upload files",
58
+ description: "Upload one or multiple files",
59
+ inputSchema: z.object({
60
+ paths: z.array(z.string()).optional().describe("The absolute paths to the files to upload. Can be single file or multiple files. If omitted, file chooser is cancelled.")
61
+ }),
62
+ listedInputSchema: {
63
+ $schema: "https://json-schema.org/draft/2020-12/schema",
64
+ type: "object",
65
+ properties: {
66
+ paths: {
67
+ type: "array",
68
+ items: { type: "string" },
69
+ description: "The absolute paths to the files to upload. Can be single file or multiple files. If omitted, file chooser is cancelled."
70
+ }
71
+ },
72
+ additionalProperties: false
73
+ }
74
+ },
75
+ handle: async (args, runtime) => {
76
+ const snap = await runtime.uploadFile(args.paths ?? []);
77
+ if (!snap)
78
+ return textResult(`Uploaded ${args.paths?.length ?? 0} file(s).`);
79
+ return textResult(formatSnapshot(snap));
80
+ }
81
+ });
82
+ const fillForm = defineTool({
83
+ schema: {
84
+ name: "browser_fill_form",
85
+ title: "Fill form",
86
+ description: "Fill multiple form fields",
87
+ inputSchema: z.object({
88
+ fields: z.array(z.object({
89
+ name: z.string().describe("Human-readable field name"),
90
+ type: z.enum(["textbox", "checkbox", "radio", "combobox", "slider"]).describe("Type of the field"),
91
+ target: z.string().describe("Exact target element reference from the page snapshot, or a unique element selector"),
92
+ value: z.string().describe("Value to fill in the field. If the field is a checkbox, the value should be `true` or `false`. If the field is a combobox, the value should be the text of the option.")
93
+ })).describe("Fields to fill in")
94
+ })
95
+ },
96
+ handle: async (args, runtime) => {
97
+ const snap = await runtime.fillForm(args.fields);
98
+ if (!snap)
99
+ return textResult("Filled form.");
100
+ return textResult(formatSnapshot(snap));
101
+ }
102
+ });
103
+ const drop = defineTool({
104
+ schema: {
105
+ name: "browser_drop",
106
+ title: "Drop files or data onto an element",
107
+ description: "Drop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of paths or data must be provided.",
108
+ inputSchema: z.object({
109
+ element: z.string().optional().describe("Human-readable element description used to obtain permission to interact with the element"),
110
+ target: z.string().describe("Exact target element reference from the page snapshot, or a unique element selector"),
111
+ paths: z.array(z.string()).optional().describe("Absolute paths to files to drop onto the element."),
112
+ data: z.record(z.string(), z.string()).optional().describe("Data to drop, as a map of MIME type to string value.")
113
+ })
114
+ },
115
+ handle: async (args, runtime) => {
116
+ if (!args.paths?.length && !args.data) {
117
+ throw new Error('At least one of "paths" or "data" must be provided.');
118
+ }
119
+ const snap = await runtime.drop(args.target, {
120
+ ...(args.paths !== undefined ? { paths: args.paths } : {}),
121
+ ...(args.data !== undefined ? { data: args.data } : {})
122
+ });
123
+ if (!snap)
124
+ return textResult(`Dropped data onto "${args.element ?? args.target}".`);
125
+ return textResult(formatSnapshot(snap));
126
+ }
127
+ });
128
+ export default [fillForm, drop];
129
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../../src/mcp/tools/form.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Tool } from "../tool.js";
2
+ export declare const allTools: Tool[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,eAAO,MAAM,QAAQ,EAAE,IAAI,EAG1B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import mouse from "./mouse.js";
2
+ import form from "./form.js";
3
+ export const allTools = [
4
+ ...mouse,
5
+ ...form
6
+ ];
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,QAAQ,GAAW;IAC9B,GAAG,KAAK;IACR,GAAG,IAAI;CACR,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: never[];
2
+ export default _default;
3
+ //# sourceMappingURL=keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/keyboard.ts"],"names":[],"mappings":";AAiDA,wBAAkB"}