autohand-cli 0.7.14 → 0.8.2

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 (414) hide show
  1. package/README.md +97 -2
  2. package/assets/icon.png +0 -0
  3. package/dist/AgentRegistry-7LDL5HJH.js +10 -0
  4. package/dist/AgentRegistry-NQCLWABO.cjs +10 -0
  5. package/dist/{AutomodeManager-NGRAO2MH.js → AutomodeManager-MWLKGPZK.js} +2 -0
  6. package/dist/{AutomodeManager-ZKQMBM4T.cjs → AutomodeManager-NYIZNODK.cjs} +3 -1
  7. package/dist/CommunitySkillsCache-6QPRMTJO.js +8 -0
  8. package/dist/CommunitySkillsCache-GTQMOCCO.cjs +8 -0
  9. package/dist/{GitHubRegistryFetcher-US2JJID4.js → GitHubRegistryFetcher-6JQ5JEDZ.js} +1 -0
  10. package/dist/{GitHubRegistryFetcher-K744NNAJ.cjs → GitHubRegistryFetcher-S7QFUEKV.cjs} +1 -0
  11. package/dist/HookManager-Q2KYMCP4.cjs +7 -0
  12. package/dist/HookManager-TTP4Y6DC.js +7 -0
  13. package/dist/ImportWizard-35YBJ4AM.cjs +466 -0
  14. package/dist/ImportWizard-XH7CINCH.js +466 -0
  15. package/dist/LearnAdvisor-A4Q5PPBI.js +9 -0
  16. package/dist/LearnAdvisor-GASQD7HT.cjs +9 -0
  17. package/dist/McpClientManager-7RM6YT35.js +8 -0
  18. package/dist/McpClientManager-RKD7C6OY.cjs +8 -0
  19. package/dist/MemoryManager-GUNLRP5S.js +8 -0
  20. package/dist/MemoryManager-TNSGKDKX.cjs +8 -0
  21. package/dist/{PermissionManager-U5OMGR3L.js → PermissionManager-ATUV34LQ.js} +4 -3
  22. package/dist/PermissionManager-KMN53FJP.cjs +11 -0
  23. package/dist/ProjectProfiler-UMJJSOCE.js +194 -0
  24. package/dist/ProjectProfiler-ZDWR2ODG.cjs +194 -0
  25. package/dist/ProviderFactory-MR5B23QJ.js +9 -0
  26. package/dist/ProviderFactory-VFGCJJX6.cjs +9 -0
  27. package/dist/SessionManager-FEUAU3ZJ.cjs +10 -0
  28. package/dist/SessionManager-IKWAK2PI.js +10 -0
  29. package/dist/SkillsRegistry-KPQFTRIT.cjs +9 -0
  30. package/dist/SkillsRegistry-XJSKPDF2.js +9 -0
  31. package/dist/SubAgent-NYH6GWQ3.js +11 -0
  32. package/dist/SubAgent-PZKBDUBA.cjs +11 -0
  33. package/dist/{SyncApiClient-AYXYSOJM.js → SyncApiClient-LVIO4C2S.js} +1 -0
  34. package/dist/{SyncApiClient-ID3KXEMA.cjs → SyncApiClient-ZNYMT36M.cjs} +1 -0
  35. package/dist/about-HHTF2YFL.js +12 -0
  36. package/dist/about-JGRVNNQC.cjs +12 -0
  37. package/dist/actionExecutor-U6IBN2TU.cjs +19 -0
  38. package/dist/actionExecutor-XT5FW3W6.js +19 -0
  39. package/dist/add-dir-247K3XRY.js +10 -0
  40. package/dist/add-dir-GS4DXKKH.cjs +10 -0
  41. package/dist/agents/builtin/code-cleaner.md +14 -0
  42. package/dist/agents/builtin/docs-writer.md +14 -0
  43. package/dist/agents/builtin/researcher.md +14 -0
  44. package/dist/agents/builtin/reviewer.md +15 -0
  45. package/dist/agents/builtin/tester.md +15 -0
  46. package/dist/agents/builtin/todo-resolver.md +15 -0
  47. package/dist/agents-R6ZEFTVR.cjs +12 -0
  48. package/dist/agents-WJPQWQF2.js +12 -0
  49. package/dist/agents-new-HKVEIBDJ.js +14 -0
  50. package/dist/agents-new-X6GTHIO6.cjs +14 -0
  51. package/dist/assets/icon.png +0 -0
  52. package/dist/autoSkill-6TGBTEQD.js +20 -0
  53. package/dist/autoSkill-H4T6VVDA.cjs +20 -0
  54. package/dist/automode-BC6NVECO.js +10 -0
  55. package/dist/automode-WN2RSOGW.cjs +10 -0
  56. package/dist/{cc-UTTLESTY.js → cc-7LEIJ3KF.js} +1 -0
  57. package/dist/{cc-2W6M7J45.cjs → cc-Q5MM4AWC.cjs} +1 -0
  58. package/dist/{chunk-N4ZSG6JJ.cjs → chunk-22D2CNTP.cjs} +2 -2
  59. package/dist/chunk-245KJE5Y.cjs +55 -0
  60. package/dist/chunk-24QIWILL.js +51 -0
  61. package/dist/{chunk-MYNHJHDZ.js → chunk-2AA5MFES.js} +1 -1
  62. package/dist/{chunk-TSY7JHIV.cjs → chunk-33A755XB.cjs} +2 -2
  63. package/dist/chunk-33RSHBDH.js +131 -0
  64. package/dist/{chunk-QRGPAUST.js → chunk-34M3HWLR.js} +2 -2
  65. package/dist/{chunk-U7CZFKPL.cjs → chunk-3K2ESU53.cjs} +2 -2
  66. package/dist/{chunk-SIGWDEPS.cjs → chunk-3L53OA4E.cjs} +10 -10
  67. package/dist/chunk-3OEDGIFW.js +42 -0
  68. package/dist/chunk-3OTU3RS3.cjs +1607 -0
  69. package/dist/{chunk-MNSTWHK3.cjs → chunk-3PCTTUNW.cjs} +11 -11
  70. package/dist/{chunk-P5VDZ6PV.js → chunk-3PDTTAKJ.js} +1 -1
  71. package/dist/chunk-47CKWKEX.cjs +59 -0
  72. package/dist/{chunk-Z4J4W6YQ.cjs → chunk-4JNNTOGF.cjs} +2 -48
  73. package/dist/{chunk-GVZPIQWB.js → chunk-4PKF7WPD.js} +11 -5
  74. package/dist/{chunk-3S4DEIJP.cjs → chunk-5IXII4HX.cjs} +2 -2
  75. package/dist/{chunk-CRQKDBLD.js → chunk-5P2NXKP3.js} +98 -64
  76. package/dist/{chunk-DSKVMFRM.cjs → chunk-643VRA5S.cjs} +12 -4
  77. package/dist/{chunk-VVBBEYTH.cjs → chunk-6HYLHBQG.cjs} +10 -10
  78. package/dist/{chunk-L5ZFPWHY.js → chunk-6OYHF6MF.js} +12 -4
  79. package/dist/{chunk-BPTBKO7D.js → chunk-6RF7UKUS.js} +224 -37
  80. package/dist/{chunk-YHGTBPEC.js → chunk-6ZCULLCA.js} +1 -1
  81. package/dist/{chunk-VHBUKGRG.js → chunk-72FKPBT5.js} +4 -4
  82. package/dist/{chunk-2U5HFVRO.cjs → chunk-7BTSG4ME.cjs} +5165 -2194
  83. package/dist/chunk-7UOUW76C.js +603 -0
  84. package/dist/{chunk-FEVHH525.cjs → chunk-A4IJHHV7.cjs} +11 -5
  85. package/dist/{chunk-B6EBHCK2.cjs → chunk-AEJH23FO.cjs} +6 -6
  86. package/dist/{chunk-WLTVF77A.js → chunk-ALYU6VTM.js} +1 -1
  87. package/dist/{chunk-NMWEDN4Z.js → chunk-APIXPPMT.js} +5165 -2194
  88. package/dist/chunk-AS6RTLN7.cjs +203 -0
  89. package/dist/{chunk-BHV7CBNT.js → chunk-AYS2ASM7.js} +1 -1
  90. package/dist/{chunk-GRSVQ5YZ.js → chunk-AYSFIUFW.js} +44 -12
  91. package/dist/{chunk-NUHYCFHW.cjs → chunk-BVKXEQVG.cjs} +54 -65
  92. package/dist/chunk-BWN2CLLM.cjs +298 -0
  93. package/dist/{chunk-4HA7IHLJ.cjs → chunk-C5IJIM2V.cjs} +38 -16
  94. package/dist/{chunk-SRLY7K6J.js → chunk-CAMZTXV6.js} +2 -2
  95. package/dist/chunk-CDBPBM2K.cjs +29 -0
  96. package/dist/chunk-CNBKZEX5.cjs +109 -0
  97. package/dist/{chunk-WQUQ5JMM.js → chunk-CWMZKFTT.js} +4 -4
  98. package/dist/{chunk-CKN2BLHK.cjs → chunk-CZXGCVTR.cjs} +2 -2
  99. package/dist/{chunk-SZP4ULM5.cjs → chunk-DJDE4DTT.cjs} +17 -17
  100. package/dist/chunk-DN573ME7.cjs +1675 -0
  101. package/dist/chunk-DRE2RXBZ.js +4498 -0
  102. package/dist/chunk-DSPQEHDT.js +29 -0
  103. package/dist/{chunk-SFNT5DYE.cjs → chunk-DVUHHH3B.cjs} +4 -4
  104. package/dist/chunk-DVZOENQ7.cjs +58 -0
  105. package/dist/{chunk-PWLLLJHU.js → chunk-EGFT4PGW.js} +3 -1
  106. package/dist/chunk-EGMZDTSL.js +55 -0
  107. package/dist/chunk-EZMINVLU.js +123 -0
  108. package/dist/chunk-FHK7UDOJ.cjs +42 -0
  109. package/dist/{chunk-KWRUQRXR.js → chunk-FKSDEWDH.js} +44 -10
  110. package/dist/chunk-FMB3TSWP.cjs +218 -0
  111. package/dist/chunk-FW774QXH.js +1838 -0
  112. package/dist/{chunk-MY3TZER2.js → chunk-G27PQQFD.js} +1 -1
  113. package/dist/{chunk-Y2ZSH3YF.cjs → chunk-G3V4SFET.cjs} +57 -23
  114. package/dist/chunk-G4CAKI3V.js +58 -0
  115. package/dist/{chunk-FB6JWNJS.js → chunk-GBHDROGL.js} +54 -65
  116. package/dist/{chunk-DEAEO7RI.js → chunk-GJH7XMSK.js} +15 -1
  117. package/dist/chunk-GLBAF54O.js +218 -0
  118. package/dist/{chunk-S47TCZDL.js → chunk-H5SWOLG6.js} +7 -7
  119. package/dist/chunk-HBXAA3XB.js +83 -0
  120. package/dist/{chunk-63BXZQZW.js → chunk-HIVRCQS2.js} +26 -4
  121. package/dist/{chunk-WOGJXDBU.cjs → chunk-HLHTG5ZU.cjs} +18 -4
  122. package/dist/{chunk-FK2DVRPJ.js → chunk-HLQV64Y5.js} +170 -4
  123. package/dist/chunk-HOAHWIQ5.cjs +260 -0
  124. package/dist/{chunk-D2XFTCRP.js → chunk-HQ7YZKXE.js} +1 -1
  125. package/dist/{chunk-L42HTMMR.cjs → chunk-HTLINWX6.cjs} +2 -2
  126. package/dist/{chunk-PKOAXQKW.cjs → chunk-HVKOZ2VP.cjs} +11 -11
  127. package/dist/chunk-HXGBSJL5.cjs +27 -0
  128. package/dist/chunk-I5IW3T2Y.js +310 -0
  129. package/dist/chunk-IETRBBMP.cjs +603 -0
  130. package/dist/{chunk-MTALRU7R.cjs → chunk-IFFXSTOM.cjs} +3 -3
  131. package/dist/{chunk-V7YTCNMN.cjs → chunk-IKGWDOGU.cjs} +174 -8
  132. package/dist/chunk-IQ5RXU6O.js +1675 -0
  133. package/dist/{chunk-ZBIBLOZL.js → chunk-IVM5F2AE.js} +500 -317
  134. package/dist/chunk-J4Q7XR3G.js +260 -0
  135. package/dist/{chunk-XL77XYI2.cjs → chunk-J6QET7EF.cjs} +27 -7
  136. package/dist/{chunk-TQB222ZB.js → chunk-JCLYQ2JC.js} +2 -2
  137. package/dist/chunk-JSBRDJBE.js +30 -0
  138. package/dist/{chunk-XPOHYKR3.js → chunk-JX3DFKBI.js} +2 -2
  139. package/dist/chunk-JYTDYJVW.js +27 -0
  140. package/dist/{chunk-6SHHB2VD.js → chunk-KPELYZ6L.js} +2 -2
  141. package/dist/{chunk-ZLOTP56B.cjs → chunk-KWXVKLQ5.cjs} +5 -5
  142. package/dist/chunk-L3WAH3EM.cjs +131 -0
  143. package/dist/{chunk-ZXIQCYYV.cjs → chunk-LA7H35XM.cjs} +9 -9
  144. package/dist/chunk-LENHP55G.cjs +1838 -0
  145. package/dist/chunk-LJFUXC56.cjs +123 -0
  146. package/dist/{chunk-R5OO7MEB.cjs → chunk-LNMYK2F5.cjs} +22 -22
  147. package/dist/chunk-LQGVEP3E.js +109 -0
  148. package/dist/{chunk-KXAAEROY.js → chunk-LWUJFGOZ.js} +2 -2
  149. package/dist/chunk-MAKMSQMQ.cjs +504 -0
  150. package/dist/{chunk-BG4OQUKP.js → chunk-MBBY4ZIK.js} +1 -1
  151. package/dist/chunk-MSED7RH2.cjs +267 -0
  152. package/dist/{chunk-NMGF2KUN.js → chunk-MYISNQH4.js} +1 -1
  153. package/dist/chunk-N23UAW4I.js +59 -0
  154. package/dist/chunk-N254NRHT.cjs +30 -0
  155. package/dist/{chunk-TOTDRAWG.js → chunk-NDMIPTV4.js} +1 -1
  156. package/dist/{chunk-AIH6GUGB.cjs → chunk-NNPAM4HC.cjs} +5 -5
  157. package/dist/{chunk-HSPWX4Z2.cjs → chunk-O4IF4NJT.cjs} +231 -44
  158. package/dist/{chunk-DZHR34H6.cjs → chunk-OGV4WJ5L.cjs} +8 -8
  159. package/dist/chunk-OHUZKDGX.js +348 -0
  160. package/dist/{chunk-BRXIEKJ3.cjs → chunk-OLSBBZW6.cjs} +5 -5
  161. package/dist/{chunk-MILZEEUV.js → chunk-OOKY3HPZ.js} +9 -3
  162. package/dist/chunk-P47WPOXN.js +298 -0
  163. package/dist/{chunk-ULMPJUJW.cjs → chunk-PRRCJFU3.cjs} +23 -23
  164. package/dist/{chunk-SMHY3Q7B.cjs → chunk-Q7XSCYND.cjs} +54 -22
  165. package/dist/chunk-QCLYBIMM.cjs +51 -0
  166. package/dist/chunk-QMAKTSZB.cjs +48 -0
  167. package/dist/{chunk-DTFR3WD6.js → chunk-QNGEW5TC.js} +1 -1
  168. package/dist/chunk-QOXPOR5D.js +267 -0
  169. package/dist/chunk-R33VKSH5.cjs +348 -0
  170. package/dist/{chunk-RJP3SZ7Q.cjs → chunk-RD5XAJR2.cjs} +492 -309
  171. package/dist/chunk-RGR6ME5J.cjs +844 -0
  172. package/dist/{chunk-EOGKE5GD.cjs → chunk-RKJTGGMU.cjs} +221 -126
  173. package/dist/{chunk-GD4AFYJ3.js → chunk-RO6WYEWH.js} +24 -4
  174. package/dist/chunk-S52YW5ZQ.js +844 -0
  175. package/dist/{chunk-6DWXHBAY.js → chunk-SAHBLB3E.js} +222 -127
  176. package/dist/{chunk-JHOQABEF.js → chunk-SCXX4LW5.js} +5 -5
  177. package/dist/{chunk-GIZL57FE.cjs → chunk-SEKD5FH3.cjs} +3 -1
  178. package/dist/{chunk-JWPI6O5Z.js → chunk-SKV2F3NM.js} +31 -4
  179. package/dist/{chunk-FHUNAB2K.cjs → chunk-SKYG33B2.cjs} +33 -6
  180. package/dist/{chunk-BISFR6ZL.js → chunk-SLQAYV3W.js} +1 -1
  181. package/dist/{chunk-RFNCTE4V.cjs → chunk-SYVYLZZF.cjs} +2 -2
  182. package/dist/{chunk-3XJD56Z4.js → chunk-T73IDKDF.js} +10 -3
  183. package/dist/chunk-TBEGGJNC.cjs +310 -0
  184. package/dist/{chunk-RRZS5A53.js → chunk-TNZRZQ7Q.js} +1 -1
  185. package/dist/{chunk-CH4SPVFD.cjs → chunk-TXSDBGKX.cjs} +10 -3
  186. package/dist/chunk-U3WDY42C.cjs +42 -0
  187. package/dist/{chunk-425MT6Y5.cjs → chunk-U46VYPLR.cjs} +9 -9
  188. package/dist/{chunk-OLG7LZBD.js → chunk-VG34MG2U.js} +1 -1
  189. package/dist/{chunk-XDVG3NM4.js → chunk-W3X6PAC7.js} +2 -48
  190. package/dist/{chunk-LYMTYC67.js → chunk-WHE2SWHU.js} +2 -2
  191. package/dist/chunk-WM5PAOTQ.cjs +4498 -0
  192. package/dist/chunk-WNUVPKBW.js +42 -0
  193. package/dist/{chunk-EV53SLSB.cjs → chunk-WPVWQSL7.cjs} +4 -4
  194. package/dist/chunk-WQ3VJXZB.js +118 -0
  195. package/dist/{chunk-HMRDNRTH.js → chunk-X2MSVKDV.js} +2 -2
  196. package/dist/chunk-X3WS5LDG.js +504 -0
  197. package/dist/{chunk-43XS26AQ.cjs → chunk-X5VSP65C.cjs} +4 -4
  198. package/dist/{chunk-DSCQPWUB.cjs → chunk-X5YJ34FZ.cjs} +15 -15
  199. package/dist/chunk-XAV24VYN.js +48 -0
  200. package/dist/chunk-XDLH4EDL.cjs +118 -0
  201. package/dist/{chunk-X765A7J5.js → chunk-XRZEUWKF.js} +1 -1
  202. package/dist/{chunk-ZKZRFH37.cjs → chunk-XTB6VJVQ.cjs} +6 -6
  203. package/dist/{chunk-H3GBSPK5.js → chunk-XX2ZO7DS.js} +14 -6
  204. package/dist/{chunk-RUZB43HU.cjs → chunk-Y72HH2TF.cjs} +22 -14
  205. package/dist/chunk-YFXTE422.cjs +92 -0
  206. package/dist/{chunk-OSUWEUZE.js → chunk-YGN4CQIP.js} +1 -1
  207. package/dist/{chunk-KC5FPUOF.cjs → chunk-YRLYSQEQ.cjs} +2 -2
  208. package/dist/{chunk-3KBBARKO.js → chunk-YZXUDM5X.js} +85 -28
  209. package/dist/chunk-Z36XBUMX.cjs +83 -0
  210. package/dist/chunk-ZK6HOR62.js +92 -0
  211. package/dist/{chunk-PDKNHU5G.cjs → chunk-ZQE72E6W.cjs} +22 -16
  212. package/dist/chunk-ZVY2XD6T.js +1607 -0
  213. package/dist/{chunk-XBUMKEFN.cjs → chunk-ZYQMLKOK.cjs} +91 -34
  214. package/dist/clear-UO4MNWZW.cjs +12 -0
  215. package/dist/clear-ZJ5NYP6E.js +12 -0
  216. package/dist/communityInstaller-6KCFN7YZ.js +19 -0
  217. package/dist/communityInstaller-PVSOFDZD.cjs +19 -0
  218. package/dist/completion-MMF2PN2H.js +14 -0
  219. package/dist/completion-UI5WKHXI.cjs +14 -0
  220. package/dist/config-E7RINK4R.cjs +18 -0
  221. package/dist/config-ZN66VXPS.js +18 -0
  222. package/dist/constants-6CPCJ3DY.cjs +21 -0
  223. package/dist/{constants-V6J54N3X.js → constants-UFM5B232.js} +2 -1
  224. package/dist/{defaultHooks-WLMRQUXG.cjs → defaultHooks-RCXPHF4M.cjs} +3 -1
  225. package/dist/{defaultHooks-R56VYG7I.js → defaultHooks-RDRMER3Z.js} +2 -0
  226. package/dist/export-N4XIVDSL.cjs +12 -0
  227. package/dist/export-W22L4D5C.js +12 -0
  228. package/dist/extractSessionMemories-SDW2MVBQ.cjs +7 -0
  229. package/dist/extractSessionMemories-V7K42ZHW.js +7 -0
  230. package/dist/feedback-DR6ADSNE.cjs +15 -0
  231. package/dist/feedback-FEEAP4QW.js +15 -0
  232. package/dist/filesystem-3SGCW2BF.js +10 -0
  233. package/dist/filesystem-MCFXJQ6R.cjs +10 -0
  234. package/dist/formatters-6K7QVWQL.cjs +10 -0
  235. package/dist/formatters-DQHO5I36.js +10 -0
  236. package/dist/{help-LKKQU2TN.js → help-2BLR7L43.js} +3 -2
  237. package/dist/help-AQHGTS7P.cjs +12 -0
  238. package/dist/{history-AV4XBFRK.js → history-5FZ3M2AK.js} +3 -2
  239. package/dist/history-NIUDRMKA.cjs +14 -0
  240. package/dist/hooks-2EY4IPKV.js +13 -0
  241. package/dist/hooks-LJVORRIG.cjs +13 -0
  242. package/dist/i18n-ARDG2SMC.cjs +33 -0
  243. package/dist/{i18n-BSAPXM56.js → i18n-K7QOWIBH.js} +2 -1
  244. package/dist/ide-GFW6IJHD.js +12 -0
  245. package/dist/ide-N2ZNSSB3.cjs +12 -0
  246. package/dist/import-DFVN3KNZ.js +10 -0
  247. package/dist/import-QEME3E4T.cjs +170 -0
  248. package/dist/import-UXM3VK7B.js +170 -0
  249. package/dist/import-ZS6DPGU5.cjs +10 -0
  250. package/dist/index.cjs +11233 -11804
  251. package/dist/index.js +12594 -13165
  252. package/dist/init-PY75HA3S.cjs +10 -0
  253. package/dist/init-QNMWLAVY.js +10 -0
  254. package/dist/language-5UE4G2BT.cjs +18 -0
  255. package/dist/language-UXMHEZUJ.js +18 -0
  256. package/dist/learn-HJ3FLNZC.cjs +20 -0
  257. package/dist/learn-MVYS3RU5.js +20 -0
  258. package/dist/{lint-44UQJ673.cjs → lint-D5UOJWIK.cjs} +1 -0
  259. package/dist/{lint-TA2ZHVLM.js → lint-NJPZWVN2.js} +1 -0
  260. package/dist/{localProjectPermissions-WQYMGI42.js → localProjectPermissions-N77HA3XK.js} +3 -2
  261. package/dist/localProjectPermissions-UFSMNTBJ.cjs +18 -0
  262. package/dist/login-DSE7H63A.js +20 -0
  263. package/dist/login-V3MEWPKN.cjs +20 -0
  264. package/dist/logout-BMVCLKKW.js +18 -0
  265. package/dist/logout-XEG7FHOZ.cjs +18 -0
  266. package/dist/mcp-PYUR4PHO.js +18 -0
  267. package/dist/mcp-SG6JFLGC.cjs +18 -0
  268. package/dist/{mcp-install-2KVKRAMQ.cjs → mcp-install-G27HSS3Z.cjs} +26 -14
  269. package/dist/{mcp-install-77UXRN6R.js → mcp-install-VESN42PI.js} +21 -9
  270. package/dist/memory-4ZMMEZ2Z.js +10 -0
  271. package/dist/memory-QSGMVVGH.cjs +10 -0
  272. package/dist/message-JUBOK2VU.js +9 -0
  273. package/dist/message-ZJ5AYAMT.cjs +9 -0
  274. package/dist/model-NANLBZ4Z.cjs +10 -0
  275. package/dist/model-ZXNV4AF7.js +10 -0
  276. package/dist/new-5QJY5JP2.js +12 -0
  277. package/dist/new-PMMG55UX.cjs +12 -0
  278. package/dist/{patch-BAAQIYSW.js → patch-5F6VBIT3.js} +2 -0
  279. package/dist/{patch-J32X2QQP.cjs → patch-MOD7QC3D.cjs} +3 -1
  280. package/dist/permissions-LECTCJ4H.cjs +13 -0
  281. package/dist/permissions-VP5VGIBL.js +13 -0
  282. package/dist/{plan-JFGNRL2S.js → plan-G5CEKJI4.js} +1 -0
  283. package/dist/{plan-B3CW5DXJ.cjs → plan-QKOHE3LH.cjs} +1 -0
  284. package/dist/quit-BKOOPHU5.cjs +10 -0
  285. package/dist/quit-FVFNYACP.js +10 -0
  286. package/dist/registry-KWZGYJC2.js +2108 -0
  287. package/dist/registry-YN4FQPOO.cjs +2108 -0
  288. package/dist/resume-EXFQSQPH.js +13 -0
  289. package/dist/resume-PP2IQM5S.cjs +13 -0
  290. package/dist/search-C56FBN67.cjs +17 -0
  291. package/dist/search-XGZDYBF4.js +17 -0
  292. package/dist/{session-T3TAZ5ZU.cjs → session-BSU2L5UI.cjs} +1 -0
  293. package/dist/{session-H5QWKE5E.js → session-SZMRN5KG.js} +1 -0
  294. package/dist/sessions-54KI3F2Q.js +10 -0
  295. package/dist/sessions-DDTSPNVW.cjs +10 -0
  296. package/dist/settings-BDO37TTO.cjs +30 -0
  297. package/dist/settings-FHRDFPLK.js +30 -0
  298. package/dist/share-IERCTBGN.cjs +14 -0
  299. package/dist/share-TGROUE6R.js +14 -0
  300. package/dist/skills-6OL4OSGA.js +76 -0
  301. package/dist/skills-FYY6F2WV.cjs +76 -0
  302. package/dist/skills-OM4IGBAA.cjs +26 -0
  303. package/dist/skills-S3GRN323.js +26 -0
  304. package/dist/{skills-install-MQINL3EC.js → skills-install-6CSWC24P.js} +97 -26
  305. package/dist/{skills-install-IKJZN4G2.cjs → skills-install-O3LZ2ETC.cjs} +106 -35
  306. package/dist/skills-new-ALD2PTHN.js +15 -0
  307. package/dist/skills-new-PWLKK7GW.cjs +15 -0
  308. package/dist/slashCommands-L4ZD33LJ.js +75 -0
  309. package/dist/slashCommands-YY2VUUDF.cjs +75 -0
  310. package/dist/status-3PC5XWSS.cjs +11 -0
  311. package/dist/status-KCLVOYPD.js +11 -0
  312. package/dist/sync-6SDWG5RK.js +18 -0
  313. package/dist/sync-7JMZVEQD.cjs +40 -0
  314. package/dist/{sync-EXYX7HXW.js → sync-KWX67OUN.js} +3 -2
  315. package/dist/sync-WHURZL3U.cjs +18 -0
  316. package/dist/tasks-5FPBIFLC.js +9 -0
  317. package/dist/tasks-TXGKGNH6.cjs +9 -0
  318. package/dist/team-5YXP3JGR.js +9 -0
  319. package/dist/team-IIWEZKNR.cjs +9 -0
  320. package/dist/teammate-2KMKJXAM.cjs +139 -0
  321. package/dist/teammate-L6EZQ3I2.js +139 -0
  322. package/dist/theme-BE5A4FPN.cjs +18 -0
  323. package/dist/theme-YMFCQP7J.js +18 -0
  324. package/dist/ui/questionModal.cjs +7 -25
  325. package/dist/ui/questionModal.js +6 -24
  326. package/dist/undo-KZHUUZTD.cjs +10 -0
  327. package/dist/undo-NEIEHQVX.js +10 -0
  328. package/dist/update-TVAJMMBC.js +82 -0
  329. package/dist/update-Z6BIIQDC.cjs +82 -0
  330. package/package.json +10 -3
  331. package/dist/CommunitySkillsCache-ILWHWE5P.js +0 -7
  332. package/dist/CommunitySkillsCache-KHC6RUJW.cjs +0 -7
  333. package/dist/HookManager-X47HCM5G.cjs +0 -6
  334. package/dist/HookManager-ZXKHCD7U.js +0 -6
  335. package/dist/MemoryManager-6ZT7IDO5.cjs +0 -7
  336. package/dist/MemoryManager-AJGS5AKB.js +0 -7
  337. package/dist/PermissionManager-HG6W2DGU.cjs +0 -10
  338. package/dist/SessionManager-BJ2G6VV4.cjs +0 -9
  339. package/dist/SessionManager-ENPGYK5J.js +0 -9
  340. package/dist/SkillsRegistry-6ZFOCT25.cjs +0 -8
  341. package/dist/SkillsRegistry-C2SHOZ5D.js +0 -8
  342. package/dist/about-3BJTNSLK.js +0 -11
  343. package/dist/about-EABQNJGV.cjs +0 -11
  344. package/dist/add-dir-7FD4DMDA.cjs +0 -9
  345. package/dist/add-dir-LOYJ4YB5.js +0 -9
  346. package/dist/agents-2Y6ASV7C.js +0 -10
  347. package/dist/agents-UOSPKLQL.cjs +0 -10
  348. package/dist/agents-new-23NSGAM5.js +0 -13
  349. package/dist/agents-new-WI2EL7IJ.cjs +0 -13
  350. package/dist/automode-LGWTY3UX.js +0 -9
  351. package/dist/automode-WLBQ7MN7.cjs +0 -9
  352. package/dist/chunk-5UBW2BGC.js +0 -33
  353. package/dist/chunk-I6DBWNLN.cjs +0 -169
  354. package/dist/chunk-IZBCMJHJ.cjs +0 -33
  355. package/dist/completion-7WGMHKOR.cjs +0 -13
  356. package/dist/completion-KH33NSGP.js +0 -13
  357. package/dist/constants-RBQTR32A.cjs +0 -20
  358. package/dist/export-3QN3IH7A.js +0 -11
  359. package/dist/export-BI54X3MP.cjs +0 -11
  360. package/dist/feedback-CI4OIPOS.cjs +0 -14
  361. package/dist/feedback-GFPL5STE.js +0 -14
  362. package/dist/formatters-N5IJKYZY.cjs +0 -8
  363. package/dist/formatters-UG6VZJJ5.js +0 -8
  364. package/dist/help-CWMUGD3V.cjs +0 -11
  365. package/dist/history-73VBEMSI.cjs +0 -13
  366. package/dist/hooks-62UDQBGH.cjs +0 -12
  367. package/dist/hooks-XORDJD5X.js +0 -12
  368. package/dist/i18n-X2IU2EZD.cjs +0 -32
  369. package/dist/ide-RPKZALQV.js +0 -11
  370. package/dist/ide-YMNXJB6A.cjs +0 -11
  371. package/dist/init-J5HR4R7U.js +0 -9
  372. package/dist/init-JCC7RVMC.cjs +0 -9
  373. package/dist/language-AZISJCEZ.js +0 -16
  374. package/dist/language-F65RA6FZ.cjs +0 -16
  375. package/dist/localProjectPermissions-2EATUDZM.cjs +0 -17
  376. package/dist/login-5HLPMECE.js +0 -18
  377. package/dist/login-ISWYYBXP.cjs +0 -18
  378. package/dist/logout-3EKZM5J3.cjs +0 -16
  379. package/dist/logout-GE7TSZ24.js +0 -16
  380. package/dist/mcp-EW64QRFA.cjs +0 -15
  381. package/dist/mcp-VHS7AMF2.js +0 -15
  382. package/dist/memory-2I473RU3.js +0 -9
  383. package/dist/memory-JZ6NPSP3.cjs +0 -9
  384. package/dist/model-GXZLARPT.js +0 -9
  385. package/dist/model-Y274DBDO.cjs +0 -9
  386. package/dist/new-BG5VIGZ7.cjs +0 -9
  387. package/dist/new-YXFDQOA7.js +0 -9
  388. package/dist/permissions-QILEAGBP.cjs +0 -12
  389. package/dist/permissions-WVEOVMWO.js +0 -12
  390. package/dist/quit-NC32OEJG.cjs +0 -9
  391. package/dist/quit-WRRIGU33.js +0 -9
  392. package/dist/resume-GJIKIDPR.cjs +0 -12
  393. package/dist/resume-RMJNCAOK.js +0 -12
  394. package/dist/search-UIWIXB73.js +0 -14
  395. package/dist/search-WQNXDA2E.cjs +0 -14
  396. package/dist/sessions-HPFX2GDD.js +0 -9
  397. package/dist/sessions-SAQU6MFA.cjs +0 -9
  398. package/dist/share-2WH5ZVOO.cjs +0 -13
  399. package/dist/share-PSSWWVV5.js +0 -13
  400. package/dist/skills-LJZA6PVJ.js +0 -13
  401. package/dist/skills-YTYGART7.cjs +0 -13
  402. package/dist/skills-new-3WCU3CWB.js +0 -14
  403. package/dist/skills-new-O5LFVFZU.cjs +0 -14
  404. package/dist/slashCommands-7IRDOXOQ.cjs +0 -55
  405. package/dist/slashCommands-C6CAQA25.js +0 -55
  406. package/dist/status-4EDV2LSY.cjs +0 -10
  407. package/dist/status-NU7TJDCE.js +0 -10
  408. package/dist/sync-3GFSEIAZ.js +0 -16
  409. package/dist/sync-6M3WRKMH.cjs +0 -39
  410. package/dist/sync-CQNQDNTJ.cjs +0 -16
  411. package/dist/theme-EMJGULMI.cjs +0 -16
  412. package/dist/theme-FGDSXNU3.js +0 -16
  413. package/dist/undo-CTXQYE7C.cjs +0 -9
  414. package/dist/undo-HX2ZMECP.js +0 -9
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  DEFAULT_SYNC_CONFIG,
3
3
  createSyncService
