gemi 0.144.0 → 0.146.0

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 (209) hide show
  1. package/dist/ai/AgentController.d.ts +2 -2
  2. package/dist/ai/AgentController.d.ts.map +1 -1
  3. package/dist/ai/index.d.ts +2 -2
  4. package/dist/ai/index.d.ts.map +1 -1
  5. package/dist/ai/index.js +11 -11
  6. package/dist/ai/index.js.map +3 -3
  7. package/dist/ai/store/Nonces.d.ts +68 -0
  8. package/dist/ai/store/Nonces.d.ts.map +1 -1
  9. package/dist/ai/store/index.d.ts +1 -1
  10. package/dist/ai/store/index.d.ts.map +1 -1
  11. package/dist/app/index.js +1 -1
  12. package/dist/bun/plugin.js +1 -1
  13. package/dist/bun/preload.js +1 -1
  14. package/dist/{chunk-fg2k18d2.js → chunk-0k8fk96c.js} +2 -2
  15. package/dist/{chunk-fg2k18d2.js.map → chunk-0k8fk96c.js.map} +1 -1
  16. package/dist/{chunk-y5yac6n1.js → chunk-0mt7kqwx.js} +2 -2
  17. package/dist/{chunk-y5yac6n1.js.map → chunk-0mt7kqwx.js.map} +1 -1
  18. package/dist/{chunk-1ed75a7b.js → chunk-1fyn63ka.js} +3 -3
  19. package/dist/{chunk-1ed75a7b.js.map → chunk-1fyn63ka.js.map} +1 -1
  20. package/dist/{chunk-tkvamktq.js → chunk-1ttd4rn9.js} +2 -2
  21. package/dist/{chunk-tkvamktq.js.map → chunk-1ttd4rn9.js.map} +1 -1
  22. package/dist/{chunk-m70hn4eg.js → chunk-1wz6kwjc.js} +2 -2
  23. package/dist/{chunk-m70hn4eg.js.map → chunk-1wz6kwjc.js.map} +1 -1
  24. package/dist/{chunk-fsem81ec.js → chunk-29jmaj16.js} +1 -1
  25. package/dist/{chunk-fpz9e3xx.js → chunk-2b3hh9xw.js} +3 -3
  26. package/dist/{chunk-fpz9e3xx.js.map → chunk-2b3hh9xw.js.map} +1 -1
  27. package/dist/{chunk-n9zycjm1.js → chunk-2djjs8f1.js} +3 -3
  28. package/dist/{chunk-n9zycjm1.js.map → chunk-2djjs8f1.js.map} +1 -1
  29. package/dist/{chunk-p81qeav5.js → chunk-2ery6a75.js} +3 -3
  30. package/dist/{chunk-p81qeav5.js.map → chunk-2ery6a75.js.map} +1 -1
  31. package/dist/{chunk-b4mg6v4g.js → chunk-2gdrj2jm.js} +5 -5
  32. package/dist/{chunk-b4mg6v4g.js.map → chunk-2gdrj2jm.js.map} +3 -3
  33. package/dist/{chunk-hyhbk12v.js → chunk-2k3935ke.js} +2 -2
  34. package/dist/{chunk-hyhbk12v.js.map → chunk-2k3935ke.js.map} +1 -1
  35. package/dist/{chunk-qt6x2r6a.js → chunk-2x6cv37t.js} +2 -2
  36. package/dist/{chunk-qt6x2r6a.js.map → chunk-2x6cv37t.js.map} +1 -1
  37. package/dist/{chunk-68f0jpje.js → chunk-313593t3.js} +2 -2
  38. package/dist/{chunk-68f0jpje.js.map → chunk-313593t3.js.map} +1 -1
  39. package/dist/{chunk-5qfzvnyp.js → chunk-3csz8pfk.js} +3 -3
  40. package/dist/{chunk-5qfzvnyp.js.map → chunk-3csz8pfk.js.map} +1 -1
  41. package/dist/{chunk-rezmtdyt.js → chunk-3x8zrsby.js} +2 -2
  42. package/dist/{chunk-rezmtdyt.js.map → chunk-3x8zrsby.js.map} +1 -1
  43. package/dist/chunk-49s8wwp2.js +5 -0
  44. package/dist/{chunk-b6mgrrk6.js.map → chunk-49s8wwp2.js.map} +1 -1
  45. package/dist/{chunk-ncb1qtae.js → chunk-4d4td4k9.js} +2 -2
  46. package/dist/{chunk-ncb1qtae.js.map → chunk-4d4td4k9.js.map} +1 -1
  47. package/dist/{chunk-v57ndv0h.js → chunk-4jd25v6d.js} +2 -2
  48. package/dist/{chunk-v57ndv0h.js.map → chunk-4jd25v6d.js.map} +1 -1
  49. package/dist/{chunk-78bfmwp0.js → chunk-4m0eqq80.js} +2 -2
  50. package/dist/{chunk-78bfmwp0.js.map → chunk-4m0eqq80.js.map} +1 -1
  51. package/dist/{chunk-ktrm6y5j.js → chunk-563ksar3.js} +3 -3
  52. package/dist/{chunk-ktrm6y5j.js.map → chunk-563ksar3.js.map} +1 -1
  53. package/dist/{chunk-z80v4z8y.js → chunk-5q2pmve9.js} +2 -2
  54. package/dist/{chunk-z80v4z8y.js.map → chunk-5q2pmve9.js.map} +1 -1
  55. package/dist/{chunk-20d0n391.js → chunk-5yz684rw.js} +2 -2
  56. package/dist/{chunk-20d0n391.js.map → chunk-5yz684rw.js.map} +1 -1
  57. package/dist/{chunk-236be97q.js → chunk-63xwah5k.js} +1 -1
  58. package/dist/{chunk-b4jx4fzq.js → chunk-65wy1r1a.js} +1 -1
  59. package/dist/{chunk-9tgcmx4h.js → chunk-70yz9e7f.js} +2 -2
  60. package/dist/{chunk-9tgcmx4h.js.map → chunk-70yz9e7f.js.map} +1 -1
  61. package/dist/{chunk-t03nda3s.js → chunk-73rzf7ys.js} +2 -2
  62. package/dist/{chunk-t03nda3s.js.map → chunk-73rzf7ys.js.map} +1 -1
  63. package/dist/{chunk-1cn7ets3.js → chunk-7txqv2qq.js} +3 -3
  64. package/dist/{chunk-1cn7ets3.js.map → chunk-7txqv2qq.js.map} +1 -1
  65. package/dist/{chunk-1skdsmjx.js → chunk-86zhngpg.js} +2 -2
  66. package/dist/{chunk-1skdsmjx.js.map → chunk-86zhngpg.js.map} +1 -1
  67. package/dist/{chunk-ce9wm3r9.js → chunk-877yc341.js} +3 -3
  68. package/dist/{chunk-ce9wm3r9.js.map → chunk-877yc341.js.map} +1 -1
  69. package/dist/{chunk-wffc5k3m.js → chunk-87y2nrjy.js} +2 -2
  70. package/dist/{chunk-wffc5k3m.js.map → chunk-87y2nrjy.js.map} +1 -1
  71. package/dist/{chunk-9zd7c4wq.js → chunk-8k346pjw.js} +14 -14
  72. package/dist/{chunk-9zd7c4wq.js.map → chunk-8k346pjw.js.map} +3 -3
  73. package/dist/{chunk-27xsjq8a.js → chunk-8km4drvv.js} +3 -3
  74. package/dist/{chunk-27xsjq8a.js.map → chunk-8km4drvv.js.map} +1 -1
  75. package/dist/{chunk-sa6a0wy1.js → chunk-94hcjdbe.js} +2 -2
  76. package/dist/{chunk-sa6a0wy1.js.map → chunk-94hcjdbe.js.map} +1 -1
  77. package/dist/{chunk-6d3m2w2p.js → chunk-9br5qvg4.js} +2 -2
  78. package/dist/{chunk-6d3m2w2p.js.map → chunk-9br5qvg4.js.map} +1 -1
  79. package/dist/{chunk-kaphqnpp.js → chunk-9z8zq4rx.js} +3 -3
  80. package/dist/{chunk-kaphqnpp.js.map → chunk-9z8zq4rx.js.map} +1 -1
  81. package/dist/{chunk-8ex0y47w.js → chunk-apga49vp.js} +2 -2
  82. package/dist/{chunk-8ex0y47w.js.map → chunk-apga49vp.js.map} +1 -1
  83. package/dist/{chunk-yjszzjyj.js → chunk-attr793y.js} +2 -2
  84. package/dist/{chunk-yjszzjyj.js.map → chunk-attr793y.js.map} +1 -1
  85. package/dist/{chunk-1x9ghjpt.js → chunk-bsa6b82q.js} +1 -1
  86. package/dist/{chunk-ceb4jcrm.js → chunk-bstn00nx.js} +2 -2
  87. package/dist/{chunk-ceb4jcrm.js.map → chunk-bstn00nx.js.map} +1 -1
  88. package/dist/{chunk-azd6da5h.js → chunk-bykkqvd8.js} +2 -2
  89. package/dist/{chunk-azd6da5h.js.map → chunk-bykkqvd8.js.map} +1 -1
  90. package/dist/{chunk-9k46m1vf.js → chunk-cee5gq7t.js} +2 -2
  91. package/dist/{chunk-9k46m1vf.js.map → chunk-cee5gq7t.js.map} +1 -1
  92. package/dist/{chunk-9dkpv8ev.js → chunk-dxh8njb4.js} +2 -2
  93. package/dist/{chunk-9dkpv8ev.js.map → chunk-dxh8njb4.js.map} +1 -1
  94. package/dist/{chunk-maqkrbsb.js → chunk-e06t0625.js} +2 -2
  95. package/dist/{chunk-maqkrbsb.js.map → chunk-e06t0625.js.map} +1 -1
  96. package/dist/{chunk-0839f72f.js → chunk-e9z8p2fy.js} +2 -2
  97. package/dist/{chunk-0839f72f.js.map → chunk-e9z8p2fy.js.map} +1 -1
  98. package/dist/{chunk-6hs102jh.js → chunk-eqv7yxk7.js} +2 -2
  99. package/dist/{chunk-6hs102jh.js.map → chunk-eqv7yxk7.js.map} +1 -1
  100. package/dist/{chunk-m6t5a0me.js → chunk-fqqbnp0z.js} +2 -2
  101. package/dist/{chunk-m6t5a0me.js.map → chunk-fqqbnp0z.js.map} +1 -1
  102. package/dist/{chunk-1w5dnkd1.js → chunk-g22kph4n.js} +2 -2
  103. package/dist/{chunk-1w5dnkd1.js.map → chunk-g22kph4n.js.map} +1 -1
  104. package/dist/{chunk-t0wfj6hy.js → chunk-g4gzz185.js} +2 -2
  105. package/dist/{chunk-t0wfj6hy.js.map → chunk-g4gzz185.js.map} +1 -1
  106. package/dist/{chunk-rvm5mkwm.js → chunk-g8sh9btf.js} +2 -2
  107. package/dist/{chunk-rvm5mkwm.js.map → chunk-g8sh9btf.js.map} +1 -1
  108. package/dist/{chunk-8ky8cmde.js → chunk-h8eawyhx.js} +2 -2
  109. package/dist/{chunk-8ky8cmde.js.map → chunk-h8eawyhx.js.map} +1 -1
  110. package/dist/{chunk-r567t83k.js → chunk-hcw671mg.js} +4 -4
  111. package/dist/{chunk-r567t83k.js.map → chunk-hcw671mg.js.map} +1 -1
  112. package/dist/{chunk-ej4kf7m5.js → chunk-hh5bs656.js} +3 -3
  113. package/dist/{chunk-ej4kf7m5.js.map → chunk-hh5bs656.js.map} +1 -1
  114. package/dist/{chunk-3q7sc68p.js → chunk-j6ygdvj8.js} +2 -2
  115. package/dist/{chunk-3q7sc68p.js.map → chunk-j6ygdvj8.js.map} +1 -1
  116. package/dist/{chunk-t2nsn0r2.js → chunk-jzpbwvbt.js} +2 -2
  117. package/dist/{chunk-t2nsn0r2.js.map → chunk-jzpbwvbt.js.map} +1 -1
  118. package/dist/{chunk-en33hg1c.js → chunk-k79ajvtc.js} +2 -2
  119. package/dist/{chunk-en33hg1c.js.map → chunk-k79ajvtc.js.map} +1 -1
  120. package/dist/{chunk-83cvkhzn.js → chunk-kmh402m4.js} +2 -2
  121. package/dist/{chunk-83cvkhzn.js.map → chunk-kmh402m4.js.map} +1 -1
  122. package/dist/{chunk-m8yd59gg.js → chunk-mr3szvr3.js} +2 -2
  123. package/dist/{chunk-m8yd59gg.js.map → chunk-mr3szvr3.js.map} +1 -1
  124. package/dist/{chunk-mkw35cz7.js → chunk-mtamgvf4.js} +2 -2
  125. package/dist/{chunk-mkw35cz7.js.map → chunk-mtamgvf4.js.map} +1 -1
  126. package/dist/{chunk-5xfpqda5.js → chunk-mv1rs9he.js} +1 -1
  127. package/dist/{chunk-s29tgy4y.js → chunk-mzkzgp2j.js} +2 -2
  128. package/dist/{chunk-s29tgy4y.js.map → chunk-mzkzgp2j.js.map} +1 -1
  129. package/dist/{chunk-9xzg05xg.js → chunk-n9n4qt20.js} +3 -3
  130. package/dist/{chunk-9xzg05xg.js.map → chunk-n9n4qt20.js.map} +1 -1
  131. package/dist/{chunk-2ra5skyk.js → chunk-p27y4xrw.js} +2 -2
  132. package/dist/{chunk-2ra5skyk.js.map → chunk-p27y4xrw.js.map} +1 -1
  133. package/dist/{chunk-w4ma7978.js → chunk-p3dvm08p.js} +2 -2
  134. package/dist/{chunk-w4ma7978.js.map → chunk-p3dvm08p.js.map} +1 -1
  135. package/dist/{chunk-sgwgj2q0.js → chunk-pq657qcp.js} +1 -1
  136. package/dist/{chunk-63q7ycwt.js → chunk-pwbm3x1y.js} +2 -2
  137. package/dist/{chunk-63q7ycwt.js.map → chunk-pwbm3x1y.js.map} +1 -1
  138. package/dist/{chunk-f2e7n064.js → chunk-q9na1syb.js} +2 -2
  139. package/dist/{chunk-f2e7n064.js.map → chunk-q9na1syb.js.map} +1 -1
  140. package/dist/{chunk-x0t3t7g3.js → chunk-rkbwb3v5.js} +2 -2
  141. package/dist/{chunk-x0t3t7g3.js.map → chunk-rkbwb3v5.js.map} +1 -1
  142. package/dist/{chunk-0t2ym9ap.js → chunk-rma7afjd.js} +3 -3
  143. package/dist/{chunk-0t2ym9ap.js.map → chunk-rma7afjd.js.map} +1 -1
  144. package/dist/{chunk-a78b9v7h.js → chunk-skhnc9g9.js} +6 -6
  145. package/dist/{chunk-a78b9v7h.js.map → chunk-skhnc9g9.js.map} +3 -3
  146. package/dist/{chunk-f5qdyw45.js → chunk-tr9ynv3w.js} +2 -2
  147. package/dist/{chunk-f5qdyw45.js.map → chunk-tr9ynv3w.js.map} +1 -1
  148. package/dist/{chunk-kzc6bn8n.js → chunk-twrf6d08.js} +2 -2
  149. package/dist/{chunk-kzc6bn8n.js.map → chunk-twrf6d08.js.map} +1 -1
  150. package/dist/{chunk-6jd0e1dz.js → chunk-v9z4x5j2.js} +2 -2
  151. package/dist/{chunk-6jd0e1dz.js.map → chunk-v9z4x5j2.js.map} +1 -1
  152. package/dist/{chunk-jmhrpfqn.js → chunk-vm5t0j24.js} +2 -2
  153. package/dist/{chunk-jmhrpfqn.js.map → chunk-vm5t0j24.js.map} +1 -1
  154. package/dist/{chunk-a37shxb1.js → chunk-xv58jnpb.js} +2 -2
  155. package/dist/{chunk-a37shxb1.js.map → chunk-xv58jnpb.js.map} +1 -1
  156. package/dist/{chunk-p57nt0pm.js → chunk-ydkv9e8w.js} +3 -3
  157. package/dist/{chunk-p57nt0pm.js.map → chunk-ydkv9e8w.js.map} +1 -1
  158. package/dist/{chunk-aw8gj99f.js → chunk-ymdpt00k.js} +2 -2
  159. package/dist/{chunk-aw8gj99f.js.map → chunk-ymdpt00k.js.map} +1 -1
  160. package/dist/{chunk-5g7m7g4a.js → chunk-z7tsh9qr.js} +3 -3
  161. package/dist/{chunk-5g7m7g4a.js.map → chunk-z7tsh9qr.js.map} +1 -1
  162. package/dist/config/index.js +1 -1
  163. package/dist/console/run.js +2 -2
  164. package/dist/console/run.js.map +1 -1
  165. package/dist/container/index.js +2 -2
  166. package/dist/container/index.js.map +1 -1
  167. package/dist/database/index.js +2 -2
  168. package/dist/database/index.js.map +1 -1
  169. package/dist/email/index.js +2 -2
  170. package/dist/email/index.js.map +1 -1
  171. package/dist/facades/index.js +2 -2
  172. package/dist/facades/index.js.map +1 -1
  173. package/dist/foundation/index.js +2 -2
  174. package/dist/foundation/index.js.map +1 -1
  175. package/dist/http/index.js +2 -2
  176. package/dist/http/index.js.map +1 -1
  177. package/dist/i18n/dictionaryRuntime.js +2 -2
  178. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  179. package/dist/i18n/index.js +2 -2
  180. package/dist/i18n/index.js.map +1 -1
  181. package/dist/kernel/index.js +2 -2
  182. package/dist/kernel/index.js.map +1 -1
  183. package/dist/orm/index.js +2 -2
  184. package/dist/orm/index.js.map +1 -1
  185. package/dist/server/index.js +2 -2
  186. package/dist/server/index.js.map +1 -1
  187. package/dist/services/index.d.ts +2 -1
  188. package/dist/services/index.d.ts.map +1 -1
  189. package/dist/services/index.js +9 -9
  190. package/dist/services/index.js.map +4 -3
  191. package/dist/services/mcp/http/McpHttpServer.d.ts +81 -1
  192. package/dist/services/mcp/http/McpHttpServer.d.ts.map +1 -1
  193. package/dist/services/mcp/http/oauth/prismaStore.d.ts +112 -0
  194. package/dist/services/mcp/http/oauth/prismaStore.d.ts.map +1 -0
  195. package/dist/services/queue/work.js +2 -2
  196. package/dist/services/queue/work.js.map +1 -1
  197. package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
  198. package/dist/stats/route-table.js +1 -1
  199. package/dist/support/index.js +2 -2
  200. package/dist/support/index.js.map +1 -1
  201. package/dist/vitest/index.js +1 -1
  202. package/package.json +1 -1
  203. package/dist/chunk-b6mgrrk6.js +0 -5
  204. /package/dist/{chunk-fsem81ec.js.map → chunk-29jmaj16.js.map} +0 -0
  205. /package/dist/{chunk-236be97q.js.map → chunk-63xwah5k.js.map} +0 -0
  206. /package/dist/{chunk-b4jx4fzq.js.map → chunk-65wy1r1a.js.map} +0 -0
  207. /package/dist/{chunk-1x9ghjpt.js.map → chunk-bsa6b82q.js.map} +0 -0
  208. /package/dist/{chunk-5xfpqda5.js.map → chunk-mv1rs9he.js.map} +0 -0
  209. /package/dist/{chunk-sgwgj2q0.js.map → chunk-pq657qcp.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Ii as N,Ji as _0,Ki as L0}from"./chunk-9k46m1vf.js";import{Pi as x0,Si as b}from"./chunk-fg2k18d2.js";import{Xk as BQ}from"./chunk-1ed75a7b.js";import{ol as Y0}from"./chunk-8ex0y47w.js";import{vl as iZ}from"./chunk-t2nsn0r2.js";class o0{static kind="controller";constructor(){}}class bQ extends o0{}function N0(Q){let Z=new Map;if(!Q)return Z;for(let $ of Q.split(";")){let X=$.indexOf("=");if(X===-1)continue;let G=$.slice(0,X).trim();if(!G)continue;Z.set(G,$.slice(X+1).trim())}return Z}function W1(Q){return N0(Q.headers.get("cookie"))}function p(Q){if(!/^\d+$/.test(Q))return null;let Z=Number(Q);return Number.isSafeInteger(Z)?Z:null}function t0(Q){if(!Q)return null;let Z=Q.trim();if(!/^bytes=/i.test(Z))return null;let X=Z.slice(6).split(",").map((D)=>D.trim()).filter((D)=>D!=="");if(X.length!==1)return null;let G=X[0],H=G.indexOf("-");if(H===-1)return null;let Y=G.slice(0,H),M=G.slice(H+1);if(Y===""){let D=p(M);if(D===null)return null;return{kind:"suffix",suffixLength:D}}let K=p(Y);if(K===null)return null;if(M==="")return{kind:"offset",start:K,end:null};let J=p(M);if(J===null||J<K)return null;return{kind:"offset",start:K,end:J}}function s0(Q,Z){if(!Number.isFinite(Z)||Z<=0)return null;let $,X;if(Q.kind==="suffix"){if(Q.suffixLength<=0)return null;$=Math.max(0,Z-Q.suffixLength),X=Z-1}else{if(Q.start>=Z)return null;if($=Q.start,X=Q.end===null?Z-1:Math.min(Q.end,Z-1),X<$)return null}return{start:$,end:X,length:X-$+1}}function z1(Q){if(Q.kind==="suffix")return`bytes=-${Q.suffixLength}`;return Q.end===null?`bytes=${Q.start}-`:`bytes=${Q.start}-${Q.end}`}function U1(Q){if(!Q)return null;let Z=/^bytes\s+(\d+)-(\d+)\/(\d+)$/i.exec(Q.trim());if(!Z)return null;let $=p(Z[1]),X=p(Z[2]),G=p(Z[3]);if($===null||X===null||G===null||X<$)return null;return{start:$,end:X,total:G}}function V1(Q,Z,$){return`bytes ${Q}-${Z}/${$}`}function r0(Q){return`bytes */${Q}`}class s extends N{errors={};constructor(Q){super("Validation error");this.name="ValidationError",this.errors=Q,this.payload={api:{status:400,data:{error:{kind:"validation_error",messages:Q,status:400}},headers:{"Content-Type":"application/json"}},view:{status:400}}}}function fQ(Q){let[Z,$]=Q.match(/\d+|\D+/g)??[];if(!Z||!$)return 0;let X=Number.parseInt(Z);switch($){case"B":return X;case"KB":return X*1024;case"MB":return X*1024*1024;case"GB":return X*1024*1024*1024;case"TB":return X*1024*1024*1024*1024;default:return 0}}function vQ(Q){switch(Q){case"image":return"image";case"png":return"image/png";case"jpg":return"image/jpeg";case"jpeg":return"image/jpeg";case"ttf":return"font/ttf";case"excel":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"csv":return"text/csv";case"word":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"pdf":return"application/pdf";case"json":return"application/json";default:return Q}}function a0(Q){if(typeof Q==="string"||Array.isArray(Q))return Q.length;return}function q0(Q){return typeof Q==="number"&&!Number.isNaN(Q)}var hQ=["required","string","boolean","number","email","password","min","max","gte","lte","file","fileType","fileSize","array","object","in"];class k extends Error{name="InvalidValidationRuleError"}function z0(Q,Z){let $=Z===void 0||Z.trim()===""?Number.NaN:Number(Z);if(Number.isNaN($))throw new k(`Validation rule "${Q}:${Z??""}" needs a number, e.g. "${Q}:3"`);return $}function e0(Q){let Z=Q.indexOf(":"),$=Z===-1?Q:Q.slice(0,Z),X=Z===-1?void 0:Q.slice(Z+1);switch($){case"required":return(G)=>{if(G instanceof Blob)return G.size>0;if(G===null||G===void 0)return!1;if(typeof G==="string"||Array.isArray(G))return G.length>0;return!0};case"string":return(G)=>typeof G==="string";case"boolean":return(G)=>typeof G==="boolean";case"number":return(G)=>q0(G);case"password":return(G)=>{return typeof G==="string"&&/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,}$/.test(G)};case"min":{let G=z0($,X);return(H)=>{let Y=a0(H);return Y!==void 0&&Y>=G}}case"max":{let G=z0($,X);return(H)=>{let Y=a0(H);return Y!==void 0&&Y<=G}}case"gte":{let G=z0($,X);return(H)=>q0(H)&&H>=G}case"lte":{let G=z0($,X);return(H)=>q0(H)&&H<=G}case"email":return(G)=>{return typeof G==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(G)};case"file":return(G)=>{return G instanceof Blob};case"fileType":{if(!X)throw new k('Validation rule "fileType" needs a type, e.g. "fileType:png" or "fileType:image"');let G=vQ(X);return(H)=>H instanceof Blob&&H.type.startsWith(G)}case"fileSize":{let G=fQ(X??"");if(G===0&&!/^0+(B|KB|MB|GB|TB)$/.test(X??""))throw new k(`Validation rule "fileSize:${X??""}" needs a whole size in B, KB, MB, GB or TB, e.g. "fileSize:5MB"`);return(H)=>H instanceof Blob&&H.size<=G}case"array":return(G)=>Array.isArray(G);case"object":return(G)=>typeof G==="object"&&G!==null&&!Array.isArray(G)&&!(G instanceof Blob);case"in":{let G=(X??"").split(",").filter((H)=>H!=="");if(G.length===0)throw new k('Validation rule "in" needs a comma-separated list, e.g. "in:draft,published"');return(H)=>typeof H==="string"&&G.includes(H)}default:throw new k(`Unknown validation rule "${Q}". Known rules: ${hQ.join(", ")}`)}}function u(Q){if(!Q.definition)throw Error(`gemi/ai: the recursive schema "${Q.name}" was used before its definition returned; \`self\` can be nested into the schema, but not parsed or emitted inside the callback`);return Q.definition}var R0=new WeakMap;function $Q(Q){return typeof Q==="object"&&Q!==null&&R0.has(Q)}function V0(Q){let Z=R0.get(Q);if(!Z)throw Error("gemi/ai: expected a schema built with `s`, got a foreign object");return Z}function mQ(Q){let Z={defs:{},cells:new Map},$=Q;if(Q.node.kind==="ref"){let G=u(Q.node.cell);$={...G,...Q.description?{description:Q.description}:{},optional:Q.optional,nullable:Q.nullable||G.nullable}}let X=a($,Z);return Object.keys(Z.defs).length>0?{...X,$defs:Z.defs}:X}function a(Q,Z){let $=(Q.optional||Q.nullable)&&Q.node.kind!=="json",X=uQ(pQ(Q.node,Z),$),G=[Q.description,cQ(Q.node)].filter(Boolean).join(" ");if(G&&X.$ref!==void 0)X={anyOf:[X]};return G?{description:G,...X}:X}function cQ(Q){let Z=[];if(Q.kind==="string"||Q.kind==="enum"){let $=Q.checks;if($?.format)Z.push(`Format: ${$.format.name}.`);if($?.minLength!==void 0)Z.push(`At least ${$.minLength} characters.`);if($?.maxLength!==void 0)Z.push(`At most ${$.maxLength} characters.`)}else if(Q.kind==="number"){let $=Q.checks;if($?.minimum!==void 0)Z.push(`Minimum ${$.minimum}.`);if($?.exclusiveMinimum!==void 0)Z.push(`Greater than ${$.exclusiveMinimum}.`);if($?.maximum!==void 0)Z.push(`Maximum ${$.maximum}.`);if($?.exclusiveMaximum!==void 0)Z.push(`Less than ${$.exclusiveMaximum}.`)}else if(Q.kind==="array"){let $=Q.checks;if($?.minItems!==void 0)Z.push(`At least ${$.minItems} items.`);if($?.maxItems!==void 0)Z.push(`At most ${$.maxItems} items.`)}return Z.join(" ")}function pQ(Q,Z){switch(Q.kind){case"string":return{type:"string"};case"number":return{type:Q.checks?.integer?"integer":"number"};case"boolean":return{type:"boolean"};case"literal":return{type:typeof Q.value,const:Q.value};case"enum":return{type:"string",enum:Q.values};case"array":return{type:"array",items:a(Q.item,Z)};case"object":return{type:"object",properties:Object.fromEntries(Object.entries(Q.shape).map(([$,X])=>[$,a(X,Z)])),required:Object.keys(Q.shape),additionalProperties:!1};case"union":return{anyOf:Q.members.map(($)=>a($,Z))};case"json":return{};case"ref":{let{cell:$}=Q,X=Z.cells.get($.name);if(X&&X!==$)throw Error(`gemi/ai: two different recursive schemas are named "${$.name}" in one schema; give each s.recursive(...) its own name`);if(!X)Z.cells.set($.name,$),Z.defs[$.name]={},Z.defs[$.name]=a(u($),Z);return{$ref:`#/$defs/${$.name}`}}}}function uQ(Q,Z){if(!Z)return Q;if(Q.anyOf)return{...Q,anyOf:[...Q.anyOf,{type:"null"}]};if(Q.enum||Q.const!==void 0)return{anyOf:[Q,{type:"null"}]};if(typeof Q.type==="string")return{...Q,type:[Q.type,"null"]};return{anyOf:[Q,{type:"null"}]}}function dQ(Q){if(Q===null)return"null";if(Array.isArray(Q))return"array";return typeof Q}function iQ(Q,Z){if(typeof Z==="number"&&!Number.isFinite(Z))return String(Z);if(Q.kind==="literal"||Q.kind==="enum"){if(typeof Z==="string"||typeof Z==="number"||typeof Z==="boolean")return JSON.stringify(Z)}return dQ(Z)}function XQ(Q){let Z=Q.node,$=(()=>{switch(Z.kind){case"number":return Z.checks?.integer?"integer":"number";case"string":case"boolean":return Z.kind;case"literal":return JSON.stringify(Z.value);case"enum":return`one of ${Z.values.map((X)=>JSON.stringify(X)).join(" | ")}`;case"array":return"array";case"object":return"object";case"union":return"one of the variants";case"json":return"a JSON value";case"ref":return XQ({...u(Z.cell),optional:!1,nullable:!1})}})();return Q.optional||Q.nullable?`${$} or null`:$}function lQ(Q){let Z="";for(let $ of Q)Z+=typeof $==="number"?`[${$}]`:Z?`.${$}`:$;return Z}function nQ(Q){let Z=lQ(Q);return Z?`${Z}: `:""}function w0(Q){return`${nQ(Q.path)}${Q.message}`}function B0(Q,Z){if(Z===null||Z===void 0)return Q.optional||Q.nullable?1:0;let $=Q.node;switch($.kind){case"string":return typeof Z==="string"?1:0;case"number":return typeof Z==="number"?1:0;case"boolean":return typeof Z==="boolean"?1:0;case"literal":return Z===$.value?10:0;case"enum":return typeof Z==="string"&&$.values.includes(Z)?10:0;case"array":return Array.isArray(Z)?1:0;case"object":{if(typeof Z!=="object"||Array.isArray(Z))return 0;let X=Z,G=1;for(let[H,Y]of Object.entries($.shape))G+=B0(Y,X[H]);return G}case"union":return $.members.reduce((X,G)=>Math.max(X,B0(G,Z)),0);case"json":return 1;case"ref":return GQ($.cell,Z,()=>1,()=>B0(u($.cell),Z))}}function GQ(Q,Z,$,X){if(typeof Z!=="object"||Z===null)return X();if(Q.active.has(Z))return $();Q.active.add(Z);try{return X()}finally{Q.active.delete(Z)}}function v(Q,Z,$,X){if(Q.optional&&(Z===null||Z===void 0))return{drop:!0,value:void 0};if(Q.nullable&&Z===null)return{drop:!1,value:null};return{drop:!1,value:oQ(Q,Z,$,X)}}function oQ(Q,Z,$,X){let G=Q.node,H=()=>{let Y=Z===void 0?"required":G.kind==="literal"?"const":G.kind==="enum"&&typeof Z==="string"?"enum":"type",M=Y==="const"?{allowedValue:G.value}:Y==="enum"?{allowedValues:G.values}:{};X.push({path:$,code:Y,message:`expected ${XQ(Q)}, got ${iQ(G,Z)}`,params:M});return};switch(G.kind){case"string":if(typeof Z!=="string")return H();return QQ(G.checks,Z,$,X),Z;case"number":if(typeof Z!=="number"||!Number.isFinite(Z))return H();if(G.checks?.integer&&!Number.isInteger(Z))return H();return sQ(G.checks,Z,$,X),Z;case"boolean":return typeof Z==="boolean"?Z:H();case"literal":return Z===G.value?Z:H();case"enum":if(typeof Z!=="string"||!G.values.includes(Z))return H();return QQ(G.checks,Z,$,X),Z;case"array":{if(!Array.isArray(Z))return H();let Y=Z.map((J,D)=>{let z=v(G.item,J,[...$,D],X);return z.drop?void 0:z.value}),{minItems:M,maxItems:K}=G.checks??{};if(M!==void 0&&Z.length<M)X.push({path:$,code:"minItems",message:`expected at least ${M} items, got ${Z.length}`,params:{limit:M}});if(K!==void 0&&Z.length>K)X.push({path:$,code:"maxItems",message:`expected at most ${K} items, got ${Z.length}`,params:{limit:K}});return Y}case"object":{if(typeof Z!=="object"||Z===null||Array.isArray(Z))return H();let Y=Z,M={};for(let[K,J]of Object.entries(G.shape)){let D=v(J,Y[K],[...$,K],X);if(!D.drop)M[K]=D.value}if(G.unknownKeys)for(let K of Object.keys(Y)){if(Object.hasOwn(G.shape,K)||Y[K]===void 0)continue;if(G.unknownKeys==="error"){X.push({path:[...$,K],code:"additionalProperties",message:"unknown key",params:{additionalProperty:K}});continue}Z0(Y[K],[...$,K],X,new Set),Object.defineProperty(M,K,{value:Y[K],enumerable:!0,writable:!0,configurable:!0})}return M}case"union":{let Y;for(let M of G.members){let K=[],J=v(M,Z,$,K);if(K.length===0)return J.drop?void 0:J.value;let D=B0(M,Z);if(!Y||D>Y.score)Y={issues:K,score:D}}X.push({path:$,code:"anyOf",message:`no matching variant; closest: ${Y.issues.map(w0).join("; ")}`,params:{closest:Y.issues}});return}case"json":if(Z===void 0)return H();return Z0(Z,$,X,new Set),Z;case"ref":return GQ(G.cell,Z,()=>{X.push({path:$,code:"type",message:"expected a finite tree, got a circular reference",params:{}});return},()=>v(u(G.cell),Z,$,X).value)}}function tQ(Q){let Z=0;for(let $ of Q)Z++;return Z}function QQ(Q,Z,$,X){if(!Q)return;let{minLength:G,maxLength:H,format:Y}=Q;if(G!==void 0||H!==void 0){let M=tQ(Z);if(G!==void 0&&M<G)X.push({path:$,code:"minLength",message:`expected at least ${G} characters, got ${M}`,params:{limit:G}});if(H!==void 0&&M>H)X.push({path:$,code:"maxLength",message:`expected at most ${H} characters, got ${M}`,params:{limit:H}})}if(Y){let M=!1;try{M=Y.test(Z)===!0}catch{}if(!M)X.push({path:$,code:"format",message:`expected a string in format "${Y.name}"`,params:{format:Y.name}})}}function sQ(Q,Z,$,X){if(!Q)return;let G=(H,Y,M,K)=>{if(Y===void 0||M(Y))return;X.push({path:$,code:H,message:`expected ${K} ${Y}, got ${Z}`,params:{limit:Y}})};G("minimum",Q.minimum,(H)=>Z>=H,"at least"),G("exclusiveMinimum",Q.exclusiveMinimum,(H)=>Z>H,"more than"),G("maximum",Q.maximum,(H)=>Z<=H,"at most"),G("exclusiveMaximum",Q.exclusiveMaximum,(H)=>Z<H,"less than")}function Z0(Q,Z,$,X,G=!0){let H=(M)=>{$.push({path:Z,code:"type",message:`expected a JSON value, got ${M}`,params:{}})};switch(typeof Q){case"undefined":case"string":case"boolean":return;case"number":if(!Number.isFinite(Q))H(String(Q));return;case"bigint":return H("a bigint");case"function":return H("a function");case"symbol":return H("a symbol")}if(Q===null)return;let Y=Q;if(X.has(Y))return H("a circular reference");X.add(Y);try{let M=G?Y.toJSON:void 0;if(typeof M==="function"){let K;try{K=M.call(Y)}catch{return H("a toJSON that threw")}if(K===void 0)return H("a toJSON that returns undefined");return Z0(K,Z,$,X,!1)}if(Array.isArray(Q))Q.forEach((K,J)=>Z0(K,[...Z,J],$,X));else for(let[K,J]of Object.entries(Y))Z0(J,[...Z,K],$,X)}finally{X.delete(Y)}}function E(Q){return P0(Q)}function P0(Q){let Z={toJSONSchema:()=>mQ(Q),parse($){let X=[],G=v(Q,$,[],X);if(X.length>0)throw Error(X.map(w0).join("; "));return G.drop?void 0:G.value},safeParse($){let X=[],G=v(Q,$,[],X);if(X.length>0)return{ok:!1,errors:X.map(w0)};return{ok:!0,value:G.drop?void 0:G.value}},validate($){let X=[],G=v(Q,$,[],X);if(X.length>0)return{ok:!1,issues:X};return{ok:!0,value:G.drop?void 0:G.value}},describe:($)=>P0({...Q,description:$}),optional:()=>P0({...Q,optional:!0}),nullable:()=>P0({...Q,nullable:!0,optional:!1})};return R0.set(Z,Q),Z}function x(Q){return{node:Q,optional:!1,nullable:!1}}var ZQ=["strip","error","passthrough"];class HQ extends Error{problems;constructor(Q){super(`gemi/ai: s.fromJSONSchema cannot model this schema:
2
+ import{Ji as N,Ki as _0,Li as L0}from"./chunk-cee5gq7t.js";import{Qi as x0,Ti as b}from"./chunk-0k8fk96c.js";import{Yk as BQ}from"./chunk-1fyn63ka.js";import{pl as Y0}from"./chunk-apga49vp.js";import{wl as iZ}from"./chunk-jzpbwvbt.js";class o0{static kind="controller";constructor(){}}class bQ extends o0{}function N0(Q){let Z=new Map;if(!Q)return Z;for(let $ of Q.split(";")){let X=$.indexOf("=");if(X===-1)continue;let G=$.slice(0,X).trim();if(!G)continue;Z.set(G,$.slice(X+1).trim())}return Z}function W1(Q){return N0(Q.headers.get("cookie"))}function p(Q){if(!/^\d+$/.test(Q))return null;let Z=Number(Q);return Number.isSafeInteger(Z)?Z:null}function t0(Q){if(!Q)return null;let Z=Q.trim();if(!/^bytes=/i.test(Z))return null;let X=Z.slice(6).split(",").map((D)=>D.trim()).filter((D)=>D!=="");if(X.length!==1)return null;let G=X[0],H=G.indexOf("-");if(H===-1)return null;let Y=G.slice(0,H),M=G.slice(H+1);if(Y===""){let D=p(M);if(D===null)return null;return{kind:"suffix",suffixLength:D}}let K=p(Y);if(K===null)return null;if(M==="")return{kind:"offset",start:K,end:null};let J=p(M);if(J===null||J<K)return null;return{kind:"offset",start:K,end:J}}function s0(Q,Z){if(!Number.isFinite(Z)||Z<=0)return null;let $,X;if(Q.kind==="suffix"){if(Q.suffixLength<=0)return null;$=Math.max(0,Z-Q.suffixLength),X=Z-1}else{if(Q.start>=Z)return null;if($=Q.start,X=Q.end===null?Z-1:Math.min(Q.end,Z-1),X<$)return null}return{start:$,end:X,length:X-$+1}}function z1(Q){if(Q.kind==="suffix")return`bytes=-${Q.suffixLength}`;return Q.end===null?`bytes=${Q.start}-`:`bytes=${Q.start}-${Q.end}`}function U1(Q){if(!Q)return null;let Z=/^bytes\s+(\d+)-(\d+)\/(\d+)$/i.exec(Q.trim());if(!Z)return null;let $=p(Z[1]),X=p(Z[2]),G=p(Z[3]);if($===null||X===null||G===null||X<$)return null;return{start:$,end:X,total:G}}function V1(Q,Z,$){return`bytes ${Q}-${Z}/${$}`}function r0(Q){return`bytes */${Q}`}class s extends N{errors={};constructor(Q){super("Validation error");this.name="ValidationError",this.errors=Q,this.payload={api:{status:400,data:{error:{kind:"validation_error",messages:Q,status:400}},headers:{"Content-Type":"application/json"}},view:{status:400}}}}function fQ(Q){let[Z,$]=Q.match(/\d+|\D+/g)??[];if(!Z||!$)return 0;let X=Number.parseInt(Z);switch($){case"B":return X;case"KB":return X*1024;case"MB":return X*1024*1024;case"GB":return X*1024*1024*1024;case"TB":return X*1024*1024*1024*1024;default:return 0}}function vQ(Q){switch(Q){case"image":return"image";case"png":return"image/png";case"jpg":return"image/jpeg";case"jpeg":return"image/jpeg";case"ttf":return"font/ttf";case"excel":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"csv":return"text/csv";case"word":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"pdf":return"application/pdf";case"json":return"application/json";default:return Q}}function a0(Q){if(typeof Q==="string"||Array.isArray(Q))return Q.length;return}function q0(Q){return typeof Q==="number"&&!Number.isNaN(Q)}var hQ=["required","string","boolean","number","email","password","min","max","gte","lte","file","fileType","fileSize","array","object","in"];class k extends Error{name="InvalidValidationRuleError"}function z0(Q,Z){let $=Z===void 0||Z.trim()===""?Number.NaN:Number(Z);if(Number.isNaN($))throw new k(`Validation rule "${Q}:${Z??""}" needs a number, e.g. "${Q}:3"`);return $}function e0(Q){let Z=Q.indexOf(":"),$=Z===-1?Q:Q.slice(0,Z),X=Z===-1?void 0:Q.slice(Z+1);switch($){case"required":return(G)=>{if(G instanceof Blob)return G.size>0;if(G===null||G===void 0)return!1;if(typeof G==="string"||Array.isArray(G))return G.length>0;return!0};case"string":return(G)=>typeof G==="string";case"boolean":return(G)=>typeof G==="boolean";case"number":return(G)=>q0(G);case"password":return(G)=>{return typeof G==="string"&&/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,}$/.test(G)};case"min":{let G=z0($,X);return(H)=>{let Y=a0(H);return Y!==void 0&&Y>=G}}case"max":{let G=z0($,X);return(H)=>{let Y=a0(H);return Y!==void 0&&Y<=G}}case"gte":{let G=z0($,X);return(H)=>q0(H)&&H>=G}case"lte":{let G=z0($,X);return(H)=>q0(H)&&H<=G}case"email":return(G)=>{return typeof G==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(G)};case"file":return(G)=>{return G instanceof Blob};case"fileType":{if(!X)throw new k('Validation rule "fileType" needs a type, e.g. "fileType:png" or "fileType:image"');let G=vQ(X);return(H)=>H instanceof Blob&&H.type.startsWith(G)}case"fileSize":{let G=fQ(X??"");if(G===0&&!/^0+(B|KB|MB|GB|TB)$/.test(X??""))throw new k(`Validation rule "fileSize:${X??""}" needs a whole size in B, KB, MB, GB or TB, e.g. "fileSize:5MB"`);return(H)=>H instanceof Blob&&H.size<=G}case"array":return(G)=>Array.isArray(G);case"object":return(G)=>typeof G==="object"&&G!==null&&!Array.isArray(G)&&!(G instanceof Blob);case"in":{let G=(X??"").split(",").filter((H)=>H!=="");if(G.length===0)throw new k('Validation rule "in" needs a comma-separated list, e.g. "in:draft,published"');return(H)=>typeof H==="string"&&G.includes(H)}default:throw new k(`Unknown validation rule "${Q}". Known rules: ${hQ.join(", ")}`)}}function u(Q){if(!Q.definition)throw Error(`gemi/ai: the recursive schema "${Q.name}" was used before its definition returned; \`self\` can be nested into the schema, but not parsed or emitted inside the callback`);return Q.definition}var R0=new WeakMap;function $Q(Q){return typeof Q==="object"&&Q!==null&&R0.has(Q)}function V0(Q){let Z=R0.get(Q);if(!Z)throw Error("gemi/ai: expected a schema built with `s`, got a foreign object");return Z}function mQ(Q){let Z={defs:{},cells:new Map},$=Q;if(Q.node.kind==="ref"){let G=u(Q.node.cell);$={...G,...Q.description?{description:Q.description}:{},optional:Q.optional,nullable:Q.nullable||G.nullable}}let X=a($,Z);return Object.keys(Z.defs).length>0?{...X,$defs:Z.defs}:X}function a(Q,Z){let $=(Q.optional||Q.nullable)&&Q.node.kind!=="json",X=uQ(pQ(Q.node,Z),$),G=[Q.description,cQ(Q.node)].filter(Boolean).join(" ");if(G&&X.$ref!==void 0)X={anyOf:[X]};return G?{description:G,...X}:X}function cQ(Q){let Z=[];if(Q.kind==="string"||Q.kind==="enum"){let $=Q.checks;if($?.format)Z.push(`Format: ${$.format.name}.`);if($?.minLength!==void 0)Z.push(`At least ${$.minLength} characters.`);if($?.maxLength!==void 0)Z.push(`At most ${$.maxLength} characters.`)}else if(Q.kind==="number"){let $=Q.checks;if($?.minimum!==void 0)Z.push(`Minimum ${$.minimum}.`);if($?.exclusiveMinimum!==void 0)Z.push(`Greater than ${$.exclusiveMinimum}.`);if($?.maximum!==void 0)Z.push(`Maximum ${$.maximum}.`);if($?.exclusiveMaximum!==void 0)Z.push(`Less than ${$.exclusiveMaximum}.`)}else if(Q.kind==="array"){let $=Q.checks;if($?.minItems!==void 0)Z.push(`At least ${$.minItems} items.`);if($?.maxItems!==void 0)Z.push(`At most ${$.maxItems} items.`)}return Z.join(" ")}function pQ(Q,Z){switch(Q.kind){case"string":return{type:"string"};case"number":return{type:Q.checks?.integer?"integer":"number"};case"boolean":return{type:"boolean"};case"literal":return{type:typeof Q.value,const:Q.value};case"enum":return{type:"string",enum:Q.values};case"array":return{type:"array",items:a(Q.item,Z)};case"object":return{type:"object",properties:Object.fromEntries(Object.entries(Q.shape).map(([$,X])=>[$,a(X,Z)])),required:Object.keys(Q.shape),additionalProperties:!1};case"union":return{anyOf:Q.members.map(($)=>a($,Z))};case"json":return{};case"ref":{let{cell:$}=Q,X=Z.cells.get($.name);if(X&&X!==$)throw Error(`gemi/ai: two different recursive schemas are named "${$.name}" in one schema; give each s.recursive(...) its own name`);if(!X)Z.cells.set($.name,$),Z.defs[$.name]={},Z.defs[$.name]=a(u($),Z);return{$ref:`#/$defs/${$.name}`}}}}function uQ(Q,Z){if(!Z)return Q;if(Q.anyOf)return{...Q,anyOf:[...Q.anyOf,{type:"null"}]};if(Q.enum||Q.const!==void 0)return{anyOf:[Q,{type:"null"}]};if(typeof Q.type==="string")return{...Q,type:[Q.type,"null"]};return{anyOf:[Q,{type:"null"}]}}function dQ(Q){if(Q===null)return"null";if(Array.isArray(Q))return"array";return typeof Q}function iQ(Q,Z){if(typeof Z==="number"&&!Number.isFinite(Z))return String(Z);if(Q.kind==="literal"||Q.kind==="enum"){if(typeof Z==="string"||typeof Z==="number"||typeof Z==="boolean")return JSON.stringify(Z)}return dQ(Z)}function XQ(Q){let Z=Q.node,$=(()=>{switch(Z.kind){case"number":return Z.checks?.integer?"integer":"number";case"string":case"boolean":return Z.kind;case"literal":return JSON.stringify(Z.value);case"enum":return`one of ${Z.values.map((X)=>JSON.stringify(X)).join(" | ")}`;case"array":return"array";case"object":return"object";case"union":return"one of the variants";case"json":return"a JSON value";case"ref":return XQ({...u(Z.cell),optional:!1,nullable:!1})}})();return Q.optional||Q.nullable?`${$} or null`:$}function lQ(Q){let Z="";for(let $ of Q)Z+=typeof $==="number"?`[${$}]`:Z?`.${$}`:$;return Z}function nQ(Q){let Z=lQ(Q);return Z?`${Z}: `:""}function w0(Q){return`${nQ(Q.path)}${Q.message}`}function B0(Q,Z){if(Z===null||Z===void 0)return Q.optional||Q.nullable?1:0;let $=Q.node;switch($.kind){case"string":return typeof Z==="string"?1:0;case"number":return typeof Z==="number"?1:0;case"boolean":return typeof Z==="boolean"?1:0;case"literal":return Z===$.value?10:0;case"enum":return typeof Z==="string"&&$.values.includes(Z)?10:0;case"array":return Array.isArray(Z)?1:0;case"object":{if(typeof Z!=="object"||Array.isArray(Z))return 0;let X=Z,G=1;for(let[H,Y]of Object.entries($.shape))G+=B0(Y,X[H]);return G}case"union":return $.members.reduce((X,G)=>Math.max(X,B0(G,Z)),0);case"json":return 1;case"ref":return GQ($.cell,Z,()=>1,()=>B0(u($.cell),Z))}}function GQ(Q,Z,$,X){if(typeof Z!=="object"||Z===null)return X();if(Q.active.has(Z))return $();Q.active.add(Z);try{return X()}finally{Q.active.delete(Z)}}function v(Q,Z,$,X){if(Q.optional&&(Z===null||Z===void 0))return{drop:!0,value:void 0};if(Q.nullable&&Z===null)return{drop:!1,value:null};return{drop:!1,value:oQ(Q,Z,$,X)}}function oQ(Q,Z,$,X){let G=Q.node,H=()=>{let Y=Z===void 0?"required":G.kind==="literal"?"const":G.kind==="enum"&&typeof Z==="string"?"enum":"type",M=Y==="const"?{allowedValue:G.value}:Y==="enum"?{allowedValues:G.values}:{};X.push({path:$,code:Y,message:`expected ${XQ(Q)}, got ${iQ(G,Z)}`,params:M});return};switch(G.kind){case"string":if(typeof Z!=="string")return H();return QQ(G.checks,Z,$,X),Z;case"number":if(typeof Z!=="number"||!Number.isFinite(Z))return H();if(G.checks?.integer&&!Number.isInteger(Z))return H();return sQ(G.checks,Z,$,X),Z;case"boolean":return typeof Z==="boolean"?Z:H();case"literal":return Z===G.value?Z:H();case"enum":if(typeof Z!=="string"||!G.values.includes(Z))return H();return QQ(G.checks,Z,$,X),Z;case"array":{if(!Array.isArray(Z))return H();let Y=Z.map((J,D)=>{let z=v(G.item,J,[...$,D],X);return z.drop?void 0:z.value}),{minItems:M,maxItems:K}=G.checks??{};if(M!==void 0&&Z.length<M)X.push({path:$,code:"minItems",message:`expected at least ${M} items, got ${Z.length}`,params:{limit:M}});if(K!==void 0&&Z.length>K)X.push({path:$,code:"maxItems",message:`expected at most ${K} items, got ${Z.length}`,params:{limit:K}});return Y}case"object":{if(typeof Z!=="object"||Z===null||Array.isArray(Z))return H();let Y=Z,M={};for(let[K,J]of Object.entries(G.shape)){let D=v(J,Y[K],[...$,K],X);if(!D.drop)M[K]=D.value}if(G.unknownKeys)for(let K of Object.keys(Y)){if(Object.hasOwn(G.shape,K)||Y[K]===void 0)continue;if(G.unknownKeys==="error"){X.push({path:[...$,K],code:"additionalProperties",message:"unknown key",params:{additionalProperty:K}});continue}Z0(Y[K],[...$,K],X,new Set),Object.defineProperty(M,K,{value:Y[K],enumerable:!0,writable:!0,configurable:!0})}return M}case"union":{let Y;for(let M of G.members){let K=[],J=v(M,Z,$,K);if(K.length===0)return J.drop?void 0:J.value;let D=B0(M,Z);if(!Y||D>Y.score)Y={issues:K,score:D}}X.push({path:$,code:"anyOf",message:`no matching variant; closest: ${Y.issues.map(w0).join("; ")}`,params:{closest:Y.issues}});return}case"json":if(Z===void 0)return H();return Z0(Z,$,X,new Set),Z;case"ref":return GQ(G.cell,Z,()=>{X.push({path:$,code:"type",message:"expected a finite tree, got a circular reference",params:{}});return},()=>v(u(G.cell),Z,$,X).value)}}function tQ(Q){let Z=0;for(let $ of Q)Z++;return Z}function QQ(Q,Z,$,X){if(!Q)return;let{minLength:G,maxLength:H,format:Y}=Q;if(G!==void 0||H!==void 0){let M=tQ(Z);if(G!==void 0&&M<G)X.push({path:$,code:"minLength",message:`expected at least ${G} characters, got ${M}`,params:{limit:G}});if(H!==void 0&&M>H)X.push({path:$,code:"maxLength",message:`expected at most ${H} characters, got ${M}`,params:{limit:H}})}if(Y){let M=!1;try{M=Y.test(Z)===!0}catch{}if(!M)X.push({path:$,code:"format",message:`expected a string in format "${Y.name}"`,params:{format:Y.name}})}}function sQ(Q,Z,$,X){if(!Q)return;let G=(H,Y,M,K)=>{if(Y===void 0||M(Y))return;X.push({path:$,code:H,message:`expected ${K} ${Y}, got ${Z}`,params:{limit:Y}})};G("minimum",Q.minimum,(H)=>Z>=H,"at least"),G("exclusiveMinimum",Q.exclusiveMinimum,(H)=>Z>H,"more than"),G("maximum",Q.maximum,(H)=>Z<=H,"at most"),G("exclusiveMaximum",Q.exclusiveMaximum,(H)=>Z<H,"less than")}function Z0(Q,Z,$,X,G=!0){let H=(M)=>{$.push({path:Z,code:"type",message:`expected a JSON value, got ${M}`,params:{}})};switch(typeof Q){case"undefined":case"string":case"boolean":return;case"number":if(!Number.isFinite(Q))H(String(Q));return;case"bigint":return H("a bigint");case"function":return H("a function");case"symbol":return H("a symbol")}if(Q===null)return;let Y=Q;if(X.has(Y))return H("a circular reference");X.add(Y);try{let M=G?Y.toJSON:void 0;if(typeof M==="function"){let K;try{K=M.call(Y)}catch{return H("a toJSON that threw")}if(K===void 0)return H("a toJSON that returns undefined");return Z0(K,Z,$,X,!1)}if(Array.isArray(Q))Q.forEach((K,J)=>Z0(K,[...Z,J],$,X));else for(let[K,J]of Object.entries(Y))Z0(J,[...Z,K],$,X)}finally{X.delete(Y)}}function E(Q){return P0(Q)}function P0(Q){let Z={toJSONSchema:()=>mQ(Q),parse($){let X=[],G=v(Q,$,[],X);if(X.length>0)throw Error(X.map(w0).join("; "));return G.drop?void 0:G.value},safeParse($){let X=[],G=v(Q,$,[],X);if(X.length>0)return{ok:!1,errors:X.map(w0)};return{ok:!0,value:G.drop?void 0:G.value}},validate($){let X=[],G=v(Q,$,[],X);if(X.length>0)return{ok:!1,issues:X};return{ok:!0,value:G.drop?void 0:G.value}},describe:($)=>P0({...Q,description:$}),optional:()=>P0({...Q,optional:!0}),nullable:()=>P0({...Q,nullable:!0,optional:!1})};return R0.set(Z,Q),Z}function x(Q){return{node:Q,optional:!1,nullable:!1}}var ZQ=["strip","error","passthrough"];class HQ extends Error{problems;constructor(Q){super(`gemi/ai: s.fromJSONSchema cannot model this schema:
3
3
  ${Q.map((Z)=>`- ${Z}`).join(`
4
4
  `)}`);this.name="JSONSchemaError",this.problems=Q}}var rQ=new Set(["title","$schema","$id","$comment","examples","default","deprecated","readOnly","writeOnly"]),r={string:["minLength","maxLength","format"],number:["minimum","maximum","exclusiveMinimum","exclusiveMaximum"],integer:["minimum","maximum","exclusiveMinimum","exclusiveMaximum"],boolean:[],object:["properties","required","additionalProperties"],array:["items","minItems","maxItems"]};function U0(Q){return typeof Q==="object"&&Q!==null&&!Array.isArray(Q)}function j0(Q,Z,$,X){let G=(W,V=$)=>{X.push(V?`${V}: ${W}`:W);return},H=(W)=>$?`${$}.${W}`:W;if(!U0(Q))return G("expected a schema object");let Y=new Set(Z.ignoreKeywords??[]),M=(W)=>rQ.has(W)||W.startsWith("x-")||Y.has(W),K=!1,J=Q.type;if(Array.isArray(J)){let W=J.filter((V)=>V!=="null");if(W.length!==1)return G(`type ${JSON.stringify(J)} is not supported; only one type, optionally with "null". Use anyOf for alternatives`,H("type"));K=W.length<J.length,J=W[0]}if(J!==void 0&&(typeof J!=="string"||!(J in r)))return G(`type ${JSON.stringify(J)} is not supported; expected one of ${Object.keys(r).join(", ")}`,H("type"));let D=new Set(["type","description","enum","const","anyOf",...J?r[J]:[]]),z=!1;for(let W of Object.keys(Q)){if(D.has(W)||M(W))continue;z=!0;let V=Object.entries(r).find(([,U])=>U.includes(W));G(V&&V[0]!==J?`"${W}" applies to type ${V[0]}, and this schema is ${J?`type ${J}`:"untyped"}`:`"${W}" is not supported by s.fromJSONSchema`,H(W))}if(z)return;if(Q.description!==void 0&&typeof Q.description!=="string")return G("expected a string",H("description"));let O=Q.description,B=(W)=>({node:W,optional:!1,nullable:K,...O?{description:O}:{}});if(Q.anyOf!==void 0){if(J!==void 0||Q.enum!==void 0||Q.const!==void 0)return G("anyOf cannot be combined with type, enum or const here",H("anyOf"));if(!Array.isArray(Q.anyOf)||Q.anyOf.length===0)return G("expected a non-empty array",H("anyOf"));let W=[],V=!1;if(Q.anyOf.forEach((U,P)=>{if(U0(U)&&U.type==="null"&&Object.keys(U).length===1){K=!0;return}let F=j0(U,Z,H(`anyOf[${P}]`),X);if(F)W.push(F);else V=!0}),V)return;if(W.length===0)return G("anyOf has only null in it",H("anyOf"));if(W.length===1){let U=W[0];return{...U,nullable:U.nullable||K,...O?{description:O}:{}}}return B({kind:"union",members:W})}if(Q.const!==void 0){let W=Q.const;if(typeof W!=="string"&&typeof W!=="number"&&typeof W!=="boolean")return G("only a string, number or boolean const is supported",H("const"));if(J!==void 0&&typeof W!==(J==="integer"?"number":J))return G(`const ${JSON.stringify(W)} is not of type ${J}`,H("const"));return B({kind:"literal",value:W})}let _;if(J==="string"){if(_=aQ(Q,Z,H,X),_===null)return}if(Q.enum!==void 0){if(!Array.isArray(Q.enum)||Q.enum.length===0)return G("expected a non-empty array",H("enum"));let W=Q.enum.filter((P)=>P!==null);if(W.length<Q.enum.length)K=!0;let V=W.find((P)=>!(typeof P==="string"||typeof P==="number"||typeof P==="boolean")||J!==void 0&&typeof P!==(J==="integer"?"number":J));if(V!==void 0||W.length===0)return G(J?`every value must be of type ${J}${W.length===0?", and there must be one":`; ${JSON.stringify(V)} is not`}`:"only strings, numbers and booleans are supported",H("enum"));if(W.every((P)=>typeof P==="string"))return B({kind:"enum",values:[...new Set(W)],..._?{checks:_}:{}});let U=[...new Set(W)];if(U.length===1)return B({kind:"literal",value:U[0]});return B({kind:"union",members:U.map((P)=>x({kind:"literal",value:P}))})}switch(J){case void 0:return G("a schema needs a type, an enum, a const or an anyOf");case"string":return B({kind:"string",..._?{checks:_}:{}});case"number":case"integer":{let W=J==="integer"?{integer:!0}:{},V=!1;for(let U of r.number){let P=Q[U];if(P===void 0)continue;if(typeof P!=="number"||!Number.isFinite(P)){G("expected a number",H(U)),V=!0;continue}W[U]=P}if(V)return;return B({kind:"number",...Object.keys(W).length>0?{checks:W}:{}})}case"boolean":return B({kind:"boolean"});case"array":{if(!U0(Q.items))return G('an array needs "items" to be one schema (tuples are not supported)',H("items"));let W={},V=!1;for(let P of["minItems","maxItems"]){let F=Q[P];if(F===void 0)continue;if(typeof F!=="number"||!Number.isInteger(F)||F<0){G("expected a non-negative integer",H(P)),V=!0;continue}W[P]=F}let U=j0(Q.items,Z,H("items"),X);if(!U||V)return;return B({kind:"array",item:U,...Object.keys(W).length>0?{checks:W}:{}})}case"object":{let W=Q.properties??{};if(!U0(W))return G("expected an object",H("properties"));if(Q.additionalProperties!==void 0&&Q.additionalProperties!==!1)return G("only false is supported; a record with arbitrary keys has no strict-mode form (use s.json())",H("additionalProperties"));let V=Q.required??[];if(!Array.isArray(V)||!V.every((A)=>typeof A==="string"))return G("expected an array of property names",H("required"));let U=V.filter((A)=>!Object.hasOwn(W,A));if(U.length>0)return G(`lists properties the schema doesn't have: ${U.join(", ")}`,H("required"));let P={},F=!1;for(let[A,C]of Object.entries(W)){let R=j0(C,Z,H(`properties.${A}`),X);if(!R){F=!0;continue}P[A]=V.includes(A)?R:{...R,optional:!0}}if(F)return;let I=Z.unknownKeys;return B({kind:"object",shape:P,...I==="error"||I==="passthrough"?{unknownKeys:I}:{}})}}return}function aQ(Q,Z,$,X){let G={},H=!1;for(let Y of["minLength","maxLength"]){let M=Q[Y];if(M===void 0)continue;if(typeof M!=="number"||!Number.isInteger(M)||M<0){X.push(`${$(Y)}: expected a non-negative integer`),H=!0;continue}G[Y]=M}if(Q.format!==void 0){let Y=Q.format,M=typeof Y==="string"?Z.formats?.[Y]:void 0;if(typeof Y!=="string")X.push(`${$("format")}: expected a string`),H=!0;else if(!M||!Object.hasOwn(Z.formats,Y))X.push(`${$("format")}: unknown format ${JSON.stringify(Y)}; pass a check for it in the formats option`),H=!0;else G.format={name:Y,test:eQ(M)}}if(H)return null;return Object.keys(G).length>0?G:void 0}function eQ(Q){if(Q===!0)return()=>!0;if(Q instanceof RegExp)return(Z)=>{return Q.lastIndex=0,Q.test(Z)};return Q}var _1={string:()=>E(x({kind:"string"})),number:()=>E(x({kind:"number"})),boolean:()=>E(x({kind:"boolean"})),literal:(Q)=>E(x({kind:"literal",value:Q})),enum:(Q)=>E(x({kind:"enum",values:Q})),object:(Q)=>E(x({kind:"object",shape:Object.fromEntries(Object.entries(Q).map(([Z,$])=>[Z,V0($)]))})),array:(Q)=>E(x({kind:"array",item:V0(Q)})),union:(Q)=>E(x({kind:"union",members:Q.map(V0)})),json:()=>E(x({kind:"json"})),recursive:ZZ,fromJSONSchema:(Q,Z={})=>{let $=[];if(Z.unknownKeys!==void 0&&!ZQ.includes(Z.unknownKeys))throw Error(`gemi/ai: s.fromJSONSchema's unknownKeys option must be one of ${ZQ.map((G)=>JSON.stringify(G)).join(", ")}, got ${JSON.stringify(Z.unknownKeys)}`);let X=j0(Q,Z,"",$);if(!X||$.length>0)throw new HQ($.length>0?$:["unreadable schema"]);return E(X)}};function L1(Q){let Z=R0.get(Q);if(Z)return Q0(Z.node);return e(Q.toJSONSchema())}function e(Q){if(!(Q.$ref!==void 0||Q.type!==void 0||Q.enum!==void 0||Q.const!==void 0||Q.anyOf!==void 0||Q.properties!==void 0||Q.items!==void 0))return!1;for(let $ of Object.values(Q.properties??{}))if(!e($))return!1;if(Q.items&&!e(Q.items))return!1;for(let $ of Q.anyOf??[])if(!e($))return!1;for(let $ of Object.values(Q.$defs??{}))if(!e($))return!1;return!0}function Q0(Q,Z=new Set){switch(Q.kind){case"string":case"number":case"boolean":case"literal":case"enum":return!0;case"object":return Object.values(Q.shape).every(($)=>Q0($.node,Z));case"array":return Q0(Q.item.node,Z);case"union":return Q.members.every(($)=>Q0($.node,Z));case"json":return!1;case"ref":if(Z.has(Q.cell))return!0;return Z.add(Q.cell),Q0(u(Q.cell).node,Z)}}function E0(Q,Z,$=new Set){let X=Q.node;if(X.kind==="union")return X.members.some((G)=>E0(G,Z,$));if(X.kind!=="ref")return!1;if(X.cell===Z)return!0;if($.has(X.cell)||!X.cell.definition)return!1;return $.add(X.cell),E0(X.cell.definition,Z,$)}var QZ=/^[A-Za-z_][A-Za-z0-9_-]{0,63}$/;function ZZ(Q,Z){if(typeof Q!=="string"||!QZ.test(Q))throw Error(`gemi/ai: s.recursive needs a name of letters, digits, "_" and "-" (starting with a letter or "_", at most 64), got ${JSON.stringify(Q)}`);let $={name:Q,active:new Set},X=()=>x({kind:"ref",cell:$}),G=V0(Z(E(X())));if(G.optional)throw Error(`gemi/ai: the recursive schema "${Q}" is optional() as a whole; mark the places that use it optional instead`);if(E0(G,$))throw Error(`gemi/ai: the recursive schema "${Q}" refers to itself outside any object or array, so it describes no finite value; nest \`self\` in an s.object(...) field or an s.array(...)`);return $.definition=G,E(X())}function YQ(Q){if(typeof Q!=="string")return null;let[Z]=Q.split(";",1),$=Z.trim().toLowerCase();return $===""?null:$}function KQ(Q){if(Q===null)return!1;if(Q==="application/json")return!0;let Z=Q.indexOf("/");return Z>0&&Q.endsWith("+json")&&Q.length>Z+1+5}var $0=new WeakMap;function F1(Q,Z,$,X){$0.set(Q,{clientAddress:Z,...$?{grant:Object.freeze({...$,scopes:Object.freeze([...$.scopes])})}:{},...X?{progress:X}:{}})}function MQ(Q){return $0.get(Q)?.progress}function JQ(Q){return $0.get(Q)?.grant}function WQ(Q){return $0.has(Q)}function I1(Q){return $0.get(Q)?.clientAddress}var DQ=new WeakMap;function T1(Q,Z){DQ.set(Q,Z)}function zQ(Q){return DQ.get(Q)??null}var S0=new WeakMap;function N1(Q,Z){let $=S0.get(Q)??[];if(!$.includes(Z))S0.set(Q,[...$,Z])}function q1(Q){return S0.get(Q)??[]}class d{data;constructor(Q){this.data=Q}get(Q){return this.data[Q]}has(Q){return this.data[Q]!==void 0}toJSON(){return this.data}}function UQ(Q){return typeof Q==="object"&&Q!==null&&!(Q instanceof Blob)}function $Z(Q,Z){if(!Z.includes(".")||Object.hasOwn(Q,Z))return[{path:[Z],value:Q[Z]}];let $=[{path:[],value:Q}];for(let X of Z.split(".")){let G=[];for(let{path:H,value:Y}of $){if(X==="*"){if(Array.isArray(Y))Y.forEach((M,K)=>G.push({path:[...H,K],value:M}));else if(UQ(Y))for(let[M,K]of Object.entries(Y))G.push({path:[...H,M],value:K});continue}if(Array.isArray(Y)&&/^\d+$/.test(X)){G.push({path:[...H,Number(X)],value:Y[Number(X)]});continue}G.push({path:[...H,X],value:UQ(Y)&&Object.hasOwn(Y,X)?Y[X]:void 0})}$=G}return $}function VQ(Q){return Q.join(".")}class XZ{kind;rawRequest;headers;cookies;search;schema={};routePath;params;domain;state;constructor(Q,Z,$,X){if(!Q){let K=b.getStore().req;this.params=K.params,this.rawRequest=K.rawRequest,this.kind=K.kind,this.routePath=K.routePath,this.domain=K.domain??null,this.state=K.state??new x0}else this.params=Z,this.rawRequest=Q,this.routePath=X,this.kind=$??"api",this.domain=zQ(Q),this.state=new x0;this.headers=this.rawRequest.headers;let G=N0(this.rawRequest.headers.get("Cookie")),H=new URL(this.rawRequest.url),Y=new Map;for(let[K,J]of H.searchParams)if(Y.has(K)){let D=Y.get(K);if(Array.isArray(D))D.push(J),Y.set(K,D);else Y.set(K,[D,J])}else Y.set(K,J);let M=Object.fromEntries(Y.entries());this.search=new d(M),this.cookies=G}locale(){return b.getStore().locale}ctx(){return b.getStore()}isModelOriginated(){return WQ(this.rawRequest)}mcpGrant(){return JQ(this.rawRequest)??null}reportProgress(Q){let Z=MQ(this.rawRequest);if(!Z)return!1;return Z(Q),!0}get signal(){return this.rawRequest.signal}range(){return t0(this.rawRequest.headers.get("Range"))}refine(Q){return{}}async parseBody(){let Q=YQ(this.rawRequest.headers.get("Content-Type"));if(KQ(Q))return new d(await this.parseJsonBody());if(Q==="application/x-www-form-urlencoded"||Q==="multipart/form-data"){let Z;try{Z=await this.rawRequest.formData()}catch(X){if(X instanceof N)throw X;throw new N("The request body could not be read as a form.")}let $=new Map;for(let[X,G]of Z.entries())if($.has(X)){let H=$.get(X);if(Array.isArray(H))H.push(G);else $.set(X,[H,G])}else $.set(X,G);return new d(Object.fromEntries($.entries()))}return new d({})}async parseJsonBody(){if(!this.rawRequest.body)return{};let Q;try{Q=await this.rawRequest.text()}catch($){if($ instanceof N)throw $;throw new N("The request body could not be read.")}if(Q.trim()==="")return{};let Z;try{Z=JSON.parse(Q)}catch{throw new N("The request body is not valid JSON.")}if(Z===null||typeof Z!=="object")throw new N("The request body must be a JSON object.");return Z}validateInput(Q){if($Q(this.schema))return this.validateWithSchema(Q);let Z=Q.toJSON()??{},$={},X=Object.entries(this.schema).map(([G,H])=>({key:G,rules:Object.entries(H).map(([Y,M])=>({rule:Y,message:M,check:typeof M==="function"?null:this.ruleFor(G,Y)}))}));for(let{key:G,rules:H}of X)for(let{path:Y,value:M}of $Z(Z,G)){let K=this.checkField(M,H);if(K.length>0){let J=$[VQ(Y)]??=[];for(let D of K)if(!J.includes(D))J.push(D)}}if(this.addRefinements($,Z),Object.keys($).length>0)throw new s($);return Q}checkField(Q,Z){let $=Z.some(({rule:H})=>H==="required"),X=Q===void 0||Q===null||Q==="",G=[];for(let{rule:H,message:Y,check:M}of Z){let K=Y,J=!1;if(typeof Y==="function")K=Y(Q),J=typeof K>"u";else J=M(Q);if(J)continue;if(X&&!$)continue;if(H==="required")return[String(K)];if(!G.includes(String(K)))G.push(String(K))}return G}validateWithSchema(Q){let Z=this.schema.validate(Q.toJSON()),$={};if("issues"in Z)for(let G of Z.issues){let H=VQ(G.path),Y=$[H]??=[];if(!Y.includes(G.message))Y.push(G.message)}let X="value"in Z?new d(Z.value):Q;if(this.addRefinements($,X.toJSON()),Object.keys($).length>0)throw new s($);return X}addRefinements(Q,Z){for(let[$,X]of Object.entries(this.refine(Z)??{})){let G=Q[$]??[];Q[$]=G.includes(X)?G:[...G,X]}}ruleFor(Q,Z){try{return e0(Z)}catch($){if($ instanceof k)throw new k(`${this.constructor.name}.schema.${Q}: ${$.message}`);throw $}}async input(){return this.validateInput(await this.parseBody())}async safeInput(){let Q=await this.parseBody();try{return{isValid:!0,errors:{},input:this.validateInput(Q)}}catch(Z){if(!(Z instanceof s))throw Z;return{isValid:!1,errors:Z.errors,input:Q}}}}class GZ extends N{error;constructor(Q="Not authorized"){super(Q);this.name="AuthorizationError",this.error=Q,this.payload={api:{status:401,data:{error:L0("authorization",this.error,401)}},view:{}}}}class k0 extends N{static apiStatus=403;error;constructor(Q="Insufficient permissions"){super(Q);this.name="InsufficientPermissionsError",this.error=Q,this.payload={api:{status:k0.apiStatus,data:{error:L0("permission",this.error,k0.apiStatus)}},view:{status:403}}}}class g0 extends N{total;constructor(Q){super("Range not satisfiable");this.total=Q;this.name="RangeNotSatisfiableError",this.payload={api:{status:416,data:{error:_0("range_not_satisfiable","Range not satisfiable",416)},headers:{"Content-Range":r0(Q),"Accept-Ranges":"bytes","Cache-Control":"no-store"}},view:{}}}}class HZ extends N{constructor(Q="Not found"){super(Q);this.name="NotFoundError",this.payload={api:{status:404,data:{error:_0("not_found",Q,404)},headers:{"Cache-Control":"no-store"}},view:{status:404}}}}class h extends N{fileName;constructor(Q){super("File not found");this.fileName=Q;this.name="FileNotFoundError",this.payload={api:{status:404,data:{error:_0("not_found","Not found",404)},headers:{"Cache-Control":"no-store"}},view:{status:404}}}}class YZ extends N{constructor(Q={}){super("Authentication error");this.name="AuthenticationError";let Z=Q.redirectTo??"/auth/sign-in";this.payload={api:{status:401,data:{error:L0("authentication","Authentication error",401)}},viewData:{status:200,data:{},headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate"},directive:{kind:"Redirect",path:Z}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:Z}}}}}class X0{static getFacadeAccessor(){throw Error(`Facade [${this.name}] does not implement getFacadeAccessor().`)}static getFacadeRoot(){return BQ(this.getFacadeAccessor())}}import{Buffer as KZ}from"buffer";function C0(Q){if(typeof Q!=="string"||/^[\s/.]*$/.test(Q))throw Error(`Refusing to delete by prefix ${JSON.stringify(Q)}: it would match the whole store`)}class G0{async putStream({body:Q,...Z},$={}){$.signal?.throwIfAborted();let X=[],G=Q.getReader();try{for(;;){$.signal?.throwIfAborted();let{done:H,value:Y}=await G.read();if(H)break;X.push(Y)}}catch(H){throw await G.cancel(H).catch(()=>{}),H}return this.put({...Z,body:KZ.concat(X)},$)}async*objects(Q,Z={}){throw Error(`${this.constructor.name} does not implement objects(). Override it to list objects in this backend.`)}async deletePrefix(Q,Z={}){C0(Q);let $=[];for await(let X of this.objects(Q,Z))$.push(X.name);for(let X of $)Z.signal?.throwIfAborted(),await this.delete({name:X,bucket:Z.bucket});return $.length}async delete(Q){throw Error(`${this.constructor.name} does not implement delete(). Override it to remove objects from this backend.`)}async read(Q){let Z=typeof Q==="string"?{name:Q}:Q,$=await this.fetch({name:Z.name,bucket:Z.bucket});if(!$.ok)throw new h(Z.name);let X=$.headers.get("Content-Type")??"application/octet-stream",G=$.headers.get("ETag")??void 0,H=$.headers.get("Last-Modified"),Y=H?new Date(H):void 0;if(Z.range){let J=await $.blob();return{body:J,start:0,end:J.size-1,total:J.size,partial:!1,type:X,etag:G,lastModified:Y,name:Z.name}}let M=Number($.headers.get("Content-Length")),K=Number.isFinite(M)?M:0;return{body:$.body,start:0,end:K-1,total:K,partial:!1,type:X,etag:G,lastModified:Y,name:Z.name}}async size(Q){let Z=typeof Q==="string"?Q:Q.name,$=typeof Q==="string"?void 0:Q.bucket,X=await this.fetch({name:Z,bucket:$});if(!X.ok)throw new h(Z);let G=Number(X.headers.get("Content-Length"));if(Number.isFinite(G))return await X.body?.cancel(),G;return(await X.blob()).size}}function PQ(Q,Z){if(!Z)return Q;let $=Q.getReader(),X=!1,G,H=()=>{if(X=!0,G)Z.removeEventListener("abort",G)};return new ReadableStream({start(Y){if(G=()=>{if(X)return;H(),Y.error(Z.reason),$.cancel(Z.reason).catch(()=>{})},Z.aborted)G();else Z.addEventListener("abort",G,{once:!0})},async pull(Y){let M;try{M=await $.read()}catch(K){if(X)return;H(),Y.error(K);return}if(X)return;if(M.done){H(),Y.close();return}Y.enqueue(M.value)},cancel(Y){return H(),$.cancel(Y)}},{highWaterMark:0})}import{mkdir as MZ,open as JZ,readdir as y0,rename as WZ,rmdir as DZ,stat as zZ,unlink as jQ}from"fs/promises";import{dirname as UZ,isAbsolute as b0,relative as H0,resolve as i,sep as f}from"path";class f0 extends G0{configured;constructor(Q){super();this.configured=Q}get folderPath(){return this.configured??`${Y0()}/storage`}async put(Q,{signal:Z}={}){Z?.throwIfAborted();let $,X;if(Q instanceof Blob)$=Q,X=`${Bun.randomUUIDv7()}.${Q.type.split("/")[1].split(";")[0]}`;else $=Q.body,X=Q.name;let G=$ instanceof Buffer?$:$ instanceof Blob||$ instanceof File?Buffer.from(await $.arrayBuffer()):"",H=`${this.folderPath}/${X}`;return Z?.throwIfAborted(),await Bun.write(H,G),X}async putStream({name:Q,body:Z},{signal:$}={}){let X=Z.getReader(),G=null;try{if($?.throwIfAborted(),!Q)throw Error("Object name has to be specified");let H=i(this.folderPath),Y=i(H,Q),M=H0(H,Y);if(!M||M===".."||M.startsWith(`..${f}`)||b0(M))throw Error(`Refusing to write "${Q}": it is outside the storage folder`);await MZ(UZ(Y),{recursive:!0}),G=`${Y}.${Bun.randomUUIDv7()}.partial`;let K=await JZ(G,"wx");try{for(;;){$?.throwIfAborted();let{done:J,value:D}=await X.read();if(J)break;for(let z=0;z<D.byteLength;){let{bytesWritten:O}=await K.write(D,z);z+=O}}}finally{await K.close()}return $?.throwIfAborted(),await WZ(G,Y),Q}catch(H){if(await X.cancel(H).catch(()=>{}),G)await jQ(G).catch(()=>{});throw H}}async fetch(Q,{signal:Z}={}){Z?.throwIfAborted();let $=process.env.BUCKET_NAME,X;if(typeof Q==="string")X=Q;else $=Q.bucket??$,X=Q.name;if(!X)throw Error("Object name has to be specified");let G=`${this.folderPath}/${X}`,H=Bun.file(G),Y=PQ(Bun.file(G).stream(),Z),M=new Date(H.lastModified).toUTCString();return new Response(Y,{headers:{"Content-Type":H.type,"Content-Length":String(H.size),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":M}})}async read(Q){let Z=typeof Q==="string"?{name:Q}:Q,{name:$,range:X=null}=Z;if(!$)throw Error("Object name has to be specified");let G=Bun.file(`${this.folderPath}/${$}`);if(!await G.exists())throw new h($);let H=G.size,Y=X?s0(X,H):null;if(X&&!Y)throw new g0(H);let M=Y?.start??0,K=Y?Y.end:H-1;return{body:Y?G.slice(M,K+1):G,start:M,end:K,total:H,partial:Boolean(Y),type:G.type||"application/octet-stream",lastModified:new Date(G.lastModified),name:$}}async size(Q){let Z=typeof Q==="string"?Q:Q.name,$=Bun.file(`${this.folderPath}/${Z}`);if(!await $.exists())throw new h(Z);return $.size}async delete(Q){let Z=typeof Q==="string"?Q:Q.name;if(!Z)throw Error("Object name has to be specified");let $=i(this.folderPath),X=i($,Z),G=H0($,X);if(!G||G===".."||G.startsWith(`..${f}`)||b0(G))throw Error(`Refusing to delete "${Z}": it is outside the storage folder`);try{await jQ(X)}catch(H){if(H?.code==="ENOENT")return;throw H}}resolvePrefix(Q){let Z=i(this.folderPath),$=Q.lastIndexOf("/"),X=$===-1?"":Q.slice(0,$),G=$===-1?Q:Q.slice($+1),H=i(Z,X),Y=H0(Z,H);if(Y===".."||Y.startsWith(`..${f}`)||b0(Y))throw Error(`Refusing to list "${Q}": it is outside the storage folder`);let M=Y.split(f).join("/");return{root:Z,dir:H,match:M?`${M}/${G}`:G}}async*objects(Q,{signal:Z}={}){Z?.throwIfAborted();let{root:$,dir:X,match:G}=this.resolvePrefix(Q),H=[],Y=async(M)=>{let K;try{K=await y0(M,{withFileTypes:!0})}catch(J){if(J?.code==="ENOENT"||J?.code==="ENOTDIR")return;throw J}for(let J of K){let D=`${M}${f}${J.name}`,z=H0($,D).split(f).join("/");if(J.isDirectory()){if(`${z}/`.startsWith(G)||G.startsWith(`${z}/`))await Y(D)}else if(J.isFile()&&z.startsWith(G))H.push(z)}};await Y(X),H.sort();for(let M of H){Z?.throwIfAborted();let K;try{K=await zZ(`${$}/${M}`)}catch(J){if(J?.code==="ENOENT")continue;throw J}yield{name:M,size:K.size,lastModified:K.mtime}}}async deletePrefix(Q,Z={}){C0(Q);let{root:$,match:X}=this.resolvePrefix(Q);C0(X);let G=await super.deletePrefix(Q,Z);if(G>0)await this.pruneEmptyDirs($,X);return G}async pruneEmptyDirs(Q,Z){let $=[],X=async(G)=>{let H;try{H=await y0(G,{withFileTypes:!0})}catch{return}for(let Y of H){if(!Y.isDirectory())continue;let M=`${G}${f}${Y.name}`,K=H0(Q,M).split(f).join("/");if(`${K}/`.startsWith(Z)||Z.startsWith(`${K}/`)){if(await X(M),`${K}/`.startsWith(Z))$.push(M)}}};await X(Q);for(let G of $)try{await DZ(G)}catch{}}async list(){return await y0(this.folderPath)}}function Y8(Q){return Q}function RQ(){return{driver:new f0}}class v0{static token="filesystem";driver;constructor(Q={}){this.driver=Q.driver??RQ().driver}}class q extends Error{code="safe-fetch";url;constructor(Q,Z,$){super(Q,$);this.name=new.target.name,this.url=Z}}class m extends q{reason;code="invalid-url";constructor(Q,Z,$){super($,Q);this.reason=Z}}class O0 extends q{host;reason;code="blocked-host";constructor(Q,Z,$){super($==="denied"?`Requests to ${Z} are not allowed.`:`${Z} is not on the list of hosts this request may reach.`,Q);this.host=Z;this.reason=$}}class l extends q{host;address;range;code="blocked-address";constructor(Q,Z,$,X){super(Z===$?`${$} is not a public address (${X}).`:`${Z} resolves to ${$}, which is not a public address (${X}).`,Q);this.host=Z;this.address=$;this.range=X}}class F0 extends q{host;code="dns";constructor(Q,Z,$){super(`Couldn't resolve ${Z}.`,Q,{cause:$});this.host=Z}}class I0 extends q{phase;ms;code="timeout";constructor(Q,Z,$){super(Z==="connect"?`Couldn't connect within ${$} ms.`:`The request didn't finish within ${$} ms.`,Q);this.phase=Z;this.ms=$}}class A0 extends q{limit;code="too-large";constructor(Q,Z){super(`The response is larger than ${Z} bytes.`,Q);this.limit=Z}}class K0 extends q{contentType;allowed;code="content-type";constructor(Q,Z,$){super(`The response is ${Z??"of no content type"}, not ${$.join(" or ")}.`,Q);this.contentType=Z;this.allowed=$}}class h0 extends q{limit;code="too-many-redirects";constructor(Q,Z){super(`More than ${Z} redirects.`,Q);this.limit=Z}}class n extends q{code="network";constructor(Q,Z){super(`The request failed: ${Z instanceof Error?Z.message:String(Z)}`,Q,{cause:Z})}}class m0 extends q{status;code="http-status";constructor(Q,Z){super(`The server answered ${Z}.`,Q);this.status=Z}}function VZ(Q){if(Q==="")return null;let Z=Q.split(".");if(Z.length>1&&Z[Z.length-1]==="")Z.pop();if(Z.length===0||Z.length>4)return null;let $=[];for(let H of Z){let Y=BZ(H);if(Y===null)return null;$.push(Y)}let X=$.pop();for(let H of $)if(H>255)return null;if(X>=256**(4-$.length))return null;let G=X;return $.forEach((H,Y)=>{G+=H*256**(3-Y)}),new Uint8Array([Math.floor(G/16777216)&255,Math.floor(G/65536)&255,Math.floor(G/256)&255,G&255])}function BZ(Q){if(Q==="")return null;let Z=Q,$=10;if(/^0x/i.test(Z)){if(Z=Z.slice(2),$=16,Z==="")return 0}else if(Z.length>1&&Z.startsWith("0"))Z=Z.slice(1),$=8;if(!($===16?/^[0-9a-f]+$/i:$===8?/^[0-7]+$/:/^[0-9]+$/).test(Z))return null;let G=parseInt(Z,$);return Number.isSafeInteger(G)?G:null}function _Q(Q){let Z=Q;if(Z.startsWith("[")&&Z.endsWith("]"))Z=Z.slice(1,-1);let $=Z.indexOf("%");if($!==-1)Z=Z.slice(0,$);if(!Z.includes(":"))return null;let X=Z.split("::");if(X.length>2)return null;let G=(J,D)=>{if(J==="")return[];let z=[],O=J.split(":");for(let B=0;B<O.length;B++){let _=O[B];if(D&&B===O.length-1&&_.includes(".")){if(!/^\d{1,3}(\.\d{1,3}){3}$/.test(_))return null;let W=_.split(".").map(Number);if(W.some((V)=>V>255))return null;z.push(W[0]<<8|W[1],W[2]<<8|W[3]);continue}if(!/^[0-9a-f]{1,4}$/i.test(_))return null;z.push(parseInt(_,16))}return z},H=G(X[0],X.length===1),Y=X.length===2?G(X[1],!0):[];if(!H||!Y)return null;let M;if(X.length===2){let J=8-H.length-Y.length;if(J<1)return null;M=[...H,...Array.from({length:J},()=>0),...Y]}else M=H;if(M.length!==8)return null;let K=new Uint8Array(16);return M.forEach((J,D)=>{K[D*2]=J>>8,K[D*2+1]=J&255}),K}function M0(Q){let Z=_Q(Q);if(Z)return{family:6,bytes:Z};let $=VZ(Q);if($)return{family:4,bytes:$};return null}function c(Q){if(Q.family===6&&PZ(Q.bytes))return{family:4,bytes:Q.bytes.slice(12)};return Q}function PZ(Q){for(let Z=0;Z<10;Z++)if(Q[Z]!==0)return!1;return Q[10]===255&&Q[11]===255}function J0(Q){if(Q.family===4)return Array.from(Q.bytes).join(".");let Z=[];for(let $=0;$<16;$+=2)Z.push((Q.bytes[$]<<8|Q.bytes[$+1]).toString(16));return Z.join(":")}function o(Q){let Z=Q.lastIndexOf("/"),$=Z===-1?Q:Q.slice(0,Z),X=/^[0-9.]+$/.test($)?jZ($):_Q($);if(!X)return null;let G=c(X.length===4?{family:4,bytes:X}:{family:6,bytes:X}),H=G.family===4?32:128,Y=H;if(Z!==-1){let M=Q.slice(Z+1);if(!/^\d{1,3}$/.test(M))return null;if(Y=Number(M),X.length===16&&G.family===4)Y-=96;if(Y<0||Y>H)return null}return{family:G.family,bytes:G.bytes,prefix:Y}}function jZ(Q){return/^\d{1,3}(\.\d{1,3}){3}$/.test(Q)&&Q.split(".").every((Z)=>Number(Z)<=255)?new Uint8Array(Q.split(".").map(Number)):null}function g(Q,Z){let $=c(Q);if($.family!==Z.family)return!1;let X=Z.prefix;for(let G=0;X>0;G++){let H=Math.min(8,X),Y=255<<8-H&255;if(($.bytes[G]&Y)!==(Z.bytes[G]&Y))return!1;X-=H}return!0}var L=(Q,Z)=>({cidr:o(Q),kind:Z,text:Q}),RZ=[L("0.0.0.0/8","unspecified"),L("10.0.0.0/8","private"),L("100.64.0.0/10","shared"),L("127.0.0.0/8","loopback"),L("169.254.169.254/32","metadata"),L("169.254.0.0/16","link-local"),L("168.63.129.16/32","metadata"),L("172.16.0.0/12","private"),L("192.0.0.0/24","reserved"),L("192.0.2.0/24","documentation"),L("192.88.99.0/24","reserved"),L("192.168.0.0/16","private"),L("198.18.0.0/15","benchmarking"),L("198.51.100.0/24","documentation"),L("203.0.113.0/24","documentation"),L("224.0.0.0/4","multicast"),L("255.255.255.255/32","broadcast"),L("240.0.0.0/4","reserved")],_Z=[L("::/128","unspecified"),L("::1/128","loopback"),L("64:ff9b:1::/48","private"),L("::/8","reserved"),L("100::/64","reserved"),L("2001:db8::/32","documentation"),L("2001::/23","reserved"),L("3fff::/20","documentation"),L("fd00:ec2::254/128","metadata"),L("fc00::/7","unique-local"),L("fe80::/10","link-local"),L("fec0::/10","private"),L("ff00::/8","multicast")],LZ=o("64:ff9b::/96"),CZ=o("2002::/16"),OZ=o("2000::/3");function T0(Q){let Z=typeof Q==="string"?M0(Q):Q;if(!Z)return{kind:"reserved",range:"not an IP address"};let $=c(Z);if($.family===4){let G=RZ.find((H)=>g($,H.cidr));return G?{kind:G.kind,range:G.text}:null}if(g($,LZ))return T0({family:4,bytes:$.bytes.slice(12)});if(g($,CZ))return T0({family:4,bytes:$.bytes.slice(2,6)});let X=_Z.find((G)=>g($,G.cidr));if(X)return{kind:X.kind,range:X.text};return g($,OZ)?null:{kind:"reserved",range:"outside 2000::/3"}}function LQ(Q,Z){let $=c(Q),X=c(Z);return $.family===X.family&&$.bytes.every((G,H)=>G===X.bytes[H])}import{lookup as FZ}from"dns/promises";import*as IZ from"http";import*as AZ from"https";import*as t from"zlib";class c0 extends Response{#Q;#Z;address;constructor(Q,Z,$){super(Q,Z);this.#Q=$.url,this.#Z=$.redirected,this.address=$.address}get url(){return this.#Q}get redirected(){return this.#Z}}var W0={timeout:30000,connectTimeout:1e4,maxSize:10485760,maxRedirects:5,ports:[80,443]},TZ=new Set([301,302,303,307,308]),NZ=new Set([101,103,204,205,304]),qZ=["host","connection","content-length","transfer-encoding","keep-alive","upgrade"],wZ=["authorization","cookie","proxy-authorization"];async function FQ(Q,Z={}){let $=EZ(Z),X=Z.signal;X?.throwIfAborted();let G=new AbortController,H=G.signal,Y=String(Q),M=(z)=>{if(!H.aborted)G.abort(z)},K=setTimeout(()=>M(new I0(Y,"total",$.timeout)),$.timeout),J=()=>M(X.reason);X?.addEventListener("abort",J,{once:!0});let D=()=>{clearTimeout(K),X?.removeEventListener("abort",J)};try{let z=OQ(Y,$),O=(Z.method??"GET").toUpperCase(),B=new Headers(Z.headers);for(let W of qZ)B.delete(W);if(!B.has("accept"))B.set("accept","*/*");if(!B.has("user-agent"))B.set("user-agent","gemi");if(!B.has("accept-encoding"))B.set("accept-encoding","gzip, deflate, br");let _=await gZ(O,Z.body,B);for(let W=0;;W++){Y=z.href;let{request:V,response:U,address:P}=await yZ(z,O,B,_,$,H),F=U.statusCode??0,I=U.headers.location;if(TZ.has(F)&&I&&Z.redirect!=="manual"){if(V.destroy(),W>=$.maxRedirects)throw new h0(z.href,$.maxRedirects);let A;try{A=new URL(I,z)}catch{throw new m(I,"malformed",`The redirect to "${I}" is not a URL.`)}if(F===303?O!=="HEAD":(F===301||F===302)&&O==="POST"){O="GET",_=null;let C=[];B.forEach((R,j)=>{if(j.startsWith("content-"))C.push(j)});for(let R of C)B.delete(R)}if(A.origin!==z.origin)for(let C of wZ)B.delete(C);z=OQ(A.href,$);continue}return bZ({url:z,hop:W,method:O,request:V,response:U,address:P,policy:$,signal:H,release:D})}}catch(z){throw D(),H.aborted?H.reason:z}}function EZ(Q){let Z=(X,G)=>{let H={hosts:[],ranges:[]};for(let Y of X){let M=Y.includes("/")||Y.includes(":")||/^[\d.]+$/.test(Y),K=M?o(Y):null;if(K)H.ranges.push(K);else if(!M&&/^(\*\.)?[a-z0-9-]+(\.[a-z0-9-]+)*\.?$/i.test(Y))H.hosts.push(IQ(Y));else throw TypeError(`safeFetch: "${Y}" in ${G} is not a host name or an IP range.`)}return H},$=Q.allowPrivate;return{timeout:Q.timeout??W0.timeout,connectTimeout:Q.connectTimeout??W0.connectTimeout,maxSize:Q.maxSize??W0.maxSize,maxRedirects:Q.maxRedirects??W0.maxRedirects,ports:Q.ports??W0.ports,allow:Q.allow&&Q.allow.length>0?Z(Q.allow,"allow"):null,deny:Z(Q.deny??[],"deny"),allowPrivate:$===!0?!0:Z($||[],"allowPrivate").ranges,contentTypes:Q.contentTypes?.length?Q.contentTypes:null,resolve:Q.resolve??SZ}}async function SZ(Q){return(await FZ(Q,{all:!0,verbatim:!0})).map(($)=>$.address)}function IQ(Q){return Q.toLowerCase().replace(/\.$/,"")}function CQ(Q,Z){return Z.some(($)=>$.startsWith("*.")?Q.endsWith($.slice(1)):Q===$)}function OQ(Q,Z){let $;try{$=new URL(Q)}catch{throw new m(Q,"malformed",`"${Q}" is not a URL.`)}if($.protocol!=="http:"&&$.protocol!=="https:")throw new m($.href,"scheme",`Only http and https URLs can be fetched, not ${$.protocol.slice(0,-1)}.`);if($.username||$.password)throw new m($.href,"credentials","The URL has a username or password in it.");let X=AQ($);if(Z.ports!=="any"&&!Z.ports.includes(X))throw new m($.href,"port",`Port ${X} is not allowed.`);return $}function AQ(Q){return Q.port?Number(Q.port):Q.protocol==="https:"?443:80}async function xZ(Q,Z,$){let X=IQ(Q.hostname.replace(/^\[(.*)\]$/,"$1")),G=M0(X),H=G!==null&&(X.includes(":")||/^\d+\.\d+\.\d+\.\d+$/.test(X));if(!H&&CQ(X,Z.deny.hosts))throw new O0(Q.href,X,"denied");let Y=!H&&Z.allow!==null&&CQ(X,Z.allow.hosts);if(Z.allow&&!Y&&Z.allow.ranges.length===0)throw new O0(Q.href,X,"not-allowed");let M;if(H)M=[G];else{let K;try{K=await kZ(Z.resolve(X),$)}catch(J){if($.aborted)throw $.reason;throw new F0(Q.href,X,J)}if(M=K.map((J)=>M0(J)).filter((J)=>J!==null),M.length===0)throw new F0(Q.href,X)}for(let K of M){let J=J0(K);if(Z.deny.ranges.some((z)=>g(K,z)))throw new l(Q.href,X,J,"denied");if(Z.allow&&!Y&&!Z.allow.ranges.some((z)=>g(K,z)))throw new l(Q.href,X,J,"not-allowed");let D=T0(K);if(D&&Z.allowPrivate!==!0&&!Z.allowPrivate.some((z)=>g(K,z)))throw new l(Q.href,X,J,D.kind)}return{host:X,addresses:M,isLiteral:H}}function kZ(Q,Z){if(Z.aborted)return Promise.reject(Z.reason);return new Promise(($,X)=>{let G=()=>X(Z.reason);Z.addEventListener("abort",G,{once:!0}),Q.then((H)=>{Z.removeEventListener("abort",G),$(H)},(H)=>{Z.removeEventListener("abort",G),X(H)})})}async function gZ(Q,Z,$){if(Z===void 0||Z===null)return null;if(Q==="GET"||Q==="HEAD")throw TypeError(`safeFetch: a ${Q} request can't have a body.`);let X=new Request("http://body.invalid/",{method:"POST",body:Z}),G=X.headers.get("content-type");if(G&&!$.has("content-type"))$.set("content-type",G);return new Uint8Array(await X.arrayBuffer())}async function yZ(Q,Z,$,X,G,H){let Y=new AbortController,M=setTimeout(()=>Y.abort(new I0(Q.href,"connect",G.connectTimeout)),G.connectTimeout),K=AbortSignal.any([H,Y.signal]);try{let{host:J,addresses:D,isLiteral:z}=await xZ(Q,G,K),O=Q.protocol==="https:",B={};if($.forEach((_,W)=>{B[W]=_}),X)B["content-length"]=String(X.byteLength);return await new Promise((_,W)=>{let V={method:Z,host:J,port:AQ(Q),path:`${Q.pathname}${Q.search}`,headers:B,agent:!1,lookup:(C,R,j)=>{let w=R?.family,T=D.filter((D0)=>!w||D0.family===w);if(T.length===0)j(Object.assign(Error(`No IPv${w} address for ${J}`),{code:"ENOTFOUND"}));else if(R?.all)j(null,T.map((D0)=>({address:J0(D0),family:D0.family})));else j(null,J0(T[0]),T[0].family)}};if(O&&!z)V.servername=J;let U=(O?AZ:IZ).request(V),P=null,F=(C)=>{K.removeEventListener("abort",I),U.destroy(),W(C)},I=()=>F(K.aborted?K.reason:H.reason);K.addEventListener("abort",I,{once:!0});let A=(C)=>{let R=C?.remoteAddress;if(!R||P!==null)return!0;let j=M0(R);if(!j||!D.some((w)=>LQ(w,j)))return F(new l(Q.href,J,R,"not-allowed")),!1;return P=J0(c(j)),!0};U.once("socket",(C)=>{let R=()=>{if(A(C)&&!O)clearTimeout(M)};if(C.connecting)C.once("connect",R);else R();if(O)C.once("secureConnect",()=>clearTimeout(M))}),U.once("response",(C)=>{if(clearTimeout(M),C.on("error",()=>{}),!A(C.socket))return;K.removeEventListener("abort",I),_({request:U,response:C,address:P})}),U.on("error",(C)=>{if(K.aborted)return F(K.reason);F(C instanceof q?C:new n(Q.href,C))}),U.end(X??void 0)})}finally{clearTimeout(M)}}function bZ({url:Q,hop:Z,method:$,request:X,response:G,address:H,policy:Y,signal:M,release:K}){let J=G.statusCode??0;if(J<200||J>599)throw X.destroy(),new n(Q.href,Error(`Unexpected status ${J}`));let D=new Headers,z=G.rawHeaders;for(let R=0;R<z.length;R+=2)D.append(z[R],z[R+1]);if(Y.contentTypes){let R=D.get("content-type")?.split(";")[0].trim().toLowerCase()??null;if(!R||!Y.contentTypes.some((j)=>fZ(R,j)))throw X.destroy(),new K0(Q.href,R,Y.contentTypes)}let O={url:Q.href,redirected:Z>0,address:H},B={status:J,statusText:G.statusMessage??"",headers:D};if($==="HEAD"||NZ.has(J))return X.destroy(),K(),new c0(null,B,O);let _=D.get("content-encoding")?.trim().toLowerCase(),W=_==="gzip"||_==="x-gzip"?t.createGunzip():_==="deflate"?t.createInflate():_==="br"?t.createBrotliDecompress():null,V=Number(D.get("content-length"));if(!W&&Number.isFinite(V)&&V>Y.maxSize)throw X.destroy(),new A0(Q.href,Y.maxSize);if(W)D.delete("content-encoding"),D.delete("content-length");let U=W?G.pipe(W):G,P=0,F=!1,I=()=>{},A=()=>{F=!0,M.removeEventListener("abort",I),K()},C=new ReadableStream({start(R){let j=(T)=>{if(F)return;if(A(),T===void 0)R.close();else X.destroy(),W?.destroy(),R.error(T)};if(I=()=>j(M.reason),M.addEventListener("abort",I,{once:!0}),M.aborted)return I();U.on("data",(T)=>{if(F)return;if(P+=T.byteLength,P>Y.maxSize)return j(new A0(Q.href,Y.maxSize));if(R.enqueue(new Uint8Array(T)),(R.desiredSize??1)<=0)U.pause()}),U.once("end",()=>j());let w=(T)=>j(T instanceof q?T:new n(Q.href,T));if(U.on("error",w),W)G.on("error",w);G.once("aborted",()=>j(new n(Q.href,Error("The response was cut off."))))},pull(){U.resume()},cancel(){if(F)return;A(),X.destroy(),W?.destroy()}});return new c0(C,B,O)}function fZ(Q,Z){let $=Z.toLowerCase();return $.endsWith("/*")?Q.startsWith($.slice(0,-1)):Q===$}function NQ(Q){return mZ(Q)??pZ(Q)??uZ(Q)}var p0=4096,vZ={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/avif":"avif","image/heic":"heic","image/heif":"heif","image/bmp":"bmp","image/tiff":"tiff","image/x-icon":"ico","image/svg+xml":"svg","audio/mpeg":"mp3","audio/aac":"aac","audio/mp4":"m4a","audio/ogg":"ogg","audio/flac":"flac","audio/wav":"wav","video/mp4":"mp4","video/quicktime":"mov","video/webm":"webm","video/x-matroska":"mkv","video/x-msvideo":"avi","font/woff":"woff","font/woff2":"woff2","font/ttf":"ttf","font/otf":"otf","application/pdf":"pdf","application/zip":"zip","application/gzip":"gz","application/xml":"xml","text/html":"html","text/plain":"txt","application/octet-stream":"bin"};function qQ(Q){return vZ[Q]??"bin"}function S(Q,Z,$=0){if(Q.length<$+Z.length)return!1;return Z.every((X,G)=>Q[$+G]===X)}function y(Q,Z,$){return String.fromCharCode(...Q.subarray(Z,$))}var hZ={avif:"image/avif",avis:"image/avif",heic:"image/heic",heix:"image/heic",hevc:"image/heic",hevx:"image/heic",heim:"image/heic",heis:"image/heic",mif1:"image/heif",msf1:"image/heif","qt ":"video/quicktime","M4A ":"audio/mp4","M4B ":"audio/mp4"};function mZ(Q){if(S(Q,[137,80,78,71,13,10,26,10]))return"image/png";if(S(Q,[255,216,255]))return"image/jpeg";if(Q.length>=6&&(y(Q,0,6)==="GIF87a"||y(Q,0,6)==="GIF89a"))return"image/gif";if(Q.length>=12&&y(Q,0,4)==="RIFF"){let Z=y(Q,8,12);if(Z==="WEBP")return"image/webp";if(Z==="WAVE")return"audio/wav";if(Z==="AVI ")return"video/x-msvideo"}if(Q.length>=12&&y(Q,4,8)==="ftyp"){let Z=y(Q,8,12);return hZ[Z]??"video/mp4"}if(S(Q,[73,73,42,0])||S(Q,[77,77,0,42]))return"image/tiff";if(S(Q,[66,77])&&S(Q,[0,0,0,0],6))return"image/bmp";if(S(Q,[0,0,1,0])&&Q.length>=6&&Q[4]>0)return"image/x-icon";if(S(Q,[37,80,68,70,45]))return"application/pdf";if(S(Q,[80,75,3,4]))return"application/zip";if(S(Q,[31,139]))return"application/gzip";if(S(Q,[26,69,223,163]))return y(Q,0,Math.min(Q.length,64)).includes("webm")?"video/webm":"video/x-matroska";if(Q.length>=4){let Z=y(Q,0,4);if(Z==="OggS")return"audio/ogg";if(Z==="fLaC")return"audio/flac";if(Z==="wOFF")return"font/woff";if(Z==="wOF2")return"font/woff2";if(Z==="OTTO")return"font/otf"}if(S(Q,[0,1,0,0,0]))return"font/ttf";if(Q.length>=3&&y(Q,0,3)==="ID3")return"audio/mpeg";if(Q.length>=2&&Q[0]===255){if((Q[1]&246)===240)return"audio/aac";if((Q[1]&224)===224&&(Q[1]&6)!==0)return"audio/mpeg"}return null}var cZ=["!doctype html","html","head","script","iframe","h1","div","font","table","a","style","title","b","body","br","p","!--"];function pZ(Q){let Z=new TextDecoder("utf-8",{fatal:!1}).decode(Q);if(Z.charCodeAt(0)===65279)Z=Z.slice(1);if(Z=Z.trimStart(),!Z.startsWith("<"))return null;let $=Z.toLowerCase(),X=$;for(;;){X=X.trimStart();let G=/^(<\?[\s\S]*?\?>|<!--[\s\S]*?-->|<!doctype[^>]*>)/.exec(X);if(!G)break;X=X.slice(G[0].length)}if(/^<svg[\s>/]/.test(X))return"image/svg+xml";for(let G of cZ){if(!$.startsWith(`<${G}`))continue;if(/^[\s>]/.test($.charAt(G.length+1)))return"text/html"}if(/^<(html|head|body)[\s>]/.test(X))return"text/html";if($.startsWith("<?xml"))return"application/xml";return null}function uZ(Q){if(Q.length===0)return"application/octet-stream";for(let Z of Q)if(Z<32&&Z!==9&&Z!==10&&Z!==12&&Z!==13&&Z!==27)return"application/octet-stream";try{return new TextDecoder("utf-8",{fatal:!0}).decode(Q,{stream:!0}),"text/plain"}catch{return"application/octet-stream"}}var dZ=new Set(["text/html","application/xhtml+xml","image/svg+xml","text/xml","application/xml","text/xsl","application/xslt+xml"]);function TQ(Q){let Z=Q.split(";")[0].trim().toLowerCase();return dZ.has(Z)||Z.endsWith("+xml")}function wQ(Q,Z){let $=Q.split(";")[0].trim().toLowerCase();return Z.some((X)=>{let G=X.split(";")[0].trim().toLowerCase();if(G==="*/*"||G==="*")return!TQ($);if(G.endsWith("/*"))return $.startsWith(G.slice(0,-1))&&!TQ($);return $===G})}import{Buffer as nZ}from"buffer";async function EQ(Q){try{return(await import("sharp")).default}catch(Z){throw Error(`${Q} requires the 'sharp' package. Install it with \`bun add sharp\`.`,{cause:Z})}}async function SQ(Q,Z,$={}){let{name:X,directory:G,bucket:H,maxSize:Y,timeout:M,contentTypes:K,signal:J}=$;if(X!==void 0&&G!==void 0)throw TypeError("Storage.putFromUrl(): pass `name` or `directory`, not both.");if(X!==void 0&&!X)throw TypeError("Storage.putFromUrl(): `name` is empty.");let D=await FQ(Z,{...$.fetch,method:"GET",redirect:"follow",contentTypes:void 0,signal:J,timeout:M,maxSize:Y});if(!D.ok)throw await D.body?.cancel().catch(()=>{}),new m0(D.url,D.status);let z=(D.body??new Response(new Uint8Array).body).getReader(),O=async(j)=>{throw await z.cancel(j).catch(()=>{}),j},B=[],_=0,W=!1;while(_<p0){let{done:j,value:w}=await z.read();if(j){W=!0;break}B.push(w),_+=w.byteLength}let V=lZ(B,_),U=NQ(V.subarray(0,Math.min(_,p0))),P=K?.length?K:["*/*"];if(!wQ(U,P))await O(new K0(D.url,U,P));let F=X??[(G??"").replace(/\/+$/,""),`${Bun.randomUUIDv7()}.${qQ(U)}`].filter(Boolean).join("/"),I=_,A=new ReadableStream({start(j){if(_>0)j.enqueue(V);if(W)j.close()},async pull(j){let{done:w,value:T}=await z.read();if(w){j.close();return}I+=T.byteLength,j.enqueue(T)},cancel(j){return z.cancel(j)}}),C={name:F,bucket:H,body:A,contentType:U},R;try{R=Q.putStream?await Q.putStream(C,{signal:J}):await G0.prototype.putStream.call(Q,C,{signal:J})}catch(j){throw await O(j),j}return{name:R,contentType:U,size:I,url:D.url}}function lZ(Q,Z){if(Q.length===1)return Q[0];let $=new Uint8Array(Z),X=0;for(let G of Q)$.set(G,X),X+=G.byteLength;return $}class oZ extends X0{static getFacadeAccessor(){return v0}static async put(Q,Z={}){return this.getFacadeRoot().driver.put(Q,Z)}static async putFromUrl(Q,Z={}){return SQ(this.getFacadeRoot().driver,Q,Z)}static async metadata(Q){let Z=nZ.from(await Q.arrayBuffer()),$=await EQ("Storage.metadata()");try{return await $(Z).metadata()}catch{return{}}}static async fetch(Q,Z={}){return Z.signal?.throwIfAborted(),this.getFacadeRoot().driver.fetch(Q,Z)}static async read(Q,Z={}){let $=typeof Q==="string"?{name:Q}:{...Q},X="range"in Z?Z.range??null:$.range!==void 0?$.range:b.getStore()?.rangeRequest??null;return this.getFacadeRoot().driver.read({...$,range:X})}static list(Q){return this.getFacadeRoot().driver.list(Q)}static objects(Q,Z={}){return this.getFacadeRoot().driver.objects(Q,Z)}static async deletePrefix(Q,Z={}){return this.getFacadeRoot().driver.deletePrefix(Q,Z)}static async delete(Q){return this.getFacadeRoot().driver.delete(Q)}}import{mkdir as d0,readdir as aZ,access as eZ}from"fs/promises";var u0=["debug","info","notice","warning","error","critical","alert","emergency"],tZ=u0.indexOf("warning");function kQ(Q){if(!Q)return-1;if(Q===!0)return 0;let Z=u0.indexOf(Q);return Z===-1?0:Z}function sZ(){let Q=new WeakSet;return function(Z,$){if(typeof $==="bigint")return $.toString();if($ instanceof Error){let X={name:$.name,message:$.message,stack:$.stack};for(let G of Object.keys($))X[G]=$[G];if($.cause!==void 0)X.cause=$.cause;return X}if($!==null&&typeof $==="object"){if(Q.has($))return"[Circular]";Q.add($)}return $}}function xQ(Q){try{return JSON.stringify(Q,sZ())}catch{return'"[Unserializable]"'}}function rZ(Q,Z){if(Z==="json")return xQ({...Q.metadata,timestamp:Q.timestamp,level:Q.level,message:Q.message});let $=Object.keys(Q.metadata).length>0;return`${Q.timestamp} ${Q.level.toUpperCase()} ${Q.message}${$?` ${xQ(Q.metadata)}`:""}`}function gQ(Q,Z){let $=u0.indexOf(Q.level);if(Z.threshold===-1||$<Z.threshold)return;try{let X=rZ(Q,Z.format)+`
5
5
  `;if($>=tZ)process.stderr.write(X);else process.stdout.write(X)}catch{}}async function i0(Q){try{return await eZ(Q),!0}catch{return!1}}class l0{config;static token="log";writer;isReady=!1;flushTimeout;fileSize=0;writerSize=0;isCreatingFile=!1;bootPromise=null;currentLogFilePath;get logsDirPath(){return`${Y0()}/storage/logs`}consoleThreshold;constructor(Q){this.config=Q;this.consoleThreshold=kQ(Q.console)}boot(){if(!this.bootPromise)this.bootPromise=this.createStorage().catch((Q)=>{console.error("Log storage unavailable, file logging disabled",Q)}).then(()=>{this.isReady=!0});return this.bootPromise}async createStorage(){let Q=`${Y0()}/storage`;if(!await i0(Q))await d0(Q);if(!await i0(this.logsDirPath))await d0(this.logsDirPath);await this.newLogFile()}async newLogFile(){if(!await i0(this.logsDirPath))await d0(this.logsDirPath);if(this.isCreatingFile=!0,this.currentLogFilePath){this.writer.flush(),this.writer.end(),this.writer=null;let $=new File([await Bun.file(this.currentLogFilePath).arrayBuffer()],this.currentLogFilePath.split("/").pop(),{type:"text/plain"});this.config.onLogFileClosed($),this.fileSize=0,this.writerSize=0}let Z=(await aZ(this.logsDirPath)).sort().reverse()[0];if(Z){let $=Bun.file(`${this.logsDirPath}/${Z}`);if($.size<this.config.maxFileSize)this.currentLogFilePath=`${this.logsDirPath}/${Z}`,this.writer=$.writer(),this.writer.write(await $.text()),this.writer.write(`
@@ -10,6 +10,6 @@ data: ${JSON.stringify(Q.event)}
10
10
  `}var X1=5000,G1=`: keepalive
11
11
 
12
12
  `;function H1(Q,Z=X1){let $=null,X=!1,G=()=>{if(X)return;if($!==null)clearTimeout($);$=setTimeout(()=>{if($=null,X)return;try{Q.enqueue(n0.encode(G1))}catch{H();return}G()},Z)},H=()=>{if(X=!0,$!==null)clearTimeout($);$=null};return G(),{touch:G,stop:H}}function Y1(){return{"Content-Type":"text/event-stream","Cache-Control":"no-store, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}}function m8(Q,Z=200){let $=Q[Symbol.asyncIterator](),X=-1,G,H=new ReadableStream({start(Y){G=H1(Y)},async pull(Y){try{let M=await $.next();if(M.done){G.stop(),Y.close();return}X=M.value.seq,Y.enqueue(n0.encode(yQ(M.value))),G.touch()}catch(M){let K={type:"error",error:M1(M)};G.stop(),Y.enqueue(n0.encode(yQ({seq:X+1,event:K}))),Y.close()}},cancel(Y){G.stop(),$.return?.(Y)}});return new Response(H,{status:Z,headers:Y1()})}var K1=new Set(["frame_cursor_evicted","live_run_not_found"]);function M1(Q){let Z=Q&&typeof Q==="object"?Q.code:void 0;if(Q instanceof Error&&typeof Z==="string"&&K1.has(Z))return{code:"unknown",message:Q.message,retryable:!1};return console.error("[gemi/ai] agent stream failed",Q),{code:"unknown",message:"The run's stream failed.",retryable:!1}}
13
- export{o0 as xh,bQ as yh,W1 as zh,YQ as Ah,F1 as Bh,JQ as Ch,I1 as Dh,t0 as Eh,s0 as Fh,z1 as Gh,U1 as Hh,V1 as Ih,r0 as Jh,T1 as Kh,zQ as Lh,N1 as Mh,q1 as Nh,s as Oh,k as Ph,$Q as Qh,HQ as Rh,_1 as Sh,L1 as Th,XZ as Uh,GZ as Vh,k0 as Wh,g0 as Xh,HZ as Yh,h as Zh,YZ as _h,X0 as $h,EQ as ai,C0 as bi,G0 as ci,PQ as di,f0 as ei,Y8 as fi,RQ as gi,v0 as hi,q as ii,m as ji,O0 as ki,l as li,F0 as mi,I0 as ni,A0 as oi,K0 as pi,h0 as qi,n as ri,m0 as si,T0 as ti,c0 as ui,FQ as vi,NQ as wi,TQ as xi,oZ as yi,l0 as zi,Q1 as Ai,Z1 as Bi,G1 as Ci,H1 as Di,Y1 as Ei,m8 as Fi};
13
+ export{o0 as yh,bQ as zh,W1 as Ah,YQ as Bh,F1 as Ch,JQ as Dh,I1 as Eh,t0 as Fh,s0 as Gh,z1 as Hh,U1 as Ih,V1 as Jh,r0 as Kh,T1 as Lh,zQ as Mh,N1 as Nh,q1 as Oh,s as Ph,k as Qh,$Q as Rh,HQ as Sh,_1 as Th,L1 as Uh,XZ as Vh,GZ as Wh,k0 as Xh,g0 as Yh,HZ as Zh,h as _h,YZ as $h,X0 as ai,EQ as bi,C0 as ci,G0 as di,PQ as ei,f0 as fi,Y8 as gi,RQ as hi,v0 as ii,q as ji,m as ki,O0 as li,l as mi,F0 as ni,I0 as oi,A0 as pi,K0 as qi,h0 as ri,n as si,m0 as ti,T0 as ui,c0 as vi,FQ as wi,NQ as xi,TQ as yi,oZ as zi,l0 as Ai,Q1 as Bi,Z1 as Ci,G1 as Di,H1 as Ei,Y1 as Fi,m8 as Gi};
14
14
 
15
- //# debugId=548EEBAAB030089764756E2164756E21
15
+ //# debugId=1AC55B7A5E169C8064756E2164756E21
@@ -33,6 +33,6 @@
33
33
  "import type { AgentError, AgentStreamFrame } from \"../types\";\n\nconst encoder = new TextEncoder();\n\n/**\n * One frame, one SSE event.\n *\n * `id:` carries the frame's `seq`, which is what makes the browser's own\n * `Last-Event-ID` the right cursor on reconnect — the transport asks the\n * question the run already knows how to answer, and the client never has to\n * track a position of its own.\n */\nexport function encodeFrame(frame: AgentStreamFrame): string {\n return `id: ${frame.seq}\\ndata: ${JSON.stringify(frame.event)}\\n\\n`;\n}\n\n/**\n * How long a connection may sit idle before a comment line goes out.\n *\n * The nearest ceiling is not a proxy but our own server: Bun's `idleTimeout`\n * counts socket silence, a streaming body included, and gemi runs at its\n * 10-second default unless `SERVER_IDLE_TIMEOUT` says otherwise. A comment\n * line every 25 seconds was measured to lose the connection at 12; every 5\n * keeps it open, with room for a write that lands late. Azure App Service's\n * front end, at about 230 seconds, is the far ceiling, and 5 clears it by the\n * same margin. A thousand quiet streams cost two hundred thirteen-byte writes\n * a second, which is nothing. Both encoders read this one value, so the two\n * cannot drift apart.\n */\nexport const SSE_KEEPALIVE_INTERVAL_MS = 5_000;\n\n/**\n * The comment line itself. A line starting with `:` is a comment under the SSE\n * spec: every parser on our side skips it, and so does the browser's own\n * `EventSource`.\n */\nexport const SSE_KEEPALIVE = \": keepalive\\n\\n\";\n\n/**\n * Writes a keepalive whenever the stream has been silent for the interval.\n *\n * Armed on creation because the silence before the first frame is real\n * silence too — a model thinking is the common case. `touch()` after every\n * frame is what makes it measure silence rather than elapsed time; `stop()`\n * on close or cancel is what keeps a finished stream from holding a timer.\n *\n * The write is guarded because a cancel can land between the timer firing and\n * the enqueue, and a closed controller throws. There is nothing to do about\n * that except stop. `arm` checks `stopped` too, so a `touch()` that arrives\n * after `stop()` cannot hand a finished stream a timer for one more interval.\n */\nexport function sseKeepalive(\n controller: ReadableStreamDefaultController<Uint8Array>,\n intervalMs = SSE_KEEPALIVE_INTERVAL_MS,\n): { touch(): void; stop(): void } {\n let timer: ReturnType<typeof setTimeout> | null = null;\n let stopped = false;\n\n const arm = () => {\n if (stopped) return;\n if (timer !== null) clearTimeout(timer);\n timer = setTimeout(() => {\n timer = null;\n if (stopped) return;\n try {\n controller.enqueue(encoder.encode(SSE_KEEPALIVE));\n } catch {\n stop();\n return;\n }\n arm();\n }, intervalMs);\n };\n\n const stop = () => {\n stopped = true;\n if (timer !== null) clearTimeout(timer);\n timer = null;\n };\n\n arm();\n return { touch: arm, stop };\n}\n\nexport function sseHeaders(): Record<string, string> {\n return {\n \"Content-Type\": \"text/event-stream\",\n // `no-transform` as well as `no-store`: a proxy that gzips or rechunks the\n // body is a proxy that buffers it, and a buffered token stream arrives all\n // at once, which is the same as not streaming at all.\n \"Cache-Control\": \"no-store, no-transform\",\n Connection: \"keep-alive\",\n // nginx's own name for the same thing.\n \"X-Accel-Buffering\": \"no\",\n };\n}\n\n/**\n * Encodes an async iterable of frames as an SSE response.\n *\n * Pulls one frame per `pull` rather than looping inside `start`: a `start` that\n * awaits the whole run does not resolve until the run is over, and the stream\n * is not readable until it does — which would turn every streamed answer into a\n * single delivery at the end.\n */\nexport function sseResponse(frames: AsyncIterable<AgentStreamFrame>, status = 200): Response {\n const iterator = frames[Symbol.asyncIterator]();\n let lastSeq = -1;\n let keepalive!: ReturnType<typeof sseKeepalive>;\n\n const body = new ReadableStream<Uint8Array>({\n start(controller) {\n keepalive = sseKeepalive(controller);\n },\n async pull(controller) {\n try {\n const next = await iterator.next();\n if (next.done) {\n keepalive.stop();\n controller.close();\n return;\n }\n lastSeq = next.value.seq;\n controller.enqueue(encoder.encode(encodeFrame(next.value)));\n keepalive.touch();\n } catch (err) {\n // Past the headers there is no status left to fail with, so the reason\n // goes out as the last event. Closing silently would be\n // indistinguishable from a run that finished, which is the one thing a\n // reattaching client must not be told by mistake.\n const event = { type: \"error\", error: toAgentError(err) } as const;\n keepalive.stop();\n controller.enqueue(encoder.encode(encodeFrame({ seq: lastSeq + 1, event })));\n controller.close();\n }\n },\n cancel(reason) {\n // The client went away. Let the generator unwind so its `finally` runs\n // and it stops waiting on frames nobody will read.\n keepalive.stop();\n void iterator.return?.(reason);\n },\n });\n\n return new Response(body, { status, headers: sseHeaders() });\n}\n\n// `unknown` rather than a new code: `AgentErrorCode` is the wire contract and\n// belongs to the model's failures, not to the transport's.\n//\n// Only the two failures the live-run buffer raises keep their message: gemi\n// wrote them, and they name the cursor, which is what a client can act on.\n// Anything else is a store or a bug talking (a Redis error carries its host),\n// so the client gets a fixed sentence and the log gets the rest (#446).\nconst TRANSPORT_CODES = new Set([\"frame_cursor_evicted\", \"live_run_not_found\"]);\n\nfunction toAgentError(err: unknown): AgentError {\n const code = err && typeof err === \"object\" ? (err as { code?: unknown }).code : undefined;\n if (err instanceof Error && typeof code === \"string\" && TRANSPORT_CODES.has(code)) {\n return { code: \"unknown\", message: err.message, retryable: false };\n }\n console.error(\"[gemi/ai] agent stream failed\", err);\n return { code: \"unknown\", message: \"The run's stream failed.\", retryable: false };\n}\n"
34
34
  ],
35
35
  "mappings": "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",
36
- "debugId": "548EEBAAB030089764756E2164756E21",
36
+ "debugId": "1AC55B7A5E169C8064756E2164756E21",
37
37
  "names": []
38
38
  }
@@ -1,8 +1,8 @@
1
1
  // @bun
2
- import{G as B,I as p,O as _}from"./chunk-0t2ym9ap.js";import{P as v}from"./chunk-1w5dnkd1.js";import{Q as D}from"./chunk-m70hn4eg.js";import"./chunk-f2e7n064.js";import"./chunk-jmhrpfqn.js";import"./chunk-8ky8cmde.js";import{aa as d}from"./chunk-mkw35cz7.js";import"./chunk-hyhbk12v.js";import{rl as n}from"./chunk-t2nsn0r2.js";var x=n(D(),1),E=n(B(),1),i=n(d(),1);import M from"fs/promises";var C=n(d(),1);var A="169.254.170.2",O="169.254.170.23",b="[fd00:ec2::23]",S=(e,a)=>{if(e.protocol==="https:")return;if(e.hostname===A||e.hostname===O||e.hostname===b)return;if(e.hostname.includes("[")){if(e.hostname==="[::1]"||e.hostname==="[0000:0000:0000:0000:0000:0000:0000:0001]")return}else{if(e.hostname==="localhost")return;let c=e.hostname.split("."),r=(t)=>{let s=parseInt(t,10);return 0<=s&&s<=255};if(c[0]==="127"&&r(c[1])&&r(c[2])&&r(c[3])&&c.length===4)return}throw new C.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:
2
+ import{G as B,I as p,O as _}from"./chunk-rma7afjd.js";import{P as v}from"./chunk-g22kph4n.js";import{Q as D}from"./chunk-1wz6kwjc.js";import"./chunk-q9na1syb.js";import"./chunk-vm5t0j24.js";import"./chunk-h8eawyhx.js";import{aa as d}from"./chunk-mtamgvf4.js";import"./chunk-2k3935ke.js";import{sl as n}from"./chunk-jzpbwvbt.js";var x=n(D(),1),E=n(B(),1),i=n(d(),1);import M from"fs/promises";var C=n(d(),1);var A="169.254.170.2",O="169.254.170.23",b="[fd00:ec2::23]",S=(e,a)=>{if(e.protocol==="https:")return;if(e.hostname===A||e.hostname===O||e.hostname===b)return;if(e.hostname.includes("[")){if(e.hostname==="[::1]"||e.hostname==="[0000:0000:0000:0000:0000:0000:0000:0001]")return}else{if(e.hostname==="localhost")return;let c=e.hostname.split("."),r=(t)=>{let s=parseInt(t,10);return 0<=s&&s<=255};if(c[0]==="127"&&r(c[1])&&r(c[2])&&r(c[3])&&c.length===4)return}throw new C.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:
3
3
  - loopback CIDR 127.0.0.0/8 or [::1/128]
4
4
  - ECS container host 169.254.170.2
5
5
  - EKS container host 169.254.170.23 or [fd00:ec2::23]`,{logger:a})};var o=n(d(),1),g=n(v(),1),w=n(_(),1),I=n(p(),1);function P(e){return new g.HttpRequest({protocol:e.protocol,hostname:e.hostname,port:Number(e.port),path:e.pathname,query:Array.from(e.searchParams.entries()).reduce((a,[c,r])=>{return a[c]=r,a},{}),fragment:e.hash})}async function K(e,a){let r=await I.sdkStreamMixin(e.body).transformToString();if(e.statusCode===200){let t=JSON.parse(r);if(typeof t.AccessKeyId!=="string"||typeof t.SecretAccessKey!=="string"||typeof t.Token!=="string"||typeof t.Expiration!=="string")throw new o.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }",{logger:a});return{accessKeyId:t.AccessKeyId,secretAccessKey:t.SecretAccessKey,sessionToken:t.Token,expiration:w.parseRfc3339DateTime(t.Expiration)}}if(e.statusCode>=400&&e.statusCode<500){let t={};try{t=JSON.parse(r)}catch(s){}throw Object.assign(new o.CredentialsProviderError(`Server responded with status: ${e.statusCode}`,{logger:a}),{Code:t.Code,Message:t.Message})}throw new o.CredentialsProviderError(`Server responded with status: ${e.statusCode}`,{logger:a})}var T=(e,a,c)=>{return async()=>{for(let r=0;r<a;++r)try{return await e()}catch(t){await new Promise((s)=>setTimeout(s,c))}return await e()}};var N="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",j="http://169.254.170.2",H="AWS_CONTAINER_CREDENTIALS_FULL_URI",J="AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE",$="AWS_CONTAINER_AUTHORIZATION_TOKEN",G=(e={})=>{e.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");let a,c=e.awsContainerCredentialsRelativeUri??process.env[N],r=e.awsContainerCredentialsFullUri??process.env[H],t=e.awsContainerAuthorizationToken??process.env[$],s=e.awsContainerAuthorizationTokenFile??process.env[J],m=e.logger?.constructor?.name==="NoOpLogger"||!e.logger?.warn?console.warn:e.logger.warn.bind(e.logger);if(c&&r)m("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."),m("awsContainerCredentialsFullUri will take precedence.");if(t&&s)m("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."),m("awsContainerAuthorizationToken will take precedence.");if(r)a=r;else if(c)a=`${j}${c}`;else throw new i.CredentialsProviderError(`No HTTP credential provider host provided.
6
6
  Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`,{logger:e.logger});let y=new URL(a);S(y,e.logger);let R=E.NodeHttpHandler.create({requestTimeout:e.timeout??1000,connectionTimeout:e.timeout??1000});return T(async()=>{let f=P(y);if(t)f.headers.Authorization=t;else if(s)f.headers.Authorization=(await M.readFile(s)).toString();try{let h=await R.handle(f);return K(h.response).then((u)=>x.setCredentialFeature(u,"CREDENTIALS_HTTP","z"))}catch(h){throw new i.CredentialsProviderError(String(h),{logger:e.logger})}},e.maxRetries??3,e.timeout??1000)};export{G as fromHttp};
7
7
 
8
- //# debugId=C74086E150CB7BDA64756E2164756E21
8
+ //# debugId=05B5D9D09FDC477064756E2164756E21
@@ -8,6 +8,6 @@
8
8
  "export const retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\n"
9
9
  ],
10
10
  "mappings": "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",
11
- "debugId": "C74086E150CB7BDA64756E2164756E21",
11
+ "debugId": "05B5D9D09FDC477064756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{R as S,T as h,U as u}from"./chunk-t0wfj6hy.js";import{ma as q,na as w}from"./chunk-5xfpqda5.js";import"./chunk-a22h5cby.js";import"./chunk-epvpmakp.js";import"./chunk-r3v2cnrj.js";import"./chunk-kzc6bn8n.js";import"./chunk-kk18xqgc.js";import"./chunk-aw8gj99f.js";import{Ki as N}from"./chunk-9k46m1vf.js";import{al as y}from"./chunk-rvm5mkwm.js";import{pl as C}from"./chunk-m6t5a0me.js";import"./chunk-t2nsn0r2.js";import{join as $J}from"path";import{createServer as zJ}from"vite";import{join as l}from"path";import{IncomingMessage as d,ServerResponse as p}from"http";import{Socket as i}from"net";function c(J){return J.replace(/\x1b\[[0-9;]*m/g,"").replace(/\[[0-9;]*m/g,"").replace(/\n\s*\n/g,`
2
+ import{R as S,T as h,U as u}from"./chunk-g4gzz185.js";import{ma as q,na as w}from"./chunk-mv1rs9he.js";import"./chunk-a22h5cby.js";import"./chunk-epvpmakp.js";import"./chunk-r3v2cnrj.js";import"./chunk-twrf6d08.js";import"./chunk-kk18xqgc.js";import"./chunk-ymdpt00k.js";import{Li as N}from"./chunk-cee5gq7t.js";import{bl as y}from"./chunk-g8sh9btf.js";import{ql as C}from"./chunk-fqqbnp0z.js";import"./chunk-jzpbwvbt.js";import{join as $J}from"path";import{createServer as zJ}from"vite";import{join as l}from"path";import{IncomingMessage as d,ServerResponse as p}from"http";import{Socket as i}from"net";function c(J){return J.replace(/\x1b\[[0-9;]*m/g,"").replace(/\[[0-9;]*m/g,"").replace(/\n\s*\n/g,`
3
3
  `).split(`
4
4
  `).map((W)=>W.trim()).filter((W)=>W.length>0).join(`
5
5
  `).trim()}function _(J){return`
@@ -55,4 +55,4 @@ window.$RefreshSig$ = () => (type) => type;
55
55
  window.__vite_plugin_react_preamble_installed__ = true;
56
56
  `;function t(J){let{pathname:W}=new URL(J.url),Z=($)=>new Response($,{headers:{"Content-Type":"application/javascript"}});if(W===T)return Z(a);if(W.startsWith("/render-error.js"))return Z("window.render_error = true");if(W.startsWith("/refresh.js"))return Z(s);return null}function P(J,W,Z){let $=l(process.cwd(),"app");return async(z)=>{let{pathname:Q}=new URL(z.url),U=(G)=>{if(console.error(G),Z.ssrFixStacktrace?.(G),O(G),C(Q))return new Response(JSON.stringify({error:N("server_error",G?.message??String(G),500)}),{status:500,headers:{"Content-Type":"application/json"}});return globalThis.__gemiErrorPageServed=!0,new Response(_(I(G)),{status:500,headers:{"Content-Type":"text/html"}})},X=async(G)=>{let j=t(G);if(j)return j;try{let L=J.fetch.bind(J),K=await n(Z,G)??await L(G);if(K instanceof Response)return K;let A={},F={},D={},m=(Y,B)=>`"${Y}": () => import("${B}")`,b=[];for(let Y of["404",...J.getFlatComponentTree.call(J)]){if(Bun.env.NODE_ENV==="test")break;let B=`${process.env.APP_DIR}`,x=await V(Z).import(`${B}/views/${Y}.tsx`);A[Y]=x.default,F[Y]=x?.OpenGraph,D[Y]=x,b.push(m(Y,`/app/views/${Y}.tsx`))}let v=`{${b.join(",")}}`;return await K({getStyles:async(Y,B)=>await S($,Z,Y,B?.layout),resolveIsland:(Y)=>({src:`/${Y}${y}`,preload:[]}),buildId:"dev",bootstrapModules:[T],viewImportMap:A,viewModules:D,ogMap:F,loaders:v,cssManifest:{}})}catch(L){return U(L)}};return await W(z,(G)=>J.withGlobalMiddleware(G,X,U))}}function r(J){try{return Bun.listen({hostname:"0.0.0.0",port:J,socket:{data(){}}}).stop(!0),!0}catch(W){return W?.code!=="EADDRINUSE"}}function f(J,W=r){let Z=24678+(J-5173);if(Z>65471)Z=24678;for(let $=Z;$<Z+64;$++)if(W($))return $;throw Error(`Could not find a free port for Vite's HMR websocket: tried ${Z}-${Z+64-1}. Set one explicitly in gemi.config.ts as \`vite: { server: { ws: { port } } }\`.`)}import{createServer as e}from"http";var JJ=new Set(["vite-hmr","vite-ping"]);async function R(J){let W=e((Z,$)=>{$.writeHead(426,{"Content-Type":"text/plain"}),$.end("Upgrade Required")});return await new Promise((Z,$)=>{W.once("error",$),W.listen(J,"127.0.0.1",()=>{W.off("error",$),Z()})}),W}function k(J){if(!J||typeof J!=="object")return null;let Z=J.server?.address?.();if(Z&&typeof Z==="object"&&"port"in Z)return Number(Z.port)||null;return null}function E(J){if(J.headers.get("upgrade")?.toLowerCase()!=="websocket")return!1;return JJ.has(J.headers.get("sec-websocket-protocol")??"")}var WJ=(J)=>typeof J==="string"?J:new Uint8Array(J);async function g(J,W,Z){let $=new URL(J.url),z=J.headers.get("sec-websocket-protocol")??"vite-hmr",Q={host:J.headers.get("host")??$.host},U=J.headers.get("origin");if(U)Q.origin=U;let X=new WebSocket(`ws://127.0.0.1:${Z}${$.pathname}${$.search}`,{protocols:[z],headers:Q});X.binaryType="arraybuffer";let G={upstream:X,early:[]};if(X.onmessage=(K)=>{let A=WJ(K.data);if(G.browser)G.browser.send(A);else G.early.push(A)},X.onclose=(K)=>{G.browser?.close(ZJ(K.code),K.reason)},X.onerror=()=>{},!await new Promise((K)=>{X.addEventListener("open",()=>K(!0),{once:!0}),X.addEventListener("close",()=>K(!1),{once:!0})}))return new Response("Vite refused the HMR websocket",{status:403});if(!W.upgrade(J,{headers:{"Sec-WebSocket-Protocol":z},data:G}))return X.close(),new Response("WebSocket upgrade failed",{status:400});return}function ZJ(J){if(J===1000||J>=1001&&J<=1003||J>=1007&&J<=1014)return J;if(J>=3000&&J<=4999)return J;return 1000}var H={open(J){let W=J.data;for(let Z of W.early)J.send(Z);if(W.early=[],W.browser=J,W.upstream.readyState!==WebSocket.OPEN)J.close(1000)},message(J,W){if(J.data.upstream.readyState===WebSocket.OPEN)J.data.upstream.send(W)},close(J){let{upstream:W}=J.data;if(W.readyState<=WebSocket.OPEN)W.close()}};function GJ(J,W){let Z=W.websocket,$=(z)=>z.data?.gemiSocket===!0;return{...W.socketOptions(),maxPayloadLength:16777216,closeOnBackpressureLimit:!1,open:(z)=>$(z)?Z.open?.(z):J.open?.(z),message:(z,Q)=>$(z)?Z.message(z,Q):J.message(z,Q),close:(z,Q,U)=>$(z)?Z.close?.(z,Q,U):J.close?.(z,Q,U)}}var M=process.cwd(),QJ=$J(M,"app");if(!globalThis.__gemiErrorHooked)globalThis.__gemiErrorHooked=!0,process.on("unhandledRejection",(J)=>{console.error(J),O(J)}),process.on("uncaughtException",(J)=>{console.error(J),O(J)});async function TJ(J,W){let Z=Number(process.env.PORT)||5173,$=u(),z=Boolean(globalThis.__gemiVite),Q=globalThis.__gemiVite??=await zJ({configFile:!1,plugins:[w()],server:{middlewareMode:!0,port:Z,ws:{server:await R(f(Z))},allowedHosts:J.devAllowedHosts.call(J),watch:{ignored:(L)=>{let K=L.split(/[/\\]/).pop()??"";return K===".env"||K.startsWith(".env.")}}},appType:"custom",resolve:{dedupe:["react","react-dom"]},optimizeDeps:{include:["react","react-dom","react-dom/client"]},ssr:{external:[...q]}});process.env.ROOT_DIR=M,process.env.APP_DIR=QJ;let U=P(J,W,Q),X=k(Q.config?.server?.ws),G=J.sockets(),j=Bun.serve({port:Z,idleTimeout:$,fetch:(L,K)=>{if(X!==null&&E(L))return g(L,K,X);if(J.applyTrustedClientIp(L),G?.matches(L))return G.upgrade(L,K);return U(L)},websocket:G?GJ(H,G):H});if(await G?.start(j),z)V(Q).clearCache();if(z)if(globalThis.__gemiErrorActive&&globalThis.__gemiErrorPageServed)globalThis.__gemiErrorActive=!1,globalThis.__gemiErrorPageServed=!1,Q.ws.send({type:"full-reload"});else globalThis.__gemiErrorActive=!1,Q.ws.send({type:"custom",event:"http-reload"});else h({port:j.port,rootDir:M});return j}export{I as viteErrorPayload,TJ as httpDev};
57
57
 
58
- //# debugId=162B8B3B6FE3267E64756E2164756E21
58
+ //# debugId=D47D1E31F0BBC9E564756E2164756E21
@@ -9,6 +9,6 @@
9
9
  "import { createServer, type Server as NodeServer } from \"node:http\";\n\nimport type { Server, ServerWebSocket, WebSocketHandler } from \"bun\";\n\n// Vite's HMR websocket, carried on the dev server's own port.\n//\n// In middleware mode Vite has no HTTP server of its own, so by default it\n// stands up a second one for the websocket, on a second port (see\n// `hmrPort.ts`), and tells the browser to connect to `<page host>:<that port>`.\n// A reverse proxy or tunnel (ngrok, a container port mapping, a phone on the\n// LAN through https) only carries the port the page came from, so HMR could\n// not connect there, and the client logged connection failures forever.\n//\n// Vite can attach its websocket to a server it is handed (`server.ws.server`)\n// instead, and then tells the browser to connect to the page's own origin. That\n// server has to be a Node `http.Server`; the dev server is `Bun.serve`. So:\n//\n// - the Node server Vite is handed listens on loopback only, on the port\n// `resolveHmrPort` picked, and answers nothing but websocket upgrades;\n// - `Bun.serve` accepts the browser's upgrade on the page's origin and relays\n// frames both ways to that loopback server.\n//\n// The relay forwards the browser's `Host` and `Origin` and the request's query\n// (the `token`), so Vite still runs its own host and token checks against what\n// the browser actually sent.\n\n/** The subprotocols Vite's client opens its sockets with. */\nconst VITE_PROTOCOLS = new Set([\"vite-hmr\", \"vite-ping\"]);\n\n/**\n * Start the loopback Node server Vite attaches its HMR websocket to.\n * Everything but an upgrade gets `426 Upgrade Required`, as Vite's own\n * websocket server answers.\n */\nexport async function listenHmrServer(port: number): Promise<NodeServer> {\n const server = createServer((_req, res) => {\n res.writeHead(426, { \"Content-Type\": \"text/plain\" });\n res.end(\"Upgrade Required\");\n });\n await new Promise<void>((resolve, reject) => {\n server.once(\"error\", reject);\n server.listen(port, \"127.0.0.1\", () => {\n server.off(\"error\", reject);\n resolve();\n });\n });\n return server;\n}\n\n/**\n * The loopback port to relay to, read from the config Vite actually resolved,\n * so an app that set its own `server.ws` in `gemi.config.ts` is relayed to\n * where Vite really is, or not relayed at all. `null` when Vite was not given\n * a server (its websocket is then on a port of its own, and the client goes\n * there directly) or when HMR is off.\n */\nexport function hmrRelayPort(wsConfig: unknown): number | null {\n if (!wsConfig || typeof wsConfig !== \"object\") return null;\n const server = (wsConfig as { server?: { address?: () => unknown } }).server;\n const address = server?.address?.();\n if (address && typeof address === \"object\" && \"port\" in address) {\n return Number((address as { port: number }).port) || null;\n }\n return null;\n}\n\n/** Whether a request is the Vite client opening its HMR (or ping) socket. */\nexport function isHmrUpgrade(req: Request): boolean {\n if (req.headers.get(\"upgrade\")?.toLowerCase() !== \"websocket\") return false;\n return VITE_PROTOCOLS.has(req.headers.get(\"sec-websocket-protocol\") ?? \"\");\n}\n\nexport type HmrRelayData = {\n /** The socket to Vite, already open when the browser's is accepted. */\n upstream: WebSocket;\n /** Frames Vite sent before the browser's socket opened (its `connected`). */\n early: (string | Uint8Array)[];\n browser?: ServerWebSocket<HmrRelayData>;\n};\n\ntype Frame = string | Uint8Array;\n\nconst frameOf = (data: unknown): Frame =>\n typeof data === \"string\" ? data : new Uint8Array(data as ArrayBuffer);\n\n/**\n * Open the socket to Vite first, and accept the browser's upgrade only once\n * Vite has accepted it. Returns `undefined` once Bun has taken the request\n * over, or a refusal.\n *\n * The order matters. Vite refuses a socket whose host is not in\n * `allowedHosts`, or a cross-origin one without its token. Had the browser's\n * socket been accepted first and closed when Vite refused, the client would\n * read that as \"server connection lost\", ping (which Vite always answers),\n * and reload the page, forever. Refused before it opens, the client logs one\n * \"failed to connect to websocket\" and the page keeps working.\n */\nexport async function upgradeHmr(\n req: Request,\n server: Server<HmrRelayData>,\n port: number,\n): Promise<Response | undefined> {\n const url = new URL(req.url);\n const protocol = req.headers.get(\"sec-websocket-protocol\") ?? \"vite-hmr\";\n // `Host` is what Vite's `allowedHosts` check reads; the URL's host is the\n // same value `Bun.serve` derived it from.\n const headers: Record<string, string> = {\n host: req.headers.get(\"host\") ?? url.host,\n };\n const origin = req.headers.get(\"origin\");\n if (origin) headers.origin = origin;\n\n const upstream = new WebSocket(\n `ws://127.0.0.1:${port}${url.pathname}${url.search}`,\n {\n protocols: [protocol],\n headers,\n } as any,\n );\n upstream.binaryType = \"arraybuffer\";\n const data: HmrRelayData = { upstream, early: [] };\n\n upstream.onmessage = (event) => {\n const frame = frameOf(event.data);\n if (data.browser) data.browser.send(frame);\n else data.early.push(frame);\n };\n upstream.onclose = (event) => {\n data.browser?.close(sendableCloseCode(event.code), event.reason);\n };\n upstream.onerror = () => {\n // A `close` follows; it ends the browser's socket if there is one.\n };\n\n const opened = await new Promise<boolean>((resolve) => {\n upstream.addEventListener(\"open\", () => resolve(true), { once: true });\n upstream.addEventListener(\"close\", () => resolve(false), { once: true });\n });\n if (!opened) {\n return new Response(\"Vite refused the HMR websocket\", { status: 403 });\n }\n\n const upgraded = server.upgrade(req, {\n // The browser fails a connection whose response does not echo the\n // subprotocol it asked for.\n headers: { \"Sec-WebSocket-Protocol\": protocol },\n data,\n });\n if (!upgraded) {\n upstream.close();\n return new Response(\"WebSocket upgrade failed\", { status: 400 });\n }\n return undefined;\n}\n\n// A close code that may be sent in a close frame. 1005, 1006 and 1015 are\n// reported locally and never sent.\nfunction sendableCloseCode(code: number): number {\n if (\n code === 1000 ||\n (code >= 1001 && code <= 1003) ||\n (code >= 1007 && code <= 1014)\n ) {\n return code;\n }\n if (code >= 3000 && code <= 4999) return code;\n return 1000;\n}\n\n/** `Bun.serve`'s `websocket` option: relays frames to and from Vite. */\nexport const hmrRelayHandler: WebSocketHandler<HmrRelayData> = {\n open(ws: ServerWebSocket<HmrRelayData>) {\n const data = ws.data;\n for (const frame of data.early) ws.send(frame);\n data.early = [];\n data.browser = ws;\n // Vite may have hung up while the upgrade was in flight.\n if (data.upstream.readyState !== WebSocket.OPEN) ws.close(1000);\n },\n message(ws: ServerWebSocket<HmrRelayData>, message) {\n if (ws.data.upstream.readyState === WebSocket.OPEN) {\n ws.data.upstream.send(message);\n }\n },\n close(ws: ServerWebSocket<HmrRelayData>) {\n const { upstream } = ws.data;\n if (upstream.readyState <= WebSocket.OPEN) upstream.close();\n },\n};\n"
10
10
  ],
11
11
  "mappings": "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",
12
- "debugId": "162B8B3B6FE3267E64756E2164756E21",
12
+ "debugId": "D47D1E31F0BBC9E564756E2164756E21",
13
13
  "names": []
14
14
  }