autohand-cli 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -2
- package/dist/{AgentRegistry-XPWSVO3Q.js → AgentRegistry-GOV7FN2O.js} +2 -2
- package/dist/AgentRegistry-J2C6JBZ3.cjs +10 -0
- package/dist/CommunitySkillsCache-22BB3J6H.cjs +8 -0
- package/dist/{CommunitySkillsCache-ZEQWP6YM.js → CommunitySkillsCache-ZACDPD4J.js} +2 -2
- package/dist/{HookManager-CWLTFKWO.js → HookManager-2S6AHOC3.js} +1 -1
- package/dist/{HookManager-TMAJQU4S.cjs → HookManager-TVEQI5ZU.cjs} +2 -2
- package/dist/{ImportWizard-QBKQEXDW.js → ImportWizard-AEBMAKXE.js} +4 -4
- package/dist/{ImportWizard-MQXEED2U.cjs → ImportWizard-AF2XL6DS.cjs} +13 -13
- package/dist/LearnAdvisor-KKEQ5QCV.js +9 -0
- package/dist/LearnAdvisor-Q7RAYLPF.cjs +9 -0
- package/dist/MemoryManager-PMNAEZMB.cjs +8 -0
- package/dist/{MemoryManager-WJMLPWGU.js → MemoryManager-QZRLTUB5.js} +2 -2
- package/dist/NVIDIAProvider-C3FWQOBZ.cjs +14 -0
- package/dist/{NVIDIAProvider-2HR737UE.js → NVIDIAProvider-SJPY3ONR.js} +1 -1
- package/dist/{PermissionManager-KMYILJ4Z.js → PermissionManager-MT7KBNNR.js} +3 -3
- package/dist/PermissionManager-URCNP5EC.cjs +11 -0
- package/dist/ProviderFactory-56N3ECE4.cjs +12 -0
- package/dist/{ProviderFactory-HFPRVQ25.js → ProviderFactory-RB4RVAF6.js} +3 -2
- package/dist/SessionManager-2IZGWASQ.cjs +10 -0
- package/dist/{SessionManager-PNBTJJTQ.js → SessionManager-554PHVPC.js} +2 -2
- package/dist/SkillsRegistry-GMRVONOQ.cjs +9 -0
- package/dist/{SkillsRegistry-4RRD5GMX.js → SkillsRegistry-NHHMIUYJ.js} +2 -2
- package/dist/SubAgent-4GOR2FIJ.js +13 -0
- package/dist/SubAgent-ZJMDH4FI.cjs +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-3USFSGOH.js} +5 -4
- package/dist/about-QR52U5DD.cjs +15 -0
- package/dist/{acp-VHEL7BOW.js → acp-5Y2W6OZP.js} +129 -90
- package/dist/{acp-EOETGAHC.cjs → acp-GSYE75OB.cjs} +135 -96
- package/dist/actionExecutor-KHUU3Z3Q.cjs +28 -0
- package/dist/{actionExecutor-33I47NZS.js → actionExecutor-PLQJZLZV.js} +12 -8
- package/dist/add-dir-BTAD5OZS.cjs +11 -0
- package/dist/{add-dir-VFX7QT4E.js → add-dir-HCERJDBR.js} +2 -2
- package/dist/agent-B3EVT7NN.cjs +126 -0
- package/dist/agent-SATQ3WZ3.js +126 -0
- package/dist/agents-44CRJGM7.cjs +18 -0
- package/dist/agents-NN4ZAJ7R.js +18 -0
- package/dist/agents-new-6D6G4QS6.cjs +17 -0
- package/dist/agents-new-7GAQ25EK.js +17 -0
- package/dist/{autoSkill-EFMK6WU6.js → autoSkill-66PKCYTW.js} +2 -2
- package/dist/autoSkill-VQLGBELN.cjs +20 -0
- package/dist/automode-45DWV4TN.cjs +10 -0
- package/dist/{automode-BMYSRM34.js → automode-BUF3VGXU.js} +2 -2
- package/dist/chrome-Q2U73HZB.cjs +50 -0
- package/dist/chrome-Q54OALOK.cjs +21 -0
- package/dist/{chrome-NHJ44WUN.js → chrome-Y3T7EIHG.js} +2 -2
- package/dist/chrome-ZNJ46OYW.js +21 -0
- package/dist/{chunk-D2OSPLYC.cjs → chunk-22SCR3EV.cjs} +2 -2
- package/dist/chunk-26G7YGOW.js +367 -0
- package/dist/{chunk-75EDROHL.cjs → chunk-2ESQR35E.cjs} +10 -10
- package/dist/{chunk-HKYZSUQ5.js → chunk-2IW5YFJ4.js} +4 -4
- package/dist/{chunk-JP3YHTQ2.cjs → chunk-3ICORF7M.cjs} +4 -4
- package/dist/{chunk-4256YRCO.cjs → chunk-3UC6DMFI.cjs} +30 -17
- package/dist/{chunk-6GUODJKM.cjs → chunk-3UHRCHKB.cjs} +23 -23
- package/dist/{chunk-HXJEGMGB.js → chunk-3ZOOH44N.js} +2 -2
- package/dist/{chunk-7RFJB75Y.js → chunk-44ZWOBTI.js} +9 -9
- package/dist/{chunk-CCVMREXI.js → chunk-4567QNRB.js} +32 -8
- package/dist/chunk-45CHNQM6.cjs +517 -0
- package/dist/{chunk-6NVAK6CK.js → chunk-4E7SHPNQ.js} +2 -2
- package/dist/{chunk-XGMI6IYB.cjs → chunk-4XFHP2SN.cjs} +7 -7
- package/dist/chunk-4XVLNOFA.js +360 -0
- package/dist/{chunk-D6GZBSOX.js → chunk-575PXZX7.js} +1 -1
- package/dist/{chunk-HJIXWGQZ.js → chunk-5A7ZL64N.js} +1 -1
- package/dist/{chunk-ROLA6EFO.cjs → chunk-5GCQ5UMV.cjs} +14 -14
- package/dist/{chunk-3DDL2E55.cjs → chunk-5SFV2NCY.cjs} +10 -10
- package/dist/chunk-5ZNYX4VH.cjs +71 -0
- package/dist/{chunk-PDHT7LQS.cjs → chunk-63ANVAOJ.cjs} +3 -3
- package/dist/{chunk-GWO66KBI.js → chunk-65LRPW5W.js} +1 -1
- package/dist/{chunk-IAGCRVJ3.js → chunk-6AYJCDTA.js} +14 -9
- package/dist/{chunk-A7HHCIDQ.js → chunk-6HF6XSCC.js} +2 -2
- package/dist/{chunk-47PHDKNW.cjs → chunk-6JWCGQJU.cjs} +6 -6
- package/dist/chunk-6OECOAK5.cjs +360 -0
- package/dist/{chunk-RBHANOYY.js → chunk-7DJJGKM6.js} +47 -3
- package/dist/{chunk-37M5UM6I.js → chunk-7IRQ7JEH.js} +1 -1
- package/dist/chunk-7MY4JHER.js +27 -0
- package/dist/{chunk-ZR46OJNZ.js → chunk-7PJKTSRN.js} +3 -3
- package/dist/{chunk-AC7DZ6SK.cjs → chunk-7PT646AL.cjs} +3 -3
- package/dist/{chunk-TKKN34TV.js → chunk-7WAUCLLQ.js} +3 -3
- package/dist/{chunk-DPSIGY6L.cjs → chunk-7XTUL7ZD.cjs} +9 -9
- package/dist/{chunk-GBMDFWJX.cjs → chunk-AE2ILW25.cjs} +13 -13
- package/dist/{chunk-BQ22N3TX.cjs → chunk-AOKXYGBQ.cjs} +27 -22
- package/dist/{chunk-REMGR23V.cjs → chunk-AQ5PVHOC.cjs} +7 -2
- package/dist/{chunk-AUYSIEVV.cjs → chunk-AZ47LKD5.cjs} +3 -3
- package/dist/chunk-B76FJKEJ.cjs +184 -0
- package/dist/{chunk-XV2HXRHX.js → chunk-BP37FVBM.js} +3 -3
- package/dist/{chunk-JIMSII7R.js → chunk-C46B72VK.js} +57 -10
- package/dist/{chunk-L4F7SUYL.js → chunk-C5QIQQ37.js} +3 -3
- package/dist/{chunk-AUFNACED.js → chunk-CCIDL4SA.js} +7094 -6126
- package/dist/{chunk-OV3PVUYN.js → chunk-CECH6QQP.js} +11 -11
- package/dist/{chunk-CH2J4PVE.cjs → chunk-CK4HAHVY.cjs} +13 -13
- package/dist/{chunk-Q2IL4DDI.cjs → chunk-CO2AADYU.cjs} +19 -14
- package/dist/{chunk-7JLT2VNW.cjs → chunk-CRTCZ4WL.cjs} +7533 -6565
- package/dist/{chunk-5JFTY3VU.js → chunk-CSTUTDTH.js} +2 -1
- package/dist/{chunk-DIZTWFVR.cjs → chunk-D546G7DA.cjs} +209 -55
- package/dist/{chunk-7HPWMALN.js → chunk-DGBPWODD.js} +1 -1
- package/dist/{chunk-RBZ7AFX7.cjs → chunk-DHUQZ53B.cjs} +2 -2
- package/dist/{chunk-U4C3HW6P.js → chunk-DNSD7DVJ.js} +2 -2
- package/dist/{chunk-SOLBYSLY.cjs → chunk-DSSCERHI.cjs} +2 -2
- package/dist/{chunk-OPNI6O7F.cjs → chunk-EA2MS25U.cjs} +4 -4
- package/dist/{chunk-E46DJH5S.js → chunk-EEHWALXA.js} +94 -3
- package/dist/{chunk-CFFE4VA3.js → chunk-EYHKL4QC.js} +1 -1
- package/dist/{chunk-FGT6KK6T.js → chunk-FBQJZKFX.js} +3 -3
- package/dist/{chunk-I24CWKKK.js → chunk-FFHSCM5M.js} +3 -3
- package/dist/{chunk-TXPSTCG7.cjs → chunk-GAOPJ5S3.cjs} +8 -8
- package/dist/{chunk-ARBEHFCG.js → chunk-GSDV75A5.js} +1 -1
- package/dist/{chunk-Z3XSSF7B.js → chunk-H426KOGY.js} +1 -1
- package/dist/{chunk-WRTXCQ3V.cjs → chunk-HC2Q6A3E.cjs} +858 -182
- package/dist/{chunk-IGMPWJ2I.cjs → chunk-HG3ZASBH.cjs} +8 -8
- package/dist/chunk-HK5A54AV.cjs +280 -0
- package/dist/{chunk-2HOLOHVK.js → chunk-HSWWM6AM.js} +136 -15
- package/dist/chunk-HTU4W3GB.js +183 -0
- package/dist/{chunk-5CMYEM3R.cjs → chunk-HVCIB4SW.cjs} +3 -3
- package/dist/chunk-HXHE2KAO.js +385 -0
- package/dist/{chunk-NMQ47RCG.js → chunk-HZWU6IO3.js} +5 -2
- package/dist/{chunk-ZPD2AO3U.js → chunk-I2ZK3AOD.js} +2 -2
- package/dist/{chunk-3UT7R3XV.js → chunk-IEPLQ47J.js} +61 -5
- package/dist/{chunk-3PXKRVCW.js → chunk-JB3JCYBJ.js} +7 -2
- package/dist/chunk-JCUHCH37.cjs +247 -0
- package/dist/{chunk-VBOFPU5M.cjs → chunk-JM3ZTQUK.cjs} +13 -9
- package/dist/{chunk-WZV6UVPY.js → chunk-JMJRFSNJ.js} +1 -1
- package/dist/{chunk-QKP772OZ.js → chunk-JPFRI4L4.js} +756 -80
- package/dist/{chunk-MOJ7ADW4.cjs → chunk-JV5HVCHU.cjs} +2 -2
- package/dist/{chunk-LN7D3EJZ.js → chunk-KA2U6MY2.js} +4 -3
- package/dist/{chunk-E26KKI46.cjs → chunk-KASXKDF2.cjs} +3 -1
- package/dist/chunk-KJ26T7GM.cjs +367 -0
- package/dist/chunk-KM7R5YPS.cjs +385 -0
- package/dist/{chunk-5F6ZKSHO.js → chunk-KMP6Y3LJ.js} +1 -1
- package/dist/chunk-KWXGDSYT.js +184 -0
- package/dist/{chunk-LDJQ5QHG.cjs → chunk-L46OUKW5.cjs} +15 -15
- package/dist/{chunk-Z4LIPMPM.js → chunk-L6OH44HL.js} +13 -9
- package/dist/chunk-LANGD5CO.js +280 -0
- package/dist/{chunk-CBFH2J3O.js → chunk-LEZEWKPA.js} +150 -7
- package/dist/{chunk-FQAVGSPW.js → chunk-M5DK524Z.js} +2 -2
- package/dist/{chunk-7LWQCE4Y.cjs → chunk-M7B7RRBK.cjs} +72 -25
- package/dist/{chunk-BWF4VDYE.js → chunk-MANJ67D3.js} +2 -2
- package/dist/{chunk-PHJO5YAL.cjs → chunk-MGNXABSU.cjs} +9 -9
- package/dist/{chunk-62RTC3XX.js → chunk-MMKZSJUN.js} +1 -1
- package/dist/{chunk-3KLSNNRW.cjs → chunk-MQQH4XQH.cjs} +4 -4
- package/dist/{chunk-HS4USDND.cjs → chunk-MZN6JBRZ.cjs} +2 -2
- package/dist/{chunk-AT7OWLY5.js → chunk-NB6M6ESM.js} +1 -1
- package/dist/{chunk-TQ33WBY5.cjs → chunk-NHWHEW7M.cjs} +2 -1
- package/dist/chunk-NQZH5CR2.cjs +468 -0
- package/dist/{chunk-2CGE7ZV3.cjs → chunk-NV6LCD2I.cjs} +119 -28
- package/dist/chunk-NVATU4V6.cjs +44 -0
- package/dist/{chunk-DLP436GI.js → chunk-NZ3ZWLUW.js} +2 -2
- package/dist/{chunk-IEXKKKOF.cjs → chunk-NZ7GCK7Y.cjs} +23 -23
- package/dist/{chunk-MQESBFBZ.cjs → chunk-NZQFKXM3.cjs} +21 -20
- package/dist/{chunk-QQ7PANOP.js → chunk-O5GI6SR3.js} +1 -1
- package/dist/{chunk-J5ADZN6V.cjs → chunk-OCATAKXV.cjs} +20 -20
- package/dist/{chunk-JYKPWK5O.js → chunk-OIGYWOL6.js} +1 -1
- package/dist/{chunk-O6TQP7U7.cjs → chunk-ONVYXTUT.cjs} +3 -3
- package/dist/{chunk-MPULXVC4.cjs → chunk-OV3T5MUH.cjs} +11 -11
- package/dist/{chunk-DMRXF5DU.js → chunk-P4FUTSVK.js} +3 -3
- package/dist/{chunk-MXVIDIC6.cjs → chunk-P6SLT2F4.cjs} +2 -2
- package/dist/{chunk-BL2UC7HC.js → chunk-PGFLPURU.js} +1 -1
- package/dist/{chunk-CWINVFRI.cjs → chunk-PIXQ2AVM.cjs} +17 -17
- package/dist/{chunk-MO4KP6XS.cjs → chunk-PNIAIOMZ.cjs} +5 -5
- package/dist/{chunk-HQWQZML5.cjs → chunk-PQBYFEBL.cjs} +2 -2
- package/dist/{chunk-UGFVM77J.cjs → chunk-PSAH4ZQB.cjs} +2 -2
- package/dist/{chunk-Y3M2DABP.js → chunk-PTTZI4QZ.js} +4 -4
- package/dist/{chunk-Q6AC3PHY.cjs → chunk-PY73W5MQ.cjs} +4 -4
- package/dist/{chunk-B5CGDNMR.js → chunk-PZZMIYII.js} +3 -3
- package/dist/{chunk-VRMZO6TB.js → chunk-Q3BS6FPM.js} +7 -6
- package/dist/chunk-QBYGMMDD.js +517 -0
- package/dist/{chunk-3LJJG5YY.cjs → chunk-QLZOMZO5.cjs} +4 -3
- package/dist/{chunk-3S563FNF.cjs → chunk-QQ64HEHP.cjs} +31 -31
- package/dist/{chunk-TBOLJDUG.js → chunk-QRQF3556.js} +12 -7
- package/dist/{chunk-ZZ63NW7A.cjs → chunk-RBXBH6EB.cjs} +17 -17
- package/dist/{chunk-PUD76XQT.cjs → chunk-RFUKZIJF.cjs} +5 -5
- package/dist/chunk-RS2E32YB.js +71 -0
- package/dist/{chunk-7MU7LWF3.cjs → chunk-S5JNQIGL.cjs} +5 -5
- package/dist/{chunk-BFQDQRDE.js → chunk-S5QKRA2V.js} +2 -2
- package/dist/{chunk-IKUMVBCW.cjs → chunk-SD3NTC7D.cjs} +48 -4
- package/dist/{chunk-PQLKJCIE.js → chunk-SDLY4X3G.js} +2 -2
- package/dist/{chunk-VKBIE6I6.js → chunk-SFFEKZGC.js} +2 -2
- package/dist/{chunk-TWQDAUZU.js → chunk-SHRLFX6F.js} +3 -1
- package/dist/{chunk-UEIXJG45.js → chunk-SNDDZG5H.js} +88 -72
- package/dist/{chunk-AOKCI722.cjs → chunk-SOVR7S3T.cjs} +2 -2
- package/dist/{chunk-M4KNC5BQ.js → chunk-SPQ7QIQ6.js} +1 -1
- package/dist/{chunk-QCHIDZBA.js → chunk-SRMGWMQO.js} +1 -1
- package/dist/{chunk-ZHJ7JGME.cjs → chunk-SVVP4UUZ.cjs} +11 -11
- package/dist/{chunk-CHI52KFR.cjs → chunk-SY2P3Z5W.cjs} +150 -7
- package/dist/chunk-SZD45IDG.js +468 -0
- package/dist/{chunk-VGEV44V2.cjs → chunk-TE4SYTWR.cjs} +189 -28
- package/dist/{chunk-YV63VW4K.js → chunk-TR6NECEZ.js} +1 -1
- package/dist/{chunk-GZ6DV2UG.js → chunk-TYBPTKFT.js} +1 -1
- package/dist/{chunk-5VHP6HDQ.js → chunk-U2QUMKCB.js} +1 -1
- package/dist/{chunk-6HH236FV.cjs → chunk-U6PLSPMD.cjs} +2 -2
- package/dist/{chunk-EZJHLOWP.js → chunk-UWZ4G3SQ.js} +20 -7
- package/dist/{chunk-UXLW45ZE.cjs → chunk-V3SZLWEQ.cjs} +25 -90
- package/dist/chunk-V4HGZSKQ.cjs +183 -0
- package/dist/{chunk-2QL6MNXG.js → chunk-V5ELP2XE.js} +6 -6
- package/dist/{chunk-N6O3XUZ2.cjs → chunk-VKOXFT4L.cjs} +2 -2
- package/dist/{chunk-J2K57QM7.cjs → chunk-VLGGMQUN.cjs} +6 -6
- package/dist/{chunk-HSCUPEA4.cjs → chunk-VQHSYAPZ.cjs} +11 -11
- package/dist/{chunk-DEQVRSV5.cjs → chunk-W5QLA6WP.cjs} +8 -8
- package/dist/chunk-WJYFLQ7G.cjs +27 -0
- package/dist/{chunk-MX75JYIY.js → chunk-WNJXIACY.js} +3 -3
- package/dist/{chunk-OHWMWKJQ.js → chunk-WPE2XHVX.js} +1 -1
- package/dist/{chunk-O64I2GYI.js → chunk-X3TI5TJJ.js} +1 -1
- package/dist/{chunk-46C73ZKK.cjs → chunk-X5P6QQOB.cjs} +66 -10
- package/dist/{chunk-TJNBASFD.cjs → chunk-X7XMITIL.cjs} +8 -8
- package/dist/{chunk-E6GFD7VR.cjs → chunk-XNIMSVS6.cjs} +11 -11
- package/dist/{chunk-WGLBC5AY.cjs → chunk-XW3XCK4E.cjs} +4 -4
- package/dist/{chunk-OM24WXEE.js → chunk-XZVDYC5U.js} +1 -1
- package/dist/{chunk-UWFG2R2I.cjs → chunk-Y5BDE24P.cjs} +33 -9
- package/dist/{chunk-GGLKUENP.js → chunk-YC5OBZQU.js} +161 -7
- package/dist/{chunk-JJ4KA7HK.cjs → chunk-YISPVAXO.cjs} +371 -250
- package/dist/{chunk-SWCQM52V.js → chunk-YQDI753V.js} +4 -4
- package/dist/{chunk-KNTUI4TZ.cjs → chunk-YWH55BWK.cjs} +9 -6
- package/dist/{chunk-ACDQGA4Z.js → chunk-YXM6SA7P.js} +7 -72
- package/dist/{chunk-3GUEUCZK.js → chunk-ZNGRLCFQ.js} +2 -0
- package/dist/{chunk-LQBONA55.cjs → chunk-ZNYZB7XY.cjs} +2 -0
- package/dist/{chunk-XIVFAD2L.js → chunk-ZPLCAXJW.js} +172 -11
- package/dist/chunk-ZUYYHKQA.js +44 -0
- package/dist/clear-QJXU25IF.cjs +12 -0
- package/dist/{clear-OFLFQ3MR.js → clear-Y5TO3RZA.js} +2 -2
- package/dist/communityInstaller-LXMVKVAV.cjs +22 -0
- package/dist/{communityInstaller-COB2KTOW.js → communityInstaller-RVL4STPS.js} +6 -6
- package/dist/completion-JX4T2ONW.cjs +17 -0
- package/dist/{completion-PT4VM2H2.js → completion-SE3XYG74.js} +5 -5
- package/dist/config-3224PRW4.cjs +21 -0
- package/dist/{config-R4O7GBTY.js → config-7KPHKFTP.js} +4 -3
- package/dist/{constants-HVCHVQAF.js → constants-EJFAWJQI.js} +1 -1
- package/dist/constants-MCCGUU5F.cjs +21 -0
- package/dist/{export-3PK3VFCE.js → export-BJVIDZC4.js} +5 -5
- package/dist/export-KU4557HK.cjs +15 -0
- package/dist/feature-K3LG5IJP.cjs +14 -0
- package/dist/feature-V4JF5TNJ.js +14 -0
- package/dist/features-5OJTLKS7.js +23 -0
- package/dist/features-VCBJQXCX.cjs +23 -0
- package/dist/feedback-D4437VE4.js +18 -0
- package/dist/feedback-VZPEHGFY.cjs +18 -0
- package/dist/go-X4E6BCD6.js +12 -0
- package/dist/go-XREVFS5I.cjs +12 -0
- package/dist/goal-4M3J6JS2.cjs +16 -0
- package/dist/goal-EI66BV7W.js +16 -0
- package/dist/help-GGFS7WHY.cjs +12 -0
- package/dist/{help-X3OAZ3CY.js → help-MLIROWKM.js} +2 -2
- package/dist/{history-YKFPHBJN.js → history-GQJ6RZD6.js} +2 -2
- package/dist/history-J4LUIOSI.cjs +14 -0
- package/dist/hooks-FSRIUS6A.cjs +18 -0
- package/dist/{hooks-7TA4PIIB.js → hooks-PPFHCF7T.js} +6 -6
- package/dist/i18n-CI6VFXL5.cjs +33 -0
- package/dist/{i18n-2KBUU7XL.js → i18n-Q7UZJRPL.js} +1 -1
- package/dist/ide-BUSVE54P.js +15 -0
- package/dist/ide-YR27BPGM.cjs +15 -0
- package/dist/{import-4CHYLS4K.js → import-3VBKI6BN.js} +3 -3
- package/dist/{import-I7T4ZHYL.cjs → import-C7S6UJMW.cjs} +3 -3
- package/dist/import-DBK4OCDF.cjs +10 -0
- package/dist/{import-JWPYKXCZ.js → import-U47DXCA7.js} +2 -2
- package/dist/index.cjs +267 -170
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +165 -68
- package/dist/init-OXTYS72D.cjs +10 -0
- package/dist/{init-262MWZV4.js → init-Q2O4R42R.js} +2 -2
- package/dist/{inputPrompt-YGBHDUEP.js → inputPrompt-3CFZDUBH.js} +2 -2
- package/dist/inputPrompt-JMACL4EB.cjs +90 -0
- package/dist/language-EK3M6UBV.cjs +22 -0
- package/dist/language-Q3RUGGOW.js +22 -0
- package/dist/learn-3DSX7DYG.cjs +23 -0
- package/dist/learn-OPOH5L43.js +23 -0
- package/dist/login-GST7MWXJ.cjs +27 -0
- package/dist/login-Q7DZKAX4.js +27 -0
- package/dist/logout-2G7OUK7I.cjs +24 -0
- package/dist/logout-FNBBL2UI.js +24 -0
- package/dist/{mcp-5O6PUL4G.js → mcp-AH3MMUBU.js} +7 -6
- package/dist/mcp-DW7R63IB.cjs +21 -0
- package/dist/{mcp-install-6XWXLFVY.js → mcp-install-222PCKSW.js} +9 -8
- package/dist/{mcp-install-P6DHES7V.cjs → mcp-install-IA4ZS2SV.cjs} +14 -13
- package/dist/memory-6NX3DAIY.cjs +10 -0
- package/dist/{memory-Q54CESNM.js → memory-VB46T5H3.js} +2 -2
- package/dist/model-64NAELFS.cjs +10 -0
- package/dist/{model-6AJ77PJG.js → model-SJJG64AM.js} +2 -2
- package/dist/new-DU5SOOOY.cjs +12 -0
- package/dist/{new-ZXHEWC2S.js → new-ERZ5C6CN.js} +2 -2
- package/dist/onboarding-2U2BV2KE.cjs +36 -0
- package/dist/{onboarding-JYNMK6NI.js → onboarding-ZQXMPSMJ.js} +14 -13
- package/dist/{permissions-YHJMVA6L.js → permissions-7ACNFK7A.js} +2 -2
- package/dist/permissions-GSNNV7RJ.cjs +10 -0
- package/dist/{quit-GWTNHQSP.js → quit-WY6T267G.js} +2 -2
- package/dist/quit-XIRE2KRE.cjs +10 -0
- package/dist/{registry-34GL6BNJ.js → registry-4DXUDKJN.js} +1 -1
- package/dist/{registry-V24W7YK6.cjs → registry-UEO3ETZ7.cjs} +21 -21
- package/dist/resume-RQZ3WXBP.cjs +17 -0
- package/dist/resume-XSXZMDMD.js +17 -0
- package/dist/{rpc-S3DGW6KV.js → rpc-XH7QLN4H.js} +251 -107
- package/dist/{rpc-NPS3PU4O.cjs → rpc-YF54T7JU.cjs} +347 -203
- package/dist/search-VXXFGZWU.cjs +21 -0
- package/dist/search-YAWGX7P7.js +21 -0
- package/dist/{sessions-IYAXMK23.js → sessions-NJYHJOEL.js} +2 -2
- package/dist/sessions-OSG3UJEZ.cjs +10 -0
- package/dist/settings-SO2UIGWV.cjs +42 -0
- package/dist/{settings-55BNW6BF.js → settings-ZXUQH3DO.js} +17 -8
- package/dist/setup-KG7EGKF5.js +30 -0
- package/dist/setup-RSOPCQ57.cjs +30 -0
- package/dist/share-WFAGZ5PY.js +17 -0
- package/dist/share-ZU3SGACF.cjs +17 -0
- package/dist/skills-KBVAQAD2.cjs +29 -0
- package/dist/{skills-VWOMV3CR.js → skills-NBTNDVAY.js} +8 -8
- package/dist/{skills-MVIZNHT4.js → skills-OB6RDW7D.js} +9 -9
- package/dist/{skills-GGMZOVIE.cjs → skills-ZROBG3RZ.cjs} +10 -10
- package/dist/{skills-install-QBA5RCV6.js → skills-install-BHTIEMKH.js} +7 -7
- package/dist/{skills-install-VTAMCNNY.cjs → skills-install-ILX6QVEF.cjs} +15 -15
- package/dist/skills-new-B45VQ2PP.cjs +18 -0
- package/dist/skills-new-YMRP2HNO.js +18 -0
- package/dist/slashCommands-53VYIBJU.js +105 -0
- package/dist/slashCommands-BG2RGGZ6.cjs +105 -0
- package/dist/status-CQ2IUOVK.cjs +24 -0
- package/dist/status-E7IGNVPC.js +24 -0
- package/dist/{sync-7OKF6636.js → sync-7C25MOT2.js} +6 -5
- package/dist/{sync-7BILIQHP.js → sync-OCJN4ZSO.js} +3 -3
- package/dist/sync-XRP46IVG.cjs +40 -0
- package/dist/sync-ZMFVE7T4.cjs +22 -0
- package/dist/{teammate-J6PHGL23.cjs → teammate-D77B6QRT.cjs} +9 -8
- package/dist/{teammate-GZQSCIMS.js → teammate-EZCMHOIL.js} +8 -7
- package/dist/templates-ARG2VRWW.cjs +11 -0
- package/dist/templates-UGVZV3KJ.js +11 -0
- package/dist/theme-KKRDE6P7.cjs +22 -0
- package/dist/theme-XF7XIWBQ.js +22 -0
- package/dist/ui/questionModal.cjs +6 -6
- package/dist/ui/questionModal.js +5 -5
- package/dist/{undo-SZEHLX7X.js → undo-GNUTFXCW.js} +2 -2
- package/dist/undo-U4KN7QQM.cjs +10 -0
- package/dist/usage-QSTNSDAO.js +24 -0
- package/dist/usage-YDEMQBNQ.cjs +24 -0
- package/package.json +7 -2
- package/dist/AgentRegistry-EGBDIUAK.cjs +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/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-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-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/permissions-YBNSANIA.cjs +0 -10
- package/dist/quit-B43SJ6E4.cjs +0 -10
- package/dist/resume-DYVOQN5L.cjs +0 -16
- package/dist/resume-M25UQKOX.js +0 -16
- package/dist/search-CPX4PWHP.js +0 -20
- package/dist/search-VUF3M4N3.cjs +0 -20
- package/dist/sessions-JODKER5D.cjs +0 -10
- 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
|
@@ -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 _chunkS5JNQIGLcjs = require('./chunk-S5JNQIGL.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
|
|
10
10
|
|
|
11
11
|
// src/commands/hooks.ts
|
|
12
12
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -165,11 +165,11 @@ function getShortCommand(command) {
|
|
|
165
165
|
}
|
|
166
166
|
function displayHooksList(allHooks) {
|
|
167
167
|
console.log();
|
|
168
|
-
console.log(_chalk2.default.bold.cyan(
|
|
168
|
+
console.log(_chalk2.default.bold.cyan(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.hooks.title")));
|
|
169
169
|
console.log(_chalk2.default.gray(" Lifecycle hooks run shell commands on events"));
|
|
170
170
|
console.log();
|
|
171
171
|
if (allHooks.length === 0) {
|
|
172
|
-
console.log(_chalk2.default.gray(` ${
|
|
172
|
+
console.log(_chalk2.default.gray(` ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.hooks.noHooks")}`));
|
|
173
173
|
console.log();
|
|
174
174
|
return;
|
|
175
175
|
}
|
|
@@ -249,7 +249,7 @@ async function hooks(ctx) {
|
|
|
249
249
|
const toggleLabel = settings.enabled !== false ? "\u25EF Disable all hooks" : "\u25CF Enable all hooks";
|
|
250
250
|
choices.push({ name: "toggle_global", message: toggleLabel });
|
|
251
251
|
}
|
|
252
|
-
const actionResult = await
|
|
252
|
+
const actionResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
|
|
253
253
|
type: "select",
|
|
254
254
|
name: "action",
|
|
255
255
|
message: "Action",
|
|
@@ -285,7 +285,7 @@ async function toggleHooksMulti(manager, allHooks) {
|
|
|
285
285
|
};
|
|
286
286
|
});
|
|
287
287
|
let toggleCount = 0;
|
|
288
|
-
await
|
|
288
|
+
await _chunkCK4HAHVYcjs.showModal.call(void 0, {
|
|
289
289
|
title: "Toggle hooks \u2014 spacebar to enable/disable",
|
|
290
290
|
options,
|
|
291
291
|
multiSelect: true,
|
|
@@ -311,26 +311,26 @@ async function addHook(manager) {
|
|
|
311
311
|
name: e,
|
|
312
312
|
message: `${e} ${_chalk2.default.dim(`- ${EVENT_DESCRIPTIONS[e]}`)}`
|
|
313
313
|
}));
|
|
314
|
-
const eventResult = await
|
|
314
|
+
const eventResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
|
|
315
315
|
type: "select",
|
|
316
316
|
name: "event",
|
|
317
317
|
message: "Event to hook into",
|
|
318
318
|
choices: eventChoices
|
|
319
319
|
});
|
|
320
320
|
if (!eventResult) return;
|
|
321
|
-
const commandResult = await
|
|
321
|
+
const commandResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
|
|
322
322
|
type: "input",
|
|
323
323
|
name: "command",
|
|
324
324
|
message: "Shell command to execute",
|
|
325
325
|
validate: (val) => typeof val === "string" && val.trim().length > 0 || "Command is required"
|
|
326
326
|
});
|
|
327
327
|
if (!commandResult || !commandResult.command) return;
|
|
328
|
-
const descResult = await
|
|
328
|
+
const descResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
|
|
329
329
|
type: "input",
|
|
330
330
|
name: "description",
|
|
331
331
|
message: "Description (optional)"
|
|
332
332
|
});
|
|
333
|
-
const asyncResult = await
|
|
333
|
+
const asyncResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
|
|
334
334
|
type: "confirm",
|
|
335
335
|
name: "async",
|
|
336
336
|
message: "Run asynchronously (non-blocking)?",
|
|
@@ -355,7 +355,7 @@ async function removeHook(manager, allHooks) {
|
|
|
355
355
|
message: `${eventTag} ${desc2}`
|
|
356
356
|
};
|
|
357
357
|
});
|
|
358
|
-
const selectResult = await
|
|
358
|
+
const selectResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
|
|
359
359
|
type: "select",
|
|
360
360
|
name: "hookIndex",
|
|
361
361
|
message: "Select hook to remove",
|
|
@@ -367,7 +367,7 @@ async function removeHook(manager, allHooks) {
|
|
|
367
367
|
const eventHooks = allHooks.filter((h) => h.event === hook.event);
|
|
368
368
|
const eventIndex = eventHooks.indexOf(hook);
|
|
369
369
|
const desc = hook.description || getShortCommand(hook.command);
|
|
370
|
-
const confirmResult = await
|
|
370
|
+
const confirmResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
|
|
371
371
|
type: "confirm",
|
|
372
372
|
name: "confirm",
|
|
373
373
|
message: `Remove "${desc}"?`,
|
|
@@ -390,7 +390,7 @@ async function testHook(manager, allHooks) {
|
|
|
390
390
|
message: `${eventTag} ${desc}`
|
|
391
391
|
};
|
|
392
392
|
});
|
|
393
|
-
const selectResult = await
|
|
393
|
+
const selectResult = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
|
|
394
394
|
type: "select",
|
|
395
395
|
name: "hookIndex",
|
|
396
396
|
message: "Select hook to test",
|
|
@@ -421,7 +421,7 @@ async function testHook(manager, allHooks) {
|
|
|
421
421
|
}
|
|
422
422
|
var metadata = {
|
|
423
423
|
command: "/hooks",
|
|
424
|
-
description:
|
|
424
|
+
description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.hooks.description"),
|
|
425
425
|
implemented: true
|
|
426
426
|
};
|
|
427
427
|
|
|
@@ -115,8 +115,7 @@ var SyncApiClient = class {
|
|
|
115
115
|
"Content-Type": "application/json"
|
|
116
116
|
},
|
|
117
117
|
body: JSON.stringify({
|
|
118
|
-
|
|
119
|
-
...batchIndex === 0 ? { manifest } : {},
|
|
118
|
+
manifest,
|
|
120
119
|
files: batch
|
|
121
120
|
})
|
|
122
121
|
}
|
|
@@ -136,18 +135,22 @@ var SyncApiClient = class {
|
|
|
136
135
|
/**
|
|
137
136
|
* Upload a file to a pre-signed URL
|
|
138
137
|
*/
|
|
139
|
-
async uploadFile(uploadUrl, content) {
|
|
138
|
+
async uploadFile(uploadUrl, content, token) {
|
|
140
139
|
if (content.length > this.maxFileSize) {
|
|
141
140
|
throw new Error(`File exceeds max size of ${this.maxFileSize} bytes`);
|
|
142
141
|
}
|
|
142
|
+
const headers = {
|
|
143
|
+
"Content-Type": "application/octet-stream",
|
|
144
|
+
"Content-Length": content.length.toString()
|
|
145
|
+
};
|
|
146
|
+
if (token) {
|
|
147
|
+
headers.Authorization = `Bearer ${token}`;
|
|
148
|
+
}
|
|
143
149
|
const response = await this.fetchWithRetry(
|
|
144
150
|
uploadUrl,
|
|
145
151
|
{
|
|
146
152
|
method: "PUT",
|
|
147
|
-
headers
|
|
148
|
-
"Content-Type": "application/octet-stream",
|
|
149
|
-
"Content-Length": content.length.toString()
|
|
150
|
-
},
|
|
153
|
+
headers,
|
|
151
154
|
body: new Uint8Array(content)
|
|
152
155
|
}
|
|
153
156
|
);
|
|
@@ -234,10 +237,11 @@ var SyncApiClient = class {
|
|
|
234
237
|
/**
|
|
235
238
|
* Download a file from a pre-signed URL
|
|
236
239
|
*/
|
|
237
|
-
async downloadFile(downloadUrl) {
|
|
240
|
+
async downloadFile(downloadUrl, token) {
|
|
241
|
+
const headers = token ? { Authorization: `Bearer ${token}` } : void 0;
|
|
238
242
|
const response = await this.fetchWithRetry(
|
|
239
243
|
downloadUrl,
|
|
240
|
-
{ method: "GET" }
|
|
244
|
+
{ method: "GET", ...headers ? { headers } : {} }
|
|
241
245
|
);
|
|
242
246
|
if (!response.ok) {
|
|
243
247
|
throw new Error(`Download failed: ${response.status}`);
|
|
@@ -0,0 +1,280 @@
|
|
|
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: "chrome_integration",
|
|
112
|
+
label: "Chrome integration",
|
|
113
|
+
description: "Start the browser bridge by default for Chrome extension handoff.",
|
|
114
|
+
stage: "experimental",
|
|
115
|
+
configPath: "chrome.enabledByDefault",
|
|
116
|
+
defaultEnabled: false,
|
|
117
|
+
requiresRestart: true
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: "telemetry",
|
|
121
|
+
label: "Telemetry",
|
|
122
|
+
description: "Share anonymized product telemetry when explicitly enabled.",
|
|
123
|
+
stage: "stable",
|
|
124
|
+
configPath: "telemetry.enabled",
|
|
125
|
+
defaultEnabled: false
|
|
126
|
+
}
|
|
127
|
+
];
|
|
128
|
+
function isAwsBedrockProviderEnabled(config) {
|
|
129
|
+
const definition = FEATURE_REGISTRY.find((feature) => feature.id === AWS_BEDROCK_PROVIDER_FLAG);
|
|
130
|
+
return config?.features?.awsBedrockProvider ?? definition?.defaultEnabled ?? true;
|
|
131
|
+
}
|
|
132
|
+
var LOCAL_FEATURE_IDS = new Set(FEATURE_REGISTRY.map((feature) => feature.id));
|
|
133
|
+
function isLocalFeatureId(id) {
|
|
134
|
+
return LOCAL_FEATURE_IDS.has(id);
|
|
135
|
+
}
|
|
136
|
+
function isRecord(value) {
|
|
137
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
138
|
+
}
|
|
139
|
+
function getNestedValue(root, configPath) {
|
|
140
|
+
let current = root;
|
|
141
|
+
for (const part of configPath.split(".")) {
|
|
142
|
+
if (!isRecord(current)) {
|
|
143
|
+
return void 0;
|
|
144
|
+
}
|
|
145
|
+
current = current[part];
|
|
146
|
+
}
|
|
147
|
+
return current;
|
|
148
|
+
}
|
|
149
|
+
function setNestedValue(root, configPath, value) {
|
|
150
|
+
const parts = configPath.split(".");
|
|
151
|
+
let current = root;
|
|
152
|
+
for (const part of parts.slice(0, -1)) {
|
|
153
|
+
const existing = current[part];
|
|
154
|
+
if (!isRecord(existing)) {
|
|
155
|
+
current[part] = {};
|
|
156
|
+
}
|
|
157
|
+
current = current[part];
|
|
158
|
+
}
|
|
159
|
+
current[parts[parts.length - 1]] = value;
|
|
160
|
+
}
|
|
161
|
+
function getRemoteFeatureStates(config, options = {}) {
|
|
162
|
+
const remoteOverrides = config.features?.remoteOverrides || {};
|
|
163
|
+
const snapshot = options.remoteSnapshot;
|
|
164
|
+
if (!snapshot) return [];
|
|
165
|
+
return snapshot.flags.filter((flag) => !isLocalFeatureId(flag.key)).map((flag) => {
|
|
166
|
+
const localOverride = remoteOverrides[flag.key] === "off" ? "off" : void 0;
|
|
167
|
+
return {
|
|
168
|
+
id: flag.key,
|
|
169
|
+
label: flag.key,
|
|
170
|
+
description: `Remote feature flag (${flag.reason})`,
|
|
171
|
+
stage: "experimental",
|
|
172
|
+
defaultEnabled: false,
|
|
173
|
+
enabled: flag.enabled && localOverride !== "off",
|
|
174
|
+
source: "remote",
|
|
175
|
+
remoteEnabled: flag.enabled,
|
|
176
|
+
reason: flag.reason,
|
|
177
|
+
userOverridable: flag.userOverridable,
|
|
178
|
+
localOverride,
|
|
179
|
+
lastEvaluatedAt: snapshot.evaluatedAt
|
|
180
|
+
};
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
function getFeatureState(config, id, options = {}) {
|
|
184
|
+
const definition = FEATURE_REGISTRY.find((feature) => feature.id === id);
|
|
185
|
+
if (definition) {
|
|
186
|
+
const rawValue = definition.configPath ? getNestedValue(config, definition.configPath) : void 0;
|
|
187
|
+
return {
|
|
188
|
+
...definition,
|
|
189
|
+
source: "local",
|
|
190
|
+
enabled: typeof rawValue === "boolean" ? rawValue : definition.defaultEnabled
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
return getRemoteFeatureStates(config, options).find((feature) => feature.id === id);
|
|
194
|
+
}
|
|
195
|
+
function listFeatureStates(config, options = {}) {
|
|
196
|
+
const local = FEATURE_REGISTRY.map((feature) => ({
|
|
197
|
+
...feature,
|
|
198
|
+
source: "local",
|
|
199
|
+
enabled: getFeatureState(config, feature.id, options)?.enabled ?? feature.defaultEnabled
|
|
200
|
+
}));
|
|
201
|
+
return [...local, ...getRemoteFeatureStates(config, options)];
|
|
202
|
+
}
|
|
203
|
+
function setFeatureState(config, id, enabled, options = {}) {
|
|
204
|
+
const definition = FEATURE_REGISTRY.find((feature) => feature.id === id);
|
|
205
|
+
if (definition) {
|
|
206
|
+
if (!definition.configPath) {
|
|
207
|
+
return { ok: false, error: `Feature "${id}" cannot be changed locally.` };
|
|
208
|
+
}
|
|
209
|
+
setNestedValue(config, definition.configPath, enabled);
|
|
210
|
+
return {
|
|
211
|
+
ok: true,
|
|
212
|
+
feature: getFeatureState(config, id, options)
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
const remoteFeature = getRemoteFeatureStates(config, options).find((feature) => feature.id === id);
|
|
216
|
+
if (!remoteFeature) {
|
|
217
|
+
return { ok: false, error: `Unknown feature "${id}".` };
|
|
218
|
+
}
|
|
219
|
+
config.features ||= {};
|
|
220
|
+
config.features.remoteOverrides ||= {};
|
|
221
|
+
if (enabled) {
|
|
222
|
+
delete config.features.remoteOverrides[id];
|
|
223
|
+
return { ok: true, feature: getFeatureState(config, id, options) };
|
|
224
|
+
}
|
|
225
|
+
if (!remoteFeature.userOverridable) {
|
|
226
|
+
return { ok: false, error: `Feature "${id}" is controlled remotely and cannot be changed locally.` };
|
|
227
|
+
}
|
|
228
|
+
config.features.remoteOverrides[id] = "off";
|
|
229
|
+
return { ok: true, feature: getFeatureState(config, id, options) };
|
|
230
|
+
}
|
|
231
|
+
function formatFeatureList(config, options = {}) {
|
|
232
|
+
const states = listFeatureStates(config, options);
|
|
233
|
+
const idWidth = Math.max(...states.map((feature) => feature.id.length), "feature".length);
|
|
234
|
+
const sourceWidth = Math.max(...states.map((feature) => feature.source.length), "source".length);
|
|
235
|
+
const stageWidth = Math.max(...states.map((feature) => feature.stage.length), "stage".length);
|
|
236
|
+
return states.map((feature) => `${feature.id.padEnd(idWidth + 2)}${feature.source.padEnd(sourceWidth + 2)}${feature.stage.padEnd(stageWidth + 2)}${String(feature.enabled)}`).join("\n");
|
|
237
|
+
}
|
|
238
|
+
function formatFeatureStatus(config, id, options = {}) {
|
|
239
|
+
const feature = getFeatureState(config, id, options);
|
|
240
|
+
if (!feature) {
|
|
241
|
+
return `Unknown feature "${id}".`;
|
|
242
|
+
}
|
|
243
|
+
const restart = feature.requiresRestart ? "yes" : "no";
|
|
244
|
+
const lines = [
|
|
245
|
+
`${feature.id}`,
|
|
246
|
+
`Label: ${feature.label}`,
|
|
247
|
+
`Source: ${feature.source}`,
|
|
248
|
+
`Stage: ${feature.stage}`,
|
|
249
|
+
`Enabled: ${String(feature.enabled)}`,
|
|
250
|
+
`Config: ${feature.configPath || "remote"}`,
|
|
251
|
+
`Default: ${String(feature.defaultEnabled)}`,
|
|
252
|
+
`Restart required: ${restart}`,
|
|
253
|
+
`Description: ${feature.description}`
|
|
254
|
+
];
|
|
255
|
+
if (feature.source === "remote") {
|
|
256
|
+
lines.push(
|
|
257
|
+
`Remote enabled: ${String(feature.remoteEnabled)}`,
|
|
258
|
+
`Local override: ${feature.localOverride || "none"}`,
|
|
259
|
+
`Reason: ${feature.reason || "unknown"}`,
|
|
260
|
+
`User overridable: ${String(feature.userOverridable !== false)}`,
|
|
261
|
+
`Last evaluated: ${feature.lastEvaluatedAt || "never"}`
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
return lines.join("\n");
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
export {
|
|
268
|
+
isAwsBedrockProviderEnabled,
|
|
269
|
+
isLocalFeatureId,
|
|
270
|
+
getFeatureState,
|
|
271
|
+
listFeatureStates,
|
|
272
|
+
setFeatureState,
|
|
273
|
+
formatFeatureList,
|
|
274
|
+
formatFeatureStatus
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* @license
|
|
278
|
+
* Copyright 2026 Autohand AI LLC
|
|
279
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
280
|
+
*/
|