4
- } from "./chunk-P5VDZ6PV.js";
4
+ } from "./chunk-3PDTTAKJ.js";
5
5
  import {
6
6
  getAuthClient
7
- } from "./chunk-D2XFTCRP.js";
7
+ } from "./chunk-HQ7YZKXE.js";
8
8
  import {
9
9
  safePrompt
10
- } from "./chunk-YHGTBPEC.js";
10
+ } from "./chunk-6ZCULLCA.js";
11
11
  import {
12
12
  saveConfig
13
- } from "./chunk-ZBIBLOZL.js";
13
+ } from "./chunk-P47WPOXN.js";
14
14
  import {
15
15
  AUTH_CONFIG
16
- } from "./chunk-PWLLLJHU.js";
16
+ } from "./chunk-EGFT4PGW.js";
17
17
  import {
18
18
  t
19
- } from "./chunk-NMWEDN4Z.js";
19
+ } from "./chunk-APIXPPMT.js";
20
20
 
21
21
  // src/commands/login.ts
22
22
  import chalk from "chalk";
@@ -141,7 +141,7 @@ async function checkAndRestoreSyncData(token, userId, config) {
141
141
  enabled: true
142
142
  }
143
143
  });
144
- const { getSyncApiClient } = await import("./SyncApiClient-AYXYSOJM.js");
144
+ const { getSyncApiClient } = await import("./SyncApiClient-LVIO4C2S.js");
145
145
  const apiClient = getSyncApiClient();
