opendevbrowser 0.0.28 → 0.0.30

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 (325) hide show
  1. package/README.md +2 -2
  2. package/dist/accessibility-snapshot-CQ4ZKWKC.js +39 -0
  3. package/dist/accessibility-snapshot-CQ4ZKWKC.js.map +1 -0
  4. package/dist/active-window-TD5HYJ72.js +37 -0
  5. package/dist/active-window-TD5HYJ72.js.map +1 -0
  6. package/dist/annotate-VTLFS2XV.js +205 -0
  7. package/dist/annotate-VTLFS2XV.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-BCI5KYCW.js +84 -0
  11. package/dist/attr-BCI5KYCW.js.map +1 -0
  12. package/dist/browser/ops-client.d.ts +1 -0
  13. package/dist/browser/ops-client.d.ts.map +1 -1
  14. package/dist/canvas-5DFEEOKM.js +309 -0
  15. package/dist/canvas-5DFEEOKM.js.map +1 -0
  16. package/dist/capture-desktop-HFTTWY4Z.js +38 -0
  17. package/dist/capture-desktop-HFTTWY4Z.js.map +1 -0
  18. package/dist/capture-window-X63XPIFF.js +40 -0
  19. package/dist/capture-window-X63XPIFF.js.map +1 -0
  20. package/dist/check-LWAUY7GC.js +71 -0
  21. package/dist/check-LWAUY7GC.js.map +1 -0
  22. package/dist/checked-ZSOUKVYT.js +71 -0
  23. package/dist/checked-ZSOUKVYT.js.map +1 -0
  24. package/dist/chunk-2SIMIPLY.js +67 -0
  25. package/dist/chunk-2SIMIPLY.js.map +1 -0
  26. package/dist/chunk-37VSRUW4.js +141 -0
  27. package/dist/chunk-37VSRUW4.js.map +1 -0
  28. package/dist/{chunk-T3VVHJTK.js → chunk-4BEJVZRK.js} +1078 -1458
  29. package/dist/chunk-4BEJVZRK.js.map +1 -0
  30. package/dist/chunk-5SWZDVOW.js +144 -0
  31. package/dist/chunk-5SWZDVOW.js.map +1 -0
  32. package/dist/chunk-6PVZ2ABC.js +429 -0
  33. package/dist/chunk-6PVZ2ABC.js.map +1 -0
  34. package/dist/chunk-7GVOUZMQ.js +64 -0
  35. package/dist/chunk-7GVOUZMQ.js.map +1 -0
  36. package/dist/chunk-7THCPS52.js +84 -0
  37. package/dist/chunk-7THCPS52.js.map +1 -0
  38. package/dist/chunk-AHEWXOKY.js +64 -0
  39. package/dist/chunk-AHEWXOKY.js.map +1 -0
  40. package/dist/chunk-ASMHEEKY.js +10 -0
  41. package/dist/chunk-ASMHEEKY.js.map +1 -0
  42. package/dist/chunk-COAOWH3G.js +3651 -0
  43. package/dist/chunk-COAOWH3G.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-GQJ5S3BL.js +20 -0
  49. package/dist/chunk-GQJ5S3BL.js.map +1 -0
  50. package/dist/chunk-IPE7TF2P.js +54 -0
  51. package/dist/chunk-IPE7TF2P.js.map +1 -0
  52. package/dist/chunk-IQTJHXZJ.js +126 -0
  53. package/dist/chunk-IQTJHXZJ.js.map +1 -0
  54. package/dist/chunk-J47N77VG.js +2969 -0
  55. package/dist/chunk-J47N77VG.js.map +1 -0
  56. package/dist/chunk-JZXD6FWR.js +25 -0
  57. package/dist/chunk-JZXD6FWR.js.map +1 -0
  58. package/dist/{chunk-QVWOPIZJ.js → chunk-KDSNXS6N.js} +75 -149
  59. package/dist/chunk-KDSNXS6N.js.map +1 -0
  60. package/dist/chunk-KZ2IXVQT.js +219 -0
  61. package/dist/chunk-KZ2IXVQT.js.map +1 -0
  62. package/dist/chunk-MD655IPO.js +838 -0
  63. package/dist/chunk-MD655IPO.js.map +1 -0
  64. package/dist/chunk-MX3NFLCE.js +940 -0
  65. package/dist/chunk-MX3NFLCE.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-PPUWQKIC.js +26 -0
  69. package/dist/chunk-PPUWQKIC.js.map +1 -0
  70. package/dist/{chunk-I5ZCOZZV.js → chunk-QOMWCRE3.js} +1202 -9561
  71. package/dist/chunk-QOMWCRE3.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-T4GMCW6Z.js +46 -0
  80. package/dist/chunk-T4GMCW6Z.js.map +1 -0
  81. package/dist/chunk-WHQZBUNY.js +982 -0
  82. package/dist/chunk-WHQZBUNY.js.map +1 -0
  83. package/dist/chunk-WOXBLP7V.js +610 -0
  84. package/dist/chunk-WOXBLP7V.js.map +1 -0
  85. package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
  86. package/dist/cli/commands/macro-resolve.d.ts +4 -1
  87. package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
  88. package/dist/cli/commands/product-video.d.ts.map +1 -1
  89. package/dist/cli/commands/research.d.ts.map +1 -1
  90. package/dist/cli/commands/serve.d.ts.map +1 -1
  91. package/dist/cli/commands/shopping.d.ts.map +1 -1
  92. package/dist/cli/commands/workflow-output.d.ts +2 -0
  93. package/dist/cli/commands/workflow-output.d.ts.map +1 -0
  94. package/dist/cli/daemon-commands.d.ts.map +1 -1
  95. package/dist/cli/daemon.d.ts.map +1 -1
  96. package/dist/cli/index.js +204 -8123
  97. package/dist/cli/index.js.map +1 -1
  98. package/dist/cli/installers/postinstall-skill-sync.js +2 -1
  99. package/dist/cli/installers/postinstall-skill-sync.js.map +1 -1
  100. package/dist/cli/remote-relay.d.ts.map +1 -1
  101. package/dist/click-2AILSEIZ.js +81 -0
  102. package/dist/click-2AILSEIZ.js.map +1 -0
  103. package/dist/clone-component-TPJS3PEG.js +82 -0
  104. package/dist/clone-component-TPJS3PEG.js.map +1 -0
  105. package/dist/clone-page-LE74CIFC.js +69 -0
  106. package/dist/clone-page-LE74CIFC.js.map +1 -0
  107. package/dist/close-HN4YI47K.js +63 -0
  108. package/dist/close-HN4YI47K.js.map +1 -0
  109. package/dist/close-WFERRHX6.js +63 -0
  110. package/dist/close-WFERRHX6.js.map +1 -0
  111. package/dist/connect-RWBV2UCQ.js +107 -0
  112. package/dist/connect-RWBV2UCQ.js.map +1 -0
  113. package/dist/console-poll-PP4YYPDF.js +76 -0
  114. package/dist/console-poll-PP4YYPDF.js.map +1 -0
  115. package/dist/cookie-import-6IP776FC.js +177 -0
  116. package/dist/cookie-import-6IP776FC.js.map +1 -0
  117. package/dist/cookie-list-O2KG6DPU.js +117 -0
  118. package/dist/cookie-list-O2KG6DPU.js.map +1 -0
  119. package/dist/daemon-2BSAZXLT.js +194 -0
  120. package/dist/daemon-2BSAZXLT.js.map +1 -0
  121. package/dist/daemon-fingerprint.json +1 -1
  122. package/dist/debug-trace-snapshot-F3BDVZXS.js +136 -0
  123. package/dist/debug-trace-snapshot-F3BDVZXS.js.map +1 -0
  124. package/dist/dialog-6JQYUWMQ.js +75 -0
  125. package/dist/dialog-6JQYUWMQ.js.map +1 -0
  126. package/dist/disconnect-763TP7GH.js +58 -0
  127. package/dist/disconnect-763TP7GH.js.map +1 -0
  128. package/dist/enabled-DLYQFNIP.js +71 -0
  129. package/dist/enabled-DLYQFNIP.js.map +1 -0
  130. package/dist/extension-extractor-GKWSFHPN.js +11 -0
  131. package/dist/extension-extractor-GKWSFHPN.js.map +1 -0
  132. package/dist/global-D6WLWBXA.js +56 -0
  133. package/dist/global-D6WLWBXA.js.map +1 -0
  134. package/dist/goto-S346TJJH.js +98 -0
  135. package/dist/goto-S346TJJH.js.map +1 -0
  136. package/dist/help-EKKKEDL5.js +491 -0
  137. package/dist/help-EKKKEDL5.js.map +1 -0
  138. package/dist/hover-6JVJFGO7.js +71 -0
  139. package/dist/hover-6JVJFGO7.js.map +1 -0
  140. package/dist/html-EVOSPBIT.js +84 -0
  141. package/dist/html-EVOSPBIT.js.map +1 -0
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +87 -38
  144. package/dist/index.js.map +1 -1
  145. package/dist/inspector-H57BVUJP.js +62 -0
  146. package/dist/inspector-H57BVUJP.js.map +1 -0
  147. package/dist/inspector-audit-NQBAJWC7.js +84 -0
  148. package/dist/inspector-audit-NQBAJWC7.js.map +1 -0
  149. package/dist/inspector-plan-ZDIQVND3.js +69 -0
  150. package/dist/inspector-plan-ZDIQVND3.js.map +1 -0
  151. package/dist/inspiredesign-IEUL4PX3.js +234 -0
  152. package/dist/inspiredesign-IEUL4PX3.js.map +1 -0
  153. package/dist/install-autostart-output-5DOMKCQL.js +41 -0
  154. package/dist/install-autostart-output-5DOMKCQL.js.map +1 -0
  155. package/dist/install-autostart-reconciliation-NHKOFYTD.js +73 -0
  156. package/dist/install-autostart-reconciliation-NHKOFYTD.js.map +1 -0
  157. package/dist/launch-EK66VQPF.js +225 -0
  158. package/dist/launch-EK66VQPF.js.map +1 -0
  159. package/dist/list-ADZAQ2IU.js +51 -0
  160. package/dist/list-ADZAQ2IU.js.map +1 -0
  161. package/dist/list-KKUKN467.js +54 -0
  162. package/dist/list-KKUKN467.js.map +1 -0
  163. package/dist/local-HXJLUUNT.js +54 -0
  164. package/dist/local-HXJLUUNT.js.map +1 -0
  165. package/dist/macro-resolve-6DOQJ7CA.js +253 -0
  166. package/dist/macro-resolve-6DOQJ7CA.js.map +1 -0
  167. package/dist/macros/execute-runtime.d.ts +3 -1
  168. package/dist/macros/execute-runtime.d.ts.map +1 -1
  169. package/dist/macros/execute.d.ts +2 -0
  170. package/dist/macros/execute.d.ts.map +1 -1
  171. package/dist/native-UPLVQ2SG.js +22 -0
  172. package/dist/native-UPLVQ2SG.js.map +1 -0
  173. package/dist/network-poll-NUL4PDPY.js +76 -0
  174. package/dist/network-poll-NUL4PDPY.js.map +1 -0
  175. package/dist/new-5NKYPEFT.js +69 -0
  176. package/dist/new-5NKYPEFT.js.map +1 -0
  177. package/dist/onboarding-metadata-7E3KLYSZ.js +27 -0
  178. package/dist/onboarding-metadata-7E3KLYSZ.js.map +1 -0
  179. package/dist/open-NR3BPLXV.js +81 -0
  180. package/dist/open-NR3BPLXV.js.map +1 -0
  181. package/dist/opendevbrowser.d.ts.map +1 -1
  182. package/dist/opendevbrowser.js +87 -38
  183. package/dist/opendevbrowser.js.map +1 -1
  184. package/dist/perf-HJ36ZI6H.js +58 -0
  185. package/dist/perf-HJ36ZI6H.js.map +1 -0
  186. package/dist/pointer-down-IYTTQWXZ.js +55 -0
  187. package/dist/pointer-down-IYTTQWXZ.js.map +1 -0
  188. package/dist/pointer-drag-A2YC5PWI.js +54 -0
  189. package/dist/pointer-drag-A2YC5PWI.js.map +1 -0
  190. package/dist/pointer-move-W5K5FUI4.js +52 -0
  191. package/dist/pointer-move-W5K5FUI4.js.map +1 -0
  192. package/dist/pointer-up-6GWVO64Y.js +55 -0
  193. package/dist/pointer-up-6GWVO64Y.js.map +1 -0
  194. package/dist/press-A3V5WB3S.js +83 -0
  195. package/dist/press-A3V5WB3S.js.map +1 -0
  196. package/dist/product-video-52REKWF3.js +235 -0
  197. package/dist/product-video-52REKWF3.js.map +1 -0
  198. package/dist/providers/artifacts.d.ts +0 -2
  199. package/dist/providers/artifacts.d.ts.map +1 -1
  200. package/dist/providers/blocker.d.ts.map +1 -1
  201. package/dist/providers/bounded-map.d.ts +2 -0
  202. package/dist/providers/bounded-map.d.ts.map +1 -0
  203. package/dist/providers/community/index.d.ts.map +1 -1
  204. package/dist/providers/constraint.d.ts.map +1 -1
  205. package/dist/providers/index.d.ts +1 -0
  206. package/dist/providers/index.d.ts.map +1 -1
  207. package/dist/providers/renderer.d.ts.map +1 -1
  208. package/dist/providers/research-compiler.d.ts +1 -1
  209. package/dist/providers/research-compiler.d.ts.map +1 -1
  210. package/dist/providers/research-executor.d.ts.map +1 -1
  211. package/dist/providers/runtime-factory.d.ts.map +1 -1
  212. package/dist/providers/shared/traversal-url.d.ts +3 -0
  213. package/dist/providers/shared/traversal-url.d.ts.map +1 -1
  214. package/dist/providers/shopping/index.d.ts.map +1 -1
  215. package/dist/providers/social/search-quality.d.ts.map +1 -1
  216. package/dist/providers/workflow-handoff.d.ts +4 -0
  217. package/dist/providers/workflow-handoff.d.ts.map +1 -1
  218. package/dist/providers/workflow-output-root.d.ts +6 -0
  219. package/dist/providers/workflow-output-root.d.ts.map +1 -0
  220. package/dist/providers/workflows.d.ts.map +1 -1
  221. package/dist/{providers-QF2RFB4J.js → providers-IMFYMMHQ.js} +19 -14
  222. package/dist/providers-IMFYMMHQ.js.map +1 -0
  223. package/dist/public-surface/generated-manifest.d.ts +2 -2
  224. package/dist/public-surface/generated-manifest.d.ts.map +1 -1
  225. package/dist/public-surface/source.d.ts +2 -2
  226. package/dist/public-surface/source.d.ts.map +1 -1
  227. package/dist/relay/protocol.d.ts +3 -1
  228. package/dist/relay/protocol.d.ts.map +1 -1
  229. package/dist/relay/relay-server.d.ts +6 -0
  230. package/dist/relay/relay-server.d.ts.map +1 -1
  231. package/dist/research-WB6BBCDD.js +295 -0
  232. package/dist/research-WB6BBCDD.js.map +1 -0
  233. package/dist/review-BGWVY4RA.js +48 -0
  234. package/dist/review-BGWVY4RA.js.map +1 -0
  235. package/dist/review-desktop-LEORC5VS.js +54 -0
  236. package/dist/review-desktop-LEORC5VS.js.map +1 -0
  237. package/dist/rpc-4TSKSFGC.js +159 -0
  238. package/dist/rpc-4TSKSFGC.js.map +1 -0
  239. package/dist/run-3NBLVWXD.js +180 -0
  240. package/dist/run-3NBLVWXD.js.map +1 -0
  241. package/dist/screencast-start-UZVIT3IN.js +67 -0
  242. package/dist/screencast-start-UZVIT3IN.js.map +1 -0
  243. package/dist/screencast-stop-NOSJSIUO.js +59 -0
  244. package/dist/screencast-stop-NOSJSIUO.js.map +1 -0
  245. package/dist/screenshot-LARG4JQG.js +68 -0
  246. package/dist/screenshot-LARG4JQG.js.map +1 -0
  247. package/dist/scroll-VNFMV6TW.js +84 -0
  248. package/dist/scroll-VNFMV6TW.js.map +1 -0
  249. package/dist/scroll-into-view-VYRT3JPT.js +71 -0
  250. package/dist/scroll-into-view-VYRT3JPT.js.map +1 -0
  251. package/dist/select-KJTUZDVO.js +86 -0
  252. package/dist/select-KJTUZDVO.js.map +1 -0
  253. package/dist/serve-EV7K4HKR.js +498 -0
  254. package/dist/serve-EV7K4HKR.js.map +1 -0
  255. package/dist/shopping-DTXHVQ2X.js +273 -0
  256. package/dist/shopping-DTXHVQ2X.js.map +1 -0
  257. package/dist/skill-lifecycle-5UAZGKSN.js +89 -0
  258. package/dist/skill-lifecycle-5UAZGKSN.js.map +1 -0
  259. package/dist/skills-NSXDX6YM.js +26 -0
  260. package/dist/skills-NSXDX6YM.js.map +1 -0
  261. package/dist/snapshot-3XQMCMRJ.js +113 -0
  262. package/dist/snapshot-3XQMCMRJ.js.map +1 -0
  263. package/dist/status-OXSYA5XD.js +35 -0
  264. package/dist/status-OXSYA5XD.js.map +1 -0
  265. package/dist/status-YUMDP5KY.js +132 -0
  266. package/dist/status-YUMDP5KY.js.map +1 -0
  267. package/dist/status-capabilities-P4KDSE2Y.js +57 -0
  268. package/dist/status-capabilities-P4KDSE2Y.js.map +1 -0
  269. package/dist/text-V3B7UVIH.js +84 -0
  270. package/dist/text-V3B7UVIH.js.map +1 -0
  271. package/dist/tools/deps.d.ts +1 -0
  272. package/dist/tools/deps.d.ts.map +1 -1
  273. package/dist/tools/inspiredesign_run.d.ts.map +1 -1
  274. package/dist/tools/macro_resolve.d.ts.map +1 -1
  275. package/dist/tools/product_video_run.d.ts.map +1 -1
  276. package/dist/tools/research_run.d.ts.map +1 -1
  277. package/dist/tools/shopping_run.d.ts.map +1 -1
  278. package/dist/tools/workflow-output.d.ts +3 -0
  279. package/dist/tools/workflow-output.d.ts.map +1 -0
  280. package/dist/type-IYBN3ZLR.js +94 -0
  281. package/dist/type-IYBN3ZLR.js.map +1 -0
  282. package/dist/uncheck-SG737EGI.js +71 -0
  283. package/dist/uncheck-SG737EGI.js.map +1 -0
  284. package/dist/uninstall-KYKGJAX7.js +91 -0
  285. package/dist/uninstall-KYKGJAX7.js.map +1 -0
  286. package/dist/update-SMXPYGXS.js +305 -0
  287. package/dist/update-SMXPYGXS.js.map +1 -0
  288. package/dist/update-skill-modes-BVX7IVMW.js +38 -0
  289. package/dist/update-skill-modes-BVX7IVMW.js.map +1 -0
  290. package/dist/upload-KH6ZABJA.js +56 -0
  291. package/dist/upload-KH6ZABJA.js.map +1 -0
  292. package/dist/use-7YDKO3U4.js +63 -0
  293. package/dist/use-7YDKO3U4.js.map +1 -0
  294. package/dist/value-RZBWSKKM.js +71 -0
  295. package/dist/value-RZBWSKKM.js.map +1 -0
  296. package/dist/visible-BSFTAKXR.js +71 -0
  297. package/dist/visible-BSFTAKXR.js.map +1 -0
  298. package/dist/wait-TMTEAYOP.js +109 -0
  299. package/dist/wait-TMTEAYOP.js.map +1 -0
  300. package/dist/windows-HIZ23OHS.js +37 -0
  301. package/dist/windows-HIZ23OHS.js.map +1 -0
  302. package/extension/dist/background.js +99 -22
  303. package/extension/dist/ops/ops-runtime.js +85 -7
  304. package/extension/dist/ops/ops-session-store.js +3 -0
  305. package/extension/dist/ops/target-session-coordinator.js +3 -0
  306. package/extension/dist/services/CDPRouter.js +9 -0
  307. package/extension/manifest.json +1 -1
  308. package/package.json +1 -1
  309. package/skills/opendevbrowser-best-practices/SKILL.md +8 -6
  310. package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +1 -1
  311. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +3 -2
  312. package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +39 -2
  313. package/skills/opendevbrowser-research/SKILL.md +64 -12
  314. package/skills/opendevbrowser-research/artifacts/research-workflows.md +56 -19
  315. package/skills/opendevbrowser-research/assets/templates/compact.md +31 -5
  316. package/skills/opendevbrowser-research/assets/templates/context.json +52 -1
  317. package/skills/opendevbrowser-research/assets/templates/report.md +57 -4
  318. package/skills/opendevbrowser-research/examples/sample-input.json +1 -1
  319. package/skills/opendevbrowser-research/examples/sample-output.md +27 -2
  320. package/skills/opendevbrowser-research/scripts/run-research.sh +2 -6
  321. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +115 -1
  322. package/dist/chunk-I5ZCOZZV.js.map +0 -1
  323. package/dist/chunk-QVWOPIZJ.js.map +0 -1
  324. package/dist/chunk-T3VVHJTK.js.map +0 -1
  325. /package/dist/{providers-QF2RFB4J.js.map → chunk-RJNI3BHT.js.map} +0 -0
