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,31 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkSVVP4UUZcjs = require('./chunk-SVVP4UUZ.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkPSAH4ZQBcjs = require('./chunk-PSAH4ZQB.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkQW2RW2GYcjs = require('./chunk-QW2RW2GY.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
|
|
19
19
|
|
|
20
20
|
// src/commands/skills.ts
|
|
21
21
|
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
22
22
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
23
23
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
24
|
+
async function withModalPause(ctx, fn) {
|
|
25
|
+
await _optionalChain([ctx, 'access', _ => _.onBeforeModal, 'optionalCall', _2 => _2()]);
|
|
26
|
+
try {
|
|
27
|
+
return await fn();
|
|
28
|
+
} finally {
|
|
29
|
+
await _optionalChain([ctx, 'access', _3 => _3.onAfterModal, 'optionalCall', _4 => _4()]);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
24
32
|
async function skills(ctx, args = []) {
|
|
25
33
|
const { skillsRegistry } = ctx;
|
|
26
34
|
if (!skillsRegistry) {
|
|
27
35
|
return "Skills registry not available.";
|
|
28
36
|
}
|
|
29
|
-
const subcommand = _optionalChain([args, 'access',
|
|
37
|
+
const subcommand = _optionalChain([args, 'access', _5 => _5[0], 'optionalAccess', _6 => _6.toLowerCase, 'call', _7 => _7()]);
|
|
30
38
|
const skillName = args.slice(1).join(" ").trim() || args[1];
|
|
31
39
|
switch (subcommand) {
|
|
32
40
|
case "install":
|
|
@@ -53,6 +61,9 @@ async function skills(ctx, args = []) {
|
|
|
53
61
|
case "show":
|
|
54
62
|
return showSkillInfo(skillsRegistry, skillName);
|
|
55
63
|
default:
|
|
64
|
+
if (!ctx.isNonInteractive && process.stdout.isTTY) {
|
|
65
|
+
return browseInstalledSkills(ctx, skillsRegistry);
|
|
66
|
+
}
|
|
56
67
|
return listSkills(skillsRegistry);
|
|
57
68
|
}
|
|
58
69
|
}
|
|
@@ -96,24 +107,94 @@ function generateSkillSuggestion(skillName, description) {
|
|
|
96
107
|
}
|
|
97
108
|
return `Use ${skillName} to help with: ${description.slice(0, 50)}...`;
|
|
98
109
|
}
|
|
110
|
+
function getSkillSourceLabel(source) {
|
|
111
|
+
switch (source) {
|
|
112
|
+
case "autohand-user":
|
|
113
|
+
return "Autohand User";
|
|
114
|
+
case "autohand-project":
|
|
115
|
+
return "Project";
|
|
116
|
+
case "claude-user":
|
|
117
|
+
return "Claude User";
|
|
118
|
+
case "claude-project":
|
|
119
|
+
return "Claude Project";
|
|
120
|
+
case "codex-user":
|
|
121
|
+
return "Codex User";
|
|
122
|
+
case "codex-project":
|
|
123
|
+
return "Codex Project";
|
|
124
|
+
case "community":
|
|
125
|
+
return "Community";
|
|
126
|
+
default:
|
|
127
|
+
return source;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function buildSkillPreview(skill) {
|
|
131
|
+
const lines = [
|
|
132
|
+
`Status: ${skill.isActive ? "\u{1F7E2} Active" : "\u26AA Inactive"}`,
|
|
133
|
+
`Source: ${getSkillSourceLabel(skill.source)}`,
|
|
134
|
+
`Path: ${skill.path}`,
|
|
135
|
+
"",
|
|
136
|
+
skill.description
|
|
137
|
+
];
|
|
138
|
+
if (skill.isActive) {
|
|
139
|
+
lines.push("");
|
|
140
|
+
lines.push(`Try: ${generateSkillSuggestion(skill.name, skill.description)}`);
|
|
141
|
+
lines.push(`/skills deactivate ${skill.name}`);
|
|
142
|
+
} else {
|
|
143
|
+
lines.push("");
|
|
144
|
+
lines.push(`/skills use ${skill.name}`);
|
|
145
|
+
}
|
|
146
|
+
lines.push(`/skills info ${skill.name}`);
|
|
147
|
+
return lines.join("\n");
|
|
148
|
+
}
|
|
149
|
+
async function browseInstalledSkills(ctx, registry) {
|
|
150
|
+
const allSkills = registry.listSkills();
|
|
151
|
+
const activeSkills = registry.getActiveSkills();
|
|
152
|
+
if (allSkills.length === 0) {
|
|
153
|
+
return listSkills(registry);
|
|
154
|
+
}
|
|
155
|
+
const options = allSkills.map((skill) => ({
|
|
156
|
+
label: `${skill.isActive ? "\u{1F7E2}" : "\u26AA"} ${skill.name} \xB7 ${getSkillSourceLabel(skill.source)}`,
|
|
157
|
+
value: skill.name,
|
|
158
|
+
preview: buildSkillPreview(skill)
|
|
159
|
+
}));
|
|
160
|
+
options.push({
|
|
161
|
+
label: "\u{1F310} Browse community skills",
|
|
162
|
+
value: "__skills_install__",
|
|
163
|
+
description: "Open the community skills browser to search and install new skills."
|
|
164
|
+
});
|
|
165
|
+
const initialIndex = Math.max(allSkills.findIndex((skill) => skill.isActive), 0);
|
|
166
|
+
const selected = await withModalPause(ctx, () => _chunkCK4HAHVYcjs.showModal.call(void 0, {
|
|
167
|
+
title: `\u{1F4DA} ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.skills.title")} (${allSkills.length} available, ${activeSkills.length} active)`,
|
|
168
|
+
options,
|
|
169
|
+
initialIndex,
|
|
170
|
+
maxVisible: 12
|
|
171
|
+
}));
|
|
172
|
+
if (!selected) {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
if (selected.value === "__skills_install__") {
|
|
176
|
+
return handleSkillsInstall(ctx);
|
|
177
|
+
}
|
|
178
|
+
return showSkillInfo(registry, selected.value);
|
|
179
|
+
}
|
|
99
180
|
function listSkills(registry) {
|
|
100
181
|
const allSkills = registry.listSkills();
|
|
101
182
|
const activeSkills = registry.getActiveSkills();
|
|
102
183
|
const lines = [];
|
|
103
184
|
lines.push("");
|
|
104
|
-
lines.push(`\u{1F4DA}
|
|
185
|
+
lines.push(`\u{1F4DA} ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.skills.title")}`);
|
|
105
186
|
lines.push("");
|
|
106
187
|
if (allSkills.length === 0) {
|
|
107
|
-
lines.push(
|
|
188
|
+
lines.push(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.skills.noSkills"));
|
|
108
189
|
lines.push("");
|
|
109
|
-
lines.push("
|
|
190
|
+
lines.push("Get started:");
|
|
110
191
|
lines.push("");
|
|
111
|
-
lines.push(
|
|
112
|
-
lines.push(
|
|
192
|
+
lines.push(` \u{1F310} Browse Community Skills \u2192 /skills install`);
|
|
193
|
+
lines.push(` \u2728 Create New Skill \u2192 /skills new`);
|
|
113
194
|
lines.push("");
|
|
114
|
-
lines.push("
|
|
115
|
-
lines.push("
|
|
116
|
-
lines.push("
|
|
195
|
+
lines.push("Skills can be added in:");
|
|
196
|
+
lines.push(" ~/.autohand/skills/<skill-name>/SKILL.md");
|
|
197
|
+
lines.push(" <project>/.autohand/skills/<skill-name>/SKILL.md");
|
|
117
198
|
return lines.join("\n");
|
|
118
199
|
}
|
|
119
200
|
const bySource = /* @__PURE__ */ new Map();
|
|
@@ -130,28 +211,32 @@ function listSkills(registry) {
|
|
|
130
211
|
"autohand-project": "\u{1F4C1} Project Skills"
|
|
131
212
|
};
|
|
132
213
|
for (const [source, skills2] of bySource) {
|
|
133
|
-
lines.push(
|
|
214
|
+
lines.push(`${sourceLabels[source] || source}`);
|
|
134
215
|
lines.push("");
|
|
135
216
|
for (const skill of skills2) {
|
|
136
217
|
const isActive = skill.isActive;
|
|
137
218
|
const statusIcon = isActive ? "\u{1F7E2}" : "\u26AA";
|
|
138
|
-
const statusText = isActive ? "
|
|
139
|
-
lines.push(
|
|
140
|
-
lines.push(`
|
|
219
|
+
const statusText = isActive ? " (active)" : "";
|
|
220
|
+
lines.push(` ${statusIcon} ${skill.name}${statusText}`);
|
|
221
|
+
lines.push(` ${skill.description}`);
|
|
141
222
|
if (isActive) {
|
|
142
223
|
const suggestion = generateSkillSuggestion(skill.name, skill.description);
|
|
143
|
-
lines.push(`
|
|
224
|
+
lines.push(` \u{1F4A1} Try: "${suggestion}"`);
|
|
225
|
+
lines.push(` \u2139\uFE0F Info: /skills info ${skill.name}`);
|
|
226
|
+
lines.push(` \u23F8\uFE0F Deactivate: /skills deactivate ${skill.name}`);
|
|
144
227
|
} else {
|
|
145
|
-
lines.push(`
|
|
228
|
+
lines.push(` \u25B6\uFE0F Activate: /skills use ${skill.name}`);
|
|
229
|
+
lines.push(` \u2139\uFE0F Info: /skills info ${skill.name}`);
|
|
146
230
|
}
|
|
147
231
|
lines.push("");
|
|
148
232
|
}
|
|
149
233
|
}
|
|
150
234
|
lines.push("\u2500".repeat(40));
|
|
151
|
-
lines.push(`\u{1F4CA}
|
|
235
|
+
lines.push(`\u{1F4CA} ${allSkills.length} skills available, ${activeSkills.length} active`);
|
|
152
236
|
lines.push("");
|
|
153
|
-
lines.push("
|
|
154
|
-
lines.push(
|
|
237
|
+
lines.push("Quick Actions:");
|
|
238
|
+
lines.push(` \u{1F310} Browse Community \u2192 /skills install`);
|
|
239
|
+
lines.push(` \u2728 Create New \u2192 /skills new`);
|
|
155
240
|
return lines.join("\n");
|
|
156
241
|
}
|
|
157
242
|
function activateSkill(registry, name) {
|
|
@@ -209,48 +294,43 @@ function showSkillInfo(registry, name) {
|
|
|
209
294
|
}
|
|
210
295
|
const lines = [];
|
|
211
296
|
lines.push("");
|
|
212
|
-
lines.push(`\u{1F4CB}
|
|
213
|
-
lines.push("");
|
|
214
|
-
if (skill.isActive) {
|
|
215
|
-
lines.push(`**Status:** \u{1F7E2} Active`);
|
|
216
|
-
const suggestion = generateSkillSuggestion(skill.name, skill.description);
|
|
217
|
-
lines.push("");
|
|
218
|
-
lines.push(`{{action:\u{1F4A1} Try it now|${suggestion}}} {{action:\u23F8\uFE0F Deactivate|/skills deactivate ${skill.name}}}`);
|
|
219
|
-
} else {
|
|
220
|
-
lines.push(`**Status:** \u26AA Inactive`);
|
|
221
|
-
lines.push("");
|
|
222
|
-
lines.push(`{{action:\u25B6\uFE0F Activate|/skills use ${skill.name}}}`);
|
|
223
|
-
}
|
|
224
|
-
lines.push("");
|
|
225
|
-
lines.push("\u2500".repeat(40));
|
|
297
|
+
lines.push(`\u{1F4CB} Skill: ${skill.name}`);
|
|
226
298
|
lines.push("");
|
|
227
|
-
lines.push(
|
|
228
|
-
lines.push(
|
|
229
|
-
lines.push(
|
|
299
|
+
lines.push(`Status: ${skill.isActive ? "\u{1F7E2} Active" : "\u26AA Inactive"}`);
|
|
300
|
+
lines.push(`Description: ${skill.description}`);
|
|
301
|
+
lines.push(`Source: ${getSkillSourceLabel(skill.source)}`);
|
|
302
|
+
lines.push(`Path: ${skill.path}`);
|
|
230
303
|
if (skill.license) {
|
|
231
|
-
lines.push(
|
|
304
|
+
lines.push(`License: ${skill.license}`);
|
|
232
305
|
}
|
|
233
306
|
if (skill.compatibility) {
|
|
234
|
-
lines.push(
|
|
307
|
+
lines.push(`Compatibility: ${skill.compatibility}`);
|
|
235
308
|
}
|
|
236
309
|
if (skill["allowed-tools"]) {
|
|
237
|
-
lines.push(
|
|
310
|
+
lines.push(`Allowed Tools: ${skill["allowed-tools"]}`);
|
|
311
|
+
}
|
|
312
|
+
lines.push("");
|
|
313
|
+
if (skill.isActive) {
|
|
314
|
+
lines.push(`Recommended Prompt: ${generateSkillSuggestion(skill.name, skill.description)}`);
|
|
315
|
+
lines.push(`Deactivate: /skills deactivate ${skill.name}`);
|
|
316
|
+
} else {
|
|
317
|
+
lines.push(`Activate: /skills use ${skill.name}`);
|
|
238
318
|
}
|
|
239
319
|
if (skill.metadata && Object.keys(skill.metadata).length > 0) {
|
|
240
320
|
lines.push("");
|
|
241
|
-
lines.push("
|
|
321
|
+
lines.push("Metadata:");
|
|
242
322
|
for (const [key, value] of Object.entries(skill.metadata)) {
|
|
243
|
-
lines.push(
|
|
323
|
+
lines.push(` - ${key}: ${value}`);
|
|
244
324
|
}
|
|
245
325
|
}
|
|
246
326
|
lines.push("");
|
|
247
|
-
lines.push("
|
|
248
|
-
lines.push("```");
|
|
327
|
+
lines.push("Content Preview:");
|
|
249
328
|
const bodyPreview = skill.body.length > 500 ? skill.body.slice(0, 500) + "\n... (truncated)" : skill.body;
|
|
250
|
-
|
|
251
|
-
|
|
329
|
+
for (const line of (bodyPreview || "(no body content)").split("\n")) {
|
|
330
|
+
lines.push(` ${line}`);
|
|
331
|
+
}
|
|
252
332
|
lines.push("");
|
|
253
|
-
lines.push("
|
|
333
|
+
lines.push("Back: /skills");
|
|
254
334
|
return lines.join("\n");
|
|
255
335
|
}
|
|
256
336
|
async function handleSkillsInstall(ctx, skillName) {
|
|
@@ -258,7 +338,7 @@ async function handleSkillsInstall(ctx, skillName) {
|
|
|
258
338
|
if (!workspaceRoot) {
|
|
259
339
|
return "Workspace root not available.";
|
|
260
340
|
}
|
|
261
|
-
const { skillsInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-install-
|
|
341
|
+
const { skillsInstall } = await Promise.resolve().then(() => _interopRequireWildcard(require("./skills-install-ILX6QVEF.cjs")));
|
|
262
342
|
const result = await skillsInstall(
|
|
263
343
|
{
|
|
264
344
|
skillsRegistry,
|
|
@@ -269,19 +349,19 @@ async function handleSkillsInstall(ctx, skillName) {
|
|
|
269
349
|
return _nullishCoalesce(result, () => ( "Skills install completed."));
|
|
270
350
|
}
|
|
271
351
|
async function handleSkillsSearch(ctx, query) {
|
|
272
|
-
const cache = new (0,
|
|
273
|
-
const fetcher = new (0,
|
|
274
|
-
const registry = await
|
|
352
|
+
const cache = new (0, _chunkPSAH4ZQBcjs.CommunitySkillsCache)();
|
|
353
|
+
const fetcher = new (0, _chunkQW2RW2GYcjs.GitHubRegistryFetcher)();
|
|
354
|
+
const registry = await _chunkSVVP4UUZcjs.fetchRegistryWithFallback.call(void 0, cache, fetcher);
|
|
275
355
|
if (!registry) {
|
|
276
356
|
return _chalk2.default.red("Unable to fetch community skills registry. Check your network connection.");
|
|
277
357
|
}
|
|
278
|
-
const client = new (0,
|
|
358
|
+
const client = new (0, _chunkSVVP4UUZcjs.LearnClient)();
|
|
279
359
|
const results = client.search(registry, query);
|
|
280
360
|
if (results.length === 0) {
|
|
281
|
-
return
|
|
361
|
+
return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.noResults", { query });
|
|
282
362
|
}
|
|
283
363
|
if (ctx.isNonInteractive) {
|
|
284
|
-
const lines = [
|
|
364
|
+
const lines = [_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.found", { count: String(results.length) })];
|
|
285
365
|
for (const skill2 of results) {
|
|
286
366
|
const stars = skill2.rating ? ` (${skill2.rating.toFixed(1)}/5)` : "";
|
|
287
367
|
lines.push(` ${_chalk2.default.cyan(skill2.name)} - ${skill2.description}${stars}`);
|
|
@@ -292,19 +372,19 @@ async function handleSkillsSearch(ctx, query) {
|
|
|
292
372
|
label: `${s.name} - ${s.description}`,
|
|
293
373
|
value: s.id
|
|
294
374
|
}));
|
|
295
|
-
const selected = await
|
|
296
|
-
title:
|
|
375
|
+
const selected = await withModalPause(ctx, () => _chunkCK4HAHVYcjs.showModal.call(void 0, {
|
|
376
|
+
title: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.selectPrompt"),
|
|
297
377
|
options
|
|
298
|
-
});
|
|
378
|
+
}));
|
|
299
379
|
if (!selected) {
|
|
300
|
-
return
|
|
380
|
+
return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.noResults", { query });
|
|
301
381
|
}
|
|
302
382
|
const skill = results.find((s) => s.id === selected.value);
|
|
303
|
-
if (!skill) return
|
|
383
|
+
if (!skill) return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.noResults", { query });
|
|
304
384
|
if (!ctx.workspaceRoot) {
|
|
305
385
|
return "Workspace root not available for install.";
|
|
306
386
|
}
|
|
307
|
-
return
|
|
387
|
+
return _chunkSVVP4UUZcjs.installSkillWithSecurity.call(void 0,
|
|
308
388
|
{ skillsRegistry: ctx.skillsRegistry, workspaceRoot: ctx.workspaceRoot, hookManager: ctx.hookManager, isNonInteractive: ctx.isNonInteractive },
|
|
309
389
|
skill,
|
|
310
390
|
cache,
|
|
@@ -312,17 +392,17 @@ async function handleSkillsSearch(ctx, query) {
|
|
|
312
392
|
);
|
|
313
393
|
}
|
|
314
394
|
async function handleSkillsTrending() {
|
|
315
|
-
const cache = new (0,
|
|
316
|
-
const fetcher = new (0,
|
|
317
|
-
const registry = await
|
|
395
|
+
const cache = new (0, _chunkPSAH4ZQBcjs.CommunitySkillsCache)();
|
|
396
|
+
const fetcher = new (0, _chunkQW2RW2GYcjs.GitHubRegistryFetcher)();
|
|
397
|
+
const registry = await _chunkSVVP4UUZcjs.fetchRegistryWithFallback.call(void 0, cache, fetcher);
|
|
318
398
|
if (!registry) {
|
|
319
399
|
return _chalk2.default.red("Unable to fetch community skills registry. Check your network connection.");
|
|
320
400
|
}
|
|
321
|
-
const client = new (0,
|
|
401
|
+
const client = new (0, _chunkSVVP4UUZcjs.LearnClient)();
|
|
322
402
|
const trending = client.trending(registry);
|
|
323
403
|
const lines = [];
|
|
324
404
|
lines.push("");
|
|
325
|
-
lines.push(_chalk2.default.bold(
|
|
405
|
+
lines.push(_chalk2.default.bold(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.trendingTitle")));
|
|
326
406
|
lines.push("");
|
|
327
407
|
for (let i = 0; i < trending.length; i++) {
|
|
328
408
|
const skill = trending[i];
|
|
@@ -331,7 +411,7 @@ async function handleSkillsTrending() {
|
|
|
331
411
|
const featured = skill.isFeatured ? _chalk2.default.yellow(" [featured]") : "";
|
|
332
412
|
const downloads = skill.downloadCount ? _chalk2.default.gray(` (${skill.downloadCount} installs)`) : "";
|
|
333
413
|
lines.push(`${idx} ${name}${featured}${downloads}`);
|
|
334
|
-
lines.push(`
|
|
414
|
+
lines.push(` ${skill.description}`);
|
|
335
415
|
lines.push(` {{action:Install|/skills install @${_nullishCoalesce(skill.author, () => ( "community"))}/${skill.id}}}`);
|
|
336
416
|
lines.push("");
|
|
337
417
|
}
|
|
@@ -343,16 +423,16 @@ async function handleSkillsRemove(ctx, slug) {
|
|
|
343
423
|
}
|
|
344
424
|
const allSkills = ctx.skillsRegistry.listSkills();
|
|
345
425
|
const target = allSkills.find(
|
|
346
|
-
(s) => _optionalChain([s, 'access',
|
|
426
|
+
(s) => _optionalChain([s, 'access', _8 => _8.metadata, 'optionalAccess', _9 => _9["agentskill-slug"]]) === slug || s.name === slug
|
|
347
427
|
);
|
|
348
428
|
if (!target) {
|
|
349
|
-
return
|
|
429
|
+
return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.removeNotFound", { name: slug });
|
|
350
430
|
}
|
|
351
431
|
if (!ctx.isNonInteractive) {
|
|
352
|
-
const confirmed = await
|
|
353
|
-
title:
|
|
432
|
+
const confirmed = await withModalPause(ctx, () => _chunkCK4HAHVYcjs.showConfirm.call(void 0, {
|
|
433
|
+
title: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.confirmRemove", { name: target.name }),
|
|
354
434
|
defaultValue: false
|
|
355
|
-
});
|
|
435
|
+
}));
|
|
356
436
|
if (!confirmed) return null;
|
|
357
437
|
}
|
|
358
438
|
const skillDir = _path2.default.dirname(target.path);
|
|
@@ -364,7 +444,7 @@ async function handleSkillsRemove(ctx, slug) {
|
|
|
364
444
|
activationType: "explicit",
|
|
365
445
|
action: "remove"
|
|
366
446
|
});
|
|
367
|
-
return _chalk2.default.green(
|
|
447
|
+
return _chalk2.default.green(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.removed", { name: target.name }));
|
|
368
448
|
} catch (err) {
|
|
369
449
|
const msg = err instanceof Error ? err.message : "Unknown error";
|
|
370
450
|
return _chalk2.default.red(`Failed to remove skill: ${msg}`);
|
|
@@ -375,13 +455,13 @@ function handleSkillsFeedback(slug, rating, _comment) {
|
|
|
375
455
|
return "Usage: /skills feedback <skill-slug> <1-5> [comment]";
|
|
376
456
|
}
|
|
377
457
|
if (rating === void 0 || isNaN(rating) || rating < 1 || rating > 5) {
|
|
378
|
-
return
|
|
458
|
+
return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.feedbackInvalid");
|
|
379
459
|
}
|
|
380
|
-
return
|
|
460
|
+
return _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.learn.feedbackThanks", { name: slug });
|
|
381
461
|
}
|
|
382
462
|
var metadata = {
|
|
383
463
|
command: "/skills",
|
|
384
|
-
description:
|
|
464
|
+
description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.skills.description"),
|
|
385
465
|
implemented: true,
|
|
386
466
|
subcommands: [
|
|
387
467
|
{ name: "use", description: "Activate a skill" },
|
|
@@ -389,7 +469,8 @@ var metadata = {
|
|
|
389
469
|
{ name: "search", description: "Search community skills" },
|
|
390
470
|
{ name: "trending", description: "Show trending community skills" },
|
|
391
471
|
{ name: "remove", description: "Remove an installed skill" },
|
|
392
|
-
{ name: "info", description: "Show detailed skill info" }
|
|
472
|
+
{ name: "info", description: "Show detailed skill info" },
|
|
473
|
+
{ name: "new", description: "Create a new project skill" }
|
|
393
474
|
]
|
|
394
475
|
};
|
|
395
476
|
var useMetadata = {
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_SYNC_CONFIG,
|
|
3
3
|
createSyncService
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import {
|
|
6
|
-
getAuthClient
|
|
7
|
-
} from "./chunk-VWDHR4HV.js";
|
|
4
|
+
} from "./chunk-V5ELP2XE.js";
|
|
8
5
|
import {
|
|
9
6
|
safePrompt
|
|
10
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MMKZSJUN.js";
|
|
8
|
+
import {
|
|
9
|
+
getAuthClient
|
|
10
|
+
} from "./chunk-6AYJCDTA.js";
|
|
11
11
|
import {
|
|
12
12
|
saveConfig
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-IEPLQ47J.js";
|
|
14
14
|
import {
|
|
15
15
|
AUTH_CONFIG
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-SHRLFX6F.js";
|
|
17
17
|
import {
|
|
18
18
|
t
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-LEZEWKPA.js";
|
|
20
20
|
|
|
21
21
|
// src/commands/login.ts
|
|
22
22
|
import chalk from "chalk";
|
|
@@ -27,26 +27,39 @@ var metadata = {
|
|
|
27
27
|
};
|
|
28
28
|
async function openBrowser(url) {
|
|
29
29
|
try {
|
|
30
|
-
const
|
|
31
|
-
if (open) {
|
|
32
|
-
await open(url);
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
const { exec } = await import("child_process");
|
|
30
|
+
const { exec, execFile } = await import("child_process");
|
|
36
31
|
const { promisify } = await import("util");
|
|
37
32
|
const execAsync = promisify(exec);
|
|
33
|
+
const execFileAsync = promisify(execFile);
|
|
38
34
|
const platform = process.platform;
|
|
39
|
-
let command;
|
|
40
35
|
if (platform === "darwin") {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
36
|
+
await execFileAsync("open", [url]);
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
if (platform === "win32") {
|
|
40
|
+
await execAsync(`start "" "${url}"`);
|
|
41
|
+
return true;
|
|
46
42
|
}
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
const openers = ["xdg-open", "sensible-browser", "x-www-browser", "firefox", "chromium", "google-chrome"];
|
|
44
|
+
for (const opener of openers) {
|
|
45
|
+
try {
|
|
46
|
+
await execAsync(`command -v ${opener}`);
|
|
47
|
+
await execFileAsync(opener, [url]);
|
|
48
|
+
return true;
|
|
49
|
+
} catch {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
console.log(`
|
|
54
|
+
Please open this URL manually:
|
|
55
|
+
${url}
|
|
56
|
+
`);
|
|
57
|
+
return false;
|
|
49
58
|
} catch {
|
|
59
|
+
console.log(`
|
|
60
|
+
Please open this URL manually:
|
|
61
|
+
${url}
|
|
62
|
+
`);
|
|
50
63
|
return false;
|
|
51
64
|
}
|
|
52
65
|
}
|
|
@@ -117,7 +130,9 @@ async function login(ctx) {
|
|
|
117
130
|
console.log();
|
|
118
131
|
console.log(chalk.green(t("commands.login.success", { email: pollResult.user.name || pollResult.user.email })));
|
|
119
132
|
console.log();
|
|
120
|
-
|
|
133
|
+
if (process.stdin.isTTY && process.stdout.isTTY) {
|
|
134
|
+
await checkAndRestoreSyncData(pollResult.token, pollResult.user.id, updatedConfig);
|
|
135
|
+
}
|
|
121
136
|
return null;
|
|
122
137
|
}
|
|
123
138
|
if (pollResult.status === "expired") {
|
|
@@ -125,6 +140,11 @@ async function login(ctx) {
|
|
|
125
140
|
console.log(chalk.red("Authorization code expired. Please try again."));
|
|
126
141
|
return null;
|
|
127
142
|
}
|
|
143
|
+
if (pollResult.status === "cancelled") {
|
|
144
|
+
process.stdout.write("\r" + " ".repeat(20) + "\r");
|
|
145
|
+
console.log(chalk.yellow("Authentication cancelled. Run /login again when you are ready."));
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
128
148
|
}
|
|
129
149
|
process.stdout.write("\r" + " ".repeat(20) + "\r");
|
|
130
150
|
console.log(chalk.red("Authorization timed out. Please try again."));
|
|
@@ -141,7 +161,7 @@ async function checkAndRestoreSyncData(token, userId, config) {
|
|
|
141
161
|
enabled: true
|
|
142
162
|
}
|
|
143
163
|
});
|
|
144
|
-
const { getSyncApiClient } = await import("./SyncApiClient-
|
|
164
|
+
const { getSyncApiClient } = await import("./SyncApiClient-G3FM65IV.js");
|
|
145
165
|
const apiClient = getSyncApiClient();
|
|
146
166
|
const remoteManifest = await apiClient.getRemoteManifest(token);
|
|
147
167
|
if (!remoteManifest || remoteManifest.files.length === 0) {
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// src/core/immediateCommandRouter.ts
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
function renderTerminalMarkdown(text) {
|
|
4
|
+
if (!text) return text;
|
|
5
|
+
let result = text.replace(
|
|
6
|
+
/\*\*([^*]+)\*\*/g,
|
|
7
|
+
(_match, content) => chalk.bold(content)
|
|
8
|
+
);
|
|
9
|
+
result = result.replace(
|
|
10
|
+
/(^|[\s(])_([^_]+)_(?=[\s),.:;!?]|$)/gm,
|
|
11
|
+
(_match, before, content) => `${before}${chalk.italic(content)}`
|
|
12
|
+
);
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
function routeOutput(text, opts) {
|
|
16
|
+
const rendered = renderTerminalMarkdown(text);
|
|
17
|
+
if (opts.persistentInputActiveTurn && !opts.terminalRegionsDisabled) {
|
|
18
|
+
opts.writeAbove(`${rendered}
|
|
19
|
+
`);
|
|
20
|
+
} else {
|
|
21
|
+
console.log(rendered);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function createBufferedRouteOutput(opts, transform = (text) => text) {
|
|
25
|
+
let pending = "";
|
|
26
|
+
const flushLine = (line) => {
|
|
27
|
+
routeOutput(transform(line), opts);
|
|
28
|
+
};
|
|
29
|
+
return {
|
|
30
|
+
push(chunk) {
|
|
31
|
+
pending += chunk;
|
|
32
|
+
while (true) {
|
|
33
|
+
const newlineIndex = pending.indexOf("\n");
|
|
34
|
+
const carriageIndex = pending.indexOf("\r");
|
|
35
|
+
const boundaryCandidates = [newlineIndex, carriageIndex].filter((value) => value >= 0);
|
|
36
|
+
if (boundaryCandidates.length === 0) {
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
const boundaryIndex = Math.min(...boundaryCandidates);
|
|
40
|
+
const boundaryWidth = pending[boundaryIndex] === "\r" && pending[boundaryIndex + 1] === "\n" ? 2 : 1;
|
|
41
|
+
const line = pending.slice(0, boundaryIndex);
|
|
42
|
+
pending = pending.slice(boundaryIndex + boundaryWidth);
|
|
43
|
+
flushLine(line);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
flush() {
|
|
47
|
+
if (!pending) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
flushLine(pending);
|
|
51
|
+
pending = "";
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function formatImmediateShellCommandHeader(command) {
|
|
56
|
+
return `You ran ${command}`;
|
|
57
|
+
}
|
|
58
|
+
function createImmediateShellCommandBlockWriter(command, opts) {
|
|
59
|
+
let pending = "";
|
|
60
|
+
let pendingStream = "stdout";
|
|
61
|
+
let lineIndex = 0;
|
|
62
|
+
routeOutput(chalk.cyan(formatImmediateShellCommandHeader(command)), opts);
|
|
63
|
+
const flushLine = (line, stream) => {
|
|
64
|
+
const prefix = lineIndex === 0 ? " \u2514 " : " ";
|
|
65
|
+
const renderedLine = `${prefix}${line}`;
|
|
66
|
+
routeOutput(stream === "stderr" ? chalk.red(renderedLine) : renderedLine, opts);
|
|
67
|
+
lineIndex += 1;
|
|
68
|
+
};
|
|
69
|
+
const push = (chunk, stream) => {
|
|
70
|
+
pendingStream = stream;
|
|
71
|
+
pending += chunk;
|
|
72
|
+
while (true) {
|
|
73
|
+
const newlineIndex = pending.indexOf("\n");
|
|
74
|
+
const carriageIndex = pending.indexOf("\r");
|
|
75
|
+
const boundaryCandidates = [newlineIndex, carriageIndex].filter((value) => value >= 0);
|
|
76
|
+
if (boundaryCandidates.length === 0) {
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
const boundaryIndex = Math.min(...boundaryCandidates);
|
|
80
|
+
const boundaryWidth = pending[boundaryIndex] === "\r" && pending[boundaryIndex + 1] === "\n" ? 2 : 1;
|
|
81
|
+
const line = pending.slice(0, boundaryIndex);
|
|
82
|
+
pending = pending.slice(boundaryIndex + boundaryWidth);
|
|
83
|
+
flushLine(line, stream);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
return {
|
|
87
|
+
pushStdout(chunk) {
|
|
88
|
+
push(chunk, "stdout");
|
|
89
|
+
},
|
|
90
|
+
pushStderr(chunk) {
|
|
91
|
+
push(chunk, "stderr");
|
|
92
|
+
},
|
|
93
|
+
flush() {
|
|
94
|
+
if (!pending) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
flushLine(pending, pendingStream);
|
|
98
|
+
pending = "";
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export {
|
|
104
|
+
renderTerminalMarkdown,
|
|
105
|
+
routeOutput,
|
|
106
|
+
createBufferedRouteOutput,
|
|
107
|
+
formatImmediateShellCommandHeader,
|
|
108
|
+
createImmediateShellCommandBlockWriter
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* @license
|
|
112
|
+
* Copyright 2025 Autohand AI LLC
|
|
113
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
114
|
+
*/
|