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
@@ -0,0 +1,101 @@
1
+ // src/actions/command.ts
2
+ import { spawn } from "child_process";
3
+ import { isAbsolute, join } from "path";
4
+ function runCommand(cmd, args, cwd, options = {}) {
5
+ if (!cmd || typeof cmd !== "string") {
6
+ return Promise.reject(new Error("Command is required and must be a string"));
7
+ }
8
+ return new Promise((resolve, reject) => {
9
+ const workDir = options.directory ? isAbsolute(options.directory) ? options.directory : join(cwd, options.directory) : cwd;
10
+ const spawnOptions = {
11
+ cwd: workDir,
12
+ shell: options.shell ?? false,
13
+ env: {
14
+ ...process.env,
15
+ AUTOHAND_CLI: "1",
16
+ ...options.env
17
+ }
18
+ };
19
+ if (options.background) {
20
+ spawnOptions.detached = true;
21
+ spawnOptions.stdio = ["ignore", "pipe", "pipe"];
22
+ } else if (options.interactive) {
23
+ spawnOptions.stdio = "inherit";
24
+ }
25
+ let child;
26
+ try {
27
+ child = spawn(cmd, args, spawnOptions);
28
+ } catch (error) {
29
+ const err = error;
30
+ if (err.code === "ENOENT") {
31
+ reject(new Error(`Command not found: ${cmd}`));
32
+ } else {
33
+ reject(error);
34
+ }
35
+ return;
36
+ }
37
+ if (options.background) {
38
+ child.unref();
39
+ resolve({
40
+ stdout: "",
41
+ stderr: "",
42
+ code: null,
43
+ backgroundPid: child.pid,
44
+ signal: null
45
+ });
46
+ return;
47
+ }
48
+ if (options.interactive) {
49
+ child.once("error", (error) => {
50
+ if (error.code === "ENOENT") {
51
+ reject(new Error(`Command not found: ${cmd}`));
52
+ } else {
53
+ reject(error);
54
+ }
55
+ });
56
+ child.once("close", (code, signal) => {
57
+ resolve({ stdout: "", stderr: "", code, signal });
58
+ });
59
+ return;
60
+ }
61
+ let stdout = "";
62
+ let stderr = "";
63
+ let timeoutId;
64
+ if (options.timeout && options.timeout > 0) {
65
+ timeoutId = setTimeout(() => {
66
+ child.kill("SIGTERM");
67
+ }, options.timeout);
68
+ }
69
+ child.stdout?.on("data", (chunk) => {
70
+ const text = typeof chunk === "string" ? chunk : chunk.toString("utf8");
71
+ stdout += text;
72
+ options.onStdout?.(text);
73
+ });
74
+ child.stderr?.on("data", (chunk) => {
75
+ const text = typeof chunk === "string" ? chunk : chunk.toString("utf8");
76
+ stderr += text;
77
+ options.onStderr?.(text);
78
+ });
79
+ child.once("error", (error) => {
80
+ if (timeoutId) clearTimeout(timeoutId);
81
+ if (error.code === "ENOENT") {
82
+ reject(new Error(`Command not found: ${cmd}`));
83
+ } else {
84
+ reject(error);
85
+ }
86
+ });
87
+ child.once("close", (code, signal) => {
88
+ if (timeoutId) clearTimeout(timeoutId);
89
+ resolve({ stdout, stderr, code, signal });
90
+ });
91
+ });
92
+ }
93
+
94
+ export {
95
+ runCommand
96
+ };
97
+ /**
98
+ * @license
99
+ * Copyright 2025 Autohand AI LLC
100
+ * SPDX-License-Identifier: Apache-2.0
101
+ */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  t
3
- } from "./chunk-APIXPPMT.js";
3
+ } from "./chunk-LEZEWKPA.js";
4
4
 
5
5
  // src/commands/memory.ts
6
6
  import chalk from "chalk";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  t
3
- } from "./chunk-APIXPPMT.js";
3
+ } from "./chunk-LEZEWKPA.js";
4
4
 
5
5
  // src/commands/init.ts
