opendevbrowser 0.0.28 → 0.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/README.md +2 -2
  2. package/dist/accessibility-snapshot-CQ4ZKWKC.js +39 -0
  3. package/dist/accessibility-snapshot-CQ4ZKWKC.js.map +1 -0
  4. package/dist/active-window-TD5HYJ72.js +37 -0
  5. package/dist/active-window-TD5HYJ72.js.map +1 -0
  6. package/dist/annotate-VTLFS2XV.js +205 -0
  7. package/dist/annotate-VTLFS2XV.js.map +1 -0
  8. package/dist/artifacts-KJ6RNDO2.js +120 -0
  9. package/dist/artifacts-KJ6RNDO2.js.map +1 -0
  10. package/dist/attr-BCI5KYCW.js +84 -0
  11. package/dist/attr-BCI5KYCW.js.map +1 -0
  12. package/dist/browser/ops-client.d.ts +1 -0
  13. package/dist/browser/ops-client.d.ts.map +1 -1
  14. package/dist/canvas-5DFEEOKM.js +309 -0
  15. package/dist/canvas-5DFEEOKM.js.map +1 -0
  16. package/dist/capture-desktop-HFTTWY4Z.js +38 -0
  17. package/dist/capture-desktop-HFTTWY4Z.js.map +1 -0
  18. package/dist/capture-window-X63XPIFF.js +40 -0
  19. package/dist/capture-window-X63XPIFF.js.map +1 -0
  20. package/dist/check-LWAUY7GC.js +71 -0
  21. package/dist/check-LWAUY7GC.js.map +1 -0
  22. package/dist/checked-ZSOUKVYT.js +71 -0
  23. package/dist/checked-ZSOUKVYT.js.map +1 -0
  24. package/dist/chunk-2SIMIPLY.js +67 -0
  25. package/dist/chunk-2SIMIPLY.js.map +1 -0
  26. package/dist/chunk-37VSRUW4.js +141 -0
  27. package/dist/chunk-37VSRUW4.js.map +1 -0
  28. package/dist/{chunk-T3VVHJTK.js → chunk-4BEJVZRK.js} +1078 -1458
  29. package/dist/chunk-4BEJVZRK.js.map +1 -0
  30. package/dist/chunk-5SWZDVOW.js +144 -0
  31. package/dist/chunk-5SWZDVOW.js.map +1 -0
  32. package/dist/chunk-6PVZ2ABC.js +429 -0
  33. package/dist/chunk-6PVZ2ABC.js.map +1 -0
  34. package/dist/chunk-7GVOUZMQ.js +64 -0
  35. package/dist/chunk-7GVOUZMQ.js.map +1 -0
  36. package/dist/chunk-7THCPS52.js +84 -0
  37. package/dist/chunk-7THCPS52.js.map +1 -0
  38. package/dist/chunk-AHEWXOKY.js +64 -0
  39. package/dist/chunk-AHEWXOKY.js.map +1 -0
  40. package/dist/chunk-ASMHEEKY.js +10 -0
  41. package/dist/chunk-ASMHEEKY.js.map +1 -0
  42. package/dist/chunk-COAOWH3G.js +3651 -0
  43. package/dist/chunk-COAOWH3G.js.map +1 -0
  44. package/dist/chunk-DBF5OKH3.js +111 -0
  45. package/dist/chunk-DBF5OKH3.js.map +1 -0
  46. package/dist/chunk-DW4TX7MU.js +54 -0
  47. package/dist/chunk-DW4TX7MU.js.map +1 -0
  48. package/dist/chunk-GQJ5S3BL.js +20 -0
  49. package/dist/chunk-GQJ5S3BL.js.map +1 -0
  50. package/dist/chunk-IPE7TF2P.js +54 -0
  51. package/dist/chunk-IPE7TF2P.js.map +1 -0
  52. package/dist/chunk-IQTJHXZJ.js +126 -0
  53. package/dist/chunk-IQTJHXZJ.js.map +1 -0
  54. package/dist/chunk-J47N77VG.js +2969 -0
  55. package/dist/chunk-J47N77VG.js.map +1 -0
  56. package/dist/chunk-JZXD6FWR.js +25 -0
  57. package/dist/chunk-JZXD6FWR.js.map +1 -0
  58. package/dist/{chunk-QVWOPIZJ.js → chunk-KDSNXS6N.js} +75 -149
  59. package/dist/chunk-KDSNXS6N.js.map +1 -0
  60. package/dist/chunk-KZ2IXVQT.js +219 -0
  61. package/dist/chunk-KZ2IXVQT.js.map +1 -0
  62. package/dist/chunk-MD655IPO.js +838 -0
  63. package/dist/chunk-MD655IPO.js.map +1 -0
  64. package/dist/chunk-MX3NFLCE.js +940 -0
  65. package/dist/chunk-MX3NFLCE.js.map +1 -0
  66. package/dist/chunk-OW5HMYMI.js +19 -0
  67. package/dist/chunk-OW5HMYMI.js.map +1 -0
  68. package/dist/chunk-PPUWQKIC.js +26 -0
  69. package/dist/chunk-PPUWQKIC.js.map +1 -0
  70. package/dist/{chunk-I5ZCOZZV.js → chunk-QOMWCRE3.js} +1202 -9561
  71. package/dist/chunk-QOMWCRE3.js.map +1 -0
  72. package/dist/chunk-RCZZGGJS.js +226 -0
  73. package/dist/chunk-RCZZGGJS.js.map +1 -0
  74. package/dist/chunk-RJNI3BHT.js +1 -0
  75. package/dist/chunk-RPXWUCQQ.js +112 -0
  76. package/dist/chunk-RPXWUCQQ.js.map +1 -0
  77. package/dist/chunk-S5KZQJJI.js +107 -0
  78. package/dist/chunk-S5KZQJJI.js.map +1 -0
  79. package/dist/chunk-T4GMCW6Z.js +46 -0
  80. package/dist/chunk-T4GMCW6Z.js.map +1 -0
  81. package/dist/chunk-WHQZBUNY.js +982 -0
  82. package/dist/chunk-WHQZBUNY.js.map +1 -0
  83. package/dist/chunk-WOXBLP7V.js +610 -0
  84. package/dist/chunk-WOXBLP7V.js.map +1 -0
  85. package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
  86. package/dist/cli/commands/macro-resolve.d.ts +4 -1
  87. package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
  88. package/dist/cli/commands/product-video.d.ts.map +1 -1
  89. package/dist/cli/commands/research.d.ts.map +1 -1
  90. package/dist/cli/commands/serve.d.ts.map +1 -1
  91. package/dist/cli/commands/shopping.d.ts.map +1 -1
  92. package/dist/cli/commands/workflow-output.d.ts +2 -0
  93. package/dist/cli/commands/workflow-output.d.ts.map +1 -0
  94. package/dist/cli/daemon-commands.d.ts.map +1 -1
  95. package/dist/cli/daemon.d.ts.map +1 -1
  96. package/dist/cli/index.js +204 -8123
  97. package/dist/cli/index.js.map +1 -1
  98. package/dist/cli/installers/postinstall-skill-sync.js +2 -1
  99. package/dist/cli/installers/postinstall-skill-sync.js.map +1 -1
  100. package/dist/cli/remote-relay.d.ts.map +1 -1
  101. package/dist/click-2AILSEIZ.js +81 -0
  102. package/dist/click-2AILSEIZ.js.map +1 -0
  103. package/dist/clone-component-TPJS3PEG.js +82 -0
  104. package/dist/clone-component-TPJS3PEG.js.map +1 -0
  105. package/dist/clone-page-LE74CIFC.js +69 -0
  106. package/dist/clone-page-LE74CIFC.js.map +1 -0
  107. package/dist/close-HN4YI47K.js +63 -0
  108. package/dist/close-HN4YI47K.js.map +1 -0
  109. package/dist/close-WFERRHX6.js +63 -0
  110. package/dist/close-WFERRHX6.js.map +1 -0
  111. package/dist/connect-RWBV2UCQ.js +107 -0
  112. package/dist/connect-RWBV2UCQ.js.map +1 -0
  113. package/dist/console-poll-PP4YYPDF.js +76 -0
  114. package/dist/console-poll-PP4YYPDF.js.map +1 -0
  115. package/dist/cookie-import-6IP776FC.js +177 -0
  116. package/dist/cookie-import-6IP776FC.js.map +1 -0
  117. package/dist/cookie-list-O2KG6DPU.js +117 -0
  118. package/dist/cookie-list-O2KG6DPU.js.map +1 -0
  119. package/dist/daemon-2BSAZXLT.js +194 -0
  120. package/dist/daemon-2BSAZXLT.js.map +1 -0
  121. package/dist/daemon-fingerprint.json +1 -1
  122. package/dist/debug-trace-snapshot-F3BDVZXS.js +136 -0
  123. package/dist/debug-trace-snapshot-F3BDVZXS.js.map +1 -0
  124. package/dist/dialog-6JQYUWMQ.js +75 -0
  125. package/dist/dialog-6JQYUWMQ.js.map +1 -0
  126. package/dist/disconnect-763TP7GH.js +58 -0
  127. package/dist/disconnect-763TP7GH.js.map +1 -0
  128. package/dist/enabled-DLYQFNIP.js +71 -0
  129. package/dist/enabled-DLYQFNIP.js.map +1 -0
  130. package/dist/extension-extractor-GKWSFHPN.js +11 -0
  131. package/dist/extension-extractor-GKWSFHPN.js.map +1 -0
  132. package/dist/global-D6WLWBXA.js +56 -0
  133. package/dist/global-D6WLWBXA.js.map +1 -0
  134. package/dist/goto-S346TJJH.js +98 -0
  135. package/dist/goto-S346TJJH.js.map +1 -0
  136. package/dist/help-EKKKEDL5.js +491 -0
  137. package/dist/help-EKKKEDL5.js.map +1 -0
  138. package/dist/hover-6JVJFGO7.js +71 -0
  139. package/dist/hover-6JVJFGO7.js.map +1 -0
  140. package/dist/html-EVOSPBIT.js +84 -0
  141. package/dist/html-EVOSPBIT.js.map +1 -0
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +87 -38
  144. package/dist/index.js.map +1 -1
  145. package/dist/inspector-H57BVUJP.js +62 -0
  146. package/dist/inspector-H57BVUJP.js.map +1 -0
  147. package/dist/inspector-audit-NQBAJWC7.js +84 -0
  148. package/dist/inspector-audit-NQBAJWC7.js.map +1 -0
  149. package/dist/inspector-plan-ZDIQVND3.js +69 -0
  150. package/dist/inspector-plan-ZDIQVND3.js.map +1 -0
  151. package/dist/inspiredesign-IEUL4PX3.js +234 -0
  152. package/dist/inspiredesign-IEUL4PX3.js.map +1 -0
  153. package/dist/install-autostart-output-5DOMKCQL.js +41 -0
  154. package/dist/install-autostart-output-5DOMKCQL.js.map +1 -0
  155. package/dist/install-autostart-reconciliation-NHKOFYTD.js +73 -0
  156. package/dist/install-autostart-reconciliation-NHKOFYTD.js.map +1 -0
  157. package/dist/launch-EK66VQPF.js +225 -0
  158. package/dist/launch-EK66VQPF.js.map +1 -0
  159. package/dist/list-ADZAQ2IU.js +51 -0
  160. package/dist/list-ADZAQ2IU.js.map +1 -0
  161. package/dist/list-KKUKN467.js +54 -0
  162. package/dist/list-KKUKN467.js.map +1 -0
  163. package/dist/local-HXJLUUNT.js +54 -0
  164. package/dist/local-HXJLUUNT.js.map +1 -0
  165. package/dist/macro-resolve-6DOQJ7CA.js +253 -0
  166. package/dist/macro-resolve-6DOQJ7CA.js.map +1 -0
  167. package/dist/macros/execute-runtime.d.ts +3 -1
  168. package/dist/macros/execute-runtime.d.ts.map +1 -1
  169. package/dist/macros/execute.d.ts +2 -0
  170. package/dist/macros/execute.d.ts.map +1 -1
  171. package/dist/native-UPLVQ2SG.js +22 -0
  172. package/dist/native-UPLVQ2SG.js.map +1 -0
  173. package/dist/network-poll-NUL4PDPY.js +76 -0
  174. package/dist/network-poll-NUL4PDPY.js.map +1 -0
  175. package/dist/new-5NKYPEFT.js +69 -0
  176. package/dist/new-5NKYPEFT.js.map +1 -0
  177. package/dist/onboarding-metadata-7E3KLYSZ.js +27 -0
  178. package/dist/onboarding-metadata-7E3KLYSZ.js.map +1 -0
  179. package/dist/open-NR3BPLXV.js +81 -0
  180. package/dist/open-NR3BPLXV.js.map +1 -0
  181. package/dist/opendevbrowser.d.ts.map +1 -1
  182. package/dist/opendevbrowser.js +87 -38
  183. package/dist/opendevbrowser.js.map +1 -1
  184. package/dist/perf-HJ36ZI6H.js +58 -0
  185. package/dist/perf-HJ36ZI6H.js.map +1 -0
  186. package/dist/pointer-down-IYTTQWXZ.js +55 -0
  187. package/dist/pointer-down-IYTTQWXZ.js.map +1 -0
  188. package/dist/pointer-drag-A2YC5PWI.js +54 -0
  189. package/dist/pointer-drag-A2YC5PWI.js.map +1 -0
  190. package/dist/pointer-move-W5K5FUI4.js +52 -0
  191. package/dist/pointer-move-W5K5FUI4.js.map +1 -0
  192. package/dist/pointer-up-6GWVO64Y.js +55 -0
  193. package/dist/pointer-up-6GWVO64Y.js.map +1 -0
  194. package/dist/press-A3V5WB3S.js +83 -0
  195. package/dist/press-A3V5WB3S.js.map +1 -0
  196. package/dist/product-video-52REKWF3.js +235 -0
  197. package/dist/product-video-52REKWF3.js.map +1 -0
  198. package/dist/providers/artifacts.d.ts +0 -2
  199. package/dist/providers/artifacts.d.ts.map +1 -1
  200. package/dist/providers/blocker.d.ts.map +1 -1
  201. package/dist/providers/bounded-map.d.ts +2 -0
  202. package/dist/providers/bounded-map.d.ts.map +1 -0
  203. package/dist/providers/community/index.d.ts.map +1 -1
  204. package/dist/providers/constraint.d.ts.map +1 -1
  205. package/dist/providers/index.d.ts +1 -0
  206. package/dist/providers/index.d.ts.map +1 -1
  207. package/dist/providers/renderer.d.ts.map +1 -1
  208. package/dist/providers/research-compiler.d.ts +1 -1
  209. package/dist/providers/research-compiler.d.ts.map +1 -1
  210. package/dist/providers/research-executor.d.ts.map +1 -1
  211. package/dist/providers/runtime-factory.d.ts.map +1 -1
  212. package/dist/providers/shared/traversal-url.d.ts +3 -0
  213. package/dist/providers/shared/traversal-url.d.ts.map +1 -1
  214. package/dist/providers/shopping/index.d.ts.map +1 -1
  215. package/dist/providers/social/search-quality.d.ts.map +1 -1
  216. package/dist/providers/workflow-handoff.d.ts +4 -0
  217. package/dist/providers/workflow-handoff.d.ts.map +1 -1
  218. package/dist/providers/workflow-output-root.d.ts +6 -0
  219. package/dist/providers/workflow-output-root.d.ts.map +1 -0
  220. package/dist/providers/workflows.d.ts.map +1 -1
  221. package/dist/{providers-QF2RFB4J.js → providers-IMFYMMHQ.js} +19 -14
  222. package/dist/providers-IMFYMMHQ.js.map +1 -0
  223. package/dist/public-surface/generated-manifest.d.ts +2 -2
  224. package/dist/public-surface/generated-manifest.d.ts.map +1 -1
  225. package/dist/public-surface/source.d.ts +2 -2
  226. package/dist/public-surface/source.d.ts.map +1 -1
  227. package/dist/relay/protocol.d.ts +3 -1
  228. package/dist/relay/protocol.d.ts.map +1 -1
  229. package/dist/relay/relay-server.d.ts +6 -0
  230. package/dist/relay/relay-server.d.ts.map +1 -1
  231. package/dist/research-WB6BBCDD.js +295 -0
  232. package/dist/research-WB6BBCDD.js.map +1 -0
  233. package/dist/review-BGWVY4RA.js +48 -0
  234. package/dist/review-BGWVY4RA.js.map +1 -0
  235. package/dist/review-desktop-LEORC5VS.js +54 -0
  236. package/dist/review-desktop-LEORC5VS.js.map +1 -0
  237. package/dist/rpc-4TSKSFGC.js +159 -0
  238. package/dist/rpc-4TSKSFGC.js.map +1 -0
  239. package/dist/run-3NBLVWXD.js +180 -0
  240. package/dist/run-3NBLVWXD.js.map +1 -0
  241. package/dist/screencast-start-UZVIT3IN.js +67 -0
  242. package/dist/screencast-start-UZVIT3IN.js.map +1 -0
  243. package/dist/screencast-stop-NOSJSIUO.js +59 -0
  244. package/dist/screencast-stop-NOSJSIUO.js.map +1 -0
  245. package/dist/screenshot-LARG4JQG.js +68 -0
  246. package/dist/screenshot-LARG4JQG.js.map +1 -0
  247. package/dist/scroll-VNFMV6TW.js +84 -0
  248. package/dist/scroll-VNFMV6TW.js.map +1 -0
  249. package/dist/scroll-into-view-VYRT3JPT.js +71 -0
  250. package/dist/scroll-into-view-VYRT3JPT.js.map +1 -0
  251. package/dist/select-KJTUZDVO.js +86 -0
  252. package/dist/select-KJTUZDVO.js.map +1 -0
  253. package/dist/serve-EV7K4HKR.js +498 -0
  254. package/dist/serve-EV7K4HKR.js.map +1 -0
  255. package/dist/shopping-DTXHVQ2X.js +273 -0
  256. package/dist/shopping-DTXHVQ2X.js.map +1 -0
  257. package/dist/skill-lifecycle-5UAZGKSN.js +89 -0
  258. package/dist/skill-lifecycle-5UAZGKSN.js.map +1 -0
  259. package/dist/skills-NSXDX6YM.js +26 -0
  260. package/dist/skills-NSXDX6YM.js.map +1 -0
  261. package/dist/snapshot-3XQMCMRJ.js +113 -0
  262. package/dist/snapshot-3XQMCMRJ.js.map +1 -0
  263. package/dist/status-OXSYA5XD.js +35 -0
  264. package/dist/status-OXSYA5XD.js.map +1 -0
  265. package/dist/status-YUMDP5KY.js +132 -0
  266. package/dist/status-YUMDP5KY.js.map +1 -0
  267. package/dist/status-capabilities-P4KDSE2Y.js +57 -0
  268. package/dist/status-capabilities-P4KDSE2Y.js.map +1 -0
  269. package/dist/text-V3B7UVIH.js +84 -0
  270. package/dist/text-V3B7UVIH.js.map +1 -0
  271. package/dist/tools/deps.d.ts +1 -0
  272. package/dist/tools/deps.d.ts.map +1 -1
  273. package/dist/tools/inspiredesign_run.d.ts.map +1 -1
  274. package/dist/tools/macro_resolve.d.ts.map +1 -1
  275. package/dist/tools/product_video_run.d.ts.map +1 -1
  276. package/dist/tools/research_run.d.ts.map +1 -1
  277. package/dist/tools/shopping_run.d.ts.map +1 -1
  278. package/dist/tools/workflow-output.d.ts +3 -0
  279. package/dist/tools/workflow-output.d.ts.map +1 -0
  280. package/dist/type-IYBN3ZLR.js +94 -0
  281. package/dist/type-IYBN3ZLR.js.map +1 -0
  282. package/dist/uncheck-SG737EGI.js +71 -0
  283. package/dist/uncheck-SG737EGI.js.map +1 -0
  284. package/dist/uninstall-KYKGJAX7.js +91 -0
  285. package/dist/uninstall-KYKGJAX7.js.map +1 -0
  286. package/dist/update-SMXPYGXS.js +305 -0
  287. package/dist/update-SMXPYGXS.js.map +1 -0
  288. package/dist/update-skill-modes-BVX7IVMW.js +38 -0
  289. package/dist/update-skill-modes-BVX7IVMW.js.map +1 -0
  290. package/dist/upload-KH6ZABJA.js +56 -0
  291. package/dist/upload-KH6ZABJA.js.map +1 -0
  292. package/dist/use-7YDKO3U4.js +63 -0
  293. package/dist/use-7YDKO3U4.js.map +1 -0
  294. package/dist/value-RZBWSKKM.js +71 -0
  295. package/dist/value-RZBWSKKM.js.map +1 -0
  296. package/dist/visible-BSFTAKXR.js +71 -0
  297. package/dist/visible-BSFTAKXR.js.map +1 -0
  298. package/dist/wait-TMTEAYOP.js +109 -0
  299. package/dist/wait-TMTEAYOP.js.map +1 -0
  300. package/dist/windows-HIZ23OHS.js +37 -0
  301. package/dist/windows-HIZ23OHS.js.map +1 -0
  302. package/extension/dist/background.js +99 -22
  303. package/extension/dist/ops/ops-runtime.js +85 -7
  304. package/extension/dist/ops/ops-session-store.js +3 -0
  305. package/extension/dist/ops/target-session-coordinator.js +3 -0
  306. package/extension/dist/services/CDPRouter.js +9 -0
  307. package/extension/manifest.json +1 -1
  308. package/package.json +1 -1
  309. package/skills/opendevbrowser-best-practices/SKILL.md +8 -6
  310. package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +1 -1
  311. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +3 -2
  312. package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +39 -2
  313. package/skills/opendevbrowser-research/SKILL.md +64 -12
  314. package/skills/opendevbrowser-research/artifacts/research-workflows.md +56 -19
  315. package/skills/opendevbrowser-research/assets/templates/compact.md +31 -5
  316. package/skills/opendevbrowser-research/assets/templates/context.json +52 -1
  317. package/skills/opendevbrowser-research/assets/templates/report.md +57 -4
  318. package/skills/opendevbrowser-research/examples/sample-input.json +1 -1
  319. package/skills/opendevbrowser-research/examples/sample-output.md +27 -2
  320. package/skills/opendevbrowser-research/scripts/run-research.sh +2 -6
  321. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +115 -1
  322. package/dist/chunk-I5ZCOZZV.js.map +0 -1
  323. package/dist/chunk-QVWOPIZJ.js.map +0 -1
  324. package/dist/chunk-T3VVHJTK.js.map +0 -1
  325. /package/dist/{providers-QF2RFB4J.js.map → chunk-RJNI3BHT.js.map} +0 -0
