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
@@ -0,0 +1,303 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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; }// 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 (_optionalChain([options, 'optionalAccess', _ => _.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
+
297
+
298
+ exports.AgentsGenerator = AgentsGenerator;
299
+ /**
300
+ * @license
301
+ * Copyright 2025 Autohand AI LLC
302
+ * SPDX-License-Identifier: Apache-2.0
303
+ */
@@ -1,9 +1,13 @@
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; }
2
2
 
3
- var _chunkP6SLT2F4cjs = require('./chunk-P6SLT2F4.cjs');
3
+ var _chunkAZLHUPNCcjs = require('./chunk-AZLHUPNC.cjs');
4
4
 
5
5
 
6
- var _chunkHK5A54AVcjs = require('./chunk-HK5A54AV.cjs');
6
+
7
+ var _chunkEK34UZPBcjs = require('./chunk-EK34UZPB.cjs');
8
+
9
+
10
+ var _chunk7TO3PDMVcjs = require('./chunk-7TO3PDMV.cjs');
7
11
 
8
12
 
9
13
 
@@ -11,16 +15,16 @@ var _chunkHK5A54AVcjs = require('./chunk-HK5A54AV.cjs');
11
15
  var _chunkYWTIXHU6cjs = require('./chunk-YWTIXHU6.cjs');
12
16
 
13
17
 
14
- var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
18
+ var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
15
19
 
16
20
  // src/config.ts
17
21
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
18
22
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
19
23
  var _yaml = require('yaml'); var _yaml2 = _interopRequireDefault(_yaml);
20
- var DEFAULT_CONFIG_PATH = _chunkKASXKDF2cjs.AUTOHAND_FILES.configJson;
21
- var TOML_CONFIG_PATH = _chunkKASXKDF2cjs.AUTOHAND_FILES.configToml;
22
- var YAML_CONFIG_PATH = _chunkKASXKDF2cjs.AUTOHAND_FILES.configYaml;
23
- var YML_CONFIG_PATH = _chunkKASXKDF2cjs.AUTOHAND_FILES.configYml;
24
+ var DEFAULT_CONFIG_PATH = _chunk3JURXAL6cjs.AUTOHAND_FILES.configJson;
25
+ var TOML_CONFIG_PATH = _chunk3JURXAL6cjs.AUTOHAND_FILES.configToml;
26
+ var YAML_CONFIG_PATH = _chunk3JURXAL6cjs.AUTOHAND_FILES.configYaml;
27
+ var YML_CONFIG_PATH = _chunk3JURXAL6cjs.AUTOHAND_FILES.configYml;
24
28
  var DEFAULT_BASE_URL = "https://openrouter.ai/api/v1";
25
29
  var DEFAULT_OLLAMA_URL = "http://localhost:11434";
26
30
  var DEFAULT_LLAMACPP_URL = "http://localhost:8080";
@@ -28,6 +32,7 @@ var DEFAULT_OPENAI_URL = "https://api.openai.com/v1";
28
32
  var DEFAULT_MLX_URL = "http://localhost:8080";
29
33
  var DEFAULT_LLMGATEWAY_URL = "https://api.llmgateway.io/v1";
30
34
  var DEFAULT_ZAI_URL = "https://api.z.ai/api/paas/v4";
35
+ var DEFAULT_SAKANA_URL = "https://api.sakana.ai/v1";
31
36
  var DEFAULT_DEEPSEEK_URL = "https://api.deepseek.com";
32
37
  var DEFAULT_BEDROCK_REGION = "us-east-1";
