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.
Files changed (455) hide show
  1. package/README.md +118 -76
  2. package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
  3. package/dist/AgentRegistry-JBXZUPML.js +18 -0
  4. package/dist/{CommunitySkillsCache-ZEQWP6YM.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
  5. package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
  6. package/dist/{HookManager-CWLTFKWO.js → HookManager-BELBPQQI.js} +1 -1
  7. package/dist/{HookManager-TMAJQU4S.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
  8. package/dist/{ImportWizard-MQXEED2U.cjs → ImportWizard-U6CIJREW.cjs} +13 -13
  9. package/dist/{ImportWizard-QBKQEXDW.js → ImportWizard-VJFSWSUQ.js} +4 -4
  10. package/dist/LearnAdvisor-LAURA3IB.cjs +9 -0
  11. package/dist/LearnAdvisor-RFOBXFG7.js +9 -0
  12. package/dist/MemoryManager-3A2VRPF2.js +9 -0
  13. package/dist/MemoryManager-UOEQZIDC.cjs +9 -0
  14. package/dist/{NVIDIAProvider-2HR737UE.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
  15. package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
  16. package/dist/{PermissionManager-KMYILJ4Z.js → PermissionManager-N2LDSOYF.js} +3 -3
  17. package/dist/PermissionManager-ZNURIEYR.cjs +11 -0
  18. package/dist/ProviderFactory-3BFS65V7.cjs +13 -0
  19. package/dist/{ProviderFactory-HFPRVQ25.js → ProviderFactory-XUT6BSGB.js} +4 -2
  20. package/dist/SessionManager-LGPQIA57.cjs +10 -0
  21. package/dist/{SessionManager-PNBTJJTQ.js → SessionManager-OR4KDDDS.js} +2 -2
  22. package/dist/{SkillsRegistry-4RRD5GMX.js → SkillsRegistry-IL3GWROU.js} +2 -2
  23. package/dist/SkillsRegistry-PM34DQNA.cjs +9 -0
  24. package/dist/SubAgent-2WG4QQB5.cjs +13 -0
  25. package/dist/SubAgent-ICGN23TQ.js +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-OYVGQMJJ.js} +5 -4
  29. package/dist/about-U2BH7HDR.cjs +15 -0
  30. package/dist/{acp-VHEL7BOW.js → acp-JWHGXZL5.js} +207 -102
  31. package/dist/{acp-EOETGAHC.cjs → acp-S37JOBCS.cjs} +226 -121
  32. package/dist/actionExecutor-2QEPMELQ.cjs +28 -0
  33. package/dist/actionExecutor-6NCCORRB.js +28 -0
  34. package/dist/add-dir-KFUHSIR2.cjs +11 -0
  35. package/dist/{add-dir-VFX7QT4E.js → add-dir-MM2BM2Z2.js} +2 -2
  36. package/dist/agent-DUIYLIVN.js +132 -0
  37. package/dist/agent-YYEHGDAK.cjs +132 -0
  38. package/dist/agents-GBGG4CW7.cjs +19 -0
  39. package/dist/agents-ZH34C72F.js +19 -0
  40. package/dist/agents-new-ERXLS7SB.cjs +17 -0
  41. package/dist/agents-new-EVTGPTA4.js +17 -0
  42. package/dist/{autoSkill-EFMK6WU6.js → autoSkill-HEWKJ5JV.js} +2 -2
  43. package/dist/autoSkill-YL6PN6AV.cjs +20 -0
  44. package/dist/automode-4BJ7FNPL.cjs +10 -0
  45. package/dist/{automode-BMYSRM34.js → automode-S4U7A7Q2.js} +2 -2
  46. package/dist/chrome-45ZXHL5N.cjs +22 -0
  47. package/dist/{chrome-NHJ44WUN.js → chrome-BBSRVG6S.js} +2 -2
  48. package/dist/chrome-IFVZRHAT.cjs +50 -0
  49. package/dist/chrome-MYE6DNA2.js +22 -0
  50. package/dist/chunk-24CEJYEG.cjs +579 -0
  51. package/dist/{chunk-47PHDKNW.cjs → chunk-255GIVM2.cjs} +6 -6
  52. package/dist/{chunk-DIZTWFVR.cjs → chunk-2BDSR2OW.cjs} +238 -61
  53. package/dist/{chunk-BL2UC7HC.js → chunk-2BPIR7LA.js} +121 -4
  54. package/dist/{chunk-BQ22N3TX.cjs → chunk-2NY7OHBF.cjs} +47 -27
  55. package/dist/chunk-2WUNHTXL.js +303 -0
  56. package/dist/{chunk-HQWQZML5.cjs → chunk-34B6ZO6W.cjs} +124 -7
  57. package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
  58. package/dist/{chunk-4256YRCO.cjs → chunk-3CAXECWJ.cjs} +30 -17
  59. package/dist/{chunk-KNTUI4TZ.cjs → chunk-3CBYUBZC.cjs} +5 -5
  60. package/dist/chunk-3DF3GZQ7.js +277 -0
  61. package/dist/{chunk-E26KKI46.cjs → chunk-3JURXAL6.cjs} +61 -8
  62. package/dist/{chunk-MOJ7ADW4.cjs → chunk-3KWAP2Y3.cjs} +88 -9
  63. package/dist/{chunk-OHWMWKJQ.js → chunk-3MCK6UBL.js} +1 -1
  64. package/dist/{chunk-5VHP6HDQ.js → chunk-3TH7IK4M.js} +62 -9
  65. package/dist/{chunk-ACDQGA4Z.js → chunk-3V77OB3W.js} +7 -72
  66. package/dist/{chunk-HS4USDND.cjs → chunk-3Y5UEK7K.cjs} +4 -4
  67. package/dist/{chunk-XV2HXRHX.js → chunk-4GPPSBEZ.js} +3 -3
  68. package/dist/chunk-5CMBAJ6K.js +377 -0
  69. package/dist/{chunk-MO4KP6XS.cjs → chunk-5YRXFBYZ.cjs} +35 -6
  70. package/dist/chunk-5ZNYX4VH.cjs +71 -0
  71. package/dist/chunk-6AC2TT26.js +156 -0
  72. package/dist/{chunk-UGFVM77J.cjs → chunk-6EIQ6A6U.cjs} +2 -2
  73. package/dist/{chunk-SWCQM52V.js → chunk-6HSEDXVF.js} +4 -4
  74. package/dist/{chunk-QQ7PANOP.js → chunk-6NUXK62F.js} +1 -1
  75. package/dist/{chunk-5CMYEM3R.cjs → chunk-6TGCAPYH.cjs} +62 -9
  76. package/dist/{chunk-NMQ47RCG.js → chunk-6W3SZCSP.js} +1 -1
  77. package/dist/{chunk-VRMZO6TB.js → chunk-73LV3DDZ.js} +7 -6
  78. package/dist/{chunk-3GUEUCZK.js → chunk-7BGGLIQF.js} +85 -1
  79. package/dist/{chunk-RBHANOYY.js → chunk-7DJJGKM6.js} +47 -3
  80. package/dist/{chunk-LQBONA55.cjs → chunk-7EEK7CRR.cjs} +85 -1
  81. package/dist/chunk-7TO3PDMV.cjs +324 -0
  82. package/dist/chunk-7UU22RSH.cjs +277 -0
  83. package/dist/{chunk-E6GFD7VR.cjs → chunk-A3GAM6FM.cjs} +11 -11
  84. package/dist/{chunk-DEQVRSV5.cjs → chunk-A7DJU75T.cjs} +8 -8
  85. package/dist/{chunk-DPSIGY6L.cjs → chunk-AAAO4ERQ.cjs} +9 -9
  86. package/dist/{chunk-FQAVGSPW.js → chunk-AAJLMP57.js} +2 -2
  87. package/dist/chunk-ABR756QN.js +529 -0
  88. package/dist/{chunk-JYKPWK5O.js → chunk-APFGDIPD.js} +3 -1
  89. package/dist/{chunk-Y3M2DABP.js → chunk-APQYRMYL.js} +4 -4
  90. package/dist/{chunk-Q2IL4DDI.cjs → chunk-AZKOIF2G.cjs} +62 -19
  91. package/dist/{chunk-MXVIDIC6.cjs → chunk-AZLHUPNC.cjs} +2 -2
  92. package/dist/chunk-B55VCYSQ.cjs +30 -0
  93. package/dist/{chunk-WZV6UVPY.js → chunk-BLQUMSM3.js} +1 -1
  94. package/dist/{chunk-PHJO5YAL.cjs → chunk-BXKPX6K4.cjs} +9 -9
  95. package/dist/{chunk-3KLSNNRW.cjs → chunk-C66FN2LP.cjs} +4 -4
  96. package/dist/{chunk-OV3PVUYN.js → chunk-CH7KUFAS.js} +9 -9
  97. package/dist/{chunk-CWINVFRI.cjs → chunk-CILSXOPI.cjs} +17 -17
  98. package/dist/{chunk-3UT7R3XV.js → chunk-CM24K6ZT.js} +145 -12
  99. package/dist/chunk-CMEZ42F2.cjs +303 -0
  100. package/dist/{chunk-46C73ZKK.cjs → chunk-CNQKIWIS.cjs} +152 -19
  101. package/dist/{chunk-5JFTY3VU.js → chunk-CSTUTDTH.js} +2 -1
  102. package/dist/{chunk-REMGR23V.cjs → chunk-CSUGNNJY.cjs} +10 -4
  103. package/dist/{chunk-TBOLJDUG.js → chunk-D6HB3H3L.js} +31 -11
  104. package/dist/{chunk-OM24WXEE.js → chunk-D7AYKVKW.js} +2 -2
  105. package/dist/{chunk-6GUODJKM.cjs → chunk-DLCXWOWT.cjs} +23 -23
  106. package/dist/{chunk-CH2J4PVE.cjs → chunk-DMM2BKSV.cjs} +121 -28
  107. package/dist/{chunk-M4KNC5BQ.js → chunk-DW3DPV77.js} +1 -1
  108. package/dist/chunk-ECQD2QC3.cjs +33 -0
  109. package/dist/{chunk-UEIXJG45.js → chunk-EEYOS3UC.js} +116 -80
  110. package/dist/{chunk-7HPWMALN.js → chunk-EF2EN5CR.js} +2 -2
  111. package/dist/{chunk-7LWQCE4Y.cjs → chunk-EFXFURDY.cjs} +192 -58
  112. package/dist/chunk-EK34UZPB.cjs +40 -0
  113. package/dist/{chunk-7JLT2VNW.cjs → chunk-FJR6EZLO.cjs} +9666 -7201
  114. package/dist/{chunk-GZ6DV2UG.js → chunk-FPO7YNPQ.js} +1 -1
  115. package/dist/{chunk-O64I2GYI.js → chunk-FS4I6BNR.js} +1 -1
  116. package/dist/{chunk-MX75JYIY.js → chunk-FSJ2MNOC.js} +3 -3
  117. package/dist/{chunk-7RFJB75Y.js → chunk-GEHZMC4G.js} +11 -8
  118. package/dist/{chunk-UWFG2R2I.cjs → chunk-GO6C2RAR.cjs} +36 -9
  119. package/dist/{chunk-WGLBC5AY.cjs → chunk-GSMR6V36.cjs} +4 -4
  120. package/dist/{chunk-Z3XSSF7B.js → chunk-GSZWATME.js} +1 -1
  121. package/dist/{chunk-7MU7LWF3.cjs → chunk-GYLGCR6F.cjs} +5 -5
  122. package/dist/{chunk-O6TQP7U7.cjs → chunk-H3OOWNYQ.cjs} +3 -3
  123. package/dist/{chunk-2QL6MNXG.js → chunk-H65446XW.js} +115 -20
  124. package/dist/chunk-H7HXRRHK.js +324 -0
  125. package/dist/{chunk-ZZ63NW7A.cjs → chunk-HN2JTDN5.cjs} +17 -17
  126. package/dist/{chunk-AOKCI722.cjs → chunk-HNXUZ5OY.cjs} +2 -2
  127. package/dist/{chunk-AUYSIEVV.cjs → chunk-HOYT3E65.cjs} +3 -3
  128. package/dist/{chunk-DMRXF5DU.js → chunk-HTPY5ESD.js} +3 -3
  129. package/dist/chunk-HTU4W3GB.js +183 -0
  130. package/dist/{chunk-3DDL2E55.cjs → chunk-HVLWH2AF.cjs} +10 -10
  131. package/dist/{chunk-HSCUPEA4.cjs → chunk-HZTEU4W5.cjs} +74 -105
  132. package/dist/{chunk-XGMI6IYB.cjs → chunk-I5T7LPFP.cjs} +7 -7
  133. package/dist/{chunk-XIVFAD2L.js → chunk-IB5CJXE7.js} +173 -12
  134. package/dist/chunk-INNXFLDR.cjs +388 -0
  135. package/dist/{chunk-75EDROHL.cjs → chunk-JFLEP3T7.cjs} +10 -10
  136. package/dist/chunk-JJGDOBFL.js +40 -0
  137. package/dist/{chunk-VBOFPU5M.cjs → chunk-JM3ZTQUK.cjs} +13 -9
  138. package/dist/{chunk-HJIXWGQZ.js → chunk-JSU46T6K.js} +1 -1
  139. package/dist/{chunk-AT7OWLY5.js → chunk-K6WN6BT4.js} +1 -1
  140. package/dist/{chunk-LN7D3EJZ.js → chunk-KA2U6MY2.js} +4 -3
  141. package/dist/{chunk-3S563FNF.cjs → chunk-KIQH3SMT.cjs} +34 -31
  142. package/dist/{chunk-BWF4VDYE.js → chunk-KPRXHIE2.js} +54 -85
  143. package/dist/{chunk-Z4LIPMPM.js → chunk-L6OH44HL.js} +13 -9
  144. package/dist/{chunk-A7HHCIDQ.js → chunk-LIO3RX2Z.js} +2 -2
  145. package/dist/{chunk-DLP436GI.js → chunk-LOSXLH7P.js} +110 -17
  146. package/dist/{chunk-IEXKKKOF.cjs → chunk-LSOR72PB.cjs} +23 -23
  147. package/dist/{chunk-IAGCRVJ3.js → chunk-MA3AVDCC.js} +55 -12
  148. package/dist/{chunk-B5CGDNMR.js → chunk-ME3S2WIR.js} +3 -3
  149. package/dist/{chunk-HKYZSUQ5.js → chunk-NC2I2M4P.js} +4 -4
  150. package/dist/{chunk-GBMDFWJX.cjs → chunk-NC4A4LVC.cjs} +13 -13
  151. package/dist/{chunk-E46DJH5S.js → chunk-NGEK5FCJ.js} +176 -3
  152. package/dist/{chunk-TQ33WBY5.cjs → chunk-NHWHEW7M.cjs} +2 -1
  153. package/dist/{chunk-62RTC3XX.js → chunk-NKW6CHXQ.js} +1 -1
  154. package/dist/{chunk-3PXKRVCW.js → chunk-NOWCRKP2.js} +10 -4
  155. package/dist/{chunk-HXJEGMGB.js → chunk-NUB2LMB6.js} +2 -2
  156. package/dist/chunk-NVATU4V6.cjs +44 -0
  157. package/dist/chunk-O246MKIW.cjs +267 -0
  158. package/dist/{chunk-QCHIDZBA.js → chunk-OGFWL2PS.js} +1 -1
  159. package/dist/{chunk-JJ4KA7HK.cjs → chunk-ONNGAR6W.cjs} +415 -551
  160. package/dist/{chunk-TKKN34TV.js → chunk-OOFR6A62.js} +33 -4
  161. package/dist/{chunk-6NVAK6CK.js → chunk-OZ7FHO7J.js} +2 -2
  162. package/dist/{chunk-2CGE7ZV3.cjs → chunk-P5EWGUI2.cjs} +201 -28
  163. package/dist/{chunk-GGLKUENP.js → chunk-P6BQJPAI.js} +191 -14
  164. package/dist/{chunk-TWQDAUZU.js → chunk-PG2JIU5M.js} +60 -7
  165. package/dist/chunk-PI27G2ED.cjs +377 -0
  166. package/dist/{chunk-YV63VW4K.js → chunk-PI7LRPL6.js} +1 -1
  167. package/dist/{chunk-TXPSTCG7.cjs → chunk-PMPEC5HN.cjs} +18 -15
  168. package/dist/{chunk-ROLA6EFO.cjs → chunk-PYUP7AKY.cjs} +14 -14
  169. package/dist/{chunk-BFQDQRDE.js → chunk-QC5Z3ZT5.js} +2 -2
  170. package/dist/chunk-QDO4L2A7.cjs +156 -0
  171. package/dist/{chunk-LFDPTJYF.cjs → chunk-QDXRI5AM.cjs} +1 -1
  172. package/dist/{chunk-3LJJG5YY.cjs → chunk-QLZOMZO5.cjs} +4 -3
  173. package/dist/chunk-QVXMSQOG.js +430 -0
  174. package/dist/{chunk-ZHJ7JGME.cjs → chunk-R4UKBKDY.cjs} +11 -11
  175. package/dist/{chunk-IGMPWJ2I.cjs → chunk-R75AWII3.cjs} +118 -23
  176. package/dist/{chunk-VGEV44V2.cjs → chunk-RD5PLUIX.cjs} +191 -30
  177. package/dist/{chunk-I24CWKKK.js → chunk-RGB34CV5.js} +3 -3
  178. package/dist/{chunk-CHI52KFR.cjs → chunk-RJCZLFHE.cjs} +246 -39
  179. package/dist/{chunk-D2OSPLYC.cjs → chunk-RKWNM2BJ.cjs} +2 -2
  180. package/dist/{chunk-FGT6KK6T.js → chunk-RMVONICR.js} +3 -3
  181. package/dist/{chunk-Q6AC3PHY.cjs → chunk-RPSYRJL7.cjs} +10 -4
  182. package/dist/chunk-RS2E32YB.js +71 -0
  183. package/dist/chunk-RWKU2X7O.js +388 -0
  184. package/dist/chunk-RZLEGVMH.cjs +565 -0
  185. package/dist/{chunk-5F6ZKSHO.js → chunk-S2L3Y677.js} +1 -1
  186. package/dist/{chunk-ARBEHFCG.js → chunk-S7KVUIOS.js} +1 -1
  187. package/dist/{chunk-AC7DZ6SK.cjs → chunk-SACJJ6NO.cjs} +5 -3
  188. package/dist/{chunk-IKUMVBCW.cjs → chunk-SD3NTC7D.cjs} +48 -4
  189. package/dist/{chunk-CBFH2J3O.js → chunk-SJQU2ZFR.js} +246 -39
  190. package/dist/{chunk-GWO66KBI.js → chunk-SKAQKQFF.js} +12 -2
  191. package/dist/chunk-T4DXP5OP.js +30 -0
  192. package/dist/{chunk-CFFE4VA3.js → chunk-T6FTB6K2.js} +1 -1
  193. package/dist/{chunk-U4C3HW6P.js → chunk-T6N6GRFT.js} +13 -10
  194. package/dist/{chunk-D6GZBSOX.js → chunk-TJFKA6A7.js} +82 -3
  195. package/dist/{chunk-2HOLOHVK.js → chunk-TJZUPS4Z.js} +163 -299
  196. package/dist/{chunk-RBZ7AFX7.cjs → chunk-TLKHZ425.cjs} +2 -2
  197. package/dist/{chunk-J2K57QM7.cjs → chunk-TQ24NLXO.cjs} +6 -6
  198. package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
  199. package/dist/{chunk-OPNI6O7F.cjs → chunk-TZB5XADL.cjs} +4 -4
  200. package/dist/{chunk-6HH236FV.cjs → chunk-UAYXZXWU.cjs} +4 -4
  201. package/dist/{chunk-MPULXVC4.cjs → chunk-UKBFNBDO.cjs} +11 -11
  202. package/dist/chunk-UMJYX5KD.js +565 -0
  203. package/dist/chunk-USKYTHDL.cjs +235 -0
  204. package/dist/chunk-V4HGZSKQ.cjs +183 -0
  205. package/dist/{chunk-MQESBFBZ.cjs → chunk-VAJUSZMC.cjs} +21 -20
  206. package/dist/{chunk-PQLKJCIE.js → chunk-VGQG4NBJ.js} +2 -2
  207. package/dist/chunk-VLUIVJ3J.js +235 -0
  208. package/dist/chunk-VOBINVMV.cjs +430 -0
  209. package/dist/{chunk-L4F7SUYL.js → chunk-VSHKKCSH.js} +16 -5
  210. package/dist/{chunk-LDJQ5QHG.cjs → chunk-VSZU3MGA.cjs} +28 -17
  211. package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
  212. package/dist/{chunk-EZJHLOWP.js → chunk-VXGYFX45.js} +20 -7
  213. package/dist/{chunk-JIMSII7R.js → chunk-WH6YUQDB.js} +193 -59
  214. package/dist/{chunk-VKBIE6I6.js → chunk-WQ6TD55V.js} +2 -2
  215. package/dist/{chunk-ZR46OJNZ.js → chunk-WQWECXTY.js} +3 -3
  216. package/dist/{chunk-SOLBYSLY.cjs → chunk-WVDJUJH6.cjs} +2 -2
  217. package/dist/{chunk-QKP772OZ.js → chunk-X24VIVDZ.js} +963 -103
  218. package/dist/{chunk-37M5UM6I.js → chunk-X4NRTLXD.js} +7 -1
  219. package/dist/chunk-X53SHYCG.js +27 -0
  220. package/dist/{chunk-PUD76XQT.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
  221. package/dist/chunk-Y47OJGLB.cjs +27 -0
  222. package/dist/{chunk-WRTXCQ3V.cjs → chunk-Y4MN27V3.cjs} +1080 -220
  223. package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
  224. package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
  225. package/dist/{chunk-PDHT7LQS.cjs → chunk-YMXYC777.cjs} +3 -3
  226. package/dist/{chunk-TJNBASFD.cjs → chunk-Z3GRWK6O.cjs} +8 -8
  227. package/dist/{chunk-JP3YHTQ2.cjs → chunk-Z5GG2KSL.cjs} +4 -4
  228. package/dist/{chunk-ZPD2AO3U.js → chunk-ZER7DYQK.js} +2 -2
  229. package/dist/{chunk-UXLW45ZE.cjs → chunk-ZFDXZEZJ.cjs} +25 -90
  230. package/dist/chunk-ZFV4HJA6.js +579 -0
  231. package/dist/chunk-ZHMYTI5D.cjs +529 -0
  232. package/dist/{chunk-CCVMREXI.js → chunk-ZLR2TFBC.js} +35 -8
  233. package/dist/{chunk-J5ADZN6V.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
  234. package/dist/chunk-ZUYYHKQA.js +44 -0
  235. package/dist/{chunk-AUFNACED.js → chunk-ZVLVLDYN.js} +9086 -6621
  236. package/dist/clear-AJGXD2BB.cjs +12 -0
  237. package/dist/{clear-OFLFQ3MR.js → clear-HAHDSWKW.js} +3 -3
  238. package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
  239. package/dist/{communityInstaller-COB2KTOW.js → communityInstaller-OLKEUGMX.js} +6 -6
  240. package/dist/completion-G7Z436TF.cjs +17 -0
  241. package/dist/{completion-PT4VM2H2.js → completion-ZS3AXJ6A.js} +5 -5
  242. package/dist/{config-R4O7GBTY.js → config-OWYAQPCX.js} +5 -3
  243. package/dist/config-W2BHT2QE.cjs +22 -0
  244. package/dist/{constants-HVCHVQAF.js → constants-AS6K67AA.js} +5 -3
  245. package/dist/constants-B4W5BT7F.cjs +23 -0
  246. package/dist/{export-3PK3VFCE.js → export-5HIU3KMD.js} +5 -5
  247. package/dist/export-GFD32UY2.cjs +15 -0
  248. package/dist/{extractSessionMemories-A2JX5WJ2.js → extractSessionMemories-K6ZVAW2F.js} +1 -1
  249. package/dist/{extractSessionMemories-XL3MS37F.cjs → extractSessionMemories-LLOIJR5U.cjs} +2 -2
  250. package/dist/feature-KP74CZ3F.cjs +14 -0
  251. package/dist/feature-OPNVMB2E.js +14 -0
  252. package/dist/features-LT55MURX.cjs +24 -0
  253. package/dist/features-ZDIU26WX.js +24 -0
  254. package/dist/feedback-7WTJFQ6S.js +18 -0
  255. package/dist/feedback-CEOJ3453.cjs +18 -0
  256. package/dist/go-2CY5SZNR.js +16 -0
  257. package/dist/go-O2CSQON4.cjs +16 -0
  258. package/dist/goal-DL2N2AWT.cjs +16 -0
  259. package/dist/goal-IJS7VZSG.js +16 -0
  260. package/dist/help-RNOGDEBA.cjs +12 -0
  261. package/dist/{help-X3OAZ3CY.js → help-TCWD2IRH.js} +2 -2
  262. package/dist/{history-YKFPHBJN.js → history-ATOR5OQV.js} +2 -2
  263. package/dist/history-UUSGX2AL.cjs +14 -0
  264. package/dist/{hooks-7TA4PIIB.js → hooks-R3Z5QKUP.js} +6 -6
  265. package/dist/hooks-RWM5UY67.cjs +18 -0
  266. package/dist/{i18n-2KBUU7XL.js → i18n-4QI4TD4I.js} +1 -1
  267. package/dist/i18n-MFAEU5RV.cjs +33 -0
  268. package/dist/ide-6PBTCCUQ.js +15 -0
  269. package/dist/ide-UE3G7NMQ.cjs +15 -0
  270. package/dist/{import-I7T4ZHYL.cjs → import-2IG76KAN.cjs} +6 -4
  271. package/dist/{import-JWPYKXCZ.js → import-E47QL4DW.js} +2 -2
  272. package/dist/import-NQDNBFUL.cjs +10 -0
  273. package/dist/{import-4CHYLS4K.js → import-VQIHGJWS.js} +6 -4
  274. package/dist/index.cjs +512 -305
  275. package/dist/index.d.cts +40 -0
  276. package/dist/index.d.ts +40 -0
  277. package/dist/index.js +402 -195
  278. package/dist/init-DX3RDGDT.cjs +10 -0
  279. package/dist/{init-262MWZV4.js → init-Q54OAAFZ.js} +2 -2
  280. package/dist/{inputPrompt-YGBHDUEP.js → inputPrompt-V2VBDRM7.js} +3 -3
  281. package/dist/inputPrompt-WVGVWAHS.cjs +90 -0
  282. package/dist/language-I6KXAOXD.js +23 -0
  283. package/dist/language-XMIVOH5E.cjs +23 -0
  284. package/dist/learn-JPVVGTKU.js +23 -0
  285. package/dist/learn-NLSHI2MZ.cjs +23 -0
  286. package/dist/login-NABQYLYC.cjs +28 -0
  287. package/dist/login-XPOVFSWN.js +28 -0
  288. package/dist/logout-HNHCGB4Q.js +25 -0
  289. package/dist/logout-SKGDXJSW.cjs +25 -0
  290. package/dist/{mcp-5O6PUL4G.js → mcp-EN73YFGZ.js} +8 -6
  291. package/dist/mcp-TADZCPJQ.cjs +22 -0
  292. package/dist/{mcp-install-P6DHES7V.cjs → mcp-install-2GKWWBAS.cjs} +15 -13
  293. package/dist/{mcp-install-6XWXLFVY.js → mcp-install-3TBTVSHW.js} +10 -8
  294. package/dist/memory-GRXFTDIN.cjs +10 -0
  295. package/dist/{memory-Q54CESNM.js → memory-K2P3CDCH.js} +2 -2
  296. package/dist/{model-6AJ77PJG.js → model-DEG22OWA.js} +2 -2
  297. package/dist/model-OSD74T7Z.cjs +10 -0
  298. package/dist/new-4NWBOATU.cjs +12 -0
  299. package/dist/{new-ZXHEWC2S.js → new-KJAP2MB6.js} +3 -3
  300. package/dist/onboarding-2U5WE2OA.js +39 -0
  301. package/dist/onboarding-5DZFCO5Q.cjs +39 -0
  302. package/dist/permissions-KY5I6YQ3.cjs +10 -0
  303. package/dist/{permissions-YHJMVA6L.js → permissions-TKYON7PP.js} +2 -2
  304. package/dist/{plan-YYUAXPTL.js → plan-DYHHLZSS.js} +1 -1
  305. package/dist/plan-PYKP652W.cjs +13 -0
  306. package/dist/quit-GSKJL42O.js +14 -0
  307. package/dist/quit-TQSRTBUT.cjs +14 -0
  308. package/dist/{registry-34GL6BNJ.js → registry-EZ4V4TUQ.js} +1339 -1
  309. package/dist/{registry-V24W7YK6.cjs → registry-LCWYI4IB.cjs} +1378 -40
  310. package/dist/resume-4VWJXARX.cjs +17 -0
  311. package/dist/resume-TLHWWWFN.js +17 -0
  312. package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
  313. package/dist/review-XLJEUH5K.cjs +9 -0
  314. package/dist/{rpc-S3DGW6KV.js → rpc-3DLQBDWU.js} +301 -130
  315. package/dist/{rpc-NPS3PU4O.cjs → rpc-O36WUU3L.cjs} +399 -228
  316. package/dist/search-DSX2CY4A.cjs +22 -0
  317. package/dist/search-I3QUDUQL.js +22 -0
  318. package/dist/sessionBranching-DVNOUWJT.cjs +19 -0
  319. package/dist/sessionBranching-FKV4CR36.js +19 -0
  320. package/dist/sessions-3JUOT3ED.cjs +10 -0
  321. package/dist/{sessions-IYAXMK23.js → sessions-VWMDIPOS.js} +2 -2
  322. package/dist/settings-FT2LZZUV.js +45 -0
  323. package/dist/settings-RL4KNWHB.cjs +45 -0
  324. package/dist/setup-HQEJVOYT.js +32 -0
  325. package/dist/setup-MN54LKOL.cjs +32 -0
  326. package/dist/share-BUAFZNBX.cjs +17 -0
  327. package/dist/share-CGB6MAVJ.js +17 -0
  328. package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
  329. package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
  330. package/dist/{skills-VWOMV3CR.js → skills-7DKR3HRZ.js} +8 -8
  331. package/dist/{skills-MVIZNHT4.js → skills-BBBENOEY.js} +9 -9
  332. package/dist/skills-OQM7IHAF.cjs +29 -0
  333. package/dist/{skills-GGMZOVIE.cjs → skills-RA2PKL63.cjs} +10 -10
  334. package/dist/{skills-install-VTAMCNNY.cjs → skills-install-D7K476SL.cjs} +16 -16
  335. package/dist/{skills-install-QBA5RCV6.js → skills-install-T4SOKJSL.js} +9 -9
  336. package/dist/skills-new-S33NGEU3.js +18 -0
  337. package/dist/skills-new-UVYH53MD.cjs +18 -0
  338. package/dist/slashCommands-MWOUDSQP.js +111 -0
  339. package/dist/slashCommands-XASURUTV.cjs +111 -0
  340. package/dist/squad-PIIYDFVH.cjs +15 -0
  341. package/dist/squad-VHYOVEJP.js +15 -0
  342. package/dist/status-GHFTXQBL.js +25 -0
  343. package/dist/status-WXMIJIU3.cjs +25 -0
  344. package/dist/statusline-2K7AC6ZQ.js +21 -0
  345. package/dist/statusline-GROI4HOC.cjs +21 -0
  346. package/dist/sync-254WF6JI.cjs +42 -0
  347. package/dist/sync-2DIZN4EH.cjs +24 -0
  348. package/dist/{sync-7BILIQHP.js → sync-J6I2ZUKQ.js} +6 -4
  349. package/dist/{sync-7OKF6636.js → sync-Z3LVSEEV.js} +8 -5
  350. package/dist/{teammate-J6PHGL23.cjs → teammate-EXR76PEQ.cjs} +9 -8
  351. package/dist/{teammate-GZQSCIMS.js → teammate-K4DAOFEQ.js} +8 -7
  352. package/dist/templates-ARG2VRWW.cjs +11 -0
  353. package/dist/templates-UGVZV3KJ.js +11 -0
  354. package/dist/theme-MVQDSU47.js +23 -0
  355. package/dist/theme-QAKEYWJG.cjs +23 -0
  356. package/dist/ui/questionModal.cjs +6 -6
  357. package/dist/ui/questionModal.js +5 -5
  358. package/dist/{undo-SZEHLX7X.js → undo-5AU47JHF.js} +2 -2
  359. package/dist/undo-ME6WKUXZ.cjs +10 -0
  360. package/dist/usage-QTKO2YMD.js +25 -0
  361. package/dist/usage-TYNJKVER.cjs +25 -0
  362. package/package.json +10 -4
  363. package/dist/AgentRegistry-EGBDIUAK.cjs +0 -10
  364. package/dist/AgentRegistry-XPWSVO3Q.js +0 -10
  365. package/dist/CommunitySkillsCache-2OIUV227.cjs +0 -8
  366. package/dist/LearnAdvisor-46FG2XIP.js +0 -9
  367. package/dist/LearnAdvisor-XBRDNAGH.cjs +0 -9
  368. package/dist/MemoryManager-34L4YOKA.cjs +0 -8
  369. package/dist/MemoryManager-WJMLPWGU.js +0 -8
  370. package/dist/NVIDIAProvider-MVTL62PR.cjs +0 -14
  371. package/dist/PermissionManager-5OOJ7FAT.cjs +0 -11
  372. package/dist/ProviderFactory-C3YPXTDD.cjs +0 -11
  373. package/dist/SessionManager-WAPTFMDO.cjs +0 -10
  374. package/dist/SkillsRegistry-7AJP74GJ.cjs +0 -9
  375. package/dist/SubAgent-FDIH3DXB.js +0 -11
  376. package/dist/SubAgent-HVL2ICVZ.cjs +0 -11
  377. package/dist/SyncApiClient-VMBOLQ6H.cjs +0 -11
  378. package/dist/about-FCAX37YC.cjs +0 -14
  379. package/dist/actionExecutor-33I47NZS.js +0 -24
  380. package/dist/actionExecutor-4YBMR3YH.cjs +0 -24
  381. package/dist/add-dir-7SS6KSH5.cjs +0 -11
  382. package/dist/agent-DMRUFU4M.cjs +0 -116
  383. package/dist/agent-WCJEYQJT.js +0 -116
  384. package/dist/agents-CHROO3VU.cjs +0 -17
  385. package/dist/agents-UVDUL65K.js +0 -17
  386. package/dist/agents-new-AUBWSOXP.js +0 -17
  387. package/dist/agents-new-Y562WC47.cjs +0 -17
  388. package/dist/autoSkill-YOLLFTP2.cjs +0 -20
  389. package/dist/automode-DBLKTTKD.cjs +0 -10
  390. package/dist/chrome-ATC4OO5I.cjs +0 -20
  391. package/dist/chrome-O62WXV7F.js +0 -20
  392. package/dist/chrome-XHJLCO4M.cjs +0 -50
  393. package/dist/chunk-6XVVIY54.cjs +0 -256
  394. package/dist/chunk-AU6JAGZJ.cjs +0 -231
  395. package/dist/chunk-N6O3XUZ2.cjs +0 -23
  396. package/dist/chunk-VDWJMWDF.js +0 -256
  397. package/dist/clear-33TWQ2ES.cjs +0 -12
  398. package/dist/communityInstaller-TWMGPSYM.cjs +0 -22
  399. package/dist/completion-IIZMHXYP.cjs +0 -17
  400. package/dist/config-KL6WU7R2.cjs +0 -20
  401. package/dist/constants-RLMJ5D5P.cjs +0 -21
  402. package/dist/export-WLGNWEMJ.cjs +0 -15
  403. package/dist/feedback-G635NCLJ.js +0 -18
  404. package/dist/feedback-LLMK3TZH.cjs +0 -18
  405. package/dist/help-BAXLP2M2.cjs +0 -12
  406. package/dist/history-6HOJSEMT.cjs +0 -14
  407. package/dist/hooks-XVFU67T2.cjs +0 -18
  408. package/dist/i18n-MUJMKTFM.cjs +0 -33
  409. package/dist/ide-CCQ33PGC.cjs +0 -15
  410. package/dist/ide-VLVFBZ5F.js +0 -15
  411. package/dist/import-J46F54JY.cjs +0 -10
  412. package/dist/init-EE5Y7RBL.cjs +0 -10
  413. package/dist/inputPrompt-IIFKCX5Q.cjs +0 -90
  414. package/dist/language-CVLPB7OV.js +0 -21
  415. package/dist/language-ZTWFHUSV.cjs +0 -21
  416. package/dist/learn-PON7I5QS.js +0 -23
  417. package/dist/learn-XLRSVNA3.cjs +0 -23
  418. package/dist/login-223QTGBG.cjs +0 -26
  419. package/dist/login-6IKTBUBY.js +0 -26
  420. package/dist/logout-RN2AG6SI.js +0 -23
  421. package/dist/logout-U3M4FFX7.cjs +0 -23
  422. package/dist/mcp-NUQ76QQB.cjs +0 -20
  423. package/dist/memory-CYMDQ2YC.cjs +0 -10
  424. package/dist/model-IDRCKDML.cjs +0 -10
  425. package/dist/new-7LEWOUF2.cjs +0 -12
  426. package/dist/onboarding-FXX7YHSJ.cjs +0 -35
  427. package/dist/onboarding-JYNMK6NI.js +0 -35
  428. package/dist/permissions-YBNSANIA.cjs +0 -10
  429. package/dist/plan-XEJMOT55.cjs +0 -13
  430. package/dist/quit-B43SJ6E4.cjs +0 -10
  431. package/dist/quit-GWTNHQSP.js +0 -10
  432. package/dist/resume-DYVOQN5L.cjs +0 -16
  433. package/dist/resume-M25UQKOX.js +0 -16
  434. package/dist/review-UWHWQHCB.cjs +0 -9
  435. package/dist/search-CPX4PWHP.js +0 -20
  436. package/dist/search-VUF3M4N3.cjs +0 -20
  437. package/dist/sessions-JODKER5D.cjs +0 -10
  438. package/dist/settings-55BNW6BF.js +0 -33
  439. package/dist/settings-BKTS7OMC.cjs +0 -33
  440. package/dist/setup-IRC5HQG2.js +0 -29
  441. package/dist/setup-MMQ7TWOP.cjs +0 -29
  442. package/dist/share-6JRQECAH.cjs +0 -17
  443. package/dist/share-YM5MJKMO.js +0 -17
  444. package/dist/skills-LWSOKOSH.cjs +0 -29
  445. package/dist/skills-new-GPL46YV2.js +0 -18
  446. package/dist/skills-new-L5BEZN5V.cjs +0 -18
  447. package/dist/slashCommands-FBPCIWM5.cjs +0 -95
  448. package/dist/slashCommands-FCWY5DXW.js +0 -95
  449. package/dist/status-3B5SDZPL.js +0 -17
  450. package/dist/status-TTGRF6NC.cjs +0 -17
  451. package/dist/sync-77CXVVTK.cjs +0 -21
  452. package/dist/sync-EH4K5U3N.cjs +0 -40
  453. package/dist/theme-64BYGJ57.cjs +0 -21
  454. package/dist/theme-YJE6HEON.js +0 -21
  455. package/dist/undo-PRTEGL2J.cjs +0 -10
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  showModal
3
- } from "./chunk-DLP436GI.js";
3
+ } from "./chunk-LOSXLH7P.js";
4
4
  import {
5
5
  saveConfig
6
- } from "./chunk-3UT7R3XV.js";
6
+ } from "./chunk-CM24K6ZT.js";
7
7
  import {
8
8
  CUSTOM_THEMES_DIR,
9
9
  builtInThemes,
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-JAQO6XDB.js";
17
17
  import {
18
18
  t
19
- } from "./chunk-CBFH2J3O.js";
19
+ } from "./chunk-SJQU2ZFR.js";
20
20
 
21
21
  // src/commands/theme.ts
22
22
  import chalk from "chalk";
@@ -1,7 +1,10 @@
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; } var _class;
2
2
 
