autohand-cli 0.7.13 → 0.8.0
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/assets/icon.png +0 -0
- package/dist/AgentRegistry-7LDL5HJH.js +10 -0
- package/dist/AgentRegistry-NQCLWABO.cjs +10 -0
- package/dist/{AutomodeManager-NGRAO2MH.js → AutomodeManager-MWLKGPZK.js} +2 -0
- package/dist/{AutomodeManager-ZKQMBM4T.cjs → AutomodeManager-NYIZNODK.cjs} +3 -1
- package/dist/CommunitySkillsCache-6QPRMTJO.js +8 -0
- package/dist/CommunitySkillsCache-GTQMOCCO.cjs +8 -0
- package/dist/{GitHubRegistryFetcher-US2JJID4.js → GitHubRegistryFetcher-6JQ5JEDZ.js} +1 -0
- package/dist/{GitHubRegistryFetcher-K744NNAJ.cjs → GitHubRegistryFetcher-S7QFUEKV.cjs} +1 -0
- package/dist/HookManager-Q2KYMCP4.cjs +7 -0
- package/dist/HookManager-TTP4Y6DC.js +7 -0
- package/dist/ImportWizard-IWVPRKFF.cjs +466 -0
- package/dist/ImportWizard-KASGQPUY.js +466 -0
- package/dist/McpClientManager-7RM6YT35.js +8 -0
- package/dist/McpClientManager-RKD7C6OY.cjs +8 -0
- package/dist/MemoryManager-GUNLRP5S.js +8 -0
- package/dist/MemoryManager-TNSGKDKX.cjs +8 -0
- package/dist/PermissionManager-2GO5PQ6M.cjs +11 -0
- package/dist/{PermissionManager-U5OMGR3L.js → PermissionManager-K7UWSNB6.js} +4 -3
- package/dist/ProjectProfiler-UMJJSOCE.js +194 -0
- package/dist/ProjectProfiler-ZDWR2ODG.cjs +194 -0
- package/dist/ProviderFactory-EFFQBRQ6.cjs +9 -0
- package/dist/ProviderFactory-S3LWTQQC.js +9 -0
- package/dist/SessionManager-FEUAU3ZJ.cjs +10 -0
- package/dist/SessionManager-IKWAK2PI.js +10 -0
- package/dist/SkillsRegistry-GDEGFP6O.cjs +9 -0
- package/dist/SkillsRegistry-SI5RUHQ4.js +9 -0
- package/dist/SubAgent-I75HELJG.js +11 -0
- package/dist/SubAgent-K3QP6WHC.cjs +11 -0
- package/dist/{SyncApiClient-AYXYSOJM.js → SyncApiClient-LVIO4C2S.js} +1 -0
- package/dist/{SyncApiClient-ID3KXEMA.cjs → SyncApiClient-ZNYMT36M.cjs} +1 -0
- package/dist/about-B2AGTV6N.js +12 -0
- package/dist/about-V2HWEZZO.cjs +12 -0
- package/dist/actionExecutor-6XCVL2SJ.js +19 -0
- package/dist/actionExecutor-YRUJNB5G.cjs +19 -0
- package/dist/add-dir-7FBQ5IFV.js +10 -0
- package/dist/add-dir-ALBSYRV3.cjs +10 -0
- package/dist/agents/builtin/code-cleaner.md +14 -0
- package/dist/agents/builtin/docs-writer.md +14 -0
- package/dist/agents/builtin/researcher.md +14 -0
- package/dist/agents/builtin/reviewer.md +15 -0
- package/dist/agents/builtin/tester.md +15 -0
- package/dist/agents/builtin/todo-resolver.md +15 -0
- package/dist/agents-FCGEWTA3.cjs +12 -0
- package/dist/agents-FENGUSJD.js +12 -0
- package/dist/agents-new-FU3O55CO.js +14 -0
- package/dist/agents-new-SAFTJ7TK.cjs +14 -0
- package/dist/assets/icon.png +0 -0
- package/dist/automode-CYLGXQ4A.cjs +10 -0
- package/dist/automode-O7G3DUYN.js +10 -0
- package/dist/{cc-UTTLESTY.js → cc-7LEIJ3KF.js} +1 -0
- package/dist/{cc-2W6M7J45.cjs → cc-Q5MM4AWC.cjs} +1 -0
- package/dist/{chunk-N4ZSG6JJ.cjs → chunk-22D2CNTP.cjs} +2 -2
- package/dist/chunk-24QIWILL.js +51 -0
- package/dist/{chunk-MYNHJHDZ.js → chunk-2AA5MFES.js} +1 -1
- package/dist/{chunk-2JMWWYMZ.js → chunk-2ELK5DMH.js} +44 -10
- package/dist/chunk-2JYIR3EC.cjs +1176 -0
- package/dist/{chunk-RRZFJIIB.js → chunk-2RIAPTET.js} +90 -66
- package/dist/{chunk-TSY7JHIV.cjs → chunk-33A755XB.cjs} +2 -2
- package/dist/chunk-3OEDGIFW.js +42 -0
- package/dist/{chunk-P5VDZ6PV.js → chunk-3PDTTAKJ.js} +1 -1
- package/dist/{chunk-ULMPJUJW.cjs → chunk-3WCOFXQS.cjs} +23 -23
- package/dist/{chunk-ONAY5SD2.cjs → chunk-4HKTYHNL.cjs} +22 -16
- package/dist/{chunk-Z4J4W6YQ.cjs → chunk-4JNNTOGF.cjs} +2 -48
- package/dist/chunk-55B6SBHK.js +260 -0
- package/dist/chunk-5DDDUUBM.cjs +29 -0
- package/dist/{chunk-TQB222ZB.js → chunk-5EIEWVYX.js} +2 -2
- package/dist/{chunk-SMHY3Q7B.cjs → chunk-5GGX6WNY.cjs} +54 -22
- package/dist/{chunk-3S4DEIJP.cjs → chunk-5IXII4HX.cjs} +2 -2
- package/dist/{chunk-3KBBARKO.js → chunk-5OBNULPU.js} +85 -28
- package/dist/{chunk-VVBBEYTH.cjs → chunk-5YJG6H6P.cjs} +10 -10
- package/dist/{chunk-PKOAXQKW.cjs → chunk-63WXWFDI.cjs} +11 -11
- package/dist/{chunk-DSKVMFRM.cjs → chunk-643VRA5S.cjs} +12 -4
- package/dist/{chunk-L5ZFPWHY.js → chunk-6OYHF6MF.js} +12 -4
- package/dist/chunk-7GDVDSNI.js +1176 -0
- package/dist/chunk-7QEE6SW6.cjs +260 -0
- package/dist/chunk-7UOUW76C.js +603 -0
- package/dist/{chunk-SZP4ULM5.cjs → chunk-AFN7LH5N.cjs} +17 -17
- package/dist/chunk-AHD5JJ6F.cjs +78 -0
- package/dist/{chunk-WLTVF77A.js → chunk-ALYU6VTM.js} +1 -1
- package/dist/{chunk-BRXIEKJ3.cjs → chunk-AMT2UZBI.cjs} +5 -5
- package/dist/{chunk-SFNT5DYE.cjs → chunk-BT35E7NE.cjs} +4 -4
- package/dist/{chunk-NUHYCFHW.cjs → chunk-BVKXEQVG.cjs} +54 -65
- package/dist/chunk-CDMGQR4L.cjs +4470 -0
- package/dist/chunk-CNBKZEX5.cjs +109 -0
- package/dist/{chunk-GD4AFYJ3.js → chunk-CVVEYUFR.js} +1 -1
- package/dist/chunk-CWALFEGU.js +58 -0
- package/dist/{chunk-MTALRU7R.cjs → chunk-D3YCFT5O.cjs} +3 -3
- package/dist/{chunk-METF3I6W.cjs → chunk-D6VG7B5X.cjs} +10 -4
- package/dist/{chunk-TOTDRAWG.js → chunk-DH7DKCUL.js} +1 -1
- package/dist/{chunk-RFNCTE4V.cjs → chunk-DLG43ZJ7.cjs} +2 -2
- package/dist/chunk-DN573ME7.cjs +1675 -0
- package/dist/{chunk-63BXZQZW.js → chunk-E23CMMNJ.js} +20 -4
- package/dist/{chunk-4HA7IHLJ.cjs → chunk-EEGK5DYE.cjs} +32 -16
- package/dist/{chunk-DTFR3WD6.js → chunk-EF4LKUQY.js} +1 -1
- package/dist/{chunk-PWLLLJHU.js → chunk-EGFT4PGW.js} +3 -1
- package/dist/{chunk-S47TCZDL.js → chunk-EIU7K7CM.js} +7 -7
- package/dist/{chunk-BISFR6ZL.js → chunk-EPNYD4NV.js} +1 -1
- package/dist/chunk-EZMINVLU.js +123 -0
- package/dist/{chunk-LYMTYC67.js → chunk-F23EVNJU.js} +2 -2
- package/dist/chunk-FHK7UDOJ.cjs +42 -0
- package/dist/chunk-FMB3TSWP.cjs +218 -0
- package/dist/{chunk-XBUMKEFN.cjs → chunk-FPAE6ORV.cjs} +91 -34
- package/dist/{chunk-DEAEO7RI.js → chunk-FYZ67R4R.js} +1 -1
- package/dist/{chunk-6SHHB2VD.js → chunk-G7SZIOHF.js} +2 -2
- package/dist/{chunk-FB6JWNJS.js → chunk-GBHDROGL.js} +54 -65
- package/dist/chunk-GCHELXLO.js +131 -0
- package/dist/{chunk-7YX3OD4B.js → chunk-GHSBZ3YB.js} +2 -2
- package/dist/chunk-GLBAF54O.js +218 -0
- package/dist/chunk-GO3N7LRW.cjs +131 -0
- package/dist/{chunk-KW4SQWBU.cjs → chunk-H6ZGZEBG.cjs} +57 -23
- package/dist/{chunk-CTJILRNQ.cjs → chunk-HA7OAVOB.cjs} +15 -15
- package/dist/{chunk-NMWEDN4Z.js → chunk-HFMLWH7B.js} +108 -0
- package/dist/{chunk-D2XFTCRP.js → chunk-HQ7YZKXE.js} +1 -1
- package/dist/{chunk-L42HTMMR.cjs → chunk-HTLINWX6.cjs} +2 -2
- package/dist/chunk-IETRBBMP.cjs +603 -0
- package/dist/chunk-IQ5RXU6O.js +1675 -0
- package/dist/{chunk-B5HIJJ4B.js → chunk-ITB3FS72.js} +11 -5
- package/dist/{chunk-B6EBHCK2.cjs → chunk-IUMJYXBX.cjs} +6 -6
- package/dist/{chunk-ZBIBLOZL.js → chunk-IVM5F2AE.js} +500 -317
- package/dist/{chunk-GRSVQ5YZ.js → chunk-IWVQ2EW3.js} +44 -12
- package/dist/chunk-JJWCQLOU.cjs +59 -0
- package/dist/{chunk-KXAAEROY.js → chunk-JMFDD7IZ.js} +2 -2
- package/dist/chunk-JSBRDJBE.js +30 -0
- package/dist/chunk-LJFUXC56.cjs +123 -0
- package/dist/chunk-LL3PQ2U6.js +4470 -0
- package/dist/chunk-LQ4LQQG6.cjs +27 -0
- package/dist/chunk-LQGVEP3E.js +109 -0
- package/dist/{chunk-425MT6Y5.cjs → chunk-LVE6Z5SL.cjs} +9 -9
- package/dist/{chunk-XL77XYI2.cjs → chunk-LXDOQTXQ.cjs} +4 -4
- package/dist/{chunk-BG4OQUKP.js → chunk-MBBY4ZIK.js} +1 -1
- package/dist/{chunk-XQLWN4Y3.cjs → chunk-MGMXR67S.cjs} +9 -9
- package/dist/{chunk-FHUNAB2K.cjs → chunk-MHLE6AVN.cjs} +33 -6
- package/dist/chunk-MHSDHPC4.cjs +58 -0
- package/dist/chunk-MUBW5UDH.cjs +55 -0
- package/dist/{chunk-R3H25HQZ.cjs → chunk-MVWOQBCC.cjs} +11 -11
- package/dist/chunk-N254NRHT.cjs +30 -0
- package/dist/{chunk-SRLY7K6J.js → chunk-OBLIITWJ.js} +2 -2
- package/dist/{chunk-SIGWDEPS.cjs → chunk-OI7OIGNB.cjs} +10 -10
- package/dist/{chunk-V7YTCNMN.cjs → chunk-OPR34VHL.cjs} +5 -5
- package/dist/chunk-OUHQZFN4.js +78 -0
- package/dist/{chunk-HMRDNRTH.js → chunk-PEC45WYS.js} +2 -2
- package/dist/{chunk-OSUWEUZE.js → chunk-PUOE5BCN.js} +1 -1
- package/dist/chunk-Q2VYSHWU.js +59 -0
- package/dist/chunk-Q3MJ6CYS.cjs +193 -0
- package/dist/{chunk-B2K7JZRW.js → chunk-Q5RN7RXC.js} +2 -2
- package/dist/{chunk-43XS26AQ.cjs → chunk-Q5RX3XGB.cjs} +4 -4
- package/dist/chunk-QCLYBIMM.cjs +51 -0
- package/dist/chunk-QMAKTSZB.cjs +48 -0
- package/dist/chunk-QT2VZNFA.js +29 -0
- package/dist/{chunk-3AWZFG5G.js → chunk-QUFAULH7.js} +10 -4
- package/dist/{chunk-RJP3SZ7Q.cjs → chunk-RD5XAJR2.cjs} +492 -309
- package/dist/chunk-RGR6ME5J.cjs +844 -0
- package/dist/{chunk-EOGKE5GD.cjs → chunk-RKJTGGMU.cjs} +221 -126
- package/dist/{chunk-NMGF2KUN.js → chunk-RO46YAPI.js} +1 -1
- package/dist/{chunk-2U5HFVRO.cjs → chunk-RVUQKMXX.cjs} +108 -0
- package/dist/chunk-S52YW5ZQ.js +844 -0
- package/dist/{chunk-ZLOTP56B.cjs → chunk-S6BDWWUG.cjs} +5 -5
- package/dist/{chunk-6DWXHBAY.js → chunk-SAHBLB3E.js} +222 -127
- package/dist/chunk-SALLHB2I.js +27 -0
- package/dist/{chunk-GIZL57FE.cjs → chunk-SEKD5FH3.cjs} +3 -1
- package/dist/{chunk-DZHR34H6.cjs → chunk-SHFA46CS.cjs} +8 -8
- package/dist/{chunk-MILZEEUV.js → chunk-SIHRD34Z.js} +2 -2
- package/dist/{chunk-BPTBKO7D.js → chunk-SO3QQJAZ.js} +216 -36
- package/dist/{chunk-HSPWX4Z2.cjs → chunk-SRQW3B6J.cjs} +223 -43
- package/dist/{chunk-MY3TZER2.js → chunk-T63AMO6H.js} +1 -1
- package/dist/{chunk-X765A7J5.js → chunk-TERCG25S.js} +1 -1
- package/dist/{chunk-WOGJXDBU.cjs → chunk-TFSRRZWP.cjs} +3 -3
- package/dist/{chunk-RRZS5A53.js → chunk-TQHOVHRS.js} +1 -1
- package/dist/{chunk-JHOQABEF.js → chunk-TWEKBHUO.js} +5 -5
- package/dist/chunk-U3WDY42C.cjs +42 -0
- package/dist/{chunk-CKN2BLHK.cjs → chunk-UBS46QL3.cjs} +2 -2
- package/dist/{chunk-H3GBSPK5.js → chunk-UGTFKUW4.js} +14 -6
- package/dist/chunk-UJTCTTUF.cjs +271 -0
- package/dist/{chunk-RUZB43HU.cjs → chunk-UTI6ZQEY.cjs} +22 -14
- package/dist/{chunk-OLG7LZBD.js → chunk-VG34MG2U.js} +1 -1
- package/dist/{chunk-ZKZRFH37.cjs → chunk-VJYPP6PP.cjs} +6 -6
- package/dist/{chunk-YHGTBPEC.js → chunk-VNQ5GL34.js} +1 -1
- package/dist/{chunk-XDVG3NM4.js → chunk-W3X6PAC7.js} +2 -48
- package/dist/{chunk-FK2DVRPJ.js → chunk-WFUUXADU.js} +2 -2
- package/dist/{chunk-R5OO7MEB.cjs → chunk-WGTJOIB7.cjs} +22 -22
- package/dist/{chunk-VHBUKGRG.js → chunk-WJDPVW7T.js} +4 -4
- package/dist/chunk-WNUVPKBW.js +42 -0
- package/dist/{chunk-EV53SLSB.cjs → chunk-WPVWQSL7.cjs} +4 -4
- package/dist/chunk-WQ3VJXZB.js +118 -0
- package/dist/chunk-WTNBX2JO.js +271 -0
- package/dist/chunk-XAV24VYN.js +48 -0
- package/dist/chunk-XDLH4EDL.cjs +118 -0
- package/dist/{chunk-U7CZFKPL.cjs → chunk-XMNHZRUB.cjs} +2 -2
- package/dist/chunk-XUDSXGGV.cjs +1822 -0
- package/dist/{chunk-YESQ7XR3.js → chunk-XWASJ2QL.js} +4 -4
- package/dist/chunk-Y2SXUCNJ.js +55 -0
- package/dist/{chunk-AIH6GUGB.cjs → chunk-YDCDGTK6.cjs} +5 -5
- package/dist/chunk-YFXTE422.cjs +92 -0
- package/dist/chunk-YKS55CMT.js +1822 -0
- package/dist/{chunk-KC5FPUOF.cjs → chunk-YRLYSQEQ.cjs} +2 -2
- package/dist/{chunk-JWPI6O5Z.js → chunk-YS34SVY5.js} +31 -4
- package/dist/{chunk-FEVHH525.cjs → chunk-YYB42DCU.cjs} +4 -4
- package/dist/chunk-ZK6HOR62.js +92 -0
- package/dist/{chunk-BHV7CBNT.js → chunk-ZSE42BRE.js} +1 -1
- package/dist/clear-ES5WCZRF.cjs +12 -0
- package/dist/clear-J7XS6T5W.js +12 -0
- package/dist/completion-XQTDTJLK.cjs +14 -0
- package/dist/completion-XR6ZONJQ.js +14 -0
- package/dist/config-2TB3A55J.js +18 -0
- package/dist/config-RDMVIV26.cjs +18 -0
- package/dist/constants-6CPCJ3DY.cjs +21 -0
- package/dist/{constants-V6J54N3X.js → constants-UFM5B232.js} +2 -1
- package/dist/{defaultHooks-WLMRQUXG.cjs → defaultHooks-RCXPHF4M.cjs} +3 -1
- package/dist/{defaultHooks-R56VYG7I.js → defaultHooks-RDRMER3Z.js} +2 -0
- package/dist/export-EWAYH353.cjs +12 -0
- package/dist/export-ZWA6XGVS.js +12 -0
- package/dist/extractSessionMemories-SDW2MVBQ.cjs +7 -0
- package/dist/extractSessionMemories-V7K42ZHW.js +7 -0
- package/dist/feedback-5RV6ODW4.js +15 -0
- package/dist/feedback-ZPITHFJR.cjs +15 -0
- package/dist/filesystem-3SGCW2BF.js +10 -0
- package/dist/filesystem-MCFXJQ6R.cjs +10 -0
- package/dist/formatters-6K7QVWQL.cjs +10 -0
- package/dist/formatters-DQHO5I36.js +10 -0
- package/dist/{help-RU24K66K.js → help-I5GRCA3S.js} +3 -2
- package/dist/help-X52PZM24.cjs +12 -0
- package/dist/history-4WIOZ4TW.cjs +14 -0
- package/dist/{history-AV4XBFRK.js → history-OCHJBJW7.js} +3 -2
- package/dist/hooks-IAVTXUAI.cjs +13 -0
- package/dist/hooks-YF6HL23E.js +13 -0
- package/dist/{i18n-BSAPXM56.js → i18n-KHBXUALK.js} +2 -1
- package/dist/i18n-MVQIAZWS.cjs +33 -0
- package/dist/ide-4R3BEBIS.js +12 -0
- package/dist/ide-C7WSPQTR.cjs +12 -0
- package/dist/import-2ICSKDL7.cjs +10 -0
- package/dist/import-EAAX5HJR.js +170 -0
- package/dist/import-KRVVYJCZ.js +10 -0
- package/dist/import-PQJPNXA4.cjs +170 -0
- package/dist/index.cjs +8671 -12373
- package/dist/index.js +8739 -12441
- package/dist/init-6K3NRDOM.js +10 -0
- package/dist/init-AOUGGITS.cjs +10 -0
- package/dist/language-Q7YFDVSR.cjs +18 -0
- package/dist/language-Y6ZC7LET.js +18 -0
- package/dist/{lint-44UQJ673.cjs → lint-D5UOJWIK.cjs} +1 -0
- package/dist/{lint-TA2ZHVLM.js → lint-NJPZWVN2.js} +1 -0
- package/dist/{localProjectPermissions-WQYMGI42.js → localProjectPermissions-N77HA3XK.js} +3 -2
- package/dist/localProjectPermissions-UFSMNTBJ.cjs +18 -0
- package/dist/login-6OAH2NEH.cjs +20 -0
- package/dist/login-DL3377MD.js +20 -0
- package/dist/logout-ELQBUMTU.cjs +18 -0
- package/dist/logout-TLYA5W45.js +18 -0
- package/dist/mcp-BHOIBYUB.js +18 -0
- package/dist/mcp-TNUEXR5T.cjs +18 -0
- package/dist/{mcp-install-2KVKRAMQ.cjs → mcp-install-GROTZHAW.cjs} +26 -14
- package/dist/{mcp-install-77UXRN6R.js → mcp-install-KSADVDBE.js} +21 -9
- package/dist/memory-6DRFA43C.js +10 -0
- package/dist/memory-IORZE6WF.cjs +10 -0
- package/dist/message-JUBOK2VU.js +9 -0
- package/dist/message-ZJ5AYAMT.cjs +9 -0
- package/dist/model-CJPSPGIC.cjs +10 -0
- package/dist/model-MQXC56ES.js +10 -0
- package/dist/new-7D2B7IWM.cjs +12 -0
- package/dist/new-7VYM36RC.js +12 -0
- package/dist/{patch-BAAQIYSW.js → patch-5F6VBIT3.js} +2 -0
- package/dist/{patch-J32X2QQP.cjs → patch-MOD7QC3D.cjs} +3 -1
- package/dist/permissions-MM77OSFO.js +13 -0
- package/dist/permissions-W2F62DJ6.cjs +13 -0
- package/dist/{plan-JFGNRL2S.js → plan-G5CEKJI4.js} +1 -0
- package/dist/{plan-B3CW5DXJ.cjs → plan-QKOHE3LH.cjs} +1 -0
- package/dist/quit-7D2RDGTD.cjs +10 -0
- package/dist/quit-PKBSEJOL.js +10 -0
- package/dist/registry-A5XLMQVC.cjs +1828 -0
- package/dist/registry-WQLWHOLY.js +1828 -0
- package/dist/resume-FBKXSDOA.js +13 -0
- package/dist/resume-KLPDYPWQ.cjs +13 -0
- package/dist/search-7RNYTCNO.js +17 -0
- package/dist/search-UESMQZC3.cjs +17 -0
- package/dist/{session-T3TAZ5ZU.cjs → session-BSU2L5UI.cjs} +1 -0
- package/dist/{session-H5QWKE5E.js → session-SZMRN5KG.js} +1 -0
- package/dist/sessions-TSSUFWIJ.cjs +10 -0
- package/dist/sessions-WAXBUQTU.js +10 -0
- package/dist/settings-D6JXX5RG.js +30 -0
- package/dist/settings-RKYGXKDG.cjs +30 -0
- package/dist/share-GLX4YHS4.cjs +14 -0
- package/dist/share-U2M2KBFJ.js +14 -0
- package/dist/skills-63QLZMUO.cjs +14 -0
- package/dist/{skills-LJZA6PVJ.js → skills-BAMMXP3Q.js} +3 -2
- package/dist/{skills-install-MQINL3EC.js → skills-install-QNQWC2MV.js} +99 -28
- package/dist/{skills-install-IKJZN4G2.cjs → skills-install-UMK5H3SO.cjs} +107 -36
- package/dist/skills-new-NYKNHJHV.cjs +15 -0
- package/dist/skills-new-NZFGFKML.js +15 -0
- package/dist/slashCommands-EJ23C3Z4.cjs +69 -0
- package/dist/slashCommands-JQIL4EWX.js +69 -0
- package/dist/status-BKC7GBNQ.js +11 -0
- package/dist/status-FU3CPJWQ.cjs +11 -0
- package/dist/sync-3IEIHXIP.cjs +18 -0
- package/dist/sync-7JMZVEQD.cjs +40 -0
- package/dist/{sync-EXYX7HXW.js → sync-KWX67OUN.js} +3 -2
- package/dist/sync-YVPFT7SL.js +18 -0
- package/dist/tasks-5FPBIFLC.js +9 -0
- package/dist/tasks-TXGKGNH6.cjs +9 -0
- package/dist/team-GVK5L73L.cjs +9 -0
- package/dist/team-RWIKCLTG.js +9 -0
- package/dist/teammate-3C4MLRGH.js +139 -0
- package/dist/teammate-7C3UDQSH.cjs +139 -0
- package/dist/theme-A2CEHI7W.js +18 -0
- package/dist/theme-LNOQOVR4.cjs +18 -0
- package/dist/ui/questionModal.cjs +7 -25
- package/dist/ui/questionModal.js +6 -24
- package/dist/undo-F2IZJQUV.js +10 -0
- package/dist/undo-QEV42XLU.cjs +10 -0
- package/dist/update-TVAJMMBC.js +82 -0
- package/dist/update-Z6BIIQDC.cjs +82 -0
- package/package.json +10 -4
- package/dist/CommunitySkillsCache-ILWHWE5P.js +0 -7
- package/dist/CommunitySkillsCache-KHC6RUJW.cjs +0 -7
- package/dist/HookManager-X47HCM5G.cjs +0 -6
- package/dist/HookManager-ZXKHCD7U.js +0 -6
- package/dist/MemoryManager-6ZT7IDO5.cjs +0 -7
- package/dist/MemoryManager-AJGS5AKB.js +0 -7
- package/dist/PermissionManager-HG6W2DGU.cjs +0 -10
- package/dist/SessionManager-BJ2G6VV4.cjs +0 -9
- package/dist/SessionManager-ENPGYK5J.js +0 -9
- package/dist/SkillsRegistry-6ZFOCT25.cjs +0 -8
- package/dist/SkillsRegistry-C2SHOZ5D.js +0 -8
- package/dist/about-BIZH6I2U.cjs +0 -11
- package/dist/about-PPIVMAPA.js +0 -11
- package/dist/add-dir-7FD4DMDA.cjs +0 -9
- package/dist/add-dir-LOYJ4YB5.js +0 -9
- package/dist/agents-2Y6ASV7C.js +0 -10
- package/dist/agents-UOSPKLQL.cjs +0 -10
- package/dist/agents-new-23NSGAM5.js +0 -13
- package/dist/agents-new-WI2EL7IJ.cjs +0 -13
- package/dist/automode-LGWTY3UX.js +0 -9
- package/dist/automode-WLBQ7MN7.cjs +0 -9
- package/dist/chunk-5UBW2BGC.js +0 -33
- package/dist/chunk-AXP53LTU.cjs +0 -169
- package/dist/chunk-IZBCMJHJ.cjs +0 -33
- package/dist/completion-7WGMHKOR.cjs +0 -13
- package/dist/completion-KH33NSGP.js +0 -13
- package/dist/constants-RBQTR32A.cjs +0 -20
- package/dist/export-3QN3IH7A.js +0 -11
- package/dist/export-BI54X3MP.cjs +0 -11
- package/dist/feedback-TBF2CUJR.js +0 -14
- package/dist/feedback-XXHPSUUO.cjs +0 -14
- package/dist/formatters-N5IJKYZY.cjs +0 -8
- package/dist/formatters-UG6VZJJ5.js +0 -8
- package/dist/help-4VSLIMP4.cjs +0 -11
- package/dist/history-73VBEMSI.cjs +0 -13
- package/dist/hooks-62UDQBGH.cjs +0 -12
- package/dist/hooks-XORDJD5X.js +0 -12
- package/dist/i18n-X2IU2EZD.cjs +0 -32
- package/dist/ide-RPKZALQV.js +0 -11
- package/dist/ide-YMNXJB6A.cjs +0 -11
- package/dist/init-J5HR4R7U.js +0 -9
- package/dist/init-JCC7RVMC.cjs +0 -9
- package/dist/language-AZISJCEZ.js +0 -16
- package/dist/language-F65RA6FZ.cjs +0 -16
- package/dist/localProjectPermissions-2EATUDZM.cjs +0 -17
- package/dist/login-5HLPMECE.js +0 -18
- package/dist/login-ISWYYBXP.cjs +0 -18
- package/dist/logout-3EKZM5J3.cjs +0 -16
- package/dist/logout-GE7TSZ24.js +0 -16
- package/dist/mcp-EW64QRFA.cjs +0 -15
- package/dist/mcp-VHS7AMF2.js +0 -15
- package/dist/memory-2I473RU3.js +0 -9
- package/dist/memory-JZ6NPSP3.cjs +0 -9
- package/dist/model-GXZLARPT.js +0 -9
- package/dist/model-Y274DBDO.cjs +0 -9
- package/dist/new-BG5VIGZ7.cjs +0 -9
- package/dist/new-YXFDQOA7.js +0 -9
- package/dist/permissions-QILEAGBP.cjs +0 -12
- package/dist/permissions-WVEOVMWO.js +0 -12
- package/dist/quit-NC32OEJG.cjs +0 -9
- package/dist/quit-WRRIGU33.js +0 -9
- package/dist/resume-GJIKIDPR.cjs +0 -12
- package/dist/resume-RMJNCAOK.js +0 -12
- package/dist/search-UIWIXB73.js +0 -14
- package/dist/search-WQNXDA2E.cjs +0 -14
- package/dist/sessions-HPFX2GDD.js +0 -9
- package/dist/sessions-SAQU6MFA.cjs +0 -9
- package/dist/share-IE6UTPKF.cjs +0 -13
- package/dist/share-NQXIMFSQ.js +0 -13
- package/dist/skills-YTYGART7.cjs +0 -13
- package/dist/skills-new-3WCU3CWB.js +0 -14
- package/dist/skills-new-O5LFVFZU.cjs +0 -14
- package/dist/slashCommands-3FFAL4SL.js +0 -55
- package/dist/slashCommands-JASFW3E4.cjs +0 -55
- package/dist/status-4NDGXPIM.js +0 -10
- package/dist/status-RHJIBHP2.cjs +0 -10
- package/dist/sync-3GFSEIAZ.js +0 -16
- package/dist/sync-6M3WRKMH.cjs +0 -39
- package/dist/sync-CQNQDNTJ.cjs +0 -16
- package/dist/theme-EMJGULMI.cjs +0 -16
- package/dist/theme-FGDSXNU3.js +0 -16
- package/dist/undo-CTXQYE7C.cjs +0 -9
- package/dist/undo-HX2ZMECP.js +0 -9
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
safePrompt
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VNQ5GL34.js";
|
|
4
4
|
import {
|
|
5
5
|
t
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HFMLWH7B.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,19 @@ var HOOK_EVENTS = [
|
|
|
27
28
|
"automode:resume",
|
|
28
29
|
"automode:cancel",
|
|
29
30
|
"automode:complete",
|
|
30
|
-
"automode:error"
|
|
31
|
+
"automode:error",
|
|
32
|
+
// Team events
|
|
33
|
+
"team-created",
|
|
34
|
+
"teammate-spawned",
|
|
35
|
+
"teammate-idle",
|
|
36
|
+
"task-assigned",
|
|
37
|
+
"task-completed",
|
|
38
|
+
"team-shutdown"
|
|
31
39
|
];
|
|
32
40
|
var EVENT_DESCRIPTIONS = {
|
|
33
41
|
"session-start": "When a session begins",
|
|
34
42
|
"session-end": "When a session ends",
|
|
43
|
+
"pre-clear": "Before memory extraction on /clear or /new",
|
|
35
44
|
"pre-prompt": "Before processing user input",
|
|
36
45
|
"pre-tool": "Before a tool executes",
|
|
37
46
|
"post-tool": "After a tool completes",
|
|
@@ -50,7 +59,14 @@ var EVENT_DESCRIPTIONS = {
|
|
|
50
59
|
"automode:resume": "When auto-mode is resumed",
|
|
51
60
|
"automode:cancel": "When auto-mode is cancelled",
|
|
52
61
|
"automode:complete": "When auto-mode completes",
|
|
53
|
-
"automode:error": "When auto-mode encounters an error"
|
|
62
|
+
"automode:error": "When auto-mode encounters an error",
|
|
63
|
+
// Team events
|
|
64
|
+
"team-created": "When a team is created",
|
|
65
|
+
"teammate-spawned": "When a teammate process starts",
|
|
66
|
+
"teammate-idle": "When a teammate becomes idle",
|
|
67
|
+
"task-assigned": "When a task is assigned to a teammate",
|
|
68
|
+
"task-completed": "When a task is marked as done",
|
|
69
|
+
"team-shutdown": "When team cleanup completes"
|
|
54
70
|
};
|
|
55
71
|
var HOOK_ICONS = {
|
|
56
72
|
// Script-based hooks
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkAMT2UZBIcjs = require('./chunk-AMT2UZBI.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkRVUQKMXXcjs = require('./chunk-RVUQKMXX.cjs');
|
|
7
7
|
|
|
8
8
|
// src/commands/hooks.ts
|
|
9
9
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_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,19 @@ var HOOK_EVENTS = [
|
|
|
27
28
|
"automode:resume",
|
|
28
29
|
"automode:cancel",
|
|
29
30
|
"automode:complete",
|
|
30
|
-
"automode:error"
|
|
31
|
+
"automode:error",
|
|
32
|
+
// Team events
|
|
33
|
+
"team-created",
|
|
34
|
+
"teammate-spawned",
|
|
35
|
+
"teammate-idle",
|
|
36
|
+
"task-assigned",
|
|
37
|
+
"task-completed",
|
|
38
|
+
"team-shutdown"
|
|
31
39
|
];
|
|
32
40
|
var EVENT_DESCRIPTIONS = {
|
|
33
41
|
"session-start": "When a session begins",
|
|
34
42
|
"session-end": "When a session ends",
|
|
43
|
+
"pre-clear": "Before memory extraction on /clear or /new",
|
|
35
44
|
"pre-prompt": "Before processing user input",
|
|
36
45
|
"pre-tool": "Before a tool executes",
|
|
37
46
|
"post-tool": "After a tool completes",
|
|
@@ -50,7 +59,14 @@ var EVENT_DESCRIPTIONS = {
|
|
|
50
59
|
"automode:resume": "When auto-mode is resumed",
|
|
51
60
|
"automode:cancel": "When auto-mode is cancelled",
|
|
52
61
|
"automode:complete": "When auto-mode completes",
|
|
53
|
-
"automode:error": "When auto-mode encounters an error"
|
|
62
|
+
"automode:error": "When auto-mode encounters an error",
|
|
63
|
+
// Team events
|
|
64
|
+
"team-created": "When a team is created",
|
|
65
|
+
"teammate-spawned": "When a teammate process starts",
|
|
66
|
+
"teammate-idle": "When a teammate becomes idle",
|
|
67
|
+
"task-assigned": "When a task is assigned to a teammate",
|
|
68
|
+
"task-completed": "When a task is marked as done",
|
|
69
|
+
"team-shutdown": "When team cleanup completes"
|
|
54
70
|
};
|
|
55
71
|
var HOOK_ICONS = {
|
|
56
72
|
// Script-based hooks
|
|
@@ -119,11 +135,11 @@ function getShortCommand(command) {
|
|
|
119
135
|
}
|
|
120
136
|
function displayHooksList(allHooks) {
|
|
121
137
|
console.log();
|
|
122
|
-
console.log(_chalk2.default.bold.cyan(
|
|
138
|
+
console.log(_chalk2.default.bold.cyan(_chunkRVUQKMXXcjs.t.call(void 0, "commands.hooks.title")));
|
|
123
139
|
console.log(_chalk2.default.gray(" Lifecycle hooks run shell commands on events"));
|
|
124
140
|
console.log();
|
|
125
141
|
if (allHooks.length === 0) {
|
|
126
|
-
console.log(_chalk2.default.gray(` ${
|
|
142
|
+
console.log(_chalk2.default.gray(` ${_chunkRVUQKMXXcjs.t.call(void 0, "commands.hooks.noHooks")}`));
|
|
127
143
|
console.log();
|
|
128
144
|
return;
|
|
129
145
|
}
|
|
@@ -197,7 +213,7 @@ async function hooks(ctx) {
|
|
|
197
213
|
const toggleLabel = settings.enabled !== false ? "\u25EF Disable all hooks" : "\u25CF Enable all hooks";
|
|
198
214
|
choices.push({ name: "toggle_global", message: toggleLabel });
|
|
199
215
|
}
|
|
200
|
-
const actionResult = await
|
|
216
|
+
const actionResult = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
|
|
201
217
|
type: "select",
|
|
202
218
|
name: "action",
|
|
203
219
|
message: "Action",
|
|
@@ -233,7 +249,7 @@ async function toggleHooksMulti(manager, allHooks) {
|
|
|
233
249
|
enabled: h.enabled !== false
|
|
234
250
|
};
|
|
235
251
|
});
|
|
236
|
-
const result = await
|
|
252
|
+
const result = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
|
|
237
253
|
type: "select",
|
|
238
254
|
name: "selected",
|
|
239
255
|
message: "Toggle hooks (select to enable/disable)",
|
|
@@ -259,26 +275,26 @@ async function addHook(manager) {
|
|
|
259
275
|
name: e,
|
|
260
276
|
message: `${e} ${_chalk2.default.dim(`- ${EVENT_DESCRIPTIONS[e]}`)}`
|
|
261
277
|
}));
|
|
262
|
-
const eventResult = await
|
|
278
|
+
const eventResult = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
|
|
263
279
|
type: "select",
|
|
264
280
|
name: "event",
|
|
265
281
|
message: "Event to hook into",
|
|
266
282
|
choices: eventChoices
|
|
267
283
|
});
|
|
268
284
|
if (!eventResult) return;
|
|
269
|
-
const commandResult = await
|
|
285
|
+
const commandResult = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
|
|
270
286
|
type: "input",
|
|
271
287
|
name: "command",
|
|
272
288
|
message: "Shell command to execute",
|
|
273
289
|
validate: (val) => typeof val === "string" && val.trim().length > 0 || "Command is required"
|
|
274
290
|
});
|
|
275
291
|
if (!commandResult || !commandResult.command) return;
|
|
276
|
-
const descResult = await
|
|
292
|
+
const descResult = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
|
|
277
293
|
type: "input",
|
|
278
294
|
name: "description",
|
|
279
295
|
message: "Description (optional)"
|
|
280
296
|
});
|
|
281
|
-
const asyncResult = await
|
|
297
|
+
const asyncResult = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
|
|
282
298
|
type: "confirm",
|
|
283
299
|
name: "async",
|
|
284
300
|
message: "Run asynchronously (non-blocking)?",
|
|
@@ -303,7 +319,7 @@ async function removeHook(manager, allHooks) {
|
|
|
303
319
|
message: `${eventTag} ${desc2}`
|
|
304
320
|
};
|
|
305
321
|
});
|
|
306
|
-
const selectResult = await
|
|
322
|
+
const selectResult = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
|
|
307
323
|
type: "select",
|
|
308
324
|
name: "hookIndex",
|
|
309
325
|
message: "Select hook to remove",
|
|
@@ -315,7 +331,7 @@ async function removeHook(manager, allHooks) {
|
|
|
315
331
|
const eventHooks = allHooks.filter((h) => h.event === hook.event);
|
|
316
332
|
const eventIndex = eventHooks.indexOf(hook);
|
|
317
333
|
const desc = hook.description || getShortCommand(hook.command);
|
|
318
|
-
const confirmResult = await
|
|
334
|
+
const confirmResult = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
|
|
319
335
|
type: "confirm",
|
|
320
336
|
name: "confirm",
|
|
321
337
|
message: `Remove "${desc}"?`,
|
|
@@ -338,7 +354,7 @@ async function testHook(manager, allHooks) {
|
|
|
338
354
|
message: `${eventTag} ${desc}`
|
|
339
355
|
};
|
|
340
356
|
});
|
|
341
|
-
const selectResult = await
|
|
357
|
+
const selectResult = await _chunkAMT2UZBIcjs.safePrompt.call(void 0, {
|
|
342
358
|
type: "select",
|
|
343
359
|
name: "hookIndex",
|
|
344
360
|
message: "Select hook to test",
|
|
@@ -369,7 +385,7 @@ async function testHook(manager, allHooks) {
|
|
|
369
385
|
}
|
|
370
386
|
var metadata = {
|
|
371
387
|
command: "/hooks",
|
|
372
|
-
description:
|
|
388
|
+
description: _chunkRVUQKMXXcjs.t.call(void 0, "commands.hooks.description"),
|
|
373
389
|
implemented: true
|
|
374
390
|
};
|
|
375
391
|
|
|
@@ -26,7 +26,9 @@ var AUTOHAND_PATHS = {
|
|
|
26
26
|
/** Plan files for plan mode */
|
|
27
27
|
plans: path.join(AUTOHAND_HOME, "plans"),
|
|
28
28
|
/** MCP community registry cache */
|
|
29
|
-
mcpCache: path.join(AUTOHAND_HOME, "community-mcp", "cache")
|
|
29
|
+
mcpCache: path.join(AUTOHAND_HOME, "community-mcp", "cache"),
|
|
30
|
+
/** Auto-report data */
|
|
31
|
+
reporting: path.join(AUTOHAND_HOME, "reporting")
|
|
30
32
|
};
|
|
31
33
|
var AUTOHAND_FILES = {
|
|
32
34
|
/** Main config file */
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_SYNC_CONFIG,
|
|
3
3
|
createSyncService
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3PDTTAKJ.js";
|
|
5
5
|
import {
|
|
6
6
|
getAuthClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-HQ7YZKXE.js";
|
|
8
8
|
import {
|
|
9
9
|
safePrompt
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VNQ5GL34.js";
|
|
11
11
|
import {
|
|
12
12
|
saveConfig
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-WTNBX2JO.js";
|
|
14
14
|
import {
|
|
15
15
|
AUTH_CONFIG
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-EGFT4PGW.js";
|
|
17
17
|
import {
|
|
18
18
|
t
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-HFMLWH7B.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-
|
|
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,123 @@
|
|
|
1
|
+
// src/utils/gitIgnore.ts
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import ignore from "ignore";
|
|
5
|
+
var GitIgnoreParser = class {
|
|
6
|
+
constructor(projectRoot, extraPatterns) {
|
|
7
|
+
this.extraPatterns = extraPatterns;
|
|
8
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
9
|
+
this.processedExtraPatterns = [];
|
|
10
|
+
this.projectRoot = path.resolve(projectRoot);
|
|
11
|
+
if (this.extraPatterns?.length) {
|
|
12
|
+
this.processedExtraPatterns = this.processPatterns(this.extraPatterns, ".");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
isIgnored(filePath) {
|
|
16
|
+
if (!filePath) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const absoluteFilePath = path.resolve(this.projectRoot, filePath);
|
|
20
|
+
if (!absoluteFilePath.startsWith(this.projectRoot)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
const relativePath = path.relative(this.projectRoot, absoluteFilePath);
|
|
24
|
+
if (!relativePath || relativePath.startsWith("..")) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const normalizedPath = relativePath.replace(/\\/g, "/");
|
|
28
|
+
const ig = ignore();
|
|
29
|
+
ig.add(".git");
|
|
30
|
+
if (this.globalPatterns === void 0) {
|
|
31
|
+
const excludeFile = path.join(this.projectRoot, ".git", "info", "exclude");
|
|
32
|
+
this.globalPatterns = fs.existsSync(excludeFile) ? this.loadPatternsForFile(excludeFile) : [];
|
|
33
|
+
}
|
|
34
|
+
ig.add(this.globalPatterns);
|
|
35
|
+
const pathParts = relativePath.split(path.sep);
|
|
36
|
+
const dirsToVisit = [];
|
|
37
|
+
let current = this.projectRoot;
|
|
38
|
+
dirsToVisit.push(current);
|
|
39
|
+
for (let i = 0; i < pathParts.length - 1; i++) {
|
|
40
|
+
current = path.join(current, pathParts[i]);
|
|
41
|
+
dirsToVisit.push(current);
|
|
42
|
+
}
|
|
43
|
+
for (const dir of dirsToVisit) {
|
|
44
|
+
const relativeDir = path.relative(this.projectRoot, dir);
|
|
45
|
+
if (relativeDir) {
|
|
46
|
+
const normalizedDir = relativeDir.replace(/\\/g, "/");
|
|
47
|
+
const igPlusExtras = ignore().add(ig).add(this.processedExtraPatterns);
|
|
48
|
+
if (igPlusExtras.ignores(normalizedDir)) {
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (this.cache.has(dir)) {
|
|
53
|
+
ig.add(this.cache.get(dir) ?? []);
|
|
54
|
+
} else {
|
|
55
|
+
const gitignorePath = path.join(dir, ".gitignore");
|
|
56
|
+
if (fs.existsSync(gitignorePath)) {
|
|
57
|
+
const patterns = this.loadPatternsForFile(gitignorePath);
|
|
58
|
+
this.cache.set(dir, patterns);
|
|
59
|
+
ig.add(patterns);
|
|
60
|
+
} else {
|
|
61
|
+
this.cache.set(dir, []);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
ig.add(this.processedExtraPatterns);
|
|
66
|
+
return ig.ignores(normalizedPath);
|
|
67
|
+
}
|
|
68
|
+
loadPatternsForFile(patternsFilePath) {
|
|
69
|
+
let content = "";
|
|
70
|
+
try {
|
|
71
|
+
content = fs.readFileSync(patternsFilePath, "utf8");
|
|
72
|
+
} catch {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
const isExcludeFile = patternsFilePath.endsWith(path.join(".git", "info", "exclude"));
|
|
76
|
+
const relativeBaseDir = isExcludeFile ? "." : path.dirname(path.relative(this.projectRoot, patternsFilePath)).split(path.sep).join(path.posix.sep);
|
|
77
|
+
const rawPatterns = content.split("\n");
|
|
78
|
+
return this.processPatterns(rawPatterns, relativeBaseDir);
|
|
79
|
+
}
|
|
80
|
+
processPatterns(rawPatterns, relativeBaseDir) {
|
|
81
|
+
return rawPatterns.map((pattern) => pattern.trimStart()).filter((pattern) => pattern && !pattern.startsWith("#")).map((pattern) => this.normalizePattern(pattern, relativeBaseDir)).filter(Boolean);
|
|
82
|
+
}
|
|
83
|
+
normalizePattern(pattern, relativeBaseDir) {
|
|
84
|
+
let p = pattern;
|
|
85
|
+
const isNegative = p.startsWith("!");
|
|
86
|
+
if (isNegative) {
|
|
87
|
+
p = p.slice(1);
|
|
88
|
+
}
|
|
89
|
+
const isAnchored = p.startsWith("/");
|
|
90
|
+
if (isAnchored) {
|
|
91
|
+
p = p.slice(1);
|
|
92
|
+
}
|
|
93
|
+
if (!p) {
|
|
94
|
+
return "";
|
|
95
|
+
}
|
|
96
|
+
let newPattern = p;
|
|
97
|
+
if (relativeBaseDir && relativeBaseDir !== ".") {
|
|
98
|
+
if (!isAnchored && !p.includes("/")) {
|
|
99
|
+
newPattern = path.posix.join("**", p);
|
|
100
|
+
}
|
|
101
|
+
newPattern = path.posix.join(relativeBaseDir, newPattern);
|
|
102
|
+
if (!newPattern.startsWith("/")) {
|
|
103
|
+
newPattern = "/" + newPattern;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (isAnchored && !newPattern.startsWith("/")) {
|
|
107
|
+
newPattern = "/" + newPattern;
|
|
108
|
+
}
|
|
109
|
+
if (isNegative) {
|
|
110
|
+
newPattern = "!" + newPattern;
|
|
111
|
+
}
|
|
112
|
+
return newPattern;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export {
|
|
117
|
+
GitIgnoreParser
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* @license
|
|
121
|
+
* Copyright 2025 Autohand AI LLC
|
|
122
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
123
|
+
*/
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "./chunk-QHPFA6OE.js";
|
|
4
4
|
import {
|
|
5
5
|
safePrompt
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VNQ5GL34.js";
|
|
7
7
|
import {
|
|
8
8
|
AUTOHAND_PATHS
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EGFT4PGW.js";
|
|
10
10
|
|
|
11
11
|
// src/commands/skills-new.ts
|
|
12
12
|
import path from "path";
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/commands/message.ts
|
|
2
|
+
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
3
|
+
var metadata = {
|
|
4
|
+
command: "/message",
|
|
5
|
+
description: "Send a direct message to a teammate",
|
|
6
|
+
implemented: true
|
|
7
|
+
};
|
|
8
|
+
async function message(ctx, args) {
|
|
9
|
+
if (!ctx.teamManager) {
|
|
10
|
+
return _chalk2.default.yellow("Team manager not available.");
|
|
11
|
+
}
|
|
12
|
+
const team = ctx.teamManager.getTeam();
|
|
13
|
+
if (!team) {
|
|
14
|
+
return _chalk2.default.yellow("No active team.");
|
|
15
|
+
}
|
|
16
|
+
if (args.length < 2) {
|
|
17
|
+
return [
|
|
18
|
+
_chalk2.default.bold("Usage:"),
|
|
19
|
+
` ${_chalk2.default.cyan("/message <name> <text>")}`,
|
|
20
|
+
"",
|
|
21
|
+
_chalk2.default.gray("Example: /message hunter also check src/legacy/")
|
|
22
|
+
].join("\n");
|
|
23
|
+
}
|
|
24
|
+
const [targetName, ...rest] = args;
|
|
25
|
+
const content = rest.join(" ");
|
|
26
|
+
try {
|
|
27
|
+
ctx.teamManager.sendMessageTo(targetName, "lead", content);
|
|
28
|
+
return _chalk2.default.green(`Message sent to ${targetName}.`);
|
|
29
|
+
} catch (err) {
|
|
30
|
+
return _chalk2.default.red(err.message);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
exports.metadata = metadata; exports.message = message;
|
|
38
|
+
/**
|
|
39
|
+
* @license
|
|
40
|
+
* Copyright 2025 Autohand AI LLC
|
|
41
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
42
|
+
*/
|
|
@@ -0,0 +1,218 @@
|
|
|
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; }// src/utils/versionCheck.ts
|
|
2
|
+
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
3
|
+
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
4
|
+
var _os = require('os'); var _os2 = _interopRequireDefault(_os);
|
|
5
|
+
var GITHUB_REPO = "autohandai/code-cli";
|
|
6
|
+
var GITHUB_API_LATEST_URL = `https://api.github.com/repos/${GITHUB_REPO}/releases/latest`;
|
|
7
|
+
var GITHUB_API_RELEASES_URL = `https://api.github.com/repos/${GITHUB_REPO}/releases?per_page=100`;
|
|
8
|
+
var CACHE_DIR = _path2.default.join(_os2.default.homedir(), ".autohand");
|
|
9
|
+
var DEFAULT_CHECK_INTERVAL_HOURS = 24;
|
|
10
|
+
var REQUEST_TIMEOUT_MS = 3e3;
|
|
11
|
+
function detectChannel(version) {
|
|
12
|
+
return version.includes("-alpha.") ? "alpha" : "stable";
|
|
13
|
+
}
|
|
14
|
+
function getCacheFile(channel) {
|
|
15
|
+
return _path2.default.join(CACHE_DIR, `version-check-${channel}.json`);
|
|
16
|
+
}
|
|
17
|
+
function compareVersions(a, b) {
|
|
18
|
+
const cleanA = a.replace(/^v/, "");
|
|
19
|
+
const cleanB = b.replace(/^v/, "");
|
|
20
|
+
const [versionA, preA] = cleanA.split("-");
|
|
21
|
+
const [versionB, preB] = cleanB.split("-");
|
|
22
|
+
const partsA = versionA.split(".").map(Number);
|
|
23
|
+
const partsB = versionB.split(".").map(Number);
|
|
24
|
+
for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) {
|
|
25
|
+
const numA = partsA[i] || 0;
|
|
26
|
+
const numB = partsB[i] || 0;
|
|
27
|
+
if (numA < numB) return -1;
|
|
28
|
+
if (numA > numB) return 1;
|
|
29
|
+
}
|
|
30
|
+
if (!preA && preB) return 1;
|
|
31
|
+
if (preA && !preB) return -1;
|
|
32
|
+
if (preA && preB) {
|
|
33
|
+
return preA.localeCompare(preB);
|
|
34
|
+
}
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
function parseReleaseTimestamp(release) {
|
|
38
|
+
const rawTimestamp = _nullishCoalesce(_nullishCoalesce(release.published_at, () => ( release.created_at)), () => ( null));
|
|
39
|
+
if (!rawTimestamp) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const parsed = Date.parse(rawTimestamp);
|
|
43
|
+
return Number.isNaN(parsed) ? null : parsed;
|
|
44
|
+
}
|
|
45
|
+
function selectLatestPrereleaseRelease(releases) {
|
|
46
|
+
const prereleases = releases.filter((release) => release.prerelease && release.tag_name);
|
|
47
|
+
if (prereleases.length === 0) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
let selected = prereleases[0];
|
|
51
|
+
let selectedTimestamp = parseReleaseTimestamp(selected);
|
|
52
|
+
for (const release of prereleases.slice(1)) {
|
|
53
|
+
const timestamp = parseReleaseTimestamp(release);
|
|
54
|
+
if (timestamp === null) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (selectedTimestamp === null || timestamp > selectedTimestamp) {
|
|
58
|
+
selected = release;
|
|
59
|
+
selectedTimestamp = timestamp;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return selected;
|
|
63
|
+
}
|
|
64
|
+
function evaluateUpdateStatus(currentVersion, latestVersion, channel) {
|
|
65
|
+
if (channel === "alpha") {
|
|
66
|
+
const isUpToDate = currentVersion === latestVersion;
|
|
67
|
+
return { isUpToDate, updateAvailable: !isUpToDate };
|
|
68
|
+
}
|
|
69
|
+
const comparison = compareVersions(currentVersion, latestVersion);
|
|
70
|
+
return {
|
|
71
|
+
isUpToDate: comparison >= 0,
|
|
72
|
+
updateAvailable: comparison < 0
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
async function readCache(channel) {
|
|
76
|
+
try {
|
|
77
|
+
const cacheFile = getCacheFile(channel);
|
|
78
|
+
if (await _fsextra2.default.pathExists(cacheFile)) {
|
|
79
|
+
const data = await _fsextra2.default.readJson(cacheFile);
|
|
80
|
+
return data;
|
|
81
|
+
}
|
|
82
|
+
} catch (e) {
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
async function writeCache(channel, cache) {
|
|
87
|
+
try {
|
|
88
|
+
const cacheFile = getCacheFile(channel);
|
|
89
|
+
await _fsextra2.default.ensureDir(_path2.default.dirname(cacheFile));
|
|
90
|
+
await _fsextra2.default.writeJson(cacheFile, cache, { spaces: 2 });
|
|
91
|
+
} catch (e2) {
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function isCacheValid(cache, intervalHours) {
|
|
95
|
+
try {
|
|
96
|
+
const lastCheck = new Date(cache.lastCheck);
|
|
97
|
+
const now = /* @__PURE__ */ new Date();
|
|
98
|
+
const hoursSinceCheck = (now.getTime() - lastCheck.getTime()) / (1e3 * 60 * 60);
|
|
99
|
+
return hoursSinceCheck < intervalHours;
|
|
100
|
+
} catch (e3) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async function fetchLatestStableRelease() {
|
|
105
|
+
try {
|
|
106
|
+
const controller = new AbortController();
|
|
107
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
|
|
108
|
+
const response = await fetch(GITHUB_API_LATEST_URL, {
|
|
109
|
+
headers: {
|
|
110
|
+
"Accept": "application/vnd.github.v3+json",
|
|
111
|
+
"User-Agent": "autohand-cli"
|
|
112
|
+
},
|
|
113
|
+
signal: controller.signal
|
|
114
|
+
});
|
|
115
|
+
clearTimeout(timeout);
|
|
116
|
+
if (!response.ok) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const data = await response.json();
|
|
120
|
+
if (data.tag_name) {
|
|
121
|
+
return {
|
|
122
|
+
version: data.tag_name.replace(/^v/, ""),
|
|
123
|
+
url: data.html_url || `https://github.com/${GITHUB_REPO}/releases/tag/${data.tag_name}`
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
} catch (e4) {
|
|
127
|
+
}
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
async function fetchLatestAlphaRelease() {
|
|
131
|
+
try {
|
|
132
|
+
const controller = new AbortController();
|
|
133
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
|
|
134
|
+
const response = await fetch(GITHUB_API_RELEASES_URL, {
|
|
135
|
+
headers: {
|
|
136
|
+
"Accept": "application/vnd.github.v3+json",
|
|
137
|
+
"User-Agent": "autohand-cli"
|
|
138
|
+
},
|
|
139
|
+
signal: controller.signal
|
|
140
|
+
});
|
|
141
|
+
clearTimeout(timeout);
|
|
142
|
+
if (!response.ok) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
const releases = await response.json();
|
|
146
|
+
const latestPrerelease = selectLatestPrereleaseRelease(releases);
|
|
147
|
+
if (_optionalChain([latestPrerelease, 'optionalAccess', _ => _.tag_name])) {
|
|
148
|
+
return {
|
|
149
|
+
version: latestPrerelease.tag_name.replace(/^v/, ""),
|
|
150
|
+
url: latestPrerelease.html_url || `https://github.com/${GITHUB_REPO}/releases/tag/${latestPrerelease.tag_name}`
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
} catch (e5) {
|
|
154
|
+
}
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
function getInstallHint(channel) {
|
|
158
|
+
if (channel === "alpha") {
|
|
159
|
+
return "curl -fsSL https://autohand.ai/install.sh | sh -s -- --alpha";
|
|
160
|
+
}
|
|
161
|
+
return "curl -fsSL https://autohand.ai/install.sh | sh";
|
|
162
|
+
}
|
|
163
|
+
async function checkForUpdates(currentVersion, options = {}) {
|
|
164
|
+
const {
|
|
165
|
+
checkIntervalHours = DEFAULT_CHECK_INTERVAL_HOURS,
|
|
166
|
+
forceCheck = false
|
|
167
|
+
} = options;
|
|
168
|
+
const channel = detectChannel(currentVersion);
|
|
169
|
+
const result = {
|
|
170
|
+
currentVersion,
|
|
171
|
+
latestVersion: null,
|
|
172
|
+
isUpToDate: true,
|
|
173
|
+
updateAvailable: false,
|
|
174
|
+
channel
|
|
175
|
+
};
|
|
176
|
+
if (process.env.AUTOHAND_SKIP_UPDATE_CHECK === "1") {
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
try {
|
|
180
|
+
if (!forceCheck) {
|
|
181
|
+
const cache = await readCache(channel);
|
|
182
|
+
if (cache && isCacheValid(cache, checkIntervalHours)) {
|
|
183
|
+
result.latestVersion = cache.latestVersion;
|
|
184
|
+
result.releaseUrl = cache.releaseUrl;
|
|
185
|
+
const status = evaluateUpdateStatus(currentVersion, cache.latestVersion, channel);
|
|
186
|
+
result.isUpToDate = status.isUpToDate;
|
|
187
|
+
result.updateAvailable = status.updateAvailable;
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const latest = channel === "alpha" ? await fetchLatestAlphaRelease() : await fetchLatestStableRelease();
|
|
192
|
+
if (latest) {
|
|
193
|
+
result.latestVersion = latest.version;
|
|
194
|
+
result.releaseUrl = latest.url;
|
|
195
|
+
const status = evaluateUpdateStatus(currentVersion, latest.version, channel);
|
|
196
|
+
result.isUpToDate = status.isUpToDate;
|
|
197
|
+
result.updateAvailable = status.updateAvailable;
|
|
198
|
+
await writeCache(channel, {
|
|
199
|
+
lastCheck: (/* @__PURE__ */ new Date()).toISOString(),
|
|
200
|
+
latestVersion: latest.version,
|
|
201
|
+
releaseUrl: latest.url
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
} catch (error) {
|
|
205
|
+
result.error = error instanceof Error ? error.message : "Unknown error";
|
|
206
|
+
}
|
|
207
|
+
return result;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
exports.getInstallHint = getInstallHint; exports.checkForUpdates = checkForUpdates;
|
|
214
|
+
/**
|
|
215
|
+
* @license
|
|
216
|
+
* Copyright 2025 Autohand AI LLC
|
|
217
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
218
|
+
*/
|