opendevbrowser 0.0.29 → 0.0.31

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 (198) hide show
  1. package/README.md +3 -3
  2. package/dist/{accessibility-snapshot-PA6NWNS7.js → accessibility-snapshot-CQ4ZKWKC.js} +6 -6
  3. package/dist/{active-window-YNYTIPZN.js → active-window-TD5HYJ72.js} +6 -6
  4. package/dist/{annotate-STYHXZYJ.js → annotate-VTLFS2XV.js} +5 -5
  5. package/dist/{attr-GHFZZ4SA.js → attr-BCI5KYCW.js} +5 -5
  6. package/dist/{canvas-54FBOEGP.js → canvas-5DFEEOKM.js} +5 -5
  7. package/dist/{capture-desktop-SNABC24E.js → capture-desktop-HFTTWY4Z.js} +6 -6
  8. package/dist/{capture-window-UJSB5AMP.js → capture-window-X63XPIFF.js} +6 -6
  9. package/dist/{check-ST5UQ2F5.js → check-LWAUY7GC.js} +5 -5
  10. package/dist/{checked-IEMWI5CU.js → checked-ZSOUKVYT.js} +5 -5
  11. package/dist/{chunk-RCZZGGJS.js → chunk-2I3YS3DV.js} +2 -2
  12. package/dist/{chunk-S6S2UP6U.js → chunk-4BEJVZRK.js} +15 -10
  13. package/dist/chunk-4BEJVZRK.js.map +1 -0
  14. package/dist/{chunk-J47N77VG.js → chunk-6B5WAQV7.js} +3 -3
  15. package/dist/chunk-6B5WAQV7.js.map +1 -0
  16. package/dist/{chunk-2CG4SW3E.js → chunk-AHEWXOKY.js} +2 -2
  17. package/dist/{chunk-LBPELU7L.js → chunk-COAOWH3G.js} +9 -7
  18. package/dist/chunk-COAOWH3G.js.map +1 -0
  19. package/dist/{chunk-PDPJN2OP.js → chunk-GQJ5S3BL.js} +5 -2
  20. package/dist/chunk-GQJ5S3BL.js.map +1 -0
  21. package/dist/{chunk-OYNLAZQU.js → chunk-MD655IPO.js} +2 -2
  22. package/dist/{chunk-N44UXKIB.js → chunk-PPUWQKIC.js} +2 -2
  23. package/dist/{chunk-SXAGSEKZ.js → chunk-QOMWCRE3.js} +2 -2
  24. package/dist/cli/commands/update.d.ts.map +1 -1
  25. package/dist/cli/commands/workflow-output.d.ts.map +1 -1
  26. package/dist/cli/daemon-commands.d.ts.map +1 -1
  27. package/dist/cli/index.js +77 -77
  28. package/dist/cli/index.js.map +1 -1
  29. package/dist/{click-TENZA3Y6.js → click-2AILSEIZ.js} +5 -5
  30. package/dist/{clone-component-STH5AR6M.js → clone-component-TPJS3PEG.js} +5 -5
  31. package/dist/{clone-page-BSTWAPAJ.js → clone-page-LE74CIFC.js} +5 -5
  32. package/dist/{close-QCWUNRAI.js → close-HN4YI47K.js} +5 -5
  33. package/dist/{close-CEMMAAM7.js → close-WFERRHX6.js} +5 -5
  34. package/dist/{connect-J3RVSEZF.js → connect-RWBV2UCQ.js} +5 -5
  35. package/dist/{console-poll-HL7BVIVX.js → console-poll-PP4YYPDF.js} +5 -5
  36. package/dist/{cookie-import-WMUCIIHN.js → cookie-import-6IP776FC.js} +5 -5
  37. package/dist/{cookie-list-PB2N4RPH.js → cookie-list-O2KG6DPU.js} +5 -5
  38. package/dist/{daemon-5KSVMGN4.js → daemon-2BSAZXLT.js} +4 -4
  39. package/dist/daemon-fingerprint.json +1 -1
  40. package/dist/{debug-trace-snapshot-RK7KDXA5.js → debug-trace-snapshot-F3BDVZXS.js} +5 -5
  41. package/dist/{dialog-P6P4U7XE.js → dialog-6JQYUWMQ.js} +5 -5
  42. package/dist/{disconnect-32F7IDIP.js → disconnect-763TP7GH.js} +5 -5
  43. package/dist/{enabled-A6C6ZM2O.js → enabled-DLYQFNIP.js} +5 -5
  44. package/dist/{goto-ULTSABDM.js → goto-S346TJJH.js} +5 -5
  45. package/dist/{help-EKKKEDL5.js → help-U7KBQME6.js} +4 -4
  46. package/dist/help-U7KBQME6.js.map +1 -0
  47. package/dist/{hover-UF2ZUMTQ.js → hover-6JVJFGO7.js} +5 -5
  48. package/dist/{html-B6TX7GK7.js → html-EVOSPBIT.js} +5 -5
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +29 -14
  51. package/dist/index.js.map +1 -1
  52. package/dist/{inspector-6S5FKUZQ.js → inspector-H57BVUJP.js} +5 -5
  53. package/dist/{inspector-audit-ARGEGOS7.js → inspector-audit-NQBAJWC7.js} +6 -6
  54. package/dist/{inspector-plan-CSG5HZOC.js → inspector-plan-ZDIQVND3.js} +6 -6
  55. package/dist/{inspiredesign-7VRMMZN4.js → inspiredesign-IEUL4PX3.js} +6 -6
  56. package/dist/{launch-REYCIR3Z.js → launch-EK66VQPF.js} +5 -5
  57. package/dist/{list-NPRXRQY2.js → list-ADZAQ2IU.js} +5 -5
  58. package/dist/{list-STYD2ZWA.js → list-KKUKN467.js} +5 -5
  59. package/dist/{macro-resolve-ZIJZ65QI.js → macro-resolve-6DOQJ7CA.js} +5 -5
  60. package/dist/{network-poll-HLDOSC72.js → network-poll-NUL4PDPY.js} +5 -5
  61. package/dist/{new-HXLLN6UT.js → new-5NKYPEFT.js} +5 -5
  62. package/dist/{open-KDR25LQZ.js → open-NR3BPLXV.js} +5 -5
  63. package/dist/opendevbrowser.d.ts.map +1 -1
  64. package/dist/opendevbrowser.js +29 -14
  65. package/dist/opendevbrowser.js.map +1 -1
  66. package/dist/{perf-EM6SWFJ6.js → perf-HJ36ZI6H.js} +5 -5
  67. package/dist/{pointer-down-ZYWRZNCH.js → pointer-down-IYTTQWXZ.js} +5 -5
  68. package/dist/{pointer-drag-LVEAVJO4.js → pointer-drag-A2YC5PWI.js} +5 -5
  69. package/dist/{pointer-move-7SRKUS66.js → pointer-move-W5K5FUI4.js} +5 -5
  70. package/dist/{pointer-up-KLDBSK37.js → pointer-up-6GWVO64Y.js} +5 -5
  71. package/dist/{press-UIIXFTD7.js → press-A3V5WB3S.js} +5 -5
  72. package/dist/{product-video-PYOXJVAI.js → product-video-52REKWF3.js} +6 -6
  73. package/dist/providers/workflow-output-root.d.ts +6 -0
  74. package/dist/providers/workflow-output-root.d.ts.map +1 -0
  75. package/dist/providers/workflows.d.ts.map +1 -1
  76. package/dist/{providers-4YY2BLXG.js → providers-IMFYMMHQ.js} +2 -2
  77. package/dist/public-surface/generated-manifest.d.ts +1 -1
  78. package/dist/public-surface/source.d.ts +1 -1
  79. package/dist/{research-CKXMJ2DK.js → research-WB6BBCDD.js} +6 -6
  80. package/dist/{review-7HWJPZOD.js → review-BGWVY4RA.js} +5 -5
  81. package/dist/{review-desktop-2IBJHFB5.js → review-desktop-LEORC5VS.js} +5 -5
  82. package/dist/{rpc-3HGIEJUO.js → rpc-4TSKSFGC.js} +5 -5
  83. package/dist/{run-ADRYI3MS.js → run-3NBLVWXD.js} +3 -3
  84. package/dist/{screencast-start-DTLUHD5H.js → screencast-start-UZVIT3IN.js} +5 -5
  85. package/dist/{screencast-stop-54C5LRSS.js → screencast-stop-NOSJSIUO.js} +5 -5
  86. package/dist/{screenshot-HOAKR7P7.js → screenshot-LARG4JQG.js} +5 -5
  87. package/dist/{scroll-IAOO5COY.js → scroll-VNFMV6TW.js} +5 -5
  88. package/dist/{scroll-into-view-RKWSLAPH.js → scroll-into-view-VYRT3JPT.js} +5 -5
  89. package/dist/{select-IGD3T6X4.js → select-KJTUZDVO.js} +5 -5
  90. package/dist/{serve-7X4INUCU.js → serve-EV7K4HKR.js} +4 -4
  91. package/dist/{shopping-FC6DRW76.js → shopping-DTXHVQ2X.js} +6 -6
  92. package/dist/{snapshot-X22GG324.js → snapshot-3XQMCMRJ.js} +5 -5
  93. package/dist/{status-VH2WXIDG.js → status-OXSYA5XD.js} +6 -6
  94. package/dist/{status-SP55LMNW.js → status-YUMDP5KY.js} +5 -5
  95. package/dist/{status-capabilities-YBERLRRA.js → status-capabilities-P4KDSE2Y.js} +6 -6
  96. package/dist/{text-6TB5WNLI.js → text-V3B7UVIH.js} +5 -5
  97. package/dist/tools/deps.d.ts +1 -0
  98. package/dist/tools/deps.d.ts.map +1 -1
  99. package/dist/tools/inspiredesign_run.d.ts.map +1 -1
  100. package/dist/tools/product_video_run.d.ts.map +1 -1
  101. package/dist/tools/research_run.d.ts.map +1 -1
  102. package/dist/tools/shopping_run.d.ts.map +1 -1
  103. package/dist/tools/workflow-output.d.ts +3 -0
  104. package/dist/tools/workflow-output.d.ts.map +1 -0
  105. package/dist/{type-3UI3TQH3.js → type-IYBN3ZLR.js} +5 -5
  106. package/dist/{uncheck-5L3D2D4U.js → uncheck-SG737EGI.js} +5 -5
  107. package/dist/{update-SMXPYGXS.js → update-FZGSXB74.js} +6 -2
  108. package/dist/update-FZGSXB74.js.map +1 -0
  109. package/dist/{upload-YG4J2EMI.js → upload-KH6ZABJA.js} +5 -5
  110. package/dist/{use-V3LGFP3K.js → use-7YDKO3U4.js} +5 -5
  111. package/dist/{value-3247D57X.js → value-RZBWSKKM.js} +5 -5
  112. package/dist/{visible-A7HEV36U.js → visible-BSFTAKXR.js} +5 -5
  113. package/dist/{wait-UZPP4Y4R.js → wait-TMTEAYOP.js} +5 -5
  114. package/dist/{windows-76TR3AIP.js → windows-HIZ23OHS.js} +6 -6
  115. package/extension/manifest.json +1 -1
  116. package/package.json +1 -1
  117. package/dist/chunk-J47N77VG.js.map +0 -1
  118. package/dist/chunk-LBPELU7L.js.map +0 -1
  119. package/dist/chunk-PDPJN2OP.js.map +0 -1
  120. package/dist/chunk-S6S2UP6U.js.map +0 -1
  121. package/dist/help-EKKKEDL5.js.map +0 -1
  122. package/dist/update-SMXPYGXS.js.map +0 -1
  123. /package/dist/{accessibility-snapshot-PA6NWNS7.js.map → accessibility-snapshot-CQ4ZKWKC.js.map} +0 -0
  124. /package/dist/{active-window-YNYTIPZN.js.map → active-window-TD5HYJ72.js.map} +0 -0
  125. /package/dist/{annotate-STYHXZYJ.js.map → annotate-VTLFS2XV.js.map} +0 -0
  126. /package/dist/{attr-GHFZZ4SA.js.map → attr-BCI5KYCW.js.map} +0 -0
  127. /package/dist/{canvas-54FBOEGP.js.map → canvas-5DFEEOKM.js.map} +0 -0
  128. /package/dist/{capture-desktop-SNABC24E.js.map → capture-desktop-HFTTWY4Z.js.map} +0 -0
  129. /package/dist/{capture-window-UJSB5AMP.js.map → capture-window-X63XPIFF.js.map} +0 -0
  130. /package/dist/{check-ST5UQ2F5.js.map → check-LWAUY7GC.js.map} +0 -0
  131. /package/dist/{checked-IEMWI5CU.js.map → checked-ZSOUKVYT.js.map} +0 -0
  132. /package/dist/{chunk-RCZZGGJS.js.map → chunk-2I3YS3DV.js.map} +0 -0
  133. /package/dist/{chunk-2CG4SW3E.js.map → chunk-AHEWXOKY.js.map} +0 -0
  134. /package/dist/{chunk-OYNLAZQU.js.map → chunk-MD655IPO.js.map} +0 -0
  135. /package/dist/{chunk-N44UXKIB.js.map → chunk-PPUWQKIC.js.map} +0 -0
  136. /package/dist/{chunk-SXAGSEKZ.js.map → chunk-QOMWCRE3.js.map} +0 -0
  137. /package/dist/{click-TENZA3Y6.js.map → click-2AILSEIZ.js.map} +0 -0
  138. /package/dist/{clone-component-STH5AR6M.js.map → clone-component-TPJS3PEG.js.map} +0 -0
  139. /package/dist/{clone-page-BSTWAPAJ.js.map → clone-page-LE74CIFC.js.map} +0 -0
  140. /package/dist/{close-QCWUNRAI.js.map → close-HN4YI47K.js.map} +0 -0
  141. /package/dist/{close-CEMMAAM7.js.map → close-WFERRHX6.js.map} +0 -0
  142. /package/dist/{connect-J3RVSEZF.js.map → connect-RWBV2UCQ.js.map} +0 -0
  143. /package/dist/{console-poll-HL7BVIVX.js.map → console-poll-PP4YYPDF.js.map} +0 -0
  144. /package/dist/{cookie-import-WMUCIIHN.js.map → cookie-import-6IP776FC.js.map} +0 -0
  145. /package/dist/{cookie-list-PB2N4RPH.js.map → cookie-list-O2KG6DPU.js.map} +0 -0
  146. /package/dist/{daemon-5KSVMGN4.js.map → daemon-2BSAZXLT.js.map} +0 -0
  147. /package/dist/{debug-trace-snapshot-RK7KDXA5.js.map → debug-trace-snapshot-F3BDVZXS.js.map} +0 -0
  148. /package/dist/{dialog-P6P4U7XE.js.map → dialog-6JQYUWMQ.js.map} +0 -0
  149. /package/dist/{disconnect-32F7IDIP.js.map → disconnect-763TP7GH.js.map} +0 -0
  150. /package/dist/{enabled-A6C6ZM2O.js.map → enabled-DLYQFNIP.js.map} +0 -0
  151. /package/dist/{goto-ULTSABDM.js.map → goto-S346TJJH.js.map} +0 -0
  152. /package/dist/{hover-UF2ZUMTQ.js.map → hover-6JVJFGO7.js.map} +0 -0
  153. /package/dist/{html-B6TX7GK7.js.map → html-EVOSPBIT.js.map} +0 -0
  154. /package/dist/{inspector-6S5FKUZQ.js.map → inspector-H57BVUJP.js.map} +0 -0
  155. /package/dist/{inspector-audit-ARGEGOS7.js.map → inspector-audit-NQBAJWC7.js.map} +0 -0
  156. /package/dist/{inspector-plan-CSG5HZOC.js.map → inspector-plan-ZDIQVND3.js.map} +0 -0
  157. /package/dist/{inspiredesign-7VRMMZN4.js.map → inspiredesign-IEUL4PX3.js.map} +0 -0
  158. /package/dist/{launch-REYCIR3Z.js.map → launch-EK66VQPF.js.map} +0 -0
  159. /package/dist/{list-NPRXRQY2.js.map → list-ADZAQ2IU.js.map} +0 -0
  160. /package/dist/{list-STYD2ZWA.js.map → list-KKUKN467.js.map} +0 -0
  161. /package/dist/{macro-resolve-ZIJZ65QI.js.map → macro-resolve-6DOQJ7CA.js.map} +0 -0
  162. /package/dist/{network-poll-HLDOSC72.js.map → network-poll-NUL4PDPY.js.map} +0 -0
  163. /package/dist/{new-HXLLN6UT.js.map → new-5NKYPEFT.js.map} +0 -0
  164. /package/dist/{open-KDR25LQZ.js.map → open-NR3BPLXV.js.map} +0 -0
  165. /package/dist/{perf-EM6SWFJ6.js.map → perf-HJ36ZI6H.js.map} +0 -0
  166. /package/dist/{pointer-down-ZYWRZNCH.js.map → pointer-down-IYTTQWXZ.js.map} +0 -0
  167. /package/dist/{pointer-drag-LVEAVJO4.js.map → pointer-drag-A2YC5PWI.js.map} +0 -0
  168. /package/dist/{pointer-move-7SRKUS66.js.map → pointer-move-W5K5FUI4.js.map} +0 -0
  169. /package/dist/{pointer-up-KLDBSK37.js.map → pointer-up-6GWVO64Y.js.map} +0 -0
  170. /package/dist/{press-UIIXFTD7.js.map → press-A3V5WB3S.js.map} +0 -0
  171. /package/dist/{product-video-PYOXJVAI.js.map → product-video-52REKWF3.js.map} +0 -0
  172. /package/dist/{providers-4YY2BLXG.js.map → providers-IMFYMMHQ.js.map} +0 -0
  173. /package/dist/{research-CKXMJ2DK.js.map → research-WB6BBCDD.js.map} +0 -0
  174. /package/dist/{review-7HWJPZOD.js.map → review-BGWVY4RA.js.map} +0 -0
  175. /package/dist/{review-desktop-2IBJHFB5.js.map → review-desktop-LEORC5VS.js.map} +0 -0
  176. /package/dist/{rpc-3HGIEJUO.js.map → rpc-4TSKSFGC.js.map} +0 -0
  177. /package/dist/{run-ADRYI3MS.js.map → run-3NBLVWXD.js.map} +0 -0
  178. /package/dist/{screencast-start-DTLUHD5H.js.map → screencast-start-UZVIT3IN.js.map} +0 -0
  179. /package/dist/{screencast-stop-54C5LRSS.js.map → screencast-stop-NOSJSIUO.js.map} +0 -0
  180. /package/dist/{screenshot-HOAKR7P7.js.map → screenshot-LARG4JQG.js.map} +0 -0
  181. /package/dist/{scroll-IAOO5COY.js.map → scroll-VNFMV6TW.js.map} +0 -0
  182. /package/dist/{scroll-into-view-RKWSLAPH.js.map → scroll-into-view-VYRT3JPT.js.map} +0 -0
  183. /package/dist/{select-IGD3T6X4.js.map → select-KJTUZDVO.js.map} +0 -0
  184. /package/dist/{serve-7X4INUCU.js.map → serve-EV7K4HKR.js.map} +0 -0
  185. /package/dist/{shopping-FC6DRW76.js.map → shopping-DTXHVQ2X.js.map} +0 -0
  186. /package/dist/{snapshot-X22GG324.js.map → snapshot-3XQMCMRJ.js.map} +0 -0
  187. /package/dist/{status-VH2WXIDG.js.map → status-OXSYA5XD.js.map} +0 -0
  188. /package/dist/{status-SP55LMNW.js.map → status-YUMDP5KY.js.map} +0 -0
  189. /package/dist/{status-capabilities-YBERLRRA.js.map → status-capabilities-P4KDSE2Y.js.map} +0 -0
  190. /package/dist/{text-6TB5WNLI.js.map → text-V3B7UVIH.js.map} +0 -0
  191. /package/dist/{type-3UI3TQH3.js.map → type-IYBN3ZLR.js.map} +0 -0
  192. /package/dist/{uncheck-5L3D2D4U.js.map → uncheck-SG737EGI.js.map} +0 -0
  193. /package/dist/{upload-YG4J2EMI.js.map → upload-KH6ZABJA.js.map} +0 -0
  194. /package/dist/{use-V3LGFP3K.js.map → use-7YDKO3U4.js.map} +0 -0
  195. /package/dist/{value-3247D57X.js.map → value-RZBWSKKM.js.map} +0 -0
  196. /package/dist/{visible-A7HEV36U.js.map → visible-BSFTAKXR.js.map} +0 -0
  197. /package/dist/{wait-UZPP4Y4R.js.map → wait-TMTEAYOP.js.map} +0 -0
  198. /package/dist/{windows-76TR3AIP.js.map → windows-HIZ23OHS.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/commands/registry.ts","../../package.json","../../src/cli/index.ts"],"sourcesContent":["import type { CommandDefinition } from \"./types\";\n\nconst registry = new Map<string, CommandDefinition>();\n\nexport function registerCommand(definition: CommandDefinition): void {\n registry.set(definition.name, definition);\n}\n\nexport function getCommand(name: string): CommandDefinition | undefined {\n return registry.get(name);\n}\n\nexport function listCommands(): CommandDefinition[] {\n return Array.from(registry.values());\n}\n","{\n \"name\": \"opendevbrowser\",\n \"version\": \"0.0.29\",\n \"description\": \"Browser automation runtime with snapshot-refs-actions, browser replay screencasts, public read-only desktop observation, and browser-scoped computer-use orchestration\",\n \"type\": \"module\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"bin\": {\n \"opendevbrowser\": \"dist/cli/index.js\"\n },\n \"files\": [\n \"dist\",\n \"skills\",\n \"scripts/postinstall-sync-skills.mjs\",\n \"scripts/native\",\n \"extension/canvas.html\",\n \"extension/manifest.json\",\n \"extension/popup.html\",\n \"extension/dist\",\n \"extension/icons\"\n ],\n \"keywords\": [\n \"opencode\",\n \"plugin\",\n \"browser\",\n \"automation\",\n \"cdp\",\n \"playwright\",\n \"testing\",\n \"web-scraping\",\n \"chrome\",\n \"annotation\",\n \"design-canvas\",\n \"screencast\",\n \"desktop-observation\",\n \"browser-replay\",\n \"computer-use\",\n \"challenge-automation\"\n ],\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/freshtechbro/opendevbrowser.git\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"scripts\": {\n \"build\": \"node scripts/run-package-tool.mjs tsup --config tsup.config.ts && node scripts/run-package-tool.mjs tsc --emitDeclarationOnly --declaration --declarationMap -p tsconfig.json && node scripts/postbuild-dist.mjs\",\n \"dev\": \"node scripts/run-package-tool.mjs tsup --config tsup.config.ts --dts --watch\",\n \"lint\": \"node scripts/run-package-tool.mjs eslint \\\"src/**/*.ts\\\" \\\"tests/**/*.ts\\\"\",\n \"typecheck\": \"node scripts/run-package-tool.mjs tsc --noEmit -p tsconfig.json\",\n \"test\": \"node scripts/run-vitest-coverage.mjs\",\n \"test:release-gate\": \"node scripts/release-gate-test-groups.mjs\",\n \"test:release-gate:g1\": \"node scripts/release-gate-test-groups.mjs --group 1\",\n \"test:release-gate:g2\": \"node scripts/release-gate-test-groups.mjs --group 2\",\n \"test:release-gate:g3\": \"node scripts/release-gate-test-groups.mjs --group 3\",\n \"test:release-gate:g4\": \"node scripts/release-gate-test-groups.mjs --group 4\",\n \"test:release-gate:g5\": \"node scripts/release-gate-test-groups.mjs --group 5\",\n \"extension:sync\": \"node scripts/sync-extension-version.mjs\",\n \"extension:build\": \"npm run extension:sync && node scripts/run-package-tool.mjs tsc -p extension/tsconfig.json && node scripts/copy-extension-assets.mjs\",\n \"extension:pack\": \"cd extension && zip -r ../opendevbrowser-extension.zip manifest.json popup.html canvas.html dist/ icons/\",\n \"extension:store\": \"node scripts/chrome-store-publish.mjs\",\n \"version:check\": \"node scripts/verify-versions.mjs\",\n \"prepack\": \"npm run version:check && npm run build && npm run extension:build\",\n \"postinstall\": \"node scripts/postinstall-sync-skills.mjs\"\n },\n \"dependencies\": {\n \"@opencode-ai/plugin\": \"^1.2.25\",\n \"@puppeteer/browsers\": \"^2.13.0\",\n \"async-mutex\": \"^0.5.0\",\n \"jsonc-parser\": \"^3.2.0\",\n \"parse5\": \"^8.0.0\",\n \"playwright-core\": \"^1.58.2\",\n \"typescript\": \"^5.9.3\",\n \"ws\": \"^8.19.0\",\n \"yjs\": \"^13.6.29\",\n \"zod\": \"^3.25.76\"\n },\n \"devDependencies\": {\n \"@types/chrome\": \"^0.1.37\",\n \"@types/node\": \"^20.19.35\",\n \"@types/ws\": \"^8.18.1\",\n \"@typescript-eslint/eslint-plugin\": \"^8.56.1\",\n \"@typescript-eslint/parser\": \"^8.56.1\",\n \"@vitest/coverage-v8\": \"^4.0.18\",\n \"eslint\": \"^9.39.3\",\n \"happy-dom\": \"^20.7.0\",\n \"tsup\": \"^8.5.1\",\n \"vitest\": \"^4.0.18\"\n }\n}\n","#!/usr/bin/env node\n\nimport { parseArgs, detectOutputFormat } from \"./args\";\nimport type { InstallMode, OutputFormat, ParsedArgs } from \"./args\";\nimport { registerCommand, getCommand } from \"./commands/registry\";\nimport type { CommandResult } from \"./commands/types\";\nimport { setDefaultLogSink, stderrSink } from \"../core/logging\";\nimport { flushOutputAndExit, writeOutput } from \"./output\";\nimport { formatErrorPayload, resolveExitCode, toCliError, EXIT_EXECUTION, EXIT_USAGE } from \"./errors\";\nimport type { CliError } from \"./errors\";\nimport { buildProviderFollowupErrorMessage } from \"./utils/workflow-message\";\nimport packageJson from \"../../package.json\";\n\nconst VERSION = typeof packageJson.version === \"string\" ? packageJson.version : \"0.0.0\";\n\ntype CommandRunner = (args: ParsedArgs) => Promise<CommandResult> | CommandResult;\n\nasync function runLazyCommand<ExportName extends string>(\n args: ParsedArgs,\n loader: () => Promise<Record<ExportName, CommandRunner>>,\n exportName: ExportName\n): Promise<CommandResult> {\n const commandModule = await loader();\n return commandModule[exportName](args);\n}\n\nasync function promptInstallMode(): Promise<InstallMode> {\n if (!process.stdin.isTTY) {\n console.log(\"Non-interactive mode detected. Using global install.\");\n return \"global\";\n }\n\n return new Promise((resolve) => {\n console.log(\"\\nWhere would you like to install opendevbrowser?\\n\");\n console.log(\" 1. Global (~/.config/opencode/opencode.json)\");\n console.log(\" 2. Local (./opencode.json in this project)\\n\");\n\n process.stdout.write(\"Enter choice [1]: \");\n\n process.stdin.setEncoding(\"utf8\");\n let resolved = false;\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const cleanup = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n\n process.stdin.once(\"data\", (data) => {\n cleanup();\n if (resolved) return;\n resolved = true;\n const input = data.toString().trim();\n if (input === \"2\") {\n resolve(\"local\");\n } else {\n resolve(\"global\");\n }\n });\n\n process.stdin.once(\"close\", () => {\n cleanup();\n if (resolved) return;\n resolved = true;\n resolve(\"global\");\n });\n\n timeoutId = setTimeout(() => {\n timeoutId = null;\n if (resolved) return;\n resolved = true;\n console.log(\"\\nTimeout - using global install.\");\n resolve(\"global\");\n }, 30000);\n });\n}\n\nasync function promptUninstallMode(): Promise<InstallMode | null> {\n const { findInstalledConfigs } = await import(\"./commands/uninstall\");\n const installed = findInstalledConfigs();\n\n if (!installed.global && !installed.local) {\n console.log(\"opendevbrowser is not installed in any config.\");\n return null;\n }\n\n if (installed.global && !installed.local) {\n return \"global\";\n }\n\n if (!installed.global && installed.local) {\n return \"local\";\n }\n\n if (!process.stdin.isTTY) {\n console.log(\"Plugin found in both global and local configs. Use --global or --local flag.\");\n return null;\n }\n\n return new Promise((resolve) => {\n console.log(\"\\nopendevbrowser is installed in multiple locations:\\n\");\n console.log(\" 1. Global (~/.config/opencode/opencode.json)\");\n console.log(\" 2. Local (./opencode.json)\");\n console.log(\" 3. Cancel\\n\");\n\n process.stdout.write(\"Which to uninstall? [3]: \");\n\n process.stdin.setEncoding(\"utf8\");\n process.stdin.once(\"data\", (data) => {\n const input = data.toString().trim();\n if (input === \"1\") {\n resolve(\"global\");\n } else if (input === \"2\") {\n resolve(\"local\");\n } else {\n resolve(null);\n }\n });\n\n process.stdin.once(\"close\", () => {\n resolve(null);\n });\n });\n}\n\nfunction emitFatalError(error: CliError, outputFormat: OutputFormat): void {\n const message = buildProviderFollowupErrorMessage(error.message);\n if (outputFormat === \"text\") {\n console.error(`Error: ${message}`);\n if (error.exitCode === EXIT_USAGE) {\n console.error(\"\\nFor help: npx opendevbrowser --help\");\n }\n return;\n }\n\n writeOutput({ ...formatErrorPayload(error), error: message }, { format: outputFormat });\n}\n\nasync function main(): Promise<void> {\n let outputFormat: OutputFormat | null = null;\n let parseSucceeded = false;\n try {\n const args = parseArgs(process.argv);\n parseSucceeded = true;\n outputFormat = args.outputFormat;\n setDefaultLogSink(stderrSink);\n const outputOptions = { format: args.outputFormat, quiet: args.quiet };\n\n const emitResult = (result: CommandResult, payload?: Record<string, unknown>) => {\n const suppressOutput = Boolean(\n result.data\n && typeof result.data === \"object\"\n && \"suppressOutput\" in result.data\n && (result.data as { suppressOutput?: boolean }).suppressOutput\n );\n if (suppressOutput) {\n return;\n }\n if (args.outputFormat === \"text\") {\n if (result.message) {\n writeOutput(result.message, outputOptions);\n }\n } else {\n const exitCode = resolveExitCode(result);\n writeOutput({\n success: result.success,\n message: result.message,\n ...(result.success || !result.message ? {} : { error: result.message }),\n ...(result.success || exitCode === null ? {} : { exitCode }),\n ...payload\n }, outputOptions);\n }\n };\n\n const finishCommand = async (result: CommandResult): Promise<void> => {\n emitResult(result, result.data ? { data: result.data } : undefined);\n const exitCode = resolveExitCode(result);\n if (exitCode === null) {\n return;\n }\n await flushOutputAndExit(exitCode);\n };\n\n if (args.command === \"help\") {\n const { getHelpText } = await import(\"./help\");\n await finishCommand({ success: true, message: getHelpText() });\n return;\n }\n\n if (args.command === \"version\") {\n await finishCommand({ success: true, message: `opendevbrowser v${VERSION}` });\n return;\n }\n\n registerCommand({\n name: \"help\",\n description: \"Show help\",\n run: async () => {\n const { getHelpText } = await import(\"./help\");\n return { success: true, message: getHelpText() };\n }\n });\n\n registerCommand({\n name: \"version\",\n description: \"Show version\",\n run: () => ({ success: true, message: `opendevbrowser v${VERSION}` })\n });\n\n registerCommand({\n name: \"update\",\n description: \"Repair cached plugin pins and refresh managed skill packs\",\n run: async () => {\n const [\n { runUpdate },\n { resolveUpdateSkillModes },\n { hasInstalledConfig },\n {\n getBundledSkillTargets,\n getBundledSkillLifecycleTargets,\n hasBundledSkillArtifacts,\n syncBundledSkillsForTargets\n },\n { buildUpdateCommandResult }\n ] = await Promise.all([\n import(\"./commands/update\"),\n import(\"./update-skill-modes\"),\n import(\"./commands/uninstall\"),\n import(\"./installers/skills\"),\n import(\"./skill-lifecycle\")\n ]);\n\n return buildUpdateCommandResult(args, runUpdate(), {\n resolveUpdateSkillModes,\n hasInstalledConfig,\n hasBundledSkillArtifacts,\n getBundledSkillTargets,\n getBundledSkillLifecycleTargets,\n syncBundledSkillsForTargets\n });\n }\n });\n\n registerCommand({\n name: \"uninstall\",\n description: \"Remove plugin from config and clean managed skill packs\",\n run: async () => {\n let mode = args.mode;\n if (!mode && !args.noPrompt) {\n mode = await promptUninstallMode() ?? undefined;\n if (!mode) {\n return { success: true, message: \"Uninstall cancelled.\" };\n }\n }\n if (!mode) {\n return { success: false, message: \"Error: Please specify --global or --local for uninstall.\", exitCode: EXIT_USAGE };\n }\n const [\n { runUninstall },\n {\n getBundledSkillLifecycleTargets,\n hasBundledSkillArtifacts,\n removeBundledSkillsForTargets\n },\n { buildUninstallCommandResult }\n ] = await Promise.all([\n import(\"./commands/uninstall\"),\n import(\"./installers/skills\"),\n import(\"./skill-lifecycle\")\n ]);\n\n return buildUninstallCommandResult(args, mode, runUninstall(mode), {\n hasBundledSkillArtifacts,\n getBundledSkillLifecycleTargets,\n removeBundledSkillsForTargets\n });\n }\n });\n\n registerCommand({\n name: \"install\",\n description: \"Install the plugin and sync bundled skill packs\",\n run: async () => {\n const [\n { installGlobal },\n { installLocal },\n { syncBundledSkills },\n { reconcileInstallAutostart },\n {\n createInstallAutostartOutputPayload,\n formatAutostartReconciliationMessage\n },\n { extractExtension },\n { default: onboardingMetadata }\n ] = await Promise.all([\n import(\"./installers/global\"),\n import(\"./installers/local\"),\n import(\"./installers/skills\"),\n import(\"./install-autostart-reconciliation\"),\n import(\"./install-autostart-output\"),\n import(\"../extension-extractor\"),\n import(\"./onboarding-metadata.json\")\n ]);\n\n const log = (...values: unknown[]) => {\n if (args.quiet) return;\n console.log(...values);\n };\n const warn = (...values: unknown[]) => {\n if (args.quiet) return;\n console.warn(...values);\n };\n\n let mode = args.mode;\n if (!mode) {\n mode = await promptInstallMode();\n }\n\n const result = mode === \"global\"\n ? installGlobal(args.withConfig)\n : installLocal(args.withConfig);\n const autostart = result.success ? reconcileInstallAutostart(result) : undefined;\n const skillsResult = result.success && args.skillsMode !== \"none\"\n ? syncBundledSkills(args.skillsMode)\n : undefined;\n const installSuccess = result.success && (skillsResult?.success ?? true);\n\n if (args.outputFormat !== \"text\") {\n const payload: Record<string, unknown> = {\n alreadyInstalled: result.alreadyInstalled\n };\n\n if (skillsResult) {\n payload.skills = skillsResult;\n }\n\n if (args.fullInstall && result.success) {\n try {\n const extensionPath = extractExtension();\n payload.extensionPath = extensionPath;\n } catch (error) {\n payload.extensionError = error instanceof Error ? error.message : String(error);\n }\n }\n\n if (autostart) {\n Object.assign(payload, createInstallAutostartOutputPayload(autostart));\n }\n\n return { success: installSuccess, message: result.message, data: payload };\n }\n\n log(result.message);\n\n if (args.skillsMode === \"none\") {\n log(\"Skill installation skipped (--no-skills).\");\n } else if (skillsResult) {\n if (skillsResult.success) {\n log(skillsResult.message);\n } else {\n warn(skillsResult.message);\n }\n } else {\n warn(\"Skill installation skipped because plugin install failed.\");\n }\n\n if (args.fullInstall && result.success) {\n try {\n const extensionPath = extractExtension();\n if (extensionPath) {\n log(`Extension assets extracted to ${extensionPath}`);\n } else {\n warn(\"Extension assets not found; skipping extraction.\");\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n warn(`Extension pre-extraction failed: ${message}`);\n }\n }\n\n if (autostart) {\n const autostartMessage = formatAutostartReconciliationMessage(autostart);\n if (autostartMessage) {\n if (autostart.autostartAction === \"repair_failed\") {\n warn(autostartMessage);\n } else {\n log(autostartMessage);\n }\n }\n }\n\n if (installSuccess && !result.alreadyInstalled) {\n log(\"\\nNext steps:\");\n log(\" 1. Start or restart OpenCode\");\n log(` 2. Read npx opendevbrowser --help and start with ${onboardingMetadata.quickStartCommands.promptingGuide}`);\n log(` 3. Or load ${onboardingMetadata.skillName} ${onboardingMetadata.skillTopic} directly via ${onboardingMetadata.quickStartCommands.skillLoad}`);\n log(\" 4. Use opendevbrowser_status to verify the plugin is loaded\");\n }\n\n return { success: installSuccess, message: result.message };\n }\n });\n\n registerCommand({\n name: \"serve\",\n description: \"Start or stop the local daemon\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/serve\"), \"runServe\")\n });\n\n registerCommand({\n name: \"daemon\",\n description: \"Install/uninstall/status daemon auto-start\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/daemon\"), \"runDaemonCommand\")\n });\n\n registerCommand({\n name: \"native\",\n description: \"Install/uninstall/status native messaging host\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/native\"), \"runNativeCommand\")\n });\n\n registerCommand({\n name: \"run\",\n description: \"Execute a JSON script in a single process\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/run\"), \"runScriptCommand\")\n });\n\n registerCommand({\n name: \"launch\",\n description: \"Launch a managed browser session via daemon\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/launch\"), \"runSessionLaunch\")\n });\n\n registerCommand({\n name: \"connect\",\n description: \"Connect to an existing browser via daemon\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/connect\"), \"runSessionConnect\")\n });\n\n registerCommand({\n name: \"disconnect\",\n description: \"Disconnect a daemon session\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/disconnect\"), \"runSessionDisconnect\")\n });\n\n registerCommand({\n name: \"status\",\n description: \"Get daemon or session status\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/status\"), \"runStatus\")\n });\n\n registerCommand({\n name: \"status-capabilities\",\n description: \"Inspect runtime capability discovery for the host and an optional session\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/status-capabilities\"), \"runStatusCapabilities\")\n });\n\n registerCommand({\n name: \"session-inspector\",\n description: \"Capture a session-first diagnostic summary with relay health and trace proof\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/inspector\"), \"runSessionInspector\")\n });\n\n registerCommand({\n name: \"session-inspector-plan\",\n description: \"Inspect browser-scoped computer-use policy and safe suggested steps\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/inspector-plan\"), \"runSessionInspectorPlan\")\n });\n\n registerCommand({\n name: \"session-inspector-audit\",\n description: \"Capture a correlated audit bundle across desktop evidence, browser review, and policy state\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/inspector-audit\"), \"runSessionInspectorAudit\")\n });\n\n registerCommand({\n name: \"goto\",\n description: \"Navigate current session to a URL\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/goto\"), \"runGoto\")\n });\n\n registerCommand({\n name: \"wait\",\n description: \"Wait for load or a ref to appear\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/wait\"), \"runWait\")\n });\n\n registerCommand({\n name: \"snapshot\",\n description: \"Capture a snapshot of the active page\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/snapshot\"), \"runSnapshot\")\n });\n\n registerCommand({\n name: \"review\",\n description: \"Capture a first-class review payload for the active page\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/review\"), \"runReview\")\n });\n\n registerCommand({\n name: \"review-desktop\",\n description: \"Capture desktop-assisted browser review with read-only desktop evidence\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/review-desktop\"), \"runReviewDesktop\")\n });\n\n registerCommand({\n name: \"annotate\",\n description: \"Request interactive annotations via direct or relay transport\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/annotate\"), \"runAnnotate\")\n });\n\n registerCommand({\n name: \"canvas\",\n description: \"Execute a design-canvas command\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/canvas\"), \"runCanvas\")\n });\n\n registerCommand({\n name: \"rpc\",\n description: \"Execute an internal daemon RPC command (power-user)\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/rpc\"), \"runRpc\")\n });\n\n registerCommand({\n name: \"click\",\n description: \"Click an element by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/click\"), \"runClick\")\n });\n\n registerCommand({\n name: \"hover\",\n description: \"Hover an element by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/hover\"), \"runHover\")\n });\n\n registerCommand({\n name: \"press\",\n description: \"Press a keyboard key\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/press\"), \"runPress\")\n });\n\n registerCommand({\n name: \"check\",\n description: \"Check a checkbox by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/check\"), \"runCheck\")\n });\n\n registerCommand({\n name: \"uncheck\",\n description: \"Uncheck a checkbox by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/uncheck\"), \"runUncheck\")\n });\n\n registerCommand({\n name: \"type\",\n description: \"Type into an element by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/type\"), \"runType\")\n });\n\n registerCommand({\n name: \"select\",\n description: \"Select values in a select by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/select\"), \"runSelect\")\n });\n\n registerCommand({\n name: \"scroll\",\n description: \"Scroll the page or element by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/scroll\"), \"runScroll\")\n });\n\n registerCommand({\n name: \"scroll-into-view\",\n description: \"Scroll an element into view by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/scroll-into-view\"), \"runScrollIntoView\")\n });\n\n registerCommand({\n name: \"upload\",\n description: \"Upload files to a file input or chooser by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/upload\"), \"runUpload\")\n });\n\n registerCommand({\n name: \"pointer-move\",\n description: \"Move the pointer to viewport coordinates\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/pointer-move\"), \"runPointerMove\")\n });\n\n registerCommand({\n name: \"pointer-down\",\n description: \"Press a mouse button at viewport coordinates\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/pointer-down\"), \"runPointerDown\")\n });\n\n registerCommand({\n name: \"pointer-up\",\n description: \"Release a mouse button at viewport coordinates\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/pointer-up\"), \"runPointerUp\")\n });\n\n registerCommand({\n name: \"pointer-drag\",\n description: \"Drag the pointer between two viewport coordinates\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/pointer-drag\"), \"runPointerDrag\")\n });\n\n registerCommand({\n name: \"targets-list\",\n description: \"List page targets\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/targets/list\"), \"runTargetsList\")\n });\n\n registerCommand({\n name: \"target-use\",\n description: \"Focus a target by id\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/targets/use\"), \"runTargetUse\")\n });\n\n registerCommand({\n name: \"target-new\",\n description: \"Open a new target\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/targets/new\"), \"runTargetNew\")\n });\n\n registerCommand({\n name: \"target-close\",\n description: \"Close a target by id\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/targets/close\"), \"runTargetClose\")\n });\n\n registerCommand({\n name: \"page\",\n description: \"Open or focus a named page\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/pages/open\"), \"runPageOpen\")\n });\n\n registerCommand({\n name: \"pages\",\n description: \"List named pages\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/pages/list\"), \"runPagesList\")\n });\n\n registerCommand({\n name: \"page-close\",\n description: \"Close a named page\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/pages/close\"), \"runPageClose\")\n });\n\n registerCommand({\n name: \"dom-html\",\n description: \"Capture HTML for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/html\"), \"runDomHtml\")\n });\n\n registerCommand({\n name: \"dom-text\",\n description: \"Capture text for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/text\"), \"runDomText\")\n });\n\n registerCommand({\n name: \"dom-attr\",\n description: \"Capture attribute value for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/attr\"), \"runDomAttr\")\n });\n\n registerCommand({\n name: \"dom-value\",\n description: \"Capture input value for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/value\"), \"runDomValue\")\n });\n\n registerCommand({\n name: \"dom-visible\",\n description: \"Check visibility for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/visible\"), \"runDomVisible\")\n });\n\n registerCommand({\n name: \"dom-enabled\",\n description: \"Check enabled state for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/enabled\"), \"runDomEnabled\")\n });\n\n registerCommand({\n name: \"dom-checked\",\n description: \"Check checked state for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/checked\"), \"runDomChecked\")\n });\n\n registerCommand({\n name: \"clone-page\",\n description: \"Clone the active page to React\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/export/clone-page\"), \"runClonePage\")\n });\n\n registerCommand({\n name: \"clone-component\",\n description: \"Clone a component by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/export/clone-component\"), \"runCloneComponent\")\n });\n\n registerCommand({\n name: \"perf\",\n description: \"Capture performance metrics\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/perf\"), \"runPerf\")\n });\n\n registerCommand({\n name: \"screenshot\",\n description: \"Capture a screenshot\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/screenshot\"), \"runScreenshot\")\n });\n\n registerCommand({\n name: \"screencast-start\",\n description: \"Start a browser replay screencast capture\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/screencast-start\"), \"runScreencastStart\")\n });\n\n registerCommand({\n name: \"screencast-stop\",\n description: \"Stop a browser replay screencast capture\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/screencast-stop\"), \"runScreencastStop\")\n });\n\n registerCommand({\n name: \"dialog\",\n description: \"Inspect or handle a JavaScript dialog\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/dialog\"), \"runDialog\")\n });\n\n registerCommand({\n name: \"console-poll\",\n description: \"Poll console events\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/console-poll\"), \"runConsolePoll\")\n });\n\n registerCommand({\n name: \"network-poll\",\n description: \"Poll network events\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/network-poll\"), \"runNetworkPoll\")\n });\n\n registerCommand({\n name: \"debug-trace-snapshot\",\n description: \"Capture page + console + network + exception diagnostics\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/debug-trace-snapshot\"), \"runDebugTraceSnapshot\")\n });\n\n registerCommand({\n name: \"desktop-status\",\n description: \"Inspect public read-only desktop observation availability\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/status\"), \"runDesktopStatus\")\n });\n\n registerCommand({\n name: \"desktop-windows\",\n description: \"List windows exposed by the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/windows\"), \"runDesktopWindows\")\n });\n\n registerCommand({\n name: \"desktop-active-window\",\n description: \"Inspect the active window through the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/active-window\"), \"runDesktopActiveWindow\")\n });\n\n registerCommand({\n name: \"desktop-capture-desktop\",\n description: \"Capture the current desktop surface through the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/capture-desktop\"), \"runDesktopCaptureDesktop\")\n });\n\n registerCommand({\n name: \"desktop-capture-window\",\n description: \"Capture a specific window through the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/capture-window\"), \"runDesktopCaptureWindow\")\n });\n\n registerCommand({\n name: \"desktop-accessibility-snapshot\",\n description: \"Capture desktop accessibility state through the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/accessibility-snapshot\"), \"runDesktopAccessibilitySnapshot\")\n });\n\n registerCommand({\n name: \"cookie-import\",\n description: \"Import validated cookies into a session\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/cookie-import\"), \"runCookieImport\")\n });\n\n registerCommand({\n name: \"cookie-list\",\n description: \"List cookies for a session (optionally filtered by URL)\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/cookie-list\"), \"runCookieList\")\n });\n\n registerCommand({\n name: \"macro-resolve\",\n description: \"Resolve or execute a macro expression via provider actions\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/macro-resolve\"), \"runMacroResolve\")\n });\n\n registerCommand({\n name: \"research\",\n description: \"Run research workflows\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/research\"), \"runResearchCommand\")\n });\n\n registerCommand({\n name: \"shopping\",\n description: \"Run shopping workflows\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/shopping\"), \"runShoppingCommand\")\n });\n\n registerCommand({\n name: \"product-video\",\n description: \"Run product presentation asset workflows\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/product-video\"), \"runProductVideoCommand\")\n });\n\n registerCommand({\n name: \"inspiredesign\",\n description: \"Run inspiredesign workflows\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/inspiredesign\"), \"runInspiredesignCommand\")\n });\n\n registerCommand({\n name: \"artifacts\",\n description: \"Manage workflow artifact lifecycle\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/artifacts\"), \"runArtifactsCommand\")\n });\n const command = getCommand(args.command);\n if (!command) {\n throw new Error(`Unknown command: ${args.command}`);\n }\n\n const result = await command.run(args);\n await finishCommand(result);\n return;\n } catch (error) {\n const format = outputFormat ?? detectOutputFormat(process.argv);\n const cliError = toCliError(error, parseSucceeded ? EXIT_EXECUTION : EXIT_USAGE);\n emitFatalError(cliError, format);\n await flushOutputAndExit(cliError.exitCode);\n return;\n }\n}\n\nmain().catch(async (error: unknown) => {\n const cliError = toCliError(error, EXIT_EXECUTION);\n emitFatalError(cliError, detectOutputFormat(process.argv));\n await flushOutputAndExit(cliError.exitCode);\n});\n"],"mappings":"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","names":["result"]}
