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
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
// src/providers/errors.ts
|
|
2
|
+
var ApiError = class extends Error {
|
|
3
|
+
code;
|
|
4
|
+
httpStatus;
|
|
5
|
+
retryable;
|
|
6
|
+
retryAfterMs;
|
|
7
|
+
rawDetail;
|
|
8
|
+
constructor(message, code, httpStatus, retryable, retryAfterMs, rawDetail) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = "ApiError";
|
|
11
|
+
this.code = code;
|
|
12
|
+
this.httpStatus = httpStatus;
|
|
13
|
+
this.retryable = retryable;
|
|
14
|
+
this.retryAfterMs = retryAfterMs;
|
|
15
|
+
this.rawDetail = rawDetail;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var FRIENDLY_MESSAGES = {
|
|
19
|
+
context_overflow: "The conversation is too long for this model. Try /undo to remove recent turns or /new to start fresh.",
|
|
20
|
+
model_not_found: "The requested model was not found. Use /model to select a different one.",
|
|
21
|
+
invalid_request: "The request was malformed and could not be processed.",
|
|
22
|
+
auth_failed: "Authentication failed. Please verify your API key in ~/.autohand/config.json.",
|
|
23
|
+
payment_required: "Payment required. Please check your account balance or billing settings.",
|
|
24
|
+
access_denied: "Access denied. Your API key may not have permission for this model.",
|
|
25
|
+
rate_limited: "Rate limit exceeded. Please wait a moment and try again, or choose a different model.",
|
|
26
|
+
server_error: "The AI service encountered an error. Please try again later.",
|
|
27
|
+
network_error: "Unable to connect to the AI service. Please check your internet connection.",
|
|
28
|
+
timeout: "The request timed out. The AI service may be experiencing high load.",
|
|
29
|
+
cancelled: "Request cancelled.",
|
|
30
|
+
unknown: "An unexpected error occurred. Please try again."
|
|
31
|
+
};
|
|
32
|
+
var MODEL_NOT_FOUND_PATTERNS = [
|
|
33
|
+
"invalid model",
|
|
34
|
+
"model does not exist",
|
|
35
|
+
"model not found",
|
|
36
|
+
"no endpoints found for model",
|
|
37
|
+
"does not exist or you do not have access",
|
|
38
|
+
// OpenRouter returns "X is not a valid model ID" for bad model names
|
|
39
|
+
"is not a valid model",
|
|
40
|
+
// Catch "model 'xyz' not found" where 'not found' is separate from 'model'
|
|
41
|
+
"' not found",
|
|
42
|
+
'" not found'
|
|
43
|
+
];
|
|
44
|
+
var CONTEXT_OVERFLOW_PATTERNS = [
|
|
45
|
+
"maximum context length",
|
|
46
|
+
"context length exceeded",
|
|
47
|
+
"context is too long",
|
|
48
|
+
"prompt is too long",
|
|
49
|
+
"reduce the length",
|
|
50
|
+
"payload too large",
|
|
51
|
+
"context window",
|
|
52
|
+
"token limit",
|
|
53
|
+
"tokens exceeds",
|
|
54
|
+
"too many tokens"
|
|
55
|
+
];
|
|
56
|
+
var CANCEL_PATTERNS = [
|
|
57
|
+
"cancelled",
|
|
58
|
+
"canceled",
|
|
59
|
+
"aborted",
|
|
60
|
+
"user force closed"
|
|
61
|
+
];
|
|
62
|
+
var NETWORK_PATTERNS = [
|
|
63
|
+
"econnrefused",
|
|
64
|
+
"econnreset",
|
|
65
|
+
"enotfound",
|
|
66
|
+
"etimedout",
|
|
67
|
+
"fetch failed",
|
|
68
|
+
"network",
|
|
69
|
+
"unable to connect"
|
|
70
|
+
];
|
|
71
|
+
var TIMEOUT_PATTERNS = [
|
|
72
|
+
"timed out",
|
|
73
|
+
"timeout"
|
|
74
|
+
];
|
|
75
|
+
function classifyApiError(httpStatus, errorBody, headers) {
|
|
76
|
+
const lower = errorBody.toLowerCase();
|
|
77
|
+
if (httpStatus === 401) {
|
|
78
|
+
return makeError("auth_failed", httpStatus, false, errorBody, headers);
|
|
79
|
+
}
|
|
80
|
+
if (httpStatus === 402) {
|
|
81
|
+
return makeError("payment_required", httpStatus, false, errorBody, headers);
|
|
82
|
+
}
|
|
83
|
+
if (httpStatus === 403) {
|
|
84
|
+
return makeError("access_denied", httpStatus, false, errorBody, headers);
|
|
85
|
+
}
|
|
86
|
+
if (httpStatus === 404) {
|
|
87
|
+
return makeError("model_not_found", httpStatus, false, errorBody, headers);
|
|
88
|
+
}
|
|
89
|
+
if (httpStatus === 429) {
|
|
90
|
+
return makeError("rate_limited", httpStatus, true, errorBody, headers);
|
|
91
|
+
}
|
|
92
|
+
if (httpStatus === 504) {
|
|
93
|
+
return makeError("timeout", httpStatus, true, errorBody, headers);
|
|
94
|
+
}
|
|
95
|
+
if (httpStatus >= 500) {
|
|
96
|
+
return makeError("server_error", httpStatus, true, errorBody, headers);
|
|
97
|
+
}
|
|
98
|
+
if (httpStatus === 400) {
|
|
99
|
+
if (matchesAny(lower, MODEL_NOT_FOUND_PATTERNS)) {
|
|
100
|
+
return makeError("model_not_found", httpStatus, false, errorBody, headers);
|
|
101
|
+
}
|
|
102
|
+
if (matchesAny(lower, CONTEXT_OVERFLOW_PATTERNS)) {
|
|
103
|
+
return makeError("context_overflow", httpStatus, true, errorBody, headers);
|
|
104
|
+
}
|
|
105
|
+
return makeError("invalid_request", httpStatus, false, errorBody, headers);
|
|
106
|
+
}
|
|
107
|
+
if (matchesAny(lower, CANCEL_PATTERNS)) {
|
|
108
|
+
return makeError("cancelled", httpStatus, false, errorBody, headers);
|
|
109
|
+
}
|
|
110
|
+
if (matchesAny(lower, TIMEOUT_PATTERNS)) {
|
|
111
|
+
return makeError("timeout", httpStatus, true, errorBody, headers);
|
|
112
|
+
}
|
|
113
|
+
if (matchesAny(lower, NETWORK_PATTERNS)) {
|
|
114
|
+
return makeError("network_error", httpStatus, true, errorBody, headers);
|
|
115
|
+
}
|
|
116
|
+
if (httpStatus === 0 || httpStatus === void 0) {
|
|
117
|
+
if (matchesAny(lower, MODEL_NOT_FOUND_PATTERNS)) {
|
|
118
|
+
return makeError("model_not_found", httpStatus, false, errorBody, headers);
|
|
119
|
+
}
|
|
120
|
+
if (matchesAny(lower, CONTEXT_OVERFLOW_PATTERNS)) {
|
|
121
|
+
return makeError("context_overflow", httpStatus, true, errorBody, headers);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return makeError("unknown", httpStatus, true, errorBody, headers);
|
|
125
|
+
}
|
|
126
|
+
function matchesAny(lower, patterns) {
|
|
127
|
+
return patterns.some((p) => lower.includes(p));
|
|
128
|
+
}
|
|
129
|
+
function stripHtmlFromBody(body) {
|
|
130
|
+
if (!/<[a-z/][\s\S]*>/i.test(body)) {
|
|
131
|
+
return body;
|
|
132
|
+
}
|
|
133
|
+
return body.replace(/<[^>]+>/g, " ").replace(/\s+/g, " ").trim();
|
|
134
|
+
}
|
|
135
|
+
function makeError(code, httpStatus, retryable, rawBody, headers) {
|
|
136
|
+
const friendlyMessage = FRIENDLY_MESSAGES[code];
|
|
137
|
+
const displayBody = rawBody ? stripHtmlFromBody(rawBody) : "";
|
|
138
|
+
const message = displayBody ? `${friendlyMessage}
|
|
139
|
+
${displayBody}` : friendlyMessage;
|
|
140
|
+
const retryAfterMs = parseRetryAfter(headers) ?? inferRetryAfterFromBody(code, rawBody);
|
|
141
|
+
return new ApiError(message, code, httpStatus, retryable, retryAfterMs, rawBody);
|
|
142
|
+
}
|
|
143
|
+
function inferRetryAfterFromBody(code, rawBody) {
|
|
144
|
+
if (code !== "rate_limited") {
|
|
145
|
+
return void 0;
|
|
146
|
+
}
|
|
147
|
+
const rpmMatch = rawBody.match(/limited to\s+(\d+)\s+requests?\s+per\s+minute/i);
|
|
148
|
+
if (rpmMatch) {
|
|
149
|
+
const rpm = Number(rpmMatch[1]);
|
|
150
|
+
if (Number.isFinite(rpm) && rpm > 0) {
|
|
151
|
+
return Math.ceil(6e4 / rpm);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const secondsMatch = rawBody.match(/retry (?:after|in)\s+(\d+)\s+seconds?/i);
|
|
155
|
+
if (secondsMatch) {
|
|
156
|
+
const seconds = Number(secondsMatch[1]);
|
|
157
|
+
if (Number.isFinite(seconds) && seconds > 0) {
|
|
158
|
+
return seconds * 1e3;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return void 0;
|
|
162
|
+
}
|
|
163
|
+
function sanitizeModelId(raw) {
|
|
164
|
+
return raw.replace(/\x1b\[20[01]~/g, "").replace(/\[20[01]~/g, "").replace(/[\x00-\x1f\x7f]/g, "").trim();
|
|
165
|
+
}
|
|
166
|
+
function parseRetryAfter(headers) {
|
|
167
|
+
if (!headers) return void 0;
|
|
168
|
+
const value = headers.get("retry-after");
|
|
169
|
+
if (!value) return void 0;
|
|
170
|
+
const seconds = Number(value);
|
|
171
|
+
if (!Number.isNaN(seconds) && seconds > 0) {
|
|
172
|
+
return seconds * 1e3;
|
|
173
|
+
}
|
|
174
|
+
const dateMs = Date.parse(value);
|
|
175
|
+
if (!Number.isNaN(dateMs)) {
|
|
176
|
+
const delayMs = dateMs - Date.now();
|
|
177
|
+
return delayMs > 0 ? delayMs : void 0;
|
|
178
|
+
}
|
|
179
|
+
return void 0;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export {
|
|
183
|
+
ApiError,
|
|
184
|
+
classifyApiError,
|
|
185
|
+
sanitizeModelId
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* @license
|
|
189
|
+
* Copyright 2025 Autohand AI LLC
|
|
190
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
191
|
+
*
|
|
192
|
+
* Centralized API error classification.
|
|
193
|
+
*
|
|
194
|
+
* Every provider (OpenRouter, Azure, MLX, Ollama, LLMGateway) and every
|
|
195
|
+
* consumer (agent.ts, RPC adapter, ACP adapter) delegates to this module
|
|
196
|
+
* so error handling logic lives in one place.
|
|
197
|
+
*/
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
+
var _chunkLJD7KR3Lcjs = require('./chunk-LJD7KR3L.cjs');
|
|
3
4
|
|
|
4
|
-
var _chunkCB4E2T5Ncjs = require('./chunk-CB4E2T5N.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkX5P6QQOBcjs = require('./chunk-X5P6QQOB.cjs');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
|
|
8
11
|
|
|
9
12
|
// src/commands/sync.ts
|
|
10
|
-
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
11
13
|
var _readline = require('readline'); var _readline2 = _interopRequireDefault(_readline);
|
|
12
14
|
var metadata = {
|
|
13
15
|
command: "/sync",
|
|
14
|
-
description:
|
|
16
|
+
description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.sync.description"),
|
|
15
17
|
implemented: true
|
|
16
18
|
};
|
|
17
19
|
var globalSyncService = null;
|
|
@@ -22,11 +24,12 @@ function getSyncService() {
|
|
|
22
24
|
return globalSyncService;
|
|
23
25
|
}
|
|
24
26
|
async function sync(ctx) {
|
|
25
|
-
const config = await
|
|
27
|
+
const config = await _chunkX5P6QQOBcjs.loadConfig.call(void 0, );
|
|
26
28
|
const isLoggedIn = Boolean(_optionalChain([config, 'access', _ => _.auth, 'optionalAccess', _2 => _2.token]) && _optionalChain([config, 'access', _3 => _3.auth, 'optionalAccess', _4 => _4.user]));
|
|
27
29
|
if (!isLoggedIn) {
|
|
28
|
-
|
|
29
|
-
console.log(
|
|
30
|
+
const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
|
|
31
|
+
console.log(theme.warning("\nSettings sync requires authentication."));
|
|
32
|
+
console.log(theme.muted("Run /login to sign in and enable cloud sync.\n"));
|
|
30
33
|
return null;
|
|
31
34
|
}
|
|
32
35
|
const data = await gatherSyncData(ctx, config);
|
|
@@ -75,17 +78,21 @@ function renderSyncUI(data, ctx) {
|
|
|
75
78
|
if (isTTY) {
|
|
76
79
|
_readline2.default.emitKeypressEvents(input);
|
|
77
80
|
if (!wasRaw && typeof input.setRawMode === "function") {
|
|
78
|
-
|
|
81
|
+
try {
|
|
82
|
+
input.setRawMode(true);
|
|
83
|
+
} catch (e2) {
|
|
84
|
+
}
|
|
79
85
|
}
|
|
80
86
|
if (typeof input.setEncoding === "function") {
|
|
81
87
|
input.setEncoding("utf8");
|
|
82
88
|
}
|
|
83
89
|
}
|
|
84
90
|
const render = () => {
|
|
91
|
+
const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
|
|
85
92
|
process.stdout.write("\x1B[2J\x1B[H");
|
|
86
93
|
renderTabHeader(tabs, currentTab);
|
|
87
94
|
renderTabContent(tabs[currentTab], data);
|
|
88
|
-
console.log(
|
|
95
|
+
console.log(theme.muted("\nEsc to exit | Tab to cycle | s: sync now | e: toggle enabled"));
|
|
89
96
|
};
|
|
90
97
|
const handler = async (_str, key) => {
|
|
91
98
|
const char = (_str || "").toLowerCase();
|
|
@@ -111,18 +118,19 @@ function renderSyncUI(data, ctx) {
|
|
|
111
118
|
}
|
|
112
119
|
if (char === "s") {
|
|
113
120
|
if (data.syncService) {
|
|
114
|
-
|
|
121
|
+
const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
|
|
122
|
+
console.log(theme.accent("\nSyncing..."));
|
|
115
123
|
try {
|
|
116
124
|
const result = await data.syncService.sync();
|
|
117
125
|
if (result.success) {
|
|
118
|
-
console.log(
|
|
126
|
+
console.log(theme.success(`Sync complete! Uploaded: ${result.uploaded}, Downloaded: ${result.downloaded}`));
|
|
119
127
|
} else {
|
|
120
|
-
console.log(
|
|
128
|
+
console.log(theme.error(`Sync failed: ${result.error}`));
|
|
121
129
|
}
|
|
122
|
-
const config = await
|
|
130
|
+
const config = await _chunkX5P6QQOBcjs.loadConfig.call(void 0, );
|
|
123
131
|
Object.assign(data, await gatherSyncData(ctx, config));
|
|
124
132
|
} catch (err) {
|
|
125
|
-
console.log(
|
|
133
|
+
console.log(theme.error(`Sync error: ${err}`));
|
|
126
134
|
}
|
|
127
135
|
await sleep(1500);
|
|
128
136
|
render();
|
|
@@ -131,17 +139,17 @@ function renderSyncUI(data, ctx) {
|
|
|
131
139
|
}
|
|
132
140
|
if (char === "e") {
|
|
133
141
|
try {
|
|
134
|
-
const config = await
|
|
142
|
+
const config = await _chunkX5P6QQOBcjs.loadConfig.call(void 0, );
|
|
135
143
|
const newEnabled = _optionalChain([config, 'access', _16 => _16.sync, 'optionalAccess', _17 => _17.enabled]) === false;
|
|
136
144
|
config.sync = { ...config.sync, enabled: newEnabled };
|
|
137
|
-
await
|
|
145
|
+
await _chunkX5P6QQOBcjs.saveConfig.call(void 0, config);
|
|
138
146
|
data.enabled = newEnabled;
|
|
139
|
-
console.log(
|
|
140
|
-
${newEnabled ?
|
|
147
|
+
console.log(_chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, ).accent(`
|
|
148
|
+
${newEnabled ? _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.sync.enabled") : _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.sync.disabled")}`));
|
|
141
149
|
await sleep(1e3);
|
|
142
150
|
render();
|
|
143
151
|
} catch (err) {
|
|
144
|
-
console.log(
|
|
152
|
+
console.log(_chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, ).error(`Error toggling sync: ${err}`));
|
|
145
153
|
}
|
|
146
154
|
return;
|
|
147
155
|
}
|
|
@@ -149,7 +157,10 @@ ${newEnabled ? _chunk7BTSG4MEcjs.t.call(void 0, "commands.sync.enabled") : _chun
|
|
|
149
157
|
const cleanup = () => {
|
|
150
158
|
input.off("keypress", handler);
|
|
151
159
|
if (isTTY && !wasRaw && typeof input.setRawMode === "function") {
|
|
152
|
-
|
|
160
|
+
try {
|
|
161
|
+
input.setRawMode(false);
|
|
162
|
+
} catch (e3) {
|
|
163
|
+
}
|
|
153
164
|
}
|
|
154
165
|
if (wasPaused && typeof input.pause === "function") {
|
|
155
166
|
input.pause();
|
|
@@ -161,10 +172,11 @@ ${newEnabled ? _chunk7BTSG4MEcjs.t.call(void 0, "commands.sync.enabled") : _chun
|
|
|
161
172
|
});
|
|
162
173
|
}
|
|
163
174
|
function renderTabHeader(tabs, currentIndex) {
|
|
175
|
+
const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
|
|
164
176
|
const header = tabs.map((tab, i) => {
|
|
165
|
-
return i === currentIndex ?
|
|
177
|
+
return i === currentIndex ? theme.selectedTab(tab) : theme.tab(tab);
|
|
166
178
|
}).join(" ");
|
|
167
|
-
console.log(`Settings Sync: ${header} ${
|
|
179
|
+
console.log(`Settings Sync: ${header} ${theme.muted("(tab to cycle)")}
|
|
168
180
|
`);
|
|
169
181
|
}
|
|
170
182
|
function renderTabContent(tab, data) {
|
|
@@ -181,49 +193,52 @@ function renderTabContent(tab, data) {
|
|
|
181
193
|
}
|
|
182
194
|
}
|
|
183
195
|
function renderStatusTab(data) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
console.log(` ${
|
|
189
|
-
console.log(` ${
|
|
190
|
-
console.log(` ${
|
|
191
|
-
console.log(` ${
|
|
192
|
-
console.log(` ${
|
|
196
|
+
const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
|
|
197
|
+
console.log(theme.bold("Sync Status\n"));
|
|
198
|
+
const statusIcon = data.enabled ? theme.success("\u2713") : theme.error("\u2717");
|
|
199
|
+
const runningIcon = data.isRunning ? theme.success("\u2713") : theme.warning("\u25CB");
|
|
200
|
+
console.log(` ${theme.accent("Enabled".padEnd(20))} ${statusIcon} ${data.enabled ? "Yes" : "No"}`);
|
|
201
|
+
console.log(` ${theme.accent("Service Running".padEnd(20))} ${runningIcon} ${data.isRunning ? "Yes" : "No"}`);
|
|
202
|
+
console.log(` ${theme.accent("Last Sync".padEnd(20))} ${data.lastSync ? formatDate(data.lastSync) : theme.muted("Never")}`);
|
|
203
|
+
console.log(` ${theme.accent("Files Tracked".padEnd(20))} ${data.fileCount}`);
|
|
204
|
+
console.log(` ${theme.accent("Total Size".padEnd(20))} ${formatSize(data.totalSize)}`);
|
|
205
|
+
console.log(` ${theme.accent("Sync Interval".padEnd(20))} ${formatInterval(data.interval)}`);
|
|
193
206
|
}
|
|
194
207
|
function renderSettingsTab(data) {
|
|
195
|
-
|
|
196
|
-
console.log(
|
|
197
|
-
console.log(` ${
|
|
198
|
-
console.log(` ${
|
|
199
|
-
console.log(` ${
|
|
200
|
-
console.log(
|
|
201
|
-
console.log(
|
|
202
|
-
console.log(
|
|
203
|
-
console.log(
|
|
204
|
-
console.log(
|
|
205
|
-
console.log(
|
|
206
|
-
console.log(
|
|
207
|
-
console.log(
|
|
208
|
-
console.log(
|
|
209
|
-
console.log(
|
|
210
|
-
console.log(
|
|
211
|
-
console.log(
|
|
208
|
+
const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
|
|
209
|
+
console.log(theme.bold("Sync Settings\n"));
|
|
210
|
+
console.log(` ${theme.accent("Enabled".padEnd(25))} ${data.enabled ? theme.success("true") : theme.muted("false")}`);
|
|
211
|
+
console.log(` ${theme.accent("Interval".padEnd(25))} ${formatInterval(data.interval)}`);
|
|
212
|
+
console.log(` ${theme.accent("Include Telemetry".padEnd(25))} ${data.includeTelemetry ? theme.success("true") : theme.muted("false")}`);
|
|
213
|
+
console.log(` ${theme.accent("Include Feedback".padEnd(25))} ${data.includeFeedback ? theme.success("true") : theme.muted("false")}`);
|
|
214
|
+
console.log(theme.bold("\nWhat Gets Synced\n"));
|
|
215
|
+
console.log(theme.muted(" \u2713 config.json (API keys encrypted)"));
|
|
216
|
+
console.log(theme.muted(" \u2713 agents/ (custom agents)"));
|
|
217
|
+
console.log(theme.muted(" \u2713 skills/ (custom skills)"));
|
|
218
|
+
console.log(theme.muted(" \u2713 hooks/ (user hooks)"));
|
|
219
|
+
console.log(theme.muted(" \u2713 memory/ (user memory)"));
|
|
220
|
+
console.log(theme.muted(" \u2713 sessions/ (session history)"));
|
|
221
|
+
console.log(theme.muted(" \u2713 projects/ (project knowledge)"));
|
|
222
|
+
console.log(theme.bold("\nNot Synced\n"));
|
|
223
|
+
console.log(theme.muted(" \u2717 device-id (unique per device)"));
|
|
224
|
+
console.log(theme.muted(" \u2717 error.log (local only)"));
|
|
225
|
+
console.log(theme.muted(" \u2717 version-*.json (cache files)"));
|
|
212
226
|
}
|
|
213
227
|
function renderActivityTab(data) {
|
|
214
|
-
|
|
228
|
+
const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
|
|
229
|
+
console.log(theme.bold("Recent Sync Activity\n"));
|
|
215
230
|
if (!data.lastSync) {
|
|
216
|
-
console.log(
|
|
217
|
-
console.log(
|
|
231
|
+
console.log(theme.muted(" No sync activity yet."));
|
|
232
|
+
console.log(theme.muted(' Press "s" to trigger a manual sync.'));
|
|
218
233
|
return;
|
|
219
234
|
}
|
|
220
|
-
console.log(` ${
|
|
221
|
-
console.log(` ${
|
|
222
|
-
console.log(` ${
|
|
223
|
-
console.log(
|
|
224
|
-
console.log(
|
|
225
|
-
console.log(
|
|
226
|
-
console.log(
|
|
235
|
+
console.log(` ${theme.accent("Last successful sync:")} ${formatDate(data.lastSync)}`);
|
|
236
|
+
console.log(` ${theme.accent("Files synced:")} ${data.fileCount}`);
|
|
237
|
+
console.log(` ${theme.accent("Data transferred:")} ${formatSize(data.totalSize)}`);
|
|
238
|
+
console.log(theme.bold("\nTips\n"));
|
|
239
|
+
console.log(theme.muted(" - Sync runs automatically every 5 minutes"));
|
|
240
|
+
console.log(theme.muted(' - Press "s" anytime to trigger a manual sync'));
|
|
241
|
+
console.log(theme.muted(" - Cloud data takes priority on conflicts"));
|
|
227
242
|
}
|
|
228
243
|
function formatDate(isoString) {
|
|
229
244
|
try {
|
|
@@ -241,7 +256,7 @@ function formatDate(isoString) {
|
|
|
241
256
|
} else {
|
|
242
257
|
return date.toLocaleDateString() + " " + date.toLocaleTimeString();
|
|
243
258
|
}
|
|
244
|
-
} catch (
|
|
259
|
+
} catch (e4) {
|
|
245
260
|
return isoString;
|
|
246
261
|
}
|
|
247
262
|
}
|
|
@@ -55,16 +55,16 @@ var McpStdioConnection = class _McpStdioConnection extends EventEmitter {
|
|
|
55
55
|
super();
|
|
56
56
|
this.config = config;
|
|
57
57
|
this.framing = framing;
|
|
58
|
-
this.process = null;
|
|
59
|
-
this.lineBuffer = "";
|
|
60
|
-
this.frameBuffer = Buffer.alloc(0);
|
|
61
|
-
this.nextId = 1;
|
|
62
|
-
this.pendingRequests = /* @__PURE__ */ new Map();
|
|
63
|
-
}
|
|
64
|
-
static {
|
|
65
|
-
/** Default timeout for RPC requests in milliseconds */
|
|
66
|
-
this.REQUEST_TIMEOUT_MS = 3e4;
|
|
67
58
|
}
|
|
59
|
+
config;
|
|
60
|
+
framing;
|
|
61
|
+
process = null;
|
|
62
|
+
lineBuffer = "";
|
|
63
|
+
frameBuffer = Buffer.alloc(0);
|
|
64
|
+
nextId = 1;
|
|
65
|
+
pendingRequests = /* @__PURE__ */ new Map();
|
|
66
|
+
/** Default timeout for RPC requests in milliseconds */
|
|
67
|
+
static REQUEST_TIMEOUT_MS = 3e4;
|
|
68
68
|
/**
|
|
69
69
|
* Spawns the server process and sets up communication channels.
|
|
70
70
|
*/
|
|
@@ -319,13 +319,12 @@ var McpHttpConnection = class _McpHttpConnection extends EventEmitter {
|
|
|
319
319
|
constructor(config) {
|
|
320
320
|
super();
|
|
321
321
|
this.config = config;
|
|
322
|
-
this.nextId = 1;
|
|
323
|
-
this.sessionId = null;
|
|
324
|
-
}
|
|
325
|
-
static {
|
|
326
|
-
/** Default timeout for HTTP requests in milliseconds */
|
|
327
|
-
this.REQUEST_TIMEOUT_MS = 3e4;
|
|
328
322
|
}
|
|
323
|
+
config;
|
|
324
|
+
nextId = 1;
|
|
325
|
+
sessionId = null;
|
|
326
|
+
/** Default timeout for HTTP requests in milliseconds */
|
|
327
|
+
static REQUEST_TIMEOUT_MS = 3e4;
|
|
329
328
|
/**
|
|
330
329
|
* No-op for HTTP transport (no persistent process to start).
|
|
331
330
|
*/
|
|
@@ -452,10 +451,8 @@ var McpHttpConnection = class _McpHttpConnection extends EventEmitter {
|
|
|
452
451
|
}
|
|
453
452
|
};
|
|
454
453
|
var McpClientManager = class {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
this.connections = /* @__PURE__ */ new Map();
|
|
458
|
-
}
|
|
454
|
+
servers = /* @__PURE__ */ new Map();
|
|
455
|
+
connections = /* @__PURE__ */ new Map();
|
|
459
456
|
// ============================================================================
|
|
460
457
|
// Static Helper Methods
|
|
461
458
|
// ============================================================================
|