autohand-cli 0.7.9 → 0.7.11

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 (254) 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-YWDFZBKP.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-WYP5JPCQ.js → PermissionManager-U5OMGR3L.js} +3 -3
  10. package/dist/SessionManager-BJ2G6VV4.cjs +9 -0
  11. package/dist/{SessionManager-SFBDIBGA.js → SessionManager-ENPGYK5J.js} +2 -2
  12. package/dist/SkillsRegistry-6ZFOCT25.cjs +8 -0
  13. package/dist/{SkillsRegistry-E437FFJV.js → SkillsRegistry-C2SHOZ5D.js} +2 -2
  14. package/dist/about-225R5LMN.cjs +11 -0
  15. package/dist/about-BCPUOQVH.js +11 -0
  16. package/dist/add-dir-3BMVJ5H3.cjs +9 -0
  17. package/dist/{add-dir-PNU7AGKO.js → add-dir-RP2BL3JW.js} +2 -1
  18. package/dist/agents-JQ2PHCQB.js +10 -0
  19. package/dist/agents-RGSZ2BM3.cjs +10 -0
  20. package/dist/agents-new-LSJN2L2T.cjs +13 -0
  21. package/dist/agents-new-MZUEVKSK.js +13 -0
  22. package/dist/automode-DP3BMYJB.cjs +9 -0
  23. package/dist/{automode-QCRJSBRT.js → automode-XOF3U3OB.js} +2 -1
  24. package/dist/{chunk-A5KU3JZW.cjs → chunk-34OGUMRO.cjs} +9 -5
  25. package/dist/{chunk-NTFNUTY2.js → chunk-3652ROFD.js} +2 -2
  26. package/dist/{chunk-KNLBEUAV.cjs → chunk-3DQSBW4B.cjs} +10 -6
  27. package/dist/{chunk-32R47CAQ.cjs → chunk-3S4DEIJP.cjs} +2 -2
  28. package/dist/chunk-46WX5IO2.cjs +499 -0
  29. package/dist/{chunk-IYZBLUEJ.js → chunk-4ULBAYME.js} +8 -6
  30. package/dist/{chunk-5UC3VAJ2.cjs → chunk-4XHHW7QX.cjs} +9 -8
  31. package/dist/{chunk-JRV4SOJU.cjs → chunk-5BQ57AZC.cjs} +9 -9
  32. package/dist/{chunk-7WKEDH3E.cjs → chunk-5FZM7KLB.cjs} +13 -10
  33. package/dist/{chunk-FN5S5OE7.cjs → chunk-5NZA4UB4.cjs} +3 -3
  34. package/dist/{chunk-PFS5ZOCO.js → chunk-5Q3W4DEU.js} +18 -10
  35. package/dist/{chunk-VMMGT42E.cjs → chunk-65GTO4QM.cjs} +7 -3
  36. package/dist/{chunk-CXZEPTRI.js → chunk-6P3K4YUW.js} +6 -2
  37. package/dist/chunk-73XIKTZL.js +124 -0
  38. package/dist/{chunk-P6EGMTK4.js → chunk-7QNW24ZT.js} +8 -4
  39. package/dist/{chunk-XT4OSHSB.cjs → chunk-AEYOIPHD.cjs} +6 -2
  40. package/dist/{chunk-KXNAGJE6.cjs → chunk-ANUQFV43.cjs} +6 -6
  41. package/dist/chunk-ATR3RORT.js +499 -0
  42. package/dist/{chunk-XOSFZHSS.js → chunk-B72CC4O6.js} +2 -2
  43. package/dist/{chunk-TAZJSKFD.js → chunk-BBIKQW66.js} +9 -5
  44. package/dist/{chunk-FFA4LDAO.cjs → chunk-BDIZGBDA.cjs} +8 -3
  45. package/dist/{chunk-YDJA5ETO.js → chunk-BG4OQUKP.js} +1 -1
  46. package/dist/chunk-BKGPWAEE.js +94 -0
  47. package/dist/{chunk-3DVEGFBZ.js → chunk-BODVOW7B.js} +64 -13
  48. package/dist/{chunk-7GJR65DQ.js → chunk-BXV5O6VU.js} +9 -8
  49. package/dist/{chunk-HUA44A35.cjs → chunk-BZ73ZQTE.cjs} +17 -11
  50. package/dist/{chunk-T7HQBZZB.cjs → chunk-C2E3GJEE.cjs} +12 -9
  51. package/dist/{chunk-UP6YRP44.js → chunk-C5SVIQG3.js} +10 -5
  52. package/dist/{chunk-4YQ2OJAL.js → chunk-D2XFTCRP.js} +1 -1
  53. package/dist/{chunk-R5PZPF55.js → chunk-DEAEO7RI.js} +1 -1
  54. package/dist/chunk-DMPVI3YK.cjs +400 -0
  55. package/dist/{chunk-DRXFJR7F.cjs → chunk-DMXN5LJB.cjs} +17 -16
  56. package/dist/{chunk-PVSYZXS7.js → chunk-DTXY7JDL.js} +11 -10
  57. package/dist/{chunk-C26EN22G.cjs → chunk-DUDDZRCS.cjs} +9 -5
  58. package/dist/{chunk-WT367RVU.js → chunk-E7YL3AHT.js} +15 -9
  59. package/dist/{chunk-CHVXUA3O.cjs → chunk-EV53SLSB.cjs} +4 -4
  60. package/dist/{chunk-VQDWNDP5.js → chunk-GD4AFYJ3.js} +1 -1
  61. package/dist/{chunk-AQNY2M6Q.cjs → chunk-GIZL57FE.cjs} +3 -1
  62. package/dist/{chunk-I4HVBWYF.js → chunk-GLAE5K5W.js} +7 -2
  63. package/dist/{chunk-4AMTDSQ3.cjs → chunk-HDSEJMWI.cjs} +6 -3
  64. package/dist/{chunk-ZWS3KSMK.js → chunk-HQQ4NKER.js} +5 -2
  65. package/dist/{chunk-WBDPILKI.cjs → chunk-HVOBMOZ2.cjs} +6 -2
  66. package/dist/{chunk-CMNQAF6C.js → chunk-IJFTBVSD.js} +12 -9
  67. package/dist/{chunk-RDGYHJ52.js → chunk-IPI3JXKP.js} +9 -6
  68. package/dist/chunk-JS7IPR7P.js +249 -0
  69. package/dist/{chunk-CPO5KEQS.cjs → chunk-KC5FPUOF.cjs} +2 -2
  70. package/dist/{chunk-TUO5SZRD.cjs → chunk-L42HTMMR.cjs} +2 -2
  71. package/dist/chunk-LOXOD4IS.cjs +8630 -0
  72. package/dist/{chunk-6DSJ7XST.cjs → chunk-LQ5V5YC7.cjs} +13 -10
  73. package/dist/chunk-M6N5HSY3.js +209 -0
  74. package/dist/{chunk-LJCSSR5V.cjs → chunk-MNCWB5F7.cjs} +5 -5
  75. package/dist/{chunk-BTVNRLSE.js → chunk-MYNHJHDZ.js} +1 -1
  76. package/dist/{chunk-O3EX3SAD.cjs → chunk-N4ZSG6JJ.cjs} +2 -2
  77. package/dist/{chunk-OO7EKEJH.cjs → chunk-NBD4PL2E.cjs} +17 -14
  78. package/dist/chunk-NF7RIHJK.js +45 -0
  79. package/dist/{chunk-KJAZ4YAR.cjs → chunk-NGBN2NGH.cjs} +76 -25
  80. package/dist/{chunk-MRDZHNCF.cjs → chunk-NRORJRD4.cjs} +4 -4
  81. package/dist/{chunk-OTS4YFSZ.cjs → chunk-OKABWSWA.cjs} +7 -3
  82. package/dist/{chunk-4BZ65NIH.js → chunk-OLG7LZBD.js} +1 -1
  83. package/dist/{chunk-KZ7VMQTC.js → chunk-OMEH2EVE.js} +5 -1
  84. package/dist/{chunk-LCBOOA7S.js → chunk-P5VDZ6PV.js} +1 -1
  85. package/dist/{chunk-V5MTBGM4.cjs → chunk-PA2H2263.cjs} +6 -2
  86. package/dist/chunk-PGRH5Q77.cjs +249 -0
  87. package/dist/chunk-PNSRJT46.js +380 -0
  88. package/dist/{chunk-UL5T2XIY.cjs → chunk-PSED4Z4X.cjs} +13 -11
  89. package/dist/{chunk-PGH3MHPP.js → chunk-PWLLLJHU.js} +3 -1
  90. package/dist/{chunk-DOTAX65F.js → chunk-PYLR4J2D.js} +8 -4
  91. package/dist/{chunk-3SDEZTZD.js → chunk-QC6IUDDJ.js} +1 -1
  92. package/dist/{chunk-WJICM4SK.cjs → chunk-QM7HZCQW.cjs} +11 -6
  93. package/dist/chunk-QRQ5EX7I.cjs +380 -0
  94. package/dist/{chunk-RX4KPL6H.js → chunk-QU64XI5X.js} +9 -6
  95. package/dist/{chunk-LKIKNRUP.js → chunk-R4OLUJV7.js} +8 -5
  96. package/dist/{chunk-FSTLJIR5.cjs → chunk-R7SDL3DJ.cjs} +16 -13
  97. package/dist/{chunk-LY5VN3B3.cjs → chunk-RJP3SZ7Q.cjs} +41 -253
  98. package/dist/{chunk-KS45GREN.js → chunk-RJXNNIFW.js} +7 -4
  99. package/dist/{chunk-LYMZDJX5.cjs → chunk-S5G7OEN2.cjs} +26 -18
  100. package/dist/{chunk-3DGR4GNN.cjs → chunk-SA4JOV4F.cjs} +10 -8
  101. package/dist/chunk-SAGM3TE3.cjs +94 -0
  102. package/dist/{chunk-WCN5WDOI.cjs → chunk-TSY7JHIV.cjs} +2 -2
  103. package/dist/chunk-U23U52ZN.cjs +124 -0
  104. package/dist/chunk-UET7BDX2.js +8630 -0
  105. package/dist/{chunk-J7VV7JAB.js → chunk-UM4QEO36.js} +6 -4
  106. package/dist/{chunk-NCLCL7JK.js → chunk-WD5ZF6HE.js} +1 -1
  107. package/dist/{chunk-HF65HHDU.cjs → chunk-WH5RW7DV.cjs} +24 -22
  108. package/dist/{chunk-GSOEIEOU.js → chunk-WJ276BIP.js} +5 -1
  109. package/dist/{chunk-OXJCLU3X.js → chunk-WLTVF77A.js} +1 -1
  110. package/dist/{chunk-WGO4ACS7.cjs → chunk-WOGJXDBU.cjs} +3 -3
  111. package/dist/{chunk-QJ53OSGF.js → chunk-WRJLBHWB.js} +6 -2
  112. package/dist/chunk-X4OLP5C5.cjs +209 -0
  113. package/dist/{chunk-HWDP4HQO.cjs → chunk-XL77XYI2.cjs} +4 -4
  114. package/dist/{chunk-QAJM6VG5.js → chunk-XLI7SHCH.js} +2 -2
  115. package/dist/chunk-Y27LG4BQ.cjs +45 -0
  116. package/dist/chunk-YKSSNFDZ.js +400 -0
  117. package/dist/{chunk-VRI7EXV6.js → chunk-YMDLUTF2.js} +5 -1
  118. package/dist/{chunk-J2RUI7GJ.js → chunk-YVY27BJT.js} +5 -3
  119. package/dist/{chunk-K6CZ2AGI.js → chunk-ZBIBLOZL.js} +35 -247
  120. package/dist/completion-HVSWU5GR.cjs +13 -0
  121. package/dist/completion-WJ2MVNDH.js +13 -0
  122. package/dist/constants-RBQTR32A.cjs +20 -0
  123. package/dist/{constants-OFIAR4E5.js → constants-V6J54N3X.js} +1 -1
  124. package/dist/export-NN7F5ANA.js +11 -0
  125. package/dist/export-UPS3AK2P.cjs +11 -0
  126. package/dist/feedback-KPNRMSP4.js +14 -0
  127. package/dist/feedback-OTXZVKE7.cjs +14 -0
  128. package/dist/help-M7NFPCM4.js +58 -0
  129. package/dist/help-UBHIUDQR.cjs +58 -0
  130. package/dist/history-2KUM6GN4.cjs +13 -0
  131. package/dist/history-RZFT34Q7.js +13 -0
  132. package/dist/hooks-7QSUBHBM.cjs +12 -0
  133. package/dist/hooks-S4MD4QSR.js +12 -0
  134. package/dist/i18n-6NKENUIV.js +32 -0
  135. package/dist/i18n-MXQXQOVE.cjs +32 -0
  136. package/dist/ide-5STDV43A.cjs +11 -0
  137. package/dist/ide-W2NYXOWQ.js +11 -0
  138. package/dist/index.cjs +15320 -12906
  139. package/dist/index.js +15465 -13051
  140. package/dist/init-FG5KEJCZ.cjs +9 -0
  141. package/dist/init-TV4MJDYK.js +9 -0
  142. package/dist/language-52Q7CSAY.cjs +16 -0
  143. package/dist/language-FXFDGOBF.js +16 -0
  144. package/dist/localProjectPermissions-2EATUDZM.cjs +17 -0
  145. package/dist/{localProjectPermissions-FD5AK5FB.js → localProjectPermissions-WQYMGI42.js} +2 -2
  146. package/dist/login-AN42IOBK.js +18 -0
  147. package/dist/login-I65V4TGU.cjs +18 -0
  148. package/dist/logout-KK5UWGNG.js +16 -0
  149. package/dist/logout-VYYNWBHZ.cjs +16 -0
  150. package/dist/mcp-4SKTDECJ.js +15 -0
  151. package/dist/mcp-AGWPTMAX.cjs +15 -0
  152. package/dist/mcp-install-3NN2HAYR.cjs +473 -0
  153. package/dist/mcp-install-KTV52DQK.js +473 -0
  154. package/dist/memory-LG4K6XV6.cjs +9 -0
  155. package/dist/{memory-4GSP7NKV.js → memory-LRDK2SYC.js} +2 -1
  156. package/dist/model-P5D7ATE7.cjs +9 -0
  157. package/dist/{model-HKEFSH5E.js → model-WBFJIGUN.js} +2 -1
  158. package/dist/{new-EEZC4XXV.js → new-5A7RQEKI.js} +2 -1
  159. package/dist/new-EAATWI2G.cjs +9 -0
  160. package/dist/permissions-5URK6C44.js +12 -0
  161. package/dist/permissions-CJUDVG63.cjs +12 -0
  162. package/dist/quit-A33JHDG7.cjs +9 -0
  163. package/dist/quit-IYBLN3DB.js +9 -0
  164. package/dist/resume-OPSJTCH7.cjs +12 -0
  165. package/dist/resume-TOWEEN5D.js +12 -0
  166. package/dist/search-GOLIE5BA.js +14 -0
  167. package/dist/search-H42HGUK5.cjs +14 -0
  168. package/dist/{sessions-4KXIT76T.js → sessions-B5NENDKY.js} +2 -1
  169. package/dist/sessions-YHAVEMWY.cjs +9 -0
  170. package/dist/share-3YWFZGNM.cjs +13 -0
  171. package/dist/share-T6I2LRGS.js +13 -0
  172. package/dist/{skills-PB4HXV4R.js → skills-ICEQ2TNC.js} +2 -1
  173. package/dist/skills-LFVNZOMF.cjs +13 -0
  174. package/dist/{skills-install-UBBNXWD5.js → skills-install-6RN7FVCP.js} +9 -8
  175. package/dist/{skills-install-7SFS24HY.cjs → skills-install-LU6GA2WF.cjs} +14 -13
  176. package/dist/skills-new-5BM5PDFX.cjs +14 -0
  177. package/dist/skills-new-KWBWOX74.js +14 -0
  178. package/dist/status-BAGXGSKE.js +10 -0
  179. package/dist/status-BMD2UFHC.cjs +10 -0
  180. package/dist/sync-6M3WRKMH.cjs +39 -0
  181. package/dist/sync-73D2MP65.cjs +16 -0
  182. package/dist/{sync-LYKDHRFM.js → sync-EXYX7HXW.js} +2 -2
  183. package/dist/sync-LL6M67CN.js +16 -0
  184. package/dist/theme-IFEI2IBJ.cjs +16 -0
  185. package/dist/theme-U3SKEULY.js +16 -0
  186. package/dist/ui/questionModal.cjs +28 -0
  187. package/dist/ui/questionModal.d.cts +11 -0
  188. package/dist/ui/questionModal.d.ts +11 -0
  189. package/dist/ui/questionModal.js +28 -0
  190. package/dist/undo-4DS67OAW.cjs +9 -0
  191. package/dist/undo-YMALVAPN.js +9 -0
  192. package/package.json +9 -8
  193. package/dist/CommunitySkillsCache-N2RWBCY2.cjs +0 -7
  194. package/dist/MemoryManager-J7APSLZ7.js +0 -7
  195. package/dist/MemoryManager-RLLYVIDY.cjs +0 -7
  196. package/dist/PermissionManager-ISI5OAJK.cjs +0 -10
  197. package/dist/SessionManager-7MF76Q3Q.cjs +0 -9
  198. package/dist/SkillsRegistry-UTK2YT4M.cjs +0 -8
  199. package/dist/add-dir-OMK3Y4DM.cjs +0 -8
  200. package/dist/agents-N2ZB4O2A.cjs +0 -9
  201. package/dist/agents-ZMT7HBRT.js +0 -9
  202. package/dist/agents-new-3EWS2NR3.cjs +0 -11
  203. package/dist/agents-new-TCGUYK5I.js +0 -11
  204. package/dist/automode-BRHUHGXU.cjs +0 -8
  205. package/dist/chunk-6SM6N7DJ.js +0 -2828
  206. package/dist/chunk-BEIG7V7Q.cjs +0 -51
  207. package/dist/chunk-L5QWMGLV.cjs +0 -2828
  208. package/dist/chunk-Z3Q2AFDS.js +0 -51
  209. package/dist/completion-NCSTSKTL.cjs +0 -11
  210. package/dist/completion-NTZERPAZ.js +0 -11
  211. package/dist/constants-B2X7KDIH.cjs +0 -20
  212. package/dist/export-5AJNVX4O.cjs +0 -9
  213. package/dist/export-ZQHTLV4W.js +0 -9
  214. package/dist/feedback-F7BMGSV6.cjs +0 -12
  215. package/dist/feedback-NL7CWTRY.js +0 -12
  216. package/dist/help-PKC6QCNG.js +0 -10
  217. package/dist/help-UEELQRHP.cjs +0 -10
  218. package/dist/hooks-AX5VPCZ3.cjs +0 -10
  219. package/dist/hooks-V22HVLQT.js +0 -10
  220. package/dist/init-DML7AOII.js +0 -8
  221. package/dist/init-SLLSDDJN.cjs +0 -8
  222. package/dist/language-IEKARNQH.js +0 -13
  223. package/dist/language-ULQCKXAD.cjs +0 -13
  224. package/dist/localProjectPermissions-7FI3XF4K.cjs +0 -17
  225. package/dist/login-PD3DFJLM.js +0 -15
  226. package/dist/login-VHGT4YKT.cjs +0 -15
  227. package/dist/logout-2QXNFGDT.js +0 -13
  228. package/dist/logout-A4SMKEFO.cjs +0 -13
  229. package/dist/memory-CFNC7RJH.cjs +0 -8
  230. package/dist/model-TKVEJ5BC.cjs +0 -8
  231. package/dist/new-EB2MBQXA.cjs +0 -8
  232. package/dist/permissions-S7433NQJ.js +0 -10
  233. package/dist/permissions-YZ6WCDBL.cjs +0 -10
  234. package/dist/quit-2RYFGIJP.cjs +0 -8
  235. package/dist/quit-RSYIERO5.js +0 -8
  236. package/dist/resume-54ERVSFM.cjs +0 -10
  237. package/dist/resume-YJ5CVKAP.js +0 -10
  238. package/dist/search-4TEQMUPU.js +0 -11
  239. package/dist/search-QGLS4SV7.cjs +0 -11
  240. package/dist/sessions-7RTCPVNE.cjs +0 -8
  241. package/dist/share-2B2T3AUU.cjs +0 -11
  242. package/dist/share-SZMXZIA3.js +0 -11
  243. package/dist/skills-HVQNCTGK.cjs +0 -12
  244. package/dist/skills-new-5FSDAJWE.js +0 -12
  245. package/dist/skills-new-IOTZYE6F.cjs +0 -12
  246. package/dist/status-AGPSKXSW.js +0 -9
  247. package/dist/status-WOINF556.cjs +0 -9
  248. package/dist/sync-64MZDWGG.js +0 -14
  249. package/dist/sync-F5ECJW25.cjs +0 -39
  250. package/dist/sync-W5UR7BEP.cjs +0 -14
  251. package/dist/theme-CWG3ZLHB.cjs +0 -13
  252. package/dist/theme-HQKV7YAP.js +0 -13
  253. package/dist/undo-2WR2ZIEC.cjs +0 -8
  254. package/dist/undo-7QJBXARS.js +0 -8
