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
@@ -3,16 +3,36 @@ import {
3
3
  showInput,
4
4
  showModal,
5
5
  showPassword
6
- } from "./chunk-YZXUDM5X.js";
6
+ } from "./chunk-NZ3ZWLUW.js";
7
7
  import {
8
8
  saveConfig
9
- } from "./chunk-ZYVS43MU.js";
9
+ } from "./chunk-IEPLQ47J.js";
10
10
  import {
11
11
  t
12
- } from "./chunk-APIXPPMT.js";
12
+ } from "./chunk-LEZEWKPA.js";
13
13
 
14
14
  // src/commands/settings.ts
15
15
  import chalk from "chalk";
16
+ var SETTING_KEY_ALIASES = {
17
+ silent_tool_output: "ui.silentToolOutput",
18
+ tool_output_silent: "ui.silentToolOutput",
19
+ ui_silent_tool_output: "ui.silentToolOutput",
20
+ sitrep: "ui.completionReportEnabled",
21
+ ui_sitrep: "ui.completionReportEnabled",
22
+ completion_report: "ui.completionReportEnabled",
23
+ completion_reports: "ui.completionReportEnabled",
24
+ completionReportEnabled: "ui.completionReportEnabled",
25
+ completion_report_enabled: "ui.completionReportEnabled",
26
+ ui_completion_report: "ui.completionReportEnabled",
27
+ ui_completion_reports: "ui.completionReportEnabled",
28
+ ui_completion_report_enabled: "ui.completionReportEnabled",
29
+ "verbs activity": "ui.activityVerbsEnabled",
30
+ "activity verbs": "ui.activityVerbsEnabled",
31
+ activity_verbs: "ui.activityVerbsEnabled",
32
+ verbs_activity: "ui.activityVerbsEnabled",
33
+ ui_activity_verbs: "ui.activityVerbsEnabled",
34
+ ui_verbs_activity: "ui.activityVerbsEnabled"
35
+ };
16
36
  var SETTING_CATEGORIES = [
17
37
  { id: "ui", labelKey: "commands.settings.categories.ui" },
18
38
  { id: "agent", labelKey: "commands.settings.categories.agent" },
@@ -28,11 +48,14 @@ var SETTINGS_REGISTRY = [
28
48
  { key: "ui.theme", labelKey: "commands.settings.ui.theme", category: "ui", type: "string", redirect: "/theme" },
29
49
  { key: "ui.locale", labelKey: "commands.settings.ui.locale", category: "ui", type: "string", redirect: "/language" },
30
50
  { key: "ui.autoConfirm", labelKey: "commands.settings.ui.autoConfirm", descriptionKey: "commands.settings.ui.autoConfirmDesc", category: "ui", type: "boolean", defaultValue: false },
51
+ { key: "ui.silentToolOutput", labelKey: "commands.settings.ui.silentToolOutput", descriptionKey: "commands.settings.ui.silentToolOutputDesc", category: "ui", type: "boolean", defaultValue: false },
31
52
  { key: "ui.showThinking", labelKey: "commands.settings.ui.showThinking", descriptionKey: "commands.settings.ui.showThinkingDesc", category: "ui", type: "boolean", defaultValue: true },
32
53
  { key: "ui.terminalBell", labelKey: "commands.settings.ui.terminalBell", descriptionKey: "commands.settings.ui.terminalBellDesc", category: "ui", type: "boolean", defaultValue: true },
33
54
  { key: "ui.checkForUpdates", labelKey: "commands.settings.ui.checkForUpdates", descriptionKey: "commands.settings.ui.checkForUpdatesDesc", category: "ui", type: "boolean", defaultValue: true },
34
55
  { key: "ui.showCompletionNotification", labelKey: "commands.settings.ui.showCompletionNotification", descriptionKey: "commands.settings.ui.showCompletionNotificationDesc", category: "ui", type: "boolean", defaultValue: true },
56
+ { key: "ui.completionReportEnabled", labelKey: "commands.settings.ui.completionReportEnabled", descriptionKey: "commands.settings.ui.completionReportEnabledDesc", category: "ui", type: "boolean", defaultValue: true },
35
57
  { key: "ui.promptSuggestions", labelKey: "commands.settings.ui.promptSuggestions", descriptionKey: "commands.settings.ui.promptSuggestionsDesc", category: "ui", type: "boolean", defaultValue: true },
58
+ { key: "ui.activityVerbsEnabled", labelKey: "commands.settings.ui.activityVerbsEnabled", descriptionKey: "commands.settings.ui.activityVerbsEnabledDesc", category: "ui", type: "boolean", defaultValue: true },
36
59
  { key: "ui.activitySymbol", labelKey: "commands.settings.ui.activitySymbol", descriptionKey: "commands.settings.ui.activitySymbolDesc", category: "ui", type: "string", defaultValue: "\u2733" },
37
60
  { key: "ui.updateCheckInterval", labelKey: "commands.settings.ui.updateCheckInterval", descriptionKey: "commands.settings.ui.updateCheckIntervalDesc", category: "ui", type: "number", defaultValue: 24 },
38
61
  // Agent Behavior
@@ -86,6 +109,70 @@ function setNestedValue(obj, path, value) {
86
109
  }
87
110
  current[parts[parts.length - 1]] = value;
88
111
  }
112
+ function normalizeSettingKey(input) {
113
+ const trimmed = input.trim();
114
+ if (SETTING_KEY_ALIASES[trimmed]) {
115
+ return SETTING_KEY_ALIASES[trimmed];
116
+ }
117
+ if (trimmed.startsWith("ui.") && SETTING_KEY_ALIASES[trimmed.replace(/\./g, "_")]) {
118
+ return SETTING_KEY_ALIASES[trimmed.replace(/\./g, "_")];
119
+ }
120
+ return trimmed;
121
+ }
122
+ function parseBooleanSetting(value) {
123
+ const normalized = value.trim().toLowerCase();
124
+ if (["true", "1", "yes", "y", "on"].includes(normalized)) {
125
+ return true;
126
+ }
127
+ if (["false", "0", "no", "n", "off"].includes(normalized)) {
128
+ return false;
129
+ }
130
+ throw new Error(`Expected a boolean value, got "${value}". Use true or false.`);
131
+ }
132
+ function parseSettingValue(setting, rawValue) {
133
+ switch (setting.type) {
134
+ case "boolean":
135
+ return parseBooleanSetting(rawValue);
136
+ case "number": {
137
+ const value = Number(rawValue);
138
+ if (!Number.isFinite(value)) {
139
+ throw new Error(`Expected a number for ${setting.key}, got "${rawValue}".`);
140
+ }
141
+ return value;
142
+ }
143
+ case "enum":
144
+ if (!setting.enumValues?.includes(rawValue)) {
145
+ throw new Error(`Expected one of ${setting.enumValues?.join(", ") ?? "(none)"} for ${setting.key}.`);
146
+ }
147
+ return rawValue;
148
+ case "password":
149
+ case "string":
150
+ return rawValue;
151
+ default:
152
+ return rawValue;
153
+ }
154
+ }
155
+ function setConfigSetting(config, keyInput, rawValue) {
156
+ const key = normalizeSettingKey(keyInput);
157
+ const setting = SETTINGS_REGISTRY.find((s) => s.key === key);
158
+ if (!setting) {
159
+ throw new Error(`Unknown setting "${keyInput}". Use /settings to browse configurable settings.`);
160
+ }
161
+ if (setting.redirect) {
162
+ throw new Error(`Setting "${setting.key}" is managed by ${setting.redirect}.`);
163
+ }
164
+ const value = parseSettingValue(setting, rawValue);
165
+ setNestedValue(config, setting.key, value);
166
+ return { key: setting.key, value };
167
+ }
168
+ function parseConfigSetArgs(parts) {
169
+ if (parts.length < 2) {
170
+ throw new Error("Usage: autohand config set <key> <value>");
171
+ }
172
+ const value = parts[parts.length - 1];
173
+ const key = parts.slice(0, -1).join(" ");
174
+ return { key, value };
175
+ }
89
176
  function getSettingsForCategory(category) {
90
177
  return SETTINGS_REGISTRY.filter((s) => s.category === category);
91
178
  }
@@ -247,6 +334,10 @@ export {
247
334
  SETTINGS_REGISTRY,
248
335
  getNestedValue,
249
336
  setNestedValue,
337
+ normalizeSettingKey,
338
+ parseSettingValue,
339
+ setConfigSetting,
340
+ parseConfigSetArgs,
250
341
  getSettingsForCategory,
251
342
  formatSettingValue,
252
343
  editSetting,
@@ -0,0 +1,37 @@
1
+ // src/commands/yolo.ts
2
+ import chalk from "chalk";
3
+ async function toggleYolo(ctx) {
4
+ if (!ctx.setYoloMode) {
5
+ return "YOLO mode toggle not available in this context.";
6
+ }
7
+ const isActive = ctx.permissionManager.getMode() === "unrestricted";
8
+ if (isActive) {
9
+ ctx.setYoloMode(void 0);
10
+ console.log();
11
+ console.log(chalk.cyan("YOLO mode deactivated. Returning to interactive approval."));
12
+ console.log();
13
+ } else {
14
+ ctx.setYoloMode("allow:*");
15
+ console.log();
16
+ console.log(chalk.yellow.bold("\u{1F680} YOLO MODE ACTIVATED"));
17
+ console.log(chalk.gray("You only live once! All actions will be auto-approved."));
18
+ console.log(chalk.gray("Security blacklist still applies for sensitive files."));
19
+ console.log();
20
+ }
21
+ return null;
22
+ }
23
+ var metadata = {
24
+ command: "/yolo",
25
+ description: "Toggle YOLO mode \u2014 auto-approve all actions",
26
+ implemented: true
27
+ };
28
+
29
+ export {
30
+ toggleYolo,
31
+ metadata
32
+ };
33
+ /**
34
+ * @license
35
+ * Copyright 2025 Autohand AI LLC
36
+ * SPDX-License-Identifier: Apache-2.0
37
+ */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  t
3
- } from "./chunk-APIXPPMT.js";
3
+ } from "./chunk-LEZEWKPA.js";
4
4
 
