usage-board 2.1.2 → 3.1.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/index.mjs +10 -4
- package/dist/public/_nuxt/BJUAqwzD.js +1 -0
- package/dist/public/_nuxt/BuL2_OVR.js +105 -0
- package/dist/public/_nuxt/Bz0aA7IQ.js +1 -0
- package/dist/public/_nuxt/CEZpUSPI.js +1 -0
- package/dist/public/_nuxt/CF27djws.js +1 -0
- package/dist/public/_nuxt/CbwePq4F.js +119 -0
- package/dist/public/_nuxt/Cd5S9Sm2.js +1 -0
- package/dist/public/_nuxt/{BeEwECnn.js → CoVMsEv_.js} +1 -1
- package/dist/public/_nuxt/D7Qebc1i.js +4 -0
- package/dist/public/_nuxt/DS17D0R7.js +25 -0
- package/dist/public/_nuxt/{chy2QJx0.js → Dr4nyTE3.js} +31 -31
- package/dist/public/_nuxt/Dzuxw4nD.js +21 -0
- package/dist/public/_nuxt/LYzk-FvL.js +1 -0
- package/dist/public/_nuxt/WjVGlVHF.js +6 -0
- package/dist/public/_nuxt/builds/latest.json +1 -1
- package/dist/public/_nuxt/builds/meta/5b933d30-47b4-45ca-8d5a-cba3255174fa.json +1 -0
- package/dist/public/_nuxt/entry.vHfFzkyD.css +1 -0
- package/dist/server/chunks/_/error-500.mjs +8 -4
- package/dist/server/chunks/_/shared.cjs.prod.mjs +1 -1
- package/dist/server/chunks/build/client.precomputed.mjs +1 -1
- package/dist/server/chunks/nitro/nitro.mjs +8665 -2839
- package/dist/server/chunks/routes/api/analysis/agent/session.json.mjs +22 -0
- package/dist/server/chunks/routes/api/analysis/agent/token.json.mjs +25 -0
- package/dist/server/chunks/routes/api/analysis/cache.json.mjs +25 -0
- package/dist/server/chunks/routes/api/analysis/hot-project.json.mjs +25 -0
- package/dist/server/chunks/routes/api/analysis/model.json.mjs +25 -0
- package/dist/server/chunks/routes/api/analysis/overview-cards.json.mjs +25 -0
- package/dist/server/chunks/routes/api/analysis/session.json.mjs +22 -0
- package/dist/server/chunks/routes/api/analysis/token/daily.json.mjs +22 -0
- package/dist/server/chunks/routes/api/analysis/token.json.mjs +25 -0
- package/dist/server/chunks/routes/api/payload.json.mjs +11 -626
- package/dist/server/chunks/routes/api/projects/_project/modules.get.mjs +36 -0
- package/dist/server/chunks/routes/api/projects/catalog.get.mjs +26 -0
- package/dist/server/chunks/routes/renderer.mjs +9 -5
- package/dist/server/chunks/routes/ws.mjs +29 -971
- package/dist/server/index.mjs +9 -5
- package/package.json +7 -6
- package/dist/public/_nuxt/15CW3D68.js +0 -1
- package/dist/public/_nuxt/B6G-s9D-.js +0 -1
- package/dist/public/_nuxt/BeygfM9p.js +0 -105
- package/dist/public/_nuxt/Bu4SpN_a.js +0 -1
- package/dist/public/_nuxt/C6ydMk2z.js +0 -25
- package/dist/public/_nuxt/Dn8cXZx3.js +0 -9
- package/dist/public/_nuxt/DysUC14A.js +0 -119
- package/dist/public/_nuxt/KLhV325n.js +0 -1
- package/dist/public/_nuxt/builds/meta/ac4b25d6-d6eb-44bb-8c5b-b1d6f651c196.json +0 -1
- package/dist/public/_nuxt/entry.r-q4oQC0.css +0 -1
- package/dist/public/_nuxt/pmnAmEjb.js +0 -21
- package/dist/server/chunks/_/index.min.mjs +0 -348
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import{_ as Qt}from"./LYzk-FvL.js";import{M as ye,N as _e,O as kt,Q as K,R as xe,U as Ft,W as ot,X as q,Y as z,Z as Gt,$ as F,a0 as bt,a1 as ut,a2 as St,a3 as It,a4 as B,a5 as ke,a6 as Yt,a7 as Se,a8 as Ae,a9 as $e,aa as te,ab as Z,ac as ee,ad as De,ae as Ce,af as it,ag as At,ah as we,ai as Rt,aj as Te,ak as Xt,al as _t,am as Me,an as Re,ao as Ee,ap as ae,aq as Le,ar as Pe,as as Ue,at as je,au as Oe,av as Ut,aw as jt,ax as Ve,ay as He,az as ne,K as xt,_ as se,S as Be,f as qt,z as oe,m as $t,g as Et,j as ie,q as Dt,E as We,v as Ne,w as ze,x as Fe,y as Ge,F as Ie,B as Ye,l as ft,H as Xe,I as qe,J as Ze}from"./Dr4nyTE3.js";import{j as Je,k as Zt,l as Ke,m as Jt,n as Qe,o as Kt,u as ta,i as Ct,_ as ea,a as aa,b as na}from"./DS17D0R7.js";import{y as et,E as sa,m as oa,h as ht,s as Ot,o as T,c as O,B as ia,r as Vt,D as ra,af as wt,ad as Tt,ab as re,N as le,n as ce,g as L,A as N,w as D,t as U,H as Q,a as M,b as y,C as x,I as pt,P as Ht,V as la,d as W,a2 as ca,G as de,a3 as da}from"./D7Qebc1i.js";import{u as Mt}from"./WjVGlVHF.js";const ua=Object.assign(Object.assign({},ye),{tooltip:void 0,annotations:void 0});class ha extends _e{constructor(e,t,s){var r;super(e),this._defaultConfig=ua,this.config=this._defaultConfig,t&&(this.updateContainer(t,!0),this.component=t.component),s&&this.setData(s,!0),!((r=this.component)===null||r===void 0)&&r.datamodel.data&&this.render()}setData(e,t){var s;const{config:r}=this;this.component&&this.component.setData(e),t||this.render(),(s=r.tooltip)===null||s===void 0||s.hide()}updateContainer(e,t){super.updateContainer(e),this._removeAllChildren(),this.component=e.component,e.sizing&&(this.component.sizing=e.sizing),this.element.appendChild(this.component.element);const s=e.tooltip;s&&(s.hasContainer()||s.setContainer(this._container),s.setComponents([this.component]));const r=e.annotations;r&&this.element.appendChild(r.element),this.element.appendChild(this._svgDefs.node()),this.element.appendChild(this._svgDefsExternal.node()),t||this.render()}updateComponent(e,t){this.component.setConfig(e),t||this.render()}update(e,t,s){e&&this.updateContainer(e,!0),t&&this.updateComponent(t,!0),s&&this.setData(s,!0),this.render()}getFitWidthScale(){const{config:e,component:t}=this,s=t;if(!s.getWidth)return 1;const r=s.getWidth()+e.margin.left+e.margin.right;return this.width/r}_preRender(){var e,t;super._preRender(),this.component.setSize(this.width,this.height,this.containerWidth,this.containerHeight),this.component.setContainerMargin(this.config.margin),(e=this.config.annotations)===null||e===void 0||e.setSize(this.width,this.height,this.containerWidth,this.containerHeight),(t=this.config.annotations)===null||t===void 0||t.setContainerMargin(this.config.margin)}_render(e){var t,s;const{config:r,component:l}=this;super._render(e),l.g.attr("transform",`translate(${r.margin.left},${r.margin.top})`),l.render(e),(t=r.annotations)===null||t===void 0||t.render(e),r.tooltip&&r.tooltip.update(),(s=r.onRenderComplete)===null||s===void 0||s.call(r,this.svg.node(),r.margin,this.containerWidth,this.containerHeight,this.width,this.height)}render(e=this.config.duration){const{config:t,component:s}=this;if(t.sizing===kt.Extend||t.sizing===kt.FitWidth){const r=t.sizing===kt.FitWidth,l=s,n=l.getWidth()+t.margin.left+t.margin.right,a=l.getHeight()+t.margin.top+t.margin.bottom,d=r?this.getFitWidthScale():1,i=this.svg.attr("width"),o=this.svg.attr("height"),m=n*d,f=a*d,g=i||o;K(this.svg,g?e:0).attr("width",m).attr("height",f).attr("viewBox",`0 0 ${n} ${r?f:a}`).attr("preserveAspectRatio","xMinYMin")}else this.svg.attr("width",this.config.width||this.containerWidth).attr("height",this.config.height||this.containerHeight);this._resizeObserver||this._setUpResizeObserver(),cancelAnimationFrame(this._renderAnimationFrameId),this._renderAnimationFrameId=requestAnimationFrame(()=>{this._preRender(),this._render(e)})}_onResize(){var e;const{config:t}=this;super._onResize(),(e=t.tooltip)===null||e===void 0||e.hide()}destroy(){var e,t;const{component:s,config:r}=this;super.destroy(),s?.destroy(),(e=r.tooltip)===null||e===void 0||e.destroy(),(t=r.annotations)===null||t===void 0||t.destroy()}}function ga(u){return u.innerRadius}function fa(u){return u.outerRadius}function ma(u){return u.startAngle}function pa(u){return u.endAngle}function va(u){return u&&u.padAngle}function ba(u,e,t,s,r,l,n,a){var d=t-u,i=s-e,o=n-r,m=a-l,f=m*d-o*i;if(!(f*f<F))return f=(o*(e-l)-m*(u-r))/f,[u+f*d,e+f*i]}function vt(u,e,t,s,r,l,n){var a=u-t,d=e-s,i=(n?l:-l)/ut(a*a+d*d),o=i*d,m=-i*a,f=u+o,g=e+m,h=t+o,b=s+m,c=(f+h)/2,k=(g+b)/2,S=h-f,E=b-g,P=S*S+E*E,v=r-l,p=f*b-h*g,C=(E<0?-1:1)*ut(ke(0,v*v*P-p*p)),j=(p*E-S*C)/P,V=(-p*S-E*C)/P,A=(p*E+S*C)/P,R=(-p*S+E*C)/P,H=j-c,_=V-k,w=A-c,G=R-k;return H*H+_*_>w*w+G*G&&(j=A,V=R),{cx:j,cy:V,x01:-o,y01:-m,x11:j*(r/v-1),y11:V*(r/v-1)}}function ya(){var u=ga,e=fa,t=z(0),s=null,r=ma,l=pa,n=va,a=null,d=xe(i);function i(){var o,m,f=+u.apply(this,arguments),g=+e.apply(this,arguments),h=r.apply(this,arguments)-Gt,b=l.apply(this,arguments)-Gt,c=It(b-h),k=b>h;if(a||(a=o=d()),g<f&&(m=g,g=f,f=m),!(g>F))a.moveTo(0,0);else if(c>bt-F)a.moveTo(g*ot(h),g*q(h)),a.arc(0,0,g,h,b,!k),f>F&&(a.moveTo(f*ot(b),f*q(b)),a.arc(0,0,f,b,h,k));else{var S=h,E=b,P=h,v=b,p=c,C=c,j=n.apply(this,arguments)/2,V=j>F&&(s?+s.apply(this,arguments):ut(f*f+g*g)),A=St(It(g-f)/2,+t.apply(this,arguments)),R=A,H=A,_,w;if(V>F){var G=Yt(V/f*q(j)),J=Yt(V/g*q(j));(p-=G*2)>F?(G*=k?1:-1,P+=G,v-=G):(p=0,P=v=(h+b)/2),(C-=J*2)>F?(J*=k?1:-1,S+=J,E-=J):(C=0,S=E=(h+b)/2)}var X=g*ot(S),at=g*q(S),rt=f*ot(v),tt=f*q(v);if(A>F){var lt=g*ot(E),nt=g*q(E),ct=f*ot(P),gt=f*q(P),Y;if(c<Ft)if(Y=ba(X,at,ct,gt,lt,nt,rt,tt)){var dt=X-Y[0],$=at-Y[1],I=lt-Y[0],st=nt-Y[1],Nt=1/q(Se((dt*I+$*st)/(ut(dt*dt+$*$)*ut(I*I+st*st)))/2),zt=ut(Y[0]*Y[0]+Y[1]*Y[1]);R=St(A,(f-zt)/(Nt-1)),H=St(A,(g-zt)/(Nt+1))}else R=H=0}C>F?H>F?(_=vt(ct,gt,X,at,g,H,k),w=vt(lt,nt,rt,tt,g,H,k),a.moveTo(_.cx+_.x01,_.cy+_.y01),H<A?a.arc(_.cx,_.cy,H,B(_.y01,_.x01),B(w.y01,w.x01),!k):(a.arc(_.cx,_.cy,H,B(_.y01,_.x01),B(_.y11,_.x11),!k),a.arc(0,0,g,B(_.cy+_.y11,_.cx+_.x11),B(w.cy+w.y11,w.cx+w.x11),!k),a.arc(w.cx,w.cy,H,B(w.y11,w.x11),B(w.y01,w.x01),!k))):(a.moveTo(X,at),a.arc(0,0,g,S,E,!k)):a.moveTo(X,at),!(f>F)||!(p>F)?a.lineTo(rt,tt):R>F?(_=vt(rt,tt,lt,nt,f,-R,k),w=vt(X,at,ct,gt,f,-R,k),a.lineTo(_.cx+_.x01,_.cy+_.y01),R<A?a.arc(_.cx,_.cy,R,B(_.y01,_.x01),B(w.y01,w.x01),!k):(a.arc(_.cx,_.cy,R,B(_.y01,_.x01),B(_.y11,_.x11),!k),a.arc(0,0,f,B(_.cy+_.y11,_.cx+_.x11),B(w.cy+w.y11,w.cx+w.x11),k),a.arc(w.cx,w.cy,R,B(w.y11,w.x11),B(w.y01,w.x01),!k))):a.arc(0,0,f,v,P,k)}if(a.closePath(),o)return a=null,o+""||null}return i.centroid=function(){var o=(+u.apply(this,arguments)+ +e.apply(this,arguments))/2,m=(+r.apply(this,arguments)+ +l.apply(this,arguments))/2-Ft/2;return[ot(m)*o,q(m)*o]},i.innerRadius=function(o){return arguments.length?(u=typeof o=="function"?o:z(+o),i):u},i.outerRadius=function(o){return arguments.length?(e=typeof o=="function"?o:z(+o),i):e},i.cornerRadius=function(o){return arguments.length?(t=typeof o=="function"?o:z(+o),i):t},i.padRadius=function(o){return arguments.length?(s=o==null?null:typeof o=="function"?o:z(+o),i):s},i.startAngle=function(o){return arguments.length?(r=typeof o=="function"?o:z(+o),i):r},i.endAngle=function(o){return arguments.length?(l=typeof o=="function"?o:z(+o),i):l},i.padAngle=function(o){return arguments.length?(n=typeof o=="function"?o:z(+o),i):n},i.context=function(o){return arguments.length?(a=o??null,i):a},i}function _a(u,e){return e<u?-1:e>u?1:e>=u?0:NaN}function xa(u){return u}function ka(){var u=xa,e=_a,t=null,s=z(0),r=z(bt),l=z(0);function n(a){var d,i=(a=Ae(a)).length,o,m,f=0,g=new Array(i),h=new Array(i),b=+s.apply(this,arguments),c=Math.min(bt,Math.max(-bt,r.apply(this,arguments)-b)),k,S=Math.min(Math.abs(c)/i,l.apply(this,arguments)),E=S*(c<0?-1:1),P;for(d=0;d<i;++d)(P=h[g[d]=d]=+u(a[d],d,a))>0&&(f+=P);for(e!=null?g.sort(function(v,p){return e(h[v],h[p])}):t!=null&&g.sort(function(v,p){return t(a[v],a[p])}),d=0,m=f?(c-i*E)/f:0;d<i;++d,b=k)o=g[d],P=h[o],k=b+(P>0?P*m:0)+E,h[o]={data:a[o],index:d,value:P,startAngle:b,endAngle:k,padAngle:S};return h}return n.value=function(a){return arguments.length?(u=typeof a=="function"?a:z(+a),n):u},n.sortValues=function(a){return arguments.length?(e=a,t=null,n):e},n.sort=function(a){return arguments.length?(t=a,e=null,n):t},n.startAngle=function(a){return arguments.length?(s=typeof a=="function"?a:z(+a),n):s},n.endAngle=function(a){return arguments.length?(r=typeof a=="function"?a:z(+a),n):r},n.padAngle=function(a){return arguments.length?(l=typeof a=="function"?a:z(+a),n):l},n}function Sa({x:u,y:e,w:t,h:s,tl:r=!1,tr:l=!1,bl:n=!1,br:a=!1,r:d=0}){let i;i=`M${u+d},${e}h${t-2*d}`;let o=l?d:0,m=l?0:d;return i+=`a${o},${o} 0 0 1 ${o},${o}`,i+=`h${m}v${m}`,i+=`v${s-2*d}`,o=a?d:0,m=a?0:d,i+=`a${o},${o} 0 0 1 ${-o},${o}`,i+=`v${m}h${-m}`,i+=`h${2*d-t}`,o=n?d:0,m=n?0:d,i+=`a${o},${o} 0 0 1 ${-o},${-o}`,i+=`h${-m}v${-m}`,i+=`v${2*d-s}`,o=r?d:0,m=r?0:d,i+=`a${o},${o} 0 0 1 ${o},${-o}`,i+=`v${-m}h${m}`,i+="z",i}const Aa=Object.assign(Object.assign({},$e),{color:void 0,barMaxWidth:void 0,barWidth:void 0,dataStep:void 0,barPadding:0,roundedCorners:2,cursor:null,barMinHeight1Px:!1,barMinHeightZeroValue:null,orientation:te.Vertical}),ue=Z`
|
|
2
|
+
label: stacked-bar-component;
|
|
3
|
+
`,$a=ee`
|
|
4
|
+
:root {
|
|
5
|
+
--vis-stacked-bar-cursor: default;
|
|
6
|
+
--vis-stacked-bar-fill-color: var(--vis-color-main);
|
|
7
|
+
--vis-stacked-bar-stroke-color: none;
|
|
8
|
+
--vis-stacked-bar-stroke-width: 0px;
|
|
9
|
+
--vis-stacked-bar-hover-stroke-width: none;
|
|
10
|
+
--vis-stacked-bar-hover-stroke-color: none;
|
|
11
|
+
|
|
12
|
+
/* Dark Theme */
|
|
13
|
+
--vis-dark-stacked-bar-stroke-color: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
body.theme-dark ${`.${ue}`} {
|
|
17
|
+
--vis-stacked-bar-stroke-color: var(--vis-dark-stacked-bar-stroke-color);
|
|
18
|
+
}
|
|
19
|
+
`,yt=Z`
|
|
20
|
+
label: bar;
|
|
21
|
+
fill: var(--vis-stacked-bar-fill-color);
|
|
22
|
+
stroke: var(--vis-stacked-bar-stroke-color);
|
|
23
|
+
stroke-width: var(--vis-stacked-bar-stroke-width);
|
|
24
|
+
cursor: var(--vis-stacked-bar-cursor);
|
|
25
|
+
|
|
26
|
+
&:hover {
|
|
27
|
+
stroke-width: var(--vis-stacked-bar-hover-stroke-width);
|
|
28
|
+
stroke: var(--vis-stacked-bar-hover-stroke-color);
|
|
29
|
+
}
|
|
30
|
+
`,Lt=Z`
|
|
31
|
+
label: barGroup;
|
|
32
|
+
`,he=Z`
|
|
33
|
+
label: barGroupExit;
|
|
34
|
+
`,Da=Object.freeze(Object.defineProperty({__proto__:null,bar:yt,barGroup:Lt,barGroupExit:he,globalStyles:$a,root:ue},Symbol.toStringTag,{value:"Module"}));class Bt extends De{constructor(e){super(),this._defaultConfig=Aa,this.config=this._defaultConfig,this.getAccessors=()=>Ce(this.config.y)?this.config.y:[this.config.y],this.stacked=!0,this.events={},this._barData=[],e&&this.setConfig(e)}get bleed(){if(this._barData=this._getVisibleData(),this._barData.length===0)return{top:0,bottom:0,left:0,right:0};const e=!this.isVertical()&&this.dataScale.range()[0]>this.dataScale.range()[1],t=this.dataScale.domain(),s=this._getBarWidth()/2,r=this._barData.map((g,h)=>it(g,this.config.x,h)),l=At(r),n=we(r),a=this.dataScale(l),d=this.dataScale(n),i=this.dataScale.invert(a+(e?s:-s)),o=this.dataScale.invert(d+(e?-s:s)),m=i<=t[0]?this.dataScale(t[0])-this.dataScale(i):0,f=o>t[1]?this.dataScale(o)-this.dataScale(t[1]):0;return{top:this.isVertical()?0:e?-f:m,bottom:this.isVertical()?0:e?-m:f,left:this.isVertical()?m:0,right:this.isVertical()?f:0}}get dataScale(){return this.isVertical()?this.xScale:this.yScale}get valueScale(){return this.isVertical()?this.yScale:this.xScale}isVertical(){return this.config.orientation===te.Vertical}_render(e){const{config:t}=this,s=Rt(e)?e:t.duration,r=this.getAccessors(),l=Te(this._barData,0,r,this._prevNegative);this._prevNegative=l.map(h=>!!h.isMostlyNegative);const n=this.g.selectAll(`.${Lt}`).data(this._barData,(h,b)=>{var c;return`${(c=Xt(h,t.id,b))!==null&&c!==void 0?c:b}`}),a=(h,b)=>{const c=this.dataScale(it(h,t.x,b)),k=this.isVertical()?c:0,S=this.isVertical()?0:c;return`translate(${k},${S})`},i=n.enter().append("g").attr("class",Lt).attr("transform",a).style("opacity",1).merge(n);K(i,s).attr("transform",a).style("opacity",1);const o=n.exit().attr("class",he);K(o,s).style("opacity",0).remove(),K(o.selectAll(`.${yt}`),s).attr("transform",this.isVertical()?`translate(0,${this._height/3})`:`translate(${this._width/6},0)`);const m=i.selectAll(`.${yt}`).data((h,b)=>l.map((c,k)=>({datum:h,index:b,stacked:c[b],stackIndex:k,isEnding:k===l.length-1||k<=l.length-1&&l[k+1][b][0]!==c[b][1]})).filter(c=>c.stacked[0]!==c.stacked[1]),h=>h.stackIndex),g=m.enter().append("path").attr("class",yt).attr("d",h=>this._getBarPath(h,!0)).style("fill",h=>_t(h.datum,t.color,h.stackIndex)).merge(m);K(g,s).attr("d",h=>this._getBarPath(h)).style("fill",h=>_t(h.datum,t.color,h.stackIndex)).style("cursor",h=>Xt(h.datum,t.cursor,h.stackIndex)),K(m.exit(),s).style("opacity",0).remove()}_getBarWidth(){const{config:e,datamodel:{data:t}}=this;if(Me(t))return 0;if(e.barWidth)return At([e.barWidth,e.barMaxWidth]);const s=this.dataScale.bandwidth,r=this.dataScale.domain?this.dataScale.domain():[];let n=1+(s?r.length:r[1]-r[0])/e.dataStep||!s&&t.filter((i,o)=>{const m=it(i,e.x,o);return m>=r[0]&&m<=r[1]}).length||t.length;!s&&n>=2&&(n+=1);const d=(n<2?1:1-e.barPadding)*(this.isVertical()?this._width:this._height)/n;return At([d,e.barMaxWidth])}_getVisibleData(){const{config:e,datamodel:{data:t}}=this,s=this._getBarWidth(),r=t.length<2?0:s/2,l=this.dataScale,n=Math.abs(l.invert(r)-l.invert(0));return t?.filter((d,i)=>{const o=it(d,e.x,i),m=l.domain(),f=+m[0],g=+m[1];return o>=f-n&&o<=g+n})}_getBarPath(e,t=!1){const{config:s}=this,r=this.getAccessors(),l=this._getBarWidth(),n=e.stacked[1]<0,a=e.isEnding,d=it(e.datum,r[e.stackIndex],e.index),i=t?0:Math.abs(this.valueScale(e.stacked[0])-this.valueScale(e.stacked[1])),o=!t&&s.barMinHeight1Px&&i<1&&isFinite(d)&&d!==s.barMinHeightZeroValue?1:i,m=t?this.valueScale(0):this.valueScale(n?e.stacked[0]:e.stacked[1])-(i<1&&s.barMinHeight1Px?1:0),f=-l/2,g=l,h=s.roundedCorners?Rt(s.roundedCorners)?+s.roundedCorners:g/2:0,b=ae(h,0,Math.min(i,g)/2),c=this.yScale.range()[0]>this.yScale.range()[1];return Sa({x:this.isVertical()?f:m-o,y:this.isVertical()?m+(c?0:-o):f,w:this.isVertical()?g:o,h:this.isVertical()?o:g,tl:a&&(this.isVertical()?!n&&c||n&&!c:n),tr:a&&(this.isVertical()?!n&&c||n&&!c:!n),br:a&&(this.isVertical()?n&&c||!n&&!c:!n),bl:a&&(this.isVertical()?n&&c||!n&&!c:n),r:b})}getValueScaleExtent(e){const{datamodel:t}=this,s=this.getAccessors(),r=e?this._getVisibleData():t.data;return Re(r,...s)}getDataScaleExtent(){const{config:e,datamodel:t}=this;return Ee(t.data,e.x)}getYDataExtent(e){return this.isVertical()?this.getValueScaleExtent(e):this.getDataScaleExtent()}getXDataExtent(){return this.isVertical()?this.getDataScaleExtent():this.getValueScaleExtent(!1)}}Bt.selectors=Da;const Ca=Object.assign(Object.assign({},Le),{id:(u,e)=>{var t;return(t=u.id)!==null&&t!==void 0?t:e},value:void 0,angleRange:[0,2*Math.PI],padAngle:0,sortFunction:void 0,cornerRadius:0,color:void 0,radius:void 0,arcWidth:20,centralLabel:void 0,centralSubLabel:void 0,centralSubLabelWrap:!0,showEmptySegments:!1,emptySegmentAngle:.5*Math.PI/180,showBackground:!0,backgroundAngleRange:void 0,centralLabelOffsetX:void 0,centralLabelOffsetY:void 0});function wa(u,e){u.style("fill",t=>_t(t.data,e.color,t.index)).style("opacity",0).each((t,s,r)=>{const l=r[s],n=(t.startAngle+t.endAngle)/2,a=(t.endAngle-t.startAngle)/2;l._animState={startAngle:n-a,endAngle:n+a,innerRadius:t.innerRadius,outerRadius:t.outerRadius,padAngle:t.padAngle}})}function Ta(u,e,t,s){u.style("transition",`fill ${s}ms`).style("fill",l=>_t(l.data,e.color,l.index));const r=l=>e.showEmptySegments||l.value?1:0;s?K(u,s).style("opacity",r).attrTween("d",(n,a,d)=>{const i=d[a],o={startAngle:n.startAngle,endAngle:n.endAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius,padAngle:n.padAngle},m=Pe(i._animState,o);return f=>(i._animState=m(f),t(i._animState))}):u.attr("d",t).style("opacity",r)}function Ma(u,e){K(u,e).style("opacity",0).remove()}const ge=Array.from({length:4},(u,e)=>{const t=-Math.PI/2+e*Math.PI/2;return[t,t+Math.PI]}),[Tn,Mn,Rn,En]=ge,fe=Z`
|
|
35
|
+
label: donut-component;
|
|
36
|
+
`,Ra=ee`
|
|
37
|
+
:root {
|
|
38
|
+
--vis-donut-central-label-font-size: 16px;
|
|
39
|
+
--vis-donut-central-label-text-color: #5b5f6d;
|
|
40
|
+
// Undefined by default to allow proper fallback to var(--vis-font-family)
|
|
41
|
+
/* --vis-donut-central-label-font-family: */
|
|
42
|
+
--vis-donut-central-label-font-weight: 600;
|
|
43
|
+
|
|
44
|
+
--vis-donut-central-sub-label-font-size: 12px;
|
|
45
|
+
--vis-donut-central-sub-label-text-color: #5b5f6d;
|
|
46
|
+
// Undefined by default to allow proper fallback to var(--vis-font-family)
|
|
47
|
+
/* --vis-donut-central-sub-label-font-family: */
|
|
48
|
+
--vis-donut-central-sub-label-font-weight: 500;
|
|
49
|
+
|
|
50
|
+
--vis-donut-background-color: #E7E9F3;
|
|
51
|
+
--vis-donut-segment-stroke-width: 0;
|
|
52
|
+
// The line segment color variable is not defined by default
|
|
53
|
+
// to allow it to fallback to the donut background color
|
|
54
|
+
/* --vis-donut-segment-stroke-color: none; */
|
|
55
|
+
|
|
56
|
+
--vis-dark-donut-central-label-text-color: #C2BECE;
|
|
57
|
+
--vis-dark-donut-central-sub-label-text-color: #C2BECE;
|
|
58
|
+
--vis-dark-donut-background-color: #18160C;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
body.theme-dark ${`.${fe}`} {
|
|
62
|
+
--vis-donut-central-label-text-color: var(--vis-dark-donut-central-label-text-color);
|
|
63
|
+
--vis-donut-central-sub-label-text-color: var(--vis-dark-donut-central-sub-label-text-color);
|
|
64
|
+
--vis-donut-background-color: var(--vis-dark-donut-background-color);
|
|
65
|
+
}
|
|
66
|
+
`,me=Z`
|
|
67
|
+
label: background;
|
|
68
|
+
fill: var(--vis-donut-background-color);
|
|
69
|
+
`,Pt=Z`
|
|
70
|
+
label: segment;
|
|
71
|
+
stroke-width: var(--vis-donut-segment-stroke-width);
|
|
72
|
+
stroke: var(--vis-donut-segment-stroke-color, var(--vis-donut-background-color));
|
|
73
|
+
`,pe=Z`
|
|
74
|
+
label: segment-exit;
|
|
75
|
+
`,ve=Z`
|
|
76
|
+
label: central-label;
|
|
77
|
+
text-anchor: middle;
|
|
78
|
+
dominant-baseline: middle;
|
|
79
|
+
font-size: var(--vis-donut-central-label-font-size);
|
|
80
|
+
font-family: var(--vis-donut-central-label-font-family, var(--vis-font-family));
|
|
81
|
+
font-weight: var(--vis-donut-central-label-font-weight);
|
|
82
|
+
fill: var(--vis-donut-central-label-text-color);
|
|
83
|
+
`,be=Z`
|
|
84
|
+
label: central-label;
|
|
85
|
+
text-anchor: middle;
|
|
86
|
+
dominant-baseline: middle;
|
|
87
|
+
font-size: var(--vis-donut-central-sub-label-font-size);
|
|
88
|
+
font-family: var(--vis-donut-central-sub-label-font-family, var(--vis-font-family));
|
|
89
|
+
font-weight: var(--vis-donut-central-sub-label-font-weight);
|
|
90
|
+
fill: var(--vis-donut-central-sub-label-text-color);
|
|
91
|
+
`,Ea=Object.freeze(Object.defineProperty({__proto__:null,background:me,centralLabel:ve,centralSubLabel:be,root:fe,segment:Pt,segmentExit:pe,variables:Ra},Symbol.toStringTag,{value:"Module"}));class Wt extends Ue{constructor(e){super(),this._defaultConfig=Ca,this.config=this._defaultConfig,this.datamodel=new je,this.arcGen=ya(),this.events={},e&&this.setConfig(e),this.arcBackground=this.g.append("path"),this.arcGroup=this.g.append("g"),this.centralLabel=this.g.append("text").attr("class",ve),this.centralSubLabel=this.g.append("text").attr("class",be)}get bleed(){return{top:0,bottom:0,left:0,right:0}}_render(e){var t,s,r,l,n,a,d,i,o,m,f,g,h,b;const{config:c,datamodel:k,bleed:S}=this,E=k.data.map(($,I)=>({index:I,datum:$})).filter($=>c.showEmptySegments||it($.datum,c.value,$.index)),P=Rt(e)?e:c.duration,[v,p,C,j]=ge.map($=>c.angleRange&&c.angleRange[0]===$[0]&&c.angleRange[1]===$[1]),V=v||C,A=p||j,R=this._width*(A?2:1),H=this._height*(V?2:1),_=c.radius||Math.min(R-S.left-S.right,H-S.top-S.bottom)/2,w=c.arcWidth===0?0:ae(_-c.arcWidth,0,_-1),G=this._height/2+(v?_/2:C?-_/2:0),J=this._width/2+(j?_/2:p?-_/2:0),X=`translate(${J},${G})`;this.arcGroup.attr("transform",X),this.arcGen.startAngle($=>$.startAngle).endAngle($=>$.endAngle).innerRadius($=>$.innerRadius).outerRadius($=>$.outerRadius).padAngle($=>$.padAngle).cornerRadius(c.cornerRadius);const rt=ka().startAngle((s=(t=c.angleRange)===null||t===void 0?void 0:t[0])!==null&&s!==void 0?s:0).endAngle((l=(r=c.angleRange)===null||r===void 0?void 0:r[1])!==null&&l!==void 0?l:2*Math.PI).padAngle(c.padAngle).value($=>it($.datum,c.value,$.index)||0).sort(($,I)=>{var st;return(st=c.sortFunction)===null||st===void 0?void 0:st.call(c,$.datum,I.datum)})(E).map($=>{const I=Object.assign(Object.assign({},$),{data:$.data.datum,index:$.data.index,innerRadius:w,outerRadius:_});return c.showEmptySegments&&$.endAngle-$.startAngle-$.padAngle<=Number.EPSILON&&(I.endAngle=$.startAngle+Math.max(c.emptySegmentAngle,c.padAngle),I.padAngle=$.padAngle/2),I}),tt=this.arcGroup.selectAll(`.${Pt}`).data(rt,$=>c.id($.data,$.index)),lt=tt.enter().append("path").attr("class",Pt).call(wa,c),nt=tt.merge(lt);nt.call(Ta,c,this.arcGen,P),nt.sort(($,I)=>I.value-$.value),tt.exit().attr("class",pe).call(Ma,P);const ct=p?"start":j?"end":"middle";this.centralLabel.attr("dy",c.centralSubLabel?"-0.55em":null).style("text-anchor",ct).text((n=c.centralLabel)!==null&&n!==void 0?n:null),this.centralSubLabel.attr("dy",c.centralLabel?"0.55em":null).style("text-anchor",ct).text((a=c.centralSubLabel)!==null&&a!==void 0?a:null),c.centralSubLabelWrap&&Oe(this.centralSubLabel,w*1.9);const gt=(c.centralLabelOffsetX||0)+J;let Y=(c.centralLabelOffsetY||0)+G;V&&c.centralLabelOffsetX===void 0&&c.centralLabelOffsetY===void 0&&(Y=(v?-this.centralSubLabel.node().getBoundingClientRect().height:C?this.centralLabel.node().getBoundingClientRect().height:0)+G);const dt=`translate(${gt},${Y})`;this.centralLabel.attr("transform",dt),this.centralSubLabel.attr("transform",dt),this.arcBackground.attr("class",me).attr("visibility",c.showBackground?null:"hidden").attr("transform",X),K(this.arcBackground,P).attr("d",this.arcGen({startAngle:(m=(i=(d=c.backgroundAngleRange)===null||d===void 0?void 0:d[0])!==null&&i!==void 0?i:(o=c.angleRange)===null||o===void 0?void 0:o[0])!==null&&m!==void 0?m:0,endAngle:(b=(g=(f=c.backgroundAngleRange)===null||f===void 0?void 0:f[1])!==null&&g!==void 0?g:(h=c.angleRange)===null||h===void 0?void 0:h[1])!==null&&b!==void 0?b:2*Math.PI,innerRadius:w,outerRadius:_}))}}Wt.selectors=Ea;const La=et({__name:"index",props:{component:{},tooltip:{},annotations:{},duration:{},margin:{},padding:{},sizing:{},width:{},height:{},svgDefs:{},ariaLabel:{},data:{}},setup(u,{expose:e}){const t=u,{data:s}=sa(t),r=Ut(t);let l;const n=ra({component:void 0,tooltip:void 0,annotations:void 0}),a=Vt(),d=()=>{l||a.value&&n.component&&(l=new ha(a.value,{...wt(n)},s.value))};return oa(()=>{var i;d(),(i=n.component)==null||i.config,l?.updateContainer({...wt(r.value),...wt(n)})}),ht(s,()=>{l?l.setData(s.value,!0):d()}),Ot(()=>l?.destroy()),Tt(jt,{data:s,update:i=>n.component=i,destroy:()=>n.component=void 0}),Tt(Ve,{data:s,update:i=>n.tooltip=i,destroy:()=>{n.tooltip=void 0}}),Tt(He,{data:s,update:i=>n.annotations=i,destroy:()=>{n.annotations=void 0}}),e({component:l}),(i,o)=>(T(),O("div",{"data-vis-single-container":"",ref_key:"elRef",ref:a,class:"unovis-single-container"},[ia(i.$slots,"default")],512))}}),Pa={"data-vis-component":""},Ua=Bt.selectors,ja=et({__name:"index",props:{color:{type:[Function,String,Array,null]},barWidth:{},barMaxWidth:{},dataStep:{},barPadding:{},roundedCorners:{type:[Number,Boolean]},cursor:{type:[Function,String,null]},barMinHeight1Px:{type:Boolean},barMinHeightZeroValue:{},orientation:{},x:{type:[Function,Number,null]},y:{type:[Function,Number,null,Array]},id:{type:Function},xScale:{type:[Object,Function]},yScale:{type:[Object,Function]},excludeFromDomainCalculation:{type:Boolean},duration:{},events:{},attributes:{},data:{}},setup(u,{expose:e}){const t=re(jt),s=u,r=L(()=>t.data.value??s.data),l=Ut(s),n=Vt();return le(()=>{ce(()=>{var a;n.value=new Bt(l.value),(a=n.value)==null||a.setData(r.value),t.update(n.value)})}),Ot(()=>{var a;(a=n.value)==null||a.destroy(),t.destroy()}),ht(l,(a,d)=>{var i;ne(a,d)||(i=n.value)==null||i.setConfig(l.value)}),ht(r,()=>{var a;(a=n.value)==null||a.setData(r.value)}),e({component:n}),(a,d)=>(T(),O("div",Pa))}}),Oa={"data-vis-component":""},Va=Wt.selectors,Ha=et({__name:"index",props:{id:{type:Function},value:{type:[Function,Number,null]},angleRange:{},padAngle:{},sortFunction:{type:Function},cornerRadius:{},color:{type:[Function,String,Array,null]},radius:{},arcWidth:{},centralLabel:{},centralSubLabel:{},centralSubLabelWrap:{type:Boolean},showEmptySegments:{type:Boolean},emptySegmentAngle:{},showBackground:{type:Boolean},backgroundAngleRange:{},centralLabelOffsetX:{},centralLabelOffsetY:{},duration:{},events:{},attributes:{},data:{}},setup(u,{expose:e}){const t=re(jt),s=u,r=L(()=>t.data.value??s.data),l=Ut(s),n=Vt();return le(()=>{ce(()=>{var a;n.value=new Wt(l.value),(a=n.value)==null||a.setData(r.value),t.update(n.value)})}),Ot(()=>{var a;(a=n.value)==null||a.destroy(),t.destroy()}),ht(l,(a,d)=>{var i;ne(a,d)||(i=n.value)==null||i.setConfig(l.value)}),ht(r,()=>{var a;(a=n.value)==null||a.setData(r.value)}),e({component:n}),(a,d)=>(T(),O("div",Oa))}}),Ba={key:0,class:"text-xs text-destructive"},Wa={class:"mb-4 grid grid-cols-2 gap-3"},Na={class:"mb-4 grid grid-cols-2 gap-3"},za={class:"rounded-md border px-3 py-2"},Fa={class:"mt-1 text-xl font-semibold tabular-nums"},Ga={class:"rounded-md border px-3 py-2"},Ia={class:"mt-1 text-xl font-semibold tabular-nums"},Ya={class:"mt-4 flex flex-wrap justify-center items-center gap-3 text-xs text-muted-foreground"},Xa=et({name:"StatisticalAnalysisSessionAnalysisPanel",__name:"SessionAnalysisPanel",props:{errorMessage:{},items:{},loading:{type:Boolean},totalSessions:{}},setup(u){const e=u,t=[{color:"#2563eb",key:"tokens",label:"Token Usage"},{color:"#b6d72f",key:"duration",label:"Duration"},{color:"#f97316",key:"cost",label:"Cost"}],s={cost:{color:t[2].color,label:t[2].label},duration:{color:t[1].color,label:t[1].label},tokens:{color:t[0].color,label:t[0].label}},r={bottom:32,left:120,right:12,top:8},l=L(()=>{if(e.items.length===0)return $t(0);const v=e.items.reduce((p,C)=>p+C.costUSD,0)/e.items.length;return $t(v)}),n=L(()=>{const v=new Map;for(const A of e.items){const R=v.get(A.project)??{costUSD:0,durationMinutes:0,sessionCount:0,tokenTotal:0};R.costUSD+=A.costUSD,R.durationMinutes+=i(A.duration),R.sessionCount+=1,R.tokenTotal+=A.tokenTotal,v.set(A.project,R)}const p=Array.from(v.entries()).map(([A,R])=>({project:A,...R})).sort((A,R)=>R.costUSD-A.costUSD),C=Math.max(...p.map(A=>A.tokenTotal),0),j=Math.max(...p.map(A=>A.durationMinutes),0),V=Math.max(...p.map(A=>A.costUSD),0);return p.map((A,R)=>({...A,costLabel:$t(A.costUSD),costScore:m(A.costUSD,V),durationLabel:o(A.durationMinutes),durationScore:m(A.durationMinutes,j),index:R,tokenLabel:Et(A.tokenTotal),tokenScore:m(A.tokenTotal,C)}))}),a=L(()=>n.value.map(v=>v.index)),d=L(()=>({[Ua.bar]:k}));function i(v){const p=v.match(/(\d+)h/)?.[1],C=v.match(/(\d+)m/)?.[1];return Number(p??0)*60+Number(C??0)}function o(v){const p=Math.floor(v/60),C=v%60;return p===0?`${C}m`:C===0?`${p}h`:`${p}h ${C}m`}function m(v,p){return p>0?v/p*100:0}function f(v){return v.index}function g(v){return v.tokenScore}function h(v){return v.durationScore}function b(v){return v.costScore}function c(v,p){return t[p]?.color??t[0].color}function k(v){const p=v.datum,C=t[v.stackIndex]??t[0],j=S(p,v.stackIndex);return`
|
|
92
|
+
<div class="grid min-w-44 gap-2 rounded-md border bg-background px-3 py-2 text-xs shadow-lg">
|
|
93
|
+
<div class="font-medium text-foreground">${ie(p.project)}</div>
|
|
94
|
+
<div class="flex items-center justify-between gap-4">
|
|
95
|
+
<span class="flex items-center gap-2 text-muted-foreground">
|
|
96
|
+
<span class="size-2 rounded-sm" style="background-color: ${C.color}"></span>
|
|
97
|
+
${C.label}
|
|
98
|
+
</span>
|
|
99
|
+
<span class="font-mono font-semibold text-foreground">${j}</span>
|
|
100
|
+
</div>
|
|
101
|
+
<div class="grid gap-1 border-t pt-2 text-muted-foreground">
|
|
102
|
+
<div class="flex justify-between gap-4"><span>Tokens</span><span>${p.tokenLabel}</span></div>
|
|
103
|
+
<div class="flex justify-between gap-4"><span>Duration</span><span>${p.durationLabel}</span></div>
|
|
104
|
+
<div class="flex justify-between gap-4"><span>Cost</span><span>${p.costLabel}</span></div>
|
|
105
|
+
<div class="flex justify-between gap-4"><span>Sessions</span><span>${p.sessionCount}</span></div>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
`}function S(v,p){return p===0?`${v.tokenLabel} tokens`:p===1?v.durationLabel:v.costLabel}function E(v){return v instanceof Date?"":n.value.find(p=>p.index===v)?.project??""}function P(v){return v instanceof Date?"":`${Math.round(v)}%`}return(v,p)=>{const C=Qt,j=se,V=xt;return T(),N(V,{description:"Token, duration, and cost grouped by project",icon:"lucide:messages-square",title:"Session Analysis"},{default:D(()=>[u.errorMessage?(T(),O("p",Ba,U(u.errorMessage),1)):u.loading?(T(),O(Q,{key:1},[M("div",Wa,[y(C,{class:"h-20 w-full rounded-md"}),y(C,{class:"h-20 w-full rounded-md"})]),y(C,{class:"h-80 w-full rounded-md"})],64)):(T(),O(Q,{key:2},[M("div",Na,[M("div",za,[p[0]||(p[0]=M("p",{class:"text-xs text-muted-foreground"}," Total Sessions ",-1)),M("p",Fa,U(u.totalSessions),1)]),M("div",Ga,[p[1]||(p[1]=M("p",{class:"text-xs text-muted-foreground"}," Top Session Avg ",-1)),M("p",Ia,U(l.value),1)])]),y(j,{class:"h-80 w-full",config:s},{default:D(()=>[y(x(Be),{"auto-margin":!1,data:n.value,height:320,margin:r,"y-direction":"south"},{default:D(()=>[y(x(ja),{"bar-max-width":28,"bar-padding":.28,color:c,cursor:"pointer",orientation:"horizontal","rounded-corners":3,x:f,y:[g,h,b]},null,8,["y"]),y(x(qt),{"grid-line":!1,"tick-format":E,"tick-text-width":100,"tick-text-fit-mode":"trim","tick-text-trim-type":"end","tick-values":a.value,type:"y"},null,8,["tick-values"]),y(x(qt),{"num-ticks":4,"tick-format":P,type:"x"}),y(x(oe),{triggers:d.value},null,8,["triggers"])]),_:1},8,["data"])]),_:1}),M("div",Ya,[(T(),O(Q,null,pt(t,A=>M("div",{key:A.key,class:"flex items-center gap-2"},[M("span",{class:"size-2.5 rounded-sm",style:Ht({backgroundColor:A.color})},null,4),M("span",null,U(A.label),1)])),64))])],64))]),_:1})}}}),qa=Object.assign(Xa,{__name:"StatisticalAnalysisSessionAnalysisPanel"}),Za={class:"space-y-4"},Ja={class:"flex items-start justify-between gap-3"},Ka={class:"min-w-0"},Qa={class:"truncate text-sm font-medium"},tn={class:"truncate text-xs text-muted-foreground"},en={class:"shrink-0 text-sm font-semibold tabular-nums"},an={class:"h-2 overflow-hidden rounded-full bg-secondary"},nn=et({name:"StatisticalAnalysisUsageBarList",__name:"UsageBarList",props:{items:{}},setup(u){function e(s){switch(s){case"green":return"bg-emerald-500";case"amber":return"bg-amber-500";case"sky":return"bg-sky-500";case"rose":return"bg-rose-500";default:return"bg-primary"}}function t(s){return`${Math.max(s.percent,s.percent>0?3:0)}%`}return(s,r)=>(T(),O("div",Za,[(T(!0),O(Q,null,pt(u.items,l=>(T(),O("div",{key:l.label,class:"space-y-2"},[M("div",Ja,[M("div",Ka,[M("p",Qa,U(l.label),1),M("p",tn,U(l.detail),1)]),M("span",en,U(l.value),1)]),M("div",an,[M("div",{class:la(["h-full rounded-full transition-[width]",e(l.tone)]),style:Ht({width:t(l)})},null,6)])]))),128))]))}}),sn=Object.assign(nn,{__name:"StatisticalAnalysisUsageBarList"}),on={class:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-center"},rn={class:"flex items-center justify-center"},ln={class:"space-y-3"},cn={class:"flex min-w-0 items-center gap-2"},dn={class:"truncate text-sm text-muted-foreground"},un={class:"text-sm font-semibold tabular-nums"},hn={class:"w-12 text-right text-xs text-muted-foreground tabular-nums"},gn={class:"mt-5 border-t pt-4"},fn=et({name:"StatisticalAnalysisEfficiencyCachePanel",__name:"EfficiencyCachePanel",props:{dailyItems:{},items:{}},setup(u){const e=u,t=L(()=>e.dailyItems.reduce((g,h)=>g+h.inputTokens,0)),s=L(()=>e.dailyItems.reduce((g,h)=>g+h.cachedInputTokens,0)),r=L(()=>Math.max(t.value-s.value,0)),l=L(()=>t.value>0?s.value/t.value:0),n=L(()=>Dt(l.value)),a=L(()=>[{color:"#059669",key:"cached",label:"Cached Input",shareLabel:Dt(l.value),value:s.value,valueLabel:Et(s.value)},{color:"#0ea5e9",key:"fresh",label:"Fresh Input",shareLabel:Dt(t.value>0?r.value/t.value:0),value:r.value,valueLabel:Et(r.value)}]),d=L(()=>Object.fromEntries(a.value.map(g=>[g.key,{color:g.color,label:g.label}]))),i=L(()=>({[Va.segment]:f}));function o(g){return g.value}function m(g){return g.color}function f(g){const h=g.data;return`
|
|
109
|
+
<div class="grid min-w-40 gap-2 rounded-md border bg-background px-3 py-2 text-xs shadow-lg">
|
|
110
|
+
<div class="flex items-center gap-2 font-medium text-foreground">
|
|
111
|
+
<span class="size-2 rounded-sm" style="background-color: ${h.color}"></span>
|
|
112
|
+
${ie(h.label)}
|
|
113
|
+
</div>
|
|
114
|
+
<div class="grid gap-1 text-muted-foreground">
|
|
115
|
+
<div class="flex justify-between gap-4"><span>Tokens</span><span class="font-mono font-medium text-foreground">${h.valueLabel}</span></div>
|
|
116
|
+
<div class="flex justify-between gap-4"><span>Share</span><span class="font-mono font-medium text-foreground">${h.shareLabel}</span></div>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
`}return(g,h)=>{const b=se,c=sn,k=xt;return T(),N(k,{description:"Cached input ratio across total input tokens",icon:"lucide:gauge",title:"Efficiency / Cache"},{default:D(()=>[M("div",on,[M("div",rn,[y(b,{class:"h-52 w-full max-w-56",config:x(d)},{default:D(()=>[y(x(La),{data:x(a),height:208},{default:D(()=>[y(x(Ha),{"arc-width":26,"central-label":x(n),"central-sub-label":"Hit Rate",color:m,"corner-radius":4,"pad-angle":.04,value:o},null,8,["central-label"]),y(x(oe),{triggers:x(i)},null,8,["triggers"])]),_:1},8,["data"])]),_:1},8,["config"])]),M("div",ln,[(T(!0),O(Q,null,pt(x(a),S=>(T(),O("div",{key:S.key,class:"grid grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-3"},[M("div",cn,[M("span",{class:"size-2.5 shrink-0 rounded-full",style:Ht({backgroundColor:S.color})},null,4),M("span",dn,U(S.label),1)]),M("span",un,U(S.valueLabel),1),M("span",hn,U(S.shareLabel),1)]))),128))])]),M("div",gn,[y(c,{items:u.items},null,8,["items"])])]),_:1})}}}),mn=Object.assign(fn,{__name:"StatisticalAnalysisEfficiencyCachePanel"}),mt=10,pn=et({name:"StatisticalAnalysisTokensUsagePanel",__name:"TokensUsagePanel",props:{items:{}},setup(u){const e=u,t=da(1),s=L(()=>Math.max(1,Math.ceil(e.items.length/mt))),r=L(()=>{const n=(Math.min(t.value,s.value)-1)*mt;return e.items.slice(n,n+mt)});return ht(()=>e.items,()=>{t.value=1}),(l,n)=>{const a=Fe,d=ze,i=Ne,o=Ye,m=Ge,f=We,g=Ie,h=xt;return T(),N(h,{description:"Daily model activity by token type, cache reads, total usage, and cost",icon:"lucide:calendar-days",title:"Daily Token Usage"},{default:D(()=>[y(f,null,{default:D(()=>[y(i,null,{default:D(()=>[y(d,null,{default:D(()=>[y(a,null,{default:D(()=>[...n[1]||(n[1]=[W("Date",-1)])]),_:1}),y(a,null,{default:D(()=>[...n[2]||(n[2]=[W("Models",-1)])]),_:1}),y(a,{class:"text-right"},{default:D(()=>[...n[3]||(n[3]=[W(" Input ",-1)])]),_:1}),y(a,{class:"text-right"},{default:D(()=>[...n[4]||(n[4]=[W(" Output ",-1)])]),_:1}),y(a,{class:"text-right"},{default:D(()=>[...n[5]||(n[5]=[W(" Reasoning ",-1)])]),_:1}),y(a,{class:"text-right"},{default:D(()=>[...n[6]||(n[6]=[W(" Cache Read ",-1)])]),_:1}),y(a,{class:"text-right"},{default:D(()=>[...n[7]||(n[7]=[W(" Total Tokens ",-1)])]),_:1}),y(a,{class:"text-right"},{default:D(()=>[...n[8]||(n[8]=[W(" Cost (USD) ",-1)])]),_:1})]),_:1})]),_:1}),y(m,null,{default:D(()=>[(T(!0),O(Q,null,pt(x(r),b=>(T(),N(d,{key:b.date},{default:D(()=>[y(o,{class:"font-medium"},{default:D(()=>[W(U(b.date),1)]),_:2},1024),y(o,null,{default:D(()=>[W(U(Object.keys(b.models).join(", ")),1)]),_:2},1024),y(o,{class:"text-right"},{default:D(()=>[W(U(x(ft)(b.inputTokens)),1)]),_:2},1024),y(o,{class:"text-right"},{default:D(()=>[W(U(x(ft)(b.outputTokens)),1)]),_:2},1024),y(o,{class:"text-right"},{default:D(()=>[W(U(x(ft)(b.reasoningOutputTokens)),1)]),_:2},1024),y(o,{class:"text-right"},{default:D(()=>[W(U(x(ft)(b.cachedInputTokens)),1)]),_:2},1024),y(o,{class:"text-right"},{default:D(()=>[W(U(x(ft)(b.totalTokens)),1)]),_:2},1024),y(o,{class:"text-right"},{default:D(()=>[W(U(b.costUSD.toFixed(2)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1}),u.items.length>mt?(T(),N(g,{key:0,page:x(t),"onUpdate:page":n[0]||(n[0]=b=>ca(t)?t.value=b:null),"page-count":x(s),"page-size":mt,total:u.items.length},null,8,["page","page-count","total"])):de("",!0)]),_:1})}}}),vn=Object.assign(pn,{__name:"StatisticalAnalysisTokensUsagePanel"});function bn(){const{data:u,error:e,refresh:t,status:s}=Mt("analysis:home:core",Je,{default:Zt}),{clear:r,data:l,error:n,execute:a,refresh:d,status:i}=Mt("analysis:home:usage",Ke,{default:Jt,immediate:!1,server:!1}),{clear:o,data:m,error:f,execute:g,refresh:h,status:b}=Mt("analysis:home:session",Qe,{default:()=>Kt().sessionAnalysis,immediate:!1,server:!1}),c=L(()=>u.value??Zt()),k=L(()=>l.value??Jt()),S=L(()=>m.value??Kt().sessionAnalysis),{refresh:E}=ta({clearDeferred:()=>{r(),o()},coreStatus:s,executeDeferred:()=>Promise.all([a(),g()]),refreshCore:t,refreshDeferred:()=>Promise.all([d(),h()])});return{dailyTokenUsage:L(()=>k.value.dailyTokenUsage),efficiencyMetrics:L(()=>k.value.efficiencyMetrics),error:e,monthlyModelUsage:L(()=>c.value.modelUsage),overviewCards:L(()=>c.value.overviewCards),projectUsage:L(()=>c.value.hotProjects),refresh:E,sessionAnalysisError:f,sessionAnalysisStatus:b,sessionUsage:L(()=>S.value.items),status:s,totalSessions:L(()=>S.value.totalSessions),usageError:n,usageStatus:i}}const yn={key:0,class:"text-xs text-destructive"},_n={class:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4"},xn={key:0,class:"text-xs text-destructive"},kn={key:0,class:"text-xs text-destructive"},Sn={key:0,class:"text-xs text-destructive"},Ln=et({__name:"index",setup(u){const{dailyTokenUsage:e,error:t,efficiencyMetrics:s,monthlyModelUsage:r,projectUsage:l,sessionAnalysisError:n,sessionAnalysisStatus:a,sessionUsage:d,totalSessions:i,status:o,usageError:m,usageStatus:f,overviewCards:g}=bn(),{errorText:h,showSkeleton:b}=Ct(o,t),{errorText:c,showSkeleton:k}=Ct(a,n),{errorText:S,showSkeleton:E}=Ct(f,m);return(P,v)=>{const p=Qt,C=xt,j=qe,V=Ze,A=ea,R=aa,H=na,_=qa,w=mn,G=vn,J=Xe;return T(),N(J,null,{default:D(()=>[x(h)?(T(),O("p",yn,U(x(h)),1)):de("",!0),x(b)?(T(),O(Q,{key:1},[M("div",_n,[(T(),O(Q,null,pt(4,X=>y(p,{key:X,class:"h-28 rounded-md"})),64))]),y(j,null,{default:D(()=>[y(C,{class:"md:col-span-8",description:"Monthly token trends by model",icon:"solar:cpu-line-duotone",title:"Model Usage"},{default:D(()=>[y(p,{class:"h-72 w-full rounded-md"})]),_:1}),y(C,{class:"md:col-span-4",description:"Best performers by spend",icon:"lucide:folder-git-2",title:"Top Projects"},{default:D(()=>[y(p,{class:"h-72 w-full rounded-md"})]),_:1}),y(C,{class:"md:col-span-12",description:"Usage trend over the selected period",icon:"lucide:activity",title:"Usage Trend"},{default:D(()=>[y(p,{class:"h-80 w-full rounded-md"})]),_:1}),y(C,{class:"md:col-span-6",description:"Token, duration, and cost grouped by project",icon:"lucide:messages-square",title:"Session Analysis"},{default:D(()=>[y(p,{class:"h-72 w-full rounded-md"})]),_:1}),y(C,{class:"md:col-span-6",description:"Cached input ratio across total input tokens",icon:"lucide:gauge",title:"Efficiency / Cache"},{default:D(()=>[y(p,{class:"h-72 w-full rounded-md"})]),_:1}),y(C,{class:"md:col-span-12",description:"Daily model activity by token type, cache reads, total usage, and cost",icon:"lucide:calendar-days",title:"Daily Token Usage"},{default:D(()=>[y(p,{class:"h-72 w-full rounded-md"})]),_:1})]),_:1})],64)):(T(),O(Q,{key:2},[y(V,{cards:x(g)},null,8,["cards"]),y(j,null,{default:D(()=>[y(A,{"monthly-items":x(r),class:"md:col-span-8"},null,8,["monthly-items"]),y(R,{items:x(l),class:"md:col-span-4"},null,8,["items"]),x(E)||x(S)?(T(),N(C,{key:0,class:"md:col-span-12",description:"Usage trend over the selected period",icon:"lucide:activity",title:"Usage Trend"},{default:D(()=>[x(S)?(T(),O("p",xn,U(x(S)),1)):(T(),N(p,{key:1,class:"h-80 w-full rounded-md"}))]),_:1})):(T(),N(H,{key:1,items:x(e),class:"md:col-span-12","heat-metric":"cost",title:"Usage Trend"},null,8,["items"])),y(_,{"error-message":x(c),items:x(d),loading:x(k),"total-sessions":x(i),class:"md:col-span-6"},null,8,["error-message","items","loading","total-sessions"]),x(E)||x(S)?(T(),N(C,{key:2,class:"md:col-span-6",description:"Cached input ratio across total input tokens",icon:"lucide:gauge",title:"Efficiency / Cache"},{default:D(()=>[x(S)?(T(),O("p",kn,U(x(S)),1)):(T(),N(p,{key:1,class:"h-72 w-full rounded-md"}))]),_:1})):(T(),N(w,{key:3,"daily-items":x(e),items:x(s),class:"md:col-span-6"},null,8,["daily-items","items"])),x(E)||x(S)?(T(),N(C,{key:4,class:"md:col-span-12",description:"Daily model activity by token type, cache reads, total usage, and cost",icon:"lucide:calendar-days",title:"Daily Token Usage"},{default:D(()=>[x(S)?(T(),O("p",Sn,U(x(S)),1)):(T(),N(p,{key:1,class:"h-72 w-full rounded-md"}))]),_:1})):(T(),N(G,{key:5,items:x(e),class:"md:col-span-12"},null,8,["items"]))]),_:1})],64))]),_:1})}}});export{Ln as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as s}from"./Bz0aA7IQ.js";import{_ as a,u as i,o as u,c,a as t,t as n,b as l,w as d,d as f}from"./D7Qebc1i.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return i({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,_)=>{const o=s;return u(),c("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[l(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:d(()=>[f(n(e.backHome),1)]),_:1})])])])}}},N=a(y,[["__scopeId","data-v-0abdad73"]]);export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o,u as s,o as a,c as i,a as t,t as r}from"./
|
|
1
|
+
import{_ as o,u as s,o as a,c as i,a as t,t as r}from"./D7Qebc1i.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},l={class:"max-w-520px text-center"},c=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:500},statusText:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return s({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(h,m)=>(a(),i("div",u,[t("div",l,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.status)},null,8,c),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusText)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},b=o(f,[["__scopeId","data-v-784a2264"]]);export{b as default};
|