1 line
20 KiB
JavaScript
1 line
20 KiB
JavaScript
import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{At as a,Jt as o,Ot as s,_t as c,ct as l,dt as u,f as d,ot as f,t as p,xt as m,z as h}from"./abfragen-DKcWnZ8a.js";import{A as g,M as _,N as v,O as y,S as b}from"./index-BUHDF9RN.js";import{t as x}from"./button-DwYvdWVr.js";import{t as S}from"./Bestaetigen-BemBWZzN.js";import{t as C}from"./Panel-uT1S5ZGr.js";var w=t(e(),1),T=r(),E=n(),D={ok:{wort:`pünktlich`,punkt:`bg-gruen`,text:`text-text-3`},ueberfaellig:{wort:`überfällig`,punkt:`bg-rot shadow-[0_0_8px_var(--rot)]`,text:`text-rot-text`},gestoppt:{wort:`läuft nicht`,punkt:`bg-rot shadow-[0_0_8px_var(--rot)]`,text:`text-rot-text`},aus:{wort:`abgeschaltet`,punkt:`bg-text-3`,text:`text-text-3`}},O=`md:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)_minmax(0,1fr)_110px]`,k=e=>f(new Date(e*1e3).toISOString());function A(e){let t=(0,T.c)(36),{a:n}=e,r=D[n.status]??D.ok,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=i(`grid grid-cols-2 gap-x-4 gap-y-1.5 border-t border-white/[0.06] py-3 md:items-center`,O),t[0]=a):a=t[0];let o;t[1]===r.punkt?o=t[2]:(o=i(`mt-1.5 size-2 shrink-0 rounded-full`,r.punkt),t[1]=r.punkt,t[2]=o);let s;t[3]===o?s=t[4]:(s=(0,E.jsx)(`span`,{"aria-hidden":!0,className:o}),t[3]=o,t[4]=s);let c;t[5]===n.name?c=t[6]:(c=(0,E.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[5]=n.name,t[6]=c);let l;t[7]===n.takt?l=t[8]:(l=(0,E.jsx)(`span`,{className:`text-[13px] text-text-3`,children:n.takt}),t[7]=n.takt,t[8]=l);let d;t[9]!==c||t[10]!==l?(d=(0,E.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[c,l]}),t[9]=c,t[10]=l,t[11]=d):d=t[11];let f;t[12]!==s||t[13]!==d?(f=(0,E.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-start gap-2.5 md:col-span-1`,children:[s,d]}),t[12]=s,t[13]=d,t[14]=f):f=t[14];let p;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,E.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Zuletzt `}),t[15]=p):p=t[15];let m;t[16]===n.letzter?m=t[17]:(m=(0,E.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[p,n.letzter?(0,E.jsx)(`span`,{className:`ziffern`,children:u(n.letzter)}):(0,E.jsx)(`span`,{className:`text-text-3`,children:`–`})]}),t[16]=n.letzter,t[17]=m);let h;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,E.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Nächster `}),t[18]=h):h=t[18];let g;t[19]===n.naechster?g=t[20]:(g=(0,E.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[h,n.naechster?(0,E.jsx)(`span`,{className:`ziffern`,children:k(n.naechster).toLowerCase()}):(0,E.jsx)(`span`,{className:`text-text-3`,children:`–`})]}),t[19]=n.naechster,t[20]=g);let _;t[21]===r.text?_=t[22]:(_=i(`etikett text-[10.5px] tracking-[0.12em]`,r.text),t[21]=r.text,t[22]=_);let v;t[23]!==r.wort||t[24]!==_?(v=(0,E.jsx)(`span`,{role:`cell`,className:_,children:r.wort}),t[23]=r.wort,t[24]=_,t[25]=v):v=t[25];let y;t[26]!==n.status||t[27]!==n.text||t[28]!==r.text?(y=n.text&&n.status!==`ok`&&(0,E.jsx)(`p`,{className:i(`col-span-2 m-0 text-sm md:col-span-4 md:pl-[18px]`,r.text),children:n.text}),t[26]=n.status,t[27]=n.text,t[28]=r.text,t[29]=y):y=t[29];let b;return t[30]!==g||t[31]!==v||t[32]!==y||t[33]!==f||t[34]!==m?(b=(0,E.jsxs)(`div`,{role:`row`,className:a,children:[f,m,g,v,y]}),t[30]=g,t[31]=v,t[32]=y,t[33]=f,t[34]=m,t[35]=b):b=t[35],b}function j(){let e=(0,T.c)(15),t=p(),n;e[0]===t.data?.ablaeufe?n=e[1]:(n=t.data?.ablaeufe??[],e[0]=t.data?.ablaeufe,e[1]=n);let r=n,a;e[2]===r?a=e[3]:(a=r.filter(N),e[2]=r,e[3]=a);let o=a.length,s;e[4]!==t.data||e[5]!==o?(s=t.data?(0,E.jsx)(_,{art:o?`rot`:`gruen`,children:o?`${o} überfällig`:`alle pünktlich`}):void 0,e[4]=t.data,e[5]=o,e[6]=s):s=e[6];let c;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,E.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Was die Box regelmäßig von selbst tut. Bleibt ein Lauf länger aus als erwartet, steht er hier oben und der Wächter meldet es — ein Stillstand wie im September fällt so am ersten Morgen auf.`}),e[7]=c):c=e[7];let l;e[8]!==t.error||e[9]!==t.isPending||e[10]!==r?(l=t.isPending?(0,E.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wird gelesen …`}):t.error?(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Zeitpläne lassen sich gerade nicht lesen: `,t.error.message]}):(0,E.jsxs)(`div`,{role:`table`,"aria-label":`Zeitpläne`,className:`flex flex-col`,children:[(0,E.jsxs)(`div`,{role:`row`,className:i(`etikett hidden gap-x-4 pb-2.5 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,O),children:[(0,E.jsx)(`span`,{role:`columnheader`,children:`Ablauf`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Nächster`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Zustand`})]}),r.map(M)]}),e[8]=t.error,e[9]=t.isPending,e[10]=r,e[11]=l):l=e[11];let u;return e[12]!==s||e[13]!==l?(u=(0,E.jsxs)(C,{titel:`Zeitpläne`,rechts:s,children:[c,l]}),e[12]=s,e[13]=l,e[14]=u):u=e[14],u}function M(e){return(0,E.jsx)(A,{a:e},e.id)}function N(e){return e.status===`ueberfaellig`||e.status===`gestoppt`}var ee={laeuft:{wort:`läuft`,punkt:`bg-gruen`,text:`text-text-3`},startet:{wort:`startet`,punkt:`bg-bernstein`,text:`text-bernstein`},stoppt:{wort:`stoppt`,punkt:`bg-bernstein`,text:`text-bernstein`},antwortet_nicht:{wort:`antwortet nicht`,punkt:`bg-rot`,text:`text-rot-text`},gestoppt:{wort:`gestoppt`,punkt:`bg-rot`,text:`text-rot-text`},gescheitert:{wort:`gescheitert`,punkt:`bg-rot`,text:`text-rot-text`},schlaeft:{wort:`schläft`,punkt:`bg-text-3`,text:`text-text-3`}};function P(e){return e.zustand?e.zustand:e.ok?`laeuft`:e.schlaeft?`schlaeft`:`antwortet_nicht`}var F={gescheitert:0,gestoppt:0,antwortet_nicht:0,startet:1,stoppt:1,laeuft:3,schlaeft:4};function I(e){let t=P(e);return t===`laeuft`&&(e.neustarts??0)>0?2:F[t]}var te=e=>I(e)===0,L=e=>[...e].sort((e,t)=>I(e)-I(t)),R=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0}),z=new Intl.NumberFormat(`de-DE`,{minimumFractionDigits:1,maximumFractionDigits:1});function ne(e){if(e==null)return`–`;let t=e/1024**2;return t<1e3?`${R.format(t)} MB`:`${z.format(t/1024)} GB`}function re(e,t){return e.speicher_bytes==null||!t?null:(e.speicher_bytes+(e.grafik_bytes??0))/t*100}function ie(e){return e==null?`–`:e>0&&e<.05?`< 0,1 %`:e<10?`${z.format(e).replace(/,0$/,``)} %`:`${R.format(e)} %`}function ae(e){return e==null||e<0?`–`:e<60?`< 1 min`:b(e)}var B=`Europe/Berlin`,V=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:B}),H=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:B}),U=new Intl.DateTimeFormat(`en-CA`,{timeZone:B});function oe(e,t=Date.now()){let n=new Date(t-e*1e3),r=U.format(n);return r===U.format(new Date(t))?`heute ${V.format(n)}`:r===U.format(new Date(t-864e5))?`gestern ${V.format(n)}`:`${H.format(n)}, ${V.format(n)}`}function se(e,t=Date.now()){let n=P(e);return n===`schlaeft`?`mit Absicht aus`:(n===`gestoppt`||n===`gescheitert`)&&e.aus_seit_s!=null?`aus seit ${oe(e.aus_seit_s,t)}`:null}function W(e){let t=P(e);return t===`schlaeft`?`Wecken`:t===`gestoppt`||t===`gescheitert`?`Starten`:`Neu starten`}var G={"llama-swap":`Laufende Antworten brechen ab; die Modelle werden danach neu geladen.`,"mission-control-2":`Das ist diese Oberfläche selbst: Sie ist ein paar Sekunden nicht erreichbar.`,"hermes-gateway":`Lucy antwortet in der Zeit nicht.`};function K(e){let t=W(e);if(t===`Wecken`)return{titel:`${e.name} wecken?`,text:`Der Dienst startet und läuft bis zum nächsten Neustart der Box. Danach schläft er wieder.`,knopf:t};if(t===`Starten`)return{titel:`${e.name} starten?`,text:`Der Dienst wird gestartet. Scheitert er wieder, steht der Grund im Protokoll.`,knopf:t};let n=G[e.unit]?` ${G[e.unit]}`:``;return{titel:`${e.name} neu starten?`,text:`Der Dienst wird neu gestartet und ist dabei kurz nicht erreichbar.${n}`,knopf:t}}function q(e){let t=W(e);return`${e.name} ${t===`Wecken`?`wird geweckt`:t===`Starten`?`startet`:`startet neu`}.`}var ce={laeuft:`ok`,startet:`warn`,stoppt:`warn`,antwortet_nicht:`rot`,gestoppt:`rot`,gescheitert:`rot`,schlaeft:`aus`},le=`grid-cols-2 gap-x-4 sm:grid-cols-4 xl:gap-x-3 xl:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_9.5rem] min-[87.5rem]:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_17.5rem]`,J=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`});function ue(e){let t=(0,T.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,E.jsx)(`span`,{className:`block text-xs text-text-3 xl:hidden`,children:n}),t[0]=n,t[1]=r),r}function de(e){let t=(0,T.c)(7),{anteil:n,children:r}=e,i;t[0]===r?i=t[1]:(i=(0,E.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[0]=r,t[1]=i);let a;t[2]===n?a=t[3]:(a=n!==null&&(0,E.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,E.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:`${Math.min(100,Math.max(2,n))}%`,background:`var(--reihe-1)`}})}),t[2]=n,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,E.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function fe(e){let t=(0,T.c)(9),{d:n,id:r}=e,i=h(n.unit),a=(0,w.useRef)(null),o;if(i.isPending)o=`Wird gelesen …`;else if(i.isError)o=`Das Protokoll lässt sich gerade nicht lesen: ${i.error.message}`;else if(i.data.ok===!1)o=i.data.err||i.data.text||`Das Protokoll lässt sich nicht lesen.`;else{let e;t[0]===i.data.text?e=t[1]:(e=i.data.text?.trim()||`Noch keine Einträge.`,t[0]=i.data.text,t[1]=e),o=e}let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},t[2]=s):s=t[2];let c;t[3]===o?c=t[4]:(c=[o],t[3]=o,t[4]=c),(0,w.useEffect)(s,c);let l=`Letzte Protokollzeilen von ${n.name}`,u;return t[5]!==r||t[6]!==l||t[7]!==o?(u=(0,E.jsx)(`pre`,{id:r,ref:a,tabIndex:0,"aria-label":l,className:`ziffern m-0 max-h-[50vh] w-full overflow-auto rounded-lg bg-black/30 ring-1 ring-white/[0.07] ring-inset p-3 text-xs leading-relaxed whitespace-pre-wrap break-words text-text-2`,children:o}),t[5]=r,t[6]=l,t[7]=o,t[8]=u):u=t[8],u}function Y(e){let t=(0,T.c)(113),{d:n,gesamt:r,offen:a,startet:o,onProtokoll:s,onFrage:c}=e,l=ee[P(n)],u;t[0]===n?u=t[1]:(u=se(n),t[0]=n,t[1]=u);let d=u,f,p,m,h,_,v,b,S,C,w,D;if(t[2]!==n||t[3]!==r||t[4]!==l.text||t[5]!==l.wort||t[6]!==d){let e=re(n,r);f=n.neustarts??0,p=`protokoll-${n.unit}`,S=`row`,t[18]===Symbol.for(`react.memo_cache_sentinel`)?(C=i(`grid gap-y-2.5 border-t border-white/[0.06] py-3 xl:items-center`,le),t[18]=C):C=t[18];let a;t[19]===n.unit?a=t[20]:(a=g(n.unit),t[19]=n.unit,t[20]=a);let o=ce[P(n)],s;t[21]!==a||t[22]!==o?(s=(0,E.jsx)(y,{bild:a,groesse:`sm`,punkt:o}),t[21]=a,t[22]=o,t[23]=s):s=t[23];let c;t[24]===n.name?c=t[25]:(c=(0,E.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[24]=n.name,t[25]=c);let u=n.scope===`system`?` · Systemdienst`:``,x;t[26]!==n.unit||t[27]!==u?(x=(0,E.jsxs)(`span`,{className:`ziffern text-xs break-words text-text-3`,children:[n.unit,u]}),t[26]=n.unit,t[27]=u,t[28]=x):x=t[28];let T;t[29]!==c||t[30]!==x?(T=(0,E.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[c,x]}),t[29]=c,t[30]=x,t[31]=T):T=t[31],t[32]!==s||t[33]!==T?(w=(0,E.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-3 xl:col-span-1`,children:[s,T]}),t[32]=s,t[33]=T,t[34]=w):w=t[34];let O;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,E.jsx)(ue,{children:`Zustand`}),t[35]=O):O=t[35];let k;t[36]===l.text?k=t[37]:(k=i(`etikett text-[10.5px] tracking-[0.12em]`,l.text),t[36]=l.text,t[37]=k);let A;t[38]!==k||t[39]!==l.wort?(A=(0,E.jsx)(`span`,{className:k,children:l.wort}),t[38]=k,t[39]=l.wort,t[40]=A):A=t[40];let j;t[41]===d?j=t[42]:(j=d&&(0,E.jsx)(`span`,{className:`text-xs text-text-3`,children:d}),t[41]=d,t[42]=j);let M;t[43]===f?M=t[44]:(M=f>0&&(0,E.jsx)(`span`,{className:`text-xs text-bernstein xl:hidden`,children:f===1?`1 Neustart`:`${f} Neustarts`}),t[43]=f,t[44]=M),t[45]!==A||t[46]!==j||t[47]!==M?(D=(0,E.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[O,A,j,M]}),t[45]=A,t[46]=j,t[47]=M,t[48]=D):D=t[48];let N;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,E.jsx)(ue,{children:`CPU`}),t[49]=N):N=t[49],t[50]===n.cpu_prozent?m=t[51]:(m=(0,E.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[N,n.cpu_prozent==null?(0,E.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,E.jsx)(de,{anteil:n.cpu_prozent,children:ie(n.cpu_prozent)})]}),t[50]=n.cpu_prozent,t[51]=m),h=`cell`,_=`min-w-0`,t[52]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,E.jsx)(ue,{children:`Speicher`}),t[52]=v):v=t[52],b=n.speicher_bytes==null?(0,E.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,E.jsxs)(de,{anteil:e,children:[ne(n.speicher_bytes+(n.grafik_bytes??0)),e!==null&&(0,E.jsxs)(`span`,{className:`font-sans text-xs text-text-3`,children:[` · `,ie(e)]})]}),t[2]=n,t[3]=r,t[4]=l.text,t[5]=l.wort,t[6]=d,t[7]=f,t[8]=p,t[9]=m,t[10]=h,t[11]=_,t[12]=v,t[13]=b,t[14]=S,t[15]=C,t[16]=w,t[17]=D}else f=t[7],p=t[8],m=t[9],h=t[10],_=t[11],v=t[12],b=t[13],S=t[14],C=t[15],w=t[16],D=t[17];let O;t[53]!==n.grafik_bytes||t[54]!==n.speicher_bytes?(O=n.speicher_bytes!=null&&!!n.grafik_bytes&&(0,E.jsxs)(`span`,{className:`mt-1 block text-xs text-text-3`,children:[`davon `,ne(n.grafik_bytes),` Modelle`]}),t[53]=n.grafik_bytes,t[54]=n.speicher_bytes,t[55]=O):O=t[55];let k;t[56]!==O||t[57]!==h||t[58]!==_||t[59]!==v||t[60]!==b?(k=(0,E.jsxs)(`span`,{role:h,className:_,children:[v,b,O]}),t[56]=O,t[57]=h,t[58]=_,t[59]=v,t[60]=b,t[61]=k):k=t[61];let A;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,E.jsx)(ue,{children:`Läuft seit`}),t[62]=A):A=t[62];let j;t[63]===n.laeuft_seit_s?j=t[64]:(j=ae(n.laeuft_seit_s),t[63]=n.laeuft_seit_s,t[64]=j);let M;t[65]===j?M=t[66]:(M=(0,E.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:j}),t[65]=j,t[66]=M);let N;t[67]===n.laeuft_seit_s?N=t[68]:(N=n.laeuft_seit_s!=null&&(0,E.jsxs)(`span`,{className:`text-xs text-text-3`,children:[`gestartet `,oe(n.laeuft_seit_s)]}),t[67]=n.laeuft_seit_s,t[68]=N);let F;t[69]!==M||t[70]!==N?(F=(0,E.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[A,M,N]}),t[69]=M,t[70]=N,t[71]=F):F=t[71];let I=f>0?`text-bernstein`:`text-text-3`,L;t[72]===I?L=t[73]:(L=i(`ziffern text-sm`,I),t[72]=I,t[73]=L);let R=n.neustarts??`–`,z;t[74]!==L||t[75]!==R?(z=(0,E.jsx)(`span`,{role:`cell`,className:`hidden min-w-0 xl:block`,children:(0,E.jsx)(`span`,{className:L,children:R})}),t[74]=L,t[75]=R,t[76]=z):z=t[76];let B=a?`info`:`ghost`,V=a?p:void 0,H=`Protokoll von ${n.name}`,U;t[77]!==a||t[78]!==s||t[79]!==B||t[80]!==V||t[81]!==H?(U=(0,E.jsx)(x,{variant:B,size:`sm`,"aria-expanded":a,"aria-controls":V,"aria-label":H,onClick:s,children:`Protokoll`}),t[77]=a,t[78]=s,t[79]=B,t[80]=V,t[81]=H,t[82]=U):U=t[82];let G=te(n)?`default`:`outline`,K=o!==null,q;t[83]!==n||t[84]!==o?(q=o===n.unit?`startet …`:W(n),t[83]=n,t[84]=o,t[85]=q):q=t[85];let J=`${n.name}: ${q}`,Y;t[86]!==n||t[87]!==o?(Y=o===n.unit?`Startet …`:W(n),t[86]=n,t[87]=o,t[88]=Y):Y=t[88];let X;t[89]!==c||t[90]!==G||t[91]!==K||t[92]!==J||t[93]!==Y?(X=(0,E.jsx)(x,{variant:G,size:`sm`,disabled:K,"aria-label":J,onClick:c,children:Y}),t[89]=c,t[90]=G,t[91]=K,t[92]=J,t[93]=Y,t[94]=X):X=t[94];let Z;t[95]!==U||t[96]!==X?(Z=(0,E.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex flex-wrap gap-2 sm:col-start-3 sm:row-start-1 sm:justify-end sm:self-start xl:col-span-1 xl:col-start-auto xl:row-start-auto xl:flex-col xl:items-stretch xl:self-center min-[87.5rem]:flex-row min-[87.5rem]:justify-end`,children:[U,X]}),t[95]=U,t[96]=X,t[97]=Z):Z=t[97];let Q;t[98]!==n||t[99]!==a||t[100]!==p?(Q=a&&(0,E.jsx)(`div`,{role:`cell`,className:`col-span-full`,children:(0,E.jsx)(fe,{d:n,id:p})}),t[98]=n,t[99]=a,t[100]=p,t[101]=Q):Q=t[101];let $;return t[102]!==m||t[103]!==k||t[104]!==F||t[105]!==z||t[106]!==Z||t[107]!==Q||t[108]!==S||t[109]!==C||t[110]!==w||t[111]!==D?($=(0,E.jsxs)(`div`,{role:S,className:C,children:[w,D,m,k,F,z,Z,Q]}),t[102]=m,t[103]=k,t[104]=F,t[105]=z,t[106]=Z,t[107]=Q,t[108]=S,t[109]=C,t[110]=w,t[111]=D,t[112]=$):$=t[112],$}function X(e){let t=(0,T.c)(16),{stand:n,gewaehlt:r,startet:a,onProtokoll:o,onFrage:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,E.jsxs)(`div`,{role:`row`,className:i(`etikett hidden pb-2 text-[10.5px] tracking-[0.14em] text-text-3 xl:grid`,le),children:[(0,E.jsx)(`span`,{role:`columnheader`,children:`Dienst`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Zustand`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`}),(0,E.jsx)(`span`,{role:`columnheader`,children:`Neustarts`}),(0,E.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktionen`})]}),t[0]=c):c=t[0];let l;if(t[1]!==r||t[2]!==s||t[3]!==o||t[4]!==n.services||t[5]!==n.speicher_gesamt||t[6]!==a){let e;t[8]!==r||t[9]!==s||t[10]!==o||t[11]!==n.speicher_gesamt||t[12]!==a?(e=e=>(0,E.jsx)(Y,{d:e,gesamt:n.speicher_gesamt,offen:r===e.unit,startet:a,onProtokoll:()=>o(e.unit),onFrage:()=>s(e)},e.unit),t[8]=r,t[9]=s,t[10]=o,t[11]=n.speicher_gesamt,t[12]=a,t[13]=e):e=t[13],l=L(n.services).map(e),t[1]=r,t[2]=s,t[3]=o,t[4]=n.services,t[5]=n.speicher_gesamt,t[6]=a,t[7]=l}else l=t[7];let u;return t[14]===l?u=t[15]:(u=(0,E.jsxs)(`div`,{role:`table`,"aria-label":`Dienste der KI-Box`,className:`flex flex-col`,children:[c,l]}),t[14]=l,t[15]=u),u}function Z(e){let t=(0,T.c)(8),{dienste:n,stand:r}=e,i;t[0]===n?i=t[1]:(i=n.filter(te),t[0]=n,t[1]=i);let a=i.length,o;if(t[2]!==n||t[3]!==a||t[4]!==r){let e=n.filter($),i;t[6]===r?i=t[7]:(i=r>0&&(0,E.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,J.format(r)]}),t[6]=r,t[7]=i),o=(0,E.jsxs)(`span`,{className:`flex flex-wrap items-center gap-3`,children:[i,a>0?(0,E.jsx)(_,{art:`rot`,children:a===1?`1 Problem`:`${a} Probleme`}):e.length>0?(0,E.jsx)(_,{art:`bernstein`,children:e.some(Q)?`Startet gerade`:`Stoppt gerade`}):(0,E.jsx)(_,{art:`gruen`,children:`Alles in Ordnung`})]}),t[2]=n,t[3]=a,t[4]=r,t[5]=o}else o=t[5];return o}function Q(e){return P(e)===`startet`}function $(e){return I(e)===1}function pe(){let e=o(),t=d(),[n,r]=(0,w.useState)(null),[i,u]=(0,w.useState)(null),[f,p]=(0,w.useState)(!1),[h,g]=(0,w.useState)(null);async function _(t){if(!h){g(t.unit);try{let e=await a(`/api/maintenance/restart`,{service:t.unit});e.ok?c(`erfolg`,q(t)):c(`fehler`,`${t.name} ließ sich nicht starten: ${m(e)}`)}catch(e){t.unit===`mission-control-2`&&e instanceof s?c(`info`,`Der Box-Wart startet neu. Die Seite ist gleich wieder da.`):c(`fehler`,e.message)}finally{g(null),e.invalidateQueries({queryKey:[`dienste`]}),e.invalidateQueries({queryKey:[`protokoll`,t.unit]})}}}if(t.isPending)return(0,E.jsx)(v,{text:`Die Dienste werden gelesen …`});if(!t.data)return(0,E.jsx)(v,{fehler:!0,text:`Die Dienste lassen sich gerade nicht lesen: ${t.error?.message??`keine Daten`}`});let y=t.data,b=i?K(i):null,x=y.speicher_gesamt?`den ${l(y.speicher_gesamt)}`:`dem Arbeitsspeicher`,T=y.kerne?`allen ${y.kerne} Kernen`:`allen Kernen`;return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(C,{titel:`Dienste`,rechts:(0,E.jsx)(Z,{dienste:y.services,stand:t.dataUpdatedAt}),children:[(0,E.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Die Dienste der KI-Box: ob sie laufen, was sie gerade an CPU und Speicher brauchen, seit wann sie laufen und was sie zuletzt ins Protokoll geschrieben haben. Probleme stehen oben.`}),y.services.length===0?(0,E.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Dienste gefunden.`}):(0,E.jsx)(X,{stand:y,gewaehlt:n,startet:h,onProtokoll:e=>r(n===e?null:e),onFrage:e=>{u(e),p(!0)}}),(0,E.jsxs)(`p`,{className:`m-0 text-xs leading-relaxed text-text-3`,children:[`CPU: Anteil an `,T,` der Box, gemessen zwischen zwei Abfragen (alle zehn Sekunden). Speicher: was systemd dem Dienst zurechnet; der Balken zeigt den Anteil an `,x,` der Box. Bei der Engine zählen die geladenen Modelle mit — sie liegen im Grafikspeicher, den systemd keinem Dienst zurechnet. Neustarts: wie oft systemd den Dienst nach einem Absturz von selbst wieder gestartet hat. „Schläft“ heißt: mit Absicht abgeschaltet, kein Fehler.`]}),(0,E.jsx)(S,{offen:f&&!!b,titel:b?.titel??``,text:b?.text??``,knopf:b?.knopf??``,gefahr:b?.knopf===`Neu starten`,gesperrt:h!==null,onJa:()=>{p(!1),i&&_(i)},onNein:()=>p(!1)})]}),(0,E.jsx)(j,{})]})}export{pe as DiensteSeite}; |