autohand-cli 0.9.0 → 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 +118 -76
- package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
- package/dist/AgentRegistry-JBXZUPML.js +18 -0
- package/dist/{CommunitySkillsCache-ZEQWP6YM.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
- package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
- package/dist/{HookManager-CWLTFKWO.js → HookManager-BELBPQQI.js} +1 -1
- package/dist/{HookManager-TMAJQU4S.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
- package/dist/{ImportWizard-MQXEED2U.cjs → ImportWizard-U6CIJREW.cjs} +13 -13
- package/dist/{ImportWizard-QBKQEXDW.js → ImportWizard-VJFSWSUQ.js} +4 -4
- 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-2HR737UE.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
- package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
- package/dist/{PermissionManager-KMYILJ4Z.js → PermissionManager-N2LDSOYF.js} +3 -3
- package/dist/PermissionManager-ZNURIEYR.cjs +11 -0
- package/dist/ProviderFactory-3BFS65V7.cjs +13 -0
- package/dist/{ProviderFactory-HFPRVQ25.js → ProviderFactory-XUT6BSGB.js} +4 -2
- package/dist/SessionManager-LGPQIA57.cjs +10 -0
- package/dist/{SessionManager-PNBTJJTQ.js → SessionManager-OR4KDDDS.js} +2 -2
- package/dist/{SkillsRegistry-4RRD5GMX.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/{SyncApiClient-LRPFNCKJ.js → SyncApiClient-G3FM65IV.js} +1 -1
- package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
- package/dist/{about-BW3PDZUU.js → about-OYVGQMJJ.js} +5 -4
- package/dist/about-U2BH7HDR.cjs +15 -0
- package/dist/{acp-VHEL7BOW.js → acp-JWHGXZL5.js} +207 -102
- package/dist/{acp-EOETGAHC.cjs → acp-S37JOBCS.cjs} +226 -121
- package/dist/actionExecutor-2QEPMELQ.cjs +28 -0
- package/dist/actionExecutor-6NCCORRB.js +28 -0
- package/dist/add-dir-KFUHSIR2.cjs +11 -0
- package/dist/{add-dir-VFX7QT4E.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-EVTGPTA4.js +17 -0
- package/dist/{autoSkill-EFMK6WU6.js → autoSkill-HEWKJ5JV.js} +2 -2
- package/dist/autoSkill-YL6PN6AV.cjs +20 -0
- package/dist/automode-4BJ7FNPL.cjs +10 -0
- package/dist/{automode-BMYSRM34.js → automode-S4U7A7Q2.js} +2 -2
- package/dist/chrome-45ZXHL5N.cjs +22 -0
- package/dist/{chrome-NHJ44WUN.js → chrome-BBSRVG6S.js} +2 -2
- package/dist/chrome-IFVZRHAT.cjs +50 -0
- package/dist/chrome-MYE6DNA2.js +22 -0
- package/dist/chunk-24CEJYEG.cjs +579 -0
- package/dist/{chunk-47PHDKNW.cjs → chunk-255GIVM2.cjs} +6 -6
- package/dist/{chunk-DIZTWFVR.cjs → chunk-2BDSR2OW.cjs} +238 -61
- package/dist/{chunk-BL2UC7HC.js → chunk-2BPIR7LA.js} +121 -4
- package/dist/{chunk-BQ22N3TX.cjs → chunk-2NY7OHBF.cjs} +47 -27
- package/dist/chunk-2WUNHTXL.js +303 -0
- package/dist/{chunk-HQWQZML5.cjs → chunk-34B6ZO6W.cjs} +124 -7
- package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
- package/dist/{chunk-4256YRCO.cjs → chunk-3CAXECWJ.cjs} +30 -17
- package/dist/{chunk-KNTUI4TZ.cjs → chunk-3CBYUBZC.cjs} +5 -5
- package/dist/chunk-3DF3GZQ7.js +277 -0
- package/dist/{chunk-E26KKI46.cjs → chunk-3JURXAL6.cjs} +61 -8
- package/dist/{chunk-MOJ7ADW4.cjs → chunk-3KWAP2Y3.cjs} +88 -9
- package/dist/{chunk-OHWMWKJQ.js → chunk-3MCK6UBL.js} +1 -1
- package/dist/{chunk-5VHP6HDQ.js → chunk-3TH7IK4M.js} +62 -9
- package/dist/{chunk-ACDQGA4Z.js → chunk-3V77OB3W.js} +7 -72
- package/dist/{chunk-HS4USDND.cjs → chunk-3Y5UEK7K.cjs} +4 -4
- package/dist/{chunk-XV2HXRHX.js → chunk-4GPPSBEZ.js} +3 -3
- package/dist/chunk-5CMBAJ6K.js +377 -0
- package/dist/{chunk-MO4KP6XS.cjs → chunk-5YRXFBYZ.cjs} +35 -6
- package/dist/chunk-5ZNYX4VH.cjs +71 -0
- package/dist/chunk-6AC2TT26.js +156 -0
- package/dist/{chunk-UGFVM77J.cjs → chunk-6EIQ6A6U.cjs} +2 -2
- package/dist/{chunk-SWCQM52V.js → chunk-6HSEDXVF.js} +4 -4
- package/dist/{chunk-QQ7PANOP.js → chunk-6NUXK62F.js} +1 -1
- package/dist/{chunk-5CMYEM3R.cjs → chunk-6TGCAPYH.cjs} +62 -9
- package/dist/{chunk-NMQ47RCG.js → chunk-6W3SZCSP.js} +1 -1
- package/dist/{chunk-VRMZO6TB.js → chunk-73LV3DDZ.js} +7 -6
- package/dist/{chunk-3GUEUCZK.js → chunk-7BGGLIQF.js} +85 -1
- package/dist/{chunk-RBHANOYY.js → chunk-7DJJGKM6.js} +47 -3
- package/dist/{chunk-LQBONA55.cjs → chunk-7EEK7CRR.cjs} +85 -1
- package/dist/chunk-7TO3PDMV.cjs +324 -0
- package/dist/chunk-7UU22RSH.cjs +277 -0
- package/dist/{chunk-E6GFD7VR.cjs → chunk-A3GAM6FM.cjs} +11 -11
- package/dist/{chunk-DEQVRSV5.cjs → chunk-A7DJU75T.cjs} +8 -8
- package/dist/{chunk-DPSIGY6L.cjs → chunk-AAAO4ERQ.cjs} +9 -9
- package/dist/{chunk-FQAVGSPW.js → chunk-AAJLMP57.js} +2 -2
- package/dist/chunk-ABR756QN.js +529 -0
- package/dist/{chunk-JYKPWK5O.js → chunk-APFGDIPD.js} +3 -1
- package/dist/{chunk-Y3M2DABP.js → chunk-APQYRMYL.js} +4 -4
- package/dist/{chunk-Q2IL4DDI.cjs → chunk-AZKOIF2G.cjs} +62 -19
- package/dist/{chunk-MXVIDIC6.cjs → chunk-AZLHUPNC.cjs} +2 -2
- package/dist/chunk-B55VCYSQ.cjs +30 -0
- package/dist/{chunk-WZV6UVPY.js → chunk-BLQUMSM3.js} +1 -1
- package/dist/{chunk-PHJO5YAL.cjs → chunk-BXKPX6K4.cjs} +9 -9
- package/dist/{chunk-3KLSNNRW.cjs → chunk-C66FN2LP.cjs} +4 -4
- package/dist/{chunk-OV3PVUYN.js → chunk-CH7KUFAS.js} +9 -9
- package/dist/{chunk-CWINVFRI.cjs → chunk-CILSXOPI.cjs} +17 -17
- package/dist/{chunk-3UT7R3XV.js → chunk-CM24K6ZT.js} +145 -12
- package/dist/chunk-CMEZ42F2.cjs +303 -0
- package/dist/{chunk-46C73ZKK.cjs → chunk-CNQKIWIS.cjs} +152 -19
- package/dist/{chunk-5JFTY3VU.js → chunk-CSTUTDTH.js} +2 -1
- package/dist/{chunk-REMGR23V.cjs → chunk-CSUGNNJY.cjs} +10 -4
- package/dist/{chunk-TBOLJDUG.js → chunk-D6HB3H3L.js} +31 -11
- package/dist/{chunk-OM24WXEE.js → chunk-D7AYKVKW.js} +2 -2
- package/dist/{chunk-6GUODJKM.cjs → chunk-DLCXWOWT.cjs} +23 -23
- package/dist/{chunk-CH2J4PVE.cjs → chunk-DMM2BKSV.cjs} +121 -28
- package/dist/{chunk-M4KNC5BQ.js → chunk-DW3DPV77.js} +1 -1
- package/dist/chunk-ECQD2QC3.cjs +33 -0
- package/dist/{chunk-UEIXJG45.js → chunk-EEYOS3UC.js} +116 -80
- package/dist/{chunk-7HPWMALN.js → chunk-EF2EN5CR.js} +2 -2
- package/dist/{chunk-7LWQCE4Y.cjs → chunk-EFXFURDY.cjs} +192 -58
- package/dist/chunk-EK34UZPB.cjs +40 -0
- package/dist/{chunk-7JLT2VNW.cjs → chunk-FJR6EZLO.cjs} +9666 -7201
- package/dist/{chunk-GZ6DV2UG.js → chunk-FPO7YNPQ.js} +1 -1
- package/dist/{chunk-O64I2GYI.js → chunk-FS4I6BNR.js} +1 -1
- package/dist/{chunk-MX75JYIY.js → chunk-FSJ2MNOC.js} +3 -3
- package/dist/{chunk-7RFJB75Y.js → chunk-GEHZMC4G.js} +11 -8
- package/dist/{chunk-UWFG2R2I.cjs → chunk-GO6C2RAR.cjs} +36 -9
- package/dist/{chunk-WGLBC5AY.cjs → chunk-GSMR6V36.cjs} +4 -4
- package/dist/{chunk-Z3XSSF7B.js → chunk-GSZWATME.js} +1 -1
- package/dist/{chunk-7MU7LWF3.cjs → chunk-GYLGCR6F.cjs} +5 -5
- package/dist/{chunk-O6TQP7U7.cjs → chunk-H3OOWNYQ.cjs} +3 -3
- package/dist/{chunk-2QL6MNXG.js → chunk-H65446XW.js} +115 -20
- package/dist/chunk-H7HXRRHK.js +324 -0
- package/dist/{chunk-ZZ63NW7A.cjs → chunk-HN2JTDN5.cjs} +17 -17
- package/dist/{chunk-AOKCI722.cjs → chunk-HNXUZ5OY.cjs} +2 -2
- package/dist/{chunk-AUYSIEVV.cjs → chunk-HOYT3E65.cjs} +3 -3
- package/dist/{chunk-DMRXF5DU.js → chunk-HTPY5ESD.js} +3 -3
- package/dist/chunk-HTU4W3GB.js +183 -0
- package/dist/{chunk-3DDL2E55.cjs → chunk-HVLWH2AF.cjs} +10 -10
- package/dist/{chunk-HSCUPEA4.cjs → chunk-HZTEU4W5.cjs} +74 -105
- package/dist/{chunk-XGMI6IYB.cjs → chunk-I5T7LPFP.cjs} +7 -7
- package/dist/{chunk-XIVFAD2L.js → chunk-IB5CJXE7.js} +173 -12
- package/dist/chunk-INNXFLDR.cjs +388 -0
- package/dist/{chunk-75EDROHL.cjs → chunk-JFLEP3T7.cjs} +10 -10
- package/dist/chunk-JJGDOBFL.js +40 -0
- package/dist/{chunk-VBOFPU5M.cjs → chunk-JM3ZTQUK.cjs} +13 -9
- package/dist/{chunk-HJIXWGQZ.js → chunk-JSU46T6K.js} +1 -1
- package/dist/{chunk-AT7OWLY5.js → chunk-K6WN6BT4.js} +1 -1
- package/dist/{chunk-LN7D3EJZ.js → chunk-KA2U6MY2.js} +4 -3
- package/dist/{chunk-3S563FNF.cjs → chunk-KIQH3SMT.cjs} +34 -31
- package/dist/{chunk-BWF4VDYE.js → chunk-KPRXHIE2.js} +54 -85
- package/dist/{chunk-Z4LIPMPM.js → chunk-L6OH44HL.js} +13 -9
- package/dist/{chunk-A7HHCIDQ.js → chunk-LIO3RX2Z.js} +2 -2
- package/dist/{chunk-DLP436GI.js → chunk-LOSXLH7P.js} +110 -17
- package/dist/{chunk-IEXKKKOF.cjs → chunk-LSOR72PB.cjs} +23 -23
- package/dist/{chunk-IAGCRVJ3.js → chunk-MA3AVDCC.js} +55 -12
- package/dist/{chunk-B5CGDNMR.js → chunk-ME3S2WIR.js} +3 -3
- package/dist/{chunk-HKYZSUQ5.js → chunk-NC2I2M4P.js} +4 -4
- package/dist/{chunk-GBMDFWJX.cjs → chunk-NC4A4LVC.cjs} +13 -13
- package/dist/{chunk-E46DJH5S.js → chunk-NGEK5FCJ.js} +176 -3
- package/dist/{chunk-TQ33WBY5.cjs → chunk-NHWHEW7M.cjs} +2 -1
- package/dist/{chunk-62RTC3XX.js → chunk-NKW6CHXQ.js} +1 -1
- package/dist/{chunk-3PXKRVCW.js → chunk-NOWCRKP2.js} +10 -4
- package/dist/{chunk-HXJEGMGB.js → chunk-NUB2LMB6.js} +2 -2
- package/dist/chunk-NVATU4V6.cjs +44 -0
- package/dist/chunk-O246MKIW.cjs +267 -0
- package/dist/{chunk-QCHIDZBA.js → chunk-OGFWL2PS.js} +1 -1
- package/dist/{chunk-JJ4KA7HK.cjs → chunk-ONNGAR6W.cjs} +415 -551
- package/dist/{chunk-TKKN34TV.js → chunk-OOFR6A62.js} +33 -4
- package/dist/{chunk-6NVAK6CK.js → chunk-OZ7FHO7J.js} +2 -2
- package/dist/{chunk-2CGE7ZV3.cjs → chunk-P5EWGUI2.cjs} +201 -28
- package/dist/{chunk-GGLKUENP.js → chunk-P6BQJPAI.js} +191 -14
- package/dist/{chunk-TWQDAUZU.js → chunk-PG2JIU5M.js} +60 -7
- package/dist/chunk-PI27G2ED.cjs +377 -0
- package/dist/{chunk-YV63VW4K.js → chunk-PI7LRPL6.js} +1 -1
- package/dist/{chunk-TXPSTCG7.cjs → chunk-PMPEC5HN.cjs} +18 -15
- package/dist/{chunk-ROLA6EFO.cjs → chunk-PYUP7AKY.cjs} +14 -14
- package/dist/{chunk-BFQDQRDE.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-3LJJG5YY.cjs → chunk-QLZOMZO5.cjs} +4 -3
- package/dist/chunk-QVXMSQOG.js +430 -0
- package/dist/{chunk-ZHJ7JGME.cjs → chunk-R4UKBKDY.cjs} +11 -11
- package/dist/{chunk-IGMPWJ2I.cjs → chunk-R75AWII3.cjs} +118 -23
- package/dist/{chunk-VGEV44V2.cjs → chunk-RD5PLUIX.cjs} +191 -30
- package/dist/{chunk-I24CWKKK.js → chunk-RGB34CV5.js} +3 -3
- package/dist/{chunk-CHI52KFR.cjs → chunk-RJCZLFHE.cjs} +246 -39
- package/dist/{chunk-D2OSPLYC.cjs → chunk-RKWNM2BJ.cjs} +2 -2
- package/dist/{chunk-FGT6KK6T.js → chunk-RMVONICR.js} +3 -3
- package/dist/{chunk-Q6AC3PHY.cjs → chunk-RPSYRJL7.cjs} +10 -4
- package/dist/chunk-RS2E32YB.js +71 -0
- package/dist/chunk-RWKU2X7O.js +388 -0
- package/dist/chunk-RZLEGVMH.cjs +565 -0
- package/dist/{chunk-5F6ZKSHO.js → chunk-S2L3Y677.js} +1 -1
- package/dist/{chunk-ARBEHFCG.js → chunk-S7KVUIOS.js} +1 -1
- package/dist/{chunk-AC7DZ6SK.cjs → chunk-SACJJ6NO.cjs} +5 -3
- package/dist/{chunk-IKUMVBCW.cjs → chunk-SD3NTC7D.cjs} +48 -4
- package/dist/{chunk-CBFH2J3O.js → chunk-SJQU2ZFR.js} +246 -39
- package/dist/{chunk-GWO66KBI.js → chunk-SKAQKQFF.js} +12 -2
- package/dist/chunk-T4DXP5OP.js +30 -0
- package/dist/{chunk-CFFE4VA3.js → chunk-T6FTB6K2.js} +1 -1
- package/dist/{chunk-U4C3HW6P.js → chunk-T6N6GRFT.js} +13 -10
- package/dist/{chunk-D6GZBSOX.js → chunk-TJFKA6A7.js} +82 -3
- package/dist/{chunk-2HOLOHVK.js → chunk-TJZUPS4Z.js} +163 -299
- package/dist/{chunk-RBZ7AFX7.cjs → chunk-TLKHZ425.cjs} +2 -2
- package/dist/{chunk-J2K57QM7.cjs → chunk-TQ24NLXO.cjs} +6 -6
- package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
- package/dist/{chunk-OPNI6O7F.cjs → chunk-TZB5XADL.cjs} +4 -4
- package/dist/{chunk-6HH236FV.cjs → chunk-UAYXZXWU.cjs} +4 -4
- package/dist/{chunk-MPULXVC4.cjs → chunk-UKBFNBDO.cjs} +11 -11
- package/dist/chunk-UMJYX5KD.js +565 -0
- package/dist/chunk-USKYTHDL.cjs +235 -0
- package/dist/chunk-V4HGZSKQ.cjs +183 -0
- package/dist/{chunk-MQESBFBZ.cjs → chunk-VAJUSZMC.cjs} +21 -20
- package/dist/{chunk-PQLKJCIE.js → chunk-VGQG4NBJ.js} +2 -2
- package/dist/chunk-VLUIVJ3J.js +235 -0
- package/dist/chunk-VOBINVMV.cjs +430 -0
- package/dist/{chunk-L4F7SUYL.js → chunk-VSHKKCSH.js} +16 -5
- package/dist/{chunk-LDJQ5QHG.cjs → chunk-VSZU3MGA.cjs} +28 -17
- package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
- package/dist/{chunk-EZJHLOWP.js → chunk-VXGYFX45.js} +20 -7
- package/dist/{chunk-JIMSII7R.js → chunk-WH6YUQDB.js} +193 -59
- package/dist/{chunk-VKBIE6I6.js → chunk-WQ6TD55V.js} +2 -2
- package/dist/{chunk-ZR46OJNZ.js → chunk-WQWECXTY.js} +3 -3
- package/dist/{chunk-SOLBYSLY.cjs → chunk-WVDJUJH6.cjs} +2 -2
- package/dist/{chunk-QKP772OZ.js → chunk-X24VIVDZ.js} +963 -103
- package/dist/{chunk-37M5UM6I.js → chunk-X4NRTLXD.js} +7 -1
- package/dist/chunk-X53SHYCG.js +27 -0
- package/dist/{chunk-PUD76XQT.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
- package/dist/chunk-Y47OJGLB.cjs +27 -0
- package/dist/{chunk-WRTXCQ3V.cjs → chunk-Y4MN27V3.cjs} +1080 -220
- package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
- package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
- package/dist/{chunk-PDHT7LQS.cjs → chunk-YMXYC777.cjs} +3 -3
- package/dist/{chunk-TJNBASFD.cjs → chunk-Z3GRWK6O.cjs} +8 -8
- package/dist/{chunk-JP3YHTQ2.cjs → chunk-Z5GG2KSL.cjs} +4 -4
- package/dist/{chunk-ZPD2AO3U.js → chunk-ZER7DYQK.js} +2 -2
- package/dist/{chunk-UXLW45ZE.cjs → chunk-ZFDXZEZJ.cjs} +25 -90
- package/dist/chunk-ZFV4HJA6.js +579 -0
- package/dist/chunk-ZHMYTI5D.cjs +529 -0
- package/dist/{chunk-CCVMREXI.js → chunk-ZLR2TFBC.js} +35 -8
- package/dist/{chunk-J5ADZN6V.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
- package/dist/chunk-ZUYYHKQA.js +44 -0
- package/dist/{chunk-AUFNACED.js → chunk-ZVLVLDYN.js} +9086 -6621
- package/dist/clear-AJGXD2BB.cjs +12 -0
- package/dist/{clear-OFLFQ3MR.js → clear-HAHDSWKW.js} +3 -3
- package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
- package/dist/{communityInstaller-COB2KTOW.js → communityInstaller-OLKEUGMX.js} +6 -6
- package/dist/completion-G7Z436TF.cjs +17 -0
- package/dist/{completion-PT4VM2H2.js → completion-ZS3AXJ6A.js} +5 -5
- package/dist/{config-R4O7GBTY.js → config-OWYAQPCX.js} +5 -3
- package/dist/config-W2BHT2QE.cjs +22 -0
- package/dist/{constants-HVCHVQAF.js → constants-AS6K67AA.js} +5 -3
- package/dist/constants-B4W5BT7F.cjs +23 -0
- package/dist/{export-3PK3VFCE.js → export-5HIU3KMD.js} +5 -5
- 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-OPNVMB2E.js +14 -0
- 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-X3OAZ3CY.js → help-TCWD2IRH.js} +2 -2
- package/dist/{history-YKFPHBJN.js → history-ATOR5OQV.js} +2 -2
- package/dist/history-UUSGX2AL.cjs +14 -0
- package/dist/{hooks-7TA4PIIB.js → hooks-R3Z5QKUP.js} +6 -6
- package/dist/hooks-RWM5UY67.cjs +18 -0
- package/dist/{i18n-2KBUU7XL.js → i18n-4QI4TD4I.js} +1 -1
- package/dist/i18n-MFAEU5RV.cjs +33 -0
- package/dist/ide-6PBTCCUQ.js +15 -0
- package/dist/ide-UE3G7NMQ.cjs +15 -0
- package/dist/{import-I7T4ZHYL.cjs → import-2IG76KAN.cjs} +6 -4
- package/dist/{import-JWPYKXCZ.js → import-E47QL4DW.js} +2 -2
- package/dist/import-NQDNBFUL.cjs +10 -0
- package/dist/{import-4CHYLS4K.js → import-VQIHGJWS.js} +6 -4
- package/dist/index.cjs +512 -305
- package/dist/index.d.cts +40 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.js +402 -195
- package/dist/init-DX3RDGDT.cjs +10 -0
- package/dist/{init-262MWZV4.js → init-Q54OAAFZ.js} +2 -2
- package/dist/{inputPrompt-YGBHDUEP.js → inputPrompt-V2VBDRM7.js} +3 -3
- 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-5O6PUL4G.js → mcp-EN73YFGZ.js} +8 -6
- package/dist/mcp-TADZCPJQ.cjs +22 -0
- package/dist/{mcp-install-P6DHES7V.cjs → mcp-install-2GKWWBAS.cjs} +15 -13
- package/dist/{mcp-install-6XWXLFVY.js → mcp-install-3TBTVSHW.js} +10 -8
- package/dist/memory-GRXFTDIN.cjs +10 -0
- package/dist/{memory-Q54CESNM.js → memory-K2P3CDCH.js} +2 -2
- package/dist/{model-6AJ77PJG.js → model-DEG22OWA.js} +2 -2
- package/dist/model-OSD74T7Z.cjs +10 -0
- package/dist/new-4NWBOATU.cjs +12 -0
- package/dist/{new-ZXHEWC2S.js → new-KJAP2MB6.js} +3 -3
- package/dist/onboarding-2U5WE2OA.js +39 -0
- package/dist/onboarding-5DZFCO5Q.cjs +39 -0
- package/dist/permissions-KY5I6YQ3.cjs +10 -0
- package/dist/{permissions-YHJMVA6L.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-34GL6BNJ.js → registry-EZ4V4TUQ.js} +1339 -1
- package/dist/{registry-V24W7YK6.cjs → registry-LCWYI4IB.cjs} +1378 -40
- package/dist/resume-4VWJXARX.cjs +17 -0
- package/dist/resume-TLHWWWFN.js +17 -0
- package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
- package/dist/review-XLJEUH5K.cjs +9 -0
- package/dist/{rpc-S3DGW6KV.js → rpc-3DLQBDWU.js} +301 -130
- package/dist/{rpc-NPS3PU4O.cjs → rpc-O36WUU3L.cjs} +399 -228
- 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-IYAXMK23.js → sessions-VWMDIPOS.js} +2 -2
- package/dist/settings-FT2LZZUV.js +45 -0
- 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-CGB6MAVJ.js +17 -0
- package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
- package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
- package/dist/{skills-VWOMV3CR.js → skills-7DKR3HRZ.js} +8 -8
- package/dist/{skills-MVIZNHT4.js → skills-BBBENOEY.js} +9 -9
- package/dist/skills-OQM7IHAF.cjs +29 -0
- package/dist/{skills-GGMZOVIE.cjs → skills-RA2PKL63.cjs} +10 -10
- package/dist/{skills-install-VTAMCNNY.cjs → skills-install-D7K476SL.cjs} +16 -16
- package/dist/{skills-install-QBA5RCV6.js → skills-install-T4SOKJSL.js} +9 -9
- package/dist/skills-new-S33NGEU3.js +18 -0
- 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-7BILIQHP.js → sync-J6I2ZUKQ.js} +6 -4
- package/dist/{sync-7OKF6636.js → sync-Z3LVSEEV.js} +8 -5
- package/dist/{teammate-J6PHGL23.cjs → teammate-EXR76PEQ.cjs} +9 -8
- package/dist/{teammate-GZQSCIMS.js → teammate-K4DAOFEQ.js} +8 -7
- package/dist/templates-ARG2VRWW.cjs +11 -0
- package/dist/templates-UGVZV3KJ.js +11 -0
- package/dist/theme-MVQDSU47.js +23 -0
- package/dist/theme-QAKEYWJG.cjs +23 -0
- package/dist/ui/questionModal.cjs +6 -6
- package/dist/ui/questionModal.js +5 -5
- package/dist/{undo-SZEHLX7X.js → undo-5AU47JHF.js} +2 -2
- package/dist/undo-ME6WKUXZ.cjs +10 -0
- package/dist/usage-QTKO2YMD.js +25 -0
- package/dist/usage-TYNJKVER.cjs +25 -0
- package/package.json +10 -4
- package/dist/AgentRegistry-EGBDIUAK.cjs +0 -10
- package/dist/AgentRegistry-XPWSVO3Q.js +0 -10
- package/dist/CommunitySkillsCache-2OIUV227.cjs +0 -8
- package/dist/LearnAdvisor-46FG2XIP.js +0 -9
- package/dist/LearnAdvisor-XBRDNAGH.cjs +0 -9
- package/dist/MemoryManager-34L4YOKA.cjs +0 -8
- package/dist/MemoryManager-WJMLPWGU.js +0 -8
- package/dist/NVIDIAProvider-MVTL62PR.cjs +0 -14
- package/dist/PermissionManager-5OOJ7FAT.cjs +0 -11
- package/dist/ProviderFactory-C3YPXTDD.cjs +0 -11
- package/dist/SessionManager-WAPTFMDO.cjs +0 -10
- package/dist/SkillsRegistry-7AJP74GJ.cjs +0 -9
- package/dist/SubAgent-FDIH3DXB.js +0 -11
- package/dist/SubAgent-HVL2ICVZ.cjs +0 -11
- package/dist/SyncApiClient-VMBOLQ6H.cjs +0 -11
- package/dist/about-FCAX37YC.cjs +0 -14
- package/dist/actionExecutor-33I47NZS.js +0 -24
- package/dist/actionExecutor-4YBMR3YH.cjs +0 -24
- package/dist/add-dir-7SS6KSH5.cjs +0 -11
- package/dist/agent-DMRUFU4M.cjs +0 -116
- package/dist/agent-WCJEYQJT.js +0 -116
- package/dist/agents-CHROO3VU.cjs +0 -17
- package/dist/agents-UVDUL65K.js +0 -17
- package/dist/agents-new-AUBWSOXP.js +0 -17
- package/dist/agents-new-Y562WC47.cjs +0 -17
- package/dist/autoSkill-YOLLFTP2.cjs +0 -20
- package/dist/automode-DBLKTTKD.cjs +0 -10
- package/dist/chrome-ATC4OO5I.cjs +0 -20
- package/dist/chrome-O62WXV7F.js +0 -20
- package/dist/chrome-XHJLCO4M.cjs +0 -50
- package/dist/chunk-6XVVIY54.cjs +0 -256
- package/dist/chunk-AU6JAGZJ.cjs +0 -231
- package/dist/chunk-N6O3XUZ2.cjs +0 -23
- package/dist/chunk-VDWJMWDF.js +0 -256
- package/dist/clear-33TWQ2ES.cjs +0 -12
- package/dist/communityInstaller-TWMGPSYM.cjs +0 -22
- package/dist/completion-IIZMHXYP.cjs +0 -17
- package/dist/config-KL6WU7R2.cjs +0 -20
- package/dist/constants-RLMJ5D5P.cjs +0 -21
- package/dist/export-WLGNWEMJ.cjs +0 -15
- package/dist/feedback-G635NCLJ.js +0 -18
- package/dist/feedback-LLMK3TZH.cjs +0 -18
- package/dist/help-BAXLP2M2.cjs +0 -12
- package/dist/history-6HOJSEMT.cjs +0 -14
- package/dist/hooks-XVFU67T2.cjs +0 -18
- package/dist/i18n-MUJMKTFM.cjs +0 -33
- package/dist/ide-CCQ33PGC.cjs +0 -15
- package/dist/ide-VLVFBZ5F.js +0 -15
- package/dist/import-J46F54JY.cjs +0 -10
- package/dist/init-EE5Y7RBL.cjs +0 -10
- package/dist/inputPrompt-IIFKCX5Q.cjs +0 -90
- package/dist/language-CVLPB7OV.js +0 -21
- package/dist/language-ZTWFHUSV.cjs +0 -21
- package/dist/learn-PON7I5QS.js +0 -23
- package/dist/learn-XLRSVNA3.cjs +0 -23
- package/dist/login-223QTGBG.cjs +0 -26
- package/dist/login-6IKTBUBY.js +0 -26
- package/dist/logout-RN2AG6SI.js +0 -23
- package/dist/logout-U3M4FFX7.cjs +0 -23
- package/dist/mcp-NUQ76QQB.cjs +0 -20
- package/dist/memory-CYMDQ2YC.cjs +0 -10
- package/dist/model-IDRCKDML.cjs +0 -10
- package/dist/new-7LEWOUF2.cjs +0 -12
- package/dist/onboarding-FXX7YHSJ.cjs +0 -35
- package/dist/onboarding-JYNMK6NI.js +0 -35
- package/dist/permissions-YBNSANIA.cjs +0 -10
- package/dist/plan-XEJMOT55.cjs +0 -13
- package/dist/quit-B43SJ6E4.cjs +0 -10
- package/dist/quit-GWTNHQSP.js +0 -10
- package/dist/resume-DYVOQN5L.cjs +0 -16
- package/dist/resume-M25UQKOX.js +0 -16
- package/dist/review-UWHWQHCB.cjs +0 -9
- package/dist/search-CPX4PWHP.js +0 -20
- package/dist/search-VUF3M4N3.cjs +0 -20
- package/dist/sessions-JODKER5D.cjs +0 -10
- package/dist/settings-55BNW6BF.js +0 -33
- package/dist/settings-BKTS7OMC.cjs +0 -33
- package/dist/setup-IRC5HQG2.js +0 -29
- package/dist/setup-MMQ7TWOP.cjs +0 -29
- package/dist/share-6JRQECAH.cjs +0 -17
- package/dist/share-YM5MJKMO.js +0 -17
- package/dist/skills-LWSOKOSH.cjs +0 -29
- package/dist/skills-new-GPL46YV2.js +0 -18
- package/dist/skills-new-L5BEZN5V.cjs +0 -18
- package/dist/slashCommands-FBPCIWM5.cjs +0 -95
- package/dist/slashCommands-FCWY5DXW.js +0 -95
- package/dist/status-3B5SDZPL.js +0 -17
- package/dist/status-TTGRF6NC.cjs +0 -17
- package/dist/sync-77CXVVTK.cjs +0 -21
- package/dist/sync-EH4K5U3N.cjs +0 -40
- package/dist/theme-64BYGJ57.cjs +0 -21
- package/dist/theme-YJE6HEON.js +0 -21
- package/dist/undo-PRTEGL2J.cjs +0 -10
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
// src/features/featureRegistry.ts
|
|
2
|
+
var AWS_BEDROCK_PROVIDER_FLAG = "aws_bedrock_provider";
|
|
3
|
+
var FEATURE_REGISTRY = [
|
|
4
|
+
{
|
|
5
|
+
id: "mcp",
|
|
6
|
+
label: "MCP tools",
|
|
7
|
+
description: "Connect configured Model Context Protocol servers and expose their tools.",
|
|
8
|
+
stage: "stable",
|
|
9
|
+
configPath: "mcp.enabled",
|
|
10
|
+
defaultEnabled: true,
|
|
11
|
+
requiresRestart: true
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: "hooks",
|
|
15
|
+
label: "Lifecycle hooks",
|
|
16
|
+
description: "Run configured shell hooks around prompts, tools, sessions, and notifications.",
|
|
17
|
+
stage: "stable",
|
|
18
|
+
configPath: "hooks.enabled",
|
|
19
|
+
defaultEnabled: true
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: "teams",
|
|
23
|
+
label: "Agent teams",
|
|
24
|
+
description: "Enable multi-agent team coordination commands and teammate execution.",
|
|
25
|
+
stage: "experimental",
|
|
26
|
+
configPath: "teams.enabled",
|
|
27
|
+
defaultEnabled: true
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: "community_skills",
|
|
31
|
+
label: "Community skills",
|
|
32
|
+
description: "Enable discovery and use of community skill packs.",
|
|
33
|
+
stage: "stable",
|
|
34
|
+
configPath: "communitySkills.enabled",
|
|
35
|
+
defaultEnabled: true
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: "prompt_suggestions",
|
|
39
|
+
label: "Prompt suggestions",
|
|
40
|
+
description: "Show generated next-step suggestions in the interactive prompt placeholder.",
|
|
41
|
+
stage: "stable",
|
|
42
|
+
configPath: "ui.promptSuggestions",
|
|
43
|
+
defaultEnabled: true
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: "request_queue",
|
|
47
|
+
label: "Request queue",
|
|
48
|
+
description: "Allow typing follow-up requests while the agent is still working.",
|
|
49
|
+
stage: "stable",
|
|
50
|
+
configPath: "agent.enableRequestQueue",
|
|
51
|
+
defaultEnabled: true
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: "thinking_display",
|
|
55
|
+
label: "Thinking display",
|
|
56
|
+
description: "Show model thinking or reasoning blocks when the provider returns them.",
|
|
57
|
+
stage: "stable",
|
|
58
|
+
configPath: "ui.showThinking",
|
|
59
|
+
defaultEnabled: true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: "completion_notifications",
|
|
63
|
+
label: "Completion notifications",
|
|
64
|
+
description: "Show desktop notifications when an agent turn completes.",
|
|
65
|
+
stage: "stable",
|
|
66
|
+
configPath: "ui.showCompletionNotification",
|
|
67
|
+
defaultEnabled: true
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: "terminal_bell",
|
|
71
|
+
label: "Terminal bell",
|
|
72
|
+
description: "Ring the terminal bell when work completes.",
|
|
73
|
+
stage: "stable",
|
|
74
|
+
configPath: "ui.terminalBell",
|
|
75
|
+
defaultEnabled: true
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: "tool_selection_cache",
|
|
79
|
+
label: "Tool selection cache",
|
|
80
|
+
description: "Cache local tool-schema selection for equivalent turns.",
|
|
81
|
+
stage: "stable",
|
|
82
|
+
configPath: "agent.toolSelectionCache",
|
|
83
|
+
defaultEnabled: true
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: "usage_v2",
|
|
87
|
+
label: "Usage v2",
|
|
88
|
+
description: "Show the v2 usage dashboard with model, provider, context, and limit details.",
|
|
89
|
+
stage: "experimental",
|
|
90
|
+
configPath: "features.usageV2",
|
|
91
|
+
defaultEnabled: false
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: AWS_BEDROCK_PROVIDER_FLAG,
|
|
95
|
+
label: "AWS Bedrock provider",
|
|
96
|
+
description: "Enable AWS Bedrock as a first-class model provider.",
|
|
97
|
+
stage: "experimental",
|
|
98
|
+
configPath: "features.awsBedrockProvider",
|
|
99
|
+
defaultEnabled: true,
|
|
100
|
+
requiresRestart: true
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: "slash_goal",
|
|
104
|
+
label: "Slash goal",
|
|
105
|
+
description: "Enable experimental persistent goals across /goal, --goal, tools, RPC, and ACP.",
|
|
106
|
+
stage: "experimental",
|
|
107
|
+
configPath: "features.slashGoal",
|
|
108
|
+
defaultEnabled: false
|
|
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
|
+
},
|
|
142
|
+
{
|
|
143
|
+
id: "chrome_integration",
|
|
144
|
+
label: "Chrome integration",
|
|
145
|
+
description: "Start the browser bridge by default for Chrome extension handoff.",
|
|
146
|
+
stage: "experimental",
|
|
147
|
+
configPath: "chrome.enabledByDefault",
|
|
148
|
+
defaultEnabled: false,
|
|
149
|
+
requiresRestart: true
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: "telemetry",
|
|
153
|
+
label: "Telemetry",
|
|
154
|
+
description: "Share anonymized product telemetry when explicitly enabled.",
|
|
155
|
+
stage: "stable",
|
|
156
|
+
configPath: "telemetry.enabled",
|
|
157
|
+
defaultEnabled: false
|
|
158
|
+
}
|
|
159
|
+
];
|
|
160
|
+
function isAwsBedrockProviderEnabled(config) {
|
|
161
|
+
const definition = FEATURE_REGISTRY.find((feature) => feature.id === AWS_BEDROCK_PROVIDER_FLAG);
|
|
162
|
+
return config?.features?.awsBedrockProvider ?? definition?.defaultEnabled ?? true;
|
|
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
|
+
}
|
|
168
|
+
var LOCAL_FEATURE_IDS = new Set(FEATURE_REGISTRY.map((feature) => feature.id));
|
|
169
|
+
function isLocalFeatureId(id) {
|
|
170
|
+
return LOCAL_FEATURE_IDS.has(id);
|
|
171
|
+
}
|
|
172
|
+
function isRecord(value) {
|
|
173
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
174
|
+
}
|
|
175
|
+
function getNestedValue(root, configPath) {
|
|
176
|
+
let current = root;
|
|
177
|
+
for (const part of configPath.split(".")) {
|
|
178
|
+
if (!isRecord(current)) {
|
|
179
|
+
return void 0;
|
|
180
|
+
}
|
|
181
|
+
current = current[part];
|
|
182
|
+
}
|
|
183
|
+
return current;
|
|
184
|
+
}
|
|
185
|
+
function setNestedValue(root, configPath, value) {
|
|
186
|
+
const parts = configPath.split(".");
|
|
187
|
+
let current = root;
|
|
188
|
+
for (const part of parts.slice(0, -1)) {
|
|
189
|
+
const existing = current[part];
|
|
190
|
+
if (!isRecord(existing)) {
|
|
191
|
+
current[part] = {};
|
|
192
|
+
}
|
|
193
|
+
current = current[part];
|
|
194
|
+
}
|
|
195
|
+
current[parts[parts.length - 1]] = value;
|
|
196
|
+
}
|
|
197
|
+
function getRemoteFeatureStates(config, options = {}) {
|
|
198
|
+
const remoteOverrides = config.features?.remoteOverrides || {};
|
|
199
|
+
const snapshot = options.remoteSnapshot;
|
|
200
|
+
if (!snapshot) return [];
|
|
201
|
+
return snapshot.flags.filter((flag) => !isLocalFeatureId(flag.key) && isVisibleRemoteExperiment(flag)).map((flag) => {
|
|
202
|
+
const localOverride = remoteOverrides[flag.key] === "off" ? "off" : void 0;
|
|
203
|
+
return {
|
|
204
|
+
id: flag.key,
|
|
205
|
+
label: flag.key,
|
|
206
|
+
description: `Remote feature flag (${flag.reason})`,
|
|
207
|
+
stage: "experimental",
|
|
208
|
+
defaultEnabled: false,
|
|
209
|
+
enabled: flag.enabled && localOverride !== "off",
|
|
210
|
+
source: "remote",
|
|
211
|
+
remoteEnabled: flag.enabled,
|
|
212
|
+
reason: flag.reason,
|
|
213
|
+
userOverridable: flag.userOverridable,
|
|
214
|
+
localOverride,
|
|
215
|
+
lastEvaluatedAt: snapshot.evaluatedAt
|
|
216
|
+
};
|
|
217
|
+
});
|
|
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
|
+
}
|
|
226
|
+
function getFeatureState(config, id, options = {}) {
|
|
227
|
+
const definition = FEATURE_REGISTRY.find((feature) => feature.id === id);
|
|
228
|
+
if (definition) {
|
|
229
|
+
const rawValue = definition.configPath ? getNestedValue(config, definition.configPath) : void 0;
|
|
230
|
+
return {
|
|
231
|
+
...definition,
|
|
232
|
+
source: "local",
|
|
233
|
+
enabled: typeof rawValue === "boolean" ? rawValue : definition.defaultEnabled
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
return getRemoteFeatureStates(config, options).find((feature) => feature.id === id);
|
|
237
|
+
}
|
|
238
|
+
function listFeatureStates(config, options = {}) {
|
|
239
|
+
const local = FEATURE_REGISTRY.map((feature) => ({
|
|
240
|
+
...feature,
|
|
241
|
+
source: "local",
|
|
242
|
+
enabled: getFeatureState(config, feature.id, options)?.enabled ?? feature.defaultEnabled
|
|
243
|
+
}));
|
|
244
|
+
return [...local, ...getRemoteFeatureStates(config, options)];
|
|
245
|
+
}
|
|
246
|
+
function setFeatureState(config, id, enabled, options = {}) {
|
|
247
|
+
const definition = FEATURE_REGISTRY.find((feature) => feature.id === id);
|
|
248
|
+
if (definition) {
|
|
249
|
+
if (!definition.configPath) {
|
|
250
|
+
return { ok: false, error: `Feature "${id}" cannot be changed locally.` };
|
|
251
|
+
}
|
|
252
|
+
setNestedValue(config, definition.configPath, enabled);
|
|
253
|
+
return {
|
|
254
|
+
ok: true,
|
|
255
|
+
feature: getFeatureState(config, id, options)
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
const remoteFeature = getRemoteFeatureStates(config, options).find((feature) => feature.id === id);
|
|
259
|
+
if (!remoteFeature) {
|
|
260
|
+
return { ok: false, error: `Unknown feature "${id}".` };
|
|
261
|
+
}
|
|
262
|
+
config.features ||= {};
|
|
263
|
+
config.features.remoteOverrides ||= {};
|
|
264
|
+
if (enabled) {
|
|
265
|
+
delete config.features.remoteOverrides[id];
|
|
266
|
+
return { ok: true, feature: getFeatureState(config, id, options) };
|
|
267
|
+
}
|
|
268
|
+
if (!remoteFeature.userOverridable) {
|
|
269
|
+
return { ok: false, error: `Feature "${id}" is controlled remotely and cannot be changed locally.` };
|
|
270
|
+
}
|
|
271
|
+
config.features.remoteOverrides[id] = "off";
|
|
272
|
+
return { ok: true, feature: getFeatureState(config, id, options) };
|
|
273
|
+
}
|
|
274
|
+
function formatFeatureList(config, options = {}) {
|
|
275
|
+
const states = listFeatureStates(config, options);
|
|
276
|
+
const idWidth = Math.max(...states.map((feature) => feature.id.length), "feature".length);
|
|
277
|
+
const sourceWidth = Math.max(...states.map((feature) => feature.source.length), "source".length);
|
|
278
|
+
const stageWidth = Math.max(...states.map((feature) => feature.stage.length), "stage".length);
|
|
279
|
+
return states.map((feature) => `${feature.id.padEnd(idWidth + 2)}${feature.source.padEnd(sourceWidth + 2)}${feature.stage.padEnd(stageWidth + 2)}${String(feature.enabled)}`).join("\n");
|
|
280
|
+
}
|
|
281
|
+
function formatFeatureStatus(config, id, options = {}) {
|
|
282
|
+
const feature = getFeatureState(config, id, options);
|
|
283
|
+
if (!feature) {
|
|
284
|
+
return `Unknown feature "${id}".`;
|
|
285
|
+
}
|
|
286
|
+
const restart = feature.requiresRestart ? "yes" : "no";
|
|
287
|
+
const lines = [
|
|
288
|
+
`${feature.id}`,
|
|
289
|
+
`Label: ${feature.label}`,
|
|
290
|
+
`Source: ${feature.source}`,
|
|
291
|
+
`Stage: ${feature.stage}`,
|
|
292
|
+
`Enabled: ${String(feature.enabled)}`,
|
|
293
|
+
`Config: ${feature.configPath || "remote"}`,
|
|
294
|
+
`Default: ${String(feature.defaultEnabled)}`,
|
|
295
|
+
`Restart required: ${restart}`,
|
|
296
|
+
`Description: ${feature.description}`
|
|
297
|
+
];
|
|
298
|
+
if (feature.source === "remote") {
|
|
299
|
+
lines.push(
|
|
300
|
+
`Remote enabled: ${String(feature.remoteEnabled)}`,
|
|
301
|
+
`Local override: ${feature.localOverride || "none"}`,
|
|
302
|
+
`Reason: ${feature.reason || "unknown"}`,
|
|
303
|
+
`User overridable: ${String(feature.userOverridable !== false)}`,
|
|
304
|
+
`Last evaluated: ${feature.lastEvaluatedAt || "never"}`
|
|
305
|
+
);
|
|
306
|
+
}
|
|
307
|
+
return lines.join("\n");
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export {
|
|
311
|
+
isAwsBedrockProviderEnabled,
|
|
312
|
+
isTokenUsageStatusEnabled,
|
|
313
|
+
isLocalFeatureId,
|
|
314
|
+
getFeatureState,
|
|
315
|
+
listFeatureStates,
|
|
316
|
+
setFeatureState,
|
|
317
|
+
formatFeatureList,
|
|
318
|
+
formatFeatureStatus
|
|
319
|
+
};
|
|
320
|
+
/**
|
|
321
|
+
* @license
|
|
322
|
+
* Copyright 2026 Autohand AI LLC
|
|
323
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
324
|
+
*/
|
|
@@ -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
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
4
4
|
|
|
5
5
|
// src/commands/init.ts
|
|
6
6
|
async function init(ctx) {
|
|
@@ -9,7 +9,7 @@ async function init(ctx) {
|
|
|
9
9
|
}
|
|
10
10
|
var metadata = {
|
|
11
11
|
command: "/init",
|
|
12
|
-
description:
|
|
12
|
+
description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.init.description"),
|
|
13
13
|
implemented: true
|
|
14
14
|
};
|
|
15
15
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
4
4
|
|
|
5
5
|
// src/commands/import.ts
|
|
6
6
|
var metadata = {
|
|
7
7
|
command: "/import",
|
|
8
|
-
description:
|
|
8
|
+
description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.import.description") || "Import data from other coding agents",
|
|
9
9
|
implemented: true
|
|
10
10
|
};
|
|
11
11
|
async function execute(args) {
|
|
12
|
-
const { runImport } = await Promise.resolve().then(() => _interopRequireWildcard(require("./import-
|
|
12
|
+
const { runImport } = await Promise.resolve().then(() => _interopRequireWildcard(require("./import-2IG76KAN.cjs")));
|
|
13
13
|
const source = args[0];
|
|
14
14
|
const flags = args.slice(1);
|
|
15
15
|
const all = flags.includes("--all");
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
showConfirm
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LOSXLH7P.js";
|
|
4
4
|
import {
|
|
5
5
|
AUTOHAND_PATHS,
|
|
6
6
|
PROJECT_DIR_NAME
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PG2JIU5M.js";
|
|
8
8
|
import {
|
|
9
9
|
t
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
11
11
|
|
|
12
12
|
// src/skills/communityInstaller.ts
|
|
13
13
|
import crypto from "crypto";
|