autohand-cli 0.8.0 → 0.8.3
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.
- package/README.md +97 -2
- package/dist/{AgentRegistry-NQCLWABO.cjs → AgentRegistry-HRPN6ZOF.cjs} +1 -1
- package/dist/{AgentRegistry-7LDL5HJH.js → AgentRegistry-ODDXPAFR.js} +1 -1
- package/dist/{AutomodeManager-NYIZNODK.cjs → AutomodeManager-6ATBE7Q5.cjs} +1 -1
- package/dist/{AutomodeManager-MWLKGPZK.js → AutomodeManager-EOVHGRPP.js} +1 -1
- package/dist/{CommunitySkillsCache-GTQMOCCO.cjs → CommunitySkillsCache-KE435RAR.cjs} +1 -1
- package/dist/{CommunitySkillsCache-6QPRMTJO.js → CommunitySkillsCache-QLE57BN5.js} +1 -1
- package/dist/{GitHubRegistryFetcher-S7QFUEKV.cjs → GitHubRegistryFetcher-I45SESIL.cjs} +1 -1
- package/dist/{GitHubRegistryFetcher-6JQ5JEDZ.js → GitHubRegistryFetcher-NT5GFZXS.js} +1 -1
- package/dist/HookManager-B2F35M27.js +7 -0
- package/dist/HookManager-PFAFE3FK.cjs +7 -0
- package/dist/{ImportWizard-IWVPRKFF.cjs → ImportWizard-CJRZPPHL.cjs} +12 -12
- package/dist/{ImportWizard-KASGQPUY.js → ImportWizard-OHRKBANZ.js} +5 -5
- package/dist/LearnAdvisor-FLBA6FDD.js +9 -0
- package/dist/LearnAdvisor-GG3CXQF3.cjs +9 -0
- package/dist/{McpClientManager-RKD7C6OY.cjs → McpClientManager-NQ3EW2IF.cjs} +1 -1
- package/dist/{McpClientManager-7RM6YT35.js → McpClientManager-VBIMGKXU.js} +1 -1
- package/dist/{MemoryManager-GUNLRP5S.js → MemoryManager-2LAT7IHS.js} +1 -1
- package/dist/{MemoryManager-TNSGKDKX.cjs → MemoryManager-2LQPIYVE.cjs} +1 -1
- package/dist/{PermissionManager-K7UWSNB6.js → PermissionManager-7NQHRCHY.js} +2 -2
- package/dist/PermissionManager-X57BXHJ6.cjs +11 -0
- package/dist/{ProjectProfiler-UMJJSOCE.js → ProjectProfiler-P4QJQWWA.js} +1 -1
- package/dist/{ProjectProfiler-ZDWR2ODG.cjs → ProjectProfiler-UG42W6WD.cjs} +1 -1
- package/dist/{ProviderFactory-S3LWTQQC.js → ProviderFactory-2IYJ5OPW.js} +2 -2
- package/dist/ProviderFactory-KPJOGQWF.cjs +9 -0
- package/dist/{SessionManager-IKWAK2PI.js → SessionManager-4U4JFQ3C.js} +1 -1
- package/dist/{SessionManager-FEUAU3ZJ.cjs → SessionManager-YBJAZXNO.cjs} +1 -1
- package/dist/SkillsRegistry-7O72A6TZ.cjs +9 -0
- package/dist/{SkillsRegistry-SI5RUHQ4.js → SkillsRegistry-RFEINXRT.js} +2 -2
- package/dist/{SubAgent-I75HELJG.js → SubAgent-JT4HZHN7.js} +2 -2
- package/dist/{SubAgent-K3QP6WHC.cjs → SubAgent-VPNYDWAU.cjs} +3 -3
- package/dist/{SyncApiClient-LVIO4C2S.js → SyncApiClient-B5RT2ECG.js} +1 -1
- package/dist/{SyncApiClient-ZNYMT36M.cjs → SyncApiClient-HQXJL5BT.cjs} +1 -1
- package/dist/about-4DB5KTHW.js +12 -0
- package/dist/about-LXAOXZFT.cjs +12 -0
- package/dist/actionExecutor-23JB2WUC.js +19 -0
- package/dist/actionExecutor-X5UEZSKH.cjs +19 -0
- package/dist/add-dir-TUJM3PG5.js +10 -0
- package/dist/add-dir-YC37DMSF.cjs +10 -0
- package/dist/{agents-FENGUSJD.js → agents-YF3BSUU5.js} +3 -3
- package/dist/agents-ZOUHPMYR.cjs +12 -0
- package/dist/agents-new-HSH4GQPG.js +14 -0
- package/dist/agents-new-VYUDOCE7.cjs +14 -0
- package/dist/autoSkill-LQEVQFIH.js +20 -0
- package/dist/autoSkill-X5W52WOE.cjs +20 -0
- package/dist/automode-R6P3VHLS.js +10 -0
- package/dist/automode-SJGM7VEI.cjs +10 -0
- package/dist/{cc-7LEIJ3KF.js → cc-AYEP2CA3.js} +1 -1
- package/dist/{cc-Q5MM4AWC.cjs → cc-S2QLQFBR.cjs} +1 -1
- package/dist/{chunk-MUBW5UDH.cjs → chunk-245KJE5Y.cjs} +4 -4
- package/dist/{chunk-6OYHF6MF.js → chunk-2UC22DJU.js} +3 -3
- package/dist/{chunk-N254NRHT.cjs → chunk-3HT76LNN.cjs} +9 -2
- package/dist/{chunk-XMNHZRUB.cjs → chunk-3K2ESU53.cjs} +2 -2
- package/dist/{chunk-OI7OIGNB.cjs → chunk-3L53OA4E.cjs} +10 -10
- package/dist/{chunk-XUDSXGGV.cjs → chunk-3O3MOK5C.cjs} +169 -46
- package/dist/{chunk-WJDPVW7T.js → chunk-3VTAFAL2.js} +4 -4
- package/dist/{chunk-2RIAPTET.js → chunk-3WICOC33.js} +71 -57
- package/dist/chunk-3WVJEL7K.cjs +568 -0
- package/dist/{chunk-JJWCQLOU.cjs → chunk-47CKWKEX.cjs} +2 -2
- package/dist/{chunk-SRQW3B6J.cjs → chunk-56SWIDEL.cjs} +24 -17
- package/dist/{chunk-OBLIITWJ.js → chunk-5K6NGAVM.js} +2 -2
- package/dist/chunk-64H4FRM3.cjs +340 -0
- package/dist/{chunk-VNQ5GL34.js → chunk-6ZCULLCA.js} +1 -1
- package/dist/{chunk-RVUQKMXX.cjs → chunk-7BTSG4ME.cjs} +5067 -2204
- package/dist/{chunk-H6ZGZEBG.cjs → chunk-7TQH3CL4.cjs} +9 -9
- package/dist/{chunk-YYB42DCU.cjs → chunk-A4IJHHV7.cjs} +10 -4
- package/dist/{chunk-OPR34VHL.cjs → chunk-ADUFCS4Q.cjs} +174 -8
- package/dist/{chunk-IUMJYXBX.cjs → chunk-AEJH23FO.cjs} +6 -6
- package/dist/{chunk-HFMLWH7B.js → chunk-APIXPPMT.js} +5067 -2204
- package/dist/{chunk-ZSE42BRE.js → chunk-AYS2ASM7.js} +1 -1
- package/dist/{chunk-7GDVDSNI.js → chunk-B53A2NM2.js} +989 -135
- package/dist/{chunk-ITB3FS72.js → chunk-BJXSNT46.js} +4 -4
- package/dist/{chunk-IVM5F2AE.js → chunk-BYONM7UM.js} +1 -1
- package/dist/{chunk-EEGK5DYE.cjs → chunk-C5IJIM2V.cjs} +20 -14
- package/dist/{chunk-UJTCTTUF.cjs → chunk-CB4E2T5N.cjs} +49 -8
- package/dist/{chunk-UBS46QL3.cjs → chunk-CZXGCVTR.cjs} +2 -2
- package/dist/{chunk-AFN7LH5N.cjs → chunk-DJDE4DTT.cjs} +17 -17
- package/dist/{chunk-CVVEYUFR.js → chunk-DNUOXBHL.js} +108 -3
- package/dist/{chunk-DN573ME7.cjs → chunk-DRWDEHE5.cjs} +4 -4
- package/dist/{chunk-5GGX6WNY.cjs → chunk-DV2ZHK7B.cjs} +22 -22
- package/dist/{chunk-BT35E7NE.cjs → chunk-DVUHHH3B.cjs} +4 -4
- package/dist/{chunk-MHSDHPC4.cjs → chunk-DVZOENQ7.cjs} +2 -2
- package/dist/chunk-EFX2QSZX.cjs +33 -0
- package/dist/{chunk-Y2SXUCNJ.js → chunk-EGMZDTSL.js} +1 -1
- package/dist/{chunk-7QEE6SW6.cjs → chunk-EGPXJERY.cjs} +26 -26
- package/dist/{chunk-Q5RN7RXC.js → chunk-FTYY5JJD.js} +2 -2
- package/dist/{chunk-T63AMO6H.js → chunk-G27PQQFD.js} +1 -1
- package/dist/{chunk-CWALFEGU.js → chunk-G4CAKI3V.js} +1 -1
- package/dist/{chunk-D6VG7B5X.cjs → chunk-GCXYXLRA.cjs} +2 -1
- package/dist/{chunk-FYZ67R4R.js → chunk-GJH7XMSK.js} +14 -0
- package/dist/chunk-H2ZRHQQV.js +33 -0
- package/dist/{chunk-OUHQZFN4.js → chunk-HBXAA3XB.js} +6 -1
- package/dist/{chunk-XWASJ2QL.js → chunk-HBZU3RBZ.js} +3 -3
- package/dist/{chunk-E23CMMNJ.js → chunk-HIVRCQS2.js} +8 -2
- package/dist/{chunk-TFSRRZWP.cjs → chunk-HLHTG5ZU.cjs} +15 -1
- package/dist/{chunk-3WCOFXQS.cjs → chunk-HNRPK5MY.cjs} +23 -23
- package/dist/{chunk-MGMXR67S.cjs → chunk-HPHJ73GU.cjs} +9 -9
- package/dist/{chunk-63WXWFDI.cjs → chunk-HVKOZ2VP.cjs} +11 -11
- package/dist/{chunk-LQ4LQQG6.cjs → chunk-HXGBSJL5.cjs} +2 -2
- package/dist/{chunk-GCHELXLO.js → chunk-IDFF5J2E.js} +2 -2
- package/dist/{chunk-D3YCFT5O.cjs → chunk-IFFXSTOM.cjs} +3 -3
- package/dist/{chunk-SHFA46CS.cjs → chunk-J2GSFVUV.cjs} +8 -8
- package/dist/{chunk-5EIEWVYX.js → chunk-JCLYQ2JC.js} +2 -2
- package/dist/{chunk-4HKTYHNL.cjs → chunk-JJLYWH5Y.cjs} +17 -17
- package/dist/{chunk-SALLHB2I.js → chunk-JYTDYJVW.js} +1 -1
- package/dist/{chunk-CDMGQR4L.cjs → chunk-K2C56QGS.cjs} +226 -50
- package/dist/{chunk-643VRA5S.cjs → chunk-KANW6OYC.cjs} +3 -3
- package/dist/{chunk-5YJG6H6P.cjs → chunk-KLWJIPU2.cjs} +10 -10
- package/dist/{chunk-G7SZIOHF.js → chunk-KPELYZ6L.js} +2 -2
- package/dist/{chunk-2ELK5DMH.js → chunk-KQGPTCQJ.js} +3 -3
- package/dist/{chunk-S6BDWWUG.cjs → chunk-KWXVKLQ5.cjs} +5 -5
- package/dist/{chunk-EIU7K7CM.js → chunk-L3TWPROA.js} +5 -5
- package/dist/{chunk-JS7IPR7P.js → chunk-LIEXWM2M.js} +12 -1
- package/dist/{chunk-JMFDD7IZ.js → chunk-LWUJFGOZ.js} +2 -2
- package/dist/{chunk-LXDOQTXQ.cjs → chunk-MERYP6AM.cjs} +113 -8
- package/dist/{chunk-RO46YAPI.js → chunk-MYISNQH4.js} +1 -1
- package/dist/chunk-MZAPWNAC.cjs +207 -0
- package/dist/{chunk-Q2VYSHWU.js → chunk-N23UAW4I.js} +1 -1
- package/dist/{chunk-5DDDUUBM.cjs → chunk-N2BLVUPM.cjs} +3 -3
- package/dist/{chunk-TWEKBHUO.js → chunk-N7LI55V4.js} +3 -3
- package/dist/{chunk-YKS55CMT.js → chunk-NA6WQDYW.js} +152 -29
- package/dist/{chunk-LL3PQ2U6.js → chunk-NAGQ2PDC.js} +195 -19
- package/dist/chunk-NAJ4IZKD.cjs +504 -0
- package/dist/{chunk-DH7DKCUL.js → chunk-NDMIPTV4.js} +1 -1
- package/dist/{chunk-YDCDGTK6.cjs → chunk-NNPAM4HC.cjs} +5 -5
- package/dist/{chunk-GHSBZ3YB.js → chunk-NTSDP2WB.js} +2 -2
- package/dist/chunk-OHUZKDGX.js +348 -0
- package/dist/{chunk-AMT2UZBI.cjs → chunk-OLSBBZW6.cjs} +5 -5
- package/dist/{chunk-SIHRD34Z.js → chunk-OOKY3HPZ.js} +8 -2
- package/dist/{chunk-MVWOQBCC.cjs → chunk-OUZQXMHL.cjs} +11 -11
- package/dist/chunk-PGESAU2W.cjs +2030 -0
- package/dist/{chunk-IQ5RXU6O.js → chunk-QEGOB6QV.js} +1 -1
- package/dist/{chunk-JSBRDJBE.js → chunk-QGM4M3NI.js} +8 -1
- package/dist/{chunk-EF4LKUQY.js → chunk-QNGEW5TC.js} +1 -1
- package/dist/{chunk-QT2VZNFA.js → chunk-QXH5RCFI.js} +2 -2
- package/dist/chunk-R33VKSH5.cjs +348 -0
- package/dist/chunk-RDF37HKB.cjs +326 -0
- package/dist/{chunk-55B6SBHK.js → chunk-SJAVBCOA.js} +3 -3
- package/dist/{chunk-YS34SVY5.js → chunk-SKV2F3NM.js} +1 -1
- package/dist/{chunk-MHLE6AVN.cjs → chunk-SKYG33B2.cjs} +3 -3
- package/dist/{chunk-EPNYD4NV.js → chunk-SLQAYV3W.js} +1 -1
- package/dist/{chunk-IWVQ2EW3.js → chunk-SV2WA57F.js} +5 -5
- package/dist/{chunk-DLG43ZJ7.cjs → chunk-SYVYLZZF.cjs} +2 -2
- package/dist/{chunk-QUFAULH7.js → chunk-SZOLA6FR.js} +2 -1
- package/dist/{chunk-WGTJOIB7.cjs → chunk-T2M64VHA.cjs} +13 -13
- package/dist/{chunk-TQHOVHRS.js → chunk-TNZRZQ7Q.js} +1 -1
- package/dist/chunk-TUAITHWL.js +326 -0
- package/dist/{chunk-WFUUXADU.js → chunk-TUD3Z3BD.js} +170 -4
- package/dist/{chunk-LVE6Z5SL.cjs → chunk-U46VYPLR.cjs} +7 -7
- package/dist/{chunk-PGRH5Q77.cjs → chunk-U55TWFJI.cjs} +12 -1
- package/dist/{chunk-SO3QQJAZ.js → chunk-ULDM2SNB.js} +11 -4
- package/dist/{chunk-HA7OAVOB.cjs → chunk-VEKDGU2Q.cjs} +12 -12
- package/dist/{chunk-HQ7YZKXE.js → chunk-VWDHR4HV.js} +2 -2
- package/dist/{chunk-GO3N7LRW.cjs → chunk-W7RYQJLO.cjs} +6 -6
- package/dist/{chunk-F23EVNJU.js → chunk-WHE2SWHU.js} +1 -1
- package/dist/{chunk-PEC45WYS.js → chunk-X2MSVKDV.js} +1 -1
- package/dist/{chunk-RD5XAJR2.cjs → chunk-X2YOZQIP.cjs} +6 -6
- package/dist/{chunk-Q5RX3XGB.cjs → chunk-X5VSP65C.cjs} +2 -2
- package/dist/{chunk-TERCG25S.js → chunk-XRZEUWKF.js} +1 -1
- package/dist/{chunk-VJYPP6PP.cjs → chunk-XTB6VJVQ.cjs} +6 -6
- package/dist/chunk-XVUHNWMX.js +340 -0
- package/dist/{chunk-UGTFKUW4.js → chunk-XX2ZO7DS.js} +2 -2
- package/dist/{chunk-33A755XB.cjs → chunk-Y45G6ZO5.cjs} +3 -3
- package/dist/{chunk-UTI6ZQEY.cjs → chunk-Y72HH2TF.cjs} +9 -9
- package/dist/{chunk-PUOE5BCN.js → chunk-YGN4CQIP.js} +1 -1
- package/dist/{chunk-5OBNULPU.js → chunk-YZXUDM5X.js} +1 -1
- package/dist/{chunk-AHD5JJ6F.cjs → chunk-Z36XBUMX.cjs} +6 -1
- package/dist/chunk-ZLSGXMGQ.js +568 -0
- package/dist/chunk-ZSPXQYG2.js +504 -0
- package/dist/{chunk-FPAE6ORV.cjs → chunk-ZYQMLKOK.cjs} +6 -6
- package/dist/{chunk-WTNBX2JO.js → chunk-ZYVS43MU.js} +47 -6
- package/dist/{clear-J7XS6T5W.js → clear-A3N4GK2S.js} +3 -3
- package/dist/clear-GK4IEUUS.cjs +12 -0
- package/dist/communityInstaller-LOP2EDH5.js +19 -0
- package/dist/communityInstaller-XXC7RLE4.cjs +19 -0
- package/dist/completion-HWABSAEL.js +14 -0
- package/dist/completion-IUUVQG4D.cjs +14 -0
- package/dist/config-HF7WOLZF.cjs +18 -0
- package/dist/{config-2TB3A55J.js → config-HPJPKTO6.js} +4 -4
- package/dist/{constants-UFM5B232.js → constants-LISJW3DD.js} +1 -1
- package/dist/{constants-6CPCJ3DY.cjs → constants-PEO3P2SJ.cjs} +1 -1
- package/dist/{defaultHooks-RCXPHF4M.cjs → defaultHooks-IHSJR2AX.cjs} +1 -1
- package/dist/{defaultHooks-RDRMER3Z.js → defaultHooks-KUKHK3AG.js} +1 -1
- package/dist/export-QJAV2FCZ.js +12 -0
- package/dist/export-XSRFXGWU.cjs +12 -0
- package/dist/{extractSessionMemories-V7K42ZHW.js → extractSessionMemories-A2JX5WJ2.js} +1 -1
- package/dist/{extractSessionMemories-SDW2MVBQ.cjs → extractSessionMemories-XL3MS37F.cjs} +1 -1
- package/dist/feedback-4TCIL3ML.cjs +15 -0
- package/dist/feedback-SJ6VVEY3.js +15 -0
- package/dist/{filesystem-MCFXJQ6R.cjs → filesystem-W56QZUJF.cjs} +1 -1
- package/dist/{filesystem-3SGCW2BF.js → filesystem-Z7BWAWMZ.js} +1 -1
- package/dist/{formatters-6K7QVWQL.cjs → formatters-53XTCNGQ.cjs} +1 -1
- package/dist/{formatters-DQHO5I36.js → formatters-T6KV4BPP.js} +1 -1
- package/dist/{help-I5GRCA3S.js → help-GFQXNZOK.js} +3 -3
- package/dist/help-ISBVQL3S.cjs +12 -0
- package/dist/{history-OCHJBJW7.js → history-E3N6BJP7.js} +3 -3
- package/dist/history-XQ4GTSFU.cjs +14 -0
- package/dist/hooks-CJNKJ5PF.js +13 -0
- package/dist/hooks-UTMBTAXT.cjs +13 -0
- package/dist/i18n-N7QQ7A5M.cjs +33 -0
- package/dist/{i18n-KHBXUALK.js → i18n-SY7QRM22.js} +2 -2
- package/dist/ide-RTA4UJV4.js +12 -0
- package/dist/ide-VWVOLIFF.cjs +12 -0
- package/dist/immediateCommandRouter-BW34JNXL.js +9 -0
- package/dist/immediateCommandRouter-SHOVNB5X.cjs +9 -0
- package/dist/{import-PQJPNXA4.cjs → import-ADI37ZUR.cjs} +4 -4
- package/dist/import-KGKKZ3B7.js +10 -0
- package/dist/{import-EAAX5HJR.js → import-W7SVLSTC.js} +4 -4
- package/dist/import-ZLJVONXH.cjs +10 -0
- package/dist/index.cjs +6270 -2431
- package/dist/index.js +6262 -2423
- package/dist/init-7MFK626E.js +10 -0
- package/dist/init-TBKAB4LZ.cjs +10 -0
- package/dist/language-MDSHEXHB.cjs +18 -0
- package/dist/language-PXTQSHIG.js +18 -0
- package/dist/learn-623TW5EK.cjs +20 -0
- package/dist/learn-BCPV7GM2.js +20 -0
- package/dist/{lint-D5UOJWIK.cjs → lint-4NDGCSCL.cjs} +1 -1
- package/dist/{lint-NJPZWVN2.js → lint-FZ7ZJUB3.js} +1 -1
- package/dist/{localProjectPermissions-UFSMNTBJ.cjs → localProjectPermissions-BHQXEWZJ.cjs} +1 -1
- package/dist/{localProjectPermissions-N77HA3XK.js → localProjectPermissions-GMOUYQM6.js} +1 -1
- package/dist/login-QMVEETWJ.js +20 -0
- package/dist/login-QYMXAL3K.cjs +20 -0
- package/dist/logout-2CMTDAOJ.js +18 -0
- package/dist/logout-ZOHVZAUK.cjs +18 -0
- package/dist/mcp-IUVKK65S.js +18 -0
- package/dist/mcp-TXC7PYG3.cjs +18 -0
- package/dist/{mcp-install-KSADVDBE.js → mcp-install-2FEROZTL.js} +8 -8
- package/dist/{mcp-install-GROTZHAW.cjs → mcp-install-WM6BQRI5.cjs} +12 -12
- package/dist/memory-J73WZH2I.js +10 -0
- package/dist/memory-WRIHDEPK.cjs +10 -0
- package/dist/{message-ZJ5AYAMT.cjs → message-4OKO775J.cjs} +1 -1
- package/dist/{message-JUBOK2VU.js → message-X3LOAAM7.js} +1 -1
- package/dist/model-AES267IN.js +10 -0
- package/dist/model-RLP75SF5.cjs +10 -0
- package/dist/{new-7VYM36RC.js → new-5CLF3MKH.js} +3 -3
- package/dist/new-HLSFL6A4.cjs +12 -0
- package/dist/{patch-MOD7QC3D.cjs → patch-DJ2GPFST.cjs} +1 -1
- package/dist/{patch-5F6VBIT3.js → patch-NIJWIRHS.js} +1 -1
- package/dist/permissions-GP6FTGZ2.js +13 -0
- package/dist/permissions-O6EKKPOG.cjs +13 -0
- package/dist/{plan-G5CEKJI4.js → plan-65HMS5HQ.js} +1 -1
- package/dist/{plan-QKOHE3LH.cjs → plan-MCAXDIM2.cjs} +1 -1
- package/dist/quit-TQX6GXA5.cjs +10 -0
- package/dist/quit-XDZYRSPU.js +10 -0
- package/dist/{registry-A5XLMQVC.cjs → registry-IVT4G2RT.cjs} +299 -19
- package/dist/{registry-WQLWHOLY.js → registry-PTHWERKC.js} +290 -10
- package/dist/repeat-BSPS5TWD.cjs +13 -0
- package/dist/repeat-EVCWUL6Z.js +13 -0
- package/dist/resume-2GOPDLL4.cjs +13 -0
- package/dist/resume-37IUVDA6.js +13 -0
- package/dist/search-7KUSHIBL.cjs +17 -0
- package/dist/search-OJGDRIMA.js +17 -0
- package/dist/{session-BSU2L5UI.cjs → session-LXKC4X5Q.cjs} +1 -1
- package/dist/{session-SZMRN5KG.js → session-NMMO4QOL.js} +1 -1
- package/dist/sessions-6GWEBMKS.js +10 -0
- package/dist/sessions-CYYCHSQG.cjs +10 -0
- package/dist/settings-2D7CAO66.cjs +30 -0
- package/dist/{settings-D6JXX5RG.js → settings-BXR6SBJP.js} +8 -8
- package/dist/share-BXQY5IQU.js +14 -0
- package/dist/share-OSFXZBGS.cjs +14 -0
- package/dist/skills-FL6O6AOM.cjs +26 -0
- package/dist/skills-PG542VEB.cjs +76 -0
- package/dist/skills-PNKQZRNK.js +26 -0
- package/dist/skills-ZZCIAS7C.js +76 -0
- package/dist/{skills-install-UMK5H3SO.cjs → skills-install-67DOBPJC.cjs} +12 -12
- package/dist/{skills-install-QNQWC2MV.js → skills-install-SRC3Z2MS.js} +8 -8
- package/dist/skills-new-XFMEHHIF.cjs +15 -0
- package/dist/skills-new-ZNZPHUKS.js +15 -0
- package/dist/slashCommands-LLCNPK3X.js +76 -0
- package/dist/slashCommands-RXZZS6RE.cjs +76 -0
- package/dist/status-BCECUJXT.cjs +11 -0
- package/dist/status-EFO7MQU3.js +11 -0
- package/dist/sync-IJYJ6KKM.js +18 -0
- package/dist/sync-LFT6SBPF.cjs +18 -0
- package/dist/{sync-7JMZVEQD.cjs → sync-U7SDPBNZ.cjs} +1 -1
- package/dist/{sync-KWX67OUN.js → sync-VU2NSJ4O.js} +1 -1
- package/dist/{tasks-5FPBIFLC.js → tasks-R5MBGAQ6.js} +1 -1
- package/dist/{tasks-TXGKGNH6.cjs → tasks-V4WB3MFR.cjs} +1 -1
- package/dist/team-JESCHGWB.js +9 -0
- package/dist/team-VQQKWGZB.cjs +9 -0
- package/dist/{teammate-3C4MLRGH.js → teammate-SD26GR37.js} +7 -7
- package/dist/{teammate-7C3UDQSH.cjs → teammate-SXRVXNQV.cjs} +7 -7
- package/dist/theme-AWBHSG7J.cjs +18 -0
- package/dist/theme-TQLBPJ2E.js +18 -0
- package/dist/ui/questionModal.cjs +6 -6
- package/dist/ui/questionModal.js +5 -5
- package/dist/undo-IBBGP7A2.cjs +10 -0
- package/dist/undo-OL2EDBRY.js +10 -0
- package/dist/{update-TVAJMMBC.js → update-53WMKYVS.js} +1 -1
- package/dist/{update-Z6BIIQDC.cjs → update-NV6QRYY7.cjs} +1 -1
- package/package.json +2 -1
- package/dist/HookManager-Q2KYMCP4.cjs +0 -7
- package/dist/HookManager-TTP4Y6DC.js +0 -7
- package/dist/PermissionManager-2GO5PQ6M.cjs +0 -11
- package/dist/ProviderFactory-EFFQBRQ6.cjs +0 -9
- package/dist/SkillsRegistry-GDEGFP6O.cjs +0 -9
- package/dist/about-B2AGTV6N.js +0 -12
- package/dist/about-V2HWEZZO.cjs +0 -12
- package/dist/actionExecutor-6XCVL2SJ.js +0 -19
- package/dist/actionExecutor-YRUJNB5G.cjs +0 -19
- package/dist/add-dir-7FBQ5IFV.js +0 -10
- package/dist/add-dir-ALBSYRV3.cjs +0 -10
- package/dist/agents-FCGEWTA3.cjs +0 -12
- package/dist/agents-new-FU3O55CO.js +0 -14
- package/dist/agents-new-SAFTJ7TK.cjs +0 -14
- package/dist/automode-CYLGXQ4A.cjs +0 -10
- package/dist/automode-O7G3DUYN.js +0 -10
- package/dist/chunk-2JYIR3EC.cjs +0 -1176
- package/dist/chunk-Q3MJ6CYS.cjs +0 -193
- package/dist/clear-ES5WCZRF.cjs +0 -12
- package/dist/completion-XQTDTJLK.cjs +0 -14
- package/dist/completion-XR6ZONJQ.js +0 -14
- package/dist/config-RDMVIV26.cjs +0 -18
- package/dist/export-EWAYH353.cjs +0 -12
- package/dist/export-ZWA6XGVS.js +0 -12
- package/dist/feedback-5RV6ODW4.js +0 -15
- package/dist/feedback-ZPITHFJR.cjs +0 -15
- package/dist/help-X52PZM24.cjs +0 -12
- package/dist/history-4WIOZ4TW.cjs +0 -14
- package/dist/hooks-IAVTXUAI.cjs +0 -13
- package/dist/hooks-YF6HL23E.js +0 -13
- package/dist/i18n-MVQIAZWS.cjs +0 -33
- package/dist/ide-4R3BEBIS.js +0 -12
- package/dist/ide-C7WSPQTR.cjs +0 -12
- package/dist/import-2ICSKDL7.cjs +0 -10
- package/dist/import-KRVVYJCZ.js +0 -10
- package/dist/init-6K3NRDOM.js +0 -10
- package/dist/init-AOUGGITS.cjs +0 -10
- package/dist/language-Q7YFDVSR.cjs +0 -18
- package/dist/language-Y6ZC7LET.js +0 -18
- package/dist/login-6OAH2NEH.cjs +0 -20
- package/dist/login-DL3377MD.js +0 -20
- package/dist/logout-ELQBUMTU.cjs +0 -18
- package/dist/logout-TLYA5W45.js +0 -18
- package/dist/mcp-BHOIBYUB.js +0 -18
- package/dist/mcp-TNUEXR5T.cjs +0 -18
- package/dist/memory-6DRFA43C.js +0 -10
- package/dist/memory-IORZE6WF.cjs +0 -10
- package/dist/model-CJPSPGIC.cjs +0 -10
- package/dist/model-MQXC56ES.js +0 -10
- package/dist/new-7D2B7IWM.cjs +0 -12
- package/dist/permissions-MM77OSFO.js +0 -13
- package/dist/permissions-W2F62DJ6.cjs +0 -13
- package/dist/quit-7D2RDGTD.cjs +0 -10
- package/dist/quit-PKBSEJOL.js +0 -10
- package/dist/resume-FBKXSDOA.js +0 -13
- package/dist/resume-KLPDYPWQ.cjs +0 -13
- package/dist/search-7RNYTCNO.js +0 -17
- package/dist/search-UESMQZC3.cjs +0 -17
- package/dist/sessions-TSSUFWIJ.cjs +0 -10
- package/dist/sessions-WAXBUQTU.js +0 -10
- package/dist/settings-RKYGXKDG.cjs +0 -30
- package/dist/share-GLX4YHS4.cjs +0 -14
- package/dist/share-U2M2KBFJ.js +0 -14
- package/dist/skills-63QLZMUO.cjs +0 -14
- package/dist/skills-BAMMXP3Q.js +0 -14
- package/dist/skills-new-NYKNHJHV.cjs +0 -15
- package/dist/skills-new-NZFGFKML.js +0 -15
- package/dist/slashCommands-EJ23C3Z4.cjs +0 -69
- package/dist/slashCommands-JQIL4EWX.js +0 -69
- package/dist/status-BKC7GBNQ.js +0 -11
- package/dist/status-FU3CPJWQ.cjs +0 -11
- package/dist/sync-3IEIHXIP.cjs +0 -18
- package/dist/sync-YVPFT7SL.js +0 -18
- package/dist/team-GVK5L73L.cjs +0 -9
- package/dist/team-RWIKCLTG.js +0 -9
- package/dist/theme-A2CEHI7W.js +0 -18
- package/dist/theme-LNOQOVR4.cjs +0 -18
- package/dist/undo-F2IZJQUV.js +0 -10
- package/dist/undo-QEV42XLU.cjs +0 -10
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
var _chunkXDLH4EDLcjs = require('./chunk-XDLH4EDL.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkNNPAM4HCcjs = require('./chunk-NNPAM4HC.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkCB4E2T5Ncjs = require('./chunk-CB4E2T5N.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _chunk7BTSG4MEcjs = require('./chunk-7BTSG4ME.cjs');
|
|
17
17
|
|
|
18
18
|
// src/commands/mcp.ts
|
|
19
19
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -119,14 +119,14 @@ async function showMcpServerList(options) {
|
|
|
119
119
|
let completed = false;
|
|
120
120
|
let instance;
|
|
121
121
|
const renderList = () => {
|
|
122
|
-
const element = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
122
|
+
const element = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNPAM4HCcjs.I18nProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
123
123
|
McpServerList,
|
|
124
124
|
{
|
|
125
125
|
servers: currentServers,
|
|
126
126
|
onToggle: async (name, status) => {
|
|
127
127
|
currentServers = await options.onToggle(name, status);
|
|
128
128
|
instance.rerender(
|
|
129
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
129
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNPAM4HCcjs.I18nProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
130
130
|
McpServerList,
|
|
131
131
|
{
|
|
132
132
|
servers: currentServers,
|
|
@@ -176,13 +176,13 @@ async function loadConfigForScope(scopeInput, workspaceRoot) {
|
|
|
176
176
|
throw new Error(`Invalid scope "${scopeInput}". Use: user or project.`);
|
|
177
177
|
}
|
|
178
178
|
if (scope === "user") {
|
|
179
|
-
return { config: await
|
|
179
|
+
return { config: await _chunkCB4E2T5Ncjs.loadConfig.call(void 0, ), scope };
|
|
180
180
|
}
|
|
181
181
|
if (!workspaceRoot) {
|
|
182
182
|
throw new Error("Workspace root is required for project scope.");
|
|
183
183
|
}
|
|
184
184
|
const projectConfigPath = _path2.default.join(workspaceRoot, _chunkSEKD5FH3cjs.PROJECT_DIR_NAME, "config.json");
|
|
185
|
-
return { config: await
|
|
185
|
+
return { config: await _chunkCB4E2T5Ncjs.loadConfig.call(void 0, projectConfigPath), scope };
|
|
186
186
|
}
|
|
187
187
|
function syncRuntimeConfig(runtimeConfig, updatedConfig) {
|
|
188
188
|
if (!runtimeConfig) return;
|
|
@@ -238,10 +238,10 @@ async function showInteractiveList(manager, config) {
|
|
|
238
238
|
if (items.length === 0) {
|
|
239
239
|
const lines = [];
|
|
240
240
|
lines.push("");
|
|
241
|
-
lines.push(_chalk2.default.bold.cyan(
|
|
241
|
+
lines.push(_chalk2.default.bold.cyan(_chunk7BTSG4MEcjs.t.call(void 0, "commands.mcp.title")));
|
|
242
242
|
lines.push(_chalk2.default.gray("\u2500".repeat(50)));
|
|
243
243
|
lines.push("");
|
|
244
|
-
lines.push(
|
|
244
|
+
lines.push(_chunk7BTSG4MEcjs.t.call(void 0, "commands.mcp.noServers"));
|
|
245
245
|
lines.push("");
|
|
246
246
|
lines.push(_chalk2.default.gray("Add a server:"));
|
|
247
247
|
lines.push(_chalk2.default.gray(" /mcp add [--scope user|project] <name> <command> [args...]"));
|
|
@@ -292,7 +292,7 @@ async function handleConnect(manager, config, args) {
|
|
|
292
292
|
return `Server "${serverName}" not found in config. Use /mcp add to add it first.`;
|
|
293
293
|
}
|
|
294
294
|
try {
|
|
295
|
-
console.log(_chalk2.default.cyan(
|
|
295
|
+
console.log(_chalk2.default.cyan(_chunk7BTSG4MEcjs.t.call(void 0, "commands.mcp.connecting")));
|
|
296
296
|
await manager.connect(serverConfig);
|
|
297
297
|
const tools = manager.getToolsForServer(serverName);
|
|
298
298
|
return `Connected to ${serverName} (${tools.length} tools available)`;
|
|
@@ -439,7 +439,7 @@ async function handleAdd(manager, config, args, workspaceRoot) {
|
|
|
439
439
|
if (wasAutoConnectDisabled) reenabledParts.push("auto-connect");
|
|
440
440
|
const reenabled = reenabledParts.join(" and ");
|
|
441
441
|
try {
|
|
442
|
-
await
|
|
442
|
+
await _chunkCB4E2T5Ncjs.saveConfig.call(void 0, targetConfig);
|
|
443
443
|
syncRuntimeConfig(config, targetConfig);
|
|
444
444
|
try {
|
|
445
445
|
await manager.connect(existing);
|
|
@@ -464,7 +464,7 @@ async function handleAdd(manager, config, args, workspaceRoot) {
|
|
|
464
464
|
}
|
|
465
465
|
existing.autoConnect = true;
|
|
466
466
|
try {
|
|
467
|
-
await
|
|
467
|
+
await _chunkCB4E2T5Ncjs.saveConfig.call(void 0, targetConfig);
|
|
468
468
|
syncRuntimeConfig(config, targetConfig);
|
|
469
469
|
try {
|
|
470
470
|
await manager.disconnect(name);
|
|
@@ -483,7 +483,7 @@ async function handleAdd(manager, config, args, workspaceRoot) {
|
|
|
483
483
|
}
|
|
484
484
|
targetConfig.mcp.servers.push(newServer);
|
|
485
485
|
try {
|
|
486
|
-
await
|
|
486
|
+
await _chunkCB4E2T5Ncjs.saveConfig.call(void 0, targetConfig);
|
|
487
487
|
syncRuntimeConfig(config, targetConfig);
|
|
488
488
|
try {
|
|
489
489
|
await manager.connect(newServer);
|
|
@@ -540,7 +540,7 @@ async function handleRemove(manager, config, args, workspaceRoot) {
|
|
|
540
540
|
}
|
|
541
541
|
targetConfig.mcp.servers.splice(serverIndex, 1);
|
|
542
542
|
try {
|
|
543
|
-
await
|
|
543
|
+
await _chunkCB4E2T5Ncjs.saveConfig.call(void 0, targetConfig);
|
|
544
544
|
syncRuntimeConfig(config, targetConfig);
|
|
545
545
|
return `Removed "${serverName}" from ${scopeLabel ? `${scopeLabel} config` : "config"}`;
|
|
546
546
|
} catch (error) {
|
|
@@ -549,12 +549,19 @@ async function handleRemove(manager, config, args, workspaceRoot) {
|
|
|
549
549
|
}
|
|
550
550
|
var metadata = {
|
|
551
551
|
command: "/mcp",
|
|
552
|
-
description:
|
|
553
|
-
implemented: true
|
|
552
|
+
description: _chunk7BTSG4MEcjs.t.call(void 0, "commands.mcp.description"),
|
|
553
|
+
implemented: true,
|
|
554
|
+
subcommands: [
|
|
555
|
+
{ name: "connect", description: "Connect to a configured MCP server" },
|
|
556
|
+
{ name: "disconnect", description: "Disconnect from a server" },
|
|
557
|
+
{ name: "list", description: "List available tools from servers" },
|
|
558
|
+
{ name: "add", description: "Add a server to config" },
|
|
559
|
+
{ name: "remove", description: "Remove a server from config" }
|
|
560
|
+
]
|
|
554
561
|
};
|
|
555
562
|
var installMetadata = {
|
|
556
563
|
command: "/mcp install",
|
|
557
|
-
description:
|
|
564
|
+
description: _chunk7BTSG4MEcjs.t.call(void 0, "commands.mcp.installDescription"),
|
|
558
565
|
implemented: true
|
|
559
566
|
};
|
|
560
567
|
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkR33VKSH5cjs = require('./chunk-R33VKSH5.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunkRDF37HKBcjs = require('./chunk-RDF37HKB.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
var _chunkNAJ4IZKDcjs = require('./chunk-NAJ4IZKD.cjs');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
var _chunk22D2CNTPcjs = require('./chunk-22D2CNTP.cjs');
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
var _chunkYHD6TUIRcjs = require('./chunk-YHD6TUIR.cjs');
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
var _chunkZYQMLKOKcjs = require('./chunk-ZYQMLKOK.cjs');
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
var _chunkSEKD5FH3cjs = require('./chunk-SEKD5FH3.cjs');
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
var _chunk7BTSG4MEcjs = require('./chunk-7BTSG4ME.cjs');
|
|
29
|
+
|
|
30
|
+
// src/commands/learn.ts
|
|
31
|
+
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
32
|
+
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
33
|
+
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
34
|
+
|
|
35
|
+
// src/ui/stepProgress.ts
|
|
36
|
+
|
|
37
|
+
var BLINK_ON = "\x1B[5m";
|
|
38
|
+
var BLINK_OFF = "\x1B[25m";
|
|
39
|
+
var StepProgress = class {
|
|
40
|
+
constructor() {
|
|
41
|
+
this.currentLabel = "";
|
|
42
|
+
this.stepCount = 0;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Start the progress display with the first step.
|
|
46
|
+
*/
|
|
47
|
+
start(label) {
|
|
48
|
+
this.currentLabel = label;
|
|
49
|
+
this.stepCount = 1;
|
|
50
|
+
console.log(` ${BLINK_ON}${_chalk2.default.cyan("\u25CC")}${BLINK_OFF} ${_chalk2.default.cyan(label)}`);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Mark the current step as done and start a new one.
|
|
54
|
+
*/
|
|
55
|
+
advance(label) {
|
|
56
|
+
this.currentLabel = label;
|
|
57
|
+
this.stepCount++;
|
|
58
|
+
console.log(` ${BLINK_ON}${_chalk2.default.cyan("\u25CC")}${BLINK_OFF} ${_chalk2.default.cyan(label)}`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Mark the final step as done.
|
|
62
|
+
*/
|
|
63
|
+
finish() {
|
|
64
|
+
this.currentLabel = "";
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Clean up (no-op in console.log mode, kept for API compat).
|
|
68
|
+
*/
|
|
69
|
+
clear() {
|
|
70
|
+
this.currentLabel = "";
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// src/commands/learn.ts
|
|
75
|
+
function useAnimatedProgress(ctx) {
|
|
76
|
+
return !ctx.isNonInteractive && process.stdout.isTTY === true;
|
|
77
|
+
}
|
|
78
|
+
function logProgress(ctx, message, progress) {
|
|
79
|
+
_optionalChain([ctx, 'access', _ => _.onProgress, 'optionalCall', _2 => _2(message)]);
|
|
80
|
+
if (!progress) {
|
|
81
|
+
console.log(_chalk2.default.cyan(message));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async function withModalPause(ctx, fn) {
|
|
85
|
+
_optionalChain([ctx, 'access', _3 => _3.onBeforeModal, 'optionalCall', _4 => _4()]);
|
|
86
|
+
try {
|
|
87
|
+
return await fn();
|
|
88
|
+
} finally {
|
|
89
|
+
_optionalChain([ctx, 'access', _5 => _5.onAfterModal, 'optionalCall', _6 => _6()]);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function parseLearnArgs(args) {
|
|
93
|
+
if (args.length === 0) {
|
|
94
|
+
return { subcommand: "recommend", deep: false };
|
|
95
|
+
}
|
|
96
|
+
if (args[0] === "deep") {
|
|
97
|
+
return { subcommand: "recommend", deep: true };
|
|
98
|
+
}
|
|
99
|
+
if (args[0] === "update") {
|
|
100
|
+
return { subcommand: "update", deep: args.includes("deep") };
|
|
101
|
+
}
|
|
102
|
+
if (args.every((a) => a === "--deep")) {
|
|
103
|
+
return { subcommand: "recommend", deep: true };
|
|
104
|
+
}
|
|
105
|
+
return { subcommand: "recommend", deep: args.includes("deep") || args.includes("--deep") };
|
|
106
|
+
}
|
|
107
|
+
async function handleLearnRecommend(ctx, deep) {
|
|
108
|
+
const { skillsRegistry, workspaceRoot, llm, isNonInteractive } = ctx;
|
|
109
|
+
const animated = useAnimatedProgress(ctx);
|
|
110
|
+
const progress = animated ? new StepProgress() : void 0;
|
|
111
|
+
const analyzeLabel = deep ? "Deep-analyzing your project..." : "Analyzing your project...";
|
|
112
|
+
logProgress(ctx, analyzeLabel, progress);
|
|
113
|
+
_optionalChain([progress, 'optionalAccess', _7 => _7.start, 'call', _8 => _8(analyzeLabel)]);
|
|
114
|
+
const analyzer = new (0, _chunkNAJ4IZKDcjs.ProjectAnalyzer)(workspaceRoot);
|
|
115
|
+
const analysis = await analyzer.analyze();
|
|
116
|
+
const cache = new (0, _chunk22D2CNTPcjs.CommunitySkillsCache)();
|
|
117
|
+
const fetcher = new (0, _chunkYHD6TUIRcjs.GitHubRegistryFetcher)();
|
|
118
|
+
const loadLabel = "Loading community skills...";
|
|
119
|
+
logProgress(ctx, loadLabel, progress);
|
|
120
|
+
_optionalChain([progress, 'optionalAccess', _9 => _9.advance, 'call', _10 => _10(loadLabel)]);
|
|
121
|
+
let registry = null;
|
|
122
|
+
try {
|
|
123
|
+
registry = await _chunkR33VKSH5cjs.fetchRegistryWithFallback.call(void 0, cache, fetcher);
|
|
124
|
+
} catch (e) {
|
|
125
|
+
}
|
|
126
|
+
const installedSkills = skillsRegistry.listSkills();
|
|
127
|
+
const registrySkills = _nullishCoalesce(_optionalChain([registry, 'optionalAccess', _11 => _11.skills]), () => ( []));
|
|
128
|
+
const evalLabel = "Evaluating skill matches...";
|
|
129
|
+
logProgress(ctx, evalLabel, progress);
|
|
130
|
+
_optionalChain([progress, 'optionalAccess', _12 => _12.advance, 'call', _13 => _13(evalLabel)]);
|
|
131
|
+
const advisor = new (0, _chunkRDF37HKBcjs.LearnAdvisor)(llm);
|
|
132
|
+
const result = await advisor.analyze(analysis, installedSkills, registrySkills);
|
|
133
|
+
_optionalChain([progress, 'optionalAccess', _14 => _14.finish, 'call', _15 => _15()]);
|
|
134
|
+
const lines = [];
|
|
135
|
+
lines.push("");
|
|
136
|
+
if (result.projectSummary) {
|
|
137
|
+
lines.push(_chalk2.default.bold(`Project: ${result.projectSummary}`));
|
|
138
|
+
lines.push("");
|
|
139
|
+
}
|
|
140
|
+
if (result.audit.length > 0) {
|
|
141
|
+
lines.push(_chalk2.default.yellow.bold("Skill Audit"));
|
|
142
|
+
for (const entry of result.audit) {
|
|
143
|
+
const icon = entry.status === "redundant" ? "\u26A0" : entry.status === "outdated" ? "\u23F0" : "\u26A1";
|
|
144
|
+
lines.push(` ${icon} **${entry.skill}** \u2014 ${entry.status}: ${entry.reason}`);
|
|
145
|
+
}
|
|
146
|
+
lines.push("");
|
|
147
|
+
}
|
|
148
|
+
const goodMatches = result.recommendations.filter((r) => r.score >= 60).sort((a, b) => b.score - a.score);
|
|
149
|
+
if (goodMatches.length > 0) {
|
|
150
|
+
lines.push(_chalk2.default.green.bold("Recommended Skills"));
|
|
151
|
+
for (const rec of goodMatches.slice(0, 5)) {
|
|
152
|
+
lines.push(` ${_chalk2.default.green("\u25CF")} **${rec.slug}** (${rec.score}%) \u2014 ${rec.reason}`);
|
|
153
|
+
lines.push(` {{action:Install|/skills install @${rec.slug}}}`);
|
|
154
|
+
}
|
|
155
|
+
lines.push("");
|
|
156
|
+
_optionalChain([ctx, 'access', _16 => _16.onTopRecommendation, 'optionalCall', _17 => _17(goodMatches[0].slug)]);
|
|
157
|
+
} else {
|
|
158
|
+
lines.push(_chalk2.default.yellow("No strong matches found in the community registry."));
|
|
159
|
+
if (result.gapAnalysis) {
|
|
160
|
+
lines.push(_chalk2.default.gray(`Gap: ${result.gapAnalysis}`));
|
|
161
|
+
}
|
|
162
|
+
lines.push("");
|
|
163
|
+
}
|
|
164
|
+
if (goodMatches.length === 0 && !isNonInteractive) {
|
|
165
|
+
const gapDesc = result.gapAnalysis ? `Based on gap analysis: ${result.gapAnalysis}` : `A custom skill tailored for your ${analysis.frameworks.join("/") || analysis.languages.join("/")} project.`;
|
|
166
|
+
lines.push(_chalk2.default.cyan(gapDesc));
|
|
167
|
+
const { renderTerminalMarkdown } = await Promise.resolve().then(() => _interopRequireWildcard(require("./immediateCommandRouter-SHOVNB5X.cjs")));
|
|
168
|
+
console.log(renderTerminalMarkdown(lines.join("\n")));
|
|
169
|
+
const wantGenerate = await withModalPause(
|
|
170
|
+
ctx,
|
|
171
|
+
() => _chunkZYQMLKOKcjs.showConfirm.call(void 0, { title: "Generate a custom skill to fill this gap?" })
|
|
172
|
+
);
|
|
173
|
+
if (wantGenerate) {
|
|
174
|
+
return await handleGeneration(ctx, analysis, result);
|
|
175
|
+
}
|
|
176
|
+
return "";
|
|
177
|
+
}
|
|
178
|
+
return lines.join("\n");
|
|
179
|
+
}
|
|
180
|
+
async function handleGeneration(ctx, analysis, analysisResult) {
|
|
181
|
+
const gapHint = analysisResult.gapAnalysis ? ` for: ${analysisResult.gapAnalysis}` : "";
|
|
182
|
+
const genLabel = `Generating a custom skill${gapHint}...`;
|
|
183
|
+
const animated = useAnimatedProgress(ctx);
|
|
184
|
+
const genProgress = animated ? new StepProgress() : void 0;
|
|
185
|
+
logProgress(ctx, genLabel, genProgress);
|
|
186
|
+
_optionalChain([genProgress, 'optionalAccess', _18 => _18.start, 'call', _19 => _19(genLabel)]);
|
|
187
|
+
const advisor = new (0, _chunkRDF37HKBcjs.LearnAdvisor)(ctx.llm);
|
|
188
|
+
const lowScoring = analysisResult.recommendations.sort((a, b) => b.score - a.score).slice(0, 3);
|
|
189
|
+
const generated = await advisor.generateSkill(analysis, analysisResult.gapAnalysis, lowScoring);
|
|
190
|
+
_optionalChain([genProgress, 'optionalAccess', _20 => _20.finish, 'call', _21 => _21()]);
|
|
191
|
+
if (!generated) {
|
|
192
|
+
return _chalk2.default.red("Failed to generate a custom skill.\n") + _chalk2.default.gray(" The LLM may have returned an invalid response. Check your provider is configured and try again.\n") + _chalk2.default.gray(" Run with DEBUG=1 for detailed error output.");
|
|
193
|
+
}
|
|
194
|
+
console.log(_chalk2.default.green(`
|
|
195
|
+
Generated: ${_chalk2.default.bold(generated.name)}`));
|
|
196
|
+
console.log(_chalk2.default.gray(` ${generated.description}`));
|
|
197
|
+
if (generated.allowedTools.length > 0) {
|
|
198
|
+
console.log(_chalk2.default.gray(` Tools: ${generated.allowedTools.join(", ")}`));
|
|
199
|
+
}
|
|
200
|
+
const scopeChoice = await withModalPause(
|
|
201
|
+
ctx,
|
|
202
|
+
() => _chunkZYQMLKOKcjs.showModal.call(void 0, {
|
|
203
|
+
title: "Where should this skill be installed?",
|
|
204
|
+
options: [
|
|
205
|
+
{ label: `Project (.autohand/skills/)`, value: "project" },
|
|
206
|
+
{ label: `User (~/.autohand/skills/)`, value: "user" }
|
|
207
|
+
]
|
|
208
|
+
})
|
|
209
|
+
);
|
|
210
|
+
const scope = _optionalChain([scopeChoice, 'optionalAccess', _22 => _22.value]) === "project" ? "project" : "user";
|
|
211
|
+
let frontmatter = `---
|
|
212
|
+
name: ${generated.name}
|
|
213
|
+
description: ${generated.description}
|
|
214
|
+
`;
|
|
215
|
+
if (generated.allowedTools.length > 0) {
|
|
216
|
+
frontmatter += `allowed-tools: ${generated.allowedTools.join(" ")}
|
|
217
|
+
`;
|
|
218
|
+
}
|
|
219
|
+
frontmatter += `---
|
|
220
|
+
|
|
221
|
+
`;
|
|
222
|
+
let skillContent = frontmatter + generated.body + "\n";
|
|
223
|
+
const projectHash = _chunkR33VKSH5cjs.computeProjectHash.call(void 0, analysis);
|
|
224
|
+
skillContent = _chunkR33VKSH5cjs.injectGeneratedMetadata.call(void 0, skillContent, generated.name, projectHash);
|
|
225
|
+
const targetDir = scope === "project" ? _path2.default.join(ctx.workspaceRoot, _chunkSEKD5FH3cjs.PROJECT_DIR_NAME, "skills") : _chunkSEKD5FH3cjs.AUTOHAND_PATHS.skills;
|
|
226
|
+
const skillDir = _path2.default.join(targetDir, generated.name);
|
|
227
|
+
await _fsextra2.default.ensureDir(skillDir);
|
|
228
|
+
await _fsextra2.default.writeFile(_path2.default.join(skillDir, "SKILL.md"), skillContent, "utf-8");
|
|
229
|
+
return _chalk2.default.green(`Generated and installed skill: ${generated.name}
|
|
230
|
+
`) + _chalk2.default.gray(` Location: ${skillDir}/SKILL.md
|
|
231
|
+
`) + _chalk2.default.gray(` Use "/skills use ${generated.name}" to activate it.`);
|
|
232
|
+
}
|
|
233
|
+
async function handleLearnUpdate(ctx) {
|
|
234
|
+
const { skillsRegistry, workspaceRoot, llm } = ctx;
|
|
235
|
+
const animated = useAnimatedProgress(ctx);
|
|
236
|
+
const progress = animated ? new StepProgress() : void 0;
|
|
237
|
+
const checkLabel = "Checking for skill updates...";
|
|
238
|
+
logProgress(ctx, checkLabel, progress);
|
|
239
|
+
_optionalChain([progress, 'optionalAccess', _23 => _23.start, 'call', _24 => _24(checkLabel)]);
|
|
240
|
+
const analyzer = new (0, _chunkNAJ4IZKDcjs.ProjectAnalyzer)(workspaceRoot);
|
|
241
|
+
const analysis = await analyzer.analyze();
|
|
242
|
+
const currentHash = _chunkR33VKSH5cjs.computeProjectHash.call(void 0, analysis);
|
|
243
|
+
const allSkills = skillsRegistry.listSkills();
|
|
244
|
+
const generatedSkills = allSkills.filter(
|
|
245
|
+
(s) => _optionalChain([s, 'access', _25 => _25.metadata, 'optionalAccess', _26 => _26["agentskill-source"]]) === "llm-generated"
|
|
246
|
+
);
|
|
247
|
+
if (generatedSkills.length === 0) {
|
|
248
|
+
return "No LLM-generated skills found. Use /learn to generate skills first.";
|
|
249
|
+
}
|
|
250
|
+
const advisor = new (0, _chunkRDF37HKBcjs.LearnAdvisor)(llm);
|
|
251
|
+
let updated = 0;
|
|
252
|
+
let unchanged = 0;
|
|
253
|
+
const lines = [];
|
|
254
|
+
for (const skill of generatedSkills) {
|
|
255
|
+
const storedHash = _optionalChain([skill, 'access', _27 => _27.metadata, 'optionalAccess', _28 => _28["agentskill-project-hash"]]);
|
|
256
|
+
if (storedHash === currentHash) {
|
|
257
|
+
unchanged++;
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
const regenLabel = `Regenerating ${skill.name}...`;
|
|
261
|
+
logProgress(ctx, regenLabel, progress);
|
|
262
|
+
_optionalChain([progress, 'optionalAccess', _29 => _29.advance, 'call', _30 => _30(regenLabel)]);
|
|
263
|
+
const generated = await advisor.generateSkill(analysis, null, []);
|
|
264
|
+
if (!generated) {
|
|
265
|
+
lines.push(_chalk2.default.yellow(` Failed to regenerate ${skill.name}`));
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
let frontmatter = `---
|
|
269
|
+
name: ${generated.name}
|
|
270
|
+
description: ${generated.description}
|
|
271
|
+
`;
|
|
272
|
+
if (generated.allowedTools.length > 0) {
|
|
273
|
+
frontmatter += `allowed-tools: ${generated.allowedTools.join(" ")}
|
|
274
|
+
`;
|
|
275
|
+
}
|
|
276
|
+
frontmatter += `---
|
|
277
|
+
|
|
278
|
+
`;
|
|
279
|
+
let content = frontmatter + generated.body + "\n";
|
|
280
|
+
content = _chunkR33VKSH5cjs.injectGeneratedMetadata.call(void 0, content, skill.name, currentHash);
|
|
281
|
+
try {
|
|
282
|
+
await _fsextra2.default.writeFile(skill.path, content, "utf-8");
|
|
283
|
+
updated++;
|
|
284
|
+
lines.push(_chalk2.default.green(` Regenerated ${skill.name}`));
|
|
285
|
+
} catch (e2) {
|
|
286
|
+
lines.push(_chalk2.default.yellow(` Failed to write ${skill.name}`));
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
_optionalChain([progress, 'optionalAccess', _31 => _31.finish, 'call', _32 => _32()]);
|
|
290
|
+
lines.push("");
|
|
291
|
+
if (updated > 0) {
|
|
292
|
+
lines.push(_chalk2.default.green(`Updated ${updated} skill${updated !== 1 ? "s" : ""}.`));
|
|
293
|
+
}
|
|
294
|
+
if (unchanged > 0) {
|
|
295
|
+
lines.push(_chalk2.default.gray(`${unchanged} skill${unchanged !== 1 ? "s" : ""} already up to date.`));
|
|
296
|
+
}
|
|
297
|
+
return lines.join("\n");
|
|
298
|
+
}
|
|
299
|
+
async function learn(ctx, args) {
|
|
300
|
+
if (!ctx.skillsRegistry) {
|
|
301
|
+
return "Skills registry not available.";
|
|
302
|
+
}
|
|
303
|
+
const parsed = parseLearnArgs(args);
|
|
304
|
+
switch (parsed.subcommand) {
|
|
305
|
+
case "recommend":
|
|
306
|
+
return handleLearnRecommend(ctx, parsed.deep);
|
|
307
|
+
case "update":
|
|
308
|
+
return handleLearnUpdate(ctx);
|
|
309
|
+
default:
|
|
310
|
+
return handleLearnRecommend(ctx, false);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
var metadata = {
|
|
314
|
+
command: "/learn",
|
|
315
|
+
description: _chunk7BTSG4MEcjs.t.call(void 0, "commands.learn.description"),
|
|
316
|
+
implemented: true,
|
|
317
|
+
subcommands: [
|
|
318
|
+
{ name: "deep", description: "Deep-analyze project for better skill matching" },
|
|
319
|
+
{ name: "update", description: "Regenerate stale LLM-generated skills" }
|
|
320
|
+
]
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
exports.parseLearnArgs = parseLearnArgs; exports.learn = learn; exports.metadata = metadata;
|
|
328
|
+
/**
|
|
329
|
+
* @license
|
|
330
|
+
* Copyright 2025 Autohand AI LLC
|
|
331
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
332
|
+
*/
|
|
333
|
+
/**
|
|
334
|
+
* @license
|
|
335
|
+
* Copyright 2025 Autohand AI LLC
|
|
336
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
337
|
+
*
|
|
338
|
+
* /learn command — LLM-powered project analysis, skill recommendation,
|
|
339
|
+
* auditing of installed skills, and custom skill generation.
|
|
340
|
+
*/
|