autohand-cli 0.8.3 → 0.9.1

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 (546) hide show
  1. package/README.md +191 -74
  2. package/dist/{AgentRegistry-ODDXPAFR.js → AgentRegistry-GOV7FN2O.js} +2 -2
  3. package/dist/AgentRegistry-J2C6JBZ3.cjs +10 -0
  4. package/dist/{AutomodeManager-EOVHGRPP.js → AutomodeManager-APLLPEYJ.js} +31 -17
  5. package/dist/{AutomodeManager-6ATBE7Q5.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
  6. package/dist/CommunitySkillsCache-22BB3J6H.cjs +8 -0
  7. package/dist/{CommunitySkillsCache-QLE57BN5.js → CommunitySkillsCache-ZACDPD4J.js} +2 -2
  8. package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
  9. package/dist/{GitHubRegistryFetcher-NT5GFZXS.js → GitHubRegistryFetcher-J2BWPXJF.js} +1 -1
  10. package/dist/{HookManager-B2F35M27.js → HookManager-2S6AHOC3.js} +1 -1
  11. package/dist/{HookManager-PFAFE3FK.cjs → HookManager-TVEQI5ZU.cjs} +2 -2
  12. package/dist/{ImportWizard-OHRKBANZ.js → ImportWizard-AEBMAKXE.js} +33 -9
  13. package/dist/{ImportWizard-CJRZPPHL.cjs → ImportWizard-AF2XL6DS.cjs} +37 -13
  14. package/dist/LearnAdvisor-KKEQ5QCV.js +9 -0
  15. package/dist/LearnAdvisor-Q7RAYLPF.cjs +9 -0
  16. package/dist/{McpClientManager-NQ3EW2IF.cjs → McpClientManager-BNSKLHIN.cjs} +2 -2
  17. package/dist/{McpClientManager-VBIMGKXU.js → McpClientManager-SL35BR24.js} +1 -1
  18. package/dist/MemoryManager-PMNAEZMB.cjs +8 -0
  19. package/dist/{MemoryManager-2LAT7IHS.js → MemoryManager-QZRLTUB5.js} +2 -2
  20. package/dist/NVIDIAProvider-C3FWQOBZ.cjs +14 -0
  21. package/dist/NVIDIAProvider-SJPY3ONR.js +14 -0
  22. package/dist/{PermissionManager-7NQHRCHY.js → PermissionManager-MT7KBNNR.js} +3 -3
  23. package/dist/PermissionManager-URCNP5EC.cjs +11 -0
  24. package/dist/{ProjectProfiler-UG42W6WD.cjs → ProjectProfiler-CDAE7ECW.cjs} +1 -0
  25. package/dist/{ProjectProfiler-P4QJQWWA.js → ProjectProfiler-NZTJDRHD.js} +1 -0
  26. package/dist/ProviderFactory-56N3ECE4.cjs +12 -0
  27. package/dist/{ProviderFactory-2IYJ5OPW.js → ProviderFactory-RB4RVAF6.js} +4 -1
  28. package/dist/SessionManager-2IZGWASQ.cjs +10 -0
  29. package/dist/{SessionManager-4U4JFQ3C.js → SessionManager-554PHVPC.js} +2 -2
  30. package/dist/SkillsRegistry-GMRVONOQ.cjs +9 -0
  31. package/dist/{SkillsRegistry-RFEINXRT.js → SkillsRegistry-NHHMIUYJ.js} +2 -2
  32. package/dist/SubAgent-4GOR2FIJ.js +13 -0
  33. package/dist/SubAgent-ZJMDH4FI.cjs +13 -0
  34. package/dist/{SyncApiClient-B5RT2ECG.js → SyncApiClient-G3FM65IV.js} +1 -1
  35. package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
  36. package/dist/about-3USFSGOH.js +15 -0
  37. package/dist/about-QR52U5DD.cjs +15 -0
  38. package/dist/acp-5Y2W6OZP.js +1556 -0
  39. package/dist/acp-GSYE75OB.cjs +1556 -0
  40. package/dist/actionExecutor-KHUU3Z3Q.cjs +28 -0
  41. package/dist/actionExecutor-PLQJZLZV.js +28 -0
  42. package/dist/add-dir-BTAD5OZS.cjs +11 -0
  43. package/dist/{add-dir-TUJM3PG5.js → add-dir-HCERJDBR.js} +3 -2
  44. package/dist/agent-B3EVT7NN.cjs +126 -0
  45. package/dist/agent-SATQ3WZ3.js +126 -0
  46. package/dist/agents/builtin/code-cleaner.md +1 -1
  47. package/dist/agents/builtin/docs-writer.md +1 -1
  48. package/dist/agents/builtin/researcher.md +2 -2
  49. package/dist/agents/builtin/reviewer.md +1 -1
  50. package/dist/agents/builtin/tester.md +1 -1
  51. package/dist/agents/builtin/todo-resolver.md +1 -1
  52. package/dist/agents-44CRJGM7.cjs +18 -0
  53. package/dist/agents-NN4ZAJ7R.js +18 -0
  54. package/dist/agents-new-6D6G4QS6.cjs +17 -0
  55. package/dist/agents-new-7GAQ25EK.js +17 -0
  56. package/dist/{autoSkill-LQEVQFIH.js → autoSkill-66PKCYTW.js} +2 -2
  57. package/dist/autoSkill-VQLGBELN.cjs +20 -0
  58. package/dist/automode-45DWV4TN.cjs +10 -0
  59. package/dist/{automode-R6P3VHLS.js → automode-BUF3VGXU.js} +2 -2
  60. package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
  61. package/dist/browserToolBridge-F5N66PE7.js +58 -0
  62. package/dist/chrome-Q2U73HZB.cjs +50 -0
  63. package/dist/chrome-Q54OALOK.cjs +21 -0
  64. package/dist/chrome-Y3T7EIHG.js +50 -0
  65. package/dist/chrome-ZNJ46OYW.js +21 -0
  66. package/dist/chromeSkill-53TH55PM.js +105 -0
  67. package/dist/chromeSkill-THW7N4IY.cjs +105 -0
  68. package/dist/{chunk-HXGBSJL5.cjs → chunk-22SCR3EV.cjs} +2 -2
  69. package/dist/chunk-26G7YGOW.js +367 -0
  70. package/dist/{chunk-3L53OA4E.cjs → chunk-2ESQR35E.cjs} +10 -10
  71. package/dist/chunk-2H5O745H.js +63 -0
  72. package/dist/{chunk-ULDM2SNB.js → chunk-2IW5YFJ4.js} +48 -47
  73. package/dist/{chunk-U55TWFJI.cjs → chunk-2VHB43IX.cjs} +24 -6
  74. package/dist/chunk-3EDDDZS2.cjs +5 -0
  75. package/dist/{chunk-X5VSP65C.cjs → chunk-3ICORF7M.cjs} +4 -4
  76. package/dist/chunk-3OF56EMA.cjs +197 -0
  77. package/dist/chunk-3UC6DMFI.cjs +93 -0
  78. package/dist/{chunk-64H4FRM3.cjs → chunk-3UHRCHKB.cjs} +32 -34
  79. package/dist/{chunk-JCLYQ2JC.js → chunk-3ZOOH44N.js} +12 -6
  80. package/dist/{chunk-TUD3Z3BD.js → chunk-44ZWOBTI.js} +136 -55
  81. package/dist/chunk-4567QNRB.js +444 -0
  82. package/dist/chunk-45CHNQM6.cjs +517 -0
  83. package/dist/chunk-46MTALKD.js +44 -0
  84. package/dist/{chunk-WHE2SWHU.js → chunk-4E7SHPNQ.js} +2 -2
  85. package/dist/chunk-4LMUDS2K.js +124 -0
  86. package/dist/{chunk-W7RYQJLO.cjs → chunk-4XFHP2SN.cjs} +46 -15
  87. package/dist/chunk-4XVLNOFA.js +360 -0
  88. package/dist/{chunk-GBHDROGL.js → chunk-575PXZX7.js} +16 -4
  89. package/dist/chunk-5A7ZL64N.js +139 -0
  90. package/dist/chunk-5GCQ5UMV.cjs +85 -0
  91. package/dist/chunk-5JTTM5SC.js +59 -0
  92. package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
  93. package/dist/{chunk-KLWJIPU2.cjs → chunk-5SFV2NCY.cjs} +20 -16
  94. package/dist/chunk-5ZNYX4VH.cjs +71 -0
  95. package/dist/{chunk-A4IJHHV7.cjs → chunk-63ANVAOJ.cjs} +52 -11
  96. package/dist/{chunk-MYISNQH4.js → chunk-65LRPW5W.js} +1 -1
  97. package/dist/chunk-6AYJCDTA.js +360 -0
  98. package/dist/{chunk-X2MSVKDV.js → chunk-6HF6XSCC.js} +2 -2
  99. package/dist/{chunk-AEJH23FO.cjs → chunk-6JWCGQJU.cjs} +6 -6
  100. package/dist/chunk-6OECOAK5.cjs +360 -0
  101. package/dist/chunk-6R25D2H5.js +121 -0
  102. package/dist/chunk-7DJJGKM6.js +77 -0
  103. package/dist/{chunk-VG34MG2U.js → chunk-7IRQ7JEH.js} +9 -6
  104. package/dist/chunk-7MY4JHER.js +27 -0
  105. package/dist/chunk-7PJKTSRN.js +152 -0
  106. package/dist/{chunk-SKYG33B2.cjs → chunk-7PT646AL.cjs} +3 -3
  107. package/dist/chunk-7WAUCLLQ.js +229 -0
  108. package/dist/{chunk-U46VYPLR.cjs → chunk-7XTUL7ZD.cjs} +9 -9
  109. package/dist/chunk-AE2ILW25.cjs +152 -0
  110. package/dist/{chunk-T2M64VHA.cjs → chunk-AOKXYGBQ.cjs} +61 -41
  111. package/dist/chunk-AQ5PVHOC.cjs +113 -0
  112. package/dist/{chunk-N2BLVUPM.cjs → chunk-AZ47LKD5.cjs} +3 -3
  113. package/dist/chunk-B4HSNOIH.cjs +354 -0
  114. package/dist/chunk-B76FJKEJ.cjs +184 -0
  115. package/dist/chunk-BP37FVBM.js +85 -0
  116. package/dist/chunk-BQU3HAE7.js +21 -0
  117. package/dist/chunk-BYE7RQFZ.cjs +121 -0
  118. package/dist/chunk-C46B72VK.js +1034 -0
  119. package/dist/{chunk-HIVRCQS2.js → chunk-C5QIQQ37.js} +56 -25
  120. package/dist/chunk-CCIDL4SA.js +19931 -0
  121. package/dist/{chunk-XVUHNWMX.js → chunk-CECH6QQP.js} +17 -19
  122. package/dist/chunk-CFAWTLSC.js +13 -0
  123. package/dist/{chunk-ZYQMLKOK.cjs → chunk-CK4HAHVY.cjs} +212 -70
  124. package/dist/chunk-CO2AADYU.cjs +360 -0
  125. package/dist/chunk-CRTCZ4WL.cjs +19931 -0
  126. package/dist/chunk-CSTUTDTH.js +75 -0
  127. package/dist/{chunk-K2C56QGS.cjs → chunk-D546G7DA.cjs} +1650 -479
  128. package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
  129. package/dist/{chunk-G4CAKI3V.js → chunk-DGBPWODD.js} +7 -2
  130. package/dist/chunk-DHUQZ53B.cjs +29 -0
  131. package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
  132. package/dist/{chunk-5K6NGAVM.js → chunk-DNSD7DVJ.js} +67 -52
  133. package/dist/{chunk-RDF37HKB.cjs → chunk-DSSCERHI.cjs} +3 -2
  134. package/dist/{chunk-NAJ4IZKD.cjs → chunk-EA2MS25U.cjs} +8 -6
  135. package/dist/{chunk-SJAVBCOA.js → chunk-EEHWALXA.js} +94 -3
  136. package/dist/chunk-ES2HJQ4N.js +37 -0
  137. package/dist/{chunk-G27PQQFD.js → chunk-EYHKL4QC.js} +1 -1
  138. package/dist/{chunk-SV2WA57F.js → chunk-FBQJZKFX.js} +38 -15
  139. package/dist/chunk-FFBDRUO5.cjs +59 -0
  140. package/dist/{chunk-N7LI55V4.js → chunk-FFHSCM5M.js} +15 -8
  141. package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
  142. package/dist/chunk-FQVG6ZHF.js +197 -0
  143. package/dist/{chunk-J2GSFVUV.cjs → chunk-GAOPJ5S3.cjs} +74 -59
  144. package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
  145. package/dist/chunk-GSDV75A5.js +715 -0
  146. package/dist/chunk-GWY26SUD.cjs +63 -0
  147. package/dist/{chunk-TUAITHWL.js → chunk-H426KOGY.js} +2 -1
  148. package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
  149. package/dist/chunk-HC2Q6A3E.cjs +4967 -0
  150. package/dist/{chunk-3WVJEL7K.cjs → chunk-HDK2EHVH.cjs} +3 -1
  151. package/dist/{chunk-5IXII4HX.cjs → chunk-HG3ZASBH.cjs} +23 -16
  152. package/dist/chunk-HK5A54AV.cjs +280 -0
  153. package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
  154. package/dist/chunk-HSWWM6AM.js +2340 -0
  155. package/dist/chunk-HTU4W3GB.js +183 -0
  156. package/dist/{chunk-HLHTG5ZU.cjs → chunk-HVCIB4SW.cjs} +14 -12
  157. package/dist/chunk-HXHE2KAO.js +385 -0
  158. package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
  159. package/dist/{chunk-SLQAYV3W.js → chunk-HZWU6IO3.js} +11 -2
  160. package/dist/chunk-I2ZK3AOD.js +866 -0
  161. package/dist/chunk-IEPLQ47J.js +719 -0
  162. package/dist/chunk-J5HE6CUM.cjs +124 -0
  163. package/dist/{chunk-LIEXWM2M.js → chunk-JAQO6XDB.js} +19 -1
  164. package/dist/chunk-JB3JCYBJ.js +113 -0
  165. package/dist/chunk-JCUHCH37.cjs +247 -0
  166. package/dist/{chunk-FPHU2ES6.cjs → chunk-JM3ZTQUK.cjs} +19 -9
  167. package/dist/{chunk-NDMIPTV4.js → chunk-JMJRFSNJ.js} +8 -3
  168. package/dist/{chunk-ZLSGXMGQ.js → chunk-JMN3GZU6.js} +2 -0
  169. package/dist/chunk-JPFRI4L4.js +4967 -0
  170. package/dist/{chunk-BVKXEQVG.cjs → chunk-JV5HVCHU.cjs} +22 -10
  171. package/dist/chunk-KA2U6MY2.js +388 -0
  172. package/dist/{chunk-SEKD5FH3.cjs → chunk-KASXKDF2.cjs} +8 -3
  173. package/dist/chunk-KJ26T7GM.cjs +367 -0
  174. package/dist/chunk-KM7R5YPS.cjs +385 -0
  175. package/dist/{chunk-MBBY4ZIK.js → chunk-KMP6Y3LJ.js} +4 -1
  176. package/dist/chunk-KWXGDSYT.js +184 -0
  177. package/dist/{chunk-C5IJIM2V.cjs → chunk-L46OUKW5.cjs} +68 -37
  178. package/dist/{chunk-6UJMCWRY.js → chunk-L6OH44HL.js} +19 -9
  179. package/dist/chunk-LANGD5CO.js +280 -0
  180. package/dist/{chunk-APIXPPMT.js → chunk-LEZEWKPA.js} +1004 -39
  181. package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
  182. package/dist/chunk-LJD7KR3L.cjs +44 -0
  183. package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
  184. package/dist/{chunk-QXH5RCFI.js → chunk-M5DK524Z.js} +2 -2
  185. package/dist/chunk-M7B7RRBK.cjs +1034 -0
  186. package/dist/chunk-MANJ67D3.js +3897 -0
  187. package/dist/{chunk-HPHJ73GU.cjs → chunk-MGNXABSU.cjs} +9 -9
  188. package/dist/{chunk-6ZCULLCA.js → chunk-MMKZSJUN.js} +1 -1
  189. package/dist/{chunk-DVUHHH3B.cjs → chunk-MQQH4XQH.cjs} +4 -4
  190. package/dist/chunk-MUNUUFU7.cjs +21 -0
  191. package/dist/{chunk-DVZOENQ7.cjs → chunk-MZN6JBRZ.cjs} +9 -4
  192. package/dist/{chunk-OOKY3HPZ.js → chunk-NB6M6ESM.js} +50 -9
  193. package/dist/{chunk-BYONM7UM.js → chunk-NBGOIFKP.js} +265 -18
  194. package/dist/chunk-NHWHEW7M.cjs +75 -0
  195. package/dist/chunk-NQZH5CR2.cjs +468 -0
  196. package/dist/{chunk-EGPXJERY.cjs → chunk-NV6LCD2I.cjs} +119 -28
  197. package/dist/chunk-NVATU4V6.cjs +44 -0
  198. package/dist/{chunk-YZXUDM5X.js → chunk-NZ3ZWLUW.js} +204 -62
  199. package/dist/chunk-NZ7GCK7Y.cjs +92 -0
  200. package/dist/{chunk-VEKDGU2Q.cjs → chunk-NZQFKXM3.cjs} +49 -25
  201. package/dist/chunk-O5GI6SR3.js +59 -0
  202. package/dist/{chunk-56SWIDEL.cjs → chunk-OCATAKXV.cjs} +57 -56
  203. package/dist/{chunk-SKV2F3NM.js → chunk-OIGYWOL6.js} +1 -1
  204. package/dist/{chunk-IFFXSTOM.cjs → chunk-ONVYXTUT.cjs} +3 -3
  205. package/dist/chunk-OR67YXQK.cjs +13 -0
  206. package/dist/chunk-OV3T5MUH.cjs +715 -0
  207. package/dist/{chunk-OHUZKDGX.js → chunk-P4FUTSVK.js} +3 -3
  208. package/dist/chunk-P6SLT2F4.cjs +139 -0
  209. package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
  210. package/dist/chunk-PCM3N3CL.cjs +37 -0
  211. package/dist/{chunk-2AA5MFES.js → chunk-PGFLPURU.js} +8 -5
  212. package/dist/{chunk-DJDE4DTT.cjs → chunk-PIXQ2AVM.cjs} +25 -19
  213. package/dist/chunk-PNIAIOMZ.cjs +229 -0
  214. package/dist/{chunk-HTLINWX6.cjs → chunk-PQBYFEBL.cjs} +16 -13
  215. package/dist/{chunk-22D2CNTP.cjs → chunk-PSAH4ZQB.cjs} +5 -2
  216. package/dist/{chunk-3VTAFAL2.js → chunk-PTTZI4QZ.js} +16 -12
  217. package/dist/{chunk-WPVWQSL7.cjs → chunk-PY73W5MQ.cjs} +16 -13
  218. package/dist/{chunk-EGMZDTSL.js → chunk-PZZMIYII.js} +10 -2
  219. package/dist/{chunk-HBZU3RBZ.js → chunk-Q3BS6FPM.js} +34 -10
  220. package/dist/chunk-QBYGMMDD.js +517 -0
  221. package/dist/chunk-QLZOMZO5.cjs +388 -0
  222. package/dist/{chunk-ADUFCS4Q.cjs → chunk-QQ64HEHP.cjs} +160 -79
  223. package/dist/{chunk-L3TWPROA.js → chunk-QRQF3556.js} +44 -24
  224. package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
  225. package/dist/chunk-RAKO7UN7.js +114 -0
  226. package/dist/{chunk-7TQH3CL4.cjs → chunk-RBXBH6EB.cjs} +78 -35
  227. package/dist/chunk-RFUKZIJF.cjs +78 -0
  228. package/dist/chunk-RS2E32YB.js +71 -0
  229. package/dist/{chunk-OLSBBZW6.cjs → chunk-S5JNQIGL.cjs} +5 -5
  230. package/dist/{chunk-FTYY5JJD.js → chunk-S5QKRA2V.js} +2 -2
  231. package/dist/chunk-SD3NTC7D.cjs +77 -0
  232. package/dist/{chunk-KPELYZ6L.js → chunk-SDLY4X3G.js} +2 -2
  233. package/dist/{chunk-IDFF5J2E.js → chunk-SFFEKZGC.js} +38 -7
  234. package/dist/{chunk-EGFT4PGW.js → chunk-SHRLFX6F.js} +8 -3
  235. package/dist/{chunk-3WICOC33.js → chunk-SNDDZG5H.js} +124 -84
  236. package/dist/{chunk-CZXGCVTR.cjs → chunk-SOVR7S3T.cjs} +2 -2
  237. package/dist/chunk-SPQ7QIQ6.js +78 -0
  238. package/dist/{chunk-XRZEUWKF.js → chunk-SRMGWMQO.js} +1 -1
  239. package/dist/{chunk-R33VKSH5.cjs → chunk-SVVP4UUZ.cjs} +11 -11
  240. package/dist/{chunk-7BTSG4ME.cjs → chunk-SY2P3Z5W.cjs} +1004 -39
  241. package/dist/chunk-SZD45IDG.js +468 -0
  242. package/dist/{chunk-3O3MOK5C.cjs → chunk-TE4SYTWR.cjs} +1114 -142
  243. package/dist/chunk-TH26BQJG.js +101 -0
  244. package/dist/{chunk-QNGEW5TC.js → chunk-TR6NECEZ.js} +1 -1
  245. package/dist/{chunk-YGN4CQIP.js → chunk-TYBPTKFT.js} +1 -1
  246. package/dist/{chunk-GJH7XMSK.js → chunk-U2QUMKCB.js} +8 -6
  247. package/dist/{chunk-47CKWKEX.cjs → chunk-U6PLSPMD.cjs} +9 -4
  248. package/dist/chunk-UOQECODR.js +34 -0
  249. package/dist/chunk-UR27UDTB.js +354 -0
  250. package/dist/chunk-UWZ4G3SQ.js +93 -0
  251. package/dist/{chunk-Y72HH2TF.cjs → chunk-V3SZLWEQ.cjs} +33 -24
  252. package/dist/chunk-V4HGZSKQ.cjs +183 -0
  253. package/dist/{chunk-3PDTTAKJ.js → chunk-V5ELP2XE.js} +19 -12
  254. package/dist/{chunk-3K2ESU53.cjs → chunk-VKOXFT4L.cjs} +2 -2
  255. package/dist/{chunk-XTB6VJVQ.cjs → chunk-VLGGMQUN.cjs} +6 -6
  256. package/dist/chunk-VQHSYAPZ.cjs +3897 -0
  257. package/dist/chunk-VUGOOGHB.js +400 -0
  258. package/dist/chunk-W5QLA6WP.cjs +866 -0
  259. package/dist/chunk-WBU4Q4GS.cjs +400 -0
  260. package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
  261. package/dist/chunk-WJYFLQ7G.cjs +27 -0
  262. package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
  263. package/dist/{chunk-ZSPXQYG2.js → chunk-WNJXIACY.js} +7 -5
  264. package/dist/{chunk-AYS2ASM7.js → chunk-WPE2XHVX.js} +1 -1
  265. package/dist/chunk-WTB7AFL6.cjs +101 -0
  266. package/dist/{chunk-JYTDYJVW.js → chunk-X3TI5TJJ.js} +1 -1
  267. package/dist/chunk-X5P6QQOB.cjs +719 -0
  268. package/dist/{chunk-245KJE5Y.cjs → chunk-X7XMITIL.cjs} +14 -6
  269. package/dist/chunk-XF2WIKHR.cjs +34 -0
  270. package/dist/{chunk-DV2ZHK7B.cjs → chunk-XNIMSVS6.cjs} +49 -26
  271. package/dist/chunk-XW3XCK4E.cjs +59 -0
  272. package/dist/{chunk-N23UAW4I.js → chunk-XZVDYC5U.js} +7 -2
  273. package/dist/chunk-Y5BDE24P.cjs +444 -0
  274. package/dist/{chunk-NAGQ2PDC.js → chunk-YC5OBZQU.js} +1604 -433
  275. package/dist/chunk-YISPVAXO.cjs +2340 -0
  276. package/dist/{chunk-KQGPTCQJ.js → chunk-YQDI753V.js} +68 -25
  277. package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
  278. package/dist/{chunk-NNPAM4HC.cjs → chunk-YWH55BWK.cjs} +15 -6
  279. package/dist/{chunk-X2YOZQIP.cjs → chunk-YWTIXHU6.cjs} +266 -19
  280. package/dist/{chunk-XX2ZO7DS.js → chunk-YXM6SA7P.js} +25 -16
  281. package/dist/chunk-YZWE7XSM.js +5 -0
  282. package/dist/chunk-ZASDSY7P.cjs +114 -0
  283. package/dist/{chunk-2UC22DJU.js → chunk-ZNGRLCFQ.js} +30 -4
  284. package/dist/{chunk-KANW6OYC.cjs → chunk-ZNYZB7XY.cjs} +34 -8
  285. package/dist/{chunk-NA6WQDYW.js → chunk-ZPLCAXJW.js} +1088 -116
  286. package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
  287. package/dist/chunk-ZUYYHKQA.js +44 -0
  288. package/dist/clear-QJXU25IF.cjs +12 -0
  289. package/dist/{clear-A3N4GK2S.js → clear-Y5TO3RZA.js} +3 -3
  290. package/dist/communityInstaller-LXMVKVAV.cjs +22 -0
  291. package/dist/{communityInstaller-LOP2EDH5.js → communityInstaller-RVL4STPS.js} +8 -5
  292. package/dist/completion-JX4T2ONW.cjs +17 -0
  293. package/dist/completion-SE3XYG74.js +17 -0
  294. package/dist/config-3224PRW4.cjs +21 -0
  295. package/dist/{config-HPJPKTO6.js → config-7KPHKFTP.js} +7 -4
  296. package/dist/{constants-LISJW3DD.js → constants-EJFAWJQI.js} +1 -1
  297. package/dist/constants-MCCGUU5F.cjs +21 -0
  298. package/dist/{defaultHooks-IHSJR2AX.cjs → defaultHooks-2V2CQL63.cjs} +25 -10
  299. package/dist/{defaultHooks-KUKHK3AG.js → defaultHooks-TMHDU3FS.js} +25 -10
  300. package/dist/export-BJVIDZC4.js +15 -0
  301. package/dist/export-KU4557HK.cjs +15 -0
  302. package/dist/feature-K3LG5IJP.cjs +14 -0
  303. package/dist/feature-V4JF5TNJ.js +14 -0
  304. package/dist/features-5OJTLKS7.js +23 -0
  305. package/dist/features-VCBJQXCX.cjs +23 -0
  306. package/dist/feedback-D4437VE4.js +18 -0
  307. package/dist/feedback-VZPEHGFY.cjs +18 -0
  308. package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
  309. package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
  310. package/dist/{filesystem-Z7BWAWMZ.js → filesystem-L6DQKGWK.js} +3 -2
  311. package/dist/filesystem-PGUPCMVK.cjs +11 -0
  312. package/dist/go-X4E6BCD6.js +12 -0
  313. package/dist/go-XREVFS5I.cjs +12 -0
  314. package/dist/goal-4M3J6JS2.cjs +16 -0
  315. package/dist/goal-EI66BV7W.js +16 -0
  316. package/dist/help-GGFS7WHY.cjs +12 -0
  317. package/dist/{help-GFQXNZOK.js → help-MLIROWKM.js} +2 -2
  318. package/dist/{history-E3N6BJP7.js → history-GQJ6RZD6.js} +2 -2
  319. package/dist/history-J4LUIOSI.cjs +14 -0
  320. package/dist/hooks-FSRIUS6A.cjs +18 -0
  321. package/dist/hooks-PPFHCF7T.js +18 -0
  322. package/dist/i18n-CI6VFXL5.cjs +33 -0
  323. package/dist/{i18n-SY7QRM22.js → i18n-Q7UZJRPL.js} +1 -1
  324. package/dist/ide-BUSVE54P.js +15 -0
  325. package/dist/ide-YR27BPGM.cjs +15 -0
  326. package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
  327. package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
  328. package/dist/{import-W7SVLSTC.js → import-3VBKI6BN.js} +3 -3
  329. package/dist/{import-ADI37ZUR.cjs → import-C7S6UJMW.cjs} +3 -3
  330. package/dist/import-DBK4OCDF.cjs +10 -0
  331. package/dist/{import-KGKKZ3B7.js → import-U47DXCA7.js} +2 -2
  332. package/dist/index.cjs +837 -23011
  333. package/dist/index.d.cts +95 -0
  334. package/dist/index.d.ts +95 -0
  335. package/dist/index.js +864 -23038
  336. package/dist/init-OXTYS72D.cjs +10 -0
  337. package/dist/{init-7MFK626E.js → init-Q2O4R42R.js} +2 -2
  338. package/dist/inkMode-VUE6ZDLD.cjs +7 -0
  339. package/dist/inkMode-WBNFOSAT.js +7 -0
  340. package/dist/inputPrompt-3CFZDUBH.js +90 -0
  341. package/dist/inputPrompt-JMACL4EB.cjs +90 -0
  342. package/dist/language-EK3M6UBV.cjs +22 -0
  343. package/dist/language-Q3RUGGOW.js +22 -0
  344. package/dist/learn-3DSX7DYG.cjs +23 -0
  345. package/dist/learn-OPOH5L43.js +23 -0
  346. package/dist/login-GST7MWXJ.cjs +27 -0
  347. package/dist/login-Q7DZKAX4.js +27 -0
  348. package/dist/logout-2G7OUK7I.cjs +24 -0
  349. package/dist/logout-FNBBL2UI.js +24 -0
  350. package/dist/mcp-AH3MMUBU.js +21 -0
  351. package/dist/mcp-DW7R63IB.cjs +21 -0
  352. package/dist/{mcp-install-2FEROZTL.js → mcp-install-222PCKSW.js} +18 -10
  353. package/dist/{mcp-install-WM6BQRI5.cjs → mcp-install-IA4ZS2SV.cjs} +22 -14
  354. package/dist/memory-6NX3DAIY.cjs +10 -0
  355. package/dist/{memory-J73WZH2I.js → memory-VB46T5H3.js} +2 -2
  356. package/dist/model-64NAELFS.cjs +10 -0
  357. package/dist/{model-AES267IN.js → model-SJJG64AM.js} +2 -2
  358. package/dist/new-DU5SOOOY.cjs +12 -0
  359. package/dist/{new-5CLF3MKH.js → new-ERZ5C6CN.js} +3 -3
  360. package/dist/onboarding-2U2BV2KE.cjs +36 -0
  361. package/dist/onboarding-ZQXMPSMJ.js +36 -0
  362. package/dist/permissions-7ACNFK7A.js +10 -0
  363. package/dist/permissions-GSNNV7RJ.cjs +10 -0
  364. package/dist/plan-XEJMOT55.cjs +13 -0
  365. package/dist/{plan-65HMS5HQ.js → plan-YYUAXPTL.js} +3 -1
  366. package/dist/pr-review-CW6J7P62.cjs +9 -0
  367. package/dist/pr-review-YZSBQVT2.js +9 -0
  368. package/dist/{quit-XDZYRSPU.js → quit-WY6T267G.js} +2 -2
  369. package/dist/quit-XIRE2KRE.cjs +10 -0
  370. package/dist/rawMode-6W5AXAKI.cjs +7 -0
  371. package/dist/rawMode-GFNLXQPU.js +7 -0
  372. package/dist/{registry-PTHWERKC.js → registry-4DXUDKJN.js} +29 -44
  373. package/dist/{registry-IVT4G2RT.cjs → registry-UEO3ETZ7.cjs} +65 -80
  374. package/dist/repeat-P4FAPE3Y.cjs +17 -0
  375. package/dist/{repeat-EVCWUL6Z.js → repeat-RALE6AUO.js} +7 -3
  376. package/dist/resume-RQZ3WXBP.cjs +17 -0
  377. package/dist/resume-XSXZMDMD.js +17 -0
  378. package/dist/review-QHP2KP4Q.js +9 -0
  379. package/dist/review-UWHWQHCB.cjs +9 -0
  380. package/dist/ripgrep-67SCU2BA.cjs +9 -0
  381. package/dist/ripgrep-VHJQQ55W.js +9 -0
  382. package/dist/rpc-XH7QLN4H.js +3874 -0
  383. package/dist/rpc-YF54T7JU.cjs +3874 -0
  384. package/dist/search-VXXFGZWU.cjs +21 -0
  385. package/dist/search-YAWGX7P7.js +21 -0
  386. package/dist/{sessions-6GWEBMKS.js → sessions-NJYHJOEL.js} +2 -2
  387. package/dist/sessions-OSG3UJEZ.cjs +10 -0
  388. package/dist/settings-SO2UIGWV.cjs +42 -0
  389. package/dist/settings-ZXUQH3DO.js +42 -0
  390. package/dist/setup-KG7EGKF5.js +30 -0
  391. package/dist/setup-RSOPCQ57.cjs +30 -0
  392. package/dist/share-WFAGZ5PY.js +17 -0
  393. package/dist/share-ZU3SGACF.cjs +17 -0
  394. package/dist/skills-KBVAQAD2.cjs +29 -0
  395. package/dist/skills-NBTNDVAY.js +29 -0
  396. package/dist/{skills-ZZCIAS7C.js → skills-OB6RDW7D.js} +10 -7
  397. package/dist/{skills-PG542VEB.cjs → skills-ZROBG3RZ.cjs} +13 -10
  398. package/dist/{skills-install-SRC3Z2MS.js → skills-install-BHTIEMKH.js} +21 -70
  399. package/dist/{skills-install-67DOBPJC.cjs → skills-install-ILX6QVEF.cjs} +34 -83
  400. package/dist/skills-new-B45VQ2PP.cjs +18 -0
  401. package/dist/skills-new-YMRP2HNO.js +18 -0
  402. package/dist/slashCommands-53VYIBJU.js +105 -0
  403. package/dist/slashCommands-BG2RGGZ6.cjs +105 -0
  404. package/dist/status-CQ2IUOVK.cjs +24 -0
  405. package/dist/status-E7IGNVPC.js +24 -0
  406. package/dist/summarizer-DGPHE5IQ.js +17 -0
  407. package/dist/summarizer-JNXLUAQG.cjs +17 -0
  408. package/dist/sync-7C25MOT2.js +22 -0
  409. package/dist/{sync-VU2NSJ4O.js → sync-OCJN4ZSO.js} +3 -3
  410. package/dist/sync-XRP46IVG.cjs +40 -0
  411. package/dist/sync-ZMFVE7T4.cjs +22 -0
  412. package/dist/{teammate-SXRVXNQV.cjs → teammate-D77B6QRT.cjs} +31 -9
  413. package/dist/{teammate-SD26GR37.js → teammate-EZCMHOIL.js} +30 -8
  414. package/dist/templates-ARG2VRWW.cjs +11 -0
  415. package/dist/templates-UGVZV3KJ.js +11 -0
  416. package/dist/theme-KKRDE6P7.cjs +22 -0
  417. package/dist/theme-XF7XIWBQ.js +22 -0
  418. package/dist/tools-3PPTTKFV.js +9 -0
  419. package/dist/tools-THIQA7WC.cjs +9 -0
  420. package/dist/ui/questionModal.cjs +8 -5
  421. package/dist/ui/questionModal.js +7 -4
  422. package/dist/{undo-OL2EDBRY.js → undo-GNUTFXCW.js} +2 -2
  423. package/dist/undo-U4KN7QQM.cjs +10 -0
  424. package/dist/usage-QSTNSDAO.js +24 -0
  425. package/dist/usage-YDEMQBNQ.cjs +24 -0
  426. package/dist/web-3BA2WV37.cjs +37 -0
  427. package/dist/web-6FYGBX5K.js +37 -0
  428. package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
  429. package/dist/workspaceSafety-XOUMUBVB.js +9 -0
  430. package/dist/yolo-GF2YD7ZI.js +9 -0
  431. package/dist/yolo-OGDA7HNC.cjs +9 -0
  432. package/dist/yoloMode-3DJDA75U.cjs +17 -0
  433. package/dist/yoloMode-4JOOSU26.js +17 -0
  434. package/package.json +51 -49
  435. package/dist/AgentRegistry-HRPN6ZOF.cjs +0 -10
  436. package/dist/CommunitySkillsCache-KE435RAR.cjs +0 -8
  437. package/dist/GitHubRegistryFetcher-I45SESIL.cjs +0 -7
  438. package/dist/LearnAdvisor-FLBA6FDD.js +0 -9
  439. package/dist/LearnAdvisor-GG3CXQF3.cjs +0 -9
  440. package/dist/MemoryManager-2LQPIYVE.cjs +0 -8
  441. package/dist/PermissionManager-X57BXHJ6.cjs +0 -11
  442. package/dist/ProviderFactory-KPJOGQWF.cjs +0 -9
  443. package/dist/SessionManager-YBJAZXNO.cjs +0 -10
  444. package/dist/SkillsRegistry-7O72A6TZ.cjs +0 -9
  445. package/dist/SubAgent-JT4HZHN7.js +0 -11
  446. package/dist/SubAgent-VPNYDWAU.cjs +0 -11
  447. package/dist/SyncApiClient-HQXJL5BT.cjs +0 -11
  448. package/dist/about-4DB5KTHW.js +0 -12
  449. package/dist/about-LXAOXZFT.cjs +0 -12
  450. package/dist/actionExecutor-23JB2WUC.js +0 -19
  451. package/dist/actionExecutor-X5UEZSKH.cjs +0 -19
  452. package/dist/add-dir-YC37DMSF.cjs +0 -10
  453. package/dist/agents-YF3BSUU5.js +0 -12
  454. package/dist/agents-ZOUHPMYR.cjs +0 -12
  455. package/dist/agents-new-HSH4GQPG.js +0 -14
  456. package/dist/agents-new-VYUDOCE7.cjs +0 -14
  457. package/dist/autoSkill-X5W52WOE.cjs +0 -20
  458. package/dist/automode-SJGM7VEI.cjs +0 -10
  459. package/dist/chunk-ALYU6VTM.js +0 -105
  460. package/dist/chunk-B53A2NM2.js +0 -2030
  461. package/dist/chunk-BJXSNT46.js +0 -100
  462. package/dist/chunk-CB4E2T5N.cjs +0 -312
  463. package/dist/chunk-DNUOXBHL.js +0 -539
  464. package/dist/chunk-EFX2QSZX.cjs +0 -33
  465. package/dist/chunk-GCXYXLRA.cjs +0 -111
  466. package/dist/chunk-H2ZRHQQV.js +0 -33
  467. package/dist/chunk-HNRPK5MY.cjs +0 -85
  468. package/dist/chunk-HVKOZ2VP.cjs +0 -115
  469. package/dist/chunk-JJLYWH5Y.cjs +0 -100
  470. package/dist/chunk-LWUJFGOZ.js +0 -115
  471. package/dist/chunk-MERYP6AM.cjs +0 -539
  472. package/dist/chunk-MZAPWNAC.cjs +0 -207
  473. package/dist/chunk-NTSDP2WB.js +0 -226
  474. package/dist/chunk-OUZQXMHL.cjs +0 -226
  475. package/dist/chunk-PGESAU2W.cjs +0 -2030
  476. package/dist/chunk-SYVYLZZF.cjs +0 -24
  477. package/dist/chunk-SZOLA6FR.js +0 -111
  478. package/dist/chunk-VWDHR4HV.js +0 -168
  479. package/dist/chunk-Y45G6ZO5.cjs +0 -168
  480. package/dist/chunk-YRLYSQEQ.cjs +0 -105
  481. package/dist/chunk-ZYVS43MU.js +0 -312
  482. package/dist/clear-GK4IEUUS.cjs +0 -12
  483. package/dist/communityInstaller-XXC7RLE4.cjs +0 -19
  484. package/dist/completion-HWABSAEL.js +0 -14
  485. package/dist/completion-IUUVQG4D.cjs +0 -14
  486. package/dist/config-HF7WOLZF.cjs +0 -18
  487. package/dist/constants-PEO3P2SJ.cjs +0 -21
  488. package/dist/export-QJAV2FCZ.js +0 -12
  489. package/dist/export-XSRFXGWU.cjs +0 -12
  490. package/dist/feedback-4TCIL3ML.cjs +0 -15
  491. package/dist/feedback-SJ6VVEY3.js +0 -15
  492. package/dist/filesystem-W56QZUJF.cjs +0 -10
  493. package/dist/help-ISBVQL3S.cjs +0 -12
  494. package/dist/history-XQ4GTSFU.cjs +0 -14
  495. package/dist/hooks-CJNKJ5PF.js +0 -13
  496. package/dist/hooks-UTMBTAXT.cjs +0 -13
  497. package/dist/i18n-N7QQ7A5M.cjs +0 -33
  498. package/dist/ide-RTA4UJV4.js +0 -12
  499. package/dist/ide-VWVOLIFF.cjs +0 -12
  500. package/dist/immediateCommandRouter-BW34JNXL.js +0 -9
  501. package/dist/immediateCommandRouter-SHOVNB5X.cjs +0 -9
  502. package/dist/import-ZLJVONXH.cjs +0 -10
  503. package/dist/init-TBKAB4LZ.cjs +0 -10
  504. package/dist/language-MDSHEXHB.cjs +0 -18
  505. package/dist/language-PXTQSHIG.js +0 -18
  506. package/dist/learn-623TW5EK.cjs +0 -20
  507. package/dist/learn-BCPV7GM2.js +0 -20
  508. package/dist/localProjectPermissions-BHQXEWZJ.cjs +0 -18
  509. package/dist/localProjectPermissions-GMOUYQM6.js +0 -18
  510. package/dist/login-QMVEETWJ.js +0 -20
  511. package/dist/login-QYMXAL3K.cjs +0 -20
  512. package/dist/logout-2CMTDAOJ.js +0 -18
  513. package/dist/logout-ZOHVZAUK.cjs +0 -18
  514. package/dist/mcp-IUVKK65S.js +0 -18
  515. package/dist/mcp-TXC7PYG3.cjs +0 -18
  516. package/dist/memory-WRIHDEPK.cjs +0 -10
  517. package/dist/model-RLP75SF5.cjs +0 -10
  518. package/dist/new-HLSFL6A4.cjs +0 -12
  519. package/dist/permissions-GP6FTGZ2.js +0 -13
  520. package/dist/permissions-O6EKKPOG.cjs +0 -13
  521. package/dist/plan-MCAXDIM2.cjs +0 -11
  522. package/dist/quit-TQX6GXA5.cjs +0 -10
  523. package/dist/repeat-BSPS5TWD.cjs +0 -13
  524. package/dist/resume-2GOPDLL4.cjs +0 -13
  525. package/dist/resume-37IUVDA6.js +0 -13
  526. package/dist/search-7KUSHIBL.cjs +0 -17
  527. package/dist/search-OJGDRIMA.js +0 -17
  528. package/dist/sessions-CYYCHSQG.cjs +0 -10
  529. package/dist/settings-2D7CAO66.cjs +0 -30
  530. package/dist/settings-BXR6SBJP.js +0 -30
  531. package/dist/share-BXQY5IQU.js +0 -14
  532. package/dist/share-OSFXZBGS.cjs +0 -14
  533. package/dist/skills-FL6O6AOM.cjs +0 -26
  534. package/dist/skills-PNKQZRNK.js +0 -26
  535. package/dist/skills-new-XFMEHHIF.cjs +0 -15
  536. package/dist/skills-new-ZNZPHUKS.js +0 -15
  537. package/dist/slashCommands-LLCNPK3X.js +0 -76
  538. package/dist/slashCommands-RXZZS6RE.cjs +0 -76
  539. package/dist/status-BCECUJXT.cjs +0 -11
  540. package/dist/status-EFO7MQU3.js +0 -11
  541. package/dist/sync-IJYJ6KKM.js +0 -18
  542. package/dist/sync-LFT6SBPF.cjs +0 -18
  543. package/dist/sync-U7SDPBNZ.cjs +0 -40
  544. package/dist/theme-AWBHSG7J.cjs +0 -18
  545. package/dist/theme-TQLBPJ2E.js +0 -18
  546. package/dist/undo-IBBGP7A2.cjs +0 -10
@@ -2,21 +2,27 @@ import {
2
2
  normalizeMcpCommandForConfig
3
3
  } from "./chunk-WQ3VJXZB.js";
4
4
  import {
5
- I18nProvider
6
- } from "./chunk-SLQAYV3W.js";
5
+ I18nProvider,
6
+ inkRenderOptions
7
+ } from "./chunk-HZWU6IO3.js";
7
8
  import {
8
9
  loadConfig,
9
10
  saveConfig
10
- } from "./chunk-ZYVS43MU.js";
11
+ } from "./chunk-IEPLQ47J.js";
12
+ import {
13
+ ThemeProvider,
14
+ useTheme
15
+ } from "./chunk-NBGOIFKP.js";
11
16
  import {
12
17
  PROJECT_DIR_NAME
13
- } from "./chunk-EGFT4PGW.js";
18
+ } from "./chunk-SHRLFX6F.js";
14
19
  import {
15
20
  t
16
- } from "./chunk-APIXPPMT.js";
21
+ } from "./chunk-LEZEWKPA.js";
17
22
 
