autohand-cli 0.7.13 → 0.8.0

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 (394) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/AgentRegistry-7LDL5HJH.js +10 -0
  3. package/dist/AgentRegistry-NQCLWABO.cjs +10 -0
  4. package/dist/{AutomodeManager-NGRAO2MH.js → AutomodeManager-MWLKGPZK.js} +2 -0
  5. package/dist/{AutomodeManager-ZKQMBM4T.cjs → AutomodeManager-NYIZNODK.cjs} +3 -1
  6. package/dist/CommunitySkillsCache-6QPRMTJO.js +8 -0
  7. package/dist/CommunitySkillsCache-GTQMOCCO.cjs +8 -0
  8. package/dist/{GitHubRegistryFetcher-US2JJID4.js → GitHubRegistryFetcher-6JQ5JEDZ.js} +1 -0
  9. package/dist/{GitHubRegistryFetcher-K744NNAJ.cjs → GitHubRegistryFetcher-S7QFUEKV.cjs} +1 -0
  10. package/dist/HookManager-Q2KYMCP4.cjs +7 -0
  11. package/dist/HookManager-TTP4Y6DC.js +7 -0
  12. package/dist/ImportWizard-IWVPRKFF.cjs +466 -0
  13. package/dist/ImportWizard-KASGQPUY.js +466 -0
  14. package/dist/McpClientManager-7RM6YT35.js +8 -0
  15. package/dist/McpClientManager-RKD7C6OY.cjs +8 -0
  16. package/dist/MemoryManager-GUNLRP5S.js +8 -0
  17. package/dist/MemoryManager-TNSGKDKX.cjs +8 -0
  18. package/dist/PermissionManager-2GO5PQ6M.cjs +11 -0
  19. package/dist/{PermissionManager-U5OMGR3L.js → PermissionManager-K7UWSNB6.js} +4 -3
  20. package/dist/ProjectProfiler-UMJJSOCE.js +194 -0
  21. package/dist/ProjectProfiler-ZDWR2ODG.cjs +194 -0
  22. package/dist/ProviderFactory-EFFQBRQ6.cjs +9 -0
  23. package/dist/ProviderFactory-S3LWTQQC.js +9 -0
  24. package/dist/SessionManager-FEUAU3ZJ.cjs +10 -0
  25. package/dist/SessionManager-IKWAK2PI.js +10 -0
  26. package/dist/SkillsRegistry-GDEGFP6O.cjs +9 -0
  27. package/dist/SkillsRegistry-SI5RUHQ4.js +9 -0
  28. package/dist/SubAgent-I75HELJG.js +11 -0
  29. package/dist/SubAgent-K3QP6WHC.cjs +11 -0
  30. package/dist/{SyncApiClient-AYXYSOJM.js → SyncApiClient-LVIO4C2S.js} +1 -0
  31. package/dist/{SyncApiClient-ID3KXEMA.cjs → SyncApiClient-ZNYMT36M.cjs} +1 -0
  32. package/dist/about-B2AGTV6N.js +12 -0
  33. package/dist/about-V2HWEZZO.cjs +12 -0
  34. package/dist/actionExecutor-6XCVL2SJ.js +19 -0
  35. package/dist/actionExecutor-YRUJNB5G.cjs +19 -0
  36. package/dist/add-dir-7FBQ5IFV.js +10 -0
  37. package/dist/add-dir-ALBSYRV3.cjs +10 -0
  38. package/dist/agents/builtin/code-cleaner.md +14 -0
  39. package/dist/agents/builtin/docs-writer.md +14 -0
  40. package/dist/agents/builtin/researcher.md +14 -0
  41. package/dist/agents/builtin/reviewer.md +15 -0
  42. package/dist/agents/builtin/tester.md +15 -0
  43. package/dist/agents/builtin/todo-resolver.md +15 -0
  44. package/dist/agents-FCGEWTA3.cjs +12 -0
  45. package/dist/agents-FENGUSJD.js +12 -0
  46. package/dist/agents-new-FU3O55CO.js +14 -0
  47. package/dist/agents-new-SAFTJ7TK.cjs +14 -0
  48. package/dist/assets/icon.png +0 -0
  49. package/dist/automode-CYLGXQ4A.cjs +10 -0
  50. package/dist/automode-O7G3DUYN.js +10 -0
  51. package/dist/{cc-UTTLESTY.js → cc-7LEIJ3KF.js} +1 -0
  52. package/dist/{cc-2W6M7J45.cjs → cc-Q5MM4AWC.cjs} +1 -0
  53. package/dist/{chunk-N4ZSG6JJ.cjs → chunk-22D2CNTP.cjs} +2 -2
  54. package/dist/chunk-24QIWILL.js +51 -0
  55. package/dist/{chunk-MYNHJHDZ.js → chunk-2AA5MFES.js} +1 -1
  56. package/dist/{chunk-2JMWWYMZ.js → chunk-2ELK5DMH.js} +44 -10
  57. package/dist/chunk-2JYIR3EC.cjs +1176 -0
  58. package/dist/{chunk-RRZFJIIB.js → chunk-2RIAPTET.js} +90 -66
  59. package/dist/{chunk-TSY7JHIV.cjs → chunk-33A755XB.cjs} +2 -2
  60. package/dist/chunk-3OEDGIFW.js +42 -0
  61. package/dist/{chunk-P5VDZ6PV.js → chunk-3PDTTAKJ.js} +1 -1
  62. package/dist/{chunk-ULMPJUJW.cjs → chunk-3WCOFXQS.cjs} +23 -23
  63. package/dist/{chunk-ONAY5SD2.cjs → chunk-4HKTYHNL.cjs} +22 -16
  64. package/dist/{chunk-Z4J4W6YQ.cjs → chunk-4JNNTOGF.cjs} +2 -48
  65. package/dist/chunk-55B6SBHK.js +260 -0
  66. package/dist/chunk-5DDDUUBM.cjs +29 -0
  67. package/dist/{chunk-TQB222ZB.js → chunk-5EIEWVYX.js} +2 -2
  68. package/dist/{chunk-SMHY3Q7B.cjs → chunk-5GGX6WNY.cjs} +54 -22
  69. package/dist/{chunk-3S4DEIJP.cjs → chunk-5IXII4HX.cjs} +2 -2
  70. package/dist/{chunk-3KBBARKO.js → chunk-5OBNULPU.js} +85 -28
  71. package/dist/{chunk-VVBBEYTH.cjs → chunk-5YJG6H6P.cjs} +10 -10
  72. package/dist/{chunk-PKOAXQKW.cjs → chunk-63WXWFDI.cjs} +11 -11
  73. package/dist/{chunk-DSKVMFRM.cjs → chunk-643VRA5S.cjs} +12 -4
  74. package/dist/{chunk-L5ZFPWHY.js → chunk-6OYHF6MF.js} +12 -4
  75. package/dist/chunk-7GDVDSNI.js +1176 -0
  76. package/dist/chunk-7QEE6SW6.cjs +260 -0
  77. package/dist/chunk-7UOUW76C.js +603 -0
  78. package/dist/{chunk-SZP4ULM5.cjs → chunk-AFN7LH5N.cjs} +17 -17
  79. package/dist/chunk-AHD5JJ6F.cjs +78 -0
  80. package/dist/{chunk-WLTVF77A.js → chunk-ALYU6VTM.js} +1 -1
  81. package/dist/{chunk-BRXIEKJ3.cjs → chunk-AMT2UZBI.cjs} +5 -5
  82. package/dist/{chunk-SFNT5DYE.cjs → chunk-BT35E7NE.cjs} +4 -4
  83. package/dist/{chunk-NUHYCFHW.cjs → chunk-BVKXEQVG.cjs} +54 -65
  84. package/dist/chunk-CDMGQR4L.cjs +4470 -0
  85. package/dist/chunk-CNBKZEX5.cjs +109 -0
  86. package/dist/{chunk-GD4AFYJ3.js → chunk-CVVEYUFR.js} +1 -1
  87. package/dist/chunk-CWALFEGU.js +58 -0
  88. package/dist/{chunk-MTALRU7R.cjs → chunk-D3YCFT5O.cjs} +3 -3
  89. package/dist/{chunk-METF3I6W.cjs → chunk-D6VG7B5X.cjs} +10 -4
  90. package/dist/{chunk-TOTDRAWG.js → chunk-DH7DKCUL.js} +1 -1
  91. package/dist/{chunk-RFNCTE4V.cjs → chunk-DLG43ZJ7.cjs} +2 -2
  92. package/dist/chunk-DN573ME7.cjs +1675 -0
  93. package/dist/{chunk-63BXZQZW.js → chunk-E23CMMNJ.js} +20 -4
  94. package/dist/{chunk-4HA7IHLJ.cjs → chunk-EEGK5DYE.cjs} +32 -16
  95. package/dist/{chunk-DTFR3WD6.js → chunk-EF4LKUQY.js} +1 -1
  96. package/dist/{chunk-PWLLLJHU.js → chunk-EGFT4PGW.js} +3 -1
  97. package/dist/{chunk-S47TCZDL.js → chunk-EIU7K7CM.js} +7 -7
  98. package/dist/{chunk-BISFR6ZL.js → chunk-EPNYD4NV.js} +1 -1
  99. package/dist/chunk-EZMINVLU.js +123 -0
  100. package/dist/{chunk-LYMTYC67.js → chunk-F23EVNJU.js} +2 -2
  101. package/dist/chunk-FHK7UDOJ.cjs +42 -0
  102. package/dist/chunk-FMB3TSWP.cjs +218 -0
  103. package/dist/{chunk-XBUMKEFN.cjs → chunk-FPAE6ORV.cjs} +91 -34
  104. package/dist/{chunk-DEAEO7RI.js → chunk-FYZ67R4R.js} +1 -1
  105. package/dist/{chunk-6SHHB2VD.js → chunk-G7SZIOHF.js} +2 -2
  106. package/dist/{chunk-FB6JWNJS.js → chunk-GBHDROGL.js} +54 -65
  107. package/dist/chunk-GCHELXLO.js +131 -0
  108. package/dist/{chunk-7YX3OD4B.js → chunk-GHSBZ3YB.js} +2 -2
  109. package/dist/chunk-GLBAF54O.js +218 -0
  110. package/dist/chunk-GO3N7LRW.cjs +131 -0
  111. package/dist/{chunk-KW4SQWBU.cjs → chunk-H6ZGZEBG.cjs} +57 -23
  112. package/dist/{chunk-CTJILRNQ.cjs → chunk-HA7OAVOB.cjs} +15 -15
  113. package/dist/{chunk-NMWEDN4Z.js → chunk-HFMLWH7B.js} +108 -0
  114. package/dist/{chunk-D2XFTCRP.js → chunk-HQ7YZKXE.js} +1 -1
  115. package/dist/{chunk-L42HTMMR.cjs → chunk-HTLINWX6.cjs} +2 -2
  116. package/dist/chunk-IETRBBMP.cjs +603 -0
  117. package/dist/chunk-IQ5RXU6O.js +1675 -0
  118. package/dist/{chunk-B5HIJJ4B.js → chunk-ITB3FS72.js} +11 -5
  119. package/dist/{chunk-B6EBHCK2.cjs → chunk-IUMJYXBX.cjs} +6 -6
  120. package/dist/{chunk-ZBIBLOZL.js → chunk-IVM5F2AE.js} +500 -317
  121. package/dist/{chunk-GRSVQ5YZ.js → chunk-IWVQ2EW3.js} +44 -12
  122. package/dist/chunk-JJWCQLOU.cjs +59 -0
  123. package/dist/{chunk-KXAAEROY.js → chunk-JMFDD7IZ.js} +2 -2
  124. package/dist/chunk-JSBRDJBE.js +30 -0
  125. package/dist/chunk-LJFUXC56.cjs +123 -0
  126. package/dist/chunk-LL3PQ2U6.js +4470 -0
  127. package/dist/chunk-LQ4LQQG6.cjs +27 -0
  128. package/dist/chunk-LQGVEP3E.js +109 -0
  129. package/dist/{chunk-425MT6Y5.cjs → chunk-LVE6Z5SL.cjs} +9 -9
  130. package/dist/{chunk-XL77XYI2.cjs → chunk-LXDOQTXQ.cjs} +4 -4
  131. package/dist/{chunk-BG4OQUKP.js → chunk-MBBY4ZIK.js} +1 -1
  132. package/dist/{chunk-XQLWN4Y3.cjs → chunk-MGMXR67S.cjs} +9 -9
  133. package/dist/{chunk-FHUNAB2K.cjs → chunk-MHLE6AVN.cjs} +33 -6
  134. package/dist/chunk-MHSDHPC4.cjs +58 -0
  135. package/dist/chunk-MUBW5UDH.cjs +55 -0
  136. package/dist/{chunk-R3H25HQZ.cjs → chunk-MVWOQBCC.cjs} +11 -11
  137. package/dist/chunk-N254NRHT.cjs +30 -0
  138. package/dist/{chunk-SRLY7K6J.js → chunk-OBLIITWJ.js} +2 -2
  139. package/dist/{chunk-SIGWDEPS.cjs → chunk-OI7OIGNB.cjs} +10 -10
  140. package/dist/{chunk-V7YTCNMN.cjs → chunk-OPR34VHL.cjs} +5 -5
  141. package/dist/chunk-OUHQZFN4.js +78 -0
  142. package/dist/{chunk-HMRDNRTH.js → chunk-PEC45WYS.js} +2 -2
  143. package/dist/{chunk-OSUWEUZE.js → chunk-PUOE5BCN.js} +1 -1
  144. package/dist/chunk-Q2VYSHWU.js +59 -0
  145. package/dist/chunk-Q3MJ6CYS.cjs +193 -0
  146. package/dist/{chunk-B2K7JZRW.js → chunk-Q5RN7RXC.js} +2 -2
  147. package/dist/{chunk-43XS26AQ.cjs → chunk-Q5RX3XGB.cjs} +4 -4
  148. package/dist/chunk-QCLYBIMM.cjs +51 -0
  149. package/dist/chunk-QMAKTSZB.cjs +48 -0
  150. package/dist/chunk-QT2VZNFA.js +29 -0
  151. package/dist/{chunk-3AWZFG5G.js → chunk-QUFAULH7.js} +10 -4
  152. package/dist/{chunk-RJP3SZ7Q.cjs → chunk-RD5XAJR2.cjs} +492 -309
  153. package/dist/chunk-RGR6ME5J.cjs +844 -0
  154. package/dist/{chunk-EOGKE5GD.cjs → chunk-RKJTGGMU.cjs} +221 -126
  155. package/dist/{chunk-NMGF2KUN.js → chunk-RO46YAPI.js} +1 -1
  156. package/dist/{chunk-2U5HFVRO.cjs → chunk-RVUQKMXX.cjs} +108 -0
  157. package/dist/chunk-S52YW5ZQ.js +844 -0
  158. package/dist/{chunk-ZLOTP56B.cjs → chunk-S6BDWWUG.cjs} +5 -5
  159. package/dist/{chunk-6DWXHBAY.js → chunk-SAHBLB3E.js} +222 -127
  160. package/dist/chunk-SALLHB2I.js +27 -0
  161. package/dist/{chunk-GIZL57FE.cjs → chunk-SEKD5FH3.cjs} +3 -1
  162. package/dist/{chunk-DZHR34H6.cjs → chunk-SHFA46CS.cjs} +8 -8
  163. package/dist/{chunk-MILZEEUV.js → chunk-SIHRD34Z.js} +2 -2
  164. package/dist/{chunk-BPTBKO7D.js → chunk-SO3QQJAZ.js} +216 -36
  165. package/dist/{chunk-HSPWX4Z2.cjs → chunk-SRQW3B6J.cjs} +223 -43
  166. package/dist/{chunk-MY3TZER2.js → chunk-T63AMO6H.js} +1 -1
  167. package/dist/{chunk-X765A7J5.js → chunk-TERCG25S.js} +1 -1
  168. package/dist/{chunk-WOGJXDBU.cjs → chunk-TFSRRZWP.cjs} +3 -3
  169. package/dist/{chunk-RRZS5A53.js → chunk-TQHOVHRS.js} +1 -1
  170. package/dist/{chunk-JHOQABEF.js → chunk-TWEKBHUO.js} +5 -5
  171. package/dist/chunk-U3WDY42C.cjs +42 -0
  172. package/dist/{chunk-CKN2BLHK.cjs → chunk-UBS46QL3.cjs} +2 -2
  173. package/dist/{chunk-H3GBSPK5.js → chunk-UGTFKUW4.js} +14 -6
  174. package/dist/chunk-UJTCTTUF.cjs +271 -0
  175. package/dist/{chunk-RUZB43HU.cjs → chunk-UTI6ZQEY.cjs} +22 -14
  176. package/dist/{chunk-OLG7LZBD.js → chunk-VG34MG2U.js} +1 -1
  177. package/dist/{chunk-ZKZRFH37.cjs → chunk-VJYPP6PP.cjs} +6 -6
  178. package/dist/{chunk-YHGTBPEC.js → chunk-VNQ5GL34.js} +1 -1
  179. package/dist/{chunk-XDVG3NM4.js → chunk-W3X6PAC7.js} +2 -48
  180. package/dist/{chunk-FK2DVRPJ.js → chunk-WFUUXADU.js} +2 -2
  181. package/dist/{chunk-R5OO7MEB.cjs → chunk-WGTJOIB7.cjs} +22 -22
  182. package/dist/{chunk-VHBUKGRG.js → chunk-WJDPVW7T.js} +4 -4
  183. package/dist/chunk-WNUVPKBW.js +42 -0
  184. package/dist/{chunk-EV53SLSB.cjs → chunk-WPVWQSL7.cjs} +4 -4
  185. package/dist/chunk-WQ3VJXZB.js +118 -0
  186. package/dist/chunk-WTNBX2JO.js +271 -0
  187. package/dist/chunk-XAV24VYN.js +48 -0
  188. package/dist/chunk-XDLH4EDL.cjs +118 -0
  189. package/dist/{chunk-U7CZFKPL.cjs → chunk-XMNHZRUB.cjs} +2 -2
  190. package/dist/chunk-XUDSXGGV.cjs +1822 -0
  191. package/dist/{chunk-YESQ7XR3.js → chunk-XWASJ2QL.js} +4 -4
  192. package/dist/chunk-Y2SXUCNJ.js +55 -0
  193. package/dist/{chunk-AIH6GUGB.cjs → chunk-YDCDGTK6.cjs} +5 -5
  194. package/dist/chunk-YFXTE422.cjs +92 -0
  195. package/dist/chunk-YKS55CMT.js +1822 -0
  196. package/dist/{chunk-KC5FPUOF.cjs → chunk-YRLYSQEQ.cjs} +2 -2
  197. package/dist/{chunk-JWPI6O5Z.js → chunk-YS34SVY5.js} +31 -4
  198. package/dist/{chunk-FEVHH525.cjs → chunk-YYB42DCU.cjs} +4 -4
  199. package/dist/chunk-ZK6HOR62.js +92 -0
  200. package/dist/{chunk-BHV7CBNT.js → chunk-ZSE42BRE.js} +1 -1
  201. package/dist/clear-ES5WCZRF.cjs +12 -0
  202. package/dist/clear-J7XS6T5W.js +12 -0
  203. package/dist/completion-XQTDTJLK.cjs +14 -0
  204. package/dist/completion-XR6ZONJQ.js +14 -0
  205. package/dist/config-2TB3A55J.js +18 -0
  206. package/dist/config-RDMVIV26.cjs +18 -0
  207. package/dist/constants-6CPCJ3DY.cjs +21 -0
  208. package/dist/{constants-V6J54N3X.js → constants-UFM5B232.js} +2 -1
  209. package/dist/{defaultHooks-WLMRQUXG.cjs → defaultHooks-RCXPHF4M.cjs} +3 -1
  210. package/dist/{defaultHooks-R56VYG7I.js → defaultHooks-RDRMER3Z.js} +2 -0
  211. package/dist/export-EWAYH353.cjs +12 -0
  212. package/dist/export-ZWA6XGVS.js +12 -0
  213. package/dist/extractSessionMemories-SDW2MVBQ.cjs +7 -0
  214. package/dist/extractSessionMemories-V7K42ZHW.js +7 -0
  215. package/dist/feedback-5RV6ODW4.js +15 -0
  216. package/dist/feedback-ZPITHFJR.cjs +15 -0
  217. package/dist/filesystem-3SGCW2BF.js +10 -0
  218. package/dist/filesystem-MCFXJQ6R.cjs +10 -0
  219. package/dist/formatters-6K7QVWQL.cjs +10 -0
  220. package/dist/formatters-DQHO5I36.js +10 -0
  221. package/dist/{help-RU24K66K.js → help-I5GRCA3S.js} +3 -2
  222. package/dist/help-X52PZM24.cjs +12 -0
  223. package/dist/history-4WIOZ4TW.cjs +14 -0
  224. package/dist/{history-AV4XBFRK.js → history-OCHJBJW7.js} +3 -2
  225. package/dist/hooks-IAVTXUAI.cjs +13 -0
  226. package/dist/hooks-YF6HL23E.js +13 -0
  227. package/dist/{i18n-BSAPXM56.js → i18n-KHBXUALK.js} +2 -1
  228. package/dist/i18n-MVQIAZWS.cjs +33 -0
  229. package/dist/ide-4R3BEBIS.js +12 -0
  230. package/dist/ide-C7WSPQTR.cjs +12 -0
  231. package/dist/import-2ICSKDL7.cjs +10 -0
  232. package/dist/import-EAAX5HJR.js +170 -0
  233. package/dist/import-KRVVYJCZ.js +10 -0
  234. package/dist/import-PQJPNXA4.cjs +170 -0
  235. package/dist/index.cjs +8671 -12373
  236. package/dist/index.js +8739 -12441
  237. package/dist/init-6K3NRDOM.js +10 -0
  238. package/dist/init-AOUGGITS.cjs +10 -0
  239. package/dist/language-Q7YFDVSR.cjs +18 -0
  240. package/dist/language-Y6ZC7LET.js +18 -0
  241. package/dist/{lint-44UQJ673.cjs → lint-D5UOJWIK.cjs} +1 -0
  242. package/dist/{lint-TA2ZHVLM.js → lint-NJPZWVN2.js} +1 -0
  243. package/dist/{localProjectPermissions-WQYMGI42.js → localProjectPermissions-N77HA3XK.js} +3 -2
  244. package/dist/localProjectPermissions-UFSMNTBJ.cjs +18 -0
  245. package/dist/login-6OAH2NEH.cjs +20 -0
  246. package/dist/login-DL3377MD.js +20 -0
  247. package/dist/logout-ELQBUMTU.cjs +18 -0
  248. package/dist/logout-TLYA5W45.js +18 -0
  249. package/dist/mcp-BHOIBYUB.js +18 -0
  250. package/dist/mcp-TNUEXR5T.cjs +18 -0
  251. package/dist/{mcp-install-2KVKRAMQ.cjs → mcp-install-GROTZHAW.cjs} +26 -14
  252. package/dist/{mcp-install-77UXRN6R.js → mcp-install-KSADVDBE.js} +21 -9
  253. package/dist/memory-6DRFA43C.js +10 -0
  254. package/dist/memory-IORZE6WF.cjs +10 -0
  255. package/dist/message-JUBOK2VU.js +9 -0
  256. package/dist/message-ZJ5AYAMT.cjs +9 -0
  257. package/dist/model-CJPSPGIC.cjs +10 -0
  258. package/dist/model-MQXC56ES.js +10 -0
  259. package/dist/new-7D2B7IWM.cjs +12 -0
  260. package/dist/new-7VYM36RC.js +12 -0
  261. package/dist/{patch-BAAQIYSW.js → patch-5F6VBIT3.js} +2 -0
  262. package/dist/{patch-J32X2QQP.cjs → patch-MOD7QC3D.cjs} +3 -1
  263. package/dist/permissions-MM77OSFO.js +13 -0
  264. package/dist/permissions-W2F62DJ6.cjs +13 -0
  265. package/dist/{plan-JFGNRL2S.js → plan-G5CEKJI4.js} +1 -0
  266. package/dist/{plan-B3CW5DXJ.cjs → plan-QKOHE3LH.cjs} +1 -0
  267. package/dist/quit-7D2RDGTD.cjs +10 -0
  268. package/dist/quit-PKBSEJOL.js +10 -0
  269. package/dist/registry-A5XLMQVC.cjs +1828 -0
  270. package/dist/registry-WQLWHOLY.js +1828 -0
  271. package/dist/resume-FBKXSDOA.js +13 -0
  272. package/dist/resume-KLPDYPWQ.cjs +13 -0
  273. package/dist/search-7RNYTCNO.js +17 -0
  274. package/dist/search-UESMQZC3.cjs +17 -0
  275. package/dist/{session-T3TAZ5ZU.cjs → session-BSU2L5UI.cjs} +1 -0
  276. package/dist/{session-H5QWKE5E.js → session-SZMRN5KG.js} +1 -0
  277. package/dist/sessions-TSSUFWIJ.cjs +10 -0
  278. package/dist/sessions-WAXBUQTU.js +10 -0
  279. package/dist/settings-D6JXX5RG.js +30 -0
  280. package/dist/settings-RKYGXKDG.cjs +30 -0
  281. package/dist/share-GLX4YHS4.cjs +14 -0
  282. package/dist/share-U2M2KBFJ.js +14 -0
  283. package/dist/skills-63QLZMUO.cjs +14 -0
  284. package/dist/{skills-LJZA6PVJ.js → skills-BAMMXP3Q.js} +3 -2
  285. package/dist/{skills-install-MQINL3EC.js → skills-install-QNQWC2MV.js} +99 -28
  286. package/dist/{skills-install-IKJZN4G2.cjs → skills-install-UMK5H3SO.cjs} +107 -36
  287. package/dist/skills-new-NYKNHJHV.cjs +15 -0
  288. package/dist/skills-new-NZFGFKML.js +15 -0
  289. package/dist/slashCommands-EJ23C3Z4.cjs +69 -0
  290. package/dist/slashCommands-JQIL4EWX.js +69 -0
  291. package/dist/status-BKC7GBNQ.js +11 -0
  292. package/dist/status-FU3CPJWQ.cjs +11 -0
  293. package/dist/sync-3IEIHXIP.cjs +18 -0
  294. package/dist/sync-7JMZVEQD.cjs +40 -0
  295. package/dist/{sync-EXYX7HXW.js → sync-KWX67OUN.js} +3 -2
  296. package/dist/sync-YVPFT7SL.js +18 -0
  297. package/dist/tasks-5FPBIFLC.js +9 -0
  298. package/dist/tasks-TXGKGNH6.cjs +9 -0
  299. package/dist/team-GVK5L73L.cjs +9 -0
  300. package/dist/team-RWIKCLTG.js +9 -0
  301. package/dist/teammate-3C4MLRGH.js +139 -0
  302. package/dist/teammate-7C3UDQSH.cjs +139 -0
  303. package/dist/theme-A2CEHI7W.js +18 -0
  304. package/dist/theme-LNOQOVR4.cjs +18 -0
  305. package/dist/ui/questionModal.cjs +7 -25
  306. package/dist/ui/questionModal.js +6 -24
  307. package/dist/undo-F2IZJQUV.js +10 -0
  308. package/dist/undo-QEV42XLU.cjs +10 -0
  309. package/dist/update-TVAJMMBC.js +82 -0
  310. package/dist/update-Z6BIIQDC.cjs +82 -0
  311. package/package.json +10 -4
  312. package/dist/CommunitySkillsCache-ILWHWE5P.js +0 -7
  313. package/dist/CommunitySkillsCache-KHC6RUJW.cjs +0 -7
  314. package/dist/HookManager-X47HCM5G.cjs +0 -6
  315. package/dist/HookManager-ZXKHCD7U.js +0 -6
  316. package/dist/MemoryManager-6ZT7IDO5.cjs +0 -7
  317. package/dist/MemoryManager-AJGS5AKB.js +0 -7
  318. package/dist/PermissionManager-HG6W2DGU.cjs +0 -10
  319. package/dist/SessionManager-BJ2G6VV4.cjs +0 -9
  320. package/dist/SessionManager-ENPGYK5J.js +0 -9
  321. package/dist/SkillsRegistry-6ZFOCT25.cjs +0 -8
  322. package/dist/SkillsRegistry-C2SHOZ5D.js +0 -8
  323. package/dist/about-BIZH6I2U.cjs +0 -11
  324. package/dist/about-PPIVMAPA.js +0 -11
  325. package/dist/add-dir-7FD4DMDA.cjs +0 -9
  326. package/dist/add-dir-LOYJ4YB5.js +0 -9
  327. package/dist/agents-2Y6ASV7C.js +0 -10
  328. package/dist/agents-UOSPKLQL.cjs +0 -10
  329. package/dist/agents-new-23NSGAM5.js +0 -13
  330. package/dist/agents-new-WI2EL7IJ.cjs +0 -13
  331. package/dist/automode-LGWTY3UX.js +0 -9
  332. package/dist/automode-WLBQ7MN7.cjs +0 -9
  333. package/dist/chunk-5UBW2BGC.js +0 -33
  334. package/dist/chunk-AXP53LTU.cjs +0 -169
  335. package/dist/chunk-IZBCMJHJ.cjs +0 -33
  336. package/dist/completion-7WGMHKOR.cjs +0 -13
  337. package/dist/completion-KH33NSGP.js +0 -13
  338. package/dist/constants-RBQTR32A.cjs +0 -20
  339. package/dist/export-3QN3IH7A.js +0 -11
  340. package/dist/export-BI54X3MP.cjs +0 -11
  341. package/dist/feedback-TBF2CUJR.js +0 -14
  342. package/dist/feedback-XXHPSUUO.cjs +0 -14
  343. package/dist/formatters-N5IJKYZY.cjs +0 -8
  344. package/dist/formatters-UG6VZJJ5.js +0 -8
  345. package/dist/help-4VSLIMP4.cjs +0 -11
  346. package/dist/history-73VBEMSI.cjs +0 -13
  347. package/dist/hooks-62UDQBGH.cjs +0 -12
  348. package/dist/hooks-XORDJD5X.js +0 -12
  349. package/dist/i18n-X2IU2EZD.cjs +0 -32
  350. package/dist/ide-RPKZALQV.js +0 -11
  351. package/dist/ide-YMNXJB6A.cjs +0 -11
  352. package/dist/init-J5HR4R7U.js +0 -9
  353. package/dist/init-JCC7RVMC.cjs +0 -9
  354. package/dist/language-AZISJCEZ.js +0 -16
  355. package/dist/language-F65RA6FZ.cjs +0 -16
  356. package/dist/localProjectPermissions-2EATUDZM.cjs +0 -17
  357. package/dist/login-5HLPMECE.js +0 -18
  358. package/dist/login-ISWYYBXP.cjs +0 -18
  359. package/dist/logout-3EKZM5J3.cjs +0 -16
  360. package/dist/logout-GE7TSZ24.js +0 -16
  361. package/dist/mcp-EW64QRFA.cjs +0 -15
  362. package/dist/mcp-VHS7AMF2.js +0 -15
  363. package/dist/memory-2I473RU3.js +0 -9
  364. package/dist/memory-JZ6NPSP3.cjs +0 -9
  365. package/dist/model-GXZLARPT.js +0 -9
  366. package/dist/model-Y274DBDO.cjs +0 -9
  367. package/dist/new-BG5VIGZ7.cjs +0 -9
  368. package/dist/new-YXFDQOA7.js +0 -9
  369. package/dist/permissions-QILEAGBP.cjs +0 -12
  370. package/dist/permissions-WVEOVMWO.js +0 -12
  371. package/dist/quit-NC32OEJG.cjs +0 -9
  372. package/dist/quit-WRRIGU33.js +0 -9
  373. package/dist/resume-GJIKIDPR.cjs +0 -12
  374. package/dist/resume-RMJNCAOK.js +0 -12
  375. package/dist/search-UIWIXB73.js +0 -14
  376. package/dist/search-WQNXDA2E.cjs +0 -14
  377. package/dist/sessions-HPFX2GDD.js +0 -9
  378. package/dist/sessions-SAQU6MFA.cjs +0 -9
  379. package/dist/share-IE6UTPKF.cjs +0 -13
  380. package/dist/share-NQXIMFSQ.js +0 -13
  381. package/dist/skills-YTYGART7.cjs +0 -13
  382. package/dist/skills-new-3WCU3CWB.js +0 -14
  383. package/dist/skills-new-O5LFVFZU.cjs +0 -14
  384. package/dist/slashCommands-3FFAL4SL.js +0 -55
  385. package/dist/slashCommands-JASFW3E4.cjs +0 -55
  386. package/dist/status-4NDGXPIM.js +0 -10
  387. package/dist/status-RHJIBHP2.cjs +0 -10
  388. package/dist/sync-3GFSEIAZ.js +0 -16
  389. package/dist/sync-6M3WRKMH.cjs +0 -39
  390. package/dist/sync-CQNQDNTJ.cjs +0 -16
  391. package/dist/theme-EMJGULMI.cjs +0 -16
  392. package/dist/theme-FGDSXNU3.js +0 -16
  393. package/dist/undo-CTXQYE7C.cjs +0 -9
  394. package/dist/undo-HX2ZMECP.js +0 -9
