opendevbrowser 0.0.28 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +2 -2
  2. package/dist/accessibility-snapshot-PA6NWNS7.js +39 -0
  3. package/dist/accessibility-snapshot-PA6NWNS7.js.map +1 -0
  4. package/dist/active-window-YNYTIPZN.js +37 -0
  5. package/dist/active-window-YNYTIPZN.js.map +1 -0
  6. package/dist/annotate-STYHXZYJ.js +205 -0
  7. package/dist/annotate-STYHXZYJ.js.map +1 -0
  8. package/dist/artifacts-KJ6RNDO2.js +120 -0
  9. package/dist/artifacts-KJ6RNDO2.js.map +1 -0
  10. package/dist/attr-GHFZZ4SA.js +84 -0
  11. package/dist/attr-GHFZZ4SA.js.map +1 -0
  12. package/dist/browser/ops-client.d.ts +1 -0
  13. package/dist/browser/ops-client.d.ts.map +1 -1
  14. package/dist/canvas-54FBOEGP.js +309 -0
  15. package/dist/canvas-54FBOEGP.js.map +1 -0
  16. package/dist/capture-desktop-SNABC24E.js +38 -0
  17. package/dist/capture-desktop-SNABC24E.js.map +1 -0
  18. package/dist/capture-window-UJSB5AMP.js +40 -0
  19. package/dist/capture-window-UJSB5AMP.js.map +1 -0
  20. package/dist/check-ST5UQ2F5.js +71 -0
  21. package/dist/check-ST5UQ2F5.js.map +1 -0
  22. package/dist/checked-IEMWI5CU.js +71 -0
  23. package/dist/checked-IEMWI5CU.js.map +1 -0
  24. package/dist/chunk-2CG4SW3E.js +64 -0
  25. package/dist/chunk-2CG4SW3E.js.map +1 -0
  26. package/dist/chunk-2SIMIPLY.js +67 -0
  27. package/dist/chunk-2SIMIPLY.js.map +1 -0
  28. package/dist/chunk-37VSRUW4.js +141 -0
  29. package/dist/chunk-37VSRUW4.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-ASMHEEKY.js +10 -0
  39. package/dist/chunk-ASMHEEKY.js.map +1 -0
  40. package/dist/chunk-DBF5OKH3.js +111 -0
  41. package/dist/chunk-DBF5OKH3.js.map +1 -0
  42. package/dist/chunk-DW4TX7MU.js +54 -0
  43. package/dist/chunk-DW4TX7MU.js.map +1 -0
  44. package/dist/chunk-IPE7TF2P.js +54 -0
  45. package/dist/chunk-IPE7TF2P.js.map +1 -0
  46. package/dist/chunk-IQTJHXZJ.js +126 -0
  47. package/dist/chunk-IQTJHXZJ.js.map +1 -0
  48. package/dist/chunk-J47N77VG.js +2969 -0
  49. package/dist/chunk-J47N77VG.js.map +1 -0
  50. package/dist/chunk-JZXD6FWR.js +25 -0
  51. package/dist/chunk-JZXD6FWR.js.map +1 -0
  52. package/dist/{chunk-QVWOPIZJ.js → chunk-KDSNXS6N.js} +75 -149
  53. package/dist/chunk-KDSNXS6N.js.map +1 -0
  54. package/dist/chunk-KZ2IXVQT.js +219 -0
  55. package/dist/chunk-KZ2IXVQT.js.map +1 -0
  56. package/dist/chunk-LBPELU7L.js +3649 -0
  57. package/dist/chunk-LBPELU7L.js.map +1 -0
  58. package/dist/chunk-MX3NFLCE.js +940 -0
  59. package/dist/chunk-MX3NFLCE.js.map +1 -0
  60. package/dist/chunk-N44UXKIB.js +26 -0
  61. package/dist/chunk-N44UXKIB.js.map +1 -0
  62. package/dist/chunk-OW5HMYMI.js +19 -0
  63. package/dist/chunk-OW5HMYMI.js.map +1 -0
  64. package/dist/chunk-OYNLAZQU.js +838 -0
  65. package/dist/chunk-OYNLAZQU.js.map +1 -0
  66. package/dist/chunk-PDPJN2OP.js +17 -0
  67. package/dist/chunk-PDPJN2OP.js.map +1 -0
  68. package/dist/chunk-RCZZGGJS.js +226 -0
  69. package/dist/chunk-RCZZGGJS.js.map +1 -0
  70. package/dist/chunk-RJNI3BHT.js +1 -0
  71. package/dist/chunk-RPXWUCQQ.js +112 -0
  72. package/dist/chunk-RPXWUCQQ.js.map +1 -0
  73. package/dist/chunk-S5KZQJJI.js +107 -0
  74. package/dist/chunk-S5KZQJJI.js.map +1 -0
  75. package/dist/{chunk-T3VVHJTK.js → chunk-S6S2UP6U.js} +1074 -1459
  76. package/dist/chunk-S6S2UP6U.js.map +1 -0
  77. package/dist/{chunk-I5ZCOZZV.js → chunk-SXAGSEKZ.js} +1202 -9561
  78. package/dist/chunk-SXAGSEKZ.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-TENZA3Y6.js +81 -0
  102. package/dist/click-TENZA3Y6.js.map +1 -0
  103. package/dist/clone-component-STH5AR6M.js +82 -0
  104. package/dist/clone-component-STH5AR6M.js.map +1 -0
  105. package/dist/clone-page-BSTWAPAJ.js +69 -0
  106. package/dist/clone-page-BSTWAPAJ.js.map +1 -0
  107. package/dist/close-CEMMAAM7.js +63 -0
  108. package/dist/close-CEMMAAM7.js.map +1 -0
  109. package/dist/close-QCWUNRAI.js +63 -0
  110. package/dist/close-QCWUNRAI.js.map +1 -0
  111. package/dist/connect-J3RVSEZF.js +107 -0
  112. package/dist/connect-J3RVSEZF.js.map +1 -0
  113. package/dist/console-poll-HL7BVIVX.js +76 -0
  114. package/dist/console-poll-HL7BVIVX.js.map +1 -0
  115. package/dist/cookie-import-WMUCIIHN.js +177 -0
  116. package/dist/cookie-import-WMUCIIHN.js.map +1 -0
  117. package/dist/cookie-list-PB2N4RPH.js +117 -0
  118. package/dist/cookie-list-PB2N4RPH.js.map +1 -0
  119. package/dist/daemon-5KSVMGN4.js +194 -0
  120. package/dist/daemon-5KSVMGN4.js.map +1 -0
  121. package/dist/daemon-fingerprint.json +1 -1
  122. package/dist/debug-trace-snapshot-RK7KDXA5.js +136 -0
  123. package/dist/debug-trace-snapshot-RK7KDXA5.js.map +1 -0
  124. package/dist/dialog-P6P4U7XE.js +75 -0
  125. package/dist/dialog-P6P4U7XE.js.map +1 -0
  126. package/dist/disconnect-32F7IDIP.js +58 -0
  127. package/dist/disconnect-32F7IDIP.js.map +1 -0
  128. package/dist/enabled-A6C6ZM2O.js +71 -0
  129. package/dist/enabled-A6C6ZM2O.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-ULTSABDM.js +98 -0
  135. package/dist/goto-ULTSABDM.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-UF2ZUMTQ.js +71 -0
  139. package/dist/hover-UF2ZUMTQ.js.map +1 -0
  140. package/dist/html-B6TX7GK7.js +84 -0
  141. package/dist/html-B6TX7GK7.js.map +1 -0
  142. package/dist/index.js +68 -34
  143. package/dist/index.js.map +1 -1
  144. package/dist/inspector-6S5FKUZQ.js +62 -0
  145. package/dist/inspector-6S5FKUZQ.js.map +1 -0
  146. package/dist/inspector-audit-ARGEGOS7.js +84 -0
  147. package/dist/inspector-audit-ARGEGOS7.js.map +1 -0
  148. package/dist/inspector-plan-CSG5HZOC.js +69 -0
  149. package/dist/inspector-plan-CSG5HZOC.js.map +1 -0
  150. package/dist/inspiredesign-7VRMMZN4.js +234 -0
  151. package/dist/inspiredesign-7VRMMZN4.js.map +1 -0
  152. package/dist/install-autostart-output-5DOMKCQL.js +41 -0
  153. package/dist/install-autostart-output-5DOMKCQL.js.map +1 -0
  154. package/dist/install-autostart-reconciliation-NHKOFYTD.js +73 -0
  155. package/dist/install-autostart-reconciliation-NHKOFYTD.js.map +1 -0
  156. package/dist/launch-REYCIR3Z.js +225 -0
  157. package/dist/launch-REYCIR3Z.js.map +1 -0
  158. package/dist/list-NPRXRQY2.js +51 -0
  159. package/dist/list-NPRXRQY2.js.map +1 -0
  160. package/dist/list-STYD2ZWA.js +54 -0
  161. package/dist/list-STYD2ZWA.js.map +1 -0
  162. package/dist/local-HXJLUUNT.js +54 -0
  163. package/dist/local-HXJLUUNT.js.map +1 -0
  164. package/dist/macro-resolve-ZIJZ65QI.js +253 -0
  165. package/dist/macro-resolve-ZIJZ65QI.js.map +1 -0
  166. package/dist/macros/execute-runtime.d.ts +3 -1
  167. package/dist/macros/execute-runtime.d.ts.map +1 -1
  168. package/dist/macros/execute.d.ts +2 -0
  169. package/dist/macros/execute.d.ts.map +1 -1
  170. package/dist/native-UPLVQ2SG.js +22 -0
  171. package/dist/native-UPLVQ2SG.js.map +1 -0
  172. package/dist/network-poll-HLDOSC72.js +76 -0
  173. package/dist/network-poll-HLDOSC72.js.map +1 -0
  174. package/dist/new-HXLLN6UT.js +69 -0
  175. package/dist/new-HXLLN6UT.js.map +1 -0
  176. package/dist/onboarding-metadata-7E3KLYSZ.js +27 -0
  177. package/dist/onboarding-metadata-7E3KLYSZ.js.map +1 -0
  178. package/dist/open-KDR25LQZ.js +81 -0
  179. package/dist/open-KDR25LQZ.js.map +1 -0
  180. package/dist/opendevbrowser.js +68 -34
  181. package/dist/opendevbrowser.js.map +1 -1
  182. package/dist/perf-EM6SWFJ6.js +58 -0
  183. package/dist/perf-EM6SWFJ6.js.map +1 -0
  184. package/dist/pointer-down-ZYWRZNCH.js +55 -0
  185. package/dist/pointer-down-ZYWRZNCH.js.map +1 -0
  186. package/dist/pointer-drag-LVEAVJO4.js +54 -0
  187. package/dist/pointer-drag-LVEAVJO4.js.map +1 -0
  188. package/dist/pointer-move-7SRKUS66.js +52 -0
  189. package/dist/pointer-move-7SRKUS66.js.map +1 -0
  190. package/dist/pointer-up-KLDBSK37.js +55 -0
  191. package/dist/pointer-up-KLDBSK37.js.map +1 -0
  192. package/dist/press-UIIXFTD7.js +83 -0
  193. package/dist/press-UIIXFTD7.js.map +1 -0
  194. package/dist/product-video-PYOXJVAI.js +235 -0
  195. package/dist/product-video-PYOXJVAI.js.map +1 -0
  196. package/dist/providers/artifacts.d.ts +0 -2
  197. package/dist/providers/artifacts.d.ts.map +1 -1
  198. package/dist/providers/blocker.d.ts.map +1 -1
  199. package/dist/providers/bounded-map.d.ts +2 -0
  200. package/dist/providers/bounded-map.d.ts.map +1 -0
  201. package/dist/providers/community/index.d.ts.map +1 -1
  202. package/dist/providers/constraint.d.ts.map +1 -1
  203. package/dist/providers/index.d.ts +1 -0
  204. package/dist/providers/index.d.ts.map +1 -1
  205. package/dist/providers/renderer.d.ts.map +1 -1
  206. package/dist/providers/research-compiler.d.ts +1 -1
  207. package/dist/providers/research-compiler.d.ts.map +1 -1
  208. package/dist/providers/research-executor.d.ts.map +1 -1
  209. package/dist/providers/runtime-factory.d.ts.map +1 -1
  210. package/dist/providers/shared/traversal-url.d.ts +3 -0
  211. package/dist/providers/shared/traversal-url.d.ts.map +1 -1
  212. package/dist/providers/shopping/index.d.ts.map +1 -1
  213. package/dist/providers/social/search-quality.d.ts.map +1 -1
  214. package/dist/providers/workflow-handoff.d.ts +4 -0
  215. package/dist/providers/workflow-handoff.d.ts.map +1 -1
  216. package/dist/providers/workflows.d.ts.map +1 -1
  217. package/dist/{providers-QF2RFB4J.js → providers-4YY2BLXG.js} +19 -14
  218. package/dist/providers-4YY2BLXG.js.map +1 -0
  219. package/dist/public-surface/generated-manifest.d.ts +2 -2
  220. package/dist/public-surface/generated-manifest.d.ts.map +1 -1
  221. package/dist/public-surface/source.d.ts +2 -2
  222. package/dist/public-surface/source.d.ts.map +1 -1
  223. package/dist/relay/protocol.d.ts +3 -1
  224. package/dist/relay/protocol.d.ts.map +1 -1
  225. package/dist/relay/relay-server.d.ts +6 -0
  226. package/dist/relay/relay-server.d.ts.map +1 -1
  227. package/dist/research-CKXMJ2DK.js +295 -0
  228. package/dist/research-CKXMJ2DK.js.map +1 -0
  229. package/dist/review-7HWJPZOD.js +48 -0
  230. package/dist/review-7HWJPZOD.js.map +1 -0
  231. package/dist/review-desktop-2IBJHFB5.js +54 -0
  232. package/dist/review-desktop-2IBJHFB5.js.map +1 -0
  233. package/dist/rpc-3HGIEJUO.js +159 -0
  234. package/dist/rpc-3HGIEJUO.js.map +1 -0
  235. package/dist/run-ADRYI3MS.js +180 -0
  236. package/dist/run-ADRYI3MS.js.map +1 -0
  237. package/dist/screencast-start-DTLUHD5H.js +67 -0
  238. package/dist/screencast-start-DTLUHD5H.js.map +1 -0
  239. package/dist/screencast-stop-54C5LRSS.js +59 -0
  240. package/dist/screencast-stop-54C5LRSS.js.map +1 -0
  241. package/dist/screenshot-HOAKR7P7.js +68 -0
  242. package/dist/screenshot-HOAKR7P7.js.map +1 -0
  243. package/dist/scroll-IAOO5COY.js +84 -0
  244. package/dist/scroll-IAOO5COY.js.map +1 -0
  245. package/dist/scroll-into-view-RKWSLAPH.js +71 -0
  246. package/dist/scroll-into-view-RKWSLAPH.js.map +1 -0
  247. package/dist/select-IGD3T6X4.js +86 -0
  248. package/dist/select-IGD3T6X4.js.map +1 -0
  249. package/dist/serve-7X4INUCU.js +498 -0
  250. package/dist/serve-7X4INUCU.js.map +1 -0
  251. package/dist/shopping-FC6DRW76.js +273 -0
  252. package/dist/shopping-FC6DRW76.js.map +1 -0
  253. package/dist/skill-lifecycle-5UAZGKSN.js +89 -0
  254. package/dist/skill-lifecycle-5UAZGKSN.js.map +1 -0
  255. package/dist/skills-NSXDX6YM.js +26 -0
  256. package/dist/skills-NSXDX6YM.js.map +1 -0
  257. package/dist/snapshot-X22GG324.js +113 -0
  258. package/dist/snapshot-X22GG324.js.map +1 -0
  259. package/dist/status-SP55LMNW.js +132 -0
  260. package/dist/status-SP55LMNW.js.map +1 -0
  261. package/dist/status-VH2WXIDG.js +35 -0
  262. package/dist/status-VH2WXIDG.js.map +1 -0
  263. package/dist/status-capabilities-YBERLRRA.js +57 -0
  264. package/dist/status-capabilities-YBERLRRA.js.map +1 -0
  265. package/dist/text-6TB5WNLI.js +84 -0
  266. package/dist/text-6TB5WNLI.js.map +1 -0
  267. package/dist/tools/macro_resolve.d.ts.map +1 -1
  268. package/dist/type-3UI3TQH3.js +94 -0
  269. package/dist/type-3UI3TQH3.js.map +1 -0
  270. package/dist/uncheck-5L3D2D4U.js +71 -0
  271. package/dist/uncheck-5L3D2D4U.js.map +1 -0
  272. package/dist/uninstall-KYKGJAX7.js +91 -0
  273. package/dist/uninstall-KYKGJAX7.js.map +1 -0
  274. package/dist/update-SMXPYGXS.js +305 -0
  275. package/dist/update-SMXPYGXS.js.map +1 -0
  276. package/dist/update-skill-modes-BVX7IVMW.js +38 -0
  277. package/dist/update-skill-modes-BVX7IVMW.js.map +1 -0
  278. package/dist/upload-YG4J2EMI.js +56 -0
  279. package/dist/upload-YG4J2EMI.js.map +1 -0
  280. package/dist/use-V3LGFP3K.js +63 -0
  281. package/dist/use-V3LGFP3K.js.map +1 -0
  282. package/dist/value-3247D57X.js +71 -0
  283. package/dist/value-3247D57X.js.map +1 -0
  284. package/dist/visible-A7HEV36U.js +71 -0
  285. package/dist/visible-A7HEV36U.js.map +1 -0
  286. package/dist/wait-UZPP4Y4R.js +109 -0
  287. package/dist/wait-UZPP4Y4R.js.map +1 -0
  288. package/dist/windows-76TR3AIP.js +37 -0
  289. package/dist/windows-76TR3AIP.js.map +1 -0
  290. package/extension/dist/background.js +99 -22
  291. package/extension/dist/ops/ops-runtime.js +85 -7
  292. package/extension/dist/ops/ops-session-store.js +3 -0
  293. package/extension/dist/ops/target-session-coordinator.js +3 -0
  294. package/extension/dist/services/CDPRouter.js +9 -0
  295. package/extension/manifest.json +1 -1
  296. package/package.json +1 -1
  297. package/skills/opendevbrowser-best-practices/SKILL.md +8 -6
  298. package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +1 -1
  299. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +3 -2
  300. package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +39 -2
  301. package/skills/opendevbrowser-research/SKILL.md +64 -12
  302. package/skills/opendevbrowser-research/artifacts/research-workflows.md +56 -19
  303. package/skills/opendevbrowser-research/assets/templates/compact.md +31 -5
  304. package/skills/opendevbrowser-research/assets/templates/context.json +52 -1
  305. package/skills/opendevbrowser-research/assets/templates/report.md +57 -4
  306. package/skills/opendevbrowser-research/examples/sample-input.json +1 -1
  307. package/skills/opendevbrowser-research/examples/sample-output.md +27 -2
  308. package/skills/opendevbrowser-research/scripts/run-research.sh +2 -6
  309. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +115 -1
  310. package/dist/chunk-I5ZCOZZV.js.map +0 -1
  311. package/dist/chunk-QVWOPIZJ.js.map +0 -1
  312. package/dist/chunk-T3VVHJTK.js.map +0 -1
  313. /package/dist/{providers-QF2RFB4J.js.map → chunk-RJNI3BHT.js.map} +0 -0
