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,260 @@
1
+ import {
2
+ showConfirm,
3
+ showInput,
4
+ showModal,
5
+ showPassword
6
+ } from "./chunk-5OBNULPU.js";
7
+ import {
8
+ saveConfig
9
+ } from "./chunk-WTNBX2JO.js";
10
+ import {
11
+ t
12
+ } from "./chunk-HFMLWH7B.js";
13
+
14
+ // src/commands/settings.ts
15
+ import chalk from "chalk";
16
+ var SETTING_CATEGORIES = [
17
+ { id: "ui", labelKey: "commands.settings.categories.ui" },
18
+ { id: "agent", labelKey: "commands.settings.categories.agent" },
19
+ { id: "permissions", labelKey: "commands.settings.categories.permissions" },
20
+ { id: "network", labelKey: "commands.settings.categories.network" },
21
+ { id: "telemetry", labelKey: "commands.settings.categories.telemetry" },
22
+ { id: "automode", labelKey: "commands.settings.categories.automode" },
23
+ { id: "teams", labelKey: "commands.settings.categories.teams" },
24
+ { id: "search", labelKey: "commands.settings.categories.search" }
25
+ ];
26
+ var SETTINGS_REGISTRY = [
27
+ // UI & Display
28
+ { key: "ui.theme", labelKey: "commands.settings.ui.theme", category: "ui", type: "string", redirect: "/theme" },
29
+ { key: "ui.locale", labelKey: "commands.settings.ui.locale", category: "ui", type: "string", redirect: "/language" },
30
+ { key: "ui.autoConfirm", labelKey: "commands.settings.ui.autoConfirm", descriptionKey: "commands.settings.ui.autoConfirmDesc", category: "ui", type: "boolean", defaultValue: false },
31
+ { key: "ui.showThinking", labelKey: "commands.settings.ui.showThinking", descriptionKey: "commands.settings.ui.showThinkingDesc", category: "ui", type: "boolean", defaultValue: true },
32
+ { key: "ui.terminalBell", labelKey: "commands.settings.ui.terminalBell", descriptionKey: "commands.settings.ui.terminalBellDesc", category: "ui", type: "boolean", defaultValue: true },
33
+ { key: "ui.checkForUpdates", labelKey: "commands.settings.ui.checkForUpdates", descriptionKey: "commands.settings.ui.checkForUpdatesDesc", category: "ui", type: "boolean", defaultValue: true },
34
+ { key: "ui.showCompletionNotification", labelKey: "commands.settings.ui.showCompletionNotification", descriptionKey: "commands.settings.ui.showCompletionNotificationDesc", category: "ui", type: "boolean", defaultValue: true },
35
+ { key: "ui.promptSuggestions", labelKey: "commands.settings.ui.promptSuggestions", descriptionKey: "commands.settings.ui.promptSuggestionsDesc", category: "ui", type: "boolean", defaultValue: true },
36
+ { key: "ui.activitySymbol", labelKey: "commands.settings.ui.activitySymbol", descriptionKey: "commands.settings.ui.activitySymbolDesc", category: "ui", type: "string", defaultValue: "\u2733" },
37
+ { key: "ui.updateCheckInterval", labelKey: "commands.settings.ui.updateCheckInterval", descriptionKey: "commands.settings.ui.updateCheckIntervalDesc", category: "ui", type: "number", defaultValue: 24 },
38
+ // Agent Behavior
39
+ { key: "agent.maxIterations", labelKey: "commands.settings.agent.maxIterations", descriptionKey: "commands.settings.agent.maxIterationsDesc", category: "agent", type: "number", defaultValue: 100 },
40
+ { key: "agent.enableRequestQueue", labelKey: "commands.settings.agent.enableRequestQueue", descriptionKey: "commands.settings.agent.enableRequestQueueDesc", category: "agent", type: "boolean", defaultValue: true },
41
+ { key: "agent.sessionRetryLimit", labelKey: "commands.settings.agent.sessionRetryLimit", descriptionKey: "commands.settings.agent.sessionRetryLimitDesc", category: "agent", type: "number", defaultValue: 3 },
42
+ { key: "agent.sessionRetryDelay", labelKey: "commands.settings.agent.sessionRetryDelay", descriptionKey: "commands.settings.agent.sessionRetryDelayDesc", category: "agent", type: "number", defaultValue: 1e3 },
43
+ { key: "agent.debug", labelKey: "commands.settings.agent.debug", descriptionKey: "commands.settings.agent.debugDesc", category: "agent", type: "boolean", defaultValue: false },
44
+ // Permissions
45
+ { key: "permissions.mode", labelKey: "commands.settings.permissions.mode", descriptionKey: "commands.settings.permissions.modeDesc", category: "permissions", type: "enum", enumValues: ["interactive", "unrestricted", "restricted"], defaultValue: "interactive" },
46
+ { key: "permissions.rememberSession", labelKey: "commands.settings.permissions.rememberSession", descriptionKey: "commands.settings.permissions.rememberSessionDesc", category: "permissions", type: "boolean", defaultValue: true },
47
+ // Network
48
+ { key: "network.maxRetries", labelKey: "commands.settings.network.maxRetries", descriptionKey: "commands.settings.network.maxRetriesDesc", category: "network", type: "number", defaultValue: 3 },
49
+ { key: "network.timeout", labelKey: "commands.settings.network.timeout", descriptionKey: "commands.settings.network.timeoutDesc", category: "network", type: "number", defaultValue: 3e4 },
50
+ { key: "network.retryDelay", labelKey: "commands.settings.network.retryDelay", descriptionKey: "commands.settings.network.retryDelayDesc", category: "network", type: "number", defaultValue: 1e3 },
51
+ // Telemetry & Reporting
52
+ { key: "telemetry.enabled", labelKey: "commands.settings.telemetry.enabled", descriptionKey: "commands.settings.telemetry.enabledDesc", category: "telemetry", type: "boolean", defaultValue: false },
53
+ { key: "autoReport.enabled", labelKey: "commands.settings.telemetry.autoReportEnabled", descriptionKey: "commands.settings.telemetry.autoReportEnabledDesc", category: "telemetry", type: "boolean", defaultValue: true },
54
+ // Auto-mode
55
+ { key: "automode.maxIterations", labelKey: "commands.settings.automode.maxIterations", descriptionKey: "commands.settings.automode.maxIterationsDesc", category: "automode", type: "number", defaultValue: 50 },
56
+ { key: "automode.maxRuntime", labelKey: "commands.settings.automode.maxRuntime", descriptionKey: "commands.settings.automode.maxRuntimeDesc", category: "automode", type: "number", defaultValue: 120 },
57
+ { key: "automode.maxCost", labelKey: "commands.settings.automode.maxCost", descriptionKey: "commands.settings.automode.maxCostDesc", category: "automode", type: "number", defaultValue: 10 },
58
+ { key: "automode.checkpointInterval", labelKey: "commands.settings.automode.checkpointInterval", descriptionKey: "commands.settings.automode.checkpointIntervalDesc", category: "automode", type: "number", defaultValue: 5 },
59
+ { key: "automode.useWorktree", labelKey: "commands.settings.automode.useWorktree", descriptionKey: "commands.settings.automode.useWorktreeDesc", category: "automode", type: "boolean", defaultValue: true },
60
+ // Teams
61
+ { key: "teams.enabled", labelKey: "commands.settings.teams.enabled", descriptionKey: "commands.settings.teams.enabledDesc", category: "teams", type: "boolean", defaultValue: true },
62
+ { key: "teams.teammateMode", labelKey: "commands.settings.teams.teammateMode", descriptionKey: "commands.settings.teams.teammateModeDesc", category: "teams", type: "enum", enumValues: ["auto", "in-process", "tmux"], defaultValue: "auto" },
63
+ { key: "teams.maxTeammates", labelKey: "commands.settings.teams.maxTeammates", descriptionKey: "commands.settings.teams.maxTeammatesDesc", category: "teams", type: "number", defaultValue: 5 },
64
+ // Search
65
+ { key: "search.provider", labelKey: "commands.settings.search.provider", descriptionKey: "commands.settings.search.providerDesc", category: "search", type: "enum", enumValues: ["google", "brave", "duckduckgo", "parallel"], defaultValue: "google" },
66
+ { key: "search.braveApiKey", labelKey: "commands.settings.search.braveApiKey", descriptionKey: "commands.settings.search.braveApiKeyDesc", category: "search", type: "password" },
67
+ { key: "search.parallelApiKey", labelKey: "commands.settings.search.parallelApiKey", descriptionKey: "commands.settings.search.parallelApiKeyDesc", category: "search", type: "password" }
68
+ ];
69
+ function getNestedValue(obj, path) {
70
+ const parts = path.split(".");
71
+ let current = obj;
72
+ for (const part of parts) {
73
+ if (current == null || typeof current !== "object") return void 0;
74
+ current = current[part];
75
+ }
76
+ return current;
77
+ }
78
+ function setNestedValue(obj, path, value) {
79
+ const parts = path.split(".");
80
+ let current = obj;
81
+ for (let i = 0; i < parts.length - 1; i++) {
82
+ if (current[parts[i]] == null || typeof current[parts[i]] !== "object") {
83
+ current[parts[i]] = {};
84
+ }
85
+ current = current[parts[i]];
86
+ }
87
+ current[parts[parts.length - 1]] = value;
88
+ }
89
+ function getSettingsForCategory(category) {
90
+ return SETTINGS_REGISTRY.filter((s) => s.category === category);
91
+ }
92
+ function formatSettingValue(value, type) {
93
+ if (value == null || value === void 0) {
94
+ if (type === "password") return chalk.gray("(not set)");
95
+ return chalk.gray("(default)");
96
+ }
97
+ switch (type) {
98
+ case "boolean":
99
+ return value ? chalk.green(t("commands.settings.on")) : chalk.red(t("commands.settings.off"));
100
+ case "password":
101
+ return typeof value === "string" && value.length > 0 ? chalk.gray("****") : chalk.gray("(not set)");
102
+ case "number":
103
+ return chalk.cyan(String(value));
104
+ case "enum":
105
+ case "string":
106
+ return chalk.cyan(String(value));
107
+ default:
108
+ return String(value);
109
+ }
110
+ }
111
+ async function editSetting(setting, config) {
112
+ const currentValue = getNestedValue(config, setting.key);
113
+ switch (setting.type) {
114
+ case "boolean": {
115
+ const current = currentValue ?? setting.defaultValue ?? false;
116
+ const newValue = await showConfirm({
117
+ title: t(setting.labelKey),
118
+ defaultValue: current
119
+ });
120
+ if (newValue !== current) {
121
+ setNestedValue(config, setting.key, newValue);
122
+ return true;
123
+ }
124
+ return false;
125
+ }
126
+ case "enum": {
127
+ const options = (setting.enumValues ?? []).map((v) => ({
128
+ label: v === String(currentValue) ? `${v} (current)` : v,
129
+ value: v
130
+ }));
131
+ const result = await showModal({
132
+ title: t(setting.labelKey),
133
+ options,
134
+ initialIndex: setting.enumValues?.indexOf(String(currentValue ?? setting.defaultValue)) ?? 0
135
+ });
136
+ if (result && result.value !== String(currentValue)) {
137
+ setNestedValue(config, setting.key, result.value);
138
+ return true;
139
+ }
140
+ return false;
141
+ }
142
+ case "string": {
143
+ const result = await showInput({
144
+ title: t(setting.labelKey),
145
+ defaultValue: String(currentValue ?? setting.defaultValue ?? "")
146
+ });
147
+ if (result !== null && result !== String(currentValue)) {
148
+ setNestedValue(config, setting.key, result);
149
+ return true;
150
+ }
151
+ return false;
152
+ }
153
+ case "number": {
154
+ const result = await showInput({
155
+ title: t(setting.labelKey),
156
+ defaultValue: String(currentValue ?? setting.defaultValue ?? ""),
157
+ validate: (v) => {
158
+ const n = Number(v);
159
+ if (isNaN(n) || !Number.isFinite(n)) return "Must be a number";
160
+ return true;
161
+ }
162
+ });
163
+ if (result !== null) {
164
+ const numValue = Number(result);
165
+ if (numValue !== currentValue) {
166
+ setNestedValue(config, setting.key, numValue);
167
+ return true;
168
+ }
169
+ }
170
+ return false;
171
+ }
172
+ case "password": {
173
+ const result = await showPassword({
174
+ title: t(setting.labelKey)
175
+ });
176
+ if (result !== null && result !== String(currentValue ?? "")) {
177
+ setNestedValue(config, setting.key, result);
178
+ return true;
179
+ }
180
+ return false;
181
+ }
182
+ default:
183
+ return false;
184
+ }
185
+ }
186
+ async function showCategorySettings(category, config) {
187
+ while (true) {
188
+ const settings2 = getSettingsForCategory(category);
189
+ const options = settings2.map((s) => {
190
+ const value = getNestedValue(config, s.key);
191
+ const display = formatSettingValue(value, s.type);
192
+ const label = s.redirect ? `${t(s.labelKey)}: ${display} (${s.redirect})` : `${t(s.labelKey)}: ${display}`;
193
+ return {
194
+ label,
195
+ value: s.key,
196
+ description: s.descriptionKey ? t(s.descriptionKey) : void 0
197
+ };
198
+ });
199
+ options.push({ label: t("commands.settings.back"), value: "__back__" });
200
+ const result = await showModal({
201
+ title: t("commands.settings.selectSetting"),
202
+ options
203
+ });
204
+ if (!result || result.value === "__back__") return;
205
+ const setting = SETTINGS_REGISTRY.find((s) => s.key === result.value);
206
+ if (!setting) return;
207
+ if (setting.redirect) {
208
+ console.log(chalk.gray(`
209
+ ${t("commands.settings.redirect", { command: chalk.cyan(setting.redirect) })}
210
+ `));
211
+ continue;
212
+ }
213
+ const changed = await editSetting(setting, config);
214
+ if (changed) {
215
+ await saveConfig(config);
216
+ console.log(chalk.green(`
217
+ ${t("commands.settings.saved")}
218
+ `));
219
+ }
220
+ }
221
+ }
222
+ async function settings(ctx) {
223
+ console.log(chalk.cyan(`
224
+ ${t("commands.settings.title")}
225
+ `));
226
+ while (true) {
227
+ const options = SETTING_CATEGORIES.map((cat) => ({
228
+ label: t(cat.labelKey),
229
+ value: cat.id
230
+ }));
231
+ const result = await showModal({
232
+ title: t("commands.settings.selectCategory"),
233
+ options
234
+ });
235
+ if (!result) return null;
236
+ await showCategorySettings(result.value, ctx.config);
237
+ }
238
+ }
239
+ var metadata = {
240
+ command: "/settings",
241
+ description: "configure autohand settings",
242
+ implemented: true
243
+ };
244
+
245
+ export {
246
+ SETTING_CATEGORIES,
247
+ SETTINGS_REGISTRY,
248
+ getNestedValue,
249
+ setNestedValue,
250
+ getSettingsForCategory,
251
+ formatSettingValue,
252
+ editSetting,
253
+ settings,
254
+ metadata
255
+ };
256
+ /**
257
+ * @license
258
+ * Copyright 2025 Autohand AI LLC
259
+ * SPDX-License-Identifier: Apache-2.0
260
+ */
@@ -0,0 +1,29 @@
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; } }
2
+
3
+ var _chunkRVUQKMXXcjs = require('./chunk-RVUQKMXX.cjs');
4
+
5
+ // src/commands/import.ts
6
+ var metadata = {
7
+ command: "/import",
8
+ description: _chunkRVUQKMXXcjs.t.call(void 0, "commands.import.description") || "Import data from other coding agents",
9
+ implemented: true
10
+ };
11
+ async function execute(args) {
12
+ const { runImport } = await Promise.resolve().then(() => _interopRequireWildcard(require("./import-PQJPNXA4.cjs")));
13
+ const source = args[0];
14
+ const flags = args.slice(1);
15
+ const all = flags.includes("--all");
16
+ const dryRun = flags.includes("--dry-run");
17
+ await runImport({ source, all, dryRun });
18
+ return null;
19
+ }
20
+
21
+
22
+
23
+
24
+ exports.metadata = metadata; exports.execute = execute;
25
+ /**
26
+ * @license
27
+ * Copyright 2025 Autohand AI LLC
28
+ * SPDX-License-Identifier: Apache-2.0
29
+ */
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  showModal
3
- } from "./chunk-3KBBARKO.js";
3
+ } from "./chunk-5OBNULPU.js";
4
4
  import {
5
5
  t
6
- } from "./chunk-NMWEDN4Z.js";
6
+ } from "./chunk-HFMLWH7B.js";
7
7
 
