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.
Files changed (414) hide show
  1. package/README.md +20 -2
  2. package/dist/{AgentRegistry-XPWSVO3Q.js → AgentRegistry-GOV7FN2O.js} +2 -2
  3. package/dist/AgentRegistry-J2C6JBZ3.cjs +10 -0
  4. package/dist/CommunitySkillsCache-22BB3J6H.cjs +8 -0
  5. package/dist/{CommunitySkillsCache-ZEQWP6YM.js → CommunitySkillsCache-ZACDPD4J.js} +2 -2
  6. package/dist/{HookManager-CWLTFKWO.js → HookManager-2S6AHOC3.js} +1 -1
  7. package/dist/{HookManager-TMAJQU4S.cjs → HookManager-TVEQI5ZU.cjs} +2 -2
  8. package/dist/{ImportWizard-QBKQEXDW.js → ImportWizard-AEBMAKXE.js} +4 -4
  9. package/dist/{ImportWizard-MQXEED2U.cjs → ImportWizard-AF2XL6DS.cjs} +13 -13
  10. package/dist/LearnAdvisor-KKEQ5QCV.js +9 -0
  11. package/dist/LearnAdvisor-Q7RAYLPF.cjs +9 -0
  12. package/dist/MemoryManager-PMNAEZMB.cjs +8 -0
  13. package/dist/{MemoryManager-WJMLPWGU.js → MemoryManager-QZRLTUB5.js} +2 -2
  14. package/dist/NVIDIAProvider-C3FWQOBZ.cjs +14 -0
  15. package/dist/{NVIDIAProvider-2HR737UE.js → NVIDIAProvider-SJPY3ONR.js} +1 -1
  16. package/dist/{PermissionManager-KMYILJ4Z.js → PermissionManager-MT7KBNNR.js} +3 -3
  17. package/dist/PermissionManager-URCNP5EC.cjs +11 -0
  18. package/dist/ProviderFactory-56N3ECE4.cjs +12 -0
  19. package/dist/{ProviderFactory-HFPRVQ25.js → ProviderFactory-RB4RVAF6.js} +3 -2
  20. package/dist/SessionManager-2IZGWASQ.cjs +10 -0
  21. package/dist/{SessionManager-PNBTJJTQ.js → SessionManager-554PHVPC.js} +2 -2
  22. package/dist/SkillsRegistry-GMRVONOQ.cjs +9 -0
  23. package/dist/{SkillsRegistry-4RRD5GMX.js → SkillsRegistry-NHHMIUYJ.js} +2 -2
  24. package/dist/SubAgent-4GOR2FIJ.js +13 -0
  25. package/dist/SubAgent-ZJMDH4FI.cjs +13 -0
  26. package/dist/{SyncApiClient-LRPFNCKJ.js → SyncApiClient-G3FM65IV.js} +1 -1
  27. package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
  28. package/dist/{about-BW3PDZUU.js → about-3USFSGOH.js} +5 -4
  29. package/dist/about-QR52U5DD.cjs +15 -0
  30. package/dist/{acp-VHEL7BOW.js → acp-5Y2W6OZP.js} +129 -90
  31. package/dist/{acp-EOETGAHC.cjs → acp-GSYE75OB.cjs} +135 -96
  32. package/dist/actionExecutor-KHUU3Z3Q.cjs +28 -0
  33. package/dist/{actionExecutor-33I47NZS.js → actionExecutor-PLQJZLZV.js} +12 -8
  34. package/dist/add-dir-BTAD5OZS.cjs +11 -0
  35. package/dist/{add-dir-VFX7QT4E.js → add-dir-HCERJDBR.js} +2 -2
  36. package/dist/agent-B3EVT7NN.cjs +126 -0
  37. package/dist/agent-SATQ3WZ3.js +126 -0
  38. package/dist/agents-44CRJGM7.cjs +18 -0
  39. package/dist/agents-NN4ZAJ7R.js +18 -0
  40. package/dist/agents-new-6D6G4QS6.cjs +17 -0
  41. package/dist/agents-new-7GAQ25EK.js +17 -0
  42. package/dist/{autoSkill-EFMK6WU6.js → autoSkill-66PKCYTW.js} +2 -2
  43. package/dist/autoSkill-VQLGBELN.cjs +20 -0
  44. package/dist/automode-45DWV4TN.cjs +10 -0
  45. package/dist/{automode-BMYSRM34.js → automode-BUF3VGXU.js} +2 -2
  46. package/dist/chrome-Q2U73HZB.cjs +50 -0
  47. package/dist/chrome-Q54OALOK.cjs +21 -0
  48. package/dist/{chrome-NHJ44WUN.js → chrome-Y3T7EIHG.js} +2 -2
  49. package/dist/chrome-ZNJ46OYW.js +21 -0
  50. package/dist/{chunk-D2OSPLYC.cjs → chunk-22SCR3EV.cjs} +2 -2
  51. package/dist/chunk-26G7YGOW.js +367 -0
  52. package/dist/{chunk-75EDROHL.cjs → chunk-2ESQR35E.cjs} +10 -10
  53. package/dist/{chunk-HKYZSUQ5.js → chunk-2IW5YFJ4.js} +4 -4
  54. package/dist/{chunk-JP3YHTQ2.cjs → chunk-3ICORF7M.cjs} +4 -4
  55. package/dist/{chunk-4256YRCO.cjs → chunk-3UC6DMFI.cjs} +30 -17
  56. package/dist/{chunk-6GUODJKM.cjs → chunk-3UHRCHKB.cjs} +23 -23
  57. package/dist/{chunk-HXJEGMGB.js → chunk-3ZOOH44N.js} +2 -2
  58. package/dist/{chunk-7RFJB75Y.js → chunk-44ZWOBTI.js} +9 -9
  59. package/dist/{chunk-CCVMREXI.js → chunk-4567QNRB.js} +32 -8
  60. package/dist/chunk-45CHNQM6.cjs +517 -0
  61. package/dist/{chunk-6NVAK6CK.js → chunk-4E7SHPNQ.js} +2 -2
  62. package/dist/{chunk-XGMI6IYB.cjs → chunk-4XFHP2SN.cjs} +7 -7
  63. package/dist/chunk-4XVLNOFA.js +360 -0
  64. package/dist/{chunk-D6GZBSOX.js → chunk-575PXZX7.js} +1 -1
  65. package/dist/{chunk-HJIXWGQZ.js → chunk-5A7ZL64N.js} +1 -1
  66. package/dist/{chunk-ROLA6EFO.cjs → chunk-5GCQ5UMV.cjs} +14 -14
  67. package/dist/{chunk-3DDL2E55.cjs → chunk-5SFV2NCY.cjs} +10 -10
  68. package/dist/chunk-5ZNYX4VH.cjs +71 -0
  69. package/dist/{chunk-PDHT7LQS.cjs → chunk-63ANVAOJ.cjs} +3 -3
  70. package/dist/{chunk-GWO66KBI.js → chunk-65LRPW5W.js} +1 -1
  71. package/dist/{chunk-IAGCRVJ3.js → chunk-6AYJCDTA.js} +14 -9
  72. package/dist/{chunk-A7HHCIDQ.js → chunk-6HF6XSCC.js} +2 -2
  73. package/dist/{chunk-47PHDKNW.cjs → chunk-6JWCGQJU.cjs} +6 -6
  74. package/dist/chunk-6OECOAK5.cjs +360 -0
  75. package/dist/{chunk-RBHANOYY.js → chunk-7DJJGKM6.js} +47 -3
  76. package/dist/{chunk-37M5UM6I.js → chunk-7IRQ7JEH.js} +1 -1
  77. package/dist/chunk-7MY4JHER.js +27 -0
  78. package/dist/{chunk-ZR46OJNZ.js → chunk-7PJKTSRN.js} +3 -3
  79. package/dist/{chunk-AC7DZ6SK.cjs → chunk-7PT646AL.cjs} +3 -3
  80. package/dist/{chunk-TKKN34TV.js → chunk-7WAUCLLQ.js} +3 -3
  81. package/dist/{chunk-DPSIGY6L.cjs → chunk-7XTUL7ZD.cjs} +9 -9
  82. package/dist/{chunk-GBMDFWJX.cjs → chunk-AE2ILW25.cjs} +13 -13
  83. package/dist/{chunk-BQ22N3TX.cjs → chunk-AOKXYGBQ.cjs} +27 -22
  84. package/dist/{chunk-REMGR23V.cjs → chunk-AQ5PVHOC.cjs} +7 -2
  85. package/dist/{chunk-AUYSIEVV.cjs → chunk-AZ47LKD5.cjs} +3 -3
  86. package/dist/chunk-B76FJKEJ.cjs +184 -0
  87. package/dist/{chunk-XV2HXRHX.js → chunk-BP37FVBM.js} +3 -3
  88. package/dist/{chunk-JIMSII7R.js → chunk-C46B72VK.js} +57 -10
  89. package/dist/{chunk-L4F7SUYL.js → chunk-C5QIQQ37.js} +3 -3
  90. package/dist/{chunk-AUFNACED.js → chunk-CCIDL4SA.js} +7094 -6126
  91. package/dist/{chunk-OV3PVUYN.js → chunk-CECH6QQP.js} +11 -11
  92. package/dist/{chunk-CH2J4PVE.cjs → chunk-CK4HAHVY.cjs} +13 -13
  93. package/dist/{chunk-Q2IL4DDI.cjs → chunk-CO2AADYU.cjs} +19 -14
  94. package/dist/{chunk-7JLT2VNW.cjs → chunk-CRTCZ4WL.cjs} +7533 -6565
  95. package/dist/{chunk-5JFTY3VU.js → chunk-CSTUTDTH.js} +2 -1
  96. package/dist/{chunk-DIZTWFVR.cjs → chunk-D546G7DA.cjs} +209 -55
  97. package/dist/{chunk-7HPWMALN.js → chunk-DGBPWODD.js} +1 -1
  98. package/dist/{chunk-RBZ7AFX7.cjs → chunk-DHUQZ53B.cjs} +2 -2
  99. package/dist/{chunk-U4C3HW6P.js → chunk-DNSD7DVJ.js} +2 -2
  100. package/dist/{chunk-SOLBYSLY.cjs → chunk-DSSCERHI.cjs} +2 -2
  101. package/dist/{chunk-OPNI6O7F.cjs → chunk-EA2MS25U.cjs} +4 -4
  102. package/dist/{chunk-E46DJH5S.js → chunk-EEHWALXA.js} +94 -3
  103. package/dist/{chunk-CFFE4VA3.js → chunk-EYHKL4QC.js} +1 -1
  104. package/dist/{chunk-FGT6KK6T.js → chunk-FBQJZKFX.js} +3 -3
  105. package/dist/{chunk-I24CWKKK.js → chunk-FFHSCM5M.js} +3 -3
  106. package/dist/{chunk-TXPSTCG7.cjs → chunk-GAOPJ5S3.cjs} +8 -8
  107. package/dist/{chunk-ARBEHFCG.js → chunk-GSDV75A5.js} +1 -1
  108. package/dist/{chunk-Z3XSSF7B.js → chunk-H426KOGY.js} +1 -1
  109. package/dist/{chunk-WRTXCQ3V.cjs → chunk-HC2Q6A3E.cjs} +858 -182
  110. package/dist/{chunk-IGMPWJ2I.cjs → chunk-HG3ZASBH.cjs} +8 -8
  111. package/dist/chunk-HK5A54AV.cjs +280 -0
  112. package/dist/{chunk-2HOLOHVK.js → chunk-HSWWM6AM.js} +136 -15
  113. package/dist/chunk-HTU4W3GB.js +183 -0
  114. package/dist/{chunk-5CMYEM3R.cjs → chunk-HVCIB4SW.cjs} +3 -3
  115. package/dist/chunk-HXHE2KAO.js +385 -0
  116. package/dist/{chunk-NMQ47RCG.js → chunk-HZWU6IO3.js} +5 -2
  117. package/dist/{chunk-ZPD2AO3U.js → chunk-I2ZK3AOD.js} +2 -2
  118. package/dist/{chunk-3UT7R3XV.js → chunk-IEPLQ47J.js} +61 -5
  119. package/dist/{chunk-3PXKRVCW.js → chunk-JB3JCYBJ.js} +7 -2
  120. package/dist/chunk-JCUHCH37.cjs +247 -0
  121. package/dist/{chunk-VBOFPU5M.cjs → chunk-JM3ZTQUK.cjs} +13 -9
  122. package/dist/{chunk-WZV6UVPY.js → chunk-JMJRFSNJ.js} +1 -1
  123. package/dist/{chunk-QKP772OZ.js → chunk-JPFRI4L4.js} +756 -80
  124. package/dist/{chunk-MOJ7ADW4.cjs → chunk-JV5HVCHU.cjs} +2 -2
  125. package/dist/{chunk-LN7D3EJZ.js → chunk-KA2U6MY2.js} +4 -3
  126. package/dist/{chunk-E26KKI46.cjs → chunk-KASXKDF2.cjs} +3 -1
  127. package/dist/chunk-KJ26T7GM.cjs +367 -0
  128. package/dist/chunk-KM7R5YPS.cjs +385 -0
  129. package/dist/{chunk-5F6ZKSHO.js → chunk-KMP6Y3LJ.js} +1 -1
  130. package/dist/chunk-KWXGDSYT.js +184 -0
  131. package/dist/{chunk-LDJQ5QHG.cjs → chunk-L46OUKW5.cjs} +15 -15
  132. package/dist/{chunk-Z4LIPMPM.js → chunk-L6OH44HL.js} +13 -9
  133. package/dist/chunk-LANGD5CO.js +280 -0
  134. package/dist/{chunk-CBFH2J3O.js → chunk-LEZEWKPA.js} +150 -7
  135. package/dist/{chunk-FQAVGSPW.js → chunk-M5DK524Z.js} +2 -2
  136. package/dist/{chunk-7LWQCE4Y.cjs → chunk-M7B7RRBK.cjs} +72 -25
  137. package/dist/{chunk-BWF4VDYE.js → chunk-MANJ67D3.js} +2 -2
  138. package/dist/{chunk-PHJO5YAL.cjs → chunk-MGNXABSU.cjs} +9 -9
  139. package/dist/{chunk-62RTC3XX.js → chunk-MMKZSJUN.js} +1 -1
  140. package/dist/{chunk-3KLSNNRW.cjs → chunk-MQQH4XQH.cjs} +4 -4
  141. package/dist/{chunk-HS4USDND.cjs → chunk-MZN6JBRZ.cjs} +2 -2
  142. package/dist/{chunk-AT7OWLY5.js → chunk-NB6M6ESM.js} +1 -1
  143. package/dist/{chunk-TQ33WBY5.cjs → chunk-NHWHEW7M.cjs} +2 -1
  144. package/dist/chunk-NQZH5CR2.cjs +468 -0
  145. package/dist/{chunk-2CGE7ZV3.cjs → chunk-NV6LCD2I.cjs} +119 -28
  146. package/dist/chunk-NVATU4V6.cjs +44 -0
  147. package/dist/{chunk-DLP436GI.js → chunk-NZ3ZWLUW.js} +2 -2
  148. package/dist/{chunk-IEXKKKOF.cjs → chunk-NZ7GCK7Y.cjs} +23 -23
  149. package/dist/{chunk-MQESBFBZ.cjs → chunk-NZQFKXM3.cjs} +21 -20
  150. package/dist/{chunk-QQ7PANOP.js → chunk-O5GI6SR3.js} +1 -1
  151. package/dist/{chunk-J5ADZN6V.cjs → chunk-OCATAKXV.cjs} +20 -20
  152. package/dist/{chunk-JYKPWK5O.js → chunk-OIGYWOL6.js} +1 -1
  153. package/dist/{chunk-O6TQP7U7.cjs → chunk-ONVYXTUT.cjs} +3 -3
  154. package/dist/{chunk-MPULXVC4.cjs → chunk-OV3T5MUH.cjs} +11 -11
  155. package/dist/{chunk-DMRXF5DU.js → chunk-P4FUTSVK.js} +3 -3
  156. package/dist/{chunk-MXVIDIC6.cjs → chunk-P6SLT2F4.cjs} +2 -2
  157. package/dist/{chunk-BL2UC7HC.js → chunk-PGFLPURU.js} +1 -1
  158. package/dist/{chunk-CWINVFRI.cjs → chunk-PIXQ2AVM.cjs} +17 -17
  159. package/dist/{chunk-MO4KP6XS.cjs → chunk-PNIAIOMZ.cjs} +5 -5
  160. package/dist/{chunk-HQWQZML5.cjs → chunk-PQBYFEBL.cjs} +2 -2
  161. package/dist/{chunk-UGFVM77J.cjs → chunk-PSAH4ZQB.cjs} +2 -2
  162. package/dist/{chunk-Y3M2DABP.js → chunk-PTTZI4QZ.js} +4 -4
  163. package/dist/{chunk-Q6AC3PHY.cjs → chunk-PY73W5MQ.cjs} +4 -4
  164. package/dist/{chunk-B5CGDNMR.js → chunk-PZZMIYII.js} +3 -3
  165. package/dist/{chunk-VRMZO6TB.js → chunk-Q3BS6FPM.js} +7 -6
  166. package/dist/chunk-QBYGMMDD.js +517 -0
  167. package/dist/{chunk-3LJJG5YY.cjs → chunk-QLZOMZO5.cjs} +4 -3
  168. package/dist/{chunk-3S563FNF.cjs → chunk-QQ64HEHP.cjs} +31 -31
  169. package/dist/{chunk-TBOLJDUG.js → chunk-QRQF3556.js} +12 -7
  170. package/dist/{chunk-ZZ63NW7A.cjs → chunk-RBXBH6EB.cjs} +17 -17
  171. package/dist/{chunk-PUD76XQT.cjs → chunk-RFUKZIJF.cjs} +5 -5
  172. package/dist/chunk-RS2E32YB.js +71 -0
  173. package/dist/{chunk-7MU7LWF3.cjs → chunk-S5JNQIGL.cjs} +5 -5
  174. package/dist/{chunk-BFQDQRDE.js → chunk-S5QKRA2V.js} +2 -2
  175. package/dist/{chunk-IKUMVBCW.cjs → chunk-SD3NTC7D.cjs} +48 -4
  176. package/dist/{chunk-PQLKJCIE.js → chunk-SDLY4X3G.js} +2 -2
  177. package/dist/{chunk-VKBIE6I6.js → chunk-SFFEKZGC.js} +2 -2
  178. package/dist/{chunk-TWQDAUZU.js → chunk-SHRLFX6F.js} +3 -1
  179. package/dist/{chunk-UEIXJG45.js → chunk-SNDDZG5H.js} +88 -72
  180. package/dist/{chunk-AOKCI722.cjs → chunk-SOVR7S3T.cjs} +2 -2
  181. package/dist/{chunk-M4KNC5BQ.js → chunk-SPQ7QIQ6.js} +1 -1
  182. package/dist/{chunk-QCHIDZBA.js → chunk-SRMGWMQO.js} +1 -1
  183. package/dist/{chunk-ZHJ7JGME.cjs → chunk-SVVP4UUZ.cjs} +11 -11
  184. package/dist/{chunk-CHI52KFR.cjs → chunk-SY2P3Z5W.cjs} +150 -7
  185. package/dist/chunk-SZD45IDG.js +468 -0
  186. package/dist/{chunk-VGEV44V2.cjs → chunk-TE4SYTWR.cjs} +189 -28
  187. package/dist/{chunk-YV63VW4K.js → chunk-TR6NECEZ.js} +1 -1
  188. package/dist/{chunk-GZ6DV2UG.js → chunk-TYBPTKFT.js} +1 -1
  189. package/dist/{chunk-5VHP6HDQ.js → chunk-U2QUMKCB.js} +1 -1
  190. package/dist/{chunk-6HH236FV.cjs → chunk-U6PLSPMD.cjs} +2 -2
  191. package/dist/{chunk-EZJHLOWP.js → chunk-UWZ4G3SQ.js} +20 -7
  192. package/dist/{chunk-UXLW45ZE.cjs → chunk-V3SZLWEQ.cjs} +25 -90
  193. package/dist/chunk-V4HGZSKQ.cjs +183 -0
  194. package/dist/{chunk-2QL6MNXG.js → chunk-V5ELP2XE.js} +6 -6
  195. package/dist/{chunk-N6O3XUZ2.cjs → chunk-VKOXFT4L.cjs} +2 -2
  196. package/dist/{chunk-J2K57QM7.cjs → chunk-VLGGMQUN.cjs} +6 -6
  197. package/dist/{chunk-HSCUPEA4.cjs → chunk-VQHSYAPZ.cjs} +11 -11
  198. package/dist/{chunk-DEQVRSV5.cjs → chunk-W5QLA6WP.cjs} +8 -8
  199. package/dist/chunk-WJYFLQ7G.cjs +27 -0
  200. package/dist/{chunk-MX75JYIY.js → chunk-WNJXIACY.js} +3 -3
  201. package/dist/{chunk-OHWMWKJQ.js → chunk-WPE2XHVX.js} +1 -1
  202. package/dist/{chunk-O64I2GYI.js → chunk-X3TI5TJJ.js} +1 -1
  203. package/dist/{chunk-46C73ZKK.cjs → chunk-X5P6QQOB.cjs} +66 -10
  204. package/dist/{chunk-TJNBASFD.cjs → chunk-X7XMITIL.cjs} +8 -8
  205. package/dist/{chunk-E6GFD7VR.cjs → chunk-XNIMSVS6.cjs} +11 -11
  206. package/dist/{chunk-WGLBC5AY.cjs → chunk-XW3XCK4E.cjs} +4 -4
  207. package/dist/{chunk-OM24WXEE.js → chunk-XZVDYC5U.js} +1 -1
  208. package/dist/{chunk-UWFG2R2I.cjs → chunk-Y5BDE24P.cjs} +33 -9
  209. package/dist/{chunk-GGLKUENP.js → chunk-YC5OBZQU.js} +161 -7
  210. package/dist/{chunk-JJ4KA7HK.cjs → chunk-YISPVAXO.cjs} +371 -250
  211. package/dist/{chunk-SWCQM52V.js → chunk-YQDI753V.js} +4 -4
  212. package/dist/{chunk-KNTUI4TZ.cjs → chunk-YWH55BWK.cjs} +9 -6
  213. package/dist/{chunk-ACDQGA4Z.js → chunk-YXM6SA7P.js} +7 -72
  214. package/dist/{chunk-3GUEUCZK.js → chunk-ZNGRLCFQ.js} +2 -0
  215. package/dist/{chunk-LQBONA55.cjs → chunk-ZNYZB7XY.cjs} +2 -0
  216. package/dist/{chunk-XIVFAD2L.js → chunk-ZPLCAXJW.js} +172 -11
  217. package/dist/chunk-ZUYYHKQA.js +44 -0
  218. package/dist/clear-QJXU25IF.cjs +12 -0
  219. package/dist/{clear-OFLFQ3MR.js → clear-Y5TO3RZA.js} +2 -2
  220. package/dist/communityInstaller-LXMVKVAV.cjs +22 -0
  221. package/dist/{communityInstaller-COB2KTOW.js → communityInstaller-RVL4STPS.js} +6 -6
  222. package/dist/completion-JX4T2ONW.cjs +17 -0
  223. package/dist/{completion-PT4VM2H2.js → completion-SE3XYG74.js} +5 -5
  224. package/dist/config-3224PRW4.cjs +21 -0
  225. package/dist/{config-R4O7GBTY.js → config-7KPHKFTP.js} +4 -3
  226. package/dist/{constants-HVCHVQAF.js → constants-EJFAWJQI.js} +1 -1
  227. package/dist/constants-MCCGUU5F.cjs +21 -0
  228. package/dist/{export-3PK3VFCE.js → export-BJVIDZC4.js} +5 -5
  229. package/dist/export-KU4557HK.cjs +15 -0
  230. package/dist/feature-K3LG5IJP.cjs +14 -0
  231. package/dist/feature-V4JF5TNJ.js +14 -0
  232. package/dist/features-5OJTLKS7.js +23 -0
  233. package/dist/features-VCBJQXCX.cjs +23 -0
  234. package/dist/feedback-D4437VE4.js +18 -0
  235. package/dist/feedback-VZPEHGFY.cjs +18 -0
  236. package/dist/go-X4E6BCD6.js +12 -0
  237. package/dist/go-XREVFS5I.cjs +12 -0
  238. package/dist/goal-4M3J6JS2.cjs +16 -0
  239. package/dist/goal-EI66BV7W.js +16 -0
  240. package/dist/help-GGFS7WHY.cjs +12 -0
  241. package/dist/{help-X3OAZ3CY.js → help-MLIROWKM.js} +2 -2
  242. package/dist/{history-YKFPHBJN.js → history-GQJ6RZD6.js} +2 -2
  243. package/dist/history-J4LUIOSI.cjs +14 -0
  244. package/dist/hooks-FSRIUS6A.cjs +18 -0
  245. package/dist/{hooks-7TA4PIIB.js → hooks-PPFHCF7T.js} +6 -6
  246. package/dist/i18n-CI6VFXL5.cjs +33 -0
  247. package/dist/{i18n-2KBUU7XL.js → i18n-Q7UZJRPL.js} +1 -1
  248. package/dist/ide-BUSVE54P.js +15 -0
  249. package/dist/ide-YR27BPGM.cjs +15 -0
  250. package/dist/{import-4CHYLS4K.js → import-3VBKI6BN.js} +3 -3
  251. package/dist/{import-I7T4ZHYL.cjs → import-C7S6UJMW.cjs} +3 -3
  252. package/dist/import-DBK4OCDF.cjs +10 -0
  253. package/dist/{import-JWPYKXCZ.js → import-U47DXCA7.js} +2 -2
  254. package/dist/index.cjs +267 -170
  255. package/dist/index.d.cts +2 -0
  256. package/dist/index.d.ts +2 -0
  257. package/dist/index.js +165 -68
  258. package/dist/init-OXTYS72D.cjs +10 -0
  259. package/dist/{init-262MWZV4.js → init-Q2O4R42R.js} +2 -2
  260. package/dist/{inputPrompt-YGBHDUEP.js → inputPrompt-3CFZDUBH.js} +2 -2
  261. package/dist/inputPrompt-JMACL4EB.cjs +90 -0
  262. package/dist/language-EK3M6UBV.cjs +22 -0
  263. package/dist/language-Q3RUGGOW.js +22 -0
  264. package/dist/learn-3DSX7DYG.cjs +23 -0
  265. package/dist/learn-OPOH5L43.js +23 -0
  266. package/dist/login-GST7MWXJ.cjs +27 -0
  267. package/dist/login-Q7DZKAX4.js +27 -0
  268. package/dist/logout-2G7OUK7I.cjs +24 -0
  269. package/dist/logout-FNBBL2UI.js +24 -0
  270. package/dist/{mcp-5O6PUL4G.js → mcp-AH3MMUBU.js} +7 -6
  271. package/dist/mcp-DW7R63IB.cjs +21 -0
  272. package/dist/{mcp-install-6XWXLFVY.js → mcp-install-222PCKSW.js} +9 -8
  273. package/dist/{mcp-install-P6DHES7V.cjs → mcp-install-IA4ZS2SV.cjs} +14 -13
  274. package/dist/memory-6NX3DAIY.cjs +10 -0
  275. package/dist/{memory-Q54CESNM.js → memory-VB46T5H3.js} +2 -2
  276. package/dist/model-64NAELFS.cjs +10 -0
  277. package/dist/{model-6AJ77PJG.js → model-SJJG64AM.js} +2 -2
  278. package/dist/new-DU5SOOOY.cjs +12 -0
  279. package/dist/{new-ZXHEWC2S.js → new-ERZ5C6CN.js} +2 -2
  280. package/dist/onboarding-2U2BV2KE.cjs +36 -0
  281. package/dist/{onboarding-JYNMK6NI.js → onboarding-ZQXMPSMJ.js} +14 -13
  282. package/dist/{permissions-YHJMVA6L.js → permissions-7ACNFK7A.js} +2 -2
  283. package/dist/permissions-GSNNV7RJ.cjs +10 -0
  284. package/dist/{quit-GWTNHQSP.js → quit-WY6T267G.js} +2 -2
  285. package/dist/quit-XIRE2KRE.cjs +10 -0
  286. package/dist/{registry-34GL6BNJ.js → registry-4DXUDKJN.js} +1 -1
  287. package/dist/{registry-V24W7YK6.cjs → registry-UEO3ETZ7.cjs} +21 -21
  288. package/dist/resume-RQZ3WXBP.cjs +17 -0
  289. package/dist/resume-XSXZMDMD.js +17 -0
  290. package/dist/{rpc-S3DGW6KV.js → rpc-XH7QLN4H.js} +251 -107
  291. package/dist/{rpc-NPS3PU4O.cjs → rpc-YF54T7JU.cjs} +347 -203
  292. package/dist/search-VXXFGZWU.cjs +21 -0
  293. package/dist/search-YAWGX7P7.js +21 -0
  294. package/dist/{sessions-IYAXMK23.js → sessions-NJYHJOEL.js} +2 -2
  295. package/dist/sessions-OSG3UJEZ.cjs +10 -0
  296. package/dist/settings-SO2UIGWV.cjs +42 -0
  297. package/dist/{settings-55BNW6BF.js → settings-ZXUQH3DO.js} +17 -8
  298. package/dist/setup-KG7EGKF5.js +30 -0
  299. package/dist/setup-RSOPCQ57.cjs +30 -0
  300. package/dist/share-WFAGZ5PY.js +17 -0
  301. package/dist/share-ZU3SGACF.cjs +17 -0
  302. package/dist/skills-KBVAQAD2.cjs +29 -0
  303. package/dist/{skills-VWOMV3CR.js → skills-NBTNDVAY.js} +8 -8
  304. package/dist/{skills-MVIZNHT4.js → skills-OB6RDW7D.js} +9 -9
  305. package/dist/{skills-GGMZOVIE.cjs → skills-ZROBG3RZ.cjs} +10 -10
  306. package/dist/{skills-install-QBA5RCV6.js → skills-install-BHTIEMKH.js} +7 -7
  307. package/dist/{skills-install-VTAMCNNY.cjs → skills-install-ILX6QVEF.cjs} +15 -15
  308. package/dist/skills-new-B45VQ2PP.cjs +18 -0
  309. package/dist/skills-new-YMRP2HNO.js +18 -0
  310. package/dist/slashCommands-53VYIBJU.js +105 -0
  311. package/dist/slashCommands-BG2RGGZ6.cjs +105 -0
  312. package/dist/status-CQ2IUOVK.cjs +24 -0
  313. package/dist/status-E7IGNVPC.js +24 -0
  314. package/dist/{sync-7OKF6636.js → sync-7C25MOT2.js} +6 -5
  315. package/dist/{sync-7BILIQHP.js → sync-OCJN4ZSO.js} +3 -3
  316. package/dist/sync-XRP46IVG.cjs +40 -0
  317. package/dist/sync-ZMFVE7T4.cjs +22 -0
  318. package/dist/{teammate-J6PHGL23.cjs → teammate-D77B6QRT.cjs} +9 -8
  319. package/dist/{teammate-GZQSCIMS.js → teammate-EZCMHOIL.js} +8 -7
  320. package/dist/templates-ARG2VRWW.cjs +11 -0
  321. package/dist/templates-UGVZV3KJ.js +11 -0
  322. package/dist/theme-KKRDE6P7.cjs +22 -0
  323. package/dist/theme-XF7XIWBQ.js +22 -0
  324. package/dist/ui/questionModal.cjs +6 -6
  325. package/dist/ui/questionModal.js +5 -5
  326. package/dist/{undo-SZEHLX7X.js → undo-GNUTFXCW.js} +2 -2
  327. package/dist/undo-U4KN7QQM.cjs +10 -0
  328. package/dist/usage-QSTNSDAO.js +24 -0
  329. package/dist/usage-YDEMQBNQ.cjs +24 -0
  330. package/package.json +7 -2
  331. package/dist/AgentRegistry-EGBDIUAK.cjs +0 -10
  332. package/dist/CommunitySkillsCache-2OIUV227.cjs +0 -8
  333. package/dist/LearnAdvisor-46FG2XIP.js +0 -9
  334. package/dist/LearnAdvisor-XBRDNAGH.cjs +0 -9
  335. package/dist/MemoryManager-34L4YOKA.cjs +0 -8
  336. package/dist/NVIDIAProvider-MVTL62PR.cjs +0 -14
  337. package/dist/PermissionManager-5OOJ7FAT.cjs +0 -11
  338. package/dist/ProviderFactory-C3YPXTDD.cjs +0 -11
  339. package/dist/SessionManager-WAPTFMDO.cjs +0 -10
  340. package/dist/SkillsRegistry-7AJP74GJ.cjs +0 -9
  341. package/dist/SubAgent-FDIH3DXB.js +0 -11
  342. package/dist/SubAgent-HVL2ICVZ.cjs +0 -11
  343. package/dist/SyncApiClient-VMBOLQ6H.cjs +0 -11
  344. package/dist/about-FCAX37YC.cjs +0 -14
  345. package/dist/actionExecutor-4YBMR3YH.cjs +0 -24
  346. package/dist/add-dir-7SS6KSH5.cjs +0 -11
  347. package/dist/agent-DMRUFU4M.cjs +0 -116
  348. package/dist/agent-WCJEYQJT.js +0 -116
  349. package/dist/agents-CHROO3VU.cjs +0 -17
  350. package/dist/agents-UVDUL65K.js +0 -17
  351. package/dist/agents-new-AUBWSOXP.js +0 -17
  352. package/dist/agents-new-Y562WC47.cjs +0 -17
  353. package/dist/autoSkill-YOLLFTP2.cjs +0 -20
  354. package/dist/automode-DBLKTTKD.cjs +0 -10
  355. package/dist/chrome-ATC4OO5I.cjs +0 -20
  356. package/dist/chrome-O62WXV7F.js +0 -20
  357. package/dist/chrome-XHJLCO4M.cjs +0 -50
  358. package/dist/chunk-6XVVIY54.cjs +0 -256
  359. package/dist/chunk-AU6JAGZJ.cjs +0 -231
  360. package/dist/chunk-VDWJMWDF.js +0 -256
  361. package/dist/clear-33TWQ2ES.cjs +0 -12
  362. package/dist/communityInstaller-TWMGPSYM.cjs +0 -22
  363. package/dist/completion-IIZMHXYP.cjs +0 -17
  364. package/dist/config-KL6WU7R2.cjs +0 -20
  365. package/dist/constants-RLMJ5D5P.cjs +0 -21
  366. package/dist/export-WLGNWEMJ.cjs +0 -15
  367. package/dist/feedback-G635NCLJ.js +0 -18
  368. package/dist/feedback-LLMK3TZH.cjs +0 -18
  369. package/dist/help-BAXLP2M2.cjs +0 -12
  370. package/dist/history-6HOJSEMT.cjs +0 -14
  371. package/dist/hooks-XVFU67T2.cjs +0 -18
  372. package/dist/i18n-MUJMKTFM.cjs +0 -33
  373. package/dist/ide-CCQ33PGC.cjs +0 -15
  374. package/dist/ide-VLVFBZ5F.js +0 -15
  375. package/dist/import-J46F54JY.cjs +0 -10
  376. package/dist/init-EE5Y7RBL.cjs +0 -10
  377. package/dist/inputPrompt-IIFKCX5Q.cjs +0 -90
  378. package/dist/language-CVLPB7OV.js +0 -21
  379. package/dist/language-ZTWFHUSV.cjs +0 -21
  380. package/dist/learn-PON7I5QS.js +0 -23
  381. package/dist/learn-XLRSVNA3.cjs +0 -23
  382. package/dist/login-223QTGBG.cjs +0 -26
  383. package/dist/login-6IKTBUBY.js +0 -26
  384. package/dist/logout-RN2AG6SI.js +0 -23
  385. package/dist/logout-U3M4FFX7.cjs +0 -23
  386. package/dist/mcp-NUQ76QQB.cjs +0 -20
  387. package/dist/memory-CYMDQ2YC.cjs +0 -10
  388. package/dist/model-IDRCKDML.cjs +0 -10
  389. package/dist/new-7LEWOUF2.cjs +0 -12
  390. package/dist/onboarding-FXX7YHSJ.cjs +0 -35
  391. package/dist/permissions-YBNSANIA.cjs +0 -10
  392. package/dist/quit-B43SJ6E4.cjs +0 -10
  393. package/dist/resume-DYVOQN5L.cjs +0 -16
  394. package/dist/resume-M25UQKOX.js +0 -16
  395. package/dist/search-CPX4PWHP.js +0 -20
  396. package/dist/search-VUF3M4N3.cjs +0 -20
  397. package/dist/sessions-JODKER5D.cjs +0 -10
  398. package/dist/settings-BKTS7OMC.cjs +0 -33
  399. package/dist/setup-IRC5HQG2.js +0 -29
  400. package/dist/setup-MMQ7TWOP.cjs +0 -29
  401. package/dist/share-6JRQECAH.cjs +0 -17
  402. package/dist/share-YM5MJKMO.js +0 -17
  403. package/dist/skills-LWSOKOSH.cjs +0 -29
  404. package/dist/skills-new-GPL46YV2.js +0 -18
  405. package/dist/skills-new-L5BEZN5V.cjs +0 -18
  406. package/dist/slashCommands-FBPCIWM5.cjs +0 -95
  407. package/dist/slashCommands-FCWY5DXW.js +0 -95
  408. package/dist/status-3B5SDZPL.js +0 -17
  409. package/dist/status-TTGRF6NC.cjs +0 -17
  410. package/dist/sync-77CXVVTK.cjs +0 -21
  411. package/dist/sync-EH4K5U3N.cjs +0 -40
  412. package/dist/theme-64BYGJ57.cjs +0 -21
  413. package/dist/theme-YJE6HEON.js +0 -21
  414. 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 _chunk7MU7LWF3cjs = require('./chunk-7MU7LWF3.cjs');
