Files
mission-control-v2/frontend/dist/assets/Dienste-CuaesLC2.js
T
2026-09-25 16:54:14 +02:00

1 line
20 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{A as a,M as o,N as s,O as c,On as l,Qt as u,S as d,X as f,Xt as p,gn as m,in as h,kt as g,mn as _,ot as v,sn as y,tn as b}from"./index-CJ1jXWsM.js";import{t as x}from"./button-DwYvdWVr.js";import{t as S}from"./Bestaetigen-6C3zYuEE.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=>p(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 u;t[9]!==c||t[10]!==l?(u=(0,E.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[c,l]}),t[9]=c,t[10]=l,t[11]=u):u=t[11];let d;t[12]!==s||t[13]!==u?(d=(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,u]}),t[12]=s,t[13]=u,t[14]=d):d=t[14];let f;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,E.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Zuletzt `}),t[15]=f):f=t[15];let p;t[16]===n.letzter?p=t[17]:(p=(0,E.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[f,n.letzter?(0,E.jsx)(`span`,{className:`ziffern`,children:b(n.letzter)}):(0,E.jsx)(`span`,{className:`text-text-3`,children:`–`})]}),t[16]=n.letzter,t[17]=p);let m;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,E.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Nächster `}),t[18]=m):m=t[18];let h;t[19]===n.naechster?h=t[20]:(h=(0,E.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[m,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]=h);let g;t[21]===r.text?g=t[22]:(g=i(`etikett text-[10.5px] tracking-[0.12em]`,r.text),t[21]=r.text,t[22]=g);let _;t[23]!==r.wort||t[24]!==g?(_=(0,E.jsx)(`span`,{role:`cell`,className:g,children:r.wort}),t[23]=r.wort,t[24]=g,t[25]=_):_=t[25];let v;t[26]!==n.status||t[27]!==n.text||t[28]!==r.text?(v=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]=v):v=t[29];let y;return t[30]!==h||t[31]!==_||t[32]!==v||t[33]!==d||t[34]!==p?(y=(0,E.jsxs)(`div`,{role:`row`,className:a,children:[d,p,h,_,v]}),t[30]=h,t[31]=_,t[32]=v,t[33]=d,t[34]=p,t[35]=y):y=t[35],y}function j(){let e=(0,T.c)(15),t=f(),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 s=a.length,c;e[4]!==t.data||e[5]!==s?(c=t.data?(0,E.jsx)(o,{art:s?`rot`:`gruen`,children:s?`${s} überfällig`:`alle pünktlich`}):void 0,e[4]=t.data,e[5]=s,e[6]=c):c=e[6];let l;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(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]=l):l=e[7];let u;e[8]!==t.error||e[9]!==t.isPending||e[10]!==r?(u=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]=u):u=e[11];let d;return e[12]!==c||e[13]!==u?(d=(0,E.jsxs)(C,{titel:`Zeitpläne`,rechts:c,children:[l,u]}),e[12]=c,e[13]=u,e[14]=d):d=e[14],d}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`:d(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=g(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:o,startet:s,onProtokoll:l,onFrage:u}=e,d=ee[P(n)],f;t[0]===n?f=t[1]:(f=se(n),t[0]=n,t[1]=f);let p=f,m,h,g,_,v,y,b,S,C,w,D;if(t[2]!==n||t[3]!==r||t[4]!==d.text||t[5]!==d.wort||t[6]!==p){let e=re(n,r);m=n.neustarts??0,h=`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 o;t[19]===n.unit?o=t[20]:(o=a(n.unit),t[19]=n.unit,t[20]=o);let s=ce[P(n)],l;t[21]!==o||t[22]!==s?(l=(0,E.jsx)(c,{bild:o,groesse:`sm`,punkt:s}),t[21]=o,t[22]=s,t[23]=l):l=t[23];let u;t[24]===n.name?u=t[25]:(u=(0,E.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[24]=n.name,t[25]=u);let f=n.scope===`system`?` · Systemdienst`:``,x;t[26]!==n.unit||t[27]!==f?(x=(0,E.jsxs)(`span`,{className:`ziffern text-xs break-words text-text-3`,children:[n.unit,f]}),t[26]=n.unit,t[27]=f,t[28]=x):x=t[28];let T;t[29]!==u||t[30]!==x?(T=(0,E.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[u,x]}),t[29]=u,t[30]=x,t[31]=T):T=t[31],t[32]!==l||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:[l,T]}),t[32]=l,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]===d.text?k=t[37]:(k=i(`etikett text-[10.5px] tracking-[0.12em]`,d.text),t[36]=d.text,t[37]=k);let A;t[38]!==k||t[39]!==d.wort?(A=(0,E.jsx)(`span`,{className:k,children:d.wort}),t[38]=k,t[39]=d.wort,t[40]=A):A=t[40];let j;t[41]===p?j=t[42]:(j=p&&(0,E.jsx)(`span`,{className:`text-xs text-text-3`,children:p}),t[41]=p,t[42]=j);let M;t[43]===m?M=t[44]:(M=m>0&&(0,E.jsx)(`span`,{className:`text-xs text-bernstein xl:hidden`,children:m===1?`1 Neustart`:`${m} Neustarts`}),t[43]=m,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?g=t[51]:(g=(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]=g),_=`cell`,v=`min-w-0`,t[52]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,E.jsx)(ue,{children:`Speicher`}),t[52]=y):y=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]=d.text,t[5]=d.wort,t[6]=p,t[7]=m,t[8]=h,t[9]=g,t[10]=_,t[11]=v,t[12]=y,t[13]=b,t[14]=S,t[15]=C,t[16]=w,t[17]=D}else m=t[7],h=t[8],g=t[9],_=t[10],v=t[11],y=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]!==_||t[58]!==v||t[59]!==y||t[60]!==b?(k=(0,E.jsxs)(`span`,{role:_,className:v,children:[y,b,O]}),t[56]=O,t[57]=_,t[58]=v,t[59]=y,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=m>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=o?`info`:`ghost`,V=o?h:void 0,H=`Protokoll von ${n.name}`,U;t[77]!==o||t[78]!==l||t[79]!==B||t[80]!==V||t[81]!==H?(U=(0,E.jsx)(x,{variant:B,size:`sm`,"aria-expanded":o,"aria-controls":V,"aria-label":H,onClick:l,children:`Protokoll`}),t[77]=o,t[78]=l,t[79]=B,t[80]=V,t[81]=H,t[82]=U):U=t[82];let G=te(n)?`default`:`outline`,K=s!==null,q;t[83]!==n||t[84]!==s?(q=s===n.unit?`startet …`:W(n),t[83]=n,t[84]=s,t[85]=q):q=t[85];let J=`${n.name}: ${q}`,Y;t[86]!==n||t[87]!==s?(Y=s===n.unit?`Startet …`:W(n),t[86]=n,t[87]=s,t[88]=Y):Y=t[88];let X;t[89]!==u||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:u,children:Y}),t[89]=u,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]!==o||t[100]!==h?(Q=o&&(0,E.jsx)(`div`,{role:`cell`,className:`col-span-full`,children:(0,E.jsx)(fe,{d:n,id:h})}),t[98]=n,t[99]=o,t[100]=h,t[101]=Q):Q=t[101];let $;return t[102]!==g||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,g,k,F,z,Z,Q]}),t[102]=g,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,s;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),s=(0,E.jsxs)(`span`,{className:`flex flex-wrap items-center gap-3`,children:[i,a>0?(0,E.jsx)(o,{art:`rot`,children:a===1?`1 Problem`:`${a} Probleme`}):e.length>0?(0,E.jsx)(o,{art:`bernstein`,children:e.some(Q)?`Startet gerade`:`Stoppt gerade`}):(0,E.jsx)(o,{art:`gruen`,children:`Alles in Ordnung`})]}),t[2]=n,t[3]=a,t[4]=r,t[5]=s}else s=t[5];return s}function Q(e){return P(e)===`startet`}function $(e){return I(e)===1}function pe(){let e=l(),t=v(),[n,r]=(0,w.useState)(null),[i,a]=(0,w.useState)(null),[o,c]=(0,w.useState)(!1),[d,f]=(0,w.useState)(null);async function p(t){if(!d){f(t.unit);try{let e=await m(`/api/maintenance/restart`,{service:t.unit});e.ok?h(`erfolg`,q(t)):h(`fehler`,`${t.name} ließ sich nicht starten: ${y(e)}`)}catch(e){t.unit===`mission-control-2`&&e instanceof _?h(`info`,`Der Box-Wart startet neu. Die Seite ist gleich wieder da.`):h(`fehler`,e.message)}finally{f(null),e.invalidateQueries({queryKey:[`dienste`]}),e.invalidateQueries({queryKey:[`protokoll`,t.unit]})}}}if(t.isPending)return(0,E.jsx)(s,{text:`Die Dienste werden gelesen …`});if(!t.data)return(0,E.jsx)(s,{fehler:!0,text:`Die Dienste lassen sich gerade nicht lesen: ${t.error?.message??`keine Daten`}`});let g=t.data,b=i?K(i):null,x=g.speicher_gesamt?`den ${u(g.speicher_gesamt)}`:`dem Arbeitsspeicher`,T=g.kerne?`allen ${g.kerne} Kernen`:`allen Kernen`;return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(C,{titel:`Dienste`,rechts:(0,E.jsx)(Z,{dienste:g.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.`}),g.services.length===0?(0,E.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Dienste gefunden.`}):(0,E.jsx)(X,{stand:g,gewaehlt:n,startet:d,onProtokoll:e=>r(n===e?null:e),onFrage:e=>{a(e),c(!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:o&&!!b,titel:b?.titel??``,text:b?.text??``,knopf:b?.knopf??``,gefahr:b?.knopf===`Neu starten`,gesperrt:d!==null,onJa:()=>{c(!1),i&&p(i)},onNein:()=>c(!1)})]}),(0,E.jsx)(j,{})]})}export{pe as DiensteSeite};