8
8
  // src/commands/ide.ts
9
9
  import chalk from "chalk";
@@ -1,38 +1,70 @@
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; }
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 _chunkFPAE6ORVcjs = require('./chunk-FPAE6ORV.cjs');
3
4
 
4
5
 
6
+ var _chunkUJTCTTUFcjs = require('./chunk-UJTCTTUF.cjs');
5
7
 
6
- var _chunkRJP3SZ7Qcjs = require('./chunk-RJP3SZ7Q.cjs');
7
8
 
8
9
 
9
10
 
10
- var _chunkPGRH5Q77cjs = require('./chunk-PGRH5Q77.cjs');
11
+
12
+ var _chunkRD5XAJR2cjs = require('./chunk-RD5XAJR2.cjs');
11
13
 
12
14
 
13
- var _chunkXBUMKEFNcjs = require('./chunk-XBUMKEFN.cjs');
14
15
 
16
+ var _chunkPGRH5Q77cjs = require('./chunk-PGRH5Q77.cjs');
15
17
 
16
- var _chunk2U5HFVROcjs = require('./chunk-2U5HFVRO.cjs');
18
+
19
+ var _chunkRVUQKMXXcjs = require('./chunk-RVUQKMXX.cjs');
17
20
 
18
21
  // src/commands/theme.ts
