autohand-cli 0.8.2 → 0.9.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/README.md +173 -74
- package/dist/AgentRegistry-EGBDIUAK.cjs +10 -0
- package/dist/{AgentRegistry-7LDL5HJH.js → AgentRegistry-XPWSVO3Q.js} +3 -3
- package/dist/{AutomodeManager-MWLKGPZK.js → AutomodeManager-APLLPEYJ.js} +32 -18
- package/dist/{AutomodeManager-NYIZNODK.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
- package/dist/CommunitySkillsCache-2OIUV227.cjs +8 -0
- package/dist/CommunitySkillsCache-ZEQWP6YM.js +8 -0
- package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
- package/dist/{GitHubRegistryFetcher-6JQ5JEDZ.js → GitHubRegistryFetcher-J2BWPXJF.js} +2 -2
- package/dist/HookManager-CWLTFKWO.js +7 -0
- package/dist/HookManager-TMAJQU4S.cjs +7 -0
- package/dist/{ImportWizard-35YBJ4AM.cjs → ImportWizard-MQXEED2U.cjs} +41 -17
- package/dist/{ImportWizard-XH7CINCH.js → ImportWizard-QBKQEXDW.js} +35 -11
- package/dist/LearnAdvisor-46FG2XIP.js +9 -0
- package/dist/LearnAdvisor-XBRDNAGH.cjs +9 -0
- package/dist/McpClientManager-BNSKLHIN.cjs +8 -0
- package/dist/{McpClientManager-7RM6YT35.js → McpClientManager-SL35BR24.js} +2 -2
- package/dist/MemoryManager-34L4YOKA.cjs +8 -0
- package/dist/MemoryManager-WJMLPWGU.js +8 -0
- package/dist/NVIDIAProvider-2HR737UE.js +14 -0
- package/dist/NVIDIAProvider-MVTL62PR.cjs +14 -0
- package/dist/PermissionManager-5OOJ7FAT.cjs +11 -0
- package/dist/{PermissionManager-ATUV34LQ.js → PermissionManager-KMYILJ4Z.js} +4 -4
- package/dist/{ProjectProfiler-ZDWR2ODG.cjs → ProjectProfiler-CDAE7ECW.cjs} +2 -1
- package/dist/{ProjectProfiler-UMJJSOCE.js → ProjectProfiler-NZTJDRHD.js} +2 -1
- package/dist/ProviderFactory-C3YPXTDD.cjs +11 -0
- package/dist/ProviderFactory-HFPRVQ25.js +11 -0
- package/dist/SessionManager-PNBTJJTQ.js +10 -0
- package/dist/SessionManager-WAPTFMDO.cjs +10 -0
- package/dist/SkillsRegistry-4RRD5GMX.js +9 -0
- package/dist/SkillsRegistry-7AJP74GJ.cjs +9 -0
- package/dist/SubAgent-FDIH3DXB.js +11 -0
- package/dist/SubAgent-HVL2ICVZ.cjs +11 -0
- package/dist/{SyncApiClient-LVIO4C2S.js → SyncApiClient-LRPFNCKJ.js} +2 -2
- package/dist/SyncApiClient-VMBOLQ6H.cjs +11 -0
- package/dist/about-BW3PDZUU.js +14 -0
- package/dist/about-FCAX37YC.cjs +14 -0
- package/dist/acp-EOETGAHC.cjs +1517 -0
- package/dist/acp-VHEL7BOW.js +1517 -0
- package/dist/actionExecutor-33I47NZS.js +24 -0
- package/dist/actionExecutor-4YBMR3YH.cjs +24 -0
- package/dist/add-dir-7SS6KSH5.cjs +11 -0
- package/dist/add-dir-VFX7QT4E.js +11 -0
- package/dist/agent-DMRUFU4M.cjs +116 -0
- package/dist/agent-WCJEYQJT.js +116 -0
- package/dist/agents/builtin/code-cleaner.md +1 -1
- package/dist/agents/builtin/docs-writer.md +1 -1
- package/dist/agents/builtin/researcher.md +2 -2
- package/dist/agents/builtin/reviewer.md +1 -1
- package/dist/agents/builtin/tester.md +1 -1
- package/dist/agents/builtin/todo-resolver.md +1 -1
- package/dist/agents-CHROO3VU.cjs +17 -0
- package/dist/agents-UVDUL65K.js +17 -0
- package/dist/agents-new-AUBWSOXP.js +17 -0
- package/dist/agents-new-Y562WC47.cjs +17 -0
- package/dist/{autoSkill-6TGBTEQD.js → autoSkill-EFMK6WU6.js} +3 -3
- package/dist/autoSkill-YOLLFTP2.cjs +20 -0
- package/dist/automode-BMYSRM34.js +10 -0
- package/dist/automode-DBLKTTKD.cjs +10 -0
- package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
- package/dist/browserToolBridge-F5N66PE7.js +58 -0
- package/dist/{cc-7LEIJ3KF.js → cc-AYEP2CA3.js} +1 -1
- package/dist/{cc-Q5MM4AWC.cjs → cc-S2QLQFBR.cjs} +1 -1
- package/dist/chrome-ATC4OO5I.cjs +20 -0
- package/dist/chrome-NHJ44WUN.js +50 -0
- package/dist/chrome-O62WXV7F.js +20 -0
- package/dist/chrome-XHJLCO4M.cjs +50 -0
- package/dist/chromeSkill-53TH55PM.js +105 -0
- package/dist/chromeSkill-THW7N4IY.cjs +105 -0
- package/dist/{chunk-HOAHWIQ5.cjs → chunk-2CGE7ZV3.cjs} +26 -26
- package/dist/chunk-2H5O745H.js +63 -0
- package/dist/chunk-2HOLOHVK.js +2219 -0
- package/dist/{chunk-3PDTTAKJ.js → chunk-2QL6MNXG.js} +15 -8
- package/dist/{chunk-PGRH5Q77.cjs → chunk-2VHB43IX.cjs} +35 -6
- package/dist/{chunk-VG34MG2U.js → chunk-37M5UM6I.js} +9 -6
- package/dist/{chunk-6HYLHBQG.cjs → chunk-3DDL2E55.cjs} +20 -16
- package/dist/chunk-3EDDDZS2.cjs +5 -0
- package/dist/{chunk-6OYHF6MF.js → chunk-3GUEUCZK.js} +28 -4
- package/dist/{chunk-N254NRHT.cjs → chunk-3HT76LNN.cjs} +9 -2
- package/dist/{chunk-DVUHHH3B.cjs → chunk-3KLSNNRW.cjs} +4 -4
- package/dist/chunk-3LJJG5YY.cjs +387 -0
- package/dist/chunk-3OF56EMA.cjs +197 -0
- package/dist/chunk-3PXKRVCW.js +108 -0
- package/dist/{chunk-IKGWDOGU.cjs → chunk-3S563FNF.cjs} +160 -79
- package/dist/chunk-3UT7R3XV.js +663 -0
- package/dist/chunk-4256YRCO.cjs +80 -0
- package/dist/chunk-46C73ZKK.cjs +663 -0
- package/dist/chunk-46MTALKD.js +44 -0
- package/dist/{chunk-AEJH23FO.cjs → chunk-47PHDKNW.cjs} +6 -6
- package/dist/chunk-4LMUDS2K.js +124 -0
- package/dist/{chunk-HLHTG5ZU.cjs → chunk-5CMYEM3R.cjs} +14 -12
- package/dist/{chunk-MBBY4ZIK.js → chunk-5F6ZKSHO.js} +4 -1
- package/dist/chunk-5JFTY3VU.js +74 -0
- package/dist/chunk-5JTTM5SC.js +59 -0
- package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
- package/dist/{chunk-GJH7XMSK.js → chunk-5VHP6HDQ.js} +8 -6
- package/dist/{chunk-6ZCULLCA.js → chunk-62RTC3XX.js} +1 -1
- package/dist/{chunk-MSED7RH2.cjs → chunk-6GUODJKM.cjs} +112 -41
- package/dist/{chunk-47CKWKEX.cjs → chunk-6HH236FV.cjs} +9 -4
- package/dist/{chunk-WHE2SWHU.js → chunk-6NVAK6CK.js} +2 -2
- package/dist/chunk-6R25D2H5.js +121 -0
- package/dist/{chunk-3PCTTUNW.cjs → chunk-6XVVIY54.cjs} +55 -25
- package/dist/{chunk-3L53OA4E.cjs → chunk-75EDROHL.cjs} +10 -10
- package/dist/{chunk-G4CAKI3V.js → chunk-7HPWMALN.js} +7 -2
- package/dist/chunk-7JLT2VNW.cjs +18963 -0
- package/dist/chunk-7LWQCE4Y.cjs +987 -0
- package/dist/{chunk-OLSBBZW6.cjs → chunk-7MU7LWF3.cjs} +5 -5
- package/dist/{chunk-HLQV64Y5.js → chunk-7RFJB75Y.js} +140 -59
- package/dist/{chunk-X2MSVKDV.js → chunk-A7HHCIDQ.js} +2 -2
- package/dist/{chunk-SKYG33B2.cjs → chunk-AC7DZ6SK.cjs} +3 -3
- package/dist/{chunk-XX2ZO7DS.js → chunk-ACDQGA4Z.js} +90 -16
- package/dist/{chunk-CZXGCVTR.cjs → chunk-AOKCI722.cjs} +2 -2
- package/dist/chunk-ARBEHFCG.js +715 -0
- package/dist/{chunk-OOKY3HPZ.js → chunk-AT7OWLY5.js} +50 -9
- package/dist/chunk-AU6JAGZJ.cjs +231 -0
- package/dist/chunk-AUFNACED.js +18963 -0
- package/dist/{chunk-CDBPBM2K.cjs → chunk-AUYSIEVV.cjs} +3 -3
- package/dist/chunk-B4HSNOIH.cjs +354 -0
- package/dist/{chunk-EGMZDTSL.js → chunk-B5CGDNMR.js} +10 -2
- package/dist/{chunk-34M3HWLR.js → chunk-BFQDQRDE.js} +2 -2
- package/dist/{chunk-2AA5MFES.js → chunk-BL2UC7HC.js} +8 -5
- package/dist/{chunk-LNMYK2F5.cjs → chunk-BQ22N3TX.cjs} +56 -41
- package/dist/chunk-BQU3HAE7.js +21 -0
- package/dist/chunk-BWF4VDYE.js +3897 -0
- package/dist/chunk-BYE7RQFZ.cjs +121 -0
- package/dist/{chunk-APIXPPMT.js → chunk-CBFH2J3O.js} +855 -33
- package/dist/chunk-CCVMREXI.js +420 -0
- package/dist/chunk-CFAWTLSC.js +13 -0
- package/dist/{chunk-G27PQQFD.js → chunk-CFFE4VA3.js} +1 -1
- package/dist/{chunk-ZYQMLKOK.cjs → chunk-CH2J4PVE.cjs} +212 -70
- package/dist/{chunk-7BTSG4ME.cjs → chunk-CHI52KFR.cjs} +855 -33
- package/dist/{chunk-DJDE4DTT.cjs → chunk-CWINVFRI.cjs} +25 -19
- package/dist/{chunk-HXGBSJL5.cjs → chunk-D2OSPLYC.cjs} +2 -2
- package/dist/{chunk-GBHDROGL.js → chunk-D6GZBSOX.js} +16 -4
- package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
- package/dist/chunk-DEQVRSV5.cjs +866 -0
- package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
- package/dist/{chunk-WM5PAOTQ.cjs → chunk-DIZTWFVR.cjs} +1649 -484
- package/dist/{chunk-YZXUDM5X.js → chunk-DLP436GI.js} +204 -62
- package/dist/{chunk-OHUZKDGX.js → chunk-DMRXF5DU.js} +3 -3
- package/dist/{chunk-U46VYPLR.cjs → chunk-DPSIGY6L.cjs} +9 -9
- package/dist/{chunk-DN573ME7.cjs → chunk-DRWDEHE5.cjs} +4 -4
- package/dist/{chunk-SEKD5FH3.cjs → chunk-E26KKI46.cjs} +5 -2
- package/dist/{chunk-J4Q7XR3G.js → chunk-E46DJH5S.js} +3 -3
- package/dist/{chunk-Q7XSCYND.cjs → chunk-E6GFD7VR.cjs} +49 -26
- package/dist/chunk-ES2HJQ4N.js +37 -0
- package/dist/chunk-EZJHLOWP.js +80 -0
- package/dist/chunk-FFBDRUO5.cjs +59 -0
- package/dist/{chunk-AYSFIUFW.js → chunk-FGT6KK6T.js} +38 -15
- package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
- package/dist/{chunk-DSPQEHDT.js → chunk-FQAVGSPW.js} +2 -2
- package/dist/chunk-FQVG6ZHF.js +197 -0
- package/dist/chunk-GBMDFWJX.cjs +152 -0
- package/dist/{chunk-DRE2RXBZ.js → chunk-GGLKUENP.js} +1605 -440
- package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
- package/dist/{chunk-MYISNQH4.js → chunk-GWO66KBI.js} +1 -1
- package/dist/chunk-GWY26SUD.cjs +63 -0
- package/dist/{chunk-YGN4CQIP.js → chunk-GZ6DV2UG.js} +1 -1
- package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
- package/dist/chunk-HDK2EHVH.cjs +570 -0
- package/dist/chunk-HJIXWGQZ.js +139 -0
- package/dist/{chunk-6RF7UKUS.js → chunk-HKYZSUQ5.js} +48 -47
- package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
- package/dist/{chunk-HTLINWX6.cjs → chunk-HQWQZML5.cjs} +16 -13
- package/dist/{chunk-DVZOENQ7.cjs → chunk-HS4USDND.cjs} +9 -4
- package/dist/chunk-HSCUPEA4.cjs +3897 -0
- package/dist/{chunk-JCLYQ2JC.js → chunk-HXJEGMGB.js} +12 -6
- package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
- package/dist/{chunk-SCXX4LW5.js → chunk-I24CWKKK.js} +15 -8
- package/dist/chunk-IAGCRVJ3.js +355 -0
- package/dist/chunk-IEXKKKOF.cjs +92 -0
- package/dist/{chunk-5IXII4HX.cjs → chunk-IGMPWJ2I.cjs} +19 -12
- package/dist/chunk-IKUMVBCW.cjs +33 -0
- package/dist/{chunk-XTB6VJVQ.cjs → chunk-J2K57QM7.cjs} +6 -6
- package/dist/{chunk-O4IF4NJT.cjs → chunk-J5ADZN6V.cjs} +57 -56
- package/dist/chunk-J5HE6CUM.cjs +124 -0
- package/dist/{chunk-JS7IPR7P.js → chunk-JAQO6XDB.js} +31 -2
- package/dist/chunk-JIMSII7R.js +987 -0
- package/dist/chunk-JJ4KA7HK.cjs +2219 -0
- package/dist/chunk-JMN3GZU6.js +570 -0
- package/dist/{chunk-X5VSP65C.cjs → chunk-JP3YHTQ2.cjs} +4 -4
- package/dist/{chunk-SKV2F3NM.js → chunk-JYKPWK5O.js} +1 -1
- package/dist/{chunk-NNPAM4HC.cjs → chunk-KNTUI4TZ.cjs} +12 -6
- package/dist/{chunk-HIVRCQS2.js → chunk-L4F7SUYL.js} +56 -25
- package/dist/{chunk-C5IJIM2V.cjs → chunk-LDJQ5QHG.cjs} +68 -37
- package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
- package/dist/chunk-LJD7KR3L.cjs +44 -0
- package/dist/chunk-LN7D3EJZ.js +387 -0
- package/dist/{chunk-643VRA5S.cjs → chunk-LQBONA55.cjs} +32 -8
- package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
- package/dist/chunk-M4KNC5BQ.js +78 -0
- package/dist/chunk-MO4KP6XS.cjs +229 -0
- package/dist/{chunk-BVKXEQVG.cjs → chunk-MOJ7ADW4.cjs} +22 -10
- package/dist/chunk-MPULXVC4.cjs +715 -0
- package/dist/{chunk-X5YJ34FZ.cjs → chunk-MQESBFBZ.cjs} +46 -23
- package/dist/chunk-MUNUUFU7.cjs +21 -0
- package/dist/{chunk-X3WS5LDG.js → chunk-MX75JYIY.js} +7 -5
- package/dist/chunk-MXVIDIC6.cjs +139 -0
- package/dist/{chunk-3K2ESU53.cjs → chunk-N6O3XUZ2.cjs} +2 -2
- package/dist/{chunk-IVM5F2AE.js → chunk-NBGOIFKP.js} +265 -18
- package/dist/{chunk-SLQAYV3W.js → chunk-NMQ47RCG.js} +8 -2
- package/dist/{chunk-JYTDYJVW.js → chunk-O64I2GYI.js} +1 -1
- package/dist/{chunk-IFFXSTOM.cjs → chunk-O6TQP7U7.cjs} +3 -3
- package/dist/{chunk-AYS2ASM7.js → chunk-OHWMWKJQ.js} +1 -1
- package/dist/{chunk-N23UAW4I.js → chunk-OM24WXEE.js} +7 -2
- package/dist/{chunk-MAKMSQMQ.cjs → chunk-OPNI6O7F.cjs} +8 -6
- package/dist/chunk-OR67YXQK.cjs +13 -0
- package/dist/{chunk-QOXPOR5D.js → chunk-OV3PVUYN.js} +115 -44
- package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
- package/dist/chunk-PCM3N3CL.cjs +37 -0
- package/dist/{chunk-A4IJHHV7.cjs → chunk-PDHT7LQS.cjs} +52 -11
- package/dist/{chunk-LA7H35XM.cjs → chunk-PHJO5YAL.cjs} +9 -9
- package/dist/{chunk-KPELYZ6L.js → chunk-PQLKJCIE.js} +2 -2
- package/dist/chunk-PUD76XQT.cjs +78 -0
- package/dist/chunk-Q2IL4DDI.cjs +355 -0
- package/dist/{chunk-WPVWQSL7.cjs → chunk-Q6AC3PHY.cjs} +16 -13
- package/dist/{chunk-XRZEUWKF.js → chunk-QCHIDZBA.js} +1 -1
- package/dist/{chunk-IQ5RXU6O.js → chunk-QEGOB6QV.js} +1 -1
- package/dist/{chunk-JSBRDJBE.js → chunk-QGM4M3NI.js} +8 -1
- package/dist/chunk-QKP772OZ.js +4291 -0
- package/dist/chunk-QQ7PANOP.js +59 -0
- package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
- package/dist/chunk-RAKO7UN7.js +114 -0
- package/dist/chunk-RBHANOYY.js +33 -0
- package/dist/chunk-RBZ7AFX7.cjs +29 -0
- package/dist/{chunk-TXSDBGKX.cjs → chunk-REMGR23V.cjs} +46 -49
- package/dist/chunk-ROLA6EFO.cjs +85 -0
- package/dist/{chunk-TBEGGJNC.cjs → chunk-SOLBYSLY.cjs} +33 -16
- package/dist/{chunk-FKSDEWDH.js → chunk-SWCQM52V.js} +68 -25
- package/dist/{chunk-H5SWOLG6.js → chunk-TBOLJDUG.js} +39 -24
- package/dist/chunk-TH26BQJG.js +101 -0
- package/dist/{chunk-245KJE5Y.cjs → chunk-TJNBASFD.cjs} +14 -6
- package/dist/chunk-TKKN34TV.js +229 -0
- package/dist/chunk-TQ33WBY5.cjs +74 -0
- package/dist/{chunk-EGFT4PGW.js → chunk-TWQDAUZU.js} +5 -2
- package/dist/{chunk-OGV4WJ5L.cjs → chunk-TXPSTCG7.cjs} +74 -59
- package/dist/{chunk-CAMZTXV6.js → chunk-U4C3HW6P.js} +67 -52
- package/dist/{chunk-5P2NXKP3.js → chunk-UEIXJG45.js} +104 -76
- package/dist/{chunk-22D2CNTP.cjs → chunk-UGFVM77J.cjs} +5 -2
- package/dist/chunk-UOQECODR.js +34 -0
- package/dist/chunk-UR27UDTB.js +354 -0
- package/dist/chunk-UWFG2R2I.cjs +420 -0
- package/dist/{chunk-Y72HH2TF.cjs → chunk-UXLW45ZE.cjs} +102 -28
- package/dist/{chunk-FPHU2ES6.cjs → chunk-VBOFPU5M.cjs} +6 -0
- package/dist/{chunk-JX3DFKBI.js → chunk-VDWJMWDF.js} +54 -24
- package/dist/{chunk-LENHP55G.cjs → chunk-VGEV44V2.cjs} +1076 -158
- package/dist/{chunk-33RSHBDH.js → chunk-VKBIE6I6.js} +38 -7
- package/dist/{chunk-CWMZKFTT.js → chunk-VRMZO6TB.js} +31 -8
- package/dist/chunk-VUGOOGHB.js +400 -0
- package/dist/chunk-WBU4Q4GS.cjs +400 -0
- package/dist/chunk-WGLBC5AY.cjs +59 -0
- package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
- package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
- package/dist/chunk-WRTXCQ3V.cjs +4291 -0
- package/dist/chunk-WTB7AFL6.cjs +101 -0
- package/dist/{chunk-NDMIPTV4.js → chunk-WZV6UVPY.js} +8 -3
- package/dist/chunk-XF2WIKHR.cjs +34 -0
- package/dist/{chunk-L3WAH3EM.cjs → chunk-XGMI6IYB.cjs} +46 -15
- package/dist/{chunk-FW774QXH.js → chunk-XIVFAD2L.js} +1048 -130
- package/dist/chunk-XV2HXRHX.js +85 -0
- package/dist/{chunk-72FKPBT5.js → chunk-Y3M2DABP.js} +16 -12
- package/dist/{chunk-QNGEW5TC.js → chunk-YV63VW4K.js} +1 -1
- package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
- package/dist/{chunk-RD5XAJR2.cjs → chunk-YWTIXHU6.cjs} +266 -19
- package/dist/chunk-YZWE7XSM.js +5 -0
- package/dist/{chunk-I5IW3T2Y.js → chunk-Z3XSSF7B.js} +32 -15
- package/dist/{chunk-6UJMCWRY.js → chunk-Z4LIPMPM.js} +6 -0
- package/dist/chunk-ZASDSY7P.cjs +114 -0
- package/dist/{chunk-R33VKSH5.cjs → chunk-ZHJ7JGME.cjs} +11 -11
- package/dist/chunk-ZPD2AO3U.js +866 -0
- package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
- package/dist/chunk-ZR46OJNZ.js +152 -0
- package/dist/{chunk-G3V4SFET.cjs → chunk-ZZ63NW7A.cjs} +78 -35
- package/dist/clear-33TWQ2ES.cjs +12 -0
- package/dist/clear-OFLFQ3MR.js +12 -0
- package/dist/{communityInstaller-6KCFN7YZ.js → communityInstaller-COB2KTOW.js} +9 -6
- package/dist/communityInstaller-TWMGPSYM.cjs +22 -0
- package/dist/completion-IIZMHXYP.cjs +17 -0
- package/dist/completion-PT4VM2H2.js +17 -0
- package/dist/config-KL6WU7R2.cjs +20 -0
- package/dist/{config-ZN66VXPS.js → config-R4O7GBTY.js} +7 -5
- package/dist/{constants-UFM5B232.js → constants-HVCHVQAF.js} +2 -2
- package/dist/constants-RLMJ5D5P.cjs +21 -0
- package/dist/{defaultHooks-RCXPHF4M.cjs → defaultHooks-2V2CQL63.cjs} +26 -11
- package/dist/{defaultHooks-RDRMER3Z.js → defaultHooks-TMHDU3FS.js} +26 -11
- package/dist/export-3PK3VFCE.js +15 -0
- package/dist/export-WLGNWEMJ.cjs +15 -0
- package/dist/{extractSessionMemories-V7K42ZHW.js → extractSessionMemories-A2JX5WJ2.js} +1 -1
- package/dist/{extractSessionMemories-SDW2MVBQ.cjs → extractSessionMemories-XL3MS37F.cjs} +1 -1
- package/dist/feedback-G635NCLJ.js +18 -0
- package/dist/feedback-LLMK3TZH.cjs +18 -0
- package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
- package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
- package/dist/filesystem-L6DQKGWK.js +11 -0
- package/dist/filesystem-PGUPCMVK.cjs +11 -0
- package/dist/{formatters-6K7QVWQL.cjs → formatters-53XTCNGQ.cjs} +1 -1
- package/dist/{formatters-DQHO5I36.js → formatters-T6KV4BPP.js} +1 -1
- package/dist/help-BAXLP2M2.cjs +12 -0
- package/dist/{help-2BLR7L43.js → help-X3OAZ3CY.js} +3 -3
- package/dist/history-6HOJSEMT.cjs +14 -0
- package/dist/{history-5FZ3M2AK.js → history-YKFPHBJN.js} +3 -3
- package/dist/hooks-7TA4PIIB.js +18 -0
- package/dist/hooks-XVFU67T2.cjs +18 -0
- package/dist/{i18n-K7QOWIBH.js → i18n-2KBUU7XL.js} +2 -2
- package/dist/i18n-MUJMKTFM.cjs +33 -0
- package/dist/ide-CCQ33PGC.cjs +15 -0
- package/dist/ide-VLVFBZ5F.js +15 -0
- package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
- package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
- package/dist/{import-UXM3VK7B.js → import-4CHYLS4K.js} +4 -4
- package/dist/{import-QEME3E4T.cjs → import-I7T4ZHYL.cjs} +4 -4
- package/dist/import-J46F54JY.cjs +10 -0
- package/dist/import-JWPYKXCZ.js +10 -0
- package/dist/index.cjs +747 -22356
- package/dist/index.d.cts +93 -0
- package/dist/index.d.ts +93 -0
- package/dist/index.js +786 -22395
- package/dist/init-262MWZV4.js +10 -0
- package/dist/init-EE5Y7RBL.cjs +10 -0
- package/dist/inkMode-VUE6ZDLD.cjs +7 -0
- package/dist/inkMode-WBNFOSAT.js +7 -0
- package/dist/inputPrompt-IIFKCX5Q.cjs +90 -0
- package/dist/inputPrompt-YGBHDUEP.js +90 -0
- package/dist/language-CVLPB7OV.js +21 -0
- package/dist/language-ZTWFHUSV.cjs +21 -0
- package/dist/learn-PON7I5QS.js +23 -0
- package/dist/learn-XLRSVNA3.cjs +23 -0
- package/dist/{lint-D5UOJWIK.cjs → lint-4NDGCSCL.cjs} +1 -1
- package/dist/{lint-NJPZWVN2.js → lint-FZ7ZJUB3.js} +1 -1
- package/dist/login-223QTGBG.cjs +26 -0
- package/dist/login-6IKTBUBY.js +26 -0
- package/dist/logout-RN2AG6SI.js +23 -0
- package/dist/logout-U3M4FFX7.cjs +23 -0
- package/dist/mcp-5O6PUL4G.js +20 -0
- package/dist/mcp-NUQ76QQB.cjs +20 -0
- package/dist/{mcp-install-VESN42PI.js → mcp-install-6XWXLFVY.js} +18 -11
- package/dist/{mcp-install-G27HSS3Z.cjs → mcp-install-P6DHES7V.cjs} +22 -15
- package/dist/memory-CYMDQ2YC.cjs +10 -0
- package/dist/memory-Q54CESNM.js +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-6AJ77PJG.js +10 -0
- package/dist/model-IDRCKDML.cjs +10 -0
- package/dist/new-7LEWOUF2.cjs +12 -0
- package/dist/new-ZXHEWC2S.js +12 -0
- package/dist/onboarding-FXX7YHSJ.cjs +35 -0
- package/dist/onboarding-JYNMK6NI.js +35 -0
- package/dist/{patch-MOD7QC3D.cjs → patch-DJ2GPFST.cjs} +1 -1
- package/dist/{patch-5F6VBIT3.js → patch-NIJWIRHS.js} +1 -1
- package/dist/permissions-YBNSANIA.cjs +10 -0
- package/dist/permissions-YHJMVA6L.js +10 -0
- package/dist/plan-XEJMOT55.cjs +13 -0
- package/dist/plan-YYUAXPTL.js +13 -0
- package/dist/pr-review-CW6J7P62.cjs +9 -0
- package/dist/pr-review-YZSBQVT2.js +9 -0
- package/dist/quit-B43SJ6E4.cjs +10 -0
- package/dist/quit-GWTNHQSP.js +10 -0
- package/dist/rawMode-6W5AXAKI.cjs +7 -0
- package/dist/rawMode-GFNLXQPU.js +7 -0
- package/dist/{registry-KWZGYJC2.js → registry-34GL6BNJ.js} +30 -45
- package/dist/{registry-YN4FQPOO.cjs → registry-V24W7YK6.cjs} +66 -81
- package/dist/repeat-P4FAPE3Y.cjs +17 -0
- package/dist/repeat-RALE6AUO.js +17 -0
- package/dist/resume-DYVOQN5L.cjs +16 -0
- package/dist/resume-M25UQKOX.js +16 -0
- package/dist/review-QHP2KP4Q.js +9 -0
- package/dist/review-UWHWQHCB.cjs +9 -0
- package/dist/ripgrep-67SCU2BA.cjs +9 -0
- package/dist/ripgrep-VHJQQ55W.js +9 -0
- package/dist/rpc-NPS3PU4O.cjs +3730 -0
- package/dist/rpc-S3DGW6KV.js +3730 -0
- package/dist/search-CPX4PWHP.js +20 -0
- package/dist/search-VUF3M4N3.cjs +20 -0
- package/dist/{session-BSU2L5UI.cjs → session-LXKC4X5Q.cjs} +1 -1
- package/dist/{session-SZMRN5KG.js → session-NMMO4QOL.js} +1 -1
- package/dist/sessions-IYAXMK23.js +10 -0
- package/dist/sessions-JODKER5D.cjs +10 -0
- package/dist/settings-55BNW6BF.js +33 -0
- package/dist/settings-BKTS7OMC.cjs +33 -0
- package/dist/setup-IRC5HQG2.js +29 -0
- package/dist/setup-MMQ7TWOP.cjs +29 -0
- package/dist/share-6JRQECAH.cjs +17 -0
- package/dist/share-YM5MJKMO.js +17 -0
- package/dist/{skills-FYY6F2WV.cjs → skills-GGMZOVIE.cjs} +14 -11
- package/dist/skills-LWSOKOSH.cjs +29 -0
- package/dist/{skills-6OL4OSGA.js → skills-MVIZNHT4.js} +13 -10
- package/dist/skills-VWOMV3CR.js +29 -0
- package/dist/{skills-install-6CSWC24P.js → skills-install-QBA5RCV6.js} +22 -71
- package/dist/{skills-install-O3LZ2ETC.cjs → skills-install-VTAMCNNY.cjs} +35 -84
- package/dist/skills-new-GPL46YV2.js +18 -0
- package/dist/skills-new-L5BEZN5V.cjs +18 -0
- package/dist/slashCommands-FBPCIWM5.cjs +95 -0
- package/dist/slashCommands-FCWY5DXW.js +95 -0
- package/dist/status-3B5SDZPL.js +17 -0
- package/dist/status-TTGRF6NC.cjs +17 -0
- package/dist/summarizer-DGPHE5IQ.js +17 -0
- package/dist/summarizer-JNXLUAQG.cjs +17 -0
- package/dist/sync-77CXVVTK.cjs +21 -0
- package/dist/{sync-KWX67OUN.js → sync-7BILIQHP.js} +4 -4
- package/dist/sync-7OKF6636.js +21 -0
- package/dist/sync-EH4K5U3N.cjs +40 -0
- package/dist/{tasks-5FPBIFLC.js → tasks-R5MBGAQ6.js} +1 -1
- package/dist/{tasks-TXGKGNH6.cjs → tasks-V4WB3MFR.cjs} +1 -1
- package/dist/{team-5YXP3JGR.js → team-JESCHGWB.js} +1 -1
- package/dist/{team-IIWEZKNR.cjs → team-VQQKWGZB.cjs} +1 -1
- package/dist/{teammate-L6EZQ3I2.js → teammate-GZQSCIMS.js} +29 -8
- package/dist/{teammate-2KMKJXAM.cjs → teammate-J6PHGL23.cjs} +30 -9
- package/dist/theme-64BYGJ57.cjs +21 -0
- package/dist/theme-YJE6HEON.js +21 -0
- package/dist/tools-3PPTTKFV.js +9 -0
- package/dist/tools-THIQA7WC.cjs +9 -0
- package/dist/ui/questionModal.cjs +9 -6
- package/dist/ui/questionModal.js +8 -5
- package/dist/undo-PRTEGL2J.cjs +10 -0
- package/dist/undo-SZEHLX7X.js +10 -0
- package/dist/{update-TVAJMMBC.js → update-53WMKYVS.js} +1 -1
- package/dist/{update-Z6BIIQDC.cjs → update-NV6QRYY7.cjs} +1 -1
- package/dist/web-3BA2WV37.cjs +37 -0
- package/dist/web-6FYGBX5K.js +37 -0
- package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
- package/dist/workspaceSafety-XOUMUBVB.js +9 -0
- package/dist/yolo-GF2YD7ZI.js +9 -0
- package/dist/yolo-OGDA7HNC.cjs +9 -0
- package/dist/yoloMode-3DJDA75U.cjs +17 -0
- package/dist/yoloMode-4JOOSU26.js +17 -0
- package/package.json +46 -49
- package/dist/AgentRegistry-NQCLWABO.cjs +0 -10
- package/dist/CommunitySkillsCache-6QPRMTJO.js +0 -8
- package/dist/CommunitySkillsCache-GTQMOCCO.cjs +0 -8
- package/dist/GitHubRegistryFetcher-S7QFUEKV.cjs +0 -7
- package/dist/HookManager-Q2KYMCP4.cjs +0 -7
- package/dist/HookManager-TTP4Y6DC.js +0 -7
- package/dist/LearnAdvisor-A4Q5PPBI.js +0 -9
- package/dist/LearnAdvisor-GASQD7HT.cjs +0 -9
- package/dist/McpClientManager-RKD7C6OY.cjs +0 -8
- package/dist/MemoryManager-GUNLRP5S.js +0 -8
- package/dist/MemoryManager-TNSGKDKX.cjs +0 -8
- package/dist/PermissionManager-KMN53FJP.cjs +0 -11
- package/dist/ProviderFactory-MR5B23QJ.js +0 -9
- package/dist/ProviderFactory-VFGCJJX6.cjs +0 -9
- package/dist/SessionManager-FEUAU3ZJ.cjs +0 -10
- package/dist/SessionManager-IKWAK2PI.js +0 -10
- package/dist/SkillsRegistry-KPQFTRIT.cjs +0 -9
- package/dist/SkillsRegistry-XJSKPDF2.js +0 -9
- package/dist/SubAgent-NYH6GWQ3.js +0 -11
- package/dist/SubAgent-PZKBDUBA.cjs +0 -11
- package/dist/SyncApiClient-ZNYMT36M.cjs +0 -11
- package/dist/about-HHTF2YFL.js +0 -12
- package/dist/about-JGRVNNQC.cjs +0 -12
- package/dist/actionExecutor-U6IBN2TU.cjs +0 -19
- package/dist/actionExecutor-XT5FW3W6.js +0 -19
- package/dist/add-dir-247K3XRY.js +0 -10
- package/dist/add-dir-GS4DXKKH.cjs +0 -10
- package/dist/agents-R6ZEFTVR.cjs +0 -12
- package/dist/agents-WJPQWQF2.js +0 -12
- package/dist/agents-new-HKVEIBDJ.js +0 -14
- package/dist/agents-new-X6GTHIO6.cjs +0 -14
- package/dist/autoSkill-H4T6VVDA.cjs +0 -20
- package/dist/automode-BC6NVECO.js +0 -10
- package/dist/automode-WN2RSOGW.cjs +0 -10
- package/dist/chunk-33A755XB.cjs +0 -168
- package/dist/chunk-3OTU3RS3.cjs +0 -1607
- package/dist/chunk-4PKF7WPD.js +0 -100
- package/dist/chunk-ALYU6VTM.js +0 -105
- package/dist/chunk-AS6RTLN7.cjs +0 -203
- package/dist/chunk-BWN2CLLM.cjs +0 -298
- package/dist/chunk-HQ7YZKXE.js +0 -168
- package/dist/chunk-HVKOZ2VP.cjs +0 -115
- package/dist/chunk-J6QET7EF.cjs +0 -454
- package/dist/chunk-LWUJFGOZ.js +0 -115
- package/dist/chunk-P47WPOXN.js +0 -298
- package/dist/chunk-PRRCJFU3.cjs +0 -85
- package/dist/chunk-RO6WYEWH.js +0 -454
- package/dist/chunk-SYVYLZZF.cjs +0 -24
- package/dist/chunk-T73IDKDF.js +0 -111
- package/dist/chunk-YRLYSQEQ.cjs +0 -105
- package/dist/chunk-ZQE72E6W.cjs +0 -100
- package/dist/chunk-ZVY2XD6T.js +0 -1607
- package/dist/clear-UO4MNWZW.cjs +0 -12
- package/dist/clear-ZJ5NYP6E.js +0 -12
- package/dist/communityInstaller-PVSOFDZD.cjs +0 -19
- package/dist/completion-MMF2PN2H.js +0 -14
- package/dist/completion-UI5WKHXI.cjs +0 -14
- package/dist/config-E7RINK4R.cjs +0 -18
- package/dist/constants-6CPCJ3DY.cjs +0 -21
- package/dist/export-N4XIVDSL.cjs +0 -12
- package/dist/export-W22L4D5C.js +0 -12
- package/dist/feedback-DR6ADSNE.cjs +0 -15
- package/dist/feedback-FEEAP4QW.js +0 -15
- package/dist/filesystem-3SGCW2BF.js +0 -10
- package/dist/filesystem-MCFXJQ6R.cjs +0 -10
- package/dist/help-AQHGTS7P.cjs +0 -12
- package/dist/history-NIUDRMKA.cjs +0 -14
- package/dist/hooks-2EY4IPKV.js +0 -13
- package/dist/hooks-LJVORRIG.cjs +0 -13
- package/dist/i18n-ARDG2SMC.cjs +0 -33
- package/dist/ide-GFW6IJHD.js +0 -12
- package/dist/ide-N2ZNSSB3.cjs +0 -12
- package/dist/import-DFVN3KNZ.js +0 -10
- package/dist/import-ZS6DPGU5.cjs +0 -10
- package/dist/init-PY75HA3S.cjs +0 -10
- package/dist/init-QNMWLAVY.js +0 -10
- package/dist/language-5UE4G2BT.cjs +0 -18
- package/dist/language-UXMHEZUJ.js +0 -18
- package/dist/learn-HJ3FLNZC.cjs +0 -20
- package/dist/learn-MVYS3RU5.js +0 -20
- package/dist/localProjectPermissions-N77HA3XK.js +0 -18
- package/dist/localProjectPermissions-UFSMNTBJ.cjs +0 -18
- package/dist/login-DSE7H63A.js +0 -20
- package/dist/login-V3MEWPKN.cjs +0 -20
- package/dist/logout-BMVCLKKW.js +0 -18
- package/dist/logout-XEG7FHOZ.cjs +0 -18
- package/dist/mcp-PYUR4PHO.js +0 -18
- package/dist/mcp-SG6JFLGC.cjs +0 -18
- package/dist/memory-4ZMMEZ2Z.js +0 -10
- package/dist/memory-QSGMVVGH.cjs +0 -10
- package/dist/model-NANLBZ4Z.cjs +0 -10
- package/dist/model-ZXNV4AF7.js +0 -10
- package/dist/new-5QJY5JP2.js +0 -12
- package/dist/new-PMMG55UX.cjs +0 -12
- package/dist/permissions-LECTCJ4H.cjs +0 -13
- package/dist/permissions-VP5VGIBL.js +0 -13
- package/dist/plan-G5CEKJI4.js +0 -11
- package/dist/plan-QKOHE3LH.cjs +0 -11
- package/dist/quit-BKOOPHU5.cjs +0 -10
- package/dist/quit-FVFNYACP.js +0 -10
- package/dist/resume-EXFQSQPH.js +0 -13
- package/dist/resume-PP2IQM5S.cjs +0 -13
- package/dist/search-C56FBN67.cjs +0 -17
- package/dist/search-XGZDYBF4.js +0 -17
- package/dist/sessions-54KI3F2Q.js +0 -10
- package/dist/sessions-DDTSPNVW.cjs +0 -10
- package/dist/settings-BDO37TTO.cjs +0 -30
- package/dist/settings-FHRDFPLK.js +0 -30
- package/dist/share-IERCTBGN.cjs +0 -14
- package/dist/share-TGROUE6R.js +0 -14
- package/dist/skills-OM4IGBAA.cjs +0 -26
- package/dist/skills-S3GRN323.js +0 -26
- package/dist/skills-new-ALD2PTHN.js +0 -15
- package/dist/skills-new-PWLKK7GW.cjs +0 -15
- package/dist/slashCommands-L4ZD33LJ.js +0 -75
- package/dist/slashCommands-YY2VUUDF.cjs +0 -75
- package/dist/status-3PC5XWSS.cjs +0 -11
- package/dist/status-KCLVOYPD.js +0 -11
- package/dist/sync-6SDWG5RK.js +0 -18
- package/dist/sync-7JMZVEQD.cjs +0 -40
- package/dist/sync-WHURZL3U.cjs +0 -18
- package/dist/theme-BE5A4FPN.cjs +0 -18
- package/dist/theme-YMFCQP7J.js +0 -18
- package/dist/undo-KZHUUZTD.cjs +0 -10
- package/dist/undo-NEIEHQVX.js +0 -10
|
@@ -1,16 +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 _chunkCHI52KFRcjs = require('./chunk-CHI52KFR.cjs');
|
|
4
4
|
|
|
5
5
|
// src/commands/memory.ts
|
|
6
6
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
7
7
|
async function memory(ctx) {
|
|
8
8
|
const { project, user } = await ctx.memoryManager.listAll();
|
|
9
9
|
console.log();
|
|
10
|
-
console.log(_chalk2.default.bold.cyan(
|
|
10
|
+
console.log(_chalk2.default.bold.cyan(_chunkCHI52KFRcjs.t.call(void 0, "commands.memory.title")));
|
|
11
11
|
console.log(_chalk2.default.gray("\u2500".repeat(50)));
|
|
12
12
|
if (project.length === 0 && user.length === 0) {
|
|
13
|
-
console.log(_chalk2.default.gray(
|
|
13
|
+
console.log(_chalk2.default.gray(_chunkCHI52KFRcjs.t.call(void 0, "commands.memory.noMemory")));
|
|
14
14
|
console.log();
|
|
15
15
|
console.log(_chalk2.default.gray("Tip: Type # followed by text to store a memory."));
|
|
16
16
|
console.log(_chalk2.default.gray("Example: # Always use TypeScript strict mode"));
|
|
@@ -18,7 +18,7 @@ async function memory(ctx) {
|
|
|
18
18
|
}
|
|
19
19
|
if (project.length > 0) {
|
|
20
20
|
console.log();
|
|
21
|
-
console.log(_chalk2.default.bold.yellow(
|
|
21
|
+
console.log(_chalk2.default.bold.yellow(_chunkCHI52KFRcjs.t.call(void 0, "commands.memory.projectMemory")) + _chalk2.default.gray(" (.autohand/memory/)"));
|
|
22
22
|
console.log();
|
|
23
23
|
for (const entry of project) {
|
|
24
24
|
const date = new Date(entry.updatedAt).toLocaleDateString();
|
|
@@ -30,7 +30,7 @@ async function memory(ctx) {
|
|
|
30
30
|
}
|
|
31
31
|
if (user.length > 0) {
|
|
32
32
|
console.log();
|
|
33
|
-
console.log(_chalk2.default.bold.magenta(
|
|
33
|
+
console.log(_chalk2.default.bold.magenta(_chunkCHI52KFRcjs.t.call(void 0, "commands.memory.userMemory")) + _chalk2.default.gray(" (~/.autohand/memory/)"));
|
|
34
34
|
console.log();
|
|
35
35
|
for (const entry of user) {
|
|
36
36
|
const date = new Date(entry.updatedAt).toLocaleDateString();
|
|
@@ -46,7 +46,7 @@ async function memory(ctx) {
|
|
|
46
46
|
}
|
|
47
47
|
var metadata = {
|
|
48
48
|
command: "/memory",
|
|
49
|
-
description:
|
|
49
|
+
description: _chunkCHI52KFRcjs.t.call(void 0, "commands.memory.description"),
|
|
50
50
|
implemented: true
|
|
51
51
|
};
|
|
52
52
|
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// src/permissions/yoloMode.ts
|
|
2
|
+
var DEFAULT_YOLO_FILE_TOOLS = [
|
|
3
|
+
"read_file",
|
|
4
|
+
"write_file",
|
|
5
|
+
"list_dir",
|
|
6
|
+
"file_search",
|
|
7
|
+
"grep_search",
|
|
8
|
+
"move_path",
|
|
9
|
+
"copy_path",
|
|
10
|
+
"run_command",
|
|
11
|
+
"shell"
|
|
12
|
+
];
|
|
13
|
+
function getDefaultYoloPattern() {
|
|
14
|
+
return "allow:*";
|
|
15
|
+
}
|
|
16
|
+
function normalizeYoloInput(pattern) {
|
|
17
|
+
if (pattern === void 0 || pattern === false) {
|
|
18
|
+
return void 0;
|
|
19
|
+
}
|
|
20
|
+
if (pattern === true) {
|
|
21
|
+
return getDefaultYoloPattern();
|
|
22
|
+
}
|
|
23
|
+
const trimmed = pattern.trim();
|
|
24
|
+
return trimmed.length > 0 ? trimmed : getDefaultYoloPattern();
|
|
25
|
+
}
|
|
26
|
+
function parseYoloPattern(pattern) {
|
|
27
|
+
const trimmed = pattern.trim();
|
|
28
|
+
if (trimmed.length === 0) {
|
|
29
|
+
throw new Error("YOLO pattern cannot be empty");
|
|
30
|
+
}
|
|
31
|
+
if (trimmed === "true") {
|
|
32
|
+
return { mode: "allow", tools: ["*"] };
|
|
33
|
+
}
|
|
34
|
+
const colonIndex = trimmed.indexOf(":");
|
|
35
|
+
if (colonIndex === -1) {
|
|
36
|
+
throw new Error(
|
|
37
|
+
`Invalid YOLO pattern "${pattern}". Expected format: allow:<tools> or deny:<tools>`
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
const mode = trimmed.slice(0, colonIndex).trim().toLowerCase();
|
|
41
|
+
const toolsPart = trimmed.slice(colonIndex + 1);
|
|
42
|
+
if (mode !== "allow" && mode !== "deny") {
|
|
43
|
+
throw new Error(
|
|
44
|
+
`Invalid YOLO mode "${mode}". Must be "allow" or "deny".`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
const tools = toolsPart.split(",").map((t) => t.trim()).filter((t) => t.length > 0);
|
|
48
|
+
if (tools.length === 0) {
|
|
49
|
+
throw new Error("YOLO pattern must specify at least one tool");
|
|
50
|
+
}
|
|
51
|
+
return { mode, tools };
|
|
52
|
+
}
|
|
53
|
+
function isToolAllowedByYolo(toolName, pattern) {
|
|
54
|
+
const isWildcard = pattern.tools.includes("*");
|
|
55
|
+
const isListed = pattern.tools.includes(toolName);
|
|
56
|
+
if (pattern.mode === "allow") {
|
|
57
|
+
return isWildcard || isListed;
|
|
58
|
+
}
|
|
59
|
+
if (isWildcard) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return !isListed;
|
|
63
|
+
}
|
|
64
|
+
function buildPermissionSettingsFromYolo(pattern) {
|
|
65
|
+
if (pattern.mode === "allow" && pattern.tools.includes("*")) {
|
|
66
|
+
return { mode: "unrestricted" };
|
|
67
|
+
}
|
|
68
|
+
if (pattern.mode === "allow") {
|
|
69
|
+
const allowPatterns = pattern.tools.map((tool) => ({ kind: tool }));
|
|
70
|
+
const pathAffectingTools = /* @__PURE__ */ new Set(["read_file", "write_file", "multi_file_edit", "move_path", "copy_path"]);
|
|
71
|
+
const defaultTools = new Set(DEFAULT_YOLO_FILE_TOOLS);
|
|
72
|
+
const patternPathTools = pattern.tools.filter((tool) => pathAffectingTools.has(tool));
|
|
73
|
+
const allPathToolsAreDefault = patternPathTools.every((tool) => defaultTools.has(tool));
|
|
74
|
+
return {
|
|
75
|
+
allowPatterns,
|
|
76
|
+
allPathsAllowed: allPathToolsAreDefault
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
denyPatterns: pattern.tools.map((tool) => ({ kind: tool }))
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
var YoloTimer = class {
|
|
84
|
+
startTime;
|
|
85
|
+
durationMs;
|
|
86
|
+
constructor(timeoutSeconds) {
|
|
87
|
+
this.startTime = Date.now();
|
|
88
|
+
this.durationMs = timeoutSeconds * 1e3;
|
|
89
|
+
}
|
|
90
|
+
/** Whether the timer is still active (within the timeout window). */
|
|
91
|
+
isActive() {
|
|
92
|
+
if (this.durationMs <= 0) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return Date.now() - this.startTime < this.durationMs;
|
|
96
|
+
}
|
|
97
|
+
/** Seconds remaining before the timer expires (minimum 0). */
|
|
98
|
+
remainingSeconds() {
|
|
99
|
+
if (this.durationMs <= 0) {
|
|
100
|
+
return 0;
|
|
101
|
+
}
|
|
102
|
+
const elapsed = Date.now() - this.startTime;
|
|
103
|
+
const remaining = Math.max(0, this.durationMs - elapsed);
|
|
104
|
+
return Math.ceil(remaining / 1e3);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export {
|
|
109
|
+
getDefaultYoloPattern,
|
|
110
|
+
normalizeYoloInput,
|
|
111
|
+
parseYoloPattern,
|
|
112
|
+
isToolAllowedByYolo,
|
|
113
|
+
buildPermissionSettingsFromYolo,
|
|
114
|
+
YoloTimer
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* YOLO Mode - Granular Auto-Approve with Timeout
|
|
118
|
+
*
|
|
119
|
+
* Provides pattern-based tool allow/deny and time-bounded auto-approve.
|
|
120
|
+
*
|
|
121
|
+
* @license
|
|
122
|
+
* Copyright 2025 Autohand AI LLC
|
|
123
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
124
|
+
*/
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } 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; }
|
|
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; } var _class;
|
|
2
2
|
|
|
3
3
|
var _chunkJHGIWNHLcjs = require('./chunk-JHGIWNHL.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkE26KKI46cjs = require('./chunk-E26KKI46.cjs');
|
|
7
7
|
|
|
8
8
|
// src/skills/SkillsRegistry.ts
|
|
9
9
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
@@ -95,16 +95,18 @@ var SkillParser = class {
|
|
|
95
95
|
// src/skills/SkillsRegistry.ts
|
|
96
96
|
var SIMILARITY_THRESHOLD = 0.3;
|
|
97
97
|
var VENDOR_SOURCES = ["codex-user", "claude-user", "codex-project", "claude-project"];
|
|
98
|
-
var SkillsRegistry = class {
|
|
99
|
-
constructor(userSkillsDir, defaultSource = "autohand-user") {
|
|
98
|
+
var SkillsRegistry = (_class = class {
|
|
99
|
+
constructor(userSkillsDir, defaultSource = "autohand-user") {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);
|
|
100
100
|
this.userSkillsDir = userSkillsDir;
|
|
101
|
-
this.skills = /* @__PURE__ */ new Map();
|
|
102
|
-
this.parser = new SkillParser();
|
|
103
|
-
this.workspaceRoot = null;
|
|
104
|
-
this.telemetryManager = null;
|
|
105
|
-
this.communityClient = null;
|
|
106
101
|
this.defaultSource = defaultSource;
|
|
107
102
|
}
|
|
103
|
+
|
|
104
|
+
__init() {this.skills = /* @__PURE__ */ new Map()}
|
|
105
|
+
__init2() {this.parser = new SkillParser()}
|
|
106
|
+
__init3() {this.workspaceRoot = null}
|
|
107
|
+
|
|
108
|
+
__init4() {this.telemetryManager = null}
|
|
109
|
+
__init5() {this.communityClient = null}
|
|
108
110
|
/**
|
|
109
111
|
* Set the telemetry manager for tracking skill events
|
|
110
112
|
*/
|
|
@@ -232,7 +234,7 @@ var SkillsRegistry = class {
|
|
|
232
234
|
this.workspaceRoot = workspaceRoot;
|
|
233
235
|
const claudeProjectSkillsDir = _path2.default.join(workspaceRoot, ".claude", "skills");
|
|
234
236
|
await this.loadFromDirectory(claudeProjectSkillsDir, "claude-project", false);
|
|
235
|
-
const autohandProjectSkillsDir = _path2.default.join(workspaceRoot,
|
|
237
|
+
const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkE26KKI46cjs.PROJECT_DIR_NAME, "skills");
|
|
236
238
|
await this.loadFromDirectory(autohandProjectSkillsDir, "autohand-project", true);
|
|
237
239
|
}
|
|
238
240
|
/**
|
|
@@ -291,7 +293,7 @@ var SkillsRegistry = class {
|
|
|
291
293
|
async setWorkspaceWithAutoCopy(workspaceRoot) {
|
|
292
294
|
this.workspaceRoot = workspaceRoot;
|
|
293
295
|
const claudeProjectSkillsDir = _path2.default.join(workspaceRoot, ".claude", "skills");
|
|
294
|
-
const autohandProjectSkillsDir = _path2.default.join(workspaceRoot,
|
|
296
|
+
const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunkE26KKI46cjs.PROJECT_DIR_NAME, "skills");
|
|
295
297
|
await this.addLocationWithAutoCopy(
|
|
296
298
|
claudeProjectSkillsDir,
|
|
297
299
|
"claude-project",
|
|
@@ -521,7 +523,7 @@ var SkillsRegistry = class {
|
|
|
521
523
|
return false;
|
|
522
524
|
}
|
|
523
525
|
}
|
|
524
|
-
};
|
|
526
|
+
}, _class);
|
|
525
527
|
|
|
526
528
|
|
|
527
529
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AUTOHAND_HOME
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TWQDAUZU.js";
|
|
4
4
|
|
|
5
5
|
// src/skills/CommunitySkillsCache.ts
|
|
6
6
|
import fs from "fs-extra";
|
|
@@ -8,6 +8,9 @@ import path from "path";
|
|
|
8
8
|
var DEFAULT_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
9
9
|
var DEFAULT_MAX_SKILLS_CACHE = 50;
|
|
10
10
|
var CommunitySkillsCache = class {
|
|
11
|
+
cacheDir;
|
|
12
|
+
ttlMs;
|
|
13
|
+
maxSkillsCache;
|
|
11
14
|
constructor(config = {}) {
|
|
12
15
|
this.cacheDir = config.cacheDir || path.join(AUTOHAND_HOME, "community-skills", "cache");
|
|
13
16
|
this.ttlMs = config.ttlMs ?? DEFAULT_TTL_MS;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// src/ui/displayUtils.ts
|
|
2
|
+
var ANSI_PATTERN = /\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)|\u001b\[[0-?]*[ -/]*[@-~]/g;
|
|
3
|
+
function stripAnsiCodes(value) {
|
|
4
|
+
return value.replace(ANSI_PATTERN, "");
|
|
5
|
+
}
|
|
6
|
+
function enableBracketedPaste(output) {
|
|
7
|
+
try {
|
|
8
|
+
output.write("\x1B[?2004h");
|
|
9
|
+
} catch (error) {
|
|
10
|
+
if (process.env.DEBUG_PASTE) {
|
|
11
|
+
output.write(`[DEBUG] Failed to enable bracketed paste: ${error}
|
|
12
|
+
`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function disableBracketedPaste(output) {
|
|
17
|
+
try {
|
|
18
|
+
output.write("\x1B[?2004l");
|
|
19
|
+
} catch {
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function shuffleInPlace(arr) {
|
|
23
|
+
for (let i = arr.length - 1; i > 0; i--) {
|
|
24
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
25
|
+
[arr[i], arr[j]] = [arr[j], arr[i]];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
var PASTE_LINE_THRESHOLD = 5;
|
|
29
|
+
var PASTE_CHAR_THRESHOLD = 1500;
|
|
30
|
+
function getContentDisplay(text) {
|
|
31
|
+
const charCount = Array.from(text).length;
|
|
32
|
+
if (!text) {
|
|
33
|
+
return {
|
|
34
|
+
visual: "",
|
|
35
|
+
actual: "",
|
|
36
|
+
isPasted: false,
|
|
37
|
+
lineCount: 1,
|
|
38
|
+
charCount
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const lines = text.split("\n");
|
|
42
|
+
const lineCount = lines.length;
|
|
43
|
+
if (lineCount >= PASTE_LINE_THRESHOLD || charCount >= PASTE_CHAR_THRESHOLD) {
|
|
44
|
+
return {
|
|
45
|
+
visual: `[Text pasted ${charCount} chars]`,
|
|
46
|
+
actual: text,
|
|
47
|
+
isPasted: true,
|
|
48
|
+
lineCount,
|
|
49
|
+
charCount
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
visual: text,
|
|
54
|
+
actual: text,
|
|
55
|
+
isPasted: false,
|
|
56
|
+
lineCount,
|
|
57
|
+
charCount
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export {
|
|
62
|
+
stripAnsiCodes,
|
|
63
|
+
enableBracketedPaste,
|
|
64
|
+
disableBracketedPaste,
|
|
65
|
+
shuffleInPlace,
|
|
66
|
+
getContentDisplay
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* @license
|
|
70
|
+
* Copyright 2025 Autohand AI LLC
|
|
71
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
72
|
+
*
|
|
73
|
+
* Display utilities for smart content rendering
|
|
74
|
+
*/
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// src/commands/review.ts
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import fse from "fs-extra";
|
|
5
|
+
var metadata = {
|
|
6
|
+
command: "/review",
|
|
7
|
+
description: "staff-level code review with 10 actionable findings",
|
|
8
|
+
implemented: true
|
|
9
|
+
};
|
|
10
|
+
async function review(ctx, args = []) {
|
|
11
|
+
const userInstructions = args.join(" ").trim();
|
|
12
|
+
const skillPath = path.resolve(
|
|
13
|
+
path.dirname(new URL(import.meta.url).pathname),
|
|
14
|
+
"../skills/builtin/code-reviewer/SKILL.md"
|
|
15
|
+
);
|
|
16
|
+
let skillBody = "";
|
|
17
|
+
try {
|
|
18
|
+
const content = await fse.readFile(skillPath, "utf-8");
|
|
19
|
+
const bodyMatch = content.match(/^---[\s\S]*?---\s*([\s\S]*)$/);
|
|
20
|
+
skillBody = bodyMatch ? bodyMatch[1].trim() : content;
|
|
21
|
+
} catch {
|
|
22
|
+
skillBody = "Perform a thorough code review analyzing architecture, security, performance, error handling, and maintainability.";
|
|
23
|
+
}
|
|
24
|
+
const parts = [
|
|
25
|
+
skillBody,
|
|
26
|
+
"",
|
|
27
|
+
"## Review Target",
|
|
28
|
+
`Workspace: ${ctx.workspaceRoot}`
|
|
29
|
+
];
|
|
30
|
+
if (userInstructions) {
|
|
31
|
+
parts.push("", "## Additional Focus", userInstructions);
|
|
32
|
+
}
|
|
33
|
+
parts.push(
|
|
34
|
+
"",
|
|
35
|
+
"## Instructions",
|
|
36
|
+
"Start the review now. Use the available tools (read_file, fff_grep, fff_find, list_tree, git_status, git_diff) to gather context, then deliver your 10-dimension review."
|
|
37
|
+
);
|
|
38
|
+
const prompt = parts.join("\n");
|
|
39
|
+
if (ctx.isNonInteractive || !ctx.queueInstruction) {
|
|
40
|
+
return prompt;
|
|
41
|
+
}
|
|
42
|
+
ctx.queueInstruction(prompt);
|
|
43
|
+
console.log(chalk.cyan("\n Starting code review..."));
|
|
44
|
+
if (userInstructions) {
|
|
45
|
+
console.log(chalk.gray(` Focus: ${userInstructions}`));
|
|
46
|
+
}
|
|
47
|
+
console.log(chalk.gray(" Analyzing 10 dimensions: architecture, security, performance, and more.\n"));
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export {
|
|
52
|
+
metadata,
|
|
53
|
+
review
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* @license
|
|
57
|
+
* Copyright 2026 Autohand AI LLC
|
|
58
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
59
|
+
*/
|
|
@@ -1,12 +1,74 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } var _class;
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkHXQREVTAcjs = require('./chunk-HXQREVTA.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkXF2WIKHRcjs = require('./chunk-XF2WIKHR.cjs');
|
|
4
7
|
|
|
5
8
|
// src/actions/filesystem.ts
|
|
6
9
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
7
10
|
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
8
11
|
var _child_process = require('child_process');
|
|
9
12
|
var _diff = require('diff');
|
|
13
|
+
|
|
14
|
+
// src/utils/patchValidator.ts
|
|
15
|
+
function validateAndFixPatch(patch) {
|
|
16
|
+
const lines = patch.split("\n");
|
|
17
|
+
const result = [];
|
|
18
|
+
let i = 0;
|
|
19
|
+
while (i < lines.length) {
|
|
20
|
+
const line = lines[i];
|
|
21
|
+
const hunkMatch = line.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
|
|
22
|
+
if (hunkMatch) {
|
|
23
|
+
i++;
|
|
24
|
+
const hunkLines = [];
|
|
25
|
+
while (i < lines.length) {
|
|
26
|
+
const nextLine = lines[i];
|
|
27
|
+
if (nextLine.match(/^@@ /) || nextLine.match(/^(---|\+\+\+|Index:|diff\s)/) || nextLine === "===================================================================") {
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
hunkLines.push(nextLine);
|
|
31
|
+
i++;
|
|
32
|
+
}
|
|
33
|
+
let oldCount = 0;
|
|
34
|
+
let newCount = 0;
|
|
35
|
+
for (const hunkLine of hunkLines) {
|
|
36
|
+
if (hunkLine.length === 0) continue;
|
|
37
|
+
const firstChar = hunkLine[0];
|
|
38
|
+
if (firstChar === "-") {
|
|
39
|
+
oldCount++;
|
|
40
|
+
} else if (firstChar === "+") {
|
|
41
|
+
newCount++;
|
|
42
|
+
} else if (firstChar === " " || firstChar === " ") {
|
|
43
|
+
oldCount++;
|
|
44
|
+
newCount++;
|
|
45
|
+
} else if (firstChar === "\\") {
|
|
46
|
+
} else {
|
|
47
|
+
oldCount++;
|
|
48
|
+
newCount++;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const oldStart = hunkMatch[1];
|
|
52
|
+
const newStart = hunkMatch[3];
|
|
53
|
+
let correctedHeader;
|
|
54
|
+
if (oldCount === 0) {
|
|
55
|
+
correctedHeader = `@@ -${parseInt(oldStart) + 1} +${newStart},${newCount} @@`;
|
|
56
|
+
} else if (newCount === 0) {
|
|
57
|
+
correctedHeader = `@@ -${oldStart},${oldCount} +${parseInt(newStart) + 1} @@`;
|
|
58
|
+
} else {
|
|
59
|
+
correctedHeader = `@@ -${oldStart},${oldCount} +${newStart},${newCount} @@`;
|
|
60
|
+
}
|
|
61
|
+
result.push(correctedHeader);
|
|
62
|
+
result.push(...hunkLines);
|
|
63
|
+
} else {
|
|
64
|
+
result.push(line);
|
|
65
|
+
i++;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return result.join("\n");
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// src/actions/filesystem.ts
|
|
10
72
|
var FILE_LIMITS = {
|
|
11
73
|
/** Maximum file size for read operations (10MB) */
|
|
12
74
|
MAX_READ_SIZE: 10 * 1024 * 1024,
|
|
@@ -19,17 +81,19 @@ var FILE_LIMITS = {
|
|
|
19
81
|
/** Maximum undo stack size */
|
|
20
82
|
MAX_UNDO_STACK: 100
|
|
21
83
|
};
|
|
22
|
-
var FileActionManager = class {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
84
|
+
var FileActionManager = (_class = class {
|
|
85
|
+
__init() {this.undoStack = []}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
// Preview mode state
|
|
89
|
+
__init2() {this.previewMode = false}
|
|
90
|
+
__init3() {this.pendingChanges = []}
|
|
91
|
+
__init4() {this.batchId = null}
|
|
92
|
+
__init5() {this.changeCounter = 0}
|
|
93
|
+
__init6() {this.onBatchChange = null}
|
|
94
|
+
__init7() {this.currentToolId = ""}
|
|
95
|
+
__init8() {this.currentToolName = ""}
|
|
96
|
+
constructor(workspaceRoot, additionalDirs = []) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);
|
|
33
97
|
const resolvedRoot = _path2.default.resolve(workspaceRoot);
|
|
34
98
|
try {
|
|
35
99
|
this.workspaceRoot = _fsextra2.default.realpathSync(resolvedRoot);
|
|
@@ -186,6 +250,14 @@ var FileActionManager = class {
|
|
|
186
250
|
get root() {
|
|
187
251
|
return this.workspaceRoot;
|
|
188
252
|
}
|
|
253
|
+
setWorkspaceRoot(workspaceRoot) {
|
|
254
|
+
const resolvedRoot = _path2.default.resolve(workspaceRoot);
|
|
255
|
+
try {
|
|
256
|
+
this.workspaceRoot = _fsextra2.default.realpathSync(resolvedRoot);
|
|
257
|
+
} catch (e4) {
|
|
258
|
+
this.workspaceRoot = resolvedRoot;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
189
261
|
async readFile(target) {
|
|
190
262
|
const filePath = this.resolvePath(target);
|
|
191
263
|
const exists = await _fsextra2.default.pathExists(filePath);
|
|
@@ -235,7 +307,8 @@ var FileActionManager = class {
|
|
|
235
307
|
async applyPatch(target, patch, description) {
|
|
236
308
|
const filePath = this.resolvePath(target);
|
|
237
309
|
const current = await this.readFileSafe(target);
|
|
238
|
-
const
|
|
310
|
+
const fixedPatch = validateAndFixPatch(patch);
|
|
311
|
+
const updated = _diff.applyPatch.call(void 0, current, fixedPatch);
|
|
239
312
|
if (updated === false) {
|
|
240
313
|
throw new Error(`Failed to apply patch to ${target}`);
|
|
241
314
|
}
|
|
@@ -261,7 +334,7 @@ var FileActionManager = class {
|
|
|
261
334
|
}
|
|
262
335
|
search(query, relativePath) {
|
|
263
336
|
const searchDir = this.resolvePath(_nullishCoalesce(relativePath, () => ( ".")));
|
|
264
|
-
const rgResult = _child_process.spawnSync.call(void 0,
|
|
337
|
+
const rgResult = _child_process.spawnSync.call(void 0, _chunkXF2WIKHRcjs.resolveRipgrepCommand.call(void 0, ), [
|
|
265
338
|
"--line-number",
|
|
266
339
|
"--color",
|
|
267
340
|
"never",
|
|
@@ -321,7 +394,7 @@ var FileActionManager = class {
|
|
|
321
394
|
const limit = _nullishCoalesce(opts.limit, () => ( 5));
|
|
322
395
|
const window = _nullishCoalesce(opts.window, () => ( 400));
|
|
323
396
|
const baseDir = this.resolvePath(_nullishCoalesce(opts.relativePath, () => ( ".")));
|
|
324
|
-
const ignoreFilter = new (0,
|
|
397
|
+
const ignoreFilter = new (0, _chunkHXQREVTAcjs.GitIgnoreParser)(baseDir);
|
|
325
398
|
const results = [];
|
|
326
399
|
const stack = [baseDir];
|
|
327
400
|
const lowerQuery = query.toLowerCase();
|
|
@@ -421,7 +494,7 @@ var FileActionManager = class {
|
|
|
421
494
|
file: normalizedRel || _path2.default.basename(current),
|
|
422
495
|
snippet
|
|
423
496
|
});
|
|
424
|
-
} catch (
|
|
497
|
+
} catch (e5) {
|
|
425
498
|
continue;
|
|
426
499
|
}
|
|
427
500
|
}
|
|
@@ -443,24 +516,13 @@ var FileActionManager = class {
|
|
|
443
516
|
resolvePath(target) {
|
|
444
517
|
const normalized = _path2.default.isAbsolute(target) ? target : _path2.default.join(this.workspaceRoot, target);
|
|
445
518
|
const resolved = _path2.default.resolve(normalized);
|
|
446
|
-
|
|
447
|
-
try {
|
|
448
|
-
realPath = _fsextra2.default.realpathSync(resolved);
|
|
449
|
-
} catch (e5) {
|
|
450
|
-
const parentDir = _path2.default.dirname(resolved);
|
|
451
|
-
try {
|
|
452
|
-
const realParent = _fsextra2.default.realpathSync(parentDir);
|
|
453
|
-
realPath = _path2.default.join(realParent, _path2.default.basename(resolved));
|
|
454
|
-
} catch (e6) {
|
|
455
|
-
realPath = resolved;
|
|
456
|
-
}
|
|
457
|
-
}
|
|
519
|
+
const realPath = this.resolveRealPathOrAncestor(resolved);
|
|
458
520
|
const allAllowedRoots = [this.workspaceRoot, ...this.additionalDirs];
|
|
459
521
|
for (const allowedRoot of allAllowedRoots) {
|
|
460
522
|
let realRoot;
|
|
461
523
|
try {
|
|
462
524
|
realRoot = _fsextra2.default.realpathSync(allowedRoot);
|
|
463
|
-
} catch (
|
|
525
|
+
} catch (e6) {
|
|
464
526
|
realRoot = allowedRoot;
|
|
465
527
|
}
|
|
466
528
|
const rootWithSep = realRoot.endsWith(_path2.default.sep) ? realRoot : `${realRoot}${_path2.default.sep}`;
|
|
@@ -471,6 +533,21 @@ var FileActionManager = class {
|
|
|
471
533
|
const allowedDirsList = allAllowedRoots.join(", ");
|
|
472
534
|
throw new Error(`Path ${target} escapes the allowed directories: ${allowedDirsList}`);
|
|
473
535
|
}
|
|
536
|
+
resolveRealPathOrAncestor(resolvedPath) {
|
|
537
|
+
let probe = resolvedPath;
|
|
538
|
+
while (true) {
|
|
539
|
+
try {
|
|
540
|
+
const realProbe = _fsextra2.default.realpathSync(probe);
|
|
541
|
+
return probe === resolvedPath ? realProbe : _path2.default.join(realProbe, _path2.default.relative(probe, resolvedPath));
|
|
542
|
+
} catch (e7) {
|
|
543
|
+
const parent = _path2.default.dirname(probe);
|
|
544
|
+
if (parent === probe) {
|
|
545
|
+
return resolvedPath;
|
|
546
|
+
}
|
|
547
|
+
probe = parent;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
}
|
|
474
551
|
walkFallback(query, baseDir) {
|
|
475
552
|
const hits = [];
|
|
476
553
|
const stack = [baseDir];
|
|
@@ -590,7 +667,7 @@ var FileActionManager = class {
|
|
|
590
667
|
return `${hit.file}:${hit.line}
|
|
591
668
|
${snippet.join("\n")}`;
|
|
592
669
|
}
|
|
593
|
-
};
|
|
670
|
+
}, _class);
|
|
594
671
|
|
|
595
672
|
|
|
596
673
|
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-QHPFA6OE.js";
|
|
4
4
|
import {
|
|
5
5
|
PROJECT_DIR_NAME
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TWQDAUZU.js";
|
|
7
7
|
|
|
8
8
|
// src/skills/SkillsRegistry.ts
|
|
9
9
|
import fs2 from "fs-extra";
|
|
@@ -98,13 +98,15 @@ var VENDOR_SOURCES = ["codex-user", "claude-user", "codex-project", "claude-proj
|
|
|
98
98
|
var SkillsRegistry = class {
|
|
99
99
|
constructor(userSkillsDir, defaultSource = "autohand-user") {
|
|
100
100
|
this.userSkillsDir = userSkillsDir;
|
|
101
|
-
this.skills = /* @__PURE__ */ new Map();
|
|
102
|
-
this.parser = new SkillParser();
|
|
103
|
-
this.workspaceRoot = null;
|
|
104
|
-
this.telemetryManager = null;
|
|
105
|
-
this.communityClient = null;
|
|
106
101
|
this.defaultSource = defaultSource;
|
|
107
102
|
}
|
|
103
|
+
userSkillsDir;
|
|
104
|
+
skills = /* @__PURE__ */ new Map();
|
|
105
|
+
parser = new SkillParser();
|
|
106
|
+
workspaceRoot = null;
|
|
107
|
+
defaultSource;
|
|
108
|
+
telemetryManager = null;
|
|
109
|
+
communityClient = null;
|
|
108
110
|
/**
|
|
109
111
|
* Set the telemetry manager for tracking skill events
|
|
110
112
|
*/
|