autohand-cli 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/README.md +103 -79
  2. package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
  3. package/dist/AgentRegistry-JBXZUPML.js +18 -0
  4. package/dist/{CommunitySkillsCache-ZACDPD4J.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
  5. package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
  6. package/dist/{HookManager-2S6AHOC3.js → HookManager-BELBPQQI.js} +1 -1
  7. package/dist/{HookManager-TVEQI5ZU.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
  8. package/dist/{ImportWizard-AF2XL6DS.cjs → ImportWizard-U6CIJREW.cjs} +12 -12
  9. package/dist/{ImportWizard-AEBMAKXE.js → ImportWizard-VJFSWSUQ.js} +3 -3
  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-SJPY3ONR.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
  15. package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
  16. package/dist/{PermissionManager-MT7KBNNR.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-RB4RVAF6.js → ProviderFactory-XUT6BSGB.js} +4 -3
  20. package/dist/SessionManager-LGPQIA57.cjs +10 -0
  21. package/dist/{SessionManager-554PHVPC.js → SessionManager-OR4KDDDS.js} +2 -2
  22. package/dist/{SkillsRegistry-NHHMIUYJ.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/{about-3USFSGOH.js → about-OYVGQMJJ.js} +3 -3
  27. package/dist/{about-QR52U5DD.cjs → about-U2BH7HDR.cjs} +4 -4
  28. package/dist/{acp-5Y2W6OZP.js → acp-JWHGXZL5.js} +169 -103
  29. package/dist/{acp-GSYE75OB.cjs → acp-S37JOBCS.cjs} +184 -118
  30. package/dist/{actionExecutor-KHUU3Z3Q.cjs → actionExecutor-2QEPMELQ.cjs} +13 -13
  31. package/dist/{actionExecutor-PLQJZLZV.js → actionExecutor-6NCCORRB.js} +12 -12
  32. package/dist/add-dir-KFUHSIR2.cjs +11 -0
  33. package/dist/{add-dir-HCERJDBR.js → add-dir-MM2BM2Z2.js} +2 -2
  34. package/dist/agent-DUIYLIVN.js +132 -0
  35. package/dist/agent-YYEHGDAK.cjs +132 -0
  36. package/dist/agents-GBGG4CW7.cjs +19 -0
  37. package/dist/agents-ZH34C72F.js +19 -0
  38. package/dist/agents-new-ERXLS7SB.cjs +17 -0
  39. package/dist/{agents-new-7GAQ25EK.js → agents-new-EVTGPTA4.js} +6 -6
  40. package/dist/{autoSkill-66PKCYTW.js → autoSkill-HEWKJ5JV.js} +2 -2
  41. package/dist/autoSkill-YL6PN6AV.cjs +20 -0
  42. package/dist/automode-4BJ7FNPL.cjs +10 -0
  43. package/dist/{automode-BUF3VGXU.js → automode-S4U7A7Q2.js} +2 -2
  44. package/dist/chrome-45ZXHL5N.cjs +22 -0
  45. package/dist/{chrome-Y3T7EIHG.js → chrome-BBSRVG6S.js} +2 -2
  46. package/dist/chrome-IFVZRHAT.cjs +50 -0
  47. package/dist/chrome-MYE6DNA2.js +22 -0
  48. package/dist/{chunk-45CHNQM6.cjs → chunk-24CEJYEG.cjs} +93 -31
  49. package/dist/{chunk-6JWCGQJU.cjs → chunk-255GIVM2.cjs} +6 -6
  50. package/dist/{chunk-D546G7DA.cjs → chunk-2BDSR2OW.cjs} +98 -75
  51. package/dist/{chunk-PGFLPURU.js → chunk-2BPIR7LA.js} +121 -4
  52. package/dist/{chunk-AOKXYGBQ.cjs → chunk-2NY7OHBF.cjs} +41 -26
  53. package/dist/chunk-2WUNHTXL.js +303 -0
  54. package/dist/{chunk-PQBYFEBL.cjs → chunk-34B6ZO6W.cjs} +124 -7
  55. package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
  56. package/dist/{chunk-3UC6DMFI.cjs → chunk-3CAXECWJ.cjs} +15 -15
  57. package/dist/{chunk-YWH55BWK.cjs → chunk-3CBYUBZC.cjs} +6 -9
  58. package/dist/chunk-3DF3GZQ7.js +277 -0
  59. package/dist/{chunk-KASXKDF2.cjs → chunk-3JURXAL6.cjs} +58 -7
  60. package/dist/{chunk-JV5HVCHU.cjs → chunk-3KWAP2Y3.cjs} +88 -9
  61. package/dist/{chunk-WPE2XHVX.js → chunk-3MCK6UBL.js} +1 -1
  62. package/dist/{chunk-U2QUMKCB.js → chunk-3TH7IK4M.js} +62 -9
  63. package/dist/{chunk-YXM6SA7P.js → chunk-3V77OB3W.js} +3 -3
  64. package/dist/{chunk-MZN6JBRZ.cjs → chunk-3Y5UEK7K.cjs} +4 -4
  65. package/dist/{chunk-BP37FVBM.js → chunk-4GPPSBEZ.js} +3 -3
  66. package/dist/{chunk-4XVLNOFA.js → chunk-5CMBAJ6K.js} +20 -3
  67. package/dist/{chunk-PNIAIOMZ.cjs → chunk-5YRXFBYZ.cjs} +35 -6
  68. package/dist/chunk-6AC2TT26.js +156 -0
  69. package/dist/{chunk-PSAH4ZQB.cjs → chunk-6EIQ6A6U.cjs} +2 -2
  70. package/dist/{chunk-YQDI753V.js → chunk-6HSEDXVF.js} +4 -4
  71. package/dist/{chunk-O5GI6SR3.js → chunk-6NUXK62F.js} +1 -1
  72. package/dist/{chunk-HVCIB4SW.cjs → chunk-6TGCAPYH.cjs} +62 -9
  73. package/dist/{chunk-HZWU6IO3.js → chunk-6W3SZCSP.js} +2 -5
  74. package/dist/{chunk-Q3BS6FPM.js → chunk-73LV3DDZ.js} +4 -4
  75. package/dist/{chunk-ZNGRLCFQ.js → chunk-7BGGLIQF.js} +83 -1
  76. package/dist/{chunk-ZNYZB7XY.cjs → chunk-7EEK7CRR.cjs} +83 -1
  77. package/dist/{chunk-HK5A54AV.cjs → chunk-7TO3PDMV.cjs} +48 -4
  78. package/dist/chunk-7UU22RSH.cjs +277 -0
  79. package/dist/{chunk-XNIMSVS6.cjs → chunk-A3GAM6FM.cjs} +11 -11
  80. package/dist/{chunk-W5QLA6WP.cjs → chunk-A7DJU75T.cjs} +8 -8
  81. package/dist/{chunk-7XTUL7ZD.cjs → chunk-AAAO4ERQ.cjs} +9 -9
  82. package/dist/{chunk-M5DK524Z.js → chunk-AAJLMP57.js} +2 -2
  83. package/dist/chunk-ABR756QN.js +529 -0
  84. package/dist/{chunk-OIGYWOL6.js → chunk-APFGDIPD.js} +3 -1
  85. package/dist/{chunk-PTTZI4QZ.js → chunk-APQYRMYL.js} +4 -4
  86. package/dist/{chunk-CO2AADYU.cjs → chunk-AZKOIF2G.cjs} +55 -17
  87. package/dist/{chunk-P6SLT2F4.cjs → chunk-AZLHUPNC.cjs} +2 -2
  88. package/dist/chunk-B55VCYSQ.cjs +30 -0
  89. package/dist/{chunk-JMJRFSNJ.js → chunk-BLQUMSM3.js} +1 -1
  90. package/dist/{chunk-MGNXABSU.cjs → chunk-BXKPX6K4.cjs} +9 -9
  91. package/dist/{chunk-MQQH4XQH.cjs → chunk-C66FN2LP.cjs} +4 -4
  92. package/dist/{chunk-CECH6QQP.js → chunk-CH7KUFAS.js} +10 -10
  93. package/dist/{chunk-PIXQ2AVM.cjs → chunk-CILSXOPI.cjs} +17 -17
  94. package/dist/{chunk-IEPLQ47J.js → chunk-CM24K6ZT.js} +89 -12
  95. package/dist/chunk-CMEZ42F2.cjs +303 -0
  96. package/dist/{chunk-X5P6QQOB.cjs → chunk-CNQKIWIS.cjs} +100 -23
  97. package/dist/{chunk-AQ5PVHOC.cjs → chunk-CSUGNNJY.cjs} +4 -3
  98. package/dist/{chunk-QRQF3556.js → chunk-D6HB3H3L.js} +25 -10
  99. package/dist/{chunk-XZVDYC5U.js → chunk-D7AYKVKW.js} +2 -2
  100. package/dist/{chunk-3UHRCHKB.cjs → chunk-DLCXWOWT.cjs} +23 -23
  101. package/dist/{chunk-CK4HAHVY.cjs → chunk-DMM2BKSV.cjs} +118 -25
  102. package/dist/{chunk-SPQ7QIQ6.js → chunk-DW3DPV77.js} +1 -1
  103. package/dist/chunk-ECQD2QC3.cjs +33 -0
  104. package/dist/{chunk-SNDDZG5H.js → chunk-EEYOS3UC.js} +90 -70
  105. package/dist/{chunk-DGBPWODD.js → chunk-EF2EN5CR.js} +2 -2
  106. package/dist/{chunk-M7B7RRBK.cjs → chunk-EFXFURDY.cjs} +138 -51
  107. package/dist/chunk-EK34UZPB.cjs +40 -0
  108. package/dist/{chunk-CRTCZ4WL.cjs → chunk-FJR6EZLO.cjs} +3834 -2337
  109. package/dist/{chunk-TYBPTKFT.js → chunk-FPO7YNPQ.js} +1 -1
  110. package/dist/{chunk-X3TI5TJJ.js → chunk-FS4I6BNR.js} +1 -1
  111. package/dist/{chunk-WNJXIACY.js → chunk-FSJ2MNOC.js} +3 -3
  112. package/dist/{chunk-44ZWOBTI.js → chunk-GEHZMC4G.js} +12 -9
  113. package/dist/{chunk-Y5BDE24P.cjs → chunk-GO6C2RAR.cjs} +3 -0
  114. package/dist/{chunk-XW3XCK4E.cjs → chunk-GSMR6V36.cjs} +4 -4
  115. package/dist/{chunk-H426KOGY.js → chunk-GSZWATME.js} +1 -1
  116. package/dist/{chunk-S5JNQIGL.cjs → chunk-GYLGCR6F.cjs} +5 -5
  117. package/dist/{chunk-ONVYXTUT.cjs → chunk-H3OOWNYQ.cjs} +3 -3
  118. package/dist/{chunk-V5ELP2XE.js → chunk-H65446XW.js} +110 -15
  119. package/dist/{chunk-LANGD5CO.js → chunk-H7HXRRHK.js} +45 -1
  120. package/dist/{chunk-RBXBH6EB.cjs → chunk-HN2JTDN5.cjs} +17 -17
  121. package/dist/{chunk-SOVR7S3T.cjs → chunk-HNXUZ5OY.cjs} +2 -2
  122. package/dist/{chunk-AZ47LKD5.cjs → chunk-HOYT3E65.cjs} +3 -3
  123. package/dist/{chunk-P4FUTSVK.js → chunk-HTPY5ESD.js} +3 -3
  124. package/dist/{chunk-5SFV2NCY.cjs → chunk-HVLWH2AF.cjs} +10 -10
  125. package/dist/{chunk-VQHSYAPZ.cjs → chunk-HZTEU4W5.cjs} +62 -93
  126. package/dist/{chunk-4XFHP2SN.cjs → chunk-I5T7LPFP.cjs} +7 -7
  127. package/dist/{chunk-ZPLCAXJW.js → chunk-IB5CJXE7.js} +7 -7
  128. package/dist/{chunk-KM7R5YPS.cjs → chunk-INNXFLDR.cjs} +9 -6
  129. package/dist/{chunk-2ESQR35E.cjs → chunk-JFLEP3T7.cjs} +10 -10
  130. package/dist/chunk-JJGDOBFL.js +40 -0
  131. package/dist/{chunk-5A7ZL64N.js → chunk-JSU46T6K.js} +1 -1
  132. package/dist/{chunk-NB6M6ESM.js → chunk-K6WN6BT4.js} +1 -1
  133. package/dist/{chunk-QQ64HEHP.cjs → chunk-KIQH3SMT.cjs} +34 -31
  134. package/dist/{chunk-MANJ67D3.js → chunk-KPRXHIE2.js} +52 -83
  135. package/dist/{chunk-6HF6XSCC.js → chunk-LIO3RX2Z.js} +2 -2
  136. package/dist/{chunk-NZ3ZWLUW.js → chunk-LOSXLH7P.js} +109 -16
  137. package/dist/{chunk-NZ7GCK7Y.cjs → chunk-LSOR72PB.cjs} +23 -23
  138. package/dist/{chunk-6AYJCDTA.js → chunk-MA3AVDCC.js} +47 -9
  139. package/dist/{chunk-PZZMIYII.js → chunk-ME3S2WIR.js} +3 -3
  140. package/dist/{chunk-2IW5YFJ4.js → chunk-NC2I2M4P.js} +4 -4
  141. package/dist/{chunk-AE2ILW25.cjs → chunk-NC4A4LVC.cjs} +13 -13
  142. package/dist/{chunk-EEHWALXA.js → chunk-NGEK5FCJ.js} +85 -3
  143. package/dist/{chunk-MMKZSJUN.js → chunk-NKW6CHXQ.js} +1 -1
  144. package/dist/{chunk-JB3JCYBJ.js → chunk-NOWCRKP2.js} +4 -3
  145. package/dist/{chunk-3ZOOH44N.js → chunk-NUB2LMB6.js} +2 -2
  146. package/dist/chunk-O246MKIW.cjs +267 -0
  147. package/dist/{chunk-SRMGWMQO.js → chunk-OGFWL2PS.js} +1 -1
  148. package/dist/{chunk-YISPVAXO.cjs → chunk-ONNGAR6W.cjs} +340 -597
  149. package/dist/{chunk-7WAUCLLQ.js → chunk-OOFR6A62.js} +33 -4
  150. package/dist/{chunk-4E7SHPNQ.js → chunk-OZ7FHO7J.js} +2 -2
  151. package/dist/{chunk-NV6LCD2I.cjs → chunk-P5EWGUI2.cjs} +109 -27
  152. package/dist/{chunk-YC5OBZQU.js → chunk-P6BQJPAI.js} +41 -18
  153. package/dist/{chunk-SHRLFX6F.js → chunk-PG2JIU5M.js} +57 -6
  154. package/dist/{chunk-6OECOAK5.cjs → chunk-PI27G2ED.cjs} +25 -8
  155. package/dist/{chunk-TR6NECEZ.js → chunk-PI7LRPL6.js} +1 -1
  156. package/dist/{chunk-GAOPJ5S3.cjs → chunk-PMPEC5HN.cjs} +18 -15
  157. package/dist/{chunk-5GCQ5UMV.cjs → chunk-PYUP7AKY.cjs} +14 -14
  158. package/dist/{chunk-S5QKRA2V.js → chunk-QC5Z3ZT5.js} +2 -2
  159. package/dist/chunk-QDO4L2A7.cjs +156 -0
  160. package/dist/{chunk-LFDPTJYF.cjs → chunk-QDXRI5AM.cjs} +1 -1
  161. package/dist/{chunk-26G7YGOW.js → chunk-QVXMSQOG.js} +84 -21
  162. package/dist/{chunk-SVVP4UUZ.cjs → chunk-R4UKBKDY.cjs} +11 -11
  163. package/dist/{chunk-HG3ZASBH.cjs → chunk-R75AWII3.cjs} +112 -17
  164. package/dist/{chunk-TE4SYTWR.cjs → chunk-RD5PLUIX.cjs} +8 -8
  165. package/dist/{chunk-FFHSCM5M.js → chunk-RGB34CV5.js} +3 -3
  166. package/dist/{chunk-SY2P3Z5W.cjs → chunk-RJCZLFHE.cjs} +96 -32
  167. package/dist/{chunk-22SCR3EV.cjs → chunk-RKWNM2BJ.cjs} +2 -2
  168. package/dist/{chunk-FBQJZKFX.js → chunk-RMVONICR.js} +3 -3
  169. package/dist/{chunk-PY73W5MQ.cjs → chunk-RPSYRJL7.cjs} +10 -4
  170. package/dist/{chunk-HXHE2KAO.js → chunk-RWKU2X7O.js} +7 -4
  171. package/dist/{chunk-NQZH5CR2.cjs → chunk-RZLEGVMH.cjs} +102 -5
  172. package/dist/{chunk-KMP6Y3LJ.js → chunk-S2L3Y677.js} +1 -1
  173. package/dist/{chunk-GSDV75A5.js → chunk-S7KVUIOS.js} +1 -1
  174. package/dist/{chunk-7PT646AL.cjs → chunk-SACJJ6NO.cjs} +5 -3
  175. package/dist/{chunk-LEZEWKPA.js → chunk-SJQU2ZFR.js} +96 -32
  176. package/dist/{chunk-65LRPW5W.js → chunk-SKAQKQFF.js} +12 -2
  177. package/dist/chunk-T4DXP5OP.js +30 -0
  178. package/dist/{chunk-EYHKL4QC.js → chunk-T6FTB6K2.js} +1 -1
  179. package/dist/{chunk-DNSD7DVJ.js → chunk-T6N6GRFT.js} +13 -10
  180. package/dist/{chunk-575PXZX7.js → chunk-TJFKA6A7.js} +82 -3
  181. package/dist/{chunk-HSWWM6AM.js → chunk-TJZUPS4Z.js} +34 -291
  182. package/dist/{chunk-DHUQZ53B.cjs → chunk-TLKHZ425.cjs} +2 -2
  183. package/dist/{chunk-VLGGMQUN.cjs → chunk-TQ24NLXO.cjs} +6 -6
  184. package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
  185. package/dist/{chunk-EA2MS25U.cjs → chunk-TZB5XADL.cjs} +4 -4
  186. package/dist/{chunk-U6PLSPMD.cjs → chunk-UAYXZXWU.cjs} +4 -4
  187. package/dist/{chunk-OV3T5MUH.cjs → chunk-UKBFNBDO.cjs} +11 -11
  188. package/dist/{chunk-SZD45IDG.js → chunk-UMJYX5KD.js} +101 -4
  189. package/dist/{chunk-B76FJKEJ.cjs → chunk-USKYTHDL.cjs} +69 -18
  190. package/dist/{chunk-NZQFKXM3.cjs → chunk-VAJUSZMC.cjs} +15 -15
  191. package/dist/{chunk-SDLY4X3G.js → chunk-VGQG4NBJ.js} +2 -2
  192. package/dist/{chunk-KWXGDSYT.js → chunk-VLUIVJ3J.js} +58 -7
  193. package/dist/{chunk-KJ26T7GM.cjs → chunk-VOBINVMV.cjs} +105 -42
  194. package/dist/{chunk-C5QIQQ37.js → chunk-VSHKKCSH.js} +16 -5
  195. package/dist/{chunk-L46OUKW5.cjs → chunk-VSZU3MGA.cjs} +28 -17
  196. package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
  197. package/dist/{chunk-UWZ4G3SQ.js → chunk-VXGYFX45.js} +4 -4
  198. package/dist/{chunk-C46B72VK.js → chunk-WH6YUQDB.js} +141 -54
  199. package/dist/{chunk-SFFEKZGC.js → chunk-WQ6TD55V.js} +2 -2
  200. package/dist/{chunk-7PJKTSRN.js → chunk-WQWECXTY.js} +3 -3
  201. package/dist/{chunk-DSSCERHI.cjs → chunk-WVDJUJH6.cjs} +2 -2
  202. package/dist/{chunk-JPFRI4L4.js → chunk-X24VIVDZ.js} +210 -26
  203. package/dist/{chunk-7IRQ7JEH.js → chunk-X4NRTLXD.js} +7 -1
  204. package/dist/{chunk-7MY4JHER.js → chunk-X53SHYCG.js} +2 -2
  205. package/dist/{chunk-RFUKZIJF.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
  206. package/dist/{chunk-WJYFLQ7G.cjs → chunk-Y47OJGLB.cjs} +3 -3
  207. package/dist/{chunk-HC2Q6A3E.cjs → chunk-Y4MN27V3.cjs} +361 -177
  208. package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
  209. package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
  210. package/dist/{chunk-63ANVAOJ.cjs → chunk-YMXYC777.cjs} +3 -3
  211. package/dist/{chunk-X7XMITIL.cjs → chunk-Z3GRWK6O.cjs} +8 -8
  212. package/dist/{chunk-3ICORF7M.cjs → chunk-Z5GG2KSL.cjs} +4 -4
  213. package/dist/{chunk-I2ZK3AOD.js → chunk-ZER7DYQK.js} +2 -2
  214. package/dist/{chunk-V3SZLWEQ.cjs → chunk-ZFDXZEZJ.cjs} +11 -11
  215. package/dist/{chunk-QBYGMMDD.js → chunk-ZFV4HJA6.js} +66 -4
  216. package/dist/chunk-ZHMYTI5D.cjs +529 -0
  217. package/dist/{chunk-4567QNRB.js → chunk-ZLR2TFBC.js} +3 -0
  218. package/dist/{chunk-OCATAKXV.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
  219. package/dist/{chunk-CCIDL4SA.js → chunk-ZVLVLDYN.js} +2915 -1418
  220. package/dist/clear-AJGXD2BB.cjs +12 -0
  221. package/dist/{clear-Y5TO3RZA.js → clear-HAHDSWKW.js} +3 -3
  222. package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
  223. package/dist/{communityInstaller-RVL4STPS.js → communityInstaller-OLKEUGMX.js} +5 -5
  224. package/dist/completion-G7Z436TF.cjs +17 -0
  225. package/dist/{completion-SE3XYG74.js → completion-ZS3AXJ6A.js} +4 -4
  226. package/dist/{config-7KPHKFTP.js → config-OWYAQPCX.js} +5 -4
  227. package/dist/config-W2BHT2QE.cjs +22 -0
  228. package/dist/{constants-EJFAWJQI.js → constants-AS6K67AA.js} +5 -3
  229. package/dist/constants-B4W5BT7F.cjs +23 -0
  230. package/dist/{export-BJVIDZC4.js → export-5HIU3KMD.js} +4 -4
  231. package/dist/export-GFD32UY2.cjs +15 -0
  232. package/dist/{extractSessionMemories-A2JX5WJ2.js → extractSessionMemories-K6ZVAW2F.js} +1 -1
  233. package/dist/{extractSessionMemories-XL3MS37F.cjs → extractSessionMemories-LLOIJR5U.cjs} +2 -2
  234. package/dist/feature-KP74CZ3F.cjs +14 -0
  235. package/dist/{feature-V4JF5TNJ.js → feature-OPNVMB2E.js} +2 -2
  236. package/dist/features-LT55MURX.cjs +24 -0
  237. package/dist/features-ZDIU26WX.js +24 -0
  238. package/dist/feedback-7WTJFQ6S.js +18 -0
  239. package/dist/feedback-CEOJ3453.cjs +18 -0
  240. package/dist/go-2CY5SZNR.js +16 -0
  241. package/dist/go-O2CSQON4.cjs +16 -0
  242. package/dist/goal-DL2N2AWT.cjs +16 -0
  243. package/dist/goal-IJS7VZSG.js +16 -0
  244. package/dist/help-RNOGDEBA.cjs +12 -0
  245. package/dist/{help-MLIROWKM.js → help-TCWD2IRH.js} +2 -2
  246. package/dist/{history-GQJ6RZD6.js → history-ATOR5OQV.js} +2 -2
  247. package/dist/history-UUSGX2AL.cjs +14 -0
  248. package/dist/{hooks-PPFHCF7T.js → hooks-R3Z5QKUP.js} +5 -5
  249. package/dist/hooks-RWM5UY67.cjs +18 -0
  250. package/dist/{i18n-Q7UZJRPL.js → i18n-4QI4TD4I.js} +1 -1
  251. package/dist/i18n-MFAEU5RV.cjs +33 -0
  252. package/dist/{ide-BUSVE54P.js → ide-6PBTCCUQ.js} +4 -4
  253. package/dist/ide-UE3G7NMQ.cjs +15 -0
  254. package/dist/{import-C7S6UJMW.cjs → import-2IG76KAN.cjs} +6 -4
  255. package/dist/{import-U47DXCA7.js → import-E47QL4DW.js} +2 -2
  256. package/dist/import-NQDNBFUL.cjs +10 -0
  257. package/dist/{import-3VBKI6BN.js → import-VQIHGJWS.js} +6 -4
  258. package/dist/index.cjs +444 -334
  259. package/dist/index.d.cts +38 -0
  260. package/dist/index.d.ts +38 -0
  261. package/dist/index.js +324 -214
  262. package/dist/init-DX3RDGDT.cjs +10 -0
  263. package/dist/{init-Q2O4R42R.js → init-Q54OAAFZ.js} +2 -2
  264. package/dist/{inputPrompt-3CFZDUBH.js → inputPrompt-V2VBDRM7.js} +2 -2
  265. package/dist/inputPrompt-WVGVWAHS.cjs +90 -0
  266. package/dist/language-I6KXAOXD.js +23 -0
  267. package/dist/language-XMIVOH5E.cjs +23 -0
  268. package/dist/learn-JPVVGTKU.js +23 -0
  269. package/dist/learn-NLSHI2MZ.cjs +23 -0
  270. package/dist/login-NABQYLYC.cjs +28 -0
  271. package/dist/login-XPOVFSWN.js +28 -0
  272. package/dist/logout-HNHCGB4Q.js +25 -0
  273. package/dist/logout-SKGDXJSW.cjs +25 -0
  274. package/dist/{mcp-AH3MMUBU.js → mcp-EN73YFGZ.js} +8 -7
  275. package/dist/mcp-TADZCPJQ.cjs +22 -0
  276. package/dist/{mcp-install-IA4ZS2SV.cjs → mcp-install-2GKWWBAS.cjs} +14 -13
  277. package/dist/{mcp-install-222PCKSW.js → mcp-install-3TBTVSHW.js} +9 -8
  278. package/dist/memory-GRXFTDIN.cjs +10 -0
  279. package/dist/{memory-VB46T5H3.js → memory-K2P3CDCH.js} +2 -2
  280. package/dist/{model-SJJG64AM.js → model-DEG22OWA.js} +2 -2
  281. package/dist/model-OSD74T7Z.cjs +10 -0
  282. package/dist/new-4NWBOATU.cjs +12 -0
  283. package/dist/{new-ERZ5C6CN.js → new-KJAP2MB6.js} +3 -3
  284. package/dist/{onboarding-ZQXMPSMJ.js → onboarding-2U5WE2OA.js} +17 -14
  285. package/dist/onboarding-5DZFCO5Q.cjs +39 -0
  286. package/dist/permissions-KY5I6YQ3.cjs +10 -0
  287. package/dist/{permissions-7ACNFK7A.js → permissions-TKYON7PP.js} +2 -2
  288. package/dist/{plan-YYUAXPTL.js → plan-DYHHLZSS.js} +1 -1
  289. package/dist/plan-PYKP652W.cjs +13 -0
  290. package/dist/quit-GSKJL42O.js +14 -0
  291. package/dist/quit-TQSRTBUT.cjs +14 -0
  292. package/dist/{registry-4DXUDKJN.js → registry-EZ4V4TUQ.js} +1339 -1
  293. package/dist/{registry-UEO3ETZ7.cjs → registry-LCWYI4IB.cjs} +1378 -40
  294. package/dist/resume-4VWJXARX.cjs +17 -0
  295. package/dist/{resume-XSXZMDMD.js → resume-TLHWWWFN.js} +5 -5
  296. package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
  297. package/dist/review-XLJEUH5K.cjs +9 -0
  298. package/dist/{rpc-XH7QLN4H.js → rpc-3DLQBDWU.js} +151 -124
  299. package/dist/{rpc-YF54T7JU.cjs → rpc-O36WUU3L.cjs} +169 -142
  300. package/dist/search-DSX2CY4A.cjs +22 -0
  301. package/dist/search-I3QUDUQL.js +22 -0
  302. package/dist/sessionBranching-DVNOUWJT.cjs +19 -0
  303. package/dist/sessionBranching-FKV4CR36.js +19 -0
  304. package/dist/sessions-3JUOT3ED.cjs +10 -0
  305. package/dist/{sessions-NJYHJOEL.js → sessions-VWMDIPOS.js} +2 -2
  306. package/dist/{settings-ZXUQH3DO.js → settings-FT2LZZUV.js} +11 -8
  307. package/dist/settings-RL4KNWHB.cjs +45 -0
  308. package/dist/setup-HQEJVOYT.js +32 -0
  309. package/dist/setup-MN54LKOL.cjs +32 -0
  310. package/dist/share-BUAFZNBX.cjs +17 -0
  311. package/dist/{share-WFAGZ5PY.js → share-CGB6MAVJ.js} +6 -6
  312. package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
  313. package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
  314. package/dist/{skills-NBTNDVAY.js → skills-7DKR3HRZ.js} +7 -7
  315. package/dist/{skills-OB6RDW7D.js → skills-BBBENOEY.js} +9 -9
  316. package/dist/skills-OQM7IHAF.cjs +29 -0
  317. package/dist/{skills-ZROBG3RZ.cjs → skills-RA2PKL63.cjs} +9 -9
  318. package/dist/{skills-install-ILX6QVEF.cjs → skills-install-D7K476SL.cjs} +15 -15
  319. package/dist/{skills-install-BHTIEMKH.js → skills-install-T4SOKJSL.js} +8 -8
  320. package/dist/{skills-new-YMRP2HNO.js → skills-new-S33NGEU3.js} +6 -6
  321. package/dist/skills-new-UVYH53MD.cjs +18 -0
  322. package/dist/slashCommands-MWOUDSQP.js +111 -0
  323. package/dist/slashCommands-XASURUTV.cjs +111 -0
  324. package/dist/squad-PIIYDFVH.cjs +15 -0
  325. package/dist/squad-VHYOVEJP.js +15 -0
  326. package/dist/status-GHFTXQBL.js +25 -0
  327. package/dist/status-WXMIJIU3.cjs +25 -0
  328. package/dist/statusline-2K7AC6ZQ.js +21 -0
  329. package/dist/statusline-GROI4HOC.cjs +21 -0
  330. package/dist/sync-254WF6JI.cjs +42 -0
  331. package/dist/sync-2DIZN4EH.cjs +24 -0
  332. package/dist/{sync-OCJN4ZSO.js → sync-J6I2ZUKQ.js} +5 -3
  333. package/dist/{sync-7C25MOT2.js → sync-Z3LVSEEV.js} +8 -6
  334. package/dist/{teammate-D77B6QRT.cjs → teammate-EXR76PEQ.cjs} +5 -5
  335. package/dist/{teammate-EZCMHOIL.js → teammate-K4DAOFEQ.js} +5 -5
  336. package/dist/theme-MVQDSU47.js +23 -0
  337. package/dist/theme-QAKEYWJG.cjs +23 -0
  338. package/dist/ui/questionModal.cjs +5 -5
  339. package/dist/ui/questionModal.js +4 -4
  340. package/dist/{undo-GNUTFXCW.js → undo-5AU47JHF.js} +2 -2
  341. package/dist/undo-ME6WKUXZ.cjs +10 -0
  342. package/dist/{usage-QSTNSDAO.js → usage-QTKO2YMD.js} +6 -5
  343. package/dist/usage-TYNJKVER.cjs +25 -0
  344. package/package.json +4 -3
  345. package/dist/AgentRegistry-GOV7FN2O.js +0 -10
  346. package/dist/AgentRegistry-J2C6JBZ3.cjs +0 -10
  347. package/dist/CommunitySkillsCache-22BB3J6H.cjs +0 -8
  348. package/dist/LearnAdvisor-KKEQ5QCV.js +0 -9
  349. package/dist/LearnAdvisor-Q7RAYLPF.cjs +0 -9
  350. package/dist/MemoryManager-PMNAEZMB.cjs +0 -8
  351. package/dist/MemoryManager-QZRLTUB5.js +0 -8
  352. package/dist/NVIDIAProvider-C3FWQOBZ.cjs +0 -14
  353. package/dist/PermissionManager-URCNP5EC.cjs +0 -11
  354. package/dist/ProviderFactory-56N3ECE4.cjs +0 -12
  355. package/dist/SessionManager-2IZGWASQ.cjs +0 -10
  356. package/dist/SkillsRegistry-GMRVONOQ.cjs +0 -9
  357. package/dist/SubAgent-4GOR2FIJ.js +0 -13
  358. package/dist/SubAgent-ZJMDH4FI.cjs +0 -13
  359. package/dist/add-dir-BTAD5OZS.cjs +0 -11
  360. package/dist/agent-B3EVT7NN.cjs +0 -126
  361. package/dist/agent-SATQ3WZ3.js +0 -126
  362. package/dist/agents-44CRJGM7.cjs +0 -18
  363. package/dist/agents-NN4ZAJ7R.js +0 -18
  364. package/dist/agents-new-6D6G4QS6.cjs +0 -17
  365. package/dist/autoSkill-VQLGBELN.cjs +0 -20
  366. package/dist/automode-45DWV4TN.cjs +0 -10
  367. package/dist/chrome-Q2U73HZB.cjs +0 -50
  368. package/dist/chrome-Q54OALOK.cjs +0 -21
  369. package/dist/chrome-ZNJ46OYW.js +0 -21
  370. package/dist/chunk-JCUHCH37.cjs +0 -247
  371. package/dist/chunk-VKOXFT4L.cjs +0 -23
  372. package/dist/clear-QJXU25IF.cjs +0 -12
  373. package/dist/communityInstaller-LXMVKVAV.cjs +0 -22
  374. package/dist/completion-JX4T2ONW.cjs +0 -17
  375. package/dist/config-3224PRW4.cjs +0 -21
  376. package/dist/constants-MCCGUU5F.cjs +0 -21
  377. package/dist/export-KU4557HK.cjs +0 -15
  378. package/dist/feature-K3LG5IJP.cjs +0 -14
  379. package/dist/features-5OJTLKS7.js +0 -23
  380. package/dist/features-VCBJQXCX.cjs +0 -23
  381. package/dist/feedback-D4437VE4.js +0 -18
  382. package/dist/feedback-VZPEHGFY.cjs +0 -18
  383. package/dist/go-X4E6BCD6.js +0 -12
  384. package/dist/go-XREVFS5I.cjs +0 -12
  385. package/dist/goal-4M3J6JS2.cjs +0 -16
  386. package/dist/goal-EI66BV7W.js +0 -16
  387. package/dist/help-GGFS7WHY.cjs +0 -12
  388. package/dist/history-J4LUIOSI.cjs +0 -14
  389. package/dist/hooks-FSRIUS6A.cjs +0 -18
  390. package/dist/i18n-CI6VFXL5.cjs +0 -33
  391. package/dist/ide-YR27BPGM.cjs +0 -15
  392. package/dist/import-DBK4OCDF.cjs +0 -10
  393. package/dist/init-OXTYS72D.cjs +0 -10
  394. package/dist/inputPrompt-JMACL4EB.cjs +0 -90
  395. package/dist/language-EK3M6UBV.cjs +0 -22
  396. package/dist/language-Q3RUGGOW.js +0 -22
  397. package/dist/learn-3DSX7DYG.cjs +0 -23
  398. package/dist/learn-OPOH5L43.js +0 -23
  399. package/dist/login-GST7MWXJ.cjs +0 -27
  400. package/dist/login-Q7DZKAX4.js +0 -27
  401. package/dist/logout-2G7OUK7I.cjs +0 -24
  402. package/dist/logout-FNBBL2UI.js +0 -24
  403. package/dist/mcp-DW7R63IB.cjs +0 -21
  404. package/dist/memory-6NX3DAIY.cjs +0 -10
  405. package/dist/model-64NAELFS.cjs +0 -10
  406. package/dist/new-DU5SOOOY.cjs +0 -12
  407. package/dist/onboarding-2U2BV2KE.cjs +0 -36
  408. package/dist/permissions-GSNNV7RJ.cjs +0 -10
  409. package/dist/plan-XEJMOT55.cjs +0 -13
  410. package/dist/quit-WY6T267G.js +0 -10
  411. package/dist/quit-XIRE2KRE.cjs +0 -10
  412. package/dist/resume-RQZ3WXBP.cjs +0 -17
  413. package/dist/review-UWHWQHCB.cjs +0 -9
  414. package/dist/search-VXXFGZWU.cjs +0 -21
  415. package/dist/search-YAWGX7P7.js +0 -21
  416. package/dist/sessions-OSG3UJEZ.cjs +0 -10
  417. package/dist/settings-SO2UIGWV.cjs +0 -42
  418. package/dist/setup-KG7EGKF5.js +0 -30
  419. package/dist/setup-RSOPCQ57.cjs +0 -30
  420. package/dist/share-ZU3SGACF.cjs +0 -17
  421. package/dist/skills-KBVAQAD2.cjs +0 -29
  422. package/dist/skills-new-B45VQ2PP.cjs +0 -18
  423. package/dist/slashCommands-53VYIBJU.js +0 -105
  424. package/dist/slashCommands-BG2RGGZ6.cjs +0 -105
  425. package/dist/status-CQ2IUOVK.cjs +0 -24
  426. package/dist/status-E7IGNVPC.js +0 -24
  427. package/dist/sync-XRP46IVG.cjs +0 -40
  428. package/dist/sync-ZMFVE7T4.cjs +0 -22
  429. package/dist/theme-KKRDE6P7.cjs +0 -22
  430. package/dist/theme-XF7XIWBQ.js +0 -22
  431. package/dist/undo-U4KN7QQM.cjs +0 -10
  432. package/dist/usage-YDEMQBNQ.cjs +0 -24
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } 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; var _class2;
2
2
 
3
- var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
3
+ var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
4
4
 
5
5
  // src/session/SessionManager.ts
6
6
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
@@ -11,7 +11,7 @@ var SessionManager = (_class = class {
11
11
  __init() {this.currentSession = null}
12
12
  __init2() {this.index = null}
13
13
  constructor(baseDir) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);
14
- this.sessionsDir = _nullishCoalesce(baseDir, () => ( _chunkKASXKDF2cjs.AUTOHAND_PATHS.sessions));
14
+ this.sessionsDir = _nullishCoalesce(baseDir, () => ( _chunk3JURXAL6cjs.AUTOHAND_PATHS.sessions));
15
15
  }
16
16
  async initialize() {
17
17
  await _fsextra2.default.ensureDir(this.sessionsDir);
@@ -42,7 +42,8 @@ var SessionManager = (_class = class {
42
42
  return session;
43
43
  }
44
44
  async loadSession(sessionId) {
45
- const sessionDir = _path2.default.join(this.sessionsDir, sessionId);
45
+ const resolvedSessionId = await this.resolveSessionReference(sessionId);
46
+ const sessionDir = _path2.default.join(this.sessionsDir, resolvedSessionId);
46
47
  if (!await _fsextra2.default.pathExists(sessionDir)) {
47
48
  throw new Error(`Session not found: ${sessionId}`);
48
49
  }
@@ -53,16 +54,82 @@ var SessionManager = (_class = class {
53
54
  this.currentSession = session;
54
55
  return session;
55
56
  }
57
+ async resolveSessionReference(reference) {
58
+ const trimmed = reference.trim();
59
+ if (!trimmed) {
60
+ throw new Error("Session reference is required");
61
+ }
62
+ const asPath = _path2.default.resolve(trimmed);
63
+ if (await _fsextra2.default.pathExists(asPath)) {
64
+ const stat = await _fsextra2.default.stat(asPath);
65
+ const sessionDir = stat.isDirectory() ? asPath : _path2.default.dirname(asPath);
66
+ const metadataPath = _path2.default.join(sessionDir, "metadata.json");
67
+ if (await _fsextra2.default.pathExists(metadataPath)) {
68
+ const metadata = await _fsextra2.default.readJson(metadataPath);
69
+ return metadata.sessionId;
70
+ }
71
+ }
72
+ const directDir = _path2.default.join(this.sessionsDir, trimmed);
73
+ if (await _fsextra2.default.pathExists(_path2.default.join(directDir, "metadata.json"))) {
74
+ return trimmed;
75
+ }
76
+ await this.loadIndex();
77
+ const candidates = _nullishCoalesce(_optionalChain([this, 'access', _ => _.index, 'optionalAccess', _2 => _2.sessions, 'access', _3 => _3.filter, 'call', _4 => _4((session) => session.id.startsWith(trimmed))]), () => ( []));
78
+ if (candidates.length === 1) {
79
+ return candidates[0].id;
80
+ }
81
+ if (candidates.length > 1) {
82
+ throw new Error(`Ambiguous session reference: ${reference}`);
83
+ }
84
+ throw new Error(`Session not found: ${reference}`);
85
+ }
86
+ async branchSession(sourceReference, options) {
87
+ const sourceSessionId = await this.resolveSessionReference(sourceReference);
88
+ const sourceSession = await this.loadSession(sourceSessionId);
89
+ const sourceMessages = sourceSession.getMessages();
90
+ const copiedMessages = selectBranchMessages(sourceMessages, options);
91
+ const createdAt = (/* @__PURE__ */ new Date()).toISOString();
92
+ const sessionId = this.generateSessionId();
93
+ const sessionDir = _path2.default.join(this.sessionsDir, sessionId);
94
+ await _fsextra2.default.ensureDir(sessionDir);
95
+ const metadata = {
96
+ ...sourceSession.metadata,
97
+ sessionId,
98
+ createdAt,
99
+ lastActiveAt: createdAt,
100
+ closedAt: void 0,
101
+ messageCount: copiedMessages.length,
102
+ status: "active",
103
+ exitCode: void 0,
104
+ branch: {
105
+ type: options.type,
106
+ sourceSessionId,
107
+ sourceMessageIndex: options.type === "fork" && copiedMessages.length > 0 ? copiedMessages.length - 1 : void 0,
108
+ sourceUserMessageOrdinal: options.type === "fork" ? options.userMessageOrdinal : void 0,
109
+ createdAt
110
+ }
111
+ };
112
+ const session = new Session(sessionDir, metadata);
113
+ await session.replaceMessages(copiedMessages);
114
+ const sourceState = sourceSession.getState();
115
+ if (sourceState) {
116
+ await session.updateState(sourceState);
117
+ }
118
+ await session.save();
119
+ this.currentSession = session;
120
+ await this.addToIndex(session.metadata);
121
+ return session;
122
+ }
56
123
  async listSessions(filter) {
57
124
  await this.loadIndex();
58
125
  if (!this.index) return [];
59
126
  let sessions = this.index.sessions;
60
- if (_optionalChain([filter, 'optionalAccess', _ => _.project])) {
127
+ if (_optionalChain([filter, 'optionalAccess', _5 => _5.project])) {
61
128
  const projectPath = _path2.default.resolve(filter.project);
62
129
  const sessionIds = this.index.byProject[projectPath] || [];
63
130
  sessions = sessions.filter((s) => sessionIds.includes(s.id));
64
131
  }
65
- if (_optionalChain([filter, 'optionalAccess', _2 => _2.since])) {
132
+ if (_optionalChain([filter, 'optionalAccess', _6 => _6.since])) {
66
133
  sessions = sessions.filter((s) => new Date(s.createdAt) >= filter.since);
67
134
  }
68
135
  const fullMetadata = [];
@@ -105,7 +172,16 @@ var SessionManager = (_class = class {
105
172
  async loadIndex() {
106
173
  const indexPath = _path2.default.join(this.sessionsDir, "index.json");
107
174
  if (await _fsextra2.default.pathExists(indexPath)) {
108
- this.index = await _fsextra2.default.readJson(indexPath);
175
+ try {
176
+ this.index = await _fsextra2.default.readJson(indexPath);
177
+ } catch (error) {
178
+ const backupPath = `${indexPath}.corrupt-${Date.now()}`;
179
+ await _fsextra2.default.move(indexPath, backupPath, { overwrite: true });
180
+ const reason = error instanceof Error ? error.message : String(error);
181
+ console.warn(`Session index was corrupt and has been reset: ${reason}. Backup saved to ${backupPath}`);
182
+ this.index = { sessions: [], byProject: {} };
183
+ await this.saveIndex();
184
+ }
109
185
  } else {
110
186
  this.index = { sessions: [], byProject: {} };
111
187
  }
@@ -121,7 +197,12 @@ var SessionManager = (_class = class {
121
197
  id: metadata.sessionId,
122
198
  projectPath: metadata.projectPath,
123
199
  createdAt: metadata.createdAt,
124
- summary: metadata.summary
200
+ summary: metadata.summary,
201
+ importedFrom: metadata.importedFrom ? {
202
+ source: metadata.importedFrom.source,
203
+ originalId: metadata.importedFrom.originalId
204
+ } : void 0,
205
+ branch: metadata.branch
125
206
  });
126
207
  if (!this.index.byProject[metadata.projectPath]) {
127
208
  this.index.byProject[metadata.projectPath] = [];
@@ -134,10 +215,31 @@ var SessionManager = (_class = class {
134
215
  const session = this.index.sessions.find((s) => s.id === metadata.sessionId);
135
216
  if (session) {
136
217
  session.summary = metadata.summary;
218
+ session.branch = metadata.branch;
137
219
  }
138
220
  await this.saveIndex();
139
221
  }
140
222
  }, _class);
223
+ function selectBranchMessages(messages, options) {
224
+ if (options.type === "clone" || options.userMessageOrdinal === void 0) {
225
+ return [...messages];
226
+ }
227
+ if (!Number.isInteger(options.userMessageOrdinal) || options.userMessageOrdinal < 1) {
228
+ throw new Error("Fork message must be a positive user-message number");
229
+ }
230
+ let seenUserMessages = 0;
231
+ const selected = [];
232
+ for (const message of messages) {
233
+ selected.push(message);
234
+ if (message.role === "user") {
235
+ seenUserMessages += 1;
236
+ if (seenUserMessages === options.userMessageOrdinal) {
237
+ return selected;
238
+ }
239
+ }
240
+ }
241
+ throw new Error(`User message ${options.userMessageOrdinal} not found`);
242
+ }
141
243
  var Session = (_class2 = class {
142
244
 
143
245
 
@@ -147,24 +249,39 @@ var Session = (_class2 = class {
147
249
  this.sessionDir = sessionDir;
148
250
  this.metadata = metadata;
149
251
  }
252
+ async ensureSessionDir() {
253
+ await _fsextra2.default.ensureDir(this.sessionDir);
254
+ }
150
255
  async append(message) {
151
256
  this.messages.push(message);
152
257
  this.metadata.messageCount = this.messages.length;
153
258
  this.metadata.lastActiveAt = (/* @__PURE__ */ new Date()).toISOString();
259
+ await this.ensureSessionDir();
154
260
  const conversationPath = _path2.default.join(this.sessionDir, "conversation.jsonl");
155
261
  await _fsextra2.default.appendFile(conversationPath, JSON.stringify(message) + "\n");
156
262
  await this.save();
157
263
  }
158
264
  async appendTransient(message) {
265
+ await this.ensureSessionDir();
159
266
  const conversationPath = _path2.default.join(this.sessionDir, "conversation.jsonl");
160
267
  await _fsextra2.default.appendFile(conversationPath, JSON.stringify(message) + "\n");
161
268
  }
269
+ async replaceMessages(messages) {
270
+ this.messages = [...messages];
271
+ this.metadata.messageCount = this.messages.length;
272
+ const conversationPath = _path2.default.join(this.sessionDir, "conversation.jsonl");
273
+ const content = this.messages.map((message) => JSON.stringify(message)).join("\n");
274
+ await _fsextra2.default.writeFile(conversationPath, content ? `${content}
275
+ ` : "");
276
+ }
162
277
  async updateState(state) {
163
278
  this.state = state;
279
+ await this.ensureSessionDir();
164
280
  const statePath = _path2.default.join(this.sessionDir, "state.json");
165
281
  await _fsextra2.default.writeJson(statePath, state, { spaces: 2 });
166
282
  }
167
283
  async save() {
284
+ await this.ensureSessionDir();
168
285
  const metadataPath = _path2.default.join(this.sessionDir, "metadata.json");
169
286
  await _fsextra2.default.writeJson(metadataPath, this.metadata, { spaces: 2 });
170
287
  }
@@ -4,7 +4,7 @@ import path from "path";
4
4
  import fse from "fs-extra";
5
5
  var metadata = {
6
6
  command: "/review",
7
- description: "staff-level code review with 10 actionable findings",
7
+ description: "review your current changes and find issues",
8
8
  implemented: true
9
9
  };
10
10
  async function review(ctx, args = []) {
@@ -10,10 +10,10 @@ var _chunkLJD7KR3Lcjs = require('./chunk-LJD7KR3L.cjs');
10
10
  var _chunkSD3NTC7Dcjs = require('./chunk-SD3NTC7D.cjs');
11
11
 
12
12
 
13
- var _chunkAQ5PVHOCcjs = require('./chunk-AQ5PVHOC.cjs');
13
+ var _chunkCSUGNNJYcjs = require('./chunk-CSUGNNJY.cjs');
14
14
 
15
15
 
16
- var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
16
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
17
17
 
18
18
  // src/commands/about.ts
19
19
  var _child_process = require('child_process');
@@ -24,9 +24,9 @@ function getCommitFromAlphaVersion(version) {
24
24
  }
25
25
  function getGitCommit() {
26
26
  if (true) {
27
- return "da69f79";
27
+ return "1d7b7b1";
28
28
  }
29
- const alphaCommit = getCommitFromAlphaVersion(_chunkAQ5PVHOCcjs.package_default.version);
29
+ const alphaCommit = getCommitFromAlphaVersion(_chunkCSUGNNJYcjs.package_default.version);
30
30
  if (alphaCommit) {
31
31
  return alphaCommit;
32
32
  }
@@ -38,7 +38,7 @@ function getGitCommit() {
38
38
  }
39
39
  function getVersionString() {
40
40
  const commit = getGitCommit();
41
- return commit !== "unknown" ? `${_chunkAQ5PVHOCcjs.package_default.version} (${commit})` : _chunkAQ5PVHOCcjs.package_default.version;
41
+ return commit !== "unknown" ? `${_chunkCSUGNNJYcjs.package_default.version} (${commit})` : _chunkCSUGNNJYcjs.package_default.version;
42
42
  }
43
43
  async function about(ctx = {}) {
44
44
  const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
@@ -47,15 +47,15 @@ async function about(ctx = {}) {
47
47
  const lines = [
48
48
  theme.muted(_chunkSD3NTC7Dcjs.renderAutohandLogo.call(void 0, { columns: terminalColumns })),
49
49
  "",
50
- theme.accent(`${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.title")} v${getVersionString()}`),
51
- theme.muted(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.subtitle")),
50
+ theme.accent(`${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.title")} v${getVersionString()}`),
51
+ theme.muted(_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.subtitle")),
52
52
  ""
53
53
  ];
54
54
  if (greetingName) {
55
55
  lines.push(theme.text(`Hey ${greetingName}, here are a few suggestions for what you could do next:`));
56
56
  lines.push(theme.text(` \u2022 Review model, context, and account usage: ${theme.accent("/usage")}`));
57
57
  lines.push(theme.text(` \u2022 Check current session and runtime status: ${theme.accent("/status")}`));
58
- lines.push(theme.text(` \u2022 Discover feature toggles available to you: ${theme.accent("/features")}`));
58
+ lines.push(theme.text(` \u2022 Discover experiments available to you: ${theme.accent("/experiments")}`));
59
59
  lines.push("");
60
60
  }
61
61
  const websiteUrl = "https://autohand.ai";
@@ -64,16 +64,16 @@ async function about(ctx = {}) {
64
64
  const websiteLink = _terminallink2.default.call(void 0, theme.link("autohand.ai"), websiteUrl);
65
65
  const githubLink = _terminallink2.default.call(void 0, theme.link("github.com/autohandai/"), githubUrl);
66
66
  const docsLink = _terminallink2.default.call(void 0, theme.link("docs.autohand.ai"), docsUrl);
67
- lines.push(`${theme.text("\u{1F310}")} ${theme.text(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.website") + ":")} ${websiteLink}`);
68
- lines.push(`${theme.text("\u{1F4E6}")} ${theme.text(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.github") + ":")} ${githubLink}`);
69
- lines.push(`${theme.text("\u{1F4DA}")} ${theme.text(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.docs") + ":")} ${docsLink}`);
67
+ lines.push(`${theme.text("\u{1F310}")} ${theme.text(_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.website") + ":")} ${websiteLink}`);
68
+ lines.push(`${theme.text("\u{1F4E6}")} ${theme.text(_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.github") + ":")} ${githubLink}`);
69
+ lines.push(`${theme.text("\u{1F4DA}")} ${theme.text(_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.docs") + ":")} ${docsLink}`);
70
70
  lines.push("");
71
- lines.push(theme.text(`\u{1F4A1} ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.contribute")}`));
72
- lines.push(theme.text(` \u2022 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.feedback")}: ${theme.accent("/feedback")}`));
73
- lines.push(theme.text(` \u2022 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.submitPR")}: ${theme.accent("gh pr create")}`));
71
+ lines.push(theme.text(`\u{1F4A1} ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.contribute")}`));
72
+ lines.push(theme.text(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.feedback")}: ${theme.accent("/feedback")}`));
73
+ lines.push(theme.text(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.submitPR")}: ${theme.accent("gh pr create")}`));
74
74
  const issuesUrl = "https://github.com/autohandai/code-cli/issues";
75
75
  const issuesLink = _terminallink2.default.call(void 0, theme.link("github.com/autohandai/code-cli/issues"), issuesUrl);
76
- lines.push(theme.text(` \u2022 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.about.reportIssues")}: ${issuesLink}`));
76
+ lines.push(theme.text(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.reportIssues")}: ${issuesLink}`));
77
77
  return lines.join("\n");
78
78
  }
79
79
  var metadata = {
@@ -2,27 +2,27 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
5
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
6
6
 
7
7
  // src/ui/i18n/I18nContext.tsx
8
8
  var _react = require('react');
9
9
  var _jsxruntime = require('react/jsx-runtime');
10
10
  var defaultContextValue = {
11
- t: _chunkSY2P3Z5Wcjs.t,
11
+ t: _chunkRJCZLFHEcjs.t,
12
12
  locale: "en"
13
13
  };
14
14
  var I18nContext = _react.createContext.call(void 0, defaultContextValue);
15
15
  var I18nProvider = ({ children }) => {
16
- const [locale, setLocale] = _react.useState.call(void 0, _chunkSY2P3Z5Wcjs.getCurrentLocale.call(void 0, ));
16
+ const [locale, setLocale] = _react.useState.call(void 0, _chunkRJCZLFHEcjs.getCurrentLocale.call(void 0, ));
17
17
  _react.useEffect.call(void 0, () => {
18
- const unsubscribe = _chunkSY2P3Z5Wcjs.onLanguageChange.call(void 0, (newLocale) => {
18
+ const unsubscribe = _chunkRJCZLFHEcjs.onLanguageChange.call(void 0, (newLocale) => {
19
19
  setLocale(newLocale);
20
20
  });
21
21
  return unsubscribe;
22
22
  }, []);
23
23
  const value = _react.useMemo.call(void 0,
24
24
  () => ({
25
- t: _chunkSY2P3Z5Wcjs.t,
25
+ t: _chunkRJCZLFHEcjs.t,
26
26
  locale
27
27
  }),
28
28
  [locale]
@@ -36,10 +36,7 @@ function useTranslation() {
36
36
 
37
37
  // src/ui/inkRenderOptions.ts
38
38
  function inkRenderOptions(options) {
39
- return {
40
- maxFps: 60,
41
- ...options
42
- };
39
+ return options;
43
40
  }
44
41
 
45
42
 
@@ -0,0 +1,277 @@
1
+ import {
2
+ showModal
3
+ } from "./chunk-LOSXLH7P.js";
4
+ import {
5
+ saveConfig
6
+ } from "./chunk-CM24K6ZT.js";
7
+ import {
8
+ t
9
+ } from "./chunk-SJQU2ZFR.js";
10
+
11
+ // src/commands/statusline.ts
12
+ import chalk from "chalk";
13
+
14
+ // src/core/agent/StatusLineSettings.ts
15
+ var DEFAULT_PULL_REQUEST_NUMBER = 123;
16
+ var DEFAULT_WORKSPACE_PATH_LIMIT = 44;
17
+ var DEFAULT_GIT_LABEL_LIMIT = 24;
18
+ var STATUS_LINE_SETTING_KEYS = [
19
+ "showProviderModel",
20
+ "showContext",
21
+ "showWorkspacePath",
22
+ "showGitBranch",
23
+ "showCommandHint",
24
+ "showPullRequest",
25
+ "showSessionLines",
26
+ "showQueue",
27
+ "showActiveStatus",
28
+ "showActiveMetrics",
29
+ "showCancelHint"
30
+ ];
31
+ var DEFAULT_STATUS_LINE_SETTINGS = {
32
+ showProviderModel: true,
33
+ showContext: true,
34
+ showWorkspacePath: true,
35
+ showGitBranch: true,
36
+ showCommandHint: true,
37
+ showPullRequest: true,
38
+ showSessionLines: false,
39
+ showQueue: true,
40
+ showActiveStatus: true,
41
+ showActiveMetrics: true,
42
+ showCancelHint: true
43
+ };
44
+ function resolveStatusLineSettings(settings) {
45
+ return {
46
+ ...DEFAULT_STATUS_LINE_SETTINGS,
47
+ ...settings
48
+ };
49
+ }
50
+ function isStatusLineSettingKey(value) {
51
+ return STATUS_LINE_SETTING_KEYS.includes(value);
52
+ }
53
+ function getConfigStatusLineSettings(config) {
54
+ return resolveStatusLineSettings(config?.ui?.statusLine);
55
+ }
56
+ function formatPullRequestSegment(pullRequestNumber) {
57
+ const normalized = typeof pullRequestNumber === "string" ? pullRequestNumber.trim().replace(/^#/, "") : pullRequestNumber;
58
+ const value = normalized || DEFAULT_PULL_REQUEST_NUMBER;
59
+ return `PR #${value}`;
60
+ }
61
+ function formatSessionDiffStats(stats) {
62
+ if (!stats) {
63
+ return [];
64
+ }
65
+ return [
66
+ stats.added > 0 ? `+${stats.added} lines` : "",
67
+ stats.removed > 0 ? `-${stats.removed} lines` : ""
68
+ ].filter(Boolean);
69
+ }
70
+ function truncateMiddle(value, limit) {
71
+ if (limit <= 0) {
72
+ return "";
73
+ }
74
+ if (value.length <= limit) {
75
+ return value;
76
+ }
77
+ if (limit === 1) {
78
+ return "\u2026";
79
+ }
80
+ const left = Math.ceil((limit - 1) / 2);
81
+ const right = Math.floor((limit - 1) / 2);
82
+ return `${value.slice(0, left)}\u2026${value.slice(value.length - right)}`;
83
+ }
84
+ function formatWorkspacePathSegment(workspaceRoot, options = {}) {
85
+ const trimmed = workspaceRoot?.trim();
86
+ if (!trimmed) {
87
+ return "";
88
+ }
89
+ const homeDir = options.homeDir?.replace(/\/+$/, "");
90
+ const normalized = homeDir && (trimmed === homeDir || trimmed.startsWith(`${homeDir}/`)) ? `~${trimmed.slice(homeDir.length)}` : trimmed;
91
+ return truncateMiddle(normalized, options.limit ?? DEFAULT_WORKSPACE_PATH_LIMIT);
92
+ }
93
+ function formatGitLabelSegment(gitLabel, options = {}) {
94
+ const trimmed = gitLabel?.trim();
95
+ if (!trimmed) {
96
+ return "";
97
+ }
98
+ return truncateMiddle(trimmed, options.limit ?? DEFAULT_GIT_LABEL_LIMIT);
99
+ }
100
+ function formatStatusLineLeft(input) {
101
+ const percent = Number.isFinite(input.contextPercentLeft) ? Math.max(0, Math.min(100, input.contextPercentLeft)) : 100;
102
+ const contextSegment = input.contextStatus?.trim() ? `${input.planIndicator ?? ""}${input.contextStatus.trim()}` : `${input.planIndicator ?? ""}${percent}% context left`;
103
+ const sessionDiffSegment = input.settings.showSessionLines && input.sessionHasFileChanges ? formatSessionDiffStats(input.sessionDiffStats).join(` ${String.fromCharCode(183)} `) : "";
104
+ const workspaceSegment = input.settings.showWorkspacePath ? formatWorkspacePathSegment(input.workspaceRoot, { homeDir: input.homeDir }) : "";
105
+ const gitSegment = input.settings.showGitBranch ? formatGitLabelSegment(input.gitLabel) : "";
106
+ const queueStatus = input.settings.showQueue && input.queueCount > 0 ? ` ${String.fromCharCode(183)} ${input.queueCount} queued` : "";
107
+ const segments = [
108
+ input.settings.showContext ? contextSegment : (input.planIndicator ?? "").trim(),
109
+ workspaceSegment,
110
+ gitSegment,
111
+ input.settings.showCommandHint ? input.commandHint : "",
112
+ input.settings.showPullRequest ? formatPullRequestSegment(input.pullRequestNumber) : "",
113
+ sessionDiffSegment
114
+ ].filter((segment) => segment.trim().length > 0);
115
+ return `${segments.join(` ${String.fromCharCode(183)} `)}${queueStatus}`;
116
+ }
117
+ function buildStatusLineExtension(input) {
118
+ const hiddenDefaultSegmentIds = [
119
+ input.settings.showProviderModel ? "" : "provider",
120
+ input.settings.showContext ? "" : "context",
121
+ input.settings.showCommandHint ? "" : "command-hint"
122
+ ].filter(Boolean);
123
+ const hiddenStatusSegmentIds = [
124
+ input.settings.showActiveStatus ? "" : "status",
125
+ input.settings.showActiveMetrics ? "" : "metrics",
126
+ input.settings.showQueue ? "" : "queue",
127
+ input.settings.showCancelHint ? "" : "cancel"
128
+ ].filter(Boolean);
129
+ const helpSegments = [
130
+ input.settings.showWorkspacePath ? {
131
+ id: "workspace-path",
132
+ text: formatWorkspacePathSegment(input.workspaceRoot, { homeDir: input.homeDir }),
133
+ color: "success"
134
+ } : null,
135
+ input.settings.showGitBranch ? {
136
+ id: "git-branch",
137
+ text: formatGitLabelSegment(input.gitLabel),
138
+ color: "muted"
139
+ } : null,
140
+ input.settings.showPullRequest ? { id: "pull-request", text: formatPullRequestSegment(input.pullRequestNumber), color: "muted" } : null,
141
+ ...input.settings.showSessionLines && input.sessionHasFileChanges ? [
142
+ {
143
+ id: "session-lines-added",
144
+ text: input.sessionDiffStats && input.sessionDiffStats.added > 0 ? `+${input.sessionDiffStats.added} lines` : "",
145
+ color: "success"
146
+ },
147
+ {
148
+ id: "session-lines-removed",
149
+ text: input.sessionDiffStats && input.sessionDiffStats.removed > 0 ? `-${input.sessionDiffStats.removed} lines` : "",
150
+ color: "error"
151
+ }
152
+ ] : []
153
+ ].filter(
154
+ (segment) => segment !== null && segment.text.trim().length > 0
155
+ );
156
+ if (helpSegments.length === 0 && hiddenDefaultSegmentIds.length === 0) {
157
+ if (hiddenStatusSegmentIds.length === 0) {
158
+ return void 0;
159
+ }
160
+ return {
161
+ status: {
162
+ hiddenDefaultSegmentIds: hiddenStatusSegmentIds
163
+ }
164
+ };
165
+ }
166
+ if (hiddenStatusSegmentIds.length === 0) {
167
+ return {
168
+ help: {
169
+ hiddenDefaultSegmentIds,
170
+ segments: helpSegments
171
+ }
172
+ };
173
+ }
174
+ return {
175
+ status: {
176
+ hiddenDefaultSegmentIds: hiddenStatusSegmentIds
177
+ },
178
+ help: {
179
+ hiddenDefaultSegmentIds,
180
+ segments: helpSegments
181
+ }
182
+ };
183
+ }
184
+
185
+ // src/commands/statusline.ts
186
+ var STATUS_LINE_LABEL_KEYS = {
187
+ showProviderModel: "commands.statusline.fields.showProviderModel",
188
+ showContext: "commands.statusline.fields.showContext",
189
+ showWorkspacePath: "commands.statusline.fields.showWorkspacePath",
190
+ showGitBranch: "commands.statusline.fields.showGitBranch",
191
+ showCommandHint: "commands.statusline.fields.showCommandHint",
192
+ showPullRequest: "commands.statusline.fields.showPullRequest",
193
+ showSessionLines: "commands.statusline.fields.showSessionLines",
194
+ showQueue: "commands.statusline.fields.showQueue",
195
+ showActiveStatus: "commands.statusline.fields.showActiveStatus",
196
+ showActiveMetrics: "commands.statusline.fields.showActiveMetrics",
197
+ showCancelHint: "commands.statusline.fields.showCancelHint"
198
+ };
199
+ var STATUS_LINE_DESCRIPTION_KEYS = {
200
+ showProviderModel: "commands.statusline.fields.showProviderModelDesc",
201
+ showContext: "commands.statusline.fields.showContextDesc",
202
+ showWorkspacePath: "commands.statusline.fields.showWorkspacePathDesc",
203
+ showGitBranch: "commands.statusline.fields.showGitBranchDesc",
204
+ showCommandHint: "commands.statusline.fields.showCommandHintDesc",
205
+ showPullRequest: "commands.statusline.fields.showPullRequestDesc",
206
+ showSessionLines: "commands.statusline.fields.showSessionLinesDesc",
207
+ showQueue: "commands.statusline.fields.showQueueDesc",
208
+ showActiveStatus: "commands.statusline.fields.showActiveStatusDesc",
209
+ showActiveMetrics: "commands.statusline.fields.showActiveMetricsDesc",
210
+ showCancelHint: "commands.statusline.fields.showCancelHintDesc"
211
+ };
212
+ function buildOptions(settings) {
213
+ return [
214
+ ...STATUS_LINE_SETTING_KEYS.map((key) => ({
215
+ label: t(STATUS_LINE_LABEL_KEYS[key]),
216
+ value: key,
217
+ description: t(STATUS_LINE_DESCRIPTION_KEYS[key]),
218
+ checked: settings[key]
219
+ })),
220
+ {
221
+ label: t("commands.statusline.done"),
222
+ value: "__done__"
223
+ }
224
+ ];
225
+ }
226
+ function persistDraft(config, draft) {
227
+ config.ui = {
228
+ ...config.ui,
229
+ statusLine: draft
230
+ };
231
+ }
232
+ async function statusline(ctx) {
233
+ const draft = { ...resolveStatusLineSettings(ctx.config.ui?.statusLine) };
234
+ const initial = JSON.stringify(draft);
235
+ const options = buildOptions(draft);
236
+ const result = await showModal({
237
+ title: t("commands.statusline.title"),
238
+ options,
239
+ multiSelect: true,
240
+ maxVisible: options.length,
241
+ onToggle: (option, checked) => {
242
+ if (isStatusLineSettingKey(option.value)) {
243
+ draft[option.value] = checked;
244
+ }
245
+ }
246
+ });
247
+ if (!result) {
248
+ return null;
249
+ }
250
+ if (isStatusLineSettingKey(result.value)) {
251
+ draft[result.value] = !draft[result.value];
252
+ }
253
+ if (JSON.stringify(draft) === initial) {
254
+ return null;
255
+ }
256
+ persistDraft(ctx.config, draft);
257
+ await saveConfig(ctx.config);
258
+ return chalk.green(t("commands.statusline.saved"));
259
+ }
260
+ var metadata = {
261
+ command: "/statusline",
262
+ description: "configure status line display",
263
+ implemented: true
264
+ };
265
+
266
+ export {
267
+ getConfigStatusLineSettings,
268
+ formatStatusLineLeft,
269
+ buildStatusLineExtension,
270
+ statusline,
271
+ metadata
272
+ };
273
+ /**
274
+ * @license
275
+ * Copyright 2026 Autohand AI LLC
276
+ * SPDX-License-Identifier: Apache-2.0
277
+ */