19
22
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
20
23
  async function theme(ctx) {
21
- const themes = _chunkRJP3SZ7Qcjs.listAvailableThemes.call(void 0, );
24
+ const themes = _chunkRD5XAJR2cjs.listAvailableThemes.call(void 0, );
22
25
  const currentTheme = _chunkPGRH5Q77cjs.isThemeInitialized.call(void 0, ) ? _chunkPGRH5Q77cjs.getTheme.call(void 0, ).name : _optionalChain([ctx, 'access', _ => _.config, 'access', _2 => _2.ui, 'optionalAccess', _3 => _3.theme]) || "dark";
23
26
  console.log(_chalk2.default.cyan(`
24
- \u{1F3A8} ${_chunk2U5HFVROcjs.t.call(void 0, "commands.theme.title")}
27
+ \u{1F3A8} ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.theme.title")}
25
28
  `));
26
- console.log(_chalk2.default.gray(_chunk2U5HFVROcjs.t.call(void 0, "commands.theme.currentTheme", { theme: _chalk2.default.white(currentTheme) })));
27
- console.log(_chalk2.default.gray(`Custom themes location: ${_chunkRJP3SZ7Qcjs.CUSTOM_THEMES_DIR}
29
+ console.log(_chalk2.default.gray(_chunkRVUQKMXXcjs.t.call(void 0, "commands.theme.currentTheme", { theme: _chalk2.default.white(currentTheme) })));
30
+ console.log(_chalk2.default.gray(`Custom themes location: ${_chunkRD5XAJR2cjs.CUSTOM_THEMES_DIR}
28
31
  `));
29
- const options = themes.map((name) => ({
30
- label: name === currentTheme ? `${name} (current)` : name,
31
- value: name,
32
- description: name === "dark" ? "Default dark theme" : name === "light" ? "Light theme" : "Custom theme"
33
- }));
34
- const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
35
- title: _chunk2U5HFVROcjs.t.call(void 0, "commands.theme.selectPrompt"),
32
+ const descriptions = {
33
+ // Built-in
34
+ dark: "Default dark theme",
35
+ light: "Light terminal backgrounds",
36
+ dracula: "Vibrant Dracula palette",
37
+ sandy: "Warm, earthy desert tones",
38
+ tui: "New Zealand-inspired colors",
39
+ "github-dark": "GitHub Dark terminal palette",
40
+ // Curated Ghostty themes
41
+ "Atom One Dark": "Atom editor dark theme",
42
+ "Ayu Mirage": "Soft dark with warm accents",
43
+ "Catppuccin Frappe": "Soothing pastel dark",
44
+ "Catppuccin Latte": "Soothing pastel light",
45
+ "Catppuccin Macchiato": "Soothing pastel medium dark",
46
+ "Catppuccin Mocha": "Soothing pastel deep dark",
47
+ "Everforest Dark Hard": "Comfortable green-tinted dark",
48
+ "Gruvbox Dark": "Retro groove warm dark",
49
+ "Gruvbox Light": "Retro groove warm light",
50
+ "Kanagawa Wave": "Dark with Japanese wave palette",
51
+ "Monokai Pro": "Modern Monokai refined",
52
+ "Nord": "Arctic, north-bluish palette",
53
+ "One Half Dark": "Clean dark balanced colors",
54
+ "Rose Pine": "All-natural pine dark",
55
+ "Rose Pine Dawn": "All-natural pine light",
56
+ "Rose Pine Moon": "All-natural pine dimmed dark",
57
+ "Solarized Osaka Night": "Solarized meets Osaka nights",
58
+ "TokyoNight": "Clean dark with vivid colors",
59
+ "TokyoNight Storm": "Storm variant with blue tints"
60
+ };
61
+ const options = themes.map((name) => {
62
+ const label = name === currentTheme ? `${name} (current)` : name;
63
+ const description = _nullishCoalesce(descriptions[name], () => ( (name in _chunkRD5XAJR2cjs.builtInThemes ? "Built-in theme" : "Ghostty theme")));
64
+ return { label, value: name, description };
65
+ });
66
+ const result = await _chunkFPAE6ORVcjs.showModal.call(void 0, {
67
+ title: _chunkRVUQKMXXcjs.t.call(void 0, "commands.theme.selectPrompt"),
36
68
  options,
37
69
  initialIndex: themes.indexOf(currentTheme)
38
70
  });
@@ -43,14 +75,14 @@ async function theme(ctx) {
43
75
  const selected = result.value;
44
76
  if (selected === currentTheme) {
45
77
  console.log(_chalk2.default.gray(`
46
- ${_chunk2U5HFVROcjs.t.call(void 0, "commands.theme.noChange")}`));
78
+ ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.theme.noChange")}`));
47
79
  return null;
48
80
  }