@@ -0,0 +1,177 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ callDaemon
4
+ } from "./chunk-MD655IPO.js";
5
+ import "./chunk-COAOWH3G.js";
6
+ import "./chunk-QOMWCRE3.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-4BEJVZRK.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/session/cookie-import.ts
24
+ import { readFileSync } from "fs";
25
+ var requireValue = (value, flag) => {
26
+ if (!value) {
27
+ throw createUsageError(`Missing value for ${flag}`);
28
+ }
29
+ return value;
30
+ };
31
+ var parseStrictValue = (value, flag) => {
32
+ const normalized = value.trim().toLowerCase();
33
+ if (normalized === "true") return true;
34
+ if (normalized === "false") return false;
35
+ throw createUsageError(`Invalid ${flag}: ${value}`);
36
+ };
37
+ var parseCookieImportArgs = (rawArgs) => {
38
+ const parsed = {};
39
+ for (let index = 0; index < rawArgs.length; index += 1) {
40
+ const arg = rawArgs[index];
41
+ if (arg === "--session-id") {
42
+ parsed.sessionId = requireValue(rawArgs[index + 1], "--session-id");
43
+ index += 1;
44
+ continue;
45
+ }
46
+ if (arg?.startsWith("--session-id=")) {
47
+ parsed.sessionId = requireValue(arg.split("=", 2)[1], "--session-id");
48
+ continue;
49
+ }
50
+ if (arg === "--cookies") {
51
+ parsed.cookies = requireValue(rawArgs[index + 1], "--cookies");
52
+ index += 1;
53
+ continue;
54
+ }
55
+ if (arg?.startsWith("--cookies=")) {
56
+ parsed.cookies = requireValue(arg.split("=", 2)[1], "--cookies");
57
+ continue;
58
+ }
59
+ if (arg === "--cookies-file") {
60
+ parsed.cookiesFile = requireValue(rawArgs[index + 1], "--cookies-file");
61
+ index += 1;
62
+ continue;
63
+ }
64
+ if (arg?.startsWith("--cookies-file=")) {
65
+ parsed.cookiesFile = requireValue(arg.split("=", 2)[1], "--cookies-file");
66
+ continue;
67
+ }
68
+ if (arg === "--strict") {
69
+ parsed.strict = true;
70
+ continue;
71
+ }
72
+ if (arg?.startsWith("--strict=")) {
73
+ parsed.strict = parseStrictValue(requireValue(arg.split("=", 2)[1], "--strict"), "--strict");
74
+ continue;
75
+ }
76
+ if (arg === "--request-id") {
77
+ parsed.requestId = requireValue(rawArgs[index + 1], "--request-id");
78
+ index += 1;
79
+ continue;
80
+ }
81
+ if (arg?.startsWith("--request-id=")) {
82
+ parsed.requestId = requireValue(arg.split("=", 2)[1], "--request-id");
83
+ continue;
84
+ }
85
+ }
86
+ return parsed;
87
+ };
88
+ var parseCookiesJson = (raw, source) => {
89
+ let parsed;
90
+ try {
91
+ parsed = JSON.parse(raw);
92
+ } catch (error) {
93
+ const message = error instanceof Error ? error.message : "Invalid JSON";
94
+ throw createUsageError(`Invalid JSON from ${source}: ${message}`);
95
+ }
96
+ if (!Array.isArray(parsed)) {
97
+ throw createUsageError(`Invalid JSON from ${source}: expected array`);
98
+ }
99
+ const cookies = [];
100
+ for (const entry of parsed) {
101
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
102
+ throw createUsageError(`Invalid JSON from ${source}: expected cookie object entries`);
103
+ }
104
+ const cookie = entry;
105
+ if (typeof cookie.name !== "string" || typeof cookie.value !== "string") {
106
+ throw createUsageError(`Invalid JSON from ${source}: each cookie requires string name and value`);
107
+ }
108
+ if (typeof cookie.sameSite !== "undefined" && cookie.sameSite !== "Strict" && cookie.sameSite !== "Lax" && cookie.sameSite !== "None") {
109
+ throw createUsageError(`Invalid JSON from ${source}: sameSite must be Strict, Lax, or None`);
110
+ }
111
+ cookies.push({
112
+ name: cookie.name,
113
+ value: cookie.value,
114
+ ...typeof cookie.url === "string" ? { url: cookie.url } : {},
115
+ ...typeof cookie.domain === "string" ? { domain: cookie.domain } : {},
116
+ ...typeof cookie.path === "string" ? { path: cookie.path } : {},
117
+ ...typeof cookie.expires === "number" ? { expires: cookie.expires } : {},
118
+ ...typeof cookie.httpOnly === "boolean" ? { httpOnly: cookie.httpOnly } : {},
119
+ ...typeof cookie.secure === "boolean" ? { secure: cookie.secure } : {},
120
+ ...cookie.sameSite ? { sameSite: cookie.sameSite } : {}
121
+ });
122
+ }
123
+ return cookies;
124
+ };
125
+ var resolveCookies = (parsed) => {
126
+ const hasInline = typeof parsed.cookies === "string";
127
+ const hasFile = typeof parsed.cookiesFile === "string";
128
+ if (!hasInline && !hasFile) {
129
+ throw createUsageError("Missing --cookies or --cookies-file");
130
+ }
131
+ if (hasInline && hasFile) {
132
+ throw createUsageError("Provide only one cookies source: --cookies or --cookies-file.");
133
+ }
134
+ if (hasInline) {
135
+ return parseCookiesJson(parsed.cookies ?? "", "--cookies");
136
+ }
137
+ let raw = "";
138
+ try {
139
+ raw = readFileSync(parsed.cookiesFile ?? "", "utf8");
140
+ } catch (error) {
141
+ const message = error instanceof Error ? error.message : "Unable to read file";
142
+ throw createUsageError(`Invalid --cookies-file: ${message}`);
143
+ }
144
+ if (!raw.trim()) {
145
+ throw createUsageError("Invalid JSON from --cookies-file: empty input");
146
+ }
147
+ return parseCookiesJson(raw, "--cookies-file");
148
+ };
149
+ async function runCookieImport(args) {
150
+ const parsed = parseCookieImportArgs(args.rawArgs);
151
+ if (!parsed.sessionId) {
152
+ throw createUsageError("Missing --session-id");
153
+ }
154
+ const cookies = resolveCookies(parsed);
155
+ const result = await callDaemon("session.cookieImport", {
156
+ sessionId: parsed.sessionId,
157
+ cookies,
158
+ strict: parsed.strict ?? true,
159
+ requestId: parsed.requestId
160
+ });
161
+ const imported = typeof result.imported === "number" ? result.imported : cookies.length;
162
+ return {
163
+ success: true,
164
+ message: `Cookies imported: ${imported}`,
165
+ data: result
166
+ };
167
+ }
168
+ var __test__ = {
169
+ parseCookieImportArgs,
170
+ parseCookiesJson,
171
+ resolveCookies
172
+ };
173
+ export {
174
+ __test__,
175
+ runCookieImport
176
+ };
177
+ //# sourceMappingURL=cookie-import-6IP776FC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/session/cookie-import.ts"],"sourcesContent":["import { readFileSync } from \"fs\";\nimport type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\n\ntype CookieImportArgs = {\n sessionId?: string;\n cookies?: string;\n cookiesFile?: string;\n strict?: boolean;\n requestId?: string;\n};\n\ntype CookieRecord = {\n name: string;\n value: string;\n url?: string;\n domain?: string;\n path?: string;\n expires?: number;\n httpOnly?: boolean;\n secure?: boolean;\n sameSite?: \"Strict\" | \"Lax\" | \"None\";\n};\n\nconst requireValue = (value: string | undefined, flag: string): string => {\n if (!value) {\n throw createUsageError(`Missing value for ${flag}`);\n }\n return value;\n};\n\nconst parseStrictValue = (value: string, flag: string): boolean => {\n const normalized = value.trim().toLowerCase();\n if (normalized === \"true\") return true;\n if (normalized === \"false\") return false;\n throw createUsageError(`Invalid ${flag}: ${value}`);\n};\n\nconst parseCookieImportArgs = (rawArgs: string[]): CookieImportArgs => {\n const parsed: CookieImportArgs = {};\n\n for (let index = 0; index < rawArgs.length; index += 1) {\n const arg = rawArgs[index];\n\n if (arg === \"--session-id\") {\n parsed.sessionId = requireValue(rawArgs[index + 1], \"--session-id\");\n index += 1;\n continue;\n }\n if (arg?.startsWith(\"--session-id=\")) {\n parsed.sessionId = requireValue(arg.split(\"=\", 2)[1], \"--session-id\");\n continue;\n }\n\n if (arg === \"--cookies\") {\n parsed.cookies = requireValue(rawArgs[index + 1], \"--cookies\");\n index += 1;\n continue;\n }\n if (arg?.startsWith(\"--cookies=\")) {\n parsed.cookies = requireValue(arg.split(\"=\", 2)[1], \"--cookies\");\n continue;\n }\n\n if (arg === \"--cookies-file\") {\n parsed.cookiesFile = requireValue(rawArgs[index + 1], \"--cookies-file\");\n index += 1;\n continue;\n }\n if (arg?.startsWith(\"--cookies-file=\")) {\n parsed.cookiesFile = requireValue(arg.split(\"=\", 2)[1], \"--cookies-file\");\n continue;\n }\n\n if (arg === \"--strict\") {\n parsed.strict = true;\n continue;\n }\n if (arg?.startsWith(\"--strict=\")) {\n parsed.strict = parseStrictValue(requireValue(arg.split(\"=\", 2)[1], \"--strict\"), \"--strict\");\n continue;\n }\n\n if (arg === \"--request-id\") {\n parsed.requestId = requireValue(rawArgs[index + 1], \"--request-id\");\n index += 1;\n continue;\n }\n if (arg?.startsWith(\"--request-id=\")) {\n parsed.requestId = requireValue(arg.split(\"=\", 2)[1], \"--request-id\");\n continue;\n }\n }\n\n return parsed;\n};\n\nconst parseCookiesJson = (raw: string, source: string): CookieRecord[] => {\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Invalid JSON\";\n throw createUsageError(`Invalid JSON from ${source}: ${message}`);\n }\n\n if (!Array.isArray(parsed)) {\n throw createUsageError(`Invalid JSON from ${source}: expected array`);\n }\n\n const cookies: CookieRecord[] = [];\n for (const entry of parsed) {\n if (!entry || typeof entry !== \"object\" || Array.isArray(entry)) {\n throw createUsageError(`Invalid JSON from ${source}: expected cookie object entries`);\n }\n const cookie = entry as Record<string, unknown>;\n if (typeof cookie.name !== \"string\" || typeof cookie.value !== \"string\") {\n throw createUsageError(`Invalid JSON from ${source}: each cookie requires string name and value`);\n }\n if (typeof cookie.sameSite !== \"undefined\" && cookie.sameSite !== \"Strict\" && cookie.sameSite !== \"Lax\" && cookie.sameSite !== \"None\") {\n throw createUsageError(`Invalid JSON from ${source}: sameSite must be Strict, Lax, or None`);\n }\n\n cookies.push({\n name: cookie.name,\n value: cookie.value,\n ...(typeof cookie.url === \"string\" ? { url: cookie.url } : {}),\n ...(typeof cookie.domain === \"string\" ? { domain: cookie.domain } : {}),\n ...(typeof cookie.path === \"string\" ? { path: cookie.path } : {}),\n ...(typeof cookie.expires === \"number\" ? { expires: cookie.expires } : {}),\n ...(typeof cookie.httpOnly === \"boolean\" ? { httpOnly: cookie.httpOnly } : {}),\n ...(typeof cookie.secure === \"boolean\" ? { secure: cookie.secure } : {}),\n ...(cookie.sameSite ? { sameSite: cookie.sameSite as \"Strict\" | \"Lax\" | \"None\" } : {})\n });\n }\n\n return cookies;\n};\n\nconst resolveCookies = (parsed: CookieImportArgs): CookieRecord[] => {\n const hasInline = typeof parsed.cookies === \"string\";\n const hasFile = typeof parsed.cookiesFile === \"string\";\n\n if (!hasInline && !hasFile) {\n throw createUsageError(\"Missing --cookies or --cookies-file\");\n }\n if (hasInline && hasFile) {\n throw createUsageError(\"Provide only one cookies source: --cookies or --cookies-file.\");\n }\n\n if (hasInline) {\n return parseCookiesJson(parsed.cookies ?? \"\", \"--cookies\");\n }\n\n let raw = \"\";\n try {\n raw = readFileSync(parsed.cookiesFile ?? \"\", \"utf8\");\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unable to read file\";\n throw createUsageError(`Invalid --cookies-file: ${message}`);\n }\n\n if (!raw.trim()) {\n throw createUsageError(\"Invalid JSON from --cookies-file: empty input\");\n }\n\n return parseCookiesJson(raw, \"--cookies-file\");\n};\n\nexport async function runCookieImport(args: ParsedArgs) {\n const parsed = parseCookieImportArgs(args.rawArgs);\n if (!parsed.sessionId) {\n throw createUsageError(\"Missing --session-id\");\n }\n\n const cookies = resolveCookies(parsed);\n const result = await callDaemon(\"session.cookieImport\", {\n sessionId: parsed.sessionId,\n cookies,\n strict: parsed.strict ?? true,\n requestId: parsed.requestId\n });\n\n const imported = typeof (result as { imported?: unknown }).imported === \"number\"\n ? (result as { imported: number }).imported\n : cookies.length;\n\n return {\n success: true,\n message: `Cookies imported: ${imported}`,\n data: result\n };\n}\n\nexport const __test__ = {\n parseCookieImportArgs,\n parseCookiesJson,\n resolveCookies\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,oBAAoB;AAyB7B,IAAM,eAAe,CAAC,OAA2B,SAAyB;AACxE,MAAI,CAAC,OAAO;AACV,UAAM,iBAAiB,qBAAqB,IAAI,EAAE;AAAA,EACpD;AACA,SAAO;AACT;AAEA,IAAM,mBAAmB,CAAC,OAAe,SAA0B;AACjE,QAAM,aAAa,MAAM,KAAK,EAAE,YAAY;AAC5C,MAAI,eAAe,OAAQ,QAAO;AAClC,MAAI,eAAe,QAAS,QAAO;AACnC,QAAM,iBAAiB,WAAW,IAAI,KAAK,KAAK,EAAE;AACpD;AAEA,IAAM,wBAAwB,CAAC,YAAwC;AACrE,QAAM,SAA2B,CAAC;AAElC,WAAS,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS,GAAG;AACtD,UAAM,MAAM,QAAQ,KAAK;AAEzB,QAAI,QAAQ,gBAAgB;AAC1B,aAAO,YAAY,aAAa,QAAQ,QAAQ,CAAC,GAAG,cAAc;AAClE,eAAS;AACT;AAAA,IACF;AACA,QAAI,KAAK,WAAW,eAAe,GAAG;AACpC,aAAO,YAAY,aAAa,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,cAAc;AACpE;AAAA,IACF;AAEA,QAAI,QAAQ,aAAa;AACvB,aAAO,UAAU,aAAa,QAAQ,QAAQ,CAAC,GAAG,WAAW;AAC7D,eAAS;AACT;AAAA,IACF;AACA,QAAI,KAAK,WAAW,YAAY,GAAG;AACjC,aAAO,UAAU,aAAa,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,WAAW;AAC/D;AAAA,IACF;AAEA,QAAI,QAAQ,kBAAkB;AAC5B,aAAO,cAAc,aAAa,QAAQ,QAAQ,CAAC,GAAG,gBAAgB;AACtE,eAAS;AACT;AAAA,IACF;AACA,QAAI,KAAK,WAAW,iBAAiB,GAAG;AACtC,aAAO,cAAc,aAAa,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,gBAAgB;AACxE;AAAA,IACF;AAEA,QAAI,QAAQ,YAAY;AACtB,aAAO,SAAS;AAChB;AAAA,IACF;AACA,QAAI,KAAK,WAAW,WAAW,GAAG;AAChC,aAAO,SAAS,iBAAiB,aAAa,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,UAAU;AAC3F;AAAA,IACF;AAEA,QAAI,QAAQ,gBAAgB;AAC1B,aAAO,YAAY,aAAa,QAAQ,QAAQ,CAAC,GAAG,cAAc;AAClE,eAAS;AACT;AAAA,IACF;AACA,QAAI,KAAK,WAAW,eAAe,GAAG;AACpC,aAAO,YAAY,aAAa,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,cAAc;AACpE;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAM,mBAAmB,CAAC,KAAa,WAAmC;AACxE,MAAI;AACJ,MAAI;AACF,aAAS,KAAK,MAAM,GAAG;AAAA,EACzB,SAAS,OAAO;AACd,UAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU;AACzD,UAAM,iBAAiB,qBAAqB,MAAM,KAAK,OAAO,EAAE;AAAA,EAClE;AAEA,MAAI,CAAC,MAAM,QAAQ,MAAM,GAAG;AAC1B,UAAM,iBAAiB,qBAAqB,MAAM,kBAAkB;AAAA,EACtE;AAEA,QAAM,UAA0B,CAAC;AACjC,aAAW,SAAS,QAAQ;AAC1B,QAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;AAC/D,YAAM,iBAAiB,qBAAqB,MAAM,kCAAkC;AAAA,IACtF;AACA,UAAM,SAAS;AACf,QAAI,OAAO,OAAO,SAAS,YAAY,OAAO,OAAO,UAAU,UAAU;AACvE,YAAM,iBAAiB,qBAAqB,MAAM,8CAA8C;AAAA,IAClG;AACA,QAAI,OAAO,OAAO,aAAa,eAAe,OAAO,aAAa,YAAY,OAAO,aAAa,SAAS,OAAO,aAAa,QAAQ;AACrI,YAAM,iBAAiB,qBAAqB,MAAM,yCAAyC;AAAA,IAC7F;AAEA,YAAQ,KAAK;AAAA,MACX,MAAM,OAAO;AAAA,MACb,OAAO,OAAO;AAAA,MACd,GAAI,OAAO,OAAO,QAAQ,WAAW,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC;AAAA,MAC5D,GAAI,OAAO,OAAO,WAAW,WAAW,EAAE,QAAQ,OAAO,OAAO,IAAI,CAAC;AAAA,MACrE,GAAI,OAAO,OAAO,SAAS,WAAW,EAAE,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,MAC/D,GAAI,OAAO,OAAO,YAAY,WAAW,EAAE,SAAS,OAAO,QAAQ,IAAI,CAAC;AAAA,MACxE,GAAI,OAAO,OAAO,aAAa,YAAY,EAAE,UAAU,OAAO,SAAS,IAAI,CAAC;AAAA,MAC5E,GAAI,OAAO,OAAO,WAAW,YAAY,EAAE,QAAQ,OAAO,OAAO,IAAI,CAAC;AAAA,MACtE,GAAI,OAAO,WAAW,EAAE,UAAU,OAAO,SAAsC,IAAI,CAAC;AAAA,IACtF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEA,IAAM,iBAAiB,CAAC,WAA6C;AACnE,QAAM,YAAY,OAAO,OAAO,YAAY;AAC5C,QAAM,UAAU,OAAO,OAAO,gBAAgB;AAE9C,MAAI,CAAC,aAAa,CAAC,SAAS;AAC1B,UAAM,iBAAiB,qCAAqC;AAAA,EAC9D;AACA,MAAI,aAAa,SAAS;AACxB,UAAM,iBAAiB,+DAA+D;AAAA,EACxF;AAEA,MAAI,WAAW;AACb,WAAO,iBAAiB,OAAO,WAAW,IAAI,WAAW;AAAA,EAC3D;AAEA,MAAI,MAAM;AACV,MAAI;AACF,UAAM,aAAa,OAAO,eAAe,IAAI,MAAM;AAAA,EACrD,SAAS,OAAO;AACd,UAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU;AACzD,UAAM,iBAAiB,2BAA2B,OAAO,EAAE;AAAA,EAC7D;AAEA,MAAI,CAAC,IAAI,KAAK,GAAG;AACf,UAAM,iBAAiB,+CAA+C;AAAA,EACxE;AAEA,SAAO,iBAAiB,KAAK,gBAAgB;AAC/C;AAEA,eAAsB,gBAAgB,MAAkB;AACtD,QAAM,SAAS,sBAAsB,KAAK,OAAO;AACjD,MAAI,CAAC,OAAO,WAAW;AACrB,UAAM,iBAAiB,sBAAsB;AAAA,EAC/C;AAEA,QAAM,UAAU,eAAe,MAAM;AACrC,QAAM,SAAS,MAAM,WAAW,wBAAwB;AAAA,IACtD,WAAW,OAAO;AAAA,IAClB;AAAA,IACA,QAAQ,OAAO,UAAU;AAAA,IACzB,WAAW,OAAO;AAAA,EACpB,CAAC;AAED,QAAM,WAAW,OAAQ,OAAkC,aAAa,WACnE,OAAgC,WACjC,QAAQ;AAEZ,SAAO;AAAA,IACL,SAAS;AAAA,IACT,SAAS,qBAAqB,QAAQ;AAAA,IACtC,MAAM;AAAA,EACR;AACF;AAEO,IAAM,WAAW;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
@@ -0,0 +1,117 @@
1
+ import "./chunk-RJNI3BHT.js";
2
+ import {
3
+ callDaemon
4
+ } from "./chunk-MD655IPO.js";
5
+ import "./chunk-COAOWH3G.js";
6
+ import "./chunk-QOMWCRE3.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-4BEJVZRK.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/session/cookie-list.ts
24
+ var requireValue = (value, flag) => {
25
+ if (!value) {
26
+ throw createUsageError(`Missing value for ${flag}`);
27
+ }
28
+ return value;
29
+ };
30
+ var normalizeCookieUrls = (values) => {
31
+ const normalized = [];
32
+ const seen = /* @__PURE__ */ new Set();
33
+ for (const value of values) {
34
+ const trimmed = value.trim();
35
+ if (!trimmed) {
36
+ continue;
37
+ }
38
+ let parsedUrl;
39
+ try {
40
+ parsedUrl = new URL(trimmed);
41
+ } catch {
42
+ throw createUsageError(`Invalid --url value: ${trimmed}`);
43
+ }
44
+ if (parsedUrl.protocol !== "http:" && parsedUrl.protocol !== "https:") {
45
+ throw createUsageError(`Invalid --url protocol: ${trimmed}`);
46
+ }
47
+ const normalizedUrl = parsedUrl.toString();
48
+ if (seen.has(normalizedUrl)) {
49
+ continue;
50
+ }
51
+ seen.add(normalizedUrl);
52
+ normalized.push(normalizedUrl);
53
+ }
54
+ return normalized;
55
+ };
56
+ var parseCookieListArgs = (rawArgs) => {
57
+ const parsed = { urls: [] };
58
+ for (let index = 0; index < rawArgs.length; index += 1) {
59
+ const arg = rawArgs[index];
60
+ if (arg === "--session-id") {
61
+ parsed.sessionId = requireValue(rawArgs[index + 1], "--session-id");
62
+ index += 1;
63
+ continue;
64
+ }
65
+ if (arg?.startsWith("--session-id=")) {
66
+ parsed.sessionId = requireValue(arg.split("=", 2)[1], "--session-id");
67
+ continue;
68
+ }
69
+ if (arg === "--url") {
70
+ const rawValue = requireValue(rawArgs[index + 1], "--url");
71
+ parsed.urls.push(...rawValue.split(","));
72
+ index += 1;
73
+ continue;
74
+ }
75
+ if (arg?.startsWith("--url=")) {
76
+ parsed.urls.push(...requireValue(arg.split("=", 2)[1], "--url").split(","));
77
+ continue;
78
+ }
79
+ if (arg === "--request-id") {
80
+ parsed.requestId = requireValue(rawArgs[index + 1], "--request-id");
81
+ index += 1;
82
+ continue;
83
+ }
84
+ if (arg?.startsWith("--request-id=")) {
85
+ parsed.requestId = requireValue(arg.split("=", 2)[1], "--request-id");
86
+ continue;
87
+ }
88
+ }
89
+ parsed.urls = normalizeCookieUrls(parsed.urls);
90
+ return parsed;
91
+ };
92
+ async function runCookieList(args) {
93
+ const parsed = parseCookieListArgs(args.rawArgs);
94
+ if (!parsed.sessionId) {
95
+ throw createUsageError("Missing --session-id");
96
+ }
97
+ const result = await callDaemon("session.cookieList", {
98
+ sessionId: parsed.sessionId,
99
+ ...parsed.urls.length > 0 ? { urls: parsed.urls } : {},
100
+ requestId: parsed.requestId
101
+ });
102
+ const count = typeof result.count === "number" ? result.count : Array.isArray(result.cookies) ? result.cookies.length : 0;
103
+ return {
104
+ success: true,
105
+ message: `Cookies listed: ${count}`,
106
+ data: result
107
+ };
108
+ }
109
+ var __test__ = {
110
+ parseCookieListArgs,
111
+ normalizeCookieUrls
112
+ };
113
+ export {
114
+ __test__,
115
+ runCookieList
116
+ };
117
+ //# sourceMappingURL=cookie-list-O2KG6DPU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/session/cookie-list.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\n\ntype CookieListArgs = {\n sessionId?: string;\n urls: string[];\n requestId?: string;\n};\n\nconst requireValue = (value: string | undefined, flag: string): string => {\n if (!value) {\n throw createUsageError(`Missing value for ${flag}`);\n }\n return value;\n};\n\nconst normalizeCookieUrls = (values: string[]): string[] => {\n const normalized: string[] = [];\n const seen = new Set<string>();\n\n for (const value of values) {\n const trimmed = value.trim();\n if (!trimmed) {\n continue;\n }\n\n let parsedUrl: URL;\n try {\n parsedUrl = new URL(trimmed);\n } catch {\n throw createUsageError(`Invalid --url value: ${trimmed}`);\n }\n if (parsedUrl.protocol !== \"http:\" && parsedUrl.protocol !== \"https:\") {\n throw createUsageError(`Invalid --url protocol: ${trimmed}`);\n }\n\n const normalizedUrl = parsedUrl.toString();\n if (seen.has(normalizedUrl)) {\n continue;\n }\n seen.add(normalizedUrl);\n normalized.push(normalizedUrl);\n }\n\n return normalized;\n};\n\nconst parseCookieListArgs = (rawArgs: string[]): CookieListArgs => {\n const parsed: CookieListArgs = { urls: [] };\n\n for (let index = 0; index < rawArgs.length; index += 1) {\n const arg = rawArgs[index];\n\n if (arg === \"--session-id\") {\n parsed.sessionId = requireValue(rawArgs[index + 1], \"--session-id\");\n index += 1;\n continue;\n }\n if (arg?.startsWith(\"--session-id=\")) {\n parsed.sessionId = requireValue(arg.split(\"=\", 2)[1], \"--session-id\");\n continue;\n }\n\n if (arg === \"--url\") {\n const rawValue = requireValue(rawArgs[index + 1], \"--url\");\n parsed.urls.push(...rawValue.split(\",\"));\n index += 1;\n continue;\n }\n if (arg?.startsWith(\"--url=\")) {\n parsed.urls.push(...requireValue(arg.split(\"=\", 2)[1], \"--url\").split(\",\"));\n continue;\n }\n\n if (arg === \"--request-id\") {\n parsed.requestId = requireValue(rawArgs[index + 1], \"--request-id\");\n index += 1;\n continue;\n }\n if (arg?.startsWith(\"--request-id=\")) {\n parsed.requestId = requireValue(arg.split(\"=\", 2)[1], \"--request-id\");\n continue;\n }\n }\n\n parsed.urls = normalizeCookieUrls(parsed.urls);\n return parsed;\n};\n\nexport async function runCookieList(args: ParsedArgs) {\n const parsed = parseCookieListArgs(args.rawArgs);\n if (!parsed.sessionId) {\n throw createUsageError(\"Missing --session-id\");\n }\n\n const result = await callDaemon(\"session.cookieList\", {\n sessionId: parsed.sessionId,\n ...(parsed.urls.length > 0 ? { urls: parsed.urls } : {}),\n requestId: parsed.requestId\n });\n\n const count = typeof (result as { count?: unknown }).count === \"number\"\n ? (result as { count: number }).count\n : Array.isArray((result as { cookies?: unknown[] }).cookies)\n ? (result as { cookies: unknown[] }).cookies.length\n : 0;\n\n return {\n success: true,\n message: `Cookies listed: ${count}`,\n data: result\n };\n}\n\nexport const __test__ = {\n parseCookieListArgs,\n normalizeCookieUrls\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAUA,IAAM,eAAe,CAAC,OAA2B,SAAyB;AACxE,MAAI,CAAC,OAAO;AACV,UAAM,iBAAiB,qBAAqB,IAAI,EAAE;AAAA,EACpD;AACA,SAAO;AACT;AAEA,IAAM,sBAAsB,CAAC,WAA+B;AAC1D,QAAM,aAAuB,CAAC;AAC9B,QAAM,OAAO,oBAAI,IAAY;AAE7B,aAAW,SAAS,QAAQ;AAC1B,UAAM,UAAU,MAAM,KAAK;AAC3B,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AAEA,QAAI;AACJ,QAAI;AACF,kBAAY,IAAI,IAAI,OAAO;AAAA,IAC7B,QAAQ;AACN,YAAM,iBAAiB,wBAAwB,OAAO,EAAE;AAAA,IAC1D;AACA,QAAI,UAAU,aAAa,WAAW,UAAU,aAAa,UAAU;AACrE,YAAM,iBAAiB,2BAA2B,OAAO,EAAE;AAAA,IAC7D;AAEA,UAAM,gBAAgB,UAAU,SAAS;AACzC,QAAI,KAAK,IAAI,aAAa,GAAG;AAC3B;AAAA,IACF;AACA,SAAK,IAAI,aAAa;AACtB,eAAW,KAAK,aAAa;AAAA,EAC/B;AAEA,SAAO;AACT;AAEA,IAAM,sBAAsB,CAAC,YAAsC;AACjE,QAAM,SAAyB,EAAE,MAAM,CAAC,EAAE;AAE1C,WAAS,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS,GAAG;AACtD,UAAM,MAAM,QAAQ,KAAK;AAEzB,QAAI,QAAQ,gBAAgB;AAC1B,aAAO,YAAY,aAAa,QAAQ,QAAQ,CAAC,GAAG,cAAc;AAClE,eAAS;AACT;AAAA,IACF;AACA,QAAI,KAAK,WAAW,eAAe,GAAG;AACpC,aAAO,YAAY,aAAa,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,cAAc;AACpE;AAAA,IACF;AAEA,QAAI,QAAQ,SAAS;AACnB,YAAM,WAAW,aAAa,QAAQ,QAAQ,CAAC,GAAG,OAAO;AACzD,aAAO,KAAK,KAAK,GAAG,SAAS,MAAM,GAAG,CAAC;AACvC,eAAS;AACT;AAAA,IACF;AACA,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,aAAO,KAAK,KAAK,GAAG,aAAa,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,GAAG,CAAC;AAC1E;AAAA,IACF;AAEA,QAAI,QAAQ,gBAAgB;AAC1B,aAAO,YAAY,aAAa,QAAQ,QAAQ,CAAC,GAAG,cAAc;AAClE,eAAS;AACT;AAAA,IACF;AACA,QAAI,KAAK,WAAW,eAAe,GAAG;AACpC,aAAO,YAAY,aAAa,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,cAAc;AACpE;AAAA,IACF;AAAA,EACF;AAEA,SAAO,OAAO,oBAAoB,OAAO,IAAI;AAC7C,SAAO;AACT;AAEA,eAAsB,cAAc,MAAkB;AACpD,QAAM,SAAS,oBAAoB,KAAK,OAAO;AAC/C,MAAI,CAAC,OAAO,WAAW;AACrB,UAAM,iBAAiB,sBAAsB;AAAA,EAC/C;AAEA,QAAM,SAAS,MAAM,WAAW,sBAAsB;AAAA,IACpD,WAAW,OAAO;AAAA,IAClB,GAAI,OAAO,KAAK,SAAS,IAAI,EAAE,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,IACtD,WAAW,OAAO;AAAA,EACpB,CAAC;AAED,QAAM,QAAQ,OAAQ,OAA+B,UAAU,WAC1D,OAA6B,QAC9B,MAAM,QAAS,OAAmC,OAAO,IACtD,OAAkC,QAAQ,SAC3C;AAEN,SAAO;AAAA,IACL,SAAS;AAAA,IACT,SAAS,mBAAmB,KAAK;AAAA,IACjC,MAAM;AAAA,EACR;AACF;AAEO,IAAM,WAAW;AAAA,EACtB;AAAA,EACA;AACF;","names":[]}
@@ -0,0 +1,194 @@
1
+ import {
2
+ STABLE_DAEMON_INSTALL_GUIDANCE,
3
+ getAutostartStatus,
4
+ installAutostart,
5
+ isTransientAutostartInstallError,
6
+ uninstallAutostart
7
+ } from "./chunk-WOXBLP7V.js";
8
+ import {
9
+ DEFAULT_DAEMON_STATUS_FETCH_OPTIONS,
10
+ createDaemonStopHeaders,
11
+ fetchDaemonStatusFromMetadata,
12
+ fetchWithTimeout,
13
+ readDaemonMetadata
14
+ } from "./chunk-COAOWH3G.js";
15
+ import "./chunk-QOMWCRE3.js";
16
+ import "./chunk-MX3NFLCE.js";
17
+ import "./chunk-ASMHEEKY.js";
18
+ import {
19
+ EXIT_DISCONNECTED,
20
+ EXIT_EXECUTION,
21
+ createUsageError
22
+ } from "./chunk-IPE7TF2P.js";
23
+ import "./chunk-STGGGVYT.js";
24
+ import "./chunk-3ILXPKSJ.js";
25
+ import "./chunk-TBUCZX4A.js";
26
+ import "./chunk-Y2KL55OG.js";
27
+ import "./chunk-5SWZDVOW.js";
28
+ import "./chunk-4BEJVZRK.js";
29
+ import "./chunk-S5KZQJJI.js";
30
+ import "./chunk-KZ2IXVQT.js";
31
+ import "./chunk-WHQZBUNY.js";
32
+ import "./chunk-FUSXMW3G.js";
33
+
34
+ // src/cli/commands/daemon.ts
35
+ var parseDaemonArgs = (rawArgs) => {
36
+ const subcommand = rawArgs[0];
37
+ if (subcommand === "install" || subcommand === "uninstall" || subcommand === "status") {
38
+ return { subcommand };
39
+ }
40
+ throw createUsageError("Usage: opendevbrowser daemon <install|uninstall|status>");
41
+ };
42
+ var stopDaemonIfRunning = async () => {
43
+ const metadata = readDaemonMetadata();
44
+ if (!metadata) {
45
+ return { outcome: "not_running" };
46
+ }
47
+ try {
48
+ const response = await fetchWithTimeout(`http://127.0.0.1:${metadata.port}/stop`, {
49
+ method: "POST",
50
+ headers: createDaemonStopHeaders(metadata.token, "daemon.uninstall")
51
+ });
52
+ if (response.status === 409) {
53
+ return { outcome: "fingerprint_rejected", pid: metadata.pid, port: metadata.port };
54
+ }
55
+ return response.ok ? { outcome: "stopped", pid: metadata.pid, port: metadata.port } : { outcome: "failed", pid: metadata.pid, port: metadata.port, status: response.status };
56
+ } catch (error) {
57
+ return {
58
+ outcome: "failed",
59
+ pid: metadata.pid,
60
+ port: metadata.port,
61
+ error: error instanceof Error ? error.message : String(error)
62
+ };
63
+ }
64
+ };
65
+ var buildStopFailureMessage = (stop) => {
66
+ const target = stop.port ? `127.0.0.1:${stop.port}` : "recorded daemon";
67
+ const pid = stop.pid ? ` pid=${stop.pid}` : "";
68
+ if (stop.outcome === "fingerprint_rejected") {
69
+ return `Daemon autostart removed, but the running daemon at ${target}${pid} rejected the stop request as stale. Run \`opendevbrowser status --daemon\` to inspect it and restart from the current install if needed.`;
70
+ }
71
+ const reason = stop.error ?? (stop.status ? `HTTP ${stop.status}` : "unknown error");
72
+ return `Daemon autostart removed, but stopping ${target}${pid} failed (${reason}).`;
73
+ };
74
+ var shouldFailUninstallStop = (stop) => {
75
+ if (stop.outcome === "stopped" || stop.outcome === "not_running") {
76
+ return false;
77
+ }
78
+ return true;
79
+ };
80
+ var formatReason = (reason) => {
81
+ return reason ? reason.replace(/_/g, " ") : "unknown reason";
82
+ };
83
+ var buildStableAutostartGuidance = (action) => {
84
+ return `${STABLE_DAEMON_INSTALL_GUIDANCE.replace(/\.$/, "")} to ${action} it.`;
85
+ };
86
+ var describeAutostartLocation = (autostart) => {
87
+ if (autostart.location) {
88
+ return ` at ${autostart.location}`;
89
+ }
90
+ if (autostart.taskName) {
91
+ return ` (${autostart.taskName})`;
92
+ }
93
+ return "";
94
+ };
95
+ var buildStatusMessage = (autostart, running) => {
96
+ const runningText = running ? "running" : "not running";
97
+ if (!autostart.supported) {
98
+ return `Daemon autostart is not supported on ${autostart.platform}. Daemon is ${runningText}.`;
99
+ }
100
+ const location = describeAutostartLocation(autostart);
101
+ if (autostart.health === "healthy") {
102
+ return `Autostart is installed and healthy${location}. Daemon is ${runningText}.`;
103
+ }
104
+ if (autostart.health === "missing") {
105
+ return `Autostart is not installed${location}. ${buildStableAutostartGuidance("install")} Daemon is ${runningText}.`;
106
+ }
107
+ if (autostart.health === "needs_repair") {
108
+ return `Autostart is installed${location} but needs repair (${formatReason(autostart.reason)}). ${buildStableAutostartGuidance("repair")} Daemon is ${runningText}.`;
109
+ }
110
+ if (autostart.health === "malformed") {
111
+ return `Autostart exists${location} but is malformed (${formatReason(autostart.reason)}). ${buildStableAutostartGuidance("repair")} Daemon is ${runningText}.`;
112
+ }
113
+ return `Daemon autostart is not supported on ${autostart.platform}. Daemon is ${runningText}.`;
114
+ };
115
+ async function runDaemonCommand(args) {
116
+ const { subcommand } = parseDaemonArgs(args.rawArgs);
117
+ if (subcommand === "install") {
118
+ let result;
119
+ try {
120
+ result = installAutostart();
121
+ } catch (error) {
122
+ const message2 = error instanceof Error ? error.message : String(error);
123
+ return {
124
+ success: false,
125
+ message: isTransientAutostartInstallError(error) ? message2 : `Daemon autostart install failed: ${message2}`,
126
+ exitCode: EXIT_EXECUTION
127
+ };
128
+ }
129
+ if (!result.supported) {
130
+ return {
131
+ success: false,
132
+ message: `Daemon autostart is not supported on ${result.platform}.`,
133
+ data: result,
134
+ exitCode: EXIT_EXECUTION
135
+ };
136
+ }
137
+ return {
138
+ success: true,
139
+ message: `Daemon autostart installed (${result.platform}).`,
140
+ data: result
141
+ };
142
+ }
143
+ if (subcommand === "uninstall") {
144
+ const result = uninstallAutostart();
145
+ if (!result.supported) {
146
+ return {
147
+ success: false,
148
+ message: `Daemon autostart is not supported on ${result.platform}.`,
149
+ data: result,
150
+ exitCode: EXIT_EXECUTION
151
+ };
152
+ }
153
+ const stop = await stopDaemonIfRunning();
154
+ if (shouldFailUninstallStop(stop)) {
155
+ return {
156
+ success: false,
157
+ message: buildStopFailureMessage(stop),
158
+ data: { ...result, stop },
159
+ exitCode: EXIT_EXECUTION
160
+ };
161
+ }
162
+ return {
163
+ success: true,
164
+ message: `Daemon autostart removed (${result.platform}).`,
165
+ data: result
166
+ };
167
+ }
168
+ const autostart = getAutostartStatus();
169
+ const daemonStatus = await fetchDaemonStatusFromMetadata(void 0, DEFAULT_DAEMON_STATUS_FETCH_OPTIONS);
170
+ const running = Boolean(daemonStatus);
171
+ const message = buildStatusMessage(autostart, running);
172
+ const data = {
173
+ installed: autostart.installed,
174
+ running,
175
+ autostart: autostart.supported ? autostart : void 0
176
+ };
177
+ if (!running) {
178
+ return {
179
+ success: false,
180
+ message,
181
+ data,
182
+ exitCode: EXIT_DISCONNECTED
183
+ };
184
+ }
185
+ return {
186
+ success: true,
187
+ message,
188
+ data: { ...data, status: daemonStatus }
189
+ };
190
+ }
191
+ export {
192
+ runDaemonCommand
193
+ };
194
+ //# sourceMappingURL=daemon-2BSAZXLT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/daemon.ts"],"sourcesContent":["import type { ParsedArgs } from \"../args\";\nimport { createUsageError, EXIT_DISCONNECTED, EXIT_EXECUTION } from \"../errors\";\nimport { fetchDaemonStatusFromMetadata } from \"../daemon-status\";\nimport { DEFAULT_DAEMON_STATUS_FETCH_OPTIONS } from \"../daemon-status-policy\";\nimport { createDaemonStopHeaders, readDaemonMetadata } from \"../daemon\";\nimport { fetchWithTimeout } from \"../utils/http\";\nimport {\n getAutostartStatus,\n installAutostart,\n isTransientAutostartInstallError,\n STABLE_DAEMON_INSTALL_GUIDANCE,\n uninstallAutostart\n} from \"../daemon-autostart\";\n\ntype DaemonSubcommand = \"install\" | \"uninstall\" | \"status\";\n\ntype DaemonResult = {\n installed: boolean;\n running: boolean;\n autostart?: ReturnType<typeof getAutostartStatus>;\n status?: Awaited<ReturnType<typeof fetchDaemonStatusFromMetadata>>;\n};\n\ntype StopDaemonResult = {\n outcome: \"stopped\" | \"not_running\" | \"fingerprint_rejected\" | \"failed\";\n pid?: number;\n port?: number;\n status?: number;\n error?: string;\n};\n\nconst parseDaemonArgs = (rawArgs: string[]): { subcommand: DaemonSubcommand } => {\n const subcommand = rawArgs[0];\n if (subcommand === \"install\" || subcommand === \"uninstall\" || subcommand === \"status\") {\n return { subcommand };\n }\n throw createUsageError(\"Usage: opendevbrowser daemon <install|uninstall|status>\");\n};\n\nconst stopDaemonIfRunning = async (): Promise<StopDaemonResult> => {\n const metadata = readDaemonMetadata();\n if (!metadata) {\n return { outcome: \"not_running\" };\n }\n try {\n const response = await fetchWithTimeout(`http://127.0.0.1:${metadata.port}/stop`, {\n method: \"POST\",\n headers: createDaemonStopHeaders(metadata.token, \"daemon.uninstall\")\n });\n if (response.status === 409) {\n return { outcome: \"fingerprint_rejected\", pid: metadata.pid, port: metadata.port };\n }\n return response.ok\n ? { outcome: \"stopped\", pid: metadata.pid, port: metadata.port }\n : { outcome: \"failed\", pid: metadata.pid, port: metadata.port, status: response.status };\n } catch (error) {\n return {\n outcome: \"failed\",\n pid: metadata.pid,\n port: metadata.port,\n error: error instanceof Error ? error.message : String(error)\n };\n }\n};\n\nconst buildStopFailureMessage = (stop: StopDaemonResult): string => {\n const target = stop.port ? `127.0.0.1:${stop.port}` : \"recorded daemon\";\n const pid = stop.pid ? ` pid=${stop.pid}` : \"\";\n if (stop.outcome === \"fingerprint_rejected\") {\n return `Daemon autostart removed, but the running daemon at ${target}${pid} rejected the stop request as stale. Run \\`opendevbrowser status --daemon\\` to inspect it and restart from the current install if needed.`;\n }\n const reason = stop.error ?? (stop.status ? `HTTP ${stop.status}` : \"unknown error\");\n return `Daemon autostart removed, but stopping ${target}${pid} failed (${reason}).`;\n};\n\nconst shouldFailUninstallStop = (stop: StopDaemonResult): boolean => {\n if (stop.outcome === \"stopped\" || stop.outcome === \"not_running\") {\n return false;\n }\n return true;\n};\n\nconst formatReason = (reason?: ReturnType<typeof getAutostartStatus>[\"reason\"]): string => {\n return reason ? reason.replace(/_/g, \" \") : \"unknown reason\";\n};\n\nconst buildStableAutostartGuidance = (action: \"install\" | \"repair\"): string => {\n return `${STABLE_DAEMON_INSTALL_GUIDANCE.replace(/\\.$/, \"\")} to ${action} it.`;\n};\n\nconst describeAutostartLocation = (autostart: ReturnType<typeof getAutostartStatus>): string => {\n if (autostart.location) {\n return ` at ${autostart.location}`;\n }\n if (autostart.taskName) {\n return ` (${autostart.taskName})`;\n }\n return \"\";\n};\n\nconst buildStatusMessage = (autostart: ReturnType<typeof getAutostartStatus>, running: boolean): string => {\n const runningText = running ? \"running\" : \"not running\";\n\n if (!autostart.supported) {\n return `Daemon autostart is not supported on ${autostart.platform}. Daemon is ${runningText}.`;\n }\n\n const location = describeAutostartLocation(autostart);\n\n if (autostart.health === \"healthy\") {\n return `Autostart is installed and healthy${location}. Daemon is ${runningText}.`;\n }\n\n if (autostart.health === \"missing\") {\n return `Autostart is not installed${location}. ${buildStableAutostartGuidance(\"install\")} Daemon is ${runningText}.`;\n }\n\n if (autostart.health === \"needs_repair\") {\n return `Autostart is installed${location} but needs repair (${formatReason(autostart.reason)}). ${buildStableAutostartGuidance(\"repair\")} Daemon is ${runningText}.`;\n }\n\n if (autostart.health === \"malformed\") {\n return `Autostart exists${location} but is malformed (${formatReason(autostart.reason)}). ${buildStableAutostartGuidance(\"repair\")} Daemon is ${runningText}.`;\n }\n\n return `Daemon autostart is not supported on ${autostart.platform}. Daemon is ${runningText}.`;\n};\n\nexport async function runDaemonCommand(args: ParsedArgs) {\n const { subcommand } = parseDaemonArgs(args.rawArgs);\n\n if (subcommand === \"install\") {\n let result;\n try {\n result = installAutostart();\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n success: false,\n message: isTransientAutostartInstallError(error)\n ? message\n : `Daemon autostart install failed: ${message}`,\n exitCode: EXIT_EXECUTION\n };\n }\n if (!result.supported) {\n return {\n success: false,\n message: `Daemon autostart is not supported on ${result.platform}.`,\n data: result,\n exitCode: EXIT_EXECUTION\n };\n }\n return {\n success: true,\n message: `Daemon autostart installed (${result.platform}).`,\n data: result\n };\n }\n\n if (subcommand === \"uninstall\") {\n const result = uninstallAutostart();\n if (!result.supported) {\n return {\n success: false,\n message: `Daemon autostart is not supported on ${result.platform}.`,\n data: result,\n exitCode: EXIT_EXECUTION\n };\n }\n const stop = await stopDaemonIfRunning();\n if (shouldFailUninstallStop(stop)) {\n return {\n success: false,\n message: buildStopFailureMessage(stop),\n data: { ...result, stop },\n exitCode: EXIT_EXECUTION\n };\n }\n return {\n success: true,\n message: `Daemon autostart removed (${result.platform}).`,\n data: result\n };\n }\n\n const autostart = getAutostartStatus();\n const daemonStatus = await fetchDaemonStatusFromMetadata(undefined, DEFAULT_DAEMON_STATUS_FETCH_OPTIONS);\n const running = Boolean(daemonStatus);\n const message = buildStatusMessage(autostart, running);\n const data: DaemonResult = {\n installed: autostart.installed,\n running,\n autostart: autostart.supported ? autostart : undefined\n };\n\n if (!running) {\n return {\n success: false,\n message,\n data,\n exitCode: EXIT_DISCONNECTED\n };\n }\n\n return {\n success: true,\n message,\n data: { ...data, status: daemonStatus }\n };\n}\n"],"mappings":"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","names":["message"]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "fingerprint": "d0bd0c8c4867d5f75a4f0fbc8c1aa03e06c2c4f82c13a8b8ef063d5d0be6e389"
2
+ "fingerprint": "be4b9f112bb82851413a2bd3c33936cdbf779e56144cdfc3b823354265189810"
3
3
  }