- deploy/homelab/ausfuehrer.py: laeuft als root auf dem Proxmox-Host, holt Auftraege beim Homelab-Teil ab (Pull, kein offener Port), feste Aktionsliste, prueft Etiketten selbst; Bericht gegen den echten Host erprobt (nur lesend). Kein Proxmox-Schluessel im Container noetig. - services/homelab: Kanal mit gemeinsamem Geheimnis, App-Katalog, Inventar -> Ziele im gemeinsamen Modell (GitHub-Versionen, Webpruefung, alte Paketlisten = unklar), Jetzt updaten: Snapshot -> Update -> Pruefung -> bei Rot zurueck + dringende Meldung - Waechter in der Rolle homelab: Ausfuehrer schweigt, Gaeste antworten nicht - kern/github.py fuer beide Rollen (auch untagged Releases mit Version im Namen) - Oberflaeche: Seite Homelab zeigt alle Geraete als Karten (KI-Box ueber /api/ziele, Homelab ueber /api/homelab/ziele) mit Stand, Rueckweg und Knopf samt Rueckfrage - Einrichtung als Skripte (container-anlegen, ausrollen, ausfuehrer-einrichten, box-partner) — noch nicht ausgefuehrt, jeder Schritt braucht das User-OK - frontend-bauen-box.sh: Frontend-Pruefung und Build auf der Box, wenn der PC keinen Speicher hat Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 line
33 KiB
JavaScript
1 line
33 KiB
JavaScript
import{c as e,o as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{B as o,C as s,F as c,J as l,M as u,N as d,P as f,R as p,S as m,T as h,V as g,W as _,X as v,Y as y,Z as b,_ as x,a as S,d as C,g as w,h as T,i as E,j as D,n as O,r as k,t as A,v as j,x as M,z as N}from"./index-SRwQwEnh.js";import{a as P,i as F,n as I,r as L,t as R}from"./sheet-CKp82pOA.js";import{t as z}from"./Bestaetigen-CE_3b0PK.js";import{o as B,r as ee,t as te}from"./Auftraege-C3JDjG9Z.js";function V(e){let t=v();return y(t.stores.location,l(e,t))}var H={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};H.node;var U=t(H),W=r(),G=n(a(),1),K=e(),ne={coder:`Coder`};function re(e){let t=(0,W.c)(102),{offen:n,onSchliessen:r,rollenJetzt:a}=e,o=C(),[s,c]=(0,G.useState)(``),[l,u]=(0,G.useState)(``),[p,m]=(0,G.useState)(null),[h,_]=(0,G.useState)(``),[v,y]=(0,G.useState)(null),x=(0,G.useRef)(!1),S,w;t[0]===l?(S=t[1],w=t[2]):(S=[`hf-suche`,l],w=()=>g(`/api/hf/search?q=${encodeURIComponent(l)}`),t[0]=l,t[1]=S,t[2]=w);let T=l.length>1,E;t[3]!==S||t[4]!==w||t[5]!==T?(E={queryKey:S,queryFn:w,enabled:T},t[3]=S,t[4]=w,t[5]=T,t[6]=E):E=t[6];let D=b(E),O,k;t[7]===p?(O=t[8],k=t[9]):(O=[`hf-quants`,p],k=()=>g(`/api/hf/quants?repo=${encodeURIComponent(p??``)}`),t[7]=p,t[8]=O,t[9]=k);let A=!!p,j;t[10]!==O||t[11]!==k||t[12]!==A?(j={queryKey:O,queryFn:k,enabled:A},t[10]=O,t[11]=k,t[12]=A,t[13]=j):j=t[13];let M=b(j),N,te,V,H,U,re,q,J,Y,X,Z,Q,oe;if(t[14]!==v||t[15]!==s||t[16]!==o||t[17]!==n||t[18]!==r||t[19]!==M.data||t[20]!==M.error||t[21]!==M.isError||t[22]!==M.isFetching||t[23]!==p||t[24]!==h||t[25]!==a||t[26]!==D){let e=(M.data?.quants??[]).map(ae),l=h?ne[h]??h:null,g;t[40]!==p||t[41]!==h||t[42]!==a||t[43]!==l?(g=l&&p?B(p,l,a[h]):null,t[40]=p,t[41]=h,t[42]=a,t[43]=l,t[44]=g):g=t[44],V=g;let b;t[45]!==v||t[46]!==o||t[47]!==r||t[48]!==p||t[49]!==h?(b=function(){p&&v&&!x.current&&(x.current=!0,o.mutate({repo:p,quant:v.quant,rolle:h||null},{onSuccess:e=>{y(null),e.ok!==!1&&r()},onError:()=>y(null),onSettled:()=>{x.current=!1}}))},t[45]=v,t[46]=o,t[47]=r,t[48]=p,t[49]=h,t[50]=b):b=t[50],H=b,te=R,Z=n,t[51]===r?Q=t[52]:(Q=e=>!e&&r(),t[51]=r,t[52]=Q),N=I,q=`right`,J=`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`)?(Y=(0,K.jsxs)(F,{children:[(0,K.jsx)(P,{className:`schild text-lg`,children:`Modelle selbst suchen`}),(0,K.jsx)(L,{className:`text-text-2`,children:`Auf Hugging Face suchen, Quantisierung wählen, installieren.`})]}),t[53]=Y):Y=t[53];let S;t[54]===s?S=t[55]:(S=e=>{e.preventDefault(),m(null),u(s.trim())},t[54]=s,t[55]=S);let C;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,K.jsx)(`label`,{htmlFor:`hf-suche`,className:`sr-only`,children:`Suchbegriff`}),t[56]=C):C=t[56];let w;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>c(e.target.value),t[57]=w):w=t[57];let T;t[58]===s?T=t[59]:(T=(0,K.jsx)(`input`,{id:`hf-suche`,value:s,onChange:w,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]=s,t[59]=T);let E;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,K.jsx)(i,{type:`submit`,children:`Suchen`}),t[60]=E):E=t[60],t[61]!==S||t[62]!==T?(X=(0,K.jsxs)(`form`,{className:`flex gap-2 px-4`,onSubmit:S,children:[C,T,E]}),t[61]=S,t[62]=T,t[63]=X):X=t[63],oe=`flex flex-col px-4 pb-4`,t[64]!==p||t[65]!==D?(U=!p&&(0,K.jsxs)(K.Fragment,{children:[D.isFetching&&(0,K.jsx)(`p`,{role:`status`,className:`py-3 text-sm text-text-2`,children:`Suche läuft …`}),!D.isFetching&&D.isError&&(0,K.jsxs)(`p`,{role:`alert`,className:`py-3 text-sm text-rot-text`,children:[`Die Suche ging nicht: `,D.error.message]}),!D.isFetching&&D.data?.results.length===0&&(0,K.jsx)(`p`,{className:`py-3 text-sm text-text-2`,children:`Keine Treffer. Versuch einen anderen Suchbegriff — oder Hugging Face ist gerade nicht erreichbar.`}),D.data?.results.map(e=>(0,K.jsxs)(`button`,{type:`button`,onClick:()=>m(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,K.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:e.repo}),(0,K.jsxs)(`span`,{className:`ziffern shrink-0 text-xs text-text-3`,children:[f(e.downloads),` ↓`]})]},e.repo))]}),t[64]=p,t[65]=D,t[66]=U):U=t[66],re=p&&(0,K.jsxs)(`div`,{className:`flex flex-col gap-3 pt-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,K.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:p}),(0,K.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>m(null),children:`Zurück`})]}),(0,K.jsxs)(`label`,{className:`flex flex-wrap items-center gap-3 text-sm text-text-2`,children:[`Rolle`,(0,K.jsxs)(`select`,{value:h,onChange:e=>_(e.target.value),className:`h-11 min-w-0 rounded-lg border border-linie-stark bg-erhaben px-3 text-foreground`,children:[(0,K.jsx)(`option`,{value:``,children:`ohne Rolle (nur installieren)`}),Object.entries(ne).map(ie)]})]}),V&&(0,K.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:V}),M.isFetching&&(0,K.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Quantisierungen werden gelesen …`}),!M.isFetching&&M.isError&&(0,K.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Dateien dieses Modells ließen sich nicht lesen: `,M.error.message]}),!M.isFetching&&M.data&&e.length===0&&(0,K.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,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2`,children:[(0,K.jsx)(`span`,{className:`ziffern text-sm`,children:t}),(0,K.jsxs)(`span`,{className:`flex items-center gap-3`,children:[n?(0,K.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:d(n,1)}):null,(0,K.jsx)(i,{variant:`outline`,size:`sm`,disabled:o.isPending,onClick:()=>y({quant:t,bytes:n}),children:`Installieren`})]})]},t)})]}),t[14]=v,t[15]=s,t[16]=o,t[17]=n,t[18]=r,t[19]=M.data,t[20]=M.error,t[21]=M.isError,t[22]=M.isFetching,t[23]=p,t[24]=h,t[25]=a,t[26]=D,t[27]=N,t[28]=te,t[29]=V,t[30]=H,t[31]=U,t[32]=re,t[33]=q,t[34]=J,t[35]=Y,t[36]=X,t[37]=Z,t[38]=Q,t[39]=oe}else N=t[27],te=t[28],V=t[29],H=t[30],U=t[31],re=t[32],q=t[33],J=t[34],Y=t[35],X=t[36],Z=t[37],Q=t[38],oe=t[39];let se;t[67]!==U||t[68]!==re||t[69]!==oe?(se=(0,K.jsxs)(`div`,{className:oe,children:[U,re]}),t[67]=U,t[68]=re,t[69]=oe,t[70]=se):se=t[70];let ce=v!==null,le;t[71]!==v||t[72]!==p?(le=v&&p?`${p} (${v.quant}${v.bytes?`, ${d(v.bytes,1)}`:``}) wird heruntergeladen und in llama-swap eingetragen.`+(v.bytes?``:` Die Größe siehst du beim Auftrag, sobald der Download läuft.`):``,t[71]=v,t[72]=p,t[73]=le):le=t[73];let ue=o.isPending?`Wird gestartet …`:`Installieren`,de=o.isPending,fe;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(fe=()=>y(null),t[74]=fe):fe=t[74];let pe;t[75]===V?pe=t[76]:(pe=V&&(0,K.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:V}),t[75]=V,t[76]=pe);let me=!!h,he;t[77]===me?he=t[78]:(he=ee(me),t[77]=me,t[78]=he);let ge;t[79]===he?ge=t[80]:(ge=(0,K.jsx)(`p`,{className:`m-0 text-[15px] leading-relaxed text-text-2`,children:he}),t[79]=he,t[80]=ge);let $;t[81]!==o.isPending||t[82]!==H||t[83]!==ce||t[84]!==le||t[85]!==ue||t[86]!==pe||t[87]!==ge?($=(0,K.jsxs)(z,{offen:ce,titel:`Modell installieren?`,text:le,knopf:ue,gesperrt:de,onNein:fe,onJa:H,children:[pe,ge]}),t[81]=o.isPending,t[82]=H,t[83]=ce,t[84]=le,t[85]=ue,t[86]=pe,t[87]=ge,t[88]=$):$=t[88];let _e;t[89]!==N||t[90]!==q||t[91]!==J||t[92]!==Y||t[93]!==X||t[94]!==se||t[95]!==$?(_e=(0,K.jsxs)(N,{side:q,className:J,children:[Y,X,se,$]}),t[89]=N,t[90]=q,t[91]=J,t[92]=Y,t[93]=X,t[94]=se,t[95]=$,t[96]=_e):_e=t[96];let ve;return t[97]!==te||t[98]!==Z||t[99]!==Q||t[100]!==_e?(ve=(0,K.jsx)(te,{open:Z,onOpenChange:Q,children:_e}),t[97]=te,t[98]=Z,t[99]=Q,t[100]=_e,t[101]=ve):ve=t[101],ve}function ie(e){let[t,n]=e;return(0,K.jsx)(`option`,{value:t,children:n},t)}function ae(e){return typeof e==`string`?{quant:e}:e}var q=115;function J(e){let t=(0,W.c)(55),{modelle:n,laufend:r}=e,i=_(),a=h(),o,s,c,l,d,f,p,m,g,v;if(t[0]!==r||t[1]!==i?.ram_total||t[2]!==i?.ram_used||t[3]!==n||t[4]!==a){let e=u(i?.ram_total??a.data?.box.ram_total)??122.7,h=u(i?.ram_used??a.data?.box.ram_used)??0,_;t[15]===r?_=t[16]:(_=e=>r.includes(e.name),t[15]=r,t[16]=_);let y=n.filter(_).reduce(Y,0);s=Math.max(0,h-y);let b=t=>`${Math.min(100,t/e*100)}%`;o=A,m=`Speicher`,g=(0,K.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[Math.round(h),` von `,Math.round(e),` GB belegt · Grenze ~`,q,` GB`]});let x=`Speicher: ${Math.round(h)} von ${Math.round(e)} GB belegt`,S=b(h),C;t[17]===S?C=t[18]:(C={width:S},t[17]=S,t[18]=C);let w=`${h?y/h*100:0}%`,T;t[19]===w?T=t[20]:(T=(0,K.jsx)(`div`,{className:`h-full bg-cyan`,style:{width:w}}),t[19]=w,t[20]=T);let E=`${h?s/h*100:0}%`,D;t[21]===E?D=t[22]:(D=(0,K.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,K.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(q),j;t[27]===k?j=t[28]:(j=(0,K.jsx)(`div`,{className:`absolute -top-1.5 -bottom-1.5 w-0.5 bg-bernstein`,style:{left:k}}),t[27]=k,t[28]=j),t[29]!==x||t[30]!==O||t[31]!==j?(v=(0,K.jsxs)(`div`,{className:`relative h-8 rounded-lg bg-erhaben`,role:`img`,"aria-label":x,children:[O,j]}),t[29]=x,t[30]=O,t[31]=j,t[32]=v):v=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,K.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan`}),t[33]=l):l=t[33],d=` Geladene Modelle: `,f=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]=d,t[10]=f,t[11]=p,t[12]=m,t[13]=g,t[14]=v}else o=t[5],s=t[6],c=t[7],l=t[8],d=t[9],f=t[10],p=t[11],m=t[12],g=t[13],v=t[14];let y;t[34]!==c||t[35]!==l||t[36]!==d||t[37]!==f?(y=(0,K.jsxs)(`span`,{className:c,children:[l,d,f,` GB Dateien`]}),t[34]=c,t[35]=l,t[36]=d,t[37]=f,t[38]=y):y=t[38];let b;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,K.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan/35`}),t[39]=b):b=t[39];let x;t[40]===s?x=t[41]:(x=Math.round(s),t[40]=s,t[41]=x);let S;t[42]===x?S=t[43]:(S=(0,K.jsxs)(`span`,{className:`flex items-center gap-2`,children:[b,` Cache, Dienste, System: `,x,` GB`]}),t[42]=x,t[43]=S);let C;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,K.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`h-3 w-0.5 bg-bernstein`}),` Ab hier wird es eng`]}),t[44]=C):C=t[44];let w;t[45]!==S||t[46]!==p||t[47]!==y?(w=(0,K.jsxs)(`div`,{className:p,children:[y,S,C]}),t[45]=S,t[46]=p,t[47]=y,t[48]=w):w=t[48];let T;return t[49]!==o||t[50]!==w||t[51]!==m||t[52]!==g||t[53]!==v?(T=(0,K.jsxs)(o,{titel:m,rechts:g,children:[v,w]}),t[49]=o,t[50]=w,t[51]=m,t[52]=g,t[53]=v,t[54]=T):T=t[54],T}function Y(e,t){return e+(u(t.size_bytes)??0)}function X(e){let t=(0,W.c)(7),{name:n,wert:r}=e,i;t[0]===n?i=t[1]:(i=(0,K.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,K.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,K.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 Z(e){let t=(0,W.c)(48),{titel:n,modell:r,zwilling:a,laeuft:o,nutzer:s}=e,c=w();if(!r){let e;t[0]===n?e=t[1]:(e=(0,K.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,K.jsx)(O,{children:`Frei`}),t[2]=r):r=t[2];let i;t[3]===e?i=t[4]:(i=(0,K.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,K.jsx)(`h3`,{className:`font-anzeige text-xl font-semibold text-text-2`,children:`Nicht belegt`}),o=(0,K.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,K.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 l;t[9]!==r.ctx||t[10]!==r.parallel_slots?(l=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]=l):l=t[11];let u=l,f=!!r.capabilities?.vision||!!a,p;t[12]===n?p=t[13]:(p=(0,K.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[12]=n,t[13]=p);let m=o?`gruen`:`grau`,h=o?`Geladen`:`Auf Abruf`,g;t[14]!==m||t[15]!==h?(g=(0,K.jsx)(O,{art:m,children:h}),t[14]=m,t[15]=h,t[16]=g):g=t[16];let _;t[17]!==p||t[18]!==g?(_=(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[p,g]}),t[17]=p,t[18]=g,t[19]=_):_=t[19];let v;t[20]===r.name?v=t[21]:(v=(0,K.jsx)(`h3`,{className:`ziffern m-0 text-lg font-medium break-all`,children:r.name}),t[20]=r.name,t[21]=v);let y;t[22]===r.size_bytes?y=t[23]:(y=d(r.size_bytes),t[22]=r.size_bytes,t[23]=y);let b;t[24]===y?b=t[25]:(b=(0,K.jsx)(X,{name:`Größe`,wert:y}),t[24]=y,t[25]=b);let x=u?`${u}k`:`–`,S;t[26]===x?S=t[27]:(S=(0,K.jsx)(X,{name:`Kontext`,wert:x}),t[26]=x,t[27]=S);let C=f?`ja`:`nein`,T;t[28]===C?T=t[29]:(T=(0,K.jsx)(X,{name:`Bilder`,wert:C}),t[28]=C,t[29]=T);let E;t[30]!==S||t[31]!==T||t[32]!==b?(E=(0,K.jsxs)(`dl`,{className:`m-0 grid grid-cols-3 gap-3`,children:[b,S,T]}),t[30]=S,t[31]=T,t[32]=b,t[33]=E):E=t[33];let D=r.spec_active?` Mit Draft-Beschleunigung.`:``,k=a?` Bilder sieht es über seinen Bild-Zwilling, der nur bei Bedarf lädt.`:``,A;t[34]!==s||t[35]!==D||t[36]!==k?(A=(0,K.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Genutzt von `,s,`.`,D,k]}),t[34]=s,t[35]=D,t[36]=k,t[37]=A):A=t[37];let j;t[38]!==c||t[39]!==o||t[40]!==r.name?(j=!o&&(0,K.jsx)(i,{variant:`outline`,size:`sm`,className:`mt-auto self-start`,onClick:()=>c.mutate(r.name),disabled:c.isPending,children:`Jetzt laden`}),t[38]=c,t[39]=o,t[40]=r.name,t[41]=j):j=t[41];let M;return t[42]!==E||t[43]!==A||t[44]!==j||t[45]!==_||t[46]!==v?(M=(0,K.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-linie bg-panel p-5`,children:[_,v,E,A,j]}),t[42]=E,t[43]=A,t[44]=j,t[45]=_,t[46]=v,t[47]=M):M=t[47],M}function Q(e){let t=(0,W.c)(54),{nutzung:n,laedt:r,fehler:i}=e;if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,K.jsx)(A,{titel:`Wer nutzt die Modelle`,children:r?(0,K.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):(0,K.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(le)),t[3]=n.absender,t[4]=a);let o=a,s,c,l,u,d,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(se),r=Math.max(1,...e);s=A,y=`Wer nutzt die Modelle`,t[21]===n.tage?c=t[22]:(c=(0,K.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,K.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,K.jsxs)(`li`,{className:`flex flex-col gap-1.5`,children:[(0,K.jsxs)(`div`,{className:`flex justify-between gap-3 text-sm`,children:[(0,K.jsx)(`span`,{children:e.name}),(0,K.jsx)(`span`,{className:`ziffern`,children:f(e.anfragen)})]}),(0,K.jsx)(`div`,{className:`h-2 rounded-full bg-erhaben`,children:(0,K.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,K.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-3.5 p-0`,children:i}),t[30]=i,t[31]=u),_=`flex flex-col gap-1.5`,t[32]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,K.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`,p=`h-16 w-full`,m=`img`,h=`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,K.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),g=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]=p,t[15]=m,t[16]=h,t[17]=g,t[18]=_,t[19]=v,t[20]=y}else s=t[9],c=t[10],l=t[11],u=t[12],d=t[13],p=t[14],m=t[15],h=t[16],g=t[17],_=t[18],v=t[19],y=t[20];let b;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(b=[0,6,12,18].map(oe),t[35]=b):b=t[35];let x;t[36]!==d||t[37]!==p||t[38]!==m||t[39]!==h||t[40]!==g?(x=(0,K.jsxs)(`svg`,{viewBox:d,className:p,role:m,"aria-label":h,children:[g,b]}),t[36]=d,t[37]=p,t[38]=m,t[39]=h,t[40]=g,t[41]=x):x=t[41];let S;t[42]!==x||t[43]!==_||t[44]!==v?(S=(0,K.jsxs)(`div`,{className:_,children:[v,x]}),t[42]=x,t[43]=_,t[44]=v,t[45]=S):S=t[45];let C;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,K.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,K.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 oe(e){return(0,K.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 se(e){return Object.values(e.je_absender).reduce(ce,0)}function ce(e,t){return e+t}function le(e){return e.anfragen}var ue={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`,getestet:`grau`,uebernommen:`gruen`,verworfen:`grau`},de={besser:`text-gruen`,schlechter:`text-rot-text`,gleich:`text-text-2`};function fe(e){let t=(0,W.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,K.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,K.jsx)(`span`,{role:`columnheader`,children:`Messwert`}),(0,K.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Kandidat`}),(0,K.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Heute`})]}),t[3]=a):a=t[3],r=(0,K.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(pe)]})}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 pe(e){let[t,n]=e;return(0,K.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 border-t border-linie py-1`,children:[(0,K.jsx)(`span`,{role:`rowheader`,className:`text-text-2`,children:t}),(0,K.jsx)(`span`,{role:`cell`,className:`ziffern text-right ${de[n.urteil??``]??`text-text-2`}`,children:p(n.kandidat,n.einheit)}),(0,K.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-text-3`,children:p(n.baseline,n.einheit)})]},t)}function me(e){let t=(0,W.c)(59),{k:n,test:r,heute:a}=e,o=m(),[s,l]=(0,G.useState)(null),u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=[`bestanden`,`wartet`,`neu`,`getestet`],t[0]=u):u=t[0];let d=u.includes(n.status),f=n.rolle===`hirn`,p;t[1]===n.name?p=t[2]:(p=(0,K.jsx)(`span`,{className:`ziffern text-[15px] font-medium`,children:n.name}),t[1]=n.name,t[2]=p);let h=f?`fürs Hirn`:`fürs Coden`,g;t[3]===h?g=t[4]:(g=(0,K.jsx)(O,{art:`cyan`,children:h}),t[3]=h,t[4]=g);let _;t[5]!==n.eng||t[6]!==n.groesse_gb||t[7]!==n.passt?(_=n.groesse_gb!=null&&(0,K.jsx)(O,{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]=_):_=t[8];let v=ue[n.status]??`grau`,y=c[n.status]??n.status,b;t[9]!==v||t[10]!==y?(b=(0,K.jsx)(O,{art:v,children:y}),t[9]=v,t[10]=y,t[11]=b):b=t[11];let x;t[12]!==p||t[13]!==g||t[14]!==_||t[15]!==b?(x=(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[p,g,_,b]}),t[12]=p,t[13]=g,t[14]=_,t[15]=b,t[16]=x):x=t[16];let S;t[17]===n.groesse_gb?S=t[18]:(S=n.groesse_gb==null?``:`${n.groesse_gb.toLocaleString(`de-DE`)} GB. `,t[17]=n.groesse_gb,t[18]=S);let C;t[19]!==n.begruendung||t[20]!==S?(C=(0,K.jsxs)(`p`,{className:`text-sm text-text-2`,children:[S,n.begruendung]}),t[19]=n.begruendung,t[20]=S,t[21]=C):C=t[21];let w;t[22]!==n.status||t[23]!==r?(w=r&&[`bestanden`,`durchgefallen`].includes(n.status)&&(0,K.jsx)(fe,{test:r}),t[22]=n.status,t[23]=r,t[24]=w):w=t[24];let T;t[25]!==o.isPending||t[26]!==n.status||t[27]!==d?(T=d&&(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.status===`bestanden`&&(0,K.jsx)(i,{size:`sm`,disabled:o.isPending,onClick:()=>l(`uebernehmen`),children:`Übernehmen`}),(0,K.jsx)(i,{variant:`outline`,size:`sm`,disabled:o.isPending,onClick:()=>l(`verwerfen`),children:`Verwerfen`})]}),t[25]=o.isPending,t[26]=n.status,t[27]=d,t[28]=T):T=t[28];let E=s===`uebernehmen`,D=`${n.name} übernehmen?`,k=f?`${n.name} wird Lucys Hirn${a?` und löst ${a} 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${a?` und löst ${a} ab`:``}. OpenChamber plant und baut ab dann damit. Das alte Modell bleibt auf der Platte.`,A;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>l(null),t[29]=A):A=t[29];let j;t[30]!==o||t[31]!==s||t[32]!==n.id||t[33]!==n.name?(j=()=>{s===`uebernehmen`&&(o.mutate({id:n.id,aktion:`uebernehmen`,name:n.name}),l(null))},t[30]=o,t[31]=s,t[32]=n.id,t[33]=n.name,t[34]=j):j=t[34];let M;t[35]!==o.isPending||t[36]!==E||t[37]!==D||t[38]!==k||t[39]!==j?(M=(0,K.jsx)(z,{offen:E,titel:D,text:k,knopf:`Übernehmen`,gesperrt:o.isPending,onNein:A,onJa:j}),t[35]=o.isPending,t[36]=E,t[37]=D,t[38]=k,t[39]=j,t[40]=M):M=t[40];let N=s===`verwerfen`,P=`${n.name} verwerfen?`,F;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>l(null),t[41]=F):F=t[41];let I;t[42]!==o||t[43]!==s||t[44]!==n.id||t[45]!==n.name?(I=()=>{s===`verwerfen`&&(o.mutate({id:n.id,aktion:`verwerfen`,name:n.name}),l(null))},t[42]=o,t[43]=s,t[44]=n.id,t[45]=n.name,t[46]=I):I=t[46];let L;t[47]!==o.isPending||t[48]!==N||t[49]!==P||t[50]!==I?(L=(0,K.jsx)(z,{offen:N,gefahr:!0,titel:P,text:`Die heruntergeladenen Dateien werden gelöscht, und das Radar testet dieses Modell nicht noch einmal.`,knopf:`Verwerfen`,gesperrt:o.isPending,onNein:F,onJa:I}),t[47]=o.isPending,t[48]=N,t[49]=P,t[50]=I,t[51]=L):L=t[51];let R;return t[52]!==C||t[53]!==w||t[54]!==T||t[55]!==M||t[56]!==L||t[57]!==x?(R=(0,K.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3.5`,children:[x,C,w,T,M,L]}),t[52]=C,t[53]=w,t[54]=T,t[55]=M,t[56]=L,t[57]=x,t[58]=R):R=t[58],R}function he(e){let t=(0,W.c)(24),{hirn:n,coder:r}=e,a=M(),c=s();if(a.isError&&!a.data){let e=a.error instanceof o&&a.error.status===404,n;return t[0]!==e||t[1]!==a.error?(n=(0,K.jsx)(A,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,children:e?(0,K.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Das Radar ist auf dieser Box noch nicht eingerichtet.`}):(0,K.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Radar antwortet gerade nicht: `,a.error.message]})}),t[0]=e,t[1]=a.error,t[2]=n):n=t[2],n}let l=a.data,u;t[3]===c?u=t[4]:(u=()=>c.mutate(void 0),t[3]=c,t[4]=u);let d=c.isPending?`Sucht …`:`Jetzt suchen`,f;t[5]!==c.isPending||t[6]!==u||t[7]!==d?(f=(0,K.jsx)(i,{variant:`info`,size:`sm`,onClick:u,disabled:c.isPending,children:d}),t[5]=c.isPending,t[6]=u,t[7]=d,t[8]=f):f=t[8];let p;t[9]===l?p=t[10]:(p=l?.naechster_test?` Nächster Test: ${D(l.naechster_test)}.`:``,t[9]=l,t[10]=p);let m;t[11]===p?m=t[12]:(m=(0,K.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.`,p]}),t[11]=p,t[12]=m);let h;t[13]!==r||t[14]!==l||t[15]!==n?(h=l?l.kandidaten.length===0?(0,K.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}):(0,K.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:l.kandidaten.map(e=>(0,K.jsx)(me,{k:e,test:l.tests.find(t=>t.kandidat===e.id),heute:e.rolle===`hirn`?n:r},e.id))}):(0,K.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),t[13]=r,t[14]=l,t[15]=n,t[16]=h):h=t[16];let g;t[17]===l?g=t[18]:(g=l&&l.tests.length>0&&(0,K.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,K.jsx)(`h3`,{className:`schild text-xs text-text-3`,children:`Letzte Tests`}),l.tests.slice(0,3).map(ge)]}),t[17]=l,t[18]=g);let _;return t[19]!==f||t[20]!==m||t[21]!==h||t[22]!==g?(_=(0,K.jsxs)(A,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,rechts:f,children:[m,h,g]}),t[19]=f,t[20]=m,t[21]=h,t[22]=g,t[23]=_):_=t[23],_}function ge(e){return(0,K.jsxs)(`p`,{className:`text-sm text-text-2`,children:[(0,K.jsx)(`span`,{className:`ziffern text-text-3`,children:D(e.datum)}),` · `,e.zusammenfassung]},e.id)}function $(){let e=(0,W.c)(33),t=E(),n=S(),[r,a]=(0,G.useState)(null),o,s,c,l,u;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError){u=Symbol.for(`react.early_return_sentinel`);bb0:{s=t.data?.kandidaten??[];let n=s.reduce(_e,0);if(t.isError&&!t.data){let n;e[8]===t.error.message?n=e[9]:(n=(0,K.jsx)(A,{titel:`Aufräumen`,children:(0,K.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[8]=t.error.message,e[9]=n),u=n;break bb0}o=A,c=`Aufräumen`,l=s.length>0?(0,K.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`bis zu `,n.toLocaleString(`de-DE`,{maximumFractionDigits:0}),` GB frei`]}):void 0}e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=o,e[4]=s,e[5]=c,e[6]=l,e[7]=u}else o=e[3],s=e[4],c=e[5],l=e[6],u=e[7];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,K.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[10]=d):d=e[10];let f;e[11]!==s||e[12]!==t.isPending||e[13]!==n.isPending?(f=t.isPending?(0,K.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):s.length===0?(0,K.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts aufzuräumen.`}):(0,K.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:s.map(e=>(0,K.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,K.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,K.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.name}),(0,K.jsx)(O,{children:e.art===`eintrag`?`Eintrag`:`Ordner`})]}),(0,K.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,K.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,K.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[e.groesse_gb.toLocaleString(`de-DE`),` GB`]}),(0,K.jsx)(i,{variant:`gefahr`,size:`sm`,disabled:n.isPending,onClick:()=>a(e),children:`Löschen`})]})]},`${e.art}-${e.name}`))}),e[11]=s,e[12]=t.isPending,e[13]=n.isPending,e[14]=f):f=e[14];let p=r!==null,m=`${r?.name??``} löschen?`,h;e[15]===r?.groesse_gb?h=e[16]:(h=r?.groesse_gb.toLocaleString(`de-DE`)??``,e[15]=r?.groesse_gb,e[16]=h);let g=`${r?.hinweis??``} Es werden ${h} GB frei. Das lässt sich nicht rückgängig machen — zurück ginge es nur mit einem neuen Download.`,_;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(_=()=>a(null),e[17]=_):_=e[17];let v;e[18]!==r||e[19]!==n?(v=()=>{r&&n.mutate(r),a(null)},e[18]=r,e[19]=n,e[20]=v):v=e[20];let y;e[21]!==n.isPending||e[22]!==v||e[23]!==p||e[24]!==m||e[25]!==g?(y=(0,K.jsx)(z,{offen:p,gefahr:!0,titel:m,text:g,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:_,onJa:v}),e[21]=n.isPending,e[22]=v,e[23]=p,e[24]=m,e[25]=g,e[26]=y):y=e[26];let b;return e[27]!==o||e[28]!==c||e[29]!==l||e[30]!==y||e[31]!==f?(b=(0,K.jsxs)(o,{titel:c,rechts:l,children:[d,f,y]}),e[27]=o,e[28]=c,e[29]=l,e[30]=y,e[31]=f,e[32]=b):b=e[32],b}function _e(e,t){return e+t.groesse_gb}function ve(){let e=(0,W.c)(74),t=x(),n=j(),r=M(),a=T(),[o,s]=(0,G.useState)(!1),c;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={select:Se},e[0]=c):c=e[0];let l=V(c),u=!!t.data&&!n.isPending&&!r.isPending&&!a.isPending,f,p;if(e[1]!==u||e[2]!==l?(f=()=>{u&&l===`radar`&&document.getElementById(`radar`)?.scrollIntoView({block:`start`})},p=[u,l],e[1]=u,e[2]=l,e[3]=f,e[4]=p):(f=e[3],p=e[4]),(0,G.useEffect)(f,p),t.isPending){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsx)(k,{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,K.jsx)(k,{fehler:!0,text:n}),e[6]=n,e[7]=r),r}let m=t.data.models,h=t.data.running,g,_,v,y,b,S,C,w,E,O,N,P;if(e[8]!==h||e[9]!==m||e[10]!==n.data||e[11]!==n.error?.message||e[12]!==n.isPending){let t=m.find(xe);_=m.find(be);let r;e[25]===m?r=e[26]:(r=(e,t)=>e?m.find(n=>n!==e&&n.aliases.includes(t)&&n.filename===e.filename):void 0,e[25]=m,e[26]=r);let a=r,o=a(t,`vision`);v=a(_,`coder-bild`);let c=m.filter(e=>![t,_,o,v].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]!==h||e[30]!==m?(N=(0,K.jsx)(J,{modelle:m,laufend:h}),e[29]=h,e[30]=m,e[31]=N):N=e[31],e[32]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,K.jsx)(te,{alsPanel:!0}),e[32]=P):P=e[32];let f;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,K.jsx)(Z,{titel:`Dritte Rolle`,laeuft:!1,nutzer:``}),e[33]=f):f=e[33],y=(0,K.jsxs)(`section`,{"aria-label":`Rollen`,className:`grid gap-5 md:grid-cols-3 md:gap-6`,children:[(0,K.jsx)(Z,{titel:`Hirn`,modell:t,zwilling:o,laeuft:!!t&&h.includes(t.name),nutzer:`Lucy, NerdQuiz und OpenChamber für Kleinkram`}),(0,K.jsx)(Z,{titel:`Coder`,modell:_,zwilling:v,laeuft:!!_&&h.includes(_.name),nutzer:`OpenChamber zum Planen und Bauen und Lucys Delegation`}),f]});let p=n.error?.message??null,x;e[34]!==n.data||e[35]!==n.isPending||e[36]!==p?(x=(0,K.jsx)(Q,{nutzung:n.data,laedt:n.isPending,fehler:p}),e[34]=n.data,e[35]=n.isPending,e[36]=p,e[37]=x):x=e[37];let T=t?.name,k=_?.name,j;e[38]!==T||e[39]!==k?(j=(0,K.jsx)(he,{hirn:T,coder:k}),e[38]=T,e[39]=k,e[40]=j):j=e[40],e[41]!==x||e[42]!==j?(b=(0,K.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.3fr)]`,children:[x,j]}),e[41]=x,e[42]=j,e[43]=b):b=e[43],g=A,w=`Weitere Einträge`,e[44]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,K.jsxs)(i,{variant:`outline`,size:`sm`,onClick:()=>s(!0),children:[(0,K.jsx)(U,{"aria-hidden":!0}),` Modelle selbst suchen`]}),e[44]=E):E=e[44],O=c.length===0&&(0,K.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]!==h||e[46]!==u?(M=e=>(0,K.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,K.jsxs)(`span`,{className:`min-w-0`,children:[(0,K.jsx)(`span`,{className:`ziffern block text-sm break-all`,children:e.name}),(0,K.jsx)(`span`,{className:`text-xs text-text-3`,children:e.aliases.length?e.aliases.join(`, `):`ohne Rolle`})]}),(0,K.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:d(e.size_bytes)}),(0,K.jsx)(`span`,{className:`ziffern hidden text-xs text-text-3 sm:block`,children:h.includes(e.name)?`geladen`:u[e.name]?`zuletzt ${D(u[e.name])}`:`länger nicht geladen`})]},e.name),e[45]=h,e[46]=u,e[47]=M):M=e[47],C=c.map(M),e[8]=h,e[9]=m,e[10]=n.data,e[11]=n.error?.message,e[12]=n.isPending,e[13]=g,e[14]=_,e[15]=v,e[16]=y,e[17]=b,e[18]=S,e[19]=C,e[20]=w,e[21]=E,e[22]=O,e[23]=N,e[24]=P}else g=e[13],_=e[14],v=e[15],y=e[16],b=e[17],S=e[18],C=e[19],w=e[20],E=e[21],O=e[22],N=e[23],P=e[24];let F;e[48]!==S||e[49]!==C?(F=(0,K.jsx)(`ul`,{className:S,children:C}),e[48]=S,e[49]=C,e[50]=F):F=e[50];let I;e[51]!==g||e[52]!==F||e[53]!==w||e[54]!==E||e[55]!==O?(I=(0,K.jsxs)(g,{titel:w,rechts:E,children:[O,F]}),e[51]=g,e[52]=F,e[53]=w,e[54]=E,e[55]=O,e[56]=I):I=e[56];let L;e[57]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,K.jsx)($,{}),e[57]=L):L=e[57];let R;e[58]===Symbol.for(`react.memo_cache_sentinel`)?(R=()=>s(!1),e[58]=R):R=e[58];let z;e[59]!==_||e[60]!==v?(z=_?{name:_.name,zwilling:!!v,weitere:_.aliases.filter(ye)}:void 0,e[59]=_,e[60]=v,e[61]=z):z=e[61];let B;e[62]===z?B=e[63]:(B={coder:z},e[62]=z,e[63]=B);let ee;e[64]!==o||e[65]!==B?(ee=(0,K.jsx)(re,{offen:o,onSchliessen:R,rollenJetzt:B}),e[64]=o,e[65]=B,e[66]=ee):ee=e[66];let H;return e[67]!==y||e[68]!==b||e[69]!==I||e[70]!==ee||e[71]!==N||e[72]!==P?(H=(0,K.jsxs)(K.Fragment,{children:[N,P,y,b,I,L,ee]}),e[67]=y,e[68]=b,e[69]=I,e[70]=ee,e[71]=N,e[72]=P,e[73]=H):H=e[73],H}function ye(e){return e.toLowerCase()!==`coder`}function be(e){return N(e)===`coder`}function xe(e){return N(e)===`hirn`}function Se(e){return e.hash}export{ve as ModelleSeite}; |