146
146
  const remoteManifest = await apiClient.getRemoteManifest(token);
147
147
  if (!remoteManifest || remoteManifest.files.length === 0) {
@@ -0,0 +1,83 @@
1
+ // src/commands/team.ts
2
+ import chalk from "chalk";
3
+ var metadata = {
4
+ command: "/team",
5
+ description: "Manage agent teams (create, status, shutdown)",
6
+ implemented: true,
7
+ subcommands: [
8
+ { name: "create", description: "Create a new team" },
9
+ { name: "status", description: "Show team status" },
10
+ { name: "shutdown", description: "Shut down all teammates" }
11
+ ]
12
+ };
13
+ async function team(ctx, args) {
14
+ if (!ctx.teamManager) {
15
+ return chalk.yellow("Team manager not available.");
16
+ }
17
+ const subcommand = args[0]?.toLowerCase();
18
+ if (!subcommand || subcommand === "help") {
19
+ return [
20
+ chalk.bold("Team Commands:"),
21
+ "",
22
+ ` ${chalk.cyan("/team create <name>")} Create a new team`,
23
+ ` ${chalk.cyan("/team status")} Show current team status`,
24
+ ` ${chalk.cyan("/team shutdown")} Shut down all teammates`,
25
+ ` ${chalk.cyan("/team")} Show this help`
26
+ ].join("\n");
27
+ }
28
+ switch (subcommand) {
29
+ case "create": {
30
+ const name = args.slice(1).join("-") || "default";
31
+ ctx.teamManager.createTeam(name);
32
+ return chalk.green(`Team "${name}" created. Use /team status to view.`);
33
+ }
34
+ case "status": {
35
+ const team2 = ctx.teamManager.getTeam();
36
+ if (!team2) {
37
+ return chalk.yellow("No active team.");
38
+ }
39
+ const status = ctx.teamManager.getStatus();
40
+ const lines = [
41
+ chalk.bold(`Team: ${team2.name}`),
42
+ `${chalk.gray("Status:")} ${team2.status === "active" ? chalk.green("active") : chalk.gray("completed")}`,
43
+ `${chalk.gray("Members:")} ${status.memberCount}`,
44
+ `${chalk.gray("Tasks:")} ${status.tasksDone}/${status.tasksTotal} completed`,
45
+ ""
46
+ ];
47
+ for (const member of team2.members) {
48
+ const statusColor = member.status === "working" ? chalk.yellow : member.status === "idle" ? chalk.green : member.status === "shutdown" ? chalk.red : chalk.gray;
49
+ lines.push(` ${statusColor("\u25CF")} ${chalk.white(member.name)} (${member.agentName}) - ${statusColor(member.status)}`);
50
+ }
51
+ const tasks = ctx.teamManager.tasks.listTasks();
52
+ if (tasks.length > 0) {
53
+ lines.push("", chalk.bold("Tasks:"));
54
+ for (const task of tasks) {
55
+ const icon = task.status === "completed" ? chalk.green("\u2713") : task.status === "in_progress" ? chalk.yellow("\u25CF") : chalk.gray("\u25CB");
56
+ const owner = task.owner ? chalk.gray(` [${task.owner}]`) : "";
57
+ lines.push(` ${icon} ${task.subject}${owner}`);
58
+ }
59
+ }
60
+ return lines.join("\n");
61
+ }
62
+ case "shutdown": {
63
+ const team2 = ctx.teamManager.getTeam();
64
+ if (!team2) {
65
+ return chalk.yellow("No active team to shut down.");
66
+ }
67
+ await ctx.teamManager.shutdown();
68
+ return chalk.green(`Team "${team2.name}" has been shut down.`);
69
+ }
70
+ default:
71
+ return chalk.yellow(`Unknown team subcommand: ${subcommand}. Use /team for help.`);
72
+ }
73
+ }
74
+
75
+ export {
76
+ metadata,
77
+ team
78
+ };
79
+ /**
80
+ * @license
81
+ * Copyright 2025 Autohand AI LLC
82
+ * SPDX-License-Identifier: Apache-2.0
83
+ */
@@ -1,15 +1,16 @@
1
1
  import {
2
2
  safePrompt
3
- } from "./chunk-YHGTBPEC.js";
3
+ } from "./chunk-6ZCULLCA.js";
4
4
  import {
5
5
  t
6
- } from "./chunk-NMWEDN4Z.js";
6
+ } from "./chunk-APIXPPMT.js";
7
7
 
