@shumai-one/shumai 0.3.0 → 0.3.2

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 (158) hide show
  1. package/bin/{chunk-93jcw0pn.js → chunk-08dr94gp.js} +1 -1
  2. package/bin/{chunk-a1mtpcrd.js → chunk-08mxv0sm.js} +2 -2
  3. package/bin/{chunk-jjgwrvdb.js → chunk-0t4z17qr.js} +1 -1
  4. package/bin/{chunk-cmcsxkh1.js → chunk-1d22tysv.js} +2 -2
  5. package/bin/{chunk-9zy0a8kt.js → chunk-1dawjfk8.js} +2 -2
  6. package/bin/{chunk-q11m2cp3.js → chunk-1nh6xgek.js} +1 -1
  7. package/bin/chunk-20y3wte3.js +2 -0
  8. package/bin/{chunk-4tt3jvm1.js → chunk-2ynx0den.js} +1 -1
  9. package/bin/{chunk-yaydmgcg.js → chunk-31a3k77j.js} +1 -1
  10. package/bin/{chunk-8rkp0fc5.js → chunk-31mjcykb.js} +2 -2
  11. package/bin/{chunk-1yqar2gz.js → chunk-3jdef7n4.js} +1 -1
  12. package/bin/{chunk-h1hj60fr.js → chunk-3rcc5s99.js} +2 -2
  13. package/bin/{chunk-sa4gc1f5.js → chunk-3t7mjvdv.js} +2 -2
  14. package/bin/{chunk-36wf2dq0.js → chunk-4ahve1nf.js} +1 -1
  15. package/bin/chunk-4hdnrwh1.js +1 -0
  16. package/bin/{chunk-652x28v2.js → chunk-4hdx2tv0.js} +1 -1
  17. package/bin/chunk-4htdb0xp.js +1 -0
  18. package/bin/chunk-4p7xpfey.js +2 -0
  19. package/bin/chunk-5f81c951.js +1 -0
  20. package/bin/{chunk-bnpw72vt.js → chunk-5vqan9c4.js} +2 -2
  21. package/bin/{chunk-e66j69wz.js → chunk-5zntjzxw.js} +1 -1
  22. package/bin/{chunk-jmh934ca.js → chunk-6a2eb3b5.js} +1 -1
  23. package/bin/{chunk-5x1ppya9.js → chunk-6t3gdd7e.js} +2 -2
  24. package/bin/chunk-7d5kep8c.js +2 -0
  25. package/bin/{chunk-a06432s3.js → chunk-7eycsyk6.js} +1 -1
  26. package/bin/{chunk-0p333kh7.js → chunk-7jjc175m.js} +3 -3
  27. package/bin/chunk-7kzqkp5z.js +1 -0
  28. package/bin/chunk-7sh6409h.js +1 -0
  29. package/bin/{chunk-zct68gc7.js → chunk-7y8dng8t.js} +2 -2
  30. package/bin/chunk-8e5zvy88.js +307 -0
  31. package/bin/{chunk-nmzvxgd6.js → chunk-8m6zg15c.js} +2 -2
  32. package/bin/{chunk-wv8xk7n7.js → chunk-8qyke29r.js} +1 -1
  33. package/bin/{chunk-jxxq76at.js → chunk-90et6bwm.js} +1 -1
  34. package/bin/chunk-9c7fxjej.js +2 -0
  35. package/bin/{chunk-449feg7g.js → chunk-9p2d0mk1.js} +1 -1
  36. package/bin/{chunk-c003q4v6.js → chunk-a10tf0d8.js} +1 -1
  37. package/bin/{chunk-9h3c60vw.js → chunk-a76c5r3c.js} +2 -2
  38. package/bin/{chunk-3g54qkv5.js → chunk-amsb41z5.js} +1 -1
  39. package/bin/{chunk-28egv700.js → chunk-arpna31w.js} +1 -1
  40. package/bin/{chunk-k0s6gfg6.js → chunk-b10meywb.js} +1 -1
  41. package/bin/chunk-b1e3tec3.js +62 -0
  42. package/bin/chunk-bdjhb77e.js +2 -0
  43. package/bin/chunk-beay9amy.js +1 -0
  44. package/bin/{chunk-cspp4n1d.js → chunk-c3fvs0bv.js} +2 -2
  45. package/bin/{chunk-ab45988z.js → chunk-c5my1b3k.js} +1 -1
  46. package/bin/{chunk-jh6pw37a.js → chunk-d3s00sn0.js} +1 -1
  47. package/bin/{chunk-9bvwwj5y.js → chunk-dhekxndw.js} +1 -1
  48. package/bin/{chunk-pzehf31g.js → chunk-dwaj1yn4.js} +1 -1
  49. package/bin/{chunk-rybbss5f.js → chunk-dwswqq3g.js} +1 -1
  50. package/bin/{chunk-5jhrqbk2.js → chunk-ejfmxjw6.js} +2 -2
  51. package/bin/{chunk-mzre12bp.js → chunk-er1rb6yj.js} +1 -1
  52. package/bin/chunk-etces6ff.js +2 -0
  53. package/bin/{chunk-r8vrfefa.js → chunk-etqpzc9e.js} +1 -1
  54. package/bin/{chunk-pna93n17.js → chunk-f8cn9m28.js} +1 -1
  55. package/bin/{chunk-fvf7j1qj.js → chunk-fdpjw17x.js} +1 -1
  56. package/bin/{chunk-agd2jevj.js → chunk-g2dk56e7.js} +1 -1
  57. package/bin/{chunk-fr3dg9aj.js → chunk-gn8snrnk.js} +1 -1
  58. package/bin/chunk-gqh4ttjh.js +3 -0
  59. package/bin/{chunk-szs8dy1s.js → chunk-gvn079hy.js} +2 -2
  60. package/bin/{chunk-qwxt1cha.js → chunk-h2wsm7h3.js} +2 -2
  61. package/bin/{chunk-cwebycwv.js → chunk-hfp4hpca.js} +2 -2
  62. package/bin/{chunk-yvgs4kmv.js → chunk-hrzm70wg.js} +1 -1
  63. package/bin/{chunk-fwcm78s9.js → chunk-hz31j0hk.js} +2 -2
  64. package/bin/{chunk-d3cqp0tb.js → chunk-j0p1peav.js} +2 -2
  65. package/bin/{chunk-aa2tkqg0.js → chunk-jm6bxtzt.js} +1 -1
  66. package/bin/{chunk-y132jbf0.js → chunk-jstc7pka.js} +1 -1
  67. package/bin/{chunk-8g1s0pq1.js → chunk-k0a35mg9.js} +1 -1
  68. package/bin/{chunk-e0kw3bst.js → chunk-k20bhxed.js} +1 -1
  69. package/bin/{chunk-he4h8e9e.js → chunk-k9w6mk9d.js} +2 -2
  70. package/bin/chunk-kgb16ggd.css +1 -0
  71. package/bin/{chunk-qjf561n2.js → chunk-m4py21f3.js} +1 -1
  72. package/bin/{chunk-jtwvd0te.js → chunk-mahxw48e.js} +2 -2
  73. package/bin/{chunk-f4x2dxe5.js → chunk-mcxsk75h.js} +3 -3
  74. package/bin/chunk-mm1j72a8.js +7 -0
  75. package/bin/{chunk-zy2sqtt9.js → chunk-na2nympm.js} +1 -1
  76. package/bin/chunk-nr89225z.js +2 -0
  77. package/bin/chunk-nrf5r23d.js +1 -0
  78. package/bin/{chunk-ddag2ezv.js → chunk-nt9tfjx6.js} +2 -2
  79. package/bin/chunk-nzy3pjjm.js +15 -0
  80. package/bin/{chunk-pvx55h1v.js → chunk-p396vw9h.js} +1 -1
  81. package/bin/{chunk-wwsvnz4v.js → chunk-p9xfyqh1.js} +2 -2
  82. package/bin/{chunk-phc9efjf.js → chunk-ph3e1bpp.js} +2 -2
  83. package/bin/{chunk-w3m9g3e9.js → chunk-pj0fgb2x.js} +1 -1
  84. package/bin/{chunk-9fefn2st.js → chunk-pp072ksj.js} +1 -1
  85. package/bin/{chunk-qt9efp9y.js → chunk-q5cdjzbv.js} +1 -1
  86. package/bin/{chunk-nd6psyzq.js → chunk-qc6dmzn0.js} +2 -2
  87. package/bin/{chunk-fytbcgak.js → chunk-qmtvy2j4.js} +2 -2
  88. package/bin/chunk-qn96vbke.js +2 -0
  89. package/bin/{chunk-bf5a4yc8.js → chunk-qvgc9e08.js} +1 -1
  90. package/bin/{chunk-mw0rc5m7.js → chunk-rrxjvewm.js} +1 -1
  91. package/bin/{chunk-nxhzchen.js → chunk-s05f0v9t.js} +1 -1
  92. package/bin/chunk-s5rfya1p.js +1 -0
  93. package/bin/{chunk-gc7b9j22.js → chunk-s7qpj715.js} +1 -1
  94. package/bin/chunk-scsy69bp.js +1 -0
  95. package/bin/{chunk-vjxgv3r6.js → chunk-sf6fwvrs.js} +1 -1
  96. package/bin/{chunk-h3y7szbm.js → chunk-ss45w8ks.js} +2 -2
  97. package/bin/{chunk-4gbs9swm.js → chunk-t2txvzkp.js} +1 -1
  98. package/bin/{chunk-e56nza63.js → chunk-td54rdfj.js} +1 -1
  99. package/bin/{chunk-6wa075zh.js → chunk-tsncwscz.js} +1 -1
  100. package/bin/{chunk-evzxjqr3.js → chunk-v2kfr8fx.js} +2 -2
  101. package/bin/chunk-vb9m47z9.js +1 -0
  102. package/bin/{chunk-t0detvbj.js → chunk-ve7v8wtv.js} +2 -2
  103. package/bin/{chunk-cm25nm9t.js → chunk-vf066xwh.js} +1 -1
  104. package/bin/{chunk-d5fapvnp.js → chunk-vgb8bzcg.js} +2 -2
  105. package/bin/{chunk-wcfpdfgy.js → chunk-vnfmh5ke.js} +2 -2
  106. package/bin/{chunk-hdqvbds8.js → chunk-vy24ncn2.js} +1 -1
  107. package/bin/{chunk-2xmsa8wv.js → chunk-w3a50kz8.js} +1 -1
  108. package/bin/{chunk-bjfwz2m7.js → chunk-w9w5301f.js} +2 -2
  109. package/bin/{chunk-1zpw2mbj.js → chunk-wap08p4j.js} +2 -2
  110. package/bin/{chunk-hktggc90.js → chunk-wny0qagx.js} +1 -1
  111. package/bin/{chunk-dk45f6mp.js → chunk-wqhk76de.js} +2 -2
  112. package/bin/{chunk-en4m76fw.js → chunk-wr5byz6r.js} +1 -1
  113. package/bin/{chunk-ky3dx324.js → chunk-wrz9e73c.js} +2 -2
  114. package/bin/{chunk-6f1twjf6.js → chunk-ws07a9kv.js} +1 -1
  115. package/bin/{chunk-9q32g9jd.js → chunk-x5dcgk62.js} +1 -1
  116. package/bin/{chunk-sprpjp4t.js → chunk-xawwxdq9.js} +2 -2
  117. package/bin/chunk-xwmsxg5x.js +1 -0
  118. package/bin/{chunk-736tcjve.js → chunk-y2nw8rbx.js} +2 -2
  119. package/bin/{chunk-48ebezek.js → chunk-y9ttm07y.js} +1 -1
  120. package/bin/chunk-yahb7wan.js +2 -0
  121. package/bin/{chunk-swa43tzr.js → chunk-z0ej44ak.js} +3 -3
  122. package/bin/chunk-zemgtnk0.js +1 -0
  123. package/bin/{chunk-a6dvjjce.js → chunk-zg0vm233.js} +1 -1
  124. package/bin/chunk-zhd2mkbr.js +1 -0
  125. package/bin/{chunk-cfamv4b2.js → chunk-zs9b0f3z.js} +2 -2
  126. package/bin/{chunk-8sr8ff6a.js → chunk-zxpef55w.js} +3 -3
  127. package/bin/shumai-app.html +1 -1
  128. package/bin/shumai-app.js +254 -224
  129. package/package.json +7 -7
  130. package/prisma/migrations/20260729073910_change_agent_session_asset_on_delete_to_set_null/migration.sql +5 -0
  131. package/prisma/migrations/20260729114346_asset_size_byte_bigint/migration.sql +2 -0
  132. package/prisma/migrations/20260729114659_ai_usage_tokens_bigint/migration.sql +5 -0
  133. package/prisma/schema.prisma +6 -6
  134. package/bin/chunk-1wz0dge4.js +0 -3
  135. package/bin/chunk-2m2saan7.js +0 -2
  136. package/bin/chunk-2p0rg6xs.js +0 -1
  137. package/bin/chunk-3ge0s4k2.js +0 -1
  138. package/bin/chunk-6ks4277t.js +0 -2
  139. package/bin/chunk-80d6p55n.js +0 -1
  140. package/bin/chunk-8a9k4qj6.js +0 -2
  141. package/bin/chunk-8gkm2ysh.js +0 -1
  142. package/bin/chunk-8nvybmyv.js +0 -2
  143. package/bin/chunk-9jd3d3f3.js +0 -320
  144. package/bin/chunk-9nwjhams.js +0 -1
  145. package/bin/chunk-a2njf6av.js +0 -1
  146. package/bin/chunk-af3nys0r.js +0 -1
  147. package/bin/chunk-cx1ebj9k.js +0 -1
  148. package/bin/chunk-d1p9qz3y.js +0 -7
  149. package/bin/chunk-ea0fh29m.js +0 -2
  150. package/bin/chunk-epsctccj.js +0 -1
  151. package/bin/chunk-jyr3g5m4.js +0 -1
  152. package/bin/chunk-n0cn0xfg.js +0 -1
  153. package/bin/chunk-q0dhm16d.js +0 -62
  154. package/bin/chunk-qs5k9j8s.js +0 -1
  155. package/bin/chunk-t0fq8b99.js +0 -2
  156. package/bin/chunk-tm6z4hkd.css +0 -1
  157. package/bin/chunk-vdn3jymh.js +0 -2
  158. package/bin/chunk-z5p39kpk.js +0 -2
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{cf as R}from"./chunk-hktggc90.js";function q(B,Q){return{role:"assistant",content:[],api:B.api,provider:B.provider,model:B.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:Q instanceof Error?Q.message:String(Q),timestamp:Date.now()}}function _(B,Q){(async()=>{for await(let Y of Q)B.push(Y);B.end()})()}function O(B,Q){let Y=new R;return Q().then((Z)=>{_(Y,Z)}).catch((Z)=>{let $=q(B,Z);Y.push({type:"error",reason:"error",error:$}),Y.end($)}),Y}function L(B){return{stream:(Q,Y,Z)=>O(Q,async()=>(await B()).stream(Q,Y,Z)),streamSimple:(Q,Y,Z)=>O(Q,async()=>(await B()).streamSimple(Q,Y,Z))}}var A=function(B,Q){if(typeof B==="string"&&/^\.\.?\//.test(B))return B.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(Y,Z,$,F,w){return Z?Q?".jsx":".js":$&&(!F||!w)?Y:$+F+"."+w.toLowerCase()+"js"});return B},j=(B)=>import(A(B));function C(){return globalThis.process?.env}function D(){return{async env(B){let Q=C()?.[B];return typeof Q==="string"&&Q.trim().length>0?Q:void 0},async fileExists(B){try{let Q=await j("node:fs/promises"),Y=B;if(Y.startsWith("~"))Y=(await j("node:os")).homedir()+Y.slice(1);return await Q.access(Y),!0}catch{return!1}}}}class V{credentials=new Map;chains=new Map;enqueue(B,Q){let Y=this.chains.get(B)??Promise.resolve(),Z=(async()=>{return await Y.catch(()=>{}),Q()})();return this.chains.set(B,Z.catch(()=>{})),Z}async read(B){return this.credentials.get(B)}modify(B,Q){return this.enqueue(B,async()=>{let Y=this.credentials.get(B),Z=await Q(Y);if(Z!==void 0)this.credentials.set(B,Z);return Z??Y})}delete(B){return this.enqueue(B,async()=>{this.credentials.delete(B)})}}class W extends Error{code;constructor(B,Q,Y){super(Q,Y);this.name="ModelsError",this.code=B}}async function z(B,Q,Y,Z,$){let F=$?.env?T(Z,$.env):Z;if($?.apiKey!==void 0&&B.auth.apiKey)return X(F,B.auth.apiKey,Q,{type:"api_key",key:$.apiKey,env:$.env});let w=await N(Y,B.id);if(w){if(w.type==="oauth"&&B.auth.oauth)return f(Y,B.id,B.auth.oauth,w);if(w.type==="api_key"&&B.auth.apiKey){let J=$?.env?{...w,env:{...w.env,...$.env}}:w;return X(F,B.auth.apiKey,Q,J)}return}return B.auth.apiKey?X(F,B.auth.apiKey,Q,void 0):void 0}function T(B,Q){return{env:async(Y)=>Q[Y]||await B.env(Y),fileExists:(Y)=>B.fileExists(Y)}}async function f(B,Q,Y,Z){let $=Z;if(Date.now()>=$.expires){let F;try{F=await B.modify(Q,async(w)=>{if(w?.type!=="oauth")return;if(Date.now()<w.expires)return;try{return await Y.refresh(w)}catch(J){throw new W("oauth",`OAuth refresh failed for ${Q}`,{cause:J})}})}catch(w){if(w instanceof W)throw w;throw new W("auth",`Credential store modify failed for ${Q}`,{cause:w})}if(F?.type!=="oauth")return;$=F}try{return{auth:await Y.toAuth($),source:"OAuth"}}catch(F){throw new W("oauth",`OAuth auth derivation failed for ${Q}`,{cause:F})}}async function X(B,Q,Y,Z){try{return await Q.resolve({model:Y,ctx:B,credential:Z})}catch($){throw new W("auth",`API key auth failed for provider ${Y.provider}`,{cause:$})}}async function N(B,Q){try{return await B.read(Q)}catch(Y){throw new W("auth",`Credential store read failed for ${Q}`,{cause:Y})}}class K{providers=new Map;credentials;authContext;constructor(B){this.credentials=B?.credentials??new V,this.authContext=B?.authContext??D()}setProvider(B){this.providers.set(B.id,B)}deleteProvider(B){this.providers.delete(B)}clearProviders(){this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(B){return this.providers.get(B)}getModels(B){if(B!==void 0){let Y=this.providers.get(B);if(!Y)return[];try{return Y.getModels()}catch{return[]}}let Q=[];for(let Y of this.providers.values())try{Q.push(...Y.getModels())}catch{}return Q}getModel(B,Q){return this.getModels(B).find((Y)=>Y.id===Q)}async refresh(B){if(B!==void 0){let Q=this.providers.get(B);if(!Q?.refreshModels)return;try{await Q.refreshModels()}catch(Y){if(Y instanceof W)throw Y;throw new W("model_source",`Model refresh failed for ${B}`,{cause:Y})}return}await Promise.allSettled(Array.from(this.providers.values(),async(Q)=>Q.refreshModels?.()))}async getAuth(B){let Q=this.providers.get(B.provider);if(!Q)return;return z(Q,B,this.credentials,this.authContext)}requireProvider(B){let Q=this.providers.get(B.provider);if(!Q)throw new W("provider",`Unknown provider: ${B.provider}`);return Q}async applyAuth(B,Q){let Y=await z(this.requireProvider(B),B,this.credentials,this.authContext,{apiKey:Q?.apiKey,env:Q?.env}),Z=Y?.auth;if(!Z)return{requestModel:B,requestOptions:Q};let $=Z.baseUrl?{...B,baseUrl:Z.baseUrl}:B,F=Q?.apiKey??Z.apiKey,w=Z.headers||Q?.headers?{...Z.headers,...Q?.headers}:void 0,J=Y.env||Q?.env?{...Y.env??{},...Q?.env??{}}:void 0,P={...Q,apiKey:F,headers:w,env:J};return{requestModel:$,requestOptions:P}}stream(B,Q,Y){return O(B,async()=>{let Z=this.requireProvider(B),{requestModel:$,requestOptions:F}=await this.applyAuth(B,Y);return Z.stream($,Q,F)})}async complete(B,Q,Y){return this.stream(B,Q,Y).result()}streamSimple(B,Q,Y){return O(B,async()=>{let Z=this.requireProvider(B),{requestModel:$,requestOptions:F}=await this.applyAuth(B,Y);return Z.streamSimple($,Q,F)})}async completeSimple(B,Q,Y){return this.streamSimple(B,Q,Y).result()}}function u(B){return new K(B)}function m(B){let Q=B.models,Y,Z=B.refreshModels,$=typeof B.api.stream==="function"?B.api:void 0,F=$?void 0:B.api,w=(P)=>$??F?.[P.api],J=(P,U)=>{let k=w(P);if(!k)return O(P,async()=>{throw new W("stream",`Provider ${B.id} has no API implementation for "${P.api}"`)});return U(k)};return{id:B.id,name:B.name??B.id,baseUrl:B.baseUrl,headers:B.headers,auth:B.auth,getModels:()=>Q,refreshModels:Z?()=>{return Y??=(async()=>{try{Q=await Z()}finally{Y=void 0}})(),Y}:void 0,stream:(P,U,k)=>J(P,(H)=>H.stream(P,U,k)),streamSimple:(P,U,k)=>J(P,(H)=>H.streamSimple(P,U,k))}}function v(B,Q){let Y=Q.input+Q.cacheRead+Q.cacheWrite,Z=B.cost,$=-1;for(let J of B.cost.tiers??[])if(Y>J.inputTokensAbove&&J.inputTokensAbove>$)Z=J,$=J.inputTokensAbove;let F=Q.cacheWrite1h??0,w=Q.cacheWrite-F;return Q.cost.input=Z.input/1e6*Q.input,Q.cost.output=Z.output/1e6*Q.output,Q.cost.cacheRead=Z.cacheRead/1e6*Q.cacheRead,Q.cost.cacheWrite=(Z.cacheWrite*w+Z.input*2*F)/1e6,Q.cost.total=Q.cost.input+Q.cost.output+Q.cost.cacheRead+Q.cost.cacheWrite,Q.cost}var G=["off","minimal","low","medium","high","xhigh","max"];function b(B){if(!B.reasoning)return["off"];return G.filter((Q)=>{let Y=B.thinkingLevelMap?.[Q];if(Y===null)return!1;if(Q==="xhigh"||Q==="max")return Y!==void 0;return!0})}function n(B,Q){let Y=b(B);if(Y.includes(Q))return Q;let Z=G.indexOf(Q);if(Z===-1)return Y[0]??"off";for(let $=Z;$<G.length;$++){let F=G[$];if(Y.includes(F))return F}for(let $=Z-1;$>=0;$--){let F=G[$];if(Y.includes(F))return F}return Y[0]??"off"}
3
- export{L as Ze,u as _e,m as $e,v as af,n as bf};
2
+ import{df as R}from"./chunk-wny0qagx.js";function q(B,Q){return{role:"assistant",content:[],api:B.api,provider:B.provider,model:B.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:Q instanceof Error?Q.message:String(Q),timestamp:Date.now()}}function _(B,Q){(async()=>{for await(let Y of Q)B.push(Y);B.end()})()}function O(B,Q){let Y=new R;return Q().then((Z)=>{_(Y,Z)}).catch((Z)=>{let $=q(B,Z);Y.push({type:"error",reason:"error",error:$}),Y.end($)}),Y}function L(B){return{stream:(Q,Y,Z)=>O(Q,async()=>(await B()).stream(Q,Y,Z)),streamSimple:(Q,Y,Z)=>O(Q,async()=>(await B()).streamSimple(Q,Y,Z))}}var A=function(B,Q){if(typeof B==="string"&&/^\.\.?\//.test(B))return B.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(Y,Z,$,F,w){return Z?Q?".jsx":".js":$&&(!F||!w)?Y:$+F+"."+w.toLowerCase()+"js"});return B},j=(B)=>import(A(B));function C(){return globalThis.process?.env}function D(){return{async env(B){let Q=C()?.[B];return typeof Q==="string"&&Q.trim().length>0?Q:void 0},async fileExists(B){try{let Q=await j("node:fs/promises"),Y=B;if(Y.startsWith("~"))Y=(await j("node:os")).homedir()+Y.slice(1);return await Q.access(Y),!0}catch{return!1}}}}class V{credentials=new Map;chains=new Map;enqueue(B,Q){let Y=this.chains.get(B)??Promise.resolve(),Z=(async()=>{return await Y.catch(()=>{}),Q()})();return this.chains.set(B,Z.catch(()=>{})),Z}async read(B){return this.credentials.get(B)}modify(B,Q){return this.enqueue(B,async()=>{let Y=this.credentials.get(B),Z=await Q(Y);if(Z!==void 0)this.credentials.set(B,Z);return Z??Y})}delete(B){return this.enqueue(B,async()=>{this.credentials.delete(B)})}}class W extends Error{code;constructor(B,Q,Y){super(Q,Y);this.name="ModelsError",this.code=B}}async function z(B,Q,Y,Z,$){let F=$?.env?T(Z,$.env):Z;if($?.apiKey!==void 0&&B.auth.apiKey)return X(F,B.auth.apiKey,Q,{type:"api_key",key:$.apiKey,env:$.env});let w=await N(Y,B.id);if(w){if(w.type==="oauth"&&B.auth.oauth)return f(Y,B.id,B.auth.oauth,w);if(w.type==="api_key"&&B.auth.apiKey){let J=$?.env?{...w,env:{...w.env,...$.env}}:w;return X(F,B.auth.apiKey,Q,J)}return}return B.auth.apiKey?X(F,B.auth.apiKey,Q,void 0):void 0}function T(B,Q){return{env:async(Y)=>Q[Y]||await B.env(Y),fileExists:(Y)=>B.fileExists(Y)}}async function f(B,Q,Y,Z){let $=Z;if(Date.now()>=$.expires){let F;try{F=await B.modify(Q,async(w)=>{if(w?.type!=="oauth")return;if(Date.now()<w.expires)return;try{return await Y.refresh(w)}catch(J){throw new W("oauth",`OAuth refresh failed for ${Q}`,{cause:J})}})}catch(w){if(w instanceof W)throw w;throw new W("auth",`Credential store modify failed for ${Q}`,{cause:w})}if(F?.type!=="oauth")return;$=F}try{return{auth:await Y.toAuth($),source:"OAuth"}}catch(F){throw new W("oauth",`OAuth auth derivation failed for ${Q}`,{cause:F})}}async function X(B,Q,Y,Z){try{return await Q.resolve({model:Y,ctx:B,credential:Z})}catch($){throw new W("auth",`API key auth failed for provider ${Y.provider}`,{cause:$})}}async function N(B,Q){try{return await B.read(Q)}catch(Y){throw new W("auth",`Credential store read failed for ${Q}`,{cause:Y})}}class K{providers=new Map;credentials;authContext;constructor(B){this.credentials=B?.credentials??new V,this.authContext=B?.authContext??D()}setProvider(B){this.providers.set(B.id,B)}deleteProvider(B){this.providers.delete(B)}clearProviders(){this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(B){return this.providers.get(B)}getModels(B){if(B!==void 0){let Y=this.providers.get(B);if(!Y)return[];try{return Y.getModels()}catch{return[]}}let Q=[];for(let Y of this.providers.values())try{Q.push(...Y.getModels())}catch{}return Q}getModel(B,Q){return this.getModels(B).find((Y)=>Y.id===Q)}async refresh(B){if(B!==void 0){let Q=this.providers.get(B);if(!Q?.refreshModels)return;try{await Q.refreshModels()}catch(Y){if(Y instanceof W)throw Y;throw new W("model_source",`Model refresh failed for ${B}`,{cause:Y})}return}await Promise.allSettled(Array.from(this.providers.values(),async(Q)=>Q.refreshModels?.()))}async getAuth(B){let Q=this.providers.get(B.provider);if(!Q)return;return z(Q,B,this.credentials,this.authContext)}requireProvider(B){let Q=this.providers.get(B.provider);if(!Q)throw new W("provider",`Unknown provider: ${B.provider}`);return Q}async applyAuth(B,Q){let Y=await z(this.requireProvider(B),B,this.credentials,this.authContext,{apiKey:Q?.apiKey,env:Q?.env}),Z=Y?.auth;if(!Z)return{requestModel:B,requestOptions:Q};let $=Z.baseUrl?{...B,baseUrl:Z.baseUrl}:B,F=Q?.apiKey??Z.apiKey,w=Z.headers||Q?.headers?{...Z.headers,...Q?.headers}:void 0,J=Y.env||Q?.env?{...Y.env??{},...Q?.env??{}}:void 0,P={...Q,apiKey:F,headers:w,env:J};return{requestModel:$,requestOptions:P}}stream(B,Q,Y){return O(B,async()=>{let Z=this.requireProvider(B),{requestModel:$,requestOptions:F}=await this.applyAuth(B,Y);return Z.stream($,Q,F)})}async complete(B,Q,Y){return this.stream(B,Q,Y).result()}streamSimple(B,Q,Y){return O(B,async()=>{let Z=this.requireProvider(B),{requestModel:$,requestOptions:F}=await this.applyAuth(B,Y);return Z.streamSimple($,Q,F)})}async completeSimple(B,Q,Y){return this.streamSimple(B,Q,Y).result()}}function u(B){return new K(B)}function m(B){let Q=B.models,Y,Z=B.refreshModels,$=typeof B.api.stream==="function"?B.api:void 0,F=$?void 0:B.api,w=(P)=>$??F?.[P.api],J=(P,U)=>{let k=w(P);if(!k)return O(P,async()=>{throw new W("stream",`Provider ${B.id} has no API implementation for "${P.api}"`)});return U(k)};return{id:B.id,name:B.name??B.id,baseUrl:B.baseUrl,headers:B.headers,auth:B.auth,getModels:()=>Q,refreshModels:Z?()=>{return Y??=(async()=>{try{Q=await Z()}finally{Y=void 0}})(),Y}:void 0,stream:(P,U,k)=>J(P,(H)=>H.stream(P,U,k)),streamSimple:(P,U,k)=>J(P,(H)=>H.streamSimple(P,U,k))}}function v(B,Q){let Y=Q.input+Q.cacheRead+Q.cacheWrite,Z=B.cost,$=-1;for(let J of B.cost.tiers??[])if(Y>J.inputTokensAbove&&J.inputTokensAbove>$)Z=J,$=J.inputTokensAbove;let F=Q.cacheWrite1h??0,w=Q.cacheWrite-F;return Q.cost.input=Z.input/1e6*Q.input,Q.cost.output=Z.output/1e6*Q.output,Q.cost.cacheRead=Z.cacheRead/1e6*Q.cacheRead,Q.cost.cacheWrite=(Z.cacheWrite*w+Z.input*2*F)/1e6,Q.cost.total=Q.cost.input+Q.cost.output+Q.cost.cacheRead+Q.cost.cacheWrite,Q.cost}var G=["off","minimal","low","medium","high","xhigh","max"];function b(B){if(!B.reasoning)return["off"];return G.filter((Q)=>{let Y=B.thinkingLevelMap?.[Q];if(Y===null)return!1;if(Q==="xhigh"||Q==="max")return Y!==void 0;return!0})}function n(B,Q){let Y=b(B);if(Y.includes(Q))return Q;let Z=G.indexOf(Q);if(Z===-1)return Y[0]??"off";for(let $=Z;$<G.length;$++){let F=G[$];if(Y.includes(F))return F}for(let $=Z-1;$>=0;$--){let F=G[$];if(Y.includes(F))return F}return Y[0]??"off"}
3
+ export{L as _e,u as $e,m as af,v as bf,n as cf};