@bkm016/basalt 0.1.2 → 0.1.4

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 (152) hide show
  1. package/{chunk-x1xss1d7.js → chunk-1vd0f74z.js} +2 -2
  2. package/{chunk-v9fea96h.js → chunk-2hbfk5xd.js} +2 -2
  3. package/{chunk-5j1krv9v.js → chunk-2zp1mv3q.js} +1 -1
  4. package/{chunk-d2j735sd.js → chunk-3ct2tkr8.js} +2 -2
  5. package/{chunk-c7x1zq39.js → chunk-3x94302m.js} +1 -1
  6. package/{chunk-gzxnene8.js → chunk-4w17tzp5.js} +2 -2
  7. package/{chunk-1zdwrgd4.js → chunk-5dfbezv9.js} +1 -1
  8. package/{chunk-shhrr741.js → chunk-5x1sankd.js} +24 -24
  9. package/{chunk-pmqtkqsf.js → chunk-71h08f4g.js} +1 -1
  10. package/{chunk-fm0k0qtz.js → chunk-7afmgncg.js} +2 -2
  11. package/{chunk-v258nxcz.js → chunk-7nzhdrv9.js} +1 -1
  12. package/{chunk-zmsgwr3s.js → chunk-7q51n619.js} +1 -1
  13. package/{chunk-y0m980k3.js → chunk-7tbya5b5.js} +3 -3
  14. package/{chunk-8tjad3r0.js → chunk-8wc8qdx8.js} +5 -5
  15. package/{chunk-gp7y0fja.js → chunk-9rmqgc3c.js} +9 -9
  16. package/{chunk-nbb9trwz.js → chunk-akr0a8nc.js} +2 -2
  17. package/{chunk-k506w58v.js → chunk-aky4tztg.js} +2 -2
  18. package/{chunk-8296hw9m.js → chunk-em187cy3.js} +2 -2
  19. package/{chunk-2esbgxps.js → chunk-ev6yvy5y.js} +5 -5
  20. package/{chunk-75m78j7x.js → chunk-f3xadvab.js} +2 -2
  21. package/{chunk-5c9j8qe4.js → chunk-fvn32nzj.js} +26 -26
  22. package/{chunk-bannb9xm.js → chunk-jk25nt60.js} +1 -1
  23. package/{chunk-27gntzs5.js → chunk-kp22kaez.js} +1 -1
  24. package/{chunk-6hssbcgj.js → chunk-nmca5h6m.js} +1 -1
  25. package/{chunk-d8gtbw9g.js → chunk-pjyn2s97.js} +1 -1
  26. package/{chunk-rtzqqngy.js → chunk-q7t30zz2.js} +2 -2
  27. package/{chunk-aefadsy6.js → chunk-r0scgfwx.js} +1 -1
  28. package/{chunk-hwr56pfj.js → chunk-rmj5b73e.js} +1 -1
  29. package/{chunk-1qpces5a.js → chunk-vexrrw1b.js} +2 -2
  30. package/chunk-vkpvcxjr.js +2 -0
  31. package/{chunk-3cjsd292.js → chunk-whvj83b7.js} +2 -2
  32. package/{chunk-z55bmysw.js → chunk-xh3vr5vz.js} +1 -1
  33. package/{chunk-10xzzn07.js → chunk-zggzfa7j.js} +2 -2
  34. package/compiled.js +3 -3
  35. package/package.json +1 -1
  36. package/ui-test-worker.js +13 -13
  37. package/web/{chunk-shbw6wg8.js → chunk-0b47eyrf.js} +1 -1
  38. package/web/{chunk-vz5ck6x9.js → chunk-0h0vb6gt.js} +1 -1
  39. package/web/{chunk-24k0r5aq.js → chunk-0rmkpsgp.js} +1 -1
  40. package/web/{chunk-3mvr2gwh.js → chunk-0xkyryrq.js} +1 -1
  41. package/web/{chunk-284a17k8.js → chunk-0z0y25zf.js} +1 -1
  42. package/web/{chunk-ezkqa7we.js → chunk-1eg9sbbt.js} +1 -1
  43. package/web/{chunk-raqqscwa.js → chunk-1gbd61z0.js} +1 -1
  44. package/web/{chunk-s3rdx28k.js → chunk-2s0bmrkv.js} +1 -1
  45. package/web/{chunk-9re6yttj.js → chunk-2z1rwr28.js} +1 -1
  46. package/web/{chunk-avwpjsxw.js → chunk-344bq59c.js} +1 -1
  47. package/web/{chunk-kgerjbn4.js → chunk-3re8y26v.js} +1 -1
  48. package/web/chunk-3t0211rw.js +1 -0
  49. package/web/{chunk-q1pkntc6.js → chunk-42e3b9hv.js} +1 -1
  50. package/web/chunk-44rmrmcn.js +1 -0
  51. package/web/{chunk-aqm3spxt.js → chunk-4bzqrwr0.js} +89 -89
  52. package/web/{chunk-5e7ygjdn.js → chunk-4d3a7xs2.js} +1 -1
  53. package/web/{chunk-2pjdtesn.js → chunk-4jmazh6x.js} +1 -1
  54. package/web/{chunk-r92sbgwv.js → chunk-4re74xwm.js} +1 -1
  55. package/web/{chunk-rc2vq9wz.js → chunk-5qtyq3ce.js} +1 -1
  56. package/web/{chunk-vj6kstpp.js → chunk-5z4jcqct.js} +1 -1
  57. package/web/{chunk-abbvjt4e.js → chunk-5z6x2n5h.js} +1 -1
  58. package/web/{chunk-yen2kkn2.js → chunk-6cnek1xh.js} +1 -1
  59. package/web/chunk-6f5ke0x9.js +1 -0
  60. package/web/{chunk-vkc149rb.js → chunk-6xaqxcq8.js} +1 -1
  61. package/web/chunk-7q6wvv2x.js +1 -0
  62. package/web/{chunk-43jqvsrg.js → chunk-7qsa4p8h.js} +1 -1
  63. package/web/chunk-8nja0ygy.js +1 -0
  64. package/web/{chunk-4bry4xds.js → chunk-8y64fkpz.js} +1 -1
  65. package/web/{chunk-rkj743fg.js → chunk-92ssjk2y.js} +1 -1
  66. package/web/chunk-9ad7v7bm.js +8 -0
  67. package/web/{chunk-xdcs8qz3.js → chunk-9cx1be43.js} +1 -1
  68. package/web/{chunk-jf2ehmvp.js → chunk-9dzxv335.js} +1 -1
  69. package/web/{chunk-t1xk6hca.js → chunk-9t5dnjaz.js} +2 -2
  70. package/web/{chunk-h31p43qa.js → chunk-a408enpy.js} +1 -1
  71. package/web/{chunk-z24vs8q9.js → chunk-a497tykb.js} +1 -1
  72. package/web/{chunk-qryrg2pq.js → chunk-aqfpnhmt.js} +2 -2
  73. package/web/{chunk-rrws61wf.js → chunk-b1bgzz66.js} +1 -1
  74. package/web/{chunk-cwvtraca.js → chunk-b53bfkys.js} +1 -1
  75. package/web/{chunk-5jbf7n5q.js → chunk-b6k9w215.js} +1 -1
  76. package/web/{chunk-ctcrk3qn.js → chunk-bhsaj6qq.js} +1 -1
  77. package/web/chunk-cjfssg3m.js +2 -0
  78. package/web/{chunk-znvnb9dh.js → chunk-d11v5s7w.js} +1 -1
  79. package/web/{chunk-ctd8bfg2.js → chunk-df5zx17h.js} +1 -1
  80. package/web/chunk-e0zre35a.js +1 -0
  81. package/web/{chunk-3z93efr4.js → chunk-e9twvs9n.js} +1 -1
  82. package/web/chunk-f2kgtyfp.js +1 -0
  83. package/web/{chunk-8wye0wbb.js → chunk-f4tacm06.js} +1 -1
  84. package/web/chunk-f8bn5tzf.js +1 -0
  85. package/web/chunk-fdp9bsj7.js +1 -0
  86. package/web/{chunk-8ah6ce1b.js → chunk-fh2vj0wv.js} +1 -1
  87. package/web/{chunk-5rx8rtsa.js → chunk-gmzqdm7v.js} +1 -1
  88. package/web/{chunk-fqj9kry9.js → chunk-hvw3gn2a.js} +1 -1
  89. package/web/{chunk-fy8ey195.js → chunk-khxcn8tt.js} +1 -1
  90. package/web/{chunk-z760wagr.js → chunk-kmr7r9xj.js} +1 -1
  91. package/web/chunk-kqqmp1am.js +1 -0
  92. package/web/{chunk-s3hwejnr.js → chunk-kwccs9f6.js} +1 -1
  93. package/web/chunk-nbgqbxcy.js +1 -0
  94. package/web/{chunk-yjv2c45j.js → chunk-ncpnpe9w.js} +1 -1
  95. package/web/{chunk-g8ee1csm.js → chunk-ne0v8mfb.js} +1 -1
  96. package/web/{chunk-f078k1ej.js → chunk-ngx2cp8x.js} +1 -1
  97. package/web/{chunk-xa88zgkr.js → chunk-nvhmq4z5.js} +1 -1
  98. package/web/chunk-nxcgf7ec.js +1 -0
  99. package/web/{chunk-anbn2ttv.js → chunk-p0kvmf28.js} +1 -1
  100. package/web/chunk-p3k7m5nr.js +1 -0
  101. package/web/{chunk-jzmzhj8z.js → chunk-pggaffrh.js} +1 -1
  102. package/web/{chunk-zrzq29e6.js → chunk-pjkdrgm0.js} +1 -1
  103. package/web/{chunk-jmnaq7c1.js → chunk-pws2seas.js} +1 -1
  104. package/web/{chunk-1z5p7a1h.js → chunk-pz9ps2jm.js} +1 -1
  105. package/web/chunk-qh15dxav.css +1 -0
  106. package/web/chunk-qpmbxhh6.js +1 -0
  107. package/web/chunk-r0rctnxz.js +1 -0
  108. package/web/chunk-rn3dnqm8.js +1 -0
  109. package/web/{chunk-jvj66qhs.js → chunk-rvrf0f3h.js} +1 -1
  110. package/web/{chunk-pk3ap3wh.js → chunk-sfg2wkhe.js} +1 -1
  111. package/web/{chunk-tn1xzmgx.js → chunk-sspfxp5e.js} +1 -1
  112. package/web/{chunk-dt8ss97f.js → chunk-t4c8xavd.js} +1 -1
  113. package/web/{chunk-vny496ba.js → chunk-tdr6x2xc.js} +1 -1
  114. package/web/chunk-tncvg1nn.js +1 -0
  115. package/web/{chunk-6qejm5s2.js → chunk-vyp0ns1f.js} +1 -1
  116. package/web/{chunk-kww4azv5.js → chunk-wnskxerq.js} +1 -1
  117. package/web/{chunk-9dd1c37b.js → chunk-wvdehm9y.js} +66 -66
  118. package/web/chunk-x7ahcpj7.js +1 -0
  119. package/web/chunk-y38bf0wm.js +1 -0
  120. package/web/{chunk-vjqmnkh2.js → chunk-y56aaba5.js} +1 -1
  121. package/web/{chunk-mjpjkyd1.js → chunk-ybrf9mhz.js} +1 -1
  122. package/web/{chunk-8e43yaq3.js → chunk-ye58t45p.js} +3 -3
  123. package/web/{chunk-dk90px7g.js → chunk-yqbnps3a.js} +1 -1
  124. package/web/{chunk-bt1m87ck.js → chunk-z1h20s8c.js} +1 -1
  125. package/web/{chunk-693m9kt7.js → chunk-zj4q9jth.js} +1 -1
  126. package/web/{chunk-tnv7z83q.js → chunk-zj5k94dk.js} +1 -1
  127. package/web/{chunk-986z0p48.js → chunk-zqch0sc8.js} +1 -1
  128. package/web/{chunk-agmkx996.js → chunk-zx8zec24.js} +1 -1
  129. package/web/index.html +1 -1
  130. package/chunk-09rj27b2.js +0 -2
  131. package/web/chunk-0sewdyz1.js +0 -1
  132. package/web/chunk-21ke27j6.js +0 -1
  133. package/web/chunk-3t3zwx9j.js +0 -1
  134. package/web/chunk-5xc9d5ft.js +0 -1
  135. package/web/chunk-b470hvpk.js +0 -1
  136. package/web/chunk-fekjj24p.css +0 -1
  137. package/web/chunk-frjfamx7.js +0 -8
  138. package/web/chunk-h5p5jsrw.js +0 -1
  139. package/web/chunk-h9fmr6ch.js +0 -1
  140. package/web/chunk-jq0pw0k2.js +0 -1
  141. package/web/chunk-k4cfnvyq.js +0 -1
  142. package/web/chunk-m29dhjkh.js +0 -1
  143. package/web/chunk-mj6tee5h.js +0 -1
  144. package/web/chunk-szcy5z56.js +0 -1
  145. package/web/chunk-t2hhdg9r.js +0 -1
  146. package/web/chunk-tj4cmkwe.js +0 -1
  147. package/web/chunk-v2b5q0n5.js +0 -1
  148. package/web/chunk-y5x74t89.js +0 -1
  149. package/web/chunk-yx3dh5hg.js +0 -1
  150. package/web/chunk-yz4fmtk2.js +0 -1
  151. package/web/chunk-z5j6x6j8.js +0 -2
  152. package/web/chunk-z5stjrhc.js +0 -1
