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
@@ -0,0 +1,348 @@
1
+ import {
2
+ showConfirm
3
+ } from "./chunk-YZXUDM5X.js";
4
+ import {
5
+ AUTOHAND_PATHS,
6
+ PROJECT_DIR_NAME
7
+ } from "./chunk-EGFT4PGW.js";
8
+ import {
9
+ t
10
+ } from "./chunk-APIXPPMT.js";
11
+
12
+ // src/skills/communityInstaller.ts
13
+ import crypto from "crypto";
14
+ import path from "path";
15
+ import chalk from "chalk";
16
+
17
+ // src/skills/LearnClient.ts
18
+ import { createHash } from "crypto";
19
+ var DEFAULT_LIMIT = 5;
20
+ var LearnClient = class {
21
+ search(registry, query, limit = DEFAULT_LIMIT) {
22
+ if (!query.trim()) return [];
23
+ const lowerQuery = query.toLowerCase();
24
+ const matched = registry.skills.filter((skill) => {
25
+ const searchText = [
26
+ skill.name,
27
+ skill.description,
28
+ skill.category,
29
+ ...skill.tags || [],
30
+ ...skill.languages || [],
31
+ ...skill.frameworks || []
32
+ ].join(" ").toLowerCase();
33
+ return searchText.includes(lowerQuery);
34
+ });
35
+ matched.sort((a, b) => (b.downloadCount ?? 0) - (a.downloadCount ?? 0));
36
+ return matched.slice(0, limit);
37
+ }
38
+ trending(registry, limit = 10) {
39
+ const sorted = [...registry.skills].sort((a, b) => {
40
+ const featuredDiff = Number(Boolean(b.isFeatured)) - Number(Boolean(a.isFeatured));
41
+ if (featuredDiff !== 0) return featuredDiff;
42
+ return (b.downloadCount ?? 0) - (a.downloadCount ?? 0);
43
+ });
44
+ return sorted.slice(0, limit);
45
+ }
46
+ findBySlug(registry, slug) {
47
+ let searchName = slug;
48
+ let searchAuthor;
49
+ if (slug.startsWith("@")) {
50
+ const parts = slug.slice(1).split("/");
51
+ if (parts.length === 2) {
52
+ searchAuthor = parts[0].toLowerCase();
53
+ searchName = parts[1].toLowerCase();
54
+ }
55
+ }
56
+ const lower = searchName.toLowerCase();
57
+ return registry.skills.find((s) => {
58
+ const nameMatch = s.id.toLowerCase() === lower || s.name.toLowerCase() === lower;
59
+ if (!nameMatch) return false;
60
+ if (searchAuthor && s.author?.toLowerCase() !== searchAuthor) return false;
61
+ return true;
62
+ }) || null;
63
+ }
64
+ filterLearnedSkills(skills) {
65
+ return skills.filter(
66
+ (s) => s.metadata && s.metadata["agentskill-slug"]
67
+ );
68
+ }
69
+ checkUpdates(installedSkills, registry, getShaForSkill) {
70
+ const updates = [];
71
+ for (const skill of installedSkills) {
72
+ const slug = skill.metadata?.["agentskill-slug"];
73
+ const localSha = skill.metadata?.["agentskill-sha"];
74
+ if (!slug || !localSha) continue;
75
+ const registrySkill = registry.skills.find(
76
+ (s) => s.id === slug || s.name === slug
77
+ );
78
+ if (!registrySkill) continue;
79
+ const remoteSha = getShaForSkill(registrySkill.id);
80
+ if (remoteSha && remoteSha !== localSha) {
81
+ updates.push({
82
+ name: skill.name,
83
+ slug,
84
+ localSha,
85
+ remoteSha
86
+ });
87
+ }
88
+ }
89
+ return updates;
90
+ }
91
+ static computeContentSha(content) {
92
+ return createHash("sha256").update(content).digest("hex").slice(0, 7);
93
+ }
94
+ };
95
+
96
+ // src/skills/SkillSecurityScanner.ts
97
+ var THREAT_RULES = [
98
+ // Command injection
99
+ { category: "command-injection", pattern: /rm\s+-rf\b/i, severity: 15 },
100
+ { category: "command-injection", pattern: /curl\s+.*\|\s*bash/i, severity: 20 },
101
+ { category: "command-injection", pattern: /wget\s+.*\|\s*bash/i, severity: 20 },
102
+ { category: "command-injection", pattern: /\beval\s*\(/i, severity: 15 },
103
+ { category: "command-injection", pattern: /\bexec\s*\(/i, severity: 12 },
104
+ { category: "command-injection", pattern: /\bsudo\b/i, severity: 15 },
105
+ { category: "command-injection", pattern: /chmod\s+777\b/i, severity: 12 },
106
+ // Data exfiltration
107
+ { category: "data-exfiltration", pattern: /process\.env\b/i, severity: 10 },
108
+ { category: "data-exfiltration", pattern: /\bcredentials?\b/i, severity: 8 },
109
+ { category: "data-exfiltration", pattern: /\bapi[_-]?key\b/i, severity: 8 },
110
+ { category: "data-exfiltration", pattern: /\bsecret[_-]?key\b/i, severity: 10 },
111
+ { category: "data-exfiltration", pattern: /\.ssh\/id_rsa\b/i, severity: 15 },
112
+ // Encoded payloads
113
+ { category: "encoded-payload", pattern: /\batob\s*\(/i, severity: 12 },
114
+ { category: "encoded-payload", pattern: /Buffer\.from\s*\(/i, severity: 8 },
115
+ // Network calls
116
+ { category: "network-calls", pattern: /\bfetch\s*\(\s*["'`]https?:\/\//i, severity: 10 },
117
+ { category: "network-calls", pattern: /\bwget\s+https?:\/\//i, severity: 12 },
118
+ { category: "network-calls", pattern: /\bcurl\s+https?:\/\//i, severity: 8 },
119
+ { category: "network-calls", pattern: /http\.request\s*\(/i, severity: 10 },
120
+ { category: "network-calls", pattern: /XMLHttpRequest/i, severity: 10 }
121
+ ];
122
+ var SAFE_THRESHOLD = 50;
123
+ var BLOCKED_THRESHOLD = 30;
124
+ var SkillSecurityScanner = class {
125
+ /**
126
+ * Scan skill content for security threats.
127
+ * Returns a score (0-100) and list of matched threats.
128
+ */
129
+ scan(content) {
130
+ if (!content.trim()) {
131
+ return { score: 100, threats: [], safe: true, blocked: false };
132
+ }
133
+ const lines = content.split("\n");
134
+ const threats = [];
135
+ let deductions = 0;
136
+ for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
137
+ const lineContent = lines[lineIndex];
138
+ for (const rule of THREAT_RULES) {
139
+ if (rule.pattern.test(lineContent)) {
140
+ threats.push({
141
+ category: rule.category,
142
+ pattern: rule.pattern.source,
143
+ line: lineIndex + 1,
144
+ context: lineContent.trim()
145
+ });
146
+ deductions += rule.severity;
147
+ }
148
+ }
149
+ }
150
+ const score = Math.max(0, 100 - deductions);
151
+ return {
152
+ score,
153
+ threats,
154
+ safe: score >= SAFE_THRESHOLD,
155
+ blocked: score < BLOCKED_THRESHOLD
156
+ };
157
+ }
158
+ };
159
+
160
+ // src/skills/communityInstaller.ts
161
+ async function fetchRegistryWithFallback(cache, fetcher) {
162
+ const cached = await cache.getRegistry();
163
+ if (cached) return cached;
164
+ try {
165
+ const registry = await fetcher.fetchRegistry();
166
+ await cache.setRegistry(registry);
167
+ return registry;
168
+ } catch {
169
+ return cache.getRegistryIgnoreTTL();
170
+ }
171
+ }
172
+ async function installSkillWithSecurity(ctx, skill, cache, fetcher, scope = "user") {
173
+ const targetDir = scope === "project" ? path.join(ctx.workspaceRoot, PROJECT_DIR_NAME, "skills") : AUTOHAND_PATHS.skills;
174
+ const installed = await ctx.skillsRegistry.isSkillInstalled(skill.id, targetDir);
175
+ if (installed) {
176
+ return t("commands.learn.alreadyInstalled", { name: skill.name });
177
+ }
178
+ let files = await cache.getSkillDirectory(skill.id);
179
+ if (!files) {
180
+ try {
181
+ files = await fetcher.fetchSkillDirectory(skill);
182
+ await cache.setSkillDirectory(skill.id, files);
183
+ } catch (err) {
184
+ const msg = err instanceof Error ? err.message : "Unknown error";
185
+ return chalk.red(`Failed to fetch skill files: ${msg}`);
186
+ }
187
+ }
188
+ const scanner = new SkillSecurityScanner();
189
+ const allContent = Array.from(files.values()).join("\n");
190
+ const scanResult = scanner.scan(allContent);
191
+ if (scanResult.blocked) {
192
+ const lines = [];
193
+ lines.push(chalk.red(t("commands.learn.securityBlocked", { score: String(scanResult.score) })));
194
+ lines.push("");
195
+ for (const threat of scanResult.threats) {
196
+ lines.push(chalk.red(` [${threat.category}] Line ${threat.line}: ${threat.context}`));
197
+ }
198
+ if (ctx.isNonInteractive) {
199
+ return lines.join("\n");
200
+ }
201
+ lines.push("");
202
+ const override = await showConfirm({
203
+ title: t("commands.learn.securityOverride"),
204
+ defaultValue: false
205
+ });
206
+ if (!override) {
207
+ return lines.join("\n");
208
+ }
209
+ } else if (!scanResult.safe) {
210
+ console.log(chalk.yellow(t("commands.learn.securityWarning", { score: String(scanResult.score) })));
211
+ for (const threat of scanResult.threats) {
212
+ console.log(chalk.yellow(` [${threat.category}] Line ${threat.line}: ${threat.context}`));
213
+ }
214
+ }
215
+ if (ctx.hookManager) {
216
+ const hookResults = await ctx.hookManager.executeHooks("pre-learn", {
217
+ tool: "learn",
218
+ args: { slug: skill.id, name: skill.name, scope }
219
+ });
220
+ const blocked = hookResults.some((r) => r.blockingError);
221
+ if (blocked) {
222
+ return chalk.yellow(t("commands.learn.hookBlocked"));
223
+ }
224
+ }
225
+ const skillMd = files.get("SKILL.md");
226
+ if (skillMd) {
227
+ const enriched = injectLearnMetadata(skillMd, skill);
228
+ files.set("SKILL.md", enriched);
229
+ }
230
+ const importResult = await ctx.skillsRegistry.importCommunitySkillDirectory(
231
+ skill.id,
232
+ files,
233
+ targetDir
234
+ );
235
+ if (!importResult.success) {
236
+ return chalk.red(importResult.error ?? "Failed to install skill");
237
+ }
238
+ if (ctx.hookManager) {
239
+ await ctx.hookManager.executeHooks("post-learn", {
240
+ tool: "learn",
241
+ args: { slug: skill.id, name: skill.name, scope },
242
+ path: importResult.path,
243
+ success: true
244
+ });
245
+ }
246
+ ctx.skillsRegistry.trackSkillEvent({
247
+ skillName: skill.name,
248
+ source: "community",
249
+ activationType: "explicit",
250
+ action: "install"
251
+ });
252
+ return chalk.green(t("commands.learn.installed", { name: skill.name }));
253
+ }
254
+ function injectLearnMetadata(skillMd, skill) {
255
+ const now = (/* @__PURE__ */ new Date()).toISOString();
256
+ const sha = LearnClient.computeContentSha(skillMd);
257
+ const metadataEntries = [
258
+ `agentskill-slug: ${skill.id}`,
259
+ `agentskill-owner: ${skill.author ?? "community"}`,
260
+ `agentskill-sha: ${sha}`,
261
+ `agentskill-installed: ${now}`,
262
+ `agentskill-source: github-registry`
263
+ ];
264
+ if (skillMd.startsWith("---")) {
265
+ const endIndex = skillMd.indexOf("---", 3);
266
+ if (endIndex !== -1) {
267
+ const frontmatter = skillMd.slice(0, endIndex);
268
+ const rest = skillMd.slice(endIndex);
269
+ if (frontmatter.includes("metadata:")) {
270
+ const injected = metadataEntries.map((e) => ` ${e}`).join("\n");
271
+ return frontmatter + injected + "\n" + rest;
272
+ }
273
+ const metadataBlock2 = "metadata:\n" + metadataEntries.map((e) => ` ${e}`).join("\n") + "\n";
274
+ return frontmatter + metadataBlock2 + rest;
275
+ }
276
+ }
277
+ const metadataBlock = "---\nmetadata:\n" + metadataEntries.map((e) => ` ${e}`).join("\n") + "\n---\n";
278
+ return metadataBlock + skillMd;
279
+ }
280
+ function computeProjectHash(analysis) {
281
+ const serialized = JSON.stringify({
282
+ languages: analysis.languages.slice().sort(),
283
+ frameworks: analysis.frameworks.slice().sort(),
284
+ patterns: analysis.patterns.slice().sort(),
285
+ packageManager: analysis.packageManager
286
+ });
287
+ return crypto.createHash("sha256").update(serialized).digest("hex").slice(0, 7);
288
+ }
289
+ function injectGeneratedMetadata(content, skillName, projectHash) {
290
+ const metadataLines = [
291
+ ` agentskill-slug: ${skillName}`,
292
+ ` agentskill-source: llm-generated`,
293
+ ` agentskill-generated-at: ${(/* @__PURE__ */ new Date()).toISOString()}`,
294
+ ` agentskill-project-hash: ${projectHash}`
295
+ ].join("\n");
296
+ if (content.startsWith("---")) {
297
+ if (content.includes("metadata:")) {
298
+ return content.replace(/metadata:/, `metadata:
299
+ ${metadataLines}`);
300
+ }
301
+ const endIndex = content.indexOf("---", 3);
302
+ if (endIndex !== -1) {
303
+ return content.slice(0, endIndex) + `metadata:
304
+ ${metadataLines}
305
+ ` + content.slice(endIndex);
306
+ }
307
+ }
308
+ return `---
309
+ name: ${skillName}
310
+ metadata:
311
+ ${metadataLines}
312
+ ---
313
+
314
+ ${content}`;
315
+ }
316
+
317
+ export {
318
+ LearnClient,
319
+ fetchRegistryWithFallback,
320
+ installSkillWithSecurity,
321
+ injectLearnMetadata,
322
+ computeProjectHash,
323
+ injectGeneratedMetadata
324
+ };
325
+ /**
326
+ * @license
327
+ * Copyright 2025 Autohand AI LLC
328
+ * SPDX-License-Identifier: Apache-2.0
329
+ *
330
+ * LearnClient - Search, version-check, and filtering logic for /learn command.
331
+ * Wraps GitHubRegistryFetcher with learn-specific behavior.
332
+ */
333
+ /**
334
+ * @license
335
+ * Copyright 2025 Autohand AI LLC
336
+ * SPDX-License-Identifier: Apache-2.0
337
+ *
338
+ * SkillSecurityScanner - Client-side threat pattern scanning for community skills.
339
+ * Provides the second layer of security (after server-side scoring in the registry).
340
+ */
341
+ /**
342
+ * @license
343
+ * Copyright 2025 Autohand AI LLC
344
+ * SPDX-License-Identifier: Apache-2.0
345
+ *
346
+ * Shared community skill install utilities.
347
+ * Used by both /skills (registry install) and /learn (LLM-generated install).
348
+ */
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkXBUMKEFNcjs = require('./chunk-XBUMKEFN.cjs');
6
+ var _chunkZYQMLKOKcjs = require('./chunk-ZYQMLKOK.cjs');
7
7
 
8
8
  // src/utils/prompt.ts
9
9
  async function safePrompt(questions) {
@@ -17,7 +17,7 @@ async function safePrompt(questions) {
17
17
  label: choice.message,
18
18
  value: choice.name
19
19
  }));
20
- const result = await _chunkXBUMKEFNcjs.showModal.call(void 0, {
20
+ const result = await _chunkZYQMLKOKcjs.showModal.call(void 0, {
21
21
  title: selectConfig.message,
22
22
  options,
23
23
  initialIndex: selectConfig.initial
@@ -25,19 +25,19 @@ async function safePrompt(questions) {
25
25
  value = _optionalChain([result, 'optionalAccess', _ => _.value]);
26
26
  } else if (question.type === "confirm") {
27
27
  const confirmConfig = question;
28
- value = await _chunkXBUMKEFNcjs.showConfirm.call(void 0, {
28
+ value = await _chunkZYQMLKOKcjs.showConfirm.call(void 0, {
29
29
  title: confirmConfig.message,
30
30
  defaultValue: confirmConfig.initial
31
31
  });
32
32
  } else if (question.type === "password") {
33
33
  const inputConfig = question;
34
- value = await _chunkXBUMKEFNcjs.showPassword.call(void 0, {
34
+ value = await _chunkZYQMLKOKcjs.showPassword.call(void 0, {
35
35
  title: inputConfig.message,
36
36
  validate: inputConfig.validate
37
37
  });
38
38
  } else if (question.type === "input") {
39
39
  const inputConfig = question;
40
- value = await _chunkXBUMKEFNcjs.showInput.call(void 0, {
40
+ value = await _chunkZYQMLKOKcjs.showInput.call(void 0, {
41
41
  title: inputConfig.message,
42
42
  defaultValue: inputConfig.initial,
43
43
  validate: inputConfig.validate
@@ -1,13 +1,19 @@
1
1
  import {
2
2
  t
3
- } from "./chunk-NMWEDN4Z.js";
3
+ } from "./chunk-APIXPPMT.js";
4
4
 
5
5
  // src/commands/automode.ts
6
6
  import chalk from "chalk";
7
7
  var metadata = {
8
8
  command: "/automode",
9
9
  description: t("commands.automode.description"),
10
- implemented: true
10
+ implemented: true,
11
+ subcommands: [
12
+ { name: "status", description: "Show current loop state" },
13
+ { name: "pause", description: "Pause the active loop" },
14
+ { name: "resume", description: "Resume paused loop" },
15
+ { name: "cancel", description: "Cancel the active loop" }
16
+ ]
11
17
  };
12
18
  function parseArgs(args) {
13
19
  const result = {};
@@ -137,7 +143,7 @@ function showHelp() {
137
143
  ${chalk.cyan("Auto-Mode: Autonomous Development Loops")}
138
144
 
139
145
  Auto-mode lets autohand work autonomously on tasks through
140
- iterative improvement cycles\u2014inspired by the Ralph technique.
146
+ iterative improvement cycles-inspired by the Ralph technique.
141
147
 
142
148
  ${chalk.yellow("Usage:")}
143
149
  /automode <prompt> Start auto-mode with a task