autohand-cli 0.7.8 → 0.7.10

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 (269) hide show
  1. package/README.md +19 -0
  2. package/dist/{AutomodeManager-YVCJXOMQ.js → AutomodeManager-NGRAO2MH.js} +35 -8
  3. package/dist/{AutomodeManager-HV6M7EAX.cjs → AutomodeManager-ZKQMBM4T.cjs} +35 -8
  4. package/dist/{CommunitySkillsCache-Q22FUAR5.js → CommunitySkillsCache-ILWHWE5P.js} +2 -2
  5. package/dist/CommunitySkillsCache-KHC6RUJW.cjs +7 -0
  6. package/dist/MemoryManager-6ZT7IDO5.cjs +7 -0
  7. package/dist/MemoryManager-AJGS5AKB.js +7 -0
  8. package/dist/PermissionManager-HG6W2DGU.cjs +10 -0
  9. package/dist/{PermissionManager-HATZKTRC.js → PermissionManager-U5OMGR3L.js} +3 -3
  10. package/dist/SessionManager-BJ2G6VV4.cjs +9 -0
  11. package/dist/{SessionManager-S5R6O3NU.js → SessionManager-ENPGYK5J.js} +2 -2
  12. package/dist/SkillsRegistry-6ZFOCT25.cjs +8 -0
  13. package/dist/{SkillsRegistry-R5WDM6T3.js → SkillsRegistry-C2SHOZ5D.js} +2 -2
  14. package/dist/{SyncApiClient-FAOMIZAP.js → SyncApiClient-AYXYSOJM.js} +1 -1
  15. package/dist/SyncApiClient-ID3KXEMA.cjs +10 -0
  16. package/dist/about-RGUM5QQ4.cjs +11 -0
  17. package/dist/about-VDR3SIHS.js +11 -0
  18. package/dist/add-dir-3BMVJ5H3.cjs +9 -0
  19. package/dist/{add-dir-PNU7AGKO.js → add-dir-RP2BL3JW.js} +2 -1
  20. package/dist/agents-JQ2PHCQB.js +10 -0
  21. package/dist/agents-RGSZ2BM3.cjs +10 -0
  22. package/dist/agents-new-LSJN2L2T.cjs +13 -0
  23. package/dist/agents-new-MZUEVKSK.js +13 -0
  24. package/dist/automode-DP3BMYJB.cjs +9 -0
  25. package/dist/{automode-QCRJSBRT.js → automode-XOF3U3OB.js} +2 -1
  26. package/dist/cc-2W6M7J45.cjs +8 -0
  27. package/dist/cc-UTTLESTY.js +8 -0
  28. package/dist/{chunk-B4ZPNXZE.cjs → chunk-34OGUMRO.cjs} +9 -5
  29. package/dist/chunk-3652ROFD.js +589 -0
  30. package/dist/{chunk-KNLBEUAV.cjs → chunk-3DQSBW4B.cjs} +10 -6
  31. package/dist/{chunk-XFPITUFJ.cjs → chunk-3S4DEIJP.cjs} +50 -8
  32. package/dist/{chunk-5MDDOGTD.cjs → chunk-3UNX56GC.cjs} +30 -37
  33. package/dist/chunk-46WX5IO2.cjs +499 -0
  34. package/dist/{chunk-OC5YDNFC.js → chunk-4ULBAYME.js} +42 -57
  35. package/dist/{chunk-VEDIYPWY.cjs → chunk-5BQ57AZC.cjs} +9 -9
  36. package/dist/{chunk-B5N5UAMO.cjs → chunk-5FZM7KLB.cjs} +13 -10
  37. package/dist/{chunk-JBKP2CLA.cjs → chunk-5NZA4UB4.cjs} +47 -47
  38. package/dist/{chunk-VPAN5H7Q.js → chunk-5Q3W4DEU.js} +43 -36
  39. package/dist/{chunk-VMMGT42E.cjs → chunk-65GTO4QM.cjs} +7 -3
  40. package/dist/{chunk-CXZEPTRI.js → chunk-6P3K4YUW.js} +6 -2
  41. package/dist/{chunk-MDWULS57.js → chunk-6UJMCWRY.js} +56 -33
  42. package/dist/chunk-73XIKTZL.js +124 -0
  43. package/dist/{chunk-23JQSCTO.js → chunk-7QNW24ZT.js} +8 -4
  44. package/dist/{chunk-XT4OSHSB.cjs → chunk-AEYOIPHD.cjs} +6 -2
  45. package/dist/chunk-ANUQFV43.cjs +589 -0
  46. package/dist/chunk-ATR3RORT.js +499 -0
  47. package/dist/{chunk-A6QBABQ7.js → chunk-B72CC4O6.js} +2 -2
  48. package/dist/{chunk-TAZJSKFD.js → chunk-BBIKQW66.js} +9 -5
  49. package/dist/{chunk-FFA4LDAO.cjs → chunk-BDIZGBDA.cjs} +8 -3
  50. package/dist/{chunk-3YEDXG6S.js → chunk-BG4OQUKP.js} +1 -1
  51. package/dist/{chunk-WIUGUR5T.js → chunk-BODVOW7B.js} +67 -16
  52. package/dist/{chunk-A552JHUJ.cjs → chunk-BZ73ZQTE.cjs} +34 -25
  53. package/dist/{chunk-YDOR2OCA.cjs → chunk-C22G4UE4.cjs} +27 -19
  54. package/dist/{chunk-GFJ6AETU.cjs → chunk-C2E3GJEE.cjs} +12 -9
  55. package/dist/{chunk-UL7YPRCU.js → chunk-C5SVIQG3.js} +10 -5
  56. package/dist/{chunk-6KMAJTU3.js → chunk-CUBYCLNL.js} +3 -2
  57. package/dist/{chunk-52MLYK5P.js → chunk-D2XFTCRP.js} +1 -1
  58. package/dist/{chunk-OBV3UUIL.js → chunk-DEAEO7RI.js} +1 -1
  59. package/dist/chunk-DMPVI3YK.cjs +400 -0
  60. package/dist/{chunk-C26EN22G.cjs → chunk-DUDDZRCS.cjs} +9 -5
  61. package/dist/{chunk-4RWTUT2Z.js → chunk-E7YL3AHT.js} +32 -23
  62. package/dist/{chunk-54GVL2SE.cjs → chunk-EAOEAQGF.cjs} +3 -2
  63. package/dist/{chunk-PU534KPO.cjs → chunk-EV53SLSB.cjs} +4 -4
  64. package/dist/{chunk-EDGV5BNH.js → chunk-F3EIOVSQ.js} +26 -33
  65. package/dist/{chunk-SFGJQPGC.cjs → chunk-FPHU2ES6.cjs} +56 -33
  66. package/dist/{chunk-G77ZY4QG.js → chunk-GD4AFYJ3.js} +1 -1
  67. package/dist/{chunk-PMMSDR44.cjs → chunk-GIZL57FE.cjs} +5 -1
  68. package/dist/{chunk-I4HVBWYF.js → chunk-GLAE5K5W.js} +7 -2
  69. package/dist/{chunk-4AMTDSQ3.cjs → chunk-HDSEJMWI.cjs} +6 -3
  70. package/dist/chunk-HLFZPN65.js +94 -0
  71. package/dist/{chunk-ZWS3KSMK.js → chunk-HQQ4NKER.js} +5 -2
  72. package/dist/{chunk-WBDPILKI.cjs → chunk-HVOBMOZ2.cjs} +6 -2
  73. package/dist/{chunk-MJFBVQHB.js → chunk-IPI3JXKP.js} +10 -7
  74. package/dist/chunk-IXFOH4OC.cjs +222 -0
  75. package/dist/chunk-JS7IPR7P.js +249 -0
  76. package/dist/{chunk-7TOHYAUF.cjs → chunk-KC5FPUOF.cjs} +2 -2
  77. package/dist/{chunk-7VW3A7DO.cjs → chunk-L42HTMMR.cjs} +2 -2
  78. package/dist/chunk-LGGZQTLM.cjs +209 -0
  79. package/dist/chunk-LOXOD4IS.cjs +8630 -0
  80. package/dist/chunk-MNCWB5F7.cjs +63 -0
  81. package/dist/{chunk-AVL4DKQO.js → chunk-MYNHJHDZ.js} +1 -1
  82. package/dist/{chunk-GDTZQSJ6.cjs → chunk-N4ZSG6JJ.cjs} +2 -2
  83. package/dist/chunk-NCC6ETZS.js +362 -0
  84. package/dist/chunk-NF7RIHJK.js +45 -0
  85. package/dist/{chunk-SYJLMBLP.cjs → chunk-NGBN2NGH.cjs} +77 -26
  86. package/dist/{chunk-SLISYSP4.cjs → chunk-NRORJRD4.cjs} +4 -4
  87. package/dist/{chunk-OTS4YFSZ.cjs → chunk-OKABWSWA.cjs} +7 -3
  88. package/dist/{chunk-KH7BCZJN.js → chunk-OLG7LZBD.js} +1 -1
  89. package/dist/{chunk-KZ7VMQTC.js → chunk-OMEH2EVE.js} +5 -1
  90. package/dist/{chunk-U5WIP4HS.js → chunk-P5VDZ6PV.js} +47 -5
  91. package/dist/{chunk-V5MTBGM4.cjs → chunk-PA2H2263.cjs} +6 -2
  92. package/dist/chunk-PGRH5Q77.cjs +249 -0
  93. package/dist/{chunk-DPJ3IIBB.js → chunk-PM62ZYXA.js} +18 -10
  94. package/dist/chunk-PNSRJT46.js +380 -0
  95. package/dist/{chunk-C3IFF3EH.cjs → chunk-PSED4Z4X.cjs} +43 -58
  96. package/dist/{chunk-EKY5PKQI.js → chunk-PWLLLJHU.js} +5 -1
  97. package/dist/{chunk-DOTAX65F.js → chunk-PYLR4J2D.js} +8 -4
  98. package/dist/{chunk-YWKZF2SA.js → chunk-QC6IUDDJ.js} +46 -46
  99. package/dist/{chunk-4M2GX7RH.cjs → chunk-QM7HZCQW.cjs} +11 -6
  100. package/dist/chunk-QRQ5EX7I.cjs +380 -0
  101. package/dist/{chunk-YDH2BMEN.js → chunk-QU64XI5X.js} +9 -6
  102. package/dist/{chunk-3L76MLO5.cjs → chunk-R7SDL3DJ.cjs} +27 -31
  103. package/dist/{chunk-WQSWU2QA.cjs → chunk-RJP3SZ7Q.cjs} +46 -255
  104. package/dist/{chunk-BAFJQUWR.js → chunk-RJXNNIFW.js} +18 -22
  105. package/dist/{chunk-YAGD43KA.cjs → chunk-S5G7OEN2.cjs} +47 -40
  106. package/dist/{chunk-2JPUEN44.cjs → chunk-SA4JOV4F.cjs} +61 -86
  107. package/dist/chunk-SAG6IY5Z.cjs +94 -0
  108. package/dist/chunk-TSV4LVHK.js +35 -0
  109. package/dist/{chunk-JHFH3N4U.cjs → chunk-TSY7JHIV.cjs} +2 -2
  110. package/dist/chunk-U23U52ZN.cjs +124 -0
  111. package/dist/chunk-UET7BDX2.js +8630 -0
  112. package/dist/chunk-ULQ6MDSJ.cjs +362 -0
  113. package/dist/{chunk-WH3D42BQ.js → chunk-UM4QEO36.js} +59 -84
  114. package/dist/chunk-VXCMGBXY.cjs +35 -0
  115. package/dist/chunk-WD5ZF6HE.js +63 -0
  116. package/dist/chunk-WH5RW7DV.cjs +85 -0
  117. package/dist/{chunk-GSOEIEOU.js → chunk-WJ276BIP.js} +5 -1
  118. package/dist/{chunk-P2Z6GDEN.js → chunk-WLTVF77A.js} +1 -1
  119. package/dist/{chunk-53BR4MUW.cjs → chunk-WOGJXDBU.cjs} +3 -3
  120. package/dist/{chunk-QJ53OSGF.js → chunk-WRJLBHWB.js} +6 -2
  121. package/dist/chunk-WYLFLZ42.js +222 -0
  122. package/dist/{chunk-B7EUETGY.cjs → chunk-XL77XYI2.cjs} +4 -4
  123. package/dist/{chunk-NI3BQXKU.js → chunk-XLI7SHCH.js} +2 -2
  124. package/dist/chunk-Y27LG4BQ.cjs +45 -0
  125. package/dist/chunk-Y6OWFIUF.js +209 -0
  126. package/dist/chunk-YKSSNFDZ.js +400 -0
  127. package/dist/{chunk-VRI7EXV6.js → chunk-YMDLUTF2.js} +5 -1
  128. package/dist/chunk-YVY27BJT.js +85 -0
  129. package/dist/{chunk-GWIAMKKF.js → chunk-ZBIBLOZL.js} +40 -249
  130. package/dist/completion-HVSWU5GR.cjs +13 -0
  131. package/dist/completion-WJ2MVNDH.js +13 -0
  132. package/dist/constants-RBQTR32A.cjs +20 -0
  133. package/dist/{constants-ZLG6M5SI.js → constants-V6J54N3X.js} +1 -1
  134. package/dist/export-NN7F5ANA.js +11 -0
  135. package/dist/export-UPS3AK2P.cjs +11 -0
  136. package/dist/feedback-ARI7CLVQ.js +14 -0
  137. package/dist/feedback-OZTPYHKJ.cjs +14 -0
  138. package/dist/help-4674IV4D.cjs +58 -0
  139. package/dist/help-ENG5KV2M.js +58 -0
  140. package/dist/history-2KUM6GN4.cjs +13 -0
  141. package/dist/history-RZFT34Q7.js +13 -0
  142. package/dist/hooks-7QSUBHBM.cjs +12 -0
  143. package/dist/hooks-S4MD4QSR.js +12 -0
  144. package/dist/i18n-6NKENUIV.js +32 -0
  145. package/dist/i18n-MXQXQOVE.cjs +32 -0
  146. package/dist/ide-5STDV43A.cjs +11 -0
  147. package/dist/ide-W2NYXOWQ.js +11 -0
  148. package/dist/index.cjs +18002 -13864
  149. package/dist/index.js +18252 -14114
  150. package/dist/init-FG5KEJCZ.cjs +9 -0
  151. package/dist/init-TV4MJDYK.js +9 -0
  152. package/dist/language-52Q7CSAY.cjs +16 -0
  153. package/dist/language-FXFDGOBF.js +16 -0
  154. package/dist/localProjectPermissions-2EATUDZM.cjs +17 -0
  155. package/dist/{localProjectPermissions-YFFAKLUZ.js → localProjectPermissions-WQYMGI42.js} +2 -2
  156. package/dist/login-AN42IOBK.js +18 -0
  157. package/dist/login-I65V4TGU.cjs +18 -0
  158. package/dist/logout-KK5UWGNG.js +16 -0
  159. package/dist/logout-VYYNWBHZ.cjs +16 -0
  160. package/dist/mcp-4SKTDECJ.js +15 -0
  161. package/dist/mcp-AGWPTMAX.cjs +15 -0
  162. package/dist/mcp-install-3NN2HAYR.cjs +473 -0
  163. package/dist/mcp-install-KTV52DQK.js +473 -0
  164. package/dist/memory-LG4K6XV6.cjs +9 -0
  165. package/dist/{memory-4GSP7NKV.js → memory-LRDK2SYC.js} +2 -1
  166. package/dist/model-P5D7ATE7.cjs +9 -0
  167. package/dist/{model-HKEFSH5E.js → model-WBFJIGUN.js} +2 -1
  168. package/dist/{new-EEZC4XXV.js → new-5A7RQEKI.js} +2 -1
  169. package/dist/new-EAATWI2G.cjs +9 -0
  170. package/dist/permissions-5URK6C44.js +12 -0
  171. package/dist/permissions-CJUDVG63.cjs +12 -0
  172. package/dist/plan-B3CW5DXJ.cjs +10 -0
  173. package/dist/plan-JFGNRL2S.js +10 -0
  174. package/dist/quit-A33JHDG7.cjs +9 -0
  175. package/dist/quit-IYBLN3DB.js +9 -0
  176. package/dist/resume-OPSJTCH7.cjs +12 -0
  177. package/dist/resume-TOWEEN5D.js +12 -0
  178. package/dist/search-GOLIE5BA.js +14 -0
  179. package/dist/search-H42HGUK5.cjs +14 -0
  180. package/dist/{sessions-4KXIT76T.js → sessions-B5NENDKY.js} +2 -1
  181. package/dist/sessions-YHAVEMWY.cjs +9 -0
  182. package/dist/share-2JD2AKKX.cjs +13 -0
  183. package/dist/share-MYGDOTQE.js +13 -0
  184. package/dist/{skills-3YEEODHK.js → skills-ICEQ2TNC.js} +2 -1
  185. package/dist/skills-LFVNZOMF.cjs +13 -0
  186. package/dist/{skills-install-KAXAQSN6.js → skills-install-6RN7FVCP.js} +9 -7
  187. package/dist/{skills-install-FTGOHOZ4.cjs → skills-install-LU6GA2WF.cjs} +14 -12
  188. package/dist/skills-new-5BM5PDFX.cjs +14 -0
  189. package/dist/skills-new-KWBWOX74.js +14 -0
  190. package/dist/status-M3XHJELG.cjs +10 -0
  191. package/dist/status-ZQDUYMKQ.js +10 -0
  192. package/dist/sync-6M3WRKMH.cjs +39 -0
  193. package/dist/sync-73D2MP65.cjs +16 -0
  194. package/dist/{sync-H4UHHLKU.js → sync-EXYX7HXW.js} +3 -3
  195. package/dist/sync-LL6M67CN.js +16 -0
  196. package/dist/theme-IFEI2IBJ.cjs +16 -0
  197. package/dist/theme-U3SKEULY.js +16 -0
  198. package/dist/ui/questionModal.cjs +28 -0
  199. package/dist/ui/questionModal.d.cts +11 -0
  200. package/dist/ui/questionModal.d.ts +11 -0
  201. package/dist/ui/questionModal.js +28 -0
  202. package/dist/undo-4DS67OAW.cjs +9 -0
  203. package/dist/undo-YMALVAPN.js +9 -0
  204. package/package.json +3 -2
  205. package/dist/CommunitySkillsCache-2BITCEAA.cjs +0 -7
  206. package/dist/MemoryManager-2ATHG7BH.js +0 -7
  207. package/dist/MemoryManager-AENCGCEW.cjs +0 -7
  208. package/dist/PermissionManager-6HZGTK2N.cjs +0 -10
  209. package/dist/SessionManager-AG4WT3DP.cjs +0 -9
  210. package/dist/SkillsRegistry-ZXU6YDRP.cjs +0 -8
  211. package/dist/SyncApiClient-UOA4VLLD.cjs +0 -10
  212. package/dist/add-dir-OMK3Y4DM.cjs +0 -8
  213. package/dist/agents-ICAC3KD3.js +0 -9
  214. package/dist/agents-YONWPKFS.cjs +0 -9
  215. package/dist/agents-new-NV557UVG.cjs +0 -10
  216. package/dist/agents-new-QHM3CO4B.js +0 -10
  217. package/dist/automode-BRHUHGXU.cjs +0 -8
  218. package/dist/chunk-3HPUOQJN.cjs +0 -23
  219. package/dist/chunk-5DN5KNXU.js +0 -81
  220. package/dist/chunk-7BYSXAKS.js +0 -23
  221. package/dist/chunk-ARVFUZOB.js +0 -736
  222. package/dist/chunk-BEIG7V7Q.cjs +0 -51
  223. package/dist/chunk-GWXXFQ3F.cjs +0 -81
  224. package/dist/chunk-XFQS2VGT.cjs +0 -736
  225. package/dist/chunk-Z3Q2AFDS.js +0 -51
  226. package/dist/completion-WVFWX7XQ.cjs +0 -10
  227. package/dist/completion-Y42FKDT3.js +0 -10
  228. package/dist/constants-G2PLP5HH.cjs +0 -20
  229. package/dist/export-BKBJ7PB2.cjs +0 -8
  230. package/dist/export-WJ5P6E5Z.js +0 -8
  231. package/dist/feedback-HZBCTSFG.js +0 -10
  232. package/dist/feedback-JBQ3UPGZ.cjs +0 -10
  233. package/dist/help-PKC6QCNG.js +0 -10
  234. package/dist/help-UEELQRHP.cjs +0 -10
  235. package/dist/hooks-G4VLYMLX.cjs +0 -9
  236. package/dist/hooks-LN4A6NQL.js +0 -9
  237. package/dist/init-DML7AOII.js +0 -8
  238. package/dist/init-SLLSDDJN.cjs +0 -8
  239. package/dist/language-KODBDE5R.js +0 -12
  240. package/dist/language-SJT475NW.cjs +0 -12
  241. package/dist/localProjectPermissions-AYQYGTOE.cjs +0 -17
  242. package/dist/login-TC2KROQI.js +0 -14
  243. package/dist/login-TYMR2ZD3.cjs +0 -14
  244. package/dist/logout-2ECV365P.js +0 -12
  245. package/dist/logout-CO3CPYZJ.cjs +0 -12
  246. package/dist/memory-CFNC7RJH.cjs +0 -8
  247. package/dist/model-TKVEJ5BC.cjs +0 -8
  248. package/dist/new-EB2MBQXA.cjs +0 -8
  249. package/dist/permissions-5MTH22EF.js +0 -9
  250. package/dist/permissions-IP5SITPI.cjs +0 -9
  251. package/dist/quit-2RYFGIJP.cjs +0 -8
  252. package/dist/quit-RSYIERO5.js +0 -8
  253. package/dist/resume-EPOEF3WV.cjs +0 -9
  254. package/dist/resume-LOYD5MMP.js +0 -9
  255. package/dist/sessions-7RTCPVNE.cjs +0 -8
  256. package/dist/share-APR5S2CS.cjs +0 -10
  257. package/dist/share-VLJFDZKR.js +0 -10
  258. package/dist/skills-CRM55MKM.cjs +0 -12
  259. package/dist/skills-new-JF4FKNUT.cjs +0 -11
  260. package/dist/skills-new-JYX2GBKM.js +0 -11
  261. package/dist/status-DAEFE7ZC.cjs +0 -9
  262. package/dist/status-PBFFUC4Q.js +0 -9
  263. package/dist/sync-3B7SNBYC.js +0 -14
  264. package/dist/sync-4RARBQIH.cjs +0 -39
  265. package/dist/sync-YZ6YZ42H.cjs +0 -14
  266. package/dist/theme-3XV5BWUB.js +0 -12
  267. package/dist/theme-Z2WS5XWZ.cjs +0 -12
  268. package/dist/undo-2WR2ZIEC.cjs +0 -8
  269. package/dist/undo-7QJBXARS.js +0 -8