49
- _chunkRJP3SZ7Qcjs.initTheme.call(void 0, selected);
81
+ _chunkRD5XAJR2cjs.initTheme.call(void 0, selected);
50
82
  ctx.config.ui = { ...ctx.config.ui, theme: selected };
51
- await _chunkRJP3SZ7Qcjs.saveConfig.call(void 0, ctx.config);
83
+ await _chunkUJTCTTUFcjs.saveConfig.call(void 0, ctx.config);
52
84
  console.log(_chalk2.default.green(`
53
- \u2713 ${_chunk2U5HFVROcjs.t.call(void 0, "commands.theme.changed", { theme: selected })}`));
85
+ \u2713 ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.theme.changed", { theme: selected })}`));
54
86
  const newTheme = _chunkPGRH5Q77cjs.getTheme.call(void 0, );
55
87
  console.log("\nTheme preview:");
56
88
  console.log(` ${newTheme.fg("accent", "\u25CF accent")} ${newTheme.fg("success", "\u25CF success")} ${newTheme.fg("error", "\u25CF error")} ${newTheme.fg("warning", "\u25CF warning")}`);
@@ -67,7 +99,7 @@ async function themeInfo() {
67
99
  console.log(_chalk2.default.cyan("\n\u{1F3A8} Current Theme Info\n"));
68
100
  console.log(_chalk2.default.gray(`Name: ${_chalk2.default.white(currentTheme.name)}`));
69
101
  console.log(_chalk2.default.gray(`Color mode: ${_chalk2.default.white(currentTheme.getColorMode())}`));
70
- console.log(_chalk2.default.gray(`Custom themes dir: ${_chunkRJP3SZ7Qcjs.CUSTOM_THEMES_DIR}`));
102
+ console.log(_chalk2.default.gray(`Custom themes dir: ${_chunkRD5XAJR2cjs.CUSTOM_THEMES_DIR}`));
71
103
  console.log();
72
104
  console.log("Color preview:");
73
105
  console.log(` ${currentTheme.fg("accent", "\u25CF accent")} ${currentTheme.fg("success", "\u25CF success")} ${currentTheme.fg("error", "\u25CF error")} ${currentTheme.fg("warning", "\u25CF warning")}`);
@@ -84,7 +116,7 @@ async function themeInfo() {
84
116
  }
85
117
  var metadata = {
86
118
  command: "/theme",
87
- description: _chunk2U5HFVROcjs.t.call(void 0, "commands.theme.description"),
119
+ description: _chunkRVUQKMXXcjs.t.call(void 0, "commands.theme.description"),
88
120
  implemented: true
89
121
  };
90
122
 
@@ -3,7 +3,7 @@
3
3
  var _chunkFPHU2ES6cjs = require('./chunk-FPHU2ES6.cjs');
4
4
 
5
5
 
6
- var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
6
+ var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
7
7
 
8
8
  // src/sync/types.ts
9
9
  var DEFAULT_SYNC_CONFIG = {
@@ -173,7 +173,7 @@ var SyncService = class {
173
173
  this.onEvent = options.onEvent || (() => {
174
174
  });
175
175
  this.onAuthFailure = options.onAuthFailure;
176
- this.basePath = _chunkGIZL57FEcjs.AUTOHAND_HOME;
176
+ this.basePath = _chunkSEKD5FH3cjs.AUTOHAND_HOME;
177
177
  }
178
178
  /**
179
179
  * Start the background sync timer
@@ -1,18 +1,50 @@
1
1
  import {
2
2
  I18nProvider,
3
3
  useTranslation
4
- } from "./chunk-BISFR6ZL.js";
4
+ } from "./chunk-EPNYD4NV.js";
5
5
 
6
6
  // src/ui/ink/components/Modal.tsx
7
7
  import { useState, useMemo, useCallback } from "react";
8
8
  import { Box, Text, useInput, render } from "ink";
9
9
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
10
  var OTHER_VALUE = "__other__";
11
+ function resolveInitialCursor(mode, optionsLength, initialIndex, defaultValue) {
12
+ if (mode === "confirm") {
13
+ return defaultValue === false ? 1 : 0;
14
+ }
15
+ if (typeof initialIndex !== "number" || !Number.isFinite(initialIndex) || optionsLength <= 0) {
16
+ return 0;
17
+ }
18
+ return Math.max(0, Math.min(optionsLength - 1, Math.floor(initialIndex)));
19
+ }
20
+ function unmountAndResolve(instance, value, resolve) {
21
+ instance.unmount();
22
+ process.nextTick(() => resolve(value));
23
+ }
11
24
  function Modal(props) {
12
25
  const { t } = useTranslation();
13
26
  const { title, onCancel } = props;
14
27
  const mode = "mode" in props ? props.mode : "select";
15
- const [cursor, setCursor] = useState(0);
28
+ const selectOptionCount = mode === "select" && "options" in props ? props.options.length + ("allowCustomInput" in props && props.allowCustomInput ? 1 : 0) : 0;
29
+ const confirmDefaultValue = mode === "confirm" && typeof props.defaultValue === "boolean" ? props.defaultValue : void 0;
30
+ const maxVisible = mode === "select" && "maxVisible" in props && typeof props.maxVisible === "number" ? props.maxVisible : 10;
31
+ const [cursor, setCursor] = useState(
32
+ () => resolveInitialCursor(
33
+ mode === "confirm" ? "confirm" : "select",
34
+ mode === "confirm" ? 2 : selectOptionCount,
35
+ mode === "select" && "initialIndex" in props ? props.initialIndex : void 0,
36
+ confirmDefaultValue
37
+ )
38
+ );
39
+ const [windowStart, setWindowStart] = useState(() => {
40
+ const initial = resolveInitialCursor(
41
+ mode === "confirm" ? "confirm" : "select",
42
+ mode === "confirm" ? 2 : selectOptionCount,
43
+ mode === "select" && "initialIndex" in props ? props.initialIndex : void 0,
44
+ confirmDefaultValue
45
+ );
46
+ return Math.max(0, initial - Math.floor(maxVisible / 2));
47
+ });
16
48
  const [customInput, setCustomInput] = useState("");
17
49
  const [isCustomMode, setIsCustomMode] = useState(false);
18
50
  const [inputValue, setInputValue] = useState(() => {
@@ -44,12 +76,6 @@ function Modal(props) {
44
76
  }
45
77
  return [];
46
78
  }, [mode, props, t]);
47
- useState(() => {
48
- if (mode === "confirm" && "defaultValue" in props) {
49
- const defaultIdx = props.defaultValue === false ? 1 : 0;
50
- setCursor(defaultIdx);
51
- }
52
- });
53
79
  const hasNoChoices = mode === "select" && choices.length === 0;
54
80
  const findNextEnabled = useCallback(
55
81
  (from, direction) => {
@@ -138,11 +164,27 @@ function Modal(props) {
138
164
  return;
139
165
  }
140
166
  if (key.upArrow) {
141
- setCursor((prev) => findNextEnabled(prev, -1));
167
+ setCursor((prev) => {
168
+ const next = findNextEnabled(prev, -1);
169
+ setWindowStart((ws) => {
170
+ if (next < ws) return next;
171
+ if (next >= ws + maxVisible) return Math.max(0, next - maxVisible + 1);
172
+ return ws;
173
+ });
174
+ return next;
175
+ });
142
176
  return;
143
177
  }
144
178
  if (key.downArrow) {
145
- setCursor((prev) => findNextEnabled(prev, 1));
179
+ setCursor((prev) => {
180
+ const next = findNextEnabled(prev, 1);
181
+ setWindowStart((ws) => {
182
+ if (next >= ws + maxVisible) return next - maxVisible + 1;
183
+ if (next < ws) return next;
184
+ return ws;
185
+ });
186
+ return next;
187
+ });
146
188
  return;
147
189
  }
148
190
  if (char && char >= "1" && char <= "9") {
@@ -191,7 +233,11 @@ function Modal(props) {
191
233
  if (hasNoChoices) {
192
234
  return /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Text, { color: "gray", children: t("ui.noOptionsAvailable") }) });
193
235
  }
194
- return choices.map((choice, i) => {
236
+ const needsScroll = choices.length > maxVisible;
237
+ const windowEnd = Math.min(windowStart + maxVisible, choices.length);
238
+ const visibleChoices = needsScroll ? choices.slice(windowStart, windowEnd) : choices;
239
+ const items = visibleChoices.map((choice, vi) => {
240
+ const i = needsScroll ? windowStart + vi : vi;
195
241
  const isSelected = i === cursor;
196
242
  const isDisabled = choice.disabled;
197
243
  let color;
@@ -214,6 +260,23 @@ function Modal(props) {
214
260
  ] })
215
261
  ] }, `${choice.value}-${i}`);
216
262
  });
263
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
264
+ needsScroll && windowStart > 0 && /* @__PURE__ */ jsxs(Text, { color: "gray", children: [
265
+ " ",
266
+ "\u2191",
267
+ " ",
268
+ windowStart,
269
+ " more above"
270
+ ] }),
271
+ items,
272
+ needsScroll && windowEnd < choices.length && /* @__PURE__ */ jsxs(Text, { color: "gray", children: [
273
+ " ",
274
+ "\u2193",
275
+ " ",
276
+ choices.length - windowEnd,
277
+ " more below"
278
+ ] })
279
+ ] });
217
280
  };