@@ -0,0 +1,180 @@
1
+ import {
2
+ parseBooleanFlag
3
+ } from "./chunk-RPXWUCQQ.js";
4
+ import {
5
+ createOpenDevBrowserCore
6
+ } from "./chunk-QOMWCRE3.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-4BEJVZRK.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-3NBLVWXD.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-MD655IPO.js";
12
+ import "./chunk-COAOWH3G.js";
13
+ import "./chunk-QOMWCRE3.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-4BEJVZRK.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-UZVIT3IN.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-MD655IPO.js";
12
+ import "./chunk-COAOWH3G.js";
13
+ import "./chunk-QOMWCRE3.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-4BEJVZRK.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-NOSJSIUO.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-MD655IPO.js";
12
+ import "./chunk-COAOWH3G.js";
13
+ import "./chunk-QOMWCRE3.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-4BEJVZRK.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-LARG4JQG.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":[]}
@@ -0,0 +1,84 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ parseNumberFlag,
4
+ parseOptionalStringFlag
5
+ } from "./chunk-RPXWUCQQ.js";
6
+ import {
7
+ callDaemon
8
+ } from "./chunk-MD655IPO.js";
9
+ import "./chunk-COAOWH3G.js";
10
+ import "./chunk-QOMWCRE3.js";
11
+ import "./chunk-MX3NFLCE.js";
12
+ import "./chunk-ASMHEEKY.js";
13
+ import {
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-4BEJVZRK.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/interact/scroll.ts
28
+ function parseScrollArgs(rawArgs) {
29
+ const parsed = {};
30
+ for (let i = 0; i < rawArgs.length; i += 1) {
31
+ const arg = rawArgs[i];
32
+ if (arg === "--session-id") {
33
+ const value = rawArgs[i + 1];
34
+ if (!value) throw createUsageError("Missing value for --session-id");
35
+ parsed.sessionId = value;
36
+ i += 1;
37
+ continue;
38
+ }
39
+ if (arg?.startsWith("--session-id=")) {
40
+ parsed.sessionId = arg.split("=", 2)[1];
41
+ continue;
42
+ }
43
+ if (arg === "--ref") {
44
+ const value = rawArgs[i + 1];
45
+ if (!value) throw createUsageError("Missing value for --ref");
46
+ parsed.ref = value;
47
+ i += 1;
48
+ continue;
49
+ }
50
+ if (arg?.startsWith("--ref=")) {
51
+ parsed.ref = arg.split("=", 2)[1];
52
+ continue;
53
+ }
54
+ if (arg === "--dy") {
55
+ const value = rawArgs[i + 1];
56
+ if (!value) throw createUsageError("Missing value for --dy");
57
+ parsed.dy = parseNumberFlag(value, "--dy");
58
+ i += 1;
59
+ continue;
60
+ }
61
+ if (arg?.startsWith("--dy=")) {
62
+ parsed.dy = parseNumberFlag(arg.split("=", 2)[1] ?? "", "--dy");
63
+ continue;
64
+ }
65
+ }
66
+ return parsed;
67
+ }
68
+ async function runScroll(args) {
69
+ const { sessionId, ref, dy } = parseScrollArgs(args.rawArgs);
70
+ const targetId = parseOptionalStringFlag(args.rawArgs, "--target-id");
71
+ if (!sessionId) throw createUsageError("Missing --session-id");
72
+ if (typeof dy !== "number" || Number.isNaN(dy)) throw createUsageError("Missing --dy");
73
+ const result = await callDaemon("interact.scroll", {
74
+ sessionId,
75
+ ref,
76
+ dy,
77
+ ...typeof targetId === "string" ? { targetId } : {}
78
+ });
79
+ return { success: true, message: "Scroll complete.", data: result };
80
+ }
81
+ export {
82
+ runScroll
83
+ };
84
+ //# sourceMappingURL=scroll-VNFMV6TW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/interact/scroll.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\nimport { parseNumberFlag, parseOptionalStringFlag } from \"../../utils/parse\";\n\nfunction parseScrollArgs(rawArgs: string[]): { sessionId?: string; ref?: string; dy?: number } {\n const parsed: { sessionId?: string; ref?: string; dy?: number } = {};\n for (let i = 0; i < rawArgs.length; i += 1) {\n const arg = rawArgs[i];\n if (arg === \"--session-id\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --session-id\");\n parsed.sessionId = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--session-id=\")) {\n parsed.sessionId = arg.split(\"=\", 2)[1];\n continue;\n }\n if (arg === \"--ref\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --ref\");\n parsed.ref = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--ref=\")) {\n parsed.ref = arg.split(\"=\", 2)[1];\n continue;\n }\n if (arg === \"--dy\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --dy\");\n parsed.dy = parseNumberFlag(value, \"--dy\");\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--dy=\")) {\n parsed.dy = parseNumberFlag(arg.split(\"=\", 2)[1] ?? \"\", \"--dy\");\n continue;\n }\n }\n return parsed;\n}\n\nexport async function runScroll(args: ParsedArgs) {\n const { sessionId, ref, dy } = parseScrollArgs(args.rawArgs);\n const targetId = parseOptionalStringFlag(args.rawArgs, \"--target-id\");\n if (!sessionId) throw createUsageError(\"Missing --session-id\");\n if (typeof dy !== \"number\" || Number.isNaN(dy)) throw createUsageError(\"Missing --dy\");\n const result = await callDaemon(\"interact.scroll\", {\n sessionId,\n ref,\n dy,\n ...(typeof targetId === \"string\" ? { targetId } : {})\n });\n return { success: true, message: \"Scroll complete.\", data: result };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAS,gBAAgB,SAAsE;AAC7F,QAAM,SAA4D,CAAC;AACnE,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,GAAG;AAC1C,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,QAAQ,gBAAgB;AAC1B,YAAM,QAAQ,QAAQ,IAAI,CAAC;AAC3B,UAAI,CAAC,MAAO,OAAM,iBAAiB,gCAAgC;AACnE,aAAO,YAAY;AACnB,WAAK;AACL;AAAA,IACF;AACA,QAAI,KAAK,WAAW,eAAe,GAAG;AACpC,aAAO,YAAY,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;AACtC;AAAA,IACF;AACA,QAAI,QAAQ,SAAS;AACnB,YAAM,QAAQ,QAAQ,IAAI,CAAC;AAC3B,UAAI,CAAC,MAAO,OAAM,iBAAiB,yBAAyB;AAC5D,aAAO,MAAM;AACb,WAAK;AACL;AAAA,IACF;AACA,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,aAAO,MAAM,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;AAChC;AAAA,IACF;AACA,QAAI,QAAQ,QAAQ;AAClB,YAAM,QAAQ,QAAQ,IAAI,CAAC;AAC3B,UAAI,CAAC,MAAO,OAAM,iBAAiB,wBAAwB;AAC3D,aAAO,KAAK,gBAAgB,OAAO,MAAM;AACzC,WAAK;AACL;AAAA,IACF;AACA,QAAI,KAAK,WAAW,OAAO,GAAG;AAC5B,aAAO,KAAK,gBAAgB,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,MAAM;AAC9D;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,UAAU,MAAkB;AAChD,QAAM,EAAE,WAAW,KAAK,GAAG,IAAI,gBAAgB,KAAK,OAAO;AAC3D,QAAM,WAAW,wBAAwB,KAAK,SAAS,aAAa;AACpE,MAAI,CAAC,UAAW,OAAM,iBAAiB,sBAAsB;AAC7D,MAAI,OAAO,OAAO,YAAY,OAAO,MAAM,EAAE,EAAG,OAAM,iBAAiB,cAAc;AACrF,QAAM,SAAS,MAAM,WAAW,mBAAmB;AAAA,IACjD;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAI,OAAO,aAAa,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,EACrD,CAAC;AACD,SAAO,EAAE,SAAS,MAAM,SAAS,oBAAoB,MAAM,OAAO;AACpE;","names":[]}
@@ -0,0 +1,71 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ parseOptionalStringFlag
4
+ } from "./chunk-RPXWUCQQ.js";
5
+ import {
6
+ callDaemon
7
+ } from "./chunk-MD655IPO.js";
8
+ import "./chunk-COAOWH3G.js";
9
+ import "./chunk-QOMWCRE3.js";
10
+ import "./chunk-MX3NFLCE.js";
11
+ import "./chunk-ASMHEEKY.js";
12
+ import {
13
+ createUsageError
14
+ } from "./chunk-IPE7TF2P.js";
15
+ import "./chunk-STGGGVYT.js";
16
+ import "./chunk-3ILXPKSJ.js";
17
+ import "./chunk-TBUCZX4A.js";
18
+ import "./chunk-Y2KL55OG.js";
19
+ import "./chunk-5SWZDVOW.js";
20
+ import "./chunk-4BEJVZRK.js";
21
+ import "./chunk-S5KZQJJI.js";
22
+ import "./chunk-KZ2IXVQT.js";
23
+ import "./chunk-WHQZBUNY.js";
24
+ import "./chunk-FUSXMW3G.js";
25
+
26
+ // src/cli/commands/interact/scroll-into-view.ts
27
+ function parseScrollIntoViewArgs(rawArgs) {
28
+ const parsed = {};
29
+ for (let i = 0; i < rawArgs.length; i += 1) {
30
+ const arg = rawArgs[i];
31
+ if (arg === "--session-id") {
32
+ const value = rawArgs[i + 1];
33
+ if (!value) throw createUsageError("Missing value for --session-id");
34
+ parsed.sessionId = value;
35
+ i += 1;
36
+ continue;
37
+ }
38
+ if (arg?.startsWith("--session-id=")) {
39
+ parsed.sessionId = arg.split("=", 2)[1];
40
+ continue;
41
+ }
42
+ if (arg === "--ref") {
43
+ const value = rawArgs[i + 1];
44
+ if (!value) throw createUsageError("Missing value for --ref");
45
+ parsed.ref = value;
46
+ i += 1;
47
+ continue;
48
+ }
49
+ if (arg?.startsWith("--ref=")) {
50
+ parsed.ref = arg.split("=", 2)[1];
51
+ continue;
52
+ }
53
+ }
54
+ return parsed;
55
+ }
56
+ async function runScrollIntoView(args) {
57
+ const { sessionId, ref } = parseScrollIntoViewArgs(args.rawArgs);
58
+ const targetId = parseOptionalStringFlag(args.rawArgs, "--target-id");
59
+ if (!sessionId) throw createUsageError("Missing --session-id");
60
+ if (!ref) throw createUsageError("Missing --ref");
61
+ const result = await callDaemon("interact.scrollIntoView", {
62
+ sessionId,
63
+ ref,
64
+ ...typeof targetId === "string" ? { targetId } : {}
65
+ });
66
+ return { success: true, message: "Scroll into view complete.", data: result };
67
+ }
68
+ export {
69
+ runScrollIntoView
70
+ };
71
+ //# sourceMappingURL=scroll-into-view-VYRT3JPT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/interact/scroll-into-view.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\nimport { parseOptionalStringFlag } from \"../../utils/parse\";\n\nfunction parseScrollIntoViewArgs(rawArgs: string[]): { sessionId?: string; ref?: string } {\n const parsed: { sessionId?: string; ref?: string } = {};\n for (let i = 0; i < rawArgs.length; i += 1) {\n const arg = rawArgs[i];\n if (arg === \"--session-id\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --session-id\");\n parsed.sessionId = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--session-id=\")) {\n parsed.sessionId = arg.split(\"=\", 2)[1];\n continue;\n }\n if (arg === \"--ref\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --ref\");\n parsed.ref = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--ref=\")) {\n parsed.ref = arg.split(\"=\", 2)[1];\n continue;\n }\n }\n return parsed;\n}\n\nexport async function runScrollIntoView(args: ParsedArgs) {\n const { sessionId, ref } = parseScrollIntoViewArgs(args.rawArgs);\n const targetId = parseOptionalStringFlag(args.rawArgs, \"--target-id\");\n if (!sessionId) throw createUsageError(\"Missing --session-id\");\n if (!ref) throw createUsageError(\"Missing --ref\");\n const result = await callDaemon(\"interact.scrollIntoView\", {\n sessionId,\n ref,\n ...(typeof targetId === \"string\" ? { targetId } : {})\n });\n return { success: true, message: \"Scroll into view complete.\", data: result };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAS,wBAAwB,SAAyD;AACxF,QAAM,SAA+C,CAAC;AACtD,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,GAAG;AAC1C,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,QAAQ,gBAAgB;AAC1B,YAAM,QAAQ,QAAQ,IAAI,CAAC;AAC3B,UAAI,CAAC,MAAO,OAAM,iBAAiB,gCAAgC;AACnE,aAAO,YAAY;AACnB,WAAK;AACL;AAAA,IACF;AACA,QAAI,KAAK,WAAW,eAAe,GAAG;AACpC,aAAO,YAAY,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;AACtC;AAAA,IACF;AACA,QAAI,QAAQ,SAAS;AACnB,YAAM,QAAQ,QAAQ,IAAI,CAAC;AAC3B,UAAI,CAAC,MAAO,OAAM,iBAAiB,yBAAyB;AAC5D,aAAO,MAAM;AACb,WAAK;AACL;AAAA,IACF;AACA,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,aAAO,MAAM,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;AAChC;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,kBAAkB,MAAkB;AACxD,QAAM,EAAE,WAAW,IAAI,IAAI,wBAAwB,KAAK,OAAO;AAC/D,QAAM,WAAW,wBAAwB,KAAK,SAAS,aAAa;AACpE,MAAI,CAAC,UAAW,OAAM,iBAAiB,sBAAsB;AAC7D,MAAI,CAAC,IAAK,OAAM,iBAAiB,eAAe;AAChD,QAAM,SAAS,MAAM,WAAW,2BAA2B;AAAA,IACzD;AAAA,IACA;AAAA,IACA,GAAI,OAAO,aAAa,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,EACrD,CAAC;AACD,SAAO,EAAE,SAAS,MAAM,SAAS,8BAA8B,MAAM,OAAO;AAC9E;","names":[]}