@@ -1,25 +1,28 @@
1
1
  import {
2
2
  DEFAULT_SYNC_CONFIG,
3
3
  createSyncService
4
- } from "./chunk-U5WIP4HS.js";
4
+ } from "./chunk-P5VDZ6PV.js";
5
5
  import {
6
6
  getAuthClient
7
- } from "./chunk-52MLYK5P.js";
8
- import {
9
- saveConfig
10
- } from "./chunk-GWIAMKKF.js";
7
+ } from "./chunk-D2XFTCRP.js";
11
8
  import {
12
9
  safePrompt
13
- } from "./chunk-7BYSXAKS.js";
10
+ } from "./chunk-WD5ZF6HE.js";
11
+ import {
12
+ saveConfig
13
+ } from "./chunk-ZBIBLOZL.js";
14
14
  import {
15
15
  AUTH_CONFIG
16
- } from "./chunk-EKY5PKQI.js";
16
+ } from "./chunk-PWLLLJHU.js";
17
+ import {
18
+ t
19
+ } from "./chunk-UET7BDX2.js";
17
20
 
18
21
  // src/commands/login.ts
19
22
  import chalk from "chalk";
20
23
  var metadata = {
21
24
  command: "/login",
22
- description: "sign in to your Autohand account",
25
+ description: t("commands.login.description"),
23
26
  implemented: true
24
27
  };
