llmxray 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AITrainingPage-BmiTLvwB.js → AITrainingPage-CD-bWVvC.js} +1 -1
- package/dist/assets/{BenchmarkPage-CwCXzzrb.js → BenchmarkPage-bp73Urv7.js} +1 -1
- package/dist/assets/ComparisonPage-BcSW8bNz.js +4 -0
- package/dist/assets/{DashboardPage-CKQaBKDw.js → DashboardPage-BikhI-WR.js} +16 -16
- package/dist/assets/{EmbeddingsPage-DJdyD65Q.js → EmbeddingsPage-DY0ClOT-.js} +1 -1
- package/dist/assets/{GoogleCallbackPage-2hfuqKEi.js → GoogleCallbackPage-CVk5U2In.js} +1 -1
- package/dist/assets/{JsonTreeNode-DckR4Nv8.js → JsonTreeNode-BQTLLZr8.js} +1 -1
- package/dist/assets/{ModelCapabilityIcons.vue_vue_type_script_setup_true_lang-DUHfiPBt.js → ModelCapabilityIcons.vue_vue_type_script_setup_true_lang-CC-8ifev.js} +1 -1
- package/dist/assets/{RAGPage-jMq_Sg9F.js → RAGPage-DrqXiDs6.js} +1 -1
- package/dist/assets/{SessionPage-C6jIbcq2.js → SessionPage-BClm8k5v.js} +1 -1
- package/dist/assets/SettingsPage-RH-JaBkt.js +1 -0
- package/dist/assets/{StatusBadge.vue_vue_type_script_setup_true_lang-D24kGmB6.js → StatusBadge.vue_vue_type_script_setup_true_lang-BoFt8y4m.js} +1 -1
- package/dist/assets/{StorageGauge.vue_vue_type_style_index_0_lang-CLdARZMv.js → StorageGauge.vue_vue_type_style_index_0_lang-Cww3ylyV.js} +1 -1
- package/dist/assets/{SystemPage-BbfTFebq.js → SystemPage-Dl-w53Tz.js} +2 -2
- package/dist/assets/{TabBar.vue_vue_type_script_setup_true_lang-BV7bRKLd.js → TabBar.vue_vue_type_script_setup_true_lang-D1bxlZ11.js} +1 -1
- package/dist/assets/{TokenStreamDisplay.vue_vue_type_script_setup_true_lang-Cilrzwrg.js → TokenStreamDisplay.vue_vue_type_script_setup_true_lang-DbN5kS19.js} +1 -1
- package/dist/assets/{ToolWorkshopPage-BEFjvNVE.js → ToolWorkshopPage-UupUHgP6.js} +1 -1
- package/dist/assets/{agent-store-tglPObkH.js → agent-store-Bmti9EJM.js} +1 -1
- package/dist/assets/generate-service-BdGdFlEd.js +3 -0
- package/dist/assets/{google-auth-store-pjk41Wop.js → google-auth-store-9fvZi3sc.js} +1 -1
- package/dist/assets/index-BQSbu0e6.css +1 -0
- package/dist/assets/{index-Cq76cPsM.js → index-Co0VhPSQ.js} +1 -1
- package/dist/assets/index-DVVzacEJ.js +6 -0
- package/dist/assets/{metrics-store-oAZX_4PZ.js → metrics-store-CcJejDWm.js} +1 -1
- package/dist/assets/{rag-store-D6KNr_hW.js → rag-store-D6-tUXow.js} +1 -1
- package/dist/assets/{storage-store-D4WuNdQB.js → storage-store-C2BSRTMJ.js} +1 -1
- package/dist/assets/{stream-handler-_fccIkW6.js → stream-handler-DcWLXVUd.js} +1 -1
- package/dist/assets/{tool-workshop-store-Dz7QH2FM.js → tool-workshop-store-CvimeN9w.js} +1 -1
- package/dist/assets/{toolcall-store-BFoy2Mdx.js → toolcall-store-DxrTJwPf.js} +1 -1
- package/dist/assets/{trash-2-CbznmmWI.js → trash-2-CKMNSCOl.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +2 -1
- package/dist/assets/ComparisonPage-nfG681cT.js +0 -1
- package/dist/assets/SettingsPage-CpDVuxxG.js +0 -1
- package/dist/assets/generate-service-UqpNGQas.js +0 -3
- package/dist/assets/index-CCnJ2vPZ.css +0 -1
- package/dist/assets/index-DVvWJgFn.js +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as v,r as y,a as f,b,e as l,f as u,t as c,i as g,g as h,j as d,h as M}from"./index-
|
|
1
|
+
import{d as v,r as y,a as f,b,e as l,f as u,t as c,i as g,g as h,j as d,h as M}from"./index-DVVzacEJ.js";import{a as k}from"./agent-store-Bmti9EJM.js";const V=v("prompt",()=>{const e=y(new Map);function n(a){return e.value.get(a)??null}function t(a){return e.value.get(a)?.sections??[]}function s(a,o){e.value.set(a,o)}return{anatomyBySession:e,getAnatomy:n,getSections:t,setAnatomy:s}});function x(e){const n=Math.max(0,Math.min(1,e));if(n>=.7){const t=(n-.7)/.3;return`rgb(${Math.round(74*(1-t))}, 222, 128)`}else if(n>=.4){const t=(n-.4)/.3,s=Math.round(163+59*t);return`rgb(${Math.round(251-177*t)}, ${s}, ${Math.round(36+92*t)})`}else{const t=n/.4;return`rgb(248, ${Math.round(113*t)}, ${Math.round(113*t)})`}}function j(e,n){if(n<=0)return x(.5);const t=e/n,s=Math.max(0,Math.min(1,1-(t-.5)/2));return x(s)}const z={system:"#818cf8",user:"#a855f7",context:"#a78bfa",tools:"#fb923c",memory:"#4ade80",examples:"#fbbf24",instructions:"#f472b6",unknown:"#94a3b8"},D={start:"#4ade80",llm_call:"#a855f7",tool_call:"#fb923c",decision:"#a78bfa",output:"#4ade80",error:"#f87171"};function E(e){const n=k(),t=f(()=>n.getTokens(e.value)),s=f(()=>{const r=t.value;if(r.length===0)return{min:0,max:1,median:.5};const i=r.map(m=>m.confidence).sort((m,p)=>m-p);return{min:i[0],max:i[i.length-1],median:i[Math.floor(i.length/2)]}});function a(r){return x(r)}function o(r){return r>=.7?"high":r>=.4?"medium":"low"}return{tokens:t,confidenceRange:s,getColor:a,getConfidenceLabel:o}}const C={class:"rounded-lg border border-border-default bg-surface-raised p-4"},w={class:"text-xs font-medium text-text-muted uppercase tracking-wide"},_={class:"mt-1 flex items-baseline gap-1"},$={class:"text-2xl font-bold text-text-primary"},S={key:0,class:"text-sm text-text-secondary"},F=b({__name:"MetricCard",props:{label:{},value:{},unit:{},trend:{}},setup(e){return(n,t)=>(d(),l("div",C,[u("div",w,c(e.label),1),u("div",_,[u("span",$,c(e.value),1),e.unit?(d(),l("span",S,c(e.unit),1)):g("",!0)]),e.trend!==void 0?(d(),l("div",{key:0,class:h(["mt-1 text-xs",e.trend>=0?"text-success":"text-error"])},c(e.trend>=0?"↑":"↓")+" "+c(Math.abs(e.trend).toFixed(1))+"% ",3)):g("",!0)]))}}),T=["title"],B={key:0,class:"relative me-1.5 flex h-2 w-2"},L=b({__name:"StatusBadge",props:{status:{},detail:{}},setup(e){const n=e,t=f(()=>["streaming","executing","running"].includes(n.status)),s=f(()=>({idle:"bg-surface-overlay text-text-muted",streaming:"bg-accent/20 text-accent",completed:"bg-success/20 text-success",error:"bg-error/20 text-error",cancelled:"bg-warning/20 text-warning",pending:"bg-surface-overlay text-text-muted",executing:"bg-accent/20 text-accent",failed:"bg-error/20 text-error",running:"bg-accent/20 text-accent",partial:"bg-warning/20 text-warning"})[n.status]??"bg-surface-overlay text-text-muted");return(a,o)=>(d(),l("span",{class:h(["relative inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium",s.value]),title:e.detail},[t.value?(d(),l("span",B,[...o[0]||(o[0]=[u("span",{class:"absolute inline-flex h-full w-full rounded-full bg-current opacity-75",style:{animation:"ripple 1.5s ease-out infinite"}},null,-1),u("span",{class:"relative inline-flex h-2 w-2 rounded-full bg-current"},null,-1)])])):g("",!0),M(" "+c(e.status),1)],10,T))}});export{L as _,E as a,F as b,x as c,j as l,D as n,z as s,V as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as u}from"./format-BqVZ9rwM.js";import{b as x,e as s,f as n,t,h as v,u as i,i as m,F as b,k,l as f,g as h,a as d,j as l}from"./index-
|
|
1
|
+
import{b as u}from"./format-BqVZ9rwM.js";import{b as x,e as s,f as n,t,h as v,u as i,i as m,F as b,k,l as f,g as h,a as d,j as l}from"./index-DVVzacEJ.js";const w={class:"space-y-1.5"},B={key:0,class:"flex items-center justify-between text-xs"},p={class:"text-text-secondary"},C={class:"text-text-muted"},S={class:"ms-1"},$={key:0,class:"flex h-full"},j=["title"],M={key:1,class:"flex items-center justify-between text-[10px] text-text-muted"},F=x({__name:"StorageGauge",props:{used:{},total:{},label:{},animating:{type:Boolean,default:!1},segments:{},compact:{type:Boolean,default:!1}},setup(e){const a=e,o=d(()=>a.total<=0?0:Math.min(Math.round(a.used/a.total*100),100)),y=d(()=>o.value>85?"bg-error":o.value>60?"bg-warning":"bg-success"),g=d(()=>!a.segments||a.total<=0?[]:a.segments.map(c=>({...c,width:Math.max(c.bytes/a.total*100,.5)})));return(c,N)=>(l(),s("div",w,[e.compact?m("",!0):(l(),s("div",B,[n("span",p,t(e.label??"Storage"),1),n("span",C,[v(t(i(u)(e.used))+" / "+t(i(u)(e.total))+" ",1),n("span",S,"("+t(o.value)+"%)",1)])])),n("div",{class:h(["h-2 rounded-full bg-surface-overlay overflow-hidden",{"animate-storage-pulse":e.animating}])},[e.segments&&e.segments.length>0?(l(),s("div",$,[(l(!0),s(b,null,k(g.value,r=>(l(),s("div",{key:r.name,class:"h-full transition-all duration-500 first:rounded-s-full last:rounded-e-full",style:f({width:`${r.width}%`,backgroundColor:r.color}),title:`${r.name}: ${i(u)(r.bytes)}`},null,12,j))),128))])):(l(),s("div",{key:1,class:h(["h-full rounded-full transition-all duration-500",y.value]),style:f({width:`${o.value}%`})},null,6))],2),e.compact?(l(),s("div",M,[n("span",null,t(e.label),1),n("span",null,t(i(u)(e.used))+" / "+t(i(u)(e.total))+" ("+t(o.value)+"%)",1)])):m("",!0)]))}});export{F as _};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import{c as U,b as A,e as r,f as t,t as e,u as l,i as u,F as _,k as g,l as D,a as $,j as o,A as N,B as G,P as H,p as Q,h as p,g as k,q as V,r as B,o as P,_ as M}from"./index-DVvWJgFn.js";import{u as J}from"./metrics-store-oAZX_4PZ.js";import{b as m}from"./format-BqVZ9rwM.js";import{u as K}from"./storage-store-D4WuNdQB.js";import{_ as W}from"./StorageGauge.vue_vue_type_style_index_0_lang-CLdARZMv.js";const X=U("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);async function Y(){try{const x=await fetch("/__system-info");return x.ok?await x.json():null}catch{return null}}const Z={class:"rounded-lg border border-border-default bg-surface p-3 space-y-2.5"},tt={class:"flex items-center justify-between"},et={class:"flex items-center gap-2"},st={class:"text-sm"},at={class:"text-xs font-medium text-text-primary"},ot={class:"flex items-center gap-2"},rt={class:"text-[10px] font-medium text-text-secondary"},nt=["title"],lt={key:0,class:"h-1.5 rounded-full bg-surface-overlay overflow-hidden"},dt={class:"flex h-full"},it=["title"],ct={key:1,class:"h-1.5 rounded-full bg-surface-overlay"},ut={class:"flex items-center justify-between text-[10px] text-text-muted"},mt={key:2,class:"space-y-1"},xt={class:"flex-1 text-text-muted"},pt={class:"text-text-muted"},yt={class:"text-text-secondary w-14 text-end"},_t={key:3,class:"text-[10px] text-text-muted italic"},ht=A({__name:"StorageBreakdownCard",props:{database:{}},emits:["clear"],setup(x,{emit:S}){const v=x,c=S,h=["#8b5cf6","#06b6d4","#f59e0b","#10b981","#f43f5e"],E=$(()=>v.database.stores.filter(y=>y.bytes>0).map((y,f)=>({name:y.name,bytes:y.bytes,color:h[f%h.length]})));return(y,f)=>(o(),r("div",Z,[t("div",tt,[t("div",et,[t("span",st,e(x.database.icon),1),t("span",at,e(x.database.label),1)]),t("div",ot,[t("span",rt,e(l(m)(x.database.totalBytes)),1),x.database.totalBytes>0?(o(),r("button",{key:0,class:"rounded px-1.5 py-0.5 text-[9px] text-text-muted hover:text-error hover:bg-error/10 transition-colors",title:y.$t("system.browserStorage.clearAll"),onClick:f[0]||(f[0]=i=>c("clear",x.database.id))},e(y.$t("common.actions.clear")),9,nt)):u("",!0)])]),x.database.totalBytes>0?(o(),r("div",lt,[t("div",dt,[(o(!0),r(_,null,g(E.value,i=>(o(),r("div",{key:i.name,class:"h-full transition-all duration-500 first:rounded-s-full last:rounded-e-full",style:D({width:`${i.bytes/x.database.totalBytes*100}%`,backgroundColor:i.color}),title:`${i.name}: ${l(m)(i.bytes)}`},null,12,it))),128))])])):(o(),r("div",ct)),t("div",ut,[t("span",null,e(x.database.recordCount.toLocaleString())+" records",1),t("span",null,e(x.database.type==="indexeddb"?"IndexedDB":"External"),1)]),x.database.stores.some(i=>i.count>0)?(o(),r("div",mt,[(o(!0),r(_,null,g(x.database.stores.filter(i=>i.count>0),(i,d)=>(o(),r("div",{key:i.name,class:"flex items-center gap-2 text-[10px]"},[t("span",{class:"h-2 w-2 shrink-0 rounded-full",style:D({backgroundColor:h[d%h.length]})},null,4),t("span",xt,e(i.name),1),t("span",pt,e(i.count),1),t("span",yt,e(l(m)(i.bytes)),1)]))),128))])):(o(),r("p",_t,e(y.$t("system.browserStorage.empty")),1))]))}}),ft={class:"max-w-4xl space-y-6"},vt={class:"flex items-center justify-between"},gt={class:"text-lg font-semibold text-text-primary"},bt={class:"text-xs text-text-muted mt-0.5"},$t={key:0,class:"flex flex-col items-center justify-center py-16 gap-4"},wt={class:"text-sm text-text-secondary"},Bt={class:"text-[10px] text-text-muted"},kt={key:1,class:"rounded-lg border border-border-default bg-surface-raised p-4 text-xs text-text-muted"},Mt={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},St={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},zt={class:"text-sm font-medium text-text-primary flex items-center gap-2"},Ct={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},Dt={class:"text-text-muted"},Et={class:"text-text-primary"},It={class:"text-text-muted"},Lt={class:"text-text-primary"},Rt={class:"text-text-muted"},Tt={class:"text-text-primary"},Vt={class:"text-text-muted"},Pt={class:"text-text-primary"},At={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Ot={class:"text-sm font-medium text-text-primary flex items-center gap-2"},jt={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},Ft={class:"text-text-muted"},qt={class:"text-text-primary"},Ut={class:"text-text-muted"},Nt={class:"text-text-primary"},Gt={class:"text-text-muted"},Ht={class:"text-text-primary"},Qt={class:"text-text-muted"},Jt={class:"text-text-primary"},Kt={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Wt={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Xt={class:"text-sm font-medium text-text-primary flex items-center gap-2"},Yt={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},Zt={class:"text-text-muted"},te={class:"text-text-primary"},ee={class:"text-text-muted"},se={class:"text-text-primary"},ae={class:"text-text-muted"},oe={class:"text-text-primary"},re={class:"text-text-muted"},ne={class:"text-text-primary"},le={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},de={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ie={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},ce={class:"text-text-muted"},ue={class:"text-text-primary"},me={class:"text-text-muted"},xe={class:"text-text-primary"},pe={class:"text-text-muted"},ye={class:"text-text-primary"},_e={class:"h-2 rounded-full bg-surface-overlay overflow-hidden"},he={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},fe={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ve={class:"text-text-muted"},ge={class:"text-text-primary"},be={class:"text-text-muted"},$e={class:"text-text-primary"},we={class:"text-text-muted"},Be={class:"text-text-primary"},ke={key:1,class:"col-span-2 border-b border-border-default/50 my-1"},Me={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Se={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ze={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},Ce={class:"text-text-muted"},De={class:"text-text-primary"},Ee={class:"text-text-muted"},Ie={class:"text-text-primary"},Le={class:"text-text-muted"},Re={class:"text-text-primary"},Te={class:"text-text-muted"},Ve={class:"text-text-primary"},Pe={class:"h-2 rounded-full bg-surface-overlay overflow-hidden"},Ae={key:0,class:"border-b border-border-default/50"},Oe={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-4"},je={class:"flex items-center justify-between"},Fe={class:"text-sm font-medium text-text-primary flex items-center gap-2"},qe={class:"flex items-center gap-2"},Ue={key:2,class:"text-[10px] text-text-muted"},Ne={key:1,class:"grid grid-cols-1 md:grid-cols-2 gap-3"},Ge={key:2,class:"text-[9px] text-text-muted"},He={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Qe={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Je={class:"text-sm font-medium text-text-primary flex items-center gap-2"},Ke={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},We={class:"text-text-muted"},Xe={class:"flex items-center gap-1.5"},Ye={class:"text-text-muted"},Ze={class:"text-text-primary"},ts={class:"text-text-muted"},es={class:"text-text-primary"},ss={class:"text-text-muted"},as={class:"text-text-primary"},os={class:"text-text-muted"},rs={class:"text-text-primary"},ns={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},ls={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ds={class:"text-[10px] text-text-muted font-normal"},is={key:0,class:"text-xs text-text-muted py-2"},cs={key:1,class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},us={class:"text-text-muted"},ms={class:"text-text-primary font-medium"},xs={class:"text-text-muted"},ps={class:"text-accent font-medium"},ys={class:"text-text-muted"},_s={class:"text-text-primary font-medium"},hs={class:"text-text-muted"},fs={class:"text-text-primary font-medium"},vs={key:2,class:"flex flex-wrap gap-1.5 pt-1"},gs={class:"text-[10px] text-text-muted me-1"},bs={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},$s={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ws={key:0,class:"text-xs text-text-muted py-2"},Bs={key:1,class:"space-y-2"},ks={class:"flex gap-4 text-xs text-text-secondary"},Ms={key:0},Ss={class:"text-accent font-medium"},zs={key:1},Cs={class:"text-text-primary font-medium"},Ds={class:"text-text-primary font-medium"},Es={class:"flex-1 min-w-0"},Is={class:"text-sm font-medium text-text-primary truncate"},Ls={class:"text-xs text-text-muted"},Rs={class:"text-end text-xs space-y-0.5 shrink-0"},Ts={key:0},Vs={class:"text-text-muted"},Ps={class:"ms-1.5 text-accent font-medium"},As={key:1},Os={class:"text-text-muted"},js={class:"ms-1.5 text-text-primary font-medium"},Fs={class:"text-text-muted"},qs={class:"ms-1.5 text-text-secondary"},Us=["title"],Ns={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Gs={class:"text-sm font-medium text-text-primary flex items-center gap-2"},Hs={key:0,class:"text-xs text-text-muted py-2"},Qs={key:1,class:"overflow-x-auto"},Js={class:"w-full text-xs"},Ks={class:"border-b border-border-default text-text-muted"},Ws={class:"text-start py-1.5 pe-4 font-medium"},Xs={class:"text-start py-1.5 pe-4 font-medium"},Ys={class:"text-start py-1.5 pe-4 font-medium"},Zs={class:"text-start py-1.5 pe-4 font-medium"},ta={class:"text-end py-1.5 font-medium"},ea={class:"py-1.5 pe-4 text-text-primary font-medium"},sa={class:"py-1.5 pe-4 text-text-secondary"},aa={class:"py-1.5 pe-4 text-text-secondary"},oa={class:"py-1.5 pe-4 text-text-secondary"},ra={class:"py-1.5 text-end text-text-secondary"},ua=A({__name:"SystemPage",setup(x){const S=J(),v=N(),c=K(),h=B(null);async function E(s){if(h.value===s){const n={rag:()=>M(()=>import("./vector-db-ChAzHl5A.js"),[]).then(a=>a.vectorDB.clear()),conversations:()=>M(()=>import("./index-DVvWJgFn.js").then(a=>a.aq),__vite__mapDeps([0,1])).then(a=>a.conversationDB.clear()),benchmarks:()=>M(()=>import("./benchmark-db-D8D5Wf9h.js"),[]).then(a=>a.benchmarkDB.clear()),"message-memory":()=>M(()=>import("./message-memory-db-C3Ifhs2B.js"),[]).then(a=>a.messageMemoryDB.clear()),"canvas-ai":()=>M(()=>import("./canvas-ai-db-BolM-_G7.js"),[]).then(a=>a.canvasAiDB.clear())};try{await n[s]?.(),await c.refresh()}catch(a){console.error(`Failed to clear database ${s}:`,a)}h.value=null}else h.value=s,setTimeout(()=>{h.value===s&&(h.value=null)},3e3)}const y=B(null),f=B(!1),i=B([]),d=B(null),z=B(!0),O=$(()=>v.models.reduce((s,n)=>s+n.size,0)),I=$(()=>i.value.reduce((s,n)=>s+n.size_vram,0)),L=$(()=>i.value.reduce((s,n)=>s+(n.size-n.size_vram),0)),b=$(()=>S.aggregate),j=$(()=>{if(!d.value)return"";const s=d.value.cpu.maxClockMhz;return s>=1e3?`${(s/1e3).toFixed(2)} GHz`:`${s} MHz`}),C=$(()=>{if(!d.value)return 0;const{totalBytes:s,freeBytes:n}=d.value.memory;return s>0?Math.round((s-n)/s*100):0});let R=null;async function F(){try{y.value=await P.version(),f.value=!0}catch{f.value=!1,y.value=null}try{i.value=await P.ps()}catch{i.value=[]}}async function T(){await Promise.all([F(),Y().then(s=>{s&&(d.value=s)}),c.refreshIfStale(3e4)])}function q(s){const n=new Date(s).getTime()-Date.now();if(n<=0)return"expiring...";const a=Math.floor(n/6e4);return a<1?"< 1 min":a<60?`${a} min`:`${Math.floor(a/60)}h ${a%60}m`}return G(async()=>{z.value=!0,await T(),z.value=!1,v.models.length===0&&await v.fetchModels(),S.recalculateAggregate(),R=setInterval(T,5e3)}),H(()=>{R&&clearInterval(R)}),(s,n)=>(o(),r("div",ft,[t("div",vt,[t("div",null,[t("h2",gt,e(s.$t("system.title")),1),t("p",bt,e(s.$t("system.subtitle")),1)]),t("button",{class:"rounded-lg bg-surface-overlay px-3 py-1.5 text-xs text-text-secondary hover:bg-border-default transition-colors",onClick:T},e(s.$t("system.refresh")),1)]),z.value&&!d.value?(o(),r("div",$t,[Q(l(X),{class:"h-10 w-10 animate-spin text-accent"}),t("p",wt,e(s.$t("system.detecting")),1),t("p",Bt,e(s.$t("system.detectingDetail")),1)])):u("",!0),!z.value&&!d.value?(o(),r("div",kt,e(s.$t("system.unavailable")),1)):u("",!0),d.value?(o(),r(_,{key:2},[t("div",Mt,[t("div",St,[t("h3",zt,[n[1]||(n[1]=t("span",{class:"text-base"},"🖥",-1)),p(" "+e(s.$t("system.os.title")),1)]),t("div",Ct,[t("span",Dt,e(s.$t("system.os.os")),1),t("span",Et,e(d.value.os.name),1),t("span",It,e(s.$t("system.os.version")),1),t("span",Lt,e(d.value.os.version),1),t("span",Rt,e(s.$t("system.os.build")),1),t("span",Tt,e(d.value.os.build||"—"),1),t("span",Vt,e(s.$t("system.os.architecture")),1),t("span",Pt,e(d.value.os.arch),1)])]),t("div",At,[t("h3",Ot,[n[2]||(n[2]=t("span",{class:"text-base"},"💻",-1)),p(" "+e(s.$t("system.device.title")),1)]),t("div",jt,[t("span",Ft,e(s.$t("system.device.name")),1),t("span",qt,e(d.value.device.name),1),t("span",Ut,e(s.$t("system.device.manufacturer")),1),t("span",Nt,e(d.value.device.manufacturer||"—"),1),t("span",Gt,e(s.$t("system.device.model")),1),t("span",Ht,e(d.value.device.model||"—"),1),d.value.device.family?(o(),r(_,{key:0},[t("span",Qt,e(s.$t("system.device.family")),1),t("span",Jt,e(d.value.device.family),1)],64)):u("",!0)])])]),t("div",Kt,[t("div",Wt,[t("h3",Xt,[n[3]||(n[3]=t("span",{class:"text-base"},"⚙",-1)),p(" "+e(s.$t("system.cpu.title")),1)]),t("div",Yt,[t("span",Zt,e(s.$t("system.cpu.cpu")),1),t("span",te,e(d.value.cpu.name),1),t("span",ee,e(s.$t("system.cpu.physicalCores")),1),t("span",se,e(d.value.cpu.cores),1),t("span",ae,e(s.$t("system.cpu.logicalProcessors")),1),t("span",oe,e(d.value.cpu.logicalProcessors),1),t("span",re,e(s.$t("system.cpu.maxClock")),1),t("span",ne,e(j.value),1)])]),t("div",le,[t("h3",de,[n[4]||(n[4]=t("span",{class:"text-base"},"🧠",-1)),p(" "+e(s.$t("system.memory.title")),1)]),t("div",ie,[t("span",ce,e(s.$t("system.memory.totalRam")),1),t("span",ue,e(l(m)(d.value.memory.totalBytes)),1),t("span",me,e(s.$t("system.memory.available")),1),t("span",xe,e(l(m)(d.value.memory.freeBytes)),1),t("span",pe,e(s.$t("system.memory.inUse")),1),t("span",ye,e(l(m)(d.value.memory.totalBytes-d.value.memory.freeBytes))+" ("+e(C.value)+"%)",1)]),t("div",_e,[t("div",{class:k(["h-full rounded-full transition-all duration-500",C.value>85?"bg-error":C.value>60?"bg-warning":"bg-success"]),style:D({width:`${C.value}%`})},null,6)])])]),t("div",he,[t("h3",fe,[n[5]||(n[5]=t("span",{class:"text-base"},"🎮",-1)),p(" "+e(s.$t("system.gpu.title")),1)]),(o(!0),r(_,null,g(d.value.gpu,(a,w)=>(o(),r("div",{key:w,class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},[t("span",ve,e(s.$t("system.gpu.gpu"))+" "+e(d.value.gpu.length>1?w+1:""),1),t("span",ge,e(a.name),1),t("span",be,e(s.$t("system.gpu.adapterRam")),1),t("span",$e,e(a.adapterRamBytes>0?l(m)(a.adapterRamBytes):s.$t("system.gpu.sharedNotReported")),1),a.driverVersion?(o(),r(_,{key:0},[t("span",we,e(s.$t("system.gpu.driver")),1),t("span",Be,e(a.driverVersion),1)],64)):u("",!0),w<d.value.gpu.length-1?(o(),r("div",ke)):u("",!0)]))),128))]),t("div",Me,[t("h3",Se,[n[6]||(n[6]=t("span",{class:"text-base"},"💾",-1)),p(" "+e(s.$t("system.storage.title")),1)]),(o(!0),r(_,null,g(d.value.storage,(a,w)=>(o(),r("div",{key:w,class:"space-y-2"},[t("div",ze,[t("span",Ce,e(s.$t("system.storage.drive")),1),t("span",De,e(a.drive),1),t("span",Ee,e(s.$t("system.storage.total")),1),t("span",Ie,e(l(m)(a.totalBytes)),1),t("span",Le,e(s.$t("system.storage.free")),1),t("span",Re,e(l(m)(a.freeBytes)),1),t("span",Te,e(s.$t("system.storage.used")),1),t("span",Ve,e(l(m)(a.totalBytes-a.freeBytes))+" ("+e(a.totalBytes>0?Math.round((a.totalBytes-a.freeBytes)/a.totalBytes*100):0)+"%) ",1)]),t("div",Pe,[t("div",{class:k(["h-full rounded-full transition-all duration-500",a.totalBytes>0&&(a.totalBytes-a.freeBytes)/a.totalBytes>.85?"bg-error":(a.totalBytes-a.freeBytes)/a.totalBytes>.6?"bg-warning":"bg-success"]),style:D({width:`${a.totalBytes>0?(a.totalBytes-a.freeBytes)/a.totalBytes*100:0}%`})},null,6)]),w<d.value.storage.length-1?(o(),r("div",Ae)):u("",!0)]))),128))])],64)):u("",!0),t("div",Oe,[t("div",je,[t("h3",Fe,[n[7]||(n[7]=t("span",{class:"text-base"},"📀",-1)),p(" "+e(s.$t("system.browserStorage.title")),1)]),t("div",qe,[l(c).origin?(o(),r("span",{key:0,class:k(["rounded-full px-2 py-0.5 text-[9px]",l(c).origin.persisted?"bg-success/10 text-success":"bg-warning/10 text-warning"])},e(l(c).origin.persisted?s.$t("system.browserStorage.persistent"):s.$t("system.browserStorage.bestEffort")),3)):u("",!0),l(c).loading?(o(),r("span",Ue,e(s.$t("system.browserStorage.scanning")),1)):(o(),r("button",{key:1,class:"text-[10px] text-text-muted hover:text-text-primary transition-colors",onClick:n[0]||(n[0]=a=>l(c).refresh())},e(s.$t("system.refresh")),1))])]),l(c).origin?(o(),V(W,{key:0,used:l(c).origin.usage,total:l(c).origin.quota,label:s.$t("system.browserStorage.indexedDbQuota")},null,8,["used","total","label"])):u("",!0),l(c).databases.length>0?(o(),r("div",Ne,[(o(!0),r(_,null,g(l(c).databases,a=>(o(),V(ht,{key:a.id,database:a,onClear:E},null,8,["database"]))),128))])):u("",!0),l(c).databases.length>0?(o(),r("p",Ge,e(s.$t("system.browserStorage.totalRecords",{count:l(c).totalRecordCount.toLocaleString(),databases:l(c).databases.length})),1)):u("",!0)]),t("div",He,[t("div",Qe,[t("h3",Je,[n[8]||(n[8]=t("span",{class:"text-base"},"⚡",-1)),p(" "+e(s.$t("system.ollama.title")),1)]),t("div",Ke,[t("span",We,e(s.$t("system.ollama.status")),1),t("span",Xe,[t("span",{class:k(["inline-block h-2 w-2 rounded-full",f.value?"bg-success":"bg-error"])},null,2),t("span",{class:k(f.value?"text-success":"text-error")},e(f.value?s.$t("common.status.connected"):s.$t("common.status.disconnected")),3)]),t("span",Ye,e(s.$t("system.ollama.version")),1),t("span",Ze,e(y.value??"—"),1),t("span",ts,e(s.$t("system.ollama.installedModels")),1),t("span",es,e(l(v).models.length),1),t("span",ss,e(s.$t("system.ollama.totalModelStorage")),1),t("span",as,e(l(m)(O.value)),1),t("span",os,e(s.$t("system.ollama.modelsLoaded")),1),t("span",rs,e(i.value.length),1)])]),t("div",ns,[t("h3",ls,[n[9]||(n[9]=t("span",{class:"text-base"},"📊",-1)),p(" "+e(s.$t("system.inference.title"))+" ",1),t("span",ds,"("+e(s.$t("system.inference.thisSession"))+")",1)]),b.value.totalSessions===0?(o(),r("div",is,e(s.$t("system.inference.noSessions")),1)):(o(),r("div",cs,[t("span",us,e(s.$t("system.inference.sessions")),1),t("span",ms,e(b.value.totalSessions),1),t("span",xs,e(s.$t("system.inference.avgSpeed")),1),t("span",ps,e(b.value.avgTps.toFixed(1))+" tok/s",1),t("span",ys,e(s.$t("system.inference.tokensGenerated")),1),t("span",_s,e(b.value.totalTokensGenerated.toLocaleString()),1),t("span",hs,e(s.$t("system.inference.avgTtft")),1),t("span",fs,e(b.value.avgTtftMs.toFixed(0))+" ms",1)])),b.value.modelsUsed.length>0?(o(),r("div",vs,[t("span",gs,e(s.$t("system.inference.modelsUsed"))+":",1),(o(!0),r(_,null,g(b.value.modelsUsed,a=>(o(),r("span",{key:a,class:"rounded-full bg-surface-overlay px-2 py-0.5 text-[10px] text-text-secondary"},e(a),1))),128))])):u("",!0)])]),t("div",bs,[t("h3",$s,[n[10]||(n[10]=t("span",{class:"text-base"},"⚡",-1)),p(" "+e(s.$t("system.activeModels.title")),1)]),i.value.length===0?(o(),r("div",ws,e(s.$t("system.activeModels.noModels")),1)):(o(),r("div",Bs,[t("div",ks,[I.value>0?(o(),r("span",Ms,[p(e(s.$t("system.activeModels.vram"))+": ",1),t("span",Ss,e(l(m)(I.value)),1)])):u("",!0),L.value>0?(o(),r("span",zs,[p(e(s.$t("system.activeModels.ram"))+": ",1),t("span",Cs,e(l(m)(L.value)),1)])):u("",!0),t("span",null,[p(e(s.$t("system.activeModels.total"))+": ",1),t("span",Ds,e(l(m)(I.value+L.value)),1)])]),(o(!0),r(_,null,g(i.value,a=>(o(),r("div",{key:a.digest,class:"flex items-center gap-4 rounded-lg bg-surface px-4 py-3 border border-border-default"},[t("div",Es,[t("p",Is,e(a.name),1),t("p",Ls,e(a.details.parameter_size)+" · "+e(a.details.quantization_level)+" · "+e(a.details.family),1)]),t("div",Rs,[a.size_vram>0?(o(),r("p",Ts,[t("span",Vs,e(s.$t("system.activeModels.vram")),1),t("span",Ps,e(l(m)(a.size_vram)),1)])):u("",!0),a.size-a.size_vram>0?(o(),r("p",As,[t("span",Os,e(s.$t("system.activeModels.ram")),1),t("span",js,e(l(m)(a.size-a.size_vram)),1)])):u("",!0),t("p",null,[t("span",Fs,e(s.$t("system.activeModels.ctx")),1),t("span",qs,e(a.context_length.toLocaleString()),1)])]),t("div",{class:"text-xs text-text-muted shrink-0 w-16 text-end",title:a.expires_at},e(q(a.expires_at)),9,Us)]))),128))]))]),t("div",Ns,[t("h3",Gs,[n[11]||(n[11]=t("span",{class:"text-base"},"📦",-1)),p(" "+e(s.$t("system.installedModels.title")),1)]),l(v).models.length===0?(o(),r("div",Hs,e(s.$t("system.installedModels.noModels")),1)):(o(),r("div",Qs,[t("table",Js,[t("thead",null,[t("tr",Ks,[t("th",Ws,e(s.$t("system.installedModels.model")),1),t("th",Xs,e(s.$t("system.installedModels.family")),1),t("th",Ys,e(s.$t("system.installedModels.parameters")),1),t("th",Zs,e(s.$t("system.installedModels.quantization")),1),t("th",ta,e(s.$t("system.installedModels.size")),1)])]),t("tbody",null,[(o(!0),r(_,null,g(l(v).models,a=>(o(),r("tr",{key:a.name,class:"border-b border-border-default/50"},[t("td",ea,e(a.name),1),t("td",sa,e(a.details.family),1),t("td",aa,e(a.details.parameter_size),1),t("td",oa,e(a.details.quantization_level),1),t("td",ra,e(l(m)(a.size)),1)]))),128))])])]))])]))}});export{ua as default};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DVVzacEJ.js","assets/index-BQSbu0e6.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{c as U,b as A,e as r,f as t,t as e,u as l,i as u,F as _,k as g,l as D,a as $,j as o,A as N,B as G,R as H,p as Q,h as p,g as k,q as V,r as B,o as P,_ as M}from"./index-DVVzacEJ.js";import{u as J}from"./metrics-store-CcJejDWm.js";import{b as m}from"./format-BqVZ9rwM.js";import{u as K}from"./storage-store-C2BSRTMJ.js";import{_ as W}from"./StorageGauge.vue_vue_type_style_index_0_lang-Cww3ylyV.js";const X=U("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);async function Y(){try{const x=await fetch("/__system-info");return x.ok?await x.json():null}catch{return null}}const Z={class:"rounded-lg border border-border-default bg-surface p-3 space-y-2.5"},tt={class:"flex items-center justify-between"},et={class:"flex items-center gap-2"},st={class:"text-sm"},at={class:"text-xs font-medium text-text-primary"},ot={class:"flex items-center gap-2"},rt={class:"text-[10px] font-medium text-text-secondary"},nt=["title"],lt={key:0,class:"h-1.5 rounded-full bg-surface-overlay overflow-hidden"},dt={class:"flex h-full"},it=["title"],ct={key:1,class:"h-1.5 rounded-full bg-surface-overlay"},ut={class:"flex items-center justify-between text-[10px] text-text-muted"},mt={key:2,class:"space-y-1"},xt={class:"flex-1 text-text-muted"},pt={class:"text-text-muted"},yt={class:"text-text-secondary w-14 text-end"},_t={key:3,class:"text-[10px] text-text-muted italic"},ht=A({__name:"StorageBreakdownCard",props:{database:{}},emits:["clear"],setup(x,{emit:S}){const v=x,c=S,h=["#8b5cf6","#06b6d4","#f59e0b","#10b981","#f43f5e"],R=$(()=>v.database.stores.filter(y=>y.bytes>0).map((y,f)=>({name:y.name,bytes:y.bytes,color:h[f%h.length]})));return(y,f)=>(o(),r("div",Z,[t("div",tt,[t("div",et,[t("span",st,e(x.database.icon),1),t("span",at,e(x.database.label),1)]),t("div",ot,[t("span",rt,e(l(m)(x.database.totalBytes)),1),x.database.totalBytes>0?(o(),r("button",{key:0,class:"rounded px-1.5 py-0.5 text-[9px] text-text-muted hover:text-error hover:bg-error/10 transition-colors",title:y.$t("system.browserStorage.clearAll"),onClick:f[0]||(f[0]=i=>c("clear",x.database.id))},e(y.$t("common.actions.clear")),9,nt)):u("",!0)])]),x.database.totalBytes>0?(o(),r("div",lt,[t("div",dt,[(o(!0),r(_,null,g(R.value,i=>(o(),r("div",{key:i.name,class:"h-full transition-all duration-500 first:rounded-s-full last:rounded-e-full",style:D({width:`${i.bytes/x.database.totalBytes*100}%`,backgroundColor:i.color}),title:`${i.name}: ${l(m)(i.bytes)}`},null,12,it))),128))])])):(o(),r("div",ct)),t("div",ut,[t("span",null,e(x.database.recordCount.toLocaleString())+" records",1),t("span",null,e(x.database.type==="indexeddb"?"IndexedDB":"External"),1)]),x.database.stores.some(i=>i.count>0)?(o(),r("div",mt,[(o(!0),r(_,null,g(x.database.stores.filter(i=>i.count>0),(i,d)=>(o(),r("div",{key:i.name,class:"flex items-center gap-2 text-[10px]"},[t("span",{class:"h-2 w-2 shrink-0 rounded-full",style:D({backgroundColor:h[d%h.length]})},null,4),t("span",xt,e(i.name),1),t("span",pt,e(i.count),1),t("span",yt,e(l(m)(i.bytes)),1)]))),128))])):(o(),r("p",_t,e(y.$t("system.browserStorage.empty")),1))]))}}),ft={class:"max-w-4xl space-y-6"},vt={class:"flex items-center justify-between"},gt={class:"text-lg font-semibold text-text-primary"},bt={class:"text-xs text-text-muted mt-0.5"},$t={key:0,class:"flex flex-col items-center justify-center py-16 gap-4"},wt={class:"text-sm text-text-secondary"},Bt={class:"text-[10px] text-text-muted"},kt={key:1,class:"rounded-lg border border-border-default bg-surface-raised p-4 text-xs text-text-muted"},Mt={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},St={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},zt={class:"text-sm font-medium text-text-primary flex items-center gap-2"},Ct={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},Dt={class:"text-text-muted"},Rt={class:"text-text-primary"},Et={class:"text-text-muted"},It={class:"text-text-primary"},Lt={class:"text-text-muted"},Tt={class:"text-text-primary"},Vt={class:"text-text-muted"},Pt={class:"text-text-primary"},At={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Ot={class:"text-sm font-medium text-text-primary flex items-center gap-2"},jt={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},Ft={class:"text-text-muted"},qt={class:"text-text-primary"},Ut={class:"text-text-muted"},Nt={class:"text-text-primary"},Gt={class:"text-text-muted"},Ht={class:"text-text-primary"},Qt={class:"text-text-muted"},Jt={class:"text-text-primary"},Kt={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Wt={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Xt={class:"text-sm font-medium text-text-primary flex items-center gap-2"},Yt={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},Zt={class:"text-text-muted"},te={class:"text-text-primary"},ee={class:"text-text-muted"},se={class:"text-text-primary"},ae={class:"text-text-muted"},oe={class:"text-text-primary"},re={class:"text-text-muted"},ne={class:"text-text-primary"},le={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},de={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ie={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},ce={class:"text-text-muted"},ue={class:"text-text-primary"},me={class:"text-text-muted"},xe={class:"text-text-primary"},pe={class:"text-text-muted"},ye={class:"text-text-primary"},_e={class:"h-2 rounded-full bg-surface-overlay overflow-hidden"},he={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},fe={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ve={class:"text-text-muted"},ge={class:"text-text-primary"},be={class:"text-text-muted"},$e={class:"text-text-primary"},we={class:"text-text-muted"},Be={class:"text-text-primary"},ke={key:1,class:"col-span-2 border-b border-border-default/50 my-1"},Me={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Se={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ze={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},Ce={class:"text-text-muted"},De={class:"text-text-primary"},Re={class:"text-text-muted"},Ee={class:"text-text-primary"},Ie={class:"text-text-muted"},Le={class:"text-text-primary"},Te={class:"text-text-muted"},Ve={class:"text-text-primary"},Pe={class:"h-2 rounded-full bg-surface-overlay overflow-hidden"},Ae={key:0,class:"border-b border-border-default/50"},Oe={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-4"},je={class:"flex items-center justify-between"},Fe={class:"text-sm font-medium text-text-primary flex items-center gap-2"},qe={class:"flex items-center gap-2"},Ue={key:2,class:"text-[10px] text-text-muted"},Ne={key:1,class:"grid grid-cols-1 md:grid-cols-2 gap-3"},Ge={key:2,class:"text-[9px] text-text-muted"},He={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Qe={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Je={class:"text-sm font-medium text-text-primary flex items-center gap-2"},Ke={class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},We={class:"text-text-muted"},Xe={class:"flex items-center gap-1.5"},Ye={class:"text-text-muted"},Ze={class:"text-text-primary"},ts={class:"text-text-muted"},es={class:"text-text-primary"},ss={class:"text-text-muted"},as={class:"text-text-primary"},os={class:"text-text-muted"},rs={class:"text-text-primary"},ns={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},ls={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ds={class:"text-[10px] text-text-muted font-normal"},is={key:0,class:"text-xs text-text-muted py-2"},cs={key:1,class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},us={class:"text-text-muted"},ms={class:"text-text-primary font-medium"},xs={class:"text-text-muted"},ps={class:"text-accent font-medium"},ys={class:"text-text-muted"},_s={class:"text-text-primary font-medium"},hs={class:"text-text-muted"},fs={class:"text-text-primary font-medium"},vs={key:2,class:"flex flex-wrap gap-1.5 pt-1"},gs={class:"text-[10px] text-text-muted me-1"},bs={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},$s={class:"text-sm font-medium text-text-primary flex items-center gap-2"},ws={key:0,class:"text-xs text-text-muted py-2"},Bs={key:1,class:"space-y-2"},ks={class:"flex gap-4 text-xs text-text-secondary"},Ms={key:0},Ss={class:"text-accent font-medium"},zs={key:1},Cs={class:"text-text-primary font-medium"},Ds={class:"text-text-primary font-medium"},Rs={class:"flex-1 min-w-0"},Es={class:"text-sm font-medium text-text-primary truncate"},Is={class:"text-xs text-text-muted"},Ls={class:"text-end text-xs space-y-0.5 shrink-0"},Ts={key:0},Vs={class:"text-text-muted"},Ps={class:"ms-1.5 text-accent font-medium"},As={key:1},Os={class:"text-text-muted"},js={class:"ms-1.5 text-text-primary font-medium"},Fs={class:"text-text-muted"},qs={class:"ms-1.5 text-text-secondary"},Us=["title"],Ns={class:"rounded-lg border border-border-default bg-surface-raised p-4 space-y-3"},Gs={class:"text-sm font-medium text-text-primary flex items-center gap-2"},Hs={key:0,class:"text-xs text-text-muted py-2"},Qs={key:1,class:"overflow-x-auto"},Js={class:"w-full text-xs"},Ks={class:"border-b border-border-default text-text-muted"},Ws={class:"text-start py-1.5 pe-4 font-medium"},Xs={class:"text-start py-1.5 pe-4 font-medium"},Ys={class:"text-start py-1.5 pe-4 font-medium"},Zs={class:"text-start py-1.5 pe-4 font-medium"},ta={class:"text-end py-1.5 font-medium"},ea={class:"py-1.5 pe-4 text-text-primary font-medium"},sa={class:"py-1.5 pe-4 text-text-secondary"},aa={class:"py-1.5 pe-4 text-text-secondary"},oa={class:"py-1.5 pe-4 text-text-secondary"},ra={class:"py-1.5 text-end text-text-secondary"},ua=A({__name:"SystemPage",setup(x){const S=J(),v=N(),c=K(),h=B(null);async function R(s){if(h.value===s){const n={rag:()=>M(()=>import("./vector-db-ChAzHl5A.js"),[]).then(a=>a.vectorDB.clear()),conversations:()=>M(()=>import("./index-DVVzacEJ.js").then(a=>a.aq),__vite__mapDeps([0,1])).then(a=>a.conversationDB.clear()),benchmarks:()=>M(()=>import("./benchmark-db-D8D5Wf9h.js"),[]).then(a=>a.benchmarkDB.clear()),"message-memory":()=>M(()=>import("./message-memory-db-C3Ifhs2B.js"),[]).then(a=>a.messageMemoryDB.clear()),"canvas-ai":()=>M(()=>import("./canvas-ai-db-BolM-_G7.js"),[]).then(a=>a.canvasAiDB.clear())};try{await n[s]?.(),await c.refresh()}catch(a){console.error(`Failed to clear database ${s}:`,a)}h.value=null}else h.value=s,setTimeout(()=>{h.value===s&&(h.value=null)},3e3)}const y=B(null),f=B(!1),i=B([]),d=B(null),z=B(!0),O=$(()=>v.models.reduce((s,n)=>s+n.size,0)),E=$(()=>i.value.reduce((s,n)=>s+n.size_vram,0)),I=$(()=>i.value.reduce((s,n)=>s+(n.size-n.size_vram),0)),b=$(()=>S.aggregate),j=$(()=>{if(!d.value)return"";const s=d.value.cpu.maxClockMhz;return s>=1e3?`${(s/1e3).toFixed(2)} GHz`:`${s} MHz`}),C=$(()=>{if(!d.value)return 0;const{totalBytes:s,freeBytes:n}=d.value.memory;return s>0?Math.round((s-n)/s*100):0});let L=null;async function F(){try{y.value=await P.version(),f.value=!0}catch{f.value=!1,y.value=null}try{i.value=await P.ps()}catch{i.value=[]}}async function T(){await Promise.all([F(),Y().then(s=>{s&&(d.value=s)}),c.refreshIfStale(3e4)])}function q(s){const n=new Date(s).getTime()-Date.now();if(n<=0)return"expiring...";const a=Math.floor(n/6e4);return a<1?"< 1 min":a<60?`${a} min`:`${Math.floor(a/60)}h ${a%60}m`}return G(async()=>{z.value=!0,await T(),z.value=!1,v.models.length===0&&await v.fetchModels(),S.recalculateAggregate(),L=setInterval(T,5e3)}),H(()=>{L&&clearInterval(L)}),(s,n)=>(o(),r("div",ft,[t("div",vt,[t("div",null,[t("h2",gt,e(s.$t("system.title")),1),t("p",bt,e(s.$t("system.subtitle")),1)]),t("button",{class:"rounded-lg bg-surface-overlay px-3 py-1.5 text-xs text-text-secondary hover:bg-border-default transition-colors",onClick:T},e(s.$t("system.refresh")),1)]),z.value&&!d.value?(o(),r("div",$t,[Q(l(X),{class:"h-10 w-10 animate-spin text-accent"}),t("p",wt,e(s.$t("system.detecting")),1),t("p",Bt,e(s.$t("system.detectingDetail")),1)])):u("",!0),!z.value&&!d.value?(o(),r("div",kt,e(s.$t("system.unavailable")),1)):u("",!0),d.value?(o(),r(_,{key:2},[t("div",Mt,[t("div",St,[t("h3",zt,[n[1]||(n[1]=t("span",{class:"text-base"},"🖥",-1)),p(" "+e(s.$t("system.os.title")),1)]),t("div",Ct,[t("span",Dt,e(s.$t("system.os.os")),1),t("span",Rt,e(d.value.os.name),1),t("span",Et,e(s.$t("system.os.version")),1),t("span",It,e(d.value.os.version),1),t("span",Lt,e(s.$t("system.os.build")),1),t("span",Tt,e(d.value.os.build||"—"),1),t("span",Vt,e(s.$t("system.os.architecture")),1),t("span",Pt,e(d.value.os.arch),1)])]),t("div",At,[t("h3",Ot,[n[2]||(n[2]=t("span",{class:"text-base"},"💻",-1)),p(" "+e(s.$t("system.device.title")),1)]),t("div",jt,[t("span",Ft,e(s.$t("system.device.name")),1),t("span",qt,e(d.value.device.name),1),t("span",Ut,e(s.$t("system.device.manufacturer")),1),t("span",Nt,e(d.value.device.manufacturer||"—"),1),t("span",Gt,e(s.$t("system.device.model")),1),t("span",Ht,e(d.value.device.model||"—"),1),d.value.device.family?(o(),r(_,{key:0},[t("span",Qt,e(s.$t("system.device.family")),1),t("span",Jt,e(d.value.device.family),1)],64)):u("",!0)])])]),t("div",Kt,[t("div",Wt,[t("h3",Xt,[n[3]||(n[3]=t("span",{class:"text-base"},"⚙",-1)),p(" "+e(s.$t("system.cpu.title")),1)]),t("div",Yt,[t("span",Zt,e(s.$t("system.cpu.cpu")),1),t("span",te,e(d.value.cpu.name),1),t("span",ee,e(s.$t("system.cpu.physicalCores")),1),t("span",se,e(d.value.cpu.cores),1),t("span",ae,e(s.$t("system.cpu.logicalProcessors")),1),t("span",oe,e(d.value.cpu.logicalProcessors),1),t("span",re,e(s.$t("system.cpu.maxClock")),1),t("span",ne,e(j.value),1)])]),t("div",le,[t("h3",de,[n[4]||(n[4]=t("span",{class:"text-base"},"🧠",-1)),p(" "+e(s.$t("system.memory.title")),1)]),t("div",ie,[t("span",ce,e(s.$t("system.memory.totalRam")),1),t("span",ue,e(l(m)(d.value.memory.totalBytes)),1),t("span",me,e(s.$t("system.memory.available")),1),t("span",xe,e(l(m)(d.value.memory.freeBytes)),1),t("span",pe,e(s.$t("system.memory.inUse")),1),t("span",ye,e(l(m)(d.value.memory.totalBytes-d.value.memory.freeBytes))+" ("+e(C.value)+"%)",1)]),t("div",_e,[t("div",{class:k(["h-full rounded-full transition-all duration-500",C.value>85?"bg-error":C.value>60?"bg-warning":"bg-success"]),style:D({width:`${C.value}%`})},null,6)])])]),t("div",he,[t("h3",fe,[n[5]||(n[5]=t("span",{class:"text-base"},"🎮",-1)),p(" "+e(s.$t("system.gpu.title")),1)]),(o(!0),r(_,null,g(d.value.gpu,(a,w)=>(o(),r("div",{key:w,class:"grid grid-cols-[auto_1fr] gap-y-2 gap-x-4 text-xs"},[t("span",ve,e(s.$t("system.gpu.gpu"))+" "+e(d.value.gpu.length>1?w+1:""),1),t("span",ge,e(a.name),1),t("span",be,e(s.$t("system.gpu.adapterRam")),1),t("span",$e,e(a.adapterRamBytes>0?l(m)(a.adapterRamBytes):s.$t("system.gpu.sharedNotReported")),1),a.driverVersion?(o(),r(_,{key:0},[t("span",we,e(s.$t("system.gpu.driver")),1),t("span",Be,e(a.driverVersion),1)],64)):u("",!0),w<d.value.gpu.length-1?(o(),r("div",ke)):u("",!0)]))),128))]),t("div",Me,[t("h3",Se,[n[6]||(n[6]=t("span",{class:"text-base"},"💾",-1)),p(" "+e(s.$t("system.storage.title")),1)]),(o(!0),r(_,null,g(d.value.storage,(a,w)=>(o(),r("div",{key:w,class:"space-y-2"},[t("div",ze,[t("span",Ce,e(s.$t("system.storage.drive")),1),t("span",De,e(a.drive),1),t("span",Re,e(s.$t("system.storage.total")),1),t("span",Ee,e(l(m)(a.totalBytes)),1),t("span",Ie,e(s.$t("system.storage.free")),1),t("span",Le,e(l(m)(a.freeBytes)),1),t("span",Te,e(s.$t("system.storage.used")),1),t("span",Ve,e(l(m)(a.totalBytes-a.freeBytes))+" ("+e(a.totalBytes>0?Math.round((a.totalBytes-a.freeBytes)/a.totalBytes*100):0)+"%) ",1)]),t("div",Pe,[t("div",{class:k(["h-full rounded-full transition-all duration-500",a.totalBytes>0&&(a.totalBytes-a.freeBytes)/a.totalBytes>.85?"bg-error":(a.totalBytes-a.freeBytes)/a.totalBytes>.6?"bg-warning":"bg-success"]),style:D({width:`${a.totalBytes>0?(a.totalBytes-a.freeBytes)/a.totalBytes*100:0}%`})},null,6)]),w<d.value.storage.length-1?(o(),r("div",Ae)):u("",!0)]))),128))])],64)):u("",!0),t("div",Oe,[t("div",je,[t("h3",Fe,[n[7]||(n[7]=t("span",{class:"text-base"},"📀",-1)),p(" "+e(s.$t("system.browserStorage.title")),1)]),t("div",qe,[l(c).origin?(o(),r("span",{key:0,class:k(["rounded-full px-2 py-0.5 text-[9px]",l(c).origin.persisted?"bg-success/10 text-success":"bg-warning/10 text-warning"])},e(l(c).origin.persisted?s.$t("system.browserStorage.persistent"):s.$t("system.browserStorage.bestEffort")),3)):u("",!0),l(c).loading?(o(),r("span",Ue,e(s.$t("system.browserStorage.scanning")),1)):(o(),r("button",{key:1,class:"text-[10px] text-text-muted hover:text-text-primary transition-colors",onClick:n[0]||(n[0]=a=>l(c).refresh())},e(s.$t("system.refresh")),1))])]),l(c).origin?(o(),V(W,{key:0,used:l(c).origin.usage,total:l(c).origin.quota,label:s.$t("system.browserStorage.indexedDbQuota")},null,8,["used","total","label"])):u("",!0),l(c).databases.length>0?(o(),r("div",Ne,[(o(!0),r(_,null,g(l(c).databases,a=>(o(),V(ht,{key:a.id,database:a,onClear:R},null,8,["database"]))),128))])):u("",!0),l(c).databases.length>0?(o(),r("p",Ge,e(s.$t("system.browserStorage.totalRecords",{count:l(c).totalRecordCount.toLocaleString(),databases:l(c).databases.length})),1)):u("",!0)]),t("div",He,[t("div",Qe,[t("h3",Je,[n[8]||(n[8]=t("span",{class:"text-base"},"⚡",-1)),p(" "+e(s.$t("system.ollama.title")),1)]),t("div",Ke,[t("span",We,e(s.$t("system.ollama.status")),1),t("span",Xe,[t("span",{class:k(["inline-block h-2 w-2 rounded-full",f.value?"bg-success":"bg-error"])},null,2),t("span",{class:k(f.value?"text-success":"text-error")},e(f.value?s.$t("common.status.connected"):s.$t("common.status.disconnected")),3)]),t("span",Ye,e(s.$t("system.ollama.version")),1),t("span",Ze,e(y.value??"—"),1),t("span",ts,e(s.$t("system.ollama.installedModels")),1),t("span",es,e(l(v).models.length),1),t("span",ss,e(s.$t("system.ollama.totalModelStorage")),1),t("span",as,e(l(m)(O.value)),1),t("span",os,e(s.$t("system.ollama.modelsLoaded")),1),t("span",rs,e(i.value.length),1)])]),t("div",ns,[t("h3",ls,[n[9]||(n[9]=t("span",{class:"text-base"},"📊",-1)),p(" "+e(s.$t("system.inference.title"))+" ",1),t("span",ds,"("+e(s.$t("system.inference.thisSession"))+")",1)]),b.value.totalSessions===0?(o(),r("div",is,e(s.$t("system.inference.noSessions")),1)):(o(),r("div",cs,[t("span",us,e(s.$t("system.inference.sessions")),1),t("span",ms,e(b.value.totalSessions),1),t("span",xs,e(s.$t("system.inference.avgSpeed")),1),t("span",ps,e(b.value.avgTps.toFixed(1))+" tok/s",1),t("span",ys,e(s.$t("system.inference.tokensGenerated")),1),t("span",_s,e(b.value.totalTokensGenerated.toLocaleString()),1),t("span",hs,e(s.$t("system.inference.avgTtft")),1),t("span",fs,e(b.value.avgTtftMs.toFixed(0))+" ms",1)])),b.value.modelsUsed.length>0?(o(),r("div",vs,[t("span",gs,e(s.$t("system.inference.modelsUsed"))+":",1),(o(!0),r(_,null,g(b.value.modelsUsed,a=>(o(),r("span",{key:a,class:"rounded-full bg-surface-overlay px-2 py-0.5 text-[10px] text-text-secondary"},e(a),1))),128))])):u("",!0)])]),t("div",bs,[t("h3",$s,[n[10]||(n[10]=t("span",{class:"text-base"},"⚡",-1)),p(" "+e(s.$t("system.activeModels.title")),1)]),i.value.length===0?(o(),r("div",ws,e(s.$t("system.activeModels.noModels")),1)):(o(),r("div",Bs,[t("div",ks,[E.value>0?(o(),r("span",Ms,[p(e(s.$t("system.activeModels.vram"))+": ",1),t("span",Ss,e(l(m)(E.value)),1)])):u("",!0),I.value>0?(o(),r("span",zs,[p(e(s.$t("system.activeModels.ram"))+": ",1),t("span",Cs,e(l(m)(I.value)),1)])):u("",!0),t("span",null,[p(e(s.$t("system.activeModels.total"))+": ",1),t("span",Ds,e(l(m)(E.value+I.value)),1)])]),(o(!0),r(_,null,g(i.value,a=>(o(),r("div",{key:a.digest,class:"flex items-center gap-4 rounded-lg bg-surface px-4 py-3 border border-border-default"},[t("div",Rs,[t("p",Es,e(a.name),1),t("p",Is,e(a.details.parameter_size)+" · "+e(a.details.quantization_level)+" · "+e(a.details.family),1)]),t("div",Ls,[a.size_vram>0?(o(),r("p",Ts,[t("span",Vs,e(s.$t("system.activeModels.vram")),1),t("span",Ps,e(l(m)(a.size_vram)),1)])):u("",!0),a.size-a.size_vram>0?(o(),r("p",As,[t("span",Os,e(s.$t("system.activeModels.ram")),1),t("span",js,e(l(m)(a.size-a.size_vram)),1)])):u("",!0),t("p",null,[t("span",Fs,e(s.$t("system.activeModels.ctx")),1),t("span",qs,e(a.context_length.toLocaleString()),1)])]),t("div",{class:"text-xs text-text-muted shrink-0 w-16 text-end",title:a.expires_at},e(q(a.expires_at)),9,Us)]))),128))]))]),t("div",Ns,[t("h3",Gs,[n[11]||(n[11]=t("span",{class:"text-base"},"📦",-1)),p(" "+e(s.$t("system.installedModels.title")),1)]),l(v).models.length===0?(o(),r("div",Hs,e(s.$t("system.installedModels.noModels")),1)):(o(),r("div",Qs,[t("table",Js,[t("thead",null,[t("tr",Ks,[t("th",Ws,e(s.$t("system.installedModels.model")),1),t("th",Xs,e(s.$t("system.installedModels.family")),1),t("th",Ys,e(s.$t("system.installedModels.parameters")),1),t("th",Zs,e(s.$t("system.installedModels.quantization")),1),t("th",ta,e(s.$t("system.installedModels.size")),1)])]),t("tbody",null,[(o(!0),r(_,null,g(l(v).models,a=>(o(),r("tr",{key:a.name,class:"border-b border-border-default/50"},[t("td",ea,e(a.name),1),t("td",sa,e(a.details.family),1),t("td",aa,e(a.details.parameter_size),1),t("td",oa,e(a.details.quantization_level),1),t("td",ra,e(l(m)(a.size)),1)]))),128))])])]))])]))}});export{ua as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as n,e as t,F as c,k as i,g as d,t as l,j as r}from"./index-
|
|
1
|
+
import{b as n,e as t,F as c,k as i,g as d,t as l,j as r}from"./index-DVVzacEJ.js";const b={class:"flex gap-1 border-b border-border-default"},m=["onClick"],_=n({__name:"TabBar",props:{tabs:{},activeTab:{}},emits:["update:activeTab"],setup(a,{emit:o}){const s=o;return(p,u)=>(r(),t("div",b,[(r(!0),t(c,null,i(a.tabs,e=>(r(),t("button",{key:e.key,class:d(["px-4 py-2 text-sm font-medium transition-colors border-b-2",a.activeTab===e.key?"border-accent text-accent":"border-transparent text-text-secondary hover:text-text-primary hover:border-border-default"]),onClick:x=>s("update:activeTab",e.key)},l(e.label),11,m))),128))]))}});export{_};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as x,a as B,l as M}from"./StatusBadge.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{c as x,a as B,l as M}from"./StatusBadge.vue_vue_type_script_setup_true_lang-BoFt8y4m.js";import{b as y,e as r,l as _,t as u,a as k,j as a,f as t,F as b,k as C,u as f,w as R,p as F,i as g,h as v,r as T,q as H,y as N}from"./index-DVVzacEJ.js";const S=["title"],V=y({__name:"TokenChip",props:{token:{},color:{},isLatest:{type:Boolean},heatmapMode:{}},emits:["hover","click"],setup(o){const l=o,m=k(()=>({borderBottomColor:l.color,borderBottomWidth:"3px",borderBottomStyle:"solid"}));return(e,s)=>(a(),r("span",{class:"inline cursor-pointer rounded-sm px-px text-text-primary transition-all hover:bg-surface-overlay",style:_([m.value,o.isLatest?{animation:"glow-in 1.5s ease-in-out infinite",borderRadius:"2px"}:{}]),title:`Token #${o.token.index} | Confidence: ${(o.token.confidence*100).toFixed(0)}% | Latency: ${o.token.interTokenLatencyMs}ms`,onMouseenter:s[0]||(s[0]=i=>e.$emit("hover",o.token)),onClick:s[1]||(s[1]=i=>e.$emit("click",o.token))},u(o.token.text),45,S))}}),I={class:"flex items-center gap-2 text-xs text-text-secondary"},D={class:"flex h-3 overflow-hidden rounded-sm"},W=y({__name:"ConfidenceHeatmap",setup(o){const l=[0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1];return(m,e)=>(a(),r("div",I,[e[0]||(e[0]=t("span",null,"Low",-1)),t("div",D,[(a(),r(b,null,C(l,s=>t("div",{key:s,class:"w-4 h-full",style:_({backgroundColor:f(x)(s)})},null,4)),64))]),e[1]||(e[1]=t("span",null,"High",-1)),e[2]||(e[2]=t("span",{class:"ms-2 text-text-muted"},"(confidence from token latency)",-1))]))}}),j={class:"flex flex-col gap-3"},q={key:0,class:"text-text-muted italic"},z={key:0,class:"rounded-lg border border-border-default bg-surface-raised p-3 text-xs space-y-1"},E={class:"flex gap-4"},A={class:"text-text-muted"},G={class:"text-text-muted"},J={class:"text-text-primary"},K={class:"text-text-muted"},O={class:"text-text-primary"},P={class:"text-text-muted"},Q={class:"text-text-primary font-mono"},Y=y({__name:"TokenStreamDisplay",props:{sessionId:{},heatmapMode:{}},setup(o){const l=o,m=k(()=>l.sessionId),{tokens:e,confidenceRange:s}=B(m),i=T(null),d=T(null),h=k(()=>l.heatmapMode??"confidence");function $(c){switch(h.value){case"confidence":return x(c.confidence);case"latency":{const n=s.value.median;return M(c.interTokenLatencyMs,n>0?n*100:50)}case"position":{const n=e.value.length>1?c.index/(e.value.length-1):.5;return x(1-n)}default:return x(c.confidence)}}return R(()=>e.value.length,async()=>{await N(),i.value&&(i.value.scrollTop=i.value.scrollHeight)}),(c,n)=>(a(),r("div",j,[F(W),t("div",{ref_key:"containerRef",ref:i,class:"min-h-[200px] max-h-[500px] overflow-auto rounded-lg border border-border-default bg-surface p-4 font-mono text-sm leading-relaxed"},[f(e).length===0?(a(),r("span",q," Waiting for tokens... ")):g("",!0),(a(!0),r(b,null,C(f(e),(p,w)=>(a(),H(V,{key:p.id,token:p,color:$(p),"is-latest":w===f(e).length-1,"heatmap-mode":h.value,onHover:n[0]||(n[0]=L=>d.value=L)},null,8,["token","color","is-latest","heatmap-mode"]))),128))],512),d.value?(a(),r("div",z,[t("div",E,[t("span",A,"Token #"+u(d.value.index),1),t("span",G,[n[1]||(n[1]=v(" Confidence: ",-1)),t("span",J,u((d.value.confidence*100).toFixed(0))+"%",1)]),t("span",K,[n[2]||(n[2]=v(" Latency: ",-1)),t("span",O,u(d.value.interTokenLatencyMs)+"ms",1)]),t("span",P,[n[3]||(n[3]=v(" Text: ",-1)),t("span",Q,'"'+u(d.value.text)+'"',1)])])])):g("",!0)]))}});export{Y as _};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a0 as xO,w as Ge,b as ot,a1 as bO,R as YP,e as be,p as xt,s as Ki,a2 as wt,u as Se,B as fn,j as ve,g as bt,a3 as GP,m as lt,r as ze,a as Qe,a4 as Fs,a5 as SO,a6 as cr,a7 as pu,a8 as HP,f as pe,F as mt,k as Jt,l as hi,y as vi,a9 as jd,aa as JP,q as Ct,i as Re,Y as Mi,t as Te,ab as KP,ac as Zd,ad as eT,ae as tT,af as Xr,W as ut,ag as nt,ah as io,ai as iT,aj as wO,ak as Vd,al as Mu,K as wr,h as nT,am as rT,an as sT,d as aT,A as PO,o as Tc,n as oT,V as lT,v as Yi,C as Vn,D as ia,G as uT,U as cT,P as ig,z as hT,T as fT}from"./index-DVVzacEJ.js";import{u as Ud}from"./tool-workshop-store-CvimeN9w.js";import{a as dT,u as pT}from"./toolcall-store-DxrTJwPf.js";import{g as TO}from"./_commonjsHelpers-DsqdWQfm.js";import{canvasAiDB as qd}from"./canvas-ai-db-BolM-_G7.js";import{J as ng,a as mT,g as gT,b as yT}from"./JsonTreeNode-BQTLLZr8.js";import{D as vT}from"./base-CrPFMexR.js";import{_ as CO}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{T as OT}from"./trash-2-CKMNSCOl.js";class xT extends vT{constructor(){super(...arguments),this.tokenize=wT}equals(e,i,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
|
|
2
2
|
`))&&(e=e.trim()),(!n.newlineIsToken||!i.includes(`
|
|
3
3
|
`))&&(i=i.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
|
|
4
4
|
`)&&(e=e.slice(0,-1)),i.endsWith(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as p,
|
|
1
|
+
import{d as p,Y as f,J as h,r as g,n as v}from"./index-DVVzacEJ.js";const k=p("tokens",()=>{const t=f(new Map);function r(e,n){const o=new Map(t.value),s=o.get(e)??[];o.set(e,[...s,n]),t.value=o}function i(e){return t.value.get(e)??[]}function l(e){return(t.value.get(e)??[]).length}function c(e){const n=new Map(t.value);n.delete(e),t.value=n}function a(e){const n=t.value.get(e);n&&n.length>0&&h.saveTokens(e,n).catch(console.error)}async function u(e){if(t.value.has(e))return;const n=await h.getTokens(e);if(n.length>0){const o=new Map(t.value);o.set(e,n),t.value=o}}return{tokensBySession:t,pushToken:r,getTokens:i,getTokenCount:l,clearTokens:c,persistTokens:a,loadTokens:u}}),S=p("reasoning",()=>{const t=g(new Map),r=g(new Map);function i(n){return t.value.get(n)??null}function l(n){return t.value.get(n)?.steps??[]}function c(n,o){let s=t.value.get(n);s||(s={sessionId:n,steps:[],totalSteps:0,currentDepth:0},t.value.set(n,s)),s.steps.push(o),s.totalSteps=s.steps.length}function a(n){t.value.delete(n)}function u(n,o,s){r.value.set(n,{isThinking:o,content:s})}function e(n){return r.value.get(n)??{isThinking:!1,content:""}}return{chainsBySession:t,thinkingBySession:r,getChain:i,getSteps:l,addStep:c,clearChain:a,setThinking:u,getThinking:e}}),T=p("agent",()=>{const t=g(new Map);function r(a){return t.value.get(a)??null}function i(a){t.value.has(a)||t.value.set(a,{sessionId:a,nodes:[],edges:[]})}function l(a,u){const e=t.value.get(a);if(e&&(e.nodes.push(u),e.nodes.length>1)){const n=e.nodes[e.nodes.length-2];e.edges.push({id:v(),source:n.id,target:u.id,label:`Step ${e.nodes.length-1}`})}}function c(a,u){const e=t.value.get(a);e&&e.edges.push(u)}return{graphsBySession:t,getGraph:r,initGraph:i,addNode:l,addEdge:c}});export{k as a,S as b,T as u};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{c as f,n as a,o as m}from"./index-DVVzacEJ.js";import{u as d}from"./toolcall-store-DxrTJwPf.js";import{u as y}from"./StatusBadge.vue_vue_type_script_setup_true_lang-BoFt8y4m.js";import{a as g}from"./stream-handler-DcWLXVUd.js";const O=f("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);function u(t,o="en"){if(!t)return 0;if(["zh","ja","ko"].includes(o))return t.replace(/\s/g,"").length||1;const i=t.split(/\s+/).filter(Boolean).length;return Math.ceil(i*1.3)}function b(t,o){const i=h(o),n=u(o);for(const r of i)r.tokenCount=u(r.content),r.percentage=n>0?r.tokenCount/n*100:0;return{sessionId:t,rawPrompt:o,totalTokenCount:n,sections:i}}function w(t,o){const i=[];let n=0;for(const e of o){const c={system:"system",user:"user",assistant:"context",tool:"tools"},l={id:a(),type:c[e.role]??"unknown",label:`${e.role} message`,content:e.content,startOffset:n,endOffset:n+e.content.length,tokenCount:u(e.content),percentage:0};i.push(l),n+=e.content.length+1}const r=i.reduce((e,c)=>e+c.tokenCount,0);for(const e of i)e.percentage=r>0?e.tokenCount/r*100:0;const s=o.map(e=>`[${e.role}] ${e.content}`).join(`
|
|
2
|
+
|
|
3
|
+
`);return{sessionId:t,rawPrompt:s,totalTokenCount:r,sections:i,messages:o.map(e=>({role:e.role,content:e.content,tokenCount:u(e.content)}))}}function h(t){const o=[],i=[{regex:/^#{1,3}\s*system\b/im,type:"system",label:"System Instructions"},{regex:/^#{1,3}\s*(?:user|query|question)\b/im,type:"user",label:"User Query"},{regex:/^#{1,3}\s*(?:context|background)\b/im,type:"context",label:"Context"},{regex:/^#{1,3}\s*(?:tools?|functions?)\b/im,type:"tools",label:"Tool Definitions"},{regex:/^#{1,3}\s*(?:memory|history|conversation)\b/im,type:"memory",label:"Memory / History"},{regex:/^#{1,3}\s*(?:examples?|few[- ]shot)\b/im,type:"examples",label:"Examples"},{regex:/^#{1,3}\s*(?:instructions?|rules?|guidelines?)\b/im,type:"instructions",label:"Instructions"}],n=[];for(const{regex:s,type:e,label:c}of i){const l=t.match(s);l?.index!==void 0&&n.push({index:l.index,type:e,label:c})}if(n.length===0)return o.push({id:a(),type:"user",label:"Prompt",content:t,startOffset:0,endOffset:t.length,tokenCount:0,percentage:100}),o;n.sort((s,e)=>s.index-e.index);for(let s=0;s<n.length;s++){const e=n[s],c=n[s+1],l=c?c.index:t.length,p=t.slice(e.index,l).trim();o.push({id:a(),type:e.type,label:e.label,content:p,startOffset:e.index,endOffset:l,tokenCount:0,percentage:0})}const r=n[0];if(r&&r.index>0){const s=t.slice(0,r.index).trim();s&&o.unshift({id:a(),type:"unknown",label:"Preamble",content:s,startOffset:0,endOffset:r.index,tokenCount:0,percentage:0})}return o}async function v(t){const o=d(),i=y(),n=o.createSession({mode:"generate",model:t.model,prompt:t.prompt,options:t.options});o.setActiveSession(n);const r=b(n,t.prompt);i.setAnatomy(n,r);const s=new AbortController;return m.streamGenerate({model:t.model,prompt:t.prompt,system:t.system,options:t.options},s.signal).then(e=>g(n,e,s.signal)).catch(e=>{s.signal.aborted||o.setSessionError(n,e instanceof Error?e.message:"Generation failed")}),{sessionId:n,abort:()=>{s.abort(),o.cancelSession(n)}}}export{O as C,w as a,v as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as m,r as n}from"./index-
|
|
1
|
+
import{d as m,r as n}from"./index-DVVzacEJ.js";import{getClientId as p,isConnected as C,getCachedEmail as y,getStoredTokens as c,setClientId as A,startGoogleAuth as w,handleCallback as x,getUserEmail as E,clearTokens as I,getAccessToken as S}from"./google-auth-CfEcVMA7.js";const _=m("google-auth",()=>{const a=n(!1),o=n(null),u=n(null),r=n(!1),s=n(""),l=n(null);function i(){s.value=p()??"",a.value=C(),o.value=y();const e=c();u.value=e?.expires_at??null}i();function v(e){A(e),s.value=e.trim()}async function f(){if(!s.value){l.value="Please enter a Google Client ID first.";return}l.value=null,await w()}async function d(e){r.value=!0,l.value=null;try{const t=await x(e);u.value=t.expires_at,a.value=!0;const k=await E();o.value=k}catch(t){l.value=t instanceof Error?t.message:String(t),a.value=!1}finally{r.value=!1}}function g(){I(),a.value=!1,o.value=null,u.value=null,l.value=null}async function h(){try{const e=await S();a.value=!0;const t=c();return t&&(u.value=t.expires_at),e}catch(e){throw a.value=!1,e}}return{connected:a,userEmail:o,tokenExpiresAt:u,isAuthenticating:r,clientId:s,error:l,updateClientId:v,connect:f,handleOAuthCallback:d,disconnect:g,getToken:h}});export{_ as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-code-cyrillic-ext-400-normal-txZ9Fk_1.woff2) format("woff2"),url(/assets/fira-code-cyrillic-ext-400-normal-Buh61xzB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-code-cyrillic-400-normal-UC0NFL4U.woff2) format("woff2"),url(/assets/fira-code-cyrillic-400-normal-dc1q3VD7.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-code-greek-ext-400-normal-DR7mBgIM.woff2) format("woff2"),url(/assets/fira-code-greek-ext-400-normal-DSPUheWg.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-code-greek-400-normal-B2Gh_Y8s.woff2) format("woff2"),url(/assets/fira-code-greek-400-normal-DobhaxvF.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/fira-code-symbols2-400-normal-_QEZCEwe.woff) format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-code-latin-ext-400-normal-KSMg0QLl.woff2) format("woff2"),url(/assets/fira-code-latin-ext-400-normal-DG73JjOf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-code-latin-400-normal-DGosTW8U.woff2) format("woff2"),url(/assets/fira-code-latin-400-normal-C-QZfXAs.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-cyrillic-ext-500-normal-CYRspHgm.woff2) format("woff2"),url(/assets/fira-code-cyrillic-ext-500-normal-CwtLmSFD.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-cyrillic-500-normal-CX35h3Mg.woff2) format("woff2"),url(/assets/fira-code-cyrillic-500-normal-Bu7VCL72.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-greek-ext-500-normal-BO3iq16n.woff2) format("woff2"),url(/assets/fira-code-greek-ext-500-normal-CMiNLXER.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-greek-500-normal-CVO0IRNt.woff2) format("woff2"),url(/assets/fira-code-greek-500-normal-DEXIWiey.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/fira-code-symbols2-500-normal-DwsgbIjQ.woff) format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-latin-ext-500-normal-Crd9e_oI.woff2) format("woff2"),url(/assets/fira-code-latin-ext-500-normal-CaANqXjI.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-latin-500-normal-B6gioGu8.woff2) format("woff2"),url(/assets/fira-code-latin-500-normal-aMLC2AMm.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface:#0f172a;--color-surface-raised:#1e293b;--color-surface-overlay:#334155;--color-border-default:#475569;--color-text-primary:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-accent:#a855f7;--color-accent-hover:#c084fc;--color-success:#4ade80;--color-warning:#fbbf24;--color-error:#f87171}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.start-0{inset-inline-start:calc(var(--spacing) * 0)}.end{inset-inline-end:var(--spacing)}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-16{top:calc(var(--spacing) * 16)}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-full{left:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2/span 2}.\!container{width:100%!important}@media(min-width:40rem){.\!container{max-width:40rem!important}}@media(min-width:48rem){.\!container{max-width:48rem!important}}@media(min-width:64rem){.\!container{max-width:64rem!important}}@media(min-width:80rem){.\!container{max-width:80rem!important}}@media(min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.ms-1{margin-inline-start:calc(var(--spacing) * 1)}.ms-1\.5{margin-inline-start:calc(var(--spacing) * 1.5)}.ms-2{margin-inline-start:calc(var(--spacing) * 2)}.ms-3{margin-inline-start:calc(var(--spacing) * 3)}.ms-7{margin-inline-start:calc(var(--spacing) * 7)}.ms-auto{margin-inline-start:auto}.me-1{margin-inline-end:calc(var(--spacing) * 1)}.me-1\.5{margin-inline-end:calc(var(--spacing) * 1.5)}.-mt-3{margin-top:calc(var(--spacing) * -3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-full{height:100%}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[150px\]{max-height:150px}.max-h-\[200px\]{max-height:200px}.max-h-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[200px\]{min-height:200px}.min-h-full{min-height:100%}.w-1{width:calc(var(--spacing) * 1)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[280px\]{width:280px}.w-\[400px\]{width:400px}.w-\[440px\]{width:440px}.w-\[480px\]{width:480px}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[80\%\]{max-width:80%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[150px\]{min-width:150px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-\[15\]{flex:15}.flex-\[20\]{flex:20}.flex-\[25\]{flex:25}.flex-\[40\]{flex:40}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-3\.5{--tw-translate-x:calc(var(--spacing) * 3.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-2{--tw-translate-y:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\[\#a78bfa\]\/30{border-color:#a78bfa4d}.border-accent{border-color:var(--color-accent)}.border-accent\/20{border-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.border-accent\/20{border-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.border-accent\/30{border-color:#a855f74d}@supports (color:color-mix(in lab,red,red)){.border-accent\/30{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.border-accent\/50{border-color:#a855f780}@supports (color:color-mix(in lab,red,red)){.border-accent\/50{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500) 30%,transparent)}}.border-border-default{border-color:var(--color-border-default)}.border-border-default\/30{border-color:#4755694d}@supports (color:color-mix(in lab,red,red)){.border-border-default\/30{border-color:color-mix(in oklab,var(--color-border-default) 30%,transparent)}}.border-border-default\/50{border-color:#47556980}@supports (color:color-mix(in lab,red,red)){.border-border-default\/50{border-color:color-mix(in oklab,var(--color-border-default) 50%,transparent)}}.border-current{border-color:currentColor}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-error{border-color:var(--color-error)}.border-error\/30{border-color:#f871714d}@supports (color:color-mix(in lab,red,red)){.border-error\/30{border-color:color-mix(in oklab,var(--color-error) 30%,transparent)}}.border-error\/50{border-color:#f8717180}@supports (color:color-mix(in lab,red,red)){.border-error\/50{border-color:color-mix(in oklab,var(--color-error) 50%,transparent)}}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/30{border-color:color-mix(in oklab,var(--color-purple-500) 30%,transparent)}}.border-rose-500\/30{border-color:#ff23574d}@supports (color:color-mix(in lab,red,red)){.border-rose-500\/30{border-color:color-mix(in oklab,var(--color-rose-500) 30%,transparent)}}.border-success{border-color:var(--color-success)}.border-success\/30{border-color:#4ade804d}@supports (color:color-mix(in lab,red,red)){.border-success\/30{border-color:color-mix(in oklab,var(--color-success) 30%,transparent)}}.border-transparent{border-color:#0000}.border-warning\/20{border-color:#fbbf2433}@supports (color:color-mix(in lab,red,red)){.border-warning\/20{border-color:color-mix(in oklab,var(--color-warning) 20%,transparent)}}.border-warning\/30{border-color:#fbbf244d}@supports (color:color-mix(in lab,red,red)){.border-warning\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.border-t-\[\#a78bfa\]{border-top-color:#a78bfa}.border-t-transparent{border-top-color:#0000}.border-t-warning{border-top-color:var(--color-warning)}.border-b-surface-overlay{border-bottom-color:var(--color-surface-overlay)}.bg-\[\#a78bfa\]{background-color:#a78bfa}.bg-\[\#a78bfa\]\/10{background-color:#a78bfa1a}.bg-\[rgb\(139\,92\,246\)\]{background-color:#8b5cf6}.bg-\[rgb\(251\,146\,60\)\]{background-color:#fb923c}.bg-accent{background-color:var(--color-accent)}.bg-accent\/5{background-color:#a855f70d}@supports (color:color-mix(in lab,red,red)){.bg-accent\/5{background-color:color-mix(in oklab,var(--color-accent) 5%,transparent)}}.bg-accent\/10{background-color:#a855f71a}@supports (color:color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-accent\/15{background-color:#a855f726}@supports (color:color-mix(in lab,red,red)){.bg-accent\/15{background-color:color-mix(in oklab,var(--color-accent) 15%,transparent)}}.bg-accent\/20{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.bg-accent\/20{background-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.bg-accent\/60{background-color:#a855f799}@supports (color:color-mix(in lab,red,red)){.bg-accent\/60{background-color:color-mix(in oklab,var(--color-accent) 60%,transparent)}}.bg-accent\/90{background-color:#a855f7e6}@supports (color:color-mix(in lab,red,red)){.bg-accent\/90{background-color:color-mix(in oklab,var(--color-accent) 90%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-blue-500\/15{background-color:#3080ff26}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/15{background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-border-default{background-color:var(--color-border-default)}.bg-border-default\/30{background-color:#4755694d}@supports (color:color-mix(in lab,red,red)){.bg-border-default\/30{background-color:color-mix(in oklab,var(--color-border-default) 30%,transparent)}}.bg-current{background-color:currentColor}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.bg-error{background-color:var(--color-error)}.bg-error\/5{background-color:#f871710d}@supports (color:color-mix(in lab,red,red)){.bg-error\/5{background-color:color-mix(in oklab,var(--color-error) 5%,transparent)}}.bg-error\/10{background-color:#f871711a}@supports (color:color-mix(in lab,red,red)){.bg-error\/10{background-color:color-mix(in oklab,var(--color-error) 10%,transparent)}}.bg-error\/20{background-color:#f8717133}@supports (color:color-mix(in lab,red,red)){.bg-error\/20{background-color:color-mix(in oklab,var(--color-error) 20%,transparent)}}.bg-error\/30{background-color:#f871714d}@supports (color:color-mix(in lab,red,red)){.bg-error\/30{background-color:color-mix(in oklab,var(--color-error) 30%,transparent)}}.bg-purple-500\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/15{background-color:color-mix(in oklab,var(--color-purple-500) 15%,transparent)}}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/15{background-color:color-mix(in oklab,var(--color-rose-500) 15%,transparent)}}.bg-rose-500\/20{background-color:#ff235733}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/20{background-color:color-mix(in oklab,var(--color-rose-500) 20%,transparent)}}.bg-success{background-color:var(--color-success)}.bg-success\/5{background-color:#4ade800d}@supports (color:color-mix(in lab,red,red)){.bg-success\/5{background-color:color-mix(in oklab,var(--color-success) 5%,transparent)}}.bg-success\/10{background-color:#4ade801a}@supports (color:color-mix(in lab,red,red)){.bg-success\/10{background-color:color-mix(in oklab,var(--color-success) 10%,transparent)}}.bg-success\/20{background-color:#4ade8033}@supports (color:color-mix(in lab,red,red)){.bg-success\/20{background-color:color-mix(in oklab,var(--color-success) 20%,transparent)}}.bg-success\/30{background-color:#4ade804d}@supports (color:color-mix(in lab,red,red)){.bg-success\/30{background-color:color-mix(in oklab,var(--color-success) 30%,transparent)}}.bg-surface{background-color:var(--color-surface)}.bg-surface-overlay{background-color:var(--color-surface-overlay)}.bg-surface-overlay\/90{background-color:#334155e6}@supports (color:color-mix(in lab,red,red)){.bg-surface-overlay\/90{background-color:color-mix(in oklab,var(--color-surface-overlay) 90%,transparent)}}.bg-surface-raised{background-color:var(--color-surface-raised)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning\/5{background-color:#fbbf240d}@supports (color:color-mix(in lab,red,red)){.bg-warning\/5{background-color:color-mix(in oklab,var(--color-warning) 5%,transparent)}}.bg-warning\/10{background-color:#fbbf241a}@supports (color:color-mix(in lab,red,red)){.bg-warning\/10{background-color:color-mix(in oklab,var(--color-warning) 10%,transparent)}}.bg-warning\/15{background-color:#fbbf2426}@supports (color:color-mix(in lab,red,red)){.bg-warning\/15{background-color:color-mix(in oklab,var(--color-warning) 15%,transparent)}}.bg-warning\/20{background-color:#fbbf2433}@supports (color:color-mix(in lab,red,red)){.bg-warning\/20{background-color:color-mix(in oklab,var(--color-warning) 20%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.fill-border-default{fill:var(--color-border-default)}.fill-surface-raised{fill:var(--color-surface-raised)}.fill-text-primary{fill:var(--color-text-primary)}.fill-text-secondary{fill:var(--color-text-secondary)}.stroke-border-default{stroke:var(--color-border-default)}.stroke-surface-overlay{stroke:var(--color-surface-overlay)}.stroke-2{stroke-width:2px}.stroke-\[3\]{stroke-width:3px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-px{padding-inline:1px}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-\[16px\]{padding-block:16px}.py-px{padding-block:1px}.ps-1{padding-inline-start:calc(var(--spacing) * 1)}.ps-4{padding-inline-start:calc(var(--spacing) * 4)}.pe-3{padding-inline-end:calc(var(--spacing) * 3)}.pe-4{padding-inline-end:calc(var(--spacing) * 4)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-text-bottom{vertical-align:text-bottom}.align-text-top{vertical-align:text-top}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#a78bfa\]{color:#a78bfa}.text-\[\#f472b6\]{color:#f472b6}.text-accent{color:var(--color-accent)}.text-accent\/60{color:#a855f799}@supports (color:color-mix(in lab,red,red)){.text-accent\/60{color:color-mix(in oklab,var(--color-accent) 60%,transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-blue-400{color:var(--color-blue-400)}.text-emerald-400{color:var(--color-emerald-400)}.text-error{color:var(--color-error)}.text-error\/80{color:#f87171cc}@supports (color:color-mix(in lab,red,red)){.text-error\/80{color:color-mix(in oklab,var(--color-error) 80%,transparent)}}.text-purple-400{color:var(--color-purple-400)}.text-rose-400{color:var(--color-rose-400)}.text-success{color:var(--color-success)}.text-success\/80{color:#4ade80cc}@supports (color:color-mix(in lab,red,red)){.text-success\/80{color:color-mix(in oklab,var(--color-success) 80%,transparent)}}.text-surface{color:var(--color-surface)}.text-text-muted{color:var(--color-text-muted)}.text-text-muted\/20{color:#64748b33}@supports (color:color-mix(in lab,red,red)){.text-text-muted\/20{color:color-mix(in oklab,var(--color-text-muted) 20%,transparent)}}.text-text-muted\/50{color:#64748b80}@supports (color:color-mix(in lab,red,red)){.text-text-muted\/50{color:color-mix(in oklab,var(--color-text-muted) 50%,transparent)}}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-warning{color:var(--color-warning)}.text-warning\/80{color:#fbbf24cc}@supports (color:color-mix(in lab,red,red)){.text-warning\/80{color:color-mix(in oklab,var(--color-warning) 80%,transparent)}}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.placeholder-text-muted::placeholder{color:var(--color-text-muted)}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}@media(hover:hover){.group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.group-hover\:flex:is(:where(.group):hover *){display:flex}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-text-muted::placeholder{color:var(--color-text-muted)}.first\:rounded-s-full:first-child{border-start-start-radius:3.40282e38px;border-end-start-radius:3.40282e38px}.last\:rounded-e-full:last-child{border-start-end-radius:3.40282e38px;border-end-end-radius:3.40282e38px}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.focus-within\:border-accent:focus-within{border-color:var(--color-accent)}@media(hover:hover){.hover\:border-accent:hover{border-color:var(--color-accent)}.hover\:border-accent\/30:hover{border-color:#a855f74d}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/30:hover{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.hover\:border-accent\/50:hover{border-color:#a855f780}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/50:hover{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.hover\:border-border-default:hover{border-color:var(--color-border-default)}.hover\:border-error:hover{border-color:var(--color-error)}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\:bg-accent\/10:hover{background-color:#a855f71a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/10:hover{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.hover\:bg-accent\/20:hover{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/20:hover{background-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.hover\:bg-border-default:hover{background-color:var(--color-border-default)}.hover\:bg-error\/10:hover{background-color:#f871711a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-error\/10:hover{background-color:color-mix(in oklab,var(--color-error) 10%,transparent)}}.hover\:bg-error\/20:hover{background-color:#f8717133}@supports (color:color-mix(in lab,red,red)){.hover\:bg-error\/20:hover{background-color:color-mix(in oklab,var(--color-error) 20%,transparent)}}.hover\:bg-error\/30:hover{background-color:#f871714d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-error\/30:hover{background-color:color-mix(in oklab,var(--color-error) 30%,transparent)}}.hover\:bg-error\/80:hover{background-color:#f87171cc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-error\/80:hover{background-color:color-mix(in oklab,var(--color-error) 80%,transparent)}}.hover\:bg-success\/20:hover{background-color:#4ade8033}@supports (color:color-mix(in lab,red,red)){.hover\:bg-success\/20:hover{background-color:color-mix(in oklab,var(--color-success) 20%,transparent)}}.hover\:bg-surface:hover{background-color:var(--color-surface)}.hover\:bg-surface-overlay:hover{background-color:var(--color-surface-overlay)}.hover\:bg-surface-raised:hover{background-color:var(--color-surface-raised)}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-accent-hover:hover{color:var(--color-accent-hover)}.hover\:text-error:hover{color:var(--color-error)}.hover\:text-text-primary:hover{color:var(--color-text-primary)}.hover\:text-text-secondary:hover{color:var(--color-text-secondary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:justify-center{justify-content:center}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}.rtl\:-scale-x-100:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-scale-x: -100% ;scale:var(--tw-scale-x) var(--tw-scale-y)}}html{color-scheme:dark}html.light{color-scheme:light;--color-surface:#f8fafc;--color-surface-raised:#fff;--color-surface-overlay:#e2e8f0;--color-border-default:#cbd5e1;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-accent:#9333ea;--color-accent-hover:#7e22ce;--color-success:#16a34a;--color-warning:#d97706;--color-error:#dc2626;--color-confidence-high:#16a34a;--color-confidence-mid:#d97706;--color-confidence-low:#dc2626}@keyframes typing-bounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}@keyframes ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}@keyframes glow-in{0%{box-shadow:0 0 #a855f766}50%{box-shadow:0 0 8px 2px #a855f733}to{box-shadow:0 0 #a855f700}}@keyframes thinking-orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}body{background-color:var(--color-surface);color:var(--color-text-primary);margin:0;font-family:Inter,Noto Sans SC,Noto Sans JP,Noto Sans KR,Noto Sans Arabic,Noto Sans Hebrew,Microsoft YaHei,Hiragino Sans,Meiryo,system-ui,-apple-system,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-surface-overlay);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-default)}.markdown-prose{color:var(--color-text-primary);font-size:.875rem;line-height:1.625}.markdown-prose p{margin:.5em 0}.markdown-prose p:first-child{margin-top:0}.markdown-prose p:last-child{margin-bottom:0}.markdown-prose h1,.markdown-prose h2,.markdown-prose h3,.markdown-prose h4{color:var(--color-text-primary);margin:1em 0 .5em;font-weight:600}.markdown-prose h1{font-size:1.25em}.markdown-prose h2{font-size:1.125em}.markdown-prose h3{font-size:1em}.markdown-prose h1:first-child,.markdown-prose h2:first-child,.markdown-prose h3:first-child{margin-top:0}.markdown-prose strong{color:var(--color-text-primary);font-weight:600}.markdown-prose em{font-style:italic}.markdown-prose code{background:var(--color-surface-overlay);color:var(--color-accent);border-radius:4px;padding:.15em .35em;font-family:Fira Code,Cascadia Code,JetBrains Mono,monospace;font-size:.85em}.markdown-prose pre{background:var(--color-surface);border:1px solid var(--color-border-default);border-radius:8px;margin:.75em 0;padding:.75em 1em;overflow-x:auto}.markdown-prose pre code{color:var(--color-text-primary);background:0 0;border-radius:0;padding:0;font-size:.8em}.markdown-prose ul,.markdown-prose ol{margin:.5em 0;padding-inline-start:1.5em}.markdown-prose ul{list-style-type:disc}.markdown-prose ol{list-style-type:decimal}.markdown-prose li,.markdown-prose li>ul,.markdown-prose li>ol{margin:.25em 0}.markdown-prose blockquote{border-inline-start:3px solid var(--color-accent);background:var(--color-surface);color:var(--color-text-secondary);border-start-end-radius:6px;border-end-end-radius:6px;margin:.75em 0;padding:.5em 1em}.markdown-prose hr{border:none;border-top:1px solid var(--color-border-default);margin:1em 0}.markdown-prose a{color:var(--color-accent);text-decoration:underline}.markdown-prose table{border-collapse:collapse;width:100%;margin:.75em 0;font-size:.85em}.markdown-prose th,.markdown-prose td{border:1px solid var(--color-border-default);text-align:start;padding:.4em .75em}.markdown-prose th{background:var(--color-surface);font-weight:600}html[lang=zh],html[lang=ja],html[lang=ko]{word-break:break-all;overflow-wrap:anywhere}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|