@@ -0,0 +1,271 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+ var _chunkRD5XAJR2cjs = require('./chunk-RD5XAJR2.cjs');
5
+
6
+
7
+ var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
8
+
9
+ // src/config.ts
10
+ var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
11
+ var _path = require('path'); var _path2 = _interopRequireDefault(_path);
12
+ var _yaml = require('yaml'); var _yaml2 = _interopRequireDefault(_yaml);
13
+ var DEFAULT_CONFIG_PATH = _chunkSEKD5FH3cjs.AUTOHAND_FILES.configJson;
14
+ var YAML_CONFIG_PATH = _chunkSEKD5FH3cjs.AUTOHAND_FILES.configYaml;
15
+ var YML_CONFIG_PATH = _chunkSEKD5FH3cjs.AUTOHAND_FILES.configYml;
16
+ var DEFAULT_BASE_URL = "https://openrouter.ai/api/v1";
17
+ var DEFAULT_OLLAMA_URL = "http://localhost:11434";
18
+ var DEFAULT_LLAMACPP_URL = "http://localhost:8080";
19
+ var DEFAULT_OPENAI_URL = "https://api.openai.com/v1";
20
+ var DEFAULT_MLX_URL = "http://localhost:8080";
21
+ var DEFAULT_LLMGATEWAY_URL = "https://api.llmgateway.io/v1";
22
+ function getDefaultConfigPath() {
23
+ return DEFAULT_CONFIG_PATH;
24
+ }
25
+ async function detectConfigPath(customPath) {
26
+ if (customPath) {
27
+ return _path2.default.resolve(customPath);
28
+ }
29
+ const envPath = process.env.AUTOHAND_CONFIG;
30
+ if (envPath) {
31
+ return _path2.default.resolve(envPath);
32
+ }
33
+ if (await _fsextra2.default.pathExists(YAML_CONFIG_PATH)) {
34
+ return YAML_CONFIG_PATH;
35
+ }
36
+ if (await _fsextra2.default.pathExists(YML_CONFIG_PATH)) {
37
+ return YML_CONFIG_PATH;
38
+ }
39
+ return DEFAULT_CONFIG_PATH;
40
+ }
41
+ function isYamlFile(filePath) {
42
+ const ext = _path2.default.extname(filePath).toLowerCase();
43
+ return ext === ".yaml" || ext === ".yml";
44
+ }
45
+ async function parseConfigFile(configPath) {
46
+ const content = await _fsextra2.default.readFile(configPath, "utf8");
47
+ if (isYamlFile(configPath)) {
48
+ return _yaml2.default.parse(content);
49
+ }
50
+ return JSON.parse(content);
51
+ }
52
+ async function loadConfig(customPath) {
53
+ const configPath = await detectConfigPath(customPath);
54
+ await _fsextra2.default.ensureDir(_path2.default.dirname(configPath));
55
+ let isNewConfig = false;
56
+ if (!await _fsextra2.default.pathExists(configPath)) {
57
+ const defaultConfig = {
58
+ provider: "openrouter",
59
+ openrouter: {
60
+ apiKey: "",
61
+ baseUrl: "https://openrouter.ai/api/v1",
62
+ model: "anthropic/claude-sonnet-4-20250514"
63
+ },
64
+ workspace: {
65
+ defaultRoot: process.cwd(),
66
+ allowDangerousOps: false
67
+ },
68
+ ui: {
69
+ theme: "dark",
70
+ autoConfirm: false,
71
+ promptSuggestions: true
72
+ },
73
+ telemetry: {
74
+ enabled: false
75
+ },
76
+ autoReport: {
77
+ enabled: true
78
+ }
79
+ };
80
+ await _fsextra2.default.writeJson(configPath, defaultConfig, { spaces: 2 });
81
+ isNewConfig = true;
82
+ }
83
+ let parsed;
84
+ try {
85
+ parsed = await parseConfigFile(configPath);
86
+ } catch (error) {
87
+ throw new Error(`Failed to parse config at ${configPath}: ${error.message}`);
88
+ }
89
+ const normalized = normalizeConfig(parsed);
90
+ const withEnv = mergeEnvVariables(normalized);
91
+ validateConfig(withEnv, configPath);
92
+ const themeName = _optionalChain([withEnv, 'access', _ => _.ui, 'optionalAccess', _2 => _2.theme]) || "dark";
93
+ _chunkRD5XAJR2cjs.autoInitTheme.call(void 0, themeName);
94
+ return { ...withEnv, configPath, isNewConfig };
95
+ }
96
+ function mergeEnvVariables(config) {
97
+ return {
98
+ ...config,
99
+ api: {
100
+ baseUrl: process.env.AUTOHAND_API_URL || _optionalChain([config, 'access', _3 => _3.api, 'optionalAccess', _4 => _4.baseUrl]) || "https://api.autohand.ai",
101
+ companySecret: process.env.AUTOHAND_SECRET || _optionalChain([config, 'access', _5 => _5.api, 'optionalAccess', _6 => _6.companySecret]) || ""
102
+ }
103
+ };
104
+ }
105
+ function normalizeConfig(config) {
106
+ if (isModernConfig(config)) {
107
+ const provider = _nullishCoalesce(config.provider, () => ( "openrouter"));
108
+ return { provider, ...config };
109
+ }
110
+ if (isLegacyConfig(config)) {
111
+ return {
112
+ provider: "openrouter",
113
+ openrouter: {
114
+ apiKey: _nullishCoalesce(config.api_key, () => ( "replace-me")),
115
+ baseUrl: _nullishCoalesce(config.base_url, () => ( DEFAULT_BASE_URL)),
116
+ model: _nullishCoalesce(config.model, () => ( "anthropic/claude-3.5-sonnet"))
117
+ },
118
+ workspace: {
119
+ defaultRoot: process.cwd(),
120
+ allowDangerousOps: false
121
+ },
122
+ ui: {
123
+ autoConfirm: _nullishCoalesce(config.dry_run, () => ( false)),
124
+ theme: "dark",
125
+ promptSuggestions: true
126
+ }
127
+ };
128
+ }
129
+ return config;
130
+ }
131
+ function isModernConfig(config) {
132
+ return typeof config.openrouter === "object" || typeof config.ollama === "object" || typeof config.llamacpp === "object" || typeof config.openai === "object" || typeof config.mlx === "object";
133
+ }
134
+ function isLegacyConfig(config) {
135
+ return typeof config.api_key === "string";
136
+ }
137
+ function validateConfig(config, configPath) {
138
+ if (config.workspace) {
139
+ if (config.workspace.defaultRoot && typeof config.workspace.defaultRoot !== "string") {
140
+ throw new Error(`workspace.defaultRoot must be a string in ${configPath}`);
141
+ }
142
+ if (config.workspace.allowDangerousOps !== void 0 && typeof config.workspace.allowDangerousOps !== "boolean") {
143
+ throw new Error(`workspace.allowDangerousOps must be boolean in ${configPath}`);
144
+ }
145
+ }
146
+ if (config.ui) {
147
+ if (config.ui.theme && typeof config.ui.theme !== "string") {
148
+ throw new Error(`ui.theme must be a string in ${configPath}`);
149
+ }
150
+ if (config.ui.theme && typeof config.ui.theme === "string" && !_chunkRD5XAJR2cjs.themeExists.call(void 0, config.ui.theme)) {
151
+ console.warn(`Theme '${config.ui.theme}' not found \u2014 falling back to default.`);
152
+ }
153
+ if (config.ui.autoConfirm !== void 0 && typeof config.ui.autoConfirm !== "boolean") {
154
+ throw new Error(`ui.autoConfirm must be boolean in ${configPath}`);
155
+ }
156
+ if (config.ui.promptSuggestions !== void 0 && typeof config.ui.promptSuggestions !== "boolean") {
157
+ throw new Error(`ui.promptSuggestions must be boolean in ${configPath}`);
158
+ }
159
+ }
160
+ if (config.mcp) {
161
+ if (config.mcp.enabled !== void 0 && typeof config.mcp.enabled !== "boolean") {
162
+ throw new Error(`mcp.enabled must be boolean in ${configPath}`);
163
+ }
164
+ if (config.mcp.servers !== void 0) {
165
+ if (!Array.isArray(config.mcp.servers)) {
166
+ throw new Error(`mcp.servers must be an array in ${configPath}`);
167
+ }
168
+ for (const server of config.mcp.servers) {
169
+ if (!server.name || typeof server.name !== "string") {
170
+ throw new Error(`mcp.servers[].name must be a non-empty string in ${configPath}`);
171
+ }
172
+ if (!["stdio", "sse", "http"].includes(server.transport)) {
173
+ throw new Error(`mcp.servers[].transport must be 'stdio', 'sse', or 'http' in ${configPath}`);
174
+ }
175
+ if (server.transport === "stdio" && (!server.command || typeof server.command !== "string")) {
176
+ throw new Error(`mcp.servers[].command is required for stdio transport in ${configPath}`);
177
+ }
178
+ if ((server.transport === "sse" || server.transport === "http") && (!server.url || typeof server.url !== "string")) {
179
+ throw new Error(`mcp.servers[].url is required for ${server.transport} transport in ${configPath}`);
180
+ }
181
+ }
182
+ }
183
+ }
184
+ if (config.externalAgents) {
185
+ if (config.externalAgents.enabled !== void 0 && typeof config.externalAgents.enabled !== "boolean") {
186
+ throw new Error(`externalAgents.enabled must be boolean in ${configPath}`);
187
+ }
188
+ if (config.externalAgents.paths !== void 0) {
189
+ if (!Array.isArray(config.externalAgents.paths)) {
190
+ throw new Error(`externalAgents.paths must be an array in ${configPath}`);
191
+ }
192
+ for (const p of config.externalAgents.paths) {
193
+ if (typeof p !== "string") {
194
+ throw new Error(`externalAgents.paths must contain only strings in ${configPath}`);
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ function resolveWorkspaceRoot(config, requestedPath) {
201
+ const candidate = _nullishCoalesce(_nullishCoalesce(requestedPath, () => ( process.cwd())), () => ( _optionalChain([config, 'access', _7 => _7.workspace, 'optionalAccess', _8 => _8.defaultRoot])));
202
+ return _path2.default.resolve(candidate);
203
+ }
204
+ function getProviderConfig(config, provider) {
205
+ const chosen = _nullishCoalesce(_nullishCoalesce(provider, () => ( config.provider)), () => ( "openrouter"));
206
+ const configByProvider = {
207
+ openrouter: config.openrouter,
208
+ ollama: config.ollama,
209
+ llamacpp: config.llamacpp,
210
+ openai: config.openai,
211
+ mlx: config.mlx,
212
+ llmgateway: config.llmgateway
213
+ };
214
+ const entry = configByProvider[chosen];
215
+ if (!entry) {
216
+ return null;
217
+ }
218
+ if (chosen === "openrouter" || chosen === "llmgateway") {
219
+ const { apiKey, model } = entry;
220
+ if (!apiKey || apiKey === "replace-me" || !model) {
221
+ return null;
222
+ }
223
+ } else {
224
+ if (!entry.model) {
225
+ return null;
226
+ }
227
+ }
228
+ return {
229
+ ...entry,
230
+ baseUrl: _nullishCoalesce(entry.baseUrl, () => ( defaultBaseUrlFor(chosen, entry.port)))
231
+ };
232
+ }
233
+ function defaultBaseUrlFor(provider, port) {
234
+ if (provider === "openrouter") return DEFAULT_BASE_URL;
235
+ if (provider === "llmgateway") return DEFAULT_LLMGATEWAY_URL;
236
+ const p = port ? port.toString() : void 0;
237
+ switch (provider) {
238
+ case "ollama":
239
+ return p ? `http://localhost:${p}` : DEFAULT_OLLAMA_URL;
240
+ case "llamacpp":
241
+ return p ? `http://localhost:${p}` : DEFAULT_LLAMACPP_URL;
242
+ case "openai":
243
+ return DEFAULT_OPENAI_URL;
244
+ case "mlx":
245
+ return p ? `http://localhost:${p}` : DEFAULT_MLX_URL;
246
+ default:
247
+ return void 0;
248
+ }
249
+ }
250
+ async function saveConfig(config) {
251
+ const { configPath, ...data } = config;
252
+ if (isYamlFile(configPath)) {
253
+ const yamlContent = _yaml2.default.stringify(data, { indent: 2 });
254
+ await _fsextra2.default.writeFile(configPath, yamlContent, "utf8");
255
+ } else {
256
+ await _fsextra2.default.writeJson(configPath, data, { spaces: 2 });
257
+ }
258
+ }
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+ exports.getDefaultConfigPath = getDefaultConfigPath; exports.loadConfig = loadConfig; exports.resolveWorkspaceRoot = resolveWorkspaceRoot; exports.getProviderConfig = getProviderConfig; exports.saveConfig = saveConfig;
267
+ /**
268
+ * @license
269
+ * Copyright 2025 Autohand AI LLC
270
+ * SPDX-License-Identifier: Apache-2.0
271
+ */
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _chunkXBUMKEFNcjs = require('./chunk-XBUMKEFN.cjs');
3
+ var _chunkFPAE6ORVcjs = require('./chunk-FPAE6ORV.cjs');
4
4
 
5
5
 
6
- var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
6
+ var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
7
7
 
8
8
 
9
- var _chunk2U5HFVROcjs = require('./chunk-2U5HFVRO.cjs');
9
+ var _chunkRVUQKMXXcjs = require('./chunk-RVUQKMXX.cjs');
10
10
 
11
11
  // src/commands/resume.ts
12
12
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -14,7 +14,7 @@ var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsex
14
14
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
15
15
  var metadata = {
16
16
  command: "/resume",
17
- description: _chunk2U5HFVROcjs.t.call(void 0, "commands.resume.description"),
17
+ description: _chunkRVUQKMXXcjs.t.call(void 0, "commands.resume.description"),
18
18
  implemented: true
19
19
  };
20
20
  async function getSessionTitle(sessionMeta) {
@@ -22,7 +22,7 @@ async function getSessionTitle(sessionMeta) {
22
22
  return sessionMeta.summary.slice(0, 60);
23
23
  }
24
24
  try {
25
- const conversationPath = _path2.default.join(_chunkGIZL57FEcjs.AUTOHAND_PATHS.sessions, sessionMeta.sessionId, "conversation.jsonl");
25
+ const conversationPath = _path2.default.join(_chunkSEKD5FH3cjs.AUTOHAND_PATHS.sessions, sessionMeta.sessionId, "conversation.jsonl");
26
26
  if (await _fsextra2.default.pathExists(conversationPath)) {
27
27
  const content = await _fsextra2.default.readFile(conversationPath, "utf-8");
28
28
  const lines = content.trim().split("\n").filter((line) => line);
@@ -69,15 +69,23 @@ async function resume(ctx) {
69
69
  return resumeSession(ctx.sessionManager, sessionId);
70
70
  }
71
71
  try {
72
- const allSessions = await ctx.sessionManager.listSessions();
72
+ const projectFilter = ctx.workspaceRoot ? { project: ctx.workspaceRoot } : void 0;
73
+ const allSessions = await ctx.sessionManager.listSessions(projectFilter);
73
74
  if (allSessions.length === 0) {
74
- console.log(_chalk2.default.gray(`
75
- ${_chunk2U5HFVROcjs.t.call(void 0, "commands.sessions.noSessions")}`));
76
- console.log(_chalk2.default.gray("Start a new conversation to create a session.\n"));
75
+ if (ctx.workspaceRoot) {
76
+ const projectName = _path2.default.basename(ctx.workspaceRoot);
77
+ console.log(_chalk2.default.gray(`
78
+ No sessions found for project "${projectName}".`));
79
+ console.log(_chalk2.default.gray("Use /sessions to see all sessions across projects.\n"));
80
+ } else {
81
+ console.log(_chalk2.default.gray(`
82
+ ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.sessions.noSessions")}`));
83
+ console.log(_chalk2.default.gray("Start a new conversation to create a session.\n"));
84
+ }
77
85
  return null;
78
86
  }
79
87
  console.log(_chalk2.default.cyan(`
80
- ${_chunk2U5HFVROcjs.t.call(void 0, "commands.sessions.selectPrompt")}
88
+ ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.sessions.selectPrompt")}
81
89
  `));
82
90
  const choices = [];
83
91
  const recentSessions = allSessions.slice(0, 20);
@@ -97,7 +105,7 @@ ${_chunk2U5HFVROcjs.t.call(void 0, "commands.sessions.selectPrompt")}
97
105
  value: choice.name,
98
106
  description: choice.hint
99
107
  }));
100
- const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
108
+ const result = await _chunkFPAE6ORVcjs.showModal.call(void 0, {
101
109
  title: "Choose a session",
102
110
  options
103
111
  });
@@ -111,7 +119,7 @@ ${_chunk2U5HFVROcjs.t.call(void 0, "commands.sessions.selectPrompt")}
111
119
  }
112
120
  return resumeSession(ctx.sessionManager, result.value);
113
121
  } catch (error) {
114
- console.error(_chalk2.default.red(_chunk2U5HFVROcjs.t.call(void 0, "commands.resume.failed", { error: error.message })));
122
+ console.error(_chalk2.default.red(_chunkRVUQKMXXcjs.t.call(void 0, "commands.resume.failed", { error: error.message })));
115
123
  return null;
116
124
  }
117
125
  }
@@ -122,7 +130,7 @@ async function resumeSession(sessionManager, sessionId) {
122
130
  const firstUserMessage = messages.find((m) => m.role === "user");
123
131
  const title = session.metadata.summary || _optionalChain([firstUserMessage, 'optionalAccess', _ => _.content, 'access', _2 => _2.slice, 'call', _3 => _3(0, 50)]) || "Untitled session";
124
132
  console.log(_chalk2.default.cyan(`
125
- ${_chunk2U5HFVROcjs.t.call(void 0, "commands.resume.resuming", { id: title })}`));
133
+ ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.resume.resuming", { id: title })}`));
126
134
  console.log(_chalk2.default.gray(` Project: ${session.metadata.projectPath}`));
127
135
  console.log(_chalk2.default.gray(` Started: ${new Date(session.metadata.createdAt).toLocaleString()}`));
128
136
  console.log(_chalk2.default.gray(` Messages: ${messages.length}`));
@@ -144,7 +152,7 @@ ${_chunk2U5HFVROcjs.t.call(void 0, "commands.resume.resuming", { id: title })}`)
144
152
  console.log(_chalk2.default.green("Session resumed. Continue typing to chat.\n"));
145
153
  return null;
146
154
  } catch (error) {
147
- console.error(_chalk2.default.red(_chunk2U5HFVROcjs.t.call(void 0, "commands.resume.failed", { error: error.message })));
155
+ console.error(_chalk2.default.red(_chunkRVUQKMXXcjs.t.call(void 0, "commands.resume.failed", { error: error.message })));
148
156
  return null;
149
157
  }
150
158
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AUTOHAND_PATHS,
3
3
  PROJECT_DIR_NAME
4
- } from "./chunk-PWLLLJHU.js";
4
+ } from "./chunk-EGFT4PGW.js";
5
5
 
6
6
  // src/memory/MemoryManager.ts
7
7
  import fs from "fs-extra";
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _chunk2U5HFVROcjs = require('./chunk-2U5HFVRO.cjs');
3
+ var _chunkRVUQKMXXcjs = require('./chunk-RVUQKMXX.cjs');
4
4
 
5
5
  // src/commands/history.ts
6
6
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
7
7
  var metadata = {
8
8
  command: "/history",
9
- description: _chunk2U5HFVROcjs.t.call(void 0, "commands.history.title"),
9
+ description: _chunkRVUQKMXXcjs.t.call(void 0, "commands.history.title"),
10
10
  implemented: true
11
11
  };
12
12
  function formatHistoryEntry(entry) {
@@ -72,14 +72,14 @@ async function history(ctx) {
72
72
  const allSessions = await ctx.sessionManager.listSessions();
73
73
  if (allSessions.length === 0) {
74
74
  console.log(_chalk2.default.gray(`
75
- ${_chunk2U5HFVROcjs.t.call(void 0, "commands.history.empty")}
75
+ ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.history.empty")}
76
76
  `));
77
77
  return null;
78
78
  }
79
79
  const entries = allSessions.map(toHistoryEntry);
80
80
  const paginated = paginateHistory(entries, page, pageSize);
81
81
  console.log(_chalk2.default.cyan(`
82
- ${_chunk2U5HFVROcjs.t.call(void 0, "commands.history.title")}
82
+ ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.history.title")}
83
83
  `));
84
84
  console.log(
85
85
  _chalk2.default.bold(
@@ -95,14 +95,14 @@ ${_chunk2U5HFVROcjs.t.call(void 0, "commands.history.title")}
95
95
  console.log(
96
96
  _chalk2.default.gray(
97
97
  `
98
- ${_chunk2U5HFVROcjs.t.call(void 0, "commands.history.showing", { page: paginated.currentPage, total: paginated.totalPages, count: paginated.totalItems })}`
98
+ ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.history.showing", { page: paginated.currentPage, total: paginated.totalPages, count: paginated.totalItems })}`
99
99
  )
100
100
  );
101
101
  }
102
102
  if (paginated.totalPages > 1 && paginated.currentPage < paginated.totalPages) {
103
103
  console.log(_chalk2.default.gray(`Use /history ${paginated.currentPage + 1} for next page`));
104
104
  }
105
- console.log(_chalk2.default.gray(`${_chunk2U5HFVROcjs.t.call(void 0, "commands.history.resumeHint")}
105
+ console.log(_chalk2.default.gray(`${_chunkRVUQKMXXcjs.t.call(void 0, "commands.history.resumeHint")}
106
106
  `));
107
107
  return null;
108
108
  } catch (error) {
@@ -3,7 +3,7 @@ import {
3
3
  showInput,
4
4
  showModal,
5
5
  showPassword
6
- } from "./chunk-3KBBARKO.js";
6
+ } from "./chunk-5OBNULPU.js";
7
7
 
8
8
  // src/utils/prompt.ts
9
9
  async function safePrompt(questions) {
@@ -1,6 +1,3 @@
1
- // src/commands/formatters.ts
2
- import chalk from "chalk";
3
-
4
1
  // src/actions/formatters.ts
5
2
  import { spawn } from "child_process";
6
3
  import path from "path";
@@ -282,47 +279,9 @@ async function applyFormatter(name, contents, file, workspaceRoot) {
282
279
  throw new Error(`Formatter "${name}" is not available. Run /formatters to see available formatters.`);
283
280
  }
284
281
 
285
- // src/commands/formatters.ts
286
- var metadata = {
287
- command: "/formatters",
288
- description: "List available code formatters",
289
- implemented: true
290
- };
291
- async function execute() {
292
- console.log();
293
- console.log(chalk.cyan.bold("Available Code Formatters"));
294
- console.log(chalk.gray("\u2500".repeat(60)));
295
- console.log();
296
- const formatters = await listFormatters();
297
- const builtIn = formatters.filter((f) => f.command === "built-in");
298
- const external = formatters.filter((f) => f.command !== "built-in");
299
- console.log(chalk.yellow.bold("Built-in Formatters (always available):"));
300
- console.log();
301
- for (const f of builtIn) {
302
- console.log(` ${chalk.green("\u2713")} ${chalk.white.bold(f.name)}`);
303
- console.log(` ${chalk.gray(f.description)}`);
304
- console.log(` ${chalk.gray("Extensions:")} ${f.extensions.join(", ")}`);
305
- console.log();
306
- }
307
- console.log(chalk.yellow.bold("External Formatters:"));
308
- console.log();
309
- for (const f of external) {
310
- const status = f.installed ? chalk.green("\u2713 installed") : chalk.red("\u2717 not found");
311
- console.log(` ${f.installed ? chalk.green("\u2713") : chalk.red("\u2717")} ${chalk.white.bold(f.name)} ${chalk.gray(`(${f.command})`)} - ${status}`);
312
- console.log(` ${chalk.gray(f.description)}`);
313
- console.log(` ${chalk.gray("Extensions:")} ${f.extensions.join(", ")}`);
314
- console.log();
315
- }
316
- console.log(chalk.gray("\u2500".repeat(60)));
317
- console.log(chalk.gray("Usage: The agent can use format_file action with any installed formatter."));
318
- console.log(chalk.gray("Install missing formatters via your package manager (npm, pip, cargo, etc.)"));
319
- console.log();
320
- }
321
-
322
282
  export {
323
- applyFormatter,
324
- metadata,
325
- execute
283
+ listFormatters,
284
+ applyFormatter
326
285
  };
327
286
  /**
328
287
  * @license
@@ -332,8 +291,3 @@ export {
332
291
  * Code Formatters
333
292
  * Supports prettier, black, rustfmt, gofmt, and more
334
293
  */
335
- /**
336
- * @license
337
- * Copyright 2025 Autohand AI LLC
338
- * SPDX-License-Identifier: Apache-2.0
339
- */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  t
3
- } from "./chunk-NMWEDN4Z.js";
3
+ } from "./chunk-HFMLWH7B.js";
4
4
 
5
5
  // src/commands/skills.ts
6
6
  async function skills(ctx, args = []) {
@@ -230,7 +230,7 @@ async function handleSkillsInstall(ctx, skillName) {
230
230
  if (!workspaceRoot) {
231
231
  return "Workspace root not available.";
232
232
  }
233
- const { skillsInstall } = await import("./skills-install-MQINL3EC.js");
233
+ const { skillsInstall } = await import("./skills-install-QNQWC2MV.js");
234
234
  const result = await skillsInstall(
235
235
  {
236
236
  skillsRegistry,
@@ -1,28 +1,28 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } 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
3
 
4
- var _chunk3S4DEIJPcjs = require('./chunk-3S4DEIJP.cjs');
4
+ var _chunk5IXII4HXcjs = require('./chunk-5IXII4HX.cjs');
5
5
 
6
6
 
7
- var _chunkTSY7JHIVcjs = require('./chunk-TSY7JHIV.cjs');
7
+ var _chunk33A755XBcjs = require('./chunk-33A755XB.cjs');
8
8
 
9
9
 
10
- var _chunkBRXIEKJ3cjs = require('./chunk-BRXIEKJ3.cjs');
10
+ var _chunkAMT2UZBIcjs = require('./chunk-AMT2UZBI.cjs');
11
11
 
12
12
 
13
- var _chunkRJP3SZ7Qcjs = require('./chunk-RJP3SZ7Q.cjs');
13
+ var _chunkUJTCTTUFcjs = require('./chunk-UJTCTTUF.cjs');
14
14
 
15
15
 
16
- var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
16
+ var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
17
17
 
18
18
 
19
- var _chunk2U5HFVROcjs = require('./chunk-2U5HFVRO.cjs');
19
+ var _chunkRVUQKMXXcjs = require('./chunk-RVUQKMXX.cjs');
20
20
 
21
21
  // src/commands/login.ts
22
22
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
23
23
  var metadata = {
24
24
  command: "/login",
25
- description: _chunk2U5HFVROcjs.t.call(void 0, "commands.login.description"),
25
+ description: _chunkRVUQKMXXcjs.t.call(void 0, "commands.login.description"),
26
26
  implemented: true
27
27
  };
28
28
  async function openBrowser(url) {
@@ -56,33 +56,33 @@ function sleep(ms) {
56
56
  async function login(ctx) {
57
57
  const config = ctx.config;
58
58
  if (_optionalChain([config, 'optionalAccess', _ => _.auth, 'optionalAccess', _2 => _2.token]) && _optionalChain([config, 'optionalAccess', _3 => _3.auth, 'optionalAccess', _4 => _4.user])) {
59
- const result = await _chunkBRXIEKJ3cjs.safePrompt.call(void 0, {
59
+ const result = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
60
60
  type: "confirm",
61
61
  name: "continueLogin",
62
62
  message: `Already logged in as ${_chalk2.default.cyan(config.auth.user.email)}. Log in with a different account?`,
63
63
  initial: false
64
64
  });
65
65
  if (!result || !result.continueLogin) {
66
- console.log(_chalk2.default.gray(_chunk2U5HFVROcjs.t.call(void 0, "commands.login.cancelled")));
66
+ console.log(_chalk2.default.gray(_chunkRVUQKMXXcjs.t.call(void 0, "commands.login.cancelled")));
67
67
  return null;
68
68
  }
69
69
  }
70
- const authClient = _chunkTSY7JHIVcjs.getAuthClient.call(void 0, );
70
+ const authClient = _chunk33A755XBcjs.getAuthClient.call(void 0, );
71
71
  console.log(_chalk2.default.gray("Initiating authentication..."));
72
72
  const initResult = await authClient.initiateDeviceAuth();
73
73
  if (!initResult.success || !initResult.deviceCode || !initResult.userCode) {
74
- console.log(_chalk2.default.red(_chunk2U5HFVROcjs.t.call(void 0, "commands.login.failed", { error: initResult.error || "Unknown error" })));
74
+ console.log(_chalk2.default.red(_chunkRVUQKMXXcjs.t.call(void 0, "commands.login.failed", { error: initResult.error || "Unknown error" })));
75
75
  return null;
76
76
  }
77
77
  console.log();
78
78
  console.log(_chalk2.default.bold("To sign in, visit:"));
79
- console.log(_chalk2.default.cyan.underline(initResult.verificationUriComplete || `${_chunkGIZL57FEcjs.AUTH_CONFIG.authorizationUrl}?code=${initResult.userCode}`));
79
+ console.log(_chalk2.default.cyan.underline(initResult.verificationUriComplete || `${_chunkSEKD5FH3cjs.AUTH_CONFIG.authorizationUrl}?code=${initResult.userCode}`));
80
80
  console.log();
81
81
  console.log(_chalk2.default.gray("Or enter this code manually:"));
82
82
  console.log(_chalk2.default.bold.yellow(` ${initResult.userCode}`));
83
83
  console.log();
84
84
  const browserOpened = await openBrowser(
85
- initResult.verificationUriComplete || `${_chunkGIZL57FEcjs.AUTH_CONFIG.authorizationUrl}?code=${initResult.userCode}`
85
+ initResult.verificationUriComplete || `${_chunkSEKD5FH3cjs.AUTH_CONFIG.authorizationUrl}?code=${initResult.userCode}`
86
86
  );
87
87
  if (browserOpened) {
88
88
  console.log(_chalk2.default.gray("Browser opened. Complete the login in your browser."));
@@ -93,8 +93,8 @@ async function login(ctx) {
93
93
  console.log(_chalk2.default.gray("Waiting for authorization..."));
94
94
  console.log(_chalk2.default.gray("(Press Ctrl+C to cancel)"));
95
95
  const startTime = Date.now();
96
- const timeout = _chunkGIZL57FEcjs.AUTH_CONFIG.authTimeout;
97
- const pollInterval = initResult.interval ? initResult.interval * 1e3 : _chunkGIZL57FEcjs.AUTH_CONFIG.pollInterval;
96
+ const timeout = _chunkSEKD5FH3cjs.AUTH_CONFIG.authTimeout;
97
+ const pollInterval = initResult.interval ? initResult.interval * 1e3 : _chunkSEKD5FH3cjs.AUTH_CONFIG.pollInterval;
98
98
  let dots = 0;
99
99
  const maxDots = 3;
100
100
  while (Date.now() - startTime < timeout) {
@@ -104,7 +104,7 @@ async function login(ctx) {
104
104
  const pollResult = await authClient.pollDeviceAuth(initResult.deviceCode);
105
105
  if (pollResult.status === "authorized" && pollResult.token && pollResult.user) {
106
106
  process.stdout.write("\r" + " ".repeat(20) + "\r");
107
- const expiresAt = new Date(Date.now() + _chunkGIZL57FEcjs.AUTH_CONFIG.sessionExpiryDays * 24 * 60 * 60 * 1e3).toISOString();
107
+ const expiresAt = new Date(Date.now() + _chunkSEKD5FH3cjs.AUTH_CONFIG.sessionExpiryDays * 24 * 60 * 60 * 1e3).toISOString();
108
108
  const updatedConfig = {
109
109
  ...config,
110
110
  auth: {
@@ -113,9 +113,9 @@ async function login(ctx) {
113
113
  expiresAt
114
114
  }
115
115
  };
116
- await _chunkRJP3SZ7Qcjs.saveConfig.call(void 0, updatedConfig);
116
+ await _chunkUJTCTTUFcjs.saveConfig.call(void 0, updatedConfig);
117
117
  console.log();
118
- console.log(_chalk2.default.green(_chunk2U5HFVROcjs.t.call(void 0, "commands.login.success", { email: pollResult.user.name || pollResult.user.email })));
118
+ console.log(_chalk2.default.green(_chunkRVUQKMXXcjs.t.call(void 0, "commands.login.success", { email: pollResult.user.name || pollResult.user.email })));
119
119
  console.log();
120
120
  await checkAndRestoreSyncData(pollResult.token, pollResult.user.id, updatedConfig);
121
121
  return null;
@@ -132,16 +132,16 @@ async function login(ctx) {
132
132
  }
133
133
  async function checkAndRestoreSyncData(token, userId, config) {
134
134
  try {
135
- const syncService = _chunk3S4DEIJPcjs.createSyncService.call(void 0, {
135
+ const syncService = _chunk5IXII4HXcjs.createSyncService.call(void 0, {
136
136
  authToken: token,
137
137
  userId,
138
138
  config: {
139
- ..._chunk3S4DEIJPcjs.DEFAULT_SYNC_CONFIG,
139
+ ..._chunk5IXII4HXcjs.DEFAULT_SYNC_CONFIG,
140
140
  ...config.sync,
141
141
  enabled: true
142
142
  }
143
143
  });
144
- const { getSyncApiClient } = await Promise.resolve().then(() => _interopRequireWildcard(require("./SyncApiClient-ID3KXEMA.cjs")));
144
+ const { getSyncApiClient } = await Promise.resolve().then(() => _interopRequireWildcard(require("./SyncApiClient-ZNYMT36M.cjs")));
145
145
  const apiClient = getSyncApiClient();
146
146
  const remoteManifest = await apiClient.getRemoteManifest(token);
147
147
  if (!remoteManifest || remoteManifest.files.length === 0) {
@@ -153,7 +153,7 @@ async function checkAndRestoreSyncData(token, userId, config) {
153
153
  console.log(_chalk2.default.cyan(`Found cloud sync data (${fileCount} files, ${sizeStr})`));
154
154
  console.log(_chalk2.default.gray("This includes your settings, agents, skills, and memory."));
155
155
  console.log();
156
- const result = await _chunkBRXIEKJ3cjs.safePrompt.call(void 0, {
156
+ const result = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
157
157
  type: "confirm",
158
158
  name: "restore",
159
159
  message: "Would you like to restore your settings from the cloud?",