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
@@ -0,0 +1,85 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkRJP3SZ7Qcjs = require('./chunk-RJP3SZ7Q.cjs');
4
+
5
+
6
+ var _chunkQRQ5EX7Icjs = require('./chunk-QRQ5EX7I.cjs');
7
+
8
+
9
+
10
+
11
+
12
+
13
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
14
+
15
+ // src/commands/language.ts
16
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
17
+ async function language(ctx) {
18
+ const currentLocale = _chunkLOXOD4IScjs.getCurrentLocale.call(void 0, );
19
+ const currentDisplayName = _chunkLOXOD4IScjs.LANGUAGE_DISPLAY_NAMES[currentLocale];
20
+ console.log(_chalk2.default.cyan(`
21
+ \u{1F310} ${_chunkLOXOD4IScjs.t.call(void 0, "commands.language.title")}
22
+ `));
23
+ console.log(_chalk2.default.gray(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.language.currentLanguage", { language: currentDisplayName })}`));
24
+ console.log();
25
+ const options = _chunkLOXOD4IScjs.SUPPORTED_LOCALES.map((locale) => ({
26
+ label: locale === currentLocale ? `${_chunkLOXOD4IScjs.LANGUAGE_DISPLAY_NAMES[locale]} (${_chunkLOXOD4IScjs.t.call(void 0, "common.current")})` : _chunkLOXOD4IScjs.LANGUAGE_DISPLAY_NAMES[locale],
27
+ value: locale
28
+ }));
29
+ const result = await _chunkQRQ5EX7Icjs.showModal.call(void 0, {
30
+ title: _chunkLOXOD4IScjs.t.call(void 0, "commands.language.selectPrompt"),
31
+ options,
32
+ initialIndex: _chunkLOXOD4IScjs.SUPPORTED_LOCALES.indexOf(currentLocale)
33
+ });
34
+ if (!result) {
35
+ console.log(_chalk2.default.gray("\nLanguage selection cancelled."));
36
+ return null;
37
+ }
38
+ const selected = result.value;
39
+ if (selected === currentLocale) {
40
+ console.log(_chalk2.default.gray(`
41
+ ${_chunkLOXOD4IScjs.t.call(void 0, "commands.language.noChange")}`));
42
+ return null;
43
+ }
44
+ await _chunkLOXOD4IScjs.changeLanguage.call(void 0, selected);
45
+ ctx.config.ui = { ...ctx.config.ui, locale: selected };
46
+ await _chunkRJP3SZ7Qcjs.saveConfig.call(void 0, ctx.config);
47
+ const newDisplayName = _chunkLOXOD4IScjs.LANGUAGE_DISPLAY_NAMES[selected];
48
+ console.log(_chalk2.default.green(`
49
+ \u2713 ${_chunkLOXOD4IScjs.t.call(void 0, "commands.language.changed", { language: newDisplayName })}`));
50
+ console.log();
51
+ return null;
52
+ }
53
+ async function languageInfo() {
54
+ const currentLocale = _chunkLOXOD4IScjs.getCurrentLocale.call(void 0, );
55
+ const currentDisplayName = _chunkLOXOD4IScjs.LANGUAGE_DISPLAY_NAMES[currentLocale];
56
+ console.log(_chalk2.default.cyan(`
57
+ \u{1F310} ${_chunkLOXOD4IScjs.t.call(void 0, "commands.language.title")}
58
+ `));
59
+ console.log(_chalk2.default.gray(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.language.currentLanguage", { language: currentDisplayName })}`));
60
+ console.log(_chalk2.default.gray(`Locale code: ${_chalk2.default.white(currentLocale)}`));
61
+ console.log();
62
+ console.log(_chalk2.default.gray("Supported languages:"));
63
+ for (const locale of _chunkLOXOD4IScjs.SUPPORTED_LOCALES) {
64
+ const marker = locale === currentLocale ? _chalk2.default.green("\u25CF") : _chalk2.default.gray("\u25CB");
65
+ console.log(` ${marker} ${_chunkLOXOD4IScjs.LANGUAGE_DISPLAY_NAMES[locale]}`);
66
+ }
67
+ console.log();
68
+ return null;
69
+ }
70
+ var metadata = {
71
+ command: "/language",
72
+ description: "change display language",
73
+ implemented: true
74
+ };
75
+
76
+
77
+
78
+
79
+
80
+ exports.language = language; exports.languageInfo = languageInfo; exports.metadata = metadata;
81
+ /**
82
+ * @license
83
+ * Copyright 2025 Autohand AI LLC
84
+ * SPDX-License-Identifier: Apache-2.0
85
+ */
@@ -1,10 +1,14 @@
1
+ import {
2
+ t
3
+ } from "./chunk-UET7BDX2.js";
4
+
1
5
  // src/commands/quit.ts
2
6
  async function quit() {
3
7
  return "/quit";
4
8
  }
5
9
  var metadata = {
6
10
  command: "/quit",
7
- description: "end the current Autohand session",
11
+ description: t("commands.quit.description"),
8
12
  implemented: true
9
13
  };
10
14
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PROJECT_DIR_NAME
3
- } from "./chunk-EKY5PKQI.js";
3
+ } from "./chunk-PWLLLJHU.js";
4
4
 
5
5
  // src/permissions/localProjectPermissions.ts
6
6
  import fs from "fs-extra";
@@ -3,7 +3,7 @@
3
3
  var _chunkJHGIWNHLcjs = require('./chunk-JHGIWNHL.cjs');
4
4
 
5
5
 
6
- var _chunkPMMSDR44cjs = require('./chunk-PMMSDR44.cjs');
6
+ var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
7
7
 
8
8
  // src/skills/SkillsRegistry.ts
9
9
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
@@ -232,7 +232,7 @@ var SkillsRegistry = class {
232
232
  this.workspaceRoot = workspaceRoot;
233
233
  const claudeProjectSkillsDir = _path2.default.join(workspaceRoot, ".claude", "skills");
234
234
  await this.loadFromDirectory(claudeProjectSkillsDir, "claude-project", false);
235
- const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkPMMSDR44cjs.PROJECT_DIR_NAME, "skills");
235
+ const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkGIZL57FEcjs.PROJECT_DIR_NAME, "skills");
236
236
  await this.loadFromDirectory(autohandProjectSkillsDir, "autohand-project", true);
237
237
  }