8
8
  // src/commands/hooks.ts
9
9
  import chalk from "chalk";
10
10
  var HOOK_EVENTS = [
11
11
  "session-start",
12
12
  "session-end",
13
+ "pre-clear",
13
14
  "pre-prompt",
14
15
  "pre-tool",
15
16
  "post-tool",
@@ -27,11 +28,22 @@ var HOOK_EVENTS = [
27
28
  "automode:resume",
28
29
  "automode:cancel",
29
30
  "automode:complete",
30
- "automode:error"
31
+ "automode:error",
32
+ // Learn events
33
+ "pre-learn",
34
+ "post-learn",
35
+ // Team events
36
+ "team-created",
37
+ "teammate-spawned",
38
+ "teammate-idle",
39
+ "task-assigned",
40
+ "task-completed",
41
+ "team-shutdown"
31
42
  ];
32
43
  var EVENT_DESCRIPTIONS = {
33
44
  "session-start": "When a session begins",
34
45
  "session-end": "When a session ends",
46
+ "pre-clear": "Before memory extraction on /clear or /new",
35
47
  "pre-prompt": "Before processing user input",
36
48
  "pre-tool": "Before a tool executes",
37
49
  "post-tool": "After a tool completes",
@@ -50,7 +62,17 @@ var EVENT_DESCRIPTIONS = {
50
62
  "automode:resume": "When auto-mode is resumed",
51
63
  "automode:cancel": "When auto-mode is cancelled",
52
64
  "automode:complete": "When auto-mode completes",
53
- "automode:error": "When auto-mode encounters an error"
65
+ "automode:error": "When auto-mode encounters an error",
66
+ // Learn events
67
+ "pre-learn": "Before a learn operation begins",
68
+ "post-learn": "After a learn operation completes",
69
+ // Team events
70
+ "team-created": "When a team is created",
71
+ "teammate-spawned": "When a teammate process starts",
72
+ "teammate-idle": "When a teammate becomes idle",
73
+ "task-assigned": "When a task is assigned to a teammate",
74
+ "task-completed": "When a task is marked as done",
75
+ "team-shutdown": "When team cleanup completes"
54
76
  };
55
77
  var HOOK_ICONS = {
56
78
  // Script-based hooks
@@ -1,9 +1,9 @@
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(); } }
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
  var _chunkJHGIWNHLcjs = require('./chunk-JHGIWNHL.cjs');
4
4
 
5
5
 
6
- var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
6
+ var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
7
7
 
8
8
  // src/skills/SkillsRegistry.ts
9
9
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
@@ -232,7 +232,7 @@ var SkillsRegistry = class {
232
232
  this.workspaceRoot = workspaceRoot;
233
233
  const claudeProjectSkillsDir = _path2.default.join(workspaceRoot, ".claude", "skills");
234
234
  await this.loadFromDirectory(claudeProjectSkillsDir, "claude-project", false);
235
- const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkGIZL57FEcjs.PROJECT_DIR_NAME, "skills");
235
+ const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkSEKD5FH3cjs.PROJECT_DIR_NAME, "skills");
236
236
  await this.loadFromDirectory(autohandProjectSkillsDir, "autohand-project", true);
