fluxflow-cli 4.29.0 → 4.30.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.
- package/dist/chunks/{ai-3TOJ2MCJ.js → ai-7WYYXVPG.js} +1 -1
- package/dist/chunks/{app-P5THRXWH.js → app-BZF3TPTH.js} +1 -1
- package/dist/chunks/{chunk-7RRLGIGO.js → chunk-PDIXJ5UN.js} +54 -30
- package/dist/chunks/chunk-QJZ24WJZ.js +12 -0
- package/dist/chunks/chunk-TKLNPNRK.js +893 -0
- package/dist/chunks/{generate_image-BU3BYQYC.js → generate_image-GMYCWQ4R.js} +1 -1
- package/dist/chunks/{invoke-HLIC6ABO.js → invoke-TQYG6PIJ.js} +2 -2
- package/dist/chunks/{invokeSync-FNEIF7CS.js → invokeSync-RLW626O7.js} +2 -2
- package/dist/chunks/{usage-6B7WSR44.js → usage-TITGX7QI.js} +1 -1
- package/dist/chunks/{usageServer-5ID7XHPC.js → usageServer-TZCW3K7K.js} +1 -1
- package/dist/cli.js +3 -3
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/dist/chunks/chunk-46DTZUUE.js +0 -893
- package/dist/chunks/chunk-B4A6DCXB.js +0 -12
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{a as V}from"./chunk-RVCMZTHS.js";import{a as rt,b as J}from"./chunk-L3W2X74K.js";import{d as G,h as Y,i as v,j as M}from"./chunk-DSVLWYIT.js";import S from"fs-extra";import C from"path";import Dt from"http";import F from"fs-extra";import Z from"path";import{spawn as Lt}from"child_process";import{fileURLToPath as vt}from"url";var E=52991,Mt=15e3,ct=Z.join(G,"usage","usage_error.txt"),lt=async(s,t)=>{let o=t?.stack||t?.message||String(t);console.error(`[Usage Daemon Error] [${s}]:`,t);try{await F.ensureDir(Z.dirname(ct));let e=`[${new Date().toISOString()}] [Daemon:${s}] ${o}
|
|
2
|
-
-------------------------------------
|
|
3
|
-
|
|
4
|
-
`;await F.appendFile(ct,e,"utf8")}catch{}},j={agent:0,background:0,search:0,toolSuccess:0,toolFailure:0,toolDenied:0,duration:0,tokens:0,cachedTokens:0,candidateTokens:0,linesAdded:0,linesRemoved:0,imageCalls:[]},K=(s,t)=>{if(!s)return{};let o=Object.keys(s),n=new Date(new Date(t).getTime()-720*60*60*1e3),e={};for(let i of o)new Date(i)>=n&&(e[i]=s[i]);return e};async function Rt(){let s=new Date().toISOString().split("T")[0],t=null;try{if(await F.exists(v)){let o=(await F.readFile(v,"utf8")).trim();o.startsWith("{")||o.startsWith("[")?t=JSON.parse(o):t=JSON.parse(J(o))}}catch(o){await lt("loadUsageFromDisk",o)}if(t){let o={...j,...t.stats||{}};Array.isArray(o.imageCalls)||(o.imageCalls=[]);let n=t.history||{},e=K(n,s);if(t.date===s)return{...t,stats:o,history:e};{let i=t.date,r={...e};return i&&(r[i]=o),{date:s,stats:{...j},history:K(r,s)}}}return{date:s,stats:{...j},history:{}}}async function Ut(s=E){let t=await Rt(),o=!1,n=!1,e=Date.now(),i=null,r=async()=>{if(t)try{await F.ensureDir(Z.dirname(v));let l=new Date().toISOString().split("T")[0];t.history=K(t.history||{},t.date||l),t.saveId=Math.random().toString(36).substring(2)+Date.now().toString(36);let a=rt(JSON.stringify(t,null,2));await F.writeFile(v,a,"utf8"),n=!1}catch(l){await lt("flushToDisk",l)}},c=async()=>{i&&clearInterval(i),await r(),u.close(()=>{process.exit(0)}),setTimeout(()=>process.exit(0),1e3).unref()};i=setInterval(async()=>{if(o)return;Date.now()-e>Mt&&await c()},5e3),i.unref&&i.unref();let u=Dt.createServer(async(l,a)=>{let d=l.url||"";if(l.method==="POST"&&d==="/heartbeat"){o||(e=Date.now()),a.writeHead(200,{"Content-Type":"application/json"}),a.end(JSON.stringify({ok:!0}));return}if((l.method==="GET"||l.method==="POST")&&d==="/finalize"){o=!0,i&&clearInterval(i),await r(),a.writeHead(200,{"Content-Type":"application/json"}),a.end(JSON.stringify({success:!0,message:"Finalized and written to disk"})),setTimeout(()=>{u.close(()=>process.exit(0)),setTimeout(()=>process.exit(0),500).unref()},3e3);return}if(l.method==="POST"&&d==="/flush"){o||(e=Date.now(),await r()),a.writeHead(200,{"Content-Type":"application/json"}),a.end(JSON.stringify({success:!0}));return}if(l.method==="POST"&&d==="/write"){if(o){a.writeHead(403,{"Content-Type":"application/json"}),a.end(JSON.stringify({error:"Daemon finalized. Writes locked."}));return}e=Date.now();let m="";l.on("data",h=>{m+=h}),l.on("end",async()=>{try{let h=JSON.parse(m||"{}"),k=new Date().toISOString().split("T")[0];if(t.date!==k){let T=t.date;T&&(t.history||(t.history={}),t.history[T]={...t.stats}),t.date=k,t.stats={...j}}t.stats||(t.stats={...j});let{key:p,amount:f=1,provider:y,model:D}=h;if(p&&t.stats[p]!==void 0&&typeof t.stats[p]=="number"&&(t.stats[p]+=Math.floor(f)),p==="agent"&&y&&(t.stats.providerRequests||(t.stats.providerRequests={}),t.stats.providerRequests[y]=(t.stats.providerRequests[y]||0)+Math.floor(f)),y&&D&&(p==="tokens"||p==="cachedTokens"||p==="candidateTokens")){t.stats.models||(t.stats.models={}),t.stats.models[y]||(t.stats.models[y]={}),t.stats.models[y][D]||(t.stats.models[y][D]={tokens:0,cachedTokens:0,candidateTokens:0});let T=t.stats.models[y][D];p==="tokens"&&(T.tokens+=Math.floor(f)),p==="cachedTokens"&&(T.cachedTokens+=Math.floor(f)),p==="candidateTokens"&&(T.candidateTokens+=Math.floor(f))}n=!0,await r(),a.writeHead(200,{"Content-Type":"application/json"}),a.end(JSON.stringify({success:!0}))}catch(h){a.writeHead(400,{"Content-Type":"application/json"}),a.end(JSON.stringify({error:h.message}))}});return}a.writeHead(404,{"Content-Type":"text/plain"}),a.end("Not Found")});u.listen(s,"127.0.0.1",()=>{e=Date.now()}),u.on("error",l=>{l.code==="EADDRINUSE"&&process.exit(0)})}async function xt(s=E){try{if((await fetch(`http://127.0.0.1:${s}/heartbeat`,{method:"POST",signal:AbortSignal.timeout(300)})).ok)return!0}catch{}try{let t=vt(import.meta.url);Lt(process.execPath,[t,"--usage-daemon-worker",`--port=${s}`],{detached:!0,stdio:"ignore",windowsHide:!0}).unref();for(let n=0;n<10;n++){await new Promise(e=>setTimeout(e,100));try{if((await fetch(`http://127.0.0.1:${s}/heartbeat`,{method:"POST",signal:AbortSignal.timeout(300)})).ok)return!0}catch{}}}catch{}return!1}async function tt(s,t=E){try{await xt(t),await fetch(`http://127.0.0.1:${t}/write`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s),signal:AbortSignal.timeout(1e3)})}catch{}}async function Ct(s=E){try{await fetch(`http://127.0.0.1:${s}/heartbeat`,{method:"POST",signal:AbortSignal.timeout(600)})}catch{}}async function Ot(s=E){try{await fetch(`http://127.0.0.1:${s}/finalize`,{method:"GET",signal:AbortSignal.timeout(1e3)})}catch{}}if(process.argv.includes("--usage-daemon-worker")){let s=process.argv.find(o=>o.startsWith("--port=")),t=s?parseInt(s.split("=")[1],10):E;Ut(t)}var dt=C.join(G,"usage","usage_error.txt"),W=async(s,t)=>{let o=t?.stack||t?.message||String(t);console.error(`[Usage Error] [${s}]:`,t);try{await S.ensureDir(C.dirname(dt));let e=`[${new Date().toISOString()}] [${s}] ${o}
|
|
5
|
-
-------------------------------------
|
|
6
|
-
|
|
7
|
-
`;await S.appendFile(dt,e,"utf8")}catch{}},g=null,R={agent:0,background:0,search:0,toolSuccess:0,toolFailure:0,toolDenied:0,duration:0,tokens:0,cachedTokens:0,candidateTokens:0,linesAdded:0,linesRemoved:0,imageCalls:[]},z=(s,t)=>{if(!s)return{};let o=Object.keys(s),n=new Date(new Date(t).getTime()-720*60*60*1e3),e={};for(let i of o)new Date(i)>=n&&(e[i]=s[i]);return e},$=async()=>{let s=new Date().toISOString().split("T")[0];try{!await S.exists(v)&&await S.exists(Y)&&(await S.ensureDir(C.dirname(v)),await S.move(Y,v))}catch{}let t=null;try{if(await S.exists(v)){let n=(await S.readFile(v,"utf8")).trim();n.startsWith("{")||n.startsWith("[")?t=JSON.parse(n):t=JSON.parse(J(n))}}catch(n){await W("loadUsageFromFile",n)}let o=t;if(o){let n=o.stats||{...R},e={...R,...n};Array.isArray(e.imageCalls)||(e.imageCalls=[]);let i=o.history||{},r=z(i,s);if(o.date===s)return{...o,stats:e,history:r};{let c=o.date,u=e,l={...r};return c&&(l[c]=u),{date:s,stats:{...R},history:z(l,s)}}}return{date:s,stats:{...R},history:{}}},Qt=async()=>{},mt=500,ut=0,bt=()=>{let t=new Date().toISOString().split("T")[0];return C.join(M,`${t}.jsonl`)},Xt=async s=>{try{await S.ensureDir(M);let t={time:new Date().toISOString(),provider:s.provider||"unknown",model:s.model||"unknown",input:Number(s.prompt)||0,cached:Number(s.cached)||0,output:Number(s.output)||0,reasoning:Number(s.reasoning)||0};await S.appendFile(bt(),JSON.stringify(t)+`
|
|
8
|
-
`,"utf8"),++ut>=25&&(ut=0,await ft())}catch{}},ft=async()=>{try{if(!await S.exists(M))return;let s=(await S.readdir(M)).filter(e=>e.endsWith(".jsonl")).sort(),t=[];for(let e of s)try{let i=await S.readFile(C.join(M,e),"utf8");for(let r of i.split(`
|
|
9
|
-
`))r.trim()&&t.push({file:e,line:r})}catch{}if(t.length<=mt)return;let o=t.slice(-mt),n=new Map;for(let e of o)n.has(e.file)||n.set(e.file,[]),n.get(e.file).push(e.line);for(let e of s){let i=n.get(e);!i||i.length===0?await S.remove(C.join(M,e)):await S.writeFile(C.join(M,e),i.join(`
|
|
10
|
-
`)+`
|
|
11
|
-
`,"utf8")}}catch{}},Yt=async(s=30)=>{let t=[];try{if(!await S.exists(M))return t;let n=(await S.readdir(M)).filter(e=>e.endsWith(".jsonl")).sort().slice(-Math.max(1,s));for(let e of n)try{let i=await S.readFile(C.join(M,e),"utf8");for(let r of i.split(`
|
|
12
|
-
`))if(r.trim())try{t.push(JSON.parse(r))}catch(c){await W(`getTimedUsage:parseLine (${e})`,c)}}catch(i){await W(`getTimedUsage:readFile (${e})`,i)}}catch(o){await W("getTimedUsage",o)}return t},Vt=async()=>{g=await $(),await ft()},U=async()=>{let s=new Date().toISOString().split("T")[0];if(!g)g=await $();else if(g.date!==s){let t=g.date,o=g.stats,n=g.history||{};o&&(n[t]=o),g={date:s,stats:{...R},history:z(n,s)},isDirty=!0,await flushUsage()}return g&&g.stats&&!Array.isArray(g.stats.imageCalls)&&(g.stats.imageCalls=[]),g.stats},gt=async()=>{let s=new Date().toISOString().split("T")[0];g||(g=await $()),g.date!==s&&await U();let t=g.history||{},o=z(t,s);g.history=o;let n=g.stats||{...R},e={...R};e.imageCalls=[],e.models={},e.providerRequests={};let i=(r,c)=>{for(let u in r)if(u==="imageCalls")r.imageCalls=[...r.imageCalls||[],...c.imageCalls||[]];else if(u==="providerRequests"){let l=c.providerRequests||{};for(let a in l)r.providerRequests[a]=(r.providerRequests[a]||0)+(l[a]||0)}else if(u==="models"){let l=c.models||{};for(let a in l){r.models[a]||(r.models[a]={});for(let d in l[a]){r.models[a][d]||(r.models[a][d]={tokens:0,cachedTokens:0,candidateTokens:0});let m=r.models[a][d],h=l[a][d];m.tokens+=h.tokens||0,m.cachedTokens+=h.cachedTokens||0,m.candidateTokens+=h.candidateTokens||0}}}else typeof r[u]=="number"&&(r[u]+=c[u]||0)};i(e,n);for(let r in o)i(e,o[r]);return e},Kt=async(s,t)=>{s==="toolSuccess"?I.toolSuccess++:s==="toolFailure"?I.toolFailure++:s==="toolDenied"&&I.toolDenied++;let o=await U();o[s]!==void 0&&o[s]++,t&&s==="agent"&&(o.providerRequests||(o.providerRequests={}),o.providerRequests[t]=(o.providerRequests[t]||0)+1),await tt({key:s,amount:1,provider:t})},I={linesAdded:0,linesRemoved:0,toolSuccess:0,toolFailure:0,toolDenied:0},Zt=async(s,t,o,n)=>{s==="linesAdded"?I.linesAdded+=t:s==="linesRemoved"&&(I.linesRemoved+=t);let e=await U();if(e[s]!==void 0&&(e[s]+=Math.floor(t)),o&&n&&(s==="tokens"||s==="cachedTokens"||s==="candidateTokens")){e.models||(e.models={}),e.models[o]||(e.models[o]={}),e.models[o][n]||(e.models[o][n]={tokens:0,cachedTokens:0,candidateTokens:0});let i=e.models[o][n];s==="tokens"&&(i.tokens+=Math.floor(t)),s==="cachedTokens"&&(i.cachedTokens+=Math.floor(t)),s==="candidateTokens"&&(i.candidateTokens+=Math.floor(t))}await tt({key:s,amount:t,provider:o,model:n})},ht=async(s=1)=>{let t=new Date,o=t.toISOString().split("T")[0];g||(g=await $()),g.date!==o&&await U();let n=t.getFullYear(),e=t.getMonth();t.getDate()<s&&(e-=1,e<0&&(e=11,n-=1));let c=new Date(n,e,s).toISOString().split("T")[0],u=g.history||{},l=g.stats||{...R},a={...R};a.imageCalls=[],a.models={},a.providerRequests={};let d=(m,h)=>{for(let k in m)if(k==="imageCalls")m.imageCalls=[...m.imageCalls||[],...h.imageCalls||[]];else if(k==="providerRequests"){let p=h.providerRequests||{};for(let f in p)m.providerRequests[f]=(m.providerRequests[f]||0)+(p[f]||0)}else if(k==="models"){let p=h.models||{};for(let f in p){m.models[f]||(m.models[f]={});for(let y in p[f]){m.models[f][y]||(m.models[f][y]={tokens:0,cachedTokens:0,candidateTokens:0});let D=m.models[f][y],T=p[f][y];D.tokens+=T.tokens||0,D.cachedTokens+=T.cachedTokens||0,D.candidateTokens+=T.candidateTokens||0}}}else typeof m[k]=="number"&&(m[k]+=h[k]||0)};d(a,l);for(let m in u)m>=c&&m<o&&d(a,u[m]);return a},At=async(s,t={})=>{let o=await V().catch(()=>({})),n=t.apiTier||o.apiTier||"Free",e=t.quotas||t.systemSettings?.quotas||o.quotas||{},i=e.providerBudgets||{},r=!!i.__useProvider,c=t.aiProvider||o.aiProvider||"Google",u=r&&!!i[c],l=()=>{if(u){let a=i[c];return{agentLimit:typeof a.agentLimit=="number"&&a.agentLimit>0?a.agentLimit:99999999,tokenLimit:typeof a.tokenLimit=="number"&&a.tokenLimit>0?a.tokenLimit:99999999999999,monthlyTokenLimit:typeof a.monthlyTokenLimit=="number"&&a.monthlyTokenLimit>0?a.monthlyTokenLimit:99999999999999}}return{agentLimit:e.agentLimit||99999999,tokenLimit:e.tokenLimit||99999999999999,monthlyTokenLimit:e.monthlyTokenLimit||99999999999999}};if(s==="agent"){let{agentLimit:a,tokenLimit:d,monthlyTokenLimit:m}=l(),h=await U(),k;e.resetMode==="Custom"?k=await ht(e.resetDay||1):k=await gt();let p=0,f=0,y=0;if(u){p=h.providerRequests?.[c]||0;let D=h.models?.[c]||{};for(let q in D)f+=D[q]?.tokens||0;let T=k.models?.[c]||{};for(let q in T)y+=T[q]?.tokens||0}else p=h.agent||0,f=h.tokens||0,y=k.tokens||0;return n==="Free"&&h.agent+h.background>=999999?{allowed:!1,reason:"Free Tier Daily Usage Limit Exceeded"}:p>=a?{allowed:!1,reason:u?`Daily Request Limit Reached for ${c}`:"Daily Agent Request Limit Reached"}:f>=d?{allowed:!1,reason:u?`Daily Token Budget Exhausted for ${c}`:"Daily Token Budget Exhausted"}:y>=m?{allowed:!1,reason:u?`Monthly Token Budget Exhausted for ${c}`:"Monthly Token Budget Exhausted"}:{allowed:!0}}if(s==="background"){let a=await U();if(n==="Free"&&a.agent+a.background>=999999)return{allowed:!1,reason:"Free Tier Background Limit Exceeded"};let d=a.background<(e.backgroundLimit||999999);return{allowed:d,reason:d?void 0:"Background Request Limit Exceeded"}}if(s==="search"){let d=(await U()).search<(e.searchLimit||100);return{allowed:d,reason:d?void 0:"Search Quota Exceeded"}}return{allowed:!0}},te=async(s,t={})=>(await At(s,t)).allowed,et=s=>{if(!s||s.length===0)return[];let o=[...s].sort((e,i)=>e.timestamp-i.timestamp),n=[];for(let e of o){if(n.length>0){let i=n[n.length-1];if(e.timestamp>=i.start&&e.timestamp<i.end){i.calls.push(e),i.spent+=e.cost;continue}}n.push({start:e.timestamp,end:e.timestamp+36e5,calls:[e],spent:e.cost})}return n},pt=(s,t)=>{if(!s||s.length===0)return .025;let n=et(s);if(n.length===0)return .025;let e=[];for(let d of n){let m=.025;if(e.length>0){let k=e[e.length-1],p=!1;if(e.length>=2){let f=e[e.length-2];k.ratio>=.8&&f.ratio>=.8&&(p=!0)}if(p)m=.015;else{let f=k.limit,y=k.ratio;y>=.8?m=f===.015?.015:f:y<.4?m=Math.min(.025,f+.005):y>=.4&&y<.6?m=Math.min(.025,f+.004):m=Math.min(.025,f+.002)}}let h=m>0?d.spent/m:0;e.push({limit:m,spent:d.spent,ratio:h})}let i=n[n.length-1];if(t<i.end)return e[e.length-1].limit;let r=e[e.length-1].limit,c=r,u=e[e.length-1].ratio,l=i.end,a=0;for(let d=e.length-1;d>=0&&e[d].ratio>=.8;d--)a++;for(;l<=t;){let d=.025;a>=2?d=.015:u>=.8?d=c===.015?.015:c:u<.4?d=Math.min(.025,c+.005):u>=.4&&u<.6?d=Math.min(.025,c+.004):d=Math.min(.025,c+.002),c=d,u=0,a=0,l+=36e5,r=d}return r},ee=async s=>{let t=s.imageSettings||{keyType:"Default",quality:"Low-High"};if(t.keyType!=="Default")return!0;let n={Low:.001,"Low-High":.002,Medium:.008,"Medium-High":.01,High:.045,Ultra:.0488,Premium:.15}[t.quality]||.002,e=await U();e.imageCalls||(e.imageCalls=[]);let i=Date.now(),r=et(e.imageCalls),c=0;if(r.length>0){let l=r[r.length-1];i>=l.start&&i<l.end&&(c=l.spent)}let u=pt(e.imageCalls,i);return c+n<=u},se=async()=>{let s=await U();s.imageCalls||(s.imageCalls=[]);let t=Date.now(),o=et(s.imageCalls),n=[],e=0,i=0;if(o.length>0){let l=o[o.length-1];t>=l.start&&t<l.end&&(n=l.calls,e=l.spent,i=Math.max(0,Math.ceil((l.end-t)/(60*1e3))))}let r=pt(s.imageCalls,t),c=Math.max(0,r-e),u=e;return{totalSpent:e,remaining:c,activeCallsCount:n.length,nextResetMin:i,reclaimCost:u,limit:r}},oe=async s=>{let t=s.imageSettings||{keyType:"Default",quality:"Low-High"},n={Low:.001,"Low-High":.002,Medium:.008,"Medium-High":.01,High:.045,Ultra:.0488,Premium:.1}[t.quality]||.002,e=await U();e.imageCalls||(e.imageCalls=[]),e.imageCalls.push({timestamp:Date.now(),cost:n}),queueFlush()},ne=async()=>{let s=new Date().toISOString().split("T")[0];g||(g=await $()),g.date!==s&&await U();let t=g.stats||{...R},o=g.history||{},n=new Set(Object.keys(o));n.add(s);let i=Array.from(n).sort().map(L=>{let x=L===s?t:o[L]||{},w={...R,...x},P=w.tokens||0,H=w.cachedTokens||0,_=w.candidateTokens||0,B=Math.max(0,P-_),N=Math.max(0,B-H),O=w.agent||0,b=w.background||0,A=w.search||0,yt=O+b+A,Q=w.toolSuccess||0,st=w.toolFailure||0,ot=w.toolDenied||0,X=Q+st+ot,kt=X>0?(Q/X*100).toFixed(1):"100.0",nt=w.linesAdded||0,it=w.linesRemoved||0,at=Array.isArray(w.imageCalls)?w.imageCalls:[],wt=at.reduce((Tt,St)=>Tt+(St.cost||0),0);return{date:L,tokens:P,cachedTokens:H,candidateTokens:_,promptTokens:B,uncachedPromptTokens:N,agent:O,background:b,search:A,totalRequests:yt,toolSuccess:Q,toolFailure:st,toolDenied:ot,totalTools:X,toolSuccessRate:parseFloat(kt),linesAdded:nt,linesRemoved:it,netLines:nt-it,duration:w.duration||0,imageCallsCount:at.length,imageCost:wt,models:w.models||{},providerRequests:w.providerRequests||{}}}),r=await V().catch(()=>({})),c=r.quotas||{},u=r.apiTier||"Free",l=await gt().catch(()=>({tokens:0,agent:0})),a=null;c.resetMode==="Custom"&&(a=await ht(c.resetDay||1).catch(()=>({tokens:0})));let d=c.tokenLimit||0,m=c.monthlyTokenLimit||0,h=c.agentLimit||0,k=c.resetMode||"Daily",p=c.resetDay||1,f=c.providerBudgets||{},y=!!f.__useProvider,D=["Google","Anthropic","OpenAI","DeepSeek","Mistral","NVIDIA","OpenRouter","Ollama","InferX","SenseNova","AIHubMix","Poolside"];Object.keys(f).forEach(L=>{L!=="__useProvider"&&!D.includes(L)&&D.push(L)});let T=[];for(let L of D){let x=f[L];if(x&&(x.agentLimit||x.tokenLimit||x.monthlyTokenLimit)){let w=0,P=t.models?.[L]||{};for(let A in P)w+=P[A]?.tokens||0;let H=0,_=(c.resetMode==="Custom"?a?.models:l?.models)?.[L]||{};for(let A in _)H+=_[A]?.tokens||0;let B=t.providerRequests?.[L]||0,N=x.tokenLimit||0,O=x.monthlyTokenLimit||0,b=x.agentLimit||0;T.push({provider:L,dailyTokens:w,dailyTokenLimit:N,isDailyUnlimited:N>=9999999999999||N===0,monthlyTokens:H,monthlyTokenLimit:O,isMonthlyUnlimited:O>=9999999999999||O===0,dailyRequests:B,dailyAgentLimit:b,isRequestsUnlimited:b>=9999999||b===0})}}let q={apiTier:u,resetMode:k,resetDay:p,quotas:c,usingProviderBudgets:y&&T.length>0||T.length>0,providerBudgetsList:T,daily:{tokensUsed:t.tokens||0,tokenLimit:d,agentRequests:t.agent||0,agentLimit:h,isUnlimitedTokens:d>=9999999999999||d===0,isUnlimitedRequests:h>=9999999||h===0},monthly:{tokensUsed:(c.resetMode==="Custom"?a?.tokens:l?.tokens)||0,tokenLimit:m,isUnlimitedTokens:m>=9999999999999||m===0},providerBudgets:f};return{currentDate:s,todayStats:t,history:o,timeline:i,budget:q,runtimeSession:{...I}}};export{Ct as a,Ot as b,Qt as c,Xt as d,Yt as e,Vt as f,U as g,gt as h,Kt as i,I as j,Zt as k,ht as l,At as m,te as n,et as o,pt as p,ee as q,se as r,oe as s,ne as t};
|