codebay 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.mochi/manifest.json +144 -140
  2. package/.mochi/svelte-client/HydratableIsland-wrq79y0w.js +1 -0
  3. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-faqf4hmc.js +2 -0
  4. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-3w16y9jh.js +13 -0
  5. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-5g8meb6a.js +1 -0
  6. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-jsw4edxb.js +23 -0
  7. package/.mochi/svelte-client/chunk-04qv4w6w.js +2 -0
  8. package/.mochi/svelte-client/{chunk-x843txjc.js → chunk-0jtmkpx4.js} +2 -2
  9. package/.mochi/svelte-client/chunk-597d17x0.js +1 -0
  10. package/.mochi/svelte-client/chunk-5p31aqh0.js +2 -0
  11. package/.mochi/svelte-client/chunk-gjjhya9m.js +2 -0
  12. package/.mochi/svelte-client/{chunk-kgn1b2t1.js → chunk-qxwt25hn.js} +1 -1
  13. package/.mochi/svelte-compile/{App-8k1gyxdc.server.js → App-f0q5n4rk.server.js} +3 -2
  14. package/.mochi/svelte-compile/{Avatars-f7c6rp96.server.js → Avatars-p8gfef7x.server.js} +35 -54
  15. package/.mochi/svelte-compile/{Instance-yvps12zg.server.js → Instance-atjwsczx.server.js} +3 -2
  16. package/.mochi/svelte-compile/{Settings-jwg3httb.server.js → Settings-q88xw6h8.server.js} +9 -5
  17. package/.mochi/svelte-compile/{chunk-dqgstte4.js → chunk-btmcxhqy.js} +7 -1
  18. package/.mochi/svelte-css/SettingsView-1nfdwnm16cpp2.css +1 -0
  19. package/README.md +1 -0
  20. package/bin/codebay.ts +42 -1
  21. package/package.json +1 -1
  22. package/src/avatars/name-prompts.ts +30 -0
  23. package/src/components/AvatarEditor.svelte +3 -27
  24. package/src/components/AvatarsView.svelte +3 -1
  25. package/src/components/InstanceView.svelte +4 -2
  26. package/src/components/PortsBox.svelte +3 -2
  27. package/src/components/SettingsView.svelte +11 -1
  28. package/src/lib/config.server.ts +18 -0
  29. package/src/lib/devcontainer.server.ts +10 -2
  30. package/src/lib/links.ts +9 -0
  31. package/src/pages/Avatars.svelte +3 -1
  32. package/src/pages/Settings.svelte +4 -1
  33. package/src/routes.ts +9 -5
  34. package/.mochi/svelte-client/HydratableIsland-ps09gjy2.js +0 -1
  35. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-62w5zwww.js +0 -2
  36. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-jmm501zf.js +0 -13
  37. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-ewk4n2c0.js +0 -1
  38. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-e7e89md0.js +0 -23
  39. package/.mochi/svelte-client/chunk-jx5cekhh.js +0 -2
  40. package/.mochi/svelte-client/chunk-k3my1snp.js +0 -2
  41. package/.mochi/svelte-client/chunk-ry7q5zk5.js +0 -1
  42. package/.mochi/svelte-client/chunk-zjcg8kw5.js +0 -2
  43. package/.mochi/svelte-css/SettingsView-3bbkzsvnrth3v.css +0 -1