218
281
  const renderHint = () => {
219
282
  if (mode === "input" || mode === "password") {
@@ -236,7 +299,7 @@ function Modal(props) {
236
299
  ] });
237
300
  }
238
301
  async function showModal(options) {
239
- const { title, options: modalOptions, allowCustomInput, multiSelect } = options;
302
+ const { title, options: modalOptions, allowCustomInput, multiSelect, maxVisible } = options;
240
303
  if (!process.stdout.isTTY) {
241
304
  return null;
242
305
  }
@@ -250,17 +313,16 @@ async function showModal(options) {
250
313
  options: modalOptions,
251
314
  allowCustomInput,
252
315
  multiSelect,
316
+ maxVisible,
253
317
  onSelect: (option) => {
254
318
  if (completed) return;
255
319
  completed = true;
256
- instance.unmount();
257
- resolve(option);
320
+ unmountAndResolve(instance, option, resolve);
258
321
  },
259
322
  onCancel: () => {
260
323
  if (completed) return;
261
324
  completed = true;
262
- instance.unmount();
263
- resolve(null);
325
+ unmountAndResolve(instance, null, resolve);
264
326
  }
265
327
  }
266
328
  ) }),
@@ -286,14 +348,12 @@ async function showConfirm(options) {
286
348
  onConfirm: (confirmed) => {
287
349
  if (completed) return;
288
350
  completed = true;
289
- instance.unmount();
290
- resolve(confirmed);
351
+ unmountAndResolve(instance, confirmed, resolve);
291
352
  },
292
353
  onCancel: () => {
293
354
  if (completed) return;
294
355
  completed = true;
295
- instance.unmount();
296
- resolve(false);
356
+ unmountAndResolve(instance, false, resolve);
297
357
  }
298
358
  }