5
5
  // src/commands/undo.ts
6
6
  import chalk from "chalk";
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  showModal
3
- } from "./chunk-YZXUDM5X.js";
3
+ } from "./chunk-NZ3ZWLUW.js";
4
4
  import {
5
5
  saveConfig
6
- } from "./chunk-ZYVS43MU.js";
6
+ } from "./chunk-IEPLQ47J.js";
7
7
  import {
8
8
  CUSTOM_THEMES_DIR,
9
9
  builtInThemes,
10
10
  initTheme,
11
11
  listAvailableThemes
12
- } from "./chunk-BYONM7UM.js";
12
+ } from "./chunk-NBGOIFKP.js";
13
13
  import {
14
14
  getTheme,
15
15
  isThemeInitialized
16
- } from "./chunk-LIEXWM2M.js";
16
+ } from "./chunk-JAQO6XDB.js";
17
17
  import {
18
18
  t
19
- } from "./chunk-APIXPPMT.js";
19
+ } from "./chunk-LEZEWKPA.js";
20
20
 
21
21
  // src/commands/theme.ts
22
22
  import chalk from "chalk";
@@ -37,6 +37,9 @@ async function theme(ctx) {
37
37
  sandy: "Warm, earthy desert tones",
38
38
  tui: "New Zealand-inspired colors",
39
39
  "github-dark": "GitHub Dark terminal palette",
40
+ cappadocia: "Cappadocia-inspired rose valleys, dawn sky, and balloon colors",
41
+ rio: "Rio-inspired blue macaw, rainforest, and beach-light palette",
42
+ australia: "Australian coast, wattle, and eucalyptus palette",
40
43
  // Curated Ghostty themes
41
44
  "Atom One Dark": "Atom editor dark theme",
42
45
  "Ayu Mirage": "Soft dark with warm accents",
@@ -63,11 +66,28 @@ async function theme(ctx) {
63
66
  const description = descriptions[name] ?? (name in builtInThemes ? "Built-in theme" : "Ghostty theme");
64
67
  return { label, value: name, description };
65
68
  });