@@ -1,12 +1,12 @@
1
1
  // @bun
2
- import{M,Ve}from"./chunk-shadcb9z.js";function z(e,t,r){return{role:"assistant",content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"error",errorMessage:t instanceof Error?t.message:String(t),timestamp:r}}function G(e){return typeof e.result==="function"}async function F(e,t){for await(let r of t)e.push(r);e.end(G(t)?await t.result():void 0)}function Ie(e,t){let r=Date.now(),n=new M;return t().then((s)=>F(n,s)).catch((s)=>{let o=z(e,s,r);n.push({type:"error",reason:"error",error:o}),n.end(o)}),n}function te(e,t){let r={stream:(n,s,o)=>Ie(n,async()=>(await e()).stream(n,s,o)),streamSimple:(n,s,o)=>Ie(n,async()=>(await e()).streamSimple(n,s,o))};if(t?.fetchDeferred)r.fetchDeferred=(n,s,o)=>Ie(n,async()=>{let i=await e();if(!i.fetchDeferred)throw Error("API does not support deferred responses");return i.fetchDeferred(n,s,o)});if(t?.cancelDeferred)r.cancelDeferred=async(n,s,o)=>{let i=await e();if(!i.cancelDeferred)throw Error("API cannot cancel deferred responses");await i.cancelDeferred(n,s,o)};return r}var J=function(e,t){if(typeof e==="string"&&/^\.\.?\//.test(e))return e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(r,n,s,o,i){return n?t?".jsx":".js":s&&(!o||!i)?r:s+o+"."+i.toLowerCase()+"js"});return e},R=(e)=>import(J(e));function V(){return globalThis.process?.env}function Uo(){return{async env(e){let t=V()?.[e];return typeof t==="string"&&t.trim().length>0?t:void 0},async fileExists(e){try{let t=await R("node:fs/promises"),r=e;if(r.startsWith("~"))r=(await R("node:os")).homedir()+r.slice(1);return await t.access(r),!0}catch{return!1}}}}function q(e){if(e.reason!==void 0)return e.reason;let t=Error("The operation was aborted");return t.name="AbortError",t}function g(e){return e??new AbortController().signal}function v(e,t){if(t.aborted)return e.catch(()=>{}),Promise.reject(q(t));return new Promise((r,n)=>{let s=!1,o=()=>t.removeEventListener("abort",i),i=()=>{if(s)return;s=!0,o(),n(q(t))};if(t.addEventListener("abort",i,{once:!0}),e.then((c)=>{if(s)return;s=!0,o(),r(c)},(c)=>{if(s)return;s=!0,o(),n(c)}),t.aborted)i()})}class qn{credentials=new Map;chains=new Map;enqueue(e,t,r){let n=g(r?.signal),s=this.chains.get(e)??Promise.resolve(),o=(async()=>(await s.catch(()=>{}),n.throwIfAborted(),t()))(),i=o.catch(()=>{});return this.chains.set(e,i),i.then(()=>{if(this.chains.get(e)===i)this.chains.delete(e)}),v(o,n)}async read(e,t){return t?.signal?.throwIfAborted(),this.credentials.get(e)}async list(e){return e?.signal?.throwIfAborted(),[...this.credentials].map(([t,r])=>({providerId:t,type:r.type}))}modify(e,t,r){return this.enqueue(e,async()=>{let n=this.credentials.get(e),s=await t(n);if(r?.signal?.throwIfAborted(),s!==void 0)this.credentials.set(e,s);return s??n},r)}delete(e,t){return this.enqueue(e,async()=>{this.credentials.delete(e)},t)}}class C extends Error{code;constructor(e,t,r){super(Y(t,r?.cause),r);this.name="ModelsError",this.code=e}}function Y(e,t){if(t===void 0||t===null)return e;let r=Ve(t).trim();if(!r||e.includes(r))return e;return`${e}: ${r}`}function T(e,t,r,n){let s=g(n?.signal);return v(X(e,t,r,n,s),s)}async function X(e,t,r,n,s){s.throwIfAborted();let o=n?.env?B(r,n.env):r;if(n?.apiKey!==void 0&&e.auth.apiKey)return E(o,e.auth.apiKey,e.id,{type:"api_key",key:n.apiKey,env:n.env},s);let i=await oe(t,e.id,s);if(i){if(i.type==="oauth"&&e.auth.oauth)return se(t,e.id,e.auth.oauth,i,s,n?.minOAuthValidityMs);if(i.type==="api_key"&&e.auth.apiKey){let c=n?.env?{...i,env:{...i.env,...n.env}}:i;return E(o,e.auth.apiKey,e.id,c,s)}return}return e.auth.apiKey?E(o,e.auth.apiKey,e.id,void 0,s):void 0}function B(e,t){return{env:async(r)=>t[r]||await e.env(r),fileExists:(r)=>e.fileExists(r)}}var Z=300000,ee=15000;async function k(e,t,r,n,s){let o,i=new AbortController,c=()=>i.abort(s.reason);if(s.addEventListener("abort",c,{once:!0}),s.aborted)c();try{o=await e.modify(t,async(u)=>{if(s.removeEventListener("abort",c),s.throwIfAborted(),u?.type!=="oauth")return;if(!n(u))return;try{return await r.refresh(u,AbortSignal.timeout(ee))}catch(f){throw new C("oauth",`OAuth refresh failed for ${t}`,{cause:f})}},{signal:i.signal})}catch(u){if(u instanceof C)throw u;throw s.throwIfAborted(),new C("auth",`Credential store modify failed for ${t}`,{cause:u})}finally{s.removeEventListener("abort",c)}return o?.type==="oauth"?o:void 0}async function se(e,t,r,n,s,o){let i=Math.max(Z,o??0),c=(f)=>Date.now()+i>=f.expires,u=n;if(c(u)){let f=await k(e,t,r,c,s);if(!f)return;if(u=f,o!==void 0&&c(u))throw new C("oauth",`OAuth refresh returned a token that expires too soon for ${t}`)}try{return{auth:await r.toAuth(u),source:"OAuth"}}catch(f){throw new C("oauth",`OAuth auth derivation failed for ${t}`,{cause:f})}}async function E(e,t,r,n,s){try{return await t.resolve({ctx:e,credential:n,signal:s})}catch(o){throw new C("auth",`API key auth failed for provider ${r}`,{cause:o})}}async function oe(e,t,r){try{return await e.read(t,{signal:r})}catch(n){throw new C("auth",`Credential store read failed for ${t}`,{cause:n})}}class Hn{entries=new Map;async read(e,t){t?.signal?.throwIfAborted();let r=this.entries.get(e);return r?structuredClone(r):void 0}async write(e,t,r){r?.signal?.throwIfAborted(),this.entries.set(e,structuredClone(t))}async delete(e,t){t?.signal?.throwIfAborted(),this.entries.delete(e)}}function mt(e){return e.type??"chat"}function Ce(e,t){return mt(e)===t}function _(e){if(!Ce(e,"chat"))throw new C("provider",`Model ${e.provider}/${e.id} is not a chat model`)}function K(e){if(!Ce(e,"image"))throw new C("provider",`Model ${e.provider}/${e.id} is not an image model`)}function I(e){if(!Ce(e,"classifier"))throw new C("provider",`Model ${e.provider}/${e.id} is not a classifier model`)}function L(e,t){if(t.images?.length&&!e.input.includes("image"))throw new C("provider",`Model ${e.provider}/${e.id} does not accept image input`)}function D(e,t,r=!1){return{api:e.api,provider:e.provider,model:e.id,output:[],stopReason:r?"aborted":"error",errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function O(e,t,r=!1){return{api:e.api,provider:e.provider,model:e.id,answers:{},stopReason:r?"aborted":"error",errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function ur(e,t=`
3
- `){if(typeof e==="string")return e;return e.filter((r)=>r.type==="text").map((r)=>r.text).join(t)}function N(e){let t=[ur(e.content)];for(let r of Object.values(e.sections??{}))if(r!==null)t.push(r);return t.filter((r)=>r.length>0).join(`
2
+ import{M,Ve}from"./chunk-shadcb9z.js";function z(e,t,r){return{role:"assistant",content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"error",errorMessage:t instanceof Error?t.message:String(t),timestamp:r}}function G(e){return typeof e.result==="function"}async function F(e,t){for await(let r of t)e.push(r);e.end(G(t)?await t.result():void 0)}function Ie(e,t){let r=Date.now(),n=new M;return t().then((s)=>F(n,s)).catch((s)=>{let o=z(e,s,r);n.push({type:"error",reason:"error",error:o}),n.end(o)}),n}function te(e,t){let r={stream:(n,s,o)=>Ie(n,async()=>(await e()).stream(n,s,o)),streamSimple:(n,s,o)=>Ie(n,async()=>(await e()).streamSimple(n,s,o))};if(t?.fetchDeferred)r.fetchDeferred=(n,s,o)=>Ie(n,async()=>{let i=await e();if(!i.fetchDeferred)throw Error("API does not support deferred responses");return i.fetchDeferred(n,s,o)});if(t?.cancelDeferred)r.cancelDeferred=async(n,s,o)=>{let i=await e();if(!i.cancelDeferred)throw Error("API cannot cancel deferred responses");await i.cancelDeferred(n,s,o)};return r}var J=function(e,t){if(typeof e==="string"&&/^\.\.?\//.test(e))return e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(r,n,s,o,i){return n?t?".jsx":".js":s&&(!o||!i)?r:s+o+"."+i.toLowerCase()+"js"});return e},R=(e)=>import(J(e));function V(){return globalThis.process?.env}function Uo(){return{async env(e){let t=V()?.[e];return typeof t==="string"&&t.trim().length>0?t:void 0},async fileExists(e){try{let t=await R("node:fs/promises"),r=e;if(r.startsWith("~"))r=(await R("node:os")).homedir()+r.slice(1);return await t.access(r),!0}catch{return!1}}}}function q(e){if(e.reason!==void 0)return e.reason;let t=Error("The operation was aborted");return t.name="AbortError",t}function g(e){return e??new AbortController().signal}function v(e,t){if(t.aborted)return e.catch(()=>{}),Promise.reject(q(t));return new Promise((r,n)=>{let s=!1,o=()=>t.removeEventListener("abort",i),i=()=>{if(s)return;s=!0,o(),n(q(t))};if(t.addEventListener("abort",i,{once:!0}),e.then((c)=>{if(s)return;s=!0,o(),r(c)},(c)=>{if(s)return;s=!0,o(),n(c)}),t.aborted)i()})}class qn{credentials=new Map;chains=new Map;enqueue(e,t,r){let n=g(r?.signal),s=this.chains.get(e)??Promise.resolve(),o=(async()=>(await s.catch(()=>{}),n.throwIfAborted(),t()))(),i=o.catch(()=>{});return this.chains.set(e,i),i.then(()=>{if(this.chains.get(e)===i)this.chains.delete(e)}),v(o,n)}async read(e,t){return t?.signal?.throwIfAborted(),this.credentials.get(e)}async list(e){return e?.signal?.throwIfAborted(),[...this.credentials].map(([t,r])=>({providerId:t,type:r.type}))}modify(e,t,r){return this.enqueue(e,async()=>{let n=this.credentials.get(e),s=await t(n);if(r?.signal?.throwIfAborted(),s!==void 0)this.credentials.set(e,s);return s??n},r)}delete(e,t){return this.enqueue(e,async()=>{this.credentials.delete(e)},t)}}class C extends Error{code;constructor(e,t,r){super(Y(t,r?.cause),r);this.name="ModelsError",this.code=e}}function Y(e,t){if(t===void 0||t===null)return e;let r=Ve(t).trim();if(!r||e.includes(r))return e;return`${e}: ${r}`}function T(e,t,r,n){let s=g(n?.signal);return v(X(e,t,r,n,s),s)}async function X(e,t,r,n,s){s.throwIfAborted();let o=n?.env?B(r,n.env):r;if(n?.apiKey!==void 0&&e.auth.apiKey)return E(o,e.auth.apiKey,e.id,{type:"api_key",key:n.apiKey,env:n.env},s);let i=await oe(t,e.id,s);if(i){if(i.type==="oauth"&&e.auth.oauth)return se(t,e.id,e.auth.oauth,i,s,n?.minOAuthValidityMs);if(i.type==="api_key"&&e.auth.apiKey){let c=n?.env?{...i,env:{...i.env,...n.env}}:i;return E(o,e.auth.apiKey,e.id,c,s)}return}return e.auth.apiKey?E(o,e.auth.apiKey,e.id,void 0,s):void 0}function B(e,t){return{env:async(r)=>t[r]||await e.env(r),fileExists:(r)=>e.fileExists(r)}}var Z=300000,ee=15000;async function k(e,t,r,n,s){let o,i=new AbortController,c=()=>i.abort(s.reason);if(s.addEventListener("abort",c,{once:!0}),s.aborted)c();try{o=await e.modify(t,async(u)=>{if(s.removeEventListener("abort",c),s.throwIfAborted(),u?.type!=="oauth")return;if(!n(u))return;try{return await r.refresh(u,AbortSignal.timeout(ee))}catch(f){throw new C("oauth",`OAuth refresh failed for ${t}`,{cause:f})}},{signal:i.signal})}catch(u){if(u instanceof C)throw u;throw s.throwIfAborted(),new C("auth",`Credential store modify failed for ${t}`,{cause:u})}finally{s.removeEventListener("abort",c)}return o?.type==="oauth"?o:void 0}async function se(e,t,r,n,s,o){let i=Math.max(Z,o??0),c=(f)=>Date.now()+i>=f.expires,u=n;if(c(u)){let f=await k(e,t,r,c,s);if(!f)return;if(u=f,o!==void 0&&c(u))throw new C("oauth",`OAuth refresh returned a token that expires too soon for ${t}`)}try{return{auth:await r.toAuth(u),source:"OAuth"}}catch(f){throw new C("oauth",`OAuth auth derivation failed for ${t}`,{cause:f})}}async function E(e,t,r,n,s){try{return await t.resolve({ctx:e,credential:n,signal:s})}catch(o){throw new C("auth",`API key auth failed for provider ${r}`,{cause:o})}}async function oe(e,t,r){try{return await e.read(t,{signal:r})}catch(n){throw new C("auth",`Credential store read failed for ${t}`,{cause:n})}}class Hn{entries=new Map;async read(e,t){t?.signal?.throwIfAborted();let r=this.entries.get(e);return r?structuredClone(r):void 0}async write(e,t,r){r?.signal?.throwIfAborted(),this.entries.set(e,structuredClone(t))}async delete(e,t){t?.signal?.throwIfAborted(),this.entries.delete(e)}}function mt(e){return e.type??"chat"}function Ce(e,t){return mt(e)===t}function _(e){if(!Ce(e,"chat"))throw new C("provider",`Model ${e.provider}/${e.id} is not a chat model`)}function K(e){if(!Ce(e,"image"))throw new C("provider",`Model ${e.provider}/${e.id} is not an image model`)}function I(e){if(!Ce(e,"classifier"))throw new C("provider",`Model ${e.provider}/${e.id} is not a classifier model`)}function L(e,t){if(t.images?.length&&!e.input.includes("image"))throw new C("provider",`Model ${e.provider}/${e.id} does not accept image input`)}function D(e,t,r=!1){return{api:e.api,provider:e.provider,model:e.id,output:[],stopReason:r?"aborted":"error",errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function O(e,t,r=!1){return{api:e.api,provider:e.provider,model:e.id,answers:{},stopReason:r?"aborted":"error",errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function pr(e,t=`
3
+ `){if(typeof e==="string")return e;return e.filter((r)=>r.type==="text").map((r)=>r.text).join(t)}function N(e){let t=[pr(e.content)];for(let r of Object.values(e.sections??{}))if(r!==null)t.push(r);return t.filter((r)=>r.length>0).join(`
4
4
 
5
- `)}function Me(e){let t=[],r=ur(e.content);if(r.length>0)t.push(r);for(let[n,s]of Object.entries(e.sections??{}))t.push(s===null?`Removed system prompt section "${n}".`:`Updated system prompt section "${n}":
5
+ `)}function Me(e){let t=[],r=pr(e.content);if(r.length>0)t.push(r);for(let[n,s]of Object.entries(e.sections??{}))t.push(s===null?`Removed system prompt section "${n}".`:`Updated system prompt section "${n}":
6
6
 
7
7
  ${s}`);return t.join(`
8
8
 
9
- `)}function Gn(e,t){let r=e!==void 0&&e.length>0,n=t!==void 0&&t.length>0;if(!r&&!n)return;return{role:"system",content:e??"",...n?{toolsAdded:t}:{},timestamp:0}}function ht(e){let t=Gn(e.systemPrompt,e.tools);return{messages:t?[t,...e.messages]:e.messages}}function x(e){return e.role==="system"}function pe(e){let t=e[0];return t&&x(t)?t:void 0}function $t(e){return pe(e)?e.slice(1):e}function ne(e){let t=new Map;for(let r of e){if(!x(r))continue;for(let n of r.toolsRemoved??[])t.delete(n.name);for(let n of r.toolsAdded??[])t.set(n.name,n)}return[...t.values()]}function jr(e){let t=[],r=new Map,n;for(let o of e){if(!x(o))continue;n??=o.timestamp;let i=ur(o.content);if(i.length>0)t.push(i);for(let[c,u]of Object.entries(o.sections??{}))if(u===null)r.delete(c);else r.set(c,u)}let s=ne(e);if(n===void 0&&s.length===0)return;return{role:"system",content:t.join(`
9
+ `)}function Gn(e,t){let r=e!==void 0&&e.length>0,n=t!==void 0&&t.length>0;if(!r&&!n)return;return{role:"system",content:e??"",...n?{toolsAdded:t}:{},timestamp:0}}function ht(e){let t=Gn(e.systemPrompt,e.tools);return{messages:t?[t,...e.messages]:e.messages}}function x(e){return e.role==="system"}function pe(e){let t=e[0];return t&&x(t)?t:void 0}function $t(e){return pe(e)?e.slice(1):e}function ne(e){let t=new Map;for(let r of e){if(!x(r))continue;for(let n of r.toolsRemoved??[])t.delete(n.name);for(let n of r.toolsAdded??[])t.set(n.name,n)}return[...t.values()]}function jr(e){let t=[],r=new Map,n;for(let o of e){if(!x(o))continue;n??=o.timestamp;let i=pr(o.content);if(i.length>0)t.push(i);for(let[c,u]of Object.entries(o.sections??{}))if(u===null)r.delete(c);else r.set(c,u)}let s=ne(e);if(n===void 0&&s.length===0)return;return{role:"system",content:t.join(`
10
10
 
11
11
  `),...r.size>0?{sections:Object.fromEntries(r)}:{},...s.length>0?{toolsAdded:s}:{},timestamp:n??0}}function Fo(e){let t=jr(e);return t?N(t):""}function Le(e){let t=jr(e.messages),r=e.messages.filter((n)=>n.role!=="system");return{messages:t?[t,...r]:r}}function re(e,t){return t?e:Le(e)}function nt(e){return{name:e.name,description:e.description,parameters:JSON.parse(JSON.stringify(e.parameters)),...e.constrainedSampling===void 0?{}:{constrainedSampling:e.constrainedSampling}}}function zn(e,t){return JSON.stringify(nt(e))===JSON.stringify(nt(t))}function Bo(e,t){let r=new Map(e.map((s)=>[s.name,s])),n=new Map(t.map((s)=>[s.name,s]));return{toolsAdded:t.filter((s)=>{let o=r.get(s.name);return o===void 0||!zn(o,s)}).map(nt),toolsRemoved:e.filter((s)=>{let o=n.get(s.name);return o===void 0||!zn(s,o)}).map((s)=>({name:s.name}))}}function ge(e){let t=new Map;for(let r of e){if(!x(r))continue;for(let n of r.toolsAdded??[])t.set(n.name,n)}return[...t.values()]}function Pi(e){let t=new Map;for(let r of e){if(!x(r))continue;for(let n of r.toolsAdded??[]){let s=t.get(n.name);if(s!==void 0&&!zn(s,n))return!0;t.set(n.name,n)}}return!1}function xi(e){let t=new Set;for(let r of e){if(!x(r))continue;if((r.toolsRemoved?.length??0)>0)return!0;for(let n of r.toolsAdded??[]){if(t.has(n.name))return!0;t.add(n.name)}}return!1}function ye(e,t){let r=t&&!xi(e);return{requestTools:r?pe(e)?.toolsAdded??[]:ne(e),anchorsAdditions:r}}var ie={chat:!0,image:!0,classifier:!0};function U(e){return Object.hasOwn(ie,mt(e))}function ae(e){return{...e,models:e.models.filter(U)}}function W(e,t){if(!e&&!t)return;let r={...e};for(let[n,s]of Object.entries(t??{})){let o=n.toLowerCase();for(let i of Object.keys(r))if(i.toLowerCase()===o)delete r[i];r[n]=s}return r}class j{providers=new Map;credentials;modelsStore;authContext;refreshGenerations=new Map;refreshControllers=new Map;publicationChains=new Map;constructor(e){this.credentials=e?.credentials??new qn,this.modelsStore=e?.modelsStore??new Hn,this.authContext=e?.authContext??Uo()}setProvider(e){this.supersedeProviderRefresh(e.id),this.providers.set(e.id,e)}deleteProvider(e){this.supersedeProviderRefresh(e),this.providers.delete(e)}clearProviders(){for(let e of new Set([...this.providers.keys(),...this.refreshControllers.keys()]))this.supersedeProviderRefresh(e);this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(e){return this.providers.get(e)}getModels(e){if(e!==void 0){let r=this.providers.get(e);if(!r)return[];try{return r.getModels()}catch{return[]}}let t=[];for(let r of this.providers.values())try{t.push(...r.getModels())}catch{}return t}getAllModels(e){if(e!==void 0){let r=this.providers.get(e);if(!r)return[];try{return r.getAllModels?.()??r.getModels()}catch{return[]}}let t=[];for(let r of this.providers.values())try{t.push(...r.getAllModels?.()??r.getModels())}catch{}return t}getModelsOfType(e,t){return this.getAllModels(t).filter((r)=>Ce(r,e))}getModel(e,t){return this.getModels(e).find((r)=>r.id===t)}getModelOfType(e,t,r){return this.getModelsOfType(e,t).find((n)=>n.id===r)}supersedeProviderRefresh(e){let t=(this.refreshGenerations.get(e)??0)+1;this.refreshGenerations.set(e,t);let r=this.refreshControllers.get(e);if(r)this.refreshControllers.delete(e),r.abort();return t}beginProviderRefresh(e){let t=this.supersedeProviderRefresh(e),r=new AbortController;return this.refreshControllers.set(e,r),{generation:t,controller:r}}publishProviderModels(e,t,r,n){let s=this.publicationChains.get(e)??Promise.resolve(),o=(async()=>{if(await s.catch(()=>{}),r.aborted||this.refreshGenerations.get(e)!==t)return!1;if(n.persist===null)await this.modelsStore.delete(e,{signal:r});else if(n.persist!==void 0)await this.modelsStore.write(e,structuredClone(n.persist),{signal:r});if(r.aborted||this.refreshGenerations.get(e)!==t)return!1;return n.update?.(),!0})(),i=o.catch(()=>{});return this.publicationChains.set(e,i),i.then(()=>{if(this.publicationChains.get(e)===i)this.publicationChains.delete(e)}),v(o,r)}async runProviderRefreshPhase(e,t,r,n,s,o){let i=await this.modelsStore.read(e.id,{signal:o});await e.refreshModels({credential:t,stored:i?ae(structuredClone(i)):void 0,publish:(c)=>this.publishProviderModels(e.id,s,o,c),allowNetwork:r,force:r?n:void 0,signal:o,baseUrl:e.baseUrl})}async refresh(e={}){let t=e.allowNetwork??!0,r=g(e.signal),n=new Map;if(r.aborted)return{aborted:!0,errors:n};let s=e.providers?new Set(e.providers):void 0,o=Array.from(this.providers.values()).filter((c)=>c.refreshModels!==void 0&&(!s||s.has(c.id))),i=Promise.all(o.map(async(c)=>{let{generation:u,controller:f}=this.beginProviderRefresh(c.id),m=AbortSignal.any([r,f.signal]),b=(async()=>{let w,y;try{w=await this.readCredential(c.id,m)}catch(a){y=a}if(await this.runProviderRefreshPhase(c,w,!1,void 0,u,m),y!==void 0)throw y;if(!t||m.aborted)return;let A=await this.resolveRefreshCredential(c,w,m);if(!A)return;await this.runProviderRefreshPhase(c,A,!0,e.force,u,m)})();try{await v(b,m)}catch(w){if(!m.aborted)n.set(c.id,w instanceof Error?w:new C("model_source",`Model refresh failed for ${c.id}`,{cause:w}))}finally{if(this.refreshControllers.get(c.id)===f)this.refreshControllers.delete(c.id)}}));try{await v(i,r)}catch(c){if(!r.aborted)throw c}return{aborted:r.aborted,errors:new Map(n)}}async resolveRefreshCredential(e,t,r){if(t?.type==="oauth"){let i=e.auth.oauth;if(!i)return;if(Date.now()<t.expires)return t;if(r.aborted)return;return k(this.credentials,e.id,i,(c)=>Date.now()>=c.expires,r)}let n=e.auth.apiKey;if(!n)return;let s=t?.type==="api_key"?t:void 0,o=await n.resolve({ctx:this.authContext,credential:s,signal:r});if(!o)return;return{type:"api_key",key:o.auth.apiKey,env:o.env}}async readCredential(e,t){try{return await this.credentials.read(e,{signal:t})}catch(r){throw new C("auth",`Credential store read failed for ${e}`,{cause:r})}}async checkProviderAuth(e,t,r){if(t?.type==="oauth")return e.auth.oauth?{source:"OAuth",type:"oauth"}:void 0;let n=e.auth.apiKey;if(!n)return;if(n.check)try{return await n.check({ctx:this.authContext,credential:t?.type==="api_key"?t:void 0,signal:r})}catch(o){throw new C("auth",`API key auth check failed for provider ${e.id}`,{cause:o})}let s=await T(e,this.credentials,this.authContext,{signal:r});return s?{source:s.source,type:"api_key"}:void 0}checkAuth(e,t){let r=g(t?.signal),n=(async()=>{r.throwIfAborted();let s=this.providers.get(e);if(!s)return;return this.checkProviderAuth(s,await this.readCredential(e,r),r)})();return v(n,r)}async getAuthenticatedProviders(e,t){t.throwIfAborted();let r=e?[this.providers.get(e)].filter((s)=>s!==void 0):this.getProviders();return(await Promise.all(r.map(async(s)=>{let o=await this.readCredential(s.id,t);return{provider:s,credential:o,auth:await this.checkProviderAuth(s,o,t)}}))).filter((s)=>s.auth!==void 0)}getAvailable(e,t){let r=g(t?.signal),n=(async()=>(await this.getAuthenticatedProviders(e,r)).flatMap(({provider:o,credential:i})=>{let c=o.getModels();return o.filterModels?.(c,i)??c}))();return v(n,r)}async getAvailableOfType(e,t,r){return(await this.getAllAvailable(t,r)).filter((n)=>Ce(n,e))}getAllAvailable(e,t){let r=g(t?.signal),n=(async()=>(await this.getAuthenticatedProviders(e,r)).flatMap(({provider:o,credential:i})=>{let c=o.getAllModels?.()??o.getModels();if(o.filterAllModels)return o.filterAllModels(c,i);if(!o.filterModels)return c;let u=new Set(o.filterModels(o.getModels(),i).map((f)=>f.id));return c.filter((f)=>!Ce(f,"chat")||u.has(f.id))}))();return v(n,r)}async getAuth(e,t){let r=g(t?.signal),n=typeof e==="string"?e:e.provider,s=this.providers.get(n);if(!s)return;let o=await T(s,this.credentials,this.authContext,{...t,signal:r});if(!o||typeof e==="string"||!e.headers)return o;return{...o,auth:{...o.auth,headers:W(o.auth.headers,e.headers)}}}async login(e,t,r,n){let s=g(r.signal);s.throwIfAborted();let o=this.providers.get(e);if(!o)throw new C("provider",`Unknown provider: ${e}`);let i=t==="oauth"?o.auth.oauth:o.auth.apiKey;if(!i?.login)throw new C("auth",`${o.name} does not support ${t} login`);let c=i.login({...r,signal:s},n),u=await v(c,s),f=!1,m,b=new Promise((y)=>{m=y}),w=this.credentials.modify(e,async()=>(f=!0,m?.(),u),{signal:s});w.catch(()=>{});try{await new Promise((y,A)=>{let a=()=>{if(!f)A(s.reason)};if(s.addEventListener("abort",a,{once:!0}),Promise.race([b,w]).then(()=>{s.removeEventListener("abort",a),y()},(l)=>{s.removeEventListener("abort",a),A(l)}),s.aborted)a()}),await w}catch(y){throw s.throwIfAborted(),new C("auth",`Credential store modify failed for ${e}`,{cause:y})}return u}async logout(e,t){let r=g(t?.signal);r.throwIfAborted();try{await this.credentials.delete(e,{signal:r})}catch(n){throw r.throwIfAborted(),new C("auth",`Credential store delete failed for ${e}`,{cause:n})}}requireProvider(e){let t=this.providers.get(e.provider);if(!t)throw new C("provider",`Unknown provider: ${e.provider}`);return t}requireChatProvider(e){return _(e),this.requireProvider(e)}async applyAuth(e,t){this.requireProvider(e);let r=await this.getAuth(e,{apiKey:t?.apiKey,env:t?.env,signal:t?.signal});if(!r)throw new C("auth",`Provider is not configured: ${e.provider}`);let n=r.auth,s=t?.apiKey??n.apiKey,o=W(n.headers,t?.headers);if(t?.transformHeaders)o=await t.transformHeaders(o??{});let i=r.env||t?.env?{...r.env??{},...t?.env??{}}:void 0,c=n.baseUrl?{...e,baseUrl:n.baseUrl}:e,{transformHeaders:u,...f}=t??{},m={...f,apiKey:s,headers:o,env:i};return{requestModel:c,requestOptions:m}}stream(e,t,r){let n=ht(t);return Ie(e,async()=>{let s=this.requireChatProvider(e),{requestModel:o,requestOptions:i}=await this.applyAuth(e,r);return s.stream(o,n,i)})}async complete(e,t,r){return this.stream(e,t,r).result()}streamSimple(e,t,r){let n=ht(t);return Ie(e,async()=>{let s=this.requireChatProvider(e),{requestModel:o,requestOptions:i}=await this.applyAuth(e,r);return s.streamSimple(o,n,i)})}async completeSimple(e,t,r){return this.streamSimple(e,t,r).result()}streamDeferred(e,t,r){return Ie(e,async()=>{let n=this.requireChatProvider(e);if(!n.fetchDeferred)throw new C("provider",`Provider ${e.provider} does not support deferred responses`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);return n.fetchDeferred(s,t,o)})}async fetchDeferred(e,t,r){return this.streamDeferred(e,t,r).result()}async cancelDeferred(e,t,r){let n=this.requireChatProvider(e);if(!n.cancelDeferred)throw new C("provider",`Provider ${e.provider} does not support deferred responses`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);await n.cancelDeferred(s,t,o)}async generateImages(e,t,r){try{K(e);let n=this.requireProvider(e);if(!n.generateImages)throw new C("provider",`Provider ${e.provider} does not support image generation`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);return await n.generateImages(s,t,o)}catch(n){return D(e,n,r?.signal?.aborted)}}async classify(e,t,r){try{I(e),L(e,t);let n=this.requireProvider(e);if(!n.classify)throw new C("provider",`Provider ${e.provider} does not support classification`);let{requestModel:s,requestOptions:o}=await this.applyAuth(e,r);return await n.classify(s,t,o)}catch(n){return O(e,n,r?.signal?.aborted)}}}function jn(e){return new j(e)}function d(e){let t=e.api&&typeof e.api.stream==="function"?e.api:void 0,r=t||!e.api?void 0:e.api,{images:n,classifiers:s}=e,o=t?[t]:Object.values(r??{}).filter((a)=>a!==void 0),i=Object.values(n??{}).filter((a)=>a!==void 0),c=Object.values(s??{}).filter((a)=>a!==void 0);if(o.length===0&&i.length===0&&c.length===0)throw Error(`Provider ${e.id}: at least one of "api", "images", or "classifiers" is required.`);let u=e.models,f=[],m=e.fetchModels,b=()=>{let a=[...u];for(let l of f){let h=a.findIndex((p)=>mt(p)===mt(l)&&p.id===l.id);if(h>=0)a[h]=l;else a.push(l)}return a},w=(a)=>t??r?.[a.api],y=(a,l)=>{let h=w(a);if(!h)return Ie(a,async()=>{throw new C("stream",`Provider ${e.id} has no API implementation for "${a.api}"`)});return l(h)},A={id:e.id,name:e.name??e.id,baseUrl:e.baseUrl,headers:e.headers,auth:e.auth,getModels:()=>b().filter((a)=>Ce(a,"chat")),getAllModels:b,refreshModels:m?async(a)=>{if(a.stored){let p=a.stored.models.filter((P)=>P.provider===e.id).map((P)=>P);if(!await a.publish({update:()=>{f=p}}))return}if(!a.allowNetwork||a.signal.aborted)return;let l=await m(a);if(a.signal.aborted)return;let h=l.filter(U);await a.publish({persist:{models:h,checkedAt:Date.now()},update:()=>{f=h}})}:void 0,filterModels:e.filterModels,filterAllModels:e.filterAllModels,stream:(a,l,h)=>y(a,(p)=>p.stream(a,l,h)),streamSimple:(a,l,h)=>y(a,(p)=>p.streamSimple(a,l,h))};if(o.some((a)=>a.fetchDeferred!==void 0))A.fetchDeferred=(a,l,h)=>Ie(a,async()=>{let p=w(a);if(!p?.fetchDeferred)throw new C("provider",`Provider ${e.id} does not support deferred responses for "${a.api}"`);return p.fetchDeferred(a,l,h)});if(o.some((a)=>a.cancelDeferred!==void 0))A.cancelDeferred=async(a,l,h)=>{let p=w(a);if(!p?.cancelDeferred)throw new C("provider",`Provider ${e.id} cannot cancel deferred responses for "${a.api}"`);await p.cancelDeferred(a,l,h)};if(n&&i.length>0)A.generateImages=async(a,l,h)=>{let p=n[a.api];if(!p)return D(a,new C("provider",`Provider ${e.id} has no image generation implementation for "${a.api}"`));return p.generateImages(a,l,h)};if(s&&c.length>0)A.classify=async(a,l,h)=>{let p=s[a.api];if(!p)return O(a,new C("provider",`Provider ${e.id} has no classifier implementation for "${a.api}"`));return p.classify(a,l,h)};return A}function Ti(e,t){return Ce(e,"chat")&&e.api===t}function Q(e,t){let r=t.input+t.cacheRead+t.cacheWrite,n=e.cost,s=-1;for(let c of e.cost.tiers??[])if(r>c.inputTokensAbove&&c.inputTokensAbove>s)n=c,s=c.inputTokensAbove;let o=t.cacheWrite1h??0,i=t.cacheWrite-o;return t.cost.input=n.input/1e6*t.input,t.cost.output=n.output/1e6*t.output,t.cost.cacheRead=n.cacheRead/1e6*t.cacheRead,t.cost.cacheWrite=(n.cacheWrite*i+n.input*2*o)/1e6,t.cost.total=t.cost.input+t.cost.output+t.cost.cacheRead+t.cost.cacheWrite,t.cost}var S=["off","minimal","low","medium","high","xhigh","max"];function Vr(e){if(!e.reasoning)return["off"];return S.filter((t)=>{let r=e.thinkingLevelMap?.[t];if(r===null)return!1;if(t==="xhigh"||t==="max")return r!==void 0;return!0})}function H(e,t){let r=Vr(e);if(r.includes(t))return t;let n=S.indexOf(t);if(n===-1)return r[0]??"off";for(let s=n;s<S.length;s++){let o=S[s];if(r.includes(o))return o}for(let s=n-1;s>=0;s--){let o=S[s];if(r.includes(o))return o}return r[0]??"off"}function ki(e,t){if(!e||!t)return!1;return mt(e)===mt(t)&&e.id===t.id&&e.provider===t.provider}
12
- export{Ie,te,Uo,qn,C,Hn,mt,Ce,ur,N,Me,Gn,ht,pe,$t,ne,jr,Fo,Le,re,nt,zn,Bo,ge,Pi,xi,ye,jn,d,Ti,Q,Vr,H,ki};
12
+ export{Ie,te,Uo,qn,C,Hn,mt,Ce,pr,N,Me,Gn,ht,pe,$t,ne,jr,Fo,Le,re,nt,zn,Bo,ge,Pi,xi,ye,jn,d,Ti,Q,Vr,H,ki};