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
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
showConfirm
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NZ3ZWLUW.js";
|
|
4
4
|
import {
|
|
5
5
|
AUTOHAND_PATHS,
|
|
6
6
|
PROJECT_DIR_NAME
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SHRLFX6F.js";
|
|
8
8
|
import {
|
|
9
9
|
t
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-LEZEWKPA.js";
|
|
11
11
|
|
|
12
12
|
// src/skills/communityInstaller.ts
|
|
13
13
|
import crypto from "crypto";
|
|
@@ -0,0 +1,139 @@
|
|
|
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(); } }
|
|
2
|
+
|
|
3
|
+
var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
|
|
4
|
+
|
|
5
|
+
// src/permissions/localProjectPermissions.ts
|
|
6
|
+
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
7
|
+
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
8
|
+
var LOCAL_SETTINGS_FILE = "settings.local.json";
|
|
9
|
+
function normalizePermissionSettings(settings) {
|
|
10
|
+
if (!settings) {
|
|
11
|
+
return settings;
|
|
12
|
+
}
|
|
13
|
+
const allowList = _nullishCoalesce(_nullishCoalesce(settings.allowList, () => ( settings.whitelist)), () => ( []));
|
|
14
|
+
const denyList = _nullishCoalesce(_nullishCoalesce(settings.denyList, () => ( settings.blacklist)), () => ( []));
|
|
15
|
+
return {
|
|
16
|
+
...settings,
|
|
17
|
+
allowList,
|
|
18
|
+
denyList,
|
|
19
|
+
whitelist: void 0,
|
|
20
|
+
blacklist: void 0
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function getLocalSettingsPath(workspaceRoot) {
|
|
24
|
+
return _path2.default.join(workspaceRoot, _chunkKASXKDF2cjs.PROJECT_DIR_NAME, LOCAL_SETTINGS_FILE);
|
|
25
|
+
}
|
|
26
|
+
async function loadLocalProjectSettings(workspaceRoot) {
|
|
27
|
+
const settingsPath = getLocalSettingsPath(workspaceRoot);
|
|
28
|
+
try {
|
|
29
|
+
if (await _fsextra2.default.pathExists(settingsPath)) {
|
|
30
|
+
const content = await _fsextra2.default.readFile(settingsPath, "utf8");
|
|
31
|
+
const parsed = JSON.parse(content);
|
|
32
|
+
return {
|
|
33
|
+
...parsed,
|
|
34
|
+
permissions: normalizePermissionSettings(parsed.permissions)
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
} catch (error) {
|
|
38
|
+
console.error(`Warning: Failed to parse local settings at ${settingsPath}:`, error.message);
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
async function saveLocalProjectSettings(workspaceRoot, settings) {
|
|
43
|
+
const settingsPath = getLocalSettingsPath(workspaceRoot);
|
|
44
|
+
const dir = _path2.default.dirname(settingsPath);
|
|
45
|
+
await _fsextra2.default.ensureDir(dir);
|
|
46
|
+
const toSave = {
|
|
47
|
+
...settings,
|
|
48
|
+
version: 1
|
|
49
|
+
};
|
|
50
|
+
await _fsextra2.default.writeJson(settingsPath, toSave, { spaces: 2 });
|
|
51
|
+
}
|
|
52
|
+
async function addToLocalAllowList(workspaceRoot, pattern) {
|
|
53
|
+
const current = await loadLocalProjectSettings(workspaceRoot) || {};
|
|
54
|
+
const permissions = normalizePermissionSettings(current.permissions) || {};
|
|
55
|
+
const allowList = permissions.allowList || [];
|
|
56
|
+
if (!allowList.includes(pattern)) {
|
|
57
|
+
allowList.push(pattern);
|
|
58
|
+
await saveLocalProjectSettings(workspaceRoot, {
|
|
59
|
+
...current,
|
|
60
|
+
permissions: {
|
|
61
|
+
...permissions,
|
|
62
|
+
allowList
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function addToLocalDenyList(workspaceRoot, pattern) {
|
|
68
|
+
const current = await loadLocalProjectSettings(workspaceRoot) || {};
|
|
69
|
+
const permissions = normalizePermissionSettings(current.permissions) || {};
|
|
70
|
+
const denyList = permissions.denyList || [];
|
|
71
|
+
if (!denyList.includes(pattern)) {
|
|
72
|
+
denyList.push(pattern);
|
|
73
|
+
await saveLocalProjectSettings(workspaceRoot, {
|
|
74
|
+
...current,
|
|
75
|
+
permissions: {
|
|
76
|
+
...permissions,
|
|
77
|
+
denyList
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function mergePermissions(globalSettings, localSettings) {
|
|
83
|
+
const normalizedGlobal = _nullishCoalesce(normalizePermissionSettings(globalSettings), () => ( {}));
|
|
84
|
+
const normalizedLocal = normalizePermissionSettings(localSettings);
|
|
85
|
+
if (!normalizedLocal) {
|
|
86
|
+
return normalizedGlobal;
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
// Global settings as base
|
|
90
|
+
...normalizedGlobal,
|
|
91
|
+
// Local mode overrides global if set
|
|
92
|
+
mode: normalizedLocal.mode || normalizedGlobal.mode,
|
|
93
|
+
allowList: [
|
|
94
|
+
...normalizedGlobal.allowList || [],
|
|
95
|
+
...normalizedLocal.allowList || []
|
|
96
|
+
].filter((v, i, a) => a.indexOf(v) === i),
|
|
97
|
+
denyList: [
|
|
98
|
+
...normalizedGlobal.denyList || [],
|
|
99
|
+
...normalizedLocal.denyList || []
|
|
100
|
+
].filter((v, i, a) => a.indexOf(v) === i),
|
|
101
|
+
// Merge rules (local rules checked first)
|
|
102
|
+
rules: [
|
|
103
|
+
...normalizedLocal.rules || [],
|
|
104
|
+
...normalizedGlobal.rules || []
|
|
105
|
+
],
|
|
106
|
+
// Use local rememberSession if set, otherwise global
|
|
107
|
+
rememberSession: _nullishCoalesce(normalizedLocal.rememberSession, () => ( normalizedGlobal.rememberSession)),
|
|
108
|
+
allowPatterns: [
|
|
109
|
+
...normalizedGlobal.allowPatterns || [],
|
|
110
|
+
...normalizedLocal.allowPatterns || []
|
|
111
|
+
],
|
|
112
|
+
denyPatterns: [
|
|
113
|
+
...normalizedGlobal.denyPatterns || [],
|
|
114
|
+
...normalizedLocal.denyPatterns || []
|
|
115
|
+
],
|
|
116
|
+
availableTools: [
|
|
117
|
+
...normalizedGlobal.availableTools || [],
|
|
118
|
+
...normalizedLocal.availableTools || []
|
|
119
|
+
],
|
|
120
|
+
excludedTools: [
|
|
121
|
+
...normalizedGlobal.excludedTools || [],
|
|
122
|
+
...normalizedLocal.excludedTools || []
|
|
123
|
+
],
|
|
124
|
+
allPathsAllowed: _nullishCoalesce(normalizedLocal.allPathsAllowed, () => ( normalizedGlobal.allPathsAllowed)),
|
|
125
|
+
allUrlsAllowed: _nullishCoalesce(normalizedLocal.allUrlsAllowed, () => ( normalizedGlobal.allUrlsAllowed))
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
exports.loadLocalProjectSettings = loadLocalProjectSettings; exports.addToLocalAllowList = addToLocalAllowList; exports.addToLocalDenyList = addToLocalDenyList; exports.mergePermissions = mergePermissions;
|
|
135
|
+
/**
|
|
136
|
+
* Local Project Permissions
|
|
137
|
+
* Handles per-project permission settings stored in .autohand/settings.local.json
|
|
138
|
+
* @license Apache-2.0
|
|
139
|
+
*/
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
t
|
|
3
|
-
} from "./chunk-APIXPPMT.js";
|
|
4
|
-
|
|
5
|
-
// src/commands/add-dir.ts
|
|
6
|
-
import chalk2 from "chalk";
|
|
7
|
-
import fs2 from "fs-extra";
|
|
8
|
-
import path2 from "path";
|
|
9
|
-
|
|
10
1
|
// src/startup/workspaceSafety.ts
|
|
11
2
|
import os from "os";
|
|
12
3
|
import path from "path";
|
|
@@ -65,9 +56,9 @@ function normalizePath(inputPath) {
|
|
|
65
56
|
}
|
|
66
57
|
return normalized;
|
|
67
58
|
}
|
|
68
|
-
function pathsEqual(path1,
|
|
59
|
+
function pathsEqual(path1, path2) {
|
|
69
60
|
const normalized1 = normalizePath(path1);
|
|
70
|
-
const normalized2 = normalizePath(
|
|
61
|
+
const normalized2 = normalizePath(path2);
|
|
71
62
|
if (process.platform === "darwin" || process.platform === "win32") {
|
|
72
63
|
return normalized1.toLowerCase() === normalized2.toLowerCase();
|
|
73
64
|
}
|
|
@@ -260,73 +251,7 @@ function printDangerousWorkspaceWarning(workspacePath, result) {
|
|
|
260
251
|
console.log();
|
|
261
252
|
}
|
|
262
253
|
|
|
263
|
-
// src/commands/add-dir.ts
|
|
264
|
-
async function addDir(ctx, args) {
|
|
265
|
-
const dirPath = args.join(" ").trim();
|
|
266
|
-
if (!dirPath) {
|
|
267
|
-
console.log();
|
|
268
|
-
console.log(chalk2.bold.cyan("Workspace Directories"));
|
|
269
|
-
console.log(chalk2.gray("\u2500".repeat(50)));
|
|
270
|
-
console.log();
|
|
271
|
-
console.log(chalk2.bold("Primary Workspace:"));
|
|
272
|
-
console.log(chalk2.cyan(` ${ctx.workspaceRoot}`));
|
|
273
|
-
console.log();
|
|
274
|
-
if (ctx.additionalDirs.length > 0) {
|
|
275
|
-
console.log(chalk2.bold("Additional Directories:"));
|
|
276
|
-
ctx.additionalDirs.forEach((dir, index) => {
|
|
277
|
-
console.log(chalk2.green(` ${index + 1}. ${dir}`));
|
|
278
|
-
});
|
|
279
|
-
} else {
|
|
280
|
-
console.log(chalk2.gray("No additional directories configured."));
|
|
281
|
-
}
|
|
282
|
-
console.log();
|
|
283
|
-
console.log(chalk2.gray("Usage: /add-dir <path> to add a new directory"));
|
|
284
|
-
console.log();
|
|
285
|
-
return null;
|
|
286
|
-
}
|
|
287
|
-
const resolvedPath = path2.resolve(dirPath);
|
|
288
|
-
if (!await fs2.pathExists(resolvedPath)) {
|
|
289
|
-
console.log(chalk2.red(t("commands.addDir.notFound", { path: dirPath })));
|
|
290
|
-
return null;
|
|
291
|
-
}
|
|
292
|
-
const stats = await fs2.stat(resolvedPath);
|
|
293
|
-
if (!stats.isDirectory()) {
|
|
294
|
-
console.log(chalk2.red(`Error: Path is not a directory: ${dirPath}`));
|
|
295
|
-
return null;
|
|
296
|
-
}
|
|
297
|
-
const safetyResult = checkWorkspaceSafety(resolvedPath);
|
|
298
|
-
if (!safetyResult.safe) {
|
|
299
|
-
console.log(chalk2.red(`Error: Unsafe directory: ${dirPath}`));
|
|
300
|
-
console.log(chalk2.yellow(` ${safetyResult.reason}`));
|
|
301
|
-
return null;
|
|
302
|
-
}
|
|
303
|
-
if (resolvedPath === ctx.workspaceRoot) {
|
|
304
|
-
console.log(chalk2.yellow(`Directory is already the primary workspace: ${resolvedPath}`));
|
|
305
|
-
return null;
|
|
306
|
-
}
|
|
307
|
-
if (ctx.additionalDirs.includes(resolvedPath)) {
|
|
308
|
-
console.log(chalk2.yellow(t("commands.addDir.alreadyAdded", { path: resolvedPath })));
|
|
309
|
-
return null;
|
|
310
|
-
}
|
|
311
|
-
ctx.addAdditionalDir(resolvedPath);
|
|
312
|
-
console.log(chalk2.green(t("commands.addDir.added", { path: resolvedPath })));
|
|
313
|
-
console.log(chalk2.gray("You can now read, write, and modify files in this directory."));
|
|
314
|
-
return null;
|
|
315
|
-
}
|
|
316
|
-
var metadata = {
|
|
317
|
-
command: "/add-dir",
|
|
318
|
-
description: t("commands.addDir.description"),
|
|
319
|
-
implemented: true
|
|
320
|
-
};
|
|
321
|
-
|
|
322
254
|
export {
|
|
323
255
|
checkWorkspaceSafety,
|
|
324
|
-
printDangerousWorkspaceWarning
|
|
325
|
-
addDir,
|
|
326
|
-
metadata
|
|
256
|
+
printDangerousWorkspaceWarning
|
|
327
257
|
};
|
|
328
|
-
/**
|
|
329
|
-
* @license
|
|
330
|
-
* Copyright 2025 Autohand AI LLC
|
|
331
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
332
|
-
*/
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/commands/yolo.ts
|
|
2
|
+
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
3
|
+
async function toggleYolo(ctx) {
|
|
4
|
+
if (!ctx.setYoloMode) {
|
|
5
|
+
return "YOLO mode toggle not available in this context.";
|
|
6
|
+
}
|
|
7
|
+
const isActive = ctx.permissionManager.getMode() === "unrestricted";
|
|
8
|
+
if (isActive) {
|
|
9
|
+
ctx.setYoloMode(void 0);
|
|
10
|
+
console.log();
|
|
11
|
+
console.log(_chalk2.default.cyan("YOLO mode deactivated. Returning to interactive approval."));
|
|
12
|
+
console.log();
|
|
13
|
+
} else {
|
|
14
|
+
ctx.setYoloMode("allow:*");
|
|
15
|
+
console.log();
|
|
16
|
+
console.log(_chalk2.default.yellow.bold("\u{1F680} YOLO MODE ACTIVATED"));
|
|
17
|
+
console.log(_chalk2.default.gray("You only live once! All actions will be auto-approved."));
|
|
18
|
+
console.log(_chalk2.default.gray("Security blacklist still applies for sensitive files."));
|
|
19
|
+
console.log();
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
var metadata = {
|
|
24
|
+
command: "/yolo",
|
|
25
|
+
description: "Toggle YOLO mode \u2014 auto-approve all actions",
|
|
26
|
+
implemented: true
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
exports.toggleYolo = toggleYolo; exports.metadata = metadata;
|
|
33
|
+
/**
|
|
34
|
+
* @license
|
|
35
|
+
* Copyright 2025 Autohand AI LLC
|
|
36
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
37
|
+
*/
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AUTOHAND_PATHS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SHRLFX6F.js";
|
|
4
4
|
|
|
5
5
|
// src/session/SessionManager.ts
|
|
6
6
|
import fs from "fs-extra";
|
|
7
7
|
import path from "path";
|
|
8
8
|
import crypto from "crypto";
|
|
9
9
|
var SessionManager = class {
|
|
10
|
+
sessionsDir;
|
|
11
|
+
currentSession = null;
|
|
12
|
+
index = null;
|
|
10
13
|
constructor(baseDir) {
|
|
11
|
-
this.currentSession = null;
|
|
12
|
-
this.index = null;
|
|
13
14
|
this.sessionsDir = baseDir ?? AUTOHAND_PATHS.sessions;
|
|
14
15
|
}
|
|
15
16
|
async initialize() {
|
|
@@ -138,9 +139,11 @@ var SessionManager = class {
|
|
|
138
139
|
}
|
|
139
140
|
};
|
|
140
141
|
var Session = class {
|
|
142
|
+
sessionDir;
|
|
143
|
+
metadata;
|
|
144
|
+
messages = [];
|
|
145
|
+
state = null;
|
|
141
146
|
constructor(sessionDir, metadata) {
|
|
142
|
-
this.messages = [];
|
|
143
|
-
this.state = null;
|
|
144
147
|
this.sessionDir = sessionDir;
|
|
145
148
|
this.metadata = metadata;
|
|
146
149
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
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
|
|
3
|
+
var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
|
|
7
7
|
|
|
8
8
|
// src/commands/ide.ts
|
|
9
9
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -398,24 +398,24 @@ function groupByIDE(detected) {
|
|
|
398
398
|
}
|
|
399
399
|
async function ide(ctx) {
|
|
400
400
|
console.log(_chalk2.default.bold.cyan(`
|
|
401
|
-
${
|
|
402
|
-
console.log(_chalk2.default.gray(
|
|
401
|
+
${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.title")}`));
|
|
402
|
+
console.log(_chalk2.default.gray(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.connectDescription")));
|
|
403
403
|
console.log();
|
|
404
404
|
const detected = await detectRunningIDEs(ctx.workspaceRoot);
|
|
405
405
|
const { matching, nonMatching } = groupByIDE(detected);
|
|
406
406
|
if (detected.length === 0) {
|
|
407
|
-
console.log(_chalk2.default.yellow(
|
|
407
|
+
console.log(_chalk2.default.yellow(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.noIdesDetected")));
|
|
408
408
|
console.log();
|
|
409
409
|
printExtensionSuggestions(detected);
|
|
410
410
|
return null;
|
|
411
411
|
}
|
|
412
412
|
if (matching.length === 0) {
|
|
413
|
-
console.log(_chalk2.default.yellow(
|
|
413
|
+
console.log(_chalk2.default.yellow(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.noMatchingIdes")));
|
|
414
414
|
console.log();
|
|
415
415
|
if (nonMatching.size > 0) {
|
|
416
416
|
console.log(
|
|
417
417
|
_chalk2.default.gray(
|
|
418
|
-
|
|
418
|
+
_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
|
|
419
419
|
)
|
|
420
420
|
);
|
|
421
421
|
console.log();
|
|
@@ -426,21 +426,27 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.title")}`));
|
|
|
426
426
|
}
|
|
427
427
|
console.log(
|
|
428
428
|
_chalk2.default.green(
|
|
429
|
-
|
|
429
|
+
_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.foundMatching", { count: String(matching.length) })
|
|
430
430
|
)
|
|
431
431
|
);
|
|
432
432
|
console.log();
|
|
433
433
|
const options = matching.map((ide2) => ({
|
|
434
|
-
label: `${ide2.displayName}: ${_nullishCoalesce(ide2.workspacePath, () => (
|
|
434
|
+
label: `${ide2.displayName}: ${_nullishCoalesce(ide2.workspacePath, () => ( _chunkSY2P3Z5Wcjs.t.call(void 0, "common.unknown")))}`,
|
|
435
435
|
value: ide2.kind
|
|
436
436
|
}));
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
437
|
+
await _optionalChain([ctx, 'access', _4 => _4.onBeforeModal, 'optionalCall', _5 => _5()]);
|
|
438
|
+
let result;
|
|
439
|
+
try {
|
|
440
|
+
result = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
|
|
441
|
+
title: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.selectPrompt"),
|
|
442
|
+
options
|
|
443
|
+
});
|
|
444
|
+
} finally {
|
|
445
|
+
await _optionalChain([ctx, 'access', _6 => _6.onAfterModal, 'optionalCall', _7 => _7()]);
|
|
446
|
+
}
|
|
441
447
|
if (!result) {
|
|
442
448
|
console.log(_chalk2.default.gray(`
|
|
443
|
-
${
|
|
449
|
+
${_chunkSY2P3Z5Wcjs.t.call(void 0, "common.cancelled")}`));
|
|
444
450
|
return null;
|
|
445
451
|
}
|
|
446
452
|
const selected = matching.find((d) => d.kind === result.value);
|
|
@@ -448,7 +454,7 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "common.cancelled")}`));
|
|
|
448
454
|
console.log(
|
|
449
455
|
_chalk2.default.green(
|
|
450
456
|
`
|
|
451
|
-
\u2713 ${
|
|
457
|
+
\u2713 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.connected", { ide: selected.displayName })}`
|
|
452
458
|
)
|
|
453
459
|
);
|
|
454
460
|
}
|
|
@@ -456,7 +462,7 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "common.cancelled")}`));
|
|
|
456
462
|
console.log();
|
|
457
463
|
console.log(
|
|
458
464
|
_chalk2.default.gray(
|
|
459
|
-
|
|
465
|
+
_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
|
|
460
466
|
)
|
|
461
467
|
);
|
|
462
468
|
console.log();
|
|
@@ -467,7 +473,7 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "common.cancelled")}`));
|
|
|
467
473
|
}
|
|
468
474
|
function printNonMatchingIDEs(ides) {
|
|
469
475
|
for (const ide2 of ides) {
|
|
470
|
-
const wsPath = _nullishCoalesce(ide2.workspacePath, () => (
|
|
476
|
+
const wsPath = _nullishCoalesce(ide2.workspacePath, () => ( _chunkSY2P3Z5Wcjs.t.call(void 0, "common.unknown")));
|
|
471
477
|
console.log(_chalk2.default.gray(` \u2022 ${ide2.displayName}: ${wsPath}`));
|
|
472
478
|
}
|
|
473
479
|
console.log();
|
|
@@ -475,7 +481,7 @@ function printNonMatchingIDEs(ides) {
|
|
|
475
481
|
function printExtensionSuggestions(detected) {
|
|
476
482
|
const suggestions = getExtensionSuggestions(detected);
|
|
477
483
|
if (suggestions.length === 0) return;
|
|
478
|
-
console.log(_chalk2.default.dim(`\u{1F4A1} ${
|
|
484
|
+
console.log(_chalk2.default.dim(`\u{1F4A1} ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.extensionHint")}`));
|
|
479
485
|
for (const suggestion of suggestions) {
|
|
480
486
|
const link = _terminallink2.default.call(void 0, suggestion.url, suggestion.url);
|
|
481
487
|
console.log(_chalk2.default.dim(` \u2022 ${suggestion.displayName}: ${link}`));
|
|
@@ -484,7 +490,7 @@ function printExtensionSuggestions(detected) {
|
|
|
484
490
|
}
|
|
485
491
|
var metadata = {
|
|
486
492
|
command: "/ide",
|
|
487
|
-
description:
|
|
493
|
+
description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.description"),
|
|
488
494
|
implemented: true
|
|
489
495
|
};
|
|
490
496
|
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
+
|
|
3
|
+
var _chunkM7B7RRBKcjs = require('./chunk-M7B7RRBK.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkAQ5PVHOCcjs = require('./chunk-AQ5PVHOC.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkX5P6QQOBcjs = require('./chunk-X5P6QQOB.cjs');
|
|
10
|
+
|
|
11
|
+
// src/reporting/processErrorReporting.ts
|
|
12
|
+
var DEFAULT_API_BASE_URL = "https://api.autohand.ai";
|
|
13
|
+
var DEFAULT_REPORT_TIMEOUT_MS = 6500;
|
|
14
|
+
var installedProcesses = /* @__PURE__ */ new WeakSet();
|
|
15
|
+
var managerCache = /* @__PURE__ */ new Map();
|
|
16
|
+
function getArgValue(argv, flag) {
|
|
17
|
+
if (!argv) {
|
|
18
|
+
return void 0;
|
|
19
|
+
}
|
|
20
|
+
for (let i = 0; i < argv.length; i++) {
|
|
21
|
+
const token = argv[i];
|
|
22
|
+
if (token === flag) {
|
|
23
|
+
return argv[i + 1];
|
|
24
|
+
}
|
|
25
|
+
if (token.startsWith(`${flag}=`)) {
|
|
26
|
+
return token.slice(flag.length + 1);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return void 0;
|
|
30
|
+
}
|
|
31
|
+
function resolveConfigPath(processRef, explicitPath) {
|
|
32
|
+
return _nullishCoalesce(_nullishCoalesce(explicitPath, () => ( getArgValue(processRef.argv, "--config"))), () => ( processRef.env.AUTOHAND_CONFIG));
|
|
33
|
+
}
|
|
34
|
+
function detectClientName(processRef) {
|
|
35
|
+
const envClientName = processRef.env.AUTOHAND_CLIENT_NAME;
|
|
36
|
+
if (envClientName) {
|
|
37
|
+
return envClientName;
|
|
38
|
+
}
|
|
39
|
+
const mode = getArgValue(processRef.argv, "--mode");
|
|
40
|
+
if (mode === "acp" || mode === "rpc") {
|
|
41
|
+
return mode;
|
|
42
|
+
}
|
|
43
|
+
return "cli";
|
|
44
|
+
}
|
|
45
|
+
function getLogPrefix(processRef) {
|
|
46
|
+
return detectClientName(processRef) === "acp" ? "[ACP]" : "[DEBUG]";
|
|
47
|
+
}
|
|
48
|
+
function captureLastError(reason) {
|
|
49
|
+
globalThis.__autohandLastError = reason;
|
|
50
|
+
}
|
|
51
|
+
function sleep(ms) {
|
|
52
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
53
|
+
}
|
|
54
|
+
function buildFallbackConfig(configPath, processRef) {
|
|
55
|
+
return {
|
|
56
|
+
provider: "openrouter",
|
|
57
|
+
api: {
|
|
58
|
+
baseUrl: processRef.env.AUTOHAND_API_URL || DEFAULT_API_BASE_URL,
|
|
59
|
+
companySecret: processRef.env.AUTOHAND_SECRET || ""
|
|
60
|
+
},
|
|
61
|
+
autoReport: {
|
|
62
|
+
enabled: true
|
|
63
|
+
},
|
|
64
|
+
telemetry: {
|
|
65
|
+
enabled: false
|
|
66
|
+
},
|
|
67
|
+
configPath: _nullishCoalesce(configPath, () => ( "process-error-fallback")),
|
|
68
|
+
isNewConfig: false
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
async function getAutoReportManager(processRef, explicitConfigPath) {
|
|
72
|
+
const configPath = resolveConfigPath(processRef, explicitConfigPath);
|
|
73
|
+
const cacheKey = _nullishCoalesce(configPath, () => ( "__default__"));
|
|
74
|
+
const cached = managerCache.get(cacheKey);
|
|
75
|
+
if (cached) {
|
|
76
|
+
return cached;
|
|
77
|
+
}
|
|
78
|
+
const managerPromise = (async () => {
|
|
79
|
+
let config;
|
|
80
|
+
try {
|
|
81
|
+
config = await _chunkX5P6QQOBcjs.loadConfig.call(void 0, configPath);
|
|
82
|
+
} catch (e) {
|
|
83
|
+
config = buildFallbackConfig(configPath, processRef);
|
|
84
|
+
}
|
|
85
|
+
return new (0, _chunkM7B7RRBKcjs.AutoReportManager)(config, _chunkAQ5PVHOCcjs.package_default.version);
|
|
86
|
+
})();
|
|
87
|
+
managerCache.set(cacheKey, managerPromise);
|
|
88
|
+
return managerPromise;
|
|
89
|
+
}
|
|
90
|
+
function isIgnorableStdinReadError(err, _processRef) {
|
|
91
|
+
if (!err || typeof err !== "object") {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
const maybeError = err;
|
|
95
|
+
return maybeError.code === "EIO" && maybeError.syscall === "read";
|
|
96
|
+
}
|
|
97
|
+
function isIgnorableFilesystemError(err) {
|
|
98
|
+
if (!err || typeof err !== "object") return false;
|
|
99
|
+
const maybeError = err;
|
|
100
|
+
if (maybeError.syscall !== "mkdir") return false;
|
|
101
|
+
return maybeError.code === "EACCES" || maybeError.code === "EEXIST";
|
|
102
|
+
}
|
|
103
|
+
function isIgnorableTerminalOrRuntimeError(err) {
|
|
104
|
+
if (!err || typeof err !== "object") return false;
|
|
105
|
+
const message = _nullishCoalesce(err.message, () => ( ""));
|
|
106
|
+
if (/setRawMode.*errno/i.test(message)) return true;
|
|
107
|
+
if (message === "Generator is executing") return true;
|
|
108
|
+
if (message.includes("node:sqlite")) return true;
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
function isIgnorableUnhandledRejection(reason, processRef) {
|
|
112
|
+
if (reason && typeof reason === "object" && reason.code === "ERR_USE_AFTER_CLOSE") {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
if (isIgnorableStdinReadError(reason, processRef)) return true;
|
|
116
|
+
if (isIgnorableFilesystemError(reason)) return true;
|
|
117
|
+
if (isIgnorableTerminalOrRuntimeError(reason)) return true;
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
function toReportableError(reason) {
|
|
121
|
+
if (reason instanceof Error) {
|
|
122
|
+
return reason;
|
|
123
|
+
}
|
|
124
|
+
const fallbackName = "NonErrorProcessFault";
|
|
125
|
+
if (reason && typeof reason === "object") {
|
|
126
|
+
const maybeErrorLike = reason;
|
|
127
|
+
const message = typeof maybeErrorLike.message === "string" ? maybeErrorLike.message : safeSerialize(reason);
|
|
128
|
+
const error2 = new Error(message);
|
|
129
|
+
error2.name = typeof maybeErrorLike.name === "string" ? maybeErrorLike.name : fallbackName;
|
|
130
|
+
return error2;
|
|
131
|
+
}
|
|
132
|
+
const error = new Error(typeof reason === "string" ? reason : String(reason));
|
|
133
|
+
error.name = fallbackName;
|
|
134
|
+
return error;
|
|
135
|
+
}
|
|
136
|
+
function safeSerialize(value) {
|
|
137
|
+
try {
|
|
138
|
+
return JSON.stringify(value);
|
|
139
|
+
} catch (e2) {
|
|
140
|
+
return String(value);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function describeReasonType(reason) {
|
|
144
|
+
if (reason === null) {
|
|
145
|
+
return "null";
|
|
146
|
+
}
|
|
147
|
+
if (Array.isArray(reason)) {
|
|
148
|
+
return "array";
|
|
149
|
+
}
|
|
150
|
+
return typeof reason;
|
|
151
|
+
}
|
|
152
|
+
async function reportProcessError(reason, options) {
|
|
153
|
+
const processRef = _nullishCoalesce(options.processRef, () => ( process));
|
|
154
|
+
if (options.handler === "unhandledRejection" && isIgnorableUnhandledRejection(reason, processRef)) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (options.handler === "uncaughtException" && (isIgnorableStdinReadError(reason, processRef) || isIgnorableTerminalOrRuntimeError(reason))) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
captureLastError(reason);
|
|
161
|
+
const error = toReportableError(reason);
|
|
162
|
+
const manager = await getAutoReportManager(processRef, options.configPath);
|
|
163
|
+
const reportPromise = manager.reportError(error, {
|
|
164
|
+
context: {
|
|
165
|
+
source: "process",
|
|
166
|
+
handler: options.handler,
|
|
167
|
+
clientName: detectClientName(processRef),
|
|
168
|
+
fatal: options.handler === "uncaughtException",
|
|
169
|
+
rawType: describeReasonType(reason),
|
|
170
|
+
..._nullishCoalesce(options.extraContext, () => ( {}))
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
await Promise.race([
|
|
174
|
+
reportPromise,
|
|
175
|
+
sleep(_nullishCoalesce(options.reportTimeoutMs, () => ( DEFAULT_REPORT_TIMEOUT_MS)))
|
|
176
|
+
]);
|
|
177
|
+
}
|
|
178
|
+
function installProcessErrorHandlers(options = {}) {
|
|
179
|
+
const processRef = _nullishCoalesce(options.processRef, () => ( process));
|
|
180
|
+
if (installedProcesses.has(processRef)) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
installedProcesses.add(processRef);
|
|
184
|
+
const logError = _nullishCoalesce(options.logError, () => ( console.error.bind(console)));
|
|
185
|
+
const exit = _nullishCoalesce(options.exit, () => ( ((code) => {
|
|
186
|
+
processRef.exit(code);
|
|
187
|
+
})));
|
|
188
|
+
processRef.on("uncaughtException", (error) => {
|
|
189
|
+
if (isIgnorableStdinReadError(error, processRef)) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
if (isIgnorableTerminalOrRuntimeError(error)) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
captureLastError(error);
|
|
196
|
+
logError(`${getLogPrefix(processRef)} Uncaught Exception:`, error);
|
|
197
|
+
void (async () => {
|
|
198
|
+
await reportProcessError(error, {
|
|
199
|
+
handler: "uncaughtException",
|
|
200
|
+
processRef,
|
|
201
|
+
configPath: options.configPath,
|
|
202
|
+
reportTimeoutMs: options.reportTimeoutMs
|
|
203
|
+
});
|
|
204
|
+
exit(1);
|
|
205
|
+
})();
|
|
206
|
+
});
|
|
207
|
+
processRef.on("unhandledRejection", (reason, promise) => {
|
|
208
|
+
if (isIgnorableUnhandledRejection(reason, processRef)) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
captureLastError(reason);
|
|
212
|
+
logError(`${getLogPrefix(processRef)} Unhandled Rejection at:`, promise, "reason:", reason);
|
|
213
|
+
void reportProcessError(reason, {
|
|
214
|
+
handler: "unhandledRejection",
|
|
215
|
+
processRef,
|
|
216
|
+
configPath: options.configPath,
|
|
217
|
+
reportTimeoutMs: options.reportTimeoutMs
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
exports.installProcessErrorHandlers = installProcessErrorHandlers;
|
|
225
|
+
/**
|
|
226
|
+
* @license
|
|
227
|
+
* Copyright 2025 Autohand AI LLC
|
|
228
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
229
|
+
*/
|