1
+ {"version":3,"sources":["../../src/cli/commands/registry.ts","../../package.json","../../src/cli/index.ts"],"sourcesContent":["import type { CommandDefinition } from \"./types\";\n\nconst registry = new Map<string, CommandDefinition>();\n\nexport function registerCommand(definition: CommandDefinition): void {\n registry.set(definition.name, definition);\n}\n\nexport function getCommand(name: string): CommandDefinition | undefined {\n return registry.get(name);\n}\n\nexport function listCommands(): CommandDefinition[] {\n return Array.from(registry.values());\n}\n","{\n \"name\": \"opendevbrowser\",\n \"version\": \"0.0.31\",\n \"description\": \"Browser automation runtime with snapshot-refs-actions, browser replay screencasts, public read-only desktop observation, and browser-scoped computer-use orchestration\",\n \"type\": \"module\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"bin\": {\n \"opendevbrowser\": \"dist/cli/index.js\"\n },\n \"files\": [\n \"dist\",\n \"skills\",\n \"scripts/postinstall-sync-skills.mjs\",\n \"scripts/native\",\n \"extension/canvas.html\",\n \"extension/manifest.json\",\n \"extension/popup.html\",\n \"extension/dist\",\n \"extension/icons\"\n ],\n \"keywords\": [\n \"opencode\",\n \"plugin\",\n \"browser\",\n \"automation\",\n \"cdp\",\n \"playwright\",\n \"testing\",\n \"web-scraping\",\n \"chrome\",\n \"annotation\",\n \"design-canvas\",\n \"screencast\",\n \"desktop-observation\",\n \"browser-replay\",\n \"computer-use\",\n \"challenge-automation\"\n ],\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/freshtechbro/opendevbrowser.git\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"scripts\": {\n \"build\": \"node scripts/run-package-tool.mjs tsup --config tsup.config.ts && node scripts/run-package-tool.mjs tsc --emitDeclarationOnly --declaration --declarationMap -p tsconfig.json && node scripts/postbuild-dist.mjs\",\n \"dev\": \"node scripts/run-package-tool.mjs tsup --config tsup.config.ts --dts --watch\",\n \"lint\": \"node scripts/run-package-tool.mjs eslint \\\"src/**/*.ts\\\" \\\"tests/**/*.ts\\\"\",\n \"typecheck\": \"node scripts/run-package-tool.mjs tsc --noEmit -p tsconfig.json\",\n \"test\": \"node scripts/run-vitest-coverage.mjs\",\n \"test:release-gate\": \"node scripts/release-gate-test-groups.mjs\",\n \"test:release-gate:g1\": \"node scripts/release-gate-test-groups.mjs --group 1\",\n \"test:release-gate:g2\": \"node scripts/release-gate-test-groups.mjs --group 2\",\n \"test:release-gate:g3\": \"node scripts/release-gate-test-groups.mjs --group 3\",\n \"test:release-gate:g4\": \"node scripts/release-gate-test-groups.mjs --group 4\",\n \"test:release-gate:g5\": \"node scripts/release-gate-test-groups.mjs --group 5\",\n \"extension:sync\": \"node scripts/sync-extension-version.mjs\",\n \"extension:build\": \"npm run extension:sync && node scripts/run-package-tool.mjs tsc -p extension/tsconfig.json && node scripts/copy-extension-assets.mjs\",\n \"extension:pack\": \"cd extension && zip -r ../opendevbrowser-extension.zip manifest.json popup.html canvas.html dist/ icons/\",\n \"extension:store\": \"node scripts/chrome-store-publish.mjs\",\n \"version:check\": \"node scripts/verify-versions.mjs\",\n \"prepack\": \"npm run version:check && npm run build && npm run extension:build\",\n \"postinstall\": \"node scripts/postinstall-sync-skills.mjs\"\n },\n \"dependencies\": {\n \"@opencode-ai/plugin\": \"^1.2.25\",\n \"@puppeteer/browsers\": \"^2.13.0\",\n \"async-mutex\": \"^0.5.0\",\n \"jsonc-parser\": \"^3.2.0\",\n \"parse5\": \"^8.0.0\",\n \"playwright-core\": \"^1.58.2\",\n \"typescript\": \"^5.9.3\",\n \"ws\": \"^8.19.0\",\n \"yjs\": \"^13.6.29\",\n \"zod\": \"^3.25.76\"\n },\n \"devDependencies\": {\n \"@types/chrome\": \"^0.1.37\",\n \"@types/node\": \"^20.19.35\",\n \"@types/ws\": \"^8.18.1\",\n \"@typescript-eslint/eslint-plugin\": \"^8.56.1\",\n \"@typescript-eslint/parser\": \"^8.56.1\",\n \"@vitest/coverage-v8\": \"^4.0.18\",\n \"eslint\": \"^9.39.3\",\n \"happy-dom\": \"^20.7.0\",\n \"tsup\": \"^8.5.1\",\n \"vitest\": \"^4.0.18\"\n }\n}\n","#!/usr/bin/env node\n\nimport { parseArgs, detectOutputFormat } from \"./args\";\nimport type { InstallMode, OutputFormat, ParsedArgs } from \"./args\";\nimport { registerCommand, getCommand } from \"./commands/registry\";\nimport type { CommandResult } from \"./commands/types\";\nimport { setDefaultLogSink, stderrSink } from \"../core/logging\";\nimport { flushOutputAndExit, writeOutput } from \"./output\";\nimport { formatErrorPayload, resolveExitCode, toCliError, EXIT_EXECUTION, EXIT_USAGE } from \"./errors\";\nimport type { CliError } from \"./errors\";\nimport { buildProviderFollowupErrorMessage } from \"./utils/workflow-message\";\nimport packageJson from \"../../package.json\";\n\nconst VERSION = typeof packageJson.version === \"string\" ? packageJson.version : \"0.0.0\";\n\ntype CommandRunner = (args: ParsedArgs) => Promise<CommandResult> | CommandResult;\n\nasync function runLazyCommand<ExportName extends string>(\n args: ParsedArgs,\n loader: () => Promise<Record<ExportName, CommandRunner>>,\n exportName: ExportName\n): Promise<CommandResult> {\n const commandModule = await loader();\n return commandModule[exportName](args);\n}\n\nasync function promptInstallMode(): Promise<InstallMode> {\n if (!process.stdin.isTTY) {\n console.log(\"Non-interactive mode detected. Using global install.\");\n return \"global\";\n }\n\n return new Promise((resolve) => {\n console.log(\"\\nWhere would you like to install opendevbrowser?\\n\");\n console.log(\" 1. Global (~/.config/opencode/opencode.json)\");\n console.log(\" 2. Local (./opencode.json in this project)\\n\");\n\n process.stdout.write(\"Enter choice [1]: \");\n\n process.stdin.setEncoding(\"utf8\");\n let resolved = false;\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const cleanup = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n\n process.stdin.once(\"data\", (data) => {\n cleanup();\n if (resolved) return;\n resolved = true;\n const input = data.toString().trim();\n if (input === \"2\") {\n resolve(\"local\");\n } else {\n resolve(\"global\");\n }\n });\n\n process.stdin.once(\"close\", () => {\n cleanup();\n if (resolved) return;\n resolved = true;\n resolve(\"global\");\n });\n\n timeoutId = setTimeout(() => {\n timeoutId = null;\n if (resolved) return;\n resolved = true;\n console.log(\"\\nTimeout - using global install.\");\n resolve(\"global\");\n }, 30000);\n });\n}\n\nasync function promptUninstallMode(): Promise<InstallMode | null> {\n const { findInstalledConfigs } = await import(\"./commands/uninstall\");\n const installed = findInstalledConfigs();\n\n if (!installed.global && !installed.local) {\n console.log(\"opendevbrowser is not installed in any config.\");\n return null;\n }\n\n if (installed.global && !installed.local) {\n return \"global\";\n }\n\n if (!installed.global && installed.local) {\n return \"local\";\n }\n\n if (!process.stdin.isTTY) {\n console.log(\"Plugin found in both global and local configs. Use --global or --local flag.\");\n return null;\n }\n\n return new Promise((resolve) => {\n console.log(\"\\nopendevbrowser is installed in multiple locations:\\n\");\n console.log(\" 1. Global (~/.config/opencode/opencode.json)\");\n console.log(\" 2. Local (./opencode.json)\");\n console.log(\" 3. Cancel\\n\");\n\n process.stdout.write(\"Which to uninstall? [3]: \");\n\n process.stdin.setEncoding(\"utf8\");\n process.stdin.once(\"data\", (data) => {\n const input = data.toString().trim();\n if (input === \"1\") {\n resolve(\"global\");\n } else if (input === \"2\") {\n resolve(\"local\");\n } else {\n resolve(null);\n }\n });\n\n process.stdin.once(\"close\", () => {\n resolve(null);\n });\n });\n}\n\nfunction emitFatalError(error: CliError, outputFormat: OutputFormat): void {\n const message = buildProviderFollowupErrorMessage(error.message);\n if (outputFormat === \"text\") {\n console.error(`Error: ${message}`);\n if (error.exitCode === EXIT_USAGE) {\n console.error(\"\\nFor help: npx opendevbrowser --help\");\n }\n return;\n }\n\n writeOutput({ ...formatErrorPayload(error), error: message }, { format: outputFormat });\n}\n\nasync function main(): Promise<void> {\n let outputFormat: OutputFormat | null = null;\n let parseSucceeded = false;\n try {\n const args = parseArgs(process.argv);\n parseSucceeded = true;\n outputFormat = args.outputFormat;\n setDefaultLogSink(stderrSink);\n const outputOptions = { format: args.outputFormat, quiet: args.quiet };\n\n const emitResult = (result: CommandResult, payload?: Record<string, unknown>) => {\n const suppressOutput = Boolean(\n result.data\n && typeof result.data === \"object\"\n && \"suppressOutput\" in result.data\n && (result.data as { suppressOutput?: boolean }).suppressOutput\n );\n if (suppressOutput) {\n return;\n }\n if (args.outputFormat === \"text\") {\n if (result.message) {\n writeOutput(result.message, outputOptions);\n }\n } else {\n const exitCode = resolveExitCode(result);\n writeOutput({\n success: result.success,\n message: result.message,\n ...(result.success || !result.message ? {} : { error: result.message }),\n ...(result.success || exitCode === null ? {} : { exitCode }),\n ...payload\n }, outputOptions);\n }\n };\n\n const finishCommand = async (result: CommandResult): Promise<void> => {\n emitResult(result, result.data ? { data: result.data } : undefined);\n const exitCode = resolveExitCode(result);\n if (exitCode === null) {\n return;\n }\n await flushOutputAndExit(exitCode);\n };\n\n if (args.command === \"help\") {\n const { getHelpText } = await import(\"./help\");\n await finishCommand({ success: true, message: getHelpText() });\n return;\n }\n\n if (args.command === \"version\") {\n await finishCommand({ success: true, message: `opendevbrowser v${VERSION}` });\n return;\n }\n\n registerCommand({\n name: \"help\",\n description: \"Show help\",\n run: async () => {\n const { getHelpText } = await import(\"./help\");\n return { success: true, message: getHelpText() };\n }\n });\n\n registerCommand({\n name: \"version\",\n description: \"Show version\",\n run: () => ({ success: true, message: `opendevbrowser v${VERSION}` })\n });\n\n registerCommand({\n name: \"update\",\n description: \"Repair OpenCode package caches and refresh managed skill packs\",\n run: async () => {\n const [\n { runUpdate },\n { resolveUpdateSkillModes },\n { hasInstalledConfig },\n {\n getBundledSkillTargets,\n getBundledSkillLifecycleTargets,\n hasBundledSkillArtifacts,\n syncBundledSkillsForTargets\n },\n { buildUpdateCommandResult }\n ] = await Promise.all([\n import(\"./commands/update\"),\n import(\"./update-skill-modes\"),\n import(\"./commands/uninstall\"),\n import(\"./installers/skills\"),\n import(\"./skill-lifecycle\")\n ]);\n\n return buildUpdateCommandResult(args, runUpdate(), {\n resolveUpdateSkillModes,\n hasInstalledConfig,\n hasBundledSkillArtifacts,\n getBundledSkillTargets,\n getBundledSkillLifecycleTargets,\n syncBundledSkillsForTargets\n });\n }\n });\n\n registerCommand({\n name: \"uninstall\",\n description: \"Remove plugin from config and clean managed skill packs\",\n run: async () => {\n let mode = args.mode;\n if (!mode && !args.noPrompt) {\n mode = await promptUninstallMode() ?? undefined;\n if (!mode) {\n return { success: true, message: \"Uninstall cancelled.\" };\n }\n }\n if (!mode) {\n return { success: false, message: \"Error: Please specify --global or --local for uninstall.\", exitCode: EXIT_USAGE };\n }\n const [\n { runUninstall },\n {\n getBundledSkillLifecycleTargets,\n hasBundledSkillArtifacts,\n removeBundledSkillsForTargets\n },\n { buildUninstallCommandResult }\n ] = await Promise.all([\n import(\"./commands/uninstall\"),\n import(\"./installers/skills\"),\n import(\"./skill-lifecycle\")\n ]);\n\n return buildUninstallCommandResult(args, mode, runUninstall(mode), {\n hasBundledSkillArtifacts,\n getBundledSkillLifecycleTargets,\n removeBundledSkillsForTargets\n });\n }\n });\n\n registerCommand({\n name: \"install\",\n description: \"Install the plugin and sync bundled skill packs\",\n run: async () => {\n const [\n { installGlobal },\n { installLocal },\n { syncBundledSkills },\n { reconcileInstallAutostart },\n {\n createInstallAutostartOutputPayload,\n formatAutostartReconciliationMessage\n },\n { extractExtension },\n { default: onboardingMetadata }\n ] = await Promise.all([\n import(\"./installers/global\"),\n import(\"./installers/local\"),\n import(\"./installers/skills\"),\n import(\"./install-autostart-reconciliation\"),\n import(\"./install-autostart-output\"),\n import(\"../extension-extractor\"),\n import(\"./onboarding-metadata.json\")\n ]);\n\n const log = (...values: unknown[]) => {\n if (args.quiet) return;\n console.log(...values);\n };\n const warn = (...values: unknown[]) => {\n if (args.quiet) return;\n console.warn(...values);\n };\n\n let mode = args.mode;\n if (!mode) {\n mode = await promptInstallMode();\n }\n\n const result = mode === \"global\"\n ? installGlobal(args.withConfig)\n : installLocal(args.withConfig);\n const autostart = result.success ? reconcileInstallAutostart(result) : undefined;\n const skillsResult = result.success && args.skillsMode !== \"none\"\n ? syncBundledSkills(args.skillsMode)\n : undefined;\n const installSuccess = result.success && (skillsResult?.success ?? true);\n\n if (args.outputFormat !== \"text\") {\n const payload: Record<string, unknown> = {\n alreadyInstalled: result.alreadyInstalled\n };\n\n if (skillsResult) {\n payload.skills = skillsResult;\n }\n\n if (args.fullInstall && result.success) {\n try {\n const extensionPath = extractExtension();\n payload.extensionPath = extensionPath;\n } catch (error) {\n payload.extensionError = error instanceof Error ? error.message : String(error);\n }\n }\n\n if (autostart) {\n Object.assign(payload, createInstallAutostartOutputPayload(autostart));\n }\n\n return { success: installSuccess, message: result.message, data: payload };\n }\n\n log(result.message);\n\n if (args.skillsMode === \"none\") {\n log(\"Skill installation skipped (--no-skills).\");\n } else if (skillsResult) {\n if (skillsResult.success) {\n log(skillsResult.message);\n } else {\n warn(skillsResult.message);\n }\n } else {\n warn(\"Skill installation skipped because plugin install failed.\");\n }\n\n if (args.fullInstall && result.success) {\n try {\n const extensionPath = extractExtension();\n if (extensionPath) {\n log(`Extension assets extracted to ${extensionPath}`);\n } else {\n warn(\"Extension assets not found; skipping extraction.\");\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n warn(`Extension pre-extraction failed: ${message}`);\n }\n }\n\n if (autostart) {\n const autostartMessage = formatAutostartReconciliationMessage(autostart);\n if (autostartMessage) {\n if (autostart.autostartAction === \"repair_failed\") {\n warn(autostartMessage);\n } else {\n log(autostartMessage);\n }\n }\n }\n\n if (installSuccess && !result.alreadyInstalled) {\n log(\"\\nNext steps:\");\n log(\" 1. Start or restart OpenCode\");\n log(` 2. Read npx opendevbrowser --help and start with ${onboardingMetadata.quickStartCommands.promptingGuide}`);\n log(` 3. Or load ${onboardingMetadata.skillName} ${onboardingMetadata.skillTopic} directly via ${onboardingMetadata.quickStartCommands.skillLoad}`);\n log(\" 4. Use opendevbrowser_status to verify the plugin is loaded\");\n }\n\n return { success: installSuccess, message: result.message };\n }\n });\n\n registerCommand({\n name: \"serve\",\n description: \"Start or stop the local daemon\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/serve\"), \"runServe\")\n });\n\n registerCommand({\n name: \"daemon\",\n description: \"Install/uninstall/status daemon auto-start\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/daemon\"), \"runDaemonCommand\")\n });\n\n registerCommand({\n name: \"native\",\n description: \"Install/uninstall/status native messaging host\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/native\"), \"runNativeCommand\")\n });\n\n registerCommand({\n name: \"run\",\n description: \"Execute a JSON script in a single process\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/run\"), \"runScriptCommand\")\n });\n\n registerCommand({\n name: \"launch\",\n description: \"Launch a managed browser session via daemon\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/launch\"), \"runSessionLaunch\")\n });\n\n registerCommand({\n name: \"connect\",\n description: \"Connect to an existing browser via daemon\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/connect\"), \"runSessionConnect\")\n });\n\n registerCommand({\n name: \"disconnect\",\n description: \"Disconnect a daemon session\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/disconnect\"), \"runSessionDisconnect\")\n });\n\n registerCommand({\n name: \"status\",\n description: \"Get daemon or session status\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/status\"), \"runStatus\")\n });\n\n registerCommand({\n name: \"status-capabilities\",\n description: \"Inspect runtime capability discovery for the host and an optional session\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/status-capabilities\"), \"runStatusCapabilities\")\n });\n\n registerCommand({\n name: \"session-inspector\",\n description: \"Capture a session-first diagnostic summary with relay health and trace proof\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/inspector\"), \"runSessionInspector\")\n });\n\n registerCommand({\n name: \"session-inspector-plan\",\n description: \"Inspect browser-scoped computer-use policy and safe suggested steps\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/inspector-plan\"), \"runSessionInspectorPlan\")\n });\n\n registerCommand({\n name: \"session-inspector-audit\",\n description: \"Capture a correlated audit bundle across desktop evidence, browser review, and policy state\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/inspector-audit\"), \"runSessionInspectorAudit\")\n });\n\n registerCommand({\n name: \"goto\",\n description: \"Navigate current session to a URL\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/goto\"), \"runGoto\")\n });\n\n registerCommand({\n name: \"wait\",\n description: \"Wait for load or a ref to appear\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/wait\"), \"runWait\")\n });\n\n registerCommand({\n name: \"snapshot\",\n description: \"Capture a snapshot of the active page\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/snapshot\"), \"runSnapshot\")\n });\n\n registerCommand({\n name: \"review\",\n description: \"Capture a first-class review payload for the active page\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/review\"), \"runReview\")\n });\n\n registerCommand({\n name: \"review-desktop\",\n description: \"Capture desktop-assisted browser review with read-only desktop evidence\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/nav/review-desktop\"), \"runReviewDesktop\")\n });\n\n registerCommand({\n name: \"annotate\",\n description: \"Request interactive annotations via direct or relay transport\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/annotate\"), \"runAnnotate\")\n });\n\n registerCommand({\n name: \"canvas\",\n description: \"Execute a design-canvas command\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/canvas\"), \"runCanvas\")\n });\n\n registerCommand({\n name: \"rpc\",\n description: \"Execute an internal daemon RPC command (power-user)\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/rpc\"), \"runRpc\")\n });\n\n registerCommand({\n name: \"click\",\n description: \"Click an element by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/click\"), \"runClick\")\n });\n\n registerCommand({\n name: \"hover\",\n description: \"Hover an element by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/hover\"), \"runHover\")\n });\n\n registerCommand({\n name: \"press\",\n description: \"Press a keyboard key\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/press\"), \"runPress\")\n });\n\n registerCommand({\n name: \"check\",\n description: \"Check a checkbox by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/check\"), \"runCheck\")\n });\n\n registerCommand({\n name: \"uncheck\",\n description: \"Uncheck a checkbox by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/uncheck\"), \"runUncheck\")\n });\n\n registerCommand({\n name: \"type\",\n description: \"Type into an element by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/type\"), \"runType\")\n });\n\n registerCommand({\n name: \"select\",\n description: \"Select values in a select by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/select\"), \"runSelect\")\n });\n\n registerCommand({\n name: \"scroll\",\n description: \"Scroll the page or element by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/scroll\"), \"runScroll\")\n });\n\n registerCommand({\n name: \"scroll-into-view\",\n description: \"Scroll an element into view by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/scroll-into-view\"), \"runScrollIntoView\")\n });\n\n registerCommand({\n name: \"upload\",\n description: \"Upload files to a file input or chooser by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/upload\"), \"runUpload\")\n });\n\n registerCommand({\n name: \"pointer-move\",\n description: \"Move the pointer to viewport coordinates\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/pointer-move\"), \"runPointerMove\")\n });\n\n registerCommand({\n name: \"pointer-down\",\n description: \"Press a mouse button at viewport coordinates\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/pointer-down\"), \"runPointerDown\")\n });\n\n registerCommand({\n name: \"pointer-up\",\n description: \"Release a mouse button at viewport coordinates\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/pointer-up\"), \"runPointerUp\")\n });\n\n registerCommand({\n name: \"pointer-drag\",\n description: \"Drag the pointer between two viewport coordinates\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/interact/pointer-drag\"), \"runPointerDrag\")\n });\n\n registerCommand({\n name: \"targets-list\",\n description: \"List page targets\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/targets/list\"), \"runTargetsList\")\n });\n\n registerCommand({\n name: \"target-use\",\n description: \"Focus a target by id\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/targets/use\"), \"runTargetUse\")\n });\n\n registerCommand({\n name: \"target-new\",\n description: \"Open a new target\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/targets/new\"), \"runTargetNew\")\n });\n\n registerCommand({\n name: \"target-close\",\n description: \"Close a target by id\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/targets/close\"), \"runTargetClose\")\n });\n\n registerCommand({\n name: \"page\",\n description: \"Open or focus a named page\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/pages/open\"), \"runPageOpen\")\n });\n\n registerCommand({\n name: \"pages\",\n description: \"List named pages\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/pages/list\"), \"runPagesList\")\n });\n\n registerCommand({\n name: \"page-close\",\n description: \"Close a named page\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/pages/close\"), \"runPageClose\")\n });\n\n registerCommand({\n name: \"dom-html\",\n description: \"Capture HTML for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/html\"), \"runDomHtml\")\n });\n\n registerCommand({\n name: \"dom-text\",\n description: \"Capture text for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/text\"), \"runDomText\")\n });\n\n registerCommand({\n name: \"dom-attr\",\n description: \"Capture attribute value for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/attr\"), \"runDomAttr\")\n });\n\n registerCommand({\n name: \"dom-value\",\n description: \"Capture input value for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/value\"), \"runDomValue\")\n });\n\n registerCommand({\n name: \"dom-visible\",\n description: \"Check visibility for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/visible\"), \"runDomVisible\")\n });\n\n registerCommand({\n name: \"dom-enabled\",\n description: \"Check enabled state for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/enabled\"), \"runDomEnabled\")\n });\n\n registerCommand({\n name: \"dom-checked\",\n description: \"Check checked state for a ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/dom/checked\"), \"runDomChecked\")\n });\n\n registerCommand({\n name: \"clone-page\",\n description: \"Clone the active page to React\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/export/clone-page\"), \"runClonePage\")\n });\n\n registerCommand({\n name: \"clone-component\",\n description: \"Clone a component by ref\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/export/clone-component\"), \"runCloneComponent\")\n });\n\n registerCommand({\n name: \"perf\",\n description: \"Capture performance metrics\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/perf\"), \"runPerf\")\n });\n\n registerCommand({\n name: \"screenshot\",\n description: \"Capture a screenshot\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/screenshot\"), \"runScreenshot\")\n });\n\n registerCommand({\n name: \"screencast-start\",\n description: \"Start a browser replay screencast capture\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/screencast-start\"), \"runScreencastStart\")\n });\n\n registerCommand({\n name: \"screencast-stop\",\n description: \"Stop a browser replay screencast capture\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/screencast-stop\"), \"runScreencastStop\")\n });\n\n registerCommand({\n name: \"dialog\",\n description: \"Inspect or handle a JavaScript dialog\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/dialog\"), \"runDialog\")\n });\n\n registerCommand({\n name: \"console-poll\",\n description: \"Poll console events\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/console-poll\"), \"runConsolePoll\")\n });\n\n registerCommand({\n name: \"network-poll\",\n description: \"Poll network events\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/network-poll\"), \"runNetworkPoll\")\n });\n\n registerCommand({\n name: \"debug-trace-snapshot\",\n description: \"Capture page + console + network + exception diagnostics\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/devtools/debug-trace-snapshot\"), \"runDebugTraceSnapshot\")\n });\n\n registerCommand({\n name: \"desktop-status\",\n description: \"Inspect public read-only desktop observation availability\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/status\"), \"runDesktopStatus\")\n });\n\n registerCommand({\n name: \"desktop-windows\",\n description: \"List windows exposed by the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/windows\"), \"runDesktopWindows\")\n });\n\n registerCommand({\n name: \"desktop-active-window\",\n description: \"Inspect the active window through the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/active-window\"), \"runDesktopActiveWindow\")\n });\n\n registerCommand({\n name: \"desktop-capture-desktop\",\n description: \"Capture the current desktop surface through the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/capture-desktop\"), \"runDesktopCaptureDesktop\")\n });\n\n registerCommand({\n name: \"desktop-capture-window\",\n description: \"Capture a specific window through the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/capture-window\"), \"runDesktopCaptureWindow\")\n });\n\n registerCommand({\n name: \"desktop-accessibility-snapshot\",\n description: \"Capture desktop accessibility state through the public read-only desktop observation plane\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/desktop/accessibility-snapshot\"), \"runDesktopAccessibilitySnapshot\")\n });\n\n registerCommand({\n name: \"cookie-import\",\n description: \"Import validated cookies into a session\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/cookie-import\"), \"runCookieImport\")\n });\n\n registerCommand({\n name: \"cookie-list\",\n description: \"List cookies for a session (optionally filtered by URL)\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/session/cookie-list\"), \"runCookieList\")\n });\n\n registerCommand({\n name: \"macro-resolve\",\n description: \"Resolve or execute a macro expression via provider actions\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/macro-resolve\"), \"runMacroResolve\")\n });\n\n registerCommand({\n name: \"research\",\n description: \"Run research workflows\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/research\"), \"runResearchCommand\")\n });\n\n registerCommand({\n name: \"shopping\",\n description: \"Run shopping workflows\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/shopping\"), \"runShoppingCommand\")\n });\n\n registerCommand({\n name: \"product-video\",\n description: \"Run product presentation asset workflows\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/product-video\"), \"runProductVideoCommand\")\n });\n\n registerCommand({\n name: \"inspiredesign\",\n description: \"Run inspiredesign workflows\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/inspiredesign\"), \"runInspiredesignCommand\")\n });\n\n registerCommand({\n name: \"artifacts\",\n description: \"Manage workflow artifact lifecycle\",\n run: (parsedArgs) => runLazyCommand(parsedArgs, () => import(\"./commands/artifacts\"), \"runArtifactsCommand\")\n });\n const command = getCommand(args.command);\n if (!command) {\n throw new Error(`Unknown command: ${args.command}`);\n }\n\n const result = await command.run(args);\n await finishCommand(result);\n return;\n } catch (error) {\n const format = outputFormat ?? detectOutputFormat(process.argv);\n const cliError = toCliError(error, parseSucceeded ? EXIT_EXECUTION : EXIT_USAGE);\n emitFatalError(cliError, format);\n await flushOutputAndExit(cliError.exitCode);\n return;\n }\n}\n\nmain().catch(async (error: unknown) => {\n const cliError = toCliError(error, EXIT_EXECUTION);\n emitFatalError(cliError, detectOutputFormat(process.argv));\n await flushOutputAndExit(cliError.exitCode);\n});\n"],"mappings":"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","names":["result"]}
@@ -8,9 +8,9 @@ import {
8
8
  } from "./chunk-OW5HMYMI.js";