238
238
  /**
@@ -291,7 +291,7 @@ var SkillsRegistry = class {
291
291
  async setWorkspaceWithAutoCopy(workspaceRoot) {
292
292
  this.workspaceRoot = workspaceRoot;
293
293
  const claudeProjectSkillsDir = _path2.default.join(workspaceRoot, ".claude", "skills");
294
- const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkPMMSDR44cjs.PROJECT_DIR_NAME, "skills");
294
+ const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkGIZL57FEcjs.PROJECT_DIR_NAME, "skills");
295
295
  await this.addLocationWithAutoCopy(
296
296
  claudeProjectSkillsDir,
297
297
  "claude-project",
@@ -1,8 +1,12 @@
1
+ import {
2
+ t
3
+ } from "./chunk-UET7BDX2.js";
4
+
1
5
  // src/commands/sessions.ts
2
6
  import chalk from "chalk";
3
7
  var metadata = {
4
8
  command: "/sessions",
5
- description: "list all sessions",
9
+ description: t("commands.sessions.description"),
6
10
  implemented: true
7
11
  };
8
12
  async function sessions(ctx) {
@@ -12,7 +16,7 @@ async function sessions(ctx) {
12
16
  projectFilter ? { project: projectFilter } : void 0
13
17
  );
14
18
  if (allSessions.length === 0) {
15
- console.log(chalk.gray("No sessions found."));
19
+ console.log(chalk.gray(t("commands.sessions.noSessions")));
16
20
  return null;
17
21
  }
18
22
  console.log(chalk.cyan(`
@@ -0,0 +1,222 @@
1
+ import {
2
+ package_default
3
+ } from "./chunk-CUBYCLNL.js";
4
+ import {
5
+ safePrompt
6
+ } from "./chunk-WD5ZF6HE.js";
7
+ import {
8
+ AUTOHAND_FILES,
9
+ AUTOHAND_PATHS
10
+ } from "./chunk-PWLLLJHU.js";
11
+ import {
12
+ t
13
+ } from "./chunk-UET7BDX2.js";
14
+
15
+ // src/commands/feedback.ts
16
+ import fs from "fs-extra";
17
+ import os from "os";
18
+ import chalk from "chalk";
19
+ var metadata = {
20
+ command: "/feedback",
21
+ description: t("commands.feedback.description"),
22
+ implemented: true
23
+ };
24
+ var API_BASE_URL = "https://api.autohand.ai";
25
+ var API_TIMEOUT = 1e4;
26
+ var COOLDOWN_MAX_SUBMISSIONS = 5;
27
+ var COOLDOWN_WINDOW_MS = 60 * 60 * 1e3;
28
+ var COOLDOWN_STATE_PATH = `${AUTOHAND_PATHS.feedback}/cooldown.json`;
29
+ async function checkCooldown() {
30
+ try {
31
+ if (!await fs.pathExists(COOLDOWN_STATE_PATH)) {
32
+ return { allowed: true, remaining: COOLDOWN_MAX_SUBMISSIONS };
33
+ }
34
+ const state = await fs.readJson(COOLDOWN_STATE_PATH);
35
+ const now = Date.now();
36
+ const windowStart = now - COOLDOWN_WINDOW_MS;
37
+ const recentSubmissions = state.submissions.filter((ts) => ts > windowStart);
38
+ if (recentSubmissions.length >= COOLDOWN_MAX_SUBMISSIONS) {
39
+ const oldestRecent = Math.min(...recentSubmissions);
40
+ const waitMs = oldestRecent + COOLDOWN_WINDOW_MS - now;
41
+ const waitMinutes = Math.ceil(waitMs / 6e4);
42
+ return { allowed: false, remaining: 0, waitMinutes };
43
+ }
44
+ return { allowed: true, remaining: COOLDOWN_MAX_SUBMISSIONS - recentSubmissions.length };
45
+ } catch {
46
+ return { allowed: true, remaining: COOLDOWN_MAX_SUBMISSIONS };
47
+ }
48
+ }
49
+ async function recordSubmission() {
50
+ try {
51
+ let state = { submissions: [] };
52
+ if (await fs.pathExists(COOLDOWN_STATE_PATH)) {
53
+ state = await fs.readJson(COOLDOWN_STATE_PATH);
54
+ }
55
+ const now = Date.now();
56
+ const windowStart = now - COOLDOWN_WINDOW_MS;
57
+ state.submissions = state.submissions.filter((ts) => ts > windowStart);
58
+ state.submissions.push(now);
59
+ await fs.ensureDir(AUTOHAND_PATHS.feedback);
60
+ await fs.writeJson(COOLDOWN_STATE_PATH, state, { spaces: 2 });
61
+ } catch {
62
+ }
63
+ }
64
+ async function feedback(_ctx) {
65
+ const cooldown = await checkCooldown();
66
+ if (!cooldown.allowed) {
67
+ console.log(chalk.yellow(`Feedback limit reached (${COOLDOWN_MAX_SUBMISSIONS} per hour).`));
68
+ console.log(chalk.gray(`Please wait ${cooldown.waitMinutes} minute${cooldown.waitMinutes === 1 ? "" : "s"} before submitting again.`));
69
+ return null;
70
+ }
71
+ const ratingAnswer = await safePrompt([
72
+ {
73
+ type: "select",
74
+ name: "rating",
75
+ message: "How would you rate your experience?",
76
+ choices: [
77
+ { name: "5", message: "5 - Excellent" },
78
+ { name: "4", message: "4 - Good" },
79
+ { name: "3", message: "3 - Okay" },
80
+ { name: "2", message: "2 - Poor" },
81
+ { name: "1", message: "1 - Very Poor" },
82
+ { name: "skip", message: "s - Skip rating" }
83
+ ]
84
+ }
85
+ ]);
86
+ if (!ratingAnswer) {
87
+ console.log(chalk.gray("Feedback discarded."));
88
+ return null;
89
+ }
90
+ const textAnswer = await safePrompt([
91
+ {
92
+ type: "input",
93
+ name: "feedback",
94
+ message: "What worked? What broke? (optional)"
95
+ }
96
+ ]);
97
+ if (!textAnswer) {
98
+ console.log(chalk.gray("Feedback discarded."));
99
+ return null;
100
+ }
101
+ const npsScore = ratingAnswer.rating === "skip" ? 0 : parseInt(ratingAnswer.rating, 10);
102
+ const freeformFeedback = textAnswer.feedback?.trim() || void 0;
103
+ const now = (/* @__PURE__ */ new Date()).toISOString();
104
+ const runtimeError = getLastRuntimeError();
105
+ const deviceId = await getDeviceId();
106
+ const payload = {
107
+ npsScore,
108
+ triggerType: "manual",
109
+ timestamp: now,
110
+ deviceId,
111
+ cliVersion: package_default.version,
112
+ platform: process.platform,
113
+ osVersion: os.release(),
114
+ nodeVersion: process.version,
115
+ freeformFeedback,
116
+ env: {
117
+ platform: `${process.platform}-${process.arch}`,
118
+ node: process.version,
119
+ bun: process.versions?.bun,
120
+ cwd: process.cwd(),
121
+ shell: process.env.SHELL
122
+ },
123
+ runtimeError: runtimeError ? formatError(runtimeError) : null
124
+ };
125
+ try {
126
+ const feedbackPath = AUTOHAND_FILES.feedbackLog;
127
+ await fs.ensureFile(feedbackPath);
128
+ await fs.appendFile(feedbackPath, JSON.stringify(payload) + "\n", "utf8");
129
+ } catch {
130
+ }
131
+ try {
132
+ const response = await sendFeedbackToApi(payload);
133
+ if (response.success) {
134
+ console.log(chalk.green(t("commands.feedback.success")));
135
+ } else {
136
+ if (response.error?.includes("Rate limit")) {
137
+ console.log(chalk.yellow("Feedback saved locally (rate limited, will retry later)."));
138
+ } else {
139
+ console.log(chalk.yellow(`Feedback saved locally. ${response.error ? `(${response.error})` : ""}`));
140
+ }
141
+ }
142
+ } catch (error) {
143
+ console.log(chalk.yellow(`Feedback saved locally (${error.message}).`));
144
+ }
145
+ await recordSubmission();
146
+ if (runtimeError) {
147
+ console.log(chalk.gray("Included recent runtime error in feedback."));
148
+ }
149
+ return null;
150
+ }
151
+ async function sendFeedbackToApi(payload) {
152
+ const controller = new AbortController();
153
+ const timeoutId = setTimeout(() => controller.abort(), API_TIMEOUT);
154
+ try {
155
+ const response = await fetch(`${API_BASE_URL}/v1/feedback`, {
156
+ method: "POST",
157
+ headers: {
158
+ "Content-Type": "application/json",
159
+ "X-CLI-Version": package_default.version,
160
+ "X-Device-ID": payload.deviceId
161
+ },
162
+ body: JSON.stringify(payload),
163
+ signal: controller.signal
164
+ });
165
+ clearTimeout(timeoutId);
166
+ if (!response.ok) {
167
+ const errorText = await response.text().catch(() => "Unknown error");
168
+ return { success: false, error: `API error: ${response.status} ${errorText}` };
169
+ }
170
+ const data = await response.json();
171
+ return data;
172
+ } catch (error) {
173
+ clearTimeout(timeoutId);
174
+ if (error.name === "AbortError") {
175
+ return { success: false, error: "Request timeout" };
176
+ }
177
+ return { success: false, error: error.message };
178
+ }
179
+ }
180
+ async function getDeviceId() {
181
+ const deviceIdPath = `${AUTOHAND_PATHS.feedback}/.device-id`;
182
+ try {
183
+ if (await fs.pathExists(deviceIdPath)) {
184
+ return (await fs.readFile(deviceIdPath, "utf8")).trim();
185
+ }
186
+ } catch {
187
+ }
188
+ const deviceId = `anon_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;
189
+ try {
190
+ await fs.ensureDir(AUTOHAND_PATHS.feedback);
191
+ await fs.writeFile(deviceIdPath, deviceId);
192
+ } catch {
193
+ }
194
+ return deviceId;
195
+ }
196
+ function getLastRuntimeError() {
197
+ const globalAny = globalThis;
198
+ return globalAny.__autohandLastError ?? null;
199
+ }
200
+ function formatError(err) {
201
+ if (!err) return {};
202
+ if (err instanceof Error) {
203
+ return { message: err.message, stack: err.stack };
204
+ }
205
+ if (typeof err === "object" && err !== null) {
206
+ const errObj = err;
207
+ const message = "message" in errObj ? String(errObj.message) : void 0;
208
+ const stack = "stack" in errObj ? String(errObj.stack) : void 0;
209
+ return { message, stack };
210
+ }
211
+ return { message: String(err) };
212
+ }
213
+
214
+ export {
215
+ metadata,
216
+ feedback
217
+ };
218
+ /**
219
+ * @license
220
+ * Copyright 2025 Autohand AI LLC
221
+ * SPDX-License-Identifier: Apache-2.0
222
+ */
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk7TOHYAUFcjs = require('./chunk-7TOHYAUF.cjs');
5
+ var _chunkKC5FPUOFcjs = require('./chunk-KC5FPUOF.cjs');
6
6
 
7
7
  // src/permissions/PermissionManager.ts
8
8
  var DEFAULT_SECURITY_BLACKLIST = [
@@ -121,7 +121,7 @@ var PermissionManager = class {
121
121
  async initLocalSettings() {
122
122
  if (!this.workspaceRoot || this.localSettingsLoaded) return;
123
123
  try {
124
- const localSettings = await _chunk7TOHYAUFcjs.loadLocalProjectSettings.call(void 0, this.workspaceRoot);
124
+ const localSettings = await _chunkKC5FPUOFcjs.loadLocalProjectSettings.call(void 0, this.workspaceRoot);
125
125
  if (_optionalChain([localSettings, 'optionalAccess', _ => _.permissions])) {
126
126
  this.localSettings = localSettings.permissions;
127
127
  }
@@ -133,7 +133,7 @@ var PermissionManager = class {
133
133
  * Get merged settings (global + local)
134
134
  */
135
135
  getMergedSettings() {
136
- return _chunk7TOHYAUFcjs.mergePermissions.call(void 0, this.settings, this.localSettings);
136
+ return _chunkKC5FPUOFcjs.mergePermissions.call(void 0, this.settings, this.localSettings);
137
137
  }
138
138
  /**
139
139
  * Set permission mode (can be overridden by CLI flags)
@@ -193,7 +193,7 @@ var PermissionManager = class {
193
193
  const pattern = this.contextToPattern(context);
194
194
  if (allowed && this.workspaceRoot) {
195
195
  try {
196
- await _chunk7TOHYAUFcjs.addToLocalWhitelist.call(void 0, this.workspaceRoot, pattern);
196
+ await _chunkKC5FPUOFcjs.addToLocalWhitelist.call(void 0, this.workspaceRoot, pattern);
197
197
  if (!this.localSettings) {
198
198
  this.localSettings = { whitelist: [] };
199
199
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  safePrompt
3
- } from "./chunk-7BYSXAKS.js";
3
+ } from "./chunk-WD5ZF6HE.js";
4
4
  import {
5
5
  AUTOHAND_PATHS
6
- } from "./chunk-EKY5PKQI.js";
6
+ } from "./chunk-PWLLLJHU.js";
7
7
 
8
8
  // src/commands/agents-new.ts
9
9
  import path from "path";
@@ -0,0 +1,45 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
6
+
7
+ // src/ui/i18n/I18nContext.tsx
8
+ var _react = require('react');
9
+ var _jsxruntime = require('react/jsx-runtime');
10
+ var defaultContextValue = {
11
+ t: _chunkLOXOD4IScjs.t,
12
+ locale: "en"
13
+ };
14
+ var I18nContext = _react.createContext.call(void 0, defaultContextValue);
15
+ var I18nProvider = ({ children }) => {
16
+ const [locale, setLocale] = _react.useState.call(void 0, _chunkLOXOD4IScjs.getCurrentLocale.call(void 0, ));
17
+ _react.useEffect.call(void 0, () => {
18
+ const unsubscribe = _chunkLOXOD4IScjs.onLanguageChange.call(void 0, (newLocale) => {
19
+ setLocale(newLocale);
20
+ });
21
+ return unsubscribe;
22
+ }, []);
23
+ const value = _react.useMemo.call(void 0,
24
+ () => ({
25
+ t: _chunkLOXOD4IScjs.t,
26
+ locale
27
+ }),
28
+ [locale]
29
+ );
30
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, I18nContext.Provider, { value, children });
31
+ };
32
+ function useTranslation() {
33
+ const context = _react.useContext.call(void 0, I18nContext);
34
+ return context;
35
+ }
36
+
37
+
38
+
39
+
40
+ exports.I18nProvider = I18nProvider; exports.useTranslation = useTranslation;
41
+ /**
42
+ * @license
43
+ * Copyright 2025 Autohand AI LLC
44
+ * SPDX-License-Identifier: Apache-2.0
45
+ */
@@ -0,0 +1,209 @@
1
+ import {
2
+ metadata as metadata31
3
+ } from "./chunk-PYLR4J2D.js";
4
+ import {
5
+ metadata as metadata32
6
+ } from "./chunk-YVY27BJT.js";
7
+ import {
8
+ metadata as metadata33
9
+ } from "./chunk-HLFZPN65.js";
10
+ import {
11
+ metadata as metadata34
12
+ } from "./chunk-ATR3RORT.js";
13
+ import {
14
+ metadata as metadata35
15
+ } from "./chunk-73XIKTZL.js";
16
+ import {
17
+ installMetadata as installMetadata2,
18
+ metadata as metadata36
19
+ } from "./chunk-YKSSNFDZ.js";
20
+ import {
21
+ installMetadata,
22
+ metadata as metadata25,
23
+ useMetadata
24
+ } from "./chunk-7QNW24ZT.js";
25
+ import {
26
+ metadata as metadata26
27
+ } from "./chunk-B72CC4O6.js";
28
+ import {
29
+ metadata as metadata27
30
+ } from "./chunk-5Q3W4DEU.js";
31
+ import {
32
+ metadata as metadata28
33
+ } from "./chunk-6P3K4YUW.js";
34
+ import {
35
+ metadata as metadata29
36
+ } from "./chunk-F3EIOVSQ.js";
37
+ import {
38
+ metadata as metadata30
39
+ } from "./chunk-UM4QEO36.js";
40
+ import {
41
+ metadata as metadata20
42
+ } from "./chunk-PM62ZYXA.js";
43
+ import {
44
+ metadata as metadata21
45
+ } from "./chunk-BODVOW7B.js";
46
+ import {
47
+ metadata as metadata22
48
+ } from "./chunk-IPI3JXKP.js";
49
+ import {
50
+ metadata as metadata23
51
+ } from "./chunk-QU64XI5X.js";
52
+ import {
53
+ metadata as metadata24
54
+ } from "./chunk-RJXNNIFW.js";
55
+ import {
56
+ metadata as metadata12
57
+ } from "./chunk-XLI7SHCH.js";
58
+ import {
59
+ metadata as metadata13
60
+ } from "./chunk-GLAE5K5W.js";
61
+ import {
62
+ metadata as metadata14
63
+ } from "./chunk-HQQ4NKER.js";
64
+ import {
65
+ metadata as metadata15
66
+ } from "./chunk-BBIKQW66.js";
67
+ import {
68
+ metadata as metadata16
69
+ } from "./chunk-XDVG3NM4.js";
70
+ import {
71
+ metadata as metadata17
72
+ } from "./chunk-2NUX2RAI.js";
73
+ import {
74
+ metadata as metadata18
75
+ } from "./chunk-QC6IUDDJ.js";
76
+ import {
77
+ metadata as metadata19
78
+ } from "./chunk-4ULBAYME.js";
79
+ import {
80
+ metadata as metadata5
81
+ } from "./chunk-YMDLUTF2.js";
82
+ import {
83
+ metadata as metadata6
84
+ } from "./chunk-WJ276BIP.js";
85
+ import {
86
+ metadata as metadata7
87
+ } from "./chunk-E7YL3AHT.js";
88
+ import {
89
+ metadata as metadata8
90
+ } from "./chunk-WRJLBHWB.js";
91
+ import {
92
+ metadata as metadata9
93
+ } from "./chunk-SVLBJMYO.js";
94
+ import {
95
+ metadata as metadata10
96
+ } from "./chunk-C5SVIQG3.js";
97
+ import {
98
+ metadata as metadata11
99
+ } from "./chunk-WYLFLZ42.js";
100
+ import {
101
+ metadata
102
+ } from "./chunk-NCC6ETZS.js";
103
+ import {
104
+ metadata as metadata2
105
+ } from "./chunk-OMEH2EVE.js";
106
+ import {
107
+ metadata as metadata3
108
+ } from "./chunk-TSV4LVHK.js";
109
+ import {
110
+ metadata as metadata4
111
+ } from "./chunk-3652ROFD.js";
112
+ import {
113
+ t
114
+ } from "./chunk-UET7BDX2.js";
115
+
116
+ // src/commands/help.ts
117
+ import chalk from "chalk";
118
+ import terminalLink from "terminal-link";
119
+
120
+ // src/core/slashCommands.ts
121
+ var SLASH_COMMANDS = [
122
+ metadata6,
123
+ metadata2,
124
+ metadata3,
125
+ metadata4,
126
+ metadata5,
127
+ metadata37,
128
+ aliasMetadata,
129
+ metadata7,
130
+ metadata8,
131
+ metadata9,
132
+ metadata10,
133
+ metadata12,
134
+ metadata11,
135
+ metadata13,
136
+ metadata14,
137
+ metadata15,
138
+ metadata16,
139
+ metadata17,
140
+ metadata18,
141
+ metadata19,
142
+ metadata20,
143
+ metadata21,
144
+ metadata22,
145
+ metadata23,
146
+ metadata24,
147
+ metadata25,
148
+ useMetadata,
149
+ installMetadata,
150
+ metadata26,
151
+ metadata27,
152
+ metadata28,
153
+ metadata29,
154
+ metadata30,
155
+ metadata31,
156
+ metadata32,
157
+ metadata,
158
+ metadata33,
159
+ metadata34,
160
+ metadata35,
161
+ metadata36,
162
+ installMetadata2
163
+ ].filter((cmd) => cmd != null && typeof cmd.command === "string");
164
+
165
+ // src/commands/help.ts
166
+ async function help() {
167
+ console.log(chalk.cyan(`
168
+ ${t("commands.help.title")}
169
+ `));
170
+ const commands = SLASH_COMMANDS.filter((cmd) => cmd.implemented && cmd.command !== "/?").sort((a, b) => a.command.localeCompare(b.command));
171
+ const maxLen = Math.max(...commands.map((c) => c.command.length)) + 2;
172
+ for (const { command, description } of commands) {
173
+ console.log(` ${chalk.yellow(command.padEnd(maxLen))} ${chalk.gray(description)}`);
174
+ }
175
+ console.log(chalk.cyan(`
176
+ ${t("commands.help.tips.title")}
177
+ `));
178
+ console.log(chalk.gray(` \u2022 ${t("commands.help.tips.mention")}`));
179
+ console.log(chalk.gray(` \u2022 ${t("commands.help.tips.arrows")}`));
180
+ console.log(chalk.gray(` \u2022 ${t("commands.help.tips.tab")}`));
181
+ console.log(chalk.gray(` \u2022 ${t("commands.help.tips.escape")}
182
+ `));
183
+ const docLink = terminalLink("docs.autohand.ai", "https://docs.autohand.ai");
184
+ console.log(chalk.gray(` ${t("commands.help.docsLink", { link: docLink })}
185
+ `));
186
+ return null;
187
+ }
188
+ var metadata37 = {
189
+ command: "/help",
190
+ description: "describe available slash commands and tips",
191
+ implemented: true
192
+ };
193
+ var aliasMetadata = {
194
+ command: "/?",
195
+ description: "alias for /help",
196
+ implemented: true
197
+ };
198
+
199
+ export {
200
+ help,
201
+ metadata37 as metadata,
202
+ aliasMetadata,
203
+ SLASH_COMMANDS
204
+ };
205
+ /**
206
+ * @license
207
+ * Copyright 2025 Autohand AI LLC
208
+ * SPDX-License-Identifier: Apache-2.0
209
+ */