diff --git a/frontend/src/panels/guides-data.ts b/frontend/src/panels/guides-data.ts index bfcb0fd..a3480ac 100644 --- a/frontend/src/panels/guides-data.ts +++ b/frontend/src/panels/guides-data.ts @@ -59,8 +59,8 @@ export const GUIDE_GROUPS: GuideGroup[] = [ Kein Programmieren, kein Setup. Ideal als Einstieg.
Nützliche Befehle während der Arbeit:
-/model — Modell mitten im Gespräch wechseln (z.B. auf scout für kurze Fragen)/compact — Kontext komprimieren wenn er voll wird/clear — frischer Start, leerer KontextDie wichtigsten Slash-Commands:
+/model/compact · /summarize/clear · /newBevor OpenCode eine Datei ändert, fragt es nach — mit y bestätigen oder n ablehnen.
-Weitere Infos: opencode.ai/docs
`], +Multi-Agenten (2026): Du kannst in OpenCode mehrere spezialisierte Agenten definieren
+ — z.B. einen review-Agent und einen coder-Agent.
+ Mit Tab wechselst du zwischen primären Agenten; mit @review rufst du einen Subagenten direkt im Chat auf.
+ Agenten werden als Markdown-Dateien angelegt: eine Datei review.md im
+ ~/.config/opencode/-Ordner erstellt automatisch den Agenten review.
Weitere Infos: opencode.ai/docs · Agenten-Docs
`], - ["Cline in VS Code verbinden und nutzen", ` -Cline ist installiert (VS Code Extension)? So richtest du es ein:
+ ["Cline verbinden und nutzen", ` +Cline (v3.81, Stand Juni 2026) läuft in: VS Code, JetBrains, Cursor, Windsurf, Zed, Neovim + und als CLI auf macOS/Linux. Verbinden funktioniert überall gleich:
local) — wird nicht geprüft.Plan-Modus vs. Act-Modus:
-Unterschied zu OpenCode: Cline arbeitet direkt in VS Code — du siehst Änderungen sofort im Editor. - OpenCode ist besser für große, autonome Aufgaben; Cline für Aufgaben die du Schritt für Schritt begleiten willst.
-Weitere Infos: cline.bot
`], +Memory Bank (empfohlen): Lege eine Datei projectbrief.md im Projektordner an —
+ Cline liest sie zu Beginn jeder Aufgabe automatisch. Sie ist das Fundament: Projektziel, Tech-Stack,
+ wichtigste Regeln. Ergänzend: activeContext.md für den aktuellen Fokus,
+ progress.md für den Stand.
.clinerules: Für größere Projekte kannst du statt einer einzelnen Datei ein ganzes
+ Verzeichnis .clinerules/ anlegen — jede Datei darin gilt als separate Regel.
+ Achtung: Jedes Zeichen in .clinerules verbraucht Kontext — kurze, präzise Regeln schlagen lange Listen.
Ausgaben-Limit (seit April 2026): In Settings → Spending Limits kannst du ein + Tages- oder Monats-Budget setzen — verhindert dass ein laufender Agent unbemerkt viel Token verbraucht.
+Weitere Infos: cline.bot · Memory Bank Docs
`], ["OpenWebUI — chatten ohne Vorkenntnisse", `OpenWebUI ist installiert? Verbinden in 3 Schritten:
@@ -149,6 +179,7 @@ export const GUIDE_GROUPS: GuideGroup[] = [Was Agenten schlecht können:
Danach OpenCode neu starten — der Agent nutzt das Werkzeug automatisch wenn er es braucht.
-Empfohlene MCPs für den Einstieg:
-Wo MCPs finden? +
Empfohlene MCPs 2026 — nach Anwendungsfall:
+Über 36.000 MCPs sind mittlerweile verfügbar (Stand Juni 2026). + Fang mit filesystem + github an — die decken 80% der täglichen Arbeit ab.
+Wo MCPs finden: mcp.run · smithery.ai · modelcontextprotocol.io/servers - — oder einfach fragen: „Welche MCPs gibt es für [dein Werkzeug]?"
+ — oder fragen: „Welche MCPs gibt es für [dein Werkzeug]?"Merksatz: Fehlt dem Agenten eine Fähigkeit → MCP. Soll er etwas nur besser machen → Skill (nächster Abschnitt).
`], @@ -256,13 +306,24 @@ Bevor du Dateien änderst: erkläre kurz was du vorhast.Fertige Skills finden:
-Sicherheitshinweis: Ein Snyk-Audit (2026) fand in 13,4% der Community-Skills + kritische Probleme (Prompt Injection, exponierte Secrets). Regel: Skill-Datei kurz lesen bevor du sie einsetzt.
+Oder einfach fragen: „Schreib mir eine AGENTS.md für ein React + TypeScript Projekt mit Tailwind."
`], ["Die Persona — Rolle, Beziehung & Onboarding", `Eine Persona hat zwei Dimensionen — beide sind wichtig:
@@ -351,7 +412,10 @@ Wenn du alle Antworten hast, erstelle daraus: ["AGENTS.MD & SAVEPOINT.MD — Gedächtnis für den Agenten", `Jedes Mal wenn du einen neuen Chat startest, weiß der Agent nichts über dein Projekt. - Diese zwei Dateien lösen das Problem:
+ Diese zwei Dateien lösen das Problem. +AGENTS.md ist 2026 der plattformübergreifende Standard — nativ gelesen von: + OpenCode, Claude Code, Codex CLI, Cursor, Aider, Devin, GitHub Copilot, Gemini CLI, Windsurf, Amazon Q. + Eine Datei, alle Tools.
+ Größe: 200–500 Zeilen sind der empfohlene Sweet Spot (Stand 2026). + AGENTS.md wird in jeden Kontext geladen — je kürzer, desto mehr Platz bleibt für Code und Gespräch.
SAVEPOINT.MD — Vorlage:
# Savepoint — [Datum / Uhrzeit]
@@ -479,14 +549,15 @@ src/
export const CONCEPTS: [string, string][] = [
["LLM / Modell", "Die KI selbst — versteht und schreibt Text (wie ChatGPT, nur lokal auf deinem PC). Ein Modell ist eine konkrete Datei, oft auf etwas spezialisiert (Code, Bilder, Chat)."],
["GGUF", "Das lokal lauffähige Dateiformat. llama-swap lädt nur GGUF — Repos ohne GGUF kann die Engine nicht nutzen."],
- ["Quantisierung (Q4_K_M)", "Verkleinert ein Modell (16-Bit → 4-Bit), damit es in den Speicher passt — bei kaum Qualitätsverlust. Q4_K_M ist der bewährte Sweetspot aus Qualität und Geschwindigkeit."],
+ ["Quantisierung (Q4_K_M)", "Verkleinert ein Modell (16-Bit → 4-Bit), damit es in den Speicher passt — bei kaum Qualitätsverlust. Q4_K_M ist der bewährte Sweetspot. Für Coding/Reasoning: Q8_0 (nahezu verlustfrei). Wenn Q4_K_M 1 GB zu groß ist: IQ4_XS als Alternative (ähnliche Qualität, etwas kleiner)."],
["Kontextfenster", "Das Kurzzeitgedächtnis: wie viel Text sich das Modell gleichzeitig merken kann. Größer = mehr Überblick, mehr Speicher, etwas langsamer."],
["Token", "Die kleinste Einheit die ein Modell verarbeitet — meist 3–4 Zeichen oder ein kurzes Wort. 1 000 Tokens ≈ 750 Wörter. Kontextfenster, Geschwindigkeit und Kosten werden in Tokens gemessen."],
["Auto-Swap", "llama-swap lädt/entlädt Modelle automatisch — immer nur eins gleichzeitig. Du managst nichts."],
["TTL (Time to Live)", "Wie lange ein Modell nach der letzten Anfrage im RAM bleibt bevor es entladen wird. Standard: 5 Minuten. ∞ = bleibt dauerhaft geladen (sinnvoll für den Scout)."],
["Agent", "Ein Programm (OpenCode, Cline, Continue), das das Modell in einer Handlungsschleife laufen lässt — Dateien lesen/ändern, Befehle ausführen, planen, bis die Aufgabe erledigt ist."],
["MCP", "Model Context Protocol — der Stecker, über den ein Agent zusätzliche Werkzeuge bekommt (Web, Datenbank, GitHub …). MCP = neue Fähigkeiten."],
- ["Skills / Rules", "Kurze Textdatei (AGENTS.md, .clinerules …) mit Anweisungen wie der Agent in deinem Projekt arbeiten soll — einmal geschrieben, immer befolgt."],
+ ["Skills / Rules", "Kurze Textdatei (AGENTS.md, .clinerules …) mit Anweisungen wie der Agent in deinem Projekt arbeiten soll — einmal geschrieben, immer befolgt. Seit 2026 plattformübergreifender Standard: AGENTS.md wird von über 10 Tools nativ gelesen."],
+ ["Memory Bank", "Clines Konzept für dauerhaften Projekt-Kontext: projectbrief.md (Ziel & Scope), activeContext.md (aktueller Fokus), progress.md (Stand). Wird zu Beginn jeder Aufgabe automatisch gelesen — ähnlich wie AGENTS.md, aber aufgeteilt nach Zweck."],
["System-Prompt", "Eine unsichtbare Anweisung die vor deiner Nachricht steht und das Verhalten des Modells grundlegend prägt (Sprache, Ton, Rolle). Skills nutzen oft den System-Prompt."],
["Vision", "Modelle mit Vision-Fähigkeit können Bilder verstehen — Screenshots, Diagramme, Fehlerfotos. Erkennbar am mmproj-Projektor der mitgeladen wird."],
]
diff --git a/static/dist/main.js b/static/dist/main.js
index 8db0881..22cc43c 100644
--- a/static/dist/main.js
+++ b/static/dist/main.js
@@ -1,25 +1,25 @@
-var rl=Object.defineProperty;var $i=e=>{throw TypeError(e)};var il=(e,t,a)=>t in e?rl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var rn=(e,t,a)=>il(e,typeof t!="symbol"?t+"":t,a),Ur=(e,t,a)=>t.has(e)||$i("Cannot "+a);var f=(e,t,a)=>(Ur(e,t,"read from private field"),a?a.call(e):t.get(e)),ce=(e,t,a)=>t.has(e)?$i("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,a),oe=(e,t,a,r)=>(Ur(e,t,"write to private field"),r?r.call(e,a):t.set(e,a),a),Ne=(e,t,a)=>(Ur(e,t,"access private method"),a);var bi=Array.isArray,sl=Array.prototype.indexOf,Tr=Array.prototype.includes,Ir=Array.from,ll=Object.defineProperty,Ya=Object.getOwnPropertyDescriptor,ol=Object.getOwnPropertyDescriptors,dl=Object.prototype,cl=Array.prototype,os=Object.getPrototypeOf,Di=Object.isExtensible;const ul=()=>{};function vl(e){for(var t=0;t{e=r,t=i});return{promise:a,resolve:e,reject:t}}function sr(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const a=[];for(const r of e)if(a.push(r),a.length===t)break;return a}const Wt=2,Ra=4,Br=8,cs=1<<24,xn=16,Mn=32,ea=64,ri=128,hn=512,Lt=1024,Kt=2048,Ln=4096,Jt=8192,gn=16384,Ka=32768,ii=1<<25,Ia=65536,Cr=1<<17,fl=1<<18,Ga=1<<19,pl=1<<20,zn=1<<25,_a=65536,Pr=1<<21,Aa=1<<22,Xn=1<<23,Ta=Symbol("$state"),hl=Symbol(""),yr=Symbol("attributes"),si=Symbol("class"),li=Symbol("style"),Ha=Symbol("text"),xr=Symbol("form reset"),qr=new class extends Error{constructor(){super(...arguments);rn(this,"name","StaleReactionError");rn(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var rs;const gl=!!((rs=globalThis.document)!=null&&rs.contentType)&&globalThis.document.contentType.includes("xml");function us(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function ml(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function bl(e,t,a){throw new Error("https://svelte.dev/e/each_key_duplicate")}function _l(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function wl(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function kl(e){throw new Error("https://svelte.dev/e/effect_orphan")}function yl(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function xl(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Sl(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Ml(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function El(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Al=1,Tl=2,vs=4,Cl=8,Pl=16,zl=1,$l=2,Dt=Symbol("uninitialized"),fs="http://www.w3.org/1999/xhtml",Dl="http://www.w3.org/2000/svg",Ll="http://www.w3.org/1998/Math/MathML";function Ol(){console.warn("https://svelte.dev/e/derived_inert")}function Rl(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Il(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function ps(e){return e===this.v}function Bl(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function hs(e){return!Bl(e,this.v)}let Gt=null;function Ba(e){Gt=e}function na(e,t=!1,a){Gt={p:Gt,i:!1,c:null,e:null,s:e,x:null,r:Ee,l:null}}function aa(e){var t=Gt,a=t.e;if(a!==null){t.e=null;for(var r of a)Is(r)}return t.i=!0,Gt=t.p,{}}function gs(){return!0}let sa=[];function ms(){var e=sa;sa=[],vl(e)}function ha(e){if(sa.length===0&&!er){var t=sa;queueMicrotask(()=>{t===sa&&ms()})}sa.push(e)}function ql(){for(;sa.length>0;)ms()}function bs(e){var t=Ee;if(t===null)return we.f|=Xn,e;if((t.f&Ka)===0&&(t.f&Ra)===0)throw e;Zn(e,t)}function Zn(e,t){if(!(t!==null&&(t.f&gn)!==0)){for(;t!==null;){if((t.f&ri)!==0){if((t.f&Ka)===0)throw e;try{t.b.error(e);return}catch(a){e=a}}t=t.parent}throw e}}const Fl=-7169;function Tt(e,t){e.f=e.f&Fl|t}function _i(e){(e.f&hn)!==0||e.deps===null?Tt(e,Lt):Tt(e,Ln)}function _s(e){if(e!==null)for(const t of e)(t.f&Wt)===0||(t.f&_a)===0||(t.f^=_a,_s(t.deps))}function ws(e,t,a){(e.f&Kt)!==0?t.add(e):(e.f&Ln)!==0&&a.add(e),_s(e.deps),Tt(e,Lt)}function Nl(e){let t=0,a=ka(0),r;return()=>{Ei()&&(n(a),Fr(()=>(t===0&&(r=Wa(()=>e(()=>tr(a)))),t+=1,()=>{ha(()=>{t-=1,t===0&&(r==null||r(),r=void 0,tr(a))})})))}}var Kl=Ia|Ga;function Gl(e,t,a,r){new Wl(e,t,a,r)}var cn,mi,un,ca,Xt,vn,jt,ln,Bn,ua,Jn,Ca,cr,ur,qn,Lr,yt,Vl,Ul,Hl,oi,Sr,Mr,di,ci;class Wl{constructor(t,a,r,i){ce(this,yt);rn(this,"parent");rn(this,"is_pending",!1);rn(this,"transform_error");ce(this,cn);ce(this,mi,null);ce(this,un);ce(this,ca);ce(this,Xt);ce(this,vn,null);ce(this,jt,null);ce(this,ln,null);ce(this,Bn,null);ce(this,ua,0);ce(this,Jn,0);ce(this,Ca,!1);ce(this,cr,new Set);ce(this,ur,new Set);ce(this,qn,null);ce(this,Lr,Nl(()=>(oe(this,qn,ka(f(this,ua))),()=>{oe(this,qn,null)})));var o;oe(this,cn,t),oe(this,un,a),oe(this,ca,d=>{var c=Ee;c.b=this,c.f|=ri,r(d)}),this.parent=Ee.b,this.transform_error=i??((o=this.parent)==null?void 0:o.transform_error)??(d=>d),oe(this,Xt,Ti(()=>{Ne(this,yt,oi).call(this)},Kl))}defer_effect(t){ws(t,f(this,cr),f(this,ur))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!f(this,un).pending}update_pending_count(t,a){Ne(this,yt,di).call(this,t,a),oe(this,ua,f(this,ua)+t),!(!f(this,qn)||f(this,Ca))&&(oe(this,Ca,!0),ha(()=>{oe(this,Ca,!1),f(this,qn)&&qa(f(this,qn),f(this,ua))}))}get_effect_pending(){return f(this,Lr).call(this),n(f(this,qn))}error(t){if(!f(this,un).onerror&&!f(this,un).failed)throw t;j!=null&&j.is_fork?(f(this,vn)&&j.skip_effect(f(this,vn)),f(this,jt)&&j.skip_effect(f(this,jt)),f(this,ln)&&j.skip_effect(f(this,ln)),j.oncommit(()=>{Ne(this,yt,ci).call(this,t)})):Ne(this,yt,ci).call(this,t)}}cn=new WeakMap,mi=new WeakMap,un=new WeakMap,ca=new WeakMap,Xt=new WeakMap,vn=new WeakMap,jt=new WeakMap,ln=new WeakMap,Bn=new WeakMap,ua=new WeakMap,Jn=new WeakMap,Ca=new WeakMap,cr=new WeakMap,ur=new WeakMap,qn=new WeakMap,Lr=new WeakMap,yt=new WeakSet,Vl=function(){try{oe(this,vn,fn(()=>f(this,ca).call(this,f(this,cn))))}catch(t){this.error(t)}},Ul=function(t){const a=f(this,un).failed;a&&oe(this,ln,fn(()=>{a(f(this,cn),()=>t,()=>()=>{})}))},Hl=function(){const t=f(this,un).pending;t&&(this.is_pending=!0,oe(this,jt,fn(()=>t(f(this,cn)))),ha(()=>{var a=oe(this,Bn,document.createDocumentFragment()),r=Kn();a.append(r),oe(this,vn,Ne(this,yt,Mr).call(this,()=>fn(()=>f(this,ca).call(this,r)))),f(this,Jn)===0&&(f(this,cn).before(a),oe(this,Bn,null),ma(f(this,jt),()=>{oe(this,jt,null)}),Ne(this,yt,Sr).call(this,j))}))},oi=function(){try{if(this.is_pending=this.has_pending_snippet(),oe(this,Jn,0),oe(this,ua,0),oe(this,vn,fn(()=>{f(this,ca).call(this,f(this,cn))})),f(this,Jn)>0){var t=oe(this,Bn,document.createDocumentFragment());Pi(f(this,vn),t);const a=f(this,un).pending;oe(this,jt,fn(()=>a(f(this,cn))))}else Ne(this,yt,Sr).call(this,j)}catch(a){this.error(a)}},Sr=function(t){this.is_pending=!1,t.transfer_effects(f(this,cr),f(this,ur))},Mr=function(t){var a=Ee,r=we,i=Gt;On(f(this,Xt)),mn(f(this,Xt)),Ba(f(this,Xt).ctx);try{return wa.ensure(),t()}catch(o){return bs(o),null}finally{On(a),mn(r),Ba(i)}},di=function(t,a){var r;if(!this.has_pending_snippet()){this.parent&&Ne(r=this.parent,yt,di).call(r,t,a);return}oe(this,Jn,f(this,Jn)+t),f(this,Jn)===0&&(Ne(this,yt,Sr).call(this,a),f(this,jt)&&ma(f(this,jt),()=>{oe(this,jt,null)}),f(this,Bn)&&(f(this,cn).before(f(this,Bn)),oe(this,Bn,null)))},ci=function(t){f(this,vn)&&(nn(f(this,vn)),oe(this,vn,null)),f(this,jt)&&(nn(f(this,jt)),oe(this,jt,null)),f(this,ln)&&(nn(f(this,ln)),oe(this,ln,null));var a=f(this,un).onerror;let r=f(this,un).failed;var i=!1,o=!1;const d=()=>{if(i){Il();return}i=!0,o&&El(),f(this,ln)!==null&&ma(f(this,ln),()=>{oe(this,ln,null)}),Ne(this,yt,Mr).call(this,()=>{Ne(this,yt,oi).call(this)})},c=u=>{try{o=!0,a==null||a(u,d),o=!1}catch(v){Zn(v,f(this,Xt)&&f(this,Xt).parent)}r&&oe(this,ln,Ne(this,yt,Mr).call(this,()=>{try{return fn(()=>{var v=Ee;v.b=this,v.f|=ri,r(f(this,cn),()=>u,()=>d)})}catch(v){return Zn(v,f(this,Xt).parent),null}}))};ha(()=>{var u;try{u=this.transform_error(t)}catch(v){Zn(v,f(this,Xt)&&f(this,Xt).parent);return}u!==null&&typeof u=="object"&&typeof u.then=="function"?u.then(c,v=>Zn(v,f(this,Xt)&&f(this,Xt).parent)):c(u)})};function jl(e,t,a,r){const i=wi;var o=e.filter(y=>!y.settled),d=t.map(i);if(a.length===0&&o.length===0){r(d);return}var c=Ee,u=Jl(),v=o.length===1?o[0].promise:o.length>1?Promise.all(o.map(y=>y.promise)):null;function g(y){if((c.f&gn)===0){u();try{r([...d,...y])}catch(T){Zn(T,c)}zr()}}var E=ks();if(a.length===0){v.then(()=>g([])).finally(E);return}function p(){Promise.all(a.map(y=>Ql(y))).then(g).catch(y=>Zn(y,c)).finally(E)}v?v.then(()=>{u(),p(),zr()}):p()}function Jl(){var e=Ee,t=we,a=Gt,r=j;return function(o=!0){On(e),mn(t),Ba(a),o&&(e.f&gn)===0&&(r==null||r.activate(),r==null||r.apply())}}function zr(e=!0){On(null),mn(null),Ba(null),e&&(j==null||j.deactivate())}function ks(){var e=Ee,t=e.b,a=j,r=!!(t!=null&&t.is_rendered());return t==null||t.update_pending_count(1,a),a.increment(r,e),()=>{t==null||t.update_pending_count(-1,a),a.decrement(r,e)}}function wi(e){var t=Wt|Kt;return Ee!==null&&(Ee.f|=Ga),{ctx:Gt,deps:null,effects:null,equals:ps,f:t,fn:e,reactions:null,rv:0,v:Dt,wv:0,parent:Ee,ac:null}}const ja=Symbol("obsolete");function Ql(e,t,a){let r=Ee;r===null&&ml();var i=void 0,o=ka(Dt),d=!we,c=new Set;return po(()=>{var y,T;var u=Ee,v=ds();i=v.promise;try{Promise.resolve(e()).then(v.resolve,z=>{z!==qr&&v.reject(z)}).finally(zr)}catch(z){v.reject(z),zr()}var g=j;if(d){if((u.f&Ka)!==0)var E=ks();if((y=r.b)!=null&&y.is_rendered())(T=g.async_deriveds.get(u))==null||T.reject(ja);else for(const z of c.values())z.reject(ja);c.add(v),g.async_deriveds.set(u,v)}const p=(z,x=void 0)=>{E==null||E(),c.delete(v),x!==ja&&(g.activate(),x?(o.f|=Xn,qa(o,x)):((o.f&Xn)!==0&&(o.f^=Xn),qa(o,z)),g.deactivate())};v.promise.then(p,z=>p(null,z||"unknown"))}),Rs(()=>{for(const u of c)u.reject(ja)}),new Promise(u=>{function v(g){function E(){g===i?u(o):v(i)}g.then(E,E)}v(i)})}function O(e){const t=wi(e);return Ws(t),t}function Zl(e){const t=wi(e);return t.equals=hs,t}function Yl(e){var t=e.effects;if(t!==null){e.effects=null;for(var a=0;athis.schedule(r)){var r=f(this,Cn).get(t);if(r){f(this,Cn).delete(t);for(var i of r.d)Tt(i,Kt),a(i);for(i of r.m)Tt(i,Ln),a(i)}f(this,Oa).add(t)}capture(t,a,r=!1){t.v!==Dt&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&Xn)===0&&(this.current.set(t,[a,r]),Nt==null||Nt.set(t,a)),this.is_fork||(t.v=a)}activate(){j=this}deactivate(){j=null,Nt=null}flush(){try{jr=!0,j=this,Ne(this,je,Ja).call(this)}finally{Li=0,ui=null,Ea=null,Er=null,jr=!1,j=null,Nt=null,ga.clear()}}discard(){var t;for(const a of f(this,$a))a(this);f(this,$a).clear();for(const a of this.async_deriveds.values())a.reject(ja);Ne(this,je,Qa).call(this),(t=f(this,La))==null||t.resolve()}register_created_effect(t){f(this,vr).push(t)}increment(t,a){if(oe(this,Da,f(this,Da)+1),t){let r=f(this,Fn).get(a)??0;f(this,Fn).set(a,r+1)}}decrement(t,a){if(oe(this,Da,f(this,Da)-1),t){let r=f(this,Fn).get(a)??0;r===1?f(this,Fn).delete(a):f(this,Fn).set(a,r-1)}f(this,fa)||(oe(this,fa,!0),ha(()=>{oe(this,fa,!1),this.linked&&this.flush()}))}transfer_effects(t,a){for(const r of t)f(this,Nn).add(r);for(const r of a)f(this,wn).add(r);t.clear(),a.clear()}oncommit(t){f(this,za).add(t)}ondiscard(t){f(this,$a).add(t)}settled(){return(f(this,La)??oe(this,La,ds())).promise}static ensure(){if(j===null){const t=j=new Or;!jr&&!er&&ha(()=>{f(t,Pa)||t.flush()})}return j}apply(){{Nt=null;return}}schedule(t){var i;if(ui=t,(i=t.b)!=null&&i.is_pending&&(t.f&(Ra|Br|cs))!==0&&(t.f&Ka)===0){t.b.defer_effect(t);return}for(var a=t;a.parent!==null;){a=a.parent;var r=a.f;if(Ea!==null&&a===Ee&&(we===null||(we.f&Wt)===0))return;if((r&(ea|Mn))!==0){if((r&Lt)===0)return;a.f^=Lt}}f(this,en).push(a)}};Pa=new WeakMap,Qn=new WeakMap,va=new WeakMap,za=new WeakMap,$a=new WeakMap,Da=new WeakMap,Fn=new WeakMap,La=new WeakMap,en=new WeakMap,vr=new WeakMap,Nn=new WeakMap,wn=new WeakMap,Cn=new WeakMap,Oa=new WeakMap,fa=new WeakMap,je=new WeakSet,vi=function(){if(this.is_fork)return!0;for(const r of f(this,Fn).keys()){for(var t=r,a=!1;t.parent!==null;){if(f(this,Cn).has(t)){a=!0;break}t=t.parent}if(!a)return!0}return!1},Ja=function(){var u,v,g,E;oe(this,Pa,!0),Li++>1e3&&(Ne(this,je,Qa).call(this),ao());for(const p of f(this,Nn))f(this,wn).delete(p),Tt(p,Kt),this.schedule(p);for(const p of f(this,wn))Tt(p,Ln),this.schedule(p);const t=f(this,en);oe(this,en,[]),this.apply();var a=Ea=[],r=[],i=Er=[];for(const p of t)try{Ne(this,je,fi).call(this,p,a,r)}catch(y){throw Ts(p),Ne(this,je,vi).call(this)||this.discard(),y}if(j=null,i.length>0){var o=Or.ensure();for(const p of i)o.schedule(p)}if(Ea=null,Er=null,Ne(this,je,vi).call(this)){Ne(this,je,Ma).call(this,r),Ne(this,je,Ma).call(this,a);for(const[p,y]of f(this,Cn))As(p,y);i.length>0&&Ne(u=j,je,Ja).call(u);return}const d=Ne(this,je,Ss).call(this);if(d){Ne(this,je,Ma).call(this,r),Ne(this,je,Ma).call(this,a),Ne(v=d,je,Ms).call(v,this);return}f(this,Nn).clear(),f(this,wn).clear();for(const p of f(this,za))p(this);f(this,za).clear(),Xa=this,Oi(r),Oi(a),Xa=null,(g=f(this,La))==null||g.resolve();var c=j;if(f(this,Da)===0&&(f(this,en).length===0||c!==null)&&Ne(this,je,Qa).call(this),f(this,en).length>0)if(c!==null){const p=c;f(p,en).push(...f(this,en).filter(y=>!f(p,en).includes(y)))}else c=this;c!==null&&Ne(E=c,je,Ja).call(E)},fi=function(t,a,r){t.f^=Lt;for(var i=t.first;i!==null;){var o=i.f,d=(o&(Mn|ea))!==0,c=d&&(o&Lt)!==0,u=c||(o&Jt)!==0||f(this,Cn).has(i);if(!u&&i.fn!==null){d?i.f^=Lt:(o&Ra)!==0?a.push(i):gr(i)&&((o&xn)!==0&&f(this,wn).add(i),Fa(i));var v=i.first;if(v!==null){i=v;continue}}for(;i!==null;){var g=i.next;if(g!==null){i=g;break}i=i.parent}}},Ss=function(){for(var t=f(this,Qn);t!==null;){if(!t.is_fork){for(const[a,[,r]]of this.current)if(t.current.has(a)&&!r)return t}t=f(t,Qn)}return null},Ms=function(t){var r;for(const[i,o]of t.current)!this.previous.has(i)&&t.previous.has(i)&&this.previous.set(i,t.previous.get(i)),this.current.set(i,o);for(const[i,o]of t.async_deriveds){const d=this.async_deriveds.get(i);d&&o.promise.then(d.resolve).catch(d.reject)}t.async_deriveds.clear(),this.transfer_effects(f(t,Nn),f(t,wn));const a=i=>{var o=i.reactions;if(o!==null)for(const u of o){var d=u.f;if((d&Wt)!==0)a(u);else{var c=u;d&(Aa|xn)&&!this.async_deriveds.has(c)&&(f(this,wn).delete(c),Tt(c,Kt),this.schedule(c))}}};for(const i of this.current.keys())a(i);this.oncommit(()=>t.discard()),Ne(r=t,je,Qa).call(r),j=this,Ne(this,je,Ja).call(this)},Ma=function(t){for(var a=0;a!p.current.get(y)[1]);if(!(!f(p,Pa)||i.length===0)){var o=i.filter(y=>!this.current.has(y));if(o.length===0)t&&p.discard();else if(a.length>0){if(t)for(const y of f(this,Oa))p.unskip_effect(y,T=>{var z;(T.f&(xn|Aa))!==0?p.schedule(T):Ne(z=p,je,Ma).call(z,[T])});p.activate();var d=new Set,c=new Map;for(var u of a)Es(u,o,d,c);c=new Map;var v=[...p.current].filter(([y,T])=>{const z=this.current.get(y);return z?z[0]!==T[0]||z[1]!==T[1]:!0}).map(([y])=>y);if(v.length>0)for(const y of f(this,vr))(y.f&(gn|Jt|Cr))===0&&yi(y,v,c)&&((y.f&(Aa|xn))!==0?(Tt(y,Kt),p.schedule(y)):f(p,Nn).add(y));if(f(p,en).length>0&&!f(p,fa)){p.apply();for(var g of f(p,en))Ne(E=p,je,fi).call(E,g,[],[]);oe(p,en,[])}p.deactivate()}}}},Qa=function(){if(this.linked){var t=f(this,Qn),a=f(this,va);t===null?Hr=a:oe(t,va,a),a===null?Sa=t:oe(a,Qn,t),this.linked=!1}};let wa=Or;function no(e){var t=er;er=!0;try{for(var a;;){if(ql(),j===null)return a;j.flush()}}finally{er=t}}function ao(){try{yl()}catch(e){Zn(e,ui)}}let _n=null;function Oi(e){var t=e.length;if(t!==0){for(var a=0;a0)){ga.clear();for(const i of _n){if((i.f&(gn|Jt))!==0)continue;const o=[i];let d=i.parent;for(;d!==null;)_n.has(d)&&(_n.delete(d),o.push(d)),d=d.parent;for(let c=o.length-1;c>=0;c--){const u=o[c];(u.f&(gn|Jt))===0&&Fa(u)}}_n.clear()}}_n=null}}function Es(e,t,a,r){if(!a.has(e)&&(a.add(e),e.reactions!==null))for(const i of e.reactions){const o=i.f;(o&Wt)!==0?Es(i,t,a,r):(o&(Aa|xn))!==0&&(o&Kt)===0&&yi(i,t,r)&&(Tt(i,Kt),xi(i))}}function yi(e,t,a){const r=a.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const i of e.deps){if(Tr.call(t,i))return!0;if((i.f&Wt)!==0&&yi(i,t,a))return a.set(i,!0),!0}return a.set(e,!1),!1}function xi(e){j.schedule(e)}function As(e,t){if(!((e.f&Mn)!==0&&(e.f&Lt)!==0)){(e.f&Kt)!==0?t.d.push(e):(e.f&Ln)!==0&&t.m.push(e),Tt(e,Lt);for(var a=e.first;a!==null;)As(a,t),a=a.next}}function Ts(e){Tt(e,Lt);for(var t=e.first;t!==null;)Ts(t),t=t.next}let $r=new Set;const ga=new Map;let Cs=!1;function ka(e,t){var a={f:0,v:e,reactions:null,equals:ps,rv:0,wv:0};return a}function R(e,t){const a=ka(e);return Ws(a),a}function ro(e,t=!1,a=!0){const r=ka(e);return t||(r.equals=hs),r}function h(e,t,a=!1){we!==null&&(!Sn||(we.f&Cr)!==0)&&gs()&&(we.f&(Wt|xn|Aa|Cr))!==0&&($n===null||!$n.has(e))&&Ml();let r=a?Vt(t):t;return qa(e,r,Er)}function qa(e,t,a=null){if(!e.equals(t)){ga.set(e,ta?t:e.v);var r=wa.ensure();if(r.capture(e,t),(e.f&Wt)!==0){const i=e;(e.f&Kt)!==0&&ki(i),Nt===null&&_i(i)}e.wv=Us(),Ps(e,Kt,a),Ee!==null&&(Ee.f&Lt)!==0&&(Ee.f&(Mn|ea))===0&&(dn===null?go([e]):dn.push(e)),!r.is_fork&&$r.size>0&&!Cs&&io()}return t}function io(){Cs=!1;for(const e of $r){(e.f&Lt)!==0&&Tt(e,Ln);let t;try{t=gr(e)}catch{t=!0}t&&Fa(e)}$r.clear()}function tr(e){h(e,e.v+1)}function Ps(e,t,a){var r=e.reactions;if(r!==null)for(var i=r.length,o=0;o{if(ba===o)return c();var u=we,v=ba;mn(null),Fi(o);var g=c();return mn(u),Fi(v),g};return r&&a.set("length",R(e.length)),new Proxy(e,{defineProperty(c,u,v){(!("value"in v)||v.configurable===!1||v.enumerable===!1||v.writable===!1)&&xl();var g=a.get(u);return g===void 0?d(()=>{var E=R(v.value);return a.set(u,E),E}):h(g,v.value,!0),!0},deleteProperty(c,u){var v=a.get(u);if(v===void 0){if(u in c){const g=d(()=>R(Dt));a.set(u,g),tr(i)}}else h(v,Dt),tr(i);return!0},get(c,u,v){var y;if(u===Ta)return e;var g=a.get(u),E=u in c;if(g===void 0&&(!E||(y=Ya(c,u))!=null&&y.writable)&&(g=d(()=>{var T=Vt(E?c[u]:Dt),z=R(T);return z}),a.set(u,g)),g!==void 0){var p=n(g);return p===Dt?void 0:p}return Reflect.get(c,u,v)},getOwnPropertyDescriptor(c,u){var v=Reflect.getOwnPropertyDescriptor(c,u);if(v&&"value"in v){var g=a.get(u);g&&(v.value=n(g))}else if(v===void 0){var E=a.get(u),p=E==null?void 0:E.v;if(E!==void 0&&p!==Dt)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return v},has(c,u){var p;if(u===Ta)return!0;var v=a.get(u),g=v!==void 0&&v.v!==Dt||Reflect.has(c,u);if(v!==void 0||Ee!==null&&(!g||(p=Ya(c,u))!=null&&p.writable)){v===void 0&&(v=d(()=>{var y=g?Vt(c[u]):Dt,T=R(y);return T}),a.set(u,v));var E=n(v);if(E===Dt)return!1}return g},set(c,u,v,g){var te;var E=a.get(u),p=u in c;if(r&&u==="length")for(var y=v;yR(Dt)),a.set(y+"",T))}if(E===void 0)(!p||(te=Ya(c,u))!=null&&te.writable)&&(E=d(()=>R(void 0)),h(E,Vt(v)),a.set(u,E));else{p=E.v!==Dt;var z=d(()=>Vt(v));h(E,z)}var x=Reflect.getOwnPropertyDescriptor(c,u);if(x!=null&&x.set&&x.set.call(g,v),!p){if(r&&typeof u=="string"){var $=a.get("length"),ke=Number(u);Number.isInteger(ke)&&ke>=$.v&&h($,ke+1)}tr(i)}return!0},ownKeys(c){n(i);var u=Reflect.ownKeys(c).filter(E=>{var p=a.get(E);return p===void 0||p.v!==Dt});for(var[v,g]of a)g.v!==Dt&&!(v in c)&&u.push(v);return u},setPrototypeOf(){Sl()}})}function Ri(e){try{if(e!==null&&typeof e=="object"&&Ta in e)return e[Ta]}catch{}return e}function so(e,t){return Object.is(Ri(e),Ri(t))}var Ii,zs,$s,Ds;function lo(){if(Ii===void 0){Ii=window,zs=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,a=Text.prototype;$s=Ya(t,"firstChild").get,Ds=Ya(t,"nextSibling").get,Di(e)&&(e[si]=void 0,e[yr]=null,e[li]=void 0,e.__e=void 0),Di(a)&&(a[Ha]=void 0)}}function Kn(e=""){return document.createTextNode(e)}function Yn(e){return $s.call(e)}function hr(e){return Ds.call(e)}function l(e,t){return Yn(e)}function ct(e,t=!1){{var a=Yn(e);return a instanceof Comment&&a.data===""?hr(a):a}}function s(e,t=1,a=!1){let r=e;for(;t--;)r=hr(r);return r}function oo(e){e.textContent=""}function Ls(){return!1}function Os(e,t,a){return t==null||t===fs?a?document.createElement(e,{is:a}):document.createElement(e):a?document.createElementNS(t,e,{is:a}):document.createElementNS(t,e)}let Bi=!1;function co(){Bi||(Bi=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const a of e.target.elements)(t=a[xr])==null||t.call(a)})},{capture:!0}))}function Si(e){var t=we,a=Ee;mn(null),On(null);try{return e()}finally{mn(t),On(a)}}function Mi(e,t,a,r=a){e.addEventListener(t,()=>Si(a));const i=e[xr];i?e[xr]=()=>{i(),r(!0)}:e[xr]=()=>r(!0),co()}function uo(e){Ee===null&&(we===null&&kl(),wl()),ta&&_l()}function vo(e,t){var a=t.last;a===null?t.last=t.first=e:(a.next=e,e.prev=a,t.last=e)}function Gn(e,t){var a=Ee;a!==null&&(a.f&Jt)!==0&&(e|=Jt);var r={ctx:Gt,deps:null,nodes:null,f:e|Kt|hn,first:null,fn:t,last:null,next:null,parent:a,b:a&&a.b,prev:null,teardown:null,wv:0,ac:null};j==null||j.register_created_effect(r);var i=r;if((e&Ra)!==0)Ea!==null?Ea.push(r):wa.ensure().schedule(r);else if(t!==null){try{Fa(r)}catch(d){throw nn(r),d}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&Ga)===0&&(i=i.first,(e&xn)!==0&&(e&Ia)!==0&&i!==null&&(i.f|=Ia))}if(i!==null&&(i.parent=a,a!==null&&vo(i,a),we!==null&&(we.f&Wt)!==0&&(e&ea)===0)){var o=we;(o.effects??(o.effects=[])).push(i)}return r}function Ei(){return we!==null&&!Sn}function Rs(e){const t=Gn(Br,null);return Tt(t,Lt),t.teardown=e,t}function Ai(e){uo();var t=Ee.f,a=!we&&(t&Mn)!==0&&Gt!==null&&!Gt.i;if(a){var r=Gt;(r.e??(r.e=[])).push(e)}else return Is(e)}function Is(e){return Gn(Ra|pl,e)}function fo(e){wa.ensure();const t=Gn(ea|Ga,e);return(a={})=>new Promise(r=>{a.outro?ma(t,()=>{nn(t),r(void 0)}):(nn(t),r(void 0))})}function Bs(e){return Gn(Ra,e)}function po(e){return Gn(Aa|Ga,e)}function Fr(e,t=0){return Gn(Br|t,e)}function D(e,t=[],a=[],r=[]){jl(r,t,a,i=>{Gn(Br,()=>{e(...i.map(n))})})}function Ti(e,t=0){var a=Gn(xn|t,e);return a}function fn(e){return Gn(Mn|Ga,e)}function qs(e){var t=e.teardown;if(t!==null){const a=ta,r=we;qi(!0),mn(null);try{t.call(null)}finally{qi(a),mn(r)}}}function Ci(e,t=!1){var a=e.first;for(e.first=e.last=null;a!==null;){const i=a.ac;i!==null&&Si(()=>{i.abort(qr)});var r=a.next;(a.f&ea)!==0?a.parent=null:nn(a,t),a=r}}function ho(e){for(var t=e.first;t!==null;){var a=t.next;(t.f&Mn)===0&&nn(t),t=a}}function nn(e,t=!0){var a=!1;(t||(e.f&fl)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Fs(e.nodes.start,e.nodes.end),a=!0),e.f|=ii,Ci(e,t&&!a),lr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)o.stop();qs(e),e.f^=ii,e.f|=gn;var i=e.parent;i!==null&&i.first!==null&&Ns(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Fs(e,t){for(;e!==null;){var a=e===t?null:hr(e);e.remove(),e=a}}function Ns(e){var t=e.parent,a=e.prev,r=e.next;a!==null&&(a.next=r),r!==null&&(r.prev=a),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=a))}function ma(e,t,a=!0){var r=[];Ks(e,r,!0);var i=()=>{a&&nn(e),t&&t()},o=r.length;if(o>0){var d=()=>--o||i();for(var c of r)c.out(d)}else i()}function Ks(e,t,a){if((e.f&Jt)===0){e.f^=Jt;var r=e.nodes&&e.nodes.t;if(r!==null)for(const c of r)(c.is_global||a)&&t.push(c);for(var i=e.first;i!==null;){var o=i.next;if((i.f&ea)===0){var d=(i.f&Ia)!==0||(i.f&Mn)!==0&&(e.f&xn)!==0;Ks(i,t,d?a:!1)}i=o}}}function Dr(e){Gs(e,!0)}function Gs(e,t){if((e.f&Jt)!==0){e.f^=Jt,(e.f&Lt)===0&&(Tt(e,Kt),wa.ensure().schedule(e));for(var a=e.first;a!==null;){var r=a.next,i=(a.f&Ia)!==0||(a.f&Mn)!==0;Gs(a,i?t:!1),a=r}var o=e.nodes&&e.nodes.t;if(o!==null)for(const d of o)(d.is_global||t)&&d.in()}}function Pi(e,t){if(e.nodes)for(var a=e.nodes.start,r=e.nodes.end;a!==null;){var i=a===r?null:hr(a);t.append(a),a=i}}let Ar=!1,ta=!1;function qi(e){ta=e}let we=null,Sn=!1;function mn(e){we=e}let Ee=null;function On(e){Ee=e}let $n=null;function Ws(e){we!==null&&($n??($n=new Set)).add(e)}let tn=null,sn=0,dn=null;function go(e){dn=e}let Vs=1,la=0,ba=la;function Fi(e){ba=e}function Us(){return++Vs}function gr(e){var t=e.f;if((t&Kt)!==0)return!0;if(t&Wt&&(e.f&=~_a),(t&Ln)!==0){for(var a=e.deps,r=a.length,i=0;ie.wv)return!0}(t&hn)!==0&&Nt===null&&Tt(e,Lt)}return!1}function Hs(e,t,a=!0){var r=e.reactions;if(r!==null&&!($n!==null&&$n.has(e)))for(var i=0;i{e.ac.abort(qr)}),e.ac=null);try{e.f|=Pr;var g=e.fn,E=g();e.f|=Ka;var p=e.deps,y=j==null?void 0:j.is_fork;if(tn!==null){var T;if(y||lr(e,sn),p!==null&&sn>0)for(p.length=sn+tn.length,T=0;T{throw $});throw p}}finally{e[oa]=t,delete e.currentTarget,mn(g),On(E)}}}var is;const Jr=((is=globalThis==null?void 0:globalThis.window)==null?void 0:is.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function ko(e){return(Jr==null?void 0:Jr.createHTML(e))??e}function yo(e){var t=Os("template");return t.innerHTML=ko(e.replaceAll("","")),t.content}function Na(e,t){var a=Ee;a.nodes===null&&(a.nodes={start:e,end:t,a:null,t:null})}function k(e,t){var a=(t&zl)!==0,r=(t&$l)!==0,i,o=!e.startsWith("");return()=>{i===void 0&&(i=yo(o?e:""+e),a||(i=Yn(i)));var d=r||zs?document.importNode(i,!0):i.cloneNode(!0);if(a){var c=Yn(d),u=d.lastChild;Na(c,u)}else Na(d,d);return d}}function nr(e=""){{var t=Kn(e+"");return Na(t,t),t}}function or(){var e=document.createDocumentFragment(),t=document.createComment(""),a=Kn();return e.append(t,a),Na(t,a),e}function m(e,t){e!==null&&e.before(t)}function b(e,t){var a=t==null?"":typeof t=="object"?`${t}`:t;a!==(e[Ha]??(e[Ha]=e.nodeValue))&&(e[Ha]=a,e.nodeValue=`${a}`)}function xo(e,t){return So(e,t)}const wr=new Map;function So(e,{target:t,anchor:a,props:r={},events:i,context:o,intro:d=!0,transformError:c}){lo();var u=void 0,v=fo(()=>{var g=a??t.appendChild(Kn());Gl(g,{pending:()=>{}},y=>{na({});var T=Gt;o&&(T.c=o),i&&(r.$$events=i),u=e(y,r)||{},aa()},c);var E=new Set,p=y=>{for(var T=0;T{var x;for(var y of E)for(const $ of[t,document]){var T=wr.get($),z=T.get(y);--z==0?($.removeEventListener(y,Ki),T.delete(y),T.size===0&&wr.delete($)):T.set(y,z)}pi.delete(p),g!==a&&((x=g.parentNode)==null||x.removeChild(g))}});return Mo.set(u,v),u}let Mo=new WeakMap;var kn,Pn,on,pa,fr,pr,Rr;class Eo{constructor(t,a=!0){rn(this,"anchor");ce(this,kn,new Map);ce(this,Pn,new Map);ce(this,on,new Map);ce(this,pa,new Set);ce(this,fr,!0);ce(this,pr,t=>{if(f(this,kn).has(t)){var a=f(this,kn).get(t),r=f(this,Pn).get(a);if(r)Dr(r),f(this,pa).delete(a);else{var i=f(this,on).get(a);i&&(Dr(i.effect),f(this,Pn).set(a,i.effect),f(this,on).delete(a),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),r=i.effect)}for(const[o,d]of f(this,kn)){if(f(this,kn).delete(o),o===t)break;const c=f(this,on).get(d);c&&(nn(c.effect),f(this,on).delete(d))}for(const[o,d]of f(this,Pn)){if(o===a||f(this,pa).has(o))continue;const c=()=>{if(Array.from(f(this,kn).values()).includes(o)){var v=document.createDocumentFragment();Pi(d,v),v.append(Kn()),f(this,on).set(o,{effect:d,fragment:v})}else nn(d);f(this,pa).delete(o),f(this,Pn).delete(o)};f(this,fr)||!r?(f(this,pa).add(o),ma(d,c,!1)):c()}}});ce(this,Rr,t=>{f(this,kn).delete(t);const a=Array.from(f(this,kn).values());for(const[r,i]of f(this,on))a.includes(r)||(nn(i.effect),f(this,on).delete(r))});this.anchor=t,oe(this,fr,a)}ensure(t,a){var r=j,i=Ls();if(a&&!f(this,Pn).has(t)&&!f(this,on).has(t))if(i){var o=document.createDocumentFragment(),d=Kn();o.append(d),f(this,on).set(t,{effect:fn(()=>a(d)),fragment:o})}else f(this,Pn).set(t,fn(()=>a(this.anchor)));if(f(this,kn).set(r,t),i){for(const[c,u]of f(this,Pn))c===t?r.unskip_effect(u):r.skip_effect(u);for(const[c,u]of f(this,on))c===t?r.unskip_effect(u.effect):r.skip_effect(u.effect);r.oncommit(f(this,pr)),r.ondiscard(f(this,Rr))}else f(this,pr).call(this,r)}}kn=new WeakMap,Pn=new WeakMap,on=new WeakMap,pa=new WeakMap,fr=new WeakMap,pr=new WeakMap,Rr=new WeakMap;function q(e,t,a=!1){var r=new Eo(e),i=a?Ia:0;function o(d,c){r.ensure(d,c)}Ti(()=>{var d=!1;t((c,u=0)=>{d=!0,o(u,c)}),d||o(-1,null)},i)}function ot(e,t){return t}function Ao(e,t,a){for(var r=[],i=t.length,o,d=t.length,c=0;c{if(o){if(o.pending.delete(E),o.done.add(E),o.pending.size===0){var p=e.outrogroups;hi(e,Ir(o.done)),p.delete(o),p.size===0&&(e.outrogroups=null)}}else d-=1},!1)}if(d===0){var u=r.length===0&&a!==null;if(u){var v=a,g=v.parentNode;oo(g),g.append(v),e.items.clear()}hi(e,t,!u)}else o={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(o)}function hi(e,t,a=!0){var r;if(e.pending.size>0){r=new Set;for(const d of e.pending.values())for(const c of d)r.add(e.items.get(c).e)}for(var i=0;i{var te=a();return bi(te)?te:te==null?[]:Ir(te)}),p,y=new Map,T=!0;function z(te){(ke.effect.f&gn)===0&&(ke.pending.delete(te),ke.fallback=g,To(ke,p,d,t,r),g!==null&&(p.length===0?(g.f&zn)===0?Dr(g):(g.f^=zn,Za(g,null,d)):ma(g,()=>{g=null})))}function x(te){ke.pending.delete(te)}var $=Ti(()=>{p=n(E);for(var te=p.length,ue=new Set,Ae=j,K=Ls(),W=0;Wo(d)):(g=fn(()=>o(Gi??(Gi=Kn()))),g.f|=zn)),te>ue.size&&bl(),!T)if(y.set(Ae,ue),K){for(const[We,mt]of c)ue.has(We)||Ae.skip_effect(mt.e);Ae.oncommit(z),Ae.ondiscard(x)}else z(Ae);n(E)}),ke={effect:$,items:c,pending:y,outrogroups:null,fallback:g};T=!1}function Ua(e){for(;e!==null&&(e.f&Mn)===0;)e=e.next;return e}function To(e,t,a,r,i){var $e,We,mt,A,H,re,Ve,Q,De;var o=(r&Cl)!==0,d=t.length,c=e.items,u=Ua(e.effect.first),v,g=null,E,p=[],y=[],T,z,x,$;if(o)for($=0;$0){var he=(r&vs)!==0&&d===0?a:null;if(o){for($=0;${var Y,rt;if(E!==void 0)for(x of E)(rt=(Y=x.nodes)==null?void 0:Y.a)==null||rt.apply()})}function Co(e,t,a,r,i,o,d,c){var u=(d&Al)!==0?(d&Pl)===0?ro(a,!1,!1):ka(a):null,v=(d&Tl)!==0?ka(i):null;return{v:u,i:v,e:fn(()=>(o(t,u??a,v??i,c),()=>{e.delete(r)}))}}function Za(e,t,a){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,o=t&&(t.f&zn)===0?t.nodes.start:a;r!==null;){var d=hr(r);if(o.before(r),r===i)return;r=d}}function Hn(e,t,a){t===null?e.effect.first=a:t.next=a,a===null?e.effect.last=t:a.prev=t}function ze(e,t,a=!1,r=!1,i=!1,o=!1){var d=e,c="";if(a)var u=e;D(()=>{var v=Ee;if(c!==(c=t()??"")){if(a){v.nodes=null,u.innerHTML=c,c!==""&&Na(Yn(u),u.lastChild);return}if(v.nodes!==null&&(Fs(v.nodes.start,v.nodes.end),v.nodes=null),c!==""){var g=r?Dl:i?Ll:void 0,E=Os(r?"svg":i?"math":"template",g);E.innerHTML=c;var p=r||i?E:E.content;if(Na(Yn(p),p.lastChild),r||i)for(;Yn(p);)d.before(Yn(p));else d.before(p)}}})}function Po(e,t,a){var r=e==null?"":""+e;return r===""?null:r}function zo(e,t){return e==null?null:String(e)}function kt(e,t,a,r,i,o){var d=e[si];if(d!==a||d===void 0){var c=Po(a);c==null?e.removeAttribute("class"):e.className=c,e[si]=a}return o}function pn(e,t,a,r){var i=e[li];if(i!==t){var o=zo(t);o==null?e.removeAttribute("style"):e.style.cssText=o,e[li]=t}return r}function Ys(e,t,a=!1){if(e.multiple){if(t==null)return;if(!bi(t))return Rl();for(var r of e.options)r.selected=t.includes(rr(r));return}for(r of e.options){var i=rr(r);if(so(i,t)){r.selected=!0;return}}(!a||t!==void 0)&&(e.selectedIndex=-1)}function $o(e){var t=new MutationObserver(()=>{Ys(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Rs(()=>{t.disconnect()})}function ar(e,t,a=t){var r=new WeakSet,i=!0;Mi(e,"change",o=>{var d=o?"[selected]":":checked",c;if(e.multiple)c=[].map.call(e.querySelectorAll(d),rr);else{var u=e.querySelector(d)??e.querySelector("option:not([disabled])");c=u&&rr(u)}a(c),e.__value=c,j!==null&&r.add(j)}),Bs(()=>{var o=t();if(e===document.activeElement){var d=j;if(r.has(d))return}if(Ys(e,o,i),i&&o===void 0){var c=e.querySelector(":checked");c!==null&&(o=rr(c),a(o))}e.__value=o,i=!1}),$o(e)}function rr(e){return"__value"in e?e.__value:e.value}const Do=Symbol("is custom element"),Lo=Symbol("is html"),Oo=gl?"progress":"PROGRESS";function kr(e,t){var a=Xs(e);a.value===(a.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Oo)||(e.value=t??"")}function Nr(e,t,a,r){var i=Xs(e);i[t]!==(i[t]=a)&&(t==="loading"&&(e[hl]=a),a==null?e.removeAttribute(t):typeof a!="string"&&Ro(e).includes(t)?e[t]=a:e.setAttribute(t,a))}function Xs(e){return e[yr]??(e[yr]={[Do]:e.nodeName.includes("-"),[Lo]:e.namespaceURI===fs})}var Wi=new Map;function Ro(e){var t=e.getAttribute("is")||e.nodeName,a=Wi.get(t);if(a)return a;Wi.set(t,a=[]);for(var r,i=e,o=Element.prototype;o!==i;){r=ol(i);for(var d in r)r[d].set&&d!=="innerHTML"&&d!=="textContent"&&d!=="innerText"&&a.push(d);i=os(i)}return a}function Tn(e,t,a=t){var r=new WeakSet;Mi(e,"input",async i=>{var o=i?e.defaultValue:e.value;if(o=Qr(e)?Zr(o):o,a(o),j!==null&&r.add(j),await bo(),o!==(o=t())){var d=e.selectionStart,c=e.selectionEnd,u=e.value.length;if(e.value=o??"",c!==null){var v=e.value.length;d===c&&c===u&&v>u?(e.selectionStart=v,e.selectionEnd=v):(e.selectionStart=d,e.selectionEnd=Math.min(c,v))}}}),Wa(t)==null&&e.value&&(a(Qr(e)?Zr(e.value):e.value),j!==null&&r.add(j)),Fr(()=>{var i=t();if(e===document.activeElement){var o=j;if(r.has(o))return}Qr(e)&&i===Zr(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i??"")})}function Io(e,t,a=t){Mi(e,"change",r=>{var i=r?e.defaultChecked:e.checked;a(i)}),Wa(t)==null&&a(e.checked),Fr(()=>{var r=t();e.checked=!!r})}function Qr(e){var t=e.type;return t==="number"||t==="range"}function Zr(e){return e===""?null:+e}function Yr(e,t){return e===t||(e==null?void 0:e[Ta])===t}function Bo(e={},t,a,r){var i=Gt.r,o=Ee;return Bs(()=>{var d,c;return Fr(()=>{d=c,c=[],Wa(()=>{Yr(a(...c),e)||(t(e,...c),d&&Yr(a(...d),e)&&t(null,...d))})}),()=>{let u=o;for(;u!==i&&u.parent!==null&&u.parent.fⅈ)u=u.parent;const v=()=>{c&&Yr(a(...c),e)&&t(null,...c)},g=u.teardown;u.teardown=()=>{v(),g==null||g()}}}),e}function mr(e){Gt===null&&us(),Ai(()=>{const t=Wa(e);if(typeof t=="function")return t})}function qo(e){Gt===null&&us(),mr(()=>()=>Wa(e))}let dr=localStorage.getItem("mc_token")||"";function el(){return dr}function Fo(e){dr=(e||"").trim(),localStorage.setItem("mc_token",dr)}function No(){const e={"Content-Type":"application/json"};return dr&&(e["X-MC-Token"]=dr),e}function ir(){return localStorage.getItem("mc_hf_token")||""}function Ko(e){localStorage.setItem("mc_hf_token",(e||"").trim())}async function Me(e,t={}){const a=await fetch(e,{headers:No(),...t}),r=await a.json().catch(()=>({}));if(!a.ok)throw new Error(r.error||"HTTP "+a.status);return r}const Go=(e,t=document)=>t.querySelector(e),Vi=(e,t=document)=>[...t.querySelectorAll(e)];function Dn(e){return String(e??"").replace(/[&<>]/g,t=>({"&":"&","<":"<",">":">"})[t])}let Ui;function ee(e,t=!1){const a=Go("#toast");a&&(a.textContent=e,a.className="toast show"+(t?" err":""),clearTimeout(Ui),Ui=setTimeout(()=>a.className="toast",3200))}function Wo(e,t){return e==="running"||e==="ready"?'geladen':e==="loading"||e==="starting"?'lädt…':e==="downloading"?`↓ Download${t!=null?` ${Math.round(t)}%`:""}`:'bereit'}const He=e=>``,Kr={logo:He(' '),grid:He(' '),cpu:He(' '),pulse:He(' '),server:He(' '),book:He(' '),help:He(' '),settings:He(' '),swap:He(' '),monitor:He(' '),layers:He(' '),alert:He(' '),gauge:He(' '),search:He(' '),compass:He(' '),code:He(' '),eye:He(' '),refresh:He(' '),file:He(' '),database:He(' '),thermo:He(' '),shield:He(' '),info:He(' '),chevron:He(' '),bolt:He(' '),x:He(' '),check:He(' '),download:He(' '),clock:He(' ')};function $t(e){return Kr[e]||""}function gi(e){return`${Kr.info}`}function ia(e){if(!e&&e!==0)return"–";const t=e/1024/1024/1024;return t>=1?t.toFixed(1)+" GB":Math.round(e/1024/1024)+" MB"}function yn({title:e,body:t,confirmLabel:a="Bestätigen",cancelLabel:r="Abbrechen",danger:i=!1}){return new Promise(o=>{const d=document.createElement("div");d.className="modal-overlay",d.innerHTML=`
- ${Dn(e)}
+var rl=Object.defineProperty;var Di=e=>{throw TypeError(e)};var il=(e,t,a)=>t in e?rl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var rn=(e,t,a)=>il(e,typeof t!="symbol"?t+"":t,a),Ur=(e,t,a)=>t.has(e)||Di("Cannot "+a);var p=(e,t,a)=>(Ur(e,t,"read from private field"),a?a.call(e):t.get(e)),ce=(e,t,a)=>t.has(e)?Di("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,a),oe=(e,t,a,r)=>(Ur(e,t,"write to private field"),r?r.call(e,a):t.set(e,a),a),qe=(e,t,a)=>(Ur(e,t,"access private method"),a);var bi=Array.isArray,sl=Array.prototype.indexOf,Tr=Array.prototype.includes,Rr=Array.from,ll=Object.defineProperty,Ya=Object.getOwnPropertyDescriptor,ol=Object.getOwnPropertyDescriptors,dl=Object.prototype,cl=Array.prototype,os=Object.getPrototypeOf,$i=Object.isExtensible;const ul=()=>{};function vl(e){for(var t=0;t{e=r,t=i});return{promise:a,resolve:e,reject:t}}function sr(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const a=[];for(const r of e)if(a.push(r),a.length===t)break;return a}const Wt=2,Ia=4,Br=8,cs=1<<24,xn=16,Mn=32,ea=64,ri=128,hn=512,Lt=1024,Kt=2048,Ln=4096,Jt=8192,gn=16384,Ka=32768,ii=1<<25,Ra=65536,Cr=1<<17,pl=1<<18,Ga=1<<19,fl=1<<20,Pn=1<<25,_a=65536,zr=1<<21,Aa=1<<22,Xn=1<<23,Ta=Symbol("$state"),hl=Symbol(""),yr=Symbol("attributes"),si=Symbol("class"),li=Symbol("style"),Ha=Symbol("text"),xr=Symbol("form reset"),Fr=new class extends Error{constructor(){super(...arguments);rn(this,"name","StaleReactionError");rn(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var rs;const gl=!!((rs=globalThis.document)!=null&&rs.contentType)&&globalThis.document.contentType.includes("xml");function us(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function ml(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function bl(e,t,a){throw new Error("https://svelte.dev/e/each_key_duplicate")}function _l(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function wl(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function kl(e){throw new Error("https://svelte.dev/e/effect_orphan")}function yl(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function xl(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Sl(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Ml(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function El(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Al=1,Tl=2,vs=4,Cl=8,zl=16,Pl=1,Dl=2,$t=Symbol("uninitialized"),ps="http://www.w3.org/1999/xhtml",$l="http://www.w3.org/2000/svg",Ll="http://www.w3.org/1998/Math/MathML";function Ol(){console.warn("https://svelte.dev/e/derived_inert")}function Il(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Rl(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function fs(e){return e===this.v}function Bl(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function hs(e){return!Bl(e,this.v)}let Gt=null;function Ba(e){Gt=e}function na(e,t=!1,a){Gt={p:Gt,i:!1,c:null,e:null,s:e,x:null,r:Ee,l:null}}function aa(e){var t=Gt,a=t.e;if(a!==null){t.e=null;for(var r of a)Rs(r)}return t.i=!0,Gt=t.p,{}}function gs(){return!0}let sa=[];function ms(){var e=sa;sa=[],vl(e)}function ha(e){if(sa.length===0&&!er){var t=sa;queueMicrotask(()=>{t===sa&&ms()})}sa.push(e)}function Fl(){for(;sa.length>0;)ms()}function bs(e){var t=Ee;if(t===null)return we.f|=Xn,e;if((t.f&Ka)===0&&(t.f&Ia)===0)throw e;Zn(e,t)}function Zn(e,t){if(!(t!==null&&(t.f&gn)!==0)){for(;t!==null;){if((t.f&ri)!==0){if((t.f&Ka)===0)throw e;try{t.b.error(e);return}catch(a){e=a}}t=t.parent}throw e}}const Nl=-7169;function Tt(e,t){e.f=e.f&Nl|t}function _i(e){(e.f&hn)!==0||e.deps===null?Tt(e,Lt):Tt(e,Ln)}function _s(e){if(e!==null)for(const t of e)(t.f&Wt)===0||(t.f&_a)===0||(t.f^=_a,_s(t.deps))}function ws(e,t,a){(e.f&Kt)!==0?t.add(e):(e.f&Ln)!==0&&a.add(e),_s(e.deps),Tt(e,Lt)}function ql(e){let t=0,a=ka(0),r;return()=>{Ei()&&(n(a),Nr(()=>(t===0&&(r=Wa(()=>e(()=>tr(a)))),t+=1,()=>{ha(()=>{t-=1,t===0&&(r==null||r(),r=void 0,tr(a))})})))}}var Kl=Ra|Ga;function Gl(e,t,a,r){new Wl(e,t,a,r)}var cn,mi,un,ca,Xt,vn,jt,ln,Bn,ua,Jn,Ca,cr,ur,Fn,Lr,yt,Vl,Ul,Hl,oi,Sr,Mr,di,ci;class Wl{constructor(t,a,r,i){ce(this,yt);rn(this,"parent");rn(this,"is_pending",!1);rn(this,"transform_error");ce(this,cn);ce(this,mi,null);ce(this,un);ce(this,ca);ce(this,Xt);ce(this,vn,null);ce(this,jt,null);ce(this,ln,null);ce(this,Bn,null);ce(this,ua,0);ce(this,Jn,0);ce(this,Ca,!1);ce(this,cr,new Set);ce(this,ur,new Set);ce(this,Fn,null);ce(this,Lr,ql(()=>(oe(this,Fn,ka(p(this,ua))),()=>{oe(this,Fn,null)})));var o;oe(this,cn,t),oe(this,un,a),oe(this,ca,d=>{var c=Ee;c.b=this,c.f|=ri,r(d)}),this.parent=Ee.b,this.transform_error=i??((o=this.parent)==null?void 0:o.transform_error)??(d=>d),oe(this,Xt,Ti(()=>{qe(this,yt,oi).call(this)},Kl))}defer_effect(t){ws(t,p(this,cr),p(this,ur))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!p(this,un).pending}update_pending_count(t,a){qe(this,yt,di).call(this,t,a),oe(this,ua,p(this,ua)+t),!(!p(this,Fn)||p(this,Ca))&&(oe(this,Ca,!0),ha(()=>{oe(this,Ca,!1),p(this,Fn)&&Fa(p(this,Fn),p(this,ua))}))}get_effect_pending(){return p(this,Lr).call(this),n(p(this,Fn))}error(t){if(!p(this,un).onerror&&!p(this,un).failed)throw t;j!=null&&j.is_fork?(p(this,vn)&&j.skip_effect(p(this,vn)),p(this,jt)&&j.skip_effect(p(this,jt)),p(this,ln)&&j.skip_effect(p(this,ln)),j.oncommit(()=>{qe(this,yt,ci).call(this,t)})):qe(this,yt,ci).call(this,t)}}cn=new WeakMap,mi=new WeakMap,un=new WeakMap,ca=new WeakMap,Xt=new WeakMap,vn=new WeakMap,jt=new WeakMap,ln=new WeakMap,Bn=new WeakMap,ua=new WeakMap,Jn=new WeakMap,Ca=new WeakMap,cr=new WeakMap,ur=new WeakMap,Fn=new WeakMap,Lr=new WeakMap,yt=new WeakSet,Vl=function(){try{oe(this,vn,pn(()=>p(this,ca).call(this,p(this,cn))))}catch(t){this.error(t)}},Ul=function(t){const a=p(this,un).failed;a&&oe(this,ln,pn(()=>{a(p(this,cn),()=>t,()=>()=>{})}))},Hl=function(){const t=p(this,un).pending;t&&(this.is_pending=!0,oe(this,jt,pn(()=>t(p(this,cn)))),ha(()=>{var a=oe(this,Bn,document.createDocumentFragment()),r=Kn();a.append(r),oe(this,vn,qe(this,yt,Mr).call(this,()=>pn(()=>p(this,ca).call(this,r)))),p(this,Jn)===0&&(p(this,cn).before(a),oe(this,Bn,null),ma(p(this,jt),()=>{oe(this,jt,null)}),qe(this,yt,Sr).call(this,j))}))},oi=function(){try{if(this.is_pending=this.has_pending_snippet(),oe(this,Jn,0),oe(this,ua,0),oe(this,vn,pn(()=>{p(this,ca).call(this,p(this,cn))})),p(this,Jn)>0){var t=oe(this,Bn,document.createDocumentFragment());zi(p(this,vn),t);const a=p(this,un).pending;oe(this,jt,pn(()=>a(p(this,cn))))}else qe(this,yt,Sr).call(this,j)}catch(a){this.error(a)}},Sr=function(t){this.is_pending=!1,t.transfer_effects(p(this,cr),p(this,ur))},Mr=function(t){var a=Ee,r=we,i=Gt;On(p(this,Xt)),mn(p(this,Xt)),Ba(p(this,Xt).ctx);try{return wa.ensure(),t()}catch(o){return bs(o),null}finally{On(a),mn(r),Ba(i)}},di=function(t,a){var r;if(!this.has_pending_snippet()){this.parent&&qe(r=this.parent,yt,di).call(r,t,a);return}oe(this,Jn,p(this,Jn)+t),p(this,Jn)===0&&(qe(this,yt,Sr).call(this,a),p(this,jt)&&ma(p(this,jt),()=>{oe(this,jt,null)}),p(this,Bn)&&(p(this,cn).before(p(this,Bn)),oe(this,Bn,null)))},ci=function(t){p(this,vn)&&(nn(p(this,vn)),oe(this,vn,null)),p(this,jt)&&(nn(p(this,jt)),oe(this,jt,null)),p(this,ln)&&(nn(p(this,ln)),oe(this,ln,null));var a=p(this,un).onerror;let r=p(this,un).failed;var i=!1,o=!1;const d=()=>{if(i){Rl();return}i=!0,o&&El(),p(this,ln)!==null&&ma(p(this,ln),()=>{oe(this,ln,null)}),qe(this,yt,Mr).call(this,()=>{qe(this,yt,oi).call(this)})},c=u=>{try{o=!0,a==null||a(u,d),o=!1}catch(v){Zn(v,p(this,Xt)&&p(this,Xt).parent)}r&&oe(this,ln,qe(this,yt,Mr).call(this,()=>{try{return pn(()=>{var v=Ee;v.b=this,v.f|=ri,r(p(this,cn),()=>u,()=>d)})}catch(v){return Zn(v,p(this,Xt).parent),null}}))};ha(()=>{var u;try{u=this.transform_error(t)}catch(v){Zn(v,p(this,Xt)&&p(this,Xt).parent);return}u!==null&&typeof u=="object"&&typeof u.then=="function"?u.then(c,v=>Zn(v,p(this,Xt)&&p(this,Xt).parent)):c(u)})};function jl(e,t,a,r){const i=wi;var o=e.filter(y=>!y.settled),d=t.map(i);if(a.length===0&&o.length===0){r(d);return}var c=Ee,u=Jl(),v=o.length===1?o[0].promise:o.length>1?Promise.all(o.map(y=>y.promise)):null;function g(y){if((c.f&gn)===0){u();try{r([...d,...y])}catch(T){Zn(T,c)}Pr()}}var E=ks();if(a.length===0){v.then(()=>g([])).finally(E);return}function f(){Promise.all(a.map(y=>Ql(y))).then(g).catch(y=>Zn(y,c)).finally(E)}v?v.then(()=>{u(),f(),Pr()}):f()}function Jl(){var e=Ee,t=we,a=Gt,r=j;return function(o=!0){On(e),mn(t),Ba(a),o&&(e.f&gn)===0&&(r==null||r.activate(),r==null||r.apply())}}function Pr(e=!0){On(null),mn(null),Ba(null),e&&(j==null||j.deactivate())}function ks(){var e=Ee,t=e.b,a=j,r=!!(t!=null&&t.is_rendered());return t==null||t.update_pending_count(1,a),a.increment(r,e),()=>{t==null||t.update_pending_count(-1,a),a.decrement(r,e)}}function wi(e){var t=Wt|Kt;return Ee!==null&&(Ee.f|=Ga),{ctx:Gt,deps:null,effects:null,equals:fs,f:t,fn:e,reactions:null,rv:0,v:$t,wv:0,parent:Ee,ac:null}}const ja=Symbol("obsolete");function Ql(e,t,a){let r=Ee;r===null&&ml();var i=void 0,o=ka($t),d=!we,c=new Set;return fo(()=>{var y,T;var u=Ee,v=ds();i=v.promise;try{Promise.resolve(e()).then(v.resolve,P=>{P!==Fr&&v.reject(P)}).finally(Pr)}catch(P){v.reject(P),Pr()}var g=j;if(d){if((u.f&Ka)!==0)var E=ks();if((y=r.b)!=null&&y.is_rendered())(T=g.async_deriveds.get(u))==null||T.reject(ja);else for(const P of c.values())P.reject(ja);c.add(v),g.async_deriveds.set(u,v)}const f=(P,x=void 0)=>{E==null||E(),c.delete(v),x!==ja&&(g.activate(),x?(o.f|=Xn,Fa(o,x)):((o.f&Xn)!==0&&(o.f^=Xn),Fa(o,P)),g.deactivate())};v.promise.then(f,P=>f(null,P||"unknown"))}),Is(()=>{for(const u of c)u.reject(ja)}),new Promise(u=>{function v(g){function E(){g===i?u(o):v(i)}g.then(E,E)}v(i)})}function O(e){const t=wi(e);return Ws(t),t}function Zl(e){const t=wi(e);return t.equals=hs,t}function Yl(e){var t=e.effects;if(t!==null){e.effects=null;for(var a=0;athis.schedule(r)){var r=p(this,Cn).get(t);if(r){p(this,Cn).delete(t);for(var i of r.d)Tt(i,Kt),a(i);for(i of r.m)Tt(i,Ln),a(i)}p(this,Oa).add(t)}capture(t,a,r=!1){t.v!==$t&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&Xn)===0&&(this.current.set(t,[a,r]),qt==null||qt.set(t,a)),this.is_fork||(t.v=a)}activate(){j=this}deactivate(){j=null,qt=null}flush(){try{jr=!0,j=this,qe(this,je,Ja).call(this)}finally{Li=0,ui=null,Ea=null,Er=null,jr=!1,j=null,qt=null,ga.clear()}}discard(){var t;for(const a of p(this,Da))a(this);p(this,Da).clear();for(const a of this.async_deriveds.values())a.reject(ja);qe(this,je,Qa).call(this),(t=p(this,La))==null||t.resolve()}register_created_effect(t){p(this,vr).push(t)}increment(t,a){if(oe(this,$a,p(this,$a)+1),t){let r=p(this,Nn).get(a)??0;p(this,Nn).set(a,r+1)}}decrement(t,a){if(oe(this,$a,p(this,$a)-1),t){let r=p(this,Nn).get(a)??0;r===1?p(this,Nn).delete(a):p(this,Nn).set(a,r-1)}p(this,pa)||(oe(this,pa,!0),ha(()=>{oe(this,pa,!1),this.linked&&this.flush()}))}transfer_effects(t,a){for(const r of t)p(this,qn).add(r);for(const r of a)p(this,wn).add(r);t.clear(),a.clear()}oncommit(t){p(this,Pa).add(t)}ondiscard(t){p(this,Da).add(t)}settled(){return(p(this,La)??oe(this,La,ds())).promise}static ensure(){if(j===null){const t=j=new Or;!jr&&!er&&ha(()=>{p(t,za)||t.flush()})}return j}apply(){{qt=null;return}}schedule(t){var i;if(ui=t,(i=t.b)!=null&&i.is_pending&&(t.f&(Ia|Br|cs))!==0&&(t.f&Ka)===0){t.b.defer_effect(t);return}for(var a=t;a.parent!==null;){a=a.parent;var r=a.f;if(Ea!==null&&a===Ee&&(we===null||(we.f&Wt)===0))return;if((r&(ea|Mn))!==0){if((r&Lt)===0)return;a.f^=Lt}}p(this,en).push(a)}};za=new WeakMap,Qn=new WeakMap,va=new WeakMap,Pa=new WeakMap,Da=new WeakMap,$a=new WeakMap,Nn=new WeakMap,La=new WeakMap,en=new WeakMap,vr=new WeakMap,qn=new WeakMap,wn=new WeakMap,Cn=new WeakMap,Oa=new WeakMap,pa=new WeakMap,je=new WeakSet,vi=function(){if(this.is_fork)return!0;for(const r of p(this,Nn).keys()){for(var t=r,a=!1;t.parent!==null;){if(p(this,Cn).has(t)){a=!0;break}t=t.parent}if(!a)return!0}return!1},Ja=function(){var u,v,g,E;oe(this,za,!0),Li++>1e3&&(qe(this,je,Qa).call(this),ao());for(const f of p(this,qn))p(this,wn).delete(f),Tt(f,Kt),this.schedule(f);for(const f of p(this,wn))Tt(f,Ln),this.schedule(f);const t=p(this,en);oe(this,en,[]),this.apply();var a=Ea=[],r=[],i=Er=[];for(const f of t)try{qe(this,je,pi).call(this,f,a,r)}catch(y){throw Ts(f),qe(this,je,vi).call(this)||this.discard(),y}if(j=null,i.length>0){var o=Or.ensure();for(const f of i)o.schedule(f)}if(Ea=null,Er=null,qe(this,je,vi).call(this)){qe(this,je,Ma).call(this,r),qe(this,je,Ma).call(this,a);for(const[f,y]of p(this,Cn))As(f,y);i.length>0&&qe(u=j,je,Ja).call(u);return}const d=qe(this,je,Ss).call(this);if(d){qe(this,je,Ma).call(this,r),qe(this,je,Ma).call(this,a),qe(v=d,je,Ms).call(v,this);return}p(this,qn).clear(),p(this,wn).clear();for(const f of p(this,Pa))f(this);p(this,Pa).clear(),Xa=this,Oi(r),Oi(a),Xa=null,(g=p(this,La))==null||g.resolve();var c=j;if(p(this,$a)===0&&(p(this,en).length===0||c!==null)&&qe(this,je,Qa).call(this),p(this,en).length>0)if(c!==null){const f=c;p(f,en).push(...p(this,en).filter(y=>!p(f,en).includes(y)))}else c=this;c!==null&&qe(E=c,je,Ja).call(E)},pi=function(t,a,r){t.f^=Lt;for(var i=t.first;i!==null;){var o=i.f,d=(o&(Mn|ea))!==0,c=d&&(o&Lt)!==0,u=c||(o&Jt)!==0||p(this,Cn).has(i);if(!u&&i.fn!==null){d?i.f^=Lt:(o&Ia)!==0?a.push(i):gr(i)&&((o&xn)!==0&&p(this,wn).add(i),Na(i));var v=i.first;if(v!==null){i=v;continue}}for(;i!==null;){var g=i.next;if(g!==null){i=g;break}i=i.parent}}},Ss=function(){for(var t=p(this,Qn);t!==null;){if(!t.is_fork){for(const[a,[,r]]of this.current)if(t.current.has(a)&&!r)return t}t=p(t,Qn)}return null},Ms=function(t){var r;for(const[i,o]of t.current)!this.previous.has(i)&&t.previous.has(i)&&this.previous.set(i,t.previous.get(i)),this.current.set(i,o);for(const[i,o]of t.async_deriveds){const d=this.async_deriveds.get(i);d&&o.promise.then(d.resolve).catch(d.reject)}t.async_deriveds.clear(),this.transfer_effects(p(t,qn),p(t,wn));const a=i=>{var o=i.reactions;if(o!==null)for(const u of o){var d=u.f;if((d&Wt)!==0)a(u);else{var c=u;d&(Aa|xn)&&!this.async_deriveds.has(c)&&(p(this,wn).delete(c),Tt(c,Kt),this.schedule(c))}}};for(const i of this.current.keys())a(i);this.oncommit(()=>t.discard()),qe(r=t,je,Qa).call(r),j=this,qe(this,je,Ja).call(this)},Ma=function(t){for(var a=0;a!f.current.get(y)[1]);if(!(!p(f,za)||i.length===0)){var o=i.filter(y=>!this.current.has(y));if(o.length===0)t&&f.discard();else if(a.length>0){if(t)for(const y of p(this,Oa))f.unskip_effect(y,T=>{var P;(T.f&(xn|Aa))!==0?f.schedule(T):qe(P=f,je,Ma).call(P,[T])});f.activate();var d=new Set,c=new Map;for(var u of a)Es(u,o,d,c);c=new Map;var v=[...f.current].filter(([y,T])=>{const P=this.current.get(y);return P?P[0]!==T[0]||P[1]!==T[1]:!0}).map(([y])=>y);if(v.length>0)for(const y of p(this,vr))(y.f&(gn|Jt|Cr))===0&&yi(y,v,c)&&((y.f&(Aa|xn))!==0?(Tt(y,Kt),f.schedule(y)):p(f,qn).add(y));if(p(f,en).length>0&&!p(f,pa)){f.apply();for(var g of p(f,en))qe(E=f,je,pi).call(E,g,[],[]);oe(f,en,[])}f.deactivate()}}}},Qa=function(){if(this.linked){var t=p(this,Qn),a=p(this,va);t===null?Hr=a:oe(t,va,a),a===null?Sa=t:oe(a,Qn,t),this.linked=!1}};let wa=Or;function no(e){var t=er;er=!0;try{for(var a;;){if(Fl(),j===null)return a;j.flush()}}finally{er=t}}function ao(){try{yl()}catch(e){Zn(e,ui)}}let _n=null;function Oi(e){var t=e.length;if(t!==0){for(var a=0;a0)){ga.clear();for(const i of _n){if((i.f&(gn|Jt))!==0)continue;const o=[i];let d=i.parent;for(;d!==null;)_n.has(d)&&(_n.delete(d),o.push(d)),d=d.parent;for(let c=o.length-1;c>=0;c--){const u=o[c];(u.f&(gn|Jt))===0&&Na(u)}}_n.clear()}}_n=null}}function Es(e,t,a,r){if(!a.has(e)&&(a.add(e),e.reactions!==null))for(const i of e.reactions){const o=i.f;(o&Wt)!==0?Es(i,t,a,r):(o&(Aa|xn))!==0&&(o&Kt)===0&&yi(i,t,r)&&(Tt(i,Kt),xi(i))}}function yi(e,t,a){const r=a.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const i of e.deps){if(Tr.call(t,i))return!0;if((i.f&Wt)!==0&&yi(i,t,a))return a.set(i,!0),!0}return a.set(e,!1),!1}function xi(e){j.schedule(e)}function As(e,t){if(!((e.f&Mn)!==0&&(e.f&Lt)!==0)){(e.f&Kt)!==0?t.d.push(e):(e.f&Ln)!==0&&t.m.push(e),Tt(e,Lt);for(var a=e.first;a!==null;)As(a,t),a=a.next}}function Ts(e){Tt(e,Lt);for(var t=e.first;t!==null;)Ts(t),t=t.next}let Dr=new Set;const ga=new Map;let Cs=!1;function ka(e,t){var a={f:0,v:e,reactions:null,equals:fs,rv:0,wv:0};return a}function I(e,t){const a=ka(e);return Ws(a),a}function ro(e,t=!1,a=!0){const r=ka(e);return t||(r.equals=hs),r}function h(e,t,a=!1){we!==null&&(!Sn||(we.f&Cr)!==0)&&gs()&&(we.f&(Wt|xn|Aa|Cr))!==0&&(Dn===null||!Dn.has(e))&&Ml();let r=a?Vt(t):t;return Fa(e,r,Er)}function Fa(e,t,a=null){if(!e.equals(t)){ga.set(e,ta?t:e.v);var r=wa.ensure();if(r.capture(e,t),(e.f&Wt)!==0){const i=e;(e.f&Kt)!==0&&ki(i),qt===null&&_i(i)}e.wv=Us(),zs(e,Kt,a),Ee!==null&&(Ee.f&Lt)!==0&&(Ee.f&(Mn|ea))===0&&(dn===null?go([e]):dn.push(e)),!r.is_fork&&Dr.size>0&&!Cs&&io()}return t}function io(){Cs=!1;for(const e of Dr){(e.f&Lt)!==0&&Tt(e,Ln);let t;try{t=gr(e)}catch{t=!0}t&&Na(e)}Dr.clear()}function tr(e){h(e,e.v+1)}function zs(e,t,a){var r=e.reactions;if(r!==null)for(var i=r.length,o=0;o{if(ba===o)return c();var u=we,v=ba;mn(null),Ni(o);var g=c();return mn(u),Ni(v),g};return r&&a.set("length",I(e.length)),new Proxy(e,{defineProperty(c,u,v){(!("value"in v)||v.configurable===!1||v.enumerable===!1||v.writable===!1)&&xl();var g=a.get(u);return g===void 0?d(()=>{var E=I(v.value);return a.set(u,E),E}):h(g,v.value,!0),!0},deleteProperty(c,u){var v=a.get(u);if(v===void 0){if(u in c){const g=d(()=>I($t));a.set(u,g),tr(i)}}else h(v,$t),tr(i);return!0},get(c,u,v){var y;if(u===Ta)return e;var g=a.get(u),E=u in c;if(g===void 0&&(!E||(y=Ya(c,u))!=null&&y.writable)&&(g=d(()=>{var T=Vt(E?c[u]:$t),P=I(T);return P}),a.set(u,g)),g!==void 0){var f=n(g);return f===$t?void 0:f}return Reflect.get(c,u,v)},getOwnPropertyDescriptor(c,u){var v=Reflect.getOwnPropertyDescriptor(c,u);if(v&&"value"in v){var g=a.get(u);g&&(v.value=n(g))}else if(v===void 0){var E=a.get(u),f=E==null?void 0:E.v;if(E!==void 0&&f!==$t)return{enumerable:!0,configurable:!0,value:f,writable:!0}}return v},has(c,u){var f;if(u===Ta)return!0;var v=a.get(u),g=v!==void 0&&v.v!==$t||Reflect.has(c,u);if(v!==void 0||Ee!==null&&(!g||(f=Ya(c,u))!=null&&f.writable)){v===void 0&&(v=d(()=>{var y=g?Vt(c[u]):$t,T=I(y);return T}),a.set(u,v));var E=n(v);if(E===$t)return!1}return g},set(c,u,v,g){var te;var E=a.get(u),f=u in c;if(r&&u==="length")for(var y=v;yI($t)),a.set(y+"",T))}if(E===void 0)(!f||(te=Ya(c,u))!=null&&te.writable)&&(E=d(()=>I(void 0)),h(E,Vt(v)),a.set(u,E));else{f=E.v!==$t;var P=d(()=>Vt(v));h(E,P)}var x=Reflect.getOwnPropertyDescriptor(c,u);if(x!=null&&x.set&&x.set.call(g,v),!f){if(r&&typeof u=="string"){var D=a.get("length"),ke=Number(u);Number.isInteger(ke)&&ke>=D.v&&h(D,ke+1)}tr(i)}return!0},ownKeys(c){n(i);var u=Reflect.ownKeys(c).filter(E=>{var f=a.get(E);return f===void 0||f.v!==$t});for(var[v,g]of a)g.v!==$t&&!(v in c)&&u.push(v);return u},setPrototypeOf(){Sl()}})}function Ii(e){try{if(e!==null&&typeof e=="object"&&Ta in e)return e[Ta]}catch{}return e}function so(e,t){return Object.is(Ii(e),Ii(t))}var Ri,Ps,Ds,$s;function lo(){if(Ri===void 0){Ri=window,Ps=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,a=Text.prototype;Ds=Ya(t,"firstChild").get,$s=Ya(t,"nextSibling").get,$i(e)&&(e[si]=void 0,e[yr]=null,e[li]=void 0,e.__e=void 0),$i(a)&&(a[Ha]=void 0)}}function Kn(e=""){return document.createTextNode(e)}function Yn(e){return Ds.call(e)}function hr(e){return $s.call(e)}function l(e,t){return Yn(e)}function ct(e,t=!1){{var a=Yn(e);return a instanceof Comment&&a.data===""?hr(a):a}}function s(e,t=1,a=!1){let r=e;for(;t--;)r=hr(r);return r}function oo(e){e.textContent=""}function Ls(){return!1}function Os(e,t,a){return t==null||t===ps?a?document.createElement(e,{is:a}):document.createElement(e):a?document.createElementNS(t,e,{is:a}):document.createElementNS(t,e)}let Bi=!1;function co(){Bi||(Bi=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const a of e.target.elements)(t=a[xr])==null||t.call(a)})},{capture:!0}))}function Si(e){var t=we,a=Ee;mn(null),On(null);try{return e()}finally{mn(t),On(a)}}function Mi(e,t,a,r=a){e.addEventListener(t,()=>Si(a));const i=e[xr];i?e[xr]=()=>{i(),r(!0)}:e[xr]=()=>r(!0),co()}function uo(e){Ee===null&&(we===null&&kl(),wl()),ta&&_l()}function vo(e,t){var a=t.last;a===null?t.last=t.first=e:(a.next=e,e.prev=a,t.last=e)}function Gn(e,t){var a=Ee;a!==null&&(a.f&Jt)!==0&&(e|=Jt);var r={ctx:Gt,deps:null,nodes:null,f:e|Kt|hn,first:null,fn:t,last:null,next:null,parent:a,b:a&&a.b,prev:null,teardown:null,wv:0,ac:null};j==null||j.register_created_effect(r);var i=r;if((e&Ia)!==0)Ea!==null?Ea.push(r):wa.ensure().schedule(r);else if(t!==null){try{Na(r)}catch(d){throw nn(r),d}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&Ga)===0&&(i=i.first,(e&xn)!==0&&(e&Ra)!==0&&i!==null&&(i.f|=Ra))}if(i!==null&&(i.parent=a,a!==null&&vo(i,a),we!==null&&(we.f&Wt)!==0&&(e&ea)===0)){var o=we;(o.effects??(o.effects=[])).push(i)}return r}function Ei(){return we!==null&&!Sn}function Is(e){const t=Gn(Br,null);return Tt(t,Lt),t.teardown=e,t}function Ai(e){uo();var t=Ee.f,a=!we&&(t&Mn)!==0&&Gt!==null&&!Gt.i;if(a){var r=Gt;(r.e??(r.e=[])).push(e)}else return Rs(e)}function Rs(e){return Gn(Ia|fl,e)}function po(e){wa.ensure();const t=Gn(ea|Ga,e);return(a={})=>new Promise(r=>{a.outro?ma(t,()=>{nn(t),r(void 0)}):(nn(t),r(void 0))})}function Bs(e){return Gn(Ia,e)}function fo(e){return Gn(Aa|Ga,e)}function Nr(e,t=0){return Gn(Br|t,e)}function $(e,t=[],a=[],r=[]){jl(r,t,a,i=>{Gn(Br,()=>{e(...i.map(n))})})}function Ti(e,t=0){var a=Gn(xn|t,e);return a}function pn(e){return Gn(Mn|Ga,e)}function Fs(e){var t=e.teardown;if(t!==null){const a=ta,r=we;Fi(!0),mn(null);try{t.call(null)}finally{Fi(a),mn(r)}}}function Ci(e,t=!1){var a=e.first;for(e.first=e.last=null;a!==null;){const i=a.ac;i!==null&&Si(()=>{i.abort(Fr)});var r=a.next;(a.f&ea)!==0?a.parent=null:nn(a,t),a=r}}function ho(e){for(var t=e.first;t!==null;){var a=t.next;(t.f&Mn)===0&&nn(t),t=a}}function nn(e,t=!0){var a=!1;(t||(e.f&pl)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Ns(e.nodes.start,e.nodes.end),a=!0),e.f|=ii,Ci(e,t&&!a),lr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)o.stop();Fs(e),e.f^=ii,e.f|=gn;var i=e.parent;i!==null&&i.first!==null&&qs(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Ns(e,t){for(;e!==null;){var a=e===t?null:hr(e);e.remove(),e=a}}function qs(e){var t=e.parent,a=e.prev,r=e.next;a!==null&&(a.next=r),r!==null&&(r.prev=a),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=a))}function ma(e,t,a=!0){var r=[];Ks(e,r,!0);var i=()=>{a&&nn(e),t&&t()},o=r.length;if(o>0){var d=()=>--o||i();for(var c of r)c.out(d)}else i()}function Ks(e,t,a){if((e.f&Jt)===0){e.f^=Jt;var r=e.nodes&&e.nodes.t;if(r!==null)for(const c of r)(c.is_global||a)&&t.push(c);for(var i=e.first;i!==null;){var o=i.next;if((i.f&ea)===0){var d=(i.f&Ra)!==0||(i.f&Mn)!==0&&(e.f&xn)!==0;Ks(i,t,d?a:!1)}i=o}}}function $r(e){Gs(e,!0)}function Gs(e,t){if((e.f&Jt)!==0){e.f^=Jt,(e.f&Lt)===0&&(Tt(e,Kt),wa.ensure().schedule(e));for(var a=e.first;a!==null;){var r=a.next,i=(a.f&Ra)!==0||(a.f&Mn)!==0;Gs(a,i?t:!1),a=r}var o=e.nodes&&e.nodes.t;if(o!==null)for(const d of o)(d.is_global||t)&&d.in()}}function zi(e,t){if(e.nodes)for(var a=e.nodes.start,r=e.nodes.end;a!==null;){var i=a===r?null:hr(a);t.append(a),a=i}}let Ar=!1,ta=!1;function Fi(e){ta=e}let we=null,Sn=!1;function mn(e){we=e}let Ee=null;function On(e){Ee=e}let Dn=null;function Ws(e){we!==null&&(Dn??(Dn=new Set)).add(e)}let tn=null,sn=0,dn=null;function go(e){dn=e}let Vs=1,la=0,ba=la;function Ni(e){ba=e}function Us(){return++Vs}function gr(e){var t=e.f;if((t&Kt)!==0)return!0;if(t&Wt&&(e.f&=~_a),(t&Ln)!==0){for(var a=e.deps,r=a.length,i=0;ie.wv)return!0}(t&hn)!==0&&qt===null&&Tt(e,Lt)}return!1}function Hs(e,t,a=!0){var r=e.reactions;if(r!==null&&!(Dn!==null&&Dn.has(e)))for(var i=0;i{e.ac.abort(Fr)}),e.ac=null);try{e.f|=zr;var g=e.fn,E=g();e.f|=Ka;var f=e.deps,y=j==null?void 0:j.is_fork;if(tn!==null){var T;if(y||lr(e,sn),f!==null&&sn>0)for(f.length=sn+tn.length,T=0;T{throw D});throw f}}finally{e[oa]=t,delete e.currentTarget,mn(g),On(E)}}}var is;const Jr=((is=globalThis==null?void 0:globalThis.window)==null?void 0:is.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function ko(e){return(Jr==null?void 0:Jr.createHTML(e))??e}function yo(e){var t=Os("template");return t.innerHTML=ko(e.replaceAll("","")),t.content}function qa(e,t){var a=Ee;a.nodes===null&&(a.nodes={start:e,end:t,a:null,t:null})}function k(e,t){var a=(t&Pl)!==0,r=(t&Dl)!==0,i,o=!e.startsWith("");return()=>{i===void 0&&(i=yo(o?e:""+e),a||(i=Yn(i)));var d=r||Ps?document.importNode(i,!0):i.cloneNode(!0);if(a){var c=Yn(d),u=d.lastChild;qa(c,u)}else qa(d,d);return d}}function nr(e=""){{var t=Kn(e+"");return qa(t,t),t}}function or(){var e=document.createDocumentFragment(),t=document.createComment(""),a=Kn();return e.append(t,a),qa(t,a),e}function m(e,t){e!==null&&e.before(t)}function b(e,t){var a=t==null?"":typeof t=="object"?`${t}`:t;a!==(e[Ha]??(e[Ha]=e.nodeValue))&&(e[Ha]=a,e.nodeValue=`${a}`)}function xo(e,t){return So(e,t)}const wr=new Map;function So(e,{target:t,anchor:a,props:r={},events:i,context:o,intro:d=!0,transformError:c}){lo();var u=void 0,v=po(()=>{var g=a??t.appendChild(Kn());Gl(g,{pending:()=>{}},y=>{na({});var T=Gt;o&&(T.c=o),i&&(r.$$events=i),u=e(y,r)||{},aa()},c);var E=new Set,f=y=>{for(var T=0;T{var x;for(var y of E)for(const D of[t,document]){var T=wr.get(D),P=T.get(y);--P==0?(D.removeEventListener(y,Ki),T.delete(y),T.size===0&&wr.delete(D)):T.set(y,P)}fi.delete(f),g!==a&&((x=g.parentNode)==null||x.removeChild(g))}});return Mo.set(u,v),u}let Mo=new WeakMap;var kn,zn,on,fa,pr,fr,Ir;class Eo{constructor(t,a=!0){rn(this,"anchor");ce(this,kn,new Map);ce(this,zn,new Map);ce(this,on,new Map);ce(this,fa,new Set);ce(this,pr,!0);ce(this,fr,t=>{if(p(this,kn).has(t)){var a=p(this,kn).get(t),r=p(this,zn).get(a);if(r)$r(r),p(this,fa).delete(a);else{var i=p(this,on).get(a);i&&($r(i.effect),p(this,zn).set(a,i.effect),p(this,on).delete(a),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),r=i.effect)}for(const[o,d]of p(this,kn)){if(p(this,kn).delete(o),o===t)break;const c=p(this,on).get(d);c&&(nn(c.effect),p(this,on).delete(d))}for(const[o,d]of p(this,zn)){if(o===a||p(this,fa).has(o))continue;const c=()=>{if(Array.from(p(this,kn).values()).includes(o)){var v=document.createDocumentFragment();zi(d,v),v.append(Kn()),p(this,on).set(o,{effect:d,fragment:v})}else nn(d);p(this,fa).delete(o),p(this,zn).delete(o)};p(this,pr)||!r?(p(this,fa).add(o),ma(d,c,!1)):c()}}});ce(this,Ir,t=>{p(this,kn).delete(t);const a=Array.from(p(this,kn).values());for(const[r,i]of p(this,on))a.includes(r)||(nn(i.effect),p(this,on).delete(r))});this.anchor=t,oe(this,pr,a)}ensure(t,a){var r=j,i=Ls();if(a&&!p(this,zn).has(t)&&!p(this,on).has(t))if(i){var o=document.createDocumentFragment(),d=Kn();o.append(d),p(this,on).set(t,{effect:pn(()=>a(d)),fragment:o})}else p(this,zn).set(t,pn(()=>a(this.anchor)));if(p(this,kn).set(r,t),i){for(const[c,u]of p(this,zn))c===t?r.unskip_effect(u):r.skip_effect(u);for(const[c,u]of p(this,on))c===t?r.unskip_effect(u.effect):r.skip_effect(u.effect);r.oncommit(p(this,fr)),r.ondiscard(p(this,Ir))}else p(this,fr).call(this,r)}}kn=new WeakMap,zn=new WeakMap,on=new WeakMap,fa=new WeakMap,pr=new WeakMap,fr=new WeakMap,Ir=new WeakMap;function F(e,t,a=!1){var r=new Eo(e),i=a?Ra:0;function o(d,c){r.ensure(d,c)}Ti(()=>{var d=!1;t((c,u=0)=>{d=!0,o(u,c)}),d||o(-1,null)},i)}function ot(e,t){return t}function Ao(e,t,a){for(var r=[],i=t.length,o,d=t.length,c=0;c{if(o){if(o.pending.delete(E),o.done.add(E),o.pending.size===0){var f=e.outrogroups;hi(e,Rr(o.done)),f.delete(o),f.size===0&&(e.outrogroups=null)}}else d-=1},!1)}if(d===0){var u=r.length===0&&a!==null;if(u){var v=a,g=v.parentNode;oo(g),g.append(v),e.items.clear()}hi(e,t,!u)}else o={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(o)}function hi(e,t,a=!0){var r;if(e.pending.size>0){r=new Set;for(const d of e.pending.values())for(const c of d)r.add(e.items.get(c).e)}for(var i=0;i{var te=a();return bi(te)?te:te==null?[]:Rr(te)}),f,y=new Map,T=!0;function P(te){(ke.effect.f&gn)===0&&(ke.pending.delete(te),ke.fallback=g,To(ke,f,d,t,r),g!==null&&(f.length===0?(g.f&Pn)===0?$r(g):(g.f^=Pn,Za(g,null,d)):ma(g,()=>{g=null})))}function x(te){ke.pending.delete(te)}var D=Ti(()=>{f=n(E);for(var te=f.length,ue=new Set,Ae=j,K=Ls(),W=0;Wo(d)):(g=pn(()=>o(Gi??(Gi=Kn()))),g.f|=Pn)),te>ue.size&&bl(),!T)if(y.set(Ae,ue),K){for(const[We,mt]of c)ue.has(We)||Ae.skip_effect(mt.e);Ae.oncommit(P),Ae.ondiscard(x)}else P(Ae);n(E)}),ke={effect:D,items:c,pending:y,outrogroups:null,fallback:g};T=!1}function Ua(e){for(;e!==null&&(e.f&Mn)===0;)e=e.next;return e}function To(e,t,a,r,i){var De,We,mt,A,H,re,Ve,Q,$e;var o=(r&Cl)!==0,d=t.length,c=e.items,u=Ua(e.effect.first),v,g=null,E,f=[],y=[],T,P,x,D;if(o)for(D=0;D0){var he=(r&vs)!==0&&d===0?a:null;if(o){for(D=0;D{var Y,rt;if(E!==void 0)for(x of E)(rt=(Y=x.nodes)==null?void 0:Y.a)==null||rt.apply()})}function Co(e,t,a,r,i,o,d,c){var u=(d&Al)!==0?(d&zl)===0?ro(a,!1,!1):ka(a):null,v=(d&Tl)!==0?ka(i):null;return{v:u,i:v,e:pn(()=>(o(t,u??a,v??i,c),()=>{e.delete(r)}))}}function Za(e,t,a){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,o=t&&(t.f&Pn)===0?t.nodes.start:a;r!==null;){var d=hr(r);if(o.before(r),r===i)return;r=d}}function Hn(e,t,a){t===null?e.effect.first=a:t.next=a,a===null?e.effect.last=t:a.prev=t}function Pe(e,t,a=!1,r=!1,i=!1,o=!1){var d=e,c="";if(a)var u=e;$(()=>{var v=Ee;if(c!==(c=t()??"")){if(a){v.nodes=null,u.innerHTML=c,c!==""&&qa(Yn(u),u.lastChild);return}if(v.nodes!==null&&(Ns(v.nodes.start,v.nodes.end),v.nodes=null),c!==""){var g=r?$l:i?Ll:void 0,E=Os(r?"svg":i?"math":"template",g);E.innerHTML=c;var f=r||i?E:E.content;if(qa(Yn(f),f.lastChild),r||i)for(;Yn(f);)d.before(Yn(f));else d.before(f)}}})}function zo(e,t,a){var r=e==null?"":""+e;return r===""?null:r}function Po(e,t){return e==null?null:String(e)}function kt(e,t,a,r,i,o){var d=e[si];if(d!==a||d===void 0){var c=zo(a);c==null?e.removeAttribute("class"):e.className=c,e[si]=a}return o}function fn(e,t,a,r){var i=e[li];if(i!==t){var o=Po(t);o==null?e.removeAttribute("style"):e.style.cssText=o,e[li]=t}return r}function Ys(e,t,a=!1){if(e.multiple){if(t==null)return;if(!bi(t))return Il();for(var r of e.options)r.selected=t.includes(rr(r));return}for(r of e.options){var i=rr(r);if(so(i,t)){r.selected=!0;return}}(!a||t!==void 0)&&(e.selectedIndex=-1)}function Do(e){var t=new MutationObserver(()=>{Ys(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Is(()=>{t.disconnect()})}function ar(e,t,a=t){var r=new WeakSet,i=!0;Mi(e,"change",o=>{var d=o?"[selected]":":checked",c;if(e.multiple)c=[].map.call(e.querySelectorAll(d),rr);else{var u=e.querySelector(d)??e.querySelector("option:not([disabled])");c=u&&rr(u)}a(c),e.__value=c,j!==null&&r.add(j)}),Bs(()=>{var o=t();if(e===document.activeElement){var d=j;if(r.has(d))return}if(Ys(e,o,i),i&&o===void 0){var c=e.querySelector(":checked");c!==null&&(o=rr(c),a(o))}e.__value=o,i=!1}),Do(e)}function rr(e){return"__value"in e?e.__value:e.value}const $o=Symbol("is custom element"),Lo=Symbol("is html"),Oo=gl?"progress":"PROGRESS";function kr(e,t){var a=Xs(e);a.value===(a.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Oo)||(e.value=t??"")}function qr(e,t,a,r){var i=Xs(e);i[t]!==(i[t]=a)&&(t==="loading"&&(e[hl]=a),a==null?e.removeAttribute(t):typeof a!="string"&&Io(e).includes(t)?e[t]=a:e.setAttribute(t,a))}function Xs(e){return e[yr]??(e[yr]={[$o]:e.nodeName.includes("-"),[Lo]:e.namespaceURI===ps})}var Wi=new Map;function Io(e){var t=e.getAttribute("is")||e.nodeName,a=Wi.get(t);if(a)return a;Wi.set(t,a=[]);for(var r,i=e,o=Element.prototype;o!==i;){r=ol(i);for(var d in r)r[d].set&&d!=="innerHTML"&&d!=="textContent"&&d!=="innerText"&&a.push(d);i=os(i)}return a}function Tn(e,t,a=t){var r=new WeakSet;Mi(e,"input",async i=>{var o=i?e.defaultValue:e.value;if(o=Qr(e)?Zr(o):o,a(o),j!==null&&r.add(j),await bo(),o!==(o=t())){var d=e.selectionStart,c=e.selectionEnd,u=e.value.length;if(e.value=o??"",c!==null){var v=e.value.length;d===c&&c===u&&v>u?(e.selectionStart=v,e.selectionEnd=v):(e.selectionStart=d,e.selectionEnd=Math.min(c,v))}}}),Wa(t)==null&&e.value&&(a(Qr(e)?Zr(e.value):e.value),j!==null&&r.add(j)),Nr(()=>{var i=t();if(e===document.activeElement){var o=j;if(r.has(o))return}Qr(e)&&i===Zr(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i??"")})}function Ro(e,t,a=t){Mi(e,"change",r=>{var i=r?e.defaultChecked:e.checked;a(i)}),Wa(t)==null&&a(e.checked),Nr(()=>{var r=t();e.checked=!!r})}function Qr(e){var t=e.type;return t==="number"||t==="range"}function Zr(e){return e===""?null:+e}function Yr(e,t){return e===t||(e==null?void 0:e[Ta])===t}function Bo(e={},t,a,r){var i=Gt.r,o=Ee;return Bs(()=>{var d,c;return Nr(()=>{d=c,c=[],Wa(()=>{Yr(a(...c),e)||(t(e,...c),d&&Yr(a(...d),e)&&t(null,...d))})}),()=>{let u=o;for(;u!==i&&u.parent!==null&&u.parent.fⅈ)u=u.parent;const v=()=>{c&&Yr(a(...c),e)&&t(null,...c)},g=u.teardown;u.teardown=()=>{v(),g==null||g()}}}),e}function mr(e){Gt===null&&us(),Ai(()=>{const t=Wa(e);if(typeof t=="function")return t})}function Fo(e){Gt===null&&us(),mr(()=>()=>Wa(e))}let dr=localStorage.getItem("mc_token")||"";function el(){return dr}function No(e){dr=(e||"").trim(),localStorage.setItem("mc_token",dr)}function qo(){const e={"Content-Type":"application/json"};return dr&&(e["X-MC-Token"]=dr),e}function ir(){return localStorage.getItem("mc_hf_token")||""}function Ko(e){localStorage.setItem("mc_hf_token",(e||"").trim())}async function Me(e,t={}){const a=await fetch(e,{headers:qo(),...t}),r=await a.json().catch(()=>({}));if(!a.ok)throw new Error(r.error||"HTTP "+a.status);return r}const Go=(e,t=document)=>t.querySelector(e),Vi=(e,t=document)=>[...t.querySelectorAll(e)];function $n(e){return String(e??"").replace(/[&<>]/g,t=>({"&":"&","<":"<",">":">"})[t])}let Ui;function ee(e,t=!1){const a=Go("#toast");a&&(a.textContent=e,a.className="toast show"+(t?" err":""),clearTimeout(Ui),Ui=setTimeout(()=>a.className="toast",3200))}function Wo(e,t){return e==="running"||e==="ready"?'geladen':e==="loading"||e==="starting"?'lädt…':e==="downloading"?`↓ Download${t!=null?` ${Math.round(t)}%`:""}`:'bereit'}const He=e=>``,Kr={logo:He(' '),grid:He(' '),cpu:He(' '),pulse:He(' '),server:He(' '),book:He(' '),help:He(' '),settings:He(' '),swap:He(' '),monitor:He(' '),layers:He(' '),alert:He(' '),gauge:He(' '),search:He(' '),compass:He(' '),code:He(' '),eye:He(' '),refresh:He(' '),file:He(' '),database:He(' '),thermo:He(' '),shield:He(' '),info:He(' '),chevron:He(' '),bolt:He(' '),x:He(' '),check:He(' '),download:He(' '),clock:He(' ')};function Dt(e){return Kr[e]||""}function gi(e){return`${Kr.info}`}function ia(e){if(!e&&e!==0)return"–";const t=e/1024/1024/1024;return t>=1?t.toFixed(1)+" GB":Math.round(e/1024/1024)+" MB"}function yn({title:e,body:t,confirmLabel:a="Bestätigen",cancelLabel:r="Abbrechen",danger:i=!1}){return new Promise(o=>{const d=document.createElement("div");d.className="modal-overlay",d.innerHTML=`
+ ${$n(e)}
${t}
-
-
+
+
`;const c=u=>{d.remove(),o(u)};d.addEventListener("click",u=>{if(u.target===d)return c(!1);const v=u.target.closest("[data-x]");v&&c(v.getAttribute("data-x")==="1")}),document.body.appendChild(d),d.querySelector('[data-x="1"]').focus()})}function Hi({title:e,body:t="",placeholder:a="",password:r=!1,confirmLabel:i="Weiter",danger:o=!1}){return new Promise(d=>{const c=document.createElement("div");c.className="modal-overlay",c.innerHTML=`
- ${Dn(e)}
+ ${$n(e)}
${t?`${t}
`:""}
-
+
-
- `;const u=c.querySelector("input"),v=g=>{c.remove(),d(g)};c.addEventListener("click",g=>{if(g.target===c)return v(null);const E=g.target.closest("[data-x]");E&&v(E.getAttribute("data-x")==="1"?u.value||"":null)}),u.addEventListener("keydown",g=>{g.key==="Enter"&&v(u.value||""),g.key==="Escape"&&v(null)}),document.body.appendChild(c),u.focus()})}function Vo(e="overview"){const t=Vi(".nav-item[data-view]:not(.disabled)"),a=Vi(".view[data-view]"),r=new Set(a.map(o=>o.dataset.view));function i(o){r.has(o)||(o=e),a.forEach(d=>d.hidden=d.dataset.view!==o),t.forEach(d=>d.classList.toggle("active",d.dataset.view===o)),location.hash!=="#/"+o&&(location.hash="#/"+o)}return t.forEach(o=>o.addEventListener("click",d=>{d.preventDefault(),i(o.dataset.view)})),window.addEventListener("hashchange",()=>i(location.hash.replace("#/",""))),i(location.hash.replace("#/","")||e),{show:i}}let ji=R(null);const br={get value(){return n(ji)},set(e){h(ji,e,!0)}};let Ji=R(Vt([])),jn=R(Vt([]));const da={get value(){return n(Ji)},set(e){h(Ji,e||[],!0)},get tracked(){return n(jn)},track(e){n(jn).includes(e)||h(jn,[...n(jn),e],!0)},toggle(e){h(jn,n(jn).includes(e)?n(jn).filter(t=>t!==e):[...n(jn),e],!0)}};let Qi=R(null);const zi={get value(){return n(Qi)},set(e){h(Qi,e,!0)}},Uo="5";var ss;typeof window<"u"&&((ss=window.__svelte??(window.__svelte={})).v??(ss.v=new Set)).add(Uo);var Ho=k('— bereit für Anfragen'),jo=k('Temperatur (GPU) Freier Speicher GB ',1),Jo=k('Temperatur–messe… Freier Speicher–messe…',1),Qo=k(' '),Zo=k('Warte auf Messwerte…'),Yo=k('Noch kein Modell eingerichtet — starte hier: ',1),Xo=k('Die häufigsten Aufgaben — ein Klick. ',1),ed=k('Bild'),td=k('Code'),nd=k('Text'),ad=k('∞ aktiv'),rd=k(''),id=k(' '),Zi=k(''),sd=k('Noch keine Modelle Hol dir unter „Cookbook" ein Modell, das auf deine Hardware passt. '),ld=k(' '),od=k('News gerade nicht ladbar.'),dd=k('
LLM-Engine Aktives Modell System-Gesundheit
Auslastung in Echtzeit. Schnellstart
Dein Stack
Top-News
',1);function cd(e,t){na(t,!0);const a=O(()=>br.value),r=O(()=>zi.value),i=O(()=>{var S;return((S=n(a))==null?void 0:S.models)||[]}),o=O(()=>{var S;return((S=n(a))==null?void 0:S.swap_ok)??!1}),d=["running","ready","loading","starting"],c=O(()=>n(i).find(S=>d.includes(S.state))),u=O(()=>n(i).filter(S=>!S.incomplete)),v=O(()=>n(a)?n(o)?n(r)&&n(r).ram.percent>=90?"Achtung: Speicher wird knapp.":"Alles läuft rund.":"LLM-Engine offline":"Verbinde…"),g=O(()=>n(a)?n(o)?n(r)&&n(r).ram.percent>=90?`Arbeitsspeicher bei ${Math.round(n(r).ram.percent)} % — eventuell Speicher freigeben.`:`${n(u).length} ${n(u).length===1?"Modell":"Modelle"} konfiguriert · ${n(c)?`„${n(c).name}" geladen`:"keines geladen"} · keine Warnungen.`:"Der llama-swap-Dienst antwortet gerade nicht.":""),E=O(()=>()=>{var G;const S=(G=n(r))==null?void 0:G.gpu;return S&&S.vram.total+S.gtt.total>0?(S.vram.used+S.gtt.used)/(S.vram.total+S.gtt.total)*100:0});let p=R(Vt([])),y=R(null);mr(async()=>{try{h(p,((await Me("/api/news")).items||[]).slice(0,4),!0)}catch{}});async function T(){await yn({title:"Speicher freigeben?",body:"Alle aktuell geladenen Modelle werden aus dem Grafikspeicher geworfen. Sie laden beim nächsten Aufruf automatisch neu.",confirmLabel:"Speicher freigeben"})&&(await Me("/api/unload",{method:"POST"}),x())}async function z(S){h(y,S,!0);try{await Me("/api/preload?model="+encodeURIComponent(S),{method:"POST"})}catch(G){ee("Laden fehlgeschlagen: "+(G.message||"Engine nicht erreichbar?"),!0)}h(y,null),x()}function x(){document.dispatchEvent(new Event("mc:refresh"))}function $(S){var G;(G=document.querySelector(`.nav-item[data-view="${S}"]`))==null||G.dispatchEvent(new MouseEvent("click"))}function ke(S){return S>=90?"red":S>=75?"":"green"}function te(S){return S==null?"":S>=75?"red":S>=55?"":"green"}function ue(S){return S>=90?"red":S>=70?"":"green"}var Ae=dd(),K=ct(Ae),W=l(K),fe=l(W),he=l(fe),$e=s(he);{var We=S=>{var G=Ho();m(S,G)};q($e,S=>{n(o)&&!n(c)&&S(We)})}var mt=s(fe,2),A=l(mt),H=s(K,2),re=l(H),Ve=l(re),Q=s(l(Ve),2);ze(Q,()=>$t("server"),!0);var De=s(Ve,2),Y=l(De),rt=s(De,2),L=l(rt),V=s(re,2),ie=l(V),ge=s(l(ie),2);ze(ge,()=>$t("cpu"),!0);var Te=s(ie,2),bt=l(Te),pt=s(Te,2),xt=l(pt);{var Ct=S=>{var G=nr();D(Oe=>b(G,`${Oe??""} · ${n(c).state??""}`),[()=>{var Oe;return(Oe=n(c).meta)!=null&&Oe.ctx?Math.round(n(c).meta.ctx/1024)+"k ctx":""}]),m(S,G)},St=S=>{var G=nr("lädt bei erster Anfrage");m(S,G)};q(xt,S=>{n(c)?S(Ct):S(St,-1)})}var zt=s(V,2);{var Ot=S=>{const G=O(()=>{var Vn;return n(r).gpu_temp??((Vn=n(r).cpu)==null?void 0:Vn.temp)??null}),Oe=O(()=>te(n(G))),ne=O(()=>n(r).ram.total-n(r).ram.used),Be=O(()=>100-n(r).ram.percent);var Ze=jo(),et=ct(Ze),Se=l(et),Pe=s(l(Se));ze(Pe,()=>$t("thermo"),!0);var Re=s(Se,2),Rt=l(Re),Bt=s(Re,2),Ht=l(Bt),an=s(et,2),bn=l(an),Ke=s(l(bn));ze(Ke,()=>$t("database"),!0);var ht=s(bn,2),Rn=l(ht),Wn=s(ht,2),ra=l(Wn);D((Vn,Va,w,_)=>{kt(et,1,`kpi ${n(Oe)??""}`),b(Rt,Vn),b(Ht,n(G)==null?"messe…":n(G)<55?"kühl":n(G)<75?"normal":"⚠ heiß"),kt(an,1,`kpi ${n(Be)<15?"red":n(Be)<30?"":"green"}`),b(Rn,Va),b(ra,`von ${w??""} GB · ${_??""} % frei`)},[()=>n(G)!=null?`${Math.round(n(G))}°C`:"–",()=>Math.round(n(ne)/1073741824),()=>Math.round(n(r).ram.total/1073741824),()=>Math.round(n(Be))]),m(S,Ze)},It=S=>{var G=Jo();m(S,G)};q(zt,S=>{n(r)?S(Ot):S(It,-1)})}var P=s(H,2),N=l(P),Ce=s(l(N),4);{var ut=S=>{const G=O(()=>n(E)());var Oe=or(),ne=ct(Oe);dt(ne,17,()=>{var Be;return[["Prozessor (CPU)",((Be=n(r).cpu)==null?void 0:Be.percent)??0,""],["Arbeitsspeicher (RAM)",n(r).ram.percent,ke(n(r).ram.percent)],["Grafikspeicher (VRAM)",n(G),ue(n(G))]]},ot,(Be,Ze)=>{var et=O(()=>sr(n(Ze),3));let Se=()=>n(et)[0],Pe=()=>n(et)[1];const Re=O(()=>Math.max(0,Math.min(100,Pe()||0)));var Rt=Qo(),Bt=l(Rt),Ht=l(Bt),an=l(Ht),bn=s(Ht),Ke=l(bn),ht=s(Bt,2),Rn=l(ht);D((Wn,ra)=>{b(an,Se()),b(Ke,`${Wn??""} %`),kt(ht,1,`bar ${n(Re)>=90?"bad":n(Re)>=75?"warn":""}`),pn(Rn,`width:${ra??""}%`)},[()=>Math.round(n(Re)),()=>Math.max(2,n(Re))]),m(Be,Rt)}),m(S,Oe)},F=S=>{var G=Zo();m(S,G)};q(Ce,S=>{n(r)?S(ut):S(F,-1)})}var Le=s(N,2),J=s(l(Le),2);{var de=S=>{var G=Yo(),Oe=s(ct(G),2),ne=l(Oe);ze(ne,()=>$t("search"),!0);var Be=s(ne,4);ze(Be,()=>$t("chevron"),!0);var Ze=s(Oe,2),et=l(Ze);ze(et,()=>$t("swap"),!0);var Se=s(et,4);ze(Se,()=>$t("chevron"),!0);var Pe=s(Ze,2),Re=l(Pe);ze(Re,()=>$t("file"),!0);var Rt=s(Re,4);ze(Rt,()=>$t("chevron"),!0),C("click",Oe,()=>$("cookbook")),C("click",Ze,()=>$("connect")),C("click",Pe,()=>$("guides")),m(S,G)},se=S=>{var G=Xo(),Oe=s(ct(G),2),ne=l(Oe);ze(ne,()=>$t("search"),!0);var Be=s(ne,4);ze(Be,()=>$t("chevron"),!0);var Ze=s(Oe,2),et=l(Ze);ze(et,()=>$t("refresh"),!0);var Se=s(et,4);ze(Se,()=>$t("chevron"),!0);var Pe=s(Ze,2),Re=l(Pe);ze(Re,()=>$t("file"),!0);var Rt=s(Re,4);ze(Rt,()=>$t("chevron"),!0);var Bt=s(Pe,2),Ht=l(Bt);ze(Ht,()=>$t("swap"),!0);var an=s(Ht,4);ze(an,()=>$t("chevron"),!0),C("click",Oe,()=>$("cookbook")),C("click",Ze,T),C("click",Pe,()=>$("server")),C("click",Bt,()=>$("connect")),m(S,G)};q(J,S=>{n(u).length?S(se,-1):S(de)})}var Z=s(P,2),be=l(Z),ve=l(be),ye=s(l(ve),2),xe=l(ye),_e=s(ve,2);{var M=S=>{var G=Zi();dt(G,21,()=>n(u),ot,(Oe,ne)=>{const Be=O(()=>d.includes(n(ne).state)),Ze=O(()=>n(ne).state==="downloading"),et=O(()=>n(ne).state==="loading"||n(ne).state==="starting"||n(Ze)?"load":n(Be)?"on":""),Se=O(()=>n(Ze)?`↓ ${n(ne).download_progress!=null?Math.round(n(ne).download_progress)+"%":"..."}`:n(ne).state==="loading"||n(ne).state==="starting"?"lädt…":n(Be)?"geladen ✓":"bereit");var Pe=id(),Re=l(Pe),Rt=s(Re,2),Bt=l(Rt),Ht=l(Bt),an=l(Ht),bn=s(Ht,2);{var Ke=X=>{var me=ed();m(X,me)},ht=O(()=>{var X,me;return(me=(X=n(ne).meta)==null?void 0:X.caps)==null?void 0:me.includes("Bild")}),Rn=X=>{var me=td();m(X,me)},Wn=O(()=>{var X,me;return(me=(X=n(ne).meta)==null?void 0:X.caps)==null?void 0:me.includes("Code")}),ra=X=>{var me=nd();m(X,me)};q(bn,X=>{n(ht)?X(Ke):n(Wn)?X(Rn,1):X(ra,-1)})}var Vn=s(bn,2);{var Va=X=>{var me=ad();m(X,me)};q(Vn,X=>{n(ne).ttl>=99999&&X(Va)})}var w=s(Bt,2),_=l(w),B=s(Rt,2),I=l(B),ae=l(I),tt=s(I,2);{var it=X=>{var me=rd(),Ie=l(me);D(()=>{pn(me,`padding:3px 9px;font-size:12px;opacity:${n(y)===n(ne).name?".5":"1"}`),me.disabled=n(y)===n(ne).name,b(Ie,n(y)===n(ne).name?"…":"Laden")}),C("click",me,()=>z(n(ne).name)),m(X,me)};q(tt,X=>{!n(Be)&&!n(Ze)&&n(o)&&X(it)})}D((X,me)=>{var Ie;kt(Re,1,`li-dot ${n(et)??""}`),pn(Ht,n(Be)?"color:var(--accent)":""),b(an,n(ne).name),b(_,`${X??""}
- ${(Ie=n(ne).meta)!=null&&Ie.quant?" · "+n(ne).meta.quant:""}
- ${me??""}`),pn(I,`white-space:nowrap;color:${n(Be)?"var(--on)":"var(--mut)"}`),b(ae,n(Se))},[()=>{var X;return(X=n(ne).meta)!=null&&X.ctx?Math.round(n(ne).meta.ctx/1024)+"k ctx":""},()=>{var X;return(X=n(ne).meta)!=null&&X.size_bytes?" · "+(n(ne).meta.size_bytes/1073741824).toFixed(1)+" GB":""}]),m(Oe,Pe)}),m(S,G)},U=S=>{var G=sd(),Oe=s(l(G),4);C("click",Oe,()=>$("cookbook")),m(S,G)};q(_e,S=>{n(u).length?S(M):S(U,-1)})}var le=s(be,2),Je=l(le),Qe=s(l(Je),2),Qt=s(Je,2);{var Zt=S=>{var G=Zi();dt(G,21,()=>n(p),ot,(Oe,ne)=>{var Be=ld(),Ze=l(Be),et=l(Ze),Se=l(et),Pe=s(et,2),Re=l(Pe);D(()=>{Nr(Be,"href",n(ne).link),b(Se,n(ne).title),b(Re,`${n(ne).source??""}${n(ne).relevant?" · für dich":""}`)}),m(Oe,Be)}),m(S,G)},Ut=S=>{var G=od();m(S,G)};q(Qt,S=>{n(p).length?S(Zt):S(Ut,-1)})}D(S=>{b(he,`${n(v)??""} `),b(A,n(g)),kt(re,1,`kpi ${n(o)?"green":"red"}`),b(Y,n(o)?"Online":"Offline"),b(L,S),kt(V,1,`kpi ${n(c)?"blue":"muted"}`),b(bt,n(c)?n(c).name:"Keins"),b(xe,n(u).length?n(u).length+" konfiguriert":"")},[()=>{var S,G;return((G=(S=n(a))==null?void 0:S.swap_url)==null?void 0:G.replace(/^https?:\/\//,""))??"—"}]),C("click",Qe,()=>$("news")),C("keydown",Qe,S=>S.key==="Enter"&&$("news")),m(e,Ae),aa()}ya(["click","keydown"]);var ud=k(""),vd=k(' '),fd=k('Noch keine Modelle konfiguriert Hol dir unter „Cookbook" ein passendes Modell.'),pd=k(' kein Modell hinterlegt — leere Rolle leer — '),hd=k(' '),gd=k(' '),md=k(' '),bd=k(' API-Name: '),_d=k('Modell Kann Details Status Port Aktionen
'),wd=k('Empfohlen für deine Hardware
'),kd=k(''),yd=k(''),xd=k(''),Sd=k('Modelle
Deine konfigurierten Modelle — testen, Kontext anpassen oder aus dem Speicher werfen. Schnelltest
Schreib eine Nachricht — das gewählte Modell wird automatisch geweckt. Modelle & Ports
Modelle laden automatisch, sobald eine Anfrage kommt — du musst nichts manuell starten. ',1);function Md(e,t){na(t,!0);const a="Kontext = das Kurzzeitgedächtnis des Modells. Größer = merkt sich mehr (längere Dateien/Chats), braucht aber mehr Speicher und wird etwas langsamer.",r="Die Rolle ist ein zusätzlicher, sprechender Name (z.B. coder). Du kannst in deinen Tools entweder den echten Modellnamen ODER die Rolle angeben — beides führt zum selben Modell.",i=[{id:"coder",label:"Coder",desc:"Programmieren & Code"},{id:"vision",label:"Vision",desc:"Bilder verstehen"},{id:"scout",label:"Scout",desc:"Schneller Allrounder"},{id:"reviewer",label:"Reviewer",desc:"Code/Texte prüfen"},{id:"manager",label:"Manager",desc:"Planen & koordinieren"}],o=O(()=>{var P;return((P=br.value)==null?void 0:P.models)||[]});function d(){document.dispatchEvent(new Event("mc:refresh"))}let c=R(""),u=R(""),v=R(""),g=R(!1);const E=O(()=>n(o).filter(P=>!P.incomplete));async function p(){var N;const P=n(c)||((N=n(E)[0])==null?void 0:N.name);if(!(!P||!n(u).trim())){h(g,!0),h(v,"(wecke Modell, kann beim Laden kurz dauern…)");try{const Ce=await Me("/api/chat",{method:"POST",body:JSON.stringify({model:P,message:n(u)})});h(v,Ce.reply,!0)}catch(Ce){h(v,"Fehler: "+Ce.message)}h(g,!1),d()}}const y=300;let T=R(!1),z=R(null),x=R(8192),$=R(!1);function ke(P){var N;h(z,n(o).find(Ce=>Ce.name===P),!0),n(z)&&(h(x,((N=n(z).meta)==null?void 0:N.ctx)||8192,!0),h($,(n(z).ttl??y)>=99999),h(T,!0))}async function te(){const P=n($)?99999:y;try{await Me("/api/update_model",{method:"POST",body:JSON.stringify({alias:n(z).name,ctx:n(x),ttl:P})}),ee("Gespeichert — aktiv beim nächsten Modell-Start."),h(T,!1),d()}catch(N){ee(N.message,!0)}}let ue=R(!1),Ae=R(""),K=R(""),W=R("");function fe(P){const N=n(o).find(Ce=>Ce.name===P);h(Ae,P,!0),h(W,(N==null?void 0:N.role)||"",!0),h(K,""),h(ue,!0)}async function he(P){try{await Me("/api/set_role",{method:"POST",body:JSON.stringify({alias:n(Ae),role:P})}),ee(P?`Rolle gesetzt: ${P}`:"Rolle entfernt."),h(ue,!1),d()}catch(N){ee(N.message,!0)}}async function $e(P){if(await yn({title:`„${P}" entladen?`,body:"Das Modell wird aus dem Grafikspeicher geworfen und lädt beim nächsten Aufruf automatisch neu.",confirmLabel:"Entladen"}))try{await Me("/api/unload?model="+encodeURIComponent(P),{method:"POST"}),ee("Entladen: "+P),setTimeout(d,600)}catch(N){ee(N.message,!0)}}async function We(P){if(await yn({title:`„${P}" wirklich löschen?`,body:"Das Modell wird aus der Konfiguration ausgetragen und seine Dateien werden von der Festplatte gelöscht, um Speicher freizugeben. Das lässt sich nicht rückgängig machen — später brauchst du dafür einen neuen Download.",confirmLabel:"Endgültig löschen",danger:!0}))try{const N=await Me("/api/delete_model",{method:"POST",body:JSON.stringify({alias:P})});ee(N.note||"Gelöscht: "+P),setTimeout(d,600)}catch(N){ee(N.message,!0)}}function mt(P){return P!=null&&P.length?P.map(N=>N==="Code"?'Code':N==="Bild"?'Bild':'Text').join(" "):"–"}function A(P){if(!P)return"–";const N=P.quant||"?",Ce=P.ctx?Math.round(P.ctx/1024)+"K":"?",ut=P.size_bytes?(P.size_bytes/1024**3).toFixed(1)+" GB":"?";return`${N} · ${Ce} · ${ut}`}function H(P){var N;(N=navigator.clipboard)==null||N.writeText(P),ee("Kopiert: "+P)}var re=Sd(),Ve=s(ct(re),2),Q=s(l(Ve),6);dt(Q,21,()=>n(E),ot,(P,N)=>{var Ce=ud(),ut=l(Ce),F={};D(()=>{b(ut,n(N).name),F!==(F=n(N).name)&&(Ce.value=(Ce.__value=n(N).name)??"")}),m(P,Ce)});var De=s(Q,4),Y=s(De,2),rt=l(Y),L=s(Y,2);{var V=P=>{var N=vd(),Ce=l(N);D(()=>b(Ce,n(v))),m(P,N)};q(L,P=>{n(v)&&P(V)})}var ie=s(Ve,2),ge=l(ie),Te=s(l(ge)),bt=l(Te),pt=s(ge,4);{var xt=P=>{var N=fd();m(P,N)},Ct=P=>{var N=_d(),Ce=s(l(N));dt(Ce,21,()=>n(o),ot,(ut,F)=>{var Le=or(),J=ct(Le);{var de=Z=>{var be=pd(),ve=l(be),ye=l(ve),xe=s(ve,5),_e=l(xe),M=s(_e,2);D(()=>b(ye,n(F).name)),C("click",_e,()=>{var U;ee("Lade im Cookbook ein Modell und setze den Alias auf: "+n(F).name),(U=document.querySelector(".nav-item[data-view='cookbook']"))==null||U.dispatchEvent(new MouseEvent("click"))}),C("click",M,()=>We(n(F).name)),m(Z,be)},se=Z=>{var be=bd(),ve=l(be),ye=l(ve),xe=l(ye),_e=s(xe);{var M=Se=>{var Pe=hd(),Re=l(Pe);D(()=>b(Re,n(F).role)),m(Se,Pe)};q(_e,Se=>{n(F).role&&Se(M)})}var U=s(ye,2);{var le=Se=>{var Pe=gd(),Re=l(Pe);D(()=>b(Re,n(F).meta.filename)),m(Se,Pe)};q(U,Se=>{var Pe;(Pe=n(F).meta)!=null&&Pe.filename&&Se(le)})}var Je=s(U,2),Qe=s(l(Je),2);dt(Qe,17,()=>{var Se;return(Se=n(F).api_ids)!=null&&Se.length?n(F).api_ids:[n(F).name]},ot,(Se,Pe)=>{var Re=md(),Rt=l(Re);D(()=>b(Rt,n(Pe))),C("click",Re,()=>H(n(Pe))),m(Se,Re)});var Qt=s(ve);ze(Qt,()=>{var Se;return mt((Se=n(F).meta)==null?void 0:Se.caps)},!0);var Zt=s(Qt);ze(Zt,()=>A(n(F).meta),!0);var Ut=s(Zt);ze(Ut,()=>Wo(n(F).state,n(F).download_progress),!0);var S=s(Ut),G=l(S),Oe=s(S),ne=l(Oe),Be=s(ne,2),Ze=s(Be,2),et=s(Ze,2);D(()=>{b(xe,`${n(F).name??""} `),b(G,n(F).port??"auto")}),C("click",ne,()=>fe(n(F).name)),C("click",Be,()=>ke(n(F).name)),C("click",Ze,()=>$e(n(F).name)),C("click",et,()=>We(n(F).name)),m(Z,be)};q(J,Z=>{n(F).incomplete?Z(de):Z(se,-1)})}m(ut,Le)}),m(P,N)};q(pt,P=>{n(o).length?P(Ct,-1):P(xt)})}var St=s(ie,2);{var zt=P=>{var N=kd(),Ce=l(N),ut=l(Ce),F=s(ut,4),Le=l(F),J=s(F,2),de=s(l(J));ze(de,()=>gi(a));var se=s(J,2),Z=s(se,2);{var be=le=>{var Je=wd(),Qe=l(Je),Qt=s(l(Qe),2),Zt=l(Qt),Ut=s(Zt,2),S=s(Qe,2);D((G,Oe)=>{b(Zt,`Optimal ~${G??""}k → ~${n(z).meta.peak_ram_optimal_gb??""} GB Spitzenbedarf.`),b(Ut,` Aktuell ~${Oe??""}k → ~${n(z).meta.peak_ram_gb??""} GB.`)},[()=>Math.round(n(z).meta.optimal_ctx/1024),()=>Math.round((n(z).meta.ctx||0)/1024)]),C("click",S,()=>h(x,n(z).meta.optimal_ctx,!0)),m(le,Je)};q(Z,le=>{var Je;(Je=n(z).meta)!=null&&Je.optimal_ctx&&le(be)})}var ve=s(Z,4),ye=s(l(ve),2),xe=l(ye),_e=s(xe,2),M=l(_e),U=s(ve,2);D(()=>{b(Le,n(z).name),pn(_e,`color:${n($)?"var(--accent)":"var(--mut)"}`),b(M,n($)?"An (TTL = ∞)":"Aus (TTL = 5 min)")}),C("click",N,le=>{le.target.classList.contains("modal-overlay")&&h(T,!1)}),C("click",ut,()=>h(T,!1)),Tn(se,()=>n(x),le=>h(x,le)),Io(xe,()=>n($),le=>h($,le)),C("click",U,te),m(P,N)};q(St,P=>{n(T)&&n(z)&&P(zt)})}var Ot=s(St,2);{var It=P=>{var N=xd(),Ce=l(N),ut=l(Ce),F=s(ut,2),Le=s(l(F));ze(Le,()=>gi(r));var J=s(F,2),de=l(J),se=s(J,4);dt(se,21,()=>i,ot,(xe,_e)=>{var M=yd(),U=l(M);D(()=>{kt(M,1,n(W)===n(_e).id?"primary":"ghost"),Nr(M,"title",n(_e).desc),b(U,n(_e).label)}),C("click",M,()=>he(n(_e).id)),m(xe,M)});var Z=s(se,4),be=s(Z,2),ve=l(be),ye=s(ve,2);D(()=>b(de,n(Ae))),C("click",N,xe=>{xe.target.classList.contains("modal-overlay")&&h(ue,!1)}),C("click",ut,()=>h(ue,!1)),Tn(Z,()=>n(K),xe=>h(K,xe)),C("click",ve,()=>he("")),C("click",ye,()=>he(n(K).trim().toLowerCase())),m(P,N)};q(Ot,P=>{n(ue)&&P(It)})}D(()=>{Y.disabled=n(g),b(rt,n(g)?"…":"Senden"),b(bt,n(o).length?n(o).length+" konfiguriert":"")}),ar(Q,()=>n(c),P=>h(c,P)),Tn(De,()=>n(u),P=>h(u,P)),C("click",Y,p),m(e,re),aa()}ya(["click"]);var Ed=k('Prozessor (CPU) % Arbeitsspeicher % Grafikspeicher % System-Metriken (Bosgame)
Live-Auslastung deines Mini-PCs, alle 0,5 Sekunden. Arbeitsspeicher (RAM) Grafikspeicher (VRAM + GTT) Speicherplatz (Disk) Temperatur (GPU / CPU) ',1),Ad=k(''),Td=k('Gerade nichts los. Alles ruhig — keine laufenden Aufgaben.'),Cd=k(' '),Pd=k(''),zd=k(''),$d=k(''),Dd=k(' '),Ld=k(' '),Od=k('Aktivität
Live-Auslastung und laufende Aufgaben (Downloads, Updates) mit Protokoll. Hintergrund-Aufgaben
Downloads & Updates erscheinen hier mit Live-Protokoll — zum Aufklappen klicken. ',1);function Rd(e,t){na(t,!0);const a=O(()=>da.value),r=O(()=>da.tracked),i=O(()=>zi.value);let o=Vt({cpu:[],ram:[],gpu:[]});Ai(()=>{var re;if(!n(i))return;const A=n(i).gpu,H=A&&A.vram.total+A.gtt.total>0?(A.vram.used+A.gtt.used)/(A.vram.total+A.gtt.total)*100:0;o.cpu=[...o.cpu,((re=n(i).cpu)==null?void 0:re.percent)??0].slice(-60),o.ram=[...o.ram,n(i).ram.percent].slice(-60),o.gpu=[...o.gpu,H].slice(-60)});const d=O(()=>()=>{var H;const A=(H=n(i))==null?void 0:H.gpu;return A&&A.vram.total+A.gtt.total>0?(A.vram.used+A.gtt.used)/(A.vram.total+A.gtt.total)*100:0}),c=O(()=>n(a).filter(A=>A.state!=="running"&&A.state!=="queued").length),u=O(()=>n(a).filter(A=>A.state==="failed").length);function v(A){if(A.state!=="running")return null;if(typeof A.progress=="number")return Math.min(100,A.progress);const re=((A.log||[]).at(-1)||"").match(/(\d+(?:\.\d+)?)\s*%/);return re?Math.min(100,parseFloat(re[1])):null}function g(A){return A==null||A<0?"":A>=90?`noch ~${Math.round(A/60)} min`:`noch ~${Math.max(1,Math.round(A))} s`}function E(A){return A==="done"?'fertig':A==="failed"?'fehler':A==="canceled"?'abgebrochen':'läuft…'}function p(A){return A==="done"?"on":A==="failed"||A==="canceled"?"":"load"}async function y(A){try{await Me(`/api/jobs/${A}/cancel`,{method:"POST"}),ee("Abbruch angefordert…")}catch(H){ee(H.message,!0)}}async function T(A){try{await Me(`/api/jobs/${A}`,{method:"DELETE"})}catch(H){ee(H.message,!0)}}async function z(){try{const A=await Me("/api/jobs/clear",{method:"POST"});ee(`${A.removed} Einträge entfernt.`)}catch(A){ee(A.message,!0)}}function x(A,H){return A.map(re=>``).join("")}var $=Od(),ke=s(ct($),2);{var te=A=>{const H=O(()=>n(d)());var re=Ed(),Ve=ct(re),Q=l(Ve),De=s(l(Q),2),Y=l(De),rt=s(De,2),L=l(rt),V=s(Q,2),ie=s(l(V),2),ge=l(ie),Te=s(ie,2),bt=l(Te),pt=s(V,2),xt=s(l(pt),2),Ct=l(xt),St=s(xt,2),zt=l(St),Ot=s(Ve,2),It=s(l(Ot),4),P=l(It),N=s(l(P)),Ce=l(N),ut=s(P,2),F=s(l(ut),2),Le=l(F),J=s(ut,2),de=s(l(J)),se=l(de),Z=s(J,2),be=s(l(Z),2),ve=l(be),ye=s(It,2),xe=l(ye),_e=s(l(xe));ze(_e,()=>x(o.cpu,"--accent"),!0);var M=s(xe,2),U=s(l(M));ze(U,()=>x(o.ram,"--purple"),!0);var le=s(M,2),Je=s(l(le));ze(Je,()=>x(o.gpu,"--on"),!0),D((Qe,Qt,Zt,Ut,S,G,Oe,ne,Be,Ze,et,Se,Pe)=>{b(Y,Qe),b(L,Qt),b(ge,Zt),b(bt,`${Ut??""} / ${S??""}`),b(Ct,G),b(zt,Oe),b(Ce,`${ne??""} / ${Be??""}`),b(Le,Ze),b(se,`${et??""} % belegt`),b(ve,`${Se??""} / ${Pe??""}`)},[()=>{var Qe;return Math.round(((Qe=n(i).cpu)==null?void 0:Qe.percent)??0)},()=>{var Qe;return((Qe=n(i).cpu)==null?void 0:Qe.temp)!=null?`${Math.round(n(i).cpu.temp)}° CPU-Temp`:"Auslastung"},()=>Math.round(n(i).ram.percent),()=>ia(n(i).ram.used),()=>ia(n(i).ram.total),()=>Math.round(n(H)),()=>n(i).gpu_temp!=null?`${Math.round(n(i).gpu_temp)}° GPU-Temp`:"VRAM + GTT",()=>ia(n(i).ram.used),()=>ia(n(i).ram.total),()=>n(i).gpu?`${ia(n(i).gpu.vram.used+n(i).gpu.gtt.used)} / ${ia(n(i).gpu.vram.total+n(i).gpu.gtt.total)}`:"–",()=>{var Qe;return Math.round(((Qe=n(i).disk)==null?void 0:Qe.percent)??0)},()=>n(i).gpu_temp!=null?Math.round(n(i).gpu_temp)+"°":"–",()=>{var Qe;return((Qe=n(i).cpu)==null?void 0:Qe.temp)!=null?Math.round(n(i).cpu.temp)+"°":"–"}]),m(A,re)};q(ke,A=>{n(i)&&A(te)})}var ue=s(ke,2),Ae=l(ue),K=s(l(Ae),2),W=l(K),fe=s(K,2);{var he=A=>{var H=Ad();C("click",H,z),m(A,H)};q(fe,A=>{n(c)&&A(he)})}var $e=s(Ae,4);{var We=A=>{var H=Td();m(A,H)},mt=A=>{var H=or(),re=ct(H);dt(re,17,()=>n(a),ot,(Ve,Q)=>{const De=O(()=>v(n(Q))),Y=O(()=>n(Q).state==="running"?g(n(Q).eta_s):""),rt=O(()=>n(Q).state==="running"&&n(Q).rate_bps?ia(n(Q).rate_bps)+"/s":""),L=O(()=>[n(Y),n(rt)].filter(Boolean).join(" · ")),V=O(()=>n(r).includes(n(Q).id));var ie=Ld(),ge=l(ie),Te=l(ge),bt=s(Te,2),pt=l(bt),xt=s(bt,2);{var Ct=F=>{var Le=Cd(),J=l(Le);D(de=>b(J,`${de??""} %${n(L)?` · ${n(L)}`:""}`),[()=>Math.round(n(De))]),m(F,Le)};q(xt,F=>{n(De)!=null&&F(Ct)})}var St=s(xt,2);{var zt=F=>{var Le=Pd();D(()=>pn(Le,`${n(De)==null?"margin-left:auto;":""}margin-right:2px;padding:2px 9px;font-size:12px`)),C("click",Le,J=>{J.stopPropagation(),y(n(Q).id)}),m(F,Le)},Ot=F=>{var Le=zd();C("click",Le,J=>{J.stopPropagation(),T(n(Q).id)}),m(F,Le)};q(St,F=>{n(Q).state==="running"?F(zt):F(Ot,-1)})}var It=s(St,2);ze(It,()=>E(n(Q).state));var P=s(ge,2);{var N=F=>{var Le=$d(),J=l(Le);D(()=>pn(J,`width:${n(De)??""}%`)),m(F,Le)};q(P,F=>{n(De)!=null&&n(Q).state==="running"&&F(N)})}var Ce=s(P,2);{var ut=F=>{var Le=Dd(),J=l(Le);D(de=>b(J,de),[()=>(n(Q).log||[]).join(`
-`)]),m(F,Le)};q(Ce,F=>{n(V)&&F(ut)})}D(F=>{kt(Te,1,`li-dot ${F??""}`),b(pt,n(Q).label)},[()=>p(n(Q).state)]),C("click",ge,()=>da.toggle(n(Q).id)),C("keydown",ge,F=>F.key==="Enter"&&da.toggle(n(Q).id)),m(Ve,ie)}),m(A,H)};q($e,A=>{n(a).length?A(mt,-1):A(We)})}D(()=>b(W,n(a).length?n(u)?n(u)+" Fehler":n(a).length+" gesamt":"")),m(e,$),aa()}ya(["click","keydown"]);var Id=k(' '),Bd=k(''),qd=k('✓ fertig'),Fd=k('✗ fehlgeschlagen'),Nd=k('abgebrochen'),Kd=k('läuft…'),Gd=k(''),Wd=k('Aktueller Vorgang
'),Vd=k('Server & Wartung
Dienste steuern, Updates einspielen und live mitlesen — ganz ohne SSH oder Terminal. LLM-Engine (llama-swap)
Das Herzstück: lädt bei jeder Anfrage automatisch das passende Modell. Adresse (für deine Tools) Aktuell geladen Konfigurierte Modelle Dienste & Applikation
Diese Aktionen sind harmlos und passwortlos — es geht nichts dabei verloren. Betriebssystem (Bosgame)
Tiefe Eingriffe — das Dashboard fragt einmalig nach deinem sudo-Passwort. Live-Konsole
Live mitlesen, was der Dienst gerade tut. ',1);function Ud(e,t){na(t,!0);const a=O(()=>br.value),r=O(()=>da.value);let i=null,o=R(`Verbinde…
-`),d=R("llama-swap"),c,u=R(null),v=R("");const g=new Set,E=O(()=>n(u)?n(r).find(M=>M.id===n(u)):null);Ai(()=>{if(!n(E))return;const M=n(E),U=M.state==="done",le=M.state==="failed",Je=M.state==="canceled";(U||le||Je)&&!g.has(M.id)&&(g.add(M.id),ee(U?`✓ ${n(v)} abgeschlossen.`:Je?`${n(v)} abgebrochen.`:`✗ ${n(v)} fehlgeschlagen.`,le),U&&setTimeout(()=>document.dispatchEvent(new Event("mc:refresh")),800))});function p(M,U){h(u,M,!0),h(v,U,!0),da.track(M)}mr(()=>{y()}),qo(()=>{i==null||i.close()});function y(){i==null||i.close();const M=n(d);h(o,`Verbinde mit ${M}…
+
+ '),bd=k('| Modell | Kann | Details | Status | Port | Aktionen |
|---|
apt update & upgrade aus. Das kann ein paar Minuten dauern; der Fortschritt erscheint in der Aktivität."}))return;const M=await Hi({title:"sudo-Passwort",body:"Für die System-Updates wird einmalig dein sudo-Passwort gebraucht.",placeholder:"sudo-Passwort",password:!0,confirmLabel:"Installieren"});if(M)try{const U=await Me("/api/os-update",{method:"POST",body:JSON.stringify({password:M})});ee("OS-Update gestartet."),p(U.job_id,"OS-Update")}catch(U){ee(U.message,!0)}}async function te(){if(!await yn({title:"Server wirklich neu starten?",body:"Der ganze Bosgame startet physisch neu. Alles ist für ~1 Minute offline — auch dieses Dashboard.",confirmLabel:"Reboot",danger:!0}))return;const M=await Hi({title:"sudo-Passwort",body:"Für den Reboot wird einmalig dein sudo-Passwort gebraucht.",placeholder:"sudo-Passwort",password:!0,confirmLabel:"Jetzt neustarten",danger:!0});if(M)try{await Me("/api/reboot",{method:"POST",body:JSON.stringify({password:M})}),ee("Reboot ausgelöst — bis gleich.")}catch(U){ee(U.message,!0)}}async function ue(){h(Ae,"prüfe…");try{const M=await Me("/api/integration/test");h(Ae,M.ok?`✓ Engine antwortet — ${M.models.length} Modell(e): ${M.models.join(", ")}`:`✗ keine Verbindung: ${M.error}`,!0),h(K,M.ok,!0)}catch(M){h(Ae,"✗ "+M.message),h(K,!1)}}let Ae=R(""),K=R(!1);const W=O(()=>{var M;return((M=n(a))==null?void 0:M.models)||[]}),fe=["running","ready","loading","starting"],he=O(()=>n(W).find(M=>fe.includes(M.state)));function $e(M){if(!M||M.state!=="running")return null;if(typeof M.progress=="number")return Math.min(100,M.progress);const le=((M.log||[]).at(-1)||"").match(/(\d+(?:\.\d+)?)\s*%/);return le?Math.min(100,parseFloat(le[1])):null}var We=Vd(),mt=s(ct(We),2),A=l(mt),H=s(l(A),2),re=l(H),Ve=s(A,4),Q=l(Ve),De=s(l(Q)),Y=l(De),rt=s(Q,2),L=s(l(rt),2),V=l(L),ie=s(rt,2),ge=s(l(ie),2),Te=l(ge),bt=s(Ve,2),pt=l(bt),xt=s(pt,2);{var Ct=M=>{var U=Id(),le=l(U);D(()=>{pn(U,`color:${n(K)?"#7ee29a":"#ff9b95"}`),b(le,n(Ae))}),m(M,U)};q(xt,M=>{n(Ae)&&M(Ct)})}var St=s(mt,2),zt=s(l(St),4),Ot=s(zt,2),It=s(Ot,2),P=s(It,2),N=s(P,2),Ce=s(St,2),ut=s(l(Ce),4),F=s(ut,2),Le=s(Ce,2);{var J=M=>{const U=O(()=>n(E)),le=O(()=>n(U).state==="done"),Je=O(()=>n(U).state==="failed"),Qe=O(()=>n(U).state==="canceled"),Qt=O(()=>n(le)||n(Je)||n(Qe)),Zt=O(()=>$e(n(U)));var Ut=Wd(),S=l(Ut),G=s(l(S),2);{var Oe=Ke=>{var ht=Bd();C("click",ht,async()=>{await yn({title:n(v)+" abbrechen?",body:"Der laufende Vorgang wird gestoppt.",confirmLabel:"Abbrechen",danger:!0})&&Me(`/api/jobs/${n(U).id}/cancel`,{method:"POST"})}),m(Ke,ht)};q(G,Ke=>{n(Qt)||Ke(Oe)})}var ne=s(G,2),Be=l(ne);{var Ze=Ke=>{var ht=qd();m(Ke,ht)},et=Ke=>{var ht=Fd();m(Ke,ht)},Se=Ke=>{var ht=Nd();m(Ke,ht)},Pe=Ke=>{var ht=Kd();m(Ke,ht)};q(Be,Ke=>{n(le)?Ke(Ze):n(Je)?Ke(et,1):n(Qe)?Ke(Se,2):Ke(Pe,-1)})}var Re=s(S,2),Rt=l(Re),Bt=s(Re,2);{var Ht=Ke=>{var ht=Gd(),Rn=l(ht);D(()=>pn(Rn,`width:${n(Zt)??""}%`)),m(Ke,ht)};q(Bt,Ke=>{n(Zt)!=null&&!n(Qt)&&Ke(Ht)})}var an=s(Bt,2),bn=l(an);D(Ke=>{b(Rt,`${n(v)??""}${n(Qt)?n(le)?" — erfolgreich.":n(Qe)?" — abgebrochen.":" — fehlgeschlagen.":" läuft…"}`),b(bn,Ke)},[()=>(n(U).log||[]).join(`
-`)]),m(M,Ut)};q(Le,M=>{n(E)&&M(J)})}var de=s(Le,2),se=l(de),Z=s(l(se),2),be=l(Z);be.value=be.__value="llama-swap";var ve=s(be);ve.value=ve.__value="mission-control";var ye=s(ve);ye.value=ye.__value="system";var xe=s(se,4),_e=l(xe);Bo(xe,M=>c=M,()=>c),D(M=>{var U,le,Je;pn(H,`margin-left:auto;${(U=n(a))!=null&&U.swap_ok?"background:rgba(63,185,80,.12);border-color:rgba(63,185,80,.25);color:#7ee29a":"background:rgba(248,81,73,.12);border-color:rgba(248,81,73,.3);color:#ff9b95"}`),b(re,(le=n(a))!=null&&le.swap_ok?"● erreichbar":"● offline"),b(Y,(((Je=n(a))==null?void 0:Je.swap_url)||"—")+"/v1"),b(V,n(he)?n(he).name+` (${n(he).state})`:"nichts geladen — lädt bei der nächsten Anfrage"),b(Te,M),b(_e,n(o))},[()=>n(W).filter(M=>!M.incomplete).length||"keine"]),C("click",pt,ue),C("click",zt,()=>T("llama-swap","LLM-Engine neustarten?","Die Engine startet neu. Geladene Modelle werden kurz entladen (~5 Sekunden), laden danach automatisch wieder.")),C("click",Ot,()=>T("mission-control","Dashboard neustarten?","Diese Oberfläche trennt sich kurz und verbindet automatisch wieder.")),C("click",It,z),C("click",P,x),C("click",N,$),C("click",ut,ke),C("click",F,te),C("change",Z,y),ar(Z,()=>n(d),M=>h(d,M)),m(e,We),aa()}ya(["click","change"]);var Hd=k('http://192.168.178.151:8080/v1 — nicht den Proxy-Namen.Öffne die Zed-Settings mit Cmd/Strg + , und füge diesen Block in deine bestehende settings.json ein. Falls bereits ein "bosgame"-Eintrag existiert: vorher löschen.
API-Key: Öffne den Agent-Panel → Anbieter bosgame → trag irgendeinen Wert ein (z.B. local).
Datei anlegen oder öffnen:
Windows: %USERPROFILE%\\.config\\opencode\\opencode.json
"provider"-Block einfügen. Falls bereits ein "llama-swap"-Eintrag vorhanden: vorher löschen, sonst erscheinen Modelle doppelt. Danach in OpenCode /models → wählen.
In Cline/Cursor den Provider „OpenAI Compatible" wählen:
local).Settings → Admin Panel → Connections → neue OpenAI-Verbindung:
apt update & upgrade aus. Das kann ein paar Minuten dauern; der Fortschritt erscheint in der Aktivität."}))return;const M=await Hi({title:"sudo-Passwort",body:"Für die System-Updates wird einmalig dein sudo-Passwort gebraucht.",placeholder:"sudo-Passwort",password:!0,confirmLabel:"Installieren"});if(M)try{const U=await Me("/api/os-update",{method:"POST",body:JSON.stringify({password:M})});ee("OS-Update gestartet."),f(U.job_id,"OS-Update")}catch(U){ee(U.message,!0)}}async function te(){if(!await yn({title:"Server wirklich neu starten?",body:"Der ganze Bosgame startet physisch neu. Alles ist für ~1 Minute offline — auch dieses Dashboard.",confirmLabel:"Reboot",danger:!0}))return;const M=await Hi({title:"sudo-Passwort",body:"Für den Reboot wird einmalig dein sudo-Passwort gebraucht.",placeholder:"sudo-Passwort",password:!0,confirmLabel:"Jetzt neustarten",danger:!0});if(M)try{await Me("/api/reboot",{method:"POST",body:JSON.stringify({password:M})}),ee("Reboot ausgelöst — bis gleich.")}catch(U){ee(U.message,!0)}}async function ue(){h(Ae,"prüfe…");try{const M=await Me("/api/integration/test");h(Ae,M.ok?`✓ Engine antwortet — ${M.models.length} Modell(e): ${M.models.join(", ")}`:`✗ keine Verbindung: ${M.error}`,!0),h(K,M.ok,!0)}catch(M){h(Ae,"✗ "+M.message),h(K,!1)}}let Ae=I(""),K=I(!1);const W=O(()=>{var M;return((M=n(a))==null?void 0:M.models)||[]}),pe=["running","ready","loading","starting"],he=O(()=>n(W).find(M=>pe.includes(M.state)));function De(M){if(!M||M.state!=="running")return null;if(typeof M.progress=="number")return Math.min(100,M.progress);const le=((M.log||[]).at(-1)||"").match(/(\d+(?:\.\d+)?)\s*%/);return le?Math.min(100,parseFloat(le[1])):null}var We=Vd(),mt=s(ct(We),2),A=l(mt),H=s(l(A),2),re=l(H),Ve=s(A,4),Q=l(Ve),$e=s(l(Q)),Y=l($e),rt=s(Q,2),L=s(l(rt),2),V=l(L),ie=s(rt,2),ge=s(l(ie),2),Te=l(ge),bt=s(Ve,2),ft=l(bt),xt=s(ft,2);{var Ct=M=>{var U=Rd(),le=l(U);$(()=>{fn(U,`color:${n(K)?"#7ee29a":"#ff9b95"}`),b(le,n(Ae))}),m(M,U)};F(xt,M=>{n(Ae)&&M(Ct)})}var St=s(mt,2),Pt=s(l(St),4),Ot=s(Pt,2),Rt=s(Ot,2),z=s(Rt,2),q=s(z,2),Ce=s(St,2),ut=s(l(Ce),4),N=s(ut,2),Le=s(Ce,2);{var J=M=>{const U=O(()=>n(E)),le=O(()=>n(U).state==="done"),Je=O(()=>n(U).state==="failed"),Qe=O(()=>n(U).state==="canceled"),Qt=O(()=>n(le)||n(Je)||n(Qe)),Zt=O(()=>De(n(U)));var Ut=Wd(),S=l(Ut),G=s(l(S),2);{var Oe=Ke=>{var ht=Bd();C("click",ht,async()=>{await yn({title:n(v)+" abbrechen?",body:"Der laufende Vorgang wird gestoppt.",confirmLabel:"Abbrechen",danger:!0})&&Me(`/api/jobs/${n(U).id}/cancel`,{method:"POST"})}),m(Ke,ht)};F(G,Ke=>{n(Qt)||Ke(Oe)})}var ne=s(G,2),Be=l(ne);{var Ze=Ke=>{var ht=Fd();m(Ke,ht)},et=Ke=>{var ht=Nd();m(Ke,ht)},Se=Ke=>{var ht=qd();m(Ke,ht)},ze=Ke=>{var ht=Kd();m(Ke,ht)};F(Be,Ke=>{n(le)?Ke(Ze):n(Je)?Ke(et,1):n(Qe)?Ke(Se,2):Ke(ze,-1)})}var Ie=s(S,2),It=l(Ie),Bt=s(Ie,2);{var Ht=Ke=>{var ht=Gd(),In=l(ht);$(()=>fn(In,`width:${n(Zt)??""}%`)),m(Ke,ht)};F(Bt,Ke=>{n(Zt)!=null&&!n(Qt)&&Ke(Ht)})}var an=s(Bt,2),bn=l(an);$(Ke=>{b(It,`${n(v)??""}${n(Qt)?n(le)?" — erfolgreich.":n(Qe)?" — abgebrochen.":" — fehlgeschlagen.":" läuft…"}`),b(bn,Ke)},[()=>(n(U).log||[]).join(`
+`)]),m(M,Ut)};F(Le,M=>{n(E)&&M(J)})}var de=s(Le,2),se=l(de),Z=s(l(se),2),be=l(Z);be.value=be.__value="llama-swap";var ve=s(be);ve.value=ve.__value="mission-control";var ye=s(ve);ye.value=ye.__value="system";var xe=s(se,4),_e=l(xe);Bo(xe,M=>c=M,()=>c),$(M=>{var U,le,Je;fn(H,`margin-left:auto;${(U=n(a))!=null&&U.swap_ok?"background:rgba(63,185,80,.12);border-color:rgba(63,185,80,.25);color:#7ee29a":"background:rgba(248,81,73,.12);border-color:rgba(248,81,73,.3);color:#ff9b95"}`),b(re,(le=n(a))!=null&&le.swap_ok?"● erreichbar":"● offline"),b(Y,(((Je=n(a))==null?void 0:Je.swap_url)||"—")+"/v1"),b(V,n(he)?n(he).name+` (${n(he).state})`:"nichts geladen — lädt bei der nächsten Anfrage"),b(Te,M),b(_e,n(o))},[()=>n(W).filter(M=>!M.incomplete).length||"keine"]),C("click",ft,ue),C("click",Pt,()=>T("llama-swap","LLM-Engine neustarten?","Die Engine startet neu. Geladene Modelle werden kurz entladen (~5 Sekunden), laden danach automatisch wieder.")),C("click",Ot,()=>T("mission-control","Dashboard neustarten?","Diese Oberfläche trennt sich kurz und verbindet automatisch wieder.")),C("click",Rt,P),C("click",z,x),C("click",q,D),C("click",ut,ke),C("click",N,te),C("change",Z,y),ar(Z,()=>n(d),M=>h(d,M)),m(e,We),aa()}ya(["click","change"]);var Hd=k('http://192.168.178.151:8080/v1 — nicht den Proxy-Namen.Öffne die Zed-Settings mit Cmd/Strg + , und füge diesen Block in deine bestehende settings.json ein. Falls bereits ein "bosgame"-Eintrag existiert: vorher löschen.
API-Key: Öffne den Agent-Panel → Anbieter bosgame → trag irgendeinen Wert ein (z.B. local).
Datei anlegen oder öffnen:
Windows: %USERPROFILE%\\.config\\opencode\\opencode.json
"provider"-Block einfügen. Falls bereits ein "llama-swap"-Eintrag vorhanden: vorher löschen, sonst erscheinen Modelle doppelt. Danach in OpenCode /models → wählen.
In Cline/Cursor den Provider „OpenAI Compatible" wählen:
local).Settings → Admin Panel → Connections → neue OpenAI-Verbindung:
Nützliche Befehle während der Arbeit:
-/model — Modell mitten im Gespräch wechseln (z.B. auf scout für kurze Fragen)/compact — Kontext komprimieren wenn er voll wird/clear — frischer Start, leerer KontextDie wichtigsten Slash-Commands:
+/model/compact · /summarize/clear · /newBevor OpenCode eine Datei ändert, fragt es nach — mit y bestätigen oder n ablehnen.
-Weitere Infos: opencode.ai/docs
`],["Cline in VS Code verbinden und nutzen",` -Cline ist installiert (VS Code Extension)? So richtest du es ein:
+Multi-Agenten (2026): Du kannst in OpenCode mehrere spezialisierte Agenten definieren
+ — z.B. einen review-Agent und einen coder-Agent.
+ Mit Tab wechselst du zwischen primären Agenten; mit @review rufst du einen Subagenten direkt im Chat auf.
+ Agenten werden als Markdown-Dateien angelegt: eine Datei review.md im
+ ~/.config/opencode/-Ordner erstellt automatisch den Agenten review.
Weitere Infos: opencode.ai/docs · Agenten-Docs
`],["Cline verbinden und nutzen",` +Cline (v3.81, Stand Juni 2026) läuft in: VS Code, JetBrains, Cursor, Windsurf, Zed, Neovim + und als CLI auf macOS/Linux. Verbinden funktioniert überall gleich:
local) — wird nicht geprüft.Plan-Modus vs. Act-Modus:
-Unterschied zu OpenCode: Cline arbeitet direkt in VS Code — du siehst Änderungen sofort im Editor. - OpenCode ist besser für große, autonome Aufgaben; Cline für Aufgaben die du Schritt für Schritt begleiten willst.
-Weitere Infos: cline.bot
`],["OpenWebUI — chatten ohne Vorkenntnisse",` +Memory Bank (empfohlen): Lege eine Datei projectbrief.md im Projektordner an —
+ Cline liest sie zu Beginn jeder Aufgabe automatisch. Sie ist das Fundament: Projektziel, Tech-Stack,
+ wichtigste Regeln. Ergänzend: activeContext.md für den aktuellen Fokus,
+ progress.md für den Stand.
.clinerules: Für größere Projekte kannst du statt einer einzelnen Datei ein ganzes
+ Verzeichnis .clinerules/ anlegen — jede Datei darin gilt als separate Regel.
+ Achtung: Jedes Zeichen in .clinerules verbraucht Kontext — kurze, präzise Regeln schlagen lange Listen.
Ausgaben-Limit (seit April 2026): In Settings → Spending Limits kannst du ein + Tages- oder Monats-Budget setzen — verhindert dass ein laufender Agent unbemerkt viel Token verbraucht.
+Weitere Infos: cline.bot · Memory Bank Docs
`],["OpenWebUI — chatten ohne Vorkenntnisse",`OpenWebUI ist installiert? Verbinden in 3 Schritten:
Was Agenten schlecht können:
Danach OpenCode neu starten — der Agent nutzt das Werkzeug automatisch wenn er es braucht.
-Empfohlene MCPs für den Einstieg:
-Wo MCPs finden? +
Empfohlene MCPs 2026 — nach Anwendungsfall:
+Über 36.000 MCPs sind mittlerweile verfügbar (Stand Juni 2026). + Fang mit filesystem + github an — die decken 80% der täglichen Arbeit ab.
+Wo MCPs finden: mcp.run · smithery.ai · modelcontextprotocol.io/servers - — oder einfach fragen: „Welche MCPs gibt es für [dein Werkzeug]?"
+ — oder fragen: „Welche MCPs gibt es für [dein Werkzeug]?"Merksatz: Fehlt dem Agenten eine Fähigkeit → MCP. Soll er etwas nur besser machen → Skill (nächster Abschnitt).
`],["Skills & Rules — Agenten Gewohnheiten beibringen",`Skills (auch Rules, AGENTS.md oder Instructions genannt) @@ -266,13 +316,24 @@ Bevor du Dateien änderst: erkläre kurz was du vorhast.
Fertige Skills finden:
-Sicherheitshinweis: Ein Snyk-Audit (2026) fand in 13,4% der Community-Skills + kritische Probleme (Prompt Injection, exponierte Secrets). Regel: Skill-Datei kurz lesen bevor du sie einsetzt.
+Oder einfach fragen: „Schreib mir eine AGENTS.md für ein React + TypeScript Projekt mit Tailwind."
`],["Die Persona — Rolle, Beziehung & Onboarding",`Eine Persona hat zwei Dimensionen — beide sind wichtig:
Fertige Personas: skills.sh · cursor.directory
`],["AGENTS.MD & SAVEPOINT.MD — Gedächtnis für den Agenten",`Jedes Mal wenn du einen neuen Chat startest, weiß der Agent nichts über dein Projekt. - Diese zwei Dateien lösen das Problem:
+ Diese zwei Dateien lösen das Problem. +AGENTS.md ist 2026 der plattformübergreifende Standard — nativ gelesen von: + OpenCode, Claude Code, Codex CLI, Cursor, Aider, Devin, GitHub Copilot, Gemini CLI, Windsurf, Amazon Q. + Eine Datei, alle Tools.
+ Größe: 200–500 Zeilen sind der empfohlene Sweet Spot (Stand 2026). + AGENTS.md wird in jeden Kontext geladen — je kürzer, desto mehr Platz bleibt für Code und Gespräch.
SAVEPOINT.MD — Vorlage:
# Savepoint — [Datum / Uhrzeit]
@@ -470,4 +540,4 @@ src/
Strg+Shift+R (Hard Reload). Wenn das nicht hilft:
Tab Server → Mission Control → Neu starten.