User 25.09.: „Warum kann ich Modell-Tests nicht selbst anstoßen, sondern muss immer auf die Box warten?“ Nachts testet das Radar weiter selbst. Tagsüber jetzt auch per Knopf – aber nur, wenn Kandidat, Warm-Set UND der heutige Coder zusammen unter die 115-GB-Grenze passen (der Test-Wächter stoppt den Kandidaten erst bis zu 10 s, nachdem der Coder zu laden beginnt), und nicht 00:00–03:30. Sonst steht der Grund beim Kandidaten. Test als Auftrag (radar_lauf.py --test), höchstens 2 h, dieselben Leitplanken wie nachts; jedes Ergebnis kommt als Meldung. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 line
40 KiB
JavaScript
1 line
40 KiB
JavaScript
import{i as e,n as t,r as n,s as r}from"./dist-D4CVSex9.js";import{n as i,t as a}from"./useSelector-uUwrspuX.js";import{n as o}from"./useMatch-CiyhmkMV.js";import{t as s}from"./chevron-right-OsYQC36T.js";import{t as c}from"./search-CL90ahDw.js";import{$ as l,$t as u,A as d,Ct as f,Ht as p,Lt as m,Mt as h,N as g,Ot as _,P as v,Q as y,Rt as b,St as x,Vt as S,at as C,ct as w,en as T,et as E,f as D,it as O,k,kt as A,mt as j,p as M,q as N,st as P,tt as F,u as I,wt as L,zt as R}from"./index-21ZM2s1S.js";import{t as z}from"./button-D8rvET0Z.js";import{a as B,i as V,n as H,r as U,t as ee}from"./sheet-CgwkrC7e.js";import{t as te}from"./Bestaetigen-BbaFDWye.js";import{a as W,r as ne,s as G,t as K}from"./Auftraege-4M6-VkEi.js";function q(e){let t=i();return a(t.stores.location,o(e,t))}var J=t(),Y=r(e(),1),X=n(),re={coder:`Coder`};function ie(e){let t=(0,J.c)(102),{offen:n,onSchliessen:r,rollenJetzt:i}=e,a=N(),[o,s]=(0,Y.useState)(``),[c,l]=(0,Y.useState)(``),[d,f]=(0,Y.useState)(null),[m,h]=(0,Y.useState)(``),[g,v]=(0,Y.useState)(null),y=(0,Y.useRef)(!1),b,x;t[0]===c?(b=t[1],x=t[2]):(b=[`hf-suche`,c],x=()=>p(`/api/hf/search?q=${encodeURIComponent(c)}`),t[0]=c,t[1]=b,t[2]=x);let S=c.length>1,C;t[3]!==b||t[4]!==x||t[5]!==S?(C={queryKey:b,queryFn:x,enabled:S},t[3]=b,t[4]=x,t[5]=S,t[6]=C):C=t[6];let w=u(C),T,E;t[7]===d?(T=t[8],E=t[9]):(T=[`hf-quants`,d],E=()=>p(`/api/hf/quants?repo=${encodeURIComponent(d??``)}`),t[7]=d,t[8]=T,t[9]=E);let D=!!d,O;t[10]!==T||t[11]!==E||t[12]!==D?(O={queryKey:T,queryFn:E,enabled:D},t[10]=T,t[11]=E,t[12]=D,t[13]=O):O=t[13];let k=u(O),A,j,M,P,F,I,R,W,K,q,ie,Z,se;if(t[14]!==g||t[15]!==o||t[16]!==a||t[17]!==n||t[18]!==r||t[19]!==k.data||t[20]!==k.error||t[21]!==k.isError||t[22]!==k.isFetching||t[23]!==d||t[24]!==m||t[25]!==i||t[26]!==w){let e=(k.data?.quants??[]).map(oe),c=m?re[m]??m:null,u;t[40]!==d||t[41]!==m||t[42]!==i||t[43]!==c?(u=c&&d?G(d,c,i[m]):null,t[40]=d,t[41]=m,t[42]=i,t[43]=c,t[44]=u):u=t[44],M=u;let p;t[45]!==g||t[46]!==a||t[47]!==r||t[48]!==d||t[49]!==m?(p=function(){d&&g&&!y.current&&(y.current=!0,a.mutate({repo:d,quant:g.quant,rolle:m||null},{onSuccess:e=>{v(null),e.ok!==!1&&r()},onError:()=>v(null),onSettled:()=>{y.current=!1}}))},t[45]=g,t[46]=a,t[47]=r,t[48]=d,t[49]=m,t[50]=p):p=t[50],P=p,j=ee,ie=n,t[51]===r?Z=t[52]:(Z=e=>!e&&r(),t[51]=r,t[52]=Z),A=H,R=`right`,W=`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-xl`,t[53]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,X.jsxs)(V,{children:[(0,X.jsx)(B,{className:`schild text-lg`,children:`Modelle selbst suchen`}),(0,X.jsx)(U,{className:`text-text-2`,children:`Auf Hugging Face suchen, Quantisierung wählen, installieren.`})]}),t[53]=K):K=t[53];let b;t[54]===o?b=t[55]:(b=e=>{e.preventDefault(),f(null),l(o.trim())},t[54]=o,t[55]=b);let x;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,X.jsx)(`label`,{htmlFor:`hf-suche`,className:`sr-only`,children:`Suchbegriff`}),t[56]=x):x=t[56];let S;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>s(e.target.value),t[57]=S):S=t[57];let C;t[58]===o?C=t[59]:(C=(0,X.jsx)(`input`,{id:`hf-suche`,value:o,onChange:S,placeholder:`z. B. Qwen3.8 GGUF`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),t[58]=o,t[59]=C);let T;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,X.jsx)(z,{type:`submit`,children:`Suchen`}),t[60]=T):T=t[60],t[61]!==b||t[62]!==C?(q=(0,X.jsxs)(`form`,{className:`flex gap-2 px-4`,onSubmit:b,children:[x,C,T]}),t[61]=b,t[62]=C,t[63]=q):q=t[63],se=`flex flex-col px-4 pb-4`,t[64]!==d||t[65]!==w?(F=!d&&(0,X.jsxs)(X.Fragment,{children:[w.isFetching&&(0,X.jsx)(`p`,{role:`status`,className:`py-3 text-sm text-text-2`,children:`Suche läuft …`}),!w.isFetching&&w.isError&&(0,X.jsxs)(`p`,{role:`alert`,className:`py-3 text-sm text-rot-text`,children:[`Die Suche ging nicht: `,w.error.message]}),!w.isFetching&&w.data?.results.length===0&&(0,X.jsx)(`p`,{className:`py-3 text-sm text-text-2`,children:`Keine Treffer. Versuch einen anderen Suchbegriff — oder Hugging Face ist gerade nicht erreichbar.`}),w.data?.results.map(e=>(0,X.jsxs)(`button`,{type:`button`,onClick:()=>f(e.repo),className:`flex min-h-11 items-center justify-between gap-3 border-t border-linie py-2 text-left hover:text-cyan`,children:[(0,X.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:e.repo}),(0,X.jsxs)(`span`,{className:`ziffern shrink-0 text-xs text-text-3`,children:[_(e.downloads),` ↓`]})]},e.repo))]}),t[64]=d,t[65]=w,t[66]=F):F=t[66],I=d&&(0,X.jsxs)(`div`,{className:`flex flex-col gap-3 pt-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:d}),(0,X.jsx)(z,{variant:`ghost`,size:`sm`,onClick:()=>f(null),children:`Zurück`})]}),(0,X.jsxs)(`label`,{className:`flex flex-wrap items-center gap-3 text-sm text-text-2`,children:[`Rolle`,(0,X.jsxs)(`select`,{value:m,onChange:e=>h(e.target.value),className:`h-11 min-w-0 rounded-lg border border-linie-stark bg-erhaben px-3 text-foreground`,children:[(0,X.jsx)(`option`,{value:``,children:`ohne Rolle (nur installieren)`}),Object.entries(re).map(ae)]})]}),M&&(0,X.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-sm leading-relaxed text-bernstein`,children:M}),k.isFetching&&(0,X.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Quantisierungen werden gelesen …`}),!k.isFetching&&k.isError&&(0,X.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Dateien dieses Modells ließen sich nicht lesen: `,k.error.message]}),!k.isFetching&&k.data&&e.length===0&&(0,X.jsx)(`p`,{className:`text-sm text-text-2`,children:`Hier gibt es keine GGUF-Dateien, die sich installieren lassen.`}),e.map(e=>{let t=e.quant??e.name??`?`,n=e.total_bytes??e.size_bytes;return(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2`,children:[(0,X.jsx)(`span`,{className:`ziffern text-sm`,children:t}),(0,X.jsxs)(`span`,{className:`flex items-center gap-3`,children:[n?(0,X.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:L(n,1)}):null,(0,X.jsx)(z,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:()=>v({quant:t,bytes:n}),children:`Installieren`})]})]},t)})]}),t[14]=g,t[15]=o,t[16]=a,t[17]=n,t[18]=r,t[19]=k.data,t[20]=k.error,t[21]=k.isError,t[22]=k.isFetching,t[23]=d,t[24]=m,t[25]=i,t[26]=w,t[27]=A,t[28]=j,t[29]=M,t[30]=P,t[31]=F,t[32]=I,t[33]=R,t[34]=W,t[35]=K,t[36]=q,t[37]=ie,t[38]=Z,t[39]=se}else A=t[27],j=t[28],M=t[29],P=t[30],F=t[31],I=t[32],R=t[33],W=t[34],K=t[35],q=t[36],ie=t[37],Z=t[38],se=t[39];let ce;t[67]!==F||t[68]!==I||t[69]!==se?(ce=(0,X.jsxs)(`div`,{className:se,children:[F,I]}),t[67]=F,t[68]=I,t[69]=se,t[70]=ce):ce=t[70];let le=g!==null,Q;t[71]!==g||t[72]!==d?(Q=g&&d?`${d} (${g.quant}${g.bytes?`, ${L(g.bytes,1)}`:``}) wird heruntergeladen und in llama-swap eingetragen.`+(g.bytes?``:` Die Größe siehst du beim Auftrag, sobald der Download läuft.`):``,t[71]=g,t[72]=d,t[73]=Q):Q=t[73];let ue=a.isPending?`Wird gestartet …`:`Installieren`,de=a.isPending,fe;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(fe=()=>v(null),t[74]=fe):fe=t[74];let pe;t[75]===M?pe=t[76]:(pe=M&&(0,X.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-[15px] leading-relaxed text-bernstein`,children:M}),t[75]=M,t[76]=pe);let me=!!m,he;t[77]===me?he=t[78]:(he=ne(me),t[77]=me,t[78]=he);let ge;t[79]===he?ge=t[80]:(ge=(0,X.jsx)(`p`,{className:`m-0 text-[15px] leading-relaxed text-text-2`,children:he}),t[79]=he,t[80]=ge);let _e;t[81]!==a.isPending||t[82]!==P||t[83]!==le||t[84]!==Q||t[85]!==ue||t[86]!==pe||t[87]!==ge?(_e=(0,X.jsxs)(te,{offen:le,titel:`Modell installieren?`,text:Q,knopf:ue,gesperrt:de,onNein:fe,onJa:P,children:[pe,ge]}),t[81]=a.isPending,t[82]=P,t[83]=le,t[84]=Q,t[85]=ue,t[86]=pe,t[87]=ge,t[88]=_e):_e=t[88];let $;t[89]!==A||t[90]!==R||t[91]!==W||t[92]!==K||t[93]!==q||t[94]!==ce||t[95]!==_e?($=(0,X.jsxs)(A,{side:R,className:W,children:[K,q,ce,_e]}),t[89]=A,t[90]=R,t[91]=W,t[92]=K,t[93]=q,t[94]=ce,t[95]=_e,t[96]=$):$=t[96];let ve;return t[97]!==j||t[98]!==ie||t[99]!==Z||t[100]!==$?(ve=(0,X.jsx)(j,{open:ie,onOpenChange:Z,children:$}),t[97]=j,t[98]=ie,t[99]=Z,t[100]=$,t[101]=ve):ve=t[101],ve}function ae(e){let[t,n]=e;return(0,X.jsx)(`option`,{value:t,children:n},t)}function oe(e){return typeof e==`string`?{quant:e}:e}var Z=115;function se(e){let t=(0,J.c)(55),{modelle:n,laufend:r}=e,i=A(),a=j(),o,s,c,l,u,d,p,m,h,g;if(t[0]!==r||t[1]!==i?.ram_total||t[2]!==i?.ram_used||t[3]!==n||t[4]!==a){let e=f(i?.ram_total??a.data?.box.ram_total)??122.7,_=f(i?.ram_used??a.data?.box.ram_used)??0,v;t[15]===r?v=t[16]:(v=e=>r.includes(e.name),t[15]=r,t[16]=v);let y=n.filter(v).reduce(ce,0);s=Math.max(0,_-y);let b=t=>`${Math.min(100,t/e*100)}%`;o=I,m=`Speicher`,h=(0,X.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[Math.round(_),` von `,Math.round(e),` GB belegt · Grenze ~`,Z,` GB`]});let x=`Speicher: ${Math.round(_)} von ${Math.round(e)} GB belegt`,S=b(_),C;t[17]===S?C=t[18]:(C={width:S},t[17]=S,t[18]=C);let w=`${_?y/_*100:0}%`,T;t[19]===w?T=t[20]:(T=(0,X.jsx)(`div`,{className:`h-full bg-cyan`,style:{width:w}}),t[19]=w,t[20]=T);let E=`${_?s/_*100:0}%`,D;t[21]===E?D=t[22]:(D=(0,X.jsx)(`div`,{className:`h-full bg-cyan/35`,style:{width:E}}),t[21]=E,t[22]=D);let O;t[23]!==C||t[24]!==T||t[25]!==D?(O=(0,X.jsxs)(`div`,{className:`absolute inset-y-0 left-0 flex overflow-hidden rounded-lg`,style:C,children:[T,D]}),t[23]=C,t[24]=T,t[25]=D,t[26]=O):O=t[26];let k=b(Z),A;t[27]===k?A=t[28]:(A=(0,X.jsx)(`div`,{className:`absolute -top-1.5 -bottom-1.5 w-0.5 bg-bernstein`,style:{left:k}}),t[27]=k,t[28]=A),t[29]!==x||t[30]!==O||t[31]!==A?(g=(0,X.jsxs)(`div`,{className:`relative h-8 rounded-lg bg-erhaben`,role:`img`,"aria-label":x,children:[O,A]}),t[29]=x,t[30]=O,t[31]=A,t[32]=g):g=t[32],p=`flex flex-wrap gap-x-6 gap-y-2 text-sm text-text-2`,c=`flex items-center gap-2`,t[33]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,X.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan`}),t[33]=l):l=t[33],u=` Geladene Modelle: `,d=Math.round(y),t[0]=r,t[1]=i?.ram_total,t[2]=i?.ram_used,t[3]=n,t[4]=a,t[5]=o,t[6]=s,t[7]=c,t[8]=l,t[9]=u,t[10]=d,t[11]=p,t[12]=m,t[13]=h,t[14]=g}else o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],p=t[11],m=t[12],h=t[13],g=t[14];let _;t[34]!==c||t[35]!==l||t[36]!==u||t[37]!==d?(_=(0,X.jsxs)(`span`,{className:c,children:[l,u,d,` GB Dateien`]}),t[34]=c,t[35]=l,t[36]=u,t[37]=d,t[38]=_):_=t[38];let v;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,X.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan/35`}),t[39]=v):v=t[39];let y;t[40]===s?y=t[41]:(y=Math.round(s),t[40]=s,t[41]=y);let b;t[42]===y?b=t[43]:(b=(0,X.jsxs)(`span`,{className:`flex items-center gap-2`,children:[v,` Cache, Dienste, System: `,y,` GB`]}),t[42]=y,t[43]=b);let x;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,X.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`h-3 w-0.5 bg-bernstein`}),` Ab hier wird es eng`]}),t[44]=x):x=t[44];let S;t[45]!==b||t[46]!==p||t[47]!==_?(S=(0,X.jsxs)(`div`,{className:p,children:[_,b,x]}),t[45]=b,t[46]=p,t[47]=_,t[48]=S):S=t[48];let C;return t[49]!==o||t[50]!==S||t[51]!==m||t[52]!==h||t[53]!==g?(C=(0,X.jsxs)(o,{titel:m,rechts:h,children:[g,S]}),t[49]=o,t[50]=S,t[51]=m,t[52]=h,t[53]=g,t[54]=C):C=t[54],C}function ce(e,t){return e+(f(t.size_bytes)??0)}function le(e){let t=(0,J.c)(7),{name:n,wert:r}=e,i;t[0]===n?i=t[1]:(i=(0,X.jsx)(`dt`,{className:`text-xs text-text-3`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,X.jsx)(`dd`,{className:`ziffern m-0 text-lg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Q(e){let t=(0,J.c)(48),{titel:n,modell:r,zwilling:i,laeuft:a,nutzer:o}=e,s=l();if(!r){let e;t[0]===n?e=t[1]:(e=(0,X.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[0]=n,t[1]=e);let r;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,X.jsx)(D,{children:`Frei`}),t[2]=r):r=t[2];let i;t[3]===e?i=t[4]:(i=(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[e,r]}),t[3]=e,t[4]=i);let a,o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,X.jsx)(`h3`,{className:`font-anzeige text-xl font-semibold text-text-2`,children:`Nicht belegt`}),o=(0,X.jsx)(`p`,{className:`text-sm text-text-2`,children:`Nur belegen, wenn ein Modell hier echten Mehrwert bringt. Das Radar meldet Kandidaten.`}),t[5]=a,t[6]=o):(a=t[5],o=t[6]);let s;return t[7]===i?s=t[8]:(s=(0,X.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-dashed border-linie-stark p-5`,children:[i,a,o]}),t[7]=i,t[8]=s),s}let c;t[9]!==r.ctx||t[10]!==r.parallel_slots?(c=r.ctx?Math.round(r.ctx/Math.max(1,r.parallel_slots)/1024):null,t[9]=r.ctx,t[10]=r.parallel_slots,t[11]=c):c=t[11];let u=c,d=!!r.capabilities?.vision||!!i,f;t[12]===n?f=t[13]:(f=(0,X.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[12]=n,t[13]=f);let p=a?`gruen`:`grau`,m=a?`Geladen`:`Auf Abruf`,h;t[14]!==p||t[15]!==m?(h=(0,X.jsx)(D,{art:p,children:m}),t[14]=p,t[15]=m,t[16]=h):h=t[16];let g;t[17]!==f||t[18]!==h?(g=(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[f,h]}),t[17]=f,t[18]=h,t[19]=g):g=t[19];let _;t[20]===r.name?_=t[21]:(_=(0,X.jsx)(`h3`,{className:`ziffern m-0 text-lg font-medium break-all`,children:r.name}),t[20]=r.name,t[21]=_);let v;t[22]===r.size_bytes?v=t[23]:(v=L(r.size_bytes),t[22]=r.size_bytes,t[23]=v);let y;t[24]===v?y=t[25]:(y=(0,X.jsx)(le,{name:`Größe`,wert:v}),t[24]=v,t[25]=y);let b=u?`${u}k`:`–`,x;t[26]===b?x=t[27]:(x=(0,X.jsx)(le,{name:`Kontext`,wert:b}),t[26]=b,t[27]=x);let S=d?`ja`:`nein`,C;t[28]===S?C=t[29]:(C=(0,X.jsx)(le,{name:`Bilder`,wert:S}),t[28]=S,t[29]=C);let w;t[30]!==x||t[31]!==C||t[32]!==y?(w=(0,X.jsxs)(`dl`,{className:`m-0 grid grid-cols-3 gap-3`,children:[y,x,C]}),t[30]=x,t[31]=C,t[32]=y,t[33]=w):w=t[33];let T=r.spec_active?` Mit Draft-Beschleunigung.`:``,E=i?` Bilder sieht es über seinen Bild-Zwilling, der nur bei Bedarf lädt.`:``,O;t[34]!==o||t[35]!==T||t[36]!==E?(O=(0,X.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Genutzt von `,o,`.`,T,E]}),t[34]=o,t[35]=T,t[36]=E,t[37]=O):O=t[37];let k;t[38]!==s||t[39]!==a||t[40]!==r.name?(k=!a&&(0,X.jsx)(z,{variant:`outline`,size:`sm`,className:`mt-auto self-start`,onClick:()=>s.mutate(r.name),disabled:s.isPending,children:`Jetzt laden`}),t[38]=s,t[39]=a,t[40]=r.name,t[41]=k):k=t[41];let A;return t[42]!==w||t[43]!==O||t[44]!==k||t[45]!==g||t[46]!==_?(A=(0,X.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-linie bg-panel p-5`,children:[g,_,w,O,k]}),t[42]=w,t[43]=O,t[44]=k,t[45]=g,t[46]=_,t[47]=A):A=t[47],A}function ue(e){let t=(0,J.c)(54),{nutzung:n,laedt:r,fehler:i}=e;if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,X.jsx)(I,{titel:`Wer nutzt die Modelle`,children:r?(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):(0,X.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Nutzung lässt sich gerade nicht lesen`,i?`: ${i}`:`.`]})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let a;t[3]===n.absender?a=t[4]:(a=Math.max(1,...n.absender.map(me)),t[3]=n.absender,t[4]=a);let o=a,s,c,l,u,d,f,p,m,h,g,v,y;if(t[5]!==o||t[6]!==n.absender||t[7]!==n.letzte_24h||t[8]!==n.tage){let e=n.letzte_24h.map(fe),r=Math.max(1,...e);s=I,y=`Wer nutzt die Modelle`,t[21]===n.tage?c=t[22]:(c=(0,X.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`letzte `,n.tage,` Tage`]}),t[21]=n.tage,t[22]=c),t[23]===n.absender.length?l=t[24]:(l=n.absender.length===0&&(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Anfragen aufgezeichnet.`}),t[23]=n.absender.length,t[24]=l);let i;if(t[25]!==o||t[26]!==n.absender){let e;t[28]===o?e=t[29]:(e=e=>(0,X.jsxs)(`li`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex justify-between gap-3 text-sm`,children:[(0,X.jsx)(`span`,{children:e.name}),(0,X.jsx)(`span`,{className:`ziffern`,children:_(e.anfragen)})]}),(0,X.jsx)(`div`,{className:`h-2 rounded-full bg-erhaben`,children:(0,X.jsx)(`div`,{className:`h-2 rounded-full bg-cyan`,style:{width:`${e.anfragen/o*100}%`}})})]},e.name),t[28]=o,t[29]=e),i=n.absender.map(e),t[25]=o,t[26]=n.absender,t[27]=i}else i=t[27];t[30]===i?u=t[31]:(u=(0,X.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-3.5 p-0`,children:i}),t[30]=i,t[31]=u),g=`flex flex-col gap-1.5`,t[32]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,X.jsx)(`span`,{className:`schild text-xs text-text-3`,children:`Anfragen je Stunde, letzte 24 h`}),t[32]=v):v=t[32],d=`0 0 240 64`,f=`h-16 w-full`,p=`img`,m=`Anfragen je Stunde in den letzten 24 Stunden`;let a;t[33]===r?a=t[34]:(a=(e,t)=>{let n=e?Math.max(3,e/r*50):2;return(0,X.jsx)(`rect`,{x:t*10+1.5,y:52-n,width:7,height:n,rx:1.5,fill:e?`var(--cyan)`:`var(--linie)`},t)},t[33]=r,t[34]=a),h=e.map(a),t[5]=o,t[6]=n.absender,t[7]=n.letzte_24h,t[8]=n.tage,t[9]=s,t[10]=c,t[11]=l,t[12]=u,t[13]=d,t[14]=f,t[15]=p,t[16]=m,t[17]=h,t[18]=g,t[19]=v,t[20]=y}else s=t[9],c=t[10],l=t[11],u=t[12],d=t[13],f=t[14],p=t[15],m=t[16],h=t[17],g=t[18],v=t[19],y=t[20];let b;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(b=[0,6,12,18].map(de),t[35]=b):b=t[35];let x;t[36]!==d||t[37]!==f||t[38]!==p||t[39]!==m||t[40]!==h?(x=(0,X.jsxs)(`svg`,{viewBox:d,className:f,role:p,"aria-label":m,children:[h,b]}),t[36]=d,t[37]=f,t[38]=p,t[39]=m,t[40]=h,t[41]=x):x=t[41];let S;t[42]!==x||t[43]!==g||t[44]!==v?(S=(0,X.jsxs)(`div`,{className:g,children:[v,x]}),t[42]=x,t[43]=g,t[44]=v,t[45]=S):S=t[45];let C;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,X.jsx)(`p`,{className:`text-xs text-text-3`,children:`Anfragen an llama-swap. NerdQuiz geht direkt dorthin, alles andere über MC2.`}),t[46]=C):C=t[46];let w;return t[47]!==s||t[48]!==c||t[49]!==l||t[50]!==u||t[51]!==S||t[52]!==y?(w=(0,X.jsxs)(s,{titel:y,rechts:c,children:[l,u,S,C]}),t[47]=s,t[48]=c,t[49]=l,t[50]=u,t[51]=S,t[52]=y,t[53]=w):w=t[53],w}function de(e){return(0,X.jsx)(`text`,{x:e*10+5,y:63,textAnchor:`middle`,style:{fontSize:9,fill:`var(--text-3)`,fontFamily:`var(--font-mono)`},children:e},e)}function fe(e){return Object.values(e.je_absender).reduce(pe,0)}function pe(e,t){return e+t}function me(e){return e.anfragen}var he={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`,getestet:`grau`,uebernommen:`gruen`,verworfen:`grau`},ge={besser:`text-gruen`,schlechter:`text-rot-text`,gleich:`text-text-2`};function _e(e){let t=(0,J.c)(4),{test:n}=e,r,i;if(t[0]!==n.vergleich){i=Symbol.for(`react.early_return_sentinel`);bb0:{let e=Object.entries(n.vergleich??{});if(e.length===0){i=null;break bb0}let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,X.jsxs)(`div`,{role:`row`,className:`schild grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 pb-1 text-xs text-text-3`,children:[(0,X.jsx)(`span`,{role:`columnheader`,children:`Messwert`}),(0,X.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Kandidat`}),(0,X.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Heute`})]}),t[3]=a):a=t[3],r=(0,X.jsxs)(`div`,{role:`table`,"aria-label":`Messwerte gegen das heutige Modell`,className:`rounded-lg border border-linie bg-erhaben/50 px-3 py-2 text-sm`,children:[a,e.map($)]})}t[0]=n.vergleich,t[1]=r,t[2]=i}else r=t[1],i=t[2];return i===Symbol.for(`react.early_return_sentinel`)?r:i}function $(e){let[t,n]=e;return(0,X.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 border-t border-linie py-1`,children:[(0,X.jsx)(`span`,{role:`rowheader`,className:`text-text-2`,children:t}),(0,X.jsx)(`span`,{role:`cell`,className:`ziffern text-right ${ge[n.urteil??``]??`text-text-2`}`,children:b(n.kandidat,n.einheit)}),(0,X.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-text-3`,children:b(n.baseline,n.einheit)})]},t)}function ve(e){let t=(0,J.c)(80),{k:n,test:r,heute:i}=e,a=C(),o=w(),[s,c]=(0,Y.useState)(null),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=[`bestanden`,`wartet`,`neu`,`getestet`],t[0]=l):l=t[0];let u=l.includes(n.status),d=n.rolle===`hirn`,f;t[1]===n.name?f=t[2]:(f=(0,X.jsx)(`span`,{className:`ziffern text-[15px] font-medium`,children:n.name}),t[1]=n.name,t[2]=f);let p=d?`fürs Hirn`:`fürs Coden`,m;t[3]===p?m=t[4]:(m=(0,X.jsx)(D,{art:`cyan`,children:p}),t[3]=p,t[4]=m);let g;t[5]!==n.eng||t[6]!==n.groesse_gb||t[7]!==n.passt?(g=n.groesse_gb!=null&&(0,X.jsx)(D,{art:n.eng?`bernstein`:n.passt?`gruen`:`rot`,children:n.eng?`passt knapp`:n.passt?`passt`:`passt nicht`}),t[5]=n.eng,t[6]=n.groesse_gb,t[7]=n.passt,t[8]=g):g=t[8];let _=he[n.status]??`grau`,v=h[n.status]??n.status,y;t[9]!==_||t[10]!==v?(y=(0,X.jsx)(D,{art:_,children:v}),t[9]=_,t[10]=v,t[11]=y):y=t[11];let b;t[12]!==f||t[13]!==m||t[14]!==g||t[15]!==y?(b=(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[f,m,g,y]}),t[12]=f,t[13]=m,t[14]=g,t[15]=y,t[16]=b):b=t[16];let x;t[17]===n.groesse_gb?x=t[18]:(x=n.groesse_gb==null?``:`${n.groesse_gb.toLocaleString(`de-DE`)} GB. `,t[17]=n.groesse_gb,t[18]=x);let S;t[19]!==n.begruendung||t[20]!==x?(S=(0,X.jsxs)(`p`,{className:`text-sm text-text-2`,children:[x,n.begruendung]}),t[19]=n.begruendung,t[20]=x,t[21]=S):S=t[21];let T;t[22]!==n.status||t[23]!==r?(T=r&&[`bestanden`,`durchgefallen`].includes(n.status)&&(0,X.jsx)(_e,{test:r}),t[22]=n.status,t[23]=r,t[24]=T):T=t[24];let E;t[25]!==n.begruendung||t[26]!==n.testbar_grund?(E=n.testbar_grund&&!n.begruendung.startsWith(`Läuft gerade`)&&(0,X.jsx)(`p`,{className:`text-xs text-text-3`,children:n.testbar_grund}),t[25]=n.begruendung,t[26]=n.testbar_grund,t[27]=E):E=t[27];let O;t[28]!==a.isPending||t[29]!==n.status||t[30]!==n.testbar_jetzt||t[31]!==u||t[32]!==o.isPending?(O=u&&(0,X.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.testbar_jetzt&&(0,X.jsx)(z,{variant:`info`,size:`sm`,disabled:o.isPending,onClick:()=>c(`testen`),children:`Jetzt testen`}),n.status===`bestanden`&&(0,X.jsx)(z,{size:`sm`,disabled:a.isPending,onClick:()=>c(`uebernehmen`),children:`Übernehmen`}),(0,X.jsx)(z,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:()=>c(`verwerfen`),children:`Verwerfen`})]}),t[28]=a.isPending,t[29]=n.status,t[30]=n.testbar_jetzt,t[31]=u,t[32]=o.isPending,t[33]=O):O=t[33];let k=s===`uebernehmen`,A=`${n.name} übernehmen?`,j=d?`${n.name} wird Lucys Hirn${i?` und löst ${i} ab`:``}. NerdQuiz und OpenChamber nutzen ab dann ebenfalls das neue Modell. Hermes startet dafür kurz neu, Lucy ist etwa eine Minute nicht erreichbar. Das alte Modell bleibt auf der Platte.`:`${n.name} wird der Coder${i?` und löst ${i} ab`:``}. OpenChamber plant und baut ab dann damit. Das alte Modell bleibt auf der Platte.`,M;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>c(null),t[34]=M):M=t[34];let N;t[35]!==a||t[36]!==s||t[37]!==n.id||t[38]!==n.name?(N=()=>{s===`uebernehmen`&&(a.mutate({id:n.id,aktion:`uebernehmen`,name:n.name}),c(null))},t[35]=a,t[36]=s,t[37]=n.id,t[38]=n.name,t[39]=N):N=t[39];let P;t[40]!==a.isPending||t[41]!==k||t[42]!==A||t[43]!==j||t[44]!==N?(P=(0,X.jsx)(te,{offen:k,titel:A,text:j,knopf:`Übernehmen`,gesperrt:a.isPending,onNein:M,onJa:N}),t[40]=a.isPending,t[41]=k,t[42]=A,t[43]=j,t[44]=N,t[45]=P):P=t[45];let F=s===`testen`,I=`${n.name} jetzt testen?`,L;t[46]===n.groesse_gb?L=t[47]:(L=n.groesse_gb==null?``:` (${n.groesse_gb.toLocaleString(`de-DE`)} GB)`,t[46]=n.groesse_gb,t[47]=L);let R=`Das Radar lädt ${n.name}${L} herunter, falls nötig, misst das heutige Modell der Rolle und dann den Kandidaten. Das dauert je nach Download eine halbe bis zwei Stunden. Solange antworten Lucy und NerdQuiz etwas langsamer; ein geladener Coder wird dafür entladen, und wird er währenddessen gebraucht, bricht der Test ab. Das Ergebnis kommt als Meldung; fällt der Kandidat durch, werden seine Dateien gelöscht.`,B;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(B=()=>c(null),t[48]=B):B=t[48];let V;t[49]!==s||t[50]!==n.id||t[51]!==n.name||t[52]!==o?(V=()=>{s===`testen`&&(o.mutate({id:n.id,name:n.name}),c(null))},t[49]=s,t[50]=n.id,t[51]=n.name,t[52]=o,t[53]=V):V=t[53];let H;t[54]!==F||t[55]!==I||t[56]!==R||t[57]!==V||t[58]!==o.isPending?(H=(0,X.jsx)(te,{offen:F,titel:I,text:R,knopf:`Jetzt testen`,gesperrt:o.isPending,onNein:B,onJa:V}),t[54]=F,t[55]=I,t[56]=R,t[57]=V,t[58]=o.isPending,t[59]=H):H=t[59];let U=s===`verwerfen`,ee=`${n.name} verwerfen?`,W;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(W=()=>c(null),t[60]=W):W=t[60];let ne;t[61]!==a||t[62]!==s||t[63]!==n.id||t[64]!==n.name?(ne=()=>{s===`verwerfen`&&(a.mutate({id:n.id,aktion:`verwerfen`,name:n.name}),c(null))},t[61]=a,t[62]=s,t[63]=n.id,t[64]=n.name,t[65]=ne):ne=t[65];let G;t[66]!==a.isPending||t[67]!==U||t[68]!==ee||t[69]!==ne?(G=(0,X.jsx)(te,{offen:U,gefahr:!0,titel:ee,text:`Die heruntergeladenen Dateien werden gelöscht, und das Radar testet dieses Modell nicht noch einmal.`,knopf:`Verwerfen`,gesperrt:a.isPending,onNein:W,onJa:ne}),t[66]=a.isPending,t[67]=U,t[68]=ee,t[69]=ne,t[70]=G):G=t[70];let K;return t[71]!==S||t[72]!==T||t[73]!==E||t[74]!==O||t[75]!==P||t[76]!==H||t[77]!==G||t[78]!==b?(K=(0,X.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3.5`,children:[b,S,T,E,O,P,H,G]}),t[71]=S,t[72]=T,t[73]=E,t[74]=O,t[75]=P,t[76]=H,t[77]=G,t[78]=b,t[79]=K):K=t[79],K}function ye(e){let t=(0,J.c)(30),{hirn:n,coder:r}=e,i=O(),a=P(),o=y(),s=T(),c=o.data?.jobs,l=(c??[]).filter(xe).at(-1),u=a.data?.job_id,d;t[0]!==u||t[1]!==c?(d=!!u&&!!c&&!c.some(e=>e.id===u),t[0]=u,t[1]=c,t[2]=d):d=t[2];let f=d,p=a.isPending||f||l!==void 0&&m(l),h=(0,Y.useRef)(p);if((0,Y.useEffect)(()=>{h.current&&!p&&s.invalidateQueries({queryKey:[`radar`]}),h.current=p},[p,s]),i.isError&&!i.data){let e=i.error instanceof S&&i.error.status===404,n;return t[3]!==e||t[4]!==i.error?(n=(0,X.jsx)(I,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,children:e?(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Das Radar ist auf dieser Box noch nicht eingerichtet.`}):(0,X.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Radar antwortet gerade nicht: `,i.error.message]})}),t[3]=e,t[4]=i.error,t[5]=n):n=t[5],n}let g=i.data,_=I,v;t[6]===a?v=t[7]:(v=()=>a.mutate(void 0),t[6]=a,t[7]=v);let b=p?`Sucht …`:`Jetzt suchen`,C;t[8]!==p||t[9]!==v||t[10]!==b?(C=(0,X.jsx)(z,{variant:`info`,size:`sm`,onClick:v,disabled:p,children:b}),t[8]=p,t[9]=v,t[10]=b,t[11]=C):C=t[11];let w;t[12]===g?w=t[13]:(w=g?.naechster_test?` Nächster Test: ${x(g.naechster_test)}.`:``,t[12]=g,t[13]=w);let E=p?` Sucht gerade bei Hugging Face. Das dauert ein paar Minuten; den Stand zeigt der Auftrag oben unter „Aufträge“.`:``,D;t[14]!==w||t[15]!==E?(D=(0,X.jsxs)(`p`,{className:`-mt-2 text-sm text-text-2`,children:[`Testet nachts zwischen 00:30 und 02:30 selbst, höchstens einen Kandidaten pro Woche. Tagsüber geht es mit „Jetzt testen“, wenn der Kandidat samt Coder in den Speicher passt.`,w,E]}),t[14]=w,t[15]=E,t[16]=D):D=t[16];let k=!p&&l?.state===`failed`&&(0,X.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die letzte Suche ist gescheitert: `,W(l)??`ohne Meldung`]}),A;t[17]!==r||t[18]!==g||t[19]!==n?(A=g?g.kandidaten.length===0?(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}):(0,X.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:g.kandidaten.map(e=>(0,X.jsx)(ve,{k:e,test:g.tests.find(t=>t.kandidat===e.id),heute:e.rolle===`hirn`?n:r},e.id))}):(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),t[17]=r,t[18]=g,t[19]=n,t[20]=A):A=t[20];let j;t[21]===g?j=t[22]:(j=g&&g.tests.length>0&&(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(`h3`,{className:`schild text-xs text-text-3`,children:`Letzte Tests`}),g.tests.slice(0,3).map(be)]}),t[21]=g,t[22]=j);let M;return t[23]!==_||t[24]!==D||t[25]!==k||t[26]!==A||t[27]!==j||t[28]!==C?(M=(0,X.jsxs)(_,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,rechts:C,children:[D,k,A,j]}),t[23]=_,t[24]=D,t[25]=k,t[26]=A,t[27]=j,t[28]=C,t[29]=M):M=t[29],M}function be(e){return(0,X.jsxs)(`p`,{className:`text-sm text-text-2`,children:[(0,X.jsx)(`span`,{className:`ziffern text-text-3`,children:x(e.datum)}),` · `,e.zusammenfassung]},e.id)}function xe(e){return e.group===`radar`}var Se=`text-rot-text hover:bg-rot-grund hover:text-rot-text`;function Ce(e){let t=(0,J.c)(13),{titel:n,zusatz:r,children:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,X.jsx)(s,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,X.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[a,n]}),t[1]=n,t[2]=o);let c;t[3]===r?c=t[4]:(c=(0,X.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[3]=r,t[4]=c);let l;t[5]!==o||t[6]!==c?(l=(0,X.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[o,c]}),t[5]=o,t[6]=c,t[7]=l):l=t[7];let u;t[8]===i?u=t[9]:(u=(0,X.jsx)(`div`,{className:`flex flex-col gap-2 pb-1`,children:i}),t[8]=i,t[9]=u);let d;return t[10]!==l||t[11]!==u?(d=(0,X.jsxs)(`details`,{className:`group rounded-xl border border-linie bg-erhaben/40 px-4 open:pb-2`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12],d}function we(){let e=(0,J.c)(37),t=g(),n=v(),[r,i]=(0,Y.useState)(null),a,o,s,c,l,u;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n){u=Symbol.for(`react.early_return_sentinel`);bb0:{let r=t.data?.kandidaten??[],d=r.reduce(Te,0);if(t.isError&&!t.data){let n;e[11]===t.error.message?n=e[12]:(n=(0,X.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Was sich aufräumen ließe, lässt sich gerade nicht lesen: `,t.error.message]}),e[11]=t.error.message,e[12]=n);let r;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,X.jsx)(De,{}),e[13]=r):r=e[13];let i;e[14]===n?i=e[15]:(i=(0,X.jsxs)(I,{titel:`Aufräumen`,children:[n,r]}),e[14]=n,e[15]=i),u=i;break bb0}a=I,o=`Aufräumen`,s=r.length>0?(0,X.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`bis zu `,d.toLocaleString(`de-DE`,{maximumFractionDigits:0}),` GB frei`]}):void 0,e[16]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,X.jsx)(`p`,{className:`-mt-2 text-sm text-text-2`,children:`Modelle und Ordner, die gerade niemand nutzt. Nichts davon wird von selbst gelöscht, das entscheidest du je Eintrag.`}),e[16]=c):c=e[16],l=t.isPending?(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):r.length===0?(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts aufzuräumen.`}):(0,X.jsx)(Ce,{titel:`Modelle und Ordner`,zusatz:`${r.length} Einträge · bis zu ${d.toLocaleString(`de-DE`,{maximumFractionDigits:0})} GB`,children:(0,X.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,X.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,X.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.name}),(0,X.jsx)(D,{children:e.art===`eintrag`?`Eintrag`:`Ordner`})]}),(0,X.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,X.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,X.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[e.groesse_gb.toLocaleString(`de-DE`),` GB`]}),(0,X.jsx)(z,{variant:`ghost`,size:`sm`,className:Se,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},`${e.art}-${e.name}`))})})}e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n,e[5]=a,e[6]=o,e[7]=s,e[8]=c,e[9]=l,e[10]=u}else a=e[5],o=e[6],s=e[7],c=e[8],l=e[9],u=e[10];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d=r!==null,f=`${r?.name??``} löschen?`,p;e[17]===r?.groesse_gb?p=e[18]:(p=r?.groesse_gb.toLocaleString(`de-DE`)??``,e[17]=r?.groesse_gb,e[18]=p);let m=`${r?.hinweis??``} Es werden ${p} GB frei. Das lässt sich nicht rückgängig machen — zurück ginge es nur mit einem neuen Download.`,h;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>i(null),e[19]=h):h=e[19];let _;e[20]!==r||e[21]!==n?(_=()=>{r&&n.mutate(r),i(null)},e[20]=r,e[21]=n,e[22]=_):_=e[22];let y;e[23]!==n.isPending||e[24]!==_||e[25]!==d||e[26]!==f||e[27]!==m?(y=(0,X.jsx)(te,{offen:d,gefahr:!0,titel:f,text:m,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:h,onJa:_}),e[23]=n.isPending,e[24]=_,e[25]=d,e[26]=f,e[27]=m,e[28]=y):y=e[28];let b;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,X.jsx)(De,{}),e[29]=b):b=e[29];let x;return e[30]!==a||e[31]!==o||e[32]!==s||e[33]!==y||e[34]!==c||e[35]!==l?(x=(0,X.jsxs)(a,{titel:o,rechts:s,children:[c,l,y,b]}),e[30]=a,e[31]=o,e[32]=s,e[33]=y,e[34]=c,e[35]=l,e[36]=x):x=e[36],x}function Te(e,t){return e+t.groesse_gb}function Ee(e){return e>=1e9?`${(e/1e9).toLocaleString(`de-DE`,{maximumFractionDigits:1})} GB`:e>=1e6?`${Math.round(e/1e6)} MB`:e>=1e3?`${Math.round(e/1e3)} KB`:`unter 1 KB`}function De(){let e=(0,J.c)(23),t=d(),n=k(),[r,i]=(0,Y.useState)(null),a,o;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n.isPending){let r=t.data?.altreste??[],s=r.reduce(Oe,0);a=`flex flex-col gap-2`,o=t.isPending?(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):t.isError&&!t.data?(0,X.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Altreste lassen sich gerade nicht lesen: `,t.error.message]}):r.length===0?(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Altreste mehr.`}):(0,X.jsxs)(Ce,{titel:`Altreste neben dem Betrieb`,zusatz:`${r.length} Einträge · ${Ee(s)}`,children:[(0,X.jsx)(`p`,{className:`text-sm text-text-2`,children:`Test-Ordner, alte Umgebungen und Arbeitskopien, die nichts mehr nutzt. Die Box prüft sie gegen eine feste Liste und löscht auch hier nie von selbst.`}),(0,X.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,X.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,X.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`text-sm`,children:e.name}),(0,X.jsx)(D,{children:`Altrest`})]}),(0,X.jsx)(`span`,{className:`ziffern text-xs break-all text-text-3`,children:e.pfade.join(` · `)}),(0,X.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,X.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:e.groesse}),(0,X.jsx)(z,{variant:`ghost`,size:`sm`,className:Se,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},e.id))})]}),e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n.isPending,e[5]=a,e[6]=o}else a=e[5],o=e[6];let s=r!==null,c=`${r?.name??``} löschen?`,l;e[7]===r?.pfade?l=e[8]:(l=r?.pfade.join(`, `)??``,e[7]=r?.pfade,e[8]=l);let u=`${r?.hinweis??``} Gelöscht wird: ${l} (${r?.groesse??``}). Das lässt sich nicht rückgängig machen.`,f;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>i(null),e[9]=f):f=e[9];let p;e[10]!==r||e[11]!==n?(p=()=>{r&&n.mutate(r),i(null)},e[10]=r,e[11]=n,e[12]=p):p=e[12];let m;e[13]!==n.isPending||e[14]!==s||e[15]!==c||e[16]!==u||e[17]!==p?(m=(0,X.jsx)(te,{offen:s,gefahr:!0,titel:c,text:u,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:f,onJa:p}),e[13]=n.isPending,e[14]=s,e[15]=c,e[16]=u,e[17]=p,e[18]=m):m=e[18];let h;return e[19]!==a||e[20]!==o||e[21]!==m?(h=(0,X.jsxs)(`div`,{className:a,children:[o,m]}),e[19]=a,e[20]=o,e[21]=m,e[22]=h):h=e[22],h}function Oe(e,t){return e+t.groesse_bytes}function ke(){let e=(0,J.c)(74),t=E(),n=F(),r=O(),i=y(),[a,o]=(0,Y.useState)(!1),s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s={select:Ne},e[0]=s):s=e[0];let l=q(s),u=!!t.data&&!n.isPending&&!r.isPending&&!i.isPending,d,f;if(e[1]!==u||e[2]!==l?(d=()=>{u&&l===`radar`&&document.getElementById(`radar`)?.scrollIntoView({block:`start`})},f=[u,l],e[1]=u,e[2]=l,e[3]=d,e[4]=f):(d=e[3],f=e[4]),(0,Y.useEffect)(d,f),t.isPending){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsx)(M,{text:`Modelle werden gelesen …`}),e[5]=t):t=e[5],t}if(!t.data){let n=`Die Modell-Liste fehlt: ${t.error?.message??`keine Daten`}`,r;return e[6]===n?r=e[7]:(r=(0,X.jsx)(M,{fehler:!0,text:n}),e[6]=n,e[7]=r),r}let p=t.data.models,m=t.data.running,h,g,_,v,b,S,C,w,T,D,k,A;if(e[8]!==m||e[9]!==p||e[10]!==n.data||e[11]!==n.error?.message||e[12]!==n.isPending){let t=p.find(Me);g=p.find(je);let r;e[25]===p?r=e[26]:(r=(e,t)=>e?p.find(n=>n!==e&&n.aliases.includes(t)&&n.filename===e.filename):void 0,e[25]=p,e[26]=r);let i=r,a=i(t,`vision`);_=i(g,`coder-bild`);let s=p.filter(e=>![t,g,a,_].includes(e)),l;e[27]===n.data?.zuletzt_geladen?l=e[28]:(l=n.data?.zuletzt_geladen??{},e[27]=n.data?.zuletzt_geladen,e[28]=l);let u=l;e[29]!==m||e[30]!==p?(k=(0,X.jsx)(se,{modelle:p,laufend:m}),e[29]=m,e[30]=p,e[31]=k):k=e[31],e[32]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,X.jsx)(K,{alsPanel:!0}),e[32]=A):A=e[32];let d;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,X.jsx)(Q,{titel:`Dritte Rolle`,laeuft:!1,nutzer:``}),e[33]=d):d=e[33],v=(0,X.jsxs)(`section`,{"aria-label":`Rollen`,className:`grid gap-5 md:grid-cols-3 md:gap-6`,children:[(0,X.jsx)(Q,{titel:`Hirn`,modell:t,zwilling:a,laeuft:!!t&&m.includes(t.name),nutzer:`Lucy, NerdQuiz und OpenChamber für Kleinkram`}),(0,X.jsx)(Q,{titel:`Coder`,modell:g,zwilling:_,laeuft:!!g&&m.includes(g.name),nutzer:`OpenChamber zum Planen und Bauen und Lucys Delegation`}),d]});let f=n.error?.message??null,y;e[34]!==n.data||e[35]!==n.isPending||e[36]!==f?(y=(0,X.jsx)(ue,{nutzung:n.data,laedt:n.isPending,fehler:f}),e[34]=n.data,e[35]=n.isPending,e[36]=f,e[37]=y):y=e[37];let E=t?.name,O=g?.name,j;e[38]!==E||e[39]!==O?(j=(0,X.jsx)(ye,{hirn:E,coder:O}),e[38]=E,e[39]=O,e[40]=j):j=e[40],e[41]!==y||e[42]!==j?(b=(0,X.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.3fr)]`,children:[y,j]}),e[41]=y,e[42]=j,e[43]=b):b=e[43],h=I,w=`Weitere Einträge`,e[44]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,X.jsxs)(z,{variant:`outline`,size:`sm`,onClick:()=>o(!0),children:[(0,X.jsx)(c,{"aria-hidden":!0}),` Modelle selbst suchen`]}),e[44]=T):T=e[44],D=s.length===0&&(0,X.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine weiteren Einträge.`}),S=`m-0 flex list-none flex-col p-0`;let M;e[45]!==m||e[46]!==u?(M=e=>(0,X.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 border-t border-linie py-2.5 sm:grid-cols-[minmax(0,1fr)_120px_160px]`,children:[(0,X.jsxs)(`span`,{className:`min-w-0`,children:[(0,X.jsx)(`span`,{className:`ziffern block text-sm break-all`,children:e.name}),(0,X.jsx)(`span`,{className:`text-xs text-text-3`,children:e.aliases.length?e.aliases.join(`, `):`ohne Rolle`})]}),(0,X.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:L(e.size_bytes)}),(0,X.jsx)(`span`,{className:`ziffern hidden text-xs text-text-3 sm:block`,children:m.includes(e.name)?`geladen`:u[e.name]?`zuletzt ${x(u[e.name])}`:`länger nicht geladen`})]},e.name),e[45]=m,e[46]=u,e[47]=M):M=e[47],C=s.map(M),e[8]=m,e[9]=p,e[10]=n.data,e[11]=n.error?.message,e[12]=n.isPending,e[13]=h,e[14]=g,e[15]=_,e[16]=v,e[17]=b,e[18]=S,e[19]=C,e[20]=w,e[21]=T,e[22]=D,e[23]=k,e[24]=A}else h=e[13],g=e[14],_=e[15],v=e[16],b=e[17],S=e[18],C=e[19],w=e[20],T=e[21],D=e[22],k=e[23],A=e[24];let j;e[48]!==S||e[49]!==C?(j=(0,X.jsx)(`ul`,{className:S,children:C}),e[48]=S,e[49]=C,e[50]=j):j=e[50];let N;e[51]!==h||e[52]!==j||e[53]!==w||e[54]!==T||e[55]!==D?(N=(0,X.jsxs)(h,{titel:w,rechts:T,children:[D,j]}),e[51]=h,e[52]=j,e[53]=w,e[54]=T,e[55]=D,e[56]=N):N=e[56];let P;e[57]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,X.jsx)(we,{}),e[57]=P):P=e[57];let R;e[58]===Symbol.for(`react.memo_cache_sentinel`)?(R=()=>o(!1),e[58]=R):R=e[58];let B;e[59]!==g||e[60]!==_?(B=g?{name:g.name,zwilling:!!_,weitere:g.aliases.filter(Ae)}:void 0,e[59]=g,e[60]=_,e[61]=B):B=e[61];let V;e[62]===B?V=e[63]:(V={coder:B},e[62]=B,e[63]=V);let H;e[64]!==a||e[65]!==V?(H=(0,X.jsx)(ie,{offen:a,onSchliessen:R,rollenJetzt:V}),e[64]=a,e[65]=V,e[66]=H):H=e[66];let U;return e[67]!==v||e[68]!==b||e[69]!==N||e[70]!==H||e[71]!==k||e[72]!==A?(U=(0,X.jsxs)(X.Fragment,{children:[k,A,v,b,N,P,H]}),e[67]=v,e[68]=b,e[69]=N,e[70]=H,e[71]=k,e[72]=A,e[73]=U):U=e[73],U}function Ae(e){return e.toLowerCase()!==`coder`}function je(e){return R(e)===`coder`}function Me(e){return R(e)===`hirn`}function Ne(e){return e.hash}export{ve as Kandidat,ke as ModelleSeite}; |