@opencode/core 2.0.18 → 2.0.19

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 (840) hide show
  1. package/dist/account/sql.js +1 -1
  2. package/dist/agent.js +79 -79
  3. package/dist/aisdk-native.js +89 -89
  4. package/dist/aisdk.js +94 -94
  5. package/dist/app.js +9 -9
  6. package/dist/bus.js +73 -73
  7. package/dist/chunks/{config-q1x6b938.js → ripgrep-01g11k9t.js} +18 -18
  8. package/dist/chunks/{config-gk47d069.js → ripgrep-02cm5gdc.js} +8 -8
  9. package/dist/chunks/{config-89e39zcy.js → ripgrep-0gaj4617.js} +6 -6
  10. package/dist/chunks/{config-dkhzmzfr.js → ripgrep-0mx2aapc.js} +10 -10
  11. package/dist/chunks/{config-0paq2nw3.js → ripgrep-0paq2nw3.js} +1 -1
  12. package/dist/chunks/{config-fcxyj98j.js → ripgrep-0tkrsm5y.js} +14 -14
  13. package/dist/chunks/{config-n48ygd7x.js → ripgrep-0z0qdp4f.js} +57 -57
  14. package/dist/chunks/{config-rtyr3d5h.js → ripgrep-18rbsmj0.js} +22 -22
  15. package/dist/chunks/{config-p37cw4rj.js → ripgrep-1ajx6rf5.js} +8 -8
  16. package/dist/chunks/{config-9qsysn39.js → ripgrep-1ap17en5.js} +31 -31
  17. package/dist/chunks/{config-tp6xq29j.js → ripgrep-1cwrqxta.js} +11 -11
  18. package/dist/chunks/{config-1dazxqgg.js → ripgrep-1dazxqgg.js} +2 -2
  19. package/dist/chunks/{config-8f36rj9w.js → ripgrep-1gq8q7z3.js} +34 -34
  20. package/dist/chunks/{config-f1cyf21v.js → ripgrep-1n7xvyes.js} +6 -6
  21. package/dist/chunks/{config-7scxvj8s.js → ripgrep-1qny0ng8.js} +16 -16
  22. package/dist/chunks/{config-ps3c5a77.js → ripgrep-1sxym04w.js} +24 -24
  23. package/dist/chunks/ripgrep-1x11rq2a.js +18 -0
  24. package/dist/chunks/{config-21r38tys.js → ripgrep-21r38tys.js} +1 -1
  25. package/dist/chunks/{config-29x78va6.js → ripgrep-29x78va6.js} +2 -2
  26. package/dist/chunks/{config-2a5m3afh.js → ripgrep-2a5m3afh.js} +1 -1
  27. package/dist/chunks/{config-ns9f5mpe.js → ripgrep-2djhngnv.js} +8 -8
  28. package/dist/chunks/{config-8tkazwjn.js → ripgrep-2vjymgz4.js} +11 -11
  29. package/dist/chunks/{config-wc11ar0g.js → ripgrep-35qaqz32.js} +28 -28
  30. package/dist/chunks/{config-ym52mge9.js → ripgrep-36zg1nxf.js} +25 -25
  31. package/dist/chunks/{config-nrp9mwhy.js → ripgrep-39z47dss.js} +18 -18
  32. package/dist/chunks/{config-z3pw5915.js → ripgrep-3cfzdc8e.js} +5 -5
  33. package/dist/chunks/{config-2et2b5t1.js → ripgrep-3crkzcp9.js} +47 -43
  34. package/dist/chunks/{config-3fc6dm20.js → ripgrep-3fc6dm20.js} +1 -1
  35. package/dist/chunks/{config-3hepkmqq.js → ripgrep-3hepkmqq.js} +1 -1
  36. package/dist/chunks/{config-tc1k9s7e.js → ripgrep-3ny1h4te.js} +15 -15
  37. package/dist/chunks/{config-3smtnn6g.js → ripgrep-3smtnn6g.js} +1 -1
  38. package/dist/chunks/{config-3tvqynh2.js → ripgrep-3tvqynh2.js} +1 -1
  39. package/dist/chunks/{config-ec87pa6m.js → ripgrep-3xwj4cta.js} +35 -35
  40. package/dist/chunks/{config-3zsf4n22.js → ripgrep-3zsf4n22.js} +1 -1
  41. package/dist/chunks/{config-ryg0g705.js → ripgrep-45gjfn9y.js} +8 -8
  42. package/dist/chunks/{config-4dgbcxzg.js → ripgrep-4dgbcxzg.js} +1 -1
  43. package/dist/chunks/{config-kb6gw2zp.js → ripgrep-4nzwy074.js} +4 -4
  44. package/dist/chunks/{config-w3xn08qs.js → ripgrep-4przf6dn.js} +23 -24
  45. package/dist/chunks/{config-eny9hzm2.js → ripgrep-50epje6z.js} +33 -30
  46. package/dist/chunks/{config-7x4zjys8.js → ripgrep-513gj428.js} +6 -6
  47. package/dist/chunks/ripgrep-54ma36ye.js +13 -0
  48. package/dist/chunks/{config-t8f87mm7.js → ripgrep-54nwp9r7.js} +28 -28
  49. package/dist/chunks/{config-54tcyq79.js → ripgrep-54tcyq79.js} +2 -2
  50. package/dist/chunks/{config-5y480sgp.js → ripgrep-54zxgqzr.js} +8 -8
  51. package/dist/chunks/{config-8rphz8m2.js → ripgrep-560t4d1v.js} +9 -4
  52. package/dist/chunks/{config-57ez7d0k.js → ripgrep-57ez7d0k.js} +2 -2
  53. package/dist/chunks/{config-5daktx2q.js → ripgrep-5daktx2q.js} +1 -1
  54. package/dist/chunks/{config-1rn5pcm9.js → ripgrep-5dkn69vz.js} +4 -4
  55. package/dist/chunks/{config-7stqpyhf.js → ripgrep-5qt97ybp.js} +22 -22
  56. package/dist/chunks/{config-5t3nmthw.js → ripgrep-5t3nmthw.js} +2 -2
  57. package/dist/chunks/{config-669tq793.js → ripgrep-669tq793.js} +1 -1
  58. package/dist/chunks/{config-e99cgfzf.js → ripgrep-6ap5qy5h.js} +20 -20
  59. package/dist/chunks/{config-2hc37sbw.js → ripgrep-6d4369ev.js} +3 -3
  60. package/dist/chunks/{config-pfdzsptj.js → ripgrep-6e52v1r2.js} +13 -13
  61. package/dist/chunks/{config-6msgmcgs.js → ripgrep-6msgmcgs.js} +1 -1
  62. package/dist/chunks/{config-4xsr0mw7.js → ripgrep-6v71ddka.js} +20 -20
  63. package/dist/chunks/{config-54k57k4f.js → ripgrep-717rh1cx.js} +9 -9
  64. package/dist/chunks/{config-1bbkgx8g.js → ripgrep-73tb2d7t.js} +3 -3
  65. package/dist/chunks/{config-bk7jaeqh.js → ripgrep-784hb5j4.js} +4 -4
  66. package/dist/chunks/{config-m7ph8gga.js → ripgrep-7962e3yf.js} +18 -18
  67. package/dist/chunks/{config-7bmhse3q.js → ripgrep-7bmhse3q.js} +1 -1
  68. package/dist/chunks/{config-snayvj24.js → ripgrep-7d3cxzax.js} +18 -18
  69. package/dist/chunks/{config-2k8khapm.js → ripgrep-7dqw4kz8.js} +5 -5
  70. package/dist/chunks/{config-3vahvevh.js → ripgrep-7rhad128.js} +21 -21
  71. package/dist/chunks/{config-vvzwpmq1.js → ripgrep-7rkndmtb.js} +12 -12
  72. package/dist/chunks/{config-aw9tbzfk.js → ripgrep-7zx59yv5.js} +13 -13
  73. package/dist/chunks/{config-6h73sxmp.js → ripgrep-84txncab.js} +6 -6
  74. package/dist/chunks/{config-vyy061a2.js → ripgrep-87ppwq26.js} +11 -11
  75. package/dist/chunks/{config-8d7r5vzw.js → ripgrep-8d7r5vzw.js} +1 -1
  76. package/dist/chunks/{config-tats7t1r.js → ripgrep-8v662a6s.js} +19 -19
  77. package/dist/chunks/{config-y3bfqnys.js → ripgrep-8zh4h089.js} +7 -52
  78. package/dist/chunks/{config-pezzyds3.js → ripgrep-90x597dq.js} +1 -1
  79. package/dist/chunks/{config-srrn7w60.js → ripgrep-921pky8x.js} +29 -29
  80. package/dist/chunks/{config-e661jwrm.js → ripgrep-92b1hf4n.js} +35 -35
  81. package/dist/chunks/{config-vtnt34eh.js → ripgrep-966px1fx.js} +11 -11
  82. package/dist/chunks/{config-rvtd2wnf.js → ripgrep-98cnr0ek.js} +9 -9
  83. package/dist/chunks/{config-bamqybry.js → ripgrep-9dt30ddd.js} +22 -22
  84. package/dist/chunks/{config-7tpxex51.js → ripgrep-9eq5kwq7.js} +6 -6
  85. package/dist/chunks/{config-vgpkvtp0.js → ripgrep-9gz1cjgc.js} +44 -44
  86. package/dist/chunks/{config-vhs69wxs.js → ripgrep-9q5cvpmr.js} +28 -28
  87. package/dist/chunks/{config-a8npfn97.js → ripgrep-a1fqa279.js} +4 -4
  88. package/dist/chunks/{config-znr04804.js → ripgrep-a4pew0st.js} +40 -42
  89. package/dist/chunks/{config-aaet6srn.js → ripgrep-aaet6srn.js} +2 -2
  90. package/dist/chunks/{config-prtbkahx.js → ripgrep-amncynrr.js} +4 -4
  91. package/dist/chunks/{config-hs7fxsaf.js → ripgrep-asw9yjte.js} +20 -20
  92. package/dist/chunks/{config-b6gygkdw.js → ripgrep-b6gygkdw.js} +2 -2
  93. package/dist/chunks/{config-1a6p2twq.js → ripgrep-bf0ztrs3.js} +4 -4
  94. package/dist/chunks/{config-73b9b00p.js → ripgrep-bj8n3aze.js} +23 -23
  95. package/dist/chunks/{config-fyxb352w.js → ripgrep-bjj0bk6b.js} +28 -17
  96. package/dist/chunks/{config-bjtzbw4r.js → ripgrep-bjtzbw4r.js} +3 -3
  97. package/dist/chunks/{config-j494hfxr.js → ripgrep-bmw6bt9k.js} +9 -9
  98. package/dist/chunks/{config-skwjfd4r.js → ripgrep-bqypnsdg.js} +19 -19
  99. package/dist/chunks/{config-qnzd3xnt.js → ripgrep-bvbkwbsh.js} +15 -15
  100. package/dist/chunks/ripgrep-by268fe6.js +252 -0
  101. package/dist/chunks/{config-2a6rn6yr.js → ripgrep-cdm0dq9n.js} +6 -6
  102. package/dist/chunks/{config-j2eqxf48.js → ripgrep-cew5j6w6.js} +12 -12
  103. package/dist/chunks/{config-xj0fc6en.js → ripgrep-chcvj6mx.js} +27 -27
  104. package/dist/chunks/{config-k1qb6em6.js → ripgrep-cvmm0xs5.js} +10 -10
  105. package/dist/chunks/{config-gjwgx2c5.js → ripgrep-cwa6csj7.js} +9 -9
  106. package/dist/chunks/{config-af04s6ss.js → ripgrep-d2aac7k2.js} +5 -5
  107. package/dist/chunks/ripgrep-d3qdrwa5.js +326 -0
  108. package/dist/chunks/{config-afx4yczm.js → ripgrep-d6gxwvxg.js} +10 -10
  109. package/dist/chunks/{config-rqzxc8xy.js → ripgrep-d8j7dsnb.js} +8 -8
  110. package/dist/chunks/{config-esq1xh3y.js → ripgrep-dhtd5fdm.js} +11 -11
  111. package/dist/chunks/{config-c716n2s3.js → ripgrep-dkmyvpj5.js} +23 -23
  112. package/dist/chunks/ripgrep-dneah854.js +26 -0
  113. package/dist/chunks/{config-xg3yvpnd.js → ripgrep-dxh6ecs0.js} +5 -5
  114. package/dist/chunks/{config-ersz45vm.js → ripgrep-dym78pc8.js} +6 -6
  115. package/dist/chunks/{config-rhfptez1.js → ripgrep-e5v6sjzq.js} +10 -10
  116. package/dist/chunks/{config-7h7s3rmt.js → ripgrep-e6q37ddf.js} +5 -12
  117. package/dist/chunks/{config-04zc2vp5.js → ripgrep-ec07y9k9.js} +21 -21
  118. package/dist/chunks/{config-ecfe7b91.js → ripgrep-ecfe7b91.js} +2 -2
  119. package/dist/chunks/{config-ef5x83kb.js → ripgrep-ef5x83kb.js} +1 -1
  120. package/dist/chunks/{config-b2s03exd.js → ripgrep-ef8r30dj.js} +26 -26
  121. package/dist/chunks/{config-1q5awywt.js → ripgrep-engkm2d6.js} +5 -5
  122. package/dist/chunks/{config-e2skv07x.js → ripgrep-ervy3t4x.js} +10 -10
  123. package/dist/chunks/{config-skyvxmsg.js → ripgrep-eszpxc5c.js} +5 -5
  124. package/dist/chunks/{config-etq0c3wd.js → ripgrep-etq0c3wd.js} +1 -1
  125. package/dist/chunks/{config-9tndjada.js → ripgrep-eybctzj2.js} +24 -24
  126. package/dist/chunks/{config-q9s91avz.js → ripgrep-f1mz2x80.js} +19 -19
  127. package/dist/chunks/{config-yp2x3t23.js → ripgrep-f2n192rq.js} +4 -4
  128. package/dist/chunks/{config-e1e12dvt.js → ripgrep-f5fzvqmp.js} +16 -22
  129. package/dist/chunks/{config-5zdms79f.js → ripgrep-f8ys8j9y.js} +13 -31
  130. package/dist/chunks/{config-mtac1b2j.js → ripgrep-f960svv2.js} +11 -11
  131. package/dist/chunks/{config-zem25z6r.js → ripgrep-fa7h6qtp.js} +8 -8
  132. package/dist/chunks/{config-11jgdds2.js → ripgrep-fgmy5dam.js} +28 -28
  133. package/dist/chunks/{config-fm2qvscf.js → ripgrep-fm2qvscf.js} +1 -1
  134. package/dist/chunks/{config-zrq68ahz.js → ripgrep-fses9meq.js} +20 -20
  135. package/dist/chunks/{config-2e655exz.js → ripgrep-fzjz7zmc.js} +25 -25
  136. package/dist/chunks/{config-7b474h0v.js → ripgrep-g5pjqc12.js} +16 -16
  137. package/dist/chunks/{config-cmkj70ft.js → ripgrep-gafqwe43.js} +2 -2
  138. package/dist/chunks/{config-gd4qta3r.js → ripgrep-gd4qta3r.js} +1 -1
  139. package/dist/chunks/{config-qs9wxzz9.js → ripgrep-gfm6y7px.js} +104 -109
  140. package/dist/chunks/{config-gfvb90ym.js → ripgrep-gfvb90ym.js} +2 -2
  141. package/dist/chunks/{config-n7rkyrxw.js → ripgrep-gfwqm0th.js} +30 -31
  142. package/dist/chunks/{config-y8cm73x9.js → ripgrep-gjepqxj6.js} +39 -45
  143. package/dist/chunks/{config-9b1g8vzp.js → ripgrep-gn9knv9y.js} +43 -43
  144. package/dist/chunks/{config-b7j7903f.js → ripgrep-gpj7vvxj.js} +8 -8
  145. package/dist/chunks/{config-cnpz928v.js → ripgrep-gr9s2h9h.js} +11 -11
  146. package/dist/chunks/{config-gv6a8nnw.js → ripgrep-gv6a8nnw.js} +2 -2
  147. package/dist/chunks/{config-0bywbddq.js → ripgrep-h204n497.js} +6 -6
  148. package/dist/chunks/{config-xsfszxna.js → ripgrep-h5w29vws.js} +12 -10
  149. package/dist/chunks/{config-h6vf3j39.js → ripgrep-h6vf3j39.js} +1 -1
  150. package/dist/chunks/{config-0jq9fyba.js → ripgrep-h71w788e.js} +9 -9
  151. package/dist/chunks/{config-fzbr8qt8.js → ripgrep-hcxgq10m.js} +48 -48
  152. package/dist/chunks/{config-rxswhrhz.js → ripgrep-hpgwsqwz.js} +9 -9
  153. package/dist/chunks/{config-mb8kb6b0.js → ripgrep-hq3kn9m3.js} +9 -9
  154. package/dist/chunks/{config-8sg23ezv.js → ripgrep-hrj2emtv.js} +4 -4
  155. package/dist/chunks/{config-j56e64zr.js → ripgrep-j56e64zr.js} +1 -1
  156. package/dist/chunks/{config-05bqk399.js → ripgrep-jb2d75z1.js} +11 -11
  157. package/dist/chunks/{config-t363gy9t.js → ripgrep-jceb99ws.js} +13 -13
  158. package/dist/chunks/{config-v9bnqwg0.js → ripgrep-jjyafwrj.js} +13 -13
  159. package/dist/chunks/{config-9c3np669.js → ripgrep-jkka0c6f.js} +8 -8
  160. package/dist/chunks/{config-zyp346xr.js → ripgrep-jtj8yee2.js} +84 -84
  161. package/dist/chunks/{config-6pc27hjz.js → ripgrep-jws6fkes.js} +4 -4
  162. package/dist/chunks/{config-vhejgqwc.js → ripgrep-jyx4k4a6.js} +11 -11
  163. package/dist/chunks/{config-0xqyf95c.js → ripgrep-k0a3z2qz.js} +4 -4
  164. package/dist/chunks/{config-fj89mqte.js → ripgrep-k5f615bv.js} +10 -10
  165. package/dist/chunks/{config-ggv4pg5y.js → ripgrep-kasa1exf.js} +19 -19
  166. package/dist/chunks/{config-vaz5h5qv.js → ripgrep-keqxcydf.js} +16 -16
  167. package/dist/chunks/{config-kk00bynn.js → ripgrep-kk00bynn.js} +1 -1
  168. package/dist/chunks/{config-76n1dez8.js → ripgrep-kv68fk3j.js} +168 -168
  169. package/dist/chunks/{config-t8025hmx.js → ripgrep-kxhj4mfa.js} +11 -11
  170. package/dist/chunks/{config-m3fdjcah.js → ripgrep-m3fdjcah.js} +1 -1
  171. package/dist/chunks/{config-ss8hthz7.js → ripgrep-m3ra8jyf.js} +15 -15
  172. package/dist/chunks/{config-m9w0rfyh.js → ripgrep-m9w0rfyh.js} +1 -1
  173. package/dist/chunks/{config-d9ymz6xc.js → ripgrep-meaywfr2.js} +30 -25
  174. package/dist/chunks/{config-mfqp6xfm.js → ripgrep-mfqp6xfm.js} +2 -2
  175. package/dist/chunks/{config-fw2v9256.js → ripgrep-mgq5nv3e.js} +8 -8
  176. package/dist/chunks/{config-fv2tfa25.js → ripgrep-mmq917w3.js} +11 -11
  177. package/dist/chunks/{config-sd0msgcy.js → ripgrep-mtndfwk2.js} +13 -13
  178. package/dist/chunks/{config-j7k7jnd5.js → ripgrep-n8c1xpsf.js} +41 -41
  179. package/dist/chunks/{config-mfj0244x.js → ripgrep-ncxf1vrd.js} +5 -5
  180. package/dist/chunks/{config-119mbqs2.js → ripgrep-ngmgdt3b.js} +15 -15
  181. package/dist/chunks/{config-569zmx9y.js → ripgrep-nqp5g4n1.js} +15 -15
  182. package/dist/chunks/{config-yr87qc76.js → ripgrep-nrzkffvv.js} +11 -11
  183. package/dist/chunks/{config-0ft8826h.js → ripgrep-nt8bmh2c.js} +7 -7
  184. package/dist/chunks/{config-reg6q42h.js → ripgrep-nyqx1cb3.js} +5 -5
  185. package/dist/chunks/{config-k3c624dm.js → ripgrep-nzks3jc8.js} +3 -3
  186. package/dist/chunks/{config-e4qtjjxk.js → ripgrep-p05254f8.js} +11 -11
  187. package/dist/chunks/{config-qte5z7bc.js → ripgrep-p1nm93x7.js} +5 -5
  188. package/dist/chunks/{config-g3aybqrd.js → ripgrep-p39gsrf5.js} +26 -26
  189. package/dist/chunks/{config-30xg31xn.js → ripgrep-p8xjr5qr.js} +17 -17
  190. package/dist/chunks/{config-zksvc5kg.js → ripgrep-pa2d04qg.js} +4 -4
  191. package/dist/chunks/{config-fy2b1gyq.js → ripgrep-pa6447g9.js} +17 -17
  192. package/dist/chunks/{config-nca7p386.js → ripgrep-pjedbq3k.js} +4 -4
  193. package/dist/chunks/{config-446vgdts.js → ripgrep-pjerk14q.js} +40 -40
  194. package/dist/chunks/{config-pjvnvgmy.js → ripgrep-pjvnvgmy.js} +1 -1
  195. package/dist/chunks/{config-pknna89w.js → ripgrep-pknna89w.js} +1 -1
  196. package/dist/chunks/{config-q3yb1nc4.js → ripgrep-prwn914c.js} +28 -21
  197. package/dist/chunks/{config-psazpmmj.js → ripgrep-psazpmmj.js} +2 -2
  198. package/dist/chunks/{config-e8eyz9xb.js → ripgrep-pyrtyedv.js} +11 -11
  199. package/dist/chunks/{config-nfc98c1n.js → ripgrep-pzz9wtjp.js} +4 -4
  200. package/dist/chunks/{config-gk30pdy3.js → ripgrep-q68zcp6s.js} +13 -13
  201. package/dist/chunks/{config-ssnwrf24.js → ripgrep-qfhyjwmh.js} +4 -4
  202. package/dist/chunks/{config-drwq78ky.js → ripgrep-qqeeq2t9.js} +7 -7
  203. package/dist/chunks/{config-qsdy395h.js → ripgrep-qsdy395h.js} +1 -1
  204. package/dist/chunks/{config-9dh8p3yq.js → ripgrep-qsjn5gcs.js} +8 -8
  205. package/dist/chunks/{config-jshcwjky.js → ripgrep-qwk9htef.js} +9 -9
  206. package/dist/chunks/{config-csak4zkz.js → ripgrep-r36g8kg2.js} +15 -15
  207. package/dist/chunks/{config-s72nwfj1.js → ripgrep-r4tkwkgd.js} +3 -3
  208. package/dist/chunks/{config-ppzgkaaq.js → ripgrep-r7xja54h.js} +11 -11
  209. package/dist/chunks/{config-g4xer9vd.js → ripgrep-rd8q201w.js} +12 -12
  210. package/dist/chunks/{config-rdw6cm16.js → ripgrep-rdw6cm16.js} +1 -1
  211. package/dist/chunks/{config-48y8hbvk.js → ripgrep-rpwtn2yk.js} +16 -16
  212. package/dist/chunks/{config-qe76k2zv.js → ripgrep-rvtvfpzy.js} +6 -6
  213. package/dist/chunks/{config-f390r7qs.js → ripgrep-rwk8kepb.js} +59 -37
  214. package/dist/chunks/{config-1djsvj3f.js → ripgrep-s3ndjw50.js} +8 -8
  215. package/dist/chunks/{config-s4enseaf.js → ripgrep-s4enseaf.js} +2 -2
  216. package/dist/chunks/{config-c738b566.js → ripgrep-s8vezypb.js} +26 -26
  217. package/dist/chunks/{config-rx4f2zay.js → ripgrep-sdgam4xr.js} +1 -1
  218. package/dist/chunks/{config-rp9m4jyb.js → ripgrep-se19vg8t.js} +31 -31
  219. package/dist/chunks/{config-yds56wag.js → ripgrep-sf4xqwvj.js} +11 -11
  220. package/dist/chunks/{config-954548m7.js → ripgrep-sg3rx6b8.js} +22 -22
  221. package/dist/chunks/{config-n6p4knm7.js → ripgrep-smcq1pfk.js} +10 -10
  222. package/dist/chunks/{config-zs6xvgsc.js → ripgrep-sr8ycrw9.js} +13 -13
  223. package/dist/chunks/{config-t7n9q6bq.js → ripgrep-t2az9yje.js} +4 -4
  224. package/dist/chunks/{config-rhjbct0v.js → ripgrep-t550f9t1.js} +4 -4
  225. package/dist/chunks/{config-191v1wnc.js → ripgrep-t6jhp5yk.js} +43 -43
  226. package/dist/chunks/{config-2k53mjpq.js → ripgrep-t6zs6zyr.js} +8 -8
  227. package/dist/chunks/{config-tazgh4e4.js → ripgrep-tazgh4e4.js} +1 -1
  228. package/dist/chunks/{config-89znhe33.js → ripgrep-tcezcvh9.js} +4 -4
  229. package/dist/chunks/{config-tdstcens.js → ripgrep-tdstcens.js} +1 -1
  230. package/dist/chunks/{config-y6mhz57t.js → ripgrep-tfzngn12.js} +4 -4
  231. package/dist/chunks/{config-az9r17tx.js → ripgrep-tgh33bte.js} +12 -12
  232. package/dist/chunks/{config-8pbmndb6.js → ripgrep-tgqx6wbb.js} +5 -5
  233. package/dist/chunks/{config-3e63sffq.js → ripgrep-tnwzh9w1.js} +16 -16
  234. package/dist/chunks/{config-tvtrv512.js → ripgrep-tvtrv512.js} +1 -1
  235. package/dist/chunks/{config-h9y7vyse.js → ripgrep-txehjzrx.js} +9 -9
  236. package/dist/chunks/{config-sf0wnj4a.js → ripgrep-v0rxv5z8.js} +91 -91
  237. package/dist/chunks/{config-7nwbzwwg.js → ripgrep-v121z1z6.js} +3 -3
  238. package/dist/chunks/{config-5m3ds5v3.js → ripgrep-v6f2zkdc.js} +32 -32
  239. package/dist/chunks/{config-g18vhjxx.js → ripgrep-v8kmpyqg.js} +17 -17
  240. package/dist/chunks/{config-bq62zgmk.js → ripgrep-v9tf4bbz.js} +21 -21
  241. package/dist/chunks/{config-pd1wrm5b.js → ripgrep-vcctfkdr.js} +16 -16
  242. package/dist/chunks/{config-veqvce7d.js → ripgrep-veqvce7d.js} +1 -1
  243. package/dist/chunks/{config-c67r6w9a.js → ripgrep-vf281y08.js} +11 -11
  244. package/dist/chunks/ripgrep-vktw4pze.js +65 -0
  245. package/dist/chunks/{config-h552mchj.js → ripgrep-vm695x1h.js} +23 -23
  246. package/dist/chunks/{config-817kbg2h.js → ripgrep-vpdv8epx.js} +17 -17
  247. package/dist/chunks/{config-scce0sjb.js → ripgrep-vpq7wwjy.js} +9 -10
  248. package/dist/chunks/{config-vyrd71eq.js → ripgrep-vyrd71eq.js} +3 -3
  249. package/dist/chunks/{config-vzcthcp8.js → ripgrep-vzcthcp8.js} +1 -1
  250. package/dist/chunks/{config-vzs5sf6e.js → ripgrep-vzs5sf6e.js} +1 -1
  251. package/dist/chunks/{config-2zmfhp2c.js → ripgrep-w3jg838k.js} +9 -9
  252. package/dist/chunks/{config-w3wsvvr9.js → ripgrep-w3wsvvr9.js} +1 -1
  253. package/dist/chunks/{config-ba07h9gm.js → ripgrep-w52wajpr.js} +2 -2
  254. package/dist/chunks/{config-fk189pyz.js → ripgrep-w8qr023e.js} +20 -20
  255. package/dist/chunks/{config-kyw5qrb7.js → ripgrep-wc7bkbrs.js} +9 -9
  256. package/dist/chunks/{config-wd87259q.js → ripgrep-wd87259q.js} +1 -1
  257. package/dist/chunks/{config-fkch5wba.js → ripgrep-wnbq8dq2.js} +22 -22
  258. package/dist/chunks/{config-crj6ha2h.js → ripgrep-wpj1vscs.js} +13 -13
  259. package/dist/chunks/ripgrep-wrw0pdsr.js +669 -0
  260. package/dist/chunks/{config-jkan4wa3.js → ripgrep-ws4630vh.js} +9 -9
  261. package/dist/chunks/{config-qwq1eq2j.js → ripgrep-wws8y0j5.js} +7 -7
  262. package/dist/chunks/{config-x1ezjp6w.js → ripgrep-x1ezjp6w.js} +1 -1
  263. package/dist/chunks/{config-k35dwc4g.js → ripgrep-xd3pt1yp.js} +3 -3
  264. package/dist/chunks/{config-22h6bjd1.js → ripgrep-xgw0etvz.js} +2 -2
  265. package/dist/chunks/{config-dmqcgk4z.js → ripgrep-xkntkrq7.js} +5 -5
  266. package/dist/chunks/{config-64mjhprr.js → ripgrep-xyv2nnj9.js} +22 -22
  267. package/dist/chunks/{config-hbtt76ya.js → ripgrep-y01t92x8.js} +47 -47
  268. package/dist/chunks/{config-6g6zqj1k.js → ripgrep-y18nyng0.js} +28 -28
  269. package/dist/chunks/{config-y1fvbwt7.js → ripgrep-y1fvbwt7.js} +1 -1
  270. package/dist/chunks/{config-ydgy0jv4.js → ripgrep-y38ja4bc.js} +6 -6
  271. package/dist/chunks/{config-gh5tebn4.js → ripgrep-y3fm06sq.js} +8 -8
  272. package/dist/chunks/{config-s0ehs66p.js → ripgrep-y5y40sn1.js} +18 -18
  273. package/dist/chunks/{config-y71avatq.js → ripgrep-y71avatq.js} +1 -1
  274. package/dist/chunks/{config-cpfpew26.js → ripgrep-y7x7h62n.js} +16 -16
  275. package/dist/chunks/{config-knjpra5n.js → ripgrep-ybn4q7y2.js} +25 -25
  276. package/dist/chunks/{config-smj4rr9q.js → ripgrep-ygfh7z4x.js} +26 -26
  277. package/dist/chunks/{config-yrhqyw5v.js → ripgrep-yrhqyw5v.js} +1 -1
  278. package/dist/chunks/{config-jpbcpdat.js → ripgrep-ysddpjww.js} +6 -6
  279. package/dist/chunks/{config-3pe7sts8.js → ripgrep-ywkfy99j.js} +8 -8
  280. package/dist/chunks/{config-z0bkrqjs.js → ripgrep-z0bkrqjs.js} +1 -1
  281. package/dist/chunks/{config-8t2s61hj.js → ripgrep-z3k649yd.js} +314 -318
  282. package/dist/chunks/{config-kcmnw9z9.js → ripgrep-z8fqh70m.js} +25 -25
  283. package/dist/chunks/{config-erqh8das.js → ripgrep-zb4s847t.js} +7 -7
  284. package/dist/chunks/{config-zeh9ct20.js → ripgrep-zeh9ct20.js} +2 -2
  285. package/dist/chunks/{config-6jrj4a7s.js → ripgrep-zf7qa2ng.js} +52 -52
  286. package/dist/chunks/{config-zr2ceqn5.js → ripgrep-zr2ceqn5.js} +1 -1
  287. package/dist/chunks/{config-yw6qsgb4.js → ripgrep-zs8srxkn.js} +24 -24
  288. package/dist/chunks/{config-s16xw6kj.js → ripgrep-ztychdw2.js} +18 -18
  289. package/dist/chunks/{config-2zzff5mh.js → ripgrep-zv0jyrj3.js} +5 -5
  290. package/dist/chunks/{config-zxq2ej10.js → ripgrep-zxq2ej10.js} +1 -1
  291. package/dist/chunks/{config-hkzp38b2.js → ripgrep-zyft68ff.js} +3 -3
  292. package/dist/codemode/catalog.js +1 -1
  293. package/dist/codemode/instructions.js +11 -11
  294. package/dist/codemode/tool.js +3 -3
  295. package/dist/codemode/web.js +1 -1
  296. package/dist/command.js +83 -83
  297. package/dist/config/discovery.js +84 -84
  298. package/dist/config/markdown.js +1 -1
  299. package/dist/config/normalize.js +106 -106
  300. package/dist/config/plugin/agent.js +123 -123
  301. package/dist/config/plugin/command.js +213 -212
  302. package/dist/config/plugin/compaction.js +161 -160
  303. package/dist/config/plugin/compatibility.js +141 -141
  304. package/dist/config/plugin/entry-observer.js +1 -1
  305. package/dist/config/plugin/formatter.js +124 -124
  306. package/dist/config/plugin/image.js +123 -123
  307. package/dist/config/plugin/instruction.js +90 -90
  308. package/dist/config/plugin/location-watcher.js +123 -123
  309. package/dist/config/plugin/mcp.js +130 -130
  310. package/dist/config/plugin/policy.js +124 -124
  311. package/dist/config/plugin/provider.js +123 -123
  312. package/dist/config/plugin/reference.js +125 -125
  313. package/dist/config/plugin/shell.js +123 -123
  314. package/dist/config/plugin/skill-file.js +102 -102
  315. package/dist/config/plugin/skill.js +142 -142
  316. package/dist/config/plugin/snapshot.js +123 -123
  317. package/dist/config/plugin/source.js +126 -126
  318. package/dist/config/plugin/tool-output.js +125 -125
  319. package/dist/config/plugin/websearch.js +122 -122
  320. package/dist/config/plugin/worktree.js +125 -125
  321. package/dist/config/variable.js +3 -3
  322. package/dist/config/watch.js +1 -1
  323. package/dist/config.js +128 -128
  324. package/dist/credential/sql.js +2 -2
  325. package/dist/credential.js +79 -79
  326. package/dist/database/database.js +72 -72
  327. package/dist/database/drizzle/effect-sqlite/driver.js +14 -14
  328. package/dist/database/drizzle/effect-sqlite/index.js +14 -14
  329. package/dist/database/drizzle/effect-sqlite/session.js +11 -11
  330. package/dist/database/drizzle/index.js +15 -15
  331. package/dist/database/drizzle/internal/drizzle-utils.js +1 -1
  332. package/dist/database/drizzle/sqlite-core/effect/count.js +1 -1
  333. package/dist/database/drizzle/sqlite-core/effect/db.js +9 -9
  334. package/dist/database/drizzle/sqlite-core/effect/delete.js +2 -2
  335. package/dist/database/drizzle/sqlite-core/effect/index.js +10 -10
  336. package/dist/database/drizzle/sqlite-core/effect/insert.js +2 -2
  337. package/dist/database/drizzle/sqlite-core/effect/query.js +1 -1
  338. package/dist/database/drizzle/sqlite-core/effect/raw.js +1 -1
  339. package/dist/database/drizzle/sqlite-core/effect/select.js +2 -2
  340. package/dist/database/drizzle/sqlite-core/effect/session.js +10 -10
  341. package/dist/database/drizzle/sqlite-core/effect/update.js +2 -2
  342. package/dist/database/drizzle.js +16 -16
  343. package/dist/database/migration/20260127222353_familiar_lady_ursula.js +1 -1
  344. package/dist/database/migration/20260211171708_add_project_commands.js +1 -1
  345. package/dist/database/migration/20260213144116_wakeful_the_professor.js +1 -1
  346. package/dist/database/migration/20260225215848_workspace.js +1 -1
  347. package/dist/database/migration/20260227213759_add_session_workspace_id.js +1 -1
  348. package/dist/database/migration/20260228203230_blue_harpoon.js +1 -1
  349. package/dist/database/migration/20260303231226_add_workspace_fields.js +1 -1
  350. package/dist/database/migration/20260309230000_move_org_to_state.js +1 -1
  351. package/dist/database/migration/20260312043431_session_message_cursor.js +1 -1
  352. package/dist/database/migration/20260323234822_events.js +1 -1
  353. package/dist/database/migration/20260410174513_workspace-name.js +1 -1
  354. package/dist/database/migration/20260413175956_chief_energizer.js +1 -1
  355. package/dist/database/migration/20260423070820_add_icon_url_override.js +1 -1
  356. package/dist/database/migration/20260427172553_slow_nightmare.js +1 -1
  357. package/dist/database/migration/20260428004200_add_session_path.js +1 -1
  358. package/dist/database/migration/20260501142318_next_venus.js +1 -1
  359. package/dist/database/migration/20260504145000_add_sync_owner.js +1 -1
  360. package/dist/database/migration/20260507164347_add_workspace_time.js +1 -1
  361. package/dist/database/migration/20260510033149_session_usage.js +1 -1
  362. package/dist/database/migration/20260511000411_data_migration_state.js +1 -1
  363. package/dist/database/migration/20260511173437_session-metadata.js +1 -1
  364. package/dist/database/migration/20260601010001_normalize_storage_paths.js +1 -1
  365. package/dist/database/migration/20260601202201_amazing_prowler.js +1 -1
  366. package/dist/database/migration/20260602002951_lowly_union_jack.js +1 -1
  367. package/dist/database/migration/20260602182828_add_project_directories.js +1 -1
  368. package/dist/database/migration/20260603001617_session_message_projection_indexes.js +1 -1
  369. package/dist/database/migration/20260603040000_session_message_projection_order.js +1 -1
  370. package/dist/database/migration/20260603141458_session_input_inbox.js +1 -1
  371. package/dist/database/migration/20260603160727_jittery_ezekiel_stane.js +1 -1
  372. package/dist/database/migration/20260604172448_event_sourced_session_input.js +1 -1
  373. package/dist/database/migration/20260605003541_add_session_context_snapshot.js +1 -1
  374. package/dist/database/migration/20260605042240_add_context_epoch_agent.js +1 -1
  375. package/dist/database/migration/20260611035744_credential.js +1 -1
  376. package/dist/database/migration/20260611192811_lush_chimera.js +1 -1
  377. package/dist/database/migration/20260612174303_project_dir_strategy.js +1 -1
  378. package/dist/database/migration/20260622142730_simplify_session_context_epoch.js +1 -1
  379. package/dist/database/migration/20260622170816_reset_v2_session_state.js +1 -1
  380. package/dist/database/migration/20260622202450_simplify_session_input.js +1 -1
  381. package/dist/database/migration/20260804233008_loose_psylocke.js +1 -1
  382. package/dist/database/migration/20260805200742_import_legacy_credentials.js +1 -1
  383. package/dist/database/migration/20260808023530_workspace_domain.js +1 -1
  384. package/dist/database/migration/20260811161259_execution_claim_attempts.js +1 -1
  385. package/dist/database/migration/20260812181746_session_inbox.js +1 -1
  386. package/dist/database/migration/20260812213948_worktree.js +1 -1
  387. package/dist/database/migration/20260819222447_session_viewed_state.js +1 -1
  388. package/dist/database/migration/20260823191254_nullable_workspace_binding.js +1 -1
  389. package/dist/database/migration/20260910120000_clear_v1_session_permission.js +1 -1
  390. package/dist/database/migration/20260923013825_project_time_active.js +1 -1
  391. package/dist/database/migration.gen.js +49 -49
  392. package/dist/database/migration.js +51 -51
  393. package/dist/database/path.js +2 -2
  394. package/dist/database/schema.gen.js +1 -1
  395. package/dist/database/schema.sql.js +1 -1
  396. package/dist/database/sqlite.bun.js +1 -1
  397. package/dist/database/sqlite.js +1 -1
  398. package/dist/database/sqlite.node.js +1 -1
  399. package/dist/database/sqlite.workerd.js +1 -1
  400. package/dist/database/v1-migration.bun.js +76 -76
  401. package/dist/database/v1-migration.js +1 -1
  402. package/dist/effect/app-node-builder.js +371 -372
  403. package/dist/effect/app-node-platform.js +2 -2
  404. package/dist/effect/keyed-mutex.js +1 -1
  405. package/dist/effect/websocket-constructor.js +1 -1
  406. package/dist/environment/driver.js +1 -1
  407. package/dist/environment/environment.js +93 -93
  408. package/dist/environment/exec-defaults.js +2 -2
  409. package/dist/environment/files.js +1 -1
  410. package/dist/environment/index.js +95 -95
  411. package/dist/environment/local.js +2 -2
  412. package/dist/environment/memory.js +2 -2
  413. package/dist/environment/unavailable.js +1 -1
  414. package/dist/event/sql.js +1 -1
  415. package/dist/event-logger.js +72 -72
  416. package/dist/file-access.js +104 -106
  417. package/dist/file-mutation.js +94 -94
  418. package/dist/file-retention.js +1 -1
  419. package/dist/filesystem/fff.bun.js +2 -2
  420. package/dist/filesystem/fff.js +1 -1
  421. package/dist/filesystem/fff.node.js +2 -2
  422. package/dist/filesystem/fff.workerd.js +2 -2
  423. package/dist/filesystem/ignore.js +1 -1
  424. package/dist/filesystem/location-watcher-policy.js +6 -6
  425. package/dist/filesystem/location-watcher.js +226 -225
  426. package/dist/filesystem/protected.js +3 -3
  427. package/dist/filesystem/search.js +103 -103
  428. package/dist/filesystem/watcher-binding.js +1 -1
  429. package/dist/filesystem/watcher.js +15 -15
  430. package/dist/filesystem.js +104 -104
  431. package/dist/form.js +78 -78
  432. package/dist/formatter/builtins.js +4 -4
  433. package/dist/formatter.js +87 -87
  434. package/dist/generate.js +105 -105
  435. package/dist/git.js +8 -8
  436. package/dist/github-copilot/chat/convert-to-openai-compatible-chat-messages.js +1 -1
  437. package/dist/github-copilot/chat/get-response-metadata.js +1 -1
  438. package/dist/github-copilot/chat/map-openai-compatible-finish-reason.js +1 -1
  439. package/dist/github-copilot/chat/openai-compatible-chat-language-model.js +7 -7
  440. package/dist/github-copilot/chat/openai-compatible-chat-options.js +1 -1
  441. package/dist/github-copilot/chat/openai-compatible-prepare-tools.js +1 -1
  442. package/dist/github-copilot/copilot-provider.js +17 -17
  443. package/dist/github-copilot/models.js +91 -91
  444. package/dist/github-copilot/openai-compatible-error.js +1 -1
  445. package/dist/github-copilot/responses/convert-to-openai-responses-input.js +1 -1
  446. package/dist/github-copilot/responses/map-openai-responses-finish-reason.js +1 -1
  447. package/dist/github-copilot/responses/openai-error.js +1 -1
  448. package/dist/github-copilot/responses/openai-responses-language-model.js +10 -10
  449. package/dist/github-copilot/responses/openai-responses-prepare-tools.js +6 -6
  450. package/dist/github-copilot/responses/tool/code-interpreter.js +1 -1
  451. package/dist/github-copilot/responses/tool/file-search.js +1 -1
  452. package/dist/github-copilot/responses/tool/image-generation.js +1 -1
  453. package/dist/github-copilot/responses/tool/web-search-preview.js +1 -1
  454. package/dist/github-copilot/responses/tool/web-search.js +1 -1
  455. package/dist/id/id.js +1 -1
  456. package/dist/image/photon.js +2 -2
  457. package/dist/image.js +6 -6
  458. package/dist/instance/service.js +5 -5
  459. package/dist/instance.js +362 -363
  460. package/dist/instruction-discovery.js +85 -85
  461. package/dist/instructions/builtins.js +87 -87
  462. package/dist/instructions/index.js +3 -3
  463. package/dist/integration/connection.js +1 -1
  464. package/dist/integration.js +82 -82
  465. package/dist/job.js +79 -79
  466. package/dist/kv/sql.js +2 -2
  467. package/dist/kv.js +73 -73
  468. package/dist/location-activity.js +133 -133
  469. package/dist/location-lifecycle.js +107 -107
  470. package/dist/location-service-map.js +86 -86
  471. package/dist/location-services.js +359 -360
  472. package/dist/location.js +83 -83
  473. package/dist/managed-policy.js +5 -5
  474. package/dist/mcp/client.js +91 -91
  475. package/dist/mcp/index.js +106 -108
  476. package/dist/mcp/instructions.js +126 -126
  477. package/dist/mcp/oauth.js +75 -75
  478. package/dist/mcp/stdio.js +90 -90
  479. package/dist/mime.js +1 -1
  480. package/dist/modal/models.js +91 -91
  481. package/dist/model-resolver.js +110 -110
  482. package/dist/model.js +98 -98
  483. package/dist/models-dev.js +99 -99
  484. package/dist/oauth/page.js +1 -1
  485. package/dist/permission/saved.js +80 -80
  486. package/dist/permission/sql.js +5 -5
  487. package/dist/permission.js +107 -107
  488. package/dist/persistent-pty/binary.bun.js +1 -1
  489. package/dist/persistent-pty/daemon.js +1 -1
  490. package/dist/persistent-pty/index.js +88 -88
  491. package/dist/persistent-pty/pty-binding.js +1 -1
  492. package/dist/persistent-pty.js +75 -75
  493. package/dist/plugin/agent.js +102 -102
  494. package/dist/plugin/command.js +99 -99
  495. package/dist/plugin/hooks.js +5 -5
  496. package/dist/plugin/host.js +219 -218
  497. package/dist/plugin/identity.js +3 -3
  498. package/dist/plugin/instance.js +5 -5
  499. package/dist/plugin/internal.js +334 -334
  500. package/dist/plugin/mcp-codemode-defaults.js +3 -3
  501. package/dist/plugin/models-dev.js +96 -96
  502. package/dist/plugin/module.js +7 -7
  503. package/dist/plugin/optimize.js +2 -2
  504. package/dist/plugin/plan.js +102 -102
  505. package/dist/plugin/promise.js +1 -1
  506. package/dist/plugin/provider/amazon-bedrock.js +90 -90
  507. package/dist/plugin/provider/azure.js +122 -122
  508. package/dist/plugin/provider/cerebras.js +1 -1
  509. package/dist/plugin/provider/cloudflare-ai-gateway.js +120 -121
  510. package/dist/plugin/provider/cloudflare-workers-ai.js +121 -121
  511. package/dist/plugin/provider/cohere.js +2 -2
  512. package/dist/plugin/provider/configured.js +119 -119
  513. package/dist/plugin/provider/digitalocean.js +93 -93
  514. package/dist/plugin/provider/dynamic.js +2 -2
  515. package/dist/plugin/provider/factory.js +1 -1
  516. package/dist/plugin/provider/gateway.js +2 -2
  517. package/dist/plugin/provider/github-copilot.js +95 -94
  518. package/dist/plugin/provider/gitlab.js +93 -93
  519. package/dist/plugin/provider/google-vertex.js +90 -90
  520. package/dist/plugin/provider/kilo.js +1 -1
  521. package/dist/plugin/provider/llmgateway.js +77 -77
  522. package/dist/plugin/provider/lmstudio.js +122 -122
  523. package/dist/plugin/provider/modal.js +92 -92
  524. package/dist/plugin/provider/nvidia.js +1 -1
  525. package/dist/plugin/provider/ollama.js +122 -122
  526. package/dist/plugin/provider/openai.js +93 -92
  527. package/dist/plugin/provider/opencode.js +95 -95
  528. package/dist/plugin/provider/openrouter.js +91 -91
  529. package/dist/plugin/provider/perplexity.js +2 -2
  530. package/dist/plugin/provider/poe.js +78 -78
  531. package/dist/plugin/provider/prompt-cache-key.js +90 -90
  532. package/dist/plugin/provider/sap-ai-core.js +91 -91
  533. package/dist/plugin/provider/sdk-factory.js +1 -1
  534. package/dist/plugin/provider/snowflake-cortex.js +122 -122
  535. package/dist/plugin/provider/venice.js +2 -2
  536. package/dist/plugin/provider/vercel.js +90 -90
  537. package/dist/plugin/provider/vllm.js +122 -122
  538. package/dist/plugin/provider/xai.js +91 -91
  539. package/dist/plugin/provider/zenmux.js +1 -1
  540. package/dist/plugin/provider.js +162 -161
  541. package/dist/plugin/sdk.js +76 -76
  542. package/dist/plugin/service.js +3 -3
  543. package/dist/plugin/skill.js +139 -139
  544. package/dist/plugin/source-directory.js +1 -1
  545. package/dist/plugin/supervisor.js +353 -353
  546. package/dist/plugin/tool-input-repair.js +4 -4
  547. package/dist/plugin/update.js +6 -6
  548. package/dist/plugin/vcs/git.js +86 -86
  549. package/dist/plugin/vcs/hg.js +86 -86
  550. package/dist/plugin/verbosity.js +93 -93
  551. package/dist/plugin/warming.js +121 -121
  552. package/dist/plugin/websearch/exa.js +5 -5
  553. package/dist/plugin/websearch/firecrawl.js +8 -8
  554. package/dist/plugin/websearch/index.js +9 -9
  555. package/dist/plugin/websearch/mcp.js +2 -2
  556. package/dist/plugin/websearch/parallel.js +6 -6
  557. package/dist/plugin/websearch/tavily.js +6 -6
  558. package/dist/plugin/websearch/tinyfish.js +8 -8
  559. package/dist/plugin.js +224 -223
  560. package/dist/project/schema.js +2 -2
  561. package/dist/project/sql.js +4 -4
  562. package/dist/project.js +82 -82
  563. package/dist/provider.js +95 -95
  564. package/dist/pty/protocol.js +1 -1
  565. package/dist/pty/ticket.js +1 -1
  566. package/dist/pty.js +99 -98
  567. package/dist/reference/instructions.js +89 -89
  568. package/dist/reference.js +87 -87
  569. package/dist/repository-cache.js +81 -81
  570. package/dist/repository.js +3 -3
  571. package/dist/ripgrep/binary.js +2 -2
  572. package/dist/ripgrep.js +97 -97
  573. package/dist/rpc.js +86 -86
  574. package/dist/schema.js +1 -1
  575. package/dist/session/affinity.js +8 -0
  576. package/dist/session/command.js +74 -74
  577. package/dist/session/compaction.js +143 -144
  578. package/dist/session/context.js +153 -152
  579. package/dist/session/diff.js +88 -88
  580. package/dist/session/environment.js +5 -5
  581. package/dist/session/error.js +4 -6
  582. package/dist/session/event.js +1 -1
  583. package/dist/session/execution/restart.js +223 -222
  584. package/dist/session/execution.js +126 -126
  585. package/dist/session/generate.js +154 -153
  586. package/dist/session/history.js +13 -13
  587. package/dist/session/inbox.js +88 -88
  588. package/dist/session/info.js +3 -3
  589. package/dist/session/instruction-entry.js +79 -79
  590. package/dist/session/instruction-state.js +8 -8
  591. package/dist/session/instructions.js +97 -97
  592. package/dist/session/message-updater.js +4 -4
  593. package/dist/session/message.js +1 -1
  594. package/dist/session/model-request.js +120 -119
  595. package/dist/session/model-transport.js +9 -9
  596. package/dist/session/move.js +130 -130
  597. package/dist/session/projector.js +86 -86
  598. package/dist/session/prompt.js +105 -105
  599. package/dist/session/provider-context.js +3 -3
  600. package/dist/session/revert.js +90 -90
  601. package/dist/session/run-coordinator.js +3 -3
  602. package/dist/session/runner/index.js +3 -3
  603. package/dist/session/runner/llm.js +232 -231
  604. package/dist/session/runner/max-steps.js +1 -1
  605. package/dist/session/runner/model.js +98 -110
  606. package/dist/session/runner/publish-llm-event.js +3 -3
  607. package/dist/session/runner/retry.js +5 -117
  608. package/dist/session/runner/step.js +126 -126
  609. package/dist/session/runner/to-llm-message.js +2 -2
  610. package/dist/session/schema.js +3 -3
  611. package/dist/session/session.js +172 -172
  612. package/dist/session/shell.js +138 -138
  613. package/dist/session/skill.js +103 -103
  614. package/dist/session/sql.js +5 -5
  615. package/dist/session/stats.js +73 -73
  616. package/dist/session/store.js +85 -85
  617. package/dist/session/subagent-completion.js +1 -1
  618. package/dist/session/subagent-job.js +209 -208
  619. package/dist/session/system-prompt.js +5 -5
  620. package/dist/session/title.js +157 -156
  621. package/dist/session/to-session-error.js +111 -111
  622. package/dist/session/transfer.js +218 -217
  623. package/dist/session/usage.js +1 -1
  624. package/dist/session.js +215 -214
  625. package/dist/shell/parse.js +6 -6
  626. package/dist/shell/result.js +1 -1
  627. package/dist/shell/scan.js +1 -1
  628. package/dist/shell/select.js +11 -11
  629. package/dist/shell.js +140 -140
  630. package/dist/skill/discovery.js +4 -4
  631. package/dist/skill/instructions.js +107 -107
  632. package/dist/skill.js +110 -110
  633. package/dist/snapshot.js +91 -91
  634. package/dist/state.js +1 -1
  635. package/dist/tool/html-markdown.js +1 -1
  636. package/dist/tool/http-body.js +1 -1
  637. package/dist/tool/mcp.js +125 -125
  638. package/dist/tool/plugin/edit.js +114 -114
  639. package/dist/tool/plugin/file-diff.js +1 -1
  640. package/dist/tool/plugin/glob.js +124 -124
  641. package/dist/tool/plugin/grep.js +124 -124
  642. package/dist/tool/plugin/mcp-resource.js +116 -116
  643. package/dist/tool/plugin/opencode.js +3 -3
  644. package/dist/tool/plugin/patch.js +122 -122
  645. package/dist/tool/plugin/question.js +107 -107
  646. package/dist/tool/plugin/read.js +125 -125
  647. package/dist/tool/plugin/shell.js +216 -215
  648. package/dist/tool/plugin/skill.js +111 -111
  649. package/dist/tool/plugin/subagent.js +220 -219
  650. package/dist/tool/plugin/webfetch.js +110 -110
  651. package/dist/tool/plugin/websearch.js +112 -112
  652. package/dist/tool/plugin/write.js +122 -122
  653. package/dist/tool/read-filesystem.js +100 -100
  654. package/dist/tool/runtime.js +1 -1
  655. package/dist/tool-output.js +8 -8
  656. package/dist/tool.js +14 -14
  657. package/dist/types/file-access.d.ts +0 -5
  658. package/dist/types/git.d.ts +2 -2
  659. package/dist/types/instructions/builtins.d.ts +1 -2
  660. package/dist/types/location-services.d.ts +0 -1
  661. package/dist/types/location.d.ts +1 -3
  662. package/dist/types/mcp/index.d.ts +0 -12
  663. package/dist/types/project.d.ts +1 -3
  664. package/dist/types/pty/ticket.d.ts +2 -2
  665. package/dist/types/pty.d.ts +11 -6
  666. package/dist/types/session/affinity.d.ts +4 -0
  667. package/dist/types/session/compaction.d.ts +35 -55
  668. package/dist/types/session/diff.d.ts +1 -7
  669. package/dist/types/session/error.d.ts +0 -4
  670. package/dist/types/session/model-request.d.ts +5 -0
  671. package/dist/types/session/revert.d.ts +1 -7
  672. package/dist/types/session/runner/index.d.ts +2 -2
  673. package/dist/types/session/runner/model.d.ts +0 -12
  674. package/dist/types/session/runner/retry.d.ts +2 -7
  675. package/dist/types/session/session.d.ts +1 -7
  676. package/dist/types/snapshot.d.ts +2 -2
  677. package/dist/util/error-summary.js +1 -1
  678. package/dist/util/error.js +1 -1
  679. package/dist/util/git-executable.js +2 -2
  680. package/dist/util/iife.js +1 -1
  681. package/dist/util/lazy.js +1 -1
  682. package/dist/util/slug.js +1 -1
  683. package/dist/util/token.js +1 -1
  684. package/dist/util/which.js +1 -1
  685. package/dist/util/wildcard.js +1 -1
  686. package/dist/v1/config/agent.js +3 -3
  687. package/dist/v1/config/attachment.js +4 -4
  688. package/dist/v1/config/command.js +1 -1
  689. package/dist/v1/config/config.js +14 -14
  690. package/dist/v1/config/error.js +2 -2
  691. package/dist/v1/config/formatter.js +3 -3
  692. package/dist/v1/config/layout.js +1 -1
  693. package/dist/v1/config/lsp.js +5 -5
  694. package/dist/v1/config/mcp.js +4 -4
  695. package/dist/v1/config/migrate.js +92 -92
  696. package/dist/v1/config/permission.js +1 -1
  697. package/dist/v1/config/plugin.js +3 -3
  698. package/dist/v1/config/provider-options.js +1 -1
  699. package/dist/v1/config/provider.js +4 -4
  700. package/dist/v1/config/server.js +2 -2
  701. package/dist/v1/config/skills.js +3 -3
  702. package/dist/v1/permission.js +1 -1
  703. package/dist/variant.js +91 -91
  704. package/dist/vcs/patch.js +1 -1
  705. package/dist/vcs.js +89 -89
  706. package/dist/websearch.js +84 -84
  707. package/dist/wellknown/plugin.js +76 -76
  708. package/dist/wellknown.js +79 -79
  709. package/dist/workspace/driver.js +5 -5
  710. package/dist/workspace/sql.js +1 -1
  711. package/dist/workspace.js +76 -76
  712. package/dist/worktree/directory.js +2 -2
  713. package/dist/worktree/git.js +10 -10
  714. package/dist/worktree/sql.js +5 -5
  715. package/dist/worktree/strategies.js +89 -89
  716. package/dist/worktree.js +98 -98
  717. package/package.json +8 -14
  718. package/dist/chunks/config-0btnvdh1.js +0 -39
  719. package/dist/chunks/config-2synrjax.js +0 -326
  720. package/dist/chunks/config-4efk9qvj.js +0 -63
  721. package/dist/chunks/config-htk76k1w.js +0 -26
  722. package/dist/chunks/config-ph8yj3s6.js +0 -252
  723. package/dist/chunks/config-q3782nn3.js +0 -624
  724. package/dist/chunks/config-qapv375x.js +0 -4
  725. package/dist/chunks/config-qc068m1q.js +0 -18
  726. package/dist/file.js +0 -16
  727. package/dist/location-mutation.js +0 -118
  728. package/dist/plugin/compaction.js +0 -136
  729. package/dist/pty/schema.js +0 -6
  730. package/dist/types/file.d.ts +0 -9
  731. package/dist/types/location-mutation.d.ts +0 -3
  732. package/dist/types/plugin/compaction.d.ts +0 -3
  733. package/dist/types/pty/schema.d.ts +0 -1
  734. package/dist/types/util/array.d.ts +0 -1
  735. package/dist/types/util/process-lock-ffi.bun.d.ts +0 -12
  736. package/dist/types/util/process-lock-ffi.node.d.ts +0 -12
  737. package/dist/types/util/process-lock-ffi.workerd.d.ts +0 -12
  738. package/dist/types/util/process-lock.d.ts +0 -20
  739. package/dist/util/array.js +0 -12
  740. package/dist/util/process-lock-ffi.bun.js +0 -51
  741. package/dist/util/process-lock-ffi.node.js +0 -44
  742. package/dist/util/process-lock-ffi.workerd.js +0 -10
  743. package/dist/util/process-lock.js +0 -121
  744. /package/dist/chunks/{config-0qkdqm5v.js → ripgrep-0qkdqm5v.js} +0 -0
  745. /package/dist/chunks/{config-0zkw76rk.js → ripgrep-0zkw76rk.js} +0 -0
  746. /package/dist/chunks/{config-17cy0kzp.js → ripgrep-17cy0kzp.js} +0 -0
  747. /package/dist/chunks/{config-1cnp2v09.js → ripgrep-1cnp2v09.js} +0 -0
  748. /package/dist/chunks/{config-1kg9ymc8.js → ripgrep-1kg9ymc8.js} +0 -0
  749. /package/dist/chunks/{config-24dcb14g.js → ripgrep-24dcb14g.js} +0 -0
  750. /package/dist/chunks/{config-2710q6r3.js → ripgrep-2710q6r3.js} +0 -0
  751. /package/dist/chunks/{config-2axfhc9x.js → ripgrep-2axfhc9x.js} +0 -0
  752. /package/dist/chunks/{config-2c3vjs8z.js → ripgrep-2c3vjs8z.js} +0 -0
  753. /package/dist/chunks/{config-34c7v6d4.js → ripgrep-34c7v6d4.js} +0 -0
  754. /package/dist/chunks/{config-359p4xyc.js → ripgrep-359p4xyc.js} +0 -0
  755. /package/dist/chunks/{config-3asan66x.js → ripgrep-3asan66x.js} +0 -0
  756. /package/dist/chunks/{config-3v8g72cx.js → ripgrep-3v8g72cx.js} +0 -0
  757. /package/dist/chunks/{config-3w5fmr99.js → ripgrep-3w5fmr99.js} +0 -0
  758. /package/dist/chunks/{config-3wcehsnq.js → ripgrep-3wcehsnq.js} +0 -0
  759. /package/dist/chunks/{config-43n2bw4t.js → ripgrep-43n2bw4t.js} +0 -0
  760. /package/dist/chunks/{config-4knz6hnm.js → ripgrep-4knz6hnm.js} +0 -0
  761. /package/dist/chunks/{config-4vcrnpx2.js → ripgrep-4vcrnpx2.js} +0 -0
  762. /package/dist/chunks/{config-4y7fprxs.js → ripgrep-4y7fprxs.js} +0 -0
  763. /package/dist/chunks/{config-53557ph1.js → ripgrep-53557ph1.js} +0 -0
  764. /package/dist/chunks/{config-550bvhaj.js → ripgrep-550bvhaj.js} +0 -0
  765. /package/dist/chunks/{config-6prwharc.js → ripgrep-6prwharc.js} +0 -0
  766. /package/dist/chunks/{config-7akdwqpd.js → ripgrep-7akdwqpd.js} +0 -0
  767. /package/dist/chunks/{config-7m9af43g.js → ripgrep-7m9af43g.js} +0 -0
  768. /package/dist/chunks/{config-822emrt2.js → ripgrep-822emrt2.js} +0 -0
  769. /package/dist/chunks/{config-88xbtdfr.js → ripgrep-88xbtdfr.js} +0 -0
  770. /package/dist/chunks/{config-8n3pysct.js → ripgrep-8n3pysct.js} +0 -0
  771. /package/dist/chunks/{config-8wj87zfr.js → ripgrep-8wj87zfr.js} +0 -0
  772. /package/dist/chunks/{config-922hggd3.js → ripgrep-922hggd3.js} +0 -0
  773. /package/dist/chunks/{config-9a4afbnw.js → ripgrep-9a4afbnw.js} +0 -0
  774. /package/dist/chunks/{config-9rqn6x4v.js → ripgrep-9rqn6x4v.js} +0 -0
  775. /package/dist/chunks/{config-a6k6eb26.js → ripgrep-a6k6eb26.js} +0 -0
  776. /package/dist/chunks/{config-af5trqkr.js → ripgrep-af5trqkr.js} +0 -0
  777. /package/dist/chunks/{config-afrmfg78.js → ripgrep-afrmfg78.js} +0 -0
  778. /package/dist/chunks/{config-aqzs7mqg.js → ripgrep-aqzs7mqg.js} +0 -0
  779. /package/dist/chunks/{config-atq7p7m5.js → ripgrep-atq7p7m5.js} +0 -0
  780. /package/dist/chunks/{config-bkyjaxrp.js → ripgrep-bkyjaxrp.js} +0 -0
  781. /package/dist/chunks/{config-bmr6ed5q.js → ripgrep-bmr6ed5q.js} +0 -0
  782. /package/dist/chunks/{config-cf4snx6d.js → ripgrep-cf4snx6d.js} +0 -0
  783. /package/dist/chunks/{config-cvy3z8tj.js → ripgrep-cvy3z8tj.js} +0 -0
  784. /package/dist/chunks/{config-d9fn303g.js → ripgrep-d9fn303g.js} +0 -0
  785. /package/dist/chunks/{config-d9jj8t3e.js → ripgrep-d9jj8t3e.js} +0 -0
  786. /package/dist/chunks/{config-dajrwvna.js → ripgrep-dajrwvna.js} +0 -0
  787. /package/dist/chunks/{config-dap0rakb.js → ripgrep-dap0rakb.js} +0 -0
  788. /package/dist/chunks/{config-df08tz66.js → ripgrep-df08tz66.js} +0 -0
  789. /package/dist/chunks/{config-dy18nga0.js → ripgrep-dy18nga0.js} +0 -0
  790. /package/dist/chunks/{config-e3qxr5gk.js → ripgrep-e3qxr5gk.js} +0 -0
  791. /package/dist/chunks/{config-e5kj55wp.js → ripgrep-e5kj55wp.js} +0 -0
  792. /package/dist/chunks/{config-e73j6tqm.js → ripgrep-e73j6tqm.js} +0 -0
  793. /package/dist/chunks/{config-ec1grn59.js → ripgrep-ec1grn59.js} +0 -0
  794. /package/dist/chunks/{config-eh3zwz77.js → ripgrep-eh3zwz77.js} +0 -0
  795. /package/dist/chunks/{config-emrn6kk6.js → ripgrep-emrn6kk6.js} +0 -0
  796. /package/dist/chunks/{config-f0mxakyp.js → ripgrep-f0mxakyp.js} +0 -0
  797. /package/dist/chunks/{config-f6n9ztr4.js → ripgrep-f6n9ztr4.js} +0 -0
  798. /package/dist/chunks/{config-faypxj3z.js → ripgrep-faypxj3z.js} +0 -0
  799. /package/dist/chunks/{config-fd410y7t.js → ripgrep-fd410y7t.js} +0 -0
  800. /package/dist/chunks/{config-fxgpk5d8.js → ripgrep-fxgpk5d8.js} +0 -0
  801. /package/dist/chunks/{config-g4wezp1m.js → ripgrep-g4wezp1m.js} +0 -0
  802. /package/dist/chunks/{config-g86h250q.js → ripgrep-g86h250q.js} +0 -0
  803. /package/dist/chunks/{config-gebd4c9n.js → ripgrep-gebd4c9n.js} +0 -0
  804. /package/dist/chunks/{config-gftt206x.js → ripgrep-gftt206x.js} +0 -0
  805. /package/dist/chunks/{config-hjbc5kem.js → ripgrep-hjbc5kem.js} +0 -0
  806. /package/dist/chunks/{config-hk9envan.js → ripgrep-hk9envan.js} +0 -0
  807. /package/dist/chunks/{config-j2ntwpah.js → ripgrep-j2ntwpah.js} +0 -0
  808. /package/dist/chunks/{config-j5zkgpj8.js → ripgrep-j5zkgpj8.js} +0 -0
  809. /package/dist/chunks/{config-jjkms2e6.js → ripgrep-jjkms2e6.js} +0 -0
  810. /package/dist/chunks/{config-jr7sbwjy.js → ripgrep-jr7sbwjy.js} +0 -0
  811. /package/dist/chunks/{config-jwfs4k6c.js → ripgrep-jwfs4k6c.js} +0 -0
  812. /package/dist/chunks/{config-jzg6c2d5.js → ripgrep-jzg6c2d5.js} +0 -0
  813. /package/dist/chunks/{config-mp448xyj.js → ripgrep-mp448xyj.js} +0 -0
  814. /package/dist/chunks/{config-msx8hqn2.js → ripgrep-msx8hqn2.js} +0 -0
  815. /package/dist/chunks/{config-n05xt0ee.js → ripgrep-n05xt0ee.js} +0 -0
  816. /package/dist/chunks/{config-n3j8tn72.js → ripgrep-n3j8tn72.js} +0 -0
  817. /package/dist/chunks/{config-njntx4h6.js → ripgrep-njntx4h6.js} +0 -0
  818. /package/dist/chunks/{config-q3sfg36h.js → ripgrep-q3sfg36h.js} +0 -0
  819. /package/dist/chunks/{config-q74kybfr.js → ripgrep-q74kybfr.js} +0 -0
  820. /package/dist/chunks/{config-qaymkmh1.js → ripgrep-qaymkmh1.js} +0 -0
  821. /package/dist/chunks/{config-qb87gjwd.js → ripgrep-qb87gjwd.js} +0 -0
  822. /package/dist/chunks/{config-qfa1cgps.js → ripgrep-qfa1cgps.js} +0 -0
  823. /package/dist/chunks/{config-qg3g05ea.js → ripgrep-qg3g05ea.js} +0 -0
  824. /package/dist/chunks/{config-qrg20bc0.js → ripgrep-qrg20bc0.js} +0 -0
  825. /package/dist/chunks/{config-rcb2kzg1.js → ripgrep-rcb2kzg1.js} +0 -0
  826. /package/dist/chunks/{config-sdp7kfr6.js → ripgrep-sdp7kfr6.js} +0 -0
  827. /package/dist/chunks/{config-sk3qaz4a.js → ripgrep-sk3qaz4a.js} +0 -0
  828. /package/dist/chunks/{config-ssg3fenm.js → ripgrep-ssg3fenm.js} +0 -0
  829. /package/dist/chunks/{config-w803qqfp.js → ripgrep-w803qqfp.js} +0 -0
  830. /package/dist/chunks/{config-wc3fc9cn.js → ripgrep-wc3fc9cn.js} +0 -0
  831. /package/dist/chunks/{config-wer8tq1h.js → ripgrep-wer8tq1h.js} +0 -0
  832. /package/dist/chunks/{config-wtztk69x.js → ripgrep-wtztk69x.js} +0 -0
  833. /package/dist/chunks/{config-x0ckcb58.js → ripgrep-x0ckcb58.js} +0 -0
  834. /package/dist/chunks/{config-x61499pn.js → ripgrep-x61499pn.js} +0 -0
  835. /package/dist/chunks/{config-y44na4kk.js → ripgrep-y44na4kk.js} +0 -0
  836. /package/dist/chunks/{config-y8cydn3q.js → ripgrep-y8cydn3q.js} +0 -0
  837. /package/dist/chunks/{config-y8f7s663.js → ripgrep-y8f7s663.js} +0 -0
  838. /package/dist/chunks/{config-ygaqb7jw.js → ripgrep-ygaqb7jw.js} +0 -0
  839. /package/dist/chunks/{config-ym463w8f.js → ripgrep-ym463w8f.js} +0 -0
  840. /package/dist/chunks/{config-z9919s4g.js → ripgrep-z9919s4g.js} +0 -0