3
+ var _chunkS5JNQIGLcjs = require('./chunk-S5JNQIGL.cjs');
4
4
 
5
5
 
6
- var _chunkCH2J4PVEcjs = require('./chunk-CH2J4PVE.cjs');
6
+ var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
7
7
 
8
8
 
9
- var _chunkCHI52KFRcjs = require('./chunk-CHI52KFR.cjs');
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(_chunkCHI52KFRcjs.t.call(void 0, "commands.hooks.title")));
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(` ${_chunkCHI52KFRcjs.t.call(void 0, "commands.hooks.noHooks")}`));
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 _chunk7MU7LWF3cjs.safePrompt.call(void 0, {
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 _chunkCH2J4PVEcjs.showModal.call(void 0, {
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 _chunk7MU7LWF3cjs.safePrompt.call(void 0, {
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 _chunk7MU7LWF3cjs.safePrompt.call(void 0, {
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 _chunk7MU7LWF3cjs.safePrompt.call(void 0, {
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 _chunk7MU7LWF3cjs.safePrompt.call(void 0, {
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 _chunk7MU7LWF3cjs.safePrompt.call(void 0, {
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 _chunk7MU7LWF3cjs.safePrompt.call(void 0, {
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 _chunk7MU7LWF3cjs.safePrompt.call(void 0, {
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: _chunkCHI52KFRcjs.t.call(void 0, "commands.hooks.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
- // Only include manifest on first batch
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
+ */