@opencode/core 2.0.17 → 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 +83 -83
  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/{schema-d4nbhrvv.js → ripgrep-01g11k9t.js} +21 -21
  8. package/dist/chunks/{schema-p07c8hrh.js → ripgrep-02cm5gdc.js} +11 -11
  9. package/dist/chunks/{schema-fng9e0je.js → ripgrep-0gaj4617.js} +6 -6
  10. package/dist/chunks/{schema-xybn4n2y.js → ripgrep-0mx2aapc.js} +12 -12
  11. package/dist/chunks/{schema-0paq2nw3.js → ripgrep-0paq2nw3.js} +1 -1
  12. package/dist/chunks/{schema-c5pegrb7.js → ripgrep-0tkrsm5y.js} +10 -10
  13. package/dist/chunks/{schema-ayqbdn8x.js → ripgrep-0z0qdp4f.js} +62 -62
  14. package/dist/chunks/{schema-h3v3gq1k.js → ripgrep-18rbsmj0.js} +24 -24
  15. package/dist/chunks/{schema-czfptnv9.js → ripgrep-1ajx6rf5.js} +8 -8
  16. package/dist/chunks/{schema-by3r5qkm.js → ripgrep-1ap17en5.js} +34 -34
  17. package/dist/chunks/{schema-0kety719.js → ripgrep-1cwrqxta.js} +13 -13
  18. package/dist/chunks/{schema-1dazxqgg.js → ripgrep-1dazxqgg.js} +2 -2
  19. package/dist/chunks/{schema-0brwk0k2.js → ripgrep-1gq8q7z3.js} +36 -36
  20. package/dist/chunks/{schema-1y2s2f0j.js → ripgrep-1n7xvyes.js} +6 -6
  21. package/dist/chunks/{schema-d0e063zs.js → ripgrep-1qny0ng8.js} +17 -17
  22. package/dist/chunks/{schema-wx7ymqfy.js → ripgrep-1sxym04w.js} +26 -26
  23. package/dist/chunks/ripgrep-1x11rq2a.js +18 -0
  24. package/dist/chunks/{schema-21r38tys.js → ripgrep-21r38tys.js} +1 -1
  25. package/dist/chunks/{schema-z63w68vq.js → ripgrep-29x78va6.js} +6 -6
  26. package/dist/chunks/{schema-2a5m3afh.js → ripgrep-2a5m3afh.js} +1 -1
  27. package/dist/chunks/{schema-me2bkwye.js → ripgrep-2djhngnv.js} +5 -5
  28. package/dist/chunks/{schema-21fjxxq6.js → ripgrep-2vjymgz4.js} +11 -11
  29. package/dist/chunks/{schema-bw1k523x.js → ripgrep-35qaqz32.js} +30 -30
  30. package/dist/chunks/{schema-vgygemyp.js → ripgrep-36zg1nxf.js} +25 -25
  31. package/dist/chunks/{schema-nrp9mwhy.js → ripgrep-39z47dss.js} +18 -18
  32. package/dist/chunks/{schema-3cfzdc8e.js → ripgrep-3cfzdc8e.js} +2 -2
  33. package/dist/chunks/{schema-6whbnvw3.js → ripgrep-3crkzcp9.js} +47 -43
  34. package/dist/chunks/{schema-3fc6dm20.js → ripgrep-3fc6dm20.js} +1 -1
  35. package/dist/chunks/{schema-3hepkmqq.js → ripgrep-3hepkmqq.js} +1 -1
  36. package/dist/chunks/{schema-7khr9c91.js → ripgrep-3ny1h4te.js} +15 -15
  37. package/dist/chunks/{schema-3smtnn6g.js → ripgrep-3smtnn6g.js} +1 -1
  38. package/dist/chunks/{schema-3tvqynh2.js → ripgrep-3tvqynh2.js} +1 -1
  39. package/dist/chunks/{schema-4hq88yhx.js → ripgrep-3xwj4cta.js} +32 -32
  40. package/dist/chunks/{schema-3zsf4n22.js → ripgrep-3zsf4n22.js} +1 -1
  41. package/dist/chunks/{schema-pnzr5f25.js → ripgrep-45gjfn9y.js} +10 -10
  42. package/dist/chunks/{schema-h6r3nrb9.js → ripgrep-4dgbcxzg.js} +4 -4
  43. package/dist/chunks/{schema-de52ckkz.js → ripgrep-4nzwy074.js} +4 -4
  44. package/dist/chunks/{schema-y4bzdzmn.js → ripgrep-4przf6dn.js} +24 -25
  45. package/dist/chunks/{schema-jfxkwh10.js → ripgrep-50epje6z.js} +40 -37
  46. package/dist/chunks/{schema-94ve3ep0.js → ripgrep-513gj428.js} +6 -6
  47. package/dist/chunks/ripgrep-54ma36ye.js +13 -0
  48. package/dist/chunks/{schema-8j2x59yf.js → ripgrep-54nwp9r7.js} +29 -29
  49. package/dist/chunks/{schema-ckecvw8r.js → ripgrep-54tcyq79.js} +2 -2
  50. package/dist/chunks/{schema-4a0nv7mx.js → ripgrep-54zxgqzr.js} +8 -8
  51. package/dist/chunks/{schema-2fb3f4s4.js → ripgrep-560t4d1v.js} +12 -7
  52. package/dist/chunks/{schema-57ez7d0k.js → ripgrep-57ez7d0k.js} +2 -2
  53. package/dist/chunks/{schema-5daktx2q.js → ripgrep-5daktx2q.js} +1 -1
  54. package/dist/chunks/{schema-ssdqnhy0.js → ripgrep-5dkn69vz.js} +24 -7
  55. package/dist/chunks/{schema-rwvzjkqg.js → ripgrep-5qt97ybp.js} +22 -22
  56. package/dist/chunks/{schema-5t3nmthw.js → ripgrep-5t3nmthw.js} +2 -2
  57. package/dist/chunks/{schema-669tq793.js → ripgrep-669tq793.js} +1 -1
  58. package/dist/chunks/{schema-7khjtj5g.js → ripgrep-6ap5qy5h.js} +20 -20
  59. package/dist/chunks/{schema-yz82w8p6.js → ripgrep-6d4369ev.js} +5 -5
  60. package/dist/chunks/{schema-ena0zzcy.js → ripgrep-6e52v1r2.js} +17 -17
  61. package/dist/chunks/{schema-6msgmcgs.js → ripgrep-6msgmcgs.js} +1 -1
  62. package/dist/chunks/{schema-gwmzskkb.js → ripgrep-6v71ddka.js} +20 -20
  63. package/dist/chunks/{schema-2e3sc6z5.js → ripgrep-717rh1cx.js} +11 -11
  64. package/dist/chunks/{schema-j028xdjb.js → ripgrep-73tb2d7t.js} +3 -3
  65. package/dist/chunks/{schema-mvksx64m.js → ripgrep-784hb5j4.js} +4 -4
  66. package/dist/chunks/{schema-jzffzcq4.js → ripgrep-7962e3yf.js} +15 -15
  67. package/dist/chunks/{schema-7bmhse3q.js → ripgrep-7bmhse3q.js} +1 -1
  68. package/dist/chunks/{schema-habj5avf.js → ripgrep-7d3cxzax.js} +26 -26
  69. package/dist/chunks/{schema-7dqw4kz8.js → ripgrep-7dqw4kz8.js} +1 -1
  70. package/dist/chunks/{schema-75qjrmc8.js → ripgrep-7rhad128.js} +19 -19
  71. package/dist/chunks/{schema-b6ysx4kv.js → ripgrep-7rkndmtb.js} +12 -12
  72. package/dist/chunks/{schema-rb4e480n.js → ripgrep-7zx59yv5.js} +13 -13
  73. package/dist/chunks/{schema-2402vzrj.js → ripgrep-84txncab.js} +2 -2
  74. package/dist/chunks/{schema-wxnc2egh.js → ripgrep-87ppwq26.js} +14 -14
  75. package/dist/chunks/{schema-8d7r5vzw.js → ripgrep-8d7r5vzw.js} +1 -1
  76. package/dist/chunks/{schema-av5dvdst.js → ripgrep-8v662a6s.js} +26 -26
  77. package/dist/chunks/{schema-x8bbrmd5.js → ripgrep-8zh4h089.js} +7 -52
  78. package/dist/chunks/{schema-jt97ek0w.js → ripgrep-90x597dq.js} +1 -1
  79. package/dist/chunks/{schema-fr2n07jg.js → ripgrep-921pky8x.js} +29 -29
  80. package/dist/chunks/{schema-qnnvw27w.js → ripgrep-92b1hf4n.js} +35 -35
  81. package/dist/chunks/{schema-ycw8hfm2.js → ripgrep-966px1fx.js} +12 -12
  82. package/dist/chunks/{schema-v9315egx.js → ripgrep-98cnr0ek.js} +9 -9
  83. package/dist/chunks/{schema-tjz0sjs3.js → ripgrep-9dt30ddd.js} +21 -21
  84. package/dist/chunks/{schema-7tpxex51.js → ripgrep-9eq5kwq7.js} +6 -6
  85. package/dist/chunks/{schema-drgwwxwg.js → ripgrep-9gz1cjgc.js} +58 -58
  86. package/dist/chunks/{schema-9a5xxas0.js → ripgrep-9q5cvpmr.js} +27 -27
  87. package/dist/chunks/{schema-yv37q7sr.js → ripgrep-a1fqa279.js} +6 -6
  88. package/dist/chunks/{schema-vmnfmpbz.js → ripgrep-a4pew0st.js} +50 -52
  89. package/dist/chunks/{schema-aaet6srn.js → ripgrep-aaet6srn.js} +2 -2
  90. package/dist/chunks/{schema-587y186t.js → ripgrep-amncynrr.js} +6 -6
  91. package/dist/chunks/{schema-42qrv8nh.js → ripgrep-asw9yjte.js} +22 -22
  92. package/dist/chunks/{schema-b6gygkdw.js → ripgrep-b6gygkdw.js} +2 -2
  93. package/dist/chunks/{schema-t9zs3egg.js → ripgrep-bf0ztrs3.js} +4 -4
  94. package/dist/chunks/{schema-f658k6de.js → ripgrep-bj8n3aze.js} +28 -28
  95. package/dist/chunks/{schema-6z8ht897.js → ripgrep-bjj0bk6b.js} +29 -18
  96. package/dist/chunks/{schema-z07pqspn.js → ripgrep-bjtzbw4r.js} +3 -3
  97. package/dist/chunks/{schema-j1pt8b99.js → ripgrep-bmw6bt9k.js} +23 -23
  98. package/dist/chunks/{schema-x3317tkm.js → ripgrep-bqypnsdg.js} +18 -18
  99. package/dist/chunks/{schema-5atn9wfq.js → ripgrep-bvbkwbsh.js} +19 -19
  100. package/dist/chunks/ripgrep-by268fe6.js +252 -0
  101. package/dist/chunks/{schema-vqfzq50h.js → ripgrep-cdm0dq9n.js} +6 -6
  102. package/dist/chunks/{schema-xbwwxhdm.js → ripgrep-cew5j6w6.js} +12 -12
  103. package/dist/chunks/{schema-g5j6fn2h.js → ripgrep-chcvj6mx.js} +33 -33
  104. package/dist/chunks/{schema-9ncpcp0p.js → ripgrep-cvmm0xs5.js} +10 -10
  105. package/dist/chunks/{schema-rey5gbxv.js → ripgrep-cwa6csj7.js} +9 -9
  106. package/dist/chunks/{schema-hkfg6fzm.js → ripgrep-d2aac7k2.js} +5 -5
  107. package/dist/chunks/ripgrep-d3qdrwa5.js +326 -0
  108. package/dist/chunks/{schema-45cphc5h.js → ripgrep-d6gxwvxg.js} +12 -12
  109. package/dist/chunks/{schema-djehs4n2.js → ripgrep-d8j7dsnb.js} +8 -8
  110. package/dist/chunks/{schema-p8587wpx.js → ripgrep-dhtd5fdm.js} +18 -18
  111. package/dist/chunks/{schema-ytbrnvs4.js → ripgrep-dkmyvpj5.js} +23 -23
  112. package/dist/chunks/ripgrep-dneah854.js +26 -0
  113. package/dist/chunks/{schema-6bgjwwbw.js → ripgrep-dxh6ecs0.js} +5 -5
  114. package/dist/chunks/{schema-fbawcmnd.js → ripgrep-dym78pc8.js} +8 -8
  115. package/dist/chunks/{schema-5qd3pb7m.js → ripgrep-e3qxr5gk.js} +2 -2
  116. package/dist/chunks/{schema-ps7s312n.js → ripgrep-e5v6sjzq.js} +10 -10
  117. package/dist/chunks/{schema-0e81x99y.js → ripgrep-e6q37ddf.js} +10 -17
  118. package/dist/chunks/{schema-vbb1pxgn.js → ripgrep-ec07y9k9.js} +32 -32
  119. package/dist/chunks/{schema-ecfe7b91.js → ripgrep-ecfe7b91.js} +2 -2
  120. package/dist/chunks/{schema-ef5x83kb.js → ripgrep-ef5x83kb.js} +1 -1
  121. package/dist/chunks/{schema-eymenvc3.js → ripgrep-ef8r30dj.js} +27 -27
  122. package/dist/chunks/{schema-ma48de29.js → ripgrep-engkm2d6.js} +5 -5
  123. package/dist/chunks/{schema-sejq73tg.js → ripgrep-ervy3t4x.js} +10 -10
  124. package/dist/chunks/{schema-nz8pq8c9.js → ripgrep-eszpxc5c.js} +5 -5
  125. package/dist/chunks/{schema-etq0c3wd.js → ripgrep-etq0c3wd.js} +1 -1
  126. package/dist/chunks/{schema-bk55e78n.js → ripgrep-eybctzj2.js} +23 -23
  127. package/dist/chunks/{schema-ks0a0grj.js → ripgrep-f1mz2x80.js} +22 -22
  128. package/dist/chunks/{schema-f2n192rq.js → ripgrep-f2n192rq.js} +1 -1
  129. package/dist/chunks/{schema-jjf6303y.js → ripgrep-f5fzvqmp.js} +17 -23
  130. package/dist/chunks/{schema-wfg418dn.js → ripgrep-f8ys8j9y.js} +13 -31
  131. package/dist/chunks/{schema-eajmhh73.js → ripgrep-f960svv2.js} +11 -11
  132. package/dist/chunks/{schema-8k150j0z.js → ripgrep-fa7h6qtp.js} +8 -8
  133. package/dist/chunks/{schema-wzhdnf6z.js → ripgrep-fgmy5dam.js} +33 -33
  134. package/dist/chunks/{schema-t2fc4mz5.js → ripgrep-fm2qvscf.js} +4 -4
  135. package/dist/chunks/{schema-qw1f8ej3.js → ripgrep-fses9meq.js} +27 -27
  136. package/dist/chunks/{schema-evs9c0ef.js → ripgrep-fzjz7zmc.js} +27 -27
  137. package/dist/chunks/{schema-cggb2dpx.js → ripgrep-g5pjqc12.js} +14 -14
  138. package/dist/chunks/{schema-wqc6684y.js → ripgrep-gafqwe43.js} +2 -2
  139. package/dist/chunks/{schema-gd4qta3r.js → ripgrep-gd4qta3r.js} +1 -1
  140. package/dist/chunks/{schema-vr2z87y7.js → ripgrep-gfm6y7px.js} +104 -109
  141. package/dist/chunks/{schema-94ek1h2f.js → ripgrep-gfvb90ym.js} +2 -2
  142. package/dist/chunks/{schema-q4q3y0ma.js → ripgrep-gfwqm0th.js} +28 -29
  143. package/dist/chunks/{schema-jnqxgjh5.js → ripgrep-gjepqxj6.js} +40 -46
  144. package/dist/chunks/{schema-d8hz1vnp.js → ripgrep-gn9knv9y.js} +42 -42
  145. package/dist/chunks/{schema-c488s98d.js → ripgrep-gpj7vvxj.js} +11 -11
  146. package/dist/chunks/{schema-41prm328.js → ripgrep-gr9s2h9h.js} +11 -11
  147. package/dist/chunks/{schema-gv6a8nnw.js → ripgrep-gv6a8nnw.js} +2 -2
  148. package/dist/chunks/{schema-e69wdmhy.js → ripgrep-h204n497.js} +6 -6
  149. package/dist/chunks/{schema-v3sgzvyr.js → ripgrep-h5w29vws.js} +12 -10
  150. package/dist/chunks/{schema-h6vf3j39.js → ripgrep-h6vf3j39.js} +1 -1
  151. package/dist/chunks/{schema-kp8q1t60.js → ripgrep-h71w788e.js} +8 -8
  152. package/dist/chunks/{schema-zqdrfgj1.js → ripgrep-hcxgq10m.js} +48 -48
  153. package/dist/chunks/{schema-7mm032py.js → ripgrep-hpgwsqwz.js} +9 -9
  154. package/dist/chunks/{schema-eh37vhb5.js → ripgrep-hq3kn9m3.js} +6 -6
  155. package/dist/chunks/{schema-r1qsnamt.js → ripgrep-hrj2emtv.js} +4 -4
  156. package/dist/chunks/{schema-j56e64zr.js → ripgrep-j56e64zr.js} +1 -1
  157. package/dist/chunks/{schema-pecm86x5.js → ripgrep-jb2d75z1.js} +11 -11
  158. package/dist/chunks/{schema-pm23069r.js → ripgrep-jceb99ws.js} +16 -16
  159. package/dist/chunks/{schema-tgyvarbm.js → ripgrep-jjyafwrj.js} +15 -15
  160. package/dist/chunks/{schema-tk9ew89t.js → ripgrep-jkka0c6f.js} +8 -8
  161. package/dist/chunks/{schema-6gjjawqn.js → ripgrep-jtj8yee2.js} +91 -91
  162. package/dist/chunks/{schema-6pc27hjz.js → ripgrep-jws6fkes.js} +4 -4
  163. package/dist/chunks/{schema-cmsm0fmq.js → ripgrep-jyx4k4a6.js} +15 -15
  164. package/dist/chunks/{schema-jpqeh2wc.js → ripgrep-k0a3z2qz.js} +4 -4
  165. package/dist/chunks/{schema-d2w12qf2.js → ripgrep-k5f615bv.js} +10 -10
  166. package/dist/chunks/{schema-0sfeenar.js → ripgrep-kasa1exf.js} +20 -20
  167. package/dist/chunks/{schema-6xg4rx5y.js → ripgrep-keqxcydf.js} +25 -25
  168. package/dist/chunks/{schema-50mzsvk4.js → ripgrep-kk00bynn.js} +21 -21
  169. package/dist/chunks/{schema-qkc3sedm.js → ripgrep-kv68fk3j.js} +177 -177
  170. package/dist/chunks/{schema-mj50c66e.js → ripgrep-kxhj4mfa.js} +11 -11
  171. package/dist/chunks/{schema-m3fdjcah.js → ripgrep-m3fdjcah.js} +1 -1
  172. package/dist/chunks/{schema-gq46gf1f.js → ripgrep-m3ra8jyf.js} +17 -17
  173. package/dist/chunks/{schema-m9w0rfyh.js → ripgrep-m9w0rfyh.js} +1 -1
  174. package/dist/chunks/{schema-emsmtts8.js → ripgrep-meaywfr2.js} +25 -20
  175. package/dist/chunks/{schema-mfqp6xfm.js → ripgrep-mfqp6xfm.js} +2 -2
  176. package/dist/chunks/{schema-f5gy8qwh.js → ripgrep-mgq5nv3e.js} +8 -8
  177. package/dist/chunks/{schema-0ymghm5h.js → ripgrep-mmq917w3.js} +11 -11
  178. package/dist/chunks/{schema-5m1y3qk6.js → ripgrep-mtndfwk2.js} +18 -18
  179. package/dist/chunks/{schema-3m9rvccw.js → ripgrep-n8c1xpsf.js} +36 -36
  180. package/dist/chunks/{schema-es33zt1k.js → ripgrep-ncxf1vrd.js} +5 -5
  181. package/dist/chunks/{schema-mnnqb9y7.js → ripgrep-ngmgdt3b.js} +15 -15
  182. package/dist/chunks/{schema-055gg8d0.js → ripgrep-nqp5g4n1.js} +17 -17
  183. package/dist/chunks/{schema-fnbz4a44.js → ripgrep-nrzkffvv.js} +14 -14
  184. package/dist/chunks/{schema-7smws4ww.js → ripgrep-nt8bmh2c.js} +9 -9
  185. package/dist/chunks/{schema-nyqx1cb3.js → ripgrep-nyqx1cb3.js} +2 -2
  186. package/dist/chunks/{schema-k3c624dm.js → ripgrep-nzks3jc8.js} +3 -3
  187. package/dist/chunks/{schema-5yfpp9tw.js → ripgrep-p05254f8.js} +11 -11
  188. package/dist/chunks/{schema-qjnxxf51.js → ripgrep-p1nm93x7.js} +5 -5
  189. package/dist/chunks/{schema-e32rp4rx.js → ripgrep-p39gsrf5.js} +41 -41
  190. package/dist/chunks/{schema-52vmy6ww.js → ripgrep-p8xjr5qr.js} +17 -17
  191. package/dist/chunks/{schema-fkfyjdkw.js → ripgrep-pa2d04qg.js} +4 -4
  192. package/dist/chunks/{schema-9wy6gd4a.js → ripgrep-pa6447g9.js} +22 -22
  193. package/dist/chunks/{schema-yq2cczkq.js → ripgrep-pjedbq3k.js} +9 -9
  194. package/dist/chunks/{schema-12z81zg4.js → ripgrep-pjerk14q.js} +41 -41
  195. package/dist/chunks/{schema-pjvnvgmy.js → ripgrep-pjvnvgmy.js} +1 -1
  196. package/dist/chunks/{schema-pknna89w.js → ripgrep-pknna89w.js} +1 -1
  197. package/dist/chunks/{schema-2627m7vs.js → ripgrep-prwn914c.js} +30 -23
  198. package/dist/chunks/{schema-wd3x2cqz.js → ripgrep-psazpmmj.js} +2 -2
  199. package/dist/chunks/{schema-k5gcqnqh.js → ripgrep-pyrtyedv.js} +11 -11
  200. package/dist/chunks/{schema-a79446ya.js → ripgrep-pzz9wtjp.js} +4 -4
  201. package/dist/chunks/{schema-6cbh3zce.js → ripgrep-q68zcp6s.js} +15 -15
  202. package/dist/chunks/{schema-y853g6y0.js → ripgrep-qfhyjwmh.js} +4 -4
  203. package/dist/chunks/{schema-drwq78ky.js → ripgrep-qqeeq2t9.js} +7 -7
  204. package/dist/chunks/{schema-qsdy395h.js → ripgrep-qsdy395h.js} +1 -1
  205. package/dist/chunks/{schema-3ybey094.js → ripgrep-qsjn5gcs.js} +11 -11
  206. package/dist/chunks/{schema-9m6r901m.js → ripgrep-qwk9htef.js} +9 -9
  207. package/dist/chunks/{schema-jjq7exv6.js → ripgrep-r36g8kg2.js} +15 -15
  208. package/dist/chunks/{schema-t4wzjz2c.js → ripgrep-r4tkwkgd.js} +3 -3
  209. package/dist/chunks/{schema-vv4dp7ce.js → ripgrep-r7xja54h.js} +11 -11
  210. package/dist/chunks/{schema-9vhpts05.js → ripgrep-rd8q201w.js} +12 -12
  211. package/dist/chunks/{schema-rdw6cm16.js → ripgrep-rdw6cm16.js} +1 -1
  212. package/dist/chunks/{schema-8kn7kdrq.js → ripgrep-rpwtn2yk.js} +18 -18
  213. package/dist/chunks/{schema-rxcwgxqf.js → ripgrep-rvtvfpzy.js} +6 -6
  214. package/dist/chunks/{schema-jmanypz0.js → ripgrep-rwk8kepb.js} +59 -37
  215. package/dist/chunks/{schema-5825hswr.js → ripgrep-s3ndjw50.js} +8 -8
  216. package/dist/chunks/{schema-yrznvahk.js → ripgrep-s4enseaf.js} +2 -2
  217. package/dist/chunks/{schema-8fsqd879.js → ripgrep-s8vezypb.js} +25 -25
  218. package/dist/chunks/{schema-1yb3x3z9.js → ripgrep-sdgam4xr.js} +1 -1
  219. package/dist/chunks/{schema-r3ryr6td.js → ripgrep-se19vg8t.js} +31 -31
  220. package/dist/chunks/{schema-qg2cf98c.js → ripgrep-sf4xqwvj.js} +14 -14
  221. package/dist/chunks/{schema-0mc57tk4.js → ripgrep-sg3rx6b8.js} +24 -24
  222. package/dist/chunks/{schema-cfefqghv.js → ripgrep-smcq1pfk.js} +10 -10
  223. package/dist/chunks/{schema-9tkzcje5.js → ripgrep-sr8ycrw9.js} +13 -13
  224. package/dist/chunks/{schema-hn57h045.js → ripgrep-t2az9yje.js} +4 -4
  225. package/dist/chunks/{schema-rhjbct0v.js → ripgrep-t550f9t1.js} +4 -4
  226. package/dist/chunks/{schema-4twmxjga.js → ripgrep-t6jhp5yk.js} +42 -42
  227. package/dist/chunks/{schema-eh37g602.js → ripgrep-t6zs6zyr.js} +5 -5
  228. package/dist/chunks/{schema-tazgh4e4.js → ripgrep-tazgh4e4.js} +1 -1
  229. package/dist/chunks/{schema-tcezcvh9.js → ripgrep-tcezcvh9.js} +1 -1
  230. package/dist/chunks/{schema-tdstcens.js → ripgrep-tdstcens.js} +1 -1
  231. package/dist/chunks/{schema-m0r31qfn.js → ripgrep-tfzngn12.js} +4 -4
  232. package/dist/chunks/{schema-197cy8dq.js → ripgrep-tgh33bte.js} +12 -12
  233. package/dist/chunks/{schema-k3ztb1qz.js → ripgrep-tgqx6wbb.js} +5 -5
  234. package/dist/chunks/{schema-spdety1y.js → ripgrep-tnwzh9w1.js} +16 -16
  235. package/dist/chunks/{schema-tvtrv512.js → ripgrep-tvtrv512.js} +1 -1
  236. package/dist/chunks/{schema-fze10tzj.js → ripgrep-txehjzrx.js} +22 -22
  237. package/dist/chunks/{schema-tfvhzp6w.js → ripgrep-v0rxv5z8.js} +93 -93
  238. package/dist/chunks/{schema-5q4kjq47.js → ripgrep-v121z1z6.js} +3 -3
  239. package/dist/chunks/{schema-xc7gs73k.js → ripgrep-v6f2zkdc.js} +32 -32
  240. package/dist/chunks/{schema-v7ytqzq6.js → ripgrep-v8kmpyqg.js} +20 -20
  241. package/dist/chunks/{schema-nvexbzn8.js → ripgrep-v9tf4bbz.js} +25 -25
  242. package/dist/chunks/{schema-sm1zfatk.js → ripgrep-vcctfkdr.js} +21 -21
  243. package/dist/chunks/{schema-veqvce7d.js → ripgrep-veqvce7d.js} +1 -1
  244. package/dist/chunks/{schema-qyvq79sc.js → ripgrep-vf281y08.js} +11 -11
  245. package/dist/chunks/ripgrep-vktw4pze.js +65 -0
  246. package/dist/chunks/{schema-jztemdeq.js → ripgrep-vm695x1h.js} +24 -24
  247. package/dist/chunks/{schema-y6gmj16h.js → ripgrep-vpdv8epx.js} +24 -24
  248. package/dist/chunks/{schema-wzgg19r1.js → ripgrep-vpq7wwjy.js} +9 -10
  249. package/dist/chunks/{schema-nbzsj80d.js → ripgrep-vyrd71eq.js} +11 -11
  250. package/dist/chunks/{schema-vzcthcp8.js → ripgrep-vzcthcp8.js} +1 -1
  251. package/dist/chunks/{schema-vzs5sf6e.js → ripgrep-vzs5sf6e.js} +1 -1
  252. package/dist/chunks/{schema-a7bcxdzj.js → ripgrep-w3jg838k.js} +9 -9
  253. package/dist/chunks/{schema-w3wsvvr9.js → ripgrep-w3wsvvr9.js} +1 -1
  254. package/dist/chunks/{schema-k6yq57aq.js → ripgrep-w52wajpr.js} +3 -3
  255. package/dist/chunks/{schema-csnqga4f.js → ripgrep-w8qr023e.js} +25 -25
  256. package/dist/chunks/{schema-jbp9wfgd.js → ripgrep-wc7bkbrs.js} +9 -9
  257. package/dist/chunks/{schema-wd87259q.js → ripgrep-wd87259q.js} +1 -1
  258. package/dist/chunks/{schema-2azgrrcp.js → ripgrep-wnbq8dq2.js} +21 -21
  259. package/dist/chunks/{schema-6yy39kvx.js → ripgrep-wpj1vscs.js} +16 -16
  260. package/dist/chunks/ripgrep-wrw0pdsr.js +669 -0
  261. package/dist/chunks/{schema-aewz2adp.js → ripgrep-ws4630vh.js} +13 -13
  262. package/dist/chunks/{schema-f59qmhat.js → ripgrep-wws8y0j5.js} +7 -7
  263. package/dist/chunks/{schema-x1ezjp6w.js → ripgrep-x1ezjp6w.js} +1 -1
  264. package/dist/chunks/{schema-507gpz5w.js → ripgrep-xd3pt1yp.js} +3 -3
  265. package/dist/chunks/{schema-b6q25pdb.js → ripgrep-xgw0etvz.js} +2 -2
  266. package/dist/chunks/{schema-dmqcgk4z.js → ripgrep-xkntkrq7.js} +5 -5
  267. package/dist/chunks/{schema-9cjj4wa1.js → ripgrep-xyv2nnj9.js} +23 -23
  268. package/dist/chunks/{schema-9f1sykhs.js → ripgrep-y01t92x8.js} +47 -47
  269. package/dist/chunks/{schema-n72gykqt.js → ripgrep-y18nyng0.js} +30 -30
  270. package/dist/chunks/{schema-y1fvbwt7.js → ripgrep-y1fvbwt7.js} +1 -1
  271. package/dist/chunks/{schema-258tza17.js → ripgrep-y38ja4bc.js} +6 -6
  272. package/dist/chunks/{schema-z15n6anb.js → ripgrep-y3fm06sq.js} +5 -5
  273. package/dist/chunks/{schema-24mn6ts6.js → ripgrep-y5y40sn1.js} +20 -20
  274. package/dist/chunks/{schema-y71avatq.js → ripgrep-y71avatq.js} +1 -1
  275. package/dist/chunks/{schema-11etax81.js → ripgrep-y7x7h62n.js} +17 -17
  276. package/dist/chunks/{schema-a5mtmafw.js → ripgrep-ybn4q7y2.js} +20 -20
  277. package/dist/chunks/{schema-t7c95w3a.js → ripgrep-ygfh7z4x.js} +23 -23
  278. package/dist/chunks/{schema-yrhqyw5v.js → ripgrep-yrhqyw5v.js} +1 -1
  279. package/dist/chunks/{schema-jns15vzr.js → ripgrep-ysddpjww.js} +6 -6
  280. package/dist/chunks/{schema-3pe7sts8.js → ripgrep-ywkfy99j.js} +8 -8
  281. package/dist/chunks/{schema-z0bkrqjs.js → ripgrep-z0bkrqjs.js} +1 -1
  282. package/dist/chunks/{schema-pkyn48ss.js → ripgrep-z3k649yd.js} +316 -320
  283. package/dist/chunks/{schema-t7xz7709.js → ripgrep-z8fqh70m.js} +27 -27
  284. package/dist/chunks/{schema-95e3es41.js → ripgrep-zb4s847t.js} +7 -7
  285. package/dist/chunks/{schema-zeh9ct20.js → ripgrep-zeh9ct20.js} +2 -2
  286. package/dist/chunks/{schema-428cwm86.js → ripgrep-zf7qa2ng.js} +56 -56
  287. package/dist/chunks/{schema-zr2ceqn5.js → ripgrep-zr2ceqn5.js} +1 -1
  288. package/dist/chunks/{schema-0145jres.js → ripgrep-zs8srxkn.js} +24 -24
  289. package/dist/chunks/{schema-511kpayd.js → ripgrep-ztychdw2.js} +18 -18
  290. package/dist/chunks/{schema-722kb1xk.js → ripgrep-zv0jyrj3.js} +5 -5
  291. package/dist/chunks/{schema-zxq2ej10.js → ripgrep-zxq2ej10.js} +1 -1
  292. package/dist/chunks/{schema-db7z9sqm.js → ripgrep-zyft68ff.js} +3 -3
  293. package/dist/codemode/catalog.js +1 -1
  294. package/dist/codemode/instructions.js +11 -11
  295. package/dist/codemode/tool.js +3 -3
  296. package/dist/codemode/web.js +1 -1
  297. package/dist/command.js +83 -83
  298. package/dist/config/discovery.js +82 -82
  299. package/dist/config/markdown.js +1 -1
  300. package/dist/config/normalize.js +106 -106
  301. package/dist/config/plugin/agent.js +123 -123
  302. package/dist/config/plugin/command.js +213 -212
  303. package/dist/config/plugin/compaction.js +161 -160
  304. package/dist/config/plugin/compatibility.js +141 -141
  305. package/dist/config/plugin/entry-observer.js +1 -1
  306. package/dist/config/plugin/formatter.js +124 -124
  307. package/dist/config/plugin/image.js +123 -123
  308. package/dist/config/plugin/instruction.js +90 -90
  309. package/dist/config/plugin/location-watcher.js +125 -125
  310. package/dist/config/plugin/mcp.js +130 -130
  311. package/dist/config/plugin/policy.js +124 -124
  312. package/dist/config/plugin/provider.js +123 -123
  313. package/dist/config/plugin/reference.js +125 -125
  314. package/dist/config/plugin/shell.js +123 -123
  315. package/dist/config/plugin/skill-file.js +102 -102
  316. package/dist/config/plugin/skill.js +142 -142
  317. package/dist/config/plugin/snapshot.js +123 -123
  318. package/dist/config/plugin/source.js +124 -124
  319. package/dist/config/plugin/tool-output.js +125 -125
  320. package/dist/config/plugin/websearch.js +120 -120
  321. package/dist/config/plugin/worktree.js +125 -125
  322. package/dist/config/variable.js +3 -3
  323. package/dist/config/watch.js +1 -1
  324. package/dist/config.js +128 -128
  325. package/dist/credential/sql.js +2 -2
  326. package/dist/credential.js +81 -81
  327. package/dist/database/database.js +72 -72
  328. package/dist/database/drizzle/effect-sqlite/driver.js +14 -14
  329. package/dist/database/drizzle/effect-sqlite/index.js +14 -14
  330. package/dist/database/drizzle/effect-sqlite/session.js +11 -11
  331. package/dist/database/drizzle/index.js +15 -15
  332. package/dist/database/drizzle/internal/drizzle-utils.js +1 -1
  333. package/dist/database/drizzle/sqlite-core/effect/count.js +1 -1
  334. package/dist/database/drizzle/sqlite-core/effect/db.js +9 -9
  335. package/dist/database/drizzle/sqlite-core/effect/delete.js +2 -2
  336. package/dist/database/drizzle/sqlite-core/effect/index.js +10 -10
  337. package/dist/database/drizzle/sqlite-core/effect/insert.js +2 -2
  338. package/dist/database/drizzle/sqlite-core/effect/query.js +1 -1
  339. package/dist/database/drizzle/sqlite-core/effect/raw.js +1 -1
  340. package/dist/database/drizzle/sqlite-core/effect/select.js +2 -2
  341. package/dist/database/drizzle/sqlite-core/effect/session.js +10 -10
  342. package/dist/database/drizzle/sqlite-core/effect/update.js +2 -2
  343. package/dist/database/drizzle.js +16 -16
  344. package/dist/database/migration/20260127222353_familiar_lady_ursula.js +1 -1
  345. package/dist/database/migration/20260211171708_add_project_commands.js +1 -1
  346. package/dist/database/migration/20260213144116_wakeful_the_professor.js +1 -1
  347. package/dist/database/migration/20260225215848_workspace.js +1 -1
  348. package/dist/database/migration/20260227213759_add_session_workspace_id.js +1 -1
  349. package/dist/database/migration/20260228203230_blue_harpoon.js +1 -1
  350. package/dist/database/migration/20260303231226_add_workspace_fields.js +1 -1
  351. package/dist/database/migration/20260309230000_move_org_to_state.js +1 -1
  352. package/dist/database/migration/20260312043431_session_message_cursor.js +1 -1
  353. package/dist/database/migration/20260323234822_events.js +1 -1
  354. package/dist/database/migration/20260410174513_workspace-name.js +1 -1
  355. package/dist/database/migration/20260413175956_chief_energizer.js +1 -1
  356. package/dist/database/migration/20260423070820_add_icon_url_override.js +1 -1
  357. package/dist/database/migration/20260427172553_slow_nightmare.js +1 -1
  358. package/dist/database/migration/20260428004200_add_session_path.js +1 -1
  359. package/dist/database/migration/20260501142318_next_venus.js +1 -1
  360. package/dist/database/migration/20260504145000_add_sync_owner.js +1 -1
  361. package/dist/database/migration/20260507164347_add_workspace_time.js +1 -1
  362. package/dist/database/migration/20260510033149_session_usage.js +1 -1
  363. package/dist/database/migration/20260511000411_data_migration_state.js +1 -1
  364. package/dist/database/migration/20260511173437_session-metadata.js +1 -1
  365. package/dist/database/migration/20260601010001_normalize_storage_paths.js +1 -1
  366. package/dist/database/migration/20260601202201_amazing_prowler.js +1 -1
  367. package/dist/database/migration/20260602002951_lowly_union_jack.js +1 -1
  368. package/dist/database/migration/20260602182828_add_project_directories.js +1 -1
  369. package/dist/database/migration/20260603001617_session_message_projection_indexes.js +1 -1
  370. package/dist/database/migration/20260603040000_session_message_projection_order.js +1 -1
  371. package/dist/database/migration/20260603141458_session_input_inbox.js +1 -1
  372. package/dist/database/migration/20260603160727_jittery_ezekiel_stane.js +1 -1
  373. package/dist/database/migration/20260604172448_event_sourced_session_input.js +1 -1
  374. package/dist/database/migration/20260605003541_add_session_context_snapshot.js +1 -1
  375. package/dist/database/migration/20260605042240_add_context_epoch_agent.js +1 -1
  376. package/dist/database/migration/20260611035744_credential.js +1 -1
  377. package/dist/database/migration/20260611192811_lush_chimera.js +1 -1
  378. package/dist/database/migration/20260612174303_project_dir_strategy.js +1 -1
  379. package/dist/database/migration/20260622142730_simplify_session_context_epoch.js +1 -1
  380. package/dist/database/migration/20260622170816_reset_v2_session_state.js +1 -1
  381. package/dist/database/migration/20260622202450_simplify_session_input.js +1 -1
  382. package/dist/database/migration/20260804233008_loose_psylocke.js +1 -1
  383. package/dist/database/migration/20260805200742_import_legacy_credentials.js +1 -1
  384. package/dist/database/migration/20260808023530_workspace_domain.js +1 -1
  385. package/dist/database/migration/20260811161259_execution_claim_attempts.js +1 -1
  386. package/dist/database/migration/20260812181746_session_inbox.js +1 -1
  387. package/dist/database/migration/20260812213948_worktree.js +1 -1
  388. package/dist/database/migration/20260819222447_session_viewed_state.js +1 -1
  389. package/dist/database/migration/20260823191254_nullable_workspace_binding.js +1 -1
  390. package/dist/database/migration/20260910120000_clear_v1_session_permission.js +1 -1
  391. package/dist/database/migration/20260923013825_project_time_active.js +1 -1
  392. package/dist/database/migration.gen.js +49 -49
  393. package/dist/database/migration.js +51 -51
  394. package/dist/database/path.js +2 -2
  395. package/dist/database/schema.gen.js +1 -1
  396. package/dist/database/schema.sql.js +1 -1
  397. package/dist/database/sqlite.bun.js +1 -1
  398. package/dist/database/sqlite.js +1 -1
  399. package/dist/database/sqlite.node.js +1 -1
  400. package/dist/database/sqlite.workerd.js +1 -1
  401. package/dist/database/v1-migration.bun.js +79 -79
  402. package/dist/database/v1-migration.js +1 -1
  403. package/dist/effect/app-node-builder.js +371 -372
  404. package/dist/effect/app-node-platform.js +2 -2
  405. package/dist/effect/keyed-mutex.js +1 -1
  406. package/dist/effect/websocket-constructor.js +1 -1
  407. package/dist/environment/driver.js +1 -1
  408. package/dist/environment/environment.js +93 -93
  409. package/dist/environment/exec-defaults.js +2 -2
  410. package/dist/environment/files.js +1 -1
  411. package/dist/environment/index.js +95 -95
  412. package/dist/environment/local.js +2 -2
  413. package/dist/environment/memory.js +2 -2
  414. package/dist/environment/unavailable.js +1 -1
  415. package/dist/event/sql.js +1 -1
  416. package/dist/event-logger.js +72 -72
  417. package/dist/file-access.js +104 -106
  418. package/dist/file-mutation.js +94 -94
  419. package/dist/file-retention.js +1 -1
  420. package/dist/filesystem/fff.bun.js +2 -2
  421. package/dist/filesystem/fff.js +1 -1
  422. package/dist/filesystem/fff.node.js +2 -2
  423. package/dist/filesystem/fff.workerd.js +2 -2
  424. package/dist/filesystem/ignore.js +1 -1
  425. package/dist/filesystem/location-watcher-policy.js +6 -6
  426. package/dist/filesystem/location-watcher.js +228 -227
  427. package/dist/filesystem/protected.js +1 -1
  428. package/dist/filesystem/search.js +103 -103
  429. package/dist/filesystem/watcher-binding.js +3 -3
  430. package/dist/filesystem/watcher.js +15 -15
  431. package/dist/filesystem.js +104 -104
  432. package/dist/form.js +80 -80
  433. package/dist/formatter/builtins.js +4 -4
  434. package/dist/formatter.js +89 -89
  435. package/dist/generate.js +101 -101
  436. package/dist/git.js +8 -8
  437. package/dist/github-copilot/chat/convert-to-openai-compatible-chat-messages.js +1 -1
  438. package/dist/github-copilot/chat/get-response-metadata.js +1 -1
  439. package/dist/github-copilot/chat/map-openai-compatible-finish-reason.js +1 -1
  440. package/dist/github-copilot/chat/openai-compatible-chat-language-model.js +7 -7
  441. package/dist/github-copilot/chat/openai-compatible-chat-options.js +1 -1
  442. package/dist/github-copilot/chat/openai-compatible-prepare-tools.js +1 -1
  443. package/dist/github-copilot/copilot-provider.js +17 -17
  444. package/dist/github-copilot/models.js +99 -99
  445. package/dist/github-copilot/openai-compatible-error.js +1 -1
  446. package/dist/github-copilot/responses/convert-to-openai-responses-input.js +1 -1
  447. package/dist/github-copilot/responses/map-openai-responses-finish-reason.js +1 -1
  448. package/dist/github-copilot/responses/openai-error.js +1 -1
  449. package/dist/github-copilot/responses/openai-responses-language-model.js +10 -10
  450. package/dist/github-copilot/responses/openai-responses-prepare-tools.js +6 -6
  451. package/dist/github-copilot/responses/tool/code-interpreter.js +1 -1
  452. package/dist/github-copilot/responses/tool/file-search.js +1 -1
  453. package/dist/github-copilot/responses/tool/image-generation.js +1 -1
  454. package/dist/github-copilot/responses/tool/web-search-preview.js +1 -1
  455. package/dist/github-copilot/responses/tool/web-search.js +1 -1
  456. package/dist/id/id.js +1 -1
  457. package/dist/image/photon.js +2 -2
  458. package/dist/image.js +6 -6
  459. package/dist/instance/service.js +5 -5
  460. package/dist/instance.js +362 -363
  461. package/dist/instruction-discovery.js +83 -83
  462. package/dist/instructions/builtins.js +87 -87
  463. package/dist/instructions/index.js +3 -3
  464. package/dist/integration/connection.js +3 -3
  465. package/dist/integration.js +84 -84
  466. package/dist/job.js +79 -79
  467. package/dist/kv/sql.js +2 -2
  468. package/dist/kv.js +73 -73
  469. package/dist/location-activity.js +134 -134
  470. package/dist/location-lifecycle.js +107 -107
  471. package/dist/location-service-map.js +86 -86
  472. package/dist/location-services.js +359 -360
  473. package/dist/location.js +83 -83
  474. package/dist/managed-policy.js +5 -5
  475. package/dist/mcp/client.js +91 -91
  476. package/dist/mcp/index.js +108 -110
  477. package/dist/mcp/instructions.js +128 -128
  478. package/dist/mcp/oauth.js +80 -78
  479. package/dist/mcp/stdio.js +90 -90
  480. package/dist/mime.js +1 -1
  481. package/dist/modal/models.js +99 -99
  482. package/dist/model-resolver.js +110 -110
  483. package/dist/model.js +98 -98
  484. package/dist/models-dev.js +99 -99
  485. package/dist/oauth/page.js +1 -1
  486. package/dist/permission/saved.js +80 -80
  487. package/dist/permission/sql.js +5 -5
  488. package/dist/permission.js +115 -115
  489. package/dist/persistent-pty/binary.bun.js +1 -1
  490. package/dist/persistent-pty/daemon.js +1 -1
  491. package/dist/persistent-pty/index.js +88 -88
  492. package/dist/persistent-pty/pty-binding.js +1 -1
  493. package/dist/persistent-pty.js +75 -75
  494. package/dist/plugin/agent.js +102 -102
  495. package/dist/plugin/command.js +99 -99
  496. package/dist/plugin/hooks.js +5 -5
  497. package/dist/plugin/host.js +219 -218
  498. package/dist/plugin/identity.js +3 -3
  499. package/dist/plugin/instance.js +5 -5
  500. package/dist/plugin/internal.js +334 -334
  501. package/dist/plugin/mcp-codemode-defaults.js +3 -3
  502. package/dist/plugin/models-dev.js +96 -96
  503. package/dist/plugin/module.js +7 -7
  504. package/dist/plugin/optimize.js +2 -2
  505. package/dist/plugin/plan.js +102 -102
  506. package/dist/plugin/promise.js +1 -1
  507. package/dist/plugin/provider/amazon-bedrock.js +90 -90
  508. package/dist/plugin/provider/azure.js +122 -122
  509. package/dist/plugin/provider/cerebras.js +1 -1
  510. package/dist/plugin/provider/cloudflare-ai-gateway.js +120 -121
  511. package/dist/plugin/provider/cloudflare-workers-ai.js +121 -121
  512. package/dist/plugin/provider/cohere.js +2 -2
  513. package/dist/plugin/provider/configured.js +119 -119
  514. package/dist/plugin/provider/digitalocean.js +93 -93
  515. package/dist/plugin/provider/dynamic.js +2 -2
  516. package/dist/plugin/provider/factory.js +1 -1
  517. package/dist/plugin/provider/gateway.js +2 -2
  518. package/dist/plugin/provider/github-copilot.js +95 -94
  519. package/dist/plugin/provider/gitlab.js +93 -93
  520. package/dist/plugin/provider/google-vertex.js +90 -90
  521. package/dist/plugin/provider/kilo.js +1 -1
  522. package/dist/plugin/provider/llmgateway.js +77 -77
  523. package/dist/plugin/provider/lmstudio.js +122 -122
  524. package/dist/plugin/provider/modal.js +92 -92
  525. package/dist/plugin/provider/nvidia.js +1 -1
  526. package/dist/plugin/provider/ollama.js +122 -122
  527. package/dist/plugin/provider/openai.js +93 -92
  528. package/dist/plugin/provider/opencode.js +95 -95
  529. package/dist/plugin/provider/openrouter.js +91 -91
  530. package/dist/plugin/provider/perplexity.js +2 -2
  531. package/dist/plugin/provider/poe.js +78 -78
  532. package/dist/plugin/provider/prompt-cache-key.js +90 -90
  533. package/dist/plugin/provider/sap-ai-core.js +91 -91
  534. package/dist/plugin/provider/sdk-factory.js +1 -1
  535. package/dist/plugin/provider/snowflake-cortex.js +122 -122
  536. package/dist/plugin/provider/venice.js +2 -2
  537. package/dist/plugin/provider/vercel.js +90 -90
  538. package/dist/plugin/provider/vllm.js +122 -122
  539. package/dist/plugin/provider/xai.js +91 -91
  540. package/dist/plugin/provider/zenmux.js +1 -1
  541. package/dist/plugin/provider.js +162 -161
  542. package/dist/plugin/sdk.js +74 -74
  543. package/dist/plugin/service.js +3 -3
  544. package/dist/plugin/skill.js +139 -139
  545. package/dist/plugin/source-directory.js +1 -1
  546. package/dist/plugin/supervisor.js +353 -353
  547. package/dist/plugin/tool-input-repair.js +2 -2
  548. package/dist/plugin/update.js +4 -4
  549. package/dist/plugin/vcs/git.js +86 -86
  550. package/dist/plugin/vcs/hg.js +86 -86
  551. package/dist/plugin/verbosity.js +93 -93
  552. package/dist/plugin/warming.js +121 -121
  553. package/dist/plugin/websearch/exa.js +5 -5
  554. package/dist/plugin/websearch/firecrawl.js +6 -6
  555. package/dist/plugin/websearch/index.js +9 -9
  556. package/dist/plugin/websearch/mcp.js +2 -2
  557. package/dist/plugin/websearch/parallel.js +6 -6
  558. package/dist/plugin/websearch/tavily.js +4 -4
  559. package/dist/plugin/websearch/tinyfish.js +8 -8
  560. package/dist/plugin.js +224 -223
  561. package/dist/project/schema.js +2 -2
  562. package/dist/project/sql.js +4 -4
  563. package/dist/project.js +82 -82
  564. package/dist/provider.js +97 -97
  565. package/dist/pty/protocol.js +1 -1
  566. package/dist/pty/ticket.js +1 -1
  567. package/dist/pty.js +95 -94
  568. package/dist/reference/instructions.js +87 -87
  569. package/dist/reference.js +91 -91
  570. package/dist/repository-cache.js +81 -81
  571. package/dist/repository.js +1 -1
  572. package/dist/ripgrep/binary.js +2 -2
  573. package/dist/ripgrep.js +97 -97
  574. package/dist/rpc.js +86 -86
  575. package/dist/schema.js +1 -1
  576. package/dist/session/affinity.js +8 -0
  577. package/dist/session/command.js +74 -74
  578. package/dist/session/compaction.js +141 -142
  579. package/dist/session/context.js +153 -152
  580. package/dist/session/diff.js +88 -88
  581. package/dist/session/environment.js +5 -5
  582. package/dist/session/error.js +8 -10
  583. package/dist/session/event.js +1 -1
  584. package/dist/session/execution/restart.js +224 -223
  585. package/dist/session/execution.js +128 -128
  586. package/dist/session/generate.js +152 -151
  587. package/dist/session/history.js +15 -15
  588. package/dist/session/inbox.js +86 -86
  589. package/dist/session/info.js +3 -3
  590. package/dist/session/instruction-entry.js +79 -79
  591. package/dist/session/instruction-state.js +8 -8
  592. package/dist/session/instructions.js +97 -97
  593. package/dist/session/message-updater.js +4 -4
  594. package/dist/session/message.js +1 -1
  595. package/dist/session/model-request.js +120 -119
  596. package/dist/session/model-transport.js +9 -9
  597. package/dist/session/move.js +130 -130
  598. package/dist/session/projector.js +86 -86
  599. package/dist/session/prompt.js +105 -105
  600. package/dist/session/provider-context.js +3 -3
  601. package/dist/session/revert.js +90 -90
  602. package/dist/session/run-coordinator.js +1 -1
  603. package/dist/session/runner/index.js +3 -3
  604. package/dist/session/runner/llm.js +232 -231
  605. package/dist/session/runner/max-steps.js +1 -1
  606. package/dist/session/runner/model.js +98 -110
  607. package/dist/session/runner/publish-llm-event.js +3 -3
  608. package/dist/session/runner/retry.js +5 -117
  609. package/dist/session/runner/step.js +126 -126
  610. package/dist/session/runner/to-llm-message.js +2 -2
  611. package/dist/session/schema.js +5 -5
  612. package/dist/session/session.js +170 -170
  613. package/dist/session/shell.js +138 -138
  614. package/dist/session/skill.js +103 -103
  615. package/dist/session/sql.js +5 -5
  616. package/dist/session/stats.js +75 -75
  617. package/dist/session/store.js +87 -87
  618. package/dist/session/subagent-completion.js +1 -1
  619. package/dist/session/subagent-job.js +211 -210
  620. package/dist/session/system-prompt.js +5 -5
  621. package/dist/session/title.js +157 -156
  622. package/dist/session/to-session-error.js +111 -111
  623. package/dist/session/transfer.js +221 -220
  624. package/dist/session/usage.js +1 -1
  625. package/dist/session.js +219 -218
  626. package/dist/shell/parse.js +6 -6
  627. package/dist/shell/result.js +1 -1
  628. package/dist/shell/scan.js +1 -1
  629. package/dist/shell/select.js +13 -13
  630. package/dist/shell.js +140 -140
  631. package/dist/skill/discovery.js +4 -4
  632. package/dist/skill/instructions.js +107 -107
  633. package/dist/skill.js +112 -112
  634. package/dist/snapshot.js +93 -93
  635. package/dist/state.js +1 -1
  636. package/dist/tool/html-markdown.js +1 -1
  637. package/dist/tool/http-body.js +1 -1
  638. package/dist/tool/mcp.js +125 -125
  639. package/dist/tool/plugin/edit.js +120 -120
  640. package/dist/tool/plugin/file-diff.js +1 -1
  641. package/dist/tool/plugin/glob.js +122 -122
  642. package/dist/tool/plugin/grep.js +124 -124
  643. package/dist/tool/plugin/mcp-resource.js +116 -116
  644. package/dist/tool/plugin/opencode.js +3 -3
  645. package/dist/tool/plugin/patch.js +122 -122
  646. package/dist/tool/plugin/question.js +103 -103
  647. package/dist/tool/plugin/read.js +125 -125
  648. package/dist/tool/plugin/shell.js +216 -215
  649. package/dist/tool/plugin/skill.js +111 -111
  650. package/dist/tool/plugin/subagent.js +218 -217
  651. package/dist/tool/plugin/webfetch.js +110 -110
  652. package/dist/tool/plugin/websearch.js +110 -110
  653. package/dist/tool/plugin/write.js +122 -122
  654. package/dist/tool/read-filesystem.js +100 -100
  655. package/dist/tool/runtime.js +1 -1
  656. package/dist/tool-output.js +8 -8
  657. package/dist/tool.js +14 -14
  658. package/dist/types/file-access.d.ts +0 -5
  659. package/dist/types/git.d.ts +2 -2
  660. package/dist/types/instructions/builtins.d.ts +1 -2
  661. package/dist/types/location-services.d.ts +0 -1
  662. package/dist/types/location.d.ts +1 -3
  663. package/dist/types/mcp/index.d.ts +0 -12
  664. package/dist/types/project.d.ts +1 -3
  665. package/dist/types/pty/ticket.d.ts +2 -2
  666. package/dist/types/pty.d.ts +11 -6
  667. package/dist/types/session/affinity.d.ts +4 -0
  668. package/dist/types/session/compaction.d.ts +35 -55
  669. package/dist/types/session/diff.d.ts +1 -7
  670. package/dist/types/session/error.d.ts +0 -4
  671. package/dist/types/session/model-request.d.ts +5 -0
  672. package/dist/types/session/revert.d.ts +1 -7
  673. package/dist/types/session/runner/index.d.ts +2 -2
  674. package/dist/types/session/runner/model.d.ts +0 -12
  675. package/dist/types/session/runner/retry.d.ts +2 -7
  676. package/dist/types/session/session.d.ts +1 -7
  677. package/dist/types/snapshot.d.ts +2 -2
  678. package/dist/util/error-summary.js +1 -1
  679. package/dist/util/error.js +1 -1
  680. package/dist/util/git-executable.js +2 -2
  681. package/dist/util/iife.js +1 -1
  682. package/dist/util/lazy.js +1 -1
  683. package/dist/util/slug.js +1 -1
  684. package/dist/util/token.js +1 -1
  685. package/dist/util/which.js +1 -1
  686. package/dist/util/wildcard.js +1 -1
  687. package/dist/v1/config/agent.js +7 -7
  688. package/dist/v1/config/attachment.js +2 -2
  689. package/dist/v1/config/command.js +3 -3
  690. package/dist/v1/config/config.js +16 -16
  691. package/dist/v1/config/error.js +4 -4
  692. package/dist/v1/config/formatter.js +7 -7
  693. package/dist/v1/config/layout.js +1 -1
  694. package/dist/v1/config/lsp.js +5 -5
  695. package/dist/v1/config/mcp.js +4 -4
  696. package/dist/v1/config/migrate.js +92 -92
  697. package/dist/v1/config/permission.js +7 -7
  698. package/dist/v1/config/plugin.js +1 -1
  699. package/dist/v1/config/provider-options.js +1 -1
  700. package/dist/v1/config/provider.js +4 -4
  701. package/dist/v1/config/server.js +2 -2
  702. package/dist/v1/config/skills.js +3 -3
  703. package/dist/v1/permission.js +1 -1
  704. package/dist/variant.js +93 -93
  705. package/dist/vcs/patch.js +1 -1
  706. package/dist/vcs.js +89 -89
  707. package/dist/websearch.js +82 -82
  708. package/dist/wellknown/plugin.js +76 -76
  709. package/dist/wellknown.js +81 -81
  710. package/dist/workspace/driver.js +5 -5
  711. package/dist/workspace/sql.js +1 -1
  712. package/dist/workspace.js +78 -78
  713. package/dist/worktree/directory.js +2 -2
  714. package/dist/worktree/git.js +10 -10
  715. package/dist/worktree/sql.js +5 -5
  716. package/dist/worktree/strategies.js +89 -89
  717. package/dist/worktree.js +98 -98
  718. package/package.json +8 -14
  719. package/dist/chunks/schema-03mttfrd.js +0 -26
  720. package/dist/chunks/schema-0bhmdfn5.js +0 -63
  721. package/dist/chunks/schema-5dggn2va.js +0 -252
  722. package/dist/chunks/schema-6kdq0pjd.js +0 -4
  723. package/dist/chunks/schema-ack3exs3.js +0 -39
  724. package/dist/chunks/schema-mpjr2ekw.js +0 -624
  725. package/dist/chunks/schema-rrxec99e.js +0 -326
  726. package/dist/chunks/schema-v1faaxn9.js +0 -18
  727. package/dist/file.js +0 -16
  728. package/dist/location-mutation.js +0 -118
  729. package/dist/plugin/compaction.js +0 -136
  730. package/dist/pty/schema.js +0 -6
  731. package/dist/types/file.d.ts +0 -9
  732. package/dist/types/location-mutation.d.ts +0 -3
  733. package/dist/types/plugin/compaction.d.ts +0 -3
  734. package/dist/types/pty/schema.d.ts +0 -1
  735. package/dist/types/util/array.d.ts +0 -1
  736. package/dist/types/util/process-lock-ffi.bun.d.ts +0 -12
  737. package/dist/types/util/process-lock-ffi.node.d.ts +0 -12
  738. package/dist/types/util/process-lock-ffi.workerd.d.ts +0 -12
  739. package/dist/types/util/process-lock.d.ts +0 -20
  740. package/dist/util/array.js +0 -12
  741. package/dist/util/process-lock-ffi.bun.js +0 -51
  742. package/dist/util/process-lock-ffi.node.js +0 -44
  743. package/dist/util/process-lock-ffi.workerd.js +0 -10
  744. package/dist/util/process-lock.js +0 -121
  745. /package/dist/chunks/{schema-0qkdqm5v.js → ripgrep-0qkdqm5v.js} +0 -0
  746. /package/dist/chunks/{schema-0zkw76rk.js → ripgrep-0zkw76rk.js} +0 -0
  747. /package/dist/chunks/{schema-17cy0kzp.js → ripgrep-17cy0kzp.js} +0 -0
  748. /package/dist/chunks/{schema-1cnp2v09.js → ripgrep-1cnp2v09.js} +0 -0
  749. /package/dist/chunks/{schema-1kg9ymc8.js → ripgrep-1kg9ymc8.js} +0 -0
  750. /package/dist/chunks/{schema-24dcb14g.js → ripgrep-24dcb14g.js} +0 -0
  751. /package/dist/chunks/{schema-2710q6r3.js → ripgrep-2710q6r3.js} +0 -0
  752. /package/dist/chunks/{schema-2axfhc9x.js → ripgrep-2axfhc9x.js} +0 -0
  753. /package/dist/chunks/{schema-2c3vjs8z.js → ripgrep-2c3vjs8z.js} +0 -0
  754. /package/dist/chunks/{schema-34c7v6d4.js → ripgrep-34c7v6d4.js} +0 -0
  755. /package/dist/chunks/{schema-359p4xyc.js → ripgrep-359p4xyc.js} +0 -0
  756. /package/dist/chunks/{schema-3asan66x.js → ripgrep-3asan66x.js} +0 -0
  757. /package/dist/chunks/{schema-3v8g72cx.js → ripgrep-3v8g72cx.js} +0 -0
  758. /package/dist/chunks/{schema-3w5fmr99.js → ripgrep-3w5fmr99.js} +0 -0
  759. /package/dist/chunks/{schema-3wcehsnq.js → ripgrep-3wcehsnq.js} +0 -0
  760. /package/dist/chunks/{schema-43n2bw4t.js → ripgrep-43n2bw4t.js} +0 -0
  761. /package/dist/chunks/{schema-4knz6hnm.js → ripgrep-4knz6hnm.js} +0 -0
  762. /package/dist/chunks/{schema-4vcrnpx2.js → ripgrep-4vcrnpx2.js} +0 -0
  763. /package/dist/chunks/{schema-4y7fprxs.js → ripgrep-4y7fprxs.js} +0 -0
  764. /package/dist/chunks/{schema-53557ph1.js → ripgrep-53557ph1.js} +0 -0
  765. /package/dist/chunks/{schema-550bvhaj.js → ripgrep-550bvhaj.js} +0 -0
  766. /package/dist/chunks/{schema-6prwharc.js → ripgrep-6prwharc.js} +0 -0
  767. /package/dist/chunks/{schema-7akdwqpd.js → ripgrep-7akdwqpd.js} +0 -0
  768. /package/dist/chunks/{schema-7m9af43g.js → ripgrep-7m9af43g.js} +0 -0
  769. /package/dist/chunks/{schema-822emrt2.js → ripgrep-822emrt2.js} +0 -0
  770. /package/dist/chunks/{schema-88xbtdfr.js → ripgrep-88xbtdfr.js} +0 -0
  771. /package/dist/chunks/{schema-8n3pysct.js → ripgrep-8n3pysct.js} +0 -0
  772. /package/dist/chunks/{schema-8wj87zfr.js → ripgrep-8wj87zfr.js} +0 -0
  773. /package/dist/chunks/{schema-922hggd3.js → ripgrep-922hggd3.js} +0 -0
  774. /package/dist/chunks/{schema-9a4afbnw.js → ripgrep-9a4afbnw.js} +0 -0
  775. /package/dist/chunks/{schema-9rqn6x4v.js → ripgrep-9rqn6x4v.js} +0 -0
  776. /package/dist/chunks/{schema-a6k6eb26.js → ripgrep-a6k6eb26.js} +0 -0
  777. /package/dist/chunks/{schema-af5trqkr.js → ripgrep-af5trqkr.js} +0 -0
  778. /package/dist/chunks/{schema-afrmfg78.js → ripgrep-afrmfg78.js} +0 -0
  779. /package/dist/chunks/{schema-aqzs7mqg.js → ripgrep-aqzs7mqg.js} +0 -0
  780. /package/dist/chunks/{schema-atq7p7m5.js → ripgrep-atq7p7m5.js} +0 -0
  781. /package/dist/chunks/{schema-bkyjaxrp.js → ripgrep-bkyjaxrp.js} +0 -0
  782. /package/dist/chunks/{schema-bmr6ed5q.js → ripgrep-bmr6ed5q.js} +0 -0
  783. /package/dist/chunks/{schema-cf4snx6d.js → ripgrep-cf4snx6d.js} +0 -0
  784. /package/dist/chunks/{schema-cvy3z8tj.js → ripgrep-cvy3z8tj.js} +0 -0
  785. /package/dist/chunks/{schema-d9fn303g.js → ripgrep-d9fn303g.js} +0 -0
  786. /package/dist/chunks/{schema-d9jj8t3e.js → ripgrep-d9jj8t3e.js} +0 -0
  787. /package/dist/chunks/{schema-dajrwvna.js → ripgrep-dajrwvna.js} +0 -0
  788. /package/dist/chunks/{schema-dap0rakb.js → ripgrep-dap0rakb.js} +0 -0
  789. /package/dist/chunks/{schema-df08tz66.js → ripgrep-df08tz66.js} +0 -0
  790. /package/dist/chunks/{schema-dy18nga0.js → ripgrep-dy18nga0.js} +0 -0
  791. /package/dist/chunks/{schema-e5kj55wp.js → ripgrep-e5kj55wp.js} +0 -0
  792. /package/dist/chunks/{schema-e73j6tqm.js → ripgrep-e73j6tqm.js} +0 -0
  793. /package/dist/chunks/{schema-ec1grn59.js → ripgrep-ec1grn59.js} +0 -0
  794. /package/dist/chunks/{schema-eh3zwz77.js → ripgrep-eh3zwz77.js} +0 -0
  795. /package/dist/chunks/{schema-emrn6kk6.js → ripgrep-emrn6kk6.js} +0 -0
  796. /package/dist/chunks/{schema-f0mxakyp.js → ripgrep-f0mxakyp.js} +0 -0
  797. /package/dist/chunks/{schema-f6n9ztr4.js → ripgrep-f6n9ztr4.js} +0 -0
  798. /package/dist/chunks/{schema-faypxj3z.js → ripgrep-faypxj3z.js} +0 -0
  799. /package/dist/chunks/{schema-fd410y7t.js → ripgrep-fd410y7t.js} +0 -0
  800. /package/dist/chunks/{schema-fxgpk5d8.js → ripgrep-fxgpk5d8.js} +0 -0
  801. /package/dist/chunks/{schema-g4wezp1m.js → ripgrep-g4wezp1m.js} +0 -0
  802. /package/dist/chunks/{schema-g86h250q.js → ripgrep-g86h250q.js} +0 -0
  803. /package/dist/chunks/{schema-gebd4c9n.js → ripgrep-gebd4c9n.js} +0 -0
  804. /package/dist/chunks/{schema-gftt206x.js → ripgrep-gftt206x.js} +0 -0
  805. /package/dist/chunks/{schema-hjbc5kem.js → ripgrep-hjbc5kem.js} +0 -0
  806. /package/dist/chunks/{schema-hk9envan.js → ripgrep-hk9envan.js} +0 -0
  807. /package/dist/chunks/{schema-j2ntwpah.js → ripgrep-j2ntwpah.js} +0 -0
  808. /package/dist/chunks/{schema-j5zkgpj8.js → ripgrep-j5zkgpj8.js} +0 -0
  809. /package/dist/chunks/{schema-jjkms2e6.js → ripgrep-jjkms2e6.js} +0 -0
  810. /package/dist/chunks/{schema-jr7sbwjy.js → ripgrep-jr7sbwjy.js} +0 -0
  811. /package/dist/chunks/{schema-jwfs4k6c.js → ripgrep-jwfs4k6c.js} +0 -0
  812. /package/dist/chunks/{schema-jzg6c2d5.js → ripgrep-jzg6c2d5.js} +0 -0
  813. /package/dist/chunks/{schema-mp448xyj.js → ripgrep-mp448xyj.js} +0 -0
  814. /package/dist/chunks/{schema-msx8hqn2.js → ripgrep-msx8hqn2.js} +0 -0
  815. /package/dist/chunks/{schema-n05xt0ee.js → ripgrep-n05xt0ee.js} +0 -0
  816. /package/dist/chunks/{schema-n3j8tn72.js → ripgrep-n3j8tn72.js} +0 -0
  817. /package/dist/chunks/{schema-njntx4h6.js → ripgrep-njntx4h6.js} +0 -0
  818. /package/dist/chunks/{schema-q3sfg36h.js → ripgrep-q3sfg36h.js} +0 -0
  819. /package/dist/chunks/{schema-q74kybfr.js → ripgrep-q74kybfr.js} +0 -0
  820. /package/dist/chunks/{schema-qaymkmh1.js → ripgrep-qaymkmh1.js} +0 -0
  821. /package/dist/chunks/{schema-qb87gjwd.js → ripgrep-qb87gjwd.js} +0 -0
  822. /package/dist/chunks/{schema-qfa1cgps.js → ripgrep-qfa1cgps.js} +0 -0
  823. /package/dist/chunks/{schema-qg3g05ea.js → ripgrep-qg3g05ea.js} +0 -0
  824. /package/dist/chunks/{schema-qrg20bc0.js → ripgrep-qrg20bc0.js} +0 -0
  825. /package/dist/chunks/{schema-rcb2kzg1.js → ripgrep-rcb2kzg1.js} +0 -0
  826. /package/dist/chunks/{schema-sdp7kfr6.js → ripgrep-sdp7kfr6.js} +0 -0
  827. /package/dist/chunks/{schema-sk3qaz4a.js → ripgrep-sk3qaz4a.js} +0 -0
  828. /package/dist/chunks/{schema-ssg3fenm.js → ripgrep-ssg3fenm.js} +0 -0
  829. /package/dist/chunks/{schema-w803qqfp.js → ripgrep-w803qqfp.js} +0 -0
  830. /package/dist/chunks/{schema-wc3fc9cn.js → ripgrep-wc3fc9cn.js} +0 -0
  831. /package/dist/chunks/{schema-wer8tq1h.js → ripgrep-wer8tq1h.js} +0 -0
  832. /package/dist/chunks/{schema-wtztk69x.js → ripgrep-wtztk69x.js} +0 -0
  833. /package/dist/chunks/{schema-x0ckcb58.js → ripgrep-x0ckcb58.js} +0 -0
  834. /package/dist/chunks/{schema-x61499pn.js → ripgrep-x61499pn.js} +0 -0
  835. /package/dist/chunks/{schema-y44na4kk.js → ripgrep-y44na4kk.js} +0 -0
  836. /package/dist/chunks/{schema-y8cydn3q.js → ripgrep-y8cydn3q.js} +0 -0
  837. /package/dist/chunks/{schema-y8f7s663.js → ripgrep-y8f7s663.js} +0 -0
  838. /package/dist/chunks/{schema-ygaqb7jw.js → ripgrep-ygaqb7jw.js} +0 -0
  839. /package/dist/chunks/{schema-ym463w8f.js → ripgrep-ym463w8f.js} +0 -0
  840. /package/dist/chunks/{schema-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 };