33
38
  function normalizeProviderName(provider) {
@@ -37,6 +42,9 @@ function normalizeProviderName(provider) {
37
42
  if (provider === "vertex") {
38
43
  return "vertexai";
39
44
  }
45
+ if (_chunkEK34UZPBcjs.isCustomProviderName.call(void 0, provider)) {
46
+ return provider;
47
+ }
40
48
  const validProviders = [
41
49
  "openrouter",
42
50
  "ollama",
@@ -46,6 +54,7 @@ function normalizeProviderName(provider) {
46
54
  "llmgateway",
47
55
  "azure",
48
56
  "zai",
57
+ "sakana",
49
58
  "vertexai",
50
59
  "xai",
51
60
  "cerebras",
@@ -343,7 +352,7 @@ async function loadConfig(customPath, workspaceRoot) {
343
352
  const normalized = normalizeConfig(parsed);
344
353
  let workspaceSettings = null;
345
354
  if (workspaceRoot) {
346
- workspaceSettings = await _chunkP6SLT2F4cjs.loadLocalProjectSettings.call(void 0, workspaceRoot);
355
+ workspaceSettings = await _chunkAZLHUPNCcjs.loadLocalProjectSettings.call(void 0, workspaceRoot);
347
356
  }
348
357
  const withWorkspace = mergeWorkspaceSettings(normalized, workspaceSettings);
349
358
  const withEnv = mergeEnvVariables(withWorkspace);
@@ -363,7 +372,18 @@ function mergeWorkspaceSettings(globalConfig, workspaceSettings) {
363
372
  }
364
373
  if (workspaceSettings.model !== void 0) {
365
374
  const provider = workspaceSettings.provider || merged.provider;
366
- if (provider && merged[provider]) {
375
+ if (provider && _chunkEK34UZPBcjs.isCustomProviderName.call(void 0, provider)) {
376
+ const customProvider = _chunkEK34UZPBcjs.getCustomProviderConfig.call(void 0, merged, provider);
377
+ if (customProvider) {
378
+ merged.customProviders = {
379
+ ...merged.customProviders,
380
+ [customProvider.id]: {
381
+ ...customProvider,
382
+ model: workspaceSettings.model
383
+ }
384
+ };
385
+ }
386
+ } else if (provider && merged[provider]) {
367
387
  merged[provider].model = workspaceSettings.model;
368
388
  }
369
389
  }
@@ -477,7 +497,7 @@ function normalizeConfig(config) {
477
497
  return config;
478
498
  }
479
499
  function isModernConfig(config) {
480
- return typeof config.openrouter === "object" || typeof config.ollama === "object" || typeof config.llamacpp === "object" || typeof config.openai === "object" || typeof config.mlx === "object" || typeof config.azure === "object" || typeof config.zai === "object" || typeof config.vertexai === "object" || typeof config.xai === "object" || typeof config.cerebras === "object" || typeof config.nvidia === "object" || typeof config.deepseek === "object" || typeof config.bedrock === "object";
500
+ return typeof config.openrouter === "object" || typeof config.ollama === "object" || typeof config.llamacpp === "object" || typeof config.openai === "object" || typeof config.mlx === "object" || typeof config.azure === "object" || typeof config.zai === "object" || typeof config.sakana === "object" || typeof config.vertexai === "object" || typeof config.xai === "object" || typeof config.cerebras === "object" || typeof config.nvidia === "object" || typeof config.deepseek === "object" || typeof config.bedrock === "object" || typeof config.customProviders === "object";
481
501
  }
482
502
  function isLegacyConfig(config) {
483
503
  return typeof config.api_key === "string";
@@ -517,6 +537,9 @@ function validateConfig(config, configPath) {
517
537
  throw new Error(`ui.activityVerbsEnabled must be boolean in ${configPath}`);
518
538
  }
519
539
  }
540
+ if (_optionalChain([config, 'access', _9 => _9.auth, 'optionalAccess', _10 => _10.apiKeyHelper]) !== void 0 && typeof config.auth.apiKeyHelper !== "string") {
541
+ throw new Error(`auth.apiKeyHelper must be a string in ${configPath}`);
542
+ }
520
543
  if (config.agent) {
521
544
  if (config.agent.toolSelectionCache !== void 0 && typeof config.agent.toolSelectionCache !== "boolean") {
522
545
  throw new Error(`agent.toolSelectionCache must be boolean in ${configPath}`);
@@ -575,16 +598,68 @@ function validateConfig(config, configPath) {
575
598
  }
576
599
  }
577
600
  }
601
+ if (config.customProviders !== void 0) {
602
+ if (!isPlainObject(config.customProviders)) {
603
+ throw new Error(`customProviders must be an object in ${configPath}`);
604
+ }
605
+ for (const [key, provider] of Object.entries(config.customProviders)) {
606
+ if (!isPlainObject(provider)) {
607
+ throw new Error(`customProviders.${key} must be an object in ${configPath}`);
608
+ }
609
+ if (provider.id !== key) {
610
+ throw new Error(`customProviders.${key}.id must match its config key in ${configPath}`);
611
+ }
612
+ if (typeof provider.displayName !== "string" || provider.displayName.trim() === "") {
613
+ throw new Error(`customProviders.${key}.displayName must be a non-empty string in ${configPath}`);
614
+ }
615
+ if (provider.apiFormat !== "openai-compatible") {
616
+ throw new Error(`customProviders.${key}.apiFormat must be "openai-compatible" in ${configPath}`);
617
+ }
618
+ if (typeof provider.baseUrl !== "string" || provider.baseUrl.trim() === "") {
619
+ throw new Error(`customProviders.${key}.baseUrl must be a non-empty string in ${configPath}`);
620
+ }
621
+ if (typeof provider.model !== "string" || provider.model.trim() === "") {
622
+ throw new Error(`customProviders.${key}.model must be a non-empty string in ${configPath}`);
623
+ }
624
+ if (provider.apiKeyRequired !== void 0 && typeof provider.apiKeyRequired !== "boolean") {
625
+ throw new Error(`customProviders.${key}.apiKeyRequired must be boolean in ${configPath}`);
626
+ }
627
+ if (provider.contextWindow !== void 0 && (typeof provider.contextWindow !== "number" || provider.contextWindow <= 0)) {
628
+ throw new Error(`customProviders.${key}.contextWindow must be a positive number in ${configPath}`);
629
+ }
630
+ }
631
+ }
578
632
  }
579
633
  function resolveWorkspaceRoot(config, requestedPath) {
580
- const candidate = _nullishCoalesce(_nullishCoalesce(requestedPath, () => ( process.cwd())), () => ( _optionalChain([config, 'access', _9 => _9.workspace, 'optionalAccess', _10 => _10.defaultRoot])));
634
+ const candidate = _nullishCoalesce(_nullishCoalesce(requestedPath, () => ( process.cwd())), () => ( _optionalChain([config, 'access', _11 => _11.workspace, 'optionalAccess', _12 => _12.defaultRoot])));
581
635
  return _path2.default.resolve(candidate);
582
636
  }
583
637
  function getProviderConfig(config, provider) {
584
638
  const chosen = _nullishCoalesce(_nullishCoalesce(provider, () => ( config.provider)), () => ( "openrouter"));
585
- if (chosen === "bedrock" && !_chunkHK5A54AVcjs.isAwsBedrockProviderEnabled.call(void 0, config)) {
639
+ if (_chunkEK34UZPBcjs.isCustomProviderName.call(void 0, chosen)) {
640
+ const entry2 = _chunkEK34UZPBcjs.getCustomProviderConfig.call(void 0, config, chosen);
641
+ if (!entry2 || entry2.apiFormat !== "openai-compatible") {
642
+ return null;
643
+ }
644
+ const model = _optionalChain([entry2, 'access', _13 => _13.model, 'optionalAccess', _14 => _14.trim, 'call', _15 => _15()]);
645
+ const baseUrl = _optionalChain([entry2, 'access', _16 => _16.baseUrl, 'optionalAccess', _17 => _17.trim, 'call', _18 => _18()]);
646
+ const requiresApiKey = entry2.apiKeyRequired !== false;
647
+ if (!model || !baseUrl) {
648
+ return null;
649
+ }
650
+ if (requiresApiKey && (!entry2.apiKey || entry2.apiKey === "replace-me")) {
651
+ return null;
652
+ }
653
+ return {
654
+ ...entry2,
655
+ model,
656
+ baseUrl
657
+ };
658
+ }
659
+ if (chosen === "bedrock" && !_chunk7TO3PDMVcjs.isAwsBedrockProviderEnabled.call(void 0, config)) {
586
660
  return null;
587
661
  }
662
+ const builtInProvider = chosen;
588
663
  const configByProvider = {
589
664
  openrouter: config.openrouter,
590
665
  ollama: config.ollama,
@@ -594,6 +669,7 @@ function getProviderConfig(config, provider) {
594
669
  llmgateway: config.llmgateway,
595
670
  azure: config.azure,
596
671
  zai: config.zai,
672
+ sakana: config.sakana,
597
673
  vertexai: config.vertexai,
598
674
  xai: config.xai,
599
675
  cerebras: config.cerebras,
@@ -601,7 +677,7 @@ function getProviderConfig(config, provider) {
601
677
  deepseek: config.deepseek,
602
678
  bedrock: config.bedrock
603
679
  };
604
- const entry = configByProvider[chosen];
680
+ const entry = configByProvider[builtInProvider];
605
681
  if (!entry) {
606
682
  return null;
607
683
  }
@@ -611,7 +687,7 @@ function getProviderConfig(config, provider) {
611
687
  return null;
612
688
  }
613
689
  if (openAIEntry.authMode === "chatgpt") {
614
- if (!_optionalChain([openAIEntry, 'access', _11 => _11.chatgptAuth, 'optionalAccess', _12 => _12.accessToken]) || !_optionalChain([openAIEntry, 'access', _13 => _13.chatgptAuth, 'optionalAccess', _14 => _14.accountId])) {
690
+ if (!_optionalChain([openAIEntry, 'access', _19 => _19.chatgptAuth, 'optionalAccess', _20 => _20.accessToken]) || !_optionalChain([openAIEntry, 'access', _21 => _21.chatgptAuth, 'optionalAccess', _22 => _22.accountId])) {
615
691
  return null;
616
692
  }
617
693
  } else {
@@ -619,24 +695,24 @@ function getProviderConfig(config, provider) {
619
695
  return null;
620
696
  }
621
697
  }
622
- } else if (chosen === "openrouter" || chosen === "llmgateway" || chosen === "zai" || chosen === "nvidia" || chosen === "deepseek") {
698
+ } else if (builtInProvider === "openrouter" || builtInProvider === "llmgateway" || builtInProvider === "zai" || builtInProvider === "sakana" || builtInProvider === "nvidia" || builtInProvider === "deepseek") {
623
699
  const { apiKey, model } = entry;
624
700
  if (!apiKey || apiKey === "replace-me" || !model) {
625
701
  return null;
626
702
  }
627
- } else if (chosen === "vertexai") {
703
+ } else if (builtInProvider === "vertexai") {
628
704
  const { authToken, projectId, model } = entry;
629
705
  if (!authToken || !projectId || !model) {
630
706
  return null;
631
707
  }
632
- } else if (chosen === "bedrock") {
708
+ } else if (builtInProvider === "bedrock") {
633
709
  return normalizeBedrockProviderConfig(entry);
634
710
  } else {
635
- if (chosen === "llamacpp") {
711
+ if (builtInProvider === "llamacpp") {
636
712
  return {
637
713
  ...entry,
638
714
  model: _nullishCoalesce(entry.model, () => ( "local")),
639
- baseUrl: _nullishCoalesce(entry.baseUrl, () => ( defaultBaseUrlFor(chosen, entry.port)))
715
+ baseUrl: _nullishCoalesce(entry.baseUrl, () => ( defaultBaseUrlFor(builtInProvider, entry.port)))
640
716
  };
641
717
  }
642
718
  if (!entry.model) {
@@ -645,13 +721,14 @@ function getProviderConfig(config, provider) {
645
721
  }
646
722
  return {
647
723
  ...entry,
648
- baseUrl: _nullishCoalesce(entry.baseUrl, () => ( defaultBaseUrlFor(chosen, entry.port)))
724
+ baseUrl: _nullishCoalesce(entry.baseUrl, () => ( defaultBaseUrlFor(builtInProvider, entry.port)))
649
725
  };
650
726
  }
651
727
  function defaultBaseUrlFor(provider, port) {
652
728
  if (provider === "openrouter") return DEFAULT_BASE_URL;
653
729
  if (provider === "llmgateway") return DEFAULT_LLMGATEWAY_URL;
654
730
  if (provider === "zai") return DEFAULT_ZAI_URL;
731
+ if (provider === "sakana") return DEFAULT_SAKANA_URL;
655
732
  if (provider === "deepseek") return DEFAULT_DEEPSEEK_URL;
656
733
  const p = port ? port.toString() : void 0;
657
734
  switch (provider) {
@@ -672,11 +749,11 @@ function defaultBaseUrlFor(provider, port) {
672
749
  }
673
750
  }
674
751
  function normalizeBedrockProviderConfig(entry) {
675
- const model = _optionalChain([entry, 'access', _15 => _15.model, 'optionalAccess', _16 => _16.trim, 'call', _17 => _17()]);
676
- const region = _optionalChain([entry, 'access', _18 => _18.region, 'optionalAccess', _19 => _19.trim, 'call', _20 => _20()]) || process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || DEFAULT_BEDROCK_REGION;
752
+ const model = _optionalChain([entry, 'access', _23 => _23.model, 'optionalAccess', _24 => _24.trim, 'call', _25 => _25()]);
753
+ const region = _optionalChain([entry, 'access', _26 => _26.region, 'optionalAccess', _27 => _27.trim, 'call', _28 => _28()]) || process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || DEFAULT_BEDROCK_REGION;
677
754
  const apiMode = _nullishCoalesce(entry.apiMode, () => ( "converse"));
678
755
  const authMode = _nullishCoalesce(entry.authMode, () => ( (apiMode === "converse" ? "aws-credentials" : "bedrock-api-key")));
679
- const endpoint = _nullishCoalesce(_optionalChain([entry, 'access', _21 => _21.endpoint, 'optionalAccess', _22 => _22.replace, 'call', _23 => _23(/\/+$/, "")]), () => ( (apiMode === "converse" ? `https://bedrock-runtime.${region}.amazonaws.com` : `https://bedrock-runtime.${region}.amazonaws.com/openai/v1`)));
756
+ const endpoint = _nullishCoalesce(_optionalChain([entry, 'access', _29 => _29.endpoint, 'optionalAccess', _30 => _30.replace, 'call', _31 => _31(/\/+$/, "")]), () => ( (apiMode === "converse" ? `https://bedrock-runtime.${region}.amazonaws.com` : `https://bedrock-runtime.${region}.amazonaws.com/openai/v1`)));
680
757
  if (!model || !region) {
681
758
  return null;
682
759
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});// package.json
2
2
  var package_default = {
3
3
  name: "autohand-cli",
4
- version: "0.9.1",
4
+ version: "0.9.2",
5
5
  license: "Apache-2.0",
6
6
  description: "Autohand Code CLI is a fast, terminal-native AI coding agent for planning, editing, testing, and automating software work.",
7
7
  repository: {
@@ -64,7 +64,7 @@ var package_default = {
64
64
  dotenv: "^17.4.2",
65
65
  "fs-extra": "^11.3.4",
66
66
  ignore: "^7.0.5",
67
- ink: "^7.0.1",
67
+ ink: "^7.0.5",
68
68
  "ink-spinner": "^5.0.0",
69
69
  minimatch: "^10.2.5",
70
70
  "node-notifier": "^10.0.1",
@@ -104,7 +104,8 @@ var package_default = {
104
104
  vitest: "^4.1.5"
105
105
  },
106
106
  overrides: {
107
- "ansi-styles": "^6.2.3"
107
+ "ansi-styles": "^6.2.3",
108
+ uuid: "^11.1.0"
108
109
  }
109
110
  };
110
111
 
@@ -1,22 +1,23 @@
1
1
  import {
2
2
  DEFAULT_SYNC_CONFIG,
3
- createSyncService
4
- } from "./chunk-V5ELP2XE.js";
3
+ createSyncService,
4
+ isMemorySyncPath
5
+ } from "./chunk-H65446XW.js";
5
6
  import {
6
7
  safePrompt
7
- } from "./chunk-MMKZSJUN.js";
8
+ } from "./chunk-NKW6CHXQ.js";
8
9
  import {
9
10
  getAuthClient
10
- } from "./chunk-6AYJCDTA.js";
11
+ } from "./chunk-MA3AVDCC.js";
11
12
  import {
12
13
  saveConfig
13
- } from "./chunk-IEPLQ47J.js";
14
+ } from "./chunk-CM24K6ZT.js";
14
15
  import {
15
16
  AUTH_CONFIG
16
- } from "./chunk-SHRLFX6F.js";
17
+ } from "./chunk-PG2JIU5M.js";
17
18
  import {
18
19
  t
19
- } from "./chunk-LEZEWKPA.js";
20
+ } from "./chunk-SJQU2ZFR.js";
20
21
 
21
22
  // src/commands/login.ts
22
23
  import chalk from "chalk";
@@ -167,11 +168,19 @@ 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) => isMemorySyncPath(file.path));
172
+ if (memoryFiles.length > 0) {
173
+ await restoreMemorySyncData(syncService, memoryFiles);
174
+ }
175
+ const consentRequiredFiles = remoteManifest.files.filter((file) => !isMemorySyncPath(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(chalk.cyan(`Found cloud sync data (${fileCount} files, ${sizeStr})`));
174
- console.log(chalk.gray("This includes your settings, agents, skills, and memory."));
183
+ console.log(chalk.gray("This includes your settings, agents, skills, sessions, and hooks."));
175
184
  console.log();
176
185
  const result = await safePrompt({
177
186
  type: "confirm",
@@ -201,6 +210,12 @@ async function checkAndRestoreSyncData(token, userId, config) {
201
210
  console.log(chalk.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 {
217
+ }
218
+ }
204
219
  async function cancellableOperation(fn) {
205
220
  const stdin = process.stdin;
206
221
  const wasRaw = stdin.isRaw;