25
28
  async function openBrowser(url) {
@@ -60,7 +63,7 @@ async function login(ctx) {
60
63
  initial: false
61
64
  });
62
65
  if (!result || !result.continueLogin) {
63
- console.log(chalk.gray("Login cancelled."));
66
+ console.log(chalk.gray(t("commands.login.cancelled")));
64
67
  return null;
65
68
  }
66
69
  }
@@ -68,7 +71,7 @@ async function login(ctx) {
68
71
  console.log(chalk.gray("Initiating authentication..."));
69
72
  const initResult = await authClient.initiateDeviceAuth();
70
73
  if (!initResult.success || !initResult.deviceCode || !initResult.userCode) {
71
- console.log(chalk.red(`Failed to start login: ${initResult.error || "Unknown error"}`));
74
+ console.log(chalk.red(t("commands.login.failed", { error: initResult.error || "Unknown error" })));
72
75
  return null;
73
76
  }
74
77
  console.log();
@@ -112,8 +115,7 @@ async function login(ctx) {
112
115
  };
113
116
  await saveConfig(updatedConfig);
114
117
  console.log();
115
- console.log(chalk.green("Login successful!"));
116
- console.log(chalk.cyan(`Welcome, ${pollResult.user.name || pollResult.user.email}!`));
118
+ console.log(chalk.green(t("commands.login.success", { email: pollResult.user.name || pollResult.user.email })));
117
119
  console.log();
118
120
  await checkAndRestoreSyncData(pollResult.token, pollResult.user.id, updatedConfig);
119
121
  return null;
@@ -139,7 +141,7 @@ async function checkAndRestoreSyncData(token, userId, config) {
139
141
  enabled: true
140
142
  }
141
143
  });
