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
|
@@ -7,16 +7,16 @@ var _chunkFMB3TSWPcjs = require('./chunk-FMB3TSWP.cjs');
|
|
|
7
7
|
var _chunkSD3NTC7Dcjs = require('./chunk-SD3NTC7D.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkCSUGNNJYcjs = require('./chunk-CSUGNNJY.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkDMM2BKSVcjs = require('./chunk-DMM2BKSV.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _chunkCNQKIWIScjs = require('./chunk-CNQKIWIS.cjs');
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
|
|
20
20
|
|
|
21
21
|
// src/auth/AuthClient.ts
|
|
22
22
|
var DEFAULT_TIMEOUT = 1e4;
|
|
@@ -24,7 +24,7 @@ var AuthClient = class {
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
constructor(config = {}) {
|
|
27
|
-
this.baseUrl = config.baseUrl ||
|
|
27
|
+
this.baseUrl = config.baseUrl || _chunk3JURXAL6cjs.AUTH_CONFIG.apiBaseUrl;
|
|
28
28
|
this.timeout = config.timeout || DEFAULT_TIMEOUT;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
@@ -123,9 +123,12 @@ var AuthClient = class {
|
|
|
123
123
|
signal: controller.signal
|
|
124
124
|
});
|
|
125
125
|
clearTimeout(timeoutId);
|
|
126
|
-
if (
|
|
126
|
+
if (response.status === 401 || response.status === 403) {
|
|
127
127
|
return { authenticated: false };
|
|
128
128
|
}
|
|
129
|
+
if (!response.ok) {
|
|
130
|
+
throw new Error(`HTTP ${response.status}`);
|
|
131
|
+
}
|
|
129
132
|
const data = await response.json();
|
|
130
133
|
let user;
|
|
131
134
|
if (typeof data === "object" && "user" in data) {
|
|
@@ -179,9 +182,9 @@ var _child_process = require('child_process');
|
|
|
179
182
|
var _os = require('os');
|
|
180
183
|
async function getGitCommit() {
|
|
181
184
|
if (true) {
|
|
182
|
-
return "
|
|
185
|
+
return "1d7b7b1";
|
|
183
186
|
}
|
|
184
|
-
const match =
|
|
187
|
+
const match = _chunkCSUGNNJYcjs.package_default.version.match(/-alpha\.([0-9a-f]{7,40})$/i);
|
|
185
188
|
if (_optionalChain([match, 'optionalAccess', _ => _[1]])) {
|
|
186
189
|
return match[1];
|
|
187
190
|
}
|
|
@@ -244,7 +247,21 @@ async function runUpgrade() {
|
|
|
244
247
|
});
|
|
245
248
|
});
|
|
246
249
|
}
|
|
247
|
-
async function ensureAuthenticated(config) {
|
|
250
|
+
async function ensureAuthenticated(config, options = {}) {
|
|
251
|
+
if (options.bare) {
|
|
252
|
+
const token = resolveBareModeApiKey(config);
|
|
253
|
+
if (!token) {
|
|
254
|
+
console.error(_chalk2.default.red("Bare mode requires AUTOHAND_API_KEY or auth.apiKeyHelper in --settings/config."));
|
|
255
|
+
process.exit(1);
|
|
256
|
+
}
|
|
257
|
+
return {
|
|
258
|
+
...config,
|
|
259
|
+
auth: {
|
|
260
|
+
...config.auth,
|
|
261
|
+
token
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
}
|
|
248
265
|
if (_optionalChain([config, 'access', _2 => _2.auth, 'optionalAccess', _3 => _3.token])) {
|
|
249
266
|
if (isTokenExpiredLocally(config)) {
|
|
250
267
|
return await promptLogin(config);
|
|
@@ -253,8 +270,29 @@ async function ensureAuthenticated(config) {
|
|
|
253
270
|
}
|
|
254
271
|
return await promptLogin(config);
|
|
255
272
|
}
|
|
273
|
+
function resolveBareModeApiKey(config) {
|
|
274
|
+
const envToken = _optionalChain([process, 'access', _4 => _4.env, 'access', _5 => _5.AUTOHAND_API_KEY, 'optionalAccess', _6 => _6.trim, 'call', _7 => _7()]);
|
|
275
|
+
if (envToken) {
|
|
276
|
+
return envToken;
|
|
277
|
+
}
|
|
278
|
+
const helper = _optionalChain([config, 'access', _8 => _8.auth, 'optionalAccess', _9 => _9.apiKeyHelper, 'optionalAccess', _10 => _10.trim, 'call', _11 => _11()]);
|
|
279
|
+
if (!helper) {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
const result = _child_process.spawnSync.call(void 0, helper, {
|
|
283
|
+
shell: true,
|
|
284
|
+
encoding: "utf8",
|
|
285
|
+
timeout: 5e3,
|
|
286
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
287
|
+
});
|
|
288
|
+
if (result.status !== 0 || result.error) {
|
|
289
|
+
return null;
|
|
290
|
+
}
|
|
291
|
+
const token = String(result.stdout || "").trim();
|
|
292
|
+
return token.length > 0 ? token : null;
|
|
293
|
+
}
|
|
256
294
|
async function checkAuthenticated(config) {
|
|
257
|
-
if (!_optionalChain([config, 'access',
|
|
295
|
+
if (!_optionalChain([config, 'access', _12 => _12.auth, 'optionalAccess', _13 => _13.token])) {
|
|
258
296
|
return false;
|
|
259
297
|
}
|
|
260
298
|
if (isTokenExpiredLocally(config)) {
|
|
@@ -269,7 +307,7 @@ async function checkAuthenticated(config) {
|
|
|
269
307
|
}
|
|
270
308
|
}
|
|
271
309
|
function isTokenExpiredLocally(config) {
|
|
272
|
-
if (!_optionalChain([config, 'access',
|
|
310
|
+
if (!_optionalChain([config, 'access', _14 => _14.auth, 'optionalAccess', _15 => _15.expiresAt])) {
|
|
273
311
|
return false;
|
|
274
312
|
}
|
|
275
313
|
const expiresAt = new Date(config.auth.expiresAt);
|
|
@@ -278,11 +316,11 @@ function isTokenExpiredLocally(config) {
|
|
|
278
316
|
async function promptLogin(config) {
|
|
279
317
|
if (process.stdout.isTTY) {
|
|
280
318
|
const commit = await getGitCommit();
|
|
281
|
-
const versionStr = commit !== "unknown" ? `v${
|
|
319
|
+
const versionStr = commit !== "unknown" ? `v${_chunkCSUGNNJYcjs.package_default.version} (${commit})` : `v${_chunkCSUGNNJYcjs.package_default.version}`;
|
|
282
320
|
let updateAvailable = false;
|
|
283
321
|
let latestVersion = null;
|
|
284
322
|
try {
|
|
285
|
-
const updateResult = await _chunkFMB3TSWPcjs.checkForUpdates.call(void 0,
|
|
323
|
+
const updateResult = await _chunkFMB3TSWPcjs.checkForUpdates.call(void 0, _chunkCSUGNNJYcjs.package_default.version, { forceCheck: true });
|
|
286
324
|
if (!updateResult.error && !updateResult.isUpToDate && updateResult.latestVersion) {
|
|
287
325
|
updateAvailable = true;
|
|
288
326
|
latestVersion = updateResult.latestVersion;
|
|
@@ -304,7 +342,7 @@ async function promptLogin(config) {
|
|
|
304
342
|
});
|
|
305
343
|
}
|
|
306
344
|
options.push({ label: "Exit", value: "exit" });
|
|
307
|
-
const selected = await
|
|
345
|
+
const selected = await _chunkDMM2BKSVcjs.showModal.call(void 0, {
|
|
308
346
|
logo: logoWithVersion,
|
|
309
347
|
skipAltScreen: true,
|
|
310
348
|
title: updateAvailable ? _chalk2.default.yellow("New version available!") : _chalk2.default.white("Sign in to continue."),
|
|
@@ -322,10 +360,10 @@ async function promptLogin(config) {
|
|
|
322
360
|
}
|
|
323
361
|
}
|
|
324
362
|
}
|
|
325
|
-
const { login } = await Promise.resolve().then(() => _interopRequireWildcard(require("./login-
|
|
363
|
+
const { login } = await Promise.resolve().then(() => _interopRequireWildcard(require("./login-NABQYLYC.cjs")));
|
|
326
364
|
await login({ config });
|
|
327
|
-
const refreshed = await
|
|
328
|
-
if (!_optionalChain([refreshed, 'access',
|
|
365
|
+
const refreshed = await _chunkCNQKIWIScjs.loadConfig.call(void 0, config.configPath);
|
|
366
|
+
if (!_optionalChain([refreshed, 'access', _16 => _16.auth, 'optionalAccess', _17 => _17.token])) {
|
|
329
367
|
console.log(_chalk2.default.red("Login failed. Autohand requires authentication to run."));
|
|
330
368
|
process.exit(1);
|
|
331
369
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
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(); } }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
|
|
4
4
|
|
|
5
5
|
// src/permissions/localProjectPermissions.ts
|
|
6
6
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
@@ -21,7 +21,7 @@ function normalizePermissionSettings(settings) {
|
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
function getLocalSettingsPath(workspaceRoot) {
|
|
24
|
-
return _path2.default.join(workspaceRoot,
|
|
24
|
+
return _path2.default.join(workspaceRoot, _chunk3JURXAL6cjs.PROJECT_DIR_NAME, LOCAL_SETTINGS_FILE);
|
|
25
25
|
}
|
|
26
26
|
async function loadLocalProjectSettings(workspaceRoot) {
|
|
27
27
|
const settingsPath = getLocalSettingsPath(workspaceRoot);
|
|
@@ -0,0 +1,30 @@
|
|
|
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/sync/runtimeSyncService.ts
|
|
2
|
+
var globalSyncService = null;
|
|
3
|
+
var pendingBackgroundSync = false;
|
|
4
|
+
function setSyncService(service) {
|
|
5
|
+
globalSyncService = service;
|
|
6
|
+
}
|
|
7
|
+
function getSyncService() {
|
|
8
|
+
return globalSyncService;
|
|
9
|
+
}
|
|
10
|
+
function scheduleBackgroundSync() {
|
|
11
|
+
const syncService = globalSyncService;
|
|
12
|
+
if (!_optionalChain([syncService, 'optionalAccess', _ => _.isRunning]) || pendingBackgroundSync) return;
|
|
13
|
+
pendingBackgroundSync = true;
|
|
14
|
+
setTimeout(() => {
|
|
15
|
+
pendingBackgroundSync = false;
|
|
16
|
+
void syncService.sync().catch(() => {
|
|
17
|
+
});
|
|
18
|
+
}, 0);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
exports.setSyncService = setSyncService; exports.getSyncService = getSyncService; exports.scheduleBackgroundSync = scheduleBackgroundSync;
|
|
26
|
+
/**
|
|
27
|
+
* @license
|
|
28
|
+
* Copyright 2025 Autohand AI LLC
|
|
29
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
30
|
+
*/
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
4
4
|
|
|
5
5
|
// src/commands/help.ts
|
|
6
6
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
7
7
|
var _terminallink = require('terminal-link'); var _terminallink2 = _interopRequireDefault(_terminallink);
|
|
8
8
|
async function help() {
|
|
9
|
-
const { SLASH_COMMANDS } = await Promise.resolve().then(() => _interopRequireWildcard(require("./slashCommands-
|
|
9
|
+
const { SLASH_COMMANDS } = await Promise.resolve().then(() => _interopRequireWildcard(require("./slashCommands-XASURUTV.cjs")));
|
|
10
10
|
console.log(_chalk2.default.cyan(`
|
|
11
|
-
${
|
|
11
|
+
${_chunkRJCZLFHEcjs.t.call(void 0, "commands.help.title")}
|
|
12
12
|
`));
|
|
13
13
|
const commands = SLASH_COMMANDS.filter((cmd) => cmd.implemented && cmd.command !== "/?").sort((a, b) => a.command.localeCompare(b.command));
|
|
14
14
|
const maxLen = Math.max(...commands.map((c) => c.command.length)) + 2;
|
|
@@ -16,15 +16,15 @@ async function help() {
|
|
|
16
16
|
console.log(` ${_chalk2.default.yellow(command.padEnd(maxLen))} ${_chalk2.default.gray(description)}`);
|
|
17
17
|
}
|
|
18
18
|
console.log(_chalk2.default.cyan(`
|
|
19
|
-
${
|
|
19
|
+
${_chunkRJCZLFHEcjs.t.call(void 0, "commands.help.tips.title")}
|
|
20
20
|
`));
|
|
21
|
-
console.log(_chalk2.default.gray(` \u2022 ${
|
|
22
|
-
console.log(_chalk2.default.gray(` \u2022 ${
|
|
23
|
-
console.log(_chalk2.default.gray(` \u2022 ${
|
|
24
|
-
console.log(_chalk2.default.gray(` \u2022 ${
|
|
21
|
+
console.log(_chalk2.default.gray(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.help.tips.mention")}`));
|
|
22
|
+
console.log(_chalk2.default.gray(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.help.tips.arrows")}`));
|
|
23
|
+
console.log(_chalk2.default.gray(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.help.tips.tab")}`));
|
|
24
|
+
console.log(_chalk2.default.gray(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.help.tips.escape")}
|
|
25
25
|
`));
|
|
26
26
|
const docLink = _terminallink2.default.call(void 0, "docs.autohand.ai", "https://docs.autohand.ai");
|
|
27
|
-
console.log(_chalk2.default.gray(` ${
|
|
27
|
+
console.log(_chalk2.default.gray(` ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.help.docsLink", { link: docLink })}
|
|
28
28
|
`));
|
|
29
29
|
return null;
|
|
30
30
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
4
4
|
|
|
5
5
|
// src/commands/undo.ts
|
|
6
6
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -29,13 +29,13 @@ async function undo(ctx) {
|
|
|
29
29
|
console.log(_chalk2.default.green(" Removed untracked files"));
|
|
30
30
|
}
|
|
31
31
|
} else {
|
|
32
|
-
console.log(_chalk2.default.gray(" " +
|
|
32
|
+
console.log(_chalk2.default.gray(" " + _chunkRJCZLFHEcjs.t.call(void 0, "commands.undo.noChanges")));
|
|
33
33
|
}
|
|
34
34
|
try {
|
|
35
35
|
await ctx.undoFileMutation();
|
|
36
|
-
console.log(_chalk2.default.green(" " +
|
|
36
|
+
console.log(_chalk2.default.green(" " + _chunkRJCZLFHEcjs.t.call(void 0, "commands.undo.success", { file: "last mutation" })));
|
|
37
37
|
} catch (e) {
|
|
38
|
-
console.log(_chalk2.default.gray(" " +
|
|
38
|
+
console.log(_chalk2.default.gray(" " + _chunkRJCZLFHEcjs.t.call(void 0, "commands.undo.noChanges")));
|
|
39
39
|
}
|
|
40
40
|
ctx.removeLastTurn();
|
|
41
41
|
console.log(_chalk2.default.green(" Removed last conversation turn"));
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LearnAdvisor
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GSZWATME.js";
|
|
4
4
|
import {
|
|
5
5
|
ProjectAnalyzer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-FSJ2MNOC.js";
|
|
7
|
+
import {
|
|
8
|
+
GitHubRegistryFetcher
|
|
9
|
+
} from "./chunk-YVQI26H4.js";
|
|
7
10
|
import {
|
|
8
11
|
computeProjectHash,
|
|
9
12
|
fetchRegistryWithFallback,
|
|
10
13
|
injectGeneratedMetadata
|
|
11
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HTPY5ESD.js";
|
|
12
15
|
import {
|
|
13
16
|
CommunitySkillsCache
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import {
|
|
16
|
-
GitHubRegistryFetcher
|
|
17
|
-
} from "./chunk-YVQI26H4.js";
|
|
17
|
+
} from "./chunk-S2L3Y677.js";
|
|
18
18
|
import {
|
|
19
19
|
showConfirm,
|
|
20
20
|
showModal
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-LOSXLH7P.js";
|
|
22
22
|
import {
|
|
23
23
|
AUTOHAND_PATHS,
|
|
24
24
|
PROJECT_DIR_NAME
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-PG2JIU5M.js";
|
|
26
26
|
import {
|
|
27
27
|
t
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
29
29
|
|
|
30
30
|
// src/commands/learn.ts
|
|
31
31
|
import path from "path";
|
|
@@ -1,9 +1,9 @@
|
|
|
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 _chunkDMM2BKSVcjs = require('./chunk-DMM2BKSV.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
7
7
|
|
|
8
8
|
// src/commands/ide.ts
|
|
9
9
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -398,24 +398,24 @@ function groupByIDE(detected) {
|
|
|
398
398
|
}
|
|
399
399
|
async function ide(ctx) {
|
|
400
400
|
console.log(_chalk2.default.bold.cyan(`
|
|
401
|
-
${
|
|
402
|
-
console.log(_chalk2.default.gray(
|
|
401
|
+
${_chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.title")}`));
|
|
402
|
+
console.log(_chalk2.default.gray(_chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.connectDescription")));
|
|
403
403
|
console.log();
|
|
404
404
|
const detected = await detectRunningIDEs(ctx.workspaceRoot);
|
|
405
405
|
const { matching, nonMatching } = groupByIDE(detected);
|
|
406
406
|
if (detected.length === 0) {
|
|
407
|
-
console.log(_chalk2.default.yellow(
|
|
407
|
+
console.log(_chalk2.default.yellow(_chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.noIdesDetected")));
|
|
408
408
|
console.log();
|
|
409
409
|
printExtensionSuggestions(detected);
|
|
410
410
|
return null;
|
|
411
411
|
}
|
|
412
412
|
if (matching.length === 0) {
|
|
413
|
-
console.log(_chalk2.default.yellow(
|
|
413
|
+
console.log(_chalk2.default.yellow(_chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.noMatchingIdes")));
|
|
414
414
|
console.log();
|
|
415
415
|
if (nonMatching.size > 0) {
|
|
416
416
|
console.log(
|
|
417
417
|
_chalk2.default.gray(
|
|
418
|
-
|
|
418
|
+
_chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
|
|
419
419
|
)
|
|
420
420
|
);
|
|
421
421
|
console.log();
|
|
@@ -426,19 +426,19 @@ ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.title")}`));
|
|
|
426
426
|
}
|
|
427
427
|
console.log(
|
|
428
428
|
_chalk2.default.green(
|
|
429
|
-
|
|
429
|
+
_chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.foundMatching", { count: String(matching.length) })
|
|
430
430
|
)
|
|
431
431
|
);
|
|
432
432
|
console.log();
|
|
433
433
|
const options = matching.map((ide2) => ({
|
|
434
|
-
label: `${ide2.displayName}: ${_nullishCoalesce(ide2.workspacePath, () => (
|
|
434
|
+
label: `${ide2.displayName}: ${_nullishCoalesce(ide2.workspacePath, () => ( _chunkRJCZLFHEcjs.t.call(void 0, "common.unknown")))}`,
|
|
435
435
|
value: ide2.kind
|
|
436
436
|
}));
|
|
437
437
|
await _optionalChain([ctx, 'access', _4 => _4.onBeforeModal, 'optionalCall', _5 => _5()]);
|
|
438
438
|
let result;
|
|
439
439
|
try {
|
|
440
|
-
result = await
|
|
441
|
-
title:
|
|
440
|
+
result = await _chunkDMM2BKSVcjs.showModal.call(void 0, {
|
|
441
|
+
title: _chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.selectPrompt"),
|
|
442
442
|
options
|
|
443
443
|
});
|
|
444
444
|
} finally {
|
|
@@ -446,7 +446,7 @@ ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.title")}`));
|
|
|
446
446
|
}
|
|
447
447
|
if (!result) {
|
|
448
448
|
console.log(_chalk2.default.gray(`
|
|
449
|
-
${
|
|
449
|
+
${_chunkRJCZLFHEcjs.t.call(void 0, "common.cancelled")}`));
|
|
450
450
|
return null;
|
|
451
451
|
}
|
|
452
452
|
const selected = matching.find((d) => d.kind === result.value);
|
|
@@ -454,7 +454,7 @@ ${_chunkSY2P3Z5Wcjs.t.call(void 0, "common.cancelled")}`));
|
|
|
454
454
|
console.log(
|
|
455
455
|
_chalk2.default.green(
|
|
456
456
|
`
|
|
457
|
-
\u2713 ${
|
|
457
|
+
\u2713 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.connected", { ide: selected.displayName })}`
|
|
458
458
|
)
|
|
459
459
|
);
|
|
460
460
|
}
|
|
@@ -462,7 +462,7 @@ ${_chunkSY2P3Z5Wcjs.t.call(void 0, "common.cancelled")}`));
|
|
|
462
462
|
console.log();
|
|
463
463
|
console.log(
|
|
464
464
|
_chalk2.default.gray(
|
|
465
|
-
|
|
465
|
+
_chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
|
|
466
466
|
)
|
|
467
467
|
);
|
|
468
468
|
console.log();
|
|
@@ -473,7 +473,7 @@ ${_chunkSY2P3Z5Wcjs.t.call(void 0, "common.cancelled")}`));
|
|
|
473
473
|
}
|
|
474
474
|
function printNonMatchingIDEs(ides) {
|
|
475
475
|
for (const ide2 of ides) {
|
|
476
|
-
const wsPath = _nullishCoalesce(ide2.workspacePath, () => (
|
|
476
|
+
const wsPath = _nullishCoalesce(ide2.workspacePath, () => ( _chunkRJCZLFHEcjs.t.call(void 0, "common.unknown")));
|
|
477
477
|
console.log(_chalk2.default.gray(` \u2022 ${ide2.displayName}: ${wsPath}`));
|
|
478
478
|
}
|
|
479
479
|
console.log();
|
|
@@ -481,7 +481,7 @@ function printNonMatchingIDEs(ides) {
|
|
|
481
481
|
function printExtensionSuggestions(detected) {
|
|
482
482
|
const suggestions = getExtensionSuggestions(detected);
|
|
483
483
|
if (suggestions.length === 0) return;
|
|
484
|
-
console.log(_chalk2.default.dim(`\u{1F4A1} ${
|
|
484
|
+
console.log(_chalk2.default.dim(`\u{1F4A1} ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.extensionHint")}`));
|
|
485
485
|
for (const suggestion of suggestions) {
|
|
486
486
|
const link = _terminallink2.default.call(void 0, suggestion.url, suggestion.url);
|
|
487
487
|
console.log(_chalk2.default.dim(` \u2022 ${suggestion.displayName}: ${link}`));
|
|
@@ -490,7 +490,7 @@ function printExtensionSuggestions(detected) {
|
|
|
490
490
|
}
|
|
491
491
|
var metadata = {
|
|
492
492
|
command: "/ide",
|
|
493
|
-
description:
|
|
493
|
+
description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.ide.description"),
|
|
494
494
|
implemented: true
|
|
495
495
|
};
|
|
496
496
|
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadLocalProjectSettings
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JSU46T6K.js";
|
|
4
|
+
import {
|
|
5
|
+
getCustomProviderConfig,
|
|
6
|
+
isCustomProviderName
|
|
7
|
+
} from "./chunk-JJGDOBFL.js";
|
|
4
8
|
import {
|
|
5
9
|
isAwsBedrockProviderEnabled
|
|
6
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-H7HXRRHK.js";
|
|
7
11
|
import {
|
|
8
12
|
autoInitTheme,
|
|
9
13
|
configureThemeSources,
|
|
@@ -11,7 +15,7 @@ import {
|
|
|
11
15
|
} from "./chunk-NBGOIFKP.js";
|
|
12
16
|
import {
|
|
13
17
|
AUTOHAND_FILES
|
|
14
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-PG2JIU5M.js";
|
|
15
19
|
|
|
16
20
|
// src/config.ts
|
|
17
21
|
import fs from "fs-extra";
|
|
@@ -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 (isCustomProviderName(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",
|
|
@@ -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 && isCustomProviderName(provider)) {
|
|
376
|
+
const customProvider = getCustomProviderConfig(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 (config.auth?.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,6 +598,37 @@ 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
634
|
const candidate = requestedPath ?? process.cwd() ?? config.workspace?.defaultRoot;
|
|
@@ -582,9 +636,30 @@ function resolveWorkspaceRoot(config, requestedPath) {
|
|
|
582
636
|
}
|
|
583
637
|
function getProviderConfig(config, provider) {
|
|
584
638
|
const chosen = provider ?? config.provider ?? "openrouter";
|
|
639
|
+
if (isCustomProviderName(chosen)) {
|
|
640
|
+
const entry2 = getCustomProviderConfig(config, chosen);
|
|
641
|
+
if (!entry2 || entry2.apiFormat !== "openai-compatible") {
|
|
642
|
+
return null;
|
|
643
|
+
}
|
|
644
|
+
const model = entry2.model?.trim();
|
|
645
|
+
const baseUrl = entry2.baseUrl?.trim();
|
|
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
|
+
}
|
|
585
659
|
if (chosen === "bedrock" && !isAwsBedrockProviderEnabled(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
|
}
|
|
@@ -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: entry.model ?? "local",
|
|
639
|
-
baseUrl: entry.baseUrl ?? defaultBaseUrlFor(
|
|
715
|
+
baseUrl: 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: entry.baseUrl ?? defaultBaseUrlFor(
|
|
724
|
+
baseUrl: 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) {
|