autohand-cli 0.9.0 → 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 +20 -2
- package/dist/{AgentRegistry-XPWSVO3Q.js → AgentRegistry-GOV7FN2O.js} +2 -2
- package/dist/AgentRegistry-J2C6JBZ3.cjs +10 -0
- package/dist/CommunitySkillsCache-22BB3J6H.cjs +8 -0
- package/dist/{CommunitySkillsCache-ZEQWP6YM.js → CommunitySkillsCache-ZACDPD4J.js} +2 -2
- package/dist/{HookManager-CWLTFKWO.js → HookManager-2S6AHOC3.js} +1 -1
- package/dist/{HookManager-TMAJQU4S.cjs → HookManager-TVEQI5ZU.cjs} +2 -2
- package/dist/{ImportWizard-QBKQEXDW.js → ImportWizard-AEBMAKXE.js} +4 -4
- package/dist/{ImportWizard-MQXEED2U.cjs → ImportWizard-AF2XL6DS.cjs} +13 -13
- package/dist/LearnAdvisor-KKEQ5QCV.js +9 -0
- package/dist/LearnAdvisor-Q7RAYLPF.cjs +9 -0
- package/dist/MemoryManager-PMNAEZMB.cjs +8 -0
- package/dist/{MemoryManager-WJMLPWGU.js → MemoryManager-QZRLTUB5.js} +2 -2
- package/dist/NVIDIAProvider-C3FWQOBZ.cjs +14 -0
- package/dist/{NVIDIAProvider-2HR737UE.js → NVIDIAProvider-SJPY3ONR.js} +1 -1
- package/dist/{PermissionManager-KMYILJ4Z.js → PermissionManager-MT7KBNNR.js} +3 -3
- package/dist/PermissionManager-URCNP5EC.cjs +11 -0
- package/dist/ProviderFactory-56N3ECE4.cjs +12 -0
- package/dist/{ProviderFactory-HFPRVQ25.js → ProviderFactory-RB4RVAF6.js} +3 -2
- package/dist/SessionManager-2IZGWASQ.cjs +10 -0
- package/dist/{SessionManager-PNBTJJTQ.js → SessionManager-554PHVPC.js} +2 -2
- package/dist/SkillsRegistry-GMRVONOQ.cjs +9 -0
- package/dist/{SkillsRegistry-4RRD5GMX.js → SkillsRegistry-NHHMIUYJ.js} +2 -2
- package/dist/SubAgent-4GOR2FIJ.js +13 -0
- package/dist/SubAgent-ZJMDH4FI.cjs +13 -0
- package/dist/{SyncApiClient-LRPFNCKJ.js → SyncApiClient-G3FM65IV.js} +1 -1
- package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
- package/dist/{about-BW3PDZUU.js → about-3USFSGOH.js} +5 -4
- package/dist/about-QR52U5DD.cjs +15 -0
- package/dist/{acp-VHEL7BOW.js → acp-5Y2W6OZP.js} +129 -90
- package/dist/{acp-EOETGAHC.cjs → acp-GSYE75OB.cjs} +135 -96
- package/dist/actionExecutor-KHUU3Z3Q.cjs +28 -0
- package/dist/{actionExecutor-33I47NZS.js → actionExecutor-PLQJZLZV.js} +12 -8
- package/dist/add-dir-BTAD5OZS.cjs +11 -0
- package/dist/{add-dir-VFX7QT4E.js → add-dir-HCERJDBR.js} +2 -2
- package/dist/agent-B3EVT7NN.cjs +126 -0
- package/dist/agent-SATQ3WZ3.js +126 -0
- 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-EFMK6WU6.js → autoSkill-66PKCYTW.js} +2 -2
- package/dist/autoSkill-VQLGBELN.cjs +20 -0
- package/dist/automode-45DWV4TN.cjs +10 -0
- package/dist/{automode-BMYSRM34.js → automode-BUF3VGXU.js} +2 -2
- package/dist/chrome-Q2U73HZB.cjs +50 -0
- package/dist/chrome-Q54OALOK.cjs +21 -0
- package/dist/{chrome-NHJ44WUN.js → chrome-Y3T7EIHG.js} +2 -2
- package/dist/chrome-ZNJ46OYW.js +21 -0
- package/dist/{chunk-D2OSPLYC.cjs → chunk-22SCR3EV.cjs} +2 -2
- package/dist/chunk-26G7YGOW.js +367 -0
- package/dist/{chunk-75EDROHL.cjs → chunk-2ESQR35E.cjs} +10 -10
- package/dist/{chunk-HKYZSUQ5.js → chunk-2IW5YFJ4.js} +4 -4
- package/dist/{chunk-JP3YHTQ2.cjs → chunk-3ICORF7M.cjs} +4 -4
- package/dist/{chunk-4256YRCO.cjs → chunk-3UC6DMFI.cjs} +30 -17
- package/dist/{chunk-6GUODJKM.cjs → chunk-3UHRCHKB.cjs} +23 -23
- package/dist/{chunk-HXJEGMGB.js → chunk-3ZOOH44N.js} +2 -2
- package/dist/{chunk-7RFJB75Y.js → chunk-44ZWOBTI.js} +9 -9
- package/dist/{chunk-CCVMREXI.js → chunk-4567QNRB.js} +32 -8
- package/dist/chunk-45CHNQM6.cjs +517 -0
- package/dist/{chunk-6NVAK6CK.js → chunk-4E7SHPNQ.js} +2 -2
- package/dist/{chunk-XGMI6IYB.cjs → chunk-4XFHP2SN.cjs} +7 -7
- package/dist/chunk-4XVLNOFA.js +360 -0
- package/dist/{chunk-D6GZBSOX.js → chunk-575PXZX7.js} +1 -1
- package/dist/{chunk-HJIXWGQZ.js → chunk-5A7ZL64N.js} +1 -1
- package/dist/{chunk-ROLA6EFO.cjs → chunk-5GCQ5UMV.cjs} +14 -14
- package/dist/{chunk-3DDL2E55.cjs → chunk-5SFV2NCY.cjs} +10 -10
- package/dist/chunk-5ZNYX4VH.cjs +71 -0
- package/dist/{chunk-PDHT7LQS.cjs → chunk-63ANVAOJ.cjs} +3 -3
- package/dist/{chunk-GWO66KBI.js → chunk-65LRPW5W.js} +1 -1
- package/dist/{chunk-IAGCRVJ3.js → chunk-6AYJCDTA.js} +14 -9
- package/dist/{chunk-A7HHCIDQ.js → chunk-6HF6XSCC.js} +2 -2
- package/dist/{chunk-47PHDKNW.cjs → chunk-6JWCGQJU.cjs} +6 -6
- package/dist/chunk-6OECOAK5.cjs +360 -0
- package/dist/{chunk-RBHANOYY.js → chunk-7DJJGKM6.js} +47 -3
- package/dist/{chunk-37M5UM6I.js → chunk-7IRQ7JEH.js} +1 -1
- package/dist/chunk-7MY4JHER.js +27 -0
- package/dist/{chunk-ZR46OJNZ.js → chunk-7PJKTSRN.js} +3 -3
- package/dist/{chunk-AC7DZ6SK.cjs → chunk-7PT646AL.cjs} +3 -3
- package/dist/{chunk-TKKN34TV.js → chunk-7WAUCLLQ.js} +3 -3
- package/dist/{chunk-DPSIGY6L.cjs → chunk-7XTUL7ZD.cjs} +9 -9
- package/dist/{chunk-GBMDFWJX.cjs → chunk-AE2ILW25.cjs} +13 -13
- package/dist/{chunk-BQ22N3TX.cjs → chunk-AOKXYGBQ.cjs} +27 -22
- package/dist/{chunk-REMGR23V.cjs → chunk-AQ5PVHOC.cjs} +7 -2
- package/dist/{chunk-AUYSIEVV.cjs → chunk-AZ47LKD5.cjs} +3 -3
- package/dist/chunk-B76FJKEJ.cjs +184 -0
- package/dist/{chunk-XV2HXRHX.js → chunk-BP37FVBM.js} +3 -3
- package/dist/{chunk-JIMSII7R.js → chunk-C46B72VK.js} +57 -10
- package/dist/{chunk-L4F7SUYL.js → chunk-C5QIQQ37.js} +3 -3
- package/dist/{chunk-AUFNACED.js → chunk-CCIDL4SA.js} +7094 -6126
- package/dist/{chunk-OV3PVUYN.js → chunk-CECH6QQP.js} +11 -11
- package/dist/{chunk-CH2J4PVE.cjs → chunk-CK4HAHVY.cjs} +13 -13
- package/dist/{chunk-Q2IL4DDI.cjs → chunk-CO2AADYU.cjs} +19 -14
- package/dist/{chunk-7JLT2VNW.cjs → chunk-CRTCZ4WL.cjs} +7533 -6565
- package/dist/{chunk-5JFTY3VU.js → chunk-CSTUTDTH.js} +2 -1
- package/dist/{chunk-DIZTWFVR.cjs → chunk-D546G7DA.cjs} +209 -55
- package/dist/{chunk-7HPWMALN.js → chunk-DGBPWODD.js} +1 -1
- package/dist/{chunk-RBZ7AFX7.cjs → chunk-DHUQZ53B.cjs} +2 -2
- package/dist/{chunk-U4C3HW6P.js → chunk-DNSD7DVJ.js} +2 -2
- package/dist/{chunk-SOLBYSLY.cjs → chunk-DSSCERHI.cjs} +2 -2
- package/dist/{chunk-OPNI6O7F.cjs → chunk-EA2MS25U.cjs} +4 -4
- package/dist/{chunk-E46DJH5S.js → chunk-EEHWALXA.js} +94 -3
- package/dist/{chunk-CFFE4VA3.js → chunk-EYHKL4QC.js} +1 -1
- package/dist/{chunk-FGT6KK6T.js → chunk-FBQJZKFX.js} +3 -3
- package/dist/{chunk-I24CWKKK.js → chunk-FFHSCM5M.js} +3 -3
- package/dist/{chunk-TXPSTCG7.cjs → chunk-GAOPJ5S3.cjs} +8 -8
- package/dist/{chunk-ARBEHFCG.js → chunk-GSDV75A5.js} +1 -1
- package/dist/{chunk-Z3XSSF7B.js → chunk-H426KOGY.js} +1 -1
- package/dist/{chunk-WRTXCQ3V.cjs → chunk-HC2Q6A3E.cjs} +858 -182
- package/dist/{chunk-IGMPWJ2I.cjs → chunk-HG3ZASBH.cjs} +8 -8
- package/dist/chunk-HK5A54AV.cjs +280 -0
- package/dist/{chunk-2HOLOHVK.js → chunk-HSWWM6AM.js} +136 -15
- package/dist/chunk-HTU4W3GB.js +183 -0
- package/dist/{chunk-5CMYEM3R.cjs → chunk-HVCIB4SW.cjs} +3 -3
- package/dist/chunk-HXHE2KAO.js +385 -0
- package/dist/{chunk-NMQ47RCG.js → chunk-HZWU6IO3.js} +5 -2
- package/dist/{chunk-ZPD2AO3U.js → chunk-I2ZK3AOD.js} +2 -2
- package/dist/{chunk-3UT7R3XV.js → chunk-IEPLQ47J.js} +61 -5
- package/dist/{chunk-3PXKRVCW.js → chunk-JB3JCYBJ.js} +7 -2
- package/dist/chunk-JCUHCH37.cjs +247 -0
- package/dist/{chunk-VBOFPU5M.cjs → chunk-JM3ZTQUK.cjs} +13 -9
- package/dist/{chunk-WZV6UVPY.js → chunk-JMJRFSNJ.js} +1 -1
- package/dist/{chunk-QKP772OZ.js → chunk-JPFRI4L4.js} +756 -80
- package/dist/{chunk-MOJ7ADW4.cjs → chunk-JV5HVCHU.cjs} +2 -2
- package/dist/{chunk-LN7D3EJZ.js → chunk-KA2U6MY2.js} +4 -3
- package/dist/{chunk-E26KKI46.cjs → chunk-KASXKDF2.cjs} +3 -1
- package/dist/chunk-KJ26T7GM.cjs +367 -0
- package/dist/chunk-KM7R5YPS.cjs +385 -0
- package/dist/{chunk-5F6ZKSHO.js → chunk-KMP6Y3LJ.js} +1 -1
- package/dist/chunk-KWXGDSYT.js +184 -0
- package/dist/{chunk-LDJQ5QHG.cjs → chunk-L46OUKW5.cjs} +15 -15
- package/dist/{chunk-Z4LIPMPM.js → chunk-L6OH44HL.js} +13 -9
- package/dist/chunk-LANGD5CO.js +280 -0
- package/dist/{chunk-CBFH2J3O.js → chunk-LEZEWKPA.js} +150 -7
- package/dist/{chunk-FQAVGSPW.js → chunk-M5DK524Z.js} +2 -2
- package/dist/{chunk-7LWQCE4Y.cjs → chunk-M7B7RRBK.cjs} +72 -25
- package/dist/{chunk-BWF4VDYE.js → chunk-MANJ67D3.js} +2 -2
- package/dist/{chunk-PHJO5YAL.cjs → chunk-MGNXABSU.cjs} +9 -9
- package/dist/{chunk-62RTC3XX.js → chunk-MMKZSJUN.js} +1 -1
- package/dist/{chunk-3KLSNNRW.cjs → chunk-MQQH4XQH.cjs} +4 -4
- package/dist/{chunk-HS4USDND.cjs → chunk-MZN6JBRZ.cjs} +2 -2
- package/dist/{chunk-AT7OWLY5.js → chunk-NB6M6ESM.js} +1 -1
- package/dist/{chunk-TQ33WBY5.cjs → chunk-NHWHEW7M.cjs} +2 -1
- package/dist/chunk-NQZH5CR2.cjs +468 -0
- package/dist/{chunk-2CGE7ZV3.cjs → chunk-NV6LCD2I.cjs} +119 -28
- package/dist/chunk-NVATU4V6.cjs +44 -0
- package/dist/{chunk-DLP436GI.js → chunk-NZ3ZWLUW.js} +2 -2
- package/dist/{chunk-IEXKKKOF.cjs → chunk-NZ7GCK7Y.cjs} +23 -23
- package/dist/{chunk-MQESBFBZ.cjs → chunk-NZQFKXM3.cjs} +21 -20
- package/dist/{chunk-QQ7PANOP.js → chunk-O5GI6SR3.js} +1 -1
- package/dist/{chunk-J5ADZN6V.cjs → chunk-OCATAKXV.cjs} +20 -20
- package/dist/{chunk-JYKPWK5O.js → chunk-OIGYWOL6.js} +1 -1
- package/dist/{chunk-O6TQP7U7.cjs → chunk-ONVYXTUT.cjs} +3 -3
- package/dist/{chunk-MPULXVC4.cjs → chunk-OV3T5MUH.cjs} +11 -11
- package/dist/{chunk-DMRXF5DU.js → chunk-P4FUTSVK.js} +3 -3
- package/dist/{chunk-MXVIDIC6.cjs → chunk-P6SLT2F4.cjs} +2 -2
- package/dist/{chunk-BL2UC7HC.js → chunk-PGFLPURU.js} +1 -1
- package/dist/{chunk-CWINVFRI.cjs → chunk-PIXQ2AVM.cjs} +17 -17
- package/dist/{chunk-MO4KP6XS.cjs → chunk-PNIAIOMZ.cjs} +5 -5
- package/dist/{chunk-HQWQZML5.cjs → chunk-PQBYFEBL.cjs} +2 -2
- package/dist/{chunk-UGFVM77J.cjs → chunk-PSAH4ZQB.cjs} +2 -2
- package/dist/{chunk-Y3M2DABP.js → chunk-PTTZI4QZ.js} +4 -4
- package/dist/{chunk-Q6AC3PHY.cjs → chunk-PY73W5MQ.cjs} +4 -4
- package/dist/{chunk-B5CGDNMR.js → chunk-PZZMIYII.js} +3 -3
- package/dist/{chunk-VRMZO6TB.js → chunk-Q3BS6FPM.js} +7 -6
- package/dist/chunk-QBYGMMDD.js +517 -0
- package/dist/{chunk-3LJJG5YY.cjs → chunk-QLZOMZO5.cjs} +4 -3
- package/dist/{chunk-3S563FNF.cjs → chunk-QQ64HEHP.cjs} +31 -31
- package/dist/{chunk-TBOLJDUG.js → chunk-QRQF3556.js} +12 -7
- package/dist/{chunk-ZZ63NW7A.cjs → chunk-RBXBH6EB.cjs} +17 -17
- package/dist/{chunk-PUD76XQT.cjs → chunk-RFUKZIJF.cjs} +5 -5
- package/dist/chunk-RS2E32YB.js +71 -0
- package/dist/{chunk-7MU7LWF3.cjs → chunk-S5JNQIGL.cjs} +5 -5
- package/dist/{chunk-BFQDQRDE.js → chunk-S5QKRA2V.js} +2 -2
- package/dist/{chunk-IKUMVBCW.cjs → chunk-SD3NTC7D.cjs} +48 -4
- package/dist/{chunk-PQLKJCIE.js → chunk-SDLY4X3G.js} +2 -2
- package/dist/{chunk-VKBIE6I6.js → chunk-SFFEKZGC.js} +2 -2
- package/dist/{chunk-TWQDAUZU.js → chunk-SHRLFX6F.js} +3 -1
- package/dist/{chunk-UEIXJG45.js → chunk-SNDDZG5H.js} +88 -72
- package/dist/{chunk-AOKCI722.cjs → chunk-SOVR7S3T.cjs} +2 -2
- package/dist/{chunk-M4KNC5BQ.js → chunk-SPQ7QIQ6.js} +1 -1
- package/dist/{chunk-QCHIDZBA.js → chunk-SRMGWMQO.js} +1 -1
- package/dist/{chunk-ZHJ7JGME.cjs → chunk-SVVP4UUZ.cjs} +11 -11
- package/dist/{chunk-CHI52KFR.cjs → chunk-SY2P3Z5W.cjs} +150 -7
- package/dist/chunk-SZD45IDG.js +468 -0
- package/dist/{chunk-VGEV44V2.cjs → chunk-TE4SYTWR.cjs} +189 -28
- package/dist/{chunk-YV63VW4K.js → chunk-TR6NECEZ.js} +1 -1
- package/dist/{chunk-GZ6DV2UG.js → chunk-TYBPTKFT.js} +1 -1
- package/dist/{chunk-5VHP6HDQ.js → chunk-U2QUMKCB.js} +1 -1
- package/dist/{chunk-6HH236FV.cjs → chunk-U6PLSPMD.cjs} +2 -2
- package/dist/{chunk-EZJHLOWP.js → chunk-UWZ4G3SQ.js} +20 -7
- package/dist/{chunk-UXLW45ZE.cjs → chunk-V3SZLWEQ.cjs} +25 -90
- package/dist/chunk-V4HGZSKQ.cjs +183 -0
- package/dist/{chunk-2QL6MNXG.js → chunk-V5ELP2XE.js} +6 -6
- package/dist/{chunk-N6O3XUZ2.cjs → chunk-VKOXFT4L.cjs} +2 -2
- package/dist/{chunk-J2K57QM7.cjs → chunk-VLGGMQUN.cjs} +6 -6
- package/dist/{chunk-HSCUPEA4.cjs → chunk-VQHSYAPZ.cjs} +11 -11
- package/dist/{chunk-DEQVRSV5.cjs → chunk-W5QLA6WP.cjs} +8 -8
- package/dist/chunk-WJYFLQ7G.cjs +27 -0
- package/dist/{chunk-MX75JYIY.js → chunk-WNJXIACY.js} +3 -3
- package/dist/{chunk-OHWMWKJQ.js → chunk-WPE2XHVX.js} +1 -1
- package/dist/{chunk-O64I2GYI.js → chunk-X3TI5TJJ.js} +1 -1
- package/dist/{chunk-46C73ZKK.cjs → chunk-X5P6QQOB.cjs} +66 -10
- package/dist/{chunk-TJNBASFD.cjs → chunk-X7XMITIL.cjs} +8 -8
- package/dist/{chunk-E6GFD7VR.cjs → chunk-XNIMSVS6.cjs} +11 -11
- package/dist/{chunk-WGLBC5AY.cjs → chunk-XW3XCK4E.cjs} +4 -4
- package/dist/{chunk-OM24WXEE.js → chunk-XZVDYC5U.js} +1 -1
- package/dist/{chunk-UWFG2R2I.cjs → chunk-Y5BDE24P.cjs} +33 -9
- package/dist/{chunk-GGLKUENP.js → chunk-YC5OBZQU.js} +161 -7
- package/dist/{chunk-JJ4KA7HK.cjs → chunk-YISPVAXO.cjs} +371 -250
- package/dist/{chunk-SWCQM52V.js → chunk-YQDI753V.js} +4 -4
- package/dist/{chunk-KNTUI4TZ.cjs → chunk-YWH55BWK.cjs} +9 -6
- package/dist/{chunk-ACDQGA4Z.js → chunk-YXM6SA7P.js} +7 -72
- package/dist/{chunk-3GUEUCZK.js → chunk-ZNGRLCFQ.js} +2 -0
- package/dist/{chunk-LQBONA55.cjs → chunk-ZNYZB7XY.cjs} +2 -0
- package/dist/{chunk-XIVFAD2L.js → chunk-ZPLCAXJW.js} +172 -11
- package/dist/chunk-ZUYYHKQA.js +44 -0
- package/dist/clear-QJXU25IF.cjs +12 -0
- package/dist/{clear-OFLFQ3MR.js → clear-Y5TO3RZA.js} +2 -2
- package/dist/communityInstaller-LXMVKVAV.cjs +22 -0
- package/dist/{communityInstaller-COB2KTOW.js → communityInstaller-RVL4STPS.js} +6 -6
- package/dist/completion-JX4T2ONW.cjs +17 -0
- package/dist/{completion-PT4VM2H2.js → completion-SE3XYG74.js} +5 -5
- package/dist/config-3224PRW4.cjs +21 -0
- package/dist/{config-R4O7GBTY.js → config-7KPHKFTP.js} +4 -3
- package/dist/{constants-HVCHVQAF.js → constants-EJFAWJQI.js} +1 -1
- package/dist/constants-MCCGUU5F.cjs +21 -0
- package/dist/{export-3PK3VFCE.js → export-BJVIDZC4.js} +5 -5
- 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/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-X3OAZ3CY.js → help-MLIROWKM.js} +2 -2
- package/dist/{history-YKFPHBJN.js → history-GQJ6RZD6.js} +2 -2
- package/dist/history-J4LUIOSI.cjs +14 -0
- package/dist/hooks-FSRIUS6A.cjs +18 -0
- package/dist/{hooks-7TA4PIIB.js → hooks-PPFHCF7T.js} +6 -6
- package/dist/i18n-CI6VFXL5.cjs +33 -0
- package/dist/{i18n-2KBUU7XL.js → i18n-Q7UZJRPL.js} +1 -1
- package/dist/ide-BUSVE54P.js +15 -0
- package/dist/ide-YR27BPGM.cjs +15 -0
- package/dist/{import-4CHYLS4K.js → import-3VBKI6BN.js} +3 -3
- package/dist/{import-I7T4ZHYL.cjs → import-C7S6UJMW.cjs} +3 -3
- package/dist/import-DBK4OCDF.cjs +10 -0
- package/dist/{import-JWPYKXCZ.js → import-U47DXCA7.js} +2 -2
- package/dist/index.cjs +267 -170
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +165 -68
- package/dist/init-OXTYS72D.cjs +10 -0
- package/dist/{init-262MWZV4.js → init-Q2O4R42R.js} +2 -2
- package/dist/{inputPrompt-YGBHDUEP.js → inputPrompt-3CFZDUBH.js} +2 -2
- 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-5O6PUL4G.js → mcp-AH3MMUBU.js} +7 -6
- package/dist/mcp-DW7R63IB.cjs +21 -0
- package/dist/{mcp-install-6XWXLFVY.js → mcp-install-222PCKSW.js} +9 -8
- package/dist/{mcp-install-P6DHES7V.cjs → mcp-install-IA4ZS2SV.cjs} +14 -13
- package/dist/memory-6NX3DAIY.cjs +10 -0
- package/dist/{memory-Q54CESNM.js → memory-VB46T5H3.js} +2 -2
- package/dist/model-64NAELFS.cjs +10 -0
- package/dist/{model-6AJ77PJG.js → model-SJJG64AM.js} +2 -2
- package/dist/new-DU5SOOOY.cjs +12 -0
- package/dist/{new-ZXHEWC2S.js → new-ERZ5C6CN.js} +2 -2
- package/dist/onboarding-2U2BV2KE.cjs +36 -0
- package/dist/{onboarding-JYNMK6NI.js → onboarding-ZQXMPSMJ.js} +14 -13
- package/dist/{permissions-YHJMVA6L.js → permissions-7ACNFK7A.js} +2 -2
- package/dist/permissions-GSNNV7RJ.cjs +10 -0
- package/dist/{quit-GWTNHQSP.js → quit-WY6T267G.js} +2 -2
- package/dist/quit-XIRE2KRE.cjs +10 -0
- package/dist/{registry-34GL6BNJ.js → registry-4DXUDKJN.js} +1 -1
- package/dist/{registry-V24W7YK6.cjs → registry-UEO3ETZ7.cjs} +21 -21
- package/dist/resume-RQZ3WXBP.cjs +17 -0
- package/dist/resume-XSXZMDMD.js +17 -0
- package/dist/{rpc-S3DGW6KV.js → rpc-XH7QLN4H.js} +251 -107
- package/dist/{rpc-NPS3PU4O.cjs → rpc-YF54T7JU.cjs} +347 -203
- package/dist/search-VXXFGZWU.cjs +21 -0
- package/dist/search-YAWGX7P7.js +21 -0
- package/dist/{sessions-IYAXMK23.js → sessions-NJYHJOEL.js} +2 -2
- package/dist/sessions-OSG3UJEZ.cjs +10 -0
- package/dist/settings-SO2UIGWV.cjs +42 -0
- package/dist/{settings-55BNW6BF.js → settings-ZXUQH3DO.js} +17 -8
- 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-VWOMV3CR.js → skills-NBTNDVAY.js} +8 -8
- package/dist/{skills-MVIZNHT4.js → skills-OB6RDW7D.js} +9 -9
- package/dist/{skills-GGMZOVIE.cjs → skills-ZROBG3RZ.cjs} +10 -10
- package/dist/{skills-install-QBA5RCV6.js → skills-install-BHTIEMKH.js} +7 -7
- package/dist/{skills-install-VTAMCNNY.cjs → skills-install-ILX6QVEF.cjs} +15 -15
- 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/{sync-7OKF6636.js → sync-7C25MOT2.js} +6 -5
- package/dist/{sync-7BILIQHP.js → sync-OCJN4ZSO.js} +3 -3
- package/dist/sync-XRP46IVG.cjs +40 -0
- package/dist/sync-ZMFVE7T4.cjs +22 -0
- package/dist/{teammate-J6PHGL23.cjs → teammate-D77B6QRT.cjs} +9 -8
- package/dist/{teammate-GZQSCIMS.js → teammate-EZCMHOIL.js} +8 -7
- 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/ui/questionModal.cjs +6 -6
- package/dist/ui/questionModal.js +5 -5
- package/dist/{undo-SZEHLX7X.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/package.json +7 -2
- package/dist/AgentRegistry-EGBDIUAK.cjs +0 -10
- package/dist/CommunitySkillsCache-2OIUV227.cjs +0 -8
- package/dist/LearnAdvisor-46FG2XIP.js +0 -9
- package/dist/LearnAdvisor-XBRDNAGH.cjs +0 -9
- package/dist/MemoryManager-34L4YOKA.cjs +0 -8
- package/dist/NVIDIAProvider-MVTL62PR.cjs +0 -14
- package/dist/PermissionManager-5OOJ7FAT.cjs +0 -11
- package/dist/ProviderFactory-C3YPXTDD.cjs +0 -11
- package/dist/SessionManager-WAPTFMDO.cjs +0 -10
- package/dist/SkillsRegistry-7AJP74GJ.cjs +0 -9
- package/dist/SubAgent-FDIH3DXB.js +0 -11
- package/dist/SubAgent-HVL2ICVZ.cjs +0 -11
- package/dist/SyncApiClient-VMBOLQ6H.cjs +0 -11
- package/dist/about-FCAX37YC.cjs +0 -14
- package/dist/actionExecutor-4YBMR3YH.cjs +0 -24
- package/dist/add-dir-7SS6KSH5.cjs +0 -11
- package/dist/agent-DMRUFU4M.cjs +0 -116
- package/dist/agent-WCJEYQJT.js +0 -116
- package/dist/agents-CHROO3VU.cjs +0 -17
- package/dist/agents-UVDUL65K.js +0 -17
- package/dist/agents-new-AUBWSOXP.js +0 -17
- package/dist/agents-new-Y562WC47.cjs +0 -17
- package/dist/autoSkill-YOLLFTP2.cjs +0 -20
- package/dist/automode-DBLKTTKD.cjs +0 -10
- package/dist/chrome-ATC4OO5I.cjs +0 -20
- package/dist/chrome-O62WXV7F.js +0 -20
- package/dist/chrome-XHJLCO4M.cjs +0 -50
- package/dist/chunk-6XVVIY54.cjs +0 -256
- package/dist/chunk-AU6JAGZJ.cjs +0 -231
- package/dist/chunk-VDWJMWDF.js +0 -256
- package/dist/clear-33TWQ2ES.cjs +0 -12
- package/dist/communityInstaller-TWMGPSYM.cjs +0 -22
- package/dist/completion-IIZMHXYP.cjs +0 -17
- package/dist/config-KL6WU7R2.cjs +0 -20
- package/dist/constants-RLMJ5D5P.cjs +0 -21
- package/dist/export-WLGNWEMJ.cjs +0 -15
- package/dist/feedback-G635NCLJ.js +0 -18
- package/dist/feedback-LLMK3TZH.cjs +0 -18
- package/dist/help-BAXLP2M2.cjs +0 -12
- package/dist/history-6HOJSEMT.cjs +0 -14
- package/dist/hooks-XVFU67T2.cjs +0 -18
- package/dist/i18n-MUJMKTFM.cjs +0 -33
- package/dist/ide-CCQ33PGC.cjs +0 -15
- package/dist/ide-VLVFBZ5F.js +0 -15
- package/dist/import-J46F54JY.cjs +0 -10
- package/dist/init-EE5Y7RBL.cjs +0 -10
- package/dist/inputPrompt-IIFKCX5Q.cjs +0 -90
- package/dist/language-CVLPB7OV.js +0 -21
- package/dist/language-ZTWFHUSV.cjs +0 -21
- package/dist/learn-PON7I5QS.js +0 -23
- package/dist/learn-XLRSVNA3.cjs +0 -23
- package/dist/login-223QTGBG.cjs +0 -26
- package/dist/login-6IKTBUBY.js +0 -26
- package/dist/logout-RN2AG6SI.js +0 -23
- package/dist/logout-U3M4FFX7.cjs +0 -23
- package/dist/mcp-NUQ76QQB.cjs +0 -20
- package/dist/memory-CYMDQ2YC.cjs +0 -10
- package/dist/model-IDRCKDML.cjs +0 -10
- package/dist/new-7LEWOUF2.cjs +0 -12
- package/dist/onboarding-FXX7YHSJ.cjs +0 -35
- package/dist/permissions-YBNSANIA.cjs +0 -10
- package/dist/quit-B43SJ6E4.cjs +0 -10
- package/dist/resume-DYVOQN5L.cjs +0 -16
- package/dist/resume-M25UQKOX.js +0 -16
- package/dist/search-CPX4PWHP.js +0 -20
- package/dist/search-VUF3M4N3.cjs +0 -20
- package/dist/sessions-JODKER5D.cjs +0 -10
- package/dist/settings-BKTS7OMC.cjs +0 -33
- package/dist/setup-IRC5HQG2.js +0 -29
- package/dist/setup-MMQ7TWOP.cjs +0 -29
- package/dist/share-6JRQECAH.cjs +0 -17
- package/dist/share-YM5MJKMO.js +0 -17
- package/dist/skills-LWSOKOSH.cjs +0 -29
- package/dist/skills-new-GPL46YV2.js +0 -18
- package/dist/skills-new-L5BEZN5V.cjs +0 -18
- package/dist/slashCommands-FBPCIWM5.cjs +0 -95
- package/dist/slashCommands-FCWY5DXW.js +0 -95
- package/dist/status-3B5SDZPL.js +0 -17
- package/dist/status-TTGRF6NC.cjs +0 -17
- package/dist/sync-77CXVVTK.cjs +0 -21
- package/dist/sync-EH4K5U3N.cjs +0 -40
- package/dist/theme-64BYGJ57.cjs +0 -21
- package/dist/theme-YJE6HEON.js +0 -21
- package/dist/undo-PRTEGL2J.cjs +0 -10
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatUsageDashboard,
|
|
3
|
+
gatherUsageDashboardData
|
|
4
|
+
} from "./chunk-HXHE2KAO.js";
|
|
5
|
+
import {
|
|
6
|
+
formatAccount
|
|
7
|
+
} from "./chunk-ZUYYHKQA.js";
|
|
8
|
+
import {
|
|
9
|
+
createCommandTheme
|
|
10
|
+
} from "./chunk-46MTALKD.js";
|
|
11
|
+
import {
|
|
12
|
+
package_default
|
|
13
|
+
} from "./chunk-JB3JCYBJ.js";
|
|
14
|
+
import {
|
|
15
|
+
cleanupModalRender,
|
|
16
|
+
prepareModalRender
|
|
17
|
+
} from "./chunk-NZ3ZWLUW.js";
|
|
18
|
+
import {
|
|
19
|
+
t
|
|
20
|
+
} from "./chunk-LEZEWKPA.js";
|
|
21
|
+
|
|
22
|
+
// src/commands/status.ts
|
|
23
|
+
import readline from "readline";
|
|
24
|
+
|
|
25
|
+
// src/core/agent/AgentFormatter.ts
|
|
26
|
+
import chalk from "chalk";
|
|
27
|
+
|
|
28
|
+
// src/ui/toolOutput.ts
|
|
29
|
+
import * as path from "path";
|
|
30
|
+
var FILE_SUMMARY_TOOLS = /* @__PURE__ */ new Set([
|
|
31
|
+
"read_file"
|
|
32
|
+
]);
|
|
33
|
+
var TRUNCATED_TOOLS = /* @__PURE__ */ new Set([
|
|
34
|
+
"find",
|
|
35
|
+
"glob"
|
|
36
|
+
]);
|
|
37
|
+
var SUMMARY_TOOLS = /* @__PURE__ */ new Set([
|
|
38
|
+
"tools_registry"
|
|
39
|
+
]);
|
|
40
|
+
function formatAskFollowupAnswer(content) {
|
|
41
|
+
const trimmed = content.trim();
|
|
42
|
+
const answerMatch = trimmed.match(/^<answer>([\s\S]*)<\/answer>$/);
|
|
43
|
+
const answer = (answerMatch?.[1] ?? trimmed).trim() || "No answer provided";
|
|
44
|
+
return `Answer: ${answer}`;
|
|
45
|
+
}
|
|
46
|
+
function formatFileSize(bytes) {
|
|
47
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
48
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(2)} KB`;
|
|
49
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
|
|
50
|
+
}
|
|
51
|
+
function countLines(content) {
|
|
52
|
+
if (!content) return 0;
|
|
53
|
+
return content.split("\n").length;
|
|
54
|
+
}
|
|
55
|
+
function formatToolOutputForDisplay(options) {
|
|
56
|
+
const { tool, content, charLimit, filePath, command, commandArgs } = options;
|
|
57
|
+
const totalChars = content.length;
|
|
58
|
+
if (tool === "ask_followup_question") {
|
|
59
|
+
return {
|
|
60
|
+
output: formatAskFollowupAnswer(content),
|
|
61
|
+
truncated: false,
|
|
62
|
+
totalChars
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if ((tool === "run_command" || tool === "shell") && command) {
|
|
66
|
+
const fullCommand = commandArgs?.length ? `${command} ${commandArgs.join(" ")}` : command;
|
|
67
|
+
const outputLines = content ? content.split("\n").length : 0;
|
|
68
|
+
const truncatedContent = charLimit > 0 && totalChars > charLimit ? `${content.slice(0, charLimit)}
|
|
69
|
+
... (${totalChars} chars)` : content;
|
|
70
|
+
return {
|
|
71
|
+
output: `$ ${fullCommand}${truncatedContent ? `
|
|
72
|
+
${truncatedContent}` : outputLines > 0 ? `
|
|
73
|
+
(${outputLines} lines)` : ""}`,
|
|
74
|
+
truncated: totalChars > charLimit,
|
|
75
|
+
totalChars
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (FILE_SUMMARY_TOOLS.has(tool) && filePath) {
|
|
79
|
+
const fileName = path.basename(filePath);
|
|
80
|
+
const dirName = path.dirname(filePath);
|
|
81
|
+
const displayPath = dirName === "." ? fileName : `${path.basename(dirName)}/${fileName}`;
|
|
82
|
+
const lines = countLines(content);
|
|
83
|
+
const size = formatFileSize(Buffer.byteLength(content, "utf8"));
|
|
84
|
+
return {
|
|
85
|
+
output: `${displayPath}
|
|
86
|
+
${lines} lines - ${size}`,
|
|
87
|
+
truncated: false,
|
|
88
|
+
totalChars
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (SUMMARY_TOOLS.has(tool)) {
|
|
92
|
+
try {
|
|
93
|
+
const parsed = JSON.parse(content);
|
|
94
|
+
const total = parsed.length;
|
|
95
|
+
const builtin = parsed.filter((t2) => t2.source === "builtin").length;
|
|
96
|
+
const meta = total - builtin;
|
|
97
|
+
const parts = [`${total} tools`];
|
|
98
|
+
if (builtin > 0) parts.push(`${builtin} builtin`);
|
|
99
|
+
if (meta > 0) parts.push(`${meta} meta`);
|
|
100
|
+
return { output: parts.join(", "), truncated: false, totalChars };
|
|
101
|
+
} catch {
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (TRUNCATED_TOOLS.has(tool) && charLimit > 0 && totalChars > charLimit) {
|
|
105
|
+
return {
|
|
106
|
+
output: `${content.slice(0, charLimit)}
|
|
107
|
+
... (truncated, ${totalChars} total characters)`,
|
|
108
|
+
truncated: true,
|
|
109
|
+
totalChars
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return { output: content, truncated: false, totalChars };
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// src/core/agent/AgentFormatter.ts
|
|
116
|
+
function formatExplorationLabel(kind) {
|
|
117
|
+
switch (kind) {
|
|
118
|
+
case "read":
|
|
119
|
+
return "Read";
|
|
120
|
+
case "search":
|
|
121
|
+
return "Search";
|
|
122
|
+
default:
|
|
123
|
+
return "List";
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
var MAX_VISIBLE_PER_GROUP = 4;
|
|
127
|
+
function getToolCallLabel(call) {
|
|
128
|
+
if (!call) return "";
|
|
129
|
+
const args = call.args ?? {};
|
|
130
|
+
if (args.path) return String(args.path);
|
|
131
|
+
if (args.file_path) return String(args.file_path);
|
|
132
|
+
if (args.command) {
|
|
133
|
+
const cmd = String(args.command);
|
|
134
|
+
const cmdArgs = Array.isArray(args.args) ? args.args.join(" ") : "";
|
|
135
|
+
return cmdArgs ? `${cmd} ${cmdArgs}` : cmd;
|
|
136
|
+
}
|
|
137
|
+
if (args.query) return String(args.query);
|
|
138
|
+
if (args.pattern) return String(args.pattern);
|
|
139
|
+
if (args.task) return String(args.task).slice(0, 60);
|
|
140
|
+
for (const val of Object.values(args)) {
|
|
141
|
+
if (typeof val === "string" && val.length > 0) return val.slice(0, 80);
|
|
142
|
+
}
|
|
143
|
+
return call.tool;
|
|
144
|
+
}
|
|
145
|
+
function formatToolResultsBatch(results, charLimit, toolCalls, thought) {
|
|
146
|
+
const lines = [];
|
|
147
|
+
if (thought) {
|
|
148
|
+
lines.push(chalk.white(thought));
|
|
149
|
+
lines.push("");
|
|
150
|
+
}
|
|
151
|
+
if (results.length <= 1) {
|
|
152
|
+
for (let i = 0; i < results.length; i++) {
|
|
153
|
+
const result = results[i];
|
|
154
|
+
const content = result.success ? result.output ?? "(no output)" : result.error ?? result.output ?? "Tool failed without error message";
|
|
155
|
+
const call = toolCalls?.[i];
|
|
156
|
+
const filePath = call?.args?.path;
|
|
157
|
+
const command = call?.args?.command;
|
|
158
|
+
const commandArgs = call?.args?.args;
|
|
159
|
+
const display = result.success ? formatToolOutputForDisplay({ tool: result.tool, content, charLimit, filePath, command, commandArgs }) : { output: content, truncated: false, totalChars: content.length };
|
|
160
|
+
const icon = result.success ? chalk.green("\u2714") : chalk.red("\u2716");
|
|
161
|
+
lines.push(`${icon} ${chalk.bold(result.tool)}`);
|
|
162
|
+
if (content) {
|
|
163
|
+
if (result.success) {
|
|
164
|
+
lines.push(chalk.gray(display.output));
|
|
165
|
+
} else {
|
|
166
|
+
lines.push(chalk.red("\u250C\u2500 Error \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));
|
|
167
|
+
lines.push(chalk.red("\u2502 ") + chalk.white(content));
|
|
168
|
+
lines.push(chalk.red("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
lines.push("");
|
|
172
|
+
}
|
|
173
|
+
return lines.join("\n");
|
|
174
|
+
}
|
|
175
|
+
const groups = /* @__PURE__ */ new Map();
|
|
176
|
+
const groupOrder = [];
|
|
177
|
+
for (let i = 0; i < results.length; i++) {
|
|
178
|
+
const result = results[i];
|
|
179
|
+
const call = toolCalls?.[i];
|
|
180
|
+
const content = result.success ? result.output ?? "(no output)" : result.error ?? result.output ?? "Tool failed without error message";
|
|
181
|
+
const filePath = call?.args?.path;
|
|
182
|
+
const command = call?.args?.command;
|
|
183
|
+
const commandArgs = call?.args?.args;
|
|
184
|
+
const display = result.success ? formatToolOutputForDisplay({ tool: result.tool, content, charLimit, filePath, command, commandArgs }) : { output: content, truncated: false, totalChars: content.length };
|
|
185
|
+
const item = {
|
|
186
|
+
label: getToolCallLabel(call),
|
|
187
|
+
detail: display.output,
|
|
188
|
+
success: result.success,
|
|
189
|
+
error: result.success ? void 0 : content
|
|
190
|
+
};
|
|
191
|
+
if (!groups.has(result.tool)) {
|
|
192
|
+
groups.set(result.tool, []);
|
|
193
|
+
groupOrder.push(result.tool);
|
|
194
|
+
}
|
|
195
|
+
groups.get(result.tool).push(item);
|
|
196
|
+
}
|
|
197
|
+
for (let gi = 0; gi < groupOrder.length; gi++) {
|
|
198
|
+
const toolName = groupOrder[gi];
|
|
199
|
+
const items = groups.get(toolName);
|
|
200
|
+
const isLastGroup = gi === groupOrder.length - 1;
|
|
201
|
+
const allSuccess = items.every((it) => it.success);
|
|
202
|
+
const icon = allSuccess ? chalk.green("\u2714") : chalk.red("\u2716");
|
|
203
|
+
const count = items.length > 1 ? chalk.dim(` (${items.length})`) : "";
|
|
204
|
+
lines.push(`${icon} ${chalk.bold(toolName)}${count}`);
|
|
205
|
+
const visible = items.slice(0, MAX_VISIBLE_PER_GROUP);
|
|
206
|
+
const hidden = items.length - visible.length;
|
|
207
|
+
for (let ii = 0; ii < visible.length; ii++) {
|
|
208
|
+
const item = visible[ii];
|
|
209
|
+
const isLast = ii === visible.length - 1 && hidden === 0;
|
|
210
|
+
const connector = isLast && isLastGroup ? " \u2514 " : " \u251C ";
|
|
211
|
+
if (!item.success) {
|
|
212
|
+
lines.push(chalk.dim(connector) + chalk.red(item.label));
|
|
213
|
+
lines.push(chalk.red(" \u2502 ") + item.error);
|
|
214
|
+
} else {
|
|
215
|
+
lines.push(chalk.dim(connector) + chalk.gray(item.label));
|
|
216
|
+
const firstLine = item.detail.split("\n")[0];
|
|
217
|
+
if (firstLine && firstLine !== item.label) {
|
|
218
|
+
lines.push(chalk.dim(" ") + chalk.gray(firstLine));
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (hidden > 0) {
|
|
223
|
+
const connector = isLastGroup ? " \u2514 " : " \u251C ";
|
|
224
|
+
lines.push(chalk.dim(connector) + chalk.dim(`+${hidden} more`));
|
|
225
|
+
}
|
|
226
|
+
lines.push("");
|
|
227
|
+
}
|
|
228
|
+
return lines.join("\n");
|
|
229
|
+
}
|
|
230
|
+
function describeInstruction(instruction) {
|
|
231
|
+
const normalized = instruction.trim().replace(/\s+/g, " ");
|
|
232
|
+
if (!normalized) {
|
|
233
|
+
return "work";
|
|
234
|
+
}
|
|
235
|
+
return normalized.length > 60 ? `${normalized.slice(0, 57)}\u2026` : normalized;
|
|
236
|
+
}
|
|
237
|
+
function formatElapsedTime(startedAt) {
|
|
238
|
+
const diff = Date.now() - startedAt;
|
|
239
|
+
const totalSeconds = Math.floor(diff / 1e3);
|
|
240
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
241
|
+
const minutes = Math.floor(totalSeconds % 3600 / 60);
|
|
242
|
+
const seconds = totalSeconds % 60;
|
|
243
|
+
if (hours > 0) {
|
|
244
|
+
return `${hours}h ${minutes.toString().padStart(2, "0")}m ${seconds.toString().padStart(2, "0")}s`;
|
|
245
|
+
}
|
|
246
|
+
return `${minutes}m ${seconds.toString().padStart(2, "0")}s`;
|
|
247
|
+
}
|
|
248
|
+
function formatTokens(tokens) {
|
|
249
|
+
if (tokens >= 1e3) {
|
|
250
|
+
return `${(tokens / 1e3).toFixed(1)}k tokens`;
|
|
251
|
+
}
|
|
252
|
+
return `${tokens} tokens`;
|
|
253
|
+
}
|
|
254
|
+
function formatTurnUsage(usage) {
|
|
255
|
+
if (usage?.kind === "actual") {
|
|
256
|
+
return formatTokens(usage.totalTokens);
|
|
257
|
+
}
|
|
258
|
+
return "tokens unavailable";
|
|
259
|
+
}
|
|
260
|
+
function formatSessionActualTokens(tokens, status2) {
|
|
261
|
+
if (status2 === "unavailable") {
|
|
262
|
+
return "unavailable";
|
|
263
|
+
}
|
|
264
|
+
return formatTokens(tokens);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// src/commands/status.ts
|
|
268
|
+
var metadata = {
|
|
269
|
+
command: "/status",
|
|
270
|
+
description: "Show Autohand status including version, model, API connectivity, and usage",
|
|
271
|
+
implemented: true
|
|
272
|
+
};
|
|
273
|
+
async function status(ctx) {
|
|
274
|
+
const data = await gatherStatusData(ctx);
|
|
275
|
+
await renderStatusUI(data);
|
|
276
|
+
return null;
|
|
277
|
+
}
|
|
278
|
+
async function gatherStatusData(ctx) {
|
|
279
|
+
const currentSession = ctx.sessionManager.getCurrentSession();
|
|
280
|
+
const allSessions = await ctx.sessionManager.listSessions();
|
|
281
|
+
let apiConnected = false;
|
|
282
|
+
try {
|
|
283
|
+
apiConnected = await ctx.llm.isAvailable();
|
|
284
|
+
} catch {
|
|
285
|
+
apiConnected = false;
|
|
286
|
+
}
|
|
287
|
+
return {
|
|
288
|
+
version: package_default.version,
|
|
289
|
+
sessionId: currentSession?.metadata.sessionId ?? null,
|
|
290
|
+
cwd: ctx.workspaceRoot,
|
|
291
|
+
provider: ctx.provider ?? "openrouter",
|
|
292
|
+
model: ctx.model,
|
|
293
|
+
account: formatAccount(ctx.config),
|
|
294
|
+
apiConnected,
|
|
295
|
+
sessionsCount: allSessions.length,
|
|
296
|
+
contextPercentLeft: ctx.getContextPercentLeft?.() ?? 100,
|
|
297
|
+
totalTokensUsed: ctx.getTotalTokensUsed?.() ?? 0,
|
|
298
|
+
tokenUsageStatus: ctx.getTokenUsageStatus?.() ?? "actual",
|
|
299
|
+
usageV2Dashboard: ctx.isFeatureEnabled?.("usage_v2", ctx.config?.features?.usageV2 === true) ? formatUsageDashboard(gatherUsageDashboardData(ctx)) : null,
|
|
300
|
+
config: ctx.config,
|
|
301
|
+
contextCompactionEnabled: ctx.isContextCompactionEnabled?.() ?? true
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
function renderStatusUI(data) {
|
|
305
|
+
return new Promise((resolve) => {
|
|
306
|
+
const tabs = ["Status", "Config", "Usage"];
|
|
307
|
+
let currentTab = 0;
|
|
308
|
+
let completed = false;
|
|
309
|
+
const input = process.stdin;
|
|
310
|
+
const isTTY = input.isTTY;
|
|
311
|
+
const useAlternateScreen = process.stdout.isTTY;
|
|
312
|
+
const wasRaw = input.isRaw;
|
|
313
|
+
const wasPaused = typeof input.isPaused === "function" ? input.isPaused() : false;
|
|
314
|
+
if (useAlternateScreen) {
|
|
315
|
+
prepareModalRender(process.stdout);
|
|
316
|
+
}
|
|
317
|
+
if (wasPaused && typeof input.resume === "function") {
|
|
318
|
+
input.resume();
|
|
319
|
+
}
|
|
320
|
+
if (isTTY) {
|
|
321
|
+
readline.emitKeypressEvents(input);
|
|
322
|
+
if (!wasRaw && typeof input.setRawMode === "function") {
|
|
323
|
+
try {
|
|
324
|
+
input.setRawMode(true);
|
|
325
|
+
} catch {
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (typeof input.setEncoding === "function") {
|
|
329
|
+
input.setEncoding("utf8");
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
const render = () => {
|
|
333
|
+
const theme = createCommandTheme();
|
|
334
|
+
process.stdout.write("\x1B[2J\x1B[H");
|
|
335
|
+
renderTabHeader(tabs, currentTab);
|
|
336
|
+
renderTabContent(tabs[currentTab], data);
|
|
337
|
+
console.log(theme.muted("\nEsc to exit"));
|
|
338
|
+
};
|
|
339
|
+
let buffer = "";
|
|
340
|
+
const handler = (chunk) => {
|
|
341
|
+
buffer += typeof chunk === "string" ? chunk : chunk.toString("utf8");
|
|
342
|
+
const processNext = () => {
|
|
343
|
+
if (!buffer.length) {
|
|
344
|
+
return false;
|
|
345
|
+
}
|
|
346
|
+
const first = buffer[0];
|
|
347
|
+
if (first === "\x1B") {
|
|
348
|
+
if (buffer.length === 1) {
|
|
349
|
+
return false;
|
|
350
|
+
}
|
|
351
|
+
if (buffer[1] === "[") {
|
|
352
|
+
if (buffer.length < 3) {
|
|
353
|
+
return false;
|
|
354
|
+
}
|
|
355
|
+
const seq = buffer.slice(0, 3);
|
|
356
|
+
buffer = buffer.slice(3);
|
|
357
|
+
handleSequence(seq);
|
|
358
|
+
return true;
|
|
359
|
+
}
|
|
360
|
+
buffer = buffer.slice(1);
|
|
361
|
+
handleSequence("\x1B");
|
|
362
|
+
return true;
|
|
363
|
+
}
|
|
364
|
+
buffer = buffer.slice(1);
|
|
365
|
+
handleSequence(first);
|
|
366
|
+
return true;
|
|
367
|
+
};
|
|
368
|
+
while (processNext()) {
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
const handleSequence = (sequence) => {
|
|
372
|
+
switch (sequence) {
|
|
373
|
+
case "\x1B":
|
|
374
|
+
// ESC
|
|
375
|
+
case "":
|
|
376
|
+
cleanup();
|
|
377
|
+
resolve();
|
|
378
|
+
return;
|
|
379
|
+
case " ":
|
|
380
|
+
// Tab
|
|
381
|
+
case "\x1B[C":
|
|
382
|
+
currentTab = (currentTab + 1) % tabs.length;
|
|
383
|
+
render();
|
|
384
|
+
return;
|
|
385
|
+
case "\x1B[Z":
|
|
386
|
+
// Shift+Tab
|
|
387
|
+
case "\x1B[D":
|
|
388
|
+
currentTab = (currentTab - 1 + tabs.length) % tabs.length;
|
|
389
|
+
render();
|
|
390
|
+
return;
|
|
391
|
+
default:
|
|
392
|
+
return;
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
const cleanup = () => {
|
|
396
|
+
if (completed) {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
completed = true;
|
|
400
|
+
input.off("data", handler);
|
|
401
|
+
if (isTTY && !wasRaw && typeof input.setRawMode === "function") {
|
|
402
|
+
try {
|
|
403
|
+
input.setRawMode(false);
|
|
404
|
+
} catch {
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
if (wasPaused && typeof input.pause === "function") {
|
|
408
|
+
input.pause();
|
|
409
|
+
}
|
|
410
|
+
process.stdout.write("\x1B[2J\x1B[H");
|
|
411
|
+
if (useAlternateScreen) {
|
|
412
|
+
cleanupModalRender(process.stdout);
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
input.on("data", handler);
|
|
416
|
+
render();
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
function renderTabHeader(tabs, currentIndex) {
|
|
420
|
+
const theme = createCommandTheme();
|
|
421
|
+
const header = tabs.map((tab, i) => {
|
|
422
|
+
return i === currentIndex ? theme.selectedTab(tab) : theme.tab(tab);
|
|
423
|
+
}).join(" ");
|
|
424
|
+
console.log(`Settings: ${header} ${theme.muted("(tab to cycle)")}
|
|
425
|
+
`);
|
|
426
|
+
}
|
|
427
|
+
function renderTabContent(tab, data) {
|
|
428
|
+
switch (tab) {
|
|
429
|
+
case "Status":
|
|
430
|
+
renderStatusTab(data);
|
|
431
|
+
break;
|
|
432
|
+
case "Config":
|
|
433
|
+
renderConfigTab(data);
|
|
434
|
+
break;
|
|
435
|
+
case "Usage":
|
|
436
|
+
renderUsageTab(data);
|
|
437
|
+
break;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
function renderStatusTab(data) {
|
|
441
|
+
const theme = createCommandTheme();
|
|
442
|
+
console.log(theme.bold(`${t("commands.status.version")}:`), data.version);
|
|
443
|
+
console.log(theme.bold(`${t("commands.status.sessionId")}:`), data.sessionId ?? theme.muted("none"));
|
|
444
|
+
console.log(theme.bold(`${t("commands.status.cwd")}:`), data.cwd);
|
|
445
|
+
console.log(theme.bold(`${t("commands.status.provider")}:`), data.provider);
|
|
446
|
+
console.log(theme.bold(`${t("commands.status.model")}:`), data.model);
|
|
447
|
+
console.log(theme.bold("Account:"), data.account);
|
|
448
|
+
console.log(
|
|
449
|
+
theme.bold("Context Compaction:"),
|
|
450
|
+
data.contextCompactionEnabled ? theme.success("ON") : theme.warning("OFF")
|
|
451
|
+
);
|
|
452
|
+
console.log();
|
|
453
|
+
console.log(
|
|
454
|
+
theme.bold(`${t("commands.status.apiStatus")}:`),
|
|
455
|
+
data.apiConnected ? theme.success(t("commands.status.connected")) : theme.error(t("commands.status.disconnected"))
|
|
456
|
+
);
|
|
457
|
+
console.log(theme.bold(`${t("commands.status.sessions")}:`), t("commands.status.total", { count: String(data.sessionsCount) }));
|
|
458
|
+
console.log(theme.bold("Memory:"), "user (~/.autohand/memory/), project (.autohand/memory/)");
|
|
459
|
+
}
|
|
460
|
+
function renderConfigTab(data) {
|
|
461
|
+
const theme = createCommandTheme();
|
|
462
|
+
const config = data.config;
|
|
463
|
+
console.log(theme.bold("Autohand preferences\n"));
|
|
464
|
+
const settings = [
|
|
465
|
+
["Theme", config?.ui?.theme ?? "dark"],
|
|
466
|
+
["Auto-confirm", config?.ui?.autoConfirm ? "true" : "false"],
|
|
467
|
+
["Silent tool output", config?.ui?.silentToolOutput === true ? "true" : "false"],
|
|
468
|
+
["Show thinking", config?.ui?.showThinking !== false ? "true" : "false"],
|
|
469
|
+
["Show completion notification", config?.ui?.showCompletionNotification !== false ? "true" : "false"],
|
|
470
|
+
["Permission mode", config?.permissions?.mode ?? "interactive"],
|
|
471
|
+
["Telemetry", config?.telemetry?.enabled === true ? "true" : "false"],
|
|
472
|
+
["Network retries", String(config?.network?.maxRetries ?? 3)],
|
|
473
|
+
["Network timeout", `${config?.network?.timeout ?? 3e4}ms`]
|
|
474
|
+
];
|
|
475
|
+
for (const [name, value] of settings) {
|
|
476
|
+
console.log(` ${theme.accent(name.padEnd(30))} ${value}`);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
function renderUsageTab(data) {
|
|
480
|
+
const theme = createCommandTheme();
|
|
481
|
+
if (data.usageV2Dashboard) {
|
|
482
|
+
console.log(data.usageV2Dashboard);
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
485
|
+
const contextUsed = 100 - data.contextPercentLeft;
|
|
486
|
+
console.log(theme.bold("Current session\n"));
|
|
487
|
+
renderProgressBar("Context used (estimated)", contextUsed, 100);
|
|
488
|
+
console.log();
|
|
489
|
+
console.log(theme.bold("Actual tokens used:"), formatSessionActualTokens(data.totalTokensUsed, data.tokenUsageStatus));
|
|
490
|
+
}
|
|
491
|
+
function renderProgressBar(label, value, max) {
|
|
492
|
+
const theme = createCommandTheme();
|
|
493
|
+
const width = 30;
|
|
494
|
+
const filled = Math.round(value / max * width);
|
|
495
|
+
const empty = width - filled;
|
|
496
|
+
const bar = theme.progressFilled("\u2588".repeat(filled)) + theme.progressEmpty("\u2591".repeat(empty));
|
|
497
|
+
const percent = Math.round(value / max * 100);
|
|
498
|
+
console.log(label);
|
|
499
|
+
console.log(`${bar} ${percent}% used`);
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
export {
|
|
503
|
+
formatToolOutputForDisplay,
|
|
504
|
+
formatExplorationLabel,
|
|
505
|
+
formatToolResultsBatch,
|
|
506
|
+
describeInstruction,
|
|
507
|
+
formatElapsedTime,
|
|
508
|
+
formatTurnUsage,
|
|
509
|
+
formatSessionActualTokens,
|
|
510
|
+
metadata,
|
|
511
|
+
status
|
|
512
|
+
};
|
|
513
|
+
/**
|
|
514
|
+
* @license
|
|
515
|
+
* Copyright 2025 Autohand AI LLC
|
|
516
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
517
|
+
*/
|
|
@@ -9,6 +9,7 @@ var _os = require('os'); var _os2 = _interopRequireDefault(_os);
|
|
|
9
9
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
10
10
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
11
11
|
var GIT_COMMAND_TIMEOUT_MS = 5e3;
|
|
12
|
+
var GIT_INIT_TIMEOUT_MS = 15e3;
|
|
12
13
|
var toolCheckResultsPromise;
|
|
13
14
|
function getCurrentBunVersion() {
|
|
14
15
|
return process.versions.bun;
|
|
@@ -200,7 +201,7 @@ function isEmptyDirectory(dir) {
|
|
|
200
201
|
return false;
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
|
-
function runGitCommand(args, cwd) {
|
|
204
|
+
function runGitCommand(args, cwd, timeoutMs = GIT_COMMAND_TIMEOUT_MS) {
|
|
204
205
|
return new Promise((resolve) => {
|
|
205
206
|
try {
|
|
206
207
|
const proc = _child_process.spawn.call(void 0, "git", args, { cwd, stdio: ["pipe", "pipe", "pipe"] });
|
|
@@ -208,7 +209,7 @@ function runGitCommand(args, cwd) {
|
|
|
208
209
|
const timeout = setTimeout(() => {
|
|
209
210
|
proc.kill();
|
|
210
211
|
resolve(void 0);
|
|
211
|
-
},
|
|
212
|
+
}, timeoutMs);
|
|
212
213
|
_optionalChain([proc, 'access', _7 => _7.stdout, 'optionalAccess', _8 => _8.on, 'call', _9 => _9("data", (chunk) => {
|
|
213
214
|
stdout += chunk.toString();
|
|
214
215
|
})]);
|
|
@@ -258,7 +259,7 @@ async function checkGitRepo(workspaceRoot) {
|
|
|
258
259
|
};
|
|
259
260
|
}
|
|
260
261
|
if (isEmptyDirectory(workspaceRoot)) {
|
|
261
|
-
const initResult = await runGitCommand(["init"], workspaceRoot);
|
|
262
|
+
const initResult = await runGitCommand(["init"], workspaceRoot, GIT_INIT_TIMEOUT_MS);
|
|
262
263
|
if (initResult !== void 0 || _fsextra2.default.existsSync(`${workspaceRoot}/.git/HEAD`)) {
|
|
263
264
|
if (_os2.default.platform() === "darwin") {
|
|
264
265
|
try {
|