Files
mission-control-v2/frontend/dist/assets/Updates-D0zL-T1t.js
T
HitonabiandClaude Opus 5.5 75c6037431 Später · 20 Konfig-Sicherung ins private Gitea-Repo, Geheimnisse geschwärzt
- kern/schwaerzen.py + dieselben Regeln im Ausführer (Test vergleicht beide): private Schlüssel, Werte hinter
  password/secret/token/key…, Passwort-Hashes, htpasswd, Zugangsdaten in Adressen, Authorization-Kopfzeilen,
  Token-Formate, lange Hex-Ketten
- Ausführer: sammelt Proxmox (Gäste, Speicher, Aufträge, Netz), AdGuard, NPMplus (ohne tls/), schwärzt auf dem Host,
  sendet alle 6 h und auf Abruf (Aktion konfig_senden) an POST /api/homelab/ausfuehrer/konfig
- Homelab-Teil: GET /api/homelab/konfig (frisch=1), dazu Compose und .env der Arcane-Projekte, geschwärzt
- KI-Box: services/konfig_sicherung.py legt das Repo beim ersten Lauf privat an, Arbeitskopie je Lauf auf Gitea-Stand,
  Commit nur bei Änderungen; Timer täglich 02:30, Knopf „Jetzt sichern“ unter Einstellungen → Homelab
- Totmannschalter und Wächter kennen den Timer; Doku

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 14:23:19 +02:00

