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
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
I18nProvider,
|
|
3
3
|
inkRenderOptions,
|
|
4
4
|
useTranslation
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6W3SZCSP.js";
|
|
6
6
|
import {
|
|
7
7
|
disableBracketedPaste,
|
|
8
8
|
enableBracketedPaste
|
|
@@ -28,6 +28,49 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
28
28
|
var OTHER_VALUE = "__other__";
|
|
29
29
|
var ENTER_ALTERNATE_SCREEN = "\x1B[?1049h\x1B[2J\x1B[H";
|
|
30
30
|
var EXIT_ALTERNATE_SCREEN = "\x1B[?1049l";
|
|
31
|
+
function resumeModalInput(input = process.stdin) {
|
|
32
|
+
if (input.isTTY && typeof input.resume === "function") {
|
|
33
|
+
input.resume();
|
|
34
|
+
}
|
|
35
|
+
if (input.isTTY && typeof input.setRawMode === "function") {
|
|
36
|
+
input.setRawMode(true);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function createSkipAltScreenSelectFallback(options) {
|
|
40
|
+
if (options.choices.length === 0) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
let cursor = resolveInitialCursor("select", options.choices.length, options.initialIndex);
|
|
44
|
+
const selectAt = (index) => {
|
|
45
|
+
const choice = options.choices[index];
|
|
46
|
+
if (choice && !choice.disabled) {
|
|
47
|
+
options.onSelect(choice);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
return (data) => {
|
|
51
|
+
const input = data.toString();
|
|
52
|
+
if (input === "\r" || input === "\n" || input === "\r\n") {
|
|
53
|
+
selectAt(cursor);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (input === "\x1B" || input === "\x1B" || input === "") {
|
|
57
|
+
options.onCancel();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (input === "\x1B[A") {
|
|
61
|
+
cursor = (cursor - 1 + options.choices.length) % options.choices.length;
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (input === "\x1B[B") {
|
|
65
|
+
cursor = (cursor + 1) % options.choices.length;
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (/^[1-9]$/.test(input)) {
|
|
69
|
+
const index = Number(input) - 1;
|
|
70
|
+
selectAt(index);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
31
74
|
function resolveInitialCursor(mode, optionsLength, initialIndex, defaultValue) {
|
|
32
75
|
if (mode === "confirm") {
|
|
33
76
|
return defaultValue === false ? 1 : 0;
|
|
@@ -49,24 +92,28 @@ function isModalCancelInput(char, key) {
|
|
|
49
92
|
}
|
|
50
93
|
return /^\x1b\[27(?:;\d+)?[u~]$/.test(char);
|
|
51
94
|
}
|
|
52
|
-
function unmountAndResolve(instance, value, resolve) {
|
|
95
|
+
function unmountAndResolve(instance, value, resolve, renderOptions = {}) {
|
|
53
96
|
void (async () => {
|
|
54
97
|
instance.unmount();
|
|
55
98
|
try {
|
|
56
99
|
await instance.waitUntilExit();
|
|
57
100
|
} finally {
|
|
58
|
-
cleanupModalRender(process.stdout);
|
|
101
|
+
cleanupModalRender(process.stdout, renderOptions);
|
|
59
102
|
resolve(value);
|
|
60
103
|
}
|
|
61
104
|
})();
|
|
62
105
|
}
|
|
63
|
-
function prepareModalRender(output = process.stdout) {
|
|
106
|
+
function prepareModalRender(output = process.stdout, options = {}) {
|
|
64
107
|
disableBracketedPaste(output);
|
|
65
108
|
resetScrollRegion();
|
|
66
|
-
|
|
109
|
+
if (!options.skipAltScreen) {
|
|
110
|
+
output.write(ENTER_ALTERNATE_SCREEN);
|
|
111
|
+
}
|
|
67
112
|
}
|
|
68
|
-
function cleanupModalRender(output = process.stdout) {
|
|
69
|
-
|
|
113
|
+
function cleanupModalRender(output = process.stdout, options = {}) {
|
|
114
|
+
if (!options.skipAltScreen) {
|
|
115
|
+
output.write(EXIT_ALTERNATE_SCREEN);
|
|
116
|
+
}
|
|
70
117
|
enableBracketedPaste(output);
|
|
71
118
|
}
|
|
72
119
|
function Modal(props) {
|
|
@@ -392,15 +439,58 @@ function Modal(props) {
|
|
|
392
439
|
] });
|
|
393
440
|
}
|
|
394
441
|
async function showModal(options) {
|
|
395
|
-
const { title, logo, options: modalOptions, allowCustomInput, multiSelect, maxVisible, onToggle } = options;
|
|
442
|
+
const { title, logo, options: modalOptions, allowCustomInput, multiSelect, maxVisible, onToggle, skipAltScreen, initialIndex } = options;
|
|
396
443
|
if (!process.stdout.isTTY) {
|
|
397
444
|
return null;
|
|
398
445
|
}
|
|
399
|
-
prepareModalRender(process.stdout);
|
|
446
|
+
prepareModalRender(process.stdout, { skipAltScreen });
|
|
447
|
+
resumeModalInput(process.stdin);
|
|
400
448
|
await new Promise((resolve) => setImmediate(resolve));
|
|
401
449
|
return new Promise((resolve) => {
|
|
402
450
|
let completed = false;
|
|
403
|
-
|
|
451
|
+
let fallbackInput = null;
|
|
452
|
+
let fallbackReadable = null;
|
|
453
|
+
let instance = null;
|
|
454
|
+
let hasPendingCompletion = false;
|
|
455
|
+
let pendingCompletion = null;
|
|
456
|
+
const resolveWithInstance = (currentInstance, value) => {
|
|
457
|
+
unmountAndResolve(currentInstance, value, resolve, { skipAltScreen });
|
|
458
|
+
};
|
|
459
|
+
const complete = (value) => {
|
|
460
|
+
if (completed) return;
|
|
461
|
+
completed = true;
|
|
462
|
+
if (fallbackInput) {
|
|
463
|
+
process.stdin.removeListener("data", fallbackInput);
|
|
464
|
+
}
|
|
465
|
+
if (fallbackReadable) {
|
|
466
|
+
process.stdin.removeListener("readable", fallbackReadable);
|
|
467
|
+
}
|
|
468
|
+
if (!instance) {
|
|
469
|
+
hasPendingCompletion = true;
|
|
470
|
+
pendingCompletion = value;
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
473
|
+
resolveWithInstance(instance, value);
|
|
474
|
+
};
|
|
475
|
+
if (skipAltScreen && !allowCustomInput && !multiSelect) {
|
|
476
|
+
fallbackInput = createSkipAltScreenSelectFallback({
|
|
477
|
+
choices: modalOptions,
|
|
478
|
+
initialIndex,
|
|
479
|
+
onSelect: complete,
|
|
480
|
+
onCancel: () => complete(null)
|
|
481
|
+
});
|
|
482
|
+
if (fallbackInput) {
|
|
483
|
+
fallbackReadable = () => {
|
|
484
|
+
let chunk;
|
|
485
|
+
while ((chunk = process.stdin.read()) !== null) {
|
|
486
|
+
fallbackInput?.(chunk);
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
process.stdin.on("data", fallbackInput);
|
|
490
|
+
process.stdin.on("readable", fallbackReadable);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
instance = render(
|
|
404
494
|
/* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(
|
|
405
495
|
Modal,
|
|
406
496
|
{
|
|
@@ -408,18 +498,15 @@ async function showModal(options) {
|
|
|
408
498
|
logo,
|
|
409
499
|
options: modalOptions,
|
|
410
500
|
allowCustomInput,
|
|
501
|
+
initialIndex,
|
|
411
502
|
multiSelect,
|
|
412
503
|
maxVisible,
|
|
413
504
|
onToggle,
|
|
414
505
|
onSelect: (option) => {
|
|
415
|
-
|
|
416
|
-
completed = true;
|
|
417
|
-
unmountAndResolve(instance, option, resolve);
|
|
506
|
+
complete(option);
|
|
418
507
|
},
|
|
419
508
|
onCancel: () => {
|
|
420
|
-
|
|
421
|
-
completed = true;
|
|
422
|
-
unmountAndResolve(instance, null, resolve);
|
|
509
|
+
complete(null);
|
|
423
510
|
}
|
|
424
511
|
}
|
|
425
512
|
) }) }),
|
|
@@ -430,6 +517,9 @@ async function showModal(options) {
|
|
|
430
517
|
exitOnCtrlC: false
|
|
431
518
|
})
|
|
432
519
|
);
|
|
520
|
+
if (hasPendingCompletion) {
|
|
521
|
+
resolveWithInstance(instance, pendingCompletion);
|
|
522
|
+
}
|
|
433
523
|
});
|
|
434
524
|
}
|
|
435
525
|
async function showConfirm(options) {
|
|
@@ -437,6 +527,7 @@ async function showConfirm(options) {
|
|
|
437
527
|
return false;
|
|
438
528
|
}
|
|
439
529
|
prepareModalRender(process.stdout);
|
|
530
|
+
resumeModalInput(process.stdin);
|
|
440
531
|
await new Promise((resolve) => setImmediate(resolve));
|
|
441
532
|
return new Promise((resolve) => {
|
|
442
533
|
let completed = false;
|
|
@@ -475,6 +566,7 @@ async function showInput(options) {
|
|
|
475
566
|
return null;
|
|
476
567
|
}
|
|
477
568
|
prepareModalRender(process.stdout);
|
|
569
|
+
resumeModalInput(process.stdin);
|
|
478
570
|
await new Promise((resolve) => setImmediate(resolve));
|
|
479
571
|
return new Promise((resolve) => {
|
|
480
572
|
let completed = false;
|
|
@@ -513,6 +605,7 @@ async function showPassword(options) {
|
|
|
513
605
|
return null;
|
|
514
606
|
}
|
|
515
607
|
prepareModalRender(process.stdout);
|
|
608
|
+
resumeModalInput(process.stdin);
|
|
516
609
|
await new Promise((resolve) => setImmediate(resolve));
|
|
517
610
|
return new Promise((resolve) => {
|
|
518
611
|
let completed = false;
|
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkDMM2BKSVcjs = require('./chunk-DMM2BKSV.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkCNQKIWIScjs = require('./chunk-CNQKIWIS.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
14
14
|
|
|
15
15
|
// src/commands/language.ts
|
|
16
16
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
17
17
|
async function language(ctx) {
|
|
18
|
-
const currentLocale =
|
|
19
|
-
const currentDisplayName =
|
|
18
|
+
const currentLocale = _chunkRJCZLFHEcjs.getCurrentLocale.call(void 0, );
|
|
19
|
+
const currentDisplayName = _chunkRJCZLFHEcjs.LANGUAGE_DISPLAY_NAMES[currentLocale];
|
|
20
20
|
console.log(_chalk2.default.cyan(`
|
|
21
|
-
\u{1F310} ${
|
|
21
|
+
\u{1F310} ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.language.title")}
|
|
22
22
|
`));
|
|
23
|
-
console.log(_chalk2.default.gray(`${
|
|
23
|
+
console.log(_chalk2.default.gray(`${_chunkRJCZLFHEcjs.t.call(void 0, "commands.language.currentLanguage", { language: currentDisplayName })}`));
|
|
24
24
|
console.log();
|
|
25
|
-
const options =
|
|
26
|
-
label: locale === currentLocale ? `${
|
|
25
|
+
const options = _chunkRJCZLFHEcjs.SUPPORTED_LOCALES.map((locale) => ({
|
|
26
|
+
label: locale === currentLocale ? `${_chunkRJCZLFHEcjs.LANGUAGE_DISPLAY_NAMES[locale]} (${_chunkRJCZLFHEcjs.t.call(void 0, "common.current")})` : _chunkRJCZLFHEcjs.LANGUAGE_DISPLAY_NAMES[locale],
|
|
27
27
|
value: locale
|
|
28
28
|
}));
|
|
29
29
|
await _optionalChain([ctx, 'access', _ => _.onBeforeModal, 'optionalCall', _2 => _2()]);
|
|
30
30
|
const result = await (async () => {
|
|
31
31
|
try {
|
|
32
|
-
return await
|
|
33
|
-
title:
|
|
32
|
+
return await _chunkDMM2BKSVcjs.showModal.call(void 0, {
|
|
33
|
+
title: _chunkRJCZLFHEcjs.t.call(void 0, "commands.language.selectPrompt"),
|
|
34
34
|
options,
|
|
35
|
-
initialIndex:
|
|
35
|
+
initialIndex: _chunkRJCZLFHEcjs.SUPPORTED_LOCALES.indexOf(currentLocale)
|
|
36
36
|
});
|
|
37
37
|
} finally {
|
|
38
38
|
await _optionalChain([ctx, 'access', _3 => _3.onAfterModal, 'optionalCall', _4 => _4()]);
|
|
@@ -45,31 +45,31 @@ async function language(ctx) {
|
|
|
45
45
|
const selected = result.value;
|
|
46
46
|
if (selected === currentLocale) {
|
|
47
47
|
console.log(_chalk2.default.gray(`
|
|
48
|
-
${
|
|
48
|
+
${_chunkRJCZLFHEcjs.t.call(void 0, "commands.language.noChange")}`));
|
|
49
49
|
return null;
|
|
50
50
|
}
|
|
51
|
-
await
|
|
51
|
+
await _chunkRJCZLFHEcjs.changeLanguage.call(void 0, selected);
|
|
52
52
|
ctx.config.ui = { ...ctx.config.ui, locale: selected };
|
|
53
|
-
await
|
|
54
|
-
const newDisplayName =
|
|
53
|
+
await _chunkCNQKIWIScjs.saveConfig.call(void 0, ctx.config);
|
|
54
|
+
const newDisplayName = _chunkRJCZLFHEcjs.LANGUAGE_DISPLAY_NAMES[selected];
|
|
55
55
|
console.log(_chalk2.default.green(`
|
|
56
|
-
\u2713 ${
|
|
56
|
+
\u2713 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.language.changed", { language: newDisplayName })}`));
|
|
57
57
|
console.log();
|
|
58
58
|
return null;
|
|
59
59
|
}
|
|
60
60
|
async function languageInfo() {
|
|
61
|
-
const currentLocale =
|
|
62
|
-
const currentDisplayName =
|
|
61
|
+
const currentLocale = _chunkRJCZLFHEcjs.getCurrentLocale.call(void 0, );
|
|
62
|
+
const currentDisplayName = _chunkRJCZLFHEcjs.LANGUAGE_DISPLAY_NAMES[currentLocale];
|
|
63
63
|
console.log(_chalk2.default.cyan(`
|
|
64
|
-
\u{1F310} ${
|
|
64
|
+
\u{1F310} ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.language.title")}
|
|
65
65
|
`));
|
|
66
|
-
console.log(_chalk2.default.gray(`${
|
|
66
|
+
console.log(_chalk2.default.gray(`${_chunkRJCZLFHEcjs.t.call(void 0, "commands.language.currentLanguage", { language: currentDisplayName })}`));
|
|
67
67
|
console.log(_chalk2.default.gray(`Locale code: ${_chalk2.default.white(currentLocale)}`));
|
|
68
68
|
console.log();
|
|
69
69
|
console.log(_chalk2.default.gray("Supported languages:"));
|
|
70
|
-
for (const locale of
|
|
70
|
+
for (const locale of _chunkRJCZLFHEcjs.SUPPORTED_LOCALES) {
|
|
71
71
|
const marker = locale === currentLocale ? _chalk2.default.green("\u25CF") : _chalk2.default.gray("\u25CB");
|
|
72
|
-
console.log(` ${marker} ${
|
|
72
|
+
console.log(` ${marker} ${_chunkRJCZLFHEcjs.LANGUAGE_DISPLAY_NAMES[locale]}`);
|
|
73
73
|
}
|
|
74
74
|
console.log();
|
|
75
75
|
return null;
|
|
@@ -7,16 +7,16 @@ import {
|
|
|
7
7
|
} from "./chunk-7DJJGKM6.js";
|
|
8
8
|
import {
|
|
9
9
|
package_default
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-NOWCRKP2.js";
|
|
11
11
|
import {
|
|
12
12
|
showModal
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-LOSXLH7P.js";
|
|
14
14
|
import {
|
|
15
15
|
loadConfig
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-CM24K6ZT.js";
|
|
17
17
|
import {
|
|
18
18
|
AUTH_CONFIG
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-PG2JIU5M.js";
|
|
20
20
|
|
|
21
21
|
// src/auth/AuthClient.ts
|
|
22
22
|
var DEFAULT_TIMEOUT = 1e4;
|
|
@@ -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) {
|
|
@@ -175,11 +178,11 @@ function getAuthClient(config) {
|
|
|
175
178
|
|
|
176
179
|
// src/auth/ensureAuth.ts
|
|
177
180
|
import chalk from "chalk";
|
|
178
|
-
import { spawn } from "child_process";
|
|
181
|
+
import { spawn, spawnSync } from "child_process";
|
|
179
182
|
import { platform } from "os";
|
|
180
183
|
async function getGitCommit() {
|
|
181
184
|
if (true) {
|
|
182
|
-
return "
|
|
185
|
+
return "1d7b7b1";
|
|
183
186
|
}
|
|
184
187
|
const match = package_default.version.match(/-alpha\.([0-9a-f]{7,40})$/i);
|
|
185
188
|
if (match?.[1]) {
|
|
@@ -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(chalk.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 (config.auth?.token) {
|
|
249
266
|
if (isTokenExpiredLocally(config)) {
|
|
250
267
|
return await promptLogin(config);
|
|
@@ -253,6 +270,27 @@ async function ensureAuthenticated(config) {
|
|
|
253
270
|
}
|
|
254
271
|
return await promptLogin(config);
|
|
255
272
|
}
|
|
273
|
+
function resolveBareModeApiKey(config) {
|
|
274
|
+
const envToken = process.env.AUTOHAND_API_KEY?.trim();
|
|
275
|
+
if (envToken) {
|
|
276
|
+
return envToken;
|
|
277
|
+
}
|
|
278
|
+
const helper = config.auth?.apiKeyHelper?.trim();
|
|
279
|
+
if (!helper) {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
const result = spawnSync(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
295
|
if (!config.auth?.token) {
|
|
258
296
|
return false;
|
|
@@ -322,7 +360,7 @@ async function promptLogin(config) {
|
|
|
322
360
|
}
|
|
323
361
|
}
|
|
324
362
|
}
|
|
325
|
-
const { login } = await import("./login-
|
|
363
|
+
const { login } = await import("./login-XPOVFSWN.js");
|
|
326
364
|
await login({ config });
|
|
327
365
|
const refreshed = await loadConfig(config.configPath);
|
|
328
366
|
if (!refreshed.auth?.token) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentRegistry
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TJFKA6A7.js";
|
|
4
4
|
import {
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CM24K6ZT.js";
|
|
7
7
|
import {
|
|
8
8
|
t
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
10
10
|
|
|
11
11
|
// src/commands/agents.ts
|
|
12
12
|
import chalk from "chalk";
|
|
@@ -4,21 +4,21 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
I18nProvider,
|
|
6
6
|
inkRenderOptions
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-6W3SZCSP.js";
|
|
8
8
|
import {
|
|
9
9
|
loadConfig,
|
|
10
10
|
saveConfig
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CM24K6ZT.js";
|
|
12
12
|
import {
|
|
13
13
|
ThemeProvider,
|
|
14
14
|
useTheme
|
|
15
15
|
} from "./chunk-NBGOIFKP.js";
|
|
16
16
|
import {
|
|
17
17
|
PROJECT_DIR_NAME
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-PG2JIU5M.js";
|
|
19
19
|
import {
|
|
20
20
|
t
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
22
22
|
|
|
23
23
|
// src/commands/mcp.ts
|
|
24
24
|
import chalk from "chalk";
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkUKBFNBDOcjs = require('./chunk-UKBFNBDO.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkDMM2BKSVcjs = require('./chunk-DMM2BKSV.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkCNQKIWIScjs = require('./chunk-CNQKIWIS.cjs');
|
|
16
16
|
|
|
17
17
|
// src/commands/chrome.ts
|
|
18
18
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -37,7 +37,7 @@ async function chrome(ctx, args = []) {
|
|
|
37
37
|
const chromeConfig = _nullishCoalesce(ctx.config.chrome, () => ( {}));
|
|
38
38
|
chromeConfig.enabledByDefault = false;
|
|
39
39
|
ctx.config.chrome = chromeConfig;
|
|
40
|
-
await
|
|
40
|
+
await _chunkCNQKIWIScjs.saveConfig.call(void 0, ctx.config);
|
|
41
41
|
return `${_chalk2.default.green("\u2713")} Browser bridge disconnected and disabled.`;
|
|
42
42
|
}
|
|
43
43
|
const currentSession = ctx.sessionManager.getCurrentSession();
|
|
@@ -46,14 +46,14 @@ async function chrome(ctx, args = []) {
|
|
|
46
46
|
return "No active session. Start a task first, then run /chrome.";
|
|
47
47
|
}
|
|
48
48
|
const extensionId = _optionalChain([ctx, 'access', _10 => _10.config, 'optionalAccess', _11 => _11.chrome, 'optionalAccess', _12 => _12.extensionId]);
|
|
49
|
-
const nativeHostInstalled = await _fsextra2.default.pathExists(
|
|
49
|
+
const nativeHostInstalled = await _fsextra2.default.pathExists(_chunkUKBFNBDOcjs.getManifestTarget.call(void 0, "chrome").manifestPath);
|
|
50
50
|
let extensionDetected = false;
|
|
51
51
|
if (extensionId) {
|
|
52
|
-
extensionDetected = await
|
|
52
|
+
extensionDetected = await _chunkUKBFNBDOcjs.detectExtensionProfile.call(void 0, extensionId) !== null;
|
|
53
53
|
}
|
|
54
|
-
const nativeHostReady =
|
|
54
|
+
const nativeHostReady = _chunkUKBFNBDOcjs.ensureNativeHostInstalled.call(void 0, { extensionId }).catch(() => {
|
|
55
55
|
});
|
|
56
|
-
const activeHandoff = await
|
|
56
|
+
const activeHandoff = await _chunkUKBFNBDOcjs.hasActiveHandoff.call(void 0, );
|
|
57
57
|
let connectionLabel;
|
|
58
58
|
if (activeHandoff) {
|
|
59
59
|
connectionLabel = _chalk2.default.green("Handoff pending");
|
|
@@ -100,14 +100,14 @@ async function chrome(ctx, args = []) {
|
|
|
100
100
|
}
|
|
101
101
|
selected = await withModalPause(
|
|
102
102
|
ctx,
|
|
103
|
-
() =>
|
|
103
|
+
() => _chunkDMM2BKSVcjs.showModal.call(void 0, { title, options, initialIndex: isReshow ? 3 : void 0 })
|
|
104
104
|
);
|
|
105
105
|
if (!selected) return null;
|
|
106
106
|
if (selected.value === "toggle" && ctx.config) {
|
|
107
107
|
const chromeConfig = _nullishCoalesce(ctx.config.chrome, () => ( {}));
|
|
108
108
|
chromeConfig.enabledByDefault = !chromeConfig.enabledByDefault;
|
|
109
109
|
ctx.config.chrome = chromeConfig;
|
|
110
|
-
await
|
|
110
|
+
await _chunkCNQKIWIScjs.saveConfig.call(void 0, ctx.config);
|
|
111
111
|
isReshow = true;
|
|
112
112
|
continue;
|
|
113
113
|
}
|
|
@@ -116,14 +116,14 @@ async function chrome(ctx, args = []) {
|
|
|
116
116
|
switch (selected.value) {
|
|
117
117
|
case "open": {
|
|
118
118
|
await nativeHostReady;
|
|
119
|
-
await
|
|
119
|
+
await _chunkUKBFNBDOcjs.createBrowserHandoff.call(void 0, {
|
|
120
120
|
sessionId,
|
|
121
121
|
workspaceRoot: ctx.workspaceRoot,
|
|
122
122
|
extensionId,
|
|
123
123
|
installUrl: _optionalChain([ctx, 'access', _16 => _16.config, 'optionalAccess', _17 => _17.chrome, 'optionalAccess', _18 => _18.installUrl])
|
|
124
124
|
});
|
|
125
|
-
await
|
|
126
|
-
|
|
125
|
+
await _chunkUKBFNBDOcjs.openChromeContinuation.call(void 0,
|
|
126
|
+
_chunkUKBFNBDOcjs.buildChromeOpenUrl.call(void 0, { installUrl: _optionalChain([ctx, 'access', _19 => _19.config, 'optionalAccess', _20 => _20.chrome, 'optionalAccess', _21 => _21.installUrl]) }),
|
|
127
127
|
_nullishCoalesce(_optionalChain([ctx, 'access', _22 => _22.config, 'optionalAccess', _23 => _23.chrome, 'optionalAccess', _24 => _24.browser]), () => ( "auto")),
|
|
128
128
|
{ userDataDir: _optionalChain([ctx, 'access', _25 => _25.config, 'optionalAccess', _26 => _26.chrome, 'optionalAccess', _27 => _27.userDataDir]), profileDirectory: _optionalChain([ctx, 'access', _28 => _28.config, 'optionalAccess', _29 => _29.chrome, 'optionalAccess', _30 => _30.profileDirectory]) }
|
|
129
129
|
);
|
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
showInput,
|
|
4
4
|
showModal,
|
|
5
5
|
showPassword
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LOSXLH7P.js";
|
|
7
7
|
import {
|
|
8
8
|
saveConfig
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CM24K6ZT.js";
|
|
10
10
|
import {
|
|
11
11
|
t
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/settings.ts
|
|
15
15
|
import chalk from "chalk";
|
|
@@ -33,6 +33,30 @@ var SETTING_KEY_ALIASES = {
|
|
|
33
33
|
ui_activity_verbs: "ui.activityVerbsEnabled",
|
|
34
34
|
ui_verbs_activity: "ui.activityVerbsEnabled"
|
|
35
35
|
};
|
|
36
|
+
var CONFIG_PROVIDER_NAMES = [
|
|
37
|
+
"openrouter",
|
|
38
|
+
"ollama",
|
|
39
|
+
"llamacpp",
|
|
40
|
+
"openai",
|
|
41
|
+
"mlx",
|
|
42
|
+
"llmgateway",
|
|
43
|
+
"azure",
|
|
44
|
+
"zai",
|
|
45
|
+
"vertexai",
|
|
46
|
+
"xai",
|
|
47
|
+
"cerebras",
|
|
48
|
+
"nvidia",
|
|
49
|
+
"deepseek",
|
|
50
|
+
"bedrock"
|
|
51
|
+
];
|
|
52
|
+
var PROVIDER_CONFIG_FIELD_ALIASES = {
|
|
53
|
+
apiKey: "apiKey",
|
|
54
|
+
api_key: "apiKey",
|
|
55
|
+
apikey: "apiKey",
|
|
56
|
+
baseUrl: "baseUrl",
|
|
57
|
+
base_url: "baseUrl",
|
|
58
|
+
model: "model"
|
|
59
|
+
};
|
|
36
60
|
var SETTING_CATEGORIES = [
|
|
37
61
|
{ id: "ui", labelKey: "commands.settings.categories.ui" },
|
|
38
62
|
{ id: "agent", labelKey: "commands.settings.categories.agent" },
|
|
@@ -57,10 +81,12 @@ var SETTINGS_REGISTRY = [
|
|
|
57
81
|
{ key: "ui.promptSuggestions", labelKey: "commands.settings.ui.promptSuggestions", descriptionKey: "commands.settings.ui.promptSuggestionsDesc", category: "ui", type: "boolean", defaultValue: true },
|
|
58
82
|
{ key: "ui.activityVerbsEnabled", labelKey: "commands.settings.ui.activityVerbsEnabled", descriptionKey: "commands.settings.ui.activityVerbsEnabledDesc", category: "ui", type: "boolean", defaultValue: true },
|
|
59
83
|
{ key: "ui.activitySymbol", labelKey: "commands.settings.ui.activitySymbol", descriptionKey: "commands.settings.ui.activitySymbolDesc", category: "ui", type: "string", defaultValue: "\u2733" },
|
|
84
|
+
{ key: "ui.statusLine", labelKey: "commands.settings.ui.statusLine", descriptionKey: "commands.settings.ui.statusLineDesc", category: "ui", type: "string", redirect: "/statusline" },
|
|
60
85
|
{ key: "ui.updateCheckInterval", labelKey: "commands.settings.ui.updateCheckInterval", descriptionKey: "commands.settings.ui.updateCheckIntervalDesc", category: "ui", type: "number", defaultValue: 24 },
|
|
61
86
|
// Agent Behavior
|
|
62
87
|
{ key: "agent.maxIterations", labelKey: "commands.settings.agent.maxIterations", descriptionKey: "commands.settings.agent.maxIterationsDesc", category: "agent", type: "number", defaultValue: 100 },
|
|
63
88
|
{ key: "agent.enableRequestQueue", labelKey: "commands.settings.agent.enableRequestQueue", descriptionKey: "commands.settings.agent.enableRequestQueueDesc", category: "agent", type: "boolean", defaultValue: true },
|
|
89
|
+
{ key: "agent.idleLogoutEnabled", labelKey: "commands.settings.agent.idleLogoutEnabled", descriptionKey: "commands.settings.agent.idleLogoutEnabledDesc", category: "agent", type: "boolean", defaultValue: true },
|
|
64
90
|
{ key: "agent.sessionRetryLimit", labelKey: "commands.settings.agent.sessionRetryLimit", descriptionKey: "commands.settings.agent.sessionRetryLimitDesc", category: "agent", type: "number", defaultValue: 3 },
|
|
65
91
|
{ key: "agent.sessionRetryDelay", labelKey: "commands.settings.agent.sessionRetryDelay", descriptionKey: "commands.settings.agent.sessionRetryDelayDesc", category: "agent", type: "number", defaultValue: 1e3 },
|
|
66
92
|
{ key: "agent.debug", labelKey: "commands.settings.agent.debug", descriptionKey: "commands.settings.agent.debugDesc", category: "agent", type: "boolean", defaultValue: false },
|
|
@@ -119,6 +145,38 @@ function normalizeSettingKey(input) {
|
|
|
119
145
|
}
|
|
120
146
|
return trimmed;
|
|
121
147
|
}
|
|
148
|
+
function normalizeProviderName(input) {
|
|
149
|
+
const normalized = input.trim().toLowerCase();
|
|
150
|
+
if (normalized === "vertex") {
|
|
151
|
+
return "vertexai";
|
|
152
|
+
}
|
|
153
|
+
if (CONFIG_PROVIDER_NAMES.includes(normalized)) {
|
|
154
|
+
return normalized;
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
function normalizeProviderConfigKey(input) {
|
|
159
|
+
const [providerInput, fieldInput, ...extra] = input.trim().replace(/\s+/g, ".").split(".");
|
|
160
|
+
if (providerInput && fieldInput && extra.length === 0) {
|
|
161
|
+
const provider = normalizeProviderName(providerInput);
|
|
162
|
+
const field = PROVIDER_CONFIG_FIELD_ALIASES[fieldInput];
|
|
163
|
+
if (provider && field) {
|
|
164
|
+
return { provider, field };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const underscoreInput = input.trim();
|
|
168
|
+
for (const providerName of CONFIG_PROVIDER_NAMES) {
|
|
169
|
+
const prefix = `${providerName}_`;
|
|
170
|
+
if (!underscoreInput.startsWith(prefix)) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
const field = PROVIDER_CONFIG_FIELD_ALIASES[underscoreInput.slice(prefix.length)];
|
|
174
|
+
if (field) {
|
|
175
|
+
return { provider: providerName, field };
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
122
180
|
function parseBooleanSetting(value) {
|
|
123
181
|
const normalized = value.trim().toLowerCase();
|
|
124
182
|
if (["true", "1", "yes", "y", "on"].includes(normalized)) {
|
|
@@ -154,6 +212,25 @@ function parseSettingValue(setting, rawValue) {
|
|
|
154
212
|
}
|
|
155
213
|
function setConfigSetting(config, keyInput, rawValue) {
|
|
156
214
|
const key = normalizeSettingKey(keyInput);
|
|
215
|
+
if (key === "provider") {
|
|
216
|
+
const provider = normalizeProviderName(rawValue);
|
|
217
|
+
if (!provider) {
|
|
218
|
+
throw new Error(`Unknown provider "${rawValue}". Use /settings to browse provider setup.`);
|
|
219
|
+
}
|
|
220
|
+
config.provider = provider;
|
|
221
|
+
return { key: "provider", value: provider };
|
|
222
|
+
}
|
|
223
|
+
const providerConfigKey = normalizeProviderConfigKey(key);
|
|
224
|
+
if (providerConfigKey) {
|
|
225
|
+
const current = config[providerConfigKey.provider];
|
|
226
|
+
const providerConfig = current && typeof current === "object" ? current : {};
|
|
227
|
+
setNestedValue(providerConfig, providerConfigKey.field, rawValue);
|
|
228
|
+
setNestedValue(config, providerConfigKey.provider, providerConfig);
|
|
229
|
+
return {
|
|
230
|
+
key: `${providerConfigKey.provider}.${providerConfigKey.field}`,
|
|
231
|
+
value: rawValue
|
|
232
|
+
};
|
|
233
|
+
}
|
|
157
234
|
const setting = SETTINGS_REGISTRY.find((s) => s.key === key);
|
|
158
235
|
if (!setting) {
|
|
159
236
|
throw new Error(`Unknown setting "${keyInput}". Use /settings to browse configurable settings.`);
|
|
@@ -173,6 +250,10 @@ function parseConfigSetArgs(parts) {
|
|
|
173
250
|
const key = parts.slice(0, -1).join(" ");
|
|
174
251
|
return { key, value };
|
|
175
252
|
}
|
|
253
|
+
function formatConfigSetResult(result) {
|
|
254
|
+
const displayValue = result.key.toLowerCase().endsWith("apikey") ? "****" : String(result.value);
|
|
255
|
+
return `Set ${result.key} = ${displayValue}`;
|
|
256
|
+
}
|
|
176
257
|
function getSettingsForCategory(category) {
|
|
177
258
|
return SETTINGS_REGISTRY.filter((s) => s.category === category);
|
|
178
259
|
}
|
|
@@ -338,6 +419,7 @@ export {
|
|
|
338
419
|
parseSettingValue,
|
|
339
420
|
setConfigSetting,
|
|
340
421
|
parseConfigSetArgs,
|
|
422
|
+
formatConfigSetResult,
|
|
341
423
|
getSettingsForCategory,
|
|
342
424
|
formatSettingValue,
|
|
343
425
|
editSetting,
|