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
  import {
2
2
  AUTOHAND_PATHS
3
- } from "./chunk-SHRLFX6F.js";
3
+ } from "./chunk-PG2JIU5M.js";
4
4
 
5
5
  // src/session/SessionManager.ts
6
6
  import fs from "fs-extra";
@@ -42,7 +42,8 @@ var SessionManager = class {
42
42
  return session;
43
43
  }
44
44
  async loadSession(sessionId) {
45
- const sessionDir = path.join(this.sessionsDir, sessionId);
45
+ const resolvedSessionId = await this.resolveSessionReference(sessionId);
46
+ const sessionDir = path.join(this.sessionsDir, resolvedSessionId);
46
47
  if (!await fs.pathExists(sessionDir)) {
47
48
  throw new Error(`Session not found: ${sessionId}`);
48
49
  }
@@ -53,6 +54,72 @@ var SessionManager = 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 = path.resolve(trimmed);
63
+ if (await fs.pathExists(asPath)) {
64
+ const stat = await fs.stat(asPath);
65
+ const sessionDir = stat.isDirectory() ? asPath : path.dirname(asPath);
66
+ const metadataPath = path.join(sessionDir, "metadata.json");
67
+ if (await fs.pathExists(metadataPath)) {
68
+ const metadata = await fs.readJson(metadataPath);
69
+ return metadata.sessionId;
70
+ }
71
+ }
72
+ const directDir = path.join(this.sessionsDir, trimmed);
73
+ if (await fs.pathExists(path.join(directDir, "metadata.json"))) {
74
+ return trimmed;
75
+ }
76
+ await this.loadIndex();
77
+ const candidates = this.index?.sessions.filter((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 = path.join(this.sessionsDir, sessionId);
94
+ await fs.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 [];
@@ -105,7 +172,16 @@ var SessionManager = class {
105
172
  async loadIndex() {
106
173
  const indexPath = path.join(this.sessionsDir, "index.json");
107
174
  if (await fs.pathExists(indexPath)) {
108
- this.index = await fs.readJson(indexPath);
175
+ try {
176
+ this.index = await fs.readJson(indexPath);
177
+ } catch (error) {
178
+ const backupPath = `${indexPath}.corrupt-${Date.now()}`;
179
+ await fs.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 {
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 {
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
  };
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 = class {
142
244
  sessionDir;
143
245
  metadata;
@@ -147,24 +249,39 @@ var Session = class {
147
249
  this.sessionDir = sessionDir;
148
250
  this.metadata = metadata;
149
251
  }
252
+ async ensureSessionDir() {
253
+ await fs.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 = path.join(this.sessionDir, "conversation.jsonl");
155
261
  await fs.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 = path.join(this.sessionDir, "conversation.jsonl");
160
267
  await fs.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 = path.join(this.sessionDir, "conversation.jsonl");
273
+ const content = this.messages.map((message) => JSON.stringify(message)).join("\n");
274
+ await fs.writeFile(conversationPath, content ? `${content}
275
+ ` : "");
276
+ }
162
277
  async updateState(state) {
163
278
  this.state = state;
279
+ await this.ensureSessionDir();
164
280
  const statePath = path.join(this.sessionDir, "state.json");
165
281
  await fs.writeJson(statePath, state, { spaces: 2 });
166
282
  }
167
283
  async save() {
284
+ await this.ensureSessionDir();
168
285
  const metadataPath = path.join(this.sessionDir, "metadata.json");
169
286
  await fs.writeJson(metadataPath, this.metadata, { spaces: 2 });
170
287
  }
@@ -1,28 +1,29 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
 
4
- var _chunkHG3ZASBHcjs = require('./chunk-HG3ZASBH.cjs');
5
4
 
5
+ var _chunkR75AWII3cjs = require('./chunk-R75AWII3.cjs');
6
6
 
7
- var _chunkS5JNQIGLcjs = require('./chunk-S5JNQIGL.cjs');
8
7
 
8
+ var _chunkGYLGCR6Fcjs = require('./chunk-GYLGCR6F.cjs');
9
9
 
10
- var _chunkCO2AADYUcjs = require('./chunk-CO2AADYU.cjs');
11
10
 
11
+ var _chunkAZKOIF2Gcjs = require('./chunk-AZKOIF2G.cjs');
12
12
 
13
- var _chunkX5P6QQOBcjs = require('./chunk-X5P6QQOB.cjs');
14
13
 
14
+ var _chunkCNQKIWIScjs = require('./chunk-CNQKIWIS.cjs');
15
15
 
16
- var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
17
16
 
17
+ var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
18
18
 
19
- var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
19
+
20
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
20
21
 
21
22
  // src/commands/login.ts
22
23
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
23
24
  var metadata = {
24
25
  command: "/login",
25
- description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.login.description"),
26
+ description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.login.description"),
26
27
  implemented: true
27
28
  };
28
29
  async function openBrowser(url) {
@@ -69,33 +70,33 @@ function sleep(ms) {
69
70
  async function login(ctx) {
70
71
  const config = ctx.config;
71
72
  if (_optionalChain([config, 'optionalAccess', _ => _.auth, 'optionalAccess', _2 => _2.token]) && _optionalChain([config, 'optionalAccess', _3 => _3.auth, 'optionalAccess', _4 => _4.user])) {
72
- const result = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
73
+ const result = await _chunkGYLGCR6Fcjs.safePrompt.call(void 0, {
73
74
  type: "confirm",
74
75
  name: "continueLogin",
75
76
  message: `Already logged in as ${_chalk2.default.cyan(config.auth.user.email)}. Log in with a different account?`,
76
77
  initial: false
77
78
  });
78
79
  if (!result || !result.continueLogin) {
79
- console.log(_chalk2.default.gray(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.login.cancelled")));
80
+ console.log(_chalk2.default.gray(_chunkRJCZLFHEcjs.t.call(void 0, "commands.login.cancelled")));
80
81
  return null;
81
82
  }
82
83
  }
83
- const authClient = _chunkCO2AADYUcjs.getAuthClient.call(void 0, );
84
+ const authClient = _chunkAZKOIF2Gcjs.getAuthClient.call(void 0, );
84
85
  console.log(_chalk2.default.gray("Initiating authentication..."));
85
86
  const initResult = await authClient.initiateDeviceAuth();
86
87
  if (!initResult.success || !initResult.deviceCode || !initResult.userCode) {
87
- console.log(_chalk2.default.red(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.login.failed", { error: initResult.error || "Unknown error" })));
88
+ console.log(_chalk2.default.red(_chunkRJCZLFHEcjs.t.call(void 0, "commands.login.failed", { error: initResult.error || "Unknown error" })));
88
89
  return null;
89
90
  }
90
91
  console.log();
91
92
  console.log(_chalk2.default.bold("To sign in, visit:"));
92
- console.log(_chalk2.default.cyan.underline(initResult.verificationUriComplete || `${_chunkKASXKDF2cjs.AUTH_CONFIG.authorizationUrl}?code=${initResult.userCode}`));
93
+ console.log(_chalk2.default.cyan.underline(initResult.verificationUriComplete || `${_chunk3JURXAL6cjs.AUTH_CONFIG.authorizationUrl}?code=${initResult.userCode}`));
93
94
  console.log();
94
95
  console.log(_chalk2.default.gray("Or enter this code manually:"));
95
96
  console.log(_chalk2.default.bold.yellow(` ${initResult.userCode}`));
96
97
  console.log();
97
98
  const browserOpened = await openBrowser(
98
- initResult.verificationUriComplete || `${_chunkKASXKDF2cjs.AUTH_CONFIG.authorizationUrl}?code=${initResult.userCode}`
99
+ initResult.verificationUriComplete || `${_chunk3JURXAL6cjs.AUTH_CONFIG.authorizationUrl}?code=${initResult.userCode}`
99
100
  );
100
101
  if (browserOpened) {
101
102
  console.log(_chalk2.default.gray("Browser opened. Complete the login in your browser."));
@@ -106,8 +107,8 @@ async function login(ctx) {
106
107
  console.log(_chalk2.default.gray("Waiting for authorization..."));
107
108
  console.log(_chalk2.default.gray("(Press Ctrl+C to cancel)"));
108
109
  const startTime = Date.now();
109
- const timeout = _chunkKASXKDF2cjs.AUTH_CONFIG.authTimeout;
110
- const pollInterval = initResult.interval ? initResult.interval * 1e3 : _chunkKASXKDF2cjs.AUTH_CONFIG.pollInterval;
110
+ const timeout = _chunk3JURXAL6cjs.AUTH_CONFIG.authTimeout;
111
+ const pollInterval = initResult.interval ? initResult.interval * 1e3 : _chunk3JURXAL6cjs.AUTH_CONFIG.pollInterval;
111
112
  let dots = 0;
112
113
  const maxDots = 3;
113
114
  while (Date.now() - startTime < timeout) {
@@ -117,7 +118,7 @@ async function login(ctx) {
117
118
  const pollResult = await authClient.pollDeviceAuth(initResult.deviceCode);
118
119
  if (pollResult.status === "authorized" && pollResult.token && pollResult.user) {
119
120
  process.stdout.write("\r" + " ".repeat(20) + "\r");
120
- const expiresAt = new Date(Date.now() + _chunkKASXKDF2cjs.AUTH_CONFIG.sessionExpiryDays * 24 * 60 * 60 * 1e3).toISOString();
121
+ const expiresAt = new Date(Date.now() + _chunk3JURXAL6cjs.AUTH_CONFIG.sessionExpiryDays * 24 * 60 * 60 * 1e3).toISOString();
121
122
  const updatedConfig = {
122
123
  ...config,
123
124
  auth: {
@@ -126,9 +127,9 @@ async function login(ctx) {
126
127
  expiresAt
127
128
  }
128
129
  };
129
- await _chunkX5P6QQOBcjs.saveConfig.call(void 0, updatedConfig);
130
+ await _chunkCNQKIWIScjs.saveConfig.call(void 0, updatedConfig);
130
131
  console.log();
131
- console.log(_chalk2.default.green(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.login.success", { email: pollResult.user.name || pollResult.user.email })));
132
+ console.log(_chalk2.default.green(_chunkRJCZLFHEcjs.t.call(void 0, "commands.login.success", { email: pollResult.user.name || pollResult.user.email })));
132
133
  console.log();
133
134
  if (process.stdin.isTTY && process.stdout.isTTY) {
134
135
  await checkAndRestoreSyncData(pollResult.token, pollResult.user.id, updatedConfig);
@@ -152,11 +153,11 @@ async function login(ctx) {
152
153
  }
153
154
  async function checkAndRestoreSyncData(token, userId, config) {
154
155
  try {
155
- const syncService = _chunkHG3ZASBHcjs.createSyncService.call(void 0, {
156
+ const syncService = _chunkR75AWII3cjs.createSyncService.call(void 0, {
156
157
  authToken: token,
157
158
  userId,
158
159
  config: {
159
- ..._chunkHG3ZASBHcjs.DEFAULT_SYNC_CONFIG,
160
+ ..._chunkR75AWII3cjs.DEFAULT_SYNC_CONFIG,
160
161
  ...config.sync,
161
162
  enabled: true
162
163
  }
@@ -167,13 +168,21 @@ async function checkAndRestoreSyncData(token, userId, config) {
167
168
  if (!remoteManifest || remoteManifest.files.length === 0) {
168
169
  return;
169
170
  }
170
- const fileCount = remoteManifest.files.length;
171
- const totalSize = remoteManifest.files.reduce((sum, f) => sum + f.size, 0);
171
+ const memoryFiles = remoteManifest.files.filter((file) => _chunkR75AWII3cjs.isMemorySyncPath.call(void 0, file.path));
172
+ if (memoryFiles.length > 0) {
173
+ await restoreMemorySyncData(syncService, memoryFiles);
174
+ }
175
+ const consentRequiredFiles = remoteManifest.files.filter((file) => !_chunkR75AWII3cjs.isMemorySyncPath.call(void 0, file.path));
176
+ if (consentRequiredFiles.length === 0) {
177
+ return;
178
+ }
179
+ const fileCount = consentRequiredFiles.length;
180
+ const totalSize = consentRequiredFiles.reduce((sum, f) => sum + f.size, 0);
172
181
  const sizeStr = formatSize(totalSize);
173
182
  console.log(_chalk2.default.cyan(`Found cloud sync data (${fileCount} files, ${sizeStr})`));
174
- console.log(_chalk2.default.gray("This includes your settings, agents, skills, and memory."));
183
+ console.log(_chalk2.default.gray("This includes your settings, agents, skills, sessions, and hooks."));
175
184
  console.log();
176
- const result = await _chunkS5JNQIGLcjs.safePrompt.call(void 0, {
185
+ const result = await _chunkGYLGCR6Fcjs.safePrompt.call(void 0, {
177
186
  type: "confirm",
178
187
  name: "restore",
179
188
  message: "Would you like to restore your settings from the cloud?",
@@ -201,6 +210,12 @@ async function checkAndRestoreSyncData(token, userId, config) {
201
210
  console.log(_chalk2.default.gray("Could not check cloud sync data."));
202
211
  }
203
212
  }
213
+ async function restoreMemorySyncData(syncService, memoryFiles) {
214
+ try {
215
+ await syncService.forceDownloadPaths(memoryFiles.map((file) => file.path));
216
+ } catch (e4) {
217
+ }
218
+ }
204
219
  async function cancellableOperation(fn) {
205
220
  const stdin = process.stdin;
206
221
  const wasRaw = stdin.isRaw;
@@ -211,7 +226,7 @@ async function cancellableOperation(fn) {
211
226
  if (stdin.isTTY && stdin.setRawMode) {
212
227
  try {
213
228
  stdin.setRawMode(_nullishCoalesce(wasRaw, () => ( false)));
214
- } catch (e4) {
229
+ } catch (e5) {
215
230
  }
216
231
  }
217
232
  };
@@ -227,7 +242,7 @@ async function cancellableOperation(fn) {
227
242
  if (stdin.isTTY && stdin.setRawMode) {
228
243
  try {
229
244
  stdin.setRawMode(true);
230
- } catch (e5) {
245
+ } catch (e6) {
231
246
  }
232
247
  }
233
248
  stdin.on("data", onData);
@@ -0,0 +1,303 @@
1
+ // src/onboarding/agentsGenerator.ts
2
+ var AgentsGenerator = class {
3
+ /**
4
+ * Generate AGENTS.md content
5
+ */
6
+ generateContent(info, options) {
7
+ const sections = [];
8
+ sections.push("# AGENTS.md");
9
+ sections.push("");
10
+ sections.push("This file helps Autohand understand how to work with this project.");
11
+ sections.push("");
12
+ sections.push(this.generateProjectOverview(info));
13
+ if (info.packageManager) {
14
+ sections.push(this.generateCommandsSection(info));
15
+ }
16
+ if (info.testFramework) {
17
+ sections.push(this.generateTestingSection(info));
18
+ }
19
+ if (info.framework) {
20
+ const frameworkSection = this.generateFrameworkSection(info);
21
+ if (frameworkSection) {
22
+ sections.push(frameworkSection);
23
+ }
24
+ }
25
+ sections.push(this.generateInstructionSourcesSection());
26
+ sections.push(this.generateCodeStyleSection(info));
27
+ sections.push(this.generateConstraintsSection());
28
+ if (options?.customSections) {
29
+ for (const section of options.customSections) {
30
+ sections.push(`## ${section.title}`);
31
+ sections.push("");
32
+ sections.push(section.content);
33
+ sections.push("");
34
+ }
35
+ }
36
+ return sections.join("\n");
37
+ }
38
+ /**
39
+ * Generate project overview section
40
+ */
41
+ generateProjectOverview(info) {
42
+ const lines = [];
43
+ lines.push("## Project Overview");
44
+ lines.push("");
45
+ if (info.language) {
46
+ lines.push(`- **Language**: ${info.language}`);
47
+ }
48
+ if (info.framework) {
49
+ lines.push(`- **Framework**: ${info.framework}`);
50
+ }
51
+ if (info.packageManager) {
52
+ lines.push(`- **Package Manager**: ${info.packageManager}`);
53
+ }
54
+ if (info.testFramework) {
55
+ lines.push(`- **Test Framework**: ${info.testFramework}`);
56
+ }
57
+ if (info.buildTool) {
58
+ lines.push(`- **Build Tool**: ${info.buildTool}`);
59
+ }
60
+ lines.push("");
61
+ return lines.join("\n");
62
+ }
63
+ /**
64
+ * Generate commands section based on package manager
65
+ */
66
+ generateCommandsSection(info) {
67
+ const lines = [];
68
+ lines.push("## Commands");
69
+ lines.push("");
70
+ const pm = info.packageManager;
71
+ if (info.language === "Rust") {
72
+ lines.push("- **Build**: `cargo build`");
73
+ lines.push("- **Build (release)**: `cargo build --release`");
74
+ lines.push("- **Run**: `cargo run`");
75
+ lines.push("- **Test**: `cargo test`");
76
+ lines.push("- **Check**: `cargo check`");
77
+ lines.push("- **Format**: `cargo fmt`");
78
+ lines.push("- **Lint**: `cargo clippy`");
79
+ } else if (info.language === "Go") {
80
+ lines.push("- **Build**: `go build`");
81
+ lines.push("- **Run**: `go run .`");
82
+ lines.push("- **Test**: `go test ./...`");
83
+ lines.push("- **Format**: `go fmt ./...`");
84
+ lines.push("- **Vet**: `go vet ./...`");
85
+ } else if (info.language === "Python") {
86
+ if (pm === "poetry") {
87
+ lines.push("- **Install**: `poetry install`");
88
+ lines.push("- **Run**: `poetry run python main.py`");
89
+ lines.push("- **Add dependency**: `poetry add <package>`");
90
+ if (info.testFramework) {
91
+ lines.push(`- **Test**: \`poetry run pytest\``);
92
+ }
93
+ } else if (pm === "pipenv") {
94
+ lines.push("- **Install**: `pipenv install`");
95
+ lines.push("- **Run**: `pipenv run python main.py`");
96
+ if (info.testFramework) {
97
+ lines.push(`- **Test**: \`pipenv run pytest\``);
98
+ }
99
+ } else {
100
+ lines.push("- **Install**: `pip install -r requirements.txt`");
101
+ lines.push("- **Run**: `python main.py`");
102
+ if (info.testFramework) {
103
+ lines.push(`- **Test**: \`pytest\``);
104
+ }
105
+ }
106
+ } else {
107
+ const run = pm === "npm" ? "npm run" : pm;
108
+ const install = pm === "npm" ? "npm install" : `${pm} install`;
109
+ lines.push(`- **Install**: \`${install}\``);
110
+ lines.push(`- **Dev**: \`${run} dev\``);
111
+ lines.push(`- **Build**: \`${run} build\``);
112
+ if (info.testFramework) {
113
+ lines.push(`- **Test**: \`${run} test\``);
114
+ }
115
+ if (info.linter) {
116
+ lines.push(`- **Lint**: \`${run} lint\``);
117
+ }
118
+ if (info.formatter) {
119
+ lines.push(`- **Format**: \`${run} format\``);
120
+ }
121
+ }
122
+ lines.push("");
123
+ return lines.join("\n");
124
+ }
125
+ /**
126
+ * Generate testing section
127
+ */
128
+ generateTestingSection(info) {
129
+ const lines = [];
130
+ lines.push("## Testing");
131
+ lines.push("");
132
+ lines.push(`This project uses **${info.testFramework}** for testing.`);
133
+ lines.push("");
134
+ lines.push("- Write tests for new features before implementation");
135
+ lines.push("- Run tests before committing changes");
136
+ lines.push("- Aim for good test coverage on critical paths");
137
+ if (info.testFramework === "Vitest" || info.testFramework === "Jest") {
138
+ lines.push("- Use `describe` and `it` blocks to organize tests");
139
+ lines.push("- Mock external dependencies when appropriate");
140
+ } else if (info.testFramework === "pytest") {
141
+ lines.push("- Use fixtures for shared test setup");
142
+ lines.push("- Use `pytest.mark` for test categorization");
143
+ } else if (info.testFramework === "Playwright" || info.testFramework === "Cypress") {
144
+ lines.push("- Write E2E tests for critical user flows");
145
+ lines.push("- Keep selectors stable and meaningful");
146
+ }
147
+ lines.push("");
148
+ return lines.join("\n");
149
+ }
150
+ /**
151
+ * Generate framework-specific section
152
+ */
153
+ generateFrameworkSection(info) {
154
+ const lines = [];
155
+ switch (info.framework) {
156
+ case "Next.js":
157
+ lines.push("## Next.js Guidelines");
158
+ lines.push("");
159
+ lines.push("- Use the App Router for new pages (`app/` directory)");
160
+ lines.push("- Prefer Server Components by default");
161
+ lines.push('- Use `"use client"` only when needed for interactivity');
162
+ lines.push("- Keep API routes in `app/api/`");
163
+ lines.push("- Use `next/image` for optimized images");
164
+ lines.push("- Use `next/link` for client-side navigation");
165
+ break;
166
+ case "React":
167
+ lines.push("## React Guidelines");
168
+ lines.push("");
169
+ lines.push("- Use functional components with hooks");
170
+ lines.push("- Keep components small and focused");
171
+ lines.push("- Use custom hooks to share logic");
172
+ lines.push("- Prefer composition over inheritance");
173
+ lines.push("- Use TypeScript interfaces for props");
174
+ break;
175
+ case "Vue":
176
+ lines.push("## Vue Guidelines");
177
+ lines.push("");
178
+ lines.push("- Use Composition API for new components");
179
+ lines.push("- Keep components in single-file format (.vue)");
180
+ lines.push("- Use composables to share logic");
181
+ break;
182
+ case "Express":
183
+ lines.push("## Express Guidelines");
184
+ lines.push("");
185
+ lines.push("- Use middleware for cross-cutting concerns");
186
+ lines.push("- Keep route handlers thin, delegate to services");
187
+ lines.push("- Use async/await with proper error handling");
188
+ lines.push("- Validate request input before processing");
189
+ break;
190
+ case "FastAPI":
191
+ lines.push("## FastAPI Guidelines");
192
+ lines.push("");
193
+ lines.push("- Use Pydantic models for request/response validation");
194
+ lines.push("- Use dependency injection for shared resources");
195
+ lines.push("- Keep endpoints in organized routers");
196
+ lines.push("- Use async functions for I/O operations");
197
+ break;
198
+ case "Django":
199
+ lines.push("## Django Guidelines");
200
+ lines.push("");
201
+ lines.push("- Follow Django project structure conventions");
202
+ lines.push("- Use class-based views where appropriate");
203
+ lines.push("- Keep business logic in models or services");
204
+ lines.push("- Use Django ORM for database operations");
205
+ break;
206
+ case "Flask":
207
+ lines.push("## Flask Guidelines");
208
+ lines.push("");
209
+ lines.push("- Use blueprints to organize routes");
210
+ lines.push("- Keep route handlers focused");
211
+ lines.push("- Use Flask extensions for common functionality");
212
+ break;
213
+ case "NestJS":
214
+ lines.push("## NestJS Guidelines");
215
+ lines.push("");
216
+ lines.push("- Follow module-based architecture");
217
+ lines.push("- Use dependency injection");
218
+ lines.push("- Use decorators for metadata");
219
+ lines.push("- Keep controllers thin, services fat");
220
+ break;
221
+ default:
222
+ return null;
223
+ }
224
+ lines.push("");
225
+ return lines.join("\n");
226
+ }
227
+ /**
228
+ * Generate instruction sources section
229
+ */
230
+ generateInstructionSourcesSection() {
231
+ const lines = [];
232
+ lines.push("## Instruction Sources");
233
+ lines.push("");
234
+ lines.push("- Check saved memories and preferences before implementation work.");
235
+ lines.push("- Follow this AGENTS.md file for repository-specific guidance.");
236
+ lines.push("- AGENTS.md takes precedence over CLAUDE.md when both files provide instructions.");
237
+ lines.push("");
238
+ return lines.join("\n");
239
+ }
240
+ /**
241
+ * Generate code style section
242
+ */
243
+ generateCodeStyleSection(info) {
244
+ const lines = [];
245
+ lines.push("## Code Style");
246
+ lines.push("");
247
+ if (info.language === "TypeScript") {
248
+ lines.push("- Use strict TypeScript settings");
249
+ lines.push("- Define types/interfaces for data structures");
250
+ lines.push("- Avoid `any` type - use `unknown` if type is truly unknown");
251
+ lines.push("- Use type inference where obvious");
252
+ } else if (info.language === "Python") {
253
+ lines.push("- Follow PEP 8 style guidelines");
254
+ lines.push("- Use type hints for function signatures");
255
+ lines.push("- Use docstrings for public functions");
256
+ } else if (info.language === "Rust") {
257
+ lines.push("- Follow Rust naming conventions (snake_case for functions)");
258
+ lines.push("- Use descriptive error types");
259
+ lines.push("- Prefer `Result` over panicking");
260
+ } else if (info.language === "Go") {
261
+ lines.push("- Follow Go idioms and conventions");
262
+ lines.push("- Use short variable names in small scopes");
263
+ lines.push("- Handle errors explicitly");
264
+ }
265
+ lines.push("- Follow existing patterns in the codebase");
266
+ lines.push("- Use meaningful variable and function names");
267
+ lines.push("- Add comments for complex logic");
268
+ lines.push("- Keep functions focused and small");
269
+ if (info.linter) {
270
+ lines.push(`- Run **${info.linter}** before committing`);
271
+ }
272
+ if (info.formatter) {
273
+ lines.push(`- Format code with **${info.formatter}**`);
274
+ }
275
+ lines.push("");
276
+ return lines.join("\n");
277
+ }
278
+ /**
279
+ * Generate constraints section
280
+ */
281
+ generateConstraintsSection() {
282
+ const lines = [];
283
+ lines.push("## Constraints");
284
+ lines.push("");
285
+ lines.push("- Do not modify files outside the project directory");
286
+ lines.push("- Ask before making breaking changes");
287
+ lines.push("- Prefer editing existing files over creating new ones");
288
+ lines.push("- Do not delete files without confirmation");
289
+ lines.push("- Keep dependencies minimal - avoid adding new ones without good reason");
290
+ lines.push("- Do not commit sensitive data (API keys, secrets, credentials)");
291
+ lines.push("");
292
+ return lines.join("\n");
293
+ }
294
+ };
295
+
296
+ export {
297
+ AgentsGenerator
298
+ };
299
+ /**
300
+ * @license
301
+ * Copyright 2025 Autohand AI LLC
302
+ * SPDX-License-Identifier: Apache-2.0
303
+ */