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,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
3
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
4
4
 
5
5
  // src/commands/history.ts
6
6
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
7
7
  var metadata = {
8
8
  command: "/history",
9
- description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.history.title"),
9
+ description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.history.title"),
10
10
  implemented: true
11
11
  };
12
12
  function formatHistoryEntry(entry) {
@@ -72,14 +72,14 @@ async function history(ctx) {
72
72
  const allSessions = await ctx.sessionManager.listSessions();
73
73
  if (allSessions.length === 0) {
74
74
  console.log(_chalk2.default.gray(`
75
- ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.history.empty")}
75
+ ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.empty")}
76
76
  `));
77
77
  return null;
78
78
  }
79
79
  const entries = allSessions.map(toHistoryEntry);
80
80
  const paginated = paginateHistory(entries, page, pageSize);
81
81
  console.log(_chalk2.default.cyan(`
82
- ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.history.title")}
82
+ ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.title")}
83
83
  `));
84
84
  console.log(
85
85
  _chalk2.default.bold(
@@ -95,14 +95,14 @@ ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.history.title")}
95
95
  console.log(
96
96
  _chalk2.default.gray(
97
97
  `
98
- ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.history.showing", { page: paginated.currentPage, total: paginated.totalPages, count: paginated.totalItems })}`
98
+ ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.showing", { page: paginated.currentPage, total: paginated.totalPages, count: paginated.totalItems })}`
99
99
  )
100
100
  );
101
101
  }
102
102
  if (paginated.totalPages > 1 && paginated.currentPage < paginated.totalPages) {
103
103
  console.log(_chalk2.default.gray(`Use /history ${paginated.currentPage + 1} for next page`));
104
104
  }
105
- console.log(_chalk2.default.gray(`${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.history.resumeHint")}
105
+ console.log(_chalk2.default.gray(`${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.resumeHint")}
106
106
  `));
107
107
  return null;
108
108
  } catch (error) {
@@ -219,7 +219,7 @@ var PlanModeManager = class extends EventEmitter {
219
219
  // src/commands/plan.ts
220
220
  var metadata = {
221
221
  command: "/plan",
222
- description: "toggle plan mode for safe code exploration",
222
+ description: "plan and break down a complex task",
223
223
  implemented: true
224
224
  };
225
225
  var planModeManager = null;
@@ -1,6 +1,6 @@
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 }; }
2
2
 
3
- var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
3
+ var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
4
4
 
5
5
  // src/skills/autoSkill.ts
6
6
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
@@ -440,8 +440,8 @@ async function runAutoSkillGeneration(workspaceRoot, llm) {
440
440
  console.log(_chalk2.default.gray(`Detected: ${detected}`));
441
441
  console.log(_chalk2.default.gray(`Platform: ${analysis.platform}`));
442
442
  console.log(_chalk2.default.cyan("Generating targeted skill via LearnAdvisor..."));
443
- const { LearnAdvisor } = await Promise.resolve().then(() => _interopRequireWildcard(require("./LearnAdvisor-Q7RAYLPF.cjs")));
444
- const { computeProjectHash, injectGeneratedMetadata } = await Promise.resolve().then(() => _interopRequireWildcard(require("./communityInstaller-LXMVKVAV.cjs")));
443
+ const { LearnAdvisor } = await Promise.resolve().then(() => _interopRequireWildcard(require("./LearnAdvisor-LAURA3IB.cjs")));
444
+ const { computeProjectHash, injectGeneratedMetadata } = await Promise.resolve().then(() => _interopRequireWildcard(require("./communityInstaller-IRR6M3N6.cjs")));
445
445
  const advisor = new LearnAdvisor(llm);
446
446
  const generated = await advisor.generateSkill(analysis, null, []);
447
447
  if (!generated) {
@@ -449,7 +449,7 @@ async function runAutoSkillGeneration(workspaceRoot, llm) {
449
449
  result.error = "No skills generated";
450
450
  return result;
451
451
  }
452
- const skillsDir = _path2.default.join(workspaceRoot, _chunkKASXKDF2cjs.PROJECT_DIR_NAME, "skills");
452
+ const skillsDir = _path2.default.join(workspaceRoot, _chunk3JURXAL6cjs.PROJECT_DIR_NAME, "skills");
453
453
  const projectHash = computeProjectHash(analysis);
454
454
  let frontmatter = `---
455
455
  name: ${generated.name}
@@ -3,10 +3,10 @@
3
3
  var _chunkDA7NBAJKcjs = require('./chunk-DA7NBAJK.cjs');
4
4
 
5
5
 
6
- var _chunkYFXTE422cjs = require('./chunk-YFXTE422.cjs');
6
+ var _chunkVWHAUB77cjs = require('./chunk-VWHAUB77.cjs');
7
7
 
8
8
 
9
- var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
9
+ var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
10
10
 
11
11
  // src/commands/new.ts
12
12
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -17,7 +17,7 @@ async function newConversation(ctx) {
17
17
  });
18
18
  }
19
19
  const conversationHistory = _chunkDA7NBAJKcjs.ConversationManager.getInstance().history();
20
- const saved = await _chunkYFXTE422cjs.extractAndSaveSessionMemories.call(void 0, {
20
+ const saved = await _chunkVWHAUB77cjs.extractAndSaveSessionMemories.call(void 0, {
21
21
  llm: ctx.llm,
22
22
  memoryManager: ctx.memoryManager,
23
23
  conversationHistory,
@@ -42,7 +42,7 @@ async function newConversation(ctx) {
42
42
  )
43
43
  );
44
44
  } else {
45
- console.log(_chalk2.default.cyan(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.new.cleared")));
45
+ console.log(_chalk2.default.cyan(_chunkRJCZLFHEcjs.t.call(void 0, "commands.new.cleared")));
46
46
  }
47
47
  console.log();
48
48
  return null;
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await 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 _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
3
+ var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
4
4
 
5
5
  // src/browser/chrome.ts
6
6
  var _crypto = require('crypto'); var _crypto2 = _interopRequireDefault(_crypto);
@@ -15,13 +15,13 @@ var CHROME_NATIVE_HOST_NAME = "ai.autohand.rpc";
15
15
  var DEFAULT_CHROME_INSTALL_URL = "https://autohand.ai/chrome/installed";
16
16
  var DEFAULT_HANDOFF_TTL_MS = 10 * 60 * 1e3;
17
17
  var ALL_BROWSERS = ["chrome", "chromium", "brave", "edge"];
18
- function getChromeHome(homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME) {
18
+ function getChromeHome(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
19
19
  return _path2.default.join(homeDir, "chrome");
20
20
  }
21
- function getBrowserDataRoot(homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME) {
21
+ function getBrowserDataRoot(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
22
22
  return _path2.default.join(getChromeHome(homeDir), "native-host");
23
23
  }
24
- function getHandoffDir(homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME) {
24
+ function getHandoffDir(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
25
25
  return _path2.default.join(getChromeHome(homeDir), "handoffs");
26
26
  }
27
27
  function jsString(value) {
@@ -213,7 +213,7 @@ function resolveCliLaunchSpec(cliPath) {
213
213
  }
214
214
  return { command: "autohand", args: [] };
215
215
  }
216
- function getManifestTarget(browser, platform = process.platform, homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME) {
216
+ function getManifestTarget(browser, platform = process.platform, homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
217
217
  const hostName = CHROME_NATIVE_HOST_NAME;
218
218
  const manifestPath = _path2.default.join(getBrowserDataRoot(homeDir), `${browser}.json`);
219
219
  if (platform === "darwin") {
@@ -452,7 +452,7 @@ function shutdown() {
452
452
  `;
453
453
  }
454
454
  async function installNativeHost(options) {
455
- const homeDir = _nullishCoalesce(options.homeDir, () => ( _chunkKASXKDF2cjs.AUTOHAND_HOME));
455
+ const homeDir = _nullishCoalesce(options.homeDir, () => ( _chunk3JURXAL6cjs.AUTOHAND_HOME));
456
456
  const browsers = _optionalChain([options, 'access', _2 => _2.browsers, 'optionalAccess', _3 => _3.length]) ? options.browsers : [...ALL_BROWSERS];
457
457
  const hostScriptPath = _path2.default.join(getBrowserDataRoot(homeDir), "host.js");
458
458
  await ensureDir(_path2.default.dirname(hostScriptPath));
@@ -488,7 +488,7 @@ async function installNativeHost(options) {
488
488
  return { hostScriptPath, targets };
489
489
  }
490
490
  async function ensureNativeHostInstalled(options) {
491
- const homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME;
491
+ const homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME;
492
492
  const chromeManifest = getManifestTarget("chrome", process.platform, homeDir);
493
493
  const expectedExtensionIds = [_optionalChain([options, 'optionalAccess', _7 => _7.extensionId])].filter((id) => Boolean(id));
494
494
  const expectedAllowedOrigins = expectedExtensionIds.map((extensionId) => `chrome-extension://${extensionId}/`);
@@ -522,7 +522,7 @@ async function ensureNativeHostInstalled(options) {
522
522
  });
523
523
  }
524
524
  async function createBrowserHandoff(options) {
525
- const homeDir = _nullishCoalesce(options.homeDir, () => ( _chunkKASXKDF2cjs.AUTOHAND_HOME));
525
+ const homeDir = _nullishCoalesce(options.homeDir, () => ( _chunk3JURXAL6cjs.AUTOHAND_HOME));
526
526
  const token = _crypto2.default.randomUUID();
527
527
  const createdAt = (/* @__PURE__ */ new Date()).toISOString();
528
528
  const expiresAt = new Date(Date.now() + DEFAULT_HANDOFF_TTL_MS).toISOString();
@@ -546,7 +546,7 @@ async function createBrowserHandoff(options) {
546
546
  })
547
547
  };
548
548
  }
549
- async function hasActiveHandoff(homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME) {
549
+ async function hasActiveHandoff(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
550
550
  const handoffDir = getHandoffDir(homeDir);
551
551
  if (!await pathExists(handoffDir)) return false;
552
552
  const entries = await _fsextra2.default.readdir(handoffDir);
@@ -560,7 +560,7 @@ async function hasActiveHandoff(homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME) {
560
560
  }
561
561
  return false;
562
562
  }
563
- async function attachBrowserHandoff(token, homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME) {
563
+ async function attachBrowserHandoff(token, homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
564
564
  const handoffPath = _path2.default.join(getHandoffDir(homeDir), `${token}.json`);
565
565
  if (!await pathExists(handoffPath)) {
566
566
  return null;
@@ -573,7 +573,7 @@ async function attachBrowserHandoff(token, homeDir = _chunkKASXKDF2cjs.AUTOHAND_
573
573
  await remove(handoffPath);
574
574
  return record;
575
575
  }
576
- async function attachLatestBrowserHandoff(homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME) {
576
+ async function attachLatestBrowserHandoff(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
577
577
  const handoffDir = getHandoffDir(homeDir);
578
578
  if (!await pathExists(handoffDir)) {
579
579
  return null;
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-HTU4W3GB.js";
6
6
  import {
7
7
  PROJECT_DIR_NAME
8
- } from "./chunk-SHRLFX6F.js";
8
+ } from "./chunk-PG2JIU5M.js";
9
9
 
10
10
  // src/goals/GoalManager.ts
11
11
  import crypto from "crypto";
@@ -86,6 +86,14 @@ var GoalManager = class {
86
86
  await this.writeSnapshot(next);
87
87
  return result(next, true, snapshot.goal?.status === "complete" ? "Goal created; replaced completed goal." : "Goal created.");
88
88
  }
89
+ async createOrQueueGoal(input) {
90
+ const snapshot = await this.readSnapshot();
91
+ const current = snapshot.goal ? this.withLiveElapsed(snapshot.goal) : null;
92
+ if (current && current.status !== "complete" && current.status !== "budgetLimited") {
93
+ return this.enqueueGoal(input);
94
+ }
95
+ return this.createGoal(input);
96
+ }
89
97
  async updateGoal(input) {
90
98
  const snapshot = await this.readSnapshot();
91
99
  const current = snapshot.goal ? this.withLiveElapsed(snapshot.goal) : null;
@@ -135,6 +143,38 @@ var GoalManager = class {
135
143
  return result(snapshot, false, "Cannot resume: budget is exhausted. Raise the budget or clear the goal before resuming.");
136
144
  }
137
145
  if (changes.length === 0) return result(snapshot, false, "No goal updates were provided.");
146
+ if (next.status === "complete") {
147
+ if (current.status === "complete") return result({ ...snapshot, goal: current }, false, "Goal is already complete.");
148
+ const completedGoal = buildCompletedGoal(next, Date.now());
149
+ const completedRun = appendCompletedGoal(snapshot.completed, completedGoal);
150
+ const nextQueued = snapshot.queue[0];
151
+ if (nextQueued) {
152
+ const started = await this.startQueuedGoalFromSnapshot({
153
+ ...snapshot,
154
+ goal: next,
155
+ completed: completedRun
156
+ }, nextQueued);
157
+ if (!started.ok) return started;
158
+ return {
159
+ ...started,
160
+ message: "Goal completed. Started next queued goal.",
161
+ completed: completedGoal,
162
+ completedRun
163
+ };
164
+ }
165
+ next = { ...next, updatedAt: Date.now() };
166
+ const updated2 = {
167
+ ...snapshot,
168
+ goal: next,
169
+ completed: completedRun,
170
+ updatedAt: next.updatedAt
171
+ };
172
+ await this.writeSnapshot(updated2);
173
+ return result(updated2, true, formatAllCompleteMessage(completedRun), {
174
+ completed: completedGoal,
175
+ completedRun
176
+ });
177
+ }
138
178
  next = { ...next, updatedAt: Date.now() };
139
179
  const updated = { ...snapshot, goal: next, updatedAt: next.updatedAt };
140
180
  await this.writeSnapshot(updated);
@@ -199,6 +239,14 @@ var GoalManager = class {
199
239
  }
200
240
  const nextQueued = snapshot.queue[0];
201
241
  if (!nextQueued) return result({ ...snapshot, goal: current }, false, "No queued goals.");
242
+ const snapshotWithTerminalHistory = current && (current.status === "complete" || current.status === "budgetLimited") ? {
243
+ ...snapshot,
244
+ goal: current,
245
+ completed: appendCompletedGoal(snapshot.completed, buildCompletedGoal(current, Date.now()))
246
+ } : { ...snapshot, goal: current };
247
+ return this.startQueuedGoalFromSnapshot(snapshotWithTerminalHistory, nextQueued);
248
+ }
249
+ async startQueuedGoalFromSnapshot(snapshot, nextQueued) {
202
250
  let objective = nextQueued.objective;
203
251
  if (nextQueued.template) {
204
252
  const resolved = await resolveGoalTemplateByName(this.workspaceRoot, nextQueued.template, nextQueued.templateFlags ?? {}, nextQueued.templateArgs ?? "");
@@ -281,6 +329,10 @@ var GoalManager = class {
281
329
  lines.push(`${index + 1}. [${item.queueId}] ${truncate(item.objective, 120)}`);
282
330
  });
283
331
  }
332
+ if (snapshot.completed.length > 0) {
333
+ lines.push("");
334
+ lines.push(formatCompletedSummary(snapshot.completed));
335
+ }
284
336
  return lines.join("\n");
285
337
  }
286
338
  async readSnapshot() {
@@ -309,13 +361,14 @@ var GoalManager = class {
309
361
  }
310
362
  };
311
363
  function emptySnapshot() {
312
- return { version: 1, goal: null, queue: [], updatedAt: Date.now() };
364
+ return { version: 1, goal: null, queue: [], completed: [], updatedAt: Date.now() };
313
365
  }
314
366
  function normalizeSnapshot(raw) {
315
367
  return {
316
368
  version: 1,
317
369
  goal: normalizeGoal(raw.goal),
318
370
  queue: Array.isArray(raw.queue) ? raw.queue.map(normalizeQueuedGoal).filter((item) => Boolean(item)) : [],
371
+ completed: Array.isArray(raw.completed) ? raw.completed.map(normalizeCompletedGoal).filter((item) => Boolean(item)) : [],
319
372
  updatedAt: typeof raw.updatedAt === "number" ? raw.updatedAt : Date.now()
320
373
  };
321
374
  }
@@ -355,6 +408,21 @@ function normalizeQueuedGoal(value) {
355
408
  createdAt: typeof raw.createdAt === "number" ? raw.createdAt : Date.now()
356
409
  };
357
410
  }
411
+ function normalizeCompletedGoal(value) {
412
+ if (!value || typeof value !== "object") return null;
413
+ const raw = value;
414
+ if (typeof raw.goalId !== "string" || typeof raw.objective !== "string") return null;
415
+ if (raw.status !== "complete" && raw.status !== "budgetLimited") return null;
416
+ return {
417
+ goalId: raw.goalId,
418
+ objective: raw.objective,
419
+ status: raw.status,
420
+ tokensUsed: positiveInteger(raw.tokensUsed) ?? 0,
421
+ timeUsedSeconds: positiveInteger(raw.timeUsedSeconds) ?? 0,
422
+ createdAt: typeof raw.createdAt === "number" ? raw.createdAt : Date.now(),
423
+ completedAt: typeof raw.completedAt === "number" ? raw.completedAt : Date.now()
424
+ };
425
+ }
358
426
  function buildQueuedGoal(input) {
359
427
  return {
360
428
  queueId: `q-${Date.now()}-${crypto.randomUUID().slice(0, 8)}`,
@@ -370,6 +438,21 @@ function buildQueuedGoal(input) {
370
438
  createdAt: Date.now()
371
439
  };
372
440
  }
441
+ function buildCompletedGoal(goal, completedAt) {
442
+ return {
443
+ goalId: goal.goalId,
444
+ objective: goal.objective,
445
+ status: goal.status === "budgetLimited" ? "budgetLimited" : "complete",
446
+ tokensUsed: goal.tokensUsed,
447
+ timeUsedSeconds: goal.timeUsedSeconds,
448
+ createdAt: goal.createdAt,
449
+ completedAt
450
+ };
451
+ }
452
+ function appendCompletedGoal(completed, goal) {
453
+ if (completed.some((item) => item.goalId === goal.goalId)) return completed;
454
+ return [...completed, goal];
455
+ }
373
456
  function validateGoalInput(input) {
374
457
  const objective = input.objective.trim();
375
458
  if (!objective) return "objective must be non-empty.";
@@ -419,7 +502,7 @@ function applyOptionalPositiveInteger(value, apply) {
419
502
  apply(value);
420
503
  return null;
421
504
  }
422
- function result(snapshot, ok, message) {
505
+ function result(snapshot, ok, message, extras = {}) {
423
506
  const goal = snapshot.goal;
424
507
  return {
425
508
  ok,
@@ -430,7 +513,8 @@ function result(snapshot, ok, message) {
430
513
  timeRemainingSeconds: goal.timeBudgetSeconds !== void 0 ? Math.max(0, goal.timeBudgetSeconds - goal.timeUsedSeconds) : void 0,
431
514
  tokensRemaining: goal.tokenBudget !== void 0 ? Math.max(0, goal.tokenBudget - goal.tokensUsed) : void 0,
432
515
  completionFloorMet: floorMet(goal)
433
- } : void 0
516
+ } : void 0,
517
+ ...extras
434
518
  };
435
519
  }
436
520
  function floorMet(goal) {
@@ -451,6 +535,19 @@ function isStringRecord(value) {
451
535
  function truncate(value, max) {
452
536
  return value.length > max ? `${value.slice(0, max - 3)}...` : value;
453
537
  }
538
+ function formatAllCompleteMessage(completedRun) {
539
+ return [
540
+ "All queued goals are complete.",
541
+ "",
542
+ formatCompletedSummary(completedRun)
543
+ ].join("\n");
544
+ }
545
+ function formatCompletedSummary(completedRun) {
546
+ return [
547
+ `Completed goals this session (${completedRun.length}):`,
548
+ ...completedRun.map((item, index) => `${index + 1}. ${truncate(item.objective, 120)}`)
549
+ ].join("\n");
550
+ }
454
551
  function formatDuration(seconds) {
455
552
  const whole = Math.max(0, Math.floor(seconds));
456
553
  const minutes = Math.floor(whole / 60);
@@ -1,18 +1,19 @@
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 _chunkNQZH5CR2cjs = require('./chunk-NQZH5CR2.cjs');
3
+ var _chunkRZLEGVMHcjs = require('./chunk-RZLEGVMH.cjs');
4
4
 
5
5
 
6
6
 
7
- var _chunkWJYFLQ7Gcjs = require('./chunk-WJYFLQ7G.cjs');
7
+ var _chunkY47OJGLBcjs = require('./chunk-Y47OJGLB.cjs');
8
8
 
9
9
  // src/commands/goal.ts
10
10
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
11
11
  var metadata = {
12
12
  command: "/goal",
13
- description: "Create, inspect, pause, resume, complete, clear, and queue persistent goals",
13
+ description: "Create, inspect, refine, pause, resume, complete, clear, and queue persistent goals",
14
14
  implemented: true,
15
15
  subcommands: [
16
+ { name: "writer", description: "Interview the user and draft a stronger goal before creating it" },
16
17
  { name: "queue", description: "List queued goals or enqueue a goal" },
17
18
  { name: "pause", description: "Pause the current goal" },
18
19
  { name: "resume", description: "Resume a paused or queued goal" },
@@ -22,18 +23,26 @@ var metadata = {
22
23
  ]
23
24
  };
24
25
  async function goal(ctx, args = []) {
25
- if (!_chunkWJYFLQ7Gcjs.resolveGoalFeatureEnabled.call(void 0, ctx.config, ctx.isFeatureEnabled)) {
26
- return _chunkWJYFLQ7Gcjs.GOAL_FEATURE_DISABLED_MESSAGE;
26
+ if (!_chunkY47OJGLBcjs.resolveGoalFeatureEnabled.call(void 0, ctx.config, ctx.isFeatureEnabled)) {
27
+ return _chunkY47OJGLBcjs.GOAL_FEATURE_DISABLED_MESSAGE;
27
28
  }
28
29
  await _optionalChain([ctx, 'access', _ => _.trackFeatureActivation, 'optionalCall', _2 => _2("slash_goal", { surface: "slash_command" })]);
29
- const manager = new (0, _chunkNQZH5CR2cjs.GoalManager)(ctx.workspaceRoot);
30
+ const manager = new (0, _chunkRZLEGVMHcjs.GoalManager)(ctx.workspaceRoot);
30
31
  const input = args.join(" ").trim();
31
32
  if (!input) {
32
- return formatSnapshot(await manager.getSnapshot());
33
+ const snapshot = await manager.getSnapshot();
34
+ if (!snapshot.goal && snapshot.queue.length === 0) {
35
+ return startGoalWriter(ctx);
36
+ }
37
+ return formatSnapshot(snapshot);
33
38
  }
34
39
  const [subcommand, ...restArgs] = args;
35
40
  const rest = restArgs.join(" ").trim();
36
41
  switch (_optionalChain([subcommand, 'optionalAccess', _3 => _3.toLowerCase, 'call', _4 => _4()])) {
42
+ case "writer":
43
+ case "write":
44
+ case "refine":
45
+ return startGoalWriter(ctx, rest);
37
46
  case "queue":
38
47
  return handleQueue(manager, rest);
39
48
  case "pause":
@@ -53,8 +62,13 @@ async function goal(ctx, args = []) {
53
62
  }
54
63
  return formatMutation(resumed);
55
64
  }
56
- case "complete":
57
- return formatMutation(await manager.updateGoal({ status: "complete" }));
65
+ case "complete": {
66
+ const completed = await manager.updateGoal({ status: "complete" });
67
+ if (completed.ok && completed.started && _optionalChain([completed, 'access', _5 => _5.goal, 'optionalAccess', _6 => _6.status]) === "active") {
68
+ queueGoalContinuation(ctx, completed.goal.objective);
69
+ }
70
+ return formatMutation(completed);
71
+ }
58
72
  case "clear":
59
73
  return formatMutation(await manager.clearGoal());
60
74
  case "templates": {
@@ -73,6 +87,7 @@ async function goal(ctx, args = []) {
73
87
  if (!resolved.ok) return _chalk2.default.yellow(resolved.message);
74
88
  const created = await manager.createGoal(resolved.input, { replace: false });
75
89
  if (created.ok && created.goal) {
90
+ await emitGoalWrittenCompleted(ctx, created.goal, "slash");
76
91
  queueGoalContinuation(ctx, created.goal.objective);
77
92
  }
78
93
  return formatMutation(created);
@@ -80,15 +95,37 @@ async function goal(ctx, args = []) {
80
95
  }
81
96
  }
82
97
  async function runGoalCli(workspaceRoot, rawInput, config) {
83
- if (!_chunkWJYFLQ7Gcjs.resolveGoalFeatureEnabled.call(void 0, config)) {
84
- return _chunkWJYFLQ7Gcjs.GOAL_FEATURE_DISABLED_MESSAGE;
98
+ if (!_chunkY47OJGLBcjs.resolveGoalFeatureEnabled.call(void 0, config)) {
99
+ return _chunkY47OJGLBcjs.GOAL_FEATURE_DISABLED_MESSAGE;
85
100
  }
86
- const manager = new (0, _chunkNQZH5CR2cjs.GoalManager)(workspaceRoot);
87
- const input = _nullishCoalesce(_optionalChain([rawInput, 'optionalAccess', _5 => _5.trim, 'call', _6 => _6()]), () => ( ""));
101
+ const manager = new (0, _chunkRZLEGVMHcjs.GoalManager)(workspaceRoot);
102
+ const input = _nullishCoalesce(_optionalChain([rawInput, 'optionalAccess', _7 => _7.trim, 'call', _8 => _8()]), () => ( ""));
88
103
  if (!input) return formatSnapshot(await manager.getSnapshot());
89
- const args = _nullishCoalesce(_optionalChain([input, 'access', _7 => _7.match, 'call', _8 => _8(/"[^"]*"|'[^']*'|\S+/g), 'optionalAccess', _9 => _9.map, 'call', _10 => _10(unquote)]), () => ( []));
104
+ const args = _nullishCoalesce(_optionalChain([input, 'access', _9 => _9.match, 'call', _10 => _10(/"[^"]*"|'[^']*'|\S+/g), 'optionalAccess', _11 => _11.map, 'call', _12 => _12(unquote)]), () => ( []));
90
105
  return goal({ workspaceRoot }, args);
91
106
  }
107
+ function startGoalWriter(ctx, roughGoal) {
108
+ const activated = _nullishCoalesce(_optionalChain([ctx, 'access', _13 => _13.skillsRegistry, 'optionalAccess', _14 => _14.activateSkill, 'call', _15 => _15("goal-writer")]), () => ( false));
109
+ const roughGoalText = _optionalChain([roughGoal, 'optionalAccess', _16 => _16.trim, 'call', _17 => _17()]) || "No rough goal was provided yet.";
110
+ _optionalChain([ctx, 'access', _18 => _18.queueInstruction, 'optionalCall', _19 => _19([
111
+ "Activate the built-in goal-writer skill and use it to help the user draft one or more stronger /goal objectives.",
112
+ "Interview the user with follow-up questions when the finish line, proof, boundaries, loop, or stop rule is unclear.",
113
+ "Show every full drafted objective and get explicit user approval before calling create_goal. If more than one goal is approved, call create_goal for each one in order so later goals are queued.",
114
+ `Rough goal request: ${roughGoalText}`
115
+ ].join("\n"))]);
116
+ return [
117
+ "Goal writer started.",
118
+ activated ? "The built-in $goal-writer skill is active for the next turn." : "The next turn will use the built-in $goal-writer skill instructions if available.",
119
+ "Answer the follow-up questions to create a completion contract with proof, boundaries, and a stop rule."
120
+ ].join("\n");
121
+ }
122
+ async function emitGoalWrittenCompleted(ctx, goalState, source) {
123
+ await _optionalChain([ctx, 'access', _20 => _20.hookManager, 'optionalAccess', _21 => _21.executeHooks, 'call', _22 => _22("goal-written:completed", {
124
+ goalId: goalState.goalId,
125
+ goalObjective: goalState.objective,
126
+ goalSource: source
127
+ })]);
128
+ }
92
129
  async function handleQueue(manager, rest) {
93
130
  if (!rest) {
94
131
  const snapshot = await manager.getSnapshot();
@@ -98,7 +135,7 @@ async function handleQueue(manager, rest) {
98
135
  return formatMutation(await manager.enqueueGoalBlock(rest, "command"));
99
136
  }
100
137
  function queueGoalContinuation(ctx, objective) {
101
- _optionalChain([ctx, 'access', _11 => _11.queueInstruction, 'optionalCall', _12 => _12([
138
+ _optionalChain([ctx, 'access', _23 => _23.queueInstruction, 'optionalCall', _24 => _24([
102
139
  `Active goal: ${objective}`,
103
140
  "Continue working toward this persistent goal until it is complete, blocked, paused, cleared, or budget-limited.",
104
141
  "Use get_goal or update_goal when you need to inspect or modify the goal state."
@@ -110,7 +147,7 @@ function formatMutation(result) {
110
147
  lines.push("");
111
148
  lines.push(formatGoal(result.goal));
112
149
  }
113
- if (_optionalChain([result, 'access', _13 => _13.queued, 'optionalAccess', _14 => _14.length])) {
150
+ if (_optionalChain([result, 'access', _25 => _25.queued, 'optionalAccess', _26 => _26.length])) {
114
151
  lines.push("");
115
152
  lines.push(`Queued ${result.queued.length} goal${result.queued.length === 1 ? "" : "s"}:`);
116
153
  for (const item of result.queued) {
@@ -120,14 +157,18 @@ function formatMutation(result) {
120
157
  if (result.started) {
121
158
  lines.push(`Started queue item: ${result.started.queueId}`);
122
159
  }
123
- if (result.queue.length > 0 && !_optionalChain([result, 'access', _15 => _15.queued, 'optionalAccess', _16 => _16.length])) {
160
+ if (_optionalChain([result, 'access', _27 => _27.completedRun, 'optionalAccess', _28 => _28.length]) && result.queue.length === 0) {
161
+ lines.push("");
162
+ lines.push(formatCompletedRun(result.completedRun));
163
+ }
164
+ if (result.queue.length > 0 && !_optionalChain([result, 'access', _29 => _29.queued, 'optionalAccess', _30 => _30.length])) {
124
165
  lines.push("");
125
166
  lines.push(formatQueue({ queue: result.queue }));
126
167
  }
127
168
  return lines.join("\n");
128
169
  }
129
170
  function formatSnapshot(snapshot) {
130
- if (!snapshot.goal && snapshot.queue.length === 0) {
171
+ if (!snapshot.goal && snapshot.queue.length === 0 && snapshot.completed.length === 0) {
131
172
  return [
132
173
  "No goal is currently set.",
133
174
  "Use /goal <objective> to create one, or /goal queue <objective> to queue later work."
@@ -140,6 +181,10 @@ function formatSnapshot(snapshot) {
140
181
  parts.push("");
141
182
  parts.push(formatQueue(snapshot));
142
183
  }
184
+ if (snapshot.completed.length > 0) {
185
+ parts.push("");
186
+ parts.push(formatCompletedRun(snapshot.completed));
187
+ }
143
188
  return parts.join("\n");
144
189
  }
145
190
  function formatGoal(goalState) {
@@ -162,6 +207,12 @@ function formatQueue(snapshot) {
162
207
  ...snapshot.queue.map((item, index) => `${index + 1}. [${item.queueId}] ${item.objective}`)
163
208
  ].join("\n");
164
209
  }
210
+ function formatCompletedRun(completed) {
211
+ return [
212
+ `Completed goals this session (${completed.length}):`,
213
+ ...completed.map((item, index) => `${index + 1}. ${item.objective}`)
214
+ ].join("\n");
215
+ }
165
216
  function formatDuration(seconds) {
166
217
  const whole = Math.max(0, Math.floor(seconds));
167
218
  const minutes = Math.floor(whole / 60);