2 lines
21 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{P as a,bt as o,ct as s,dt as c,g as l,h as u,it as d,j as f,mt as p,pt as ee,xt as m,zt as h}from"./abfragen-CLTLeU-R.js";import{t as g}from"./chevron-right-DF8ikrVh.js";import{t as te}from"./button-BHVKhtQ6.js";import{H as _,R as v,U as y,h as b,m as x,z as S}from"./index-hnnYWPzT.js";import{c as C,i as w,n as ne,o as re,t as T}from"./Auftraege-pD8-zIac.js";var E=r(),D=t(e(),1),O=n(),k=[{id:`os`,name:`Betriebssystem`},{id:`engine`,name:`Motor (llama.cpp)`},{id:`swap`,name:`llama-swap`},{id:`hermes`,name:`Hermes`}],A={os:`Die Ubuntu-Pakete werden eingespielt, danach prüft die Box, ob die Modelle noch antworten. Das kann einige Minuten dauern.`,engine:`Der Motor wird ersetzt, llama-swap startet dafür neu und die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,swap:`llama-swap wird ersetzt und startet neu, die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,hermes:`Vorher wird gesichert. Dann wird Hermes aktualisiert und startet neu — Lucy ist dabei ein paar Minuten nicht erreichbar.`};function ie(e){let t=(0,E.c)(7),{breit:n}=e,r=n===void 0?`w-16`:n,a;t[0]===r?a=t[1]:(a=i(`inline-block h-3.5 rounded bg-linie motion-safe:animate-pulse`,r),t[0]=r,t[1]=a);let o;t[2]===a?o=t[3]:(o=(0,O.jsx)(`span`,{"aria-hidden":!0,className:a}),t[2]=a,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,O.jsx)(`span`,{className:`sr-only`,children:`wird geprüft`}),t[4]=s):s=t[4];let c;return t[5]===o?c=t[6]:(c=(0,O.jsxs)(`span`,{className:`inline-flex items-center`,children:[o,s]}),t[5]=o,t[6]=c),c}function ae(e){let t=(0,E.c)(13),{text:n}=e,[r,a]=(0,D.useState)(!1),o;t[0]===n?o=t[1]:(o=n.split(`
`).length>3||n.length>240,t[0]=n,t[1]=o);let s=o,c=s&&!r&&`line-clamp-3`,l;t[2]===c?l=t[3]:(l=i(`m-0 whitespace-pre-line`,c),t[2]=c,t[3]=l);let u;t[4]!==l||t[5]!==n?(u=(0,O.jsx)(`p`,{className:l,children:n}),t[4]=l,t[5]=n,t[6]=u):u=t[6];let d;t[7]!==s||t[8]!==r?(d=s&&(0,O.jsx)(`button`,{type:`button`,"aria-expanded":r,onClick:()=>a(!r),className:`-mb-2 inline-flex h-11 items-center text-sm text-cyan-text hover:underline`,children:r?`Weniger zeigen`:`Ganze Zusammenfassung zeigen`}),t[7]=s,t[8]=r,t[9]=d):d=t[9];let f;return t[10]!==u||t[11]!==d?(f=(0,O.jsxs)(`div`,{className:`flex flex-col items-start`,children:[u,d]}),t[10]=u,t[11]=d,t[12]=f):f=t[12],f}function oe(e){let t=(0,E.c)(13),{d:n}=e,r;t[0]===n.packages?r=t[1]:(r=n.packages??[],t[0]=n.packages,t[1]=r);let i=r,a,o;if(t[2]!==n.held_back||t[3]!==i){o=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.held_back??[];if(i.length===0&&e.length===0){o=null;break bb0}let r;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,O.jsx)(g,{"aria-hidden":!0,className:`size-4 transition-transform group-open:rotate-90`}),t[6]=r):r=t[6];let s=i.length===0?`Was Ubuntu zurückhält (${e.length})`:i.length===1?`Das Paket ansehen`:`Alle ${i.length} Pakete ansehen`,c;t[7]===s?c=t[8]:(c=(0,O.jsxs)(`summary`,{className:`inline-flex h-11 cursor-pointer items-center gap-1 text-sm text-cyan-text hover:underline`,children:[r,s]}),t[7]=s,t[8]=c);let l;t[9]===i?l=t[10]:(l=i.map(M),t[9]=i,t[10]=l);let u;t[11]===l?u=t[12]:(u=(0,O.jsx)(`ul`,{className:`ziffern m-0 flex max-h-64 list-none flex-col gap-1 overflow-auto rounded-xl bg-black/30 ring-1 ring-white/[0.07] ring-inset p-2.5 text-xs`,children:l}),t[11]=l,t[12]=u),a=(0,O.jsxs)(`details`,{className:`group`,children:[c,u,e.length>0&&(0,O.jsxs)(`p`,{className:`mt-2 text-xs text-text-3`,children:[`Dazu `,e.length===1?`kommt ein Paket`:`kommen ${e.length} Pakete`,`, die Ubuntu noch zurückhält (`,e.map(j).join(`, `),`). Die kommen von selbst, wenn Ubuntu sie freigibt.`]})]})}t[2]=n.held_back,t[3]=i,t[4]=a,t[5]=o}else a=t[4],o=t[5];return o===Symbol.for(`react.early_return_sentinel`)?a:o}function j(e){return e.name}function M(e){return(0,O.jsxs)(`li`,{className:`break-all`,children:[(0,O.jsx)(`span`,{className:`text-foreground`,children:e.name}),` `,(0,O.jsxs)(`span`,{className:`text-text-3`,children:[e.current,` → `,e.candidate]})]},e.name)}function se(e){let t=(0,E.c)(6),{d:n}=e;if(n.action_needed===!1){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(_,{art:`gruen`,children:`Nichts zu tun`}),t[0]=e):e=t[0],e}if(n.action_needed!==!0)return null;let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,O.jsx)(_,{art:`bernstein`,children:`Du musst etwas tun`}),t[1]=r):r=t[1];let i;t[2]===n.action_text?i=t[3]:(i=n.action_text&&(0,O.jsx)(`span`,{className:`text-bernstein`,children:n.action_text}),t[2]=n.action_text,t[3]=i);let a;return t[4]===i?a=t[5]:(a=(0,O.jsxs)(`span`,{className:`flex flex-col items-start gap-1.5`,children:[r,i]}),t[4]=i,t[5]=a),a}function N(e){let t=e?.trim();return t?t.startsWith(`(Zusammenfassung nicht verfügbar`)?`Die Zusammenfassung ist gerade nicht verfügbar.`:t:null}function P(e){let t=(0,E.c)(70),{id:n,name:r,details:i,hatUpdate:a,neuLautStart:o,fest:s,gesperrt:c,onStart:l,onFreigeben:u}=e,d=i.data,f=i.isPending,p=i.isError?i.error.message:d?.error,ee;t[0]!==d||t[1]!==n?(ee=d?C(n,d):null,t[0]=d,t[1]=n,t[2]=ee):ee=t[2];let m=ee,h=a?m?.neu??o??null:null,g=d?.summary,_;t[3]===g?_=t[4]:(_=N(g),t[3]=g,t[4]=_);let y=_,b=m&&m.laeuft!==`–`?m.laeuft:p?`unbekannt`:`–`,x;t[5]!==f||t[6]!==b?(x=f?(0,O.jsx)(ie,{}):(0,O.jsx)(O.Fragment,{children:b}),t[5]=f,t[6]=b,t[7]=x):x=t[7];let w=x,ne;t[8]!==p||t[9]!==f||t[10]!==h?(ne=f?(0,O.jsx)(ie,{breit:`w-20`}):h?(0,O.jsx)(`span`,{className:`text-cyan-text`,children:h}):p?(0,O.jsx)(`span`,{className:`text-bernstein`,children:`nicht geprüft`}):(0,O.jsx)(`span`,{className:`text-text-3`,children:`–`}),t[8]=p,t[9]=f,t[10]=h,t[11]=ne):ne=t[11];let T=ne,D;if(f){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(`span`,{className:`text-text-3`,children:`Wird geprüft …`}),t[12]=e):e=t[12],D=e}else if(p&&!a){let e;t[13]===p?e=t[14]:(e=re(p),t[13]=p,t[14]=e);let n;t[15]===e?n=t[16]:(n=(0,O.jsx)(`span`,{className:`text-bernstein`,children:e}),t[15]=e,t[16]=n),D=n}else if(!a)D=`Aktuell.`;else{let e;t[17]===p?e=t[18]:(e=p&&(0,O.jsx)(`span`,{className:`text-bernstein`,children:re(p)}),t[17]=p,t[18]=e);let r;t[19]===d?r=t[20]:(r=d&&(0,O.jsx)(se,{d}),t[19]=d,t[20]=r);let i;t[21]!==d||t[22]!==n||t[23]!==y?(i=n===`os`?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{children:d?.count?`${d.count} ${d.count===1?`Paket`:`Pakete`} aus Ubuntu.`:`Neue Pakete aus Ubuntu.`}),d&&(0,O.jsx)(oe,{d})]}):y?(0,O.jsx)(ae,{text:y}):null,t[21]=d,t[22]=n,t[23]=y,t[24]=i):i=t[24];let a;t[25]!==e||t[26]!==r||t[27]!==i?(a=(0,O.jsxs)(`div`,{className:`flex flex-col items-start gap-2`,children:[e,r,i]}),t[25]=e,t[26]=r,t[27]=i,t[28]=a):a=t[28],D=a}let k=f||void 0,A;t[29]===n?A=t[30]:(A=S(n),t[29]=n,t[30]=A);let j;t[31]===A?j=t[32]:(j=(0,O.jsx)(v,{bild:A,groesse:`sm`}),t[31]=A,t[32]=j);let M;t[33]===r?M=t[34]:(M=(0,O.jsx)(`span`,{className:`min-w-0`,children:r}),t[33]=r,t[34]=M);let P;t[35]!==j||t[36]!==M?(P=(0,O.jsxs)(`span`,{role:`rowheader`,className:`flex min-w-0 items-center gap-3 text-[15px] font-semibold`,children:[j,M]}),t[35]=j,t[36]=M,t[37]=P):P=t[37];let F;t[38]!==p||t[39]!==f||t[40]!==h||t[41]!==T?(F=!f&&(h||p)&&(0,O.jsxs)(O.Fragment,{children:[` `,h?`→`:`·`,` `,T]}),t[38]=p,t[39]=f,t[40]=h,t[41]=T,t[42]=F):F=t[42];let I;t[43]!==w||t[44]!==F?(I=(0,O.jsxs)(`span`,{role:`cell`,className:`ziffern -mt-1 text-sm text-text-2 md:hidden`,children:[w,F]}),t[43]=w,t[44]=F,t[45]=I):I=t[45];let L;t[46]===w?L=t[47]:(L=(0,O.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-text-2 md:block`,children:w}),t[46]=w,t[47]=L);let R;t[48]===T?R=t[49]:(R=(0,O.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm md:block`,children:T}),t[48]=T,t[49]=R);let z;t[50]!==s||t[51]!==r?(z=s&&(0,O.jsxs)(`span`,{className:`mb-1.5 block text-bernstein`,children:[`Festgehalten seit `,s.seit,` auf `,s.version,`: `,s.grund,`. Der Sonntags-Lauf überspringt `,r,`.`]}),t[50]=s,t[51]=r,t[52]=z):z=t[52];let B;t[53]!==z||t[54]!==D?(B=(0,O.jsxs)(`div`,{role:`cell`,className:`text-sm leading-relaxed text-text-2`,children:[z,D]}),t[53]=z,t[54]=D,t[55]=B):B=t[55];let V;t[56]!==s||t[57]!==c||t[58]!==a||t[59]!==u||t[60]!==l?(V=(s||a)&&(0,O.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 md:flex-col md:items-end`,children:[s&&(0,O.jsx)(te,{variant:`outline`,size:`sm`,onClick:u,children:`Freigeben`}),a&&(0,O.jsx)(te,{variant:`outline`,size:`sm`,onClick:l,disabled:c,children:`Aktualisieren`})]}),t[56]=s,t[57]=c,t[58]=a,t[59]=u,t[60]=l,t[61]=V):V=t[61];let ce;return t[62]!==P||t[63]!==I||t[64]!==L||t[65]!==R||t[66]!==B||t[67]!==V||t[68]!==k?(ce=(0,O.jsxs)(`div`,{role:`row`,"aria-busy":k,className:`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-white/[0.06] py-3.5 md:grid-cols-[210px_100px_170px_minmax(0,1fr)_auto] md:items-start`,children:[P,I,L,R,B,V]}),t[62]=P,t[63]=I,t[64]=L,t[65]=R,t[66]=B,t[67]=V,t[68]=k,t[69]=ce):ce=t[69],ce}var F={rot:`rot`,gelb:`bernstein`,gruen:`gruen`,info:`cyan`,grau:`grau`},I={rot:`bg-rot`,gelb:`bg-bernstein`,gruen:`bg-gruen`,info:`bg-cyan`,grau:`bg-text-3`};function L(e){let t=(0,E.c)(19),{lauf:n}=e,r;t[0]===n.start?r=t[1]:(r=m(n.start),t[0]=n.start,t[1]=r);let i;t[2]===r?i=t[3]:(i=(0,O.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:r}),t[2]=r,t[3]=i);let a;t[4]===n.anlass?a=t[5]:(a=(0,O.jsx)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-[15px] break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:n.anlass}),t[4]=n.anlass,t[5]=a);let o=F[n.stufe],s;t[6]!==n.titel||t[7]!==o?(s=(0,O.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,O.jsx)(_,{art:o,children:n.titel})}),t[6]=n.titel,t[7]=o,t[8]=s):s=t[8];let c;t[9]!==i||t[10]!==a||t[11]!==s?(c=(0,O.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[i,a,s]}),t[9]=i,t[10]=a,t[11]=s,t[12]=c):c=t[12];let l;t[13]!==n.stufe||t[14]!==n.zeilen?(l=n.stufe!==`grau`&&n.zeilen.length>0&&(0,O.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-1 p-0 @sm:pl-[124px]`,children:n.zeilen.map(R)}),t[13]=n.stufe,t[14]=n.zeilen,t[15]=l):l=t[15];let u;return t[16]!==c||t[17]!==l?(u=(0,O.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-white/[0.06] py-3`,children:[c,l]}),t[16]=c,t[17]=l,t[18]=u):u=t[18],u}function R(e){return(0,O.jsxs)(`li`,{className:`flex items-baseline gap-2 text-sm leading-snug text-text-2`,children:[(0,O.jsx)(`span`,{"aria-hidden":!0,className:i(`size-1.5 shrink-0 -translate-y-px rounded-full`,I[e.stufe])}),(0,O.jsxs)(`span`,{className:`min-w-0 break-words`,children:[(0,O.jsx)(`span`,{className:`text-foreground`,children:e.baustein}),` · `,e.text]})]},`${e.baustein}-${e.text}`)}function z(e){return e.mtime?m(new Date(e.mtime*1e3).toISOString()):e.snapshot}function B(){let e=(0,E.c)(126),t=s(),n=u(!0).data?.update_fenster,r=a(),i=p(),m=d(),h=ee(),g=l(),_=f(),v=o(),[S,C]=(0,D.useState)(null),w;e[0]===t.data?.updates.bausteine?w=e[1]:(w=new Map((t.data?.updates.bausteine??[]).map(fe)),e[0]=t.data?.updates.bausteine,e[1]=w);let re=w,ie=new Map((t.data?.updates.festgehalten??[]).map(de)),ae;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(ae=k.map(ue),e[2]=ae):ae=e[2];let oe=c(ae),j;e[3]!==oe||e[4]!==re?(j=(e,t)=>ne(e.id,oe[t].data)??re.has(e.id),e[3]=oe,e[4]=re,e[5]=j):j=e[5];let M=k.map(j),se;e[6]===r.data?.jobs?se=e[7]:(se=r.data?.jobs??[],e[6]=r.data?.jobs,e[7]=se);let N=se,F;e[8]!==N||e[9]!==t.data?.zustand?(F=N.some(le)||(t.data?.zustand.update_laeuft??!1),e[8]=N,e[9]=t.data?.zustand,e[10]=F):F=e[10];let I=F,L;e[11]===N?L=e[12]:(L=N.some(ce),e[11]=N,e[12]=L);let R=L,B=I||h.isPending,H=m.data?.available??!1,U;if(t.isPending){let t;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(y,{text:`Updates werden gelesen …`}),e[13]=t):t=e[13],U=t}else if(t.isError&&!t.data){let n=`Die Box antwortet nicht: ${t.error.message}`,r;e[14]===n?r=e[15]:(r=(0,O.jsx)(y,{fehler:!0,text:n}),e[14]=n,e[15]=r),U=r}else{let t;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsxs)(`div`,{role:`row`,className:`etikett hidden grid-cols-[210px_100px_170px_minmax(0,1fr)_auto] gap-x-4 pb-2 text-[10.5px] tracking-[0.14em] text-text-3 md:grid`,children:[(0,O.jsx)(`span`,{role:`columnheader`,children:`Baustein`}),(0,O.jsx)(`span`,{role:`columnheader`,children:`Läuft`}),(0,O.jsx)(`span`,{role:`columnheader`,children:`Neu`}),(0,O.jsx)(`span`,{role:`columnheader`,children:`Was sich ändert`}),(0,O.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),e[16]=t):t=e[16],U=(0,O.jsxs)(`div`,{role:`table`,"aria-label":`Bausteine und ihre Updates`,className:`flex flex-col`,children:[t,k.map((e,t)=>(0,O.jsx)(P,{id:e.id,name:e.name,details:oe[t],hatUpdate:M[t],neuLautStart:re.get(e.id),fest:ie.get(e.id),gesperrt:B,onStart:()=>C({art:`einzeln`,id:e.id,name:e.name}),onFreigeben:()=>{let t=ie.get(e.id);t&&C({art:`freigeben`,id:e.id,name:e.name,grund:t.grund})}},e.id))]})}let W;if(i.isPending){let t;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),e[17]=t):t=e[17],W=t}else if(i.isError&&!i.data){let t;e[18]===i.error.message?t=e[19]:(t=(0,O.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Der Verlauf lässt sich gerade nicht lesen: `,i.error.message]}),e[18]=i.error.message,e[19]=t),W=t}else if(i.data?.laeufe.length){let t;e[21]===i.data.laeufe?t=e[22]:(t=i.data.laeufe.map(V),e[21]=i.data.laeufe,e[22]=t);let n;e[23]===t?n=e[24]:(n=(0,O.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:t}),e[23]=t,e[24]=n),W=n}else{let t;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Update-Läufe aufgezeichnet.`}),e[20]=t):t=e[20],W=t}let G;if(m.isPending){let t;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),e[25]=t):t=e[25],G=t}else if(m.isError&&!m.data){let t;e[26]===m.error.message?t=e[27]:(t=(0,O.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Sicherungen lassen sich gerade nicht lesen: `,m.error.message]}),e[26]=m.error.message,e[27]=t),G=t}else if(m.data?.backups.length){let t;if(e[29]!==m.data.backups||e[30]!==v.isPending||e[31]!==H){let n;e[33]!==v.isPending||e[34]!==H?(n=e=>(0,O.jsxs)(`li`,{className:`flex items-center justify-between gap-3 border-t border-white/[0.06] py-2.5`,children:[(0,O.jsx)(`span`,{className:`ziffern text-sm`,children:z(e)}),(0,O.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,O.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[e.size_mb.toLocaleString(`de-DE`),` MB`]}),(0,O.jsx)(te,{variant:`ghost`,size:`sm`,disabled:!H||v.isPending,onClick:()=>C({art:`zurueck`,datei:e.file,zeit:z(e)}),children:`Zurückspielen`})]})]},e.file),e[33]=v.isPending,e[34]=H,e[35]=n):n=e[35],t=m.data.backups.slice(0,5).map(n),e[29]=m.data.backups,e[30]=v.isPending,e[31]=H,e[32]=t}else t=e[32];let n;e[36]===t?n=e[37]:(n=(0,O.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:t}),e[36]=t,e[37]=n),G=n}else{let t;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Sicherung vorhanden.`}),e[28]=t):t=e[28],G=t}let pe=x,K;e[38]===h?K=e[39]:(K=()=>h.mutate(`pruefen`),e[38]=h,e[39]=K);let me=h.isPending||R,he=R?`Sucht …`:`Nach Neuem suchen`,q;e[40]!==he||e[41]!==K||e[42]!==me?(q=(0,O.jsx)(te,{variant:`outline`,onClick:K,disabled:me,children:he}),e[40]=he,e[41]=K,e[42]=me,e[43]=q):q=e[43];let ge=te,J;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>C({art:`alle`}),e[44]=J):J=e[44];let _e=B||!M.some(Boolean),Y;e[45]!==ge||e[46]!==J||e[47]!==_e?(Y=(0,O.jsx)(ge,{onClick:J,disabled:_e,children:`Alles jetzt aktualisieren`}),e[45]=ge,e[46]=J,e[47]=_e,e[48]=Y):Y=e[48];let X;e[49]!==q||e[50]!==Y?(X=(0,O.jsxs)(`div`,{className:`flex flex-wrap gap-2.5`,children:[q,Y]}),e[49]=q,e[50]=Y,e[51]=X):X=e[51];let ve=n?`Jeden ${n.tag_name} um ${n.uhrzeit} automatisch.`:`Einmal pro Woche automatisch.`,Z;e[52]===ve?Z=e[53]:(Z=(0,O.jsxs)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:[ve,` Vorher wird gesichert, danach geprüft.`]}),e[52]=ve,e[53]=Z);let Q;e[54]===I?Q=e[55]:(Q=I&&(0,O.jsx)(`p`,{role:`status`,className:`text-[15px] text-cyan-text`,children:`Gerade läuft ein Update. Weitere lassen sich erst starten, wenn es fertig ist.`}),e[54]=I,e[55]=Q);let ye;e[56]===Symbol.for(`react.memo_cache_sentinel`)?(ye=(0,O.jsx)(T,{}),e[56]=ye):ye=e[56];let be;e[57]!==pe||e[58]!==X||e[59]!==Z||e[60]!==Q||e[61]!==U?(be=(0,O.jsxs)(pe,{titel:`Updates`,rechts:X,children:[Z,Q,U,ye]}),e[57]=pe,e[58]=X,e[59]=Z,e[60]=Q,e[61]=U,e[62]=be):be=e[62];let xe;e[63]===W?xe=e[64]:(xe=(0,O.jsx)(x,{titel:`Verlauf`,children:W}),e[63]=W,e[64]=xe);let Se;e[65]===_?Se=e[66]:(Se=()=>_.mutate(void 0),e[65]=_,e[66]=Se);let Ce=_.isPending?`Sichert …`:`Jetzt sichern`,we;e[67]!==_.isPending||e[68]!==Se||e[69]!==Ce?(we=(0,O.jsx)(te,{variant:`outline`,size:`sm`,onClick:Se,disabled:_.isPending,children:Ce}),e[67]=_.isPending,e[68]=Se,e[69]=Ce,e[70]=we):we=e[70];let Te;e[71]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,O.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Täglich um 03:35, mit Kopie auf einem zweiten Gerät.`}),e[71]=Te):Te=e[71];let Ee;e[72]!==m.data||e[73]!==H?(Ee=m.data&&!H&&(0,O.jsx)(`p`,{className:`text-sm text-text-3`,children:`Zurückspielen geht nur auf der Box selbst.`}),e[72]=m.data,e[73]=H,e[74]=Ee):Ee=e[74];let $;e[75]!==G||e[76]!==we||e[77]!==Ee?($=(0,O.jsxs)(x,{titel:`Sicherungen`,rechts:we,children:[Te,Ee,G]}),e[75]=G,e[76]=we,e[77]=Ee,e[78]=$):$=e[78];let De;e[79]!==xe||e[80]!==$?(De=(0,O.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[xe,$]}),e[79]=xe,e[80]=$,e[81]=De):De=e[81];let Oe=S?.art===`alle`,ke;e[82]===Symbol.for(`react.memo_cache_sentinel`)?(ke=()=>C(null),e[82]=ke):ke=e[82];let Ae;e[83]!==S?.art||e[84]!==h?(Ae=()=>{S?.art===`alle`&&h.mutate(`alle`),C(null)},e[83]=S?.art,e[84]=h,e[85]=Ae):Ae=e[85];let je;e[86]!==B||e[87]!==Oe||e[88]!==Ae?(je=(0,O.jsx)(b,{offen:Oe,titel:`Alles jetzt aktualisieren?`,text:`Motor, llama-swap, Hermes und Betriebssystem werden nacheinander aktualisiert, soweit es Neues gibt, und danach geprüft. Motor und llama-swap holen bei Problemen ihren alten Stand von selbst zurück, vor Hermes wird gesichert. Lucy ist dabei ein paar Minuten nicht erreichbar.`,knopf:`Aktualisieren`,gesperrt:B,onNein:ke,onJa:Ae}),e[86]=B,e[87]=Oe,e[88]=Ae,e[89]=je):je=e[89];let Me=S?.art===`einzeln`,Ne=S?.art===`einzeln`?`${S.name} aktualisieren?`:``,Pe=S?.art===`einzeln`?A[S.id]??``:``,Fe;e[90]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=()=>C(null),e[90]=Fe):Fe=e[90];let Ie;e[91]!==S||e[92]!==h?(Ie=()=>{S?.art===`einzeln`&&h.mutate(S.id),C(null)},e[91]=S,e[92]=h,e[93]=Ie):Ie=e[93];let Le;e[94]!==B||e[95]!==Me||e[96]!==Ne||e[97]!==Pe||e[98]!==Ie?(Le=(0,O.jsx)(b,{offen:Me,titel:Ne,text:Pe,knopf:`Aktualisieren`,gesperrt:B,onNein:Fe,onJa:Ie}),e[94]=B,e[95]=Me,e[96]=Ne,e[97]=Pe,e[98]=Ie,e[99]=Le):Le=e[99];let Re=S?.art===`freigeben`,ze=S?.art===`freigeben`?`${S.name} freigeben?`:``,Be=S?.art===`freigeben`?`Festgehalten wurde ${S.name}, weil: ${S.grund}. Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`:``,Ve;e[100]===Symbol.for(`react.memo_cache_sentinel`)?(Ve=()=>C(null),e[100]=Ve):Ve=e[100];let He;e[101]!==S||e[102]!==g?(He=()=>{S?.art===`freigeben`&&g.mutate(S.id),C(null)},e[101]=S,e[102]=g,e[103]=He):He=e[103];let Ue;e[104]!==g.isPending||e[105]!==Re||e[106]!==ze||e[107]!==Be||e[108]!==He?(Ue=(0,O.jsx)(b,{offen:Re,titel:ze,text:Be,knopf:`Freigeben`,gesperrt:g.isPending,onNein:Ve,onJa:He}),e[104]=g.isPending,e[105]=Re,e[106]=ze,e[107]=Be,e[108]=He,e[109]=Ue):Ue=e[109];let We=S?.art===`zurueck`,Ge=`Die Einstellungen von Hermes und llama-swap werden auf den Stand von ${S?.art===`zurueck`?S.zeit:``} gesetzt. Vorher wird der jetzige Stand gesichert. Die Dienste starten danach neu.`,Ke;e[110]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=()=>C(null),e[110]=Ke):Ke=e[110];let qe;e[111]!==S||e[112]!==v?(qe=()=>{S?.art===`zurueck`&&v.mutate(S.datei),C(null)},e[111]=S,e[112]=v,e[113]=qe):qe=e[113];let Je;e[114]!==We||e[115]!==Ge||e[116]!==qe||e[117]!==v.isPending?(Je=(0,O.jsx)(b,{offen:We,gefahr:!0,titel:`Sicherung zurückspielen?`,text:Ge,knopf:`Zurückspielen`,gesperrt:v.isPending,onNein:Ke,onJa:qe}),e[114]=We,e[115]=Ge,e[116]=qe,e[117]=v.isPending,e[118]=Je):Je=e[118];let Ye;return e[119]!==be||e[120]!==De||e[121]!==je||e[122]!==Le||e[123]!==Ue||e[124]!==Je?(Ye=(0,O.jsxs)(O.Fragment,{children:[be,De,je,Le,Ue,Je]}),e[119]=be,e[120]=De,e[121]=je,e[122]=Le,e[123]=Ue,e[124]=Je,e[125]=Ye):Ye=e[125],Ye}function V(e){return(0,O.jsx)(L,{lauf:e},e.start)}function ce(e){return w(e)&&h(e)}function le(e){return e.group===`maintenance`&&h(e)}function ue(e){return e.id}function de(e){return[e.baustein,e]}function fe(e){return[e.id,e.neu]}export{B as UpdatesSeite};