237
237
  }
238
238
  /**
@@ -291,7 +291,7 @@ var SkillsRegistry = class {
291
291
  async setWorkspaceWithAutoCopy(workspaceRoot) {
292
292
  this.workspaceRoot = workspaceRoot;
293
293
  const claudeProjectSkillsDir = _path2.default.join(workspaceRoot, ".claude", "skills");
294
- const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkGIZL57FEcjs.PROJECT_DIR_NAME, "skills");
294
+ const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkSEKD5FH3cjs.PROJECT_DIR_NAME, "skills");
295
295
  await this.addLocationWithAutoCopy(
296
296
  claudeProjectSkillsDir,
297
297
  "claude-project",
@@ -405,6 +405,14 @@ var SkillsRegistry = class {
405
405
  getSkill(name) {
406
406
  return _nullishCoalesce(this.skills.get(name), () => ( null));
407
407
  }
408
+ /**
409
+ * Track a skill event via the telemetry manager.
410
+ * Safe to call even without a telemetry manager configured.
411
+ */
412
+ trackSkillEvent(data) {
413
+ _optionalChain([this, 'access', _ => _.telemetryManager, 'optionalAccess', _2 => _2.trackSkillUse, 'call', _3 => _3(data), 'access', _4 => _4.catch, 'call', _5 => _5(() => {
414
+ })]);
415
+ }
408
416
  /**
409
417
  * Activate a skill by name
410
418
  */