@@ -0,0 +1,669 @@
1
+ import {
2
+ Service84,
3
+ node87
4
+ } from "./ripgrep-sf4xqwvj.js";
5
+ import {
6
+ Service83,
7
+ node86
8
+ } from "./ripgrep-jyx4k4a6.js";
9
+ import {
10
+ llmClient2
11
+ } from "./ripgrep-5t3nmthw.js";
12
+ import {
13
+ create3
14
+ } from "./ripgrep-rdw6cm16.js";
15
+ import {
16
+ estimate2
17
+ } from "./ripgrep-h6vf3j39.js";
18
+ import {
19
+ SessionEvent2
20
+ } from "./ripgrep-ec1grn59.js";
21
+ import {
22
+ provenance2,
23
+ compatible2,
24
+ isCheckpoint2,
25
+ encode2
26
+ } from "./ripgrep-5dkn69vz.js";
27
+ import {
28
+ load4
29
+ } from "./ripgrep-qsjn5gcs.js";
30
+ import {
31
+ toLLMMessages2
32
+ } from "./ripgrep-h5w29vws.js";
33
+ import {
34
+ baseTranscript2,
35
+ unsupportedParts2,
36
+ boundImages2,
37
+ Service22,
38
+ node25
39
+ } from "./ripgrep-rwk8kepb.js";
40
+ import {
41
+ isRetryable2,
42
+ policy2
43
+ } from "./ripgrep-8zh4h089.js";
44
+ import {
45
+ toSessionError2
46
+ } from "./ripgrep-vpq7wwjy.js";
47
+ import {
48
+ calculateCost2,
49
+ record2,
50
+ add2
51
+ } from "./ripgrep-tdstcens.js";
52
+ import {
53
+ __export
54
+ } from "./ripgrep-9rqn6x4v.js";
55
+
56
+ // src/session/compaction.ts
57
+ var exports_compaction2 = {};
58
+ __export(exports_compaction2, {
59
+ Service: () => Service5,
60
+ SessionCompaction: () => exports_compaction2,
61
+ buildPrompt: () => buildPrompt2,
62
+ estimateContext: () => estimateContext2,
63
+ estimatePrompt: () => estimatePrompt2,
64
+ layer: () => layer6,
65
+ node: () => node7,
66
+ recentUserMessages: () => recentUserMessages2
67
+ });
68
+ import {
69
+ AIError,
70
+ InvalidProviderOutputError,
71
+ InvalidRequestError,
72
+ isContextOverflowFailure,
73
+ LLMClient,
74
+ LLMEvent,
75
+ LLMRequest,
76
+ Message,
77
+ UnknownProviderError
78
+ } from "@opencode/ai";
79
+ import { makeLocationNode } from "@opencode/util/effect/app-node";
80
+ import { Context, Effect, Layer, Result, Stream } from "effect";
81
+ class Service5 extends Context.Service()("@opencode/SessionCompaction") {
82
+ }
83
+ var NOTHING_TO_COMPACT = { error: { type: "compaction.unavailable", message: "Nothing to compact yet" } };
84
+ var SHRINK_STEPS = [0.7, 0.5, 0.35];
85
+ var RESERVE_MIN = 16000;
86
+ var UNKNOWN_WINDOW = 200000;
87
+ var TOOL_OUTPUT_MAX_CHARS = 1250;
88
+ var IMAGE_TOKEN_ESTIMATE = 1500;
89
+ var PDF_TOKEN_ESTIMATE = 2000;
90
+ var SUMMARY_TEMPLATE = `You MUST use this format for your response (you may omit sections that aren't applicable). Do not include the <template> tags in your response.
91
+ <template>
92
+ ## Objective
93
+ - [one or two brief sentences describing what the user is trying to accomplish]
94
+
95
+ ## Requirements
96
+ - [constraints, preferences, requirements, and scope boundaries stated by the user, or "(none)"]
97
+
98
+ ## Decisions
99
+ - [decisions already made and why, or "(none)"]
100
+
101
+ ## Work State
102
+ Break the objective into smaller goals and report which are completed, which are being worked on, and which are blocked.
103
+ ### Completed
104
+ - [goals that have been completed; otherwise "(none)"]
105
+
106
+ ### Active
107
+ - [goals currently being worked on; otherwise "(none)"]
108
+
109
+ ### Blocked
110
+ - [anything blocking progress, and why; otherwise "(none)"]
111
+
112
+ ## Next Move
113
+ 1. [ordered list of next actions, or "(none)"]
114
+
115
+ ## Relevant Files
116
+ List the files and directories, other than the current working directory, that another agent would need to open to continue this work. Include at most 15, most important first. Do not list every file that was read or changed. Include paths outside the current working directory when relevant. If none, write "(none)".
117
+ - \`[file or directory path]\`: [brief reason it matters]
118
+
119
+ ## Important Context
120
+ - [facts the next agent cannot continue without and cannot easily find on its own; or "(none)"]
121
+ </template>`;
122
+ var SUMMARY_RULES = `Rules:
123
+ - Keep each section concise. Use terse, single-line bullets, not prose paragraphs or nested lists.
124
+ - Prefer short references over detailed restatement. It is fine to leave out information the next agent can recover from the code or the files listed above.
125
+ - Preserve exact file paths, symbols, commands, error strings, URLs, and identifiers.
126
+ - Carry forward only user questions or requests that remain unanswered or require further action. Do not repeat ones that newer history has answered or resolved. Preserve exact wording when carrying one forward.
127
+ - Preserve consequential workflow state, including whether changes are uncommitted, committed, pushed, under review, or merged.
128
+ - Do not mention the summary process or that context was compacted.`;
129
+ var buildPrompt2 = (update, legacy = false) => {
130
+ const shared = [
131
+ "Summarize only what the user and the assistant said and did. Leave out instructions and setup the assistant was given rather than told by the user: repository conventions, instruction files such as AGENTS.md, and environment details like the session ID. The next agent receives current versions of all of these separately.",
132
+ SUMMARY_TEMPLATE,
133
+ SUMMARY_RULES,
134
+ "Do not continue the task or call tools.",
135
+ "Return only the structured summary in the requested format. Do not include a preamble, explanation, or other commentary."
136
+ ];
137
+ if (!update) {
138
+ return [
139
+ "You MUST summarize the conversation above into a structured summary that will be given to another agent to resume the work.",
140
+ ...shared
141
+ ].join(`
142
+
143
+ `);
144
+ }
145
+ return [
146
+ "Update the existing checkpoint in the conversation above into one consolidated summary.",
147
+ ...legacy ? [
148
+ "The existing checkpoint was written with an earlier format that recorded far more detail than this one asks for. Rewrite it at the level of detail described below rather than carrying its detail forward. Keep its requirements, decisions, and open questions; they came from earlier conversation with the user."
149
+ ] : [],
150
+ "Newer history always takes precedence over the existing checkpoint. Preserve previous information unless newer history clearly contradicts, supersedes, resolves, or makes it stale. If something is no longer relevant to continuing the work, you may remove it.",
151
+ "Incorporate newer requirements, decisions, progress, and context. Reconcile Work State and Next Move: move completed work out of Active, remove resolved blockers and answered questions, and preserve unresolved or pending work.",
152
+ "Return only the updated Markdown sections. Do not reproduce the `<conversation-checkpoint>`, `<summary>`, or `<recent-context>` wrapper tags from the previous checkpoint.",
153
+ ...shared
154
+ ].join(`
155
+
156
+ `);
157
+ };
158
+ var NUDGE = "The previous response did not fill in the required summary template. Do not call tools. Return the summary as text using the exact section headings from the template.";
159
+ var LEGACY_HEADING = "## Additional Context";
160
+ var layer6 = Layer.effect(Service5, Effect.gen(function* () {
161
+ const bus = yield* Service83;
162
+ const llm = yield* LLMClient.Service;
163
+ const db = (yield* Service84).db;
164
+ const requests = yield* Service22;
165
+ const state = create3({
166
+ name: "session-compaction",
167
+ initial: () => ({ auto: true, keep: 15000 }),
168
+ editor: (settings) => ({
169
+ configure: (update) => {
170
+ Object.assign(settings, update);
171
+ }
172
+ })
173
+ });
174
+ const compact = Effect.fn("SessionCompaction.compact")(function* (trigger) {
175
+ const settings = state.get();
176
+ const context = trigger.context;
177
+ if (trigger.reason !== "manual" && !settings.auto)
178
+ return { status: "skipped" };
179
+ const ceiling = calculateCeiling(context.model.limit, settings.buffer);
180
+ if (trigger.reason === "auto" && !due(context, ceiling))
181
+ return { status: "skipped" };
182
+ const cap = Number.isFinite(ceiling) ? ceiling : calculateCeiling({ ...context.model.limit, context: UNKNOWN_WINDOW }, settings.buffer);
183
+ const budget = trigger.reason === "overflow" ? Math.min(cap, Math.floor(estimateContext2(context) * SHRINK_STEPS[0])) : cap;
184
+ const compaction = context.model.compaction?.type === "native" ? compactNatively(trigger, budget, settings.keep) : summarize(trigger, budget, settings.keep);
185
+ return yield* compaction.pipe(Effect.matchEffect({
186
+ onSuccess: (result) => publish(trigger, result),
187
+ onFailure: (failure) => publish(trigger, failure)
188
+ }));
189
+ });
190
+ const due = (context, ceiling) => {
191
+ const messages = context.messages;
192
+ const last = messages.at(-1);
193
+ if (last?.type === "compaction" && last.status === "completed")
194
+ return false;
195
+ const measured = messages.findLastIndex((message) => hasMeasuredPrompt(message, context.model.ref));
196
+ if (measured < messages.findLastIndex(isCheckpoint2))
197
+ return false;
198
+ return estimateContext2(context) >= ceiling;
199
+ };
200
+ const summarize = Effect.fnUntraced(function* (trigger, budget, keep) {
201
+ const context = trigger.context;
202
+ const split = splitConversation(context.messages, keep);
203
+ if (!split)
204
+ return yield* Effect.fail(NOTHING_TO_COMPACT);
205
+ const previous = previousCompaction(context.messages);
206
+ const prompt = buildPrompt2(previous !== undefined, previous?.summary.includes(LEGACY_HEADING) ?? false);
207
+ const headings = SUMMARY_TEMPLATE.split(`
208
+ `).filter((line) => line.startsWith("##"));
209
+ const filled = (text) => text.split(`
210
+ `).some((line) => headings.includes(line.trim()));
211
+ const prepared = yield* prepare(context, split.older, budget);
212
+ const send = (request) => Effect.gen(function* () {
213
+ const prompted = LLMRequest.update(request, { messages: [...request.messages, Message.user(prompt)] });
214
+ const reply = yield* stream(context, prompted, prepared.options);
215
+ if (filled(reply.text))
216
+ return { ...reply, recent: split.recent };
217
+ const nudged = LLMRequest.update(prompted, { messages: [...prompted.messages, Message.user(NUDGE)] });
218
+ const retry = yield* stream(context, nudged, prepared.options);
219
+ if (filled(retry.text))
220
+ return { ...retry, recent: split.recent };
221
+ return yield* Effect.fail({
222
+ error: {
223
+ type: "compaction.failed",
224
+ message: retry.text.trim() ? "Compaction summary did not match the required template" : "Compaction produced no summary"
225
+ }
226
+ });
227
+ });
228
+ const overhead = estimate2(prompt) + estimate2(NUDGE);
229
+ return yield* deliver(trigger, prepared, split.recent, budget - overhead, send);
230
+ });
231
+ const compactNatively = Effect.fnUntraced(function* (trigger, budget, keep) {
232
+ const context = trigger.context;
233
+ if (!context.messages.some(messageToText))
234
+ return yield* Effect.fail(NOTHING_TO_COMPACT);
235
+ const unsupported = (message) => Effect.fail({ error: { type: "provider.unsupported-operation", message } });
236
+ const prepared = yield* prepare(context, context.messages, budget, "session");
237
+ const provenance = provenance2(context.model);
238
+ if (!provenance)
239
+ return yield* unsupported("Provider compaction requires a stable, configured endpoint");
240
+ const routed = provenance2({ model: prepared.request.model, ref: context.model.ref });
241
+ if (!compatible2(provenance, routed)) {
242
+ return yield* unsupported("Provider compaction requires the endpoint in provider/model settings, not a model.request rewrite");
243
+ }
244
+ const toResult = (window, usage) => spend(context.session.id, usage && record2(usage, context.model.cost)).pipe(Effect.as({
245
+ text: "",
246
+ recent: "",
247
+ providerContext: encode2(provenance, window)
248
+ }));
249
+ const send = (request) => {
250
+ if (LLMClient.canCompact(request, { mechanism: "trigger" })) {
251
+ return Effect.gen(function* () {
252
+ const history = yield* load4(db, context.session.id, "local").pipe(Effect.orDie);
253
+ const retained = recentUserMessages2(history, context.model, keep);
254
+ const response = yield* llm.compact(request, { ...prepared.options, mechanism: "trigger" });
255
+ return yield* toResult([...retained, Message.assistant(response.checkpoint)], response.usage);
256
+ });
257
+ }
258
+ if (LLMClient.canCompact(request)) {
259
+ return llm.compact(request, { mechanism: "endpoint", http: prepared.options.http }).pipe(Effect.flatMap((response) => toResult(response.replacement, response.usage)));
260
+ }
261
+ return unsupported(`Native compaction is not supported for ${request.model.provider}/${request.model.route.id}`);
262
+ };
263
+ return yield* deliver(trigger, prepared, "", budget, send);
264
+ });
265
+ const deliver = Effect.fnUntraced(function* (trigger, prepared, recent, target, send) {
266
+ const context = trigger.context;
267
+ if (trigger.reason !== "manual") {
268
+ yield* bus.publish(SessionEvent2.Compaction.Started, { sessionID: context.session.id, reason: "auto", recent });
269
+ }
270
+ if (prepared.event.result)
271
+ return yield* fromHook(context, prepared.event.result, recent);
272
+ const policy = yield* policy2(context.session.id);
273
+ let rejections = 0;
274
+ let rejected;
275
+ let asText = false;
276
+ while (true) {
277
+ const fits = !asText && estimateRequest(prepared.request) <= target;
278
+ const request = fits ? prepared.request : flattenAndDropOldest(prepared.request, context, target) ?? (rejections > 0 ? undefined : asText ? flattenAndDropOldest(prepared.request, context, Number.POSITIVE_INFINITY) : prepared.request);
279
+ if (!request) {
280
+ return yield* Effect.fail({
281
+ error: {
282
+ type: "compaction.failed",
283
+ message: "The compaction request cannot be reduced further without losing the latest exchange or checkpoint"
284
+ }
285
+ });
286
+ }
287
+ const attempt = yield* Effect.result(send(request));
288
+ if (Result.isSuccess(attempt))
289
+ return attempt.success;
290
+ const cause = attempt.failure;
291
+ if (!(cause instanceof AIError))
292
+ return yield* Effect.fail(cause);
293
+ const error = toSessionError2(cause);
294
+ const tooLarge = cause.reason._tag === "InvalidRequest" && cause.reason.classification === "payload-too-large";
295
+ if (tooLarge && request === prepared.request) {
296
+ asText = true;
297
+ continue;
298
+ }
299
+ if (tooLarge || isContextOverflowFailure(cause)) {
300
+ const step = SHRINK_STEPS[rejections];
301
+ if (step === undefined)
302
+ return yield* Effect.fail({ error });
303
+ rejected ??= estimateRequest(request);
304
+ target = Math.floor(rejected * step);
305
+ rejections++;
306
+ continue;
307
+ }
308
+ const decision = yield* policy({
309
+ cause,
310
+ error,
311
+ agent: context.agent.id,
312
+ model: context.model.ref,
313
+ hook: prepared.retry,
314
+ retry: isRetryable2(cause)
315
+ });
316
+ if (!decision.retry)
317
+ return yield* Effect.fail({ error });
318
+ yield* Effect.sleep(decision.delay);
319
+ }
320
+ });
321
+ const flattenAndDropOldest = (request, context, target) => {
322
+ const previous = previousCompaction(context.messages);
323
+ const end = request.messages.findLastIndex((message) => previous !== undefined && message.id === previous.id || message.content.some((part) => part.type === "compaction")) + 1;
324
+ const summary = previous !== undefined && !isCheckpoint2(previous) ? previous : undefined;
325
+ const lead = summary ? toLLMMessages2([{ ...summary, recent: "" }], context.model.ref) : request.messages.slice(0, end);
326
+ const exchanges = request.messages.slice(end).reduce((groups, message) => {
327
+ const text = flattenMessage(message);
328
+ if (!text)
329
+ return groups;
330
+ if (message.role === "user" || groups.length === 0)
331
+ groups.push(text);
332
+ else
333
+ groups[groups.length - 1] += `
334
+ ${text}`;
335
+ return groups;
336
+ }, summary?.recent ? [summary.recent] : []);
337
+ const note = (omitted) => omitted ? `[${omitted} older ${omitted === 1 ? "exchange" : "exchanges"} omitted]
338
+
339
+ ` : "";
340
+ const room = target - estimateRequest({ system: request.system, tools: request.tools, messages: lead }) - estimate2(note(exchanges.length));
341
+ const kept = exchanges.slice(oldestToDrop(exchanges, (text) => estimate2(text) + 1, room));
342
+ if (kept.length === 0)
343
+ return;
344
+ return LLMRequest.update(request, {
345
+ messages: [...lead, Message.user(note(exchanges.length - kept.length) + kept.join(`
346
+
347
+ `))]
348
+ });
349
+ };
350
+ const stream = (context, request, options) => {
351
+ const sessionID = context.session.id;
352
+ const metadataKey = context.model.model.route.providerMetadataKey ?? context.model.model.provider;
353
+ const unusable = (error) => Effect.fail({ error });
354
+ return llm.stream(request, options).pipe(Stream.runFoldEffect(() => ({ text: "" }), (streamed, event) => {
355
+ if (LLMEvent.is.providerError(event)) {
356
+ if (event.classification === undefined)
357
+ return unusable({ type: "provider.error", message: event.message });
358
+ return Effect.fail(new AIError({
359
+ reason: new InvalidRequestError({ message: event.message, classification: event.classification })
360
+ }));
361
+ }
362
+ if (LLMEvent.is.textDelta(event)) {
363
+ return bus.publish(SessionEvent2.Compaction.Delta, { sessionID, text: event.text }).pipe(Effect.as({ ...streamed, text: streamed.text + event.text }));
364
+ }
365
+ if (LLMEvent.is.stepFinish(event)) {
366
+ return spend(sessionID, record2(event.usage, context.model.cost)).pipe(Effect.as({ ...streamed, providerState: event.providerMetadata?.[metadataKey] }));
367
+ }
368
+ if (!LLMEvent.is.finish(event))
369
+ return Effect.succeed(streamed);
370
+ switch (event.reason.normalized) {
371
+ case "unknown":
372
+ return Effect.fail(new AIError({
373
+ reason: new InvalidProviderOutputError({
374
+ message: "The provider response ended with an unknown finish reason.",
375
+ classification: "incomplete-stream"
376
+ })
377
+ }));
378
+ case "error":
379
+ return Effect.fail(new AIError({ reason: new UnknownProviderError({ message: "Compaction generation failed" }) }));
380
+ case "length":
381
+ return unusable({
382
+ type: "compaction.failed",
383
+ message: "Compaction summary reached the output token limit"
384
+ });
385
+ case "content-filter":
386
+ return unusable({
387
+ type: "provider.content-filter",
388
+ message: "Compaction summary was blocked by the provider"
389
+ });
390
+ default:
391
+ return Effect.succeed(streamed);
392
+ }
393
+ }));
394
+ };
395
+ const prepare = (context, messages, budget, webSocket) => {
396
+ const base = transcript(context, messages);
397
+ return requests.compaction({
398
+ session: context.session,
399
+ agent: context.agent.id,
400
+ model: context.model,
401
+ tools: context.tools,
402
+ system: base.system,
403
+ messages: base.messages,
404
+ webSocket,
405
+ inputTokens: { measured: budget, estimated: 0 }
406
+ });
407
+ };
408
+ const fromHook = (context, supplied, recent) => {
409
+ const usage = supplied.tokens && {
410
+ tokens: supplied.tokens,
411
+ cost: calculateCost2(context.model.cost, supplied.tokens)
412
+ };
413
+ return spend(context.session.id, usage).pipe(Effect.as({
414
+ text: supplied.summary,
415
+ recent,
416
+ providerState: supplied.providerState,
417
+ metadata: supplied.metadata
418
+ }));
419
+ };
420
+ const spent = new Map;
421
+ const spend = (sessionID, usage) => Effect.gen(function* () {
422
+ if (!usage)
423
+ return;
424
+ const total = spent.get(sessionID);
425
+ spent.set(sessionID, total ? add2(total, usage) : usage);
426
+ yield* bus.publish(SessionEvent2.UsageRecorded, { sessionID, source: "compaction", ...usage });
427
+ });
428
+ const publish = Effect.fnUntraced(function* (trigger, outcome) {
429
+ const context = trigger.context;
430
+ const sessionID = context.session.id;
431
+ const reason = trigger.reason === "manual" ? "manual" : "auto";
432
+ const usage = spent.get(sessionID);
433
+ if ("error" in outcome) {
434
+ yield* bus.publish(SessionEvent2.Compaction.Failed, {
435
+ sessionID,
436
+ reason,
437
+ inputID: trigger.reason === "manual" ? trigger.inputID : undefined,
438
+ error: outcome.error,
439
+ ...usage
440
+ });
441
+ return { status: "failed", error: outcome.error };
442
+ }
443
+ yield* bus.publish(SessionEvent2.Compaction.Ended, {
444
+ sessionID,
445
+ reason,
446
+ model: context.model.ref,
447
+ providerState: outcome.providerState,
448
+ providerContext: outcome.providerContext,
449
+ text: outcome.text,
450
+ recent: outcome.recent,
451
+ ...usage
452
+ }, { metadata: outcome.metadata });
453
+ return { status: "completed" };
454
+ });
455
+ return Service5.of({
456
+ transform: state.transform,
457
+ reload: state.reload,
458
+ compact: (trigger) => compact(trigger).pipe(Effect.onInterrupt(() => trigger.reason === "manual" ? Effect.void : publish(trigger, { error: { type: "compaction.interrupted", message: "Compaction was interrupted" } })), Effect.ensuring(Effect.sync(() => spent.delete(trigger.context.session.id))))
459
+ });
460
+ }));
461
+ var node7 = makeLocationNode({
462
+ service: Service5,
463
+ layer: layer6,
464
+ deps: [node86, node87, llmClient2, node25]
465
+ });
466
+ var previousCompaction = (messages) => {
467
+ const [first] = messages;
468
+ return first?.type === "compaction" && first.status === "completed" ? first : undefined;
469
+ };
470
+ var transcript = (context, messages) => baseTranscript2({
471
+ agent: context.agent.info,
472
+ model: context.model,
473
+ tools: context.tools,
474
+ initial: context.initial,
475
+ messages
476
+ });
477
+ var splitConversation = (messages, keep) => {
478
+ const entries = messages.flatMap((message, index) => {
479
+ const text = messageToText(message);
480
+ return text ? [{ message, text, index }] : [];
481
+ });
482
+ if (entries.length === 0)
483
+ return;
484
+ const recent = entries.slice(recentStart(entries, keep, previousCompaction(messages)));
485
+ return {
486
+ older: messages.slice(0, recent[0]?.index ?? messages.length),
487
+ recent: recent.map((entry) => entry.text).join(`
488
+
489
+ `)
490
+ };
491
+ };
492
+ var recentStart = (entries, keep, previous) => {
493
+ const dropped = Math.min(oldestToDrop(entries, (entry) => estimate2(entry.text), keep), entries.length - 1);
494
+ const userBoundary = entries.findLastIndex((entry, index) => index <= dropped && entry.message.type === "user");
495
+ if (userBoundary > 0)
496
+ return userBoundary;
497
+ const latestUser = entries.findLastIndex((entry) => entry.message.type === "user");
498
+ if (latestUser > 0)
499
+ return latestUser;
500
+ return previous?.recent ? 0 : entries.length;
501
+ };
502
+ var oldestToDrop = (items, size, budget) => {
503
+ let total = 0;
504
+ let start = items.length;
505
+ while (start > 0) {
506
+ const next = total + size(items[start - 1]);
507
+ if (next > budget)
508
+ break;
509
+ total = next;
510
+ start--;
511
+ }
512
+ return start;
513
+ };
514
+ var messageToText = (message) => {
515
+ switch (message.type) {
516
+ case "compaction":
517
+ case "system":
518
+ return "";
519
+ case "user": {
520
+ const skills = message.skills?.flatMap((skill) => skill.text === undefined ? [] : [`[Skill activated: ${skill.name}]
521
+ ${skill.text}`]) ?? [];
522
+ const files = message.files?.map((file) => {
523
+ const name = file.name ?? (file.source.type === "uri" ? file.source.uri : "inline attachment");
524
+ return `[Attached ${file.mime}: ${name}]`;
525
+ }) ?? [];
526
+ return [...skills, `[User]: ${message.text}`, ...files].join(`
527
+ `);
528
+ }
529
+ case "location-switched":
530
+ return `[User]: The working directory has been changed to ${message.location.directory}.`;
531
+ case "assistant":
532
+ return message.content.flatMap((part) => {
533
+ if (part.type === "text")
534
+ return [`[Assistant]: ${part.text}`];
535
+ if (part.type === "reasoning")
536
+ return part.text ? [`[Assistant reasoning]: ${part.text}`] : [];
537
+ const input = typeof part.state.input === "string" ? part.state.input : JSON.stringify(part.state.input);
538
+ const call = `[Assistant tool call]: ${part.name}(${input})`;
539
+ if (part.state.status === "completed") {
540
+ return [call, `[Tool result]: ${truncateToolOutput(serializeToolContent(part.state.content))}`];
541
+ }
542
+ if (part.state.status === "error")
543
+ return [call, `[Tool error]: ${part.state.error.message}`];
544
+ return [call];
545
+ }).join(`
546
+ `);
547
+ case "synthetic":
548
+ return `[Synthetic context]: ${message.text}`;
549
+ case "skill":
550
+ return `[Skill activated: ${message.name}]
551
+ ${message.text}`;
552
+ case "shell":
553
+ if (message.metadata?.background === true)
554
+ return "";
555
+ return `[Shell]: ${message.command}
556
+ ${truncateToolOutput(message.output?.output ?? "")}`;
557
+ default:
558
+ return "";
559
+ }
560
+ };
561
+ var truncateToolOutput = (value) => {
562
+ if (value.length <= TOOL_OUTPUT_MAX_CHARS)
563
+ return value;
564
+ let end = 0;
565
+ let kept = 0;
566
+ for (const char of value) {
567
+ if (kept === TOOL_OUTPUT_MAX_CHARS)
568
+ break;
569
+ end += char.length;
570
+ kept++;
571
+ }
572
+ if (end === value.length)
573
+ return value;
574
+ return `${value.slice(0, end)}
575
+ [truncated]`;
576
+ };
577
+ var flattenMessage = (message) => {
578
+ if (message.role === "system")
579
+ return "";
580
+ return message.content.flatMap((part) => {
581
+ if (part.type === "text")
582
+ return part.text ? [`[${message.role === "user" ? "User" : "Assistant"}]: ${part.text}`] : [];
583
+ if (part.type === "media")
584
+ return [`[${part.media.mediaType} omitted]`];
585
+ if (part.type === "tool-call")
586
+ return [`[Assistant tool call]: ${part.name}(${JSON.stringify(part.input) ?? ""})`];
587
+ if (part.type !== "tool-result")
588
+ return [];
589
+ const result = part.result;
590
+ const output = result.type === "content" ? serializeToolContent(result.value) : typeof result.value === "string" ? result.value : JSON.stringify(result.value) ?? "";
591
+ const label = result.type === "error" ? "Tool error" : "Tool result";
592
+ return [`[${label}]: ${truncateToolOutput(output)}`];
593
+ }).join(`
594
+ `);
595
+ };
596
+ var serializeToolContent = (content) => content.map((item) => {
597
+ if (item.type === "text")
598
+ return item.text;
599
+ return `[Attached ${item.mime}${item.name === undefined ? "" : `: ${item.name}`}]`;
600
+ }).join(`
601
+ `);
602
+ var recentUserMessages2 = (messages, model, keep) => {
603
+ const users = messages.filter((message) => message.type === "user").map((message) => ({ ...message, skills: undefined }));
604
+ const sendable = boundImages2(unsupportedParts2(toLLMMessages2(users, model.ref), model.capabilities));
605
+ return sendable.slice(oldestToDrop(sendable, estimateMessage, keep));
606
+ };
607
+ var estimateContext2 = (context) => {
608
+ const prompt = estimatePrompt2(context);
609
+ return prompt.measured + prompt.estimated;
610
+ };
611
+ var estimatePrompt2 = (context) => {
612
+ const anchorIndex = context.messages.findLastIndex((message) => hasMeasuredPrompt(message, context.model.ref));
613
+ const anchor = context.messages[anchorIndex];
614
+ const base = transcript(context, context.messages.slice(Math.max(0, anchorIndex)));
615
+ const sent = boundImages2(unsupportedParts2(base.messages, context.model.capabilities));
616
+ const unmeasured = sent.filter((message) => message.role !== "assistant" || message.id !== anchor?.id);
617
+ if (anchor?.type !== "assistant" || !anchor.tokens)
618
+ return {
619
+ measured: 0,
620
+ estimated: estimateRequest({ system: base.system, tools: context.tools.definitions, messages: unmeasured })
621
+ };
622
+ const tokens = anchor.tokens;
623
+ return {
624
+ measured: tokens.input + tokens.cache.read + tokens.cache.write + tokens.output + tokens.reasoning,
625
+ estimated: unmeasured.reduce((sum, message) => sum + estimateMessage(message), 0)
626
+ };
627
+ };
628
+ var calculateCeiling = (limit, buffer) => {
629
+ const window = limit.input || limit.context;
630
+ if (window <= 0)
631
+ return Number.POSITIVE_INFINITY;
632
+ if (buffer !== undefined)
633
+ return window - buffer;
634
+ return window - Math.max(Math.floor(window * 0.1), window >= 2 * RESERVE_MIN ? RESERVE_MIN : 0);
635
+ };
636
+ var hasMeasuredPrompt = (message, model) => message.type === "assistant" && message.model.providerID === model.providerID && !message.error && message.tokens !== undefined && message.tokens.input + message.tokens.cache.read + message.tokens.cache.write > 0;
637
+ var estimateRequest = (request) => request.system.reduce((sum, part) => sum + estimate2(part.text), 0) + request.tools.reduce((sum, tool) => sum + estimateTool(tool), 0) + request.messages.reduce((sum, message) => sum + estimateMessage(message), 0);
638
+ var estimateTool = (tool) => {
639
+ if (tool.type === "tool")
640
+ return estimate2(tool.name + tool.description + JSON.stringify(tool.inputSchema));
641
+ return estimate2(tool.name + (tool.description ?? "")) + tool.tools.reduce((sum, entry) => sum + estimateTool(entry), 0);
642
+ };
643
+ var estimateMessage = (message) => message.content.reduce((sum, part) => sum + estimatePart(part), 0);
644
+ var estimatePart = (part) => {
645
+ if (part.type === "compaction")
646
+ return estimate2(part.text ?? "");
647
+ if (part.type === "effort")
648
+ return 0;
649
+ if (part.type === "text" || part.type === "reasoning")
650
+ return estimate2(part.text);
651
+ if (part.type === "media")
652
+ return estimateMedia(part.media.mediaType);
653
+ if (part.type === "tool-call")
654
+ return estimate2(part.name + (JSON.stringify(part.input) ?? ""));
655
+ if (part.result.type === "content")
656
+ return part.result.value.reduce((sum, content) => sum + (content.type === "text" ? estimate2(content.text) : estimateMedia(content.mime)), 0);
657
+ const value = part.result.value;
658
+ return estimate2(typeof value === "string" ? value : JSON.stringify(value) ?? "");
659
+ };
660
+ var estimateMedia = (mime) => {
661
+ const type = mime.toLowerCase();
662
+ if (type.startsWith("image/"))
663
+ return IMAGE_TOKEN_ESTIMATE;
664
+ if (type === "application/pdf")
665
+ return PDF_TOKEN_ESTIMATE;
666
+ return 0;
667
+ };
668
+
669
+ export { Service5, buildPrompt2, layer6, node7, recentUserMessages2, estimateContext2, estimatePrompt2, exports_compaction2 };