opendevbrowser 0.0.27 → 0.0.29

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 (345) hide show
  1. package/README.md +2 -2
  2. package/dist/accessibility-snapshot-PA6NWNS7.js +39 -0
  3. package/dist/accessibility-snapshot-PA6NWNS7.js.map +1 -0
  4. package/dist/active-window-YNYTIPZN.js +37 -0
  5. package/dist/active-window-YNYTIPZN.js.map +1 -0
  6. package/dist/annotate-STYHXZYJ.js +205 -0
  7. package/dist/annotate-STYHXZYJ.js.map +1 -0
  8. package/dist/artifacts-KJ6RNDO2.js +120 -0
  9. package/dist/artifacts-KJ6RNDO2.js.map +1 -0
  10. package/dist/attr-GHFZZ4SA.js +84 -0
  11. package/dist/attr-GHFZZ4SA.js.map +1 -0
  12. package/dist/browser/canvas-manager.d.ts.map +1 -1
  13. package/dist/browser/ops-client.d.ts +1 -0
  14. package/dist/browser/ops-client.d.ts.map +1 -1
  15. package/dist/canvas/document-store.d.ts.map +1 -1
  16. package/dist/canvas/guidance.d.ts +22 -0
  17. package/dist/canvas/guidance.d.ts.map +1 -0
  18. package/dist/canvas-54FBOEGP.js +309 -0
  19. package/dist/canvas-54FBOEGP.js.map +1 -0
  20. package/dist/capture-desktop-SNABC24E.js +38 -0
  21. package/dist/capture-desktop-SNABC24E.js.map +1 -0
  22. package/dist/capture-window-UJSB5AMP.js +40 -0
  23. package/dist/capture-window-UJSB5AMP.js.map +1 -0
  24. package/dist/check-ST5UQ2F5.js +71 -0
  25. package/dist/check-ST5UQ2F5.js.map +1 -0
  26. package/dist/checked-IEMWI5CU.js +71 -0
  27. package/dist/checked-IEMWI5CU.js.map +1 -0
  28. package/dist/chunk-2CG4SW3E.js +64 -0
  29. package/dist/chunk-2CG4SW3E.js.map +1 -0
  30. package/dist/chunk-2SIMIPLY.js +67 -0
  31. package/dist/chunk-2SIMIPLY.js.map +1 -0
  32. package/dist/chunk-37VSRUW4.js +141 -0
  33. package/dist/chunk-37VSRUW4.js.map +1 -0
  34. package/dist/chunk-5SWZDVOW.js +144 -0
  35. package/dist/chunk-5SWZDVOW.js.map +1 -0
  36. package/dist/chunk-6PVZ2ABC.js +429 -0
  37. package/dist/chunk-6PVZ2ABC.js.map +1 -0
  38. package/dist/chunk-7GVOUZMQ.js +64 -0
  39. package/dist/chunk-7GVOUZMQ.js.map +1 -0
  40. package/dist/chunk-7THCPS52.js +84 -0
  41. package/dist/chunk-7THCPS52.js.map +1 -0
  42. package/dist/chunk-ASMHEEKY.js +10 -0
  43. package/dist/chunk-ASMHEEKY.js.map +1 -0
  44. package/dist/chunk-DBF5OKH3.js +111 -0
  45. package/dist/chunk-DBF5OKH3.js.map +1 -0
  46. package/dist/chunk-DW4TX7MU.js +54 -0
  47. package/dist/chunk-DW4TX7MU.js.map +1 -0
  48. package/dist/chunk-IPE7TF2P.js +54 -0
  49. package/dist/chunk-IPE7TF2P.js.map +1 -0
  50. package/dist/chunk-IQTJHXZJ.js +126 -0
  51. package/dist/chunk-IQTJHXZJ.js.map +1 -0
  52. package/dist/chunk-J47N77VG.js +2969 -0
  53. package/dist/chunk-J47N77VG.js.map +1 -0
  54. package/dist/chunk-JZXD6FWR.js +25 -0
  55. package/dist/chunk-JZXD6FWR.js.map +1 -0
  56. package/dist/{chunk-QVWOPIZJ.js → chunk-KDSNXS6N.js} +75 -149
  57. package/dist/chunk-KDSNXS6N.js.map +1 -0
  58. package/dist/chunk-KZ2IXVQT.js +219 -0
  59. package/dist/chunk-KZ2IXVQT.js.map +1 -0
  60. package/dist/chunk-LBPELU7L.js +3649 -0
  61. package/dist/chunk-LBPELU7L.js.map +1 -0
  62. package/dist/chunk-MX3NFLCE.js +940 -0
  63. package/dist/chunk-MX3NFLCE.js.map +1 -0
  64. package/dist/chunk-N44UXKIB.js +26 -0
  65. package/dist/chunk-N44UXKIB.js.map +1 -0
  66. package/dist/chunk-OW5HMYMI.js +19 -0
  67. package/dist/chunk-OW5HMYMI.js.map +1 -0
  68. package/dist/chunk-OYNLAZQU.js +838 -0
  69. package/dist/chunk-OYNLAZQU.js.map +1 -0
  70. package/dist/chunk-PDPJN2OP.js +17 -0
  71. package/dist/chunk-PDPJN2OP.js.map +1 -0
  72. package/dist/chunk-RCZZGGJS.js +226 -0
  73. package/dist/chunk-RCZZGGJS.js.map +1 -0
  74. package/dist/chunk-RJNI3BHT.js +1 -0
  75. package/dist/chunk-RPXWUCQQ.js +112 -0
  76. package/dist/chunk-RPXWUCQQ.js.map +1 -0
  77. package/dist/chunk-S5KZQJJI.js +107 -0
  78. package/dist/chunk-S5KZQJJI.js.map +1 -0
  79. package/dist/{chunk-V5DJUSPV.js → chunk-S6S2UP6U.js} +2255 -1577
  80. package/dist/chunk-S6S2UP6U.js.map +1 -0
  81. package/dist/{chunk-MWBDO2L5.js → chunk-SXAGSEKZ.js} +1369 -9584
  82. package/dist/chunk-SXAGSEKZ.js.map +1 -0
  83. package/dist/chunk-T4GMCW6Z.js +46 -0
  84. package/dist/chunk-T4GMCW6Z.js.map +1 -0
  85. package/dist/chunk-WHQZBUNY.js +982 -0
  86. package/dist/chunk-WHQZBUNY.js.map +1 -0
  87. package/dist/chunk-WOXBLP7V.js +610 -0
  88. package/dist/chunk-WOXBLP7V.js.map +1 -0
  89. package/dist/cli/commands/inspiredesign.d.ts +2 -0
  90. package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
  91. package/dist/cli/commands/macro-resolve.d.ts +5 -0
  92. package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
  93. package/dist/cli/commands/product-video.d.ts +2 -0
  94. package/dist/cli/commands/product-video.d.ts.map +1 -1
  95. package/dist/cli/commands/research.d.ts +2 -0
  96. package/dist/cli/commands/research.d.ts.map +1 -1
  97. package/dist/cli/commands/serve.d.ts.map +1 -1
  98. package/dist/cli/commands/shopping.d.ts.map +1 -1
  99. package/dist/cli/commands/workflow-output.d.ts +2 -0
  100. package/dist/cli/commands/workflow-output.d.ts.map +1 -0
  101. package/dist/cli/daemon-commands.d.ts.map +1 -1
  102. package/dist/cli/daemon.d.ts.map +1 -1
  103. package/dist/cli/help.d.ts.map +1 -1
  104. package/dist/cli/index.js +207 -8029
  105. package/dist/cli/index.js.map +1 -1
  106. package/dist/cli/installers/postinstall-skill-sync.js +2 -1
  107. package/dist/cli/installers/postinstall-skill-sync.js.map +1 -1
  108. package/dist/cli/remote-relay.d.ts.map +1 -1
  109. package/dist/cli/utils/workflow-message.d.ts +3 -0
  110. package/dist/cli/utils/workflow-message.d.ts.map +1 -1
  111. package/dist/click-TENZA3Y6.js +81 -0
  112. package/dist/click-TENZA3Y6.js.map +1 -0
  113. package/dist/clone-component-STH5AR6M.js +82 -0
  114. package/dist/clone-component-STH5AR6M.js.map +1 -0
  115. package/dist/clone-page-BSTWAPAJ.js +69 -0
  116. package/dist/clone-page-BSTWAPAJ.js.map +1 -0
  117. package/dist/close-CEMMAAM7.js +63 -0
  118. package/dist/close-CEMMAAM7.js.map +1 -0
  119. package/dist/close-QCWUNRAI.js +63 -0
  120. package/dist/close-QCWUNRAI.js.map +1 -0
  121. package/dist/connect-J3RVSEZF.js +107 -0
  122. package/dist/connect-J3RVSEZF.js.map +1 -0
  123. package/dist/console-poll-HL7BVIVX.js +76 -0
  124. package/dist/console-poll-HL7BVIVX.js.map +1 -0
  125. package/dist/cookie-import-WMUCIIHN.js +177 -0
  126. package/dist/cookie-import-WMUCIIHN.js.map +1 -0
  127. package/dist/cookie-list-PB2N4RPH.js +117 -0
  128. package/dist/cookie-list-PB2N4RPH.js.map +1 -0
  129. package/dist/daemon-5KSVMGN4.js +194 -0
  130. package/dist/daemon-5KSVMGN4.js.map +1 -0
  131. package/dist/daemon-fingerprint.json +1 -1
  132. package/dist/debug-trace-snapshot-RK7KDXA5.js +136 -0
  133. package/dist/debug-trace-snapshot-RK7KDXA5.js.map +1 -0
  134. package/dist/dialog-P6P4U7XE.js +75 -0
  135. package/dist/dialog-P6P4U7XE.js.map +1 -0
  136. package/dist/disconnect-32F7IDIP.js +58 -0
  137. package/dist/disconnect-32F7IDIP.js.map +1 -0
  138. package/dist/enabled-A6C6ZM2O.js +71 -0
  139. package/dist/enabled-A6C6ZM2O.js.map +1 -0
  140. package/dist/extension-extractor-GKWSFHPN.js +11 -0
  141. package/dist/extension-extractor-GKWSFHPN.js.map +1 -0
  142. package/dist/global-D6WLWBXA.js +56 -0
  143. package/dist/global-D6WLWBXA.js.map +1 -0
  144. package/dist/goto-ULTSABDM.js +98 -0
  145. package/dist/goto-ULTSABDM.js.map +1 -0
  146. package/dist/help-EKKKEDL5.js +491 -0
  147. package/dist/help-EKKKEDL5.js.map +1 -0
  148. package/dist/hover-UF2ZUMTQ.js +71 -0
  149. package/dist/hover-UF2ZUMTQ.js.map +1 -0
  150. package/dist/html-B6TX7GK7.js +84 -0
  151. package/dist/html-B6TX7GK7.js.map +1 -0
  152. package/dist/index.js +100 -42
  153. package/dist/index.js.map +1 -1
  154. package/dist/inspector-6S5FKUZQ.js +62 -0
  155. package/dist/inspector-6S5FKUZQ.js.map +1 -0
  156. package/dist/inspector-audit-ARGEGOS7.js +84 -0
  157. package/dist/inspector-audit-ARGEGOS7.js.map +1 -0
  158. package/dist/inspector-plan-CSG5HZOC.js +69 -0
  159. package/dist/inspector-plan-CSG5HZOC.js.map +1 -0
  160. package/dist/inspiredesign/contract.d.ts +52 -1
  161. package/dist/inspiredesign/contract.d.ts.map +1 -1
  162. package/dist/inspiredesign/handoff.d.ts +12 -0
  163. package/dist/inspiredesign/handoff.d.ts.map +1 -1
  164. package/dist/inspiredesign/reference-pattern-board.d.ts +1 -0
  165. package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
  166. package/dist/inspiredesign-7VRMMZN4.js +234 -0
  167. package/dist/inspiredesign-7VRMMZN4.js.map +1 -0
  168. package/dist/install-autostart-output-5DOMKCQL.js +41 -0
  169. package/dist/install-autostart-output-5DOMKCQL.js.map +1 -0
  170. package/dist/install-autostart-reconciliation-NHKOFYTD.js +73 -0
  171. package/dist/install-autostart-reconciliation-NHKOFYTD.js.map +1 -0
  172. package/dist/launch-REYCIR3Z.js +225 -0
  173. package/dist/launch-REYCIR3Z.js.map +1 -0
  174. package/dist/list-NPRXRQY2.js +51 -0
  175. package/dist/list-NPRXRQY2.js.map +1 -0
  176. package/dist/list-STYD2ZWA.js +54 -0
  177. package/dist/list-STYD2ZWA.js.map +1 -0
  178. package/dist/local-HXJLUUNT.js +54 -0
  179. package/dist/local-HXJLUUNT.js.map +1 -0
  180. package/dist/macro-resolve-ZIJZ65QI.js +253 -0
  181. package/dist/macro-resolve-ZIJZ65QI.js.map +1 -0
  182. package/dist/macros/execute-runtime.d.ts +4 -1
  183. package/dist/macros/execute-runtime.d.ts.map +1 -1
  184. package/dist/macros/execute.d.ts +6 -2
  185. package/dist/macros/execute.d.ts.map +1 -1
  186. package/dist/native-UPLVQ2SG.js +22 -0
  187. package/dist/native-UPLVQ2SG.js.map +1 -0
  188. package/dist/network-poll-HLDOSC72.js +76 -0
  189. package/dist/network-poll-HLDOSC72.js.map +1 -0
  190. package/dist/new-HXLLN6UT.js +69 -0
  191. package/dist/new-HXLLN6UT.js.map +1 -0
  192. package/dist/onboarding-metadata-7E3KLYSZ.js +27 -0
  193. package/dist/onboarding-metadata-7E3KLYSZ.js.map +1 -0
  194. package/dist/open-KDR25LQZ.js +81 -0
  195. package/dist/open-KDR25LQZ.js.map +1 -0
  196. package/dist/opendevbrowser.js +100 -42
  197. package/dist/opendevbrowser.js.map +1 -1
  198. package/dist/perf-EM6SWFJ6.js +58 -0
  199. package/dist/perf-EM6SWFJ6.js.map +1 -0
  200. package/dist/pointer-down-ZYWRZNCH.js +55 -0
  201. package/dist/pointer-down-ZYWRZNCH.js.map +1 -0
  202. package/dist/pointer-drag-LVEAVJO4.js +54 -0
  203. package/dist/pointer-drag-LVEAVJO4.js.map +1 -0
  204. package/dist/pointer-move-7SRKUS66.js +52 -0
  205. package/dist/pointer-move-7SRKUS66.js.map +1 -0
  206. package/dist/pointer-up-KLDBSK37.js +55 -0
  207. package/dist/pointer-up-KLDBSK37.js.map +1 -0
  208. package/dist/press-UIIXFTD7.js +83 -0
  209. package/dist/press-UIIXFTD7.js.map +1 -0
  210. package/dist/product-video-PYOXJVAI.js +235 -0
  211. package/dist/product-video-PYOXJVAI.js.map +1 -0
  212. package/dist/providers/artifacts.d.ts +0 -2
  213. package/dist/providers/artifacts.d.ts.map +1 -1
  214. package/dist/providers/blocker.d.ts.map +1 -1
  215. package/dist/providers/bounded-map.d.ts +2 -0
  216. package/dist/providers/bounded-map.d.ts.map +1 -0
  217. package/dist/providers/browser-fallback.d.ts +7 -0
  218. package/dist/providers/browser-fallback.d.ts.map +1 -1
  219. package/dist/providers/community/index.d.ts.map +1 -1
  220. package/dist/providers/constraint.d.ts.map +1 -1
  221. package/dist/providers/index.d.ts +1 -0
  222. package/dist/providers/index.d.ts.map +1 -1
  223. package/dist/providers/renderer.d.ts.map +1 -1
  224. package/dist/providers/research-compiler.d.ts +1 -1
  225. package/dist/providers/research-compiler.d.ts.map +1 -1
  226. package/dist/providers/research-executor.d.ts.map +1 -1
  227. package/dist/providers/runtime-bundle.d.ts +1 -1
  228. package/dist/providers/runtime-bundle.d.ts.map +1 -1
  229. package/dist/providers/runtime-factory.d.ts.map +1 -1
  230. package/dist/providers/shared/traversal-url.d.ts +3 -0
  231. package/dist/providers/shared/traversal-url.d.ts.map +1 -1
  232. package/dist/providers/shopping/index.d.ts.map +1 -1
  233. package/dist/providers/social/platform.d.ts.map +1 -1
  234. package/dist/providers/social/search-quality.d.ts.map +1 -1
  235. package/dist/providers/social/youtube.d.ts.map +1 -1
  236. package/dist/providers/workflow-handoff.d.ts +22 -1
  237. package/dist/providers/workflow-handoff.d.ts.map +1 -1
  238. package/dist/providers/workflows.d.ts +3 -0
  239. package/dist/providers/workflows.d.ts.map +1 -1
  240. package/dist/{providers-TR3DUJZV.js → providers-4YY2BLXG.js} +19 -14
  241. package/dist/providers-4YY2BLXG.js.map +1 -0
  242. package/dist/public-surface/generated-manifest.d.ts +6 -6
  243. package/dist/public-surface/generated-manifest.d.ts.map +1 -1
  244. package/dist/public-surface/source.d.ts +8 -8
  245. package/dist/public-surface/source.d.ts.map +1 -1
  246. package/dist/relay/protocol.d.ts +3 -1
  247. package/dist/relay/protocol.d.ts.map +1 -1
  248. package/dist/relay/relay-server.d.ts +6 -0
  249. package/dist/relay/relay-server.d.ts.map +1 -1
  250. package/dist/research-CKXMJ2DK.js +295 -0
  251. package/dist/research-CKXMJ2DK.js.map +1 -0
  252. package/dist/review-7HWJPZOD.js +48 -0
  253. package/dist/review-7HWJPZOD.js.map +1 -0
  254. package/dist/review-desktop-2IBJHFB5.js +54 -0
  255. package/dist/review-desktop-2IBJHFB5.js.map +1 -0
  256. package/dist/rpc-3HGIEJUO.js +159 -0
  257. package/dist/rpc-3HGIEJUO.js.map +1 -0
  258. package/dist/run-ADRYI3MS.js +180 -0
  259. package/dist/run-ADRYI3MS.js.map +1 -0
  260. package/dist/screencast-start-DTLUHD5H.js +67 -0
  261. package/dist/screencast-start-DTLUHD5H.js.map +1 -0
  262. package/dist/screencast-stop-54C5LRSS.js +59 -0
  263. package/dist/screencast-stop-54C5LRSS.js.map +1 -0
  264. package/dist/screenshot-HOAKR7P7.js +68 -0
  265. package/dist/screenshot-HOAKR7P7.js.map +1 -0
  266. package/dist/scroll-IAOO5COY.js +84 -0
  267. package/dist/scroll-IAOO5COY.js.map +1 -0
  268. package/dist/scroll-into-view-RKWSLAPH.js +71 -0
  269. package/dist/scroll-into-view-RKWSLAPH.js.map +1 -0
  270. package/dist/select-IGD3T6X4.js +86 -0
  271. package/dist/select-IGD3T6X4.js.map +1 -0
  272. package/dist/serve-7X4INUCU.js +498 -0
  273. package/dist/serve-7X4INUCU.js.map +1 -0
  274. package/dist/shopping-FC6DRW76.js +273 -0
  275. package/dist/shopping-FC6DRW76.js.map +1 -0
  276. package/dist/skill-lifecycle-5UAZGKSN.js +89 -0
  277. package/dist/skill-lifecycle-5UAZGKSN.js.map +1 -0
  278. package/dist/skills-NSXDX6YM.js +26 -0
  279. package/dist/skills-NSXDX6YM.js.map +1 -0
  280. package/dist/snapshot-X22GG324.js +113 -0
  281. package/dist/snapshot-X22GG324.js.map +1 -0
  282. package/dist/status-SP55LMNW.js +132 -0
  283. package/dist/status-SP55LMNW.js.map +1 -0
  284. package/dist/status-VH2WXIDG.js +35 -0
  285. package/dist/status-VH2WXIDG.js.map +1 -0
  286. package/dist/status-capabilities-YBERLRRA.js +57 -0
  287. package/dist/status-capabilities-YBERLRRA.js.map +1 -0
  288. package/dist/text-6TB5WNLI.js +84 -0
  289. package/dist/text-6TB5WNLI.js.map +1 -0
  290. package/dist/tools/inspiredesign_run.d.ts.map +1 -1
  291. package/dist/tools/macro_resolve.d.ts.map +1 -1
  292. package/dist/tools/product_video_run.d.ts.map +1 -1
  293. package/dist/tools/research_run.d.ts.map +1 -1
  294. package/dist/tools/shopping_run.d.ts.map +1 -1
  295. package/dist/type-3UI3TQH3.js +94 -0
  296. package/dist/type-3UI3TQH3.js.map +1 -0
  297. package/dist/uncheck-5L3D2D4U.js +71 -0
  298. package/dist/uncheck-5L3D2D4U.js.map +1 -0
  299. package/dist/uninstall-KYKGJAX7.js +91 -0
  300. package/dist/uninstall-KYKGJAX7.js.map +1 -0
  301. package/dist/update-SMXPYGXS.js +305 -0
  302. package/dist/update-SMXPYGXS.js.map +1 -0
  303. package/dist/update-skill-modes-BVX7IVMW.js +38 -0
  304. package/dist/update-skill-modes-BVX7IVMW.js.map +1 -0
  305. package/dist/upload-YG4J2EMI.js +56 -0
  306. package/dist/upload-YG4J2EMI.js.map +1 -0
  307. package/dist/use-V3LGFP3K.js +63 -0
  308. package/dist/use-V3LGFP3K.js.map +1 -0
  309. package/dist/value-3247D57X.js +71 -0
  310. package/dist/value-3247D57X.js.map +1 -0
  311. package/dist/visible-A7HEV36U.js +71 -0
  312. package/dist/visible-A7HEV36U.js.map +1 -0
  313. package/dist/wait-UZPP4Y4R.js +109 -0
  314. package/dist/wait-UZPP4Y4R.js.map +1 -0
  315. package/dist/windows-76TR3AIP.js +37 -0
  316. package/dist/windows-76TR3AIP.js.map +1 -0
  317. package/extension/dist/background.js +99 -22
  318. package/extension/dist/ops/ops-runtime.js +85 -7
  319. package/extension/dist/ops/ops-session-store.js +3 -0
  320. package/extension/dist/ops/target-session-coordinator.js +3 -0
  321. package/extension/dist/services/CDPRouter.js +9 -0
  322. package/extension/manifest.json +1 -1
  323. package/package.json +1 -1
  324. package/skills/opendevbrowser-best-practices/SKILL.md +13 -11
  325. package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +1 -1
  326. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +3 -2
  327. package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +39 -2
  328. package/skills/opendevbrowser-design-agent/SKILL.md +5 -0
  329. package/skills/opendevbrowser-design-agent/artifacts/design-contract-playbook.md +6 -1
  330. package/skills/opendevbrowser-design-agent/assets/templates/design-contract.v1.json +15 -1
  331. package/skills/opendevbrowser-design-agent/assets/templates/inspiredesign-advanced-brief.v1.json +5 -2
  332. package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +2 -0
  333. package/skills/opendevbrowser-research/SKILL.md +64 -12
  334. package/skills/opendevbrowser-research/artifacts/research-workflows.md +56 -19
  335. package/skills/opendevbrowser-research/assets/templates/compact.md +31 -5
  336. package/skills/opendevbrowser-research/assets/templates/context.json +52 -1
  337. package/skills/opendevbrowser-research/assets/templates/report.md +57 -4
  338. package/skills/opendevbrowser-research/examples/sample-input.json +1 -1
  339. package/skills/opendevbrowser-research/examples/sample-output.md +27 -2
  340. package/skills/opendevbrowser-research/scripts/run-research.sh +2 -6
  341. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +115 -1
  342. package/dist/chunk-MWBDO2L5.js.map +0 -1
  343. package/dist/chunk-QVWOPIZJ.js.map +0 -1
  344. package/dist/chunk-V5DJUSPV.js.map +0 -1
  345. /package/dist/{providers-TR3DUJZV.js.map → chunk-RJNI3BHT.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/nav/review-desktop.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\nimport { DEFAULT_REVIEW_TRANSPORT_TIMEOUT_MS } from \"../../transport-timeouts\";\nimport { parseReviewCommandArgs } from \"./review-shared\";\n\nexport async function runReviewDesktop(args: ParsedArgs) {\n const { sessionId, targetId, reason, maxChars, cursor, timeoutMs } = parseReviewCommandArgs(args.rawArgs);\n if (!sessionId) {\n throw createUsageError(\"Missing --session-id\");\n }\n const result = await callDaemon(\"nav.reviewDesktop\", {\n sessionId,\n ...(typeof targetId === \"string\" ? { targetId } : {}),\n ...(typeof reason === \"string\" ? { reason } : {}),\n ...(typeof maxChars === \"number\" ? { maxChars } : {}),\n ...(typeof cursor === \"string\" ? { cursor } : {})\n }, {\n timeoutMs: timeoutMs ?? DEFAULT_REVIEW_TRANSPORT_TIMEOUT_MS\n });\n return {\n success: true,\n message: \"Desktop-assisted review captured.\",\n data: result\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,eAAsB,iBAAiB,MAAkB;AACvD,QAAM,EAAE,WAAW,UAAU,QAAQ,UAAU,QAAQ,UAAU,IAAI,uBAAuB,KAAK,OAAO;AACxG,MAAI,CAAC,WAAW;AACd,UAAM,iBAAiB,sBAAsB;AAAA,EAC/C;AACA,QAAM,SAAS,MAAM,WAAW,qBAAqB;AAAA,IACnD;AAAA,IACA,GAAI,OAAO,aAAa,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,IACnD,GAAI,OAAO,WAAW,WAAW,EAAE,OAAO,IAAI,CAAC;AAAA,IAC/C,GAAI,OAAO,aAAa,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,IACnD,GAAI,OAAO,WAAW,WAAW,EAAE,OAAO,IAAI,CAAC;AAAA,EACjD,GAAG;AAAA,IACD,WAAW,aAAa;AAAA,EAC1B,CAAC;AACD,SAAO;AAAA,IACL,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACF;","names":[]}
