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
@@ -1,16 +1,16 @@
1
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
2
 
3
- var _chunkGCXYXLRAcjs = require('./chunk-GCXYXLRA.cjs');
3
+ var _chunkS5JNQIGLcjs = require('./chunk-S5JNQIGL.cjs');
4
4
 
5
5
 
6
- var _chunkOLSBBZW6cjs = require('./chunk-OLSBBZW6.cjs');
6
+ var _chunkAQ5PVHOCcjs = require('./chunk-AQ5PVHOC.cjs');
7
7
 
8
8
 
9
9
 
10
- var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
10
+ var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
11
11
 
12
12
 
13
- var _chunk7BTSG4MEcjs = require('./chunk-7BTSG4ME.cjs');
13
+ var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
14
14
 
15
15
  // src/commands/feedback.ts
16
16
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
@@ -18,14 +18,14 @@ var _os = require('os'); var _os2 = _interopRequireDefault(_os);
18
18
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
19
19
  var metadata = {
20
20
  command: "/feedback",
21
- description: _chunk7BTSG4MEcjs.t.call(void 0, "commands.feedback.description"),
21
+ description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.feedback.description"),
22
22
  implemented: true
23
23
  };
24
24
  var DEFAULT_API_BASE_URL = "https://api.autohand.ai";
25
25
  var API_TIMEOUT = 1e4;
26
26
  var COOLDOWN_MAX_SUBMISSIONS = 5;
27
27
  var COOLDOWN_WINDOW_MS = 60 * 60 * 1e3;
