Files
mission-control-v2/frontend/dist/assets/Einstellungen-CC0WNn2p.js
T
HitonabiandClaude Opus 5.5 c08a144006 homelab: Wächter und Geräteliste sehen volle Gastplatten (AdGuard stand bei 100 %)
Der Ausfuehrer schickt die Belegung der rootfs laufender Container mit; ab 85 % gelb, ab 95 % rot, in der
Geraeteliste als eigene Spalte und auf der Lampe des Geraets. Anlass: AdGuard (2 GB) war voll, das
Abfrageprotokoll schrieb nicht mehr und die Paketsuche scheiterte, ohne dass es eine Anzeige sagte.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 21:00:44 +02:00

1 line
19 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{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{Ct as o,E as s,J as c,K as l,M as u,St as d,U as f,X as p,_t as m,ht as h,mt as g,ot as _}from"./index-BAH01Yfc.js";import{a as v,i as y,n as b,r as x,t as S}from"./sheet-CKp82pOA.js";import{t as C}from"./Bestaetigen-CE_3b0PK.js";var w=r(),T=n(a(),1),E=e(),D=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],O=Array.from({length:48},(e,t)=>`${String(Math.floor(t/2)).padStart(2,`0`)}:${t%2?`30`:`00`}`),k=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function A(e){let t=e?new Date(e):null;return t&&!Number.isNaN(t.getTime())?k.format(t):`–`}function j(e,t){let n=Number(t.slice(0,2)),r=n*60+179,i=e;r>=1440&&(r-=1440,i=e%7+1);let a=e=>String(e).padStart(2,`0`),o=`${a(n)}:00`,s=`${a(Math.floor(r/60))}:${a(r%60)}`;return i===e?`${D[e-1]} ${o}–${s}`:`${D[e-1]} ${o} – ${D[i-1]} ${s}`}function M(e){let n=(0,w.c)(9),{titel:r,children:i,zuletzt:a}=e,o=a&&`pb-4`,s;n[0]===o?s=n[1]:(s=t(`flex flex-col gap-3 border-t border-linie px-4 pt-4`,o),n[0]=o,n[1]=s);let c;n[2]===r?c=n[3]:(c=(0,E.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:r}),n[2]=r,n[3]=c);let l;return n[4]!==i||n[5]!==s||n[6]!==c||n[7]!==r?(l=(0,E.jsxs)(`section`,{"aria-label":r,className:s,children:[c,i]}),n[4]=i,n[5]=s,n[6]=c,n[7]=r,n[8]=l):l=n[8],l}function N(e){let t=(0,w.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,E.jsx)(`p`,{className:`text-sm text-bernstein`,children:n}),t[0]=n,t[1]=r),r}function ee(e){let t=(0,w.c)(3),{laedt:n,fehler:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],e}let i=r?`: ${r}`:`.`,a;return t[1]===i?a=t[2]:(a=(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Lässt sich gerade nicht lesen`,i]}),t[1]=i,t[2]=a),a}function P({offen:e}){let t=o(),n=d({queryKey:[`geheimnisse`],queryFn:()=>g(`/api/maintenance/geheimnisse`),enabled:e}),[r,a]=(0,T.useState)(``),[s,c]=(0,T.useState)(!1),[l,u]=(0,T.useState)(!1);async function f(e){if(!s){c(!0),u(!1);try{await h(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),_(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),a(``),t.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){_(`fehler`,e.message)}finally{c(!1)}}}let p=n.data,m;return m=n.isPending?`Wird gelesen …`:p?p.hf_token_gesetzt?`Ist hinterlegt.`:`Fehlt.`:`Lässt sich gerade nicht lesen${n.error?`: ${n.error.message}`:`.`}`,(0,E.jsxs)(M,{titel:`Hugging-Face-Zugang`,children:[(0,E.jsxs)(`p`,{className:`text-sm text-text-2`,"aria-live":`polite`,children:[(0,E.jsx)(`span`,{className:!p&&!n.isPending?`text-rot-text`:void 0,children:m}),` Nötig für gesperrte Modelle und schnellere Downloads.`,p?.hf_token_aus_env?` Er kommt aus der Dienst-Einstellung und lässt sich hier nicht löschen.`:``]}),p?.schreibbar===!1&&(0,E.jsx)(`p`,{className:`text-sm text-bernstein`,children:`Die Box kann den Zugang gerade nicht speichern: Ihre Ablage ist nicht beschreibbar.`}),(0,E.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),r.trim()&&f(r.trim())},children:[(0,E.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,E.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:r,onChange:e=>a(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),(0,E.jsx)(i,{type:`submit`,disabled:!r.trim()||p?.schreibbar===!1||s,children:s?`Speichert …`:`Speichern`})]}),p?.hf_token_gesetzt&&!p.hf_token_aus_env&&(l?(0,E.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,E.jsx)(i,{variant:`gefahr`,size:`sm`,disabled:s,onClick:()=>f(null),children:`Wirklich löschen?`}),(0,E.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>u(!1),children:`Nein`})]}):(0,E.jsx)(i,{variant:`ghost`,size:`sm`,className:`self-start`,disabled:s,onClick:()=>u(!0),children:`Zugang löschen`}))]})}function F(e){let t=(0,w.c)(24),{ziel:n,name:r}=e,a=c(),o=a.data,s=null;if(a.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Sendet …`}),t[0]=e):e=t[0],s=e}else if(o?.gesendet){let e=o.weg===`hermes`?`über Hermes`:`direkt an die Telegram-Bot-API`,n=o.kennung?`, Kennung ${o.kennung}`:``,r;t[1]!==e||t[2]!==n?(r=(0,E.jsxs)(`p`,{role:`status`,className:`text-sm text-gruen`,children:[`Gesendet `,e,n,`. Schau in Telegram nach.`]}),t[1]=e,t[2]=n,t[3]=r):r=t[3],s=r}else if(o){let e=o.grund??o.detail??`ohne Angabe eines Grundes.`,n;t[4]===e?n=t[5]:(n=(0,E.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Nicht gesendet: `,e]}),t[4]=e,t[5]=n),s=n}else if(a.error){let e;t[6]===a.error.message?e=t[7]:(e=(0,E.jsx)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:a.error.message}),t[6]=a.error.message,t[7]=e),s=e}let l;t[8]===r?l=t[9]:(l=(0,E.jsx)(`span`,{className:`text-[15px]`,children:r}),t[8]=r,t[9]=l);let u;t[10]!==a||t[11]!==n?(u=()=>a.mutate(n),t[10]=a,t[11]=n,t[12]=u):u=t[12];let d=`Testmeldung von ${r} senden`,f=a.isPending?`Sendet …`:`Test senden`,p;t[13]!==u||t[14]!==d||t[15]!==f||t[16]!==a.isPending?(p=(0,E.jsx)(i,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:u,"aria-label":d,children:f}),t[13]=u,t[14]=d,t[15]=f,t[16]=a.isPending,t[17]=p):p=t[17];let m;t[18]!==l||t[19]!==p?(m=(0,E.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[l,p]}),t[18]=l,t[19]=p,t[20]=m):m=t[20];let h;return t[21]!==s||t[22]!==m?(h=(0,E.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[m,s]}),t[21]=s,t[22]=m,t[23]=h):h=t[23],h}function I(){let e=(0,w.c)(9),t=u().data,n=t?.rolle??`box`,r=n===`box`?`homelab`:`box`,i=t?.instanz??(n===`box`?`Box-Wart`:`Homelab`),a;e[0]!==r||e[1]!==n||e[2]!==t||e[3]!==i?(a=[{ziel:n,name:i}],t?.partner.eingerichtet&&a.push({ziel:r,name:t.partner.name}),a.sort(R),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=a):a=e[4];let o,s;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Dringende Hinweise gehen zusätzlich per Telegram raus, alles andere bleibt hier; was nachts anfällt, kommt um 07:00 als eine Morgenmeldung. Einfache Probleme wie einen abgestürzten Dienst behebt der Wächter selbst und schreibt es in den Verlauf.`}),s=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Test schickt eine kurze Meldung über den echten Meldeweg, als dringend, damit sie auch nachts sofort kommt.`}),e[5]=o,e[6]=s):(o=e[5],s=e[6]);let c;return e[7]===a?c=e[8]:(c=(0,E.jsxs)(M,{titel:`Meldungen`,children:[o,s,a.map(L)]}),e[7]=a,e[8]=c),c}function L(e){return(0,E.jsx)(F,{ziel:e.ziel,name:e.name},e.ziel)}function R(e,t){return Number(e.ziel!==`box`)-Number(t.ziel!==`box`)}function z(e){let t=(0,w.c)(87),{e:n,laedt:r,fehler:a}=e,o=p(),[s,c]=(0,T.useState)(null),[l,u]=(0,T.useState)(!1);if(!n){let e;return t[0]!==a||t[1]!==r?(e=(0,E.jsx)(M,{titel:`Update-Zeitfenster`,children:(0,E.jsx)(ee,{laedt:r,fehler:a})}),t[0]=a,t[1]=r,t[2]=e):e=t[2],e}let d=n.update_fenster,f,m,h,g,_,v,y,b,x,S,k,P,F,I,L,R,z;if(t[3]!==n.schaltbar||t[4]!==s||t[5]!==d.naechster_lauf||t[6]!==d.neustart_fenster||t[7]!==d.tag||t[8]!==d.tag_name||t[9]!==d.timer_aktiv||t[10]!==d.uhrzeit||t[11]!==d.wirksam){z=s??{tag:d.tag,uhrzeit:d.uhrzeit},m=z.tag!==d.tag||z.uhrzeit!==d.uhrzeit;let e=O.includes(z.uhrzeit)?O:[...O,z.uhrzeit].sort();f=M,_=`Update-Zeitfenster`;let r;t[29]===d.naechster_lauf?r=t[30]:(r=d.naechster_lauf?` (nächster Lauf ${A(d.naechster_lauf)})`:``,t[29]=d.naechster_lauf,t[30]=r),t[31]!==d.neustart_fenster||t[32]!==d.tag_name||t[33]!==d.uhrzeit||t[34]!==r?(v=(0,E.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Die Box aktualisiert sich jeden `,d.tag_name,` um `,d.uhrzeit,` Uhr`,r,`. Neu gestartet wird sie danach nur`,` `,d.neustart_fenster,`.`]}),t[31]=d.neustart_fenster,t[32]=d.tag_name,t[33]=d.uhrzeit,t[34]=r,t[35]=v):v=t[35],t[36]!==n.schaltbar||t[37]!==d.timer_aktiv?(y=n.schaltbar&&!d.timer_aktiv&&(0,E.jsx)(N,{children:`Der Update-Timer läuft gerade nicht; er übernimmt das Fenster beim nächsten Start.`}),t[36]=n.schaltbar,t[37]=d.timer_aktiv,t[38]=y):y=t[38],t[39]!==n.schaltbar||t[40]!==d.wirksam?(b=n.schaltbar&&!d.wirksam&&(0,E.jsx)(N,{children:`Der Timer läuft noch nach einem anderen Plan als eingestellt. Einmal speichern gleicht es an.`}),t[39]=n.schaltbar,t[40]=d.wirksam,t[41]=b):b=t[41],R=`flex flex-wrap items-end gap-2`;let i=z.tag,a;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(a=D.map(ne),t[42]=a):a=t[42],g=(0,E.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-text-3`,children:[`Tag`,(0,E.jsx)(`select`,{className:`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,value:i,disabled:!n.schaltbar,"aria-label":`Wochentag`,onChange:e=>c({...z,tag:Number(e.target.value)}),children:a})]}),I=`flex flex-col gap-1 text-xs text-text-3`,L=`Uhrzeit`,h=`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,x=z.uhrzeit,S=!n.schaltbar,k=`Uhrzeit`,P=e=>c({...z,uhrzeit:e.target.value}),F=e.map(te),t[3]=n.schaltbar,t[4]=s,t[5]=d.naechster_lauf,t[6]=d.neustart_fenster,t[7]=d.tag,t[8]=d.tag_name,t[9]=d.timer_aktiv,t[10]=d.uhrzeit,t[11]=d.wirksam,t[12]=f,t[13]=m,t[14]=h,t[15]=g,t[16]=_,t[17]=v,t[18]=y,t[19]=b,t[20]=x,t[21]=S,t[22]=k,t[23]=P,t[24]=F,t[25]=I,t[26]=L,t[27]=R,t[28]=z}else f=t[12],m=t[13],h=t[14],g=t[15],_=t[16],v=t[17],y=t[18],b=t[19],x=t[20],S=t[21],k=t[22],P=t[23],F=t[24],I=t[25],L=t[26],R=t[27],z=t[28];let B;t[43]!==h||t[44]!==x||t[45]!==S||t[46]!==k||t[47]!==P||t[48]!==F?(B=(0,E.jsx)(`select`,{className:h,value:x,disabled:S,"aria-label":k,onChange:P,children:F}),t[43]=h,t[44]=x,t[45]=S,t[46]=k,t[47]=P,t[48]=F,t[49]=B):B=t[49];let V;t[50]!==B||t[51]!==I||t[52]!==L?(V=(0,E.jsxs)(`label`,{className:I,children:[L,B]}),t[50]=B,t[51]=I,t[52]=L,t[53]=V):V=t[53];let H=!n.schaltbar||o.isPending||!m&&d.wirksam,U;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>u(!0),t[54]=U):U=t[54];let W=o.isPending?`Speichert …`:`Speichern`,G;t[55]!==H||t[56]!==W?(G=(0,E.jsx)(i,{disabled:H,onClick:U,children:W}),t[55]=H,t[56]=W,t[57]=G):G=t[57];let K;t[58]!==g||t[59]!==V||t[60]!==G||t[61]!==R?(K=(0,E.jsxs)(`div`,{className:R,children:[g,V,G]}),t[58]=g,t[59]=V,t[60]=G,t[61]=R,t[62]=K):K=t[62];let q=n.schaltbar?``:` Einstellen lässt es sich nur auf der Box.`,J;t[63]===q?J=t[64]:(J=(0,E.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Am besten nachts nach der Sicherung (03:30) und vor der Morgenmeldung (07:00).`,q]}),t[63]=q,t[64]=J);let Y;t[65]!==z.tag||t[66]!==z.uhrzeit?(Y=j(z.tag,z.uhrzeit),t[65]=z.tag,t[66]=z.uhrzeit,t[67]=Y):Y=t[67];let re=`Der Update-Lauf startet ab jetzt jeden ${D[z.tag-1]} um ${z.uhrzeit} Uhr. Neu gestartet wird die Box nur ${Y}. Ein Termin, der dadurch schon vorbei ist, wird nicht nachgeholt: Der erste Lauf ist der nächste reguläre.`,X;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(X=()=>u(!1),t[68]=X):X=t[68];let Z;t[69]!==l||t[70]!==o||t[71]!==z?(Z=()=>{l&&(o.mutate(z,{onSuccess:()=>c(null)}),u(!1))},t[69]=l,t[70]=o,t[71]=z,t[72]=Z):Z=t[72];let Q;t[73]!==l||t[74]!==o.isPending||t[75]!==re||t[76]!==Z?(Q=(0,E.jsx)(C,{offen:l,titel:`Update-Zeitfenster ändern?`,text:re,knopf:`Speichern`,gesperrt:o.isPending,onNein:X,onJa:Z}),t[73]=l,t[74]=o.isPending,t[75]=re,t[76]=Z,t[77]=Q):Q=t[77];let $;return t[78]!==f||t[79]!==_||t[80]!==v||t[81]!==y||t[82]!==b||t[83]!==K||t[84]!==J||t[85]!==Q?($=(0,E.jsxs)(f,{titel:_,children:[v,y,b,K,J,Q]}),t[78]=f,t[79]=_,t[80]=v,t[81]=y,t[82]=b,t[83]=K,t[84]=J,t[85]=Q,t[86]=$):$=t[86],$}function te(e){return(0,E.jsx)(`option`,{value:e,children:e},e)}function ne(e,t){return(0,E.jsx)(`option`,{value:t+1,children:e},e)}function B(e){let t=(0,w.c)(37),{e:n,laedt:r,fehler:a}=e,o=f(),[s,c]=(0,T.useState)(null);if(!n){let e;return t[0]!==a||t[1]!==r?(e=(0,E.jsx)(M,{titel:`Modell-Radar`,children:(0,E.jsx)(ee,{laedt:r,fehler:a})}),t[0]=a,t[1]=r,t[2]=e):e=t[2],e}let l=n.radar,u=l.zustand===`an`||l.zustand===`unbekannt`&&l.an,d;t[3]===l.naechster_lauf?d=t[4]:(d=l.naechster_lauf?` (nächster Lauf ${A(l.naechster_lauf)})`:``,t[3]=l.naechster_lauf,t[4]=d);let p=`An. Es sucht jede Nacht ab 00:30 nach besseren Modellen${d}.`,m=l.an?`Eingeschaltet.`:`Ausgeschaltet.`,h;t[5]!==p||t[6]!==m?(h={an:p,schlaeft:`Schläft. Es sucht und testet keine Modelle, bis du es wieder einschaltest.`,aus:`Gestoppt, steht aber noch im Autostart: Nach einem Neustart der Box liefe es wieder.`,unbekannt:m},t[5]=p,t[6]=m,t[7]=h):h=t[7];let g=h[l.zustand],_;t[8]===g?_=t[9]:(_=(0,E.jsx)(`p`,{className:`text-sm text-text-2`,children:g}),t[8]=g,t[9]=_);let v;t[10]!==n.schaltbar||t[11]!==l.an||t[12]!==l.wirksam?(v=n.schaltbar&&!l.wirksam&&(0,E.jsxs)(N,{children:[`Eingestellt ist „`,l.an?`an`:`aus`,`“, systemd zeigt etwas anderes. Noch einmal schalten gleicht es an.`]}),t[10]=n.schaltbar,t[11]=l.an,t[12]=l.wirksam,t[13]=v):v=t[13];let y=u?`outline`:`default`,b=!n.schaltbar||o.isPending,x;t[14]===u?x=t[15]:(x=()=>c(!u),t[14]=u,t[15]=x);let S=o.isPending?`Schaltet …`:u?`Ausschalten`:`Einschalten`,D;t[16]!==x||t[17]!==S||t[18]!==y||t[19]!==b?(D=(0,E.jsx)(i,{variant:y,size:`sm`,className:`self-start`,disabled:b,onClick:x,children:S}),t[16]=x,t[17]=S,t[18]=y,t[19]=b,t[20]=D):D=t[20];let O=s!==null,k=s?`Modell-Radar einschalten?`:`Modell-Radar ausschalten?`,j=s?`Das Radar sucht ab heute Nacht um 00:30 wieder nach besseren Modellen und testet höchstens eines pro Woche. Ein verpasster Lauf wird nicht nachgeholt, tagsüber lädt es also nichts.`:`Das Radar sucht und testet dann keine neuen Modelle mehr, bis du es wieder einschaltest. Ein Nachttest, der gerade läuft, endet noch. Auch ein Deploy schaltet es nicht wieder ein.`,P=s?`Einschalten`:`Ausschalten`,F;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>c(null),t[21]=F):F=t[21];let I;t[22]!==s||t[23]!==o?(I=()=>{s!==null&&(o.mutate(s),c(null))},t[22]=s,t[23]=o,t[24]=I):I=t[24];let L;t[25]!==o.isPending||t[26]!==O||t[27]!==k||t[28]!==j||t[29]!==P||t[30]!==I?(L=(0,E.jsx)(C,{offen:O,titel:k,text:j,knopf:P,gesperrt:o.isPending,onNein:F,onJa:I}),t[25]=o.isPending,t[26]=O,t[27]=k,t[28]=j,t[29]=P,t[30]=I,t[31]=L):L=t[31];let R;return t[32]!==D||t[33]!==L||t[34]!==_||t[35]!==v?(R=(0,E.jsxs)(M,{titel:`Modell-Radar`,children:[_,v,D,L]}),t[32]=D,t[33]=L,t[34]=_,t[35]=v,t[36]=R):R=t[36],R}function V(e){let t=(0,w.c)(25),{name:n,stand:r,laedt:i,fehler:a}=e,o;if(i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`span`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],o=e}else if(a){let e;t[1]===a?e=t[2]:(e=(0,E.jsxs)(`span`,{className:`text-sm text-rot-text`,children:[`Nicht lesbar: `,a]}),t[1]=a,t[2]=e),o=e}else if(r?.commit){let e;t[4]===r.commit?e=t[5]:(e=(0,E.jsx)(`span`,{className:`ziffern text-foreground`,children:r.commit}),t[4]=r.commit,t[5]=e);let n=r.betreff?` · ${r.betreff}`:``,i;t[6]!==e||t[7]!==n?(i=(0,E.jsxs)(`span`,{className:`text-sm text-text-2`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=i):i=t[8];let a;t[9]!==r.deploy_zeit||t[10]!==r.quelle?(a=r.quelle===`deploy`?`Live seit ${A(r.deploy_zeit)}`:`Aus git gelesen, ohne Deploy`,t[9]=r.deploy_zeit,t[10]=r.quelle,t[11]=a):a=t[11];let s;t[12]===r.commit_datum?s=t[13]:(s=r.commit_datum?` · Commit vom ${A(r.commit_datum)}`:``,t[12]=r.commit_datum,t[13]=s);let c;t[14]!==a||t[15]!==s?(c=(0,E.jsxs)(`span`,{className:`text-xs text-text-3`,children:[a,s]}),t[14]=a,t[15]=s,t[16]=c):c=t[16];let l;t[17]!==i||t[18]!==c?(l=(0,E.jsxs)(E.Fragment,{children:[i,c]}),t[17]=i,t[18]=c,t[19]=l):l=t[19],o=l}else{let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,E.jsx)(`span`,{className:`text-sm text-text-2`,children:`Unbekannt: keine Stand-Datei und kein git.`}),t[3]=e):e=t[3],o=e}let s;t[20]===n?s=t[21]:(s=(0,E.jsx)(`span`,{className:`text-[15px]`,children:n}),t[20]=n,t[21]=s);let c;return t[22]!==o||t[23]!==s?(c=(0,E.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[s,o]}),t[22]=o,t[23]=s,t[24]=c):c=t[24],c}function H(e,t){return!e||!t?null:e.startsWith(t)||t.startsWith(e)}function U(e){let t=(0,w.c)(21),{offen:n}=e,r=u().data,i=!!r?.partner.eingerichtet,[a,o]=l(n,i),s=a.data?.stand?.commit,c=o.data?.stand?.commit,d;t[0]!==s||t[1]!==c?(d=H(s,c),t[0]=s,t[1]=c,t[2]=d):d=t[2];let f=d,p=a.data?.instanz??r?.instanz??`Diese Instanz`,m=a.data?.stand,h=a.error?.message,g;t[3]!==a.isPending||t[4]!==p||t[5]!==m||t[6]!==h?(g=(0,E.jsx)(V,{name:p,stand:m,laedt:a.isPending,fehler:h}),t[3]=a.isPending,t[4]=p,t[5]=m,t[6]=h,t[7]=g):g=t[7];let _;t[8]!==r?.partner||t[9]!==o.data?.instanz||t[10]!==o.data?.stand||t[11]!==o.error?.message||t[12]!==o.isPending||t[13]!==i?(_=i&&(0,E.jsx)(V,{name:o.data?.instanz??r?.partner.name??`Partner`,stand:o.data?.stand,laedt:o.isPending,fehler:o.error?.message}),t[8]=r?.partner,t[9]=o.data?.instanz,t[10]=o.data?.stand,t[11]=o.error?.message,t[12]=o.isPending,t[13]=i,t[14]=_):_=t[14];let v;t[15]===f?v=t[16]:(v=f===!1&&(0,E.jsx)(N,{children:`Die beiden Instanzen laufen mit verschiedenen Ständen. Der nächste Deploy der Box zieht den Homelab-Teil mit.`}),t[15]=f,t[16]=v);let y;return t[17]!==g||t[18]!==_||t[19]!==v?(y=(0,E.jsxs)(M,{titel:`Software-Stand`,children:[g,_,v]}),t[17]=g,t[18]=_,t[19]=v,t[20]=y):y=t[20],y}function W(e){let t=(0,w.c)(25),{offen:n,onSchliessen:r}=e,i=s(n),a=i.error?.message,o;t[0]!==i.data||t[1]!==i.isPending||t[2]!==a?(o={e:i.data,laedt:i.isPending,fehler:a},t[0]=i.data,t[1]=i.isPending,t[2]=a,t[3]=o):o=t[3];let c=o,l;t[4]===r?l=t[5]:(l=e=>!e&&r(),t[4]=r,t[5]=l);let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,E.jsxs)(y,{children:[(0,E.jsx)(v,{className:`schild text-lg`,children:`Einstellungen`}),(0,E.jsx)(x,{className:`text-text-2`,children:`Was die Box sich merkt und wann sie was tut.`})]}),t[6]=u):u=t[6];let d;t[7]===n?d=t[8]:(d=(0,E.jsx)(P,{offen:n}),t[7]=n,t[8]=d);let f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,E.jsx)(I,{}),t[9]=f):f=t[9];let p,h;t[10]===c?(p=t[11],h=t[12]):(p=(0,E.jsx)(z,{...c}),h=(0,E.jsx)(B,{...c}),t[10]=c,t[11]=p,t[12]=h);let g;t[13]===n?g=t[14]:(g=(0,E.jsx)(U,{offen:n}),t[13]=n,t[14]=g);let _;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,E.jsxs)(M,{titel:`Hermes`,zuletzt:!0,children:[(0,E.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-lg border border-linie-stark bg-erhaben px-4 text-[15px] hover:border-text-3`,children:[(0,E.jsx)(m,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,E.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]}),t[15]=_):_=t[15];let C;t[16]!==d||t[17]!==p||t[18]!==h||t[19]!==g?(C=(0,E.jsxs)(b,{side:`right`,className:`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-lg`,children:[u,d,f,p,h,g,_]}),t[16]=d,t[17]=p,t[18]=h,t[19]=g,t[20]=C):C=t[20];let T;return t[21]!==n||t[22]!==C||t[23]!==l?(T=(0,E.jsx)(S,{open:n,onOpenChange:l,children:C}),t[21]=n,t[22]=C,t[23]=l,t[24]=T):T=t[24],T}export{W as Einstellungen};