autohand-cli 0.8.3 → 0.9.1

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 (546) hide show
  1. package/README.md +191 -74
  2. package/dist/{AgentRegistry-ODDXPAFR.js → AgentRegistry-GOV7FN2O.js} +2 -2
  3. package/dist/AgentRegistry-J2C6JBZ3.cjs +10 -0
  4. package/dist/{AutomodeManager-EOVHGRPP.js → AutomodeManager-APLLPEYJ.js} +31 -17
  5. package/dist/{AutomodeManager-6ATBE7Q5.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
  6. package/dist/CommunitySkillsCache-22BB3J6H.cjs +8 -0
  7. package/dist/{CommunitySkillsCache-QLE57BN5.js → CommunitySkillsCache-ZACDPD4J.js} +2 -2
  8. package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
  9. package/dist/{GitHubRegistryFetcher-NT5GFZXS.js → GitHubRegistryFetcher-J2BWPXJF.js} +1 -1
  10. package/dist/{HookManager-B2F35M27.js → HookManager-2S6AHOC3.js} +1 -1
  11. package/dist/{HookManager-PFAFE3FK.cjs → HookManager-TVEQI5ZU.cjs} +2 -2
  12. package/dist/{ImportWizard-OHRKBANZ.js → ImportWizard-AEBMAKXE.js} +33 -9
  13. package/dist/{ImportWizard-CJRZPPHL.cjs → ImportWizard-AF2XL6DS.cjs} +37 -13
  14. package/dist/LearnAdvisor-KKEQ5QCV.js +9 -0
  15. package/dist/LearnAdvisor-Q7RAYLPF.cjs +9 -0
  16. package/dist/{McpClientManager-NQ3EW2IF.cjs → McpClientManager-BNSKLHIN.cjs} +2 -2
  17. package/dist/{McpClientManager-VBIMGKXU.js → McpClientManager-SL35BR24.js} +1 -1
  18. package/dist/MemoryManager-PMNAEZMB.cjs +8 -0
  19. package/dist/{MemoryManager-2LAT7IHS.js → MemoryManager-QZRLTUB5.js} +2 -2
  20. package/dist/NVIDIAProvider-C3FWQOBZ.cjs +14 -0
  21. package/dist/NVIDIAProvider-SJPY3ONR.js +14 -0
  22. package/dist/{PermissionManager-7NQHRCHY.js → PermissionManager-MT7KBNNR.js} +3 -3
  23. package/dist/PermissionManager-URCNP5EC.cjs +11 -0
  24. package/dist/{ProjectProfiler-UG42W6WD.cjs → ProjectProfiler-CDAE7ECW.cjs} +1 -0
  25. package/dist/{ProjectProfiler-P4QJQWWA.js → ProjectProfiler-NZTJDRHD.js} +1 -0
  26. package/dist/ProviderFactory-56N3ECE4.cjs +12 -0
  27. package/dist/{ProviderFactory-2IYJ5OPW.js → ProviderFactory-RB4RVAF6.js} +4 -1
  28. package/dist/SessionManager-2IZGWASQ.cjs +10 -0
  29. package/dist/{SessionManager-4U4JFQ3C.js → SessionManager-554PHVPC.js} +2 -2
  30. package/dist/SkillsRegistry-GMRVONOQ.cjs +9 -0
  31. package/dist/{SkillsRegistry-RFEINXRT.js → SkillsRegistry-NHHMIUYJ.js} +2 -2
  32. package/dist/SubAgent-4GOR2FIJ.js +13 -0
  33. package/dist/SubAgent-ZJMDH4FI.cjs +13 -0
  34. package/dist/{SyncApiClient-B5RT2ECG.js → SyncApiClient-G3FM65IV.js} +1 -1
  35. package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
  36. package/dist/about-3USFSGOH.js +15 -0
  37. package/dist/about-QR52U5DD.cjs +15 -0
  38. package/dist/acp-5Y2W6OZP.js +1556 -0
  39. package/dist/acp-GSYE75OB.cjs +1556 -0
  40. package/dist/actionExecutor-KHUU3Z3Q.cjs +28 -0
  41. package/dist/actionExecutor-PLQJZLZV.js +28 -0
  42. package/dist/add-dir-BTAD5OZS.cjs +11 -0
  43. package/dist/{add-dir-TUJM3PG5.js → add-dir-HCERJDBR.js} +3 -2
  44. package/dist/agent-B3EVT7NN.cjs +126 -0
  45. package/dist/agent-SATQ3WZ3.js +126 -0
  46. package/dist/agents/builtin/code-cleaner.md +1 -1
  47. package/dist/agents/builtin/docs-writer.md +1 -1
  48. package/dist/agents/builtin/researcher.md +2 -2
  49. package/dist/agents/builtin/reviewer.md +1 -1
  50. package/dist/agents/builtin/tester.md +1 -1
  51. package/dist/agents/builtin/todo-resolver.md +1 -1
  52. package/dist/agents-44CRJGM7.cjs +18 -0
  53. package/dist/agents-NN4ZAJ7R.js +18 -0
  54. package/dist/agents-new-6D6G4QS6.cjs +17 -0
  55. package/dist/agents-new-7GAQ25EK.js +17 -0
  56. package/dist/{autoSkill-LQEVQFIH.js → autoSkill-66PKCYTW.js} +2 -2
  57. package/dist/autoSkill-VQLGBELN.cjs +20 -0
  58. package/dist/automode-45DWV4TN.cjs +10 -0
  59. package/dist/{automode-R6P3VHLS.js → automode-BUF3VGXU.js} +2 -2
  60. package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
  61. package/dist/browserToolBridge-F5N66PE7.js +58 -0
  62. package/dist/chrome-Q2U73HZB.cjs +50 -0
  63. package/dist/chrome-Q54OALOK.cjs +21 -0
  64. package/dist/chrome-Y3T7EIHG.js +50 -0
  65. package/dist/chrome-ZNJ46OYW.js +21 -0
  66. package/dist/chromeSkill-53TH55PM.js +105 -0
  67. package/dist/chromeSkill-THW7N4IY.cjs +105 -0
  68. package/dist/{chunk-HXGBSJL5.cjs → chunk-22SCR3EV.cjs} +2 -2
  69. package/dist/chunk-26G7YGOW.js +367 -0
  70. package/dist/{chunk-3L53OA4E.cjs → chunk-2ESQR35E.cjs} +10 -10
  71. package/dist/chunk-2H5O745H.js +63 -0
  72. package/dist/{chunk-ULDM2SNB.js → chunk-2IW5YFJ4.js} +48 -47
  73. package/dist/{chunk-U55TWFJI.cjs → chunk-2VHB43IX.cjs} +24 -6
  74. package/dist/chunk-3EDDDZS2.cjs +5 -0
  75. package/dist/{chunk-X5VSP65C.cjs → chunk-3ICORF7M.cjs} +4 -4
  76. package/dist/chunk-3OF56EMA.cjs +197 -0
  77. package/dist/chunk-3UC6DMFI.cjs +93 -0
  78. package/dist/{chunk-64H4FRM3.cjs → chunk-3UHRCHKB.cjs} +32 -34
  79. package/dist/{chunk-JCLYQ2JC.js → chunk-3ZOOH44N.js} +12 -6
  80. package/dist/{chunk-TUD3Z3BD.js → chunk-44ZWOBTI.js} +136 -55
  81. package/dist/chunk-4567QNRB.js +444 -0
  82. package/dist/chunk-45CHNQM6.cjs +517 -0
  83. package/dist/chunk-46MTALKD.js +44 -0
  84. package/dist/{chunk-WHE2SWHU.js → chunk-4E7SHPNQ.js} +2 -2
  85. package/dist/chunk-4LMUDS2K.js +124 -0
  86. package/dist/{chunk-W7RYQJLO.cjs → chunk-4XFHP2SN.cjs} +46 -15
  87. package/dist/chunk-4XVLNOFA.js +360 -0
  88. package/dist/{chunk-GBHDROGL.js → chunk-575PXZX7.js} +16 -4
  89. package/dist/chunk-5A7ZL64N.js +139 -0
  90. package/dist/chunk-5GCQ5UMV.cjs +85 -0
  91. package/dist/chunk-5JTTM5SC.js +59 -0
  92. package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
  93. package/dist/{chunk-KLWJIPU2.cjs → chunk-5SFV2NCY.cjs} +20 -16
  94. package/dist/chunk-5ZNYX4VH.cjs +71 -0
  95. package/dist/{chunk-A4IJHHV7.cjs → chunk-63ANVAOJ.cjs} +52 -11
  96. package/dist/{chunk-MYISNQH4.js → chunk-65LRPW5W.js} +1 -1
  97. package/dist/chunk-6AYJCDTA.js +360 -0
  98. package/dist/{chunk-X2MSVKDV.js → chunk-6HF6XSCC.js} +2 -2
  99. package/dist/{chunk-AEJH23FO.cjs → chunk-6JWCGQJU.cjs} +6 -6
  100. package/dist/chunk-6OECOAK5.cjs +360 -0
  101. package/dist/chunk-6R25D2H5.js +121 -0
  102. package/dist/chunk-7DJJGKM6.js +77 -0
  103. package/dist/{chunk-VG34MG2U.js → chunk-7IRQ7JEH.js} +9 -6
  104. package/dist/chunk-7MY4JHER.js +27 -0
  105. package/dist/chunk-7PJKTSRN.js +152 -0
  106. package/dist/{chunk-SKYG33B2.cjs → chunk-7PT646AL.cjs} +3 -3
  107. package/dist/chunk-7WAUCLLQ.js +229 -0
  108. package/dist/{chunk-U46VYPLR.cjs → chunk-7XTUL7ZD.cjs} +9 -9
  109. package/dist/chunk-AE2ILW25.cjs +152 -0
  110. package/dist/{chunk-T2M64VHA.cjs → chunk-AOKXYGBQ.cjs} +61 -41
  111. package/dist/chunk-AQ5PVHOC.cjs +113 -0
  112. package/dist/{chunk-N2BLVUPM.cjs → chunk-AZ47LKD5.cjs} +3 -3
  113. package/dist/chunk-B4HSNOIH.cjs +354 -0
  114. package/dist/chunk-B76FJKEJ.cjs +184 -0
  115. package/dist/chunk-BP37FVBM.js +85 -0
  116. package/dist/chunk-BQU3HAE7.js +21 -0
  117. package/dist/chunk-BYE7RQFZ.cjs +121 -0
  118. package/dist/chunk-C46B72VK.js +1034 -0
  119. package/dist/{chunk-HIVRCQS2.js → chunk-C5QIQQ37.js} +56 -25
  120. package/dist/chunk-CCIDL4SA.js +19931 -0
  121. package/dist/{chunk-XVUHNWMX.js → chunk-CECH6QQP.js} +17 -19
  122. package/dist/chunk-CFAWTLSC.js +13 -0
  123. package/dist/{chunk-ZYQMLKOK.cjs → chunk-CK4HAHVY.cjs} +212 -70
  124. package/dist/chunk-CO2AADYU.cjs +360 -0
  125. package/dist/chunk-CRTCZ4WL.cjs +19931 -0
  126. package/dist/chunk-CSTUTDTH.js +75 -0
  127. package/dist/{chunk-K2C56QGS.cjs → chunk-D546G7DA.cjs} +1650 -479
  128. package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
  129. package/dist/{chunk-G4CAKI3V.js → chunk-DGBPWODD.js} +7 -2
  130. package/dist/chunk-DHUQZ53B.cjs +29 -0
  131. package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
  132. package/dist/{chunk-5K6NGAVM.js → chunk-DNSD7DVJ.js} +67 -52
  133. package/dist/{chunk-RDF37HKB.cjs → chunk-DSSCERHI.cjs} +3 -2
  134. package/dist/{chunk-NAJ4IZKD.cjs → chunk-EA2MS25U.cjs} +8 -6
  135. package/dist/{chunk-SJAVBCOA.js → chunk-EEHWALXA.js} +94 -3
  136. package/dist/chunk-ES2HJQ4N.js +37 -0
  137. package/dist/{chunk-G27PQQFD.js → chunk-EYHKL4QC.js} +1 -1
  138. package/dist/{chunk-SV2WA57F.js → chunk-FBQJZKFX.js} +38 -15
  139. package/dist/chunk-FFBDRUO5.cjs +59 -0
  140. package/dist/{chunk-N7LI55V4.js → chunk-FFHSCM5M.js} +15 -8
  141. package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
  142. package/dist/chunk-FQVG6ZHF.js +197 -0
  143. package/dist/{chunk-J2GSFVUV.cjs → chunk-GAOPJ5S3.cjs} +74 -59
  144. package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
  145. package/dist/chunk-GSDV75A5.js +715 -0
  146. package/dist/chunk-GWY26SUD.cjs +63 -0
  147. package/dist/{chunk-TUAITHWL.js → chunk-H426KOGY.js} +2 -1
  148. package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
  149. package/dist/chunk-HC2Q6A3E.cjs +4967 -0
  150. package/dist/{chunk-3WVJEL7K.cjs → chunk-HDK2EHVH.cjs} +3 -1
  151. package/dist/{chunk-5IXII4HX.cjs → chunk-HG3ZASBH.cjs} +23 -16
  152. package/dist/chunk-HK5A54AV.cjs +280 -0
  153. package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
  154. package/dist/chunk-HSWWM6AM.js +2340 -0
  155. package/dist/chunk-HTU4W3GB.js +183 -0
  156. package/dist/{chunk-HLHTG5ZU.cjs → chunk-HVCIB4SW.cjs} +14 -12
  157. package/dist/chunk-HXHE2KAO.js +385 -0
  158. package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
  159. package/dist/{chunk-SLQAYV3W.js → chunk-HZWU6IO3.js} +11 -2
  160. package/dist/chunk-I2ZK3AOD.js +866 -0
  161. package/dist/chunk-IEPLQ47J.js +719 -0
  162. package/dist/chunk-J5HE6CUM.cjs +124 -0
  163. package/dist/{chunk-LIEXWM2M.js → chunk-JAQO6XDB.js} +19 -1
  164. package/dist/chunk-JB3JCYBJ.js +113 -0
  165. package/dist/chunk-JCUHCH37.cjs +247 -0
  166. package/dist/{chunk-FPHU2ES6.cjs → chunk-JM3ZTQUK.cjs} +19 -9
  167. package/dist/{chunk-NDMIPTV4.js → chunk-JMJRFSNJ.js} +8 -3
  168. package/dist/{chunk-ZLSGXMGQ.js → chunk-JMN3GZU6.js} +2 -0
  169. package/dist/chunk-JPFRI4L4.js +4967 -0
  170. package/dist/{chunk-BVKXEQVG.cjs → chunk-JV5HVCHU.cjs} +22 -10
  171. package/dist/chunk-KA2U6MY2.js +388 -0
  172. package/dist/{chunk-SEKD5FH3.cjs → chunk-KASXKDF2.cjs} +8 -3
  173. package/dist/chunk-KJ26T7GM.cjs +367 -0
  174. package/dist/chunk-KM7R5YPS.cjs +385 -0
  175. package/dist/{chunk-MBBY4ZIK.js → chunk-KMP6Y3LJ.js} +4 -1
  176. package/dist/chunk-KWXGDSYT.js +184 -0
  177. package/dist/{chunk-C5IJIM2V.cjs → chunk-L46OUKW5.cjs} +68 -37
  178. package/dist/{chunk-6UJMCWRY.js → chunk-L6OH44HL.js} +19 -9
  179. package/dist/chunk-LANGD5CO.js +280 -0
  180. package/dist/{chunk-APIXPPMT.js → chunk-LEZEWKPA.js} +1004 -39
  181. package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
  182. package/dist/chunk-LJD7KR3L.cjs +44 -0
  183. package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
  184. package/dist/{chunk-QXH5RCFI.js → chunk-M5DK524Z.js} +2 -2
  185. package/dist/chunk-M7B7RRBK.cjs +1034 -0
  186. package/dist/chunk-MANJ67D3.js +3897 -0
  187. package/dist/{chunk-HPHJ73GU.cjs → chunk-MGNXABSU.cjs} +9 -9
  188. package/dist/{chunk-6ZCULLCA.js → chunk-MMKZSJUN.js} +1 -1
  189. package/dist/{chunk-DVUHHH3B.cjs → chunk-MQQH4XQH.cjs} +4 -4
  190. package/dist/chunk-MUNUUFU7.cjs +21 -0
  191. package/dist/{chunk-DVZOENQ7.cjs → chunk-MZN6JBRZ.cjs} +9 -4
  192. package/dist/{chunk-OOKY3HPZ.js → chunk-NB6M6ESM.js} +50 -9
  193. package/dist/{chunk-BYONM7UM.js → chunk-NBGOIFKP.js} +265 -18
  194. package/dist/chunk-NHWHEW7M.cjs +75 -0
  195. package/dist/chunk-NQZH5CR2.cjs +468 -0
  196. package/dist/{chunk-EGPXJERY.cjs → chunk-NV6LCD2I.cjs} +119 -28
  197. package/dist/chunk-NVATU4V6.cjs +44 -0
  198. package/dist/{chunk-YZXUDM5X.js → chunk-NZ3ZWLUW.js} +204 -62
  199. package/dist/chunk-NZ7GCK7Y.cjs +92 -0
  200. package/dist/{chunk-VEKDGU2Q.cjs → chunk-NZQFKXM3.cjs} +49 -25
  201. package/dist/chunk-O5GI6SR3.js +59 -0
  202. package/dist/{chunk-56SWIDEL.cjs → chunk-OCATAKXV.cjs} +57 -56
  203. package/dist/{chunk-SKV2F3NM.js → chunk-OIGYWOL6.js} +1 -1
  204. package/dist/{chunk-IFFXSTOM.cjs → chunk-ONVYXTUT.cjs} +3 -3
  205. package/dist/chunk-OR67YXQK.cjs +13 -0
  206. package/dist/chunk-OV3T5MUH.cjs +715 -0
  207. package/dist/{chunk-OHUZKDGX.js → chunk-P4FUTSVK.js} +3 -3
  208. package/dist/chunk-P6SLT2F4.cjs +139 -0
  209. package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
  210. package/dist/chunk-PCM3N3CL.cjs +37 -0
  211. package/dist/{chunk-2AA5MFES.js → chunk-PGFLPURU.js} +8 -5
  212. package/dist/{chunk-DJDE4DTT.cjs → chunk-PIXQ2AVM.cjs} +25 -19
  213. package/dist/chunk-PNIAIOMZ.cjs +229 -0
  214. package/dist/{chunk-HTLINWX6.cjs → chunk-PQBYFEBL.cjs} +16 -13
  215. package/dist/{chunk-22D2CNTP.cjs → chunk-PSAH4ZQB.cjs} +5 -2
  216. package/dist/{chunk-3VTAFAL2.js → chunk-PTTZI4QZ.js} +16 -12
  217. package/dist/{chunk-WPVWQSL7.cjs → chunk-PY73W5MQ.cjs} +16 -13
  218. package/dist/{chunk-EGMZDTSL.js → chunk-PZZMIYII.js} +10 -2
  219. package/dist/{chunk-HBZU3RBZ.js → chunk-Q3BS6FPM.js} +34 -10
  220. package/dist/chunk-QBYGMMDD.js +517 -0
  221. package/dist/chunk-QLZOMZO5.cjs +388 -0
  222. package/dist/{chunk-ADUFCS4Q.cjs → chunk-QQ64HEHP.cjs} +160 -79
  223. package/dist/{chunk-L3TWPROA.js → chunk-QRQF3556.js} +44 -24
  224. package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
  225. package/dist/chunk-RAKO7UN7.js +114 -0
  226. package/dist/{chunk-7TQH3CL4.cjs → chunk-RBXBH6EB.cjs} +78 -35
  227. package/dist/chunk-RFUKZIJF.cjs +78 -0
  228. package/dist/chunk-RS2E32YB.js +71 -0
  229. package/dist/{chunk-OLSBBZW6.cjs → chunk-S5JNQIGL.cjs} +5 -5
  230. package/dist/{chunk-FTYY5JJD.js → chunk-S5QKRA2V.js} +2 -2
  231. package/dist/chunk-SD3NTC7D.cjs +77 -0
  232. package/dist/{chunk-KPELYZ6L.js → chunk-SDLY4X3G.js} +2 -2
  233. package/dist/{chunk-IDFF5J2E.js → chunk-SFFEKZGC.js} +38 -7
  234. package/dist/{chunk-EGFT4PGW.js → chunk-SHRLFX6F.js} +8 -3
  235. package/dist/{chunk-3WICOC33.js → chunk-SNDDZG5H.js} +124 -84
  236. package/dist/{chunk-CZXGCVTR.cjs → chunk-SOVR7S3T.cjs} +2 -2
  237. package/dist/chunk-SPQ7QIQ6.js +78 -0
  238. package/dist/{chunk-XRZEUWKF.js → chunk-SRMGWMQO.js} +1 -1
  239. package/dist/{chunk-R33VKSH5.cjs → chunk-SVVP4UUZ.cjs} +11 -11
  240. package/dist/{chunk-7BTSG4ME.cjs → chunk-SY2P3Z5W.cjs} +1004 -39
  241. package/dist/chunk-SZD45IDG.js +468 -0
  242. package/dist/{chunk-3O3MOK5C.cjs → chunk-TE4SYTWR.cjs} +1114 -142
  243. package/dist/chunk-TH26BQJG.js +101 -0
  244. package/dist/{chunk-QNGEW5TC.js → chunk-TR6NECEZ.js} +1 -1
  245. package/dist/{chunk-YGN4CQIP.js → chunk-TYBPTKFT.js} +1 -1
  246. package/dist/{chunk-GJH7XMSK.js → chunk-U2QUMKCB.js} +8 -6
  247. package/dist/{chunk-47CKWKEX.cjs → chunk-U6PLSPMD.cjs} +9 -4
  248. package/dist/chunk-UOQECODR.js +34 -0
  249. package/dist/chunk-UR27UDTB.js +354 -0
  250. package/dist/chunk-UWZ4G3SQ.js +93 -0
  251. package/dist/{chunk-Y72HH2TF.cjs → chunk-V3SZLWEQ.cjs} +33 -24
  252. package/dist/chunk-V4HGZSKQ.cjs +183 -0
  253. package/dist/{chunk-3PDTTAKJ.js → chunk-V5ELP2XE.js} +19 -12
  254. package/dist/{chunk-3K2ESU53.cjs → chunk-VKOXFT4L.cjs} +2 -2
  255. package/dist/{chunk-XTB6VJVQ.cjs → chunk-VLGGMQUN.cjs} +6 -6
  256. package/dist/chunk-VQHSYAPZ.cjs +3897 -0
  257. package/dist/chunk-VUGOOGHB.js +400 -0
  258. package/dist/chunk-W5QLA6WP.cjs +866 -0
  259. package/dist/chunk-WBU4Q4GS.cjs +400 -0
  260. package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
  261. package/dist/chunk-WJYFLQ7G.cjs +27 -0
  262. package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
  263. package/dist/{chunk-ZSPXQYG2.js → chunk-WNJXIACY.js} +7 -5
  264. package/dist/{chunk-AYS2ASM7.js → chunk-WPE2XHVX.js} +1 -1
  265. package/dist/chunk-WTB7AFL6.cjs +101 -0
  266. package/dist/{chunk-JYTDYJVW.js → chunk-X3TI5TJJ.js} +1 -1
  267. package/dist/chunk-X5P6QQOB.cjs +719 -0
  268. package/dist/{chunk-245KJE5Y.cjs → chunk-X7XMITIL.cjs} +14 -6
  269. package/dist/chunk-XF2WIKHR.cjs +34 -0
  270. package/dist/{chunk-DV2ZHK7B.cjs → chunk-XNIMSVS6.cjs} +49 -26
  271. package/dist/chunk-XW3XCK4E.cjs +59 -0
  272. package/dist/{chunk-N23UAW4I.js → chunk-XZVDYC5U.js} +7 -2
  273. package/dist/chunk-Y5BDE24P.cjs +444 -0
  274. package/dist/{chunk-NAGQ2PDC.js → chunk-YC5OBZQU.js} +1604 -433
  275. package/dist/chunk-YISPVAXO.cjs +2340 -0
  276. package/dist/{chunk-KQGPTCQJ.js → chunk-YQDI753V.js} +68 -25
  277. package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
  278. package/dist/{chunk-NNPAM4HC.cjs → chunk-YWH55BWK.cjs} +15 -6
  279. package/dist/{chunk-X2YOZQIP.cjs → chunk-YWTIXHU6.cjs} +266 -19
  280. package/dist/{chunk-XX2ZO7DS.js → chunk-YXM6SA7P.js} +25 -16
  281. package/dist/chunk-YZWE7XSM.js +5 -0
  282. package/dist/chunk-ZASDSY7P.cjs +114 -0
  283. package/dist/{chunk-2UC22DJU.js → chunk-ZNGRLCFQ.js} +30 -4
  284. package/dist/{chunk-KANW6OYC.cjs → chunk-ZNYZB7XY.cjs} +34 -8
  285. package/dist/{chunk-NA6WQDYW.js → chunk-ZPLCAXJW.js} +1088 -116
  286. package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
  287. package/dist/chunk-ZUYYHKQA.js +44 -0
  288. package/dist/clear-QJXU25IF.cjs +12 -0
  289. package/dist/{clear-A3N4GK2S.js → clear-Y5TO3RZA.js} +3 -3
  290. package/dist/communityInstaller-LXMVKVAV.cjs +22 -0
  291. package/dist/{communityInstaller-LOP2EDH5.js → communityInstaller-RVL4STPS.js} +8 -5
  292. package/dist/completion-JX4T2ONW.cjs +17 -0
  293. package/dist/completion-SE3XYG74.js +17 -0
  294. package/dist/config-3224PRW4.cjs +21 -0
  295. package/dist/{config-HPJPKTO6.js → config-7KPHKFTP.js} +7 -4
  296. package/dist/{constants-LISJW3DD.js → constants-EJFAWJQI.js} +1 -1
  297. package/dist/constants-MCCGUU5F.cjs +21 -0
  298. package/dist/{defaultHooks-IHSJR2AX.cjs → defaultHooks-2V2CQL63.cjs} +25 -10
  299. package/dist/{defaultHooks-KUKHK3AG.js → defaultHooks-TMHDU3FS.js} +25 -10
  300. package/dist/export-BJVIDZC4.js +15 -0
  301. package/dist/export-KU4557HK.cjs +15 -0
  302. package/dist/feature-K3LG5IJP.cjs +14 -0
  303. package/dist/feature-V4JF5TNJ.js +14 -0
  304. package/dist/features-5OJTLKS7.js +23 -0
  305. package/dist/features-VCBJQXCX.cjs +23 -0
  306. package/dist/feedback-D4437VE4.js +18 -0
  307. package/dist/feedback-VZPEHGFY.cjs +18 -0
  308. package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
  309. package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
  310. package/dist/{filesystem-Z7BWAWMZ.js → filesystem-L6DQKGWK.js} +3 -2
  311. package/dist/filesystem-PGUPCMVK.cjs +11 -0
  312. package/dist/go-X4E6BCD6.js +12 -0
  313. package/dist/go-XREVFS5I.cjs +12 -0
  314. package/dist/goal-4M3J6JS2.cjs +16 -0
  315. package/dist/goal-EI66BV7W.js +16 -0
  316. package/dist/help-GGFS7WHY.cjs +12 -0
  317. package/dist/{help-GFQXNZOK.js → help-MLIROWKM.js} +2 -2
  318. package/dist/{history-E3N6BJP7.js → history-GQJ6RZD6.js} +2 -2
  319. package/dist/history-J4LUIOSI.cjs +14 -0
  320. package/dist/hooks-FSRIUS6A.cjs +18 -0
  321. package/dist/hooks-PPFHCF7T.js +18 -0
  322. package/dist/i18n-CI6VFXL5.cjs +33 -0
  323. package/dist/{i18n-SY7QRM22.js → i18n-Q7UZJRPL.js} +1 -1
  324. package/dist/ide-BUSVE54P.js +15 -0
  325. package/dist/ide-YR27BPGM.cjs +15 -0
  326. package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
  327. package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
  328. package/dist/{import-W7SVLSTC.js → import-3VBKI6BN.js} +3 -3
  329. package/dist/{import-ADI37ZUR.cjs → import-C7S6UJMW.cjs} +3 -3
  330. package/dist/import-DBK4OCDF.cjs +10 -0
  331. package/dist/{import-KGKKZ3B7.js → import-U47DXCA7.js} +2 -2
  332. package/dist/index.cjs +837 -23011
  333. package/dist/index.d.cts +95 -0
  334. package/dist/index.d.ts +95 -0
  335. package/dist/index.js +864 -23038
  336. package/dist/init-OXTYS72D.cjs +10 -0
  337. package/dist/{init-7MFK626E.js → init-Q2O4R42R.js} +2 -2
  338. package/dist/inkMode-VUE6ZDLD.cjs +7 -0
  339. package/dist/inkMode-WBNFOSAT.js +7 -0
  340. package/dist/inputPrompt-3CFZDUBH.js +90 -0
  341. package/dist/inputPrompt-JMACL4EB.cjs +90 -0
  342. package/dist/language-EK3M6UBV.cjs +22 -0
  343. package/dist/language-Q3RUGGOW.js +22 -0
  344. package/dist/learn-3DSX7DYG.cjs +23 -0
  345. package/dist/learn-OPOH5L43.js +23 -0
  346. package/dist/login-GST7MWXJ.cjs +27 -0
  347. package/dist/login-Q7DZKAX4.js +27 -0
  348. package/dist/logout-2G7OUK7I.cjs +24 -0
  349. package/dist/logout-FNBBL2UI.js +24 -0
  350. package/dist/mcp-AH3MMUBU.js +21 -0
  351. package/dist/mcp-DW7R63IB.cjs +21 -0
  352. package/dist/{mcp-install-2FEROZTL.js → mcp-install-222PCKSW.js} +18 -10
  353. package/dist/{mcp-install-WM6BQRI5.cjs → mcp-install-IA4ZS2SV.cjs} +22 -14
  354. package/dist/memory-6NX3DAIY.cjs +10 -0
  355. package/dist/{memory-J73WZH2I.js → memory-VB46T5H3.js} +2 -2
  356. package/dist/model-64NAELFS.cjs +10 -0
  357. package/dist/{model-AES267IN.js → model-SJJG64AM.js} +2 -2
  358. package/dist/new-DU5SOOOY.cjs +12 -0
  359. package/dist/{new-5CLF3MKH.js → new-ERZ5C6CN.js} +3 -3
  360. package/dist/onboarding-2U2BV2KE.cjs +36 -0
  361. package/dist/onboarding-ZQXMPSMJ.js +36 -0
  362. package/dist/permissions-7ACNFK7A.js +10 -0
  363. package/dist/permissions-GSNNV7RJ.cjs +10 -0
  364. package/dist/plan-XEJMOT55.cjs +13 -0
  365. package/dist/{plan-65HMS5HQ.js → plan-YYUAXPTL.js} +3 -1
  366. package/dist/pr-review-CW6J7P62.cjs +9 -0
  367. package/dist/pr-review-YZSBQVT2.js +9 -0
  368. package/dist/{quit-XDZYRSPU.js → quit-WY6T267G.js} +2 -2
  369. package/dist/quit-XIRE2KRE.cjs +10 -0
  370. package/dist/rawMode-6W5AXAKI.cjs +7 -0
  371. package/dist/rawMode-GFNLXQPU.js +7 -0
  372. package/dist/{registry-PTHWERKC.js → registry-4DXUDKJN.js} +29 -44
  373. package/dist/{registry-IVT4G2RT.cjs → registry-UEO3ETZ7.cjs} +65 -80
  374. package/dist/repeat-P4FAPE3Y.cjs +17 -0
  375. package/dist/{repeat-EVCWUL6Z.js → repeat-RALE6AUO.js} +7 -3
  376. package/dist/resume-RQZ3WXBP.cjs +17 -0
  377. package/dist/resume-XSXZMDMD.js +17 -0
  378. package/dist/review-QHP2KP4Q.js +9 -0
  379. package/dist/review-UWHWQHCB.cjs +9 -0
  380. package/dist/ripgrep-67SCU2BA.cjs +9 -0
  381. package/dist/ripgrep-VHJQQ55W.js +9 -0
  382. package/dist/rpc-XH7QLN4H.js +3874 -0
  383. package/dist/rpc-YF54T7JU.cjs +3874 -0
  384. package/dist/search-VXXFGZWU.cjs +21 -0
  385. package/dist/search-YAWGX7P7.js +21 -0
  386. package/dist/{sessions-6GWEBMKS.js → sessions-NJYHJOEL.js} +2 -2
  387. package/dist/sessions-OSG3UJEZ.cjs +10 -0
  388. package/dist/settings-SO2UIGWV.cjs +42 -0
  389. package/dist/settings-ZXUQH3DO.js +42 -0
  390. package/dist/setup-KG7EGKF5.js +30 -0
  391. package/dist/setup-RSOPCQ57.cjs +30 -0
  392. package/dist/share-WFAGZ5PY.js +17 -0
  393. package/dist/share-ZU3SGACF.cjs +17 -0
  394. package/dist/skills-KBVAQAD2.cjs +29 -0
  395. package/dist/skills-NBTNDVAY.js +29 -0
  396. package/dist/{skills-ZZCIAS7C.js → skills-OB6RDW7D.js} +10 -7
  397. package/dist/{skills-PG542VEB.cjs → skills-ZROBG3RZ.cjs} +13 -10
  398. package/dist/{skills-install-SRC3Z2MS.js → skills-install-BHTIEMKH.js} +21 -70
  399. package/dist/{skills-install-67DOBPJC.cjs → skills-install-ILX6QVEF.cjs} +34 -83
  400. package/dist/skills-new-B45VQ2PP.cjs +18 -0
  401. package/dist/skills-new-YMRP2HNO.js +18 -0
  402. package/dist/slashCommands-53VYIBJU.js +105 -0
  403. package/dist/slashCommands-BG2RGGZ6.cjs +105 -0
  404. package/dist/status-CQ2IUOVK.cjs +24 -0
  405. package/dist/status-E7IGNVPC.js +24 -0
  406. package/dist/summarizer-DGPHE5IQ.js +17 -0
  407. package/dist/summarizer-JNXLUAQG.cjs +17 -0
  408. package/dist/sync-7C25MOT2.js +22 -0
  409. package/dist/{sync-VU2NSJ4O.js → sync-OCJN4ZSO.js} +3 -3
  410. package/dist/sync-XRP46IVG.cjs +40 -0
  411. package/dist/sync-ZMFVE7T4.cjs +22 -0
  412. package/dist/{teammate-SXRVXNQV.cjs → teammate-D77B6QRT.cjs} +31 -9
  413. package/dist/{teammate-SD26GR37.js → teammate-EZCMHOIL.js} +30 -8
  414. package/dist/templates-ARG2VRWW.cjs +11 -0
  415. package/dist/templates-UGVZV3KJ.js +11 -0
  416. package/dist/theme-KKRDE6P7.cjs +22 -0
  417. package/dist/theme-XF7XIWBQ.js +22 -0
  418. package/dist/tools-3PPTTKFV.js +9 -0
  419. package/dist/tools-THIQA7WC.cjs +9 -0
  420. package/dist/ui/questionModal.cjs +8 -5
  421. package/dist/ui/questionModal.js +7 -4
  422. package/dist/{undo-OL2EDBRY.js → undo-GNUTFXCW.js} +2 -2
  423. package/dist/undo-U4KN7QQM.cjs +10 -0
  424. package/dist/usage-QSTNSDAO.js +24 -0
  425. package/dist/usage-YDEMQBNQ.cjs +24 -0
  426. package/dist/web-3BA2WV37.cjs +37 -0
  427. package/dist/web-6FYGBX5K.js +37 -0
  428. package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
  429. package/dist/workspaceSafety-XOUMUBVB.js +9 -0
  430. package/dist/yolo-GF2YD7ZI.js +9 -0
  431. package/dist/yolo-OGDA7HNC.cjs +9 -0
  432. package/dist/yoloMode-3DJDA75U.cjs +17 -0
  433. package/dist/yoloMode-4JOOSU26.js +17 -0
  434. package/package.json +51 -49
  435. package/dist/AgentRegistry-HRPN6ZOF.cjs +0 -10
  436. package/dist/CommunitySkillsCache-KE435RAR.cjs +0 -8
  437. package/dist/GitHubRegistryFetcher-I45SESIL.cjs +0 -7
  438. package/dist/LearnAdvisor-FLBA6FDD.js +0 -9
  439. package/dist/LearnAdvisor-GG3CXQF3.cjs +0 -9
  440. package/dist/MemoryManager-2LQPIYVE.cjs +0 -8
  441. package/dist/PermissionManager-X57BXHJ6.cjs +0 -11
  442. package/dist/ProviderFactory-KPJOGQWF.cjs +0 -9
  443. package/dist/SessionManager-YBJAZXNO.cjs +0 -10
  444. package/dist/SkillsRegistry-7O72A6TZ.cjs +0 -9
  445. package/dist/SubAgent-JT4HZHN7.js +0 -11
  446. package/dist/SubAgent-VPNYDWAU.cjs +0 -11
  447. package/dist/SyncApiClient-HQXJL5BT.cjs +0 -11
  448. package/dist/about-4DB5KTHW.js +0 -12
  449. package/dist/about-LXAOXZFT.cjs +0 -12
  450. package/dist/actionExecutor-23JB2WUC.js +0 -19
  451. package/dist/actionExecutor-X5UEZSKH.cjs +0 -19
  452. package/dist/add-dir-YC37DMSF.cjs +0 -10
  453. package/dist/agents-YF3BSUU5.js +0 -12
  454. package/dist/agents-ZOUHPMYR.cjs +0 -12
  455. package/dist/agents-new-HSH4GQPG.js +0 -14
  456. package/dist/agents-new-VYUDOCE7.cjs +0 -14
  457. package/dist/autoSkill-X5W52WOE.cjs +0 -20
  458. package/dist/automode-SJGM7VEI.cjs +0 -10
  459. package/dist/chunk-ALYU6VTM.js +0 -105
  460. package/dist/chunk-B53A2NM2.js +0 -2030
  461. package/dist/chunk-BJXSNT46.js +0 -100
  462. package/dist/chunk-CB4E2T5N.cjs +0 -312
  463. package/dist/chunk-DNUOXBHL.js +0 -539
  464. package/dist/chunk-EFX2QSZX.cjs +0 -33
  465. package/dist/chunk-GCXYXLRA.cjs +0 -111
  466. package/dist/chunk-H2ZRHQQV.js +0 -33
  467. package/dist/chunk-HNRPK5MY.cjs +0 -85
  468. package/dist/chunk-HVKOZ2VP.cjs +0 -115
  469. package/dist/chunk-JJLYWH5Y.cjs +0 -100
  470. package/dist/chunk-LWUJFGOZ.js +0 -115
  471. package/dist/chunk-MERYP6AM.cjs +0 -539
  472. package/dist/chunk-MZAPWNAC.cjs +0 -207
  473. package/dist/chunk-NTSDP2WB.js +0 -226
  474. package/dist/chunk-OUZQXMHL.cjs +0 -226
  475. package/dist/chunk-PGESAU2W.cjs +0 -2030
  476. package/dist/chunk-SYVYLZZF.cjs +0 -24
  477. package/dist/chunk-SZOLA6FR.js +0 -111
  478. package/dist/chunk-VWDHR4HV.js +0 -168
  479. package/dist/chunk-Y45G6ZO5.cjs +0 -168
  480. package/dist/chunk-YRLYSQEQ.cjs +0 -105
  481. package/dist/chunk-ZYVS43MU.js +0 -312
  482. package/dist/clear-GK4IEUUS.cjs +0 -12
  483. package/dist/communityInstaller-XXC7RLE4.cjs +0 -19
  484. package/dist/completion-HWABSAEL.js +0 -14
  485. package/dist/completion-IUUVQG4D.cjs +0 -14
  486. package/dist/config-HF7WOLZF.cjs +0 -18
  487. package/dist/constants-PEO3P2SJ.cjs +0 -21
  488. package/dist/export-QJAV2FCZ.js +0 -12
  489. package/dist/export-XSRFXGWU.cjs +0 -12
  490. package/dist/feedback-4TCIL3ML.cjs +0 -15
  491. package/dist/feedback-SJ6VVEY3.js +0 -15
  492. package/dist/filesystem-W56QZUJF.cjs +0 -10
  493. package/dist/help-ISBVQL3S.cjs +0 -12
  494. package/dist/history-XQ4GTSFU.cjs +0 -14
  495. package/dist/hooks-CJNKJ5PF.js +0 -13
  496. package/dist/hooks-UTMBTAXT.cjs +0 -13
  497. package/dist/i18n-N7QQ7A5M.cjs +0 -33
  498. package/dist/ide-RTA4UJV4.js +0 -12
  499. package/dist/ide-VWVOLIFF.cjs +0 -12
  500. package/dist/immediateCommandRouter-BW34JNXL.js +0 -9
  501. package/dist/immediateCommandRouter-SHOVNB5X.cjs +0 -9
  502. package/dist/import-ZLJVONXH.cjs +0 -10
  503. package/dist/init-TBKAB4LZ.cjs +0 -10
  504. package/dist/language-MDSHEXHB.cjs +0 -18
  505. package/dist/language-PXTQSHIG.js +0 -18
  506. package/dist/learn-623TW5EK.cjs +0 -20
  507. package/dist/learn-BCPV7GM2.js +0 -20
  508. package/dist/localProjectPermissions-BHQXEWZJ.cjs +0 -18
  509. package/dist/localProjectPermissions-GMOUYQM6.js +0 -18
  510. package/dist/login-QMVEETWJ.js +0 -20
  511. package/dist/login-QYMXAL3K.cjs +0 -20
  512. package/dist/logout-2CMTDAOJ.js +0 -18
  513. package/dist/logout-ZOHVZAUK.cjs +0 -18
  514. package/dist/mcp-IUVKK65S.js +0 -18
  515. package/dist/mcp-TXC7PYG3.cjs +0 -18
  516. package/dist/memory-WRIHDEPK.cjs +0 -10
  517. package/dist/model-RLP75SF5.cjs +0 -10
  518. package/dist/new-HLSFL6A4.cjs +0 -12
  519. package/dist/permissions-GP6FTGZ2.js +0 -13
  520. package/dist/permissions-O6EKKPOG.cjs +0 -13
  521. package/dist/plan-MCAXDIM2.cjs +0 -11
  522. package/dist/quit-TQX6GXA5.cjs +0 -10
  523. package/dist/repeat-BSPS5TWD.cjs +0 -13
  524. package/dist/resume-2GOPDLL4.cjs +0 -13
  525. package/dist/resume-37IUVDA6.js +0 -13
  526. package/dist/search-7KUSHIBL.cjs +0 -17
  527. package/dist/search-OJGDRIMA.js +0 -17
  528. package/dist/sessions-CYYCHSQG.cjs +0 -10
  529. package/dist/settings-2D7CAO66.cjs +0 -30
  530. package/dist/settings-BXR6SBJP.js +0 -30
  531. package/dist/share-BXQY5IQU.js +0 -14
  532. package/dist/share-OSFXZBGS.cjs +0 -14
  533. package/dist/skills-FL6O6AOM.cjs +0 -26
  534. package/dist/skills-PNKQZRNK.js +0 -26
  535. package/dist/skills-new-XFMEHHIF.cjs +0 -15
  536. package/dist/skills-new-ZNZPHUKS.js +0 -15
  537. package/dist/slashCommands-LLCNPK3X.js +0 -76
  538. package/dist/slashCommands-RXZZS6RE.cjs +0 -76
  539. package/dist/status-BCECUJXT.cjs +0 -11
  540. package/dist/status-EFO7MQU3.js +0 -11
  541. package/dist/sync-IJYJ6KKM.js +0 -18
  542. package/dist/sync-LFT6SBPF.cjs +0 -18
  543. package/dist/sync-U7SDPBNZ.cjs +0 -40
  544. package/dist/theme-AWBHSG7J.cjs +0 -18
  545. package/dist/theme-TQLBPJ2E.js +0 -18
  546. package/dist/undo-IBBGP7A2.cjs +0 -10
@@ -0,0 +1,152 @@
1
+ import {
2
+ buildChromeOpenUrl,
3
+ createBrowserHandoff,
4
+ detectExtensionProfile,
5
+ ensureNativeHostInstalled,
6
+ getManifestTarget,
7
+ hasActiveHandoff,
8
+ openChromeContinuation
9
+ } from "./chunk-GSDV75A5.js";
10
+ import {
11
+ showModal
12
+ } from "./chunk-NZ3ZWLUW.js";
13
+ import {
14
+ saveConfig
15
+ } from "./chunk-IEPLQ47J.js";
16
+
17
+ // src/commands/chrome.ts
18
+ import chalk from "chalk";
19
+ import fs from "fs-extra";
20
+ var metadata = {
21
+ command: "/chrome",
22
+ description: "continue the current session in the Autohand Chrome extension",
23
+ implemented: true
24
+ };
25
+ async function withModalPause(ctx, fn) {
26
+ await ctx.onBeforeModal?.();
27
+ try {
28
+ return await fn();
29
+ } finally {
30
+ await ctx.onAfterModal?.();
31
+ }
32
+ }
33
+ async function chrome(ctx, args = []) {
34
+ const subcommand = args[0]?.toLowerCase();
35
+ if (subcommand === "disconnect") {
36
+ if (!ctx.config) return "Config not available.";
37
+ const chromeConfig = ctx.config.chrome ?? {};
38
+ chromeConfig.enabledByDefault = false;
39
+ ctx.config.chrome = chromeConfig;
40
+ await saveConfig(ctx.config);
41
+ return `${chalk.green("\u2713")} Browser bridge disconnected and disabled.`;
42
+ }
43
+ const currentSession = ctx.sessionManager.getCurrentSession();
44
+ const sessionId = currentSession?.metadata.sessionId;
45
+ if (!sessionId) {
46
+ return "No active session. Start a task first, then run /chrome.";
47
+ }
48
+ const extensionId = ctx.config?.chrome?.extensionId;
49
+ const nativeHostInstalled = await fs.pathExists(getManifestTarget("chrome").manifestPath);
50
+ let extensionDetected = false;
51
+ if (extensionId) {
52
+ extensionDetected = await detectExtensionProfile(extensionId) !== null;
53
+ }
54
+ const nativeHostReady = ensureNativeHostInstalled({ extensionId }).catch(() => {
55
+ });
56
+ const activeHandoff = await hasActiveHandoff();
57
+ let connectionLabel;
58
+ if (activeHandoff) {
59
+ connectionLabel = chalk.green("Handoff pending");
60
+ } else if (nativeHostInstalled && extensionDetected) {
61
+ connectionLabel = chalk.green("Extension ready");
62
+ } else if (nativeHostInstalled) {
63
+ connectionLabel = chalk.yellow("Native host installed");
64
+ } else {
65
+ connectionLabel = chalk.red("Not installed");
66
+ }
67
+ const statusLabel = nativeHostInstalled ? "Ready" : "Disabled";
68
+ const extLabel = nativeHostInstalled ? extensionDetected ? chalk.green("Installed") : chalk.yellow("Native host only") : chalk.red("Not installed");
69
+ let selected = null;
70
+ let isReshow = false;
71
+ while (true) {
72
+ const enabledByDefault = ctx.config?.chrome?.enabledByDefault ? "Yes" : "No";
73
+ const options = [
74
+ { label: "Open in Chrome", value: "open", description: "Hand off session and open browser" },
75
+ { label: "Manage permissions", value: "permissions", description: "Open extension settings page" },
76
+ { label: "Reconnect extension", value: "reconnect", description: "Reinstall native messaging host" },
77
+ { label: `Enabled by default: ${enabledByDefault}`, value: "toggle", description: "Start browser bridge with the CLI" }
78
+ ];
79
+ const title = [
80
+ chalk.yellow.bold("Autohand in Chrome (Beta)"),
81
+ "",
82
+ "Autohand in Chrome works with the extension to control your browser",
83
+ "from the CLI. Navigate, fill forms, capture screenshots, and debug.",
84
+ "",
85
+ `Connection: ${connectionLabel}`,
86
+ `Status: ${statusLabel}`,
87
+ `Extension: ${extLabel}`,
88
+ "",
89
+ `Usage: ${chalk.yellow("autohand --chrome")} or ${chalk.yellow("autohand --no-chrome")}`,
90
+ "",
91
+ "Site-level permissions are inherited from the Chrome extension.",
92
+ `Learn more: ${chalk.gray("https://autohand.ai/docs/chrome")}`
93
+ ].join("\n");
94
+ if (isReshow) {
95
+ const titleLines = title.split("\n").length;
96
+ const optionLines = options.length * 2;
97
+ const chrome2 = 1;
98
+ const totalLines = titleLines + optionLines + chrome2 + 3;
99
+ process.stdout.write(`\x1B[${totalLines}A\x1B[0J`);
100
+ }
101
+ selected = await withModalPause(
102
+ ctx,
103
+ () => showModal({ title, options, initialIndex: isReshow ? 3 : void 0 })
104
+ );
105
+ if (!selected) return null;
106
+ if (selected.value === "toggle" && ctx.config) {
107
+ const chromeConfig = ctx.config.chrome ?? {};
108
+ chromeConfig.enabledByDefault = !chromeConfig.enabledByDefault;
109
+ ctx.config.chrome = chromeConfig;
110
+ await saveConfig(ctx.config);
111
+ isReshow = true;
112
+ continue;
113
+ }
114
+ break;
115
+ }
116
+ switch (selected.value) {
117
+ case "open": {
118
+ await nativeHostReady;
119
+ await createBrowserHandoff({
120
+ sessionId,
121
+ workspaceRoot: ctx.workspaceRoot,
122
+ extensionId,
123
+ installUrl: ctx.config?.chrome?.installUrl
124
+ });
125
+ await openChromeContinuation(
126
+ buildChromeOpenUrl({ installUrl: ctx.config?.chrome?.installUrl }),
127
+ ctx.config?.chrome?.browser ?? "auto",
128
+ { userDataDir: ctx.config?.chrome?.userDataDir, profileDirectory: ctx.config?.chrome?.profileDirectory }
129
+ );
130
+ return `${chalk.green("\u2713")} Opened Chrome. Side panel ${chalk.gray("(Cmd+E)")} to continue.
131
+ Session: ${chalk.gray(sessionId)}`;
132
+ }
133
+ case "permissions": {
134
+ return "Open the Chrome extension options page to manage permissions.";
135
+ }
136
+ case "reconnect": {
137
+ await nativeHostReady;
138
+ return `${chalk.green("\u2713")} Native messaging host reinstalled. Open the Chrome side panel manually if needed.`;
139
+ }
140
+ }
141
+ return null;
142
+ }
143
+
144
+ export {
145
+ metadata,
146
+ chrome
147
+ };
148
+ /**
149
+ * @license
150
+ * Copyright 2026 Autohand AI LLC
151
+ * SPDX-License-Identifier: Apache-2.0
152
+ */
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkZYQMLKOKcjs = require('./chunk-ZYQMLKOK.cjs');
3
+ var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
4
4
 
5
5
  // src/commands/completion.ts
6
6
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -311,7 +311,7 @@ async function execute(args) {
311
311
  { label: "Zsh", value: "zsh" },
312
312
  { label: "Fish", value: "fish" }
313
313
  ];
314
- const shellResult = await _chunkZYQMLKOKcjs.showModal.call(void 0, {
314
+ const shellResult = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
315
315
  title: "Select your shell:",
316
316
  options: shellOptions,
317
317
  initialIndex: shellOptions.findIndex((o) => o.value === (detected || "bash"))
@@ -327,7 +327,7 @@ async function execute(args) {
327
327
  { label: "Install completion to default location", value: "install" },
328
328
  { label: "Show installation instructions", value: "instructions" }
329
329
  ];
330
- const actionResult = await _chunkZYQMLKOKcjs.showModal.call(void 0, {
330
+ const actionResult = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
331
331
  title: "What would you like to do?",
332
332
  options: actionOptions
333
333
  });
@@ -0,0 +1,229 @@
1
+ import {
2
+ AutoReportManager
3
+ } from "./chunk-C46B72VK.js";
4
+ import {
5
+ package_default
6
+ } from "./chunk-JB3JCYBJ.js";
7
+ import {
8
+ loadConfig
9
+ } from "./chunk-IEPLQ47J.js";
10
+
11
+ // src/reporting/processErrorReporting.ts
12
+ var DEFAULT_API_BASE_URL = "https://api.autohand.ai";
13
+ var DEFAULT_REPORT_TIMEOUT_MS = 6500;
14
+ var installedProcesses = /* @__PURE__ */ new WeakSet();
15
+ var managerCache = /* @__PURE__ */ new Map();
16
+ function getArgValue(argv, flag) {
17
+ if (!argv) {
18
+ return void 0;
19
+ }
20
+ for (let i = 0; i < argv.length; i++) {
21
+ const token = argv[i];
22
+ if (token === flag) {
23
+ return argv[i + 1];
24
+ }
25
+ if (token.startsWith(`${flag}=`)) {
26
+ return token.slice(flag.length + 1);
27
+ }
28
+ }
29
+ return void 0;
30
+ }
31
+ function resolveConfigPath(processRef, explicitPath) {
32
+ return explicitPath ?? getArgValue(processRef.argv, "--config") ?? processRef.env.AUTOHAND_CONFIG;
33
+ }
34
+ function detectClientName(processRef) {
35
+ const envClientName = processRef.env.AUTOHAND_CLIENT_NAME;
36
+ if (envClientName) {
37
+ return envClientName;
38
+ }
39
+ const mode = getArgValue(processRef.argv, "--mode");
40
+ if (mode === "acp" || mode === "rpc") {
41
+ return mode;
42
+ }
43
+ return "cli";
44
+ }
45
+ function getLogPrefix(processRef) {
46
+ return detectClientName(processRef) === "acp" ? "[ACP]" : "[DEBUG]";
47
+ }
48
+ function captureLastError(reason) {
49
+ globalThis.__autohandLastError = reason;
50
+ }
51
+ function sleep(ms) {
52
+ return new Promise((resolve) => setTimeout(resolve, ms));
53
+ }
54
+ function buildFallbackConfig(configPath, processRef) {
55
+ return {
56
+ provider: "openrouter",
57
+ api: {
58
+ baseUrl: processRef.env.AUTOHAND_API_URL || DEFAULT_API_BASE_URL,
59
+ companySecret: processRef.env.AUTOHAND_SECRET || ""
60
+ },
61
+ autoReport: {
62
+ enabled: true
63
+ },
64
+ telemetry: {
65
+ enabled: false
66
+ },
67
+ configPath: configPath ?? "process-error-fallback",
68
+ isNewConfig: false
69
+ };
70
+ }
71
+ async function getAutoReportManager(processRef, explicitConfigPath) {
72
+ const configPath = resolveConfigPath(processRef, explicitConfigPath);
73
+ const cacheKey = configPath ?? "__default__";
74
+ const cached = managerCache.get(cacheKey);
75
+ if (cached) {
76
+ return cached;
77
+ }
78
+ const managerPromise = (async () => {
79
+ let config;
80
+ try {
81
+ config = await loadConfig(configPath);
82
+ } catch {
83
+ config = buildFallbackConfig(configPath, processRef);
84
+ }
85
+ return new AutoReportManager(config, package_default.version);
86
+ })();
87
+ managerCache.set(cacheKey, managerPromise);
88
+ return managerPromise;
89
+ }
90
+ function isIgnorableStdinReadError(err, _processRef) {
91
+ if (!err || typeof err !== "object") {
92
+ return false;
93
+ }
94
+ const maybeError = err;
95
+ return maybeError.code === "EIO" && maybeError.syscall === "read";
96
+ }
97
+ function isIgnorableFilesystemError(err) {
98
+ if (!err || typeof err !== "object") return false;
99
+ const maybeError = err;
100
+ if (maybeError.syscall !== "mkdir") return false;
101
+ return maybeError.code === "EACCES" || maybeError.code === "EEXIST";
102
+ }
103
+ function isIgnorableTerminalOrRuntimeError(err) {
104
+ if (!err || typeof err !== "object") return false;
105
+ const message = err.message ?? "";
106
+ if (/setRawMode.*errno/i.test(message)) return true;
107
+ if (message === "Generator is executing") return true;
108
+ if (message.includes("node:sqlite")) return true;
109
+ return false;
110
+ }
111
+ function isIgnorableUnhandledRejection(reason, processRef) {
112
+ if (reason && typeof reason === "object" && reason.code === "ERR_USE_AFTER_CLOSE") {
113
+ return true;
114
+ }
115
+ if (isIgnorableStdinReadError(reason, processRef)) return true;
116
+ if (isIgnorableFilesystemError(reason)) return true;
117
+ if (isIgnorableTerminalOrRuntimeError(reason)) return true;
118
+ return false;
119
+ }
120
+ function toReportableError(reason) {
121
+ if (reason instanceof Error) {
122
+ return reason;
123
+ }
124
+ const fallbackName = "NonErrorProcessFault";
125
+ if (reason && typeof reason === "object") {
126
+ const maybeErrorLike = reason;
127
+ const message = typeof maybeErrorLike.message === "string" ? maybeErrorLike.message : safeSerialize(reason);
128
+ const error2 = new Error(message);
129
+ error2.name = typeof maybeErrorLike.name === "string" ? maybeErrorLike.name : fallbackName;
130
+ return error2;
131
+ }
132
+ const error = new Error(typeof reason === "string" ? reason : String(reason));
133
+ error.name = fallbackName;
134
+ return error;
135
+ }
136
+ function safeSerialize(value) {
137
+ try {
138
+ return JSON.stringify(value);
139
+ } catch {
140
+ return String(value);
141
+ }
142
+ }
143
+ function describeReasonType(reason) {
144
+ if (reason === null) {
145
+ return "null";
146
+ }
147
+ if (Array.isArray(reason)) {
148
+ return "array";
149
+ }
150
+ return typeof reason;
151
+ }
152
+ async function reportProcessError(reason, options) {
153
+ const processRef = options.processRef ?? process;
154
+ if (options.handler === "unhandledRejection" && isIgnorableUnhandledRejection(reason, processRef)) {
155
+ return;
156
+ }
157
+ if (options.handler === "uncaughtException" && (isIgnorableStdinReadError(reason, processRef) || isIgnorableTerminalOrRuntimeError(reason))) {
158
+ return;
159
+ }
160
+ captureLastError(reason);
161
+ const error = toReportableError(reason);
162
+ const manager = await getAutoReportManager(processRef, options.configPath);
163
+ const reportPromise = manager.reportError(error, {
164
+ context: {
165
+ source: "process",
166
+ handler: options.handler,
167
+ clientName: detectClientName(processRef),
168
+ fatal: options.handler === "uncaughtException",
169
+ rawType: describeReasonType(reason),
170
+ ...options.extraContext ?? {}
171
+ }
172
+ });
173
+ await Promise.race([
174
+ reportPromise,
175
+ sleep(options.reportTimeoutMs ?? DEFAULT_REPORT_TIMEOUT_MS)
176
+ ]);
177
+ }
178
+ function installProcessErrorHandlers(options = {}) {
179
+ const processRef = options.processRef ?? process;
180
+ if (installedProcesses.has(processRef)) {
181
+ return;
182
+ }
183
+ installedProcesses.add(processRef);
184
+ const logError = options.logError ?? console.error.bind(console);
185
+ const exit = options.exit ?? ((code) => {
186
+ processRef.exit(code);
187
+ });
188
+ processRef.on("uncaughtException", (error) => {
189
+ if (isIgnorableStdinReadError(error, processRef)) {
190
+ return;
191
+ }
192
+ if (isIgnorableTerminalOrRuntimeError(error)) {
193
+ return;
194
+ }
195
+ captureLastError(error);
196
+ logError(`${getLogPrefix(processRef)} Uncaught Exception:`, error);
197
+ void (async () => {
198
+ await reportProcessError(error, {
199
+ handler: "uncaughtException",
200
+ processRef,
201
+ configPath: options.configPath,
202
+ reportTimeoutMs: options.reportTimeoutMs
203
+ });
204
+ exit(1);
205
+ })();
206
+ });
207
+ processRef.on("unhandledRejection", (reason, promise) => {
208
+ if (isIgnorableUnhandledRejection(reason, processRef)) {
209
+ return;
210
+ }
211
+ captureLastError(reason);
212
+ logError(`${getLogPrefix(processRef)} Unhandled Rejection at:`, promise, "reason:", reason);
213
+ void reportProcessError(reason, {
214
+ handler: "unhandledRejection",
215
+ processRef,
216
+ configPath: options.configPath,
217
+ reportTimeoutMs: options.reportTimeoutMs
218
+ });
219
+ });
220
+ }
221
+
222
+ export {
223
+ installProcessErrorHandlers
224
+ };
225
+ /**
226
+ * @license
227
+ * Copyright 2025 Autohand AI LLC
228
+ * SPDX-License-Identifier: Apache-2.0
229
+ */
@@ -3,10 +3,10 @@
3
3
  var _chunkJHGIWNHLcjs = require('./chunk-JHGIWNHL.cjs');
4
4
 
5
5
 
6
- var _chunkOLSBBZW6cjs = require('./chunk-OLSBBZW6.cjs');
6
+ var _chunkS5JNQIGLcjs = require('./chunk-S5JNQIGL.cjs');
7
7
 
8
8
 
9
- var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
9
+ var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
10
10
 
11
11
  // src/commands/skills-new.ts
12
12
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
@@ -25,7 +25,7 @@ async function createSkill(ctx) {
25
25
  console.log(_chalk2.default.red("Skills registry not available."));
26
26
  return null;
27
27
  }
28
- const answers = await _chunkOLSBBZW6cjs.safePrompt.call(void 0, [
28
+ const answers = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, [
29
29
  {
30
30
  type: "input",
31
31
  name: "name",
@@ -65,7 +65,7 @@ async function createSkill(ctx) {
65
65
  console.log(_chalk2.default.gray("Canceled: no name provided."));
66
66
  return null;
67
67
  }
68
- const storageResult = await _chunkOLSBBZW6cjs.safePrompt.call(void 0, {
68
+ const storageResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
69
69
  type: "select",
70
70
  name: "level",
71
71
  message: "Where should this skill be saved?",
@@ -81,7 +81,7 @@ async function createSkill(ctx) {
81
81
  const storageLevel = storageResult.level;
82
82
  if (skillsRegistry.hasSkill(name)) {
83
83
  console.log(_chalk2.default.yellow(`A skill named "${name}" already exists.`));
84
- const result = await _chunkOLSBBZW6cjs.safePrompt.call(void 0, {
84
+ const result = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
85
85
  type: "confirm",
86
86
  name: "overwrite",
87
87
  message: "Do you want to overwrite it?",
@@ -100,7 +100,7 @@ async function createSkill(ctx) {
100
100
  console.log(_chalk2.default.gray(` Similarity: ${(match.score * 100).toFixed(0)}%`));
101
101
  }
102
102
  console.log();
103
- const result = await _chunkOLSBBZW6cjs.safePrompt.call(void 0, {
103
+ const result = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
104
104
  type: "select",
105
105
  name: "proceed",
106
106
  message: "How would you like to proceed?",
@@ -150,7 +150,7 @@ Output only the raw markdown content, no code fences.`
150
150
  console.log(content.length > 800 ? content.slice(0, 800) + "\n...(truncated)" : content);
151
151
  console.log(_chalk2.default.gray("\u2500".repeat(50)));
152
152
  console.log();
153
- const confirmResult = await _chunkOLSBBZW6cjs.safePrompt.call(void 0, {
153
+ const confirmResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
154
154
  type: "confirm",
155
155
  name: "confirm",
156
156
  message: "Save this skill?",
@@ -160,7 +160,7 @@ Output only the raw markdown content, no code fences.`
160
160
  console.log(_chalk2.default.gray("Canceled."));
161
161
  return null;
162
162
  }
163
- const baseDir = storageLevel === "project" ? _path2.default.join(ctx.workspaceRoot, ".autohand", "skills") : _chunkSEKD5FH3cjs.AUTOHAND_PATHS.skills;
163
+ const baseDir = storageLevel === "project" ? _path2.default.join(ctx.workspaceRoot, ".autohand", "skills") : _chunkKASXKDF2cjs.AUTOHAND_PATHS.skills;
164
164
  const skillDir = _path2.default.join(baseDir, name);
165
165
  const skillPath = _path2.default.join(skillDir, "SKILL.md");
166
166
  try {
@@ -169,7 +169,7 @@ Output only the raw markdown content, no code fences.`
169
169
  console.log(_chalk2.default.green(`\u2713 Saved new skill to ${skillPath}`));
170
170
  const success = await skillsRegistry.saveSkill(name, content);
171
171
  if (success) {
172
- const activateResult = await _chunkOLSBBZW6cjs.safePrompt.call(void 0, {
172
+ const activateResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
173
173
  type: "confirm",
174
174
  name: "activate",
175
175
  message: "Activate this skill now?",
@@ -0,0 +1,152 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+ var _chunkOV3T5MUHcjs = require('./chunk-OV3T5MUH.cjs');
10
+
11
+
12
+ var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
13
+
14
+
15
+ var _chunkX5P6QQOBcjs = require('./chunk-X5P6QQOB.cjs');
16
+
17
+ // src/commands/chrome.ts
18
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
19
+ var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
20
+ var metadata = {
21
+ command: "/chrome",
22
+ description: "continue the current session in the Autohand Chrome extension",
23
+ implemented: true
24
+ };
25
+ async function withModalPause(ctx, fn) {
26
+ await _optionalChain([ctx, 'access', _ => _.onBeforeModal, 'optionalCall', _2 => _2()]);
27
+ try {
28
+ return await fn();
29
+ } finally {
30
+ await _optionalChain([ctx, 'access', _3 => _3.onAfterModal, 'optionalCall', _4 => _4()]);
31
+ }
32
+ }
33
+ async function chrome(ctx, args = []) {
34
+ const subcommand = _optionalChain([args, 'access', _5 => _5[0], 'optionalAccess', _6 => _6.toLowerCase, 'call', _7 => _7()]);
35
+ if (subcommand === "disconnect") {
36
+ if (!ctx.config) return "Config not available.";
37
+ const chromeConfig = _nullishCoalesce(ctx.config.chrome, () => ( {}));
38
+ chromeConfig.enabledByDefault = false;
39
+ ctx.config.chrome = chromeConfig;
40
+ await _chunkX5P6QQOBcjs.saveConfig.call(void 0, ctx.config);
41
+ return `${_chalk2.default.green("\u2713")} Browser bridge disconnected and disabled.`;
42
+ }
43
+ const currentSession = ctx.sessionManager.getCurrentSession();
44
+ const sessionId = _optionalChain([currentSession, 'optionalAccess', _8 => _8.metadata, 'access', _9 => _9.sessionId]);
45
+ if (!sessionId) {
46
+ return "No active session. Start a task first, then run /chrome.";
47
+ }
48
+ const extensionId = _optionalChain([ctx, 'access', _10 => _10.config, 'optionalAccess', _11 => _11.chrome, 'optionalAccess', _12 => _12.extensionId]);
49
+ const nativeHostInstalled = await _fsextra2.default.pathExists(_chunkOV3T5MUHcjs.getManifestTarget.call(void 0, "chrome").manifestPath);
50
+ let extensionDetected = false;
51
+ if (extensionId) {
52
+ extensionDetected = await _chunkOV3T5MUHcjs.detectExtensionProfile.call(void 0, extensionId) !== null;
53
+ }
54
+ const nativeHostReady = _chunkOV3T5MUHcjs.ensureNativeHostInstalled.call(void 0, { extensionId }).catch(() => {
55
+ });
56
+ const activeHandoff = await _chunkOV3T5MUHcjs.hasActiveHandoff.call(void 0, );
57
+ let connectionLabel;
58
+ if (activeHandoff) {
59
+ connectionLabel = _chalk2.default.green("Handoff pending");
60
+ } else if (nativeHostInstalled && extensionDetected) {
61
+ connectionLabel = _chalk2.default.green("Extension ready");
62
+ } else if (nativeHostInstalled) {
63
+ connectionLabel = _chalk2.default.yellow("Native host installed");
64
+ } else {
65
+ connectionLabel = _chalk2.default.red("Not installed");
66
+ }
67
+ const statusLabel = nativeHostInstalled ? "Ready" : "Disabled";
68
+ const extLabel = nativeHostInstalled ? extensionDetected ? _chalk2.default.green("Installed") : _chalk2.default.yellow("Native host only") : _chalk2.default.red("Not installed");
69
+ let selected = null;
70
+ let isReshow = false;
71
+ while (true) {
72
+ const enabledByDefault = _optionalChain([ctx, 'access', _13 => _13.config, 'optionalAccess', _14 => _14.chrome, 'optionalAccess', _15 => _15.enabledByDefault]) ? "Yes" : "No";
73
+ const options = [
74
+ { label: "Open in Chrome", value: "open", description: "Hand off session and open browser" },
75
+ { label: "Manage permissions", value: "permissions", description: "Open extension settings page" },
76
+ { label: "Reconnect extension", value: "reconnect", description: "Reinstall native messaging host" },
77
+ { label: `Enabled by default: ${enabledByDefault}`, value: "toggle", description: "Start browser bridge with the CLI" }
78
+ ];
79
+ const title = [
80
+ _chalk2.default.yellow.bold("Autohand in Chrome (Beta)"),
81
+ "",
82
+ "Autohand in Chrome works with the extension to control your browser",
83
+ "from the CLI. Navigate, fill forms, capture screenshots, and debug.",
84
+ "",
85
+ `Connection: ${connectionLabel}`,
86
+ `Status: ${statusLabel}`,
87
+ `Extension: ${extLabel}`,
88
+ "",
89
+ `Usage: ${_chalk2.default.yellow("autohand --chrome")} or ${_chalk2.default.yellow("autohand --no-chrome")}`,
90
+ "",
91
+ "Site-level permissions are inherited from the Chrome extension.",
92
+ `Learn more: ${_chalk2.default.gray("https://autohand.ai/docs/chrome")}`
93
+ ].join("\n");
94
+ if (isReshow) {
95
+ const titleLines = title.split("\n").length;
96
+ const optionLines = options.length * 2;
97
+ const chrome2 = 1;
98
+ const totalLines = titleLines + optionLines + chrome2 + 3;
99
+ process.stdout.write(`\x1B[${totalLines}A\x1B[0J`);
100
+ }
101
+ selected = await withModalPause(
102
+ ctx,
103
+ () => _chunkCK4HAHVYcjs.showModal.call(void 0, { title, options, initialIndex: isReshow ? 3 : void 0 })
104
+ );
105
+ if (!selected) return null;
106
+ if (selected.value === "toggle" && ctx.config) {
107
+ const chromeConfig = _nullishCoalesce(ctx.config.chrome, () => ( {}));
108
+ chromeConfig.enabledByDefault = !chromeConfig.enabledByDefault;
109
+ ctx.config.chrome = chromeConfig;
110
+ await _chunkX5P6QQOBcjs.saveConfig.call(void 0, ctx.config);
111
+ isReshow = true;
112
+ continue;
113
+ }
114
+ break;
115
+ }
116
+ switch (selected.value) {
117
+ case "open": {
118
+ await nativeHostReady;
119
+ await _chunkOV3T5MUHcjs.createBrowserHandoff.call(void 0, {
120
+ sessionId,
121
+ workspaceRoot: ctx.workspaceRoot,
122
+ extensionId,
123
+ installUrl: _optionalChain([ctx, 'access', _16 => _16.config, 'optionalAccess', _17 => _17.chrome, 'optionalAccess', _18 => _18.installUrl])
124
+ });
125
+ await _chunkOV3T5MUHcjs.openChromeContinuation.call(void 0,
126
+ _chunkOV3T5MUHcjs.buildChromeOpenUrl.call(void 0, { installUrl: _optionalChain([ctx, 'access', _19 => _19.config, 'optionalAccess', _20 => _20.chrome, 'optionalAccess', _21 => _21.installUrl]) }),
127
+ _nullishCoalesce(_optionalChain([ctx, 'access', _22 => _22.config, 'optionalAccess', _23 => _23.chrome, 'optionalAccess', _24 => _24.browser]), () => ( "auto")),
128
+ { userDataDir: _optionalChain([ctx, 'access', _25 => _25.config, 'optionalAccess', _26 => _26.chrome, 'optionalAccess', _27 => _27.userDataDir]), profileDirectory: _optionalChain([ctx, 'access', _28 => _28.config, 'optionalAccess', _29 => _29.chrome, 'optionalAccess', _30 => _30.profileDirectory]) }
129
+ );
130
+ return `${_chalk2.default.green("\u2713")} Opened Chrome. Side panel ${_chalk2.default.gray("(Cmd+E)")} to continue.
131
+ Session: ${_chalk2.default.gray(sessionId)}`;
132
+ }
133
+ case "permissions": {
134
+ return "Open the Chrome extension options page to manage permissions.";
135
+ }
136
+ case "reconnect": {
137
+ await nativeHostReady;
138
+ return `${_chalk2.default.green("\u2713")} Native messaging host reinstalled. Open the Chrome side panel manually if needed.`;
139
+ }
140
+ }
141
+ return null;
142
+ }
143
+
144
+
145
+
146
+
147
+ exports.metadata = metadata; exports.chrome = chrome;
148
+ /**
149
+ * @license
150
+ * Copyright 2026 Autohand AI LLC
151
+ * SPDX-License-Identifier: Apache-2.0
152
+ */