18
23
  // src/commands/mcp.ts
19
24
  import chalk from "chalk";
25
+ import fs from "fs-extra";
20
26
  import path from "path";
21
27
 
22
28
  // src/ui/ink/components/McpServerList.tsx
@@ -24,6 +30,7 @@ import { useState, useCallback } from "react";
24
30
  import { Box, Text, useInput, render } from "ink";
25
31
  import { jsx, jsxs } from "react/jsx-runtime";
26
32
  function McpServerList({ servers, onToggle, onDone }) {
33
+ const { theme } = useTheme();
27
34
  const [cursor, setCursor] = useState(0);
28
35
  const [toggling, setToggling] = useState(null);
29
36
  const handleToggle = useCallback(async () => {
@@ -53,60 +60,41 @@ function McpServerList({ servers, onToggle, onDone }) {
53
60
  });
54
61
  if (servers.length === 0) {
55
62
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", paddingX: 1, children: [
56
- /* @__PURE__ */ jsx(Text, { color: "cyan", bold: true, children: "MCP Servers" }),
63
+ /* @__PURE__ */ jsx(Text, { bold: true, children: theme.fg("accent", "MCP Servers") }),
57
64
  /* @__PURE__ */ jsx(Text, { children: " " }),
58
- /* @__PURE__ */ jsx(Text, { color: "gray", children: "No MCP servers configured." }),
65
+ /* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "No MCP servers configured.") }),
59
66
  /* @__PURE__ */ jsx(Text, { children: " " }),
60
- /* @__PURE__ */ jsxs(Text, { color: "gray", children: [
61
- "Add a server: /mcp add ",
62
- "<name>",
63
- " ",
64
- "<command>",
65
- " [args...]"
66
- ] }),
67
- /* @__PURE__ */ jsx(Text, { color: "gray", children: "Browse: /mcp install" }),
67
+ /* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "Add a server: /mcp add <name> <command> [args...]") }),
68
+ /* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "Browse: /mcp install") }),
68
69
  /* @__PURE__ */ jsx(Text, { children: " " }),
69
- /* @__PURE__ */ jsx(Text, { color: "gray", children: "Press ESC or q to close" })
70
+ /* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "Press ESC or q to close") })
70
71
  ] });
71
72
  }
72
73
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", paddingX: 1, children: [
73
- /* @__PURE__ */ jsx(Text, { color: "cyan", bold: true, children: "MCP Servers" }),
74
- /* @__PURE__ */ jsx(Box, { marginBottom: 1, children: /* @__PURE__ */ jsx(Text, { color: "gray", children: "\u2500".repeat(56) }) }),
74
+ /* @__PURE__ */ jsx(Text, { bold: true, children: theme.fg("accent", "MCP Servers") }),
75
+ /* @__PURE__ */ jsx(Box, { marginBottom: 1, children: /* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "\u2500".repeat(56)) }) }),
75
76
  servers.map((server, i) => {
76
77
  const isSelected = i === cursor;
77
78
  const isToggling = toggling === server.name;
78
79
  const statusIcon = server.status === "connected" ? "\u25CF" : server.status === "error" ? "\u25CF" : "\u25CB";
79
- const statusColor = server.status === "connected" ? "green" : server.status === "error" ? "red" : "gray";
80
+ const statusToken = server.status === "connected" ? "success" : server.status === "error" ? "error" : "muted";
80
81
  const statusLabel = server.status === "connected" ? "enabled" : server.status === "error" ? "error" : "disabled";
81
82
  const toolsInfo = server.status === "connected" && server.toolCount > 0 ? ` (${server.toolCount} tools)` : "";
82
83
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
83
84
  /* @__PURE__ */ jsxs(Box, { children: [
84
- /* @__PURE__ */ jsx(Text, { color: isSelected ? "yellow" : void 0, children: isSelected ? "\u25B8 " : " " }),
85
- /* @__PURE__ */ jsxs(Text, { color: statusColor, children: [
86
- statusIcon,
87
- " "
88
- ] }),
85
+ /* @__PURE__ */ jsx(Text, { children: theme.fg(isSelected ? "warning" : "muted", isSelected ? "\u25B8 " : " ") }),
86
+ /* @__PURE__ */ jsx(Text, { children: theme.fg(statusToken, `${statusIcon} `) }),
89
87
  /* @__PURE__ */ jsx(Text, { bold: isSelected, children: server.name.padEnd(24) }),
90
- /* @__PURE__ */ jsx(Text, { color: statusColor, children: isToggling ? "toggling..." : statusLabel }),
91
- /* @__PURE__ */ jsx(Text, { color: "gray", children: toolsInfo })
88
+ /* @__PURE__ */ jsx(Text, { children: theme.fg(statusToken, isToggling ? "toggling..." : statusLabel) }),
89
+ /* @__PURE__ */ jsx(Text, { children: theme.fg("muted", toolsInfo) })
92
90
  ] }),
93
- isSelected && server.status === "error" && server.error && /* @__PURE__ */ jsx(Box, { marginLeft: 4, children: /* @__PURE__ */ jsxs(Text, { color: "red", dimColor: true, children: [
94
- " ",
95
- server.error
96
- ] }) })
91
+ isSelected && server.status === "error" && server.error && /* @__PURE__ */ jsx(Box, { marginLeft: 4, children: /* @__PURE__ */ jsx(Text, { children: theme.fg("error", ` ${server.error}`) }) })
97
92
  ] }, server.name);
98
93
  }),
