@lunora/studio 1.0.0-alpha.103 → 1.0.0-alpha.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/mount.js +1 -1
- package/dist/packem_chunks/LogsPanel.js +1 -1
- package/dist/packem_chunks/MetricsPanel.js +1 -1
- package/dist/packem_chunks/agents-panel.js +1 -1
- package/dist/packem_chunks/evals-panel.js +1 -0
- package/dist/packem_chunks/kv-browser.js +1 -1
- package/dist/packem_chunks/traces-panel.js +1 -1
- package/dist/packem_shared/{Studio-DG_n-8Pc.js → Studio-CD66AkL1.js} +1 -1
- package/dist/packem_shared/{StudioApp-bavavhpe.js → StudioApp-0Vaayv2I.js} +1 -1
- package/dist/packem_shared/log-fields-CoL3hsIQ.js +1 -0
- package/dist/packem_shared/log-line-BDI826X-.js +1 -0
- package/dist/packem_shared/studio-CUXq5VSB.js +2 -0
- package/dist/packem_shared/trace-handoff-Dw7mwjxu.js +1 -0
- package/dist/packem_shared/{use-open-trace-D9XDDHHS.js → use-open-trace-CniEgUdp.js} +1 -1
- package/dist/standalone/{chunk-GY66QQZJ.js → chunk-246BLG4I.js} +1 -1
- package/dist/standalone/{chunk-WEOEKMJN.js → chunk-3CSOMPVV.js} +1 -1
- package/dist/standalone/{chunk-NVY2U3IB.js → chunk-3CXC27LL.js} +1 -1
- package/dist/standalone/{chunk-K5463KGW.js → chunk-46ZHPP3M.js} +1 -1
- package/dist/standalone/{chunk-WXALMQCU.js → chunk-4TLSANPE.js} +1 -1
- package/dist/standalone/{chunk-BR5GIQWK.js → chunk-5DVJR52Z.js} +1 -1
- package/dist/standalone/chunk-5MD62MWO.js +1 -0
- package/dist/standalone/chunk-744YTKHP.js +1 -0
- package/dist/standalone/chunk-7CZI2HNL.js +1 -0
- package/dist/standalone/{chunk-YPQISHBM.js → chunk-AI62XFW6.js} +1 -1
- package/dist/standalone/chunk-AXQU7ULF.js +1 -0
- package/dist/standalone/{chunk-EAGPIRHK.js → chunk-CGKML4NC.js} +1 -1
- package/dist/standalone/chunk-CJQ2534J.js +1 -0
- package/dist/standalone/{chunk-3JJIZ5GZ.js → chunk-CMQJI7AJ.js} +1 -1
- package/dist/standalone/{chunk-LFYM72CD.js → chunk-CTR7LLJB.js} +1 -1
- package/dist/standalone/{chunk-WVXS24SB.js → chunk-CV2ZHCSQ.js} +1 -1
- package/dist/standalone/{chunk-P6U7JNSA.js → chunk-DYH6W3L5.js} +1 -1
- package/dist/standalone/{chunk-GPXYZOOF.js → chunk-FCLMIH4N.js} +1 -1
- package/dist/standalone/{chunk-76XT6OKR.js → chunk-G4YBB2WW.js} +1 -1
- package/dist/standalone/chunk-GLCJSRZU.js +1 -0
- package/dist/standalone/{chunk-KMGVTPH2.js → chunk-GRGQK4AX.js} +1 -1
- package/dist/standalone/{chunk-ICUATQ6I.js → chunk-GXXEKXMR.js} +1 -1
- package/dist/standalone/{chunk-GCIAXZBG.js → chunk-HBSEWNIR.js} +1 -1
- package/dist/standalone/{chunk-OJDJMESX.js → chunk-HFP4PBM5.js} +1 -1
- package/dist/standalone/{chunk-EVPGUJH7.js → chunk-HFRJMPXJ.js} +1 -1
- package/dist/standalone/{chunk-KHZFULUH.js → chunk-HKRRKZPX.js} +1 -1
- package/dist/standalone/{chunk-AAU2LQP2.js → chunk-IRNX35LY.js} +1 -1
- package/dist/standalone/{chunk-TWF72RNA.js → chunk-JGTKRQVM.js} +1 -1
- package/dist/standalone/{chunk-FGMDIASJ.js → chunk-JISQYNVU.js} +1 -1
- package/dist/standalone/{chunk-5BKFMQKO.js → chunk-KAVRYX7T.js} +1 -1
- package/dist/standalone/chunk-KUVMORDQ.js +1 -0
- package/dist/standalone/{chunk-VA5RUELS.js → chunk-L54MRHOE.js} +1 -1
- package/dist/standalone/{chunk-Q5LK5ZBG.js → chunk-LBORO43W.js} +1 -1
- package/dist/standalone/{chunk-6VTX32BC.js → chunk-LCMKFBA4.js} +1 -1
- package/dist/standalone/{chunk-C2W6YSI7.js → chunk-MUSKZL5Y.js} +1 -1
- package/dist/standalone/{chunk-XOIXFWZS.js → chunk-MVUIIDB7.js} +1 -1
- package/dist/standalone/chunk-MWLD5STA.js +1 -0
- package/dist/standalone/{chunk-RPGUPO5I.js → chunk-NCD4PEEZ.js} +1 -1
- package/dist/standalone/{chunk-ZKDSO2VL.js → chunk-NGENUSFE.js} +1 -1
- package/dist/standalone/{chunk-WWOB5XZT.js → chunk-NM6OOA4L.js} +1 -1
- package/dist/standalone/{chunk-56Q3NCCQ.js → chunk-NQVE5YON.js} +1 -1
- package/dist/standalone/{chunk-AI5UNHBF.js → chunk-NXF4Z5ZP.js} +1 -1
- package/dist/standalone/{chunk-LZFOZFYW.js → chunk-OBMNLQWG.js} +1 -1
- package/dist/standalone/{chunk-2POO335F.js → chunk-OENUM3OW.js} +1 -1
- package/dist/standalone/{chunk-ZBVGZ4YA.js → chunk-OKIEDUHL.js} +1 -1
- package/dist/standalone/{chunk-QM4IZJHK.js → chunk-OKQ3NJOW.js} +1 -1
- package/dist/standalone/{chunk-FSPXSK4F.js → chunk-PA7BSM5T.js} +1 -1
- package/dist/standalone/{chunk-44W6IDID.js → chunk-QOP32XAE.js} +1 -1
- package/dist/standalone/{chunk-OXGSORBK.js → chunk-QT47YQFN.js} +1 -1
- package/dist/standalone/chunk-QWGT25SE.js +1 -0
- package/dist/standalone/chunk-RGFVM2UG.js +1 -0
- package/dist/standalone/{chunk-WE4LGWB4.js → chunk-U2DFU5HO.js} +1 -1
- package/dist/standalone/{chunk-KMT6UDR7.js → chunk-UDOOZJO5.js} +1 -1
- package/dist/standalone/{chunk-NLANS7IB.js → chunk-UEZXG35P.js} +1 -1
- package/dist/standalone/{chunk-LFOT3KUL.js → chunk-UF6SDOXD.js} +1 -1
- package/dist/standalone/{chunk-ILQLRPP6.js → chunk-UPQGD6JY.js} +1 -1
- package/dist/standalone/{chunk-WVU7GHTG.js → chunk-UQV7Q5S4.js} +2 -2
- package/dist/standalone/{chunk-EP5VOTNC.js → chunk-V4XO5TAT.js} +1 -1
- package/dist/standalone/chunk-VM4RE2MS.js +1 -0
- package/dist/standalone/{chunk-6ZVSFYWY.js → chunk-VU27DLBM.js} +2 -2
- package/dist/standalone/chunk-VU6IQL5Z.js +1 -0
- package/dist/standalone/{chunk-LMZCWLYL.js → chunk-X3CR2UJK.js} +1 -1
- package/dist/standalone/{chunk-L6ZL7C6I.js → chunk-XCNNKMME.js} +1 -1
- package/dist/standalone/{chunk-5VYZCZNH.js → chunk-XDDXCDKW.js} +1 -1
- package/dist/standalone/{chunk-VITTPKH5.js → chunk-XFGE43TZ.js} +1 -1
- package/dist/standalone/{chunk-DUFBHFX6.js → chunk-XJTTJ57C.js} +1 -1
- package/dist/standalone/{chunk-ZU6JSCBE.js → chunk-Z2IF3TEX.js} +1 -1
- package/dist/standalone/studio.js +1 -1
- package/package.json +6 -6
- package/dist/packem_shared/log-line-CmtmbZNE.js +0 -1
- package/dist/packem_shared/studio-C9Qvg13j.js +0 -2
- package/dist/packem_shared/trace-handoff-D7j9TjUT.js +0 -1
- package/dist/standalone/chunk-AB5HDI3T.js +0 -1
- package/dist/standalone/chunk-IN6NPKXV.js +0 -1
- package/dist/standalone/chunk-J6IUJLIJ.js +0 -1
- package/dist/standalone/chunk-K2E4OECF.js +0 -1
- package/dist/standalone/chunk-PLFTCTMX.js +0 -1
- package/dist/standalone/chunk-WNCBCYI4.js +0 -1
- package/dist/standalone/chunk-X3W5GATZ.js +0 -1
- package/dist/standalone/chunk-ZD3CL42S.js +0 -1
- package/dist/standalone/chunk-ZMNCF2DE.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useLunora as ft}from"@lunora/react";import{useState as fe,useRef as We,useEffect as tt,useMemo as pt}from"react";import{L as xt}from"../packem_shared/live-status-CmuRLFKf.js";import{ShardInput as bt}from"../packem_shared/ShardInput-BVn2iCU0.js";import{u as rt}from"../packem_shared/button-BkCrNcAs.js";import{N as Je}from"../packem_shared/use-admin-query-CnnyWJXM.js";import{f as vt}from"../packem_shared/use-open-trace-D9XDDHHS.js";import{S as yt}from"../packem_shared/use-shard-key-B2JtNa5m.js";import{useT as pe}from"../packem_shared/DEFAULT_LOCALE-BZ4NojpD.js";import{ADMIN_FUNCTIONS as ze}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{c as Nt}from"../packem_shared/cf-links-Dmg86v1D.js";import{m as St,l as Ye,f as $t,d as wt,b as qt,g as kt}from"../packem_shared/internal-zkEvTqy8.js";import{r as Mt,l as _t}from"../packem_shared/shard-history-DMEW5VBE.js";import{c as Te}from"react/compiler-runtime";import{f as Ct}from"../packem_shared/trace-handoff-D7j9TjUT.js";import{g as et}from"../packem_shared/badge-BbuuAio7.js";import{c as he,f as ge,n as Ue,m as Pe,p as It}from"../packem_shared/card-BMKx5UdA.js";import{m as de,n as ct,f as He,p as oe,d as dt,b as mt}from"../packem_shared/table-DZAB8cs3.js";import{S as ut}from"../packem_shared/sparkline-BNvxiJj_.js";import{jsx as t,jsxs as o,Fragment as Ve}from"react/jsx-runtime";import{aggregateMetrics as Rt,computeLatencyPercentiles as Dt,enrichQueryStats as Ft,shardsToAggregate as Lt}from"../packem_shared/aggregateMetrics-BNfajLa2.js";import{g as me}from"../packem_shared/stat-card-BGJdhfm6.js";import{ResponsiveContainer as at,AreaChart as Tt,CartesianGrid as lt,XAxis as st,YAxis as nt,Tooltip as it,Area as Ot,LineChart as zt,Line as At}from"recharts";import{E as Kt}from"../packem_shared/empty-state-Cg7t_8qu.js";import{c as Et}from"../packem_shared/utils-bhneXptQ.js";import{w as jt,z as Ut,_ as Qe,S as Pt,x as Qt}from"../packem_shared/select-BssZMiFY.js";const Bt=(l,e)=>l<e?-1:l>e?1:0,Ze=l=>{if(l===void 0)return"null";if(typeof l=="bigint")throw new TypeError("stableStringify: cannot use a bigint in a stable JSON cache key — pass it as a string, or use stableWireKey");if(l===null||typeof l!="object")return JSON.stringify(l);if(Array.isArray(l))return`[${l.map(d=>Ze(d)).join(",")}]`;const e=Object.getPrototypeOf(l);if(e!==null&&e!==Object.prototype){const d=l.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${d} in a stable JSON cache key — only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}const s=l,a=Object.keys(s).toSorted(Bt),r=[];for(const d of a){const i=s[d];i!==void 0&&r.push(`${JSON.stringify(d)}:${Ze(i)}`)}return`{${r.join(",")}}`},ht=(l,e,s)=>`${l}:${e}:${Ze(s??{})}`,gt=(l,e)=>l==="gauge"?e.last:l==="histogram"?e.sum/Math.max(1,e.count):e.sum,Jt=(l,e)=>gt(l,e),Ht=l=>gt(l.kind,l),Xe=l=>Number.isInteger(l)?l.toLocaleString():l.toLocaleString(void 0,{maximumFractionDigits:2}),Gt=l=>Array.isArray(l?.series)?l.series:[],Wt="FUNCTION_NOT_FOUND",Xt=l=>{const e=new Map;if(!Array.isArray(l?.series))return e;for(const s of l.series)e.set(ht(s.kind,s.name,s.attributes),s.points);return e},Yt={counter:"secondary",gauge:"default",histogram:"outline"},Vt=l=>{const e=Te(18),{name:s,onOpenTrace:a,traceId:r}=l,d=pe();if(r===void 0){let m;return e[0]===Symbol.for("react.memo_cache_sentinel")?(m=t("span",{className:"text-muted-foreground",children:"—"}),e[0]=m):m=e[0],m}let i;e[1]!==r?(i=r.slice(0,8),e[1]=r,e[2]=i):i=e[2];const n=i;if(a===void 0){const m=`mt-instrument-trace-${s}`;let g;return e[3]!==n||e[4]!==m||e[5]!==r?(g=t("span",{className:"text-muted-foreground","data-testid":m,title:r,children:n}),e[3]=n,e[4]=m,e[5]=r,e[6]=g):g=e[6],g}const S=`mt-instrument-trace-${s}`;let v;e[7]!==a||e[8]!==r?(v=()=>{a(r)},e[7]=a,e[8]=r,e[9]=v):v=e[9];let $;e[10]!==d||e[11]!==r?($=d("Open the exemplar trace {trace}",{trace:r}),e[10]=d,e[11]=r,e[12]=$):$=e[12];let h;return e[13]!==n||e[14]!==S||e[15]!==v||e[16]!==$?(h=t("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":S,onClick:v,title:$,type:"button",children:n}),e[13]=n,e[14]=S,e[15]=v,e[16]=$,e[17]=h):h=e[17],h},Zt=l=>{const e=Te(105),{onOpenTrace:s,shardKey:a}=l,r=pe();let d;e[0]===Symbol.for("react.memo_cache_sentinel")?(d={},e[0]=d):d=e[0];let i;e[1]!==a?(i={live:!0,shardKey:a},e[1]=a,e[2]=i):i=e[2];const{data:n,error:S,errorSource:v}=Je(ze.getMetricSeries,d,i);let $;e[3]===Symbol.for("react.memo_cache_sentinel")?($={},e[3]=$):$=e[3];let h;e[4]!==a?(h={live:!0,shardKey:a},e[4]=a,e[5]=h):h=e[5];const{data:m}=Je(ze.getMetricHistory,$,h);let g,y,w,M,c,p,f,x,q,_,N,I,C;if(e[6]!==n||e[7]!==S||e[8]!==v||e[9]!==m||e[10]!==s||e[11]!==r){x=Symbol.for("react.early_return_sentinel");e:{const O=Gt(n),A=St(v)===Wt;if(S!==null&&!A){let u;e[25]!==r?(u=r("Instruments"),e[25]=r,e[26]=u):u=e[26];let E;e[27]!==u?(E=t("h3",{className:"text-sm font-semibold text-foreground",children:u}),e[27]=u,e[28]=E):E=e[28];let U;e[29]!==S||e[30]!==r?(U=r("Instruments unavailable: {error}",{error:S}),e[29]=S,e[30]=r,e[31]=U):U=e[31];let P;e[32]!==U?(P=t("span",{className:"text-xs text-muted-foreground","data-testid":"mt-instruments-error",role:"status",children:U}),e[32]=U,e[33]=P):P=e[33];let ie;e[34]!==E||e[35]!==P?(ie=o("section",{className:"flex flex-col gap-2","data-testid":"mt-instruments",children:[E,P]}),e[34]=E,e[35]=P,e[36]=ie):ie=e[36],x=ie;break e}if(O.length===0){x=null;break e}const T=Xt(m);let K;e[37]!==r?(K=u=>r(u==="counter"?"Counter":u==="gauge"?"Gauge":"Histogram"),e[37]=r,e[38]=K):K=e[38];const j=K;c="flex flex-col gap-2",p="mt-instruments";let z;e[39]!==r?(z=r("Instruments"),e[39]=r,e[40]=z):z=e[40],e[41]!==z?(f=t("h3",{className:"text-sm font-semibold text-foreground",children:z}),e[41]=z,e[42]=f):f=e[42],M=he,C="overflow-hidden py-0",w=ge,I="px-0",y=dt,_="mt-instruments-table";let B;e[43]!==r?(B=r("name"),e[43]=r,e[44]=B):B=e[44];let J;e[45]!==B?(J=t(de,{children:B}),e[45]=B,e[46]=J):J=e[46];let H;e[47]!==r?(H=r("kind"),e[47]=r,e[48]=H):H=e[48];let G;e[49]!==H?(G=t(de,{children:H}),e[49]=H,e[50]=G):G=e[50];let W;e[51]!==r?(W=r("value"),e[51]=r,e[52]=W):W=e[52];let X;e[53]!==W?(X=t(de,{className:"text-right",children:W}),e[53]=W,e[54]=X):X=e[54];let Y;e[55]!==r?(Y=r("count"),e[55]=r,e[56]=Y):Y=e[56];let V;e[57]!==Y?(V=t(de,{className:"text-right",children:Y}),e[57]=Y,e[58]=V):V=e[58];let Z;e[59]!==r?(Z=r("range"),e[59]=r,e[60]=Z):Z=e[60];let ee;e[61]!==Z?(ee=t(de,{className:"text-right",children:Z}),e[61]=Z,e[62]=ee):ee=e[62];let te;e[63]!==r?(te=r("trend"),e[63]=r,e[64]=te):te=e[64];let re;e[65]!==te?(re=t(de,{children:te}),e[65]=te,e[66]=re):re=e[66];let ae;e[67]!==r?(ae=r("trace"),e[67]=r,e[68]=ae):ae=e[68];let le;e[69]!==ae?(le=t(de,{children:ae}),e[69]=ae,e[70]=le):le=e[70];let se;e[71]!==r?(se=r("dimensions"),e[71]=r,e[72]=se):se=e[72];let ne;e[73]!==se?(ne=t(de,{children:se}),e[73]=se,e[74]=ne):ne=e[74],e[75]!==J||e[76]!==G||e[77]!==X||e[78]!==V||e[79]!==ee||e[80]!==re||e[81]!==le||e[82]!==ne?(N=t(ct,{children:o(He,{children:[J,G,X,V,ee,re,le,ne]})}),e[75]=J,e[76]=G,e[77]=X,e[78]=V,e[79]=ee,e[80]=re,e[81]=le,e[82]=ne,e[83]=N):N=e[83],g=mt,q=O.map(u=>{const E=Ct(u.attributes),U=ht(u.kind,u.name,u.attributes),P=(T.get(U)??[]).map(ie=>Jt(u.kind,ie));return o(He,{"data-testid":`mt-instrument-${u.name}`,children:[t(oe,{className:"font-mono text-xs",title:u.functionPath,children:u.name}),t(oe,{children:t(et,{variant:Yt[u.kind],children:j(u.kind)})}),t(oe,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${u.name}`,children:Xe(Ht(u))}),t(oe,{className:"text-right tabular-nums text-muted-foreground",children:u.count.toLocaleString()}),t(oe,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:u.min===u.max?"—":`${Xe(u.min)}–${Xe(u.max)}`}),t(oe,{children:P.length>=2?t(ut,{ariaLabel:r("{name} trend",{name:u.name}),className:"h-6 w-24 text-foreground",series:P,testId:`mt-instrument-trend-${u.name}`}):t("span",{className:"text-xs text-muted-foreground",children:"—"})}),t(oe,{className:"font-mono text-xs",children:t(Vt,{name:u.name,onOpenTrace:s,traceId:u.exemplarTraceId})}),t(oe,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:E,children:E===""?"—":E})]},U)})}e[6]=n,e[7]=S,e[8]=v,e[9]=m,e[10]=s,e[11]=r,e[12]=g,e[13]=y,e[14]=w,e[15]=M,e[16]=c,e[17]=p,e[18]=f,e[19]=x,e[20]=q,e[21]=_,e[22]=N,e[23]=I,e[24]=C}else g=e[12],y=e[13],w=e[14],M=e[15],c=e[16],p=e[17],f=e[18],x=e[19],q=e[20],_=e[21],N=e[22],I=e[23],C=e[24];if(x!==Symbol.for("react.early_return_sentinel"))return x;let R;e[84]!==g||e[85]!==q?(R=t(g,{children:q}),e[84]=g,e[85]=q,e[86]=R):R=e[86];let k;e[87]!==y||e[88]!==R||e[89]!==_||e[90]!==N?(k=o(y,{"data-testid":_,children:[N,R]}),e[87]=y,e[88]=R,e[89]=_,e[90]=N,e[91]=k):k=e[91];let b;e[92]!==w||e[93]!==k||e[94]!==I?(b=t(w,{className:I,children:k}),e[92]=w,e[93]=k,e[94]=I,e[95]=b):b=e[95];let D;e[96]!==M||e[97]!==b||e[98]!==C?(D=t(M,{className:C,children:b}),e[96]=M,e[97]=b,e[98]=C,e[99]=D):D=e[99];let L;return e[100]!==c||e[101]!==p||e[102]!==f||e[103]!==D?(L=o("section",{className:c,"data-testid":p,children:[f,D]}),e[100]=c,e[101]=p,e[102]=f,e[103]=D,e[104]=L):L=e[104],L},er=l=>{const e=Te(74),{aggregate:s,shardResults:a}=l,r=pe();let d;e[0]!==r?(d=r("Shards"),e[0]=r,e[1]=d):d=e[1];let i;e[2]!==s.failed||e[3]!==s.reachable||e[4]!==r?(i=s.failed>0?r("{reachable} reachable, {failed} unreachable",{failed:s.failed,reachable:s.reachable}):r("{reachable} reachable",{reachable:s.reachable}),e[2]=s.failed,e[3]=s.reachable,e[4]=r,e[5]=i):i=e[5];let n;e[6]!==d||e[7]!==i?(n=t(me,{label:d,testId:"mt-agg-shards",value:i}),e[6]=d,e[7]=i,e[8]=n):n=e[8];let S;e[9]!==r?(S=r("Total requests"),e[9]=r,e[10]=S):S=e[10];let v;e[11]!==s.totalRequests||e[12]!==S?(v=t(me,{label:S,testId:"mt-agg-requests",value:s.totalRequests}),e[11]=s.totalRequests,e[12]=S,e[13]=v):v=e[13];let $;e[14]!==r?($=r("Total errors"),e[14]=r,e[15]=$):$=e[15];let h;e[16]!==s.totalErrors||e[17]!==$?(h=t(me,{label:$,testId:"mt-agg-errors",value:s.totalErrors}),e[16]=s.totalErrors,e[17]=$,e[18]=h):h=e[18];let m;e[19]!==r?(m=r("Total database size"),e[19]=r,e[20]=m):m=e[20];let g;e[21]!==s.totalDatabaseSize?(g=Ye(s.totalDatabaseSize),e[21]=s.totalDatabaseSize,e[22]=g):g=e[22];let y;e[23]!==m||e[24]!==g?(y=t(me,{label:m,testId:"mt-agg-db-size",value:g}),e[23]=m,e[24]=g,e[25]=y):y=e[25];let w;e[26]!==r?(w=r("Combined cache hit rate"),e[26]=r,e[27]=w):w=e[27];let M;e[28]!==s.hitRate||e[29]!==r?(M=s.hitRate===null?r("no cache configured"):`${(s.hitRate*100).toFixed(1)}%`,e[28]=s.hitRate,e[29]=r,e[30]=M):M=e[30];let c;e[31]!==w||e[32]!==M?(c=t(me,{label:w,testId:"mt-agg-cache",value:M}),e[31]=w,e[32]=M,e[33]=c):c=e[33];let p;e[34]!==y||e[35]!==c||e[36]!==n||e[37]!==v||e[38]!==h?(p=o("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[n,v,h,y,c]}),e[34]=y,e[35]=c,e[36]=n,e[37]=v,e[38]=h,e[39]=p):p=e[39];let f;e[40]!==r?(f=r("shard"),e[40]=r,e[41]=f):f=e[41];let x;e[42]!==f?(x=t(de,{children:f}),e[42]=f,e[43]=x):x=e[43];let q;e[44]!==r?(q=r("requests"),e[44]=r,e[45]=q):q=e[45];let _;e[46]!==q?(_=t(de,{children:q}),e[46]=q,e[47]=_):_=e[47];let N;e[48]!==r?(N=r("errors"),e[48]=r,e[49]=N):N=e[49];let I;e[50]!==N?(I=t(de,{children:N}),e[50]=N,e[51]=I):I=e[51];let C;e[52]!==r?(C=r("db size"),e[52]=r,e[53]=C):C=e[53];let R;e[54]!==C?(R=t(de,{children:C}),e[54]=C,e[55]=R):R=e[55];let k;e[56]!==x||e[57]!==_||e[58]!==I||e[59]!==R?(k=t(ct,{children:o(He,{children:[x,_,I,R]})}),e[56]=x,e[57]=_,e[58]=I,e[59]=R,e[60]=k):k=e[60];let b;if(e[61]!==a||e[62]!==r){let A;e[64]!==r?(A=T=>o(He,{"data-testid":`mt-agg-row-${T.shard}`,children:[t(oe,{children:T.shard}),T.metrics===null?t(oe,{className:"text-destructive",colSpan:3,children:T.error??r("unreachable")}):o(Ve,{children:[t(oe,{className:"tabular-nums",children:T.metrics.requests}),t(oe,{className:"tabular-nums",children:T.metrics.errors}),t(oe,{className:"tabular-nums",children:Ye(T.metrics.databaseSize)})]})]},T.shard),e[64]=r,e[65]=A):A=e[65],b=a.map(A),e[61]=a,e[62]=r,e[63]=b}else b=e[63];let D;e[66]!==b?(D=t(mt,{children:b}),e[66]=b,e[67]=D):D=e[67];let L;e[68]!==k||e[69]!==D?(L=t(he,{className:"overflow-hidden py-0",children:t(ge,{className:"px-0",children:o(dt,{"data-testid":"mt-agg-table",children:[k,D]})})}),e[68]=k,e[69]=D,e[70]=L):L=e[70];let O;return e[71]!==p||e[72]!==L?(O=o("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[p,L]}),e[71]=p,e[72]=L,e[73]=O):O=e[73],O},tr=l=>{const e=Math.floor(l/1e3),s=Math.floor(e/3600),a=Math.floor(e%3600/60),r=e%60;return s>0?`${s.toString()}h ${a.toString()}m`:a>0?`${a.toString()}m ${r.toString()}s`:`${r.toString()}s`},rr=(l,e)=>{const s=l+e;return s===0?"—":`${(l/s*100).toFixed(1)}%`},ot=l=>l<=0?"—":l<1?`${(l*1e3).toFixed(0)}μs`:l<1e3?`${l.toFixed(1)}ms`:`${(l/1e3).toFixed(2)}s`,ar=l=>{const e=Te(75),{currentDelta:s,errorRate:a,history:r,latencyPercentiles:d,metrics:i}=l,n=pe();let S;e[0]!==r||e[1]!==n?(S=r.length>=2?t(ut,{ariaLabel:n("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:r,testId:"mt-sparkline"}):void 0,e[0]=r,e[1]=n,e[2]=S):S=e[2];let v;e[3]!==s||e[4]!==r.length||e[5]!==n?(v=r.length>=2?o(Ve,{children:[t("span",{className:"font-semibold text-foreground",children:`+${s.toLocaleString()}`})," ",n("last interval")]}):t("span",{"data-testid":"mt-sparkline-empty",children:n("collecting samples…")}),e[3]=s,e[4]=r.length,e[5]=n,e[6]=v):v=e[6];let $;e[7]!==n?($=n("Requests"),e[7]=n,e[8]=$):$=e[8];let h;e[9]!==i.requests||e[10]!==S||e[11]!==v||e[12]!==$?(h=t(me,{chart:S,footer:v,label:$,testId:"mt-requests",value:i.requests}),e[9]=i.requests,e[10]=S,e[11]=v,e[12]=$,e[13]=h):h=e[13];let m;e[14]!==a||e[15]!==n?(m=n("{rate} error rate",{rate:a}),e[14]=a,e[15]=n,e[16]=m):m=e[16];let g;e[17]!==n?(g=n("Errors"),e[17]=n,e[18]=g):g=e[18];let y;e[19]!==a||e[20]!==i.errors?(y=o(Ve,{children:[i.errors," (",a,")"]}),e[19]=a,e[20]=i.errors,e[21]=y):y=e[21];let w;e[22]!==m||e[23]!==g||e[24]!==y?(w=t(me,{footer:m,label:g,testId:"mt-errors",value:y}),e[22]=m,e[23]=g,e[24]=y,e[25]=w):w=e[25];let M;e[26]!==d.p90?(M=d.p90>0?`P90 ${ot(d.p90)}`:void 0,e[26]=d.p90,e[27]=M):M=e[27];let c;e[28]!==n?(c=n("P95 latency"),e[28]=n,e[29]=c):c=e[29];let p;e[30]!==d.p95?(p=d.p95>0?ot(d.p95):"—",e[30]=d.p95,e[31]=p):p=e[31];let f;e[32]!==c||e[33]!==p||e[34]!==M?(f=t(me,{footer:M,label:c,testId:"mt-p95",value:p}),e[32]=c,e[33]=p,e[34]=M,e[35]=f):f=e[35];let x;e[36]!==i.cache||e[37]!==n?(x=i.cache===null?void 0:`${i.cache.entries.toLocaleString()} ${n("cache entries")}`,e[36]=i.cache,e[37]=n,e[38]=x):x=e[38];let q;e[39]!==n?(q=n("Database size"),e[39]=n,e[40]=q):q=e[40];let _;e[41]!==i.databaseSize?(_=Ye(i.databaseSize),e[41]=i.databaseSize,e[42]=_):_=e[42];let N;e[43]!==x||e[44]!==q||e[45]!==_?(N=t(me,{footer:x,label:q,testId:"mt-db-size",value:_}),e[43]=x,e[44]=q,e[45]=_,e[46]=N):N=e[46];let I;e[47]!==n?(I=n("Shard"),e[47]=n,e[48]=I):I=e[48];let C;e[49]!==i.shard||e[50]!==I?(C=t(me,{label:I,testId:"mt-shard",value:i.shard}),e[49]=i.shard,e[50]=I,e[51]=C):C=e[51];let R;e[52]!==n?(R=n("Uptime"),e[52]=n,e[53]=R):R=e[53];let k;e[54]!==i.uptimeMs?(k=tr(i.uptimeMs),e[54]=i.uptimeMs,e[55]=k):k=e[55];let b;e[56]!==R||e[57]!==k?(b=t(me,{label:R,testId:"mt-uptime",value:k}),e[56]=R,e[57]=k,e[58]=b):b=e[58];let D;e[59]!==n?(D=n("Cache hit rate"),e[59]=n,e[60]=D):D=e[60];let L;e[61]!==i.cache||e[62]!==n?(L=i.cache===null?n("no cache configured"):n("{rate} ({count} entries)",{count:i.cache.entries,rate:rr(i.cache.hits,i.cache.misses)}),e[61]=i.cache,e[62]=n,e[63]=L):L=e[63];let O;e[64]!==D||e[65]!==L?(O=t(me,{label:D,testId:"mt-cache",value:L}),e[64]=D,e[65]=L,e[66]=O):O=e[66];let A;return e[67]!==f||e[68]!==N||e[69]!==C||e[70]!==b||e[71]!==O||e[72]!==h||e[73]!==w?(A=o("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","data-testid":"mt-stats",children:[h,w,f,N,C,b,O]}),e[67]=f,e[68]=N,e[69]=C,e[70]=b,e[71]=O,e[72]=h,e[73]=w,e[74]=A):A=e[74],A},Ge=l=>l>=100?"critical":l>=50?"warning":"good",Oe=l=>l<1?`${(l*1e3).toFixed(0)}μs`:l<1e3?`${l.toFixed(1)}ms`:`${(l/1e3).toFixed(2)}s`,Be=l=>l>=1e9?`${(l/1e9).toFixed(1)}B`:l>=1e6?`${(l/1e6).toFixed(1)}M`:l>=1e3?`${(l/1e3).toFixed(1)}K`:l.toLocaleString(),lr=l=>{const e=Te(3),{level:s}=l;if(s==="critical"){let r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(r=t(et,{variant:"destructive",children:"Slow"}),e[0]=r):r=e[0],r}if(s==="warning"){let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",children:"Moderate"}),e[1]=r):r=e[1],r}let a;return e[2]===Symbol.for("react.memo_cache_sentinel")?(a=t("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-success/10 px-2 py-0.5 text-xs font-medium text-success",children:"Fast"}),e[2]=a):a=e[2],a},sr=(l,e)=>{const s=[...l];return s.sort((a,r)=>{switch(e){case"avgTime":return r.avgDurationMs-a.avgDurationMs;case"execCount":return r.execCount-a.execCount;case"rowsRead":return r.rowsRead-a.rowsRead;default:return r.totalDurationMs-a.totalDurationMs}}),s},nr=l=>{const e=Te(161),{queryStats:s}=l,a=pe(),[r,d]=fe("totalTime");let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Set,e[0]=i):i=e[0];const[n,S]=fe(i);let v;e[1]===Symbol.for("react.memo_cache_sentinel")?(v=C=>{C!==null&&d(C)},e[1]=v):v=e[1];const $=v;let h,m,g,y,w,M,c,p,f,x;if(e[2]!==n||e[3]!==s||e[4]!==r||e[5]!==a){g=Symbol.for("react.early_return_sentinel");e:{const C=sr(s,r);let R;e[16]!==s?(R=s.filter(ir),e[16]=s,e[17]=R):R=e[17];const k=R.length;let b;e[18]!==s?(b=s.filter(or),e[18]=s,e[19]=b):b=e[19];const D=b.length;let L;e[20]!==s?(L=s.filter(cr),e[20]=s,e[21]=L):L=e[21];const O=L.length;let A;e[22]===Symbol.for("react.memo_cache_sentinel")?(A=F=>{S(ce=>{const Q=new Set(ce);return Q.has(F)?Q.delete(F):Q.add(F),Q})},e[22]=A):A=e[22];const T=A;if(s.length===0){let F;e[23]!==a?(F=a("No query insights yet"),e[23]=a,e[24]=F):F=e[24];let ce;e[25]!==F?(ce=t("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:F}),e[25]=F,e[26]=ce):ce=e[26];let Q;e[27]!==a?(Q=a("Query insights appear once statements are executed against this shard."),e[27]=a,e[28]=Q):Q=e[28];let ue;e[29]!==Q?(ue=t("p",{className:"mt-1 text-sm",children:Q}),e[29]=Q,e[30]=ue):ue=e[30];let je;e[31]!==ce||e[32]!==ue?(je=t(he,{children:t(ge,{className:"py-12",children:o("div",{className:"text-center text-muted-foreground",children:[ce,ue]})})}),e[31]=ce,e[32]=ue,e[33]=je):je=e[33],g=je;break e}c="space-y-4",p="qi-root";let K;e[34]!==a?(K=a("Critical queries"),e[34]=a,e[35]=K):K=e[35];let j;e[36]!==K?(j=t(Ue,{className:"pb-2",children:t(Pe,{className:"text-sm font-medium",children:K})}),e[36]=K,e[37]=j):j=e[37];let z;e[38]!==k?(z=t("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:k}),e[38]=k,e[39]=z):z=e[39];let B;e[40]!==a?(B=a(">100ms avg execution"),e[40]=a,e[41]=B):B=e[41];let J;e[42]!==B?(J=t("p",{className:"text-xs text-muted-foreground",children:B}),e[42]=B,e[43]=J):J=e[43];let H;e[44]!==z||e[45]!==J?(H=o(ge,{children:[z,J]}),e[44]=z,e[45]=J,e[46]=H):H=e[46];let G;e[47]!==j||e[48]!==H?(G=o(he,{children:[j,H]}),e[47]=j,e[48]=H,e[49]=G):G=e[49];let W;e[50]!==a?(W=a("Moderate queries"),e[50]=a,e[51]=W):W=e[51];let X;e[52]!==W?(X=t(Ue,{className:"pb-2",children:t(Pe,{className:"text-sm font-medium",children:W})}),e[52]=W,e[53]=X):X=e[53];let Y;e[54]!==D?(Y=t("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:D}),e[54]=D,e[55]=Y):Y=e[55];let V;e[56]!==a?(V=a("50–100ms avg execution"),e[56]=a,e[57]=V):V=e[57];let Z;e[58]!==V?(Z=t("p",{className:"text-xs text-muted-foreground",children:V}),e[58]=V,e[59]=Z):Z=e[59];let ee;e[60]!==Y||e[61]!==Z?(ee=o(ge,{children:[Y,Z]}),e[60]=Y,e[61]=Z,e[62]=ee):ee=e[62];let te;e[63]!==X||e[64]!==ee?(te=o(he,{children:[X,ee]}),e[63]=X,e[64]=ee,e[65]=te):te=e[65];let re;e[66]!==a?(re=a("Fast queries"),e[66]=a,e[67]=re):re=e[67];let ae;e[68]!==re?(ae=t(Ue,{className:"pb-2",children:t(Pe,{className:"text-sm font-medium",children:re})}),e[68]=re,e[69]=ae):ae=e[69];let le;e[70]!==O?(le=t("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:O}),e[70]=O,e[71]=le):le=e[71];let se;e[72]!==a?(se=a("<50ms avg execution"),e[72]=a,e[73]=se):se=e[73];let ne;e[74]!==se?(ne=t("p",{className:"text-xs text-muted-foreground",children:se}),e[74]=se,e[75]=ne):ne=e[75];let u;e[76]!==le||e[77]!==ne?(u=o(ge,{children:[le,ne]}),e[76]=le,e[77]=ne,e[78]=u):u=e[78];let E;e[79]!==ae||e[80]!==u?(E=o(he,{children:[ae,u]}),e[79]=ae,e[80]=u,e[81]=E):E=e[81],e[82]!==G||e[83]!==te||e[84]!==E?(f=o("div",{className:"grid gap-4 md:grid-cols-3",children:[G,te,E]}),e[82]=G,e[83]=te,e[84]=E,e[85]=f):f=e[85];let U;e[86]!==a?(U=a("Query leaderboard"),e[86]=a,e[87]=U):U=e[87];let P;e[88]!==U?(P=t("h3",{className:"text-lg font-semibold",children:U}),e[88]=U,e[89]=P):P=e[89];let ie;e[90]!==r||e[91]!==a?(ie=a("Slow queries sorted by {sortField}",{sortField:a(r)}),e[90]=r,e[91]=a,e[92]=ie):ie=e[92];let xe;e[93]!==ie?(xe=t("p",{className:"text-sm text-muted-foreground",children:ie}),e[93]=ie,e[94]=xe):xe=e[94];let be;e[95]!==P||e[96]!==xe?(be=o("div",{children:[P,xe]}),e[95]=P,e[96]=xe,e[97]=be):be=e[97];let ve;e[98]!==a?(ve=a("Sort by"),e[98]=a,e[99]=ve):ve=e[99];let ye;e[100]!==ve?(ye=t("span",{className:"text-sm text-muted-foreground",children:ve}),e[100]=ve,e[101]=ye):ye=e[101];let Ne;e[102]!==a?(Ne=a("Sort queries by"),e[102]=a,e[103]=Ne):Ne=e[103];let Ae;e[104]===Symbol.for("react.memo_cache_sentinel")?(Ae=t(jt,{}),e[104]=Ae):Ae=e[104];let Se;e[105]!==Ne?(Se=t(Ut,{"aria-label":Ne,className:"w-[140px]","data-testid":"qi-sort",children:Ae}),e[105]=Ne,e[106]=Se):Se=e[106];let $e;e[107]!==a?($e=a("Total time"),e[107]=a,e[108]=$e):$e=e[108];let we;e[109]!==$e?(we=t(Qe,{value:"totalTime",children:$e}),e[109]=$e,e[110]=we):we=e[110];let qe;e[111]!==a?(qe=a("Avg time"),e[111]=a,e[112]=qe):qe=e[112];let ke;e[113]!==qe?(ke=t(Qe,{value:"avgTime",children:qe}),e[113]=qe,e[114]=ke):ke=e[114];let Me;e[115]!==a?(Me=a("Execution count"),e[115]=a,e[116]=Me):Me=e[116];let _e;e[117]!==Me?(_e=t(Qe,{value:"execCount",children:Me}),e[117]=Me,e[118]=_e):_e=e[118];let Ce;e[119]!==a?(Ce=a("Rows read"),e[119]=a,e[120]=Ce):Ce=e[120];let Ie;e[121]!==Ce?(Ie=t(Qe,{value:"rowsRead",children:Ce}),e[121]=Ce,e[122]=Ie):Ie=e[122];let Re;e[123]!==we||e[124]!==ke||e[125]!==_e||e[126]!==Ie?(Re=o(Pt,{children:[we,ke,_e,Ie]}),e[123]=we,e[124]=ke,e[125]=_e,e[126]=Ie,e[127]=Re):Re=e[127];let De;e[128]!==r||e[129]!==Se||e[130]!==Re?(De=o(Qt,{onValueChange:$,value:r,children:[Se,Re]}),e[128]=r,e[129]=Se,e[130]=Re,e[131]=De):De=e[131];let Fe;e[132]!==ye||e[133]!==De?(Fe=o("div",{className:"flex items-center gap-2",children:[ye,De]}),e[132]=ye,e[133]=De,e[134]=Fe):Fe=e[134],e[135]!==be||e[136]!==Fe?(x=o("div",{className:"flex items-center justify-between",children:[be,Fe]}),e[135]=be,e[136]=Fe,e[137]=x):x=e[137],m=he;let Le;e[138]!==a?(Le=a("Statements"),e[138]=a,e[139]=Le):Le=e[139];let Ke;e[140]!==Le?(Ke=t(Pe,{children:Le}),e[140]=Le,e[141]=Ke):Ke=e[141],M=o(Ue,{children:[Ke,t(It,{children:a("{count} tracked statements",{count:C.length})})]}),h=ge,y="space-y-2";let Ee;e[142]!==n||e[143]!==a?(Ee=F=>{const ce=F.normalizedSql,Q=n.has(ce),ue=Ge(F.avgDurationMs);return o("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[o("button",{"aria-expanded":Q,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:()=>{T(ce)},type:"button",children:[o("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[t(lr,{level:ue}),t("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:F.normalizedSql})]}),o("div",{className:"flex shrink-0 items-center gap-4",children:[o("div",{className:"text-right",children:[t("div",{className:"text-sm font-medium",children:Oe(F.totalDurationMs)}),t("div",{className:"text-xs text-muted-foreground",children:a("total")})]}),o("div",{className:"text-right",children:[t("div",{className:"text-sm font-medium",children:Oe(F.avgDurationMs)}),t("div",{className:"text-xs text-muted-foreground",children:a("avg")})]}),F.p95DurationMs!==void 0&&o("div",{className:"text-right",children:[t("div",{className:"text-sm font-medium",children:Oe(F.p95DurationMs)}),t("div",{className:"text-xs text-muted-foreground",children:a("p95")})]}),o("div",{className:"text-right",children:[t("div",{className:"text-sm font-medium",children:Be(F.execCount)}),t("div",{className:"text-xs text-muted-foreground",children:a("calls")})]})]})]}),Q&&o("div",{className:"space-y-3 border-t bg-muted/30 p-4",children:[o("div",{children:[t("p",{className:"mb-2 text-sm font-medium",children:a("Full statement")}),t("pre",{className:"overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm whitespace-pre-wrap break-all",children:F.normalizedSql})]}),o("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[F.p50DurationMs!==void 0&&o("div",{children:[t("span",{className:"text-muted-foreground",children:a("p50")}),t("span",{className:"block font-medium tabular-nums",children:Oe(F.p50DurationMs)})]}),o("div",{children:[t("span",{className:"text-muted-foreground",children:a("Exec count")}),t("span",{className:"block font-medium tabular-nums",children:Be(F.execCount)})]}),o("div",{children:[t("span",{className:"text-muted-foreground",children:a("Total time")}),t("span",{className:"block font-medium tabular-nums",children:Oe(F.totalDurationMs)})]}),o("div",{children:[t("span",{className:"text-muted-foreground",children:a("Rows read")}),t("span",{className:"block font-medium tabular-nums",children:Be(F.rowsRead)})]}),o("div",{children:[t("span",{className:"text-muted-foreground",children:a("Rows written")}),t("span",{className:"block font-medium tabular-nums",children:Be(F.rowsWritten)})]})]})]})]},ce)},e[142]=n,e[143]=a,e[144]=Ee):Ee=e[144],w=C.map(Ee)}e[2]=n,e[3]=s,e[4]=r,e[5]=a,e[6]=h,e[7]=m,e[8]=g,e[9]=y,e[10]=w,e[11]=M,e[12]=c,e[13]=p,e[14]=f,e[15]=x}else h=e[6],m=e[7],g=e[8],y=e[9],w=e[10],M=e[11],c=e[12],p=e[13],f=e[14],x=e[15];if(g!==Symbol.for("react.early_return_sentinel"))return g;let q;e[145]!==y||e[146]!==w?(q=t("div",{className:y,children:w}),e[145]=y,e[146]=w,e[147]=q):q=e[147];let _;e[148]!==h||e[149]!==q?(_=t(h,{children:q}),e[148]=h,e[149]=q,e[150]=_):_=e[150];let N;e[151]!==m||e[152]!==_||e[153]!==M?(N=o(m,{children:[M,_]}),e[151]=m,e[152]=_,e[153]=M,e[154]=N):N=e[154];let I;return e[155]!==N||e[156]!==c||e[157]!==p||e[158]!==f||e[159]!==x?(I=o("div",{className:c,"data-testid":p,children:[f,x,N]}),e[155]=N,e[156]=c,e[157]=p,e[158]=f,e[159]=x,e[160]=I):I=e[160],I};function ir(l){return Ge(l.avgDurationMs)==="critical"}function or(l){return Ge(l.avgDurationMs)==="warning"}function cr(l){return Ge(l.avgDurationMs)==="good"}const dr=["1m","5m","15m","1h"],mr=l=>new Date(l).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),ur=l=>l.map(e=>({avg:Math.round(e.avgDurationMs*100)/100,execs:e.execCount,label:mr(e.bucketMs)})),hr=({shardKey:l=""})=>{const e=pe(),[s,a]=fe("15m"),r=Je(ze.getQueryInsights,{range:s},{live:!0,shardKey:l}).data,d=ur(r?.buckets??[]);return o("div",{className:"flex flex-col gap-4","data-testid":"qi-range",children:[o("div",{className:"flex flex-wrap items-center gap-2",children:[t("div",{className:"flex gap-1 rounded-lg border border-border p-0.5","data-testid":"qi-ranges",role:"group",children:dr.map(i=>t("button",{"aria-pressed":i===s,className:Et("rounded px-2 py-1 text-xs outline-none transition-colors hover:bg-accent focus-visible:bg-accent",i===s&&"bg-accent font-medium text-foreground"),"data-testid":`qi-range-${i}`,onClick:()=>{a(i)},type:"button",children:i},i))}),r?.capped===!0&&t(et,{"data-testid":"qi-capped",variant:"secondary",children:e("showing a capped set")})]}),d.length===0?t(Kt,{description:e("Statements executed in the selected window appear here, with throughput and latency over time."),testId:"qi-empty",title:e("No queries in this window.")}):o("div",{className:"grid gap-4 lg:grid-cols-2",children:[o("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-throughput",children:[t("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Throughput")}),t(at,{height:140,width:"100%",children:o(Tt,{data:d,children:[t(lt,{strokeDasharray:"3 3",vertical:!1}),t(st,{dataKey:"label",fontSize:10,tickLine:!1}),t(nt,{allowDecimals:!1,fontSize:10,tickLine:!1,width:32}),t(it,{}),t(Ot,{dataKey:"execs",fill:"var(--color-primary)",fillOpacity:.15,stroke:"var(--color-primary)",type:"monotone"})]})})]}),o("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-latency",children:[t("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Mean latency (ms)")}),t(at,{height:140,width:"100%",children:o(zt,{data:d,children:[t(lt,{strokeDasharray:"3 3",vertical:!1}),t(st,{dataKey:"label",fontSize:10,tickLine:!1}),t(nt,{fontSize:10,tickLine:!1,width:32}),t(it,{}),t(At,{dataKey:"avg",dot:!1,stroke:"var(--color-destructive)",type:"monotone"})]})})]})]}),t(nr,{queryStats:r?.entries??[]})]})},gr=kt(ze.getMetrics),fr=(l,e)=>l?e:"overview",Ur=({initialShardKey:l})=>{const e=ft(),s=pe(),{queryShardKey:a,setShardKey:r,shardKey:d}=yt(l),[i,n]=fe("overview"),[S,v]=fe([]),$=We(null),h=We(null),m=We(!0);tt(()=>(m.current=!0,()=>{m.current=!1}),[]);const g=vt(a),{data:y,error:w,liveError:M}=Je(ze.getMetrics,{},{live:!0,shardKey:a}),c=y??null;tt(()=>{if(y===void 0)return;Mt(a);const T=y,K=$.current,j=h.current!==null&&h.current!==T.shard;if(h.current=T.shard,$.current=T.requests,j){v([]);return}K!==null&&T.requests>=K&&v(z=>[...z,T.requests-K].slice(-30))},[y,a]);const[p,f]=fe(null),[x,q]=fe(!1),_=async()=>{q(!0);const T=Lt(d,_t());try{const K=await Promise.all(T.map(async j=>{try{const z=await e.query(gr,{},wt(j));return{error:null,metrics:z,shard:j===""?z.shard:j}}catch(z){return{error:qt(z),metrics:null,shard:j===""?"__root__":j}}}));m.current&&f(K)}finally{m.current&&q(!1)}},N=p===null?null:Rt(p),I=c===null||c.requests===0?"—":`${(c.errors/c.requests*100).toFixed(1)}%`,C=S.length>0?S.at(-1):0,R=c?Dt(c):{p90:0,p95:0},k=pt(()=>{if(!c||!("queryStats"in c))return;const T=c.queryStats;if(!(!T||!Array.isArray(T)))return Ft(T)},[c]),b=fr(k!==void 0,i),D=()=>{$t(_())},L=()=>{f(null)},O=()=>{n("overview")},A=()=>{n("query-insights")};return o("div",{className:"flex flex-col gap-4","data-testid":"lunora-metrics",children:[o("div",{className:"flex flex-wrap items-center gap-2",children:[t(bt,{onChange:r,testId:"mt-shard-input",value:d}),t(xt,{message:M,prefix:"mt"}),t(rt,{"data-testid":"mt-aggregate",disabled:x,onClick:D,size:"sm",type:"button",variant:"secondary",children:s(x?"Aggregating…":"All shards")}),p!==null&&t(rt,{"data-testid":"mt-aggregate-clear",onClick:L,size:"sm",type:"button",variant:"ghost",children:s("Hide")}),t("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"mt-cf-link",href:Nt,rel:"noreferrer",target:"_blank",children:s("Open in Cloudflare")})]}),w!==null&&t("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:w}),k!==void 0&&o("div",{className:"flex gap-2 border-b","data-testid":"mt-tabs",children:[t("button",{className:`pb-2 text-sm font-medium transition-colors ${b==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:O,type:"button",children:s("Overview")}),o("button",{className:`pb-2 text-sm font-medium transition-colors ${b==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:A,type:"button",children:[s("Query insights"),k.length>0&&t("span",{className:"ml-1.5 rounded-full bg-primary/10 px-1.5 py-0.5 text-xs text-primary",children:k.length})]})]}),b==="query-insights"&&k!==void 0&&t(hr,{shardKey:a}),b==="overview"&&c!==null&&t(ar,{currentDelta:C,errorRate:I,history:S,latencyPercentiles:R,metrics:c}),b==="overview"&&c===null&&null,b==="overview"&&t(Zt,{onOpenTrace:g,shardKey:a}),b==="overview"&&N!==null&&p!==null&&t(er,{aggregate:N,shardResults:p})]})};export{Ur as MetricsPanel};
|
|
1
|
+
import{useLunora as ft}from"@lunora/react";import{useState as fe,useRef as We,useEffect as tt,useMemo as pt}from"react";import{L as xt}from"../packem_shared/live-status-CmuRLFKf.js";import{ShardInput as bt}from"../packem_shared/ShardInput-BVn2iCU0.js";import{u as rt}from"../packem_shared/button-BkCrNcAs.js";import{N as Je}from"../packem_shared/use-admin-query-CnnyWJXM.js";import{f as vt}from"../packem_shared/use-open-trace-CniEgUdp.js";import{S as yt}from"../packem_shared/use-shard-key-B2JtNa5m.js";import{useT as pe}from"../packem_shared/DEFAULT_LOCALE-BZ4NojpD.js";import{ADMIN_FUNCTIONS as ze}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{c as Nt}from"../packem_shared/cf-links-Dmg86v1D.js";import{m as St,l as Ye,f as $t,d as wt,b as qt,g as kt}from"../packem_shared/internal-zkEvTqy8.js";import{r as Mt,l as _t}from"../packem_shared/shard-history-DMEW5VBE.js";import{c as Te}from"react/compiler-runtime";import{f as Ct}from"../packem_shared/log-fields-CoL3hsIQ.js";import{g as et}from"../packem_shared/badge-BbuuAio7.js";import{c as he,f as ge,n as Ue,m as Pe,p as It}from"../packem_shared/card-BMKx5UdA.js";import{m as de,n as ct,f as He,p as oe,d as dt,b as mt}from"../packem_shared/table-DZAB8cs3.js";import{S as ut}from"../packem_shared/sparkline-BNvxiJj_.js";import{jsx as t,jsxs as o,Fragment as Ve}from"react/jsx-runtime";import{aggregateMetrics as Rt,computeLatencyPercentiles as Dt,enrichQueryStats as Ft,shardsToAggregate as Lt}from"../packem_shared/aggregateMetrics-BNfajLa2.js";import{g as me}from"../packem_shared/stat-card-BGJdhfm6.js";import{ResponsiveContainer as at,AreaChart as Tt,CartesianGrid as lt,XAxis as st,YAxis as nt,Tooltip as it,Area as Ot,LineChart as zt,Line as At}from"recharts";import{E as Kt}from"../packem_shared/empty-state-Cg7t_8qu.js";import{c as Et}from"../packem_shared/utils-bhneXptQ.js";import{w as jt,z as Ut,_ as Qe,S as Pt,x as Qt}from"../packem_shared/select-BssZMiFY.js";const Bt=(l,e)=>l<e?-1:l>e?1:0,Ze=l=>{if(l===void 0)return"null";if(typeof l=="bigint")throw new TypeError("stableStringify: cannot use a bigint in a stable JSON cache key — pass it as a string, or use stableWireKey");if(l===null||typeof l!="object")return JSON.stringify(l);if(Array.isArray(l))return`[${l.map(d=>Ze(d)).join(",")}]`;const e=Object.getPrototypeOf(l);if(e!==null&&e!==Object.prototype){const d=l.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${d} in a stable JSON cache key — only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}const s=l,a=Object.keys(s).toSorted(Bt),r=[];for(const d of a){const i=s[d];i!==void 0&&r.push(`${JSON.stringify(d)}:${Ze(i)}`)}return`{${r.join(",")}}`},ht=(l,e,s)=>`${l}:${e}:${Ze(s??{})}`,gt=(l,e)=>l==="gauge"?e.last:l==="histogram"?e.sum/Math.max(1,e.count):e.sum,Jt=(l,e)=>gt(l,e),Ht=l=>gt(l.kind,l),Xe=l=>Number.isInteger(l)?l.toLocaleString():l.toLocaleString(void 0,{maximumFractionDigits:2}),Gt=l=>Array.isArray(l?.series)?l.series:[],Wt="FUNCTION_NOT_FOUND",Xt=l=>{const e=new Map;if(!Array.isArray(l?.series))return e;for(const s of l.series)e.set(ht(s.kind,s.name,s.attributes),s.points);return e},Yt={counter:"secondary",gauge:"default",histogram:"outline"},Vt=l=>{const e=Te(18),{name:s,onOpenTrace:a,traceId:r}=l,d=pe();if(r===void 0){let m;return e[0]===Symbol.for("react.memo_cache_sentinel")?(m=t("span",{className:"text-muted-foreground",children:"—"}),e[0]=m):m=e[0],m}let i;e[1]!==r?(i=r.slice(0,8),e[1]=r,e[2]=i):i=e[2];const n=i;if(a===void 0){const m=`mt-instrument-trace-${s}`;let g;return e[3]!==n||e[4]!==m||e[5]!==r?(g=t("span",{className:"text-muted-foreground","data-testid":m,title:r,children:n}),e[3]=n,e[4]=m,e[5]=r,e[6]=g):g=e[6],g}const S=`mt-instrument-trace-${s}`;let v;e[7]!==a||e[8]!==r?(v=()=>{a(r)},e[7]=a,e[8]=r,e[9]=v):v=e[9];let $;e[10]!==d||e[11]!==r?($=d("Open the exemplar trace {trace}",{trace:r}),e[10]=d,e[11]=r,e[12]=$):$=e[12];let h;return e[13]!==n||e[14]!==S||e[15]!==v||e[16]!==$?(h=t("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":S,onClick:v,title:$,type:"button",children:n}),e[13]=n,e[14]=S,e[15]=v,e[16]=$,e[17]=h):h=e[17],h},Zt=l=>{const e=Te(105),{onOpenTrace:s,shardKey:a}=l,r=pe();let d;e[0]===Symbol.for("react.memo_cache_sentinel")?(d={},e[0]=d):d=e[0];let i;e[1]!==a?(i={live:!0,shardKey:a},e[1]=a,e[2]=i):i=e[2];const{data:n,error:S,errorSource:v}=Je(ze.getMetricSeries,d,i);let $;e[3]===Symbol.for("react.memo_cache_sentinel")?($={},e[3]=$):$=e[3];let h;e[4]!==a?(h={live:!0,shardKey:a},e[4]=a,e[5]=h):h=e[5];const{data:m}=Je(ze.getMetricHistory,$,h);let g,y,w,M,c,p,f,x,q,_,N,I,C;if(e[6]!==n||e[7]!==S||e[8]!==v||e[9]!==m||e[10]!==s||e[11]!==r){x=Symbol.for("react.early_return_sentinel");e:{const O=Gt(n),A=St(v)===Wt;if(S!==null&&!A){let u;e[25]!==r?(u=r("Instruments"),e[25]=r,e[26]=u):u=e[26];let E;e[27]!==u?(E=t("h3",{className:"text-sm font-semibold text-foreground",children:u}),e[27]=u,e[28]=E):E=e[28];let U;e[29]!==S||e[30]!==r?(U=r("Instruments unavailable: {error}",{error:S}),e[29]=S,e[30]=r,e[31]=U):U=e[31];let P;e[32]!==U?(P=t("span",{className:"text-xs text-muted-foreground","data-testid":"mt-instruments-error",role:"status",children:U}),e[32]=U,e[33]=P):P=e[33];let ie;e[34]!==E||e[35]!==P?(ie=o("section",{className:"flex flex-col gap-2","data-testid":"mt-instruments",children:[E,P]}),e[34]=E,e[35]=P,e[36]=ie):ie=e[36],x=ie;break e}if(O.length===0){x=null;break e}const T=Xt(m);let K;e[37]!==r?(K=u=>r(u==="counter"?"Counter":u==="gauge"?"Gauge":"Histogram"),e[37]=r,e[38]=K):K=e[38];const j=K;c="flex flex-col gap-2",p="mt-instruments";let z;e[39]!==r?(z=r("Instruments"),e[39]=r,e[40]=z):z=e[40],e[41]!==z?(f=t("h3",{className:"text-sm font-semibold text-foreground",children:z}),e[41]=z,e[42]=f):f=e[42],M=he,C="overflow-hidden py-0",w=ge,I="px-0",y=dt,_="mt-instruments-table";let B;e[43]!==r?(B=r("name"),e[43]=r,e[44]=B):B=e[44];let J;e[45]!==B?(J=t(de,{children:B}),e[45]=B,e[46]=J):J=e[46];let H;e[47]!==r?(H=r("kind"),e[47]=r,e[48]=H):H=e[48];let G;e[49]!==H?(G=t(de,{children:H}),e[49]=H,e[50]=G):G=e[50];let W;e[51]!==r?(W=r("value"),e[51]=r,e[52]=W):W=e[52];let X;e[53]!==W?(X=t(de,{className:"text-right",children:W}),e[53]=W,e[54]=X):X=e[54];let Y;e[55]!==r?(Y=r("count"),e[55]=r,e[56]=Y):Y=e[56];let V;e[57]!==Y?(V=t(de,{className:"text-right",children:Y}),e[57]=Y,e[58]=V):V=e[58];let Z;e[59]!==r?(Z=r("range"),e[59]=r,e[60]=Z):Z=e[60];let ee;e[61]!==Z?(ee=t(de,{className:"text-right",children:Z}),e[61]=Z,e[62]=ee):ee=e[62];let te;e[63]!==r?(te=r("trend"),e[63]=r,e[64]=te):te=e[64];let re;e[65]!==te?(re=t(de,{children:te}),e[65]=te,e[66]=re):re=e[66];let ae;e[67]!==r?(ae=r("trace"),e[67]=r,e[68]=ae):ae=e[68];let le;e[69]!==ae?(le=t(de,{children:ae}),e[69]=ae,e[70]=le):le=e[70];let se;e[71]!==r?(se=r("dimensions"),e[71]=r,e[72]=se):se=e[72];let ne;e[73]!==se?(ne=t(de,{children:se}),e[73]=se,e[74]=ne):ne=e[74],e[75]!==J||e[76]!==G||e[77]!==X||e[78]!==V||e[79]!==ee||e[80]!==re||e[81]!==le||e[82]!==ne?(N=t(ct,{children:o(He,{children:[J,G,X,V,ee,re,le,ne]})}),e[75]=J,e[76]=G,e[77]=X,e[78]=V,e[79]=ee,e[80]=re,e[81]=le,e[82]=ne,e[83]=N):N=e[83],g=mt,q=O.map(u=>{const E=Ct(u.attributes),U=ht(u.kind,u.name,u.attributes),P=(T.get(U)??[]).map(ie=>Jt(u.kind,ie));return o(He,{"data-testid":`mt-instrument-${u.name}`,children:[t(oe,{className:"font-mono text-xs",title:u.functionPath,children:u.name}),t(oe,{children:t(et,{variant:Yt[u.kind],children:j(u.kind)})}),t(oe,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${u.name}`,children:Xe(Ht(u))}),t(oe,{className:"text-right tabular-nums text-muted-foreground",children:u.count.toLocaleString()}),t(oe,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:u.min===u.max?"—":`${Xe(u.min)}–${Xe(u.max)}`}),t(oe,{children:P.length>=2?t(ut,{ariaLabel:r("{name} trend",{name:u.name}),className:"h-6 w-24 text-foreground",series:P,testId:`mt-instrument-trend-${u.name}`}):t("span",{className:"text-xs text-muted-foreground",children:"—"})}),t(oe,{className:"font-mono text-xs",children:t(Vt,{name:u.name,onOpenTrace:s,traceId:u.exemplarTraceId})}),t(oe,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:E,children:E===""?"—":E})]},U)})}e[6]=n,e[7]=S,e[8]=v,e[9]=m,e[10]=s,e[11]=r,e[12]=g,e[13]=y,e[14]=w,e[15]=M,e[16]=c,e[17]=p,e[18]=f,e[19]=x,e[20]=q,e[21]=_,e[22]=N,e[23]=I,e[24]=C}else g=e[12],y=e[13],w=e[14],M=e[15],c=e[16],p=e[17],f=e[18],x=e[19],q=e[20],_=e[21],N=e[22],I=e[23],C=e[24];if(x!==Symbol.for("react.early_return_sentinel"))return x;let R;e[84]!==g||e[85]!==q?(R=t(g,{children:q}),e[84]=g,e[85]=q,e[86]=R):R=e[86];let k;e[87]!==y||e[88]!==R||e[89]!==_||e[90]!==N?(k=o(y,{"data-testid":_,children:[N,R]}),e[87]=y,e[88]=R,e[89]=_,e[90]=N,e[91]=k):k=e[91];let b;e[92]!==w||e[93]!==k||e[94]!==I?(b=t(w,{className:I,children:k}),e[92]=w,e[93]=k,e[94]=I,e[95]=b):b=e[95];let D;e[96]!==M||e[97]!==b||e[98]!==C?(D=t(M,{className:C,children:b}),e[96]=M,e[97]=b,e[98]=C,e[99]=D):D=e[99];let L;return e[100]!==c||e[101]!==p||e[102]!==f||e[103]!==D?(L=o("section",{className:c,"data-testid":p,children:[f,D]}),e[100]=c,e[101]=p,e[102]=f,e[103]=D,e[104]=L):L=e[104],L},er=l=>{const e=Te(74),{aggregate:s,shardResults:a}=l,r=pe();let d;e[0]!==r?(d=r("Shards"),e[0]=r,e[1]=d):d=e[1];let i;e[2]!==s.failed||e[3]!==s.reachable||e[4]!==r?(i=s.failed>0?r("{reachable} reachable, {failed} unreachable",{failed:s.failed,reachable:s.reachable}):r("{reachable} reachable",{reachable:s.reachable}),e[2]=s.failed,e[3]=s.reachable,e[4]=r,e[5]=i):i=e[5];let n;e[6]!==d||e[7]!==i?(n=t(me,{label:d,testId:"mt-agg-shards",value:i}),e[6]=d,e[7]=i,e[8]=n):n=e[8];let S;e[9]!==r?(S=r("Total requests"),e[9]=r,e[10]=S):S=e[10];let v;e[11]!==s.totalRequests||e[12]!==S?(v=t(me,{label:S,testId:"mt-agg-requests",value:s.totalRequests}),e[11]=s.totalRequests,e[12]=S,e[13]=v):v=e[13];let $;e[14]!==r?($=r("Total errors"),e[14]=r,e[15]=$):$=e[15];let h;e[16]!==s.totalErrors||e[17]!==$?(h=t(me,{label:$,testId:"mt-agg-errors",value:s.totalErrors}),e[16]=s.totalErrors,e[17]=$,e[18]=h):h=e[18];let m;e[19]!==r?(m=r("Total database size"),e[19]=r,e[20]=m):m=e[20];let g;e[21]!==s.totalDatabaseSize?(g=Ye(s.totalDatabaseSize),e[21]=s.totalDatabaseSize,e[22]=g):g=e[22];let y;e[23]!==m||e[24]!==g?(y=t(me,{label:m,testId:"mt-agg-db-size",value:g}),e[23]=m,e[24]=g,e[25]=y):y=e[25];let w;e[26]!==r?(w=r("Combined cache hit rate"),e[26]=r,e[27]=w):w=e[27];let M;e[28]!==s.hitRate||e[29]!==r?(M=s.hitRate===null?r("no cache configured"):`${(s.hitRate*100).toFixed(1)}%`,e[28]=s.hitRate,e[29]=r,e[30]=M):M=e[30];let c;e[31]!==w||e[32]!==M?(c=t(me,{label:w,testId:"mt-agg-cache",value:M}),e[31]=w,e[32]=M,e[33]=c):c=e[33];let p;e[34]!==y||e[35]!==c||e[36]!==n||e[37]!==v||e[38]!==h?(p=o("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[n,v,h,y,c]}),e[34]=y,e[35]=c,e[36]=n,e[37]=v,e[38]=h,e[39]=p):p=e[39];let f;e[40]!==r?(f=r("shard"),e[40]=r,e[41]=f):f=e[41];let x;e[42]!==f?(x=t(de,{children:f}),e[42]=f,e[43]=x):x=e[43];let q;e[44]!==r?(q=r("requests"),e[44]=r,e[45]=q):q=e[45];let _;e[46]!==q?(_=t(de,{children:q}),e[46]=q,e[47]=_):_=e[47];let N;e[48]!==r?(N=r("errors"),e[48]=r,e[49]=N):N=e[49];let I;e[50]!==N?(I=t(de,{children:N}),e[50]=N,e[51]=I):I=e[51];let C;e[52]!==r?(C=r("db size"),e[52]=r,e[53]=C):C=e[53];let R;e[54]!==C?(R=t(de,{children:C}),e[54]=C,e[55]=R):R=e[55];let k;e[56]!==x||e[57]!==_||e[58]!==I||e[59]!==R?(k=t(ct,{children:o(He,{children:[x,_,I,R]})}),e[56]=x,e[57]=_,e[58]=I,e[59]=R,e[60]=k):k=e[60];let b;if(e[61]!==a||e[62]!==r){let A;e[64]!==r?(A=T=>o(He,{"data-testid":`mt-agg-row-${T.shard}`,children:[t(oe,{children:T.shard}),T.metrics===null?t(oe,{className:"text-destructive",colSpan:3,children:T.error??r("unreachable")}):o(Ve,{children:[t(oe,{className:"tabular-nums",children:T.metrics.requests}),t(oe,{className:"tabular-nums",children:T.metrics.errors}),t(oe,{className:"tabular-nums",children:Ye(T.metrics.databaseSize)})]})]},T.shard),e[64]=r,e[65]=A):A=e[65],b=a.map(A),e[61]=a,e[62]=r,e[63]=b}else b=e[63];let D;e[66]!==b?(D=t(mt,{children:b}),e[66]=b,e[67]=D):D=e[67];let L;e[68]!==k||e[69]!==D?(L=t(he,{className:"overflow-hidden py-0",children:t(ge,{className:"px-0",children:o(dt,{"data-testid":"mt-agg-table",children:[k,D]})})}),e[68]=k,e[69]=D,e[70]=L):L=e[70];let O;return e[71]!==p||e[72]!==L?(O=o("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[p,L]}),e[71]=p,e[72]=L,e[73]=O):O=e[73],O},tr=l=>{const e=Math.floor(l/1e3),s=Math.floor(e/3600),a=Math.floor(e%3600/60),r=e%60;return s>0?`${s.toString()}h ${a.toString()}m`:a>0?`${a.toString()}m ${r.toString()}s`:`${r.toString()}s`},rr=(l,e)=>{const s=l+e;return s===0?"—":`${(l/s*100).toFixed(1)}%`},ot=l=>l<=0?"—":l<1?`${(l*1e3).toFixed(0)}μs`:l<1e3?`${l.toFixed(1)}ms`:`${(l/1e3).toFixed(2)}s`,ar=l=>{const e=Te(75),{currentDelta:s,errorRate:a,history:r,latencyPercentiles:d,metrics:i}=l,n=pe();let S;e[0]!==r||e[1]!==n?(S=r.length>=2?t(ut,{ariaLabel:n("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:r,testId:"mt-sparkline"}):void 0,e[0]=r,e[1]=n,e[2]=S):S=e[2];let v;e[3]!==s||e[4]!==r.length||e[5]!==n?(v=r.length>=2?o(Ve,{children:[t("span",{className:"font-semibold text-foreground",children:`+${s.toLocaleString()}`})," ",n("last interval")]}):t("span",{"data-testid":"mt-sparkline-empty",children:n("collecting samples…")}),e[3]=s,e[4]=r.length,e[5]=n,e[6]=v):v=e[6];let $;e[7]!==n?($=n("Requests"),e[7]=n,e[8]=$):$=e[8];let h;e[9]!==i.requests||e[10]!==S||e[11]!==v||e[12]!==$?(h=t(me,{chart:S,footer:v,label:$,testId:"mt-requests",value:i.requests}),e[9]=i.requests,e[10]=S,e[11]=v,e[12]=$,e[13]=h):h=e[13];let m;e[14]!==a||e[15]!==n?(m=n("{rate} error rate",{rate:a}),e[14]=a,e[15]=n,e[16]=m):m=e[16];let g;e[17]!==n?(g=n("Errors"),e[17]=n,e[18]=g):g=e[18];let y;e[19]!==a||e[20]!==i.errors?(y=o(Ve,{children:[i.errors," (",a,")"]}),e[19]=a,e[20]=i.errors,e[21]=y):y=e[21];let w;e[22]!==m||e[23]!==g||e[24]!==y?(w=t(me,{footer:m,label:g,testId:"mt-errors",value:y}),e[22]=m,e[23]=g,e[24]=y,e[25]=w):w=e[25];let M;e[26]!==d.p90?(M=d.p90>0?`P90 ${ot(d.p90)}`:void 0,e[26]=d.p90,e[27]=M):M=e[27];let c;e[28]!==n?(c=n("P95 latency"),e[28]=n,e[29]=c):c=e[29];let p;e[30]!==d.p95?(p=d.p95>0?ot(d.p95):"—",e[30]=d.p95,e[31]=p):p=e[31];let f;e[32]!==c||e[33]!==p||e[34]!==M?(f=t(me,{footer:M,label:c,testId:"mt-p95",value:p}),e[32]=c,e[33]=p,e[34]=M,e[35]=f):f=e[35];let x;e[36]!==i.cache||e[37]!==n?(x=i.cache===null?void 0:`${i.cache.entries.toLocaleString()} ${n("cache entries")}`,e[36]=i.cache,e[37]=n,e[38]=x):x=e[38];let q;e[39]!==n?(q=n("Database size"),e[39]=n,e[40]=q):q=e[40];let _;e[41]!==i.databaseSize?(_=Ye(i.databaseSize),e[41]=i.databaseSize,e[42]=_):_=e[42];let N;e[43]!==x||e[44]!==q||e[45]!==_?(N=t(me,{footer:x,label:q,testId:"mt-db-size",value:_}),e[43]=x,e[44]=q,e[45]=_,e[46]=N):N=e[46];let I;e[47]!==n?(I=n("Shard"),e[47]=n,e[48]=I):I=e[48];let C;e[49]!==i.shard||e[50]!==I?(C=t(me,{label:I,testId:"mt-shard",value:i.shard}),e[49]=i.shard,e[50]=I,e[51]=C):C=e[51];let R;e[52]!==n?(R=n("Uptime"),e[52]=n,e[53]=R):R=e[53];let k;e[54]!==i.uptimeMs?(k=tr(i.uptimeMs),e[54]=i.uptimeMs,e[55]=k):k=e[55];let b;e[56]!==R||e[57]!==k?(b=t(me,{label:R,testId:"mt-uptime",value:k}),e[56]=R,e[57]=k,e[58]=b):b=e[58];let D;e[59]!==n?(D=n("Cache hit rate"),e[59]=n,e[60]=D):D=e[60];let L;e[61]!==i.cache||e[62]!==n?(L=i.cache===null?n("no cache configured"):n("{rate} ({count} entries)",{count:i.cache.entries,rate:rr(i.cache.hits,i.cache.misses)}),e[61]=i.cache,e[62]=n,e[63]=L):L=e[63];let O;e[64]!==D||e[65]!==L?(O=t(me,{label:D,testId:"mt-cache",value:L}),e[64]=D,e[65]=L,e[66]=O):O=e[66];let A;return e[67]!==f||e[68]!==N||e[69]!==C||e[70]!==b||e[71]!==O||e[72]!==h||e[73]!==w?(A=o("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","data-testid":"mt-stats",children:[h,w,f,N,C,b,O]}),e[67]=f,e[68]=N,e[69]=C,e[70]=b,e[71]=O,e[72]=h,e[73]=w,e[74]=A):A=e[74],A},Ge=l=>l>=100?"critical":l>=50?"warning":"good",Oe=l=>l<1?`${(l*1e3).toFixed(0)}μs`:l<1e3?`${l.toFixed(1)}ms`:`${(l/1e3).toFixed(2)}s`,Be=l=>l>=1e9?`${(l/1e9).toFixed(1)}B`:l>=1e6?`${(l/1e6).toFixed(1)}M`:l>=1e3?`${(l/1e3).toFixed(1)}K`:l.toLocaleString(),lr=l=>{const e=Te(3),{level:s}=l;if(s==="critical"){let r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(r=t(et,{variant:"destructive",children:"Slow"}),e[0]=r):r=e[0],r}if(s==="warning"){let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",children:"Moderate"}),e[1]=r):r=e[1],r}let a;return e[2]===Symbol.for("react.memo_cache_sentinel")?(a=t("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-success/10 px-2 py-0.5 text-xs font-medium text-success",children:"Fast"}),e[2]=a):a=e[2],a},sr=(l,e)=>{const s=[...l];return s.sort((a,r)=>{switch(e){case"avgTime":return r.avgDurationMs-a.avgDurationMs;case"execCount":return r.execCount-a.execCount;case"rowsRead":return r.rowsRead-a.rowsRead;default:return r.totalDurationMs-a.totalDurationMs}}),s},nr=l=>{const e=Te(161),{queryStats:s}=l,a=pe(),[r,d]=fe("totalTime");let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Set,e[0]=i):i=e[0];const[n,S]=fe(i);let v;e[1]===Symbol.for("react.memo_cache_sentinel")?(v=C=>{C!==null&&d(C)},e[1]=v):v=e[1];const $=v;let h,m,g,y,w,M,c,p,f,x;if(e[2]!==n||e[3]!==s||e[4]!==r||e[5]!==a){g=Symbol.for("react.early_return_sentinel");e:{const C=sr(s,r);let R;e[16]!==s?(R=s.filter(ir),e[16]=s,e[17]=R):R=e[17];const k=R.length;let b;e[18]!==s?(b=s.filter(or),e[18]=s,e[19]=b):b=e[19];const D=b.length;let L;e[20]!==s?(L=s.filter(cr),e[20]=s,e[21]=L):L=e[21];const O=L.length;let A;e[22]===Symbol.for("react.memo_cache_sentinel")?(A=F=>{S(ce=>{const Q=new Set(ce);return Q.has(F)?Q.delete(F):Q.add(F),Q})},e[22]=A):A=e[22];const T=A;if(s.length===0){let F;e[23]!==a?(F=a("No query insights yet"),e[23]=a,e[24]=F):F=e[24];let ce;e[25]!==F?(ce=t("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:F}),e[25]=F,e[26]=ce):ce=e[26];let Q;e[27]!==a?(Q=a("Query insights appear once statements are executed against this shard."),e[27]=a,e[28]=Q):Q=e[28];let ue;e[29]!==Q?(ue=t("p",{className:"mt-1 text-sm",children:Q}),e[29]=Q,e[30]=ue):ue=e[30];let je;e[31]!==ce||e[32]!==ue?(je=t(he,{children:t(ge,{className:"py-12",children:o("div",{className:"text-center text-muted-foreground",children:[ce,ue]})})}),e[31]=ce,e[32]=ue,e[33]=je):je=e[33],g=je;break e}c="space-y-4",p="qi-root";let K;e[34]!==a?(K=a("Critical queries"),e[34]=a,e[35]=K):K=e[35];let j;e[36]!==K?(j=t(Ue,{className:"pb-2",children:t(Pe,{className:"text-sm font-medium",children:K})}),e[36]=K,e[37]=j):j=e[37];let z;e[38]!==k?(z=t("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:k}),e[38]=k,e[39]=z):z=e[39];let B;e[40]!==a?(B=a(">100ms avg execution"),e[40]=a,e[41]=B):B=e[41];let J;e[42]!==B?(J=t("p",{className:"text-xs text-muted-foreground",children:B}),e[42]=B,e[43]=J):J=e[43];let H;e[44]!==z||e[45]!==J?(H=o(ge,{children:[z,J]}),e[44]=z,e[45]=J,e[46]=H):H=e[46];let G;e[47]!==j||e[48]!==H?(G=o(he,{children:[j,H]}),e[47]=j,e[48]=H,e[49]=G):G=e[49];let W;e[50]!==a?(W=a("Moderate queries"),e[50]=a,e[51]=W):W=e[51];let X;e[52]!==W?(X=t(Ue,{className:"pb-2",children:t(Pe,{className:"text-sm font-medium",children:W})}),e[52]=W,e[53]=X):X=e[53];let Y;e[54]!==D?(Y=t("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:D}),e[54]=D,e[55]=Y):Y=e[55];let V;e[56]!==a?(V=a("50–100ms avg execution"),e[56]=a,e[57]=V):V=e[57];let Z;e[58]!==V?(Z=t("p",{className:"text-xs text-muted-foreground",children:V}),e[58]=V,e[59]=Z):Z=e[59];let ee;e[60]!==Y||e[61]!==Z?(ee=o(ge,{children:[Y,Z]}),e[60]=Y,e[61]=Z,e[62]=ee):ee=e[62];let te;e[63]!==X||e[64]!==ee?(te=o(he,{children:[X,ee]}),e[63]=X,e[64]=ee,e[65]=te):te=e[65];let re;e[66]!==a?(re=a("Fast queries"),e[66]=a,e[67]=re):re=e[67];let ae;e[68]!==re?(ae=t(Ue,{className:"pb-2",children:t(Pe,{className:"text-sm font-medium",children:re})}),e[68]=re,e[69]=ae):ae=e[69];let le;e[70]!==O?(le=t("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:O}),e[70]=O,e[71]=le):le=e[71];let se;e[72]!==a?(se=a("<50ms avg execution"),e[72]=a,e[73]=se):se=e[73];let ne;e[74]!==se?(ne=t("p",{className:"text-xs text-muted-foreground",children:se}),e[74]=se,e[75]=ne):ne=e[75];let u;e[76]!==le||e[77]!==ne?(u=o(ge,{children:[le,ne]}),e[76]=le,e[77]=ne,e[78]=u):u=e[78];let E;e[79]!==ae||e[80]!==u?(E=o(he,{children:[ae,u]}),e[79]=ae,e[80]=u,e[81]=E):E=e[81],e[82]!==G||e[83]!==te||e[84]!==E?(f=o("div",{className:"grid gap-4 md:grid-cols-3",children:[G,te,E]}),e[82]=G,e[83]=te,e[84]=E,e[85]=f):f=e[85];let U;e[86]!==a?(U=a("Query leaderboard"),e[86]=a,e[87]=U):U=e[87];let P;e[88]!==U?(P=t("h3",{className:"text-lg font-semibold",children:U}),e[88]=U,e[89]=P):P=e[89];let ie;e[90]!==r||e[91]!==a?(ie=a("Slow queries sorted by {sortField}",{sortField:a(r)}),e[90]=r,e[91]=a,e[92]=ie):ie=e[92];let xe;e[93]!==ie?(xe=t("p",{className:"text-sm text-muted-foreground",children:ie}),e[93]=ie,e[94]=xe):xe=e[94];let be;e[95]!==P||e[96]!==xe?(be=o("div",{children:[P,xe]}),e[95]=P,e[96]=xe,e[97]=be):be=e[97];let ve;e[98]!==a?(ve=a("Sort by"),e[98]=a,e[99]=ve):ve=e[99];let ye;e[100]!==ve?(ye=t("span",{className:"text-sm text-muted-foreground",children:ve}),e[100]=ve,e[101]=ye):ye=e[101];let Ne;e[102]!==a?(Ne=a("Sort queries by"),e[102]=a,e[103]=Ne):Ne=e[103];let Ae;e[104]===Symbol.for("react.memo_cache_sentinel")?(Ae=t(jt,{}),e[104]=Ae):Ae=e[104];let Se;e[105]!==Ne?(Se=t(Ut,{"aria-label":Ne,className:"w-[140px]","data-testid":"qi-sort",children:Ae}),e[105]=Ne,e[106]=Se):Se=e[106];let $e;e[107]!==a?($e=a("Total time"),e[107]=a,e[108]=$e):$e=e[108];let we;e[109]!==$e?(we=t(Qe,{value:"totalTime",children:$e}),e[109]=$e,e[110]=we):we=e[110];let qe;e[111]!==a?(qe=a("Avg time"),e[111]=a,e[112]=qe):qe=e[112];let ke;e[113]!==qe?(ke=t(Qe,{value:"avgTime",children:qe}),e[113]=qe,e[114]=ke):ke=e[114];let Me;e[115]!==a?(Me=a("Execution count"),e[115]=a,e[116]=Me):Me=e[116];let _e;e[117]!==Me?(_e=t(Qe,{value:"execCount",children:Me}),e[117]=Me,e[118]=_e):_e=e[118];let Ce;e[119]!==a?(Ce=a("Rows read"),e[119]=a,e[120]=Ce):Ce=e[120];let Ie;e[121]!==Ce?(Ie=t(Qe,{value:"rowsRead",children:Ce}),e[121]=Ce,e[122]=Ie):Ie=e[122];let Re;e[123]!==we||e[124]!==ke||e[125]!==_e||e[126]!==Ie?(Re=o(Pt,{children:[we,ke,_e,Ie]}),e[123]=we,e[124]=ke,e[125]=_e,e[126]=Ie,e[127]=Re):Re=e[127];let De;e[128]!==r||e[129]!==Se||e[130]!==Re?(De=o(Qt,{onValueChange:$,value:r,children:[Se,Re]}),e[128]=r,e[129]=Se,e[130]=Re,e[131]=De):De=e[131];let Fe;e[132]!==ye||e[133]!==De?(Fe=o("div",{className:"flex items-center gap-2",children:[ye,De]}),e[132]=ye,e[133]=De,e[134]=Fe):Fe=e[134],e[135]!==be||e[136]!==Fe?(x=o("div",{className:"flex items-center justify-between",children:[be,Fe]}),e[135]=be,e[136]=Fe,e[137]=x):x=e[137],m=he;let Le;e[138]!==a?(Le=a("Statements"),e[138]=a,e[139]=Le):Le=e[139];let Ke;e[140]!==Le?(Ke=t(Pe,{children:Le}),e[140]=Le,e[141]=Ke):Ke=e[141],M=o(Ue,{children:[Ke,t(It,{children:a("{count} tracked statements",{count:C.length})})]}),h=ge,y="space-y-2";let Ee;e[142]!==n||e[143]!==a?(Ee=F=>{const ce=F.normalizedSql,Q=n.has(ce),ue=Ge(F.avgDurationMs);return o("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[o("button",{"aria-expanded":Q,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:()=>{T(ce)},type:"button",children:[o("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[t(lr,{level:ue}),t("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:F.normalizedSql})]}),o("div",{className:"flex shrink-0 items-center gap-4",children:[o("div",{className:"text-right",children:[t("div",{className:"text-sm font-medium",children:Oe(F.totalDurationMs)}),t("div",{className:"text-xs text-muted-foreground",children:a("total")})]}),o("div",{className:"text-right",children:[t("div",{className:"text-sm font-medium",children:Oe(F.avgDurationMs)}),t("div",{className:"text-xs text-muted-foreground",children:a("avg")})]}),F.p95DurationMs!==void 0&&o("div",{className:"text-right",children:[t("div",{className:"text-sm font-medium",children:Oe(F.p95DurationMs)}),t("div",{className:"text-xs text-muted-foreground",children:a("p95")})]}),o("div",{className:"text-right",children:[t("div",{className:"text-sm font-medium",children:Be(F.execCount)}),t("div",{className:"text-xs text-muted-foreground",children:a("calls")})]})]})]}),Q&&o("div",{className:"space-y-3 border-t bg-muted/30 p-4",children:[o("div",{children:[t("p",{className:"mb-2 text-sm font-medium",children:a("Full statement")}),t("pre",{className:"overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm whitespace-pre-wrap break-all",children:F.normalizedSql})]}),o("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[F.p50DurationMs!==void 0&&o("div",{children:[t("span",{className:"text-muted-foreground",children:a("p50")}),t("span",{className:"block font-medium tabular-nums",children:Oe(F.p50DurationMs)})]}),o("div",{children:[t("span",{className:"text-muted-foreground",children:a("Exec count")}),t("span",{className:"block font-medium tabular-nums",children:Be(F.execCount)})]}),o("div",{children:[t("span",{className:"text-muted-foreground",children:a("Total time")}),t("span",{className:"block font-medium tabular-nums",children:Oe(F.totalDurationMs)})]}),o("div",{children:[t("span",{className:"text-muted-foreground",children:a("Rows read")}),t("span",{className:"block font-medium tabular-nums",children:Be(F.rowsRead)})]}),o("div",{children:[t("span",{className:"text-muted-foreground",children:a("Rows written")}),t("span",{className:"block font-medium tabular-nums",children:Be(F.rowsWritten)})]})]})]})]},ce)},e[142]=n,e[143]=a,e[144]=Ee):Ee=e[144],w=C.map(Ee)}e[2]=n,e[3]=s,e[4]=r,e[5]=a,e[6]=h,e[7]=m,e[8]=g,e[9]=y,e[10]=w,e[11]=M,e[12]=c,e[13]=p,e[14]=f,e[15]=x}else h=e[6],m=e[7],g=e[8],y=e[9],w=e[10],M=e[11],c=e[12],p=e[13],f=e[14],x=e[15];if(g!==Symbol.for("react.early_return_sentinel"))return g;let q;e[145]!==y||e[146]!==w?(q=t("div",{className:y,children:w}),e[145]=y,e[146]=w,e[147]=q):q=e[147];let _;e[148]!==h||e[149]!==q?(_=t(h,{children:q}),e[148]=h,e[149]=q,e[150]=_):_=e[150];let N;e[151]!==m||e[152]!==_||e[153]!==M?(N=o(m,{children:[M,_]}),e[151]=m,e[152]=_,e[153]=M,e[154]=N):N=e[154];let I;return e[155]!==N||e[156]!==c||e[157]!==p||e[158]!==f||e[159]!==x?(I=o("div",{className:c,"data-testid":p,children:[f,x,N]}),e[155]=N,e[156]=c,e[157]=p,e[158]=f,e[159]=x,e[160]=I):I=e[160],I};function ir(l){return Ge(l.avgDurationMs)==="critical"}function or(l){return Ge(l.avgDurationMs)==="warning"}function cr(l){return Ge(l.avgDurationMs)==="good"}const dr=["1m","5m","15m","1h"],mr=l=>new Date(l).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),ur=l=>l.map(e=>({avg:Math.round(e.avgDurationMs*100)/100,execs:e.execCount,label:mr(e.bucketMs)})),hr=({shardKey:l=""})=>{const e=pe(),[s,a]=fe("15m"),r=Je(ze.getQueryInsights,{range:s},{live:!0,shardKey:l}).data,d=ur(r?.buckets??[]);return o("div",{className:"flex flex-col gap-4","data-testid":"qi-range",children:[o("div",{className:"flex flex-wrap items-center gap-2",children:[t("div",{className:"flex gap-1 rounded-lg border border-border p-0.5","data-testid":"qi-ranges",role:"group",children:dr.map(i=>t("button",{"aria-pressed":i===s,className:Et("rounded px-2 py-1 text-xs outline-none transition-colors hover:bg-accent focus-visible:bg-accent",i===s&&"bg-accent font-medium text-foreground"),"data-testid":`qi-range-${i}`,onClick:()=>{a(i)},type:"button",children:i},i))}),r?.capped===!0&&t(et,{"data-testid":"qi-capped",variant:"secondary",children:e("showing a capped set")})]}),d.length===0?t(Kt,{description:e("Statements executed in the selected window appear here, with throughput and latency over time."),testId:"qi-empty",title:e("No queries in this window.")}):o("div",{className:"grid gap-4 lg:grid-cols-2",children:[o("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-throughput",children:[t("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Throughput")}),t(at,{height:140,width:"100%",children:o(Tt,{data:d,children:[t(lt,{strokeDasharray:"3 3",vertical:!1}),t(st,{dataKey:"label",fontSize:10,tickLine:!1}),t(nt,{allowDecimals:!1,fontSize:10,tickLine:!1,width:32}),t(it,{}),t(Ot,{dataKey:"execs",fill:"var(--color-primary)",fillOpacity:.15,stroke:"var(--color-primary)",type:"monotone"})]})})]}),o("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-latency",children:[t("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Mean latency (ms)")}),t(at,{height:140,width:"100%",children:o(zt,{data:d,children:[t(lt,{strokeDasharray:"3 3",vertical:!1}),t(st,{dataKey:"label",fontSize:10,tickLine:!1}),t(nt,{fontSize:10,tickLine:!1,width:32}),t(it,{}),t(At,{dataKey:"avg",dot:!1,stroke:"var(--color-destructive)",type:"monotone"})]})})]})]}),t(nr,{queryStats:r?.entries??[]})]})},gr=kt(ze.getMetrics),fr=(l,e)=>l?e:"overview",Ur=({initialShardKey:l})=>{const e=ft(),s=pe(),{queryShardKey:a,setShardKey:r,shardKey:d}=yt(l),[i,n]=fe("overview"),[S,v]=fe([]),$=We(null),h=We(null),m=We(!0);tt(()=>(m.current=!0,()=>{m.current=!1}),[]);const g=vt(a),{data:y,error:w,liveError:M}=Je(ze.getMetrics,{},{live:!0,shardKey:a}),c=y??null;tt(()=>{if(y===void 0)return;Mt(a);const T=y,K=$.current,j=h.current!==null&&h.current!==T.shard;if(h.current=T.shard,$.current=T.requests,j){v([]);return}K!==null&&T.requests>=K&&v(z=>[...z,T.requests-K].slice(-30))},[y,a]);const[p,f]=fe(null),[x,q]=fe(!1),_=async()=>{q(!0);const T=Lt(d,_t());try{const K=await Promise.all(T.map(async j=>{try{const z=await e.query(gr,{},wt(j));return{error:null,metrics:z,shard:j===""?z.shard:j}}catch(z){return{error:qt(z),metrics:null,shard:j===""?"__root__":j}}}));m.current&&f(K)}finally{m.current&&q(!1)}},N=p===null?null:Rt(p),I=c===null||c.requests===0?"—":`${(c.errors/c.requests*100).toFixed(1)}%`,C=S.length>0?S.at(-1):0,R=c?Dt(c):{p90:0,p95:0},k=pt(()=>{if(!c||!("queryStats"in c))return;const T=c.queryStats;if(!(!T||!Array.isArray(T)))return Ft(T)},[c]),b=fr(k!==void 0,i),D=()=>{$t(_())},L=()=>{f(null)},O=()=>{n("overview")},A=()=>{n("query-insights")};return o("div",{className:"flex flex-col gap-4","data-testid":"lunora-metrics",children:[o("div",{className:"flex flex-wrap items-center gap-2",children:[t(bt,{onChange:r,testId:"mt-shard-input",value:d}),t(xt,{message:M,prefix:"mt"}),t(rt,{"data-testid":"mt-aggregate",disabled:x,onClick:D,size:"sm",type:"button",variant:"secondary",children:s(x?"Aggregating…":"All shards")}),p!==null&&t(rt,{"data-testid":"mt-aggregate-clear",onClick:L,size:"sm",type:"button",variant:"ghost",children:s("Hide")}),t("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"mt-cf-link",href:Nt,rel:"noreferrer",target:"_blank",children:s("Open in Cloudflare")})]}),w!==null&&t("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:w}),k!==void 0&&o("div",{className:"flex gap-2 border-b","data-testid":"mt-tabs",children:[t("button",{className:`pb-2 text-sm font-medium transition-colors ${b==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:O,type:"button",children:s("Overview")}),o("button",{className:`pb-2 text-sm font-medium transition-colors ${b==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:A,type:"button",children:[s("Query insights"),k.length>0&&t("span",{className:"ml-1.5 rounded-full bg-primary/10 px-1.5 py-0.5 text-xs text-primary",children:k.length})]})]}),b==="query-insights"&&k!==void 0&&t(hr,{shardKey:a}),b==="overview"&&c!==null&&t(ar,{currentDelta:C,errorRate:I,history:S,latencyPercentiles:R,metrics:c}),b==="overview"&&c===null&&null,b==="overview"&&t(Zt,{onOpenTrace:g,shardKey:a}),b==="overview"&&N!==null&&p!==null&&t(er,{aggregate:N,shardResults:p})]})};export{Ur as MetricsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useState as
|
|
1
|
+
import{useState as Y}from"react";import{U as j}from"../packem_shared/error-alert-_2q2VtVG.js";import{g as b}from"../packem_shared/badge-BbuuAio7.js";import{u as I}from"../packem_shared/button-BkCrNcAs.js";import{c as _,f as U}from"../packem_shared/card-BMKx5UdA.js";import{E as q}from"../packem_shared/empty-state-Cg7t_8qu.js";import{d as E,n as P,f as p,m as i,b as z,p as o}from"../packem_shared/table-DZAB8cs3.js";import{N as f}from"../packem_shared/use-admin-query-CnnyWJXM.js";import{useT as Z}from"../packem_shared/DEFAULT_LOCALE-BZ4NojpD.js";import{ADMIN_FUNCTIONS as x}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{i as ee}from"../packem_shared/internal-zkEvTqy8.js";import{jsx as e,jsxs as d}from"react/jsx-runtime";const D="agent_threads",te="agent_messages",B="agent_run_queue",F=100,re=250,ae={},se={filters:[],limit:F,offset:0,orderBy:{column:"updatedAt",direction:"desc"},skipCount:!0,table:D},l=(s,t)=>{const a=s[t];return typeof a=="string"?a:void 0},w=(s,t)=>{const a=s[t];return typeof a=="number"?a:void 0},M=s=>{const{usage:t}=s;if(t===null||typeof t!="object")return;const{totalTokens:a}=t;return typeof a=="number"?a:void 0},ne=s=>{const{toolCalls:t}=s;return Array.isArray(t)?t.map(a=>a!==null&&typeof a=="object"?a.name:void 0).filter(a=>typeof a=="string"):[]},ie=s=>{switch(s){case"awaiting_input":return"warning";case"cancelled":return"warning";case"error":return"destructive";case"running":return"info";default:return"outline"}},oe=s=>{switch(s){case"approved":return"success";case"rejected":return"destructive";default:return"warning"}},Ne=({initialShardKey:s=""})=>{const t=Z(),[a,A]=Y(void 0),{data:c}=f(x.listTables,ae,{live:!0,shardKey:s}),O=c!==void 0,m=Array.isArray(c)&&c.some(r=>r.name===D),Q=Array.isArray(c)&&c.some(r=>r.name===B),{data:$,error:R,errorSource:G,liveError:H}=f(x.readTablePage,se,{enabled:m,live:!0,shardKey:s}),J={filters:[{column:"threadKey",operator:"eq",value:a??""}],limit:re,offset:0,orderBy:{column:"seq",direction:"asc"},skipCount:!0,table:te},{data:k}=f(x.readTablePage,{limit:F,offset:0,orderBy:{column:"position",direction:"asc"},skipCount:!0,table:B},{enabled:Q,live:!0,shardKey:s}),{data:T,error:L,errorSource:V}=f(x.readTablePage,J,{enabled:m&&a!==void 0,live:!0,shardKey:s}),y=Array.isArray($?.rows)?$.rows:[],W=Array.isArray(k?.rows)?k.rows:[],S=r=>W.filter(n=>l(n,"threadKey")===r).length,C=Array.isArray(T?.rows)?T.rows:[],K=y.find(r=>l(r,"key")===a);let h;return O&&!m?h=e(q,{description:t("No @lunora/agent tables found in this deployment. Add lunora/agents.ts with defineAgent(...) and merge the agent schema extension to run durable AI agents."),testId:"agents-unconfigured",title:t("No agents configured")}):m&&y.length===0?h=e(q,{description:t("No agent has run yet. Start a run with ctx.agents.<name>.run(...) and its thread appears here."),testId:"agents-empty",title:t("No agent threads yet")}):h=d("div",{className:"flex flex-col gap-6",children:[e(_,{className:"overflow-hidden py-0",children:e(U,{className:"px-0",children:d(E,{"data-testid":"agents-threads-table",children:[e(P,{children:d(p,{children:[e(i,{children:t("Agent")}),e(i,{children:t("Key")}),e(i,{children:t("Status")}),e(i,{children:t("Queued")}),e(i,{children:t("Messages")}),e(i,{children:t("Tokens")}),e(i,{children:t("Updated")}),e(i,{"aria-label":t("Actions")})]})}),e(z,{children:y.map(r=>{const n=l(r,"key")??"",u=l(r,"status"),g=M(r);return d(p,{"data-active":n===a?"":void 0,"data-testid":`agents-thread-${n}`,children:[e(o,{className:"font-mono text-xs",children:l(r,"agent")??"—"}),e(o,{className:"font-mono text-xs text-muted-foreground",children:n}),e(o,{children:e(b,{"data-testid":`agents-thread-status-${n}`,variant:ie(u),children:u??"—"})}),e(o,{className:"tabular-nums",children:S(n)===0?e("span",{className:"text-muted-foreground",children:"—"}):e(b,{"data-testid":`agents-thread-queued-${n}`,variant:"warning",children:S(n)})}),e(o,{className:"tabular-nums",children:w(r,"messageCount")??"—"}),e(o,{className:"tabular-nums text-muted-foreground",children:g??"—"}),e(o,{className:"text-muted-foreground tabular-nums",children:ee(w(r,"updatedAt"),"—")}),e(o,{className:"text-right",children:e(I,{"data-testid":`agents-thread-open-${n}`,onClick:()=>{A(n)},size:"sm",type:"button",variant:"outline",children:t("Timeline")})})]},n)})})]})})}),L!==null&&e(j,{error:V,testId:"agents-messages-error"}),a!==void 0&&e(_,{className:"overflow-hidden py-0","data-testid":"agents-thread-detail",children:d(U,{className:"flex flex-col gap-3 px-4 py-3",children:[d("div",{className:"flex items-center justify-between gap-2",children:[d("span",{className:"font-mono text-xs",children:[t("Timeline")," · ",a,K!==void 0&&d("span",{className:"text-muted-foreground",children:[" · ",t("Usage"),": ",M(K)??0," ",t("Tokens")]})]}),e(I,{"data-testid":"agents-thread-detail-close",onClick:()=>{A(void 0)},size:"xs",type:"button",variant:"ghost",children:t("Close")})]}),C.length===0?e("p",{className:"text-xs text-muted-foreground",children:t("This thread has no messages yet.")}):d(E,{"data-testid":"agents-messages-table",children:[e(P,{children:d(p,{children:[e(i,{children:t("Role")}),e(i,{children:t("Content")}),e(i,{children:t("Tool")}),e(i,{children:t("Approval")})]})}),e(z,{children:C.map((r,n)=>{const u=l(r,"role")??"—",g=ne(r),X=l(r,"toolName"),v=l(r,"status"),N=w(r,"seq")??n;return d(p,{"data-testid":`agents-message-${String(N)}`,children:[e(o,{className:"font-mono text-xs align-top text-muted-foreground",children:u}),e(o,{className:"max-w-md font-mono text-xs whitespace-pre-wrap break-words",children:l(r,"content")??"—"}),e(o,{className:"font-mono text-xs align-top text-muted-foreground",children:X??(g.length>0?g.join(", "):"—")}),e(o,{className:"align-top",children:v===void 0?e("span",{className:"text-xs text-muted-foreground",children:"—"}):e(b,{"data-testid":`agents-message-approval-${String(N)}`,variant:oe(v),children:v})})]},l(r,"messageKey")??`${u}:${String(N)}`)})})]})]})})]}),d("div",{className:"flex flex-col gap-6","data-testid":"lunora-agents-panel",children:[R!==null&&e(j,{error:G,testId:"agents-error"}),e("p",{className:"text-sm text-muted-foreground",children:t("Agents run as durable workflows. Each run persists a thread of assistant and tool messages; select a thread to inspect its timeline, tool calls, approvals, and token usage.")}),H!==void 0&&e("p",{className:"text-xs text-amber-600 dark:text-amber-500","data-testid":"agents-live-error",role:"alert",children:t("Live updates unavailable; showing the last evaluation.")}),h]})};export{Ne as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as $}from"react/compiler-runtime";import{U as _}from"../packem_shared/error-alert-_2q2VtVG.js";import{ShardInput as C}from"../packem_shared/ShardInput-BVn2iCU0.js";import{g as K}from"../packem_shared/badge-BbuuAio7.js";import{c as j,f as w}from"../packem_shared/card-BMKx5UdA.js";import{E as O}from"../packem_shared/empty-state-Cg7t_8qu.js";import{N as I}from"../packem_shared/use-admin-query-CnnyWJXM.js";import{f as A}from"../packem_shared/use-open-trace-CniEgUdp.js";import{S as k}from"../packem_shared/use-shard-key-B2JtNa5m.js";import{useT as E}from"../packem_shared/DEFAULT_LOCALE-BZ4NojpD.js";import{ADMIN_FUNCTIONS as T}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{i as q}from"../packem_shared/internal-zkEvTqy8.js";import{S as D}from"../packem_shared/sparkline-BNvxiJj_.js";import{jsx as c,jsxs as g}from"react/jsx-runtime";const F=s=>s.length===0?void 0:{max:Math.max(...s),mean:s.reduce((e,t)=>e+t,0)/s.length,min:Math.min(...s)},M=/^gen_ai\.evaluation\.(.+)\.score$/u,U=s=>{const e=[];for(const t of s)for(const n of t.spans)for(const[a,m]of Object.entries(n.attributes??{})){const o=M.exec(a);if(!o||typeof m!="number")continue;const l=o[1],i=n.attributes?.[`gen_ai.evaluation.${l}.label`];e.push({...typeof i=="string"?{label:i}:{},name:l,score:m,spanName:n.name,startTs:t.startTs+n.offsetMs,traceId:t.traceId})}return e.toSorted((t,n)=>n.startTs-t.startTs)},B=s=>{const e=[];for(const t of s?.series??[]){const n=M.exec(t.name);n&&e.push({name:n[1],points:t.points})}return e},H=(s,e)=>{const t=new Set([...s.map(a=>a.name),...e.map(a=>a.name)]),n=[];for(const a of t){const m=s.filter(r=>r.name===a),o=e.find(r=>r.name===a)?.points??[],l=o.at(-1)?.last??m[0]?.score,i=o.length>0?{max:Math.max(...o.map(r=>r.max)),mean:o.reduce((r,d)=>r+d.sum,0)/o.reduce((r,d)=>r+d.count,0),min:Math.min(...o.map(r=>r.min))}:F(m.map(r=>r.score));n.push({...l===void 0?{}:{latest:l},...i,name:a,points:o,runs:m})}return n.toSorted((a,m)=>a.name.localeCompare(m.name))},L=s=>Array.isArray(s?.traces)?s.traces:[],N=s=>s===void 0?"—":s.toFixed(2),R=s=>{const e=$(34),{card:t,onOpenTrace:n}=s,a=E();let m;e[0]!==t.name?(m=c("h3",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"ev-name",children:t.name}),e[0]=t.name,e[1]=m):m=e[1];let o;e[2]!==t.latest?(o=N(t.latest),e[2]=t.latest,e[3]=o):o=e[3];let l;e[4]!==o?(l=c("span",{className:"font-mono text-lg text-foreground","data-testid":"ev-latest",children:o}),e[4]=o,e[5]=l):l=e[5];let i;e[6]!==m||e[7]!==l?(i=g("div",{className:"flex items-baseline justify-between gap-3",children:[m,l]}),e[6]=m,e[7]=l,e[8]=i):i=e[8];let r;e[9]!==t.max||e[10]!==t.mean||e[11]!==t.min||e[12]!==a?(r=a("min {min} · mean {mean} · max {max}",{max:N(t.max),mean:N(t.mean),min:N(t.min)}),e[9]=t.max,e[10]=t.mean,e[11]=t.min,e[12]=a,e[13]=r):r=e[13];let d;e[14]!==r?(d=c("p",{className:"font-mono text-xs text-muted-foreground","data-testid":"ev-summary",children:r}),e[14]=r,e[15]=d):d=e[15];let f;e[16]!==t.name||e[17]!==t.points||e[18]!==a?(f=t.points.length>1?c(D,{ariaLabel:a("Score trend for {name}",{name:t.name}),className:"h-10 w-full",series:t.points.map(V),testId:"ev-trend"}):c("p",{className:"text-xs text-muted-foreground","data-testid":"ev-no-trend",children:a("No durable history yet — pass ctx.metrics to recordEvaluation to chart a trend.")}),e[16]=t.name,e[17]=t.points,e[18]=a,e[19]=f):f=e[19];let u;if(e[20]!==t.runs||e[21]!==n||e[22]!==a){let x;e[24]!==n||e[25]!==a?(x=p=>g("div",{className:"flex items-center justify-between gap-2 font-mono text-xs","data-testid":"ev-run",children:[g("span",{className:"truncate text-muted-foreground",children:[q(p.startTs)," · ",p.spanName]}),g("span",{className:"flex items-center gap-2",children:[p.label===void 0?null:c(K,{variant:"outline",children:p.label}),c("span",{className:"text-foreground",children:N(p.score)}),n===void 0?null:c("button",{className:"text-muted-foreground underline-offset-2 hover:underline",onClick:()=>{n(p.traceId)},title:a("Open the trace {trace}",{trace:p.traceId}),type:"button",children:p.traceId.slice(0,8)})]})]},`${p.traceId}:${p.spanName}`),e[24]=n,e[25]=a,e[26]=x):x=e[26],u=t.runs.slice(0,5).map(x),e[20]=t.runs,e[21]=n,e[22]=a,e[23]=u}else u=e[23];let h;e[27]!==u?(h=c("div",{className:"flex flex-col gap-1",children:u}),e[27]=u,e[28]=h):h=e[28];let v;return e[29]!==i||e[30]!==d||e[31]!==f||e[32]!==h?(v=c(j,{"data-testid":"ev-card",children:g(w,{className:"flex flex-col gap-3 p-4",children:[i,d,f,h]})}),e[29]=i,e[30]=d,e[31]=f,e[32]=h,e[33]=v):v=e[33],v},ne=s=>{const e=$(19),{initialShardKey:t}=s,n=E(),{queryShardKey:a,setShardKey:m,shardKey:o}=k(t),l=A(a);let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i={},e[0]=i):i=e[0];let r;e[1]!==a?(r={live:!0,shardKey:a},e[1]=a,e[2]=r):r=e[2];const{data:d,error:f}=I(T.getTraces,i,r);let u;e[3]===Symbol.for("react.memo_cache_sentinel")?(u={},e[3]=u):u=e[3];let h;e[4]!==a?(h={live:!0,shardKey:a},e[4]=a,e[5]=h):h=e[5];const{data:v}=I(T.getMetricHistory,u,h);let x;if(e[6]!==d||e[7]!==f||e[8]!==v||e[9]!==l||e[10]!==m||e[11]!==o||e[12]!==n){const p=H(U(L(d)),B(v));let y;e[14]!==m||e[15]!==o?(y=c(C,{onChange:m,testId:"ev-shard-input",value:o}),e[14]=m,e[15]=o,e[16]=y):y=e[16];let b;e[17]!==f?(b=f===null?null:c(_,{error:f,testId:"ev-error"}),e[17]=f,e[18]=b):b=e[18],x=g("section",{className:"flex flex-col gap-4","data-testid":"ev-panel",children:[y,b,p.length===0?c(O,{description:n("Call recordEvaluation from a graded run and its score shows up here."),testId:"ev-empty",title:n("No evals recorded")}):c("div",{className:"grid gap-3 md:grid-cols-2",children:p.map(S=>c(R,{card:S,onOpenTrace:l},S.name))})]}),e[6]=d,e[7]=f,e[8]=v,e[9]=l,e[10]=m,e[11]=o,e[12]=n,e[13]=x}else x=e[13];return x};function V(s){return s.last}export{ne as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useLunora as ee}from"@lunora/react";import{useState as Z,useReducer as ae,useEffect as le}from"react";import{c as ve,f as pe}from"../packem_shared/card-BMKx5UdA.js";import{E as Fe}from"../packem_shared/empty-state-Cg7t_8qu.js";import{d as ye,n as he,f as X,m as Y,b as ke,p as Q}from"../packem_shared/table-DZAB8cs3.js";import{useT as q}from"../packem_shared/DEFAULT_LOCALE-BZ4NojpD.js";import{f as z,b as H,l as Ee,c as ne}from"../packem_shared/internal-zkEvTqy8.js";import{u as B}from"../packem_shared/button-BkCrNcAs.js";import{f as de}from"../packem_shared/checkbox-StT4Gob6.js";import{u as re}from"../packem_shared/input-JHu63lTv.js";import{h as ie,u as se,y as oe,c as ce}from"../packem_shared/studio-C9Qvg13j.js";import{c as te}from"react/compiler-runtime";import{p as G}from"../packem_shared/label-6uP1obNF.js";import{l as fe}from"../packem_shared/textarea-Bu2-jKAs.js";import{w as Ke,z as Ve,_ as Me,S as Te,x as Ie}from"../packem_shared/select-BssZMiFY.js";import{jsx as r,jsxs as S,Fragment as be}from"react/jsx-runtime";import{g as Oe}from"../packem_shared/badge-BbuuAio7.js";const _e=l=>{const e=l.trim();if(e==="")return;const d=Number(e);return Number.isFinite(d)&&d>0?Math.floor(d):void 0},Je=l=>l===void 0?"—":new Date(l*1e3).toISOString(),De=l=>new TextEncoder().encode(l).length,ge=l=>{if(l.trim()!=="")try{return JSON.stringify(JSON.parse(l),void 0,2)}catch{return}},xe=l=>{if(l.trim()==="")return!0;try{return JSON.parse(l),!0}catch{return!1}},Ne=[{key:"seconds",seconds:1},{key:"minutes",seconds:60},{key:"hours",seconds:3600},{key:"days",seconds:86400}],ue=(l,e)=>{const d=l.trim();if(d==="")return"";const c=Number(d),i=Ne.find(m=>m.key===e)?.seconds??1;return Number.isFinite(c)&&c>0?String(Math.round(c*i)):d},Ce=l=>{const e=l.trim();if(e==="")return!0;const d=Number(e);return Number.isInteger(d)&&d>=60},we=(l,e,d,c)=>{const i=_e(l.ttl);return{expiration:i===void 0?c:void 0,expirationTtl:i,key:e,metadata:l.metadata.trim()===""?void 0:JSON.parse(l.metadata),namespace:d,value:l.value}},Se=l=>{const e=te(60),{helper:d,id:c,invalid:i,onChange:m,testId:s}=l,t=q(),[a,v]=Z(""),[o,g]=Z("seconds");let f;e[0]!==m||e[1]!==o?(f=b=>{v(b.target.value),m(ue(b.target.value,o))},e[0]=m,e[1]=o,e[2]=f):f=e[2];const I=f;let K;e[3]!==a||e[4]!==m?(K=b=>{b!==null&&(g(b),m(ue(a,b)))},e[3]=a,e[4]=m,e[5]=K):K=e[5];const O=K;let p;e[6]!==t?(p=t("days"),e[6]=t,e[7]=p):p=e[7];let u;e[8]!==t?(u=t("hours"),e[8]=t,e[9]=u):u=e[9];let y;e[10]!==t?(y=t("minutes"),e[10]=t,e[11]=y):y=e[11];let x;e[12]!==t?(x=t("seconds"),e[12]=t,e[13]=x):x=e[13];let N;e[14]!==p||e[15]!==u||e[16]!==y||e[17]!==x?(N={days:p,hours:u,minutes:y,seconds:x},e[14]=p,e[15]=u,e[16]=y,e[17]=x,e[18]=N):N=e[18];const C=N;let k;e[19]!==t?(k=t("Expires after"),e[19]=t,e[20]=k):k=e[20];let w;e[21]!==c||e[22]!==k?(w=r(G,{className:"text-xs",htmlFor:c,children:k}),e[21]=c,e[22]=k,e[23]=w):w=e[23];let E;e[24]!==t?(E=t("No expiration"),e[24]=t,e[25]=E):E=e[25];let J;e[26]!==a||e[27]!==c||e[28]!==i||e[29]!==I||e[30]!==E||e[31]!==s?(J=r(re,{"aria-invalid":i,className:"flex-1","data-testid":s,id:c,inputMode:"numeric",onChange:I,placeholder:E,value:a}),e[26]=a,e[27]=c,e[28]=i,e[29]=I,e[30]=E,e[31]=s,e[32]=J):J=e[32];let V;e[33]!==t?(V=t("TTL unit"),e[33]=t,e[34]=V):V=e[34];const L=`${s}-unit`;let D;e[35]===Symbol.for("react.memo_cache_sentinel")?(D=r(Ke,{}),e[35]=D):D=e[35];let M;e[36]!==V||e[37]!==L?(M=r(Ve,{"aria-label":V,className:"w-[7.5rem]","data-testid":L,children:D}),e[36]=V,e[37]=L,e[38]=M):M=e[38];let n;e[39]!==C?(n=Ne.map(b=>r(Me,{value:b.key,children:C[b.key]},b.key)),e[39]=C,e[40]=n):n=e[40];let h;e[41]!==n?(h=r(Te,{children:n}),e[41]=n,e[42]=h):h=e[42];let $;e[43]!==O||e[44]!==M||e[45]!==h||e[46]!==o?($=S(Ie,{onValueChange:O,value:o,children:[M,h]}),e[43]=O,e[44]=M,e[45]=h,e[46]=o,e[47]=$):$=e[47];let T;e[48]!==J||e[49]!==$?(T=S("div",{className:"flex gap-2",children:[J,$]}),e[48]=J,e[49]=$,e[50]=T):T=e[50];let F;e[51]!==d||e[52]!==i||e[53]!==t||e[54]!==s?(F=i?r("p",{className:"text-xs text-destructive","data-testid":`${s}-invalid`,children:t("TTL must be at least 60 seconds.")}):d!==void 0&&r("p",{className:"text-xs text-muted-foreground",children:d}),e[51]=d,e[52]=i,e[53]=t,e[54]=s,e[55]=F):F=e[55];let _;return e[56]!==T||e[57]!==F||e[58]!==w?(_=S("div",{className:"mb-3 grid gap-1",children:[w,T,F]}),e[56]=T,e[57]=F,e[58]=w,e[59]=_):_=e[59],_},$e=l=>{const e=te(36),{id:d,invalidTestId:c,onChange:i,testId:m,valid:s,value:t}=l,a=q();let v;e[0]!==t?(v=ge(t),e[0]=t,e[1]=v):v=e[1];const o=v;let g;e[2]!==a?(g=a("Metadata (JSON)"),e[2]=a,e[3]=g):g=e[3];let f;e[4]!==d||e[5]!==g?(f=r(G,{className:"text-xs",htmlFor:d,children:g}),e[4]=d,e[5]=g,e[6]=f):f=e[6];const I=`${m}-format`,K=o===void 0;let O;e[7]!==o||e[8]!==i?(O=()=>{o!==void 0&&i(o)},e[7]=o,e[8]=i,e[9]=O):O=e[9];let p;e[10]!==a?(p=a("Format JSON"),e[10]=a,e[11]=p):p=e[11];let u;e[12]!==I||e[13]!==K||e[14]!==O||e[15]!==p?(u=r(B,{"data-testid":I,disabled:K,onClick:O,size:"sm",variant:"outline",children:p}),e[12]=I,e[13]=K,e[14]=O,e[15]=p,e[16]=u):u=e[16];let y;e[17]!==f||e[18]!==u?(y=S("div",{className:"flex items-center justify-between gap-2",children:[f,u]}),e[17]=f,e[18]=u,e[19]=y):y=e[19];const x=!s;let N;e[20]!==i?(N=E=>{i(E.target.value)},e[20]=i,e[21]=N):N=e[21];let C;e[22]!==d||e[23]!==x||e[24]!==N||e[25]!==m||e[26]!==t?(C=r(fe,{"aria-invalid":x,className:"min-h-[4rem] font-mono text-xs","data-testid":m,id:d,onChange:N,value:t}),e[22]=d,e[23]=x,e[24]=N,e[25]=m,e[26]=t,e[27]=C):C=e[27];let k;e[28]!==c||e[29]!==a||e[30]!==s?(k=!s&&r("p",{className:"text-xs text-destructive","data-testid":c,children:a("Metadata must be valid JSON.")}),e[28]=c,e[29]=a,e[30]=s,e[31]=k):k=e[31];let w;return e[32]!==C||e[33]!==k||e[34]!==y?(w=S("div",{className:"mb-3 grid gap-1",children:[y,C,k]}),e[32]=C,e[33]=k,e[34]=y,e[35]=w):w=e[35],w},Le={busy:!1,error:null,metadata:"",name:"",ttl:"",value:""},Be=(l,e)=>{switch(e.type){case"setField":return{...l,[e.field]:e.value};case"submitFailed":return{...l,busy:!1,error:e.error};case"submitStart":return{...l,busy:!0,error:null};default:return l}},Pe=l=>{const e=te(73),{namespace:d,onCancel:c,onCreated:i}=l,m=ee(),s=q(),[t,a]=ae(Be,Le);let v;e[0]!==t.metadata?(v=xe(t.metadata),e[0]=t.metadata,e[1]=v):v=e[1];const o=v;let g;e[2]!==t.ttl?(g=Ce(t.ttl),e[2]=t.ttl,e[3]=g):g=e[3];const f=g;let I;e[4]!==o||e[5]!==t.busy||e[6]!==t.name||e[7]!==f?(I=t.name.trim()!==""&&o&&f&&!t.busy,e[4]=o,e[5]=t.busy,e[6]=t.name,e[7]=f,e[8]=I):I=e[8];const K=I;let O;e[9]!==K||e[10]!==m||e[11]!==d||e[12]!==i||e[13]!==t.metadata||e[14]!==t.name||e[15]!==t.ttl||e[16]!==t.value?(O=()=>{K&&(a({type:"submitStart"}),z((async()=>{try{await m.putKvValue(we({metadata:t.metadata,ttl:t.ttl,value:t.value},t.name,d)),i()}catch(j){a({error:H(j),type:"submitFailed"})}})()))},e[9]=K,e[10]=m,e[11]=d,e[12]=i,e[13]=t.metadata,e[14]=t.name,e[15]=t.ttl,e[16]=t.value,e[17]=O):O=e[17];const p=O;let u;e[18]!==s?(u=s("Key name"),e[18]=s,e[19]=u):u=e[19];let y;e[20]!==u?(y=r(G,{className:"text-xs",htmlFor:"kv-create-name",children:u}),e[20]=u,e[21]=y):y=e[21];let x;e[22]===Symbol.for("react.memo_cache_sentinel")?(x=j=>{a({field:"name",type:"setField",value:j.target.value})},e[22]=x):x=e[22];let N;e[23]!==s?(N=s("Key name"),e[23]=s,e[24]=N):N=e[24];let C;e[25]!==t.name||e[26]!==N?(C=r(re,{autoFocus:!0,"data-testid":"kv-create-name",id:"kv-create-name",onChange:x,placeholder:N,value:t.name}),e[25]=t.name,e[26]=N,e[27]=C):C=e[27];let k;e[28]!==y||e[29]!==C?(k=S("div",{className:"grid gap-1",children:[y,C]}),e[28]=y,e[29]=C,e[30]=k):k=e[30];let w;e[31]!==s?(w=s("Value"),e[31]=s,e[32]=w):w=e[32];let E;e[33]!==w?(E=r(G,{className:"text-xs",htmlFor:"kv-create-value",children:w}),e[33]=w,e[34]=E):E=e[34];let J;e[35]===Symbol.for("react.memo_cache_sentinel")?(J=j=>{a({field:"value",type:"setField",value:j.target.value})},e[35]=J):J=e[35];let V;e[36]!==t.value?(V=r(fe,{className:"min-h-[6rem] font-mono text-xs","data-testid":"kv-create-value",id:"kv-create-value",onChange:J,value:t.value}),e[36]=t.value,e[37]=V):V=e[37];let L;e[38]!==E||e[39]!==V?(L=S("div",{className:"grid gap-1",children:[E,V]}),e[38]=E,e[39]=V,e[40]=L):L=e[40];const D=!f;let M;e[41]===Symbol.for("react.memo_cache_sentinel")?(M=j=>{a({field:"ttl",type:"setField",value:j})},e[41]=M):M=e[41];let n;e[42]!==D?(n=r(Se,{id:"kv-create-ttl",invalid:D,onChange:M,testId:"kv-create-ttl"}),e[42]=D,e[43]=n):n=e[43];let h;e[44]===Symbol.for("react.memo_cache_sentinel")?(h=j=>{a({field:"metadata",type:"setField",value:j})},e[44]=h):h=e[44];let $;e[45]!==o||e[46]!==t.metadata?($=r($e,{id:"kv-create-metadata",invalidTestId:"kv-create-metadata-invalid",onChange:h,testId:"kv-create-metadata",valid:o,value:t.metadata}),e[45]=o,e[46]=t.metadata,e[47]=$):$=e[47];const T=!K;let F;e[48]!==t.busy||e[49]!==s?(F=t.busy?s("Creating…"):s("Create key"),e[48]=t.busy,e[49]=s,e[50]=F):F=e[50];let _;e[51]!==p||e[52]!==T||e[53]!==F?(_=r(B,{"data-testid":"kv-create-submit",disabled:T,onClick:p,children:F}),e[51]=p,e[52]=T,e[53]=F,e[54]=_):_=e[54];const b=t.busy;let P;e[55]!==s?(P=s("Cancel"),e[55]=s,e[56]=P):P=e[56];let A;e[57]!==c||e[58]!==t.busy||e[59]!==P?(A=r(B,{"data-testid":"kv-create-cancel",disabled:b,onClick:c,variant:"outline",children:P}),e[57]=c,e[58]=t.busy,e[59]=P,e[60]=A):A=e[60];let R;e[61]!==_||e[62]!==A?(R=S("div",{className:"flex flex-wrap gap-2",children:[_,A]}),e[61]=_,e[62]=A,e[63]=R):R=e[63];let U;e[64]!==t.error?(U=t.error!==null&&r("p",{className:"text-sm text-destructive","data-testid":"kv-create-error",role:"alert",children:t.error}),e[64]=t.error,e[65]=U):U=e[65];let W;return e[66]!==k||e[67]!==L||e[68]!==n||e[69]!==$||e[70]!==R||e[71]!==U?(W=S("div",{className:"grid gap-3 px-4 pb-4","data-testid":"kv-create-form",children:[k,L,n,$,R,U]}),e[66]=k,e[67]=L,e[68]=n,e[69]=$,e[70]=R,e[71]=U,e[72]=W):W=e[72],W},je={busy:"",editedMetadata:"",editedTtl:"",editedValue:"",loadError:null,loading:!0,value:null,writeError:null},Ae=(l,e)=>{switch(e.type){case"deleteStart":return{...l,busy:"deleting",writeError:null};case"editMetadata":return{...l,editedMetadata:e.value};case"editTtl":return{...l,editedTtl:e.value};case"editValue":return{...l,editedValue:e.value};case"loaded":return{...l,editedMetadata:e.metadata===null||e.metadata===void 0?"":JSON.stringify(e.metadata,null,2),editedValue:e.value??"",loading:!1,value:e.value};case"loadFailed":return{...l,loadError:e.error,loading:!1};case"saveOk":return{...l,busy:"",value:l.editedValue};case"saveStart":return{...l,busy:"saving",writeError:null};case"writeFailed":return{...l,busy:"",writeError:e.error};default:return l}},ze=l=>{const e=te(67),{expiration:d,keyName:c,namespace:i,onDeleted:m}=l,s=ee(),t=q(),[a,v]=ae(Ae,je);let o,g;e[0]!==s||e[1]!==c||e[2]!==i?(o=()=>{const b={cancelled:!1};return z((async()=>{try{const P=await s.getKvValue({key:c,namespace:i});b.cancelled||v({metadata:P.metadata,type:"loaded",value:P.value})}catch(P){const A=P;b.cancelled||v({error:H(A),type:"loadFailed"})}})()),()=>{b.cancelled=!0}},g=[s,i,c],e[0]=s,e[1]=c,e[2]=i,e[3]=o,e[4]=g):(o=e[3],g=e[4]),le(o,g);let f;e[5]===Symbol.for("react.memo_cache_sentinel")?(f=b=>{v({type:"editValue",value:b.target.value})},e[5]=f):f=e[5];const I=f;let K;e[6]===Symbol.for("react.memo_cache_sentinel")?(K=b=>{v({type:"editMetadata",value:b})},e[6]=K):K=e[6];const O=K;let p;e[7]!==a.editedValue?(p=ge(a.editedValue),e[7]=a.editedValue,e[8]=p):p=e[8];const u=p;let y;e[9]!==a.editedMetadata?(y=xe(a.editedMetadata),e[9]=a.editedMetadata,e[10]=y):y=e[10];const x=y;let N;e[11]!==a.editedTtl?(N=Ce(a.editedTtl),e[11]=a.editedTtl,e[12]=N):N=e[12];const C=N;let k;e[13]!==u?(k=()=>{u!==void 0&&v({type:"editValue",value:u})},e[13]=u,e[14]=k):k=e[14];const w=k;let E;e[15]!==s||e[16]!==d||e[17]!==c||e[18]!==x||e[19]!==i||e[20]!==a.editedMetadata||e[21]!==a.editedTtl||e[22]!==a.editedValue||e[23]!==t?(E=()=>{if(!x){v({error:t("Metadata must be valid JSON."),type:"writeFailed"});return}v({type:"saveStart"}),z((async()=>{try{await s.putKvValue(we({metadata:a.editedMetadata,ttl:a.editedTtl,value:a.editedValue},c,i,d)),v({type:"saveOk"})}catch(b){v({error:H(b),type:"writeFailed"})}})())},e[15]=s,e[16]=d,e[17]=c,e[18]=x,e[19]=i,e[20]=a.editedMetadata,e[21]=a.editedTtl,e[22]=a.editedValue,e[23]=t,e[24]=E):E=e[24];const J=E;let V;e[25]!==s||e[26]!==c||e[27]!==i||e[28]!==m?(V=()=>{v({type:"deleteStart"}),z((async()=>{try{await s.deleteKvKey({key:c,namespace:i}),m(c)}catch(b){v({error:H(b),type:"writeFailed"})}})())},e[25]=s,e[26]=c,e[27]=i,e[28]=m,e[29]=V):V=e[29];const L=V;let D;e[30]!==c?(D=()=>{ne(c)},e[30]=c,e[31]=D):D=e[31];let M;e[32]!==t?(M=t("Copy key"),e[32]=t,e[33]=M):M=e[33];let n;e[34]!==D||e[35]!==M?(n=r("div",{className:"mb-2 flex justify-end",children:r(B,{"data-testid":"kv-copy-key-btn",onClick:D,size:"sm",variant:"outline",children:M})}),e[34]=D,e[35]=M,e[36]=n):n=e[36];let h;e[37]!==a.loadError?(h=a.loadError!==null&&r("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-value-error",role:"alert",children:a.loadError}),e[37]=a.loadError,e[38]=h):h=e[38];let $;e[39]!==a.loading||e[40]!==t?($=a.loading&&r("p",{className:"text-sm text-muted-foreground","data-testid":"kv-value-loading",children:t("Loading…")}),e[39]=a.loading,e[40]=t,e[41]=$):$=e[41];let T;e[42]!==u||e[43]!==x||e[44]!==L||e[45]!==w||e[46]!==J||e[47]!==a.busy||e[48]!==a.editedMetadata||e[49]!==a.editedValue||e[50]!==a.loading||e[51]!==a.value||e[52]!==a.writeError||e[53]!==t||e[54]!==C?(T=!a.loading&&a.value!==null&&S(be,{children:[S("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[r(G,{className:"text-xs",htmlFor:"kv-value-editor",children:t("Value")}),u!==void 0&&r(Oe,{variant:"secondary",children:t("JSON")}),r("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground","data-testid":"kv-value-size",children:Ee(De(a.editedValue))})]}),r("textarea",{"aria-label":t("KV value"),className:"mb-2 min-h-[8rem] w-full rounded border border-border bg-muted/30 p-2 font-mono text-xs","data-testid":"kv-value-editor",id:"kv-value-editor",onChange:I,value:a.editedValue}),S("div",{className:"mb-3 flex flex-wrap gap-2",children:[r(B,{"data-testid":"kv-format-btn",disabled:u===void 0,onClick:w,size:"sm",variant:"outline",children:t("Format JSON")}),r(B,{"data-testid":"kv-copy-value-btn",onClick:()=>{ne(a.editedValue)},size:"sm",variant:"outline",children:t("Copy value")})]}),r(Se,{helper:t("Leave blank to keep the current expiration."),id:"kv-ttl-input",invalid:!C,onChange:b=>{v({type:"editTtl",value:b})},testId:"kv-ttl-input"}),r($e,{id:"kv-metadata-editor",invalidTestId:"kv-metadata-invalid",onChange:O,testId:"kv-metadata-editor",valid:x,value:a.editedMetadata}),S("div",{className:"flex flex-wrap gap-2",children:[r(B,{"data-testid":"kv-save-btn",disabled:a.busy!==""||!x||!C,onClick:J,children:a.busy==="saving"?t("Saving…"):t("Save")}),r(B,{"data-testid":"kv-delete-btn",disabled:a.busy!=="",onClick:L,variant:"destructive",children:a.busy==="deleting"?t("Deleting…"):t("Delete")})]}),a.writeError!==null&&r("p",{className:"mt-2 text-sm text-destructive","data-testid":"kv-save-error",role:"alert",children:a.writeError})]}),e[42]=u,e[43]=x,e[44]=L,e[45]=w,e[46]=J,e[47]=a.busy,e[48]=a.editedMetadata,e[49]=a.editedValue,e[50]=a.loading,e[51]=a.value,e[52]=a.writeError,e[53]=t,e[54]=C,e[55]=T):T=e[55];let F;e[56]!==a.loadError||e[57]!==a.loading||e[58]!==a.value||e[59]!==t?(F=!a.loading&&a.value===null&&a.loadError===null&&r("p",{className:"text-sm text-muted-foreground","data-testid":"kv-absent",children:t("Key is absent or has no value.")}),e[56]=a.loadError,e[57]=a.loading,e[58]=a.value,e[59]=t,e[60]=F):F=e[60];let _;return e[61]!==n||e[62]!==h||e[63]!==$||e[64]!==T||e[65]!==F?(_=S("div",{className:"px-4 pb-4","data-testid":"kv-value-section",children:[n,h,$,T,F]}),e[61]=n,e[62]=h,e[63]=$,e[64]=T,e[65]=F,e[66]=_):_=e[66],_},me=100,He={appliedPrefix:"",bulk:[],bulkBusy:!1,bulkError:null,cursor:null,keys:null,listComplete:!1,loadError:null,loading:!1,prefixInput:"",reloadNonce:0,selectedKey:null},Re=(l,e)=>{switch(e.type){case"appendPage":return{...l,cursor:e.cursor,keys:[...l.keys??[],...e.keys],listComplete:e.listComplete,loading:!1};case"applyFilter":return{...l,appliedPrefix:l.prefixInput,bulk:[],bulkError:null,cursor:null,keys:null,listComplete:!1,selectedKey:null};case"bulkDeleted":{const d=new Set(e.deleted);return{...l,bulk:l.bulk.filter(c=>!d.has(c)),bulkBusy:!1,bulkError:e.error,keys:l.keys===null?null:l.keys.filter(c=>!d.has(c.name)),selectedKey:l.selectedKey!==null&&d.has(l.selectedKey)?null:l.selectedKey}}case"bulkDeleteStart":return{...l,bulkBusy:!0,bulkError:null};case"firstPage":return{...l,cursor:e.cursor,keys:e.keys,listComplete:e.listComplete,loading:!1};case"keyDeleted":return{...l,bulk:l.bulk.filter(d=>d!==e.name),keys:l.keys===null?null:l.keys.filter(d=>d.name!==e.name),selectedKey:null};case"loadFailed":return{...l,loadError:e.error,loading:!1};case"loadStart":return{...l,loadError:null,loading:!0};case"prefixInput":return{...l,prefixInput:e.value};case"reload":return{...l,bulk:[],bulkError:null,reloadNonce:l.reloadNonce+1,selectedKey:null};case"selectKey":return{...l,selectedKey:e.name};case"toggleAllBulk":return{...l,bulk:e.names};case"toggleBulk":return{...l,bulk:l.bulk.includes(e.name)?l.bulk.filter(d=>d!==e.name):[...l.bulk,e.name]};default:return l}},Ue=({namespace:l})=>{const e=ee(),d=q(),[c,i]=ae(Re,He),{appliedPrefix:m,bulk:s,bulkBusy:t,bulkError:a,cursor:v,keys:o,listComplete:g,loadError:f,loading:I,prefixInput:K,reloadNonce:O,selectedKey:p}=c,[u,y]=Z(!1);le(()=>{const n={cancelled:!1};return z((async()=>{i({type:"loadStart"});try{const h=await e.listKvKeys({limit:me,namespace:l,prefix:m===""?void 0:m});n.cancelled||i({cursor:h.cursor??null,keys:h.keys,listComplete:h.listComplete,type:"firstPage"})}catch(h){n.cancelled||i({error:H(h),type:"loadFailed"})}})()),()=>{n.cancelled=!0}},[e,l,m,O]);const x=n=>{i({type:"prefixInput",value:n.target.value})},N=()=>{i({type:"applyFilter"})},C=n=>{i({name:n.currentTarget.dataset.key??null,type:"selectKey"})},k=()=>{v!==null&&(i({type:"loadStart"}),z((async()=>{try{const n=await e.listKvKeys({cursor:v,limit:me,namespace:l,prefix:m===""?void 0:m});i({cursor:n.cursor??null,keys:n.keys,listComplete:n.listComplete,type:"appendPage"})}catch(n){i({error:H(n),type:"loadFailed"})}})()))},w=n=>{i({name:n,type:"keyDeleted"})},E=n=>{i({name:n,type:"toggleBulk"})},J=n=>{i({names:n&&o!==null?o.map(h=>h.name):[],type:"toggleAllBulk"})},V=()=>{if(s.length===0)return;const n=[...s];i({type:"bulkDeleteStart"}),z((async()=>{const h=await Promise.allSettled(n.map(F=>e.deleteKvKey({key:F,namespace:l}))),$=n.filter((F,_)=>h[_]?.status==="fulfilled"),T=n.length-$.length;i({deleted:$,error:T>0?d("Failed to delete {count} keys.",{count:T}):null,type:"bulkDeleted"})})())},L=()=>{y(!1),i({type:"reload"})},D=o!==null&&o.length>0&&s.length===o.length,M=new Set(s);return S(be,{children:[S("section",{className:"border border-border bg-card p-3","data-testid":"kv-keys-section",children:[S("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[r(re,{"aria-label":d("Filter keys by prefix"),className:"min-w-[16rem] flex-1","data-testid":"kv-prefix-input",onChange:x,placeholder:d("Filter by prefix…"),value:K}),r(B,{"data-testid":"kv-filter-btn",disabled:I,onClick:N,children:d("Filter")}),r(B,{"data-testid":"kv-new-key-btn",onClick:()=>{y(n=>!n)},variant:"outline",children:d("New key")}),s.length>0&&r(B,{"data-testid":"kv-bulk-delete-btn",disabled:t,onClick:V,variant:"destructive",children:t?d("Deleting…"):d("Delete {count}",{count:s.length})})]}),a!==null&&r("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-bulk-error",role:"alert",children:a}),f!==null&&r("p",{className:"text-sm text-destructive","data-testid":"kv-keys-error",role:"alert",children:f}),o!==null&&o.length===0&&!I&&r("p",{className:"text-sm text-muted-foreground","data-testid":"kv-no-keys",children:d("No keys.")}),o!==null&&o.length>0&&r(ve,{className:"overflow-hidden py-0",children:r(pe,{className:"px-0",children:S(ye,{"data-testid":"kv-key-table",children:[r(he,{children:S(X,{children:[r(Y,{className:"w-10",children:r(de,{"aria-label":d("Select all"),checked:D,"data-testid":"kv-select-all",onCheckedChange:J})}),r(Y,{children:d("Key")}),r(Y,{children:d("Expiration")})]})}),r(ke,{children:o.map(n=>S(X,{className:n.name===p?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-key":n.name,"data-testid":`kv-key-row-${n.name}`,onClick:C,children:[r(Q,{onClick:h=>{h.stopPropagation()},children:r(de,{"aria-label":d("Select {name}",{name:n.name}),checked:M.has(n.name),"data-testid":`kv-select-${n.name}`,onCheckedChange:()=>{E(n.name)}})}),r(Q,{className:"font-mono text-xs",children:n.name}),r(Q,{className:"tabular-nums text-xs",children:Je(n.expiration)})]},n.name))})]})})}),!g&&v!==null&&r("div",{className:"mt-2",children:r(B,{"data-testid":"kv-load-more",disabled:I,onClick:k,variant:"outline",children:d(I?"Loading…":"Load more")})})]}),r(ie,{onOpenChange:n=>{n||y(!1)},open:u,children:S(se,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-create-sheet",side:"right",children:[r(oe,{children:r(ce,{children:d("New key")})}),r(Pe,{namespace:l,onCancel:()=>{y(!1)},onCreated:L})]})}),r(ie,{onOpenChange:n=>{n||i({name:null,type:"selectKey"})},open:p!==null,children:S(se,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-editor-sheet",side:"right",children:[r(oe,{children:r(ce,{className:"truncate font-mono text-xs",children:p})}),p!==null&&r(ze,{expiration:o?.find(n=>n.name===p)?.expiration,keyName:p,namespace:l,onDeleted:w},`${l}:${p}`)]})})]})},ct=({loadNamespaces:l}={})=>{const e=ee(),d=q(),[c,i]=Z(null),[m,s]=Z(null),[t,a]=Z(null);le(()=>{const o={cancelled:!1};return z((async()=>{try{const g=await(l??(()=>e.listKvNamespaces()))();o.cancelled||(i(g),s(null),a(f=>f??g[0]?.binding??null))}catch(g){o.cancelled||(i(null),s(H(g)))}})()),()=>{o.cancelled=!0}},[e,l]);const v=o=>{a(o.currentTarget.dataset.ns??null)};return S("div",{className:"flex flex-col gap-4","data-testid":"lunora-kv-browser",children:[m!==null&&r("p",{className:"text-sm text-destructive","data-testid":"kv-ns-error",role:"alert",children:m}),c!==null&&c.length===0&&r(Fe,{description:d("Add a kv_namespaces binding to wrangler.jsonc — it appears here automatically, no wiring needed."),icon:r("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:r("path",{d:"M5 5h14v4H5V5Zm0 5h14v4H5v-4Zm0 5h14v4H5v-4Z"})}),testId:"kv-empty",title:d("No KV namespaces.")}),c!==null&&c.length>0&&r(ve,{className:"overflow-hidden py-0",children:r(pe,{className:"px-0",children:S(ye,{"data-testid":"kv-namespace-table",children:[r(he,{children:r(X,{children:r(Y,{children:d("Namespace")})})}),r(ke,{children:c.map(o=>r(X,{className:o.binding===t?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-ns":o.binding,"data-testid":`kv-ns-row-${o.binding}`,onClick:v,children:r(Q,{className:"font-mono text-xs",children:o.binding})},o.binding))})]})})}),t!==null&&r(Ue,{namespace:t},t)]})};export{ct as KvBrowser};
|
|
1
|
+
import{useLunora as ee}from"@lunora/react";import{useState as Z,useReducer as ae,useEffect as le}from"react";import{c as ve,f as pe}from"../packem_shared/card-BMKx5UdA.js";import{E as Fe}from"../packem_shared/empty-state-Cg7t_8qu.js";import{d as ye,n as he,f as X,m as Y,b as ke,p as Q}from"../packem_shared/table-DZAB8cs3.js";import{useT as q}from"../packem_shared/DEFAULT_LOCALE-BZ4NojpD.js";import{f as z,b as H,l as Ee,c as ne}from"../packem_shared/internal-zkEvTqy8.js";import{u as B}from"../packem_shared/button-BkCrNcAs.js";import{f as de}from"../packem_shared/checkbox-StT4Gob6.js";import{u as re}from"../packem_shared/input-JHu63lTv.js";import{h as ie,u as se,y as oe,c as ce}from"../packem_shared/studio-CUXq5VSB.js";import{c as te}from"react/compiler-runtime";import{p as G}from"../packem_shared/label-6uP1obNF.js";import{l as fe}from"../packem_shared/textarea-Bu2-jKAs.js";import{w as Ke,z as Ve,_ as Me,S as Te,x as Ie}from"../packem_shared/select-BssZMiFY.js";import{jsx as r,jsxs as S,Fragment as be}from"react/jsx-runtime";import{g as Oe}from"../packem_shared/badge-BbuuAio7.js";const _e=l=>{const e=l.trim();if(e==="")return;const d=Number(e);return Number.isFinite(d)&&d>0?Math.floor(d):void 0},Je=l=>l===void 0?"—":new Date(l*1e3).toISOString(),De=l=>new TextEncoder().encode(l).length,ge=l=>{if(l.trim()!=="")try{return JSON.stringify(JSON.parse(l),void 0,2)}catch{return}},xe=l=>{if(l.trim()==="")return!0;try{return JSON.parse(l),!0}catch{return!1}},Ne=[{key:"seconds",seconds:1},{key:"minutes",seconds:60},{key:"hours",seconds:3600},{key:"days",seconds:86400}],ue=(l,e)=>{const d=l.trim();if(d==="")return"";const c=Number(d),i=Ne.find(m=>m.key===e)?.seconds??1;return Number.isFinite(c)&&c>0?String(Math.round(c*i)):d},Ce=l=>{const e=l.trim();if(e==="")return!0;const d=Number(e);return Number.isInteger(d)&&d>=60},we=(l,e,d,c)=>{const i=_e(l.ttl);return{expiration:i===void 0?c:void 0,expirationTtl:i,key:e,metadata:l.metadata.trim()===""?void 0:JSON.parse(l.metadata),namespace:d,value:l.value}},Se=l=>{const e=te(60),{helper:d,id:c,invalid:i,onChange:m,testId:s}=l,t=q(),[a,v]=Z(""),[o,g]=Z("seconds");let f;e[0]!==m||e[1]!==o?(f=b=>{v(b.target.value),m(ue(b.target.value,o))},e[0]=m,e[1]=o,e[2]=f):f=e[2];const I=f;let K;e[3]!==a||e[4]!==m?(K=b=>{b!==null&&(g(b),m(ue(a,b)))},e[3]=a,e[4]=m,e[5]=K):K=e[5];const O=K;let p;e[6]!==t?(p=t("days"),e[6]=t,e[7]=p):p=e[7];let u;e[8]!==t?(u=t("hours"),e[8]=t,e[9]=u):u=e[9];let y;e[10]!==t?(y=t("minutes"),e[10]=t,e[11]=y):y=e[11];let x;e[12]!==t?(x=t("seconds"),e[12]=t,e[13]=x):x=e[13];let N;e[14]!==p||e[15]!==u||e[16]!==y||e[17]!==x?(N={days:p,hours:u,minutes:y,seconds:x},e[14]=p,e[15]=u,e[16]=y,e[17]=x,e[18]=N):N=e[18];const C=N;let k;e[19]!==t?(k=t("Expires after"),e[19]=t,e[20]=k):k=e[20];let w;e[21]!==c||e[22]!==k?(w=r(G,{className:"text-xs",htmlFor:c,children:k}),e[21]=c,e[22]=k,e[23]=w):w=e[23];let E;e[24]!==t?(E=t("No expiration"),e[24]=t,e[25]=E):E=e[25];let J;e[26]!==a||e[27]!==c||e[28]!==i||e[29]!==I||e[30]!==E||e[31]!==s?(J=r(re,{"aria-invalid":i,className:"flex-1","data-testid":s,id:c,inputMode:"numeric",onChange:I,placeholder:E,value:a}),e[26]=a,e[27]=c,e[28]=i,e[29]=I,e[30]=E,e[31]=s,e[32]=J):J=e[32];let V;e[33]!==t?(V=t("TTL unit"),e[33]=t,e[34]=V):V=e[34];const L=`${s}-unit`;let D;e[35]===Symbol.for("react.memo_cache_sentinel")?(D=r(Ke,{}),e[35]=D):D=e[35];let M;e[36]!==V||e[37]!==L?(M=r(Ve,{"aria-label":V,className:"w-[7.5rem]","data-testid":L,children:D}),e[36]=V,e[37]=L,e[38]=M):M=e[38];let n;e[39]!==C?(n=Ne.map(b=>r(Me,{value:b.key,children:C[b.key]},b.key)),e[39]=C,e[40]=n):n=e[40];let h;e[41]!==n?(h=r(Te,{children:n}),e[41]=n,e[42]=h):h=e[42];let $;e[43]!==O||e[44]!==M||e[45]!==h||e[46]!==o?($=S(Ie,{onValueChange:O,value:o,children:[M,h]}),e[43]=O,e[44]=M,e[45]=h,e[46]=o,e[47]=$):$=e[47];let T;e[48]!==J||e[49]!==$?(T=S("div",{className:"flex gap-2",children:[J,$]}),e[48]=J,e[49]=$,e[50]=T):T=e[50];let F;e[51]!==d||e[52]!==i||e[53]!==t||e[54]!==s?(F=i?r("p",{className:"text-xs text-destructive","data-testid":`${s}-invalid`,children:t("TTL must be at least 60 seconds.")}):d!==void 0&&r("p",{className:"text-xs text-muted-foreground",children:d}),e[51]=d,e[52]=i,e[53]=t,e[54]=s,e[55]=F):F=e[55];let _;return e[56]!==T||e[57]!==F||e[58]!==w?(_=S("div",{className:"mb-3 grid gap-1",children:[w,T,F]}),e[56]=T,e[57]=F,e[58]=w,e[59]=_):_=e[59],_},$e=l=>{const e=te(36),{id:d,invalidTestId:c,onChange:i,testId:m,valid:s,value:t}=l,a=q();let v;e[0]!==t?(v=ge(t),e[0]=t,e[1]=v):v=e[1];const o=v;let g;e[2]!==a?(g=a("Metadata (JSON)"),e[2]=a,e[3]=g):g=e[3];let f;e[4]!==d||e[5]!==g?(f=r(G,{className:"text-xs",htmlFor:d,children:g}),e[4]=d,e[5]=g,e[6]=f):f=e[6];const I=`${m}-format`,K=o===void 0;let O;e[7]!==o||e[8]!==i?(O=()=>{o!==void 0&&i(o)},e[7]=o,e[8]=i,e[9]=O):O=e[9];let p;e[10]!==a?(p=a("Format JSON"),e[10]=a,e[11]=p):p=e[11];let u;e[12]!==I||e[13]!==K||e[14]!==O||e[15]!==p?(u=r(B,{"data-testid":I,disabled:K,onClick:O,size:"sm",variant:"outline",children:p}),e[12]=I,e[13]=K,e[14]=O,e[15]=p,e[16]=u):u=e[16];let y;e[17]!==f||e[18]!==u?(y=S("div",{className:"flex items-center justify-between gap-2",children:[f,u]}),e[17]=f,e[18]=u,e[19]=y):y=e[19];const x=!s;let N;e[20]!==i?(N=E=>{i(E.target.value)},e[20]=i,e[21]=N):N=e[21];let C;e[22]!==d||e[23]!==x||e[24]!==N||e[25]!==m||e[26]!==t?(C=r(fe,{"aria-invalid":x,className:"min-h-[4rem] font-mono text-xs","data-testid":m,id:d,onChange:N,value:t}),e[22]=d,e[23]=x,e[24]=N,e[25]=m,e[26]=t,e[27]=C):C=e[27];let k;e[28]!==c||e[29]!==a||e[30]!==s?(k=!s&&r("p",{className:"text-xs text-destructive","data-testid":c,children:a("Metadata must be valid JSON.")}),e[28]=c,e[29]=a,e[30]=s,e[31]=k):k=e[31];let w;return e[32]!==C||e[33]!==k||e[34]!==y?(w=S("div",{className:"mb-3 grid gap-1",children:[y,C,k]}),e[32]=C,e[33]=k,e[34]=y,e[35]=w):w=e[35],w},Le={busy:!1,error:null,metadata:"",name:"",ttl:"",value:""},Be=(l,e)=>{switch(e.type){case"setField":return{...l,[e.field]:e.value};case"submitFailed":return{...l,busy:!1,error:e.error};case"submitStart":return{...l,busy:!0,error:null};default:return l}},Pe=l=>{const e=te(73),{namespace:d,onCancel:c,onCreated:i}=l,m=ee(),s=q(),[t,a]=ae(Be,Le);let v;e[0]!==t.metadata?(v=xe(t.metadata),e[0]=t.metadata,e[1]=v):v=e[1];const o=v;let g;e[2]!==t.ttl?(g=Ce(t.ttl),e[2]=t.ttl,e[3]=g):g=e[3];const f=g;let I;e[4]!==o||e[5]!==t.busy||e[6]!==t.name||e[7]!==f?(I=t.name.trim()!==""&&o&&f&&!t.busy,e[4]=o,e[5]=t.busy,e[6]=t.name,e[7]=f,e[8]=I):I=e[8];const K=I;let O;e[9]!==K||e[10]!==m||e[11]!==d||e[12]!==i||e[13]!==t.metadata||e[14]!==t.name||e[15]!==t.ttl||e[16]!==t.value?(O=()=>{K&&(a({type:"submitStart"}),z((async()=>{try{await m.putKvValue(we({metadata:t.metadata,ttl:t.ttl,value:t.value},t.name,d)),i()}catch(j){a({error:H(j),type:"submitFailed"})}})()))},e[9]=K,e[10]=m,e[11]=d,e[12]=i,e[13]=t.metadata,e[14]=t.name,e[15]=t.ttl,e[16]=t.value,e[17]=O):O=e[17];const p=O;let u;e[18]!==s?(u=s("Key name"),e[18]=s,e[19]=u):u=e[19];let y;e[20]!==u?(y=r(G,{className:"text-xs",htmlFor:"kv-create-name",children:u}),e[20]=u,e[21]=y):y=e[21];let x;e[22]===Symbol.for("react.memo_cache_sentinel")?(x=j=>{a({field:"name",type:"setField",value:j.target.value})},e[22]=x):x=e[22];let N;e[23]!==s?(N=s("Key name"),e[23]=s,e[24]=N):N=e[24];let C;e[25]!==t.name||e[26]!==N?(C=r(re,{autoFocus:!0,"data-testid":"kv-create-name",id:"kv-create-name",onChange:x,placeholder:N,value:t.name}),e[25]=t.name,e[26]=N,e[27]=C):C=e[27];let k;e[28]!==y||e[29]!==C?(k=S("div",{className:"grid gap-1",children:[y,C]}),e[28]=y,e[29]=C,e[30]=k):k=e[30];let w;e[31]!==s?(w=s("Value"),e[31]=s,e[32]=w):w=e[32];let E;e[33]!==w?(E=r(G,{className:"text-xs",htmlFor:"kv-create-value",children:w}),e[33]=w,e[34]=E):E=e[34];let J;e[35]===Symbol.for("react.memo_cache_sentinel")?(J=j=>{a({field:"value",type:"setField",value:j.target.value})},e[35]=J):J=e[35];let V;e[36]!==t.value?(V=r(fe,{className:"min-h-[6rem] font-mono text-xs","data-testid":"kv-create-value",id:"kv-create-value",onChange:J,value:t.value}),e[36]=t.value,e[37]=V):V=e[37];let L;e[38]!==E||e[39]!==V?(L=S("div",{className:"grid gap-1",children:[E,V]}),e[38]=E,e[39]=V,e[40]=L):L=e[40];const D=!f;let M;e[41]===Symbol.for("react.memo_cache_sentinel")?(M=j=>{a({field:"ttl",type:"setField",value:j})},e[41]=M):M=e[41];let n;e[42]!==D?(n=r(Se,{id:"kv-create-ttl",invalid:D,onChange:M,testId:"kv-create-ttl"}),e[42]=D,e[43]=n):n=e[43];let h;e[44]===Symbol.for("react.memo_cache_sentinel")?(h=j=>{a({field:"metadata",type:"setField",value:j})},e[44]=h):h=e[44];let $;e[45]!==o||e[46]!==t.metadata?($=r($e,{id:"kv-create-metadata",invalidTestId:"kv-create-metadata-invalid",onChange:h,testId:"kv-create-metadata",valid:o,value:t.metadata}),e[45]=o,e[46]=t.metadata,e[47]=$):$=e[47];const T=!K;let F;e[48]!==t.busy||e[49]!==s?(F=t.busy?s("Creating…"):s("Create key"),e[48]=t.busy,e[49]=s,e[50]=F):F=e[50];let _;e[51]!==p||e[52]!==T||e[53]!==F?(_=r(B,{"data-testid":"kv-create-submit",disabled:T,onClick:p,children:F}),e[51]=p,e[52]=T,e[53]=F,e[54]=_):_=e[54];const b=t.busy;let P;e[55]!==s?(P=s("Cancel"),e[55]=s,e[56]=P):P=e[56];let A;e[57]!==c||e[58]!==t.busy||e[59]!==P?(A=r(B,{"data-testid":"kv-create-cancel",disabled:b,onClick:c,variant:"outline",children:P}),e[57]=c,e[58]=t.busy,e[59]=P,e[60]=A):A=e[60];let R;e[61]!==_||e[62]!==A?(R=S("div",{className:"flex flex-wrap gap-2",children:[_,A]}),e[61]=_,e[62]=A,e[63]=R):R=e[63];let U;e[64]!==t.error?(U=t.error!==null&&r("p",{className:"text-sm text-destructive","data-testid":"kv-create-error",role:"alert",children:t.error}),e[64]=t.error,e[65]=U):U=e[65];let W;return e[66]!==k||e[67]!==L||e[68]!==n||e[69]!==$||e[70]!==R||e[71]!==U?(W=S("div",{className:"grid gap-3 px-4 pb-4","data-testid":"kv-create-form",children:[k,L,n,$,R,U]}),e[66]=k,e[67]=L,e[68]=n,e[69]=$,e[70]=R,e[71]=U,e[72]=W):W=e[72],W},je={busy:"",editedMetadata:"",editedTtl:"",editedValue:"",loadError:null,loading:!0,value:null,writeError:null},Ae=(l,e)=>{switch(e.type){case"deleteStart":return{...l,busy:"deleting",writeError:null};case"editMetadata":return{...l,editedMetadata:e.value};case"editTtl":return{...l,editedTtl:e.value};case"editValue":return{...l,editedValue:e.value};case"loaded":return{...l,editedMetadata:e.metadata===null||e.metadata===void 0?"":JSON.stringify(e.metadata,null,2),editedValue:e.value??"",loading:!1,value:e.value};case"loadFailed":return{...l,loadError:e.error,loading:!1};case"saveOk":return{...l,busy:"",value:l.editedValue};case"saveStart":return{...l,busy:"saving",writeError:null};case"writeFailed":return{...l,busy:"",writeError:e.error};default:return l}},ze=l=>{const e=te(67),{expiration:d,keyName:c,namespace:i,onDeleted:m}=l,s=ee(),t=q(),[a,v]=ae(Ae,je);let o,g;e[0]!==s||e[1]!==c||e[2]!==i?(o=()=>{const b={cancelled:!1};return z((async()=>{try{const P=await s.getKvValue({key:c,namespace:i});b.cancelled||v({metadata:P.metadata,type:"loaded",value:P.value})}catch(P){const A=P;b.cancelled||v({error:H(A),type:"loadFailed"})}})()),()=>{b.cancelled=!0}},g=[s,i,c],e[0]=s,e[1]=c,e[2]=i,e[3]=o,e[4]=g):(o=e[3],g=e[4]),le(o,g);let f;e[5]===Symbol.for("react.memo_cache_sentinel")?(f=b=>{v({type:"editValue",value:b.target.value})},e[5]=f):f=e[5];const I=f;let K;e[6]===Symbol.for("react.memo_cache_sentinel")?(K=b=>{v({type:"editMetadata",value:b})},e[6]=K):K=e[6];const O=K;let p;e[7]!==a.editedValue?(p=ge(a.editedValue),e[7]=a.editedValue,e[8]=p):p=e[8];const u=p;let y;e[9]!==a.editedMetadata?(y=xe(a.editedMetadata),e[9]=a.editedMetadata,e[10]=y):y=e[10];const x=y;let N;e[11]!==a.editedTtl?(N=Ce(a.editedTtl),e[11]=a.editedTtl,e[12]=N):N=e[12];const C=N;let k;e[13]!==u?(k=()=>{u!==void 0&&v({type:"editValue",value:u})},e[13]=u,e[14]=k):k=e[14];const w=k;let E;e[15]!==s||e[16]!==d||e[17]!==c||e[18]!==x||e[19]!==i||e[20]!==a.editedMetadata||e[21]!==a.editedTtl||e[22]!==a.editedValue||e[23]!==t?(E=()=>{if(!x){v({error:t("Metadata must be valid JSON."),type:"writeFailed"});return}v({type:"saveStart"}),z((async()=>{try{await s.putKvValue(we({metadata:a.editedMetadata,ttl:a.editedTtl,value:a.editedValue},c,i,d)),v({type:"saveOk"})}catch(b){v({error:H(b),type:"writeFailed"})}})())},e[15]=s,e[16]=d,e[17]=c,e[18]=x,e[19]=i,e[20]=a.editedMetadata,e[21]=a.editedTtl,e[22]=a.editedValue,e[23]=t,e[24]=E):E=e[24];const J=E;let V;e[25]!==s||e[26]!==c||e[27]!==i||e[28]!==m?(V=()=>{v({type:"deleteStart"}),z((async()=>{try{await s.deleteKvKey({key:c,namespace:i}),m(c)}catch(b){v({error:H(b),type:"writeFailed"})}})())},e[25]=s,e[26]=c,e[27]=i,e[28]=m,e[29]=V):V=e[29];const L=V;let D;e[30]!==c?(D=()=>{ne(c)},e[30]=c,e[31]=D):D=e[31];let M;e[32]!==t?(M=t("Copy key"),e[32]=t,e[33]=M):M=e[33];let n;e[34]!==D||e[35]!==M?(n=r("div",{className:"mb-2 flex justify-end",children:r(B,{"data-testid":"kv-copy-key-btn",onClick:D,size:"sm",variant:"outline",children:M})}),e[34]=D,e[35]=M,e[36]=n):n=e[36];let h;e[37]!==a.loadError?(h=a.loadError!==null&&r("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-value-error",role:"alert",children:a.loadError}),e[37]=a.loadError,e[38]=h):h=e[38];let $;e[39]!==a.loading||e[40]!==t?($=a.loading&&r("p",{className:"text-sm text-muted-foreground","data-testid":"kv-value-loading",children:t("Loading…")}),e[39]=a.loading,e[40]=t,e[41]=$):$=e[41];let T;e[42]!==u||e[43]!==x||e[44]!==L||e[45]!==w||e[46]!==J||e[47]!==a.busy||e[48]!==a.editedMetadata||e[49]!==a.editedValue||e[50]!==a.loading||e[51]!==a.value||e[52]!==a.writeError||e[53]!==t||e[54]!==C?(T=!a.loading&&a.value!==null&&S(be,{children:[S("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[r(G,{className:"text-xs",htmlFor:"kv-value-editor",children:t("Value")}),u!==void 0&&r(Oe,{variant:"secondary",children:t("JSON")}),r("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground","data-testid":"kv-value-size",children:Ee(De(a.editedValue))})]}),r("textarea",{"aria-label":t("KV value"),className:"mb-2 min-h-[8rem] w-full rounded border border-border bg-muted/30 p-2 font-mono text-xs","data-testid":"kv-value-editor",id:"kv-value-editor",onChange:I,value:a.editedValue}),S("div",{className:"mb-3 flex flex-wrap gap-2",children:[r(B,{"data-testid":"kv-format-btn",disabled:u===void 0,onClick:w,size:"sm",variant:"outline",children:t("Format JSON")}),r(B,{"data-testid":"kv-copy-value-btn",onClick:()=>{ne(a.editedValue)},size:"sm",variant:"outline",children:t("Copy value")})]}),r(Se,{helper:t("Leave blank to keep the current expiration."),id:"kv-ttl-input",invalid:!C,onChange:b=>{v({type:"editTtl",value:b})},testId:"kv-ttl-input"}),r($e,{id:"kv-metadata-editor",invalidTestId:"kv-metadata-invalid",onChange:O,testId:"kv-metadata-editor",valid:x,value:a.editedMetadata}),S("div",{className:"flex flex-wrap gap-2",children:[r(B,{"data-testid":"kv-save-btn",disabled:a.busy!==""||!x||!C,onClick:J,children:a.busy==="saving"?t("Saving…"):t("Save")}),r(B,{"data-testid":"kv-delete-btn",disabled:a.busy!=="",onClick:L,variant:"destructive",children:a.busy==="deleting"?t("Deleting…"):t("Delete")})]}),a.writeError!==null&&r("p",{className:"mt-2 text-sm text-destructive","data-testid":"kv-save-error",role:"alert",children:a.writeError})]}),e[42]=u,e[43]=x,e[44]=L,e[45]=w,e[46]=J,e[47]=a.busy,e[48]=a.editedMetadata,e[49]=a.editedValue,e[50]=a.loading,e[51]=a.value,e[52]=a.writeError,e[53]=t,e[54]=C,e[55]=T):T=e[55];let F;e[56]!==a.loadError||e[57]!==a.loading||e[58]!==a.value||e[59]!==t?(F=!a.loading&&a.value===null&&a.loadError===null&&r("p",{className:"text-sm text-muted-foreground","data-testid":"kv-absent",children:t("Key is absent or has no value.")}),e[56]=a.loadError,e[57]=a.loading,e[58]=a.value,e[59]=t,e[60]=F):F=e[60];let _;return e[61]!==n||e[62]!==h||e[63]!==$||e[64]!==T||e[65]!==F?(_=S("div",{className:"px-4 pb-4","data-testid":"kv-value-section",children:[n,h,$,T,F]}),e[61]=n,e[62]=h,e[63]=$,e[64]=T,e[65]=F,e[66]=_):_=e[66],_},me=100,He={appliedPrefix:"",bulk:[],bulkBusy:!1,bulkError:null,cursor:null,keys:null,listComplete:!1,loadError:null,loading:!1,prefixInput:"",reloadNonce:0,selectedKey:null},Re=(l,e)=>{switch(e.type){case"appendPage":return{...l,cursor:e.cursor,keys:[...l.keys??[],...e.keys],listComplete:e.listComplete,loading:!1};case"applyFilter":return{...l,appliedPrefix:l.prefixInput,bulk:[],bulkError:null,cursor:null,keys:null,listComplete:!1,selectedKey:null};case"bulkDeleted":{const d=new Set(e.deleted);return{...l,bulk:l.bulk.filter(c=>!d.has(c)),bulkBusy:!1,bulkError:e.error,keys:l.keys===null?null:l.keys.filter(c=>!d.has(c.name)),selectedKey:l.selectedKey!==null&&d.has(l.selectedKey)?null:l.selectedKey}}case"bulkDeleteStart":return{...l,bulkBusy:!0,bulkError:null};case"firstPage":return{...l,cursor:e.cursor,keys:e.keys,listComplete:e.listComplete,loading:!1};case"keyDeleted":return{...l,bulk:l.bulk.filter(d=>d!==e.name),keys:l.keys===null?null:l.keys.filter(d=>d.name!==e.name),selectedKey:null};case"loadFailed":return{...l,loadError:e.error,loading:!1};case"loadStart":return{...l,loadError:null,loading:!0};case"prefixInput":return{...l,prefixInput:e.value};case"reload":return{...l,bulk:[],bulkError:null,reloadNonce:l.reloadNonce+1,selectedKey:null};case"selectKey":return{...l,selectedKey:e.name};case"toggleAllBulk":return{...l,bulk:e.names};case"toggleBulk":return{...l,bulk:l.bulk.includes(e.name)?l.bulk.filter(d=>d!==e.name):[...l.bulk,e.name]};default:return l}},Ue=({namespace:l})=>{const e=ee(),d=q(),[c,i]=ae(Re,He),{appliedPrefix:m,bulk:s,bulkBusy:t,bulkError:a,cursor:v,keys:o,listComplete:g,loadError:f,loading:I,prefixInput:K,reloadNonce:O,selectedKey:p}=c,[u,y]=Z(!1);le(()=>{const n={cancelled:!1};return z((async()=>{i({type:"loadStart"});try{const h=await e.listKvKeys({limit:me,namespace:l,prefix:m===""?void 0:m});n.cancelled||i({cursor:h.cursor??null,keys:h.keys,listComplete:h.listComplete,type:"firstPage"})}catch(h){n.cancelled||i({error:H(h),type:"loadFailed"})}})()),()=>{n.cancelled=!0}},[e,l,m,O]);const x=n=>{i({type:"prefixInput",value:n.target.value})},N=()=>{i({type:"applyFilter"})},C=n=>{i({name:n.currentTarget.dataset.key??null,type:"selectKey"})},k=()=>{v!==null&&(i({type:"loadStart"}),z((async()=>{try{const n=await e.listKvKeys({cursor:v,limit:me,namespace:l,prefix:m===""?void 0:m});i({cursor:n.cursor??null,keys:n.keys,listComplete:n.listComplete,type:"appendPage"})}catch(n){i({error:H(n),type:"loadFailed"})}})()))},w=n=>{i({name:n,type:"keyDeleted"})},E=n=>{i({name:n,type:"toggleBulk"})},J=n=>{i({names:n&&o!==null?o.map(h=>h.name):[],type:"toggleAllBulk"})},V=()=>{if(s.length===0)return;const n=[...s];i({type:"bulkDeleteStart"}),z((async()=>{const h=await Promise.allSettled(n.map(F=>e.deleteKvKey({key:F,namespace:l}))),$=n.filter((F,_)=>h[_]?.status==="fulfilled"),T=n.length-$.length;i({deleted:$,error:T>0?d("Failed to delete {count} keys.",{count:T}):null,type:"bulkDeleted"})})())},L=()=>{y(!1),i({type:"reload"})},D=o!==null&&o.length>0&&s.length===o.length,M=new Set(s);return S(be,{children:[S("section",{className:"border border-border bg-card p-3","data-testid":"kv-keys-section",children:[S("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[r(re,{"aria-label":d("Filter keys by prefix"),className:"min-w-[16rem] flex-1","data-testid":"kv-prefix-input",onChange:x,placeholder:d("Filter by prefix…"),value:K}),r(B,{"data-testid":"kv-filter-btn",disabled:I,onClick:N,children:d("Filter")}),r(B,{"data-testid":"kv-new-key-btn",onClick:()=>{y(n=>!n)},variant:"outline",children:d("New key")}),s.length>0&&r(B,{"data-testid":"kv-bulk-delete-btn",disabled:t,onClick:V,variant:"destructive",children:t?d("Deleting…"):d("Delete {count}",{count:s.length})})]}),a!==null&&r("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-bulk-error",role:"alert",children:a}),f!==null&&r("p",{className:"text-sm text-destructive","data-testid":"kv-keys-error",role:"alert",children:f}),o!==null&&o.length===0&&!I&&r("p",{className:"text-sm text-muted-foreground","data-testid":"kv-no-keys",children:d("No keys.")}),o!==null&&o.length>0&&r(ve,{className:"overflow-hidden py-0",children:r(pe,{className:"px-0",children:S(ye,{"data-testid":"kv-key-table",children:[r(he,{children:S(X,{children:[r(Y,{className:"w-10",children:r(de,{"aria-label":d("Select all"),checked:D,"data-testid":"kv-select-all",onCheckedChange:J})}),r(Y,{children:d("Key")}),r(Y,{children:d("Expiration")})]})}),r(ke,{children:o.map(n=>S(X,{className:n.name===p?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-key":n.name,"data-testid":`kv-key-row-${n.name}`,onClick:C,children:[r(Q,{onClick:h=>{h.stopPropagation()},children:r(de,{"aria-label":d("Select {name}",{name:n.name}),checked:M.has(n.name),"data-testid":`kv-select-${n.name}`,onCheckedChange:()=>{E(n.name)}})}),r(Q,{className:"font-mono text-xs",children:n.name}),r(Q,{className:"tabular-nums text-xs",children:Je(n.expiration)})]},n.name))})]})})}),!g&&v!==null&&r("div",{className:"mt-2",children:r(B,{"data-testid":"kv-load-more",disabled:I,onClick:k,variant:"outline",children:d(I?"Loading…":"Load more")})})]}),r(ie,{onOpenChange:n=>{n||y(!1)},open:u,children:S(se,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-create-sheet",side:"right",children:[r(oe,{children:r(ce,{children:d("New key")})}),r(Pe,{namespace:l,onCancel:()=>{y(!1)},onCreated:L})]})}),r(ie,{onOpenChange:n=>{n||i({name:null,type:"selectKey"})},open:p!==null,children:S(se,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-editor-sheet",side:"right",children:[r(oe,{children:r(ce,{className:"truncate font-mono text-xs",children:p})}),p!==null&&r(ze,{expiration:o?.find(n=>n.name===p)?.expiration,keyName:p,namespace:l,onDeleted:w},`${l}:${p}`)]})})]})},ct=({loadNamespaces:l}={})=>{const e=ee(),d=q(),[c,i]=Z(null),[m,s]=Z(null),[t,a]=Z(null);le(()=>{const o={cancelled:!1};return z((async()=>{try{const g=await(l??(()=>e.listKvNamespaces()))();o.cancelled||(i(g),s(null),a(f=>f??g[0]?.binding??null))}catch(g){o.cancelled||(i(null),s(H(g)))}})()),()=>{o.cancelled=!0}},[e,l]);const v=o=>{a(o.currentTarget.dataset.ns??null)};return S("div",{className:"flex flex-col gap-4","data-testid":"lunora-kv-browser",children:[m!==null&&r("p",{className:"text-sm text-destructive","data-testid":"kv-ns-error",role:"alert",children:m}),c!==null&&c.length===0&&r(Fe,{description:d("Add a kv_namespaces binding to wrangler.jsonc — it appears here automatically, no wiring needed."),icon:r("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:r("path",{d:"M5 5h14v4H5V5Zm0 5h14v4H5v-4Zm0 5h14v4H5v-4Z"})}),testId:"kv-empty",title:d("No KV namespaces.")}),c!==null&&c.length>0&&r(ve,{className:"overflow-hidden py-0",children:r(pe,{className:"px-0",children:S(ye,{"data-testid":"kv-namespace-table",children:[r(he,{children:r(X,{children:r(Y,{children:d("Namespace")})})}),r(ke,{children:c.map(o=>r(X,{className:o.binding===t?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-ns":o.binding,"data-testid":`kv-ns-row-${o.binding}`,onClick:v,children:r(Q,{className:"font-mono text-xs",children:o.binding})},o.binding))})]})})}),t!==null&&r(Ue,{namespace:t},t)]})};export{ct as KvBrowser};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as z}from"react/compiler-runtime";import{useState as ee,useEffect as le}from"react";import{U as he}from"../packem_shared/error-alert-_2q2VtVG.js";import{L as ge}from"../packem_shared/live-status-CmuRLFKf.js";import{ShardInput as be}from"../packem_shared/ShardInput-BVn2iCU0.js";import{g as ce}from"../packem_shared/badge-BbuuAio7.js";import{f as xe}from"../packem_shared/checkbox-StT4Gob6.js";import{E as ve}from"../packem_shared/empty-state-Cg7t_8qu.js";import{u as ye}from"../packem_shared/input-JHu63lTv.js";import{N as oe}from"../packem_shared/use-admin-query-CnnyWJXM.js";import{S as Ne}from"../packem_shared/use-shard-key-B2JtNa5m.js";import{useT as X}from"../packem_shared/DEFAULT_LOCALE-BZ4NojpD.js";import{ADMIN_FUNCTIONS as de}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{i as me}from"../packem_shared/internal-zkEvTqy8.js";import{r as we}from"../packem_shared/shard-history-DMEW5VBE.js";import{f as Me,p as Se,c as Ie}from"../packem_shared/trace-handoff-D7j9TjUT.js";import{E as ke}from"../packem_shared/log-line-CmtmbZNE.js";import{c as se}from"../packem_shared/utils-bhneXptQ.js";import{jsx as s,jsxs as k,Fragment as $e}from"react/jsx-runtime";const ie=n=>Math.min(100,Math.max(0,n)),_e=(n,e)=>{if(!Number.isFinite(e)||e<=0)return{leftPercent:0,widthPercent:100};const t=ie(n.offsetMs/e*100),a=n.durationMs/e*100,l=Math.max(.5,Math.min(ie(a),100-t));return{leftPercent:t,widthPercent:l}},Te=(n,e,t=!1)=>{const a=e.trim().toLowerCase(),l=t?n.filter(r=>!r.ok):n;return a===""?[...l]:l.filter(r=>r.rootName.toLowerCase().includes(a)||r.functionPath.toLowerCase().includes(a)||r.traceId.toLowerCase().includes(a)||r.spans.some(o=>o.name.toLowerCase().includes(a)||o.spanId.toLowerCase().includes(a)))},U=n=>Number.isFinite(n)?n>0&&n<1?`${n.toFixed(2)}ms`:`${String(Math.round(n))}ms`:"—",Le=n=>!Number.isFinite(n)||n<=0?[]:Array.from({length:4},(e,t)=>{const a=(t+1)/4;return{label:U(n*a),percent:a*100}}),ue=n=>{if(typeof n=="string")return n;try{return JSON.stringify(n)}catch{return String(n)}},V=n=>{const e=z(7),{label:t,value:a}=n;let l;e[0]!==t?(l=s("dt",{className:"w-40 shrink-0 text-muted-foreground",children:t}),e[0]=t,e[1]=l):l=e[1];let r;e[2]!==a?(r=s("dd",{className:"min-w-0 break-all",children:a}),e[2]=a,e[3]=r):r=e[3];let o;return e[4]!==l||e[5]!==r?(o=k("div",{className:"flex gap-2",children:[l,r]}),e[4]=l,e[5]=r,e[6]=o):o=e[6],o},Pe=n=>{const e=z(68),{span:t}=n,a=X();let l,r,o,d,i,m;if(e[0]!==t.attributes||e[1]!==t.durationMs||e[2]!==t.error||e[3]!==t.events||e[4]!==t.kind||e[5]!==t.offsetMs||e[6]!==t.parentSpanId||e[7]!==t.spanId||e[8]!==a){const _=Object.entries(t.attributes??{});let $;e[15]!==t.events?($=t.events??[],e[15]=t.events,e[16]=$):$=e[16],l=$,r="border-t border-border bg-background/60 px-3 py-2 font-mono text-xs",o="tr-span-detail";let y;e[17]!==a?(y=a("Span ID"),e[17]=a,e[18]=y):y=e[18];let N;e[19]!==t.spanId||e[20]!==y?(N=s(V,{label:y,value:t.spanId}),e[19]=t.spanId,e[20]=y,e[21]=N):N=e[21];let w;e[22]!==a?(w=a("Parent span ID"),e[22]=a,e[23]=w):w=e[23];let u;e[24]!==t.parentSpanId||e[25]!==a?(u=t.parentSpanId===""?a("— (trace root)"):t.parentSpanId,e[24]=t.parentSpanId,e[25]=a,e[26]=u):u=e[26];let f;e[27]!==u||e[28]!==w?(f=s(V,{label:w,value:u}),e[27]=u,e[28]=w,e[29]=f):f=e[29];let h;e[30]!==a?(h=a("Kind"),e[30]=a,e[31]=h):h=e[31];const T=t.kind??"internal";let S;e[32]!==h||e[33]!==T?(S=s(V,{label:h,value:T}),e[32]=h,e[33]=T,e[34]=S):S=e[34];let M;e[35]!==a?(M=a("Started at"),e[35]=a,e[36]=M):M=e[36];let g;e[37]!==t.offsetMs||e[38]!==a?(g=a("+{offset}",{offset:U(t.offsetMs)}),e[37]=t.offsetMs,e[38]=a,e[39]=g):g=e[39];let b;e[40]!==M||e[41]!==g?(b=s(V,{label:M,value:g}),e[40]=M,e[41]=g,e[42]=b):b=e[42];let I;e[43]!==a?(I=a("Duration"),e[43]=a,e[44]=I):I=e[44];let p;e[45]!==t.durationMs?(p=U(t.durationMs),e[45]=t.durationMs,e[46]=p):p=e[46];let x;e[47]!==I||e[48]!==p?(x=s(V,{label:I,value:p}),e[47]=I,e[48]=p,e[49]=x):x=e[49],e[50]!==f||e[51]!==S||e[52]!==b||e[53]!==x||e[54]!==N?(d=k("dl",{className:"flex flex-col gap-1",children:[N,f,S,b,x]}),e[50]=f,e[51]=S,e[52]=b,e[53]=x,e[54]=N,e[55]=d):d=e[55],e[56]!==t.error?(i=t.error!==void 0&&k("div",{className:"mt-2 rounded-md border border-destructive/40 bg-destructive/10 px-2 py-1.5","data-testid":"tr-detail-error",children:[s("span",{className:"font-semibold text-destructive",children:t.error.type}),s("p",{className:"whitespace-pre-wrap break-all text-destructive",children:t.error.message})]}),e[56]=t.error,e[57]=i):i=e[57],m=_.length>0&&k("div",{className:"mt-2","data-testid":"tr-detail-attributes",children:[s("p",{className:"mb-1 text-muted-foreground",children:a("Attributes")}),s("dl",{className:"flex flex-col gap-1",children:_.map(Ce)})]}),e[0]=t.attributes,e[1]=t.durationMs,e[2]=t.error,e[3]=t.events,e[4]=t.kind,e[5]=t.offsetMs,e[6]=t.parentSpanId,e[7]=t.spanId,e[8]=a,e[9]=l,e[10]=r,e[11]=o,e[12]=d,e[13]=i,e[14]=m}else l=e[9],r=e[10],o=e[11],d=e[12],i=e[13],m=e[14];let c;e[58]!==l||e[59]!==a?(c=l.length>0&&k("div",{className:"mt-2","data-testid":"tr-detail-events",children:[s("p",{className:"mb-1 text-muted-foreground",children:a("Events")}),s("ul",{className:"flex flex-col gap-1",children:l.map(Ke)})]}),e[58]=l,e[59]=a,e[60]=c):c=e[60];let v;return e[61]!==r||e[62]!==o||e[63]!==d||e[64]!==i||e[65]!==m||e[66]!==c?(v=k("div",{className:r,"data-testid":o,children:[d,i,m,c]}),e[61]=r,e[62]=o,e[63]=d,e[64]=i,e[65]=m,e[66]=c,e[67]=v):v=e[67],v};function Ce(n){const[e,t]=n;return s(V,{label:e,value:ue(t)},e)}function Fe(n){const[e,t]=n;return`${e}=${ue(t)}`}function Ke(n){return k("li",{className:"flex gap-2",children:[s("span",{className:"shrink-0 tabular-nums text-muted-foreground",children:me(n.ts)}),s(ce,{variant:"secondary",children:n.name}),s("span",{className:"min-w-0 break-all text-muted-foreground",children:Object.entries(n.attributes??{}).map(Fe).join(" ")})]},`${n.name}:${String(n.ts)}`)}const De=14,fe="grid grid-cols-[14rem_1fr_4rem_16rem_16rem] items-center gap-2 px-3",je=n=>{const e=z(17),{traceDurationMs:t}=n;let a,l,r,o,d,i;if(e[0]!==t){i=Symbol.for("react.early_return_sentinel");e:{const v=Le(t);if(v.length===0){i=null;break e}e[7]===Symbol.for("react.memo_cache_sentinel")?(r=se(fe,"border-b border-border py-1 font-mono text-[10px] text-muted-foreground"),e[7]=r):r=e[7],o="tr-ruler",e[8]===Symbol.for("react.memo_cache_sentinel")?(d=s("span",{}),e[8]=d):d=e[8],a="relative h-3",l=v.map(Be)}e[0]=t,e[1]=a,e[2]=l,e[3]=r,e[4]=o,e[5]=d,e[6]=i}else a=e[1],l=e[2],r=e[3],o=e[4],d=e[5],i=e[6];if(i!==Symbol.for("react.early_return_sentinel"))return i;let m;e[9]!==a||e[10]!==l?(m=s("span",{className:a,children:l}),e[9]=a,e[10]=l,e[11]=m):m=e[11];let c;return e[12]!==r||e[13]!==o||e[14]!==d||e[15]!==m?(c=k("div",{className:r,"data-testid":o,children:[d,m]}),e[12]=r,e[13]=o,e[14]=d,e[15]=m,e[16]=c):c=e[16],c},Ee=n=>{const e=z(60),{span:t,traceDurationMs:a}=n,l=X(),[r,o]=ee(!1);let d;e[0]!==t||e[1]!==a?(d=_e(t,a),e[0]=t,e[1]=a,e[2]=d):d=e[2];const{leftPercent:i,widthPercent:m}=d;let c;e[3]!==t.attributes?(c=Me(t.attributes),e[3]=t.attributes,e[4]=c):c=e[4];const v=c,_=t.depth*De;let $;e[5]!==_?($={paddingLeft:_},e[5]=_,e[6]=$):$=e[6];const y=$,N=`${String(i)}%`,w=`${String(m)}%`;let u;e[7]!==N||e[8]!==w?(u={left:N,width:w},e[7]=N,e[8]=w,e[9]=u):u=e[9];const f=u;let h;e[10]===Symbol.for("react.memo_cache_sentinel")?(h=()=>{o(Oe)},e[10]=h):h=e[10];const T=h,S=t.depth,M=`tr-span-detail-${t.spanId}`;let g;e[11]!==t.durationMs||e[12]!==t.error||e[13]!==t.name||e[14]!==t.offsetMs||e[15]!==l?(g=l("{name}, {duration}, starts {offset} in{failure}",{duration:U(t.durationMs),failure:t.error===void 0?"":l(", failed: {message}",{message:t.error.message}),name:t.name,offset:U(t.offsetMs)}),e[11]=t.durationMs,e[12]=t.error,e[13]=t.name,e[14]=t.offsetMs,e[15]=l,e[16]=g):g=e[16];let b;e[17]===Symbol.for("react.memo_cache_sentinel")?(b=se(fe,"w-full border-b border-border py-1.5 text-left font-mono text-xs hover:bg-muted/50"),e[17]=b):b=e[17];const I=`tr-span-toggle-${t.spanId}`;let p;e[18]!==t.ok?(p=t.ok?null:s("span",{"aria-hidden":"true",className:"mr-1 text-destructive","data-testid":"tr-span-error",children:"●"}),e[18]=t.ok,e[19]=p):p=e[19];let x;e[20]!==y||e[21]!==t.name||e[22]!==p?(x=k("span",{className:"truncate",style:y,title:t.name,children:[p,t.name]}),e[20]=y,e[21]=t.name,e[22]=p,e[23]=x):x=e[23];const A=t.ok?"bg-primary/70":"bg-destructive";let L;e[24]!==A?(L=se("absolute inset-y-0 rounded-sm",A),e[24]=A,e[25]=L):L=e[25];let E;e[26]!==f||e[27]!==i||e[28]!==L||e[29]!==m?(E=s("span",{"aria-hidden":"true",className:"relative h-3 overflow-hidden rounded-sm bg-muted",children:s("span",{className:L,"data-left":i,"data-testid":"tr-span-bar","data-width":m,style:f})}),e[26]=f,e[27]=i,e[28]=L,e[29]=m,e[30]=E):E=e[30];let B;e[31]!==t.durationMs?(B=U(t.durationMs),e[31]=t.durationMs,e[32]=B):B=e[32];let K;e[33]!==B?(K=s("span",{className:"text-right tabular-nums text-muted-foreground",children:B}),e[33]=B,e[34]=K):K=e[34];let O;e[35]!==t.error?(O=t.error===void 0?null:s("span",{className:"text-destructive","data-testid":"tr-span-error-message",title:t.error.message,children:`${t.error.type}: ${t.error.message}`}),e[35]=t.error,e[36]=O):O=e[36];let P;e[37]!==O?(P=s("span",{className:"truncate text-muted-foreground",children:O}),e[37]=O,e[38]=P):P=e[38];let R;e[39]!==v?(R=v===""?null:s("span",{"data-testid":"tr-span-attributes",title:v,children:v}),e[39]=v,e[40]=R):R=e[40];let C;e[41]!==R?(C=s("span",{className:"truncate text-muted-foreground",children:R}),e[41]=R,e[42]=C):C=e[42];let J;e[43]!==r||e[44]!==M||e[45]!==g||e[46]!==I||e[47]!==x||e[48]!==E||e[49]!==K||e[50]!==P||e[51]!==C?(J=k("button",{"aria-controls":M,"aria-expanded":r,"aria-label":g,className:b,"data-testid":I,onClick:T,type:"button",children:[x,E,K,P,C]}),e[43]=r,e[44]=M,e[45]=g,e[46]=I,e[47]=x,e[48]=E,e[49]=K,e[50]=P,e[51]=C,e[52]=J):J=e[52];let D;e[53]!==r||e[54]!==t?(D=r&&s("div",{id:`tr-span-detail-${t.spanId}`,children:s(Pe,{span:t})}),e[53]=r,e[54]=t,e[55]=D):D=e[55];let F;return e[56]!==t.depth||e[57]!==J||e[58]!==D?(F=k("li",{"data-depth":S,"data-testid":"tr-span-row",children:[J,D]}),e[56]=t.depth,e[57]=J,e[58]=D,e[59]=F):F=e[59],F},Ae=n=>{const e=z(15),{durationMs:t,spans:a}=n,l=X();let r;e[0]!==t?(r=s(je,{traceDurationMs:t}),e[0]=t,e[1]=r):r=e[1];let o;e[2]!==l?(o=l("Trace waterfall"),e[2]=l,e[3]=o):o=e[3];let d;if(e[4]!==t||e[5]!==a){let c;e[7]!==t?(c=v=>s(Ee,{span:v,traceDurationMs:t},v.spanId),e[7]=t,e[8]=c):c=e[8],d=a.map(c),e[4]=t,e[5]=a,e[6]=d}else d=e[6];let i;e[9]!==o||e[10]!==d?(i=s("ul",{"aria-label":o,children:d}),e[9]=o,e[10]=d,e[11]=i):i=e[11];let m;return e[12]!==r||e[13]!==i?(m=k($e,{children:[r,i]}),e[12]=r,e[13]=i,e[14]=m):m=e[14],m};function Be(n){return s("span",{className:se("absolute inset-y-0 border-l border-border/70",n.percent===100?"-translate-x-full pr-1":"pl-1"),style:{left:`${String(n.percent)}%`},children:n.label},n.percent)}function Oe(n){return!n}const Re=n=>Array.isArray(n?.traces)?n.traces:[],Je=n=>{const e=z(12),{entries:t}=n,a=X();let l;e[0]!==t.length||e[1]!==a?(l=a("Logs ({count})",{count:t.length}),e[0]=t.length,e[1]=a,e[2]=l):l=e[2];let r;e[3]!==l?(r=s("p",{className:"mb-1 font-mono text-xs text-muted-foreground",children:l}),e[3]=l,e[4]=r):r=e[4];let o;e[5]!==t?(o=t.map(Ue),e[5]=t,e[6]=o):o=e[6];let d;e[7]!==o?(d=s("div",{role:"grid",children:o}),e[7]=o,e[8]=d):d=e[8];let i;return e[9]!==r||e[10]!==d?(i=k("div",{className:"border-t border-border px-3 py-2","data-testid":"tr-logs",children:[r,d]}),e[9]=r,e[10]=d,e[11]=i):i=e[11],i},ze=n=>{const e=z(50),{expanded:t,logs:a,onToggle:l,trace:r}=n,o=X();let d;e[0]!==l||e[1]!==r.traceId?(d=()=>{l(r.traceId)},e[0]=l,e[1]=r.traceId,e[2]=d):d=e[2];const i=d,m=`tr-row-${r.traceId}`,c=`tr-waterfall-${r.traceId}`,v=`tr-toggle-${r.traceId}`,_=t?"▾":"▸";let $;e[3]!==_?($=s("span",{"aria-hidden":"true",className:"w-3 shrink-0 text-xs text-muted-foreground",children:_}),e[3]=_,e[4]=$):$=e[4];let y;e[5]!==r.rootName?(y=s("span",{className:"w-56 shrink-0 truncate text-sm font-medium",title:r.rootName,children:r.rootName}),e[5]=r.rootName,e[6]=y):y=e[6];let N;e[7]!==r.functionPath?(N=s("span",{className:"w-48 shrink-0 truncate font-mono text-xs text-muted-foreground",title:r.functionPath,children:r.functionPath}),e[7]=r.functionPath,e[8]=N):N=e[8];let w;e[9]!==r.durationMs?(w=U(r.durationMs),e[9]=r.durationMs,e[10]=w):w=e[10];let u;e[11]!==w?(u=s("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:w}),e[11]=w,e[12]=u):u=e[12];let f;e[13]!==o||e[14]!==r.spans.length?(f=o("{count} spans",{count:r.spans.length}),e[13]=o,e[14]=r.spans.length,e[15]=f):f=e[15];let h;e[16]!==f?(h=s("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:f}),e[16]=f,e[17]=h):h=e[17];const T=r.ok?"secondary":"destructive";let S;e[18]!==o||e[19]!==r.ok?(S=r.ok?o("ok"):o("error"),e[18]=o,e[19]=r.ok,e[20]=S):S=e[20];let M;e[21]!==T||e[22]!==S?(M=s("span",{className:"shrink-0",children:s(ce,{variant:T,children:S})}),e[21]=T,e[22]=S,e[23]=M):M=e[23];let g;e[24]!==r.startTs?(g=me(r.startTs),e[24]=r.startTs,e[25]=g):g=e[25];let b;e[26]!==g?(b=s("span",{className:"flex-1 truncate text-right font-mono text-xs tabular-nums text-muted-foreground",children:g}),e[26]=g,e[27]=b):b=e[27];let I;e[28]!==t||e[29]!==i||e[30]!==u||e[31]!==h||e[32]!==M||e[33]!==b||e[34]!==c||e[35]!==v||e[36]!==$||e[37]!==y||e[38]!==N?(I=k("button",{"aria-controls":c,"aria-expanded":t,className:"flex w-full items-center gap-3 px-3 py-2 text-left hover:bg-muted/50","data-testid":v,onClick:i,type:"button",children:[$,y,N,u,h,M,b]}),e[28]=t,e[29]=i,e[30]=u,e[31]=h,e[32]=M,e[33]=b,e[34]=c,e[35]=v,e[36]=$,e[37]=y,e[38]=N,e[39]=I):I=e[39];let p;e[40]!==t||e[41]!==a||e[42]!==r.durationMs||e[43]!==r.spans||e[44]!==r.traceId?(p=t&&k("div",{className:"bg-muted/20","data-testid":`tr-waterfall-${r.traceId}`,id:`tr-waterfall-${r.traceId}`,children:[s(Ae,{durationMs:r.durationMs,spans:r.spans}),a.length>0&&s(Je,{entries:a})]}),e[40]=t,e[41]=a,e[42]=r.durationMs,e[43]=r.spans,e[44]=r.traceId,e[45]=p):p=e[45];let x;return e[46]!==I||e[47]!==p||e[48]!==m?(x=k("div",{className:"border-b border-border last:border-b-0","data-testid":m,children:[I,p]}),e[46]=I,e[47]=p,e[48]=m,e[49]=x):x=e[49],x},ft=n=>{const e=z(58),{initialShardKey:t}=n,a=X(),[l]=ee(Se),{queryShardKey:r,setShardKey:o,shardKey:d}=Ne(l?.shardKey!==void 0&&l.shardKey!==""?l.shardKey:t??""),[i,m]=ee(l?.traceId??""),[c,v]=ee(!1),[_,$]=ee(We);let y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=[],e[0]=y):y=e[0],le(qe,y);let N;e[1]===Symbol.for("react.memo_cache_sentinel")?(N={},e[1]=N):N=e[1];let w;e[2]!==r?(w={live:!0,shardKey:r},e[2]=r,e[3]=w):w=e[3];const{data:u,error:f,errorSource:h,isLoading:T,liveError:S}=oe(de.getTraces,N,w);let M;e[4]===Symbol.for("react.memo_cache_sentinel")?(M={},e[4]=M):M=e[4];const g=_.size>0;let b;e[5]!==r||e[6]!==g?(b={enabled:g,live:!0,shardKey:r},e[5]=r,e[6]=g,e[7]=b):b=e[7];const{data:I}=oe(de.getLogs,M,b);let p,x;e[8]!==u||e[9]!==r?(p=()=>{u!==void 0&&we(r)},x=[u,r],e[8]=u,e[9]=r,e[10]=p,e[11]=x):(p=e[10],x=e[11]),le(p,x);let A;if(e[12]!==u||e[13]!==f||e[14]!==h||e[15]!==_||e[16]!==T||e[17]!==S||e[18]!==I?.entries||e[19]!==c||e[20]!==i||e[21]!==o||e[22]!==d||e[23]!==a){const L=Re(u),E=u?.total??L.length,B=E>L.length,K=Te(L,i,c),O=Map.groupBy((I?.entries??[]).toReversed(),He);let P;e[25]===Symbol.for("react.memo_cache_sentinel")?(P=j=>{m(j.target.value)},e[25]=P):P=e[25];const R=P;let C;e[26]===Symbol.for("react.memo_cache_sentinel")?(C=j=>{$(pe=>{const ne=new Set(pe);return ne.has(j)?ne.delete(j):ne.add(j),ne})},e[26]=C):C=e[26];const J=C,D=f===null&&K.length===0&&!T;let F;e[27]!==o||e[28]!==d?(F=s(be,{onChange:o,testId:"tr-shard-input",value:d}),e[27]=o,e[28]=d,e[29]=F):F=e[29];let W;e[30]!==a?(W=a("Search traces"),e[30]=a,e[31]=W):W=e[31];let q;e[32]!==a?(q=a("search trace, span, or function"),e[32]=a,e[33]=q):q=e[33];let H;e[34]!==i||e[35]!==W||e[36]!==q?(H=s(ye,{"aria-label":W,className:"h-8 w-56","data-testid":"tr-search",onChange:R,placeholder:q,value:i}),e[34]=i,e[35]=W,e[36]=q,e[37]=H):H=e[37];let Q;e[38]!==c?(Q=s(xe,{checked:c,"data-testid":"tr-only-errors",id:"tr-only-errors",onCheckedChange:v}),e[38]=c,e[39]=Q):Q=e[39];let Y;e[40]!==a?(Y=a("Errors only"),e[40]=a,e[41]=Y):Y=e[41];let Z;e[42]!==Q||e[43]!==Y?(Z=k("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",htmlFor:"tr-only-errors",children:[Q,Y]}),e[42]=Q,e[43]=Y,e[44]=Z):Z=e[44];let G;e[45]!==S?(G=s(ge,{message:S,prefix:"tr"}),e[45]=S,e[46]=G):G=e[46];let te;e[47]!==F||e[48]!==H||e[49]!==Z||e[50]!==G?(te=k("div",{className:"flex flex-wrap items-center gap-2",children:[F,H,Z,G]}),e[47]=F,e[48]=H,e[49]=Z,e[50]=G,e[51]=te):te=e[51];let re;e[52]!==f||e[53]!==h?(re=f!==null&&s(he,{error:h,testId:"tr-error"}),e[52]=f,e[53]=h,e[54]=re):re=e[54];let ae;e[55]!==D||e[56]!==a?(ae=D&&s(ve,{description:a("Traces recorded with ctx.trace show up here as your app handles traffic. The span buffer resets when the shard hibernates."),icon:s("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:s("path",{d:"M4 6h10M7 12h13M10 18h7"})}),testId:"tr-empty",title:a("No traces")}),e[55]=D,e[56]=a,e[57]=ae):ae=e[57],A=k("div",{className:"flex flex-col gap-4","data-testid":"lunora-traces-panel",children:[te,re,ae,f===null&&B&&s("p",{className:"text-xs text-muted-foreground","data-testid":"tr-truncated",children:a("Showing the {shown} most recent of {total} traces in the buffer.",{shown:L.length,total:E})}),f===null&&K.length>0&&s("div",{"aria-label":a("Recent traces"),className:"overflow-hidden rounded-xl border border-border shadow-xs","data-testid":"tr-list",children:K.map(j=>s(ze,{expanded:_.has(j.traceId),logs:O.get(j.traceId)??[],onToggle:J,trace:j},j.traceId))})]}),e[12]=u,e[13]=f,e[14]=h,e[15]=_,e[16]=T,e[17]=S,e[18]=I?.entries,e[19]=c,e[20]=i,e[21]=o,e[22]=d,e[23]=a,e[24]=A}else A=e[24];return A};function Ue(n,e){return s("div",{className:"flex items-center border-b border-border py-1 font-mono text-xs last:border-b-0","data-testid":"tr-log-row",role:"row",children:s(ke,{entry:n})},`${String(e)}:${String(n.timestamp)}`)}function We(){return new Set}function qe(){Ie()}function He(n){return n.traceId}export{ft as default};
|
|
1
|
+
import{c as z}from"react/compiler-runtime";import{useState as ee,useEffect as le}from"react";import{U as he}from"../packem_shared/error-alert-_2q2VtVG.js";import{L as ge}from"../packem_shared/live-status-CmuRLFKf.js";import{ShardInput as be}from"../packem_shared/ShardInput-BVn2iCU0.js";import{g as ce}from"../packem_shared/badge-BbuuAio7.js";import{f as xe}from"../packem_shared/checkbox-StT4Gob6.js";import{E as ve}from"../packem_shared/empty-state-Cg7t_8qu.js";import{u as ye}from"../packem_shared/input-JHu63lTv.js";import{N as oe}from"../packem_shared/use-admin-query-CnnyWJXM.js";import{S as Ne}from"../packem_shared/use-shard-key-B2JtNa5m.js";import{useT as X}from"../packem_shared/DEFAULT_LOCALE-BZ4NojpD.js";import{ADMIN_FUNCTIONS as de}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{i as me}from"../packem_shared/internal-zkEvTqy8.js";import{r as we}from"../packem_shared/shard-history-DMEW5VBE.js";import{p as Me,c as Se}from"../packem_shared/trace-handoff-Dw7mwjxu.js";import{E as Ie}from"../packem_shared/log-line-BDI826X-.js";import{f as ke}from"../packem_shared/log-fields-CoL3hsIQ.js";import{c as se}from"../packem_shared/utils-bhneXptQ.js";import{jsx as s,jsxs as k,Fragment as $e}from"react/jsx-runtime";const ie=n=>Math.min(100,Math.max(0,n)),_e=(n,e)=>{if(!Number.isFinite(e)||e<=0)return{leftPercent:0,widthPercent:100};const t=ie(n.offsetMs/e*100),a=n.durationMs/e*100,l=Math.max(.5,Math.min(ie(a),100-t));return{leftPercent:t,widthPercent:l}},Te=(n,e,t=!1)=>{const a=e.trim().toLowerCase(),l=t?n.filter(r=>!r.ok):n;return a===""?[...l]:l.filter(r=>r.rootName.toLowerCase().includes(a)||r.functionPath.toLowerCase().includes(a)||r.traceId.toLowerCase().includes(a)||r.spans.some(o=>o.name.toLowerCase().includes(a)||o.spanId.toLowerCase().includes(a)))},U=n=>Number.isFinite(n)?n>0&&n<1?`${n.toFixed(2)}ms`:`${String(Math.round(n))}ms`:"—",Le=n=>!Number.isFinite(n)||n<=0?[]:Array.from({length:4},(e,t)=>{const a=(t+1)/4;return{label:U(n*a),percent:a*100}}),ue=n=>{if(typeof n=="string")return n;try{return JSON.stringify(n)}catch{return String(n)}},V=n=>{const e=z(7),{label:t,value:a}=n;let l;e[0]!==t?(l=s("dt",{className:"w-40 shrink-0 text-muted-foreground",children:t}),e[0]=t,e[1]=l):l=e[1];let r;e[2]!==a?(r=s("dd",{className:"min-w-0 break-all",children:a}),e[2]=a,e[3]=r):r=e[3];let o;return e[4]!==l||e[5]!==r?(o=k("div",{className:"flex gap-2",children:[l,r]}),e[4]=l,e[5]=r,e[6]=o):o=e[6],o},Pe=n=>{const e=z(68),{span:t}=n,a=X();let l,r,o,d,i,m;if(e[0]!==t.attributes||e[1]!==t.durationMs||e[2]!==t.error||e[3]!==t.events||e[4]!==t.kind||e[5]!==t.offsetMs||e[6]!==t.parentSpanId||e[7]!==t.spanId||e[8]!==a){const _=Object.entries(t.attributes??{});let $;e[15]!==t.events?($=t.events??[],e[15]=t.events,e[16]=$):$=e[16],l=$,r="border-t border-border bg-background/60 px-3 py-2 font-mono text-xs",o="tr-span-detail";let y;e[17]!==a?(y=a("Span ID"),e[17]=a,e[18]=y):y=e[18];let N;e[19]!==t.spanId||e[20]!==y?(N=s(V,{label:y,value:t.spanId}),e[19]=t.spanId,e[20]=y,e[21]=N):N=e[21];let w;e[22]!==a?(w=a("Parent span ID"),e[22]=a,e[23]=w):w=e[23];let u;e[24]!==t.parentSpanId||e[25]!==a?(u=t.parentSpanId===""?a("— (trace root)"):t.parentSpanId,e[24]=t.parentSpanId,e[25]=a,e[26]=u):u=e[26];let f;e[27]!==u||e[28]!==w?(f=s(V,{label:w,value:u}),e[27]=u,e[28]=w,e[29]=f):f=e[29];let h;e[30]!==a?(h=a("Kind"),e[30]=a,e[31]=h):h=e[31];const T=t.kind??"internal";let S;e[32]!==h||e[33]!==T?(S=s(V,{label:h,value:T}),e[32]=h,e[33]=T,e[34]=S):S=e[34];let M;e[35]!==a?(M=a("Started at"),e[35]=a,e[36]=M):M=e[36];let g;e[37]!==t.offsetMs||e[38]!==a?(g=a("+{offset}",{offset:U(t.offsetMs)}),e[37]=t.offsetMs,e[38]=a,e[39]=g):g=e[39];let b;e[40]!==M||e[41]!==g?(b=s(V,{label:M,value:g}),e[40]=M,e[41]=g,e[42]=b):b=e[42];let I;e[43]!==a?(I=a("Duration"),e[43]=a,e[44]=I):I=e[44];let p;e[45]!==t.durationMs?(p=U(t.durationMs),e[45]=t.durationMs,e[46]=p):p=e[46];let x;e[47]!==I||e[48]!==p?(x=s(V,{label:I,value:p}),e[47]=I,e[48]=p,e[49]=x):x=e[49],e[50]!==f||e[51]!==S||e[52]!==b||e[53]!==x||e[54]!==N?(d=k("dl",{className:"flex flex-col gap-1",children:[N,f,S,b,x]}),e[50]=f,e[51]=S,e[52]=b,e[53]=x,e[54]=N,e[55]=d):d=e[55],e[56]!==t.error?(i=t.error!==void 0&&k("div",{className:"mt-2 rounded-md border border-destructive/40 bg-destructive/10 px-2 py-1.5","data-testid":"tr-detail-error",children:[s("span",{className:"font-semibold text-destructive",children:t.error.type}),s("p",{className:"whitespace-pre-wrap break-all text-destructive",children:t.error.message})]}),e[56]=t.error,e[57]=i):i=e[57],m=_.length>0&&k("div",{className:"mt-2","data-testid":"tr-detail-attributes",children:[s("p",{className:"mb-1 text-muted-foreground",children:a("Attributes")}),s("dl",{className:"flex flex-col gap-1",children:_.map(Ce)})]}),e[0]=t.attributes,e[1]=t.durationMs,e[2]=t.error,e[3]=t.events,e[4]=t.kind,e[5]=t.offsetMs,e[6]=t.parentSpanId,e[7]=t.spanId,e[8]=a,e[9]=l,e[10]=r,e[11]=o,e[12]=d,e[13]=i,e[14]=m}else l=e[9],r=e[10],o=e[11],d=e[12],i=e[13],m=e[14];let c;e[58]!==l||e[59]!==a?(c=l.length>0&&k("div",{className:"mt-2","data-testid":"tr-detail-events",children:[s("p",{className:"mb-1 text-muted-foreground",children:a("Events")}),s("ul",{className:"flex flex-col gap-1",children:l.map(Ke)})]}),e[58]=l,e[59]=a,e[60]=c):c=e[60];let v;return e[61]!==r||e[62]!==o||e[63]!==d||e[64]!==i||e[65]!==m||e[66]!==c?(v=k("div",{className:r,"data-testid":o,children:[d,i,m,c]}),e[61]=r,e[62]=o,e[63]=d,e[64]=i,e[65]=m,e[66]=c,e[67]=v):v=e[67],v};function Ce(n){const[e,t]=n;return s(V,{label:e,value:ue(t)},e)}function Fe(n){const[e,t]=n;return`${e}=${ue(t)}`}function Ke(n){return k("li",{className:"flex gap-2",children:[s("span",{className:"shrink-0 tabular-nums text-muted-foreground",children:me(n.ts)}),s(ce,{variant:"secondary",children:n.name}),s("span",{className:"min-w-0 break-all text-muted-foreground",children:Object.entries(n.attributes??{}).map(Fe).join(" ")})]},`${n.name}:${String(n.ts)}`)}const De=14,fe="grid grid-cols-[14rem_1fr_4rem_16rem_16rem] items-center gap-2 px-3",je=n=>{const e=z(17),{traceDurationMs:t}=n;let a,l,r,o,d,i;if(e[0]!==t){i=Symbol.for("react.early_return_sentinel");e:{const v=Le(t);if(v.length===0){i=null;break e}e[7]===Symbol.for("react.memo_cache_sentinel")?(r=se(fe,"border-b border-border py-1 font-mono text-[10px] text-muted-foreground"),e[7]=r):r=e[7],o="tr-ruler",e[8]===Symbol.for("react.memo_cache_sentinel")?(d=s("span",{}),e[8]=d):d=e[8],a="relative h-3",l=v.map(Be)}e[0]=t,e[1]=a,e[2]=l,e[3]=r,e[4]=o,e[5]=d,e[6]=i}else a=e[1],l=e[2],r=e[3],o=e[4],d=e[5],i=e[6];if(i!==Symbol.for("react.early_return_sentinel"))return i;let m;e[9]!==a||e[10]!==l?(m=s("span",{className:a,children:l}),e[9]=a,e[10]=l,e[11]=m):m=e[11];let c;return e[12]!==r||e[13]!==o||e[14]!==d||e[15]!==m?(c=k("div",{className:r,"data-testid":o,children:[d,m]}),e[12]=r,e[13]=o,e[14]=d,e[15]=m,e[16]=c):c=e[16],c},Ee=n=>{const e=z(60),{span:t,traceDurationMs:a}=n,l=X(),[r,o]=ee(!1);let d;e[0]!==t||e[1]!==a?(d=_e(t,a),e[0]=t,e[1]=a,e[2]=d):d=e[2];const{leftPercent:i,widthPercent:m}=d;let c;e[3]!==t.attributes?(c=ke(t.attributes),e[3]=t.attributes,e[4]=c):c=e[4];const v=c,_=t.depth*De;let $;e[5]!==_?($={paddingLeft:_},e[5]=_,e[6]=$):$=e[6];const y=$,N=`${String(i)}%`,w=`${String(m)}%`;let u;e[7]!==N||e[8]!==w?(u={left:N,width:w},e[7]=N,e[8]=w,e[9]=u):u=e[9];const f=u;let h;e[10]===Symbol.for("react.memo_cache_sentinel")?(h=()=>{o(Oe)},e[10]=h):h=e[10];const T=h,S=t.depth,M=`tr-span-detail-${t.spanId}`;let g;e[11]!==t.durationMs||e[12]!==t.error||e[13]!==t.name||e[14]!==t.offsetMs||e[15]!==l?(g=l("{name}, {duration}, starts {offset} in{failure}",{duration:U(t.durationMs),failure:t.error===void 0?"":l(", failed: {message}",{message:t.error.message}),name:t.name,offset:U(t.offsetMs)}),e[11]=t.durationMs,e[12]=t.error,e[13]=t.name,e[14]=t.offsetMs,e[15]=l,e[16]=g):g=e[16];let b;e[17]===Symbol.for("react.memo_cache_sentinel")?(b=se(fe,"w-full border-b border-border py-1.5 text-left font-mono text-xs hover:bg-muted/50"),e[17]=b):b=e[17];const I=`tr-span-toggle-${t.spanId}`;let p;e[18]!==t.ok?(p=t.ok?null:s("span",{"aria-hidden":"true",className:"mr-1 text-destructive","data-testid":"tr-span-error",children:"●"}),e[18]=t.ok,e[19]=p):p=e[19];let x;e[20]!==y||e[21]!==t.name||e[22]!==p?(x=k("span",{className:"truncate",style:y,title:t.name,children:[p,t.name]}),e[20]=y,e[21]=t.name,e[22]=p,e[23]=x):x=e[23];const A=t.ok?"bg-primary/70":"bg-destructive";let L;e[24]!==A?(L=se("absolute inset-y-0 rounded-sm",A),e[24]=A,e[25]=L):L=e[25];let E;e[26]!==f||e[27]!==i||e[28]!==L||e[29]!==m?(E=s("span",{"aria-hidden":"true",className:"relative h-3 overflow-hidden rounded-sm bg-muted",children:s("span",{className:L,"data-left":i,"data-testid":"tr-span-bar","data-width":m,style:f})}),e[26]=f,e[27]=i,e[28]=L,e[29]=m,e[30]=E):E=e[30];let B;e[31]!==t.durationMs?(B=U(t.durationMs),e[31]=t.durationMs,e[32]=B):B=e[32];let K;e[33]!==B?(K=s("span",{className:"text-right tabular-nums text-muted-foreground",children:B}),e[33]=B,e[34]=K):K=e[34];let O;e[35]!==t.error?(O=t.error===void 0?null:s("span",{className:"text-destructive","data-testid":"tr-span-error-message",title:t.error.message,children:`${t.error.type}: ${t.error.message}`}),e[35]=t.error,e[36]=O):O=e[36];let P;e[37]!==O?(P=s("span",{className:"truncate text-muted-foreground",children:O}),e[37]=O,e[38]=P):P=e[38];let R;e[39]!==v?(R=v===""?null:s("span",{"data-testid":"tr-span-attributes",title:v,children:v}),e[39]=v,e[40]=R):R=e[40];let C;e[41]!==R?(C=s("span",{className:"truncate text-muted-foreground",children:R}),e[41]=R,e[42]=C):C=e[42];let J;e[43]!==r||e[44]!==M||e[45]!==g||e[46]!==I||e[47]!==x||e[48]!==E||e[49]!==K||e[50]!==P||e[51]!==C?(J=k("button",{"aria-controls":M,"aria-expanded":r,"aria-label":g,className:b,"data-testid":I,onClick:T,type:"button",children:[x,E,K,P,C]}),e[43]=r,e[44]=M,e[45]=g,e[46]=I,e[47]=x,e[48]=E,e[49]=K,e[50]=P,e[51]=C,e[52]=J):J=e[52];let D;e[53]!==r||e[54]!==t?(D=r&&s("div",{id:`tr-span-detail-${t.spanId}`,children:s(Pe,{span:t})}),e[53]=r,e[54]=t,e[55]=D):D=e[55];let F;return e[56]!==t.depth||e[57]!==J||e[58]!==D?(F=k("li",{"data-depth":S,"data-testid":"tr-span-row",children:[J,D]}),e[56]=t.depth,e[57]=J,e[58]=D,e[59]=F):F=e[59],F},Ae=n=>{const e=z(15),{durationMs:t,spans:a}=n,l=X();let r;e[0]!==t?(r=s(je,{traceDurationMs:t}),e[0]=t,e[1]=r):r=e[1];let o;e[2]!==l?(o=l("Trace waterfall"),e[2]=l,e[3]=o):o=e[3];let d;if(e[4]!==t||e[5]!==a){let c;e[7]!==t?(c=v=>s(Ee,{span:v,traceDurationMs:t},v.spanId),e[7]=t,e[8]=c):c=e[8],d=a.map(c),e[4]=t,e[5]=a,e[6]=d}else d=e[6];let i;e[9]!==o||e[10]!==d?(i=s("ul",{"aria-label":o,children:d}),e[9]=o,e[10]=d,e[11]=i):i=e[11];let m;return e[12]!==r||e[13]!==i?(m=k($e,{children:[r,i]}),e[12]=r,e[13]=i,e[14]=m):m=e[14],m};function Be(n){return s("span",{className:se("absolute inset-y-0 border-l border-border/70",n.percent===100?"-translate-x-full pr-1":"pl-1"),style:{left:`${String(n.percent)}%`},children:n.label},n.percent)}function Oe(n){return!n}const Re=n=>Array.isArray(n?.traces)?n.traces:[],Je=n=>{const e=z(12),{entries:t}=n,a=X();let l;e[0]!==t.length||e[1]!==a?(l=a("Logs ({count})",{count:t.length}),e[0]=t.length,e[1]=a,e[2]=l):l=e[2];let r;e[3]!==l?(r=s("p",{className:"mb-1 font-mono text-xs text-muted-foreground",children:l}),e[3]=l,e[4]=r):r=e[4];let o;e[5]!==t?(o=t.map(Ue),e[5]=t,e[6]=o):o=e[6];let d;e[7]!==o?(d=s("div",{role:"grid",children:o}),e[7]=o,e[8]=d):d=e[8];let i;return e[9]!==r||e[10]!==d?(i=k("div",{className:"border-t border-border px-3 py-2","data-testid":"tr-logs",children:[r,d]}),e[9]=r,e[10]=d,e[11]=i):i=e[11],i},ze=n=>{const e=z(50),{expanded:t,logs:a,onToggle:l,trace:r}=n,o=X();let d;e[0]!==l||e[1]!==r.traceId?(d=()=>{l(r.traceId)},e[0]=l,e[1]=r.traceId,e[2]=d):d=e[2];const i=d,m=`tr-row-${r.traceId}`,c=`tr-waterfall-${r.traceId}`,v=`tr-toggle-${r.traceId}`,_=t?"▾":"▸";let $;e[3]!==_?($=s("span",{"aria-hidden":"true",className:"w-3 shrink-0 text-xs text-muted-foreground",children:_}),e[3]=_,e[4]=$):$=e[4];let y;e[5]!==r.rootName?(y=s("span",{className:"w-56 shrink-0 truncate text-sm font-medium",title:r.rootName,children:r.rootName}),e[5]=r.rootName,e[6]=y):y=e[6];let N;e[7]!==r.functionPath?(N=s("span",{className:"w-48 shrink-0 truncate font-mono text-xs text-muted-foreground",title:r.functionPath,children:r.functionPath}),e[7]=r.functionPath,e[8]=N):N=e[8];let w;e[9]!==r.durationMs?(w=U(r.durationMs),e[9]=r.durationMs,e[10]=w):w=e[10];let u;e[11]!==w?(u=s("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:w}),e[11]=w,e[12]=u):u=e[12];let f;e[13]!==o||e[14]!==r.spans.length?(f=o("{count} spans",{count:r.spans.length}),e[13]=o,e[14]=r.spans.length,e[15]=f):f=e[15];let h;e[16]!==f?(h=s("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:f}),e[16]=f,e[17]=h):h=e[17];const T=r.ok?"secondary":"destructive";let S;e[18]!==o||e[19]!==r.ok?(S=r.ok?o("ok"):o("error"),e[18]=o,e[19]=r.ok,e[20]=S):S=e[20];let M;e[21]!==T||e[22]!==S?(M=s("span",{className:"shrink-0",children:s(ce,{variant:T,children:S})}),e[21]=T,e[22]=S,e[23]=M):M=e[23];let g;e[24]!==r.startTs?(g=me(r.startTs),e[24]=r.startTs,e[25]=g):g=e[25];let b;e[26]!==g?(b=s("span",{className:"flex-1 truncate text-right font-mono text-xs tabular-nums text-muted-foreground",children:g}),e[26]=g,e[27]=b):b=e[27];let I;e[28]!==t||e[29]!==i||e[30]!==u||e[31]!==h||e[32]!==M||e[33]!==b||e[34]!==c||e[35]!==v||e[36]!==$||e[37]!==y||e[38]!==N?(I=k("button",{"aria-controls":c,"aria-expanded":t,className:"flex w-full items-center gap-3 px-3 py-2 text-left hover:bg-muted/50","data-testid":v,onClick:i,type:"button",children:[$,y,N,u,h,M,b]}),e[28]=t,e[29]=i,e[30]=u,e[31]=h,e[32]=M,e[33]=b,e[34]=c,e[35]=v,e[36]=$,e[37]=y,e[38]=N,e[39]=I):I=e[39];let p;e[40]!==t||e[41]!==a||e[42]!==r.durationMs||e[43]!==r.spans||e[44]!==r.traceId?(p=t&&k("div",{className:"bg-muted/20","data-testid":`tr-waterfall-${r.traceId}`,id:`tr-waterfall-${r.traceId}`,children:[s(Ae,{durationMs:r.durationMs,spans:r.spans}),a.length>0&&s(Je,{entries:a})]}),e[40]=t,e[41]=a,e[42]=r.durationMs,e[43]=r.spans,e[44]=r.traceId,e[45]=p):p=e[45];let x;return e[46]!==I||e[47]!==p||e[48]!==m?(x=k("div",{className:"border-b border-border last:border-b-0","data-testid":m,children:[I,p]}),e[46]=I,e[47]=p,e[48]=m,e[49]=x):x=e[49],x},pt=n=>{const e=z(58),{initialShardKey:t}=n,a=X(),[l]=ee(Me),{queryShardKey:r,setShardKey:o,shardKey:d}=Ne(l?.shardKey!==void 0&&l.shardKey!==""?l.shardKey:t??""),[i,m]=ee(l?.traceId??""),[c,v]=ee(!1),[_,$]=ee(We);let y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=[],e[0]=y):y=e[0],le(qe,y);let N;e[1]===Symbol.for("react.memo_cache_sentinel")?(N={},e[1]=N):N=e[1];let w;e[2]!==r?(w={live:!0,shardKey:r},e[2]=r,e[3]=w):w=e[3];const{data:u,error:f,errorSource:h,isLoading:T,liveError:S}=oe(de.getTraces,N,w);let M;e[4]===Symbol.for("react.memo_cache_sentinel")?(M={},e[4]=M):M=e[4];const g=_.size>0;let b;e[5]!==r||e[6]!==g?(b={enabled:g,live:!0,shardKey:r},e[5]=r,e[6]=g,e[7]=b):b=e[7];const{data:I}=oe(de.getLogs,M,b);let p,x;e[8]!==u||e[9]!==r?(p=()=>{u!==void 0&&we(r)},x=[u,r],e[8]=u,e[9]=r,e[10]=p,e[11]=x):(p=e[10],x=e[11]),le(p,x);let A;if(e[12]!==u||e[13]!==f||e[14]!==h||e[15]!==_||e[16]!==T||e[17]!==S||e[18]!==I?.entries||e[19]!==c||e[20]!==i||e[21]!==o||e[22]!==d||e[23]!==a){const L=Re(u),E=u?.total??L.length,B=E>L.length,K=Te(L,i,c),O=Map.groupBy((I?.entries??[]).toReversed(),He);let P;e[25]===Symbol.for("react.memo_cache_sentinel")?(P=j=>{m(j.target.value)},e[25]=P):P=e[25];const R=P;let C;e[26]===Symbol.for("react.memo_cache_sentinel")?(C=j=>{$(pe=>{const ne=new Set(pe);return ne.has(j)?ne.delete(j):ne.add(j),ne})},e[26]=C):C=e[26];const J=C,D=f===null&&K.length===0&&!T;let F;e[27]!==o||e[28]!==d?(F=s(be,{onChange:o,testId:"tr-shard-input",value:d}),e[27]=o,e[28]=d,e[29]=F):F=e[29];let W;e[30]!==a?(W=a("Search traces"),e[30]=a,e[31]=W):W=e[31];let q;e[32]!==a?(q=a("search trace, span, or function"),e[32]=a,e[33]=q):q=e[33];let H;e[34]!==i||e[35]!==W||e[36]!==q?(H=s(ye,{"aria-label":W,className:"h-8 w-56","data-testid":"tr-search",onChange:R,placeholder:q,value:i}),e[34]=i,e[35]=W,e[36]=q,e[37]=H):H=e[37];let Q;e[38]!==c?(Q=s(xe,{checked:c,"data-testid":"tr-only-errors",id:"tr-only-errors",onCheckedChange:v}),e[38]=c,e[39]=Q):Q=e[39];let Y;e[40]!==a?(Y=a("Errors only"),e[40]=a,e[41]=Y):Y=e[41];let Z;e[42]!==Q||e[43]!==Y?(Z=k("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",htmlFor:"tr-only-errors",children:[Q,Y]}),e[42]=Q,e[43]=Y,e[44]=Z):Z=e[44];let G;e[45]!==S?(G=s(ge,{message:S,prefix:"tr"}),e[45]=S,e[46]=G):G=e[46];let te;e[47]!==F||e[48]!==H||e[49]!==Z||e[50]!==G?(te=k("div",{className:"flex flex-wrap items-center gap-2",children:[F,H,Z,G]}),e[47]=F,e[48]=H,e[49]=Z,e[50]=G,e[51]=te):te=e[51];let re;e[52]!==f||e[53]!==h?(re=f!==null&&s(he,{error:h,testId:"tr-error"}),e[52]=f,e[53]=h,e[54]=re):re=e[54];let ae;e[55]!==D||e[56]!==a?(ae=D&&s(ve,{description:a("Traces recorded with ctx.trace show up here as your app handles traffic. The span buffer resets when the shard hibernates."),icon:s("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:s("path",{d:"M4 6h10M7 12h13M10 18h7"})}),testId:"tr-empty",title:a("No traces")}),e[55]=D,e[56]=a,e[57]=ae):ae=e[57],A=k("div",{className:"flex flex-col gap-4","data-testid":"lunora-traces-panel",children:[te,re,ae,f===null&&B&&s("p",{className:"text-xs text-muted-foreground","data-testid":"tr-truncated",children:a("Showing the {shown} most recent of {total} traces in the buffer.",{shown:L.length,total:E})}),f===null&&K.length>0&&s("div",{"aria-label":a("Recent traces"),className:"overflow-hidden rounded-xl border border-border shadow-xs","data-testid":"tr-list",children:K.map(j=>s(ze,{expanded:_.has(j.traceId),logs:O.get(j.traceId)??[],onToggle:J,trace:j},j.traceId))})]}),e[12]=u,e[13]=f,e[14]=h,e[15]=_,e[16]=T,e[17]=S,e[18]=I?.entries,e[19]=c,e[20]=i,e[21]=o,e[22]=d,e[23]=a,e[24]=A}else A=e[24];return A};function Ue(n,e){return s("div",{className:"flex items-center border-b border-border py-1 font-mono text-xs last:border-b-0","data-testid":"tr-log-row",role:"row",children:s(Ie,{entry:n})},`${String(e)}:${String(n.timestamp)}`)}function We(){return new Set}function qe(){Se()}function He(n){return n.traceId}export{pt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"react/compiler-runtime";import"@tanstack/react-router";import"react";import{S as j}from"./studio-
|
|
1
|
+
import"react/compiler-runtime";import"@tanstack/react-router";import"react";import{S as j}from"./studio-CUXq5VSB.js";import"./ErrorBoundary-DvzYskH7.js";import"./operation-console-provider-BMJNtiyB.js";import"./badge-BbuuAio7.js";import"./input-JHu63lTv.js";import"./skeleton-C1wQ9M5t.js";import"./home-panel-Ir3YHReO.js";import"./DEFAULT_LOCALE-BZ4NojpD.js";import"./StudioI18nProvider-CZ5h4nrV.js";import"./data-view-params-ClrV7XgF.js";import"./internal-zkEvTqy8.js";import"./utils-bhneXptQ.js";import"./CommandPalette-mPR8-vIm.js";import"react/jsx-runtime";export{j as Studio};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as E}from"react/compiler-runtime";import{LunoraClient as z}from"@lunora/client";import{LunoraProvider as q}from"@lunora/react";import{useState as K,useEffect as U}from"react";import{ErrorBoundary as G}from"./ErrorBoundary-DvzYskH7.js";import{b as R,f as H,a as J,m as Q,S as V}from"./studio-
|
|
1
|
+
import{c as E}from"react/compiler-runtime";import{LunoraClient as z}from"@lunora/client";import{LunoraProvider as q}from"@lunora/react";import{useState as K,useEffect as U}from"react";import{ErrorBoundary as G}from"./ErrorBoundary-DvzYskH7.js";import{b as R,f as H,a as J,m as Q,S as V}from"./studio-CUXq5VSB.js";import X from"./useDebounced-CU-uftxO.js";import{useT as D,createStudioI18n as Y}from"./DEFAULT_LOCALE-BZ4NojpD.js";import{StudioI18nProvider as M}from"./StudioI18nProvider-CZ5h4nrV.js";import{r as Z}from"./internal-zkEvTqy8.js";import{h as j}from"./recording-client-DtUxwVNY.js";import F from"./STUDIO_ROOT_CLASS-C6MccdVk.js";import{a as B}from"./browser-storage-xjTyMKY0.js";import{c as W}from"./utils-bhneXptQ.js";import{u as ee}from"./button-BkCrNcAs.js";import{u as te}from"./input-JHu63lTv.js";import{jsx as b,jsxs as C}from"react/jsx-runtime";const O="lunora-studio-admin-token",oe=()=>{try{return B("session")?.getItem(O)??""}catch{return""}},ne=k=>{const e=B("session");if(e!==void 0)try{k===""?e.removeItem(O):e.setItem(O,k)}catch{}},re="/_lunora/admin/ws-token",le=k=>{const e=k;return typeof e?.token=="string"&&e.token.length>0&&typeof e.expiresAtMs=="number"},ae=k=>{const{adminToken:e,baseUrl:c}=k,o=k.fetchImpl??fetch;let n=c;for(;n.endsWith("/");)n=n.slice(0,-1);const s=`${n}${re}`;let t,r=!1,l;const m=async()=>{const f=await o(s,{headers:{authorization:`Bearer ${e}`},method:"POST"});if(f.status===404||f.status===405)return r=!0,e;if(!f.ok)throw new Error(`ws-token mint failed: ${String(f.status)}`);const a=await f.json().catch(()=>{});if(!le(a))throw new Error("ws-token mint failed: malformed response body");return t=a,a.token};return{getToken:async()=>r?e:t!==void 0&&t.expiresAtMs-1e4>Date.now()?t.token:(l??=m().finally(()=>{l=void 0}),l),invalidate:()=>{t=void 0}}},se=k=>{const e=E(42),{onSubmit:c}=k,o=D(),[n,s]=K("");let t;e[0]!==n?(t=n.trim(),e[0]=n,e[1]=t):t=e[1];const r=t;let l;e[2]!==c||e[3]!==r?(l=N=>{N.preventDefault(),r!==""&&c(r)},e[2]=c,e[3]=r,e[4]=l):l=e[4];const m=l;let f;e[5]===Symbol.for("react.memo_cache_sentinel")?(f=b("div",{className:"h-10 w-10 text-foreground",children:b(H,{})}),e[5]=f):f=e[5];let a;e[6]!==o?(a=o("Connect to Lunora Studio"),e[6]=o,e[7]=a):a=e[7];let v;e[8]!==a?(v=b("h1",{className:"text-base font-semibold text-foreground",children:a}),e[8]=a,e[9]=v):v=e[9];let g;e[10]!==o?(g=o("Enter your admin token to access the studio."),e[10]=o,e[11]=g):g=e[11];let u;e[12]!==g?(u=b("p",{className:"text-[13px] text-muted-foreground",children:g}),e[12]=g,e[13]=u):u=e[13];let d;e[14]!==v||e[15]!==u?(d=C("div",{className:"flex flex-col items-center gap-3 text-center",children:[f,C("div",{className:"flex flex-col gap-1",children:[v,u]})]}),e[14]=v,e[15]=u,e[16]=d):d=e[16];let h;e[17]!==o?(h=o("admin token"),e[17]=o,e[18]=h):h=e[18];let i;e[19]!==h?(i=b("label",{className:"text-xs font-medium text-foreground",htmlFor:"lunora-studio-login-token",children:h}),e[19]=h,e[20]=i):i=e[20];let p;e[21]===Symbol.for("react.memo_cache_sentinel")?(p=N=>{s(N.target.value)},e[21]=p):p=e[21];let x;e[22]!==n?(x=b(te,{autoComplete:"off",autoFocus:!0,"data-testid":"lunora-studio-login-token",id:"lunora-studio-login-token",onChange:p,placeholder:"LUNORA_ADMIN_TOKEN",type:"password",value:n}),e[22]=n,e[23]=x):x=e[23];let y;e[24]!==o?(y=o("From your worker's LUNORA_ADMIN_TOKEN — your project's .dev.vars in dev, or a deployment secret in production."),e[24]=o,e[25]=y):y=e[25];let I;e[26]!==y?(I=b("p",{className:"text-[11px] text-muted-foreground",children:y}),e[26]=y,e[27]=I):I=e[27];let S;e[28]!==i||e[29]!==x||e[30]!==I?(S=C("div",{className:"flex flex-col gap-1.5",children:[i,x,I]}),e[28]=i,e[29]=x,e[30]=I,e[31]=S):S=e[31];const _=r==="";let T;e[32]!==o?(T=o("Connect"),e[32]=o,e[33]=T):T=e[33];let w;e[34]!==_||e[35]!==T?(w=b(ee,{"data-testid":"lunora-studio-login-submit",disabled:_,type:"submit",children:T}),e[34]=_,e[35]=T,e[36]=w):w=e[36];let $;return e[37]!==m||e[38]!==S||e[39]!==w||e[40]!==d?($=C("form",{className:"flex w-full max-w-sm flex-col gap-5 rounded-xl border border-border bg-card p-7 shadow-lg","data-testid":"lunora-studio-login",onSubmit:m,children:[d,S,w]}),e[37]=m,e[38]=S,e[39]=w,e[40]=d,e[41]=$):$=e[41],$},ie=k=>{const e=E(10),{i18n:c,onSubmit:o}=k,{resolvedTheme:n}=R(),s=n==="dark"&&"dark";let t;e[0]!==s?(t=W(F,s,"flex h-dvh items-center justify-center bg-sidebar p-6 text-sm text-foreground"),e[0]=s,e[1]=t):t=e[1];let r;e[2]!==o?(r=b(se,{onSubmit:o}),e[2]=o,e[3]=r):r=e[3];let l;e[4]!==c||e[5]!==r?(l=b(M,{i18n:c,children:r}),e[4]=c,e[5]=r,e[6]=l):l=e[6];let m;return e[7]!==t||e[8]!==l?(m=b("div",{className:t,"data-testid":"lunora-studio-login-root",children:l}),e[7]=t,e[8]=l,e[9]=m):m=e[9],m},de=k=>{const e=E(23),{basePath:c,chrome:o,studio:n}=k,s=D();let t;e[0]!==s?(t=s("Studio failed"),e[0]=s,e[1]=t):t=e[1];let r;e[2]!==s?(r=s("Studio"),e[2]=s,e[3]=r):r=e[3];let l;e[4]!==s?(l=s("Try again"),e[4]=s,e[5]=l):l=e[5];const m=n?.dataEditable,f=n?.functions,a=n?.initialShardKey,v=n?.openApiSpec,g=n?.openRpcSpec,u=n?.runAsIdentity,d=n?.scheduledCancel,h=n?.scheduledLoad,i=n?.schemaEditable;let p;e[6]!==c||e[7]!==o||e[8]!==d||e[9]!==h||e[10]!==i||e[11]!==m||e[12]!==f||e[13]!==a||e[14]!==v||e[15]!==g||e[16]!==u?(p=b(V,{basePath:c,chrome:o,dataEditable:m,functions:f,initialShardKey:a,openApiSpec:v,openRpcSpec:g,runAsIdentity:u,scheduledCancel:d,scheduledLoad:h,schemaEditable:i}),e[6]=c,e[7]=o,e[8]=d,e[9]=h,e[10]=i,e[11]=m,e[12]=f,e[13]=a,e[14]=v,e[15]=g,e[16]=u,e[17]=p):p=e[17];let x;return e[18]!==t||e[19]!==p||e[20]!==r||e[21]!==l?(x=b(G,{fallbackTitle:t,label:r,retryLabel:l,children:p}),e[18]=t,e[19]=p,e[20]=r,e[21]=l,e[22]=x):x=e[22],x},ce=k=>{const e=E(20),{basePath:c,clearToken:o,client:n,i18n:s,onTokenChange:t,rulesInstalled:r,studio:l,token:m}=k,{resolvedTheme:f}=R();let a;e[0]!==o||e[1]!==t||e[2]!==r||e[3]!==m?(a={clearToken:o,onTokenChange:t,rulesInstalled:r,token:m},e[0]=o,e[1]=t,e[2]=r,e[3]=m,e[4]=a):a=e[4];const v=a,g=f==="dark"&&"dark";let u;e[5]!==g?(u=W(F,g,"flex h-dvh flex-col overflow-hidden bg-sidebar text-sm text-foreground"),e[5]=g,e[6]=u):u=e[6];let d;e[7]!==c||e[8]!==v||e[9]!==l?(d=b(Q,{children:b(de,{basePath:c,chrome:v,studio:l})}),e[7]=c,e[8]=v,e[9]=l,e[10]=d):d=e[10];let h;e[11]!==s||e[12]!==d?(h=b(M,{i18n:s,children:d}),e[11]=s,e[12]=d,e[13]=h):h=e[13];let i;e[14]!==n||e[15]!==h?(i=b(q,{client:n,children:h}),e[14]=n,e[15]=h,e[16]=i):i=e[16];let p;return e[17]!==u||e[18]!==i?(p=b("div",{className:u,"data-testid":"lunora-studio-app",children:i}),e[17]=u,e[18]=i,e[19]=p):p=e[19],p},Ae=k=>{const e=E(27);let c;e[0]!==k?(c=k===void 0?{}:k,e[0]=k,e[1]=c):c=e[1];const{adminToken:o,basePath:n,baseUrl:s,client:t,rulesInstalled:r,studio:l,locale:m}=c;let f;e[2]!==o?(f=()=>o??oe(),e[2]=o,e[3]=f):f=e[3];const[a,v]=K(f);let g,u;e[4]!==a?(g=()=>{ne(a)},u=[a],e[4]=a,e[5]=g,e[6]=u):(g=e[5],u=e[6]),U(g,u);const d=X(a,300);let h;e:{if(t!==void 0){let A;e[7]!==t?(A=j(t),e[7]=t,e[8]=A):A=e[8],h=A;break e}let N;if(e[9]!==s||e[10]!==d){const A=Z(s),P=d===""?void 0:ae({adminToken:d,baseUrl:A}),L=new z({url:A,...P===void 0?{}:{wsToken:P.getToken}});P!==void 0&&(L.setAuthToken(d),L.onTokenExpired(P.invalidate)),N=j(L),e[9]=s,e[10]=d,e[11]=N}else N=e[11];h=N}const i=h;let p,x;e[12]!==i||e[13]!==t?(p=()=>()=>{t===void 0&&i.close()},x=[i,t],e[12]=i,e[13]=t,e[14]=p,e[15]=x):(p=e[14],x=e[15]),U(p,x);let y;e[16]===Symbol.for("react.memo_cache_sentinel")?(y=N=>{v(N.target.value)},e[16]=y):y=e[16];const I=y;let S;e[17]===Symbol.for("react.memo_cache_sentinel")?(S=()=>{v("")},e[17]=S):S=e[17];const _=S;let T;e[18]!==m?(T=Y(m),e[18]=m,e[19]=T):T=e[19];const w=T;let $;return e[20]!==n||e[21]!==i||e[22]!==w||e[23]!==r||e[24]!==l||e[25]!==a?($=b(J,{children:a===""?b(ie,{i18n:w,onSubmit:v}):b(ce,{basePath:n,clearToken:_,client:i,i18n:w,onTokenChange:I,rulesInstalled:r,studio:l,token:a})}),e[20]=n,e[21]=i,e[22]=w,e[23]=r,e[24]=l,e[25]=a,e[26]=$):$=e[26],$};export{Ae as StudioApp};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const i=r=>{if(typeof r=="string")return r;try{return JSON.stringify(r)??String(r)}catch{return String(r)}},o=r=>typeof r!="object"||r===null||Array.isArray(r)?"":Object.entries(r).map(([t,e])=>`${t}=${i(e)}`).join(" ");export{o as f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as h}from"react/compiler-runtime";import{f as v}from"./log-fields-CoL3hsIQ.js";import{g as x}from"./badge-BbuuAio7.js";import{i as N}from"./internal-zkEvTqy8.js";import{jsx as i,jsxs as g,Fragment as w}from"react/jsx-runtime";const L={debug:"secondary",error:"destructive",fatal:"destructive",info:"outline",log:"outline",trace:"outline",warn:"secondary"},A=p=>{const e=h(21),{entry:t}=p;let m;e[0]!==t.fields?(m=v(t.fields),e[0]=t.fields,e[1]=m):m=e[1];const c=m;let l;e[2]!==t.timestamp?(l=N(t.timestamp),e[2]=t.timestamp,e[3]=l):l=e[3];let r;e[4]!==l?(r=i("span",{className:"w-44 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:l}),e[4]=l,e[5]=r):r=e[5];const f=L[t.level];let s;e[6]!==t.level||e[7]!==f?(s=i("span",{className:"w-20 shrink-0",role:"gridcell",children:i(x,{variant:f,children:t.level})}),e[6]=t.level,e[7]=f,e[8]=s):s=e[8];const u=t.functionPath??"—";let a;e[9]!==u?(a=i("span",{className:"w-48 shrink-0 truncate text-muted-foreground",role:"gridcell",children:u}),e[9]=u,e[10]=a):a=e[10];let n;e[11]!==c?(n=c===""?null:i("span",{className:"ml-2 text-muted-foreground","data-testid":"lg-fields",children:c}),e[11]=c,e[12]=n):n=e[12];let o;e[13]!==t.message||e[14]!==n?(o=g("span",{className:"flex-1 truncate",role:"gridcell",children:[t.message,n]}),e[13]=t.message,e[14]=n,e[15]=o):o=e[15];let d;return e[16]!==r||e[17]!==s||e[18]!==a||e[19]!==o?(d=g(w,{children:[r,s,a,o]}),e[16]=r,e[17]=s,e[18]=a,e[19]=o,e[20]=d):d=e[20],d};export{A as E,L};
|