Files
mission-control-v2/frontend/dist/assets/Dienste-C60GZuQx.js
T
HitonabiandClaude Opus 5.5 1915813cc0 Welle 3 · Oberfläche: Lucys Freiheiten, Rückfragen mit Ja/Nein, Wochenbericht; dist gebaut
- Einstellungen → Lucy: Freiheit je Aktionsart (freier als der Start nur nach Nachfrage), offene und zuletzt
  beantwortete Rückfragen, Wochenbericht (nächster Termin, letzten lesen, jetzt schicken)
- Übersicht: Feld „Rückfrage an dich“ ganz oben, nur wenn eine offen ist; Ja erst nach Bestätigung
- Strg+K: Lucys Freiheiten, Rückfragen, Wochenbericht
- Einstieg 126,1 KB gzip

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 09:14:07 +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{At as a,Et as o,Lt as s,V as c,_t as l,bt as u,f as d,ht as f,rn as p,t as m,zt as h}from"./abfragen-pD_qBEtc.js";import{t as g}from"./button-BHVKhtQ6.js";import{H as _,L as v,V as y,j as b,m as x,p as S,z as ee}from"./index-Bumw6krN.js";var C=t(e(),1),w=r(),T=n(),E={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`}},D=`md:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)_minmax(0,1fr)_110px]`,O=e=>f(new Date(e*1e3).toISOString());function k(e){let t=(0,w.c)(36),{a:n}=e,r=E[n.status]??E.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`,D),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,T.jsx)(`span`,{"aria-hidden":!0,className:o}),t[3]=o,t[4]=s);let c;t[5]===n.name?c=t[6]:(c=(0,T.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,T.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,T.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,T.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,T.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,T.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[p,n.letzter?(0,T.jsx)(`span`,{className:`ziffern`,children:u(n.letzter)}):(0,T.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,T.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,T.jsxs)(`span`,{role:`cell`,className:`text-sm text-text-2`,children:[h,n.naechster?(0,T.jsx)(`span`,{className:`ziffern`,children:O(n.naechster).toLowerCase()}):(0,T.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,T.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,T.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,T.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 A(){let e=(0,w.c)(15),t=m(),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(M),e[2]=r,e[3]=a);let o=a.length,s;e[4]!==t.data||e[5]!==o?(s=t.data?(0,T.jsx)(y,{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,T.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,T.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wird gelesen …`}):t.error?(0,T.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Zeitpläne lassen sich gerade nicht lesen: `,t.error.message]}):(0,T.jsxs)(`div`,{role:`table`,"aria-label":`Zeitpläne`,className:`flex flex-col`,children:[(0,T.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`,D),children:[(0,T.jsx)(`span`,{role:`columnheader`,children:`Ablauf`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Nächster`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Zustand`})]}),r.map(j)]}),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,T.jsxs)(S,{titel:`Zeitpläne`,rechts:s,children:[c,l]}),e[12]=s,e[13]=l,e[14]=u):u=e[14],u}function j(e){return(0,T.jsx)(k,{a:e},e.id)}function M(e){return e.status===`ueberfaellig`||e.status===`gestoppt`}var te={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 N(e){return e.zustand?e.zustand:e.ok?`laeuft`:e.schlaeft?`schlaeft`:`antwortet_nicht`}var P={gescheitert:0,gestoppt:0,antwortet_nicht:0,startet:1,stoppt:1,laeuft:3,schlaeft:4};function F(e){let t=N(e);return t===`laeuft`&&(e.neustarts??0)>0?2:P[t]}var ne=e=>F(e)===0,I=e=>[...e].sort((e,t)=>F(e)-F(t)),L=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0}),R=new Intl.NumberFormat(`de-DE`,{minimumFractionDigits:1,maximumFractionDigits:1});function re(e){if(e==null)return`–`;let t=e/1024**2;return t<1e3?`${L.format(t)} MB`:`${R.format(t/1024)} GB`}function ie(e,t){return e.speicher_bytes==null||!t?null:(e.speicher_bytes+(e.grafik_bytes??0))/t*100}function ae(e){return e==null?`–`:e>0&&e<.05?`< 0,1 %`:e<10?`${R.format(e).replace(/,0$/,``)} %`:`${L.format(e)} %`}function oe(e){return e==null||e<0?`–`:e<60?`< 1 min`:b(e)}var z=`Europe/Berlin`,B=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:z}),V=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:z}),H=new Intl.DateTimeFormat(`en-CA`,{timeZone:z});function se(e,t=Date.now()){let n=new Date(t-e*1e3),r=H.format(n);return r===H.format(new Date(t))?`heute ${B.format(n)}`:r===H.format(new Date(t-864e5))?`gestern ${B.format(n)}`:`${V.format(n)}, ${B.format(n)}`}function ce(e,t=Date.now()){let n=N(e);return n===`schlaeft`?`mit Absicht aus`:(n===`gestoppt`||n===`gescheitert`)&&e.aus_seit_s!=null?`aus seit ${se(e.aus_seit_s,t)}`:null}function U(e){let t=N(e);return t===`schlaeft`?`Wecken`:t===`gestoppt`||t===`gescheitert`?`Starten`:`Neu starten`}var W={"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 G(e){let t=U(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=W[e.unit]?` ${W[e.unit]}`:``;return{titel:`${e.name} neu starten?`,text:`Der Dienst wird neu gestartet und ist dabei kurz nicht erreichbar.${n}`,knopf:t}}function K(e){let t=U(e);return`${e.name} ${t===`Wecken`?`wird geweckt`:t===`Starten`?`startet`:`startet neu`}.`}var le={laeuft:`ok`,startet:`warn`,stoppt:`warn`,antwortet_nicht:`rot`,gestoppt:`rot`,gescheitert:`rot`,schlaeft:`aus`},ue=`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]`,q=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`});function J(e){let t=(0,w.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,T.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,w.c)(7),{anteil:n,children:r}=e,i;t[0]===r?i=t[1]:(i=(0,T.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,T.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-white/[0.07]`,"aria-hidden":!0,children:(0,T.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,T.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,w.c)(9),{d:n,id:r}=e,i=c(n.unit),a=(0,C.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 l;t[3]===o?l=t[4]:(l=[o],t[3]=o,t[4]=l),(0,C.useEffect)(s,l);let u=`Letzte Protokollzeilen von ${n.name}`,d;return t[5]!==r||t[6]!==u||t[7]!==o?(d=(0,T.jsx)(`pre`,{id:r,ref:a,tabIndex:0,"aria-label":u,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]=u,t[7]=o,t[8]=d):d=t[8],d}function Y(e){let t=(0,w.c)(113),{d:n,gesamt:r,offen:a,startet:o,onProtokoll:s,onFrage:c}=e,l=te[N(n)],u;t[0]===n?u=t[1]:(u=ce(n),t[0]=n,t[1]=u);let d=u,f,p,m,h,_,y,b,x,S,C,E;if(t[2]!==n||t[3]!==r||t[4]!==l.text||t[5]!==l.wort||t[6]!==d){let e=ie(n,r);f=n.neustarts??0,p=`protokoll-${n.unit}`,x=`row`,t[18]===Symbol.for(`react.memo_cache_sentinel`)?(S=i(`grid gap-y-2.5 border-t border-white/[0.06] py-3 xl:items-center`,ue),t[18]=S):S=t[18];let a;t[19]===n.unit?a=t[20]:(a=ee(n.unit),t[19]=n.unit,t[20]=a);let o=le[N(n)],s;t[21]!==a||t[22]!==o?(s=(0,T.jsx)(v,{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,T.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`:``,g;t[26]!==n.unit||t[27]!==u?(g=(0,T.jsxs)(`span`,{className:`ziffern text-xs break-words text-text-3`,children:[n.unit,u]}),t[26]=n.unit,t[27]=u,t[28]=g):g=t[28];let w;t[29]!==c||t[30]!==g?(w=(0,T.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[c,g]}),t[29]=c,t[30]=g,t[31]=w):w=t[31],t[32]!==s||t[33]!==w?(C=(0,T.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-3 xl:col-span-1`,children:[s,w]}),t[32]=s,t[33]=w,t[34]=C):C=t[34];let D;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,T.jsx)(J,{children:`Zustand`}),t[35]=D):D=t[35];let O;t[36]===l.text?O=t[37]:(O=i(`etikett text-[10.5px] tracking-[0.12em]`,l.text),t[36]=l.text,t[37]=O);let k;t[38]!==O||t[39]!==l.wort?(k=(0,T.jsx)(`span`,{className:O,children:l.wort}),t[38]=O,t[39]=l.wort,t[40]=k):k=t[40];let A;t[41]===d?A=t[42]:(A=d&&(0,T.jsx)(`span`,{className:`text-xs text-text-3`,children:d}),t[41]=d,t[42]=A);let j;t[43]===f?j=t[44]:(j=f>0&&(0,T.jsx)(`span`,{className:`text-xs text-bernstein xl:hidden`,children:f===1?`1 Neustart`:`${f} Neustarts`}),t[43]=f,t[44]=j),t[45]!==k||t[46]!==A||t[47]!==j?(E=(0,T.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[D,k,A,j]}),t[45]=k,t[46]=A,t[47]=j,t[48]=E):E=t[48];let M;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,T.jsx)(J,{children:`CPU`}),t[49]=M):M=t[49],t[50]===n.cpu_prozent?m=t[51]:(m=(0,T.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[M,n.cpu_prozent==null?(0,T.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,T.jsx)(de,{anteil:n.cpu_prozent,children:ae(n.cpu_prozent)})]}),t[50]=n.cpu_prozent,t[51]=m),h=`cell`,_=`min-w-0`,t[52]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,T.jsx)(J,{children:`Speicher`}),t[52]=y):y=t[52],b=n.speicher_bytes==null?(0,T.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,T.jsxs)(de,{anteil:e,children:[re(n.speicher_bytes+(n.grafik_bytes??0)),e!==null&&(0,T.jsxs)(`span`,{className:`font-sans text-xs text-text-3`,children:[` · `,ae(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]=y,t[13]=b,t[14]=x,t[15]=S,t[16]=C,t[17]=E}else f=t[7],p=t[8],m=t[9],h=t[10],_=t[11],y=t[12],b=t[13],x=t[14],S=t[15],C=t[16],E=t[17];let D;t[53]!==n.grafik_bytes||t[54]!==n.speicher_bytes?(D=n.speicher_bytes!=null&&!!n.grafik_bytes&&(0,T.jsxs)(`span`,{className:`mt-1 block text-xs text-text-3`,children:[`davon `,re(n.grafik_bytes),` Modelle`]}),t[53]=n.grafik_bytes,t[54]=n.speicher_bytes,t[55]=D):D=t[55];let O;t[56]!==D||t[57]!==h||t[58]!==_||t[59]!==y||t[60]!==b?(O=(0,T.jsxs)(`span`,{role:h,className:_,children:[y,b,D]}),t[56]=D,t[57]=h,t[58]=_,t[59]=y,t[60]=b,t[61]=O):O=t[61];let k;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,T.jsx)(J,{children:`Läuft seit`}),t[62]=k):k=t[62];let A;t[63]===n.laeuft_seit_s?A=t[64]:(A=oe(n.laeuft_seit_s),t[63]=n.laeuft_seit_s,t[64]=A);let j;t[65]===A?j=t[66]:(j=(0,T.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:A}),t[65]=A,t[66]=j);let M;t[67]===n.laeuft_seit_s?M=t[68]:(M=n.laeuft_seit_s!=null&&(0,T.jsxs)(`span`,{className:`text-xs text-text-3`,children:[`gestartet `,se(n.laeuft_seit_s)]}),t[67]=n.laeuft_seit_s,t[68]=M);let P;t[69]!==j||t[70]!==M?(P=(0,T.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[k,j,M]}),t[69]=j,t[70]=M,t[71]=P):P=t[71];let F=f>0?`text-bernstein`:`text-text-3`,I;t[72]===F?I=t[73]:(I=i(`ziffern text-sm`,F),t[72]=F,t[73]=I);let L=n.neustarts??`–`,R;t[74]!==I||t[75]!==L?(R=(0,T.jsx)(`span`,{role:`cell`,className:`hidden min-w-0 xl:block`,children:(0,T.jsx)(`span`,{className:I,children:L})}),t[74]=I,t[75]=L,t[76]=R):R=t[76];let z=a?`info`:`ghost`,B=a?p:void 0,V=`Protokoll von ${n.name}`,H;t[77]!==a||t[78]!==s||t[79]!==z||t[80]!==B||t[81]!==V?(H=(0,T.jsx)(g,{variant:z,size:`sm`,"aria-expanded":a,"aria-controls":B,"aria-label":V,onClick:s,children:`Protokoll`}),t[77]=a,t[78]=s,t[79]=z,t[80]=B,t[81]=V,t[82]=H):H=t[82];let W=ne(n)?`default`:`outline`,G=o!==null,K;t[83]!==n||t[84]!==o?(K=o===n.unit?`startet …`:U(n),t[83]=n,t[84]=o,t[85]=K):K=t[85];let q=`${n.name}: ${K}`,Y;t[86]!==n||t[87]!==o?(Y=o===n.unit?`Startet …`:U(n),t[86]=n,t[87]=o,t[88]=Y):Y=t[88];let X;t[89]!==c||t[90]!==W||t[91]!==G||t[92]!==q||t[93]!==Y?(X=(0,T.jsx)(g,{variant:W,size:`sm`,disabled:G,"aria-label":q,onClick:c,children:Y}),t[89]=c,t[90]=W,t[91]=G,t[92]=q,t[93]=Y,t[94]=X):X=t[94];let Z;t[95]!==H||t[96]!==X?(Z=(0,T.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:[H,X]}),t[95]=H,t[96]=X,t[97]=Z):Z=t[97];let Q;t[98]!==n||t[99]!==a||t[100]!==p?(Q=a&&(0,T.jsx)(`div`,{role:`cell`,className:`col-span-full`,children:(0,T.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]!==O||t[104]!==P||t[105]!==R||t[106]!==Z||t[107]!==Q||t[108]!==x||t[109]!==S||t[110]!==C||t[111]!==E?($=(0,T.jsxs)(`div`,{role:x,className:S,children:[C,E,m,O,P,R,Z,Q]}),t[102]=m,t[103]=O,t[104]=P,t[105]=R,t[106]=Z,t[107]=Q,t[108]=x,t[109]=S,t[110]=C,t[111]=E,t[112]=$):$=t[112],$}function X(e){let t=(0,w.c)(16),{stand:n,gewaehlt:r,startet:a,onProtokoll:o,onFrage:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,T.jsxs)(`div`,{role:`row`,className:i(`etikett hidden pb-2 text-[10.5px] tracking-[0.14em] text-text-3 xl:grid`,ue),children:[(0,T.jsx)(`span`,{role:`columnheader`,children:`Dienst`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Zustand`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Neustarts`}),(0,T.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,T.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=I(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,T.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,w.c)(8),{dienste:n,stand:r}=e,i;t[0]===n?i=t[1]:(i=n.filter(ne),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,T.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,q.format(r)]}),t[6]=r,t[7]=i),o=(0,T.jsxs)(`span`,{className:`flex flex-wrap items-center gap-3`,children:[i,a>0?(0,T.jsx)(y,{art:`rot`,children:a===1?`1 Problem`:`${a} Probleme`}):e.length>0?(0,T.jsx)(y,{art:`bernstein`,children:e.some(Q)?`Startet gerade`:`Stoppt gerade`}):(0,T.jsx)(y,{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 N(e)===`startet`}function $(e){return F(e)===1}function pe(){let e=p(),t=d(),[n,r]=(0,C.useState)(null),[i,c]=(0,C.useState)(null),[u,f]=(0,C.useState)(!1),[m,g]=(0,C.useState)(null);async function v(t){if(!m){g(t.unit);try{let e=await h(`/api/maintenance/restart`,{service:t.unit});e.ok?o(`erfolg`,K(t)):o(`fehler`,`${t.name} ließ sich nicht starten: ${a(e)}`)}catch(e){t.unit===`mission-control-2`&&e instanceof s?o(`info`,`Der Box-Wart startet neu. Die Seite ist gleich wieder da.`):o(`fehler`,e.message)}finally{g(null),e.invalidateQueries({queryKey:[`dienste`]}),e.invalidateQueries({queryKey:[`protokoll`,t.unit]})}}}if(t.isPending)return(0,T.jsx)(_,{text:`Die Dienste werden gelesen …`});if(!t.data)return(0,T.jsx)(_,{fehler:!0,text:`Die Dienste lassen sich gerade nicht lesen: ${t.error?.message??`keine Daten`}`});let y=t.data,b=i?G(i):null,ee=y.speicher_gesamt?`den ${l(y.speicher_gesamt)}`:`dem Arbeitsspeicher`,w=y.kerne?`allen ${y.kerne} Kernen`:`allen Kernen`;return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(S,{titel:`Dienste`,rechts:(0,T.jsx)(Z,{dienste:y.services,stand:t.dataUpdatedAt}),children:[(0,T.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,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Dienste gefunden.`}):(0,T.jsx)(X,{stand:y,gewaehlt:n,startet:m,onProtokoll:e=>r(n===e?null:e),onFrage:e=>{c(e),f(!0)}}),(0,T.jsxs)(`p`,{className:`m-0 text-xs leading-relaxed text-text-3`,children:[`CPU: Anteil an `,w,` der Box, gemessen zwischen zwei Abfragen (alle zehn Sekunden). Speicher: was systemd dem Dienst zurechnet; der Balken zeigt den Anteil an `,ee,` 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,T.jsx)(x,{offen:u&&!!b,titel:b?.titel??``,text:b?.text??``,knopf:b?.knopf??``,gefahr:b?.knopf===`Neu starten`,gesperrt:m!==null,onJa:()=>{f(!1),i&&v(i)},onNein:()=>f(!1)})]}),(0,T.jsx)(A,{})]})}export{pe as DiensteSeite};