@@ -0,0 +1,159 @@
1
+ import {
2
+ parseNumberFlag
3
+ } from "./chunk-RPXWUCQQ.js";
4
+ import {
5
+ DaemonClient
6
+ } from "./chunk-OYNLAZQU.js";
7
+ import "./chunk-LBPELU7L.js";
8
+ import "./chunk-SXAGSEKZ.js";
9
+ import "./chunk-MX3NFLCE.js";
10
+ import "./chunk-ASMHEEKY.js";
11
+ import {
12
+ createUsageError
13
+ } from "./chunk-IPE7TF2P.js";
14
+ import "./chunk-STGGGVYT.js";
15
+ import "./chunk-3ILXPKSJ.js";
16
+ import "./chunk-TBUCZX4A.js";
17
+ import "./chunk-Y2KL55OG.js";
18
+ import "./chunk-5SWZDVOW.js";
19
+ import "./chunk-S6S2UP6U.js";
20
+ import "./chunk-S5KZQJJI.js";
21
+ import "./chunk-KZ2IXVQT.js";
22
+ import "./chunk-WHQZBUNY.js";
23
+ import "./chunk-FUSXMW3G.js";
24
+
25
+ // src/cli/commands/rpc.ts
26
+ import { readFileSync } from "fs";
27
+ var requireValue = (value, flag) => {
28
+ if (!value) throw createUsageError(`Missing value for ${flag}`);
29
+ return value;
30
+ };
31
+ var parseJsonObject = (raw, source) => {
32
+ let parsed;
33
+ try {
34
+ parsed = JSON.parse(raw);
35
+ } catch (error) {
36
+ const message = error instanceof Error ? error.message : "Invalid JSON";
37
+ throw createUsageError(`Invalid JSON from ${source}: ${message}`);
38
+ }
39
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
40
+ throw createUsageError(`Invalid JSON from ${source}: expected object`);
41
+ }
42
+ return parsed;
43
+ };
44
+ var parseRpcArgs = (rawArgs) => {
45
+ const parsed = {};
46
+ for (let i = 0; i < rawArgs.length; i += 1) {
47
+ const arg = rawArgs[i];
48
+ if (arg === "--unsafe-internal") {
49
+ parsed.unsafeInternal = true;
50
+ continue;
51
+ }
52
+ if (arg === "--name") {
53
+ parsed.name = requireValue(rawArgs[i + 1], "--name");
54
+ i += 1;
55
+ continue;
56
+ }
57
+ if (arg?.startsWith("--name=")) {
58
+ parsed.name = requireValue(arg.split("=", 2)[1], "--name");
59
+ continue;
60
+ }
61
+ if (arg === "--params") {
62
+ parsed.params = requireValue(rawArgs[i + 1], "--params");
63
+ i += 1;
64
+ continue;
65
+ }
66
+ if (arg?.startsWith("--params=")) {
67
+ parsed.params = requireValue(arg.split("=", 2)[1], "--params");
68
+ continue;
69
+ }
70
+ if (arg === "--params-file") {
71
+ parsed.paramsFile = requireValue(rawArgs[i + 1], "--params-file");
72
+ i += 1;
73
+ continue;
74
+ }
75
+ if (arg?.startsWith("--params-file=")) {
76
+ parsed.paramsFile = requireValue(arg.split("=", 2)[1], "--params-file");
77
+ continue;
78
+ }
79
+ if (arg === "--timeout-ms") {
80
+ const value = requireValue(rawArgs[i + 1], "--timeout-ms");
81
+ parsed.timeoutMs = parseNumberFlag(value, "--timeout-ms", { min: 1 });
82
+ i += 1;
83
+ continue;
84
+ }
85
+ if (arg?.startsWith("--timeout-ms=")) {
86
+ const value = requireValue(arg.split("=", 2)[1], "--timeout-ms");
87
+ parsed.timeoutMs = parseNumberFlag(value, "--timeout-ms", { min: 1 });
88
+ continue;
89
+ }
90
+ }
91
+ return parsed;
92
+ };
93
+ var resolveRpcParams = (rpcArgs) => {
94
+ const hasParamsArg = typeof rpcArgs.params === "string";
95
+ const hasParamsFile = typeof rpcArgs.paramsFile === "string";
96
+ const inputCount = Number(hasParamsArg) + Number(hasParamsFile);
97
+ if (inputCount > 1) {
98
+ throw createUsageError("Provide only one params source: --params or --params-file.");
99
+ }
100
+ if (hasParamsArg) {
101
+ return parseJsonObject(rpcArgs.params ?? "", "--params");
102
+ }
103
+ if (hasParamsFile) {
104
+ let raw = "";
105
+ try {
106
+ raw = readFileSync(rpcArgs.paramsFile ?? "", "utf8");
107
+ } catch (error) {
108
+ const message = error instanceof Error ? error.message : "Unable to read file";
109
+ throw createUsageError(`Invalid --params-file: ${message}`);
110
+ }
111
+ if (!raw.trim()) {
112
+ throw createUsageError("Invalid JSON from --params-file: empty input");
113
+ }
114
+ return parseJsonObject(raw, "--params-file");
115
+ }
116
+ return {};
117
+ };
118
+ async function runRpc(args) {
119
+ const rpcArgs = parseRpcArgs(args.rawArgs);
120
+ if (!rpcArgs.unsafeInternal) {
121
+ throw createUsageError(
122
+ "Missing --unsafe-internal. rpc is a power-user command that executes internal daemon commands and can mutate session state."
123
+ );
124
+ }
125
+ if (!rpcArgs.name) {
126
+ throw createUsageError("Missing --name");
127
+ }
128
+ const params = resolveRpcParams(rpcArgs);
129
+ const client = new DaemonClient({ autoRenew: true });
130
+ try {
131
+ const result = await client.call(rpcArgs.name, params, { timeoutMs: rpcArgs.timeoutMs });
132
+ if (args.outputFormat === "text") {
133
+ const output = typeof result === "string" ? result : JSON.stringify(result, null, 2);
134
+ return { success: true, message: output };
135
+ }
136
+ return {
137
+ success: true,
138
+ message: `RPC executed: ${rpcArgs.name}`,
139
+ data: {
140
+ name: rpcArgs.name,
141
+ result
142
+ }
143
+ };
144
+ } finally {
145
+ await client.releaseBinding().catch(() => {
146
+ });
147
+ }
148
+ }
149
+ var __test__ = {
150
+ parseJsonObject,
151
+ parseRpcArgs,
152
+ resolveRpcParams
153
+ };
154
+ export {
155
+ __test__,
156
+ parseRpcArgs,
157
+ runRpc
158
+ };
159
+ //# sourceMappingURL=rpc-3HGIEJUO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/rpc.ts"],"sourcesContent":["import { readFileSync } from \"fs\";\nimport type { ParsedArgs } from \"../args\";\nimport { DaemonClient } from \"../daemon-client\";\nimport { createUsageError } from \"../errors\";\nimport { parseNumberFlag } from \"../utils/parse\";\n\ntype RpcArgs = {\n name?: string;\n params?: string;\n paramsFile?: string;\n timeoutMs?: number;\n unsafeInternal?: boolean;\n};\n\nconst requireValue = (value: string | undefined, flag: string): string => {\n if (!value) throw createUsageError(`Missing value for ${flag}`);\n return value;\n};\n\nconst parseJsonObject = (raw: string, source: string): Record<string, unknown> => {\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Invalid JSON\";\n throw createUsageError(`Invalid JSON from ${source}: ${message}`);\n }\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n throw createUsageError(`Invalid JSON from ${source}: expected object`);\n }\n return parsed as Record<string, unknown>;\n};\n\nexport const parseRpcArgs = (rawArgs: string[]): RpcArgs => {\n const parsed: RpcArgs = {};\n for (let i = 0; i < rawArgs.length; i += 1) {\n const arg = rawArgs[i];\n if (arg === \"--unsafe-internal\") {\n parsed.unsafeInternal = true;\n continue;\n }\n if (arg === \"--name\") {\n parsed.name = requireValue(rawArgs[i + 1], \"--name\");\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--name=\")) {\n parsed.name = requireValue(arg.split(\"=\", 2)[1], \"--name\");\n continue;\n }\n if (arg === \"--params\") {\n parsed.params = requireValue(rawArgs[i + 1], \"--params\");\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--params=\")) {\n parsed.params = requireValue(arg.split(\"=\", 2)[1], \"--params\");\n continue;\n }\n if (arg === \"--params-file\") {\n parsed.paramsFile = requireValue(rawArgs[i + 1], \"--params-file\");\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--params-file=\")) {\n parsed.paramsFile = requireValue(arg.split(\"=\", 2)[1], \"--params-file\");\n continue;\n }\n if (arg === \"--timeout-ms\") {\n const value = requireValue(rawArgs[i + 1], \"--timeout-ms\");\n parsed.timeoutMs = parseNumberFlag(value, \"--timeout-ms\", { min: 1 });\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--timeout-ms=\")) {\n const value = requireValue(arg.split(\"=\", 2)[1], \"--timeout-ms\");\n parsed.timeoutMs = parseNumberFlag(value, \"--timeout-ms\", { min: 1 });\n continue;\n }\n }\n return parsed;\n};\n\nconst resolveRpcParams = (rpcArgs: RpcArgs): Record<string, unknown> => {\n const hasParamsArg = typeof rpcArgs.params === \"string\";\n const hasParamsFile = typeof rpcArgs.paramsFile === \"string\";\n const inputCount = Number(hasParamsArg) + Number(hasParamsFile);\n\n if (inputCount > 1) {\n throw createUsageError(\"Provide only one params source: --params or --params-file.\");\n }\n if (hasParamsArg) {\n return parseJsonObject(rpcArgs.params ?? \"\", \"--params\");\n }\n if (hasParamsFile) {\n let raw = \"\";\n try {\n raw = readFileSync(rpcArgs.paramsFile ?? \"\", \"utf8\");\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unable to read file\";\n throw createUsageError(`Invalid --params-file: ${message}`);\n }\n if (!raw.trim()) {\n throw createUsageError(\"Invalid JSON from --params-file: empty input\");\n }\n return parseJsonObject(raw, \"--params-file\");\n }\n return {};\n};\n\nexport async function runRpc(args: ParsedArgs) {\n const rpcArgs = parseRpcArgs(args.rawArgs);\n if (!rpcArgs.unsafeInternal) {\n throw createUsageError(\n \"Missing --unsafe-internal. rpc is a power-user command that executes internal daemon commands and can mutate session state.\"\n );\n }\n if (!rpcArgs.name) {\n throw createUsageError(\"Missing --name\");\n }\n\n const params = resolveRpcParams(rpcArgs);\n const client = new DaemonClient({ autoRenew: true });\n try {\n const result = await client.call<unknown>(rpcArgs.name, params, { timeoutMs: rpcArgs.timeoutMs });\n if (args.outputFormat === \"text\") {\n const output = typeof result === \"string\" ? result : JSON.stringify(result, null, 2);\n return { success: true, message: output };\n }\n return {\n success: true,\n message: `RPC executed: ${rpcArgs.name}`,\n data: {\n name: rpcArgs.name,\n result\n }\n };\n } finally {\n await client.releaseBinding().catch(() => {});\n }\n}\n\nexport const __test__ = {\n parseJsonObject,\n parseRpcArgs,\n resolveRpcParams\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,180 @@
1
+ import {
2
+ parseBooleanFlag
3
+ } from "./chunk-RPXWUCQQ.js";
4
+ import {
5
+ createOpenDevBrowserCore
6
+ } from "./chunk-SXAGSEKZ.js";
7
+ import "./chunk-MX3NFLCE.js";
8
+ import "./chunk-ASMHEEKY.js";
9
+ import {
10
+ writeOutput
11
+ } from "./chunk-7GVOUZMQ.js";
12
+ import {
13
+ EXIT_USAGE,
14
+ createUsageError
15
+ } from "./chunk-IPE7TF2P.js";
16
+ import "./chunk-STGGGVYT.js";
17
+ import "./chunk-3ILXPKSJ.js";
18
+ import "./chunk-TBUCZX4A.js";
19
+ import "./chunk-Y2KL55OG.js";
20
+ import "./chunk-5SWZDVOW.js";
21
+ import "./chunk-S6S2UP6U.js";
22
+ import "./chunk-S5KZQJJI.js";
23
+ import "./chunk-KZ2IXVQT.js";
24
+ import "./chunk-WHQZBUNY.js";
25
+ import "./chunk-FUSXMW3G.js";
26
+
27
+ // src/cli/commands/run.ts
28
+ import { readFileSync } from "fs";
29
+ function parseRunArgs(rawArgs) {
30
+ const parsed = { flags: [] };
31
+ for (let i = 0; i < rawArgs.length; i += 1) {
32
+ const arg = rawArgs[i];
33
+ if (arg === "--script") {
34
+ const value = rawArgs[i + 1];
35
+ if (!value) throw createUsageError("Missing value for --script");
36
+ parsed.scriptPath = value;
37
+ i += 1;
38
+ continue;
39
+ }
40
+ if (arg?.startsWith("--script=")) {
41
+ parsed.scriptPath = arg.split("=", 2)[1];
42
+ continue;
43
+ }
44
+ if (arg === "--headless") {
45
+ parsed.headless = true;
46
+ continue;
47
+ }
48
+ if (arg === "--profile") {
49
+ const value = rawArgs[i + 1];
50
+ if (!value) throw createUsageError("Missing value for --profile");
51
+ parsed.profile = value;
52
+ i += 1;
53
+ continue;
54
+ }
55
+ if (arg?.startsWith("--profile=")) {
56
+ parsed.profile = arg.split("=", 2)[1];
57
+ continue;
58
+ }
59
+ if (arg === "--persist-profile") {
60
+ const value = rawArgs[i + 1];
61
+ if (value && !value.startsWith("--")) {
62
+ parsed.persistProfile = parseBooleanFlag(value, "--persist-profile");
63
+ i += 1;
64
+ } else {
65
+ parsed.persistProfile = true;
66
+ }
67
+ continue;
68
+ }
69
+ if (arg?.startsWith("--persist-profile=")) {
70
+ const value = arg.split("=", 2)[1];
71
+ if (!value) throw createUsageError("Missing value for --persist-profile");
72
+ parsed.persistProfile = parseBooleanFlag(value, "--persist-profile");
73
+ continue;
74
+ }
75
+ if (arg === "--chrome-path") {
76
+ const value = rawArgs[i + 1];
77
+ if (!value) throw createUsageError("Missing value for --chrome-path");
78
+ parsed.chromePath = value;
79
+ i += 1;
80
+ continue;
81
+ }
82
+ if (arg?.startsWith("--chrome-path=")) {
83
+ parsed.chromePath = arg.split("=", 2)[1];
84
+ continue;
85
+ }
86
+ if (arg === "--start-url") {
87
+ const value = rawArgs[i + 1];
88
+ if (!value) throw createUsageError("Missing value for --start-url");
89
+ parsed.startUrl = value;
90
+ i += 1;
91
+ continue;
92
+ }
93
+ if (arg?.startsWith("--start-url=")) {
94
+ const value = arg.split("=", 2)[1];
95
+ if (!value) throw createUsageError("Missing value for --start-url");
96
+ parsed.startUrl = value;
97
+ continue;
98
+ }
99
+ if (arg === "--flag") {
100
+ const value = rawArgs[i + 1];
101
+ if (!value) throw createUsageError("Missing value for --flag");
102
+ parsed.flags.push(value);
103
+ i += 1;
104
+ continue;
105
+ }
106
+ if (arg?.startsWith("--flag=")) {
107
+ const value = arg.split("=", 2)[1];
108
+ if (!value) throw createUsageError("Missing value for --flag");
109
+ parsed.flags.push(value);
110
+ continue;
111
+ }
112
+ }
113
+ return parsed;
114
+ }
115
+ function readScriptFromStdin() {
116
+ return new Promise((resolve, reject) => {
117
+ let data = "";
118
+ process.stdin.setEncoding("utf8");
119
+ process.stdin.on("data", (chunk) => {
120
+ data += chunk;
121
+ });
122
+ process.stdin.on("end", () => resolve(data));
123
+ process.stdin.on("error", reject);
124
+ });
125
+ }
126
+ async function runScriptCommand(args) {
127
+ const runArgs = parseRunArgs(args.rawArgs);
128
+ const outputOptions = { format: args.outputFormat, quiet: args.quiet };
129
+ let scriptRaw = "";
130
+ if (runArgs.scriptPath) {
131
+ scriptRaw = readFileSync(runArgs.scriptPath, "utf-8");
132
+ } else if (!process.stdin.isTTY) {
133
+ scriptRaw = await readScriptFromStdin();
134
+ } else {
135
+ throw createUsageError("Provide --script <path> or pipe JSON to stdin.");
136
+ }
137
+ let steps = [];
138
+ try {
139
+ const parsed = JSON.parse(scriptRaw);
140
+ if (Array.isArray(parsed)) {
141
+ steps = parsed;
142
+ } else if (parsed && typeof parsed === "object" && Array.isArray(parsed.steps)) {
143
+ steps = parsed.steps;
144
+ } else {
145
+ throw new Error("Script must be a JSON array or an object with steps.");
146
+ }
147
+ } catch (error) {
148
+ const message = error instanceof Error ? error.message : "Invalid JSON script.";
149
+ writeOutput({ success: false, error: message, exitCode: EXIT_USAGE }, outputOptions);
150
+ return { success: false, message, exitCode: EXIT_USAGE, data: { suppressOutput: true } };
151
+ }
152
+ const core = createOpenDevBrowserCore({ directory: process.cwd() });
153
+ const launchResult = await core.manager.launch({
154
+ profile: runArgs.profile,
155
+ headless: runArgs.headless,
156
+ startUrl: runArgs.startUrl,
157
+ chromePath: runArgs.chromePath,
158
+ flags: runArgs.flags.length ? runArgs.flags : void 0,
159
+ persistProfile: runArgs.persistProfile ?? false
160
+ });
161
+ try {
162
+ const result = await core.runner.run(launchResult.sessionId, steps, true);
163
+ writeOutput({
164
+ success: true,
165
+ sessionId: launchResult.sessionId,
166
+ warnings: launchResult.warnings.length ? launchResult.warnings : void 0,
167
+ ...result
168
+ }, outputOptions);
169
+ return { success: true, data: { suppressOutput: true } };
170
+ } finally {
171
+ await core.manager.disconnect(launchResult.sessionId, true);
172
+ core.cleanup();
173
+ }
174
+ }
175
+ var __test__ = { parseRunArgs };
176
+ export {
177
+ __test__,
178
+ runScriptCommand
179
+ };
180
+ //# sourceMappingURL=run-ADRYI3MS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/run.ts"],"sourcesContent":["import { readFileSync } from \"fs\";\nimport { createOpenDevBrowserCore } from \"../../core\";\nimport type { ParsedArgs } from \"../args\";\nimport { parseBooleanFlag } from \"../utils/parse\";\nimport { writeOutput } from \"../output\";\nimport { createUsageError, EXIT_USAGE } from \"../errors\";\n\ntype RunArgs = {\n scriptPath?: string;\n headless?: boolean;\n profile?: string;\n persistProfile?: boolean;\n chromePath?: string;\n startUrl?: string;\n flags: string[];\n};\n\nfunction parseRunArgs(rawArgs: string[]): RunArgs {\n const parsed: RunArgs = { flags: [] };\n for (let i = 0; i < rawArgs.length; i += 1) {\n const arg = rawArgs[i];\n if (arg === \"--script\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --script\");\n parsed.scriptPath = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--script=\")) {\n parsed.scriptPath = arg.split(\"=\", 2)[1];\n continue;\n }\n if (arg === \"--headless\") {\n parsed.headless = true;\n continue;\n }\n if (arg === \"--profile\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --profile\");\n parsed.profile = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--profile=\")) {\n parsed.profile = arg.split(\"=\", 2)[1];\n continue;\n }\n if (arg === \"--persist-profile\") {\n const value = rawArgs[i + 1];\n if (value && !value.startsWith(\"--\")) {\n parsed.persistProfile = parseBooleanFlag(value, \"--persist-profile\");\n i += 1;\n } else {\n parsed.persistProfile = true;\n }\n continue;\n }\n if (arg?.startsWith(\"--persist-profile=\")) {\n const value = arg.split(\"=\", 2)[1];\n if (!value) throw createUsageError(\"Missing value for --persist-profile\");\n parsed.persistProfile = parseBooleanFlag(value, \"--persist-profile\");\n continue;\n }\n if (arg === \"--chrome-path\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --chrome-path\");\n parsed.chromePath = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--chrome-path=\")) {\n parsed.chromePath = arg.split(\"=\", 2)[1];\n continue;\n }\n if (arg === \"--start-url\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --start-url\");\n parsed.startUrl = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--start-url=\")) {\n const value = arg.split(\"=\", 2)[1];\n if (!value) throw createUsageError(\"Missing value for --start-url\");\n parsed.startUrl = value;\n continue;\n }\n if (arg === \"--flag\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --flag\");\n parsed.flags.push(value);\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--flag=\")) {\n const value = arg.split(\"=\", 2)[1];\n if (!value) throw createUsageError(\"Missing value for --flag\");\n parsed.flags.push(value);\n continue;\n }\n }\n return parsed;\n}\n\nfunction readScriptFromStdin(): Promise<string> {\n return new Promise((resolve, reject) => {\n let data = \"\";\n process.stdin.setEncoding(\"utf8\");\n process.stdin.on(\"data\", (chunk) => {\n data += chunk;\n });\n process.stdin.on(\"end\", () => resolve(data));\n process.stdin.on(\"error\", reject);\n });\n}\n\nexport async function runScriptCommand(args: ParsedArgs) {\n const runArgs = parseRunArgs(args.rawArgs);\n const outputOptions = { format: args.outputFormat, quiet: args.quiet };\n\n let scriptRaw = \"\";\n if (runArgs.scriptPath) {\n scriptRaw = readFileSync(runArgs.scriptPath, \"utf-8\");\n } else if (!process.stdin.isTTY) {\n scriptRaw = await readScriptFromStdin();\n } else {\n throw createUsageError(\"Provide --script <path> or pipe JSON to stdin.\");\n }\n\n let steps: Array<{ action: string; args?: Record<string, unknown> }> = [];\n try {\n const parsed = JSON.parse(scriptRaw);\n if (Array.isArray(parsed)) {\n steps = parsed;\n } else if (parsed && typeof parsed === \"object\" && Array.isArray(parsed.steps)) {\n steps = parsed.steps;\n } else {\n throw new Error(\"Script must be a JSON array or an object with steps.\");\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Invalid JSON script.\";\n writeOutput({ success: false, error: message, exitCode: EXIT_USAGE }, outputOptions);\n return { success: false, message, exitCode: EXIT_USAGE, data: { suppressOutput: true } };\n }\n\n const core = createOpenDevBrowserCore({ directory: process.cwd() });\n const launchResult = await core.manager.launch({\n profile: runArgs.profile,\n headless: runArgs.headless,\n startUrl: runArgs.startUrl,\n chromePath: runArgs.chromePath,\n flags: runArgs.flags.length ? runArgs.flags : undefined,\n persistProfile: runArgs.persistProfile ?? false\n });\n\n try {\n const result = await core.runner.run(launchResult.sessionId, steps, true);\n writeOutput({\n success: true,\n sessionId: launchResult.sessionId,\n warnings: launchResult.warnings.length ? launchResult.warnings : undefined,\n ...result\n }, outputOptions);\n return { success: true, data: { suppressOutput: true } };\n } finally {\n await core.manager.disconnect(launchResult.sessionId, true);\n core.cleanup();\n }\n}\n\nexport const __test__ = { parseRunArgs };\n"],"mappings":"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","names":[]}
@@ -0,0 +1,67 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ parseNumberFlag,
4
+ parseOptionalStringFlag
5
+ } from "./chunk-RPXWUCQQ.js";
6
+ import {
7
+ DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS
8
+ } from "./chunk-OW5HMYMI.js";
9
+ import {
10
+ callDaemon
11
+ } from "./chunk-OYNLAZQU.js";
12
+ import "./chunk-LBPELU7L.js";
13
+ import "./chunk-SXAGSEKZ.js";
14
+ import "./chunk-MX3NFLCE.js";
15
+ import "./chunk-ASMHEEKY.js";
16
+ import {
17
+ createUsageError
18
+ } from "./chunk-IPE7TF2P.js";
19
+ import "./chunk-STGGGVYT.js";
20
+ import "./chunk-3ILXPKSJ.js";
21
+ import "./chunk-TBUCZX4A.js";
22
+ import "./chunk-Y2KL55OG.js";
23
+ import "./chunk-5SWZDVOW.js";
24
+ import "./chunk-S6S2UP6U.js";
25
+ import "./chunk-S5KZQJJI.js";
26
+ import "./chunk-KZ2IXVQT.js";
27
+ import "./chunk-WHQZBUNY.js";
28
+ import "./chunk-FUSXMW3G.js";
29
+
30
+ // src/cli/commands/devtools/screencast-start.ts
31
+ function parseScreencastStartArgs(rawArgs) {
32
+ const intervalValue = parseOptionalStringFlag(rawArgs, "--interval-ms");
33
+ const maxFramesValue = parseOptionalStringFlag(rawArgs, "--max-frames");
34
+ const timeoutValue = parseOptionalStringFlag(rawArgs, "--timeout-ms");
35
+ return {
36
+ sessionId: parseOptionalStringFlag(rawArgs, "--session-id"),
37
+ targetId: parseOptionalStringFlag(rawArgs, "--target-id"),
38
+ outputDir: parseOptionalStringFlag(rawArgs, "--output-dir"),
39
+ intervalMs: typeof intervalValue === "string" ? parseNumberFlag(intervalValue, "--interval-ms", { min: 250 }) : void 0,
40
+ maxFrames: typeof maxFramesValue === "string" ? parseNumberFlag(maxFramesValue, "--max-frames", { min: 1 }) : void 0,
41
+ timeoutMs: typeof timeoutValue === "string" ? parseNumberFlag(timeoutValue, "--timeout-ms", { min: 1 }) : void 0
42
+ };
43
+ }
44
+ async function runScreencastStart(args) {
45
+ const { sessionId, targetId, outputDir, intervalMs, maxFrames, timeoutMs } = parseScreencastStartArgs(args.rawArgs);
46
+ if (!sessionId) {
47
+ throw createUsageError("Missing --session-id");
48
+ }
49
+ const result = await callDaemon("page.screencast.start", {
50
+ sessionId,
51
+ ...typeof targetId === "string" ? { targetId } : {},
52
+ ...typeof outputDir === "string" ? { outputDir } : {},
53
+ ...typeof intervalMs === "number" ? { intervalMs } : {},
54
+ ...typeof maxFrames === "number" ? { maxFrames } : {}
55
+ }, {
56
+ timeoutMs: timeoutMs ?? DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS
57
+ });
58
+ return { success: true, message: "Screencast started.", data: result };
59
+ }
60
+ var __test__ = {
61
+ parseScreencastStartArgs
62
+ };
63
+ export {
64
+ __test__,
65
+ runScreencastStart
66
+ };
67
+ //# sourceMappingURL=screencast-start-DTLUHD5H.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/devtools/screencast-start.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\nimport { DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS } from \"../../transport-timeouts\";\nimport { parseNumberFlag, parseOptionalStringFlag } from \"../../utils/parse\";\n\ntype ScreencastStartArgs = {\n sessionId?: string;\n targetId?: string;\n outputDir?: string;\n intervalMs?: number;\n maxFrames?: number;\n timeoutMs?: number;\n};\n\nfunction parseScreencastStartArgs(rawArgs: string[]): ScreencastStartArgs {\n const intervalValue = parseOptionalStringFlag(rawArgs, \"--interval-ms\");\n const maxFramesValue = parseOptionalStringFlag(rawArgs, \"--max-frames\");\n const timeoutValue = parseOptionalStringFlag(rawArgs, \"--timeout-ms\");\n return {\n sessionId: parseOptionalStringFlag(rawArgs, \"--session-id\"),\n targetId: parseOptionalStringFlag(rawArgs, \"--target-id\"),\n outputDir: parseOptionalStringFlag(rawArgs, \"--output-dir\"),\n intervalMs: typeof intervalValue === \"string\"\n ? parseNumberFlag(intervalValue, \"--interval-ms\", { min: 250 })\n : undefined,\n maxFrames: typeof maxFramesValue === \"string\"\n ? parseNumberFlag(maxFramesValue, \"--max-frames\", { min: 1 })\n : undefined,\n timeoutMs: typeof timeoutValue === \"string\"\n ? parseNumberFlag(timeoutValue, \"--timeout-ms\", { min: 1 })\n : undefined\n };\n}\n\nexport async function runScreencastStart(args: ParsedArgs) {\n const { sessionId, targetId, outputDir, intervalMs, maxFrames, timeoutMs } = parseScreencastStartArgs(args.rawArgs);\n if (!sessionId) {\n throw createUsageError(\"Missing --session-id\");\n }\n const result = await callDaemon(\"page.screencast.start\", {\n sessionId,\n ...(typeof targetId === \"string\" ? { targetId } : {}),\n ...(typeof outputDir === \"string\" ? { outputDir } : {}),\n ...(typeof intervalMs === \"number\" ? { intervalMs } : {}),\n ...(typeof maxFrames === \"number\" ? { maxFrames } : {})\n }, {\n timeoutMs: timeoutMs ?? DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS\n });\n return { success: true, message: \"Screencast started.\", data: result };\n}\n\nexport const __test__ = {\n parseScreencastStartArgs\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,SAAS,yBAAyB,SAAwC;AACxE,QAAM,gBAAgB,wBAAwB,SAAS,eAAe;AACtE,QAAM,iBAAiB,wBAAwB,SAAS,cAAc;AACtE,QAAM,eAAe,wBAAwB,SAAS,cAAc;AACpE,SAAO;AAAA,IACL,WAAW,wBAAwB,SAAS,cAAc;AAAA,IAC1D,UAAU,wBAAwB,SAAS,aAAa;AAAA,IACxD,WAAW,wBAAwB,SAAS,cAAc;AAAA,IAC1D,YAAY,OAAO,kBAAkB,WACjC,gBAAgB,eAAe,iBAAiB,EAAE,KAAK,IAAI,CAAC,IAC5D;AAAA,IACJ,WAAW,OAAO,mBAAmB,WACjC,gBAAgB,gBAAgB,gBAAgB,EAAE,KAAK,EAAE,CAAC,IAC1D;AAAA,IACJ,WAAW,OAAO,iBAAiB,WAC/B,gBAAgB,cAAc,gBAAgB,EAAE,KAAK,EAAE,CAAC,IACxD;AAAA,EACN;AACF;AAEA,eAAsB,mBAAmB,MAAkB;AACzD,QAAM,EAAE,WAAW,UAAU,WAAW,YAAY,WAAW,UAAU,IAAI,yBAAyB,KAAK,OAAO;AAClH,MAAI,CAAC,WAAW;AACd,UAAM,iBAAiB,sBAAsB;AAAA,EAC/C;AACA,QAAM,SAAS,MAAM,WAAW,yBAAyB;AAAA,IACvD;AAAA,IACA,GAAI,OAAO,aAAa,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,IACnD,GAAI,OAAO,cAAc,WAAW,EAAE,UAAU,IAAI,CAAC;AAAA,IACrD,GAAI,OAAO,eAAe,WAAW,EAAE,WAAW,IAAI,CAAC;AAAA,IACvD,GAAI,OAAO,cAAc,WAAW,EAAE,UAAU,IAAI,CAAC;AAAA,EACvD,GAAG;AAAA,IACD,WAAW,aAAa;AAAA,EAC1B,CAAC;AACD,SAAO,EAAE,SAAS,MAAM,SAAS,uBAAuB,MAAM,OAAO;AACvE;AAEO,IAAM,WAAW;AAAA,EACtB;AACF;","names":[]}
@@ -0,0 +1,59 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ parseNumberFlag,
4
+ parseOptionalStringFlag
5
+ } from "./chunk-RPXWUCQQ.js";
6
+ import {
7
+ DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS
8
+ } from "./chunk-OW5HMYMI.js";
9
+ import {
10
+ callDaemon
11
+ } from "./chunk-OYNLAZQU.js";
12
+ import "./chunk-LBPELU7L.js";
13
+ import "./chunk-SXAGSEKZ.js";
14
+ import "./chunk-MX3NFLCE.js";
15
+ import "./chunk-ASMHEEKY.js";
16
+ import {
17
+ createUsageError
18
+ } from "./chunk-IPE7TF2P.js";
19
+ import "./chunk-STGGGVYT.js";
20
+ import "./chunk-3ILXPKSJ.js";
21
+ import "./chunk-TBUCZX4A.js";
22
+ import "./chunk-Y2KL55OG.js";
23
+ import "./chunk-5SWZDVOW.js";
24
+ import "./chunk-S6S2UP6U.js";
25
+ import "./chunk-S5KZQJJI.js";
26
+ import "./chunk-KZ2IXVQT.js";
27
+ import "./chunk-WHQZBUNY.js";
28
+ import "./chunk-FUSXMW3G.js";
29
+
30
+ // src/cli/commands/devtools/screencast-stop.ts
31
+ function parseScreencastStopArgs(rawArgs) {
32
+ const timeoutValue = parseOptionalStringFlag(rawArgs, "--timeout-ms");
33
+ return {
34
+ sessionId: parseOptionalStringFlag(rawArgs, "--session-id"),
35
+ screencastId: parseOptionalStringFlag(rawArgs, "--screencast-id"),
36
+ timeoutMs: typeof timeoutValue === "string" ? parseNumberFlag(timeoutValue, "--timeout-ms", { min: 1 }) : void 0
37
+ };
38
+ }
39
+ async function runScreencastStop(args) {
40
+ const { sessionId, screencastId, timeoutMs } = parseScreencastStopArgs(args.rawArgs);
41
+ if (!sessionId) {
42
+ throw createUsageError("Missing --session-id");
43
+ }
44
+ if (!screencastId) {
45
+ throw createUsageError("Missing --screencast-id");
46
+ }
47
+ const result = await callDaemon("page.screencast.stop", { sessionId, screencastId }, {
48
+ timeoutMs: timeoutMs ?? DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS
49
+ });
50
+ return { success: true, message: "Screencast stopped.", data: result };
51
+ }
52
+ var __test__ = {
53
+ parseScreencastStopArgs
54
+ };
55
+ export {
56
+ __test__,
57
+ runScreencastStop
58
+ };
59
+ //# sourceMappingURL=screencast-stop-54C5LRSS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/devtools/screencast-stop.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\nimport { DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS } from \"../../transport-timeouts\";\nimport { parseNumberFlag, parseOptionalStringFlag } from \"../../utils/parse\";\n\ntype ScreencastStopArgs = {\n sessionId?: string;\n screencastId?: string;\n timeoutMs?: number;\n};\n\nfunction parseScreencastStopArgs(rawArgs: string[]): ScreencastStopArgs {\n const timeoutValue = parseOptionalStringFlag(rawArgs, \"--timeout-ms\");\n return {\n sessionId: parseOptionalStringFlag(rawArgs, \"--session-id\"),\n screencastId: parseOptionalStringFlag(rawArgs, \"--screencast-id\"),\n timeoutMs: typeof timeoutValue === \"string\"\n ? parseNumberFlag(timeoutValue, \"--timeout-ms\", { min: 1 })\n : undefined\n };\n}\n\nexport async function runScreencastStop(args: ParsedArgs) {\n const { sessionId, screencastId, timeoutMs } = parseScreencastStopArgs(args.rawArgs);\n if (!sessionId) {\n throw createUsageError(\"Missing --session-id\");\n }\n if (!screencastId) {\n throw createUsageError(\"Missing --screencast-id\");\n }\n const result = await callDaemon(\"page.screencast.stop\", { sessionId, screencastId }, {\n timeoutMs: timeoutMs ?? DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS\n });\n return { success: true, message: \"Screencast stopped.\", data: result };\n}\n\nexport const __test__ = {\n parseScreencastStopArgs\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,SAAS,wBAAwB,SAAuC;AACtE,QAAM,eAAe,wBAAwB,SAAS,cAAc;AACpE,SAAO;AAAA,IACL,WAAW,wBAAwB,SAAS,cAAc;AAAA,IAC1D,cAAc,wBAAwB,SAAS,iBAAiB;AAAA,IAChE,WAAW,OAAO,iBAAiB,WAC/B,gBAAgB,cAAc,gBAAgB,EAAE,KAAK,EAAE,CAAC,IACxD;AAAA,EACN;AACF;AAEA,eAAsB,kBAAkB,MAAkB;AACxD,QAAM,EAAE,WAAW,cAAc,UAAU,IAAI,wBAAwB,KAAK,OAAO;AACnF,MAAI,CAAC,WAAW;AACd,UAAM,iBAAiB,sBAAsB;AAAA,EAC/C;AACA,MAAI,CAAC,cAAc;AACjB,UAAM,iBAAiB,yBAAyB;AAAA,EAClD;AACA,QAAM,SAAS,MAAM,WAAW,wBAAwB,EAAE,WAAW,aAAa,GAAG;AAAA,IACnF,WAAW,aAAa;AAAA,EAC1B,CAAC;AACD,SAAO,EAAE,SAAS,MAAM,SAAS,uBAAuB,MAAM,OAAO;AACvE;AAEO,IAAM,WAAW;AAAA,EACtB;AACF;","names":[]}
@@ -0,0 +1,68 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ parseNumberFlag,
4
+ parseOptionalStringFlag
5
+ } from "./chunk-RPXWUCQQ.js";
6
+ import {
7
+ DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS
8
+ } from "./chunk-OW5HMYMI.js";
9
+ import {
10
+ callDaemon
11
+ } from "./chunk-OYNLAZQU.js";
12
+ import "./chunk-LBPELU7L.js";
13
+ import "./chunk-SXAGSEKZ.js";
14
+ import "./chunk-MX3NFLCE.js";
15
+ import "./chunk-ASMHEEKY.js";
16
+ import {
17
+ createUsageError
18
+ } from "./chunk-IPE7TF2P.js";
19
+ import "./chunk-STGGGVYT.js";
20
+ import "./chunk-3ILXPKSJ.js";
21
+ import "./chunk-TBUCZX4A.js";
22
+ import "./chunk-Y2KL55OG.js";
23
+ import "./chunk-5SWZDVOW.js";
24
+ import "./chunk-S6S2UP6U.js";
25
+ import "./chunk-S5KZQJJI.js";
26
+ import "./chunk-KZ2IXVQT.js";
27
+ import "./chunk-WHQZBUNY.js";
28
+ import "./chunk-FUSXMW3G.js";
29
+
30
+ // src/cli/commands/devtools/screenshot.ts
31
+ function parseScreenshotArgs(rawArgs) {
32
+ const timeoutValue = parseOptionalStringFlag(rawArgs, "--timeout-ms");
33
+ const parsed = {
34
+ sessionId: parseOptionalStringFlag(rawArgs, "--session-id"),
35
+ targetId: parseOptionalStringFlag(rawArgs, "--target-id"),
36
+ path: parseOptionalStringFlag(rawArgs, "--path"),
37
+ ref: parseOptionalStringFlag(rawArgs, "--ref"),
38
+ fullPage: rawArgs.includes("--full-page"),
39
+ timeoutMs: typeof timeoutValue === "string" ? parseNumberFlag(timeoutValue, "--timeout-ms", { min: 1 }) : void 0
40
+ };
41
+ if (parsed.ref && parsed.fullPage) {
42
+ throw createUsageError("Choose either --ref or --full-page.");
43
+ }
44
+ return parsed;
45
+ }
46
+ async function runScreenshot(args) {
47
+ const { sessionId, targetId, path, ref, fullPage, timeoutMs } = parseScreenshotArgs(args.rawArgs);
48
+ if (!sessionId) throw createUsageError("Missing --session-id");
49
+ const params = {
50
+ sessionId,
51
+ ...typeof path === "string" ? { path } : {},
52
+ ...typeof targetId === "string" ? { targetId } : {},
53
+ ...typeof ref === "string" ? { ref } : {},
54
+ ...fullPage === true ? { fullPage: true } : {}
55
+ };
56
+ const result = await callDaemon("page.screenshot", params, {
57
+ timeoutMs: timeoutMs ?? DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS
58
+ });
59
+ return { success: true, message: "Screenshot captured.", data: result };
60
+ }
61
+ var __test__ = {
62
+ parseScreenshotArgs
63
+ };
64
+ export {
65
+ __test__,
66
+ runScreenshot
67
+ };
68
+ //# sourceMappingURL=screenshot-HOAKR7P7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/devtools/screenshot.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\nimport { DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS } from \"../../transport-timeouts\";\nimport { parseNumberFlag, parseOptionalStringFlag } from \"../../utils/parse\";\n\ntype ScreenshotArgs = {\n sessionId?: string;\n targetId?: string;\n path?: string;\n ref?: string;\n fullPage?: boolean;\n timeoutMs?: number;\n};\n\nfunction parseScreenshotArgs(rawArgs: string[]): ScreenshotArgs {\n const timeoutValue = parseOptionalStringFlag(rawArgs, \"--timeout-ms\");\n const parsed: ScreenshotArgs = {\n sessionId: parseOptionalStringFlag(rawArgs, \"--session-id\"),\n targetId: parseOptionalStringFlag(rawArgs, \"--target-id\"),\n path: parseOptionalStringFlag(rawArgs, \"--path\"),\n ref: parseOptionalStringFlag(rawArgs, \"--ref\"),\n fullPage: rawArgs.includes(\"--full-page\"),\n timeoutMs: typeof timeoutValue === \"string\"\n ? parseNumberFlag(timeoutValue, \"--timeout-ms\", { min: 1 })\n : undefined\n };\n if (parsed.ref && parsed.fullPage) {\n throw createUsageError(\"Choose either --ref or --full-page.\");\n }\n return parsed;\n}\n\nexport async function runScreenshot(args: ParsedArgs) {\n const { sessionId, targetId, path, ref, fullPage, timeoutMs } = parseScreenshotArgs(args.rawArgs);\n if (!sessionId) throw createUsageError(\"Missing --session-id\");\n const params = {\n sessionId,\n ...(typeof path === \"string\" ? { path } : {}),\n ...(typeof targetId === \"string\" ? { targetId } : {}),\n ...(typeof ref === \"string\" ? { ref } : {}),\n ...(fullPage === true ? { fullPage: true } : {})\n };\n const result = await callDaemon(\"page.screenshot\", params, {\n timeoutMs: timeoutMs ?? DEFAULT_SCREENSHOT_TRANSPORT_TIMEOUT_MS\n });\n return { success: true, message: \"Screenshot captured.\", data: result };\n}\n\nexport const __test__ = {\n parseScreenshotArgs\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,SAAS,oBAAoB,SAAmC;AAC9D,QAAM,eAAe,wBAAwB,SAAS,cAAc;AACpE,QAAM,SAAyB;AAAA,IAC7B,WAAW,wBAAwB,SAAS,cAAc;AAAA,IAC1D,UAAU,wBAAwB,SAAS,aAAa;AAAA,IACxD,MAAM,wBAAwB,SAAS,QAAQ;AAAA,IAC/C,KAAK,wBAAwB,SAAS,OAAO;AAAA,IAC7C,UAAU,QAAQ,SAAS,aAAa;AAAA,IACxC,WAAW,OAAO,iBAAiB,WAC/B,gBAAgB,cAAc,gBAAgB,EAAE,KAAK,EAAE,CAAC,IACxD;AAAA,EACN;AACA,MAAI,OAAO,OAAO,OAAO,UAAU;AACjC,UAAM,iBAAiB,qCAAqC;AAAA,EAC9D;AACA,SAAO;AACT;AAEA,eAAsB,cAAc,MAAkB;AACpD,QAAM,EAAE,WAAW,UAAU,MAAM,KAAK,UAAU,UAAU,IAAI,oBAAoB,KAAK,OAAO;AAChG,MAAI,CAAC,UAAW,OAAM,iBAAiB,sBAAsB;AAC7D,QAAM,SAAS;AAAA,IACb;AAAA,IACA,GAAI,OAAO,SAAS,WAAW,EAAE,KAAK,IAAI,CAAC;AAAA,IAC3C,GAAI,OAAO,aAAa,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,IACnD,GAAI,OAAO,QAAQ,WAAW,EAAE,IAAI,IAAI,CAAC;AAAA,IACzC,GAAI,aAAa,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;AAAA,EAChD;AACA,QAAM,SAAS,MAAM,WAAW,mBAAmB,QAAQ;AAAA,IACzD,WAAW,aAAa;AAAA,EAC1B,CAAC;AACD,SAAO,EAAE,SAAS,MAAM,SAAS,wBAAwB,MAAM,OAAO;AACxE;AAEO,IAAM,WAAW;AAAA,EACtB;AACF;","names":[]}