Files
mission-control-v2/frontend/dist/assets/Monitoring-CAnaJkQY.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

1 line
22 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{A as a,C as o,K as s,Ot as c,d as l,u}from"./abfragen-CLTLeU-R.js";import{t as d}from"./useRouterState-DJr4hrdj.js";import{C as f,F as p,I as m,L as h,M as g,N as _,P as v,R as y,S as b,U as x,V as S,m as C,x as w}from"./index-hnnYWPzT.js";import{t as T}from"./breite-k-QN6GPl.js";var E=t(e(),1),D=r(),O=n(),k={ruhig:{wert:`text-foreground`,marke:null},gelb:{wert:`text-bernstein`,marke:`hoch`},rot:{wert:`text-rot-text`,marke:`kritisch`}};function A(e){let t=(0,D.c)(29),{label:n,wert:r,einheit:a,punkte:o,max:s,zustand:c,farbe:l,zeitraumText:u}=e,d=k[c===void 0?`ruhig`:c],f;t[0]===n?f=t[1]:(f=(0,O.jsx)(`span`,{className:`etikett text-[11px] text-text-3`,children:n}),t[0]=n,t[1]=f);let m;t[2]===d.wert?m=t[3]:(m=i(`font-anzeige text-[28px] leading-none font-semibold tabular-nums`,d.wert),t[2]=d.wert,t[3]=m);let h;t[4]!==a||t[5]!==r?(h=p(r,a),t[4]=a,t[5]=r,t[6]=h):h=t[6];let g;t[7]!==m||t[8]!==h?(g=(0,O.jsx)(`span`,{className:m,children:h}),t[7]=m,t[8]=h,t[9]=g):g=t[9];let _;t[10]!==d.marke||t[11]!==d.wert?(_=d.marke&&(0,O.jsx)(`span`,{className:i(`etikett text-[10.5px]`,d.wert),children:d.marke}),t[10]=d.marke,t[11]=d.wert,t[12]=_):_=t[12];let v;t[13]!==g||t[14]!==_?(v=(0,O.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[g,_]}),t[13]=g,t[14]=_,t[15]=v):v=t[15];let y;t[16]!==l||t[17]!==n||t[18]!==s||t[19]!==o||t[20]!==u?(y=o&&o.length>1&&(0,O.jsx)(w,{punkte:o,max:s,farbe:l,beschriftung:`${n}, ${u}`}),t[16]=l,t[17]=n,t[18]=s,t[19]=o,t[20]=u,t[21]=y):y=t[21];let b;t[22]===o?b=t[23]:(b=o&&o.length<=1&&(0,O.jsx)(`span`,{className:`h-9`,"aria-hidden":!0}),t[22]=o,t[23]=b);let x;return t[24]!==f||t[25]!==v||t[26]!==y||t[27]!==b?(x=(0,O.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 flex-col gap-1.5 rounded-xl px-3.5 pt-3 pb-2`,children:[f,v,y,b]}),t[24]=f,t[25]=v,t[26]=y,t[27]=b,t[28]=x):x=t[28],x}var j={rechts:12,oben:10,unten:24};function M(e){let t=(0,D.c)(72),{reihen:n,einheit:r,langerZeitraum:i,hoehe:a,titel:o}=e,s=a===void 0?180:a,[c,l]=T(),[u,d]=(0,E.useState)(null),h,g,_,y,x,S,C,w;if(t[0]!==l||t[1]!==r||t[2]!==s||t[3]!==u||t[4]!==i||t[5]!==c||t[6]!==n||t[7]!==o){let e=n[0]?.punkte??[],a=e.length,T=v(n.map(re),r),E=r===`prozent`?[0,25,50,75,100]:[0,T/2,T],D=Math.max(40,Math.max(...E.map(e=>p(e,r).length))*7+12),k;t[16]===D?k=t[17]:(k={...j,links:D},t[16]=D,t[17]=k);let A=k,M=l-A.links-j.rechts,N=s-j.oben-j.unten,P=e[0]?.[0]??0,ie=e[a-1]?.[0]??1,F=e=>A.links+(ie>P?(e-P)/(ie-P)*M:0),I;t[18]!==N||t[19]!==T?(I=e=>j.oben+N-Math.min(e,T)/(T||1)*N,t[18]=N,t[19]=T,t[20]=I):I=t[20];let L=I,R=j.oben+N,z=a>1?[0,.25,.5,.75,1].map(t=>e[Math.round(t*(a-1))][0]):[],B;t[21]===n?B=t[22]:(B=n.some(ne),t[21]=n,t[22]=B);let V=B,H;t[23]===a?H=t[24]:(H=function(e){if(a===0)return;let t=e.currentTarget.getBoundingClientRect(),n=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width));d(Math.round(n*(a-1)))},t[23]=a,t[24]=H);let U=H,W;t[25]===a?W=t[26]:(W=function(e){if(a!==0){if(e.key===`ArrowLeft`)d(e=>Math.max(0,(e??a-1)-1));else if(e.key===`ArrowRight`)d(e=>Math.min(a-1,(e??a-1)+1));else return;e.preventDefault()}},t[25]=a,t[26]=W);let G=W,K=u!==null&&e[u]?e[u][0]:null,q=K===null?0:F(K),ae=e.slice(-12);S=`flex flex-col gap-2`,t[27]===n?C=t[28]:(C=n.length>1&&(0,O.jsx)(`ul`,{className:`m-0 flex list-none flex-wrap gap-x-4 gap-y-1 p-0 text-sm text-text-2`,"aria-label":`Legende`,children:n.map(te)}),t[27]=n,t[28]=C);let J;t[29]===a?J=t[30]:(J=()=>d(e=>e??(a?a-1:null)),t[29]=a,t[30]=J);let oe;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(oe=()=>d(null),t[31]=oe):oe=t[31];let Y;t[32]!==A.links||t[33]!==R||t[34]!==V||t[35]!==M||t[36]!==N||t[37]!==n||t[38]!==F||t[39]!==L?(Y=V?n.map(e=>(0,O.jsxs)(`g`,{children:[n.length===1&&(0,O.jsx)(`path`,{d:b(e.punkte,F,L,R),fill:e.farbe,opacity:.1}),(0,O.jsx)(`path`,{d:f(e.punkte,F,L),fill:`none`,stroke:e.farbe,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})]},e.name)):(0,O.jsx)(`text`,{x:A.links+M/2,y:j.oben+N/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Noch keine Messwerte in diesem Zeitraum`}),t[32]=A.links,t[33]=R,t[34]=V,t[35]=M,t[36]=N,t[37]=n,t[38]=F,t[39]=L,t[40]=Y):Y=t[40];let X;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(X=()=>d(null),t[41]=X):X=t[41];let Z;t[42]!==A.links||t[43]!==M||t[44]!==N||t[45]!==U?(Z=(0,O.jsx)(`rect`,{x:A.links,y:j.oben,width:M,height:N,fill:`transparent`,onPointerMove:U,onPointerLeave:X}),t[42]=A.links,t[43]=M,t[44]=N,t[45]=U,t[46]=Z):Z=t[46];let se=(0,O.jsxs)(`svg`,{width:l,height:s,role:`img`,"aria-label":o,tabIndex:0,onKeyDown:G,onFocus:J,onBlur:oe,className:`block max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[E.map(e=>(0,O.jsxs)(`g`,{children:[(0,O.jsx)(`line`,{x1:A.links,x2:l-j.rechts,y1:L(e),y2:L(e),stroke:`var(--linie)`,strokeWidth:1}),(0,O.jsx)(`text`,{x:A.links-8,y:L(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:p(e,r)})]},e)),z.map((e,t)=>(0,O.jsx)(`text`,{x:F(e),y:s-6,className:`fill-text-3 font-mono text-[11px]`,textAnchor:t===0?`start`:t===z.length-1?`end`:`middle`,children:m(e,i)},e)),Y,K!==null&&(0,O.jsxs)(`g`,{"aria-hidden":!0,children:[(0,O.jsx)(`line`,{x1:F(K),x2:F(K),y1:j.oben,y2:R,stroke:`var(--text-3)`,strokeWidth:1}),n.map(e=>{let t=e.punkte[u]?.[1];return t==null?null:(0,O.jsx)(`circle`,{cx:F(K),cy:L(t),r:4,fill:e.farbe,stroke:`var(--panel)`,strokeWidth:2},e.name)})]}),Z]}),Q=K!==null&&(0,O.jsxs)(`div`,{role:`status`,className:`pointer-events-none absolute top-1 z-10 flex min-w-36 flex-col gap-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 py-2 shadow-lg`,style:q>l/2?{right:l-q+10}:{left:q+10},children:[(0,O.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:m(K,!0)}),n.map(e=>(0,O.jsxs)(`span`,{className:`flex items-center gap-2 text-sm`,children:[(0,O.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 rounded-full`,style:{background:e.farbe}}),(0,O.jsx)(`span`,{className:`font-semibold text-foreground`,children:p(e.punkte[u]?.[1],r)}),n.length>1&&(0,O.jsx)(`span`,{className:`text-text-3`,children:e.name})]},e.name))]});t[47]!==c||t[48]!==se||t[49]!==Q?(w=(0,O.jsxs)(`div`,{ref:c,className:`relative w-full`,children:[se,Q]}),t[47]=c,t[48]=se,t[49]=Q,t[50]=w):w=t[50],y=`group text-sm`,t[51]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,O.jsx)(`summary`,{className:`inline-flex cursor-pointer items-center text-text-3 hover:text-text-2`,children:`Werte als Tabelle`}),t[51]=x):x=t[51],g=`ziffern mt-2 w-full max-w-md border-collapse text-xs`;let ce;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,O.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:`Zeit`}),t[52]=ce):ce=t[52];let $;t[53]===n?$=t[54]:($=n.map(ee),t[53]=n,t[54]=$),t[55]===$?_=t[56]:(_=(0,O.jsx)(`thead`,{children:(0,O.jsxs)(`tr`,{className:`text-left text-text-3`,children:[ce,$]})}),t[55]=$,t[56]=_),h=ae.map((e,t)=>{let[o]=e;return(0,O.jsxs)(`tr`,{className:`border-t border-white/[0.06]`,children:[(0,O.jsx)(`td`,{className:`py-1 pr-4 text-text-3`,children:m(o,i)}),n.map(e=>(0,O.jsx)(`td`,{className:`py-1 pr-4 text-text-2`,children:p(e.punkte[a-ae.length+t]?.[1],r)},e.name))]},o)}),t[0]=l,t[1]=r,t[2]=s,t[3]=u,t[4]=i,t[5]=c,t[6]=n,t[7]=o,t[8]=h,t[9]=g,t[10]=_,t[11]=y,t[12]=x,t[13]=S,t[14]=C,t[15]=w}else h=t[8],g=t[9],_=t[10],y=t[11],x=t[12],S=t[13],C=t[14],w=t[15];let k;t[57]===h?k=t[58]:(k=(0,O.jsx)(`tbody`,{children:h}),t[57]=h,t[58]=k);let A;t[59]!==k||t[60]!==g||t[61]!==_?(A=(0,O.jsxs)(`table`,{className:g,children:[_,k]}),t[59]=k,t[60]=g,t[61]=_,t[62]=A):A=t[62];let M;t[63]!==A||t[64]!==y||t[65]!==x?(M=(0,O.jsxs)(`details`,{className:y,children:[x,A]}),t[63]=A,t[64]=y,t[65]=x,t[66]=M):M=t[66];let N;return t[67]!==M||t[68]!==S||t[69]!==C||t[70]!==w?(N=(0,O.jsxs)(`div`,{className:S,children:[C,w,M]}),t[67]=M,t[68]=S,t[69]=C,t[70]=w,t[71]=N):N=t[71],N}function ee(e){return(0,O.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:e.name},e.name)}function te(e){return(0,O.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-4 rounded-full`,style:{background:e.farbe}}),e.name]},e.name)}function ne(e){return e.punkte.some(N)}function N(e){let[,t]=e;return t!==null}function re(e){return e.punkte}var P=[{id:`1h`,name:`1 Stunde`,text:`letzte Stunde`},{id:`24h`,name:`24 Stunden`,text:`letzte 24 Stunden`},{id:`7d`,name:`7 Tage`,text:`letzte 7 Tage`}];function ie(e){let t=(0,D.c)(6),{wert:n,onWahl:r,farbe:a}=e,o=a===`box`?`border-box-rand bg-box-grund text-box-text`:`border-lab-rand bg-lab-grund text-lab-text`,s;t[0]!==o||t[1]!==r||t[2]!==n?(s=P.map(e=>(0,O.jsx)(`button`,{type:`button`,onClick:()=>r(e.id),"aria-pressed":n===e.id,className:i(`h-9 rounded-full border px-4 text-sm`,n===e.id?o:`border-white/10 text-text-2 hover:border-white/20 hover:text-foreground`),children:e.name},e.id)),t[0]=o,t[1]=r,t[2]=n,t[3]=s):s=t[3];let c;return t[4]===s?c=t[5]:(c=(0,O.jsx)(`div`,{role:`group`,"aria-label":`Zeitraum`,className:`flex flex-wrap gap-2`,children:s}),t[4]=s,t[5]=c),c}function F(e){let t=(0,D.c)(9),{titel:n,rechts:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,O.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]!==r||t[3]!==a?(o=(0,O.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[a,r]}),t[2]=r,t[3]=a,t[4]=o):o=t[4];let s;return t[5]!==i||t[6]!==o||t[7]!==n?(s=(0,O.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[o,i]}),t[5]=i,t[6]=o,t[7]=n,t[8]=s):s=t[8],s}var I=e=>P.find(t=>t.id===e)?.text??``;function L(e){let t=(0,D.c)(10),{bereich:n,aktiv:r}=e,a=u(n,r===void 0||r).data;if(!a||a.reihen===0)return null;let o;t[0]!==a.auffaellig||t[1]!==a.lernt||t[2]!==a.min_wochen||t[3]!==a.wochen?(o=a.lernt?`Ungewöhnliches meldet der Orchestrator, sobald er je Wochenstunde ${a.min_wochen} Wochen Erfahrung hat — er lernt gerade (Woche ${a.wochen} von ${a.min_wochen}).`:a.auffaellig.length?`Gerade ungewöhnlich: ${a.auffaellig.map(R).join(`; `)}.`:`Nichts Ungewöhnliches — verglichen mit den üblichen Werten dieser Wochenstunde.`,t[0]=a.auffaellig,t[1]=a.lernt,t[2]=a.min_wochen,t[3]=a.wochen,t[4]=o):o=t[4];let s=o,c=!a.lernt&&a.auffaellig.length?`text-bernstein`:`text-text-3`,l;t[5]===c?l=t[6]:(l=i(`m-0 text-sm`,c),t[5]=c,t[6]=l);let d;return t[7]!==l||t[8]!==s?(d=(0,O.jsx)(`p`,{className:l,children:s}),t[7]=l,t[8]=s,t[9]=d):d=t[9],d}function R(e){return e.titel}function z(){let e=(0,D.c)(98),[t,n]=(0,E.useState)(`1h`),r=l(t),a=c(),o;e[0]===r.data?.reihen?o=e[1]:(o=r.data?.reihen??{},e[0]=r.data?.reihen,e[1]=o);let s=o,u;e[2]===r.data?.aktuell?u=e[3]:(u=r.data?.aktuell??{},e[2]=r.data?.aktuell,e[3]=u);let d=u,f=t===`7d`,p;e[4]!==d||e[5]!==s?(p=(e,t)=>e??d[t]??_(s[t]),e[4]=d,e[5]=s,e[6]=p):p=e[6];let m=p,g;e[7]===t?g=e[8]:(g=(0,O.jsx)(ie,{wert:t,onWahl:n,farbe:`box`}),e[7]=t,e[8]=g);let v;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,O.jsx)(`span`,{className:`text-sm text-text-3`,children:`Zahlen live, Verläufe im Minutentakt`}),e[9]=v):v=e[9];let y;e[10]===g?y=e[11]:(y=(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[g,v]}),e[10]=g,e[11]=y);let b;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,O.jsx)(L,{bereich:`box`}),e[12]=b):b=e[12];let S=a?.cpu,C;e[13]!==S||e[14]!==m?(C=m(S,`cpu`),e[13]=S,e[14]=m,e[15]=C):C=e[15];let w=a?.cpu,T;e[16]!==w||e[17]!==m?(T=h(m(w,`cpu`),85,95),e[16]=w,e[17]=m,e[18]=T):T=e[18];let k;e[19]===t?k=e[20]:(k=I(t),e[19]=t,e[20]=k);let j;e[21]!==T||e[22]!==k||e[23]!==C?(j=(0,O.jsx)(A,{label:`CPU`,wert:C,einheit:`prozent`,max:100,zustand:T,zeitraumText:k}),e[21]=T,e[22]=k,e[23]=C,e[24]=j):j=e[24];let ee=a?.ram,te;e[25]!==ee||e[26]!==m?(te=m(ee,`ram`),e[25]=ee,e[26]=m,e[27]=te):te=e[27];let ne=a?.ram,N;e[28]!==ne||e[29]!==m?(N=h(m(ne,`ram`),85,95),e[28]=ne,e[29]=m,e[30]=N):N=e[30];let re;e[31]===t?re=e[32]:(re=I(t),e[31]=t,e[32]=re);let P;e[33]!==te||e[34]!==N||e[35]!==re?(P=(0,O.jsx)(A,{label:`Speicher`,wert:te,einheit:`prozent`,max:100,zustand:N,zeitraumText:re}),e[33]=te,e[34]=N,e[35]=re,e[36]=P):P=e[36];let R=a?.gpu,z;e[37]!==R||e[38]!==m?(z=m(R,`gpu`),e[37]=R,e[38]=m,e[39]=z):z=e[39];let B;e[40]===t?B=e[41]:(B=I(t),e[40]=t,e[41]=B);let V;e[42]!==z||e[43]!==B?(V=(0,O.jsx)(A,{label:`GPU`,wert:z,einheit:`prozent`,max:100,zeitraumText:B}),e[42]=z,e[43]=B,e[44]=V):V=e[44];let H=a?.temp_cpu,U;e[45]!==H||e[46]!==m?(U=m(H,`temp_cpu`),e[45]=H,e[46]=m,e[47]=U):U=e[47];let W=a?.temp_cpu,G;e[48]!==W||e[49]!==m?(G=h(m(W,`temp_cpu`),80,90),e[48]=W,e[49]=m,e[50]=G):G=e[50];let K;e[51]===t?K=e[52]:(K=I(t),e[51]=t,e[52]=K);let q;e[53]!==U||e[54]!==G||e[55]!==K?(q=(0,O.jsx)(A,{label:`CPU-Temp.`,wert:U,einheit:`grad`,max:100,zustand:G,zeitraumText:K}),e[53]=U,e[54]=G,e[55]=K,e[56]=q):q=e[56];let ae=a?.temp_gpu,J;e[57]!==ae||e[58]!==m?(J=m(ae,`temp_gpu`),e[57]=ae,e[58]=m,e[59]=J):J=e[59];let oe=a?.temp_gpu,Y;e[60]!==oe||e[61]!==m?(Y=h(m(oe,`temp_gpu`),80,90),e[60]=oe,e[61]=m,e[62]=Y):Y=e[62];let X;e[63]===t?X=e[64]:(X=I(t),e[63]=t,e[64]=X);let Z;e[65]!==J||e[66]!==Y||e[67]!==X?(Z=(0,O.jsx)(A,{label:`GPU-Temp.`,wert:J,einheit:`grad`,max:100,zustand:Y,zeitraumText:X}),e[65]=J,e[66]=Y,e[67]=X,e[68]=Z):Z=e[68];let se=a?.disk,Q;e[69]!==se||e[70]!==m?(Q=m(se,`platte`),e[69]=se,e[70]=m,e[71]=Q):Q=e[71];let ce=a?.disk,$;e[72]!==ce||e[73]!==m?($=h(m(ce,`platte`),80,90),e[72]=ce,e[73]=m,e[74]=$):$=e[74];let le;e[75]===t?le=e[76]:(le=I(t),e[75]=t,e[76]=le);let ue;e[77]!==Q||e[78]!==$||e[79]!==le?(ue=(0,O.jsx)(A,{label:`Platte`,wert:Q,einheit:`prozent`,max:100,zustand:$,zeitraumText:le}),e[77]=Q,e[78]=$,e[79]=le,e[80]=ue):ue=e[80];let de;e[81]!==j||e[82]!==P||e[83]!==V||e[84]!==q||e[85]!==Z||e[86]!==ue?(de=(0,O.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-3 xl:grid-cols-6`,children:[j,P,V,q,Z,ue]}),e[81]=j,e[82]=P,e[83]=V,e[84]=q,e[85]=Z,e[86]=ue,e[87]=de):de=e[87];let fe;e[88]!==f||e[89]!==r.data||e[90]!==r.isError||e[91]!==r.isPlaceholderData||e[92]!==s?(fe=r.isError&&!r.data?(0,O.jsx)(x,{text:`Der Verlauf ist noch nicht da: Die KI-Box sammelt Messwerte, sobald der neue Stand läuft. Die Zahlen oben sind live.`}):(0,O.jsxs)(`div`,{className:i(`grid gap-5 md:gap-6 xl:grid-cols-2`,r.isPlaceholderData&&`opacity-70`),children:[(0,O.jsx)(F,{titel:`CPU`,children:(0,O.jsx)(M,{titel:`CPU-Auslastung in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`CPU`,punkte:s.cpu??[],farbe:`var(--reihe-1)`}]})}),(0,O.jsx)(F,{titel:`Speicher`,children:(0,O.jsx)(M,{titel:`Belegter Speicher in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`Speicher`,punkte:s.ram??[],farbe:`var(--reihe-1)`}]})}),(0,O.jsx)(F,{titel:`GPU`,children:(0,O.jsx)(M,{titel:`GPU-Last in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`GPU`,punkte:s.gpu??[],farbe:`var(--reihe-1)`}]})}),(0,O.jsx)(F,{titel:`Temperatur`,children:(0,O.jsx)(M,{titel:`Temperatur von CPU und GPU in Grad`,einheit:`grad`,langerZeitraum:f,reihen:[{name:`CPU`,punkte:s.temp_cpu??[],farbe:`var(--reihe-1)`},{name:`GPU`,punkte:s.temp_gpu??[],farbe:`var(--reihe-2)`}]})}),(0,O.jsx)(F,{titel:`Netz`,children:(0,O.jsx)(M,{titel:`Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:f,reihen:[{name:`empfangen`,punkte:s.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:s.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(0,O.jsx)(F,{titel:`Tokens pro Minute`,children:(0,O.jsx)(M,{titel:`Erzeugte und gelesene Tokens pro Minute`,einheit:`anzahl`,langerZeitraum:f,reihen:[{name:`Tokens`,punkte:s.tokens??[],farbe:`var(--reihe-1)`}]})})]}),e[88]=f,e[89]=r.data,e[90]=r.isError,e[91]=r.isPlaceholderData,e[92]=s,e[93]=fe):fe=e[93];let pe;return e[94]!==de||e[95]!==fe||e[96]!==y?(pe=(0,O.jsxs)(O.Fragment,{children:[y,b,de,fe]}),e[94]=de,e[95]=fe,e[96]=y,e[97]=pe):pe=e[97],pe}function B(e){let t=(0,D.c)(43),{g:n,zeitraum:r}=e,i=n.aktuell,a=n.id,o=n.name,s;t[0]!==n.art||t[1]!==n.name?(s=S({art:n.art,name:n.name}),t[0]=n.art,t[1]=n.name,t[2]=s):s=t[2];let c;t[3]===s?c=t[4]:(c=(0,O.jsx)(y,{bild:s,groesse:`sm`}),t[3]=s,t[4]=c);let l;t[5]===n.name?l=t[6]:(l=(0,O.jsx)(`h3`,{className:`text-[15px] font-semibold`,children:n.name}),t[5]=n.name,t[6]=l);let u;t[7]!==c||t[8]!==l?(u=(0,O.jsxs)(`span`,{className:`flex min-w-0 items-center gap-3`,children:[c,l]}),t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===i.cpu?d=t[11]:(d=i.cpu==null?`–`:`${Math.round(i.cpu)} %`,t[10]=i.cpu,t[11]=d);let f;t[12]===i.ram?f=t[13]:(f=i.ram==null?`–`:`${Math.round(i.ram)} %`,t[12]=i.ram,t[13]=f);let p;t[14]===i.uptime_s?p=t[15]:(p=g(i.uptime_s),t[14]=i.uptime_s,t[15]=p);let m;t[16]!==d||t[17]!==f||t[18]!==p?(m=(0,O.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`CPU `,d,` · RAM `,f,` · läuft `,p]}),t[16]=d,t[17]=f,t[18]=p,t[19]=m):m=t[19];let h;t[20]!==m||t[21]!==u?(h=(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[u,m]}),t[20]=m,t[21]=u,t[22]=h):h=t[22];let _=`${n.name}: CPU und Speicher in Prozent`,v=r===`7d`,b;t[23]===n.reihen.cpu?b=t[24]:(b=n.reihen.cpu??[],t[23]=n.reihen.cpu,t[24]=b);let x;t[25]===b?x=t[26]:(x={name:`CPU`,punkte:b,farbe:`var(--reihe-1)`},t[25]=b,t[26]=x);let C;t[27]===n.reihen.ram?C=t[28]:(C=n.reihen.ram??[],t[27]=n.reihen.ram,t[28]=C);let w;t[29]===C?w=t[30]:(w={name:`Speicher`,punkte:C,farbe:`var(--reihe-2)`},t[29]=C,t[30]=w);let T;t[31]!==x||t[32]!==w?(T=[x,w],t[31]=x,t[32]=w,t[33]=T):T=t[33];let E;t[34]!==_||t[35]!==v||t[36]!==T?(E=(0,O.jsx)(M,{titel:_,einheit:`prozent`,langerZeitraum:v,hoehe:140,reihen:T}),t[34]=_,t[35]=v,t[36]=T,t[37]=E):E=t[37];let k;return t[38]!==n.id||t[39]!==n.name||t[40]!==h||t[41]!==E?(k=(0,O.jsxs)(`section`,{id:a,"aria-label":o,className:`flex min-w-0 scroll-mt-6 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[h,E]}),t[38]=n.id,t[39]=n.name,t[40]=h,t[41]=E,t[42]=k):k=t[42],k}function V(){let e=(0,D.c)(36),[t,n]=(0,E.useState)(`1h`),r=a(),c=s(),l=r.data?.rolle===`homelab`||!!(c.data?.eingerichtet&&c.data.erreichbar),u=o(t,l),f;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(f={select:G},e[0]=f):f=e[0];let p=d(f),m,_;if(e[1]!==p||e[2]!==u.data?(m=()=>{p&&u.data&&document.getElementById(p)?.scrollIntoView({block:`start`})},_=[p,u.data],e[1]=p,e[2]=u.data,e[3]=m,e[4]=_):(m=e[3],_=e[4]),(0,E.useEffect)(m,_),!l){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(x,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[5]=t):t=e[5],t}if(u.isPending){let t;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(x,{text:`Die Messwerte kommen gleich …`}),e[6]=t):t=e[6],t}if(!u.data){let t;return e[7]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(x,{text:`Noch keine Messwerte: Der Ausführer schickt sie jede Minute, sobald sein neuer Stand eingespielt ist.`}),e[7]=t):t=e[7],t}let v,y,b,S,w;if(e[8]!==l||e[9]!==u.data.geraete||e[10]!==u.isPlaceholderData||e[11]!==t){let r=u.data.geraete.find(W),a=u.data.geraete.filter(U),o=t===`7d`,s=r?.aktuell??{},c;e[17]===t?c=e[18]:(c=(0,O.jsx)(ie,{wert:t,onWahl:n,farbe:`homelab`}),e[17]=t,e[18]=c);let d;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,O.jsx)(`span`,{className:`text-sm text-text-3`,children:`Werte im Minutentakt vom Proxmox-Host`}),e[19]=d):d=e[19],e[20]===c?b=e[21]:(b=(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[c,d]}),e[20]=c,e[21]=b),e[22]===l?S=e[23]:(S=(0,O.jsx)(L,{bereich:`homelab`,aktiv:l}),e[22]=l,e[23]=S),w=r&&(0,O.jsxs)(C,{titel:`Proxmox-Host`,rechts:(0,O.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`läuft `,g(s.uptime_s),s.load1==null?``:` · Last ${s.load1.toFixed(2).replace(`.`,`,`)}`]}),children:[(0,O.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,O.jsx)(A,{label:`CPU`,wert:s.cpu,einheit:`prozent`,max:100,punkte:r.reihen.cpu,zustand:h(s.cpu??null,85,95),zeitraumText:I(t)}),(0,O.jsx)(A,{label:`Speicher`,wert:s.ram,einheit:`prozent`,max:100,punkte:r.reihen.ram,zustand:h(s.ram??null,90,95),zeitraumText:I(t)}),(0,O.jsx)(A,{label:`Temperatur`,wert:s.temp_cpu,einheit:`grad`,max:100,punkte:r.reihen.temp_cpu,zustand:h(s.temp_cpu??null,80,90),zeitraumText:I(t)}),(0,O.jsx)(A,{label:`Systemplatte`,wert:s.platte,einheit:`prozent`,max:100,punkte:r.reihen.platte,zustand:h(s.platte??null,80,90),zeitraumText:I(t)})]}),(0,O.jsxs)(`div`,{className:i(`grid gap-5 xl:grid-cols-2`,u.isPlaceholderData&&`opacity-70`),children:[(0,O.jsx)(F,{titel:`CPU und Speicher`,children:(0,O.jsx)(M,{titel:`Proxmox-Host: CPU und Speicher in Prozent`,einheit:`prozent`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.cpu??[],farbe:`var(--reihe-1)`},{name:`Speicher`,punkte:r.reihen.ram??[],farbe:`var(--reihe-2)`}]})}),(0,O.jsx)(F,{titel:`Netz`,children:(0,O.jsx)(M,{titel:`Proxmox-Host: Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:o,reihen:[{name:`empfangen`,punkte:r.reihen.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:r.reihen.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(r.reihen.temp_cpu?.some(H)??!1)&&(0,O.jsx)(F,{titel:`Temperatur`,children:(0,O.jsx)(M,{titel:`Proxmox-Host: CPU-Temperatur in Grad`,einheit:`grad`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.temp_cpu??[],farbe:`var(--reihe-1)`}]})})]})]});let f=u.isPlaceholderData&&`opacity-70`;e[24]===f?v=e[25]:(v=i(`grid gap-5 md:gap-6 xl:grid-cols-2`,f),e[24]=f,e[25]=v);let p;e[26]===t?p=e[27]:(p=e=>(0,O.jsx)(B,{g:e,zeitraum:t},e.id),e[26]=t,e[27]=p),y=a.map(p),e[8]=l,e[9]=u.data.geraete,e[10]=u.isPlaceholderData,e[11]=t,e[12]=v,e[13]=y,e[14]=b,e[15]=S,e[16]=w}else v=e[12],y=e[13],b=e[14],S=e[15],w=e[16];let T;e[28]!==v||e[29]!==y?(T=(0,O.jsx)(`div`,{className:v,children:y}),e[28]=v,e[29]=y,e[30]=T):T=e[30];let k;return e[31]!==b||e[32]!==S||e[33]!==w||e[34]!==T?(k=(0,O.jsxs)(O.Fragment,{children:[b,S,w,T]}),e[31]=b,e[32]=S,e[33]=w,e[34]=T,e[35]=k):k=e[35],k}function H(e){let[,t]=e;return t!==null}function U(e){return e.art!==`proxmox-host`}function W(e){return e.art===`proxmox-host`}function G(e){return e.location.hash}export{L as AusreisserZeile,z as BoxMonitoringSeite,V as HomelabMonitoringSeite};