66
- const result = await showModal({
67
- title: t("commands.theme.selectPrompt"),
68
- options,
69
- initialIndex: themes.indexOf(currentTheme)
70
- });
69
+ let result = null;
70
+ let selectedTheme = null;
71
+ let selectedThemePreview = null;
72
+ await ctx.onBeforeModal?.();
73
+ try {
74
+ result = await showModal({
75
+ title: t("commands.theme.selectPrompt"),
76
+ options,
77
+ initialIndex: themes.indexOf(currentTheme)
78
+ });
79
+ if (result) {
80
+ const selected2 = result.value;
81
+ if (selected2 !== currentTheme) {
82
+ selectedThemePreview = initTheme(selected2);
83
+ ctx.config.ui = { ...ctx.config.ui, theme: selected2 };
84
+ await saveConfig(ctx.config);
85
+ selectedTheme = selected2;
86
+ }
87
+ }
88
+ } finally {
89
+ await ctx.onAfterModal?.();
90
+ }
71
91
  if (!result) {
72
92
  console.log(chalk.gray("\nTheme selection cancelled."));
73
93
  return null;
@@ -78,15 +98,15 @@ async function theme(ctx) {
78
98
  ${t("commands.theme.noChange")}`));
79
99
  return null;
80
100
  }
81
- initTheme(selected);
82
- ctx.config.ui = { ...ctx.config.ui, theme: selected };
83
- await saveConfig(ctx.config);
84
101
  console.log(chalk.green(`
85
- \u2713 ${t("commands.theme.changed", { theme: selected })}`));
86
- const newTheme = getTheme();
102
+ \u2713 ${t("commands.theme.changed", { theme: selectedTheme ?? selected })}`));
103
+ const newTheme = selectedThemePreview ?? getTheme();
87
104
  console.log("\nTheme preview:");