@@ -1,242 +1,11 @@
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 _chunkAQNY2M6Qcjs = require('./chunk-AQNY2M6Q.cjs');
4
3
 
5
- // src/ui/theme/Theme.ts
6
- var Theme = class {
7
- constructor(name, colors, colorMode) {
8
- this.ansiCache = /* @__PURE__ */ new Map();
9
- this.name = name;
10
- this.colors = colors;
11
- this.colorMode = _nullishCoalesce(colorMode, () => ( detectColorMode()));
12
- }
13
- /**
14
- * Apply foreground color to text.
15
- */
16
- fg(token, text) {
17
- if (this.colorMode === "none") return text;
18
- const color = this.colors[token];
19
- if (!color) return text;
20
- const ansi = this.getAnsiCode(color, "fg");
21
- return `${ansi}${text}\x1B[39m`;
22
- }
23
- /**
24
- * Apply background color to text.
25
- */
26
- bg(token, text) {
27
- if (this.colorMode === "none") return text;
28
- const color = this.colors[token];
29
- if (!color) return text;
30
- const ansi = this.getAnsiCode(color, "bg");
31
- return `${ansi}${text}\x1B[49m`;
32
- }
33
- /**
34
- * Apply both foreground and background colors.
35
- */
36
- fgBg(fgToken, bgToken, text) {
37
- if (this.colorMode === "none") return text;
38
- const fgColor = this.colors[fgToken];
39
- const bgColor = this.colors[bgToken];
40
- const fgAnsi = fgColor ? this.getAnsiCode(fgColor, "fg") : "";
41
- const bgAnsi = bgColor ? this.getAnsiCode(bgColor, "bg") : "";
42
- return `${fgAnsi}${bgAnsi}${text}\x1B[0m`;
43
- }
44
- /**
45
- * Apply bold style.
46
- */
47
- bold(text) {
48
- return `\x1B[1m${text}\x1B[22m`;
49
- }
50
- /**
51
- * Apply italic style.
52
- */
53
- italic(text) {
54
- return `\x1B[3m${text}\x1B[23m`;
55
- }
56
- /**
57
- * Apply underline style.
58
- */
59
- underline(text) {
60
- return `\x1B[4m${text}\x1B[24m`;
61
- }
62
- /**
63
- * Apply dim style.
64
- */
65
- dimStyle(text) {
66
- return `\x1B[2m${text}\x1B[22m`;
67
- }
68
- /**
69
- * Apply strikethrough style.
70
- */
71
- strikethrough(text) {
72
- return `\x1B[9m${text}\x1B[29m`;
73
- }
74
- /**
75
- * Reset all styles.
76
- */
77
- reset(text) {
78
- return `\x1B[0m${text}\x1B[0m`;
79
- }
80
- /**
81
- * Get raw color value for a token.
82
- */
83
- getColor(token) {
84
- return this.colors[token] || "";
85
- }
86
- /**
87
- * Get current color mode.
88
- */
89
- getColorMode() {
90
- return this.colorMode;
91
- }
92
- /**
93
- * Convert color value to ANSI escape code.
94
- */
95
- getAnsiCode(color, type) {
96
- const cacheKey = `${color}:${type}`;
97
- const cached = this.ansiCache.get(cacheKey);
98
- if (cached) return cached;
99
- const code = this.colorToAnsi(color, type);
100
- this.ansiCache.set(cacheKey, code);
101
- return code;
102
- }
103
- /**
104
- * Convert a color value to ANSI code based on color mode.
105
- */
106
- colorToAnsi(color, type) {
107
- if (!color) return "";
108
- if (color.startsWith("#")) {
109
- return this.hexToAnsi(color, type);
110
- }
111
- const numValue = parseInt(color, 10);
112
- if (!isNaN(numValue) && numValue >= 0 && numValue <= 255) {
113
- return this.index256ToAnsi(numValue, type);
114
- }
115
- return "";
116
- }
117
- /**
118
- * Convert hex color to ANSI code.
119
- */
120
- hexToAnsi(hex, type) {
121
- const rgb = hexToRgb(hex);
122
- if (!rgb) return "";
123
- const base = type === "fg" ? 38 : 48;
124
- if (this.colorMode === "truecolor") {
125
- return `\x1B[${base};2;${rgb.r};${rgb.g};${rgb.b}m`;
126
- } else if (this.colorMode === "256") {
127
- const index = rgbTo256(rgb.r, rgb.g, rgb.b);
128
- return `\x1B[${base};5;${index}m`;
129
- } else if (this.colorMode === "16") {
130
- const index = rgbTo16(rgb.r, rgb.g, rgb.b);
131
- const code = type === "fg" ? index < 8 ? 30 + index : 90 + index - 8 : index < 8 ? 40 + index : 100 + index - 8;
132
- return `\x1B[${code}m`;
133
- }
134
- return "";
135
- }
136
- /**
137
- * Convert 256-color index to ANSI code.
138
- */
139
- index256ToAnsi(index, type) {
140
- const base = type === "fg" ? 38 : 48;
141
- if (this.colorMode === "truecolor" || this.colorMode === "256") {
142
- return `\x1B[${base};5;${index}m`;
143
- } else if (this.colorMode === "16") {
144
- const basicIndex = index < 16 ? index : index256To16(index);
145
- const code = type === "fg" ? basicIndex < 8 ? 30 + basicIndex : 90 + basicIndex - 8 : basicIndex < 8 ? 40 + basicIndex : 100 + basicIndex - 8;
146
- return `\x1B[${code}m`;
147
- }
148
- return "";
149
- }
150
- };
151
- function detectColorMode() {
152
- if (process.env.NO_COLOR !== void 0) {
153
- return "none";
154
- }
155
- if (process.env.FORCE_COLOR !== void 0) {
156
- const level = parseInt(process.env.FORCE_COLOR, 10);
157
- if (level === 0) return "none";
158
- if (level === 1) return "16";
159
- if (level === 2) return "256";
160
- if (level >= 3) return "truecolor";
161
- }
162
- const colorterm = process.env.COLORTERM;
163
- if (colorterm === "truecolor" || colorterm === "24bit") {
164
- return "truecolor";
165
- }
166
- const term = process.env.TERM || "";
167
- if (term.includes("256color") || term.includes("256-color")) {
168
- return "256";
169
- }
170
- if (term.includes("color") || term.includes("ansi") || term === "xterm") {
171
- return "16";
172
- }
173
- if (process.stdout.isTTY) {
174
- return "256";
175
- }
176
- return "none";
177
- }
178
- function hexToRgb(hex) {
179
- const match = hex.match(/^#?([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/);
180
- if (match) {
181
- return {
182
- r: parseInt(match[1], 16),
183
- g: parseInt(match[2], 16),
184
- b: parseInt(match[3], 16)
185
- };
186
- }
187
- const shortMatch = hex.match(/^#?([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/);
188
- if (shortMatch) {
189
- return {
190
- r: parseInt(shortMatch[1] + shortMatch[1], 16),
191
- g: parseInt(shortMatch[2] + shortMatch[2], 16),
192
- b: parseInt(shortMatch[3] + shortMatch[3], 16)
193
- };
194
- }
195
- return null;
196
- }
197
- function rgbTo256(r, g, b) {
198
- if (r === g && g === b) {
199
- if (r < 8) return 16;
200
- if (r > 248) return 231;
201
- return Math.round((r - 8) / 10) + 232;
202
- }
203
- const ri = Math.round(r / 51);
204
- const gi = Math.round(g / 51);
205
- const bi = Math.round(b / 51);
206
- return 16 + 36 * ri + 6 * gi + bi;
207
- }
208
- function rgbTo16(r, g, b) {
209
- const bright = (r + g + b) / 3 > 128 ? 8 : 0;
210
- const ri = r > 128 ? 1 : 0;
211
- const gi = g > 128 ? 2 : 0;
212
- const bi = b > 128 ? 4 : 0;
213
- return bright + ri + gi + bi;
214
- }
215
- function index256To16(index) {
216
- if (index < 16) return index;
217
- if (index >= 232) {
218
- const gray = (index - 232) * 10 + 8;
219
- return gray > 128 ? 15 : 0;
220
- }
221
- const adjusted = index - 16;
222
- const r = Math.floor(adjusted / 36) * 51;
223
- const g = Math.floor(adjusted % 36 / 6) * 51;
224
- const b = adjusted % 6 * 51;
225
- return rgbTo16(r, g, b);
226
- }
227
- var globalTheme = null;
228
- function getTheme() {
229
- if (!globalTheme) {
230
- throw new Error("Theme not initialized. Call initTheme() first.");
231
- }
232
- return globalTheme;
233
- }
234
- function setTheme(theme) {
235
- globalTheme = theme;
236
- }
237
- function isThemeInitialized() {
238
- return globalTheme !== null;
239
- }
4
+
5
+ var _chunkPGRH5Q77cjs = require('./chunk-PGRH5Q77.cjs');
6
+
7
+
8
+ var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
240
9
 
241
10
  // src/ui/theme/loader.ts
242
11
  var _fs = require('fs');
@@ -335,7 +104,7 @@ var darkTheme = {
335
104
  error: "red",
336
105
  warning: "yellow",
337
106
  muted: "gray500",
338
- dim: "gray700",
107
+ dim: "gray200",
339
108
  text: "gray200",
340
109
  // Backgrounds & Content
341
110
  userMessageBg: "bgMedium",
@@ -408,7 +177,7 @@ var draculaTheme = {
408
177
  error: "red",
409
178
  warning: "orange",
410
179
  muted: "comment",
411
- dim: "currentLine",
180
+ dim: "foreground",
412
181
  text: "foreground",
413
182
  // Backgrounds & Content
414
183
  userMessageBg: "currentLine",
@@ -481,7 +250,7 @@ var sandyTheme = {
481
250
  error: "rust",
482
251
  warning: "dune",
483
252
  muted: "stone",
484
- dim: "gray600",
253
+ dim: "gray100",
485
254
  text: "gray100",
486
255
  // Backgrounds & Content
487
256
  userMessageBg: "gray700",
@@ -565,7 +334,7 @@ var tuiTheme = {
565
334
  error: "pohutukawa",
566
335
  warning: "kowhai",
567
336
  muted: "gray400",
568
- dim: "gray600",
337
+ dim: "snow",
569
338
  text: "snow",
570
339
  // Backgrounds & Content
571
340
  userMessageBg: "gray700",
@@ -638,7 +407,7 @@ var lightTheme = {
638
407
  error: "red",
639
408
  warning: "yellow",
640
409
  muted: "gray400",
641
- dim: "gray500",
410
+ dim: "gray100",
642
411
  text: "gray100",
643
412
  // Backgrounds & Content
644
413
  userMessageBg: "bgMedium",
@@ -699,18 +468,18 @@ var ThemeLoadError = class extends Error {
699
468
  function loadTheme(themeName) {
700
469
  const definition = getThemeDefinition(themeName);
701
470
  const resolvedColors = resolveThemeColors(definition);
702
- return new Theme(definition.name, resolvedColors, detectColorMode());
471
+ return new (0, _chunkPGRH5Q77cjs.Theme)(definition.name, resolvedColors, _chunkPGRH5Q77cjs.detectColorMode.call(void 0, ));
703
472
  }
704
473
  function initTheme(themeName) {
705
474
  const name = themeName || getDefaultThemeName();
706
475
  try {
707
476
  const theme = loadTheme(name);
708
- setTheme(theme);
477
+ _chunkPGRH5Q77cjs.setTheme.call(void 0, theme);
709
478
  return theme;
710
479
  } catch (error) {
711
480
  console.warn(`Failed to load theme "${name}", falling back to dark theme:`, error instanceof Error ? error.message : error);
712
481
  const theme = loadTheme("dark");
713
- setTheme(theme);
482
+ _chunkPGRH5Q77cjs.setTheme.call(void 0, theme);
714
483
  return theme;
715
484
  }
716
485
  }
@@ -881,9 +650,9 @@ var ThemeContext = _react.createContext.call(void 0, defaultContextValue);
881
650
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
882
651
 
883
652
  var _yaml = require('yaml'); var _yaml2 = _interopRequireDefault(_yaml);
884
- var DEFAULT_CONFIG_PATH = _chunkAQNY2M6Qcjs.AUTOHAND_FILES.configJson;
885
- var YAML_CONFIG_PATH = _chunkAQNY2M6Qcjs.AUTOHAND_FILES.configYaml;
886
- var YML_CONFIG_PATH = _chunkAQNY2M6Qcjs.AUTOHAND_FILES.configYml;
653
+ var DEFAULT_CONFIG_PATH = _chunkGIZL57FEcjs.AUTOHAND_FILES.configJson;
654
+ var YAML_CONFIG_PATH = _chunkGIZL57FEcjs.AUTOHAND_FILES.configYaml;
655
+ var YML_CONFIG_PATH = _chunkGIZL57FEcjs.AUTOHAND_FILES.configYml;
887
656
  var DEFAULT_BASE_URL = "https://openrouter.ai/api/v1";
888
657
  var DEFAULT_OLLAMA_URL = "http://localhost:11434";
889
658
  var DEFAULT_LLAMACPP_URL = "http://localhost:8080";
@@ -998,8 +767,6 @@ function isLegacyConfig(config) {
998
767
  return typeof config.api_key === "string";
999
768
  }
1000
769
  function validateConfig(config, configPath) {
1001
- const provider = _nullishCoalesce(config.provider, () => ( "openrouter"));
1002
- const providerConfig = getProviderConfig(config, provider);
1003
770
  if (config.workspace) {
1004
771
  if (config.workspace.defaultRoot && typeof config.workspace.defaultRoot !== "string") {
1005
772
  throw new Error(`workspace.defaultRoot must be a string in ${configPath}`);
@@ -1019,6 +786,30 @@ function validateConfig(config, configPath) {
1019
786
  throw new Error(`ui.autoConfirm must be boolean in ${configPath}`);
1020
787
  }
1021
788
  }
789
+ if (config.mcp) {
790
+ if (config.mcp.enabled !== void 0 && typeof config.mcp.enabled !== "boolean") {
791
+ throw new Error(`mcp.enabled must be boolean in ${configPath}`);
792
+ }
793
+ if (config.mcp.servers !== void 0) {
794
+ if (!Array.isArray(config.mcp.servers)) {
795
+ throw new Error(`mcp.servers must be an array in ${configPath}`);
796
+ }
797
+ for (const server of config.mcp.servers) {
798
+ if (!server.name || typeof server.name !== "string") {
799
+ throw new Error(`mcp.servers[].name must be a non-empty string in ${configPath}`);
800
+ }
801
+ if (!["stdio", "sse", "http"].includes(server.transport)) {
802
+ throw new Error(`mcp.servers[].transport must be 'stdio', 'sse', or 'http' in ${configPath}`);
803
+ }
804
+ if (server.transport === "stdio" && (!server.command || typeof server.command !== "string")) {
805
+ throw new Error(`mcp.servers[].command is required for stdio transport in ${configPath}`);
806
+ }
807
+ if ((server.transport === "sse" || server.transport === "http") && (!server.url || typeof server.url !== "string")) {
808
+ throw new Error(`mcp.servers[].url is required for ${server.transport} transport in ${configPath}`);
809
+ }
810
+ }
811
+ }
812
+ }
1022
813
  if (config.externalAgents) {
1023
814
  if (config.externalAgents.enabled !== void 0 && typeof config.externalAgents.enabled !== "boolean") {
1024
815
  throw new Error(`externalAgents.enabled must be boolean in ${configPath}`);
@@ -1103,10 +894,7 @@ async function saveConfig(config) {
1103
894
 
1104
895
 
1105
896
 
1106
-
1107
-
1108
-
1109
- exports.hexToRgb = hexToRgb; exports.getTheme = getTheme; exports.isThemeInitialized = isThemeInitialized; exports.CUSTOM_THEMES_DIR = CUSTOM_THEMES_DIR; exports.initTheme = initTheme; exports.listAvailableThemes = listAvailableThemes; exports.loadConfig = loadConfig; exports.resolveWorkspaceRoot = resolveWorkspaceRoot; exports.getProviderConfig = getProviderConfig; exports.saveConfig = saveConfig;
897
+ exports.CUSTOM_THEMES_DIR = CUSTOM_THEMES_DIR; exports.initTheme = initTheme; exports.listAvailableThemes = listAvailableThemes; exports.loadConfig = loadConfig; exports.resolveWorkspaceRoot = resolveWorkspaceRoot; exports.getProviderConfig = getProviderConfig; exports.saveConfig = saveConfig;
1110
898
  /**
1111
899
  * @license
1112
900
  * Copyright 2025 Autohand AI LLC
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  safePrompt
3
- } from "./chunk-NCLCL7JK.js";
3
+ } from "./chunk-WD5ZF6HE.js";
4
+ import {
5
+ t
6
+ } from "./chunk-UET7BDX2.js";
4
7
 
5
8
  // src/commands/hooks.ts
6
9
  import chalk from "chalk";
@@ -116,11 +119,11 @@ function getShortCommand(command) {
116
119
  }
117
120
  function displayHooksList(allHooks) {
118
121
  console.log();
119
- console.log(chalk.bold.cyan("\u26A1 Hooks"));
122
+ console.log(chalk.bold.cyan(t("commands.hooks.title")));
120
123
  console.log(chalk.gray(" Lifecycle hooks run shell commands on events"));
121
124
  console.log();
122
125
  if (allHooks.length === 0) {
123
- console.log(chalk.gray(" No hooks configured."));
126
+ console.log(chalk.gray(` ${t("commands.hooks.noHooks")}`));
124
127
  console.log();
125
128
  return;
126
129
  }
@@ -366,7 +369,7 @@ async function testHook(manager, allHooks) {
366
369
  }
367
370
  var metadata = {
368
371
  command: "/hooks",
369
- description: "view and manage lifecycle hooks",
372
+ description: t("commands.hooks.description"),
370
373
  implemented: true
371
374
  };
372
375
 
@@ -3,29 +3,36 @@
3
3
 
4
4
 
5
5
 
6
+ var _chunkRJP3SZ7Qcjs = require('./chunk-RJP3SZ7Q.cjs');
6
7
 
7
8
 
8
- var _chunkLY5VN3B3cjs = require('./chunk-LY5VN3B3.cjs');
9
9
 
10
+ var _chunkPGRH5Q77cjs = require('./chunk-PGRH5Q77.cjs');
10
11
 
11
- var _chunkL5QWMGLVcjs = require('./chunk-L5QWMGLV.cjs');
12
+
13
+ var _chunkQRQ5EX7Icjs = require('./chunk-QRQ5EX7I.cjs');
14
+
15
+
16
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
12
17
 
13
18
  // src/commands/theme.ts
14
19
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
15
20
  async function theme(ctx) {
16
- const themes = _chunkLY5VN3B3cjs.listAvailableThemes.call(void 0, );
17
- const currentTheme = _chunkLY5VN3B3cjs.isThemeInitialized.call(void 0, ) ? _chunkLY5VN3B3cjs.getTheme.call(void 0, ).name : _optionalChain([ctx, 'access', _ => _.config, 'access', _2 => _2.ui, 'optionalAccess', _3 => _3.theme]) || "dark";
18
- console.log(_chalk2.default.cyan("\n\u{1F3A8} Theme Selection\n"));
19
- console.log(_chalk2.default.gray(`Current theme: ${_chalk2.default.white(currentTheme)}`));
20
- console.log(_chalk2.default.gray(`Custom themes location: ${_chunkLY5VN3B3cjs.CUSTOM_THEMES_DIR}
21
+ const themes = _chunkRJP3SZ7Qcjs.listAvailableThemes.call(void 0, );
22
+ 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
+ console.log(_chalk2.default.cyan(`
24
+ \u{1F3A8} ${_chunkLOXOD4IScjs.t.call(void 0, "commands.theme.title")}
25
+ `));
26
+ console.log(_chalk2.default.gray(_chunkLOXOD4IScjs.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}
21
28
  `));
22
29
  const options = themes.map((name) => ({
23
30
  label: name === currentTheme ? `${name} (current)` : name,
24
31
  value: name,
25
32
  description: name === "dark" ? "Default dark theme" : name === "light" ? "Light theme" : "Custom theme"
26
33
  }));
27
- const result = await _chunkL5QWMGLVcjs.showModal.call(void 0, {
28
- title: "Select a theme:",
34
+ const result = await _chunkQRQ5EX7Icjs.showModal.call(void 0, {
35
+ title: _chunkLOXOD4IScjs.t.call(void 0, "commands.theme.selectPrompt"),
29
36
  options,
30
37
  initialIndex: themes.indexOf(currentTheme)
31
38
  });
@@ -35,15 +42,16 @@ async function theme(ctx) {
35
42
  }
36
43
  const selected = result.value;
37
44
  if (selected === currentTheme) {
38
- console.log(_chalk2.default.gray("\nNo change made."));
45
+ console.log(_chalk2.default.gray(`
46
+ ${_chunkLOXOD4IScjs.t.call(void 0, "commands.theme.noChange")}`));
39
47
  return null;
40
48
  }
41
- _chunkLY5VN3B3cjs.initTheme.call(void 0, selected);
49
+ _chunkRJP3SZ7Qcjs.initTheme.call(void 0, selected);
42
50
  ctx.config.ui = { ...ctx.config.ui, theme: selected };
43
- await _chunkLY5VN3B3cjs.saveConfig.call(void 0, ctx.config);
51
+ await _chunkRJP3SZ7Qcjs.saveConfig.call(void 0, ctx.config);
44
52
  console.log(_chalk2.default.green(`
45
- \u2713 Theme changed to '${selected}'`));
46
- const newTheme = _chunkLY5VN3B3cjs.getTheme.call(void 0, );
53
+ \u2713 ${_chunkLOXOD4IScjs.t.call(void 0, "commands.theme.changed", { theme: selected })}`));
54
+ const newTheme = _chunkPGRH5Q77cjs.getTheme.call(void 0, );
47
55
  console.log("\nTheme preview:");
48
56
  console.log(` ${newTheme.fg("accent", "\u25CF accent")} ${newTheme.fg("success", "\u25CF success")} ${newTheme.fg("error", "\u25CF error")} ${newTheme.fg("warning", "\u25CF warning")}`);
49
57
  console.log(` ${newTheme.fg("muted", "\u25CF muted")} ${newTheme.fg("dim", "\u25CF dim")} ${newTheme.fg("text", "\u25CF text")}`);
@@ -51,15 +59,15 @@ async function theme(ctx) {
51
59
  return null;
52
60
  }
53
61
  async function themeInfo() {
54
- if (!_chunkLY5VN3B3cjs.isThemeInitialized.call(void 0, )) {
62
+ if (!_chunkPGRH5Q77cjs.isThemeInitialized.call(void 0, )) {
55
63
  console.log(_chalk2.default.yellow("Theme not initialized."));
56
64
  return null;
57
65
  }
58
- const currentTheme = _chunkLY5VN3B3cjs.getTheme.call(void 0, );
66
+ const currentTheme = _chunkPGRH5Q77cjs.getTheme.call(void 0, );
59
67
  console.log(_chalk2.default.cyan("\n\u{1F3A8} Current Theme Info\n"));
60
68
  console.log(_chalk2.default.gray(`Name: ${_chalk2.default.white(currentTheme.name)}`));
61
69
  console.log(_chalk2.default.gray(`Color mode: ${_chalk2.default.white(currentTheme.getColorMode())}`));
62
- console.log(_chalk2.default.gray(`Custom themes dir: ${_chunkLY5VN3B3cjs.CUSTOM_THEMES_DIR}`));
70
+ console.log(_chalk2.default.gray(`Custom themes dir: ${_chunkRJP3SZ7Qcjs.CUSTOM_THEMES_DIR}`));
63
71
  console.log();
64
72
  console.log("Color preview:");
65
73
  console.log(` ${currentTheme.fg("accent", "\u25CF accent")} ${currentTheme.fg("success", "\u25CF success")} ${currentTheme.fg("error", "\u25CF error")} ${currentTheme.fg("warning", "\u25CF warning")}`);
@@ -76,7 +84,7 @@ async function themeInfo() {
76
84
  }
77
85
  var metadata = {
78
86
  command: "/theme",
79
- description: "change the color theme",
87
+ description: _chunkLOXOD4IScjs.t.call(void 0, "commands.theme.description"),
80
88
  implemented: true
81
89
  };
82
90
 
@@ -1,14 +1,17 @@
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
3
 
4
- var _chunkLY5VN3B3cjs = require('./chunk-LY5VN3B3.cjs');
4
+ var _chunkRJP3SZ7Qcjs = require('./chunk-RJP3SZ7Q.cjs');
5
+
6
+
7
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
5
8
 
6
9
  // src/commands/sync.ts
7
10
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
8
11
  var _readline = require('readline'); var _readline2 = _interopRequireDefault(_readline);
9
12
  var metadata = {
10
13
  command: "/sync",
11
- description: "Manage settings sync (view status, enable/disable, trigger sync)",
14
+ description: _chunkLOXOD4IScjs.t.call(void 0, "commands.sync.description"),
12
15
  implemented: true
13
16
  };
14
17
  var globalSyncService = null;
@@ -19,7 +22,7 @@ function getSyncService() {
19
22
  return globalSyncService;
20
23
  }
21
24
  async function sync(ctx) {
22
- const config = await _chunkLY5VN3B3cjs.loadConfig.call(void 0, );
25
+ const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, );
23
26
  const isLoggedIn = Boolean(_optionalChain([config, 'access', _ => _.auth, 'optionalAccess', _2 => _2.token]) && _optionalChain([config, 'access', _3 => _3.auth, 'optionalAccess', _4 => _4.user]));
24
27
  if (!isLoggedIn) {
25
28
  console.log(_chalk2.default.yellow("\nSettings sync requires authentication."));
@@ -62,7 +65,6 @@ function renderSyncUI(data, ctx) {
62
65
  return new Promise((resolve) => {
63
66
  const tabs = ["Status", "Settings", "Activity"];
64
67
  let currentTab = 0;
65
- let needsRefresh = false;
66
68
  const input = process.stdin;
67
69
  const isTTY = input.isTTY;
68
70
  const wasRaw = input.isRaw;
@@ -117,7 +119,7 @@ function renderSyncUI(data, ctx) {
117
119
  } else {
118
120
  console.log(_chalk2.default.red(`Sync failed: ${result.error}`));
119
121
  }
120
- const config = await _chunkLY5VN3B3cjs.loadConfig.call(void 0, );
122
+ const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, );
121
123
  Object.assign(data, await gatherSyncData(ctx, config));
122
124
  } catch (err) {
123
125
  console.log(_chalk2.default.red(`Sync error: ${err}`));
@@ -129,13 +131,13 @@ function renderSyncUI(data, ctx) {
129
131
  }
130
132
  if (char === "e") {
131
133
  try {
132
- const config = await _chunkLY5VN3B3cjs.loadConfig.call(void 0, );
134
+ const config = await _chunkRJP3SZ7Qcjs.loadConfig.call(void 0, );
133
135
  const newEnabled = _optionalChain([config, 'access', _16 => _16.sync, 'optionalAccess', _17 => _17.enabled]) === false;
134
136
  config.sync = { ...config.sync, enabled: newEnabled };
135
- await _chunkLY5VN3B3cjs.saveConfig.call(void 0, config);
137
+ await _chunkRJP3SZ7Qcjs.saveConfig.call(void 0, config);
136
138
  data.enabled = newEnabled;
137
139
  console.log(_chalk2.default.cyan(`
138
- Sync ${newEnabled ? "enabled" : "disabled"}`));
140
+ ${newEnabled ? _chunkLOXOD4IScjs.t.call(void 0, "commands.sync.enabled") : _chunkLOXOD4IScjs.t.call(void 0, "commands.sync.disabled")}`));
139
141
  await sleep(1e3);
140
142
  render();
141
143
  } catch (err) {
@@ -0,0 +1,94 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunk4XHHW7QXcjs = require('./chunk-4XHHW7QX.cjs');
4
+
5
+
6
+
7
+ var _chunkPGRH5Q77cjs = require('./chunk-PGRH5Q77.cjs');
8
+
9
+
10
+ var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
11
+
12
+ // src/commands/about.ts
13
+ var _child_process = require('child_process');
14
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
15
+ var _terminallink = require('terminal-link'); var _terminallink2 = _interopRequireDefault(_terminallink);
16
+ function getGitCommit() {
17
+ if (true) {
18
+ return "054b704";
19
+ }
20
+ try {
21
+ return _child_process.execSync.call(void 0, "git rev-parse --short HEAD", { encoding: "utf8", stdio: ["pipe", "pipe", "ignore"] }).trim();
22
+ } catch (e) {
23
+ return "unknown";
24
+ }
25
+ }
26
+ function getVersionString() {
27
+ const commit = getGitCommit();
28
+ return commit !== "unknown" ? `${_chunk4XHHW7QXcjs.package_default.version} (${commit})` : _chunk4XHHW7QXcjs.package_default.version;
29
+ }
30
+ var ASCII_FRIEND = [
31
+ "\u2880\u2874\u281B\u281B\u283B\u28F7\u2844\u2800\u28E0\u2876\u281F\u281B\u283B\u28F6\u2844\u2880\u28F4\u287E\u281B\u281B\u28BF\u28E6\u2800\u2880\u28F4\u281E\u281B\u281B\u2836\u2840",
32
+ "\u284E\u2800\u28B0\u28F6\u2846\u2808\u28FF\u28F4\u28FF\u2801\u28F4\u28F6\u2844\u2818\u28FF\u28FE\u284F\u2880\u28F6\u28E6\u2800\u28BB\u2847\u28FF\u2803\u28A0\u28F6\u2846\u2800\u28B9",
33
+ "\u28A7\u2800\u2818\u281B\u2803\u28A0\u287F\u2819\u28FF\u2840\u2819\u281B\u2803\u28F0\u287F\u28BB\u28E7\u2808\u281B\u281B\u2880\u28FE\u2807\u28BB\u28C6\u2808\u281B\u280B\u2800\u287C",
34
+ "\u2808\u283B\u28B6\u28F6\u287E\u281F\u2801\u2800\u2818\u283F\u28B6\u28F6\u287E\u281F\u2801\u2800\u2819\u2837\u28F6\u28F6\u283F\u280B\u2800\u2808\u283B\u2837\u28F6\u2876\u281A\u2801",
35
+ "\u2880\u28F4\u283F\u283F\u2837\u28E6\u2840\u2800\u28E0\u28F6\u283F\u283B\u28B7\u28E6\u2840\u2800\u28E0\u287E\u281F\u283F\u28F6\u28C4\u2800\u2880\u28F4\u287E\u283F\u283F\u28F6\u28C4",
36
+ "\u287E\u2803\u28A0\u28E4\u2844\u2818\u28FF\u28E0\u28FF\u2801\u28E0\u28E4\u2844\u2839\u28F7\u28FC\u284F\u2880\u28E4\u28E4\u2808\u28BF\u2846\u28FE\u280F\u2880\u28E4\u28C4\u2808\u28BF",
37
+ "\u28A7\u2840\u2838\u283F\u2807\u2880\u28FF\u283A\u28FF\u2840\u283B\u283F\u2803\u28B0\u28FF\u28BF\u28C7\u2808\u283F\u283F\u2800\u28FC\u2847\u28BF\u28C7\u2818\u283F\u2807\u2800\u28F8",
38
+ "\u2808\u28BF\u28E6\u28E4\u28F4\u287F\u2803\u2800\u2819\u28B7\u28E6\u28E4\u28F6\u287F\u2801\u2808\u283B\u28F7\u28E4\u28E4\u287E\u281B\u2800\u2808\u28BF\u28E6\u28E4\u28E4\u2834\u2801"
39
+ ].join("\n");
40
+ async function about() {
41
+ let accent;
42
+ let muted;
43
+ let text;
44
+ if (_chunkPGRH5Q77cjs.isThemeInitialized.call(void 0, )) {
45
+ const theme = _chunkPGRH5Q77cjs.getTheme.call(void 0, );
46
+ accent = (text2) => _chalk2.default.hex(theme.colors.accent)(text2);
47
+ muted = (text2) => _chalk2.default.hex(theme.colors.muted)(text2);
48
+ text = (str) => _chalk2.default.hex(theme.colors.text)(str);
49
+ } else {
50
+ accent = (text2) => _chalk2.default.cyan(text2);
51
+ muted = (text2) => _chalk2.default.gray(text2);
52
+ text = (text2) => _chalk2.default.white(text2);
53
+ }
54
+ console.log(_chalk2.default.gray(ASCII_FRIEND));
55
+ console.log();
56
+ console.log(accent(`${_chunkLOXOD4IScjs.t.call(void 0, "commands.about.title")} v${getVersionString()}`));
57
+ console.log(muted(_chunkLOXOD4IScjs.t.call(void 0, "commands.about.subtitle")));
58
+ console.log();
59
+ const websiteUrl = "https://autohand.ai";
60
+ const githubUrl = "https://github.com/autohandai/";
61
+ const docsUrl = "https://docs.autohand.ai";
62
+ const websiteLink = _terminallink2.default.call(void 0, _chalk2.default.cyan.underline("autohand.ai"), websiteUrl);
63
+ const githubLink = _terminallink2.default.call(void 0, _chalk2.default.cyan.underline("github.com/autohandai/"), githubUrl);
64
+ const docsLink = _terminallink2.default.call(void 0, _chalk2.default.cyan.underline("docs.autohand.ai"), docsUrl);
65
+ console.log(`${text("\u{1F310}")} ${text(_chunkLOXOD4IScjs.t.call(void 0, "commands.about.website") + ":")} ${websiteLink}`);
66
+ console.log(`${text("\u{1F4E6}")} ${text(_chunkLOXOD4IScjs.t.call(void 0, "commands.about.github") + ":")} ${githubLink}`);
67
+ console.log(`${text("\u{1F4DA}")} ${text(_chunkLOXOD4IScjs.t.call(void 0, "commands.about.docs") + ":")} ${docsLink}`);
68
+ console.log();
69
+ console.log(text(`\u{1F4A1} ${_chunkLOXOD4IScjs.t.call(void 0, "commands.about.contribute")}`));
70
+ console.log(text(` \u2022 ${_chunkLOXOD4IScjs.t.call(void 0, "commands.about.feedback")}: ${accent("/feedback")}`));
71
+ console.log(text(` \u2022 ${_chunkLOXOD4IScjs.t.call(void 0, "commands.about.submitPR")}: ${accent("gh pr create")}`));
72
+ const issuesUrl = "https://github.com/autohandai/code-cli/issues";
73
+ const issuesLink = _terminallink2.default.call(void 0, _chalk2.default.cyan.underline("github.com/autohandai/code-cli/issues"), issuesUrl);
74
+ console.log(text(` \u2022 ${_chunkLOXOD4IScjs.t.call(void 0, "commands.about.reportIssues")}: ${issuesLink}`));
75
+ console.log();
76
+ console.log(muted(_chunkLOXOD4IScjs.t.call(void 0, "commands.about.pressKey")));
77
+ console.log();
78
+ return null;
79
+ }
80
+ var metadata = {
81
+ command: "/about",
82
+ description: "show information about Autohand",
83
+ implemented: true
84
+ };
85
+
86
+
87
+
88
+
89
+ exports.about = about; exports.metadata = metadata;
90
+ /**
91
+ * @license
92
+ * Copyright 2025 Autohand AI LLC
93
+ * SPDX-License-Identifier: Apache-2.0
94
+ */