Files
mission-control-v2/frontend/dist/assets/Start-Cz_tOvT1.js
T
HitonabiandClaude Opus 5.5 2972cdfeca Später · 22 Ausreißer ohne feste Schwellen: Normalwert je Wochenstunde
- kern/ausreisser.py: 168 Fächer je Reihe (CPU, GPU, Speicher, Temperaturen, Netz), erst genau, ab acht Werten
  gleitend; auffällig ab 4 Streuungen und Mindestabstand, erst mit drei Wochen Erfahrung; Ausreißer gekappt gelernt
- services/ausreisser.py: Wächter beider Rollen, gelber Hinweis nach zwei auffälligen Stunden mit Normalwert und
  Wochenstunde im Satz; erster Lauf lernt aus den aufbewahrten acht Tagen
- Monitoring: Zeile mit Lernwoche bzw. was gerade auffällt; GET /api/ausreisser, /api/homelab/ausreisser

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 10:04:30 +02:00

1 line
13 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{i as e,r as t,t as n}from"./dist-aE7UmubC.js";import{Bt as r,Et as i,Ft as a,K as o,Mt as s,Nt as c,St as l,bt as u,f as d,ot as f,xt as p,yt as m}from"./abfragen-DNMpmgyt.js";import{t as h}from"./button-BHVKhtQ6.js";import{D as g,H as _,O as v,U as y,m as b,yt as x,z as S}from"./index-Cdq4iteU.js";import{i as C,n as w,r as T,t as E}from"./Plattenliste-Cghr_ymA.js";var D=t(),O=e(),k={erledigt:{text:`Erledigt`,farbe:`text-gruen-text`,punkt:`bg-gruen`},fehler:{text:`Fehler`,farbe:`text-rot-text`,punkt:`bg-rot`},geplant:{text:`Geplant`,farbe:`text-text-3`,punkt:`bg-white/25`}};function A(e){let t=(0,D.c)(23),{e:r}=e,i=k[r.status]??k.geplant,a=r.status===`geplant`&&/update/i.test(r.titel)?`text-cyan-text`:i.farbe,o;t[0]===r.zeit?o=t[1]:(o=m(r.zeit),t[0]=r.zeit,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,O.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:o}),t[2]=o,t[3]=s);let c;t[4]===r.text?c=t[5]:(c=r.text&&(0,O.jsxs)(`span`,{className:`text-text-3`,children:[`, `,r.text]}),t[4]=r.text,t[5]=c);let l;t[6]!==r.titel||t[7]!==c?(l=(0,O.jsxs)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-base break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:[r.titel,c]}),t[6]=r.titel,t[7]=c,t[8]=l):l=t[8];let u;t[9]===a?u=t[10]:(u=n(`etikett col-start-2 row-start-1 flex items-center gap-1.5 justify-self-end text-[10.5px] tracking-[0.12em] @sm:col-start-3`,a),t[9]=a,t[10]=u);let d;t[11]===i.punkt?d=t[12]:(d=n(`size-1.5 rounded-full`,i.punkt),t[11]=i.punkt,t[12]=d);let f;t[13]===d?f=t[14]:(f=(0,O.jsx)(`span`,{"aria-hidden":!0,className:d}),t[13]=d,t[14]=f);let p;t[15]!==i.text||t[16]!==u||t[17]!==f?(p=(0,O.jsxs)(`span`,{className:u,children:[f,i.text]}),t[15]=i.text,t[16]=u,t[17]=f,t[18]=p):p=t[18];let h;return t[19]!==s||t[20]!==l||t[21]!==p?(h=(0,O.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-white/[0.06] py-2.5 first:border-t-0 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[s,l,p]}),t[19]=s,t[20]=l,t[21]=p,t[22]=h):h=t[22],h}function j(e){let t=(0,D.c)(6),{gelaufen:n,geplant:r}=e,i;t[0]!==n||t[1]!==r?(i=[...n,...r.slice(0,5)],t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=i;if(a.length===0){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Heute ist noch nichts gelaufen, und nichts ist geplant.`}),t[3]=e):e=t[3],e}let o;return t[4]===a?o=t[5]:(o=(0,O.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:a.map(M)}),t[4]=a,t[5]=o),o}function M(e){return(0,O.jsx)(A,{e},`${e.titel}-${e.zeit}`)}function N(e){let t=(0,D.c)(28),{anteil:n,farbe:r,zonen:i,mitte:a,unter:o,beschriftung:s,ariaText:l,hinweis:u}=e,d=r===void 0?`var(--box)`:r,f;t[0]===i?f=t[1]:(f=i===void 0?[]:i,t[0]=i,t[1]=f);let p=f,m=n!=null&&n>.004,h;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,O.jsx)(`path`,{d:c(0,1,75),fill:`none`,stroke:`rgb(255 255 255 / 0.07)`,strokeWidth:12,strokeLinecap:`round`}),t[2]=h):h=t[2];let g;t[3]===p?g=t[4]:(g=p.map(P),t[3]=p,t[4]=g);let _;t[5]!==n||t[6]!==d||t[7]!==m?(_=m&&(0,O.jsx)(`path`,{d:c(0,n,75),fill:`none`,stroke:d,strokeWidth:12,strokeLinecap:`round`,style:{filter:`drop-shadow(0 0 7px color-mix(in srgb, ${d} 60%, transparent))`}}),t[5]=n,t[6]=d,t[7]=m,t[8]=_):_=t[8];let v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v={fontFamily:`var(--font-anzeige)`,fontSize:40,fontWeight:600,fill:`var(--foreground)`},t[9]=v):v=t[9];let y;t[10]===a?y=t[11]:(y=(0,O.jsx)(`text`,{x:`100`,y:`102`,textAnchor:`middle`,style:v,children:a}),t[10]=a,t[11]=y);let b;t[12]===o?b=t[13]:(b=o&&(0,O.jsx)(`text`,{x:`100`,y:`124`,textAnchor:`middle`,style:{fontFamily:`var(--font-sans)`,fontSize:13,fontWeight:500,fill:`var(--text-3)`},children:o}),t[12]=o,t[13]=b);let x;t[14]!==l||t[15]!==g||t[16]!==_||t[17]!==y||t[18]!==b?(x=(0,O.jsxs)(`svg`,{viewBox:`0 0 200 150`,className:`h-auto w-full max-w-[200px]`,role:`img`,"aria-label":l,children:[h,g,_,y,b]}),t[14]=l,t[15]=g,t[16]=_,t[17]=y,t[18]=b,t[19]=x):x=t[19];let S;t[20]===s?S=t[21]:(S=(0,O.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:s}),t[20]=s,t[21]=S);let C;t[22]===u?C=t[23]:(C=u&&(0,O.jsx)(`span`,{className:`text-center text-xs ${u.className}`,children:u.text}),t[22]=u,t[23]=C);let w;return t[24]!==x||t[25]!==S||t[26]!==C?(w=(0,O.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col items-center gap-1`,children:[x,S,C]}),t[24]=x,t[25]=S,t[26]=C,t[27]=w):w=t[27],w}function P(e){return(0,O.jsx)(`path`,{d:c(e.von,e.bis,86),fill:`none`,stroke:e.farbe,strokeWidth:4,strokeLinecap:`round`},`${e.von}-${e.bis}`)}function F(e){let t=(0,D.c)(12),{zustand:n,lampen:r,onAnsehen:i}=e,o;t[0]===n?o=t[1]:(o=a(n),t[0]=n,t[1]=o);let s=o,c=s.art,l=s.oben,u=s.mitte,d=s.unten,f=s.art===`gelb`||s.art===`rot`,p;t[2]===r?p=t[3]:(p=r.map(I),t[2]=r,t[3]=p);let m;return t[4]!==s.art||t[5]!==s.mitte||t[6]!==s.oben||t[7]!==s.unten||t[8]!==i||t[9]!==f||t[10]!==p?(m=(0,O.jsx)(T,{art:c,oben:l,mitte:u,unten:d,aktiv:f,onAnsehen:i,label:`Warnpanel`,children:p}),t[4]=s.art,t[5]=s.mitte,t[6]=s.oben,t[7]=s.unten,t[8]=i,t[9]=f,t[10]=p,t[11]=m):m=t[11],m}function I(e){return(0,O.jsx)(w,{bild:S(e.id),name:e.label,wert:e.wert,zustand:e.zustand},e.id)}function L(e){let t=(0,D.c)(2),{z:n}=e,r;return t[0]===n?r=t[1]:(r=(0,O.jsx)(`span`,{className:`ziffern inline-flex h-[1.75em] w-[1.1875em] shrink-0 items-center justify-center rounded-lg border border-white/10 bg-gradient-to-b from-white/[0.07] to-white/[0.02] font-medium shadow-[inset_0_1px_0_rgb(255_255_255/0.06)]`,children:n}),t[0]=n,t[1]=r),r}function R(e){let t=(0,D.c)(25),{sekunden:n}=e,r;t[0]===n?r=t[1]:(r=l(n),t[0]=n,t[1]=r);let i=r,a=String(Math.min(i?.[0]??0,99)),o;t[2]===a?o=t[3]:(o=a.padStart(2,`0`),t[2]=a,t[3]=o);let s=o,c=String(i?.[1]??0),u;t[4]===c?u=t[5]:(u=c.padStart(2,`0`),t[4]=c,t[5]=u);let d=u,f=i?`Laufzeit ohne Neustart: ${i[0]} Tage, ${i[1]} Stunden`:`Laufzeit unbekannt`,p=i?s[0]:`–`,m;t[6]===p?m=t[7]:(m=(0,O.jsx)(L,{z:p}),t[6]=p,t[7]=m);let h=i?s[1]:`–`,g;t[8]===h?g=t[9]:(g=(0,O.jsx)(L,{z:h}),t[8]=h,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,O.jsx)(`span`,{className:`etikett mr-[0.444em] ml-[0.111em] text-[0.5625em] text-text-3`,children:`T`}),t[10]=_):_=t[10];let v=i?d[0]:`–`,y;t[11]===v?y=t[12]:(y=(0,O.jsx)(L,{z:v}),t[11]=v,t[12]=y);let b=i?d[1]:`–`,x;t[13]===b?x=t[14]:(x=(0,O.jsx)(L,{z:b}),t[13]=b,t[14]=x);let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,O.jsx)(`span`,{className:`etikett ml-[0.111em] text-[0.5625em] text-text-3`,children:`H`}),t[15]=S):S=t[15];let C;t[16]!==y||t[17]!==x||t[18]!==m||t[19]!==g||t[20]!==f?(C=(0,O.jsxs)(`div`,{"aria-label":f,role:`img`,className:`flex h-[min(75cqw,150px)] items-center gap-[0.1875em] pb-[min(10cqw,20px)] text-[length:clamp(14px,14.5cqw,32px)]`,children:[m,g,_,y,x,S]}),t[16]=y,t[17]=x,t[18]=m,t[19]=g,t[20]=f,t[21]=C):C=t[21];let w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,O.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:`Ohne Neustart`}),t[22]=w):w=t[22];let T;return t[23]===C?T=t[24]:(T=(0,O.jsxs)(`figure`,{className:`@container m-0 flex min-w-0 flex-col items-center justify-end gap-1`,children:[C,w]}),t[23]=C,t[24]=T),T}function z(e){let t=(0,D.c)(53),{box:n}=e,a=i(),o=a?.ram_used??n.ram_used,s=a?.ram_total??n.ram_total,c=a?.temp_cpu??n.temp_cpu,l=a?.temp_gpu??n.temp_gpu,d=n.platte,f=d?.vorhersage,m;t[0]===f?m=t[1]:(m=v(f),t[0]=f,t[1]=m);let h=m,_=a?.uptime_s??n.uptime_s,y=o!=null&&s?o/s:null,b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b={"--i":1},t[2]=b):b=t[2];let x;t[3]===o?x=t[4]:(x=o==null?`–`:String(Math.round(u(o)??0)),t[3]=o,t[4]=x);let S;t[5]===s?S=t[6]:(S=s?`von ${Math.round(u(s)??0)} GB`:void 0,t[5]=s,t[6]=S);let C;t[7]!==y||t[8]!==o||t[9]!==s?(C=y==null?`Speicher unbekannt`:`Speicher: ${p(o)} von ${p(s)} belegt`,t[7]=y,t[8]=o,t[9]=s,t[10]=C):C=t[10];let w;t[11]!==y||t[12]!==x||t[13]!==S||t[14]!==C?(w=(0,O.jsx)(N,{beschriftung:`Speicher`,anteil:y,mitte:x,unter:S,ariaText:C}),t[11]=y,t[12]=x,t[13]=S,t[14]=C,t[15]=w):w=t[15];let T=c==null?null:c/100,E;t[16]===c?E=t[17]:(E=r(c),t[16]=c,t[17]=E);let k;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(k=[{von:.7,bis:.85,farbe:`var(--bernstein)`},{von:.85,bis:1,farbe:`var(--rot)`}],t[18]=k):k=t[18];let A;t[19]===c?A=t[20]:(A=c==null?`–`:`${Math.round(c)}°`,t[19]=c,t[20]=A);let j;t[21]===l?j=t[22]:(j=l==null?void 0:`GPU ${Math.round(l)}°`,t[21]=l,t[22]=j);let M;t[23]===c?M=t[24]:(M=c==null?`Temperatur unbekannt`:`Temperatur ${Math.round(c)} Grad`,t[23]=c,t[24]=M);let P;t[25]!==A||t[26]!==j||t[27]!==M||t[28]!==T||t[29]!==E?(P=(0,O.jsx)(N,{beschriftung:`Temperatur`,anteil:T,farbe:E,zonen:k,mitte:A,unter:j,ariaText:M}),t[25]=A,t[26]=j,t[27]=M,t[28]=T,t[29]=E,t[30]=P):P=t[30];let F=d?d.percent/100:null,I=d&&d.percent>=90?`var(--rot)`:d&&d.percent>=80?`var(--bernstein)`:`var(--box)`,L;t[31]===d?L=t[32]:(L=d?`${Math.round(d.percent)}%`:`–`,t[31]=d,t[32]=L);let z;t[33]===d?z=t[34]:(z=d?`${p(d.used)} / ${p(d.total)}`:void 0,t[33]=d,t[34]=z);let B;t[35]===d?B=t[36]:(B=d?`Platte zu ${Math.round(d.percent)} Prozent belegt`:`Platte unbekannt`,t[35]=d,t[36]=B);let V;t[37]===h?V=t[38]:(V=h?{text:h.text,className:g[h.stufe]}:null,t[37]=h,t[38]=V);let H;t[39]!==F||t[40]!==I||t[41]!==L||t[42]!==z||t[43]!==B||t[44]!==V?(H=(0,O.jsx)(N,{beschriftung:`Platte`,anteil:F,farbe:I,mitte:L,unter:z,ariaText:B,hinweis:V}),t[39]=F,t[40]=I,t[41]=L,t[42]=z,t[43]=B,t[44]=V,t[45]=H):H=t[45];let U;t[46]===_?U=t[47]:(U=(0,O.jsx)(R,{sekunden:_}),t[46]=_,t[47]=U);let W;return t[48]!==P||t[49]!==H||t[50]!==U||t[51]!==w?(W=(0,O.jsxs)(`section`,{"aria-label":`Instrumente`,className:`auftauchen flaeche grid grid-cols-2 gap-x-4 gap-y-6 rounded-3xl px-4 py-5 lg:grid-cols-4 lg:px-6`,style:b,children:[w,P,H,U]}),t[48]=P,t[49]=H,t[50]=U,t[51]=w,t[52]=W):W=t[52],W}var B={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`};function V(e){let t=(0,D.c)(14),{radar:n}=e;if(!n?.kandidaten)return null;let r,i;t[0]===n.kandidaten?(r=t[1],i=t[2]):(r=n.kandidaten.filter(U),i=r.find(H)??r[0],t[0]=n.kandidaten,t[1]=r,t[2]=i);let a=i,o=r.length===1?``:`en`,c;t[3]!==r.length||t[4]!==o?(c=(0,O.jsxs)(`span`,{className:`etikett text-[11px] tracking-[0.14em] text-cyan-text`,children:[`Radar · `,r.length,` Kandidat`,o]}),t[3]=r.length,t[4]=o,t[5]=c):c=t[5];let l;t[6]===a?l=t[7]:(l=a?(0,O.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-[15px]`,children:[(0,O.jsx)(`span`,{className:`ziffern`,children:a.name}),(0,O.jsxs)(`span`,{className:`text-text-2`,children:[`fürs `,a.rolle===`hirn`?`Hirn`:`Coden`]}),(0,O.jsx)(_,{art:B[a.status]??`grau`,children:s[a.status]??a.status})]}):(0,O.jsx)(`span`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}),t[6]=a,t[7]=l);let u;t[8]!==c||t[9]!==l?(u=(0,O.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[c,l]}),t[8]=c,t[9]=l,t[10]=u):u=t[10];let d;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,O.jsx)(h,{variant:`info`,size:`sm`,asChild:!0,children:(0,O.jsx)(x,{to:`/box/modelle`,hash:`radar`,children:`Ansehen`})}),t[11]=d):d=t[11];let f;return t[12]===u?f=t[13]:(f=(0,O.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3 rounded-2xl bg-cyan/[0.06] px-4 py-3.5 ring-1 ring-cyan/30 ring-inset`,children:[u,d]}),t[12]=u,t[13]=f),f}function H(e){return e.status===`bestanden`}function U(e){return[`bestanden`,`wartet`,`neu`].includes(e.status)}function W(){let e=(0,D.c)(35),{data:t,error:n,isPending:r}=f(),i=o(),a=d();if(r){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(y,{text:`Die Box meldet sich gleich …`}),e[0]=t):t=e[0],t}if(!t){let t=`MC2 antwortet nicht: ${n?.message??`keine Daten`}`,r;return e[1]===t?r=e[2]:(r=(0,O.jsx)(y,{fehler:!0,text:t}),e[1]=t,e[2]=r),r}let s=t.hinweise.length,c;e[3]!==t.lampen||e[4]!==t.zustand?(c=(0,O.jsx)(F,{zustand:t.zustand,lampen:t.lampen,onAnsehen:G}),e[3]=t.lampen,e[4]=t.zustand,e[5]=c):c=e[5];let l;e[6]===t.box?l=e[7]:(l=(0,O.jsx)(z,{box:t.box}),e[6]=t.box,e[7]=l);let u=s?`bernstein`:`gruen`,p=s?`${s} offen`:`alles erledigt`,m;e[8]!==u||e[9]!==p?(m=(0,O.jsx)(_,{art:u,children:p}),e[8]=u,e[9]=p,e[10]=m):m=e[10];let h;e[11]!==t.hinweise||e[12]!==t.verlauf?(h=(0,O.jsx)(C,{hinweise:t.hinweise,verlauf:t.verlauf}),e[11]=t.hinweise,e[12]=t.verlauf,e[13]=h):h=e[13];let g;e[14]!==m||e[15]!==h?(g=(0,O.jsx)(b,{titel:`Checkliste`,id:`checkliste`,rechts:m,children:h}),e[14]=m,e[15]=h,e[16]=g):g=e[16];let v;e[17]!==t.flugplan.gelaufen||e[18]!==t.flugplan.geplant?(v=(0,O.jsx)(j,{gelaufen:t.flugplan.gelaufen,geplant:t.flugplan.geplant}),e[17]=t.flugplan.gelaufen,e[18]=t.flugplan.geplant,e[19]=v):v=e[19];let x;e[20]===i.data?x=e[21]:(x=(0,O.jsx)(V,{radar:i.data}),e[20]=i.data,e[21]=x);let S;e[22]!==v||e[23]!==x?(S=(0,O.jsxs)(b,{titel:`Flugplan`,children:[v,x]}),e[22]=v,e[23]=x,e[24]=S):S=e[24];let w;e[25]!==g||e[26]!==S?(w=(0,O.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] md:gap-6`,children:[g,S]}),e[25]=g,e[26]=S,e[27]=w):w=e[27];let T;e[28]===a.data?T=e[29]:(T=a.data&&a.data.platten.length>0&&(0,O.jsx)(b,{titel:`Plattengesundheit`,id:`platten`,children:(0,O.jsx)(E,{platten:a.data.platten})}),e[28]=a.data,e[29]=T);let k;return e[30]!==c||e[31]!==l||e[32]!==w||e[33]!==T?(k=(0,O.jsxs)(O.Fragment,{children:[c,l,w,T]}),e[30]=c,e[31]=l,e[32]=w,e[33]=T,e[34]=k):k=e[34],k}function G(){return document.getElementById(`checkliste`)?.scrollIntoView({behavior:`smooth`,block:`start`})}export{W as StartSeite};