@@ -1,2 +0,0 @@
1
- import{a as Ue,b as Ie,c as zt,d as Ze,e as He,g as ti}from"/_mochi/client/chunk-k3my1snp.js";import{h as $e,k as Ut,l as qe}from"/_mochi/client/chunk-x843txjc.js";import{m as Yt}from"/_mochi/client/chunk-ry7q5zk5.js";import{s as Gt,t as ft,u as je,v as Xt,w as Ye}from"/_mochi/client/chunk-jx5cekhh.js";import{x as q}from"/_mochi/client/chunk-zjcg8kw5.js";import{A as l,Aa as gt,B as X,Da as Tt,F as dt,G as ot,Ga as rt,Ia as Pt,Ja as Qe,La as U,M as se,Ma as j,N as Se,Na as Et,O as L,Q as ee,R as h,Ra as Oe,T as n,Ta as ei,U as lt,V as Lt,W as d,X as xt,Y as s,Z as $t,aa as A,ba as he,ca as ue,da as Wt,ea as Ke,fa as t,ia as Xe,ja as Dt,ka as Q,la as Bt,ma as c,oa as st,pa as oe,qa as o,ra as Z,sa as N,ta as Ge,ua as mt,xa as Je}from"/_mochi/client/chunk-kgn1b2t1.js";var Ve=!1;class xe extends Date{#t=h(super.getTime());#e=new Map;#i=he;constructor(...i){super(...i);if(!Ve)this.#a()}#a(){Ve=!0;var i=xe.prototype,e=Date.prototype,a=Object.getOwnPropertyNames(e);for(let r of a){if(r.startsWith("get")||r.startsWith("to")||r==="valueOf")i[r]=function(...v){if(v.length>0)return t(this.#t),e[r].apply(this,v);var p=this.#e.get(r);if(p===void 0){let S=he;ue(this.#i),p=L(()=>{return t(this.#t),e[r].apply(this,v)}),this.#e.set(r,p),ue(S)}return t(p)};if(r.startsWith("set"))i[r]=function(...v){var p=e[r].apply(this,v);return n(this.#t,e.getTime.call(this)),p}}}}var ai=["forEach","isDisjointFrom","isSubsetOf","isSupersetOf"],ri=["difference","intersection","symmetricDifference","union"],Fe=!1;class Mt extends Set{#t=new Map;#e=h(0);#i=h(0);#a=Wt||-1;constructor(i){super();if(i){for(var e of i)super.add(e);this.#i.v=super.size}if(!Fe)this.#n()}#r(i){return Wt===this.#a?h(i):ee(i)}#n(){Fe=!0;var i=Mt.prototype,e=Set.prototype;for(let a of ai)i[a]=function(...r){return t(this.#e),e[a].apply(this,r)};for(let a of ri)i[a]=function(...r){t(this.#e);var v=e[a].apply(this,r);return new Mt(v)}}has(i){var e=super.has(i),a=this.#t,r=a.get(i);if(r===void 0){if(!e)return t(this.#e),!1;r=this.#r(!0),a.set(i,r)}return t(r),e}add(i){if(!super.has(i))super.add(i),n(this.#i,super.size),lt(this.#e);return this}delete(i){var e=super.delete(i),a=this.#t,r=a.get(i);if(r!==void 0)a.delete(i),n(r,!1);if(e)n(this.#i,super.size),lt(this.#e);return e}clear(){if(super.size===0)return;super.clear();var i=this.#t;for(var e of i.values())n(e,!1);i.clear(),n(this.#i,0),lt(this.#e)}keys(){return this.values()}values(){return t(this.#e),super.values()}entries(){return t(this.#e),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return t(this.#i)}}class ke extends Map{#t=new Map;#e=h(0);#i=h(0);#a=Wt||-1;constructor(i){super();if(i){for(var[e,a]of i)super.set(e,a);this.#i.v=super.size}}#r(i){return Wt===this.#a?h(i):ee(i)}has(i){var e=this.#t,a=e.get(i);if(a===void 0)if(super.has(i))a=this.#r(0),e.set(i,a);else return t(this.#e),!1;return t(a),!0}forEach(i,e){this.#n(),super.forEach(i,e)}get(i){var e=this.#t,a=e.get(i);if(a===void 0)if(super.has(i))a=this.#r(0),e.set(i,a);else{t(this.#e);return}return t(a),super.get(i)}set(i,e){var a=this.#t,r=a.get(i),v=super.get(i),p=super.set(i,e),S=this.#e;if(r===void 0)r=this.#r(0),a.set(i,r),n(this.#i,super.size),lt(S);else if(v!==e){lt(r);var C=S.reactions===null?null:new Set(S.reactions),w=C===null||!r.reactions?.every((R)=>C.has(R));if(w)lt(S)}return p}delete(i){var e=this.#t,a=e.get(i),r=super.delete(i);if(a!==void 0)e.delete(i),n(a,-1);if(r)n(this.#i,super.size),lt(this.#e);return r}clear(){if(super.size===0)return;super.clear();var i=this.#t;n(this.#i,0);for(var e of i.values())n(e,-1);lt(this.#e),i.clear()}#n(){t(this.#e);var i=this.#t;if(this.#i.v!==i.size){for(var e of super.keys())if(!i.has(e)){var a=this.#r(0);i.set(e,a)}}for([,a]of this.#t)t(a)}keys(){return t(this.#e),super.keys()}values(){return this.#n(),super.values()}entries(){return this.#n(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return t(this.#i),super.size}}var ie=Symbol("replace");class ae extends URLSearchParams{#t=h(0);#e=Re();#i=!1;#a(){if(!this.#e||this.#i)return;this.#i=!0;let i=this.toString();this.#e.search=i&&`?${i}`,this.#i=!1}[ie](i){if(this.#i)return;if(i.toString()===super.toString())return;this.#i=!0;for(let e of[...super.keys()])super.delete(e);for(let[e,a]of i)super.append(e,a);lt(this.#t),this.#i=!1}append(i,e){super.append(i,e),this.#a(),lt(this.#t)}delete(i,e){var a=super.has(i,e);if(super.delete(i,e),a)this.#a(),lt(this.#t)}get(i){return t(this.#t),super.get(i)}getAll(i){return t(this.#t),super.getAll(i)}has(i,e){return t(this.#t),super.has(i,e)}keys(){return t(this.#t),super.keys()}forEach(i,e){t(this.#t),super.forEach(i,e)}set(i,e){var a=super.getAll(i);super.set(i,e);var r=super.getAll(i);if(a.length!==r.length||a.some((v,p)=>v!==r[p]))this.#a(),lt(this.#t)}sort(){super.sort(),this.#a(),lt(this.#t)}toString(){return t(this.#t),super.toString()}values(){return t(this.#t),super.values()}entries(){return t(this.#t),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return t(this.#t),super.size}}var be=null;function Re(){return be}class _e extends URL{#t=h(super.protocol);#e=h(super.username);#i=h(super.password);#a=h(super.hostname);#r=h(super.port);#n=h(super.pathname);#l=h(super.hash);#d=h(super.search);#o;constructor(i,e){i=new URL(i,e);super(i);be=this,this.#o=new ae(i.searchParams),be=null}get hash(){return t(this.#l)}set hash(i){super.hash=i,n(this.#l,super.hash)}get host(){return t(this.#a),t(this.#r),super.host}set host(i){super.host=i,n(this.#a,super.hostname),n(this.#r,super.port)}get hostname(){return t(this.#a)}set hostname(i){super.hostname=i,n(this.#a,super.hostname)}get href(){return t(this.#t),t(this.#e),t(this.#i),t(this.#a),t(this.#r),t(this.#n),t(this.#l),t(this.#d),super.href}set href(i){super.href=i,n(this.#t,super.protocol),n(this.#e,super.username),n(this.#i,super.password),n(this.#a,super.hostname),n(this.#r,super.port),n(this.#n,super.pathname),n(this.#l,super.hash),n(this.#d,super.search),this.#o[ie](super.searchParams)}get password(){return t(this.#i)}set password(i){super.password=i,n(this.#i,super.password)}get pathname(){return t(this.#n)}set pathname(i){super.pathname=i,n(this.#n,super.pathname)}get port(){return t(this.#r)}set port(i){super.port=i,n(this.#r,super.port)}get protocol(){return t(this.#t)}set protocol(i){super.protocol=i,n(this.#t,super.protocol)}get search(){return t(this.#d)}set search(i){super.search=i,n(this.#d,super.search),this.#o[ie](super.searchParams)}get username(){return t(this.#e)}set username(i){super.username=i,n(this.#e,super.username)}get origin(){return t(this.#t),t(this.#a),t(this.#r),super.origin}get searchParams(){return this.#o}toString(){return this.href}toJSON(){return this.href}}class ye{#t;#e;constructor(i,e){this.#t=i,this.#e=Se(e)}get current(){return this.#e(),this.#t()}}var We=/^[A-Za-z0-9._-]+$/;function li(i){let e=i.trim();if(!e)return null;let a,r,v=e.match(/^[A-Za-z0-9._-]+@([A-Za-z0-9.-]+):(.+)$/);if(v)a=v[1],r=v[2];else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)){let w;try{w=new URL(e)}catch{return null}if(w.protocol!=="http:"&&w.protocol!=="https:"&&w.protocol!=="ssh:")return null;a=w.hostname,r=w.pathname}else{let w=e.match(/^([A-Za-z0-9-]+\.[A-Za-z0-9.-]+)\/(.+)$/);if(!w)return null;a=w[1],r=w[2]}if(!a||!r)return null;let p=r.replace(/\.git$/i,"").split("/").filter(Boolean),[S,C]=p;if(!S||!C||!We.test(S)||!We.test(C))return null;return{host:a,owner:S,repo:C,cloneUrl:`https://${a}/${S}/${C}.git`}}function we(i){return li(i)!==null}var di=new Set(["$$slots","$$events","$$legacy"]);function re(i,e){let a=U(e,di),r=[["path",{d:"M16 14v2.2l1.6 1"}],["path",{d:"M7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2"}],["circle",{cx:"16",cy:"16",r:"6"}]];q(i,j({name:"folder-clock"},()=>a,{get iconNode(){return r}}))}var oi=new Set(["$$slots","$$events","$$legacy"]);function Kt(i,e){let a=U(e,oi),r=[["path",{d:"M15 6a9 9 0 0 0-9 9V3"}],["circle",{cx:"18",cy:"6",r:"3"}],["circle",{cx:"6",cy:"18",r:"3"}]];q(i,j({name:"git-branch"},()=>a,{get iconNode(){return r}}))}var si=new Set(["$$slots","$$events","$$legacy"]);function ne(i,e){let a=U(e,si),r=[["path",{d:"m5 12 7-7 7 7"}],["path",{d:"M12 19V5"}]];q(i,j({name:"arrow-up"},()=>a,{get iconNode(){return r}}))}var fi=new Set(["$$slots","$$events","$$legacy"]);function le(i,e){let a=U(e,fi),r=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"}]];q(i,j({name:"folder"},()=>a,{get iconNode(){return r}}))}var ci=new Set(["$$slots","$$events","$$legacy"]);function Qt(i,e){let a=U(e,ci),r=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}],["path",{d:"M12 9v4"}],["path",{d:"M12 17h.01"}]];q(i,j({name:"triangle-alert"},()=>a,{get iconNode(){return r}}))}var mi=c('<div class="recent-row svelte-oq97c4"><button class="recent-pick svelte-oq97c4"><span class="icon svelte-oq97c4"><!></span> <span class="recent-text svelte-oq97c4"><span class="recent-name svelte-oq97c4"> </span> <span class="recent-path svelte-oq97c4"> </span></span></button> <button class="recent-x svelte-oq97c4" title="Remove from history"><!></button></div>'),$i=c('<button class="recent-toggle svelte-oq97c4"> </button>'),gi=c('<div class="recent svelte-oq97c4"><div class="recent-label svelte-oq97c4">Recent</div> <!> <!></div>'),vi=c('<div class="muted svelte-oq97c4">Loading…</div>'),pi=c('<div class="muted err svelte-oq97c4"> </div>'),hi=c('<div class="row svelte-oq97c4"><button class="nav svelte-oq97c4"><span class="icon svelte-oq97c4"><!></span> <span class="ename svelte-oq97c4">..</span></button></div>'),ui=c('<div class="muted svelte-oq97c4"> </div>'),xi=c('<span class="badge svelte-oq97c4">devcontainer</span>'),bi=c('<div><button class="nav svelte-oq97c4"><span class="icon svelte-oq97c4"><!></span> <span class="ename svelte-oq97c4"> </span> <!></button> <button class="pick-inline svelte-oq97c4">Select</button></div>'),Si=c("<!> <!> <!>",1),wi=c(`<div class="warn svelte-oq97c4"><!> <span>No <code class="svelte-oq97c4">devcontainer.json</code> in this folder — a default image will be used if you select
2
- it.</span></div>`),Ii=c('<div class="overlay svelte-oq97c4" role="button" tabindex="0"><div class="modal panel svelte-oq97c4" role="dialog" aria-modal="true" aria-label="Pick a project folder" tabindex="-1"><div class="head svelte-oq97c4"><h2 class="svelte-oq97c4">Pick a project folder</h2> <button class="x svelte-oq97c4" aria-label="Close"><!></button></div> <div class="clone svelte-oq97c4"><div class="clone-label svelte-oq97c4">Clone a Git repository</div> <div class="clone-row svelte-oq97c4"><input class="clone-url svelte-oq97c4" type="text" placeholder="https://github.com/owner/repo" spellcheck="false" autocomplete="off"/> <input class="clone-branch svelte-oq97c4" type="text" placeholder="branch (optional)" spellcheck="false" autocomplete="off"/> <button class="clone-btn svelte-oq97c4">Clone</button></div></div> <div class="crumbs svelte-oq97c4"><code class="svelte-oq97c4"> </code></div> <!> <div class="search svelte-oq97c4"><input type="text" placeholder="Filter folders…" spellcheck="false" autocomplete="off" class="svelte-oq97c4"/></div> <div class="list svelte-oq97c4"><!></div> <!> <div class="foot svelte-oq97c4"><span class="hint svelte-oq97c4">Browse to a folder, then select this folder or any subfolder.</span> <button class="primary svelte-oq97c4">Select this folder</button></div></div></div>');function Ne(i,e){dt(e,!0);let a=h(null),r=h(!0),v=h(null),p=h(""),S=h(null),C=h(Lt([])),w=h(!1),R=h(""),z=h(""),V=L(()=>we(t(R)));function F(){if(!t(V))return;e.onpick(t(R).trim(),{branch:t(z).trim()||void 0})}let $=L(()=>t(a)?t(a).entries.filter((g)=>g.name.toLowerCase().includes(t(p).trim().toLowerCase())):[]),T=L(()=>t(w)?t(C):t(C).slice(0,5));async function b(){try{let g=await Ie("/api/history");n(C,g.history??[],!0)}catch{}}async function D(g){let K=t(C);n(C,t(C).filter((ut)=>ut.source_path!==g),!0);try{await Ze("/api/history",{sourcePath:g})}catch{n(C,K,!0)}}async function E(g=null){n(r,!0),n(v,null),n(p,"");try{let K=g?`/api/browse?path=${encodeURIComponent(g)}`:"/api/browse";n(a,await Ie(K,void 0,"Could not list folder"),!0)}catch(K){n(v,K.message,!0)}finally{n(r,!1)}await Ke(),t(S)?.focus()}$t(()=>{E(),b()});var k=Ii(),P=d(k),W=d(P),Y=s(d(W),2),O=d(Y);Yt(O,{size:16}),l(Y),l(W);var et=s(W,2),St=s(d(et),2),wt=d(St);Tt(wt);var bt=s(wt,2);Tt(bt);var I=s(bt,2);l(St),l(et);var M=s(et,2),H=d(M),f=d(H,!0);l(H),l(M);var u=s(M,2);{var B=(g)=>{var K=gi(),ut=s(d(K),2);mt(ut,17,()=>t(T),(It)=>It.source_path,(It,ct)=>{var tt=mi(),y=d(tt),at=d(y),Nt=d(at);{var Rt=(Ct)=>{Kt(Ct,{size:16})},_t=L(()=>we(t(ct).source_path)),Ot=(Ct)=>{re(Ct,{size:16})};N(Nt,(Ct)=>{if(t(_t))Ct(Rt);else Ct(Ot,-1)})}l(at);var jt=s(at,2),Vt=d(jt),ve=d(Vt,!0);l(Vt);var qt=s(Vt,2),pe=d(qt,!0);l(qt),l(jt),l(y);var yt=s(y,2),Ft=d(yt);Yt(Ft,{size:14}),l(yt),l(tt),A(()=>{Z(ve,t(ct).name),Z(pe,t(ct).source_path),rt(yt,"aria-label",`Remove ${t(ct).name??""} from history`)}),Q("click",y,()=>e.onpick(t(ct).source_path)),Q("click",yt,(Ct)=>{Ct.stopPropagation(),D(t(ct).source_path)}),o(It,tt)});var Jt=s(ut,2);{var kt=(It)=>{var ct=$i(),tt=d(ct,!0);l(ct),A(()=>Z(tt,t(w)?"Show fewer":`Show all (${t(C).length})`)),Q("click",ct,()=>n(w,!t(w))),o(It,ct)};N(Jt,(It)=>{if(t(C).length>5)It(kt)})}l(K),o(g,K)};N(u,(g)=>{if(t(C).length>0)g(B)})}var J=s(u,2),nt=d(J);Tt(nt),Qe(nt,(g)=>n(S,g),()=>t(S)),l(J);var m=s(J,2),x=d(m);{var it=(g)=>{var K=vi();o(g,K)},vt=(g)=>{var K=pi(),ut=d(K,!0);l(K),A(()=>Z(ut,t(v))),o(g,K)},pt=(g)=>{var K=Si(),ut=xt(K);{var Jt=(tt)=>{var y=hi(),at=d(y),Nt=d(at),Rt=d(Nt);ne(Rt,{size:16}),l(Nt),X(2),l(at),l(y),Q("click",at,()=>E(t(a)?.parent??null)),o(tt,y)};N(ut,(tt)=>{if(t(a).parent&&!t(p))tt(Jt)})}var kt=s(ut,2);{var It=(tt)=>{var y=ui(),at=d(y,!0);l(y),A(()=>Z(at,t(p)?"No folders match.":"No subfolders here.")),o(tt,y)};N(kt,(tt)=>{if(t($).length===0)tt(It)})}var ct=s(kt,2);mt(ct,19,()=>t($),(tt)=>tt.path,(tt,y,at)=>{var Nt=bi();let Rt;var _t=d(Nt),Ot=d(_t),jt=d(Ot);le(jt,{size:16}),l(Ot);var Vt=s(Ot,2),ve=d(Vt,!0);l(Vt);var qt=s(Vt,2);{var pe=(Ft)=>{var Ct=xi();o(Ft,Ct)};N(qt,(Ft)=>{if(t(y).hasDevcontainer)Ft(pe)})}l(_t);var yt=s(_t,2);l(Nt),A((Ft)=>{Rt=gt(Nt,1,"row svelte-oq97c4",null,Rt,Ft),Z(ve,t(y).name)},[()=>({"first-match":t(p).trim()&&t(at)===0})]),Q("click",_t,()=>E(t(y).path)),Q("click",yt,()=>e.onpick(t(y).path)),o(tt,Nt)}),o(g,K)};N(x,(g)=>{if(t(r))g(it);else if(t(v))g(vt,1);else if(t(a))g(pt,2)})}l(m);var _=s(m,2);{var ht=(g)=>{var K=wi(),ut=d(K);Qt(ut,{size:15}),X(2),l(K),o(g,K)};N(_,(g)=>{if(t(a)&&!t(a).hasDevcontainer)g(ht)})}var At=s(_,2),Ht=s(d(At),2);l(At),l(P),l(k),A(()=>{I.disabled=!t(V),Z(f,t(a)?.path??"…"),Ht.disabled=!t(a)}),Q("click",k,function(...g){e.onclose?.apply(this,g)}),Q("keydown",k,(g)=>g.key==="Escape"&&e.onclose()),Q("click",P,(g)=>g.stopPropagation()),Q("keydown",P,()=>{}),Q("click",Y,function(...g){e.onclose?.apply(this,g)}),Q("keydown",wt,(g)=>{if(g.key==="Enter")g.preventDefault(),F()}),Pt(wt,()=>t(R),(g)=>n(R,g)),Q("keydown",bt,(g)=>{if(g.key==="Enter")g.preventDefault(),F()}),Pt(bt,()=>t(z),(g)=>n(z,g)),Q("click",I,F),Q("keydown",nt,(g)=>{let K=t($)[0];if(g.key==="Enter"&&K)g.preventDefault(),E(K.path)}),Pt(nt,()=>t(p),(g)=>n(p,g)),Q("click",Ht,()=>t(a)&&e.onpick(t(a).path)),o(i,k),ot()}Bt(["click","keydown"]);var Ni=c('<div class="branch svelte-jv8lut" title="Branch checked out in the container"><!><span class="svelte-jv8lut"> </span></div>');function Ce(i,e){var a=Ni(),r=d(a);Kt(r,{size:12});var v=s(r),p=d(v,!0);l(v),l(a),A(()=>Z(p,e.branch)),o(i,a)}var Ci=new Set(["$$slots","$$events","$$legacy"]);function de(i,e){let a=U(e,Ci),r=[["path",{d:"M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z"}],["path",{d:"M17 21v-2"}],["path",{d:"M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10"}],["path",{d:"M21 21v-2"}],["path",{d:"M3 5V3"}],["path",{d:"M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z"}],["path",{d:"M7 5V3"}]];q(i,j({name:"cable"},()=>a,{get iconNode(){return r}}))}var Ei=c('<a target="_blank" rel="noopener"> </a>'),Mi=c('<div class="fports svelte-1uaz383" title="Forwarded ports — click to open"><!> <span class="list svelte-1uaz383"></span></div>');function Ee(i,e){dt(e,!0);var a=oe(),r=xt(a);{var v=(p)=>{var S=Mi(),C=d(S);de(C,{size:12});var w=s(C,2);mt(w,21,()=>e.ports,(R)=>R.container_port,(R,z)=>{var V=Ei();let F;var $=d(V,!0);l(V),A(()=>{F=gt(V,1,"fport svelte-1uaz383",null,F,{open:t(z).open}),rt(V,"href",`http://localhost:${t(z).host_port}`),rt(V,"title",`container :${t(z).container_port} → http://localhost:${t(z).host_port} ${t(z).open?"(open)":"(not published yet)"}`),Z($,t(z).container_port)}),o(R,V)}),l(w),l(S),o(p,S)};N(r,(p)=>{if(e.ports.length)p(v)})}o(i,a),ot()}var Li=c('<input class="name-edit svelte-13338y7"/>'),Ti=c('<button class="name svelte-13338y7" title="Click to rename"> </button>'),Pi=c("<span></span>"),Bi=c('<div class="card-error svelte-13338y7"> </div>'),Di=c("<!> <!>",1),zi=c('<li class="card panel svelte-13338y7"><div class="card-head svelte-13338y7"><!> <!> <!> <!></div> <div class="path svelte-13338y7"> </div> <!> <!> <!> <div class="actions svelte-13338y7"><!> <!> <!> <!></div></li>');function Me(i,e){dt(e,!0);let a=Et(e,"editingName",15),r=L(()=>e.instance.status==="running"||e.instance.status==="stopped"||e.instance.status==="error"&&!!e.instance.container_id);var v=zi(),p=d(v),S=d(p);Gt(S,{get id(){return e.instance.id},get name(){return e.instance.name},interactive:!0});var C=s(S,2);{var w=(f)=>{var u=Li();Tt(u),se(u,!0),Dt("focus",u,(B)=>B.currentTarget.select()),Dt("blur",u,function(...B){e.oncommitrename?.apply(this,B)}),Q("keydown",u,(B)=>{if(B.key==="Enter")B.currentTarget.blur();else if(B.key==="Escape")e.oncancelrename()}),Pt(u,a),o(f,u)},R=(f)=>{var u=Ti(),B=d(u,!0);l(u),A(()=>Z(B,e.instance.name)),Q("click",u,function(...J){e.onstartrename?.apply(this,J)}),o(f,u)};N(C,(f)=>{if(e.editing)f(w);else f(R,-1)})}var z=s(C,2);{var V=(f)=>{var u=Pi();let B;A(()=>{B=gt(u,1,"attn svelte-13338y7",null,B,{"attn-done":e.instance.attention==="done","attn-waiting":e.instance.attention==="waiting"}),rt(u,"title",e.instance.attention==="waiting"?"Claude is waiting for input":"Claude finished"),rt(u,"aria-label",e.instance.attention==="waiting"?"Claude is waiting for input":"Claude finished")}),o(f,u)};N(z,(f)=>{if(e.instance.attention)f(V)})}var F=s(z,2);He(F,{get status(){return e.instance.status}}),l(p);var $=s(p,2),T=d($,!0);l($);var b=s($,2);{var D=(f)=>{Ee(f,{get ports(){return e.instance.forwarded_ports}})};N(b,(f)=>{if(e.instance.status==="running")f(D)})}var E=s(b,2);{var k=(f)=>{Ce(f,{get branch(){return e.instance.git_branch}})};N(E,(f)=>{if(e.instance.git_branch)f(k)})}var P=s(E,2);{var W=(f)=>{var u=Bi(),B=d(u,!0);l(u),A(()=>Z(B,e.instance.error)),o(f,u)};N(P,(f)=>{if(e.instance.status==="error"&&e.instance.error)f(W)})}var Y=s(P,2),O=d(Y);{var et=(f)=>{var u=Di(),B=xt(u);{let nt=L(()=>`/ide/${e.instance.id}`);ft(B,{variant:"primary",size:"sm",get href(){return t(nt)},children:(m,x)=>{X();var it=st("Open IDE");o(m,it)},$$slots:{default:!0}})}var J=s(B,2);ft(J,{size:"sm",onclick:()=>e.onact("stop"),children:(nt,m)=>{X();var x=st("Stop");o(nt,x)},$$slots:{default:!0}}),o(f,u)},St=(f)=>{ft(f,{size:"sm",onclick:()=>e.onact("start"),children:(u,B)=>{X();var J=st("Start");o(u,J)},$$slots:{default:!0}})},wt=(f)=>{{let u=L(()=>`/instances/${e.instance.id}`);ft(f,{size:"sm",get href(){return t(u)},target:"_blank",rel:"noopener noreferrer",children:(B,J)=>{X();var nt=st("View logs");o(B,nt)},$$slots:{default:!0}})}};N(O,(f)=>{if(e.instance.status==="running")f(et);else if(e.instance.status==="stopped"||e.instance.status==="error"&&e.instance.container_id)f(St,1);else if(e.instance.status==="creating")f(wt,2)})}var bt=s(O,2);{var I=(f)=>{ft(f,{size:"sm",title:"Recreate the container and re-run setup (credentials, hooks, port forwards)",onclick:()=>e.onact("rebuild"),children:(u,B)=>{X();var J=st("Rebuild");o(u,J)},$$slots:{default:!0}})};N(bt,(f)=>{if(t(r))f(I)})}var M=s(bt,2);{let f=L(()=>`/instances/${e.instance.id}`);ft(M,{size:"sm",ghost:!0,get href(){return t(f)},target:"_blank",rel:"noopener noreferrer",children:(u,B)=>{X();var J=st("Details");o(u,J)},$$slots:{default:!0}})}var H=s(M,2);ft(H,{variant:"danger",size:"sm",onclick:()=>e.onact("delete"),children:(f,u)=>{X();var B=st("Delete");o(f,B)},$$slots:{default:!0}}),l(Y),l(v),A(()=>{rt($,"title",e.instance.source_path),Z(T,e.instance.source_path)}),o(i,v),ot()}Bt(["keydown","click"]);var Ai=new Set(["$$slots","$$events","$$legacy"]);function fe(i,e){let a=U(e,Ai),r=[["path",{d:"M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"}],["path",{d:"M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z"}],["path",{d:"M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z"}],["path",{d:"M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"}]];q(i,j({name:"component"},()=>a,{get iconNode(){return r}}))}var Vi=new Set(["$$slots","$$events","$$legacy"]);function ce(i,e){let a=U(e,Vi),r=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z"}],["path",{d:"M12 22V12"}],["polyline",{points:"3.29 7 12 12 20.71 7"}],["path",{d:"m7.5 4.27 9 5.15"}]];q(i,j({name:"package"},()=>a,{get iconNode(){return r}}))}var Fi=c('<a class="brand svelte-94cd8h" href="/"><span class="logo svelte-94cd8h"><!></span><span>Codebay</span><span class="tagline svelte-94cd8h">devcontainer manager</span></a>');function Le(i){var e=Fi(),a=d(e),r=d(a);ce(r,{size:22}),l(a),X(2),l(e),o(i,e)}var ki=new Set(["$$slots","$$events","$$legacy"]);function Zt(i,e){let a=U(e,ki),r=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"}],["circle",{cx:"12",cy:"12",r:"3"}]];q(i,j({name:"settings"},()=>a,{get iconNode(){return r}}))}var Ri=c('<a class="cog svelte-1e745g8" href="/settings" aria-label="Settings" title="Settings"><!></a>');function Te(i){var e=Ri(),a=d(e);Zt(a,{size:16}),l(e),o(i,e)}var _i=new Set(["$$slots","$$events","$$legacy"]);function me(i,e){let a=U(e,_i),r=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}]];q(i,j({name:"link"},()=>a,{get iconNode(){return r}}))}var yi=c('<button type="button" class="cred-row svelte-vongf9" role="menuitem"><span></span> <span class="cred-label"> </span> <span class="cred-state svelte-vongf9"> </span></button>'),Wi=c('<div class="cred-dropdown panel svelte-vongf9" role="menu"></div>'),Ki=c('<div class="cred-menu svelte-vongf9"><button aria-haspopup="menu" aria-label="Credentials" title="Credentials"><!></button> <!></div>');function Pe(i,e){dt(e,!0);let a=h(!1),r=L(()=>e.auth.filter(($)=>$.available).length),v=L(()=>t(r)===e.auth.length?"ok":t(r)===0?"error":"warn"),p={ok:me,warn:Qt,error:Yt},S=L(()=>p[t(v)]);function C($){if($.available)Xt.success(`${$.label} credentials come from ${$.source}.`);else{let T=$.hint?` — ${$.hint}`:"";Xt.error(`No ${$.label} credentials found${T}.`)}}$t(()=>{if(!t(a))return;let $=(b)=>{if(!b.target?.closest(".cred-menu"))n(a,!1)},T=(b)=>{if(b.key==="Escape")n(a,!1)};return window.addEventListener("click",$),window.addEventListener("keydown",T),()=>{window.removeEventListener("click",$),window.removeEventListener("keydown",T)}});var w=Ki(),R=d(w),z=d(R);Je(z,()=>t(S),($,T)=>{T($,{size:16})}),l(R);var V=s(R,2);{var F=($)=>{var T=Wi();mt(T,21,()=>e.auth,(b)=>b.id,(b,D)=>{var E=yi(),k=d(E),P=s(k,2),W=d(P,!0);l(P);var Y=s(P,2),O=d(Y,!0);l(Y),l(E),A(()=>{rt(E,"title",t(D).available?`Credentials from ${t(D).source}, copied into each new instance.`:`No credentials found on this computer${t(D).hint?` — ${t(D).hint}`:""}.`),gt(k,1,`dot ${t(D).available?"on":"off"}`,"svelte-vongf9"),Z(W,t(D).label),Z(O,t(D).available?"Authorized":"Not found")}),Q("click",E,()=>C(t(D))),o(b,E)}),l(T),o($,T)};N(V,($)=>{if(t(a))$(F)})}l(w),A(()=>{gt(R,1,`cred ${t(v)??""}`,"svelte-vongf9"),rt(R,"aria-expanded",t(a))}),Q("click",R,()=>n(a,!t(a))),o(i,w),ot()}Bt(["click"]);var Qi=c('<header class="topbar svelte-1h259us"><!> <div class="topbar-actions svelte-1h259us"><!> <!> <!> <!> <!></div></header>');function Be(i,e){let a=Et(e,"canDelete",3,!1),r=Et(e,"ready",3,!0),v=Et(e,"creating",3,!1);var p=Qi(),S=d(p);Le(S,{});var C=s(S,2),w=d(C);{var R=(T)=>{ft(T,{variant:"default",size:"sm",get icon(){return fe},href:"/debug",children:(b,D)=>{X();var E=st("Debug");o(b,E)},$$slots:{default:!0}})};N(w,(T)=>{if(Oe)T(R)})}var z=s(w,2);Te(z,{});var V=s(z,2);Pe(V,{get auth(){return e.auth}});var F=s(V,2);{let T=L(()=>!a());ft(F,{variant:"danger",size:"sm",get onclick(){return e.onDeleteAll},get disabled(){return t(T)},children:(b,D)=>{X();var E=st("Delete all");o(b,E)},$$slots:{default:!0}})}var $=s(F,2);{let T=L(()=>v()?void 0:$e),b=L(()=>!r()||v());ft($,{variant:"primary",get icon(){return t(T)},get onclick(){return e.onNew},get disabled(){return t(b)},children:(D,E)=>{X();var k=st();A(()=>Z(k,v()?"Creating…":"New instance")),o(D,k)},$$slots:{default:!0}})}l(C),l(p),o(i,p)}var Zi=c("<span>Docker daemon is not reachable.</span>"),Hi=c("<span>The devcontainer CLI is not available.</span>"),Ji=c('<div class="banner error svelte-146pixd"><strong>Setup needed.</strong> <!> <!></div>'),Oi=c('<div class="banner error svelte-146pixd"><strong>Error.</strong> <span> </span></div>'),Yi=c('<div class="empty svelte-146pixd"><p class="empty-sub svelte-146pixd">Loading…</p></div>'),Gi=c('<div class="empty svelte-146pixd"><p class="empty-title svelte-146pixd">No instances yet</p> <p class="empty-sub svelte-146pixd">Pick a project folder to spin up an isolated devcontainer.</p> <!></div>'),Xi=c('<ul class="grid svelte-146pixd"></ul>'),Ui=c('<!> <main class="stage svelte-146pixd"><!> <!> <!></main> <!>',1);function De(i,e){dt(e,!0);let a=h(!1),r=h(!1),v=h(null),p=h(null),S=h(""),C=L(()=>e.preflight.docker&&e.preflight.cli);async function w(I,M){n(a,!1),n(r,!0),n(v,null);try{await zt("/api/instances",{sourcePath:I,branch:M?.branch},"Failed to create instance")}catch(H){n(v,H.message,!0)}finally{n(r,!1)}}async function R(I,M){if(n(v,null),M==="delete"&&!confirm("Delete this instance and its copied files?"))return;if(M==="rebuild"&&!confirm("Recreate this container and re-run setup? The workspace is kept."))return;try{await zt(`/api/instances/${I}/${M}`,void 0,`Failed to ${M}`)}catch(H){n(v,H.message,!0)}}function z(I){n(p,I.id,!0),n(S,I.name,!0)}function V(){n(p,null),n(S,"")}async function F(I){let M=t(S).trim(),H=e.instances.find((f)=>f.id===I)?.name;if(!M||M===H){V();return}V(),n(v,null);try{await zt(`/api/instances/${I}/rename`,{name:M},"Failed to rename")}catch(f){n(v,f.message,!0)}}async function $(){if(n(v,null),!confirm(`Delete all ${e.instances.length} instances and their copied files?`))return;try{await zt("/api/instances/delete-all",void 0,"Failed to delete all")}catch(I){n(v,I.message,!0)}}var T=Ui(),b=xt(T);{let I=L(()=>e.instances.length>0);Be(b,{get auth(){return e.preflight.auth},get canDelete(){return t(I)},get ready(){return t(C)},get creating(){return t(r)},onNew:()=>n(a,!0),onDeleteAll:$})}var D=s(b,2),E=d(D);{var k=(I)=>{var M=Ji(),H=s(d(M),2);{var f=(J)=>{var nt=Zi();o(J,nt)};N(H,(J)=>{if(!e.preflight.docker)J(f)})}var u=s(H,2);{var B=(J)=>{var nt=Hi();o(J,nt)};N(u,(J)=>{if(!e.preflight.cli)J(B)})}l(M),o(I,M)};N(E,(I)=>{if(!t(C))I(k)})}var P=s(E,2);{var W=(I)=>{var M=Oi(),H=s(d(M),2),f=d(H,!0);l(H),l(M),A(()=>Z(f,t(v))),o(I,M)};N(P,(I)=>{if(t(v))I(W)})}var Y=s(P,2);{var O=(I)=>{var M=Yi();o(I,M)},et=(I)=>{var M=Gi(),H=s(d(M),4);{let f=L(()=>!t(C));ft(H,{variant:"primary",get icon(){return $e},onclick:()=>n(a,!0),get disabled(){return t(f)},children:(u,B)=>{X();var J=st("New instance");o(u,J)},$$slots:{default:!0}})}l(M),o(I,M)},St=(I)=>{var M=Xi();mt(M,21,()=>e.instances,(H)=>H.id,(H,f)=>{{let u=L(()=>t(p)===t(f).id);Me(H,{get instance(){return t(f)},get editing(){return t(u)},onact:(B)=>R(t(f).id,B),onstartrename:()=>z(t(f)),oncommitrename:()=>F(t(f).id),oncancelrename:V,get editingName(){return t(S)},set editingName(B){n(S,B,!0)}})}}),l(M),o(I,M)};N(Y,(I)=>{if(!e.loaded)I(O);else if(e.instances.length===0)I(et,1);else I(St,-1)})}l(D);var wt=s(D,2);{var bt=(I)=>{Ne(I,{onpick:w,onclose:()=>n(a,!1)})};N(wt,(I)=>{if(t(a))I(bt)})}o(i,T),ot()}var ji=c('<div class="tab-label editing svelte-r39acv"><!> <input class="tab-name-edit svelte-r39acv"/></div>'),qi=c('<button type="button" class="tab-label svelte-r39acv"><!> <span class="tab-name svelte-r39acv"> </span></button>'),ta=c("<div><!></div>"),ea=c('<nav class="tabs svelte-r39acv"></nav>'),ia=c('<!> <a class="cog svelte-r39acv" href="/settings" title="Settings" aria-label="Settings"><!></a>',1);function ze(i,e){dt(e,!0);let a=Et(e,"editingName",15);Ye(i,{children:(r,v)=>{var p=ia(),S=xt(p);{var C=(z)=>{var V=ea();mt(V,21,()=>e.running,(F)=>F.id,(F,$)=>{var T=ta();let b;var D=d(T);{var E=(P)=>{var W=ji(),Y=d(W);Gt(Y,{get id(){return t($).id},get name(){return t($).name},scale:4});var O=s(Y,2);Tt(O),se(O,!0),l(W),Dt("focus",O,(et)=>et.currentTarget.select()),Dt("blur",O,()=>e.oncommitrename(t($).id)),Q("keydown",O,(et)=>{if(et.key==="Enter")et.currentTarget.blur();else if(et.key==="Escape")e.oncancelrename()}),Pt(O,a),o(P,W)},k=(P)=>{var W=qi(),Y=d(W);Gt(Y,{get id(){return t($).id},get name(){return t($).name},scale:4});var O=s(Y,2),et=d(O,!0);l(O),l(W),A(()=>{rt(W,"title",t($).name),Z(et,t($).name)}),Q("click",W,()=>e.onselect(t($).id)),Q("dblclick",W,()=>e.onstartrename(t($))),o(P,W)};N(D,(P)=>{if(e.editingId===t($).id)P(E);else P(k,-1)})}l(T),A(()=>b=gt(T,1,"tab svelte-r39acv",null,b,{active:t($).id===e.active,"attn-done":t($).id!==e.active&&e.attention[t($).id]==="done","attn-waiting":t($).id!==e.active&&e.attention[t($).id]==="waiting"})),o(F,T)}),l(V),o(z,V)};N(S,(z)=>{if(e.running.length>0)z(C)})}var w=s(S,2),R=d(w);Zt(R,{size:18}),l(w),o(r,p)},$$slots:{default:!0}}),ot()}Bt(["keydown","click","dblclick"]);var aa=c('<div class="row svelte-w5e143"> </div>'),ra=c('<div class="stalled svelte-w5e143"><p class="svelte-w5e143">Waiting for code-server to answer inside the container.</p> <!></div>'),na=c('<div class="loader svelte-w5e143"><div class="grid svelte-w5e143" aria-hidden="true"></div> <div class="label svelte-w5e143">Loading editor<span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span></div> <!></div>');function ge(i,e){dt(e,!0);let a=Et(e,"speed",3,1),r=h(!1);$t(()=>{if(e.stalledAfterMs===void 0)return;let b=setTimeout(()=>n(r,!0),e.stalledAfterMs);return()=>clearTimeout(b)});let v=3,p=22,S=140,C=7,w=L(()=>Math.max(20,S/a())),z=h(Lt((()=>Array.from({length:v},()=>Array.from({length:p},()=>Math.random()<0.5?0:1)))()));$t(()=>{if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let b=setInterval(()=>{let D=t(z).map((E)=>E.slice());for(let E=0;E<C;E++){let k=D[Math.floor(Math.random()*v)],P=Math.floor(Math.random()*p);k[P]=k[P]?0:1}n(z,D,!0)},t(w));return()=>clearInterval(b)});var V=na(),F=d(V);mt(F,21,()=>t(z),Ge,(b,D)=>{var E=aa(),k=d(E,!0);l(E),A((P)=>Z(k,P),[()=>t(D).join("")]),o(b,E)}),l(F);var $=s(F,4);{var T=(b)=>{var D=ra(),E=s(d(D),2);{var k=(P)=>{ft(P,{size:"sm",get onclick(){return e.onoverride},children:(W,Y)=>{X();var O=st("Open anyway");o(W,O)},$$slots:{default:!0}})};N(E,(P)=>{if(e.onoverride)P(k)})}l(D),o(b,D)};N($,(b)=>{if(t(r))b(T)})}l(V),o(i,V),ot()}var la=c('<iframe class="svelte-1duc7gd"></iframe>'),da=c("<div><!> <!></div>"),oa=c('<div class="empty svelte-1duc7gd">No running instances.</div>'),sa=c("<div><!> <div><!> <!></div></div> <!>",1);function Ae(i,e){dt(e,!0);let a=h(Lt(e.snapshot)),r=h(Lt(e.preflight)),v=h(e.snapshot.length>0),p=L(()=>t(a).filter((m)=>m.status==="running")),S=h(Lt(Object.fromEntries(e.snapshot.map((m)=>[m.id,m.attention])))),C=h(null),w=h("");function R(m){n(C,m.id,!0),n(w,m.name,!0)}function z(){n(C,null),n(w,"")}async function V(m){let x=t(w).trim(),it=t(a).find((vt)=>vt.id===m)?.name;if(!x||x===it){z();return}z();try{await zt(`/api/instances/${m}/rename`,{name:x},"Failed to rename")}catch(vt){Xt.error(vt.message)}}let F=h(Lt(e.initialPath)),$=L(()=>t(F).startsWith("/ide")),T=L(()=>t(F).startsWith("/ide/")?t(F).slice(5):""),b=L(()=>t($)?t(p).some((m)=>m.id===t(T))?t(T):t(p)[0]?.id??"":"");function D(m){if(m===t(F))return;history.pushState({},"",m),n(F,m,!0)}$t(()=>{function m(x){if(x.defaultPrevented||x.button!==0||x.metaKey||x.ctrlKey||x.shiftKey||x.altKey)return;let it=x.target?.closest?.("a");if(!it)return;let vt=it.getAttribute("href");if(!vt||it.target==="_blank"||it.hasAttribute("download"))return;let pt=new URL(vt,location.href);if(pt.origin!==location.origin)return;if(pt.pathname==="/"||pt.pathname.startsWith("/ide/"))x.preventDefault(),D(pt.pathname)}return document.addEventListener("click",m),()=>document.removeEventListener("click",m)}),$t(()=>{function m(){n(F,location.pathname,!0)}return window.addEventListener("popstate",m),()=>window.removeEventListener("popstate",m)});let E=new Mt;$t(()=>{if(t(b))E.add(t(b))});let k=new Mt,P=new Mt,W=new Mt,Y=(m)=>P.has(m)||W.has(m),O=1e4;$t(()=>{let m=t(p).find((x)=>x.id===t(b));document.title=t($)&&m?`${m.name} — Codebay`:"Codebay"}),$t(()=>{return window.addEventListener("pointerdown",Ut),window.addEventListener("keydown",Ut),()=>{window.removeEventListener("pointerdown",Ut),window.removeEventListener("keydown",Ut)}}),$t(()=>{let m=!1;return ti((x)=>{if(x.type==="preflight"){n(r,{...t(r),docker:x.data.docker,cli:x.data.cli},!0);return}if(x.type==="health"){let _=t(a).find((ht)=>ht.id===x.data.id);if(x.data.health.codeServerAccessible&&_?.status==="running")P.add(x.data.id);return}if(x.type!=="instances")return;let it=x.data,vt=new Set(it.filter((_)=>_.status==="running").map((_)=>_.id));for(let _ of[...P])if(!vt.has(_))P.delete(_);for(let _ of[...W])if(!vt.has(_))W.delete(_);for(let _ of[...k])if(!vt.has(_))k.delete(_);let pt={};for(let _ of it)pt[_.id]=_.attention;if(m)for(let _ in pt){let ht=pt[_];if(ht&&ht!==t(S)[_])if(_===t(b))console.log(`[chime] attention id=${_} state=${ht} — skipped (tab is active/focused)`);else console.log(`[chime] attention id=${_} state=${ht} → playChime`),qe(ht)}else console.log("[chime] first frame after (re)connect — baselining, no chimes");m=!0,n(a,it,!0),n(S,pt,!0),n(v,!0)},()=>{m=!1})}),$t(()=>{if(!t(b)||!t(S)[t(b)])return;let m=()=>{if(document.visibilityState==="visible")zt(`/api/instances/${t(b)}/attention/clear`).catch(()=>{})};return m(),document.addEventListener("visibilitychange",m),()=>document.removeEventListener("visibilitychange",m)});var et=sa(),St=xt(et);let wt;var bt=d(St);{var I=(m)=>{ze(m,{get running(){return t(p)},get active(){return t(b)},get attention(){return t(S)},get editingId(){return t(C)},onselect:(x)=>D(`/ide/${x}`),onstartrename:R,oncommitrename:V,oncancelrename:z,get editingName(){return t(w)},set editingName(x){n(w,x,!0)}})},M=(m)=>{De(m,{get preflight(){return t(r)},get instances(){return t(a)},get loaded(){return t(v)}})};N(bt,(m)=>{if(t($))m(I);else m(M,-1)})}var H=s(bt,2);let f;var u=d(H);mt(u,17,()=>t(p),(m)=>m.id,(m,x)=>{var it=oe(),vt=xt(it);{var pt=(ht)=>{var At=da();let Ht;var g=d(At);{var K=(y)=>{var at=la();A((Nt)=>{rt(at,"src",Nt),rt(at,"title",t(x).name)},[()=>Ue(t(x))]),Dt("load",at,()=>k.add(t(x).id)),Xe(at),o(y,at)},ut=L(()=>Y(t(x).id));N(g,(y)=>{if(t(ut))y(K)})}var Jt=s(g,2);{var kt=(y)=>{ge(y,{stalledAfterMs:O,onoverride:()=>W.add(t(x).id)})},It=L(()=>!Y(t(x).id)),ct=(y)=>{ge(y,{})},tt=L(()=>!k.has(t(x).id));N(Jt,(y)=>{if(t(It))y(kt);else if(t(tt))y(ct,1)})}l(At),A(()=>Ht=gt(At,1,"pane svelte-1duc7gd",null,Ht,{active:t(x).id===t(b)})),o(ht,At)},_=L(()=>E.has(t(x).id));N(vt,(ht)=>{if(t(_))ht(pt)})}o(m,it)});var B=s(u,2);{var J=(m)=>{var x=oa();o(m,x)};N(B,(m)=>{if(t($)&&t(p).length===0)m(J)})}l(H),l(St);var nt=s(St,2);je(nt,{toastOptions:{style:"border:1px solid var(--ink); background:var(--bg-card); color:var(--ink); box-shadow:4px 4px 0 var(--ink); font-family:var(--font-mono); font-size:13px;"}}),A(()=>{wt=gt(St,1,"app svelte-1duc7gd",null,wt,{ide:t($)}),f=gt(H,1,"panes svelte-1duc7gd",null,f,{hidden:!t($)})}),o(i,et),ot()}ei("AppShell_2rtnxn6pgp2rh",Ae);
@@ -1,13 +0,0 @@
1
- import{n as G,o as $,p as b,q as u,r as de,s as N,t as M,u as Ye,v as he,w as Ze}from"/_mochi/client/chunk-jx5cekhh.js";import{x as g}from"/_mochi/client/chunk-zjcg8kw5.js";import{A as f,Aa as Ee,B as X,Ba as je,Da as ze,F as R,G as _,Ga as De,Ia as Je,Ja as Ke,Ka as Xe,La as I,Ma as k,O as H,R as w,T as Y,Ta as Ge,V as Te,W as i,X as Qe,Y as p,aa as T,fa as s,ja as le,ka as P,la as Ce,ma as q,oa as Z,qa as n,ra as ne,ta as me,ua as V}from"/_mochi/client/chunk-kgn1b2t1.js";var Ae=new Set(["$$slots","$$events","$$legacy"]);function B(t,l){let o=I(l,Ae),m=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"}]];g(t,k({name:"copy"},()=>o,{get iconNode(){return m}}))}var Be=new Set(["$$slots","$$events","$$legacy"]);function W(t,l){let o=I(l,Be),m=[["path",{d:"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21"}],["path",{d:"m5.082 11.09 8.828 8.828"}]];g(t,k({name:"eraser"},()=>o,{get iconNode(){return m}}))}var We=new Set(["$$slots","$$events","$$legacy"]);function L(t,l){let o=I(l,We),m=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z"}]];g(t,k({name:"contrast"},()=>o,{get iconNode(){return m}}))}var Le=new Set(["$$slots","$$events","$$legacy"]);function F(t,l){let o=I(l,Le),m=[["path",{d:"M15 3h6v6"}],["path",{d:"M10 14 21 3"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}]];g(t,k({name:"external-link"},()=>o,{get iconNode(){return m}}))}var Fe="https://github.com/khromov/codebay";function Se(t){return t.trim().toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"")}function be(t){let l=[];for(let o=0;o<b;o++){let m="";for(let h=0;h<u;h++)m+=t[o*u+h]===$?"#":".";l.push(m)}return l}function ie(t){let l=t.pixels.map((o)=>` '${o}'`).join(`,
2
- `);return`import type { AvatarArt } from './types.ts';
3
-
4
- const art: AvatarArt = {
5
- name: '${t.name}',
6
- pixels: [
7
- ${l}
8
- ]
9
- };
10
-
11
- export default art;
12
- `}function He(t){let l=`Avatar contribution: ${t.name}`,o=["Hi! I drew this avatar in the editor easter egg and I'd love to see it in the official set.","","```",...t.pixels,"```","",`Ready-to-paste module (\`src/avatars/${t.name}.ts\`, plus a line in \`src/avatars/index.ts\`):`,"","```ts",ie(t).trimEnd(),"```","","_It should satisfy `src/avatars/avatars.test.ts`: exactly 8×8, only `#`/`.` pixels, unique name._"].join(`
13
- `),m=new URLSearchParams({title:l,body:o});return`${Fe}/issues/new?${m}`}var we=q('<span class="ring-cell svelte-qu6vp4" aria-hidden="true"></span>'),Pe=q("<span></span>"),Re=q('<section class="editor svelte-qu6vp4"><div class="head svelte-qu6vp4"><h2 class="svelte-qu6vp4">Draw your avatar</h2></div> <div class="body svelte-qu6vp4"><div class="grid-frame svelte-qu6vp4"><!> <div class="grid svelte-qu6vp4" role="img" aria-label="8 by 8 pixel drawing canvas"></div></div> <div class="side svelte-qu6vp4"><div class="preview"><div class="preview-label svelte-qu6vp4">Preview</div> <div class="preview-row svelte-qu6vp4"><!> <!></div></div> <label class="name-field svelte-qu6vp4"><span class="preview-label svelte-qu6vp4">Name</span> <input type="text" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" maxlength="24" class="svelte-qu6vp4"/></label> <div class="tools svelte-qu6vp4"><!> <!></div></div></div> <div class="foot svelte-qu6vp4"><span class="hint svelte-qu6vp4">Draw something, then open an issue to get it into the official set.</span> <div class="actions svelte-qu6vp4"><!> <!></div></div></section>');function ce(t,l){R(l,!0);let o=["dragon","unicorn","cactus","comet","pretzel","volcano","narwhal","waffle","satellite","pineapple","kraken","yeti","moose","lighthouse","toaster","hedgehog","walrus","pumpkin","jellyfish","tornado","igloo","boomerang"],m=o[Math.floor(Math.random()*o.length)],h=w(Te(Array(b*u).fill(G))),C=w(""),J=H(()=>Se(s(C))),a=H(()=>({name:s(J)||"my-avatar",pixels:be(s(h))})),E=H(()=>s(J).length>0&&s(h).some((e)=>e===$)),y=w(null),K=!1,j=$,O=Array.from({length:100},(e,r)=>({r:Math.floor(r/10),c:r%10})).filter(({r:e,c:r})=>e===0||e===9||r===0||r===9);function x(e){if(!s(y))return null;let r=s(y).getBoundingClientRect(),c=Math.floor((e.clientX-r.left)/r.width*u),d=Math.floor((e.clientY-r.top)/r.height*b);if(d<0||d>=b||c<0||c>=u)return null;return d*u+c}function z(e){let r=x(e);if(r==null)return;e.currentTarget.setPointerCapture?.(e.pointerId),K=!0,j=s(h)[r]===$?G:$,s(h)[r]=j}function S(e){if(!K)return;let r=x(e);if(r!=null)s(h)[r]=j}function D(){K=!1}function U(){Y(h,Array(b*u).fill(G),!0)}function ee(){Y(h,s(h).map((e)=>e===$?G:$),!0)}async function Me(){try{await navigator.clipboard.writeText(ie(s(a))),he("Copied — paste it into the GitHub issue")}catch(e){he.error(`Copy failed: ${e.message}`)}}var se=Re(),re=p(i(se),2),te=i(re),ae=i(te);V(ae,17,()=>O,me,(e,r)=>{let c=()=>s(r).r,d=()=>s(r).c;var A=we();T(()=>je(A,`grid-row:${c()+1};grid-column:${d()+1}`)),n(e,A)});var v=p(ae,2);V(v,21,()=>s(h),me,(e,r)=>{var c=Pe();let d;T(()=>d=Ee(c,1,"cell svelte-qu6vp4",null,d,{on:s(r)===$})),n(e,c)}),f(v),Ke(v,(e)=>Y(y,e),()=>s(y)),f(te);var ue=p(te,2),oe=i(ue),xe=p(i(oe),2),ve=i(xe);N(ve,{get art(){return s(a)},get name(){return s(a).name},scale:6});var Ve=p(ve,2);N(Ve,{get art(){return s(a)},get name(){return s(a).name},scale:3}),f(xe),f(oe);var fe=p(oe,2),pe=p(i(fe),2);ze(pe),f(fe);var Ie=p(fe,2),ke=i(Ie);M(ke,{size:"sm",get icon(){return W},onclick:U,children:(e,r)=>{X();var c=Z("Clear");n(e,c)},$$slots:{default:!0}});var Ne=p(ke,2);M(Ne,{size:"sm",get icon(){return L},onclick:ee,children:(e,r)=>{X();var c=Z("Invert");n(e,c)},$$slots:{default:!0}}),f(Ie),f(ue),f(re);var ge=p(re,2),qe=p(i(ge),2),ye=i(qe);{let e=H(()=>!s(E));M(ye,{size:"sm",get icon(){return B},get disabled(){return s(e)},onclick:Me,children:(r,c)=>{X();var d=Z("Copy");n(r,d)},$$slots:{default:!0}})}var Ue=p(ye,2);{let e=H(()=>!s(E)),r=H(()=>He(s(a)));M(Ue,{size:"sm",variant:"primary",get icon(){return F},get disabled(){return s(e)},get href(){return s(r)},target:"_blank",rel:"noopener",children:(c,d)=>{X();var A=Z("Open GitHub issue");n(c,A)},$$slots:{default:!0}})}f(qe),f(ge),f(se),T(()=>De(pe,"placeholder",m)),P("pointerdown",v,z),P("pointermove",v,S),P("pointerup",v,D),le("pointercancel",v,D),le("lostpointercapture",v,D),Je(pe,()=>s(C),(e)=>Y(C,e)),n(t,se),_()}Ce(["pointerdown","pointermove","pointerup"]);var _e=q('<span class="title svelte-fkq7sr">Avatars</span>'),Oe=q('<li class="svelte-fkq7sr"><!> <span class="label svelte-fkq7sr"> </span></li>'),es=q('<div class="page svelte-fkq7sr"><!> <main class="content svelte-fkq7sr"><!> <section class="catalog svelte-fkq7sr"><header class="svelte-fkq7sr"><h2 class="svelte-fkq7sr">The set</h2> <p class="svelte-fkq7sr"> </p></header> <ul class="svelte-fkq7sr"></ul></section></main></div> <!>',1);function $e(t,l){R(l,!1),Xe();var o=es(),m=Qe(o),h=i(m);Ze(h,{children:(x,z)=>{var S=_e();n(x,S)},$$slots:{default:!0}});var C=p(h,2),J=i(C);ce(J,{});var a=p(J,2),E=i(a),y=p(i(E),2),K=i(y);f(y),f(E);var j=p(E,2);V(j,5,()=>de,(x)=>x.name,(x,z)=>{var S=Oe(),D=i(S);N(D,{get art(){return s(z)},get name(){return s(z).name},scale:8,interactive:!0});var U=p(D,2),ee=i(U,!0);f(U),f(S),T(()=>ne(ee,s(z).name)),n(x,S)}),f(j),f(a),f(C),f(m);var O=p(m,2);Ye(O,{toastOptions:{style:"border:1px solid var(--ink); background:var(--bg-card); color:var(--ink); box-shadow:4px 4px 0 var(--ink); font-family:var(--font-mono); font-size:13px;"}}),T(()=>ne(K,`${de.length??""} hand-crafted 8×8 sprites`)),n(t,o),_()}Ge("AvatarsView_257s9yq1wwr4f",$e);
@@ -1 +0,0 @@
1
- import{a as _l,c as Gl,d as nl,e as lv,f as vv,g as sv}from"/_mochi/client/chunk-k3my1snp.js";import{m as Pl}from"/_mochi/client/chunk-ry7q5zk5.js";import{x as d}from"/_mochi/client/chunk-zjcg8kw5.js";import{A as i,Aa as fl,B as g,Ba as cl,Da as ol,F as Il,G as Sl,Ga as Tl,Ia as rl,La as P,Ma as u,Na as O,O as E,Qa as $l,R as j,T as m,Ta as iv,V as gl,W as f,X as A,Y as t,Z as el,aa as S,fa as v,ja as dl,ka as Nl,la as ql,ma as y,pa as q,qa as h,ra as I,sa as M,ta as Rl,ua as o,za as Ol}from"/_mochi/client/chunk-kgn1b2t1.js";var Kv=new Set(["$$slots","$$events","$$legacy"]);function Cl(D,a){let k=P(a,Kv),e=[["path",{d:"m12 19-7-7 7-7"}],["path",{d:"M19 12H5"}]];d(D,u({name:"arrow-left"},()=>k,{get iconNode(){return e}}))}var Lv=new Set(["$$slots","$$events","$$legacy"]);function il(D,a){let k=P(a,Lv),e=[["path",{d:"M7 7h10v10"}],["path",{d:"M7 17 17 7"}]];d(D,u({name:"arrow-up-right"},()=>k,{get iconNode(){return e}}))}var Xv=new Set(["$$slots","$$events","$$legacy"]);function xl(D,a){let k=P(a,Xv),e=[["path",{d:"M20 6 9 17l-5-5"}]];d(D,u({name:"check"},()=>k,{get iconNode(){return e}}))}var Fv=y("<span></span>");function b(D,a){let k=O(a,"variant",3,"text");var e=Fv();let T;S(()=>{fl(e,1,`skel ${k()??""}`,"svelte-tl058d"),T=cl(e,"",T,{width:a.width})}),h(D,e)}var Ov=y('<div class="hrow svelte-1hnopyv"><span><!></span> <span class="hlabel svelte-1hnopyv"> </span> <span class="hvalue svelte-1hnopyv"> </span></div>'),Tv=y('<div class="hrow svelte-1hnopyv"><span class="box idle svelte-1hnopyv"></span> <!> <!></div>'),Gv=y('<div class="hrow svelte-1hnopyv"><span class="box idle svelte-1hnopyv"></span> <span class="hlabel svelte-1hnopyv"> </span> <span class="hvalue svelte-1hnopyv">—</span></div>'),Jv=y('<div><div class="panel-bar">Health</div> <div class="health svelte-1hnopyv"><!></div> <div class="hfoot svelte-1hnopyv"> </div></div>');function Fl(D,a){Il(a,!0);let k=["Container running","Code-server reachable"],e=O(a,"health",3,null),T=O(a,"lastFetchedAt",3,null),R=O(a,"active",3,!0),G=O(a,"injectionChecks",3,0),tl=E(()=>{if(!e())return[];let C=(x)=>({ok:x,value:x?"OK":"—"});return[{label:k[0],...C(e().containerRunning)},{label:k[1],...C(e().codeServerAccessible)},...e().injections.map((x)=>({label:x.label,...C(x.ok)}))]});function Ml(){return e()?v(tl).length:k.length+G()}let U=j(gl(Date.now()));el(()=>{let C=setInterval(()=>m(U,Date.now(),!0),1000);return()=>clearInterval(C)});let V=E(()=>{if(!R()&&!e())return"Container not running";if(!T())return"Waiting for first check…";return`Updated ${Math.max(0,Math.round((v(U)-T())/1000))}s ago`});var K=Jv();let r;var J=t(f(K),2),$=f(J);{var kl=(C)=>{var x=q(),Y=A(x);o(Y,17,()=>v(tl),(H)=>H.label,(H,L)=>{var N=Ov(),w=f(N),B=f(w);{var n=(Z)=>{xl(Z,{size:12,strokeWidth:3})},ll=(Z)=>{Pl(Z,{size:12,strokeWidth:3})};M(B,(Z)=>{if(v(L).ok)Z(n);else Z(ll,-1)})}i(w);var vl=t(w,2),jl=f(vl,!0);i(vl);var hl=t(vl,2),zl=f(hl,!0);i(hl),i(N),S(()=>{fl(w,1,`box ${v(L).ok?"ok":"bad"}`,"svelte-1hnopyv"),I(jl,v(L).label),I(zl,v(L).value)}),h(H,N)}),h(C,x)},wl=(C)=>{var x=q(),Y=A(x);o(Y,17,()=>Array(Ml()),Rl,(H,L)=>{var N=Tv(),w=t(f(N),2);b(w,{width:"120px"});var B=t(w,2);b(B,{variant:"pill"}),i(N),h(H,N)}),h(C,x)},Wl=(C)=>{var x=q(),Y=A(x);o(Y,16,()=>k,(H)=>H,(H,L)=>{var N=Gv(),w=t(f(N),2),B=f(w,!0);i(w),g(2),i(N),S(()=>I(B,L)),h(H,N)}),h(C,x)};M($,(C)=>{if(e())C(kl);else if(R())C(wl,1);else C(Wl,-1)})}i(J);var Q=t(J,2),_=f(Q,!0);i(Q),i(K),S(()=>{r=fl(K,1,"healthwrap panel svelte-1hnopyv",null,r,{dim:!R()&&!e()}),I(_,v(V))}),h(D,K),Sl()}var Qv=y('<form method="POST" action="?/restart" class="svelte-15fxkvm"><button class="restart svelte-15fxkvm" type="submit"> </button></form> <a class="open svelte-15fxkvm" target="_blank" rel="noopener">Open in new tab <!></a>',1),Yv=y('<p class="restart-err svelte-15fxkvm"> </p>'),ul=y('<code class="svelte-15fxkvm"> </code>'),Zv=y('<code class="svelte-15fxkvm">local (project devcontainer.json)</code>'),bv=y('<code class="muted svelte-15fxkvm">—</code>'),Av=y('<button class="rebuild svelte-15fxkvm"> </button>'),Ev=y('<li class="svelte-15fxkvm"><span class="cp svelte-15fxkvm"> </span> <span class="arr svelte-15fxkvm">→</span> <a target="_blank" rel="noopener" class="svelte-15fxkvm"> <!></a> <button class="rm svelte-15fxkvm" title="Remove">×</button></li>'),Uv=y('<ul class="port-list svelte-15fxkvm"></ul>'),Vv=y('<p class="empty svelte-15fxkvm">No ports forwarded yet.</p>'),Bv=y('<p class="port-err svelte-15fxkvm"> </p>'),cv=y('<p class="hint pending svelte-15fxkvm">Port changes apply when you <strong class="svelte-15fxkvm">Restart</strong> (recreates the container).</p>'),gv=y('<div class="err svelte-15fxkvm"> </div>'),Rv=y('<header class="topbar svelte-15fxkvm"><a class="back svelte-15fxkvm" href="/"><!> All instances</a> <div class="title svelte-15fxkvm"><span class="name svelte-15fxkvm"> </span> <!></div> <!></header> <!> <main class="stage svelte-15fxkvm"><div class="meta svelte-15fxkvm"><span class="k svelte-15fxkvm">Source</span> <!> <span class="k svelte-15fxkvm">Image</span> <!></div> <div class="healthslot svelte-15fxkvm"><!></div> <section class="ports panel svelte-15fxkvm"><div class="ports-bar panel-bar svelte-15fxkvm"><span class="svelte-15fxkvm">Forwarded ports</span> <!></div> <div class="ports-body svelte-15fxkvm"><!> <form class="add svelte-15fxkvm"><input type="number" min="1" max="65535" placeholder="container port (e.g. 3000)" spellcheck="false" class="svelte-15fxkvm"/> <button type="submit" class="svelte-15fxkvm">Add</button></form> <!> <!> <p class="hint svelte-15fxkvm">Your app must bind to <code class="svelte-15fxkvm">0.0.0.0</code> inside the container to be reachable.</p></div></section> <div class="logwrap panel svelte-15fxkvm"><div class="log-bar panel-bar svelte-15fxkvm"><span class="svelte-15fxkvm">Boot log</span> <button class="copy svelte-15fxkvm"> </button></div> <div class="logs svelte-15fxkvm"><pre class="svelte-15fxkvm"> <span class="caret svelte-15fxkvm"></span></pre></div> <!></div></main>',1);function Jl(D,a){Il(a,!0);let k=O(a,"injectionChecks",3,0),e=j(null),T=j(null),R=j(null),G=j("");function tl(l){l.scrollTop=l.scrollHeight}el(()=>vv(`/api/instances/${a.id}/logs`,(l)=>m(G,v(G)+l),()=>m(G,""))),el(()=>sv((l)=>{if(l.type==="instances"){let s=l.data.find((p)=>p.id===a.id);if(s)m(e,s,!0)}else if(l.type==="health"&&l.data.id===a.id)m(T,l.data.health,!0),m(R,Date.now(),!0)}));let Ml=E(()=>v(e)?_l(v(e)):"#"),U=j(""),V=j(null),K=j(!1),r=E(()=>v(e)?.forwarded_ports??[]),J=E(()=>v(e)?.status==="creating");async function $(l){m(V,null);try{return await l(),!0}catch(s){return m(V,s.message,!0),!1}}async function kl(l){l.preventDefault();let s=Number.parseInt(v(U),10);if(!Number.isInteger(s)||s<1||s>65535){m(V,"Enter a port number between 1 and 65535");return}if(await $(()=>Gl(`/api/instances/${a.id}/ports`,{port:s})))m(U,""),m(K,!0)}async function wl(l){if(await $(()=>nl(`/api/instances/${a.id}/ports/${l}`)))m(K,!0)}async function Wl(){if(await $(()=>Gl(`/api/instances/${a.id}/rebuild`)))m(K,!1)}let Q=j(null),_=j(!1),C={onPending:(l)=>m(_,l,!0),submit:()=>{return m(Q,null),({result:l})=>{if(l.type==="failure")m(Q,l.data?.error??"Restart failed",!0);else if(l.type==="error")m(Q,"Network error. Try again.")}}},x=j(!1),Y;async function H(){await navigator.clipboard.writeText(v(G)),m(x,!0),clearTimeout(Y),Y=setTimeout(()=>m(x,!1),2000)}var L=Rv(),N=A(L),w=f(N),B=f(w);Cl(B,{size:15}),g(),i(w);var n=t(w,2),ll=f(n),vl=f(ll,!0);i(ll);var jl=t(ll,2);{var hl=(l)=>{lv(l,{get status(){return v(e).status}})},zl=(l)=>{b(l,{variant:"pill"})};M(jl,(l)=>{if(v(e))l(hl);else l(zl,-1)})}i(n);var Z=t(n,2);{var fv=(l)=>{var s=Qv(),p=A(s),X=f(p),c=f(X,!0);i(X),i(p),Ol(p,()=>$l(C));var F=t(p,2),W=t(f(F));il(W,{size:15}),i(F),S(()=>{X.disabled=v(_)||v(J),I(c,v(_)||v(J)?"Restarting…":"Restart container"),Tl(F,"href",v(Ml))}),h(l,s)};M(Z,(l)=>{if(v(e)?.status==="running")l(fv)})}i(N);var Ql=t(N,2);{var ev=(l)=>{var s=Yv(),p=f(s,!0);i(s),S(()=>I(p,v(Q))),h(l,s)};M(Ql,(l)=>{if(v(Q))l(ev)})}var Yl=t(Ql,2),Dl=f(Yl),Zl=t(f(Dl),2);{var tv=(l)=>{var s=ul(),p=f(s,!0);i(s),S(()=>I(p,v(e).source_path)),h(l,s)},hv=(l)=>{b(l,{variant:"wide"})};M(Zl,(l)=>{if(v(e))l(tv);else l(hv,-1)})}var av=t(Zl,4);{var pv=(l)=>{var s=q(),p=A(s);{var X=(W)=>{var z=Zv();h(W,z)},c=(W)=>{var z=ul(),yl=f(z,!0);i(z),S(()=>I(yl,v(e).image_source)),h(W,z)},F=(W)=>{var z=bv();h(W,z)};M(p,(W)=>{if(v(e).image_source==="local")W(X);else if(v(e).image_source)W(c,1);else W(F,-1)})}h(l,s)},mv=(l)=>{b(l,{variant:"wide"})};M(av,(l)=>{if(v(e))l(pv);else l(mv,-1)})}i(Dl);var Hl=t(Dl,2),yv=f(Hl);{let l=E(()=>!v(e)||v(e).status==="running");Fl(yv,{get health(){return v(T)},get lastFetchedAt(){return v(R)},get injectionChecks(){return k()},get active(){return v(l)}})}i(Hl);var Kl=t(Hl,2),Ll=f(Kl),Cv=t(f(Ll),2);{var xv=(l)=>{var s=Av(),p=f(s,!0);i(s),S(()=>{s.disabled=v(J),I(p,v(J)?"Restarting…":"Restart to apply")}),Nl("click",s,Wl),h(l,s)};M(Cv,(l)=>{if(v(K))l(xv)})}i(Ll);var bl=t(Ll,2),Al=f(bl);{var Iv=(l)=>{var s=Uv();o(s,21,()=>v(r),(p)=>p.container_port,(p,X)=>{var c=Ev(),F=f(c),W=f(F);i(F);var z=t(F,4),yl=f(z),Dv=t(yl);il(Dv,{size:12}),i(z);var Hv=t(z,2);i(c),S(()=>{I(W,`:${v(X).container_port??""}`),Tl(z,"href",`http://localhost:${v(X).host_port}`),I(yl,`localhost:${v(X).host_port??""} `)}),Nl("click",Hv,()=>wl(v(X).container_port)),h(p,c)}),i(s),h(l,s)},Sv=(l)=>{var s=Vv();h(l,s)};M(Al,(l)=>{if(v(r).length)l(Iv);else l(Sv,-1)})}var al=t(Al,2),El=f(al);ol(El),g(2),i(al);var Ul=t(al,2);{var Nv=(l)=>{var s=Bv(),p=f(s,!0);i(s),S(()=>I(p,v(V))),h(l,s)};M(Ul,(l)=>{if(v(V))l(Nv)})}var Mv=t(Ul,2);{var kv=(l)=>{var s=cv();h(l,s)};M(Mv,(l)=>{if(v(K))l(kv)})}g(2),i(bl),i(Kl);var Vl=t(Kl,2),Xl=f(Vl),pl=t(f(Xl),2),wv=f(pl,!0);i(pl),i(Xl);var ml=t(Xl,2),Bl=f(ml),Wv=f(Bl,!0);g(),i(Bl),i(ml),Ol(ml,()=>tl);var jv=t(ml,2);{var zv=(l)=>{var s=gv(),p=f(s,!0);i(s),S(()=>I(p,v(e).error)),h(l,s)};M(jv,(l)=>{if(v(e)?.status==="error"&&v(e).error)l(zv)})}i(Vl),i(Yl),S(()=>{I(vl,v(e)?.name??"Instance"),pl.disabled=!v(G),I(wv,v(x)?"Copied!":"Copy logs"),I(Wv,v(G)||"Waiting for output…")}),dl("submit",al,kl),rl(El,()=>v(U),(l)=>m(U,l)),Nl("click",pl,H),h(D,L),Sl()}ql(["click"]);iv("InstanceView_2ma45l9bybfhl",Jl);
@@ -1,23 +0,0 @@
1
- import{h as DS,i as MS,j as BS,k as lS,l as OS}from"/_mochi/client/chunk-x843txjc.js";import{m as FS}from"/_mochi/client/chunk-ry7q5zk5.js";import{s as KS,t,u as HS,w as US}from"/_mochi/client/chunk-jx5cekhh.js";import{x as P}from"/_mochi/client/chunk-zjcg8kw5.js";import{A as I,Aa as p1,B as F,Da as O,Ea as Vf,F as C0,Fa as Z1,G as x0,Ga as v,Ia as u,Ja as Wf,La as K,Ma as R,Na as YS,P as Qf,Qa as q,R as w,Sa as pf,T as N,Ta as kS,V as B,W as L,X as B1,Y as C,aa as Z,fa as S,ka as I1,la as w0,ma as M,oa as m,qa as z,ra as V,sa as H,ua as A1,xa as GS,za as i}from"/_mochi/client/chunk-kgn1b2t1.js";var f9=new Set(["$$slots","$$events","$$legacy"]);function n1(A,j){let J=K(j,f9),Q=[["path",{d:"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"}],["path",{d:"M10 21.9V14L2.1 9.1"}],["path",{d:"m10 14 11.9-6.9"}],["path",{d:"M14 19.8v-8.1"}],["path",{d:"M18 17.5V9.4"}]];P(A,R({name:"container"},()=>J,{get iconNode(){return Q}}))}var S9=new Set(["$$slots","$$events","$$legacy"]);function f0(A,j){let J=K(j,S9),Q=[["path",{d:"M12 2v10"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04"}]];P(A,R({name:"power"},()=>J,{get iconNode(){return Q}}))}var I9=new Set(["$$slots","$$events","$$legacy"]);function D1(A,j){let J=K(j,I9),Q=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}],["path",{d:"M3 3v5h5"}]];P(A,R({name:"rotate-ccw"},()=>J,{get iconNode(){return Q}}))}var L9=new Set(["$$slots","$$events","$$legacy"]);function S0(A,j){let J=K(j,L9),Q=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z"}],["path",{d:"M16 9a5 5 0 0 1 0 6"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728"}]];P(A,R({name:"volume-2"},()=>J,{get iconNode(){return Q}}))}var y9=new Set(["$$slots","$$events","$$legacy"]);function I0(A,j){let J=K(j,y9),Q=[["path",{d:"M12 2v2"}],["path",{d:"M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715"}],["path",{d:"M16 12a4 4 0 0 0-4-4"}],["path",{d:"m19 5-1.256 1.256"}],["path",{d:"M20 12h2"}]];P(A,R({name:"sun-moon"},()=>J,{get iconNode(){return Q}}))}var N9=new Set(["$$slots","$$events","$$legacy"]);function L0(A,j){let J=K(j,N9),Q=[["circle",{cx:"12",cy:"12",r:"4"}],["path",{d:"M12 2v2"}],["path",{d:"M12 20v2"}],["path",{d:"m4.93 4.93 1.41 1.41"}],["path",{d:"m17.66 17.66 1.41 1.41"}],["path",{d:"M2 12h2"}],["path",{d:"M20 12h2"}],["path",{d:"m6.34 17.66-1.41 1.41"}],["path",{d:"m19.07 4.93-1.41 1.41"}]];P(A,R({name:"sun"},()=>J,{get iconNode(){return Q}}))}var C9=new Set(["$$slots","$$events","$$legacy"]);function y0(A,j){let J=K(j,C9),Q=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"}]];P(A,R({name:"moon"},()=>J,{get iconNode(){return Q}}))}var x9=new Set(["$$slots","$$events","$$legacy"]);function N0(A,j){let J=K(j,x9),Q=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21"}]];P(A,R({name:"monitor"},()=>J,{get iconNode(){return Q}}))}var QS="theme";function VS(){let A=pf.get(QS);return A==="dark"||A==="light"?A:"auto"}function WS(A){pf.set(QS,A,{expires:400,path:"/"})}function XS(A){if(A==="auto")delete document.documentElement.dataset.theme;else document.documentElement.dataset.theme=A}var w9=M('<button type="button" role="radio"><!> </button>'),z9=M('<div class="picker svelte-3gcwuj" role="radiogroup" aria-label="Theme"></div>');function Zf(A,j){C0(j,!0);let J=w(B(VS())),Q=[{value:"auto",label:"Auto",icon:N0},{value:"light",label:"Light",icon:L0},{value:"dark",label:"Dark",icon:y0}];function h(E){N(J,E,!0),WS(E),XS(E)}var s=z9();A1(s,21,()=>Q,({value:E,label:e,icon:o})=>E,(E,e)=>{let o=()=>S(e).value,J1=()=>S(e).label,Q1=()=>S(e).icon;var _=w9();let l1;var n=L(_);GS(n,Q1,(W1,X1)=>{X1(W1,{size:13})});var V1=C(n);I(_),Z(()=>{l1=p1(_,1,"segment svelte-3gcwuj",null,l1,{active:S(J)===o()}),v(_,"aria-checked",S(J)===o()),V(V1,` ${J1()??""}`)}),I1("click",_,()=>h(o())),z(E,_)}),I(s),z(A,s),x0()}w0(["click"]);var j9=new Set(["$$slots","$$events","$$legacy"]);function z0(A,j){let J=K(j,j9),Q=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"}]];P(A,R({name:"layers"},()=>J,{get iconNode(){return Q}}))}var A9=new Set(["$$slots","$$events","$$legacy"]);function j0(A,j){let J=K(j,A9),Q=[["path",{d:"M9 13h6"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"}]];P(A,R({name:"folder-minus"},()=>J,{get iconNode(){return Q}}))}var p9=new Set(["$$slots","$$events","$$legacy"]);function H1(A,j){let J=K(j,p9),Q=[["path",{d:"M10 11v6"}],["path",{d:"M14 11v6"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"}],["path",{d:"M3 6h18"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}]];P(A,R({name:"trash-2"},()=>J,{get iconNode(){return Q}}))}var Z9=new Set(["$$slots","$$events","$$legacy"]);function U1(A,j){let J=K(j,Z9),Q=[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9"}],["path",{d:"m18 15 4-4"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5"}]];P(A,R({name:"hammer"},()=>J,{get iconNode(){return Q}}))}var J9=new Set(["$$slots","$$events","$$legacy"]);function M1(A,j){let J=K(j,J9),Q=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor"}]];P(A,R({name:"key-round"},()=>J,{get iconNode(){return Q}}))}var Q9=new Set(["$$slots","$$events","$$legacy"]);function A0(A,j){let J=K(j,Q9),Q=[["path",{d:"M8 21s-4-3-4-9 4-9 4-9"}],["path",{d:"M16 3s4 3 4 9-4 9-4 9"}],["line",{x1:"15",x2:"9",y1:"9",y2:"15"}],["line",{x1:"9",x2:"15",y1:"9",y2:"15"}]];P(A,R({name:"variable"},()=>J,{get iconNode(){return Q}}))}var V9=M('<div class="coin-row svelte-1ioj7vz"><span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span> <a class="coin-btn svelte-1ioj7vz" aria-label="Draw your own avatar" title="Draw your own avatar"><span class="new svelte-1ioj7vz" aria-hidden="true">New</span> <span class="coin svelte-1ioj7vz" aria-hidden="true"><!></span></a> <span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span></div>');function Jf(A,j){let J=YS(j,"href",3,"/avatars"),Q={name:"coin",pixels:["..####..",".#....#.","#..##..#","#.####.#","#.####.#","#..##..#",".#....#.","..####.."]};var h=V9(),s=C(L(h),2),E=C(L(s),2),e=L(E);KS(e,{get art(){return Q},name:"coin",scale:3}),I(E),I(s),F(2),I(h),Z(()=>v(s,"href",J())),z(A,h)}var W9=M('<span class="title svelte-1n6ht58">Settings</span>'),X9=M('<span class="arch svelte-1n6ht58" title="Docker daemon architecture"> </span>'),G9=M(`Your Docker daemon runs on <strong> </strong> — pick an image that publishes
2
- an <strong> </strong> manifest, or the pull will fail.`,1),r=M('<div class="msg error svelte-1n6ht58"> </div>'),RS=M('<div class="msg ok svelte-1n6ht58">Saved.</div>'),p0=M('<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58"> </div></div>'),L1=M('<div class="msg ok svelte-1n6ht58"> </div>'),Y9=M('<span class="arch svelte-1n6ht58" title="Disabled while LiteLLM + Bedrock mode is on">disabled</span>'),K9=M(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/githubToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">GitHub token</div> <div class="desc svelte-1n6ht58">macOS / Linux: run <code class="svelte-1n6ht58">gh auth token</code> to print your GitHub CLI token, or
3
- create a Personal Access Token at <code class="svelte-1n6ht58">github.com/settings/tokens</code> (scopes: <code class="svelte-1n6ht58">repo</code>, <code class="svelte-1n6ht58">read:org</code>). Leave blank and Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="githubToken" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/> <!></div> <!></form> <form class="row divided token-row svelte-1n6ht58" method="POST" action="?/claudeToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude Code token</div> <div class="desc svelte-1n6ht58">macOS / Linux: run <code class="svelte-1n6ht58">claude setup-token</code> to mint a long-lived token and
4
- paste it here. Copying a live login out of the keychain or <code class="svelte-1n6ht58">~/.claude/.credentials.json</code> works too, but that credential rotates —
5
- the first <code class="svelte-1n6ht58">claude</code> to refresh it signs the other one out. Leave blank and Save
6
- to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/> <!></div> <!></form>`,1),R9=M('<span class="arch svelte-1n6ht58" title="Disabled while Set tokens manually is on">disabled</span>'),P9=M(`Route <code class="svelte-1n6ht58">claude</code> through a LiteLLM proxy fronting AWS Bedrock instead of Anthropic's
7
- default API. When enabled, the Bedrock endpoint variables are injected into every new
8
- container, host OAuth credentials are not used, and "Set tokens manually" is disabled.`,1),F9=M('<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customBaseUrl"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Base URL</div> <div class="desc svelte-1n6ht58">The LiteLLM proxy endpoint, e.g. <code class="svelte-1n6ht58">https://litellm.example.com/bedrock</code>. Passed as <code class="svelte-1n6ht58">ANTHROPIC_BEDROCK_BASE_URL</code>.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="baseUrl" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="https://litellm.example.com/bedrock"/> <!></div> <!></form> <form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Auth token</div> <div class="desc svelte-1n6ht58">Your LiteLLM API key. Passed as <code class="svelte-1n6ht58">ANTHROPIC_AUTH_TOKEN</code>. Leave blank and\n\t\t\t\t\t\t\t\tSave to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/> <!></div> <!></form> <form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customModels"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Model IDs</div> <div class="desc svelte-1n6ht58">Model aliases to use for each tier. Prefilled with defaults from the reference\n\t\t\t\t\t\t\t\tlauncher script. Leave a field as-is to keep its current value.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Opus</span> <input type="text" name="opusModel" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Sonnet</span> <input type="text" name="sonnetModel" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Haiku</span> <input type="text" name="haikuModel" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Small/fast</span> <input type="text" name="smallFastModel" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Default</span> <input type="text" name="defaultModel" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58"><!></div></div> <!></form>',1),PS=M('<input type="hidden" name="names"/>'),D9=M('<form class="var-item svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!> <span class="var-name svelte-1n6ht58"> </span> <span> </span> <button type="submit" class="var-remove svelte-1n6ht58"><!></button></form>'),H9=M('<div class="var-empty svelte-1n6ht58">No variables added yet.</div>'),U9=M('<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58"></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!> <input type="text" name="names" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="AWS_ACCESS_KEY_ID"/> <!></form> <!></div>'),M9=M('<span class="shutting svelte-1n6ht58">Server is shutting down — you can close this tab.</span>'),B9=M(`<div class="page svelte-1n6ht58"><!> <main class="content svelte-1n6ht58"><section class="card svelte-1n6ht58"><form class="row image-row svelte-1n6ht58" method="POST" action="?/defaultImage"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Default container image <!></div> <div class="desc svelte-1n6ht58">Used only when a project folder ships no devcontainer.json. Takes effect for instances
9
- created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="mcr.microsoft.com/devcontainers/base:ubuntu"/> <!> <!></div> <div class="desc tip svelte-1n6ht58"><!></div> <!></form></section> <section class="card svelte-1n6ht58"><form class="row image-row svelte-1n6ht58" method="POST" action="?/copyIgnorePatterns"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Skip when copying a local folder</div> <div class="desc svelte-1n6ht58">Comma-separated folder/file names excluded when copying a local source folder into a
10
- new instance's workspace. Leave blank to copy everything. Only applies to local
11
- folders — cloning a Git repo URL is unaffected.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="patterns" class="image-input svelte-1n6ht58" spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="node_modules, .venv, dist"/> <!> <!></div> <!></form></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/disableBuildCache"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Disable build cache</div> <div class="desc svelte-1n6ht58">Build every new container with <code class="svelte-1n6ht58">--build-no-cache</code>. Applies to first boot
12
- and rebuilds — slower, but always picks up upstream image/layer changes.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled" class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> <!> <form class="row divided svelte-1n6ht58" method="POST" action="?/clearBuildCache"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Clear build cache</div> <div class="desc svelte-1n6ht58">Purge Docker's BuildKit layer cache now, so the next build runs uncached. Doesn't
13
- remove pulled images.</div> <!></div></div> <!></form> <form class="row divided svelte-1n6ht58" method="POST" action="?/rebuildAllNoCache"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Rebuild running containers (no cache)</div> <div class="desc svelte-1n6ht58">Re-run <code class="svelte-1n6ht58">devcontainer up --build-no-cache</code> for every currently-running instance.
14
- In-container edits are kept; stopped instances are left alone.</div> <!></div></div> <!></form></section> <section><form class="row svelte-1n6ht58" method="POST" action="?/manualTokensToggle"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Set tokens manually <!></div> <div class="desc svelte-1n6ht58"><!></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled" class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> <!> <!></section> <section><form class="row svelte-1n6ht58" method="POST" action="?/customEndpointToggle"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">LiteLLM + Bedrock <!></div> <div class="desc svelte-1n6ht58"><!></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled" class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> <!> <!></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/hostEnvVarsToggle"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Host environment variables</div> <div class="desc svelte-1n6ht58">Forward selected environment variables from this machine into every new container's
15
- interactive shells. Values are read from this process's own environment at container
16
- start and are never shown here or stored — only the variable names are saved.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled" class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> <!> <!></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Theme</div> <div class="desc svelte-1n6ht58">Light, dark, or follow the browser preference automatically (auto).</div></div></div> <!></div></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Attention sound</div> <div class="desc svelte-1n6ht58">Play a chime when an instance finishes a task or needs your input.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></div></section> <section class="card danger-card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/shutdown"><div class="label svelte-1n6ht58"><!> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Delete database, containers, and shut down</div> <div class="desc svelte-1n6ht58">Stop and remove every instance and its container, delete all copied workspaces and the
17
- database, then shut down the server. This cannot be undone.</div></div></div> <!></form></section> <!></main></div> <!>`,1);function Xf(A,j){C0(j,!0);let J=w(B(MS())),Q=w(!1);function h(f){return{onPending:f.setSaving,submit:({cancel:y})=>{if(f.confirmMessage&&!confirm(f.confirmMessage)){y();return}return f.setError(null),f.setMsg?.(null),({result:x})=>{if(x.type==="success")f.onSuccess(x.data);else if(x.type==="failure")f.setError(x.data?.error??"Request failed");else if(x.type==="error")f.setError("Network error. Try again.")}}}}function s(f){return{onPending:f.setSaving,submit:({formData:y})=>{let x=y.get("enabled")==="on";return f.setError(null),({result:X})=>{if(X.type==="success"){f.onSuccess?.(X.data);return}f.set(!x),f.setError(X.type==="failure"?X.data?.error??"Request failed":"Network error. Try again.")}}}}let E=w(B(j.defaultImage)),e=w(!1),o=w(null),J1=w(!1),Q1,_=h({setSaving:(f)=>N(e,f,!0),setError:(f)=>N(o,f,!0),setMsg:(f)=>N(J1,!!f),onSuccess:(f)=>{N(E,f?.image??S(E),!0),N(J1,!0)}});function l1(){Qf(()=>N(E,j.builtinImage,!0)),Q1?.requestSubmit()}let n=w(B(j.copyIgnorePatterns)),V1=w(!1),W1=w(null),X1=w(!1),Z0,TS=h({setSaving:(f)=>N(V1,f,!0),setError:(f)=>N(W1,f,!0),setMsg:(f)=>N(X1,!!f),onSuccess:(f)=>{N(n,f?.patterns??S(n),!0),N(X1,!0)}});function bS(){Qf(()=>N(n,j.builtinCopyIgnore,!0)),Z0?.requestSubmit()}let J0=w(B(j.disableBuildCache)),Gf=w(!1),Q0=w(null),iS=s({set:(f)=>N(J0,f,!0),setSaving:(f)=>N(Gf,f,!0),setError:(f)=>N(Q0,f,!0)}),V0=w(!1),O1=w(null),W0=w(null);function qS(f){if(f<=0)return"0 B";let y=["B","KB","MB","GB","TB"],x=Math.min(Math.floor(Math.log(f)/Math.log(1024)),y.length-1);return`${(f/1024**x).toFixed(x===0?0:1)} ${y[x]}`}let hS=h({setSaving:(f)=>N(V0,f,!0),setError:(f)=>N(W0,f,!0),setMsg:(f)=>N(O1,f,!0),onSuccess:(f)=>{N(O1,`Cleared — freed ${qS(f?.spaceReclaimed??0)}.`)}}),X0=w(!1),k1=w(null),G0=w(null),ES=h({setSaving:(f)=>N(X0,f,!0),setError:(f)=>N(G0,f,!0),setMsg:(f)=>N(k1,f,!0),confirmMessage:"Rebuild every running container from scratch (no build cache)? Each will restart and may take a while.",onSuccess:(f)=>{let y=f?.count??0;N(k1,y===0?"No running containers to rebuild.":`Rebuilding ${y} container(s)…`,!0)}}),f1=w(B(j.manualTokensEnabled)),Yf=w(!1),Y0=w(null),cS=s({set:(f)=>N(f1,f,!0),setSaving:(f)=>N(Yf,f,!0),setError:(f)=>N(Y0,f,!0)}),K0=w(B(j.githubTokenSet)),R0=w(""),Kf=w(!1),T1=w(null),P0=w(null),mS=h({setSaving:(f)=>N(Kf,f,!0),setError:(f)=>N(P0,f,!0),setMsg:(f)=>N(T1,f,!0),onSuccess:(f)=>{N(K0,f?.set??!1,!0),N(R0,""),N(T1,S(K0)?"Saved.":"Cleared.",!0)}}),F0=w(B(j.claudeTokenSet)),D0=w(""),Rf=w(!1),b1=w(null),H0=w(null),tS=h({setSaving:(f)=>N(Rf,f,!0),setError:(f)=>N(H0,f,!0),setMsg:(f)=>N(b1,f,!0),onSuccess:(f)=>{N(F0,f?.set??!1,!0),N(D0,""),N(b1,S(F0)?"Saved.":"Cleared.",!0)}}),$=w(B(j.customEndpointEnabled)),Pf=w(!1),U0=w(null),gS=s({set:(f)=>N($,f,!0),setSaving:(f)=>N(Pf,f,!0),setError:(f)=>N(U0,f,!0)}),Ff=w(B(j.customEndpointBaseUrl)),Df=w(!1),i1=w(null),M0=w(null),uS=h({setSaving:(f)=>N(Df,f,!0),setError:(f)=>N(M0,f,!0),setMsg:(f)=>N(i1,f,!0),onSuccess:(f)=>{N(i1,f?.set?"Saved.":"Cleared.",!0)}}),B0=w(""),l0=w(B(j.customEndpointTokenSet)),Hf=w(!1),q1=w(null),O0=w(null),sS=h({setSaving:(f)=>N(Hf,f,!0),setError:(f)=>N(O0,f,!0),setMsg:(f)=>N(q1,f,!0),onSuccess:(f)=>{N(l0,f?.set??!1,!0),N(B0,""),N(q1,S(l0)?"Saved.":"Cleared.",!0)}}),Uf=w(B(j.customEndpointOpusModel)),Mf=w(B(j.customEndpointSonnetModel)),Bf=w(B(j.customEndpointHaikuModel)),lf=w(B(j.customEndpointSmallFastModel)),Of=w(B(j.customEndpointModel)),kf=w(!1),h1=w(null),k0=w(null),dS=h({setSaving:(f)=>N(kf,f,!0),setError:(f)=>N(k0,f,!0),setMsg:(f)=>N(h1,f,!0),onSuccess:()=>{N(h1,"Saved.")}}),E1=w(B(j.hostEnvVarsEnabled)),Tf=w(!1),T0=w(null),eS=s({set:(f)=>N(E1,f,!0),setSaving:(f)=>N(Tf,f,!0),setError:(f)=>N(T0,f,!0),onSuccess:(f)=>{N(w1,f?.presence??{},!0)}}),x1=w(B([...j.hostEnvVarNames])),w1=w(B({...j.hostEnvVarPresence})),b0=w(""),c1=w(!1),G1=w(null),y1=w(null),aS={onPending:(f)=>N(c1,f,!0),submit:({formData:f,cancel:y})=>{N(y1,null),N(G1,null);let x=f.getAll("names").map(String),l=(x.pop()??"").trim().toUpperCase();if(!l){y();return}if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(l)){N(y1,`Invalid variable name: ${l}`),y();return}if(N(b0,""),x.includes(l)){y();return}let d=[...x,l];f.delete("names");for(let g of d)f.append("names",g);return({result:g})=>{if(g.type==="success")N(x1,d,!0),N(w1,g.data?.presence??{},!0),N(G1,"Saved.");else if(g.type==="failure")N(y1,g.data?.error??"Request failed",!0);else if(g.type==="error")N(y1,"Network error. Try again.")}}};function vS(f){return h({setSaving:(y)=>N(c1,y,!0),setError:(y)=>N(y1,y,!0),setMsg:(y)=>N(G1,y,!0),onSuccess:(y)=>{N(x1,S(x1).filter((x)=>x!==f),!0),N(w1,y?.presence??{},!0)}})}function rS(f){if(N(J,f,!0),BS(f),lS(),f)OS("done")}let $S={submit:({cancel:f})=>{if(!confirm("Delete the database, remove all instances and their containers, and shut down the server? This cannot be undone.")){f();return}N(Q,!0)}};var bf=B9(),i0=B1(bf),qf=L(i0);US(qf,{children:(f,y)=>{var x=W9();z(f,x)},$$slots:{default:!0}});var hf=C(qf,2),q0=L(hf),m1=L(q0),h0=L(m1),Ef=L(h0);n1(Ef,{size:18});var cf=C(Ef,2),mf=L(cf),oS=C(L(mf));{var _S=(f)=>{var y=X9(),x=L(y,!0);I(y),Z(()=>V(x,j.dockerArch)),z(f,y)};H(oS,(f)=>{if(j.dockerArch)f(_S)})}I(mf),F(2),I(cf),I(h0);var E0=C(h0,2),c0=L(E0);O(c0);var tf=C(c0,2);t(tf,{type:"submit",get disabled(){return S(e)},children:(f,y)=>{F();var x=m("Save");z(f,x)},$$slots:{default:!0}});var nS=C(tf,2);t(nS,{type:"button",get icon(){return D1},get disabled(){return S(e)},onclick:l1,get title(){return`Reset to default (${j.builtinImage??""})`},"aria-label":"Reset to default image"}),I(E0);var m0=C(E0,2),fI=L(m0);{var SI=(f)=>{var y=G9(),x=C(B1(y)),X=L(x,!0);I(x);var l=C(x,2),d=L(l,!0);I(l),F(),Z(()=>{V(X,j.dockerArch),V(d,j.dockerArch)}),z(f,y)},II=(f)=>{var y=m(`Pick an image whose manifest covers your Docker daemon's architecture, or the pull will
18
- fail.`);z(f,y)};H(fI,(f)=>{if(j.dockerArch)f(SI);else f(II,-1)})}I(m0);var LI=C(m0,2);{var yI=(f)=>{var y=r(),x=L(y,!0);I(y),Z(()=>V(x,S(o))),z(f,y)},NI=(f)=>{var y=RS();z(f,y)};H(LI,(f)=>{if(S(o))f(yI);else if(S(J1))f(NI,1)})}I(m1),Wf(m1,(f)=>Q1=f,()=>Q1),i(m1,()=>q(_)),I(q0);var t0=C(q0,2),t1=L(t0),g0=L(t1),CI=L(g0);j0(CI,{size:18}),F(2),I(g0);var u0=C(g0,2),s0=L(u0);O(s0);var gf=C(s0,2);t(gf,{type:"submit",get disabled(){return S(V1)},children:(f,y)=>{F();var x=m("Save");z(f,x)},$$slots:{default:!0}});var xI=C(gf,2);t(xI,{type:"button",get icon(){return D1},get disabled(){return S(V1)},onclick:bS,get title(){return`Reset to default (${j.builtinCopyIgnore??""})`},"aria-label":"Reset to default copy-ignore patterns"}),I(u0);var wI=C(u0,2);{var zI=(f)=>{var y=r(),x=L(y,!0);I(y),Z(()=>V(x,S(W1))),z(f,y)},jI=(f)=>{var y=RS();z(f,y)};H(wI,(f)=>{if(S(W1))f(zI);else if(S(X1))f(jI,1)})}I(t1),Wf(t1,(f)=>Z0=f,()=>Z0),i(t1,()=>q(TS)),I(t0);var d0=C(t0,2),g1=L(d0),e0=L(g1),AI=L(e0);z0(AI,{size:18}),F(2),I(e0);var uf=C(e0,2),u1=L(uf);O(u1),F(2),I(uf),I(g1),i(g1,()=>q(iS));var sf=C(g1,2);{var pI=(f)=>{var y=p0(),x=L(y),X=L(x,!0);I(x),I(y),Z(()=>V(X,S(Q0))),z(f,y)};H(sf,(f)=>{if(S(Q0))f(pI)})}var s1=C(sf,2),a0=L(s1),df=L(a0);H1(df,{size:18});var ef=C(df,2),ZI=C(L(ef),4);{var JI=(f)=>{var y=r(),x=L(y,!0);I(y),Z(()=>V(x,S(W0))),z(f,y)},QI=(f)=>{var y=L1(),x=L(y,!0);I(y),Z(()=>V(x,S(O1))),z(f,y)};H(ZI,(f)=>{if(S(W0))f(JI);else if(S(O1))f(QI,1)})}I(ef),I(a0);var VI=C(a0,2);t(VI,{type:"submit",get icon(){return H1},get disabled(){return S(V0)},children:(f,y)=>{F();var x=m();Z(()=>V(x,S(V0)?"Clearing…":"Clear cache")),z(f,x)},$$slots:{default:!0}}),I(s1),i(s1,()=>q(hS));var v0=C(s1,2),r0=L(v0),af=L(r0);U1(af,{size:18});var vf=C(af,2),WI=C(L(vf),4);{var XI=(f)=>{var y=r(),x=L(y,!0);I(y),Z(()=>V(x,S(G0))),z(f,y)},GI=(f)=>{var y=L1(),x=L(y,!0);I(y),Z(()=>V(x,S(k1))),z(f,y)};H(WI,(f)=>{if(S(G0))f(XI);else if(S(k1))f(GI,1)})}I(vf),I(r0);var YI=C(r0,2);t(YI,{type:"submit",get icon(){return U1},get disabled(){return S(X0)},children:(f,y)=>{F();var x=m();Z(()=>V(x,S(X0)?"Starting…":"Rebuild all")),z(f,x)},$$slots:{default:!0}}),I(v0),i(v0,()=>q(ES)),I(d0);var d1=C(d0,2);let rf;var e1=L(d1),$0=L(e1),$f=L($0);M1($f,{size:18});var of=C($f,2),o0=L(of),KI=C(L(o0));{var RI=(f)=>{var y=Y9();z(f,y)};H(KI,(f)=>{if(S($))f(RI)})}I(o0);var _f=C(o0,2),PI=L(_f);{var FI=(f)=>{var y=m(`Not available while LiteLLM + Bedrock mode is enabled — Claude credentials are
19
- provided by the LiteLLM endpoint instead.`);z(f,y)},DI=(f)=>{var y=m(`Provide GitHub and Claude Code tokens yourself instead of discovering them from this
20
- machine. Useful on a headless server or when signed in as a different identity. A
21
- token set here is injected into every new container and overrides host credential
22
- discovery.`);z(f,y)};H(PI,(f)=>{if(S($))f(FI);else f(DI,-1)})}I(_f),I(of),I($0);var nf=C($0,2),a1=L(nf);O(a1),F(2),I(nf),I(e1),i(e1,()=>q(cS));var fS=C(e1,2);{var HI=(f)=>{var y=p0(),x=L(y),X=L(x,!0);I(x),I(y),Z(()=>V(X,S(Y0))),z(f,y)};H(fS,(f)=>{if(S(Y0))f(HI)})}var UI=C(fS,2);{var MI=(f)=>{var y=K9(),x=B1(y),X=C(L(x),2),l=L(X);O(l);var d=C(l,2);t(d,{type:"submit",get disabled(){return S(Kf)},children:(W,U)=>{F();var T=m("Save");z(W,T)},$$slots:{default:!0}}),I(X);var g=C(X,2);{var Y1=(W)=>{var U=r(),T=L(U,!0);I(U),Z(()=>V(T,S(P0))),z(W,U)},K1=(W)=>{var U=L1(),T=L(U,!0);I(U),Z(()=>V(T,S(T1))),z(W,U)};H(g,(W)=>{if(S(P0))W(Y1);else if(S(T1))W(K1,1)})}I(x),i(x,()=>q(mS));var a=C(x,2),Y=C(L(a),2),G=L(Y);O(G);var k=C(G,2);t(k,{type:"submit",get disabled(){return S(Rf)},children:(W,U)=>{F();var T=m("Save");z(W,T)},$$slots:{default:!0}}),I(Y);var z1=C(Y,2);{var N1=(W)=>{var U=r(),T=L(U,!0);I(U),Z(()=>V(T,S(H0))),z(W,U)},R1=(W)=>{var U=L1(),T=L(U,!0);I(U),Z(()=>V(T,S(b1))),z(W,U)};H(z1,(W)=>{if(S(H0))W(N1);else if(S(b1))W(R1,1)})}I(a),i(a,()=>q(tS)),Z(()=>{v(l,"placeholder",S(K0)?"•••••••• (saved)":"ghp_… / gho_…"),v(G,"placeholder",S(F0)?"•••••••• (saved)":"sk-ant-oat…")}),u(l,()=>S(R0),(W)=>N(R0,W)),u(G,()=>S(D0),(W)=>N(D0,W)),z(f,y)};H(UI,(f)=>{if(S(f1)&&!S($))f(MI)})}I(d1);var v1=C(d1,2);let SS;var r1=L(v1),_0=L(r1),IS=L(_0);M1(IS,{size:18});var LS=C(IS,2),n0=L(LS),BI=C(L(n0));{var lI=(f)=>{var y=R9();z(f,y)};H(BI,(f)=>{if(S(f1))f(lI)})}I(n0);var yS=C(n0,2),OI=L(yS);{var kI=(f)=>{var y=m(`Not available while "Set tokens manually" is enabled — these modes are mutually
23
- incompatible.`);z(f,y)},TI=(f)=>{var y=P9();F(2),z(f,y)};H(OI,(f)=>{if(S(f1))f(kI);else f(TI,-1)})}I(yS),I(LS),I(_0);var NS=C(_0,2),$1=L(NS);O($1),F(2),I(NS),I(r1),i(r1,()=>q(gS));var CS=C(r1,2);{var bI=(f)=>{var y=p0(),x=L(y),X=L(x,!0);I(x),I(y),Z(()=>V(X,S(U0))),z(f,y)};H(CS,(f)=>{if(S(U0))f(bI)})}var iI=C(CS,2);{var qI=(f)=>{var y=F9(),x=B1(y),X=C(L(x),2),l=L(X);O(l);var d=C(l,2);t(d,{type:"submit",get disabled(){return S(Df)},children:(p,D)=>{F();var b=m("Save");z(p,b)},$$slots:{default:!0}}),I(X);var g=C(X,2);{var Y1=(p)=>{var D=r(),b=L(D,!0);I(D),Z(()=>V(b,S(M0))),z(p,D)},K1=(p)=>{var D=L1(),b=L(D,!0);I(D),Z(()=>V(b,S(i1))),z(p,D)};H(g,(p)=>{if(S(M0))p(Y1);else if(S(i1))p(K1,1)})}I(x),i(x,()=>q(uS));var a=C(x,2),Y=C(L(a),2),G=L(Y);O(G);var k=C(G,2);t(k,{type:"submit",get disabled(){return S(Hf)},children:(p,D)=>{F();var b=m("Save");z(p,b)},$$slots:{default:!0}}),I(Y);var z1=C(Y,2);{var N1=(p)=>{var D=r(),b=L(D,!0);I(D),Z(()=>V(b,S(O0))),z(p,D)},R1=(p)=>{var D=L1(),b=L(D,!0);I(D),Z(()=>V(b,S(q1))),z(p,D)};H(z1,(p)=>{if(S(O0))p(N1);else if(S(q1))p(R1,1)})}I(a),i(a,()=>q(sS));var W=C(a,2),U=C(L(W),2),T=L(U),C1=C(L(T),2);O(C1),I(T);var P1=C(T,2),S1=C(L(P1),2);O(S1),I(P1);var F1=C(P1,2),j1=C(L(F1),2);O(j1),I(F1);var jf=C(F1,2),pS=C(L(jf),2);O(pS),I(jf);var Af=C(jf,2),ZS=C(L(Af),2);O(ZS),I(Af);var JS=C(Af,2),$I=L(JS);t($I,{type:"submit",get disabled(){return S(kf)},children:(p,D)=>{F();var b=m("Save models");z(p,b)},$$slots:{default:!0}}),I(JS),I(U);var oI=C(U,2);{var _I=(p)=>{var D=r(),b=L(D,!0);I(D),Z(()=>V(b,S(k0))),z(p,D)},nI=(p)=>{var D=L1(),b=L(D,!0);I(D),Z(()=>V(b,S(h1))),z(p,D)};H(oI,(p)=>{if(S(k0))p(_I);else if(S(h1))p(nI,1)})}I(W),i(W,()=>q(dS)),Z(()=>v(G,"placeholder",S(l0)?"•••••••• (saved)":"sk-…")),u(l,()=>S(Ff),(p)=>N(Ff,p)),u(G,()=>S(B0),(p)=>N(B0,p)),u(C1,()=>S(Uf),(p)=>N(Uf,p)),u(S1,()=>S(Mf),(p)=>N(Mf,p)),u(j1,()=>S(Bf),(p)=>N(Bf,p)),u(pS,()=>S(lf),(p)=>N(lf,p)),u(ZS,()=>S(Of),(p)=>N(Of,p)),z(f,y)};H(iI,(f)=>{if(S($))f(qI)})}I(v1);var ff=C(v1,2),o1=L(ff),Sf=L(o1),hI=L(Sf);A0(hI,{size:18}),F(2),I(Sf);var xS=C(Sf,2),_1=L(xS);O(_1),F(2),I(xS),I(o1),i(o1,()=>q(eS));var wS=C(o1,2);{var EI=(f)=>{var y=p0(),x=L(y),X=L(x,!0);I(x),I(y),Z(()=>V(X,S(T0))),z(f,y)};H(wS,(f)=>{if(S(T0))f(EI)})}var cI=C(wS,2);{var mI=(f)=>{var y=U9(),x=L(y);A1(x,20,()=>S(x1),(Y)=>Y,(Y,G)=>{var k=D9(),z1=L(k);A1(z1,16,()=>S(x1).filter((S1)=>S1!==G),(S1)=>S1,(S1,F1)=>{var j1=PS();O(j1),Z(()=>Vf(j1,F1)),z(S1,j1)});var N1=C(z1,2),R1=L(N1,!0);I(N1);var W=C(N1,2);let U;var T=L(W,!0);I(W);var C1=C(W,2),P1=L(C1);FS(P1,{size:13}),I(C1),I(k),i(k,()=>q(vS(G))),Z(()=>{V(R1,G),U=p1(W,1,"var-status svelte-1n6ht58",null,U,{present:S(w1)[G]}),v(W,"title",S(w1)[G]?"Set on this host — will be injected":"Not set on this host — will be skipped"),V(T,S(w1)[G]?"set":"missing"),C1.disabled=S(c1),v(C1,"aria-label",`Remove ${G}`)}),z(Y,k)},(Y)=>{var G=H9();z(Y,G)}),I(x);var X=C(x,2),l=L(X);A1(l,16,()=>S(x1),(Y)=>Y,(Y,G)=>{var k=PS();O(k),Z(()=>Vf(k,G)),z(Y,k)});var d=C(l,2);O(d);var g=C(d,2);t(g,{type:"submit",get icon(){return DS},get disabled(){return S(c1)},children:(Y,G)=>{F();var k=m("Add");z(Y,k)},$$slots:{default:!0}}),I(X),i(X,()=>q(aS));var Y1=C(X,2);{var K1=(Y)=>{var G=r(),k=L(G,!0);I(G),Z(()=>V(k,S(y1))),z(Y,G)},a=(Y)=>{var G=L1(),k=L(G,!0);I(G),Z(()=>V(k,S(G1))),z(Y,G)};H(Y1,(Y)=>{if(S(y1))Y(K1);else if(S(G1))Y(a,1)})}I(y),u(d,()=>S(b0),(Y)=>N(b0,Y)),z(f,y)};H(cI,(f)=>{if(S(E1))f(mI)})}I(ff);var If=C(ff,2),zS=L(If),Lf=L(zS),tI=L(Lf);I0(tI,{size:18}),F(2),I(Lf);var gI=C(Lf,2);Zf(gI,{}),I(zS),I(If);var yf=C(If,2),jS=L(yf),Nf=L(jS),uI=L(Nf);S0(uI,{size:18}),F(2),I(Nf);var AS=C(Nf,2),Cf=L(AS);O(Cf),F(2),I(AS),I(jS),I(yf);var xf=C(yf,2),wf=L(xf),zf=L(wf),sI=L(zf);f0(sI,{size:18}),F(2),I(zf);var dI=C(zf,2);{var eI=(f)=>{var y=M9();z(f,y)},aI=(f)=>{t(f,{type:"submit",variant:"danger",children:(y,x)=>{F();var X=m("Delete & shut down");z(y,X)},$$slots:{default:!0}})};H(dI,(f)=>{if(S(Q))f(eI);else f(aI,-1)})}I(wf),i(wf,()=>q($S)),I(xf);var vI=C(xf,2);Jf(vI,{}),I(hf),I(i0);var rI=C(i0,2);HS(rI,{toastOptions:{style:"border:1px solid var(--ink); background:var(--bg-card); color:var(--ink); box-shadow:4px 4px 0 var(--ink); font-family:var(--font-mono); font-size:13px;"}}),Z(()=>{Z1(u1,S(J0)),u1.disabled=S(Gf),rf=p1(d1,1,"card svelte-1n6ht58",null,rf,{"disabled-card":S($)}),Z1(a1,S(f1)),a1.disabled=S(Yf)||S($),SS=p1(v1,1,"card svelte-1n6ht58",null,SS,{"disabled-card":S(f1)}),Z1($1,S($)),$1.disabled=S(Pf)||S(f1),Z1(_1,S(E1)),_1.disabled=S(Tf),Z1(Cf,S(J))}),u(c0,()=>S(E),(f)=>N(E,f)),u(s0,()=>S(n),(f)=>N(n,f)),I1("change",u1,(f)=>{N(J0,f.currentTarget.checked,!0),f.currentTarget.form?.requestSubmit()}),I1("change",a1,(f)=>{N(f1,f.currentTarget.checked,!0),f.currentTarget.form?.requestSubmit()}),I1("change",$1,(f)=>{N($,f.currentTarget.checked,!0),f.currentTarget.form?.requestSubmit()}),I1("change",_1,(f)=>{N(E1,f.currentTarget.checked,!0),f.currentTarget.form?.requestSubmit()}),I1("change",Cf,(f)=>rS(f.currentTarget.checked)),z(A,bf),x0()}w0(["change"]);kS("SettingsView_8hmarwmf8onq",Xf);
@@ -1,2 +0,0 @@
1
- import{x as tr}from"/_mochi/client/chunk-zjcg8kw5.js";import{$ as N,A as b,Aa as Z,B as Fe,Ba as P,Ca as qt,D as Oe,F as L,G as Q,Ga as Ct,H as mt,Ha as it,I as kt,J as D,Ja as we,K as Ve,Ka as V,L as je,La as vt,Ma as ot,Na as d,O as w,Oa as Ne,Pa as Ze,R as j,S,T,W as q,X as R,Y as O,Z as Le,_ as G,aa as C,fa as s,ga as J,ha as M,ja as at,ka as $t,la as Qe,ma as x,oa as Ue,pa as E,qa as f,ra as ht,sa as H,ta as Be,ua as ct,va as Tt,wa as nt,xa as U,y as st}from"/_mochi/client/chunk-kgn1b2t1.js";var ar={name:"anchor",pixels:["...##...","..#..#..","..#..#..",".######.","...##...","#..##..#","########",".######."]},Ft=ar;var or={name:"bear",pixels:["##....##","###..###","########","##.##.##","########","########","###..###",".######."]},Lt=or;var pr={name:"bee",pixels:[".#....#.","##.##.##","#.####.#",".######.",".######.","........",".######.","..####.."]},Qt=pr;var sr={name:"bob-marley",pixels:["..####..",".######.","##....##","#.#..#.#","#......#","##.##.##","#.####.#","#..##..#"]},Bt=sr;var nr={name:"car",pixels:["........","..####..","..#..#..","..#..#..","########","########","########",".##..##."]},Ot=nr;var ir={name:"carpathians",pixels:["........",".#......","......##",".....###","#...####","##.#####","###.####","####.###"]},Wt=ir;var mr={name:"cat",pixels:["##....##","##....##","########","##.##.##","########","#.####.#","########",".####.##"]},Yt=mr;var lr={name:"cat-body",pixels:["....##..","#.#..###","###....#","###..###","########","########","#.#..#.#","#.#..#.#"]},Gt=lr;var fr={name:"cat-sits",pixels:["..#..#..","..####..","..####..",".####...","####..##","####.#.#","####...#",".######."]},Jt=fr;var dr={name:"celtic-cross",pixels:["...##...",".#.##.#.","...##...","########","########","...##...",".#.##.#.","...##..."]},Kt=dr;var $r={name:"cherry",pixels:["......##","....###.","...##.#.","..#..#..",".##.##..","#.###.#.","#.###.#.",".###.#.."]},Xt=$r;var cr={name:"cotton",pixels:["....##..","....##..",".##.....",".##..##.","...#.##.","....#...","...#....","...#...."]},Zt=cr;var vr={name:"crab",pixels:[".#....#.","##....##","##.##.##",".######.","########","##.##.##","##....##",".#....#."]},Ut=vr;var ur={name:"crown",pixels:["#......#","#..##..#","##.##.##","##.##.##","########","#.#.#.#.","########","########"]},wt=ur;var Ar={name:"diamond",pixels:[".######.","#.#..#.#","########","##.##.##",".#.##.#.",".##..##.","..####..","...##..."]},Nt=Ar;var yr={name:"dog",pixels:["##....##","##.##.##","########","###..###","########","########","##.##.##",".######."]},Vt=yr;var _r={name:"elephant",pixels:["...###..",".#####..","####.#..","######..","######.#","##.##.#.","##.##...","##.##..."]},jt=_r;var xr={name:"fish",pixels:["......#.",".###.##.","#####.##","#.#####.","#.#####.","#####.##",".###.##.","......#."]},Dt=xr;var gr={name:"fleur-de-lis",pixels:["...##...","...#....",".###.##.","#.##...#","...##...",".#.##.#.",".######.","...##..."]},te=gr;var hr={name:"flower",pixels:["..#..#..",".###.##.","########",".######.","..####..","...##...","..##.##.","...##..."]},ee=hr;var Tr={name:"fox",pixels:["##....##","##....##","########","###..###","########","########",".######.","..####.."]},re=Tr;var Mr={name:"frog",pixels:[".#....#.","###..###","########","########","########","########",".######.","..####.."]},ae=Mr;var zr={name:"ghost",pixels:["..####..",".######.","##.##.##","##.##.##","########","########","########","#.##.##."]},oe=zr;var br={name:"giraffe",pixels:["....#.#.","....####","....#...","....#...","....#...","....#...","#####...","##.##..."]},pe=br;var Cr={name:"glasses",pixels:["##..##..","#.#.##.#",".#######","........",".##..##.",".##..##.","#..##..#","########"]},se=Cr;var qr={name:"heart",pixels:[".##..##.","########","########","########",".######.","..####..","...##...","........"]},ne=qr;var kr={name:"invader",pixels:["#......#",".#....#.","########","##.##.##","########","..####..",".##..##.","#.#..#.#"]},ie=kr;var Hr={name:"kangaroo",pixels:["..#.#...","..###...",".####...","...##...","..#####.","...####.","...##.#.","..###..#"]},me=Hr;var Ir={name:"key",pixels:[".####...","##..##..","##..##..","##..##..",".####...","..##....","..####..","..##.##."]},le=Ir;var Rr={name:"lightning",pixels:["...#####","..####..",".####...",".#######","..######","...#####","..####..",".###...."]},fe=Rr;var Sr={name:"mushroom",pixels:["..####..",".######.","########","########","########","..####..","..####..",".######."]},de=Sr;var Pr={name:"octopus",pixels:["..####..",".######.","###..###","########","########","########",".######.","#.#.#.#."]},$e=Pr;var Er={name:"owl",pixels:["#......#","##....##",".######.",".#.##.#.",".#.##.#.",".######.",".######.","..#..#.."]},ce=Er;var Fr={name:"penguin",pixels:["..####..",".######.",".##..##.",".#.##.#.","##...##.","##...##.","#######.",".#....#."]},ve=Fr;var Lr={name:"planet",pixels:["...###..","..#####.","#.#####.",".#######","..#####.","..####..",".###....","........"]},ue=Lr;var Qr={name:"rabbit",pixels:[".#....#.",".##..##.",".##..##.","..####..",".######.","###..###","#..##..#",".######."]},Ae=Qr;var Br={name:"rat",pixels:["...#.#..","...#####","...#.#..","..###...",".####.#.","#####..#","####..#.",".#####.."]},ye=Br;var Or={name:"robot",pixels:["...##...","...#....",".######.","#.####.#","#..##..#",".######.",".#####..",".######."]},_e=Or;var Wr={name:"rocket",pixels:["...##...","..####..","..#..#..","..####..",".######.","##.##.##","..#..#..","...##..."]},xe=Wr;var Yr={name:"sea",pixels:["#.#.....",".#..#.#.",".....#..","...#....","........","########",".##..###","##.###.."]},ge=Yr;var Gr={name:"skull",pixels:[".######.","########","#.####.#","#.#..#.#","########","##.##.##",".#.##.#.",".##.##.."]},he=Gr;var Jr={name:"snail",pixels:[".####..#","#....#.#","#.##.#.#","#.#..#.#","#....##.","#...#.#.","######.#",".######."]},Te=Jr;var Kr={name:"snake",pixels:["...###..",".###..#.","#.#..#..","##..#..#","...#..#.","..#...##",".#.....#",".######."]},Me=Kr;var Xr={name:"snakegame",pixels:["########","#......#","#.##...#","#.#..#.#","#.##...#","#..##..#","#......#","########"]},ze=Xr;var Zr={name:"star",pixels:["...##...","...##...","########",".######.",".######.",".##..##.","##....##","#......#"]},be=Zr;var Ur={name:"svelte",pixels:["..#####.",".###..#.","##...#..","########","########","..#...##",".#..###.",".####..."]},Ce=Ur;var wr={name:"target",pixels:["..####..",".#....#.","#......#","#..##..#","#..##..#","#......#",".#....#.","..####.."]},qe=wr;var Nr={name:"tree",pixels:["...##...","..####..",".######.","..####..",".######.","########","...##...","...##..."]},ke=Nr;var Vr={name:"ukraine",pixels:["...##...","#..##..#","##.##.##","#..##..#","##.##.##","#..##..#","########","...##..."]},He=Vr;var jr={name:"whale",pixels:["....#...","...###..","..####.#",".#.####.","######.#",".#####..","..####..","...##..."]},Ie=jr;var Dr={name:"wheat",pixels:["........","....#.#.","...#.#..","..#.#.#.","..##.#..","..###...",".#......","#......."]},Re=Dr;var ta={name:"yinyan",pixels:[".......#",".##...##",".##..###","....####","...#####","..###..#",".####..#","########"]},Se=ta;var Ro=0,So=1,Po=8,Eo=8;function bt(e){let t=[];for(let r of e.pixels)for(let a of r)t.push(a==="#"?1:0);return t}var Pe=[Ft,Lt,Qt,Bt,Ot,Wt,Yt,Gt,Jt,Kt,Xt,Zt,Ut,wt,Nt,Vt,jt,Dt,te,ee,re,ae,oe,pe,se,ne,ie,me,le,fe,de,$e,ce,ve,ue,Ae,ye,_e,xe,ge,he,Te,Me,ze,be,Ce,qe,ke,He,Ie,Re,Se];function ea(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return t>>>0}function Ee(e){return Pe[ea(e)%Pe.length]}var ra=x("<span></span>"),aa=x('<span class="invert svelte-1pre9qb" aria-hidden="true"></span> <span class="bloom svelte-1pre9qb" aria-hidden="true"></span>',1),oa=x('<span role="img"><!> <!></span>');function pa(e,t){L(t,!0);let r=d(t,"id",3,""),a=d(t,"scale",3,6),n=d(t,"interactive",3,!1),i=j(!1),o=j(!1),c=j("50%"),l=j("50%"),u=j(0),y=j(0),$;function A(k){let B=k.currentTarget.getBoundingClientRect(),K=(k.clientX-B.left)/B.width,X=(k.clientY-B.top)/B.height;T(c,K*100+"%"),T(l,X*100+"%"),T(y,(K*360+X*140)%360),T(u,(X*300-K*120+360)%360)}function v(k){if(!n())return;k.currentTarget.setPointerCapture?.(k.pointerId),A(k),clearTimeout($),T(o,!1),T(i,!0)}function m(k){if(s(i))A(k)}function p(){if(!s(i))return;T(i,!1),T(o,!0),clearTimeout($),$=setTimeout(()=>T(o,!1),250)}Le(()=>()=>clearTimeout($));let _=w(()=>Math.max(1,Math.round(a()))),h=w(()=>s(_)>=2?0.5:0),g=w(()=>bt(t.art??Ee(r()))),I=w(()=>Array.from({length:100},(k,B)=>{let K=Math.floor(B/10),X=B%10;return K>=1&&K<=8&&X>=1&&X<=8?s(g)[(K-1)*8+(X-1)]:0}));var z=oa();let F;var rt=q(z);ct(rt,17,()=>s(I),Be,(k,B)=>{var K=ra();let X;C(()=>X=Z(K,1,"px svelte-1pre9qb",null,X,{on:s(B)===1})),f(k,K)});var er=O(rt,2);{var rr=(k)=>{var B=aa();Fe(2),f(k,B)};H(er,(k)=>{if(n())k(rr)})}b(z),C(()=>{F=Z(z,1,"avatar svelte-1pre9qb",null,F,{interactive:n(),pressed:s(i),ghosting:s(o)}),Ct(z,"aria-label",t.name),Ct(z,"title",t.name),P(z,`width:${10*s(_)}px;height:${10*s(_)}px;--gap:${s(h)??""}px;--bx:${s(c)??""};--by:${s(l)??""};--spin:${s(u)??""}deg;--hue:${s(y)??""}deg`)}),$t("pointerdown",z,v),$t("pointermove",z,m),$t("pointerup",z,p),at("pointercancel",z,p),at("lostpointercapture",z,p),f(e,z),Q()}Qe(["pointerdown","pointermove","pointerup"]);var sa=new Set(["$$slots","$$events","$$legacy","variant","size","ghost","icon","iconSize","href","disabled","onclick","children"]),na=x("<a><!> <!></a>"),ia=x("<button><!> <!></button>");function ma(e,t){let r=d(t,"variant",3,"default"),a=d(t,"size",3,"md"),n=d(t,"ghost",3,!1),i=d(t,"disabled",3,!1),o=vt(t,sa),c=w(()=>t.icon),l=w(()=>t.iconSize??(a()==="lg"?18:a()==="sm"?13:15));var u=E(),y=R(u);{var $=(v)=>{var m=na();it(m,()=>({class:`btn ${r()??""} ${a()??""}`,href:i()?void 0:t.href,"aria-disabled":i()||void 0,tabindex:i()?-1:void 0,...o,[qt]:{ghost:n()}}),void 0,void 0,void 0,"svelte-1klcfz0");var p=q(m);{var _=(g)=>{var I=E(),z=R(I);U(z,()=>s(c),(F,rt)=>{rt(F,{get size(){return s(l)}})}),f(g,I)};H(p,(g)=>{if(s(c))g(_)})}var h=O(p,2);nt(h,()=>t.children??st),b(m),f(v,m)},A=(v)=>{var m=ia();it(m,()=>({class:`btn ${r()??""} ${a()??""}`,onclick:t.onclick,disabled:i(),...o,[qt]:{ghost:n()}}),void 0,void 0,void 0,"svelte-1klcfz0");var p=q(m);{var _=(g)=>{var I=E(),z=R(I);U(z,()=>s(c),(F,rt)=>{rt(F,{get size(){return s(l)}})}),f(g,I)};H(p,(g)=>{if(s(c))g(_)})}var h=O(p,2);nt(h,()=>t.children??st),b(m),f(v,m)};H(y,(v)=>{if(t.href)v($);else v(A,-1)})}f(e,u)}Oe();function Ht(e,t,r,a){var n,i,o=!1,c=r.length>=2,l=(m,p,_)=>{if(n=p,c)i=m;if(!o){let h=t(m,p,_);if(t.length<2)p(h);else return h}o=!1},u=kt(e,l,a),y=!Array.isArray(e);function $(m){var p=r(m,i);if(y)o=!0,e.set(p);else p.forEach((_,h)=>{o=!0,e[h].set(_)});o=!1}var A=!1;function v(m){var p,_,h,g;if(A){g=m(D(u)),n(g);return}var I=u.subscribe((z)=>{if(!A)h=z;else if(!p)p=!0;else _=!0});if(g=m(h),A=!0,n(g),I(),A=!1,_)g=D(u);if(p)$(g)}return{subscribe:u.subscribe,set(m){v(()=>m)},update:v}}var la=20,tt=mt([]),It=mt(null),ut=new Map,We=(e)=>{if(ut.has(e))return;let t=setTimeout(()=>{ut.delete(e),St(e)},1000);ut.set(e,t)},fa=(e)=>{let t=ut.get(e);if(t)clearTimeout(t)};function Rt(e){if(e.id)fa(e.id);tt.update((t)=>t.map((r)=>r.id===e.id?{...r,...e}:r))}function da(e){tt.update((t)=>[e,...t].slice(0,la))}function Ye(e){if(D(tt).find((t)=>t.id===e.id))Rt(e);else da(e)}function Ge(e){tt.update((t)=>{if(e)We(e);else t.forEach((r)=>{We(r.id)});return t.map((r)=>r.id===e||e===void 0?{...r,visible:!1}:r)})}function St(e){tt.update((t)=>{if(e===void 0)return[];return t.filter((r)=>r.id!==e)})}function Je(e){It.set(e)}function Ke(e){let t;It.update((r)=>{return t=e-(r||0),null}),tt.update((r)=>r.map((a)=>({...a,pauseDuration:a.pauseDuration+t})))}var $a={blank:4000,error:4000,success:2000,loading:1/0,custom:4000};function Pt(e={}){return{toasts:Ht(tt,(r)=>r.map((a)=>({...e,...e[a.type],...a,duration:a.duration||e[a.type]?.duration||e?.duration||$a[a.type],style:[e.style,e[a.type]?.style,a.style].join(";")})),(r)=>r),pausedAt:It}}var ca=(e)=>typeof e==="function",At=(e,t)=>ca(e)?e(t):e;var Xe=(()=>{let e=0;return()=>{return e+=1,e.toString()}})(),lt=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})();var va=(e,t="blank",r)=>({createdAt:Date.now(),visible:!0,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...r,id:r?.id||Xe()}),ft=(e)=>(t,r)=>{let a=va(t,e,r);return Ye(a),a.id},Y=(e,t)=>ft("blank")(e,t);Y.error=ft("error");Y.success=ft("success");Y.loading=ft("loading");Y.custom=ft("custom");Y.dismiss=(e)=>{Ge(e)};Y.remove=(e)=>St(e);Y.promise=(e,t,r)=>{let a=Y.loading(t.loading,{...r,...r?.loading});return e.then((n)=>{return Y.success(At(t.success,n),{id:a,...r,...r?.success}),n}).catch((n)=>{Y.error(At(t.error,n),{id:a,...r,...r?.error})}),e};var dt=Y;function ua(e,t,r){let{reverseOrder:a,gutter:n=8,defaultPosition:i}=r||{},o=t.filter((y)=>(y.position||i)===(e.position||i)&&y.height),c=o.findIndex((y)=>y.id===e.id),l=o.filter((y,$)=>$<c&&y.visible).length;return o.filter((y)=>y.visible).slice(...a?[l+1]:[0,l]).reduce((y,$)=>y+($.height||0)+n,0)}var Aa={startPause(){Je(Date.now())},endPause(){Ke(Date.now())},updateHeight:(e,t)=>{Rt({id:e,height:t})},calculateOffset:ua};function yt(e){let{toasts:t,pausedAt:r}=Pt(e),a=new Map,n,i=[r.subscribe((o)=>{if(o){for(let[,c]of a)clearTimeout(c);a.clear()}n=o}),t.subscribe((o)=>{if(n)return;let c=Date.now();for(let l of o){if(a.has(l.id))continue;if(l.duration===1/0)continue;let u=(l.duration||0)+l.pauseDuration-(c-l.createdAt);if(u<0){if(l.visible)dt.dismiss(l.id);return null}a.set(l.id,setTimeout(()=>dt.dismiss(l.id),u))}})];return Ze(()=>{for(let o of i)o()}),{toasts:t,handlers:Aa}}var ya=x('<div class="svelte-1did3zw"></div>');function _t(e,t){let r=d(t,"primary",8,"#61d345"),a=d(t,"secondary",8,"#fff");var n=ya();let i;C(()=>i=P(n,"",i,{"--primary":r(),"--secondary":a()})),f(e,n)}var _a=x('<div class="svelte-1ro2ggf"></div>');function xt(e,t){let r=d(t,"primary",8,"#ff4b4b"),a=d(t,"secondary",8,"#fff");var n=_a();let i;C(()=>i=P(n,"",i,{"--primary":r(),"--secondary":a()})),f(e,n)}var xa=x('<div class="svelte-tyythq"></div>');function gt(e,t){let r=d(t,"primary",8,"#616161"),a=d(t,"secondary",8,"#e0e0e0");var n=xa();let i;C(()=>i=P(n,"",i,{"--primary":r(),"--secondary":a()})),f(e,n)}var ga=x('<div class="animated svelte-t33qv2"> </div>'),ha=x('<div class="status svelte-t33qv2"><!></div>'),Ta=x('<div class="indicator svelte-t33qv2"><!> <!></div>');function pt(e,t){L(t,!1);let r=S(),a=S(),n=S(),i=d(t,"toast",8);G(()=>(s(r),s(a),s(n),M(i())),()=>{(($)=>{T(r,$.type),T(a,$.icon),T(n,$.iconTheme)})(i())}),N();var o=E(),c=R(o);{var l=($)=>{var A=ga(),v=q(A,!0);b(A),C(()=>ht(v,s(a))),f($,A)},u=($)=>{var A=E(),v=R(A);U(v,()=>s(a),(m,p)=>{p(m,{})}),f($,A)},y=($)=>{var A=Ta(),v=q(A);gt(v,ot(()=>s(n)));var m=O(v,2);{var p=(_)=>{var h=ha(),g=q(h);{var I=(F)=>{xt(F,ot(()=>s(n)))},z=(F)=>{_t(F,ot(()=>s(n)))};H(g,(F)=>{if(s(r)==="error")F(I);else F(z,-1)})}b(h),f(_,h)};H(m,(_)=>{if(s(r)!=="loading")_(p)})}b(A),f($,A)};H(c,($)=>{if(typeof s(a)==="string")$(l);else if(typeof s(a)<"u")$(u,1);else if(s(r)!=="blank")$(y,2)})}f(e,o),Q()}var Ma=x("<div><!></div>");function et(e,t){L(t,!1);let r=d(t,"toast",8);V();var a=Ma();it(a,()=>({class:"message",...r().ariaProps}),void 0,void 0,void 0,"svelte-1gudbf6");var n=q(a);{var i=(c)=>{var l=Ue();C(()=>ht(l,(M(r()),J(()=>r().message)))),f(c,l)},o=(c)=>{var l=E(),u=R(l);U(u,()=>r().message,(y,$)=>{$(y,{get toast(){return r()}})}),f(c,l)};H(n,(c)=>{if(M(r()),J(()=>typeof r().message==="string"))c(i);else c(o,-1)})}b(a),f(e,a),Q()}var za=x("<!> <!>",1),ba=x("<div><!></div>");function Mt(e,t){L(t,!1);let r=d(t,"toast",8),a=d(t,"position",24,()=>{return}),n=d(t,"style",8,""),i=d(t,"Component",24,()=>{return}),o=S(),c=S();G(()=>(M(r()),M(a()),lt),()=>{let v=(r().position||a()||"top-center").includes("top");T(o,v?1:-1);let[m,p]=lt()?["fadeIn","fadeOut"]:["enter","exit"];T(c,r().visible?m:p)}),N(),V();var l=ba();let u;var y=q(l);{var $=(v)=>{var m=E(),p=R(m);U(p,i,(_,h)=>{h(_,{$$slots:{icon:(g,I)=>{pt(g,{get toast(){return r()},slot:"icon"})},message:(g,I)=>{et(g,{get toast(){return r()},slot:"message"})}}})}),f(v,m)},A=(v)=>{var m=E(),p=R(m);Tt(p,t,"default",{get ToastIcon(){return pt},get ToastMessage(){return et},get toast(){return r()}},(_)=>{var h=za(),g=R(h);pt(g,{get toast(){return r()}});var I=O(g,2);et(I,{get toast(){return r()}}),f(_,h)}),f(v,m)};H(y,(v)=>{if(i())v($);else v(A,-1)})}b(l),C(()=>{Z(l,1,`base ${(M(r()),s(c),J(()=>r().height?s(c):"transparent"))??""} ${(M(r()),J(()=>r().className||""))??""}`,"svelte-yae3e8"),u=P(l,`${n()??""}; ${(M(r()),J(()=>r().style))??""}`,u,{"--factor":s(o)})}),f(e,l),Q()}var Ca=x("<div><!></div>");function Et(e,t){L(t,!1);let r=S(),a=S(),n=S(),i=S(),o=d(t,"toast",8),c=d(t,"setHeight",8),l=S();Ne(()=>{c()(s(l).getBoundingClientRect().height)}),G(()=>M(o()),()=>{T(r,o().position?.includes("top")?0:null)}),G(()=>M(o()),()=>{T(a,o().position?.includes("bottom")?0:null)}),G(()=>M(o()),()=>{T(n,o().position?.includes("top")?1:-1)}),G(()=>M(o()),()=>{T(i,o().position?.includes("center")&&"center"||(o().position?.includes("right")||o().position?.includes("end"))&&"flex-end"||null)}),N(),V();var u=Ca();let y,$;var A=q(u);{var v=(p)=>{et(p,{get toast(){return o()}})},m=(p)=>{var _=E(),h=R(_);Tt(h,t,"default",{get toast(){return o()}},(g)=>{Mt(g,{get toast(){return o()},get position(){return M(o()),J(()=>o().position)}})}),f(p,_)};H(A,(p)=>{if(M(o()),J(()=>o().type==="custom"))p(v);else p(m,-1)})}b(u),we(u,(p)=>T(l,p),()=>s(l)),C((p)=>{y=Z(u,1,"wrapper svelte-1pz3gqy",null,y,p),$=P(u,"",$,{"--factor":s(n),"--offset":(M(o()),J(()=>o().offset)),top:s(r),bottom:s(a),"justify-content":s(i)})},[()=>({active:o().visible,transition:!lt()})]),f(e,u),Q()}var qa=x('<div role="alert"></div>');function De(e,t){L(t,!1);let r=()=>Ve($,"$toasts",a),[a,n]=je(),i=d(t,"reverseOrder",8,!1),o=d(t,"position",8,"top-center"),c=d(t,"toastOptions",24,()=>{return}),l=d(t,"gutter",8,8),u=d(t,"containerStyle",24,()=>{return}),y=d(t,"containerClassName",24,()=>{return}),{toasts:$,handlers:A}=yt(c()),v=S();G(()=>(r(),M(o()),M(i()),M(l())),()=>{T(v,r().map((p)=>({...p,position:p.position||o(),offset:A.calculateOffset(p,r(),{reverseOrder:i(),gutter:l(),defaultPosition:o()})})))}),N(),V();var m=qa();ct(m,5,()=>s(v),(p)=>p.id,(p,_)=>{Et(p,{get toast(){return s(_)},setHeight:(h)=>A.updateHeight(s(_).id,h)})}),b(m),C(()=>{Z(m,1,`toaster ${(y()||"")??""}`,"svelte-haq5xk"),P(m,u())}),at("mouseenter",m,function(...p){A.startPause?.apply(this,p)}),at("mouseleave",m,function(...p){A.endPause?.apply(this,p)}),f(e,m),Q(),n()}var cn=dt;var ka=new Set(["$$slots","$$events","$$legacy"]);function zt(e,t){let r=vt(t,ka),a=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}]];tr(e,ot({name:"house"},()=>r,{get iconNode(){return a}}))}var Ha=x('<header class="bar svelte-fcv4i8"><a class="home svelte-fcv4i8" href="/" title="All instances" aria-label="All instances"><!></a> <!></header>');function Ia(e,t){var r=Ha(),a=q(r),n=q(a);zt(n,{size:18}),b(a);var i=O(a,2);nt(i,()=>t.children??st),b(r),f(e,r)}
2
- export{Ro as n,So as o,Po as p,Eo as q,Pe as r,pa as s,ma as t,De as u,cn as v,Ia as w};
@@ -1,2 +0,0 @@
1
- import{A as C,Aa as L,W as D,aa as G,ma as H,qa as I,ra as K}from"/_mochi/client/chunk-kgn1b2t1.js";function W(x){let _=`/p/${x.id}/`;return x.remote_workspace_folder?`${_}?folder=${encodeURIComponent(x.remote_workspace_folder)}`:_}async function Q(x,_,q="Request failed"){let $=await fetch(x,{..._,headers:{..._?.headers,["X-Codebay-Request"]:"1"}});if(!$.ok){let B=await $.json().catch(()=>null);throw Error(B?.error?.message??q)}return await $.json().catch(()=>({}))}function Y(x,_,q){return z("POST",x,_,q)}function Z(x,_,q){return z("DELETE",x,_,q)}function z(x,_,q,$){return Q(_,q===void 0?{method:x}:{method:x,headers:{"Content-Type":"application/json"},body:JSON.stringify(q)},$)}var S=H("<span> </span>");function U(x,_){let q={creating:"Booting…",running:"Running",stopped:"Stopped",error:"Error"};var $=S(),B=D($,!0);C($),G(()=>{L($,1,`status ${_.status??""}`,"svelte-1hqr9xd"),K(B,q[_.status])}),I(x,$)}function V(x,_,q){let $=null,B=null,R=!1,j=()=>{let N=location.protocol==="https:"?"wss:":"ws:";$=new WebSocket(`${N}//${location.host}${x}`),$.onopen=()=>q?.(),$.onmessage=(P)=>_(P.data),$.onclose=()=>{if(!R)B=setTimeout(j,1000)},$.onerror=()=>$?.close()};return j(),()=>{if(R=!0,B)clearTimeout(B);$?.close()}}function T(x,_){return V("/api/stream",(q)=>{let $;try{$=JSON.parse(q)}catch{return}x($)},_)}
2
- export{W as a,Q as b,Y as c,Z as d,U as e,V as f,T as g};
@@ -1 +0,0 @@
1
- import{x as o}from"/_mochi/client/chunk-zjcg8kw5.js";import{La as e,Ma as t}from"/_mochi/client/chunk-kgn1b2t1.js";var p=new Set(["$$slots","$$events","$$legacy"]);function r(s,i){let c=e(i,p),n=[["path",{d:"M18 6 6 18"}],["path",{d:"m6 6 12 12"}]];o(s,t({name:"x"},()=>c,{get iconNode(){return n}}))}export{r as m};
@@ -1,2 +0,0 @@
1
- import{A as x,C as v,E as S,F as y,G as _,Ha as a,La as T,Na as t,O as l,W,X as w,Y as I,fa as r,na as N,pa as L,qa as d,ta as E,ua as z,wa as A,y as C,ya as P,z as k}from"/_mochi/client/chunk-kgn1b2t1.js";v();var O={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},g=O;var $=(s)=>{for(let e in s)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1};var Q=Symbol("lucide-context");var b=()=>S(Q);var R=new Set(["$$slots","$$events","$$legacy","name","color","size","strokeWidth","absoluteStrokeWidth","iconNode","children"]),U=N("<svg><!><!></svg>");function V(s,e){y(e,!0);let o=b()??{},j=t(e,"color",19,()=>o.color??"currentColor"),n=t(e,"size",19,()=>o.size??24),h=t(e,"strokeWidth",19,()=>o.strokeWidth??2),B=t(e,"absoluteStrokeWidth",19,()=>o.absoluteStrokeWidth??!1),q=t(e,"iconNode",19,()=>[]),u=T(e,R),D=l(()=>B()?Number(h())*24/Number(n()):h());var i=U();a(i,(c)=>({...g,...c,...u,width:n(),height:n(),stroke:j(),"stroke-width":r(D),class:["lucide-icon lucide",o.class,e.name&&`lucide-${e.name}`,e.class]}),[()=>!e.children&&!$(u)&&{"aria-hidden":"true"}]);var f=W(i);z(f,17,q,E,(c,G)=>{var p=l(()=>k(r(G),2));let H=()=>r(p)[0],J=()=>r(p)[1];var m=L(),K=w(m);P(K,H,!0,(M,X)=>{a(M,()=>({...J()}))}),d(c,m)});var F=I(f);A(F,()=>e.children??C),x(i),d(s,i),_()}
2
- export{V as x};
@@ -1 +0,0 @@
1
- .page.svelte-1n6ht58{display:flex;flex-direction:column;min-height:100vh}.title.svelte-1n6ht58{display:inline-flex;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);align-items: center;padding:0 14px;font-size:12px}.content.svelte-1n6ht58{display:flex;flex-direction:column;flex:1;align-items: center;gap:16px;padding:32px 20px}.card.svelte-1n6ht58{background:var(--bg-card);border:1px solid var(--rule);width:100%;max-width:560px;height:max-content}.danger-card.svelte-1n6ht58{border-color:var(--danger)}.disabled-card.svelte-1n6ht58{opacity:.55;pointer-events:none}.danger-card.svelte-1n6ht58 .btn{white-space:nowrap;flex:none}.shutting.svelte-1n6ht58{font-family:var(--font-mono);color:var(--danger);text-align:right;flex:none;max-width:200px;font-size:12px;line-height:1.4}.row.svelte-1n6ht58{display:flex;justify-content:space-between;align-items: center;gap:16px;padding:18px}.row.divided.svelte-1n6ht58{border-top:1px solid var(--rule);align-items: flex-start}.row.divided.svelte-1n6ht58 .btn{white-space:nowrap;flex:none}.sub.svelte-1n6ht58{padding:0 18px 14px}code.svelte-1n6ht58{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--rule);border-radius:3px;padding:1px 4px;font-size:.92em}.label.svelte-1n6ht58{display:flex;color:var(--ink);align-items: flex-start;gap:12px;min-width:0}.text.svelte-1n6ht58{min-width:0}.name.svelte-1n6ht58{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:13px}.arch.svelte-1n6ht58{letter-spacing:.04em;color:var(--ink-soft);border:1px solid var(--rule);vertical-align:middle;border-radius:3px;margin-left:8px;padding:2px 6px;font-size:11px}.tip.svelte-1n6ht58{color:var(--ink-soft);background:color-mix(in srgb,var(--info)10%,transparent);border:1px solid color-mix(in srgb,var(--info)35%,transparent);border-radius:4px;width:100%;margin-top:4px;padding:8px 10px}.desc.svelte-1n6ht58{font-family:var(--font-mono);color:var(--ink-faint);margin-top:4px;font-size:12px;line-height:1.4}.image-row.svelte-1n6ht58,.token-row.svelte-1n6ht58{flex-wrap:wrap}.image-controls.svelte-1n6ht58{display:flex;flex:1;justify-content:flex-end;align-items: center;gap:8px;min-width:220px}.image-input.svelte-1n6ht58{font-family:var(--font-mono);color:var(--ink);background:var(--bg);border:1px solid var(--rule);flex:1;min-width:0;padding:8px 10px;font-size:12px}.image-input.svelte-1n6ht58:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.image-controls.svelte-1n6ht58 .btn{flex:none}.msg.svelte-1n6ht58{font-family:var(--font-mono);width:100%;margin-top:2px;font-size:12px;line-height:1.4}.msg.error.svelte-1n6ht58{color:var(--danger)}.msg.ok.svelte-1n6ht58{color:var(--ink-soft)}.switch.svelte-1n6ht58{position:relative;cursor:pointer;flex:none}.switch.svelte-1n6ht58 input:where(.svelte-1n6ht58){position:absolute;opacity:0;cursor:pointer;margin:0;inset:0}.track.svelte-1n6ht58{display:block;border:1px solid var(--rule);background:var(--bg);border-radius:999px;width:44px;height:24px;transition:background .15s}.thumb.svelte-1n6ht58{display:block;background:var(--ink-faint);border-radius:999px;width:18px;height:18px;margin:2px;transition:transform .15s,background .15s}.switch.svelte-1n6ht58 input:where(.svelte-1n6ht58):checked+.track:where(.svelte-1n6ht58){background:var(--switch-on-bg)}.switch.svelte-1n6ht58 input:where(.svelte-1n6ht58):checked+.track:where(.svelte-1n6ht58) .thumb:where(.svelte-1n6ht58){background:var(--ink);transform:translate(20px)}.switch.svelte-1n6ht58 input:where(.svelte-1n6ht58):focus-visible+.track:where(.svelte-1n6ht58){outline:2px solid var(--ink);outline-offset:2px}.model-fields.svelte-1n6ht58{display:flex;flex-direction:column;flex:1;gap:6px;min-width:220px}.model-row.svelte-1n6ht58{display:flex;align-items: center;gap:8px}.model-label.svelte-1n6ht58{font-family:var(--font-mono);color:var(--ink-soft);text-align:right;flex:none;width:72px;font-size:11px}.model-row.svelte-1n6ht58 .image-input:where(.svelte-1n6ht58){flex:1}.model-save-row.svelte-1n6ht58{display:flex;justify-content:flex-end;margin-top:4px}.var-row.svelte-1n6ht58{flex-direction:column;align-items:stretch;gap:10px}.var-list.svelte-1n6ht58{display:flex;flex-direction:column;gap:6px}.var-item.svelte-1n6ht58{display:flex;background:var(--bg);border:1px solid var(--rule);align-items: center;gap:8px;padding:6px 8px}.var-name.svelte-1n6ht58{font-family:var(--font-mono);color:var(--ink);word-break:break-all;flex:1;min-width:0;font-size:12px}.var-status.svelte-1n6ht58{font-family:var(--font-mono);letter-spacing:.04em;color:var(--danger);flex:none;font-size:11px}.var-status.present.svelte-1n6ht58{color:var(--ink-soft)}.var-remove.svelte-1n6ht58{display:inline-flex;color:var(--ink-soft);border:1px solid var(--rule);cursor:pointer;background:0 0;flex:none;justify-content:center;align-items: center;width:22px;height:22px;padding:0}.var-remove.svelte-1n6ht58:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.var-remove.svelte-1n6ht58:disabled{opacity:.4;cursor:not-allowed}.var-empty.svelte-1n6ht58{font-family:var(--font-mono);color:var(--ink-faint);font-size:12px}.var-add.svelte-1n6ht58{display:flex;gap:8px}.var-add.svelte-1n6ht58 .btn{flex:none}