1import{f as as,g as ls,S as is,A as ns,x as o,w as x,v as O}from"./vendor-primevue-Ccwe8ICX.js";import{d as cs,_ as os,r as A,c as v,o as rs,J as _,b as u,K as e,a as g,n as w,M as l,x as s,g as c,i as r,Q as h,F as M,R as p,j as D,V as T}from"./vendor-vue-BKoTHMGq.js";import{A as ds}from"./AssistantPricingService-Bag2nZmB.js";import{_ as us}from"./index-ChU8jYFA.js";import"./vendor-DweBnwaO.js";import"./vendor-charts-DDDWuFtC.js";import"./vendor-utils-Dz6h6rJQ.js";const vs={class:"card"},_s={class:"flex flex-wrap items-center justify-between gap-3 mb-4"},ys={class:"text-xl font-semibold text-surface-900 dark:text-surface-0 m-0"},hs={class:"text-sm text-surface-500 dark:text-surface-400 mt-1 mb-0"},ps={class:"flex items-center gap-2"},ms={key:1,class:"flex justify-center py-16"},fs={key:2,class:"text-center py-16 text-surface-500 dark:text-surface-400"},xs={class:"grid grid-cols-2 md:grid-cols-4 xl:grid-cols-8 gap-3 mb-5"},gs={class:"aa-tile"},bs={class:"aa-tile-l"},ks={class:"aa-tile-v"},As={class:"aa-tile-d"},ws={class:"aa-tile"},Ms={class:"aa-tile-l"},Cs={class:"aa-tile-v"},$s={class:"aa-tile-d"},Ss={class:"aa-tile"},Fs={class:"aa-tile-l"},Ds={class:"aa-tile-d"},Ls={class:"aa-tile"},Rs={class:"aa-tile-l"},Us={class:"aa-tile-v"},Vs={class:"aa-tile-d"},zs={class:"text-emerald-500"},qs={class:"text-red-400"},Is={class:"aa-tile"},Ns={class:"aa-tile-l"},js=["title"],Bs={class:"aa-tile-d"},Hs={class:"aa-tile"},Os={class:"aa-tile-l"},Ts={class:"aa-tile-v"},Ps={class:"aa-tile-d"},Es={class:"aa-tile"},Gs={class:"aa-tile-l"},Js={class:"aa-tile-v"},Ks={class:"aa-tile-d"},Qs={class:"aa-tile"},Ws={class:"aa-tile-l"},Xs={class:"aa-tile-v"},Ys={class:"aa-tile-d"},Zs={class:"aa-panel mb-5"},st={class:"flex flex-wrap items-center justify-between gap-2 mb-3"},tt={class:"aa-panel-t"},et={class:"flex flex-wrap items-center gap-3"},at={key:0,class:"text-sm text-surface-500 py-6 text-center"},lt={key:1,class:"aa-bars"},it=["title"],nt={key:0,class:"aa-bar-v"},ct={key:1,class:"aa-bar-l"},ot={class:"grid grid-cols-1 xl:grid-cols-2 gap-5"},rt={class:"aa-panel"},dt={class:"aa-panel-t mb-3"},ut={class:"aa-panel"},vt={class:"aa-panel-t mb-3"},_t={key:0,class:"text-sm text-surface-500 dark:text-surface-400 py-4"},yt={class:"text-emerald-500"},ht={class:"text-[11px] text-surface-400 dark:text-surface-500 mt-3 mb-0"},pt={class:"aa-panel"},mt={class:"aa-panel-t mb-3"},ft={key:0,class:"text-sm text-surface-500 dark:text-surface-400 py-4"},xt={class:"text-[11px] text-surface-400 dark:text-surface-500 mt-3 mb-0"},gt={class:"aa-panel"},bt={class:"aa-panel-t mb-3"},kt={key:0,class:"text-sm text-surface-500 dark:text-surface-400 py-4"},At={class:"text-xs break-words"},wt={class:"aa-panel mt-5"},Mt={class:"aa-panel-t mb-3"},Ct={key:0,class:"text-sm text-surface-500 dark:text-surface-400 py-4"},$t={class:"max-w-[28rem] whitespace-pre-wrap break-words text-xs leading-5"},St={class:"max-w-[28rem] whitespace-pre-wrap break-words text-xs leading-5 text-surface-500 dark:text-surface-400"},Ft={class:"max-w-[18rem] whitespace-pre-wrap break-words text-xs leading-5"},Dt={class:"font-mono text-[11px]"},Lt={class:"text-xs"},Rt={class:"text-xs"},Ut={class:"text-[11px] text-surface-400 dark:text-surface-500 mt-3 mb-0"},Vt=cs({__name:"AssistantAnalyticsView",setup(zt){const{t:a,te:L}=os(),y=A(null),f=A(!1),b=A(null),C=A(7),P=v(()=>[{label:a("assistantAnalytics.period.d7"),value:7},{label:a("assistantAnalytics.period.d14"),value:14},{label:a("assistantAnalytics.period.d30"),value:30},{label:a("assistantAnalytics.period.d90"),value:90}]);async function $(){f.value=!0,b.value=null;try{const t=new Date(Date.now()-C.value*24*60*60*1e3).toISOString();y.value=await ds.auditSummary({from:t})}catch(t){b.value=t.message??"Failed to load summary",y.value=null}finally{f.value=!1}}rs(()=>{$()});const d=v(()=>{var t;return((t=y.value)==null?void 0:t.totals)??null}),R=v(()=>{const t=d.value;return!t||t.requests===0?null:Math.round(t.byStatus.ok/t.requests*100)}),U=v(()=>{const t=d.value;return t?t.byStatus.failed+t.byStatus.invalid:0}),V=v(()=>{const t=d.value;if(!t)return null;const n=t.feedbackUp+t.feedbackDown;return n===0?null:Math.round(t.feedbackUp/n*100)}),E=v(()=>{var n;return((((n=d.value)==null?void 0:n.costMicroCents)??0)/1e6).toFixed(2)}),G=v(()=>{var n;return((((n=d.value)==null?void 0:n.providerCostMicroCents)??0)/1e6).toFixed(2)}),J=v(()=>{var i,m;const t=((i=d.value)==null?void 0:i.costMicroCents)??0,n=((m=d.value)==null?void 0:m.providerCostMicroCents)??0;return((t-n)/1e6).toFixed(2)}),K=v(()=>{var t,n;return(((t=d.value)==null?void 0:t.costMicroCents)??0)<(((n=d.value)==null?void 0:n.providerCostMicroCents)??0)}),Q=v(()=>{var t;return Math.max(1,...(((t=y.value)==null?void 0:t.daily)??[]).map(n=>n.total))}),z=v(()=>{var t;return(((t=y.value)==null?void 0:t.daily.length)??0)<=40});function W(t){return[{key:"ok",value:t.ok,class:"aa-seg-ok"},{key:"clarification",value:t.clarification,class:"aa-seg-clarification"},{key:"blockedOutput",value:t.blockedOutput,class:"aa-seg-blocked"}
1,{key:"invalid",value:t.invalid,class:"aa-seg-invalid"},{key:"failed",value:t.failed,class:"aa-seg-failed"}].filter(n=>n.value>0)}function X(t){return[`${t.day}: ${t.total}`,`ok ${t.ok}`,`clarification ${t.clarification}`,`failed ${t.failed}`,`invalid ${t.invalid}`,`blocked ${t.blockedOutput}`,`$${(t.costMicroCents/1e6).toFixed(2)}`].join(" · ")}function Y(t){const n=t.split("-");return n.length===3?`${n[2]}.${n[1]}`:t}function S(t){return`$${(t/1e6).toFixed(2)}`}const F=v(()=>{var t;return((t=y.value)==null?void 0:t.retrievalMiss)??{knowledgeFirst:0,misses:0,rate:0}}),q=v(()=>{var t;return((t=y.value)==null?void 0:t.byRetrievalStrategy)??[]}),I=v(()=>{var t;return((t=y.value)==null?void 0:t.topNegative)??[]}),N=v(()=>{var t;return((t=y.value)==null?void 0:t.problemClusters)??[]}),k=v(()=>{const t=F.value;return t.knowledgeFirst===0?null:Math.round(t.rate*100)}),Z=v(()=>k.value!=null&&k.value>=30);function ss(t){const n=`assistantAnalytics.retrieval.strategies.${t}`;return L(n)?a(n):t}function j(t){if(!t)return"â";const n=`assistantAnalytics.status.${t}`;return L(n)?a(n):t}function B(t){switch(t){case"ok":return"success";case"clarification":return"warn";case"invalid":return"danger";case"failed":return"danger";default:return"secondary"}}function H(t){return`${(t/1e3).toFixed(1)}s`}function ts(t){return t?new Date(t).toLocaleString():"â"}const es=v(()=>[{class:"aa-seg-ok",label:a("assistantAnalytics.status.ok")},{class:"aa-seg-clarification",label:a("assistantAnalytics.status.clarification")},{class:"aa-seg-blocked",label:a("assistantAnalytics.status.blocked_output")},{class:"aa-seg-invalid",label:a("assistantAnalytics.status.invalid")},{class:"aa-seg-failed",label:a("assistantAnalytics.status.failed")}]);return(t,n)=>(u(),_("div",vs,[e("div",_s,[e("div",null,[e("h2",ys,l(s(a)("assistantAnalytics.title")),1),e("p",hs,l(s(a)("assistantAnalytics.subtitle")),1)]),e("div",ps,[c(s(as),{modelValue:C.value,"onUpdate:modelValue":n[0]||(n[0]=i=>C.value=i),options:P.value,"option-label":"label","option-value":"value",size:"small",class:"w-44",onChange:$},null,8,["modelValue","options"]),c(s(ls),{icon:"pi pi-refresh",severity:"secondary",outlined:"",size:"small",loading:f.value,title:s(a)("assistantAnalytics.refresh"),onClick:$},null,8,["loading","title"])])]),b.value?(u(),g(s(is),{key:0,severity:"error",closable:!1,class:"mb-4"},{default:r(()=>[h(l(b.value),1)]),_:1})):w("",!0),f.value&&!y.value?(u(),_("div",ms,[c(s(ns),{style:{width:"36px",height:"36px"}})])):!f.value&&y.value&&d.value&&d.value.requests===0?(u(),_("div",fs,[n[1]||(n[1]=e("i",{class:"pi pi-chart-bar text-4xl mb-3 block"},null,-1)),h(" "+l(s(a)("assistantAnalytics.empty")),1)])):y.value&&d.value?(u(),_(M,{key:3},[e("div",xs,[e("div",gs,[e("div",bs,l(s(a)("assistantAnalytics.tiles.requests")),1),e("div",ks,l(d.value.requests.toLocaleString()),1),e("div",As,l(s(a)("assistantAnalytics.tiles.uniqueUsers",{count:d.value.uniqueUsers})),1)]),e("div",ws,[e("div",Ms,l(s(a)("assistantAnalytics.tiles.successRate")),1),e("div",Cs,l(R.value!=null?`${R.value}%`:"â"),1),e("div",$s,l(s(a)("assistantAnalytics.tiles.okCount",{count:d.value.byStatus.ok})),1)]),e("div",Ss,[e("div",Fs,l(s(a)("assistantAnalytics.tiles.errors")),1),e("div",{class:p(["aa-tile-v",{"text-red-500":U.value>0}])},l(U.value),3),e("div",Ds,l(s(a)("assistantAnalytics.tiles.clarifications",{count:d.value.byStatus.clarification})),1)]),e("div",Ls,[e("div",Rs,l(s(a)("assistantAnalytics.tiles.feedback")),1),e("div",Us,l(V.value!=null?`${V.value}%`:"â"),1),e("div",Vs,[e("span",zs,"â² "+l(d.value.feedbackUp),1),n[2]||(n[2]=h(" · ",-1)),e("span",qs,"â¼ "+l(d.value.feedbackDown),1)])]),e("div",Is,[e("div",Ns,l(s(a)("assistantAnalytics.tiles.retrievalMiss")),1),e("div",{class:p(["aa-tile-v",{"text-red-500":Z.value}]),title:s(a)("assistantAnalytics.tiles.retrievalMissHint")},l(k.value!=null?`${k.value}%`:"â"),11,js),e("div",Bs,l(s(a)("assistantAnalytics.tiles.retrievalMissDetail",{misses:F.value.misses,total:F.value.knowledgeFirst})),1)]),e("div",Hs,[e("div",Os,l(s(a)("assistantAnalytics.tiles.latency")),1),e("div",Ts,l((d.value.p50LatencyMs/1e3).toFixed(1))+"s",1),e("div",Ps," p95 "+l((d.value.p95LatencyMs/1e3).toFixed(1))+"s · "+l(s(a)("assistantAnalytics.tiles.avgIterations",{count:d.value.avgIterations})),1)]),e("div",Es,[e("div",Gs,l(s(a)("assistantAnalytics.tiles.c
1ost")),1),e("div",Js,"$"+l(E.value),1),e("div",Ks,l(s(a)("assistantAnalytics.tiles.tokens",{input:d.value.inputTokens.toLocaleString(),output:d.value.outputTokens.toLocaleString()})),1)]),e("div",Qs,[e("div",Ws,l(s(a)("assistantAnalytics.tiles.providerCost")),1),e("div",Xs,"$"+l(G.value),1),e("div",Ys,[e("span",{class:p(K.value?"text-red-500":"text-emerald-500")},l(s(a)("assistantAnalytics.tiles.margin",{value:`$${J.value}`})),3)])])]),e("div",Zs,[e("div",st,[e("div",tt,l(s(a)("assistantAnalytics.daily.title")),1),e("div",et,[(u(!0),_(M,null,D(es.value,i=>(u(),_("span",{key:i.class,class:"inline-flex items-center gap-1.5 text-[11px] font-medium text-surface-500 dark:text-surface-400"},[e("span",{class:p(["w-2.5 h-2.5 rounded-sm inline-block",i.class])},null,2),h(" "+l(i.label),1)]))),128))])]),y.value.daily.length===0?(u(),_("div",at,l(s(a)("assistantAnalytics.daily.empty")),1)):(u(),_("div",lt,[(u(!0),_(M,null,D(y.value.daily,i=>(u(),_("div",{key:i.day,class:"aa-bar",title:X(i)},[z.value?(u(),_("span",nt,l(i.total),1)):w("",!0),e("div",{class:"aa-bar-col",style:T({height:`${Math.max(3,i.total/Q.value*100)}%`})},[(u(!0),_(M,null,D(W(i),m=>(u(),_("span",{key:m.key,class:p(m.class),style:T({flexGrow:m.value})},null,6))),128))],4),z.value?(u(),_("span",ct,l(Y(i.day)),1)):w("",!0)],8,it))),128))]))]),e("div",ot,[e("div",rt,[e("div",dt,l(s(a)("assistantAnalytics.models.title")),1),c(s(x),{value:y.value.byModel,size:"small",class:"text-sm"},{default:r(()=>[c(s(o),{field:"model",header:s(a)("assistantAnalytics.models.model")},null,8,["header"]),c(s(o),{field:"count",header:s(a)("assistantAnalytics.models.count"),class:"text-right"},null,8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.models.cost"),class:"text-right"},{body:r(({data:i})=>[h(l(S(i.costMicroCents)),1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.models.providerCost"),class:"text-right"},{body:r(({data:i})=>[h(l(S(i.providerCostMicroCents??0)),1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.models.latency"),class:"text-right"},{body:r(({data:i})=>[h(l((i.avgLatencyMs/1e3).toFixed(1))+"s",1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.models.negative"),class:"text-right"},{body:r(({data:i})=>[e("span",{class:p(i.feedbackDown>0?"text-red-500 font-semibold":"")},l(i.feedbackDown),3)]),_:1},8,["header"])]),_:1},8,["value"])]),e("div",ut,[e("div",vt,l(s(a)("assistantAnalytics.routing.title")),1),y.value.byRoutingReason.length===0?(u(),_("div",_t,l(s(a)("assistantAnalytics.routing.empty")),1)):(u(),g(s(x),{key:1,value:y.value.byRoutingReason,size:"small",class:"text-sm"},{default:r(()=>[c(s(o),{field:"reason",header:s(a)("assistantAnalytics.routing.reason")},null,8,["header"]),c(s(o),{field:"count",header:s(a)("assistantAnalytics.routing.count"),class:"text-right"},null,8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.routing.latency"),class:"text-right"},{body:r(({data:i})=>[h(l(H(i.avgLatencyMs??0)),1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.routing.feedback"),class:"text-right"},{body:r(({data:i})=>[e("span",yt,"Ⲡ"+l(i.feedbackUp??0),1),n[3]||(n[3]=h(" · ",-1)),e("span",{class:p((i.feedbackDown??0)>0?"text-red-500 font-semibold":"text-surface-400")}," ⼠"+l(i.feedbackDown??0),3)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.routing.cost"),class:"text-right"},{body:r(({data:i})=>[h(l(S(i.costMicroCents??0)),1)]),_:1},8,["header"])]),_:1},8,["value"])),e("p",ht,l(s(a)("assistantAnalytics.routing.hint")),1)]),e("div",pt,[e("div",mt,l(s(a)("assistantAnalytics.retrieval.title")),1),q.value.length===0?(u(),_("div",ft,l(s(a)("assistantAnalytics.retrieval.empty")),1)):(u(),g(s(x),{key:1,value:q.value,size:"small",class:"text-sm"},{default:r(()=>[c(s(o),{header:s(a)("assistantAnalytics.retrieval.strategy")},{body:r(({data:i})=>[h(l(ss(i.strategy)),1)]),_:1},8,["header"]),c(s(o),{field:"count",header:s(a)("assistantAnalytics.retrieval.count"),class:"text-right"},null,8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.retrieval.misses"),class:"text-right"},{body:r(({data:i})=>[e("span",{class:p(i.misses>0?"text-red-500 font-semibold":"")},l(i.misses),3)]),_:1},8,["header"])]),_:1},8,["value"])),e("p",xt,l(s(a)("assistantAnalytics.retrieval.hint")),1)]),e("div",gt,[e("div",bt,l(s(a)("assistantAnalytics.cluster
1s.title")),1),N.value.length===0?(u(),_("div",kt,l(s(a)("assistantAnalytics.clusters.empty")),1)):(u(),g(s(x),{key:1,value:N.value,size:"small",class:"text-sm"},{default:r(()=>[c(s(o),{header:s(a)("assistantAnalytics.clusters.status"),class:"w-32"},{body:r(({data:i})=>[c(s(O),{severity:B(i.status),value:j(i.status)},null,8,["severity","value"])]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.clusters.reason")},{body:r(({data:i})=>[e("span",At,l(i.reason||"â"),1)]),_:1},8,["header"]),c(s(o),{field:"count",header:s(a)("assistantAnalytics.clusters.count"),class:"text-right"},null,8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.clusters.negative"),class:"text-right"},{body:r(({data:i})=>[e("span",{class:p(i.feedbackDown>0?"text-red-500 font-semibold":"")},l(i.feedbackDown),3)]),_:1},8,["header"])]),_:1},8,["value"]))])]),e("div",wt,[e("div",Mt,l(s(a)("assistantAnalytics.negative.title")),1),I.value.length===0?(u(),_("div",Ct,l(s(a)("assistantAnalytics.negative.empty")),1)):(u(),g(s(x),{key:1,value:I.value,size:"small",class:"text-sm",scrollable:"","scroll-height":"480px"},{default:r(()=>[c(s(o),{header:s(a)("assistantAnalytics.negative.question"),class:"min-w-72"},{body:r(({data:i})=>[e("div",$t,l(i.message||"â"),1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.negative.answer"),class:"min-w-72"},{body:r(({data:i})=>[e("div",St,l(i.answerPreview||"â"),1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.negative.comment"),class:"min-w-48"},{body:r(({data:i})=>[e("div",Ft,l(i.comment||"â"),1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.negative.model"),class:"w-40"},{body:r(({data:i})=>[e("span",Dt,l(i.model||"â"),1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.negative.status"),class:"w-32"},{body:r(({data:i})=>[c(s(O),{severity:B(i.status),value:j(i.status)},null,8,["severity","value"])]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.negative.routingReason"),class:"w-40"},{body:r(({data:i})=>[e("span",Lt,l(i.routingReason||"â"),1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.negative.kbHits"),class:"w-24 text-right"},{body:r(({data:i})=>[e("span",{class:p(i.knowledgeFirst&&i.kbHitCount===0?"text-red-500 font-semibold":"")},l(i.kbHitCount),3)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.negative.latency"),class:"w-24 text-right"},{body:r(({data:i})=>[h(l(H(i.latencyMs)),1)]),_:1},8,["header"]),c(s(o),{header:s(a)("assistantAnalytics.negative.created"),class:"w-40"},{body:r(({data:i})=>[e("span",Rt,l(ts(i.created)),1)]),_:1},8,["header"])]),_:1},8,["value"])),e("p",Ut,l(s(a)("assistantAnalytics.negative.hint")),1)])],64)):w("",!0)]))}}),Tt=us(Vt,[["__scopeId","data-v-bf808134"]]);export{Tt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.