88
105
  console.log(` ${newTheme.fg("accent", "\u25CF accent")} ${newTheme.fg("success", "\u25CF success")} ${newTheme.fg("error", "\u25CF error")} ${newTheme.fg("warning", "\u25CF warning")}`);
89
106
  console.log(` ${newTheme.fg("muted", "\u25CF muted")} ${newTheme.fg("dim", "\u25CF dim")} ${newTheme.fg("text", "\u25CF text")}`);
107
+ if (newTheme.getColorMode() === "none") {
108
+ console.log(chalk.yellow(" Color output is disabled by NO_COLOR or FORCE_COLOR=0 in your terminal environment."));
109
+ }
90
110
  console.log();
91
111
  return null;
92
112
  }
@@ -99,6 +119,9 @@ async function themeInfo() {
99
119
  console.log(chalk.cyan("\n\u{1F3A8} Current Theme Info\n"));
100
120
  console.log(chalk.gray(`Name: ${chalk.white(currentTheme.name)}`));
101
121
  console.log(chalk.gray(`Color mode: ${chalk.white(currentTheme.getColorMode())}`));
122
+ if (currentTheme.getColorMode() === "none") {
123
+ console.log(chalk.yellow("Color output is disabled by NO_COLOR or FORCE_COLOR=0 in your terminal environment."));
124
+ }
102
125
  console.log(chalk.gray(`Custom themes dir: ${CUSTOM_THEMES_DIR}`));
103
126
  console.log();
104
127
  console.log("Color preview:");
@@ -0,0 +1,59 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/commands/review.ts
2
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
3
+ var _path = require('path'); var _path2 = _interopRequireDefault(_path);
4
+ var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
5
+ var metadata = {
6
+ command: "/review",
7
+ description: "staff-level code review with 10 actionable findings",
8
+ implemented: true
9
+ };
10
+ async function review(ctx, args = []) {
11
+ const userInstructions = args.join(" ").trim();
12
+ const skillPath = _path2.default.resolve(
13
+ _path2.default.dirname(new URL(import.meta.url).pathname),
14
+ "../skills/builtin/code-reviewer/SKILL.md"
15
+ );
16
+ let skillBody = "";
17
+ try {
18
+ const content = await _fsextra2.default.readFile(skillPath, "utf-8");
19
+ const bodyMatch = content.match(/^---[\s\S]*?---\s*([\s\S]*)$/);
20
+ skillBody = bodyMatch ? bodyMatch[1].trim() : content;
21
+ } catch (e) {
22
+ skillBody = "Perform a thorough code review analyzing architecture, security, performance, error handling, and maintainability.";
23
+ }
24
+ const parts = [
25
+ skillBody,
26
+ "",
27
+ "## Review Target",
28
+ `Workspace: ${ctx.workspaceRoot}`
29
+ ];
30
+ if (userInstructions) {
31
+ parts.push("", "## Additional Focus", userInstructions);
32
+ }
33
+ parts.push(
34
+ "",
35
+ "## Instructions",
36
+ "Start the review now. Use the available tools (read_file, fff_grep, fff_find, list_tree, git_status, git_diff) to gather context, then deliver your 10-dimension review."
37
+ );
38
+ const prompt = parts.join("\n");
39
+ if (ctx.isNonInteractive || !ctx.queueInstruction) {
40
+ return prompt;
41
+ }
42
+ ctx.queueInstruction(prompt);
43
+ console.log(_chalk2.default.cyan("\n Starting code review..."));
44
+ if (userInstructions) {
45
+ console.log(_chalk2.default.gray(` Focus: ${userInstructions}`));
46
+ }
47
+ console.log(_chalk2.default.gray(" Analyzing 10 dimensions: architecture, security, performance, and more.\n"));
48
+ return null;
49
+ }
50
+
51
+
52
+
53
+
54
+ exports.metadata = metadata; exports.review = review;
55
+ /**
56
+ * @license
57
+ * Copyright 2026 Autohand AI LLC
58
+ * SPDX-License-Identifier: Apache-2.0
59
+ */
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  showModal
3
- } from "./chunk-YZXUDM5X.js";
3
+ } from "./chunk-NZ3ZWLUW.js";
4
4
  import {
5
5
  saveConfig
6
- } from "./chunk-ZYVS43MU.js";
6
+ } from "./chunk-IEPLQ47J.js";
7
7
  import {
8
8
  LANGUAGE_DISPLAY_NAMES,
9
9
  SUPPORTED_LOCALES,
10
10
  changeLanguage,
11
11
  getCurrentLocale,
12
12
  t
13
- } from "./chunk-APIXPPMT.js";
13
+ } from "./chunk-LEZEWKPA.js";
14
14
 