142
- const { getSyncApiClient } = await import("./SyncApiClient-FAOMIZAP.js");
144
+ const { getSyncApiClient } = await import("./SyncApiClient-AYXYSOJM.js");
143
145
  const apiClient = getSyncApiClient();
144
146
  const remoteManifest = await apiClient.getRemoteManifest(token);
145
147
  if (!remoteManifest || remoteManifest.files.length === 0) {
@@ -162,17 +164,66 @@ async function checkAndRestoreSyncData(token, userId, config) {
162
164
  return;
163
165
  }
164
166
  console.log(chalk.gray("Restoring settings from cloud..."));
165
- const syncResult = await syncService.forceDownload();
166
- if (syncResult.success) {
167
+ console.log(chalk.gray("(Press ESC or Ctrl+C to cancel)"));
168
+ const syncResult = await cancellableOperation(
169
+ () => syncService.forceDownload()
170
+ );
171
+ if (!syncResult) {
172
+ console.log(chalk.yellow("\nSync restore cancelled."));
173
+ console.log(chalk.gray("You can sync later with /sync."));
174
+ } else if (syncResult.success) {
167
175
  console.log(chalk.green(`Restored ${syncResult.downloaded} files from cloud.`));
168
176
  } else {
169
177
  console.log(chalk.yellow(`Sync restore failed: ${syncResult.error}`));
170
178
  console.log(chalk.gray("You can try again later with /sync."));
171
179
  }
172
- } catch (error) {
180
+ } catch {
173
181
  console.log(chalk.gray("Could not check cloud sync data."));
174
182
  }
175
183
  }
