autohand-cli 0.8.3 → 0.9.1
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 +191 -74
- package/dist/{AgentRegistry-ODDXPAFR.js → AgentRegistry-GOV7FN2O.js} +2 -2
- package/dist/AgentRegistry-J2C6JBZ3.cjs +10 -0
- package/dist/{AutomodeManager-EOVHGRPP.js → AutomodeManager-APLLPEYJ.js} +31 -17
- package/dist/{AutomodeManager-6ATBE7Q5.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
- package/dist/CommunitySkillsCache-22BB3J6H.cjs +8 -0
- package/dist/{CommunitySkillsCache-QLE57BN5.js → CommunitySkillsCache-ZACDPD4J.js} +2 -2
- package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
- package/dist/{GitHubRegistryFetcher-NT5GFZXS.js → GitHubRegistryFetcher-J2BWPXJF.js} +1 -1
- package/dist/{HookManager-B2F35M27.js → HookManager-2S6AHOC3.js} +1 -1
- package/dist/{HookManager-PFAFE3FK.cjs → HookManager-TVEQI5ZU.cjs} +2 -2
- package/dist/{ImportWizard-OHRKBANZ.js → ImportWizard-AEBMAKXE.js} +33 -9
- package/dist/{ImportWizard-CJRZPPHL.cjs → ImportWizard-AF2XL6DS.cjs} +37 -13
- package/dist/LearnAdvisor-KKEQ5QCV.js +9 -0
- package/dist/LearnAdvisor-Q7RAYLPF.cjs +9 -0
- package/dist/{McpClientManager-NQ3EW2IF.cjs → McpClientManager-BNSKLHIN.cjs} +2 -2
- package/dist/{McpClientManager-VBIMGKXU.js → McpClientManager-SL35BR24.js} +1 -1
- package/dist/MemoryManager-PMNAEZMB.cjs +8 -0
- package/dist/{MemoryManager-2LAT7IHS.js → MemoryManager-QZRLTUB5.js} +2 -2
- package/dist/NVIDIAProvider-C3FWQOBZ.cjs +14 -0
- package/dist/NVIDIAProvider-SJPY3ONR.js +14 -0
- package/dist/{PermissionManager-7NQHRCHY.js → PermissionManager-MT7KBNNR.js} +3 -3
- package/dist/PermissionManager-URCNP5EC.cjs +11 -0
- package/dist/{ProjectProfiler-UG42W6WD.cjs → ProjectProfiler-CDAE7ECW.cjs} +1 -0
- package/dist/{ProjectProfiler-P4QJQWWA.js → ProjectProfiler-NZTJDRHD.js} +1 -0
- package/dist/ProviderFactory-56N3ECE4.cjs +12 -0
- package/dist/{ProviderFactory-2IYJ5OPW.js → ProviderFactory-RB4RVAF6.js} +4 -1
- package/dist/SessionManager-2IZGWASQ.cjs +10 -0
- package/dist/{SessionManager-4U4JFQ3C.js → SessionManager-554PHVPC.js} +2 -2
- package/dist/SkillsRegistry-GMRVONOQ.cjs +9 -0
- package/dist/{SkillsRegistry-RFEINXRT.js → SkillsRegistry-NHHMIUYJ.js} +2 -2
- package/dist/SubAgent-4GOR2FIJ.js +13 -0
- package/dist/SubAgent-ZJMDH4FI.cjs +13 -0
- package/dist/{SyncApiClient-B5RT2ECG.js → SyncApiClient-G3FM65IV.js} +1 -1
- package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
- package/dist/about-3USFSGOH.js +15 -0
- package/dist/about-QR52U5DD.cjs +15 -0
- package/dist/acp-5Y2W6OZP.js +1556 -0
- package/dist/acp-GSYE75OB.cjs +1556 -0
- package/dist/actionExecutor-KHUU3Z3Q.cjs +28 -0
- package/dist/actionExecutor-PLQJZLZV.js +28 -0
- package/dist/add-dir-BTAD5OZS.cjs +11 -0
- package/dist/{add-dir-TUJM3PG5.js → add-dir-HCERJDBR.js} +3 -2
- package/dist/agent-B3EVT7NN.cjs +126 -0
- package/dist/agent-SATQ3WZ3.js +126 -0
- package/dist/agents/builtin/code-cleaner.md +1 -1
- package/dist/agents/builtin/docs-writer.md +1 -1
- package/dist/agents/builtin/researcher.md +2 -2
- package/dist/agents/builtin/reviewer.md +1 -1
- package/dist/agents/builtin/tester.md +1 -1
- package/dist/agents/builtin/todo-resolver.md +1 -1
- package/dist/agents-44CRJGM7.cjs +18 -0
- package/dist/agents-NN4ZAJ7R.js +18 -0
- package/dist/agents-new-6D6G4QS6.cjs +17 -0
- package/dist/agents-new-7GAQ25EK.js +17 -0
- package/dist/{autoSkill-LQEVQFIH.js → autoSkill-66PKCYTW.js} +2 -2
- package/dist/autoSkill-VQLGBELN.cjs +20 -0
- package/dist/automode-45DWV4TN.cjs +10 -0
- package/dist/{automode-R6P3VHLS.js → automode-BUF3VGXU.js} +2 -2
- package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
- package/dist/browserToolBridge-F5N66PE7.js +58 -0
- package/dist/chrome-Q2U73HZB.cjs +50 -0
- package/dist/chrome-Q54OALOK.cjs +21 -0
- package/dist/chrome-Y3T7EIHG.js +50 -0
- package/dist/chrome-ZNJ46OYW.js +21 -0
- package/dist/chromeSkill-53TH55PM.js +105 -0
- package/dist/chromeSkill-THW7N4IY.cjs +105 -0
- package/dist/{chunk-HXGBSJL5.cjs → chunk-22SCR3EV.cjs} +2 -2
- package/dist/chunk-26G7YGOW.js +367 -0
- package/dist/{chunk-3L53OA4E.cjs → chunk-2ESQR35E.cjs} +10 -10
- package/dist/chunk-2H5O745H.js +63 -0
- package/dist/{chunk-ULDM2SNB.js → chunk-2IW5YFJ4.js} +48 -47
- package/dist/{chunk-U55TWFJI.cjs → chunk-2VHB43IX.cjs} +24 -6
- package/dist/chunk-3EDDDZS2.cjs +5 -0
- package/dist/{chunk-X5VSP65C.cjs → chunk-3ICORF7M.cjs} +4 -4
- package/dist/chunk-3OF56EMA.cjs +197 -0
- package/dist/chunk-3UC6DMFI.cjs +93 -0
- package/dist/{chunk-64H4FRM3.cjs → chunk-3UHRCHKB.cjs} +32 -34
- package/dist/{chunk-JCLYQ2JC.js → chunk-3ZOOH44N.js} +12 -6
- package/dist/{chunk-TUD3Z3BD.js → chunk-44ZWOBTI.js} +136 -55
- package/dist/chunk-4567QNRB.js +444 -0
- package/dist/chunk-45CHNQM6.cjs +517 -0
- package/dist/chunk-46MTALKD.js +44 -0
- package/dist/{chunk-WHE2SWHU.js → chunk-4E7SHPNQ.js} +2 -2
- package/dist/chunk-4LMUDS2K.js +124 -0
- package/dist/{chunk-W7RYQJLO.cjs → chunk-4XFHP2SN.cjs} +46 -15
- package/dist/chunk-4XVLNOFA.js +360 -0
- package/dist/{chunk-GBHDROGL.js → chunk-575PXZX7.js} +16 -4
- package/dist/chunk-5A7ZL64N.js +139 -0
- package/dist/chunk-5GCQ5UMV.cjs +85 -0
- package/dist/chunk-5JTTM5SC.js +59 -0
- package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
- package/dist/{chunk-KLWJIPU2.cjs → chunk-5SFV2NCY.cjs} +20 -16
- package/dist/chunk-5ZNYX4VH.cjs +71 -0
- package/dist/{chunk-A4IJHHV7.cjs → chunk-63ANVAOJ.cjs} +52 -11
- package/dist/{chunk-MYISNQH4.js → chunk-65LRPW5W.js} +1 -1
- package/dist/chunk-6AYJCDTA.js +360 -0
- package/dist/{chunk-X2MSVKDV.js → chunk-6HF6XSCC.js} +2 -2
- package/dist/{chunk-AEJH23FO.cjs → chunk-6JWCGQJU.cjs} +6 -6
- package/dist/chunk-6OECOAK5.cjs +360 -0
- package/dist/chunk-6R25D2H5.js +121 -0
- package/dist/chunk-7DJJGKM6.js +77 -0
- package/dist/{chunk-VG34MG2U.js → chunk-7IRQ7JEH.js} +9 -6
- package/dist/chunk-7MY4JHER.js +27 -0
- package/dist/chunk-7PJKTSRN.js +152 -0
- package/dist/{chunk-SKYG33B2.cjs → chunk-7PT646AL.cjs} +3 -3
- package/dist/chunk-7WAUCLLQ.js +229 -0
- package/dist/{chunk-U46VYPLR.cjs → chunk-7XTUL7ZD.cjs} +9 -9
- package/dist/chunk-AE2ILW25.cjs +152 -0
- package/dist/{chunk-T2M64VHA.cjs → chunk-AOKXYGBQ.cjs} +61 -41
- package/dist/chunk-AQ5PVHOC.cjs +113 -0
- package/dist/{chunk-N2BLVUPM.cjs → chunk-AZ47LKD5.cjs} +3 -3
- package/dist/chunk-B4HSNOIH.cjs +354 -0
- package/dist/chunk-B76FJKEJ.cjs +184 -0
- package/dist/chunk-BP37FVBM.js +85 -0
- package/dist/chunk-BQU3HAE7.js +21 -0
- package/dist/chunk-BYE7RQFZ.cjs +121 -0
- package/dist/chunk-C46B72VK.js +1034 -0
- package/dist/{chunk-HIVRCQS2.js → chunk-C5QIQQ37.js} +56 -25
- package/dist/chunk-CCIDL4SA.js +19931 -0
- package/dist/{chunk-XVUHNWMX.js → chunk-CECH6QQP.js} +17 -19
- package/dist/chunk-CFAWTLSC.js +13 -0
- package/dist/{chunk-ZYQMLKOK.cjs → chunk-CK4HAHVY.cjs} +212 -70
- package/dist/chunk-CO2AADYU.cjs +360 -0
- package/dist/chunk-CRTCZ4WL.cjs +19931 -0
- package/dist/chunk-CSTUTDTH.js +75 -0
- package/dist/{chunk-K2C56QGS.cjs → chunk-D546G7DA.cjs} +1650 -479
- package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
- package/dist/{chunk-G4CAKI3V.js → chunk-DGBPWODD.js} +7 -2
- package/dist/chunk-DHUQZ53B.cjs +29 -0
- package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
- package/dist/{chunk-5K6NGAVM.js → chunk-DNSD7DVJ.js} +67 -52
- package/dist/{chunk-RDF37HKB.cjs → chunk-DSSCERHI.cjs} +3 -2
- package/dist/{chunk-NAJ4IZKD.cjs → chunk-EA2MS25U.cjs} +8 -6
- package/dist/{chunk-SJAVBCOA.js → chunk-EEHWALXA.js} +94 -3
- package/dist/chunk-ES2HJQ4N.js +37 -0
- package/dist/{chunk-G27PQQFD.js → chunk-EYHKL4QC.js} +1 -1
- package/dist/{chunk-SV2WA57F.js → chunk-FBQJZKFX.js} +38 -15
- package/dist/chunk-FFBDRUO5.cjs +59 -0
- package/dist/{chunk-N7LI55V4.js → chunk-FFHSCM5M.js} +15 -8
- package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
- package/dist/chunk-FQVG6ZHF.js +197 -0
- package/dist/{chunk-J2GSFVUV.cjs → chunk-GAOPJ5S3.cjs} +74 -59
- package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
- package/dist/chunk-GSDV75A5.js +715 -0
- package/dist/chunk-GWY26SUD.cjs +63 -0
- package/dist/{chunk-TUAITHWL.js → chunk-H426KOGY.js} +2 -1
- package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
- package/dist/chunk-HC2Q6A3E.cjs +4967 -0
- package/dist/{chunk-3WVJEL7K.cjs → chunk-HDK2EHVH.cjs} +3 -1
- package/dist/{chunk-5IXII4HX.cjs → chunk-HG3ZASBH.cjs} +23 -16
- package/dist/chunk-HK5A54AV.cjs +280 -0
- package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
- package/dist/chunk-HSWWM6AM.js +2340 -0
- package/dist/chunk-HTU4W3GB.js +183 -0
- package/dist/{chunk-HLHTG5ZU.cjs → chunk-HVCIB4SW.cjs} +14 -12
- package/dist/chunk-HXHE2KAO.js +385 -0
- package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
- package/dist/{chunk-SLQAYV3W.js → chunk-HZWU6IO3.js} +11 -2
- package/dist/chunk-I2ZK3AOD.js +866 -0
- package/dist/chunk-IEPLQ47J.js +719 -0
- package/dist/chunk-J5HE6CUM.cjs +124 -0
- package/dist/{chunk-LIEXWM2M.js → chunk-JAQO6XDB.js} +19 -1
- package/dist/chunk-JB3JCYBJ.js +113 -0
- package/dist/chunk-JCUHCH37.cjs +247 -0
- package/dist/{chunk-FPHU2ES6.cjs → chunk-JM3ZTQUK.cjs} +19 -9
- package/dist/{chunk-NDMIPTV4.js → chunk-JMJRFSNJ.js} +8 -3
- package/dist/{chunk-ZLSGXMGQ.js → chunk-JMN3GZU6.js} +2 -0
- package/dist/chunk-JPFRI4L4.js +4967 -0
- package/dist/{chunk-BVKXEQVG.cjs → chunk-JV5HVCHU.cjs} +22 -10
- package/dist/chunk-KA2U6MY2.js +388 -0
- package/dist/{chunk-SEKD5FH3.cjs → chunk-KASXKDF2.cjs} +8 -3
- package/dist/chunk-KJ26T7GM.cjs +367 -0
- package/dist/chunk-KM7R5YPS.cjs +385 -0
- package/dist/{chunk-MBBY4ZIK.js → chunk-KMP6Y3LJ.js} +4 -1
- package/dist/chunk-KWXGDSYT.js +184 -0
- package/dist/{chunk-C5IJIM2V.cjs → chunk-L46OUKW5.cjs} +68 -37
- package/dist/{chunk-6UJMCWRY.js → chunk-L6OH44HL.js} +19 -9
- package/dist/chunk-LANGD5CO.js +280 -0
- package/dist/{chunk-APIXPPMT.js → chunk-LEZEWKPA.js} +1004 -39
- package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
- package/dist/chunk-LJD7KR3L.cjs +44 -0
- package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
- package/dist/{chunk-QXH5RCFI.js → chunk-M5DK524Z.js} +2 -2
- package/dist/chunk-M7B7RRBK.cjs +1034 -0
- package/dist/chunk-MANJ67D3.js +3897 -0
- package/dist/{chunk-HPHJ73GU.cjs → chunk-MGNXABSU.cjs} +9 -9
- package/dist/{chunk-6ZCULLCA.js → chunk-MMKZSJUN.js} +1 -1
- package/dist/{chunk-DVUHHH3B.cjs → chunk-MQQH4XQH.cjs} +4 -4
- package/dist/chunk-MUNUUFU7.cjs +21 -0
- package/dist/{chunk-DVZOENQ7.cjs → chunk-MZN6JBRZ.cjs} +9 -4
- package/dist/{chunk-OOKY3HPZ.js → chunk-NB6M6ESM.js} +50 -9
- package/dist/{chunk-BYONM7UM.js → chunk-NBGOIFKP.js} +265 -18
- package/dist/chunk-NHWHEW7M.cjs +75 -0
- package/dist/chunk-NQZH5CR2.cjs +468 -0
- package/dist/{chunk-EGPXJERY.cjs → chunk-NV6LCD2I.cjs} +119 -28
- package/dist/chunk-NVATU4V6.cjs +44 -0
- package/dist/{chunk-YZXUDM5X.js → chunk-NZ3ZWLUW.js} +204 -62
- package/dist/chunk-NZ7GCK7Y.cjs +92 -0
- package/dist/{chunk-VEKDGU2Q.cjs → chunk-NZQFKXM3.cjs} +49 -25
- package/dist/chunk-O5GI6SR3.js +59 -0
- package/dist/{chunk-56SWIDEL.cjs → chunk-OCATAKXV.cjs} +57 -56
- package/dist/{chunk-SKV2F3NM.js → chunk-OIGYWOL6.js} +1 -1
- package/dist/{chunk-IFFXSTOM.cjs → chunk-ONVYXTUT.cjs} +3 -3
- package/dist/chunk-OR67YXQK.cjs +13 -0
- package/dist/chunk-OV3T5MUH.cjs +715 -0
- package/dist/{chunk-OHUZKDGX.js → chunk-P4FUTSVK.js} +3 -3
- package/dist/chunk-P6SLT2F4.cjs +139 -0
- package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
- package/dist/chunk-PCM3N3CL.cjs +37 -0
- package/dist/{chunk-2AA5MFES.js → chunk-PGFLPURU.js} +8 -5
- package/dist/{chunk-DJDE4DTT.cjs → chunk-PIXQ2AVM.cjs} +25 -19
- package/dist/chunk-PNIAIOMZ.cjs +229 -0
- package/dist/{chunk-HTLINWX6.cjs → chunk-PQBYFEBL.cjs} +16 -13
- package/dist/{chunk-22D2CNTP.cjs → chunk-PSAH4ZQB.cjs} +5 -2
- package/dist/{chunk-3VTAFAL2.js → chunk-PTTZI4QZ.js} +16 -12
- package/dist/{chunk-WPVWQSL7.cjs → chunk-PY73W5MQ.cjs} +16 -13
- package/dist/{chunk-EGMZDTSL.js → chunk-PZZMIYII.js} +10 -2
- package/dist/{chunk-HBZU3RBZ.js → chunk-Q3BS6FPM.js} +34 -10
- package/dist/chunk-QBYGMMDD.js +517 -0
- package/dist/chunk-QLZOMZO5.cjs +388 -0
- package/dist/{chunk-ADUFCS4Q.cjs → chunk-QQ64HEHP.cjs} +160 -79
- package/dist/{chunk-L3TWPROA.js → chunk-QRQF3556.js} +44 -24
- package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
- package/dist/chunk-RAKO7UN7.js +114 -0
- package/dist/{chunk-7TQH3CL4.cjs → chunk-RBXBH6EB.cjs} +78 -35
- package/dist/chunk-RFUKZIJF.cjs +78 -0
- package/dist/chunk-RS2E32YB.js +71 -0
- package/dist/{chunk-OLSBBZW6.cjs → chunk-S5JNQIGL.cjs} +5 -5
- package/dist/{chunk-FTYY5JJD.js → chunk-S5QKRA2V.js} +2 -2
- package/dist/chunk-SD3NTC7D.cjs +77 -0
- package/dist/{chunk-KPELYZ6L.js → chunk-SDLY4X3G.js} +2 -2
- package/dist/{chunk-IDFF5J2E.js → chunk-SFFEKZGC.js} +38 -7
- package/dist/{chunk-EGFT4PGW.js → chunk-SHRLFX6F.js} +8 -3
- package/dist/{chunk-3WICOC33.js → chunk-SNDDZG5H.js} +124 -84
- package/dist/{chunk-CZXGCVTR.cjs → chunk-SOVR7S3T.cjs} +2 -2
- package/dist/chunk-SPQ7QIQ6.js +78 -0
- package/dist/{chunk-XRZEUWKF.js → chunk-SRMGWMQO.js} +1 -1
- package/dist/{chunk-R33VKSH5.cjs → chunk-SVVP4UUZ.cjs} +11 -11
- package/dist/{chunk-7BTSG4ME.cjs → chunk-SY2P3Z5W.cjs} +1004 -39
- package/dist/chunk-SZD45IDG.js +468 -0
- package/dist/{chunk-3O3MOK5C.cjs → chunk-TE4SYTWR.cjs} +1114 -142
- package/dist/chunk-TH26BQJG.js +101 -0
- package/dist/{chunk-QNGEW5TC.js → chunk-TR6NECEZ.js} +1 -1
- package/dist/{chunk-YGN4CQIP.js → chunk-TYBPTKFT.js} +1 -1
- package/dist/{chunk-GJH7XMSK.js → chunk-U2QUMKCB.js} +8 -6
- package/dist/{chunk-47CKWKEX.cjs → chunk-U6PLSPMD.cjs} +9 -4
- package/dist/chunk-UOQECODR.js +34 -0
- package/dist/chunk-UR27UDTB.js +354 -0
- package/dist/chunk-UWZ4G3SQ.js +93 -0
- package/dist/{chunk-Y72HH2TF.cjs → chunk-V3SZLWEQ.cjs} +33 -24
- package/dist/chunk-V4HGZSKQ.cjs +183 -0
- package/dist/{chunk-3PDTTAKJ.js → chunk-V5ELP2XE.js} +19 -12
- package/dist/{chunk-3K2ESU53.cjs → chunk-VKOXFT4L.cjs} +2 -2
- package/dist/{chunk-XTB6VJVQ.cjs → chunk-VLGGMQUN.cjs} +6 -6
- package/dist/chunk-VQHSYAPZ.cjs +3897 -0
- package/dist/chunk-VUGOOGHB.js +400 -0
- package/dist/chunk-W5QLA6WP.cjs +866 -0
- package/dist/chunk-WBU4Q4GS.cjs +400 -0
- package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
- package/dist/chunk-WJYFLQ7G.cjs +27 -0
- package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
- package/dist/{chunk-ZSPXQYG2.js → chunk-WNJXIACY.js} +7 -5
- package/dist/{chunk-AYS2ASM7.js → chunk-WPE2XHVX.js} +1 -1
- package/dist/chunk-WTB7AFL6.cjs +101 -0
- package/dist/{chunk-JYTDYJVW.js → chunk-X3TI5TJJ.js} +1 -1
- package/dist/chunk-X5P6QQOB.cjs +719 -0
- package/dist/{chunk-245KJE5Y.cjs → chunk-X7XMITIL.cjs} +14 -6
- package/dist/chunk-XF2WIKHR.cjs +34 -0
- package/dist/{chunk-DV2ZHK7B.cjs → chunk-XNIMSVS6.cjs} +49 -26
- package/dist/chunk-XW3XCK4E.cjs +59 -0
- package/dist/{chunk-N23UAW4I.js → chunk-XZVDYC5U.js} +7 -2
- package/dist/chunk-Y5BDE24P.cjs +444 -0
- package/dist/{chunk-NAGQ2PDC.js → chunk-YC5OBZQU.js} +1604 -433
- package/dist/chunk-YISPVAXO.cjs +2340 -0
- package/dist/{chunk-KQGPTCQJ.js → chunk-YQDI753V.js} +68 -25
- package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
- package/dist/{chunk-NNPAM4HC.cjs → chunk-YWH55BWK.cjs} +15 -6
- package/dist/{chunk-X2YOZQIP.cjs → chunk-YWTIXHU6.cjs} +266 -19
- package/dist/{chunk-XX2ZO7DS.js → chunk-YXM6SA7P.js} +25 -16
- package/dist/chunk-YZWE7XSM.js +5 -0
- package/dist/chunk-ZASDSY7P.cjs +114 -0
- package/dist/{chunk-2UC22DJU.js → chunk-ZNGRLCFQ.js} +30 -4
- package/dist/{chunk-KANW6OYC.cjs → chunk-ZNYZB7XY.cjs} +34 -8
- package/dist/{chunk-NA6WQDYW.js → chunk-ZPLCAXJW.js} +1088 -116
- package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
- package/dist/chunk-ZUYYHKQA.js +44 -0
- package/dist/clear-QJXU25IF.cjs +12 -0
- package/dist/{clear-A3N4GK2S.js → clear-Y5TO3RZA.js} +3 -3
- package/dist/communityInstaller-LXMVKVAV.cjs +22 -0
- package/dist/{communityInstaller-LOP2EDH5.js → communityInstaller-RVL4STPS.js} +8 -5
- package/dist/completion-JX4T2ONW.cjs +17 -0
- package/dist/completion-SE3XYG74.js +17 -0
- package/dist/config-3224PRW4.cjs +21 -0
- package/dist/{config-HPJPKTO6.js → config-7KPHKFTP.js} +7 -4
- package/dist/{constants-LISJW3DD.js → constants-EJFAWJQI.js} +1 -1
- package/dist/constants-MCCGUU5F.cjs +21 -0
- package/dist/{defaultHooks-IHSJR2AX.cjs → defaultHooks-2V2CQL63.cjs} +25 -10
- package/dist/{defaultHooks-KUKHK3AG.js → defaultHooks-TMHDU3FS.js} +25 -10
- package/dist/export-BJVIDZC4.js +15 -0
- package/dist/export-KU4557HK.cjs +15 -0
- package/dist/feature-K3LG5IJP.cjs +14 -0
- package/dist/feature-V4JF5TNJ.js +14 -0
- package/dist/features-5OJTLKS7.js +23 -0
- package/dist/features-VCBJQXCX.cjs +23 -0
- package/dist/feedback-D4437VE4.js +18 -0
- package/dist/feedback-VZPEHGFY.cjs +18 -0
- package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
- package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
- package/dist/{filesystem-Z7BWAWMZ.js → filesystem-L6DQKGWK.js} +3 -2
- package/dist/filesystem-PGUPCMVK.cjs +11 -0
- package/dist/go-X4E6BCD6.js +12 -0
- package/dist/go-XREVFS5I.cjs +12 -0
- package/dist/goal-4M3J6JS2.cjs +16 -0
- package/dist/goal-EI66BV7W.js +16 -0
- package/dist/help-GGFS7WHY.cjs +12 -0
- package/dist/{help-GFQXNZOK.js → help-MLIROWKM.js} +2 -2
- package/dist/{history-E3N6BJP7.js → history-GQJ6RZD6.js} +2 -2
- package/dist/history-J4LUIOSI.cjs +14 -0
- package/dist/hooks-FSRIUS6A.cjs +18 -0
- package/dist/hooks-PPFHCF7T.js +18 -0
- package/dist/i18n-CI6VFXL5.cjs +33 -0
- package/dist/{i18n-SY7QRM22.js → i18n-Q7UZJRPL.js} +1 -1
- package/dist/ide-BUSVE54P.js +15 -0
- package/dist/ide-YR27BPGM.cjs +15 -0
- package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
- package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
- package/dist/{import-W7SVLSTC.js → import-3VBKI6BN.js} +3 -3
- package/dist/{import-ADI37ZUR.cjs → import-C7S6UJMW.cjs} +3 -3
- package/dist/import-DBK4OCDF.cjs +10 -0
- package/dist/{import-KGKKZ3B7.js → import-U47DXCA7.js} +2 -2
- package/dist/index.cjs +837 -23011
- package/dist/index.d.cts +95 -0
- package/dist/index.d.ts +95 -0
- package/dist/index.js +864 -23038
- package/dist/init-OXTYS72D.cjs +10 -0
- package/dist/{init-7MFK626E.js → init-Q2O4R42R.js} +2 -2
- package/dist/inkMode-VUE6ZDLD.cjs +7 -0
- package/dist/inkMode-WBNFOSAT.js +7 -0
- package/dist/inputPrompt-3CFZDUBH.js +90 -0
- package/dist/inputPrompt-JMACL4EB.cjs +90 -0
- package/dist/language-EK3M6UBV.cjs +22 -0
- package/dist/language-Q3RUGGOW.js +22 -0
- package/dist/learn-3DSX7DYG.cjs +23 -0
- package/dist/learn-OPOH5L43.js +23 -0
- package/dist/login-GST7MWXJ.cjs +27 -0
- package/dist/login-Q7DZKAX4.js +27 -0
- package/dist/logout-2G7OUK7I.cjs +24 -0
- package/dist/logout-FNBBL2UI.js +24 -0
- package/dist/mcp-AH3MMUBU.js +21 -0
- package/dist/mcp-DW7R63IB.cjs +21 -0
- package/dist/{mcp-install-2FEROZTL.js → mcp-install-222PCKSW.js} +18 -10
- package/dist/{mcp-install-WM6BQRI5.cjs → mcp-install-IA4ZS2SV.cjs} +22 -14
- package/dist/memory-6NX3DAIY.cjs +10 -0
- package/dist/{memory-J73WZH2I.js → memory-VB46T5H3.js} +2 -2
- package/dist/model-64NAELFS.cjs +10 -0
- package/dist/{model-AES267IN.js → model-SJJG64AM.js} +2 -2
- package/dist/new-DU5SOOOY.cjs +12 -0
- package/dist/{new-5CLF3MKH.js → new-ERZ5C6CN.js} +3 -3
- package/dist/onboarding-2U2BV2KE.cjs +36 -0
- package/dist/onboarding-ZQXMPSMJ.js +36 -0
- package/dist/permissions-7ACNFK7A.js +10 -0
- package/dist/permissions-GSNNV7RJ.cjs +10 -0
- package/dist/plan-XEJMOT55.cjs +13 -0
- package/dist/{plan-65HMS5HQ.js → plan-YYUAXPTL.js} +3 -1
- package/dist/pr-review-CW6J7P62.cjs +9 -0
- package/dist/pr-review-YZSBQVT2.js +9 -0
- package/dist/{quit-XDZYRSPU.js → quit-WY6T267G.js} +2 -2
- package/dist/quit-XIRE2KRE.cjs +10 -0
- package/dist/rawMode-6W5AXAKI.cjs +7 -0
- package/dist/rawMode-GFNLXQPU.js +7 -0
- package/dist/{registry-PTHWERKC.js → registry-4DXUDKJN.js} +29 -44
- package/dist/{registry-IVT4G2RT.cjs → registry-UEO3ETZ7.cjs} +65 -80
- package/dist/repeat-P4FAPE3Y.cjs +17 -0
- package/dist/{repeat-EVCWUL6Z.js → repeat-RALE6AUO.js} +7 -3
- package/dist/resume-RQZ3WXBP.cjs +17 -0
- package/dist/resume-XSXZMDMD.js +17 -0
- package/dist/review-QHP2KP4Q.js +9 -0
- package/dist/review-UWHWQHCB.cjs +9 -0
- package/dist/ripgrep-67SCU2BA.cjs +9 -0
- package/dist/ripgrep-VHJQQ55W.js +9 -0
- package/dist/rpc-XH7QLN4H.js +3874 -0
- package/dist/rpc-YF54T7JU.cjs +3874 -0
- package/dist/search-VXXFGZWU.cjs +21 -0
- package/dist/search-YAWGX7P7.js +21 -0
- package/dist/{sessions-6GWEBMKS.js → sessions-NJYHJOEL.js} +2 -2
- package/dist/sessions-OSG3UJEZ.cjs +10 -0
- package/dist/settings-SO2UIGWV.cjs +42 -0
- package/dist/settings-ZXUQH3DO.js +42 -0
- package/dist/setup-KG7EGKF5.js +30 -0
- package/dist/setup-RSOPCQ57.cjs +30 -0
- package/dist/share-WFAGZ5PY.js +17 -0
- package/dist/share-ZU3SGACF.cjs +17 -0
- package/dist/skills-KBVAQAD2.cjs +29 -0
- package/dist/skills-NBTNDVAY.js +29 -0
- package/dist/{skills-ZZCIAS7C.js → skills-OB6RDW7D.js} +10 -7
- package/dist/{skills-PG542VEB.cjs → skills-ZROBG3RZ.cjs} +13 -10
- package/dist/{skills-install-SRC3Z2MS.js → skills-install-BHTIEMKH.js} +21 -70
- package/dist/{skills-install-67DOBPJC.cjs → skills-install-ILX6QVEF.cjs} +34 -83
- package/dist/skills-new-B45VQ2PP.cjs +18 -0
- package/dist/skills-new-YMRP2HNO.js +18 -0
- package/dist/slashCommands-53VYIBJU.js +105 -0
- package/dist/slashCommands-BG2RGGZ6.cjs +105 -0
- package/dist/status-CQ2IUOVK.cjs +24 -0
- package/dist/status-E7IGNVPC.js +24 -0
- package/dist/summarizer-DGPHE5IQ.js +17 -0
- package/dist/summarizer-JNXLUAQG.cjs +17 -0
- package/dist/sync-7C25MOT2.js +22 -0
- package/dist/{sync-VU2NSJ4O.js → sync-OCJN4ZSO.js} +3 -3
- package/dist/sync-XRP46IVG.cjs +40 -0
- package/dist/sync-ZMFVE7T4.cjs +22 -0
- package/dist/{teammate-SXRVXNQV.cjs → teammate-D77B6QRT.cjs} +31 -9
- package/dist/{teammate-SD26GR37.js → teammate-EZCMHOIL.js} +30 -8
- package/dist/templates-ARG2VRWW.cjs +11 -0
- package/dist/templates-UGVZV3KJ.js +11 -0
- package/dist/theme-KKRDE6P7.cjs +22 -0
- package/dist/theme-XF7XIWBQ.js +22 -0
- package/dist/tools-3PPTTKFV.js +9 -0
- package/dist/tools-THIQA7WC.cjs +9 -0
- package/dist/ui/questionModal.cjs +8 -5
- package/dist/ui/questionModal.js +7 -4
- package/dist/{undo-OL2EDBRY.js → undo-GNUTFXCW.js} +2 -2
- package/dist/undo-U4KN7QQM.cjs +10 -0
- package/dist/usage-QSTNSDAO.js +24 -0
- package/dist/usage-YDEMQBNQ.cjs +24 -0
- package/dist/web-3BA2WV37.cjs +37 -0
- package/dist/web-6FYGBX5K.js +37 -0
- package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
- package/dist/workspaceSafety-XOUMUBVB.js +9 -0
- package/dist/yolo-GF2YD7ZI.js +9 -0
- package/dist/yolo-OGDA7HNC.cjs +9 -0
- package/dist/yoloMode-3DJDA75U.cjs +17 -0
- package/dist/yoloMode-4JOOSU26.js +17 -0
- package/package.json +51 -49
- package/dist/AgentRegistry-HRPN6ZOF.cjs +0 -10
- package/dist/CommunitySkillsCache-KE435RAR.cjs +0 -8
- package/dist/GitHubRegistryFetcher-I45SESIL.cjs +0 -7
- package/dist/LearnAdvisor-FLBA6FDD.js +0 -9
- package/dist/LearnAdvisor-GG3CXQF3.cjs +0 -9
- package/dist/MemoryManager-2LQPIYVE.cjs +0 -8
- package/dist/PermissionManager-X57BXHJ6.cjs +0 -11
- package/dist/ProviderFactory-KPJOGQWF.cjs +0 -9
- package/dist/SessionManager-YBJAZXNO.cjs +0 -10
- package/dist/SkillsRegistry-7O72A6TZ.cjs +0 -9
- package/dist/SubAgent-JT4HZHN7.js +0 -11
- package/dist/SubAgent-VPNYDWAU.cjs +0 -11
- package/dist/SyncApiClient-HQXJL5BT.cjs +0 -11
- package/dist/about-4DB5KTHW.js +0 -12
- package/dist/about-LXAOXZFT.cjs +0 -12
- package/dist/actionExecutor-23JB2WUC.js +0 -19
- package/dist/actionExecutor-X5UEZSKH.cjs +0 -19
- package/dist/add-dir-YC37DMSF.cjs +0 -10
- package/dist/agents-YF3BSUU5.js +0 -12
- package/dist/agents-ZOUHPMYR.cjs +0 -12
- package/dist/agents-new-HSH4GQPG.js +0 -14
- package/dist/agents-new-VYUDOCE7.cjs +0 -14
- package/dist/autoSkill-X5W52WOE.cjs +0 -20
- package/dist/automode-SJGM7VEI.cjs +0 -10
- package/dist/chunk-ALYU6VTM.js +0 -105
- package/dist/chunk-B53A2NM2.js +0 -2030
- package/dist/chunk-BJXSNT46.js +0 -100
- package/dist/chunk-CB4E2T5N.cjs +0 -312
- package/dist/chunk-DNUOXBHL.js +0 -539
- package/dist/chunk-EFX2QSZX.cjs +0 -33
- package/dist/chunk-GCXYXLRA.cjs +0 -111
- package/dist/chunk-H2ZRHQQV.js +0 -33
- package/dist/chunk-HNRPK5MY.cjs +0 -85
- package/dist/chunk-HVKOZ2VP.cjs +0 -115
- package/dist/chunk-JJLYWH5Y.cjs +0 -100
- package/dist/chunk-LWUJFGOZ.js +0 -115
- package/dist/chunk-MERYP6AM.cjs +0 -539
- package/dist/chunk-MZAPWNAC.cjs +0 -207
- package/dist/chunk-NTSDP2WB.js +0 -226
- package/dist/chunk-OUZQXMHL.cjs +0 -226
- package/dist/chunk-PGESAU2W.cjs +0 -2030
- package/dist/chunk-SYVYLZZF.cjs +0 -24
- package/dist/chunk-SZOLA6FR.js +0 -111
- package/dist/chunk-VWDHR4HV.js +0 -168
- package/dist/chunk-Y45G6ZO5.cjs +0 -168
- package/dist/chunk-YRLYSQEQ.cjs +0 -105
- package/dist/chunk-ZYVS43MU.js +0 -312
- package/dist/clear-GK4IEUUS.cjs +0 -12
- package/dist/communityInstaller-XXC7RLE4.cjs +0 -19
- package/dist/completion-HWABSAEL.js +0 -14
- package/dist/completion-IUUVQG4D.cjs +0 -14
- package/dist/config-HF7WOLZF.cjs +0 -18
- package/dist/constants-PEO3P2SJ.cjs +0 -21
- package/dist/export-QJAV2FCZ.js +0 -12
- package/dist/export-XSRFXGWU.cjs +0 -12
- package/dist/feedback-4TCIL3ML.cjs +0 -15
- package/dist/feedback-SJ6VVEY3.js +0 -15
- package/dist/filesystem-W56QZUJF.cjs +0 -10
- package/dist/help-ISBVQL3S.cjs +0 -12
- package/dist/history-XQ4GTSFU.cjs +0 -14
- package/dist/hooks-CJNKJ5PF.js +0 -13
- package/dist/hooks-UTMBTAXT.cjs +0 -13
- package/dist/i18n-N7QQ7A5M.cjs +0 -33
- package/dist/ide-RTA4UJV4.js +0 -12
- package/dist/ide-VWVOLIFF.cjs +0 -12
- package/dist/immediateCommandRouter-BW34JNXL.js +0 -9
- package/dist/immediateCommandRouter-SHOVNB5X.cjs +0 -9
- package/dist/import-ZLJVONXH.cjs +0 -10
- package/dist/init-TBKAB4LZ.cjs +0 -10
- package/dist/language-MDSHEXHB.cjs +0 -18
- package/dist/language-PXTQSHIG.js +0 -18
- package/dist/learn-623TW5EK.cjs +0 -20
- package/dist/learn-BCPV7GM2.js +0 -20
- package/dist/localProjectPermissions-BHQXEWZJ.cjs +0 -18
- package/dist/localProjectPermissions-GMOUYQM6.js +0 -18
- package/dist/login-QMVEETWJ.js +0 -20
- package/dist/login-QYMXAL3K.cjs +0 -20
- package/dist/logout-2CMTDAOJ.js +0 -18
- package/dist/logout-ZOHVZAUK.cjs +0 -18
- package/dist/mcp-IUVKK65S.js +0 -18
- package/dist/mcp-TXC7PYG3.cjs +0 -18
- package/dist/memory-WRIHDEPK.cjs +0 -10
- package/dist/model-RLP75SF5.cjs +0 -10
- package/dist/new-HLSFL6A4.cjs +0 -12
- package/dist/permissions-GP6FTGZ2.js +0 -13
- package/dist/permissions-O6EKKPOG.cjs +0 -13
- package/dist/plan-MCAXDIM2.cjs +0 -11
- package/dist/quit-TQX6GXA5.cjs +0 -10
- package/dist/repeat-BSPS5TWD.cjs +0 -13
- package/dist/resume-2GOPDLL4.cjs +0 -13
- package/dist/resume-37IUVDA6.js +0 -13
- package/dist/search-7KUSHIBL.cjs +0 -17
- package/dist/search-OJGDRIMA.js +0 -17
- package/dist/sessions-CYYCHSQG.cjs +0 -10
- package/dist/settings-2D7CAO66.cjs +0 -30
- package/dist/settings-BXR6SBJP.js +0 -30
- package/dist/share-BXQY5IQU.js +0 -14
- package/dist/share-OSFXZBGS.cjs +0 -14
- package/dist/skills-FL6O6AOM.cjs +0 -26
- package/dist/skills-PNKQZRNK.js +0 -26
- package/dist/skills-new-XFMEHHIF.cjs +0 -15
- package/dist/skills-new-ZNZPHUKS.js +0 -15
- package/dist/slashCommands-LLCNPK3X.js +0 -76
- package/dist/slashCommands-RXZZS6RE.cjs +0 -76
- package/dist/status-BCECUJXT.cjs +0 -11
- package/dist/status-EFO7MQU3.js +0 -11
- package/dist/sync-IJYJ6KKM.js +0 -18
- package/dist/sync-LFT6SBPF.cjs +0 -18
- package/dist/sync-U7SDPBNZ.cjs +0 -40
- package/dist/theme-AWBHSG7J.cjs +0 -18
- package/dist/theme-TQLBPJ2E.js +0 -18
- package/dist/undo-IBBGP7A2.cjs +0 -10
|
@@ -2,21 +2,27 @@ import {
|
|
|
2
2
|
normalizeMcpCommandForConfig
|
|
3
3
|
} from "./chunk-WQ3VJXZB.js";
|
|
4
4
|
import {
|
|
5
|
-
I18nProvider
|
|
6
|
-
|
|
5
|
+
I18nProvider,
|
|
6
|
+
inkRenderOptions
|
|
7
|
+
} from "./chunk-HZWU6IO3.js";
|
|
7
8
|
import {
|
|
8
9
|
loadConfig,
|
|
9
10
|
saveConfig
|
|
10
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IEPLQ47J.js";
|
|
12
|
+
import {
|
|
13
|
+
ThemeProvider,
|
|
14
|
+
useTheme
|
|
15
|
+
} from "./chunk-NBGOIFKP.js";
|
|
11
16
|
import {
|
|
12
17
|
PROJECT_DIR_NAME
|
|
13
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-SHRLFX6F.js";
|
|
14
19
|
import {
|
|
15
20
|
t
|
|
16
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-LEZEWKPA.js";
|
|
17
22
|
|
|
18
23
|
// src/commands/mcp.ts
|
|
19
24
|
import chalk from "chalk";
|
|
25
|
+
import fs from "fs-extra";
|
|
20
26
|
import path from "path";
|
|
21
27
|
|
|
22
28
|
// src/ui/ink/components/McpServerList.tsx
|
|
@@ -24,6 +30,7 @@ import { useState, useCallback } from "react";
|
|
|
24
30
|
import { Box, Text, useInput, render } from "ink";
|
|
25
31
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
26
32
|
function McpServerList({ servers, onToggle, onDone }) {
|
|
33
|
+
const { theme } = useTheme();
|
|
27
34
|
const [cursor, setCursor] = useState(0);
|
|
28
35
|
const [toggling, setToggling] = useState(null);
|
|
29
36
|
const handleToggle = useCallback(async () => {
|
|
@@ -53,60 +60,41 @@ function McpServerList({ servers, onToggle, onDone }) {
|
|
|
53
60
|
});
|
|
54
61
|
if (servers.length === 0) {
|
|
55
62
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", paddingX: 1, children: [
|
|
56
|
-
/* @__PURE__ */ jsx(Text, {
|
|
63
|
+
/* @__PURE__ */ jsx(Text, { bold: true, children: theme.fg("accent", "MCP Servers") }),
|
|
57
64
|
/* @__PURE__ */ jsx(Text, { children: " " }),
|
|
58
|
-
/* @__PURE__ */ jsx(Text, {
|
|
65
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "No MCP servers configured.") }),
|
|
59
66
|
/* @__PURE__ */ jsx(Text, { children: " " }),
|
|
60
|
-
/* @__PURE__ */
|
|
61
|
-
|
|
62
|
-
"<name>",
|
|
63
|
-
" ",
|
|
64
|
-
"<command>",
|
|
65
|
-
" [args...]"
|
|
66
|
-
] }),
|
|
67
|
-
/* @__PURE__ */ jsx(Text, { color: "gray", children: "Browse: /mcp install" }),
|
|
67
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "Add a server: /mcp add <name> <command> [args...]") }),
|
|
68
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "Browse: /mcp install") }),
|
|
68
69
|
/* @__PURE__ */ jsx(Text, { children: " " }),
|
|
69
|
-
/* @__PURE__ */ jsx(Text, {
|
|
70
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "Press ESC or q to close") })
|
|
70
71
|
] });
|
|
71
72
|
}
|
|
72
73
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", paddingX: 1, children: [
|
|
73
|
-
/* @__PURE__ */ jsx(Text, {
|
|
74
|
-
/* @__PURE__ */ jsx(Box, { marginBottom: 1, children: /* @__PURE__ */ jsx(Text, {
|
|
74
|
+
/* @__PURE__ */ jsx(Text, { bold: true, children: theme.fg("accent", "MCP Servers") }),
|
|
75
|
+
/* @__PURE__ */ jsx(Box, { marginBottom: 1, children: /* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "\u2500".repeat(56)) }) }),
|
|
75
76
|
servers.map((server, i) => {
|
|
76
77
|
const isSelected = i === cursor;
|
|
77
78
|
const isToggling = toggling === server.name;
|
|
78
79
|
const statusIcon = server.status === "connected" ? "\u25CF" : server.status === "error" ? "\u25CF" : "\u25CB";
|
|
79
|
-
const
|
|
80
|
+
const statusToken = server.status === "connected" ? "success" : server.status === "error" ? "error" : "muted";
|
|
80
81
|
const statusLabel = server.status === "connected" ? "enabled" : server.status === "error" ? "error" : "disabled";
|
|
81
82
|
const toolsInfo = server.status === "connected" && server.toolCount > 0 ? ` (${server.toolCount} tools)` : "";
|
|
82
83
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
83
84
|
/* @__PURE__ */ jsxs(Box, { children: [
|
|
84
|
-
/* @__PURE__ */ jsx(Text, {
|
|
85
|
-
/* @__PURE__ */
|
|
86
|
-
statusIcon,
|
|
87
|
-
" "
|
|
88
|
-
] }),
|
|
85
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg(isSelected ? "warning" : "muted", isSelected ? "\u25B8 " : " ") }),
|
|
86
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg(statusToken, `${statusIcon} `) }),
|
|
89
87
|
/* @__PURE__ */ jsx(Text, { bold: isSelected, children: server.name.padEnd(24) }),
|
|
90
|
-
/* @__PURE__ */ jsx(Text, {
|
|
91
|
-
/* @__PURE__ */ jsx(Text, {
|
|
88
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg(statusToken, isToggling ? "toggling..." : statusLabel) }),
|
|
89
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg("muted", toolsInfo) })
|
|
92
90
|
] }),
|
|
93
|
-
isSelected && server.status === "error" && server.error && /* @__PURE__ */ jsx(Box, { marginLeft: 4, children: /* @__PURE__ */
|
|
94
|
-
" ",
|
|
95
|
-
server.error
|
|
96
|
-
] }) })
|
|
91
|
+
isSelected && server.status === "error" && server.error && /* @__PURE__ */ jsx(Box, { marginLeft: 4, children: /* @__PURE__ */ jsx(Text, { children: theme.fg("error", ` ${server.error}`) }) })
|
|
97
92
|
] }, server.name);
|
|
98
93
|
}),
|
|
99
94
|
/* @__PURE__ */ jsx(Text, { children: " " }),
|
|
100
95
|
/* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
101
|
-
/* @__PURE__ */
|
|
102
|
-
|
|
103
|
-
" navigate ",
|
|
104
|
-
"\u23CE/space",
|
|
105
|
-
" toggle ",
|
|
106
|
-
"q/esc",
|
|
107
|
-
" close"
|
|
108
|
-
] }),
|
|
109
|
-
/* @__PURE__ */ jsx(Text, { color: "gray", children: "Connected servers provide tools to the agent" })
|
|
96
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "\u2191\u2193 navigate \u23CE/space toggle q/esc close") }),
|
|
97
|
+
/* @__PURE__ */ jsx(Text, { children: theme.fg("muted", "Connected servers provide tools to the agent") })
|
|
110
98
|
] })
|
|
111
99
|
] });
|
|
112
100
|
}
|
|
@@ -119,14 +107,14 @@ async function showMcpServerList(options) {
|
|
|
119
107
|
let completed = false;
|
|
120
108
|
let instance;
|
|
121
109
|
const renderList = () => {
|
|
122
|
-
const element = /* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(
|
|
110
|
+
const element = /* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(
|
|
123
111
|
McpServerList,
|
|
124
112
|
{
|
|
125
113
|
servers: currentServers,
|
|
126
114
|
onToggle: async (name, status) => {
|
|
127
115
|
currentServers = await options.onToggle(name, status);
|
|
128
116
|
instance.rerender(
|
|
129
|
-
/* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(
|
|
117
|
+
/* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(
|
|
130
118
|
McpServerList,
|
|
131
119
|
{
|
|
132
120
|
servers: currentServers,
|
|
@@ -141,7 +129,7 @@ async function showMcpServerList(options) {
|
|
|
141
129
|
resolve();
|
|
142
130
|
}
|
|
143
131
|
}
|
|
144
|
-
) })
|
|
132
|
+
) }) })
|
|
145
133
|
);
|
|
146
134
|
},
|
|
147
135
|
onDone: () => {
|
|
@@ -151,11 +139,16 @@ async function showMcpServerList(options) {
|
|
|
151
139
|
resolve();
|
|
152
140
|
}
|
|
153
141
|
}
|
|
154
|
-
) });
|
|
142
|
+
) }) });
|
|
155
143
|
if (instance) {
|
|
156
144
|
instance.rerender(element);
|
|
157
145
|
} else {
|
|
158
|
-
instance = render(element, {
|
|
146
|
+
instance = render(element, inkRenderOptions({
|
|
147
|
+
stdin: process.stdin,
|
|
148
|
+
stdout: process.stdout,
|
|
149
|
+
stderr: process.stderr,
|
|
150
|
+
exitOnCtrlC: false
|
|
151
|
+
}));
|
|
159
152
|
}
|
|
160
153
|
};
|
|
161
154
|
renderList();
|
|
@@ -181,8 +174,15 @@ async function loadConfigForScope(scopeInput, workspaceRoot) {
|
|
|
181
174
|
if (!workspaceRoot) {
|
|
182
175
|
throw new Error("Workspace root is required for project scope.");
|
|
183
176
|
}
|
|
184
|
-
const
|
|
185
|
-
|
|
177
|
+
const projectConfigDir = path.join(workspaceRoot, PROJECT_DIR_NAME);
|
|
178
|
+
const candidates = ["config.toml", "config.yaml", "config.yml", "config.json"].map(
|
|
179
|
+
(file) => path.join(projectConfigDir, file)
|
|
180
|
+
);
|
|
181
|
+
const existing = await Promise.all(candidates.map(
|
|
182
|
+
async (candidate) => await fs.pathExists(candidate) ? candidate : null
|
|
183
|
+
));
|
|
184
|
+
const projectConfigPath = existing.find((candidate) => Boolean(candidate)) ?? path.join(projectConfigDir, "config.json");
|
|
185
|
+
return { config: await loadConfig(projectConfigPath, workspaceRoot), scope };
|
|
186
186
|
}
|
|
187
187
|
function syncRuntimeConfig(runtimeConfig, updatedConfig) {
|
|
188
188
|
if (!runtimeConfig) return;
|
|
@@ -556,7 +556,8 @@ var metadata = {
|
|
|
556
556
|
{ name: "disconnect", description: "Disconnect from a server" },
|
|
557
557
|
{ name: "list", description: "List available tools from servers" },
|
|
558
558
|
{ name: "add", description: "Add a server to config" },
|
|
559
|
-
{ name: "remove", description: "Remove a server from config" }
|
|
559
|
+
{ name: "remove", description: "Remove a server from config" },
|
|
560
|
+
{ name: "install", description: t("commands.mcp.installDescription") }
|
|
560
561
|
]
|
|
561
562
|
};
|
|
562
563
|
var installMetadata = {
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
-
var Theme = class {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } var _class;// src/ui/theme/Theme.ts
|
|
2
|
+
var Theme = (_class = class {
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
__init() {this.ansiCache = /* @__PURE__ */ new Map()}
|
|
7
|
+
constructor(name, colors, colorMode) {;_class.prototype.__init.call(this);
|
|
5
8
|
this.name = name;
|
|
6
9
|
this.colors = colors;
|
|
7
10
|
this.colorMode = _nullishCoalesce(colorMode, () => ( detectColorMode()));
|
|
@@ -143,7 +146,7 @@ var Theme = class {
|
|
|
143
146
|
}
|
|
144
147
|
return "";
|
|
145
148
|
}
|
|
146
|
-
};
|
|
149
|
+
}, _class);
|
|
147
150
|
function detectColorMode() {
|
|
148
151
|
if (process.env.NO_COLOR !== void 0) {
|
|
149
152
|
return "none";
|
|
@@ -221,14 +224,27 @@ function index256To16(index) {
|
|
|
221
224
|
return rgbTo16(r, g, b);
|
|
222
225
|
}
|
|
223
226
|
var globalTheme = null;
|
|
227
|
+
var themeListeners = /* @__PURE__ */ new Set();
|
|
224
228
|
function getTheme() {
|
|
225
229
|
if (!globalTheme) {
|
|
226
230
|
throw new Error("Theme not initialized. Call initTheme() first.");
|
|
227
231
|
}
|
|
228
232
|
return globalTheme;
|
|
229
233
|
}
|
|
234
|
+
function getThemeSnapshot() {
|
|
235
|
+
return globalTheme;
|
|
236
|
+
}
|
|
237
|
+
function subscribeThemeChanges(listener) {
|
|
238
|
+
themeListeners.add(listener);
|
|
239
|
+
return () => {
|
|
240
|
+
themeListeners.delete(listener);
|
|
241
|
+
};
|
|
242
|
+
}
|
|
230
243
|
function setTheme(theme) {
|
|
231
244
|
globalTheme = theme;
|
|
245
|
+
for (const listener of themeListeners) {
|
|
246
|
+
listener();
|
|
247
|
+
}
|
|
232
248
|
}
|
|
233
249
|
function isThemeInitialized() {
|
|
234
250
|
return globalTheme !== null;
|
|
@@ -252,7 +268,9 @@ function themedFg(token, text, fallback) {
|
|
|
252
268
|
|
|
253
269
|
|
|
254
270
|
|
|
255
|
-
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
exports.Theme = Theme; exports.detectColorMode = detectColorMode; exports.hexToRgb = hexToRgb; exports.getTheme = getTheme; exports.getThemeSnapshot = getThemeSnapshot; exports.subscribeThemeChanges = subscribeThemeChanges; exports.setTheme = setTheme; exports.isThemeInitialized = isThemeInitialized; exports.themedFg = themedFg;
|
|
256
274
|
/**
|
|
257
275
|
* @license
|
|
258
276
|
* Copyright 2025 Autohand AI LLC
|
|
@@ -1,9 +1,9 @@
|
|
|
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 _chunkS5JNQIGLcjs = require('./chunk-S5JNQIGL.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
|
|
7
7
|
|
|
8
8
|
// src/commands/agents-new.ts
|
|
9
9
|
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
@@ -16,7 +16,7 @@ var metadata = {
|
|
|
16
16
|
prd: "prd/sub_agents_architecture.md"
|
|
17
17
|
};
|
|
18
18
|
async function createAgent(ctx) {
|
|
19
|
-
const answers = await
|
|
19
|
+
const answers = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, [
|
|
20
20
|
{
|
|
21
21
|
type: "input",
|
|
22
22
|
name: "name",
|
|
@@ -83,7 +83,7 @@ function buildPrompt(name, description) {
|
|
|
83
83
|
].filter(Boolean).join("\n");
|
|
84
84
|
}
|
|
85
85
|
function getAgentsDir() {
|
|
86
|
-
return
|
|
86
|
+
return _chunkKASXKDF2cjs.AUTOHAND_PATHS.agents;
|
|
87
87
|
}
|
|
88
88
|
function slugify(input) {
|
|
89
89
|
return input.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "agent";
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/providers/errors.ts
|
|
2
|
+
var ApiError = class extends Error {
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
constructor(message, code, httpStatus, retryable, retryAfterMs, rawDetail) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = "ApiError";
|
|
11
|
+
this.code = code;
|
|
12
|
+
this.httpStatus = httpStatus;
|
|
13
|
+
this.retryable = retryable;
|
|
14
|
+
this.retryAfterMs = retryAfterMs;
|
|
15
|
+
this.rawDetail = rawDetail;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var FRIENDLY_MESSAGES = {
|
|
19
|
+
context_overflow: "The conversation is too long for this model. Try /undo to remove recent turns or /new to start fresh.",
|
|
20
|
+
model_not_found: "The requested model was not found. Use /model to select a different one.",
|
|
21
|
+
invalid_request: "The request was malformed and could not be processed.",
|
|
22
|
+
auth_failed: "Authentication failed. Please verify your API key in ~/.autohand/config.json.",
|
|
23
|
+
payment_required: "Payment required. Please check your account balance or billing settings.",
|
|
24
|
+
access_denied: "Access denied. Your API key may not have permission for this model.",
|
|
25
|
+
rate_limited: "Rate limit exceeded. Please wait a moment and try again, or choose a different model.",
|
|
26
|
+
server_error: "The AI service encountered an error. Please try again later.",
|
|
27
|
+
network_error: "Unable to connect to the AI service. Please check your internet connection.",
|
|
28
|
+
timeout: "The request timed out. The AI service may be experiencing high load.",
|
|
29
|
+
cancelled: "Request cancelled.",
|
|
30
|
+
unknown: "An unexpected error occurred. Please try again."
|
|
31
|
+
};
|
|
32
|
+
var MODEL_NOT_FOUND_PATTERNS = [
|
|
33
|
+
"invalid model",
|
|
34
|
+
"model does not exist",
|
|
35
|
+
"model not found",
|
|
36
|
+
"no endpoints found for model",
|
|
37
|
+
"does not exist or you do not have access",
|
|
38
|
+
// OpenRouter returns "X is not a valid model ID" for bad model names
|
|
39
|
+
"is not a valid model",
|
|
40
|
+
// Catch "model 'xyz' not found" where 'not found' is separate from 'model'
|
|
41
|
+
"' not found",
|
|
42
|
+
'" not found'
|
|
43
|
+
];
|
|
44
|
+
var CONTEXT_OVERFLOW_PATTERNS = [
|
|
45
|
+
"maximum context length",
|
|
46
|
+
"context length exceeded",
|
|
47
|
+
"context is too long",
|
|
48
|
+
"prompt is too long",
|
|
49
|
+
"reduce the length",
|
|
50
|
+
"payload too large",
|
|
51
|
+
"context window",
|
|
52
|
+
"token limit",
|
|
53
|
+
"tokens exceeds",
|
|
54
|
+
"too many tokens"
|
|
55
|
+
];
|
|
56
|
+
var CANCEL_PATTERNS = [
|
|
57
|
+
"cancelled",
|
|
58
|
+
"canceled",
|
|
59
|
+
"aborted",
|
|
60
|
+
"user force closed"
|
|
61
|
+
];
|
|
62
|
+
var NETWORK_PATTERNS = [
|
|
63
|
+
"econnrefused",
|
|
64
|
+
"econnreset",
|
|
65
|
+
"enotfound",
|
|
66
|
+
"etimedout",
|
|
67
|
+
"fetch failed",
|
|
68
|
+
"network",
|
|
69
|
+
"unable to connect"
|
|
70
|
+
];
|
|
71
|
+
var TIMEOUT_PATTERNS = [
|
|
72
|
+
"timed out",
|
|
73
|
+
"timeout"
|
|
74
|
+
];
|
|
75
|
+
function classifyApiError(httpStatus, errorBody, headers) {
|
|
76
|
+
const lower = errorBody.toLowerCase();
|
|
77
|
+
if (httpStatus === 401) {
|
|
78
|
+
return makeError("auth_failed", httpStatus, false, errorBody, headers);
|
|
79
|
+
}
|
|
80
|
+
if (httpStatus === 402) {
|
|
81
|
+
return makeError("payment_required", httpStatus, false, errorBody, headers);
|
|
82
|
+
}
|
|
83
|
+
if (httpStatus === 403) {
|
|
84
|
+
return makeError("access_denied", httpStatus, false, errorBody, headers);
|
|
85
|
+
}
|
|
86
|
+
if (httpStatus === 404) {
|
|
87
|
+
return makeError("model_not_found", httpStatus, false, errorBody, headers);
|
|
88
|
+
}
|
|
89
|
+
if (httpStatus === 429) {
|
|
90
|
+
return makeError("rate_limited", httpStatus, true, errorBody, headers);
|
|
91
|
+
}
|
|
92
|
+
if (httpStatus === 504) {
|
|
93
|
+
return makeError("timeout", httpStatus, true, errorBody, headers);
|
|
94
|
+
}
|
|
95
|
+
if (httpStatus >= 500) {
|
|
96
|
+
return makeError("server_error", httpStatus, true, errorBody, headers);
|
|
97
|
+
}
|
|
98
|
+
if (httpStatus === 400) {
|
|
99
|
+
if (matchesAny(lower, MODEL_NOT_FOUND_PATTERNS)) {
|
|
100
|
+
return makeError("model_not_found", httpStatus, false, errorBody, headers);
|
|
101
|
+
}
|
|
102
|
+
if (matchesAny(lower, CONTEXT_OVERFLOW_PATTERNS)) {
|
|
103
|
+
return makeError("context_overflow", httpStatus, true, errorBody, headers);
|
|
104
|
+
}
|
|
105
|
+
return makeError("invalid_request", httpStatus, false, errorBody, headers);
|
|
106
|
+
}
|
|
107
|
+
if (matchesAny(lower, CANCEL_PATTERNS)) {
|
|
108
|
+
return makeError("cancelled", httpStatus, false, errorBody, headers);
|
|
109
|
+
}
|
|
110
|
+
if (matchesAny(lower, TIMEOUT_PATTERNS)) {
|
|
111
|
+
return makeError("timeout", httpStatus, true, errorBody, headers);
|
|
112
|
+
}
|
|
113
|
+
if (matchesAny(lower, NETWORK_PATTERNS)) {
|
|
114
|
+
return makeError("network_error", httpStatus, true, errorBody, headers);
|
|
115
|
+
}
|
|
116
|
+
if (httpStatus === 0 || httpStatus === void 0) {
|
|
117
|
+
if (matchesAny(lower, MODEL_NOT_FOUND_PATTERNS)) {
|
|
118
|
+
return makeError("model_not_found", httpStatus, false, errorBody, headers);
|
|
119
|
+
}
|
|
120
|
+
if (matchesAny(lower, CONTEXT_OVERFLOW_PATTERNS)) {
|
|
121
|
+
return makeError("context_overflow", httpStatus, true, errorBody, headers);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return makeError("unknown", httpStatus, true, errorBody, headers);
|
|
125
|
+
}
|
|
126
|
+
function matchesAny(lower, patterns) {
|
|
127
|
+
return patterns.some((p) => lower.includes(p));
|
|
128
|
+
}
|
|
129
|
+
function stripHtmlFromBody(body) {
|
|
130
|
+
if (!/<[a-z/][\s\S]*>/i.test(body)) {
|
|
131
|
+
return body;
|
|
132
|
+
}
|
|
133
|
+
return body.replace(/<[^>]+>/g, " ").replace(/\s+/g, " ").trim();
|
|
134
|
+
}
|
|
135
|
+
function makeError(code, httpStatus, retryable, rawBody, headers) {
|
|
136
|
+
const friendlyMessage = FRIENDLY_MESSAGES[code];
|
|
137
|
+
const displayBody = rawBody ? stripHtmlFromBody(rawBody) : "";
|
|
138
|
+
const message = displayBody ? `${friendlyMessage}
|
|
139
|
+
${displayBody}` : friendlyMessage;
|
|
140
|
+
const retryAfterMs = _nullishCoalesce(parseRetryAfter(headers), () => ( inferRetryAfterFromBody(code, rawBody)));
|
|
141
|
+
return new ApiError(message, code, httpStatus, retryable, retryAfterMs, rawBody);
|
|
142
|
+
}
|
|
143
|
+
function inferRetryAfterFromBody(code, rawBody) {
|
|
144
|
+
if (code !== "rate_limited") {
|
|
145
|
+
return void 0;
|
|
146
|
+
}
|
|
147
|
+
const rpmMatch = rawBody.match(/limited to\s+(\d+)\s+requests?\s+per\s+minute/i);
|
|
148
|
+
if (rpmMatch) {
|
|
149
|
+
const rpm = Number(rpmMatch[1]);
|
|
150
|
+
if (Number.isFinite(rpm) && rpm > 0) {
|
|
151
|
+
return Math.ceil(6e4 / rpm);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const secondsMatch = rawBody.match(/retry (?:after|in)\s+(\d+)\s+seconds?/i);
|
|
155
|
+
if (secondsMatch) {
|
|
156
|
+
const seconds = Number(secondsMatch[1]);
|
|
157
|
+
if (Number.isFinite(seconds) && seconds > 0) {
|
|
158
|
+
return seconds * 1e3;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return void 0;
|
|
162
|
+
}
|
|
163
|
+
function sanitizeModelId(raw) {
|
|
164
|
+
return raw.replace(/\x1b\[20[01]~/g, "").replace(/\[20[01]~/g, "").replace(/[\x00-\x1f\x7f]/g, "").trim();
|
|
165
|
+
}
|
|
166
|
+
function parseRetryAfter(headers) {
|
|
167
|
+
if (!headers) return void 0;
|
|
168
|
+
const value = headers.get("retry-after");
|
|
169
|
+
if (!value) return void 0;
|
|
170
|
+
const seconds = Number(value);
|
|
171
|
+
if (!Number.isNaN(seconds) && seconds > 0) {
|
|
172
|
+
return seconds * 1e3;
|
|
173
|
+
}
|
|
174
|
+
const dateMs = Date.parse(value);
|
|
175
|
+
if (!Number.isNaN(dateMs)) {
|
|
176
|
+
const delayMs = dateMs - Date.now();
|
|
177
|
+
return delayMs > 0 ? delayMs : void 0;
|
|
178
|
+
}
|
|
179
|
+
return void 0;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
exports.ApiError = ApiError; exports.classifyApiError = classifyApiError; exports.sanitizeModelId = sanitizeModelId;
|
|
187
|
+
/**
|
|
188
|
+
* @license
|
|
189
|
+
* Copyright 2025 Autohand AI LLC
|
|
190
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
191
|
+
*
|
|
192
|
+
* Centralized API error classification.
|
|
193
|
+
*
|
|
194
|
+
* Every provider (OpenRouter, Azure, MLX, Ollama, LLMGateway) and every
|
|
195
|
+
* consumer (agent.ts, RPC adapter, ACP adapter) delegates to this module
|
|
196
|
+
* so error handling logic lives in one place.
|
|
197
|
+
*/
|
|
@@ -0,0 +1,93 @@
|
|
|
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
|
+
|
|
3
|
+
var _chunkNVATU4V6cjs = require('./chunk-NVATU4V6.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkLJD7KR3Lcjs = require('./chunk-LJD7KR3L.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunkSD3NTC7Dcjs = require('./chunk-SD3NTC7D.cjs');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkAQ5PVHOCcjs = require('./chunk-AQ5PVHOC.cjs');
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
|
|
17
|
+
|
|
18
|
+
// src/commands/about.ts
|
|
19
|
+
var _child_process = require('child_process');
|
|
20
|
+
var _terminallink = require('terminal-link'); var _terminallink2 = _interopRequireDefault(_terminallink);
|
|
21
|
+
function getCommitFromAlphaVersion(version) {
|
|
22
|
+
const match = version.match(/-alpha\.([0-9a-f]{7,40})$/i);
|
|
23
|
+
return _nullishCoalesce(_optionalChain([match, 'optionalAccess', _ => _[1]]), () => ( null));
|
|
24
|
+
}
|
|
25
|
+
function getGitCommit() {
|
|
26
|
+
if (true) {
|
|
27
|
+
return "da69f79";
|
|
28
|
+
}
|
|
29
|
+
const alphaCommit = getCommitFromAlphaVersion(_chunkAQ5PVHOCcjs.package_default.version);
|
|
30
|
+
if (alphaCommit) {
|
|
31
|
+
return alphaCommit;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
return _child_process.execSync.call(void 0, "git rev-parse --short HEAD", { encoding: "utf8", stdio: ["pipe", "pipe", "ignore"] }).trim();
|
|
35
|
+
} catch (e) {
|
|
36
|
+
return "unknown";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function getVersionString() {
|
|
40
|
+
const commit = getGitCommit();
|
|
41
|
+
return commit !== "unknown" ? `${_chunkAQ5PVHOCcjs.package_default.version} (${commit})` : _chunkAQ5PVHOCcjs.package_default.version;
|
|
42
|
+
}
|
|
43
|
+
async function about(ctx = {}) {
|
|
44
|
+
const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
|
|
45
|
+
const greetingName = _chunkNVATU4V6cjs.getUserGreetingName.call(void 0, ctx.config);
|
|
46
|
+
const terminalColumns = _nullishCoalesce(ctx.terminalColumns, () => ( _chunkSD3NTC7Dcjs.getTerminalColumns.call(void 0, process.stdout)));
|
|
47
|
+
const lines = [
|
|
48
|
+
theme.muted(_chunkSD3NTC7Dcjs.renderAutohandLogo.call(void 0, { columns: terminalColumns })),
|
|
49
|
+
"",
|
|
50
|
+
theme.accent(`${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.title")} v${getVersionString()}`),
|
|
51
|
+
theme.muted(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.subtitle")),
|
|
52
|
+
""
|
|
53
|
+
];
|
|
54
|
+
if (greetingName) {
|
|
55
|
+
lines.push(theme.text(`Hey ${greetingName}, here are a few suggestions for what you could do next:`));
|
|
56
|
+
lines.push(theme.text(` \u2022 Review model, context, and account usage: ${theme.accent("/usage")}`));
|
|
57
|
+
lines.push(theme.text(` \u2022 Check current session and runtime status: ${theme.accent("/status")}`));
|
|
58
|
+
lines.push(theme.text(` \u2022 Discover feature toggles available to you: ${theme.accent("/features")}`));
|
|
59
|
+
lines.push("");
|
|
60
|
+
}
|
|
61
|
+
const websiteUrl = "https://autohand.ai";
|
|
62
|
+
const githubUrl = "https://github.com/autohandai/";
|
|
63
|
+
const docsUrl = "https://docs.autohand.ai";
|
|
64
|
+
const websiteLink = _terminallink2.default.call(void 0, theme.link("autohand.ai"), websiteUrl);
|
|
65
|
+
const githubLink = _terminallink2.default.call(void 0, theme.link("github.com/autohandai/"), githubUrl);
|
|
66
|
+
const docsLink = _terminallink2.default.call(void 0, theme.link("docs.autohand.ai"), docsUrl);
|
|
67
|
+
lines.push(`${theme.text("\u{1F310}")} ${theme.text(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.website") + ":")} ${websiteLink}`);
|
|
68
|
+
lines.push(`${theme.text("\u{1F4E6}")} ${theme.text(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.github") + ":")} ${githubLink}`);
|
|
69
|
+
lines.push(`${theme.text("\u{1F4DA}")} ${theme.text(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.docs") + ":")} ${docsLink}`);
|
|
70
|
+
lines.push("");
|
|
71
|
+
lines.push(theme.text(`\u{1F4A1} ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.contribute")}`));
|
|
72
|
+
lines.push(theme.text(` \u2022 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.feedback")}: ${theme.accent("/feedback")}`));
|
|
73
|
+
lines.push(theme.text(` \u2022 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.submitPR")}: ${theme.accent("gh pr create")}`));
|
|
74
|
+
const issuesUrl = "https://github.com/autohandai/code-cli/issues";
|
|
75
|
+
const issuesLink = _terminallink2.default.call(void 0, theme.link("github.com/autohandai/code-cli/issues"), issuesUrl);
|
|
76
|
+
lines.push(theme.text(` \u2022 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.reportIssues")}: ${issuesLink}`));
|
|
77
|
+
return lines.join("\n");
|
|
78
|
+
}
|
|
79
|
+
var metadata = {
|
|
80
|
+
command: "/about",
|
|
81
|
+
description: "show information about Autohand",
|
|
82
|
+
implemented: true
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
exports.about = about; exports.metadata = metadata;
|
|
89
|
+
/**
|
|
90
|
+
* @license
|
|
91
|
+
* Copyright 2025 Autohand AI LLC
|
|
92
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
93
|
+
*/
|