299
359
  ) }),
@@ -319,14 +379,12 @@ async function showInput(options) {
319
379
  onSubmit: (value) => {
320
380
  if (completed) return;
321
381
  completed = true;
322
- instance.unmount();
323
- resolve(value);
382
+ unmountAndResolve(instance, value, resolve);
324
383
  },
325
384
  onCancel: () => {
326
385
  if (completed) return;
327
386
  completed = true;
328
- instance.unmount();
329
- resolve(null);
387
+ unmountAndResolve(instance, null, resolve);
330
388
  }
331
389
  }
332
390
  ) }),
@@ -351,14 +409,12 @@ async function showPassword(options) {
351
409
  onSubmit: (value) => {
352
410
  if (completed) return;
353
411
  completed = true;
354
- instance.unmount();
355
- resolve(value);
412
+ unmountAndResolve(instance, value, resolve);
356
413
  },
357
414
  onCancel: () => {
358
415
  if (completed) return;
359
416
  completed = true;
360
- instance.unmount();
361
- resolve(null);
417
+ unmountAndResolve(instance, null, resolve);
362
418
  }
363
419
  }
364
420
  ) }),
@@ -368,6 +424,7 @@ async function showPassword(options) {
368
424
  }
369
425
 
370
426
  export {
427
+ Modal,
371
428
  showModal,
372
429
  showConfirm,
373
430
  showInput,