6
6
  async function init(ctx) {
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-QHPFA6OE.js";
4
4
  import {
5
5
  PROJECT_DIR_NAME
6
- } from "./chunk-EGFT4PGW.js";
6
+ } from "./chunk-SHRLFX6F.js";
7
7
 
8
8
  // src/skills/SkillsRegistry.ts
9
9
  import fs2 from "fs-extra";
@@ -98,13 +98,15 @@ var VENDOR_SOURCES = ["codex-user", "claude-user", "codex-project", "claude-proj
98
98
  var SkillsRegistry = class {
99
99
  constructor(userSkillsDir, defaultSource = "autohand-user") {
100
100
  this.userSkillsDir = userSkillsDir;
101
- this.skills = /* @__PURE__ */ new Map();
102
- this.parser = new SkillParser();
103
- this.workspaceRoot = null;
104
- this.telemetryManager = null;
105
- this.communityClient = null;
106
101
  this.defaultSource = defaultSource;
107
102
  }
103
+ userSkillsDir;
104
+ skills = /* @__PURE__ */ new Map();
105
+ parser = new SkillParser();
106
+ workspaceRoot = null;
107
+ defaultSource;
108
+ telemetryManager = null;
109
+ communityClient = null;
108
110
  /**
109
111
  * Set the telemetry manager for tracking skill events
110
112
  */
@@ -1,12 +1,12 @@
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 _chunkCNBKZEX5cjs = require('./chunk-CNBKZEX5.cjs');
3
+ var _chunkDA7NBAJKcjs = require('./chunk-DA7NBAJK.cjs');
4
4
 
5
5
 
6
6
  var _chunkYFXTE422cjs = require('./chunk-YFXTE422.cjs');
7
7
 
8
8
 
9
- var _chunk7BTSG4MEcjs = require('./chunk-7BTSG4ME.cjs');
9
+ var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
10
10
 
11
11
  // src/commands/new.ts
12
12
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -16,7 +16,7 @@ async function newConversation(ctx) {
16
16
  sessionId: _nullishCoalesce(_optionalChain([ctx, 'access', _ => _.sessionManager, 'access', _2 => _2.getCurrentSession, 'call', _3 => _3(), 'optionalAccess', _4 => _4.metadata, 'access', _5 => _5.sessionId]), () => ( ""))
17
17
  });
18
18
  }
