UNPKG

manifest

Version:

Self-hosted Manifest LLM router with embedded server, SQLite database, and dashboard

2 lines (1 loc) 4.41 kB
import{t as _,l as A,k as D,a as E,p as y,g,T as M,S as b,m as R,i as c,F as w,h as F,d as L}from"./vendor-C-Y5oNOq.js";import{B,E as H,a as k,f as N}from"./index-C4Qw7vZo.js";import{u as U}from"./charts-Cty976qB.js";import{u as j,a as x,g as C,c as I,j as T,d as O,m as V,s as z,h as G}from"./chart-utils-DTt1NOye.js";import"./auth-CU91cd7V.js";async function K(){const t=await fetch(`${B}/public/provider-tokens`,{cache:"no-store"});if(!t.ok)throw new Error(`API error: ${t.status} ${t.statusText}`);return t.json()}var W=_("<div style=width:100%;min-height:260px>");const S=["--chart-1","--chart-2","--chart-3","--chart-4","--chart-5"];function Y(){const t=new Date;t.setHours(0,0,0,0);const r=[];for(let n=30;n>=0;n--){const l=new Date(t);l.setDate(t.getDate()-n);const u=l.getFullYear(),h=String(l.getMonth()+1).padStart(2,"0"),f=String(l.getDate()).padStart(2,"0");r.push(`${u}-${h}-${f}`)}return r}function q(t){return t.map(r=>{const[n,l,u]=r.split("-").map(Number);return Date.UTC(n,l-1,u)/1e3})}const J=t=>{let r;return j({el:()=>r,data:()=>t.series,buildChart(){if(!r)return null;const n=r.clientWidth||r.getBoundingClientRect().width;if(n===0||!t.series.length)return null;const l=x("--foreground",.55),u=x("--foreground",.05),h=C("--card"),f=Y(),s=q(f),e=I(l,u,"30d");e[1]={...e[1],values:(a,d)=>d.map(i=>T(a,i))};const o=[{value:O("30d")}],p=[s];for(let a=0;a<t.series.length;a++){const d=t.series[a],i=S[a%S.length],$=C(i);o.push({label:d.label,stroke:$,width:2,fill:V(i,.15),value:T});const m=new Map;for(const v of d.daily)m.set(v.date,v.tokens);p.push(z(f.map(v=>m.get(v)??0)))}return new U({width:n,height:260,padding:[16,16,0,0],cursor:G(h,C(S[0])),scales:{x:{time:!1,range:(a,d,i)=>[d,i]},y:{auto:!0,range:(a,d,i)=>[0,i>0?i*1.15:100]}},axes:e,series:o},p,r)}}),(()=>{var n=W(),l=r;return typeof l=="function"?A(l,n):r=n,n})()};var Q=_("<div class=page-header><h2>Provider Tokens</h2><p class=page-header__subtitle>Daily token consumption by provider and model (last 30 days)"),X=_("<div class=empty-state><p>No token data available yet."),Z=_("<div class=provider-tokens__tabs>"),tt=_("<div class=chart-card><div class=chart-card__header><div class=chart-card__stat><span class=chart-card__label></span><span class=chart-card__value> tokens</span></div></div><div class=chart-card__body>"),et=_("<div class=provider-tokens__table-wrapper><table class=data-table><thead><tr><th>Model</th><th>Type</th><th style=text-align:right>Total Tokens</th><th style=text-align:right>Cost</th></tr></thead><tbody>"),rt=_("<button class=provider-tokens__tab><span class=provider-tokens__tab-count>"),at=_("<tr><td></td><td></td><td style=text-align:right></td><td style=text-align:right>");function P(t){return t==="subscription"?"Subscription":t==="api_key"?"API Key":"–"}function st(t,r){return t==="subscription"?"Subscription":r==null?"–":N(r)??"–"}const ct=()=>{const[t,{refetch:r}]=D(K),[n,l]=E(null),u=y(()=>t()?.providers??[]),h=y(()=>{const s=n(),e=u();return e.length?e.find(o=>o.provider===s)??e[0]??null:null}),f=y(()=>{const s=h();return s?s.models.map(e=>({label:e.auth_type?`${e.model} (${P(e.auth_type)})`:e.model,daily:e.daily})):[]});return[g(M,{children:"Provider Tokens - Manifest"}),Q(),g(b,{get when(){return t.error},get children(){return g(H,{get error(){return t.error},onRetry:r})}}),g(b,{get when(){return R(()=>!t.loading&&!t.error)()&&u().length===0},get children(){return X()}}),g(b,{get when(){return u().length>0},get children(){return[(()=>{var s=Z();return c(s,g(w,{get each(){return u()},children:e=>(()=>{var o=rt(),p=o.firstChild;return o.$$click=()=>l(e.provider),c(o,()=>e.provider,p),c(p,()=>k(e.total_tokens)),F(()=>o.classList.toggle("active",h()?.provider===e.provider)),o})()})),s})(),(()=>{var s=tt(),e=s.firstChild,o=e.firstChild,p=o.firstChild,a=p.nextSibling,d=a.firstChild,i=e.nextSibling;return c(p,()=>h()?.provider),c(a,()=>k(h()?.total_tokens??0),d),c(i,g(J,{get series(){return f()}})),s})(),g(b,{get when(){return h()},get children(){var s=et(),e=s.firstChild,o=e.firstChild,p=o.nextSibling;return c(p,g(w,{get each(){return h().models},children:a=>(()=>{var d=at(),i=d.firstChild,$=i.nextSibling,m=$.nextSibling,v=m.nextSibling;return c(i,()=>a.model),c($,()=>P(a.auth_type)),c(m,()=>k(a.total_tokens)),c(v,()=>st(a.auth_type,a.total_cost)),d})()})),s}})]}})]};L(["click"]);export{ct as default,P as formatAuthType,st as formatModelCost};