import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{$ as a,Bt as o,Dt as s,Tt as c,et as l,h as u,p as d,tt as f}from"./index-BwBSJspl.js";import{t as p}from"./button-D8rvET0Z.js";import{t as m}from"./Bestaetigen-DO-opKIi.js";var h=t();function g(e,t){if(e===`os`)return{laeuft:`Ubuntu`,neu:t.count?`${t.count} ${t.count===1?`Paket`:`Pakete`}`:null};if(e===`hermes`)return{laeuft:t.installed_version?`v${t.installed_version}`:`–`,neu:t.behind?`+${t.behind.toLocaleString(`de-DE`)} Änderungen`:null};let n=e===`engine`?`b`:`v`;return{laeuft:t.installed_build==null?`–`:`${n}${t.installed_build}`,neu:t.latest_build!=null&&t.installed_build!=null&&t.latest_build>t.installed_build?`${n}${t.latest_build}`:null}}function _(e,t){return!t||t.error?null:e===`os`?typeof t.count==`number`?t.count>0:null:e===`hermes`?typeof t.behind==`number`?t.behind>0:null:t.latest_build==null||t.installed_build==null?null:t.latest_build>t.installed_build}function v(e){let t=e.trim();return/timed out|timeout|zeitüberschreitung/i.test(t)?`Konnte nicht prüfen: Die Gegenstelle hat nicht rechtzeitig geantwortet. Später klappt es meist wieder.`:/name resolution|name or service not known|network is unreachable|connection (refused|reset)|nicht erreichbar/i.test(t)?`Konnte nicht prüfen: Die Box kommt gerade nicht ins Internet.`:`Konnte nicht prüfen: ${t.length>160?`${t.slice(0,157)}…`:t}`}var y=e=>e.group===`download`||/^download\s/i.test(e.label),b=e=>e.group===`pruefen`||e.label===`Nach Updates suchen`,x=e=>o(e)&&y(e),S=[[/^download\s+(.+)$/i,`Download $1`],[/^OS-Update \(apt\)$/,`Update Betriebssystem`],[/^Engine-Update \(llama\.cpp Vulkan\)$/,`Update Motor (llama.cpp)`],[/^Router-Update \(llama-swap\)$/,`Update llama-swap`],[/^Hermes-Agent-Update$/,`Update Hermes`]],C=[[`Engine (llama.cpp)`,`Motor`],[`Router (llama-swap)`,`llama-swap`],[`Hermes-Agent`,`Hermes`],[`OS (apt)`,`Betriebssystem`]];function w(e){for(let[t,n]of S)if(t.test(e.label))return e.label.replace(t,n);return e.label.startsWith(`Alle aktualisieren`)?C.reduce((e,[t,n])=>e.split(t).join(n),e.label):e.label}function T(e){if(e<60)return`noch unter einer Minute`;let t=Math.round(e/60);if(t<60)return`noch etwa ${t} min`;let n=Math.floor(t/60),r=t%60;return r?`noch etwa ${n} h ${r} min`:`noch etwa ${n} h`}function E(e,t=Date.now()/1e3){let n=Math.max(0,t-e.started_at),r=Math.floor(n/60),i=n<60?`ein paar Sekunden`:r<60?`${r} min`:`${Math.floor(r/60)} h ${r%60} min`;return`${e.state===`queued`?`Wartet`:`Läuft`} seit ${i}`}function D(e){if(e.progress==null)return null;let t=[`${Math.round(e.progress)} %`];return e.total_bytes&&t.push(`${s(e.done_bytes??0,1)} von ${s(e.total_bytes,1)}`),e.eta_s!=null&&o(e)&&t.push(T(e.eta_s)),t.join(` · `)}function O(e){for(let t=(e.log?.length??0)-1;t>=0;t--){let n=e.log[t].trim();if(n&&!n.startsWith(`$ `))return n}return null}function k(e,t=Date.now()/1e3){let n=e.filter(o).sort((e,t)=>e.started_at-t.started_at),r=e.filter(e=>!o(e)&&!e.quittiert&&t-(e.finished_at??e.started_at)<86400).sort((e,t)=>(t.finished_at??t.started_at)-(e.finished_at??e.started_at)).slice(0,3);return[...n,...r]}function A(e,t,n){if(!n)return`Nach dem Download übernimmt ${e} die Rolle „${t}“.`;let r=n.weitere.length?` Die Rolle${n.weitere.length===1?``:`n`} „${n.weitere.join(`“, „`)}“ behält es.`:``;return`Achtung: Nach dem Download übernimmt ${e} die Rolle „${t}“ und ersetzt damit ${n.name}. Das bisherige Modell bleibt auf der Platte.${r}`+(n.zwilling?` Bilder liest vorerst weiter sein Bild-Zwilling, also noch das bisherige Modell.`:``)}function j(e){return`Kurze Unterbrechung: Beim Eintragen lädt llama-swap sofort neu. Was Lucy oder OpenChamber gerade schreiben, bricht ab, und die Modelle werden neu geladen.`+(e?` Mit Rolle passiert das nach dem Download noch einmal.`:``)}var M=r(e(),1),N=n(),P={queued:{text:`Wartet`,art:`cyan`},running:{text:`Läuft`,art:`cyan`},done:{text:`Fertig`,art:`gruen`},failed:{text:`Fehler`,art:`rot`},canceled:{text:`Abgebrochen`,art:`grau`}},F={queued:`bg-cyan`,running:`bg-cyan`,done:`bg-gruen`,failed:`bg-rot`,canceled:`bg-text-3`},I=e=>c(new Date(e*1e3).toISOString());function L(e){let t=(0,h.c)(3),[n,r]=(0,M.useState)(R),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(!e)return;let t=window.setInterval(()=>r(Date.now()/1e3),3e4);return()=>window.clearInterval(t)},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,M.useEffect)(i,a),n}function R(){return Date.now()/1e3}function z(e){let t=(0,h.c)(76),{job:n,onAbbrechen:r,onQuittieren:a,abbrechenGesperrt:s,ebene:c}=e,l=c===void 0?4:c,[d,f]=(0,M.useState)(!1),[g,_]=(0,M.useState)(!1),v;t[0]===n.state?v=t[1]:(v=P[n.state]??{text:n.state,art:`grau`},t[0]=n.state,t[1]=v);let b=v,S;t[2]===n?S=t[3]:(S=w(n),t[2]=n,t[3]=S);let C=S,T;t[4]===n?T=t[5]:(T=D(n),t[4]=n,t[5]=T);let k=T,A;t[6]===n?A=t[7]:(A=O(n),t[6]=n,t[7]=A);let j=A,R;t[8]===n?R=t[9]:(R=o(n),t[8]=n,t[9]=R);let z=R,B=L(z),V;t[10]!==n||t[11]!==r?(V=!!r&&x(n),t[10]=n,t[11]=r,t[12]=V):V=t[12];let H=V,U,W,G,K,q,J,Y,X;if(t[13]!==s||t[14]!==H||t[15]!==l||t[16]!==k||t[17]!==B||t[18]!==n||t[19]!==z||t[20]!==j||t[21]!==a||t[22]!==g||t[23]!==C||t[24]!==b.art||t[25]!==b.text){let e=(n.log??[]).slice(-12),r=l===3?`h3`:`h4`;Y=`Auftrag: ${C}`,X=`flex flex-col gap-2.5 rounded-xl border border-linie bg-erhaben/50 p-3.5`;let o;t[34]!==r||t[35]!==C?(o=(0,N.jsx)(r,{className:`m-0 min-w-0 text-[15px] leading-snug font-semibold break-words`,children:C}),t[34]=r,t[35]=C,t[36]=o):o=t[36];let c;t[37]!==b.art||t[38]!==b.text?(c=(0,N.jsx)(u,{art:b.art,children:b.text}),t[37]=b.art,t[38]=b.text,t[39]=c):c=t[39],t[40]!==o||t[41]!==c?(U=(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[o,c]}),t[40]=o,t[41]=c,t[42]=U):U=t[42],t[43]!==n.progress||t[44]!==n.state||t[45]!==C?(W=n.progress!=null&&(0,N.jsx)(`div`,{role:`progressbar`,"aria-label":`Fortschritt: ${C}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(n.progress),className:`h-2 overflow-hidden rounded-full bg-linie`,children:(0,N.jsx)(`div`,{className:i(`h-full`,F[n.state]??`bg-cyan`),style:{width:`${Math.max(2,Math.min(100,n.progress))}%`}})}),t[43]=n.progress,t[44]=n.state,t[45]=C,t[46]=W):W=t[46];let d;t[47]!==k||t[48]!==B||t[49]!==n||t[50]!==z||t[51]!==b.text?(d=z?k??E(n,B):`${b.text} · ${I(n.finished_at??n.started_at)}`,t[47]=k,t[48]=B,t[49]=n,t[50]=z,t[51]=b.text,t[52]=d):d=t[52],t[53]===d?G=t[54]:(G=(0,N.jsx)(`p`,{className:`ziffern m-0 text-sm text-text-2`,children:d}),t[53]=d,t[54]=G),t[55]!==n.progress||t[56]!==n.state||t[57]!==z||t[58]!==j?(K=j&&(n.state===`failed`||z&&n.progress==null)&&(0,N.jsx)(`p`,{className:n.state===`failed`?`m-0 text-sm break-words text-rot-text`:`ziffern m-0 line-clamp-2 text-xs break-all text-text-3`,children:n.state===`failed`?`Letzte Meldung: ${j}`:j}),t[55]=n.progress,t[56]=n.state,t[57]=z,t[58]=j,t[59]=K):K=t[59],q=(H||e.length>1||!z&&a)&&(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[H&&(0,N.jsx)(p,{variant:`outline`,size:`sm`,disabled:s,onClick:()=>f(!0),children:`Abbrechen`}),e.length>1&&(0,N.jsx)(p,{variant:`ghost`,size:`sm`,"aria-expanded":g,onClick:()=>_(!g),children:g?`Protokoll zu`:`Protokoll`}),!z&&a&&(0,N.jsx)(p,{variant:`outline`,size:`sm`,className:`ml-auto`,onClick:()=>a(n),children:`Ausblenden`})]}),J=g&&(0,N.jsx)(`pre`,{className:`ziffern m-0 max-h-56 overflow-auto rounded-md bg-[#0b0d0f] p-2 text-xs whitespace-pre-wrap break-all text-text-2`,children:e.join(` `)}),t[13]=s,t[14]=H,t[15]=l,t[16]=k,t[17]=B,t[18]=n,t[19]=z,t[20]=j,t[21]=a,t[22]=g,t[23]=C,t[24]=b.art,t[25]=b.text,t[26]=U,t[27]=W,t[28]=G,t[29]=K,t[30]=q,t[31]=J,t[32]=Y,t[33]=X}else U=t[26],W=t[27],G=t[28],K=t[29],q=t[30],J=t[31],Y=t[32],X=t[33];let Z;t[60]!==H||t[61]!==d||t[62]!==n||t[63]!==r||t[64]!==C?(Z=H&&(0,N.jsx)(m,{offen:d,gefahr:!0,titel:`Auftrag abbrechen?`,text:y(n)?`Der ${C} stoppt. Du kannst ihn später über „Modelle selbst suchen“ neu starten.`:`„${C}“ wird abgebrochen.`,knopf:`Ja, abbrechen`,neinKnopf:`Weiterlaufen lassen`,onNein:()=>f(!1),onJa:()=>{d&&(f(!1),r?.(n))}}),t[60]=H,t[61]=d,t[62]=n,t[63]=r,t[64]=C,t[65]=Z):Z=t[65];let Q;return t[66]!==U||t[67]!==W||t[68]!==G||t[69]!==K||t[70]!==q||t[71]!==J||t[72]!==Z||t[73]!==Y||t[74]!==X?(Q=(0,N.jsxs)(`article`,{"aria-label":Y,className:X,children:[U,W,G,K,q,J,Z]}),t[66]=U,t[67]=W,t[68]=G,t[69]=K,t[70]=q,t[71]=J,t[72]=Z,t[73]=Y,t[74]=X,t[75]=Q):Q=t[75],Q}function B(e){let t=(0,h.c)(19),{alsPanel:n}=e,r=n!==void 0&&n,i=f(),o=a(),s=l(),c,u;if(t[0]!==o||t[1]!==r||t[2]!==i.data||t[3]!==i.error||t[4]!==i.isError||t[5]!==s){u=Symbol.for(`react.early_return_sentinel`);bb0:{let e=k(i.data?.jobs??[]);if(e.length>0){let n;t[8]!==o||t[9]!==r||t[10]!==s?(n=e=>(0,N.jsx)(z,{job:e,ebene:r?3:4,abbrechenGesperrt:o.isPending,onAbbrechen:e=>o.mutate({id:e.id,titel:w(e)}),onQuittieren:e=>s.mutate(e.id)},e.id),t[8]=o,t[9]=r,t[10]=s,t[11]=n):n=t[11],c=(0,N.jsx)(`div`,{className:`grid items-start gap-2.5 lg:grid-cols-2`,children:e.map(n)})}else if(i.isError&&!i.data){let e;t[12]===i.error.message?e=t[13]:(e=(0,N.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Aufträge lassen sich gerade nicht lesen: `,i.error.message]}),t[12]=i.error.message,t[13]=e),c=e}else{u=null;break bb0}}t[0]=o,t[1]=r,t[2]=i.data,t[3]=i.error,t[4]=i.isError,t[5]=s,t[6]=c,t[7]=u}else c=t[6],u=t[7];if(u!==Symbol.for(`react.early_return_sentinel`))return u;if(r){let e;return t[14]===c?e=t[15]:(e=(0,N.jsx)(d,{titel:`Aufträge`,children:c}),t[14]=c,t[15]=e),e}let p;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,N.jsx)(`h3`,{className:`schild m-0 text-sm text-text-3`,children:`Aufträge`}),t[16]=p):p=t[16];let m;return t[17]===c?m=t[18]:(m=(0,N.jsxs)(`section`,{"aria-label":`Aufträge`,className:`flex flex-col gap-2.5`,children:[p,c]}),t[17]=c,t[18]=m),m}export{O as a,g as c,b as i,_ as n,v as o,j as r,A as s,B as t};