99
94
  /* @__PURE__ */ jsx(Text, { children: " " }),
100
95
  /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
101
- /* @__PURE__ */ jsxs(Text, { color: "gray", children: [
102
- "\u2191\u2193",
103
- " navigate ",
104
- "\u23CE/space",
105
- " toggle ",
106
- "q/esc",
107
- " close"
108
- ] }),
109
- /* @__PURE__ */ jsx(Text, { color: "gray", children: "Connected servers provide tools to the agent" })
96
+ /* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "\u2191\u2193 navigate \u23CE/space toggle q/esc close") }),
97
+ /* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "Connected servers provide tools to the agent") })
110
98
  ] })
111
99
  ] });
112
100
  }
@@ -119,14 +107,14 @@ async function showMcpServerList(options) {
119
107
  let completed = false;
120
108
  let instance;
121
109
  const renderList = () => {
122
- const element = /* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(
110
+ const element = /* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(
123
111
  McpServerList,
124
112
  {
125
113
  servers: currentServers,
126
114
  onToggle: async (name, status) => {
127
115
  currentServers = await options.onToggle(name, status);
128
116
  instance.rerender(
129
- /* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(
117
+ /* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(
130
118
  McpServerList,
131
119
  {
132
120
  servers: currentServers,
@@ -141,7 +129,7 @@ async function showMcpServerList(options) {
141
129
  resolve();
142
130
  }
143
131
  }
144
- ) })
132
+ ) }) })
145
133
  );
146
134
  },
147
135
  onDone: () => {
@@ -151,11 +139,16 @@ async function showMcpServerList(options) {
151
139
  resolve();
152
140
  }
153
141
  }
154
- ) });
142
+ ) }) });
155
143
  if (instance) {
156
144
  instance.rerender(element);
157
145
  } else {
158
- instance = render(element, { exitOnCtrlC: false });
146
+ instance = render(element, inkRenderOptions({
147
+ stdin: process.stdin,
148
+ stdout: process.stdout,
149
+ stderr: process.stderr,
150
+ exitOnCtrlC: false
151
+ }));
159
152
  }
160
153
  };
161
154
  renderList();
@@ -181,8 +174,15 @@ async function loadConfigForScope(scopeInput, workspaceRoot) {
181
174
  if (!workspaceRoot) {
182
175
  throw new Error("Workspace root is required for project scope.");
183
176
  }
184
- const projectConfigPath = path.join(workspaceRoot, PROJECT_DIR_NAME, "config.json");
185
- return { config: await loadConfig(projectConfigPath), scope };
177
+ const projectConfigDir = path.join(workspaceRoot, PROJECT_DIR_NAME);
178
+ const candidates = ["config.toml", "config.yaml", "config.yml", "config.json"].map(
179
+ (file) => path.join(projectConfigDir, file)
180
+ );
181
+ const existing = await Promise.all(candidates.map(
182
+ async (candidate) => await fs.pathExists(candidate) ? candidate : null
183
+ ));
184
+ const projectConfigPath = existing.find((candidate) => Boolean(candidate)) ?? path.join(projectConfigDir, "config.json");
185
+ return { config: await loadConfig(projectConfigPath, workspaceRoot), scope };
186
186
  }
187
187
  function syncRuntimeConfig(runtimeConfig, updatedConfig) {
188
188
  if (!runtimeConfig) return;
@@ -556,7 +556,8 @@ var metadata = {
556
556
  { name: "disconnect", description: "Disconnect from a server" },
557
557
  { name: "list", description: "List available tools from servers" },
558
558
  { name: "add", description: "Add a server to config" },
559
- { name: "remove", description: "Remove a server from config" }
559
+ { name: "remove", description: "Remove a server from config" },
560
+ { name: "install", description: t("commands.mcp.installDescription") }
560
561
  ]
561
562
  };
562
563
  var installMetadata = {
@@ -1,7 +1,10 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/ui/theme/Theme.ts
2
- var Theme = class {
3
- constructor(name, colors, colorMode) {
4
- this.ansiCache = /* @__PURE__ */ new Map();
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } var _class;// src/ui/theme/Theme.ts
2
+ var Theme = (_class = class {
3
+
4
+
5
+
6
+ __init() {this.ansiCache = /* @__PURE__ */ new Map()}
7
+ constructor(name, colors, colorMode) {;_class.prototype.__init.call(this);
5
8
  this.name = name;
6
9
  this.colors = colors;
7
10
  this.colorMode = _nullishCoalesce(colorMode, () => ( detectColorMode()));
@@ -143,7 +146,7 @@ var Theme = class {
143
146
  }
144
147
  return "";
145
148
  }
146
- };
149
+ }, _class);
147
150
  function detectColorMode() {
148
151
  if (process.env.NO_COLOR !== void 0) {
149
152
  return "none";
@@ -221,14 +224,27 @@ function index256To16(index) {
221
224
  return rgbTo16(r, g, b);
222
225
  }
223
226
  var globalTheme = null;
227
+ var themeListeners = /* @__PURE__ */ new Set();
224
228
  function getTheme() {
225
229
  if (!globalTheme) {
226
230
  throw new Error("Theme not initialized. Call initTheme() first.");
227
231
  }
228
232
  return globalTheme;
229
233
  }
234
+ function getThemeSnapshot() {
235
+ return globalTheme;
236
+ }
237
+ function subscribeThemeChanges(listener) {
238
+ themeListeners.add(listener);
239
+ return () => {
240
+ themeListeners.delete(listener);
241
+ };
242
+ }
230
243
  function setTheme(theme) {
231
244
  globalTheme = theme;
245
+ for (const listener of themeListeners) {
246
+ listener();
247
+ }
232
248
  }
233
249
  function isThemeInitialized() {
234
250
  return globalTheme !== null;
@@ -252,7 +268,9 @@ function themedFg(token, text, fallback) {
252
268
 
253
269
 
254
270
 
255
- exports.Theme = Theme; exports.detectColorMode = detectColorMode; exports.hexToRgb = hexToRgb; exports.getTheme = getTheme; exports.setTheme = setTheme; exports.isThemeInitialized = isThemeInitialized; exports.themedFg = themedFg;
271
+
272
+
273
+ exports.Theme = Theme; exports.detectColorMode = detectColorMode; exports.hexToRgb = hexToRgb; exports.getTheme = getTheme; exports.getThemeSnapshot = getThemeSnapshot; exports.subscribeThemeChanges = subscribeThemeChanges; exports.setTheme = setTheme; exports.isThemeInitialized = isThemeInitialized; exports.themedFg = themedFg;
256
274
  /**
257
275
  * @license
258
276
  * Copyright 2025 Autohand AI LLC
@@ -0,0 +1,5 @@
1
+ "use strict";/**
2
+ * @license
3
+ * Copyright 2025 Autohand AI LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkOLSBBZW6cjs = require('./chunk-OLSBBZW6.cjs');
3
+ var _chunkS5JNQIGLcjs = require('./chunk-S5JNQIGL.cjs');
4
4
 
5
5
 
6
- var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
6
+ var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
7
7
 
8
8
  // src/commands/agents-new.ts
9
9
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
@@ -16,7 +16,7 @@ var metadata = {
16
16
  prd: "prd/sub_agents_architecture.md"
17
17
  };
18
18
  async function createAgent(ctx) {
19
- const answers = await _chunkOLSBBZW6cjs.safePrompt.call(void 0, [
19
+ const answers = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, [
20
20
  {
21
21
  type: "input",
22
22
  name: "name",
@@ -83,7 +83,7 @@ function buildPrompt(name, description) {
83
83
  ].filter(Boolean).join("\n");
84
84
  }
85
85
  function getAgentsDir() {
86
- return _chunkSEKD5FH3cjs.AUTOHAND_PATHS.agents;
86
+ return _chunkKASXKDF2cjs.AUTOHAND_PATHS.agents;
87
87
  }
88
88
  function slugify(input) {
89
89
  return input.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "agent";
@@ -0,0 +1,197 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/providers/errors.ts
2
+ var ApiError = class extends Error {
3
+
4
+
5
+
6
+
7
+
8
+ constructor(message, code, httpStatus, retryable, retryAfterMs, rawDetail) {
9
+ super(message);
10
+ this.name = "ApiError";
11
+ this.code = code;
12
+ this.httpStatus = httpStatus;
13
+ this.retryable = retryable;
14
+ this.retryAfterMs = retryAfterMs;
15
+ this.rawDetail = rawDetail;
16
+ }
17
+ };
18
+ var FRIENDLY_MESSAGES = {
19
+ context_overflow: "The conversation is too long for this model. Try /undo to remove recent turns or /new to start fresh.",
20
+ model_not_found: "The requested model was not found. Use /model to select a different one.",
21
+ invalid_request: "The request was malformed and could not be processed.",
22
+ auth_failed: "Authentication failed. Please verify your API key in ~/.autohand/config.json.",
23
+ payment_required: "Payment required. Please check your account balance or billing settings.",
24
+ access_denied: "Access denied. Your API key may not have permission for this model.",
25
+ rate_limited: "Rate limit exceeded. Please wait a moment and try again, or choose a different model.",
26
+ server_error: "The AI service encountered an error. Please try again later.",
27
+ network_error: "Unable to connect to the AI service. Please check your internet connection.",
28
+ timeout: "The request timed out. The AI service may be experiencing high load.",
29
+ cancelled: "Request cancelled.",
30
+ unknown: "An unexpected error occurred. Please try again."
31
+ };
32
+ var MODEL_NOT_FOUND_PATTERNS = [
33
+ "invalid model",
34
+ "model does not exist",
35
+ "model not found",
36
+ "no endpoints found for model",
37
+ "does not exist or you do not have access",
38
+ // OpenRouter returns "X is not a valid model ID" for bad model names
39
+ "is not a valid model",
40
+ // Catch "model 'xyz' not found" where 'not found' is separate from 'model'
41
+ "' not found",
42
+ '" not found'
43
+ ];
44
+ var CONTEXT_OVERFLOW_PATTERNS = [
45
+ "maximum context length",
46
+ "context length exceeded",
47
+ "context is too long",
48
+ "prompt is too long",
49
+ "reduce the length",
50
+ "payload too large",
51
+ "context window",
52
+ "token limit",
53
+ "tokens exceeds",
54
+ "too many tokens"
55
+ ];
56
+ var CANCEL_PATTERNS = [
57
+ "cancelled",
58
+ "canceled",
59
+ "aborted",
60
+ "user force closed"
61
+ ];
62
+ var NETWORK_PATTERNS = [
63
+ "econnrefused",
64
+ "econnreset",
65
+ "enotfound",
66
+ "etimedout",
67
+ "fetch failed",
68
+ "network",
69
+ "unable to connect"
70
+ ];
71
+ var TIMEOUT_PATTERNS = [
72
+ "timed out",
73
+ "timeout"
74
+ ];
75
+ function classifyApiError(httpStatus, errorBody, headers) {
76
+ const lower = errorBody.toLowerCase();
77
+ if (httpStatus === 401) {
78
+ return makeError("auth_failed", httpStatus, false, errorBody, headers);
79
+ }
80
+ if (httpStatus === 402) {
81
+ return makeError("payment_required", httpStatus, false, errorBody, headers);
82
+ }
83
+ if (httpStatus === 403) {
84
+ return makeError("access_denied", httpStatus, false, errorBody, headers);
85
+ }
86
+ if (httpStatus === 404) {
87
+ return makeError("model_not_found", httpStatus, false, errorBody, headers);
88
+ }
89
+ if (httpStatus === 429) {
90
+ return makeError("rate_limited", httpStatus, true, errorBody, headers);
91
+ }
92
+ if (httpStatus === 504) {
93
+ return makeError("timeout", httpStatus, true, errorBody, headers);
94
+ }
95
+ if (httpStatus >= 500) {
96
+ return makeError("server_error", httpStatus, true, errorBody, headers);
97
+ }
98
+ if (httpStatus === 400) {
99
+ if (matchesAny(lower, MODEL_NOT_FOUND_PATTERNS)) {
100
+ return makeError("model_not_found", httpStatus, false, errorBody, headers);
101
+ }
102
+ if (matchesAny(lower, CONTEXT_OVERFLOW_PATTERNS)) {
103
+ return makeError("context_overflow", httpStatus, true, errorBody, headers);
104
+ }
105
+ return makeError("invalid_request", httpStatus, false, errorBody, headers);
106
+ }
107
+ if (matchesAny(lower, CANCEL_PATTERNS)) {
108
+ return makeError("cancelled", httpStatus, false, errorBody, headers);
109
+ }
110
+ if (matchesAny(lower, TIMEOUT_PATTERNS)) {
111
+ return makeError("timeout", httpStatus, true, errorBody, headers);
112
+ }
113
+ if (matchesAny(lower, NETWORK_PATTERNS)) {
114
+ return makeError("network_error", httpStatus, true, errorBody, headers);
115
+ }
116
+ if (httpStatus === 0 || httpStatus === void 0) {
117
+ if (matchesAny(lower, MODEL_NOT_FOUND_PATTERNS)) {
118
+ return makeError("model_not_found", httpStatus, false, errorBody, headers);
119
+ }
120
+ if (matchesAny(lower, CONTEXT_OVERFLOW_PATTERNS)) {
121
+ return makeError("context_overflow", httpStatus, true, errorBody, headers);
122
+ }
123
+ }
124
+ return makeError("unknown", httpStatus, true, errorBody, headers);
125
+ }
126
+ function matchesAny(lower, patterns) {
127
+ return patterns.some((p) => lower.includes(p));
128
+ }
129
+ function stripHtmlFromBody(body) {
130
+ if (!/<[a-z/][\s\S]*>/i.test(body)) {
131
+ return body;
132
+ }
133
+ return body.replace(/<[^>]+>/g, " ").replace(/\s+/g, " ").trim();
134
+ }
135
+ function makeError(code, httpStatus, retryable, rawBody, headers) {
136
+ const friendlyMessage = FRIENDLY_MESSAGES[code];
137
+ const displayBody = rawBody ? stripHtmlFromBody(rawBody) : "";
138
+ const message = displayBody ? `${friendlyMessage}
139
+ ${displayBody}` : friendlyMessage;
140
+ const retryAfterMs = _nullishCoalesce(parseRetryAfter(headers), () => ( inferRetryAfterFromBody(code, rawBody)));
141
+ return new ApiError(message, code, httpStatus, retryable, retryAfterMs, rawBody);
142
+ }
143
+ function inferRetryAfterFromBody(code, rawBody) {
144
+ if (code !== "rate_limited") {
145
+ return void 0;
146
+ }
147
+ const rpmMatch = rawBody.match(/limited to\s+(\d+)\s+requests?\s+per\s+minute/i);
148
+ if (rpmMatch) {
149
+ const rpm = Number(rpmMatch[1]);
150
+ if (Number.isFinite(rpm) && rpm > 0) {
151
+ return Math.ceil(6e4 / rpm);
152
+ }
153
+ }
154
+ const secondsMatch = rawBody.match(/retry (?:after|in)\s+(\d+)\s+seconds?/i);
155
+ if (secondsMatch) {
156
+ const seconds = Number(secondsMatch[1]);
157
+ if (Number.isFinite(seconds) && seconds > 0) {
158
+ return seconds * 1e3;
159
+ }
160
+ }
161
+ return void 0;
162
+ }
163
+ function sanitizeModelId(raw) {
164
+ return raw.replace(/\x1b\[20[01]~/g, "").replace(/\[20[01]~/g, "").replace(/[\x00-\x1f\x7f]/g, "").trim();
165
+ }
166
+ function parseRetryAfter(headers) {
167
+ if (!headers) return void 0;
168
+ const value = headers.get("retry-after");
169
+ if (!value) return void 0;
170
+ const seconds = Number(value);
171
+ if (!Number.isNaN(seconds) && seconds > 0) {
172
+ return seconds * 1e3;
173
+ }
174
+ const dateMs = Date.parse(value);
175
+ if (!Number.isNaN(dateMs)) {
176
+ const delayMs = dateMs - Date.now();
177
+ return delayMs > 0 ? delayMs : void 0;
178
+ }
179
+ return void 0;
180
+ }
181
+
182
+
183
+
184
+
185
+
186
+ exports.ApiError = ApiError; exports.classifyApiError = classifyApiError; exports.sanitizeModelId = sanitizeModelId;
187
+ /**
188
+ * @license
189
+ * Copyright 2025 Autohand AI LLC
190
+ * SPDX-License-Identifier: Apache-2.0
191
+ *
192
+ * Centralized API error classification.
193
+ *
194
+ * Every provider (OpenRouter, Azure, MLX, Ollama, LLMGateway) and every
195
+ * consumer (agent.ts, RPC adapter, ACP adapter) delegates to this module
196
+ * so error handling logic lives in one place.
197
+ */
@@ -0,0 +1,93 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+ var _chunkNVATU4V6cjs = require('./chunk-NVATU4V6.cjs');
4
+
5
+
6
+ var _chunkLJD7KR3Lcjs = require('./chunk-LJD7KR3L.cjs');
7
+
8
+
9
+
10
+ var _chunkSD3NTC7Dcjs = require('./chunk-SD3NTC7D.cjs');
11
+
12
+
13
+ var _chunkAQ5PVHOCcjs = require('./chunk-AQ5PVHOC.cjs');
14
+
15
+
16
+ var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
17
+
18
+ // src/commands/about.ts
19
+ var _child_process = require('child_process');
20
+ var _terminallink = require('terminal-link'); var _terminallink2 = _interopRequireDefault(_terminallink);
21
+ function getCommitFromAlphaVersion(version) {
22
+ const match = version.match(/-alpha\.([0-9a-f]{7,40})$/i);
23
+ return _nullishCoalesce(_optionalChain([match, 'optionalAccess', _ => _[1]]), () => ( null));
24
+ }
25
+ function getGitCommit() {
26
+ if (true) {
27
+ return "da69f79";
28
+ }
29
+ const alphaCommit = getCommitFromAlphaVersion(_chunkAQ5PVHOCcjs.package_default.version);
30
+ if (alphaCommit) {
31
+ return alphaCommit;
32
+ }
33
+ try {
34
+ return _child_process.execSync.call(void 0, "git rev-parse --short HEAD", { encoding: "utf8", stdio: ["pipe", "pipe", "ignore"] }).trim();
35
+ } catch (e) {
36
+ return "unknown";
37
+ }
38
+ }
39
+ function getVersionString() {
40
+ const commit = getGitCommit();
41
+ return commit !== "unknown" ? `${_chunkAQ5PVHOCcjs.package_default.version} (${commit})` : _chunkAQ5PVHOCcjs.package_default.version;
42
+ }
43
+ async function about(ctx = {}) {
44
+ const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
45
+ const greetingName = _chunkNVATU4V6cjs.getUserGreetingName.call(void 0, ctx.config);
46
+ const terminalColumns = _nullishCoalesce(ctx.terminalColumns, () => ( _chunkSD3NTC7Dcjs.getTerminalColumns.call(void 0, process.stdout)));
47
+ const lines = [
48
+ theme.muted(_chunkSD3NTC7Dcjs.renderAutohandLogo.call(void 0, { columns: terminalColumns })),
49
+ "",
50
+ theme.accent(`${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.title")} v${getVersionString()}`),
51
+ theme.muted(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.subtitle")),
52
+ ""
53
+ ];
54
+ if (greetingName) {
55
+ lines.push(theme.text(`Hey ${greetingName}, here are a few suggestions for what you could do next:`));
56
+ lines.push(theme.text(` \u2022 Review model, context, and account usage: ${theme.accent("/usage")}`));
57
+ lines.push(theme.text(` \u2022 Check current session and runtime status: ${theme.accent("/status")}`));
58
+ lines.push(theme.text(` \u2022 Discover feature toggles available to you: ${theme.accent("/features")}`));
59
+ lines.push("");
60
+ }
61
+ const websiteUrl = "https://autohand.ai";
62
+ const githubUrl = "https://github.com/autohandai/";
63
+ const docsUrl = "https://docs.autohand.ai";
64
+ const websiteLink = _terminallink2.default.call(void 0, theme.link("autohand.ai"), websiteUrl);
65
+ const githubLink = _terminallink2.default.call(void 0, theme.link("github.com/autohandai/"), githubUrl);
66
+ const docsLink = _terminallink2.default.call(void 0, theme.link("docs.autohand.ai"), docsUrl);
67
+ lines.push(`${theme.text("\u{1F310}")} ${theme.text(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.website") + ":")} ${websiteLink}`);
68
+ lines.push(`${theme.text("\u{1F4E6}")} ${theme.text(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.github") + ":")} ${githubLink}`);
69
+ lines.push(`${theme.text("\u{1F4DA}")} ${theme.text(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.docs") + ":")} ${docsLink}`);
70
+ lines.push("");
71
+ lines.push(theme.text(`\u{1F4A1} ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.contribute")}`));
72
+ lines.push(theme.text(` \u2022 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.feedback")}: ${theme.accent("/feedback")}`));
73
+ lines.push(theme.text(` \u2022 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.submitPR")}: ${theme.accent("gh pr create")}`));
74
+ const issuesUrl = "https://github.com/autohandai/code-cli/issues";
75
+ const issuesLink = _terminallink2.default.call(void 0, theme.link("github.com/autohandai/code-cli/issues"), issuesUrl);
76
+ lines.push(theme.text(` \u2022 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.reportIssues")}: ${issuesLink}`));
77
+ return lines.join("\n");
78
+ }
79
+ var metadata = {
80
+ command: "/about",
81
+ description: "show information about Autohand",
82
+ implemented: true
83
+ };
84
+
85
+
86
+
87
+
88
+ exports.about = about; exports.metadata = metadata;
89
+ /**
90
+ * @license
91
+ * Copyright 2025 Autohand AI LLC
92
+ * SPDX-License-Identifier: Apache-2.0
93
+ */