184
+ async function cancellableOperation(fn) {
185
+ const stdin = process.stdin;
186
+ const wasRaw = stdin.isRaw;
187
+ return new Promise((resolve) => {
188
+ let settled = false;
189
+ const cleanup = () => {
190
+ stdin.removeListener("data", onData);
191
+ if (stdin.isTTY && stdin.setRawMode) {
192
+ try {
193
+ stdin.setRawMode(wasRaw ?? false);
194
+ } catch {
195
+ }
196
+ }
197
+ };
198
+ const onData = (data) => {
199
+ const s = data.toString();
200
+ if (s === "\x1B" || s === "") {
201
+ if (settled) return;
202
+ settled = true;
203
+ cleanup();
204
+ resolve(null);
205
+ }
206
+ };
207
+ if (stdin.isTTY && stdin.setRawMode) {
208
+ try {
209
+ stdin.setRawMode(true);
210
+ } catch {
211
+ }
212
+ }
213
+ stdin.on("data", onData);
214
+ fn().then((result) => {
215
+ if (settled) return;
216
+ settled = true;
217
+ cleanup();
218
+ resolve(result);
219
+ }).catch(() => {
220
+ if (settled) return;
221
+ settled = true;
222
+ cleanup();
223
+ resolve(null);
224
+ });
225
+ });
226
+ }
176
227
  function formatSize(bytes) {
177
228
  if (bytes === 0) return "0 B";
178
229
  if (bytes < 1024) return `${bytes} B`;
@@ -1,15 +1,20 @@
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 _chunkPMMSDR44cjs = require('./chunk-PMMSDR44.cjs');
3
+ var _chunkQRQ5EX7Icjs = require('./chunk-QRQ5EX7I.cjs');
4
+
5
+
6
+ var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
7
+
8
+
9
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
4
10
 
5
11
  // src/commands/resume.ts
6
12
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
7
- var _enquirer = require('enquirer'); var _enquirer2 = _interopRequireDefault(_enquirer);
8
13
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
9
14
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
10
15
  var metadata = {
11
16
  command: "/resume",
12
- description: "resume a previous session",
17
+ description: _chunkLOXOD4IScjs.t.call(void 0, "commands.resume.description"),
13
18
  implemented: true
14
19
  };
15
20
  async function getSessionTitle(sessionMeta) {
@@ -17,7 +22,7 @@ async function getSessionTitle(sessionMeta) {
17
22
  return sessionMeta.summary.slice(0, 60);
18
23
  }
19
24
  try {
20
- const conversationPath = _path2.default.join(_chunkPMMSDR44cjs.AUTOHAND_PATHS.sessions, sessionMeta.sessionId, "conversation.jsonl");
25
+ const conversationPath = _path2.default.join(_chunkGIZL57FEcjs.AUTOHAND_PATHS.sessions, sessionMeta.sessionId, "conversation.jsonl");
21
26
  if (await _fsextra2.default.pathExists(conversationPath)) {
22
27
  const content = await _fsextra2.default.readFile(conversationPath, "utf-8");
23
28
  const lines = content.trim().split("\n").filter((line) => line);
@@ -66,11 +71,14 @@ async function resume(ctx) {
66
71
  try {
67
72
  const allSessions = await ctx.sessionManager.listSessions();
68
73
  if (allSessions.length === 0) {
69
- console.log(_chalk2.default.gray("\nNo sessions found."));
74
+ console.log(_chalk2.default.gray(`
75
+ ${_chunkLOXOD4IScjs.t.call(void 0, "commands.sessions.noSessions")}`));
70
76
  console.log(_chalk2.default.gray("Start a new conversation to create a session.\n"));
71
77
  return null;
72
78
  }
73
- console.log(_chalk2.default.cyan("\nSelect a session to resume:\n"));
79
+ console.log(_chalk2.default.cyan(`
80
+ ${_chunkLOXOD4IScjs.t.call(void 0, "commands.sessions.selectPrompt")}
81
+ `));
74
82
  const choices = [];
75
83
  const recentSessions = allSessions.slice(0, 20);
76
84
  for (const session of recentSessions) {
@@ -84,25 +92,26 @@ async function resume(ctx) {
84
92
  hint: "Use /sessions to see all"
85
93
  });
86
94
  }
87
- const { selected } = await _enquirer2.default.prompt([
88
- {
89
- type: "select",
90
- name: "selected",
91
- message: "Choose a session",
92
- choices
93
- }
94
- ]);
95
- if (selected === "__more__") {
96
- console.log(_chalk2.default.gray("\nUse /sessions to see all sessions, then /resume <id>"));
95
+ const options = choices.map((choice) => ({
96
+ label: choice.message,
97
+ value: choice.name,
98
+ description: choice.hint
99
+ }));
100
+ const result = await _chunkQRQ5EX7Icjs.showModal.call(void 0, {
101
+ title: "Choose a session",
102
+ options
103
+ });
104
+ if (!result) {
105
+ console.log(_chalk2.default.gray("\nResume cancelled."));
97
106
  return null;
98
107
  }
99
- return resumeSession(ctx.sessionManager, selected);
100
- } catch (error) {
101
- if (error.name === "ExitPromptError" || _optionalChain([error, 'access', _ => _.message, 'optionalAccess', _2 => _2.includes, 'call', _3 => _3("canceled")])) {
102
- console.log(_chalk2.default.gray("\nResume cancelled."));
108
+ if (result.value === "__more__") {
109
+ console.log(_chalk2.default.gray("\nUse /sessions to see all sessions, then /resume <id>"));
103
110
  return null;
104
111
  }
105
- console.error(_chalk2.default.red(`Failed to list sessions: ${error.message}`));
112
+ return resumeSession(ctx.sessionManager, result.value);
113
+ } catch (error) {
114
+ console.error(_chalk2.default.red(_chunkLOXOD4IScjs.t.call(void 0, "commands.resume.failed", { error: error.message })));
106
115
  return null;
107
116
  }
108
117
  }
@@ -111,9 +120,9 @@ async function resumeSession(sessionManager, sessionId) {
111
120
  const session = await sessionManager.loadSession(sessionId);
112
121
  const messages = session.getMessages();
113
122
  const firstUserMessage = messages.find((m) => m.role === "user");
114
- const title = session.metadata.summary || _optionalChain([firstUserMessage, 'optionalAccess', _4 => _4.content, 'access', _5 => _5.slice, 'call', _6 => _6(0, 50)]) || "Untitled session";
123
+ const title = session.metadata.summary || _optionalChain([firstUserMessage, 'optionalAccess', _ => _.content, 'access', _2 => _2.slice, 'call', _3 => _3(0, 50)]) || "Untitled session";
115
124
  console.log(_chalk2.default.cyan(`
116
- Resuming: ${title}`));
125
+ ${_chunkLOXOD4IScjs.t.call(void 0, "commands.resume.resuming", { id: title })}`));
117
126
  console.log(_chalk2.default.gray(` Project: ${session.metadata.projectPath}`));
118
127
  console.log(_chalk2.default.gray(` Started: ${new Date(session.metadata.createdAt).toLocaleString()}`));
119
128
  console.log(_chalk2.default.gray(` Messages: ${messages.length}`));
@@ -133,9 +142,9 @@ Resuming: ${title}`));
133
142
  console.log();
134
143
  }
135
144
  console.log(_chalk2.default.green("Session resumed. Continue typing to chat.\n"));
136
- return "SESSION_RESUMED";
145
+ return null;
137
146
  } catch (error) {
138
- console.error(_chalk2.default.red(`Failed to resume session: ${error.message}`));
147
+ console.error(_chalk2.default.red(_chunkLOXOD4IScjs.t.call(void 0, "commands.resume.failed", { error: error.message })));
139
148
  return null;
140
149
  }
141
150
  }
@@ -1,6 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunk54GVL2SEcjs = require('./chunk-54GVL2SE.cjs');
3
+ var _chunkEAOEAQGFcjs = require('./chunk-EAOEAQGF.cjs');
4
+
5
+
6
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
4
7
 
5
8
  // src/commands/status.ts
6
9
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -25,7 +28,7 @@ async function gatherStatusData(ctx) {
25
28
  apiConnected = false;
26
29
  }
27
30
  return {
28
- version: _chunk54GVL2SEcjs.package_default.version,
31
+ version: _chunkEAOEAQGFcjs.package_default.version,
29
32
  sessionId: _nullishCoalesce(_optionalChain([currentSession, 'optionalAccess', _ => _.metadata, 'access', _2 => _2.sessionId]), () => ( null)),
30
33
  cwd: ctx.workspaceRoot,
31
34
  provider: _nullishCoalesce(ctx.provider, () => ( "openrouter")),
@@ -34,7 +37,8 @@ async function gatherStatusData(ctx) {
34
37
  sessionsCount: allSessions.length,
35
38
  contextPercentLeft: _nullishCoalesce(_optionalChain([ctx, 'access', _3 => _3.getContextPercentLeft, 'optionalCall', _4 => _4()]), () => ( 100)),
36
39
  totalTokensUsed: _nullishCoalesce(_optionalChain([ctx, 'access', _5 => _5.getTotalTokensUsed, 'optionalCall', _6 => _6()]), () => ( 0)),
37
- config: ctx.config
40
+ config: ctx.config,
41
+ contextCompactionEnabled: _nullishCoalesce(_optionalChain([ctx, 'access', _7 => _7.isContextCompactionEnabled, 'optionalCall', _8 => _8()]), () => ( true))
38
42
  };
39
43
  }
40
44
  function renderStatusUI(data) {
@@ -154,31 +158,35 @@ function renderTabContent(tab, data) {
154
158
  }
155
159
  }
156
160
  function renderStatusTab(data) {
157
- console.log(_chalk2.default.bold("Version:"), data.version);
158
- console.log(_chalk2.default.bold("Session ID:"), _nullishCoalesce(data.sessionId, () => ( _chalk2.default.gray("none"))));
159
- console.log(_chalk2.default.bold("cwd:"), data.cwd);
160
- console.log(_chalk2.default.bold("Provider:"), data.provider);
161
- console.log(_chalk2.default.bold("Model:"), data.model);
161
+ console.log(_chalk2.default.bold(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.status.version")}:`), data.version);
162
+ console.log(_chalk2.default.bold(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.status.sessionId")}:`), _nullishCoalesce(data.sessionId, () => ( _chalk2.default.gray("none"))));
163
+ console.log(_chalk2.default.bold(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.status.cwd")}:`), data.cwd);
164
+ console.log(_chalk2.default.bold(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.status.provider")}:`), data.provider);
165
+ console.log(_chalk2.default.bold(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.status.model")}:`), data.model);
166
+ console.log(
167
+ _chalk2.default.bold("Context Compaction:"),
168
+ data.contextCompactionEnabled ? _chalk2.default.green("ON") : _chalk2.default.yellow("OFF")
169
+ );
162
170
  console.log();
163
171
  console.log(
164
- _chalk2.default.bold("API Status:"),
165
- data.apiConnected ? _chalk2.default.green("Connected") : _chalk2.default.red("Disconnected")
172
+ _chalk2.default.bold(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.status.apiStatus")}:`),
173
+ data.apiConnected ? _chalk2.default.green(_chunkLOXOD4IScjs.t.call(void 0, "commands.status.connected")) : _chalk2.default.red(_chunkLOXOD4IScjs.t.call(void 0, "commands.status.disconnected"))
166
174
  );
167
- console.log(_chalk2.default.bold("Sessions:"), `${data.sessionsCount} total`);
175
+ console.log(_chalk2.default.bold(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.status.sessions")}:`), _chunkLOXOD4IScjs.t.call(void 0, "commands.status.total", { count: String(data.sessionsCount) }));
168
176
  console.log(_chalk2.default.bold("Memory:"), "user (~/.autohand/memory/), project (.autohand/memory/)");
169
177
  }
170
178
  function renderConfigTab(data) {
171
179
  const config = data.config;
172
180
  console.log(_chalk2.default.bold("Autohand preferences\n"));
173
181
  const settings = [
174
- ["Theme", _nullishCoalesce(_optionalChain([config, 'optionalAccess', _7 => _7.ui, 'optionalAccess', _8 => _8.theme]), () => ( "dark"))],
175
- ["Auto-confirm", _optionalChain([config, 'optionalAccess', _9 => _9.ui, 'optionalAccess', _10 => _10.autoConfirm]) ? "true" : "false"],
176
- ["Show thinking", _optionalChain([config, 'optionalAccess', _11 => _11.ui, 'optionalAccess', _12 => _12.showThinking]) !== false ? "true" : "false"],
177
- ["Show completion notification", _optionalChain([config, 'optionalAccess', _13 => _13.ui, 'optionalAccess', _14 => _14.showCompletionNotification]) !== false ? "true" : "false"],
178
- ["Permission mode", _nullishCoalesce(_optionalChain([config, 'optionalAccess', _15 => _15.permissions, 'optionalAccess', _16 => _16.mode]), () => ( "interactive"))],
179
- ["Telemetry", _optionalChain([config, 'optionalAccess', _17 => _17.telemetry, 'optionalAccess', _18 => _18.enabled]) === true ? "true" : "false"],
180
- ["Network retries", String(_nullishCoalesce(_optionalChain([config, 'optionalAccess', _19 => _19.network, 'optionalAccess', _20 => _20.maxRetries]), () => ( 3)))],
181
- ["Network timeout", `${_nullishCoalesce(_optionalChain([config, 'optionalAccess', _21 => _21.network, 'optionalAccess', _22 => _22.timeout]), () => ( 3e4))}ms`]
182
+ ["Theme", _nullishCoalesce(_optionalChain([config, 'optionalAccess', _9 => _9.ui, 'optionalAccess', _10 => _10.theme]), () => ( "dark"))],
183
+ ["Auto-confirm", _optionalChain([config, 'optionalAccess', _11 => _11.ui, 'optionalAccess', _12 => _12.autoConfirm]) ? "true" : "false"],
184
+ ["Show thinking", _optionalChain([config, 'optionalAccess', _13 => _13.ui, 'optionalAccess', _14 => _14.showThinking]) !== false ? "true" : "false"],
185
+ ["Show completion notification", _optionalChain([config, 'optionalAccess', _15 => _15.ui, 'optionalAccess', _16 => _16.showCompletionNotification]) !== false ? "true" : "false"],
186
+ ["Permission mode", _nullishCoalesce(_optionalChain([config, 'optionalAccess', _17 => _17.permissions, 'optionalAccess', _18 => _18.mode]), () => ( "interactive"))],
187
+ ["Telemetry", _optionalChain([config, 'optionalAccess', _19 => _19.telemetry, 'optionalAccess', _20 => _20.enabled]) === true ? "true" : "false"],
188
+ ["Network retries", String(_nullishCoalesce(_optionalChain([config, 'optionalAccess', _21 => _21.network, 'optionalAccess', _22 => _22.maxRetries]), () => ( 3)))],
189
+ ["Network timeout", `${_nullishCoalesce(_optionalChain([config, 'optionalAccess', _23 => _23.network, 'optionalAccess', _24 => _24.timeout]), () => ( 3e4))}ms`]
182
190
  ];
183
191
  for (const [name, value] of settings) {
184
192
  console.log(` ${_chalk2.default.cyan(name.padEnd(30))} ${value}`);
@@ -1,18 +1,21 @@
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 _chunkJHFH3N4Ucjs = require('./chunk-JHFH3N4U.cjs');
3
+ var _chunkTSY7JHIVcjs = require('./chunk-TSY7JHIV.cjs');
4
4
 
5
5
 
6
- var _chunkWQSWU2QAcjs = require('./chunk-WQSWU2QA.cjs');
6
+ var _chunkMNCWB5F7cjs = require('./chunk-MNCWB5F7.cjs');
7
7
 
8
8
 
9
- var _chunk3HPUOQJNcjs = require('./chunk-3HPUOQJN.cjs');
9
+ var _chunkRJP3SZ7Qcjs = require('./chunk-RJP3SZ7Q.cjs');
10
+
11
+
12
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
10
13
 
11
14
  // src/commands/logout.ts
12
15
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
13
16
  var metadata = {
14
17
  command: "/logout",
15
- description: "sign out of your Autohand account",
18
+ description: _chunkLOXOD4IScjs.t.call(void 0, "commands.logout.description"),
16
19
  implemented: true
17
20
  };
18
21
  async function logout(ctx) {
@@ -23,17 +26,17 @@ async function logout(ctx) {
23
26
  return null;
24
27
  }
25
28
  const userName = _optionalChain([config, 'access', _3 => _3.auth, 'access', _4 => _4.user, 'optionalAccess', _5 => _5.name]) || _optionalChain([config, 'access', _6 => _6.auth, 'access', _7 => _7.user, 'optionalAccess', _8 => _8.email]) || "user";
26
- const result = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
29
+ const result = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
27
30
  type: "confirm",
28
31
  name: "confirm",
29
32
  message: `Log out from ${_chalk2.default.cyan(userName)}?`,
30
33
  initial: true
31
34
  });
32
35
  if (!result || !result.confirm) {
33
- console.log(_chalk2.default.gray("Logout cancelled."));
36
+ console.log(_chalk2.default.gray(_chunkLOXOD4IScjs.t.call(void 0, "commands.logout.cancelled")));
34
37
  return null;
35
38
  }
36
- const authClient = _chunkJHFH3N4Ucjs.getAuthClient.call(void 0, );
39
+ const authClient = _chunkTSY7JHIVcjs.getAuthClient.call(void 0, );
37
40
  try {
38
41
  await authClient.logout(config.auth.token);
39
42
  } catch (e) {
@@ -42,9 +45,9 @@ async function logout(ctx) {
42
45
  ...config,
43
46
  auth: void 0
44
47
  };
45
- await _chunkWQSWU2QAcjs.saveConfig.call(void 0, updatedConfig);
48
+ await _chunkRJP3SZ7Qcjs.saveConfig.call(void 0, updatedConfig);
46
49
  console.log();
47
- console.log(_chalk2.default.green("Successfully logged out."));
50
+ console.log(_chalk2.default.green(_chunkLOXOD4IScjs.t.call(void 0, "commands.logout.success")));
48
51
  console.log(_chalk2.default.gray("Your local session has been cleared."));
49
52
  console.log();
50
53
  return null;
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  AUTOHAND_PATHS
3
- } from "./chunk-EKY5PKQI.js";
3
+ } from "./chunk-PWLLLJHU.js";
4
+ import {
5
+ t
6
+ } from "./chunk-UET7BDX2.js";
4
7
 
5
8
  // src/commands/agents.ts
6
9
  import chalk from "chalk";
@@ -152,7 +155,7 @@ function extractMarkdownTitle(content) {
152
155
  // src/commands/agents.ts
153
156
  var metadata = {
154
157
  command: "/agents",
155
- description: "list available sub-agents (markdown or json)",
158
+ description: t("commands.agents.description"),
156
159
  implemented: true,
157
160
  prd: "prd/sub_agents_architecture.md"
158
161
  };
@@ -161,10 +164,12 @@ async function handler() {
161
164
  await registry.loadAgents();
162
165
  const agents = registry.getAllAgents();
163
166
  if (agents.length === 0) {
164
- return `No agents found in ${chalk.cyan(registry.getAgentsDirectory())}.
165
- Create a markdown file (e.g., helper.md) there to define a new sub-agent.`;
167
+ return `${t("commands.agents.noAgents")}
168
+ ${chalk.gray(`Path: ${chalk.cyan(registry.getAgentsDirectory())}`)}`;
166
169
  }
167
- let output = chalk.bold("Available Agents:\n\n");
170
+ let output = chalk.bold(`${t("commands.agents.title")}:
171
+
172
+ `);
168
173
  for (const agent of agents) {
169
174
  output += `${chalk.green("\u{1F916} " + agent.name)}
170
175
  `;
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var package_default = {
3
3
  name: "autohand-cli",
4
- version: "0.7.8",
4
+ version: "0.7.10",
5
5
  license: "Apache-2.0",
6
6
  description: "Autohand interactive coding agent CLI powered by LLMs.",
7
7
  repository: {
@@ -21,6 +21,7 @@ var package_default = {
21
21
  "dist"
22
22
  ],
23
23
  scripts: {
24
+ postinstall: "node scripts/fix-ansi-styles.js || true",
24
25
  go: 'bun run build && ./install-local.sh && echo "COMPLETED"',
25
26
  build: "tsup",
26
27
  dev: "bun src/index.ts",
@@ -47,11 +48,11 @@ var package_default = {
47
48
  node: ">=18.17.0"
48
49
  },
49
50
  dependencies: {
51
+ "@agentclientprotocol/sdk": "0.12.0",
50
52
  chalk: "^5.6.2",
51
53
  commander: "^14.0.2",
52
54
  diff: "^8.0.2",
53
55
  dotenv: "^17.2.3",
54
- enquirer: "^2.4.1",
55
56
  "fs-extra": "^11.3.2",
56
57
  i18next: "^25.7.4",
57
58
  ignore: "^5.3.1",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AUTH_CONFIG
3
- } from "./chunk-EKY5PKQI.js";
3
+ } from "./chunk-PWLLLJHU.js";
4
4
 
5
5
  // src/auth/AuthClient.ts
6
6
  var DEFAULT_TIMEOUT = 1e4;
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-QHPFA6OE.js";
4
4
  import {
5
5
  PROJECT_DIR_NAME
6
- } from "./chunk-EKY5PKQI.js";
6
+ } from "./chunk-PWLLLJHU.js";
7
7
 
8
8
  // src/skills/SkillsRegistry.ts
9
9
  import fs2 from "fs-extra";