15
15
  // src/commands/language.ts
16
16
  import chalk from "chalk";
@@ -26,11 +26,18 @@ async function language(ctx) {
26
26
  label: locale === currentLocale ? `${LANGUAGE_DISPLAY_NAMES[locale]} (${t("common.current")})` : LANGUAGE_DISPLAY_NAMES[locale],
27
27
  value: locale
28
28
  }));
29
- const result = await showModal({
30
- title: t("commands.language.selectPrompt"),
31
- options,
32
- initialIndex: SUPPORTED_LOCALES.indexOf(currentLocale)
33
- });
29
+ await ctx.onBeforeModal?.();
30
+ const result = await (async () => {
31
+ try {
32
+ return await showModal({
33
+ title: t("commands.language.selectPrompt"),
34
+ options,
35
+ initialIndex: SUPPORTED_LOCALES.indexOf(currentLocale)
36
+ });
37
+ } finally {
38
+ await ctx.onAfterModal?.();
39
+ }
40
+ })();
34
41
  if (!result) {
35
42
  console.log(chalk.gray("\nLanguage selection cancelled."));
36
43
  return null;
@@ -4,7 +4,7 @@ import * as http from "http";
4
4
  import { existsSync } from "fs";
5
5
  import { spawn } from "child_process";
6
6
  var globalSearchConfig = {
7
- provider: "google"
7
+ provider: "browser-profile"
8
8
  };
9
9
  function configureSearch(config) {
10
10
  globalSearchConfig = { ...globalSearchConfig, ...config };
@@ -16,7 +16,13 @@ function isSearchConfigured() {
16
16
  const config = getSearchConfig();
17
17
  const braveKey = config.braveApiKey ?? process.env.BRAVE_SEARCH_API_KEY;
18
18
  const parallelKey = config.parallelApiKey ?? process.env.PARALLEL_API_KEY;
19
+ const exaKey = config.exaApiKey ?? process.env.EXA_API_KEY;
19
20
  switch (config.provider) {
21
+ case "browser-profile":
22
+ return !!findChromePath();
23
+ // Available if Chrome/Chromium is installed
24
+ case "exa":
25
+ return !!exaKey;
20
26
  case "brave":
21
27
  return !!braveKey;
22
28
  case "parallel":
@@ -227,10 +233,23 @@ async function webSearch(query, options = {}) {
227
233
  enhancedQuery = `${query} changelog OR release notes OR what's new`;
228
234
  break;
229
235
  }
230
- const provider = options.provider ?? globalSearchConfig.provider;
236
+ let provider = options.provider ?? globalSearchConfig.provider;
231
237
  const braveApiKey = globalSearchConfig.braveApiKey ?? process.env.BRAVE_SEARCH_API_KEY;
232
238
  const parallelApiKey = globalSearchConfig.parallelApiKey ?? process.env.PARALLEL_API_KEY;
239
+ const exaApiKey = globalSearchConfig.exaApiKey ?? process.env.EXA_API_KEY;
240
+ if (provider === "browser-profile" && !findChromePath()) {
241
+ provider = "google";
242
+ }
233
243
  switch (provider) {
244
+ case "browser-profile":
245
+ return browserProfileSearch(enhancedQuery, maxResults);
246
+ case "exa":
247
+ if (!exaApiKey) {
248
+ throw new Error(
249
+ "Exa.ai Search requires an API key. Configure it with /search or set EXA_API_KEY environment variable. Get an API key at: https://exa.ai"
250
+ );
251
+ }
252
+ return exaSearch(enhancedQuery, exaApiKey, maxResults);
234
253
  case "brave":
235
254
  if (!braveApiKey) {
236
255
  throw new Error(
@@ -456,6 +475,183 @@ async function braveSearch(query, apiKey, maxResults) {
456
475
  });
457
476
  });
458
477
  }
478
+ async function exaSearch(query, apiKey, maxResults) {
479
+ const postData = JSON.stringify({
480
+ query,
481
+ numResults: maxResults,
482
+ contents: {
483
+ text: true
484
+ }
485
+ });
486
+ return new Promise((resolve, reject) => {
487
+ const options = {
488
+ hostname: "api.exa.ai",
489
+ port: 443,
490
+ path: "/search",
491
+ method: "POST",
492
+ headers: {
493
+ "Content-Type": "application/json",
494
+ "Authorization": `Bearer ${apiKey}`,
495
+ "Content-Length": Buffer.byteLength(postData)
496
+ }
497
+ };
498
+ const req = https.request(options, (res) => {
499
+ let data = "";
500
+ res.on("data", (chunk) => {
501
+ data += chunk;
502
+ });
503
+ res.on("end", () => {
504
+ if (res.statusCode && res.statusCode >= 400) {
505
+ reject(new Error(`Exa.ai API error: HTTP ${res.statusCode} - ${data}`));
506
+ return;
507
+ }
508
+ try {
509
+ const json = JSON.parse(data);
510
+ if (json.results && Array.isArray(json.results)) {
511
+ const results = json.results.slice(0, maxResults).map((r) => ({
512
+ title: r.title || r.url || "Untitled",
513
+ url: r.url || "",
514
+ snippet: r.text?.slice(0, 300) || r.highlight?.slice(0, 300) || ""
515
+ }));
516
+ resolve(results);
517
+ } else {
518
+ resolve([]);
519
+ }
520
+ } catch (parseError) {
521
+ reject(new Error(`Failed to parse Exa.ai response: ${parseError instanceof Error ? parseError.message : String(parseError)}`));
522
+ }
523
+ });
524
+ res.on("error", reject);
525
+ });
526
+ req.on("error", reject);
527
+ req.on("timeout", () => {
528
+ req.destroy();
529
+ reject(new Error("Exa.ai request timed out"));
530
+ });
531
+ req.write(postData);
532
+ req.end();
533
+ });
534
+ }
535
+ async function browserProfileSearch(query, maxResults) {
536
+ const chromePath = findChromePath();
537
+ if (!chromePath) {
538
+ throw new Error(
539
+ "No Chrome/Chromium browser found. Install Chrome or configure a different search provider with /search."
540
+ );
541
+ }
542
+ const profile = await findBrowserProfile();
543
+ if (!profile) {
544
+ return googleSearch(query, maxResults);
545
+ }
546
+ const searchUrl = `https://www.google.com/search?q=${encodeURIComponent(query)}&num=${maxResults}&hl=en`;
547
+ return new Promise((resolve, reject) => {
548
+ const port = 9222 + Math.floor(Math.random() * 1e3);
549
+ const args = [
550
+ `--remote-debugging-port=${port}`,
551
+ "--no-first-run",
552
+ "--no-default-browser-check",
553
+ "--disable-default-apps",
554
+ "--disable-background-networking",
555
+ "--disable-sync",
556
+ `--user-data-dir=${profile.userDataDir}`,
557
+ `--profile-directory=${profile.profileDirectory}`,
558
+ "--headless=new",
559
+ "--dump-dom",
560
+ searchUrl
561
+ ];
562
+ let stdout = "";
563
+ let killed = false;
564
+ const proc = spawn(chromePath, args, {
565
+ stdio: ["ignore", "pipe", "pipe"],
566
+ timeout: 3e4
567
+ });
568
+ proc.stdout.on("data", (data) => {
569
+ stdout += data.toString();
570
+ if (stdout.length > 5e5) {
571
+ killed = true;
572
+ proc.kill("SIGTERM");
573
+ }
574
+ });
575
+ proc.stderr.resume();
576
+ proc.on("close", (code) => {
577
+ if (killed) {
578
+ const results2 = parseGoogleResultsFromDOM(stdout.slice(0, 5e5), maxResults);
579
+ resolve(results2.length > 0 ? results2 : []);
580
+ return;
581
+ }
582
+ if (code !== 0 && code !== null) {
583
+ googleSearch(query, maxResults).then(resolve).catch(reject);
584
+ return;
585
+ }
586
+ const results = parseGoogleResultsFromDOM(stdout, maxResults);
587
+ if (stdout.includes("unusual traffic") || stdout.includes("captcha") || stdout.includes("g-recaptcha")) {
588
+ googleSearch(query, maxResults).then(resolve).catch(reject);
589
+ return;
590
+ }
591
+ if (results.length > 0) {
592
+ resolve(results);
593
+ } else {
594
+ googleSearch(query, maxResults).then(resolve).catch(reject);
595
+ }
596
+ });
597
+ proc.on("error", () => {
598
+ googleSearch(query, maxResults).then(resolve).catch(reject);
599
+ });
600
+ });
601
+ }
602
+ async function findBrowserProfile() {
603
+ const os = await import("os");
604
+ const path = await import("path");
605
+ const fs = await import("fs-extra");
606
+ const { pathExists } = fs;
607
+ const homeDir = os.homedir();
608
+ const platform = process.platform;
609
+ const browserRoots = [];
610
+ if (platform === "darwin") {
611
+ browserRoots.push(
612
+ { name: "Chrome", userDataDir: path.join(homeDir, "Library", "Application Support", "Google", "Chrome") },
613
+ { name: "Chromium", userDataDir: path.join(homeDir, "Library", "Application Support", "Chromium") },
614
+ { name: "Brave", userDataDir: path.join(homeDir, "Library", "Application Support", "BraveSoftware", "Brave-Browser") },
615
+ { name: "Edge", userDataDir: path.join(homeDir, "Library", "Application Support", "Microsoft Edge") }
616
+ );
617
+ } else if (platform === "linux") {
618
+ browserRoots.push(
619
+ { name: "Chrome", userDataDir: path.join(homeDir, ".config", "google-chrome") },
620
+ { name: "Chromium", userDataDir: path.join(homeDir, ".config", "chromium") },
621
+ { name: "Brave", userDataDir: path.join(homeDir, ".config", "BraveSoftware", "Brave-Browser") },
622
+ { name: "Edge", userDataDir: path.join(homeDir, ".config", "microsoft-edge") }
623
+ );
624
+ } else if (platform === "win32") {
625
+ const localAppData = process.env.LOCALAPPDATA ?? "";
626
+ browserRoots.push(
627
+ { name: "Chrome", userDataDir: path.join(localAppData, "Google", "Chrome", "User Data") },
628
+ { name: "Chromium", userDataDir: path.join(localAppData, "Chromium", "User Data") },
629
+ { name: "Brave", userDataDir: path.join(localAppData, "BraveSoftware", "Brave-Browser", "User Data") },
630
+ { name: "Edge", userDataDir: path.join(localAppData, "Microsoft", "Edge", "User Data") }
631
+ );
632
+ }
633
+ for (const browser of browserRoots) {
634
+ if (!await pathExists(browser.userDataDir)) {
635
+ continue;
636
+ }
637
+ try {
638
+ const entries = await fs.readdir(browser.userDataDir);
639
+ const profiles = entries.filter(
640
+ (entry) => entry === "Default" || entry.startsWith("Profile ")
641
+ );
642
+ const profileDirectory = profiles.includes("Default") ? "Default" : profiles[0];
643
+ if (profileDirectory) {
644
+ return {
645
+ userDataDir: browser.userDataDir,
646
+ profileDirectory,
647
+ browser: browser.name
648
+ };
649
+ }
650
+ } catch {
651
+ }
652
+ }
653
+ return null;
654
+ }
459
655
  async function fetchUrl(url, options = {}) {
460
656
  const maxLength = options.maxLength ?? 3e4;
461
657
  try {
@@ -663,16 +859,25 @@ function formatPackageInfo(info) {
663
859
  }
664
860
  return lines.join("\n");
665
861
  }
862
+ var formatNpmInfo = formatPackageInfo;
666
863
 
667
864
  export {
668
865
  configureSearch,
669
866
  getSearchConfig,
670
867
  isSearchConfigured,
868
+ findChromePath,
869
+ parseGoogleResultsFromDOM,
671
870
  webSearch,
672
871
  fetchUrl,
872
+ getNpmInfo,
873
+ getPyPIInfo,
874
+ getCargoInfo,
875
+ getRubyGemsInfo,
876
+ getGoModuleInfo,
673
877
  getPackageInfo,
674
878
  formatSearchResults,
675
- formatPackageInfo
879
+ formatPackageInfo,
880
+ formatNpmInfo
676
881
  };
677
882
  /**
678
883
  * @license