autohand-cli 0.8.3 → 0.9.1

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 (546) hide show
  1. package/README.md +191 -74
  2. package/dist/{AgentRegistry-ODDXPAFR.js → AgentRegistry-GOV7FN2O.js} +2 -2
  3. package/dist/AgentRegistry-J2C6JBZ3.cjs +10 -0
  4. package/dist/{AutomodeManager-EOVHGRPP.js → AutomodeManager-APLLPEYJ.js} +31 -17
  5. package/dist/{AutomodeManager-6ATBE7Q5.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
  6. package/dist/CommunitySkillsCache-22BB3J6H.cjs +8 -0
  7. package/dist/{CommunitySkillsCache-QLE57BN5.js → CommunitySkillsCache-ZACDPD4J.js} +2 -2
  8. package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
  9. package/dist/{GitHubRegistryFetcher-NT5GFZXS.js → GitHubRegistryFetcher-J2BWPXJF.js} +1 -1
  10. package/dist/{HookManager-B2F35M27.js → HookManager-2S6AHOC3.js} +1 -1
  11. package/dist/{HookManager-PFAFE3FK.cjs → HookManager-TVEQI5ZU.cjs} +2 -2
  12. package/dist/{ImportWizard-OHRKBANZ.js → ImportWizard-AEBMAKXE.js} +33 -9
  13. package/dist/{ImportWizard-CJRZPPHL.cjs → ImportWizard-AF2XL6DS.cjs} +37 -13
  14. package/dist/LearnAdvisor-KKEQ5QCV.js +9 -0
  15. package/dist/LearnAdvisor-Q7RAYLPF.cjs +9 -0
  16. package/dist/{McpClientManager-NQ3EW2IF.cjs → McpClientManager-BNSKLHIN.cjs} +2 -2
  17. package/dist/{McpClientManager-VBIMGKXU.js → McpClientManager-SL35BR24.js} +1 -1
  18. package/dist/MemoryManager-PMNAEZMB.cjs +8 -0
  19. package/dist/{MemoryManager-2LAT7IHS.js → MemoryManager-QZRLTUB5.js} +2 -2
  20. package/dist/NVIDIAProvider-C3FWQOBZ.cjs +14 -0
  21. package/dist/NVIDIAProvider-SJPY3ONR.js +14 -0
  22. package/dist/{PermissionManager-7NQHRCHY.js → PermissionManager-MT7KBNNR.js} +3 -3
  23. package/dist/PermissionManager-URCNP5EC.cjs +11 -0
  24. package/dist/{ProjectProfiler-UG42W6WD.cjs → ProjectProfiler-CDAE7ECW.cjs} +1 -0
  25. package/dist/{ProjectProfiler-P4QJQWWA.js → ProjectProfiler-NZTJDRHD.js} +1 -0
  26. package/dist/ProviderFactory-56N3ECE4.cjs +12 -0
  27. package/dist/{ProviderFactory-2IYJ5OPW.js → ProviderFactory-RB4RVAF6.js} +4 -1
  28. package/dist/SessionManager-2IZGWASQ.cjs +10 -0
  29. package/dist/{SessionManager-4U4JFQ3C.js → SessionManager-554PHVPC.js} +2 -2
  30. package/dist/SkillsRegistry-GMRVONOQ.cjs +9 -0
  31. package/dist/{SkillsRegistry-RFEINXRT.js → SkillsRegistry-NHHMIUYJ.js} +2 -2
  32. package/dist/SubAgent-4GOR2FIJ.js +13 -0
  33. package/dist/SubAgent-ZJMDH4FI.cjs +13 -0
  34. package/dist/{SyncApiClient-B5RT2ECG.js → SyncApiClient-G3FM65IV.js} +1 -1
  35. package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
  36. package/dist/about-3USFSGOH.js +15 -0
  37. package/dist/about-QR52U5DD.cjs +15 -0
  38. package/dist/acp-5Y2W6OZP.js +1556 -0
  39. package/dist/acp-GSYE75OB.cjs +1556 -0
  40. package/dist/actionExecutor-KHUU3Z3Q.cjs +28 -0
  41. package/dist/actionExecutor-PLQJZLZV.js +28 -0
  42. package/dist/add-dir-BTAD5OZS.cjs +11 -0
  43. package/dist/{add-dir-TUJM3PG5.js → add-dir-HCERJDBR.js} +3 -2
  44. package/dist/agent-B3EVT7NN.cjs +126 -0
  45. package/dist/agent-SATQ3WZ3.js +126 -0
  46. package/dist/agents/builtin/code-cleaner.md +1 -1
  47. package/dist/agents/builtin/docs-writer.md +1 -1
  48. package/dist/agents/builtin/researcher.md +2 -2
  49. package/dist/agents/builtin/reviewer.md +1 -1
  50. package/dist/agents/builtin/tester.md +1 -1
  51. package/dist/agents/builtin/todo-resolver.md +1 -1
  52. package/dist/agents-44CRJGM7.cjs +18 -0
  53. package/dist/agents-NN4ZAJ7R.js +18 -0
  54. package/dist/agents-new-6D6G4QS6.cjs +17 -0
  55. package/dist/agents-new-7GAQ25EK.js +17 -0
  56. package/dist/{autoSkill-LQEVQFIH.js → autoSkill-66PKCYTW.js} +2 -2
  57. package/dist/autoSkill-VQLGBELN.cjs +20 -0
  58. package/dist/automode-45DWV4TN.cjs +10 -0
  59. package/dist/{automode-R6P3VHLS.js → automode-BUF3VGXU.js} +2 -2
  60. package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
  61. package/dist/browserToolBridge-F5N66PE7.js +58 -0
  62. package/dist/chrome-Q2U73HZB.cjs +50 -0
  63. package/dist/chrome-Q54OALOK.cjs +21 -0
  64. package/dist/chrome-Y3T7EIHG.js +50 -0
  65. package/dist/chrome-ZNJ46OYW.js +21 -0
  66. package/dist/chromeSkill-53TH55PM.js +105 -0
  67. package/dist/chromeSkill-THW7N4IY.cjs +105 -0
  68. package/dist/{chunk-HXGBSJL5.cjs → chunk-22SCR3EV.cjs} +2 -2
  69. package/dist/chunk-26G7YGOW.js +367 -0
  70. package/dist/{chunk-3L53OA4E.cjs → chunk-2ESQR35E.cjs} +10 -10
  71. package/dist/chunk-2H5O745H.js +63 -0
  72. package/dist/{chunk-ULDM2SNB.js → chunk-2IW5YFJ4.js} +48 -47
  73. package/dist/{chunk-U55TWFJI.cjs → chunk-2VHB43IX.cjs} +24 -6
  74. package/dist/chunk-3EDDDZS2.cjs +5 -0
  75. package/dist/{chunk-X5VSP65C.cjs → chunk-3ICORF7M.cjs} +4 -4
  76. package/dist/chunk-3OF56EMA.cjs +197 -0
  77. package/dist/chunk-3UC6DMFI.cjs +93 -0
  78. package/dist/{chunk-64H4FRM3.cjs → chunk-3UHRCHKB.cjs} +32 -34
  79. package/dist/{chunk-JCLYQ2JC.js → chunk-3ZOOH44N.js} +12 -6
  80. package/dist/{chunk-TUD3Z3BD.js → chunk-44ZWOBTI.js} +136 -55
  81. package/dist/chunk-4567QNRB.js +444 -0
  82. package/dist/chunk-45CHNQM6.cjs +517 -0
  83. package/dist/chunk-46MTALKD.js +44 -0
  84. package/dist/{chunk-WHE2SWHU.js → chunk-4E7SHPNQ.js} +2 -2
  85. package/dist/chunk-4LMUDS2K.js +124 -0
  86. package/dist/{chunk-W7RYQJLO.cjs → chunk-4XFHP2SN.cjs} +46 -15
  87. package/dist/chunk-4XVLNOFA.js +360 -0
  88. package/dist/{chunk-GBHDROGL.js → chunk-575PXZX7.js} +16 -4
  89. package/dist/chunk-5A7ZL64N.js +139 -0
  90. package/dist/chunk-5GCQ5UMV.cjs +85 -0
  91. package/dist/chunk-5JTTM5SC.js +59 -0
  92. package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
  93. package/dist/{chunk-KLWJIPU2.cjs → chunk-5SFV2NCY.cjs} +20 -16
  94. package/dist/chunk-5ZNYX4VH.cjs +71 -0
  95. package/dist/{chunk-A4IJHHV7.cjs → chunk-63ANVAOJ.cjs} +52 -11
  96. package/dist/{chunk-MYISNQH4.js → chunk-65LRPW5W.js} +1 -1
  97. package/dist/chunk-6AYJCDTA.js +360 -0
  98. package/dist/{chunk-X2MSVKDV.js → chunk-6HF6XSCC.js} +2 -2
  99. package/dist/{chunk-AEJH23FO.cjs → chunk-6JWCGQJU.cjs} +6 -6
  100. package/dist/chunk-6OECOAK5.cjs +360 -0
  101. package/dist/chunk-6R25D2H5.js +121 -0
  102. package/dist/chunk-7DJJGKM6.js +77 -0
  103. package/dist/{chunk-VG34MG2U.js → chunk-7IRQ7JEH.js} +9 -6
  104. package/dist/chunk-7MY4JHER.js +27 -0
  105. package/dist/chunk-7PJKTSRN.js +152 -0
  106. package/dist/{chunk-SKYG33B2.cjs → chunk-7PT646AL.cjs} +3 -3
  107. package/dist/chunk-7WAUCLLQ.js +229 -0
  108. package/dist/{chunk-U46VYPLR.cjs → chunk-7XTUL7ZD.cjs} +9 -9
  109. package/dist/chunk-AE2ILW25.cjs +152 -0
  110. package/dist/{chunk-T2M64VHA.cjs → chunk-AOKXYGBQ.cjs} +61 -41
  111. package/dist/chunk-AQ5PVHOC.cjs +113 -0
  112. package/dist/{chunk-N2BLVUPM.cjs → chunk-AZ47LKD5.cjs} +3 -3
  113. package/dist/chunk-B4HSNOIH.cjs +354 -0
  114. package/dist/chunk-B76FJKEJ.cjs +184 -0
  115. package/dist/chunk-BP37FVBM.js +85 -0
  116. package/dist/chunk-BQU3HAE7.js +21 -0
  117. package/dist/chunk-BYE7RQFZ.cjs +121 -0
  118. package/dist/chunk-C46B72VK.js +1034 -0
  119. package/dist/{chunk-HIVRCQS2.js → chunk-C5QIQQ37.js} +56 -25
  120. package/dist/chunk-CCIDL4SA.js +19931 -0
  121. package/dist/{chunk-XVUHNWMX.js → chunk-CECH6QQP.js} +17 -19
  122. package/dist/chunk-CFAWTLSC.js +13 -0
  123. package/dist/{chunk-ZYQMLKOK.cjs → chunk-CK4HAHVY.cjs} +212 -70
  124. package/dist/chunk-CO2AADYU.cjs +360 -0
  125. package/dist/chunk-CRTCZ4WL.cjs +19931 -0
  126. package/dist/chunk-CSTUTDTH.js +75 -0
  127. package/dist/{chunk-K2C56QGS.cjs → chunk-D546G7DA.cjs} +1650 -479
  128. package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
  129. package/dist/{chunk-G4CAKI3V.js → chunk-DGBPWODD.js} +7 -2
  130. package/dist/chunk-DHUQZ53B.cjs +29 -0
  131. package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
  132. package/dist/{chunk-5K6NGAVM.js → chunk-DNSD7DVJ.js} +67 -52
  133. package/dist/{chunk-RDF37HKB.cjs → chunk-DSSCERHI.cjs} +3 -2
  134. package/dist/{chunk-NAJ4IZKD.cjs → chunk-EA2MS25U.cjs} +8 -6
  135. package/dist/{chunk-SJAVBCOA.js → chunk-EEHWALXA.js} +94 -3
  136. package/dist/chunk-ES2HJQ4N.js +37 -0
  137. package/dist/{chunk-G27PQQFD.js → chunk-EYHKL4QC.js} +1 -1
  138. package/dist/{chunk-SV2WA57F.js → chunk-FBQJZKFX.js} +38 -15
  139. package/dist/chunk-FFBDRUO5.cjs +59 -0
  140. package/dist/{chunk-N7LI55V4.js → chunk-FFHSCM5M.js} +15 -8
  141. package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
  142. package/dist/chunk-FQVG6ZHF.js +197 -0
  143. package/dist/{chunk-J2GSFVUV.cjs → chunk-GAOPJ5S3.cjs} +74 -59
  144. package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
  145. package/dist/chunk-GSDV75A5.js +715 -0
  146. package/dist/chunk-GWY26SUD.cjs +63 -0
  147. package/dist/{chunk-TUAITHWL.js → chunk-H426KOGY.js} +2 -1
  148. package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
  149. package/dist/chunk-HC2Q6A3E.cjs +4967 -0
  150. package/dist/{chunk-3WVJEL7K.cjs → chunk-HDK2EHVH.cjs} +3 -1
  151. package/dist/{chunk-5IXII4HX.cjs → chunk-HG3ZASBH.cjs} +23 -16
  152. package/dist/chunk-HK5A54AV.cjs +280 -0
  153. package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
  154. package/dist/chunk-HSWWM6AM.js +2340 -0
  155. package/dist/chunk-HTU4W3GB.js +183 -0
  156. package/dist/{chunk-HLHTG5ZU.cjs → chunk-HVCIB4SW.cjs} +14 -12
  157. package/dist/chunk-HXHE2KAO.js +385 -0
  158. package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
  159. package/dist/{chunk-SLQAYV3W.js → chunk-HZWU6IO3.js} +11 -2
  160. package/dist/chunk-I2ZK3AOD.js +866 -0
  161. package/dist/chunk-IEPLQ47J.js +719 -0
  162. package/dist/chunk-J5HE6CUM.cjs +124 -0
  163. package/dist/{chunk-LIEXWM2M.js → chunk-JAQO6XDB.js} +19 -1
  164. package/dist/chunk-JB3JCYBJ.js +113 -0
  165. package/dist/chunk-JCUHCH37.cjs +247 -0
  166. package/dist/{chunk-FPHU2ES6.cjs → chunk-JM3ZTQUK.cjs} +19 -9
  167. package/dist/{chunk-NDMIPTV4.js → chunk-JMJRFSNJ.js} +8 -3
  168. package/dist/{chunk-ZLSGXMGQ.js → chunk-JMN3GZU6.js} +2 -0
  169. package/dist/chunk-JPFRI4L4.js +4967 -0
  170. package/dist/{chunk-BVKXEQVG.cjs → chunk-JV5HVCHU.cjs} +22 -10
  171. package/dist/chunk-KA2U6MY2.js +388 -0
  172. package/dist/{chunk-SEKD5FH3.cjs → chunk-KASXKDF2.cjs} +8 -3
  173. package/dist/chunk-KJ26T7GM.cjs +367 -0
  174. package/dist/chunk-KM7R5YPS.cjs +385 -0
  175. package/dist/{chunk-MBBY4ZIK.js → chunk-KMP6Y3LJ.js} +4 -1
  176. package/dist/chunk-KWXGDSYT.js +184 -0
  177. package/dist/{chunk-C5IJIM2V.cjs → chunk-L46OUKW5.cjs} +68 -37
  178. package/dist/{chunk-6UJMCWRY.js → chunk-L6OH44HL.js} +19 -9
  179. package/dist/chunk-LANGD5CO.js +280 -0
  180. package/dist/{chunk-APIXPPMT.js → chunk-LEZEWKPA.js} +1004 -39
  181. package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
  182. package/dist/chunk-LJD7KR3L.cjs +44 -0
  183. package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
  184. package/dist/{chunk-QXH5RCFI.js → chunk-M5DK524Z.js} +2 -2
  185. package/dist/chunk-M7B7RRBK.cjs +1034 -0
  186. package/dist/chunk-MANJ67D3.js +3897 -0
  187. package/dist/{chunk-HPHJ73GU.cjs → chunk-MGNXABSU.cjs} +9 -9
  188. package/dist/{chunk-6ZCULLCA.js → chunk-MMKZSJUN.js} +1 -1
  189. package/dist/{chunk-DVUHHH3B.cjs → chunk-MQQH4XQH.cjs} +4 -4
  190. package/dist/chunk-MUNUUFU7.cjs +21 -0
  191. package/dist/{chunk-DVZOENQ7.cjs → chunk-MZN6JBRZ.cjs} +9 -4
  192. package/dist/{chunk-OOKY3HPZ.js → chunk-NB6M6ESM.js} +50 -9
  193. package/dist/{chunk-BYONM7UM.js → chunk-NBGOIFKP.js} +265 -18
  194. package/dist/chunk-NHWHEW7M.cjs +75 -0
  195. package/dist/chunk-NQZH5CR2.cjs +468 -0
  196. package/dist/{chunk-EGPXJERY.cjs → chunk-NV6LCD2I.cjs} +119 -28
  197. package/dist/chunk-NVATU4V6.cjs +44 -0
  198. package/dist/{chunk-YZXUDM5X.js → chunk-NZ3ZWLUW.js} +204 -62
  199. package/dist/chunk-NZ7GCK7Y.cjs +92 -0
  200. package/dist/{chunk-VEKDGU2Q.cjs → chunk-NZQFKXM3.cjs} +49 -25
  201. package/dist/chunk-O5GI6SR3.js +59 -0
  202. package/dist/{chunk-56SWIDEL.cjs → chunk-OCATAKXV.cjs} +57 -56
  203. package/dist/{chunk-SKV2F3NM.js → chunk-OIGYWOL6.js} +1 -1
  204. package/dist/{chunk-IFFXSTOM.cjs → chunk-ONVYXTUT.cjs} +3 -3
  205. package/dist/chunk-OR67YXQK.cjs +13 -0
  206. package/dist/chunk-OV3T5MUH.cjs +715 -0
  207. package/dist/{chunk-OHUZKDGX.js → chunk-P4FUTSVK.js} +3 -3
  208. package/dist/chunk-P6SLT2F4.cjs +139 -0
  209. package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
  210. package/dist/chunk-PCM3N3CL.cjs +37 -0
  211. package/dist/{chunk-2AA5MFES.js → chunk-PGFLPURU.js} +8 -5
  212. package/dist/{chunk-DJDE4DTT.cjs → chunk-PIXQ2AVM.cjs} +25 -19
  213. package/dist/chunk-PNIAIOMZ.cjs +229 -0
  214. package/dist/{chunk-HTLINWX6.cjs → chunk-PQBYFEBL.cjs} +16 -13
  215. package/dist/{chunk-22D2CNTP.cjs → chunk-PSAH4ZQB.cjs} +5 -2
  216. package/dist/{chunk-3VTAFAL2.js → chunk-PTTZI4QZ.js} +16 -12
  217. package/dist/{chunk-WPVWQSL7.cjs → chunk-PY73W5MQ.cjs} +16 -13
  218. package/dist/{chunk-EGMZDTSL.js → chunk-PZZMIYII.js} +10 -2
  219. package/dist/{chunk-HBZU3RBZ.js → chunk-Q3BS6FPM.js} +34 -10
  220. package/dist/chunk-QBYGMMDD.js +517 -0
  221. package/dist/chunk-QLZOMZO5.cjs +388 -0
  222. package/dist/{chunk-ADUFCS4Q.cjs → chunk-QQ64HEHP.cjs} +160 -79
  223. package/dist/{chunk-L3TWPROA.js → chunk-QRQF3556.js} +44 -24
  224. package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
  225. package/dist/chunk-RAKO7UN7.js +114 -0
  226. package/dist/{chunk-7TQH3CL4.cjs → chunk-RBXBH6EB.cjs} +78 -35
  227. package/dist/chunk-RFUKZIJF.cjs +78 -0
  228. package/dist/chunk-RS2E32YB.js +71 -0
  229. package/dist/{chunk-OLSBBZW6.cjs → chunk-S5JNQIGL.cjs} +5 -5
  230. package/dist/{chunk-FTYY5JJD.js → chunk-S5QKRA2V.js} +2 -2
  231. package/dist/chunk-SD3NTC7D.cjs +77 -0
  232. package/dist/{chunk-KPELYZ6L.js → chunk-SDLY4X3G.js} +2 -2
  233. package/dist/{chunk-IDFF5J2E.js → chunk-SFFEKZGC.js} +38 -7
  234. package/dist/{chunk-EGFT4PGW.js → chunk-SHRLFX6F.js} +8 -3
  235. package/dist/{chunk-3WICOC33.js → chunk-SNDDZG5H.js} +124 -84
  236. package/dist/{chunk-CZXGCVTR.cjs → chunk-SOVR7S3T.cjs} +2 -2
  237. package/dist/chunk-SPQ7QIQ6.js +78 -0
  238. package/dist/{chunk-XRZEUWKF.js → chunk-SRMGWMQO.js} +1 -1
  239. package/dist/{chunk-R33VKSH5.cjs → chunk-SVVP4UUZ.cjs} +11 -11
  240. package/dist/{chunk-7BTSG4ME.cjs → chunk-SY2P3Z5W.cjs} +1004 -39
  241. package/dist/chunk-SZD45IDG.js +468 -0
  242. package/dist/{chunk-3O3MOK5C.cjs → chunk-TE4SYTWR.cjs} +1114 -142
  243. package/dist/chunk-TH26BQJG.js +101 -0
  244. package/dist/{chunk-QNGEW5TC.js → chunk-TR6NECEZ.js} +1 -1
  245. package/dist/{chunk-YGN4CQIP.js → chunk-TYBPTKFT.js} +1 -1
  246. package/dist/{chunk-GJH7XMSK.js → chunk-U2QUMKCB.js} +8 -6
  247. package/dist/{chunk-47CKWKEX.cjs → chunk-U6PLSPMD.cjs} +9 -4
  248. package/dist/chunk-UOQECODR.js +34 -0
  249. package/dist/chunk-UR27UDTB.js +354 -0
  250. package/dist/chunk-UWZ4G3SQ.js +93 -0
  251. package/dist/{chunk-Y72HH2TF.cjs → chunk-V3SZLWEQ.cjs} +33 -24
  252. package/dist/chunk-V4HGZSKQ.cjs +183 -0
  253. package/dist/{chunk-3PDTTAKJ.js → chunk-V5ELP2XE.js} +19 -12
  254. package/dist/{chunk-3K2ESU53.cjs → chunk-VKOXFT4L.cjs} +2 -2
  255. package/dist/{chunk-XTB6VJVQ.cjs → chunk-VLGGMQUN.cjs} +6 -6
  256. package/dist/chunk-VQHSYAPZ.cjs +3897 -0
  257. package/dist/chunk-VUGOOGHB.js +400 -0
  258. package/dist/chunk-W5QLA6WP.cjs +866 -0
  259. package/dist/chunk-WBU4Q4GS.cjs +400 -0
  260. package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
  261. package/dist/chunk-WJYFLQ7G.cjs +27 -0
  262. package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
  263. package/dist/{chunk-ZSPXQYG2.js → chunk-WNJXIACY.js} +7 -5
  264. package/dist/{chunk-AYS2ASM7.js → chunk-WPE2XHVX.js} +1 -1
  265. package/dist/chunk-WTB7AFL6.cjs +101 -0
  266. package/dist/{chunk-JYTDYJVW.js → chunk-X3TI5TJJ.js} +1 -1
  267. package/dist/chunk-X5P6QQOB.cjs +719 -0
  268. package/dist/{chunk-245KJE5Y.cjs → chunk-X7XMITIL.cjs} +14 -6
  269. package/dist/chunk-XF2WIKHR.cjs +34 -0
  270. package/dist/{chunk-DV2ZHK7B.cjs → chunk-XNIMSVS6.cjs} +49 -26
  271. package/dist/chunk-XW3XCK4E.cjs +59 -0
  272. package/dist/{chunk-N23UAW4I.js → chunk-XZVDYC5U.js} +7 -2
  273. package/dist/chunk-Y5BDE24P.cjs +444 -0
  274. package/dist/{chunk-NAGQ2PDC.js → chunk-YC5OBZQU.js} +1604 -433
  275. package/dist/chunk-YISPVAXO.cjs +2340 -0
  276. package/dist/{chunk-KQGPTCQJ.js → chunk-YQDI753V.js} +68 -25
  277. package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
  278. package/dist/{chunk-NNPAM4HC.cjs → chunk-YWH55BWK.cjs} +15 -6
  279. package/dist/{chunk-X2YOZQIP.cjs → chunk-YWTIXHU6.cjs} +266 -19
  280. package/dist/{chunk-XX2ZO7DS.js → chunk-YXM6SA7P.js} +25 -16
  281. package/dist/chunk-YZWE7XSM.js +5 -0
  282. package/dist/chunk-ZASDSY7P.cjs +114 -0
  283. package/dist/{chunk-2UC22DJU.js → chunk-ZNGRLCFQ.js} +30 -4
  284. package/dist/{chunk-KANW6OYC.cjs → chunk-ZNYZB7XY.cjs} +34 -8
  285. package/dist/{chunk-NA6WQDYW.js → chunk-ZPLCAXJW.js} +1088 -116
  286. package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
  287. package/dist/chunk-ZUYYHKQA.js +44 -0
  288. package/dist/clear-QJXU25IF.cjs +12 -0
  289. package/dist/{clear-A3N4GK2S.js → clear-Y5TO3RZA.js} +3 -3
  290. package/dist/communityInstaller-LXMVKVAV.cjs +22 -0
  291. package/dist/{communityInstaller-LOP2EDH5.js → communityInstaller-RVL4STPS.js} +8 -5
  292. package/dist/completion-JX4T2ONW.cjs +17 -0
  293. package/dist/completion-SE3XYG74.js +17 -0
  294. package/dist/config-3224PRW4.cjs +21 -0
  295. package/dist/{config-HPJPKTO6.js → config-7KPHKFTP.js} +7 -4
  296. package/dist/{constants-LISJW3DD.js → constants-EJFAWJQI.js} +1 -1
  297. package/dist/constants-MCCGUU5F.cjs +21 -0
  298. package/dist/{defaultHooks-IHSJR2AX.cjs → defaultHooks-2V2CQL63.cjs} +25 -10
  299. package/dist/{defaultHooks-KUKHK3AG.js → defaultHooks-TMHDU3FS.js} +25 -10
  300. package/dist/export-BJVIDZC4.js +15 -0
  301. package/dist/export-KU4557HK.cjs +15 -0
  302. package/dist/feature-K3LG5IJP.cjs +14 -0
  303. package/dist/feature-V4JF5TNJ.js +14 -0
  304. package/dist/features-5OJTLKS7.js +23 -0
  305. package/dist/features-VCBJQXCX.cjs +23 -0
  306. package/dist/feedback-D4437VE4.js +18 -0
  307. package/dist/feedback-VZPEHGFY.cjs +18 -0
  308. package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
  309. package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
  310. package/dist/{filesystem-Z7BWAWMZ.js → filesystem-L6DQKGWK.js} +3 -2
  311. package/dist/filesystem-PGUPCMVK.cjs +11 -0
  312. package/dist/go-X4E6BCD6.js +12 -0
  313. package/dist/go-XREVFS5I.cjs +12 -0
  314. package/dist/goal-4M3J6JS2.cjs +16 -0
  315. package/dist/goal-EI66BV7W.js +16 -0
  316. package/dist/help-GGFS7WHY.cjs +12 -0
  317. package/dist/{help-GFQXNZOK.js → help-MLIROWKM.js} +2 -2
  318. package/dist/{history-E3N6BJP7.js → history-GQJ6RZD6.js} +2 -2
  319. package/dist/history-J4LUIOSI.cjs +14 -0
  320. package/dist/hooks-FSRIUS6A.cjs +18 -0
  321. package/dist/hooks-PPFHCF7T.js +18 -0
  322. package/dist/i18n-CI6VFXL5.cjs +33 -0
  323. package/dist/{i18n-SY7QRM22.js → i18n-Q7UZJRPL.js} +1 -1
  324. package/dist/ide-BUSVE54P.js +15 -0
  325. package/dist/ide-YR27BPGM.cjs +15 -0
  326. package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
  327. package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
  328. package/dist/{import-W7SVLSTC.js → import-3VBKI6BN.js} +3 -3
  329. package/dist/{import-ADI37ZUR.cjs → import-C7S6UJMW.cjs} +3 -3
  330. package/dist/import-DBK4OCDF.cjs +10 -0
  331. package/dist/{import-KGKKZ3B7.js → import-U47DXCA7.js} +2 -2
  332. package/dist/index.cjs +837 -23011
  333. package/dist/index.d.cts +95 -0
  334. package/dist/index.d.ts +95 -0
  335. package/dist/index.js +864 -23038
  336. package/dist/init-OXTYS72D.cjs +10 -0
  337. package/dist/{init-7MFK626E.js → init-Q2O4R42R.js} +2 -2
  338. package/dist/inkMode-VUE6ZDLD.cjs +7 -0
  339. package/dist/inkMode-WBNFOSAT.js +7 -0
  340. package/dist/inputPrompt-3CFZDUBH.js +90 -0
  341. package/dist/inputPrompt-JMACL4EB.cjs +90 -0
  342. package/dist/language-EK3M6UBV.cjs +22 -0
  343. package/dist/language-Q3RUGGOW.js +22 -0
  344. package/dist/learn-3DSX7DYG.cjs +23 -0
  345. package/dist/learn-OPOH5L43.js +23 -0
  346. package/dist/login-GST7MWXJ.cjs +27 -0
  347. package/dist/login-Q7DZKAX4.js +27 -0
  348. package/dist/logout-2G7OUK7I.cjs +24 -0
  349. package/dist/logout-FNBBL2UI.js +24 -0
  350. package/dist/mcp-AH3MMUBU.js +21 -0
  351. package/dist/mcp-DW7R63IB.cjs +21 -0
  352. package/dist/{mcp-install-2FEROZTL.js → mcp-install-222PCKSW.js} +18 -10
  353. package/dist/{mcp-install-WM6BQRI5.cjs → mcp-install-IA4ZS2SV.cjs} +22 -14
  354. package/dist/memory-6NX3DAIY.cjs +10 -0
  355. package/dist/{memory-J73WZH2I.js → memory-VB46T5H3.js} +2 -2
  356. package/dist/model-64NAELFS.cjs +10 -0
  357. package/dist/{model-AES267IN.js → model-SJJG64AM.js} +2 -2
  358. package/dist/new-DU5SOOOY.cjs +12 -0
  359. package/dist/{new-5CLF3MKH.js → new-ERZ5C6CN.js} +3 -3
  360. package/dist/onboarding-2U2BV2KE.cjs +36 -0
  361. package/dist/onboarding-ZQXMPSMJ.js +36 -0
  362. package/dist/permissions-7ACNFK7A.js +10 -0
  363. package/dist/permissions-GSNNV7RJ.cjs +10 -0
  364. package/dist/plan-XEJMOT55.cjs +13 -0
  365. package/dist/{plan-65HMS5HQ.js → plan-YYUAXPTL.js} +3 -1
  366. package/dist/pr-review-CW6J7P62.cjs +9 -0
  367. package/dist/pr-review-YZSBQVT2.js +9 -0
  368. package/dist/{quit-XDZYRSPU.js → quit-WY6T267G.js} +2 -2
  369. package/dist/quit-XIRE2KRE.cjs +10 -0
  370. package/dist/rawMode-6W5AXAKI.cjs +7 -0
  371. package/dist/rawMode-GFNLXQPU.js +7 -0
  372. package/dist/{registry-PTHWERKC.js → registry-4DXUDKJN.js} +29 -44
  373. package/dist/{registry-IVT4G2RT.cjs → registry-UEO3ETZ7.cjs} +65 -80
  374. package/dist/repeat-P4FAPE3Y.cjs +17 -0
  375. package/dist/{repeat-EVCWUL6Z.js → repeat-RALE6AUO.js} +7 -3
  376. package/dist/resume-RQZ3WXBP.cjs +17 -0
  377. package/dist/resume-XSXZMDMD.js +17 -0
  378. package/dist/review-QHP2KP4Q.js +9 -0
  379. package/dist/review-UWHWQHCB.cjs +9 -0
  380. package/dist/ripgrep-67SCU2BA.cjs +9 -0
  381. package/dist/ripgrep-VHJQQ55W.js +9 -0
  382. package/dist/rpc-XH7QLN4H.js +3874 -0
  383. package/dist/rpc-YF54T7JU.cjs +3874 -0
  384. package/dist/search-VXXFGZWU.cjs +21 -0
  385. package/dist/search-YAWGX7P7.js +21 -0
  386. package/dist/{sessions-6GWEBMKS.js → sessions-NJYHJOEL.js} +2 -2
  387. package/dist/sessions-OSG3UJEZ.cjs +10 -0
  388. package/dist/settings-SO2UIGWV.cjs +42 -0
  389. package/dist/settings-ZXUQH3DO.js +42 -0
  390. package/dist/setup-KG7EGKF5.js +30 -0
  391. package/dist/setup-RSOPCQ57.cjs +30 -0
  392. package/dist/share-WFAGZ5PY.js +17 -0
  393. package/dist/share-ZU3SGACF.cjs +17 -0
  394. package/dist/skills-KBVAQAD2.cjs +29 -0
  395. package/dist/skills-NBTNDVAY.js +29 -0
  396. package/dist/{skills-ZZCIAS7C.js → skills-OB6RDW7D.js} +10 -7
  397. package/dist/{skills-PG542VEB.cjs → skills-ZROBG3RZ.cjs} +13 -10
  398. package/dist/{skills-install-SRC3Z2MS.js → skills-install-BHTIEMKH.js} +21 -70
  399. package/dist/{skills-install-67DOBPJC.cjs → skills-install-ILX6QVEF.cjs} +34 -83
  400. package/dist/skills-new-B45VQ2PP.cjs +18 -0
  401. package/dist/skills-new-YMRP2HNO.js +18 -0
  402. package/dist/slashCommands-53VYIBJU.js +105 -0
  403. package/dist/slashCommands-BG2RGGZ6.cjs +105 -0
  404. package/dist/status-CQ2IUOVK.cjs +24 -0
  405. package/dist/status-E7IGNVPC.js +24 -0
  406. package/dist/summarizer-DGPHE5IQ.js +17 -0
  407. package/dist/summarizer-JNXLUAQG.cjs +17 -0
  408. package/dist/sync-7C25MOT2.js +22 -0
  409. package/dist/{sync-VU2NSJ4O.js → sync-OCJN4ZSO.js} +3 -3
  410. package/dist/sync-XRP46IVG.cjs +40 -0
  411. package/dist/sync-ZMFVE7T4.cjs +22 -0
  412. package/dist/{teammate-SXRVXNQV.cjs → teammate-D77B6QRT.cjs} +31 -9
  413. package/dist/{teammate-SD26GR37.js → teammate-EZCMHOIL.js} +30 -8
  414. package/dist/templates-ARG2VRWW.cjs +11 -0
  415. package/dist/templates-UGVZV3KJ.js +11 -0
  416. package/dist/theme-KKRDE6P7.cjs +22 -0
  417. package/dist/theme-XF7XIWBQ.js +22 -0
  418. package/dist/tools-3PPTTKFV.js +9 -0
  419. package/dist/tools-THIQA7WC.cjs +9 -0
  420. package/dist/ui/questionModal.cjs +8 -5
  421. package/dist/ui/questionModal.js +7 -4
  422. package/dist/{undo-OL2EDBRY.js → undo-GNUTFXCW.js} +2 -2
  423. package/dist/undo-U4KN7QQM.cjs +10 -0
  424. package/dist/usage-QSTNSDAO.js +24 -0
  425. package/dist/usage-YDEMQBNQ.cjs +24 -0
  426. package/dist/web-3BA2WV37.cjs +37 -0
  427. package/dist/web-6FYGBX5K.js +37 -0
  428. package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
  429. package/dist/workspaceSafety-XOUMUBVB.js +9 -0
  430. package/dist/yolo-GF2YD7ZI.js +9 -0
  431. package/dist/yolo-OGDA7HNC.cjs +9 -0
  432. package/dist/yoloMode-3DJDA75U.cjs +17 -0
  433. package/dist/yoloMode-4JOOSU26.js +17 -0
  434. package/package.json +51 -49
  435. package/dist/AgentRegistry-HRPN6ZOF.cjs +0 -10
  436. package/dist/CommunitySkillsCache-KE435RAR.cjs +0 -8
  437. package/dist/GitHubRegistryFetcher-I45SESIL.cjs +0 -7
  438. package/dist/LearnAdvisor-FLBA6FDD.js +0 -9
  439. package/dist/LearnAdvisor-GG3CXQF3.cjs +0 -9
  440. package/dist/MemoryManager-2LQPIYVE.cjs +0 -8
  441. package/dist/PermissionManager-X57BXHJ6.cjs +0 -11
  442. package/dist/ProviderFactory-KPJOGQWF.cjs +0 -9
  443. package/dist/SessionManager-YBJAZXNO.cjs +0 -10
  444. package/dist/SkillsRegistry-7O72A6TZ.cjs +0 -9
  445. package/dist/SubAgent-JT4HZHN7.js +0 -11
  446. package/dist/SubAgent-VPNYDWAU.cjs +0 -11
  447. package/dist/SyncApiClient-HQXJL5BT.cjs +0 -11
  448. package/dist/about-4DB5KTHW.js +0 -12
  449. package/dist/about-LXAOXZFT.cjs +0 -12
  450. package/dist/actionExecutor-23JB2WUC.js +0 -19
  451. package/dist/actionExecutor-X5UEZSKH.cjs +0 -19
  452. package/dist/add-dir-YC37DMSF.cjs +0 -10
  453. package/dist/agents-YF3BSUU5.js +0 -12
  454. package/dist/agents-ZOUHPMYR.cjs +0 -12
  455. package/dist/agents-new-HSH4GQPG.js +0 -14
  456. package/dist/agents-new-VYUDOCE7.cjs +0 -14
  457. package/dist/autoSkill-X5W52WOE.cjs +0 -20
  458. package/dist/automode-SJGM7VEI.cjs +0 -10
  459. package/dist/chunk-ALYU6VTM.js +0 -105
  460. package/dist/chunk-B53A2NM2.js +0 -2030
  461. package/dist/chunk-BJXSNT46.js +0 -100
  462. package/dist/chunk-CB4E2T5N.cjs +0 -312
  463. package/dist/chunk-DNUOXBHL.js +0 -539
  464. package/dist/chunk-EFX2QSZX.cjs +0 -33
  465. package/dist/chunk-GCXYXLRA.cjs +0 -111
  466. package/dist/chunk-H2ZRHQQV.js +0 -33
  467. package/dist/chunk-HNRPK5MY.cjs +0 -85
  468. package/dist/chunk-HVKOZ2VP.cjs +0 -115
  469. package/dist/chunk-JJLYWH5Y.cjs +0 -100
  470. package/dist/chunk-LWUJFGOZ.js +0 -115
  471. package/dist/chunk-MERYP6AM.cjs +0 -539
  472. package/dist/chunk-MZAPWNAC.cjs +0 -207
  473. package/dist/chunk-NTSDP2WB.js +0 -226
  474. package/dist/chunk-OUZQXMHL.cjs +0 -226
  475. package/dist/chunk-PGESAU2W.cjs +0 -2030
  476. package/dist/chunk-SYVYLZZF.cjs +0 -24
  477. package/dist/chunk-SZOLA6FR.js +0 -111
  478. package/dist/chunk-VWDHR4HV.js +0 -168
  479. package/dist/chunk-Y45G6ZO5.cjs +0 -168
  480. package/dist/chunk-YRLYSQEQ.cjs +0 -105
  481. package/dist/chunk-ZYVS43MU.js +0 -312
  482. package/dist/clear-GK4IEUUS.cjs +0 -12
  483. package/dist/communityInstaller-XXC7RLE4.cjs +0 -19
  484. package/dist/completion-HWABSAEL.js +0 -14
  485. package/dist/completion-IUUVQG4D.cjs +0 -14
  486. package/dist/config-HF7WOLZF.cjs +0 -18
  487. package/dist/constants-PEO3P2SJ.cjs +0 -21
  488. package/dist/export-QJAV2FCZ.js +0 -12
  489. package/dist/export-XSRFXGWU.cjs +0 -12
  490. package/dist/feedback-4TCIL3ML.cjs +0 -15
  491. package/dist/feedback-SJ6VVEY3.js +0 -15
  492. package/dist/filesystem-W56QZUJF.cjs +0 -10
  493. package/dist/help-ISBVQL3S.cjs +0 -12
  494. package/dist/history-XQ4GTSFU.cjs +0 -14
  495. package/dist/hooks-CJNKJ5PF.js +0 -13
  496. package/dist/hooks-UTMBTAXT.cjs +0 -13
  497. package/dist/i18n-N7QQ7A5M.cjs +0 -33
  498. package/dist/ide-RTA4UJV4.js +0 -12
  499. package/dist/ide-VWVOLIFF.cjs +0 -12
  500. package/dist/immediateCommandRouter-BW34JNXL.js +0 -9
  501. package/dist/immediateCommandRouter-SHOVNB5X.cjs +0 -9
  502. package/dist/import-ZLJVONXH.cjs +0 -10
  503. package/dist/init-TBKAB4LZ.cjs +0 -10
  504. package/dist/language-MDSHEXHB.cjs +0 -18
  505. package/dist/language-PXTQSHIG.js +0 -18
  506. package/dist/learn-623TW5EK.cjs +0 -20
  507. package/dist/learn-BCPV7GM2.js +0 -20
  508. package/dist/localProjectPermissions-BHQXEWZJ.cjs +0 -18
  509. package/dist/localProjectPermissions-GMOUYQM6.js +0 -18
  510. package/dist/login-QMVEETWJ.js +0 -20
  511. package/dist/login-QYMXAL3K.cjs +0 -20
  512. package/dist/logout-2CMTDAOJ.js +0 -18
  513. package/dist/logout-ZOHVZAUK.cjs +0 -18
  514. package/dist/mcp-IUVKK65S.js +0 -18
  515. package/dist/mcp-TXC7PYG3.cjs +0 -18
  516. package/dist/memory-WRIHDEPK.cjs +0 -10
  517. package/dist/model-RLP75SF5.cjs +0 -10
  518. package/dist/new-HLSFL6A4.cjs +0 -12
  519. package/dist/permissions-GP6FTGZ2.js +0 -13
  520. package/dist/permissions-O6EKKPOG.cjs +0 -13
  521. package/dist/plan-MCAXDIM2.cjs +0 -11
  522. package/dist/quit-TQX6GXA5.cjs +0 -10
  523. package/dist/repeat-BSPS5TWD.cjs +0 -13
  524. package/dist/resume-2GOPDLL4.cjs +0 -13
  525. package/dist/resume-37IUVDA6.js +0 -13
  526. package/dist/search-7KUSHIBL.cjs +0 -17
  527. package/dist/search-OJGDRIMA.js +0 -17
  528. package/dist/sessions-CYYCHSQG.cjs +0 -10
  529. package/dist/settings-2D7CAO66.cjs +0 -30
  530. package/dist/settings-BXR6SBJP.js +0 -30
  531. package/dist/share-BXQY5IQU.js +0 -14
  532. package/dist/share-OSFXZBGS.cjs +0 -14
  533. package/dist/skills-FL6O6AOM.cjs +0 -26
  534. package/dist/skills-PNKQZRNK.js +0 -26
  535. package/dist/skills-new-XFMEHHIF.cjs +0 -15
  536. package/dist/skills-new-ZNZPHUKS.js +0 -15
  537. package/dist/slashCommands-LLCNPK3X.js +0 -76
  538. package/dist/slashCommands-RXZZS6RE.cjs +0 -76
  539. package/dist/status-BCECUJXT.cjs +0 -11
  540. package/dist/status-EFO7MQU3.js +0 -11
  541. package/dist/sync-IJYJ6KKM.js +0 -18
  542. package/dist/sync-LFT6SBPF.cjs +0 -18
  543. package/dist/sync-U7SDPBNZ.cjs +0 -40
  544. package/dist/theme-AWBHSG7J.cjs +0 -18
  545. package/dist/theme-TQLBPJ2E.js +0 -18
  546. package/dist/undo-IBBGP7A2.cjs +0 -10
@@ -0,0 +1,354 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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; }// src/core/context/priority.ts
2
+ function extractMessageMetadata(message) {
3
+ const content = _nullishCoalesce(message.content, () => ( ""));
4
+ const metadata = {};
5
+ const filePatterns = [
6
+ /(?:^|\s)([\/\w.-]+\.[a-zA-Z]{1,5})(?:\s|$|:|\()/gm,
7
+ /`([^`]+\.[a-zA-Z]{1,5})`/g,
8
+ /["']([^"']+\.[a-zA-Z]{1,5})["']/g
9
+ ];
10
+ const files = /* @__PURE__ */ new Set();
11
+ for (const pattern of filePatterns) {
12
+ let match;
13
+ while ((match = pattern.exec(content)) !== null) {
14
+ const file = match[1];
15
+ if (file && !file.startsWith("http") && !file.includes("://")) {
16
+ files.add(file);
17
+ }
18
+ }
19
+ }
20
+ if (files.size > 0) {
21
+ metadata.files = [...files];
22
+ }
23
+ if (message.name) {
24
+ metadata.tools = [message.name];
25
+ }
26
+ if (message.tool_calls && message.tool_calls.length > 0) {
27
+ metadata.tools = message.tool_calls.map((tc) => tc.function.name);
28
+ }
29
+ const decisionPatterns = [
30
+ /I('ll| will|'m going to| chose| decided| picked| selected)/i,
31
+ /let's (use|go with|implement|create)/i,
32
+ /we should (use|implement|create|add)/i,
33
+ /the (best|better|recommended) (approach|option|choice)/i
34
+ ];
35
+ metadata.isDecision = decisionPatterns.some((p) => p.test(content));
36
+ const errorPatterns = [
37
+ /error:|failed:|exception:|crash|bug|issue:|problem:/i,
38
+ /TypeError|SyntaxError|ReferenceError|Error:/,
39
+ /❌|✗|FAIL|FAILED/
40
+ ];
41
+ metadata.isError = errorPatterns.some((p) => p.test(content));
42
+ return metadata;
43
+ }
44
+ function determineMessagePriority(message) {
45
+ const content = _nullishCoalesce(message.content, () => ( ""));
46
+ const metadata = _nullishCoalesce(message.metadata, () => ( extractMessageMetadata(message)));
47
+ if (message.role === "system") {
48
+ return "critical";
49
+ }
50
+ if (message.role === "user") {
51
+ if (metadata.isDecision) return "critical";
52
+ if (content.length < 100) return "high";
53
+ return "high";
54
+ }
55
+ if (metadata.isError) {
56
+ return "high";
57
+ }
58
+ if (message.role === "tool" && metadata.files && metadata.files.length > 0) {
59
+ return "medium";
60
+ }
61
+ if (message.role === "tool" && content.length > 2e3) {
62
+ return "low";
63
+ }
64
+ if (message.role === "assistant" && metadata.isDecision) {
65
+ return "high";
66
+ }
67
+ return "medium";
68
+ }
69
+ function sortMessagesByPriority(messages) {
70
+ const priorityOrder = {
71
+ "low": 0,
72
+ "medium": 1,
73
+ "high": 2,
74
+ "critical": 3
75
+ };
76
+ const indices = messages.map((msg, i) => ({
77
+ index: i,
78
+ priority: _nullishCoalesce(msg.priority, () => ( determineMessagePriority(msg))),
79
+ age: i
80
+ }));
81
+ indices.sort((a, b) => {
82
+ const priorityDiff = priorityOrder[a.priority] - priorityOrder[b.priority];
83
+ if (priorityDiff !== 0) return priorityDiff;
84
+ return a.age - b.age;
85
+ });
86
+ return indices.map((i) => i.index);
87
+ }
88
+ function findCoherentRemovalIndices(messages, targetIndices) {
89
+ const toRemove = new Set(targetIndices);
90
+ for (const idx of [...toRemove]) {
91
+ const msg = messages[idx];
92
+ if (msg.role === "tool" && msg.tool_call_id) {
93
+ const assistantIdx = messages.findIndex(
94
+ (m) => m.role === "assistant" && _optionalChain([m, 'access', _ => _.tool_calls, 'optionalAccess', _2 => _2.some, 'call', _3 => _3((tc) => tc.id === msg.tool_call_id)])
95
+ );
96
+ if (assistantIdx >= 0) toRemove.add(assistantIdx);
97
+ }
98
+ }
99
+ for (const idx of [...toRemove]) {
100
+ const msg = messages[idx];
101
+ if (msg.role === "assistant" && msg.tool_calls) {
102
+ for (const tc of msg.tool_calls) {
103
+ const toolIdx = messages.findIndex(
104
+ (m) => m.role === "tool" && m.tool_call_id === tc.id
105
+ );
106
+ if (toolIdx >= 0) toRemove.add(toolIdx);
107
+ }
108
+ }
109
+ }
110
+ return [...toRemove].sort((a, b) => a - b);
111
+ }
112
+
113
+ // src/core/context/serializer.ts
114
+ var TOOL_RESULT_MAX_LENGTH = 2e3;
115
+ function serializeMessagesForSummary(messages) {
116
+ const lines = [];
117
+ for (const msg of messages) {
118
+ switch (msg.role) {
119
+ case "system":
120
+ break;
121
+ case "user":
122
+ lines.push(`[User]: ${_nullishCoalesce(msg.content, () => ( ""))}`);
123
+ break;
124
+ case "assistant": {
125
+ const content = _nullishCoalesce(msg.content, () => ( ""));
126
+ if (msg.tool_calls && msg.tool_calls.length > 0) {
127
+ const callDescriptions = msg.tool_calls.map((tc) => {
128
+ const args = _nullishCoalesce(tc.function.arguments, () => ( "{}"));
129
+ let shortArgs = args;
130
+ try {
131
+ const parsed = JSON.parse(args);
132
+ const keys = Object.keys(parsed);
133
+ const preview = keys.slice(0, 3).map((k) => `${k}="${String(parsed[k]).slice(0, 80)}"`).join(", ");
134
+ shortArgs = keys.length > 3 ? `${preview}, +${keys.length - 3} more` : preview;
135
+ } catch (e) {
136
+ shortArgs = args.slice(0, 100);
137
+ }
138
+ return `${tc.function.name}(${shortArgs})`;
139
+ }).join("; ");
140
+ if (content) {
141
+ lines.push(`[Assistant]: ${content.slice(0, 500)}`);
142
+ }
143
+ lines.push(`[Assistant tool calls]: ${callDescriptions}`);
144
+ } else {
145
+ lines.push(`[Assistant]: ${content.slice(0, 500)}`);
146
+ }
147
+ break;
148
+ }
149
+ case "tool": {
150
+ const toolName = _nullishCoalesce(msg.name, () => ( "unknown"));
151
+ const rawContent = _nullishCoalesce(msg.content, () => ( ""));
152
+ const truncated = rawContent.length > TOOL_RESULT_MAX_LENGTH ? rawContent.slice(0, Math.floor(TOOL_RESULT_MAX_LENGTH * 0.6)) + `
153
+ ... [${rawContent.length - TOOL_RESULT_MAX_LENGTH} chars truncated] ...
154
+ ` + rawContent.slice(-Math.floor(TOOL_RESULT_MAX_LENGTH * 0.3)) : rawContent;
155
+ lines.push(`[Tool result (${toolName})]: ${truncated}`);
156
+ break;
157
+ }
158
+ }
159
+ }
160
+ return lines.join("\n");
161
+ }
162
+
163
+ // src/core/context/summarizer.ts
164
+ function summarizeMessagesStatic(messages) {
165
+ const files = /* @__PURE__ */ new Set();
166
+ const tools = /* @__PURE__ */ new Set();
167
+ const decisions = [];
168
+ const errors = [];
169
+ const userRequests = [];
170
+ for (const msg of messages) {
171
+ const metadata = _nullishCoalesce(msg.metadata, () => ( extractMessageMetadata(msg)));
172
+ if (metadata.files) {
173
+ metadata.files.forEach((f) => files.add(f));
174
+ }
175
+ if (metadata.tools) {
176
+ metadata.tools.forEach((t) => tools.add(t));
177
+ }
178
+ if (msg.role === "user") {
179
+ const preview = (_nullishCoalesce(msg.content, () => ( ""))).slice(0, 100);
180
+ userRequests.push(preview + (preview.length < (_nullishCoalesce(_optionalChain([msg, 'access', _4 => _4.content, 'optionalAccess', _5 => _5.length]), () => ( 0))) ? "..." : ""));
181
+ }
182
+ if (metadata.isDecision && msg.role === "assistant") {
183
+ const preview = (_nullishCoalesce(msg.content, () => ( ""))).slice(0, 150);
184
+ decisions.push(preview);
185
+ }
186
+ if (metadata.isError) {
187
+ const preview = (_nullishCoalesce(msg.content, () => ( ""))).slice(0, 150);
188
+ errors.push(preview);
189
+ }
190
+ }
191
+ const parts = [
192
+ `[Context Summary - ${messages.length} messages condensed]`
193
+ ];
194
+ if (userRequests.length > 0) {
195
+ parts.push(`User requests: ${userRequests.slice(0, 3).join(" | ")}`);
196
+ }
197
+ if (files.size > 0) {
198
+ parts.push(`Files touched: ${[...files].slice(0, 10).join(", ")}${files.size > 10 ? ` (+${files.size - 10} more)` : ""}`);
199
+ }
200
+ if (tools.size > 0) {
201
+ parts.push(`Tools used: ${[...tools].join(", ")}`);
202
+ }
203
+ if (decisions.length > 0) {
204
+ parts.push(`Key decisions: ${decisions.slice(0, 2).join(" | ")}`);
205
+ }
206
+ if (errors.length > 0) {
207
+ parts.push(`Errors encountered: ${errors.slice(0, 2).join(" | ")}`);
208
+ }
209
+ return parts.join("\n");
210
+ }
211
+ async function summarizeWithLLM(messages, llm, memoryManager) {
212
+ if (!llm || messages.length === 0) {
213
+ return summarizeMessagesStatic(messages);
214
+ }
215
+ try {
216
+ const serializedLog = serializeMessagesForSummary(messages);
217
+ const summarizationPrompt = [
218
+ "Summarize the following conversation for context preservation. Include:",
219
+ "1. The user's original request and intent",
220
+ "2. What has been accomplished so far (files created/modified, commands run)",
221
+ "3. What remains to be done",
222
+ "4. Any key decisions or constraints discovered",
223
+ "5. Any user preferences or project-relevant points worth remembering",
224
+ "",
225
+ "Keep it concise (under 500 words). This summary replaces the removed messages.",
226
+ "",
227
+ "--- Conversation ---",
228
+ serializedLog
229
+ ].join("\n");
230
+ const response = await llm.complete({
231
+ messages: [
232
+ { role: "system", content: "You are a context summarization assistant. Produce concise, factual summaries that preserve task continuity." },
233
+ { role: "user", content: summarizationPrompt }
234
+ ],
235
+ temperature: 0.1,
236
+ maxTokens: 1e3
237
+ });
238
+ const summaryText = _optionalChain([response, 'access', _6 => _6.content, 'optionalAccess', _7 => _7.trim, 'call', _8 => _8()]);
239
+ if (!summaryText) {
240
+ return summarizeMessagesStatic(messages);
241
+ }
242
+ if (memoryManager) {
243
+ await persistKeyFacts(summaryText, memoryManager).catch(() => {
244
+ });
245
+ }
246
+ return `[LLM Context Summary - ${messages.length} messages condensed]
247
+ ${summaryText}`;
248
+ } catch (e2) {
249
+ return summarizeMessagesStatic(messages);
250
+ }
251
+ }
252
+ function buildStructuredSummary(summaryText, fileOps) {
253
+ const lines = summaryText.split("\n").map((l) => l.trim()).filter(Boolean);
254
+ const goal = _nullishCoalesce(_nullishCoalesce(lines.find((l) => /goal|intent|request|objective/i.test(l)), () => ( lines[0])), () => ( ""));
255
+ const constraints = [];
256
+ const progress = [];
257
+ const keyDecisions = [];
258
+ const nextSteps = [];
259
+ const criticalContext = [];
260
+ for (const line of lines) {
261
+ if (/constraint|requirement|must|should/i.test(line)) constraints.push(line);
262
+ else if (/accomplished|done|completed|created|modified|implemented/i.test(line)) progress.push(line);
263
+ else if (/decided|chose|selected|preference/i.test(line)) keyDecisions.push(line);
264
+ else if (/remain|todo|next|pending|still/i.test(line)) nextSteps.push(line);
265
+ else if (/critical|important|essential|key/i.test(line)) criticalContext.push(line);
266
+ }
267
+ return {
268
+ goal,
269
+ constraints,
270
+ progress,
271
+ keyDecisions,
272
+ nextSteps,
273
+ criticalContext,
274
+ readFiles: fileOps.readFiles,
275
+ modifiedFiles: fileOps.modifiedFiles
276
+ };
277
+ }
278
+ function extractFileOperations(messages) {
279
+ const readFiles = /* @__PURE__ */ new Set();
280
+ const modifiedFiles = /* @__PURE__ */ new Set();
281
+ for (const msg of messages) {
282
+ const metadata = _nullishCoalesce(msg.metadata, () => ( extractMessageMetadata(msg)));
283
+ if (!metadata.tools || !metadata.files) continue;
284
+ for (const tool of metadata.tools) {
285
+ const isReadTool = tool.includes("read") || tool.includes("cat") || tool.includes("grep") || tool.includes("search");
286
+ const isWriteTool = tool.includes("write") || tool.includes("edit") || tool.includes("create") || tool.includes("delete") || tool.includes("move");
287
+ if (isReadTool) {
288
+ metadata.files.forEach((f) => readFiles.add(f));
289
+ }
290
+ if (isWriteTool) {
291
+ metadata.files.forEach((f) => modifiedFiles.add(f));
292
+ }
293
+ }
294
+ }
295
+ return {
296
+ readFiles: [...readFiles],
297
+ modifiedFiles: [...modifiedFiles]
298
+ };
299
+ }
300
+ async function persistKeyFacts(summary, memoryManager) {
301
+ const factPatterns = [
302
+ /(?:chose|decided|selected|using|preference|prefer)\s+.{10,100}/gi,
303
+ /(?:constraint|requirement|must|should)\s+.{10,100}/gi
304
+ ];
305
+ const facts = /* @__PURE__ */ new Set();
306
+ for (const pattern of factPatterns) {
307
+ let match;
308
+ while ((match = pattern.exec(summary)) !== null) {
309
+ facts.add(match[0].trim());
310
+ }
311
+ }
312
+ for (const fact of [...facts].slice(0, 5)) {
313
+ await memoryManager.store(fact, "project", ["context-summary"], "context-summarization");
314
+ }
315
+ }
316
+ var summarizeMessages = summarizeMessagesStatic;
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+ exports.extractMessageMetadata = extractMessageMetadata; exports.determineMessagePriority = determineMessagePriority; exports.sortMessagesByPriority = sortMessagesByPriority; exports.findCoherentRemovalIndices = findCoherentRemovalIndices; exports.summarizeMessagesStatic = summarizeMessagesStatic; exports.summarizeWithLLM = summarizeWithLLM; exports.buildStructuredSummary = buildStructuredSummary; exports.extractFileOperations = extractFileOperations; exports.persistKeyFacts = persistKeyFacts; exports.summarizeMessages = summarizeMessages;
330
+ /**
331
+ * @license
332
+ * Copyright 2025 Autohand AI LLC
333
+ * SPDX-License-Identifier: Apache-2.0
334
+ *
335
+ * Metadata extraction, priority scoring, sorting, and tool-call coherence.
336
+ * Extracted from contextManager.ts for composability.
337
+ */
338
+ /**
339
+ * @license
340
+ * Copyright 2025 Autohand AI LLC
341
+ * SPDX-License-Identifier: Apache-2.0
342
+ *
343
+ * Message → text serialization for summarization prompts.
344
+ * Converts LLMMessage[] into a plain-text conversation log that
345
+ * prevents the LLM from treating it as a conversation to continue.
346
+ */
347
+ /**
348
+ * @license
349
+ * Copyright 2025 Autohand AI LLC
350
+ * SPDX-License-Identifier: Apache-2.0
351
+ *
352
+ * LLM-powered + static summarization with structured format.
353
+ * Extracted from contextManager.ts for composability.
354
+ */
@@ -0,0 +1,184 @@
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
+
3
+ var _chunkNQZH5CR2cjs = require('./chunk-NQZH5CR2.cjs');
4
+
5
+
6
+
7
+ var _chunkWJYFLQ7Gcjs = require('./chunk-WJYFLQ7G.cjs');
8
+
9
+ // src/commands/goal.ts
10
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
11
+ var metadata = {
12
+ command: "/goal",
13
+ description: "Create, inspect, pause, resume, complete, clear, and queue persistent goals",
14
+ implemented: true,
15
+ subcommands: [
16
+ { name: "queue", description: "List queued goals or enqueue a goal" },
17
+ { name: "pause", description: "Pause the current goal" },
18
+ { name: "resume", description: "Resume a paused or queued goal" },
19
+ { name: "complete", description: "Mark the current goal complete" },
20
+ { name: "clear", description: "Clear the current goal" },
21
+ { name: "templates", description: "List reusable .pi-goals templates" }
22
+ ]
23
+ };
24
+ async function goal(ctx, args = []) {
25
+ if (!_chunkWJYFLQ7Gcjs.resolveGoalFeatureEnabled.call(void 0, ctx.config, ctx.isFeatureEnabled)) {
26
+ return _chunkWJYFLQ7Gcjs.GOAL_FEATURE_DISABLED_MESSAGE;
27
+ }
28
+ await _optionalChain([ctx, 'access', _ => _.trackFeatureActivation, 'optionalCall', _2 => _2("slash_goal", { surface: "slash_command" })]);
29
+ const manager = new (0, _chunkNQZH5CR2cjs.GoalManager)(ctx.workspaceRoot);
30
+ const input = args.join(" ").trim();
31
+ if (!input) {
32
+ return formatSnapshot(await manager.getSnapshot());
33
+ }
34
+ const [subcommand, ...restArgs] = args;
35
+ const rest = restArgs.join(" ").trim();
36
+ switch (_optionalChain([subcommand, 'optionalAccess', _3 => _3.toLowerCase, 'call', _4 => _4()])) {
37
+ case "queue":
38
+ return handleQueue(manager, rest);
39
+ case "pause":
40
+ return formatMutation(await manager.updateGoal({ status: "paused" }));
41
+ case "resume": {
42
+ const snapshot = await manager.getSnapshot();
43
+ if (!snapshot.goal && snapshot.queue.length > 0) {
44
+ const started = await manager.startQueuedGoal();
45
+ if (started.ok && started.goal) {
46
+ queueGoalContinuation(ctx, started.goal.objective);
47
+ }
48
+ return formatMutation(started);
49
+ }
50
+ const resumed = await manager.updateGoal({ status: "active" });
51
+ if (resumed.ok && resumed.goal) {
52
+ queueGoalContinuation(ctx, resumed.goal.objective);
53
+ }
54
+ return formatMutation(resumed);
55
+ }
56
+ case "complete":
57
+ return formatMutation(await manager.updateGoal({ status: "complete" }));
58
+ case "clear":
59
+ return formatMutation(await manager.clearGoal());
60
+ case "templates": {
61
+ const templates = await manager.listTemplates();
62
+ if (templates.length === 0) return "No goal templates found in .pi-goals/ or .ai/.pi-goals/.";
63
+ return [
64
+ `Goal templates (${templates.length}):`,
65
+ ...templates.map((template) => {
66
+ const aliases = template.aliases.length ? ` aliases: ${template.aliases.join(", ")}` : "";
67
+ return `- ${template.name}${aliases}${template.description ? ` - ${template.description}` : ""}`;
68
+ })
69
+ ].join("\n");
70
+ }
71
+ default: {
72
+ const resolved = await manager.resolveObjective(input);
73
+ if (!resolved.ok) return _chalk2.default.yellow(resolved.message);
74
+ const created = await manager.createGoal(resolved.input, { replace: false });
75
+ if (created.ok && created.goal) {
76
+ queueGoalContinuation(ctx, created.goal.objective);
77
+ }
78
+ return formatMutation(created);
79
+ }
80
+ }
81
+ }
82
+ async function runGoalCli(workspaceRoot, rawInput, config) {
83
+ if (!_chunkWJYFLQ7Gcjs.resolveGoalFeatureEnabled.call(void 0, config)) {
84
+ return _chunkWJYFLQ7Gcjs.GOAL_FEATURE_DISABLED_MESSAGE;
85
+ }
86
+ const manager = new (0, _chunkNQZH5CR2cjs.GoalManager)(workspaceRoot);
87
+ const input = _nullishCoalesce(_optionalChain([rawInput, 'optionalAccess', _5 => _5.trim, 'call', _6 => _6()]), () => ( ""));
88
+ 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)]), () => ( []));
90
+ return goal({ workspaceRoot }, args);
91
+ }
92
+ async function handleQueue(manager, rest) {
93
+ if (!rest) {
94
+ const snapshot = await manager.getSnapshot();
95
+ if (snapshot.queue.length === 0) return "No queued goals.";
96
+ return formatQueue(snapshot);
97
+ }
98
+ return formatMutation(await manager.enqueueGoalBlock(rest, "command"));
99
+ }
100
+ function queueGoalContinuation(ctx, objective) {
101
+ _optionalChain([ctx, 'access', _11 => _11.queueInstruction, 'optionalCall', _12 => _12([
102
+ `Active goal: ${objective}`,
103
+ "Continue working toward this persistent goal until it is complete, blocked, paused, cleared, or budget-limited.",
104
+ "Use get_goal or update_goal when you need to inspect or modify the goal state."
105
+ ].join("\n"))]);
106
+ }
107
+ function formatMutation(result) {
108
+ const lines = [result.ok ? _chalk2.default.green(_nullishCoalesce(result.message, () => ( "Goal updated."))) : _chalk2.default.yellow(_nullishCoalesce(result.message, () => ( "Goal command failed.")))];
109
+ if (result.goal) {
110
+ lines.push("");
111
+ lines.push(formatGoal(result.goal));
112
+ }
113
+ if (_optionalChain([result, 'access', _13 => _13.queued, 'optionalAccess', _14 => _14.length])) {
114
+ lines.push("");
115
+ lines.push(`Queued ${result.queued.length} goal${result.queued.length === 1 ? "" : "s"}:`);
116
+ for (const item of result.queued) {
117
+ lines.push(`- [${item.queueId}] ${item.objective}`);
118
+ }
119
+ }
120
+ if (result.started) {
121
+ lines.push(`Started queue item: ${result.started.queueId}`);
122
+ }
123
+ if (result.queue.length > 0 && !_optionalChain([result, 'access', _15 => _15.queued, 'optionalAccess', _16 => _16.length])) {
124
+ lines.push("");
125
+ lines.push(formatQueue({ queue: result.queue }));
126
+ }
127
+ return lines.join("\n");
128
+ }
129
+ function formatSnapshot(snapshot) {
130
+ if (!snapshot.goal && snapshot.queue.length === 0) {
131
+ return [
132
+ "No goal is currently set.",
133
+ "Use /goal <objective> to create one, or /goal queue <objective> to queue later work."
134
+ ].join("\n");
135
+ }
136
+ const parts = [];
137
+ if (snapshot.goal) parts.push(formatGoal(snapshot.goal));
138
+ else parts.push("No active goal.");
139
+ if (snapshot.queue.length > 0) {
140
+ parts.push("");
141
+ parts.push(formatQueue(snapshot));
142
+ }
143
+ return parts.join("\n");
144
+ }
145
+ function formatGoal(goalState) {
146
+ const lines = [
147
+ `Goal: ${goalState.objective}`,
148
+ `Status: ${goalState.status}`,
149
+ `ID: ${goalState.goalId}`,
150
+ `Elapsed: ${formatDuration(goalState.timeUsedSeconds)}`,
151
+ `Tokens: ${goalState.tokensUsed}${goalState.tokenBudget ? ` / ${goalState.tokenBudget}` : ""}`
152
+ ];
153
+ if (goalState.timeBudgetSeconds) lines.push(`Time budget: ${formatDuration(goalState.timeBudgetSeconds)}`);
154
+ if (goalState.minTokensBeforeWrapUp) lines.push(`Token floor: ${goalState.minTokensBeforeWrapUp}`);
155
+ if (goalState.minTimeSecondsBeforeWrapUp) lines.push(`Time floor: ${formatDuration(goalState.minTimeSecondsBeforeWrapUp)}`);
156
+ return lines.join("\n");
157
+ }
158
+ function formatQueue(snapshot) {
159
+ if (snapshot.queue.length === 0) return "No queued goals.";
160
+ return [
161
+ `Queued goals (${snapshot.queue.length}):`,
162
+ ...snapshot.queue.map((item, index) => `${index + 1}. [${item.queueId}] ${item.objective}`)
163
+ ].join("\n");
164
+ }
165
+ function formatDuration(seconds) {
166
+ const whole = Math.max(0, Math.floor(seconds));
167
+ const minutes = Math.floor(whole / 60);
168
+ const secs = whole % 60;
169
+ return minutes > 0 ? `${minutes}m ${secs}s` : `${secs}s`;
170
+ }
171
+ function unquote(value) {
172
+ return value.replace(/^['"]|['"]$/g, "");
173
+ }
174
+
175
+
176
+
177
+
178
+
179
+ exports.metadata = metadata; exports.goal = goal; exports.runGoalCli = runGoalCli;
180
+ /**
181
+ * @license
182
+ * Copyright 2025 Autohand AI LLC
183
+ * SPDX-License-Identifier: Apache-2.0
184
+ */
@@ -0,0 +1,85 @@
1
+ import {
2
+ SetupWizard
3
+ } from "./chunk-HSWWM6AM.js";
4
+ import {
5
+ loadConfig,
6
+ resolveWorkspaceRoot,
7
+ saveConfig
8
+ } from "./chunk-IEPLQ47J.js";
9
+ import {
10
+ detectLocale,
11
+ initI18n,
12
+ t
13
+ } from "./chunk-LEZEWKPA.js";
14
+
15
+ // src/commands/setup.ts
16
+ import chalk from "chalk";
17
+ var metadata = {
18
+ command: "/setup",
19
+ description: t("commands.setup.description") ?? "Run the setup wizard to configure or reconfigure Autohand",
20
+ implemented: true
21
+ };
22
+ async function setup(ctx) {
23
+ if (ctx.isNonInteractive) {
24
+ return t("commands.setup.interactiveOnly") ?? "Setup requires an interactive terminal. Use the --setup CLI flag instead.";
25
+ }
26
+ const { locale: detectedLocale } = detectLocale();
27
+ const locale = detectedLocale ?? "en";
28
+ await initI18n(locale);
29
+ const config = await loadConfig(ctx.config?.configPath, ctx.workspaceRoot);
30
+ const workspaceRoot = resolveWorkspaceRoot(config, ctx.workspaceRoot);
31
+ if (ctx.eventEmitter) {
32
+ ctx.eventEmitter.emit("setup:started", {
33
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
34
+ locale,
35
+ workspaceRoot
36
+ });
37
+ }
38
+ const wizard = new SetupWizard(workspaceRoot, config);
39
+ const result = await wizard.run({ force: true, skipWelcome: false });
40
+ if (result.cancelled) {
41
+ if (ctx.eventEmitter) {
42
+ ctx.eventEmitter.emit("setup:cancelled", {
43
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
44
+ step: "user_cancelled"
45
+ });
46
+ }
47
+ return t("commands.setup.cancelled") ?? "Setup cancelled.";
48
+ }
49
+ if (!result.success) {
50
+ if (ctx.eventEmitter) {
51
+ ctx.eventEmitter.emit("setup:error", {
52
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
53
+ error: "setup_failed"
54
+ });
55
+ }
56
+ return t("commands.setup.failed") ?? "Setup failed. Please try again.";
57
+ }
58
+ const newConfig = { ...config, ...result.config };
59
+ await saveConfig(newConfig);
60
+ if (ctx.eventEmitter) {
61
+ const provider = result.config.provider;
62
+ const providerConfig = provider && result.config[provider];
63
+ const model = providerConfig && typeof providerConfig === "object" && "model" in providerConfig ? providerConfig.model : void 0;
64
+ ctx.eventEmitter.emit("setup:complete", {
65
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
66
+ success: true,
67
+ provider,
68
+ model,
69
+ skippedSteps: result.skippedSteps,
70
+ agentsFileCreated: result.agentsFileCreated
71
+ });
72
+ }
73
+ console.log(chalk.green(t("commands.setup.complete") ?? "\nSetup complete!"));
74
+ return null;
75
+ }
76
+
77
+ export {
78
+ metadata,
79
+ setup
80
+ };
81
+ /**
82
+ * @license
83
+ * Copyright 2025 Autohand AI LLC
84
+ * SPDX-License-Identifier: Apache-2.0
85
+ */
@@ -0,0 +1,21 @@
1
+ // src/ui/rawMode.ts
2
+ function safeSetRawMode(input, mode) {
3
+ if (!input?.isTTY || typeof input.setRawMode !== "function") {
4
+ return false;
5
+ }
6
+ try {
7
+ input.setRawMode(mode);
8
+ return true;
9
+ } catch {
10
+ return false;
11
+ }
12
+ }
13
+
14
+ export {
15
+ safeSetRawMode
16
+ };
17
+ /**
18
+ * @license
19
+ * Copyright 2025 Autohand AI LLC
20
+ * SPDX-License-Identifier: Apache-2.0
21
+ */