28
- var COOLDOWN_STATE_PATH = `${_chunkSEKD5FH3cjs.AUTOHAND_PATHS.feedback}/cooldown.json`;
28
+ var COOLDOWN_STATE_PATH = `${_chunkKASXKDF2cjs.AUTOHAND_PATHS.feedback}/cooldown.json`;
29
29
  async function checkCooldown() {
30
30
  try {
31
31
  if (!await _fsextra2.default.pathExists(COOLDOWN_STATE_PATH)) {
@@ -56,7 +56,7 @@ async function recordSubmission() {
56
56
  const windowStart = now - COOLDOWN_WINDOW_MS;
57
57
  state.submissions = state.submissions.filter((ts) => ts > windowStart);
58
58
  state.submissions.push(now);
59
- await _fsextra2.default.ensureDir(_chunkSEKD5FH3cjs.AUTOHAND_PATHS.feedback);
59
+ await _fsextra2.default.ensureDir(_chunkKASXKDF2cjs.AUTOHAND_PATHS.feedback);
60
60
  await _fsextra2.default.writeJson(COOLDOWN_STATE_PATH, state, { spaces: 2 });
61
61
  } catch (e2) {
62
62
  }
@@ -68,18 +68,18 @@ async function feedback(_ctx) {
68
68
  console.log(_chalk2.default.gray(`Please wait ${cooldown.waitMinutes} minute${cooldown.waitMinutes === 1 ? "" : "s"} before submitting again.`));
69
69
  return null;
70
70
  }
71
- const ratingAnswer = await _chunkOLSBBZW6cjs.safePrompt.call(void 0, [
71
+ const ratingAnswer = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, [
72
72
  {
73
73
  type: "select",
74
74
  name: "rating",
75
75
  message: "How would you rate your experience?",
76
76
  choices: [
77
- { name: "5", message: "5 - Excellent" },
78
- { name: "4", message: "4 - Good" },
79
- { name: "3", message: "3 - Okay" },
80
- { name: "2", message: "2 - Poor" },
81
- { name: "1", message: "1 - Very Poor" },
82
- { name: "skip", message: "s - Skip rating" }
77
+ { name: "5", message: "Excellent" },
78
+ { name: "4", message: "Good" },
79
+ { name: "3", message: "Okay" },
80
+ { name: "2", message: "Poor" },
81
+ { name: "1", message: "Very Poor" },
82
+ { name: "skip", message: "Skip rating" }
83
83
  ]
84
84
  }
85
85
  ]);
@@ -87,43 +87,83 @@ async function feedback(_ctx) {
87
87
  console.log(_chalk2.default.gray("Feedback discarded."));
88
88
  return null;
89
89
  }
90
- const textAnswer = await _chunkOLSBBZW6cjs.safePrompt.call(void 0, [
91
- {
92
- type: "input",
93
- name: "feedback",
94
- message: "What worked? What broke? (optional)"
95
- }
96
- ]);
97
- if (!textAnswer) {
98
- console.log(_chalk2.default.gray("Feedback discarded."));
90
+ if (ratingAnswer.rating === "skip") {
91
+ console.log(_chalk2.default.gray("Feedback skipped."));
99
92
  return null;
100
93
  }
101
- const npsScore = ratingAnswer.rating === "skip" ? 0 : parseInt(ratingAnswer.rating, 10);
102
- const freeformFeedback = _optionalChain([textAnswer, 'access', _ => _.feedback, 'optionalAccess', _2 => _2.trim, 'call', _3 => _3()]) || void 0;
94
+ const npsScore = parseInt(ratingAnswer.rating, 10);
95
+ let reason;
96
+ let improvement;
97
+ let recommend;
98
+ if (npsScore >= 4) {
99
+ const reasonAnswer = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, [
100
+ {
101
+ type: "input",
102
+ name: "reason",
103
+ message: "What do you like most about Autohand? (optional, press Enter to skip)"
104
+ }
105
+ ]);
106
+ if (!reasonAnswer) {
107
+ console.log(_chalk2.default.gray("Feedback discarded."));
108
+ return null;
109
+ }
110
+ reason = _optionalChain([reasonAnswer, 'access', _ => _.reason, 'optionalAccess', _2 => _2.trim, 'call', _3 => _3()]) || void 0;
111
+ const recommendAnswer = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, [
112
+ {
113
+ type: "select",
114
+ name: "recommend",
115
+ message: "Would you recommend Autohand to a colleague?",
116
+ choices: [
117
+ { name: "yes", message: "Yes" },
118
+ { name: "no", message: "No" }
119
+ ]
120
+ }
121
+ ]);
122
+ if (!recommendAnswer) {
123
+ console.log(_chalk2.default.gray("Feedback discarded."));
124
+ return null;
125
+ }
126
+ recommend = recommendAnswer.recommend === "yes";
127
+ } else {
128
+ const improvementAnswer = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, [
129
+ {
130
+ type: "input",
131
+ name: "improvement",
132
+ message: "What could we do better? (optional, press Enter to skip)"
133
+ }
134
+ ]);
135
+ if (!improvementAnswer) {
136
+ console.log(_chalk2.default.gray("Feedback discarded."));
137
+ return null;
138
+ }
139
+ improvement = _optionalChain([improvementAnswer, 'access', _4 => _4.improvement, 'optionalAccess', _5 => _5.trim, 'call', _6 => _6()]) || void 0;
140
+ }
103
141
  const now = (/* @__PURE__ */ new Date()).toISOString();
104
142
  const runtimeError = getLastRuntimeError();
105
143
  const deviceId = await getDeviceId();
106
144
  const payload = {
107
145
  npsScore,
146
+ recommend,
147
+ reason,
148
+ improvement,
108
149
  triggerType: "manual",
109
150
  timestamp: now,
110
151
  deviceId,
111
- cliVersion: _chunkGCXYXLRAcjs.package_default.version,
152
+ cliVersion: _chunkAQ5PVHOCcjs.package_default.version,
112
153
  platform: process.platform,
113
154
  osVersion: _os2.default.release(),
114
155
  nodeVersion: process.version,
115
- freeformFeedback,
116
156
  env: {
117
157
  platform: `${process.platform}-${process.arch}`,
118
158
  node: process.version,
119
- bun: _optionalChain([process, 'access', _4 => _4.versions, 'optionalAccess', _5 => _5.bun]),
159
+ bun: _optionalChain([process, 'access', _7 => _7.versions, 'optionalAccess', _8 => _8.bun]),
120
160
  cwd: process.cwd(),
121
161
  shell: process.env.SHELL
122
162
  },
123
163
  runtimeError: runtimeError ? formatError(runtimeError) : null
124
164
  };
125
165
  try {
126
- const feedbackPath = _chunkSEKD5FH3cjs.AUTOHAND_FILES.feedbackLog;
166
+ const feedbackPath = _chunkKASXKDF2cjs.AUTOHAND_FILES.feedbackLog;
127
167
  await _fsextra2.default.ensureFile(feedbackPath);
128
168
  await _fsextra2.default.appendFile(feedbackPath, JSON.stringify(payload) + "\n", "utf8");
129
169
  } catch (e3) {
@@ -132,7 +172,7 @@ async function feedback(_ctx) {
132
172
  const apiBaseUrl = getFeedbackApiBaseUrl(_ctx);
133
173
  const response = await sendFeedbackToApi(payload, apiBaseUrl);
134
174
  if (response.success) {
135
- console.log(_chalk2.default.green(_chunk7BTSG4MEcjs.t.call(void 0, "commands.feedback.success")));
175
+ console.log(_chalk2.default.green(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.feedback.success")));
136
176
  } else {
137
177
  if (/rate limit/i.test(_nullishCoalesce(response.error, () => ( "")))) {
138
178
  console.log(_chalk2.default.yellow("Feedback saved locally (rate limited, will retry later)."));
@@ -153,11 +193,11 @@ async function sendFeedbackToApi(payload, apiBaseUrl) {
153
193
  const controller = new AbortController();
154
194
  const timeoutId = setTimeout(() => controller.abort(), API_TIMEOUT);
155
195
  try {
156
- const response = await fetch(`${apiBaseUrl}/v1/feedback`, {
196
+ const response = await fetch(getFeedbackSubmitUrl(apiBaseUrl), {
157
197
  method: "POST",
158
198
  headers: {
159
199
  "Content-Type": "application/json",
160
- "X-CLI-Version": _chunkGCXYXLRAcjs.package_default.version,
200
+ "X-CLI-Version": _chunkAQ5PVHOCcjs.package_default.version,
161
201
  "X-Device-ID": payload.deviceId
162
202
  },
163
203
  body: JSON.stringify(payload),
@@ -179,7 +219,10 @@ async function sendFeedbackToApi(payload, apiBaseUrl) {
179
219
  }
180
220
  }
181
221
  function getFeedbackApiBaseUrl(ctx) {
182
- return _optionalChain([process, 'access', _6 => _6.env, 'access', _7 => _7.AUTOHAND_API_URL, 'optionalAccess', _8 => _8.trim, 'call', _9 => _9()]) || _optionalChain([ctx, 'access', _10 => _10.config, 'optionalAccess', _11 => _11.api, 'optionalAccess', _12 => _12.baseUrl, 'optionalAccess', _13 => _13.trim, 'call', _14 => _14()]) || DEFAULT_API_BASE_URL;
222
+ return _optionalChain([process, 'access', _9 => _9.env, 'access', _10 => _10.AUTOHAND_API_URL, 'optionalAccess', _11 => _11.trim, 'call', _12 => _12()]) || _optionalChain([ctx, 'access', _13 => _13.config, 'optionalAccess', _14 => _14.api, 'optionalAccess', _15 => _15.baseUrl, 'optionalAccess', _16 => _16.trim, 'call', _17 => _17()]) || DEFAULT_API_BASE_URL;
223
+ }
224
+ function getFeedbackSubmitUrl(apiBaseUrl) {
225
+ return `${apiBaseUrl.replace(/\/+$/, "")}/v1/feedback`;
183
226
  }
184
227
  function formatFeedbackApiError(status, rawBody) {
185
228
  const body = (_nullishCoalesce(rawBody, () => ( ""))).replace(/\s+/g, " ").trim();
@@ -212,7 +255,7 @@ function truncateFeedbackError(text, max = 220) {
212
255
  return `${text.slice(0, Math.max(0, max - 1))}\u2026`;
213
256
  }
214
257
  async function getDeviceId() {
215
- const deviceIdPath = `${_chunkSEKD5FH3cjs.AUTOHAND_PATHS.feedback}/.device-id`;
258
+ const deviceIdPath = `${_chunkKASXKDF2cjs.AUTOHAND_PATHS.feedback}/.device-id`;
216
259
  try {
217
260
  if (await _fsextra2.default.pathExists(deviceIdPath)) {
218
261
  return (await _fsextra2.default.readFile(deviceIdPath, "utf8")).trim();
@@ -221,7 +264,7 @@ async function getDeviceId() {
221
264
  }
222
265
  const deviceId = `anon_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;
223
266
  try {
224
- await _fsextra2.default.ensureDir(_chunkSEKD5FH3cjs.AUTOHAND_PATHS.feedback);
267
+ await _fsextra2.default.ensureDir(_chunkKASXKDF2cjs.AUTOHAND_PATHS.feedback);
225
268
  await _fsextra2.default.writeFile(deviceIdPath, deviceId);
226
269
  } catch (e6) {
227
270
  }
@@ -0,0 +1,78 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkWGNMOVMTcjs = require('./chunk-WGNMOVMT.cjs');
4
+
5
+
6
+ var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
7
+
8
+ // src/commands/add-dir.ts
9
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
10
+ var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
11
+ var _path = require('path'); var _path2 = _interopRequireDefault(_path);
12
+ async function addDir(ctx, args) {
13
+ const dirPath = args.join(" ").trim();
14
+ if (!dirPath) {
15
+ console.log();
16
+ console.log(_chalk2.default.bold.cyan("Workspace Directories"));
17
+ console.log(_chalk2.default.gray("\u2500".repeat(50)));
18
+ console.log();
19
+ console.log(_chalk2.default.bold("Primary Workspace:"));
20
+ console.log(_chalk2.default.cyan(` ${ctx.workspaceRoot}`));
21
+ console.log();
22
+ if (ctx.additionalDirs.length > 0) {
23
+ console.log(_chalk2.default.bold("Additional Directories:"));
24
+ ctx.additionalDirs.forEach((dir, index) => {
25
+ console.log(_chalk2.default.green(` ${index + 1}. ${dir}`));
26
+ });
27
+ } else {
28
+ console.log(_chalk2.default.gray("No additional directories configured."));
29
+ }
30
+ console.log();
31
+ console.log(_chalk2.default.gray("Usage: /add-dir <path> to add a new directory"));
32
+ console.log();
33
+ return null;
34
+ }
35
+ const resolvedPath = _path2.default.resolve(dirPath);
36
+ if (!await _fsextra2.default.pathExists(resolvedPath)) {
37
+ console.log(_chalk2.default.red(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.addDir.notFound", { path: dirPath })));
38
+ return null;
39
+ }
40
+ const stats = await _fsextra2.default.stat(resolvedPath);
41
+ if (!stats.isDirectory()) {
42
+ console.log(_chalk2.default.red(`Error: Path is not a directory: ${dirPath}`));
43
+ return null;
44
+ }
45
+ const safetyResult = _chunkWGNMOVMTcjs.checkWorkspaceSafety.call(void 0, resolvedPath);
46
+ if (!safetyResult.safe) {
47
+ console.log(_chalk2.default.red(`Error: Unsafe directory: ${dirPath}`));
48
+ console.log(_chalk2.default.yellow(` ${safetyResult.reason}`));
49
+ return null;
50
+ }
51
+ if (resolvedPath === ctx.workspaceRoot) {
52
+ console.log(_chalk2.default.yellow(`Directory is already the primary workspace: ${resolvedPath}`));
53
+ return null;
54
+ }
55
+ if (ctx.additionalDirs.includes(resolvedPath)) {
56
+ console.log(_chalk2.default.yellow(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.addDir.alreadyAdded", { path: resolvedPath })));
57
+ return null;
58
+ }
59
+ ctx.addAdditionalDir(resolvedPath);
60
+ console.log(_chalk2.default.green(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.addDir.added", { path: resolvedPath })));
61
+ console.log(_chalk2.default.gray("You can now read, write, and modify files in this directory."));
62
+ return null;
63
+ }
64
+ var metadata = {
65
+ command: "/add-dir",
66
+ description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.addDir.description"),
67
+ implemented: true
68
+ };
69
+
70
+
71
+
72
+
73
+ exports.addDir = addDir; exports.metadata = metadata;
74
+ /**
75
+ * @license
76
+ * Copyright 2025 Autohand AI LLC
77
+ * SPDX-License-Identifier: Apache-2.0
78
+ */
@@ -0,0 +1,71 @@
1
+ // src/session/chatLog.ts
2
+ function decodeJsonStringLiteral(value) {
3
+ try {
4
+ return JSON.parse(`"${value}"`);
5
+ } catch {
6
+ return value;
7
+ }
8
+ }
9
+ function extractJsonStringField(raw, field) {
10
+ const match = raw.match(new RegExp(`"${field}"\\s*:\\s*"((?:\\\\.|[^"\\\\])*)"`, "s"));
11
+ return match?.[1] ? decodeJsonStringLiteral(match[1]) : null;
12
+ }
13
+ function getAssistantChatLogContent(content) {
14
+ const trimmed = content.trim();
15
+ if (!trimmed) {
16
+ return null;
17
+ }
18
+ try {
19
+ const parsed = JSON.parse(trimmed);
20
+ for (const field of ["finalResponse", "response", "content", "message"]) {
21
+ const value = parsed[field];
22
+ if (typeof value === "string" && value.trim()) {
23
+ return value.trim();
24
+ }
25
+ }
26
+ return null;
27
+ } catch {
28
+ const finalResponse = extractJsonStringField(trimmed, "finalResponse") ?? extractJsonStringField(trimmed, "response");
29
+ if (finalResponse?.trim()) {
30
+ return finalResponse.trim();
31
+ }
32
+ if (trimmed.startsWith("{") || trimmed.includes('"thought"')) {
33
+ return null;
34
+ }
35
+ return trimmed;
36
+ }
37
+ }
38
+ function buildSessionChatLog(messages) {
39
+ const chatMessages = [];
40
+ for (const message of messages) {
41
+ if (message.role === "user") {
42
+ const content = message.content.trim();
43
+ if (content) {
44
+ chatMessages.push({ role: "user", content });
45
+ }
46
+ continue;
47
+ }
48
+ if (message.role === "assistant") {
49
+ const content = getAssistantChatLogContent(message.content);
50
+ if (content) {
51
+ chatMessages.push({ role: "assistant", content });
52
+ }
53
+ }
54
+ }
55
+ return chatMessages;
56
+ }
57
+ function formatChatLogPreview(content, maxLength = 100) {
58
+ const singleLine = content.replace(/\n/g, " ").replace(/\s+/g, " ").trim();
59
+ return singleLine.length > maxLength ? `${singleLine.slice(0, maxLength)}...` : singleLine;
60
+ }
61
+
62
+ export {
63
+ getAssistantChatLogContent,
64
+ buildSessionChatLog,
65
+ formatChatLogPreview
66
+ };
67
+ /**
68
+ * @license
69
+ * Copyright 2026 Autohand AI LLC
70
+ * SPDX-License-Identifier: Apache-2.0
71
+ */
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkZYQMLKOKcjs = require('./chunk-ZYQMLKOK.cjs');
6
+ var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
7
7
 
8
8
  // src/utils/prompt.ts
9
9
  async function safePrompt(questions) {
@@ -17,7 +17,7 @@ async function safePrompt(questions) {
17
17
  label: choice.message,
18
18
  value: choice.name
19
19
  }));
20
- const result = await _chunkZYQMLKOKcjs.showModal.call(void 0, {
20
+ const result = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
21
21
  title: selectConfig.message,
22
22
  options,
23
23
  initialIndex: selectConfig.initial
@@ -25,19 +25,19 @@ async function safePrompt(questions) {
25
25
  value = _optionalChain([result, 'optionalAccess', _ => _.value]);
26
26
  } else if (question.type === "confirm") {
27
27
  const confirmConfig = question;
28
- value = await _chunkZYQMLKOKcjs.showConfirm.call(void 0, {
28
+ value = await _chunkCK4HAHVYcjs.showConfirm.call(void 0, {
29
29
  title: confirmConfig.message,
30
30
  defaultValue: confirmConfig.initial
31
31
  });
32
32
  } else if (question.type === "password") {
33
33
  const inputConfig = question;
34
- value = await _chunkZYQMLKOKcjs.showPassword.call(void 0, {
34
+ value = await _chunkCK4HAHVYcjs.showPassword.call(void 0, {
35
35
  title: inputConfig.message,
36
36
  validate: inputConfig.validate
37
37
  });
38
38
  } else if (question.type === "input") {
39
39
  const inputConfig = question;
40
- value = await _chunkZYQMLKOKcjs.showInput.call(void 0, {
40
+ value = await _chunkCK4HAHVYcjs.showInput.call(void 0, {
41
41
  title: inputConfig.message,
42
42
  defaultValue: inputConfig.initial,
43
43
  validate: inputConfig.validate
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  t
3
- } from "./chunk-APIXPPMT.js";
3
+ } from "./chunk-LEZEWKPA.js";
4
4
 
5
5
  // src/commands/help.ts
6
6
  import chalk from "chalk";
7
7
  import terminalLink from "terminal-link";
8
8
  async function help() {
9
- const { SLASH_COMMANDS } = await import("./slashCommands-LLCNPK3X.js");
9
+ const { SLASH_COMMANDS } = await import("./slashCommands-53VYIBJU.js");
10
10
  console.log(chalk.cyan(`
11
11
  ${t("commands.help.title")}
12
12
  `));
@@ -0,0 +1,77 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/utils/asciiArt.ts
2
+ var _stringwidth = require('string-width'); var _stringwidth2 = _interopRequireDefault(_stringwidth);
3
+ var DEFAULT_TERMINAL_COLUMNS = 80;
4
+ var DETAILED_LOGO_LINES = [
5
+ "\u2880\u2874\u281B\u281B\u283B\u28F7\u2844\u2800\u28E0\u2876\u281F\u281B\u283B\u28F6\u2844\u2880\u28F4\u287E\u281B\u281B\u28BF\u28E6\u2800\u2880\u28F4\u281E\u281B\u281B\u2836\u2840",
6
+ "\u284E\u2800\u28B0\u28F6\u2846\u2808\u28FF\u28F4\u28FF\u2801\u28F4\u28F6\u2844\u2818\u28FF\u28FE\u284F\u2880\u28F6\u28E6\u2800\u28BB\u2847\u28FF\u2803\u28A0\u28F6\u2846\u2800\u28B9",
7
+ "\u28A7\u2800\u2818\u281B\u2803\u28A0\u287F\u2819\u28FF\u2840\u2819\u281B\u2803\u28F0\u287F\u28BB\u28E7\u2808\u281B\u281B\u2880\u28FE\u2807\u28BB\u28C6\u2808\u281B\u280B\u2800\u287C",
8
+ "\u2808\u283B\u28B6\u28F6\u287E\u281F\u2801\u2800\u2818\u283F\u28B6\u28F6\u287E\u281F\u2801\u2800\u2819\u2837\u28F6\u28F6\u283F\u280B\u2800\u2808\u283B\u2837\u28F6\u2876\u281A\u2801",
9
+ "\u2880\u28F4\u283F\u283F\u2837\u28E6\u2840\u2800\u28E0\u28F6\u283F\u283B\u28B7\u28E6\u2840\u2800\u28E0\u287E\u281F\u283F\u28F6\u28C4\u2800\u2880\u28F4\u287E\u283F\u283F\u28F6\u28C4",
10
+ "\u287E\u2803\u28A0\u28E4\u2844\u2818\u28FF\u28E0\u28FF\u2801\u28E0\u28E4\u2844\u2839\u28F7\u28FC\u284F\u2880\u28E4\u28E4\u2808\u28BF\u2846\u28FE\u280F\u2880\u28E4\u28C4\u2808\u28BF",
11
+ "\u28A7\u2840\u2838\u283F\u2807\u2880\u28FF\u283A\u28FF\u2840\u283B\u283F\u2803\u28B0\u28FF\u28BF\u28C7\u2808\u283F\u283F\u2800\u28FC\u2847\u28BF\u28C7\u2818\u283F\u2807\u2800\u28F8",
12
+ "\u2808\u28BF\u28E6\u28E4\u28F4\u287F\u2803\u2800\u2819\u28B7\u28E6\u28E4\u28F6\u287F\u2801\u2808\u283B\u28F7\u28E4\u28E4\u287E\u281B\u2800\u2808\u28BF\u28E6\u28E4\u28E4\u2834\u2801"
13
+ ];
14
+ var COMPACT_LOGO_LINES = [
15
+ " .--. .--. .--. .--.",
16
+ "(() ) (() ) (() ) (() )",
17
+ " '--' '--' '--' '--'",
18
+ " .--. .--. .--. .--.",
19
+ "(() ) (() ) (() ) (() )",
20
+ " '--' '--' '--' '--'"
21
+ ];
22
+ var TINY_LOGO_LINES = [
23
+ "o o o o",
24
+ "o o o o"
25
+ ];
26
+ var LOGO_LINES = [
27
+ "\u2880\u2874\u281B\u281B\u283B\u28F7\u2844\u2800\u28E0\u2876\u281F\u281B\u283B\u28F6\u2844\u2880\u28F4\u287E\u281B\u281B\u28BF\u28E6\u2800\u2880\u28F4\u281E\u281B\u281B\u2836\u2840 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588",
28
+ "\u284E\u2800\u28B0\u28F6\u2846\u2808\u28FF\u28F4\u28FF\u2801\u28F4\u28F6\u2844\u2818\u28FF\u28FE\u284F\u2880\u28F6\u28E6\u2800\u28BB\u2847\u28FF\u2803\u28A0\u28F6\u2846\u2800\u28B9 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588",
29
+ "\u28A7\u2800\u2818\u281B\u2803\u28A0\u287F\u2819\u28FF\u2840\u2819\u281B\u2803\u28F0\u287F\u28BB\u28E7\u2808\u281B\u281B\u2880\u28FE\u2807\u28BB\u28C6\u2808\u281B\u280B\u2800\u287C \u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588",
30
+ "\u2808\u283B\u28B6\u28F6\u287E\u281F\u2801\u2800\u2818\u283F\u28B6\u28F6\u287E\u281F\u2801\u2800\u2819\u2837\u28F6\u28F6\u283F\u280B\u2800\u2808\u283B\u2837\u28F6\u2876\u281A\u2801 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588",
31
+ "\u2880\u28F4\u283F\u283F\u2837\u28E6\u2840\u2800\u28E0\u28F6\u283F\u283B\u28B7\u28E6\u2840\u2800\u28E0\u287E\u281F\u283F\u28F6\u28C4\u2800\u2880\u28F4\u287E\u283F\u283F\u28F6\u28C4 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588",
32
+ "\u287E\u2803\u28A0\u28E4\u2844\u2818\u28FF\u28E0\u28FF\u2801\u28E0\u28E4\u2844\u2839\u28F7\u28FC\u284F\u2880\u28E4\u28E4\u2808\u28BF\u2846\u28FE\u280F\u2880\u28E4\u28C4\u2808\u28BF",
33
+ "\u28A7\u2840\u2838\u283F\u2807\u2880\u28FF\u283A\u28FF\u2840\u283B\u283F\u2803\u28B0\u28FF\u28BF\u28C7\u2808\u283F\u283F\u2800\u28FC\u2847\u28BF\u28C7\u2818\u283F\u2807\u2800\u28F8",
34
+ "\u2808\u28BF\u28E6\u28E4\u28F4\u287F\u2803\u2800\u2819\u28B7\u28E6\u28E4\u28F6\u287F\u2801\u2808\u283B\u28F7\u28E4\u28E4\u287E\u281B\u2800\u2808\u28BF\u28E6\u28E4\u28E4\u2834\u2801"
35
+ ];
36
+ var ASCII_FRIEND = DETAILED_LOGO_LINES.join("\n");
37
+ function maxLineWidth(lines) {
38
+ return Math.max(...lines.map((line) => _stringwidth2.default.call(void 0, line)));
39
+ }
40
+ function normalizeColumns(columns) {
41
+ if (typeof columns !== "number" || !Number.isFinite(columns)) {
42
+ return DEFAULT_TERMINAL_COLUMNS;
43
+ }
44
+ return Math.max(1, Math.floor(columns));
45
+ }
46
+ function getTerminalColumns(output = process.stdout) {
47
+ return normalizeColumns(output.columns);
48
+ }
49
+ function renderAutohandLogo(options = {}) {
50
+ const columns = normalizeColumns(options.columns);
51
+ const candidates = [
52
+ ...options.includeWordmark ? [{ lines: LOGO_LINES, minColumns: 120 }] : [],
53
+ { lines: DETAILED_LOGO_LINES, minColumns: 64 },
54
+ { lines: COMPACT_LOGO_LINES, minColumns: 24 },
55
+ { lines: TINY_LOGO_LINES, minColumns: 7 }
56
+ ];
57
+ const match = candidates.find(
58
+ (candidate) => columns >= candidate.minColumns && maxLineWidth(candidate.lines) <= columns
59
+ );
60
+ if (match) {
61
+ return match.lines.join("\n");
62
+ }
63
+ return columns >= "autohand".length ? "autohand" : "ah";
64
+ }
65
+
66
+
67
+
68
+
69
+
70
+ exports.ASCII_FRIEND = ASCII_FRIEND; exports.getTerminalColumns = getTerminalColumns; exports.renderAutohandLogo = renderAutohandLogo;
71
+ /**
72
+ * @license
73
+ * Copyright 2025 Autohand AI LLC
74
+ * SPDX-License-Identifier: Apache-2.0
75
+ *
76
+ * Centralized ASCII artwork for the CLI
77
+ */
@@ -2,10 +2,10 @@ import {
2
2
  showConfirm,
3
3
  showInput,
4
4
  showModal
5
- } from "./chunk-YZXUDM5X.js";
5
+ } from "./chunk-NZ3ZWLUW.js";
6
6
  import {
7
7
  t
8
- } from "./chunk-APIXPPMT.js";
8
+ } from "./chunk-LEZEWKPA.js";
9
9
 
10
10
  // src/commands/export.ts
11
11
  import chalk from "chalk";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  configureSearch,
3
3
  getSearchConfig
4
- } from "./chunk-SAHBLB3E.js";
4
+ } from "./chunk-FP46B4X3.js";
5
5
  import {
6
6
  showModal,
7
7
  showPassword
8
- } from "./chunk-YZXUDM5X.js";
8
+ } from "./chunk-NZ3ZWLUW.js";
9
9
  import {
10
10
  saveConfig
11
- } from "./chunk-ZYVS43MU.js";
11
+ } from "./chunk-IEPLQ47J.js";
12
12
 
13
13
  // src/commands/search.ts
14
14
  import chalk from "chalk";
@@ -19,12 +19,22 @@ async function search(ctx) {
19
19
  console.log(chalk.gray(`Current provider: ${chalk.cyan(currentConfig.provider)}`));
20
20
  const braveKeySet = !!(currentConfig.braveApiKey || process.env.BRAVE_SEARCH_API_KEY);
21
21
  const parallelKeySet = !!(currentConfig.parallelApiKey || process.env.PARALLEL_API_KEY);
22
+ const exaKeySet = !!(currentConfig.exaApiKey || process.env.EXA_API_KEY);
22
23
  console.log(chalk.gray(`Brave API key: ${braveKeySet ? chalk.green("configured") : chalk.yellow("not set")}`));
23
24
  console.log(chalk.gray(`Parallel API key: ${parallelKeySet ? chalk.green("configured") : chalk.yellow("not set")}`));
25
+ console.log(chalk.gray(`Exa API key: ${exaKeySet ? chalk.green("configured") : chalk.yellow("not set")}`));
24
26
  console.log();
25
27
  const providerOptions = [
26
28
  {
27
- label: `Google ${chalk.gray("(no API key required, recommended default)")}`,
29
+ label: `Browser Profile ${chalk.gray("(uses your Chrome/Brave cookies - no API key)")}`,
30
+ value: "browser-profile"
31
+ },
32
+ {
33
+ label: `Exa.ai ${chalk.gray("(requires API key)")} ${exaKeySet ? chalk.green("\u2713") : ""}`,
34
+ value: "exa"
35
+ },
36
+ {
37
+ label: `Google ${chalk.gray("(no API key required)")}`,
28
38
  value: "google"
29
39
  },
30
40
  {
@@ -53,6 +63,19 @@ async function search(ctx) {
53
63
  const provider = result.value;
54
64
  let braveApiKey = currentConfig.braveApiKey;
55
65
  let parallelApiKey = currentConfig.parallelApiKey;
66
+ let exaApiKey = currentConfig.exaApiKey;
67
+ if (provider === "exa" && !exaKeySet) {
68
+ console.log(chalk.gray("\nGet your Exa.ai API key at: https://exa.ai\n"));
69
+ const apiKey = await showPassword({
70
+ title: "Enter Exa.ai API key:"
71
+ });
72
+ if (apiKey?.trim()) {
73
+ exaApiKey = apiKey.trim();
74
+ } else {
75
+ console.log(chalk.yellow("No API key entered. Exa.ai Search will not work without an API key."));
76
+ return null;
77
+ }
78
+ }
56
79
  if (provider === "brave" && !braveKeySet) {
57
80
  console.log(chalk.gray("\nGet your free Brave Search API key at: https://brave.com/search/api/\n"));
58
81
  const apiKey = await showPassword({
@@ -80,13 +103,15 @@ async function search(ctx) {
80
103
  configureSearch({
81
104
  provider,
82
105
  braveApiKey,
83
- parallelApiKey
106
+ parallelApiKey,
107
+ exaApiKey
84
108
  });
85
109
  if (config) {
86
110
  config.search = {
87
111
  provider,
88
112
  braveApiKey,
89
- parallelApiKey
113
+ parallelApiKey,
114
+ exaApiKey
90
115
  };
91
116
  await saveConfig(config);
92
117
  console.log(chalk.green(`
@@ -96,6 +121,12 @@ async function search(ctx) {
96
121
  \u2713 Search provider set to ${provider} (session only)`));
97
122
  }
98
123
  switch (provider) {
124
+ case "browser-profile":
125
+ console.log(chalk.gray("Browser Profile Search is now active. Uses your Chrome/Brave cookies for better results."));
126
+ break;
127
+ case "exa":
128
+ console.log(chalk.gray("Exa.ai Search is now active with neural search capabilities."));
129
+ break;
99
130
  case "google":
100
131
  console.log(chalk.gray("Google Search is now active. No API key required."));
101
132
  break;
@@ -116,7 +147,7 @@ async function search(ctx) {
116
147
  }
117
148
  var metadata = {
118
149
  command: "/search",
119
- description: "configure web search provider (google, brave, duckduckgo, parallel)",
150
+ description: "configure web search provider (browser-profile, exa, google, brave, duckduckgo, parallel)",
120
151
  implemented: true
121
152
  };
122
153
 
@@ -3,7 +3,7 @@ import os from "os";
3
3
  import path from "path";
4
4
  var AUTOHAND_HOME = process.env.AUTOHAND_HOME || path.join(os.homedir(), ".autohand");
5
5
  var AUTOHAND_PATHS = {
6
- /** Configuration files (config.json, config.yaml, config.yml) */
6
+ /** Configuration files (config.toml, config.yaml, config.yml, config.json) */
7
7
  config: AUTOHAND_HOME,
8
8
  /** Session data storage */
9
9
  sessions: path.join(AUTOHAND_HOME, "sessions"),
@@ -33,6 +33,7 @@ var AUTOHAND_PATHS = {
33
33
  var AUTOHAND_FILES = {
34
34
  /** Main config file */
35
35
  configJson: path.join(AUTOHAND_HOME, "config.json"),
36
+ configToml: path.join(AUTOHAND_HOME, "config.toml"),
36
37
  configYaml: path.join(AUTOHAND_HOME, "config.yaml"),
37
38
  configYml: path.join(AUTOHAND_HOME, "config.yml"),
38
39
  /** Device ID for telemetry */
@@ -44,7 +45,9 @@ var AUTOHAND_FILES = {
44
45
  /** Telemetry queue */
45
46
  telemetryQueue: path.join(AUTOHAND_PATHS.telemetry, "queue.json"),
46
47
  /** Session sync queue */
47
- sessionSyncQueue: path.join(AUTOHAND_PATHS.telemetry, "session-sync-queue.json")
48
+ sessionSyncQueue: path.join(AUTOHAND_PATHS.telemetry, "session-sync-queue.json"),
49
+ /** Last successful remote feature flag evaluation */
50
+ featureFlagsCache: path.join(AUTOHAND_HOME, "feature-flags.json")
48
51
  };
49
52
  var PROJECT_DIR_NAME = ".autohand";
50
53
  var getAuthBaseUrl = () => process["env"]["AUTOHAND_API_URL"] || "https://autohand.ai";
@@ -57,7 +60,9 @@ var AUTH_CONFIG = {
57
60
  },
58
61
  pollInterval: 2e3,
59
62
  authTimeout: 5 * 60 * 1e3,
60
- sessionExpiryDays: 30
63
+ sessionExpiryDays: 30,
64
+ /** Idle timeout in ms before forcing logout (30 minutes) */
65
+ idleTimeoutMs: 30 * 60 * 1e3
61
66
  };
62
67
  var SYNC_CONFIG = {
63
68
  /** Default sync interval in ms (5 minutes) */