autohand-cli 0.7.14 → 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-KWRUQRXR.js → chunk-2ELK5DMH.js} +44 -10
- package/dist/chunk-2JYIR3EC.cjs +1176 -0
- package/dist/{chunk-CRQKDBLD.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-PDKNHU5G.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-CH4SPVFD.cjs → chunk-D6VG7B5X.cjs} +9 -3
- 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-XPOHYKR3.js → chunk-GHSBZ3YB.js} +2 -2
- package/dist/chunk-GLBAF54O.js +218 -0
- package/dist/chunk-GO3N7LRW.cjs +131 -0
- package/dist/{chunk-Y2ZSH3YF.cjs → chunk-H6ZGZEBG.cjs} +57 -23
- package/dist/{chunk-DSCQPWUB.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-GVZPIQWB.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-ZXIQCYYV.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-MNSTWHK3.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-QRGPAUST.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-3XJD56Z4.js → chunk-QUFAULH7.js} +9 -3
- 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-WQUQ5JMM.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-LKKQU2TN.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 +7503 -11251
- package/dist/index.js +8735 -12483
- 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 +9 -3
- 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-3BJTNSLK.js +0 -11
- package/dist/about-EABQNJGV.cjs +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-I6DBWNLN.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-CI4OIPOS.cjs +0 -14
- package/dist/feedback-GFPL5STE.js +0 -14
- package/dist/formatters-N5IJKYZY.cjs +0 -8
- package/dist/formatters-UG6VZJJ5.js +0 -8
- package/dist/help-CWMUGD3V.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-2WH5ZVOO.cjs +0 -13
- package/dist/share-PSSWWVV5.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-7IRDOXOQ.cjs +0 -55
- package/dist/slashCommands-C6CAQA25.js +0 -55
- package/dist/status-4EDV2LSY.cjs +0 -10
- package/dist/status-NU7TJDCE.js +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
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import "./chunk-JSBRDJBE.js";
|
|
2
|
+
|
|
3
|
+
// src/core/teams/ProjectProfiler.ts
|
|
4
|
+
import * as fs from "fs-extra";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
import { execFile } from "child_process";
|
|
7
|
+
import { promisify } from "util";
|
|
8
|
+
var execFileAsync = promisify(execFile);
|
|
9
|
+
var ProjectProfiler = class {
|
|
10
|
+
constructor(repoRoot) {
|
|
11
|
+
this.repoRoot = repoRoot;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Perform a full analysis of the repository and return a ProjectProfile.
|
|
15
|
+
*/
|
|
16
|
+
async analyze() {
|
|
17
|
+
const [languages, frameworks, structure, signals] = await Promise.all([
|
|
18
|
+
this.detectLanguages(),
|
|
19
|
+
this.detectFrameworks(),
|
|
20
|
+
this.detectStructure(),
|
|
21
|
+
this.detectSignals()
|
|
22
|
+
]);
|
|
23
|
+
return {
|
|
24
|
+
repoRoot: this.repoRoot,
|
|
25
|
+
languages,
|
|
26
|
+
frameworks,
|
|
27
|
+
structure,
|
|
28
|
+
signals,
|
|
29
|
+
generatedAgents: [],
|
|
30
|
+
analyzedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Detect programming languages by checking for well-known project manifest files.
|
|
35
|
+
*/
|
|
36
|
+
async detectLanguages() {
|
|
37
|
+
const langs = [];
|
|
38
|
+
const checks = [
|
|
39
|
+
["package.json", "typescript"],
|
|
40
|
+
["tsconfig.json", "typescript"],
|
|
41
|
+
["Cargo.toml", "rust"],
|
|
42
|
+
["go.mod", "go"],
|
|
43
|
+
["pyproject.toml", "python"],
|
|
44
|
+
["requirements.txt", "python"],
|
|
45
|
+
["Gemfile", "ruby"],
|
|
46
|
+
["pom.xml", "java"],
|
|
47
|
+
["build.gradle", "java"]
|
|
48
|
+
];
|
|
49
|
+
for (const [file, lang] of checks) {
|
|
50
|
+
if (await fs.pathExists(path.join(this.repoRoot, file))) {
|
|
51
|
+
if (!langs.includes(lang)) langs.push(lang);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (langs.length === 0) langs.push("unknown");
|
|
55
|
+
return langs;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Detect frameworks by inspecting package.json dependencies and devDependencies.
|
|
59
|
+
*/
|
|
60
|
+
async detectFrameworks() {
|
|
61
|
+
const frameworks = [];
|
|
62
|
+
const pkgPath = path.join(this.repoRoot, "package.json");
|
|
63
|
+
if (await fs.pathExists(pkgPath)) {
|
|
64
|
+
try {
|
|
65
|
+
const pkg = await fs.readJson(pkgPath);
|
|
66
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
67
|
+
const known = [
|
|
68
|
+
"react",
|
|
69
|
+
"vue",
|
|
70
|
+
"angular",
|
|
71
|
+
"express",
|
|
72
|
+
"fastify",
|
|
73
|
+
"next",
|
|
74
|
+
"ink",
|
|
75
|
+
"commander",
|
|
76
|
+
"vitest",
|
|
77
|
+
"jest"
|
|
78
|
+
];
|
|
79
|
+
for (const fw of known) {
|
|
80
|
+
if (allDeps[fw]) frameworks.push(fw);
|
|
81
|
+
}
|
|
82
|
+
} catch {
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return frameworks;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Detect repository structure: presence of docs, tests, and CI configuration.
|
|
89
|
+
*/
|
|
90
|
+
async detectStructure() {
|
|
91
|
+
const [hasDocs, hasTests, hasCI] = await Promise.all([
|
|
92
|
+
fs.pathExists(path.join(this.repoRoot, "docs")),
|
|
93
|
+
this.anyPathExists([
|
|
94
|
+
path.join(this.repoRoot, "tests"),
|
|
95
|
+
path.join(this.repoRoot, "test"),
|
|
96
|
+
path.join(this.repoRoot, "__tests__")
|
|
97
|
+
]),
|
|
98
|
+
this.anyPathExists([
|
|
99
|
+
path.join(this.repoRoot, ".github", "workflows"),
|
|
100
|
+
path.join(this.repoRoot, ".circleci"),
|
|
101
|
+
path.join(this.repoRoot, ".gitlab-ci.yml")
|
|
102
|
+
])
|
|
103
|
+
]);
|
|
104
|
+
return { hasDocs, hasTests, hasCI };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Gather project signals: TODOs, missing docs, missing tests.
|
|
108
|
+
*/
|
|
109
|
+
async detectSignals() {
|
|
110
|
+
const signals = [];
|
|
111
|
+
const todos = await this.scanTodos();
|
|
112
|
+
if (todos.count > 0) {
|
|
113
|
+
signals.push(todos);
|
|
114
|
+
}
|
|
115
|
+
const hasDocs = await fs.pathExists(path.join(this.repoRoot, "docs"));
|
|
116
|
+
if (!hasDocs) {
|
|
117
|
+
signals.push({
|
|
118
|
+
type: "missing-docs",
|
|
119
|
+
severity: "medium",
|
|
120
|
+
count: 1,
|
|
121
|
+
locations: []
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
const hasTests = await this.anyPathExists([
|
|
125
|
+
path.join(this.repoRoot, "tests"),
|
|
126
|
+
path.join(this.repoRoot, "test"),
|
|
127
|
+
path.join(this.repoRoot, "__tests__")
|
|
128
|
+
]);
|
|
129
|
+
if (!hasTests) {
|
|
130
|
+
signals.push({
|
|
131
|
+
type: "missing-tests",
|
|
132
|
+
severity: "medium",
|
|
133
|
+
count: 1,
|
|
134
|
+
locations: []
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return signals;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Scan tracked source files for TODO/FIXME/HACK/XXX markers using git ls-files.
|
|
141
|
+
*/
|
|
142
|
+
async scanTodos() {
|
|
143
|
+
const locations = [];
|
|
144
|
+
let count = 0;
|
|
145
|
+
try {
|
|
146
|
+
const { stdout } = await execFileAsync(
|
|
147
|
+
"git",
|
|
148
|
+
["ls-files"],
|
|
149
|
+
{
|
|
150
|
+
cwd: this.repoRoot,
|
|
151
|
+
encoding: "utf-8",
|
|
152
|
+
timeout: 5e3
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
const sourceExtensions = /* @__PURE__ */ new Set([".ts", ".tsx", ".js", ".jsx", ".py", ".rs", ".go"]);
|
|
156
|
+
const files = stdout.trim().split("\n").filter((f) => f && sourceExtensions.has(path.extname(f)));
|
|
157
|
+
for (const file of files.slice(0, 200)) {
|
|
158
|
+
try {
|
|
159
|
+
const content = await fs.readFile(path.join(this.repoRoot, file), "utf-8");
|
|
160
|
+
const matches = content.match(/\b(TODO|FIXME|HACK|XXX)\b/g);
|
|
161
|
+
if (matches) {
|
|
162
|
+
count += matches.length;
|
|
163
|
+
if (locations.length < 10) locations.push(file);
|
|
164
|
+
}
|
|
165
|
+
} catch {
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
} catch {
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
type: "todo",
|
|
172
|
+
severity: count > 20 ? "high" : count > 5 ? "medium" : "low",
|
|
173
|
+
count,
|
|
174
|
+
locations
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Check whether any of the given paths exist.
|
|
179
|
+
* Unlike Promise.any with fs.pathExists (which always resolves),
|
|
180
|
+
* this properly returns true if at least one path exists.
|
|
181
|
+
*/
|
|
182
|
+
async anyPathExists(paths) {
|
|
183
|
+
const results = await Promise.all(paths.map((p) => fs.pathExists(p)));
|
|
184
|
+
return results.some(Boolean);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
export {
|
|
188
|
+
ProjectProfiler
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* @license
|
|
192
|
+
* Copyright 2025 Autohand AI LLC
|
|
193
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
194
|
+
*/
|
|
@@ -0,0 +1,194 @@
|
|
|
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; } }require('./chunk-N254NRHT.cjs');
|
|
2
|
+
|
|
3
|
+
// src/core/teams/ProjectProfiler.ts
|
|
4
|
+
var _fsextra = require('fs-extra'); var fs = _interopRequireWildcard(_fsextra);
|
|
5
|
+
var _path = require('path'); var path = _interopRequireWildcard(_path);
|
|
6
|
+
var _child_process = require('child_process');
|
|
7
|
+
var _util = require('util');
|
|
8
|
+
var execFileAsync = _util.promisify.call(void 0, _child_process.execFile);
|
|
9
|
+
var ProjectProfiler = class {
|
|
10
|
+
constructor(repoRoot) {
|
|
11
|
+
this.repoRoot = repoRoot;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Perform a full analysis of the repository and return a ProjectProfile.
|
|
15
|
+
*/
|
|
16
|
+
async analyze() {
|
|
17
|
+
const [languages, frameworks, structure, signals] = await Promise.all([
|
|
18
|
+
this.detectLanguages(),
|
|
19
|
+
this.detectFrameworks(),
|
|
20
|
+
this.detectStructure(),
|
|
21
|
+
this.detectSignals()
|
|
22
|
+
]);
|
|
23
|
+
return {
|
|
24
|
+
repoRoot: this.repoRoot,
|
|
25
|
+
languages,
|
|
26
|
+
frameworks,
|
|
27
|
+
structure,
|
|
28
|
+
signals,
|
|
29
|
+
generatedAgents: [],
|
|
30
|
+
analyzedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Detect programming languages by checking for well-known project manifest files.
|
|
35
|
+
*/
|
|
36
|
+
async detectLanguages() {
|
|
37
|
+
const langs = [];
|
|
38
|
+
const checks = [
|
|
39
|
+
["package.json", "typescript"],
|
|
40
|
+
["tsconfig.json", "typescript"],
|
|
41
|
+
["Cargo.toml", "rust"],
|
|
42
|
+
["go.mod", "go"],
|
|
43
|
+
["pyproject.toml", "python"],
|
|
44
|
+
["requirements.txt", "python"],
|
|
45
|
+
["Gemfile", "ruby"],
|
|
46
|
+
["pom.xml", "java"],
|
|
47
|
+
["build.gradle", "java"]
|
|
48
|
+
];
|
|
49
|
+
for (const [file, lang] of checks) {
|
|
50
|
+
if (await fs.pathExists(path.join(this.repoRoot, file))) {
|
|
51
|
+
if (!langs.includes(lang)) langs.push(lang);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (langs.length === 0) langs.push("unknown");
|
|
55
|
+
return langs;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Detect frameworks by inspecting package.json dependencies and devDependencies.
|
|
59
|
+
*/
|
|
60
|
+
async detectFrameworks() {
|
|
61
|
+
const frameworks = [];
|
|
62
|
+
const pkgPath = path.join(this.repoRoot, "package.json");
|
|
63
|
+
if (await fs.pathExists(pkgPath)) {
|
|
64
|
+
try {
|
|
65
|
+
const pkg = await fs.readJson(pkgPath);
|
|
66
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
67
|
+
const known = [
|
|
68
|
+
"react",
|
|
69
|
+
"vue",
|
|
70
|
+
"angular",
|
|
71
|
+
"express",
|
|
72
|
+
"fastify",
|
|
73
|
+
"next",
|
|
74
|
+
"ink",
|
|
75
|
+
"commander",
|
|
76
|
+
"vitest",
|
|
77
|
+
"jest"
|
|
78
|
+
];
|
|
79
|
+
for (const fw of known) {
|
|
80
|
+
if (allDeps[fw]) frameworks.push(fw);
|
|
81
|
+
}
|
|
82
|
+
} catch (e) {
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return frameworks;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Detect repository structure: presence of docs, tests, and CI configuration.
|
|
89
|
+
*/
|
|
90
|
+
async detectStructure() {
|
|
91
|
+
const [hasDocs, hasTests, hasCI] = await Promise.all([
|
|
92
|
+
fs.pathExists(path.join(this.repoRoot, "docs")),
|
|
93
|
+
this.anyPathExists([
|
|
94
|
+
path.join(this.repoRoot, "tests"),
|
|
95
|
+
path.join(this.repoRoot, "test"),
|
|
96
|
+
path.join(this.repoRoot, "__tests__")
|
|
97
|
+
]),
|
|
98
|
+
this.anyPathExists([
|
|
99
|
+
path.join(this.repoRoot, ".github", "workflows"),
|
|
100
|
+
path.join(this.repoRoot, ".circleci"),
|
|
101
|
+
path.join(this.repoRoot, ".gitlab-ci.yml")
|
|
102
|
+
])
|
|
103
|
+
]);
|
|
104
|
+
return { hasDocs, hasTests, hasCI };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Gather project signals: TODOs, missing docs, missing tests.
|
|
108
|
+
*/
|
|
109
|
+
async detectSignals() {
|
|
110
|
+
const signals = [];
|
|
111
|
+
const todos = await this.scanTodos();
|
|
112
|
+
if (todos.count > 0) {
|
|
113
|
+
signals.push(todos);
|
|
114
|
+
}
|
|
115
|
+
const hasDocs = await fs.pathExists(path.join(this.repoRoot, "docs"));
|
|
116
|
+
if (!hasDocs) {
|
|
117
|
+
signals.push({
|
|
118
|
+
type: "missing-docs",
|
|
119
|
+
severity: "medium",
|
|
120
|
+
count: 1,
|
|
121
|
+
locations: []
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
const hasTests = await this.anyPathExists([
|
|
125
|
+
path.join(this.repoRoot, "tests"),
|
|
126
|
+
path.join(this.repoRoot, "test"),
|
|
127
|
+
path.join(this.repoRoot, "__tests__")
|
|
128
|
+
]);
|
|
129
|
+
if (!hasTests) {
|
|
130
|
+
signals.push({
|
|
131
|
+
type: "missing-tests",
|
|
132
|
+
severity: "medium",
|
|
133
|
+
count: 1,
|
|
134
|
+
locations: []
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return signals;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Scan tracked source files for TODO/FIXME/HACK/XXX markers using git ls-files.
|
|
141
|
+
*/
|
|
142
|
+
async scanTodos() {
|
|
143
|
+
const locations = [];
|
|
144
|
+
let count = 0;
|
|
145
|
+
try {
|
|
146
|
+
const { stdout } = await execFileAsync(
|
|
147
|
+
"git",
|
|
148
|
+
["ls-files"],
|
|
149
|
+
{
|
|
150
|
+
cwd: this.repoRoot,
|
|
151
|
+
encoding: "utf-8",
|
|
152
|
+
timeout: 5e3
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
const sourceExtensions = /* @__PURE__ */ new Set([".ts", ".tsx", ".js", ".jsx", ".py", ".rs", ".go"]);
|
|
156
|
+
const files = stdout.trim().split("\n").filter((f) => f && sourceExtensions.has(path.extname(f)));
|
|
157
|
+
for (const file of files.slice(0, 200)) {
|
|
158
|
+
try {
|
|
159
|
+
const content = await fs.readFile(path.join(this.repoRoot, file), "utf-8");
|
|
160
|
+
const matches = content.match(/\b(TODO|FIXME|HACK|XXX)\b/g);
|
|
161
|
+
if (matches) {
|
|
162
|
+
count += matches.length;
|
|
163
|
+
if (locations.length < 10) locations.push(file);
|
|
164
|
+
}
|
|
165
|
+
} catch (e2) {
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
} catch (e3) {
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
type: "todo",
|
|
172
|
+
severity: count > 20 ? "high" : count > 5 ? "medium" : "low",
|
|
173
|
+
count,
|
|
174
|
+
locations
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Check whether any of the given paths exist.
|
|
179
|
+
* Unlike Promise.any with fs.pathExists (which always resolves),
|
|
180
|
+
* this properly returns true if at least one path exists.
|
|
181
|
+
*/
|
|
182
|
+
async anyPathExists(paths) {
|
|
183
|
+
const results = await Promise.all(paths.map((p) => fs.pathExists(p)));
|
|
184
|
+
return results.some(Boolean);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
exports.ProjectProfiler = ProjectProfiler;
|
|
190
|
+
/**
|
|
191
|
+
* @license
|
|
192
|
+
* Copyright 2025 Autohand AI LLC
|
|
193
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
194
|
+
*/
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk2JYIR3ECcjs = require('./chunk-2JYIR3EC.cjs');
|
|
5
|
+
require('./chunk-N254NRHT.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.ProviderFactory = _chunk2JYIR3ECcjs.ProviderFactory; exports.ProviderNotConfiguredError = _chunk2JYIR3ECcjs.ProviderNotConfiguredError;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkHTLINWX6cjs = require('./chunk-HTLINWX6.cjs');
|
|
5
|
+
require('./chunk-SEKD5FH3.cjs');
|
|
6
|
+
require('./chunk-N254NRHT.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.Session = _chunkHTLINWX6cjs.Session; exports.SessionManager = _chunkHTLINWX6cjs.SessionManager;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkTFSRRZWPcjs = require('./chunk-TFSRRZWP.cjs');
|
|
4
|
+
require('./chunk-JHGIWNHL.cjs');
|
|
5
|
+
require('./chunk-SEKD5FH3.cjs');
|
|
6
|
+
require('./chunk-N254NRHT.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.SkillsRegistry = _chunkTFSRRZWPcjs.SkillsRegistry;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkXUDSXGGVcjs = require('./chunk-XUDSXGGV.cjs');
|
|
4
|
+
require('./chunk-BVKXEQVG.cjs');
|
|
5
|
+
require('./chunk-CNBKZEX5.cjs');
|
|
6
|
+
require('./chunk-SEKD5FH3.cjs');
|
|
7
|
+
require('./chunk-ULQ6MDSJ.cjs');
|
|
8
|
+
require('./chunk-N254NRHT.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
exports.SubAgent = _chunkXUDSXGGVcjs.SubAgent;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk4HKTYHNLcjs = require('./chunk-4HKTYHNL.cjs');
|
|
5
|
+
require('./chunk-D6VG7B5X.cjs');
|
|
6
|
+
require('./chunk-PGRH5Q77.cjs');
|
|
7
|
+
require('./chunk-RVUQKMXX.cjs');
|
|
8
|
+
require('./chunk-N254NRHT.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
exports.about = _chunk4HKTYHNLcjs.about; exports.metadata = _chunk4HKTYHNLcjs.metadata;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ActionExecutor
|
|
3
|
+
} from "./chunk-LL3PQ2U6.js";
|
|
4
|
+
import "./chunk-CVVEYUFR.js";
|
|
5
|
+
import "./chunk-ALYU6VTM.js";
|
|
6
|
+
import "./chunk-W3X6PAC7.js";
|
|
7
|
+
import "./chunk-SAHBLB3E.js";
|
|
8
|
+
import "./chunk-5OBNULPU.js";
|
|
9
|
+
import "./chunk-EPNYD4NV.js";
|
|
10
|
+
import "./chunk-IVM5F2AE.js";
|
|
11
|
+
import "./chunk-JS7IPR7P.js";
|
|
12
|
+
import "./chunk-EGFT4PGW.js";
|
|
13
|
+
import "./chunk-HFMLWH7B.js";
|
|
14
|
+
import "./chunk-EZMINVLU.js";
|
|
15
|
+
import "./chunk-NCC6ETZS.js";
|
|
16
|
+
import "./chunk-JSBRDJBE.js";
|
|
17
|
+
export {
|
|
18
|
+
ActionExecutor
|
|
19
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkCDMGQR4Lcjs = require('./chunk-CDMGQR4L.cjs');
|
|
4
|
+
require('./chunk-LXDOQTXQ.cjs');
|
|
5
|
+
require('./chunk-YRLYSQEQ.cjs');
|
|
6
|
+
require('./chunk-4JNNTOGF.cjs');
|
|
7
|
+
require('./chunk-RKJTGGMU.cjs');
|
|
8
|
+
require('./chunk-FPAE6ORV.cjs');
|
|
9
|
+
require('./chunk-YDCDGTK6.cjs');
|
|
10
|
+
require('./chunk-RD5XAJR2.cjs');
|
|
11
|
+
require('./chunk-PGRH5Q77.cjs');
|
|
12
|
+
require('./chunk-SEKD5FH3.cjs');
|
|
13
|
+
require('./chunk-RVUQKMXX.cjs');
|
|
14
|
+
require('./chunk-LJFUXC56.cjs');
|
|
15
|
+
require('./chunk-ULQ6MDSJ.cjs');
|
|
16
|
+
require('./chunk-N254NRHT.cjs');
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
exports.ActionExecutor = _chunkCDMGQR4Lcjs.ActionExecutor;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkS6BDWWUGcjs = require('./chunk-S6BDWWUG.cjs');
|
|
5
|
+
require('./chunk-RVUQKMXX.cjs');
|
|
6
|
+
require('./chunk-N254NRHT.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.addDir = _chunkS6BDWWUGcjs.addDir; exports.metadata = _chunkS6BDWWUGcjs.metadata;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Identifies and removes dead code, unused imports, and unreachable functions
|
|
3
|
+
tools: read_file, search, apply_patch, replace_in_file, delete_path
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are a code cleaner. Your job is to identify and safely remove dead code.
|
|
7
|
+
|
|
8
|
+
When given a task:
|
|
9
|
+
1. Search for unused exports and imports
|
|
10
|
+
2. Verify each candidate is truly unused via cross-references
|
|
11
|
+
3. Remove dead code using apply_patch or replace_in_file
|
|
12
|
+
4. Never remove code that is dynamically referenced or part of a public API
|
|
13
|
+
|
|
14
|
+
Always verify before deleting. When in doubt, leave it in.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generates and maintains project documentation including READMEs, API docs, and guides
|
|
3
|
+
tools: read_file, search, list_tree, create_file, apply_patch
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are a documentation writer. Your job is to create clear, accurate documentation.
|
|
7
|
+
|
|
8
|
+
When given a task:
|
|
9
|
+
1. Explore the codebase structure to understand what exists
|
|
10
|
+
2. Read source files to understand public APIs and behavior
|
|
11
|
+
3. Write documentation that matches the project's existing style
|
|
12
|
+
4. Include code examples where helpful
|
|
13
|
+
|
|
14
|
+
Keep docs concise and focused. Prefer examples over lengthy explanations.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Expert at searching and understanding codebase patterns, architecture, and conventions
|
|
3
|
+
tools: read_file, search, search_with_context, list_tree, list_directory
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are a codebase researcher. Your job is to thoroughly explore and understand code.
|
|
7
|
+
|
|
8
|
+
When given a task:
|
|
9
|
+
1. Start by understanding the project structure with list_tree
|
|
10
|
+
2. Search for relevant patterns and keywords
|
|
11
|
+
3. Read key files to understand architecture
|
|
12
|
+
4. Report your findings clearly with file paths and line references
|
|
13
|
+
|
|
14
|
+
Be thorough but concise. Always cite specific file paths and line numbers.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Reviews code for bugs, security issues, performance problems, and best practice violations
|
|
3
|
+
tools: read_file, search, search_with_context, list_tree
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are a code reviewer. Your job is to find issues and suggest improvements.
|
|
7
|
+
|
|
8
|
+
When given a task:
|
|
9
|
+
1. Read the code thoroughly, understanding the full context
|
|
10
|
+
2. Check for common bugs, security vulnerabilities, and performance issues
|
|
11
|
+
3. Verify error handling is adequate
|
|
12
|
+
4. Look for violations of project conventions
|
|
13
|
+
5. Report findings with specific file paths, line numbers, and suggested fixes
|
|
14
|
+
|
|
15
|
+
Be constructive. Prioritize issues by severity: security > bugs > performance > style.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Writes and fixes tests to improve code coverage and reliability
|
|
3
|
+
tools: read_file, search, apply_patch, create_file, run_command
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are a test writer. Your job is to write thorough, maintainable tests.
|
|
7
|
+
|
|
8
|
+
When given a task:
|
|
9
|
+
1. Read the source code to understand behavior and edge cases
|
|
10
|
+
2. Check for existing test patterns in the project
|
|
11
|
+
3. Write tests following the project's testing conventions
|
|
12
|
+
4. Run tests to verify they pass
|
|
13
|
+
5. Cover happy paths, edge cases, and error conditions
|
|
14
|
+
|
|
15
|
+
Use descriptive test names that explain the expected behavior.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Finds and implements TODO, FIXME, HACK, and XXX markers in the codebase
|
|
3
|
+
tools: read_file, search, apply_patch, replace_in_file, run_command
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are a TODO resolver. Your job is to find and implement pending code markers.
|
|
7
|
+
|
|
8
|
+
When given a task:
|
|
9
|
+
1. Search for TODO/FIXME/HACK/XXX markers
|
|
10
|
+
2. Read surrounding context to understand intent
|
|
11
|
+
3. Implement the described change using apply_patch
|
|
12
|
+
4. Remove the marker comment after implementation
|
|
13
|
+
5. Run related tests to verify correctness
|
|
14
|
+
|
|
15
|
+
Prioritize markers by severity: FIXME > HACK > TODO > XXX.
|