@@ -414,6 +422,12 @@ var SkillsRegistry = class {
414
422
  return false;
415
423
  }
416
424
  skill.isActive = true;
425
+ this.trackSkillEvent({
426
+ skillName: name,
427
+ source: skill.source,
428
+ activationType: "explicit",
429
+ action: "activate"
430
+ });
417
431
  return true;
418
432
  }
419
433
  /**
@@ -1,8 +1,26 @@
1
+ import {
2
+ LearnClient,
3
+ fetchRegistryWithFallback,
4
+ installSkillWithSecurity
5
+ } from "./chunk-OHUZKDGX.js";
6
+ import {
7
+ CommunitySkillsCache
8
+ } from "./chunk-MBBY4ZIK.js";
9
+ import {
10
+ GitHubRegistryFetcher
11
+ } from "./chunk-UJ2JSM6H.js";
12
+ import {
13
+ showConfirm,
14
+ showModal
15
+ } from "./chunk-YZXUDM5X.js";
1
16
  import {
2
17
  t
3
- } from "./chunk-NMWEDN4Z.js";
18
+ } from "./chunk-APIXPPMT.js";
4
19
 
5
20
  // src/commands/skills.ts
21
+ import path from "path";
22
+ import fse from "fs-extra";
23
+ import chalk from "chalk";
6
24
  async function skills(ctx, args = []) {
7
25
  const { skillsRegistry } = ctx;
8
26
  if (!skillsRegistry) {
@@ -15,6 +33,16 @@ async function skills(ctx, args = []) {
15
33
  case "get":
16
34
  case "add":
17
35
  return handleSkillsInstall(ctx, skillName);
36
+ case "search":
37
+ return handleSkillsSearch(ctx, args.slice(1).join(" "));
38
+ case "trending":
39
+ return handleSkillsTrending();
40
+ case "remove":
41
+ case "uninstall":
42
+ return handleSkillsRemove(ctx, skillName);
43
+ case "feedback":
44
+ case "rate":
45
+ return handleSkillsFeedback(args[1], Number(args[2]), args.slice(3).join(" "));
18
46
  case "use":
19
47
  case "activate":
20
48
  return activateSkill(skillsRegistry, skillName);
@@ -230,7 +258,7 @@ async function handleSkillsInstall(ctx, skillName) {
230
258
  if (!workspaceRoot) {
231
259
  return "Workspace root not available.";
232
260
  }
233
- const { skillsInstall } = await import("./skills-install-MQINL3EC.js");
261
+ const { skillsInstall } = await import("./skills-install-6CSWC24P.js");
234
262
  const result = await skillsInstall(
235
263
  {
236
264
  skillsRegistry,
@@ -240,10 +268,129 @@ async function handleSkillsInstall(ctx, skillName) {
240
268
  );
241
269
  return result ?? "Skills install completed.";
242
270
  }
271
+ async function handleSkillsSearch(ctx, query) {
272
+ const cache = new CommunitySkillsCache();
273
+ const fetcher = new GitHubRegistryFetcher();
274
+ const registry = await fetchRegistryWithFallback(cache, fetcher);
275
+ if (!registry) {
276
+ return chalk.red("Unable to fetch community skills registry. Check your network connection.");
277
+ }
278
+ const client = new LearnClient();
279
+ const results = client.search(registry, query);
280
+ if (results.length === 0) {
281
+ return t("commands.learn.noResults", { query });
282
+ }
283
+ if (ctx.isNonInteractive) {
284
+ const lines = [t("commands.learn.found", { count: String(results.length) })];
285
+ for (const skill2 of results) {
286
+ const stars = skill2.rating ? ` (${skill2.rating.toFixed(1)}/5)` : "";
287
+ lines.push(` ${chalk.cyan(skill2.name)} - ${skill2.description}${stars}`);
288
+ }
289
+ return lines.join("\n");
290
+ }
291
+ const options = results.map((s) => ({
292
+ label: `${s.name} - ${s.description}`,
293
+ value: s.id
294
+ }));
295
+ const selected = await showModal({
296
+ title: t("commands.learn.selectPrompt"),
297
+ options
298
+ });
299
+ if (!selected) {
300
+ return t("commands.learn.noResults", { query });
301
+ }
302
+ const skill = results.find((s) => s.id === selected.value);
303
+ if (!skill) return t("commands.learn.noResults", { query });
304
+ if (!ctx.workspaceRoot) {
305
+ return "Workspace root not available for install.";
306
+ }
307
+ return installSkillWithSecurity(
308
+ { skillsRegistry: ctx.skillsRegistry, workspaceRoot: ctx.workspaceRoot, hookManager: ctx.hookManager, isNonInteractive: ctx.isNonInteractive },
309
+ skill,
310
+ cache,
311
+ fetcher
312
+ );
313
+ }
314
+ async function handleSkillsTrending() {
315
+ const cache = new CommunitySkillsCache();
316
+ const fetcher = new GitHubRegistryFetcher();
317
+ const registry = await fetchRegistryWithFallback(cache, fetcher);
318
+ if (!registry) {
319
+ return chalk.red("Unable to fetch community skills registry. Check your network connection.");
320
+ }
321
+ const client = new LearnClient();
322
+ const trending = client.trending(registry);
323
+ const lines = [];
324
+ lines.push("");
325
+ lines.push(chalk.bold(t("commands.learn.trendingTitle")));
326
+ lines.push("");
327
+ for (let i = 0; i < trending.length; i++) {
328
+ const skill = trending[i];
329
+ const idx = chalk.gray(`${i + 1}.`);
330
+ const name = chalk.cyan(skill.name);
331
+ const featured = skill.isFeatured ? chalk.yellow(" [featured]") : "";
332
+ const downloads = skill.downloadCount ? chalk.gray(` (${skill.downloadCount} installs)`) : "";
333
+ lines.push(`${idx} ${name}${featured}${downloads}`);
334
+ lines.push(` ${skill.description}`);
335
+ lines.push(` {{action:Install|/skills install @${skill.author ?? "community"}/${skill.id}}}`);
336
+ lines.push("");
337
+ }
338
+ return lines.join("\n");
339
+ }
340
+ async function handleSkillsRemove(ctx, slug) {
341
+ if (!slug) {
342
+ return "Usage: /skills remove <skill-slug>";
343
+ }
344
+ const allSkills = ctx.skillsRegistry.listSkills();
345
+ const target = allSkills.find(
346
+ (s) => s.metadata?.["agentskill-slug"] === slug || s.name === slug
347
+ );
348
+ if (!target) {
349
+ return t("commands.learn.removeNotFound", { name: slug });
350
+ }
351
+ if (!ctx.isNonInteractive) {
352
+ const confirmed = await showConfirm({
353
+ title: t("commands.learn.confirmRemove", { name: target.name }),
354
+ defaultValue: false
355
+ });
356
+ if (!confirmed) return null;
357
+ }
358
+ const skillDir = path.dirname(target.path);
359
+ try {
360
+ await fse.remove(skillDir);
361
+ ctx.skillsRegistry.trackSkillEvent({
362
+ skillName: target.name,
363
+ source: target.source,
364
+ activationType: "explicit",
365
+ action: "remove"
366
+ });
367
+ return chalk.green(t("commands.learn.removed", { name: target.name }));
368
+ } catch (err) {
369
+ const msg = err instanceof Error ? err.message : "Unknown error";
370
+ return chalk.red(`Failed to remove skill: ${msg}`);
371
+ }
372
+ }
373
+ function handleSkillsFeedback(slug, rating, _comment) {
374
+ if (!slug) {
375
+ return "Usage: /skills feedback <skill-slug> <1-5> [comment]";
376
+ }
377
+ if (rating === void 0 || isNaN(rating) || rating < 1 || rating > 5) {
378
+ return t("commands.learn.feedbackInvalid");
379
+ }
380
+ return t("commands.learn.feedbackThanks", { name: slug });
381
+ }
243
382
  var metadata = {
244
383
  command: "/skills",
245
384
  description: t("commands.skills.description"),
246
- implemented: true
385
+ implemented: true,
386
+ subcommands: [
387
+ { name: "use", description: "Activate a skill" },
388
+ { name: "install", description: "Browse and install community skills" },
389
+ { name: "search", description: "Search community skills" },
390
+ { name: "trending", description: "Show trending community skills" },
391
+ { name: "remove", description: "Remove an installed skill" },
392
+ { name: "info", description: "Show detailed skill info" }
393
+ ]
247
394
  };
248
395
  var useMetadata = {
249
396
  command: "/skills use",
@@ -255,12 +402,30 @@ var installMetadata = {
255
402
  description: "browse and install community skills",
256
403
  implemented: true
257
404
  };
405
+ var searchMetadata = {
406
+ command: "/skills search",
407
+ description: "search community skills",
408
+ implemented: true
409
+ };
410
+ var trendingMetadata = {
411
+ command: "/skills trending",
412
+ description: "show trending community skills",
413
+ implemented: true
414
+ };
415
+ var removeMetadata = {
416
+ command: "/skills remove",
417
+ description: "remove an installed skill",
418
+ implemented: true
419
+ };
258
420
 
259
421
  export {
260
422
  skills,
261
423
  metadata,
262
424
  useMetadata,
263
- installMetadata
425
+ installMetadata,
426
+ searchMetadata,
427
+ trendingMetadata,
428
+ removeMetadata
264
429
  };
265
430
  /**
266
431
  * @license
@@ -268,4 +433,5 @@ export {
268
433
  * SPDX-License-Identifier: Apache-2.0
269
434
  *
270
435
  * Skills command - List and manage available skills
436
+ * Also handles package-management subcommands: search, trending, remove, feedback
271
437
  */