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
package/dist/index.js
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
installProcessErrorHandlers
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import {
|
|
6
|
-
printStartupCheckResults,
|
|
7
|
-
runStartupChecks,
|
|
8
|
-
validateWorkspacePath
|
|
9
|
-
} from "./chunk-KA2U6MY2.js";
|
|
4
|
+
} from "./chunk-OOFR6A62.js";
|
|
10
5
|
import {
|
|
11
6
|
formatInstallHint,
|
|
12
7
|
formatStartupBanner,
|
|
@@ -18,11 +13,21 @@ import {
|
|
|
18
13
|
formatWelcomeTitle,
|
|
19
14
|
formatWelcomeVersionPrefix,
|
|
20
15
|
isSessionWorktreeEnabled,
|
|
16
|
+
prepareBareModeConfig,
|
|
21
17
|
prepareSessionWorktree
|
|
22
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-WH6YUQDB.js";
|
|
19
|
+
import {
|
|
20
|
+
printStartupCheckResults,
|
|
21
|
+
runStartupChecks,
|
|
22
|
+
validateWorkspacePath
|
|
23
|
+
} from "./chunk-KA2U6MY2.js";
|
|
23
24
|
import {
|
|
24
25
|
normalizeMcpCommandForConfig
|
|
25
26
|
} from "./chunk-WQ3VJXZB.js";
|
|
27
|
+
import {
|
|
28
|
+
AgentsGenerator
|
|
29
|
+
} from "./chunk-2WUNHTXL.js";
|
|
30
|
+
import "./chunk-FQVG6ZHF.js";
|
|
26
31
|
import {
|
|
27
32
|
DEFAULT_CHROME_INSTALL_URL,
|
|
28
33
|
applyChromeSettings,
|
|
@@ -32,11 +37,15 @@ import {
|
|
|
32
37
|
normalizeBrowsers,
|
|
33
38
|
openChromeContinuation,
|
|
34
39
|
resolveCliLaunchSpec
|
|
35
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-S7KVUIOS.js";
|
|
41
|
+
import {
|
|
42
|
+
looksLikeInlineAgents,
|
|
43
|
+
parseInlineAgents
|
|
44
|
+
} from "./chunk-TJFKA6A7.js";
|
|
36
45
|
import {
|
|
37
46
|
ensureAuthenticated,
|
|
38
47
|
getAuthClient
|
|
39
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-MA3AVDCC.js";
|
|
40
49
|
import {
|
|
41
50
|
checkForUpdates,
|
|
42
51
|
getInstallHint
|
|
@@ -47,27 +56,32 @@ import {
|
|
|
47
56
|
} from "./chunk-7DJJGKM6.js";
|
|
48
57
|
import {
|
|
49
58
|
package_default
|
|
50
|
-
} from "./chunk-
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-HZWU6IO3.js";
|
|
59
|
+
} from "./chunk-NOWCRKP2.js";
|
|
60
|
+
import "./chunk-LOSXLH7P.js";
|
|
61
|
+
import "./chunk-6W3SZCSP.js";
|
|
54
62
|
import "./chunk-CSTUTDTH.js";
|
|
55
63
|
import {
|
|
56
64
|
getProviderConfig,
|
|
57
65
|
loadConfig,
|
|
58
66
|
resolveWorkspaceRoot,
|
|
59
67
|
saveConfig
|
|
60
|
-
} from "./chunk-
|
|
61
|
-
import "./chunk-
|
|
68
|
+
} from "./chunk-CM24K6ZT.js";
|
|
69
|
+
import "./chunk-JSU46T6K.js";
|
|
70
|
+
import {
|
|
71
|
+
getCustomProviderConfig,
|
|
72
|
+
isCustomProviderName
|
|
73
|
+
} from "./chunk-JJGDOBFL.js";
|
|
62
74
|
import "./chunk-YZWE7XSM.js";
|
|
63
|
-
import
|
|
75
|
+
import {
|
|
76
|
+
getFeatureState
|
|
77
|
+
} from "./chunk-H7HXRRHK.js";
|
|
64
78
|
import "./chunk-NBGOIFKP.js";
|
|
65
79
|
import "./chunk-JAQO6XDB.js";
|
|
66
80
|
import {
|
|
67
81
|
AUTOHAND_FILES,
|
|
68
82
|
AUTOHAND_HOME,
|
|
69
83
|
PROJECT_DIR_NAME
|
|
70
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-PG2JIU5M.js";
|
|
71
85
|
import "./chunk-UOQECODR.js";
|
|
72
86
|
import {
|
|
73
87
|
checkWorkspaceSafety,
|
|
@@ -76,7 +90,7 @@ import {
|
|
|
76
90
|
import {
|
|
77
91
|
detectLocale,
|
|
78
92
|
initI18n
|
|
79
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
80
94
|
import "./chunk-QGM4M3NI.js";
|
|
81
95
|
|
|
82
96
|
// src/index.ts
|
|
@@ -88,6 +102,42 @@ import path2 from "path";
|
|
|
88
102
|
import { pathToFileURL } from "url";
|
|
89
103
|
import { execSync, spawnSync } from "child_process";
|
|
90
104
|
|
|
105
|
+
// src/auth/startupAuth.ts
|
|
106
|
+
async function validateAuthOnStartup(config) {
|
|
107
|
+
if (!config.auth?.token) {
|
|
108
|
+
return void 0;
|
|
109
|
+
}
|
|
110
|
+
if (config.auth.expiresAt) {
|
|
111
|
+
const expiresAt = new Date(config.auth.expiresAt);
|
|
112
|
+
if (expiresAt < /* @__PURE__ */ new Date()) {
|
|
113
|
+
config.auth = void 0;
|
|
114
|
+
try {
|
|
115
|
+
await saveConfig(config);
|
|
116
|
+
} catch {
|
|
117
|
+
}
|
|
118
|
+
return void 0;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
try {
|
|
122
|
+
const authClient = getAuthClient();
|
|
123
|
+
const result = await authClient.validateSession(config.auth.token);
|
|
124
|
+
if (result.authenticated) {
|
|
125
|
+
if (result.user && config.auth) {
|
|
126
|
+
config.auth.user = result.user;
|
|
127
|
+
}
|
|
128
|
+
return config.auth?.user;
|
|
129
|
+
}
|
|
130
|
+
config.auth = void 0;
|
|
131
|
+
try {
|
|
132
|
+
await saveConfig(config);
|
|
133
|
+
} catch {
|
|
134
|
+
}
|
|
135
|
+
return void 0;
|
|
136
|
+
} catch {
|
|
137
|
+
return config.auth?.user;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
91
141
|
// src/telemetry/PingService.ts
|
|
92
142
|
import fs from "fs-extra";
|
|
93
143
|
import path from "path";
|
|
@@ -440,13 +490,33 @@ if (process.stdout.isTTY) {
|
|
|
440
490
|
process.stdout.write("\x1B]0;Autohand Code\x07");
|
|
441
491
|
}
|
|
442
492
|
process.env.AUTOHAND_CODE = "1";
|
|
493
|
+
function applyCliModelOverride(config, model) {
|
|
494
|
+
const providerName = config.provider ?? "openrouter";
|
|
495
|
+
if (isCustomProviderName(providerName)) {
|
|
496
|
+
const customProvider = getCustomProviderConfig(config, providerName);
|
|
497
|
+
if (customProvider) {
|
|
498
|
+
config.customProviders = {
|
|
499
|
+
...config.customProviders,
|
|
500
|
+
[customProvider.id]: {
|
|
501
|
+
...customProvider,
|
|
502
|
+
model
|
|
503
|
+
}
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
const providerConfig = config[providerName];
|
|
509
|
+
if (providerConfig) {
|
|
510
|
+
providerConfig.model = model;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
443
513
|
function getCommitFromAlphaVersion(version) {
|
|
444
514
|
const match = version.match(/-alpha\.([0-9a-f]{7,40})$/i);
|
|
445
515
|
return match?.[1] ?? null;
|
|
446
516
|
}
|
|
447
517
|
function getGitCommit() {
|
|
448
518
|
if (true) {
|
|
449
|
-
return "
|
|
519
|
+
return "1d7b7b1";
|
|
450
520
|
}
|
|
451
521
|
const alphaCommit = getCommitFromAlphaVersion(package_default.version);
|
|
452
522
|
if (alphaCommit) {
|
|
@@ -491,39 +561,10 @@ async function loadConfigForMcpScope(scopeInput) {
|
|
|
491
561
|
const projectConfigPath = await resolveProjectConfigPath(process.cwd());
|
|
492
562
|
return { config: await loadConfig(projectConfigPath, process.cwd()), scope };
|
|
493
563
|
}
|
|
494
|
-
async function validateAuthOnStartup(config) {
|
|
495
|
-
if (!config.auth?.token) {
|
|
496
|
-
return void 0;
|
|
497
|
-
}
|
|
498
|
-
if (config.auth.expiresAt) {
|
|
499
|
-
const expiresAt = new Date(config.auth.expiresAt);
|
|
500
|
-
if (expiresAt < /* @__PURE__ */ new Date()) {
|
|
501
|
-
config.auth = void 0;
|
|
502
|
-
try {
|
|
503
|
-
await saveConfig(config);
|
|
504
|
-
} catch {
|
|
505
|
-
}
|
|
506
|
-
return void 0;
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
try {
|
|
510
|
-
const authClient = getAuthClient();
|
|
511
|
-
const result = await authClient.validateSession(config.auth.token);
|
|
512
|
-
if (result.authenticated) {
|
|
513
|
-
if (result.user && config.auth) {
|
|
514
|
-
config.auth.user = result.user;
|
|
515
|
-
}
|
|
516
|
-
return config.auth?.user;
|
|
517
|
-
}
|
|
518
|
-
return config.auth?.user;
|
|
519
|
-
} catch {
|
|
520
|
-
return config.auth?.user;
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
564
|
installProcessErrorHandlers();
|
|
524
565
|
var program = new Command();
|
|
525
566
|
registerChromeCommand(program);
|
|
526
|
-
program.name("autohand").description("Autonomous coding agent").version(getVersionString(), "-v, --version", "output the current version").argument("[prompt]", "Run a single instruction in command mode (same as -p)").option("-p, --prompt [text]", "Run a single instruction in command mode").option("--path <path>", "Workspace path to operate in").option("-y, --yes", "Auto-confirm risky actions", false).option("--dry-run", "Preview actions without applying mutations", false).option("-d, --debug", "Enable debug output (verbose logging)", false).option("--model <model>", "Override the configured LLM model").option("--config <path>", "Path to config file (default ~/.autohand/config.json)").option("--temperature <value>", "Sampling temperature", parseFloat).option("--thinking [level]", "Set thinking/reasoning depth (none, normal, extended)").option("-c, --auto-commit", "Auto-commit with LLM-generated message (runs lint & test first)", false).option("--unrestricted", "Run without any approval prompts (use with caution)", false).option("--restricted", "Deny all dangerous operations automatically", false).option("--goal [input]", "Run /goal non-interactively (status when omitted, otherwise same arguments as /goal)").option("--auto-skill", "Auto-generate skills based on project analysis", false).option("--learn", "Run /learn skill advisor non-interactively (analyze and install recommended skills)", false).option("--learn-update", "Re-analyze project and regenerate outdated LLM-generated skills", false).option("--skill-install [skill-name]", "Install a community skill (opens browser if no name)").option("--project", "Install skill to project level (with --skill-install)", false).option("--permissions", "Display current permission settings and exit", false).option("--settings", "Configure Autohand settings (same as /settings in interactive mode)", false).option("--login", "Sign in to your Autohand account", false).option("--logout", "Sign out of your Autohand account", false).option("--sync-settings [bool]", "Enable/disable settings sync (default: true for logged users)").option("--patch", "Generate git patch without applying changes (requires --prompt)", false).option("--output <file>", "Output file for patch (default: stdout, used with --patch)").option("--mode <mode>", "Run mode: interactive (default), rpc, or acp", "interactive").option("--acp", "Shorthand for --mode acp (Agent Client Protocol over stdio)", false).option("--teammate-mode <mode>", "Team display mode: auto, in-process, or tmux").option("--worktree [name]", "Run session in isolated git worktree (optional name)").option("--tmux", "Launch in a dedicated tmux session (implies --worktree)").option("--auto-mode [prompt]", "Enable interactive auto-mode, or start a standalone loop with an inline task").option("--max-iterations <n>", "Max auto-mode iterations (default: 50)", parseInt).option("--completion-promise <text>", 'Completion marker text (default: "DONE")').option("--no-worktree", "Disable git worktree isolation in auto-mode").option("--checkpoint-interval <n>", "Git commit every N iterations (default: 5)", parseInt).option("--max-runtime <m>", "Max runtime in minutes (default: 120)", parseInt).option("--max-cost <d>", "Max API cost in dollars (default: 10)", parseFloat).option("--interactive-on-complete", "After auto-mode ends, hand off directly to interactive mode (TTY only)", false).option("--setup", "Run the setup wizard to configure or reconfigure Autohand", false).option("--about", "Show information about Autohand", false).option("--feedback", "Submit feedback", false).option("--add-dir <path...>", "Add additional directories to workspace scope (can be used multiple times)").option("--display-language <locale>", "Set display language (e.g., en, id, zh-cn, fr, de, ja)").option("--cc, --context-compact", "Enable context compaction (default: on)").option("--no-cc, --no-context-compact", "Disable context compaction").option("--search-engine <provider>", "Set web search provider (google, brave, duckduckgo, parallel)").option("--sys-prompt <value>", "Replace entire system prompt (inline string or file path)").option("--append-sys-prompt <value>", "Append to system prompt (inline string or file path)").option("--yolo [pattern]", "Auto-approve tool calls matching pattern (e.g., allow:read,write or deny:delete)").option("--timeout <seconds>", "Timeout in seconds for auto-approve mode", parseInt).option("--chrome", "Enable Chrome browser integration (same as /chrome)").option("--no-chrome", "Disable Chrome browser integration").action(async (positionalPrompt, opts) => {
|
|
567
|
+
program.name("autohand").description("Autonomous coding agent").version(getVersionString(), "-v, --version", "output the current version").argument("[prompt]", "Run a single instruction in command mode (same as -p)").option("-p, --prompt [text]", "Run a single instruction in command mode").option("--bare", "Minimal mode: skip hooks, LSP, plugin sync, attribution, auto-memory, background prefetches, keychain reads, and AGENTS.md auto-discovery", false).option("--path <path>", "Workspace path to operate in").option("-y, --yes", "Auto-confirm risky actions", false).option("--dry-run", "Preview actions without applying mutations", false).option("-d, --debug", "Enable debug output (verbose logging)", false).option("--model <model>", "Override the configured LLM model").option("--config <path>", "Path to config file (default ~/.autohand/config.json)").option("--temperature <value>", "Sampling temperature", parseFloat).option("--thinking [level]", "Set thinking/reasoning depth (none, normal, extended)").option("-c, --auto-commit", "Auto-commit with LLM-generated message (runs lint & test first)", false).option("--unrestricted", "Run without any approval prompts (use with caution)", false).option("--restricted", "Deny all dangerous operations automatically", false).option("--no-idle-logout", "Disable authenticated idle logout for long-running agent sessions").option("--goal [input]", "Run /goal non-interactively (status when omitted, otherwise same arguments as /goal)").option("--auto-skill", "Auto-generate skills based on project analysis", false).option("--learn", "Run /learn skill advisor non-interactively (analyze and install recommended skills)", false).option("--learn-update", "Re-analyze project and regenerate outdated LLM-generated skills", false).option("--skill-install [skill-name]", "Install a community skill (opens browser if no name)").option("--project", "Install skill to project level (with --skill-install)", false).option("--permissions", "Display current permission settings and exit", false).option("--settings", "Configure Autohand settings (same as /settings in interactive mode)", false).option("--login", "Sign in to your Autohand account", false).option("--logout", "Sign out of your Autohand account", false).option("--sync-settings [bool]", "Enable/disable settings sync (default: true for logged users)").option("--patch", "Generate git patch without applying changes (requires --prompt)", false).option("--output <file>", "Output file for patch (default: stdout, used with --patch)").option("--mode <mode>", "Run mode: interactive (default), rpc, or acp", "interactive").option("--acp", "Shorthand for --mode acp (Agent Client Protocol over stdio)", false).option("--teammate-mode <mode>", "Team display mode: auto, in-process, or tmux").option("--worktree [name]", "Run session in isolated git worktree (optional name)").option("--tmux", "Launch in a dedicated tmux session (implies --worktree)").option("--auto-mode [prompt]", "Enable interactive auto-mode, or start a standalone loop with an inline task").option("--max-iterations <n>", "Max auto-mode iterations (default: 50)", parseInt).option("--completion-promise <text>", 'Completion marker text (default: "DONE")').option("--no-worktree", "Disable git worktree isolation in auto-mode").option("--checkpoint-interval <n>", "Git commit every N iterations (default: 5)", parseInt).option("--max-runtime <m>", "Max runtime in minutes (default: 120)", parseInt).option("--max-cost <d>", "Max API cost in dollars (default: 10)", parseFloat).option("--interactive-on-complete", "After auto-mode ends, hand off directly to interactive mode (TTY only)", false).option("--setup", "Run the setup wizard to configure or reconfigure Autohand", false).option("--about", "Show information about Autohand", false).option("--feedback", "Submit feedback", false).option("--add-dir <path...>", "Add additional directories to workspace scope (can be used multiple times)").option("--display-language <locale>", "Set display language (e.g., en, id, zh-cn, fr, de, ja)").option("--cc, --context-compact", "Enable context compaction (default: on)").option("--no-cc, --no-context-compact", "Disable context compaction").option("--search-engine <provider>", "Set web search provider (google, brave, duckduckgo, parallel)").option("--sys-prompt <value>", "Replace entire system prompt (inline string or file path)").option("--system-prompt <value>", "Replace entire system prompt (inline string or file path)").option("--system-prompt-file <path>", "Replace entire system prompt with file contents").option("--append-sys-prompt <value>", "Append to system prompt (inline string or file path)").option("--append-system-prompt <value>", "Append to system prompt (inline string or file path)").option("--append-system-prompt-file <path>", "Append file contents to system prompt").option("--mcp-config <path>", "Explicit MCP config file").option("--agents <json|path>", 'Custom agents as inline JSON ({"reviewer":{"description":"...","prompt":"..."}}) or an external agents directory').option("--plugin-dir <path>", "Explicit plugin/meta-tool directory").option("--yolo [pattern]", "Auto-approve tool calls matching pattern (e.g., allow:read,write or deny:delete)").option("--timeout <seconds>", "Timeout in seconds for auto-approve mode", parseInt).option("--chrome", "Enable Chrome browser integration (same as /chrome)").option("--no-chrome", "Disable Chrome browser integration").option("--fork <pathOrId>", "Create and resume a new session branch from an existing session reference").action(async (positionalPrompt, opts) => {
|
|
527
568
|
if (process.stdout.isTTY && process.env.AUTOHAND_NO_BANNER !== "1") {
|
|
528
569
|
process.stdout.write("\x1B[3J\x1B[2J\x1B[H");
|
|
529
570
|
}
|
|
@@ -536,6 +577,32 @@ program.name("autohand").description("Autonomous coding agent").version(getVersi
|
|
|
536
577
|
if (opts.goal === true) {
|
|
537
578
|
opts.goal = "";
|
|
538
579
|
}
|
|
580
|
+
if (opts.systemPrompt) {
|
|
581
|
+
opts.sysPrompt = String(opts.systemPrompt);
|
|
582
|
+
}
|
|
583
|
+
if (opts.systemPromptFile) {
|
|
584
|
+
opts.sysPrompt = opts.systemPromptFile;
|
|
585
|
+
}
|
|
586
|
+
if (opts.appendSystemPrompt) {
|
|
587
|
+
opts.appendSysPrompt = String(opts.appendSystemPrompt);
|
|
588
|
+
}
|
|
589
|
+
if (opts.appendSystemPromptFile) {
|
|
590
|
+
opts.appendSysPrompt = opts.appendSystemPromptFile;
|
|
591
|
+
}
|
|
592
|
+
if (opts.bare) {
|
|
593
|
+
process.env.AUTOHAND_CODE_SIMPLE = "1";
|
|
594
|
+
opts.syncSettings = false;
|
|
595
|
+
opts.contextCompact = false;
|
|
596
|
+
opts.noChrome = true;
|
|
597
|
+
}
|
|
598
|
+
if (typeof opts.agents === "string" && looksLikeInlineAgents(opts.agents)) {
|
|
599
|
+
try {
|
|
600
|
+
opts.inlineAgents = parseInlineAgents(opts.agents);
|
|
601
|
+
} catch (error) {
|
|
602
|
+
console.error(chalk2.red(`Invalid --agents JSON: ${error.message}`));
|
|
603
|
+
process.exit(1);
|
|
604
|
+
}
|
|
605
|
+
}
|
|
539
606
|
if (positionalPrompt && !opts.prompt) {
|
|
540
607
|
opts.prompt = positionalPrompt;
|
|
541
608
|
}
|
|
@@ -572,25 +639,25 @@ program.name("autohand").description("Autonomous coding agent").version(getVersi
|
|
|
572
639
|
}
|
|
573
640
|
if (opts.settings) {
|
|
574
641
|
const config = await loadConfig(opts.config, process.cwd());
|
|
575
|
-
const { settings } = await import("./settings-
|
|
642
|
+
const { settings } = await import("./settings-FT2LZZUV.js");
|
|
576
643
|
await settings({ config });
|
|
577
644
|
process.exit(0);
|
|
578
645
|
}
|
|
579
646
|
if (opts.login) {
|
|
580
|
-
const { login } = await import("./login-
|
|
647
|
+
const { login } = await import("./login-XPOVFSWN.js");
|
|
581
648
|
const config = await loadConfig(opts.config);
|
|
582
649
|
await login({ config });
|
|
583
650
|
process.exit(0);
|
|
584
651
|
}
|
|
585
652
|
if (opts.logout) {
|
|
586
|
-
const { logout } = await import("./logout-
|
|
653
|
+
const { logout } = await import("./logout-HNHCGB4Q.js");
|
|
587
654
|
const config = await loadConfig(opts.config);
|
|
588
655
|
await logout({ config });
|
|
589
656
|
process.exit(0);
|
|
590
657
|
}
|
|
591
658
|
if (opts.about) {
|
|
592
|
-
const { initI18n: initI18n2, detectLocale: detectLocale2 } = await import("./i18n-
|
|
593
|
-
const { about } = await import("./about-
|
|
659
|
+
const { initI18n: initI18n2, detectLocale: detectLocale2 } = await import("./i18n-4QI4TD4I.js");
|
|
660
|
+
const { about } = await import("./about-OYVGQMJJ.js");
|
|
594
661
|
const { locale } = detectLocale2();
|
|
595
662
|
await initI18n2(locale);
|
|
596
663
|
const config = await loadConfig(opts.config);
|
|
@@ -598,8 +665,8 @@ program.name("autohand").description("Autonomous coding agent").version(getVersi
|
|
|
598
665
|
process.exit(0);
|
|
599
666
|
}
|
|
600
667
|
if (opts.feedback) {
|
|
601
|
-
const { initI18n: initI18n2, detectLocale: detectLocale2 } = await import("./i18n-
|
|
602
|
-
const { feedback } = await import("./feedback-
|
|
668
|
+
const { initI18n: initI18n2, detectLocale: detectLocale2 } = await import("./i18n-4QI4TD4I.js");
|
|
669
|
+
const { feedback } = await import("./feedback-7WTJFQ6S.js");
|
|
603
670
|
const { locale } = detectLocale2();
|
|
604
671
|
await initI18n2(locale);
|
|
605
672
|
const config = await loadConfig(opts.config);
|
|
@@ -619,7 +686,7 @@ program.name("autohand").description("Autonomous coding agent").version(getVersi
|
|
|
619
686
|
printDangerousWorkspaceWarning(workspaceRoot, safetyCheck);
|
|
620
687
|
process.exit(1);
|
|
621
688
|
}
|
|
622
|
-
const { SetupWizard } = await import("./onboarding-
|
|
689
|
+
const { SetupWizard } = await import("./onboarding-2U5WE2OA.js");
|
|
623
690
|
const wizard = new SetupWizard(workspaceRoot, config);
|
|
624
691
|
const result = await wizard.run({ skipWelcome: false });
|
|
625
692
|
if (result.cancelled) {
|
|
@@ -633,6 +700,16 @@ program.name("autohand").description("Autonomous coding agent").version(getVersi
|
|
|
633
700
|
}
|
|
634
701
|
process.exit(0);
|
|
635
702
|
}
|
|
703
|
+
if (opts.mode === "rpc") {
|
|
704
|
+
const { runRpcMode } = await import("./rpc-3DLQBDWU.js");
|
|
705
|
+
await runRpcMode(opts);
|
|
706
|
+
return;
|
|
707
|
+
}
|
|
708
|
+
if (opts.mode === "acp") {
|
|
709
|
+
const { runAcpMode } = await import("./acp-JWHGXZL5.js");
|
|
710
|
+
await runAcpMode(opts);
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
636
713
|
{
|
|
637
714
|
const preAuthConfig = await loadConfig(opts.config, process.cwd());
|
|
638
715
|
const workspaceRoot = resolveWorkspaceRoot(preAuthConfig, opts.path);
|
|
@@ -649,7 +726,7 @@ program.name("autohand").description("Autonomous coding agent").version(getVersi
|
|
|
649
726
|
}
|
|
650
727
|
{
|
|
651
728
|
let authConfig = await loadConfig(opts.config, process.cwd());
|
|
652
|
-
authConfig = await ensureAuthenticated(authConfig);
|
|
729
|
+
authConfig = await ensureAuthenticated(authConfig, { bare: opts.bare === true });
|
|
653
730
|
opts._authConfig = authConfig;
|
|
654
731
|
}
|
|
655
732
|
if (opts.patch) {
|
|
@@ -682,18 +759,8 @@ program.name("autohand").description("Autonomous coding agent").version(getVersi
|
|
|
682
759
|
process.exit(1);
|
|
683
760
|
}
|
|
684
761
|
}
|
|
685
|
-
if (opts.mode === "rpc") {
|
|
686
|
-
const { runRpcMode } = await import("./rpc-XH7QLN4H.js");
|
|
687
|
-
await runRpcMode(opts);
|
|
688
|
-
return;
|
|
689
|
-
}
|
|
690
|
-
if (opts.mode === "acp") {
|
|
691
|
-
const { runAcpMode } = await import("./acp-5Y2W6OZP.js");
|
|
692
|
-
await runAcpMode(opts);
|
|
693
|
-
return;
|
|
694
|
-
}
|
|
695
762
|
if (opts.mode === "teammate") {
|
|
696
|
-
const { parseTeammateOptions, runTeammateMode } = await import("./teammate-
|
|
763
|
+
const { parseTeammateOptions, runTeammateMode } = await import("./teammate-K4DAOFEQ.js");
|
|
697
764
|
const teammateOpts = parseTeammateOptions(process.argv);
|
|
698
765
|
if (!teammateOpts) {
|
|
699
766
|
console.error("Error: --mode teammate requires --team, --name, --agent, and --lead-session");
|
|
@@ -730,31 +797,67 @@ program.command("resume <sessionId>").description("Resume a previous session").o
|
|
|
730
797
|
await runCLI({ ...opts, resumeSessionId: sessionId });
|
|
731
798
|
});
|
|
732
799
|
program.command("login").description("Sign in to your Autohand account").action(async () => {
|
|
733
|
-
const { login } = await import("./login-
|
|
800
|
+
const { login } = await import("./login-XPOVFSWN.js");
|
|
734
801
|
const config = await loadConfig();
|
|
735
802
|
await login({ config });
|
|
736
803
|
process.exit(0);
|
|
737
804
|
});
|
|
738
805
|
program.command("logout").description("Sign out of your Autohand account").action(async () => {
|
|
739
|
-
const { logout } = await import("./logout-
|
|
806
|
+
const { logout } = await import("./logout-HNHCGB4Q.js");
|
|
740
807
|
const config = await loadConfig();
|
|
741
808
|
await logout({ config });
|
|
742
809
|
process.exit(0);
|
|
743
810
|
});
|
|
811
|
+
program.command("squad [args...]").description("Start and manage the standalone Autohand Squad runtime").allowUnknownOption(true).allowExcessArguments(true).action(async (args = []) => {
|
|
812
|
+
const rootOptions = program.opts();
|
|
813
|
+
const config = await loadConfig(rootOptions.config, process.cwd());
|
|
814
|
+
const workspaceRoot = resolveWorkspaceRoot(config, rootOptions.path);
|
|
815
|
+
const { runSquadCommand } = await import("./squad-VHYOVEJP.js");
|
|
816
|
+
const result = await runSquadCommand({ workspaceRoot, config }, args);
|
|
817
|
+
if (result.output) {
|
|
818
|
+
if (result.code === 0) {
|
|
819
|
+
console.log(result.output);
|
|
820
|
+
} else {
|
|
821
|
+
console.error(result.output);
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
process.exit(result.code);
|
|
825
|
+
});
|
|
826
|
+
program.command("queue [args...]").description("Show the local Autohand Squad queue").allowUnknownOption(true).allowExcessArguments(true).action(async (args = []) => {
|
|
827
|
+
const rootOptions = program.opts();
|
|
828
|
+
const config = await loadConfig(rootOptions.config, process.cwd());
|
|
829
|
+
const workspaceRoot = resolveWorkspaceRoot(config, rootOptions.path);
|
|
830
|
+
const { runSquadCommand } = await import("./squad-VHYOVEJP.js");
|
|
831
|
+
const result = await runSquadCommand({ workspaceRoot, config }, ["queue", ...args]);
|
|
832
|
+
if (result.output) {
|
|
833
|
+
if (result.code === 0) {
|
|
834
|
+
console.log(result.output);
|
|
835
|
+
} else {
|
|
836
|
+
console.error(result.output);
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
process.exit(result.code);
|
|
840
|
+
});
|
|
744
841
|
var configCmd = program.command("config").description("Configure Autohand settings").action(async () => {
|
|
745
842
|
const config = await loadConfig(program.opts().config);
|
|
746
|
-
const { settings } = await import("./settings-
|
|
843
|
+
const { settings } = await import("./settings-FT2LZZUV.js");
|
|
747
844
|
await settings({ config });
|
|
748
845
|
process.exit(0);
|
|
749
846
|
});
|
|
750
847
|
configCmd.command("set <parts...>").description("Set a config value, e.g. autohand config set verbs activity false").action(async (parts) => {
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
848
|
+
try {
|
|
849
|
+
const config = await loadConfig(program.opts().config);
|
|
850
|
+
const { parseConfigSetArgs, setConfigSetting, formatConfigSetResult } = await import("./settings-FT2LZZUV.js");
|
|
851
|
+
const { key, value } = parseConfigSetArgs(parts);
|
|
852
|
+
const result = setConfigSetting(config, key, value);
|
|
853
|
+
await saveConfig(config);
|
|
854
|
+
console.log(chalk2.green(formatConfigSetResult(result)));
|
|
855
|
+
process.exit(0);
|
|
856
|
+
} catch (error) {
|
|
857
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
858
|
+
console.error(chalk2.red(message));
|
|
859
|
+
process.exit(1);
|
|
860
|
+
}
|
|
758
861
|
});
|
|
759
862
|
var mcpCmd = program.command("mcp").description("Manage MCP (Model Context Protocol) servers");
|
|
760
863
|
mcpCmd.command("add <name> <target> [args...]").description("Add an MCP server to config and auto-connect on next session").option("-t, --transport <transport>", "Transport type: stdio | http | sse", "stdio").option("-s, --scope <scope>", "Config scope: user | project", "user").action(async (name, target, serverArgs, options) => {
|
|
@@ -914,29 +1017,29 @@ mcpCmd.command("install [server-name]").description("Browse and install communit
|
|
|
914
1017
|
}
|
|
915
1018
|
const { McpClientManager } = await import("./McpClientManager-SL35BR24.js");
|
|
916
1019
|
const manager = new McpClientManager();
|
|
917
|
-
const { mcpInstall } = await import("./mcp-install-
|
|
1020
|
+
const { mcpInstall } = await import("./mcp-install-3TBTVSHW.js");
|
|
918
1021
|
const result = await mcpInstall({ mcpManager: manager, config }, serverName);
|
|
919
1022
|
if (result) console.log(result);
|
|
920
1023
|
await manager.disconnectAll().catch(() => {
|
|
921
1024
|
});
|
|
922
1025
|
process.exit(0);
|
|
923
1026
|
});
|
|
924
|
-
var
|
|
925
|
-
const { features } = await import("./features-
|
|
1027
|
+
var experimentsCmd = program.command("experiments").description("List and toggle Autohand experiments").action(async () => {
|
|
1028
|
+
const { features } = await import("./features-ZDIU26WX.js");
|
|
926
1029
|
const config = await loadConfig(program.opts().config);
|
|
927
1030
|
const result = await features({ config }, ["list"]);
|
|
928
1031
|
if (result) console.log(result);
|
|
929
1032
|
process.exit(0);
|
|
930
1033
|
});
|
|
931
|
-
|
|
932
|
-
const { features } = await import("./features-
|
|
1034
|
+
experimentsCmd.command("list").alias("ls").description("List experiments and current state").action(async () => {
|
|
1035
|
+
const { features } = await import("./features-ZDIU26WX.js");
|
|
933
1036
|
const config = await loadConfig(program.opts().config);
|
|
934
1037
|
const result = await features({ config }, ["list"]);
|
|
935
1038
|
if (result) console.log(result);
|
|
936
1039
|
process.exit(0);
|
|
937
1040
|
});
|
|
938
|
-
|
|
939
|
-
const { features } = await import("./features-
|
|
1041
|
+
experimentsCmd.command("status <feature>").alias("show").description("Show one experiment").action(async (featureId) => {
|
|
1042
|
+
const { features } = await import("./features-ZDIU26WX.js");
|
|
940
1043
|
const config = await loadConfig(program.opts().config);
|
|
941
1044
|
const result = await features({ config }, ["status", featureId]);
|
|
942
1045
|
if (result?.startsWith("Unknown feature")) {
|
|
@@ -946,15 +1049,15 @@ featuresCmd.command("status <feature>").alias("show").description("Show one feat
|
|
|
946
1049
|
if (result) console.log(result);
|
|
947
1050
|
process.exit(0);
|
|
948
1051
|
});
|
|
949
|
-
|
|
950
|
-
const { features } = await import("./features-
|
|
1052
|
+
experimentsCmd.command("refresh").description("Download remote feature flags from the Autohand API").action(async () => {
|
|
1053
|
+
const { features } = await import("./features-ZDIU26WX.js");
|
|
951
1054
|
const config = await loadConfig(program.opts().config);
|
|
952
1055
|
const result = await features({ config }, ["refresh"]);
|
|
953
1056
|
if (result) console.log(result);
|
|
954
1057
|
process.exit(0);
|
|
955
1058
|
});
|
|
956
|
-
|
|
957
|
-
const { setFeatureEnabled } = await import("./features-
|
|
1059
|
+
experimentsCmd.command("enable <feature>").description("Enable an experiment").action(async (featureId) => {
|
|
1060
|
+
const { setFeatureEnabled } = await import("./features-ZDIU26WX.js");
|
|
958
1061
|
const config = await loadConfig(program.opts().config);
|
|
959
1062
|
const result = await setFeatureEnabled(config, featureId, true);
|
|
960
1063
|
if (result.startsWith("Unknown feature")) {
|
|
@@ -964,8 +1067,8 @@ featuresCmd.command("enable <feature>").description("Enable a feature switch").a
|
|
|
964
1067
|
console.log(result);
|
|
965
1068
|
process.exit(0);
|
|
966
1069
|
});
|
|
967
|
-
|
|
968
|
-
const { setFeatureEnabled } = await import("./features-
|
|
1070
|
+
experimentsCmd.command("disable <feature>").description("Disable an experiment").action(async (featureId) => {
|
|
1071
|
+
const { setFeatureEnabled } = await import("./features-ZDIU26WX.js");
|
|
969
1072
|
const config = await loadConfig(program.opts().config);
|
|
970
1073
|
const result = await setFeatureEnabled(config, featureId, false);
|
|
971
1074
|
if (result.startsWith("Unknown feature")) {
|
|
@@ -976,10 +1079,10 @@ featuresCmd.command("disable <feature>").description("Disable a feature switch")
|
|
|
976
1079
|
process.exit(0);
|
|
977
1080
|
});
|
|
978
1081
|
program.command("sessions").description("List saved sessions").option("--project <name>", "Filter sessions by project name").action(async (opts) => {
|
|
979
|
-
const { SessionManager } = await import("./SessionManager-
|
|
1082
|
+
const { SessionManager } = await import("./SessionManager-OR4KDDDS.js");
|
|
980
1083
|
const sessionManager = new SessionManager();
|
|
981
1084
|
await sessionManager.initialize();
|
|
982
|
-
const { sessions } = await import("./sessions-
|
|
1085
|
+
const { sessions } = await import("./sessions-VWMDIPOS.js");
|
|
983
1086
|
const args = opts.project ? ["--project", opts.project] : [];
|
|
984
1087
|
await sessions({ sessionManager, args });
|
|
985
1088
|
process.exit(0);
|
|
@@ -993,26 +1096,13 @@ program.command("init").description("Create an AGENTS.md file in the workspace")
|
|
|
993
1096
|
console.log(chalk2.yellow("AGENTS.md already exists in this workspace."));
|
|
994
1097
|
process.exit(0);
|
|
995
1098
|
}
|
|
996
|
-
const
|
|
997
|
-
|
|
998
|
-
"",
|
|
999
|
-
"## Project Context",
|
|
1000
|
-
"Describe your project here so the agent understands the codebase.",
|
|
1001
|
-
"",
|
|
1002
|
-
"## Coding Standards",
|
|
1003
|
-
"- List your coding conventions",
|
|
1004
|
-
"- Preferred patterns and practices",
|
|
1005
|
-
"",
|
|
1006
|
-
"## Important Files",
|
|
1007
|
-
"- `src/index.ts` - Entry point",
|
|
1008
|
-
""
|
|
1009
|
-
].join("\n");
|
|
1010
|
-
await fs2.writeFile(agentsPath, template);
|
|
1099
|
+
const generator = new AgentsGenerator();
|
|
1100
|
+
await fs2.writeFile(agentsPath, generator.generateContent({}));
|
|
1011
1101
|
console.log(chalk2.green(`Created ${agentsPath}`));
|
|
1012
1102
|
process.exit(0);
|
|
1013
1103
|
});
|
|
1014
1104
|
program.command("completion <shell>").description("Generate shell completion scripts (bash, zsh, fish)").action(async (shell) => {
|
|
1015
|
-
const { runCompletionCommand } = await import("./completion-
|
|
1105
|
+
const { runCompletionCommand } = await import("./completion-ZS3AXJ6A.js");
|
|
1016
1106
|
await runCompletionCommand(shell);
|
|
1017
1107
|
process.exit(0);
|
|
1018
1108
|
});
|
|
@@ -1030,8 +1120,8 @@ program.command("upgrade").description("Check for updates and install if availab
|
|
|
1030
1120
|
check: opts.check ?? false
|
|
1031
1121
|
});
|
|
1032
1122
|
});
|
|
1033
|
-
program.command("import [source]").description("Import data from other coding agents (claude, codex, gemini, cursor, cline, continue, augment)").option("--all", "Import all available categories without prompting").option("--categories <list>", "Comma-separated list of categories to import (sessions,settings,skills,memory,mcp,hooks)", (val) => val.split(",")).option("--dry-run", "Preview what would be imported without making changes").option("--retry-failed", "Retry previously failed import items").action(async (source, opts) => {
|
|
1034
|
-
const { runImport } = await import("./import-
|
|
1123
|
+
program.command("import [source]").description("Import data from other coding agents (claude, codex, gemini, cursor, cline, continue, augment, opencode, kimi)").option("--all", "Import all available categories without prompting").option("--categories <list>", "Comma-separated list of categories to import (sessions,settings,skills,memory,mcp,hooks)", (val) => val.split(",")).option("--dry-run", "Preview what would be imported without making changes").option("--retry-failed", "Retry previously failed import items").action(async (source, opts) => {
|
|
1124
|
+
const { runImport } = await import("./import-VQIHGJWS.js");
|
|
1035
1125
|
await runImport({
|
|
1036
1126
|
source,
|
|
1037
1127
|
categories: opts.categories,
|
|
@@ -1043,7 +1133,10 @@ program.command("import [source]").description("Import data from other coding ag
|
|
|
1043
1133
|
});
|
|
1044
1134
|
async function runCLI(options) {
|
|
1045
1135
|
try {
|
|
1046
|
-
let config = await loadConfig(options.config, process.cwd());
|
|
1136
|
+
let config = options._authConfig ?? await loadConfig(options.config, process.cwd());
|
|
1137
|
+
if (options.bare) {
|
|
1138
|
+
config = await prepareBareModeConfig(config, options);
|
|
1139
|
+
}
|
|
1047
1140
|
const originalWorkspaceRoot = resolveWorkspaceRoot(config, options.path);
|
|
1048
1141
|
let workspaceRoot = originalWorkspaceRoot;
|
|
1049
1142
|
let sessionWorktree = null;
|
|
@@ -1074,7 +1167,7 @@ async function runCLI(options) {
|
|
|
1074
1167
|
const providerName = config.provider ?? "openrouter";
|
|
1075
1168
|
const providerConfig = getProviderConfig(config, providerName);
|
|
1076
1169
|
if (!providerConfig) {
|
|
1077
|
-
const { SetupWizard } = await import("./onboarding-
|
|
1170
|
+
const { SetupWizard } = await import("./onboarding-2U5WE2OA.js");
|
|
1078
1171
|
const wizard = new SetupWizard(originalWorkspaceRoot, config);
|
|
1079
1172
|
const result = await wizard.run({ skipWelcome: !config.isNewConfig });
|
|
1080
1173
|
if (result.cancelled) {
|
|
@@ -1146,81 +1239,87 @@ async function runCLI(options) {
|
|
|
1146
1239
|
}
|
|
1147
1240
|
const { shouldUseInkRenderer } = await import("./inkMode-WBNFOSAT.js");
|
|
1148
1241
|
const inkEnabled = shouldUseInkRenderer();
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1242
|
+
if (!options.bare) {
|
|
1243
|
+
initPingService({
|
|
1244
|
+
cliVersion: package_default.version,
|
|
1245
|
+
clientType: "cli"
|
|
1246
|
+
});
|
|
1247
|
+
startPingService();
|
|
1248
|
+
const stopPing = () => stopPingService();
|
|
1249
|
+
process.on("exit", stopPing);
|
|
1250
|
+
process.on("SIGINT", stopPing);
|
|
1251
|
+
process.on("SIGTERM", stopPing);
|
|
1252
|
+
}
|
|
1158
1253
|
printWelcome(runtime, void 0, null);
|
|
1159
1254
|
if (inkEnabled && process.stdout.isTTY) {
|
|
1160
1255
|
process.stdout.write("\x1B[s");
|
|
1161
1256
|
process.stdout.write("\x1B[u");
|
|
1162
1257
|
}
|
|
1163
1258
|
const agentHolder = { current: null };
|
|
1164
|
-
|
|
1165
|
-
const checkResults = await runStartupChecks(workspaceRoot);
|
|
1166
|
-
printStartupCheckResults(checkResults);
|
|
1167
|
-
if (!checkResults.allRequiredMet) {
|
|
1168
|
-
console.log(chalk2.yellow("Continuing anyway, but some features may not work correctly.\n"));
|
|
1169
|
-
}
|
|
1170
|
-
} catch {
|
|
1171
|
-
}
|
|
1172
|
-
(async () => {
|
|
1259
|
+
if (!options.bare) {
|
|
1173
1260
|
try {
|
|
1174
|
-
const
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
validateAuthOnStartup(config),
|
|
1179
|
-
versionCheckPromise
|
|
1180
|
-
]);
|
|
1181
|
-
if (versionResult && agentHolder.current) {
|
|
1182
|
-
agentHolder.current.setVersionCheckResult(versionResult);
|
|
1261
|
+
const checkResults = await runStartupChecks(workspaceRoot);
|
|
1262
|
+
printStartupCheckResults(checkResults);
|
|
1263
|
+
if (!checkResults.allRequiredMet) {
|
|
1264
|
+
console.log(chalk2.yellow("Continuing anyway, but some features may not work correctly.\n"));
|
|
1183
1265
|
}
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1266
|
+
} catch {
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
if (!options.bare) {
|
|
1270
|
+
(async () => {
|
|
1271
|
+
try {
|
|
1272
|
+
const versionCheckPromise = config.ui?.checkForUpdates !== false ? checkForUpdates(package_default.version, {
|
|
1273
|
+
checkIntervalHours: config.ui?.updateCheckInterval ?? 24
|
|
1274
|
+
}) : Promise.resolve(null);
|
|
1275
|
+
const [authUser, versionResult] = await Promise.all([
|
|
1276
|
+
validateAuthOnStartup(config),
|
|
1277
|
+
versionCheckPromise
|
|
1278
|
+
]);
|
|
1279
|
+
if (versionResult && agentHolder.current) {
|
|
1280
|
+
agentHolder.current.setVersionCheckResult(versionResult);
|
|
1281
|
+
}
|
|
1282
|
+
if (authUser && config.auth?.token) {
|
|
1283
|
+
const syncEnabled = options.syncSettings !== false && config.sync?.enabled !== false;
|
|
1284
|
+
if (syncEnabled) {
|
|
1285
|
+
try {
|
|
1286
|
+
const { createSyncService, DEFAULT_SYNC_CONFIG } = await import("./sync-J6I2ZUKQ.js");
|
|
1287
|
+
const { setSyncService } = await import("./sync-Z3LVSEEV.js");
|
|
1288
|
+
const syncService = createSyncService({
|
|
1289
|
+
authToken: config.auth.token,
|
|
1290
|
+
userId: authUser.id,
|
|
1291
|
+
config: {
|
|
1292
|
+
...DEFAULT_SYNC_CONFIG,
|
|
1293
|
+
...config.sync,
|
|
1294
|
+
enabled: true
|
|
1295
|
+
},
|
|
1296
|
+
onAuthFailure: async () => {
|
|
1297
|
+
const message = "Session sync failed. Run /logout and /login if you continue to see this message.";
|
|
1298
|
+
if (agentHolder.current) {
|
|
1299
|
+
agentHolder.current.notifyUser(message);
|
|
1300
|
+
} else {
|
|
1301
|
+
const { promptNotify } = await import("./inputPrompt-V2VBDRM7.js");
|
|
1302
|
+
promptNotify(chalk2.yellow(message));
|
|
1303
|
+
}
|
|
1205
1304
|
}
|
|
1206
|
-
}
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1305
|
+
});
|
|
1306
|
+
syncService.start();
|
|
1307
|
+
setSyncService(syncService);
|
|
1308
|
+
const stopSync = () => {
|
|
1309
|
+
syncService?.stop();
|
|
1310
|
+
setSyncService(null);
|
|
1311
|
+
};
|
|
1312
|
+
process.on("exit", stopSync);
|
|
1313
|
+
process.on("SIGINT", stopSync);
|
|
1314
|
+
process.on("SIGTERM", stopSync);
|
|
1315
|
+
} catch {
|
|
1316
|
+
}
|
|
1218
1317
|
}
|
|
1219
1318
|
}
|
|
1319
|
+
} catch {
|
|
1220
1320
|
}
|
|
1221
|
-
}
|
|
1222
|
-
|
|
1223
|
-
})();
|
|
1321
|
+
})();
|
|
1322
|
+
}
|
|
1224
1323
|
if (options.model) {
|
|
1225
1324
|
const providerName2 = config.provider ?? "openrouter";
|
|
1226
1325
|
if (config[providerName2]) {
|
|
@@ -1231,13 +1330,13 @@ async function runCLI(options) {
|
|
|
1231
1330
|
config.agent = config.agent ?? {};
|
|
1232
1331
|
config.agent.debug = true;
|
|
1233
1332
|
}
|
|
1234
|
-
const { ProviderFactory } = await import("./ProviderFactory-
|
|
1333
|
+
const { ProviderFactory } = await import("./ProviderFactory-XUT6BSGB.js");
|
|
1235
1334
|
const { FileActionManager } = await import("./filesystem-L6DQKGWK.js");
|
|
1236
1335
|
const llmProvider = ProviderFactory.create(config);
|
|
1237
1336
|
const files = new FileActionManager(workspaceRoot, runtime.additionalDirs);
|
|
1238
1337
|
if (options.autoSkill) {
|
|
1239
1338
|
console.log(chalk2.cyan("\nAuto-generating skills for this project...\n"));
|
|
1240
|
-
const { runAutoSkillGeneration } = await import("./autoSkill-
|
|
1339
|
+
const { runAutoSkillGeneration } = await import("./autoSkill-HEWKJ5JV.js");
|
|
1241
1340
|
const result = await runAutoSkillGeneration(workspaceRoot, llmProvider);
|
|
1242
1341
|
if (!result.success) {
|
|
1243
1342
|
console.log(chalk2.yellow(result.error || "Failed to generate skills"));
|
|
@@ -1287,11 +1386,11 @@ async function runCLI(options) {
|
|
|
1287
1386
|
}
|
|
1288
1387
|
}
|
|
1289
1388
|
}
|
|
1290
|
-
const { AutohandAgent } = await import("./agent-
|
|
1389
|
+
const { AutohandAgent } = await import("./agent-DUIYLIVN.js");
|
|
1291
1390
|
const agent = new AutohandAgent(llmProvider, files, runtime);
|
|
1292
1391
|
agentHolder.current = agent;
|
|
1293
1392
|
if (options.chrome) {
|
|
1294
|
-
const { ensureNativeHostInstalled, createBrowserHandoff, buildChromeOpenUrl: buildChromeOpenUrl2, openChromeContinuation: openChromeContinuation2 } = await import("./chrome-
|
|
1393
|
+
const { ensureNativeHostInstalled, createBrowserHandoff, buildChromeOpenUrl: buildChromeOpenUrl2, openChromeContinuation: openChromeContinuation2 } = await import("./chrome-BBSRVG6S.js");
|
|
1295
1394
|
const extensionId = config.chrome?.extensionId;
|
|
1296
1395
|
await ensureNativeHostInstalled({ extensionId }).catch(() => {
|
|
1297
1396
|
});
|
|
@@ -1319,7 +1418,20 @@ async function runCLI(options) {
|
|
|
1319
1418
|
console.log(chalk2.gray(` Session: ${sessionId}
|
|
1320
1419
|
`));
|
|
1321
1420
|
}
|
|
1322
|
-
if (options.
|
|
1421
|
+
if (options.fork) {
|
|
1422
|
+
const forkEnabled = getFeatureState(config, "experimental_fork")?.enabled === true;
|
|
1423
|
+
if (!forkEnabled) {
|
|
1424
|
+
console.error(chalk2.red("The --fork flag is behind experimental_fork. Run /features enable experimental_fork, then try again."));
|
|
1425
|
+
process.exit(1);
|
|
1426
|
+
}
|
|
1427
|
+
const sessionManager = agent.getSessionManager();
|
|
1428
|
+
await sessionManager.initialize();
|
|
1429
|
+
const forked = await sessionManager.branchSession(options.fork, { type: "fork" });
|
|
1430
|
+
console.log(chalk2.green(`
|
|
1431
|
+
Forked session ${forked.metadata.sessionId}.`));
|
|
1432
|
+
await agent.resumeSession(forked.metadata.sessionId);
|
|
1433
|
+
process.exit(0);
|
|
1434
|
+
} else if (options.prompt) {
|
|
1323
1435
|
await agent.runCommandMode(options.prompt);
|
|
1324
1436
|
process.exit(0);
|
|
1325
1437
|
} else if (options.resumeSessionId) {
|
|
@@ -1414,9 +1526,9 @@ async function runSkillInstall(opts) {
|
|
|
1414
1526
|
printDangerousWorkspaceWarning(workspaceRoot, safetyCheck);
|
|
1415
1527
|
process.exit(1);
|
|
1416
1528
|
}
|
|
1417
|
-
const { SkillsRegistry } = await import("./SkillsRegistry-
|
|
1418
|
-
const { AUTOHAND_PATHS } = await import("./constants-
|
|
1419
|
-
const { skillsInstall } = await import("./skills-install-
|
|
1529
|
+
const { SkillsRegistry } = await import("./SkillsRegistry-IL3GWROU.js");
|
|
1530
|
+
const { AUTOHAND_PATHS } = await import("./constants-AS6K67AA.js");
|
|
1531
|
+
const { skillsInstall } = await import("./skills-install-T4SOKJSL.js");
|
|
1420
1532
|
const skillsRegistry = new SkillsRegistry(AUTOHAND_PATHS.skills);
|
|
1421
1533
|
await skillsRegistry.initialize();
|
|
1422
1534
|
await skillsRegistry.setWorkspace(workspaceRoot);
|
|
@@ -1434,14 +1546,14 @@ async function runLearnNonInteractive(opts, subcommand) {
|
|
|
1434
1546
|
printDangerousWorkspaceWarning(workspaceRoot, safetyCheck);
|
|
1435
1547
|
process.exit(1);
|
|
1436
1548
|
}
|
|
1437
|
-
const { learn } = await import("./learn-
|
|
1438
|
-
const { SkillsRegistry } = await import("./SkillsRegistry-
|
|
1439
|
-
const { AUTOHAND_PATHS } = await import("./constants-
|
|
1440
|
-
const { HookManager } = await import("./HookManager-
|
|
1549
|
+
const { learn } = await import("./learn-JPVVGTKU.js");
|
|
1550
|
+
const { SkillsRegistry } = await import("./SkillsRegistry-IL3GWROU.js");
|
|
1551
|
+
const { AUTOHAND_PATHS } = await import("./constants-AS6K67AA.js");
|
|
1552
|
+
const { HookManager } = await import("./HookManager-BELBPQQI.js");
|
|
1441
1553
|
const skillsRegistry = new SkillsRegistry(AUTOHAND_PATHS.skills);
|
|
1442
1554
|
await skillsRegistry.initialize();
|
|
1443
1555
|
await skillsRegistry.setWorkspace(workspaceRoot);
|
|
1444
|
-
const { ProviderFactory } = await import("./ProviderFactory-
|
|
1556
|
+
const { ProviderFactory } = await import("./ProviderFactory-XUT6BSGB.js");
|
|
1445
1557
|
const llmProvider = ProviderFactory.create(config);
|
|
1446
1558
|
const hookManager = new HookManager({ workspaceRoot });
|
|
1447
1559
|
const args = subcommand === "update" ? ["update"] : [];
|
|
@@ -1458,7 +1570,7 @@ async function runLearnNonInteractive(opts, subcommand) {
|
|
|
1458
1570
|
}
|
|
1459
1571
|
async function runGoalFlag(opts) {
|
|
1460
1572
|
const config = opts._authConfig ?? await loadConfig(opts.config, process.cwd());
|
|
1461
|
-
const { GOAL_FEATURE_DISABLED_MESSAGE, isGoalFeatureEnabled } = await import("./feature-
|
|
1573
|
+
const { GOAL_FEATURE_DISABLED_MESSAGE, isGoalFeatureEnabled } = await import("./feature-OPNVMB2E.js");
|
|
1462
1574
|
if (!isGoalFeatureEnabled(config)) {
|
|
1463
1575
|
console.error(chalk2.yellow(GOAL_FEATURE_DISABLED_MESSAGE));
|
|
1464
1576
|
process.exit(1);
|
|
@@ -1474,7 +1586,7 @@ async function runGoalFlag(opts) {
|
|
|
1474
1586
|
printDangerousWorkspaceWarning(workspaceRoot, safetyCheck);
|
|
1475
1587
|
process.exit(1);
|
|
1476
1588
|
}
|
|
1477
|
-
const { runGoalCli } = await import("./goal-
|
|
1589
|
+
const { runGoalCli } = await import("./goal-IJS7VZSG.js");
|
|
1478
1590
|
const result = await runGoalCli(workspaceRoot, opts.goal ?? "", config);
|
|
1479
1591
|
console.log(result);
|
|
1480
1592
|
}
|
|
@@ -1507,7 +1619,7 @@ async function displayPermissions(opts) {
|
|
|
1507
1619
|
printDangerousWorkspaceWarning(workspaceRoot, safetyCheck);
|
|
1508
1620
|
process.exit(1);
|
|
1509
1621
|
}
|
|
1510
|
-
const { PermissionManager } = await import("./PermissionManager-
|
|
1622
|
+
const { PermissionManager } = await import("./PermissionManager-N2LDSOYF.js");
|
|
1511
1623
|
const manager = new PermissionManager({
|
|
1512
1624
|
settings: config.permissions,
|
|
1513
1625
|
workspaceRoot
|
|
@@ -1598,12 +1710,9 @@ async function runPatchMode(opts) {
|
|
|
1598
1710
|
}
|
|
1599
1711
|
}
|
|
1600
1712
|
if (opts.model) {
|
|
1601
|
-
|
|
1602
|
-
if (config[providerName]) {
|
|
1603
|
-
config[providerName].model = opts.model;
|
|
1604
|
-
}
|
|
1713
|
+
applyCliModelOverride(config, opts.model);
|
|
1605
1714
|
}
|
|
1606
|
-
const { ProviderFactory } = await import("./ProviderFactory-
|
|
1715
|
+
const { ProviderFactory } = await import("./ProviderFactory-XUT6BSGB.js");
|
|
1607
1716
|
const { FileActionManager } = await import("./filesystem-L6DQKGWK.js");
|
|
1608
1717
|
const llmProvider = ProviderFactory.create(config);
|
|
1609
1718
|
const files = new FileActionManager(workspaceRoot, additionalDirs);
|
|
@@ -1631,7 +1740,7 @@ async function runPatchMode(opts) {
|
|
|
1631
1740
|
parallelApiKey: searchConfig.parallelApiKey ?? process.env.PARALLEL_API_KEY
|
|
1632
1741
|
});
|
|
1633
1742
|
try {
|
|
1634
|
-
const { AutohandAgent } = await import("./agent-
|
|
1743
|
+
const { AutohandAgent } = await import("./agent-DUIYLIVN.js");
|
|
1635
1744
|
const agent = new AutohandAgent(llmProvider, files, runtime);
|
|
1636
1745
|
await agent.runCommandMode(opts.prompt);
|
|
1637
1746
|
const changes = files.getPendingChanges();
|
|
@@ -1699,19 +1808,16 @@ async function runAutoMode(opts) {
|
|
|
1699
1808
|
}
|
|
1700
1809
|
}
|
|
1701
1810
|
if (opts.model) {
|
|
1702
|
-
|
|
1703
|
-
if (config[providerName2]) {
|
|
1704
|
-
config[providerName2].model = opts.model;
|
|
1705
|
-
}
|
|
1811
|
+
applyCliModelOverride(config, opts.model);
|
|
1706
1812
|
}
|
|
1707
1813
|
if (opts.debug) {
|
|
1708
1814
|
config.agent = config.agent ?? {};
|
|
1709
1815
|
config.agent.debug = true;
|
|
1710
1816
|
}
|
|
1711
1817
|
const { AutomodeManager, getAutomodeOptions } = await import("./AutomodeManager-APLLPEYJ.js");
|
|
1712
|
-
const { HookManager } = await import("./HookManager-
|
|
1713
|
-
const { SessionManager } = await import("./SessionManager-
|
|
1714
|
-
const { MemoryManager } = await import("./MemoryManager-
|
|
1818
|
+
const { HookManager } = await import("./HookManager-BELBPQQI.js");
|
|
1819
|
+
const { SessionManager } = await import("./SessionManager-OR4KDDDS.js");
|
|
1820
|
+
const { MemoryManager } = await import("./MemoryManager-3A2VRPF2.js");
|
|
1715
1821
|
const readline = await import("readline");
|
|
1716
1822
|
const automodeOptions = getAutomodeOptions(opts, config);
|
|
1717
1823
|
if (!automodeOptions) {
|
|
@@ -1752,7 +1858,7 @@ async function runAutoMode(opts) {
|
|
|
1752
1858
|
}
|
|
1753
1859
|
}
|
|
1754
1860
|
console.log();
|
|
1755
|
-
const { ProviderFactory } = await import("./ProviderFactory-
|
|
1861
|
+
const { ProviderFactory } = await import("./ProviderFactory-XUT6BSGB.js");
|
|
1756
1862
|
const llmProvider = ProviderFactory.create(config);
|
|
1757
1863
|
const { FileActionManager } = await import("./filesystem-L6DQKGWK.js");
|
|
1758
1864
|
const files = new FileActionManager(effectiveWorkspace, additionalDirs);
|
|
@@ -1793,7 +1899,7 @@ async function runAutoMode(opts) {
|
|
|
1793
1899
|
braveApiKey: searchConfig.braveApiKey ?? process.env.BRAVE_SEARCH_API_KEY,
|
|
1794
1900
|
parallelApiKey: searchConfig.parallelApiKey ?? process.env.PARALLEL_API_KEY
|
|
1795
1901
|
});
|
|
1796
|
-
const { AutohandAgent } = await import("./agent-
|
|
1902
|
+
const { AutohandAgent } = await import("./agent-DUIYLIVN.js");
|
|
1797
1903
|
const agent = new AutohandAgent(llmProvider, files, runtime);
|
|
1798
1904
|
const runIteration = async (iteration, prompt, _abortSignal) => {
|
|
1799
1905
|
const iterationPrompt = buildIterationPrompt(prompt, iteration);
|
|
@@ -1882,7 +1988,11 @@ function isCliEntrypoint() {
|
|
|
1882
1988
|
return import.meta.url === pathToFileURL(entryPath).href;
|
|
1883
1989
|
}
|
|
1884
1990
|
if (isCliEntrypoint()) {
|
|
1885
|
-
void program.parseAsync()
|
|
1991
|
+
void program.parseAsync().catch((error) => {
|
|
1992
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
1993
|
+
console.error(chalk2.red(message));
|
|
1994
|
+
process.exit(1);
|
|
1995
|
+
});
|
|
1886
1996
|
}
|
|
1887
1997
|
function launchInTmuxIfRequested(opts) {
|
|
1888
1998
|
if (!opts.tmux) {
|
|
@@ -1929,6 +2039,11 @@ function launchInTmuxIfRequested(opts) {
|
|
|
1929
2039
|
export {
|
|
1930
2040
|
displayPermissions
|
|
1931
2041
|
};
|
|
2042
|
+
/**
|
|
2043
|
+
* @license
|
|
2044
|
+
* Copyright 2026 Autohand AI LLC
|
|
2045
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
2046
|
+
*/
|
|
1932
2047
|
/**
|
|
1933
2048
|
* PingService - Periodic device ping for usage tracking
|
|
1934
2049
|
* Runs independently of telemetry opt-in (anonymous usage counting)
|
|
@@ -1947,8 +2062,3 @@ export {
|
|
|
1947
2062
|
* Copyright 2025 Autohand AI LLC
|
|
1948
2063
|
* SPDX-License-Identifier: Apache-2.0
|
|
1949
2064
|
*/
|
|
1950
|
-
/**
|
|
1951
|
-
* @license
|
|
1952
|
-
* Copyright 2026 Autohand AI LLC
|
|
1953
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
1954
|
-
*/
|