@qitqode/qitqode-android-arm64 0.1.33 → 0.1.35

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 (386) hide show
  1. package/bundle/{chunk-x4sp99g6.js → chunk-03xppy47.js} +1 -1
  2. package/bundle/chunk-0442cmw2.js +2 -0
  3. package/bundle/{chunk-2vn41ecx.js → chunk-04hvaaje.js} +1 -1
  4. package/bundle/{chunk-6phh70sp.js → chunk-06k6egt2.js} +1 -1
  5. package/bundle/{chunk-x5trw1f5.js → chunk-085pvqr4.js} +1 -1
  6. package/bundle/{chunk-8n20thvd.js → chunk-08f4khsw.js} +2 -2
  7. package/bundle/{chunk-mk1bfzg5.js → chunk-08m0hkdz.js} +1 -1
  8. package/bundle/{chunk-kfxv5rfg.js → chunk-09pkckr1.js} +1 -1
  9. package/bundle/{chunk-6kp07m7p.js → chunk-0c6ep9mc.js} +1 -1
  10. package/bundle/{chunk-0v0vqbn5.js → chunk-0h8wdch6.js} +1 -1
  11. package/bundle/{chunk-t56r99hp.js → chunk-0msqaywp.js} +1 -1
  12. package/bundle/chunk-0x5jn813.js +2 -0
  13. package/bundle/{chunk-yphsjp71.js → chunk-11g2rpv8.js} +1 -1
  14. package/bundle/{chunk-vhe0tth1.js → chunk-11v7vz3y.js} +1 -1
  15. package/bundle/{chunk-1sgahe1s.js → chunk-1byd3wma.js} +1 -1
  16. package/bundle/{chunk-x3y2xzhn.js → chunk-1dtzxt2w.js} +1 -1
  17. package/bundle/{chunk-31qrzrwy.js → chunk-1gf116rg.js} +1 -1
  18. package/bundle/{chunk-05mce0j3.js → chunk-1me21qdc.js} +1 -1
  19. package/bundle/{chunk-rvkrgkeq.js → chunk-1pg6pv0m.js} +1 -1
  20. package/bundle/{chunk-0bbs01f0.js → chunk-1yt5rsew.js} +1 -1
  21. package/bundle/chunk-28t9akfn.js +2 -0
  22. package/bundle/{chunk-52bam8g7.js → chunk-2h1fcqvf.js} +1 -1
  23. package/bundle/{chunk-vykgpaqt.js → chunk-2kens6wh.js} +1 -1
  24. package/bundle/chunk-2scyp9ns.js +2 -0
  25. package/bundle/{chunk-hbbsbyyq.js → chunk-2swch6mx.js} +1 -1
  26. package/bundle/chunk-2tw58kwb.js +2 -0
  27. package/bundle/chunk-2vxx0tax.js +2 -0
  28. package/bundle/chunk-2ybt3p5z.js +2 -0
  29. package/bundle/chunk-2zpkw3ge.js +2 -0
  30. package/bundle/{chunk-zzv0yayn.js → chunk-31g86yn6.js} +1 -1
  31. package/bundle/{chunk-xthkjax9.js → chunk-34p46th6.js} +1 -1
  32. package/bundle/chunk-397be2x0.js +2 -0
  33. package/bundle/chunk-3c78nkgn.js +2 -0
  34. package/bundle/{chunk-g453xy7p.js → chunk-3d91q2qd.js} +1 -1
  35. package/bundle/{chunk-7xm75w1e.js → chunk-3k2b05fv.js} +1 -1
  36. package/bundle/{chunk-tvdmnee6.js → chunk-3mzcr3fw.js} +1 -1
  37. package/bundle/{chunk-enpzvmtc.js → chunk-41v0x1jk.js} +1 -1
  38. package/bundle/chunk-43yv7tz1.js +2 -0
  39. package/bundle/chunk-496ajawz.js +2 -0
  40. package/bundle/{chunk-78ymd20x.js → chunk-499gp5g5.js} +1 -1
  41. package/bundle/{chunk-ea5ph627.js → chunk-4hzm14xt.js} +1 -1
  42. package/bundle/{chunk-rzhdkkpz.js → chunk-4ttf9rjd.js} +1 -1
  43. package/bundle/{chunk-vywnd5sf.js → chunk-4wxxyrxn.js} +1 -1
  44. package/bundle/chunk-4xw14sed.js +2 -0
  45. package/bundle/chunk-536naqqv.js +2 -0
  46. package/bundle/{chunk-0h6rn479.js → chunk-54wh8b12.js} +1 -1
  47. package/bundle/chunk-57nvmhjq.js +2 -0
  48. package/bundle/{chunk-60v5jvgt.js → chunk-5a7fs1hg.js} +1 -1
  49. package/bundle/{chunk-tc18nbmn.js → chunk-5e4fxy99.js} +44 -44
  50. package/bundle/chunk-5he3d7cy.js +2 -0
  51. package/bundle/{chunk-r1zf109g.js → chunk-5qr286w8.js} +1 -1
  52. package/bundle/{chunk-srt5peec.js → chunk-606vpgc4.js} +1 -1
  53. package/bundle/{chunk-gwp17r03.js → chunk-67d5d8mr.js} +1 -1
  54. package/bundle/{chunk-gxq9vh1z.js → chunk-6a1skxcj.js} +1 -1
  55. package/bundle/{chunk-ftnadrks.js → chunk-6a77w77q.js} +1 -1
  56. package/bundle/{chunk-yek0sk2q.js → chunk-6a7c7wnf.js} +1 -1
  57. package/bundle/chunk-6cj7cn5x.js +2 -0
  58. package/bundle/{chunk-fgg9txzb.js → chunk-6gb65bv1.js} +1 -1
  59. package/bundle/{chunk-rh9vnpgr.js → chunk-6ged58yw.js} +1 -1
  60. package/bundle/chunk-6hybp2mt.js +2 -0
  61. package/bundle/{chunk-d6ry9418.js → chunk-6p94fpbn.js} +2 -2
  62. package/bundle/{chunk-xcmgkc57.js → chunk-6styp5dn.js} +1 -1
  63. package/bundle/chunk-6y423jax.js +3 -0
  64. package/bundle/{chunk-ejrhvy38.js → chunk-6ynxf3q7.js} +1 -1
  65. package/bundle/{chunk-cfgvm15x.js → chunk-71zw0qhf.js} +1 -1
  66. package/bundle/chunk-72ghkgcn.js +2 -0
  67. package/bundle/{chunk-bh53dz71.js → chunk-7311jry1.js} +1 -1
  68. package/bundle/{chunk-d07p6fpk.js → chunk-73myw3bj.js} +2 -2
  69. package/bundle/chunk-741teh8k.js +2 -0
  70. package/bundle/{chunk-10bjs581.js → chunk-79agp7v3.js} +2 -2
  71. package/bundle/chunk-7b3wx6kn.js +2 -0
  72. package/bundle/{chunk-40efytmk.js → chunk-7eexey82.js} +1 -1
  73. package/bundle/{chunk-33e9y2aw.js → chunk-7mxt5b0h.js} +1 -1
  74. package/bundle/{chunk-yjf3kyej.js → chunk-7vd91wsd.js} +1 -1
  75. package/bundle/{chunk-nv3eyyaj.js → chunk-81trveht.js} +1 -1
  76. package/bundle/{chunk-dnwefyhv.js → chunk-8762ty72.js} +1 -1
  77. package/bundle/{chunk-qc8rsn4v.js → chunk-891yevv2.js} +1 -1
  78. package/bundle/{chunk-ctpy42xe.js → chunk-8c1ypgw5.js} +1 -1
  79. package/bundle/{chunk-8qswepp2.js → chunk-8ktgy41r.js} +1 -1
  80. package/bundle/{chunk-w18xs2h5.js → chunk-8q73cjyj.js} +1 -1
  81. package/bundle/chunk-8rt63jbm.js +2 -0
  82. package/bundle/{chunk-481k3dag.js → chunk-8vg4fmg2.js} +20 -20
  83. package/bundle/chunk-8y623qdx.js +2 -0
  84. package/bundle/chunk-921vn745.js +2 -0
  85. package/bundle/chunk-945ebhte.js +2 -0
  86. package/bundle/{chunk-4jtxtkj7.js → chunk-94pcpztx.js} +2 -2
  87. package/bundle/chunk-9548cc0c.js +2 -0
  88. package/bundle/{chunk-ff8nb7b3.js → chunk-9ayxg9mq.js} +1 -1
  89. package/bundle/{chunk-a7amey9s.js → chunk-9fxkh84w.js} +1 -1
  90. package/bundle/{chunk-8hytwgwf.js → chunk-9qdr9t8c.js} +1 -1
  91. package/bundle/{chunk-gt31468k.js → chunk-9x25d115.js} +1 -1
  92. package/bundle/{chunk-s08qccxa.js → chunk-9yrypq1r.js} +1 -1
  93. package/bundle/{chunk-zs8kqdsf.js → chunk-a0rp7gh4.js} +2 -2
  94. package/bundle/chunk-a1hzeejj.js +5 -0
  95. package/bundle/{chunk-tq0239xp.js → chunk-a3a1trap.js} +1 -1
  96. package/bundle/{chunk-n9xns8by.js → chunk-a48t0g95.js} +2 -2
  97. package/bundle/{chunk-d8dsdcb3.js → chunk-a949at1c.js} +1 -1
  98. package/bundle/{chunk-n1600mnf.js → chunk-aa8hymcv.js} +1 -1
  99. package/bundle/chunk-akk84fnc.js +2 -0
  100. package/bundle/chunk-aw7j7brm.js +2 -0
  101. package/bundle/{chunk-e1w70zdn.js → chunk-axdzm75h.js} +2 -2
  102. package/bundle/{chunk-js1n8tgv.js → chunk-azhw650z.js} +1 -1
  103. package/bundle/{chunk-t8m74g39.js → chunk-b4knxpqh.js} +1 -1
  104. package/bundle/{chunk-a1kazz9r.js → chunk-b6cybdj3.js} +1 -1
  105. package/bundle/{chunk-jef04wyf.js → chunk-ba3h1pzs.js} +1 -1
  106. package/bundle/{chunk-71xz70r9.js → chunk-bbzztav6.js} +1 -1
  107. package/bundle/{chunk-dactgryw.js → chunk-bj00xk8k.js} +1 -1
  108. package/bundle/{chunk-cxnfy6qk.js → chunk-bk4phk66.js} +1 -1
  109. package/bundle/{chunk-e01wnqvc.js → chunk-bnss5dkk.js} +1 -1
  110. package/bundle/{chunk-fvzwbjh8.js → chunk-bv29k2pf.js} +1 -1
  111. package/bundle/{chunk-v1xjc3s8.js → chunk-by855es0.js} +1 -1
  112. package/bundle/{chunk-zy9w1vkc.js → chunk-c5fa8cb1.js} +1 -1
  113. package/bundle/{chunk-x9rbv6p6.js → chunk-c5pb87yf.js} +1 -1
  114. package/bundle/{chunk-ck2gfaba.js → chunk-c6vfwjg4.js} +1 -1
  115. package/bundle/{chunk-2et3wkjy.js → chunk-ca4r31we.js} +1 -1
  116. package/bundle/chunk-ckbwdrm3.js +2 -0
  117. package/bundle/{chunk-a3aqmm3x.js → chunk-cqj21rfj.js} +1 -1
  118. package/bundle/{chunk-3632wgg1.js → chunk-cs38g1bx.js} +1 -1
  119. package/bundle/{chunk-53bqcctj.js → chunk-cz3h5n1v.js} +1 -1
  120. package/bundle/{chunk-rg0mrprz.js → chunk-d00c1k9w.js} +1 -1
  121. package/bundle/{chunk-p18axz0m.js → chunk-dcndy4sr.js} +1 -1
  122. package/bundle/{chunk-e7ny0b3x.js → chunk-dctj3c22.js} +1 -1
  123. package/bundle/{chunk-vvxmwyrw.js → chunk-df2aswz3.js} +1 -1
  124. package/bundle/{chunk-skqbaadf.js → chunk-dffhkd30.js} +1 -1
  125. package/bundle/chunk-dhc6e1t7.js +2 -0
  126. package/bundle/{chunk-pe29yy6s.js → chunk-dhqaqeq6.js} +1 -1
  127. package/bundle/chunk-dk6rbqvp.js +2 -0
  128. package/bundle/{chunk-te47zdxd.js → chunk-dk975etf.js} +2 -2
  129. package/bundle/chunk-dwajajaq.js +2 -0
  130. package/bundle/{chunk-dryzt12j.js → chunk-dxcrggvq.js} +1 -1
  131. package/bundle/chunk-dyt3n3fe.js +2 -0
  132. package/bundle/{chunk-fn9h4ync.js → chunk-dyv2hqvc.js} +1 -1
  133. package/bundle/{chunk-93p131d5.js → chunk-e6xnynaz.js} +1 -1
  134. package/bundle/{chunk-wefez1gt.js → chunk-e74efvj2.js} +6 -6
  135. package/bundle/chunk-e7ah0e61.js +2 -0
  136. package/bundle/{chunk-tqj69nh6.js → chunk-e7v9trve.js} +2 -2
  137. package/bundle/chunk-e8ws454m.js +2 -0
  138. package/bundle/{chunk-chpr8ekb.js → chunk-ebcdxmdd.js} +1 -1
  139. package/bundle/{chunk-zw815d68.js → chunk-ee23d2nz.js} +2 -2
  140. package/bundle/chunk-efndtzby.js +2 -0
  141. package/bundle/{chunk-gb00fh4z.js → chunk-egn55fa2.js} +3 -3
  142. package/bundle/chunk-eq2pepce.js +2 -0
  143. package/bundle/{chunk-rryytkmg.js → chunk-er38zew1.js} +2 -2
  144. package/bundle/{chunk-mpkvpn2y.js → chunk-eva3nqqb.js} +2 -2
  145. package/bundle/{chunk-s2x0rqj4.js → chunk-exmw8jfa.js} +1 -1
  146. package/bundle/{chunk-famryv52.js → chunk-f3bnn9rf.js} +2 -2
  147. package/bundle/chunk-f693s9vn.js +2 -0
  148. package/bundle/{chunk-0dt0bxz6.js → chunk-fg35hwa0.js} +2 -2
  149. package/bundle/{chunk-ktzq4ha1.js → chunk-fmq0m4k5.js} +1 -1
  150. package/bundle/chunk-ftepqwyq.js +2 -0
  151. package/bundle/chunk-g18ax6yp.js +2 -0
  152. package/bundle/{chunk-jh0bw59r.js → chunk-g4gjz7sq.js} +1 -1
  153. package/bundle/{chunk-g5rabwre.js → chunk-g6cyhxwg.js} +2 -2
  154. package/bundle/chunk-gadyp6mb.js +2 -0
  155. package/bundle/{chunk-q6pn67ps.js → chunk-gckgaqqr.js} +1 -1
  156. package/bundle/{chunk-fgzk49cr.js → chunk-ge8315te.js} +1 -1
  157. package/bundle/{chunk-a1wdeapb.js → chunk-ggydr1ze.js} +1 -1
  158. package/bundle/chunk-gk28ffhg.js +2 -0
  159. package/bundle/{chunk-c11d28qn.js → chunk-gmzrvxnv.js} +2 -2
  160. package/bundle/chunk-gpfc4z4v.js +2 -0
  161. package/bundle/chunk-gqvg02zp.js +2 -0
  162. package/bundle/chunk-gsyt2sv7.js +2 -0
  163. package/bundle/{chunk-3c6p8tm3.js → chunk-gws1rn1v.js} +1 -1
  164. package/bundle/{chunk-hnzegjgv.js → chunk-gy0wm7e1.js} +1 -1
  165. package/bundle/{chunk-pp2eqkse.js → chunk-h3k1dk9m.js} +1 -1
  166. package/bundle/chunk-h8c3dcqt.js +2 -0
  167. package/bundle/chunk-hfq11w4h.js +2 -0
  168. package/bundle/{chunk-01my2y0c.js → chunk-hj3ddt53.js} +1 -1
  169. package/bundle/{chunk-rzt0ge3t.js → chunk-hv6eccx1.js} +4 -4
  170. package/bundle/{chunk-ay8emwym.js → chunk-hw5qyht3.js} +1 -1
  171. package/bundle/chunk-hwf58w1k.js +2 -0
  172. package/bundle/{chunk-kq6b222y.js → chunk-jgjnz82k.js} +1 -1
  173. package/bundle/{chunk-wfb608qf.js → chunk-jkh6eg7d.js} +3 -3
  174. package/bundle/{chunk-5gmjtmc4.js → chunk-jyczz3yh.js} +2 -2
  175. package/bundle/{chunk-np50azpb.js → chunk-k8k8z6b7.js} +2 -2
  176. package/bundle/{chunk-6hpgb8h4.js → chunk-ke7n9t5p.js} +3 -3
  177. package/bundle/{chunk-vcw00k0n.js → chunk-keveg5gx.js} +2 -2
  178. package/bundle/{chunk-dxpj0cxh.js → chunk-kfmz2p27.js} +2 -2
  179. package/bundle/{chunk-xm7wascx.js → chunk-kjyw00jp.js} +1 -1
  180. package/bundle/chunk-kk3ve911.js +2 -0
  181. package/bundle/{chunk-gsar6xda.js → chunk-kmcsz8yv.js} +1 -1
  182. package/bundle/{chunk-4cnwn1rh.js → chunk-kv72hxkp.js} +2 -2
  183. package/bundle/{chunk-kj20f048.js → chunk-kwx9ewe0.js} +1 -1
  184. package/bundle/chunk-m4j7jyrd.js +3 -0
  185. package/bundle/{chunk-5hw6xa49.js → chunk-md8161zd.js} +1 -1
  186. package/bundle/{chunk-xzrb857v.js → chunk-mex0fe9s.js} +1 -1
  187. package/bundle/{chunk-ctaze2hn.js → chunk-mf3sm0pk.js} +1 -1
  188. package/bundle/chunk-mkng9ykt.js +2 -0
  189. package/bundle/{chunk-mzs2pjyc.js → chunk-mpygdb5a.js} +2 -2
  190. package/bundle/{chunk-81qwdg5s.js → chunk-mq6jn47r.js} +1 -1
  191. package/bundle/{chunk-yp8wyzzm.js → chunk-mr8j7rc6.js} +1 -1
  192. package/bundle/{chunk-48nm6v8b.js → chunk-mxvypy3s.js} +1 -1
  193. package/bundle/chunk-n5ypgxrn.js +28 -0
  194. package/bundle/{chunk-h4j5xzc8.js → chunk-n6gtdx5h.js} +1 -1
  195. package/bundle/{chunk-h2afsbm1.js → chunk-n6msxne8.js} +1 -1
  196. package/bundle/{chunk-jbx3s7nw.js → chunk-n96tvjgj.js} +2 -2
  197. package/bundle/{chunk-ftas05da.js → chunk-n9xw9kqc.js} +1 -1
  198. package/bundle/{chunk-v7w4nfn7.js → chunk-nc4wbc89.js} +1 -1
  199. package/bundle/{chunk-9f1z9xce.js → chunk-ngccf7ga.js} +1 -1
  200. package/bundle/{chunk-2bn2b29j.js → chunk-ngk67rt3.js} +1 -1
  201. package/bundle/{chunk-0t4324w5.js → chunk-nj2bbtmx.js} +1 -1
  202. package/bundle/chunk-nj4d554m.js +11 -0
  203. package/bundle/{chunk-dynv30gm.js → chunk-nj61v4n7.js} +1 -1
  204. package/bundle/{chunk-12vef2pr.js → chunk-nkk4fyqf.js} +1 -1
  205. package/bundle/{chunk-gbpvs0fx.js → chunk-nmehsm3w.js} +1 -1
  206. package/bundle/chunk-nr1g57b2.js +2 -0
  207. package/bundle/chunk-p0ahbpxv.js +2 -0
  208. package/bundle/{chunk-73e409hd.js → chunk-p3qkexpk.js} +1 -1
  209. package/bundle/chunk-p7y8z5rd.js +2 -0
  210. package/bundle/{chunk-yhbcbjfk.js → chunk-p825vsjy.js} +1 -1
  211. package/bundle/{chunk-rbk8seme.js → chunk-p9cnzxb8.js} +1 -1
  212. package/bundle/{chunk-15hw2z9t.js → chunk-pkc4ddw1.js} +1 -1
  213. package/bundle/{chunk-1gx18dm5.js → chunk-prh3c44x.js} +1 -1
  214. package/bundle/chunk-pt26gerr.js +2 -0
  215. package/bundle/{chunk-zscer8rc.js → chunk-pxmhe36r.js} +1 -1
  216. package/bundle/{chunk-g7ccdh7r.js → chunk-q8hd01j7.js} +1 -1
  217. package/bundle/{chunk-e10py6yr.js → chunk-qa2j0qmy.js} +1 -1
  218. package/bundle/{chunk-g10d6x57.js → chunk-qddt2gcs.js} +1 -1
  219. package/bundle/{chunk-y3b4k38p.js → chunk-qg2vk5fw.js} +1 -1
  220. package/bundle/{chunk-7z5jh4ra.js → chunk-qkjdr337.js} +1 -1
  221. package/bundle/chunk-qkk1as5n.js +2 -0
  222. package/bundle/{chunk-5q4harvc.js → chunk-qrtc3etn.js} +2 -2
  223. package/bundle/chunk-qsm9xw87.js +2 -0
  224. package/bundle/chunk-qw980y8h.js +2 -0
  225. package/bundle/{chunk-7avcnwv8.js → chunk-qzj6027k.js} +1 -1
  226. package/bundle/{chunk-70ck4v3t.js → chunk-r0k21apr.js} +1 -1
  227. package/bundle/chunk-r2w3gr8d.js +2 -0
  228. package/bundle/chunk-r5bqcpkz.js +2 -0
  229. package/bundle/chunk-r67c858b.js +2 -0
  230. package/bundle/chunk-r9fvfkee.js +2 -0
  231. package/bundle/chunk-rcn0dhbj.js +2 -0
  232. package/bundle/{chunk-69nzndk7.js → chunk-rkwrjphh.js} +1 -1
  233. package/bundle/{chunk-0mx2psfc.js → chunk-rmve21dh.js} +1 -1
  234. package/bundle/chunk-rq47pn3r.js +2 -0
  235. package/bundle/{chunk-b8gjz6bk.js → chunk-rq4w0by4.js} +1 -1
  236. package/bundle/{chunk-jrqb0jwy.js → chunk-rsszcqxd.js} +1 -1
  237. package/bundle/{chunk-xvwvd4kq.js → chunk-rv1stdvb.js} +1 -1
  238. package/bundle/chunk-rvt1tdy8.js +2 -0
  239. package/bundle/{chunk-3bxg5bta.js → chunk-ry7q8xn6.js} +1 -1
  240. package/bundle/{chunk-rjd8gbs5.js → chunk-ryfqwsft.js} +1 -1
  241. package/bundle/chunk-s27xvrft.js +2 -0
  242. package/bundle/{chunk-p9qfbr02.js → chunk-s4qtphwx.js} +1 -1
  243. package/bundle/{chunk-4fgzp2zd.js → chunk-s5nde2kd.js} +1 -1
  244. package/bundle/{chunk-qrsveve6.js → chunk-s8hq6trz.js} +1 -1
  245. package/bundle/chunk-scy39p6q.js +2 -0
  246. package/bundle/{chunk-71sjjjr8.js → chunk-seghf5fc.js} +1 -1
  247. package/bundle/{chunk-2zq4k837.js → chunk-sfes6pp1.js} +1 -1
  248. package/bundle/{chunk-qn6gdhns.js → chunk-sjw56r2n.js} +2 -2
  249. package/bundle/{chunk-htz93dsd.js → chunk-snr44en9.js} +2 -2
  250. package/bundle/{chunk-pfyhg0m7.js → chunk-srpe3v8e.js} +1 -1
  251. package/bundle/{chunk-cphrgyp6.js → chunk-ssk8tkwd.js} +1 -1
  252. package/bundle/{chunk-ccmbckek.js → chunk-st5jaszz.js} +1 -1
  253. package/bundle/{chunk-mrt1z4m8.js → chunk-t2vm08v6.js} +1 -1
  254. package/bundle/{chunk-vrc0h1q7.js → chunk-t3eymzg1.js} +1 -1
  255. package/bundle/{chunk-yv0xrnn9.js → chunk-t5qamf96.js} +1 -1
  256. package/bundle/{chunk-xn70ep9n.js → chunk-tbgczapt.js} +1 -1
  257. package/bundle/chunk-tns5x4w0.js +3 -0
  258. package/bundle/chunk-ttevj0pj.js +2 -0
  259. package/bundle/{chunk-rvfvk2ty.js → chunk-txbwmwxj.js} +1 -1
  260. package/bundle/chunk-v7c54cyj.js +2 -0
  261. package/bundle/chunk-vgefaens.js +2 -0
  262. package/bundle/{chunk-24jg9d61.js → chunk-vsr8mnj6.js} +1 -1
  263. package/bundle/{chunk-6d5rrre9.js → chunk-vszbqv24.js} +1 -1
  264. package/bundle/chunk-vv59b4re.js +2 -0
  265. package/bundle/chunk-vwqy7n3g.js +2 -0
  266. package/bundle/{chunk-n6wt9m2k.js → chunk-vysa9hp4.js} +1 -1
  267. package/bundle/{chunk-a1g7jr3r.js → chunk-w1n4rf6n.js} +1 -1
  268. package/bundle/{chunk-gagtmjmp.js → chunk-wfd5h6ax.js} +2 -2
  269. package/bundle/{chunk-ht5w06x7.js → chunk-wgk7ynt3.js} +2 -2
  270. package/bundle/chunk-wn076jwj.js +2 -0
  271. package/bundle/{chunk-35xk4g91.js → chunk-wvf5q2hz.js} +1 -1
  272. package/bundle/chunk-x0m1qye9.js +2 -0
  273. package/bundle/{chunk-p62gb4wj.js → chunk-x66ycpfs.js} +1 -1
  274. package/bundle/{chunk-48ge2ryx.js → chunk-xgr6jnd6.js} +1 -1
  275. package/bundle/{chunk-2hc5z7b5.js → chunk-xqdrr7xg.js} +1 -1
  276. package/bundle/{chunk-bnap670d.js → chunk-xvntsbb1.js} +1 -1
  277. package/bundle/{chunk-ss2ms1r3.js → chunk-y437vyza.js} +1 -1
  278. package/bundle/chunk-y70aachh.js +2 -0
  279. package/bundle/{chunk-db405hjg.js → chunk-y9zstzed.js} +1 -1
  280. package/bundle/{chunk-pp6vhqrr.js → chunk-yjk6zv2z.js} +1 -1
  281. package/bundle/{chunk-326p5b10.js → chunk-yk97q51d.js} +1 -1
  282. package/bundle/{chunk-kf167jw7.js → chunk-ynwkr3yh.js} +1 -1
  283. package/bundle/{chunk-9bzhxenb.js → chunk-yprmd5b7.js} +2 -2
  284. package/bundle/{chunk-y9q0hb7b.js → chunk-yqk58hf6.js} +2 -2
  285. package/bundle/chunk-ysgxt83y.js +2 -0
  286. package/bundle/{chunk-tt30dybd.js → chunk-yz6898wy.js} +1 -1
  287. package/bundle/{chunk-x562b0xk.js → chunk-z1ay3qd0.js} +1 -1
  288. package/bundle/{chunk-9emq67vc.js → chunk-z7430qxg.js} +1 -1
  289. package/bundle/{chunk-2maqde7w.js → chunk-z8gdmvgg.js} +2 -2
  290. package/bundle/{chunk-3bssxmtg.js → chunk-zddknkw7.js} +1 -1
  291. package/bundle/chunk-ze9e6nt3.js +3 -0
  292. package/bundle/{chunk-vxyy2dp3.js → chunk-zfcp509b.js} +1 -1
  293. package/bundle/{chunk-x7k5yeey.js → chunk-zfn0z4sh.js} +1 -1
  294. package/bundle/{chunk-ag8kz1e7.js → chunk-zh3fny3z.js} +2 -2
  295. package/bundle/{chunk-9k6hz80e.js → chunk-znzan00b.js} +1 -1
  296. package/bundle/chunk-zrp55k47.js +2 -0
  297. package/bundle/chunk-zwdnh860.js +2 -0
  298. package/bundle/{chunk-1vb79bw1.js → chunk-zwnhf4z1.js} +1 -1
  299. package/bundle/index.js +3 -3
  300. package/bundle/parser.worker.js +2 -2
  301. package/bundle/worker.js +1 -1
  302. package/package.json +1 -1
  303. package/bundle/chunk-0e1vkdze.js +0 -2
  304. package/bundle/chunk-0p27fvfr.js +0 -2
  305. package/bundle/chunk-0qs1vx97.js +0 -2
  306. package/bundle/chunk-18bj8z8m.js +0 -28
  307. package/bundle/chunk-19g6dhva.js +0 -2
  308. package/bundle/chunk-1ap7sh2c.js +0 -2
  309. package/bundle/chunk-1rhhhm88.js +0 -2
  310. package/bundle/chunk-1wbjh23g.js +0 -2
  311. package/bundle/chunk-3dadmgxa.js +0 -2
  312. package/bundle/chunk-42p59wm4.js +0 -2
  313. package/bundle/chunk-43xt69m8.js +0 -2
  314. package/bundle/chunk-4512pvca.js +0 -2
  315. package/bundle/chunk-456bmaww.js +0 -2
  316. package/bundle/chunk-48pajrnt.js +0 -2
  317. package/bundle/chunk-4fy9c54h.js +0 -2
  318. package/bundle/chunk-4m5yesw8.js +0 -2
  319. package/bundle/chunk-59y8q9m5.js +0 -2
  320. package/bundle/chunk-5tray1fw.js +0 -3
  321. package/bundle/chunk-5v6b8mr6.js +0 -2
  322. package/bundle/chunk-64ezpbwt.js +0 -2
  323. package/bundle/chunk-6r7z94e6.js +0 -3
  324. package/bundle/chunk-711dc303.js +0 -5
  325. package/bundle/chunk-7mke41x0.js +0 -2
  326. package/bundle/chunk-7ry9cvby.js +0 -2
  327. package/bundle/chunk-7wczs9mx.js +0 -2
  328. package/bundle/chunk-8v96pmqn.js +0 -2
  329. package/bundle/chunk-8y2scz6z.js +0 -2
  330. package/bundle/chunk-8zx7vnx6.js +0 -2
  331. package/bundle/chunk-94a76f8w.js +0 -2
  332. package/bundle/chunk-9ng7jjp7.js +0 -2
  333. package/bundle/chunk-9tpgnjy8.js +0 -2
  334. package/bundle/chunk-a7ym9f0v.js +0 -2
  335. package/bundle/chunk-a8f2xvy3.js +0 -2
  336. package/bundle/chunk-a99cvwta.js +0 -2
  337. package/bundle/chunk-aecc391x.js +0 -2
  338. package/bundle/chunk-avys5mnz.js +0 -2
  339. package/bundle/chunk-axvjd10y.js +0 -2
  340. package/bundle/chunk-b4pphqab.js +0 -2
  341. package/bundle/chunk-b6087ak4.js +0 -2
  342. package/bundle/chunk-bdd97g5y.js +0 -2
  343. package/bundle/chunk-bn0h9dny.js +0 -10
  344. package/bundle/chunk-bnmz683j.js +0 -2
  345. package/bundle/chunk-brkqxbjy.js +0 -2
  346. package/bundle/chunk-c26qxt5g.js +0 -2
  347. package/bundle/chunk-c6zscb38.js +0 -2
  348. package/bundle/chunk-cjww2jmv.js +0 -3
  349. package/bundle/chunk-d2ttw3wf.js +0 -2
  350. package/bundle/chunk-dafmkrhn.js +0 -2
  351. package/bundle/chunk-dgprdym0.js +0 -2
  352. package/bundle/chunk-dsamees2.js +0 -2
  353. package/bundle/chunk-dxje3azs.js +0 -2
  354. package/bundle/chunk-dyqpxx3b.js +0 -2
  355. package/bundle/chunk-etvs6a6y.js +0 -2
  356. package/bundle/chunk-ftn49yn1.js +0 -2
  357. package/bundle/chunk-gwzw92jt.js +0 -2
  358. package/bundle/chunk-hdrbyarv.js +0 -3
  359. package/bundle/chunk-hkqnqw3x.js +0 -2
  360. package/bundle/chunk-hp7tssgv.js +0 -2
  361. package/bundle/chunk-ht0hbdmx.js +0 -2
  362. package/bundle/chunk-m1s19p9n.js +0 -2
  363. package/bundle/chunk-ngm6pqyt.js +0 -2
  364. package/bundle/chunk-ngtavamt.js +0 -2
  365. package/bundle/chunk-nkhc32s3.js +0 -2
  366. package/bundle/chunk-npse2xrd.js +0 -2
  367. package/bundle/chunk-p3pemdns.js +0 -2
  368. package/bundle/chunk-p6e4vqy7.js +0 -2
  369. package/bundle/chunk-pqkjhn8h.js +0 -2
  370. package/bundle/chunk-qd8w2gkd.js +0 -2
  371. package/bundle/chunk-rbbw7bs0.js +0 -2
  372. package/bundle/chunk-rf12t4n5.js +0 -2
  373. package/bundle/chunk-rpgne7xh.js +0 -2
  374. package/bundle/chunk-rvgj1vky.js +0 -2
  375. package/bundle/chunk-ss2jvqrg.js +0 -2
  376. package/bundle/chunk-tt9smgmg.js +0 -2
  377. package/bundle/chunk-tvwwq4b3.js +0 -2
  378. package/bundle/chunk-v2n26eg4.js +0 -2
  379. package/bundle/chunk-v7ezt8k3.js +0 -2
  380. package/bundle/chunk-vqg5q96v.js +0 -2
  381. package/bundle/chunk-x24y7qyd.js +0 -2
  382. package/bundle/chunk-y2d0w09y.js +0 -2
  383. package/bundle/chunk-yb79f79m.js +0 -2
  384. package/bundle/chunk-yjnyzpmt.js +0 -2
  385. package/bundle/chunk-yqbcnsa1.js +0 -2
  386. package/bundle/chunk-z3mra3nm.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{El as AN,Ll as fl}from"./chunk-ccmbckek.js";import{Ql as T7,Sl as l$,Tl as mY,Ul as jY,Vl as I1,Wl as w$,Xl as P8,Zl as RA,bm as W1,dm as BX,em as JO,fm as X9,lm as S8,mm as B0,om as R7}from"./chunk-711dc303.js";import{rm as lU,sm as dU,tm as cw,vm as iw,xm as L1}from"./chunk-qn6gdhns.js";import{Nm as Wd,Um as j8,Vm as w1,Wm as B9,Xm as g6,Ym as u9,_m as m0,an as j$,bn as IL,en as eA,fn as HX,gn as Kd,hn as v5,jn as tK,pn as $O,xn as s6}from"./chunk-bn0h9dny.js";import{En as a8,Fn as QU,Gn as r8}from"./chunk-mpkvpn2y.js";import{$n as vm,Hn as Pw,Kn as wN,Ln as LN,Nn as Xw,Pn as j6,Qn as Tm,Rn as km,Sn as Rm,Vn as Pm,Wn as Im,Yn as Cm,_n as fA,ao as ym,fo as GX}from"./chunk-9bzhxenb.js";import{ho as u0,io as Wm,jo as F$,ko as Qw,lo as w0}from"./chunk-vcw00k0n.js";import{mo as c2,po as xA,qo as Dl,ro as wl,xo as ul,yo as ml}from"./chunk-famryv52.js";import{Co as Em}from"./chunk-2hc5z7b5.js";import{Do as d0}from"./chunk-e1w70zdn.js";import{Fo as sL,Mo as rL}from"./chunk-4jtxtkj7.js";import{$o as N4,Jp as UH,Rp as oL,To as lL,Uo as Q8,Wo as jJ,Xo as AX,ap as dL,bp as pL,cp as JH,ep as t6,gp as NX,hp as R4,ip as cL,kp as MX,mp as iL,np as nL,sp as P4,up as v8,vp as DX,wp as D4,xp as y8,zp as G8}from"./chunk-2maqde7w.js";import{Sp as p0,Tp as qX,Vp as a6,Xp as xZ,Zp as WH,_p as KH,aq as VH,cq as I8,dq as u5,eq as ZH,fq as FX}from"./chunk-kj20f048.js";import{oq as iu}from"./chunk-jbx3s7nw.js";import{rq as jA,sq as yu}from"./chunk-48ge2ryx.js";import{Fq as Fw,Hq as MO,Lq as FO}from"./chunk-rryytkmg.js";import{Nq as H2}from"./chunk-te47zdxd.js";import{Wq as zN,br as V$,cr as IZ,ir as p9,jr as FN}from"./chunk-d6ry9418.js";import{Nr as q30}from"./chunk-0dt0bxz6.js";import{Sr as q1}from"./chunk-4cnwn1rh.js";import{Ur as c8}from"./chunk-0t4324w5.js";import{As as M8,Ls as wA,Ms as A4,Ns as uY,Qs as F0,Rs as b0,Vr as O$,Yr as zw,Zr as CN,_r as um,_s as E0,bs as Hl,cs as yK,ds as N1,es as xK,fs as v6,os as Y9}from"./chunk-hdrbyarv.js";import{$s as J8,bt as k6,dt as o8,ht as f1,nt as G4,ot as E$,st as o0}from"./chunk-tqj69nh6.js";import{tt as w00}from"./chunk-ag8kz1e7.js";import{ut as I}from"./chunk-5tray1fw.js";import{St as D}from"./chunk-c11d28qn.js";import{Ky as eV}from"./chunk-gagtmjmp.js";import{EB as h7,EI as Rw,FH as tV,LC as Z8,NI as h6,OE as T0,QN as I$,RM as O,VB as g7,VE as r7,WD as dw,_I as pw,bE as O9,hF as z4,iE as f6,jC as cl,pH as L,uB as O1,yE as CY,zC as S1}from"./chunk-zs8kqdsf.js";import{AO as mL}from"./chunk-zw815d68.js";import{BO as m6,CO as S,DO as B1,FO as Y0,GO as kK,HO as vK}from"./chunk-7xm75w1e.js";var P7=S((RO)=>{Object.defineProperty(RO,"__esModule",{value:!0});RO.stringArray=RO.array=RO.func=RO.error=RO.number=RO.string=RO.boolean=void 0;function Xp($){return $===!0||$===!1}RO.boolean=Xp;function LO($){return typeof $==="string"||$ instanceof String}RO.string=LO;function Qp($){return typeof $==="number"||$ instanceof Number}RO.number=Qp;function Gp($){return $ instanceof Error}RO.error=Gp;function Wp($){return typeof $==="function"}RO.func=Wp;function TO($){return Array.isArray($)}RO.array=TO;function Kp($){return TO($)&&$.every((Z)=>LO(Z))}RO.stringArray=Kp});var jV=S((rO)=>{Object.defineProperty(rO,"__esModule",{value:!0});rO.Message=rO.NotificationType9=rO.NotificationType8=rO.NotificationType7=rO.NotificationType6=rO.NotificationType5=rO.NotificationType4=rO.NotificationType3=rO.NotificationType2=rO.NotificationType1=rO.NotificationType0=rO.NotificationType=rO.RequestType9=rO.RequestType8=rO.RequestType7=rO.RequestType6=rO.RequestType5=rO.RequestType4=rO.RequestType3=rO.RequestType2=rO.RequestType1=rO.RequestType=rO.RequestType0=rO.AbstractMessageSignature=rO.ParameterStructures=rO.ResponseError=rO.ErrorCodes=void 0;var F5=P7(),AV;(function($){$.ParseError=-32700,$.InvalidRequest=-32600,$.MethodNotFound=-32601,$.InvalidParams=-32602,$.InternalError=-32603,$.jsonrpcReservedErrorRangeStart=-32099,$.serverErrorStart=-32099,$.MessageWriteError=-32099,$.MessageReadError=-32098,$.PendingResponseRejected=-32097,$.ConnectionInactive=-32096,$.ServerNotInitialized=-32002,$.UnknownErrorCode=-32001,$.jsonrpcReservedErrorRangeEnd=-32000,$.serverErrorEnd=-32000})(AV||(rO.ErrorCodes=AV={}));class OV extends Error{constructor($,Z,J){super(Z);this.code=F5.number($)?$:AV.UnknownErrorCode,this.data=J,Object.setPrototypeOf(this,OV.prototype)}toJson(){let $={code:this.code,message:this.message};if(this.data!==void 0)$.data=this.data;return $}}rO.ResponseError=OV;class h${constructor($){this.kind=$}static is($){return $===h$.auto||$===h$.byName||$===h$.byPosition}toString(){return this.kind}}rO.ParameterStructures=h$;h$.auto=new h$("auto");h$.byPosition=new h$("byPosition");h$.byName=new h$("byName");class n1{constructor($,Z){this.method=$,this.numberOfParams=Z}get parameterStructures(){return h$.auto}}rO.AbstractMessageSignature=n1;class CO extends n1{constructor($){super($,0)}}rO.RequestType0=CO;class EO extends n1{constructor($,Z=h$.auto){super($,1);this._parameterStructures=Z}get parameterStructures(){return this._parameterStructures}}rO.RequestType=EO;class bO extends n1{constructor($,Z=h$.auto){super($,1);this._parameterStructures=Z}get parameterStructures(){return this._parameterStructures}}rO.RequestType1=bO;class _O extends n1{constructor($){super($,2)}}rO.RequestType2=_O;class SO extends n1{constructor($){super($,3)}}rO.RequestType3=SO;class fO extends n1{constructor($){super($,4)}}rO.RequestType4=fO;class kO extends n1{constructor($){super($,5)}}rO.RequestType5=kO;class vO extends n1{constructor($){super($,6)}}rO.RequestType6=vO;class yO extends n1{constructor($){super($,7)}}rO.RequestType7=yO;class xO extends n1{constructor($){super($,8)}}rO.RequestType8=xO;class hO extends n1{constructor($){super($,9)}}rO.RequestType9=hO;class gO extends n1{constructor($,Z=h$.auto){super($,1);this._parameterStructures=Z}get parameterStructures(){return this._parameterStructures}}rO.NotificationType=gO;class uO extends n1{constructor($){super($,0)}}rO.NotificationType0=uO;class mO extends n1{constructor($,Z=h$.auto){super($,1);this._parameterStructures=Z}get parameterStructures(){return this._parameterStructures}}rO.NotificationType1=mO;class lO extends n1{constructor($){super($,2)}}rO.NotificationType2=lO;class dO extends n1{constructor($){super($,3)}}rO.NotificationType3=dO;class pO extends n1{constructor($){super($,4)}}rO.NotificationType4=pO;class cO extends n1{constructor($){super($,5)}}rO.NotificationType5=cO;class iO extends n1{constructor($){super($,6)}}rO.NotificationType6=iO;class nO extends n1{constructor($){super($,7)}}rO.NotificationType7=nO;class oO extends n1{constructor($){super($,8)}}rO.NotificationType8=oO;class sO extends n1{constructor($){super($,9)}}rO.NotificationType9=sO;var IO;(function($){function Z(X){let Q=X;return Q&&F5.string(Q.method)&&(F5.string(Q.id)||F5.number(Q.id))}$.isRequest=Z;function J(X){let Q=X;return Q&&F5.string(Q.method)&&X.id===void 0}$.isNotification=J;function Y(X){let Q=X;return Q&&(Q.result!==void 0||!!Q.error)&&(F5.string(Q.id)||F5.number(Q.id)||Q.id===null)}$.isResponse=Y})(IO||(rO.Message=IO={}))});var NV=S(($j)=>{var tO;Object.defineProperty($j,"__esModule",{value:!0});$j.LRUCache=$j.LinkedMap=$j.Touch=void 0;var g$;(function($){$.None=0,$.First=1,$.AsOld=$.First,$.Last=2,$.AsNew=$.Last})(g$||($j.Touch=g$={}));class qV{constructor(){this[tO]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has($){return this._map.has($)}get($,Z=g$.None){let J=this._map.get($);if(!J)return;if(Z!==g$.None)this.touch(J,Z);return J.value}set($,Z,J=g$.None){let Y=this._map.get($);if(Y){if(Y.value=Z,J!==g$.None)this.touch(Y,J)}else{switch(Y={key:$,value:Z,next:void 0,previous:void 0},J){case g$.None:this.addItemLast(Y);break;case g$.First:this.addItemFirst(Y);break;case g$.Last:this.addItemLast(Y);break;default:this.addItemLast(Y);break}this._map.set($,Y),this._size++}return this}delete($){return!!this.remove($)}remove($){let Z=this._map.get($);if(!Z)return;return this._map.delete($),this.removeItem(Z),this._size--,Z.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error("Invalid list");let $=this._head;return this._map.delete($.key),this.removeItem($),this._size--,$.value}forEach($,Z){let J=this._state,Y=this._head;while(Y){if(Z)$.bind(Z)(Y.value,Y.key,this);else $(Y.value,Y.key,this);if(this._state!==J)throw Error("LinkedMap got modified during iteration.");Y=Y.next}}keys(){let $=this._state,Z=this._head,J={[Symbol.iterator]:()=>{return J},next:()=>{if(this._state!==$)throw Error("LinkedMap got modified during iteration.");if(Z){let Y={value:Z.key,done:!1};return Z=Z.next,Y}else return{value:void 0,done:!0}}};return J}values(){let $=this._state,Z=this._head,J={[Symbol.iterator]:()=>{return J},next:()=>{if(this._state!==$)throw Error("LinkedMap got modified during iteration.");if(Z){let Y={value:Z.value,done:!1};return Z=Z.next,Y}else return{value:void 0,done:!0}}};return J}entries(){let $=this._state,Z=this._head,J={[Symbol.iterator]:()=>{return J},next:()=>{if(this._state!==$)throw Error("LinkedMap got modified during iteration.");if(Z){let Y={value:[Z.key,Z.value],done:!1};return Z=Z.next,Y}else return{value:void 0,done:!0}}};return J}[(tO=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld($){if($>=this.size)return;if($===0){this.clear();return}let Z=this._head,J=this.size;while(Z&&J>$)this._map.delete(Z.key),Z=Z.next,J--;if(this._head=Z,this._size=J,Z)Z.previous=void 0;this._state++}addItemFirst($){if(!this._head&&!this._tail)this._tail=$;else if(!this._head)throw Error("Invalid list");else $.next=this._head,this._head.previous=$;this._head=$,this._state++}addItemLast($){if(!this._head&&!this._tail)this._head=$;else if(!this._tail)throw Error("Invalid list");else $.previous=this._tail,this._tail.next=$;this._tail=$,this._state++}removeItem($){if($===this._head&&$===this._tail)this._head=void 0,this._tail=void 0;else if($===this._head){if(!$.next)throw Error("Invalid list");$.next.previous=void 0,this._head=$.next}else if($===this._tail){if(!$.previous)throw Error("Invalid list");$.previous.next=void 0,this._tail=$.previous}else{let{next:Z,previous:J}=$;if(!Z||!J)throw Error("Invalid list");Z.previous=J,J.next=Z}$.next=void 0,$.previous=void 0,this._state++}touch($,Z){if(!this._head||!this._tail)throw Error("Invalid list");if(Z!==g$.First&&Z!==g$.Last)return;if(Z===g$.First){if($===this._head)return;let{next:J,previous:Y}=$;if($===this._tail)Y.next=void 0,this._tail=Y;else J.previous=Y,Y.next=J;$.previous=void 0,$.next=this._head,this._head.previous=$,this._head=$,this._state++}else if(Z===g$.Last){if($===this._tail)return;let{next:J,previous:Y}=$;if($===this._head)J.previous=void 0,this._head=J;else J.previous=Y,Y.next=J;$.next=void 0,$.previous=this._tail,this._tail.next=$,this._tail=$,this._state++}}toJSON(){let $=[];return this.forEach((Z,J)=>{$.push([J,Z])}),$}fromJSON($){this.clear();for(let[Z,J]of $)this.set(Z,J)}}$j.LinkedMap=qV;class eO extends qV{constructor($,Z=1){super();this._limit=$,this._ratio=Math.min(Math.max(0,Z),1)}get limit(){return this._limit}set limit($){this._limit=$,this.checkTrim()}get ratio(){return this._ratio}set ratio($){this._ratio=Math.min(Math.max(0,$),1),this.checkTrim()}get($,Z=g$.AsNew){return super.get($,Z)}peek($){return super.get($,g$.None)}set($,Z){return super.set($,Z,g$.Last),this.checkTrim(),this}checkTrim(){if(this.size>this._limit)this.trimOld(Math.round(this._limit*this._ratio))}}$j.LRUCache=eO});var Qj=S((Yj)=>{Object.defineProperty(Yj,"__esModule",{value:!0});Yj.Disposable=void 0;var Jj;(function($){function Z(J){return{dispose:J}}$.create=Z})(Jj||(Yj.Disposable=Jj={}))});var wZ=S((Gj)=>{Object.defineProperty(Gj,"__esModule",{value:!0});var MV;function DV(){if(MV===void 0)throw Error("No runtime abstraction layer installed");return MV}(function($){function Z(J){if(J===void 0)throw Error("No runtime abstraction layer provided");MV=J}$.install=Z})(DV||(DV={}));Gj.default=DV});var I7=S((Vj)=>{Object.defineProperty(Vj,"__esModule",{value:!0});Vj.Emitter=Vj.Event=void 0;var pp=wZ(),Wj;(function($){let Z={dispose(){}};$.None=function(){return Z}})(Wj||(Vj.Event=Wj={}));class Kj{add($,Z=null,J){if(!this._callbacks)this._callbacks=[],this._contexts=[];if(this._callbacks.push($),this._contexts.push(Z),Array.isArray(J))J.push({dispose:()=>this.remove($,Z)})}remove($,Z=null){if(!this._callbacks)return;let J=!1;for(let Y=0,X=this._callbacks.length;Y<X;Y++)if(this._callbacks[Y]===$)if(this._contexts[Y]===Z){this._callbacks.splice(Y,1),this._contexts.splice(Y,1);return}else J=!0;if(J)throw Error("When adding a listener with a context, you should remove it with the same context")}invoke(...$){if(!this._callbacks)return[];let Z=[],J=this._callbacks.slice(0),Y=this._contexts.slice(0);for(let X=0,Q=J.length;X<Q;X++)try{Z.push(J[X].apply(Y[X],$))}catch(G){(0,pp.default)().console.error(G)}return Z}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class D9{constructor($){this._options=$}get event(){if(!this._event)this._event=($,Z,J)=>{if(!this._callbacks)this._callbacks=new Kj;if(this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty())this._options.onFirstListenerAdd(this);this._callbacks.add($,Z);let Y={dispose:()=>{if(!this._callbacks)return;if(this._callbacks.remove($,Z),Y.dispose=D9._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty())this._options.onLastListenerRemove(this)}};if(Array.isArray(J))J.push(Y);return Y};return this._event}fire($){if(this._callbacks)this._callbacks.invoke.call(this._callbacks,$)}dispose(){if(this._callbacks)this._callbacks.dispose(),this._callbacks=void 0}}Vj.Emitter=D9;D9._noop=function(){}});var L9=S((Bj)=>{Object.defineProperty(Bj,"__esModule",{value:!0});Bj.CancellationTokenSource=Bj.CancellationToken=void 0;var ip=wZ(),np=P7(),wV=I7(),w9;(function($){$.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:wV.Event.None}),$.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:wV.Event.None});function Z(J){let Y=J;return Y&&(Y===$.None||Y===$.Cancelled||np.boolean(Y.isCancellationRequested)&&!!Y.onCancellationRequested)}$.is=Z})(w9||(Bj.CancellationToken=w9={}));var op=Object.freeze(function($,Z){let J=(0,ip.default)().timer.setTimeout($.bind(Z),0);return{dispose(){J.dispose()}}});class LV{constructor(){this._isCancelled=!1}cancel(){if(!this._isCancelled){if(this._isCancelled=!0,this._emitter)this._emitter.fire(void 0),this.dispose()}}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){if(this._isCancelled)return op;if(!this._emitter)this._emitter=new wV.Emitter;return this._emitter.event}dispose(){if(this._emitter)this._emitter.dispose(),this._emitter=void 0}}class Hj{get token(){if(!this._token)this._token=new LV;return this._token}cancel(){if(!this._token)this._token=w9.Cancelled;else this._token.cancel()}dispose(){if(!this._token)this._token=w9.None;else if(this._token instanceof LV)this._token.dispose()}}Bj.CancellationTokenSource=Hj});var Mj=S((qj)=>{Object.defineProperty(qj,"__esModule",{value:!0});qj.SharedArrayReceiverStrategy=qj.SharedArraySenderStrategy=void 0;var rp=L9(),SY;(function($){$.Continue=0,$.Cancelled=1})(SY||(SY={}));class Fj{constructor(){this.buffers=new Map}enableCancellation($){if($.id===null)return;let Z=new SharedArrayBuffer(4),J=new Int32Array(Z,0,1);J[0]=SY.Continue,this.buffers.set($.id,Z),$.$cancellationData=Z}async sendCancellation($,Z){let J=this.buffers.get(Z);if(J===void 0)return;let Y=new Int32Array(J,0,1);Atomics.store(Y,0,SY.Cancelled)}cleanup($){this.buffers.delete($)}dispose(){this.buffers.clear()}}qj.SharedArraySenderStrategy=Fj;class Aj{constructor($){this.data=new Int32Array($,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===SY.Cancelled}get onCancellationRequested(){throw Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}}class Oj{constructor($){this.token=new Aj($)}cancel(){}dispose(){}}class jj{constructor(){this.kind="request"}createCancellationTokenSource($){let Z=$.$cancellationData;if(Z===void 0)return new rp.CancellationTokenSource;return new Oj(Z)}}qj.SharedArrayReceiverStrategy=jj});var TV=S((wj)=>{Object.defineProperty(wj,"__esModule",{value:!0});wj.Semaphore=void 0;var tp=wZ();class Dj{constructor($=1){if($<=0)throw Error("Capacity must be greater than 0");this._capacity=$,this._active=0,this._waiting=[]}lock($){return new Promise((Z,J)=>{this._waiting.push({thunk:$,resolve:Z,reject:J}),this.runNext()})}get active(){return this._active}runNext(){if(this._waiting.length===0||this._active===this._capacity)return;(0,tp.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let $=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error("To many thunks active");try{let Z=$.thunk();if(Z instanceof Promise)Z.then((J)=>{this._active--,$.resolve(J),this.runNext()},(J)=>{this._active--,$.reject(J),this.runNext()});else this._active--,$.resolve(Z),this.runNext()}catch(Z){this._active--,$.reject(Z),this.runNext()}}}wj.Semaphore=Dj});var Cj=S((Pj)=>{Object.defineProperty(Pj,"__esModule",{value:!0});Pj.ReadableStreamMessageReader=Pj.AbstractMessageReader=Pj.MessageReader=void 0;var PV=wZ(),C7=P7(),RV=I7(),ep=TV(),Tj;(function($){function Z(J){let Y=J;return Y&&C7.func(Y.listen)&&C7.func(Y.dispose)&&C7.func(Y.onError)&&C7.func(Y.onClose)&&C7.func(Y.onPartialMessage)}$.is=Z})(Tj||(Pj.MessageReader=Tj={}));class CV{constructor(){this.errorEmitter=new RV.Emitter,this.closeEmitter=new RV.Emitter,this.partialMessageEmitter=new RV.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError($){this.errorEmitter.fire(this.asError($))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage($){this.partialMessageEmitter.fire($)}asError($){if($ instanceof Error)return $;else return Error(`Reader received error. Reason: ${C7.string($.message)?$.message:"unknown"}`)}}Pj.AbstractMessageReader=CV;var IV;(function($){function Z(J){let Y,X,Q,G=new Map,W,K=new Map;if(J===void 0||typeof J==="string")Y=J??"utf-8";else{if(Y=J.charset??"utf-8",J.contentDecoder!==void 0)Q=J.contentDecoder,G.set(Q.name,Q);if(J.contentDecoders!==void 0)for(let V of J.contentDecoders)G.set(V.name,V);if(J.contentTypeDecoder!==void 0)W=J.contentTypeDecoder,K.set(W.name,W);if(J.contentTypeDecoders!==void 0)for(let V of J.contentTypeDecoders)K.set(V.name,V)}if(W===void 0)W=(0,PV.default)().applicationJson.decoder,K.set(W.name,W);return{charset:Y,contentDecoder:Q,contentDecoders:G,contentTypeDecoder:W,contentTypeDecoders:K}}$.fromOptions=Z})(IV||(IV={}));class Rj extends CV{constructor($,Z){super();this.readable=$,this.options=IV.fromOptions(Z),this.buffer=(0,PV.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new ep.Semaphore(1)}set partialMessageTimeout($){this._partialMessageTimeout=$}get partialMessageTimeout(){return this._partialMessageTimeout}listen($){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=$;let Z=this.readable.onData((J)=>{this.onData(J)});return this.readable.onError((J)=>this.fireError(J)),this.readable.onClose(()=>this.fireClose()),Z}onData($){try{this.buffer.append($);while(!0){if(this.nextMessageLength===-1){let J=this.buffer.tryReadHeaders(!0);if(!J)return;let Y=J.get("content-length");if(!Y){this.fireError(Error(`Header must provide a Content-Length property.
2
+ import{El as AN,Ll as fl}from"./chunk-st5jaszz.js";import{Ql as T7,Sl as l$,Tl as mY,Ul as jY,Vl as I1,Wl as w$,Xl as P8,Zl as RA,bm as W1,dm as BX,em as JO,fm as X9,lm as S8,mm as B0,om as R7}from"./chunk-a1hzeejj.js";import{rm as lU,sm as dU,tm as cw,vm as iw,xm as L1}from"./chunk-sjw56r2n.js";import{An as j8,Bn as w1,Cn as B9,Dn as g6,En as u9,Gn as m0,In as j$,Jn as IL,Mn as eA,Nn as HX,On as Kd,Pn as v5,Rn as tK,Xn as $O,do as s6,en as Wd}from"./chunk-nj4d554m.js";import{bp as a8,cp as QU,dp as r8}from"./chunk-eva3nqqb.js";import{Ep as GX,ep as Pw,hp as wN,ip as LN,kp as Xw,mp as j6,np as Tm,op as km,pp as Rm,sp as Pm,tp as Im,vp as Cm,xp as fA,yp as vm,zp as ym}from"./chunk-yprmd5b7.js";import{Gp as u0,Hp as Wm,Ip as F$,Jp as Qw,Kp as w0}from"./chunk-keveg5gx.js";import{Lp as c2,Op as xA,Pp as Dl,Qp as wl,Wp as ul,Xp as ml}from"./chunk-f3bnn9rf.js";import{$p as Em}from"./chunk-xqdrr7xg.js";import{aq as d0}from"./chunk-axdzm75h.js";import{cq as sL,jq as rL}from"./chunk-94pcpztx.js";import{Aq as pL,Bq as JH,Dq as t6,Fq as NX,Gq as R4,Hq as cL,Jq as MX,Lq as iL,Mq as nL,Rq as P4,Tq as v8,Uq as DX,Vq as D4,Wq as y8,Yq as G8,gr as UH,or as oL,qq as lL,rq as Q8,tq as jJ,uq as AX,yq as N4,zq as dL}from"./chunk-z8gdmvgg.js";import{Br as I8,Cr as u5,Dr as ZH,Er as FX,pr as p0,qr as qX,sr as a6,ur as xZ,wr as WH,xr as KH,zr as VH}from"./chunk-kwx9ewe0.js";import{Nr as iu}from"./chunk-n96tvjgj.js";import{Qr as jA,Rr as yu}from"./chunk-xgr6jnd6.js";import{cs as Fw,es as MO,is as FO}from"./chunk-er38zew1.js";import{ks as H2}from"./chunk-dk975etf.js";import{As as V$,Bs as IZ,Hs as p9,Is as FN,ts as zN}from"./chunk-6p94fpbn.js";import{kt as q30}from"./chunk-fg35hwa0.js";import{pt as q1}from"./chunk-kv72hxkp.js";import{rt as c8}from"./chunk-nj2bbtmx.js";import{At as Hl,Bt as yK,Ct as N1,Dt as xK,Et as v6,Nt as Y9,Zt as M8,iu as wA,ju as A4,ku as uY,nu as F0,ou as b0,st as O$,vt as zw,wt as CN,xt as um,xu as E0}from"./chunk-tns5x4w0.js";import{Au as k6,Cu as o8,Gu as f1,Mu as G4,Nu as E$,Ru as o0,yu as J8}from"./chunk-e7v9trve.js";import{Su as w00}from"./chunk-zh3fny3z.js";import{Tu as I}from"./chunk-m4j7jyrd.js";import{pv as D}from"./chunk-gmzrvxnv.js";import{hA as eV}from"./chunk-wfd5h6ax.js";import{AF as O9,GG as z4,HF as f6,ID as cl,OI as L,TC as O1,XF as CY,YD as S1,bD as h7,bK as Rw,cJ as tV,iE as Z8,kK as h6,lG as T0,nP as I$,oO as O,sD as g7,sG as r7,tF as dw,xK as pw}from"./chunk-a0rp7gh4.js";import{ZP as mL}from"./chunk-ee23d2nz.js";import{$P as S,_P as m6,aQ as B1,cQ as Y0,dQ as kK,eQ as vK}from"./chunk-3k2b05fv.js";var P7=S((RO)=>{Object.defineProperty(RO,"__esModule",{value:!0});RO.stringArray=RO.array=RO.func=RO.error=RO.number=RO.string=RO.boolean=void 0;function Xp($){return $===!0||$===!1}RO.boolean=Xp;function LO($){return typeof $==="string"||$ instanceof String}RO.string=LO;function Qp($){return typeof $==="number"||$ instanceof Number}RO.number=Qp;function Gp($){return $ instanceof Error}RO.error=Gp;function Wp($){return typeof $==="function"}RO.func=Wp;function TO($){return Array.isArray($)}RO.array=TO;function Kp($){return TO($)&&$.every((Z)=>LO(Z))}RO.stringArray=Kp});var jV=S((rO)=>{Object.defineProperty(rO,"__esModule",{value:!0});rO.Message=rO.NotificationType9=rO.NotificationType8=rO.NotificationType7=rO.NotificationType6=rO.NotificationType5=rO.NotificationType4=rO.NotificationType3=rO.NotificationType2=rO.NotificationType1=rO.NotificationType0=rO.NotificationType=rO.RequestType9=rO.RequestType8=rO.RequestType7=rO.RequestType6=rO.RequestType5=rO.RequestType4=rO.RequestType3=rO.RequestType2=rO.RequestType1=rO.RequestType=rO.RequestType0=rO.AbstractMessageSignature=rO.ParameterStructures=rO.ResponseError=rO.ErrorCodes=void 0;var F5=P7(),AV;(function($){$.ParseError=-32700,$.InvalidRequest=-32600,$.MethodNotFound=-32601,$.InvalidParams=-32602,$.InternalError=-32603,$.jsonrpcReservedErrorRangeStart=-32099,$.serverErrorStart=-32099,$.MessageWriteError=-32099,$.MessageReadError=-32098,$.PendingResponseRejected=-32097,$.ConnectionInactive=-32096,$.ServerNotInitialized=-32002,$.UnknownErrorCode=-32001,$.jsonrpcReservedErrorRangeEnd=-32000,$.serverErrorEnd=-32000})(AV||(rO.ErrorCodes=AV={}));class OV extends Error{constructor($,Z,J){super(Z);this.code=F5.number($)?$:AV.UnknownErrorCode,this.data=J,Object.setPrototypeOf(this,OV.prototype)}toJson(){let $={code:this.code,message:this.message};if(this.data!==void 0)$.data=this.data;return $}}rO.ResponseError=OV;class h${constructor($){this.kind=$}static is($){return $===h$.auto||$===h$.byName||$===h$.byPosition}toString(){return this.kind}}rO.ParameterStructures=h$;h$.auto=new h$("auto");h$.byPosition=new h$("byPosition");h$.byName=new h$("byName");class n1{constructor($,Z){this.method=$,this.numberOfParams=Z}get parameterStructures(){return h$.auto}}rO.AbstractMessageSignature=n1;class CO extends n1{constructor($){super($,0)}}rO.RequestType0=CO;class EO extends n1{constructor($,Z=h$.auto){super($,1);this._parameterStructures=Z}get parameterStructures(){return this._parameterStructures}}rO.RequestType=EO;class bO extends n1{constructor($,Z=h$.auto){super($,1);this._parameterStructures=Z}get parameterStructures(){return this._parameterStructures}}rO.RequestType1=bO;class _O extends n1{constructor($){super($,2)}}rO.RequestType2=_O;class SO extends n1{constructor($){super($,3)}}rO.RequestType3=SO;class fO extends n1{constructor($){super($,4)}}rO.RequestType4=fO;class kO extends n1{constructor($){super($,5)}}rO.RequestType5=kO;class vO extends n1{constructor($){super($,6)}}rO.RequestType6=vO;class yO extends n1{constructor($){super($,7)}}rO.RequestType7=yO;class xO extends n1{constructor($){super($,8)}}rO.RequestType8=xO;class hO extends n1{constructor($){super($,9)}}rO.RequestType9=hO;class gO extends n1{constructor($,Z=h$.auto){super($,1);this._parameterStructures=Z}get parameterStructures(){return this._parameterStructures}}rO.NotificationType=gO;class uO extends n1{constructor($){super($,0)}}rO.NotificationType0=uO;class mO extends n1{constructor($,Z=h$.auto){super($,1);this._parameterStructures=Z}get parameterStructures(){return this._parameterStructures}}rO.NotificationType1=mO;class lO extends n1{constructor($){super($,2)}}rO.NotificationType2=lO;class dO extends n1{constructor($){super($,3)}}rO.NotificationType3=dO;class pO extends n1{constructor($){super($,4)}}rO.NotificationType4=pO;class cO extends n1{constructor($){super($,5)}}rO.NotificationType5=cO;class iO extends n1{constructor($){super($,6)}}rO.NotificationType6=iO;class nO extends n1{constructor($){super($,7)}}rO.NotificationType7=nO;class oO extends n1{constructor($){super($,8)}}rO.NotificationType8=oO;class sO extends n1{constructor($){super($,9)}}rO.NotificationType9=sO;var IO;(function($){function Z(X){let Q=X;return Q&&F5.string(Q.method)&&(F5.string(Q.id)||F5.number(Q.id))}$.isRequest=Z;function J(X){let Q=X;return Q&&F5.string(Q.method)&&X.id===void 0}$.isNotification=J;function Y(X){let Q=X;return Q&&(Q.result!==void 0||!!Q.error)&&(F5.string(Q.id)||F5.number(Q.id)||Q.id===null)}$.isResponse=Y})(IO||(rO.Message=IO={}))});var NV=S(($j)=>{var tO;Object.defineProperty($j,"__esModule",{value:!0});$j.LRUCache=$j.LinkedMap=$j.Touch=void 0;var g$;(function($){$.None=0,$.First=1,$.AsOld=$.First,$.Last=2,$.AsNew=$.Last})(g$||($j.Touch=g$={}));class qV{constructor(){this[tO]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has($){return this._map.has($)}get($,Z=g$.None){let J=this._map.get($);if(!J)return;if(Z!==g$.None)this.touch(J,Z);return J.value}set($,Z,J=g$.None){let Y=this._map.get($);if(Y){if(Y.value=Z,J!==g$.None)this.touch(Y,J)}else{switch(Y={key:$,value:Z,next:void 0,previous:void 0},J){case g$.None:this.addItemLast(Y);break;case g$.First:this.addItemFirst(Y);break;case g$.Last:this.addItemLast(Y);break;default:this.addItemLast(Y);break}this._map.set($,Y),this._size++}return this}delete($){return!!this.remove($)}remove($){let Z=this._map.get($);if(!Z)return;return this._map.delete($),this.removeItem(Z),this._size--,Z.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error("Invalid list");let $=this._head;return this._map.delete($.key),this.removeItem($),this._size--,$.value}forEach($,Z){let J=this._state,Y=this._head;while(Y){if(Z)$.bind(Z)(Y.value,Y.key,this);else $(Y.value,Y.key,this);if(this._state!==J)throw Error("LinkedMap got modified during iteration.");Y=Y.next}}keys(){let $=this._state,Z=this._head,J={[Symbol.iterator]:()=>{return J},next:()=>{if(this._state!==$)throw Error("LinkedMap got modified during iteration.");if(Z){let Y={value:Z.key,done:!1};return Z=Z.next,Y}else return{value:void 0,done:!0}}};return J}values(){let $=this._state,Z=this._head,J={[Symbol.iterator]:()=>{return J},next:()=>{if(this._state!==$)throw Error("LinkedMap got modified during iteration.");if(Z){let Y={value:Z.value,done:!1};return Z=Z.next,Y}else return{value:void 0,done:!0}}};return J}entries(){let $=this._state,Z=this._head,J={[Symbol.iterator]:()=>{return J},next:()=>{if(this._state!==$)throw Error("LinkedMap got modified during iteration.");if(Z){let Y={value:[Z.key,Z.value],done:!1};return Z=Z.next,Y}else return{value:void 0,done:!0}}};return J}[(tO=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld($){if($>=this.size)return;if($===0){this.clear();return}let Z=this._head,J=this.size;while(Z&&J>$)this._map.delete(Z.key),Z=Z.next,J--;if(this._head=Z,this._size=J,Z)Z.previous=void 0;this._state++}addItemFirst($){if(!this._head&&!this._tail)this._tail=$;else if(!this._head)throw Error("Invalid list");else $.next=this._head,this._head.previous=$;this._head=$,this._state++}addItemLast($){if(!this._head&&!this._tail)this._head=$;else if(!this._tail)throw Error("Invalid list");else $.previous=this._tail,this._tail.next=$;this._tail=$,this._state++}removeItem($){if($===this._head&&$===this._tail)this._head=void 0,this._tail=void 0;else if($===this._head){if(!$.next)throw Error("Invalid list");$.next.previous=void 0,this._head=$.next}else if($===this._tail){if(!$.previous)throw Error("Invalid list");$.previous.next=void 0,this._tail=$.previous}else{let{next:Z,previous:J}=$;if(!Z||!J)throw Error("Invalid list");Z.previous=J,J.next=Z}$.next=void 0,$.previous=void 0,this._state++}touch($,Z){if(!this._head||!this._tail)throw Error("Invalid list");if(Z!==g$.First&&Z!==g$.Last)return;if(Z===g$.First){if($===this._head)return;let{next:J,previous:Y}=$;if($===this._tail)Y.next=void 0,this._tail=Y;else J.previous=Y,Y.next=J;$.previous=void 0,$.next=this._head,this._head.previous=$,this._head=$,this._state++}else if(Z===g$.Last){if($===this._tail)return;let{next:J,previous:Y}=$;if($===this._head)J.previous=void 0,this._head=J;else J.previous=Y,Y.next=J;$.next=void 0,$.previous=this._tail,this._tail.next=$,this._tail=$,this._state++}}toJSON(){let $=[];return this.forEach((Z,J)=>{$.push([J,Z])}),$}fromJSON($){this.clear();for(let[Z,J]of $)this.set(Z,J)}}$j.LinkedMap=qV;class eO extends qV{constructor($,Z=1){super();this._limit=$,this._ratio=Math.min(Math.max(0,Z),1)}get limit(){return this._limit}set limit($){this._limit=$,this.checkTrim()}get ratio(){return this._ratio}set ratio($){this._ratio=Math.min(Math.max(0,$),1),this.checkTrim()}get($,Z=g$.AsNew){return super.get($,Z)}peek($){return super.get($,g$.None)}set($,Z){return super.set($,Z,g$.Last),this.checkTrim(),this}checkTrim(){if(this.size>this._limit)this.trimOld(Math.round(this._limit*this._ratio))}}$j.LRUCache=eO});var Qj=S((Yj)=>{Object.defineProperty(Yj,"__esModule",{value:!0});Yj.Disposable=void 0;var Jj;(function($){function Z(J){return{dispose:J}}$.create=Z})(Jj||(Yj.Disposable=Jj={}))});var wZ=S((Gj)=>{Object.defineProperty(Gj,"__esModule",{value:!0});var MV;function DV(){if(MV===void 0)throw Error("No runtime abstraction layer installed");return MV}(function($){function Z(J){if(J===void 0)throw Error("No runtime abstraction layer provided");MV=J}$.install=Z})(DV||(DV={}));Gj.default=DV});var I7=S((Vj)=>{Object.defineProperty(Vj,"__esModule",{value:!0});Vj.Emitter=Vj.Event=void 0;var pp=wZ(),Wj;(function($){let Z={dispose(){}};$.None=function(){return Z}})(Wj||(Vj.Event=Wj={}));class Kj{add($,Z=null,J){if(!this._callbacks)this._callbacks=[],this._contexts=[];if(this._callbacks.push($),this._contexts.push(Z),Array.isArray(J))J.push({dispose:()=>this.remove($,Z)})}remove($,Z=null){if(!this._callbacks)return;let J=!1;for(let Y=0,X=this._callbacks.length;Y<X;Y++)if(this._callbacks[Y]===$)if(this._contexts[Y]===Z){this._callbacks.splice(Y,1),this._contexts.splice(Y,1);return}else J=!0;if(J)throw Error("When adding a listener with a context, you should remove it with the same context")}invoke(...$){if(!this._callbacks)return[];let Z=[],J=this._callbacks.slice(0),Y=this._contexts.slice(0);for(let X=0,Q=J.length;X<Q;X++)try{Z.push(J[X].apply(Y[X],$))}catch(G){(0,pp.default)().console.error(G)}return Z}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class D9{constructor($){this._options=$}get event(){if(!this._event)this._event=($,Z,J)=>{if(!this._callbacks)this._callbacks=new Kj;if(this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty())this._options.onFirstListenerAdd(this);this._callbacks.add($,Z);let Y={dispose:()=>{if(!this._callbacks)return;if(this._callbacks.remove($,Z),Y.dispose=D9._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty())this._options.onLastListenerRemove(this)}};if(Array.isArray(J))J.push(Y);return Y};return this._event}fire($){if(this._callbacks)this._callbacks.invoke.call(this._callbacks,$)}dispose(){if(this._callbacks)this._callbacks.dispose(),this._callbacks=void 0}}Vj.Emitter=D9;D9._noop=function(){}});var L9=S((Bj)=>{Object.defineProperty(Bj,"__esModule",{value:!0});Bj.CancellationTokenSource=Bj.CancellationToken=void 0;var ip=wZ(),np=P7(),wV=I7(),w9;(function($){$.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:wV.Event.None}),$.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:wV.Event.None});function Z(J){let Y=J;return Y&&(Y===$.None||Y===$.Cancelled||np.boolean(Y.isCancellationRequested)&&!!Y.onCancellationRequested)}$.is=Z})(w9||(Bj.CancellationToken=w9={}));var op=Object.freeze(function($,Z){let J=(0,ip.default)().timer.setTimeout($.bind(Z),0);return{dispose(){J.dispose()}}});class LV{constructor(){this._isCancelled=!1}cancel(){if(!this._isCancelled){if(this._isCancelled=!0,this._emitter)this._emitter.fire(void 0),this.dispose()}}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){if(this._isCancelled)return op;if(!this._emitter)this._emitter=new wV.Emitter;return this._emitter.event}dispose(){if(this._emitter)this._emitter.dispose(),this._emitter=void 0}}class Hj{get token(){if(!this._token)this._token=new LV;return this._token}cancel(){if(!this._token)this._token=w9.Cancelled;else this._token.cancel()}dispose(){if(!this._token)this._token=w9.None;else if(this._token instanceof LV)this._token.dispose()}}Bj.CancellationTokenSource=Hj});var Mj=S((qj)=>{Object.defineProperty(qj,"__esModule",{value:!0});qj.SharedArrayReceiverStrategy=qj.SharedArraySenderStrategy=void 0;var rp=L9(),SY;(function($){$.Continue=0,$.Cancelled=1})(SY||(SY={}));class Fj{constructor(){this.buffers=new Map}enableCancellation($){if($.id===null)return;let Z=new SharedArrayBuffer(4),J=new Int32Array(Z,0,1);J[0]=SY.Continue,this.buffers.set($.id,Z),$.$cancellationData=Z}async sendCancellation($,Z){let J=this.buffers.get(Z);if(J===void 0)return;let Y=new Int32Array(J,0,1);Atomics.store(Y,0,SY.Cancelled)}cleanup($){this.buffers.delete($)}dispose(){this.buffers.clear()}}qj.SharedArraySenderStrategy=Fj;class Aj{constructor($){this.data=new Int32Array($,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===SY.Cancelled}get onCancellationRequested(){throw Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}}class Oj{constructor($){this.token=new Aj($)}cancel(){}dispose(){}}class jj{constructor(){this.kind="request"}createCancellationTokenSource($){let Z=$.$cancellationData;if(Z===void 0)return new rp.CancellationTokenSource;return new Oj(Z)}}qj.SharedArrayReceiverStrategy=jj});var TV=S((wj)=>{Object.defineProperty(wj,"__esModule",{value:!0});wj.Semaphore=void 0;var tp=wZ();class Dj{constructor($=1){if($<=0)throw Error("Capacity must be greater than 0");this._capacity=$,this._active=0,this._waiting=[]}lock($){return new Promise((Z,J)=>{this._waiting.push({thunk:$,resolve:Z,reject:J}),this.runNext()})}get active(){return this._active}runNext(){if(this._waiting.length===0||this._active===this._capacity)return;(0,tp.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let $=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error("To many thunks active");try{let Z=$.thunk();if(Z instanceof Promise)Z.then((J)=>{this._active--,$.resolve(J),this.runNext()},(J)=>{this._active--,$.reject(J),this.runNext()});else this._active--,$.resolve(Z),this.runNext()}catch(Z){this._active--,$.reject(Z),this.runNext()}}}wj.Semaphore=Dj});var Cj=S((Pj)=>{Object.defineProperty(Pj,"__esModule",{value:!0});Pj.ReadableStreamMessageReader=Pj.AbstractMessageReader=Pj.MessageReader=void 0;var PV=wZ(),C7=P7(),RV=I7(),ep=TV(),Tj;(function($){function Z(J){let Y=J;return Y&&C7.func(Y.listen)&&C7.func(Y.dispose)&&C7.func(Y.onError)&&C7.func(Y.onClose)&&C7.func(Y.onPartialMessage)}$.is=Z})(Tj||(Pj.MessageReader=Tj={}));class CV{constructor(){this.errorEmitter=new RV.Emitter,this.closeEmitter=new RV.Emitter,this.partialMessageEmitter=new RV.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError($){this.errorEmitter.fire(this.asError($))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage($){this.partialMessageEmitter.fire($)}asError($){if($ instanceof Error)return $;else return Error(`Reader received error. Reason: ${C7.string($.message)?$.message:"unknown"}`)}}Pj.AbstractMessageReader=CV;var IV;(function($){function Z(J){let Y,X,Q,G=new Map,W,K=new Map;if(J===void 0||typeof J==="string")Y=J??"utf-8";else{if(Y=J.charset??"utf-8",J.contentDecoder!==void 0)Q=J.contentDecoder,G.set(Q.name,Q);if(J.contentDecoders!==void 0)for(let V of J.contentDecoders)G.set(V.name,V);if(J.contentTypeDecoder!==void 0)W=J.contentTypeDecoder,K.set(W.name,W);if(J.contentTypeDecoders!==void 0)for(let V of J.contentTypeDecoders)K.set(V.name,V)}if(W===void 0)W=(0,PV.default)().applicationJson.decoder,K.set(W.name,W);return{charset:Y,contentDecoder:Q,contentDecoders:G,contentTypeDecoder:W,contentTypeDecoders:K}}$.fromOptions=Z})(IV||(IV={}));class Rj extends CV{constructor($,Z){super();this.readable=$,this.options=IV.fromOptions(Z),this.buffer=(0,PV.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new ep.Semaphore(1)}set partialMessageTimeout($){this._partialMessageTimeout=$}get partialMessageTimeout(){return this._partialMessageTimeout}listen($){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=$;let Z=this.readable.onData((J)=>{this.onData(J)});return this.readable.onError((J)=>this.fireError(J)),this.readable.onClose(()=>this.fireClose()),Z}onData($){try{this.buffer.append($);while(!0){if(this.nextMessageLength===-1){let J=this.buffer.tryReadHeaders(!0);if(!J)return;let Y=J.get("content-length");if(!Y){this.fireError(Error(`Header must provide a Content-Length property.
3
3
  ${JSON.stringify(Object.fromEntries(J))}`));return}let X=parseInt(Y);if(isNaN(X)){this.fireError(Error(`Content-Length value must be a number. Got ${Y}`));return}this.nextMessageLength=X}let Z=this.buffer.tryReadBody(this.nextMessageLength);if(Z===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let J=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(Z):Z,Y=await this.options.contentTypeDecoder.decode(J,this.options);this.callback(Y)}).catch((J)=>{this.fireError(J)})}}catch(Z){this.fireError(Z)}}clearPartialMessageTimer(){if(this.partialMessageTimer)this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0}setPartialMessageTimer(){if(this.clearPartialMessageTimer(),this._partialMessageTimeout<=0)return;this.partialMessageTimer=(0,PV.default)().timer.setTimeout(($,Z)=>{if(this.partialMessageTimer=void 0,$===this.messageToken)this.firePartialMessage({messageToken:$,waitingTime:Z}),this.setPartialMessageTimer()},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout)}}Pj.ReadableStreamMessageReader=Rj});var yj=S((kj)=>{Object.defineProperty(kj,"__esModule",{value:!0});kj.WriteableStreamMessageWriter=kj.AbstractMessageWriter=kj.MessageWriter=void 0;var Ej=wZ(),fY=P7(),Jc=TV(),bj=I7(),Yc="Content-Length: ",_j=`\r
4
4
  `,Sj;(function($){function Z(J){let Y=J;return Y&&fY.func(Y.dispose)&&fY.func(Y.onClose)&&fY.func(Y.onError)&&fY.func(Y.write)}$.is=Z})(Sj||(kj.MessageWriter=Sj={}));class bV{constructor(){this.errorEmitter=new bj.Emitter,this.closeEmitter=new bj.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError($,Z,J){this.errorEmitter.fire([this.asError($),Z,J])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError($){if($ instanceof Error)return $;else return Error(`Writer received error. Reason: ${fY.string($.message)?$.message:"unknown"}`)}}kj.AbstractMessageWriter=bV;var EV;(function($){function Z(J){if(J===void 0||typeof J==="string")return{charset:J??"utf-8",contentTypeEncoder:(0,Ej.default)().applicationJson.encoder};else return{charset:J.charset??"utf-8",contentEncoder:J.contentEncoder,contentTypeEncoder:J.contentTypeEncoder??(0,Ej.default)().applicationJson.encoder}}$.fromOptions=Z})(EV||(EV={}));class fj extends bV{constructor($,Z){super();this.writable=$,this.options=EV.fromOptions(Z),this.errorCount=0,this.writeSemaphore=new Jc.Semaphore(1),this.writable.onError((J)=>this.fireError(J)),this.writable.onClose(()=>this.fireClose())}async write($){return this.writeSemaphore.lock(async()=>{return this.options.contentTypeEncoder.encode($,this.options).then((J)=>{if(this.options.contentEncoder!==void 0)return this.options.contentEncoder.encode(J);else return J}).then((J)=>{let Y=[];return Y.push(Yc,J.byteLength.toString(),_j),Y.push(_j),this.doWrite($,Y,J)},(J)=>{throw this.fireError(J),J})})}async doWrite($,Z,J){try{return await this.writable.write(Z.join(""),"ascii"),this.writable.write(J)}catch(Y){return this.handleError(Y,$),Promise.reject(Y)}}handleError($,Z){this.errorCount++,this.fireError($,Z,this.errorCount)}end(){this.writable.end()}}kj.WriteableStreamMessageWriter=fj});var uj=S((hj)=>{Object.defineProperty(hj,"__esModule",{value:!0});hj.AbstractMessageBuffer=void 0;var Gc=13,Wc=10,Kc=`\r
5
5
  `;class xj{constructor($="utf-8"){this._encoding=$,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append($){let Z=typeof $==="string"?this.fromString($,this._encoding):$;this._chunks.push(Z),this._totalLength+=Z.byteLength}tryReadHeaders($=!1){if(this._chunks.length===0)return;let Z=0,J=0,Y=0,X=0;$:while(J<this._chunks.length){let K=this._chunks[J];Y=0;Z:while(Y<K.length){switch(K[Y]){case Gc:switch(Z){case 0:Z=1;break;case 2:Z=3;break;default:Z=0}break;case Wc:switch(Z){case 1:Z=2;break;case 3:Z=4,Y++;break $;default:Z=0}break;default:Z=0}Y++}X+=K.byteLength,J++}if(Z!==4)return;let Q=this._read(X+Y),G=new Map,W=this.toString(Q,"ascii").split(Kc);if(W.length<2)return G;for(let K=0;K<W.length-2;K++){let V=W[K],U=V.indexOf(":");if(U===-1)throw Error(`Message header must separate key and value using ':'
@@ -485,7 +485,7 @@ ${J}`);Z.destroy($)}function zu($){if(typeof $!=="function")throw new Uu(typeof
485
485
  `})}FK.prototype.incr=function($,Z,J,Y){this.redis.rateLimit(this.key+$,J,Y,this.continueExceeding,this.exponentialBackoff,(X,Q)=>{X?Z(X,null):Z(null,{current:Q[0],ttl:Q[1]})})};FK.prototype.child=function($){return new FK($.continueExceeding,$.exponentialBackoff,this.redis,`${this.key}${$.routeInfo.method}${$.routeInfo.url}-`)};Ru.exports=FK});var fu=S((Lh0,AK)=>{var cj0=Du(),{parse:Eu,format:ij0}=wu(),nj0=Tu(),oj0=Pu(),sj0={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},rj0={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},AA=()=>{},aj0=($)=>$.ip,tj0=($,Z)=>{let J=Error(`Rate limit exceeded, retry in ${Z.after}`);return J.statusCode=Z.statusCode,J};async function OA($,Z){let J={global:typeof Z.global==="boolean"?Z.global:!0};if(typeof Z.enableDraftSpec==="boolean"&&Z.enableDraftSpec)J.enableDraftSpec=!0,J.labels=rj0;else J.enableDraftSpec=!1,J.labels=sj0;if(J.addHeaders=Object.assign({[J.labels.rateLimit]:!0,[J.labels.rateRemaining]:!0,[J.labels.rateReset]:!0,[J.labels.retryAfter]:!0},Z.addHeaders),J.addHeadersOnExceeding=Object.assign({[J.labels.rateLimit]:!0,[J.labels.rateRemaining]:!0,[J.labels.rateReset]:!0},Z.addHeadersOnExceeding),Number.isFinite(Z.max)&&Z.max>=0)J.max=Math.trunc(Z.max);else if(typeof Z.max==="function")J.max=Z.max;else J.max=1000;if(Number.isFinite(Z.timeWindow)&&Z.timeWindow>=0)J.timeWindow=Math.trunc(Z.timeWindow);else if(typeof Z.timeWindow==="string")J.timeWindow=Eu(Z.timeWindow);else if(typeof Z.timeWindow==="function")J.timeWindow=Z.timeWindow;else J.timeWindow=60000;if(J.hook=Z.hook||"onRequest",J.allowList=Z.allowList||Z.whitelist||null,J.ban=Number.isFinite(Z.ban)&&Z.ban>=0?Math.trunc(Z.ban):-1,J.onBanReach=typeof Z.onBanReach==="function"?Z.onBanReach:AA,J.onExceeding=typeof Z.onExceeding==="function"?Z.onExceeding:AA,J.onExceeded=typeof Z.onExceeded==="function"?Z.onExceeded:AA,J.continueExceeding=typeof Z.continueExceeding==="boolean"?Z.continueExceeding:!1,J.exponentialBackoff=typeof Z.exponentialBackoff==="boolean"?Z.exponentialBackoff:!1,J.keyGenerator=typeof Z.keyGenerator==="function"?Z.keyGenerator:aj0,typeof Z.errorResponseBuilder==="function")J.errorResponseBuilder=Z.errorResponseBuilder,J.isCustomErrorMessage=!0;else J.errorResponseBuilder=tj0,J.isCustomErrorMessage=!1;J.skipOnError=typeof Z.skipOnError==="boolean"?Z.skipOnError:!1;let Y={rateLimitRan:Symbol("fastify.request.rateLimitRan"),store:null};if(Z.store){let X=Z.store;Y.store=new X(J)}else if(Z.redis)Y.store=new oj0(J.continueExceeding,J.exponentialBackoff,Z.redis,Z.nameSpace);else Y.store=new nj0(J.continueExceeding,J.exponentialBackoff,Z.cache);if($.decorateRequest(Y.rateLimitRan,!1),!$.hasDecorator("createRateLimit"))$.decorate("createRateLimit",(X)=>{let Q=Iu(Y,J,X);return(G)=>_u.apply(this,Q.concat(G))});if(!$.hasDecorator("rateLimit"))$.decorate("rateLimit",(X)=>{let Q=Iu(Y,J,X);return Su(...Q)});$.addHook("onRoute",(X)=>{if(X.config?.rateLimit!=null){if(typeof X.config.rateLimit==="object"){let Q=Object.create(Y),G=bu(J,X.config.rateLimit,{routeInfo:X});Q.store=Y.store.child(G),Cu(Q,G,X)}else if(X.config.rateLimit!==!1)throw Error("Unknown value for route rate-limit configuration")}else if(J.global)Cu(Y,J,X)})}function bu(...$){let Z=Object.assign({},...$);if(Number.isFinite(Z.timeWindow)&&Z.timeWindow>=0)Z.timeWindow=Math.trunc(Z.timeWindow);else if(typeof Z.timeWindow==="string")Z.timeWindow=Eu(Z.timeWindow);else if(typeof Z.timeWindow!=="function")Z.timeWindow=60000;if(Number.isFinite(Z.max)&&Z.max>=0)Z.max=Math.trunc(Z.max);else if(typeof Z.max!=="function")Z.max=1000;if(Number.isFinite(Z.ban)&&Z.ban>=0)Z.ban=Math.trunc(Z.ban);else Z.ban=-1;if(Z.groupId!==void 0&&typeof Z.groupId!=="string")throw Error("groupId must be a string");return Z}function Iu($,Z,J){if(typeof J==="object"){let Y=Object.create($),X=bu(Z,J,{routeInfo:{}});return Y.store=Y.store.child(X),[Y,X]}return[$,Z]}function Cu($,Z,J){let Y=Z.hook,X=Su($,Z);if(Array.isArray(J[Y]))J[Y].push(X);else if(typeof J[Y]==="function")J[Y]=[J[Y],X];else J[Y]=[X]}async function _u($,Z,J){let{store:Y}=$,X=await Z.keyGenerator(J),Q=J.routeOptions.config?.rateLimit?.groupId;if(Q)X+=Q;if(Z.allowList){if(typeof Z.allowList==="function"){if(await Z.allowList(J,X))return{isAllowed:!0,key:X}}else if(Z.allowList.indexOf(X)!==-1)return{isAllowed:!0,key:X}}let G=typeof Z.max==="number"?Z.max:await Z.max(J,X),W=typeof Z.timeWindow==="number"?Z.timeWindow:await Z.timeWindow(J,X),K=0,V=0,U=0;try{let H=await new Promise((B,z)=>{Y.incr(X,(F,A)=>{F?z(F):B(A)},W,G)});K=H.current,V=H.ttl,U=Math.ceil(H.ttl/1000)}catch(H){if(!Z.skipOnError)throw H}return{isAllowed:!1,key:X,max:G,timeWindow:W,remaining:Math.max(0,G-K),ttl:V,ttlInSeconds:U,isExceeded:K>G,isBanned:Z.ban!==-1&&K-G>Z.ban}}function Su($,Z){let{rateLimitRan:J}=$;return async(Y,X)=>{if(Y[J])return;Y[J]=!0;let Q=await _u($,Z,Y);if(Q.isAllowed)return;let{key:G,max:W,remaining:K,ttl:V,ttlInSeconds:U,isExceeded:H,isBanned:B}=Q;if(!H){if(Z.addHeadersOnExceeding[Z.labels.rateLimit])X.header(Z.labels.rateLimit,W);if(Z.addHeadersOnExceeding[Z.labels.rateRemaining])X.header(Z.labels.rateRemaining,K);if(Z.addHeadersOnExceeding[Z.labels.rateReset])X.header(Z.labels.rateReset,U);Z.onExceeding(Y,G);return}if(Z.onExceeded(Y,G),Z.addHeaders[Z.labels.rateLimit])X.header(Z.labels.rateLimit,W);if(Z.addHeaders[Z.labels.rateRemaining])X.header(Z.labels.rateRemaining,0);if(Z.addHeaders[Z.labels.rateReset])X.header(Z.labels.rateReset,U);if(Z.addHeaders[Z.labels.retryAfter])X.header(Z.labels.retryAfter,U);let z={statusCode:429,ban:!1,max:W,ttl:V,after:ij0(U*1000,!0)};if(B)z.statusCode=403,z.ban=!0,Z.onBanReach(Y,G);throw Z.errorResponseBuilder(Y,z)}}AK.exports=cj0(OA,{fastify:"5.x",name:"@fastify/rate-limit"});AK.exports.default=OA;AK.exports.fastifyRateLimit=OA});var gm=S((hm,TK)=>{(($,Z)=>{if(typeof define==="function"&&define.amd)define([],Z);else if(typeof TK==="object"&&TK.exports)TK.exports=Z();else $.fuzzysort=Z()})(hm,($)=>{var Z=(u,l)=>{if(!u||!l)return r;var $0=z(u);if(!g(l))l=B(l);var v=$0.bitflags;if((v&l._bitflags)!==v)return r;return A($0,l)},J=(u,l,$0)=>{if(!u)return $0?.all?F(l,$0):t;var v=z(u),h=v.bitflags,c=v.containsSpace,m=U($0?.threshold||0),a=$0?.limit||d,e=0,H0=0,A0=l.length;function P0(x){if(e<a)h0.add(x),++e;else if(++H0,x._score>h0.peek()._score)h0.replaceTop(x)}if($0?.key){var s0=$0.key;for(var o=0;o<A0;++o){var K0=l[o],z0=k(K0,s0);if(!z0)continue;if(!g(z0))z0=B(z0);if((h&z0._bitflags)!==h)continue;var q0=A(v,z0);if(q0===r)continue;if(q0._score<m)continue;q0.obj=K0,P0(q0)}}else if($0?.keys){var Q1=$0.keys,_0=Q1.length;$:for(var o=0;o<A0;++o){var K0=l[o];{var e0=0;for(var S0=0;S0<_0;++S0){var s0=Q1[S0],z0=k(K0,s0);if(!z0){b[S0]=G0;continue}if(!g(z0))z0=B(z0);b[S0]=z0,e0|=z0._bitflags}if((h&e0)!==h)continue}if(c)for(let n=0;n<v.spaceSearches.length;n++)E[n]=p;for(var S0=0;S0<_0;++S0){if(z0=b[S0],z0===G0){y[S0]=G0;continue}if(y[S0]=A(v,z0,!1,c),y[S0]===r){y[S0]=G0;continue}if(c)for(let J0=0;J0<v.spaceSearches.length;J0++){if(f[J0]>-1000){if(E[J0]>p){var C1=(E[J0]+f[J0])/4;if(C1>E[J0])E[J0]=C1}}if(f[J0]>E[J0])E[J0]=f[J0]}}if(c){for(let n=0;n<v.spaceSearches.length;n++)if(E[n]===p)continue $}else{var n0=!1;for(let n=0;n<_0;n++)if(y[n]._score!==p){n0=!0;break}if(!n0)continue}var F1=new W(_0);for(let n=0;n<_0;n++)F1[n]=y[n];if(c){var a0=0;for(let n=0;n<v.spaceSearches.length;n++)a0+=E[n]}else{var a0=p;for(let J0=0;J0<_0;J0++){var q0=F1[J0];if(q0._score>-1000){if(a0>p){var C1=(a0+q0._score)/4;if(C1>a0)a0=C1}}if(q0._score>a0)a0=q0._score}}if(F1.obj=K0,F1._score=a0,$0?.scoreFn){if(a0=$0.scoreFn(F1),!a0)continue;a0=U(a0),F1._score=a0}if(a0<m)continue;P0(F1)}}else for(var o=0;o<A0;++o){var z0=l[o];if(!z0)continue;if(!g(z0))z0=B(z0);if((h&z0._bitflags)!==h)continue;var q0=A(v,z0);if(q0===r)continue;if(q0._score<m)continue;P0(q0)}if(e===0)return t;var U1=Array(e);for(var o=e-1;o>=0;--o)U1[o]=h0.poll();return U1.total=e+H0,U1},Y=(u,l="<b>",$0="</b>")=>{var v=typeof l==="function"?l:void 0,h=u.target,c=h.length,m=u.indexes,a="",e=0,H0=0,A0=!1,P0=[];for(var s0=0;s0<c;++s0){var o=h[s0];if(m[H0]===s0){if(++H0,!A0)if(A0=!0,v)P0.push(a),a="";else a+=l;if(H0===m.length){if(v)a+=o,P0.push(v(a,e++)),a="",P0.push(h.substr(s0+1));else a+=o+$0+h.substr(s0+1);break}}else if(A0)if(A0=!1,v)P0.push(v(a,e++)),a="";else a+=$0;a+=o}return v?P0:a},X=(u)=>{if(typeof u==="number")u=""+u;else if(typeof u!=="string")u="";var l=w(u);return K(u,{_targetLower:l._lower,_targetLowerCodes:l.lowerCodes,_bitflags:l.bitflags})},Q=()=>{C.clear(),R.clear()};class G{get["indexes"](){return this._indexes.slice(0,this._indexes.len).sort((u,l)=>u-l)}set["indexes"](u){return this._indexes=u}["highlight"](u,l){return Y(this,u,l)}get["score"](){return V(this._score)}set["score"](u){this._score=U(u)}}class W extends Array{get["score"](){return V(this._score)}set["score"](u){this._score=U(u)}}var K=(u,l)=>{let $0=new G;return $0.target=u,$0.obj=l.obj??r,$0._score=l._score??p,$0._indexes=l._indexes??[],$0._targetLower=l._targetLower??"",$0._targetLowerCodes=l._targetLowerCodes??r,$0._nextBeginningIndexes=l._nextBeginningIndexes??r,$0._bitflags=l._bitflags??0,$0},V=(u)=>{if(u===p)return 0;if(u>1)return u;return Math.E**(((-u+1)**0.04307-1)*-2)},U=(u)=>{if(u===0)return p;if(u>1)return u;return 1-Math.pow(Math.log(u)/-2+1,23.218017181332716)},H=(u)=>{if(typeof u==="number")u=""+u;else if(typeof u!=="string")u="";u=u.trim();var l=w(u),$0=[];if(l.containsSpace){var v=u.split(/\s+/);v=[...new Set(v)];for(var h=0;h<v.length;h++){if(v[h]==="")continue;var c=w(v[h]);$0.push({lowerCodes:c.lowerCodes,_lower:v[h].toLowerCase(),containsSpace:!1})}}return{lowerCodes:l.lowerCodes,_lower:l._lower,containsSpace:l.containsSpace,bitflags:l.bitflags,spaceSearches:$0}},B=(u)=>{if(u.length>999)return X(u);var l=C.get(u);if(l!==void 0)return l;return l=X(u),C.set(u,l),l},z=(u)=>{if(u.length>999)return H(u);var l=R.get(u);if(l!==void 0)return l;return l=H(u),R.set(u,l),l},F=(u,l)=>{var $0=[];$0.total=u.length;var v=l?.limit||d;if(l?.key)for(var h=0;h<u.length;h++){var c=u[h],m=k(c,l.key);if(m==r)continue;if(!g(m))m=B(m);var a=K(m.target,{_score:m._score,obj:c});if($0.push(a),$0.length>=v)return $0}else if(l?.keys)for(var h=0;h<u.length;h++){var c=u[h],e=new W(l.keys.length);for(var H0=l.keys.length-1;H0>=0;--H0){var m=k(c,l.keys[H0]);if(!m){e[H0]=G0;continue}if(!g(m))m=B(m);m._score=p,m._indexes.len=0,e[H0]=m}if(e.obj=c,e._score=p,$0.push(e),$0.length>=v)return $0}else for(var h=0;h<u.length;h++){var m=u[h];if(m==r)continue;if(!g(m))m=B(m);if(m._score=p,m._indexes.len=0,$0.push(m),$0.length>=v)return $0}return $0},A=(u,l,$0=!1,v=!1)=>{if($0===!1&&u.containsSpace)return q(u,l,v);var{_lower:h,lowerCodes:c}=u,m=c[0],a=l._targetLowerCodes,e=c.length,H0=a.length,o=0,A0=0,P0=0;for(;;){var s0=m===a[A0];if(s0){if(T[P0++]=A0,++o,o===e)break;m=c[o]}if(++A0,A0>=H0)return r}var o=0,K0=!1,z0=0,q0=l._nextBeginningIndexes;if(q0===r)q0=l._nextBeginningIndexes=M(l.target);A0=T[0]===0?0:q0[T[0]-1];var Q1=0;if(A0!==H0)for(;;)if(A0>=H0){if(o<=0)break;if(++Q1,Q1>200)break;--o;var _0=P[--z0];A0=q0[_0]}else{var s0=c[o]===a[A0];if(s0){if(P[z0++]=A0,++o,o===e){K0=!0;break}++A0}else A0=q0[A0]}var e0=e<=1?-1:l._targetLower.indexOf(h,T[0]),S0=!!~e0,C1=!S0?!1:e0===0||l._nextBeginningIndexes[e0-1]===e0;if(S0&&!C1)for(var n0=0;n0<q0.length;n0=q0[n0]){if(n0<=e0)continue;for(var F1=0;F1<e;F1++)if(c[F1]!==l._targetLowerCodes[n0+F1])break;if(F1===e){e0=n0,C1=!0;break}}var a0=(n)=>{var J0=0,C0=0;for(var M0=1;M0<e;++M0)if(n[M0]-n[M0-1]!==1)J0-=n[M0],++C0;var D1=n[e-1]-n[0]-(e-1);if(J0-=(12+D1)*C0,n[0]!==0)J0-=n[0]*n[0]*0.2;if(!K0)J0*=1000;else{var g0=1;for(var M0=q0[0];M0<H0;M0=q0[M0])++g0;if(g0>24)J0*=(g0-24)*10}if(J0-=(H0-e)/2,S0)J0/=1+e*e*1;if(C1)J0/=1+e*e*1;return J0-=(H0-e)/2,J0};if(!K0){if(S0)for(var n0=0;n0<e;++n0)T[n0]=e0+n0;var U1=T,x=a0(U1)}else if(C1){for(var n0=0;n0<e;++n0)T[n0]=e0+n0;var U1=T,x=a0(T)}else var U1=P,x=a0(P);l._score=x;for(var n0=0;n0<e;++n0)l._indexes[n0]=U1[n0];l._indexes.len=e;let i=new G;return i.target=l.target,i._score=l._score,i._indexes=l._indexes,i},q=(u,l,$0)=>{var v=new Set,h=0,c=r,m=0,a=u.spaceSearches,e=a.length,H0=0,A0=()=>{for(let C1=H0-1;C1>=0;C1--)l._nextBeginningIndexes[_[C1*2+0]]=_[C1*2+1]},P0=!1;for(var S0=0;S0<e;++S0){f[S0]=p;var s0=a[S0];if(c=A(s0,l),$0){if(c===r)continue;P0=!0}else if(c===r)return A0(),r;var o=S0===e-1;if(!o){var K0=c._indexes,z0=!0;for(let n0=0;n0<K0.len-1;n0++)if(K0[n0+1]-K0[n0]!==1){z0=!1;break}if(z0){var q0=K0[K0.len-1]+1,Q1=l._nextBeginningIndexes[q0-1];for(let n0=q0-1;n0>=0;n0--){if(Q1!==l._nextBeginningIndexes[n0])break;l._nextBeginningIndexes[n0]=q0,_[H0*2+0]=n0,_[H0*2+1]=Q1,H0++}}}if(h+=c._score/e,f[S0]=c._score/e,c._indexes[0]<m)h-=(m-c._indexes[0])*2;m=c._indexes[0];for(var _0=0;_0<c._indexes.len;++_0)v.add(c._indexes[_0])}if($0&&!P0)return r;A0();var e0=A(u,l,!0);if(e0!==r&&e0._score>h){if($0)for(var S0=0;S0<e;++S0)f[S0]=e0._score/e;return e0}if($0)c=l;c._score=h;var S0=0;for(let C1 of v)c._indexes[S0++]=C1;return c._indexes.len=S0,c},N=(u)=>u.replace(/\p{Script=Latin}+/gu,(l)=>l.normalize("NFD")).replace(/[\u0300-\u036f]/g,""),w=(u)=>{u=N(u);var l=u.length,$0=u.toLowerCase(),v=[],h=0,c=!1;for(var m=0;m<l;++m){var a=v[m]=$0.charCodeAt(m);if(a===32){c=!0;continue}var e=a>=97&&a<=122?a-97:a>=48&&a<=57?26:a<=127?30:31;h|=1<<e}return{lowerCodes:v,bitflags:h,containsSpace:c,_lower:$0}},j=(u)=>{var l=u.length,$0=[],v=0,h=!1,c=!1;for(var m=0;m<l;++m){var a=u.charCodeAt(m),e=a>=65&&a<=90,H0=e||a>=97&&a<=122||a>=48&&a<=57,A0=e&&!h||!c||!H0;if(h=e,c=H0,A0)$0[v++]=m}return $0},M=(u)=>{u=N(u);var l=u.length,$0=j(u),v=[],h=$0[0],c=0;for(var m=0;m<l;++m)if(h>m)v[m]=h;else h=$0[++c],v[m]=h===void 0?l:h;return v},C=new Map,R=new Map,T=[],P=[],_=[],E=[],f=[],b=[],y=[],k=(u,l)=>{var $0=u[l];if($0!==void 0)return $0;if(typeof l==="function")return l(u);var v=l;if(!Array.isArray(l))v=l.split(".");var h=v.length,c=-1;while(u&&++c<h)u=u[v[c]];return u},g=(u)=>{return typeof u==="object"&&typeof u._bitflags==="number"},d=1/0,p=-d,t=[];t.total=0;var r=null,G0=X(""),O0=(u)=>{var l=[],$0=0,v={},h=(c)=>{for(var m=0,a=l[m],e=1;e<$0;){var H0=e+1;m=e,H0<$0&&l[H0]._score<l[e]._score&&(m=H0),l[m-1>>1]=l[m],e=1+(m<<1)}for(var A0=m-1>>1;m>0&&a._score<l[A0]._score;A0=(m=A0)-1>>1)l[m]=l[A0];l[m]=a};return v.add=(c)=>{var m=$0;l[$0++]=c;for(var a=m-1>>1;m>0&&c._score<l[a]._score;a=(m=a)-1>>1)l[m]=l[a];l[m]=c},v.poll=(c)=>{if($0!==0){var m=l[0];return l[0]=l[--$0],h(),m}},v.peek=(c)=>{if($0!==0)return l[0]},v.replaceTop=(c)=>{l[0]=c,h()},v},h0=O0();return{single:Z,go:J,prepare:X,cleanup:Q}})});var W9={};B1(W9,{toRow:()=>lM0,plan:()=>$D0,listGlobal:()=>YD0,list:()=>JD0,layer:()=>Cd,isDefaultTitle:()=>mM0,getUsage:()=>ZD0,fromRow:()=>qY,defaultLayer:()=>KD0,SetTitleInput:()=>sM0,SetRevertInput:()=>tM0,SetPermissionInput:()=>aM0,SetArchivedInput:()=>rM0,Service:()=>eK,RemoveInput:()=>oM0,ProjectInfo:()=>Rd,MessagesInput:()=>eM0,Info:()=>z6,GlobalInfo:()=>dM0,GetInput:()=>iM0,ForkInput:()=>cM0,Event:()=>NY,CreateInput:()=>pM0,ChildrenInput:()=>nM0,BusyError:()=>Id});var KV;((UD0)=>{let $=["brave","calm","clever","cosmic","crisp","curious","eager","gentle","glowing","happy","hidden","jolly","kind","lucky","mighty","misty","neon","nimble","playful","proud","quick","quiet","shiny","silent","stellar","sunny","swift","tidy","witty"],Z=["cabin","cactus","canyon","circuit","comet","eagle","engine","falcon","forest","garden","harbor","island","knight","lagoon","meadow","moon","mountain","nebula","orchid","otter","panda","pixel","planet","river","rocket","sailor","squid","star","tiger","wizard","wolf"];function J(){return[$[Math.floor(Math.random()*$.length)],Z[Math.floor(Math.random()*Z.length)]].join("-")}UD0.create=J})(KV||={});var l1={};B1(l1,{subscribeAll:()=>ud,subscribe:()=>gd,publish:()=>hd,layer:()=>VV,defaultLayer:()=>yd,Service:()=>EY,InstanceDisposed:()=>AO,Bus:()=>l1});var MZ=E0.create({service:"bus"}),AO=L1.define("server.instance.disposed",I.object({directory:I.string()}));class EY extends S1.Service()("@qitqode/Bus"){}var VV=T0.effect(EY,L.gen(function*(){let $=yield*B0.make(L.fn("Bus.state")(function*(K){let V=yield*h6.unbounded(),U=new Map;return yield*L.addFinalizer(()=>L.gen(function*(){yield*h6.publish(V,{type:AO.type,properties:{directory:K.directory}}),yield*h6.shutdown(V);for(let H of U.values())yield*h6.shutdown(H)})),{wildcard:V,typed:U}}));function Z(K,V){return L.gen(function*(){let U=K.typed.get(V.type);if(!U)U=yield*h6.unbounded(),K.typed.set(V.type,U);return U})}function J(K,V){return L.gen(function*(){let U=yield*B0.get($),H={type:K.type,properties:V};MZ.debug("publishing",{type:K.type});let B=U.typed.get(K.type);if(B)yield*h6.publish(B,H);yield*h6.publish(U.wildcard,H);let z=yield*B0.directory,F=yield*B0.context,A=yield*B0.workspaceID;T7.emit("event",{directory:z,project:F.project.id,workspace:A,payload:H})})}function Y(K){return MZ.info("subscribing",{type:K.type}),I$.unwrap(L.gen(function*(){let V=yield*B0.get($),U=yield*Z(V,K);return I$.fromPubSub(U)})).pipe(I$.ensuring(L.sync(()=>MZ.info("unsubscribing",{type:K.type}))))}function X(){return MZ.info("subscribing",{type:"*"}),I$.unwrap(L.gen(function*(){let K=yield*B0.get($);return I$.fromPubSub(K.wildcard)})).pipe(I$.ensuring(L.sync(()=>MZ.info("unsubscribing",{type:"*"}))))}function Q(K,V,U){return L.gen(function*(){MZ.info("subscribing",{type:V});let H=yield*R7.make(),B=yield*CY.make(),z=yield*CY.provide(B)(h6.subscribe(K));return yield*CY.provide(B)(I$.fromSubscription(z).pipe(I$.runForEach((F)=>L.tryPromise({try:()=>Promise.resolve().then(()=>U(F)),catch:(A)=>{MZ.error("subscriber failed",{type:V,cause:A})}}).pipe(L.ignore)),L.forkScoped)),()=>{MZ.info("unsubscribing",{type:V}),H.fork(CY.close(B,O9.void))}})}let G=L.fn("Bus.subscribeCallback")(function*(K,V){let U=yield*B0.get($),H=yield*Z(U,K);return yield*Q(H,K.type,V)}),W=L.fn("Bus.subscribeAllCallback")(function*(K){let V=yield*B0.get($);return yield*Q(V.wildcard,"*",K)});return EY.of({publish:J,subscribe:Y,subscribeAll:X,subscribeCallback:G,subscribeAllCallback:W})})),yd=VV,{runPromise:xd,runSync:OO}=FO(EY,VV);async function hd($,Z){return xd((J)=>J.publish($,Z))}function gd($,Z){return OO((J)=>J.subscribeCallback($,Z))}function ud($){return OO((Z)=>Z.subscribeAllCallback($))}var X$={};B1(X$,{versionedType:()=>bY,run:()=>Zp,reset:()=>rd,replayAll:()=>$p,replay:()=>wO,remove:()=>Jp,registry:()=>_Y,project:()=>ed,payloads:()=>Yp,init:()=>ad,define:()=>td,SyncEvent:()=>X$});var _8=g6("event_sequence",{aggregate_id:w1().notNull().primaryKey(),seq:j8().notNull()}),j9=g6("event",{id:w1().primaryKey(),aggregate_id:w1().notNull().references(()=>_8.aggregate_id,{onDelete:"cascade"}),seq:j8().notNull(),type:w1().notNull(),data:w1({mode:"json"}).$type().notNull()});var d1={};B1(d1,{timestamp:()=>sd,schema:()=>pd,descending:()=>od,create:()=>qO,ascending:()=>nd,Identifier:()=>d1});import{randomBytes as md}from"crypto";var ld="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function UV($){let Z="",J=md($);for(let Y=0;Y<$;Y++)Z+=ld[J[Y]%62];return Z}function HV(){let $=0,Z=0;return(J)=>{if(J!==void 0)return BigInt(J)*BigInt(4096);let Y=Date.now();if(Y>$)$=Y,Z=0;if(Z++,Z>4095)$++,Z=1;return BigInt($)*BigInt(4096)+BigInt(Z)}}function BV($){let Z=Buffer.alloc(6);for(let J=0;J<6;J++)Z[J]=Number($>>BigInt(40-8*J)&BigInt(255));return Z.toString("hex")}var dd;((LD0)=>{let Z=HV();function J(){return X(!1)}LD0.ascending=J;function Y(){return X(!0)}LD0.descending=Y;function X(Q,G){let W=Z(G);return W=Q?~W:W,BV(W)+UV(14)}LD0.create=X})(dd||={});var q9={event:"evt",session:"ses",message:"msg",permission:"per",question:"que",user:"usr",part:"prt",pty:"pty",tool:"tool",workspace:"wrk",entry:"ent",workflow:"wf"};function pd($){return I.string().startsWith(q9[$])}var cd=26,id=HV();function nd($,Z){return jO($,"ascending",Z)}function od($,Z){return jO($,"descending",Z)}function jO($,Z,J){if(!J)return qO(q9[$],Z);if(!J.startsWith(q9[$]))throw Error(`ID ${J} does not start with ${q9[$]}`);return J}function qO($,Z,J){let Y=id(J);return Y=Z==="descending"?~Y:Y,$+"_"+BV(Y)+UV(cd-12)}function sd($){let Z=$.split("_")[0],J=$.slice(Z.length+1,Z.length+13),Y=BigInt("0x"+J);return Number(Y/BigInt(4096))}var NO=O.String.annotate({[F$]:d1.schema("event")}).pipe(O.brand("EventID"),u0(($)=>({ascending:(Z)=>$.make(d1.ascending("event",Z)),zod:d1.schema("event").pipe(I.custom())})));var _Y=new Map,N9,M9=new Map,zV=!1,FV;function rd(){zV=!1,N9=void 0,FV=($,Z)=>Z}function ad($){N9=new Map($.projectors);for(let[Z,J]of M9.entries()){let Y=_Y.get(bY(Z,J));L1.define(Y.type,Y.properties||Y.schema)}zV=!0,FV=$.convertEvent||((Z,J)=>J)}function bY($,Z){return Z?`${$}.${Z}`:$}function td($){if(zV)throw Error("Error defining sync event: sync system has been frozen");let Z={type:$.type,version:$.version,aggregate:$.aggregate,schema:$.schema,properties:$.busSchema?$.busSchema:$.schema};return M9.set(Z.type,Math.max(Z.version,M9.get(Z.type)||0)),_Y.set(bY(Z.type,Z.version),Z),Z}function ed($,Z){return[$,Z]}function DO($,Z,J){if(N9==null)throw Error("No projectors available. Call `SyncEvent.init` to install projectors");let Y=N9.get($);if(!Y)throw Error(`Projector not found for event: ${$.type}`);W1.transaction((X)=>{if(Y(X,Z.data),b0.QITQODE_EXPERIMENTAL_WORKSPACES)X.insert(_8).values({aggregate_id:Z.aggregateID,seq:Z.seq}).onConflictDoUpdate({target:_8.aggregate_id,set:{seq:Z.seq}}).run(),X.insert(j9).values({id:Z.id,seq:Z.seq,aggregate_id:Z.aggregateID,type:bY($.type,$.version),data:Z.data}).run();W1.effect(()=>{if(J?.publish){let Q=FV($.type,Z.data);if(Q instanceof Promise)Q.then((G)=>{l1.publish({type:$.type,properties:$.schema},G)});else l1.publish({type:$.type,properties:$.schema},Q);T7.emit("event",{directory:S8.directory,project:S8.project.id,workspace:MO.workspaceID,payload:{type:"sync",syncEvent:{type:bY($.type,$.version),...Z}}})}})})}function wO($,Z){let J=_Y.get($.type);if(!J)throw Error(`Unknown event type: ${$.type}`);let X=W1.use((G)=>G.select({seq:_8.seq}).from(_8).where(m0(_8.aggregate_id,$.aggregateID)).get())?.seq??-1;if($.seq<=X)return;let Q=X+1;if($.seq!==Q)throw Error(`Sequence mismatch for aggregate "${$.aggregateID}": expected ${Q}, got ${$.seq}`);DO(J,$,{publish:!!Z?.publish})}function $p($,Z){let J=$[0]?.aggregateID;if(!J)return;if($.some((X)=>X.aggregateID!==J))throw Error("Replay events must belong to the same session");let Y=$[0].seq;for(let[X,Q]of $.entries()){let G=Y+X;if(Q.seq!==G)throw Error(`Replay sequence mismatch at index ${X}: expected ${G}, got ${Q.seq}`)}for(let X of $)wO(X,Z);return J}function Zp($,Z,J){let Y=Z[$.aggregate];if(Y==null)throw Error(`SyncEvent.run: "${$.aggregate}" required but not found: ${JSON.stringify(Z)}`);if($.version!==M9.get($.type))throw Error(`SyncEvent.run: running old versions of events is not allowed: ${$.type}`);let{publish:X=!0}=J||{};W1.transaction((Q)=>{let G=NO.ascending(),W=Q.select({seq:_8.seq}).from(_8).where(m0(_8.aggregate_id,Y)).get(),K=W?.seq!=null?W.seq+1:0;DO($,{id:G,seq:K,aggregateID:Y,data:Z},{publish:X})},{behavior:"immediate"})}function Jp($){W1.transaction((Z)=>{Z.delete(_8).where(m0(_8.aggregate_id,$)).run(),Z.delete(j9).where(m0(j9.aggregate_id,$)).run()})}function Yp(){return _Y.entries().map(([$,Z])=>{return I.object({type:I.literal("sync"),name:I.literal($),id:I.string(),seq:I.number(),aggregateID:I.literal(Z.aggregate),data:Z.schema}).meta({ref:`SyncEvent.${Z.type}`})}).toArray()}var b$={};B1(b$,{toModelMessagesEffect:()=>z2,toModelMessages:()=>V00,stream:()=>sU,parts:()=>_L,page:()=>bL,isMedia:()=>LX,get:()=>ma,fromError:()=>lA,fingerprint:()=>DH,filterCompactedEffect:()=>la,filterCompacted:()=>rU,cursor:()=>oU,WithParts:()=>xa,User:()=>RL,ToolStateRunning:()=>qL,ToolStatePending:()=>jL,ToolStateError:()=>ML,ToolStateCompleted:()=>NL,ToolState:()=>DL,ToolPart:()=>wL,TextPart:()=>YL,SymbolSource:()=>GL,SubtaskPart:()=>HL,StructuredOutputError:()=>ow,StepStartPart:()=>FL,StepFinishPart:()=>OL,SnapshotPart:()=>ZL,SYNTHETIC_ATTACHMENT_PROMPT:()=>B2,RetryPart:()=>zL,ResourceSource:()=>WL,ReasoningPart:()=>XL,Provenance:()=>TL,PatchPart:()=>JL,Part:()=>iU,OutputLengthError:()=>O4,OutputFormatText:()=>tw,OutputFormatJsonSchema:()=>ew,ModelError:()=>aw,MessageV2:()=>b$,InvalidOutputError:()=>sw,Info:()=>nU,Format:()=>$L,FileSource:()=>QL,FilePartSource:()=>KL,FilePart:()=>cU,Event:()=>ya,ContextOverflowError:()=>UX,ContentFilterError:()=>rw,CompactionPart:()=>BL,CheckpointPart:()=>UL,AuthError:()=>j4,Assistant:()=>PL,AgentPart:()=>VL,AbortedError:()=>k5,APIError:()=>L6});var r0=O.String.annotate({[F$]:d1.schema("session")}).pipe(O.brand("SessionID"),u0(($)=>({descending:(Z)=>$.make(d1.descending("session",Z)),zod:d1.schema("session").pipe(I.custom())}))),i1=O.String.annotate({[F$]:d1.schema("message")}).pipe(O.brand("MessageID"),u0(($)=>({ascending:(Z)=>$.make(d1.ascending("message",Z)),zod:d1.schema("message").pipe(I.custom())}))),DZ=O.String.annotate({[F$]:d1.schema("part")}).pipe(O.brand("PartID"),u0(($)=>({ascending:(Z)=>$.make(d1.ascending("part",Z)),zod:d1.schema("part").pipe(I.custom())})));var U4={};B1(U4,{layer:()=>fw,defaultLayer:()=>Ta,Symbol:()=>Na,Status:()=>Da,Service:()=>V4,Range:()=>K4,Event:()=>Sw,DocumentSymbol:()=>Ma,Diagnostic:()=>KX});var f7=m6(zq(),1);import hY from"path";import{pathToFileURL as A5,fileURLToPath as cc}from"url";var Fq={".abap":"abap",".bat":"bat",".bib":"bibtex",".bibtex":"bibtex",".clj":"clojure",".cljs":"clojure",".cljc":"clojure",".edn":"clojure",".coffee":"coffeescript",".c":"c",".cpp":"cpp",".cxx":"cpp",".cc":"cpp",".c++":"cpp",".cs":"csharp",".css":"css",".d":"d",".pas":"pascal",".pascal":"pascal",".diff":"diff",".patch":"diff",".dart":"dart",".dockerfile":"dockerfile",".ex":"elixir",".exs":"elixir",".erl":"erlang",".ets":"typescript",".hrl":"erlang",".fs":"fsharp",".fsi":"fsharp",".fsx":"fsharp",".fsscript":"fsharp",".gitcommit":"git-commit",".gitrebase":"git-rebase",".go":"go",".groovy":"groovy",".gleam":"gleam",".hbs":"handlebars",".handlebars":"handlebars",".hs":"haskell",".lhs":"haskell",".html":"html",".htm":"html",".ini":"ini",".java":"java",".jl":"julia",".js":"javascript",".kt":"kotlin",".kts":"kotlin",".jsx":"javascriptreact",".json":"json",".tex":"latex",".latex":"latex",".less":"less",".lua":"lua",".makefile":"makefile",makefile:"makefile",".md":"markdown",".markdown":"markdown",".m":"objective-c",".mm":"objective-cpp",".pl":"perl",".pm":"perl",".pm6":"perl6",".php":"php",".ps1":"powershell",".psm1":"powershell",".pug":"jade",".jade":"jade",".py":"python",".r":"r",".cshtml":"razor",".razor":"razor",".rb":"ruby",".rake":"ruby",".gemspec":"ruby",".ru":"ruby",".erb":"erb",".html.erb":"erb",".js.erb":"erb",".css.erb":"erb",".json.erb":"erb",".rs":"rust",".scss":"scss",".sass":"sass",".scala":"scala",".shader":"shaderlab",".sh":"shellscript",".bash":"shellscript",".zsh":"shellscript",".ksh":"shellscript",".sql":"sql",".svelte":"svelte",".swift":"swift",".ts":"typescript",".tsx":"typescriptreact",".mts":"typescript",".cts":"typescript",".mtsx":"typescriptreact",".ctsx":"typescriptreact",".xml":"xml",".xsl":"xsl",".yaml":"yaml",".yml":"yaml",".mjs":"javascript",".cjs":"javascript",".vue":"vue",".zig":"zig",".zon":"zig",".astro":"astro",".ml":"ocaml",".mli":"ocaml",".tf":"terraform",".tfvars":"terraform-vars",".hcl":"hcl",".nix":"nix",".typ":"typst",".typc":"typst"};function dV($,Z){let J;return Promise.race([$,new Promise((X,Q)=>{J=setTimeout(()=>{Q(Error(`Operation timed out after ${Z}ms`))},Z)})]).finally(()=>clearTimeout(J))}var ic=150,O5=E0.create({service:"lsp.client"}),nc=q1.create("LSPInitializeError",I.object({serverID:I.string()})),Aq={Diagnostics:L1.define("lsp.client.diagnostics",I.object({serverID:I.string(),path:I.string()}))};async function Oq($){let Z=O5.clone().tag("serverID",$.serverID);Z.info("starting client");let J=f7.createMessageConnection(new f7.StreamMessageReader($.server.process.stdout),new f7.StreamMessageWriter($.server.process.stdin)),Y=new Map;if(J.onNotification("textDocument/publishDiagnostics",(G)=>{let W=o0.normalizePath(cc(G.uri));Z.info("textDocument/publishDiagnostics",{path:W,count:G.diagnostics.length});let K=Y.has(W);if(Y.set(W,G.diagnostics),!K&&$.serverID==="typescript")return;l1.publish(Aq.Diagnostics,{path:W,serverID:$.serverID})}),J.onRequest("window/workDoneProgress/create",(G)=>{return Z.info("window/workDoneProgress/create",G),null}),J.onRequest("workspace/configuration",async()=>{return[$.server.initialization??{}]}),J.onRequest("client/registerCapability",async()=>{}),J.onRequest("client/unregisterCapability",async()=>{}),J.onRequest("workspace/workspaceFolders",async()=>[{name:"workspace",uri:A5($.root).href}]),J.listen(),Z.info("sending initialize"),await dV(J.sendRequest("initialize",{rootUri:A5($.root).href,processId:$.server.process.pid,workspaceFolders:[{name:"workspace",uri:A5($.root).href}],initializationOptions:{...$.server.initialization},capabilities:{window:{workDoneProgress:!0},workspace:{configuration:!0,didChangeWatchedFiles:{dynamicRegistration:!0}},textDocument:{synchronization:{didOpen:!0,didChange:!0},publishDiagnostics:{versionSupport:!0}}}}),45000).catch((G)=>{throw Z.error("initialize error",{error:G}),new nc({serverID:$.serverID},{cause:G})}),await J.sendNotification("initialized",{}),$.server.initialization)await J.sendNotification("workspace/didChangeConfiguration",{settings:$.server.initialization});let X={},Q={root:$.root,get serverID(){return $.serverID},get connection(){return J},notify:{async open(G){G.path=hY.isAbsolute(G.path)?G.path:hY.resolve($.directory,G.path);let W=await o0.readText(G.path),K=hY.extname(G.path),V=Fq[K]??"plaintext",U=X[G.path];if(U!==void 0){O5.info("workspace/didChangeWatchedFiles",G),await J.sendNotification("workspace/didChangeWatchedFiles",{changes:[{uri:A5(G.path).href,type:2}]});let H=U+1;X[G.path]=H,O5.info("textDocument/didChange",{path:G.path,version:H}),await J.sendNotification("textDocument/didChange",{textDocument:{uri:A5(G.path).href,version:H},contentChanges:[{text:W}]});return}O5.info("workspace/didChangeWatchedFiles",G),await J.sendNotification("workspace/didChangeWatchedFiles",{changes:[{uri:A5(G.path).href,type:1}]}),O5.info("textDocument/didOpen",G),Y.delete(G.path),await J.sendNotification("textDocument/didOpen",{textDocument:{uri:A5(G.path).href,languageId:V,version:0,text:W}}),X[G.path]=0;return}},get diagnostics(){return Y},async waitForDiagnostics(G){let W=o0.normalizePath(hY.isAbsolute(G.path)?G.path:hY.resolve($.directory,G.path));O5.info("waiting for diagnostics",{path:W});let K,V;return await dV(new Promise((U)=>{K=l1.subscribe(Aq.Diagnostics,(H)=>{if(H.properties.path===W&&H.properties.serverID===Q.serverID){if(V)clearTimeout(V);V=setTimeout(()=>{O5.info("got diagnostics",{path:W}),K?.(),U()},ic)}})}),3000).catch(()=>{}).finally(()=>{if(V)clearTimeout(V);K?.()})},async shutdown(){Z.info("shutting down"),J.end(),J.dispose(),await f1.stop($.server.process),Z.info("shutdown")}};return Z.info("initialized"),Q}import bw from"path";import{pathToFileURL as _w,fileURLToPath as qa}from"url";var k7={};B1(k7,{Zls:()=>lq,YamlLS:()=>Iq,Vue:()=>Dq,Typescript:()=>Mq,Ty:()=>pq,Tinymist:()=>aq,TexLab:()=>eq,TerraformLS:()=>tq,Svelte:()=>Rq,SourceKit:()=>kq,RustAnalyzer:()=>vq,Rubocop:()=>dq,Pyright:()=>cq,Prisma:()=>Eq,PHPIntelephense:()=>nq,Oxlint:()=>Lq,Ocaml:()=>uq,Nixd:()=>rq,LuaLS:()=>Cq,KotlinLS:()=>hq,JuliaLS:()=>oq,JDTLS:()=>xq,HLS:()=>sq,Gopls:()=>_q,Gleam:()=>mq,FSharp:()=>fq,ElixirLS:()=>iq,ESLint:()=>wq,DockerfileLS:()=>$N,Deno:()=>Nq,Dart:()=>gq,Clojure:()=>ZN,Clangd:()=>yq,CSharp:()=>Sq,Biome:()=>Tq,BashLS:()=>bq,Astro:()=>Pq});function Z1($,Z,J){let Y=Array.isArray(Z)?[...Z]:[],X=Array.isArray(Z)?J:Z,Q=f1.spawn([$,...Y],{...X,stdin:"pipe",stdout:"pipe",stderr:"pipe"});if(!Q.stdin||!Q.stdout||!Q.stderr)throw Error("Process output not available");return Q}import oc from"fs/promises";import pV from"path";var Q0=E0.create({service:"lsp.server"}),cV=async($)=>oc.stat($).then(()=>!0).catch(()=>!1),q6=($,Z={})=>f1.run($,{...Z,nothrow:!0}),qq=($,Z={})=>f1.text($,{...Z,nothrow:!0});async function N6($,Z){if($)return $;if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;return j6.which(Z)}var M6=($,Z,J)=>Z1($,Z,{cwd:J,env:{...o8()}}),t0=($,Z)=>{return async(J,Y)=>{if(Z){let G=o0.up({targets:Z,start:pV.dirname(J),stop:Y.directory}),W=await G.next();if(await G.return(),W.value)return}let X=o0.up({targets:$,start:pV.dirname(J),stop:Y.directory}),Q=await X.next();if(await X.return(),!Q.value)return Y.directory;return pV.dirname(Q.value)}};import{createRequire as sc}from"module";import rc from"path";var LZ;((uL0)=>{function $(Z,J){try{return sc(rc.join(J,"package.json")).resolve(Z)}catch{}}uL0.resolve=$})(LZ||={});import ac from"path";async function TZ($,Z,J){let Y=await fetch($);if(!Y.ok){Q0.error(`Failed to download ${J}`);return}let X=ac.join(F0.Path.bin,Z);if(Y.body)await o0.writeStream(X,Y.body);return X}async function RZ($,Z){return M8.extractZip($,F0.Path.bin).then(()=>!0).catch((J)=>{return Q0.error(`Failed to extract ${Z} archive`,{error:J}),!1})}import D6 from"fs/promises";import{text as tc}from"stream/consumers";import D8 from"path";var Nq={id:"deno",root:async($,Z)=>{let J=o0.up({targets:["deno.json","deno.jsonc"],start:D8.dirname($),stop:Z.directory}),Y=await J.next();if(await J.return(),!Y.value)return;return D8.dirname(Y.value)},extensions:[".ts",".tsx",".js",".jsx",".mjs"],async spawn($){let Z=d0("deno");if(!Z){Q0.info("deno not found, please install deno first");return}return{process:Z1(Z,["lsp"],{cwd:$})}}},Mq={id:"typescript",root:t0(["package-lock.json","bun.lockb","bun.lock","pnpm-lock.yaml","yarn.lock"],["deno.json","deno.jsonc"]),extensions:[".ts",".tsx",".js",".jsx",".mjs",".cjs",".mts",".cts"],async spawn($,Z){let J=LZ.resolve("typescript/lib/tsserver.js",Z.directory);if(Q0.info("typescript server",{tsserver:J}),!J)return;let Y=await j6.which("typescript-language-server");if(!Y)return;return{process:Z1(Y,["--stdio"],{cwd:$,env:{...o8()}}),initialization:{tsserver:{path:J}}}}},Dq={id:"vue",extensions:[".vue"],root:t0(["package-lock.json","bun.lockb","bun.lock","pnpm-lock.yaml","yarn.lock"]),async spawn($){let Z=await N6(d0("vue-language-server"),"@vue/language-server");if(!Z)return;return{process:M6(Z,["--stdio"],$),initialization:{}}}},wq={id:"eslint",root:t0(["package-lock.json","bun.lockb","bun.lock","pnpm-lock.yaml","yarn.lock"]),extensions:[".ts",".tsx",".js",".jsx",".mjs",".cjs",".mts",".cts",".vue"],async spawn($,Z){if(!LZ.resolve("eslint",Z.directory))return;Q0.info("spawning eslint server");let Y=D8.join(F0.Path.bin,"vscode-eslint","server","out","eslintServer.js");if(!await o0.exists(Y)){if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("downloading and building VS Code ESLint server");let Q=await TZ("https://github.com/microsoft/vscode-eslint/archive/refs/heads/main.zip","vscode-eslint.zip","vscode-eslint");if(!Q)return;if(!await RZ(Q,"vscode-eslint"))return;await D6.rm(Q,{force:!0});let W=D8.join(F0.Path.bin,"vscode-eslint-main"),K=D8.join(F0.Path.bin,"vscode-eslint");if(await D6.stat(K).catch(()=>{return}))Q0.info("removing old eslint installation",{path:K}),await D6.rm(K,{force:!0,recursive:!0});await D6.rename(W,K);let U=process.platform==="win32"?"npm.cmd":"npm";await f1.run([U,"install"],{cwd:K}),await f1.run([U,"run","compile"],{cwd:K}),Q0.info("installed VS Code ESLint server",{serverPath:Y})}return{process:Z1("node",[Y,"--stdio"],{cwd:$,env:{...o8()}})}}},Lq={id:"oxlint",root:t0([".oxlintrc.json","package-lock.json","bun.lockb","bun.lock","pnpm-lock.yaml","yarn.lock","package.json"]),extensions:[".ts",".tsx",".js",".jsx",".mjs",".cjs",".mts",".cts",".vue",".astro",".svelte"],async spawn($,Z){let J=process.platform==="win32"?".cmd":"",Y=D8.join("node_modules",".bin","oxc_language_server"+J),X=D8.join("node_modules",".bin","oxlint"+J),Q=async(K)=>{let V=D8.join($,K);if(await o0.exists(V))return V;let U=o0.up({targets:[K],start:$,stop:Z.worktree}),H=await U.next();if(await U.return(),H.value)return H.value;return},G=await Q(X);if(!G){let K=d0("oxlint");if(K)G=K}if(G){let K=Z1(G,["--help"]);if(await K.exited,K.stdout){if((await tc(K.stdout)).includes("--lsp"))return{process:Z1(G,["--lsp"],{cwd:$})}}}let W=await Q(Y);if(!W){let K=d0("oxc_language_server");if(K)W=K}if(W)return{process:Z1(W,[],{cwd:$})};Q0.info("oxlint not found, please install oxlint");return}},Tq={id:"biome",root:t0(["biome.json","biome.jsonc","package-lock.json","bun.lockb","bun.lock","pnpm-lock.yaml","yarn.lock"]),extensions:[".ts",".tsx",".js",".jsx",".mjs",".cjs",".mts",".cts",".json",".jsonc",".vue",".astro",".svelte",".css",".graphql",".gql",".html"],async spawn($){let Z=D8.join($,"node_modules",".bin","biome"),J;if(await o0.exists(Z))J=Z;if(!J){let Q=d0("biome");if(Q)J=Q}let Y=["lsp-proxy","--stdio"];if(!J){if(!LZ.resolve("biome",$))return;if(J=await j6.which("biome"),!J)return;Y=["lsp-proxy","--stdio"]}return{process:Z1(J,Y,{cwd:$,env:{...o8()}})}}},Rq={id:"svelte",extensions:[".svelte"],root:t0(["package-lock.json","bun.lockb","bun.lock","pnpm-lock.yaml","yarn.lock"]),async spawn($){let Z=await N6(d0("svelteserver"),"svelte-language-server");if(!Z)return;return{process:M6(Z,["--stdio"],$),initialization:{}}}},Pq={id:"astro",extensions:[".astro"],root:t0(["package-lock.json","bun.lockb","bun.lock","pnpm-lock.yaml","yarn.lock"]),async spawn($,Z){let J=LZ.resolve("typescript/lib/tsserver.js",Z.directory);if(!J){Q0.info("typescript not found, required for Astro language server");return}let Y=D8.dirname(J),X=await N6(d0("astro-ls"),"@astrojs/language-server");if(!X)return;return{process:M6(X,["--stdio"],$),initialization:{typescript:{tsdk:Y}}}}},Iq={id:"yaml-ls",extensions:[".yaml",".yml"],root:t0(["package-lock.json","bun.lockb","bun.lock","pnpm-lock.yaml","yarn.lock"]),async spawn($){let Z=await N6(d0("yaml-language-server"),"yaml-language-server");if(!Z)return;return{process:M6(Z,["--stdio"],$)}}},Cq={id:"lua-ls",root:t0([".luarc.json",".luarc.jsonc",".luacheckrc",".stylua.toml","stylua.toml","selene.toml","selene.yml"]),extensions:[".lua"],async spawn($){let Z=d0("lua-language-server");if(!Z){if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("downloading lua-language-server from GitHub releases");let J=await fetch("https://api.github.com/repos/LuaLS/lua-language-server/releases/latest");if(!J.ok){Q0.error("Failed to fetch lua-language-server release info");return}let Y=await J.json(),X=process.platform,Q=process.arch,G="",W=Q;if(Q==="arm64")W="arm64";else if(Q==="x64")W="x64";else if(Q==="ia32")W="ia32";let K=X;if(X==="darwin")K="darwin";else if(X==="linux")K="linux";else if(X==="win32")K="win32";let V=X==="win32"?"zip":"tar.gz";G=`lua-language-server-${Y.tag_name}-${K}-${W}.${V}`;let U=["darwin-arm64.tar.gz","darwin-x64.tar.gz","linux-x64.tar.gz","linux-arm64.tar.gz","win32-x64.zip","win32-ia32.zip"],H=`${K}-${W}.${V}`;if(!U.includes(H)){Q0.error(`Platform ${X} and architecture ${Q} is not supported by lua-language-server`);return}let B=Y.assets.find((w)=>w.name===G);if(!B){Q0.error(`Could not find asset ${G} in latest lua-language-server release`);return}let z=B.browser_download_url,F=await fetch(z);if(!F.ok){Q0.error("Failed to download lua-language-server");return}let A=D8.join(F0.Path.bin,G);if(F.body)await o0.writeStream(A,F.body);let q=D8.join(F0.Path.bin,`lua-language-server-${W}-${K}`);if(await D6.stat(q).catch(()=>{return}))await D6.rm(q,{force:!0,recursive:!0});if(await D6.mkdir(q,{recursive:!0}),V==="zip"){if(!await M8.extractZip(A,q).then(()=>!0).catch((j)=>{return Q0.error("Failed to extract lua-language-server archive",{error:j}),!1}))return}else if(!await q6(["tar","-xzf",A,"-C",q]).then((j)=>j.code===0).catch((j)=>{return Q0.error("Failed to extract lua-language-server archive",{error:j}),!1}))return;if(await D6.rm(A,{force:!0}),Z=D8.join(q,"bin","lua-language-server"+(X==="win32"?".exe":"")),!await o0.exists(Z)){Q0.error("Failed to extract lua-language-server binary");return}if(X!=="win32"){if(!await D6.chmod(Z,493).then(()=>!0).catch((j)=>{return Q0.error("Failed to set executable permission for lua-language-server binary",{error:j}),!1}))return}Q0.info("installed lua-language-server",{bin:Z})}return{process:Z1(Z,{cwd:$})}}},Eq={id:"prisma",extensions:[".prisma"],root:t0(["schema.prisma","prisma/schema.prisma","prisma"],["package.json"]),async spawn($){let Z=d0("prisma");if(!Z){Q0.info("prisma not found, please install prisma");return}return{process:Z1(Z,["language-server"],{cwd:$})}}},bq={id:"bash",extensions:[".sh",".bash",".zsh",".ksh"],root:async($,Z)=>Z.directory,async spawn($){let Z=await N6(d0("bash-language-server"),"bash-language-server");if(!Z)return;return{process:M6(Z,["start"],$)}}};import $8 from"fs/promises";import o1 from"path";import ec from"os";var _q={id:"gopls",root:async($,Z)=>{let J=await t0(["go.work"])($,Z);if(J)return J;return t0(["go.mod","go.sum"])($,Z)},extensions:[".go"],async spawn($){let Z=d0("gopls");if(!Z){if(!d0("go"))return;if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;if(Q0.info("installing gopls"),await f1.spawn(["go","install","golang.org/x/tools/gopls@latest"],{env:{GOBIN:F0.Path.bin},stdout:"pipe",stderr:"pipe",stdin:"pipe"}).exited!==0){Q0.error("Failed to install gopls");return}Z=o1.join(F0.Path.bin,"gopls"+(process.platform==="win32"?".exe":"")),Q0.info("installed gopls",{bin:Z})}return{process:Z1(Z,{cwd:$})}}},Sq={id:"csharp",root:t0([".slnx",".sln",".csproj","global.json"]),extensions:[".cs"],async spawn($){let Z=d0("csharp-ls");if(!Z){if(!d0("dotnet")){Q0.error(".NET SDK is required to install csharp-ls");return}if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;if(Q0.info("installing csharp-ls via dotnet tool"),await f1.spawn(["dotnet","tool","install","csharp-ls","--tool-path",F0.Path.bin],{stdout:"pipe",stderr:"pipe",stdin:"pipe"}).exited!==0){Q0.error("Failed to install csharp-ls");return}Z=o1.join(F0.Path.bin,"csharp-ls"+(process.platform==="win32"?".exe":"")),Q0.info("installed csharp-ls",{bin:Z})}return{process:Z1(Z,{cwd:$})}}},fq={id:"fsharp",root:t0([".slnx",".sln",".fsproj","global.json"]),extensions:[".fs",".fsi",".fsx",".fsscript"],async spawn($){let Z=d0("fsautocomplete");if(!Z){if(!d0("dotnet")){Q0.error(".NET SDK is required to install fsautocomplete");return}if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;if(Q0.info("installing fsautocomplete via dotnet tool"),await f1.spawn(["dotnet","tool","install","fsautocomplete","--tool-path",F0.Path.bin],{stdout:"pipe",stderr:"pipe",stdin:"pipe"}).exited!==0){Q0.error("Failed to install fsautocomplete");return}Z=o1.join(F0.Path.bin,"fsautocomplete"+(process.platform==="win32"?".exe":"")),Q0.info("installed fsautocomplete",{bin:Z})}return{process:Z1(Z,{cwd:$})}}},kq={id:"sourcekit-lsp",extensions:[".swift",".objc","objcpp"],root:t0(["Package.swift","*.xcodeproj","*.xcworkspace"]),async spawn($){let Z=d0("sourcekit-lsp");if(Z)return{process:Z1(Z,{cwd:$})};if(!d0("xcrun"))return;let J=await qq(["xcrun","--find","sourcekit-lsp"]);if(J.code!==0)return;let Y=J.text.trim();return{process:Z1(Y,{cwd:$})}}},vq={id:"rust",root:async($,Z)=>{let J=await t0(["Cargo.toml","Cargo.lock"])($,Z);if(J===void 0)return;let Y=J;while(Y!==o1.dirname(Y)){let X=o1.join(Y,"Cargo.toml");try{if((await o0.readText(X)).includes("[workspace]"))return Y}catch{}let Q=o1.dirname(Y);if(Q===Y||!o0.contains(Z.worktree,Q))break;Y=Q}return J},extensions:[".rs"],async spawn($){let Z=d0("rust-analyzer");if(!Z){Q0.info("rust-analyzer not found in path, please install it");return}return{process:Z1(Z,{cwd:$})}}},yq={id:"clangd",root:t0(["compile_commands.json","compile_flags.txt",".clangd"]),extensions:[".c",".cpp",".cc",".cxx",".c++",".h",".hpp",".hh",".hxx",".h++"],async spawn($){let Z=["--background-index","--clang-tidy"],J=d0("clangd");if(J)return{process:Z1(J,Z,{cwd:$})};let Y=process.platform==="win32"?".exe":"",X=o1.join(F0.Path.bin,"clangd"+Y);if(await o0.exists(X))return{process:Z1(X,Z,{cwd:$})};let Q=await $8.readdir(F0.Path.bin,{withFileTypes:!0}).catch(()=>[]);for(let R of Q){if(!R.isDirectory())continue;if(!R.name.startsWith("clangd_"))continue;let T=o1.join(F0.Path.bin,R.name,"bin","clangd"+Y);if(await o0.exists(T))return{process:Z1(T,Z,{cwd:$})}}if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("downloading clangd from GitHub releases");let G=await fetch("https://api.github.com/repos/clangd/clangd/releases/latest");if(!G.ok){Q0.error("Failed to fetch clangd release info");return}let W=await G.json(),K=W.tag_name;if(!K){Q0.error("clangd release did not include a tag name");return}let V=process.platform,H={darwin:"mac",linux:"linux",win32:"windows"}[V];if(!H){Q0.error(`Platform ${V} is not supported by clangd auto-download`);return}let B=W.assets??[],z=(R)=>{if(!R.name)return!1;if(!R.browser_download_url)return!1;if(!R.name.includes(H))return!1;return R.name.includes(K)},F=B.find((R)=>z(R)&&R.name?.endsWith(".zip"))??B.find((R)=>z(R)&&R.name?.endsWith(".tar.xz"))??B.find((R)=>z(R));if(!F?.name||!F.browser_download_url){Q0.error("clangd could not match release asset",{tag:K,platform:V});return}let A=F.name,q=await fetch(F.browser_download_url);if(!q.ok){Q0.error("Failed to download clangd");return}let N=o1.join(F0.Path.bin,A),w=await q.arrayBuffer();if(w.byteLength===0){Q0.error("Failed to write clangd archive");return}await o0.write(N,Buffer.from(w));let j=A.endsWith(".zip"),M=A.endsWith(".tar.xz");if(!j&&!M){Q0.error("clangd encountered unsupported asset",{asset:A});return}if(j){if(!await M8.extractZip(N,F0.Path.bin).then(()=>!0).catch((T)=>{return Q0.error("Failed to extract clangd archive",{error:T}),!1}))return}if(M)await q6(["tar","-xf",N],{cwd:F0.Path.bin});await $8.rm(N,{force:!0});let C=o1.join(F0.Path.bin,"clangd_"+K,"bin","clangd"+Y);if(!await o0.exists(C)){Q0.error("Failed to extract clangd binary");return}if(V!=="win32")await $8.chmod(C,493).catch(()=>{});return await $8.unlink(o1.join(F0.Path.bin,"clangd")).catch(()=>{}),await $8.symlink(C,o1.join(F0.Path.bin,"clangd")).catch(()=>{}),Q0.info("installed clangd",{bin:C}),{process:Z1(C,Z,{cwd:$})}}},xq={id:"jdtls",root:async($,Z)=>{let J=["settings.gradle","settings.gradle.kts"],Y=["gradlew","gradlew.bat"],X=Y.concat(J),[Q,G,W]=await Promise.all([t0(["pom.xml","build.gradle","build.gradle.kts",".project",".classpath"],X)($,Z),t0(Y,J)($,Z),t0(J)($,Z)]);if(Q)return Q;if(G)return G;if(W)return W},extensions:[".java"],async spawn($){let Z=d0("java");if(!Z){Q0.error("Java 21 or newer is required to run the JDTLS. Please install it first.");return}let J=await q6(["java","-version"]).then((U)=>{let H=/"(\d+)\.\d+\.\d+"/.exec(U.stderr.toString());return!H?void 0:parseInt(H[1])});if(J==null||J<21){Q0.error("JDTLS requires at least Java 21.");return}let Y=o1.join(F0.Path.bin,"jdtls"),X=o1.join(Y,"plugins");if(!await cV(X)){if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("Downloading JDTLS LSP server."),await $8.mkdir(Y,{recursive:!0});let U="https://www.eclipse.org/downloads/download.php?file=/jdtls/snapshots/jdt-language-server-latest.tar.gz",H="release.tar.gz";Q0.info("Downloading JDTLS archive",{url:U,dest:Y});let B=await fetch(U);if(!B.ok||!B.body){Q0.error("Failed to download JDTLS",{status:B.status,statusText:B.statusText});return}await o0.writeStream(o1.join(Y,H),B.body),Q0.info("Extracting JDTLS archive");let z=await q6(["tar","-xzf",H],{cwd:Y});if(z.code!==0){Q0.error("Failed to extract JDTLS",{exitCode:z.code,stderr:z.stderr.toString()});return}await $8.rm(o1.join(Y,H),{force:!0}),Q0.info("JDTLS download and extraction completed")}let G=(await $8.readdir(X).catch(()=>[])).find((U)=>/^org\.eclipse\.equinox\.launcher_.*\.jar$/.test(U))?.trim()??"",W=o1.join(X,G);if(!await cV(W)){Q0.error(`Failed to locate the JDTLS launcher module in the installed directory: ${Y}.`);return}let K=o1.join(Y,(()=>{switch(process.platform){case"darwin":return"config_mac";case"linux":return"config_linux";case"win32":return"config_win";default:return"config_linux"}})()),V=await $8.mkdtemp(o1.join(ec.tmpdir(),"qitqode-jdtls-data"));return{process:Z1(Z,["-jar",W,"-configuration",K,"-data",V,"-Declipse.application=org.eclipse.jdt.ls.core.id1","-Dosgi.bundles.defaultStartLevel=4","-Declipse.product=org.eclipse.jdt.ls.core.product","-Dlog.level=ALL","--add-modules=ALL-SYSTEM","--add-opens java.base/java.util=ALL-UNNAMED","--add-opens java.base/java.lang=ALL-UNNAMED"],{cwd:$})}}},hq={id:"kotlin-ls",extensions:[".kt",".kts"],root:async($,Z)=>{let J=await t0(["settings.gradle.kts","settings.gradle"])($,Z);if(J)return J;let Y=await t0(["gradlew","gradlew.bat"])($,Z);if(Y)return Y;let X=await t0(["build.gradle.kts","build.gradle"])($,Z);if(X)return X;return t0(["pom.xml"])($,Z)},async spawn($){let Z=o1.join(F0.Path.bin,"kotlin-ls"),J=process.platform==="win32"?o1.join(Z,"kotlin-lsp.cmd"):o1.join(Z,"kotlin-lsp.sh");if(!await o0.exists(J)){if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("Downloading Kotlin Language Server from GitHub.");let X=await fetch("https://api.github.com/repos/Kotlin/kotlin-lsp/releases/latest");if(!X.ok){Q0.error("Failed to fetch kotlin-lsp release info");return}let G=(await X.json()).name?.replace(/^v/,"");if(!G){Q0.error("Could not determine Kotlin LSP version from release");return}let{platform:W,arch:K}=process,V=K;if(K==="arm64")V="aarch64";else if(K==="x64")V="x64";let U=W;if(W==="darwin")U="mac";else if(W==="linux")U="linux";else if(W==="win32")U="win";let H=["mac-x64","mac-aarch64","linux-x64","linux-aarch64","win-x64","win-aarch64"],B=`${U}-${V}`;if(!H.includes(B)){Q0.error(`Platform ${W}/${K} is not supported by Kotlin LSP`);return}let z=`kotlin-lsp-${G}-${U}-${V}.zip`,F=`https://download-cdn.jetbrains.com/kotlin-lsp/${G}/${z}`;await $8.mkdir(Z,{recursive:!0});let A=o1.join(Z,"kotlin-ls.zip"),q=await fetch(F);if(!q.ok||!q.body){Q0.error("Failed to download Kotlin Language Server",{status:q.status,statusText:q.statusText});return}if(await o0.writeStream(A,q.body),!await M8.extractZip(A,Z).then(()=>!0).catch((w)=>{return Q0.error("Failed to extract Kotlin LS archive",{error:w}),!1}))return;if(await $8.rm(A,{force:!0}),process.platform!=="win32")await $8.chmod(J,493).catch(()=>{});Q0.info("Installed Kotlin Language Server",{path:J})}if(!await o0.exists(J)){Q0.error(`Failed to locate the Kotlin LS launcher script in the installed directory: ${Z}.`);return}return{process:Z1(J,["--stdio"],{cwd:$})}}},gq={id:"dart",extensions:[".dart"],root:t0(["pubspec.yaml","analysis_options.yaml"]),async spawn($){let Z=d0("dart");if(!Z){Q0.info("dart not found, please install dart first");return}return{process:Z1(Z,["language-server","--lsp"],{cwd:$})}}},uq={id:"ocaml-lsp",extensions:[".ml",".mli"],root:t0(["dune-project","dune-workspace",".merlin","opam"]),async spawn($){let Z=d0("ocamllsp");if(!Z){Q0.info("ocamllsp not found, please install ocaml-lsp-server");return}return{process:Z1(Z,{cwd:$})}}},mq={id:"gleam",extensions:[".gleam"],root:t0(["gleam.toml"]),async spawn($){let Z=d0("gleam");if(!Z){Q0.info("gleam not found, please install gleam first");return}return{process:Z1(Z,["lsp"],{cwd:$})}}},lq={id:"zls",extensions:[".zig",".zon"],root:t0(["build.zig"]),async spawn($){let Z=d0("zls");if(!Z){if(!d0("zig")){Q0.error("Zig is required to use zls. Please install Zig first.");return}if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("downloading zls from GitHub releases");let Y=await fetch("https://api.github.com/repos/zigtools/zls/releases/latest");if(!Y.ok){Q0.error("Failed to fetch zls release info");return}let X=await Y.json(),Q=process.platform,G=process.arch,W="",K=G;if(G==="arm64")K="aarch64";else if(G==="x64")K="x86_64";else if(G==="ia32")K="x86";let V=Q;if(Q==="darwin")V="macos";else if(Q==="win32")V="windows";let U=Q==="win32"?"zip":"tar.xz";if(W=`zls-${K}-${V}.${U}`,!["zls-x86_64-linux.tar.xz","zls-x86_64-macos.tar.xz","zls-x86_64-windows.zip","zls-aarch64-linux.tar.xz","zls-aarch64-macos.tar.xz","zls-aarch64-windows.zip","zls-x86-linux.tar.xz","zls-x86-windows.zip"].includes(W)){Q0.error(`Platform ${Q} and architecture ${G} is not supported by zls`);return}let B=X.assets?.find((F)=>F.name===W);if(!B?.browser_download_url){Q0.error(`Could not find asset ${W} in latest zls release`);return}let z=await TZ(B.browser_download_url,W,"zls");if(!z)return;if(U==="zip"){if(!await RZ(z,"zls"))return}else await q6(["tar","-xf",z],{cwd:F0.Path.bin});if(await $8.rm(z,{force:!0}),Z=o1.join(F0.Path.bin,"zls"+(Q==="win32"?".exe":"")),!await o0.exists(Z)){Q0.error("Failed to extract zls binary");return}if(Q!=="win32")await $8.chmod(Z,493).catch(()=>{});Q0.info("installed zls",{bin:Z})}return{process:Z1(Z,{cwd:$})}}};import j5 from"fs/promises";import f8 from"path";function $i($){return[process.env.VIRTUAL_ENV,f8.join($,".venv"),f8.join($,"venv")].filter((Z)=>Z!==void 0)}async function iV($,Z){let J=process.platform==="win32";for(let Y of $i($)){let X=J?f8.join(Y,"Scripts",`${Z}.exe`):f8.join(Y,"bin",Z);if(await o0.exists(X))return X}return}var dq={id:"ruby-lsp",root:t0(["Gemfile"]),extensions:[".rb",".rake",".gemspec",".ru"],async spawn($){let Z=d0("rubocop");if(!Z){let J=d0("ruby"),Y=d0("gem");if(!J||!Y){Q0.info("Ruby not found, please install Ruby first");return}if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;if(Q0.info("installing rubocop"),await f1.spawn(["gem","install","rubocop","--bindir",F0.Path.bin],{stdout:"pipe",stderr:"pipe",stdin:"pipe"}).exited!==0){Q0.error("Failed to install rubocop");return}Z=f8.join(F0.Path.bin,"rubocop"+(process.platform==="win32"?".exe":"")),Q0.info("installed rubocop",{bin:Z})}return{process:Z1(Z,["--lsp"],{cwd:$})}}},pq={id:"ty",extensions:[".py",".pyi"],root:t0(["pyproject.toml","ty.toml","setup.py","setup.cfg","requirements.txt","Pipfile","pyrightconfig.json"]),async spawn($){if(!b0.QITQODE_EXPERIMENTAL_LSP_TY)return;let Z=d0("ty"),J={},Y=await iV($,"python");if(Y)J.pythonPath=Y;if(!Z)Z=await iV($,"ty")??null;if(!Z){Q0.error("ty not found, please install ty first");return}return{process:Z1(Z,["server"],{cwd:$}),initialization:J}}},cq={id:"pyright",extensions:[".py",".pyi"],root:t0(["pyproject.toml","setup.py","setup.cfg","requirements.txt","Pipfile","pyrightconfig.json"]),async spawn($){let Z=await N6(d0("pyright-langserver"),"pyright");if(!Z)return;let J=["--stdio"],Y={},X=await iV($,"python");if(X)Y.pythonPath=X;return{process:M6(Z,J,$),initialization:Y}}},iq={id:"elixir-ls",extensions:[".ex",".exs"],root:t0(["mix.exs","mix.lock"]),async spawn($){let Z=d0("elixir-ls");if(!Z){let J=f8.join(F0.Path.bin,"elixir-ls");if(Z=f8.join(F0.Path.bin,"elixir-ls-master","release",process.platform==="win32"?"language_server.bat":"language_server.sh"),!await o0.exists(Z)){if(!d0("elixir")){Q0.error("elixir is required to run elixir-ls");return}if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("downloading elixir-ls from GitHub releases");let X=await TZ("https://github.com/elixir-lsp/elixir-ls/archive/refs/heads/master.zip","elixir-ls.zip","elixir-ls");if(!X)return;if(!await RZ(X,"elixir-ls"))return;await j5.rm(X,{force:!0,recursive:!0});let G=f8.join(F0.Path.bin,"elixir-ls-master"),W={MIX_ENV:"prod",...o8()};await f1.run(["mix","deps.get"],{cwd:G,env:W}),await f1.run(["mix","compile"],{cwd:G,env:W}),await f1.run(["mix","elixir_ls.release2","-o","release"],{cwd:G,env:W}),Q0.info("installed elixir-ls",{path:J})}}return{process:Z1(Z,{cwd:$})}}},nq={id:"php intelephense",extensions:[".php"],root:t0(["composer.json","composer.lock",".php-version"]),async spawn($){let Z=await N6(d0("intelephense"),"intelephense");if(!Z)return;return{process:M6(Z,["--stdio"],$),initialization:{telemetry:{enabled:!1}}}}},oq={id:"julials",extensions:[".jl"],root:t0(["Project.toml","Manifest.toml","*.jl"]),async spawn($){let Z=d0("julia");if(!Z){Q0.info("julia not found, please install julia first (https://julialang.org/downloads/)");return}return{process:Z1(Z,["--startup-file=no","--history-file=no","-e","using LanguageServer; runserver()"],{cwd:$})}}},sq={id:"haskell-language-server",extensions:[".hs",".lhs"],root:t0(["stack.yaml","cabal.project","hie.yaml","*.cabal"]),async spawn($){let Z=d0("haskell-language-server-wrapper");if(!Z){Q0.info("haskell-language-server-wrapper not found, please install haskell-language-server");return}return{process:Z1(Z,["--lsp"],{cwd:$})}}},rq={id:"nixd",extensions:[".nix"],root:async($,Z)=>{let J=await t0(["flake.nix"])($,Z);if(J&&J!==Z.directory)return J;if(Z.worktree&&Z.worktree!==Z.directory)return Z.worktree;return Z.directory},async spawn($){let Z=d0("nixd");if(!Z){Q0.info("nixd not found, please install nixd first");return}return{process:Z1(Z,[],{cwd:$,env:{...o8()}})}}},aq={id:"tinymist",extensions:[".typ",".typc"],root:t0(["typst.toml"]),async spawn($){let Z=d0("tinymist");if(!Z){if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("downloading tinymist from GitHub releases");let J=await fetch("https://api.github.com/repos/Myriad-Dreamin/tinymist/releases/latest");if(!J.ok){Q0.error("Failed to fetch tinymist release info");return}let Y=await J.json(),X=process.platform,G=process.arch==="arm64"?"aarch64":"x86_64",W,K;if(X==="darwin")W="apple-darwin",K="tar.gz";else if(X==="win32")W="pc-windows-msvc",K="zip";else W="unknown-linux-gnu",K="tar.gz";let V=`tinymist-${G}-${W}.${K}`,H=(Y.assets??[]).find((z)=>z.name===V);if(!H?.browser_download_url){Q0.error(`Could not find asset ${V} in tinymist release`);return}let B=await TZ(H.browser_download_url,V,"tinymist");if(!B)return;if(K==="zip"){if(!await RZ(B,"tinymist"))return}else await q6(["tar","-xzf",B,"--strip-components=1"],{cwd:F0.Path.bin});if(await j5.rm(B,{force:!0}),Z=f8.join(F0.Path.bin,"tinymist"+(X==="win32"?".exe":"")),!await o0.exists(Z)){Q0.error("Failed to extract tinymist binary");return}if(X!=="win32")await j5.chmod(Z,493).catch(()=>{});Q0.info("installed tinymist",{bin:Z})}return{process:Z1(Z,{cwd:$})}}},tq={id:"terraform",extensions:[".tf",".tfvars"],root:t0([".terraform.lock.hcl","terraform.tfstate","*.tf"]),async spawn($){let Z=d0("terraform-ls");if(!Z){if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("downloading terraform-ls from HashiCorp releases");let J=await fetch("https://api.releases.hashicorp.com/v1/releases/terraform-ls/latest");if(!J.ok){Q0.error("Failed to fetch terraform-ls release info");return}let Y=await J.json(),X=process.platform,G=process.arch==="arm64"?"arm64":"amd64",W=X==="win32"?"windows":X,V=(Y.builds??[]).find((z)=>z.arch===G&&z.os===W);if(!V?.url){Q0.error(`Could not find build for ${W}/${G} terraform-ls release version ${Y.version}`);return}let U=await fetch(V.url);if(!U.ok){Q0.error("Failed to download terraform-ls");return}let H=f8.join(F0.Path.bin,"terraform-ls.zip");if(U.body)await o0.writeStream(H,U.body);if(!await M8.extractZip(H,F0.Path.bin).then(()=>!0).catch((z)=>{return Q0.error("Failed to extract terraform-ls archive",{error:z}),!1}))return;if(await j5.rm(H,{force:!0}),Z=f8.join(F0.Path.bin,"terraform-ls"+(X==="win32"?".exe":"")),!await o0.exists(Z)){Q0.error("Failed to extract terraform-ls binary");return}if(X!=="win32")await j5.chmod(Z,493).catch(()=>{});Q0.info("installed terraform-ls",{bin:Z})}return{process:Z1(Z,["serve"],{cwd:$}),initialization:{experimentalFeatures:{prefillRequiredFields:!0,validateOnSave:!0}}}}},eq={id:"texlab",extensions:[".tex",".bib"],root:t0([".latexmkrc","latexmkrc",".texlabroot","texlabroot"]),async spawn($){let Z=d0("texlab");if(!Z){if(b0.QITQODE_DISABLE_LSP_DOWNLOAD)return;Q0.info("downloading texlab from GitHub releases");let J=await fetch("https://api.github.com/repos/latex-lsp/texlab/releases/latest");if(!J.ok){Q0.error("Failed to fetch texlab release info");return}let Y=await J.json();if(!Y.tag_name?.replace("v","")){Q0.error("texlab release did not include a version tag");return}let Q=process.platform,W=process.arch==="arm64"?"aarch64":"x86_64",K=Q==="darwin"?"macos":Q==="win32"?"windows":"linux",V=Q==="win32"?"zip":"tar.gz",U=`texlab-${W}-${K}.${V}`,B=(Y.assets??[]).find((F)=>F.name===U);if(!B?.browser_download_url){Q0.error(`Could not find asset ${U} in texlab release`);return}let z=await TZ(B.browser_download_url,U,"texlab");if(!z)return;if(V==="zip"){if(!await RZ(z,"texlab"))return}if(V==="tar.gz")await q6(["tar","-xzf",z],{cwd:F0.Path.bin});if(await j5.rm(z,{force:!0}),Z=f8.join(F0.Path.bin,"texlab"+(Q==="win32"?".exe":"")),!await o0.exists(Z)){Q0.error("Failed to extract texlab binary");return}if(Q!=="win32")await j5.chmod(Z,493).catch(()=>{});Q0.info("installed texlab",{bin:Z})}return{process:Z1(Z,{cwd:$})}}},$N={id:"dockerfile",extensions:[".dockerfile","Dockerfile"],root:async($,Z)=>Z.directory,async spawn($){let Z=await N6(d0("docker-langserver"),"dockerfile-language-server-nodejs");if(!Z)return;return{process:M6(Z,["--stdio"],$)}}},ZN={id:"clojure-lsp",extensions:[".clj",".cljs",".cljc",".edn"],root:t0(["deps.edn","project.clj","shadow-cljs.edn","bb.edn","build.boot"]),async spawn($){let Z=d0("clojure-lsp");if(!Z&&process.platform==="win32")Z=d0("clojure-lsp.exe");if(!Z){Q0.info("clojure-lsp not found, please install clojure-lsp first");return}return{process:Z1(Z,["listen"],{cwd:$})}}};var X8={};B1(X8,{layer:()=>Iw,defaultLayer:()=>Oa,Service:()=>W4,Server:()=>za,Layout:()=>Fa,Info:()=>b5,ConfigDirectoryTypoError:()=>Aa});import Ha from"path";var k8={};B1(k8,{sweepStaleAuthTmp:()=>QN,layer:()=>WN,defaultLayer:()=>Bi,WellKnown:()=>rV,Service:()=>x9,Oauth:()=>oV,OAUTH_DUMMY_KEY:()=>nV,Info:()=>GN,AuthError:()=>h9,Auth:()=>k8,Api:()=>sV});import Ui from"path";var l6={};B1(l6,{setKeySequenceForTest:()=>Wi,setKeyForTest:()=>Gi,resetForTest:()=>Qi,isEnvelope:()=>Ji,encryptionKey:()=>Xi,encrypt:()=>Ki,decrypt:()=>Vi,AuthKeyring:()=>l6});import f9 from"crypto";import{execFile as Zi}from"child_process";var v7="qitqode",gY="auth-encryption-key",YN="__qitqode_encrypted__";function Ji($){return typeof $==="object"&&$!==null&&$[YN]===1&&$.alg==="aes-256-gcm"}function y7($,Z,J){return new Promise((Y)=>{let X=Zi($,Z,{timeout:5000},(Q,G)=>{let W=Q?Q.code??1:0;Y({code:typeof W==="number"?W:1,stdout:G??""})});if(J!==void 0)X.stdin?.write(J),X.stdin?.end()})}async function JN($,Z){return(await y7($,Z)).code===0}async function Yi(){if(process.env.QITQODE_DISABLE_KEYRING)return;if(process.platform==="darwin"){if(!await JN("security",["help"]))return;return{async get(){let $=await y7("security",["find-generic-password","-s",v7,"-a",gY,"-w"]);return $.code===0?$.stdout.trim():void 0},async set($){return(await y7("security",["add-generic-password","-U","-s",v7,"-a",gY,"-w",$])).code===0}}}if(process.platform==="linux"){if(!await JN("secret-tool",["search","service",v7])){let $=await y7("secret-tool",["lookup","service",v7,"account",gY]);if($.code!==0&&$.code!==1)return}return{async get(){let $=await y7("secret-tool",["lookup","service",v7,"account",gY]);return $.code===0&&$.stdout.trim()?$.stdout.trim():void 0},async set($){return(await y7("secret-tool",["store","--label","QitQode auth encryption key","service",v7,"account",gY],$)).code===0}}}return}var k9,x7;function Xi(){if(x7!==void 0&&x7.length>0)return Promise.resolve(x7.shift());return k9??=(async()=>{let $=await Yi();if(!$)return;let Z=await $.get();if(Z){let J=Buffer.from(Z,"base64");if(J.length===32)return J;return}return uY.withLock("auth-keyring-init",async()=>{let J=await $.get();if(J){let G=Buffer.from(J,"base64");return G.length===32?G:void 0}let Y=f9.randomBytes(32);if(!await $.set(Y.toString("base64")))return;let X=await $.get();if(!X)return;let Q=Buffer.from(X,"base64");return Q.length===32?Q:void 0})})(),k9}function Qi(){k9=void 0,x7=void 0}function Gi($){k9=Promise.resolve($),x7=void 0}function Wi($){x7=[...$]}function Ki($,Z){let J=f9.randomBytes(12),Y=f9.createCipheriv("aes-256-gcm",Z,J),X=Buffer.concat([Y.update($,"utf8"),Y.final()]);return{[YN]:1,alg:"aes-256-gcm",iv:J.toString("base64"),tag:Y.getAuthTag().toString("base64"),data:X.toString("base64")}}function Vi($,Z){let J=f9.createDecipheriv("aes-256-gcm",Z,Buffer.from($.iv,"base64"));return J.setAuthTag(Buffer.from($.tag,"base64")),Buffer.concat([J.update(Buffer.from($.data,"base64")),J.final()]).toString("utf8")}var nV="qitqode-oauth-dummy-key",y9=Ui.join(F0.Path.data,"auth.json"),Hi=60000;async function QN(){let $=y9+".tmp";try{let{stat:Z,unlink:J}=await import("fs/promises"),Y=await Z($);if(Date.now()-Y.mtimeMs>=Hi)await J($).catch(()=>{return})}catch{}}var v9=($)=>(Z)=>new h9({message:$,cause:Z});class oV extends O.Class("OAuth")({type:O.Literal("oauth"),refresh:O.String,access:O.String,expires:O.Number,accountId:O.optional(O.String),enterpriseUrl:O.optional(O.String)}){}class sV extends O.Class("ApiAuth")({type:O.Literal("api"),key:O.String,metadata:O.optional(O.Record(O.String,O.String))}){}class rV extends O.Class("WellKnownAuth")({type:O.Literal("wellknown"),key:O.String,token:O.String}){}var XN=O.Union([oV,sV,rV]).annotate({discriminator:"type",identifier:"Auth"}),GN=Object.assign(XN,{zod:w0(XN)});class h9 extends O.TaggedErrorClass()("AuthError",{message:O.String,cause:O.optional(O.Defect)}){}class x9 extends S1.Service()("@qitqode/Auth"){}var WN=T0.effect(x9,L.gen(function*(){let $=yield*E$.Service,Z=O.decodeUnknownOption(GN);yield*L.promise(()=>QN());let J=L.fn("Auth.readFile")(function*(){let V=yield*$.readJson(y9).pipe(L.orElseSucceed(()=>({})));if(!l6.isEnvelope(V))return V;let U=yield*L.promise(()=>l6.encryptionKey());if(!U)return yield*L.fail(new h9({message:"auth.json is encrypted but the OS keyring is unavailable. Restore keyring access or delete auth.json and log in again."}));return yield*L.try({try:()=>JSON.parse(l6.decrypt(V,U)),catch:v9("Failed to decrypt auth data (keyring key mismatch?)")})}),Y=L.fn("Auth.writeFile")(function*(V){let U=yield*L.promise(()=>l6.encryptionKey()),H=U?l6.encrypt(JSON.stringify(V),U):V,B=y9+".tmp";yield*$.writeJson(B,H).pipe(L.mapError(v9("Failed to write auth data"))),yield*$.chmod(B,384).pipe(L.mapError(v9("Failed to set auth file permissions"))),yield*$.rename(B,y9).pipe(L.mapError(v9("Failed to atomically replace auth data")))}),X=L.fn("Auth.all")(function*(){let V=yield*J(),U=g7.filterMap(V,(H)=>h7.fromOption(Z(H),()=>{return}));if(process.env.QITQODE_AUTH_CONTENT)try{let H=JSON.parse(process.env.QITQODE_AUTH_CONTENT);return{...g7.filterMap(H,(z)=>h7.fromOption(Z(z),()=>{return})),...U}}catch(H){console.error("[Auth] Failed to parse QITQODE_AUTH_CONTENT env var:",H)}return U}),Q=L.fn("Auth.get")(function*(V){return(yield*X())[V]}),G="auth-file",W=L.fn("Auth.set")(function*(V,U){yield*L.scoped(L.gen(function*(){yield*uY.effect(G);let H=V.replace(/\/+$/,""),B=yield*X();if(H!==V)delete B[V];delete B[H+"/"],yield*Y({...B,[H]:U})}))}),K=L.fn("Auth.remove")(function*(V){yield*L.scoped(L.gen(function*(){yield*uY.effect(G);let U=V.replace(/\/+$/,""),H=yield*X();delete H[V],delete H[U],yield*Y(H)}))});return x9.of({get:Q,all:X,set:W,remove:K})})),Bi=WN.pipe(T0.provide(E$.defaultLayer));var d6={};B1(d6,{layer:()=>KN,defaultLayer:()=>zi,Service:()=>g9,Env:()=>d6});class g9 extends S1.Service()("@qitqode/Env"){}var KN=T0.effect(g9,L.gen(function*(){let $=yield*B0.make(L.fn("Env.state")(()=>L.succeed({...process.env}))),Z=L.fn("Env.get")((Q)=>B0.use($,(G)=>G[Q])),J=L.fn("Env.all")(()=>B0.get($)),Y=L.fn("Env.set")(function*(Q,G){let W=yield*B0.get($);W[Q]=G}),X=L.fn("Env.remove")(function*(Q){let G=yield*B0.get($);delete G[Q]});return g9.of({get:Z,all:J,set:Y,remove:X})})),zi=KN;var VN={Connected:L1.define("server.connected",I.object({})),Heartbeat:L1.define("server.heartbeat",I.object({})),Disposed:L1.define("global.disposed",I.object({}))};var a7={};B1(a7,{layer:()=>DN,defaultLayer:()=>Ni,UserCode:()=>pY,Service:()=>i9,RefreshToken:()=>u7,PollSuccess:()=>d7,PollSlow:()=>c7,PollResult:()=>UN,PollPending:()=>p7,PollExpired:()=>i7,PollError:()=>o7,PollDenied:()=>n7,OrgID:()=>m9,Org:()=>iY,Login:()=>nY,Info:()=>cY,DeviceCode:()=>m7,AccountTransportError:()=>N5,AccountServiceError:()=>PZ,AccountRepoError:()=>l7,AccountID:()=>lY,Account:()=>a7,AccessToken:()=>dY});var s7={};B1(s7,{layer:()=>Fi,Service:()=>d9,AccountRepo:()=>s7});var w8=g6("account",{id:w1().$type().primaryKey(),email:w1().notNull(),url:w1().notNull(),access_token:w1().$type().notNull(),refresh_token:w1().$type().notNull(),token_expiry:j8(),...mY}),q5=g6("account_state",{id:j8().primaryKey(),active_account_id:w1().$type().references(()=>w8.id,{onDelete:"set null"}),active_org_id:w1().$type()}),sT0=g6("control_account",{email:w1().notNull(),url:w1().notNull(),access_token:w1().$type().notNull(),refresh_token:w1().$type().notNull(),token_expiry:j8(),active:j8({mode:"boolean"}).notNull().$default(()=>!1),...mY},($)=>[u9({columns:[$.email,$.url]})]);var lY=O.String.pipe(O.brand("AccountID")),m9=O.String.pipe(O.brand("OrgID")),dY=O.String.pipe(O.brand("AccessToken")),u7=O.String.pipe(O.brand("RefreshToken")),m7=O.String.pipe(O.brand("DeviceCode")),pY=O.String.pipe(O.brand("UserCode"));class cY extends O.Class("Account")({id:lY,email:O.String,url:O.String,active_org_id:O.NullOr(m9)}){}class iY extends O.Class("Org")({id:m9,name:O.String}){}class l7 extends O.TaggedErrorClass()("AccountRepoError",{message:O.String,cause:O.optional(O.Defect)}){}class PZ extends O.TaggedErrorClass()("AccountServiceError",{message:O.String,cause:O.optional(O.Defect)}){}class N5 extends O.TaggedErrorClass()("AccountTransportError",{method:O.String,url:O.String,description:O.optional(O.String),cause:O.optional(O.Defect)}){static fromHttpClientError($){return new N5({method:$.request.method,url:$.request.url,description:$.description,cause:$.cause})}get message(){return[`Could not reach ${this.method} ${this.url}.`,"This failed before the server returned an HTTP response.",this.description,"Check your network, proxy, or VPN configuration and try again."].filter(Boolean).join(`
486
486
  `)}}class nY extends O.Class("Login")({code:m7,user:pY,url:O.String,server:O.String,expiry:O.Duration,interval:O.Duration}){}class d7 extends O.TaggedClass()("PollSuccess",{email:O.String}){}class p7 extends O.TaggedClass()("PollPending",{}){}class c7 extends O.TaggedClass()("PollSlow",{}){}class i7 extends O.TaggedClass()("PollExpired",{}){}class n7 extends O.TaggedClass()("PollDenied",{}){}class o7 extends O.TaggedClass()("PollError",{cause:O.Defect}){}var UN=O.Union([d7,p7,c7,i7,n7,o7]);var l9=($)=>{let Z=new URL($);Z.search="",Z.hash="";let J=Z.pathname.replace(/\/+$/,"");return J.length===0?Z.origin:`${Z.origin}${J}`};var HN=1;class d9 extends S1.Service()("@qitqode/AccountRepo"){}var Fi=T0.effect(d9,L.gen(function*(){let $=O.decodeUnknownSync(cY),Z=(B)=>L.try({try:()=>W1.use(B),catch:(z)=>new l7({message:"Database operation failed",cause:z})}),J=(B)=>L.try({try:()=>W1.transaction(B),catch:(z)=>new l7({message:"Database operation failed",cause:z})}),Y=(B)=>{let z=B.select().from(q5).where(m0(q5.id,HN)).get();if(!z?.active_account_id)return;let F=B.select().from(w8).where(m0(w8.id,z.active_account_id)).get();if(!F)return;return{...F,active_org_id:z.active_org_id??null}},X=(B,z,F)=>{let A=O1.getOrNull(F);return B.insert(q5).values({id:HN,active_account_id:z,active_org_id:A}).onConflictDoUpdate({target:q5.id,set:{active_account_id:z,active_org_id:A}}).run()},Q=L.fn("AccountRepo.active")(()=>Z((B)=>Y(B)).pipe(L.map((B)=>B?O1.some($(B)):O1.none()))),G=L.fn("AccountRepo.list")(()=>Z((B)=>B.select().from(w8).all().map((z)=>$({...z,active_org_id:null})))),W=L.fn("AccountRepo.remove")((B)=>J((z)=>{z.update(q5).set({active_account_id:null,active_org_id:null}).where(m0(q5.active_account_id,B)).run(),z.delete(w8).where(m0(w8.id,B)).run()}).pipe(L.asVoid)),K=L.fn("AccountRepo.use")((B,z)=>Z((F)=>X(F,B,z)).pipe(L.asVoid)),V=L.fn("AccountRepo.getRow")((B)=>Z((z)=>z.select().from(w8).where(m0(w8.id,B)).get()).pipe(L.map(O1.fromNullishOr))),U=L.fn("AccountRepo.persistToken")((B)=>Z((z)=>z.update(w8).set({access_token:B.accessToken,refresh_token:B.refreshToken,token_expiry:O1.getOrNull(B.expiry)}).where(m0(w8.id,B.accountID)).run()).pipe(L.asVoid)),H=L.fn("AccountRepo.persistAccount")((B)=>J((z)=>{let F=l9(B.url);z.insert(w8).values({id:B.id,email:B.email,url:F,access_token:B.accessToken,refresh_token:B.refreshToken,token_expiry:B.expiry}).onConflictDoUpdate({target:w8.id,set:{email:B.email,url:F,access_token:B.accessToken,refresh_token:B.refreshToken,token_expiry:B.expiry}}).run(),X(z,B.id,B.orgID)}).pipe(L.asVoid));return d9.of({active:Q,list:G,remove:W,use:K,getRow:V,persistToken:U,persistAccount:H})}));class ON extends O.Class("RemoteConfig")({config:O.Record(O.String,O.Json)}){}var c9=O.Number.pipe(O.decodeTo(O.Duration,{decode:tV.transform(($)=>Z8.seconds($)),encode:tV.transform(($)=>Z8.toSeconds($))}));class jN extends O.Class("TokenRefresh")({access_token:dY,refresh_token:u7,expires_in:c9}){}class qN extends O.Class("DeviceAuth")({device_code:m7,user_code:pY,verification_uri_complete:O.String,expires_in:c9,interval:c9}){}class NN extends O.Class("DeviceTokenSuccess")({access_token:dY,refresh_token:u7,token_type:O.Literal("Bearer"),expires_in:c9}){}class YU extends O.Class("DeviceTokenError")({error:O.String,error_description:O.String}){toPollResult(){if(this.error==="authorization_pending")return new p7;if(this.error==="slow_down")return new c7;if(this.error==="expired_token")return new i7;if(this.error==="access_denied")return new n7;return new o7({cause:this.error})}}var Ai=O.Union([NN,YU]);class MN extends O.Class("User")({id:lY,email:O.String}){}class $U extends O.Class("ClientId")({client_id:O.String}){}class ZU extends O.Class("DeviceTokenRequest")({grant_type:O.String,device_code:m7,client_id:O.String}){}class JU extends O.Class("TokenRefreshRequest")({grant_type:O.String,refresh_token:u7,client_id:O.String}){}var aV="opencode-cli",Oi=Z8.minutes(5),ji=Z8.toMillis(Oi),BN=($,Z)=>$!=null&&$>Z+ji,s8=($="Account service operation failed")=>(Z)=>Z.pipe(L.mapError((J)=>qi(J,$))),qi=($,Z)=>{if($ instanceof PZ||$ instanceof N5)return $;if(zN.isHttpClientError($))switch($.reason._tag){case"TransportError":return N5.fromHttpClientError($.reason);default:return new PZ({message:Z,cause:$})}return new PZ({message:Z,cause:$})};class i9 extends S1.Service()("@qitqode/Account"){}var DN=T0.effect(i9,L.gen(function*(){let $=yield*s7.Service,Z=yield*p9.HttpClient,J=AN(Z),Y=p9.filterStatusOk(Z),X=p9.filterStatusOk(J),Q=(R)=>J.execute(R).pipe(s8("HTTP request failed")),G=(R)=>X.execute(R).pipe(s8("HTTP request failed")),W=(R)=>R.pipe(L.flatMap((T)=>Y.execute(T)),s8("HTTP request failed")),K=(R)=>R.pipe(L.flatMap((T)=>Z.execute(T)),s8("HTTP request failed")),V=L.fnUntraced(function*(R){let T=yield*r7.currentTimeMillis,P=yield*W(V$.post(`${R.url}/auth/device/token`).pipe(V$.acceptJson,V$.schemaBodyJson(JU)(new JU({grant_type:"refresh_token",refresh_token:R.refresh_token,client_id:aV})))),_=yield*IZ.schemaBodyJson(jN)(P).pipe(s8("Failed to decode response")),E=O1.some(T+Z8.toMillis(_.expires_in));return yield*$.persistToken({accountID:R.id,accessToken:_.access_token,refreshToken:_.refresh_token,expiry:E}),_.access_token}),U=yield*eV.make({capacity:Number.POSITIVE_INFINITY,timeToLive:Z8.zero,lookup:L.fnUntraced(function*(R){let T=yield*$.getRow(R);if(O1.isNone(T))return yield*L.fail(new PZ({message:"Account not found during token refresh"}));let P=T.value,_=yield*r7.currentTimeMillis;if(BN(P.token_expiry,_))return P.access_token;return yield*V(P)})}),H=L.fnUntraced(function*(R){let T=yield*r7.currentTimeMillis;if(BN(R.token_expiry,T))return R.access_token;return yield*eV.get(U,R.id)}),B=L.fnUntraced(function*(R){let T=yield*$.getRow(R);if(O1.isNone(T))return O1.none();let P=T.value,_=yield*H(P);return O1.some({account:P,accessToken:_})}),z=L.fnUntraced(function*(R,T){let P=yield*G(V$.get(`${R}/api/orgs`).pipe(V$.acceptJson,V$.bearerToken(T)));return yield*IZ.schemaBodyJson(O.Array(iY))(P).pipe(s8("Failed to decode response"))}),F=L.fnUntraced(function*(R,T){let P=yield*G(V$.get(`${R}/api/user`).pipe(V$.acceptJson,V$.bearerToken(T)));return yield*IZ.schemaBodyJson(MN)(P).pipe(s8("Failed to decode response"))}),A=L.fn("Account.token")((R)=>B(R).pipe(L.map(O1.map((T)=>T.accessToken)))),q=L.fn("Account.activeOrg")(function*(){let R=yield*$.active();if(O1.isNone(R))return O1.none();let T=R.value;if(!T.active_org_id)return O1.none();let _=(yield*w(T.id)).find((E)=>E.id===T.active_org_id);if(!_)return O1.none();return O1.some({account:T,org:_})}),N=L.fn("Account.orgsByAccount")(function*(){let R=yield*$.list();return yield*L.forEach(R,(T)=>w(T.id).pipe(L.catch(()=>L.succeed([])),L.map((P)=>({account:T,orgs:P}))),{concurrency:3})}),w=L.fn("Account.orgs")(function*(R){let T=yield*B(R);if(O1.isNone(T))return[];let{account:P,accessToken:_}=T.value;return yield*z(P.url,_)}),j=L.fn("Account.config")(function*(R,T){let P=yield*B(R);if(O1.isNone(P))return O1.none();let{account:_,accessToken:E}=P.value,f=yield*Q(V$.get(`${_.url}/api/config`).pipe(V$.acceptJson,V$.bearerToken(E),V$.setHeaders({"x-org-id":T})));if(f.status===404)return O1.none();let b=yield*IZ.filterStatusOk(f).pipe(s8()),y=yield*IZ.schemaBodyJson(ON)(b).pipe(s8("Failed to decode response"));return O1.some(y.config)}),M=L.fn("Account.login")(function*(R){let T=l9(R),P=yield*W(V$.post(`${T}/auth/device/code`).pipe(V$.acceptJson,V$.schemaBodyJson($U)(new $U({client_id:aV})))),_=yield*IZ.schemaBodyJson(qN)(P).pipe(s8("Failed to decode response"));return new nY({code:_.device_code,user:_.user_code,url:`${T}${_.verification_uri_complete}`,server:T,expiry:_.expires_in,interval:_.interval})}),C=L.fn("Account.poll")(function*(R){let T=yield*K(V$.post(`${R.server}/auth/device/token`).pipe(V$.acceptJson,V$.schemaBodyJson(ZU)(new ZU({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:R.code,client_id:aV})))),P=yield*IZ.schemaBodyJson(Ai)(T).pipe(s8("Failed to decode response"));if(P instanceof YU)return P.toPollResult();let _=P.access_token,E=F(R.server,_),f=z(R.server,_),[b,y]=yield*L.all([E,f],{concurrency:2}),k=y.length>0?O1.some(y[0].id):O1.none(),d=(yield*r7.currentTimeMillis)+Z8.toMillis(P.expires_in),p=P.refresh_token;return yield*$.persistAccount({id:b.id,email:b.email,url:R.server,accessToken:_,refreshToken:p,expiry:d,orgID:k}),new d7({email:b.email})});return i9.of({active:$.active,activeOrg:q,list:$.list,orgsByAccount:N,remove:$.remove,use:$.use,orgs:w,config:j,token:A,login:M,poll:C})})),Ni=DN.pipe(T0.provide(s7.layer),T0.provide(FN.layer));import Mi from"path";async function TN(){let $=["qitqode.jsonc","qitqode.json","config.json"].map((Z)=>Mi.join(F0.Path.config,Z));for(let Z of $)if(await o0.exists(Z))return Z;return $[0]}function XU($,Z,J=[]){if(!J8(Z)){let Y=wN($,J,Z,{formattingOptions:{insertSpaces:!0,tabSize:2}});return LN($,Y)}return Object.entries(Z).reduce((Y,[X,Q])=>{if(Q===void 0)return Y;return XU(Y,Q,[...J,X])},$)}function t7($){let{plugin_origins:Z,mcp_origins:J,...Y}=$;return Y}var Di=E0.create({service:"config.sources"});function RN($,Z){if(!J8($))return $;let J={...$};if(!(("theme"in J)||("keybinds"in J)||("tui"in J)))return J;return delete J.theme,delete J.keybinds,delete J.tui,Di.warn("tui keys in qitqode config are deprecated; move them to tui.json",{path:Z}),J}async function PN($,Z){if(!$.plugin)return $;for(let J=0;J<$.plugin.length;J++)$.plugin[J]=await r8.resolvePluginSpec($.plugin[J],Z);return $}var wi=E0.create({service:"config.loader"});function IN($){let Z=L.fnUntraced(function*(X){return yield*$.fs.readFileString(X).pipe(L.catchIf((Q)=>Q.reason._tag==="NotFound",()=>L.succeed(void 0)),L.orDie)}),J=L.fnUntraced(function*(X,Q){let G="path"in Q?Q.path:Q.source,W=yield*L.promise(()=>QU.substitute("path"in Q?{text:X,type:"path",path:Q.path}:{text:X,type:"virtual",...Q})),K=a8.jsonc(W,G),V=a8.schema($.info,RN(K,G),G);if(!("path"in Q))return V;if(yield*L.promise(()=>PN(V,Q.path)),!V.$schema){V.$schema="https://opencode.ai/config.json";let U=X.replace(/^\s*\{/,`{
487
487
  "$schema": "https://opencode.ai/config.json",`);yield*$.fs.writeFileString(Q.path,U).pipe(L.catch(()=>L.void))}return V}),Y=L.fnUntraced(function*(X){wi.info("loading",{path:X});let Q=yield*Z(X);if(!Q)return{};return yield*J(Q,{path:X})});return{readConfigFile:Z,loadConfig:J,loadFile:Y}}import oY from"path";import{pathToFileURL as Li}from"url";import GU from"fs/promises";function EN($){return L.fnUntraced(function*(){let Z=CN({},N1(yield*$(oY.join(F0.Path.config,"config.json"))),N1(yield*$(oY.join(F0.Path.config,"qitqode.json"))),N1(yield*$(oY.join(F0.Path.config,"qitqode.jsonc")))),J=oY.join(F0.Path.config,"config");if(!(yield*L.promise(()=>GU.access(J).then(()=>!0,()=>!1))))return Z;return yield*L.promise(()=>import(Li(J).href,{with:{type:"toml"}}).then(async(X)=>{let{provider:Q,model:G,...W}=X.default;if(Q&&G)Z.model=`${Q}/${G}`;Z.$schema="https://opencode.ai/config.json",Z=N1(Z,W),await GU.writeFile(oY.join(F0.Path.config,"config.json"),JSON.stringify(Z,null,2)),await GU.unlink(J)}).catch(()=>{})),Z})}import fZ from"path";import Ja from"os";function n9($,Z){let J=N1($,Z);if($.instructions&&Z.instructions)J.instructions=Array.from(new Set([...$.instructions,...Z.instructions]));return J}var CZ={};B1(CZ,{redactString:()=>SN,redactCommand:()=>Ei,fromClaude:()=>Ci,Remote:()=>UU,OAuth:()=>VU,Local:()=>KU,Info:()=>Ti,ConfigMCP:()=>CZ});class KU extends O.Class("McpLocalConfig")({type:O.Literal("local").annotate({description:"Type of MCP server connection"}),command:O.mutable(O.Array(O.String)).annotate({description:"Command and arguments to run the MCP server"}),environment:O.optional(O.Record(O.String,O.String)).annotate({description:"Environment variables to set when running the MCP server"}),enabled:O.optional(O.Boolean).annotate({description:"Enable or disable the MCP server on startup"}),timeout:O.optional(O.Number).annotate({description:"Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified."})}){static zod=w0(this)}class VU extends O.Class("McpOAuthConfig")({clientId:O.optional(O.String).annotate({description:"OAuth client ID. If not provided, dynamic client registration (RFC 7591) will be attempted."}),clientSecret:O.optional(O.String).annotate({description:"OAuth client secret (if required by the authorization server)"}),scope:O.optional(O.String).annotate({description:"OAuth scopes to request during authorization"}),redirectUri:O.optional(O.String).annotate({description:"OAuth redirect URI (default: http://127.0.0.1:19876/mcp/oauth/callback)."})}){static zod=w0(this)}class UU extends O.Class("McpRemoteConfig")({type:O.Literal("remote").annotate({description:"Type of MCP server connection"}),url:O.String.annotate({description:"URL of the remote MCP server"}),enabled:O.optional(O.Boolean).annotate({description:"Enable or disable the MCP server on startup"}),headers:O.optional(O.Record(O.String,O.String)).annotate({description:"Headers to send with the request"}),oauth:O.optional(O.Union([VU,O.Literal(!1)])).annotate({description:"OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection."}),timeout:O.optional(O.Number).annotate({description:"Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified."})}){static zod=w0(this)}var Ti=O.Union([KU,UU]).annotate({discriminator:"type"}).pipe(u0(($)=>({zod:w0($)}))),bN=new Set(["http","streamable-http","remote"]),_N=new Set(["stdio","local"]),Ri=["authorization","token","api_key","apikey","key","secret","password","credential"];function WU($){if(!J8($))return;return Object.fromEntries(Object.entries($).filter((Z)=>typeof Z[1]==="string"))}function Pi($){return Ri.some((Z)=>$.toLowerCase().includes(Z))}function Ii($){if($===!1)return!1;if(!J8($))return;let Z={...typeof $.clientId==="string"&&{clientId:$.clientId},...typeof $.clientSecret==="string"&&{clientSecret:$.clientSecret},...typeof $.scope==="string"&&{scope:$.scope},...typeof $.redirectUri==="string"&&{redirectUri:$.redirectUri}};return Object.keys(Z).length>0?Z:void 0}function Ci($,Z){if(!J8(Z))return{warning:`skipped Claude Code MCP server "${$}"; server config is not an object.`};if(Z.type==="sse")return{warning:`skipped Claude Code MCP server "${$}"; unsupported transport "sse".`};if(Z.args!==void 0&&!Array.isArray(Z.args))return{warning:`skipped Claude Code MCP server "${$}"; args is not an array.`};let J=Array.isArray(Z.args)?Z.args:[];if(!J.every((W)=>typeof W==="string"))return{warning:`skipped Claude Code MCP server "${$}"; args must contain only strings.`};let Y=Z.disabled===!0?!1:Z.enabled===!1?!1:!0,X=WU(Z.environment)??WU(Z.env),Q=typeof Z.timeout==="number"?Z.timeout:void 0,G=typeof Z.type==="string"?Z.type:void 0;if(typeof Z.command==="string"&&(!G||_N.has(G)))return{config:{type:"local",command:[Z.command,...J],...X&&{environment:X},enabled:Y,...Q!==void 0&&{timeout:Q}}};if(Z.command!==void 0)return{warning:`skipped Claude Code MCP server "${$}"; command is not a string.`};if(typeof Z.url==="string"&&(!G||bN.has(G))){let W=WU(Z.headers),K=Ii(Z.oauth);return{config:{type:"remote",url:Z.url,enabled:Y,...W&&{headers:W},...K!==void 0&&{oauth:K},...Q!==void 0&&{timeout:Q}}}}if(Z.url!==void 0)return{warning:`skipped Claude Code MCP server "${$}"; url is not a string.`};if(G&&!_N.has(G)&&!bN.has(G))return{warning:`skipped Claude Code MCP server "${$}"; unsupported transport "${G}".`};return{warning:`skipped Claude Code MCP server "${$}"; missing command or url.`}}function SN($){return $.replace(/(Bearer\s+)[^\s]+/gi,"$1****").replace(/([?&][^=\s&]*(?:authorization|token|api[_-]?key|apikey|key|secret|password|credential)[^=\s&]*=)[^&\s]+/gi,"$1****").replace(/((?:authorization|token|api[_-]?key|apikey|key|secret|password|credential)=)[^\s]+/gi,"$1****")}function Ei($){return $.map((Z,J)=>{if(J>0&&Pi($[J-1]))return"****";return SN(Z)})}var HU=E0.create({service:"config.sources"});function fN($){let Z=(G,W,K,V)=>{if(!K.mcp)return G;return{...G,mcp_origins:{...G.mcp_origins??{},...Object.fromEntries(Object.keys(K.mcp).map((U)=>[U,{type:V,source:W}]))}}},J=L.fnUntraced(function*(G,W,K,V){if(!K?.length)return G;let U=V??(yield*$.resolvePluginScope(W)),H=r8.deduplicatePluginOrigins([...G.plugin_origins??[],...K.map((B)=>({spec:B,source:W,scope:U}))]);return{...G,plugin:H.map((B)=>B.spec),plugin_origins:H}}),Y=L.fnUntraced(function*(G,W,K,V){let U=n9(G,K),H=Z(U,W,K,"qitqode");return yield*J(H,W,K.plugin,V)}),X=L.fnUntraced(function*(G){let W=yield*$.readConfigFile(G);if(!W)return;return yield*L.try({try:()=>JSON.parse(W),catch:()=>Error(`failed to parse ${G}; Claude Code MCP compatibility skipped.`)}).pipe(L.tapError((K)=>L.sync(()=>HU.warn(K.message))),L.option,L.map(O1.getOrUndefined))}),Q=L.fnUntraced(function*(G,W){let K=yield*X(W);if(!J8(K)||!J8(K.mcpServers))return G;let V=G;for(let[U,H]of Object.entries(K.mcpServers)){if(V.mcp?.[U]&&V.mcp_origins?.[U]?.type!=="claude"){HU.info(`skipped Claude Code MCP server "${U}"; native qitqode MCP with same name already exists.`);continue}let z=CZ.fromClaude(U,H);if("warning"in z){HU.warn(z.warning);continue}let F=a8.schema($.info,{mcp:{[U]:z.config}},W);V={...V,mcp:{...V.mcp??{},[U]:F.mcp[U]},mcp_origins:{...V.mcp_origins??{},[U]:{type:"claude",source:W}}}}return V});return{merge:Y,mergeMcpOrigins:Z,mergePluginOrigins:J,mergeClaudeMcp:Q}}function kN($,Z){let J=$;for(let[Y,X]of Object.entries(J.mode??{}))J.agent=N1(J.agent??{},{[Y]:{...X,mode:"primary"}});if(Z.permissionOverride)J.permission=N1(J.permission??{},JSON.parse(Z.permissionOverride));if(J.tools){let Y={};for(let[X,Q]of Object.entries(J.tools)){let G=Q?"allow":"deny";if(X==="write"||X==="edit"||X==="patch"||X==="multiedit"){Y.edit=G;continue}Y[X]=G}J.permission=N1(Y,J.permission??{})}if(!J.username)J.username=Z.username;if(J.autoshare===!0&&!J.share)J.share="auto";if(Z.disableAutoCompact)J.compaction={...J.compaction,auto:!1};if(Z.disablePrune)J.compaction={...J.compaction,prune:!1};return J}var i6={};B1(i6,{loadMode:()=>or,load:()=>nr,Info:()=>yU,ConfigAgent:()=>i6});import vN from"path";function bi($,Z){let J=$.replaceAll("\\","/");for(let Y of Z){let X=J.indexOf(Y);if(X===-1)continue;return J.slice(X+Y.length)}}function yN($,Z){let J=bi($,Z)??vN.basename($),Y=vN.extname(J);return Y.length?J.slice(0,-Y.length):J}var vU={};B1(vU,{shell:()=>vr,parse:()=>kU,files:()=>kr,fallbackSanitization:()=>Yw,SHELL_REGEX:()=>Jw,FrontmatterError:()=>YX,FILE_REGEX:()=>Zw});var fU=m6($w(),1);var Zw=/(?<![\w`])@(\.?[^\s`,.]*(?:\.[^\s`,.]+)*)/g,Jw=/!`([^`]+)`/g;function kr($){return Array.from($.matchAll(Zw))}function vr($){return Array.from($.matchAll(Jw))}function Yw($){let Z=$.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!Z)return $;let J=Z[1],Y=J.split(/\r?\n/),X=[];for(let G of Y){if(G.trim().startsWith("#")||G.trim()===""){X.push(G);continue}if(G.match(/^\s+/)){X.push(G);continue}let W=G.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*:\s*(.*)$/);if(!W){X.push(G);continue}let K=W[1],V=W[2].trim();if(V===""||V===">"||V==="|"||V.startsWith('"')||V.startsWith("'")){X.push(G);continue}if(V.includes(":")){X.push(`${K}: |-`),X.push(` ${V}`);continue}X.push(G)}let Q=X.join(`
488
- `);return $.replace(J,()=>Q)}async function kU($){let Z=await o0.readText($);try{return fU.default(Z,{})}catch(J){let Y=Yw(Z);if(Y===Z)throw new YX({path:$,message:`${$}: Failed to parse YAML frontmatter: ${J instanceof Error?J.message:String(J)}`},{cause:J});try{return fU.default(Y,{})}catch(X){throw new YX({path:$,message:`${$}: Failed to parse YAML frontmatter: ${X instanceof Error?X.message:String(X)}`},{cause:X})}}}var YX=q1.create("ConfigFrontmatterError",D.object({path:D.string(),message:D.string()}));var yr=E0.create({service:"config"});function XX($,Z,J,Y){let X=$.safeParse(Z);if(X.success)return X.data;if(Y?.ignoreInvalid)return;throw new Xw({path:J,issues:X.error.issues},{cause:X.error})}async function QX($){for(let Z of await G4.scan($.glob,{cwd:$.dir,absolute:!0,dot:!0,symlink:!0})){let J=await kU(Z).catch(async(Q)=>{let G=YX.isInstance(Q)?Q.data.message:`Failed to parse ${$.entity} ${Z}`,{Session:W}=await import("./chunk-p3pemdns.js");l1.publish(W.Event.Error,{error:new q1.Unknown({message:G}).toObject()}),yr.error(`failed to load ${$.entity}`,{[$.entity]:Z,err:Q});return});if(!J)continue;let X={name:yN(Z,$.namePatterns),...J.data,[$.contentKey]:J.content.trim()};$.store(X,Z)}}var L8=O.String.annotate({[F$]:I.string().meta({$ref:"https://models.dev/model-schema.json#/$defs/Model"})}).pipe(u0(($)=>({zod:w0($)})));var SZ={};B1(SZ,{Rule:()=>T8,Object:()=>Gw,Info:()=>mr,ConfigPermission:()=>SZ,Action:()=>c6});var c6=O.Literals(["ask","allow","deny"]).annotate({identifier:"PermissionActionConfig"}).pipe(u0(($)=>({zod:w0($)}))),Gw=O.Record(O.String,c6).annotate({identifier:"PermissionObjectConfig"}).pipe(u0(($)=>({zod:w0($)}))),T8=O.Union([c6,Gw]).annotate({identifier:"PermissionRuleConfig"}).pipe(u0(($)=>({zod:w0($)}))),xr=($)=>{if(typeof $==="object"&&$!==null&&!Array.isArray($))return{__originalKeys:globalThis.Object.keys($),...$};return $},hr=O.StructWithRest(O.Struct({__originalKeys:O.optional(O.mutable(O.Array(O.String))),read:O.optional(T8),edit:O.optional(T8),glob:O.optional(T8),grep:O.optional(T8),list:O.optional(T8),bash:O.optional(T8),task:O.optional(T8),actor:O.optional(T8),external_directory:O.optional(T8),question:O.optional(c6),webfetch:O.optional(c6),websearch:O.optional(c6),codesearch:O.optional(c6),lsp:O.optional(T8),doom_loop:O.optional(c6),skill:O.optional(T8)}),[O.Record(O.String,T8)]),gr=O.Union([hr,c6]).annotate({[Qw]:xr}),ur=($)=>{if(typeof $==="string")return{"*":$};let Z=$,{__originalKeys:J,...Y}=Z;if(!J)return Y;let X={};for(let Q of J)if(Q in Y)X[Q]=Y[Q];return X},mr=w0(gr).transform(ur).meta({ref:"PermissionConfig"});var Ww=O.Number.check(O.isInt()).check(O.isGreaterThan(0)),lr=O.Union([O.String.check(O.isPattern(/^#[0-9a-fA-F]{6}$/)),O.Literals(["primary","secondary","accent","success","warning","error","info"])]),dr=O.Any.annotate({[F$]:SZ.Info}),pr=O.StructWithRest(O.Struct({model:O.optional(L8).annotate({description:"Model for this agent: a literal provider/model (e.g. anthropic/claude-opus-4-8) or a tier/group name (e.g. fast/economical/default/power). Names without a '/' are resolved as model groups, provider-aware, at spawn time."}),variant:O.optional(O.String).annotate({description:"Default model variant for this agent (applies only when using the agent's configured model)."}),temperature:O.optional(O.Number),top_p:O.optional(O.Number),prompt:O.optional(O.String),tools:O.optional(O.Record(O.String,O.Boolean)).annotate({description:"@deprecated Use 'permission' field instead"}),disable:O.optional(O.Boolean),description:O.optional(O.String).annotate({description:"Description of when to use the agent"}),mode:O.optional(O.Literals(["subagent","primary","all"])),hidden:O.optional(O.Boolean).annotate({description:"Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)"}),options:O.optional(O.Record(O.String,O.Any)),color:O.optional(lr).annotate({description:"Hex color code (e.g., #FF5733) or theme color (e.g., primary)"}),steps:O.optional(Ww).annotate({description:"Maximum number of agentic iterations before forcing text-only response"}),tool_allowlist:O.optional(O.Array(O.String)).annotate({description:"Optional list of tool IDs allowed for this agent. When set, only these tools are available."}),maxSteps:O.optional(Ww).annotate({description:"@deprecated Use 'steps' field instead."}),permission:O.optional(dr)}),[O.Record(O.String,O.Any)]),cr=new Set(["name","model","variant","prompt","description","temperature","top_p","mode","hidden","color","steps","maxSteps","options","permission","disable","tools","tool_allowlist"]),ir=($)=>{let Z={...$.options};for(let[Y,X]of Object.entries($))if(!cr.has(Y))Z[Y]=X;let J={};for(let[Y,X]of Object.entries($.tools??{})){let Q=X?"allow":"deny";if(Y==="write"||Y==="edit"||Y==="patch"||Y==="multiedit"){J.edit=Q;continue}if(Y==="task"){J.actor=Q;continue}J[Y]=Q}return globalThis.Object.assign(J,$.permission),{...$,options:Z,permission:J,steps:$.steps??$.maxSteps}},yU=w0(pr).transform(ir).meta({ref:"AgentConfig"});async function nr($){let Z={};return await QX({dir:$,glob:"{agent,agents}/**/*.md",entity:"agent",namePatterns:["/.qitqode/agent/","/.qitqode/agents/","/agent/","/agents/"],contentKey:"prompt",store:(J,Y)=>{Z[J.name]=XX(yU,J,Y)}}),Z}async function or($){let Z={};return await QX({dir:$,glob:"{mode,modes}/*.md",entity:"mode",namePatterns:[],contentKey:"prompt",store:(J,Y)=>{let X=XX(yU,J,Y,{ignoreInvalid:!0});if(X)Z[J.name]={...X,mode:"primary"}}}),Z}var n6={};B1(n6,{load:()=>sr,Info:()=>Kw,ConfigCommand:()=>n6});var Kw=O.Struct({template:O.String,description:O.optional(O.String),agent:O.optional(O.String),model:O.optional(L8),subtask:O.optional(O.Boolean)}).pipe(u0(($)=>({zod:w0($)})));async function sr($){let Z={};return await QX({dir:$,glob:"{command,commands}/**/*.md",entity:"command",namePatterns:["/.qitqode/command/","/.qitqode/commands/","/.claude/command/","/.claude/commands/","/command/","/commands/"],contentKey:"template",store:(J,Y)=>{Z[J.name]=XX(Kw.zod,J,Y)}}),Z}var P5={};B1(P5,{readManagedPreferences:()=>Za,parseManagedPlist:()=>Bw,managedConfigDirs:()=>Hw,managedConfigDir:()=>$a,ConfigManaged:()=>P5});import rr from"os";import xU from"path";var Vw=E0.create({service:"config"}),ar="ai.qitqode.managed",tr="ai.opencode.managed",er=new Set(["PayloadDisplayName","PayloadIdentifier","PayloadType","PayloadUUID","PayloadVersion","_manualProfile"]);function Uw($="qitqode"){switch(process.platform){case"darwin":return`/Library/Application Support/${$}`;case"win32":return xU.join(process.env.ProgramData||"C:\\ProgramData",$);default:return`/etc/${$}`}}function $a(){return Hw().at(-1)}function Hw(){let $=process.env.QITQODE_TEST_MANAGED_CONFIG_DIR;if($)return[$];return[Uw("opencode"),Uw()]}function Bw($){let Z=JSON.parse($);for(let J of Object.keys(Z))if(er.has(J))delete Z[J];return JSON.stringify(Z)}async function Za(){if(process.platform!=="darwin")return;let $=rr.userInfo().username,Z=[tr,ar].flatMap((J)=>[xU.join("/Library/Managed Preferences",$,`${J}.plist`),xU.join("/Library/Managed Preferences",`${J}.plist`)]);for(let J of Z){if(!await o0.exists(J))continue;Vw.info("reading macOS managed preferences",{path:J});let Y=await f1.run(["plutil","-convert","json","-o","-",J],{nothrow:!0});if(Y.code!==0){Vw.warn("failed to convert managed preferences plist",{path:J});continue}return{source:`mobileconfig:${J}`,text:Bw(Y.stdout.toString())}}return}var kZ=E0.create({service:"config"});function Aw($){let{fs:Z,authSvc:J,accountSvc:Y,env:X,npmSvc:Q,readConfigFile:G,loadConfig:W,loadFile:K,getGlobal:V}=$,U=L.fn("Config.ensureGitignore")(function*(B){let z=fZ.join(B,".gitignore");if(!(yield*Z.existsSafe(z)))yield*Z.writeFileString(z,["node_modules","package.json","package-lock.json","bun.lock",".gitignore"].join(`
488
+ `);return $.replace(J,()=>Q)}async function kU($){let Z=await o0.readText($);try{return fU.default(Z,{})}catch(J){let Y=Yw(Z);if(Y===Z)throw new YX({path:$,message:`${$}: Failed to parse YAML frontmatter: ${J instanceof Error?J.message:String(J)}`},{cause:J});try{return fU.default(Y,{})}catch(X){throw new YX({path:$,message:`${$}: Failed to parse YAML frontmatter: ${X instanceof Error?X.message:String(X)}`},{cause:X})}}}var YX=q1.create("ConfigFrontmatterError",D.object({path:D.string(),message:D.string()}));var yr=E0.create({service:"config"});function XX($,Z,J,Y){let X=$.safeParse(Z);if(X.success)return X.data;if(Y?.ignoreInvalid)return;throw new Xw({path:J,issues:X.error.issues},{cause:X.error})}async function QX($){for(let Z of await G4.scan($.glob,{cwd:$.dir,absolute:!0,dot:!0,symlink:!0})){let J=await kU(Z).catch(async(Q)=>{let G=YX.isInstance(Q)?Q.data.message:`Failed to parse ${$.entity} ${Z}`,{Session:W}=await import("./chunk-6cj7cn5x.js");l1.publish(W.Event.Error,{error:new q1.Unknown({message:G}).toObject()}),yr.error(`failed to load ${$.entity}`,{[$.entity]:Z,err:Q});return});if(!J)continue;let X={name:yN(Z,$.namePatterns),...J.data,[$.contentKey]:J.content.trim()};$.store(X,Z)}}var L8=O.String.annotate({[F$]:I.string().meta({$ref:"https://models.dev/model-schema.json#/$defs/Model"})}).pipe(u0(($)=>({zod:w0($)})));var SZ={};B1(SZ,{Rule:()=>T8,Object:()=>Gw,Info:()=>mr,ConfigPermission:()=>SZ,Action:()=>c6});var c6=O.Literals(["ask","allow","deny"]).annotate({identifier:"PermissionActionConfig"}).pipe(u0(($)=>({zod:w0($)}))),Gw=O.Record(O.String,c6).annotate({identifier:"PermissionObjectConfig"}).pipe(u0(($)=>({zod:w0($)}))),T8=O.Union([c6,Gw]).annotate({identifier:"PermissionRuleConfig"}).pipe(u0(($)=>({zod:w0($)}))),xr=($)=>{if(typeof $==="object"&&$!==null&&!Array.isArray($))return{__originalKeys:globalThis.Object.keys($),...$};return $},hr=O.StructWithRest(O.Struct({__originalKeys:O.optional(O.mutable(O.Array(O.String))),read:O.optional(T8),edit:O.optional(T8),glob:O.optional(T8),grep:O.optional(T8),list:O.optional(T8),bash:O.optional(T8),task:O.optional(T8),actor:O.optional(T8),external_directory:O.optional(T8),question:O.optional(c6),webfetch:O.optional(c6),websearch:O.optional(c6),codesearch:O.optional(c6),lsp:O.optional(T8),doom_loop:O.optional(c6),skill:O.optional(T8)}),[O.Record(O.String,T8)]),gr=O.Union([hr,c6]).annotate({[Qw]:xr}),ur=($)=>{if(typeof $==="string")return{"*":$};let Z=$,{__originalKeys:J,...Y}=Z;if(!J)return Y;let X={};for(let Q of J)if(Q in Y)X[Q]=Y[Q];return X},mr=w0(gr).transform(ur).meta({ref:"PermissionConfig"});var Ww=O.Number.check(O.isInt()).check(O.isGreaterThan(0)),lr=O.Union([O.String.check(O.isPattern(/^#[0-9a-fA-F]{6}$/)),O.Literals(["primary","secondary","accent","success","warning","error","info"])]),dr=O.Any.annotate({[F$]:SZ.Info}),pr=O.StructWithRest(O.Struct({model:O.optional(L8).annotate({description:"Model for this agent: a literal provider/model (e.g. anthropic/claude-opus-4-8) or a tier/group name (e.g. fast/economical/default/power). Names without a '/' are resolved as model groups, provider-aware, at spawn time."}),variant:O.optional(O.String).annotate({description:"Default model variant for this agent (applies only when using the agent's configured model)."}),temperature:O.optional(O.Number),top_p:O.optional(O.Number),prompt:O.optional(O.String),tools:O.optional(O.Record(O.String,O.Boolean)).annotate({description:"@deprecated Use 'permission' field instead"}),disable:O.optional(O.Boolean),description:O.optional(O.String).annotate({description:"Description of when to use the agent"}),mode:O.optional(O.Literals(["subagent","primary","all"])),hidden:O.optional(O.Boolean).annotate({description:"Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)"}),options:O.optional(O.Record(O.String,O.Any)),color:O.optional(lr).annotate({description:"Hex color code (e.g., #FF5733) or theme color (e.g., primary)"}),steps:O.optional(Ww).annotate({description:"Maximum number of agentic iterations before forcing text-only response"}),tool_allowlist:O.optional(O.Array(O.String)).annotate({description:"Optional list of tool IDs allowed for this agent. When set, only these tools are available."}),maxSteps:O.optional(Ww).annotate({description:"@deprecated Use 'steps' field instead."}),permission:O.optional(dr)}),[O.Record(O.String,O.Any)]),cr=new Set(["name","model","variant","prompt","description","temperature","top_p","mode","hidden","color","steps","maxSteps","options","permission","disable","tools","tool_allowlist"]),ir=($)=>{let Z={...$.options};for(let[Y,X]of Object.entries($))if(!cr.has(Y))Z[Y]=X;let J={};for(let[Y,X]of Object.entries($.tools??{})){let Q=X?"allow":"deny";if(Y==="write"||Y==="edit"||Y==="patch"||Y==="multiedit"){J.edit=Q;continue}if(Y==="task"){J.actor=Q;continue}J[Y]=Q}return globalThis.Object.assign(J,$.permission),{...$,options:Z,permission:J,steps:$.steps??$.maxSteps}},yU=w0(pr).transform(ir).meta({ref:"AgentConfig"});async function nr($){let Z={};return await QX({dir:$,glob:"{agent,agents}/**/*.md",entity:"agent",namePatterns:["/.qitqode/agent/","/.qitqode/agents/","/agent/","/agents/"],contentKey:"prompt",store:(J,Y)=>{Z[J.name]=XX(yU,J,Y)}}),Z}async function or($){let Z={};return await QX({dir:$,glob:"{mode,modes}/*.md",entity:"mode",namePatterns:[],contentKey:"prompt",store:(J,Y)=>{let X=XX(yU,J,Y,{ignoreInvalid:!0});if(X)Z[J.name]={...X,mode:"primary"}}}),Z}var n6={};B1(n6,{load:()=>sr,Info:()=>Kw,ConfigCommand:()=>n6});var Kw=O.Struct({template:O.String,description:O.optional(O.String),agent:O.optional(O.String),model:O.optional(L8),subtask:O.optional(O.Boolean)}).pipe(u0(($)=>({zod:w0($)})));async function sr($){let Z={};return await QX({dir:$,glob:"{command,commands}/**/*.md",entity:"command",namePatterns:["/.qitqode/command/","/.qitqode/commands/","/.claude/command/","/.claude/commands/","/command/","/commands/"],contentKey:"template",store:(J,Y)=>{Z[J.name]=XX(Kw.zod,J,Y)}}),Z}var P5={};B1(P5,{readManagedPreferences:()=>Za,parseManagedPlist:()=>Bw,managedConfigDirs:()=>Hw,managedConfigDir:()=>$a,ConfigManaged:()=>P5});import rr from"os";import xU from"path";var Vw=E0.create({service:"config"}),ar="ai.qitqode.managed",tr="ai.opencode.managed",er=new Set(["PayloadDisplayName","PayloadIdentifier","PayloadType","PayloadUUID","PayloadVersion","_manualProfile"]);function Uw($="qitqode"){switch(process.platform){case"darwin":return`/Library/Application Support/${$}`;case"win32":return xU.join(process.env.ProgramData||"C:\\ProgramData",$);default:return`/etc/${$}`}}function $a(){return Hw().at(-1)}function Hw(){let $=process.env.QITQODE_TEST_MANAGED_CONFIG_DIR;if($)return[$];return[Uw("opencode"),Uw()]}function Bw($){let Z=JSON.parse($);for(let J of Object.keys(Z))if(er.has(J))delete Z[J];return JSON.stringify(Z)}async function Za(){if(process.platform!=="darwin")return;let $=rr.userInfo().username,Z=[tr,ar].flatMap((J)=>[xU.join("/Library/Managed Preferences",$,`${J}.plist`),xU.join("/Library/Managed Preferences",`${J}.plist`)]);for(let J of Z){if(!await o0.exists(J))continue;Vw.info("reading macOS managed preferences",{path:J});let Y=await f1.run(["plutil","-convert","json","-o","-",J],{nothrow:!0});if(Y.code!==0){Vw.warn("failed to convert managed preferences plist",{path:J});continue}return{source:`mobileconfig:${J}`,text:Bw(Y.stdout.toString())}}return}var kZ=E0.create({service:"config"});function Aw($){let{fs:Z,authSvc:J,accountSvc:Y,env:X,npmSvc:Q,readConfigFile:G,loadConfig:W,loadFile:K,getGlobal:V}=$,U=L.fn("Config.ensureGitignore")(function*(B){let z=fZ.join(B,".gitignore");if(!(yield*Z.existsSafe(z)))yield*Z.writeFileString(z,["node_modules","package.json","package-lock.json","bun.lock",".gitignore"].join(`
489
489
  `)).pipe(L.catchIf((A)=>A.reason._tag==="PermissionDenied",()=>L.void))});return{loadInstanceState:L.fn("Config.loadInstanceState")(function*(B){let z=yield*J.all().pipe(L.orDie),F={},A=new Set,q,N=L.fnUntraced(function*(P){if(P.startsWith("http://")||P.startsWith("https://"))return"global";if(P==="QITQODE_CONFIG_CONTENT")return"local";if(yield*Fw.use((_)=>L.succeed(S8.containsPath(P,_))))return"local";return"global"}),w=fN({info:$.info,readConfigFile:G,resolvePluginScope:N});for(let[P,_]of Object.entries(z))if(_.type==="wellknown"){let E=P.replace(/\/+$/,"");process.env[_.key]=_.token,kZ.debug("fetching remote config",{url:`${E}/.well-known/opencode`});let f=yield*L.promise(()=>fetch(`${E}/.well-known/opencode`,{signal:AbortSignal.timeout(1000)}));if(!f.ok)throw Error(`failed to fetch remote config from ${E}: ${f.status}`);let y=(yield*L.promise(()=>f.json())).config??{};if(!y.$schema)y.$schema="https://opencode.ai/config.json";let k=`${E}/.well-known/opencode`,g=yield*W(JSON.stringify(y),{dir:fZ.dirname(k),source:k});F=yield*w.merge(F,k,g,"global"),kZ.debug("loaded remote config from well-known",{url:E})}let j=yield*V();if(F=yield*w.merge(F,F0.Path.config,j,"global"),b0.QITQODE_CONFIG)F=yield*w.merge(F,b0.QITQODE_CONFIG,yield*K(b0.QITQODE_CONFIG)),kZ.debug("loaded custom config",{path:b0.QITQODE_CONFIG});if(!b0.QITQODE_DISABLE_PROJECT_CONFIG)for(let P of yield*GX.files("qitqode",B.directory,B.worktree).pipe(L.orDie))F=yield*w.merge(F,P,yield*K(P),"local");F.agent=F.agent||{},F.mode=F.mode||{},F.plugin=F.plugin||[];let M=yield*GX.directories(B.directory,B.worktree);if(b0.QITQODE_CONFIG_DIR)kZ.debug("loading config from QITQODE_CONFIG_DIR",{path:b0.QITQODE_CONFIG_DIR});let C=[];for(let P of yield*GX.claudeCommandDirectories(B.directory,B.worktree))F.command=N1(F.command??{},yield*L.promise(()=>n6.load(P)));for(let P of M){if(P.endsWith(".qitqode")||P===b0.QITQODE_CONFIG_DIR)for(let f of["qitqode.json","qitqode.jsonc"]){let b=fZ.join(P,f);kZ.debug(`loading config from ${b}`),F=yield*w.merge(F,b,yield*K(b)),F.agent??={},F.mode??={},F.plugin??=[]}yield*U(P).pipe(L.orDie);let _=yield*Q.install(P,{add:[{name:"@qitqode/plugin",version:zw?void 0:O$}]}).pipe(L.exit,L.tap((f)=>O9.isFailure(f)?L.sync(()=>{kZ.warn("background dependency install failed",{dir:P,error:String(f.cause)})}):L.void),L.asVoid,L.forkDetach);C.push(_),F.command=N1(F.command??{},yield*L.promise(()=>n6.load(P))),F.agent=N1(F.agent??{},yield*L.promise(()=>i6.load(P))),F.agent=N1(F.agent??{},yield*L.promise(()=>i6.loadMode(P)));let E=yield*L.promise(()=>r8.load(P));F=yield*w.mergePluginOrigins(F,P,E)}if(process.env.QITQODE_CONFIG_CONTENT){let _=yield*W(process.env.QITQODE_CONFIG_CONTENT,{dir:B.directory,source:"QITQODE_CONFIG_CONTENT"});F=yield*w.merge(F,"QITQODE_CONFIG_CONTENT",_,"local"),kZ.debug("loaded custom config from QITQODE_CONFIG_CONTENT")}let R=O1.getOrUndefined(yield*Y.active().pipe(L.catch(()=>L.succeed(O1.none()))));if(R?.active_org_id){let{id:P,active_org_id:_,url:E}=R;yield*L.gen(function*(){let[f,b]=yield*L.all([Y.config(P,_),Y.token(P)],{concurrency:2});if(O1.isSome(b))process.env.QITQODE_CONSOLE_TOKEN=b.value,yield*X.set("QITQODE_CONSOLE_TOKEN",b.value);if(O1.isSome(f)){let y=`${E}/api/config`,k=yield*W(JSON.stringify(f.value),{dir:fZ.dirname(y),source:y});for(let g of Object.keys(k.provider??{}))A.add(g);F=yield*w.merge(F,y,k,"global")}}).pipe(L.withSpan("Config.loadActiveOrgConfig"),L.catch((f)=>{return kZ.debug("failed to fetch remote account config",{error:f instanceof Error?f.message:String(f)}),L.void}))}for(let P of P5.managedConfigDirs()){if(!(yield*L.promise(()=>o0.exists(P))))continue;for(let _ of["qitqode.json","qitqode.jsonc"]){let E=fZ.join(P,_);F=yield*w.merge(F,E,yield*K(E),"global")}}let T=yield*L.promise(()=>P5.readManagedPreferences());if(T){let P=yield*W(T.text,{dir:fZ.dirname(T.source),source:T.source});F=w.mergeMcpOrigins(n9(F,P),T.source,P,"qitqode")}if(!b0.QITQODE_DISABLE_CLAUDE_CODE_MCP)F=yield*w.mergeClaudeMcp(F,fZ.join(F0.Path.home,".claude.json")),F=yield*w.mergeClaudeMcp(F,fZ.join(B.directory,".claude.json"));return F=kN(F,{username:Ja.userInfo().username,permissionOverride:b0.QITQODE_PERMISSION,disableAutoCompact:b0.QITQODE_DISABLE_AUTOCOMPACT,disablePrune:b0.QITQODE_DISABLE_PRUNE}),{config:F,directories:M,deps:C,consoleState:{consoleManagedProviders:Array.from(A),activeOrgName:q,switchableOrgCount:0}}},L.provideService(E$.Service,Z)),ensureGitignore:U}}var I5={};B1(I5,{Layout:()=>Ya,ConfigLayout:()=>I5});var Ya=O.Literals(["auto","stretch"]).annotate({identifier:"LayoutConfig"}).pipe(u0(($)=>({zod:w0($)})));var C5={};B1(C5,{Server:()=>Ow,ConfigServer:()=>C5});class Ow extends O.Class("ServerConfig")({port:O.optional(O.Number.check(O.isInt()).check(O.isGreaterThan(0))).annotate({description:"Port to listen on"}),hostname:O.optional(O.String).annotate({description:"Hostname to listen on"}),mdns:O.optional(O.Boolean).annotate({description:"Enable mDNS service discovery"}),mdnsDomain:O.optional(O.String).annotate({description:"Custom domain name for mDNS service (default: qitqode.local)"}),cors:O.optional(O.mutable(O.Array(O.String))).annotate({description:"Additional domains to allow for CORS"})}){static zod=w0(this)}var KJ={};B1(KJ,{Info:()=>Xa,Entry:()=>jw,ConfigFormatter:()=>KJ});var jw=O.Struct({disabled:O.optional(O.Boolean),command:O.optional(O.mutable(O.Array(O.String))),environment:O.optional(O.Record(O.String,O.String)),extensions:O.optional(O.mutable(O.Array(O.String)))}).pipe(u0(($)=>({zod:w0($)}))),Xa=O.Union([O.Boolean,O.Record(O.String,jw)]).pipe(u0(($)=>({zod:w0($)})));var WX={};B1(WX,{Kind:()=>qw,Info:()=>Qa,ConfigHistory:()=>WX});var qw=O.Literals(["user_text","assistant_text","tool_input","tool_error","reasoning","tool_output"]),Qa=O.Struct({kinds:O.optional(O.Array(qw)).annotate({description:"Which part kinds the history FTS index should cover. Defaults to text (user/assistant) + tool input + tool errors. Add 'reasoning' or 'tool_output' to grow recall at the cost of database size. Note: enabling 'tool_output' reclassifies completed tools from kind='tool_input' to kind='tool_output' (input remains searchable in the body, but kind:['tool_input'] filter will then only match pending/error tools)."})});var VJ={};B1(VJ,{requiresExtensionsForCustomServers:()=>Dw,Info:()=>Ga,Entry:()=>Mw,Disabled:()=>Nw,ConfigLSP:()=>VJ});var Nw=O.Struct({disabled:O.Literal(!0)}).pipe(u0(($)=>({zod:w0($)}))),Mw=O.Union([Nw,O.Struct({command:O.mutable(O.Array(O.String)),extensions:O.optional(O.mutable(O.Array(O.String))),disabled:O.optional(O.Boolean),env:O.optional(O.Record(O.String,O.String)),initialization:O.optional(O.Record(O.String,O.Unknown))})]).pipe(u0(($)=>({zod:w0($)}))),Dw=O.makeFilter(($)=>{if(typeof $==="boolean")return;let Z=new Set(Object.values(k7).map((Y)=>Y.id));return Object.entries($).every(([Y,X])=>{if("disabled"in X&&X.disabled)return!0;if(Z.has(Y))return!0;return"extensions"in X&&Boolean(X.extensions)})?void 0:"For custom LSP servers, 'extensions' array is required."}),Ga=O.Union([O.Boolean,O.Record(O.String,Mw)]).check(Dw).pipe(u0(($)=>({zod:w0($)})));var UJ={};B1(UJ,{Model:()=>Lw,Info:()=>Tw,ConfigProvider:()=>UJ});var ww=O.Number.check(O.isInt()).check(O.isGreaterThan(0)),Lw=O.Struct({id:O.optional(O.String),name:O.optional(O.String),family:O.optional(O.String),release_date:O.optional(O.String),attachment:O.optional(O.Boolean),reasoning:O.optional(O.Boolean),temperature:O.optional(O.Boolean),tool_call:O.optional(O.Boolean),interleaved:O.optional(O.Union([O.Literal(!0),O.Struct({field:O.Literals(["reasoning_content","reasoning_details"])})])),cost:O.optional(O.Struct({input:O.Number,output:O.Number,cache_read:O.optional(O.Number),cache_write:O.optional(O.Number),context_over_200k:O.optional(O.Struct({input:O.Number,output:O.Number,cache_read:O.optional(O.Number),cache_write:O.optional(O.Number)}))})),limit:O.optional(O.Struct({context:O.Number,input:O.optional(O.Number),output:O.Number})),modalities:O.optional(O.Struct({input:O.mutable(O.Array(O.Literals(["text","audio","image","video","pdf"]))),output:O.mutable(O.Array(O.Literals(["text","audio","image","video","pdf"])))})),experimental:O.optional(O.Boolean),status:O.optional(O.Literals(["alpha","beta","deprecated"])),cachePromptTTL:O.optional(O.Literals(["5m","1h"])).annotate({description:"Prompt-cache breakpoint TTL for Anthropic/OpenRouter. '1h' keeps the cached prefix alive for one hour (2x write cost) instead of the 5m default. Ignored by providers whose SDK doesn't support a cache TTL."}),provider:O.optional(O.Struct({npm:O.optional(O.String),api:O.optional(O.String)})),options:O.optional(O.Record(O.String,O.Any)),headers:O.optional(O.Record(O.String,O.String)),variants:O.optional(O.Record(O.String,O.StructWithRest(O.Struct({disabled:O.optional(O.Boolean).annotate({description:"Disable this variant for the model"})}),[O.Record(O.String,O.Any)])).annotate({description:"Variant-specific configuration"}))}).pipe(u0(($)=>({zod:w0($)})));class Tw extends O.Class("ProviderConfig")({api:O.optional(O.String),name:O.optional(O.String),env:O.optional(O.mutable(O.Array(O.String))),id:O.optional(O.String),npm:O.optional(O.String),whitelist:O.optional(O.mutable(O.Array(O.String))),blacklist:O.optional(O.mutable(O.Array(O.String))),options:O.optional(O.StructWithRest(O.Struct({apiKey:O.optional(O.String),baseURL:O.optional(O.String),enterpriseUrl:O.optional(O.String).annotate({description:"GitHub Enterprise URL for copilot authentication"}),setCacheKey:O.optional(O.Boolean).annotate({description:"Enable promptCacheKey for this provider (default false)"}),timeout:O.optional(O.Union([ww,O.Literal(!1)]).annotate({description:"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout."})).annotate({description:"Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout."}),chunkTimeout:O.optional(ww).annotate({description:"Timeout in milliseconds between streamed SSE chunks for this provider. If no chunk arrives within this window, the request is aborted."})}),[O.Record(O.String,O.Any)])),models:O.optional(O.Record(O.String,Lw))}){static zod=w0(this)}var HJ={};B1(HJ,{Info:()=>Wa,ConfigSkills:()=>HJ});var Wa=O.Struct({paths:O.optional(O.Array(O.String)).annotate({description:"Additional paths to skill folders"}),urls:O.optional(O.Array(O.String)).annotate({description:"URLs to fetch skills from (e.g., https://example.com/.well-known/skills/)"})}).pipe(u0(($)=>({zod:w0($)})));var t8=O.Any.annotate({[F$]:i6.Info}),Ka=O.Any.annotate({[F$]:SZ.Info}),Va=O.Any.annotate({[F$]:E0.Level}),m$=O.Number.check(O.isInt()).check(O.isGreaterThan(0)),E5=O.Number.check(O.isInt()).check(O.isGreaterThanOrEqualTo(0)),Ua=O.Struct({$schema:O.optional(O.String).annotate({description:"JSON schema reference for configuration validation"}),logLevel:O.optional(Va).annotate({description:"Log level"}),server:O.optional(C5.Server).annotate({description:"Server configuration for qitqode serve and web commands"}),command:O.optional(O.Record(O.String,n6.Info)).annotate({description:"Command configuration, see https://opencode.ai/docs/commands"}),skills:O.optional(HJ.Info).annotate({description:"Additional skill folder paths"}),watcher:O.optional(O.Struct({ignore:O.optional(O.mutable(O.Array(O.String)))})),snapshot:O.optional(O.Boolean).annotate({description:"Enable or disable snapshot tracking. When false, filesystem snapshots are not recorded and undoing or reverting will not undo/redo file changes. Defaults to true."}),plugin:O.optional(O.mutable(O.Array(r8.Spec))),share:O.optional(O.Literals(["manual","auto","disabled"])).annotate({description:"Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing"}),autoshare:O.optional(O.Boolean).annotate({description:"@deprecated Use 'share' field instead. Share newly created sessions automatically"}),autoupdate:O.optional(O.Union([O.Boolean,O.Literal("notify")])).annotate({description:"Update behavior. Defaults to notifications only; set true to auto-install patch updates, false to disable checks, or 'notify' to show notifications"}),disabled_providers:O.optional(O.mutable(O.Array(O.String))).annotate({description:"Disable providers that are loaded automatically"}),enabled_providers:O.optional(O.mutable(O.Array(O.String))).annotate({description:"When set, ONLY these providers will be enabled. All other providers will be ignored"}),model:O.optional(L8).annotate({description:"Model to use in the format of provider/model, eg anthropic/claude-2"}),small_model:O.optional(L8).annotate({description:"Small model to use for tasks like title generation in the format of provider/model"}),model_groups:O.optional(O.Record(O.String,O.Union([L8,O.Struct({default:L8,models:O.optional(O.mutable(O.Array(L8)))})]))).annotate({description:"Named model groups (capability tiers, e.g. fast/economical/default/power). Each group has a default model and optional member models. A group name can be used anywhere a provider/model string is accepted."}),default_agent:O.optional(O.String).annotate({description:"Default agent to use when none is specified. Must be a primary agent. Falls back to 'build' if not set or if the specified agent is invalid."}),username:O.optional(O.String).annotate({description:"Custom username to display in conversations instead of system username"}),mode:O.optional(O.StructWithRest(O.Struct({build:O.optional(t8),plan:O.optional(t8)}),[O.Record(O.String,t8)])).annotate({description:"@deprecated Use `agent` field instead."}),agent:O.optional(O.StructWithRest(O.Struct({plan:O.optional(t8),build:O.optional(t8),general:O.optional(t8),explore:O.optional(t8),title:O.optional(t8),summary:O.optional(t8),compaction:O.optional(t8)}),[O.Record(O.String,t8)])).annotate({description:"Agent configuration, see https://opencode.ai/docs/agents"}),provider:O.optional(O.Record(O.String,UJ.Info)).annotate({description:"Custom provider configurations and model overrides"}),mcp:O.optional(O.Record(O.String,O.Union([CZ.Info,O.Any.annotate({[F$]:I.object({enabled:I.boolean()}).strict()})]))).annotate({description:"MCP (Model Context Protocol) server configurations"}),formatter:O.optional(KJ.Info),lsp:O.optional(VJ.Info),instructions:O.optional(O.mutable(O.Array(O.String))).annotate({description:"Additional instruction files or patterns to include"}),layout:O.optional(I5.Layout).annotate({description:"@deprecated Always uses stretch layout."}),permission:O.optional(Ka),tools:O.optional(O.Record(O.String,O.Boolean)),tool:O.optional(O.Struct({invocation_style:O.optional(O.Literals(["json","shell"])).annotate({description:"Default invocation style for all tools. 'json' (default) exposes the original Zod schema; 'shell' exposes a single `script` parameter and uses the tool's shell.parse mapping."}),invocation_style_by_tool:O.optional(O.Record(O.String,O.Literals(["json","shell"]))).annotate({description:"Per-tool override of invocation_style. Keys are tool IDs. A tool without a `shell` field falls back to JSON regardless of this setting."})})).annotate({description:"Tool invocation style configuration (JSON vs shell-style)."}),enterprise:O.optional(O.Struct({url:O.optional(O.String).annotate({description:"Enterprise URL"})})),compaction:O.optional(O.Struct({auto:O.optional(O.Boolean).annotate({description:"Enable automatic compaction when context is full (default: true)"}),prune:O.optional(O.Boolean).annotate({description:"Enable pruning of old tool outputs (default: true)"}),tail_turns:O.optional(E5).annotate({description:"Number of recent user turns, including their following assistant/tool responses, to keep verbatim during compaction (default: 2)"}),preserve_recent_tokens:O.optional(E5).annotate({description:"Maximum number of tokens from recent turns to preserve verbatim after compaction"}),reserved:O.optional(E5).annotate({description:"Token buffer for compaction. Leaves enough window to avoid overflow during compaction."})})),checkpoint:O.optional(O.Struct({thresholds:O.optional(O.Array(O.String)).annotate({description:'Context fill thresholds that trigger checkpoint writes. Strings may be percentages ("40%"), absolute tokens ("100K", "1.5M"), or mixed ("100K", "50%"). Each threshold must be <= window - 20K reserved. Default: ["40%", "60%", "80%"].'}),reserved:O.optional(E5).annotate({description:"Token buffer reserved for checkpoint operations. Default: 20000."}),max_writer_failures:O.optional(m$).annotate({description:"Maximum consecutive writer failures per session before checkpointing stops retrying until process restart. Default: 3."}),fork:O.optional(O.Boolean).annotate({description:"Whether to fork the parent agent's message prefix into the writer session for prefix-cache reuse. Requires provider cache-breakpoint support. Default: false."}),push_caps:O.optional(O.Struct({tasks_ledger:O.optional(m$).annotate({description:"Token cap for the tasks ledger section of rebuild context. Default: 2000."}),focus_task:O.optional(m$).annotate({description:"Token cap for the focus task body in rebuild context. Default: 4000."}),actor_ledger:O.optional(m$).annotate({description:"Token cap for the actor ledger section of rebuild context. Default: 500."}),memory_titles:O.optional(m$).annotate({description:"Token cap for memory titles in rebuild context. Default: 500."}),global:O.optional(m$).annotate({description:"Token cap for the global memory section (global/MEMORY.md) of rebuild context. Default: 6000."}),checkpoint:O.optional(m$).annotate({description:"Token cap for the session checkpoint section (checkpoint.md) of rebuild context. Default: 11000."}),memory:O.optional(m$).annotate({description:"Token cap for the project memory section (MEMORY.md) of rebuild context. Default: 10000."}),notes:O.optional(m$).annotate({description:"Token cap for the session notes (notes.md) of rebuild context. Default: 6000."}),design_decisions:O.optional(m$).annotate({description:"Token cap for \xA710 Design decisions section of checkpoint.md (writer-side budget validation). Default: 3000."}),open_notes:O.optional(m$).annotate({description:"Token cap for \xA711 Open notes section of checkpoint.md (writer-side budget validation). Default: 800."}),recent_user:O.optional(E5).annotate({description:"Token cap for the recent user input section (verbatim user messages from the live DB, FIFO eviction). Default: 16000. Set 0 to disable."}),recent_user_per_msg:O.optional(m$).annotate({description:"Per-message cap inside recent user input section; oversized messages get head/tail truncation with messageID elision marker. Default: 2000."})})).annotate({description:"Per-section token caps for rebuild context (renderRebuildContext). Each section is loaded up to its cap so the rebuild stays within a predictable budget."}),task_archive_days:O.optional(m$).annotate({description:"Number of days after task done/abandoned before it's filtered out of `list({include_archived: false})`. Rows are NOT deleted \u2014 see v9 for true GC. Default: 7."}),task_cleanup_days:O.optional(m$).annotate({description:"[deprecated] Alias for task_archive_days. Will be removed in v9."}),memory_reconcile_on_search:O.optional(O.Boolean).annotate({description:"Whether to reconcile memory state on search operations. Default: true."}),memory_search_score_floor:O.optional(O.Number).annotate({description:"Relative BM25 floor for memory.search (OR-joined query): keep results scoring >= this fraction of the top hit, dropping common-word-only noise. The #1 result is always kept. Default: 0.15. Set 0 to keep all matches."})})),memory:O.optional(O.Struct({cc_index:O.optional(O.Boolean).annotate({description:"Index Claude Code memory (~/.claude/projects/<slug>/memory) and expose under scope='cc'. Default: false. Note: when enabled, every qitqode agent (build/explore/subagents) can search these memories via the builtin `memory` tool \u2014 including CC's `type: user` (your role/preferences) and `type: feedback` (your guidance) categories. CC originally writes them for future CC sessions; flipping this on widens the consumer set to qitqode agents on the same machine. Leave disabled (default) if you don't want personal context recallable from a prompt-injection-vulnerable agent."})})),history:O.optional(WX.Info).annotate({description:"Trajectory (conversation history) FTS index configuration."}),dream:O.optional(O.Struct({auto:O.optional(O.Boolean).annotate({description:"Auto-trigger dream memory consolidation on new session start. Default: true."}),interval_days:O.optional(E5).annotate({description:"Minimum days between automatic dream runs. Set to 0 to trigger on every new session. Default: 7."})})),distill:O.optional(O.Struct({auto:O.optional(O.Boolean).annotate({description:"Auto-trigger distill workflow packaging on new session start. Default: true."}),interval_days:O.optional(E5).annotate({description:"Minimum days between automatic distill runs. Default: 30."})})),voice:O.optional(O.Struct({asr_model:O.optional(L8).annotate({description:"Model to use for voice ASR transcription in provider/model format, e.g. openai/whisper-1."}),control_model:O.optional(L8).annotate({description:"Model to use for voice control (multimodal) in provider/model format, e.g. openai/gpt-4o."})})).annotate({description:"Voice input provider and model configuration."}),experimental:O.optional(O.Struct({disable_paste_summary:O.optional(O.Boolean),batch_tool:O.optional(O.Boolean).annotate({description:"Enable the batch tool"}),openTelemetry:O.optional(O.Boolean).annotate({description:"Enable OpenTelemetry spans for AI SDK calls (using the 'experimental_telemetry' flag)"}),primary_tools:O.optional(O.mutable(O.Array(O.String))).annotate({description:"Tools that should only be available to primary agents."}),continue_loop_on_deny:O.optional(O.Boolean).annotate({description:"Continue the agent loop when a tool call is denied"}),mcp_timeout:O.optional(m$).annotate({description:"Timeout in milliseconds for model context protocol (MCP) requests"}),predict_next_prompt:O.optional(O.Boolean).annotate({description:"Predict the user's likely next prompt after each turn and show it as inline ghost text (Tab to accept). Enabled by default; set to false to disable."}),maxMode:O.optional(O.Struct({candidates:O.optional(m$).annotate({description:"Number of parallel reasoning candidates per step in max mode (default 5)."})})).annotate({description:"Max mode (experimental): the 'max' agent runs N parallel reasoning candidates each step, picks the best via a judge call, and executes only the winner."})})),workflow:O.optional(O.Struct({maxConcurrentAgents:O.optional(O.Number).annotate({description:"Process-wide ceiling on subagents running concurrently across ALL workflow runs (including nested children). Default min(16, 2x CPU cores). No upper clamp: the previous 2x-cores hard cap was removed so an operator can match real provider capacity \u2014 but that also means a misconfigured value (e.g. an extra zero) can exhaust provider rate limits or host memory. This is the only concurrency ceiling, so set it deliberately."}),maxDepth:O.optional(O.Number).annotate({description:"Max nesting depth for workflow()-calls-workflow. Default 8. Exceeding it fails the run."}),maxLifecycleAgents:O.optional(O.Number).annotate({description:"Hard ceiling on total agents a single workflow run may spawn over its life. Default 1000. Over-cap agent() calls return null (graceful degradation). PER-RUN, not tree-wide: each child workflow has its own independent budget, so a deep nesting can spawn maxDepth \xD7 this over the whole tree (concurrent in-flight is still bounded by maxConcurrentAgents)."}),scriptDeadlineMs:O.optional(O.Number).annotate({description:"Wall-clock budget for a whole workflow script, in milliseconds. Default 12h. The sandbox interrupt handler enforces this as a hard kill-switch."})})).annotate({description:"Dynamic workflow runtime settings."})}),b5=w0(Ua).strict().meta({ref:"Config"});var Ba=E0.create({service:"config"}),za=C5.Server.zod,Fa=I5.Layout.zod;class W4 extends S1.Service()("@qitqode/Config"){}var Aa=q1.create("ConfigDirectoryTypoError",I.object({path:I.string(),dir:I.string(),suggestion:I.string()})),Iw=T0.effect(W4,L.gen(function*(){let $=yield*E$.Service,Z=yield*k8.Service,J=yield*a7.Service,Y=yield*d6.Service,X=yield*j6.Service,{readConfigFile:Q,loadConfig:G,loadFile:W}=IN({fs:$,info:b5}),K=EN(W),[V,U]=yield*L.cachedInvalidateWithTTL(K().pipe(L.tapError((C)=>L.sync(()=>Ba.error("failed to load global config, using defaults",{error:String(C)}))),L.orElseSucceed(()=>({}))),Z8.infinity),H=L.fn("Config.getGlobal")(function*(){return yield*V}),{loadInstanceState:B}=Aw({fs:$,authSvc:Z,accountSvc:J,env:Y,npmSvc:X,info:b5,readConfigFile:Q,loadConfig:G,loadFile:W,getGlobal:H}),z=yield*B0.make(L.fn("Config.state")(function*(C){return yield*B(C).pipe(L.orDie)})),F=L.fn("Config.get")(function*(){return yield*B0.use(z,(C)=>C.config)}),A=L.fn("Config.directories")(function*(){return yield*B0.use(z,(C)=>C.directories)}),q=L.fn("Config.getConsoleState")(function*(){return yield*B0.use(z,(C)=>C.consoleState)}),N=L.fn("Config.waitForDependencies")(function*(){yield*B0.useEffect(z,(C)=>L.forEach(C.deps,Rw.join,{concurrency:"unbounded"}).pipe(L.asVoid))}),w=L.fn("Config.update")(function*(C){let R=yield*B0.directory,T=Ha.join(R,"config.json"),P=yield*W(T);yield*$.writeFileString(T,JSON.stringify(N1(t7(P),t7(C)),null,2)).pipe(L.orDie),yield*L.promise(()=>S8.dispose())}),j=L.fn("Config.invalidate")(function*(C){yield*U;let R=S8.disposeAll().catch(()=>{return}).finally(()=>T7.emit("event",{directory:"global",payload:{type:VN.Disposed.type,properties:{}}}));if(C)yield*L.promise(()=>R)}),M=L.fn("Config.updateGlobal")(function*(C){let R=yield*L.promise(()=>TN()),T=(yield*Q(R))??"{}",P;if(!R.endsWith(".jsonc")){let _=a8.schema(b5,a8.jsonc(T,R),R),E=N1(t7(_),t7(C));yield*$.writeFileString(R,JSON.stringify(E,null,2)).pipe(L.orDie),P=E}else{let _=XU(T,t7(C));P=a8.schema(b5,a8.jsonc(_,R),R),yield*$.writeFileString(R,_).pipe(L.orDie)}return yield*j(),P});return W4.of({get:F,getGlobal:H,getConsoleState:q,update:w,updateGlobal:M,invalidate:j,directories:A,waitForDependencies:N})})),Oa=Iw.pipe(T0.provide(Pw.defaultLayer),T0.provide(E$.defaultLayer),T0.provide(d6.defaultLayer),T0.provide(k8.defaultLayer),T0.provide(a7.defaultLayer),T0.provide(j6.defaultLayer));var KX={};B1(KX,{report:()=>ja,pretty:()=>Ew,Diagnostic:()=>KX});var Cw=20;function Ew($){let J={1:"ERROR",2:"WARN",3:"INFO",4:"HINT"}[$.severity||1],Y=$.range.start.line+1,X=$.range.start.character+1;return`${J} [${Y}:${X}] ${$.message}`}function ja($,Z){let J=Z.filter((G)=>G.severity===1);if(J.length===0)return"";let Y=J.slice(0,Cw),X=J.length-Cw,Q=X>0?`
490
490
  ... and ${X} more`:"";return`<diagnostics file="${$}">
491
491
  ${Y.map(Ew).join(`
@@ -653,9 +653,9 @@ data: {"type":"message_stop"}`))K=!0,G.cancel(),H.close();if(V.length>512)V=V.sl
653
653
  <p>You can close this window and return to your terminal.</p>
654
654
  </body>
655
655
  </html>
656
- `),this.cleanup()})}async start(){let $=this.options.host||"127.0.0.1",Z=this.options.port||0;await this.server.listen({host:$,port:Z})}async waitForCallback(){let $=this.options.timeout||60000;return this.timeoutHandle=setTimeout(()=>{this.rejectCallback?.(Error("OAuth callback timeout")),this.cleanup()},$),new Promise((Z,J)=>{this.resolveCallback=Z,this.rejectCallback=J})}getPort(){let $=this.server.server.address();if(!$||typeof $==="string")throw Error("Server not started or using Unix socket");return $.port}getCallbackUrl(){let $=this.options.host||"127.0.0.1",Z=this.getPort();return`http://${$}:${Z}/callback`}cleanup(){if(this.timeoutHandle)clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0;setTimeout(()=>{this.server.close()},100)}async close(){if(this.timeoutHandle)clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0;await this.server.close()}}class OK{options;constructor($){this.options=$}async authorize(){let $=jA(43),Z=yu($),J=jA(32);if(this.options.method==="auto")return this.authorizeWithCallback(Z,J,$);else return this.authorizeWithManualCode(Z,J,$)}async authorizeWithCallback($,Z,J){let Y=new rQ({port:0,host:"127.0.0.1",timeout:this.options.timeout||60000});try{let X=Y.waitForCallback(),Q=Y.getCallbackUrl(),G=this.buildAuthorizationUrl(Q,$,Z);await(await import("./chunk-456bmaww.js")).default(G);let K=await X;if(K.state!==Z)throw Error("State mismatch - possible CSRF attack");return{code:K.code,state:K.state,codeVerifier:J}}finally{await Y.close()}}authorizeWithManualCode($,Z,J){throw this.buildAuthorizationUrl("http://127.0.0.1/callback",$,Z),Error("Manual code entry not yet implemented - use auto method")}buildAuthorizationUrl($,Z,J){let Y=new URLSearchParams({client_id:this.options.clientId,redirect_uri:$,response_type:"code",state:J,scope:this.options.scopes.join(" "),code_challenge:Z,code_challenge_method:"S256"});return`${this.options.instanceUrl.replace(/\/$/,"")}/oauth/authorize?${Y.toString()}`}async exchangeAuthorizationCode($,Z,J){let X=`${this.options.instanceUrl.replace(/\/$/,"")}/oauth/token`,Q=new URLSearchParams({client_id:this.options.clientId,code:$,grant_type:"authorization_code",redirect_uri:J,code_verifier:Z}),G=await fetch(X,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Q.toString()});if(!G.ok){let K=await G.text();throw Error(`Token exchange failed: ${G.status} ${G.statusText} - ${K}`)}return await G.json()}async exchangeRefreshToken($){let J=`${this.options.instanceUrl.replace(/\/$/,"")}/oauth/token`,Y=new URLSearchParams({client_id:this.options.clientId,refresh_token:$,grant_type:"refresh_token"}),X=await fetch(J,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Y.toString()});if(!X.ok){let G=await X.text();throw Error(`Token refresh failed: ${X.status} ${X.statusText} - ${G}`)}return await X.json()}}import R$ from"fs";import j7 from"path";import xu from"os";var eQ=process.env.GITLAB_OAUTH_CLIENT_ID||"1d89f9fdb23ee96d4e603201f6861dab6e143c5c3c00469a018a2d94bdc03d4e",ej0="https://gitlab.com",qA=["api"];function aQ(){return process.env.GITLAB_INSTANCE_URL||ej0}function Y$($,Z){try{let J=xu.homedir(),Y=j7.join(J,".local","share","opencode","log");if(!R$.existsSync(Y))R$.mkdirSync(Y,{recursive:!0});let X=j7.join(Y,"gitlab-auth.log"),Q=new Date().toISOString(),G=Z?`[${Q}] ${$}: ${JSON.stringify(Z)}
656
+ `),this.cleanup()})}async start(){let $=this.options.host||"127.0.0.1",Z=this.options.port||0;await this.server.listen({host:$,port:Z})}async waitForCallback(){let $=this.options.timeout||60000;return this.timeoutHandle=setTimeout(()=>{this.rejectCallback?.(Error("OAuth callback timeout")),this.cleanup()},$),new Promise((Z,J)=>{this.resolveCallback=Z,this.rejectCallback=J})}getPort(){let $=this.server.server.address();if(!$||typeof $==="string")throw Error("Server not started or using Unix socket");return $.port}getCallbackUrl(){let $=this.options.host||"127.0.0.1",Z=this.getPort();return`http://${$}:${Z}/callback`}cleanup(){if(this.timeoutHandle)clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0;setTimeout(()=>{this.server.close()},100)}async close(){if(this.timeoutHandle)clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0;await this.server.close()}}class OK{options;constructor($){this.options=$}async authorize(){let $=jA(43),Z=yu($),J=jA(32);if(this.options.method==="auto")return this.authorizeWithCallback(Z,J,$);else return this.authorizeWithManualCode(Z,J,$)}async authorizeWithCallback($,Z,J){let Y=new rQ({port:0,host:"127.0.0.1",timeout:this.options.timeout||60000});try{let X=Y.waitForCallback(),Q=Y.getCallbackUrl(),G=this.buildAuthorizationUrl(Q,$,Z);await(await import("./chunk-r9fvfkee.js")).default(G);let K=await X;if(K.state!==Z)throw Error("State mismatch - possible CSRF attack");return{code:K.code,state:K.state,codeVerifier:J}}finally{await Y.close()}}authorizeWithManualCode($,Z,J){throw this.buildAuthorizationUrl("http://127.0.0.1/callback",$,Z),Error("Manual code entry not yet implemented - use auto method")}buildAuthorizationUrl($,Z,J){let Y=new URLSearchParams({client_id:this.options.clientId,redirect_uri:$,response_type:"code",state:J,scope:this.options.scopes.join(" "),code_challenge:Z,code_challenge_method:"S256"});return`${this.options.instanceUrl.replace(/\/$/,"")}/oauth/authorize?${Y.toString()}`}async exchangeAuthorizationCode($,Z,J){let X=`${this.options.instanceUrl.replace(/\/$/,"")}/oauth/token`,Q=new URLSearchParams({client_id:this.options.clientId,code:$,grant_type:"authorization_code",redirect_uri:J,code_verifier:Z}),G=await fetch(X,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Q.toString()});if(!G.ok){let K=await G.text();throw Error(`Token exchange failed: ${G.status} ${G.statusText} - ${K}`)}return await G.json()}async exchangeRefreshToken($){let J=`${this.options.instanceUrl.replace(/\/$/,"")}/oauth/token`,Y=new URLSearchParams({client_id:this.options.clientId,refresh_token:$,grant_type:"refresh_token"}),X=await fetch(J,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Y.toString()});if(!X.ok){let G=await X.text();throw Error(`Token refresh failed: ${X.status} ${X.statusText} - ${G}`)}return await X.json()}}import R$ from"fs";import j7 from"path";import xu from"os";var eQ=process.env.GITLAB_OAUTH_CLIENT_ID||"1d89f9fdb23ee96d4e603201f6861dab6e143c5c3c00469a018a2d94bdc03d4e",ej0="https://gitlab.com",qA=["api"];function aQ(){return process.env.GITLAB_INSTANCE_URL||ej0}function Y$($,Z){try{let J=xu.homedir(),Y=j7.join(J,".local","share","opencode","log");if(!R$.existsSync(Y))R$.mkdirSync(Y,{recursive:!0});let X=j7.join(Y,"gitlab-auth.log"),Q=new Date().toISOString(),G=Z?`[${Q}] ${$}: ${JSON.stringify(Z)}
657
657
  `:`[${Q}] ${$}
658
- `;R$.appendFileSync(X,G)}catch{}}function NA(){let $=xu.homedir(),Z=process.env.XDG_DATA_HOME;if(Z)return j7.join(Z,"opencode","auth.json");if(process.platform!=="win32")return j7.join($,".local","share","opencode","auth.json");return j7.join($,".opencode","auth.json")}async function hu($,Z,J,Y){let X=NA(),Q=j7.dirname(X);if(!R$.existsSync(Q))R$.mkdirSync(Q,{recursive:!0});let G={};if(R$.existsSync(X)){let W=R$.readFileSync(X,"utf-8");G=JSON.parse(W)}G.gitlab={type:"oauth",access:$,refresh:Z,expires:J,enterpriseUrl:Y},R$.writeFileSync(X,JSON.stringify(G,null,2)),R$.chmodSync(X,384)}async function $q0($,Z){let J=NA(),Y=j7.dirname(J);if(!R$.existsSync(Y))R$.mkdirSync(Y,{recursive:!0});let X={};if(R$.existsSync(J)){let Q=R$.readFileSync(J,"utf-8");X=JSON.parse(Q)}X.gitlab={type:"api",key:$,enterpriseUrl:Z},R$.writeFileSync(J,JSON.stringify(X,null,2)),R$.chmodSync(J,384)}var tQ=null;async function Zq0($,Z,J){let Y=Date.now(),X=300000;if(!($.expires<=Y+300000))return Y$("Token is still valid",{expiresAt:new Date($.expires).toISOString(),expiresIn:Math.round(($.expires-Y)/1000/60)+" minutes"}),{apiKey:$.access,instanceUrl:$.enterpriseUrl||J};if(tQ){Y$("Token refresh already in progress, waiting..."),await tQ;let W=await Z();if(W&&W.type==="oauth")return{apiKey:W.access,instanceUrl:W.enterpriseUrl||J};throw Error("Failed to get refreshed auth data")}Y$("Token expired or expiring soon, refreshing...",{expiresAt:new Date($.expires).toISOString(),expired:$.expires<=Y}),tQ=(async()=>{try{let W=$.enterpriseUrl||J,K=new OK({instanceUrl:W,clientId:eQ,scopes:qA,method:"auto"});Y$("Calling exchangeRefreshToken...");let V=await K.exchangeRefreshToken($.refresh),U=Date.now()+V.expires_in*1000;Y$("Token refresh successful",{newExpiresAt:new Date(U).toISOString(),expiresIn:Math.round(V.expires_in/60)+" minutes"}),await hu(V.access_token,V.refresh_token,U,W),Y$("New tokens saved successfully")}catch(W){if(Y$("Token refresh failed",{error:W instanceof Error?W.message:String(W),stack:W instanceof Error?W.stack:void 0}),W instanceof Error&&W.message.includes("401")){Y$("Refresh token appears to be revoked (401), clearing auth data");let K=NA();if(R$.existsSync(K)){let V=R$.readFileSync(K,"utf-8"),U=JSON.parse(V);delete U.gitlab,R$.writeFileSync(K,JSON.stringify(U,null,2))}}throw W}})();try{await tQ}finally{tQ=null}let G=await Z();if(G&&G.type==="oauth")return{apiKey:G.access,instanceUrl:G.enterpriseUrl||J};throw Error("Failed to get refreshed auth data after token refresh")}var gu=async($)=>{return{auth:{provider:"gitlab",async loader(J){let Y=await J();if(!Y)return{};if(Y.type==="oauth")try{return{...await Zq0(Y,J,aQ()),clientId:eQ}}catch(X){return Y$("Failed to refresh token in loader",{error:X instanceof Error?X.message:String(X)}),{apiKey:Y.access,instanceUrl:Y.enterpriseUrl||aQ(),clientId:eQ}}if(Y.type==="api"){let X=Y.enterpriseUrl||aQ();return{apiKey:Y.key,instanceUrl:X}}return{}},methods:[{type:"oauth",label:"GitLab OAuth",prompts:[],async authorize(){let J=aQ(),Y;try{let N=new URL(J);Y=`${N.protocol}//${N.host}`}catch{throw Error(`Invalid GitLab instance URL: ${J}`)}let{generateSecret:X,generateCodeChallengeFromVerifier:Q}=await import("./chunk-8zx7vnx6.js"),G=X(43),W=Q(G),K=X(32),V=new rQ({port:8080,host:"127.0.0.1",timeout:120000});await V.start();let U=V.getCallbackUrl(),H=V.waitForCallback(),B=new URLSearchParams({client_id:eQ,redirect_uri:U,response_type:"code",state:K,scope:qA.join(" "),code_challenge:W,code_challenge_method:"S256"}),z=`${Y}/oauth/authorize?${B.toString()}`,{exec:F}=await import("child_process"),A=process.platform;return F(`${A==="darwin"?"open":A==="win32"?"start":"xdg-open"} "${z}"`),{method:"auto",url:z,instructions:"Your browser will open for authentication. The callback will be handled automatically.",async callback(){Y$("callback() called");try{Y$("Waiting for callback...");let N=await H;if(Y$("Received callback",{hasCode:!!N.code,hasState:!!N.state}),N.state!==K)return Y$("State mismatch",{expected:K,received:N.state}),await V.close(),{type:"failed"};Y$("State verified"),Y$("Exchanging code for tokens...");let j=await new OK({instanceUrl:Y,clientId:eQ,scopes:qA,method:"auto"}).exchangeAuthorizationCode(N.code,G,U);Y$("Token exchange successful"),await V.close();let M=Date.now()+j.expires_in*1000;return Y$("Tokens received",{expiresAt:new Date(M).toISOString()}),Y$("Saving auth data..."),await hu(j.access_token,j.refresh_token,M,Y),Y$("Auth data saved successfully"),{type:"success",provider:Y,access:j.access_token,refresh:j.refresh_token,expires:M}}catch(N){Y$("Error in callback",{error:N instanceof Error?N.message:String(N),stack:N instanceof Error?N.stack:void 0});try{await V.close()}catch(w){}return{type:"failed"}}}}}},{type:"api",label:"GitLab Personal Access Token",prompts:[{type:"text",key:"token",message:"Personal Access Token",placeholder:"glpat-xxxxxxxxxxxxxxxxxxxx",validate:(J)=>{if(!J)return"Token is required";if(!J.startsWith("glpat-"))return"Token should start with glpat-";return}}],async authorize(J){let Y=aQ(),X=J?.token;if(!X)return{type:"failed"};let Q;try{let G=new URL(Y);Q=`${G.protocol}//${G.host}`}catch{return{type:"failed"}}try{if(!(await fetch(`${Q}/api/v4/user`,{headers:{Authorization:`Bearer ${X}`}})).ok)return{type:"failed"};return Y$("Saving PAT auth data..."),await $q0(X,Q),Y$("PAT auth data saved successfully"),{type:"success",key:X,provider:Q}}catch{return{type:"failed"}}}}]}}};import Jq0 from"http";function uu($){if($===null||$.length===0)return null;try{let Z=Buffer.from($,"base64url").toString("utf8"),J=JSON.parse(Z);if(J.v!==1||typeof J.n!=="string"||J.n.length===0||typeof J.i!=="string"||J.i.length===0||typeof J.r!=="boolean")return null;return{issuer:J.i,requireIssuer:J.r}}catch{return null}}async function lu($={}){let Z=$.callbackPath??"/callback",J=$.createServer?$.createServer():Jq0.createServer();return{redirectUri:`http://127.0.0.1:${await Yq0(J)}${Z}`,async waitForCode(Q){return Xq0(J,Q,$,Z)},close(){J.closeAllConnections?.(),J.close()}}}async function Yq0($){return new Promise((Z)=>{$.listen(0,"127.0.0.1",()=>{let J=$.address();Z(J.port)})})}function Xq0($,Z,J,Y){let X=Gq0(Z);return new Promise((Q,G)=>{let W=!1,K=(V)=>{if(!W)W=!0,V()};if($.on("request",(V,U)=>{let H=new URL(V.url??"/","http://127.0.0.1");if(H.pathname!==Y){U.writeHead(404),U.end("Not found");return}let B=H.searchParams.get("error");if(B!==null){let z=H.searchParams.get("error_description")??B;U.writeHead(400),U.end(`Authorization failed: ${z}`),K(()=>G(Error(`OAuth authorization failed: ${B} \u2014 ${z}`)));return}try{let z=mu({code:H.searchParams.get("code"),state:H.searchParams.get("state"),iss:H.searchParams.get("iss")},X);U.writeHead(200,{"Content-Type":"text/html"}),U.end(Wq0(J.landingPage)),K(()=>Q(z))}catch(z){U.writeHead(400),U.end(z instanceof Error?z.message:"Invalid OAuth callback"),K(()=>G(z instanceof Error?z:Error(String(z))))}}),J.readLine!==void 0)J.readLine().then((V)=>{let U=Qq0(V);if(U===null){K(()=>G(Error("OAuth callback missing authorization code")));return}try{let H=mu(U,X);K(()=>Q(H))}catch(H){K(()=>G(H instanceof Error?H:Error(String(H))))}}).catch(()=>{return});if(J.openBrowser!==void 0)J.openBrowser(Z).catch((V)=>{K(()=>G(V))})})}function Qq0($){let Z=$.replaceAll("\r","").replaceAll(`
658
+ `;R$.appendFileSync(X,G)}catch{}}function NA(){let $=xu.homedir(),Z=process.env.XDG_DATA_HOME;if(Z)return j7.join(Z,"opencode","auth.json");if(process.platform!=="win32")return j7.join($,".local","share","opencode","auth.json");return j7.join($,".opencode","auth.json")}async function hu($,Z,J,Y){let X=NA(),Q=j7.dirname(X);if(!R$.existsSync(Q))R$.mkdirSync(Q,{recursive:!0});let G={};if(R$.existsSync(X)){let W=R$.readFileSync(X,"utf-8");G=JSON.parse(W)}G.gitlab={type:"oauth",access:$,refresh:Z,expires:J,enterpriseUrl:Y},R$.writeFileSync(X,JSON.stringify(G,null,2)),R$.chmodSync(X,384)}async function $q0($,Z){let J=NA(),Y=j7.dirname(J);if(!R$.existsSync(Y))R$.mkdirSync(Y,{recursive:!0});let X={};if(R$.existsSync(J)){let Q=R$.readFileSync(J,"utf-8");X=JSON.parse(Q)}X.gitlab={type:"api",key:$,enterpriseUrl:Z},R$.writeFileSync(J,JSON.stringify(X,null,2)),R$.chmodSync(J,384)}var tQ=null;async function Zq0($,Z,J){let Y=Date.now(),X=300000;if(!($.expires<=Y+300000))return Y$("Token is still valid",{expiresAt:new Date($.expires).toISOString(),expiresIn:Math.round(($.expires-Y)/1000/60)+" minutes"}),{apiKey:$.access,instanceUrl:$.enterpriseUrl||J};if(tQ){Y$("Token refresh already in progress, waiting..."),await tQ;let W=await Z();if(W&&W.type==="oauth")return{apiKey:W.access,instanceUrl:W.enterpriseUrl||J};throw Error("Failed to get refreshed auth data")}Y$("Token expired or expiring soon, refreshing...",{expiresAt:new Date($.expires).toISOString(),expired:$.expires<=Y}),tQ=(async()=>{try{let W=$.enterpriseUrl||J,K=new OK({instanceUrl:W,clientId:eQ,scopes:qA,method:"auto"});Y$("Calling exchangeRefreshToken...");let V=await K.exchangeRefreshToken($.refresh),U=Date.now()+V.expires_in*1000;Y$("Token refresh successful",{newExpiresAt:new Date(U).toISOString(),expiresIn:Math.round(V.expires_in/60)+" minutes"}),await hu(V.access_token,V.refresh_token,U,W),Y$("New tokens saved successfully")}catch(W){if(Y$("Token refresh failed",{error:W instanceof Error?W.message:String(W),stack:W instanceof Error?W.stack:void 0}),W instanceof Error&&W.message.includes("401")){Y$("Refresh token appears to be revoked (401), clearing auth data");let K=NA();if(R$.existsSync(K)){let V=R$.readFileSync(K,"utf-8"),U=JSON.parse(V);delete U.gitlab,R$.writeFileSync(K,JSON.stringify(U,null,2))}}throw W}})();try{await tQ}finally{tQ=null}let G=await Z();if(G&&G.type==="oauth")return{apiKey:G.access,instanceUrl:G.enterpriseUrl||J};throw Error("Failed to get refreshed auth data after token refresh")}var gu=async($)=>{return{auth:{provider:"gitlab",async loader(J){let Y=await J();if(!Y)return{};if(Y.type==="oauth")try{return{...await Zq0(Y,J,aQ()),clientId:eQ}}catch(X){return Y$("Failed to refresh token in loader",{error:X instanceof Error?X.message:String(X)}),{apiKey:Y.access,instanceUrl:Y.enterpriseUrl||aQ(),clientId:eQ}}if(Y.type==="api"){let X=Y.enterpriseUrl||aQ();return{apiKey:Y.key,instanceUrl:X}}return{}},methods:[{type:"oauth",label:"GitLab OAuth",prompts:[],async authorize(){let J=aQ(),Y;try{let N=new URL(J);Y=`${N.protocol}//${N.host}`}catch{throw Error(`Invalid GitLab instance URL: ${J}`)}let{generateSecret:X,generateCodeChallengeFromVerifier:Q}=await import("./chunk-v7c54cyj.js"),G=X(43),W=Q(G),K=X(32),V=new rQ({port:8080,host:"127.0.0.1",timeout:120000});await V.start();let U=V.getCallbackUrl(),H=V.waitForCallback(),B=new URLSearchParams({client_id:eQ,redirect_uri:U,response_type:"code",state:K,scope:qA.join(" "),code_challenge:W,code_challenge_method:"S256"}),z=`${Y}/oauth/authorize?${B.toString()}`,{exec:F}=await import("child_process"),A=process.platform;return F(`${A==="darwin"?"open":A==="win32"?"start":"xdg-open"} "${z}"`),{method:"auto",url:z,instructions:"Your browser will open for authentication. The callback will be handled automatically.",async callback(){Y$("callback() called");try{Y$("Waiting for callback...");let N=await H;if(Y$("Received callback",{hasCode:!!N.code,hasState:!!N.state}),N.state!==K)return Y$("State mismatch",{expected:K,received:N.state}),await V.close(),{type:"failed"};Y$("State verified"),Y$("Exchanging code for tokens...");let j=await new OK({instanceUrl:Y,clientId:eQ,scopes:qA,method:"auto"}).exchangeAuthorizationCode(N.code,G,U);Y$("Token exchange successful"),await V.close();let M=Date.now()+j.expires_in*1000;return Y$("Tokens received",{expiresAt:new Date(M).toISOString()}),Y$("Saving auth data..."),await hu(j.access_token,j.refresh_token,M,Y),Y$("Auth data saved successfully"),{type:"success",provider:Y,access:j.access_token,refresh:j.refresh_token,expires:M}}catch(N){Y$("Error in callback",{error:N instanceof Error?N.message:String(N),stack:N instanceof Error?N.stack:void 0});try{await V.close()}catch(w){}return{type:"failed"}}}}}},{type:"api",label:"GitLab Personal Access Token",prompts:[{type:"text",key:"token",message:"Personal Access Token",placeholder:"glpat-xxxxxxxxxxxxxxxxxxxx",validate:(J)=>{if(!J)return"Token is required";if(!J.startsWith("glpat-"))return"Token should start with glpat-";return}}],async authorize(J){let Y=aQ(),X=J?.token;if(!X)return{type:"failed"};let Q;try{let G=new URL(Y);Q=`${G.protocol}//${G.host}`}catch{return{type:"failed"}}try{if(!(await fetch(`${Q}/api/v4/user`,{headers:{Authorization:`Bearer ${X}`}})).ok)return{type:"failed"};return Y$("Saving PAT auth data..."),await $q0(X,Q),Y$("PAT auth data saved successfully"),{type:"success",key:X,provider:Q}}catch{return{type:"failed"}}}}]}}};import Jq0 from"http";function uu($){if($===null||$.length===0)return null;try{let Z=Buffer.from($,"base64url").toString("utf8"),J=JSON.parse(Z);if(J.v!==1||typeof J.n!=="string"||J.n.length===0||typeof J.i!=="string"||J.i.length===0||typeof J.r!=="boolean")return null;return{issuer:J.i,requireIssuer:J.r}}catch{return null}}async function lu($={}){let Z=$.callbackPath??"/callback",J=$.createServer?$.createServer():Jq0.createServer();return{redirectUri:`http://127.0.0.1:${await Yq0(J)}${Z}`,async waitForCode(Q){return Xq0(J,Q,$,Z)},close(){J.closeAllConnections?.(),J.close()}}}async function Yq0($){return new Promise((Z)=>{$.listen(0,"127.0.0.1",()=>{let J=$.address();Z(J.port)})})}function Xq0($,Z,J,Y){let X=Gq0(Z);return new Promise((Q,G)=>{let W=!1,K=(V)=>{if(!W)W=!0,V()};if($.on("request",(V,U)=>{let H=new URL(V.url??"/","http://127.0.0.1");if(H.pathname!==Y){U.writeHead(404),U.end("Not found");return}let B=H.searchParams.get("error");if(B!==null){let z=H.searchParams.get("error_description")??B;U.writeHead(400),U.end(`Authorization failed: ${z}`),K(()=>G(Error(`OAuth authorization failed: ${B} \u2014 ${z}`)));return}try{let z=mu({code:H.searchParams.get("code"),state:H.searchParams.get("state"),iss:H.searchParams.get("iss")},X);U.writeHead(200,{"Content-Type":"text/html"}),U.end(Wq0(J.landingPage)),K(()=>Q(z))}catch(z){U.writeHead(400),U.end(z instanceof Error?z.message:"Invalid OAuth callback"),K(()=>G(z instanceof Error?z:Error(String(z))))}}),J.readLine!==void 0)J.readLine().then((V)=>{let U=Qq0(V);if(U===null){K(()=>G(Error("OAuth callback missing authorization code")));return}try{let H=mu(U,X);K(()=>Q(H))}catch(H){K(()=>G(H instanceof Error?H:Error(String(H))))}}).catch(()=>{return});if(J.openBrowser!==void 0)J.openBrowser(Z).catch((V)=>{K(()=>G(V))})})}function Qq0($){let Z=$.replaceAll("\r","").replaceAll(`
659
659
  `,"").trim();if(Z.length===0)return null;try{let J=new URL(Z);return{code:J.searchParams.get("code"),state:J.searchParams.get("state"),iss:J.searchParams.get("iss")}}catch{return{code:Z,state:null,iss:null}}}function Gq0($){let J=new URL($).searchParams.get("state"),Y=uu(J);return{state:J,issuer:Y?.issuer??null,requireIssuer:Y?.requireIssuer??!1}}function mu($,Z){if($.code===null||$.code.length===0)throw Error("OAuth callback missing authorization code");if(Z.state!==null){if($.state===null||$.state.length===0)throw Error("OAuth callback missing state");if($.state!==Z.state)throw Error("OAuth callback state mismatch")}if(Z.requireIssuer){if($.iss===null||$.iss.length===0)throw Error("OAuth callback missing issuer")}if($.iss!==null&&$.iss.length>0&&Z.issuer!==null&&$.iss!==Z.issuer)throw Error("OAuth callback issuer mismatch");return $.code}function MA($){return $.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}function Wq0($){let Z=$?.title??"Connected",J=$?.body??"You can close this tab and return to your terminal.";return["<!DOCTYPE html>",`<html><head><meta charset=utf-8><title>${MA(Z)}</title></head>`,'<body style="font-family:system-ui,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0">','<div style="text-align:center">',`<h1>${MA(Z)}</h1>`,`<p style="color:#666">${MA(J)}</p>`,"</div></body></html>"].join("")}import du from"crypto";function pu(){return du.randomBytes(32).toString("base64url")}function cu($){return du.createHash("sha256").update($).digest("base64url")}var Kq0="https://poe.com/oauth/authorize",Vq0="https://api.poe.com/token";function DA($){let Z=$.fetch??globalThis.fetch;return{authorize:()=>Hq0($,Z)}}function Uq0(){return pu()}async function Hq0($,Z){let J=$.authorizationEndpoint??Kq0,Y=$.tokenEndpoint??Vq0,X=Uq0(),Q=cu(X),G=await lu({openBrowser:$.openBrowser,readLine:$.readLine,createServer:$.createServer,landingPage:$.landingPage??{title:"Connected to Poe",body:"You can close this tab and return to your terminal."}}),W=G.redirectUri,K=Bq0({endpoint:J,clientId:$.clientId,redirectUri:W,codeChallenge:Q});return{authorizationUrl:K,waitForResult:async()=>{try{let U=await G.waitForCode(K);return await zq0({tokenEndpoint:Y,code:U,codeVerifier:X,clientId:$.clientId,redirectUri:W,fetchFn:Z})}finally{G.close()}}}}function Bq0($){let Z=new URL($.endpoint);return Z.searchParams.set("response_type","code"),Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("scope","apikey:create"),Z.searchParams.set("code_challenge",$.codeChallenge),Z.searchParams.set("code_challenge_method","S256"),Z.searchParams.set("redirect_uri",$.redirectUri),Z.toString()}async function zq0($){let Z=new URLSearchParams({grant_type:"authorization_code",code:$.code,code_verifier:$.codeVerifier,client_id:$.clientId,redirect_uri:$.redirectUri}),J=await $.fetchFn($.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:Z.toString()});if(!J.ok){let X=await J.text(),Q=Fq0(X);throw Error(Q??`Token exchange failed (${J.status}): ${X}`)}let Y=await J.json();if(typeof Y.api_key!=="string"||Y.api_key.length===0)throw Error("Token response missing api_key field");return{apiKey:Y.api_key,expiresIn:typeof Y.api_key_expires_in==="number"?Y.api_key_expires_in:null}}function Fq0($){try{let Z=JSON.parse($);if(typeof Z.error_description==="string")return Z.error_description;if(typeof Z.error==="string")return Z.error}catch{}return null}var Aq0="client_728290227fc048cc9262091a1ea197ea";function Oq0($){if($==null)return Number.MAX_SAFE_INTEGER;return Date.now()+$*1000}async function jq0(){let Z=await DA({clientId:Aq0,landingPage:{title:"Connected to Poe",body:"You can close this tab and return to OpenCode."},openBrowser:async(J)=>{await iu(J)}}).authorize();return{url:Z.authorizationUrl,instructions:"Complete authorization in your browser. This window will close automatically.",method:"auto",callback:async()=>{let J=await Z.waitForResult();return{type:"success",access:J.apiKey,refresh:J.apiKey,expires:Oq0(J.expiresIn)}}}}async function jK($){return{auth:{provider:"poe",async loader(Z){let J=await Z();if(J.type==="api")return{apiKey:J.key};if(J.type!=="oauth")return{};if(J.expires<Date.now())throw Error("Poe API key expired. Run `opencode providers login` again.");return{apiKey:J.access}},methods:[{label:"Login with Poe (browser)",type:"oauth",authorize:jq0},{label:"Manually enter API Key",type:"api"}]}}}async function nu($){return{auth:{provider:"cloudflare-workers-ai",methods:[{type:"api",label:"API key",prompts:!process.env.CLOUDFLARE_ACCOUNT_ID?[{type:"text",key:"accountId",message:"Enter your Cloudflare Account ID",placeholder:"e.g. 1234567890abcdef1234567890abcdef"}]:[]}]}}}async function ou($){return{auth:{provider:"cloudflare-ai-gateway",methods:[{type:"api",label:"Gateway API token",prompts:[...!process.env.CLOUDFLARE_ACCOUNT_ID?[{type:"text",key:"accountId",message:"Enter your Cloudflare Account ID",placeholder:"e.g. 1234567890abcdef1234567890abcdef"}]:[],...!process.env.CLOUDFLARE_GATEWAY_ID?[{type:"text",key:"gatewayId",message:"Enter your Cloudflare AI Gateway ID",placeholder:"e.g. my-gateway"}]:[]]}]},"chat.params":async(J,Y)=>{if(J.model.providerID!=="cloudflare-ai-gateway")return;if(!J.model.api.id.toLowerCase().startsWith("openai/"))return;if(!J.model.capabilities.reasoning)return;Y.maxOutputTokens=void 0}}}import AZ from"path";import qq0 from"fs/promises";function qK($){return AZ.join(F0.Path.data,"memory","sessions",$)}function $9($){return AZ.join(qK($),"checkpoint.md")}function Z9($){return AZ.join(F0.Path.data,"memory","projects",$,"MEMORY.md")}function Xg0(){return AZ.join(F0.Path.data,"memory","global","MEMORY.md")}async function Qg0($){let Z=Z9($),J=AZ.join(AZ.dirname(Z),"memory.md");if(await Bun.file(Z).exists())return;if(await Bun.file(J).exists())await qq0.rename(J,Z).catch((Y)=>{if(Y.code!=="ENOENT")throw Y})}function Gg0($){return AZ.join(qK($),"notes.md")}function Nq0($){return AZ.join(qK($),"tasks")}function su($,Z){return AZ.join(Nq0($),Z,"progress.md")}var ru=80,Mq0=["### Execution context","### Live resources","### Session metadata"],Dq0=["### Discovered","### Dead ends"];function au($,Z,J){let Y=[],X=$.split(`
660
660
  `).find((K)=>K.trim().length>0)??"";if(/^# Checkpoint #\d+/.test(X))Y.push({file:Z,rule:"topic-anti-pattern-checkpoint-header",severity:"error",detail:`First line is "${X}". Replace with "Topic: <\u226480-char one-line summary>" with NO leading "#".`});let Q=$.match(/^Topic:\s*(.+?)$/m);if(!Q)Y.push({file:Z,rule:"topic-missing",severity:"error",detail:'Missing required first-line "Topic: <summary>". Add it as the first non-blank line.'});else{let K=Q[1].trim();if(K.length>ru)Y.push({file:Z,rule:"topic-too-long",severity:"warn",detail:`Topic line is ${K.length} chars (limit ${ru}). Rewrite shorter.`})}let G=J.map((K)=>({section:K,idx:$.indexOf(K)}));for(let K of G)if(K.idx===-1)Y.push({file:Z,rule:"subsection-missing",severity:"error",detail:`Missing "${K.section}" sub-section. Add the header (use "(none)" placeholder if no entries).`});let W=G.filter((K)=>K.idx!==-1);for(let K=1;K<W.length;K++)if(W[K].idx<W[K-1].idx){Y.push({file:Z,rule:"subsection-out-of-order",severity:"error",detail:`Sub-sections must appear in order: ${J.join(", ")}.`});break}return Y}function tu($,Z){return au($,Z,Mq0)}function eu($){let Z=$.match(/^(?:Topic:.*\n+)?### discovered\s*\n([\s\S]*?)(?=\n### |$)/i);if(!Z)return[];let J=Z[1],Y=[],X=J.split(`
661
661
  `),Q;for(let G of X){let W=G.match(/^- (.+)$/);if(W){if(Q)Y.push({title:Q.title,block:Q.lines.join(`
@@ -786,11 +786,11 @@ Exact commands you ran or commands the user/task asked to be runnable later. Kee
786
786
  `)}async function nq0($,Z){let Y=`---
787
787
  written-at: ${Date.now()}
788
788
  ---
789
- `,X=Z.match(/^---\n[\s\S]*?\n---\n/),Q=X?Y+Z.slice(X[0].length):Y+Z;await Bun.write($,Q)}async function Lm($){return{"actor.postStop":{matcher:{agentType:{excludeOnly:["checkpoint-writer","title","summary","dream","distill","compaction","main"]}},run:async(Z,J)=>{let Y=Z.task_id;if(!Y)return;if(Z.canWrite===!1)return;let X=Z.sessionID,Q=su(X,Y),G;try{G=await Bun.file(Q).text()}catch{G=void 0}if(G===void 0){J.continue=!0,J.reason=wm({kind:"missing",taskId:Y,filePath:Q});return}let W=iq0.filter((K)=>!G.includes(K));if(W.length>0){J.continue=!0,J.reason=wm({kind:"incomplete",taskId:Y,filePath:Q,missing:W});return}try{await dq0.mkdir(pq0.dirname(Q),{recursive:!0}),await nq0(Q,G)}catch(K){cq0.error("frontmatter injection failed",{err:K,filePath:Q})}}}}}var SA;((Ou0)=>{function $(Q){let G=r8.pluginSpecifier(Q);return{spec:G,options:r8.pluginOptions(Q),deprecated:Tm(G)}}async function Z(Q,G){let W="";try{W=await Im(Q.spec)}catch(V){return{ok:!1,stage:"install",error:V}}if(!W)return{ok:!1,stage:"install",error:Error(`Plugin ${Q.spec} target is empty`)};let K;try{K=await Cm(Q.spec,W,G)}catch(V){return{ok:!1,stage:"entry",error:V}}if(!K.entry)return{ok:!1,stage:"missing",value:{...Q,source:K.source,target:K.target,pkg:K.pkg,message:`Plugin ${Q.spec} does not expose a ${G} entrypoint`}};if(K.source==="npm")try{await Pm(K.target,O$,K.pkg)}catch(V){return{ok:!1,stage:"compatibility",error:V}}return{ok:!0,value:{...Q,source:K.source,target:K.target,entry:K.entry,pkg:K.pkg}}}Ou0.resolve=Z;async function J(Q){let G;try{G=await import(Q.entry)}catch(W){return{ok:!1,error:W}}if(!G)return{ok:!1,error:Error(`Plugin ${Q.spec} module is empty`)};return{ok:!0,value:{...Q,mod:G}}}Ou0.load=J;async function Y(Q,G,W,K,V,U){let H=Q.plan;if(H.deprecated)return;U?.start?.(Q,W);let B=await Z(H,G);if(!B.ok){if(B.stage==="missing"){if(V){let F=await V(B.value,Q.origin,W);if(F!==void 0)return F}U?.missing?.(Q,W,B.value.message,B.value);return}U?.error?.(Q,W,B.stage,B.error);return}let z=await J(B.value);if(!z.ok){U?.error?.(Q,W,"load",z.error,B.value);return}if(!K)return z.value;return K(z.value,Q.origin,W)}async function X(Q){let G=Q.items.map((U)=>({origin:U,plan:$(U.spec)})),W=[];for(let U of G)W.push(Y(U,Q.kind,!1,Q.finish,Q.missing,Q.report));let K=await Promise.all(W);if(Q.wait){let U;for(let H=0;H<G.length;H++){if(K[H]!==void 0)continue;let B=G[H];if(!B||Rm(B.plan.spec)!=="file")continue;U??=Q.wait(),await U,K[H]=await Y(B,Q.kind,!0,Q.finish,Q.missing,Q.report)}}let V=[];for(let U of K)if(U!==void 0)V.push(U);return V}Ou0.loadExternal=X})(SA||={});var bm={worktree:Em(async()=>(await import("./chunk-43xt69m8.js")).WorktreeAdaptor)},wK=new Map;async function Nu0($,Z){let J=wK.get($)?.get(Z);if(J)return J;let Y=bm[Z];if(Y)return Y();throw Error(`Unknown workspace adaptor: ${Z}`)}async function Mu0($){let Z=await Promise.all(Object.entries(bm).map(async([Y,X])=>{let Q=await X();return{type:Y,name:Q.name,description:Q.description}})),J=[...wK.get($)?.entries()??[]].map(([Y,X])=>({type:Y,name:X.name,description:X.description}));return[...Z,...J]}function _m($,Z,J){let Y=wK.get($)??new Map;Y.set(Z,J),wK.set($,Y)}import oq0 from"fs/promises";import G9 from"path";import{pathToFileURL as Sm,fileURLToPath as sq0}from"url";var z$=E0.create({service:"plugin"}),kA={Executed:L1.define("hook.executed",D.object({event:D.enum(["actor.preStop","actor.postStop"]),hookID:D.string(),pluginName:D.string(),actorID:D.string(),agentType:D.string(),durationMs:D.number(),outcome:D.enum(["success","error","skipped"]),continueRequested:D.boolean(),reasonLength:D.number()})),ReActReentered:L1.define("hook.react.reentered",D.object({phase:D.enum(["pre","post"]),actorID:D.string(),agentType:D.string(),iteration:D.number(),triggeredByPlugins:D.array(D.string()),reasonPreview:D.string()})),ReActMaxReached:L1.define("hook.react.max_reached",D.object({phase:D.enum(["pre","post"]),actorID:D.string(),agentType:D.string()}))};class LK extends S1.Service()("@qitqode/Plugin"){}var rq0=[r2,a2,s2,YR,gu,jK,nu,ou,Mm,Lm];function fm($){return typeof $==="function"}function aq0($){if(fm($))return $;if(!$||typeof $!=="object"||!("server"in $))return;if(!fm($.server))return;return $.server}function tq0($){let Z=new Set,J=[];for(let Y of Object.values($)){if(Z.has(Y))continue;Z.add(Y);let X=aq0(Y);if(!X)throw TypeError("Plugin export is not a function");J.push(X)}return J}async function eq0($,Z,J,Y){let X=vm($.mod,$.spec,"server","detect");if(X){await ym($.source,$.spec,$.target,fA(X.id,$.spec),$.pkg);let Q=fA(X.id,$.spec)??$.pkg?.pkg??$.spec,G=await X.server(Z,$.options);J.push(G),Y.push({hook:G,pluginName:Q,hookIDFor:(W)=>`${Q}#${W}`});return}for(let Q of tq0($.mod)){let G=Q.name,W=G&&G!=="default"&&G!==""?G:$.pkg?.pkg??$.spec,K=await Q(Z,$.options);J.push(K),Y.push({hook:K,pluginName:W,hookIDFor:(V)=>`${W}#${V}`})}}var xm=T0.effect(LK,L.gen(function*(){let $=yield*l1.Service,Z=yield*X8.Service,J=yield*B0.make(L.fn("Plugin.state")(function*(F){let A=[],q=[],N=yield*R7.make();function w(f){N.fork($.publish(W9.Event.Error,{error:new q1.Unknown({message:f}).toObject()}))}let{Server:j}=yield*L.promise(()=>import("./chunk-dxje3azs.js")),M=CH({baseUrl:"http://localhost:4096",directory:F.directory,headers:b0.QITQODE_SERVER_PASSWORD?{Authorization:`Basic ${Buffer.from(`${b0.QITQODE_SERVER_USERNAME??"qitqode"}:${b0.QITQODE_SERVER_PASSWORD}`).toString("base64")}`}:void 0,fetch:async(...f)=>(await j.Default()).app.fetch(...f)}),C=yield*Z.get(),R={client:M,project:F.project,worktree:F.worktree,directory:F.directory,experimental_workspace:{register(f,b){_m(F.project.id,f,b)}},get serverUrl(){return j.url??new URL("http://localhost:4096")},$:typeof Bun>"u"?void 0:Bun.$};for(let f of rq0){z$.info("loading internal plugin",{name:f.name});let b=yield*L.tryPromise({try:()=>f(R),catch:(y)=>{z$.error("failed to load internal plugin",{name:f.name,error:y})}}).pipe(L.option);if(b._tag==="Some")A.push(b.value),q.push({hook:b.value,pluginName:f.name,hookIDFor:(y)=>`${f.name}#${y}`})}let T={},P=yield*L.tryPromise(()=>import("./chunk-0p27fvfr.js")).pipe(L.option);if(P._tag==="Some")Object.assign(T,P.value.modules??{});else{let f=G9.join(G9.dirname(sq0(import.meta.url)),"..","ext"),y=(yield*L.promise(()=>oq0.readdir(f).catch(()=>[]))).filter((k)=>k.endsWith(".ts")&&!k.endsWith(".d.ts")&&k!=="_manifest.ts");for(let k of y){let g=yield*L.tryPromise({try:()=>import(Sm(G9.join(f,k)).href),catch:(d)=>z$.error("failed to import extension",{name:k,error:d})}).pipe(L.option);if(g._tag==="Some")T[k.replace(/\.ts$/,"")]=g.value}}for(let[f,b]of Object.entries(T)){let y=Object.entries(b).find(([g,d])=>typeof d==="function"&&g.endsWith("Plugin"))?.[1];if(!y)continue;z$.info("loading extension",{name:f});let k=yield*L.tryPromise({try:()=>y(R),catch:(g)=>z$.error("failed to load extension",{name:f,error:g})}).pipe(L.option);if(k._tag==="Some")A.push(k.value),q.push({hook:k.value,pluginName:f,hookIDFor:(g)=>`${f}#${g}`})}let _=b0.QITQODE_PURE?[]:C.plugin_origins??[];if(b0.QITQODE_PURE&&C.plugin_origins?.length)z$.info("skipping external plugins in pure mode",{count:C.plugin_origins.length});if(_.length)yield*Z.waitForDependencies();let E=yield*L.promise(()=>SA.loadExternal({items:_,kind:"server",report:{start(f){z$.info("loading plugin",{path:f.plan.spec})},missing(f,b,y){z$.warn("plugin has no server entrypoint",{path:f.plan.spec,message:y})},error(f,b,y,k,g){let d=f.plan.spec,p=k instanceof Error?k.cause??k:k,t=y==="load"?k6(k):k6(p);if(y==="install"){let r=km(d);z$.error("failed to install plugin",{pkg:r.pkg,version:r.version,error:t}),w(`Failed to install plugin ${r.pkg}@${r.version}: ${t}`);return}if(y==="compatibility"){z$.warn("plugin incompatible",{path:d,error:t}),w(`Plugin ${d} skipped: ${t}`);return}if(y==="entry"){z$.error("failed to resolve plugin server entry",{path:d,error:t}),w(`Failed to load plugin ${d}: ${t}`);return}z$.error("failed to load plugin",{path:d,target:g?.entry,error:t}),w(`Failed to load plugin ${d}: ${t}`)}}}));for(let f of E){if(!f)continue;yield*L.tryPromise({try:()=>eq0(f,R,A,q),catch:(b)=>{let y=k6(b);return z$.error("failed to load plugin",{path:f.spec,error:y}),y}}).pipe(L.catch(()=>{return L.void}))}for(let f of A)yield*L.tryPromise({try:()=>Promise.resolve(f.config?.(C)),catch:(b)=>{z$.error("plugin config hook failed",{error:b})}}).pipe(L.ignore);return yield*$.subscribeAll().pipe(I$.runForEach((f)=>L.sync(()=>{for(let b of A)b.event?.({event:f})})),L.forkScoped),{hooks:A,hooksWithMeta:q}})),Y=yield*B0.make(L.fn("Plugin.fileHooks")(function*(){let F=[],A=[],q=yield*Z.get(),N=yield*Z.directories();for(let w of N){let j=G4.scanSync("{hook,hooks}/*.{js,ts}",{cwd:w,absolute:!0,dot:!0,symlink:!0});for(let M of j){let C=yield*L.tryPromise({try:()=>import(`${Sm(M).href}?v=${Date.now()}`),catch:(T)=>T}).pipe(L.catch((T)=>{return z$.error("failed to load file hook",{path:M,error:k6(T)}),L.succeed(void 0)}));if(!C)continue;let R=C.default??C;if(R&&typeof R==="object"){let T=G9.basename(M,G9.extname(M));F.push(R),A.push({hook:R,pluginName:`file:${T}`,hookIDFor:(P)=>`file:${T}#${P}`}),z$.info("loaded file hook",{path:M,name:T})}}}return{hooks:F,meta:A}})),X=(F,A)=>L.gen(function*(){let q=yield*B0.get(J),N=yield*B0.get(Y),w=[],j=[],M=[],C=!1;for(let T of[...q.hooksWithMeta,...N.meta]){let P=T.hook[A];if(!P)continue;let _=typeof P==="function"?P:P.run,E=typeof P==="function"?void 0:P.matcher;if(!A2(E,F)){yield*$.publish(kA.Executed,{event:A,hookID:T.hookIDFor(A),pluginName:T.pluginName,actorID:F.actorID,agentType:F.agentType,durationMs:0,outcome:"skipped",continueRequested:!1,reasonLength:0});continue}let f=Date.now(),b={continue:!1},y="success";yield*L.tryPromise({try:()=>_(F,b),catch:(g)=>g}).pipe(L.tapError((g)=>L.gen(function*(){y="error",z$.error(`${A} hook failed`,{pluginName:T.pluginName,hookID:T.hookIDFor(A),error:g}),yield*$.publish(W9.Event.Error,{sessionID:F.sessionID,error:new q1.Unknown({message:`${A} hook (${T.pluginName}) failed: ${k6(g)}`}).toObject()})})),L.ignore);let k=Date.now()-f;if(yield*$.publish(kA.Executed,{event:A,hookID:T.hookIDFor(A),pluginName:T.pluginName,actorID:F.actorID,agentType:F.agentType,durationMs:k,outcome:y,continueRequested:b.continue===!0,reasonLength:b.reason?.length??0}),b.continue===!0&&b.reason&&b.reason.length>0)C=!0,w.push(b.reason),j.push(T.pluginName),M.push(T.hookIDFor(A));else if(b.continue===!0)z$.warn(`${A} hook returned continue=true without reason; ignored`,{pluginName:T.pluginName})}return{continue:C,reason:w.length>0?w.join(`
789
+ `,X=Z.match(/^---\n[\s\S]*?\n---\n/),Q=X?Y+Z.slice(X[0].length):Y+Z;await Bun.write($,Q)}async function Lm($){return{"actor.postStop":{matcher:{agentType:{excludeOnly:["checkpoint-writer","title","summary","dream","distill","compaction","main"]}},run:async(Z,J)=>{let Y=Z.task_id;if(!Y)return;if(Z.canWrite===!1)return;let X=Z.sessionID,Q=su(X,Y),G;try{G=await Bun.file(Q).text()}catch{G=void 0}if(G===void 0){J.continue=!0,J.reason=wm({kind:"missing",taskId:Y,filePath:Q});return}let W=iq0.filter((K)=>!G.includes(K));if(W.length>0){J.continue=!0,J.reason=wm({kind:"incomplete",taskId:Y,filePath:Q,missing:W});return}try{await dq0.mkdir(pq0.dirname(Q),{recursive:!0}),await nq0(Q,G)}catch(K){cq0.error("frontmatter injection failed",{err:K,filePath:Q})}}}}}var SA;((Ou0)=>{function $(Q){let G=r8.pluginSpecifier(Q);return{spec:G,options:r8.pluginOptions(Q),deprecated:Tm(G)}}async function Z(Q,G){let W="";try{W=await Im(Q.spec)}catch(V){return{ok:!1,stage:"install",error:V}}if(!W)return{ok:!1,stage:"install",error:Error(`Plugin ${Q.spec} target is empty`)};let K;try{K=await Cm(Q.spec,W,G)}catch(V){return{ok:!1,stage:"entry",error:V}}if(!K.entry)return{ok:!1,stage:"missing",value:{...Q,source:K.source,target:K.target,pkg:K.pkg,message:`Plugin ${Q.spec} does not expose a ${G} entrypoint`}};if(K.source==="npm")try{await Pm(K.target,O$,K.pkg)}catch(V){return{ok:!1,stage:"compatibility",error:V}}return{ok:!0,value:{...Q,source:K.source,target:K.target,entry:K.entry,pkg:K.pkg}}}Ou0.resolve=Z;async function J(Q){let G;try{G=await import(Q.entry)}catch(W){return{ok:!1,error:W}}if(!G)return{ok:!1,error:Error(`Plugin ${Q.spec} module is empty`)};return{ok:!0,value:{...Q,mod:G}}}Ou0.load=J;async function Y(Q,G,W,K,V,U){let H=Q.plan;if(H.deprecated)return;U?.start?.(Q,W);let B=await Z(H,G);if(!B.ok){if(B.stage==="missing"){if(V){let F=await V(B.value,Q.origin,W);if(F!==void 0)return F}U?.missing?.(Q,W,B.value.message,B.value);return}U?.error?.(Q,W,B.stage,B.error);return}let z=await J(B.value);if(!z.ok){U?.error?.(Q,W,"load",z.error,B.value);return}if(!K)return z.value;return K(z.value,Q.origin,W)}async function X(Q){let G=Q.items.map((U)=>({origin:U,plan:$(U.spec)})),W=[];for(let U of G)W.push(Y(U,Q.kind,!1,Q.finish,Q.missing,Q.report));let K=await Promise.all(W);if(Q.wait){let U;for(let H=0;H<G.length;H++){if(K[H]!==void 0)continue;let B=G[H];if(!B||Rm(B.plan.spec)!=="file")continue;U??=Q.wait(),await U,K[H]=await Y(B,Q.kind,!0,Q.finish,Q.missing,Q.report)}}let V=[];for(let U of K)if(U!==void 0)V.push(U);return V}Ou0.loadExternal=X})(SA||={});var bm={worktree:Em(async()=>(await import("./chunk-945ebhte.js")).WorktreeAdaptor)},wK=new Map;async function Nu0($,Z){let J=wK.get($)?.get(Z);if(J)return J;let Y=bm[Z];if(Y)return Y();throw Error(`Unknown workspace adaptor: ${Z}`)}async function Mu0($){let Z=await Promise.all(Object.entries(bm).map(async([Y,X])=>{let Q=await X();return{type:Y,name:Q.name,description:Q.description}})),J=[...wK.get($)?.entries()??[]].map(([Y,X])=>({type:Y,name:X.name,description:X.description}));return[...Z,...J]}function _m($,Z,J){let Y=wK.get($)??new Map;Y.set(Z,J),wK.set($,Y)}import oq0 from"fs/promises";import G9 from"path";import{pathToFileURL as Sm,fileURLToPath as sq0}from"url";var z$=E0.create({service:"plugin"}),kA={Executed:L1.define("hook.executed",D.object({event:D.enum(["actor.preStop","actor.postStop"]),hookID:D.string(),pluginName:D.string(),actorID:D.string(),agentType:D.string(),durationMs:D.number(),outcome:D.enum(["success","error","skipped"]),continueRequested:D.boolean(),reasonLength:D.number()})),ReActReentered:L1.define("hook.react.reentered",D.object({phase:D.enum(["pre","post"]),actorID:D.string(),agentType:D.string(),iteration:D.number(),triggeredByPlugins:D.array(D.string()),reasonPreview:D.string()})),ReActMaxReached:L1.define("hook.react.max_reached",D.object({phase:D.enum(["pre","post"]),actorID:D.string(),agentType:D.string()}))};class LK extends S1.Service()("@qitqode/Plugin"){}var rq0=[r2,a2,s2,YR,gu,jK,nu,ou,Mm,Lm];function fm($){return typeof $==="function"}function aq0($){if(fm($))return $;if(!$||typeof $!=="object"||!("server"in $))return;if(!fm($.server))return;return $.server}function tq0($){let Z=new Set,J=[];for(let Y of Object.values($)){if(Z.has(Y))continue;Z.add(Y);let X=aq0(Y);if(!X)throw TypeError("Plugin export is not a function");J.push(X)}return J}async function eq0($,Z,J,Y){let X=vm($.mod,$.spec,"server","detect");if(X){await ym($.source,$.spec,$.target,fA(X.id,$.spec),$.pkg);let Q=fA(X.id,$.spec)??$.pkg?.pkg??$.spec,G=await X.server(Z,$.options);J.push(G),Y.push({hook:G,pluginName:Q,hookIDFor:(W)=>`${Q}#${W}`});return}for(let Q of tq0($.mod)){let G=Q.name,W=G&&G!=="default"&&G!==""?G:$.pkg?.pkg??$.spec,K=await Q(Z,$.options);J.push(K),Y.push({hook:K,pluginName:W,hookIDFor:(V)=>`${W}#${V}`})}}var xm=T0.effect(LK,L.gen(function*(){let $=yield*l1.Service,Z=yield*X8.Service,J=yield*B0.make(L.fn("Plugin.state")(function*(F){let A=[],q=[],N=yield*R7.make();function w(f){N.fork($.publish(W9.Event.Error,{error:new q1.Unknown({message:f}).toObject()}))}let{Server:j}=yield*L.promise(()=>import("./chunk-0442cmw2.js")),M=CH({baseUrl:"http://localhost:4096",directory:F.directory,headers:b0.QITQODE_SERVER_PASSWORD?{Authorization:`Basic ${Buffer.from(`${b0.QITQODE_SERVER_USERNAME??"qitqode"}:${b0.QITQODE_SERVER_PASSWORD}`).toString("base64")}`}:void 0,fetch:async(...f)=>(await j.Default()).app.fetch(...f)}),C=yield*Z.get(),R={client:M,project:F.project,worktree:F.worktree,directory:F.directory,experimental_workspace:{register(f,b){_m(F.project.id,f,b)}},get serverUrl(){return j.url??new URL("http://localhost:4096")},$:typeof Bun>"u"?void 0:Bun.$};for(let f of rq0){z$.info("loading internal plugin",{name:f.name});let b=yield*L.tryPromise({try:()=>f(R),catch:(y)=>{z$.error("failed to load internal plugin",{name:f.name,error:y})}}).pipe(L.option);if(b._tag==="Some")A.push(b.value),q.push({hook:b.value,pluginName:f.name,hookIDFor:(y)=>`${f.name}#${y}`})}let T={},P=yield*L.tryPromise(()=>import("./chunk-ttevj0pj.js")).pipe(L.option);if(P._tag==="Some")Object.assign(T,P.value.modules??{});else{let f=G9.join(G9.dirname(sq0(import.meta.url)),"..","ext"),y=(yield*L.promise(()=>oq0.readdir(f).catch(()=>[]))).filter((k)=>k.endsWith(".ts")&&!k.endsWith(".d.ts")&&k!=="_manifest.ts");for(let k of y){let g=yield*L.tryPromise({try:()=>import(Sm(G9.join(f,k)).href),catch:(d)=>z$.error("failed to import extension",{name:k,error:d})}).pipe(L.option);if(g._tag==="Some")T[k.replace(/\.ts$/,"")]=g.value}}for(let[f,b]of Object.entries(T)){let y=Object.entries(b).find(([g,d])=>typeof d==="function"&&g.endsWith("Plugin"))?.[1];if(!y)continue;z$.info("loading extension",{name:f});let k=yield*L.tryPromise({try:()=>y(R),catch:(g)=>z$.error("failed to load extension",{name:f,error:g})}).pipe(L.option);if(k._tag==="Some")A.push(k.value),q.push({hook:k.value,pluginName:f,hookIDFor:(g)=>`${f}#${g}`})}let _=b0.QITQODE_PURE?[]:C.plugin_origins??[];if(b0.QITQODE_PURE&&C.plugin_origins?.length)z$.info("skipping external plugins in pure mode",{count:C.plugin_origins.length});if(_.length)yield*Z.waitForDependencies();let E=yield*L.promise(()=>SA.loadExternal({items:_,kind:"server",report:{start(f){z$.info("loading plugin",{path:f.plan.spec})},missing(f,b,y){z$.warn("plugin has no server entrypoint",{path:f.plan.spec,message:y})},error(f,b,y,k,g){let d=f.plan.spec,p=k instanceof Error?k.cause??k:k,t=y==="load"?k6(k):k6(p);if(y==="install"){let r=km(d);z$.error("failed to install plugin",{pkg:r.pkg,version:r.version,error:t}),w(`Failed to install plugin ${r.pkg}@${r.version}: ${t}`);return}if(y==="compatibility"){z$.warn("plugin incompatible",{path:d,error:t}),w(`Plugin ${d} skipped: ${t}`);return}if(y==="entry"){z$.error("failed to resolve plugin server entry",{path:d,error:t}),w(`Failed to load plugin ${d}: ${t}`);return}z$.error("failed to load plugin",{path:d,target:g?.entry,error:t}),w(`Failed to load plugin ${d}: ${t}`)}}}));for(let f of E){if(!f)continue;yield*L.tryPromise({try:()=>eq0(f,R,A,q),catch:(b)=>{let y=k6(b);return z$.error("failed to load plugin",{path:f.spec,error:y}),y}}).pipe(L.catch(()=>{return L.void}))}for(let f of A)yield*L.tryPromise({try:()=>Promise.resolve(f.config?.(C)),catch:(b)=>{z$.error("plugin config hook failed",{error:b})}}).pipe(L.ignore);return yield*$.subscribeAll().pipe(I$.runForEach((f)=>L.sync(()=>{for(let b of A)b.event?.({event:f})})),L.forkScoped),{hooks:A,hooksWithMeta:q}})),Y=yield*B0.make(L.fn("Plugin.fileHooks")(function*(){let F=[],A=[],q=yield*Z.get(),N=yield*Z.directories();for(let w of N){let j=G4.scanSync("{hook,hooks}/*.{js,ts}",{cwd:w,absolute:!0,dot:!0,symlink:!0});for(let M of j){let C=yield*L.tryPromise({try:()=>import(`${Sm(M).href}?v=${Date.now()}`),catch:(T)=>T}).pipe(L.catch((T)=>{return z$.error("failed to load file hook",{path:M,error:k6(T)}),L.succeed(void 0)}));if(!C)continue;let R=C.default??C;if(R&&typeof R==="object"){let T=G9.basename(M,G9.extname(M));F.push(R),A.push({hook:R,pluginName:`file:${T}`,hookIDFor:(P)=>`file:${T}#${P}`}),z$.info("loaded file hook",{path:M,name:T})}}}return{hooks:F,meta:A}})),X=(F,A)=>L.gen(function*(){let q=yield*B0.get(J),N=yield*B0.get(Y),w=[],j=[],M=[],C=!1;for(let T of[...q.hooksWithMeta,...N.meta]){let P=T.hook[A];if(!P)continue;let _=typeof P==="function"?P:P.run,E=typeof P==="function"?void 0:P.matcher;if(!A2(E,F)){yield*$.publish(kA.Executed,{event:A,hookID:T.hookIDFor(A),pluginName:T.pluginName,actorID:F.actorID,agentType:F.agentType,durationMs:0,outcome:"skipped",continueRequested:!1,reasonLength:0});continue}let f=Date.now(),b={continue:!1},y="success";yield*L.tryPromise({try:()=>_(F,b),catch:(g)=>g}).pipe(L.tapError((g)=>L.gen(function*(){y="error",z$.error(`${A} hook failed`,{pluginName:T.pluginName,hookID:T.hookIDFor(A),error:g}),yield*$.publish(W9.Event.Error,{sessionID:F.sessionID,error:new q1.Unknown({message:`${A} hook (${T.pluginName}) failed: ${k6(g)}`}).toObject()})})),L.ignore);let k=Date.now()-f;if(yield*$.publish(kA.Executed,{event:A,hookID:T.hookIDFor(A),pluginName:T.pluginName,actorID:F.actorID,agentType:F.agentType,durationMs:k,outcome:y,continueRequested:b.continue===!0,reasonLength:b.reason?.length??0}),b.continue===!0&&b.reason&&b.reason.length>0)C=!0,w.push(b.reason),j.push(T.pluginName),M.push(T.hookIDFor(A));else if(b.continue===!0)z$.warn(`${A} hook returned continue=true without reason; ignored`,{pluginName:T.pluginName})}return{continue:C,reason:w.length>0?w.join(`
790
790
 
791
791
  `):void 0,contributingPluginNames:j,contributingHookIDs:M}}),Q=L.fn("Plugin.triggerActorPreStop")(function*(F){return yield*X(F,"actor.preStop")}),G=L.fn("Plugin.triggerActorPostStop")(function*(F){return yield*X(F,"actor.postStop")}),W=5000,K=3,V=new Map,U=L.fn("Plugin.trigger")(function*(F,A,q){if(!F)return q;let N=yield*B0.get(J),w=yield*B0.get(Y);for(let j of N.hooksWithMeta){let M=j.hook[F];if(!M)continue;yield*L.promise(async()=>M(A,q))}for(let j of w.meta){let M=j.hook[F];if(!M)continue;let C=j.hookIDFor(F);if((V.get(C)??0)>=3){z$.warn("hook circuit-breaker open, skipping",{hook:C});continue}let R=structuredClone(q);if(!(yield*L.tryPromise({try:async()=>{await Promise.race([Promise.resolve(M(A,q)),new Promise((P,_)=>setTimeout(()=>_(Error("hook timed out after 5000ms")),5000))])},catch:(P)=>P}).pipe(L.map(()=>!1),L.catch((P)=>{Object.assign(q,R);let _=(V.get(C)??0)+1;return V.set(C,_),z$.error("file hook failed, output rolled back",{hook:C,event:F,error:k6(P),consecutiveFailures:_,circuitOpen:_>=3}),L.succeed(!0)}))))V.delete(C)}return q}),H=L.fn("Plugin.list")(function*(){return(yield*B0.get(J)).hooks}),B=L.fn("Plugin.init")(function*(){yield*B0.get(J),yield*B0.get(Y)}),z=L.fn("Plugin.reloadFileHooks")(function*(){yield*B0.invalidate(Y)});return LK.of({trigger:U,list:H,init:B,reloadFileHooks:z,triggerActorPreStop:Q,triggerActorPostStop:G})})),$N0=xm.pipe(T0.provide(l1.layer),T0.provide(X8.defaultLayer));import LN0 from"path";var _K=m6(gm(),1);var K9={};B1(K9,{variants:()=>W5,topP:()=>Jl,topK:()=>Yl,temperature:()=>Zl,smallOptions:()=>Ql,schema:()=>Vl,providerOptions:()=>Gl,options:()=>Xl,message:()=>dm,maxOutputTokens:()=>Wl,OUTPUT_TOKEN_MAX:()=>PK});var mm=32000;function ZN0($){if($.startsWith("image/"))return"image";if($.startsWith("audio/"))return"audio";if($.startsWith("video/"))return"video";if($==="application/pdf")return"pdf";return}function JN0($){let Z=$.id.toLowerCase(),J=$.api.id.toLowerCase();if(Z.includes("claude")||J.includes("claude")||$.providerID==="anthropic")return!0;if(Z.includes("gpt")||J.includes("gpt"))return!0;return $.capabilities.input.image}function RK($){switch($){case"@ai-sdk/github-copilot":return"copilot";case"@ai-sdk/azure":return"azure";case"@ai-sdk/openai":return"openai";case"@ai-sdk/amazon-bedrock":return"bedrock";case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":return"anthropic";case"@ai-sdk/google-vertex":return"vertex";case"@ai-sdk/google":return"google";case"@ai-sdk/gateway":return"gateway";case"@openrouter/ai-sdk-provider":return"openrouter"}return}function YN0($,Z,J){if(Z.api.npm==="@ai-sdk/anthropic"||Z.api.npm==="@ai-sdk/amazon-bedrock")$=$.map((Y)=>{if(typeof Y.content==="string"){if(Y.content==="")return;return Y}if(!Array.isArray(Y.content))return Y;let X=Y.content.filter((Q)=>{if(Q.type==="text"||Q.type==="reasoning")return Q.text!=="";return!0});if(X.length===0)return;return{...Y,content:X}}).filter((Y)=>Y!==void 0&&Y.content!=="");if(Z.api.id.includes("claude")){let Y=(X)=>X.replace(/[^a-zA-Z0-9_-]/g,"_");$=$.map((X)=>{if(X.role==="assistant"&&Array.isArray(X.content))return{...X,content:X.content.map((Q)=>{if(Q.type==="tool-call"||Q.type==="tool-result")return{...Q,toolCallId:Y(Q.toolCallId)};return Q})};if(X.role==="tool"&&Array.isArray(X.content))return{...X,content:X.content.map((Q)=>{if(Q.type==="tool-result")return{...Q,toolCallId:Y(Q.toolCallId)};return Q})};return X})}if(["@ai-sdk/anthropic","@ai-sdk/google-vertex/anthropic"].includes(Z.api.npm))$=$.flatMap((Y)=>{if(Y.role!=="assistant"||!Array.isArray(Y.content))return[Y];let X=Y.content,Q=X.findIndex((G)=>G.type==="tool-call");if(Q===-1)return[Y];if(!X.slice(Q).some((G)=>G.type!=="tool-call"))return[Y];return[{...Y,content:X.filter((G)=>G.type!=="tool-call")},{...Y,content:X.filter((G)=>G.type==="tool-call")}]});if(Z.providerID==="mistral"||Z.api.id.toLowerCase().includes("mistral")||Z.api.id.toLowerCase().includes("devstral")){let Y=(Q)=>{return Q.replace(/[^a-zA-Z0-9]/g,"").substring(0,9).padEnd(9,"0")},X=[];for(let Q=0;Q<$.length;Q++){let G=$[Q],W=$[Q+1];if(G.role==="assistant"&&Array.isArray(G.content))X.push({...G,content:G.content.map((K)=>{if(K.type==="tool-call"||K.type==="tool-result")return{...K,toolCallId:Y(K.toolCallId)};return K})});else if(G.role==="tool"&&Array.isArray(G.content))X.push({...G,content:G.content.map((K)=>{if(K.type==="tool-result")return{...K,toolCallId:Y(K.toolCallId)};return K})});else X.push(G);if(G.role==="tool"&&W?.role==="user")X.push({role:"assistant",content:[{type:"text",text:"Done."}]})}return X}if(typeof Z.capabilities.interleaved==="object"&&Z.capabilities.interleaved.field){let Y=Z.capabilities.interleaved.field;return $.map((X)=>{if(X.role==="assistant"&&Array.isArray(X.content)){let G=X.content.filter((K)=>K.type==="reasoning").map((K)=>K.text).join(""),W=X.content.filter((K)=>K.type!=="reasoning");if(G)return{...X,content:W,providerOptions:{...X.providerOptions,openaiCompatible:{...X.providerOptions?.openaiCompatible,[Y]:G}}};return{...X,content:W}}return X})}return $}function XN0($){if($.api.npm==="@ai-sdk/anthropic"||$.api.npm==="@ai-sdk/google-vertex/anthropic")return!0;if($.providerID==="anthropic"||$.providerID==="google-vertex-anthropic")return!0;if($.api.npm==="@ai-sdk/amazon-bedrock")return!0;if($.api.npm==="@openrouter/ai-sdk-provider"||$.api.npm==="@ai-sdk/github-copilot"||$.api.npm==="@ai-sdk/alibaba")return $.api.id.includes("claude")||$.api.id.includes("anthropic")||$.id.includes("claude")||$.id.includes("anthropic");return!1}function QN0($,Z){let J=Z.cachePromptTTL==="1h"?{ttl:"1h"}:{},Y={anthropic:{cacheControl:{type:"ephemeral",...J}},openrouter:{cacheControl:{type:"ephemeral",...J}},bedrock:{cachePoint:{type:"default"}},openaiCompatible:{cache_control:{type:"ephemeral"}},copilot:{copilot_cache_control:{type:"ephemeral"}},alibaba:{cacheControl:{type:"ephemeral"}}},X=[],Q=$.filter((K)=>K.role==="system");if(Q.length>0)X.push(Q[Q.length-1]);let G=$.filter((K)=>K.role!=="system"),W=G.findLastIndex((K)=>K.role==="user");if(W>=1){X.push(G[W-1]);let K=Math.floor(W/2);if(K>0&&K<W-1)X.push(G[K])}else if(W===0)X.push(G[0]);for(let K of um(X)){if(!(Z.providerID==="anthropic"||Z.providerID.includes("bedrock")||Z.api.npm==="@ai-sdk/amazon-bedrock")&&Array.isArray(K.content)&&K.content.length>0){let H=K.content[K.content.length-1];if(H&&typeof H==="object"&&H.type!=="tool-approval-request"&&H.type!=="tool-approval-response"){H.providerOptions=N1(H.providerOptions??{},Y);continue}}K.providerOptions=N1(K.providerOptions??{},Y)}return $}function GN0($,Z){return $.map((J)=>{if(J.role!=="user"||!Array.isArray(J.content))return J;let Y=J.content.map((X)=>{if(X.type!=="file"&&X.type!=="image")return X;if(X.type==="image"){let U=String(X.image);if(U.startsWith("data:")){let H=U.match(/^data:([^;]+);base64,(.*)$/);if(H&&(!H[2]||H[2].length===0))return{type:"text",text:"ERROR: Image file is empty or corrupted. Please provide a valid image."}}}let Q=X.type==="image"?String(X.image).split(";")[0].replace("data:",""):X.mediaType,G=X.type==="file"?X.filename:void 0,W=ZN0(Q);if(!W)return X;if(W==="image"?JN0(Z):Z.capabilities.input[W])return X;return{type:"text",text:`ERROR: Cannot read ${G?`"${G}"`:W} (this model does not support ${W} input). Inform the user.`}});return{...J,content:Y}})}function WN0($){if(!$.startsWith("data:"))return;let Z=$.slice($.indexOf(",")+1);if(!Z)return 0;let J=Z.endsWith("==")?2:Z.endsWith("=")?1:0;return Math.floor(Z.length*3/4)-J}function KN0($,Z,J){if(Z===void 0&&J===void 0)return $;let Y=$.reduce((Q,G)=>G.role==="user"&&Array.isArray(G.content)?Q+G.content.filter((W)=>W.type==="image").length:Q,0),X=Z===void 0?0:Math.max(0,Y-Z);return $.map((Q)=>{if(Q.role!=="user"||!Array.isArray(Q.content))return Q;let G=Q.content.map((W)=>{if(W.type!=="image")return W;if(X>0)return X--,{type:"text",text:`[Image omitted: exceeds the configured limit of ${Z} prompt image(s).]`};if(J!==void 0){let K=WN0(String(W.image));if(K!==void 0&&K>J)return{type:"text",text:`[Image omitted: exceeds the configured ${J}-byte prompt image size limit.]`}}return W});return{...Q,content:G}})}function lm($,Z,J,Y={}){if($=GN0($,Z),$=KN0($,Y.maxImages,Y.maxSize),$=YN0($,Z,J),XN0(Z))$=QN0($,Z);let X=RK(Z.api.npm);if(X&&X!==Z.providerID){let Q=(G)=>{if(!G)return G;if(!(Z.providerID in G))return G;let W={...G};return W[X]=W[Z.providerID],delete W[Z.providerID],W};$=$.map((G)=>{if(!Array.isArray(G.content))return{...G,providerOptions:Q(G.providerOptions)};return{...G,providerOptions:Q(G.providerOptions),content:G.content.map((W)=>{if(W.type==="tool-approval-request"||W.type==="tool-approval-response")return{...W};return{...W,providerOptions:Q(W.providerOptions)}})}})}return $}var PK=b0.QITQODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX||mm;function dm($,Z,J){return lm($,Z,J,{maxImages:b0.QITQODE_MAX_PROMPT_IMAGES,maxSize:b0.QITQODE_MAX_PROMPT_IMAGE_SIZE})}function pm($){return $()}var U6=["low","medium","high"],cm=["none","minimal",...U6,"xhigh"];function im($){if($)return Object.fromEntries($.map((Z)=>[Z,{thinking:{type:"adaptive"},effort:Z}]));return{high:{thinking:{type:"enabled",budgetTokens:16000}},max:{thinking:{type:"enabled",budgetTokens:31999}}}}function VN0($){if(["opus-4-7","opus-4.7","opus-4-8","opus-4.8"].some((Z)=>$.includes(Z)))return["low","medium","high","xhigh","max"];if(["opus-4-6","opus-4.6","sonnet-4-6","sonnet-4.6"].some((Z)=>$.includes(Z)))return["low","medium","high","max"];return null}function nm($){if(!$.capabilities.reasoning)return{};let Z=$.id.toLowerCase(),J=VN0($.api.id);if(Z.includes("deepseek")||Z.includes("minimax")||Z.includes("glm")||Z.includes("mistral")||Z.includes("kimi")||Z.includes("k2p5")||Z.includes("qwen")||Z.includes("big-pickle"))return{};if(Z.includes("grok")&&Z.includes("grok-3-mini")){if($.api.npm==="@openrouter/ai-sdk-provider")return{low:{reasoning:{effort:"low"}},high:{reasoning:{effort:"high"}}};return{low:{reasoningEffort:"low"},high:{reasoningEffort:"high"}}}if(Z.includes("grok"))return{};switch($.api.npm){case"@openrouter/ai-sdk-provider":if(!$.id.includes("gpt")&&!$.id.includes("gemini-3")&&!$.id.includes("claude"))return{};return Object.fromEntries(cm.map((K)=>[K,{reasoning:{effort:K}}]));case"@ai-sdk/gateway":if($.id.includes("anthropic"))return im(J);if($.id.includes("google")){if(Z.includes("2.5"))return{high:{thinkingConfig:{includeThoughts:!0,thinkingBudget:16000}},max:{thinkingConfig:{includeThoughts:!0,thinkingBudget:24576}}};return Object.fromEntries(["low","high"].map((K)=>[K,{includeThoughts:!0,thinkingLevel:K}]))}return Object.fromEntries(cm.map((K)=>[K,{reasoningEffort:K}]));case"@ai-sdk/github-copilot":if($.id.includes("gemini"))return{};if($.id.includes("claude"))return Object.fromEntries(U6.map((K)=>[K,{reasoningEffort:K}]));let Y=pm(()=>{if(Z.includes("5.1-codex-max")||Z.includes("5.2")||Z.includes("5.3"))return[...U6,"xhigh"];let K=[...U6];if(Z.includes("gpt-5")&&$.release_date>="2025-12-04")K.push("xhigh");return K});return Object.fromEntries(Y.map((K)=>[K,{reasoningEffort:K,reasoningSummary:"auto",include:["reasoning.encrypted_content"]}]));case"@ai-sdk/cerebras":case"@ai-sdk/togetherai":case"@ai-sdk/xai":case"@ai-sdk/deepinfra":case"venice-ai-sdk-provider":case"@ai-sdk/openai-compatible":return Object.fromEntries(U6.map((K)=>[K,{reasoningEffort:K}]));case"@ai-sdk/azure":if(Z==="o1-mini")return{};let X=["low","medium","high"];if(Z.includes("gpt-5-")||Z==="gpt-5")X.unshift("minimal");return Object.fromEntries(X.map((K)=>[K,{reasoningEffort:K,reasoningSummary:"auto",include:["reasoning.encrypted_content"]}]));case"@ai-sdk/openai":if(Z==="gpt-5-pro")return{};let Q=pm(()=>{if(Z.includes("codex")){if(Z.includes("5.2")||Z.includes("5.3"))return[...U6,"xhigh"];return U6}let K=[...U6];if(Z.includes("gpt-5-")||Z==="gpt-5")K.unshift("minimal");if($.release_date>="2025-11-13")K.unshift("none");if($.release_date>="2025-12-04")K.push("xhigh");return K});return Object.fromEntries(Q.map((K)=>[K,{reasoningEffort:K,reasoningSummary:"auto",include:["reasoning.encrypted_content"]}]));case"@ai-sdk/anthropic":case"@ai-sdk/google-vertex/anthropic":if($.providerID==="github-copilot"){if($.api.id.includes("opus-4.7"))return Object.fromEntries(["medium"].map((K)=>[K,{reasoningEffort:K}]))}if(J)return Object.fromEntries(J.map((K)=>[K,{thinking:{type:"adaptive",...["opus-4-7","opus-4.7","opus-4-8","opus-4.8"].some((V)=>$.api.id.includes(V))?{display:"summarized"}:{}},effort:K}]));return{high:{thinking:{type:"enabled",budgetTokens:Math.max(1,Math.min(16000,Math.floor($.limit.output/2-1)))}},max:{thinking:{type:"enabled",budgetTokens:Math.max(1,Math.min(31999,$.limit.output-1))}}};case"@ai-sdk/amazon-bedrock":if(J)return Object.fromEntries(J.map((K)=>[K,{reasoningConfig:{type:"adaptive",maxReasoningEffort:K,...["opus-4-7","opus-4.7","opus-4-8","opus-4.8"].some((V)=>$.api.id.includes(V))?{display:"summarized"}:{}}}]));if($.api.id.includes("anthropic"))return{high:{reasoningConfig:{type:"enabled",budgetTokens:16000}},max:{reasoningConfig:{type:"enabled",budgetTokens:31999}}};return Object.fromEntries(U6.map((K)=>[K,{reasoningConfig:{type:"enabled",maxReasoningEffort:K}}]));case"@ai-sdk/google-vertex":case"@ai-sdk/google":if(Z.includes("2.5"))return{high:{thinkingConfig:{includeThoughts:!0,thinkingBudget:16000}},max:{thinkingConfig:{includeThoughts:!0,thinkingBudget:24576}}};let G=["low","high"];if(Z.includes("3.1"))G=["low","medium","high"];return Object.fromEntries(G.map((K)=>[K,{thinkingConfig:{includeThoughts:!0,thinkingLevel:K}}]));case"@ai-sdk/mistral":return{};case"@ai-sdk/cohere":return{};case"@ai-sdk/groq":let W=["none",...U6];return Object.fromEntries(W.map((K)=>[K,{reasoningEffort:K}]));case"@ai-sdk/perplexity":return{};case"@jerome-benoit/sap-ai-provider-v2":if($.api.id.includes("anthropic"))return im(J);if($.api.id.includes("gemini")&&Z.includes("2.5"))return{high:{thinkingConfig:{includeThoughts:!0,thinkingBudget:16000}},max:{thinkingConfig:{includeThoughts:!0,thinkingBudget:24576}}};if($.api.id.includes("gpt")||/\bo[1-9]/.test($.api.id))return Object.fromEntries(U6.map((K)=>[K,{reasoningEffort:K}]));return{}}return{}}function W5($){return nm($)}function om($){let Z=$.id.toLowerCase();if(Z.includes("qwen"))return 0.55;if(Z.includes("claude"))return;if(Z.includes("gemini"))return 1;if(Z.includes("glm-4.6"))return 1;if(Z.includes("glm-4.7"))return 1;if(Z.includes("minimax-m2"))return 1;if(Z.includes("kimi-k2")){if(["thinking","k2.","k2p","k2-5"].some((J)=>Z.includes(J)))return 1;return 0.6}return}function sm($){let Z=$.id.toLowerCase();if(Z.includes("qwen"))return 1;if(["minimax-m2","gemini","kimi-k2.5","kimi-k2p5","kimi-k2-5"].some((J)=>Z.includes(J)))return 0.95;return}function rm($){let Z=$.id.toLowerCase();if(Z.includes("minimax-m2")){if(["m2.","m25","m21"].some((J)=>Z.includes(J)))return 40;return 20}if(Z.includes("gemini"))return 64;return}function am($){let Z={};if($.model.providerID==="openai"||$.model.api.npm==="@ai-sdk/openai"||$.model.api.npm==="@ai-sdk/github-copilot")Z.store=!1;if($.model.api.npm==="@ai-sdk/azure")Z.store=!0,Z.promptCacheKey=$.sessionID;if($.model.api.npm==="@openrouter/ai-sdk-provider"||$.model.api.npm==="@llmgateway/ai-sdk-provider"){if(Z.usage={include:!0},$.model.api.id.includes("gemini-3"))Z.reasoning={effort:"high"}}if($.model.providerID==="baseten"||$.model.providerID==="opencode"&&["kimi-k2-thinking","glm-4.6"].includes($.model.api.id))Z.chat_template_args={enable_thinking:!0};if(["zai","zhipuai"].some((Y)=>$.model.providerID.includes(Y))&&$.model.api.npm==="@ai-sdk/openai-compatible")Z.thinking={type:"enabled",clear_thinking:!1};if($.model.providerID==="openai"||$.providerOptions?.setCacheKey)Z.promptCacheKey=$.sessionID;if($.model.api.npm==="@ai-sdk/google"||$.model.api.npm==="@ai-sdk/google-vertex"){if($.model.capabilities.reasoning){if(Z.thinkingConfig={includeThoughts:!0},$.model.api.id.includes("gemini-3"))Z.thinkingConfig.thinkingLevel="high"}}let J=$.model.api.id.toLowerCase();if(($.model.api.npm==="@ai-sdk/anthropic"||$.model.api.npm==="@ai-sdk/google-vertex/anthropic")&&(J.includes("k2p5")||J.includes("kimi-k2.5")||J.includes("kimi-k2p5")))Z.thinking={type:"enabled",budgetTokens:Math.max(1,Math.min(16000,Math.floor($.model.limit.output/2-1)))};if($.model.providerID==="alibaba-cn"&&$.model.capabilities.reasoning&&$.model.api.npm==="@ai-sdk/openai-compatible"&&!J.includes("kimi-k2-thinking"))Z.enable_thinking=!0;if($.model.api.id.includes("gpt-5")&&!$.model.api.id.includes("gpt-5-chat")){if(!$.model.api.id.includes("gpt-5-pro")){if(Z.reasoningEffort="medium",$.model.api.npm==="@ai-sdk/openai"||$.model.api.npm==="@ai-sdk/azure"||$.model.api.npm==="@ai-sdk/github-copilot")Z.reasoningSummary="auto"}if($.model.api.id.includes("gpt-5.")&&!$.model.api.id.includes("codex")&&!$.model.api.id.includes("-chat")&&$.model.providerID!=="azure")Z.textVerbosity="low";if($.model.providerID.startsWith("opencode"))Z.promptCacheKey=$.sessionID,Z.include=["reasoning.encrypted_content"],Z.reasoningSummary="auto"}if($.model.providerID==="venice")Z.promptCacheKey=$.sessionID;if($.model.providerID==="openrouter")Z.prompt_cache_key=$.sessionID;if($.model.api.npm==="@ai-sdk/gateway")Z.gateway={caching:"auto"};return Z}function tm($){if($.providerID==="openai"||$.api.npm==="@ai-sdk/openai"||$.api.npm==="@ai-sdk/github-copilot"){if($.api.id.includes("gpt-5")){if($.api.id.includes("5.")||$.api.id.includes("5-mini"))return{store:!1,reasoningEffort:"low"};return{store:!1,reasoningEffort:"minimal"}}return{store:!1}}if($.providerID==="google"){if($.api.id.includes("gemini-3"))return{thinkingConfig:{thinkingLevel:"minimal"}};return{thinkingConfig:{thinkingBudget:0}}}if($.providerID==="openrouter"||$.providerID==="llmgateway"){if($.api.id.includes("google"))return{reasoning:{enabled:!1}};return{reasoningEffort:"minimal"}}if($.providerID==="venice")return{veniceParameters:{disableThinking:!0}};return{}}var UN0={amazon:"bedrock"};function em($,Z){if($.api.npm==="@ai-sdk/gateway"){let Y=$.api.id.indexOf("/"),X=Y>0?$.api.id.slice(0,Y):void 0,Q=X?UN0[X]??X:void 0,G=Z.gateway,W=Object.fromEntries(Object.entries(Z).filter(([U])=>U!=="gateway")),K=Object.keys(W).length>0,V={};if(G!==void 0)V.gateway=G;if(K)if(Q)V[Q]=W;else if(G&&typeof G==="object"&&!Array.isArray(G))V.gateway={...G,...W};else V.gateway=W;return V}let J=RK($.api.npm)??$.providerID;if($.api.npm==="@ai-sdk/azure")return{openai:Z,azure:Z};return{[J]:Z}}function $l($,Z){return Math.min($.limit.output,Z)||Z}function Zl($){return om($)}function Jl($){return sm($)}function Yl($){return rm($)}function Xl($){return am($)}function Ql($){return tm($)}function Gl($,Z){return em($,Z)}function Wl($){return $l($,PK)}function HN0($){let Z=$,J=Z.anyOf??Z.oneOf;if(!J?.length)return $;let Y=new Map;for(let W of J){if(!W.properties)continue;for(let[K,V]of Object.entries(W.properties))if(V&&typeof V==="object"&&"const"in V){if(!Y.has(K))Y.set(K,new Set);Y.get(K).add(V.const)}}let X;for(let[W,K]of Y)if(K.size===J.length){X=W;break}let Q={},G={};for(let W of J){if(!W.properties)continue;let K=X?W.properties[X]?.const:void 0;for(let[V,U]of Object.entries(W.properties)){if(V===X)continue;if(!(V in Q))Q[V]=U;if(K!==void 0){if(!G[V])G[V]=[];G[V].push(K)}}}if(X)for(let[W,K]of Object.entries(G)){if(K.length===J.length)continue;let V=`(only when ${X}=${K.map((H)=>JSON.stringify(H)).join("|")})`,U=Q[W].description;Q[W]={...Q[W],description:U?`${V} ${U}`:V}}if(X){let W=J[0].properties[X],K=J.map((H)=>H.properties[X]?.const),V=W?.description??"",U=J.map((H)=>{let B=H.properties[X]?.const,z=(H.required??[]).filter((F)=>F!==X);return z.length>0?`${B}: requires ${z.join(", ")}`:`${B}: no extra required fields`}).join("; ");Q[X]={type:"string",enum:K,description:V?`${V}
792
792
 
793
- Per-${X}: ${U}.`:`Per-${X}: ${U}.`}}return{type:"object",properties:Q,required:X?[X]:[],additionalProperties:!1}}function Kl($,Z){if(Z=HN0(Z),$.providerID==="google"||$.api.id.includes("gemini")){let J=(G)=>typeof G==="object"&&G!==null&&!Array.isArray(G),Y=(G)=>J(G)&&(Array.isArray(G.anyOf)||Array.isArray(G.oneOf)||Array.isArray(G.allOf)),X=(G)=>{if(!J(G))return!1;if(Y(G))return!0;return["type","properties","items","prefixItems","enum","const","$ref","additionalProperties","patternProperties","required","not","if","then","else"].some((W)=>(W in G))},Q=(G)=>{if(G===null||typeof G!=="object")return G;if(Array.isArray(G))return G.map(Q);let W={};for(let[K,V]of Object.entries(G))if(K==="enum"&&Array.isArray(V)){if(W[K]=V.map((U)=>String(U)),W.type==="integer"||W.type==="number")W.type="string"}else if(typeof V==="object"&&V!==null)W[K]=Q(V);else W[K]=V;if(W.type==="object"&&W.properties&&Array.isArray(W.required))W.required=W.required.filter((K)=>(K in W.properties));if(W.type==="array"&&!Y(W)){if(W.items==null)W.items={};if(J(W.items)&&!X(W.items))W.items.type="string"}if(W.type&&W.type!=="object"&&!Y(W))delete W.properties,delete W.required;return W};Z=Q(Z)}return Z}function Vl($,Z){return Kl($,Z)}var vA=1e6,IK=new Set(c8.tiers().map(($)=>$.id)),Bl=c8.tiers(),M7=Object.fromEntries(Bl.map(($)=>[$.id,{providerID:$.providerID,modelID:$.modelID}])),b8=c8.qlexProviderMeta();function zl($,Z){return{id:s1.make($),providerID:X1.make("qlex"),name:Z,family:b8.family,api:{id:$,url:"",npm:b8.npm},status:"active",headers:{},options:{},cost:{input:0,output:0,cache:{read:0,write:0}},limit:{context:b8.limit.context,output:b8.limit.output},capabilities:{temperature:b8.capabilities.temperature,reasoning:b8.capabilities.reasoning,attachment:b8.capabilities.attachment,toolcall:b8.capabilities.toolcall,input:{...b8.capabilities.input},output:{...b8.capabilities.output},interleaved:b8.capabilities.interleaved},release_date:b8.release_date,variants:{}}}var V9={id:X1.make("qlex"),name:b8.name,source:"custom",env:[],options:{},models:Object.fromEntries(Bl.map(($)=>[$.id,zl($.id,$.label)]))};function Fl(){let $=c8.tiers();IK.clear();for(let J of $)IK.add(J.id);for(let J of Object.keys(M7))delete M7[J];Object.assign(M7,Object.fromEntries($.map((J)=>[J.id,{providerID:J.providerID,modelID:J.modelID}])));let Z=V9.models;for(let J of Object.keys(Z))delete Z[J];Object.assign(V9.models,Object.fromEntries($.map((J)=>[J.id,zl(J.id,J.label)])))}var yA=new Set;function Al($){let Z={input:$?.input??0,output:$?.output??0,cache:{read:$?.cache_read??0,write:$?.cache_write??0}};if($?.context_over_200k)Z.experimentalOver200K={cache:{read:$.context_over_200k.cache_read??0,write:$.context_over_200k.cache_write??0},input:$.context_over_200k.input,output:$.context_over_200k.output};return Z}function Ul($,Z){let J={id:s1.make(Z.id),providerID:X1.make($.id),name:Z.name,family:Z.family,api:{id:Z.id,url:Z.provider?.api??$.api??"",npm:Z.provider?.npm??$.npm??"@ai-sdk/openai-compatible"},status:Z.status??"active",headers:{},options:{},cost:Al(Z.cost),limit:{context:Z.limit.context,input:Z.limit.input,output:Z.limit.output},capabilities:{temperature:Z.temperature??!1,reasoning:Z.reasoning??!1,attachment:Z.attachment??!1,toolcall:Z.tool_call??!0,input:{text:Z.modalities?.input?.includes("text")??!1,audio:Z.modalities?.input?.includes("audio")??!1,image:Z.modalities?.input?.includes("image")??!1,video:Z.modalities?.input?.includes("video")??!1,pdf:Z.modalities?.input?.includes("pdf")??!1},output:{text:Z.modalities?.output?.includes("text")??!1,audio:Z.modalities?.output?.includes("audio")??!1,image:Z.modalities?.output?.includes("image")??!1,video:Z.modalities?.output?.includes("video")??!1,pdf:Z.modalities?.output?.includes("pdf")??!1},interleaved:Z.interleaved??!1},release_date:Z.release_date??"",variants:{}};return{...J,variants:v6(W5(J),(Y)=>Y)}}function CK($){let Z={};for(let[J,Y]of Object.entries($.models)){Z[J]=Ul($,Y);for(let[X,Q]of Object.entries(Y.experimental?.modes??{})){let G=`${Y.id}-${X}`,W=Ul($,Y);Z[G]={...W,id:s1.make(G),name:`${Y.name} ${X[0].toUpperCase()}${X.slice(1)}`,cost:Q.cost?N1(W.cost,Al(Q.cost)):W.cost,options:Q.provider?.body?Object.fromEntries(Object.entries(Q.provider.body).map(([K,V])=>[K.replace(/_([a-z])/g,(U,H)=>H.toUpperCase()),V])):W.options,headers:Q.provider?.headers??W.headers}}}return{id:X1.make($.id),source:"custom",name:$.name,env:$.env??[],options:{},models:Z}}function Ol($){return v6($,(Z)=>U9(Object.values(Z.models))[0].id)}var BN0=["gpt-5.5","gpt-5","claude-sonnet-4","gemini-3-pro"];function U9($){return Hl($,[(Z)=>BN0.findIndex((J)=>Z.id.includes(J)),"desc"],[(Z)=>Z.id.includes("latest")?0:1,"asc"],[(Z)=>Z.id,"desc"])}function K5($){let[Z,...J]=$.split("/");return{providerID:X1.make(Z),modelID:s1.make(J.join("/"))}}var HY=q1.create("ProviderModelNotFoundError",I.object({providerID:X1.zod,modelID:s1.zod,suggestions:I.array(I.string()).optional()})),EK=q1.create("ProviderModelGroupNotFoundError",I.object({group:I.string(),suggestions:I.array(I.string()).optional()})),bK=q1.create("ProviderInitError",I.object({providerID:X1.zod}));function jl($){let{getState:Z,config:J,readRecent:Y}=$,X=L.fn("Provider.getProvider")((U)=>Z().pipe(L.map((H)=>H.providers[U]))),Q=L.fn("Provider.getModel")(function*(U,H){let B=yield*Z(),z=B.providers[U];if(!z){let A=Object.keys(B.providers),q=_K.default.go(U,A,{limit:3,threshold:-1e4});throw new HY({providerID:U,modelID:H,suggestions:q.map((N)=>N.target)})}let F=z.models[H];if(!F){let A=Object.keys(z.models),q=_K.default.go(H,A,{limit:3,threshold:-1e4});throw new HY({providerID:U,modelID:H,suggestions:q.map((N)=>N.target)})}return F}),G=L.fn("Provider.closest")(function*(U,H){let z=(yield*Z()).providers[U];if(!z)return;for(let F of H)for(let A of Object.keys(z.models))if(A.includes(F))return{providerID:U,modelID:A};return}),W=L.fn("Provider.resolveModelRef")(function*(U,H){if(U.includes("/")){let N=K5(U);return yield*Q(N.providerID,N.modelID)}let B=yield*J.get(),z=B.model_groups?.[U];if(!z){if(IK.has(U)){let j=M7[U];if(j){let C=yield*Q(X1.make(j.providerID),s1.make(j.modelID)).pipe(L.exit);if(C._tag==="Success")return C.value}let M=yield*V();return yield*Q(M.providerID,M.modelID)}let N=Object.keys(B.model_groups??{}),w=_K.default.go(U,N,{limit:3,threshold:-1e4});throw new EK({group:U,suggestions:w.map((j)=>j.target)})}let F=typeof z==="string"?z:z.default,A=typeof z==="string"?[z]:z.models??[z.default];if(H)for(let N of A){let w=K5(N);if(w.providerID!==H)continue;let j=yield*Q(w.providerID,w.modelID).pipe(L.exit);if(j._tag==="Success")return j.value}let q=K5(F);return yield*Q(q.providerID,q.modelID)}),K=L.fn("Provider.getSmallModel")(function*(U){let H=yield*J.get();if(H.small_model){let B=K5(H.small_model);return yield*Q(B.providerID,B.modelID)}for(let B of["lite","free","economical"]){if(H.model_groups?.[B])return yield*W(B,U);let F=M7[B];if(F){let A=yield*Q(X1.make(F.providerID),s1.make(F.modelID)).pipe(L.exit);if(A._tag==="Success")return A.value}}return yield*W("economical",U)}),V=L.fn("Provider.defaultModel")(function*(){let U=yield*J.get();if(U.model)return K5(U.model);let H=yield*Z(),B=yield*Y().pipe(L.map((A)=>{if(!J8(A)||!Array.isArray(A.recent))return[];return A.recent.flatMap((q)=>{if(!J8(q))return[];if(typeof q.providerID!=="string")return[];if(typeof q.modelID!=="string")return[];return[{providerID:X1.make(q.providerID),modelID:s1.make(q.modelID)}]})}),L.catch(()=>L.succeed([])));for(let A of B){let q=H.providers[A.providerID];if(!q)continue;if(!q.models[A.modelID])continue;return{providerID:A.providerID,modelID:A.modelID}}for(let A of["default","fast","economical","power"]){let q=M7[A];if(!q)continue;let N=H.providers[X1.make(q.providerID)];if(N?.models[s1.make(q.modelID)])return{providerID:N.id,modelID:s1.make(q.modelID)}}let z=Object.values(H.providers).find((A)=>!U.provider||Object.keys(U.provider).includes(A.id));if(!z)throw Error("no providers found");let[F]=U9(Object.values(z.models));if(!F)throw Error("no models found");return{providerID:z.id,modelID:F.id}});return{getProvider:X,getModel:Q,closest:G,resolveModelRef:W,getSmallModel:K,defaultModel:V}}var SK=480000;function ql($,Z,J){if(typeof Z!=="number"||Z<=0)return $;if(!$.body)return $;if(!$.headers.get("content-type")?.includes("text/event-stream"))return $;let Y=$.body.getReader(),X=new ReadableStream({async pull(Q){let G=await new Promise((W,K)=>{let V=setTimeout(()=>{let U=Error("SSE read timed out");J.abort(U),Y.cancel(U),K(U)},Z);Y.read().then((U)=>{clearTimeout(V),W(U)},(U)=>{clearTimeout(V),K(U)})});if(G.done){Q.close();return}Q.enqueue(G.value)},async cancel(Q){J.abort(Q),await Y.cancel(Q)}});return new Response(X,{headers:new Headers($.headers),status:$.status,statusText:$.statusText})}import jZ from"os";var BY=E0.create({service:"provider/loaders"}),fK=new Map,Ll={"@qitqode/qlex-provider":()=>import("./chunk-18bj8z8m.js").then(($)=>$.createQlexProvider),"@ai-sdk/amazon-bedrock":()=>import("./chunk-1vb79bw1.js").then(($)=>$.createAmazonBedrock),"@ai-sdk/anthropic":()=>import("./chunk-t56r99hp.js").then(($)=>$.createAnthropic),"@ai-sdk/azure":()=>import("./chunk-7z5jh4ra.js").then(($)=>$.createAzure),"@ai-sdk/google":()=>import("./chunk-fn9h4ync.js").then(($)=>$.createGoogleGenerativeAI),"@ai-sdk/google-vertex":()=>import("./chunk-h2afsbm1.js").then(($)=>$.createVertex),"@ai-sdk/google-vertex/anthropic":()=>import("./chunk-nv3eyyaj.js").then(($)=>$.createVertexAnthropic),"@ai-sdk/openai":()=>import("./chunk-b8gjz6bk.js").then(($)=>$.createOpenAI),"@ai-sdk/openai-compatible":()=>import("./chunk-c26qxt5g.js").then(($)=>$.createOpenAICompatible),"@openrouter/ai-sdk-provider":()=>import("./chunk-yhbcbjfk.js").then(($)=>$.createOpenRouter),"@ai-sdk/xai":()=>import("./chunk-vywnd5sf.js").then(($)=>$.createXai),"@ai-sdk/mistral":()=>import("./chunk-71sjjjr8.js").then(($)=>$.createMistral),"@ai-sdk/groq":()=>import("./chunk-7avcnwv8.js").then(($)=>$.createGroq),"@ai-sdk/deepinfra":()=>import("./chunk-12vef2pr.js").then(($)=>$.createDeepInfra),"@ai-sdk/cerebras":()=>import("./chunk-db405hjg.js").then(($)=>$.createCerebras),"@ai-sdk/cohere":()=>import("./chunk-73e409hd.js").then(($)=>$.createCohere),"@ai-sdk/gateway":()=>import("./chunk-ngm6pqyt.js").then(($)=>$.createGateway),"@ai-sdk/togetherai":()=>import("./chunk-ss2ms1r3.js").then(($)=>$.createTogetherAI),"@ai-sdk/perplexity":()=>import("./chunk-gwp17r03.js").then(($)=>$.createPerplexity),"@ai-sdk/vercel":()=>import("./chunk-rzhdkkpz.js").then(($)=>$.createVercel),"@ai-sdk/alibaba":()=>import("./chunk-fgg9txzb.js").then(($)=>$.createAlibaba),"gitlab-ai-provider":()=>import("./chunk-kfxv5rfg.js").then(($)=>$.createGitLab),"@ai-sdk/github-copilot":()=>import("./chunk-y3b4k38p.js").then(($)=>$.createOpenaiCompatible),"venice-ai-sdk-provider":()=>import("./chunk-6phh70sp.js").then(($)=>$.createVenice)};function Tl($){return $.responses===void 0&&$.chat===void 0}function zN0($){let Z=/^gpt-(\d+)/.exec($);if(!Z)return!1;return Number(Z[1])>=5&&!$.startsWith("gpt-5-mini")}async function Nl($,Z,J){if(Tl($))return $.languageModel(Z);if(J?.useCompletionUrls)return $.chat(Z);else return $.responses(Z)}function Ml($,Z){return $.CLOUDFLARE_ACCOUNT_ID||(Z?.type==="api"?Z.metadata?.accountId:void 0)}function Rl($){return{qlex:L.fnUntraced(function*(){return{autoload:!0,options:{getToken:Dl,onInvalidCredentials:async()=>{if(process.env.QITQODE_KEY)BY.error(xA),console.error(xA);try{await wl()}catch{}}},async getModel(Y,X){return Y.languageModel(X)}}}),anthropic:()=>L.succeed({autoload:!1,options:{headers:{"anthropic-beta":"interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14"}}}),opencode:L.fnUntraced(function*(Z){let J=yield*$.env(),X=l$(()=>{if(Z.env.some((Q)=>J[Q]))return!0;return!1})||Boolean(yield*$.auth(Z.id))||Boolean((yield*$.config()).provider?.opencode?.options?.apiKey);for(let[Q,G]of Object.entries(Z.models))if(!X||G.cost.input===0)delete Z.models[Q];return{autoload:Object.keys(Z.models).length>0,options:{}}}),openai:()=>L.succeed({autoload:!1,async getModel(Z,J,Y){return Z.responses(J)},options:{}}),xai:()=>L.succeed({autoload:!1,async getModel(Z,J,Y){return Z.responses(J)},options:{}}),"github-copilot":()=>L.succeed({autoload:!1,async getModel(Z,J,Y){if(Tl(Z))return Z.languageModel(J);return zN0(J)?Z.responses(J):Z.chat(J)},options:{}}),azure:L.fnUntraced(function*(Z){let J=yield*$.env(),Y=l$(()=>{let X=Z.options?.resourceName;if(typeof X==="string"&&X.trim()!=="")return X;return J.AZURE_RESOURCE_NAME});return{autoload:!1,getModel:Nl,options:{},vars(X){return{...Y&&{AZURE_RESOURCE_NAME:Y}}}}}),"azure-cognitive-services":L.fnUntraced(function*(){let Z=yield*$.get("AZURE_COGNITIVE_SERVICES_RESOURCE_NAME");return{autoload:!1,getModel:Nl,options:{baseURL:Z?`https://${Z}.cognitiveservices.azure.com/openai`:void 0}}}),"amazon-bedrock":L.fnUntraced(function*(){let Z=(yield*$.config()).provider?.["amazon-bedrock"],J=yield*$.auth("amazon-bedrock"),Y=yield*$.env(),X=Z?.options?.region,Q=Y.AWS_REGION,G=X??Q??"us-east-1",W=Z?.options?.profile,K=Y.AWS_PROFILE,V=W??K,U=Y.AWS_ACCESS_KEY_ID,H=l$(()=>{let N=fK.get("AWS_BEARER_TOKEN_BEDROCK");if(N)return N;if(J?.type==="api")return fK.set("AWS_BEARER_TOKEN_BEDROCK",J.key),process.env.AWS_BEARER_TOKEN_BEDROCK=J.key,J.key;return}),B=Y.AWS_WEB_IDENTITY_TOKEN_FILE,z=Boolean(process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI||process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI);if(!V&&!U&&!H&&!B&&!z)return{autoload:!1};let{fromNodeProviderChain:F}=yield*L.promise(()=>import("./chunk-5q4harvc.js")),A={region:G};if(!H){let N=V?{profile:V}:{};A.credentialProvider=F(N)}let q=Z?.options?.endpoint??Z?.options?.baseURL;if(q)A.baseURL=q;return{autoload:!0,options:A,async getModel(N,w,j){if(["global.","us.","eu.","jp.","apac.","au."].some((T)=>w.startsWith(T)))return N.languageModel(w);let C=j?.region??G,R=C.split("-")[0];switch(R){case"us":{let T=["nova-micro","nova-lite","nova-pro","nova-premier","nova-2","claude","deepseek"].some((_)=>w.includes(_)),P=C.startsWith("us-gov");if(T&&!P)w=`${R}.${w}`;break}case"eu":{let T=["eu-west-1","eu-west-2","eu-west-3","eu-north-1","eu-central-1","eu-south-1","eu-south-2"].some((_)=>C.includes(_)),P=["claude","nova-lite","nova-micro","llama3","pixtral"].some((_)=>w.includes(_));if(T&&P)w=`${R}.${w}`;break}case"ap":{let T=["ap-southeast-2","ap-southeast-4"].includes(C),P=C==="ap-northeast-1";if(T&&["anthropic.claude-sonnet-4-5","anthropic.claude-haiku"].some((_)=>w.includes(_)))R="au",w=`${R}.${w}`;else if(P){if(["claude","nova-lite","nova-micro","nova-pro"].some((E)=>w.includes(E)))R="jp",w=`${R}.${w}`}else if(["claude","nova-lite","nova-micro","nova-pro"].some((E)=>w.includes(E)))R="apac",w=`${R}.${w}`;break}}return N.languageModel(w)}}}),llmgateway:()=>L.succeed({autoload:!1,options:{headers:{"X-Source":"qitqode"}}}),openrouter:()=>L.succeed({autoload:!1,options:{headers:{"X-OpenRouter-Categories":"programming,programming-app,cli-agent"}}}),nvidia:()=>L.succeed({autoload:!1,options:{}}),vercel:()=>L.succeed({autoload:!1,options:{}}),"google-vertex":L.fnUntraced(function*(Z){let J=yield*$.env(),Y=Z.options?.project??J.GOOGLE_CLOUD_PROJECT??J.GCP_PROJECT??J.GCLOUD_PROJECT,X=String(Z.options?.location??J.GOOGLE_VERTEX_LOCATION??J.GOOGLE_CLOUD_LOCATION??J.VERTEX_LOCATION??"us-central1");if(!Boolean(Y))return{autoload:!1};return{autoload:!0,vars(G){let W=X==="global"?"aiplatform.googleapis.com":`${X}-aiplatform.googleapis.com`;return{...Y&&{GOOGLE_VERTEX_PROJECT:Y},GOOGLE_VERTEX_LOCATION:X,GOOGLE_VERTEX_ENDPOINT:W}},options:{project:Y,location:X,fetch:async(G,W)=>{let{GoogleAuth:K}=await import("./chunk-b6087ak4.js").then((m)=>m6(m.default,1)),H=await(await new K().getApplicationDefault()).credential.getAccessToken(),B=new Headers(W?.headers);return B.set("Authorization",`Bearer ${H.token}`),fetch(G,{...W,headers:B})}},async getModel(G,W){let K=String(W).trim();return G.languageModel(K)}}}),"google-vertex-anthropic":L.fnUntraced(function*(){let Z=yield*$.env(),J=Z.GOOGLE_CLOUD_PROJECT??Z.GCP_PROJECT??Z.GCLOUD_PROJECT,Y=Z.GOOGLE_CLOUD_LOCATION??Z.VERTEX_LOCATION??"global";if(!Boolean(J))return{autoload:!1};return{autoload:!0,options:{project:J,location:Y},async getModel(Q,G){let W=String(G).trim();return Q.languageModel(W)}}}),"sap-ai-core":L.fnUntraced(function*(){let Z=yield*$.auth("sap-ai-core"),J=l$(()=>{let Q=fK.get("AICORE_SERVICE_KEY");if(Q)return Q;if(Z?.type==="api")return fK.set("AICORE_SERVICE_KEY",Z.key),process.env.AICORE_SERVICE_KEY=Z.key,Z.key;return}),Y=process.env.AICORE_DEPLOYMENT_ID,X=process.env.AICORE_RESOURCE_GROUP;return{autoload:!!J,options:J?{deploymentId:Y,resourceGroup:X}:{},async getModel(Q,G){return Q(G)}}}),zenmux:()=>L.succeed({autoload:!1,options:{}}),gitlab:L.fnUntraced(function*(Z){let{VERSION:J,isWorkflowModel:Y,discoverWorkflowModels:X}=yield*L.promise(()=>import("./chunk-kfxv5rfg.js")),Q=(yield*$.get("GITLAB_INSTANCE_URL"))||"https://gitlab.com",G=yield*$.auth(Z.id),W=yield*L.sync(()=>{if(G?.type==="oauth")return G.access;if(G?.type==="api")return G.key;return}),K=W??(yield*$.get("GITLAB_TOKEN")),V=(yield*$.config()).provider?.gitlab,U=yield*B0.directory,H={"User-Agent":`qitqode/${O$} gitlab-ai-provider/${J} (${jZ.platform()} ${jZ.release()}; ${jZ.arch()})`,"anthropic-beta":"context-1m-2025-08-07",...V?.options?.aiGatewayHeaders},B={duo_agent_platform_agentic_chat:!0,duo_agent_platform:!0,...V?.options?.featureFlags};return{autoload:!!K,options:{instanceUrl:Q,apiKey:K,aiGatewayHeaders:H,featureFlags:B},async getModel(z,F,A){if(F.startsWith("duo-workflow-")){let q=typeof A?.workflowRef==="string"?A.workflowRef:void 0,N=Y(F)?F:"duo-workflow",w=typeof A?.workflowDefinition==="string"?A.workflowDefinition:void 0,j=z.workflowChat(N,{featureFlags:B,workflowDefinition:w});if(q)j.selectedModelRef=q;return j}return z.agenticChat(F,{aiGatewayHeaders:H,featureFlags:B})},async discoverModels(){if(!W)return BY.info("gitlab model discovery skipped: no apiKey"),{};try{let z=W,F=()=>G?.type==="api"?{"PRIVATE-TOKEN":z}:{Authorization:`Bearer ${z}`};BY.info("gitlab model discovery starting",{instanceUrl:Q});let A=await X({instanceUrl:Q,getHeaders:F},{workingDirectory:U});if(!A.models.length)return BY.info("gitlab model discovery skipped: no models found",{project:A.project?{id:A.project.id,path:A.project.pathWithNamespace}:null}),{};let q={};for(let N of A.models)if(!Z.models[N.id])q[N.id]={id:s1.make(N.id),providerID:X1.make("gitlab"),name:`Agent Platform (${N.name})`,family:"",api:{id:N.id,url:Q,npm:"gitlab-ai-provider"},status:"active",headers:{},options:{workflowRef:N.ref},cost:{input:0,output:0,cache:{read:0,write:0}},limit:{context:N.context,output:N.output},capabilities:{temperature:!1,reasoning:!0,attachment:!0,toolcall:!0,input:{text:!0,audio:!1,image:!0,video:!1,pdf:!0},output:{text:!0,audio:!1,image:!1,video:!1,pdf:!1},interleaved:!1},release_date:"",variants:{}};return BY.info("gitlab model discovery complete",{count:Object.keys(q).length,models:Object.keys(q)}),q}catch(z){return BY.warn("gitlab model discovery failed",{error:z}),{}}}}}),"cloudflare-workers-ai":L.fnUntraced(function*(Z){if(Z.options?.baseURL)return{autoload:!1};let J=yield*$.auth(Z.id),Y=yield*$.env(),X=Ml(Y,J);if(!X)return{autoload:!1,async getModel(){throw Error("CLOUDFLARE_ACCOUNT_ID is missing. Set it with: export CLOUDFLARE_ACCOUNT_ID=<your-account-id>")}};let Q=yield*L.gen(function*(){let G=Y.CLOUDFLARE_API_KEY;if(G)return G;if(J?.type==="api")return J.key;return});return{autoload:!!Q,options:{apiKey:Q,headers:{"User-Agent":`qitqode/${O$} cloudflare-workers-ai (${jZ.platform()} ${jZ.release()}; ${jZ.arch()})`}},async getModel(G,W){return G.languageModel(W)},vars(G){return{CLOUDFLARE_ACCOUNT_ID:X}}}}),"cloudflare-ai-gateway":L.fnUntraced(function*(Z){if(Z.options?.baseURL)return{autoload:!1};let J=yield*$.auth(Z.id),Y=yield*$.env(),X=Ml(Y,J),Q=Y.CLOUDFLARE_GATEWAY_ID||(J?.type==="api"?J.metadata?.gatewayId:void 0);if(!X||!Q){let z=[!X?"CLOUDFLARE_ACCOUNT_ID":void 0,!Q?"CLOUDFLARE_GATEWAY_ID":void 0].filter((F)=>Boolean(F));return{autoload:!1,async getModel(){throw Error(`${z.join(" and ")} missing. Set with: ${z.map((F)=>`export ${F}=<value>`).join(" && ")}`)}}}let G=yield*L.gen(function*(){let z=Y.CLOUDFLARE_API_TOKEN||Y.CF_AIG_TOKEN;if(z)return z;if(J?.type==="api")return J.key;return});if(!G)throw Error("CLOUDFLARE_API_TOKEN (or CF_AIG_TOKEN) is required for Cloudflare AI Gateway. Set it via environment variable or run `qitqode auth cloudflare-ai-gateway`.");let{createAiGateway:W}=yield*L.promise(()=>import("./chunk-9f1z9xce.js")),{createUnified:K}=yield*L.promise(()=>import("./chunk-rpgne7xh.js")),U={metadata:l$(()=>{if(Z.options?.metadata)return Z.options.metadata;try{return JSON.parse(Z.options?.headers?.["cf-aig-metadata"])}catch{return}}),cacheTtl:Z.options?.cacheTtl,cacheKey:Z.options?.cacheKey,skipCache:Z.options?.skipCache,collectLog:Z.options?.collectLog,headers:{"User-Agent":`qitqode/${O$} cloudflare-ai-gateway (${jZ.platform()} ${jZ.release()}; ${jZ.arch()})`}},H=W({accountId:X,gateway:Q,apiKey:G,...Object.values(U).some((z)=>z!==void 0)?{options:U}:{}}),B=K();return{autoload:!0,async getModel(z,F,A){return H(B(F))},options:{}}}),cerebras:()=>L.succeed({autoload:!1,options:{headers:{"X-Cerebras-3rd-Party-Integration":"qitqode"}}}),kilo:()=>L.succeed({autoload:!1,options:{}})}}import{pathToFileURL as FN0}from"url";var hA=E0.create({service:"provider.sdk-runtime"});async function Pl($,Z,J){try{let Y=[];try{const W=kK(Y,hA.time("getSDK",{providerID:$.providerID}),0);let K=Z.providers[$.providerID];let V={...K.options};if($.providerID==="google-vertex"&&!$.api.npm.includes("@ai-sdk/openai-compatible"))delete V.fetch;if($.api.npm.includes("@ai-sdk/openai-compatible")&&V.includeUsage!==!1)V.includeUsage=!0;let U=l$(()=>{let R=typeof V.baseURL==="string"&&V.baseURL!==""?V.baseURL:$.api.url;if(!R)return;let T=Z.varsLoaders[$.providerID];if(T){let P=T(V);for(let[_,E]of Object.entries(P)){let f="${"+_+"}";R=R.replaceAll(f,E)}}return R});if(U!==void 0)V.baseURL=U;if(V.apiKey===void 0&&typeof K.key==="string")V.apiKey=K.key;if($.headers)V.headers={...V.headers,...$.headers};let H=V.fetch;delete V.fetch;let B=A4.fast(JSON.stringify({providerID:$.providerID,npm:$.api.npm,options:V}));let z=Z.sdk.get(B);if(z)return z;let F=V.chunkTimeout;let A=typeof F==="number"?F:SK;delete V.chunkTimeout;V.fetch=async(R,T)=>{let P=H??fetch,_=T??{},E=typeof A==="number"&&A>0?new AbortController:void 0,f=[];if(_.signal)f.push(_.signal);if(E)f.push(E.signal);if(V.timeout!==void 0&&V.timeout!==null&&V.timeout!==!1)f.push(AbortSignal.timeout(V.timeout));let b=f.length===0?null:f.length===1?f[0]:AbortSignal.any(f);if(b)_.signal=b;if($.api.npm==="@ai-sdk/openai"&&_.body&&_.method==="POST"){let k=JSON.parse(_.body);if(!($.providerID.includes("azure")&&k.store===!0)&&Array.isArray(k.input)){for(let p of k.input)if("id"in p)delete p.id;_.body=JSON.stringify(k)}}let y=await P(R,{..._,timeout:!1});if(!E)return y;return ql(y,A,E)};let q=Ll[$.api.npm];if(q){hA.info("using bundled provider",{providerID:$.providerID,pkg:$.api.npm});let T=(await q())({name:$.providerID,...V});return Z.sdk.set(B,T),T}let N;if(!$.api.npm.startsWith("file://")){let R=await j6.add($.api.npm);if(!R.entrypoint)throw Error(`Package ${$.api.npm} has no import entrypoint`);N=R.entrypoint}else hA.info("loading local provider",{pkg:$.api.npm}),N=$.api.npm;let w=N.startsWith("file://")?N:FN0(N).href;let j=await import(w);let M=j[Object.keys(j).find((R)=>R.startsWith("create"))];let C=M({name:$.providerID,...V});Z.sdk.set(B,C);return C}catch(X){var Q=X,G=1}finally{vK(Y,Q,G)}}catch(W){throw new bK({providerID:$.providerID},{cause:W})}}function Il($){let Z={};function J(Y,X){let Q=Z[Y];if(Q){Z[Y]=N1(Q,X);return}let G=$[Y];if(!G)return;Z[Y]=N1(G,X)}return{database:$,providers:Z,mergeProvider:J}}function Cl($){if($.enabled&&!$.enabled.has($.providerID))return!1;if($.disabled.has($.providerID))return!1;return!0}function El($,Z){let J=$.env.map((Y)=>Z[Y]).find(Boolean);if(!J)return;return{source:"env",key:$.env.length===1?J:void 0}}function bl($){if($.type!=="api")return;return{source:"api",key:$.key}}function gA($){return $.hasProvider?{options:$.options??{}}:{source:"custom",options:$.options??{}}}var AN0=E0.create({service:"provider.discovery.filter"});function _l($){for(let[Z,J]of Object.entries($.providers)){let Y=X1.make(Z);if(!$.isAllowed(Y)){delete $.providers[Y];continue}let X=$.overrides[Y];for(let[Q,G]of Object.entries(J.models)){if(G.api.id=G.api.id??G.id??Q,Q==="gpt-5-chat-latest"||Y===X1.openrouter&&Q==="openai/gpt-5-chat")delete J.models[Q];if(G.status==="alpha"&&!$.experimentalModels)delete J.models[Q];if(G.status==="deprecated")delete J.models[Q];if(X?.blacklist&&X.blacklist.includes(Q)||X?.whitelist&&!X.whitelist.includes(Q))delete J.models[Q];G.variants=v6(W5(G),(K)=>K);let W=X?.models?.[Q]?.variants;if(W&&G.variants){let K=N1(G.variants,W);G.variants=v6(yK(K,(V)=>!V.disabled),(V)=>xK(V,["disabled"]))}}if(Object.keys(J.models).length===0){delete $.providers[Y];continue}AN0.info("found",{providerID:Y})}return $.providers}var ON0=E0.create({service:"provider.discovery.config"});function Sl($){for(let[Z,J]of $.configProviders){let Y=$.database[Z],X={id:X1.make(Z),name:J.name??Y?.name??Z,env:J.env??Y?.env??[],options:N1(Y?.options??{},J.options??{}),source:"config",models:Y?.models??{}};for(let[Q,G]of Object.entries(J.models??{})){let W=X.models[G.id??Q],K=G.id??W?.api.id??Q,V=G.provider?.npm??J.npm??W?.api.npm??$.modelsDev[Z]?.npm??"@ai-sdk/openai-compatible",U=l$(()=>{if(G.name)return G.name;if(G.id&&G.id!==Q)return Q;return W?.name??Q}),H={id:s1.make(Q),api:{id:K,npm:V,url:G.provider?.api??J?.api??W?.api.url??$.modelsDev[Z]?.api??""},status:G.status??W?.status??"active",name:U,providerID:X1.make(Z),capabilities:{temperature:G.temperature??W?.capabilities.temperature??!1,reasoning:G.reasoning??W?.capabilities.reasoning??!1,attachment:G.attachment??W?.capabilities.attachment??!1,toolcall:G.tool_call??W?.capabilities.toolcall??!0,input:{text:G.modalities?.input?.includes("text")??W?.capabilities.input.text??!0,audio:G.modalities?.input?.includes("audio")??W?.capabilities.input.audio??!1,image:G.modalities?.input?.includes("image")??W?.capabilities.input.image??!1,video:G.modalities?.input?.includes("video")??W?.capabilities.input.video??!1,pdf:G.modalities?.input?.includes("pdf")??W?.capabilities.input.pdf??!1},output:{text:G.modalities?.output?.includes("text")??W?.capabilities.output.text??!0,audio:G.modalities?.output?.includes("audio")??W?.capabilities.output.audio??!1,image:G.modalities?.output?.includes("image")??W?.capabilities.output.image??!1,video:G.modalities?.output?.includes("video")??W?.capabilities.output.video??!1,pdf:G.modalities?.output?.includes("pdf")??W?.capabilities.output.pdf??!1},interleaved:G.interleaved??W?.capabilities.interleaved??(!W&&V==="@ai-sdk/openai-compatible"&&K.includes("deepseek")?{field:"reasoning_content"}:!1)},cost:{input:G?.cost?.input??W?.cost?.input??0,output:G?.cost?.output??W?.cost?.output??0,cache:{read:G?.cost?.cache_read??W?.cost?.cache.read??0,write:G?.cost?.cache_write??W?.cost?.cache.write??0}},options:N1(W?.options??{},G.options??{}),limit:{context:(()=>{let z=G.limit?.context??W?.limit?.context;if(z!==void 0)return z;let F=`${Z}/${Q}`;if(!yA.has(F))yA.add(F),ON0.warn("limit.context not configured and not found in models.dev",{providerID:Z,modelID:Q,defaulting_to:vA,fix:`Set limit.context explicitly in qitqode.json under provider.${Z}.models.${Q}`});return vA})(),input:G.limit?.input??W?.limit?.input,output:G.limit?.output??W?.limit?.output??0},headers:N1(W?.headers??{},G.headers??{}),family:G.family??W?.family??"",release_date:G.release_date??W?.release_date??"",cachePromptTTL:G.cachePromptTTL??W?.cachePromptTTL,variants:{}},B=N1(W5(H),G.variants??{});H.variants=v6(yK(B,(z)=>!z.disabled),(z)=>xK(z,["disabled"])),X.models[Q]=H}$.database[Z]=X}}var hK=E0.create({service:"provider.discovery"});function kl($){let{config:Z,auth:J,env:Y,plugin:X}=$;return L.gen(function*(){let E=[];try{const Q=kK(E,hK.time("state"),0);let G=yield*R7.make();let W=yield*Z.get();let K=yield*L.promise(()=>fl());let V=v6(K,CK);V[V9.id]=V9;let U=Il(V);let{providers:H,mergeProvider:B}=U;let z=new Map;let F={};let A={};let q=new Map;let N={};let w={auth:(k)=>J.get(k).pipe(L.orDie),config:()=>Z.get(),env:()=>Y.all(),get:(k)=>Y.get(k)};hK.info("init");let j=yield*X.list();let M=Object.entries(W.provider??{});let C=new Set(W.disabled_providers??[]);let R=W.enabled_providers?new Set(W.enabled_providers):null;let T=(k)=>Cl({providerID:k,enabled:R,disabled:C});Sl({database:V,modelsDev:K,configProviders:M});if(!b0.QITQODE_DISABLE_PROVIDER_ENV){let k=yield*Y.all();for(let[g,d]of Object.entries(V)){let p=X1.make(g);if(C.has(p))continue;let t=El(d,k);if(t)B(p,t)}}let P=yield*J.all().pipe(L.orDie);for(let[k,g]of Object.entries(P)){let d=X1.make(k);if(C.has(d))continue;let p=bl(g);if(p)B(d,p)}for(let k of j){if(!k.auth)continue;let g=X1.make(k.auth.provider);if(C.has(g))continue;if(!(yield*J.get(g).pipe(L.orDie)))continue;if(!k.auth.loader)continue;let t=(yield*L.promise(()=>k.auth.loader(()=>G.promise(J.get(g).pipe(L.orDie)),V[k.auth.provider])))??{};B(g,gA({options:t,hasProvider:Boolean(H[g])}))}for(let[k,g]of Object.entries(Rl(w))){let d=X1.make(k);if(C.has(d))continue;let p=V[d];if(!p){hK.error("Provider does not exist in model list "+d);continue}let t=yield*g(p);if(t&&(t.autoload||H[d])){if(t.getModel)F[d]=t.getModel;if(t.vars)A[d]=t.vars;if(t.discoverModels)N[d]=t.discoverModels;let r=t.options??{};B(d,gA({options:r,hasProvider:Boolean(H[d])}))}}for(let[k,g]of M){let d=X1.make(k),p={source:"config"};if(g.env)p.env=g.env;if(g.name)p.name=g.name;if(g.options)p.options=g.options;B(d,p)}let _=X1.make("gitlab");if(N[_]&&H[_]&&T(_))yield*L.promise(async()=>{try{let k=await N[_]();for(let[g,d]of Object.entries(k))if(!H[_].models[g])H[_].models[g]=d}catch(k){hK.warn("state discovery error",{id:"gitlab",error:k})}});for(let k of j){let g=k.provider,d=g?.models;if(!g||!d)continue;let p=X1.make(g.id);if(C.has(p))continue;let t=H[p];if(!t)continue;let r=yield*J.get(p).pipe(L.orDie);t.models=yield*L.promise(async()=>{let G0=await d(t,{auth:r});return Object.fromEntries(Object.entries(G0).map(([O0,h0])=>[O0,{...h0,id:s1.make(O0),providerID:p}]))})}_l({providers:H,overrides:W.provider??{},isAllowed:T,experimentalModels:b0.QITQODE_ENABLE_EXPERIMENTAL_MODELS});return{models:z,providers:H,sdk:q,modelLoaders:F,varsLoaders:A}}catch(f){var b=f,y=1}finally{vK(E,b,y)}})}var qN0=O.Struct({id:O.String,url:O.String,npm:O.String}),vl=O.Struct({text:O.Boolean,audio:O.Boolean,image:O.Boolean,video:O.Boolean,pdf:O.Boolean}),NN0=O.Union([O.Boolean,O.Struct({field:O.Literals(["reasoning_content","reasoning_details"])})]),MN0=O.Struct({temperature:O.Boolean,reasoning:O.Boolean,attachment:O.Boolean,toolcall:O.Boolean,input:vl,output:vl,interleaved:NN0}),yl=O.Struct({read:O.Number,write:O.Number}),DN0=O.Struct({input:O.Number,output:O.Number,cache:yl,experimentalOver200K:O.optional(O.Struct({input:O.Number,output:O.Number,cache:yl}))}),wN0=O.Struct({context:O.Number,input:O.optional(O.Number),output:O.Number}),uA=O.Struct({id:s1,providerID:X1,api:qN0,name:O.String,family:O.optional(O.String),capabilities:MN0,cost:DN0,limit:wN0,status:O.Literals(["alpha","beta","deprecated","active"]),options:O.Record(O.String,O.Any),headers:O.Record(O.String,O.String),release_date:O.String,variants:O.optional(O.Record(O.String,O.Record(O.String,O.Any))),cacheTTL:O.optional(O.Number),cachePromptTTL:O.optional(O.Literals(["5m","1h"]))}).annotate({identifier:"Model"}).pipe(u0(($)=>({zod:w0($)}))),gK=O.Struct({id:X1,name:O.String,source:O.Literals(["env","config","custom","api"]),env:O.Array(O.String),key:O.optional(O.String),options:O.Record(O.String,O.Any),models:O.Record(O.String,uA)}).annotate({identifier:"Provider"}).pipe(u0(($)=>({zod:w0($)}))),xl=O.Record(O.String,O.String),hl=O.Struct({all:O.Array(gK),default:xl,connected:O.Array(O.String)}).pipe(u0(($)=>({zod:w0($)}))),gl=O.Struct({providers:O.Array(gK),default:xl}).pipe(u0(($)=>({zod:w0($)})));async function ll($=ml){return c8.loadLiveRatings($)}function dl($){c8.mergeLiveTierRatings($)}class uK extends S1.Service()("@qitqode/Provider"){}var TN0=T0.effect(uK,L.gen(function*(){let $=yield*E$.Service,Z=yield*X8.Service,J=yield*k8.Service,Y=yield*d6.Service,X=yield*OZ.Service;c8.beginTierRatingsLoad();let[Q,G]=yield*L.promise(()=>Promise.all([ul(),ll()]));c8.mergeLiveTiers(Q),dl(G),Fl();let W=yield*B0.make(()=>kl({config:Z,auth:J,env:Y,plugin:X})),K=L.fn("Provider.list")(()=>B0.use(W,(N)=>N.providers)),V=jl({getState:()=>B0.get(W),config:Z,readRecent:()=>$.readJson(LN0.join(F0.Path.state,"model.json"))}),{getProvider:U,getModel:H,closest:B,getSmallModel:z,defaultModel:F,resolveModelRef:A}=V,q=L.fn("Provider.getLanguage")(function*(N){let w=yield*B0.get(W),j=yield*Y.all(),M=`${N.providerID}/${N.id}`;if(w.models.has(M))return w.models.get(M);return yield*L.promise(async()=>{let C=w.providers[N.providerID],R=await Pl(N,w,j);try{let T=w.modelLoaders[N.providerID]?await w.modelLoaders[N.providerID](R,N.api.id,{...C.options,...N.options}):R.languageModel(N.api.id);return w.models.set(M,T),T}catch(T){if(T instanceof VH)throw new HY({modelID:N.id,providerID:N.providerID},{cause:T});throw T}})});return uK.of({list:K,getProvider:U,getModel:H,getLanguage:q,closest:B,getSmallModel:z,defaultModel:F,resolveModelRef:A})})),RN0=T0.suspend(()=>TN0.pipe(T0.provide(E$.defaultLayer),T0.provide(d6.defaultLayer),T0.provide(X8.defaultLayer),T0.provide(k8.defaultLayer),T0.provide(OZ.defaultLayer)));var $d={};B1($d,{layer:()=>el,defaultLayer:()=>SN0,ValidationFailed:()=>tl,Service:()=>mK,OauthMissing:()=>sl,OauthCodeMissing:()=>rl,OauthCallbackFailed:()=>al,Methods:()=>nl,Method:()=>mA,CallbackInput:()=>_N0,AuthorizeInput:()=>bN0,Authorization:()=>ol});var il=O.Struct({key:O.String,op:O.Literals(["eq","neq"]),value:O.String}),PN0=O.Struct({type:O.Literal("text"),key:O.String,message:O.String,placeholder:O.optional(O.String),when:O.optional(il)}),IN0=O.Struct({label:O.String,value:O.String,hint:O.optional(O.String)}),CN0=O.Struct({type:O.Literal("select"),key:O.String,message:O.String,options:O.Array(IN0),when:O.optional(il)}),EN0=O.Union([PN0,CN0]);class mA extends O.Class("ProviderAuthMethod")({type:O.Literals(["oauth","api"]),label:O.String,prompts:O.optional(O.Array(EN0))}){static zod=w0(this)}var nl=O.Record(O.String,O.Array(mA)).pipe(u0(($)=>({zod:w0($)})));class ol extends O.Class("ProviderAuthAuthorization")({url:O.String,method:O.Literals(["auto","code"]),instructions:O.String}){static zod=w0(this)}var bN0=O.Struct({method:O.Number.annotate({description:"Auth method index"}),inputs:O.optional(O.Record(O.String,O.String)).annotate({description:"Prompt inputs"})}).pipe(u0(($)=>({zod:w0($)}))),_N0=O.Struct({method:O.Number.annotate({description:"Auth method index"}),code:O.optional(O.String).annotate({description:"OAuth authorization code"})}).pipe(u0(($)=>({zod:w0($)}))),sl=q1.create("ProviderAuthOauthMissing",I.object({providerID:X1.zod})),rl=q1.create("ProviderAuthOauthCodeMissing",I.object({providerID:X1.zod})),al=q1.create("ProviderAuthOauthCallbackFailed",I.object({})),tl=q1.create("ProviderAuthValidationFailed",I.object({field:I.string(),message:I.string()}));class mK extends S1.Service()("@qitqode/ProviderAuth"){}var el=T0.effect(mK,L.gen(function*(){let $=yield*k8.Service,Z=yield*OZ.Service,J=yield*B0.make(L.fn("ProviderAuth.state")(function*(){let W=yield*Z.list();return{hooks:g7.fromEntries(cl.filterMap(W,(K)=>K.auth?.provider!==void 0?h7.succeed([X1.make(K.auth.provider),K.auth]):h7.failVoid)),pending:new Map}})),Y=O.decodeUnknownSync(nl),X=L.fn("ProviderAuth.methods")(function*(){let W=(yield*B0.get(J)).hooks;return Y(g7.map(W,(K)=>K.methods.map((V)=>({type:V.type,label:V.label,prompts:V.prompts?.map((U)=>{if(U.type==="select")return{type:"select",key:U.key,message:U.message,options:U.options,when:U.when};return{type:"text",key:U.key,message:U.message,placeholder:U.placeholder,when:U.when}})}))))}),Q=L.fn("ProviderAuth.authorize")(function*(W){let{hooks:K,pending:V}=yield*B0.get(J),U=K[W.providerID].methods[W.method];if(U.type!=="oauth")return;if(U.prompts&&W.inputs){for(let B of U.prompts)if(B.type==="text"&&B.validate&&W.inputs[B.key]!==void 0){let z=B.validate(W.inputs[B.key]);if(z)return yield*L.fail(new tl({field:B.key,message:z}))}}let H=yield*L.promise(()=>U.authorize(W.inputs));return V.set(W.providerID,H),{url:H.url,method:H.method,instructions:H.instructions}}),G=L.fn("ProviderAuth.callback")(function*(W){let V=(yield*B0.get(J)).pending.get(W.providerID);if(!V)return yield*L.fail(new sl({providerID:W.providerID}));if(V.method==="code"&&!W.code)return yield*L.fail(new rl({providerID:W.providerID}));let U=yield*L.promise(()=>V.method==="code"?V.callback(W.code):V.callback(W.code));if(!U||U.type!=="success")return yield*L.fail(new al({}));if("key"in U)yield*$.set(W.providerID,{type:"api",key:U.key,..."metadata"in U&&U.metadata?{metadata:U.metadata}:{}});if("refresh"in U){let{type:H,provider:B,refresh:z,access:F,expires:A,...q}=U;yield*$.set(W.providerID,{type:"oauth",access:F,refresh:z,expires:A,...q})}});return mK.of({methods:X,authorize:Q,callback:G})})),SN0=T0.suspend(()=>el.pipe(T0.provide(k8.defaultLayer),T0.provide(OZ.defaultLayer)));var H9={};B1(H9,{parseStreamError:()=>xN0,parseAPICallError:()=>hN0});import{STATUS_CODES as Zd}from"http";var fN0=[/prompt is too long/i,/input is too long for requested model/i,/exceeds the context window/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds the limit of \d+/i,/exceeds the available context size/i,/greater than the context length/i,/context window exceeds limit/i,/exceeded model token limit/i,/context[_ ]length[_ ]exceeded/i,/request entity too large/i,/context length is only \d+ tokens/i,/input length.*exceeds.*context length/i,/prompt too long; exceeded (?:max )?context length/i,/too large for model with \d+ maximum context length/i,/model_context_window_exceeded/i];function kN0($){let Z=$.statusCode;if(!Z)return $.isRetryable;return Z===404||$.isRetryable}function vN0($){if(fN0.some((Z)=>Z.test($)))return!0;return/^4(00|13)\s*(status code)?\s*\(no body\)/i.test($)}function yN0($,Z){return l$(()=>{let J=Z.message;if(J===""){if(Z.responseBody)return Z.responseBody;if(Z.statusCode){let X=Zd[Z.statusCode];if(X)return X}return"Unknown error"}if(!Z.responseBody||Z.statusCode&&J!==Zd[Z.statusCode])return J;try{let X=JSON.parse(Z.responseBody),Q=X.message||X.detail||X.error?.message||X.error;if(Q&&typeof Q==="string")return`${J}: ${Q.slice(0,300)}`;if(Array.isArray(Q)&&Q.length>0){let G=Q[0],W=typeof G?.msg==="string"?G.msg:typeof G?.message==="string"?G.message:typeof G==="string"?G:void 0;if(W)return`${J}: ${W.slice(0,300)}`}}catch{}if(/^\s*<!doctype|^\s*<html/i.test(Z.responseBody)){if(Z.statusCode===401)return"Unauthorized: request was blocked by a gateway or proxy. Your authentication token may be missing or expired \u2014 try running `qitqode auth login <your provider URL>` to re-authenticate.";if(Z.statusCode===403)return"Forbidden: request was blocked by a gateway or proxy. You may not have permission to access this resource \u2014 check your account and provider settings.";return J}let Y=Z.responseBody.length>300?Z.responseBody.slice(0,300)+"\u2026":Z.responseBody;return`${J}: ${Y}`}).trim()}function Jd($){if(typeof $==="string")try{let Z=JSON.parse($);if(Z&&typeof Z==="object")return Z;return}catch{return}if(typeof $==="object"&&$!==null)return $;return}function xN0($){let Z=Jd($);if(!Z)return;let J=JSON.stringify(Z);if(Z.type!=="error")return;switch(Z?.error?.code){case"context_length_exceeded":return{type:"context_overflow",message:"Input exceeds context window of this model",responseBody:J};case"insufficient_quota":return{type:"api_error",message:"Quota exceeded. Check your plan and billing details.",isRetryable:!1,responseBody:J};case"usage_not_included":return{type:"api_error",message:"To use Codex with your ChatGPT plan, upgrade to Plus: https://chatgpt.com/explore/plus.",isRetryable:!1,responseBody:J};case"invalid_prompt":return{type:"api_error",message:typeof Z?.error?.message==="string"?Z?.error?.message:"Invalid prompt.",isRetryable:!1,responseBody:J}}}function hN0($){let Z=yN0($.providerID,$.error),J=Jd($.error.responseBody);if(vN0(Z)||$.error.statusCode===413||J?.error?.code==="context_length_exceeded")return{type:"context_overflow",message:Z,responseBody:$.error.responseBody};let Y=$.error.url?{url:$.error.url}:void 0;return{type:"api_error",message:Z,statusCode:$.error.statusCode,isRetryable:$.providerID.startsWith("openai")?kN0($.error):$.error.isRetryable,responseHeaders:$.error.responseHeaders,responseBody:$.error.responseBody,metadata:Y}}function lA($,Z){switch(!0){case($ instanceof DOMException&&$.name==="AbortError"):return new k5({message:$.message},{cause:$}).toObject();case w4.isInstance($):{let J=$.lastError??$.errors[$.errors.length-1];if(J!==void 0&&J!==$)return lA(J,Z);return new L6({message:$.message,isRetryable:!0},{cause:$}).toObject()}case O4.isInstance($):return $;case KH.isInstance($):return new j4({providerID:Z.providerID,message:$.message},{cause:$}).toObject();case $?.code==="ECONNRESET":return new L6({message:"Connection reset by server",isRetryable:!0,metadata:{code:$.code??"",syscall:$.syscall??"",message:$.message??""}},{cause:$}).toObject();case($ instanceof Error&&$.code==="ZlibError"):if(Z.aborted)return new k5({message:$.message},{cause:$}).toObject();return new L6({message:"Response decompression failed",isRetryable:!0,metadata:{code:$.code,message:$.message}},{cause:$}).toObject();case qX.isInstance($):{let J=H9.parseAPICallError({providerID:Z.providerID,error:$});if(J.type==="context_overflow")return new UX({message:J.message,responseBody:J.responseBody},{cause:$}).toObject();return new L6({message:J.message,statusCode:J.statusCode,isRetryable:J.isRetryable,responseHeaders:J.responseHeaders,responseBody:J.responseBody,metadata:J.metadata},{cause:$}).toObject()}case($ instanceof Error&&typeof $.status==="number"):{let J=$.status,Y=$.retryable===!0;return new L6({message:k6($),statusCode:J,isRetryable:Y},{cause:$}).toObject()}case $ instanceof Error:return new q1.Unknown({message:k6($)},{cause:$}).toObject();default:try{let J=H9.parseStreamError($);if(J){if(J.type==="context_overflow")return new UX({message:J.message,responseBody:J.responseBody},{cause:$}).toObject();return new L6({message:J.message,isRetryable:J.isRetryable,responseBody:J.responseBody},{cause:$}).toObject()}}catch{}return new q1.Unknown({message:JSON.stringify($)},{cause:$}).toObject()}}var FY={};B1(FY,{layer:()=>Vd,defaultLayer:()=>iN0,Service:()=>lK,ActorRegistry:()=>FY});var _1=g6("actor_registry",{session_id:w1().$type().notNull().references(()=>I1.id,{onDelete:"cascade"}),actor_id:w1().notNull(),mode:w1().$type().notNull(),parent_actor_id:w1(),status:w1().$type().notNull(),last_outcome:w1().$type(),lifecycle:w1().$type().notNull(),agent:w1().notNull(),description:w1().notNull(),context_mode:w1().$type().notNull(),context_watermark:w1().$type(),background:j8({mode:"boolean"}).notNull(),tools:w1({mode:"json"}).$type(),last_turn_time:j8().notNull(),turn_count:j8().notNull().default(0),last_error:w1(),time_completed:j8(),...mY},($)=>[u9({columns:[$.session_id,$.actor_id]}),B9("actor_registry_session_agent_idx").on($.session_id,$.agent),B9("actor_registry_session_parent_idx").on($.session_id,$.parent_actor_id),B9("actor_registry_status_idx").on($.status),B9("actor_registry_status_last_turn_idx").on($.status,$.last_turn_time)]);var dA=I.enum(["pending","running","idle"]),pA=I.enum(["success","failure","cancelled"]),gN0=I.enum(["ephemeral","persistent"]),uN0=I.enum(["none","state","full"]),cA=I.enum(["peer","subagent","main"]),mN0=I.union([I.array(I.string()).readonly(),I.literal("INHERIT")]),Md0=I.object({sessionID:r0.zod,actorID:I.string(),mode:cA,parentActorID:I.string().optional(),status:dA,lastOutcome:pA.optional(),lifecycle:gN0,agent:I.string(),description:I.string(),contextMode:uN0,contextWatermark:i1.zod.optional(),background:I.boolean(),tools:mN0.optional(),lastTurnTime:I.number(),turnCount:I.number(),lastError:I.string().optional(),time:I.object({created:I.number(),updated:I.number(),completed:I.number().optional()})}).meta({ref:"Actor"});var Yd=L1.define("actor.registered",I.object({sessionID:r0.zod,actorID:I.string(),mode:cA,parentActorID:I.string().optional(),description:I.string(),agent:I.string(),background:I.boolean()})),Xd=L1.define("actor.status",I.object({sessionID:r0.zod,actorID:I.string(),status:dA,lastOutcome:pA.optional(),turnCount:I.number(),lastTurnTime:I.number(),error:I.string().optional()})),Qd=L1.define("actor.stuck",I.object({sessionID:r0.zod,actorID:I.string(),description:I.string(),lastTurnTime:I.number(),stuckDuration:I.number()})),Pd0=L1.define("writer.cache_perf",I.object({sessionID:r0.zod,writerActorID:I.string(),status:I.enum(["completed","failed"]),total_input_tokens:I.number(),cache_read_tokens:I.number(),cache_write_tokens:I.number(),cache_hit_rate:I.number(),num_llm_calls:I.number()})),Id0=L1.define("inbox.arrived",I.object({receiverSessionID:r0.zod,receiverActorID:I.string(),senderSessionID:r0.zod.optional(),senderActorID:I.string().optional(),inboxID:I.string(),type:I.string()}));var Gd=new Set(["checkpoint-writer","dream","distill"]);var dN0=E0.create({service:"actor.registry"}),pN0=300000,cN0=60000;function zY($){return{sessionID:$.session_id,actorID:$.actor_id,mode:$.mode,parentActorID:$.parent_actor_id??void 0,status:$.status,lastOutcome:$.last_outcome??void 0,lifecycle:$.lifecycle,agent:$.agent,description:$.description,contextMode:$.context_mode,contextWatermark:$.context_watermark??void 0,background:Boolean($.background),tools:$.tools??void 0,lastTurnTime:$.last_turn_time,turnCount:$.turn_count,lastError:$.last_error??void 0,time:{created:$.time_created,updated:$.time_updated,completed:$.time_completed??void 0}}}class lK extends S1.Service()("@qitqode/ActorRegistry"){}var Vd=T0.effect(lK,L.gen(function*(){let $=yield*l1.Service,Z=new Map,J=L.fn("ActorRegistry.register")(function*(A){let q=Date.now(),N={session_id:A.sessionID,actor_id:A.actorID,mode:A.mode,parent_actor_id:A.parentActorID??null,status:"pending",last_outcome:null,lifecycle:A.lifecycle,agent:A.agent,description:A.description,context_mode:A.contextMode,context_watermark:A.contextWatermark??null,background:A.background,tools:A.tools??null,last_turn_time:q,turn_count:0,last_error:null,time_completed:null,time_created:q,time_updated:q};return yield*L.sync(()=>W1.use((w)=>{try{w.insert(_1).values(N).run()}catch(j){if(typeof j==="object"&&j!==null&&"code"in j&&typeof j.code==="string"&&(j.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||j.code==="SQLITE_CONSTRAINT_UNIQUE")||j instanceof Error&&j.message.toLowerCase().includes("unique constraint"))throw Error(`Actor ID collision: '${A.actorID}' already exists in session '${A.sessionID}'.`);throw j}})),yield*$.publish(Yd,{sessionID:A.sessionID,actorID:A.actorID,mode:A.mode,parentActorID:A.parentActorID,description:A.description,agent:A.agent,background:A.background}),zY(N)}),Y=L.fnUntraced(function*(A,q){return yield*L.sync(()=>W1.use((N)=>N.select().from(_1).where(j$(m0(_1.session_id,A),m0(_1.actor_id,q))).get()))}),X=L.fn("ActorRegistry.updateStatus")(function*(A,q,N){let w=Date.now(),j=N.status==="idle"&&N.lastOutcome!==void 0,M={status:N.status,time_updated:w,...j?{time_completed:w}:{}};if(N.lastOutcome!==void 0)M.last_outcome=N.lastOutcome;if(N.lastError!==void 0)M.last_error=N.lastError;else if(N.lastOutcome!==void 0&&N.lastOutcome!=="failure")M.last_error=null;yield*L.sync(()=>W1.use((R)=>R.update(_1).set(M).where(j$(m0(_1.session_id,A),m0(_1.actor_id,q))).run()));let C=yield*Y(A,q);if(!C)return;yield*$.publish(Xd,{sessionID:A,actorID:q,status:C.status,...C.last_outcome?{lastOutcome:C.last_outcome}:{},turnCount:C.turn_count,lastTurnTime:C.last_turn_time,...C.last_error?{error:C.last_error}:{}})}),Q=L.fn("ActorRegistry.updateTurn")(function*(A,q){let N=Date.now();yield*L.sync(()=>W1.use((w)=>w.update(_1).set({last_turn_time:N,turn_count:Wd`${_1.turn_count} + 1`,time_updated:N}).where(j$(m0(_1.session_id,A),m0(_1.actor_id,q))).run()))}),G=L.fn("ActorRegistry.get")(function*(A,q){let N=yield*Y(A,q);return N?zY(N):void 0}),W=L.fn("ActorRegistry.listBySession")(function*(A){return(yield*L.sync(()=>W1.use((N)=>N.select().from(_1).where(m0(_1.session_id,A)).all()))).map(zY)}),K=L.fn("ActorRegistry.listActive")(function*(){return(yield*L.sync(()=>W1.use((q)=>q.select().from(_1).where(j$(v5(_1.status,["pending","running"]),m0(_1.background,!0))).all()))).map(zY)}),V=L.fn("ActorRegistry.listByParent")(function*(A,q){return(yield*L.sync(()=>W1.use((w)=>w.select().from(_1).where(j$(m0(_1.session_id,A),m0(_1.parent_actor_id,q))).all()))).map(zY)}),U=L.fn("ActorRegistry.renderForAgent")(function*(A){let N=(yield*W(A)).filter((M)=>M.background&&(M.status==="pending"||M.status==="running"));if(N.length===0)return"";let w=[];w.push("## Active Actors"),w.push(""),w.push(`You have ${N.length} background actor(s) registered. Interact via the \`actor\` tool.`),w.push("");let j=Date.now();for(let M of N){let C=j-M.lastTurnTime,R=C<60000?`${Math.floor(C/1000)}s`:`${Math.floor(C/60000)}m`;w.push(`- actor_id: ${M.actorID} (${M.status}, last activity ${R} ago)`),w.push(` description: ${M.description}`),w.push(` agent: ${M.agent}`)}return w.join(`
793
+ Per-${X}: ${U}.`:`Per-${X}: ${U}.`}}return{type:"object",properties:Q,required:X?[X]:[],additionalProperties:!1}}function Kl($,Z){if(Z=HN0(Z),$.providerID==="google"||$.api.id.includes("gemini")){let J=(G)=>typeof G==="object"&&G!==null&&!Array.isArray(G),Y=(G)=>J(G)&&(Array.isArray(G.anyOf)||Array.isArray(G.oneOf)||Array.isArray(G.allOf)),X=(G)=>{if(!J(G))return!1;if(Y(G))return!0;return["type","properties","items","prefixItems","enum","const","$ref","additionalProperties","patternProperties","required","not","if","then","else"].some((W)=>(W in G))},Q=(G)=>{if(G===null||typeof G!=="object")return G;if(Array.isArray(G))return G.map(Q);let W={};for(let[K,V]of Object.entries(G))if(K==="enum"&&Array.isArray(V)){if(W[K]=V.map((U)=>String(U)),W.type==="integer"||W.type==="number")W.type="string"}else if(typeof V==="object"&&V!==null)W[K]=Q(V);else W[K]=V;if(W.type==="object"&&W.properties&&Array.isArray(W.required))W.required=W.required.filter((K)=>(K in W.properties));if(W.type==="array"&&!Y(W)){if(W.items==null)W.items={};if(J(W.items)&&!X(W.items))W.items.type="string"}if(W.type&&W.type!=="object"&&!Y(W))delete W.properties,delete W.required;return W};Z=Q(Z)}return Z}function Vl($,Z){return Kl($,Z)}var vA=1e6,IK=new Set(c8.tiers().map(($)=>$.id)),Bl=c8.tiers(),M7=Object.fromEntries(Bl.map(($)=>[$.id,{providerID:$.providerID,modelID:$.modelID}])),b8=c8.qlexProviderMeta();function zl($,Z){return{id:s1.make($),providerID:X1.make("qlex"),name:Z,family:b8.family,api:{id:$,url:"",npm:b8.npm},status:"active",headers:{},options:{},cost:{input:0,output:0,cache:{read:0,write:0}},limit:{context:b8.limit.context,output:b8.limit.output},capabilities:{temperature:b8.capabilities.temperature,reasoning:b8.capabilities.reasoning,attachment:b8.capabilities.attachment,toolcall:b8.capabilities.toolcall,input:{...b8.capabilities.input},output:{...b8.capabilities.output},interleaved:b8.capabilities.interleaved},release_date:b8.release_date,variants:{}}}var V9={id:X1.make("qlex"),name:b8.name,source:"custom",env:[],options:{},models:Object.fromEntries(Bl.map(($)=>[$.id,zl($.id,$.label)]))};function Fl(){let $=c8.tiers();IK.clear();for(let J of $)IK.add(J.id);for(let J of Object.keys(M7))delete M7[J];Object.assign(M7,Object.fromEntries($.map((J)=>[J.id,{providerID:J.providerID,modelID:J.modelID}])));let Z=V9.models;for(let J of Object.keys(Z))delete Z[J];Object.assign(V9.models,Object.fromEntries($.map((J)=>[J.id,zl(J.id,J.label)])))}var yA=new Set;function Al($){let Z={input:$?.input??0,output:$?.output??0,cache:{read:$?.cache_read??0,write:$?.cache_write??0}};if($?.context_over_200k)Z.experimentalOver200K={cache:{read:$.context_over_200k.cache_read??0,write:$.context_over_200k.cache_write??0},input:$.context_over_200k.input,output:$.context_over_200k.output};return Z}function Ul($,Z){let J={id:s1.make(Z.id),providerID:X1.make($.id),name:Z.name,family:Z.family,api:{id:Z.id,url:Z.provider?.api??$.api??"",npm:Z.provider?.npm??$.npm??"@ai-sdk/openai-compatible"},status:Z.status??"active",headers:{},options:{},cost:Al(Z.cost),limit:{context:Z.limit.context,input:Z.limit.input,output:Z.limit.output},capabilities:{temperature:Z.temperature??!1,reasoning:Z.reasoning??!1,attachment:Z.attachment??!1,toolcall:Z.tool_call??!0,input:{text:Z.modalities?.input?.includes("text")??!1,audio:Z.modalities?.input?.includes("audio")??!1,image:Z.modalities?.input?.includes("image")??!1,video:Z.modalities?.input?.includes("video")??!1,pdf:Z.modalities?.input?.includes("pdf")??!1},output:{text:Z.modalities?.output?.includes("text")??!1,audio:Z.modalities?.output?.includes("audio")??!1,image:Z.modalities?.output?.includes("image")??!1,video:Z.modalities?.output?.includes("video")??!1,pdf:Z.modalities?.output?.includes("pdf")??!1},interleaved:Z.interleaved??!1},release_date:Z.release_date??"",variants:{}};return{...J,variants:v6(W5(J),(Y)=>Y)}}function CK($){let Z={};for(let[J,Y]of Object.entries($.models)){Z[J]=Ul($,Y);for(let[X,Q]of Object.entries(Y.experimental?.modes??{})){let G=`${Y.id}-${X}`,W=Ul($,Y);Z[G]={...W,id:s1.make(G),name:`${Y.name} ${X[0].toUpperCase()}${X.slice(1)}`,cost:Q.cost?N1(W.cost,Al(Q.cost)):W.cost,options:Q.provider?.body?Object.fromEntries(Object.entries(Q.provider.body).map(([K,V])=>[K.replace(/_([a-z])/g,(U,H)=>H.toUpperCase()),V])):W.options,headers:Q.provider?.headers??W.headers}}}return{id:X1.make($.id),source:"custom",name:$.name,env:$.env??[],options:{},models:Z}}function Ol($){return v6($,(Z)=>U9(Object.values(Z.models))[0].id)}var BN0=["gpt-5.5","gpt-5","claude-sonnet-4","gemini-3-pro"];function U9($){return Hl($,[(Z)=>BN0.findIndex((J)=>Z.id.includes(J)),"desc"],[(Z)=>Z.id.includes("latest")?0:1,"asc"],[(Z)=>Z.id,"desc"])}function K5($){let[Z,...J]=$.split("/");return{providerID:X1.make(Z),modelID:s1.make(J.join("/"))}}var HY=q1.create("ProviderModelNotFoundError",I.object({providerID:X1.zod,modelID:s1.zod,suggestions:I.array(I.string()).optional()})),EK=q1.create("ProviderModelGroupNotFoundError",I.object({group:I.string(),suggestions:I.array(I.string()).optional()})),bK=q1.create("ProviderInitError",I.object({providerID:X1.zod}));function jl($){let{getState:Z,config:J,readRecent:Y}=$,X=L.fn("Provider.getProvider")((U)=>Z().pipe(L.map((H)=>H.providers[U]))),Q=L.fn("Provider.getModel")(function*(U,H){let B=yield*Z(),z=B.providers[U];if(!z){let A=Object.keys(B.providers),q=_K.default.go(U,A,{limit:3,threshold:-1e4});throw new HY({providerID:U,modelID:H,suggestions:q.map((N)=>N.target)})}let F=z.models[H];if(!F){let A=Object.keys(z.models),q=_K.default.go(H,A,{limit:3,threshold:-1e4});throw new HY({providerID:U,modelID:H,suggestions:q.map((N)=>N.target)})}return F}),G=L.fn("Provider.closest")(function*(U,H){let z=(yield*Z()).providers[U];if(!z)return;for(let F of H)for(let A of Object.keys(z.models))if(A.includes(F))return{providerID:U,modelID:A};return}),W=L.fn("Provider.resolveModelRef")(function*(U,H){if(U.includes("/")){let N=K5(U);return yield*Q(N.providerID,N.modelID)}let B=yield*J.get(),z=B.model_groups?.[U];if(!z){if(IK.has(U)){let j=M7[U];if(j){let C=yield*Q(X1.make(j.providerID),s1.make(j.modelID)).pipe(L.exit);if(C._tag==="Success")return C.value}let M=yield*V();return yield*Q(M.providerID,M.modelID)}let N=Object.keys(B.model_groups??{}),w=_K.default.go(U,N,{limit:3,threshold:-1e4});throw new EK({group:U,suggestions:w.map((j)=>j.target)})}let F=typeof z==="string"?z:z.default,A=typeof z==="string"?[z]:z.models??[z.default];if(H)for(let N of A){let w=K5(N);if(w.providerID!==H)continue;let j=yield*Q(w.providerID,w.modelID).pipe(L.exit);if(j._tag==="Success")return j.value}let q=K5(F);return yield*Q(q.providerID,q.modelID)}),K=L.fn("Provider.getSmallModel")(function*(U){let H=yield*J.get();if(H.small_model){let B=K5(H.small_model);return yield*Q(B.providerID,B.modelID)}for(let B of["lite","free","economical"]){if(H.model_groups?.[B])return yield*W(B,U);let F=M7[B];if(F){let A=yield*Q(X1.make(F.providerID),s1.make(F.modelID)).pipe(L.exit);if(A._tag==="Success")return A.value}}return yield*W("economical",U)}),V=L.fn("Provider.defaultModel")(function*(){let U=yield*J.get();if(U.model)return K5(U.model);let H=yield*Z(),B=yield*Y().pipe(L.map((A)=>{if(!J8(A)||!Array.isArray(A.recent))return[];return A.recent.flatMap((q)=>{if(!J8(q))return[];if(typeof q.providerID!=="string")return[];if(typeof q.modelID!=="string")return[];return[{providerID:X1.make(q.providerID),modelID:s1.make(q.modelID)}]})}),L.catch(()=>L.succeed([])));for(let A of B){let q=H.providers[A.providerID];if(!q)continue;if(!q.models[A.modelID])continue;return{providerID:A.providerID,modelID:A.modelID}}for(let A of["default","fast","economical","power"]){let q=M7[A];if(!q)continue;let N=H.providers[X1.make(q.providerID)];if(N?.models[s1.make(q.modelID)])return{providerID:N.id,modelID:s1.make(q.modelID)}}let z=Object.values(H.providers).find((A)=>!U.provider||Object.keys(U.provider).includes(A.id));if(!z)throw Error("no providers found");let[F]=U9(Object.values(z.models));if(!F)throw Error("no models found");return{providerID:z.id,modelID:F.id}});return{getProvider:X,getModel:Q,closest:G,resolveModelRef:W,getSmallModel:K,defaultModel:V}}var SK=480000;function ql($,Z,J){if(typeof Z!=="number"||Z<=0)return $;if(!$.body)return $;if(!$.headers.get("content-type")?.includes("text/event-stream"))return $;let Y=$.body.getReader(),X=new ReadableStream({async pull(Q){let G=await new Promise((W,K)=>{let V=setTimeout(()=>{let U=Error("SSE read timed out");J.abort(U),Y.cancel(U),K(U)},Z);Y.read().then((U)=>{clearTimeout(V),W(U)},(U)=>{clearTimeout(V),K(U)})});if(G.done){Q.close();return}Q.enqueue(G.value)},async cancel(Q){J.abort(Q),await Y.cancel(Q)}});return new Response(X,{headers:new Headers($.headers),status:$.status,statusText:$.statusText})}import jZ from"os";var BY=E0.create({service:"provider/loaders"}),fK=new Map,Ll={"@qitqode/qlex-provider":()=>import("./chunk-n5ypgxrn.js").then(($)=>$.createQlexProvider),"@ai-sdk/amazon-bedrock":()=>import("./chunk-zwnhf4z1.js").then(($)=>$.createAmazonBedrock),"@ai-sdk/anthropic":()=>import("./chunk-0msqaywp.js").then(($)=>$.createAnthropic),"@ai-sdk/azure":()=>import("./chunk-qkjdr337.js").then(($)=>$.createAzure),"@ai-sdk/google":()=>import("./chunk-dyv2hqvc.js").then(($)=>$.createGoogleGenerativeAI),"@ai-sdk/google-vertex":()=>import("./chunk-n6msxne8.js").then(($)=>$.createVertex),"@ai-sdk/google-vertex/anthropic":()=>import("./chunk-81trveht.js").then(($)=>$.createVertexAnthropic),"@ai-sdk/openai":()=>import("./chunk-rq4w0by4.js").then(($)=>$.createOpenAI),"@ai-sdk/openai-compatible":()=>import("./chunk-vv59b4re.js").then(($)=>$.createOpenAICompatible),"@openrouter/ai-sdk-provider":()=>import("./chunk-p825vsjy.js").then(($)=>$.createOpenRouter),"@ai-sdk/xai":()=>import("./chunk-4wxxyrxn.js").then(($)=>$.createXai),"@ai-sdk/mistral":()=>import("./chunk-seghf5fc.js").then(($)=>$.createMistral),"@ai-sdk/groq":()=>import("./chunk-qzj6027k.js").then(($)=>$.createGroq),"@ai-sdk/deepinfra":()=>import("./chunk-nkk4fyqf.js").then(($)=>$.createDeepInfra),"@ai-sdk/cerebras":()=>import("./chunk-y9zstzed.js").then(($)=>$.createCerebras),"@ai-sdk/cohere":()=>import("./chunk-p3qkexpk.js").then(($)=>$.createCohere),"@ai-sdk/gateway":()=>import("./chunk-gqvg02zp.js").then(($)=>$.createGateway),"@ai-sdk/togetherai":()=>import("./chunk-y437vyza.js").then(($)=>$.createTogetherAI),"@ai-sdk/perplexity":()=>import("./chunk-67d5d8mr.js").then(($)=>$.createPerplexity),"@ai-sdk/vercel":()=>import("./chunk-4ttf9rjd.js").then(($)=>$.createVercel),"@ai-sdk/alibaba":()=>import("./chunk-6gb65bv1.js").then(($)=>$.createAlibaba),"gitlab-ai-provider":()=>import("./chunk-09pkckr1.js").then(($)=>$.createGitLab),"@ai-sdk/github-copilot":()=>import("./chunk-qg2vk5fw.js").then(($)=>$.createOpenaiCompatible),"venice-ai-sdk-provider":()=>import("./chunk-06k6egt2.js").then(($)=>$.createVenice)};function Tl($){return $.responses===void 0&&$.chat===void 0}function zN0($){let Z=/^gpt-(\d+)/.exec($);if(!Z)return!1;return Number(Z[1])>=5&&!$.startsWith("gpt-5-mini")}async function Nl($,Z,J){if(Tl($))return $.languageModel(Z);if(J?.useCompletionUrls)return $.chat(Z);else return $.responses(Z)}function Ml($,Z){return $.CLOUDFLARE_ACCOUNT_ID||(Z?.type==="api"?Z.metadata?.accountId:void 0)}function Rl($){return{qlex:L.fnUntraced(function*(){return{autoload:!0,options:{getToken:Dl,onInvalidCredentials:async()=>{if(process.env.QITQODE_KEY)BY.error(xA),console.error(xA);try{await wl()}catch{}}},async getModel(Y,X){return Y.languageModel(X)}}}),anthropic:()=>L.succeed({autoload:!1,options:{headers:{"anthropic-beta":"interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14"}}}),opencode:L.fnUntraced(function*(Z){let J=yield*$.env(),X=l$(()=>{if(Z.env.some((Q)=>J[Q]))return!0;return!1})||Boolean(yield*$.auth(Z.id))||Boolean((yield*$.config()).provider?.opencode?.options?.apiKey);for(let[Q,G]of Object.entries(Z.models))if(!X||G.cost.input===0)delete Z.models[Q];return{autoload:Object.keys(Z.models).length>0,options:{}}}),openai:()=>L.succeed({autoload:!1,async getModel(Z,J,Y){return Z.responses(J)},options:{}}),xai:()=>L.succeed({autoload:!1,async getModel(Z,J,Y){return Z.responses(J)},options:{}}),"github-copilot":()=>L.succeed({autoload:!1,async getModel(Z,J,Y){if(Tl(Z))return Z.languageModel(J);return zN0(J)?Z.responses(J):Z.chat(J)},options:{}}),azure:L.fnUntraced(function*(Z){let J=yield*$.env(),Y=l$(()=>{let X=Z.options?.resourceName;if(typeof X==="string"&&X.trim()!=="")return X;return J.AZURE_RESOURCE_NAME});return{autoload:!1,getModel:Nl,options:{},vars(X){return{...Y&&{AZURE_RESOURCE_NAME:Y}}}}}),"azure-cognitive-services":L.fnUntraced(function*(){let Z=yield*$.get("AZURE_COGNITIVE_SERVICES_RESOURCE_NAME");return{autoload:!1,getModel:Nl,options:{baseURL:Z?`https://${Z}.cognitiveservices.azure.com/openai`:void 0}}}),"amazon-bedrock":L.fnUntraced(function*(){let Z=(yield*$.config()).provider?.["amazon-bedrock"],J=yield*$.auth("amazon-bedrock"),Y=yield*$.env(),X=Z?.options?.region,Q=Y.AWS_REGION,G=X??Q??"us-east-1",W=Z?.options?.profile,K=Y.AWS_PROFILE,V=W??K,U=Y.AWS_ACCESS_KEY_ID,H=l$(()=>{let N=fK.get("AWS_BEARER_TOKEN_BEDROCK");if(N)return N;if(J?.type==="api")return fK.set("AWS_BEARER_TOKEN_BEDROCK",J.key),process.env.AWS_BEARER_TOKEN_BEDROCK=J.key,J.key;return}),B=Y.AWS_WEB_IDENTITY_TOKEN_FILE,z=Boolean(process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI||process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI);if(!V&&!U&&!H&&!B&&!z)return{autoload:!1};let{fromNodeProviderChain:F}=yield*L.promise(()=>import("./chunk-qrtc3etn.js")),A={region:G};if(!H){let N=V?{profile:V}:{};A.credentialProvider=F(N)}let q=Z?.options?.endpoint??Z?.options?.baseURL;if(q)A.baseURL=q;return{autoload:!0,options:A,async getModel(N,w,j){if(["global.","us.","eu.","jp.","apac.","au."].some((T)=>w.startsWith(T)))return N.languageModel(w);let C=j?.region??G,R=C.split("-")[0];switch(R){case"us":{let T=["nova-micro","nova-lite","nova-pro","nova-premier","nova-2","claude","deepseek"].some((_)=>w.includes(_)),P=C.startsWith("us-gov");if(T&&!P)w=`${R}.${w}`;break}case"eu":{let T=["eu-west-1","eu-west-2","eu-west-3","eu-north-1","eu-central-1","eu-south-1","eu-south-2"].some((_)=>C.includes(_)),P=["claude","nova-lite","nova-micro","llama3","pixtral"].some((_)=>w.includes(_));if(T&&P)w=`${R}.${w}`;break}case"ap":{let T=["ap-southeast-2","ap-southeast-4"].includes(C),P=C==="ap-northeast-1";if(T&&["anthropic.claude-sonnet-4-5","anthropic.claude-haiku"].some((_)=>w.includes(_)))R="au",w=`${R}.${w}`;else if(P){if(["claude","nova-lite","nova-micro","nova-pro"].some((E)=>w.includes(E)))R="jp",w=`${R}.${w}`}else if(["claude","nova-lite","nova-micro","nova-pro"].some((E)=>w.includes(E)))R="apac",w=`${R}.${w}`;break}}return N.languageModel(w)}}}),llmgateway:()=>L.succeed({autoload:!1,options:{headers:{"X-Source":"qitqode"}}}),openrouter:()=>L.succeed({autoload:!1,options:{headers:{"X-OpenRouter-Categories":"programming,programming-app,cli-agent"}}}),nvidia:()=>L.succeed({autoload:!1,options:{}}),vercel:()=>L.succeed({autoload:!1,options:{}}),"google-vertex":L.fnUntraced(function*(Z){let J=yield*$.env(),Y=Z.options?.project??J.GOOGLE_CLOUD_PROJECT??J.GCP_PROJECT??J.GCLOUD_PROJECT,X=String(Z.options?.location??J.GOOGLE_VERTEX_LOCATION??J.GOOGLE_CLOUD_LOCATION??J.VERTEX_LOCATION??"us-central1");if(!Boolean(Y))return{autoload:!1};return{autoload:!0,vars(G){let W=X==="global"?"aiplatform.googleapis.com":`${X}-aiplatform.googleapis.com`;return{...Y&&{GOOGLE_VERTEX_PROJECT:Y},GOOGLE_VERTEX_LOCATION:X,GOOGLE_VERTEX_ENDPOINT:W}},options:{project:Y,location:X,fetch:async(G,W)=>{let{GoogleAuth:K}=await import("./chunk-s27xvrft.js").then((m)=>m6(m.default,1)),H=await(await new K().getApplicationDefault()).credential.getAccessToken(),B=new Headers(W?.headers);return B.set("Authorization",`Bearer ${H.token}`),fetch(G,{...W,headers:B})}},async getModel(G,W){let K=String(W).trim();return G.languageModel(K)}}}),"google-vertex-anthropic":L.fnUntraced(function*(){let Z=yield*$.env(),J=Z.GOOGLE_CLOUD_PROJECT??Z.GCP_PROJECT??Z.GCLOUD_PROJECT,Y=Z.GOOGLE_CLOUD_LOCATION??Z.VERTEX_LOCATION??"global";if(!Boolean(J))return{autoload:!1};return{autoload:!0,options:{project:J,location:Y},async getModel(Q,G){let W=String(G).trim();return Q.languageModel(W)}}}),"sap-ai-core":L.fnUntraced(function*(){let Z=yield*$.auth("sap-ai-core"),J=l$(()=>{let Q=fK.get("AICORE_SERVICE_KEY");if(Q)return Q;if(Z?.type==="api")return fK.set("AICORE_SERVICE_KEY",Z.key),process.env.AICORE_SERVICE_KEY=Z.key,Z.key;return}),Y=process.env.AICORE_DEPLOYMENT_ID,X=process.env.AICORE_RESOURCE_GROUP;return{autoload:!!J,options:J?{deploymentId:Y,resourceGroup:X}:{},async getModel(Q,G){return Q(G)}}}),zenmux:()=>L.succeed({autoload:!1,options:{}}),gitlab:L.fnUntraced(function*(Z){let{VERSION:J,isWorkflowModel:Y,discoverWorkflowModels:X}=yield*L.promise(()=>import("./chunk-09pkckr1.js")),Q=(yield*$.get("GITLAB_INSTANCE_URL"))||"https://gitlab.com",G=yield*$.auth(Z.id),W=yield*L.sync(()=>{if(G?.type==="oauth")return G.access;if(G?.type==="api")return G.key;return}),K=W??(yield*$.get("GITLAB_TOKEN")),V=(yield*$.config()).provider?.gitlab,U=yield*B0.directory,H={"User-Agent":`qitqode/${O$} gitlab-ai-provider/${J} (${jZ.platform()} ${jZ.release()}; ${jZ.arch()})`,"anthropic-beta":"context-1m-2025-08-07",...V?.options?.aiGatewayHeaders},B={duo_agent_platform_agentic_chat:!0,duo_agent_platform:!0,...V?.options?.featureFlags};return{autoload:!!K,options:{instanceUrl:Q,apiKey:K,aiGatewayHeaders:H,featureFlags:B},async getModel(z,F,A){if(F.startsWith("duo-workflow-")){let q=typeof A?.workflowRef==="string"?A.workflowRef:void 0,N=Y(F)?F:"duo-workflow",w=typeof A?.workflowDefinition==="string"?A.workflowDefinition:void 0,j=z.workflowChat(N,{featureFlags:B,workflowDefinition:w});if(q)j.selectedModelRef=q;return j}return z.agenticChat(F,{aiGatewayHeaders:H,featureFlags:B})},async discoverModels(){if(!W)return BY.info("gitlab model discovery skipped: no apiKey"),{};try{let z=W,F=()=>G?.type==="api"?{"PRIVATE-TOKEN":z}:{Authorization:`Bearer ${z}`};BY.info("gitlab model discovery starting",{instanceUrl:Q});let A=await X({instanceUrl:Q,getHeaders:F},{workingDirectory:U});if(!A.models.length)return BY.info("gitlab model discovery skipped: no models found",{project:A.project?{id:A.project.id,path:A.project.pathWithNamespace}:null}),{};let q={};for(let N of A.models)if(!Z.models[N.id])q[N.id]={id:s1.make(N.id),providerID:X1.make("gitlab"),name:`Agent Platform (${N.name})`,family:"",api:{id:N.id,url:Q,npm:"gitlab-ai-provider"},status:"active",headers:{},options:{workflowRef:N.ref},cost:{input:0,output:0,cache:{read:0,write:0}},limit:{context:N.context,output:N.output},capabilities:{temperature:!1,reasoning:!0,attachment:!0,toolcall:!0,input:{text:!0,audio:!1,image:!0,video:!1,pdf:!0},output:{text:!0,audio:!1,image:!1,video:!1,pdf:!1},interleaved:!1},release_date:"",variants:{}};return BY.info("gitlab model discovery complete",{count:Object.keys(q).length,models:Object.keys(q)}),q}catch(z){return BY.warn("gitlab model discovery failed",{error:z}),{}}}}}),"cloudflare-workers-ai":L.fnUntraced(function*(Z){if(Z.options?.baseURL)return{autoload:!1};let J=yield*$.auth(Z.id),Y=yield*$.env(),X=Ml(Y,J);if(!X)return{autoload:!1,async getModel(){throw Error("CLOUDFLARE_ACCOUNT_ID is missing. Set it with: export CLOUDFLARE_ACCOUNT_ID=<your-account-id>")}};let Q=yield*L.gen(function*(){let G=Y.CLOUDFLARE_API_KEY;if(G)return G;if(J?.type==="api")return J.key;return});return{autoload:!!Q,options:{apiKey:Q,headers:{"User-Agent":`qitqode/${O$} cloudflare-workers-ai (${jZ.platform()} ${jZ.release()}; ${jZ.arch()})`}},async getModel(G,W){return G.languageModel(W)},vars(G){return{CLOUDFLARE_ACCOUNT_ID:X}}}}),"cloudflare-ai-gateway":L.fnUntraced(function*(Z){if(Z.options?.baseURL)return{autoload:!1};let J=yield*$.auth(Z.id),Y=yield*$.env(),X=Ml(Y,J),Q=Y.CLOUDFLARE_GATEWAY_ID||(J?.type==="api"?J.metadata?.gatewayId:void 0);if(!X||!Q){let z=[!X?"CLOUDFLARE_ACCOUNT_ID":void 0,!Q?"CLOUDFLARE_GATEWAY_ID":void 0].filter((F)=>Boolean(F));return{autoload:!1,async getModel(){throw Error(`${z.join(" and ")} missing. Set with: ${z.map((F)=>`export ${F}=<value>`).join(" && ")}`)}}}let G=yield*L.gen(function*(){let z=Y.CLOUDFLARE_API_TOKEN||Y.CF_AIG_TOKEN;if(z)return z;if(J?.type==="api")return J.key;return});if(!G)throw Error("CLOUDFLARE_API_TOKEN (or CF_AIG_TOKEN) is required for Cloudflare AI Gateway. Set it via environment variable or run `qitqode auth cloudflare-ai-gateway`.");let{createAiGateway:W}=yield*L.promise(()=>import("./chunk-ngccf7ga.js")),{createUnified:K}=yield*L.promise(()=>import("./chunk-akk84fnc.js")),U={metadata:l$(()=>{if(Z.options?.metadata)return Z.options.metadata;try{return JSON.parse(Z.options?.headers?.["cf-aig-metadata"])}catch{return}}),cacheTtl:Z.options?.cacheTtl,cacheKey:Z.options?.cacheKey,skipCache:Z.options?.skipCache,collectLog:Z.options?.collectLog,headers:{"User-Agent":`qitqode/${O$} cloudflare-ai-gateway (${jZ.platform()} ${jZ.release()}; ${jZ.arch()})`}},H=W({accountId:X,gateway:Q,apiKey:G,...Object.values(U).some((z)=>z!==void 0)?{options:U}:{}}),B=K();return{autoload:!0,async getModel(z,F,A){return H(B(F))},options:{}}}),cerebras:()=>L.succeed({autoload:!1,options:{headers:{"X-Cerebras-3rd-Party-Integration":"qitqode"}}}),kilo:()=>L.succeed({autoload:!1,options:{}})}}import{pathToFileURL as FN0}from"url";var hA=E0.create({service:"provider.sdk-runtime"});async function Pl($,Z,J){try{let Y=[];try{const W=kK(Y,hA.time("getSDK",{providerID:$.providerID}),0);let K=Z.providers[$.providerID];let V={...K.options};if($.providerID==="google-vertex"&&!$.api.npm.includes("@ai-sdk/openai-compatible"))delete V.fetch;if($.api.npm.includes("@ai-sdk/openai-compatible")&&V.includeUsage!==!1)V.includeUsage=!0;let U=l$(()=>{let R=typeof V.baseURL==="string"&&V.baseURL!==""?V.baseURL:$.api.url;if(!R)return;let T=Z.varsLoaders[$.providerID];if(T){let P=T(V);for(let[_,E]of Object.entries(P)){let f="${"+_+"}";R=R.replaceAll(f,E)}}return R});if(U!==void 0)V.baseURL=U;if(V.apiKey===void 0&&typeof K.key==="string")V.apiKey=K.key;if($.headers)V.headers={...V.headers,...$.headers};let H=V.fetch;delete V.fetch;let B=A4.fast(JSON.stringify({providerID:$.providerID,npm:$.api.npm,options:V}));let z=Z.sdk.get(B);if(z)return z;let F=V.chunkTimeout;let A=typeof F==="number"?F:SK;delete V.chunkTimeout;V.fetch=async(R,T)=>{let P=H??fetch,_=T??{},E=typeof A==="number"&&A>0?new AbortController:void 0,f=[];if(_.signal)f.push(_.signal);if(E)f.push(E.signal);if(V.timeout!==void 0&&V.timeout!==null&&V.timeout!==!1)f.push(AbortSignal.timeout(V.timeout));let b=f.length===0?null:f.length===1?f[0]:AbortSignal.any(f);if(b)_.signal=b;if($.api.npm==="@ai-sdk/openai"&&_.body&&_.method==="POST"){let k=JSON.parse(_.body);if(!($.providerID.includes("azure")&&k.store===!0)&&Array.isArray(k.input)){for(let p of k.input)if("id"in p)delete p.id;_.body=JSON.stringify(k)}}let y=await P(R,{..._,timeout:!1});if(!E)return y;return ql(y,A,E)};let q=Ll[$.api.npm];if(q){hA.info("using bundled provider",{providerID:$.providerID,pkg:$.api.npm});let T=(await q())({name:$.providerID,...V});return Z.sdk.set(B,T),T}let N;if(!$.api.npm.startsWith("file://")){let R=await j6.add($.api.npm);if(!R.entrypoint)throw Error(`Package ${$.api.npm} has no import entrypoint`);N=R.entrypoint}else hA.info("loading local provider",{pkg:$.api.npm}),N=$.api.npm;let w=N.startsWith("file://")?N:FN0(N).href;let j=await import(w);let M=j[Object.keys(j).find((R)=>R.startsWith("create"))];let C=M({name:$.providerID,...V});Z.sdk.set(B,C);return C}catch(X){var Q=X,G=1}finally{vK(Y,Q,G)}}catch(W){throw new bK({providerID:$.providerID},{cause:W})}}function Il($){let Z={};function J(Y,X){let Q=Z[Y];if(Q){Z[Y]=N1(Q,X);return}let G=$[Y];if(!G)return;Z[Y]=N1(G,X)}return{database:$,providers:Z,mergeProvider:J}}function Cl($){if($.enabled&&!$.enabled.has($.providerID))return!1;if($.disabled.has($.providerID))return!1;return!0}function El($,Z){let J=$.env.map((Y)=>Z[Y]).find(Boolean);if(!J)return;return{source:"env",key:$.env.length===1?J:void 0}}function bl($){if($.type!=="api")return;return{source:"api",key:$.key}}function gA($){return $.hasProvider?{options:$.options??{}}:{source:"custom",options:$.options??{}}}var AN0=E0.create({service:"provider.discovery.filter"});function _l($){for(let[Z,J]of Object.entries($.providers)){let Y=X1.make(Z);if(!$.isAllowed(Y)){delete $.providers[Y];continue}let X=$.overrides[Y];for(let[Q,G]of Object.entries(J.models)){if(G.api.id=G.api.id??G.id??Q,Q==="gpt-5-chat-latest"||Y===X1.openrouter&&Q==="openai/gpt-5-chat")delete J.models[Q];if(G.status==="alpha"&&!$.experimentalModels)delete J.models[Q];if(G.status==="deprecated")delete J.models[Q];if(X?.blacklist&&X.blacklist.includes(Q)||X?.whitelist&&!X.whitelist.includes(Q))delete J.models[Q];G.variants=v6(W5(G),(K)=>K);let W=X?.models?.[Q]?.variants;if(W&&G.variants){let K=N1(G.variants,W);G.variants=v6(yK(K,(V)=>!V.disabled),(V)=>xK(V,["disabled"]))}}if(Object.keys(J.models).length===0){delete $.providers[Y];continue}AN0.info("found",{providerID:Y})}return $.providers}var ON0=E0.create({service:"provider.discovery.config"});function Sl($){for(let[Z,J]of $.configProviders){let Y=$.database[Z],X={id:X1.make(Z),name:J.name??Y?.name??Z,env:J.env??Y?.env??[],options:N1(Y?.options??{},J.options??{}),source:"config",models:Y?.models??{}};for(let[Q,G]of Object.entries(J.models??{})){let W=X.models[G.id??Q],K=G.id??W?.api.id??Q,V=G.provider?.npm??J.npm??W?.api.npm??$.modelsDev[Z]?.npm??"@ai-sdk/openai-compatible",U=l$(()=>{if(G.name)return G.name;if(G.id&&G.id!==Q)return Q;return W?.name??Q}),H={id:s1.make(Q),api:{id:K,npm:V,url:G.provider?.api??J?.api??W?.api.url??$.modelsDev[Z]?.api??""},status:G.status??W?.status??"active",name:U,providerID:X1.make(Z),capabilities:{temperature:G.temperature??W?.capabilities.temperature??!1,reasoning:G.reasoning??W?.capabilities.reasoning??!1,attachment:G.attachment??W?.capabilities.attachment??!1,toolcall:G.tool_call??W?.capabilities.toolcall??!0,input:{text:G.modalities?.input?.includes("text")??W?.capabilities.input.text??!0,audio:G.modalities?.input?.includes("audio")??W?.capabilities.input.audio??!1,image:G.modalities?.input?.includes("image")??W?.capabilities.input.image??!1,video:G.modalities?.input?.includes("video")??W?.capabilities.input.video??!1,pdf:G.modalities?.input?.includes("pdf")??W?.capabilities.input.pdf??!1},output:{text:G.modalities?.output?.includes("text")??W?.capabilities.output.text??!0,audio:G.modalities?.output?.includes("audio")??W?.capabilities.output.audio??!1,image:G.modalities?.output?.includes("image")??W?.capabilities.output.image??!1,video:G.modalities?.output?.includes("video")??W?.capabilities.output.video??!1,pdf:G.modalities?.output?.includes("pdf")??W?.capabilities.output.pdf??!1},interleaved:G.interleaved??W?.capabilities.interleaved??(!W&&V==="@ai-sdk/openai-compatible"&&K.includes("deepseek")?{field:"reasoning_content"}:!1)},cost:{input:G?.cost?.input??W?.cost?.input??0,output:G?.cost?.output??W?.cost?.output??0,cache:{read:G?.cost?.cache_read??W?.cost?.cache.read??0,write:G?.cost?.cache_write??W?.cost?.cache.write??0}},options:N1(W?.options??{},G.options??{}),limit:{context:(()=>{let z=G.limit?.context??W?.limit?.context;if(z!==void 0)return z;let F=`${Z}/${Q}`;if(!yA.has(F))yA.add(F),ON0.warn("limit.context not configured and not found in models.dev",{providerID:Z,modelID:Q,defaulting_to:vA,fix:`Set limit.context explicitly in qitqode.json under provider.${Z}.models.${Q}`});return vA})(),input:G.limit?.input??W?.limit?.input,output:G.limit?.output??W?.limit?.output??0},headers:N1(W?.headers??{},G.headers??{}),family:G.family??W?.family??"",release_date:G.release_date??W?.release_date??"",cachePromptTTL:G.cachePromptTTL??W?.cachePromptTTL,variants:{}},B=N1(W5(H),G.variants??{});H.variants=v6(yK(B,(z)=>!z.disabled),(z)=>xK(z,["disabled"])),X.models[Q]=H}$.database[Z]=X}}var hK=E0.create({service:"provider.discovery"});function kl($){let{config:Z,auth:J,env:Y,plugin:X}=$;return L.gen(function*(){let E=[];try{const Q=kK(E,hK.time("state"),0);let G=yield*R7.make();let W=yield*Z.get();let K=yield*L.promise(()=>fl());let V=v6(K,CK);V[V9.id]=V9;let U=Il(V);let{providers:H,mergeProvider:B}=U;let z=new Map;let F={};let A={};let q=new Map;let N={};let w={auth:(k)=>J.get(k).pipe(L.orDie),config:()=>Z.get(),env:()=>Y.all(),get:(k)=>Y.get(k)};hK.info("init");let j=yield*X.list();let M=Object.entries(W.provider??{});let C=new Set(W.disabled_providers??[]);let R=W.enabled_providers?new Set(W.enabled_providers):null;let T=(k)=>Cl({providerID:k,enabled:R,disabled:C});Sl({database:V,modelsDev:K,configProviders:M});if(!b0.QITQODE_DISABLE_PROVIDER_ENV){let k=yield*Y.all();for(let[g,d]of Object.entries(V)){let p=X1.make(g);if(C.has(p))continue;let t=El(d,k);if(t)B(p,t)}}let P=yield*J.all().pipe(L.orDie);for(let[k,g]of Object.entries(P)){let d=X1.make(k);if(C.has(d))continue;let p=bl(g);if(p)B(d,p)}for(let k of j){if(!k.auth)continue;let g=X1.make(k.auth.provider);if(C.has(g))continue;if(!(yield*J.get(g).pipe(L.orDie)))continue;if(!k.auth.loader)continue;let t=(yield*L.promise(()=>k.auth.loader(()=>G.promise(J.get(g).pipe(L.orDie)),V[k.auth.provider])))??{};B(g,gA({options:t,hasProvider:Boolean(H[g])}))}for(let[k,g]of Object.entries(Rl(w))){let d=X1.make(k);if(C.has(d))continue;let p=V[d];if(!p){hK.error("Provider does not exist in model list "+d);continue}let t=yield*g(p);if(t&&(t.autoload||H[d])){if(t.getModel)F[d]=t.getModel;if(t.vars)A[d]=t.vars;if(t.discoverModels)N[d]=t.discoverModels;let r=t.options??{};B(d,gA({options:r,hasProvider:Boolean(H[d])}))}}for(let[k,g]of M){let d=X1.make(k),p={source:"config"};if(g.env)p.env=g.env;if(g.name)p.name=g.name;if(g.options)p.options=g.options;B(d,p)}let _=X1.make("gitlab");if(N[_]&&H[_]&&T(_))yield*L.promise(async()=>{try{let k=await N[_]();for(let[g,d]of Object.entries(k))if(!H[_].models[g])H[_].models[g]=d}catch(k){hK.warn("state discovery error",{id:"gitlab",error:k})}});for(let k of j){let g=k.provider,d=g?.models;if(!g||!d)continue;let p=X1.make(g.id);if(C.has(p))continue;let t=H[p];if(!t)continue;let r=yield*J.get(p).pipe(L.orDie);t.models=yield*L.promise(async()=>{let G0=await d(t,{auth:r});return Object.fromEntries(Object.entries(G0).map(([O0,h0])=>[O0,{...h0,id:s1.make(O0),providerID:p}]))})}_l({providers:H,overrides:W.provider??{},isAllowed:T,experimentalModels:b0.QITQODE_ENABLE_EXPERIMENTAL_MODELS});return{models:z,providers:H,sdk:q,modelLoaders:F,varsLoaders:A}}catch(f){var b=f,y=1}finally{vK(E,b,y)}})}var qN0=O.Struct({id:O.String,url:O.String,npm:O.String}),vl=O.Struct({text:O.Boolean,audio:O.Boolean,image:O.Boolean,video:O.Boolean,pdf:O.Boolean}),NN0=O.Union([O.Boolean,O.Struct({field:O.Literals(["reasoning_content","reasoning_details"])})]),MN0=O.Struct({temperature:O.Boolean,reasoning:O.Boolean,attachment:O.Boolean,toolcall:O.Boolean,input:vl,output:vl,interleaved:NN0}),yl=O.Struct({read:O.Number,write:O.Number}),DN0=O.Struct({input:O.Number,output:O.Number,cache:yl,experimentalOver200K:O.optional(O.Struct({input:O.Number,output:O.Number,cache:yl}))}),wN0=O.Struct({context:O.Number,input:O.optional(O.Number),output:O.Number}),uA=O.Struct({id:s1,providerID:X1,api:qN0,name:O.String,family:O.optional(O.String),capabilities:MN0,cost:DN0,limit:wN0,status:O.Literals(["alpha","beta","deprecated","active"]),options:O.Record(O.String,O.Any),headers:O.Record(O.String,O.String),release_date:O.String,variants:O.optional(O.Record(O.String,O.Record(O.String,O.Any))),cacheTTL:O.optional(O.Number),cachePromptTTL:O.optional(O.Literals(["5m","1h"]))}).annotate({identifier:"Model"}).pipe(u0(($)=>({zod:w0($)}))),gK=O.Struct({id:X1,name:O.String,source:O.Literals(["env","config","custom","api"]),env:O.Array(O.String),key:O.optional(O.String),options:O.Record(O.String,O.Any),models:O.Record(O.String,uA)}).annotate({identifier:"Provider"}).pipe(u0(($)=>({zod:w0($)}))),xl=O.Record(O.String,O.String),hl=O.Struct({all:O.Array(gK),default:xl,connected:O.Array(O.String)}).pipe(u0(($)=>({zod:w0($)}))),gl=O.Struct({providers:O.Array(gK),default:xl}).pipe(u0(($)=>({zod:w0($)})));async function ll($=ml){return c8.loadLiveRatings($)}function dl($){c8.mergeLiveTierRatings($)}class uK extends S1.Service()("@qitqode/Provider"){}var TN0=T0.effect(uK,L.gen(function*(){let $=yield*E$.Service,Z=yield*X8.Service,J=yield*k8.Service,Y=yield*d6.Service,X=yield*OZ.Service;c8.beginTierRatingsLoad();let[Q,G]=yield*L.promise(()=>Promise.all([ul(),ll()]));c8.mergeLiveTiers(Q),dl(G),Fl();let W=yield*B0.make(()=>kl({config:Z,auth:J,env:Y,plugin:X})),K=L.fn("Provider.list")(()=>B0.use(W,(N)=>N.providers)),V=jl({getState:()=>B0.get(W),config:Z,readRecent:()=>$.readJson(LN0.join(F0.Path.state,"model.json"))}),{getProvider:U,getModel:H,closest:B,getSmallModel:z,defaultModel:F,resolveModelRef:A}=V,q=L.fn("Provider.getLanguage")(function*(N){let w=yield*B0.get(W),j=yield*Y.all(),M=`${N.providerID}/${N.id}`;if(w.models.has(M))return w.models.get(M);return yield*L.promise(async()=>{let C=w.providers[N.providerID],R=await Pl(N,w,j);try{let T=w.modelLoaders[N.providerID]?await w.modelLoaders[N.providerID](R,N.api.id,{...C.options,...N.options}):R.languageModel(N.api.id);return w.models.set(M,T),T}catch(T){if(T instanceof VH)throw new HY({modelID:N.id,providerID:N.providerID},{cause:T});throw T}})});return uK.of({list:K,getProvider:U,getModel:H,getLanguage:q,closest:B,getSmallModel:z,defaultModel:F,resolveModelRef:A})})),RN0=T0.suspend(()=>TN0.pipe(T0.provide(E$.defaultLayer),T0.provide(d6.defaultLayer),T0.provide(X8.defaultLayer),T0.provide(k8.defaultLayer),T0.provide(OZ.defaultLayer)));var $d={};B1($d,{layer:()=>el,defaultLayer:()=>SN0,ValidationFailed:()=>tl,Service:()=>mK,OauthMissing:()=>sl,OauthCodeMissing:()=>rl,OauthCallbackFailed:()=>al,Methods:()=>nl,Method:()=>mA,CallbackInput:()=>_N0,AuthorizeInput:()=>bN0,Authorization:()=>ol});var il=O.Struct({key:O.String,op:O.Literals(["eq","neq"]),value:O.String}),PN0=O.Struct({type:O.Literal("text"),key:O.String,message:O.String,placeholder:O.optional(O.String),when:O.optional(il)}),IN0=O.Struct({label:O.String,value:O.String,hint:O.optional(O.String)}),CN0=O.Struct({type:O.Literal("select"),key:O.String,message:O.String,options:O.Array(IN0),when:O.optional(il)}),EN0=O.Union([PN0,CN0]);class mA extends O.Class("ProviderAuthMethod")({type:O.Literals(["oauth","api"]),label:O.String,prompts:O.optional(O.Array(EN0))}){static zod=w0(this)}var nl=O.Record(O.String,O.Array(mA)).pipe(u0(($)=>({zod:w0($)})));class ol extends O.Class("ProviderAuthAuthorization")({url:O.String,method:O.Literals(["auto","code"]),instructions:O.String}){static zod=w0(this)}var bN0=O.Struct({method:O.Number.annotate({description:"Auth method index"}),inputs:O.optional(O.Record(O.String,O.String)).annotate({description:"Prompt inputs"})}).pipe(u0(($)=>({zod:w0($)}))),_N0=O.Struct({method:O.Number.annotate({description:"Auth method index"}),code:O.optional(O.String).annotate({description:"OAuth authorization code"})}).pipe(u0(($)=>({zod:w0($)}))),sl=q1.create("ProviderAuthOauthMissing",I.object({providerID:X1.zod})),rl=q1.create("ProviderAuthOauthCodeMissing",I.object({providerID:X1.zod})),al=q1.create("ProviderAuthOauthCallbackFailed",I.object({})),tl=q1.create("ProviderAuthValidationFailed",I.object({field:I.string(),message:I.string()}));class mK extends S1.Service()("@qitqode/ProviderAuth"){}var el=T0.effect(mK,L.gen(function*(){let $=yield*k8.Service,Z=yield*OZ.Service,J=yield*B0.make(L.fn("ProviderAuth.state")(function*(){let W=yield*Z.list();return{hooks:g7.fromEntries(cl.filterMap(W,(K)=>K.auth?.provider!==void 0?h7.succeed([X1.make(K.auth.provider),K.auth]):h7.failVoid)),pending:new Map}})),Y=O.decodeUnknownSync(nl),X=L.fn("ProviderAuth.methods")(function*(){let W=(yield*B0.get(J)).hooks;return Y(g7.map(W,(K)=>K.methods.map((V)=>({type:V.type,label:V.label,prompts:V.prompts?.map((U)=>{if(U.type==="select")return{type:"select",key:U.key,message:U.message,options:U.options,when:U.when};return{type:"text",key:U.key,message:U.message,placeholder:U.placeholder,when:U.when}})}))))}),Q=L.fn("ProviderAuth.authorize")(function*(W){let{hooks:K,pending:V}=yield*B0.get(J),U=K[W.providerID].methods[W.method];if(U.type!=="oauth")return;if(U.prompts&&W.inputs){for(let B of U.prompts)if(B.type==="text"&&B.validate&&W.inputs[B.key]!==void 0){let z=B.validate(W.inputs[B.key]);if(z)return yield*L.fail(new tl({field:B.key,message:z}))}}let H=yield*L.promise(()=>U.authorize(W.inputs));return V.set(W.providerID,H),{url:H.url,method:H.method,instructions:H.instructions}}),G=L.fn("ProviderAuth.callback")(function*(W){let V=(yield*B0.get(J)).pending.get(W.providerID);if(!V)return yield*L.fail(new sl({providerID:W.providerID}));if(V.method==="code"&&!W.code)return yield*L.fail(new rl({providerID:W.providerID}));let U=yield*L.promise(()=>V.method==="code"?V.callback(W.code):V.callback(W.code));if(!U||U.type!=="success")return yield*L.fail(new al({}));if("key"in U)yield*$.set(W.providerID,{type:"api",key:U.key,..."metadata"in U&&U.metadata?{metadata:U.metadata}:{}});if("refresh"in U){let{type:H,provider:B,refresh:z,access:F,expires:A,...q}=U;yield*$.set(W.providerID,{type:"oauth",access:F,refresh:z,expires:A,...q})}});return mK.of({methods:X,authorize:Q,callback:G})})),SN0=T0.suspend(()=>el.pipe(T0.provide(k8.defaultLayer),T0.provide(OZ.defaultLayer)));var H9={};B1(H9,{parseStreamError:()=>xN0,parseAPICallError:()=>hN0});import{STATUS_CODES as Zd}from"http";var fN0=[/prompt is too long/i,/input is too long for requested model/i,/exceeds the context window/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds the limit of \d+/i,/exceeds the available context size/i,/greater than the context length/i,/context window exceeds limit/i,/exceeded model token limit/i,/context[_ ]length[_ ]exceeded/i,/request entity too large/i,/context length is only \d+ tokens/i,/input length.*exceeds.*context length/i,/prompt too long; exceeded (?:max )?context length/i,/too large for model with \d+ maximum context length/i,/model_context_window_exceeded/i];function kN0($){let Z=$.statusCode;if(!Z)return $.isRetryable;return Z===404||$.isRetryable}function vN0($){if(fN0.some((Z)=>Z.test($)))return!0;return/^4(00|13)\s*(status code)?\s*\(no body\)/i.test($)}function yN0($,Z){return l$(()=>{let J=Z.message;if(J===""){if(Z.responseBody)return Z.responseBody;if(Z.statusCode){let X=Zd[Z.statusCode];if(X)return X}return"Unknown error"}if(!Z.responseBody||Z.statusCode&&J!==Zd[Z.statusCode])return J;try{let X=JSON.parse(Z.responseBody),Q=X.message||X.detail||X.error?.message||X.error;if(Q&&typeof Q==="string")return`${J}: ${Q.slice(0,300)}`;if(Array.isArray(Q)&&Q.length>0){let G=Q[0],W=typeof G?.msg==="string"?G.msg:typeof G?.message==="string"?G.message:typeof G==="string"?G:void 0;if(W)return`${J}: ${W.slice(0,300)}`}}catch{}if(/^\s*<!doctype|^\s*<html/i.test(Z.responseBody)){if(Z.statusCode===401)return"Unauthorized: request was blocked by a gateway or proxy. Your authentication token may be missing or expired \u2014 try running `qitqode auth login <your provider URL>` to re-authenticate.";if(Z.statusCode===403)return"Forbidden: request was blocked by a gateway or proxy. You may not have permission to access this resource \u2014 check your account and provider settings.";return J}let Y=Z.responseBody.length>300?Z.responseBody.slice(0,300)+"\u2026":Z.responseBody;return`${J}: ${Y}`}).trim()}function Jd($){if(typeof $==="string")try{let Z=JSON.parse($);if(Z&&typeof Z==="object")return Z;return}catch{return}if(typeof $==="object"&&$!==null)return $;return}function xN0($){let Z=Jd($);if(!Z)return;let J=JSON.stringify(Z);if(Z.type!=="error")return;switch(Z?.error?.code){case"context_length_exceeded":return{type:"context_overflow",message:"Input exceeds context window of this model",responseBody:J};case"insufficient_quota":return{type:"api_error",message:"Quota exceeded. Check your plan and billing details.",isRetryable:!1,responseBody:J};case"usage_not_included":return{type:"api_error",message:"To use Codex with your ChatGPT plan, upgrade to Plus: https://chatgpt.com/explore/plus.",isRetryable:!1,responseBody:J};case"invalid_prompt":return{type:"api_error",message:typeof Z?.error?.message==="string"?Z?.error?.message:"Invalid prompt.",isRetryable:!1,responseBody:J}}}function hN0($){let Z=yN0($.providerID,$.error),J=Jd($.error.responseBody);if(vN0(Z)||$.error.statusCode===413||J?.error?.code==="context_length_exceeded")return{type:"context_overflow",message:Z,responseBody:$.error.responseBody};let Y=$.error.url?{url:$.error.url}:void 0;return{type:"api_error",message:Z,statusCode:$.error.statusCode,isRetryable:$.providerID.startsWith("openai")?kN0($.error):$.error.isRetryable,responseHeaders:$.error.responseHeaders,responseBody:$.error.responseBody,metadata:Y}}function lA($,Z){switch(!0){case($ instanceof DOMException&&$.name==="AbortError"):return new k5({message:$.message},{cause:$}).toObject();case w4.isInstance($):{let J=$.lastError??$.errors[$.errors.length-1];if(J!==void 0&&J!==$)return lA(J,Z);return new L6({message:$.message,isRetryable:!0},{cause:$}).toObject()}case O4.isInstance($):return $;case KH.isInstance($):return new j4({providerID:Z.providerID,message:$.message},{cause:$}).toObject();case $?.code==="ECONNRESET":return new L6({message:"Connection reset by server",isRetryable:!0,metadata:{code:$.code??"",syscall:$.syscall??"",message:$.message??""}},{cause:$}).toObject();case($ instanceof Error&&$.code==="ZlibError"):if(Z.aborted)return new k5({message:$.message},{cause:$}).toObject();return new L6({message:"Response decompression failed",isRetryable:!0,metadata:{code:$.code,message:$.message}},{cause:$}).toObject();case qX.isInstance($):{let J=H9.parseAPICallError({providerID:Z.providerID,error:$});if(J.type==="context_overflow")return new UX({message:J.message,responseBody:J.responseBody},{cause:$}).toObject();return new L6({message:J.message,statusCode:J.statusCode,isRetryable:J.isRetryable,responseHeaders:J.responseHeaders,responseBody:J.responseBody,metadata:J.metadata},{cause:$}).toObject()}case($ instanceof Error&&typeof $.status==="number"):{let J=$.status,Y=$.retryable===!0;return new L6({message:k6($),statusCode:J,isRetryable:Y},{cause:$}).toObject()}case $ instanceof Error:return new q1.Unknown({message:k6($)},{cause:$}).toObject();default:try{let J=H9.parseStreamError($);if(J){if(J.type==="context_overflow")return new UX({message:J.message,responseBody:J.responseBody},{cause:$}).toObject();return new L6({message:J.message,isRetryable:J.isRetryable,responseBody:J.responseBody},{cause:$}).toObject()}}catch{}return new q1.Unknown({message:JSON.stringify($)},{cause:$}).toObject()}}var FY={};B1(FY,{layer:()=>Vd,defaultLayer:()=>iN0,Service:()=>lK,ActorRegistry:()=>FY});var _1=g6("actor_registry",{session_id:w1().$type().notNull().references(()=>I1.id,{onDelete:"cascade"}),actor_id:w1().notNull(),mode:w1().$type().notNull(),parent_actor_id:w1(),status:w1().$type().notNull(),last_outcome:w1().$type(),lifecycle:w1().$type().notNull(),agent:w1().notNull(),description:w1().notNull(),context_mode:w1().$type().notNull(),context_watermark:w1().$type(),background:j8({mode:"boolean"}).notNull(),tools:w1({mode:"json"}).$type(),last_turn_time:j8().notNull(),turn_count:j8().notNull().default(0),last_error:w1(),time_completed:j8(),...mY},($)=>[u9({columns:[$.session_id,$.actor_id]}),B9("actor_registry_session_agent_idx").on($.session_id,$.agent),B9("actor_registry_session_parent_idx").on($.session_id,$.parent_actor_id),B9("actor_registry_status_idx").on($.status),B9("actor_registry_status_last_turn_idx").on($.status,$.last_turn_time)]);var dA=I.enum(["pending","running","idle"]),pA=I.enum(["success","failure","cancelled"]),gN0=I.enum(["ephemeral","persistent"]),uN0=I.enum(["none","state","full"]),cA=I.enum(["peer","subagent","main"]),mN0=I.union([I.array(I.string()).readonly(),I.literal("INHERIT")]),Md0=I.object({sessionID:r0.zod,actorID:I.string(),mode:cA,parentActorID:I.string().optional(),status:dA,lastOutcome:pA.optional(),lifecycle:gN0,agent:I.string(),description:I.string(),contextMode:uN0,contextWatermark:i1.zod.optional(),background:I.boolean(),tools:mN0.optional(),lastTurnTime:I.number(),turnCount:I.number(),lastError:I.string().optional(),time:I.object({created:I.number(),updated:I.number(),completed:I.number().optional()})}).meta({ref:"Actor"});var Yd=L1.define("actor.registered",I.object({sessionID:r0.zod,actorID:I.string(),mode:cA,parentActorID:I.string().optional(),description:I.string(),agent:I.string(),background:I.boolean()})),Xd=L1.define("actor.status",I.object({sessionID:r0.zod,actorID:I.string(),status:dA,lastOutcome:pA.optional(),turnCount:I.number(),lastTurnTime:I.number(),error:I.string().optional()})),Qd=L1.define("actor.stuck",I.object({sessionID:r0.zod,actorID:I.string(),description:I.string(),lastTurnTime:I.number(),stuckDuration:I.number()})),Pd0=L1.define("writer.cache_perf",I.object({sessionID:r0.zod,writerActorID:I.string(),status:I.enum(["completed","failed"]),total_input_tokens:I.number(),cache_read_tokens:I.number(),cache_write_tokens:I.number(),cache_hit_rate:I.number(),num_llm_calls:I.number()})),Id0=L1.define("inbox.arrived",I.object({receiverSessionID:r0.zod,receiverActorID:I.string(),senderSessionID:r0.zod.optional(),senderActorID:I.string().optional(),inboxID:I.string(),type:I.string()}));var Gd=new Set(["checkpoint-writer","dream","distill"]);var dN0=E0.create({service:"actor.registry"}),pN0=300000,cN0=60000;function zY($){return{sessionID:$.session_id,actorID:$.actor_id,mode:$.mode,parentActorID:$.parent_actor_id??void 0,status:$.status,lastOutcome:$.last_outcome??void 0,lifecycle:$.lifecycle,agent:$.agent,description:$.description,contextMode:$.context_mode,contextWatermark:$.context_watermark??void 0,background:Boolean($.background),tools:$.tools??void 0,lastTurnTime:$.last_turn_time,turnCount:$.turn_count,lastError:$.last_error??void 0,time:{created:$.time_created,updated:$.time_updated,completed:$.time_completed??void 0}}}class lK extends S1.Service()("@qitqode/ActorRegistry"){}var Vd=T0.effect(lK,L.gen(function*(){let $=yield*l1.Service,Z=new Map,J=L.fn("ActorRegistry.register")(function*(A){let q=Date.now(),N={session_id:A.sessionID,actor_id:A.actorID,mode:A.mode,parent_actor_id:A.parentActorID??null,status:"pending",last_outcome:null,lifecycle:A.lifecycle,agent:A.agent,description:A.description,context_mode:A.contextMode,context_watermark:A.contextWatermark??null,background:A.background,tools:A.tools??null,last_turn_time:q,turn_count:0,last_error:null,time_completed:null,time_created:q,time_updated:q};return yield*L.sync(()=>W1.use((w)=>{try{w.insert(_1).values(N).run()}catch(j){if(typeof j==="object"&&j!==null&&"code"in j&&typeof j.code==="string"&&(j.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||j.code==="SQLITE_CONSTRAINT_UNIQUE")||j instanceof Error&&j.message.toLowerCase().includes("unique constraint"))throw Error(`Actor ID collision: '${A.actorID}' already exists in session '${A.sessionID}'.`);throw j}})),yield*$.publish(Yd,{sessionID:A.sessionID,actorID:A.actorID,mode:A.mode,parentActorID:A.parentActorID,description:A.description,agent:A.agent,background:A.background}),zY(N)}),Y=L.fnUntraced(function*(A,q){return yield*L.sync(()=>W1.use((N)=>N.select().from(_1).where(j$(m0(_1.session_id,A),m0(_1.actor_id,q))).get()))}),X=L.fn("ActorRegistry.updateStatus")(function*(A,q,N){let w=Date.now(),j=N.status==="idle"&&N.lastOutcome!==void 0,M={status:N.status,time_updated:w,...j?{time_completed:w}:{}};if(N.lastOutcome!==void 0)M.last_outcome=N.lastOutcome;if(N.lastError!==void 0)M.last_error=N.lastError;else if(N.lastOutcome!==void 0&&N.lastOutcome!=="failure")M.last_error=null;yield*L.sync(()=>W1.use((R)=>R.update(_1).set(M).where(j$(m0(_1.session_id,A),m0(_1.actor_id,q))).run()));let C=yield*Y(A,q);if(!C)return;yield*$.publish(Xd,{sessionID:A,actorID:q,status:C.status,...C.last_outcome?{lastOutcome:C.last_outcome}:{},turnCount:C.turn_count,lastTurnTime:C.last_turn_time,...C.last_error?{error:C.last_error}:{}})}),Q=L.fn("ActorRegistry.updateTurn")(function*(A,q){let N=Date.now();yield*L.sync(()=>W1.use((w)=>w.update(_1).set({last_turn_time:N,turn_count:Wd`${_1.turn_count} + 1`,time_updated:N}).where(j$(m0(_1.session_id,A),m0(_1.actor_id,q))).run()))}),G=L.fn("ActorRegistry.get")(function*(A,q){let N=yield*Y(A,q);return N?zY(N):void 0}),W=L.fn("ActorRegistry.listBySession")(function*(A){return(yield*L.sync(()=>W1.use((N)=>N.select().from(_1).where(m0(_1.session_id,A)).all()))).map(zY)}),K=L.fn("ActorRegistry.listActive")(function*(){return(yield*L.sync(()=>W1.use((q)=>q.select().from(_1).where(j$(v5(_1.status,["pending","running"]),m0(_1.background,!0))).all()))).map(zY)}),V=L.fn("ActorRegistry.listByParent")(function*(A,q){return(yield*L.sync(()=>W1.use((w)=>w.select().from(_1).where(j$(m0(_1.session_id,A),m0(_1.parent_actor_id,q))).all()))).map(zY)}),U=L.fn("ActorRegistry.renderForAgent")(function*(A){let N=(yield*W(A)).filter((M)=>M.background&&(M.status==="pending"||M.status==="running"));if(N.length===0)return"";let w=[];w.push("## Active Actors"),w.push(""),w.push(`You have ${N.length} background actor(s) registered. Interact via the \`actor\` tool.`),w.push("");let j=Date.now();for(let M of N){let C=j-M.lastTurnTime,R=C<60000?`${Math.floor(C/1000)}s`:`${Math.floor(C/60000)}m`;w.push(`- actor_id: ${M.actorID} (${M.status}, last activity ${R} ago)`),w.push(` description: ${M.description}`),w.push(` agent: ${M.agent}`)}return w.join(`
794
794
  `)}),H=L.fn("ActorRegistry.agentTypeFor")(function*(A,q){if(q==="main")return"main";return(yield*G(A,q))?.agent??"main"}),B=L.fn("ActorRegistry.isSystemSpawned")(function*(A,q){if(q==="main")return!1;let N=yield*G(A,q);if(!N)return!1;return Gd.has(N.agent)}),z=L.fn("ActorRegistry.allocateActorID")(function*(A,q){let N=`${A}:${q}`,w=`${q}-`;if(!Z.has(N)){let M=yield*L.sync(()=>W1.use((C)=>C.select({actor_id:_1.actor_id}).from(_1).where(j$(m0(_1.session_id,A),m0(_1.agent,q))).all()));if(!Z.has(N)){let C=0;for(let R of M)if(R.actor_id.startsWith(w)){let T=parseInt(R.actor_id.slice(w.length),10);if(Number.isFinite(T)&&T>C)C=T}Z.set(N,C)}}let j=(Z.get(N)??0)+1;return Z.set(N,j),`${q}-${j}`});return yield*L.sync(()=>W1.use((A)=>{let q=Date.now();A.update(_1).set({status:"idle",last_outcome:"failure",last_error:"orphaned: process restarted",time_updated:q,time_completed:q}).where(v5(_1.status,["pending","running"])).run()})),dN0.info("orphan recovery complete"),yield*L.gen(function*(){let A=Date.now()-pN0,q=yield*L.sync(()=>W1.use((N)=>N.select().from(_1).where(j$(m0(_1.status,"running"),Kd(_1.last_turn_time,A))).all()));for(let N of q){let w=zY(N);yield*$.publish(Qd,{sessionID:w.sessionID,actorID:w.actorID,description:w.description,lastTurnTime:w.lastTurnTime,stuckDuration:Date.now()-w.lastTurnTime})}}).pipe(L.repeat(z4.fixed(cN0)),L.ignore,L.forkScoped),lK.of({register:J,updateStatus:X,updateTurn:Q,get:G,listBySession:W,listActive:K,listByParent:V,renderForAgent:U,agentTypeFor:H,isSystemSpawned:B,allocateActorID:z})})),iN0=Vd.pipe(T0.provide(l1.layer));import tA from"path";/*!
795
795
  * decimal.js v10.5.0
796
796
  * An arbitrary-precision Decimal type for JavaScript.