Files
mission-control-v2/frontend/dist/assets/Einstellungen-BYXmW-yb.js
T
2026-09-25 18:09:15 +02:00

1 line
33 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,n as r,r as i,t as a}from"./dist-aE7UmubC.js";import{$ as o,At as s,D as c,H as l,Jt as u,R as d,Z as f,_t as p,jt as m,kt as h,n as g,o as _,ot as v,p as y,s as b,tt as x,v as S}from"./abfragen-DKcWnZ8a.js";import{M as C,rt as w}from"./index-BUHDF9RN.js";import{t as T}from"./button-DwYvdWVr.js";import{t as E}from"./Bestaetigen-BemBWZzN.js";var D={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};D.node;var O=r(D),k=i(),A=t(e(),1),j=n(),M=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],N=Array.from({length:48},(e,t)=>`${String(Math.floor(t/2)).padStart(2,`0`)}:${t%2?`30`:`00`}`),P=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function F(e){let t=e?new Date(e):null;return t&&!Number.isNaN(t.getTime())?P.format(t):`–`}function I(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?`${M[e-1]} ${o}–${s}`:`${M[e-1]} ${o} – ${M[i-1]} ${s}`}function L(e){let t=(0,k.c)(6),{titel:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,j.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i||t[4]!==n?(a=(0,j.jsxs)(`section`,{"aria-label":n,className:`flex flex-col gap-3 border-t border-white/[0.06] pt-4 first:border-t-0 first:pt-0`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=n,t[5]=a):a=t[5],a}function R(e){let t=(0,k.c)(22),{titel:n,text:r,farbe:i,children:o}=e,s=i===`box`?`var(--box)`:i===`homelab`?`var(--lab)`:null,c=i===`box`?`text-box-text`:i===`homelab`?`text-lab-text`:`text-foreground`,l=i===`box`?`[--rand:color-mix(in_srgb,var(--box)_28%,transparent)]`:i===`homelab`?`[--rand:color-mix(in_srgb,var(--lab)_28%,transparent)]`:``,u;t[0]===l?u=t[1]:(u=a(`flaeche relative flex min-w-0 flex-col gap-4 overflow-hidden rounded-3xl p-5 sm:p-6`,l),t[0]=l,t[1]=u);let d;t[2]===s?d=t[3]:(d=s&&(0,j.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute -top-40 -left-32 size-[400px] rounded-full`,style:{background:`radial-gradient(closest-side, color-mix(in srgb, ${s} 16%, transparent), transparent)`}}),t[2]=s,t[3]=d);let f;t[4]===c?f=t[5]:(f=a(`text-[19px] leading-tight font-semibold`,c),t[4]=c,t[5]=f);let p;t[6]!==f||t[7]!==n?(p=(0,j.jsx)(`h2`,{className:f,children:n}),t[6]=f,t[7]=n,t[8]=p):p=t[8];let m;t[9]===r?m=t[10]:(m=(0,j.jsx)(`p`,{className:`text-sm text-text-3`,children:r}),t[9]=r,t[10]=m);let h;t[11]!==p||t[12]!==m?(h=(0,j.jsxs)(`div`,{className:`relative flex flex-col gap-1`,children:[p,m]}),t[11]=p,t[12]=m,t[13]=h):h=t[13];let g;t[14]===o?g=t[15]:(g=(0,j.jsx)(`div`,{className:`relative flex min-w-0 flex-col gap-4`,children:o}),t[14]=o,t[15]=g);let _;return t[16]!==u||t[17]!==d||t[18]!==h||t[19]!==g||t[20]!==n?(_=(0,j.jsxs)(`section`,{"aria-label":n,className:u,children:[d,h,g]}),t[16]=u,t[17]=d,t[18]=h,t[19]=g,t[20]=n,t[21]=_):_=t[21],_}function z(e){let t=(0,k.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,j.jsx)(`p`,{className:`text-sm text-bernstein`,children:n}),t[0]=n,t[1]=r),r}function B(e){let t=(0,k.c)(3),{laedt:n,fehler:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,j.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,j.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 V({offen:e}){let t=u(),n=m({queryKey:[`geheimnisse`],queryFn:()=>h(`/api/maintenance/geheimnisse`),enabled:e}),[r,i]=(0,A.useState)(``),[a,o]=(0,A.useState)(!1),[c,l]=(0,A.useState)(!1);async function d(e){if(!a){o(!0),l(!1);try{await s(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),p(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),i(``),t.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){p(`fehler`,e.message)}finally{o(!1)}}}let f=n.data,g;return g=n.isPending?`Wird gelesen …`:f?f.hf_token_gesetzt?`Ist hinterlegt.`:`Fehlt.`:`Lässt sich gerade nicht lesen${n.error?`: ${n.error.message}`:`.`}`,(0,j.jsxs)(L,{titel:`Hugging-Face-Zugang`,children:[(0,j.jsxs)(`p`,{className:`text-sm text-text-2`,"aria-live":`polite`,children:[(0,j.jsx)(`span`,{className:!f&&!n.isPending?`text-rot-text`:void 0,children:g}),` Nötig für gesperrte Modelle und schnellere Downloads.`,f?.hf_token_aus_env?` Er kommt aus der Dienst-Einstellung und lässt sich hier nicht löschen.`:``]}),f?.schreibbar===!1&&(0,j.jsx)(`p`,{className:`text-sm text-bernstein`,children:`Die Box kann den Zugang gerade nicht speichern: Ihre Ablage ist nicht beschreibbar.`}),(0,j.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),r.trim()&&d(r.trim())},children:[(0,j.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,j.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:r,onChange:e=>i(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-cyan/60 focus:bg-white/[0.06]`}),(0,j.jsx)(T,{type:`submit`,disabled:!r.trim()||f?.schreibbar===!1||a,children:a?`Speichert …`:`Speichern`})]}),f?.hf_token_gesetzt&&!f.hf_token_aus_env&&(c?(0,j.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,j.jsx)(T,{variant:`gefahr`,size:`sm`,disabled:a,onClick:()=>d(null),children:`Wirklich löschen?`}),(0,j.jsx)(T,{variant:`ghost`,size:`sm`,onClick:()=>l(!1),children:`Nein`})]}):(0,j.jsx)(T,{variant:`ghost`,size:`sm`,className:`self-start`,disabled:a,onClick:()=>l(!0),children:`Zugang löschen`}))]})}function H(e){let t=(0,k.c)(24),{ziel:n,name:r}=e,i=o(),a=i.data,s=null;if(i.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,j.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Sendet …`}),t[0]=e):e=t[0],s=e}else if(a?.gesendet){let e=a.weg===`hermes`?`über Hermes`:`direkt an die Telegram-Bot-API`,n=a.kennung?`, Kennung ${a.kennung}`:``,r;t[1]!==e||t[2]!==n?(r=(0,j.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(a){let e=a.grund??a.detail??`ohne Angabe eines Grundes.`,n;t[4]===e?n=t[5]:(n=(0,j.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Nicht gesendet: `,e]}),t[4]=e,t[5]=n),s=n}else if(i.error){let e;t[6]===i.error.message?e=t[7]:(e=(0,j.jsx)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:i.error.message}),t[6]=i.error.message,t[7]=e),s=e}let c;t[8]===r?c=t[9]:(c=(0,j.jsx)(`span`,{className:`text-[15px]`,children:r}),t[8]=r,t[9]=c);let l;t[10]!==i||t[11]!==n?(l=()=>i.mutate(n),t[10]=i,t[11]=n,t[12]=l):l=t[12];let u=`Testmeldung von ${r} senden`,d=i.isPending?`Sendet …`:`Test senden`,f;t[13]!==l||t[14]!==u||t[15]!==d||t[16]!==i.isPending?(f=(0,j.jsx)(T,{variant:`outline`,size:`sm`,disabled:i.isPending,onClick:l,"aria-label":u,children:d}),t[13]=l,t[14]=u,t[15]=d,t[16]=i.isPending,t[17]=f):f=t[17];let p;t[18]!==c||t[19]!==f?(p=(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[c,f]}),t[18]=c,t[19]=f,t[20]=p):p=t[20];let m;return t[21]!==s||t[22]!==p?(m=(0,j.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[p,s]}),t[21]=s,t[22]=p,t[23]=m):m=t[23],m}function U(){let e=(0,k.c)(9),t=c().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(G),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,j.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,j.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 l;return e[7]===a?l=e[8]:(l=(0,j.jsxs)(L,{titel:`Telegram`,children:[o,s,a.map(W)]}),e[7]=a,e[8]=l),l}function W(e){return(0,j.jsx)(H,{ziel:e.ziel,name:e.name},e.ziel)}function G(e,t){return Number(e.ziel!==`box`)-Number(t.ziel!==`box`)}function K(e){let t=(0,k.c)(87),{e:n,laedt:r,fehler:i}=e,a=x(),[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(!1);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,j.jsx)(L,{titel:`Update-Zeitfenster`,children:(0,j.jsx)(B,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let u=n.update_fenster,d,f,p,m,h,g,_,v,y,b,S,C,w,D,O,P,R;if(t[3]!==n.schaltbar||t[4]!==o||t[5]!==u.naechster_lauf||t[6]!==u.neustart_fenster||t[7]!==u.tag||t[8]!==u.tag_name||t[9]!==u.timer_aktiv||t[10]!==u.uhrzeit||t[11]!==u.wirksam){R=o??{tag:u.tag,uhrzeit:u.uhrzeit},f=R.tag!==u.tag||R.uhrzeit!==u.uhrzeit;let e=N.includes(R.uhrzeit)?N:[...N,R.uhrzeit].sort();d=L,h=`Update-Zeitfenster`;let r;t[29]===u.naechster_lauf?r=t[30]:(r=u.naechster_lauf?` (nächster Lauf ${F(u.naechster_lauf)})`:``,t[29]=u.naechster_lauf,t[30]=r),t[31]!==u.neustart_fenster||t[32]!==u.tag_name||t[33]!==u.uhrzeit||t[34]!==r?(g=(0,j.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Die Box aktualisiert sich jeden `,u.tag_name,` um `,u.uhrzeit,` Uhr`,r,`. Neu gestartet wird sie danach nur`,` `,u.neustart_fenster,`.`]}),t[31]=u.neustart_fenster,t[32]=u.tag_name,t[33]=u.uhrzeit,t[34]=r,t[35]=g):g=t[35],t[36]!==n.schaltbar||t[37]!==u.timer_aktiv?(_=n.schaltbar&&!u.timer_aktiv&&(0,j.jsx)(z,{children:`Der Update-Timer läuft gerade nicht; er übernimmt das Fenster beim nächsten Start.`}),t[36]=n.schaltbar,t[37]=u.timer_aktiv,t[38]=_):_=t[38],t[39]!==n.schaltbar||t[40]!==u.wirksam?(v=n.schaltbar&&!u.wirksam&&(0,j.jsx)(z,{children:`Der Timer läuft noch nach einem anderen Plan als eingestellt. Einmal speichern gleicht es an.`}),t[39]=n.schaltbar,t[40]=u.wirksam,t[41]=v):v=t[41],P=`flex flex-wrap items-end gap-2`;let i=R.tag,a;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(a=M.map(J),t[42]=a):a=t[42],m=(0,j.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-text-3`,children:[`Tag`,(0,j.jsx)(`select`,{className:`h-11 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-cyan/60 focus:bg-white/[0.06]`,value:i,disabled:!n.schaltbar,"aria-label":`Wochentag`,onChange:e=>s({...R,tag:Number(e.target.value)}),children:a})]}),D=`flex flex-col gap-1 text-xs text-text-3`,O=`Uhrzeit`,p=`h-11 rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] text-foreground outline-none focus:border-cyan/60 focus:bg-white/[0.06]`,y=R.uhrzeit,b=!n.schaltbar,S=`Uhrzeit`,C=e=>s({...R,uhrzeit:e.target.value}),w=e.map(q),t[3]=n.schaltbar,t[4]=o,t[5]=u.naechster_lauf,t[6]=u.neustart_fenster,t[7]=u.tag,t[8]=u.tag_name,t[9]=u.timer_aktiv,t[10]=u.uhrzeit,t[11]=u.wirksam,t[12]=d,t[13]=f,t[14]=p,t[15]=m,t[16]=h,t[17]=g,t[18]=_,t[19]=v,t[20]=y,t[21]=b,t[22]=S,t[23]=C,t[24]=w,t[25]=D,t[26]=O,t[27]=P,t[28]=R}else d=t[12],f=t[13],p=t[14],m=t[15],h=t[16],g=t[17],_=t[18],v=t[19],y=t[20],b=t[21],S=t[22],C=t[23],w=t[24],D=t[25],O=t[26],P=t[27],R=t[28];let V;t[43]!==p||t[44]!==y||t[45]!==b||t[46]!==S||t[47]!==C||t[48]!==w?(V=(0,j.jsx)(`select`,{className:p,value:y,disabled:b,"aria-label":S,onChange:C,children:w}),t[43]=p,t[44]=y,t[45]=b,t[46]=S,t[47]=C,t[48]=w,t[49]=V):V=t[49];let H;t[50]!==V||t[51]!==D||t[52]!==O?(H=(0,j.jsxs)(`label`,{className:D,children:[O,V]}),t[50]=V,t[51]=D,t[52]=O,t[53]=H):H=t[53];let U=!n.schaltbar||a.isPending||!f&&u.wirksam,W;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(W=()=>l(!0),t[54]=W):W=t[54];let G=a.isPending?`Speichert …`:`Speichern`,K;t[55]!==U||t[56]!==G?(K=(0,j.jsx)(T,{disabled:U,onClick:W,children:G}),t[55]=U,t[56]=G,t[57]=K):K=t[57];let Y;t[58]!==m||t[59]!==H||t[60]!==K||t[61]!==P?(Y=(0,j.jsxs)(`div`,{className:P,children:[m,H,K]}),t[58]=m,t[59]=H,t[60]=K,t[61]=P,t[62]=Y):Y=t[62];let X=n.schaltbar?``:` Einstellen lässt es sich nur auf der Box.`,Z;t[63]===X?Z=t[64]:(Z=(0,j.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Am besten nachts nach der Sicherung (03:30) und vor der Morgenmeldung (07:00).`,X]}),t[63]=X,t[64]=Z);let ee;t[65]!==R.tag||t[66]!==R.uhrzeit?(ee=I(R.tag,R.uhrzeit),t[65]=R.tag,t[66]=R.uhrzeit,t[67]=ee):ee=t[67];let te=`Der Update-Lauf startet ab jetzt jeden ${M[R.tag-1]} um ${R.uhrzeit} Uhr. Neu gestartet wird die Box nur ${ee}. Ein Termin, der dadurch schon vorbei ist, wird nicht nachgeholt: Der erste Lauf ist der nächste reguläre.`,ne;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(ne=()=>l(!1),t[68]=ne):ne=t[68];let Q;t[69]!==c||t[70]!==a||t[71]!==R?(Q=()=>{c&&(a.mutate(R,{onSuccess:()=>s(null)}),l(!1))},t[69]=c,t[70]=a,t[71]=R,t[72]=Q):Q=t[72];let $;t[73]!==c||t[74]!==a.isPending||t[75]!==te||t[76]!==Q?($=(0,j.jsx)(E,{offen:c,titel:`Update-Zeitfenster ändern?`,text:te,knopf:`Speichern`,gesperrt:a.isPending,onNein:ne,onJa:Q}),t[73]=c,t[74]=a.isPending,t[75]=te,t[76]=Q,t[77]=$):$=t[77];let re;return t[78]!==d||t[79]!==h||t[80]!==g||t[81]!==_||t[82]!==v||t[83]!==Y||t[84]!==Z||t[85]!==$?(re=(0,j.jsxs)(d,{titel:h,children:[g,_,v,Y,Z,$]}),t[78]=d,t[79]=h,t[80]=g,t[81]=_,t[82]=v,t[83]=Y,t[84]=Z,t[85]=$,t[86]=re):re=t[86],re}function q(e){return(0,j.jsx)(`option`,{value:e,children:e},e)}function J(e,t){return(0,j.jsx)(`option`,{value:t+1,children:e},e)}function Y(e){let t=(0,k.c)(37),{e:n,laedt:r,fehler:i}=e,a=l(),[o,s]=(0,A.useState)(null);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,j.jsx)(L,{titel:`Modell-Radar`,children:(0,j.jsx)(B,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let c=n.radar,u=c.zustand===`an`||c.zustand===`unbekannt`&&c.an,d;t[3]===c.naechster_lauf?d=t[4]:(d=c.naechster_lauf?` (nächster Lauf ${F(c.naechster_lauf)})`:``,t[3]=c.naechster_lauf,t[4]=d);let f=`An. Es sucht jede Nacht ab 00:30 nach besseren Modellen${d}.`,p=c.an?`Eingeschaltet.`:`Ausgeschaltet.`,m;t[5]!==f||t[6]!==p?(m={an:f,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:p},t[5]=f,t[6]=p,t[7]=m):m=t[7];let h=m[c.zustand],g;t[8]===h?g=t[9]:(g=(0,j.jsx)(`p`,{className:`text-sm text-text-2`,children:h}),t[8]=h,t[9]=g);let _;t[10]!==n.schaltbar||t[11]!==c.an||t[12]!==c.wirksam?(_=n.schaltbar&&!c.wirksam&&(0,j.jsxs)(z,{children:[`Eingestellt ist „`,c.an?`an`:`aus`,`“, systemd zeigt etwas anderes. Noch einmal schalten gleicht es an.`]}),t[10]=n.schaltbar,t[11]=c.an,t[12]=c.wirksam,t[13]=_):_=t[13];let v=u?`outline`:`default`,y=!n.schaltbar||a.isPending,b;t[14]===u?b=t[15]:(b=()=>s(!u),t[14]=u,t[15]=b);let x=a.isPending?`Schaltet …`:u?`Ausschalten`:`Einschalten`,S;t[16]!==b||t[17]!==x||t[18]!==v||t[19]!==y?(S=(0,j.jsx)(T,{variant:v,size:`sm`,className:`self-start`,disabled:y,onClick:b,children:x}),t[16]=b,t[17]=x,t[18]=v,t[19]=y,t[20]=S):S=t[20];let C=o!==null,w=o?`Modell-Radar einschalten?`:`Modell-Radar ausschalten?`,D=o?`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.`,O=o?`Einschalten`:`Ausschalten`,M;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>s(null),t[21]=M):M=t[21];let N;t[22]!==o||t[23]!==a?(N=()=>{o!==null&&(a.mutate(o),s(null))},t[22]=o,t[23]=a,t[24]=N):N=t[24];let P;t[25]!==a.isPending||t[26]!==C||t[27]!==w||t[28]!==D||t[29]!==O||t[30]!==N?(P=(0,j.jsx)(E,{offen:C,titel:w,text:D,knopf:O,gesperrt:a.isPending,onNein:M,onJa:N}),t[25]=a.isPending,t[26]=C,t[27]=w,t[28]=D,t[29]=O,t[30]=N,t[31]=P):P=t[31];let I;return t[32]!==S||t[33]!==P||t[34]!==g||t[35]!==_?(I=(0,j.jsxs)(L,{titel:`Modell-Radar`,children:[g,_,S,P]}),t[32]=S,t[33]=P,t[34]=g,t[35]=_,t[36]=I):I=t[36],I}function X(e){let t=(0,k.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,j.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,j.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,j.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,j.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 ${F(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 ${F(r.commit_datum)}`:``,t[12]=r.commit_datum,t[13]=s);let c;t[14]!==a||t[15]!==s?(c=(0,j.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,j.jsxs)(j.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,j.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,j.jsx)(`span`,{className:`text-[15px]`,children:n}),t[20]=n,t[21]=s);let c;return t[22]!==o||t[23]!==s?(c=(0,j.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 Z(e,t){return!e||!t?null:e.startsWith(t)||t.startsWith(e)}function ee(e){let t=(0,k.c)(21),{offen:n}=e,r=c().data,i=!!r?.partner.eingerichtet,[a,o]=f(n,i),s=a.data?.stand?.commit,l=o.data?.stand?.commit,u;t[0]!==s||t[1]!==l?(u=Z(s,l),t[0]=s,t[1]=l,t[2]=u):u=t[2];let d=u,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,j.jsx)(X,{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,j.jsx)(X,{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]===d?v=t[16]:(v=d===!1&&(0,j.jsx)(z,{children:`Die beiden Instanzen laufen mit verschiedenen Ständen. Der nächste Deploy der Box zieht den Homelab-Teil mit.`}),t[15]=d,t[16]=v);let y;return t[17]!==g||t[18]!==_||t[19]!==v?(y=(0,j.jsxs)(L,{titel:`Instanzen`,children:[g,_,v]}),t[17]=g,t[18]=_,t[19]=v,t[20]=y):y=t[20],y}function te(e){let t=(0,k.c)(52),{h:n}=e,r=b(),i=_(),[a,o]=(0,A.useState)(``),[s,c]=(0,A.useState)(!1),[l,u]=(0,A.useState)(null),d=n.arcane,f;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(f={hinterlegt:(0,j.jsx)(C,{art:`gruen`,children:`hinterlegt`}),umgebung:(0,j.jsx)(C,{art:`gruen`,children:`aus der Dienst-Einstellung`}),fehlt:(0,j.jsx)(C,{art:`bernstein`,children:`fehlt`})},t[0]=f):f=t[0];let p=f[d.schluessel],m;t[1]===d.url?m=t[2]:(m=d.url&&(0,j.jsxs)(`a`,{href:d.url,target:`_blank`,rel:`noopener`,className:`ml-auto inline-flex items-center gap-1 text-cyan hover:underline`,children:[`Arcane öffnen `,(0,j.jsx)(w,{className:`size-3.5`,"aria-hidden":!0})]}),t[1]=d.url,t[2]=m);let h;t[3]!==p||t[4]!==m?(h=(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-text-2`,children:[`API-Schlüssel `,p,m]}),t[3]=p,t[4]=m,t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,j.jsx)(`p`,{className:`text-sm text-text-2`,children:`Mit Schlüssel sieht der Orchestrator, welche Docker-Images neuer sind. Anlegen in Arcane unter Einstellungen → API-Schlüssel; Lesen reicht, solange Docker-Updates nur als Probelauf laufen.`}),t[6]=g):g=t[6];let v;t[7]!==d.schluessel||t[8]!==r||t[9]!==a?(v=d.schluessel!==`umgebung`&&(0,j.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),a.trim()&&r.mutate(a.trim(),{onSuccess:()=>o(``)})},children:[(0,j.jsx)(`label`,{htmlFor:`arcane-schluessel`,className:`sr-only`,children:`Arcane-API-Schlüssel`}),(0,j.jsxs)(`span`,{className:`relative min-w-0 flex-1`,children:[(0,j.jsx)(O,{className:`pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-text-3`,"aria-hidden":!0}),(0,j.jsx)(`input`,{id:`arcane-schluessel`,type:`password`,autoComplete:`off`,value:a,onChange:e=>o(e.target.value),placeholder:d.schluessel===`hinterlegt`?`Neuen Schlüssel eintragen …`:`Schlüssel aus Arcane einfügen …`,className:`h-11 w-full rounded-xl border border-white/12 bg-white/[0.04] pr-3 pl-9 text-[15px] outline-none focus:border-lab/60 focus:bg-white/[0.06]`})]}),(0,j.jsx)(T,{type:`submit`,disabled:!a.trim()||r.isPending,children:r.isPending?`Prüft …`:`Prüfen und speichern`})]}),t[7]=d.schluessel,t[8]=r,t[9]=a,t[10]=v):v=t[10];let y;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,j.jsx)(`p`,{className:`text-xs text-text-3`,children:`Der Schlüssel wird vor dem Speichern an Arcane geprüft und nie wieder angezeigt. Er liegt nur im Homelab-Teil.`}),t[11]=y):y=t[11];let x;t[12]!==d.schluessel||t[13]!==s||t[14]!==r?(x=d.schluessel===`hinterlegt`&&(s?(0,j.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,j.jsx)(T,{variant:`gefahr`,size:`sm`,disabled:r.isPending,onClick:()=>{r.mutate(null),c(!1)},children:`Wirklich entfernen?`}),(0,j.jsx)(T,{variant:`ghost`,size:`sm`,onClick:()=>c(!1),children:`Nein`})]}):(0,j.jsx)(T,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>c(!0),children:`Schlüssel entfernen`})),t[12]=d.schluessel,t[13]=s,t[14]=r,t[15]=x):x=t[15];let S;t[16]!==h||t[17]!==v||t[18]!==x?(S=(0,j.jsxs)(L,{titel:`Arcane (Docker)`,children:[h,g,v,y,x]}),t[16]=h,t[17]=v,t[18]=x,t[19]=S):S=t[19];let D=d.echt?`Echt: „Jetzt updaten“ bei Arcane zieht neue Images und startet die Container neu.`:`Probelauf: Arcane zeigt nur, was es tun würde — kein Container wird angefasst.`,M=d.echt_quelle===`umgebung`?` Festgelegt in der Dienst-Einstellung (MC_ARCANE_ECHT).`:``,N;t[20]!==D||t[21]!==M?(N=(0,j.jsxs)(`p`,{className:`text-sm text-text-2`,children:[D,M]}),t[20]=D,t[21]=M,t[22]=N):N=t[22];let P=d.echt?`outline`:`default`,F=d.echt_quelle===`umgebung`||i.isPending||d.schluessel===`fehlt`,I;t[23]===d.echt?I=t[24]:(I=()=>u(!d.echt),t[23]=d.echt,t[24]=I);let R=i.isPending?`Schaltet …`:d.echt?`Zurück auf Probelauf`:`Echt schalten`,z;t[25]!==P||t[26]!==F||t[27]!==I||t[28]!==R?(z=(0,j.jsx)(T,{variant:P,size:`sm`,className:`self-start`,disabled:F,onClick:I,children:R}),t[25]=P,t[26]=F,t[27]=I,t[28]=R,t[29]=z):z=t[29];let B;t[30]===d.schluessel?B=t[31]:(B=d.schluessel===`fehlt`&&(0,j.jsx)(`p`,{className:`text-xs text-text-3`,children:`Erst den Schlüssel eintragen.`}),t[30]=d.schluessel,t[31]=B);let V=l!==null,H=l?`Docker-Updates echt ausführen?`:`Zurück auf Probelauf?`,U=l?`Ab jetzt zieht „Jetzt updaten“ bei Arcane neue Images und startet die betroffenen Container neu. Vorher wird ein Snapshot der VM angelegt, soweit möglich. Das lässt sich hier jederzeit zurückschalten.`:`Docker-Updates zeigen dann wieder nur, was Arcane tun würde.`,W=l?`Echt schalten`:`Probelauf`,G=!!l,K;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(K=()=>u(null),t[32]=K):K=t[32];let q;t[33]!==i||t[34]!==l?(q=()=>{l!==null&&(i.mutate(l),u(null))},t[33]=i,t[34]=l,t[35]=q):q=t[35];let J;t[36]!==i.isPending||t[37]!==V||t[38]!==H||t[39]!==U||t[40]!==W||t[41]!==G||t[42]!==q?(J=(0,j.jsx)(E,{offen:V,titel:H,text:U,knopf:W,gefahr:G,gesperrt:i.isPending,onNein:K,onJa:q}),t[36]=i.isPending,t[37]=V,t[38]=H,t[39]=U,t[40]=W,t[41]=G,t[42]=q,t[43]=J):J=t[43];let Y;t[44]!==N||t[45]!==z||t[46]!==B||t[47]!==J?(Y=(0,j.jsxs)(L,{titel:`Docker-Updates`,children:[N,z,B,J]}),t[44]=N,t[45]=z,t[46]=B,t[47]=J,t[48]=Y):Y=t[48];let X;return t[49]!==Y||t[50]!==S?(X=(0,j.jsxs)(j.Fragment,{children:[S,Y]}),t[49]=Y,t[50]=S,t[51]=X):X=t[51],X}function ne(e){let t=(0,k.c)(44),{h:n}=e,r=g(),[i,o]=(0,A.useState)(``),[s,c]=(0,A.useState)(``),[l,u]=(0,A.useState)(!1),d=n.adguard;if(!d)return null;let f;t[0]!==d.benutzer||t[1]!==d.zugang?(f=d.zugang===`hinterlegt`?(0,j.jsxs)(C,{art:`gruen`,children:[`hinterlegt`,d.benutzer?` · ${d.benutzer}`:``]}):(0,j.jsx)(C,{art:`grau`,children:`keiner`}),t[0]=d.benutzer,t[1]=d.zugang,t[2]=f):f=t[2];let p;t[3]===d.url?p=t[4]:(p=d.url&&(0,j.jsxs)(`a`,{href:d.url,target:`_blank`,rel:`noopener`,className:`ml-auto inline-flex items-center gap-1 text-cyan hover:underline`,children:[`AdGuard öffnen `,(0,j.jsx)(w,{className:`size-3.5`,"aria-hidden":!0})]}),t[3]=d.url,t[4]=p);let m;t[5]!==f||t[6]!==p?(m=(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-text-2`,children:[`Zugang `,f,p]}),t[5]=f,t[6]=p,t[7]=m):m=t[7];let h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,j.jsx)(`p`,{className:`text-sm text-text-2`,children:`Mit einem Zugang zeigt die Kachel von AdGuard, wie viele Anfragen es blockt. Er wird nur zum Lesen der Statistik benutzt — am besten ein eigener Benutzer dafür.`}),t[8]=h):h=t[8];let _;t[9]!==i||t[10]!==s||t[11]!==r?(_=e=>{e.preventDefault(),i.trim()&&s&&r.mutate({benutzer:i.trim(),passwort:s},{onSuccess:()=>{c(``),o(``)}})},t[9]=i,t[10]=s,t[11]=r,t[12]=_):_=t[12];let v;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,j.jsx)(`label`,{htmlFor:`adguard-benutzer`,className:`sr-only`,children:`AdGuard-Benutzer`}),t[13]=v):v=t[13];let y;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>o(e.target.value),t[14]=y):y=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=a(`h-11 w-full rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-lab/60 focus:bg-white/[0.06]`,`min-w-0 flex-1 basis-40`),t[15]=b):b=t[15];let x;t[16]===i?x=t[17]:(x=(0,j.jsx)(`input`,{id:`adguard-benutzer`,autoComplete:`off`,value:i,onChange:y,placeholder:`Benutzer`,className:b}),t[16]=i,t[17]=x);let S;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,j.jsx)(`label`,{htmlFor:`adguard-passwort`,className:`sr-only`,children:`AdGuard-Passwort`}),t[18]=S):S=t[18];let E;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(E=e=>c(e.target.value),t[19]=E):E=t[19];let D;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=a(`h-11 w-full rounded-xl border border-white/12 bg-white/[0.04] px-3 text-[15px] outline-none focus:border-lab/60 focus:bg-white/[0.06]`,`min-w-0 flex-1 basis-40`),t[20]=D):D=t[20];let O;t[21]===s?O=t[22]:(O=(0,j.jsx)(`input`,{id:`adguard-passwort`,type:`password`,autoComplete:`new-password`,value:s,onChange:E,placeholder:`Passwort`,className:D}),t[21]=s,t[22]=O);let M;t[23]!==i||t[24]!==s||t[25]!==r.isPending?(M=!i.trim()||!s||r.isPending,t[23]=i,t[24]=s,t[25]=r.isPending,t[26]=M):M=t[26];let N=r.isPending?`Prüft …`:`Prüfen und speichern`,P;t[27]!==M||t[28]!==N?(P=(0,j.jsx)(T,{type:`submit`,disabled:M,children:N}),t[27]=M,t[28]=N,t[29]=P):P=t[29];let F;t[30]!==O||t[31]!==P||t[32]!==_||t[33]!==x?(F=(0,j.jsxs)(`form`,{className:`flex flex-wrap gap-2`,onSubmit:_,children:[v,x,S,O,P]}),t[30]=O,t[31]=P,t[32]=_,t[33]=x,t[34]=F):F=t[34];let I;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,j.jsx)(`p`,{className:`text-xs text-text-3`,children:`Vor dem Speichern fragt der Homelab-Teil AdGuard einmal damit. Das Passwort wird nie wieder angezeigt und liegt nur im Homelab-Teil.`}),t[35]=I):I=t[35];let R;t[36]!==d.zugang||t[37]!==l||t[38]!==r?(R=d.zugang===`hinterlegt`&&(l?(0,j.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,j.jsx)(T,{variant:`gefahr`,size:`sm`,disabled:r.isPending,onClick:()=>{r.mutate(null),u(!1)},children:`Wirklich entfernen?`}),(0,j.jsx)(T,{variant:`ghost`,size:`sm`,onClick:()=>u(!1),children:`Nein`})]}):(0,j.jsx)(T,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>u(!0),children:`Zugang entfernen`})),t[36]=d.zugang,t[37]=l,t[38]=r,t[39]=R):R=t[39];let z;return t[40]!==F||t[41]!==R||t[42]!==m?(z=(0,j.jsxs)(L,{titel:`AdGuard Home`,children:[m,h,F,I,R]}),t[40]=F,t[41]=R,t[42]=m,t[43]=z):z=t[43],z}function Q(e){let t=(0,k.c)(21),{h:n}=e,r=n.ausfuehrer,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,j.jsx)(`dt`,{className:`text-text-3`,children:`Ausführer`}),t[0]=i):i=t[0];let a=r.verbunden?`text-gruen-text`:`text-rot-text`,o=r.verbunden?`verbunden`:`meldet sich nicht`,s;t[1]===r.zuletzt?s=t[2]:(s=r.zuletzt?` · zuletzt ${v(new Date(r.zuletzt*1e3).toISOString()).toLowerCase()}`:``,t[1]=r.zuletzt,t[2]=s);let c;t[3]!==a||t[4]!==o||t[5]!==s?(c=(0,j.jsxs)(`dd`,{className:a,children:[o,s]}),t[3]=a,t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,j.jsx)(`dt`,{className:`text-text-3`,children:`Modus`}),t[7]=l):l=t[7];let u=r.nur_lesen?`nur lesen — Updates sind gesperrt`:`voll: Snapshots, Sicherungen und Updates`,d;t[8]===u?d=t[9]:(d=(0,j.jsx)(`dd`,{className:`text-text-2`,children:u}),t[8]=u,t[9]=d);let f;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,j.jsx)(`dt`,{className:`text-text-3`,children:`Sicherungen`}),t[10]=f):f=t[10];let p=r.sicherung_speicher?`auf „${r.sicherung_speicher}“ (wo kein Snapshot geht)`:`kein Speicher gefunden`,m;t[11]===p?m=t[12]:(m=(0,j.jsx)(`dd`,{className:`text-text-2`,children:p}),t[11]=p,t[12]=m);let h;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,j.jsx)(`dt`,{className:`text-text-3`,children:`Wartezeit`}),t[13]=h):h=t[13];let g=n.karenz_h>0?`${n.karenz_h} Stunden nach einer Änderung am Update-Skript einer App`:`aus`,_;t[14]===g?_=t[15]:(_=(0,j.jsx)(`dd`,{className:`text-text-2`,children:g}),t[14]=g,t[15]=_);let y;return t[16]!==m||t[17]!==_||t[18]!==c||t[19]!==d?(y=(0,j.jsx)(L,{titel:`Ausführer und Updates`,children:(0,j.jsxs)(`dl`,{className:`grid grid-cols-[auto_minmax(0,1fr)] gap-x-4 gap-y-2 text-sm`,children:[i,c,l,d,f,m,h,_]})}),t[16]=m,t[17]=_,t[18]=c,t[19]=d,t[20]=y):y=t[20],y}function $(){let e=(0,k.c)(8),t=c().data,n=d().data,r=t?.rolle===`homelab`||!!(n?.eingerichtet&&n.erreichbar),i=S(r),a;if(!r){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,j.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht.`}),e[0]=t):t=e[0],a=t}else if(i.data){let t;e[4]===i.data?t=e[5]:(t=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(te,{h:i.data}),(0,j.jsx)(ne,{h:i.data}),(0,j.jsx)(Q,{h:i.data})]}),e[4]=i.data,e[5]=t),a=t}else{let t=i.error?.message,n;e[1]!==i.isPending||e[2]!==t?(n=(0,j.jsx)(B,{laedt:i.isPending,fehler:t}),e[1]=i.isPending,e[2]=t,e[3]=n):n=e[3],a=n}let o;return e[6]===a?o=e[7]:(o=(0,j.jsx)(R,{titel:`Homelab`,farbe:`homelab`,text:`Arcane und Docker, AdGuard, der Ausführer auf dem Proxmox-Host, Rückwege.`,children:a}),e[6]=a,e[7]=o),o}function re(){let e=(0,k.c)(18),t=y(!0),n=t.error?.message,r;e[0]!==t.data||e[1]!==t.isPending||e[2]!==n?(r={e:t.data,laedt:t.isPending,fehler:n},e[0]=t.data,e[1]=t.isPending,e[2]=n,e[3]=r):r=e[3];let i=r,a,o;e[4]===i?(a=e[5],o=e[6]):(a=(0,j.jsx)(K,{...i}),o=(0,j.jsx)(Y,{...i}),e[4]=i,e[5]=a,e[6]=o);let s;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,j.jsx)(V,{offen:!0}),e[7]=s):s=e[7];let c;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,j.jsxs)(L,{titel:`Hermes`,children:[(0,j.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-xl border border-white/12 bg-white/[0.04] px-4 text-[15px] font-semibold hover:border-white/20 hover:bg-white/[0.08]`,children:[(0,j.jsx)(w,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,j.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]}),e[8]=c):c=e[8];let l;e[9]!==a||e[10]!==o?(l=(0,j.jsxs)(R,{titel:`KI-Box`,farbe:`box`,text:`Wann sie sich aktualisiert, das Modell-Radar und Zugänge.`,children:[a,o,s,c]}),e[9]=a,e[10]=o,e[11]=l):l=e[11];let u;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,j.jsx)($,{}),e[12]=u):u=e[12];let d;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,j.jsx)(R,{titel:`Meldungen`,text:`Telegram, Morgenmeldung und was sofort kommt.`,children:(0,j.jsx)(U,{})}),e[13]=d):d=e[13];let f;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,j.jsx)(R,{titel:`Software-Stand`,text:`Welcher Stand auf beiden Instanzen läuft.`,children:(0,j.jsx)(ee,{offen:!0})}),e[14]=f):f=e[14];let p;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,j.jsxs)(`p`,{className:`text-xs text-text-3 xl:col-span-2`,children:[`Logos der Dienste: `,(0,j.jsx)(`a`,{href:`https://selfh.st/icons`,target:`_blank`,rel:`noopener`,className:`underline-offset-4 hover:underline`,children:`selfh.st/icons`}),`, Lizenz CC BY 4.0. Die Marken gehören ihren Inhabern und dienen hier nur dem Wiedererkennen.`]}),e[15]=p):p=e[15];let m;return e[16]===l?m=e[17]:(m=(0,j.jsxs)(`div`,{className:`grid gap-5 md:gap-6 xl:grid-cols-2`,children:[l,u,d,f,p]}),e[16]=l,e[17]=m),m}export{re as EinstellungenSeite};