9
9
  import {
10
10
  callDaemon
11
- } from "./chunk-OYNLAZQU.js";
12
- import "./chunk-LBPELU7L.js";
13
- import "./chunk-SXAGSEKZ.js";
11
+ } from "./chunk-MD655IPO.js";
12
+ import "./chunk-COAOWH3G.js";
13
+ import "./chunk-QOMWCRE3.js";
14
14
  import "./chunk-MX3NFLCE.js";
15
15
  import "./chunk-ASMHEEKY.js";
16
16
  import {
@@ -21,7 +21,7 @@ import "./chunk-3ILXPKSJ.js";
21
21
  import "./chunk-TBUCZX4A.js";
22
22
  import "./chunk-Y2KL55OG.js";
23
23
  import "./chunk-5SWZDVOW.js";
24
- import "./chunk-S6S2UP6U.js";
24
+ import "./chunk-4BEJVZRK.js";
25
25
  import "./chunk-S5KZQJJI.js";
26
26
  import "./chunk-KZ2IXVQT.js";
27
27
  import "./chunk-WHQZBUNY.js";
@@ -78,4 +78,4 @@ async function runClick(args) {
78
78
  export {
79
79
  runClick
80
80
  };
81
- //# sourceMappingURL=click-TENZA3Y6.js.map
81
+ //# sourceMappingURL=click-2AILSEIZ.js.map
@@ -1,9 +1,9 @@
1
1
  import "./chunk-RJNI3BHT.js";
2
2
  import {
3
3
  callDaemon
4
- } from "./chunk-OYNLAZQU.js";
5
- import "./chunk-LBPELU7L.js";
6
- import "./chunk-SXAGSEKZ.js";
4
+ } from "./chunk-MD655IPO.js";
5
+ import "./chunk-COAOWH3G.js";
6
+ import "./chunk-QOMWCRE3.js";
7
7
  import "./chunk-MX3NFLCE.js";
8
8
  import "./chunk-ASMHEEKY.js";
9
9
  import {
@@ -14,7 +14,7 @@ import "./chunk-3ILXPKSJ.js";
14
14
  import "./chunk-TBUCZX4A.js";
15
15
  import "./chunk-Y2KL55OG.js";
16
16
  import "./chunk-5SWZDVOW.js";
17
- import "./chunk-S6S2UP6U.js";
17
+ import "./chunk-4BEJVZRK.js";
18
18
  import "./chunk-S5KZQJJI.js";
19
19
  import "./chunk-KZ2IXVQT.js";
20
20
  import "./chunk-WHQZBUNY.js";
@@ -79,4 +79,4 @@ export {
79
79
  __test__,
80
80
  runCloneComponent
81
81
  };
82
- //# sourceMappingURL=clone-component-STH5AR6M.js.map
82
+ //# sourceMappingURL=clone-component-TPJS3PEG.js.map
@@ -1,9 +1,9 @@
1
1
  import "./chunk-RJNI3BHT.js";
2
2
  import {
3
3
  callDaemon
4
- } from "./chunk-OYNLAZQU.js";
5
- import "./chunk-LBPELU7L.js";
6
- import "./chunk-SXAGSEKZ.js";
4
+ } from "./chunk-MD655IPO.js";
5
+ import "./chunk-COAOWH3G.js";
6
+ import "./chunk-QOMWCRE3.js";
7
7
  import "./chunk-MX3NFLCE.js";
8
8
  import "./chunk-ASMHEEKY.js";
9
9
  import {
@@ -14,7 +14,7 @@ import "./chunk-3ILXPKSJ.js";
14
14
  import "./chunk-TBUCZX4A.js";
15
15
  import "./chunk-Y2KL55OG.js";
16
16
  import "./chunk-5SWZDVOW.js";
17
- import "./chunk-S6S2UP6U.js";
17
+ import "./chunk-4BEJVZRK.js";
18
18
  import "./chunk-S5KZQJJI.js";
19
19
  import "./chunk-KZ2IXVQT.js";
20
20
  import "./chunk-WHQZBUNY.js";
@@ -66,4 +66,4 @@ export {
66
66
  __test__,
67
67
  runClonePage
68
68
  };
69
- //# sourceMappingURL=clone-page-BSTWAPAJ.js.map
69
+ //# sourceMappingURL=clone-page-LE74CIFC.js.map
@@ -1,9 +1,9 @@
1
1
  import "./chunk-RJNI3BHT.js";
2
2
  import {
3
3
  callDaemon
4
- } from "./chunk-OYNLAZQU.js";
5
- import "./chunk-LBPELU7L.js";
6
- import "./chunk-SXAGSEKZ.js";
4
+ } from "./chunk-MD655IPO.js";
5
+ import "./chunk-COAOWH3G.js";
6
+ import "./chunk-QOMWCRE3.js";
7
7
  import "./chunk-MX3NFLCE.js";
8
8
  import "./chunk-ASMHEEKY.js";
9
9
  import {
@@ -14,7 +14,7 @@ import "./chunk-3ILXPKSJ.js";
14
14
  import "./chunk-TBUCZX4A.js";
15
15
  import "./chunk-Y2KL55OG.js";
16
16
  import "./chunk-5SWZDVOW.js";
17
- import "./chunk-S6S2UP6U.js";
17
+ import "./chunk-4BEJVZRK.js";
18
18
  import "./chunk-S5KZQJJI.js";
19
19
  import "./chunk-KZ2IXVQT.js";
20
20
  import "./chunk-WHQZBUNY.js";
@@ -60,4 +60,4 @@ async function runTargetClose(args) {
60
60
  export {
61
61
  runTargetClose
62
62
  };
63
- //# sourceMappingURL=close-QCWUNRAI.js.map
63
+ //# sourceMappingURL=close-HN4YI47K.js.map
@@ -1,9 +1,9 @@
1
1
  import "./chunk-RJNI3BHT.js";
2
2
  import {
3
3
  callDaemon
4
- } from "./chunk-OYNLAZQU.js";
5
- import "./chunk-LBPELU7L.js";
6
- import "./chunk-SXAGSEKZ.js";
4
+ } from "./chunk-MD655IPO.js";
5
+ import "./chunk-COAOWH3G.js";
6
+ import "./chunk-QOMWCRE3.js";
7
7
  import "./chunk-MX3NFLCE.js";
8
8
  import "./chunk-ASMHEEKY.js";
9
9
  import {
@@ -14,7 +14,7 @@ import "./chunk-3ILXPKSJ.js";
14
14
  import "./chunk-TBUCZX4A.js";
15
15
  import "./chunk-Y2KL55OG.js";
16
16
  import "./chunk-5SWZDVOW.js";
17
- import "./chunk-S6S2UP6U.js";
17
+ import "./chunk-4BEJVZRK.js";
18
18
  import "./chunk-S5KZQJJI.js";
19
19
  import "./chunk-KZ2IXVQT.js";
20
20
  import "./chunk-WHQZBUNY.js";
@@ -60,4 +60,4 @@ async function runPageClose(args) {
60
60
  export {
61
61
  runPageClose
62
62
  };
63
- //# sourceMappingURL=close-CEMMAAM7.js.map
63
+ //# sourceMappingURL=close-WFERRHX6.js.map
@@ -4,9 +4,9 @@ import {
4
4
  } from "./chunk-RPXWUCQQ.js";
5
5
  import {
6
6
  callDaemon
7
- } from "./chunk-OYNLAZQU.js";
8
- import "./chunk-LBPELU7L.js";
9
- import "./chunk-SXAGSEKZ.js";
7
+ } from "./chunk-MD655IPO.js";
8
+ import "./chunk-COAOWH3G.js";
9
+ import "./chunk-QOMWCRE3.js";
10
10
  import "./chunk-MX3NFLCE.js";
11
11
  import "./chunk-ASMHEEKY.js";
12
12
  import {
@@ -17,7 +17,7 @@ import "./chunk-3ILXPKSJ.js";
17
17
  import "./chunk-TBUCZX4A.js";
18
18
  import "./chunk-Y2KL55OG.js";
19
19
  import "./chunk-5SWZDVOW.js";
20
- import "./chunk-S6S2UP6U.js";
20
+ import "./chunk-4BEJVZRK.js";
21
21
  import "./chunk-S5KZQJJI.js";
22
22
  import "./chunk-KZ2IXVQT.js";
23
23
  import "./chunk-WHQZBUNY.js";
@@ -104,4 +104,4 @@ async function runSessionConnect(args) {
104
104
  export {
105
105
  runSessionConnect
106
106
  };
107
- //# sourceMappingURL=connect-J3RVSEZF.js.map
107
+ //# sourceMappingURL=connect-RWBV2UCQ.js.map
@@ -4,9 +4,9 @@ import {
4
4
  } from "./chunk-RPXWUCQQ.js";
5
5
  import {
6
6
  callDaemon
7
- } from "./chunk-OYNLAZQU.js";
8
- import "./chunk-LBPELU7L.js";
9
- import "./chunk-SXAGSEKZ.js";
7
+ } from "./chunk-MD655IPO.js";
8
+ import "./chunk-COAOWH3G.js";
9
+ import "./chunk-QOMWCRE3.js";
10
10
  import "./chunk-MX3NFLCE.js";
11
11
  import "./chunk-ASMHEEKY.js";
12
12
  import {
@@ -17,7 +17,7 @@ import "./chunk-3ILXPKSJ.js";
17
17
  import "./chunk-TBUCZX4A.js";
18
18
  import "./chunk-Y2KL55OG.js";
19
19
  import "./chunk-5SWZDVOW.js";
20
- import "./chunk-S6S2UP6U.js";
20
+ import "./chunk-4BEJVZRK.js";
21
21
  import "./chunk-S5KZQJJI.js";
22
22
  import "./chunk-KZ2IXVQT.js";
23
23
  import "./chunk-WHQZBUNY.js";
@@ -73,4 +73,4 @@ async function runConsolePoll(args) {
73
73
  export {
74
74
  runConsolePoll
75
75
  };
76
- //# sourceMappingURL=console-poll-HL7BVIVX.js.map
76
+ //# sourceMappingURL=console-poll-PP4YYPDF.js.map
@@ -1,9 +1,9 @@
1
1
  import "./chunk-RJNI3BHT.js";
2
2
  import {
3
3
  callDaemon
4
- } from "./chunk-OYNLAZQU.js";
5
- import "./chunk-LBPELU7L.js";
6
- import "./chunk-SXAGSEKZ.js";
4
+ } from "./chunk-MD655IPO.js";
5
+ import "./chunk-COAOWH3G.js";
6
+ import "./chunk-QOMWCRE3.js";
7
7
  import "./chunk-MX3NFLCE.js";
8
8
  import "./chunk-ASMHEEKY.js";
9
9
  import {
@@ -14,7 +14,7 @@ import "./chunk-3ILXPKSJ.js";
14
14
  import "./chunk-TBUCZX4A.js";
15
15
  import "./chunk-Y2KL55OG.js";
16
16
  import "./chunk-5SWZDVOW.js";
17
- import "./chunk-S6S2UP6U.js";
17
+ import "./chunk-4BEJVZRK.js";
18
18
  import "./chunk-S5KZQJJI.js";
19
19
  import "./chunk-KZ2IXVQT.js";
20
20
  import "./chunk-WHQZBUNY.js";
@@ -174,4 +174,4 @@ export {
174
174
  __test__,
175
175
  runCookieImport
176
176
  };
177
- //# sourceMappingURL=cookie-import-WMUCIIHN.js.map
177
+ //# sourceMappingURL=cookie-import-6IP776FC.js.map
@@ -1,9 +1,9 @@
1
1
  import "./chunk-RJNI3BHT.js";
2
2
  import {
3
3
  callDaemon
4
- } from "./chunk-OYNLAZQU.js";
5
- import "./chunk-LBPELU7L.js";
6
- import "./chunk-SXAGSEKZ.js";
4
+ } from "./chunk-MD655IPO.js";
5
+ import "./chunk-COAOWH3G.js";
6
+ import "./chunk-QOMWCRE3.js";
7
7
  import "./chunk-MX3NFLCE.js";
8
8
  import "./chunk-ASMHEEKY.js";
9
9
  import {
@@ -14,7 +14,7 @@ import "./chunk-3ILXPKSJ.js";
14
14
  import "./chunk-TBUCZX4A.js";
15
15
  import "./chunk-Y2KL55OG.js";
16
16
  import "./chunk-5SWZDVOW.js";
17
- import "./chunk-S6S2UP6U.js";
17
+ import "./chunk-4BEJVZRK.js";
18
18
  import "./chunk-S5KZQJJI.js";
19
19
  import "./chunk-KZ2IXVQT.js";
20
20
  import "./chunk-WHQZBUNY.js";
@@ -114,4 +114,4 @@ export {
114
114
  __test__,
115
115
  runCookieList
116
116
  };
117
- //# sourceMappingURL=cookie-list-PB2N4RPH.js.map
117
+ //# sourceMappingURL=cookie-list-O2KG6DPU.js.map
@@ -11,8 +11,8 @@ import {
11
11
  fetchDaemonStatusFromMetadata,
12
12
  fetchWithTimeout,
13
13
  readDaemonMetadata
14
- } from "./chunk-LBPELU7L.js";
15
- import "./chunk-SXAGSEKZ.js";
14
+ } from "./chunk-COAOWH3G.js";
15
+ import "./chunk-QOMWCRE3.js";
16
16
  import "./chunk-MX3NFLCE.js";
17
17
  import "./chunk-ASMHEEKY.js";
18
18
  import {
@@ -25,7 +25,7 @@ import "./chunk-3ILXPKSJ.js";
25
25
  import "./chunk-TBUCZX4A.js";
26
26
  import "./chunk-Y2KL55OG.js";
27
27
  import "./chunk-5SWZDVOW.js";
28
- import "./chunk-S6S2UP6U.js";
28
+ import "./chunk-4BEJVZRK.js";
29
29
  import "./chunk-S5KZQJJI.js";
30
30
  import "./chunk-KZ2IXVQT.js";
31
31
  import "./chunk-WHQZBUNY.js";
@@ -191,4 +191,4 @@ async function runDaemonCommand(args) {
191
191
  export {
192
192
  runDaemonCommand
193
193
  };
194
- //# sourceMappingURL=daemon-5KSVMGN4.js.map
194
+ //# sourceMappingURL=daemon-2BSAZXLT.js.map
@@ -1,3 +1,3 @@
1
1
  {
2
- "fingerprint": "59ae21a10dd853a08a728a745d61bac53b41a4146dc84e19d87964a1aab30852"
2
+ "fingerprint": "646d63e7f31c37490347342a64d1f9185df6e34f361745c2dc6c77da4f45e76f"
3
3
  }
@@ -4,9 +4,9 @@ import {
4
4
  } from "./chunk-RPXWUCQQ.js";
5
5
  import {
6
6
  callDaemon
7
- } from "./chunk-OYNLAZQU.js";
8
- import "./chunk-LBPELU7L.js";
9
- import "./chunk-SXAGSEKZ.js";
7
+ } from "./chunk-MD655IPO.js";
8
+ import "./chunk-COAOWH3G.js";
9
+ import "./chunk-QOMWCRE3.js";
10
10
  import "./chunk-MX3NFLCE.js";
11
11
  import "./chunk-ASMHEEKY.js";
12
12
  import {
@@ -17,7 +17,7 @@ import "./chunk-3ILXPKSJ.js";
17
17
  import "./chunk-TBUCZX4A.js";
18
18
  import "./chunk-Y2KL55OG.js";
19
19
  import "./chunk-5SWZDVOW.js";
20
- import "./chunk-S6S2UP6U.js";
20
+ import "./chunk-4BEJVZRK.js";
21
21
  import "./chunk-S5KZQJJI.js";
22
22
  import "./chunk-KZ2IXVQT.js";
23
23
  import "./chunk-WHQZBUNY.js";
@@ -133,4 +133,4 @@ export {
133
133
  __test__,
134
134
  runDebugTraceSnapshot
135
135
  };
136
- //# sourceMappingURL=debug-trace-snapshot-RK7KDXA5.js.map
136
+ //# sourceMappingURL=debug-trace-snapshot-F3BDVZXS.js.map
@@ -8,9 +8,9 @@ import {
8
8
  } from "./chunk-OW5HMYMI.js";
9
9
  import {
10
10
  callDaemon
11
- } from "./chunk-OYNLAZQU.js";
12
- import "./chunk-LBPELU7L.js";
13
- import "./chunk-SXAGSEKZ.js";
11
+ } from "./chunk-MD655IPO.js";
12
+ import "./chunk-COAOWH3G.js";
13
+ import "./chunk-QOMWCRE3.js";
14
14
  import "./chunk-MX3NFLCE.js";
15
15
  import "./chunk-ASMHEEKY.js";
16
16
  import {
@@ -21,7 +21,7 @@ import "./chunk-3ILXPKSJ.js";
21
21
  import "./chunk-TBUCZX4A.js";
22
22
  import "./chunk-Y2KL55OG.js";
23
23
  import "./chunk-5SWZDVOW.js";
24
- import "./chunk-S6S2UP6U.js";
24
+ import "./chunk-4BEJVZRK.js";
25
25
  import "./chunk-S5KZQJJI.js";
26
26
  import "./chunk-KZ2IXVQT.js";
27
27
  import "./chunk-WHQZBUNY.js";
@@ -72,4 +72,4 @@ export {
72
72
  __test__,
73
73
  runDialog
74
74
  };
75
- //# sourceMappingURL=dialog-P6P4U7XE.js.map
75
+ //# sourceMappingURL=dialog-6JQYUWMQ.js.map