autohand-cli 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -79
- package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
- package/dist/AgentRegistry-JBXZUPML.js +18 -0
- package/dist/{CommunitySkillsCache-ZACDPD4J.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
- package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
- package/dist/{HookManager-2S6AHOC3.js → HookManager-BELBPQQI.js} +1 -1
- package/dist/{HookManager-TVEQI5ZU.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
- package/dist/{ImportWizard-AF2XL6DS.cjs → ImportWizard-U6CIJREW.cjs} +12 -12
- package/dist/{ImportWizard-AEBMAKXE.js → ImportWizard-VJFSWSUQ.js} +3 -3
- package/dist/LearnAdvisor-LAURA3IB.cjs +9 -0
- package/dist/LearnAdvisor-RFOBXFG7.js +9 -0
- package/dist/MemoryManager-3A2VRPF2.js +9 -0
- package/dist/MemoryManager-UOEQZIDC.cjs +9 -0
- package/dist/{NVIDIAProvider-SJPY3ONR.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
- package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
- package/dist/{PermissionManager-MT7KBNNR.js → PermissionManager-N2LDSOYF.js} +3 -3
- package/dist/PermissionManager-ZNURIEYR.cjs +11 -0
- package/dist/ProviderFactory-3BFS65V7.cjs +13 -0
- package/dist/{ProviderFactory-RB4RVAF6.js → ProviderFactory-XUT6BSGB.js} +4 -3
- package/dist/SessionManager-LGPQIA57.cjs +10 -0
- package/dist/{SessionManager-554PHVPC.js → SessionManager-OR4KDDDS.js} +2 -2
- package/dist/{SkillsRegistry-NHHMIUYJ.js → SkillsRegistry-IL3GWROU.js} +2 -2
- package/dist/SkillsRegistry-PM34DQNA.cjs +9 -0
- package/dist/SubAgent-2WG4QQB5.cjs +13 -0
- package/dist/SubAgent-ICGN23TQ.js +13 -0
- package/dist/{about-3USFSGOH.js → about-OYVGQMJJ.js} +3 -3
- package/dist/{about-QR52U5DD.cjs → about-U2BH7HDR.cjs} +4 -4
- package/dist/{acp-5Y2W6OZP.js → acp-JWHGXZL5.js} +169 -103
- package/dist/{acp-GSYE75OB.cjs → acp-S37JOBCS.cjs} +184 -118
- package/dist/{actionExecutor-KHUU3Z3Q.cjs → actionExecutor-2QEPMELQ.cjs} +13 -13
- package/dist/{actionExecutor-PLQJZLZV.js → actionExecutor-6NCCORRB.js} +12 -12
- package/dist/add-dir-KFUHSIR2.cjs +11 -0
- package/dist/{add-dir-HCERJDBR.js → add-dir-MM2BM2Z2.js} +2 -2
- package/dist/agent-DUIYLIVN.js +132 -0
- package/dist/agent-YYEHGDAK.cjs +132 -0
- package/dist/agents-GBGG4CW7.cjs +19 -0
- package/dist/agents-ZH34C72F.js +19 -0
- package/dist/agents-new-ERXLS7SB.cjs +17 -0
- package/dist/{agents-new-7GAQ25EK.js → agents-new-EVTGPTA4.js} +6 -6
- package/dist/{autoSkill-66PKCYTW.js → autoSkill-HEWKJ5JV.js} +2 -2
- package/dist/autoSkill-YL6PN6AV.cjs +20 -0
- package/dist/automode-4BJ7FNPL.cjs +10 -0
- package/dist/{automode-BUF3VGXU.js → automode-S4U7A7Q2.js} +2 -2
- package/dist/chrome-45ZXHL5N.cjs +22 -0
- package/dist/{chrome-Y3T7EIHG.js → chrome-BBSRVG6S.js} +2 -2
- package/dist/chrome-IFVZRHAT.cjs +50 -0
- package/dist/chrome-MYE6DNA2.js +22 -0
- package/dist/{chunk-45CHNQM6.cjs → chunk-24CEJYEG.cjs} +93 -31
- package/dist/{chunk-6JWCGQJU.cjs → chunk-255GIVM2.cjs} +6 -6
- package/dist/{chunk-D546G7DA.cjs → chunk-2BDSR2OW.cjs} +98 -75
- package/dist/{chunk-PGFLPURU.js → chunk-2BPIR7LA.js} +121 -4
- package/dist/{chunk-AOKXYGBQ.cjs → chunk-2NY7OHBF.cjs} +41 -26
- package/dist/chunk-2WUNHTXL.js +303 -0
- package/dist/{chunk-PQBYFEBL.cjs → chunk-34B6ZO6W.cjs} +124 -7
- package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
- package/dist/{chunk-3UC6DMFI.cjs → chunk-3CAXECWJ.cjs} +15 -15
- package/dist/{chunk-YWH55BWK.cjs → chunk-3CBYUBZC.cjs} +6 -9
- package/dist/chunk-3DF3GZQ7.js +277 -0
- package/dist/{chunk-KASXKDF2.cjs → chunk-3JURXAL6.cjs} +58 -7
- package/dist/{chunk-JV5HVCHU.cjs → chunk-3KWAP2Y3.cjs} +88 -9
- package/dist/{chunk-WPE2XHVX.js → chunk-3MCK6UBL.js} +1 -1
- package/dist/{chunk-U2QUMKCB.js → chunk-3TH7IK4M.js} +62 -9
- package/dist/{chunk-YXM6SA7P.js → chunk-3V77OB3W.js} +3 -3
- package/dist/{chunk-MZN6JBRZ.cjs → chunk-3Y5UEK7K.cjs} +4 -4
- package/dist/{chunk-BP37FVBM.js → chunk-4GPPSBEZ.js} +3 -3
- package/dist/{chunk-4XVLNOFA.js → chunk-5CMBAJ6K.js} +20 -3
- package/dist/{chunk-PNIAIOMZ.cjs → chunk-5YRXFBYZ.cjs} +35 -6
- package/dist/chunk-6AC2TT26.js +156 -0
- package/dist/{chunk-PSAH4ZQB.cjs → chunk-6EIQ6A6U.cjs} +2 -2
- package/dist/{chunk-YQDI753V.js → chunk-6HSEDXVF.js} +4 -4
- package/dist/{chunk-O5GI6SR3.js → chunk-6NUXK62F.js} +1 -1
- package/dist/{chunk-HVCIB4SW.cjs → chunk-6TGCAPYH.cjs} +62 -9
- package/dist/{chunk-HZWU6IO3.js → chunk-6W3SZCSP.js} +2 -5
- package/dist/{chunk-Q3BS6FPM.js → chunk-73LV3DDZ.js} +4 -4
- package/dist/{chunk-ZNGRLCFQ.js → chunk-7BGGLIQF.js} +83 -1
- package/dist/{chunk-ZNYZB7XY.cjs → chunk-7EEK7CRR.cjs} +83 -1
- package/dist/{chunk-HK5A54AV.cjs → chunk-7TO3PDMV.cjs} +48 -4
- package/dist/chunk-7UU22RSH.cjs +277 -0
- package/dist/{chunk-XNIMSVS6.cjs → chunk-A3GAM6FM.cjs} +11 -11
- package/dist/{chunk-W5QLA6WP.cjs → chunk-A7DJU75T.cjs} +8 -8
- package/dist/{chunk-7XTUL7ZD.cjs → chunk-AAAO4ERQ.cjs} +9 -9
- package/dist/{chunk-M5DK524Z.js → chunk-AAJLMP57.js} +2 -2
- package/dist/chunk-ABR756QN.js +529 -0
- package/dist/{chunk-OIGYWOL6.js → chunk-APFGDIPD.js} +3 -1
- package/dist/{chunk-PTTZI4QZ.js → chunk-APQYRMYL.js} +4 -4
- package/dist/{chunk-CO2AADYU.cjs → chunk-AZKOIF2G.cjs} +55 -17
- package/dist/{chunk-P6SLT2F4.cjs → chunk-AZLHUPNC.cjs} +2 -2
- package/dist/chunk-B55VCYSQ.cjs +30 -0
- package/dist/{chunk-JMJRFSNJ.js → chunk-BLQUMSM3.js} +1 -1
- package/dist/{chunk-MGNXABSU.cjs → chunk-BXKPX6K4.cjs} +9 -9
- package/dist/{chunk-MQQH4XQH.cjs → chunk-C66FN2LP.cjs} +4 -4
- package/dist/{chunk-CECH6QQP.js → chunk-CH7KUFAS.js} +10 -10
- package/dist/{chunk-PIXQ2AVM.cjs → chunk-CILSXOPI.cjs} +17 -17
- package/dist/{chunk-IEPLQ47J.js → chunk-CM24K6ZT.js} +89 -12
- package/dist/chunk-CMEZ42F2.cjs +303 -0
- package/dist/{chunk-X5P6QQOB.cjs → chunk-CNQKIWIS.cjs} +100 -23
- package/dist/{chunk-AQ5PVHOC.cjs → chunk-CSUGNNJY.cjs} +4 -3
- package/dist/{chunk-QRQF3556.js → chunk-D6HB3H3L.js} +25 -10
- package/dist/{chunk-XZVDYC5U.js → chunk-D7AYKVKW.js} +2 -2
- package/dist/{chunk-3UHRCHKB.cjs → chunk-DLCXWOWT.cjs} +23 -23
- package/dist/{chunk-CK4HAHVY.cjs → chunk-DMM2BKSV.cjs} +118 -25
- package/dist/{chunk-SPQ7QIQ6.js → chunk-DW3DPV77.js} +1 -1
- package/dist/chunk-ECQD2QC3.cjs +33 -0
- package/dist/{chunk-SNDDZG5H.js → chunk-EEYOS3UC.js} +90 -70
- package/dist/{chunk-DGBPWODD.js → chunk-EF2EN5CR.js} +2 -2
- package/dist/{chunk-M7B7RRBK.cjs → chunk-EFXFURDY.cjs} +138 -51
- package/dist/chunk-EK34UZPB.cjs +40 -0
- package/dist/{chunk-CRTCZ4WL.cjs → chunk-FJR6EZLO.cjs} +3834 -2337
- package/dist/{chunk-TYBPTKFT.js → chunk-FPO7YNPQ.js} +1 -1
- package/dist/{chunk-X3TI5TJJ.js → chunk-FS4I6BNR.js} +1 -1
- package/dist/{chunk-WNJXIACY.js → chunk-FSJ2MNOC.js} +3 -3
- package/dist/{chunk-44ZWOBTI.js → chunk-GEHZMC4G.js} +12 -9
- package/dist/{chunk-Y5BDE24P.cjs → chunk-GO6C2RAR.cjs} +3 -0
- package/dist/{chunk-XW3XCK4E.cjs → chunk-GSMR6V36.cjs} +4 -4
- package/dist/{chunk-H426KOGY.js → chunk-GSZWATME.js} +1 -1
- package/dist/{chunk-S5JNQIGL.cjs → chunk-GYLGCR6F.cjs} +5 -5
- package/dist/{chunk-ONVYXTUT.cjs → chunk-H3OOWNYQ.cjs} +3 -3
- package/dist/{chunk-V5ELP2XE.js → chunk-H65446XW.js} +110 -15
- package/dist/{chunk-LANGD5CO.js → chunk-H7HXRRHK.js} +45 -1
- package/dist/{chunk-RBXBH6EB.cjs → chunk-HN2JTDN5.cjs} +17 -17
- package/dist/{chunk-SOVR7S3T.cjs → chunk-HNXUZ5OY.cjs} +2 -2
- package/dist/{chunk-AZ47LKD5.cjs → chunk-HOYT3E65.cjs} +3 -3
- package/dist/{chunk-P4FUTSVK.js → chunk-HTPY5ESD.js} +3 -3
- package/dist/{chunk-5SFV2NCY.cjs → chunk-HVLWH2AF.cjs} +10 -10
- package/dist/{chunk-VQHSYAPZ.cjs → chunk-HZTEU4W5.cjs} +62 -93
- package/dist/{chunk-4XFHP2SN.cjs → chunk-I5T7LPFP.cjs} +7 -7
- package/dist/{chunk-ZPLCAXJW.js → chunk-IB5CJXE7.js} +7 -7
- package/dist/{chunk-KM7R5YPS.cjs → chunk-INNXFLDR.cjs} +9 -6
- package/dist/{chunk-2ESQR35E.cjs → chunk-JFLEP3T7.cjs} +10 -10
- package/dist/chunk-JJGDOBFL.js +40 -0
- package/dist/{chunk-5A7ZL64N.js → chunk-JSU46T6K.js} +1 -1
- package/dist/{chunk-NB6M6ESM.js → chunk-K6WN6BT4.js} +1 -1
- package/dist/{chunk-QQ64HEHP.cjs → chunk-KIQH3SMT.cjs} +34 -31
- package/dist/{chunk-MANJ67D3.js → chunk-KPRXHIE2.js} +52 -83
- package/dist/{chunk-6HF6XSCC.js → chunk-LIO3RX2Z.js} +2 -2
- package/dist/{chunk-NZ3ZWLUW.js → chunk-LOSXLH7P.js} +109 -16
- package/dist/{chunk-NZ7GCK7Y.cjs → chunk-LSOR72PB.cjs} +23 -23
- package/dist/{chunk-6AYJCDTA.js → chunk-MA3AVDCC.js} +47 -9
- package/dist/{chunk-PZZMIYII.js → chunk-ME3S2WIR.js} +3 -3
- package/dist/{chunk-2IW5YFJ4.js → chunk-NC2I2M4P.js} +4 -4
- package/dist/{chunk-AE2ILW25.cjs → chunk-NC4A4LVC.cjs} +13 -13
- package/dist/{chunk-EEHWALXA.js → chunk-NGEK5FCJ.js} +85 -3
- package/dist/{chunk-MMKZSJUN.js → chunk-NKW6CHXQ.js} +1 -1
- package/dist/{chunk-JB3JCYBJ.js → chunk-NOWCRKP2.js} +4 -3
- package/dist/{chunk-3ZOOH44N.js → chunk-NUB2LMB6.js} +2 -2
- package/dist/chunk-O246MKIW.cjs +267 -0
- package/dist/{chunk-SRMGWMQO.js → chunk-OGFWL2PS.js} +1 -1
- package/dist/{chunk-YISPVAXO.cjs → chunk-ONNGAR6W.cjs} +340 -597
- package/dist/{chunk-7WAUCLLQ.js → chunk-OOFR6A62.js} +33 -4
- package/dist/{chunk-4E7SHPNQ.js → chunk-OZ7FHO7J.js} +2 -2
- package/dist/{chunk-NV6LCD2I.cjs → chunk-P5EWGUI2.cjs} +109 -27
- package/dist/{chunk-YC5OBZQU.js → chunk-P6BQJPAI.js} +41 -18
- package/dist/{chunk-SHRLFX6F.js → chunk-PG2JIU5M.js} +57 -6
- package/dist/{chunk-6OECOAK5.cjs → chunk-PI27G2ED.cjs} +25 -8
- package/dist/{chunk-TR6NECEZ.js → chunk-PI7LRPL6.js} +1 -1
- package/dist/{chunk-GAOPJ5S3.cjs → chunk-PMPEC5HN.cjs} +18 -15
- package/dist/{chunk-5GCQ5UMV.cjs → chunk-PYUP7AKY.cjs} +14 -14
- package/dist/{chunk-S5QKRA2V.js → chunk-QC5Z3ZT5.js} +2 -2
- package/dist/chunk-QDO4L2A7.cjs +156 -0
- package/dist/{chunk-LFDPTJYF.cjs → chunk-QDXRI5AM.cjs} +1 -1
- package/dist/{chunk-26G7YGOW.js → chunk-QVXMSQOG.js} +84 -21
- package/dist/{chunk-SVVP4UUZ.cjs → chunk-R4UKBKDY.cjs} +11 -11
- package/dist/{chunk-HG3ZASBH.cjs → chunk-R75AWII3.cjs} +112 -17
- package/dist/{chunk-TE4SYTWR.cjs → chunk-RD5PLUIX.cjs} +8 -8
- package/dist/{chunk-FFHSCM5M.js → chunk-RGB34CV5.js} +3 -3
- package/dist/{chunk-SY2P3Z5W.cjs → chunk-RJCZLFHE.cjs} +96 -32
- package/dist/{chunk-22SCR3EV.cjs → chunk-RKWNM2BJ.cjs} +2 -2
- package/dist/{chunk-FBQJZKFX.js → chunk-RMVONICR.js} +3 -3
- package/dist/{chunk-PY73W5MQ.cjs → chunk-RPSYRJL7.cjs} +10 -4
- package/dist/{chunk-HXHE2KAO.js → chunk-RWKU2X7O.js} +7 -4
- package/dist/{chunk-NQZH5CR2.cjs → chunk-RZLEGVMH.cjs} +102 -5
- package/dist/{chunk-KMP6Y3LJ.js → chunk-S2L3Y677.js} +1 -1
- package/dist/{chunk-GSDV75A5.js → chunk-S7KVUIOS.js} +1 -1
- package/dist/{chunk-7PT646AL.cjs → chunk-SACJJ6NO.cjs} +5 -3
- package/dist/{chunk-LEZEWKPA.js → chunk-SJQU2ZFR.js} +96 -32
- package/dist/{chunk-65LRPW5W.js → chunk-SKAQKQFF.js} +12 -2
- package/dist/chunk-T4DXP5OP.js +30 -0
- package/dist/{chunk-EYHKL4QC.js → chunk-T6FTB6K2.js} +1 -1
- package/dist/{chunk-DNSD7DVJ.js → chunk-T6N6GRFT.js} +13 -10
- package/dist/{chunk-575PXZX7.js → chunk-TJFKA6A7.js} +82 -3
- package/dist/{chunk-HSWWM6AM.js → chunk-TJZUPS4Z.js} +34 -291
- package/dist/{chunk-DHUQZ53B.cjs → chunk-TLKHZ425.cjs} +2 -2
- package/dist/{chunk-VLGGMQUN.cjs → chunk-TQ24NLXO.cjs} +6 -6
- package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
- package/dist/{chunk-EA2MS25U.cjs → chunk-TZB5XADL.cjs} +4 -4
- package/dist/{chunk-U6PLSPMD.cjs → chunk-UAYXZXWU.cjs} +4 -4
- package/dist/{chunk-OV3T5MUH.cjs → chunk-UKBFNBDO.cjs} +11 -11
- package/dist/{chunk-SZD45IDG.js → chunk-UMJYX5KD.js} +101 -4
- package/dist/{chunk-B76FJKEJ.cjs → chunk-USKYTHDL.cjs} +69 -18
- package/dist/{chunk-NZQFKXM3.cjs → chunk-VAJUSZMC.cjs} +15 -15
- package/dist/{chunk-SDLY4X3G.js → chunk-VGQG4NBJ.js} +2 -2
- package/dist/{chunk-KWXGDSYT.js → chunk-VLUIVJ3J.js} +58 -7
- package/dist/{chunk-KJ26T7GM.cjs → chunk-VOBINVMV.cjs} +105 -42
- package/dist/{chunk-C5QIQQ37.js → chunk-VSHKKCSH.js} +16 -5
- package/dist/{chunk-L46OUKW5.cjs → chunk-VSZU3MGA.cjs} +28 -17
- package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
- package/dist/{chunk-UWZ4G3SQ.js → chunk-VXGYFX45.js} +4 -4
- package/dist/{chunk-C46B72VK.js → chunk-WH6YUQDB.js} +141 -54
- package/dist/{chunk-SFFEKZGC.js → chunk-WQ6TD55V.js} +2 -2
- package/dist/{chunk-7PJKTSRN.js → chunk-WQWECXTY.js} +3 -3
- package/dist/{chunk-DSSCERHI.cjs → chunk-WVDJUJH6.cjs} +2 -2
- package/dist/{chunk-JPFRI4L4.js → chunk-X24VIVDZ.js} +210 -26
- package/dist/{chunk-7IRQ7JEH.js → chunk-X4NRTLXD.js} +7 -1
- package/dist/{chunk-7MY4JHER.js → chunk-X53SHYCG.js} +2 -2
- package/dist/{chunk-RFUKZIJF.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
- package/dist/{chunk-WJYFLQ7G.cjs → chunk-Y47OJGLB.cjs} +3 -3
- package/dist/{chunk-HC2Q6A3E.cjs → chunk-Y4MN27V3.cjs} +361 -177
- package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
- package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
- package/dist/{chunk-63ANVAOJ.cjs → chunk-YMXYC777.cjs} +3 -3
- package/dist/{chunk-X7XMITIL.cjs → chunk-Z3GRWK6O.cjs} +8 -8
- package/dist/{chunk-3ICORF7M.cjs → chunk-Z5GG2KSL.cjs} +4 -4
- package/dist/{chunk-I2ZK3AOD.js → chunk-ZER7DYQK.js} +2 -2
- package/dist/{chunk-V3SZLWEQ.cjs → chunk-ZFDXZEZJ.cjs} +11 -11
- package/dist/{chunk-QBYGMMDD.js → chunk-ZFV4HJA6.js} +66 -4
- package/dist/chunk-ZHMYTI5D.cjs +529 -0
- package/dist/{chunk-4567QNRB.js → chunk-ZLR2TFBC.js} +3 -0
- package/dist/{chunk-OCATAKXV.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
- package/dist/{chunk-CCIDL4SA.js → chunk-ZVLVLDYN.js} +2915 -1418
- package/dist/clear-AJGXD2BB.cjs +12 -0
- package/dist/{clear-Y5TO3RZA.js → clear-HAHDSWKW.js} +3 -3
- package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
- package/dist/{communityInstaller-RVL4STPS.js → communityInstaller-OLKEUGMX.js} +5 -5
- package/dist/completion-G7Z436TF.cjs +17 -0
- package/dist/{completion-SE3XYG74.js → completion-ZS3AXJ6A.js} +4 -4
- package/dist/{config-7KPHKFTP.js → config-OWYAQPCX.js} +5 -4
- package/dist/config-W2BHT2QE.cjs +22 -0
- package/dist/{constants-EJFAWJQI.js → constants-AS6K67AA.js} +5 -3
- package/dist/constants-B4W5BT7F.cjs +23 -0
- package/dist/{export-BJVIDZC4.js → export-5HIU3KMD.js} +4 -4
- package/dist/export-GFD32UY2.cjs +15 -0
- package/dist/{extractSessionMemories-A2JX5WJ2.js → extractSessionMemories-K6ZVAW2F.js} +1 -1
- package/dist/{extractSessionMemories-XL3MS37F.cjs → extractSessionMemories-LLOIJR5U.cjs} +2 -2
- package/dist/feature-KP74CZ3F.cjs +14 -0
- package/dist/{feature-V4JF5TNJ.js → feature-OPNVMB2E.js} +2 -2
- package/dist/features-LT55MURX.cjs +24 -0
- package/dist/features-ZDIU26WX.js +24 -0
- package/dist/feedback-7WTJFQ6S.js +18 -0
- package/dist/feedback-CEOJ3453.cjs +18 -0
- package/dist/go-2CY5SZNR.js +16 -0
- package/dist/go-O2CSQON4.cjs +16 -0
- package/dist/goal-DL2N2AWT.cjs +16 -0
- package/dist/goal-IJS7VZSG.js +16 -0
- package/dist/help-RNOGDEBA.cjs +12 -0
- package/dist/{help-MLIROWKM.js → help-TCWD2IRH.js} +2 -2
- package/dist/{history-GQJ6RZD6.js → history-ATOR5OQV.js} +2 -2
- package/dist/history-UUSGX2AL.cjs +14 -0
- package/dist/{hooks-PPFHCF7T.js → hooks-R3Z5QKUP.js} +5 -5
- package/dist/hooks-RWM5UY67.cjs +18 -0
- package/dist/{i18n-Q7UZJRPL.js → i18n-4QI4TD4I.js} +1 -1
- package/dist/i18n-MFAEU5RV.cjs +33 -0
- package/dist/{ide-BUSVE54P.js → ide-6PBTCCUQ.js} +4 -4
- package/dist/ide-UE3G7NMQ.cjs +15 -0
- package/dist/{import-C7S6UJMW.cjs → import-2IG76KAN.cjs} +6 -4
- package/dist/{import-U47DXCA7.js → import-E47QL4DW.js} +2 -2
- package/dist/import-NQDNBFUL.cjs +10 -0
- package/dist/{import-3VBKI6BN.js → import-VQIHGJWS.js} +6 -4
- package/dist/index.cjs +444 -334
- package/dist/index.d.cts +38 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +324 -214
- package/dist/init-DX3RDGDT.cjs +10 -0
- package/dist/{init-Q2O4R42R.js → init-Q54OAAFZ.js} +2 -2
- package/dist/{inputPrompt-3CFZDUBH.js → inputPrompt-V2VBDRM7.js} +2 -2
- package/dist/inputPrompt-WVGVWAHS.cjs +90 -0
- package/dist/language-I6KXAOXD.js +23 -0
- package/dist/language-XMIVOH5E.cjs +23 -0
- package/dist/learn-JPVVGTKU.js +23 -0
- package/dist/learn-NLSHI2MZ.cjs +23 -0
- package/dist/login-NABQYLYC.cjs +28 -0
- package/dist/login-XPOVFSWN.js +28 -0
- package/dist/logout-HNHCGB4Q.js +25 -0
- package/dist/logout-SKGDXJSW.cjs +25 -0
- package/dist/{mcp-AH3MMUBU.js → mcp-EN73YFGZ.js} +8 -7
- package/dist/mcp-TADZCPJQ.cjs +22 -0
- package/dist/{mcp-install-IA4ZS2SV.cjs → mcp-install-2GKWWBAS.cjs} +14 -13
- package/dist/{mcp-install-222PCKSW.js → mcp-install-3TBTVSHW.js} +9 -8
- package/dist/memory-GRXFTDIN.cjs +10 -0
- package/dist/{memory-VB46T5H3.js → memory-K2P3CDCH.js} +2 -2
- package/dist/{model-SJJG64AM.js → model-DEG22OWA.js} +2 -2
- package/dist/model-OSD74T7Z.cjs +10 -0
- package/dist/new-4NWBOATU.cjs +12 -0
- package/dist/{new-ERZ5C6CN.js → new-KJAP2MB6.js} +3 -3
- package/dist/{onboarding-ZQXMPSMJ.js → onboarding-2U5WE2OA.js} +17 -14
- package/dist/onboarding-5DZFCO5Q.cjs +39 -0
- package/dist/permissions-KY5I6YQ3.cjs +10 -0
- package/dist/{permissions-7ACNFK7A.js → permissions-TKYON7PP.js} +2 -2
- package/dist/{plan-YYUAXPTL.js → plan-DYHHLZSS.js} +1 -1
- package/dist/plan-PYKP652W.cjs +13 -0
- package/dist/quit-GSKJL42O.js +14 -0
- package/dist/quit-TQSRTBUT.cjs +14 -0
- package/dist/{registry-4DXUDKJN.js → registry-EZ4V4TUQ.js} +1339 -1
- package/dist/{registry-UEO3ETZ7.cjs → registry-LCWYI4IB.cjs} +1378 -40
- package/dist/resume-4VWJXARX.cjs +17 -0
- package/dist/{resume-XSXZMDMD.js → resume-TLHWWWFN.js} +5 -5
- package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
- package/dist/review-XLJEUH5K.cjs +9 -0
- package/dist/{rpc-XH7QLN4H.js → rpc-3DLQBDWU.js} +151 -124
- package/dist/{rpc-YF54T7JU.cjs → rpc-O36WUU3L.cjs} +169 -142
- package/dist/search-DSX2CY4A.cjs +22 -0
- package/dist/search-I3QUDUQL.js +22 -0
- package/dist/sessionBranching-DVNOUWJT.cjs +19 -0
- package/dist/sessionBranching-FKV4CR36.js +19 -0
- package/dist/sessions-3JUOT3ED.cjs +10 -0
- package/dist/{sessions-NJYHJOEL.js → sessions-VWMDIPOS.js} +2 -2
- package/dist/{settings-ZXUQH3DO.js → settings-FT2LZZUV.js} +11 -8
- package/dist/settings-RL4KNWHB.cjs +45 -0
- package/dist/setup-HQEJVOYT.js +32 -0
- package/dist/setup-MN54LKOL.cjs +32 -0
- package/dist/share-BUAFZNBX.cjs +17 -0
- package/dist/{share-WFAGZ5PY.js → share-CGB6MAVJ.js} +6 -6
- package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
- package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
- package/dist/{skills-NBTNDVAY.js → skills-7DKR3HRZ.js} +7 -7
- package/dist/{skills-OB6RDW7D.js → skills-BBBENOEY.js} +9 -9
- package/dist/skills-OQM7IHAF.cjs +29 -0
- package/dist/{skills-ZROBG3RZ.cjs → skills-RA2PKL63.cjs} +9 -9
- package/dist/{skills-install-ILX6QVEF.cjs → skills-install-D7K476SL.cjs} +15 -15
- package/dist/{skills-install-BHTIEMKH.js → skills-install-T4SOKJSL.js} +8 -8
- package/dist/{skills-new-YMRP2HNO.js → skills-new-S33NGEU3.js} +6 -6
- package/dist/skills-new-UVYH53MD.cjs +18 -0
- package/dist/slashCommands-MWOUDSQP.js +111 -0
- package/dist/slashCommands-XASURUTV.cjs +111 -0
- package/dist/squad-PIIYDFVH.cjs +15 -0
- package/dist/squad-VHYOVEJP.js +15 -0
- package/dist/status-GHFTXQBL.js +25 -0
- package/dist/status-WXMIJIU3.cjs +25 -0
- package/dist/statusline-2K7AC6ZQ.js +21 -0
- package/dist/statusline-GROI4HOC.cjs +21 -0
- package/dist/sync-254WF6JI.cjs +42 -0
- package/dist/sync-2DIZN4EH.cjs +24 -0
- package/dist/{sync-OCJN4ZSO.js → sync-J6I2ZUKQ.js} +5 -3
- package/dist/{sync-7C25MOT2.js → sync-Z3LVSEEV.js} +8 -6
- package/dist/{teammate-D77B6QRT.cjs → teammate-EXR76PEQ.cjs} +5 -5
- package/dist/{teammate-EZCMHOIL.js → teammate-K4DAOFEQ.js} +5 -5
- package/dist/theme-MVQDSU47.js +23 -0
- package/dist/theme-QAKEYWJG.cjs +23 -0
- package/dist/ui/questionModal.cjs +5 -5
- package/dist/ui/questionModal.js +4 -4
- package/dist/{undo-GNUTFXCW.js → undo-5AU47JHF.js} +2 -2
- package/dist/undo-ME6WKUXZ.cjs +10 -0
- package/dist/{usage-QSTNSDAO.js → usage-QTKO2YMD.js} +6 -5
- package/dist/usage-TYNJKVER.cjs +25 -0
- package/package.json +4 -3
- package/dist/AgentRegistry-GOV7FN2O.js +0 -10
- package/dist/AgentRegistry-J2C6JBZ3.cjs +0 -10
- package/dist/CommunitySkillsCache-22BB3J6H.cjs +0 -8
- package/dist/LearnAdvisor-KKEQ5QCV.js +0 -9
- package/dist/LearnAdvisor-Q7RAYLPF.cjs +0 -9
- package/dist/MemoryManager-PMNAEZMB.cjs +0 -8
- package/dist/MemoryManager-QZRLTUB5.js +0 -8
- package/dist/NVIDIAProvider-C3FWQOBZ.cjs +0 -14
- package/dist/PermissionManager-URCNP5EC.cjs +0 -11
- package/dist/ProviderFactory-56N3ECE4.cjs +0 -12
- package/dist/SessionManager-2IZGWASQ.cjs +0 -10
- package/dist/SkillsRegistry-GMRVONOQ.cjs +0 -9
- package/dist/SubAgent-4GOR2FIJ.js +0 -13
- package/dist/SubAgent-ZJMDH4FI.cjs +0 -13
- package/dist/add-dir-BTAD5OZS.cjs +0 -11
- package/dist/agent-B3EVT7NN.cjs +0 -126
- package/dist/agent-SATQ3WZ3.js +0 -126
- package/dist/agents-44CRJGM7.cjs +0 -18
- package/dist/agents-NN4ZAJ7R.js +0 -18
- package/dist/agents-new-6D6G4QS6.cjs +0 -17
- package/dist/autoSkill-VQLGBELN.cjs +0 -20
- package/dist/automode-45DWV4TN.cjs +0 -10
- package/dist/chrome-Q2U73HZB.cjs +0 -50
- package/dist/chrome-Q54OALOK.cjs +0 -21
- package/dist/chrome-ZNJ46OYW.js +0 -21
- package/dist/chunk-JCUHCH37.cjs +0 -247
- package/dist/chunk-VKOXFT4L.cjs +0 -23
- package/dist/clear-QJXU25IF.cjs +0 -12
- package/dist/communityInstaller-LXMVKVAV.cjs +0 -22
- package/dist/completion-JX4T2ONW.cjs +0 -17
- package/dist/config-3224PRW4.cjs +0 -21
- package/dist/constants-MCCGUU5F.cjs +0 -21
- package/dist/export-KU4557HK.cjs +0 -15
- package/dist/feature-K3LG5IJP.cjs +0 -14
- package/dist/features-5OJTLKS7.js +0 -23
- package/dist/features-VCBJQXCX.cjs +0 -23
- package/dist/feedback-D4437VE4.js +0 -18
- package/dist/feedback-VZPEHGFY.cjs +0 -18
- package/dist/go-X4E6BCD6.js +0 -12
- package/dist/go-XREVFS5I.cjs +0 -12
- package/dist/goal-4M3J6JS2.cjs +0 -16
- package/dist/goal-EI66BV7W.js +0 -16
- package/dist/help-GGFS7WHY.cjs +0 -12
- package/dist/history-J4LUIOSI.cjs +0 -14
- package/dist/hooks-FSRIUS6A.cjs +0 -18
- package/dist/i18n-CI6VFXL5.cjs +0 -33
- package/dist/ide-YR27BPGM.cjs +0 -15
- package/dist/import-DBK4OCDF.cjs +0 -10
- package/dist/init-OXTYS72D.cjs +0 -10
- package/dist/inputPrompt-JMACL4EB.cjs +0 -90
- package/dist/language-EK3M6UBV.cjs +0 -22
- package/dist/language-Q3RUGGOW.js +0 -22
- package/dist/learn-3DSX7DYG.cjs +0 -23
- package/dist/learn-OPOH5L43.js +0 -23
- package/dist/login-GST7MWXJ.cjs +0 -27
- package/dist/login-Q7DZKAX4.js +0 -27
- package/dist/logout-2G7OUK7I.cjs +0 -24
- package/dist/logout-FNBBL2UI.js +0 -24
- package/dist/mcp-DW7R63IB.cjs +0 -21
- package/dist/memory-6NX3DAIY.cjs +0 -10
- package/dist/model-64NAELFS.cjs +0 -10
- package/dist/new-DU5SOOOY.cjs +0 -12
- package/dist/onboarding-2U2BV2KE.cjs +0 -36
- package/dist/permissions-GSNNV7RJ.cjs +0 -10
- package/dist/plan-XEJMOT55.cjs +0 -13
- package/dist/quit-WY6T267G.js +0 -10
- package/dist/quit-XIRE2KRE.cjs +0 -10
- package/dist/resume-RQZ3WXBP.cjs +0 -17
- package/dist/review-UWHWQHCB.cjs +0 -9
- package/dist/search-VXXFGZWU.cjs +0 -21
- package/dist/search-YAWGX7P7.js +0 -21
- package/dist/sessions-OSG3UJEZ.cjs +0 -10
- package/dist/settings-SO2UIGWV.cjs +0 -42
- package/dist/setup-KG7EGKF5.js +0 -30
- package/dist/setup-RSOPCQ57.cjs +0 -30
- package/dist/share-ZU3SGACF.cjs +0 -17
- package/dist/skills-KBVAQAD2.cjs +0 -29
- package/dist/skills-new-B45VQ2PP.cjs +0 -18
- package/dist/slashCommands-53VYIBJU.js +0 -105
- package/dist/slashCommands-BG2RGGZ6.cjs +0 -105
- package/dist/status-CQ2IUOVK.cjs +0 -24
- package/dist/status-E7IGNVPC.js +0 -24
- package/dist/sync-XRP46IVG.cjs +0 -40
- package/dist/sync-ZMFVE7T4.cjs +0 -22
- package/dist/theme-KKRDE6P7.cjs +0 -22
- package/dist/theme-XF7XIWBQ.js +0 -22
- package/dist/undo-U4KN7QQM.cjs +0 -10
- package/dist/usage-YDEMQBNQ.cjs +0 -24
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/onboarding/agentsGenerator.ts
|
|
2
|
+
var AgentsGenerator = class {
|
|
3
|
+
/**
|
|
4
|
+
* Generate AGENTS.md content
|
|
5
|
+
*/
|
|
6
|
+
generateContent(info, options) {
|
|
7
|
+
const sections = [];
|
|
8
|
+
sections.push("# AGENTS.md");
|
|
9
|
+
sections.push("");
|
|
10
|
+
sections.push("This file helps Autohand understand how to work with this project.");
|
|
11
|
+
sections.push("");
|
|
12
|
+
sections.push(this.generateProjectOverview(info));
|
|
13
|
+
if (info.packageManager) {
|
|
14
|
+
sections.push(this.generateCommandsSection(info));
|
|
15
|
+
}
|
|
16
|
+
if (info.testFramework) {
|
|
17
|
+
sections.push(this.generateTestingSection(info));
|
|
18
|
+
}
|
|
19
|
+
if (info.framework) {
|
|
20
|
+
const frameworkSection = this.generateFrameworkSection(info);
|
|
21
|
+
if (frameworkSection) {
|
|
22
|
+
sections.push(frameworkSection);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
sections.push(this.generateInstructionSourcesSection());
|
|
26
|
+
sections.push(this.generateCodeStyleSection(info));
|
|
27
|
+
sections.push(this.generateConstraintsSection());
|
|
28
|
+
if (_optionalChain([options, 'optionalAccess', _ => _.customSections])) {
|
|
29
|
+
for (const section of options.customSections) {
|
|
30
|
+
sections.push(`## ${section.title}`);
|
|
31
|
+
sections.push("");
|
|
32
|
+
sections.push(section.content);
|
|
33
|
+
sections.push("");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return sections.join("\n");
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Generate project overview section
|
|
40
|
+
*/
|
|
41
|
+
generateProjectOverview(info) {
|
|
42
|
+
const lines = [];
|
|
43
|
+
lines.push("## Project Overview");
|
|
44
|
+
lines.push("");
|
|
45
|
+
if (info.language) {
|
|
46
|
+
lines.push(`- **Language**: ${info.language}`);
|
|
47
|
+
}
|
|
48
|
+
if (info.framework) {
|
|
49
|
+
lines.push(`- **Framework**: ${info.framework}`);
|
|
50
|
+
}
|
|
51
|
+
if (info.packageManager) {
|
|
52
|
+
lines.push(`- **Package Manager**: ${info.packageManager}`);
|
|
53
|
+
}
|
|
54
|
+
if (info.testFramework) {
|
|
55
|
+
lines.push(`- **Test Framework**: ${info.testFramework}`);
|
|
56
|
+
}
|
|
57
|
+
if (info.buildTool) {
|
|
58
|
+
lines.push(`- **Build Tool**: ${info.buildTool}`);
|
|
59
|
+
}
|
|
60
|
+
lines.push("");
|
|
61
|
+
return lines.join("\n");
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Generate commands section based on package manager
|
|
65
|
+
*/
|
|
66
|
+
generateCommandsSection(info) {
|
|
67
|
+
const lines = [];
|
|
68
|
+
lines.push("## Commands");
|
|
69
|
+
lines.push("");
|
|
70
|
+
const pm = info.packageManager;
|
|
71
|
+
if (info.language === "Rust") {
|
|
72
|
+
lines.push("- **Build**: `cargo build`");
|
|
73
|
+
lines.push("- **Build (release)**: `cargo build --release`");
|
|
74
|
+
lines.push("- **Run**: `cargo run`");
|
|
75
|
+
lines.push("- **Test**: `cargo test`");
|
|
76
|
+
lines.push("- **Check**: `cargo check`");
|
|
77
|
+
lines.push("- **Format**: `cargo fmt`");
|
|
78
|
+
lines.push("- **Lint**: `cargo clippy`");
|
|
79
|
+
} else if (info.language === "Go") {
|
|
80
|
+
lines.push("- **Build**: `go build`");
|
|
81
|
+
lines.push("- **Run**: `go run .`");
|
|
82
|
+
lines.push("- **Test**: `go test ./...`");
|
|
83
|
+
lines.push("- **Format**: `go fmt ./...`");
|
|
84
|
+
lines.push("- **Vet**: `go vet ./...`");
|
|
85
|
+
} else if (info.language === "Python") {
|
|
86
|
+
if (pm === "poetry") {
|
|
87
|
+
lines.push("- **Install**: `poetry install`");
|
|
88
|
+
lines.push("- **Run**: `poetry run python main.py`");
|
|
89
|
+
lines.push("- **Add dependency**: `poetry add <package>`");
|
|
90
|
+
if (info.testFramework) {
|
|
91
|
+
lines.push(`- **Test**: \`poetry run pytest\``);
|
|
92
|
+
}
|
|
93
|
+
} else if (pm === "pipenv") {
|
|
94
|
+
lines.push("- **Install**: `pipenv install`");
|
|
95
|
+
lines.push("- **Run**: `pipenv run python main.py`");
|
|
96
|
+
if (info.testFramework) {
|
|
97
|
+
lines.push(`- **Test**: \`pipenv run pytest\``);
|
|
98
|
+
}
|
|
99
|
+
} else {
|
|
100
|
+
lines.push("- **Install**: `pip install -r requirements.txt`");
|
|
101
|
+
lines.push("- **Run**: `python main.py`");
|
|
102
|
+
if (info.testFramework) {
|
|
103
|
+
lines.push(`- **Test**: \`pytest\``);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
const run = pm === "npm" ? "npm run" : pm;
|
|
108
|
+
const install = pm === "npm" ? "npm install" : `${pm} install`;
|
|
109
|
+
lines.push(`- **Install**: \`${install}\``);
|
|
110
|
+
lines.push(`- **Dev**: \`${run} dev\``);
|
|
111
|
+
lines.push(`- **Build**: \`${run} build\``);
|
|
112
|
+
if (info.testFramework) {
|
|
113
|
+
lines.push(`- **Test**: \`${run} test\``);
|
|
114
|
+
}
|
|
115
|
+
if (info.linter) {
|
|
116
|
+
lines.push(`- **Lint**: \`${run} lint\``);
|
|
117
|
+
}
|
|
118
|
+
if (info.formatter) {
|
|
119
|
+
lines.push(`- **Format**: \`${run} format\``);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
lines.push("");
|
|
123
|
+
return lines.join("\n");
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Generate testing section
|
|
127
|
+
*/
|
|
128
|
+
generateTestingSection(info) {
|
|
129
|
+
const lines = [];
|
|
130
|
+
lines.push("## Testing");
|
|
131
|
+
lines.push("");
|
|
132
|
+
lines.push(`This project uses **${info.testFramework}** for testing.`);
|
|
133
|
+
lines.push("");
|
|
134
|
+
lines.push("- Write tests for new features before implementation");
|
|
135
|
+
lines.push("- Run tests before committing changes");
|
|
136
|
+
lines.push("- Aim for good test coverage on critical paths");
|
|
137
|
+
if (info.testFramework === "Vitest" || info.testFramework === "Jest") {
|
|
138
|
+
lines.push("- Use `describe` and `it` blocks to organize tests");
|
|
139
|
+
lines.push("- Mock external dependencies when appropriate");
|
|
140
|
+
} else if (info.testFramework === "pytest") {
|
|
141
|
+
lines.push("- Use fixtures for shared test setup");
|
|
142
|
+
lines.push("- Use `pytest.mark` for test categorization");
|
|
143
|
+
} else if (info.testFramework === "Playwright" || info.testFramework === "Cypress") {
|
|
144
|
+
lines.push("- Write E2E tests for critical user flows");
|
|
145
|
+
lines.push("- Keep selectors stable and meaningful");
|
|
146
|
+
}
|
|
147
|
+
lines.push("");
|
|
148
|
+
return lines.join("\n");
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Generate framework-specific section
|
|
152
|
+
*/
|
|
153
|
+
generateFrameworkSection(info) {
|
|
154
|
+
const lines = [];
|
|
155
|
+
switch (info.framework) {
|
|
156
|
+
case "Next.js":
|
|
157
|
+
lines.push("## Next.js Guidelines");
|
|
158
|
+
lines.push("");
|
|
159
|
+
lines.push("- Use the App Router for new pages (`app/` directory)");
|
|
160
|
+
lines.push("- Prefer Server Components by default");
|
|
161
|
+
lines.push('- Use `"use client"` only when needed for interactivity');
|
|
162
|
+
lines.push("- Keep API routes in `app/api/`");
|
|
163
|
+
lines.push("- Use `next/image` for optimized images");
|
|
164
|
+
lines.push("- Use `next/link` for client-side navigation");
|
|
165
|
+
break;
|
|
166
|
+
case "React":
|
|
167
|
+
lines.push("## React Guidelines");
|
|
168
|
+
lines.push("");
|
|
169
|
+
lines.push("- Use functional components with hooks");
|
|
170
|
+
lines.push("- Keep components small and focused");
|
|
171
|
+
lines.push("- Use custom hooks to share logic");
|
|
172
|
+
lines.push("- Prefer composition over inheritance");
|
|
173
|
+
lines.push("- Use TypeScript interfaces for props");
|
|
174
|
+
break;
|
|
175
|
+
case "Vue":
|
|
176
|
+
lines.push("## Vue Guidelines");
|
|
177
|
+
lines.push("");
|
|
178
|
+
lines.push("- Use Composition API for new components");
|
|
179
|
+
lines.push("- Keep components in single-file format (.vue)");
|
|
180
|
+
lines.push("- Use composables to share logic");
|
|
181
|
+
break;
|
|
182
|
+
case "Express":
|
|
183
|
+
lines.push("## Express Guidelines");
|
|
184
|
+
lines.push("");
|
|
185
|
+
lines.push("- Use middleware for cross-cutting concerns");
|
|
186
|
+
lines.push("- Keep route handlers thin, delegate to services");
|
|
187
|
+
lines.push("- Use async/await with proper error handling");
|
|
188
|
+
lines.push("- Validate request input before processing");
|
|
189
|
+
break;
|
|
190
|
+
case "FastAPI":
|
|
191
|
+
lines.push("## FastAPI Guidelines");
|
|
192
|
+
lines.push("");
|
|
193
|
+
lines.push("- Use Pydantic models for request/response validation");
|
|
194
|
+
lines.push("- Use dependency injection for shared resources");
|
|
195
|
+
lines.push("- Keep endpoints in organized routers");
|
|
196
|
+
lines.push("- Use async functions for I/O operations");
|
|
197
|
+
break;
|
|
198
|
+
case "Django":
|
|
199
|
+
lines.push("## Django Guidelines");
|
|
200
|
+
lines.push("");
|
|
201
|
+
lines.push("- Follow Django project structure conventions");
|
|
202
|
+
lines.push("- Use class-based views where appropriate");
|
|
203
|
+
lines.push("- Keep business logic in models or services");
|
|
204
|
+
lines.push("- Use Django ORM for database operations");
|
|
205
|
+
break;
|
|
206
|
+
case "Flask":
|
|
207
|
+
lines.push("## Flask Guidelines");
|
|
208
|
+
lines.push("");
|
|
209
|
+
lines.push("- Use blueprints to organize routes");
|
|
210
|
+
lines.push("- Keep route handlers focused");
|
|
211
|
+
lines.push("- Use Flask extensions for common functionality");
|
|
212
|
+
break;
|
|
213
|
+
case "NestJS":
|
|
214
|
+
lines.push("## NestJS Guidelines");
|
|
215
|
+
lines.push("");
|
|
216
|
+
lines.push("- Follow module-based architecture");
|
|
217
|
+
lines.push("- Use dependency injection");
|
|
218
|
+
lines.push("- Use decorators for metadata");
|
|
219
|
+
lines.push("- Keep controllers thin, services fat");
|
|
220
|
+
break;
|
|
221
|
+
default:
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
lines.push("");
|
|
225
|
+
return lines.join("\n");
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Generate instruction sources section
|
|
229
|
+
*/
|
|
230
|
+
generateInstructionSourcesSection() {
|
|
231
|
+
const lines = [];
|
|
232
|
+
lines.push("## Instruction Sources");
|
|
233
|
+
lines.push("");
|
|
234
|
+
lines.push("- Check saved memories and preferences before implementation work.");
|
|
235
|
+
lines.push("- Follow this AGENTS.md file for repository-specific guidance.");
|
|
236
|
+
lines.push("- AGENTS.md takes precedence over CLAUDE.md when both files provide instructions.");
|
|
237
|
+
lines.push("");
|
|
238
|
+
return lines.join("\n");
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Generate code style section
|
|
242
|
+
*/
|
|
243
|
+
generateCodeStyleSection(info) {
|
|
244
|
+
const lines = [];
|
|
245
|
+
lines.push("## Code Style");
|
|
246
|
+
lines.push("");
|
|
247
|
+
if (info.language === "TypeScript") {
|
|
248
|
+
lines.push("- Use strict TypeScript settings");
|
|
249
|
+
lines.push("- Define types/interfaces for data structures");
|
|
250
|
+
lines.push("- Avoid `any` type - use `unknown` if type is truly unknown");
|
|
251
|
+
lines.push("- Use type inference where obvious");
|
|
252
|
+
} else if (info.language === "Python") {
|
|
253
|
+
lines.push("- Follow PEP 8 style guidelines");
|
|
254
|
+
lines.push("- Use type hints for function signatures");
|
|
255
|
+
lines.push("- Use docstrings for public functions");
|
|
256
|
+
} else if (info.language === "Rust") {
|
|
257
|
+
lines.push("- Follow Rust naming conventions (snake_case for functions)");
|
|
258
|
+
lines.push("- Use descriptive error types");
|
|
259
|
+
lines.push("- Prefer `Result` over panicking");
|
|
260
|
+
} else if (info.language === "Go") {
|
|
261
|
+
lines.push("- Follow Go idioms and conventions");
|
|
262
|
+
lines.push("- Use short variable names in small scopes");
|
|
263
|
+
lines.push("- Handle errors explicitly");
|
|
264
|
+
}
|
|
265
|
+
lines.push("- Follow existing patterns in the codebase");
|
|
266
|
+
lines.push("- Use meaningful variable and function names");
|
|
267
|
+
lines.push("- Add comments for complex logic");
|
|
268
|
+
lines.push("- Keep functions focused and small");
|
|
269
|
+
if (info.linter) {
|
|
270
|
+
lines.push(`- Run **${info.linter}** before committing`);
|
|
271
|
+
}
|
|
272
|
+
if (info.formatter) {
|
|
273
|
+
lines.push(`- Format code with **${info.formatter}**`);
|
|
274
|
+
}
|
|
275
|
+
lines.push("");
|
|
276
|
+
return lines.join("\n");
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Generate constraints section
|
|
280
|
+
*/
|
|
281
|
+
generateConstraintsSection() {
|
|
282
|
+
const lines = [];
|
|
283
|
+
lines.push("## Constraints");
|
|
284
|
+
lines.push("");
|
|
285
|
+
lines.push("- Do not modify files outside the project directory");
|
|
286
|
+
lines.push("- Ask before making breaking changes");
|
|
287
|
+
lines.push("- Prefer editing existing files over creating new ones");
|
|
288
|
+
lines.push("- Do not delete files without confirmation");
|
|
289
|
+
lines.push("- Keep dependencies minimal - avoid adding new ones without good reason");
|
|
290
|
+
lines.push("- Do not commit sensitive data (API keys, secrets, credentials)");
|
|
291
|
+
lines.push("");
|
|
292
|
+
return lines.join("\n");
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
exports.AgentsGenerator = AgentsGenerator;
|
|
299
|
+
/**
|
|
300
|
+
* @license
|
|
301
|
+
* Copyright 2025 Autohand AI LLC
|
|
302
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
303
|
+
*/
|
|
@@ -1,9 +1,13 @@
|
|
|
1
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; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkAZLHUPNCcjs = require('./chunk-AZLHUPNC.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
var _chunkEK34UZPBcjs = require('./chunk-EK34UZPB.cjs');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunk7TO3PDMVcjs = require('./chunk-7TO3PDMV.cjs');
|
|
7
11
|
|
|
8
12
|
|
|
9
13
|
|
|
@@ -11,16 +15,16 @@ var _chunkHK5A54AVcjs = require('./chunk-HK5A54AV.cjs');
|
|
|
11
15
|
var _chunkYWTIXHU6cjs = require('./chunk-YWTIXHU6.cjs');
|
|
12
16
|
|
|
13
17
|
|
|
14
|
-
var
|
|
18
|
+
var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
|
|
15
19
|
|
|
16
20
|
// src/config.ts
|
|
17
21
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
18
22
|
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
19
23
|
var _yaml = require('yaml'); var _yaml2 = _interopRequireDefault(_yaml);
|
|
20
|
-
var DEFAULT_CONFIG_PATH =
|
|
21
|
-
var TOML_CONFIG_PATH =
|
|
22
|
-
var YAML_CONFIG_PATH =
|
|
23
|
-
var YML_CONFIG_PATH =
|
|
24
|
+
var DEFAULT_CONFIG_PATH = _chunk3JURXAL6cjs.AUTOHAND_FILES.configJson;
|
|
25
|
+
var TOML_CONFIG_PATH = _chunk3JURXAL6cjs.AUTOHAND_FILES.configToml;
|
|
26
|
+
var YAML_CONFIG_PATH = _chunk3JURXAL6cjs.AUTOHAND_FILES.configYaml;
|
|
27
|
+
var YML_CONFIG_PATH = _chunk3JURXAL6cjs.AUTOHAND_FILES.configYml;
|
|
24
28
|
var DEFAULT_BASE_URL = "https://openrouter.ai/api/v1";
|
|
25
29
|
var DEFAULT_OLLAMA_URL = "http://localhost:11434";
|
|
26
30
|
var DEFAULT_LLAMACPP_URL = "http://localhost:8080";
|
|
@@ -28,6 +32,7 @@ var DEFAULT_OPENAI_URL = "https://api.openai.com/v1";
|
|
|
28
32
|
var DEFAULT_MLX_URL = "http://localhost:8080";
|
|
29
33
|
var DEFAULT_LLMGATEWAY_URL = "https://api.llmgateway.io/v1";
|
|
30
34
|
var DEFAULT_ZAI_URL = "https://api.z.ai/api/paas/v4";
|
|
35
|
+
var DEFAULT_SAKANA_URL = "https://api.sakana.ai/v1";
|
|
31
36
|
var DEFAULT_DEEPSEEK_URL = "https://api.deepseek.com";
|
|
32
37
|
var DEFAULT_BEDROCK_REGION = "us-east-1";
|
|
33
38
|
function normalizeProviderName(provider) {
|
|
@@ -37,6 +42,9 @@ function normalizeProviderName(provider) {
|
|
|
37
42
|
if (provider === "vertex") {
|
|
38
43
|
return "vertexai";
|
|
39
44
|
}
|
|
45
|
+
if (_chunkEK34UZPBcjs.isCustomProviderName.call(void 0, provider)) {
|
|
46
|
+
return provider;
|
|
47
|
+
}
|
|
40
48
|
const validProviders = [
|
|
41
49
|
"openrouter",
|
|
42
50
|
"ollama",
|
|
@@ -46,6 +54,7 @@ function normalizeProviderName(provider) {
|
|
|
46
54
|
"llmgateway",
|
|
47
55
|
"azure",
|
|
48
56
|
"zai",
|
|
57
|
+
"sakana",
|
|
49
58
|
"vertexai",
|
|
50
59
|
"xai",
|
|
51
60
|
"cerebras",
|
|
@@ -343,7 +352,7 @@ async function loadConfig(customPath, workspaceRoot) {
|
|
|
343
352
|
const normalized = normalizeConfig(parsed);
|
|
344
353
|
let workspaceSettings = null;
|
|
345
354
|
if (workspaceRoot) {
|
|
346
|
-
workspaceSettings = await
|
|
355
|
+
workspaceSettings = await _chunkAZLHUPNCcjs.loadLocalProjectSettings.call(void 0, workspaceRoot);
|
|
347
356
|
}
|
|
348
357
|
const withWorkspace = mergeWorkspaceSettings(normalized, workspaceSettings);
|
|
349
358
|
const withEnv = mergeEnvVariables(withWorkspace);
|
|
@@ -363,7 +372,18 @@ function mergeWorkspaceSettings(globalConfig, workspaceSettings) {
|
|
|
363
372
|
}
|
|
364
373
|
if (workspaceSettings.model !== void 0) {
|
|
365
374
|
const provider = workspaceSettings.provider || merged.provider;
|
|
366
|
-
if (provider &&
|
|
375
|
+
if (provider && _chunkEK34UZPBcjs.isCustomProviderName.call(void 0, provider)) {
|
|
376
|
+
const customProvider = _chunkEK34UZPBcjs.getCustomProviderConfig.call(void 0, merged, provider);
|
|
377
|
+
if (customProvider) {
|
|
378
|
+
merged.customProviders = {
|
|
379
|
+
...merged.customProviders,
|
|
380
|
+
[customProvider.id]: {
|
|
381
|
+
...customProvider,
|
|
382
|
+
model: workspaceSettings.model
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
} else if (provider && merged[provider]) {
|
|
367
387
|
merged[provider].model = workspaceSettings.model;
|
|
368
388
|
}
|
|
369
389
|
}
|
|
@@ -477,7 +497,7 @@ function normalizeConfig(config) {
|
|
|
477
497
|
return config;
|
|
478
498
|
}
|
|
479
499
|
function isModernConfig(config) {
|
|
480
|
-
return typeof config.openrouter === "object" || typeof config.ollama === "object" || typeof config.llamacpp === "object" || typeof config.openai === "object" || typeof config.mlx === "object" || typeof config.azure === "object" || typeof config.zai === "object" || typeof config.vertexai === "object" || typeof config.xai === "object" || typeof config.cerebras === "object" || typeof config.nvidia === "object" || typeof config.deepseek === "object" || typeof config.bedrock === "object";
|
|
500
|
+
return typeof config.openrouter === "object" || typeof config.ollama === "object" || typeof config.llamacpp === "object" || typeof config.openai === "object" || typeof config.mlx === "object" || typeof config.azure === "object" || typeof config.zai === "object" || typeof config.sakana === "object" || typeof config.vertexai === "object" || typeof config.xai === "object" || typeof config.cerebras === "object" || typeof config.nvidia === "object" || typeof config.deepseek === "object" || typeof config.bedrock === "object" || typeof config.customProviders === "object";
|
|
481
501
|
}
|
|
482
502
|
function isLegacyConfig(config) {
|
|
483
503
|
return typeof config.api_key === "string";
|
|
@@ -517,6 +537,9 @@ function validateConfig(config, configPath) {
|
|
|
517
537
|
throw new Error(`ui.activityVerbsEnabled must be boolean in ${configPath}`);
|
|
518
538
|
}
|
|
519
539
|
}
|
|
540
|
+
if (_optionalChain([config, 'access', _9 => _9.auth, 'optionalAccess', _10 => _10.apiKeyHelper]) !== void 0 && typeof config.auth.apiKeyHelper !== "string") {
|
|
541
|
+
throw new Error(`auth.apiKeyHelper must be a string in ${configPath}`);
|
|
542
|
+
}
|
|
520
543
|
if (config.agent) {
|
|
521
544
|
if (config.agent.toolSelectionCache !== void 0 && typeof config.agent.toolSelectionCache !== "boolean") {
|
|
522
545
|
throw new Error(`agent.toolSelectionCache must be boolean in ${configPath}`);
|
|
@@ -575,16 +598,68 @@ function validateConfig(config, configPath) {
|
|
|
575
598
|
}
|
|
576
599
|
}
|
|
577
600
|
}
|
|
601
|
+
if (config.customProviders !== void 0) {
|
|
602
|
+
if (!isPlainObject(config.customProviders)) {
|
|
603
|
+
throw new Error(`customProviders must be an object in ${configPath}`);
|
|
604
|
+
}
|
|
605
|
+
for (const [key, provider] of Object.entries(config.customProviders)) {
|
|
606
|
+
if (!isPlainObject(provider)) {
|
|
607
|
+
throw new Error(`customProviders.${key} must be an object in ${configPath}`);
|
|
608
|
+
}
|
|
609
|
+
if (provider.id !== key) {
|
|
610
|
+
throw new Error(`customProviders.${key}.id must match its config key in ${configPath}`);
|
|
611
|
+
}
|
|
612
|
+
if (typeof provider.displayName !== "string" || provider.displayName.trim() === "") {
|
|
613
|
+
throw new Error(`customProviders.${key}.displayName must be a non-empty string in ${configPath}`);
|
|
614
|
+
}
|
|
615
|
+
if (provider.apiFormat !== "openai-compatible") {
|
|
616
|
+
throw new Error(`customProviders.${key}.apiFormat must be "openai-compatible" in ${configPath}`);
|
|
617
|
+
}
|
|
618
|
+
if (typeof provider.baseUrl !== "string" || provider.baseUrl.trim() === "") {
|
|
619
|
+
throw new Error(`customProviders.${key}.baseUrl must be a non-empty string in ${configPath}`);
|
|
620
|
+
}
|
|
621
|
+
if (typeof provider.model !== "string" || provider.model.trim() === "") {
|
|
622
|
+
throw new Error(`customProviders.${key}.model must be a non-empty string in ${configPath}`);
|
|
623
|
+
}
|
|
624
|
+
if (provider.apiKeyRequired !== void 0 && typeof provider.apiKeyRequired !== "boolean") {
|
|
625
|
+
throw new Error(`customProviders.${key}.apiKeyRequired must be boolean in ${configPath}`);
|
|
626
|
+
}
|
|
627
|
+
if (provider.contextWindow !== void 0 && (typeof provider.contextWindow !== "number" || provider.contextWindow <= 0)) {
|
|
628
|
+
throw new Error(`customProviders.${key}.contextWindow must be a positive number in ${configPath}`);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
578
632
|
}
|
|
579
633
|
function resolveWorkspaceRoot(config, requestedPath) {
|
|
580
|
-
const candidate = _nullishCoalesce(_nullishCoalesce(requestedPath, () => ( process.cwd())), () => ( _optionalChain([config, 'access',
|
|
634
|
+
const candidate = _nullishCoalesce(_nullishCoalesce(requestedPath, () => ( process.cwd())), () => ( _optionalChain([config, 'access', _11 => _11.workspace, 'optionalAccess', _12 => _12.defaultRoot])));
|
|
581
635
|
return _path2.default.resolve(candidate);
|
|
582
636
|
}
|
|
583
637
|
function getProviderConfig(config, provider) {
|
|
584
638
|
const chosen = _nullishCoalesce(_nullishCoalesce(provider, () => ( config.provider)), () => ( "openrouter"));
|
|
585
|
-
if (
|
|
639
|
+
if (_chunkEK34UZPBcjs.isCustomProviderName.call(void 0, chosen)) {
|
|
640
|
+
const entry2 = _chunkEK34UZPBcjs.getCustomProviderConfig.call(void 0, config, chosen);
|
|
641
|
+
if (!entry2 || entry2.apiFormat !== "openai-compatible") {
|
|
642
|
+
return null;
|
|
643
|
+
}
|
|
644
|
+
const model = _optionalChain([entry2, 'access', _13 => _13.model, 'optionalAccess', _14 => _14.trim, 'call', _15 => _15()]);
|
|
645
|
+
const baseUrl = _optionalChain([entry2, 'access', _16 => _16.baseUrl, 'optionalAccess', _17 => _17.trim, 'call', _18 => _18()]);
|
|
646
|
+
const requiresApiKey = entry2.apiKeyRequired !== false;
|
|
647
|
+
if (!model || !baseUrl) {
|
|
648
|
+
return null;
|
|
649
|
+
}
|
|
650
|
+
if (requiresApiKey && (!entry2.apiKey || entry2.apiKey === "replace-me")) {
|
|
651
|
+
return null;
|
|
652
|
+
}
|
|
653
|
+
return {
|
|
654
|
+
...entry2,
|
|
655
|
+
model,
|
|
656
|
+
baseUrl
|
|
657
|
+
};
|
|
658
|
+
}
|
|
659
|
+
if (chosen === "bedrock" && !_chunk7TO3PDMVcjs.isAwsBedrockProviderEnabled.call(void 0, config)) {
|
|
586
660
|
return null;
|
|
587
661
|
}
|
|
662
|
+
const builtInProvider = chosen;
|
|
588
663
|
const configByProvider = {
|
|
589
664
|
openrouter: config.openrouter,
|
|
590
665
|
ollama: config.ollama,
|
|
@@ -594,6 +669,7 @@ function getProviderConfig(config, provider) {
|
|
|
594
669
|
llmgateway: config.llmgateway,
|
|
595
670
|
azure: config.azure,
|
|
596
671
|
zai: config.zai,
|
|
672
|
+
sakana: config.sakana,
|
|
597
673
|
vertexai: config.vertexai,
|
|
598
674
|
xai: config.xai,
|
|
599
675
|
cerebras: config.cerebras,
|
|
@@ -601,7 +677,7 @@ function getProviderConfig(config, provider) {
|
|
|
601
677
|
deepseek: config.deepseek,
|
|
602
678
|
bedrock: config.bedrock
|
|
603
679
|
};
|
|
604
|
-
const entry = configByProvider[
|
|
680
|
+
const entry = configByProvider[builtInProvider];
|
|
605
681
|
if (!entry) {
|
|
606
682
|
return null;
|
|
607
683
|
}
|
|
@@ -611,7 +687,7 @@ function getProviderConfig(config, provider) {
|
|
|
611
687
|
return null;
|
|
612
688
|
}
|
|
613
689
|
if (openAIEntry.authMode === "chatgpt") {
|
|
614
|
-
if (!_optionalChain([openAIEntry, 'access',
|
|
690
|
+
if (!_optionalChain([openAIEntry, 'access', _19 => _19.chatgptAuth, 'optionalAccess', _20 => _20.accessToken]) || !_optionalChain([openAIEntry, 'access', _21 => _21.chatgptAuth, 'optionalAccess', _22 => _22.accountId])) {
|
|
615
691
|
return null;
|
|
616
692
|
}
|
|
617
693
|
} else {
|
|
@@ -619,24 +695,24 @@ function getProviderConfig(config, provider) {
|
|
|
619
695
|
return null;
|
|
620
696
|
}
|
|
621
697
|
}
|
|
622
|
-
} else if (
|
|
698
|
+
} else if (builtInProvider === "openrouter" || builtInProvider === "llmgateway" || builtInProvider === "zai" || builtInProvider === "sakana" || builtInProvider === "nvidia" || builtInProvider === "deepseek") {
|
|
623
699
|
const { apiKey, model } = entry;
|
|
624
700
|
if (!apiKey || apiKey === "replace-me" || !model) {
|
|
625
701
|
return null;
|
|
626
702
|
}
|
|
627
|
-
} else if (
|
|
703
|
+
} else if (builtInProvider === "vertexai") {
|
|
628
704
|
const { authToken, projectId, model } = entry;
|
|
629
705
|
if (!authToken || !projectId || !model) {
|
|
630
706
|
return null;
|
|
631
707
|
}
|
|
632
|
-
} else if (
|
|
708
|
+
} else if (builtInProvider === "bedrock") {
|
|
633
709
|
return normalizeBedrockProviderConfig(entry);
|
|
634
710
|
} else {
|
|
635
|
-
if (
|
|
711
|
+
if (builtInProvider === "llamacpp") {
|
|
636
712
|
return {
|
|
637
713
|
...entry,
|
|
638
714
|
model: _nullishCoalesce(entry.model, () => ( "local")),
|
|
639
|
-
baseUrl: _nullishCoalesce(entry.baseUrl, () => ( defaultBaseUrlFor(
|
|
715
|
+
baseUrl: _nullishCoalesce(entry.baseUrl, () => ( defaultBaseUrlFor(builtInProvider, entry.port)))
|
|
640
716
|
};
|
|
641
717
|
}
|
|
642
718
|
if (!entry.model) {
|
|
@@ -645,13 +721,14 @@ function getProviderConfig(config, provider) {
|
|
|
645
721
|
}
|
|
646
722
|
return {
|
|
647
723
|
...entry,
|
|
648
|
-
baseUrl: _nullishCoalesce(entry.baseUrl, () => ( defaultBaseUrlFor(
|
|
724
|
+
baseUrl: _nullishCoalesce(entry.baseUrl, () => ( defaultBaseUrlFor(builtInProvider, entry.port)))
|
|
649
725
|
};
|
|
650
726
|
}
|
|
651
727
|
function defaultBaseUrlFor(provider, port) {
|
|
652
728
|
if (provider === "openrouter") return DEFAULT_BASE_URL;
|
|
653
729
|
if (provider === "llmgateway") return DEFAULT_LLMGATEWAY_URL;
|
|
654
730
|
if (provider === "zai") return DEFAULT_ZAI_URL;
|
|
731
|
+
if (provider === "sakana") return DEFAULT_SAKANA_URL;
|
|
655
732
|
if (provider === "deepseek") return DEFAULT_DEEPSEEK_URL;
|
|
656
733
|
const p = port ? port.toString() : void 0;
|
|
657
734
|
switch (provider) {
|
|
@@ -672,11 +749,11 @@ function defaultBaseUrlFor(provider, port) {
|
|
|
672
749
|
}
|
|
673
750
|
}
|
|
674
751
|
function normalizeBedrockProviderConfig(entry) {
|
|
675
|
-
const model = _optionalChain([entry, 'access',
|
|
676
|
-
const region = _optionalChain([entry, 'access',
|
|
752
|
+
const model = _optionalChain([entry, 'access', _23 => _23.model, 'optionalAccess', _24 => _24.trim, 'call', _25 => _25()]);
|
|
753
|
+
const region = _optionalChain([entry, 'access', _26 => _26.region, 'optionalAccess', _27 => _27.trim, 'call', _28 => _28()]) || process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || DEFAULT_BEDROCK_REGION;
|
|
677
754
|
const apiMode = _nullishCoalesce(entry.apiMode, () => ( "converse"));
|
|
678
755
|
const authMode = _nullishCoalesce(entry.authMode, () => ( (apiMode === "converse" ? "aws-credentials" : "bedrock-api-key")));
|
|
679
|
-
const endpoint = _nullishCoalesce(_optionalChain([entry, 'access',
|
|
756
|
+
const endpoint = _nullishCoalesce(_optionalChain([entry, 'access', _29 => _29.endpoint, 'optionalAccess', _30 => _30.replace, 'call', _31 => _31(/\/+$/, "")]), () => ( (apiMode === "converse" ? `https://bedrock-runtime.${region}.amazonaws.com` : `https://bedrock-runtime.${region}.amazonaws.com/openai/v1`)));
|
|
680
757
|
if (!model || !region) {
|
|
681
758
|
return null;
|
|
682
759
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// package.json
|
|
2
2
|
var package_default = {
|
|
3
3
|
name: "autohand-cli",
|
|
4
|
-
version: "0.9.
|
|
4
|
+
version: "0.9.2",
|
|
5
5
|
license: "Apache-2.0",
|
|
6
6
|
description: "Autohand Code CLI is a fast, terminal-native AI coding agent for planning, editing, testing, and automating software work.",
|
|
7
7
|
repository: {
|
|
@@ -64,7 +64,7 @@ var package_default = {
|
|
|
64
64
|
dotenv: "^17.4.2",
|
|
65
65
|
"fs-extra": "^11.3.4",
|
|
66
66
|
ignore: "^7.0.5",
|
|
67
|
-
ink: "^7.0.
|
|
67
|
+
ink: "^7.0.5",
|
|
68
68
|
"ink-spinner": "^5.0.0",
|
|
69
69
|
minimatch: "^10.2.5",
|
|
70
70
|
"node-notifier": "^10.0.1",
|
|
@@ -104,7 +104,8 @@ var package_default = {
|
|
|
104
104
|
vitest: "^4.1.5"
|
|
105
105
|
},
|
|
106
106
|
overrides: {
|
|
107
|
-
"ansi-styles": "^6.2.3"
|
|
107
|
+
"ansi-styles": "^6.2.3",
|
|
108
|
+
uuid: "^11.1.0"
|
|
108
109
|
}
|
|
109
110
|
};
|
|
110
111
|
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_SYNC_CONFIG,
|
|
3
|
-
createSyncService
|
|
4
|
-
|
|
3
|
+
createSyncService,
|
|
4
|
+
isMemorySyncPath
|
|
5
|
+
} from "./chunk-H65446XW.js";
|
|
5
6
|
import {
|
|
6
7
|
safePrompt
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-NKW6CHXQ.js";
|
|
8
9
|
import {
|
|
9
10
|
getAuthClient
|
|
10
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MA3AVDCC.js";
|
|
11
12
|
import {
|
|
12
13
|
saveConfig
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-CM24K6ZT.js";
|
|
14
15
|
import {
|
|
15
16
|
AUTH_CONFIG
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-PG2JIU5M.js";
|
|
17
18
|
import {
|
|
18
19
|
t
|
|
19
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
20
21
|
|
|
21
22
|
// src/commands/login.ts
|
|
22
23
|
import chalk from "chalk";
|
|
@@ -167,11 +168,19 @@ async function checkAndRestoreSyncData(token, userId, config) {
|
|
|
167
168
|
if (!remoteManifest || remoteManifest.files.length === 0) {
|
|
168
169
|
return;
|
|
169
170
|
}
|
|
170
|
-
const
|
|
171
|
-
|
|
171
|
+
const memoryFiles = remoteManifest.files.filter((file) => isMemorySyncPath(file.path));
|
|
172
|
+
if (memoryFiles.length > 0) {
|
|
173
|
+
await restoreMemorySyncData(syncService, memoryFiles);
|
|
174
|
+
}
|
|
175
|
+
const consentRequiredFiles = remoteManifest.files.filter((file) => !isMemorySyncPath(file.path));
|
|
176
|
+
if (consentRequiredFiles.length === 0) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const fileCount = consentRequiredFiles.length;
|
|
180
|
+
const totalSize = consentRequiredFiles.reduce((sum, f) => sum + f.size, 0);
|
|
172
181
|
const sizeStr = formatSize(totalSize);
|
|
173
182
|
console.log(chalk.cyan(`Found cloud sync data (${fileCount} files, ${sizeStr})`));
|
|
174
|
-
console.log(chalk.gray("This includes your settings, agents, skills, and
|
|
183
|
+
console.log(chalk.gray("This includes your settings, agents, skills, sessions, and hooks."));
|
|
175
184
|
console.log();
|
|
176
185
|
const result = await safePrompt({
|
|
177
186
|
type: "confirm",
|
|
@@ -201,6 +210,12 @@ async function checkAndRestoreSyncData(token, userId, config) {
|
|
|
201
210
|
console.log(chalk.gray("Could not check cloud sync data."));
|
|
202
211
|
}
|
|
203
212
|
}
|
|
213
|
+
async function restoreMemorySyncData(syncService, memoryFiles) {
|
|
214
|
+
try {
|
|
215
|
+
await syncService.forceDownloadPaths(memoryFiles.map((file) => file.path));
|
|
216
|
+
} catch {
|
|
217
|
+
}
|
|
218
|
+
}
|
|
204
219
|
async function cancellableOperation(fn) {
|
|
205
220
|
const stdin = process.stdin;
|
|
206
221
|
const wasRaw = stdin.isRaw;
|