19
- const conversationHistory = _chunkCNBKZEX5cjs.ConversationManager.getInstance().history();
19
+ const conversationHistory = _chunkDA7NBAJKcjs.ConversationManager.getInstance().history();
20
20
  const saved = await _chunkYFXTE422cjs.extractAndSaveSessionMemories.call(void 0, {
21
21
  llm: ctx.llm,
22
22
  memoryManager: ctx.memoryManager,
@@ -29,6 +29,11 @@ async function newConversation(ctx) {
29
29
  }
30
30
  await ctx.resetConversation();
31
31
  await ctx.sessionManager.createSession(ctx.workspaceRoot, ctx.model);
32
+ if (ctx.clearScreen) {
33
+ ctx.clearScreen();
34
+ } else {
35
+ process.stdout.write("\x1B[2J\x1B[H");
36
+ }
32
37
  console.log();
33
38
  if (saved.length > 0) {
34
39
  console.log(
@@ -37,7 +42,7 @@ async function newConversation(ctx) {
37
42
  )
38
43
  );
39
44
  } else {
40
- console.log(_chalk2.default.cyan(_chunk7BTSG4MEcjs.t.call(void 0, "commands.new.cleared")));
45
+ console.log(_chalk2.default.cyan(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.new.cleared")));
41
46
  }
42
47
  console.log();
43
48
  return null;
@@ -0,0 +1,34 @@
1
+ // src/utils/ripgrep.ts
2
+ import fs from "fs";
3
+ import path from "path";
4
+ function getExecutableName() {
5
+ return process.platform === "win32" ? "rg.exe" : "rg";
6
+ }
7
+ function getBundledRipgrepPath() {
8
+ const executableName = getExecutableName();
9
+ const candidates = [
10
+ path.join(path.dirname(process.execPath), executableName)
11
+ ];
12
+ for (const candidate of candidates) {
13
+ try {
14
+ if (fs.existsSync(candidate)) {
15
+ return candidate;
16
+ }
17
+ } catch {
18
+ }
19
+ }
20
+ return null;
21
+ }
22
+ function resolveRipgrepCommand() {
23
+ return getBundledRipgrepPath() ?? "rg";
24
+ }
25
+
26
+ export {
27
+ getBundledRipgrepPath,
28
+ resolveRipgrepCommand
29
+ };
30
+ /**
31
+ * @license
32
+ * Copyright 2025 Autohand AI LLC
33
+ * SPDX-License-Identifier: Apache-2.0
34
+ */
@@ -0,0 +1,354 @@
1
+ // src/core/context/priority.ts
2
+ function extractMessageMetadata(message) {
3
+ const content = message.content ?? "";
4
+ const metadata = {};
5
+ const filePatterns = [
6
+ /(?:^|\s)([\/\w.-]+\.[a-zA-Z]{1,5})(?:\s|$|:|\()/gm,
7
+ /`([^`]+\.[a-zA-Z]{1,5})`/g,
8
+ /["']([^"']+\.[a-zA-Z]{1,5})["']/g
9
+ ];
10
+ const files = /* @__PURE__ */ new Set();
11
+ for (const pattern of filePatterns) {
12
+ let match;
13
+ while ((match = pattern.exec(content)) !== null) {
14
+ const file = match[1];
15
+ if (file && !file.startsWith("http") && !file.includes("://")) {
16
+ files.add(file);
17
+ }
18
+ }
19
+ }
20
+ if (files.size > 0) {
21
+ metadata.files = [...files];
22
+ }
23
+ if (message.name) {
24
+ metadata.tools = [message.name];
25
+ }
26
+ if (message.tool_calls && message.tool_calls.length > 0) {
27
+ metadata.tools = message.tool_calls.map((tc) => tc.function.name);
28
+ }
29
+ const decisionPatterns = [
30
+ /I('ll| will|'m going to| chose| decided| picked| selected)/i,
31
+ /let's (use|go with|implement|create)/i,
32
+ /we should (use|implement|create|add)/i,
33
+ /the (best|better|recommended) (approach|option|choice)/i
34
+ ];
35
+ metadata.isDecision = decisionPatterns.some((p) => p.test(content));
36
+ const errorPatterns = [
37
+ /error:|failed:|exception:|crash|bug|issue:|problem:/i,
38
+ /TypeError|SyntaxError|ReferenceError|Error:/,
39
+ /❌|✗|FAIL|FAILED/
40
+ ];
41
+ metadata.isError = errorPatterns.some((p) => p.test(content));
42
+ return metadata;
43
+ }
44
+ function determineMessagePriority(message) {
45
+ const content = message.content ?? "";
46
+ const metadata = message.metadata ?? extractMessageMetadata(message);
47
+ if (message.role === "system") {
48
+ return "critical";
49
+ }
50
+ if (message.role === "user") {
51
+ if (metadata.isDecision) return "critical";
52
+ if (content.length < 100) return "high";
53
+ return "high";
54
+ }
55
+ if (metadata.isError) {
56
+ return "high";
57
+ }
58
+ if (message.role === "tool" && metadata.files && metadata.files.length > 0) {
59
+ return "medium";
60
+ }
61
+ if (message.role === "tool" && content.length > 2e3) {
62
+ return "low";
63
+ }
64
+ if (message.role === "assistant" && metadata.isDecision) {
65
+ return "high";
66
+ }
67
+ return "medium";
68
+ }
69
+ function sortMessagesByPriority(messages) {
70
+ const priorityOrder = {
71
+ "low": 0,
72
+ "medium": 1,
73
+ "high": 2,
74
+ "critical": 3
75
+ };
76
+ const indices = messages.map((msg, i) => ({
77
+ index: i,
78
+ priority: msg.priority ?? determineMessagePriority(msg),
79
+ age: i
80
+ }));
81
+ indices.sort((a, b) => {
82
+ const priorityDiff = priorityOrder[a.priority] - priorityOrder[b.priority];
83
+ if (priorityDiff !== 0) return priorityDiff;
84
+ return a.age - b.age;
85
+ });
86
+ return indices.map((i) => i.index);
87
+ }
88
+ function findCoherentRemovalIndices(messages, targetIndices) {
89
+ const toRemove = new Set(targetIndices);
90
+ for (const idx of [...toRemove]) {
91
+ const msg = messages[idx];
92
+ if (msg.role === "tool" && msg.tool_call_id) {
93
+ const assistantIdx = messages.findIndex(
94
+ (m) => m.role === "assistant" && m.tool_calls?.some((tc) => tc.id === msg.tool_call_id)
95
+ );
96
+ if (assistantIdx >= 0) toRemove.add(assistantIdx);
97
+ }
98
+ }
99
+ for (const idx of [...toRemove]) {
100
+ const msg = messages[idx];
101
+ if (msg.role === "assistant" && msg.tool_calls) {
102
+ for (const tc of msg.tool_calls) {
103
+ const toolIdx = messages.findIndex(
104
+ (m) => m.role === "tool" && m.tool_call_id === tc.id
105
+ );
106
+ if (toolIdx >= 0) toRemove.add(toolIdx);
107
+ }
108
+ }
109
+ }
110
+ return [...toRemove].sort((a, b) => a - b);
111
+ }
112
+
113
+ // src/core/context/serializer.ts
114
+ var TOOL_RESULT_MAX_LENGTH = 2e3;
115
+ function serializeMessagesForSummary(messages) {
116
+ const lines = [];
117
+ for (const msg of messages) {
118
+ switch (msg.role) {
119
+ case "system":
120
+ break;
121
+ case "user":
122
+ lines.push(`[User]: ${msg.content ?? ""}`);
123
+ break;
124
+ case "assistant": {
125
+ const content = msg.content ?? "";
126
+ if (msg.tool_calls && msg.tool_calls.length > 0) {
127
+ const callDescriptions = msg.tool_calls.map((tc) => {
128
+ const args = tc.function.arguments ?? "{}";
129
+ let shortArgs = args;
130
+ try {
131
+ const parsed = JSON.parse(args);
132
+ const keys = Object.keys(parsed);
133
+ const preview = keys.slice(0, 3).map((k) => `${k}="${String(parsed[k]).slice(0, 80)}"`).join(", ");
134
+ shortArgs = keys.length > 3 ? `${preview}, +${keys.length - 3} more` : preview;
135
+ } catch {
136
+ shortArgs = args.slice(0, 100);
137
+ }
138
+ return `${tc.function.name}(${shortArgs})`;
139
+ }).join("; ");
140
+ if (content) {
141
+ lines.push(`[Assistant]: ${content.slice(0, 500)}`);
142
+ }
143
+ lines.push(`[Assistant tool calls]: ${callDescriptions}`);
144
+ } else {
145
+ lines.push(`[Assistant]: ${content.slice(0, 500)}`);
146
+ }
147
+ break;
148
+ }
149
+ case "tool": {
150
+ const toolName = msg.name ?? "unknown";
151
+ const rawContent = msg.content ?? "";
152
+ const truncated = rawContent.length > TOOL_RESULT_MAX_LENGTH ? rawContent.slice(0, Math.floor(TOOL_RESULT_MAX_LENGTH * 0.6)) + `
153
+ ... [${rawContent.length - TOOL_RESULT_MAX_LENGTH} chars truncated] ...
154
+ ` + rawContent.slice(-Math.floor(TOOL_RESULT_MAX_LENGTH * 0.3)) : rawContent;
155
+ lines.push(`[Tool result (${toolName})]: ${truncated}`);
156
+ break;
157
+ }
158
+ }
159
+ }
160
+ return lines.join("\n");
161
+ }
162
+
163
+ // src/core/context/summarizer.ts
164
+ function summarizeMessagesStatic(messages) {
165
+ const files = /* @__PURE__ */ new Set();
166
+ const tools = /* @__PURE__ */ new Set();
167
+ const decisions = [];
168
+ const errors = [];
169
+ const userRequests = [];
170
+ for (const msg of messages) {
171
+ const metadata = msg.metadata ?? extractMessageMetadata(msg);
172
+ if (metadata.files) {
173
+ metadata.files.forEach((f) => files.add(f));
174
+ }
175
+ if (metadata.tools) {
176
+ metadata.tools.forEach((t) => tools.add(t));
177
+ }
178
+ if (msg.role === "user") {
179
+ const preview = (msg.content ?? "").slice(0, 100);
180
+ userRequests.push(preview + (preview.length < (msg.content?.length ?? 0) ? "..." : ""));
181
+ }
182
+ if (metadata.isDecision && msg.role === "assistant") {
183
+ const preview = (msg.content ?? "").slice(0, 150);
184
+ decisions.push(preview);
185
+ }
186
+ if (metadata.isError) {
187
+ const preview = (msg.content ?? "").slice(0, 150);
188
+ errors.push(preview);
189
+ }
190
+ }
191
+ const parts = [
192
+ `[Context Summary - ${messages.length} messages condensed]`
193
+ ];
194
+ if (userRequests.length > 0) {
195
+ parts.push(`User requests: ${userRequests.slice(0, 3).join(" | ")}`);
196
+ }
197
+ if (files.size > 0) {
198
+ parts.push(`Files touched: ${[...files].slice(0, 10).join(", ")}${files.size > 10 ? ` (+${files.size - 10} more)` : ""}`);
199
+ }
200
+ if (tools.size > 0) {
201
+ parts.push(`Tools used: ${[...tools].join(", ")}`);
202
+ }
203
+ if (decisions.length > 0) {
204
+ parts.push(`Key decisions: ${decisions.slice(0, 2).join(" | ")}`);
205
+ }
206
+ if (errors.length > 0) {
207
+ parts.push(`Errors encountered: ${errors.slice(0, 2).join(" | ")}`);
208
+ }
209
+ return parts.join("\n");
210
+ }
211
+ async function summarizeWithLLM(messages, llm, memoryManager) {
212
+ if (!llm || messages.length === 0) {
213
+ return summarizeMessagesStatic(messages);
214
+ }
215
+ try {
216
+ const serializedLog = serializeMessagesForSummary(messages);
217
+ const summarizationPrompt = [
218
+ "Summarize the following conversation for context preservation. Include:",
219
+ "1. The user's original request and intent",
220
+ "2. What has been accomplished so far (files created/modified, commands run)",
221
+ "3. What remains to be done",
222
+ "4. Any key decisions or constraints discovered",
223
+ "5. Any user preferences or project-relevant points worth remembering",
224
+ "",
225
+ "Keep it concise (under 500 words). This summary replaces the removed messages.",
226
+ "",
227
+ "--- Conversation ---",
228
+ serializedLog
229
+ ].join("\n");
230
+ const response = await llm.complete({
231
+ messages: [
232
+ { role: "system", content: "You are a context summarization assistant. Produce concise, factual summaries that preserve task continuity." },
233
+ { role: "user", content: summarizationPrompt }
234
+ ],
235
+ temperature: 0.1,
236
+ maxTokens: 1e3
237
+ });
238
+ const summaryText = response.content?.trim();
239
+ if (!summaryText) {
240
+ return summarizeMessagesStatic(messages);
241
+ }
242
+ if (memoryManager) {
243
+ await persistKeyFacts(summaryText, memoryManager).catch(() => {
244
+ });
245
+ }
246
+ return `[LLM Context Summary - ${messages.length} messages condensed]
247
+ ${summaryText}`;
248
+ } catch {
249
+ return summarizeMessagesStatic(messages);
250
+ }
251
+ }
252
+ function buildStructuredSummary(summaryText, fileOps) {
253
+ const lines = summaryText.split("\n").map((l) => l.trim()).filter(Boolean);
254
+ const goal = lines.find((l) => /goal|intent|request|objective/i.test(l)) ?? lines[0] ?? "";
255
+ const constraints = [];
256
+ const progress = [];
257
+ const keyDecisions = [];
258
+ const nextSteps = [];
259
+ const criticalContext = [];
260
+ for (const line of lines) {
261
+ if (/constraint|requirement|must|should/i.test(line)) constraints.push(line);
262
+ else if (/accomplished|done|completed|created|modified|implemented/i.test(line)) progress.push(line);
263
+ else if (/decided|chose|selected|preference/i.test(line)) keyDecisions.push(line);
264
+ else if (/remain|todo|next|pending|still/i.test(line)) nextSteps.push(line);
265
+ else if (/critical|important|essential|key/i.test(line)) criticalContext.push(line);
266
+ }
267
+ return {
268
+ goal,
269
+ constraints,
270
+ progress,
271
+ keyDecisions,
272
+ nextSteps,
273
+ criticalContext,
274
+ readFiles: fileOps.readFiles,
275
+ modifiedFiles: fileOps.modifiedFiles
276
+ };
277
+ }
278
+ function extractFileOperations(messages) {
279
+ const readFiles = /* @__PURE__ */ new Set();
280
+ const modifiedFiles = /* @__PURE__ */ new Set();
281
+ for (const msg of messages) {
282
+ const metadata = msg.metadata ?? extractMessageMetadata(msg);
283
+ if (!metadata.tools || !metadata.files) continue;
284
+ for (const tool of metadata.tools) {
285
+ const isReadTool = tool.includes("read") || tool.includes("cat") || tool.includes("grep") || tool.includes("search");
286
+ const isWriteTool = tool.includes("write") || tool.includes("edit") || tool.includes("create") || tool.includes("delete") || tool.includes("move");
287
+ if (isReadTool) {
288
+ metadata.files.forEach((f) => readFiles.add(f));
289
+ }
290
+ if (isWriteTool) {
291
+ metadata.files.forEach((f) => modifiedFiles.add(f));
292
+ }
293
+ }
294
+ }
295
+ return {
296
+ readFiles: [...readFiles],
297
+ modifiedFiles: [...modifiedFiles]
298
+ };
299
+ }
300
+ async function persistKeyFacts(summary, memoryManager) {
301
+ const factPatterns = [
302
+ /(?:chose|decided|selected|using|preference|prefer)\s+.{10,100}/gi,
303
+ /(?:constraint|requirement|must|should)\s+.{10,100}/gi
304
+ ];
305
+ const facts = /* @__PURE__ */ new Set();
306
+ for (const pattern of factPatterns) {
307
+ let match;
308
+ while ((match = pattern.exec(summary)) !== null) {
309
+ facts.add(match[0].trim());
310
+ }
311
+ }
312
+ for (const fact of [...facts].slice(0, 5)) {
313
+ await memoryManager.store(fact, "project", ["context-summary"], "context-summarization");
314
+ }
315
+ }
316
+ var summarizeMessages = summarizeMessagesStatic;
317
+
318
+ export {
319
+ extractMessageMetadata,
320
+ determineMessagePriority,
321
+ sortMessagesByPriority,
322
+ findCoherentRemovalIndices,
323
+ summarizeMessagesStatic,
324
+ summarizeWithLLM,
325
+ buildStructuredSummary,
326
+ extractFileOperations,
327
+ persistKeyFacts,
328
+ summarizeMessages
329
+ };
330
+ /**
331
+ * @license
332
+ * Copyright 2025 Autohand AI LLC
333
+ * SPDX-License-Identifier: Apache-2.0
334
+ *
335
+ * Metadata extraction, priority scoring, sorting, and tool-call coherence.
336
+ * Extracted from contextManager.ts for composability.
337
+ */
338
+ /**
339
+ * @license
340
+ * Copyright 2025 Autohand AI LLC
341
+ * SPDX-License-Identifier: Apache-2.0
342
+ *
343
+ * Message → text serialization for summarization prompts.
344
+ * Converts LLMMessage[] into a plain-text conversation log that
345
+ * prevents the LLM from treating it as a conversation to continue.
346
+ */
347
+ /**
348
+ * @license
349
+ * Copyright 2025 Autohand AI LLC
350
+ * SPDX-License-Identifier: Apache-2.0
351
+ *
352
+ * LLM-powered + static summarization with structured format.
353
+ * Extracted from contextManager.ts for composability.
354
+ */
@@ -0,0 +1,93 @@
1
+ import {
2
+ getUserGreetingName
3
+ } from "./chunk-ZUYYHKQA.js";
4
+ import {
5
+ createCommandTheme
6
+ } from "./chunk-46MTALKD.js";
7
+ import {
8
+ getTerminalColumns,
9
+ renderAutohandLogo
10
+ } from "./chunk-7DJJGKM6.js";
11
+ import {
12
+ package_default
13
+ } from "./chunk-JB3JCYBJ.js";
14
+ import {
15
+ t
16
+ } from "./chunk-LEZEWKPA.js";
17
+
18
+ // src/commands/about.ts
19
+ import { execSync } from "child_process";
20
+ import terminalLink from "terminal-link";
21
+ function getCommitFromAlphaVersion(version) {
22
+ const match = version.match(/-alpha\.([0-9a-f]{7,40})$/i);
23
+ return match?.[1] ?? null;
24
+ }
25
+ function getGitCommit() {
26
+ if (true) {
27
+ return "da69f79";
28
+ }
29
+ const alphaCommit = getCommitFromAlphaVersion(package_default.version);
30
+ if (alphaCommit) {
31
+ return alphaCommit;
32
+ }
33
+ try {
34
+ return execSync("git rev-parse --short HEAD", { encoding: "utf8", stdio: ["pipe", "pipe", "ignore"] }).trim();
35
+ } catch {
36
+ return "unknown";
37
+ }
38
+ }
39
+ function getVersionString() {
40
+ const commit = getGitCommit();
41
+ return commit !== "unknown" ? `${package_default.version} (${commit})` : package_default.version;
42
+ }
43
+ async function about(ctx = {}) {
44
+ const theme = createCommandTheme();
45
+ const greetingName = getUserGreetingName(ctx.config);
46
+ const terminalColumns = ctx.terminalColumns ?? getTerminalColumns(process.stdout);
47
+ const lines = [
48
+ theme.muted(renderAutohandLogo({ columns: terminalColumns })),
49
+ "",
50
+ theme.accent(`${t("commands.about.title")} v${getVersionString()}`),
51
+ theme.muted(t("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 = terminalLink(theme.link("autohand.ai"), websiteUrl);
65
+ const githubLink = terminalLink(theme.link("github.com/autohandai/"), githubUrl);
66
+ const docsLink = terminalLink(theme.link("docs.autohand.ai"), docsUrl);
67
+ lines.push(`${theme.text("\u{1F310}")} ${theme.text(t("commands.about.website") + ":")} ${websiteLink}`);
68
+ lines.push(`${theme.text("\u{1F4E6}")} ${theme.text(t("commands.about.github") + ":")} ${githubLink}`);
69
+ lines.push(`${theme.text("\u{1F4DA}")} ${theme.text(t("commands.about.docs") + ":")} ${docsLink}`);
70
+ lines.push("");
71
+ lines.push(theme.text(`\u{1F4A1} ${t("commands.about.contribute")}`));
72
+ lines.push(theme.text(` \u2022 ${t("commands.about.feedback")}: ${theme.accent("/feedback")}`));
73
+ lines.push(theme.text(` \u2022 ${t("commands.about.submitPR")}: ${theme.accent("gh pr create")}`));
74
+ const issuesUrl = "https://github.com/autohandai/code-cli/issues";
75
+ const issuesLink = terminalLink(theme.link("github.com/autohandai/code-cli/issues"), issuesUrl);
76
+ lines.push(theme.text(` \u2022 ${t("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
+ export {
86
+ about,
87
+ metadata
88
+ };
89
+ /**
90
+ * @license
91
+ * Copyright 2025 Autohand AI LLC
92
+ * SPDX-License-Identifier: Apache-2.0
93
+ */