3
+ var _chunkB55VCYSQcjs = require('./chunk-B55VCYSQ.cjs');
3
4
 
4
- var _chunkE26KKI46cjs = require('./chunk-E26KKI46.cjs');
5
+
6
+
7
+ var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
5
8
 
6
9
  // src/memory/MemoryManager.ts
7
10
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
@@ -12,13 +15,13 @@ var MemoryManager = (_class = class {
12
15
 
13
16
  __init() {this.projectMemoryDir = null}
14
17
  constructor(workspaceRoot) {;_class.prototype.__init.call(this);
15
- this.userMemoryDir = _chunkE26KKI46cjs.AUTOHAND_PATHS.memory;
18
+ this.userMemoryDir = _chunk3JURXAL6cjs.AUTOHAND_PATHS.memory;
16
19
  if (workspaceRoot) {
17
- this.projectMemoryDir = _path2.default.join(workspaceRoot, _chunkE26KKI46cjs.PROJECT_DIR_NAME, "memory");
20
+ this.projectMemoryDir = _path2.default.join(workspaceRoot, _chunk3JURXAL6cjs.PROJECT_DIR_NAME, "memory");
18
21
  }
19
22
  }
20
23
  setWorkspace(workspaceRoot) {
21
- this.projectMemoryDir = _path2.default.join(workspaceRoot, _chunkE26KKI46cjs.PROJECT_DIR_NAME, "memory");
24
+ this.projectMemoryDir = _path2.default.join(workspaceRoot, _chunk3JURXAL6cjs.PROJECT_DIR_NAME, "memory");
22
25
  }
23
26
  async initialize() {
24
27
  await _fsextra2.default.ensureDir(this.userMemoryDir);
@@ -55,6 +58,7 @@ var MemoryManager = (_class = class {
55
58
  const entryPath = _path2.default.join(dir, `${id}.json`);
56
59
  await _fsextra2.default.writeJson(entryPath, entry, { spaces: 2 });
57
60
  await this.updateIndex(level, entry);
61
+ _chunkB55VCYSQcjs.scheduleBackgroundSync.call(void 0, );
58
62
  return entry;
59
63
  }
60
64
  async updateMemory(id, content, level, tags) {
@@ -72,6 +76,7 @@ var MemoryManager = (_class = class {
72
76
  };
73
77
  await _fsextra2.default.writeJson(entryPath, updated, { spaces: 2 });
74
78
  await this.updateIndex(level, updated);
79
+ _chunkB55VCYSQcjs.scheduleBackgroundSync.call(void 0, );
75
80
  return updated;
76
81
  }
77
82
  async get(id, level) {
@@ -117,6 +122,7 @@ var MemoryManager = (_class = class {
117
122
  if (await _fsextra2.default.pathExists(entryPath)) {
118
123
  await _fsextra2.default.remove(entryPath);
119
124
  await this.removeFromIndex(level, id);
125
+ _chunkB55VCYSQcjs.scheduleBackgroundSync.call(void 0, );
120
126
  }
121
127
  }
122
128
  async findSimilar(content, level) {
@@ -0,0 +1,71 @@
1
+ // src/session/chatLog.ts
2
+ function decodeJsonStringLiteral(value) {
3
+ try {
4
+ return JSON.parse(`"${value}"`);
5
+ } catch {
6
+ return value;
7
+ }
8
+ }
9
+ function extractJsonStringField(raw, field) {
10
+ const match = raw.match(new RegExp(`"${field}"\\s*:\\s*"((?:\\\\.|[^"\\\\])*)"`, "s"));
11
+ return match?.[1] ? decodeJsonStringLiteral(match[1]) : null;
12
+ }
13
+ function getAssistantChatLogContent(content) {
14
+ const trimmed = content.trim();
15
+ if (!trimmed) {
16
+ return null;
17
+ }
18
+ try {
19
+ const parsed = JSON.parse(trimmed);
20
+ for (const field of ["finalResponse", "response", "content", "message"]) {
21
+ const value = parsed[field];
22
+ if (typeof value === "string" && value.trim()) {
23
+ return value.trim();
24
+ }
25
+ }
26
+ return null;
27
+ } catch {
28
+ const finalResponse = extractJsonStringField(trimmed, "finalResponse") ?? extractJsonStringField(trimmed, "response");
29
+ if (finalResponse?.trim()) {
30
+ return finalResponse.trim();
31
+ }
32
+ if (trimmed.startsWith("{") || trimmed.includes('"thought"')) {
33
+ return null;
34
+ }
35
+ return trimmed;
36
+ }
37
+ }
38
+ function buildSessionChatLog(messages) {
39
+ const chatMessages = [];
40
+ for (const message of messages) {
41
+ if (message.role === "user") {
42
+ const content = message.content.trim();
43
+ if (content) {
44
+ chatMessages.push({ role: "user", content });
45
+ }
46
+ continue;
47
+ }
48
+ if (message.role === "assistant") {
49
+ const content = getAssistantChatLogContent(message.content);
50
+ if (content) {
51
+ chatMessages.push({ role: "assistant", content });
52
+ }
53
+ }
54
+ }
55
+ return chatMessages;
56
+ }
57
+ function formatChatLogPreview(content, maxLength = 100) {
58
+ const singleLine = content.replace(/\n/g, " ").replace(/\s+/g, " ").trim();
59
+ return singleLine.length > maxLength ? `${singleLine.slice(0, maxLength)}...` : singleLine;
60
+ }
61
+
62
+ export {
63
+ getAssistantChatLogContent,
64
+ buildSessionChatLog,
65
+ formatChatLogPreview
66
+ };
67
+ /**
68
+ * @license
69
+ * Copyright 2026 Autohand AI LLC
70
+ * SPDX-License-Identifier: Apache-2.0
71
+ */
@@ -0,0 +1,388 @@
1
+ import {
2
+ formatAccount
3
+ } from "./chunk-ZUYYHKQA.js";
4
+ import {
5
+ createCommandTheme
6
+ } from "./chunk-46MTALKD.js";
7
+ import {
8
+ getProviderConfig
9
+ } from "./chunk-CM24K6ZT.js";
10
+ import {
11
+ getFeatureState
12
+ } from "./chunk-H7HXRRHK.js";
13
+
14
+ // src/commands/usage.ts
15
+ import fs from "fs";
16
+ import os from "os";
17
+ import path from "path";
18
+
19
+ // src/core/context/types.ts
20
+ var CONTEXT_ENV_VARS = {
21
+ /** Enable/disable context compaction ('true' | 'false'). */
22
+ CONTEXT_COMPACT: "AUTOHAND_CONTEXT_COMPACT",
23
+ /** Override context window size (number). */
24
+ CONTEXT_WINDOW: "AUTOHAND_CONTEXT_WINDOW",
25
+ /** Tokens to reserve for model output (number). */
26
+ RESERVE_TOKENS: "AUTOHAND_RESERVE_TOKENS"
27
+ };
28
+
29
+ // src/core/context/tokenizer.ts
30
+ var MODEL_CONTEXT = {
31
+ "anthropic/claude-4-sonnet": 2e5,
32
+ "anthropic/claude-3-opus": 2e5,
33
+ "anthropic/claude-3-haiku": 2e5,
34
+ "anthropic/claude-opus-4": 2e5,
35
+ "anthropic/claude-opus-4-7": 1e6,
36
+ "openai/gpt-4o-mini": 128e3,
37
+ "openai/gpt-4o": 128e3,
38
+ "openai/gpt-4.1": 2e5,
39
+ "openai/o1": 2e5,
40
+ "openai/o1-mini": 128e3,
41
+ "tencent/hy3-preview:free": 262144,
42
+ "tencent/hy3-preview-20260421:free": 262144,
43
+ "deepseek/deepseek-r1": 64e3,
44
+ "deepseek/deepseek-r1-0528-qwen3-8b:free": 8e3,
45
+ "deepseek/deepseek-coder": 16e3
46
+ };
47
+ var SAFETY_MARGIN = 0.9;
48
+ var CONTEXT_WARNING_THRESHOLD = 0.8;
49
+ var CONTEXT_CRITICAL_THRESHOLD = 0.9;
50
+ function parseContextWindowOverride(value) {
51
+ if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
52
+ return void 0;
53
+ }
54
+ return Math.floor(value);
55
+ }
56
+ function normalizeModelId(model) {
57
+ return model.trim().toLowerCase().replace(/^openai\//, "").replace(/^google\//, "").replace(/^deepseek\//, "").replace(/^zai\//, "").replace(/^sakana\//, "");
58
+ }
59
+ function inferContextWindow(model) {
60
+ const normalized = normalizeModelId(model);
61
+ if (normalized.startsWith("gpt-5.5")) return 105e4;
62
+ if (normalized.startsWith("gpt-5.4") && !normalized.includes("mini") && !normalized.includes("nano")) return 105e4;
63
+ if (normalized.startsWith("gpt-5.4-mini") || normalized.startsWith("gpt-5.4-nano") || normalized.startsWith("gpt-5.3-codex") || normalized === "gpt-5" || normalized.startsWith("gpt-5-mini") || normalized.startsWith("gpt-5-nano")) {
64
+ return 4e5;
65
+ }
66
+ if (normalized.startsWith("gpt-5.3-chat")) return 128e3;
67
+ if (normalized.startsWith("gemini-3.1-flash-image")) return 128e3;
68
+ if (normalized.startsWith("gemini-3-pro-image")) return 65e3;
69
+ if (normalized.startsWith("gemini-3.1-pro") || normalized.startsWith("gemini-3.1-flash-lite") || normalized.startsWith("gemini-3-flash")) {
70
+ return 1e6;
71
+ }
72
+ if (normalized.startsWith("deepseek-v4")) return 1e6;
73
+ if (normalized.startsWith("glm-5.2")) return 1e6;
74
+ if (normalized.startsWith("glm-5.1")) return 2e5;
75
+ if (normalized === "fugu" || normalized === "fugu-ultra") return 1e6;
76
+ return void 0;
77
+ }
78
+ function getContextWindow(model, configuredContextWindow) {
79
+ const envOverride = process.env[CONTEXT_ENV_VARS.CONTEXT_WINDOW];
80
+ if (envOverride) {
81
+ const parsed = parseInt(envOverride, 10);
82
+ if (!isNaN(parsed) && parsed > 0) return parsed;
83
+ }
84
+ const configured = parseContextWindowOverride(configuredContextWindow);
85
+ if (configured) return configured;
86
+ const normalized = model.toLowerCase();
87
+ if (MODEL_CONTEXT[normalized]) {
88
+ return MODEL_CONTEXT[normalized];
89
+ }
90
+ const inferred = inferContextWindow(model);
91
+ if (inferred) return inferred;
92
+ const fuzzy = Object.entries(MODEL_CONTEXT).find(
93
+ ([name]) => normalized.includes(name) || name.includes(normalized.split("/").pop() ?? "")
94
+ );
95
+ return fuzzy ? fuzzy[1] : 128e3;
96
+ }
97
+ function getModelFamily(model) {
98
+ const normalized = model.toLowerCase();
99
+ if (normalized.includes("claude")) return "claude";
100
+ if (normalized.includes("gpt-4") || normalized.includes("gpt-5") || normalized.includes("o1") || normalized.includes("o3")) return "openai";
101
+ if (normalized.includes("gemini")) return "gemini";
102
+ if (normalized.includes("deepseek")) return "deepseek";
103
+ return "default";
104
+ }
105
+ function estimateTokens(text, modelFamily) {
106
+ if (!text) return 0;
107
+ const codeLikeChars = text.match(/[{}[\]":\\]/g)?.length ?? 0;
108
+ const codeLikeRatio = text.length > 200 && codeLikeChars >= 4 ? 0.65 : 1;
109
+ const baseRatio = {
110
+ openai: 4,
111
+ claude: 3.5,
112
+ gemini: 4,
113
+ deepseek: 3,
114
+ default: 3.5
115
+ };
116
+ const ratio = (baseRatio[modelFamily ?? "default"] ?? 3.5) * codeLikeRatio;
117
+ return Math.ceil(text.length / ratio);
118
+ }
119
+ function estimateMessageTokens(message, modelFamily) {
120
+ const structureOverhead = 10;
121
+ let tokens = structureOverhead;
122
+ tokens += estimateTokens(message.content ?? "", modelFamily);
123
+ if (message.tool_calls) {
124
+ for (const call of message.tool_calls) {
125
+ tokens += 5;
126
+ tokens += estimateTokens(call.function.name, modelFamily);
127
+ tokens += estimateTokens(call.function.arguments, modelFamily);
128
+ }
129
+ }
130
+ return tokens;
131
+ }
132
+ function estimateMessagesTokens(messages, modelFamily) {
133
+ return messages.reduce(
134
+ (acc, message) => acc + estimateMessageTokens(message, modelFamily),
135
+ 0
136
+ );
137
+ }
138
+ function estimateToolsTokens(tools, modelFamily) {
139
+ if (!tools || tools.length === 0) return 0;
140
+ let tokens = 0;
141
+ for (const tool of tools) {
142
+ tokens += estimateTokens(tool.name, modelFamily);
143
+ tokens += estimateTokens(tool.description, modelFamily);
144
+ if (tool.parameters) {
145
+ const paramJson = JSON.stringify(tool.parameters);
146
+ tokens += estimateTokens(paramJson, modelFamily);
147
+ }
148
+ tokens += 35;
149
+ }
150
+ return tokens;
151
+ }
152
+ function calculateContextUsage(messages, tools, model, outputBudget = 16e3, configuredContextWindow) {
153
+ const envReserve = process.env[CONTEXT_ENV_VARS.RESERVE_TOKENS];
154
+ if (envReserve) {
155
+ const parsed = parseInt(envReserve, 10);
156
+ if (!isNaN(parsed) && parsed > 0) outputBudget = parsed;
157
+ }
158
+ const modelFamily = getModelFamily(model);
159
+ const messagesTokens = estimateMessagesTokens(messages, modelFamily);
160
+ const toolsTokens = estimateToolsTokens(tools, modelFamily);
161
+ const totalTokens = messagesTokens + toolsTokens;
162
+ const contextWindow = getContextWindow(model, configuredContextWindow);
163
+ const cappedOutputBudget = Math.min(outputBudget, Math.floor(contextWindow * 0.25));
164
+ const effectiveWindow = contextWindow - cappedOutputBudget;
165
+ const safeWindow = Math.floor(effectiveWindow * SAFETY_MARGIN);
166
+ const usagePercent = totalTokens / effectiveWindow;
167
+ return {
168
+ totalTokens,
169
+ messagesTokens,
170
+ toolsTokens,
171
+ contextWindow,
172
+ safeWindow,
173
+ usagePercent,
174
+ isWarning: usagePercent >= CONTEXT_WARNING_THRESHOLD,
175
+ isCritical: usagePercent >= CONTEXT_CRITICAL_THRESHOLD,
176
+ isExceeded: totalTokens >= safeWindow,
177
+ remainingTokens: Math.max(0, safeWindow - totalTokens)
178
+ };
179
+ }
180
+
181
+ // src/commands/usage.ts
182
+ var USAGE_V2_FLAG = "usage_v2";
183
+ var metadata = {
184
+ command: "/usage",
185
+ description: "Show model, provider, context, and usage limits",
186
+ implemented: true
187
+ };
188
+ function clampPercent(value) {
189
+ if (!Number.isFinite(value)) return 100;
190
+ return Math.max(0, Math.min(100, Math.round(value)));
191
+ }
192
+ function formatPath(value) {
193
+ const home = os.homedir();
194
+ if (value === home) {
195
+ return "~";
196
+ }
197
+ if (value.startsWith(`${home}${path.sep}`)) {
198
+ return `~${value.slice(home.length)}`;
199
+ }
200
+ return value;
201
+ }
202
+ function formatCompactNumber(value) {
203
+ if (!Number.isFinite(value) || value < 0) {
204
+ return "0";
205
+ }
206
+ if (value >= 1e6) {
207
+ const millions = value / 1e6;
208
+ return `${Number.isInteger(millions) ? millions.toFixed(0) : millions.toFixed(1)}M`;
209
+ }
210
+ if (value >= 1e3) {
211
+ const thousands = value / 1e3;
212
+ return `${Number.isInteger(thousands) ? thousands.toFixed(0) : thousands.toFixed(1)}K`;
213
+ }
214
+ return String(Math.round(value));
215
+ }
216
+ function formatPermissionMode(mode) {
217
+ switch (mode ?? "interactive") {
218
+ case "interactive":
219
+ return "Workspace (on-request)";
220
+ case "unrestricted":
221
+ return "Workspace (full access)";
222
+ case "restricted":
223
+ return "Read-only (restricted)";
224
+ case "external":
225
+ return "External approval";
226
+ }
227
+ }
228
+ function resolveProviderSettings(config, provider) {
229
+ if (!config || !provider) {
230
+ return void 0;
231
+ }
232
+ return getProviderConfig(config, provider) ?? void 0;
233
+ }
234
+ function resolveActiveProvider(ctx) {
235
+ return ctx.config?.provider ?? ctx.provider ?? "openrouter";
236
+ }
237
+ function resolveActiveModel(ctx, provider) {
238
+ const settings = resolveProviderSettings(ctx.config, provider);
239
+ return settings?.model ?? ctx.model;
240
+ }
241
+ function resolveReasoningEffort(config, provider) {
242
+ return resolveProviderSettings(config, provider)?.reasoningEffort;
243
+ }
244
+ function resolveContextWindow(ctx, provider, model) {
245
+ const settings = resolveProviderSettings(ctx.config, provider);
246
+ return ctx.getContextWindow?.() ?? settings?.contextWindow ?? getContextWindow(model, settings?.contextWindow);
247
+ }
248
+ function resolveContextTokensUsed(ctx, contextWindow, percentLeft) {
249
+ const reported = ctx.getTotalTokensUsed?.();
250
+ if (typeof reported === "number" && Number.isFinite(reported) && reported > 0) {
251
+ return Math.round(reported);
252
+ }
253
+ return Math.round(contextWindow * ((100 - percentLeft) / 100));
254
+ }
255
+ function resolveAgentsFile(workspaceRoot) {
256
+ return fs.existsSync(path.join(workspaceRoot, "AGENTS.md")) ? "AGENTS.md" : "none";
257
+ }
258
+ function resolveAccount(config) {
259
+ const account = formatAccount(config, "");
260
+ if (account) {
261
+ return account;
262
+ }
263
+ if (config?.openai?.authMode === "chatgpt" && config.openai.chatgptAuth?.accountId) {
264
+ return `ChatGPT account ${config.openai.chatgptAuth.accountId}`;
265
+ }
266
+ return "not signed in";
267
+ }
268
+ function isUsageV2Enabled(ctx) {
269
+ const localDefault = ctx.config ? getFeatureState(ctx.config, USAGE_V2_FLAG)?.enabled ?? false : false;
270
+ return ctx.isFeatureEnabled?.(USAGE_V2_FLAG, localDefault) ?? localDefault;
271
+ }
272
+ function gatherUsageDashboardData(ctx) {
273
+ const provider = resolveActiveProvider(ctx);
274
+ const model = resolveActiveModel(ctx, provider);
275
+ const contextPercentLeft = clampPercent(ctx.getContextPercentLeft?.() ?? 100);
276
+ const contextWindow = resolveContextWindow(ctx, provider, model);
277
+ const currentSession = ctx.sessionManager.getCurrentSession();
278
+ const usageLimits = ctx.getUsageLimits?.() ?? [];
279
+ return {
280
+ model,
281
+ provider,
282
+ directory: formatPath(ctx.workspaceRoot),
283
+ permissions: formatPermissionMode(ctx.config?.permissions?.mode),
284
+ agentsFile: resolveAgentsFile(ctx.workspaceRoot),
285
+ account: resolveAccount(ctx.config),
286
+ sessionId: currentSession?.metadata.sessionId ?? "none",
287
+ contextPercentLeft,
288
+ contextWindow,
289
+ contextTokensUsed: resolveContextTokensUsed(ctx, contextWindow, contextPercentLeft),
290
+ tokenUsageStatus: ctx.getTokenUsageStatus?.() ?? "actual",
291
+ reasoningEffort: resolveReasoningEffort(ctx.config, provider),
292
+ usageLimits
293
+ };
294
+ }
295
+ function formatProgressBar(percentLeft, width = 24) {
296
+ const emptySlots = Math.round(percentLeft / 100 * width);
297
+ const usedSlots = width - emptySlots;
298
+ return `[${"\u2588".repeat(emptySlots)}${"\u2591".repeat(usedSlots)}]`;
299
+ }
300
+ function formatInfoRow(label, value, labelWidth) {
301
+ const theme = createCommandTheme();
302
+ return `${theme.muted(label.padEnd(labelWidth))} ${value}`;
303
+ }
304
+ function formatModel(data) {
305
+ if (!data.reasoningEffort) {
306
+ return data.model;
307
+ }
308
+ return `${data.model} ${createCommandTheme().muted(`(reasoning ${data.reasoningEffort})`)}`;
309
+ }
310
+ function formatContextSummary(data) {
311
+ const used = formatCompactNumber(data.contextTokensUsed);
312
+ const window = formatCompactNumber(data.contextWindow);
313
+ const suffix = data.tokenUsageStatus === "unavailable" ? " estimated" : "";
314
+ return `${data.contextPercentLeft}% left ${createCommandTheme().muted(`(${used} used / ${window}${suffix})`)}`;
315
+ }
316
+ function formatUsageLimitRow(row, labelWidth) {
317
+ if (row.unavailableReason) {
318
+ return formatInfoRow(`${row.label}:`, row.unavailableReason, labelWidth);
319
+ }
320
+ const percent = clampPercent(row.percentLeft ?? 100);
321
+ const reset = row.resetLabel ? createCommandTheme().muted(` (${row.resetLabel})`) : "";
322
+ const usage2 = typeof row.used === "number" && typeof row.limit === "number" ? createCommandTheme().muted(` (${formatCompactNumber(row.used)} used / ${formatCompactNumber(row.limit)})`) : "";
323
+ return formatInfoRow(`${row.label}:`, `${formatProgressBar(percent)} ${percent}% left${reset}${usage2}`, labelWidth);
324
+ }
325
+ function formatUsageDashboard(data) {
326
+ const labelWidth = 24;
327
+ const providerLimitRows = data.usageLimits.length > 0 ? data.usageLimits : [{ label: String(data.provider), unavailableReason: "not reported by provider" }];
328
+ const lines = [
329
+ formatInfoRow("Model:", formatModel(data), labelWidth),
330
+ formatInfoRow("Provider:", String(data.provider), labelWidth),
331
+ formatInfoRow("Directory:", data.directory, labelWidth),
332
+ formatInfoRow("Permissions:", data.permissions, labelWidth),
333
+ formatInfoRow("Agents.md:", data.agentsFile, labelWidth),
334
+ formatInfoRow("Account:", data.account, labelWidth),
335
+ formatInfoRow("Session:", data.sessionId, labelWidth),
336
+ "",
337
+ formatInfoRow("Context window:", formatContextSummary(data), labelWidth),
338
+ formatInfoRow("", formatProgressBar(data.contextPercentLeft), labelWidth),
339
+ "",
340
+ formatInfoRow("Provider limits:", "", labelWidth).trimEnd(),
341
+ ...providerLimitRows.map((row) => formatUsageLimitRow(row, labelWidth))
342
+ ];
343
+ return lines.join("\n");
344
+ }
345
+ async function usage(ctx) {
346
+ if (!isUsageV2Enabled(ctx)) {
347
+ return "The /usage dashboard is behind usage_v2. Run /experiments enable usage_v2, then /usage again. No restart required.";
348
+ }
349
+ await ctx.trackFeatureActivation?.(USAGE_V2_FLAG, {
350
+ provider: ctx.provider,
351
+ model: ctx.model
352
+ });
353
+ return formatUsageDashboard(gatherUsageDashboardData(ctx));
354
+ }
355
+
356
+ export {
357
+ CONTEXT_ENV_VARS,
358
+ getContextWindow,
359
+ estimateMessageTokens,
360
+ estimateMessagesTokens,
361
+ calculateContextUsage,
362
+ USAGE_V2_FLAG,
363
+ metadata,
364
+ gatherUsageDashboardData,
365
+ formatUsageDashboard,
366
+ usage
367
+ };
368
+ /**
369
+ * @license
370
+ * Copyright 2025 Autohand AI LLC
371
+ * SPDX-License-Identifier: Apache-2.0
372
+ *
373
+ * Domain types for the context-compaction module.
374
+ */
375
+ /**
376
+ * @license
377
+ * Copyright 2025 Autohand AI LLC
378
+ * SPDX-License-Identifier: Apache-2.0
379
+ *
380
+ * Token estimation, context window lookup, and usage calculation.
381
+ * Moved from src/utils/context.ts — this is the canonical location.
382
+ * The old barrel re-exports for backward compatibility.
383
+ */
384
+ /**
385
+ * @license
386
+ * Copyright 2026 Autohand AI LLC
387
+ * SPDX-License-Identifier: Apache-2.0
388
+ */