autohand-cli 0.9.1 → 0.9.2
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 +103 -79
- package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
- package/dist/AgentRegistry-JBXZUPML.js +18 -0
- package/dist/{CommunitySkillsCache-ZACDPD4J.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
- package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
- package/dist/{HookManager-2S6AHOC3.js → HookManager-BELBPQQI.js} +1 -1
- package/dist/{HookManager-TVEQI5ZU.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
- package/dist/{ImportWizard-AF2XL6DS.cjs → ImportWizard-U6CIJREW.cjs} +12 -12
- package/dist/{ImportWizard-AEBMAKXE.js → ImportWizard-VJFSWSUQ.js} +3 -3
- package/dist/LearnAdvisor-LAURA3IB.cjs +9 -0
- package/dist/LearnAdvisor-RFOBXFG7.js +9 -0
- package/dist/MemoryManager-3A2VRPF2.js +9 -0
- package/dist/MemoryManager-UOEQZIDC.cjs +9 -0
- package/dist/{NVIDIAProvider-SJPY3ONR.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
- package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
- package/dist/{PermissionManager-MT7KBNNR.js → PermissionManager-N2LDSOYF.js} +3 -3
- package/dist/PermissionManager-ZNURIEYR.cjs +11 -0
- package/dist/ProviderFactory-3BFS65V7.cjs +13 -0
- package/dist/{ProviderFactory-RB4RVAF6.js → ProviderFactory-XUT6BSGB.js} +4 -3
- package/dist/SessionManager-LGPQIA57.cjs +10 -0
- package/dist/{SessionManager-554PHVPC.js → SessionManager-OR4KDDDS.js} +2 -2
- package/dist/{SkillsRegistry-NHHMIUYJ.js → SkillsRegistry-IL3GWROU.js} +2 -2
- package/dist/SkillsRegistry-PM34DQNA.cjs +9 -0
- package/dist/SubAgent-2WG4QQB5.cjs +13 -0
- package/dist/SubAgent-ICGN23TQ.js +13 -0
- package/dist/{about-3USFSGOH.js → about-OYVGQMJJ.js} +3 -3
- package/dist/{about-QR52U5DD.cjs → about-U2BH7HDR.cjs} +4 -4
- package/dist/{acp-5Y2W6OZP.js → acp-JWHGXZL5.js} +169 -103
- package/dist/{acp-GSYE75OB.cjs → acp-S37JOBCS.cjs} +184 -118
- package/dist/{actionExecutor-KHUU3Z3Q.cjs → actionExecutor-2QEPMELQ.cjs} +13 -13
- package/dist/{actionExecutor-PLQJZLZV.js → actionExecutor-6NCCORRB.js} +12 -12
- package/dist/add-dir-KFUHSIR2.cjs +11 -0
- package/dist/{add-dir-HCERJDBR.js → add-dir-MM2BM2Z2.js} +2 -2
- package/dist/agent-DUIYLIVN.js +132 -0
- package/dist/agent-YYEHGDAK.cjs +132 -0
- package/dist/agents-GBGG4CW7.cjs +19 -0
- package/dist/agents-ZH34C72F.js +19 -0
- package/dist/agents-new-ERXLS7SB.cjs +17 -0
- package/dist/{agents-new-7GAQ25EK.js → agents-new-EVTGPTA4.js} +6 -6
- package/dist/{autoSkill-66PKCYTW.js → autoSkill-HEWKJ5JV.js} +2 -2
- package/dist/autoSkill-YL6PN6AV.cjs +20 -0
- package/dist/automode-4BJ7FNPL.cjs +10 -0
- package/dist/{automode-BUF3VGXU.js → automode-S4U7A7Q2.js} +2 -2
- package/dist/chrome-45ZXHL5N.cjs +22 -0
- package/dist/{chrome-Y3T7EIHG.js → chrome-BBSRVG6S.js} +2 -2
- package/dist/chrome-IFVZRHAT.cjs +50 -0
- package/dist/chrome-MYE6DNA2.js +22 -0
- package/dist/{chunk-45CHNQM6.cjs → chunk-24CEJYEG.cjs} +93 -31
- package/dist/{chunk-6JWCGQJU.cjs → chunk-255GIVM2.cjs} +6 -6
- package/dist/{chunk-D546G7DA.cjs → chunk-2BDSR2OW.cjs} +98 -75
- package/dist/{chunk-PGFLPURU.js → chunk-2BPIR7LA.js} +121 -4
- package/dist/{chunk-AOKXYGBQ.cjs → chunk-2NY7OHBF.cjs} +41 -26
- package/dist/chunk-2WUNHTXL.js +303 -0
- package/dist/{chunk-PQBYFEBL.cjs → chunk-34B6ZO6W.cjs} +124 -7
- package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
- package/dist/{chunk-3UC6DMFI.cjs → chunk-3CAXECWJ.cjs} +15 -15
- package/dist/{chunk-YWH55BWK.cjs → chunk-3CBYUBZC.cjs} +6 -9
- package/dist/chunk-3DF3GZQ7.js +277 -0
- package/dist/{chunk-KASXKDF2.cjs → chunk-3JURXAL6.cjs} +58 -7
- package/dist/{chunk-JV5HVCHU.cjs → chunk-3KWAP2Y3.cjs} +88 -9
- package/dist/{chunk-WPE2XHVX.js → chunk-3MCK6UBL.js} +1 -1
- package/dist/{chunk-U2QUMKCB.js → chunk-3TH7IK4M.js} +62 -9
- package/dist/{chunk-YXM6SA7P.js → chunk-3V77OB3W.js} +3 -3
- package/dist/{chunk-MZN6JBRZ.cjs → chunk-3Y5UEK7K.cjs} +4 -4
- package/dist/{chunk-BP37FVBM.js → chunk-4GPPSBEZ.js} +3 -3
- package/dist/{chunk-4XVLNOFA.js → chunk-5CMBAJ6K.js} +20 -3
- package/dist/{chunk-PNIAIOMZ.cjs → chunk-5YRXFBYZ.cjs} +35 -6
- package/dist/chunk-6AC2TT26.js +156 -0
- package/dist/{chunk-PSAH4ZQB.cjs → chunk-6EIQ6A6U.cjs} +2 -2
- package/dist/{chunk-YQDI753V.js → chunk-6HSEDXVF.js} +4 -4
- package/dist/{chunk-O5GI6SR3.js → chunk-6NUXK62F.js} +1 -1
- package/dist/{chunk-HVCIB4SW.cjs → chunk-6TGCAPYH.cjs} +62 -9
- package/dist/{chunk-HZWU6IO3.js → chunk-6W3SZCSP.js} +2 -5
- package/dist/{chunk-Q3BS6FPM.js → chunk-73LV3DDZ.js} +4 -4
- package/dist/{chunk-ZNGRLCFQ.js → chunk-7BGGLIQF.js} +83 -1
- package/dist/{chunk-ZNYZB7XY.cjs → chunk-7EEK7CRR.cjs} +83 -1
- package/dist/{chunk-HK5A54AV.cjs → chunk-7TO3PDMV.cjs} +48 -4
- package/dist/chunk-7UU22RSH.cjs +277 -0
- package/dist/{chunk-XNIMSVS6.cjs → chunk-A3GAM6FM.cjs} +11 -11
- package/dist/{chunk-W5QLA6WP.cjs → chunk-A7DJU75T.cjs} +8 -8
- package/dist/{chunk-7XTUL7ZD.cjs → chunk-AAAO4ERQ.cjs} +9 -9
- package/dist/{chunk-M5DK524Z.js → chunk-AAJLMP57.js} +2 -2
- package/dist/chunk-ABR756QN.js +529 -0
- package/dist/{chunk-OIGYWOL6.js → chunk-APFGDIPD.js} +3 -1
- package/dist/{chunk-PTTZI4QZ.js → chunk-APQYRMYL.js} +4 -4
- package/dist/{chunk-CO2AADYU.cjs → chunk-AZKOIF2G.cjs} +55 -17
- package/dist/{chunk-P6SLT2F4.cjs → chunk-AZLHUPNC.cjs} +2 -2
- package/dist/chunk-B55VCYSQ.cjs +30 -0
- package/dist/{chunk-JMJRFSNJ.js → chunk-BLQUMSM3.js} +1 -1
- package/dist/{chunk-MGNXABSU.cjs → chunk-BXKPX6K4.cjs} +9 -9
- package/dist/{chunk-MQQH4XQH.cjs → chunk-C66FN2LP.cjs} +4 -4
- package/dist/{chunk-CECH6QQP.js → chunk-CH7KUFAS.js} +10 -10
- package/dist/{chunk-PIXQ2AVM.cjs → chunk-CILSXOPI.cjs} +17 -17
- package/dist/{chunk-IEPLQ47J.js → chunk-CM24K6ZT.js} +89 -12
- package/dist/chunk-CMEZ42F2.cjs +303 -0
- package/dist/{chunk-X5P6QQOB.cjs → chunk-CNQKIWIS.cjs} +100 -23
- package/dist/{chunk-AQ5PVHOC.cjs → chunk-CSUGNNJY.cjs} +4 -3
- package/dist/{chunk-QRQF3556.js → chunk-D6HB3H3L.js} +25 -10
- package/dist/{chunk-XZVDYC5U.js → chunk-D7AYKVKW.js} +2 -2
- package/dist/{chunk-3UHRCHKB.cjs → chunk-DLCXWOWT.cjs} +23 -23
- package/dist/{chunk-CK4HAHVY.cjs → chunk-DMM2BKSV.cjs} +118 -25
- package/dist/{chunk-SPQ7QIQ6.js → chunk-DW3DPV77.js} +1 -1
- package/dist/chunk-ECQD2QC3.cjs +33 -0
- package/dist/{chunk-SNDDZG5H.js → chunk-EEYOS3UC.js} +90 -70
- package/dist/{chunk-DGBPWODD.js → chunk-EF2EN5CR.js} +2 -2
- package/dist/{chunk-M7B7RRBK.cjs → chunk-EFXFURDY.cjs} +138 -51
- package/dist/chunk-EK34UZPB.cjs +40 -0
- package/dist/{chunk-CRTCZ4WL.cjs → chunk-FJR6EZLO.cjs} +3834 -2337
- package/dist/{chunk-TYBPTKFT.js → chunk-FPO7YNPQ.js} +1 -1
- package/dist/{chunk-X3TI5TJJ.js → chunk-FS4I6BNR.js} +1 -1
- package/dist/{chunk-WNJXIACY.js → chunk-FSJ2MNOC.js} +3 -3
- package/dist/{chunk-44ZWOBTI.js → chunk-GEHZMC4G.js} +12 -9
- package/dist/{chunk-Y5BDE24P.cjs → chunk-GO6C2RAR.cjs} +3 -0
- package/dist/{chunk-XW3XCK4E.cjs → chunk-GSMR6V36.cjs} +4 -4
- package/dist/{chunk-H426KOGY.js → chunk-GSZWATME.js} +1 -1
- package/dist/{chunk-S5JNQIGL.cjs → chunk-GYLGCR6F.cjs} +5 -5
- package/dist/{chunk-ONVYXTUT.cjs → chunk-H3OOWNYQ.cjs} +3 -3
- package/dist/{chunk-V5ELP2XE.js → chunk-H65446XW.js} +110 -15
- package/dist/{chunk-LANGD5CO.js → chunk-H7HXRRHK.js} +45 -1
- package/dist/{chunk-RBXBH6EB.cjs → chunk-HN2JTDN5.cjs} +17 -17
- package/dist/{chunk-SOVR7S3T.cjs → chunk-HNXUZ5OY.cjs} +2 -2
- package/dist/{chunk-AZ47LKD5.cjs → chunk-HOYT3E65.cjs} +3 -3
- package/dist/{chunk-P4FUTSVK.js → chunk-HTPY5ESD.js} +3 -3
- package/dist/{chunk-5SFV2NCY.cjs → chunk-HVLWH2AF.cjs} +10 -10
- package/dist/{chunk-VQHSYAPZ.cjs → chunk-HZTEU4W5.cjs} +62 -93
- package/dist/{chunk-4XFHP2SN.cjs → chunk-I5T7LPFP.cjs} +7 -7
- package/dist/{chunk-ZPLCAXJW.js → chunk-IB5CJXE7.js} +7 -7
- package/dist/{chunk-KM7R5YPS.cjs → chunk-INNXFLDR.cjs} +9 -6
- package/dist/{chunk-2ESQR35E.cjs → chunk-JFLEP3T7.cjs} +10 -10
- package/dist/chunk-JJGDOBFL.js +40 -0
- package/dist/{chunk-5A7ZL64N.js → chunk-JSU46T6K.js} +1 -1
- package/dist/{chunk-NB6M6ESM.js → chunk-K6WN6BT4.js} +1 -1
- package/dist/{chunk-QQ64HEHP.cjs → chunk-KIQH3SMT.cjs} +34 -31
- package/dist/{chunk-MANJ67D3.js → chunk-KPRXHIE2.js} +52 -83
- package/dist/{chunk-6HF6XSCC.js → chunk-LIO3RX2Z.js} +2 -2
- package/dist/{chunk-NZ3ZWLUW.js → chunk-LOSXLH7P.js} +109 -16
- package/dist/{chunk-NZ7GCK7Y.cjs → chunk-LSOR72PB.cjs} +23 -23
- package/dist/{chunk-6AYJCDTA.js → chunk-MA3AVDCC.js} +47 -9
- package/dist/{chunk-PZZMIYII.js → chunk-ME3S2WIR.js} +3 -3
- package/dist/{chunk-2IW5YFJ4.js → chunk-NC2I2M4P.js} +4 -4
- package/dist/{chunk-AE2ILW25.cjs → chunk-NC4A4LVC.cjs} +13 -13
- package/dist/{chunk-EEHWALXA.js → chunk-NGEK5FCJ.js} +85 -3
- package/dist/{chunk-MMKZSJUN.js → chunk-NKW6CHXQ.js} +1 -1
- package/dist/{chunk-JB3JCYBJ.js → chunk-NOWCRKP2.js} +4 -3
- package/dist/{chunk-3ZOOH44N.js → chunk-NUB2LMB6.js} +2 -2
- package/dist/chunk-O246MKIW.cjs +267 -0
- package/dist/{chunk-SRMGWMQO.js → chunk-OGFWL2PS.js} +1 -1
- package/dist/{chunk-YISPVAXO.cjs → chunk-ONNGAR6W.cjs} +340 -597
- package/dist/{chunk-7WAUCLLQ.js → chunk-OOFR6A62.js} +33 -4
- package/dist/{chunk-4E7SHPNQ.js → chunk-OZ7FHO7J.js} +2 -2
- package/dist/{chunk-NV6LCD2I.cjs → chunk-P5EWGUI2.cjs} +109 -27
- package/dist/{chunk-YC5OBZQU.js → chunk-P6BQJPAI.js} +41 -18
- package/dist/{chunk-SHRLFX6F.js → chunk-PG2JIU5M.js} +57 -6
- package/dist/{chunk-6OECOAK5.cjs → chunk-PI27G2ED.cjs} +25 -8
- package/dist/{chunk-TR6NECEZ.js → chunk-PI7LRPL6.js} +1 -1
- package/dist/{chunk-GAOPJ5S3.cjs → chunk-PMPEC5HN.cjs} +18 -15
- package/dist/{chunk-5GCQ5UMV.cjs → chunk-PYUP7AKY.cjs} +14 -14
- package/dist/{chunk-S5QKRA2V.js → chunk-QC5Z3ZT5.js} +2 -2
- package/dist/chunk-QDO4L2A7.cjs +156 -0
- package/dist/{chunk-LFDPTJYF.cjs → chunk-QDXRI5AM.cjs} +1 -1
- package/dist/{chunk-26G7YGOW.js → chunk-QVXMSQOG.js} +84 -21
- package/dist/{chunk-SVVP4UUZ.cjs → chunk-R4UKBKDY.cjs} +11 -11
- package/dist/{chunk-HG3ZASBH.cjs → chunk-R75AWII3.cjs} +112 -17
- package/dist/{chunk-TE4SYTWR.cjs → chunk-RD5PLUIX.cjs} +8 -8
- package/dist/{chunk-FFHSCM5M.js → chunk-RGB34CV5.js} +3 -3
- package/dist/{chunk-SY2P3Z5W.cjs → chunk-RJCZLFHE.cjs} +96 -32
- package/dist/{chunk-22SCR3EV.cjs → chunk-RKWNM2BJ.cjs} +2 -2
- package/dist/{chunk-FBQJZKFX.js → chunk-RMVONICR.js} +3 -3
- package/dist/{chunk-PY73W5MQ.cjs → chunk-RPSYRJL7.cjs} +10 -4
- package/dist/{chunk-HXHE2KAO.js → chunk-RWKU2X7O.js} +7 -4
- package/dist/{chunk-NQZH5CR2.cjs → chunk-RZLEGVMH.cjs} +102 -5
- package/dist/{chunk-KMP6Y3LJ.js → chunk-S2L3Y677.js} +1 -1
- package/dist/{chunk-GSDV75A5.js → chunk-S7KVUIOS.js} +1 -1
- package/dist/{chunk-7PT646AL.cjs → chunk-SACJJ6NO.cjs} +5 -3
- package/dist/{chunk-LEZEWKPA.js → chunk-SJQU2ZFR.js} +96 -32
- package/dist/{chunk-65LRPW5W.js → chunk-SKAQKQFF.js} +12 -2
- package/dist/chunk-T4DXP5OP.js +30 -0
- package/dist/{chunk-EYHKL4QC.js → chunk-T6FTB6K2.js} +1 -1
- package/dist/{chunk-DNSD7DVJ.js → chunk-T6N6GRFT.js} +13 -10
- package/dist/{chunk-575PXZX7.js → chunk-TJFKA6A7.js} +82 -3
- package/dist/{chunk-HSWWM6AM.js → chunk-TJZUPS4Z.js} +34 -291
- package/dist/{chunk-DHUQZ53B.cjs → chunk-TLKHZ425.cjs} +2 -2
- package/dist/{chunk-VLGGMQUN.cjs → chunk-TQ24NLXO.cjs} +6 -6
- package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
- package/dist/{chunk-EA2MS25U.cjs → chunk-TZB5XADL.cjs} +4 -4
- package/dist/{chunk-U6PLSPMD.cjs → chunk-UAYXZXWU.cjs} +4 -4
- package/dist/{chunk-OV3T5MUH.cjs → chunk-UKBFNBDO.cjs} +11 -11
- package/dist/{chunk-SZD45IDG.js → chunk-UMJYX5KD.js} +101 -4
- package/dist/{chunk-B76FJKEJ.cjs → chunk-USKYTHDL.cjs} +69 -18
- package/dist/{chunk-NZQFKXM3.cjs → chunk-VAJUSZMC.cjs} +15 -15
- package/dist/{chunk-SDLY4X3G.js → chunk-VGQG4NBJ.js} +2 -2
- package/dist/{chunk-KWXGDSYT.js → chunk-VLUIVJ3J.js} +58 -7
- package/dist/{chunk-KJ26T7GM.cjs → chunk-VOBINVMV.cjs} +105 -42
- package/dist/{chunk-C5QIQQ37.js → chunk-VSHKKCSH.js} +16 -5
- package/dist/{chunk-L46OUKW5.cjs → chunk-VSZU3MGA.cjs} +28 -17
- package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
- package/dist/{chunk-UWZ4G3SQ.js → chunk-VXGYFX45.js} +4 -4
- package/dist/{chunk-C46B72VK.js → chunk-WH6YUQDB.js} +141 -54
- package/dist/{chunk-SFFEKZGC.js → chunk-WQ6TD55V.js} +2 -2
- package/dist/{chunk-7PJKTSRN.js → chunk-WQWECXTY.js} +3 -3
- package/dist/{chunk-DSSCERHI.cjs → chunk-WVDJUJH6.cjs} +2 -2
- package/dist/{chunk-JPFRI4L4.js → chunk-X24VIVDZ.js} +210 -26
- package/dist/{chunk-7IRQ7JEH.js → chunk-X4NRTLXD.js} +7 -1
- package/dist/{chunk-7MY4JHER.js → chunk-X53SHYCG.js} +2 -2
- package/dist/{chunk-RFUKZIJF.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
- package/dist/{chunk-WJYFLQ7G.cjs → chunk-Y47OJGLB.cjs} +3 -3
- package/dist/{chunk-HC2Q6A3E.cjs → chunk-Y4MN27V3.cjs} +361 -177
- package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
- package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
- package/dist/{chunk-63ANVAOJ.cjs → chunk-YMXYC777.cjs} +3 -3
- package/dist/{chunk-X7XMITIL.cjs → chunk-Z3GRWK6O.cjs} +8 -8
- package/dist/{chunk-3ICORF7M.cjs → chunk-Z5GG2KSL.cjs} +4 -4
- package/dist/{chunk-I2ZK3AOD.js → chunk-ZER7DYQK.js} +2 -2
- package/dist/{chunk-V3SZLWEQ.cjs → chunk-ZFDXZEZJ.cjs} +11 -11
- package/dist/{chunk-QBYGMMDD.js → chunk-ZFV4HJA6.js} +66 -4
- package/dist/chunk-ZHMYTI5D.cjs +529 -0
- package/dist/{chunk-4567QNRB.js → chunk-ZLR2TFBC.js} +3 -0
- package/dist/{chunk-OCATAKXV.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
- package/dist/{chunk-CCIDL4SA.js → chunk-ZVLVLDYN.js} +2915 -1418
- package/dist/clear-AJGXD2BB.cjs +12 -0
- package/dist/{clear-Y5TO3RZA.js → clear-HAHDSWKW.js} +3 -3
- package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
- package/dist/{communityInstaller-RVL4STPS.js → communityInstaller-OLKEUGMX.js} +5 -5
- package/dist/completion-G7Z436TF.cjs +17 -0
- package/dist/{completion-SE3XYG74.js → completion-ZS3AXJ6A.js} +4 -4
- package/dist/{config-7KPHKFTP.js → config-OWYAQPCX.js} +5 -4
- package/dist/config-W2BHT2QE.cjs +22 -0
- package/dist/{constants-EJFAWJQI.js → constants-AS6K67AA.js} +5 -3
- package/dist/constants-B4W5BT7F.cjs +23 -0
- package/dist/{export-BJVIDZC4.js → export-5HIU3KMD.js} +4 -4
- package/dist/export-GFD32UY2.cjs +15 -0
- package/dist/{extractSessionMemories-A2JX5WJ2.js → extractSessionMemories-K6ZVAW2F.js} +1 -1
- package/dist/{extractSessionMemories-XL3MS37F.cjs → extractSessionMemories-LLOIJR5U.cjs} +2 -2
- package/dist/feature-KP74CZ3F.cjs +14 -0
- package/dist/{feature-V4JF5TNJ.js → feature-OPNVMB2E.js} +2 -2
- package/dist/features-LT55MURX.cjs +24 -0
- package/dist/features-ZDIU26WX.js +24 -0
- package/dist/feedback-7WTJFQ6S.js +18 -0
- package/dist/feedback-CEOJ3453.cjs +18 -0
- package/dist/go-2CY5SZNR.js +16 -0
- package/dist/go-O2CSQON4.cjs +16 -0
- package/dist/goal-DL2N2AWT.cjs +16 -0
- package/dist/goal-IJS7VZSG.js +16 -0
- package/dist/help-RNOGDEBA.cjs +12 -0
- package/dist/{help-MLIROWKM.js → help-TCWD2IRH.js} +2 -2
- package/dist/{history-GQJ6RZD6.js → history-ATOR5OQV.js} +2 -2
- package/dist/history-UUSGX2AL.cjs +14 -0
- package/dist/{hooks-PPFHCF7T.js → hooks-R3Z5QKUP.js} +5 -5
- package/dist/hooks-RWM5UY67.cjs +18 -0
- package/dist/{i18n-Q7UZJRPL.js → i18n-4QI4TD4I.js} +1 -1
- package/dist/i18n-MFAEU5RV.cjs +33 -0
- package/dist/{ide-BUSVE54P.js → ide-6PBTCCUQ.js} +4 -4
- package/dist/ide-UE3G7NMQ.cjs +15 -0
- package/dist/{import-C7S6UJMW.cjs → import-2IG76KAN.cjs} +6 -4
- package/dist/{import-U47DXCA7.js → import-E47QL4DW.js} +2 -2
- package/dist/import-NQDNBFUL.cjs +10 -0
- package/dist/{import-3VBKI6BN.js → import-VQIHGJWS.js} +6 -4
- package/dist/index.cjs +444 -334
- package/dist/index.d.cts +38 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +324 -214
- package/dist/init-DX3RDGDT.cjs +10 -0
- package/dist/{init-Q2O4R42R.js → init-Q54OAAFZ.js} +2 -2
- package/dist/{inputPrompt-3CFZDUBH.js → inputPrompt-V2VBDRM7.js} +2 -2
- package/dist/inputPrompt-WVGVWAHS.cjs +90 -0
- package/dist/language-I6KXAOXD.js +23 -0
- package/dist/language-XMIVOH5E.cjs +23 -0
- package/dist/learn-JPVVGTKU.js +23 -0
- package/dist/learn-NLSHI2MZ.cjs +23 -0
- package/dist/login-NABQYLYC.cjs +28 -0
- package/dist/login-XPOVFSWN.js +28 -0
- package/dist/logout-HNHCGB4Q.js +25 -0
- package/dist/logout-SKGDXJSW.cjs +25 -0
- package/dist/{mcp-AH3MMUBU.js → mcp-EN73YFGZ.js} +8 -7
- package/dist/mcp-TADZCPJQ.cjs +22 -0
- package/dist/{mcp-install-IA4ZS2SV.cjs → mcp-install-2GKWWBAS.cjs} +14 -13
- package/dist/{mcp-install-222PCKSW.js → mcp-install-3TBTVSHW.js} +9 -8
- package/dist/memory-GRXFTDIN.cjs +10 -0
- package/dist/{memory-VB46T5H3.js → memory-K2P3CDCH.js} +2 -2
- package/dist/{model-SJJG64AM.js → model-DEG22OWA.js} +2 -2
- package/dist/model-OSD74T7Z.cjs +10 -0
- package/dist/new-4NWBOATU.cjs +12 -0
- package/dist/{new-ERZ5C6CN.js → new-KJAP2MB6.js} +3 -3
- package/dist/{onboarding-ZQXMPSMJ.js → onboarding-2U5WE2OA.js} +17 -14
- package/dist/onboarding-5DZFCO5Q.cjs +39 -0
- package/dist/permissions-KY5I6YQ3.cjs +10 -0
- package/dist/{permissions-7ACNFK7A.js → permissions-TKYON7PP.js} +2 -2
- package/dist/{plan-YYUAXPTL.js → plan-DYHHLZSS.js} +1 -1
- package/dist/plan-PYKP652W.cjs +13 -0
- package/dist/quit-GSKJL42O.js +14 -0
- package/dist/quit-TQSRTBUT.cjs +14 -0
- package/dist/{registry-4DXUDKJN.js → registry-EZ4V4TUQ.js} +1339 -1
- package/dist/{registry-UEO3ETZ7.cjs → registry-LCWYI4IB.cjs} +1378 -40
- package/dist/resume-4VWJXARX.cjs +17 -0
- package/dist/{resume-XSXZMDMD.js → resume-TLHWWWFN.js} +5 -5
- package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
- package/dist/review-XLJEUH5K.cjs +9 -0
- package/dist/{rpc-XH7QLN4H.js → rpc-3DLQBDWU.js} +151 -124
- package/dist/{rpc-YF54T7JU.cjs → rpc-O36WUU3L.cjs} +169 -142
- package/dist/search-DSX2CY4A.cjs +22 -0
- package/dist/search-I3QUDUQL.js +22 -0
- package/dist/sessionBranching-DVNOUWJT.cjs +19 -0
- package/dist/sessionBranching-FKV4CR36.js +19 -0
- package/dist/sessions-3JUOT3ED.cjs +10 -0
- package/dist/{sessions-NJYHJOEL.js → sessions-VWMDIPOS.js} +2 -2
- package/dist/{settings-ZXUQH3DO.js → settings-FT2LZZUV.js} +11 -8
- package/dist/settings-RL4KNWHB.cjs +45 -0
- package/dist/setup-HQEJVOYT.js +32 -0
- package/dist/setup-MN54LKOL.cjs +32 -0
- package/dist/share-BUAFZNBX.cjs +17 -0
- package/dist/{share-WFAGZ5PY.js → share-CGB6MAVJ.js} +6 -6
- package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
- package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
- package/dist/{skills-NBTNDVAY.js → skills-7DKR3HRZ.js} +7 -7
- package/dist/{skills-OB6RDW7D.js → skills-BBBENOEY.js} +9 -9
- package/dist/skills-OQM7IHAF.cjs +29 -0
- package/dist/{skills-ZROBG3RZ.cjs → skills-RA2PKL63.cjs} +9 -9
- package/dist/{skills-install-ILX6QVEF.cjs → skills-install-D7K476SL.cjs} +15 -15
- package/dist/{skills-install-BHTIEMKH.js → skills-install-T4SOKJSL.js} +8 -8
- package/dist/{skills-new-YMRP2HNO.js → skills-new-S33NGEU3.js} +6 -6
- package/dist/skills-new-UVYH53MD.cjs +18 -0
- package/dist/slashCommands-MWOUDSQP.js +111 -0
- package/dist/slashCommands-XASURUTV.cjs +111 -0
- package/dist/squad-PIIYDFVH.cjs +15 -0
- package/dist/squad-VHYOVEJP.js +15 -0
- package/dist/status-GHFTXQBL.js +25 -0
- package/dist/status-WXMIJIU3.cjs +25 -0
- package/dist/statusline-2K7AC6ZQ.js +21 -0
- package/dist/statusline-GROI4HOC.cjs +21 -0
- package/dist/sync-254WF6JI.cjs +42 -0
- package/dist/sync-2DIZN4EH.cjs +24 -0
- package/dist/{sync-OCJN4ZSO.js → sync-J6I2ZUKQ.js} +5 -3
- package/dist/{sync-7C25MOT2.js → sync-Z3LVSEEV.js} +8 -6
- package/dist/{teammate-D77B6QRT.cjs → teammate-EXR76PEQ.cjs} +5 -5
- package/dist/{teammate-EZCMHOIL.js → teammate-K4DAOFEQ.js} +5 -5
- package/dist/theme-MVQDSU47.js +23 -0
- package/dist/theme-QAKEYWJG.cjs +23 -0
- package/dist/ui/questionModal.cjs +5 -5
- package/dist/ui/questionModal.js +4 -4
- package/dist/{undo-GNUTFXCW.js → undo-5AU47JHF.js} +2 -2
- package/dist/undo-ME6WKUXZ.cjs +10 -0
- package/dist/{usage-QSTNSDAO.js → usage-QTKO2YMD.js} +6 -5
- package/dist/usage-TYNJKVER.cjs +25 -0
- package/package.json +4 -3
- package/dist/AgentRegistry-GOV7FN2O.js +0 -10
- package/dist/AgentRegistry-J2C6JBZ3.cjs +0 -10
- package/dist/CommunitySkillsCache-22BB3J6H.cjs +0 -8
- package/dist/LearnAdvisor-KKEQ5QCV.js +0 -9
- package/dist/LearnAdvisor-Q7RAYLPF.cjs +0 -9
- package/dist/MemoryManager-PMNAEZMB.cjs +0 -8
- package/dist/MemoryManager-QZRLTUB5.js +0 -8
- package/dist/NVIDIAProvider-C3FWQOBZ.cjs +0 -14
- package/dist/PermissionManager-URCNP5EC.cjs +0 -11
- package/dist/ProviderFactory-56N3ECE4.cjs +0 -12
- package/dist/SessionManager-2IZGWASQ.cjs +0 -10
- package/dist/SkillsRegistry-GMRVONOQ.cjs +0 -9
- package/dist/SubAgent-4GOR2FIJ.js +0 -13
- package/dist/SubAgent-ZJMDH4FI.cjs +0 -13
- package/dist/add-dir-BTAD5OZS.cjs +0 -11
- package/dist/agent-B3EVT7NN.cjs +0 -126
- package/dist/agent-SATQ3WZ3.js +0 -126
- package/dist/agents-44CRJGM7.cjs +0 -18
- package/dist/agents-NN4ZAJ7R.js +0 -18
- package/dist/agents-new-6D6G4QS6.cjs +0 -17
- package/dist/autoSkill-VQLGBELN.cjs +0 -20
- package/dist/automode-45DWV4TN.cjs +0 -10
- package/dist/chrome-Q2U73HZB.cjs +0 -50
- package/dist/chrome-Q54OALOK.cjs +0 -21
- package/dist/chrome-ZNJ46OYW.js +0 -21
- package/dist/chunk-JCUHCH37.cjs +0 -247
- package/dist/chunk-VKOXFT4L.cjs +0 -23
- package/dist/clear-QJXU25IF.cjs +0 -12
- package/dist/communityInstaller-LXMVKVAV.cjs +0 -22
- package/dist/completion-JX4T2ONW.cjs +0 -17
- package/dist/config-3224PRW4.cjs +0 -21
- package/dist/constants-MCCGUU5F.cjs +0 -21
- package/dist/export-KU4557HK.cjs +0 -15
- package/dist/feature-K3LG5IJP.cjs +0 -14
- package/dist/features-5OJTLKS7.js +0 -23
- package/dist/features-VCBJQXCX.cjs +0 -23
- package/dist/feedback-D4437VE4.js +0 -18
- package/dist/feedback-VZPEHGFY.cjs +0 -18
- package/dist/go-X4E6BCD6.js +0 -12
- package/dist/go-XREVFS5I.cjs +0 -12
- package/dist/goal-4M3J6JS2.cjs +0 -16
- package/dist/goal-EI66BV7W.js +0 -16
- package/dist/help-GGFS7WHY.cjs +0 -12
- package/dist/history-J4LUIOSI.cjs +0 -14
- package/dist/hooks-FSRIUS6A.cjs +0 -18
- package/dist/i18n-CI6VFXL5.cjs +0 -33
- package/dist/ide-YR27BPGM.cjs +0 -15
- package/dist/import-DBK4OCDF.cjs +0 -10
- package/dist/init-OXTYS72D.cjs +0 -10
- package/dist/inputPrompt-JMACL4EB.cjs +0 -90
- package/dist/language-EK3M6UBV.cjs +0 -22
- package/dist/language-Q3RUGGOW.js +0 -22
- package/dist/learn-3DSX7DYG.cjs +0 -23
- package/dist/learn-OPOH5L43.js +0 -23
- package/dist/login-GST7MWXJ.cjs +0 -27
- package/dist/login-Q7DZKAX4.js +0 -27
- package/dist/logout-2G7OUK7I.cjs +0 -24
- package/dist/logout-FNBBL2UI.js +0 -24
- package/dist/mcp-DW7R63IB.cjs +0 -21
- package/dist/memory-6NX3DAIY.cjs +0 -10
- package/dist/model-64NAELFS.cjs +0 -10
- package/dist/new-DU5SOOOY.cjs +0 -12
- package/dist/onboarding-2U2BV2KE.cjs +0 -36
- package/dist/permissions-GSNNV7RJ.cjs +0 -10
- package/dist/plan-XEJMOT55.cjs +0 -13
- package/dist/quit-WY6T267G.js +0 -10
- package/dist/quit-XIRE2KRE.cjs +0 -10
- package/dist/resume-RQZ3WXBP.cjs +0 -17
- package/dist/review-UWHWQHCB.cjs +0 -9
- package/dist/search-VXXFGZWU.cjs +0 -21
- package/dist/search-YAWGX7P7.js +0 -21
- package/dist/sessions-OSG3UJEZ.cjs +0 -10
- package/dist/settings-SO2UIGWV.cjs +0 -42
- package/dist/setup-KG7EGKF5.js +0 -30
- package/dist/setup-RSOPCQ57.cjs +0 -30
- package/dist/share-ZU3SGACF.cjs +0 -17
- package/dist/skills-KBVAQAD2.cjs +0 -29
- package/dist/skills-new-B45VQ2PP.cjs +0 -18
- package/dist/slashCommands-53VYIBJU.js +0 -105
- package/dist/slashCommands-BG2RGGZ6.cjs +0 -105
- package/dist/status-CQ2IUOVK.cjs +0 -24
- package/dist/status-E7IGNVPC.js +0 -24
- package/dist/sync-XRP46IVG.cjs +0 -40
- package/dist/sync-ZMFVE7T4.cjs +0 -22
- package/dist/theme-KKRDE6P7.cjs +0 -22
- package/dist/theme-XF7XIWBQ.js +0 -22
- package/dist/undo-U4KN7QQM.cjs +0 -10
- package/dist/usage-YDEMQBNQ.cjs +0 -24
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PROJECT_DIR_NAME
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PG2JIU5M.js";
|
|
4
4
|
|
|
5
5
|
// src/skills/autoSkill.ts
|
|
6
6
|
import fs from "fs-extra";
|
|
@@ -440,8 +440,8 @@ async function runAutoSkillGeneration(workspaceRoot, llm) {
|
|
|
440
440
|
console.log(chalk.gray(`Detected: ${detected}`));
|
|
441
441
|
console.log(chalk.gray(`Platform: ${analysis.platform}`));
|
|
442
442
|
console.log(chalk.cyan("Generating targeted skill via LearnAdvisor..."));
|
|
443
|
-
const { LearnAdvisor } = await import("./LearnAdvisor-
|
|
444
|
-
const { computeProjectHash, injectGeneratedMetadata } = await import("./communityInstaller-
|
|
443
|
+
const { LearnAdvisor } = await import("./LearnAdvisor-RFOBXFG7.js");
|
|
444
|
+
const { computeProjectHash, injectGeneratedMetadata } = await import("./communityInstaller-OLKEUGMX.js");
|
|
445
445
|
const advisor = new LearnAdvisor(llm);
|
|
446
446
|
const generated = await advisor.generateSkill(analysis, null, []);
|
|
447
447
|
if (!generated) {
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GitHubRegistryFetcher
|
|
3
|
+
} from "./chunk-YVQI26H4.js";
|
|
1
4
|
import {
|
|
2
5
|
LearnClient,
|
|
3
6
|
fetchRegistryWithFallback,
|
|
4
7
|
installSkillWithSecurity
|
|
5
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-HTPY5ESD.js";
|
|
6
9
|
import {
|
|
7
10
|
CommunitySkillsCache
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import {
|
|
10
|
-
GitHubRegistryFetcher
|
|
11
|
-
} from "./chunk-YVQI26H4.js";
|
|
11
|
+
} from "./chunk-S2L3Y677.js";
|
|
12
12
|
import {
|
|
13
13
|
showConfirm,
|
|
14
14
|
showModal
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-LOSXLH7P.js";
|
|
16
16
|
import {
|
|
17
17
|
t
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
19
19
|
|
|
20
20
|
// src/commands/skills.ts
|
|
21
21
|
import path from "path";
|
|
@@ -109,6 +109,8 @@ function generateSkillSuggestion(skillName, description) {
|
|
|
109
109
|
}
|
|
110
110
|
function getSkillSourceLabel(source) {
|
|
111
111
|
switch (source) {
|
|
112
|
+
case "builtin":
|
|
113
|
+
return "Built-in";
|
|
112
114
|
case "autohand-user":
|
|
113
115
|
return "Autohand User";
|
|
114
116
|
case "autohand-project":
|
|
@@ -204,6 +206,7 @@ function listSkills(registry) {
|
|
|
204
206
|
bySource.set(skill.source, existing);
|
|
205
207
|
}
|
|
206
208
|
const sourceLabels = {
|
|
209
|
+
"builtin": "Built-in Skills",
|
|
207
210
|
"codex-user": "\u{1F4C1} Codex User Skills",
|
|
208
211
|
"claude-user": "\u{1F4C1} Claude User Skills",
|
|
209
212
|
"claude-project": "\u{1F4C1} Project Skills",
|
|
@@ -338,7 +341,7 @@ async function handleSkillsInstall(ctx, skillName) {
|
|
|
338
341
|
if (!workspaceRoot) {
|
|
339
342
|
return "Workspace root not available.";
|
|
340
343
|
}
|
|
341
|
-
const { skillsInstall } = await import("./skills-install-
|
|
344
|
+
const { skillsInstall } = await import("./skills-install-T4SOKJSL.js");
|
|
342
345
|
const result = await skillsInstall(
|
|
343
346
|
{
|
|
344
347
|
skillsRegistry,
|
|
@@ -461,7 +464,7 @@ function handleSkillsFeedback(slug, rating, _comment) {
|
|
|
461
464
|
}
|
|
462
465
|
var metadata = {
|
|
463
466
|
command: "/skills",
|
|
464
|
-
description:
|
|
467
|
+
description: "discover and install skills for your project",
|
|
465
468
|
implemented: true,
|
|
466
469
|
subcommands: [
|
|
467
470
|
{ name: "use", description: "Activate a skill" },
|
|
@@ -1,6 +1,6 @@
|
|
|
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(); } }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
4
4
|
|
|
5
5
|
// src/commands/permissions.ts
|
|
6
6
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -31,9 +31,9 @@ function renderSection(title, section) {
|
|
|
31
31
|
async function permissions(ctx) {
|
|
32
32
|
const snapshot = ctx.permissionManager.getPermissionSnapshot(_nullishCoalesce(ctx.configPath, () => ( "(user config unknown)")));
|
|
33
33
|
console.log();
|
|
34
|
-
console.log(_chalk2.default.bold.cyan(
|
|
34
|
+
console.log(_chalk2.default.bold.cyan(_chunkRJCZLFHEcjs.t.call(void 0, "commands.permissions.title")));
|
|
35
35
|
console.log(_chalk2.default.gray("\u2500".repeat(50)));
|
|
36
|
-
console.log(_chalk2.default.gray(
|
|
36
|
+
console.log(_chalk2.default.gray(_chunkRJCZLFHEcjs.t.call(void 0, "commands.permissions.mode", { mode: snapshot.mode || "interactive" })));
|
|
37
37
|
console.log(_chalk2.default.gray(`Remember session decisions: ${snapshot.rememberSession ? "Yes" : "No"}`));
|
|
38
38
|
console.log();
|
|
39
39
|
renderSection("Session", snapshot.session);
|
|
@@ -44,7 +44,7 @@ async function permissions(ctx) {
|
|
|
44
44
|
}
|
|
45
45
|
var metadata = {
|
|
46
46
|
command: "/permissions",
|
|
47
|
-
description:
|
|
47
|
+
description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.permissions.description"),
|
|
48
48
|
implemented: true
|
|
49
49
|
};
|
|
50
50
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkDMM2BKSVcjs = require('./chunk-DMM2BKSV.cjs');
|
|
7
7
|
|
|
8
8
|
// src/utils/prompt.ts
|
|
9
9
|
async function safePrompt(questions) {
|
|
@@ -17,7 +17,7 @@ async function safePrompt(questions) {
|
|
|
17
17
|
label: choice.message,
|
|
18
18
|
value: choice.name
|
|
19
19
|
}));
|
|
20
|
-
const result = await
|
|
20
|
+
const result = await _chunkDMM2BKSVcjs.showModal.call(void 0, {
|
|
21
21
|
title: selectConfig.message,
|
|
22
22
|
options,
|
|
23
23
|
initialIndex: selectConfig.initial
|
|
@@ -25,19 +25,19 @@ async function safePrompt(questions) {
|
|
|
25
25
|
value = _optionalChain([result, 'optionalAccess', _ => _.value]);
|
|
26
26
|
} else if (question.type === "confirm") {
|
|
27
27
|
const confirmConfig = question;
|
|
28
|
-
value = await
|
|
28
|
+
value = await _chunkDMM2BKSVcjs.showConfirm.call(void 0, {
|
|
29
29
|
title: confirmConfig.message,
|
|
30
30
|
defaultValue: confirmConfig.initial
|
|
31
31
|
});
|
|
32
32
|
} else if (question.type === "password") {
|
|
33
33
|
const inputConfig = question;
|
|
34
|
-
value = await
|
|
34
|
+
value = await _chunkDMM2BKSVcjs.showPassword.call(void 0, {
|
|
35
35
|
title: inputConfig.message,
|
|
36
36
|
validate: inputConfig.validate
|
|
37
37
|
});
|
|
38
38
|
} else if (question.type === "input") {
|
|
39
39
|
const inputConfig = question;
|
|
40
|
-
value = await
|
|
40
|
+
value = await _chunkDMM2BKSVcjs.showInput.call(void 0, {
|
|
41
41
|
title: inputConfig.message,
|
|
42
42
|
defaultValue: inputConfig.initial,
|
|
43
43
|
validate: inputConfig.validate
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
4
4
|
|
|
5
5
|
// src/commands/sessions.ts
|
|
6
6
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
7
7
|
var metadata = {
|
|
8
8
|
command: "/sessions",
|
|
9
|
-
description:
|
|
9
|
+
description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.sessions.description"),
|
|
10
10
|
implemented: true
|
|
11
11
|
};
|
|
12
12
|
async function sessions(ctx) {
|
|
@@ -16,7 +16,7 @@ async function sessions(ctx) {
|
|
|
16
16
|
projectFilter ? { project: projectFilter } : void 0
|
|
17
17
|
);
|
|
18
18
|
if (allSessions.length === 0) {
|
|
19
|
-
console.log(_chalk2.default.gray(
|
|
19
|
+
console.log(_chalk2.default.gray(_chunkRJCZLFHEcjs.t.call(void 0, "commands.sessions.noSessions")));
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
22
|
console.log(_chalk2.default.cyan(`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AUTOHAND_HOME
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PG2JIU5M.js";
|
|
4
4
|
import {
|
|
5
5
|
getSyncApiClient
|
|
6
6
|
} from "./chunk-L6OH44HL.js";
|
|
@@ -36,6 +36,9 @@ var SYNC_INCLUDE_DEFAULT = [
|
|
|
36
36
|
"share/",
|
|
37
37
|
"skills/"
|
|
38
38
|
];
|
|
39
|
+
function isMemorySyncPath(filePath) {
|
|
40
|
+
return filePath === "memory" || filePath.startsWith("memory/");
|
|
41
|
+
}
|
|
39
42
|
|
|
40
43
|
// src/sync/encryption.ts
|
|
41
44
|
import crypto from "crypto";
|
|
@@ -137,7 +140,7 @@ function decryptConfig(config, authToken) {
|
|
|
137
140
|
try {
|
|
138
141
|
result[key] = decrypt(value, authToken);
|
|
139
142
|
} catch {
|
|
140
|
-
|
|
143
|
+
continue;
|
|
141
144
|
}
|
|
142
145
|
} else {
|
|
143
146
|
result[key] = value;
|
|
@@ -160,6 +163,32 @@ var MANIFEST_VERSION = 1;
|
|
|
160
163
|
var SYNC_STATE_FILE = ".sync-state.json";
|
|
161
164
|
var SYNC_LOCK_FILE = ".sync-lock";
|
|
162
165
|
var MAX_TOTAL_SIZE = 100 * 1024 * 1024;
|
|
166
|
+
function isJsonObject(value) {
|
|
167
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
168
|
+
}
|
|
169
|
+
function stripUnsyncedConfigFields(config) {
|
|
170
|
+
const rest = { ...config };
|
|
171
|
+
delete rest.auth;
|
|
172
|
+
return rest;
|
|
173
|
+
}
|
|
174
|
+
function mergeDownloadedConfig(downloaded, local) {
|
|
175
|
+
const sanitizedDownloaded = stripUnsyncedConfigFields(downloaded);
|
|
176
|
+
if (local && Object.prototype.hasOwnProperty.call(local, "auth")) {
|
|
177
|
+
return {
|
|
178
|
+
...sanitizedDownloaded,
|
|
179
|
+
auth: local.auth
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
return sanitizedDownloaded;
|
|
183
|
+
}
|
|
184
|
+
function isRemoteNewer(localFile, remoteFile) {
|
|
185
|
+
const localTime = Date.parse(localFile.modifiedAt);
|
|
186
|
+
const remoteTime = Date.parse(remoteFile.modifiedAt);
|
|
187
|
+
if (Number.isNaN(localTime) || Number.isNaN(remoteTime)) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
return remoteTime > localTime;
|
|
191
|
+
}
|
|
163
192
|
var SyncService = class {
|
|
164
193
|
authToken;
|
|
165
194
|
userId;
|
|
@@ -279,9 +308,17 @@ var SyncService = class {
|
|
|
279
308
|
const localPath = path.join(this.basePath, file.path);
|
|
280
309
|
if (file.path === "config.json") {
|
|
281
310
|
const config = JSON.parse(content.toString("utf8"));
|
|
282
|
-
const
|
|
311
|
+
const localConfig = await fs.readJson(localPath).catch(() => null);
|
|
312
|
+
const decrypted = decryptConfig(
|
|
313
|
+
isJsonObject(config) ? config : {},
|
|
314
|
+
this.authToken
|
|
315
|
+
);
|
|
316
|
+
const merged = mergeDownloadedConfig(
|
|
317
|
+
decrypted,
|
|
318
|
+
isJsonObject(localConfig) ? localConfig : null
|
|
319
|
+
);
|
|
283
320
|
await fs.ensureDir(path.dirname(localPath));
|
|
284
|
-
await fs.writeJson(localPath,
|
|
321
|
+
await fs.writeJson(localPath, merged, { spaces: 2 });
|
|
285
322
|
} else {
|
|
286
323
|
await fs.ensureDir(path.dirname(localPath));
|
|
287
324
|
await fs.writeFile(localPath, content);
|
|
@@ -319,7 +356,8 @@ var SyncService = class {
|
|
|
319
356
|
let content;
|
|
320
357
|
if (file.path === "config.json") {
|
|
321
358
|
const config = await fs.readJson(localPath);
|
|
322
|
-
const
|
|
359
|
+
const syncedConfig = stripUnsyncedConfigFields(isJsonObject(config) ? config : {});
|
|
360
|
+
const encrypted = encryptConfig(syncedConfig, this.authToken);
|
|
323
361
|
content = Buffer.from(JSON.stringify(encrypted, null, 2), "utf8");
|
|
324
362
|
} else {
|
|
325
363
|
content = await fs.readFile(localPath);
|
|
@@ -408,11 +446,11 @@ var SyncService = class {
|
|
|
408
446
|
if (await fs.pathExists(fullPath)) {
|
|
409
447
|
const stat = await fs.stat(fullPath);
|
|
410
448
|
if (stat.isFile()) {
|
|
411
|
-
const content = await
|
|
449
|
+
const content = await this.readManifestContent(relativePath, fullPath);
|
|
412
450
|
files.push({
|
|
413
451
|
path: relativePath,
|
|
414
452
|
hash: computeHash(content),
|
|
415
|
-
size:
|
|
453
|
+
size: content.length,
|
|
416
454
|
modifiedAt: stat.mtime.toISOString(),
|
|
417
455
|
encrypted: relativePath === "config.json"
|
|
418
456
|
});
|
|
@@ -471,11 +509,11 @@ var SyncService = class {
|
|
|
471
509
|
if (entry.isFile()) {
|
|
472
510
|
try {
|
|
473
511
|
const stat = await fs.stat(fullPath);
|
|
474
|
-
const content = await
|
|
512
|
+
const content = await this.readManifestContent(relativePath, fullPath);
|
|
475
513
|
files.push({
|
|
476
514
|
path: relativePath,
|
|
477
515
|
hash: computeHash(content),
|
|
478
|
-
size:
|
|
516
|
+
size: content.length,
|
|
479
517
|
modifiedAt: stat.mtime.toISOString()
|
|
480
518
|
});
|
|
481
519
|
} catch {
|
|
@@ -488,6 +526,14 @@ var SyncService = class {
|
|
|
488
526
|
}
|
|
489
527
|
return files;
|
|
490
528
|
}
|
|
529
|
+
async readManifestContent(relativePath, fullPath) {
|
|
530
|
+
if (relativePath !== "config.json") {
|
|
531
|
+
return fs.readFile(fullPath);
|
|
532
|
+
}
|
|
533
|
+
const config = await fs.readJson(fullPath).catch(() => null);
|
|
534
|
+
const syncedConfig = stripUnsyncedConfigFields(isJsonObject(config) ? config : {});
|
|
535
|
+
return Buffer.from(JSON.stringify(syncedConfig, null, 2), "utf8");
|
|
536
|
+
}
|
|
491
537
|
/**
|
|
492
538
|
* Check if a path matches any exclude pattern
|
|
493
539
|
*/
|
|
@@ -526,7 +572,11 @@ var SyncService = class {
|
|
|
526
572
|
if (!remoteFile) {
|
|
527
573
|
actions.uploads.push(localFile);
|
|
528
574
|
} else if (localFile.hash !== remoteFile.hash) {
|
|
529
|
-
|
|
575
|
+
if (isRemoteNewer(localFile, remoteFile)) {
|
|
576
|
+
actions.conflicts.push(remoteFile);
|
|
577
|
+
} else {
|
|
578
|
+
actions.uploads.push(localFile);
|
|
579
|
+
}
|
|
530
580
|
}
|
|
531
581
|
}
|
|
532
582
|
for (const [filePath, remoteFile] of remoteFiles) {
|
|
@@ -550,14 +600,49 @@ var SyncService = class {
|
|
|
550
600
|
error: "No remote data to download"
|
|
551
601
|
};
|
|
552
602
|
}
|
|
603
|
+
return this.forceDownloadFiles(remoteManifest.files);
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* Force download a subset of cloud files by path.
|
|
607
|
+
*/
|
|
608
|
+
async forceDownloadPaths(paths) {
|
|
609
|
+
const remoteManifest = await this.client.getRemoteManifest(this.authToken);
|
|
610
|
+
if (!remoteManifest) {
|
|
611
|
+
return {
|
|
612
|
+
success: false,
|
|
613
|
+
uploaded: 0,
|
|
614
|
+
downloaded: 0,
|
|
615
|
+
conflicts: 0,
|
|
616
|
+
error: "No remote data to download"
|
|
617
|
+
};
|
|
618
|
+
}
|
|
619
|
+
const requestedPaths = new Set(paths);
|
|
620
|
+
const files = remoteManifest.files.filter((file) => requestedPaths.has(file.path));
|
|
621
|
+
return this.forceDownloadFiles(files);
|
|
622
|
+
}
|
|
623
|
+
async forceDownloadFiles(files) {
|
|
624
|
+
if (files.length === 0) {
|
|
625
|
+
return {
|
|
626
|
+
success: true,
|
|
627
|
+
uploaded: 0,
|
|
628
|
+
downloaded: 0,
|
|
629
|
+
conflicts: 0
|
|
630
|
+
};
|
|
631
|
+
}
|
|
553
632
|
const actions = {
|
|
554
633
|
uploads: [],
|
|
555
|
-
downloads:
|
|
634
|
+
downloads: files,
|
|
556
635
|
conflicts: [],
|
|
557
636
|
localDeletes: [],
|
|
558
637
|
remoteDeletes: []
|
|
559
638
|
};
|
|
560
|
-
return this.performSyncActions(actions,
|
|
639
|
+
return this.performSyncActions(actions, {
|
|
640
|
+
version: MANIFEST_VERSION,
|
|
641
|
+
userId: this.userId,
|
|
642
|
+
lastModified: (/* @__PURE__ */ new Date()).toISOString(),
|
|
643
|
+
files,
|
|
644
|
+
checksum: computeHash(JSON.stringify(files))
|
|
645
|
+
});
|
|
561
646
|
}
|
|
562
647
|
/**
|
|
563
648
|
* Force a full upload (overwrite cloud with local)
|
|
@@ -594,9 +679,17 @@ var SyncService = class {
|
|
|
594
679
|
const localPath = path.join(this.basePath, file.path);
|
|
595
680
|
if (file.path === "config.json") {
|
|
596
681
|
const config = JSON.parse(content.toString("utf8"));
|
|
597
|
-
const
|
|
682
|
+
const localConfig = await fs.readJson(localPath).catch(() => null);
|
|
683
|
+
const decrypted = decryptConfig(
|
|
684
|
+
isJsonObject(config) ? config : {},
|
|
685
|
+
this.authToken
|
|
686
|
+
);
|
|
687
|
+
const merged = mergeDownloadedConfig(
|
|
688
|
+
decrypted,
|
|
689
|
+
isJsonObject(localConfig) ? localConfig : null
|
|
690
|
+
);
|
|
598
691
|
await fs.ensureDir(path.dirname(localPath));
|
|
599
|
-
await fs.writeJson(localPath,
|
|
692
|
+
await fs.writeJson(localPath, merged, { spaces: 2 });
|
|
600
693
|
} else {
|
|
601
694
|
await fs.ensureDir(path.dirname(localPath));
|
|
602
695
|
await fs.writeFile(localPath, content);
|
|
@@ -620,7 +713,8 @@ var SyncService = class {
|
|
|
620
713
|
let content;
|
|
621
714
|
if (file.path === "config.json") {
|
|
622
715
|
const config = await fs.readJson(localPath);
|
|
623
|
-
const
|
|
716
|
+
const syncedConfig = stripUnsyncedConfigFields(isJsonObject(config) ? config : {});
|
|
717
|
+
const encrypted = encryptConfig(syncedConfig, this.authToken);
|
|
624
718
|
content = Buffer.from(JSON.stringify(encrypted, null, 2), "utf8");
|
|
625
719
|
} else {
|
|
626
720
|
content = await fs.readFile(localPath);
|
|
@@ -680,6 +774,7 @@ export {
|
|
|
680
774
|
SYNC_EXCLUDE_ALWAYS,
|
|
681
775
|
SYNC_CONSENT_REQUIRED,
|
|
682
776
|
SYNC_INCLUDE_DEFAULT,
|
|
777
|
+
isMemorySyncPath,
|
|
683
778
|
deriveKey,
|
|
684
779
|
encrypt,
|
|
685
780
|
decrypt,
|
|
@@ -107,6 +107,38 @@ var FEATURE_REGISTRY = [
|
|
|
107
107
|
configPath: "features.slashGoal",
|
|
108
108
|
defaultEnabled: false
|
|
109
109
|
},
|
|
110
|
+
{
|
|
111
|
+
id: "token_usage_status",
|
|
112
|
+
label: "Token usage status",
|
|
113
|
+
description: "Show real-time token usage (tokens up/down and context window occupancy) in the status line.",
|
|
114
|
+
stage: "experimental",
|
|
115
|
+
configPath: "features.tokenUsageStatus",
|
|
116
|
+
defaultEnabled: false
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: "experimental_fork",
|
|
120
|
+
label: "Experimental fork",
|
|
121
|
+
description: "Enable branching a new session from the active session or an earlier user message.",
|
|
122
|
+
stage: "experimental",
|
|
123
|
+
configPath: "features.experimentalFork",
|
|
124
|
+
defaultEnabled: false
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: "experimental_clone",
|
|
128
|
+
label: "Experimental clone",
|
|
129
|
+
description: "Enable duplicating the active session branch into a new session.",
|
|
130
|
+
stage: "experimental",
|
|
131
|
+
configPath: "features.experimentalClone",
|
|
132
|
+
defaultEnabled: false
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
id: "experimental_handoff",
|
|
136
|
+
label: "Experimental handoff",
|
|
137
|
+
description: "Enable handoff session commands for continuing work from another Autohand surface.",
|
|
138
|
+
stage: "experimental",
|
|
139
|
+
configPath: "features.experimentalHandoff",
|
|
140
|
+
defaultEnabled: false
|
|
141
|
+
},
|
|
110
142
|
{
|
|
111
143
|
id: "chrome_integration",
|
|
112
144
|
label: "Chrome integration",
|
|
@@ -129,6 +161,10 @@ function isAwsBedrockProviderEnabled(config) {
|
|
|
129
161
|
const definition = FEATURE_REGISTRY.find((feature) => feature.id === AWS_BEDROCK_PROVIDER_FLAG);
|
|
130
162
|
return config?.features?.awsBedrockProvider ?? definition?.defaultEnabled ?? true;
|
|
131
163
|
}
|
|
164
|
+
function isTokenUsageStatusEnabled(config) {
|
|
165
|
+
const definition = FEATURE_REGISTRY.find((feature) => feature.id === "token_usage_status");
|
|
166
|
+
return config?.features?.tokenUsageStatus ?? definition?.defaultEnabled ?? false;
|
|
167
|
+
}
|
|
132
168
|
var LOCAL_FEATURE_IDS = new Set(FEATURE_REGISTRY.map((feature) => feature.id));
|
|
133
169
|
function isLocalFeatureId(id) {
|
|
134
170
|
return LOCAL_FEATURE_IDS.has(id);
|
|
@@ -162,7 +198,7 @@ function getRemoteFeatureStates(config, options = {}) {
|
|
|
162
198
|
const remoteOverrides = config.features?.remoteOverrides || {};
|
|
163
199
|
const snapshot = options.remoteSnapshot;
|
|
164
200
|
if (!snapshot) return [];
|
|
165
|
-
return snapshot.flags.filter((flag) => !isLocalFeatureId(flag.key)).map((flag) => {
|
|
201
|
+
return snapshot.flags.filter((flag) => !isLocalFeatureId(flag.key) && isVisibleRemoteExperiment(flag)).map((flag) => {
|
|
166
202
|
const localOverride = remoteOverrides[flag.key] === "off" ? "off" : void 0;
|
|
167
203
|
return {
|
|
168
204
|
id: flag.key,
|
|
@@ -180,6 +216,13 @@ function getRemoteFeatureStates(config, options = {}) {
|
|
|
180
216
|
};
|
|
181
217
|
});
|
|
182
218
|
}
|
|
219
|
+
function isVisibleRemoteExperiment(flag) {
|
|
220
|
+
const reason = flag.reason.toLowerCase();
|
|
221
|
+
if (reason.includes("archived") || reason.includes("client_type mismatch") || reason.includes("client type mismatch")) {
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
return !flag.clientTypes || flag.clientTypes.length === 0 || flag.clientTypes.includes("cli");
|
|
225
|
+
}
|
|
183
226
|
function getFeatureState(config, id, options = {}) {
|
|
184
227
|
const definition = FEATURE_REGISTRY.find((feature) => feature.id === id);
|
|
185
228
|
if (definition) {
|
|
@@ -266,6 +309,7 @@ function formatFeatureStatus(config, id, options = {}) {
|
|
|
266
309
|
|
|
267
310
|
export {
|
|
268
311
|
isAwsBedrockProviderEnabled,
|
|
312
|
+
isTokenUsageStatusEnabled,
|
|
269
313
|
isLocalFeatureId,
|
|
270
314
|
getFeatureState,
|
|
271
315
|
listFeatureStates,
|
|
@@ -1,16 +1,16 @@
|
|
|
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 _chunkGYLGCR6Fcjs = require('./chunk-GYLGCR6F.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkCSUGNNJYcjs = require('./chunk-CSUGNNJY.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
14
14
|
|
|
15
15
|
// src/commands/feedback.ts
|
|
16
16
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
@@ -18,14 +18,14 @@ var _os = require('os'); var _os2 = _interopRequireDefault(_os);
|
|
|
18
18
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
19
19
|
var metadata = {
|
|
20
20
|
command: "/feedback",
|
|
21
|
-
description:
|
|
21
|
+
description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.feedback.description"),
|
|
22
22
|
implemented: true
|
|
23
23
|
};
|
|
24
24
|
var DEFAULT_API_BASE_URL = "https://api.autohand.ai";
|
|
25
25
|
var API_TIMEOUT = 1e4;
|
|
26
26
|
var COOLDOWN_MAX_SUBMISSIONS = 5;
|
|
27
27
|
var COOLDOWN_WINDOW_MS = 60 * 60 * 1e3;
|
|
28
|
-
var COOLDOWN_STATE_PATH = `${
|
|
28
|
+
var COOLDOWN_STATE_PATH = `${_chunk3JURXAL6cjs.AUTOHAND_PATHS.feedback}/cooldown.json`;
|
|
29
29
|
async function checkCooldown() {
|
|
30
30
|
try {
|
|
31
31
|
if (!await _fsextra2.default.pathExists(COOLDOWN_STATE_PATH)) {
|
|
@@ -56,7 +56,7 @@ async function recordSubmission() {
|
|
|
56
56
|
const windowStart = now - COOLDOWN_WINDOW_MS;
|
|
57
57
|
state.submissions = state.submissions.filter((ts) => ts > windowStart);
|
|
58
58
|
state.submissions.push(now);
|
|
59
|
-
await _fsextra2.default.ensureDir(
|
|
59
|
+
await _fsextra2.default.ensureDir(_chunk3JURXAL6cjs.AUTOHAND_PATHS.feedback);
|
|
60
60
|
await _fsextra2.default.writeJson(COOLDOWN_STATE_PATH, state, { spaces: 2 });
|
|
61
61
|
} catch (e2) {
|
|
62
62
|
}
|
|
@@ -68,7 +68,7 @@ async function feedback(_ctx) {
|
|
|
68
68
|
console.log(_chalk2.default.gray(`Please wait ${cooldown.waitMinutes} minute${cooldown.waitMinutes === 1 ? "" : "s"} before submitting again.`));
|
|
69
69
|
return null;
|
|
70
70
|
}
|
|
71
|
-
const ratingAnswer = await
|
|
71
|
+
const ratingAnswer = await _chunkGYLGCR6Fcjs.safePrompt.call(void 0, [
|
|
72
72
|
{
|
|
73
73
|
type: "select",
|
|
74
74
|
name: "rating",
|
|
@@ -96,7 +96,7 @@ async function feedback(_ctx) {
|
|
|
96
96
|
let improvement;
|
|
97
97
|
let recommend;
|
|
98
98
|
if (npsScore >= 4) {
|
|
99
|
-
const reasonAnswer = await
|
|
99
|
+
const reasonAnswer = await _chunkGYLGCR6Fcjs.safePrompt.call(void 0, [
|
|
100
100
|
{
|
|
101
101
|
type: "input",
|
|
102
102
|
name: "reason",
|
|
@@ -108,7 +108,7 @@ async function feedback(_ctx) {
|
|
|
108
108
|
return null;
|
|
109
109
|
}
|
|
110
110
|
reason = _optionalChain([reasonAnswer, 'access', _ => _.reason, 'optionalAccess', _2 => _2.trim, 'call', _3 => _3()]) || void 0;
|
|
111
|
-
const recommendAnswer = await
|
|
111
|
+
const recommendAnswer = await _chunkGYLGCR6Fcjs.safePrompt.call(void 0, [
|
|
112
112
|
{
|
|
113
113
|
type: "select",
|
|
114
114
|
name: "recommend",
|
|
@@ -125,7 +125,7 @@ async function feedback(_ctx) {
|
|
|
125
125
|
}
|
|
126
126
|
recommend = recommendAnswer.recommend === "yes";
|
|
127
127
|
} else {
|
|
128
|
-
const improvementAnswer = await
|
|
128
|
+
const improvementAnswer = await _chunkGYLGCR6Fcjs.safePrompt.call(void 0, [
|
|
129
129
|
{
|
|
130
130
|
type: "input",
|
|
131
131
|
name: "improvement",
|
|
@@ -149,7 +149,7 @@ async function feedback(_ctx) {
|
|
|
149
149
|
triggerType: "manual",
|
|
150
150
|
timestamp: now,
|
|
151
151
|
deviceId,
|
|
152
|
-
cliVersion:
|
|
152
|
+
cliVersion: _chunkCSUGNNJYcjs.package_default.version,
|
|
153
153
|
platform: process.platform,
|
|
154
154
|
osVersion: _os2.default.release(),
|
|
155
155
|
nodeVersion: process.version,
|
|
@@ -163,7 +163,7 @@ async function feedback(_ctx) {
|
|
|
163
163
|
runtimeError: runtimeError ? formatError(runtimeError) : null
|
|
164
164
|
};
|
|
165
165
|
try {
|
|
166
|
-
const feedbackPath =
|
|
166
|
+
const feedbackPath = _chunk3JURXAL6cjs.AUTOHAND_FILES.feedbackLog;
|
|
167
167
|
await _fsextra2.default.ensureFile(feedbackPath);
|
|
168
168
|
await _fsextra2.default.appendFile(feedbackPath, JSON.stringify(payload) + "\n", "utf8");
|
|
169
169
|
} catch (e3) {
|
|
@@ -172,7 +172,7 @@ async function feedback(_ctx) {
|
|
|
172
172
|
const apiBaseUrl = getFeedbackApiBaseUrl(_ctx);
|
|
173
173
|
const response = await sendFeedbackToApi(payload, apiBaseUrl);
|
|
174
174
|
if (response.success) {
|
|
175
|
-
console.log(_chalk2.default.green(
|
|
175
|
+
console.log(_chalk2.default.green(_chunkRJCZLFHEcjs.t.call(void 0, "commands.feedback.success")));
|
|
176
176
|
} else {
|
|
177
177
|
if (/rate limit/i.test(_nullishCoalesce(response.error, () => ( "")))) {
|
|
178
178
|
console.log(_chalk2.default.yellow("Feedback saved locally (rate limited, will retry later)."));
|
|
@@ -197,7 +197,7 @@ async function sendFeedbackToApi(payload, apiBaseUrl) {
|
|
|
197
197
|
method: "POST",
|
|
198
198
|
headers: {
|
|
199
199
|
"Content-Type": "application/json",
|
|
200
|
-
"X-CLI-Version":
|
|
200
|
+
"X-CLI-Version": _chunkCSUGNNJYcjs.package_default.version,
|
|
201
201
|
"X-Device-ID": payload.deviceId
|
|
202
202
|
},
|
|
203
203
|
body: JSON.stringify(payload),
|
|
@@ -255,7 +255,7 @@ function truncateFeedbackError(text, max = 220) {
|
|
|
255
255
|
return `${text.slice(0, Math.max(0, max - 1))}\u2026`;
|
|
256
256
|
}
|
|
257
257
|
async function getDeviceId() {
|
|
258
|
-
const deviceIdPath = `${
|
|
258
|
+
const deviceIdPath = `${_chunk3JURXAL6cjs.AUTOHAND_PATHS.feedback}/.device-id`;
|
|
259
259
|
try {
|
|
260
260
|
if (await _fsextra2.default.pathExists(deviceIdPath)) {
|
|
261
261
|
return (await _fsextra2.default.readFile(deviceIdPath, "utf8")).trim();
|
|
@@ -264,7 +264,7 @@ async function getDeviceId() {
|
|
|
264
264
|
}
|
|
265
265
|
const deviceId = `anon_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;
|
|
266
266
|
try {
|
|
267
|
-
await _fsextra2.default.ensureDir(
|
|
267
|
+
await _fsextra2.default.ensureDir(_chunk3JURXAL6cjs.AUTOHAND_PATHS.feedback);
|
|
268
268
|
await _fsextra2.default.writeFile(deviceIdPath, deviceId);
|
|
269
269
|
} catch (e6) {
|
|
270
270
|
}
|