@@ -0,0 +1,225 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ parseBooleanFlag,
4
+ parseNumberFlag
5
+ } from "./chunk-RPXWUCQQ.js";
6
+ import {
7
+ callDaemon
8
+ } from "./chunk-OYNLAZQU.js";
9
+ import "./chunk-LBPELU7L.js";
10
+ import "./chunk-SXAGSEKZ.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-S6S2UP6U.js";
22
+ import "./chunk-S5KZQJJI.js";
23
+ import "./chunk-KZ2IXVQT.js";
24
+ import "./chunk-WHQZBUNY.js";
25
+ import "./chunk-FUSXMW3G.js";
26
+
27
+ // src/cli/commands/session/launch.ts
28
+ var MIN_LAUNCH_CALL_TIMEOUT_MS = 3e4;
29
+ var MANAGED_HEADED_LAUNCH_CALL_TIMEOUT_MS = 6e4;
30
+ var LAUNCH_CALL_TIMEOUT_BUFFER_MS = 5e3;
31
+ function parseLaunchArgs(rawArgs) {
32
+ const parsed = { flags: [] };
33
+ for (let i = 0; i < rawArgs.length; i += 1) {
34
+ const arg = rawArgs[i];
35
+ if (arg === "--headless") {
36
+ parsed.headless = true;
37
+ continue;
38
+ }
39
+ if (arg === "--profile") {
40
+ const value = rawArgs[i + 1];
41
+ if (!value) throw createUsageError("Missing value for --profile");
42
+ parsed.profile = value;
43
+ i += 1;
44
+ continue;
45
+ }
46
+ if (arg?.startsWith("--profile=")) {
47
+ parsed.profile = arg.split("=", 2)[1];
48
+ continue;
49
+ }
50
+ if (arg === "--start-url") {
51
+ const value = rawArgs[i + 1];
52
+ if (!value) throw createUsageError("Missing value for --start-url");
53
+ parsed.startUrl = value;
54
+ i += 1;
55
+ continue;
56
+ }
57
+ if (arg?.startsWith("--start-url=")) {
58
+ parsed.startUrl = arg.split("=", 2)[1];
59
+ continue;
60
+ }
61
+ if (arg === "--chrome-path") {
62
+ const value = rawArgs[i + 1];
63
+ if (!value) throw createUsageError("Missing value for --chrome-path");
64
+ parsed.chromePath = value;
65
+ i += 1;
66
+ continue;
67
+ }
68
+ if (arg?.startsWith("--chrome-path=")) {
69
+ parsed.chromePath = arg.split("=", 2)[1];
70
+ continue;
71
+ }
72
+ if (arg === "--persist-profile") {
73
+ const value = rawArgs[i + 1];
74
+ if (value && !value.startsWith("--")) {
75
+ parsed.persistProfile = parseBooleanFlag(value, "--persist-profile");
76
+ i += 1;
77
+ } else {
78
+ parsed.persistProfile = true;
79
+ }
80
+ continue;
81
+ }
82
+ if (arg?.startsWith("--persist-profile=")) {
83
+ const value = arg.split("=", 2)[1];
84
+ if (!value) throw createUsageError("Missing value for --persist-profile");
85
+ parsed.persistProfile = parseBooleanFlag(value, "--persist-profile");
86
+ continue;
87
+ }
88
+ if (arg === "--no-extension") {
89
+ parsed.noExtension = true;
90
+ continue;
91
+ }
92
+ if (arg === "--extension-only") {
93
+ parsed.extensionOnly = true;
94
+ continue;
95
+ }
96
+ if (arg === "--extension-legacy") {
97
+ parsed.extensionLegacy = true;
98
+ continue;
99
+ }
100
+ if (arg === "--wait-for-extension") {
101
+ parsed.waitForExtension = true;
102
+ continue;
103
+ }
104
+ if (arg === "--wait-timeout-ms") {
105
+ const value = rawArgs[i + 1];
106
+ if (!value) throw createUsageError("Missing value for --wait-timeout-ms");
107
+ parsed.waitTimeoutMs = parseNumberFlag(value, "--wait-timeout-ms", { min: 1 });
108
+ i += 1;
109
+ continue;
110
+ }
111
+ if (arg?.startsWith("--wait-timeout-ms=")) {
112
+ const value = arg.split("=", 2)[1];
113
+ if (!value) throw createUsageError("Missing value for --wait-timeout-ms");
114
+ parsed.waitTimeoutMs = parseNumberFlag(value, "--wait-timeout-ms", { min: 1 });
115
+ continue;
116
+ }
117
+ if (arg === "--flag") {
118
+ const value = rawArgs[i + 1];
119
+ if (!value) throw createUsageError("Missing value for --flag");
120
+ parsed.flags.push(value);
121
+ i += 1;
122
+ continue;
123
+ }
124
+ if (arg?.startsWith("--flag=")) {
125
+ const value = arg.split("=", 2)[1];
126
+ if (!value) throw createUsageError("Missing value for --flag");
127
+ parsed.flags.push(value);
128
+ continue;
129
+ }
130
+ }
131
+ return parsed;
132
+ }
133
+ function deriveLaunchCallTimeoutMs(launchArgs) {
134
+ const waitHintMs = typeof launchArgs.waitTimeoutMs === "number" ? launchArgs.waitTimeoutMs + LAUNCH_CALL_TIMEOUT_BUFFER_MS : 0;
135
+ const managedHeadedHintMs = launchArgs.noExtension && launchArgs.headless !== true ? MANAGED_HEADED_LAUNCH_CALL_TIMEOUT_MS : 0;
136
+ return Math.max(MIN_LAUNCH_CALL_TIMEOUT_MS, waitHintMs, managedHeadedHintMs);
137
+ }
138
+ var __test__ = { parseLaunchArgs, deriveLaunchCallTimeoutMs };
139
+ async function runSessionLaunch(args) {
140
+ const launchArgs = parseLaunchArgs(args.rawArgs);
141
+ const launchCallTimeoutMs = deriveLaunchCallTimeoutMs(launchArgs);
142
+ try {
143
+ const result = await callDaemon("session.launch", launchArgs, { timeoutMs: launchCallTimeoutMs });
144
+ return {
145
+ success: true,
146
+ message: `Session launched: ${result.sessionId}`,
147
+ data: result
148
+ };
149
+ } catch (error) {
150
+ if (args.noInteractive) {
151
+ throw error;
152
+ }
153
+ const message = error instanceof Error ? error.message : "";
154
+ const lower = message.toLowerCase();
155
+ const isExtensionFailure = message.includes("Extension not connected") || message.includes("Extension relay connection failed") || lower.includes("unauthorized");
156
+ if (!isExtensionFailure) {
157
+ throw error;
158
+ }
159
+ const retry = await promptYesNo(
160
+ lower.includes("unauthorized") ? "Relay token mismatch detected. Open the extension popup and click Connect to refresh pairing, then retry now?" : "Extension not connected. Open the extension popup and click Connect, then retry now?",
161
+ false
162
+ );
163
+ if (retry) {
164
+ try {
165
+ const retryArgs = { ...launchArgs, waitForExtension: true };
166
+ const result = await callDaemon("session.launch", retryArgs, { timeoutMs: deriveLaunchCallTimeoutMs(retryArgs) });
167
+ return {
168
+ success: true,
169
+ message: `Session launched: ${result.sessionId}`,
170
+ data: result
171
+ };
172
+ } catch (retryError) {
173
+ error = retryError;
174
+ }
175
+ }
176
+ const proceedManaged = await promptYesNo("Proceed with a managed session (headed)?", false);
177
+ if (proceedManaged) {
178
+ const useHeadless = await promptYesNo("Run headless instead?", false);
179
+ const managedArgs = {
180
+ ...launchArgs,
181
+ noExtension: true,
182
+ headless: useHeadless ? true : false
183
+ };
184
+ const result = await callDaemon("session.launch", managedArgs, { timeoutMs: deriveLaunchCallTimeoutMs(managedArgs) });
185
+ return {
186
+ success: true,
187
+ message: `Session launched: ${result.sessionId}`,
188
+ data: result
189
+ };
190
+ }
191
+ const proceedCdp = await promptYesNo("Proceed with CDPConnect (requires Chrome --remote-debugging-port=9222)?", false);
192
+ if (proceedCdp) {
193
+ const result = await callDaemon("session.connect", {});
194
+ return {
195
+ success: true,
196
+ message: `Session connected: ${result.sessionId}`,
197
+ data: result
198
+ };
199
+ }
200
+ throw error;
201
+ }
202
+ }
203
+ function promptYesNo(question, defaultYes) {
204
+ if (!process.stdin.isTTY) {
205
+ return Promise.resolve(false);
206
+ }
207
+ const suffix = defaultYes ? " [Y/n] " : " [y/N] ";
208
+ return new Promise((resolve) => {
209
+ process.stdout.write(`${question}${suffix}`);
210
+ process.stdin.setEncoding("utf8");
211
+ process.stdin.once("data", (data) => {
212
+ const input = data.toString().trim().toLowerCase();
213
+ if (!input) {
214
+ resolve(defaultYes);
215
+ return;
216
+ }
217
+ resolve(input === "y" || input === "yes");
218
+ });
219
+ });
220
+ }
221
+ export {
222
+ __test__,
223
+ runSessionLaunch
224
+ };
225
+ //# sourceMappingURL=launch-REYCIR3Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/session/launch.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\nimport { parseBooleanFlag, parseNumberFlag } from \"../../utils/parse\";\n\ntype LaunchArgs = {\n profile?: string;\n headless?: boolean;\n startUrl?: string;\n chromePath?: string;\n flags: string[];\n persistProfile?: boolean;\n noExtension?: boolean;\n extensionOnly?: boolean;\n waitForExtension?: boolean;\n waitTimeoutMs?: number;\n extensionLegacy?: boolean;\n};\n\nconst MIN_LAUNCH_CALL_TIMEOUT_MS = 30_000;\nconst MANAGED_HEADED_LAUNCH_CALL_TIMEOUT_MS = 60_000;\nconst LAUNCH_CALL_TIMEOUT_BUFFER_MS = 5_000;\n\nfunction parseLaunchArgs(rawArgs: string[]): LaunchArgs {\n const parsed: LaunchArgs = { flags: [] };\n for (let i = 0; i < rawArgs.length; i += 1) {\n const arg = rawArgs[i];\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 === \"--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 parsed.startUrl = arg.split(\"=\", 2)[1];\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 === \"--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 === \"--no-extension\") {\n parsed.noExtension = true;\n continue;\n }\n if (arg === \"--extension-only\") {\n parsed.extensionOnly = true;\n continue;\n }\n if (arg === \"--extension-legacy\") {\n parsed.extensionLegacy = true;\n continue;\n }\n if (arg === \"--wait-for-extension\") {\n parsed.waitForExtension = true;\n continue;\n }\n if (arg === \"--wait-timeout-ms\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --wait-timeout-ms\");\n parsed.waitTimeoutMs = parseNumberFlag(value, \"--wait-timeout-ms\", { min: 1 });\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--wait-timeout-ms=\")) {\n const value = arg.split(\"=\", 2)[1];\n if (!value) throw createUsageError(\"Missing value for --wait-timeout-ms\");\n parsed.waitTimeoutMs = parseNumberFlag(value, \"--wait-timeout-ms\", { min: 1 });\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 deriveLaunchCallTimeoutMs(launchArgs: LaunchArgs): number {\n const waitHintMs = typeof launchArgs.waitTimeoutMs === \"number\"\n ? launchArgs.waitTimeoutMs + LAUNCH_CALL_TIMEOUT_BUFFER_MS\n : 0;\n const managedHeadedHintMs = launchArgs.noExtension && launchArgs.headless !== true\n ? MANAGED_HEADED_LAUNCH_CALL_TIMEOUT_MS\n : 0;\n return Math.max(MIN_LAUNCH_CALL_TIMEOUT_MS, waitHintMs, managedHeadedHintMs);\n}\n\nexport const __test__ = { parseLaunchArgs, deriveLaunchCallTimeoutMs };\n\nexport async function runSessionLaunch(args: ParsedArgs) {\n const launchArgs = parseLaunchArgs(args.rawArgs);\n const launchCallTimeoutMs = deriveLaunchCallTimeoutMs(launchArgs);\n try {\n const result = await callDaemon(\"session.launch\", launchArgs, { timeoutMs: launchCallTimeoutMs }) as { sessionId: string };\n return {\n success: true,\n message: `Session launched: ${result.sessionId}`,\n data: result\n };\n } catch (error) {\n if (args.noInteractive) {\n throw error;\n }\n const message = error instanceof Error ? error.message : \"\";\n const lower = message.toLowerCase();\n const isExtensionFailure = message.includes(\"Extension not connected\")\n || message.includes(\"Extension relay connection failed\")\n || lower.includes(\"unauthorized\");\n if (!isExtensionFailure) {\n throw error;\n }\n\n const retry = await promptYesNo(\n lower.includes(\"unauthorized\")\n ? \"Relay token mismatch detected. Open the extension popup and click Connect to refresh pairing, then retry now?\"\n : \"Extension not connected. Open the extension popup and click Connect, then retry now?\",\n false\n );\n if (retry) {\n try {\n const retryArgs = { ...launchArgs, waitForExtension: true };\n const result = await callDaemon(\"session.launch\", retryArgs, { timeoutMs: deriveLaunchCallTimeoutMs(retryArgs) }) as { sessionId: string };\n return {\n success: true,\n message: `Session launched: ${result.sessionId}`,\n data: result\n };\n } catch (retryError) {\n error = retryError;\n }\n }\n\n const proceedManaged = await promptYesNo(\"Proceed with a managed session (headed)?\", false);\n if (proceedManaged) {\n const useHeadless = await promptYesNo(\"Run headless instead?\", false);\n const managedArgs = {\n ...launchArgs,\n noExtension: true,\n headless: useHeadless ? true : false\n };\n const result = await callDaemon(\"session.launch\", managedArgs, { timeoutMs: deriveLaunchCallTimeoutMs(managedArgs) }) as { sessionId: string };\n return {\n success: true,\n message: `Session launched: ${result.sessionId}`,\n data: result\n };\n }\n\n const proceedCdp = await promptYesNo(\"Proceed with CDPConnect (requires Chrome --remote-debugging-port=9222)?\", false);\n if (proceedCdp) {\n const result = await callDaemon(\"session.connect\", {}) as { sessionId: string };\n return {\n success: true,\n message: `Session connected: ${result.sessionId}`,\n data: result\n };\n }\n\n throw error;\n }\n}\n\nfunction promptYesNo(question: string, defaultYes: boolean): Promise<boolean> {\n if (!process.stdin.isTTY) {\n return Promise.resolve(false);\n }\n\n const suffix = defaultYes ? \" [Y/n] \" : \" [y/N] \";\n return new Promise((resolve) => {\n process.stdout.write(`${question}${suffix}`);\n process.stdin.setEncoding(\"utf8\");\n process.stdin.once(\"data\", (data) => {\n const input = data.toString().trim().toLowerCase();\n if (!input) {\n resolve(defaultYes);\n return;\n }\n resolve(input === \"y\" || input === \"yes\");\n });\n });\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,51 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ callDaemon
4
+ } from "./chunk-OYNLAZQU.js";
5
+ import "./chunk-LBPELU7L.js";
6
+ import "./chunk-SXAGSEKZ.js";
7
+ import "./chunk-MX3NFLCE.js";
8
+ import "./chunk-ASMHEEKY.js";
9
+ import {
10
+ createUsageError
11
+ } from "./chunk-IPE7TF2P.js";
12
+ import "./chunk-STGGGVYT.js";
13
+ import "./chunk-3ILXPKSJ.js";
14
+ import "./chunk-TBUCZX4A.js";
15
+ import "./chunk-Y2KL55OG.js";
16
+ import "./chunk-5SWZDVOW.js";
17
+ import "./chunk-S6S2UP6U.js";
18
+ import "./chunk-S5KZQJJI.js";
19
+ import "./chunk-KZ2IXVQT.js";
20
+ import "./chunk-WHQZBUNY.js";
21
+ import "./chunk-FUSXMW3G.js";
22
+
23
+ // src/cli/commands/pages/list.ts
24
+ function parsePagesListArgs(rawArgs) {
25
+ const parsed = {};
26
+ for (let i = 0; i < rawArgs.length; i += 1) {
27
+ const arg = rawArgs[i];
28
+ if (arg === "--session-id") {
29
+ const value = rawArgs[i + 1];
30
+ if (!value) throw createUsageError("Missing value for --session-id");
31
+ parsed.sessionId = value;
32
+ i += 1;
33
+ continue;
34
+ }
35
+ if (arg?.startsWith("--session-id=")) {
36
+ parsed.sessionId = arg.split("=", 2)[1];
37
+ continue;
38
+ }
39
+ }
40
+ return parsed;
41
+ }
42
+ async function runPagesList(args) {
43
+ const { sessionId } = parsePagesListArgs(args.rawArgs);
44
+ if (!sessionId) throw createUsageError("Missing --session-id");
45
+ const result = await callDaemon("page.list", { sessionId });
46
+ return { success: true, message: `Pages listed for session: ${sessionId}`, data: result };
47
+ }
48
+ export {
49
+ runPagesList
50
+ };
51
+ //# sourceMappingURL=list-NPRXRQY2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/pages/list.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\n\nfunction parsePagesListArgs(rawArgs: string[]): { sessionId?: string } {\n const parsed: { sessionId?: 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 }\n return parsed;\n}\n\nexport async function runPagesList(args: ParsedArgs) {\n const { sessionId } = parsePagesListArgs(args.rawArgs);\n if (!sessionId) throw createUsageError(\"Missing --session-id\");\n const result = await callDaemon(\"page.list\", { sessionId });\n return { success: true, message: `Pages listed for session: ${sessionId}`, data: result };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAS,mBAAmB,SAA2C;AACrE,QAAM,SAAiC,CAAC;AACxC,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;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,aAAa,MAAkB;AACnD,QAAM,EAAE,UAAU,IAAI,mBAAmB,KAAK,OAAO;AACrD,MAAI,CAAC,UAAW,OAAM,iBAAiB,sBAAsB;AAC7D,QAAM,SAAS,MAAM,WAAW,aAAa,EAAE,UAAU,CAAC;AAC1D,SAAO,EAAE,SAAS,MAAM,SAAS,6BAA6B,SAAS,IAAI,MAAM,OAAO;AAC1F;","names":[]}
@@ -0,0 +1,54 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ callDaemon
4
+ } from "./chunk-OYNLAZQU.js";
5
+ import "./chunk-LBPELU7L.js";
6
+ import "./chunk-SXAGSEKZ.js";
7
+ import "./chunk-MX3NFLCE.js";
8
+ import "./chunk-ASMHEEKY.js";
9
+ import {
10
+ createUsageError
11
+ } from "./chunk-IPE7TF2P.js";
12
+ import "./chunk-STGGGVYT.js";
13
+ import "./chunk-3ILXPKSJ.js";
14
+ import "./chunk-TBUCZX4A.js";
15
+ import "./chunk-Y2KL55OG.js";
16
+ import "./chunk-5SWZDVOW.js";
17
+ import "./chunk-S6S2UP6U.js";
18
+ import "./chunk-S5KZQJJI.js";
19
+ import "./chunk-KZ2IXVQT.js";
20
+ import "./chunk-WHQZBUNY.js";
21
+ import "./chunk-FUSXMW3G.js";
22
+
23
+ // src/cli/commands/targets/list.ts
24
+ function parseTargetsListArgs(rawArgs) {
25
+ const parsed = {};
26
+ for (let i = 0; i < rawArgs.length; i += 1) {
27
+ const arg = rawArgs[i];
28
+ if (arg === "--session-id") {
29
+ const value = rawArgs[i + 1];
30
+ if (!value) throw createUsageError("Missing value for --session-id");
31
+ parsed.sessionId = value;
32
+ i += 1;
33
+ continue;
34
+ }
35
+ if (arg?.startsWith("--session-id=")) {
36
+ parsed.sessionId = arg.split("=", 2)[1];
37
+ continue;
38
+ }
39
+ if (arg === "--include-urls") {
40
+ parsed.includeUrls = true;
41
+ }
42
+ }
43
+ return parsed;
44
+ }
45
+ async function runTargetsList(args) {
46
+ const { sessionId, includeUrls } = parseTargetsListArgs(args.rawArgs);
47
+ if (!sessionId) throw createUsageError("Missing --session-id");
48
+ const result = await callDaemon("targets.list", { sessionId, includeUrls });
49
+ return { success: true, message: `Targets listed for session: ${sessionId}`, data: result };
50
+ }
51
+ export {
52
+ runTargetsList
53
+ };
54
+ //# sourceMappingURL=list-STYD2ZWA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/targets/list.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\n\nfunction parseTargetsListArgs(rawArgs: string[]): { sessionId?: string; includeUrls?: boolean } {\n const parsed: { sessionId?: string; includeUrls?: boolean } = {};\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 === \"--include-urls\") {\n parsed.includeUrls = true;\n }\n }\n return parsed;\n}\n\nexport async function runTargetsList(args: ParsedArgs) {\n const { sessionId, includeUrls } = parseTargetsListArgs(args.rawArgs);\n if (!sessionId) throw createUsageError(\"Missing --session-id\");\n const result = await callDaemon(\"targets.list\", { sessionId, includeUrls });\n return { success: true, message: `Targets listed for session: ${sessionId}`, data: result };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAS,qBAAqB,SAAkE;AAC9F,QAAM,SAAwD,CAAC;AAC/D,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,kBAAkB;AAC5B,aAAO,cAAc;AAAA,IACvB;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,eAAe,MAAkB;AACrD,QAAM,EAAE,WAAW,YAAY,IAAI,qBAAqB,KAAK,OAAO;AACpE,MAAI,CAAC,UAAW,OAAM,iBAAiB,sBAAsB;AAC7D,QAAM,SAAS,MAAM,WAAW,gBAAgB,EAAE,WAAW,YAAY,CAAC;AAC1E,SAAO,EAAE,SAAS,MAAM,SAAS,+BAA+B,SAAS,IAAI,MAAM,OAAO;AAC5F;","names":[]}
@@ -0,0 +1,54 @@
1
+ import {
2
+ createPluginConfig
3
+ } from "./chunk-DBF5OKH3.js";
4
+ import "./chunk-ASMHEEKY.js";
5
+ import {
6
+ getLocalConfigPath,
7
+ hasPlugin,
8
+ readConfig,
9
+ updateConfigContent
10
+ } from "./chunk-7THCPS52.js";
11
+ import "./chunk-TBUCZX4A.js";
12
+
13
+ // src/cli/installers/local.ts
14
+ import * as fs from "fs";
15
+ function installLocal(withConfig = false) {
16
+ const configPath = getLocalConfigPath();
17
+ try {
18
+ const { content, config } = readConfig(configPath);
19
+ if (hasPlugin(config)) {
20
+ return {
21
+ success: true,
22
+ message: `opendevbrowser is already installed in ${configPath}`,
23
+ configPath,
24
+ created: false,
25
+ alreadyInstalled: true
26
+ };
27
+ }
28
+ const newContent = updateConfigContent(content, "opendevbrowser");
29
+ fs.writeFileSync(configPath, newContent, "utf-8");
30
+ if (withConfig) {
31
+ createPluginConfig("local");
32
+ }
33
+ return {
34
+ success: true,
35
+ message: `Added opendevbrowser to ${configPath}`,
36
+ configPath,
37
+ created: content.trim() === "",
38
+ alreadyInstalled: false
39
+ };
40
+ } catch (error) {
41
+ const message = error instanceof Error ? error.message : String(error);
42
+ return {
43
+ success: false,
44
+ message: `Failed to install locally: ${message}`,
45
+ configPath,
46
+ created: false,
47
+ alreadyInstalled: false
48
+ };
49
+ }
50
+ }
51
+ export {
52
+ installLocal
53
+ };
54
+ //# sourceMappingURL=local-HXJLUUNT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/installers/local.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport {\n getLocalConfigPath,\n readConfig,\n hasPlugin,\n updateConfigContent\n} from \"../utils/config\";\nimport { createPluginConfig } from \"../templates/config\";\n\nexport interface InstallResult {\n success: boolean;\n message: string;\n configPath: string;\n created: boolean;\n alreadyInstalled: boolean;\n}\n\nexport function installLocal(withConfig: boolean = false): InstallResult {\n const configPath = getLocalConfigPath();\n\n try {\n const { content, config } = readConfig(configPath);\n\n if (hasPlugin(config)) {\n return {\n success: true,\n message: `opendevbrowser is already installed in ${configPath}`,\n configPath,\n created: false,\n alreadyInstalled: true\n };\n }\n\n const newContent = updateConfigContent(content, \"opendevbrowser\");\n\n fs.writeFileSync(configPath, newContent, \"utf-8\");\n\n if (withConfig) {\n createPluginConfig(\"local\");\n }\n\n return {\n success: true,\n message: `Added opendevbrowser to ${configPath}`,\n configPath,\n created: content.trim() === \"\",\n alreadyInstalled: false\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n success: false,\n message: `Failed to install locally: ${message}`,\n configPath,\n created: false,\n alreadyInstalled: false\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,YAAY,QAAQ;AAiBb,SAAS,aAAa,aAAsB,OAAsB;AACvE,QAAM,aAAa,mBAAmB;AAEtC,MAAI;AACF,UAAM,EAAE,SAAS,OAAO,IAAI,WAAW,UAAU;AAEjD,QAAI,UAAU,MAAM,GAAG;AACrB,aAAO;AAAA,QACL,SAAS;AAAA,QACT,SAAS,0CAA0C,UAAU;AAAA,QAC7D;AAAA,QACA,SAAS;AAAA,QACT,kBAAkB;AAAA,MACpB;AAAA,IACF;AAEA,UAAM,aAAa,oBAAoB,SAAS,gBAAgB;AAEhE,IAAG,iBAAc,YAAY,YAAY,OAAO;AAEhD,QAAI,YAAY;AACd,yBAAmB,OAAO;AAAA,IAC5B;AAEA,WAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS,2BAA2B,UAAU;AAAA,MAC9C;AAAA,MACA,SAAS,QAAQ,KAAK,MAAM;AAAA,MAC5B,kBAAkB;AAAA,IACpB;AAAA,EACF,SAAS,OAAO;AACd,UAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACrE,WAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS,8BAA8B,OAAO;AAAA,MAC9C;AAAA,MACA,SAAS;AAAA,MACT,kBAAkB;AAAA,IACpB;AAAA,EACF;AACF;","names":[]}