codebay 0.11.1 → 0.12.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 (33) hide show
  1. package/.mochi/manifest.json +116 -108
  2. package/.mochi/svelte-client/HydratableIsland-4j3bazeq.js +1 -0
  3. package/.mochi/svelte-client/{_hydrate-AppShell_2rtnxn6pgp2rh-v65ctd99.js → _hydrate-AppShell_2rtnxn6pgp2rh-aqm4k957.js} +2 -2
  4. package/.mochi/svelte-client/{_hydrate-AvatarsView_257s9yq1wwr4f-htjfv8q9.js → _hydrate-AvatarsView_257s9yq1wwr4f-m7h7xdxn.js} +1 -1
  5. package/.mochi/svelte-client/{_hydrate-InstanceView_2ma45l9bybfhl-v07seqge.js → _hydrate-InstanceView_2ma45l9bybfhl-d256bw54.js} +1 -1
  6. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-pwbtv8ma.js +39 -0
  7. package/.mochi/svelte-client/{chunk-wjagstre.js → chunk-1ttqgrz7.js} +1 -1
  8. package/.mochi/svelte-client/{chunk-czkxd74n.js → chunk-2eaagsfc.js} +1 -1
  9. package/.mochi/svelte-client/chunk-6v5d7dex.js +2 -0
  10. package/.mochi/svelte-client/{chunk-qx1defbm.js → chunk-a5e8vytv.js} +2 -2
  11. package/.mochi/svelte-client/{chunk-hxydjtda.js → chunk-d8rdrqsh.js} +1 -1
  12. package/.mochi/svelte-client/{chunk-566rqq4c.js → chunk-d9bszcp8.js} +1 -1
  13. package/.mochi/svelte-client/chunk-krevp8yb.js +2 -0
  14. package/.mochi/svelte-client/{chunk-0zkdsrth.js → chunk-s70rry6z.js} +1 -1
  15. package/.mochi/svelte-client/{chunk-79aj59e0.js → chunk-wcfbjj3x.js} +2 -2
  16. package/.mochi/svelte-client/{chunk-y9yy1004.js → chunk-y1xjps59.js} +1 -1
  17. package/.mochi/svelte-compile/{App-mzn3dqjm.server.js → App-bhak71kt.server.js} +4 -3
  18. package/.mochi/svelte-compile/{Settings-tvc5yp08.server.js → Settings-j3aygrjb.server.js} +178 -147
  19. package/.mochi/svelte-compile/{chunk-bpqwf1nw.js → chunk-pqb403fh.js} +12 -1
  20. package/.mochi/svelte-css/AppShell-22m1mjm8nq2hn.css +1 -0
  21. package/package.json +1 -1
  22. package/src/components/AppShell.svelte +5 -1
  23. package/src/components/SettingsView.svelte +36 -1
  24. package/src/container-injections/code-server-dark.ts +216 -0
  25. package/src/lib/devcontainer.server.ts +22 -7
  26. package/src/lib/injections.server.ts +4 -2
  27. package/src/settings.ts +13 -0
  28. package/src/shell.html +17 -6
  29. package/.mochi/svelte-client/HydratableIsland-dammyce5.js +0 -1
  30. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-hj9yvqc4.js +0 -38
  31. package/.mochi/svelte-client/chunk-r3wxmmc0.js +0 -2
  32. package/.mochi/svelte-client/chunk-vs6pd2b4.js +0 -2
  33. package/.mochi/svelte-css/AppShell-36mpg5smnbmuw.css +0 -1
@@ -1,2 +1,2 @@
1
- import{a as jt,b as wi,d as Ai}from"/_mochi/client/chunk-0zkdsrth.js";import{e as ft,f as nt,g as Ft,j as ht,k as $i}from"/_mochi/client/chunk-vs6pd2b4.js";import{n as di,o as Gt,p as Oe,q as Si,u as Fi}from"/_mochi/client/chunk-79aj59e0.js";import{D as _e,E as et,F as Me,G as Pi,H as gt,I as Ei,J as zi}from"/_mochi/client/chunk-r3wxmmc0.js";import{K as ae,L as mt,M as qe}from"/_mochi/client/chunk-qx1defbm.js";import{$a as Be,Aa as ke,Ba as R,Ca as Ve,Da as x,Fa as pe,Ga as je,Ha as o,Ia as G,Ja as y,La as bi,Ma as ye,Oa as Mi,P as yi,Pa as Ni,R as f,S as ge,Sa as he,Ta as ni,Va as Ye,W as re,X as fe,Ya as O,_a as Ge,ab as Ii,ba as pt,bb as te,ca as Qt,cb as ie,da as E,db as xe,eb as Ti,fa as It,ga as C,hb as Ci,ia as r,ja as Te,jb as Vi,ka as Ie,la as n,ma as Ne,na as s,oa as ue,ra as A,sa as Kt,ta as Jt,ua as at,va as Mt,wa as e,za as pi}from"/_mochi/client/chunk-566rqq4c.js";import{kb as Li}from"/_mochi/client/chunk-czkxd74n.js";var oi=!1;class Zt extends Date{#e=C(super.getTime());#t=new Map;#i=Kt;constructor(...i){super(...i);if(!oi)this.#a()}#a(){oi=!0;var i=Zt.prototype,t=Date.prototype,a=Object.getOwnPropertyNames(t);for(let l of a){if(l.startsWith("get")||l.startsWith("to")||l==="valueOf")i[l]=function(...c){if(c.length>0)return e(this.#e),t[l].apply(this,c);var h=this.#t.get(l);if(h===void 0){let g=Kt;Jt(this.#i),h=E(()=>{return e(this.#e),t[l].apply(this,c)}),this.#t.set(l,h),Jt(g)}return e(h)};if(l.startsWith("set"))i[l]=function(...c){var h=t[l].apply(this,c);return r(this.#e,t.getTime.call(this)),h}}}}var Di=["forEach","isDisjointFrom","isSubsetOf","isSupersetOf"],Ri=["difference","intersection","symmetricDifference","union"],mi=!1;class He extends Set{#e=new Map;#t=C(0);#i=C(0);#a=at||-1;constructor(i){super();if(i){for(var t of i)super.add(t);this.#i.v=super.size}if(!mi)this.#r()}#l(i){return at===this.#a?C(i):It(i)}#r(){mi=!0;var i=He.prototype,t=Set.prototype;for(let a of Di)i[a]=function(...l){return e(this.#t),t[a].apply(this,l)};for(let a of Ri)i[a]=function(...l){e(this.#t);var c=t[a].apply(this,l);return new He(c)}}has(i){var t=super.has(i),a=this.#e,l=a.get(i);if(l===void 0){if(!t)return e(this.#t),!1;l=this.#l(!0),a.set(i,l)}return e(l),t}add(i){if(!super.has(i))super.add(i),r(this.#i,super.size),Te(this.#t);return this}delete(i){var t=super.delete(i),a=this.#e,l=a.get(i);if(l!==void 0)a.delete(i),r(l,!1);if(t)r(this.#i,super.size),Te(this.#t);return t}clear(){if(super.size===0)return;super.clear();var i=this.#e;for(var t of i.values())r(t,!1);i.clear(),r(this.#i,0),Te(this.#t)}keys(){return this.values()}values(){return e(this.#t),super.values()}entries(){return e(this.#t),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return e(this.#i)}}class gi extends Map{#e=new Map;#t=C(0);#i=C(0);#a=at||-1;constructor(i){super();if(i){for(var[t,a]of i)super.set(t,a);this.#i.v=super.size}}#l(i){return at===this.#a?C(i):It(i)}has(i){var t=this.#e,a=t.get(i);if(a===void 0)if(super.has(i))a=this.#l(0),t.set(i,a);else return e(this.#t),!1;return e(a),!0}forEach(i,t){this.#r(),super.forEach(i,t)}get(i){var t=this.#e,a=t.get(i);if(a===void 0)if(super.has(i))a=this.#l(0),t.set(i,a);else{e(this.#t);return}return e(a),super.get(i)}set(i,t){var a=this.#e,l=a.get(i),c=super.get(i),h=super.set(i,t),g=this.#t;if(l===void 0)l=this.#l(0),a.set(i,l),r(this.#i,super.size),Te(g);else if(c!==t){Te(l);var w=g.reactions===null?null:new Set(g.reactions),b=w===null||!l.reactions?.every((P)=>w.has(P));if(b)Te(g)}return h}delete(i){var t=this.#e,a=t.get(i),l=super.delete(i);if(a!==void 0)t.delete(i),r(a,-1);if(l)r(this.#i,super.size),Te(this.#t);return l}clear(){if(super.size===0)return;super.clear();var i=this.#e;r(this.#i,0);for(var t of i.values())r(t,-1);Te(this.#t),i.clear()}#r(){e(this.#t);var i=this.#e;if(this.#i.v!==i.size){for(var t of super.keys())if(!i.has(t)){var a=this.#l(0);i.set(t,a)}}for([,a]of this.#e)e(a)}keys(){return e(this.#t),super.keys()}values(){return this.#r(),super.values()}entries(){return this.#r(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#i),super.size}}var Nt=Symbol("replace");class Ct extends URLSearchParams{#e=C(0);#t=hi();#i=!1;#a(){if(!this.#t||this.#i)return;this.#i=!0;let i=this.toString();this.#t.search=i&&`?${i}`,this.#i=!1}[Nt](i){if(this.#i)return;if(i.toString()===super.toString())return;this.#i=!0;for(let t of[...super.keys()])super.delete(t);for(let[t,a]of i)super.append(t,a);Te(this.#e),this.#i=!1}append(i,t){super.append(i,t),this.#a(),Te(this.#e)}delete(i,t){var a=super.has(i,t);if(super.delete(i,t),a)this.#a(),Te(this.#e)}get(i){return e(this.#e),super.get(i)}getAll(i){return e(this.#e),super.getAll(i)}has(i,t){return e(this.#e),super.has(i,t)}keys(){return e(this.#e),super.keys()}forEach(i,t){e(this.#e),super.forEach(i,t)}set(i,t){var a=super.getAll(i);super.set(i,t);var l=super.getAll(i);if(a.length!==l.length||a.some((c,h)=>c!==l[h]))this.#a(),Te(this.#e)}sort(){super.sort(),this.#a(),Te(this.#e)}toString(){return e(this.#e),super.toString()}values(){return e(this.#e),super.values()}entries(){return e(this.#e),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#e),super.size}}var Ht=null;function hi(){return Ht}class ui extends URL{#e=C(super.protocol);#t=C(super.username);#i=C(super.password);#a=C(super.hostname);#l=C(super.port);#r=C(super.pathname);#f=C(super.hash);#n=C(super.search);#c;constructor(i,t){i=new URL(i,t);super(i);Ht=this,this.#c=new Ct(i.searchParams),Ht=null}get hash(){return e(this.#f)}set hash(i){super.hash=i,r(this.#f,super.hash)}get host(){return e(this.#a),e(this.#l),super.host}set host(i){super.host=i,r(this.#a,super.hostname),r(this.#l,super.port)}get hostname(){return e(this.#a)}set hostname(i){super.hostname=i,r(this.#a,super.hostname)}get href(){return e(this.#e),e(this.#t),e(this.#i),e(this.#a),e(this.#l),e(this.#r),e(this.#f),e(this.#n),super.href}set href(i){super.href=i,r(this.#e,super.protocol),r(this.#t,super.username),r(this.#i,super.password),r(this.#a,super.hostname),r(this.#l,super.port),r(this.#r,super.pathname),r(this.#f,super.hash),r(this.#n,super.search),this.#c[Nt](super.searchParams)}get password(){return e(this.#i)}set password(i){super.password=i,r(this.#i,super.password)}get pathname(){return e(this.#r)}set pathname(i){super.pathname=i,r(this.#r,super.pathname)}get port(){return e(this.#l)}set port(i){super.port=i,r(this.#l,super.port)}get protocol(){return e(this.#e)}set protocol(i){super.protocol=i,r(this.#e,super.protocol)}get search(){return e(this.#n)}set search(i){super.search=i,r(this.#n,super.search),this.#c[Nt](super.searchParams)}get username(){return e(this.#t)}set username(i){super.username=i,r(this.#t,super.username)}get origin(){return e(this.#e),e(this.#a),e(this.#l),super.origin}get searchParams(){return this.#c}toString(){return this.href}toJSON(){return this.href}}class vi{#e;#t;constructor(i,t){this.#e=i,this.#t=Qt(t)}get current(){return this.#t(),this.#e()}}function ki(i,t){return i===9?t-1:i-1}function Et(i,t,a){if(a<=0)return null;let l=i<0||i>=a?0:i;switch(t){case"ArrowRight":return(l+1)%a;case"ArrowLeft":return(l-1+a)%a;case"Home":return 0;case"End":return a-1;default:{if(!/^[1-9]$/.test(t))return null;let c=ki(Number(t),a);return c<a?c:null}}}var xi=/^[A-Za-z0-9._-]+$/;function Oi(i){let t=i.trim();if(!t)return null;let a,l,c=t.match(/^[A-Za-z0-9._-]+@([A-Za-z0-9.-]+):(.+)$/);if(c)a=c[1],l=c[2];else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(t)){let b;try{b=new URL(t)}catch{return null}if(b.protocol!=="http:"&&b.protocol!=="https:"&&b.protocol!=="ssh:")return null;a=b.hostname,l=b.pathname}else{let b=t.match(/^([A-Za-z0-9-]+\.[A-Za-z0-9.-]+)\/(.+)$/);if(!b)return null;a=b[1],l=b[2]}if(!a||!l)return null;let h=l.replace(/\.git$/i,"").split("/").filter(Boolean),[g,w]=h;if(!g||!w||!xi.test(g)||!xi.test(w))return null;return{host:a,owner:g,repo:w,cloneUrl:`https://${a}/${g}/${w}.git`}}function Yt(i){return Oi(i)!==null}var Ki=new Set(["$$slots","$$events","$$legacy"]);function bt(i,t){let a=te(t,Ki),l=[["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"}]];ae(i,ie({name:"folder-clock"},()=>a,{get iconNode(){return l}}))}var Ji=new Set(["$$slots","$$events","$$legacy"]);function lt(i,t){let a=te(t,Ji),l=[["path",{d:"M15 6a9 9 0 0 0-9 9V3"}],["circle",{cx:"18",cy:"6",r:"3"}],["circle",{cx:"6",cy:"18",r:"3"}]];ae(i,ie({name:"git-branch"},()=>a,{get iconNode(){return l}}))}var Zi=new Set(["$$slots","$$events","$$legacy"]);function Lt(i,t){let a=te(t,Zi),l=[["path",{d:"m5 12 7-7 7 7"}],["path",{d:"M12 19V5"}]];ae(i,ie({name:"arrow-up"},()=>a,{get iconNode(){return l}}))}var Hi=new Set(["$$slots","$$events","$$legacy"]);function yt(i,t){let a=te(t,Hi),l=[["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"}]];ae(i,ie({name:"folder"},()=>a,{get iconNode(){return l}}))}var Qi=new Set(["$$slots","$$events","$$legacy"]);function rt(i,t){let a=te(t,Qi),l=[["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"}]];ae(i,ie({name:"triangle-alert"},()=>a,{get iconNode(){return l}}))}var Yi=x('<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>'),Gi=x('<button class="recent-toggle svelte-oq97c4"> </button>'),Ui=x('<div class="recent svelte-oq97c4"><div class="recent-label svelte-oq97c4">Recent</div> <!> <!></div>'),Xi=x('<div class="muted svelte-oq97c4">Loading…</div>'),ji=x('<div class="muted err svelte-oq97c4"> </div>'),qi=x('<div class="row svelte-oq97c4"><button class="nav svelte-oq97c4"><span class="icon svelte-oq97c4"><!></span> <span class="ename svelte-oq97c4">..</span></button></div>'),_i=x('<div class="muted svelte-oq97c4"> </div>'),ea=x('<span class="badge svelte-oq97c4">devcontainer</span>'),ta=x('<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>'),ia=x("<!> <!> <!>",1),aa=x(`<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>`),la=x('<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="mode svelte-oq97c4"><div class="mode-label svelte-oq97c4">Editor</div> <div class="mode-toggle svelte-oq97c4" role="group" aria-label="Editor mode"><button type="button"><!> Full IDE</button> <button type="button"><!> Terminal</button></div></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 Ut(i,t){re(t,!0);let a=xe(t,"defaultMode",3,"ide"),l=xe(t,"initialMode",3,null),c=C(Ie(l())),h=E(()=>e(c)??a()),g=C(null),w=C(!0),b=C(null),P=C(""),W=C(null),k=C(Ie([])),q=C(!1),B=C(""),J=C(""),L=E(()=>Yt(e(B)));function $(){if(!e(L))return;t.onpick(e(B).trim(),{branch:e(J).trim()||void 0,mode:e(h)})}let Q=E(()=>e(g)?e(g).entries.filter((M)=>M.name.toLowerCase().includes(e(P).trim().toLowerCase())):[]),K=E(()=>e(q)?e(k):e(k).slice(0,5));async function Y(){try{let M=await Gt("/api/history");r(k,M.history??[],!0)}catch{}}async function V(M){let de=e(k);r(k,e(k).filter((We)=>We.source_path!==M),!0);try{await Si("/api/history",{sourcePath:M})}catch{r(k,de,!0)}}async function S(M=null){r(w,!0),r(b,null),r(P,"");try{let de=M?`/api/browse?path=${encodeURIComponent(M)}`:"/api/browse";r(g,await Gt(de,void 0,"Could not list folder"),!0)}catch(de){r(b,de.message,!0)}finally{r(w,!1)}await Mt(),e(W)?.focus()}ue(()=>{S(),Y()});var p=la(),F=n(p),ne=n(F),U=s(n(ne),2),Z=n(U);mt(Z,{size:16}),f(U),f(ne);var ce=s(ne,2),Ce=s(n(ce),2),z=n(Ce);let _;var se=n(z);nt(se,{size:15}),ge(),f(z);var u=s(z,2);let I;var N=n(u);ft(N,{size:15}),ge(),f(u),f(Ce),f(ce);var m=s(ce,2),T=s(n(m),2),D=n(T);Ye(D);var H=s(D,2);Ye(H);var Le=s(H,2);f(T),f(m);var Pe=s(m,2),oe=n(Pe),De=n(oe,!0);f(oe),f(Pe);var d=s(Pe,2);{var v=(M)=>{var de=Ui(),We=s(n(de),2);ye(We,17,()=>e(K),(Re)=>Re.source_path,(Re,Fe)=>{var Se=Yi(),we=n(Se),Ee=n(we),be=n(Ee);{var ze=(Ke)=>{lt(Ke,{size:16})},Qe=E(()=>Yt(e(Fe).source_path)),ot=(Ke)=>{bt(Ke,{size:16})};y(be,(Ke)=>{if(e(Qe))Ke(ze);else Ke(ot,-1)})}f(Ee);var xt=s(Ee,2),Ue=n(xt),kt=n(Ue,!0);f(Ue);var St=s(Ue,2),Ot=n(St,!0);f(St),f(xt),f(we);var it=s(we,2),Xe=n(it);mt(Xe,{size:14}),f(it),f(Se),A(()=>{G(kt,e(Fe).name),G(Ot,e(Fe).source_path),O(it,"aria-label",`Remove ${e(Fe).name??""} from history`)}),R("click",we,()=>t.onpick(e(Fe).source_path,{mode:e(h)})),R("click",it,(Ke)=>{Ke.stopPropagation(),V(e(Fe).source_path)}),o(Re,Se)});var st=s(We,2);{var Ae=(Re)=>{var Fe=Gi(),Se=n(Fe,!0);f(Fe),A(()=>G(Se,e(q)?"Show fewer":`Show all (${e(k).length})`)),R("click",Fe,()=>r(q,!e(q))),o(Re,Fe)};y(st,(Re)=>{if(e(k).length>5)Re(Ae)})}f(de),o(M,de)};y(d,(M)=>{if(e(k).length>0)M(v)})}var X=s(d,2),ee=n(X);Ye(ee),Be(ee,(M)=>r(W,M),()=>e(W)),f(X);var me=s(X,2),j=n(me);{var $e=(M)=>{var de=Xi();o(M,de)},Je=(M)=>{var de=ji(),We=n(de,!0);f(de),A(()=>G(We,e(b))),o(M,de)},tt=(M)=>{var de=ia(),We=Ne(de);{var st=(Se)=>{var we=qi(),Ee=n(we),be=n(Ee),ze=n(be);Lt(ze,{size:16}),f(be),ge(2),f(Ee),f(we),R("click",Ee,()=>S(e(g)?.parent??null)),o(Se,we)};y(We,(Se)=>{if(e(g).parent&&!e(P))Se(st)})}var Ae=s(We,2);{var Re=(Se)=>{var we=_i(),Ee=n(we,!0);f(we),A(()=>G(Ee,e(P)?"No folders match.":"No subfolders here.")),o(Se,we)};y(Ae,(Se)=>{if(e(Q).length===0)Se(Re)})}var Fe=s(Ae,2);ye(Fe,19,()=>e(Q),(Se)=>Se.path,(Se,we,Ee)=>{var be=ta();let ze;var Qe=n(be),ot=n(Qe),xt=n(ot);yt(xt,{size:16}),f(ot);var Ue=s(ot,2),kt=n(Ue,!0);f(Ue);var St=s(Ue,2);{var Ot=(Xe)=>{var Ke=ea();o(Xe,Ke)};y(St,(Xe)=>{if(e(we).hasDevcontainer)Xe(Ot)})}f(Qe);var it=s(Qe,2);f(be),A((Xe)=>{ze=he(be,1,"row svelte-oq97c4",null,ze,Xe),G(kt,e(we).name)},[()=>({"first-match":e(P).trim()&&e(Ee)===0})]),R("click",Qe,()=>S(e(we).path)),R("click",it,()=>t.onpick(e(we).path,{mode:e(h)})),o(Se,be)}),o(M,de)};y(j,(M)=>{if(e(w))M($e);else if(e(b))M(Je,1);else if(e(g))M(tt,2)})}f(me);var ve=s(me,2);{var Ze=(M)=>{var de=aa(),We=n(de);rt(We,{size:15}),ge(2),f(de),o(M,de)};y(ve,(M)=>{if(e(g)&&!e(g).hasDevcontainer)M(Ze)})}var ut=s(ve,2),vt=s(n(ut),2);f(ut),f(F),f(p),A(()=>{_=he(z,1,"mode-btn svelte-oq97c4",null,_,{active:e(h)==="ide"}),O(z,"aria-pressed",e(h)==="ide"),I=he(u,1,"mode-btn svelte-oq97c4",null,I,{active:e(h)==="terminal"}),O(u,"aria-pressed",e(h)==="terminal"),Le.disabled=!e(L),G(De,e(g)?.path??"…"),vt.disabled=!e(g)}),R("click",p,function(...M){t.onclose?.apply(this,M)}),R("keydown",p,(M)=>M.key==="Escape"&&t.onclose()),R("click",F,(M)=>M.stopPropagation()),R("keydown",F,()=>{}),R("click",U,function(...M){t.onclose?.apply(this,M)}),R("click",z,()=>r(c,"ide")),R("click",u,()=>r(c,"terminal")),R("keydown",D,(M)=>{if(M.key==="Enter")M.preventDefault(),$()}),Ge(D,()=>e(B),(M)=>r(B,M)),R("keydown",H,(M)=>{if(M.key==="Enter")M.preventDefault(),$()}),Ge(H,()=>e(J),(M)=>r(J,M)),R("click",Le,$),R("keydown",ee,(M)=>{let de=e(Q)[0];if(M.key==="Enter"&&de)M.preventDefault(),S(de.path)}),Ge(ee,()=>e(P),(M)=>r(P,M)),R("click",vt,()=>e(g)&&t.onpick(e(g).path,{mode:e(h)})),o(i,p),fe()}Ve(["click","keydown"]);var ra=x('<div class="branch svelte-jv8lut" title="Branch checked out in the container"><!><span class="svelte-jv8lut"> </span></div>');function Xt(i,t){var a=ra(),l=n(a);lt(l,{size:12});var c=s(l),h=n(c,!0);f(c),f(a),A(()=>G(h,t.branch)),o(i,a)}var fa=new Set(["$$slots","$$events","$$legacy"]);function Tt(i,t){let a=te(t,fa),l=[["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"}]];ae(i,ie({name:"cable"},()=>a,{get iconNode(){return l}}))}var na=x('<a target="_blank" rel="noopener"> </a>'),ca=x('<div class="fports svelte-1uaz383" title="Forwarded ports — click to open"><!> <span class="list svelte-1uaz383"></span></div>');function qt(i,t){re(t,!0);var a=je(),l=Ne(a);{var c=(h)=>{var g=ca(),w=n(g);Tt(w,{size:12});var b=s(w,2);ye(b,21,()=>t.ports,(P)=>P.container_port,(P,W)=>{var k=na();let q;var B=n(k,!0);f(k),A((J,L)=>{q=he(k,1,"fport svelte-1uaz383",null,q,{open:e(W).open}),O(k,"href",J),O(k,"title",L),G(B,e(W).container_port)},[()=>jt(e(W).host_port),()=>`container :${e(W).container_port} → ${jt(e(W).host_port)} ${e(W).open?"(open)":"(not published yet)"}`]),o(P,k)}),f(b),f(g),o(h,g)};y(l,(h)=>{if(t.ports.length)h(c)})}o(i,a),fe()}var da=x('<div class="busy-overlay svelte-13338y7" aria-live="polite"><span class="busy-label svelte-13338y7"> </span></div>'),sa=x('<input class="name-edit svelte-13338y7"/>'),oa=x('<button class="name svelte-13338y7" title="Click to rename"> </button>'),ma=x("<span></span>"),ga=x('<div class="card-error svelte-13338y7"> </div>'),ha=x("<!> <!>",1),ua=x('<li><!> <div class="card-head svelte-13338y7"><!> <!> <!> <!></div> <div class="path svelte-13338y7"> </div> <!> <!> <!> <div class="actions svelte-13338y7"><!> <!> <!> <!></div></li>');function _t(i,t){re(t,!0);let a=xe(t,"editingName",15),l=xe(t,"pending",3,null),c=E(()=>t.instance.status==="running"||t.instance.status==="stopped"||t.instance.status==="error"&&!!t.instance.container_id),h={start:"Starting…",stop:"Stopping…",delete:"Deleting…",rebuild:"Rebuilding…"};var g=ua();let w;var b=n(g);{var P=(m)=>{var T=da(),D=n(T),H=n(D,!0);f(D),f(T),A(()=>G(H,h[l()])),o(m,T)};y(b,(m)=>{if(l())m(P)})}var W=s(b,2),k=n(W);{let m=E(()=>_e(t.instance.avatar??void 0)??null);et(k,{get name(){return t.instance.name},get art(){return e(m)},interactive:!0})}var q=s(k,2);{var B=(m)=>{var T=sa();Ye(T),pt(T,!0),ke("focus",T,(D)=>D.currentTarget.select()),ke("blur",T,function(...D){t.oncommitrename?.apply(this,D)}),R("keydown",T,(D)=>{if(D.key==="Enter")D.currentTarget.blur();else if(D.key==="Escape")t.oncancelrename()}),Ge(T,a),o(m,T)},J=(m)=>{var T=oa(),D=n(T,!0);f(T),A(()=>G(D,t.instance.name)),R("click",T,function(...H){t.onstartrename?.apply(this,H)}),o(m,T)};y(q,(m)=>{if(t.editing)m(B);else m(J,-1)})}var L=s(q,2);{var $=(m)=>{var T=ma();let D;A(()=>{D=he(T,1,"attn svelte-13338y7",null,D,{"attn-done":t.instance.attention==="done","attn-waiting":t.instance.attention==="waiting"}),O(T,"title",t.instance.attention==="waiting"?"Claude is waiting for input":"Claude finished"),O(T,"aria-label",t.instance.attention==="waiting"?"Claude is waiting for input":"Claude finished")}),o(m,T)};y(L,(m)=>{if(t.instance.attention)m($)})}var Q=s(L,2);wi(Q,{get status(){return t.instance.status}}),f(W);var K=s(W,2),Y=n(K,!0);f(K);var V=s(K,2);{var S=(m)=>{qt(m,{get ports(){return t.instance.forwarded_ports}})};y(V,(m)=>{if(t.instance.status==="running")m(S)})}var p=s(V,2);{var F=(m)=>{Xt(m,{get branch(){return t.instance.git_branch}})};y(p,(m)=>{if(t.instance.git_branch)m(F)})}var ne=s(p,2);{var U=(m)=>{var T=ga(),D=n(T,!0);f(T),A(()=>G(D,t.instance.error)),o(m,T)};y(ne,(m)=>{if(t.instance.status==="error"&&t.instance.error)m(U)})}var Z=s(ne,2),ce=n(Z);{var Ce=(m)=>{var T=ha(),D=Ne(T);{let Le=E(()=>`/ide/${t.instance.id}`);Me(D,{variant:"primary",size:"sm",get href(){return e(Le)},children:(Pe,oe)=>{ge();var De=pe();A(()=>G(De,t.instance.mode==="terminal"?"Open terminal":"Open IDE")),o(Pe,De)},$$slots:{default:!0}})}var H=s(D,2);Me(H,{size:"sm",onclick:()=>t.onact("stop"),children:(Le,Pe)=>{ge();var oe=pe("Stop");o(Le,oe)},$$slots:{default:!0}}),o(m,T)},z=(m)=>{Me(m,{size:"sm",onclick:()=>t.onact("start"),children:(T,D)=>{ge();var H=pe("Start");o(T,H)},$$slots:{default:!0}})},_=(m)=>{{let T=E(()=>qe(`/instances/${t.instance.id}`));Me(m,{size:"sm",get href(){return e(T)},target:"_blank",rel:"noopener noreferrer",children:(D,H)=>{ge();var Le=pe("View logs");o(D,Le)},$$slots:{default:!0}})}};y(ce,(m)=>{if(t.instance.status==="running")m(Ce);else if(t.instance.status==="stopped"||t.instance.status==="error"&&t.instance.container_id)m(z,1);else if(t.instance.status==="creating")m(_,2)})}var se=s(ce,2);{var u=(m)=>{Me(m,{size:"sm",title:"Recreate the container and re-run setup (credentials, hooks, port forwards)",onclick:()=>t.onact("rebuild"),children:(T,D)=>{ge();var H=pe("Rebuild");o(T,H)},$$slots:{default:!0}})};y(se,(m)=>{if(e(c))m(u)})}var I=s(se,2);{let m=E(()=>qe(`/instances/${t.instance.id}`));Me(I,{size:"sm",ghost:!0,get href(){return e(m)},target:"_blank",rel:"noopener noreferrer",children:(T,D)=>{ge();var H=pe("Details");o(T,H)},$$slots:{default:!0}})}var N=s(I,2);Me(N,{variant:"danger",size:"sm",onclick:()=>t.onact("delete"),children:(m,T)=>{ge();var D=pe("Delete");o(m,D)},$$slots:{default:!0}}),f(Z),f(g),A(()=>{w=he(g,1,"card panel svelte-13338y7",null,w,{busy:!!l()}),O(g,"aria-busy",!!l()||void 0),O(K,"title",t.instance.source_path),G(Y,t.instance.source_path)}),o(i,g),fe()}Ve(["keydown","click"]);var va=new Set(["$$slots","$$events","$$legacy"]);function Pt(i,t){let a=te(t,va),l=[["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"}]];ae(i,ie({name:"component"},()=>a,{get iconNode(){return l}}))}var xa=new Set(["$$slots","$$events","$$legacy"]);function $t(i,t){let a=te(t,xa),l=[["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"}]];ae(i,ie({name:"package"},()=>a,{get iconNode(){return l}}))}var Sa=x('<a class="brand svelte-94cd8h" href="/"><span class="logo svelte-94cd8h"><!></span><span class="words svelte-94cd8h"><span>Codebay</span><span class="tagline svelte-94cd8h">devcontainer manager</span></span></a>');function ei(i,t){re(t,!0);var a=Sa(),l=n(a),c=n(l);{var h=(w)=>{et(w,{get art(){return t.pet},get name(){return t.pet.name},scale:4})},g=(w)=>{$t(w,{size:22})};y(c,(w)=>{if(t.pet)w(h);else w(g,-1)})}f(l),ge(),f(a),o(i,a),fe()}var wa=x('<button type="button" role="radio"> </button>'),Ia=x('<div class="picker svelte-12yor8r" role="radiogroup" aria-label="Filter instances"></div>');function ti(i,t){re(t,!0);let a=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"stopped",label:"Stopped"}];var l=Ia();ye(l,21,()=>a,(c)=>c.value,(c,h)=>{var g=wa();let w;var b=n(g,!0);f(g),A(()=>{w=he(g,1,"segment svelte-12yor8r",null,w,{active:t.value===e(h).value}),O(g,"aria-checked",t.value===e(h).value),G(b,e(h).label)}),R("click",g,()=>t.onchange(e(h).value)),o(c,g)}),f(l),o(i,l),fe()}Ve(["click"]);var Na=new Set(["$$slots","$$events","$$legacy"]);function ct(i,t){let a=te(t,Na),l=[["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"}]];ae(i,ie({name:"settings"},()=>a,{get iconNode(){return l}}))}var Ca=x('<a class="cog svelte-1e745g8" target="_blank" rel="noopener noreferrer" aria-label="Settings" title="Settings"><!></a>');function ii(i,t){re(t,!1),Ii();var a=Ca(),l=n(a);ct(l,{size:16}),f(a),A((c)=>O(a,"href",c),[()=>qe("/settings")]),o(i,a),fe()}var Ea=new Set(["$$slots","$$events","$$legacy"]);function At(i,t){let a=te(t,Ea),l=[["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"}]];ae(i,ie({name:"link"},()=>a,{get iconNode(){return l}}))}var ba=x('<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>'),La=x('<div class="cred-dropdown panel svelte-vongf9" role="menu"></div>'),ya=x('<div class="cred-menu svelte-vongf9"><button aria-haspopup="menu" aria-label="Credentials" title="Credentials"><!></button> <!></div>');function ai(i,t){re(t,!0);let a=C(!1),l=E(()=>t.auth.filter((B)=>B.available).length),c=E(()=>e(l)===t.auth.length?"ok":e(l)===0?"error":"warn"),h={ok:At,warn:rt,error:mt},g=E(()=>h[e(c)]);function w(B){if(B.available)gt.success(`${B.label} credentials come from ${B.source}.`);else{let J=B.hint?` — ${B.hint}`:"";gt.error(`No ${B.label} credentials found${J}.`)}}ue(()=>{if(!e(a))return;let B=(L)=>{if(!L.target?.closest(".cred-menu"))r(a,!1)},J=(L)=>{if(L.key==="Escape")r(a,!1)};return window.addEventListener("click",B),window.addEventListener("keydown",J),()=>{window.removeEventListener("click",B),window.removeEventListener("keydown",J)}});var b=ya(),P=n(b),W=n(P);Ni(W,()=>e(g),(B,J)=>{J(B,{size:16})}),f(P);var k=s(P,2);{var q=(B)=>{var J=La();ye(J,21,()=>t.auth,(L)=>L.id,(L,$)=>{var Q=ba(),K=n(Q),Y=s(K,2),V=n(Y,!0);f(Y);var S=s(Y,2),p=n(S,!0);f(S),f(Q),A(()=>{O(Q,"title",e($).available?`Credentials from ${e($).source}, copied into each new instance.`:`No credentials found on this computer${e($).hint?` — ${e($).hint}`:""}.`),he(K,1,`dot ${e($).available?"on":"off"}`,"svelte-vongf9"),G(V,e($).label),G(p,e($).available?"Authorized":"Not found")}),R("click",Q,()=>w(e($))),o(L,Q)}),f(J),o(B,J)};y(k,(B)=>{if(e(a))B(q)})}f(b),A(()=>{he(P,1,`cred ${e(c)??""}`,"svelte-vongf9"),O(P,"aria-expanded",e(a))}),R("click",P,()=>r(a,!e(a))),o(i,b),fe()}Ve(["click"]);var Ma=x('<header class="topbar svelte-1h259us"><!> <div class="topbar-actions svelte-1h259us"><!> <!> <!> <!> <!> <div class="new-group svelte-1h259us"><!> <!></div></div></header>');function li(i,t){re(t,!0);let a=xe(t,"canDelete",3,!1),l=xe(t,"ready",3,!0),c=xe(t,"creating",3,!1),h=xe(t,"defaultMode",3,"ide"),g=E(()=>h()==="terminal"?"ide":"terminal");var w=Ma(),b=n(w);ei(b,{get pet(){return t.pet}});var P=s(b,2),W=n(P);{var k=(V)=>{Me(V,{variant:"default",size:"sm",get icon(){return Pt},href:"/debug",children:(S,p)=>{ge();var F=pe("Debug");o(S,F)},$$slots:{default:!0}})};y(W,(V)=>{if(Ci)V(k)})}var q=s(W,2);{var B=(V)=>{ti(V,{get value(){return t.filter},get onchange(){return t.onFilter}})};y(q,(V)=>{if(t.filter&&t.onFilter)V(B)})}var J=s(q,2);ii(J,{});var L=s(J,2);ai(L,{get auth(){return t.auth}});var $=s(L,2);{let V=E(()=>!a());Me($,{variant:"danger",size:"sm",get onclick(){return t.onDeleteAll},get disabled(){return e(V)},children:(S,p)=>{ge();var F=pe("Delete all");o(S,F)},$$slots:{default:!0}})}var Q=s($,2),K=n(Q);{let V=E(()=>c()?void 0:Ft),S=E(()=>!l()||c());Me(K,{variant:"primary",size:"sm",get icon(){return e(V)},onclick:()=>t.onNew?.(),get disabled(){return e(S)},children:(p,F)=>{ge();var ne=pe();A(()=>G(ne,c()?"Creating…":"New instance")),o(p,ne)},$$slots:{default:!0}})}var Y=s(K,2);{let V=E(()=>e(g)==="terminal"?ft:nt),S=E(()=>!l()||c()),p=E(()=>e(g)==="terminal"?"New terminal instance":"New full IDE instance"),F=E(()=>e(g)==="terminal"?"New terminal instance":"New full IDE instance");Me(Y,{variant:"default",size:"sm",square:!0,get icon(){return e(V)},iconSize:15,onclick:()=>t.onNew?.(e(g)),get disabled(){return e(S)},get title(){return e(p)},get "aria-label"(){return e(F)}})}f(Q),f(P),f(w),o(i,w),fe()}var Ta=x("<span>Docker daemon is not reachable.</span>"),pa=x("<span>The devcontainer CLI is not available.</span>"),Pa=x('<div class="banner error svelte-146pixd"><strong>Setup needed.</strong> <!> <!></div>'),$a=x('<div class="banner error svelte-146pixd"><strong>Error.</strong> <span> </span></div>'),Aa=x('<div class="empty svelte-146pixd"><p class="empty-sub svelte-146pixd">Loading…</p></div>'),Fa=x('<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>'),za=x('<div class="empty svelte-146pixd"><p class="empty-sub svelte-146pixd"> </p></div>'),Va=x('<ul class="grid svelte-146pixd"></ul>'),Wa=x('<!> <main class="stage svelte-146pixd"><!> <!> <!></main> <!>',1);function ri(i,t){re(t,!0);let a=C(!1),l=C(null),c=C(!1),h=C(null),g=C(null),w=C(""),b=C(Ie({})),P=E(()=>t.preflight.docker&&t.preflight.cli),W=E(()=>t.instances.filter((u)=>{if(t.filter==="active")return u.status==="running"||u.status==="creating";if(t.filter==="stopped")return u.status==="stopped"||u.status==="error";return!0}));ue(()=>{for(let[u,{since:I}]of Object.entries(e(b))){let N=t.instances.find((m)=>m.id===u);if(!N||N.status!==I)k(u)}});function k(u){let{[u]:I,...N}=e(b);r(b,N,!0)}async function q(u,I){r(a,!1),r(c,!0),r(h,null);try{await Oe("/api/instances",{sourcePath:u,branch:I?.branch,mode:I?.mode},"Failed to create instance")}catch(N){r(h,N.message,!0)}finally{r(c,!1)}}async function B(u,I){if(r(h,null),I==="delete"&&!confirm("Delete this instance and its copied files?"))return;if(I==="rebuild"&&!confirm("Recreate this container and re-run setup? The workspace is kept."))return;let N=t.instances.find((m)=>m.id===u)?.status;if(N)r(b,{...e(b),[u]:{action:I,since:N}},!0);try{await Oe(`/api/instances/${u}/${I}`,void 0,`Failed to ${I}`)}catch(m){r(h,m.message,!0),k(u)}}function J(u){r(g,u.id,!0),r(w,u.name,!0)}function L(){r(g,null),r(w,"")}async function $(u){let I=e(w).trim(),N=t.instances.find((m)=>m.id===u)?.name;if(!I||I===N){L();return}L(),r(h,null);try{await Oe(`/api/instances/${u}/rename`,{name:I},"Failed to rename")}catch(m){r(h,m.message,!0)}}async function Q(){if(r(h,null),!confirm(`Delete all ${t.instances.length} instances and their copied files?`))return;try{await Oe("/api/instances/delete-all",void 0,"Failed to delete all")}catch(u){r(h,u.message,!0)}}var K=Wa(),Y=Ne(K);{let u=E(()=>t.instances.length>0);li(Y,{get auth(){return t.preflight.auth},get pet(){return t.pet},get canDelete(){return e(u)},get ready(){return e(P)},get creating(){return e(c)},get filter(){return t.filter},get onFilter(){return t.onFilter},get defaultMode(){return t.preflight.defaultMode},onNew:(I)=>{r(l,I??null,!0),r(a,!0)},onDeleteAll:Q})}var V=s(Y,2),S=n(V);{var p=(u)=>{var I=Pa(),N=s(n(I),2);{var m=(H)=>{var Le=Ta();o(H,Le)};y(N,(H)=>{if(!t.preflight.docker)H(m)})}var T=s(N,2);{var D=(H)=>{var Le=pa();o(H,Le)};y(T,(H)=>{if(!t.preflight.cli)H(D)})}f(I),o(u,I)};y(S,(u)=>{if(!e(P))u(p)})}var F=s(S,2);{var ne=(u)=>{var I=$a(),N=s(n(I),2),m=n(N,!0);f(N),f(I),A(()=>G(m,e(h))),o(u,I)};y(F,(u)=>{if(e(h))u(ne)})}var U=s(F,2);{var Z=(u)=>{var I=Aa();o(u,I)},ce=(u)=>{var I=Fa(),N=s(n(I),4);{let m=E(()=>!e(P));Me(N,{variant:"primary",get icon(){return Ft},onclick:()=>r(a,!0),get disabled(){return e(m)},children:(T,D)=>{ge();var H=pe("New instance");o(T,H)},$$slots:{default:!0}})}f(I),o(u,I)},Ce=(u)=>{var I=za(),N=n(I),m=n(N);f(N),f(I),A(()=>G(m,`No ${t.filter??""} instances.`)),o(u,I)},z=(u)=>{var I=Va();ye(I,21,()=>e(W),(N)=>N.id,(N,m)=>{{let T=E(()=>e(g)===e(m).id),D=E(()=>e(b)[e(m).id]?.action??null);_t(N,{get instance(){return e(m)},get editing(){return e(T)},get pending(){return e(D)},onact:(H)=>B(e(m).id,H),onstartrename:()=>J(e(m)),oncommitrename:()=>$(e(m).id),oncancelrename:L,get editingName(){return e(w)},set editingName(H){r(w,H,!0)}})}}),f(I),o(u,I)};y(U,(u)=>{if(!t.loaded)u(Z);else if(t.instances.length===0)u(ce,1);else if(e(W).length===0)u(Ce,2);else u(z,-1)})}f(V);var _=s(V,2);{var se=(u)=>{Ut(u,{onpick:q,get defaultMode(){return t.preflight.defaultMode},get initialMode(){return e(l)},onclose:()=>r(a,!1)})};y(_,(u)=>{if(e(a))u(se)})}o(i,K),fe()}var Da=new Set(["$$slots","$$events","$$legacy"]);function dt(i,t){let a=te(t,Da),l=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"}],["path",{d:"M21 3v5h-5"}]];ae(i,ie({name:"rotate-cw"},()=>a,{get iconNode(){return l}}))}var Ra=new Set(["$$slots","$$events","$$legacy"]);function zt(i,t){let a=te(t,Ra),l=[["path",{d:"m15 18-6-6 6-6"}]];ae(i,ie({name:"chevron-left"},()=>a,{get iconNode(){return l}}))}var Ba=new Set(["$$slots","$$events","$$legacy"]);function Vt(i,t){let a=te(t,Ba),l=[["path",{d:"m9 18 6-6-6-6"}]];ae(i,ie({name:"chevron-right"},()=>a,{get iconNode(){return l}}))}var ka=x('<button type="button" class="page svelte-r39acv" aria-label="Scroll tabs left"><!></button>'),Oa=x('<div class="tab editing svelte-r39acv"><!> <input class="tab-name-edit svelte-r39acv"/></div>'),Ka=x("<span></span>"),Ja=x('<button type="button" role="tab"><!> <span class="tab-name svelte-r39acv"> </span> <span class="tab-mode svelte-r39acv"><!></span> <!></button>'),Za=x('<button type="button" class="page trailing svelte-r39acv" aria-label="Scroll tabs right"><!></button>'),Ha=x('<div class="strip svelte-r39acv"><!> <div class="viewport svelte-r39acv"><div class="tabs svelte-r39acv" role="tablist" aria-label="Instances"></div></div> <!></div>'),Qa=x('<button type="button" class="reload svelte-r39acv" title="Reload editor" aria-label="Reload editor"><!></button>'),Ya=x('<!> <div class="right svelte-r39acv"><!> <a class="cog svelte-r39acv" target="_blank" rel="noopener noreferrer" title="Settings" aria-label="Settings"><!></a></div>',1);function fi(i,t){re(t,!0);let a=xe(t,"editingName",15),l=E(()=>t.running.findIndex((L)=>L.id===t.active)),c=E(()=>e(l)>=0?e(l):0),h=C(null),g=C(null),w=C(!0),b=C(!0),P=Ie({}),W=E(()=>!e(w)||!e(b));function k(){if(!e(h))return;r(w,e(h).scrollLeft<=1),r(b,e(h).scrollLeft+e(h).clientWidth>=e(h).scrollWidth-1)}function q(L){let $=t.running[L];if(!$)return;t.onselect($.id),P[$.id]?.focus()}function B(L){let $=Et(e(l),L.key,t.running.length);if($===null)return;L.preventDefault(),q($)}function J(L){if(!e(h))return;e(h).scrollBy({left:L*Math.max(160,e(h).clientWidth*0.7)})}ue(()=>{let L=e(h),$=e(g);if(!L||!$)return;k();let Q=new ResizeObserver(k);return Q.observe(L),Q.observe($),L.addEventListener("scroll",k,{passive:!0}),()=>{Q.disconnect(),L.removeEventListener("scroll",k)}}),ue(()=>{P[t.active]?.scrollIntoView({block:"nearest",inline:"nearest"})}),Ei(i,{children:(L,$)=>{var Q=Ya(),K=Ne(Q);{var Y=(U)=>{var Z=Ha(),ce=n(Z);{var Ce=(I)=>{var N=ka(),m=n(N);zt(m,{size:16}),f(N),A(()=>N.disabled=e(w)),R("click",N,()=>J(-1)),o(I,N)};y(ce,(I)=>{if(e(W))I(Ce)})}var z=s(ce,2),_=n(z);ye(_,23,()=>t.running,(I)=>I.id,(I,N,m)=>{var T=je(),D=Ne(T);{var H=(Pe)=>{var oe=Oa(),De=n(oe);{let v=E(()=>_e(e(N).avatar??void 0)??null);et(De,{get name(){return e(N).name},get art(){return e(v)},scale:3})}var d=s(De,2);Ye(d),pt(d,!0),f(oe),ke("focus",d,(v)=>v.currentTarget.select()),ke("blur",d,()=>t.oncommitrename(e(N).id)),R("keydown",d,(v)=>{if(v.key==="Enter")v.currentTarget.blur();else if(v.key==="Escape")t.oncancelrename()}),Ge(d,a),o(Pe,oe)},Le=(Pe)=>{var oe=Ja();let De;var d=n(oe);{let ve=E(()=>_e(e(N).avatar??void 0)??null);et(d,{get name(){return e(N).name},get art(){return e(ve)},scale:3})}var v=s(d,2),X=n(v,!0);f(v);var ee=s(v,2),me=n(ee);{var j=(ve)=>{ft(ve,{size:11})},$e=(ve)=>{nt(ve,{size:11})};y(me,(ve)=>{if(e(N).mode==="terminal")ve(j);else ve($e,-1)})}f(ee);var Je=s(ee,2);{var tt=(ve)=>{var Ze=Ka();A(()=>{he(Ze,1,`attn ${t.attention[e(N).id]??""}`,"svelte-r39acv"),O(Ze,"aria-label",t.attention[e(N).id]==="waiting"?"Claude is waiting for input":"Claude finished")}),o(ve,Ze)};y(Je,(ve)=>{if(e(N).id!==t.active&&t.attention[e(N).id])ve(tt)})}f(oe),Be(oe,(ve,Ze)=>P[Ze.id]=ve,(ve)=>P?.[ve.id],()=>[e(N)]),A(()=>{De=he(oe,1,"tab svelte-r39acv",null,De,{active:e(N).id===t.active}),O(oe,"id",`tab-${e(N).id??""}`),O(oe,"aria-selected",e(N).id===t.active),O(oe,"tabindex",e(m)===e(c)?0:-1),O(oe,"title",e(N).name),G(X,e(N).name),O(ee,"aria-label",e(N).mode==="terminal"?"Terminal-only instance":"Full IDE instance")}),R("click",oe,()=>t.onselect(e(N).id)),R("dblclick",oe,()=>t.onstartrename(e(N))),R("keydown",oe,B),o(Pe,oe)};y(D,(Pe)=>{if(t.editingId===e(N).id)Pe(H);else Pe(Le,-1)})}o(I,T)}),f(_),Be(_,(I)=>r(g,I),()=>e(g)),f(z),Be(z,(I)=>r(h,I),()=>e(h));var se=s(z,2);{var u=(I)=>{var N=Za(),m=n(N);Vt(m,{size:16}),f(N),A(()=>N.disabled=e(b)),R("click",N,()=>J(1)),o(I,N)};y(se,(I)=>{if(e(W))I(u)})}f(Z),o(U,Z)};y(K,(U)=>{if(t.running.length>0)U(Y)})}var V=s(K,2),S=n(V);{var p=(U)=>{var Z=Qa(),ce=n(Z);dt(ce,{size:18}),f(Z),R("click",Z,function(...Ce){t.onreload?.apply(this,Ce)}),o(U,Z)};y(S,(U)=>{if(t.onreload)U(p)})}var F=s(S,2),ne=n(F);ct(ne,{size:18}),f(F),f(V),A((U)=>O(F,"href",U),[()=>qe("/settings")]),o(L,Q)},$$slots:{default:!0}}),fe()}Ve(["click","keydown","dblclick"]);var Ga=x('<div class="row svelte-w5e143"> </div>'),Ua=x('<div class="stalled svelte-w5e143"><p class="svelte-w5e143"> </p> <!></div>'),Xa=x('<div class="loader svelte-w5e143"><div class="grid svelte-w5e143" aria-hidden="true"></div> <div class="label svelte-w5e143"> <span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span></div> <!></div>');function Wt(i,t){re(t,!0);let a=xe(t,"speed",3,1),l=xe(t,"mode",3,"ide"),c=E(()=>l()==="terminal"),h=C(!1);ue(()=>{if(t.stalledAfterMs===void 0)return;let Y=setTimeout(()=>r(h,!0),t.stalledAfterMs);return()=>clearTimeout(Y)});let g=3,w=22,b=140,P=7,W=E(()=>Math.max(20,b/a())),q=C(Ie((()=>Array.from({length:g},()=>Array.from({length:w},()=>Math.random()<0.5?0:1)))()));ue(()=>{if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let Y=setInterval(()=>{let V=e(q).map((S)=>S.slice());for(let S=0;S<P;S++){let p=V[Math.floor(Math.random()*g)],F=Math.floor(Math.random()*w);p[F]=p[F]?0:1}r(q,V,!0)},e(W));return()=>clearInterval(Y)});var B=Xa(),J=n(B);ye(J,21,()=>e(q),bi,(Y,V)=>{var S=Ga(),p=n(S,!0);f(S),A((F)=>G(p,F),[()=>e(V).join("")]),o(Y,S)}),f(J);var L=s(J,2),$=n(L);ge(3),f(L);var Q=s(L,2);{var K=(Y)=>{var V=Ua(),S=n(V),p=n(S);f(S);var F=s(S,2);{var ne=(U)=>{Me(U,{size:"sm",get onclick(){return t.onoverride},children:(Z,ce)=>{ge();var Ce=pe("Open anyway");o(Z,Ce)},$$slots:{default:!0}})};y(F,(U)=>{if(t.onoverride)U(ne)})}f(V),A(()=>G(p,`Waiting for ${e(c)?"the terminal":"code-server"} to answer inside the container.`)),o(Y,V)};y(Q,(Y)=>{if(e(h))Y(K)})}f(B),A(()=>G($,`Loading ${e(c)?"terminal":"editor"}`)),o(i,B),fe()}var ja=new Set(["$$slots","$$events","$$legacy"]);function Dt(i,t){let a=te(t,ja),l=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M15 3v18"}],["path",{d:"m10 15-3-3 3-3"}]];ae(i,ie({name:"panel-right-open"},()=>a,{get iconNode(){return l}}))}var qa=new Set(["$$slots","$$events","$$legacy"]);function Rt(i,t){let a=te(t,qa),l=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M15 3v18"}],["path",{d:"m8 9 3 3-3 3"}]];ae(i,ie({name:"panel-right-close"},()=>a,{get iconNode(){return l}}))}var _a=x('<span class="status svelte-ui3nvu">connecting…</span>'),el=x('<div class="term svelte-ui3nvu"></div> <div class="overlay svelte-ui3nvu"><!> <!> <button type="button" title="Reload terminal (reconnects, keeps the session)" aria-label="Reload terminal"><!></button></div>',1);function Bt(i,t){re(t,!0);let a=xe(t,"focus",3,!0),l,c,h,g,w,b=!1,P=C(!1),W=0,k="0",q="1",B=48,J=new TextEncoder;function L(z){if(g?.readyState===WebSocket.OPEN)g.send(J.encode(z))}function $(z){let _=new Uint8Array(z);if(_.length===0)return;if(_[0]===B)c?.write(_.subarray(1))}function Q(){let z=++W,_=location.protocol==="https:"?"wss:":"ws:",se=t.arg?`?arg=${encodeURIComponent(t.arg)}`:"",u=new WebSocket(`${_}//${location.host}/p/${t.id}/ws${se}`,["tty"]);g=u,u.binaryType="arraybuffer",u.onopen=()=>{if(W!==z)return;r(P,!0),L(JSON.stringify({AuthToken:"",columns:c?.cols??80,rows:c?.rows??24}))},u.onmessage=(I)=>{if(W===z)$(I.data)},u.onclose=()=>{if(W!==z||b)return;r(P,!1),w=setTimeout(Q,1000)},u.onerror=()=>{try{u.close()}catch{}}}function K(){if(w)clearTimeout(w);W++,r(P,!1),c?.reset();let z=g;g=void 0;let _=!1,se=()=>{if(_||b)return;if(_=!0,Y(),Q(),t.active&&a())c?.focus()};if(z&&z.readyState!==WebSocket.CLOSED){z.addEventListener("close",se,{once:!0}),setTimeout(se,1500);try{z.close()}catch{}}else se()}function Y(){if(l?.clientWidth>0&&l?.clientHeight>0)try{h?.fit()}catch{}}function V(){if(!c||!l)return;let z=getComputedStyle(l),_=z.backgroundColor||"#0d0e0a",se=z.color||"#d8d9cf";c.options.theme={background:_,foreground:se,cursor:se,cursorAccent:_}}Ti(()=>{let z,_=window.matchMedia("(prefers-color-scheme: dark)"),se=()=>V();_.addEventListener("change",se),(async()=>{let[{Terminal:I},{FitAddon:N}]=await Promise.all([import("/_mochi/client/chunk-hxydjtda.js"),import("/_mochi/client/chunk-y9yy1004.js")]);if(b)return;if(c=new I({fontFamily:"'JetBrains Mono Variable', ui-monospace, monospace",fontSize:13,cursorBlink:!0,scrollback:1e4,allowProposedApi:!0}),h=new N,c.loadAddon(h),c.open(l),V(),Y(),c.onData((m)=>L(k+m)),c.onResize(({cols:m,rows:T})=>L(q+JSON.stringify({columns:m,rows:T}))),z=new MutationObserver(V),z.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),Q(),t.active&&a())c.focus()})();let u=new ResizeObserver(()=>Y());return u.observe(l),()=>{if(b=!0,u.disconnect(),z?.disconnect(),_.removeEventListener("change",se),w)clearTimeout(w);try{g?.close()}catch{}c?.dispose()}}),ue(()=>{if(t.active&&c){if(Y(),a())c.focus()}});var S=el(),p=Ne(S);Be(p,(z)=>l=z,()=>l);var F=s(p,2),ne=n(F);{var U=(z)=>{var _=_a();o(z,_)};y(ne,(z)=>{if(!e(P))z(U)})}var Z=s(ne,2);Mi(Z,()=>t.actions??yi);var ce=s(Z,2),Ce=n(ce);dt(Ce,{size:14}),f(ce),f(F),R("click",ce,K),o(i,S),fe()}Ve(["click"]);var tl=x('<button type="button"><!></button>'),il=x('<div role="separator" aria-orientation="vertical" aria-label="Resize terminal panes" tabindex="0"></div> <div><!></div>',1),al=x('<div class="split svelte-1ysvu88"><div class="side svelte-1ysvu88"><!></div> <!></div>');function ci(i,t){re(t,!0);let a=(S)=>{var p=tl(),F=n(p);{var ne=(Z)=>{Rt(Z,{size:14})},U=(Z)=>{Dt(Z,{size:14})};y(F,(Z)=>{if(e(c))Z(ne);else Z(U,-1)})}f(p),A(()=>{O(p,"aria-pressed",e(c)),O(p,"title",e(c)?"Hide the shell pane":"Open a shell alongside Claude"),O(p,"aria-label",e(c)?"Hide the shell pane":"Open a shell alongside Claude")}),R("click",p,P),o(S,p)},l=xe(t,"initialOpen",3,!1),c=C(Ie(l())),h=C(Ie(l())),g=C(50),w=C("left"),b;function P(){if(r(c,!e(c)),e(c))r(h,!0);r(w,e(c)?"right":"left",!0),Oe(`/api/instances/${t.id}/split`,{open:e(c)}).catch(()=>{})}function W(S){return Math.min(80,Math.max(20,S))}function k(S){let p=b.getBoundingClientRect();if(p.width>0)r(g,W((S-p.left)/p.width*100),!0)}function q(S){S.preventDefault(),S.currentTarget.setPointerCapture(S.pointerId)}function B(S){if(S.currentTarget.hasPointerCapture(S.pointerId))k(S.clientX)}function J(S){if(S.key==="ArrowLeft")r(g,W(e(g)-5),!0);else if(S.key==="ArrowRight")r(g,W(e(g)+5),!0);else return;S.preventDefault()}var L=al(),$=n(L);let Q;var K=n($);{let S=E(()=>t.active&&e(w)==="left"),p=E(()=>e(c)?void 0:a);Bt(K,{get id(){return t.id},get active(){return t.active},get focus(){return e(S)},get actions(){return e(p)}})}f($);var Y=s($,2);{var V=(S)=>{var p=il(),F=Ne(p);let ne;O(F,"aria-valuemin",20),O(F,"aria-valuemax",80);var U=s(F,2);let Z,ce;var Ce=n(U);{let z=E(()=>t.active&&e(c)),_=E(()=>t.active&&e(c)&&e(w)==="right"),se=E(()=>e(c)?a:void 0);Bt(Ce,{get id(){return t.id},arg:"shell",get active(){return e(z)},get focus(){return e(_)},get actions(){return e(se)}})}f(U),A((z)=>{ne=he(F,1,"divider svelte-1ysvu88",null,ne,{hidden:!e(c)}),O(F,"aria-valuenow",z),Z=he(U,1,"side svelte-1ysvu88",null,Z,{hidden:!e(c)}),ce=ni(U,"",ce,{"flex-basis":`${100-e(g)}%`})},[()=>Math.round(e(g))]),R("pointerdown",F,q),R("pointermove",F,B),R("dblclick",F,()=>r(g,50)),R("keydown",F,J),ke("pointerdown",U,()=>r(w,"right"),!0),o(S,p)};y(Y,(S)=>{if(e(h))S(V)})}f(L),Be(L,(S)=>b=S,()=>b),A(()=>Q=ni($,"",Q,{"flex-basis":e(c)?`${e(g)}%`:"100%"})),ke("pointerdown",$,()=>r(w,"left"),!0),o(i,L),fe()}Ve(["click","pointerdown","pointermove","dblclick","keydown"]);var ll=x('<iframe class="svelte-1duc7gd"></iframe>'),rl=x('<div role="tabpanel"><!> <!></div>'),fl=x('<div class="empty svelte-1duc7gd">No running instances.</div>'),nl=x("<div><!> <div><!> <!></div></div> <!>",1);function si(i,t){re(t,!0);let a=C(Ie(t.snapshot)),l=C(Ie(t.preflight)),c=C(Ie(t.pet)),h=C(Ie(t.filter)),g=C(t.snapshot.length>0),w=E(()=>e(a).filter((d)=>d.status==="running")),b=C(Ie(Object.fromEntries(t.snapshot.map((d)=>[d.id,d.attention])))),P=C(null),W=C("");function k(d){r(P,d.id,!0),r(W,d.name,!0)}function q(){r(P,null),r(W,"")}async function B(d){let v=e(W).trim(),X=e(a).find((ee)=>ee.id===d)?.name;if(!v||v===X){q();return}q();try{await Oe(`/api/instances/${d}/rename`,{name:v},"Failed to rename")}catch(ee){gt.error(ee.message)}}function J(d){r(h,d,!0),Oe("/api/settings/filter",{value:d}).catch(()=>{})}let L=C(Ie(t.initialPath)),$=E(()=>e(L).startsWith("/ide")),Q=E(()=>e(L).startsWith("/ide/")?e(L).slice(5):""),K=E(()=>e($)?e(w).some((d)=>d.id===e(Q))?e(Q):e(w)[0]?.id??"":"");function Y(d){if(d===e(L))return;history.pushState({},"",d),r(L,d,!0)}ue(()=>{function d(v){if(v.defaultPrevented||v.button!==0||v.metaKey||v.ctrlKey||v.shiftKey||v.altKey)return;let X=v.target?.closest?.("a");if(!X)return;let ee=X.getAttribute("href");if(!ee||X.target==="_blank"||X.hasAttribute("download"))return;let me=new URL(ee,location.href);if(me.origin!==location.origin)return;if(me.pathname==="/"||me.pathname.startsWith("/ide/"))v.preventDefault(),Y(me.pathname)}return document.addEventListener("click",d),()=>document.removeEventListener("click",d)}),ue(()=>{function d(){r(L,location.pathname,!0)}return window.addEventListener("popstate",d),()=>window.removeEventListener("popstate",d)}),ue(()=>{if(e(w).length===0)return;function d(v){v.preventDefault(),v.returnValue=""}return window.addEventListener("beforeunload",d),()=>window.removeEventListener("beforeunload",d)});let V=new He;ue(()=>{if(e(K))V.add(e(K))});let S=new He,p=new He,F=new He,ne=(d)=>p.has(d)||F.has(d),U=1e4,Z=E(()=>e(w).find((d)=>d.id===e(K))),ce={};function Ce(){let d=e(Z);if(!d||d.mode==="terminal")return;S.delete(d.id),ce[d.id]?.contentWindow?.location.replace(di(d))}ue(()=>{document.title=e($)&&e(Z)?`${e(Z).name} — Codebay`:"Codebay"});function z(d,v){if(!d.altKey||d.ctrlKey||d.metaKey||e(P))return;let X=/^Digit([1-9])$/.exec(d.code)?.[1];if(!X)return;let ee=Et(e(w).findIndex((j)=>j.id===e(K)),X,e(w).length),me=ee===null?void 0:e(w)[ee];if(!me)return;if(d.preventDefault(),d.stopPropagation(),Y(`/ide/${me.id}`),v)Mt().then(()=>ce[me.id]?.contentWindow?.focus())}let _=E(()=>e(w).filter((d)=>d.mode!=="terminal"&&S.has(d.id)).map((d)=>d.id).join(" "));ue(()=>{if(!e($))return;function d(X,ee){let me=(j)=>z(j,ee);return X.addEventListener("keydown",me,{capture:!0}),()=>X.removeEventListener("keydown",me,{capture:!0})}let v=[d(window,!1)];for(let X of e(_).split(" ").filter(Boolean)){let ee=ce[X]?.contentWindow;if(ee)v.push(d(ee,!0))}return()=>v.forEach((X)=>X())}),ue(()=>{return window.addEventListener("pointerdown",ht),window.addEventListener("keydown",ht),()=>{window.removeEventListener("pointerdown",ht),window.removeEventListener("keydown",ht)}}),ue(()=>{let d=!1;return Ai((v)=>{if(v.type==="preflight"){r(l,{...e(l),docker:v.data.docker,cli:v.data.cli},!0);return}if(v.type==="pet"){r(c,_e(v.data.name??void 0),!0);return}if(v.type==="filter"){r(h,v.data.value,!0);return}if(v.type==="default-mode"){r(l,{...e(l),defaultMode:v.data.mode},!0);return}if(v.type==="theme"){Fi(v.data.value);return}if(v.type==="health"){let j=e(a).find(($e)=>$e.id===v.data.id);if(v.data.health.codeServerAccessible&&j?.status==="running")p.add(v.data.id);return}if(v.type!=="instances")return;let X=v.data,ee=new Set(X.filter((j)=>j.status==="running").map((j)=>j.id));for(let j of[...p])if(!ee.has(j))p.delete(j);for(let j of[...F])if(!ee.has(j))F.delete(j);for(let j of[...S])if(!ee.has(j))S.delete(j);let me={};for(let j of X)me[j.id]=j.attention;if(d)for(let j in me){let $e=me[j];if($e&&$e!==e(b)[j])if(j===e(K))console.log(`[chime] attention id=${j} state=${$e} — skipped (tab is active/focused)`);else console.log(`[chime] attention id=${j} state=${$e} → playChime`),$i($e)}else console.log("[chime] first frame after (re)connect — baselining, no chimes");d=!0,r(a,X,!0),r(b,me,!0),r(g,!0)},()=>{d=!1})}),ue(()=>{if(!e(K)||!e(b)[e(K)])return;let d=()=>{if(document.visibilityState==="visible")Oe(`/api/instances/${e(K)}/attention/clear`).catch(()=>{})};return d(),document.addEventListener("visibilitychange",d),()=>document.removeEventListener("visibilitychange",d)});var se=nl(),u=Ne(se);let I;var N=n(u);{var m=(d)=>{{let v=E(()=>e(Z)&&e(Z).mode!=="terminal"&&ne(e(K))?Ce:void 0);fi(d,{get running(){return e(w)},get active(){return e(K)},get attention(){return e(b)},get editingId(){return e(P)},get onreload(){return e(v)},onselect:(X)=>Y(`/ide/${X}`),onstartrename:k,oncommitrename:B,oncancelrename:q,get editingName(){return e(W)},set editingName(X){r(W,X,!0)}})}},T=(d)=>{ri(d,{get preflight(){return e(l)},get instances(){return e(a)},get loaded(){return e(g)},get pet(){return e(c)},get filter(){return e(h)},onFilter:J})};y(N,(d)=>{if(e($))d(m);else d(T,-1)})}var D=s(N,2);let H;var Le=n(D);ye(Le,17,()=>e(w),(d)=>d.id,(d,v)=>{var X=je(),ee=Ne(X);{var me=($e)=>{var Je=rl();let tt;var ve=n(Je);{var Ze=(Ae)=>{var Re=je(),Fe=Ne(Re);{var Se=(Ee)=>{{let be=E(()=>e(v).id===e(K)),ze=E(()=>e(v).terminal_split===1);ci(Ee,{get id(){return e(v).id},get active(){return e(be)},get initialOpen(){return e(ze)}})}},we=(Ee)=>{var be=ll();Be(be,(ze,Qe)=>ce[Qe.id]=ze,(ze)=>ce?.[ze.id],()=>[e(v)]),A((ze)=>{O(be,"src",ze),O(be,"title",e(v).name)},[()=>di(e(v))]),ke("load",be,()=>S.add(e(v).id)),pi(be),o(Ee,be)};y(Fe,(Ee)=>{if(e(v).mode==="terminal")Ee(Se);else Ee(we,-1)})}o(Ae,Re)},ut=E(()=>ne(e(v).id));y(ve,(Ae)=>{if(e(ut))Ae(Ze)})}var vt=s(ve,2);{var M=(Ae)=>{Wt(Ae,{get mode(){return e(v).mode},stalledAfterMs:U,onoverride:()=>F.add(e(v).id)})},de=E(()=>!ne(e(v).id)),We=(Ae)=>{Wt(Ae,{})},st=E(()=>e(v).mode!=="terminal"&&!S.has(e(v).id));y(vt,(Ae)=>{if(e(de))Ae(M);else if(e(st))Ae(We,1)})}f(Je),A(()=>{tt=he(Je,1,"pane svelte-1duc7gd",null,tt,{active:e(v).id===e(K)}),O(Je,"aria-labelledby",`tab-${e(v).id??""}`)}),o($e,Je)},j=E(()=>V.has(e(v).id));y(ee,($e)=>{if(e(j))$e(me)})}o(d,X)});var Pe=s(Le,2);{var oe=(d)=>{var v=fl();o(d,v)};y(Pe,(d)=>{if(e($)&&e(w).length===0)d(oe)})}f(D),f(u);var De=s(u,2);Pi(De,{get toastOptions(){return zi}}),A(()=>{I=he(u,1,"app svelte-1duc7gd",null,I,{ide:e($)}),H=he(D,1,"panes svelte-1duc7gd",null,H,{hidden:!e($)})}),o(i,se),fe()}Vi("AppShell_2rtnxn6pgp2rh",si);
1
+ import{a as jt,b as wi,d as Fi}from"/_mochi/client/chunk-s70rry6z.js";import{e as ft,f as nt,g as Ft,j as $i,l as ht,m as Ai}from"/_mochi/client/chunk-6v5d7dex.js";import{p as di,q as Gt,r as Oe,s as Si,w as zi}from"/_mochi/client/chunk-wcfbjj3x.js";import{F as _e,G as et,H as Me,I as Pi,J as gt,K as Ei,L as Vi}from"/_mochi/client/chunk-krevp8yb.js";import{M as ae,N as mt,O as qe}from"/_mochi/client/chunk-a5e8vytv.js";import{Ba as pi,Ca as ke,Da as R,Ea as Ve,Fa as x,Ha as pe,Ia as je,Ja as o,Ka as G,La as y,Na as bi,Oa as ye,Qa as Mi,R as yi,Ra as Ni,T as f,U as ge,Ua as he,Va as ni,Xa as Ye,Y as re,Z as fe,_a as O,ab as Ge,bb as Be,cb as Ii,da as pt,db as te,ea as Qt,eb as ie,fa as E,fb as xe,gb as Ti,ha as It,ia as C,jb as Ci,ka as r,la as Te,lb as Wi,ma as Ie,na as n,oa as Ne,pa as s,qa as ue,ta as A,ua as Kt,va as Jt,wa as at,xa as Mt,ya as e}from"/_mochi/client/chunk-d9bszcp8.js";import{mb as Li}from"/_mochi/client/chunk-2eaagsfc.js";var oi=!1;class Zt extends Date{#e=C(super.getTime());#t=new Map;#i=Kt;constructor(...i){super(...i);if(!oi)this.#a()}#a(){oi=!0;var i=Zt.prototype,t=Date.prototype,a=Object.getOwnPropertyNames(t);for(let l of a){if(l.startsWith("get")||l.startsWith("to")||l==="valueOf")i[l]=function(...c){if(c.length>0)return e(this.#e),t[l].apply(this,c);var h=this.#t.get(l);if(h===void 0){let g=Kt;Jt(this.#i),h=E(()=>{return e(this.#e),t[l].apply(this,c)}),this.#t.set(l,h),Jt(g)}return e(h)};if(l.startsWith("set"))i[l]=function(...c){var h=t[l].apply(this,c);return r(this.#e,t.getTime.call(this)),h}}}}var Ri=["forEach","isDisjointFrom","isSubsetOf","isSupersetOf"],Bi=["difference","intersection","symmetricDifference","union"],mi=!1;class He extends Set{#e=new Map;#t=C(0);#i=C(0);#a=at||-1;constructor(i){super();if(i){for(var t of i)super.add(t);this.#i.v=super.size}if(!mi)this.#r()}#l(i){return at===this.#a?C(i):It(i)}#r(){mi=!0;var i=He.prototype,t=Set.prototype;for(let a of Ri)i[a]=function(...l){return e(this.#t),t[a].apply(this,l)};for(let a of Bi)i[a]=function(...l){e(this.#t);var c=t[a].apply(this,l);return new He(c)}}has(i){var t=super.has(i),a=this.#e,l=a.get(i);if(l===void 0){if(!t)return e(this.#t),!1;l=this.#l(!0),a.set(i,l)}return e(l),t}add(i){if(!super.has(i))super.add(i),r(this.#i,super.size),Te(this.#t);return this}delete(i){var t=super.delete(i),a=this.#e,l=a.get(i);if(l!==void 0)a.delete(i),r(l,!1);if(t)r(this.#i,super.size),Te(this.#t);return t}clear(){if(super.size===0)return;super.clear();var i=this.#e;for(var t of i.values())r(t,!1);i.clear(),r(this.#i,0),Te(this.#t)}keys(){return this.values()}values(){return e(this.#t),super.values()}entries(){return e(this.#t),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return e(this.#i)}}class gi extends Map{#e=new Map;#t=C(0);#i=C(0);#a=at||-1;constructor(i){super();if(i){for(var[t,a]of i)super.set(t,a);this.#i.v=super.size}}#l(i){return at===this.#a?C(i):It(i)}has(i){var t=this.#e,a=t.get(i);if(a===void 0)if(super.has(i))a=this.#l(0),t.set(i,a);else return e(this.#t),!1;return e(a),!0}forEach(i,t){this.#r(),super.forEach(i,t)}get(i){var t=this.#e,a=t.get(i);if(a===void 0)if(super.has(i))a=this.#l(0),t.set(i,a);else{e(this.#t);return}return e(a),super.get(i)}set(i,t){var a=this.#e,l=a.get(i),c=super.get(i),h=super.set(i,t),g=this.#t;if(l===void 0)l=this.#l(0),a.set(i,l),r(this.#i,super.size),Te(g);else if(c!==t){Te(l);var w=g.reactions===null?null:new Set(g.reactions),b=w===null||!l.reactions?.every((P)=>w.has(P));if(b)Te(g)}return h}delete(i){var t=this.#e,a=t.get(i),l=super.delete(i);if(a!==void 0)t.delete(i),r(a,-1);if(l)r(this.#i,super.size),Te(this.#t);return l}clear(){if(super.size===0)return;super.clear();var i=this.#e;r(this.#i,0);for(var t of i.values())r(t,-1);Te(this.#t),i.clear()}#r(){e(this.#t);var i=this.#e;if(this.#i.v!==i.size){for(var t of super.keys())if(!i.has(t)){var a=this.#l(0);i.set(t,a)}}for([,a]of this.#e)e(a)}keys(){return e(this.#t),super.keys()}values(){return this.#r(),super.values()}entries(){return this.#r(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#i),super.size}}var Nt=Symbol("replace");class Ct extends URLSearchParams{#e=C(0);#t=hi();#i=!1;#a(){if(!this.#t||this.#i)return;this.#i=!0;let i=this.toString();this.#t.search=i&&`?${i}`,this.#i=!1}[Nt](i){if(this.#i)return;if(i.toString()===super.toString())return;this.#i=!0;for(let t of[...super.keys()])super.delete(t);for(let[t,a]of i)super.append(t,a);Te(this.#e),this.#i=!1}append(i,t){super.append(i,t),this.#a(),Te(this.#e)}delete(i,t){var a=super.has(i,t);if(super.delete(i,t),a)this.#a(),Te(this.#e)}get(i){return e(this.#e),super.get(i)}getAll(i){return e(this.#e),super.getAll(i)}has(i,t){return e(this.#e),super.has(i,t)}keys(){return e(this.#e),super.keys()}forEach(i,t){e(this.#e),super.forEach(i,t)}set(i,t){var a=super.getAll(i);super.set(i,t);var l=super.getAll(i);if(a.length!==l.length||a.some((c,h)=>c!==l[h]))this.#a(),Te(this.#e)}sort(){super.sort(),this.#a(),Te(this.#e)}toString(){return e(this.#e),super.toString()}values(){return e(this.#e),super.values()}entries(){return e(this.#e),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#e),super.size}}var Ht=null;function hi(){return Ht}class ui extends URL{#e=C(super.protocol);#t=C(super.username);#i=C(super.password);#a=C(super.hostname);#l=C(super.port);#r=C(super.pathname);#f=C(super.hash);#n=C(super.search);#c;constructor(i,t){i=new URL(i,t);super(i);Ht=this,this.#c=new Ct(i.searchParams),Ht=null}get hash(){return e(this.#f)}set hash(i){super.hash=i,r(this.#f,super.hash)}get host(){return e(this.#a),e(this.#l),super.host}set host(i){super.host=i,r(this.#a,super.hostname),r(this.#l,super.port)}get hostname(){return e(this.#a)}set hostname(i){super.hostname=i,r(this.#a,super.hostname)}get href(){return e(this.#e),e(this.#t),e(this.#i),e(this.#a),e(this.#l),e(this.#r),e(this.#f),e(this.#n),super.href}set href(i){super.href=i,r(this.#e,super.protocol),r(this.#t,super.username),r(this.#i,super.password),r(this.#a,super.hostname),r(this.#l,super.port),r(this.#r,super.pathname),r(this.#f,super.hash),r(this.#n,super.search),this.#c[Nt](super.searchParams)}get password(){return e(this.#i)}set password(i){super.password=i,r(this.#i,super.password)}get pathname(){return e(this.#r)}set pathname(i){super.pathname=i,r(this.#r,super.pathname)}get port(){return e(this.#l)}set port(i){super.port=i,r(this.#l,super.port)}get protocol(){return e(this.#e)}set protocol(i){super.protocol=i,r(this.#e,super.protocol)}get search(){return e(this.#n)}set search(i){super.search=i,r(this.#n,super.search),this.#c[Nt](super.searchParams)}get username(){return e(this.#t)}set username(i){super.username=i,r(this.#t,super.username)}get origin(){return e(this.#e),e(this.#a),e(this.#l),super.origin}get searchParams(){return this.#c}toString(){return this.href}toJSON(){return this.href}}class vi{#e;#t;constructor(i,t){this.#e=i,this.#t=Qt(t)}get current(){return this.#t(),this.#e()}}function Oi(i,t){return i===9?t-1:i-1}function Et(i,t,a){if(a<=0)return null;let l=i<0||i>=a?0:i;switch(t){case"ArrowRight":return(l+1)%a;case"ArrowLeft":return(l-1+a)%a;case"Home":return 0;case"End":return a-1;default:{if(!/^[1-9]$/.test(t))return null;let c=Oi(Number(t),a);return c<a?c:null}}}var xi=/^[A-Za-z0-9._-]+$/;function Ki(i){let t=i.trim();if(!t)return null;let a,l,c=t.match(/^[A-Za-z0-9._-]+@([A-Za-z0-9.-]+):(.+)$/);if(c)a=c[1],l=c[2];else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(t)){let b;try{b=new URL(t)}catch{return null}if(b.protocol!=="http:"&&b.protocol!=="https:"&&b.protocol!=="ssh:")return null;a=b.hostname,l=b.pathname}else{let b=t.match(/^([A-Za-z0-9-]+\.[A-Za-z0-9.-]+)\/(.+)$/);if(!b)return null;a=b[1],l=b[2]}if(!a||!l)return null;let h=l.replace(/\.git$/i,"").split("/").filter(Boolean),[g,w]=h;if(!g||!w||!xi.test(g)||!xi.test(w))return null;return{host:a,owner:g,repo:w,cloneUrl:`https://${a}/${g}/${w}.git`}}function Yt(i){return Ki(i)!==null}var Ji=new Set(["$$slots","$$events","$$legacy"]);function bt(i,t){let a=te(t,Ji),l=[["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"}]];ae(i,ie({name:"folder-clock"},()=>a,{get iconNode(){return l}}))}var Zi=new Set(["$$slots","$$events","$$legacy"]);function lt(i,t){let a=te(t,Zi),l=[["path",{d:"M15 6a9 9 0 0 0-9 9V3"}],["circle",{cx:"18",cy:"6",r:"3"}],["circle",{cx:"6",cy:"18",r:"3"}]];ae(i,ie({name:"git-branch"},()=>a,{get iconNode(){return l}}))}var Hi=new Set(["$$slots","$$events","$$legacy"]);function Lt(i,t){let a=te(t,Hi),l=[["path",{d:"m5 12 7-7 7 7"}],["path",{d:"M12 19V5"}]];ae(i,ie({name:"arrow-up"},()=>a,{get iconNode(){return l}}))}var Qi=new Set(["$$slots","$$events","$$legacy"]);function yt(i,t){let a=te(t,Qi),l=[["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"}]];ae(i,ie({name:"folder"},()=>a,{get iconNode(){return l}}))}var Yi=new Set(["$$slots","$$events","$$legacy"]);function rt(i,t){let a=te(t,Yi),l=[["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"}]];ae(i,ie({name:"triangle-alert"},()=>a,{get iconNode(){return l}}))}var Gi=x('<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>'),Ui=x('<button class="recent-toggle svelte-oq97c4"> </button>'),Xi=x('<div class="recent svelte-oq97c4"><div class="recent-label svelte-oq97c4">Recent</div> <!> <!></div>'),ji=x('<div class="muted svelte-oq97c4">Loading…</div>'),qi=x('<div class="muted err svelte-oq97c4"> </div>'),_i=x('<div class="row svelte-oq97c4"><button class="nav svelte-oq97c4"><span class="icon svelte-oq97c4"><!></span> <span class="ename svelte-oq97c4">..</span></button></div>'),ea=x('<div class="muted svelte-oq97c4"> </div>'),ta=x('<span class="badge svelte-oq97c4">devcontainer</span>'),ia=x('<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>'),aa=x("<!> <!> <!>",1),la=x(`<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>`),ra=x('<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="mode svelte-oq97c4"><div class="mode-label svelte-oq97c4">Editor</div> <div class="mode-toggle svelte-oq97c4" role="group" aria-label="Editor mode"><button type="button"><!> Full IDE</button> <button type="button"><!> Terminal</button></div></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 Ut(i,t){re(t,!0);let a=xe(t,"defaultMode",3,"ide"),l=xe(t,"initialMode",3,null),c=C(Ie(l())),h=E(()=>e(c)??a()),g=C(null),w=C(!0),b=C(null),P=C(""),W=C(null),k=C(Ie([])),q=C(!1),B=C(""),J=C(""),L=E(()=>Yt(e(B)));function $(){if(!e(L))return;t.onpick(e(B).trim(),{branch:e(J).trim()||void 0,mode:e(h)})}let Q=E(()=>e(g)?e(g).entries.filter((M)=>M.name.toLowerCase().includes(e(P).trim().toLowerCase())):[]),K=E(()=>e(q)?e(k):e(k).slice(0,5));async function Y(){try{let M=await Gt("/api/history");r(k,M.history??[],!0)}catch{}}async function V(M){let de=e(k);r(k,e(k).filter((We)=>We.source_path!==M),!0);try{await Si("/api/history",{sourcePath:M})}catch{r(k,de,!0)}}async function S(M=null){r(w,!0),r(b,null),r(P,"");try{let de=M?`/api/browse?path=${encodeURIComponent(M)}`:"/api/browse";r(g,await Gt(de,void 0,"Could not list folder"),!0)}catch(de){r(b,de.message,!0)}finally{r(w,!1)}await Mt(),e(W)?.focus()}ue(()=>{S(),Y()});var p=ra(),F=n(p),ne=n(F),U=s(n(ne),2),Z=n(U);mt(Z,{size:16}),f(U),f(ne);var ce=s(ne,2),Ce=s(n(ce),2),z=n(Ce);let _;var se=n(z);nt(se,{size:15}),ge(),f(z);var u=s(z,2);let I;var N=n(u);ft(N,{size:15}),ge(),f(u),f(Ce),f(ce);var m=s(ce,2),T=s(n(m),2),D=n(T);Ye(D);var H=s(D,2);Ye(H);var Le=s(H,2);f(T),f(m);var Pe=s(m,2),oe=n(Pe),De=n(oe,!0);f(oe),f(Pe);var d=s(Pe,2);{var v=(M)=>{var de=Xi(),We=s(n(de),2);ye(We,17,()=>e(K),(Re)=>Re.source_path,(Re,Fe)=>{var Se=Gi(),we=n(Se),Ee=n(we),be=n(Ee);{var ze=(Ke)=>{lt(Ke,{size:16})},Qe=E(()=>Yt(e(Fe).source_path)),ot=(Ke)=>{bt(Ke,{size:16})};y(be,(Ke)=>{if(e(Qe))Ke(ze);else Ke(ot,-1)})}f(Ee);var xt=s(Ee,2),Ue=n(xt),kt=n(Ue,!0);f(Ue);var St=s(Ue,2),Ot=n(St,!0);f(St),f(xt),f(we);var it=s(we,2),Xe=n(it);mt(Xe,{size:14}),f(it),f(Se),A(()=>{G(kt,e(Fe).name),G(Ot,e(Fe).source_path),O(it,"aria-label",`Remove ${e(Fe).name??""} from history`)}),R("click",we,()=>t.onpick(e(Fe).source_path,{mode:e(h)})),R("click",it,(Ke)=>{Ke.stopPropagation(),V(e(Fe).source_path)}),o(Re,Se)});var st=s(We,2);{var Ae=(Re)=>{var Fe=Ui(),Se=n(Fe,!0);f(Fe),A(()=>G(Se,e(q)?"Show fewer":`Show all (${e(k).length})`)),R("click",Fe,()=>r(q,!e(q))),o(Re,Fe)};y(st,(Re)=>{if(e(k).length>5)Re(Ae)})}f(de),o(M,de)};y(d,(M)=>{if(e(k).length>0)M(v)})}var X=s(d,2),ee=n(X);Ye(ee),Be(ee,(M)=>r(W,M),()=>e(W)),f(X);var me=s(X,2),j=n(me);{var $e=(M)=>{var de=ji();o(M,de)},Je=(M)=>{var de=qi(),We=n(de,!0);f(de),A(()=>G(We,e(b))),o(M,de)},tt=(M)=>{var de=aa(),We=Ne(de);{var st=(Se)=>{var we=_i(),Ee=n(we),be=n(Ee),ze=n(be);Lt(ze,{size:16}),f(be),ge(2),f(Ee),f(we),R("click",Ee,()=>S(e(g)?.parent??null)),o(Se,we)};y(We,(Se)=>{if(e(g).parent&&!e(P))Se(st)})}var Ae=s(We,2);{var Re=(Se)=>{var we=ea(),Ee=n(we,!0);f(we),A(()=>G(Ee,e(P)?"No folders match.":"No subfolders here.")),o(Se,we)};y(Ae,(Se)=>{if(e(Q).length===0)Se(Re)})}var Fe=s(Ae,2);ye(Fe,19,()=>e(Q),(Se)=>Se.path,(Se,we,Ee)=>{var be=ia();let ze;var Qe=n(be),ot=n(Qe),xt=n(ot);yt(xt,{size:16}),f(ot);var Ue=s(ot,2),kt=n(Ue,!0);f(Ue);var St=s(Ue,2);{var Ot=(Xe)=>{var Ke=ta();o(Xe,Ke)};y(St,(Xe)=>{if(e(we).hasDevcontainer)Xe(Ot)})}f(Qe);var it=s(Qe,2);f(be),A((Xe)=>{ze=he(be,1,"row svelte-oq97c4",null,ze,Xe),G(kt,e(we).name)},[()=>({"first-match":e(P).trim()&&e(Ee)===0})]),R("click",Qe,()=>S(e(we).path)),R("click",it,()=>t.onpick(e(we).path,{mode:e(h)})),o(Se,be)}),o(M,de)};y(j,(M)=>{if(e(w))M($e);else if(e(b))M(Je,1);else if(e(g))M(tt,2)})}f(me);var ve=s(me,2);{var Ze=(M)=>{var de=la(),We=n(de);rt(We,{size:15}),ge(2),f(de),o(M,de)};y(ve,(M)=>{if(e(g)&&!e(g).hasDevcontainer)M(Ze)})}var ut=s(ve,2),vt=s(n(ut),2);f(ut),f(F),f(p),A(()=>{_=he(z,1,"mode-btn svelte-oq97c4",null,_,{active:e(h)==="ide"}),O(z,"aria-pressed",e(h)==="ide"),I=he(u,1,"mode-btn svelte-oq97c4",null,I,{active:e(h)==="terminal"}),O(u,"aria-pressed",e(h)==="terminal"),Le.disabled=!e(L),G(De,e(g)?.path??"…"),vt.disabled=!e(g)}),R("click",p,function(...M){t.onclose?.apply(this,M)}),R("keydown",p,(M)=>M.key==="Escape"&&t.onclose()),R("click",F,(M)=>M.stopPropagation()),R("keydown",F,()=>{}),R("click",U,function(...M){t.onclose?.apply(this,M)}),R("click",z,()=>r(c,"ide")),R("click",u,()=>r(c,"terminal")),R("keydown",D,(M)=>{if(M.key==="Enter")M.preventDefault(),$()}),Ge(D,()=>e(B),(M)=>r(B,M)),R("keydown",H,(M)=>{if(M.key==="Enter")M.preventDefault(),$()}),Ge(H,()=>e(J),(M)=>r(J,M)),R("click",Le,$),R("keydown",ee,(M)=>{let de=e(Q)[0];if(M.key==="Enter"&&de)M.preventDefault(),S(de.path)}),Ge(ee,()=>e(P),(M)=>r(P,M)),R("click",vt,()=>e(g)&&t.onpick(e(g).path,{mode:e(h)})),o(i,p),fe()}Ve(["click","keydown"]);var fa=x('<div class="branch svelte-jv8lut" title="Branch checked out in the container"><!><span class="svelte-jv8lut"> </span></div>');function Xt(i,t){var a=fa(),l=n(a);lt(l,{size:12});var c=s(l),h=n(c,!0);f(c),f(a),A(()=>G(h,t.branch)),o(i,a)}var na=new Set(["$$slots","$$events","$$legacy"]);function Tt(i,t){let a=te(t,na),l=[["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"}]];ae(i,ie({name:"cable"},()=>a,{get iconNode(){return l}}))}var ca=x('<a target="_blank" rel="noopener"> </a>'),da=x('<div class="fports svelte-1uaz383" title="Forwarded ports — click to open"><!> <span class="list svelte-1uaz383"></span></div>');function qt(i,t){re(t,!0);var a=je(),l=Ne(a);{var c=(h)=>{var g=da(),w=n(g);Tt(w,{size:12});var b=s(w,2);ye(b,21,()=>t.ports,(P)=>P.container_port,(P,W)=>{var k=ca();let q;var B=n(k,!0);f(k),A((J,L)=>{q=he(k,1,"fport svelte-1uaz383",null,q,{open:e(W).open}),O(k,"href",J),O(k,"title",L),G(B,e(W).container_port)},[()=>jt(e(W).host_port),()=>`container :${e(W).container_port} → ${jt(e(W).host_port)} ${e(W).open?"(open)":"(not published yet)"}`]),o(P,k)}),f(b),f(g),o(h,g)};y(l,(h)=>{if(t.ports.length)h(c)})}o(i,a),fe()}var sa=x('<div class="busy-overlay svelte-13338y7" aria-live="polite"><span class="busy-label svelte-13338y7"> </span></div>'),oa=x('<input class="name-edit svelte-13338y7"/>'),ma=x('<button class="name svelte-13338y7" title="Click to rename"> </button>'),ga=x("<span></span>"),ha=x('<div class="card-error svelte-13338y7"> </div>'),ua=x("<!> <!>",1),va=x('<li><!> <div class="card-head svelte-13338y7"><!> <!> <!> <!></div> <div class="path svelte-13338y7"> </div> <!> <!> <!> <div class="actions svelte-13338y7"><!> <!> <!> <!></div></li>');function _t(i,t){re(t,!0);let a=xe(t,"editingName",15),l=xe(t,"pending",3,null),c=E(()=>t.instance.status==="running"||t.instance.status==="stopped"||t.instance.status==="error"&&!!t.instance.container_id),h={start:"Starting…",stop:"Stopping…",delete:"Deleting…",rebuild:"Rebuilding…"};var g=va();let w;var b=n(g);{var P=(m)=>{var T=sa(),D=n(T),H=n(D,!0);f(D),f(T),A(()=>G(H,h[l()])),o(m,T)};y(b,(m)=>{if(l())m(P)})}var W=s(b,2),k=n(W);{let m=E(()=>_e(t.instance.avatar??void 0)??null);et(k,{get name(){return t.instance.name},get art(){return e(m)},interactive:!0})}var q=s(k,2);{var B=(m)=>{var T=oa();Ye(T),pt(T,!0),ke("focus",T,(D)=>D.currentTarget.select()),ke("blur",T,function(...D){t.oncommitrename?.apply(this,D)}),R("keydown",T,(D)=>{if(D.key==="Enter")D.currentTarget.blur();else if(D.key==="Escape")t.oncancelrename()}),Ge(T,a),o(m,T)},J=(m)=>{var T=ma(),D=n(T,!0);f(T),A(()=>G(D,t.instance.name)),R("click",T,function(...H){t.onstartrename?.apply(this,H)}),o(m,T)};y(q,(m)=>{if(t.editing)m(B);else m(J,-1)})}var L=s(q,2);{var $=(m)=>{var T=ga();let D;A(()=>{D=he(T,1,"attn svelte-13338y7",null,D,{"attn-done":t.instance.attention==="done","attn-waiting":t.instance.attention==="waiting"}),O(T,"title",t.instance.attention==="waiting"?"Claude is waiting for input":"Claude finished"),O(T,"aria-label",t.instance.attention==="waiting"?"Claude is waiting for input":"Claude finished")}),o(m,T)};y(L,(m)=>{if(t.instance.attention)m($)})}var Q=s(L,2);wi(Q,{get status(){return t.instance.status}}),f(W);var K=s(W,2),Y=n(K,!0);f(K);var V=s(K,2);{var S=(m)=>{qt(m,{get ports(){return t.instance.forwarded_ports}})};y(V,(m)=>{if(t.instance.status==="running")m(S)})}var p=s(V,2);{var F=(m)=>{Xt(m,{get branch(){return t.instance.git_branch}})};y(p,(m)=>{if(t.instance.git_branch)m(F)})}var ne=s(p,2);{var U=(m)=>{var T=ha(),D=n(T,!0);f(T),A(()=>G(D,t.instance.error)),o(m,T)};y(ne,(m)=>{if(t.instance.status==="error"&&t.instance.error)m(U)})}var Z=s(ne,2),ce=n(Z);{var Ce=(m)=>{var T=ua(),D=Ne(T);{let Le=E(()=>`/ide/${t.instance.id}`);Me(D,{variant:"primary",size:"sm",get href(){return e(Le)},children:(Pe,oe)=>{ge();var De=pe();A(()=>G(De,t.instance.mode==="terminal"?"Open terminal":"Open IDE")),o(Pe,De)},$$slots:{default:!0}})}var H=s(D,2);Me(H,{size:"sm",onclick:()=>t.onact("stop"),children:(Le,Pe)=>{ge();var oe=pe("Stop");o(Le,oe)},$$slots:{default:!0}}),o(m,T)},z=(m)=>{Me(m,{size:"sm",onclick:()=>t.onact("start"),children:(T,D)=>{ge();var H=pe("Start");o(T,H)},$$slots:{default:!0}})},_=(m)=>{{let T=E(()=>qe(`/instances/${t.instance.id}`));Me(m,{size:"sm",get href(){return e(T)},target:"_blank",rel:"noopener noreferrer",children:(D,H)=>{ge();var Le=pe("View logs");o(D,Le)},$$slots:{default:!0}})}};y(ce,(m)=>{if(t.instance.status==="running")m(Ce);else if(t.instance.status==="stopped"||t.instance.status==="error"&&t.instance.container_id)m(z,1);else if(t.instance.status==="creating")m(_,2)})}var se=s(ce,2);{var u=(m)=>{Me(m,{size:"sm",title:"Recreate the container and re-run setup (credentials, hooks, port forwards)",onclick:()=>t.onact("rebuild"),children:(T,D)=>{ge();var H=pe("Rebuild");o(T,H)},$$slots:{default:!0}})};y(se,(m)=>{if(e(c))m(u)})}var I=s(se,2);{let m=E(()=>qe(`/instances/${t.instance.id}`));Me(I,{size:"sm",ghost:!0,get href(){return e(m)},target:"_blank",rel:"noopener noreferrer",children:(T,D)=>{ge();var H=pe("Details");o(T,H)},$$slots:{default:!0}})}var N=s(I,2);Me(N,{variant:"danger",size:"sm",onclick:()=>t.onact("delete"),children:(m,T)=>{ge();var D=pe("Delete");o(m,D)},$$slots:{default:!0}}),f(Z),f(g),A(()=>{w=he(g,1,"card panel svelte-13338y7",null,w,{busy:!!l()}),O(g,"aria-busy",!!l()||void 0),O(K,"title",t.instance.source_path),G(Y,t.instance.source_path)}),o(i,g),fe()}Ve(["keydown","click"]);var xa=new Set(["$$slots","$$events","$$legacy"]);function Pt(i,t){let a=te(t,xa),l=[["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"}]];ae(i,ie({name:"component"},()=>a,{get iconNode(){return l}}))}var Sa=new Set(["$$slots","$$events","$$legacy"]);function $t(i,t){let a=te(t,Sa),l=[["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"}]];ae(i,ie({name:"package"},()=>a,{get iconNode(){return l}}))}var wa=x('<a class="brand svelte-94cd8h" href="/"><span class="logo svelte-94cd8h"><!></span><span class="words svelte-94cd8h"><span>Codebay</span><span class="tagline svelte-94cd8h">devcontainer manager</span></span></a>');function ei(i,t){re(t,!0);var a=wa(),l=n(a),c=n(l);{var h=(w)=>{et(w,{get art(){return t.pet},get name(){return t.pet.name},scale:4})},g=(w)=>{$t(w,{size:22})};y(c,(w)=>{if(t.pet)w(h);else w(g,-1)})}f(l),ge(),f(a),o(i,a),fe()}var Ia=x('<button type="button" role="radio"> </button>'),Na=x('<div class="picker svelte-12yor8r" role="radiogroup" aria-label="Filter instances"></div>');function ti(i,t){re(t,!0);let a=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"stopped",label:"Stopped"}];var l=Na();ye(l,21,()=>a,(c)=>c.value,(c,h)=>{var g=Ia();let w;var b=n(g,!0);f(g),A(()=>{w=he(g,1,"segment svelte-12yor8r",null,w,{active:t.value===e(h).value}),O(g,"aria-checked",t.value===e(h).value),G(b,e(h).label)}),R("click",g,()=>t.onchange(e(h).value)),o(c,g)}),f(l),o(i,l),fe()}Ve(["click"]);var Ca=new Set(["$$slots","$$events","$$legacy"]);function ct(i,t){let a=te(t,Ca),l=[["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"}]];ae(i,ie({name:"settings"},()=>a,{get iconNode(){return l}}))}var Ea=x('<a class="cog svelte-1e745g8" target="_blank" rel="noopener noreferrer" aria-label="Settings" title="Settings"><!></a>');function ii(i,t){re(t,!1),Ii();var a=Ea(),l=n(a);ct(l,{size:16}),f(a),A((c)=>O(a,"href",c),[()=>qe("/settings")]),o(i,a),fe()}var ba=new Set(["$$slots","$$events","$$legacy"]);function At(i,t){let a=te(t,ba),l=[["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"}]];ae(i,ie({name:"link"},()=>a,{get iconNode(){return l}}))}var La=x('<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>'),ya=x('<div class="cred-dropdown panel svelte-vongf9" role="menu"></div>'),Ma=x('<div class="cred-menu svelte-vongf9"><button aria-haspopup="menu" aria-label="Credentials" title="Credentials"><!></button> <!></div>');function ai(i,t){re(t,!0);let a=C(!1),l=E(()=>t.auth.filter((B)=>B.available).length),c=E(()=>e(l)===t.auth.length?"ok":e(l)===0?"error":"warn"),h={ok:At,warn:rt,error:mt},g=E(()=>h[e(c)]);function w(B){if(B.available)gt.success(`${B.label} credentials come from ${B.source}.`);else{let J=B.hint?` — ${B.hint}`:"";gt.error(`No ${B.label} credentials found${J}.`)}}ue(()=>{if(!e(a))return;let B=(L)=>{if(!L.target?.closest(".cred-menu"))r(a,!1)},J=(L)=>{if(L.key==="Escape")r(a,!1)};return window.addEventListener("click",B),window.addEventListener("keydown",J),()=>{window.removeEventListener("click",B),window.removeEventListener("keydown",J)}});var b=Ma(),P=n(b),W=n(P);Ni(W,()=>e(g),(B,J)=>{J(B,{size:16})}),f(P);var k=s(P,2);{var q=(B)=>{var J=ya();ye(J,21,()=>t.auth,(L)=>L.id,(L,$)=>{var Q=La(),K=n(Q),Y=s(K,2),V=n(Y,!0);f(Y);var S=s(Y,2),p=n(S,!0);f(S),f(Q),A(()=>{O(Q,"title",e($).available?`Credentials from ${e($).source}, copied into each new instance.`:`No credentials found on this computer${e($).hint?` — ${e($).hint}`:""}.`),he(K,1,`dot ${e($).available?"on":"off"}`,"svelte-vongf9"),G(V,e($).label),G(p,e($).available?"Authorized":"Not found")}),R("click",Q,()=>w(e($))),o(L,Q)}),f(J),o(B,J)};y(k,(B)=>{if(e(a))B(q)})}f(b),A(()=>{he(P,1,`cred ${e(c)??""}`,"svelte-vongf9"),O(P,"aria-expanded",e(a))}),R("click",P,()=>r(a,!e(a))),o(i,b),fe()}Ve(["click"]);var Ta=x('<header class="topbar svelte-1h259us"><!> <div class="topbar-actions svelte-1h259us"><!> <!> <!> <!> <!> <div class="new-group svelte-1h259us"><!> <!></div></div></header>');function li(i,t){re(t,!0);let a=xe(t,"canDelete",3,!1),l=xe(t,"ready",3,!0),c=xe(t,"creating",3,!1),h=xe(t,"defaultMode",3,"ide"),g=E(()=>h()==="terminal"?"ide":"terminal");var w=Ta(),b=n(w);ei(b,{get pet(){return t.pet}});var P=s(b,2),W=n(P);{var k=(V)=>{Me(V,{variant:"default",size:"sm",get icon(){return Pt},href:"/debug",children:(S,p)=>{ge();var F=pe("Debug");o(S,F)},$$slots:{default:!0}})};y(W,(V)=>{if(Ci)V(k)})}var q=s(W,2);{var B=(V)=>{ti(V,{get value(){return t.filter},get onchange(){return t.onFilter}})};y(q,(V)=>{if(t.filter&&t.onFilter)V(B)})}var J=s(q,2);ii(J,{});var L=s(J,2);ai(L,{get auth(){return t.auth}});var $=s(L,2);{let V=E(()=>!a());Me($,{variant:"danger",size:"sm",get onclick(){return t.onDeleteAll},get disabled(){return e(V)},children:(S,p)=>{ge();var F=pe("Delete all");o(S,F)},$$slots:{default:!0}})}var Q=s($,2),K=n(Q);{let V=E(()=>c()?void 0:Ft),S=E(()=>!l()||c());Me(K,{variant:"primary",size:"sm",get icon(){return e(V)},onclick:()=>t.onNew?.(),get disabled(){return e(S)},children:(p,F)=>{ge();var ne=pe();A(()=>G(ne,c()?"Creating…":"New instance")),o(p,ne)},$$slots:{default:!0}})}var Y=s(K,2);{let V=E(()=>e(g)==="terminal"?ft:nt),S=E(()=>!l()||c()),p=E(()=>e(g)==="terminal"?"New terminal instance":"New full IDE instance"),F=E(()=>e(g)==="terminal"?"New terminal instance":"New full IDE instance");Me(Y,{variant:"default",size:"sm",square:!0,get icon(){return e(V)},iconSize:15,onclick:()=>t.onNew?.(e(g)),get disabled(){return e(S)},get title(){return e(p)},get "aria-label"(){return e(F)}})}f(Q),f(P),f(w),o(i,w),fe()}var pa=x("<span>Docker daemon is not reachable.</span>"),Pa=x("<span>The devcontainer CLI is not available.</span>"),$a=x('<div class="banner error svelte-146pixd"><strong>Setup needed.</strong> <!> <!></div>'),Aa=x('<div class="banner error svelte-146pixd"><strong>Error.</strong> <span> </span></div>'),Fa=x('<div class="empty svelte-146pixd"><p class="empty-sub svelte-146pixd">Loading…</p></div>'),za=x('<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>'),Va=x('<div class="empty svelte-146pixd"><p class="empty-sub svelte-146pixd"> </p></div>'),Wa=x('<ul class="grid svelte-146pixd"></ul>'),Da=x('<!> <main class="stage svelte-146pixd"><!> <!> <!></main> <!>',1);function ri(i,t){re(t,!0);let a=C(!1),l=C(null),c=C(!1),h=C(null),g=C(null),w=C(""),b=C(Ie({})),P=E(()=>t.preflight.docker&&t.preflight.cli),W=E(()=>t.instances.filter((u)=>{if(t.filter==="active")return u.status==="running"||u.status==="creating";if(t.filter==="stopped")return u.status==="stopped"||u.status==="error";return!0}));ue(()=>{for(let[u,{since:I}]of Object.entries(e(b))){let N=t.instances.find((m)=>m.id===u);if(!N||N.status!==I)k(u)}});function k(u){let{[u]:I,...N}=e(b);r(b,N,!0)}async function q(u,I){r(a,!1),r(c,!0),r(h,null);try{await Oe("/api/instances",{sourcePath:u,branch:I?.branch,mode:I?.mode},"Failed to create instance")}catch(N){r(h,N.message,!0)}finally{r(c,!1)}}async function B(u,I){if(r(h,null),I==="delete"&&!confirm("Delete this instance and its copied files?"))return;if(I==="rebuild"&&!confirm("Recreate this container and re-run setup? The workspace is kept."))return;let N=t.instances.find((m)=>m.id===u)?.status;if(N)r(b,{...e(b),[u]:{action:I,since:N}},!0);try{await Oe(`/api/instances/${u}/${I}`,void 0,`Failed to ${I}`)}catch(m){r(h,m.message,!0),k(u)}}function J(u){r(g,u.id,!0),r(w,u.name,!0)}function L(){r(g,null),r(w,"")}async function $(u){let I=e(w).trim(),N=t.instances.find((m)=>m.id===u)?.name;if(!I||I===N){L();return}L(),r(h,null);try{await Oe(`/api/instances/${u}/rename`,{name:I},"Failed to rename")}catch(m){r(h,m.message,!0)}}async function Q(){if(r(h,null),!confirm(`Delete all ${t.instances.length} instances and their copied files?`))return;try{await Oe("/api/instances/delete-all",void 0,"Failed to delete all")}catch(u){r(h,u.message,!0)}}var K=Da(),Y=Ne(K);{let u=E(()=>t.instances.length>0);li(Y,{get auth(){return t.preflight.auth},get pet(){return t.pet},get canDelete(){return e(u)},get ready(){return e(P)},get creating(){return e(c)},get filter(){return t.filter},get onFilter(){return t.onFilter},get defaultMode(){return t.preflight.defaultMode},onNew:(I)=>{r(l,I??null,!0),r(a,!0)},onDeleteAll:Q})}var V=s(Y,2),S=n(V);{var p=(u)=>{var I=$a(),N=s(n(I),2);{var m=(H)=>{var Le=pa();o(H,Le)};y(N,(H)=>{if(!t.preflight.docker)H(m)})}var T=s(N,2);{var D=(H)=>{var Le=Pa();o(H,Le)};y(T,(H)=>{if(!t.preflight.cli)H(D)})}f(I),o(u,I)};y(S,(u)=>{if(!e(P))u(p)})}var F=s(S,2);{var ne=(u)=>{var I=Aa(),N=s(n(I),2),m=n(N,!0);f(N),f(I),A(()=>G(m,e(h))),o(u,I)};y(F,(u)=>{if(e(h))u(ne)})}var U=s(F,2);{var Z=(u)=>{var I=Fa();o(u,I)},ce=(u)=>{var I=za(),N=s(n(I),4);{let m=E(()=>!e(P));Me(N,{variant:"primary",get icon(){return Ft},onclick:()=>r(a,!0),get disabled(){return e(m)},children:(T,D)=>{ge();var H=pe("New instance");o(T,H)},$$slots:{default:!0}})}f(I),o(u,I)},Ce=(u)=>{var I=Va(),N=n(I),m=n(N);f(N),f(I),A(()=>G(m,`No ${t.filter??""} instances.`)),o(u,I)},z=(u)=>{var I=Wa();ye(I,21,()=>e(W),(N)=>N.id,(N,m)=>{{let T=E(()=>e(g)===e(m).id),D=E(()=>e(b)[e(m).id]?.action??null);_t(N,{get instance(){return e(m)},get editing(){return e(T)},get pending(){return e(D)},onact:(H)=>B(e(m).id,H),onstartrename:()=>J(e(m)),oncommitrename:()=>$(e(m).id),oncancelrename:L,get editingName(){return e(w)},set editingName(H){r(w,H,!0)}})}}),f(I),o(u,I)};y(U,(u)=>{if(!t.loaded)u(Z);else if(t.instances.length===0)u(ce,1);else if(e(W).length===0)u(Ce,2);else u(z,-1)})}f(V);var _=s(V,2);{var se=(u)=>{Ut(u,{onpick:q,get defaultMode(){return t.preflight.defaultMode},get initialMode(){return e(l)},onclose:()=>r(a,!1)})};y(_,(u)=>{if(e(a))u(se)})}o(i,K),fe()}var Ra=new Set(["$$slots","$$events","$$legacy"]);function dt(i,t){let a=te(t,Ra),l=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"}],["path",{d:"M21 3v5h-5"}]];ae(i,ie({name:"rotate-cw"},()=>a,{get iconNode(){return l}}))}var Ba=new Set(["$$slots","$$events","$$legacy"]);function zt(i,t){let a=te(t,Ba),l=[["path",{d:"m15 18-6-6 6-6"}]];ae(i,ie({name:"chevron-left"},()=>a,{get iconNode(){return l}}))}var ka=new Set(["$$slots","$$events","$$legacy"]);function Vt(i,t){let a=te(t,ka),l=[["path",{d:"m9 18 6-6-6-6"}]];ae(i,ie({name:"chevron-right"},()=>a,{get iconNode(){return l}}))}var Oa=x('<button type="button" class="page svelte-r39acv" aria-label="Scroll tabs left"><!></button>'),Ka=x('<div class="tab editing svelte-r39acv"><!> <input class="tab-name-edit svelte-r39acv"/></div>'),Ja=x("<span></span>"),Za=x('<button type="button" role="tab"><!> <span class="tab-name svelte-r39acv"> </span> <span class="tab-mode svelte-r39acv"><!></span> <!></button>'),Ha=x('<button type="button" class="page trailing svelte-r39acv" aria-label="Scroll tabs right"><!></button>'),Qa=x('<div class="strip svelte-r39acv"><!> <div class="viewport svelte-r39acv"><div class="tabs svelte-r39acv" role="tablist" aria-label="Instances"></div></div> <!></div>'),Ya=x('<button type="button" class="reload svelte-r39acv" title="Reload editor" aria-label="Reload editor"><!></button>'),Ga=x('<!> <div class="right svelte-r39acv"><!> <a class="cog svelte-r39acv" target="_blank" rel="noopener noreferrer" title="Settings" aria-label="Settings"><!></a></div>',1);function fi(i,t){re(t,!0);let a=xe(t,"editingName",15),l=E(()=>t.running.findIndex((L)=>L.id===t.active)),c=E(()=>e(l)>=0?e(l):0),h=C(null),g=C(null),w=C(!0),b=C(!0),P=Ie({}),W=E(()=>!e(w)||!e(b));function k(){if(!e(h))return;r(w,e(h).scrollLeft<=1),r(b,e(h).scrollLeft+e(h).clientWidth>=e(h).scrollWidth-1)}function q(L){let $=t.running[L];if(!$)return;t.onselect($.id),P[$.id]?.focus()}function B(L){let $=Et(e(l),L.key,t.running.length);if($===null)return;L.preventDefault(),q($)}function J(L){if(!e(h))return;e(h).scrollBy({left:L*Math.max(160,e(h).clientWidth*0.7)})}ue(()=>{let L=e(h),$=e(g);if(!L||!$)return;k();let Q=new ResizeObserver(k);return Q.observe(L),Q.observe($),L.addEventListener("scroll",k,{passive:!0}),()=>{Q.disconnect(),L.removeEventListener("scroll",k)}}),ue(()=>{P[t.active]?.scrollIntoView({block:"nearest",inline:"nearest"})}),Ei(i,{children:(L,$)=>{var Q=Ga(),K=Ne(Q);{var Y=(U)=>{var Z=Qa(),ce=n(Z);{var Ce=(I)=>{var N=Oa(),m=n(N);zt(m,{size:16}),f(N),A(()=>N.disabled=e(w)),R("click",N,()=>J(-1)),o(I,N)};y(ce,(I)=>{if(e(W))I(Ce)})}var z=s(ce,2),_=n(z);ye(_,23,()=>t.running,(I)=>I.id,(I,N,m)=>{var T=je(),D=Ne(T);{var H=(Pe)=>{var oe=Ka(),De=n(oe);{let v=E(()=>_e(e(N).avatar??void 0)??null);et(De,{get name(){return e(N).name},get art(){return e(v)},scale:3})}var d=s(De,2);Ye(d),pt(d,!0),f(oe),ke("focus",d,(v)=>v.currentTarget.select()),ke("blur",d,()=>t.oncommitrename(e(N).id)),R("keydown",d,(v)=>{if(v.key==="Enter")v.currentTarget.blur();else if(v.key==="Escape")t.oncancelrename()}),Ge(d,a),o(Pe,oe)},Le=(Pe)=>{var oe=Za();let De;var d=n(oe);{let ve=E(()=>_e(e(N).avatar??void 0)??null);et(d,{get name(){return e(N).name},get art(){return e(ve)},scale:3})}var v=s(d,2),X=n(v,!0);f(v);var ee=s(v,2),me=n(ee);{var j=(ve)=>{ft(ve,{size:11})},$e=(ve)=>{nt(ve,{size:11})};y(me,(ve)=>{if(e(N).mode==="terminal")ve(j);else ve($e,-1)})}f(ee);var Je=s(ee,2);{var tt=(ve)=>{var Ze=Ja();A(()=>{he(Ze,1,`attn ${t.attention[e(N).id]??""}`,"svelte-r39acv"),O(Ze,"aria-label",t.attention[e(N).id]==="waiting"?"Claude is waiting for input":"Claude finished")}),o(ve,Ze)};y(Je,(ve)=>{if(e(N).id!==t.active&&t.attention[e(N).id])ve(tt)})}f(oe),Be(oe,(ve,Ze)=>P[Ze.id]=ve,(ve)=>P?.[ve.id],()=>[e(N)]),A(()=>{De=he(oe,1,"tab svelte-r39acv",null,De,{active:e(N).id===t.active}),O(oe,"id",`tab-${e(N).id??""}`),O(oe,"aria-selected",e(N).id===t.active),O(oe,"tabindex",e(m)===e(c)?0:-1),O(oe,"title",e(N).name),G(X,e(N).name),O(ee,"aria-label",e(N).mode==="terminal"?"Terminal-only instance":"Full IDE instance")}),R("click",oe,()=>t.onselect(e(N).id)),R("dblclick",oe,()=>t.onstartrename(e(N))),R("keydown",oe,B),o(Pe,oe)};y(D,(Pe)=>{if(t.editingId===e(N).id)Pe(H);else Pe(Le,-1)})}o(I,T)}),f(_),Be(_,(I)=>r(g,I),()=>e(g)),f(z),Be(z,(I)=>r(h,I),()=>e(h));var se=s(z,2);{var u=(I)=>{var N=Ha(),m=n(N);Vt(m,{size:16}),f(N),A(()=>N.disabled=e(b)),R("click",N,()=>J(1)),o(I,N)};y(se,(I)=>{if(e(W))I(u)})}f(Z),o(U,Z)};y(K,(U)=>{if(t.running.length>0)U(Y)})}var V=s(K,2),S=n(V);{var p=(U)=>{var Z=Ya(),ce=n(Z);dt(ce,{size:18}),f(Z),R("click",Z,function(...Ce){t.onreload?.apply(this,Ce)}),o(U,Z)};y(S,(U)=>{if(t.onreload)U(p)})}var F=s(S,2),ne=n(F);ct(ne,{size:18}),f(F),f(V),A((U)=>O(F,"href",U),[()=>qe("/settings")]),o(L,Q)},$$slots:{default:!0}}),fe()}Ve(["click","keydown","dblclick"]);var Ua=x('<div class="row svelte-w5e143"> </div>'),Xa=x('<div class="stalled svelte-w5e143"><p class="svelte-w5e143"> </p> <!></div>'),ja=x('<div class="loader svelte-w5e143"><div class="grid svelte-w5e143" aria-hidden="true"></div> <div class="label svelte-w5e143"> <span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span></div> <!></div>');function Wt(i,t){re(t,!0);let a=xe(t,"speed",3,1),l=xe(t,"mode",3,"ide"),c=E(()=>l()==="terminal"),h=C(!1);ue(()=>{if(t.stalledAfterMs===void 0)return;let Y=setTimeout(()=>r(h,!0),t.stalledAfterMs);return()=>clearTimeout(Y)});let g=3,w=22,b=140,P=7,W=E(()=>Math.max(20,b/a())),q=C(Ie((()=>Array.from({length:g},()=>Array.from({length:w},()=>Math.random()<0.5?0:1)))()));ue(()=>{if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let Y=setInterval(()=>{let V=e(q).map((S)=>S.slice());for(let S=0;S<P;S++){let p=V[Math.floor(Math.random()*g)],F=Math.floor(Math.random()*w);p[F]=p[F]?0:1}r(q,V,!0)},e(W));return()=>clearInterval(Y)});var B=ja(),J=n(B);ye(J,21,()=>e(q),bi,(Y,V)=>{var S=Ua(),p=n(S,!0);f(S),A((F)=>G(p,F),[()=>e(V).join("")]),o(Y,S)}),f(J);var L=s(J,2),$=n(L);ge(3),f(L);var Q=s(L,2);{var K=(Y)=>{var V=Xa(),S=n(V),p=n(S);f(S);var F=s(S,2);{var ne=(U)=>{Me(U,{size:"sm",get onclick(){return t.onoverride},children:(Z,ce)=>{ge();var Ce=pe("Open anyway");o(Z,Ce)},$$slots:{default:!0}})};y(F,(U)=>{if(t.onoverride)U(ne)})}f(V),A(()=>G(p,`Waiting for ${e(c)?"the terminal":"code-server"} to answer inside the container.`)),o(Y,V)};y(Q,(Y)=>{if(e(h))Y(K)})}f(B),A(()=>G($,`Loading ${e(c)?"terminal":"editor"}`)),o(i,B),fe()}var qa=new Set(["$$slots","$$events","$$legacy"]);function Dt(i,t){let a=te(t,qa),l=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M15 3v18"}],["path",{d:"m10 15-3-3 3-3"}]];ae(i,ie({name:"panel-right-open"},()=>a,{get iconNode(){return l}}))}var _a=new Set(["$$slots","$$events","$$legacy"]);function Rt(i,t){let a=te(t,_a),l=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M15 3v18"}],["path",{d:"m8 9 3 3-3 3"}]];ae(i,ie({name:"panel-right-close"},()=>a,{get iconNode(){return l}}))}var el=x('<span class="status svelte-ui3nvu">connecting…</span>'),tl=x('<div class="term svelte-ui3nvu"></div> <div class="overlay svelte-ui3nvu"><!> <!> <button type="button" title="Reload terminal (reconnects, keeps the session)" aria-label="Reload terminal"><!></button></div>',1);function Bt(i,t){re(t,!0);let a=xe(t,"focus",3,!0),l,c,h,g,w,b=!1,P=C(!1),W=0,k="0",q="1",B=48,J=new TextEncoder;function L(z){if(g?.readyState===WebSocket.OPEN)g.send(J.encode(z))}function $(z){let _=new Uint8Array(z);if(_.length===0)return;if(_[0]===B)c?.write(_.subarray(1))}function Q(){let z=++W,_=location.protocol==="https:"?"wss:":"ws:",se=t.arg?`?arg=${encodeURIComponent(t.arg)}`:"",u=new WebSocket(`${_}//${location.host}/p/${t.id}/ws${se}`,["tty"]);g=u,u.binaryType="arraybuffer",u.onopen=()=>{if(W!==z)return;r(P,!0),L(JSON.stringify({AuthToken:"",columns:c?.cols??80,rows:c?.rows??24}))},u.onmessage=(I)=>{if(W===z)$(I.data)},u.onclose=()=>{if(W!==z||b)return;r(P,!1),w=setTimeout(Q,1000)},u.onerror=()=>{try{u.close()}catch{}}}function K(){if(w)clearTimeout(w);W++,r(P,!1),c?.reset();let z=g;g=void 0;let _=!1,se=()=>{if(_||b)return;if(_=!0,Y(),Q(),t.active&&a())c?.focus()};if(z&&z.readyState!==WebSocket.CLOSED){z.addEventListener("close",se,{once:!0}),setTimeout(se,1500);try{z.close()}catch{}}else se()}function Y(){if(l?.clientWidth>0&&l?.clientHeight>0)try{h?.fit()}catch{}}function V(){if(!c||!l)return;let z=getComputedStyle(l),_=z.backgroundColor||"#0d0e0a",se=z.color||"#d8d9cf";c.options.theme={background:_,foreground:se,cursor:se,cursorAccent:_}}Ti(()=>{let z,_=window.matchMedia("(prefers-color-scheme: dark)"),se=()=>V();_.addEventListener("change",se),(async()=>{let[{Terminal:I},{FitAddon:N}]=await Promise.all([import("/_mochi/client/chunk-d8rdrqsh.js"),import("/_mochi/client/chunk-y1xjps59.js")]);if(b)return;if(c=new I({fontFamily:"'JetBrains Mono Variable', ui-monospace, monospace",fontSize:13,cursorBlink:!0,scrollback:1e4,allowProposedApi:!0}),h=new N,c.loadAddon(h),c.open(l),V(),Y(),c.onData((m)=>L(k+m)),c.onResize(({cols:m,rows:T})=>L(q+JSON.stringify({columns:m,rows:T}))),z=new MutationObserver(V),z.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),Q(),t.active&&a())c.focus()})();let u=new ResizeObserver(()=>Y());return u.observe(l),()=>{if(b=!0,u.disconnect(),z?.disconnect(),_.removeEventListener("change",se),w)clearTimeout(w);try{g?.close()}catch{}c?.dispose()}}),ue(()=>{if(t.active&&c){if(Y(),a())c.focus()}});var S=tl(),p=Ne(S);Be(p,(z)=>l=z,()=>l);var F=s(p,2),ne=n(F);{var U=(z)=>{var _=el();o(z,_)};y(ne,(z)=>{if(!e(P))z(U)})}var Z=s(ne,2);Mi(Z,()=>t.actions??yi);var ce=s(Z,2),Ce=n(ce);dt(Ce,{size:14}),f(ce),f(F),R("click",ce,K),o(i,S),fe()}Ve(["click"]);var il=x('<button type="button"><!></button>'),al=x('<div role="separator" aria-orientation="vertical" aria-label="Resize terminal panes" tabindex="0"></div> <div><!></div>',1),ll=x('<div class="split svelte-1ysvu88"><div class="side svelte-1ysvu88"><!></div> <!></div>');function ci(i,t){re(t,!0);let a=(S)=>{var p=il(),F=n(p);{var ne=(Z)=>{Rt(Z,{size:14})},U=(Z)=>{Dt(Z,{size:14})};y(F,(Z)=>{if(e(c))Z(ne);else Z(U,-1)})}f(p),A(()=>{O(p,"aria-pressed",e(c)),O(p,"title",e(c)?"Hide the shell pane":"Open a shell alongside Claude"),O(p,"aria-label",e(c)?"Hide the shell pane":"Open a shell alongside Claude")}),R("click",p,P),o(S,p)},l=xe(t,"initialOpen",3,!1),c=C(Ie(l())),h=C(Ie(l())),g=C(50),w=C("left"),b;function P(){if(r(c,!e(c)),e(c))r(h,!0);r(w,e(c)?"right":"left",!0),Oe(`/api/instances/${t.id}/split`,{open:e(c)}).catch(()=>{})}function W(S){return Math.min(80,Math.max(20,S))}function k(S){let p=b.getBoundingClientRect();if(p.width>0)r(g,W((S-p.left)/p.width*100),!0)}function q(S){S.preventDefault(),S.currentTarget.setPointerCapture(S.pointerId)}function B(S){if(S.currentTarget.hasPointerCapture(S.pointerId))k(S.clientX)}function J(S){if(S.key==="ArrowLeft")r(g,W(e(g)-5),!0);else if(S.key==="ArrowRight")r(g,W(e(g)+5),!0);else return;S.preventDefault()}var L=ll(),$=n(L);let Q;var K=n($);{let S=E(()=>t.active&&e(w)==="left"),p=E(()=>e(c)?void 0:a);Bt(K,{get id(){return t.id},get active(){return t.active},get focus(){return e(S)},get actions(){return e(p)}})}f($);var Y=s($,2);{var V=(S)=>{var p=al(),F=Ne(p);let ne;O(F,"aria-valuemin",20),O(F,"aria-valuemax",80);var U=s(F,2);let Z,ce;var Ce=n(U);{let z=E(()=>t.active&&e(c)),_=E(()=>t.active&&e(c)&&e(w)==="right"),se=E(()=>e(c)?a:void 0);Bt(Ce,{get id(){return t.id},arg:"shell",get active(){return e(z)},get focus(){return e(_)},get actions(){return e(se)}})}f(U),A((z)=>{ne=he(F,1,"divider svelte-1ysvu88",null,ne,{hidden:!e(c)}),O(F,"aria-valuenow",z),Z=he(U,1,"side svelte-1ysvu88",null,Z,{hidden:!e(c)}),ce=ni(U,"",ce,{"flex-basis":`${100-e(g)}%`})},[()=>Math.round(e(g))]),R("pointerdown",F,q),R("pointermove",F,B),R("dblclick",F,()=>r(g,50)),R("keydown",F,J),ke("pointerdown",U,()=>r(w,"right"),!0),o(S,p)};y(Y,(S)=>{if(e(h))S(V)})}f(L),Be(L,(S)=>b=S,()=>b),A(()=>Q=ni($,"",Q,{"flex-basis":e(c)?`${e(g)}%`:"100%"})),ke("pointerdown",$,()=>r(w,"left"),!0),o(i,L),fe()}Ve(["click","pointerdown","pointermove","dblclick","keydown"]);var rl=x('<iframe class="svelte-1duc7gd"></iframe>'),fl=x('<div role="tabpanel"><!> <!></div>'),nl=x('<div class="empty svelte-1duc7gd">No running instances.</div>'),cl=x("<div><!> <div><!> <!></div></div> <!>",1);function si(i,t){re(t,!0);let a=C(Ie(t.snapshot)),l=C(Ie(t.preflight)),c=C(Ie(t.pet)),h=C(Ie(t.filter)),g=C(t.snapshot.length>0),w=E(()=>e(a).filter((d)=>d.status==="running")),b=C(Ie(Object.fromEntries(t.snapshot.map((d)=>[d.id,d.attention])))),P=C(null),W=C("");function k(d){r(P,d.id,!0),r(W,d.name,!0)}function q(){r(P,null),r(W,"")}async function B(d){let v=e(W).trim(),X=e(a).find((ee)=>ee.id===d)?.name;if(!v||v===X){q();return}q();try{await Oe(`/api/instances/${d}/rename`,{name:v},"Failed to rename")}catch(ee){gt.error(ee.message)}}function J(d){r(h,d,!0),Oe("/api/settings/filter",{value:d}).catch(()=>{})}let L=C(Ie(t.initialPath)),$=E(()=>e(L).startsWith("/ide")),Q=E(()=>e(L).startsWith("/ide/")?e(L).slice(5):""),K=E(()=>e($)?e(w).some((d)=>d.id===e(Q))?e(Q):e(w)[0]?.id??"":"");function Y(d){if(d===e(L))return;history.pushState({},"",d),r(L,d,!0)}ue(()=>{function d(v){if(v.defaultPrevented||v.button!==0||v.metaKey||v.ctrlKey||v.shiftKey||v.altKey)return;let X=v.target?.closest?.("a");if(!X)return;let ee=X.getAttribute("href");if(!ee||X.target==="_blank"||X.hasAttribute("download"))return;let me=new URL(ee,location.href);if(me.origin!==location.origin)return;if(me.pathname==="/"||me.pathname.startsWith("/ide/"))v.preventDefault(),Y(me.pathname)}return document.addEventListener("click",d),()=>document.removeEventListener("click",d)}),ue(()=>{function d(){r(L,location.pathname,!0)}return window.addEventListener("popstate",d),()=>window.removeEventListener("popstate",d)}),ue(()=>{if(e(w).length===0)return;function d(v){v.preventDefault(),v.returnValue=""}return window.addEventListener("beforeunload",d),()=>window.removeEventListener("beforeunload",d)});let V=new He;ue(()=>{if(e(K))V.add(e(K))});let S=new He,p=new He,F=new He,ne=(d)=>p.has(d)||F.has(d),U=1e4,Z=E(()=>e(w).find((d)=>d.id===e(K))),ce={};function Ce(){let d=e(Z);if(!d||d.mode==="terminal")return;S.delete(d.id),ce[d.id]?.contentWindow?.location.replace(di(d))}ue(()=>{document.title=e($)&&e(Z)?`${e(Z).name} — Codebay`:"Codebay"});function z(d,v){if(!d.altKey||d.ctrlKey||d.metaKey||e(P)||!$i())return;let X=/^Digit([1-9])$/.exec(d.code)?.[1];if(!X)return;let ee=Et(e(w).findIndex((j)=>j.id===e(K)),X,e(w).length),me=ee===null?void 0:e(w)[ee];if(!me)return;if(d.preventDefault(),d.stopPropagation(),Y(`/ide/${me.id}`),v)Mt().then(()=>ce[me.id]?.contentWindow?.focus())}let _=E(()=>e(w).filter((d)=>d.mode!=="terminal"&&S.has(d.id)).map((d)=>d.id).join(" "));ue(()=>{if(!e($))return;function d(X,ee){let me=(j)=>z(j,ee);return X.addEventListener("keydown",me,{capture:!0}),()=>X.removeEventListener("keydown",me,{capture:!0})}let v=[d(window,!1)];for(let X of e(_).split(" ").filter(Boolean)){let ee=ce[X]?.contentWindow;if(ee)v.push(d(ee,!0))}return()=>v.forEach((X)=>X())}),ue(()=>{return window.addEventListener("pointerdown",ht),window.addEventListener("keydown",ht),()=>{window.removeEventListener("pointerdown",ht),window.removeEventListener("keydown",ht)}}),ue(()=>{let d=!1;return Fi((v)=>{if(v.type==="preflight"){r(l,{...e(l),docker:v.data.docker,cli:v.data.cli},!0);return}if(v.type==="pet"){r(c,_e(v.data.name??void 0),!0);return}if(v.type==="filter"){r(h,v.data.value,!0);return}if(v.type==="default-mode"){r(l,{...e(l),defaultMode:v.data.mode},!0);return}if(v.type==="theme"){zi(v.data.value);return}if(v.type==="health"){let j=e(a).find(($e)=>$e.id===v.data.id);if(v.data.health.codeServerAccessible&&j?.status==="running")p.add(v.data.id);return}if(v.type!=="instances")return;let X=v.data,ee=new Set(X.filter((j)=>j.status==="running").map((j)=>j.id));for(let j of[...p])if(!ee.has(j))p.delete(j);for(let j of[...F])if(!ee.has(j))F.delete(j);for(let j of[...S])if(!ee.has(j))S.delete(j);let me={};for(let j of X)me[j.id]=j.attention;if(d)for(let j in me){let $e=me[j];if($e&&$e!==e(b)[j])if(j===e(K))console.log(`[chime] attention id=${j} state=${$e} — skipped (tab is active/focused)`);else console.log(`[chime] attention id=${j} state=${$e} → playChime`),Ai($e)}else console.log("[chime] first frame after (re)connect — baselining, no chimes");d=!0,r(a,X,!0),r(b,me,!0),r(g,!0)},()=>{d=!1})}),ue(()=>{if(!e(K)||!e(b)[e(K)])return;let d=()=>{if(document.visibilityState==="visible")Oe(`/api/instances/${e(K)}/attention/clear`).catch(()=>{})};return d(),document.addEventListener("visibilitychange",d),()=>document.removeEventListener("visibilitychange",d)});var se=cl(),u=Ne(se);let I;var N=n(u);{var m=(d)=>{{let v=E(()=>e(Z)&&e(Z).mode!=="terminal"&&ne(e(K))?Ce:void 0);fi(d,{get running(){return e(w)},get active(){return e(K)},get attention(){return e(b)},get editingId(){return e(P)},get onreload(){return e(v)},onselect:(X)=>Y(`/ide/${X}`),onstartrename:k,oncommitrename:B,oncancelrename:q,get editingName(){return e(W)},set editingName(X){r(W,X,!0)}})}},T=(d)=>{ri(d,{get preflight(){return e(l)},get instances(){return e(a)},get loaded(){return e(g)},get pet(){return e(c)},get filter(){return e(h)},onFilter:J})};y(N,(d)=>{if(e($))d(m);else d(T,-1)})}var D=s(N,2);let H;var Le=n(D);ye(Le,17,()=>e(w),(d)=>d.id,(d,v)=>{var X=je(),ee=Ne(X);{var me=($e)=>{var Je=fl();let tt;var ve=n(Je);{var Ze=(Ae)=>{var Re=je(),Fe=Ne(Re);{var Se=(Ee)=>{{let be=E(()=>e(v).id===e(K)),ze=E(()=>e(v).terminal_split===1);ci(Ee,{get id(){return e(v).id},get active(){return e(be)},get initialOpen(){return e(ze)}})}},we=(Ee)=>{var be=rl();Be(be,(ze,Qe)=>ce[Qe.id]=ze,(ze)=>ce?.[ze.id],()=>[e(v)]),A((ze)=>{O(be,"src",ze),O(be,"title",e(v).name)},[()=>di(e(v))]),ke("load",be,()=>S.add(e(v).id)),pi(be),o(Ee,be)};y(Fe,(Ee)=>{if(e(v).mode==="terminal")Ee(Se);else Ee(we,-1)})}o(Ae,Re)},ut=E(()=>ne(e(v).id));y(ve,(Ae)=>{if(e(ut))Ae(Ze)})}var vt=s(ve,2);{var M=(Ae)=>{Wt(Ae,{get mode(){return e(v).mode},stalledAfterMs:U,onoverride:()=>F.add(e(v).id)})},de=E(()=>!ne(e(v).id)),We=(Ae)=>{Wt(Ae,{})},st=E(()=>e(v).mode!=="terminal"&&!S.has(e(v).id));y(vt,(Ae)=>{if(e(de))Ae(M);else if(e(st))Ae(We,1)})}f(Je),A(()=>{tt=he(Je,1,"pane svelte-1duc7gd",null,tt,{active:e(v).id===e(K)}),O(Je,"aria-labelledby",`tab-${e(v).id??""}`)}),o($e,Je)},j=E(()=>V.has(e(v).id));y(ee,($e)=>{if(e(j))$e(me)})}o(d,X)});var Pe=s(Le,2);{var oe=(d)=>{var v=nl();o(d,v)};y(Pe,(d)=>{if(e($)&&e(w).length===0)d(oe)})}f(D),f(u);var De=s(u,2);Pi(De,{get toastOptions(){return Vi}}),A(()=>{I=he(u,1,"app svelte-1duc7gd",null,I,{ide:e($)}),H=he(D,1,"panes svelte-1duc7gd",null,H,{hidden:!e($)})}),o(i,se),fe()}Wi("AppShell_2rtnxn6pgp2rh",si);
@@ -1,4 +1,4 @@
1
- import{v as ps}from"/_mochi/client/chunk-wjagstre.js";import{A as P,B as Qe,C as Ke,E as F,F as B,G as is,H as Ze,I as os,J as cs,w as N,x as d,y as n,z as U}from"/_mochi/client/chunk-r3wxmmc0.js";import{K as T,L as fs}from"/_mochi/client/chunk-qx1defbm.js";import{$a as me,Aa as je,Ba as j,Ca as de,Da as I,Fa as G,Ha as a,Ia as K,Ja as b,Ka as ms,La as Ee,Ma as R,R as f,S as L,Sa as he,Ta as ss,Va as Je,W as Ce,Wa as ts,X as Ne,Ya as ue,_a as ls,bb as k,cb as S,da as Q,db as rs,ga as Z,ia as u,jb as as,ka as Te,la as h,ma as hs,na as i,ra as q,wa as e}from"/_mochi/client/chunk-566rqq4c.js";import"/_mochi/client/chunk-czkxd74n.js";var ds=new Set(["$$slots","$$events","$$legacy"]);function ve(r,p){let l=k(p,ds),o=[["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"}]];T(r,S({name:"copy"},()=>l,{get iconNode(){return o}}))}var qs=new Set(["$$slots","$$events","$$legacy"]);function ge(r,p){let l=k(p,qs),o=[["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"}]];T(r,S({name:"eraser"},()=>l,{get iconNode(){return o}}))}var ys=new Set(["$$slots","$$events","$$legacy"]);function xe(r,p){let l=k(p,ys),o=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z"}]];T(r,S({name:"contrast"},()=>l,{get iconNode(){return o}}))}var Hs=new Set(["$$slots","$$events","$$legacy"]);function ke(r,p){let l=k(p,Hs),o=[["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"}]];T(r,S({name:"external-link"},()=>l,{get iconNode(){return o}}))}var pe=[{id:"black",label:"Black"},{id:"gray",label:"Gray"},{id:"cycle",label:"Cycle"}];function Fe(r,p){if(r==="black")return p===d?N:d;if(r==="gray")return p===n?N:n;return p===N?n:p===n?d:N}var Ms="https://github.com/khromov/codebay";function Oe(r){return r.trim().toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"")}function _e(r){let p=[];for(let l=0;l<U;l++){let o="";for(let $=0;$<P;$++){let y=r[l*P+$];o+=y===d?"#":y===n?"+":"."}p.push(o)}return p}function Se(r){let p=r.pixels.map((l)=>` '${l}'`).join(`,
1
+ import{x as ps}from"/_mochi/client/chunk-1ttqgrz7.js";import{A as n,B as U,C as P,D as Qe,E as Ke,G as F,H as B,I as is,J as Ze,K as os,L as cs,y as N,z as d}from"/_mochi/client/chunk-krevp8yb.js";import{M as T,N as fs}from"/_mochi/client/chunk-a5e8vytv.js";import{Ca as je,Da as j,Ea as de,Fa as I,Ha as G,Ja as a,Ka as K,La as b,Ma as ms,Na as Ee,Oa as R,T as f,U as L,Ua as he,Va as ss,Xa as Je,Y as Ce,Ya as ts,Z as Ne,_a as ue,ab as ls,bb as me,db as k,eb as S,fa as Q,fb as rs,ia as Z,ka as u,lb as as,ma as Te,na as h,oa as hs,pa as i,ta as q,ya as e}from"/_mochi/client/chunk-d9bszcp8.js";import"/_mochi/client/chunk-2eaagsfc.js";var ds=new Set(["$$slots","$$events","$$legacy"]);function ve(r,p){let l=k(p,ds),o=[["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"}]];T(r,S({name:"copy"},()=>l,{get iconNode(){return o}}))}var qs=new Set(["$$slots","$$events","$$legacy"]);function ge(r,p){let l=k(p,qs),o=[["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"}]];T(r,S({name:"eraser"},()=>l,{get iconNode(){return o}}))}var ys=new Set(["$$slots","$$events","$$legacy"]);function xe(r,p){let l=k(p,ys),o=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z"}]];T(r,S({name:"contrast"},()=>l,{get iconNode(){return o}}))}var Hs=new Set(["$$slots","$$events","$$legacy"]);function ke(r,p){let l=k(p,Hs),o=[["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"}]];T(r,S({name:"external-link"},()=>l,{get iconNode(){return o}}))}var pe=[{id:"black",label:"Black"},{id:"gray",label:"Gray"},{id:"cycle",label:"Cycle"}];function Fe(r,p){if(r==="black")return p===d?N:d;if(r==="gray")return p===n?N:n;return p===N?n:p===n?d:N}var Ms="https://github.com/khromov/codebay";function Oe(r){return r.trim().toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"")}function _e(r){let p=[];for(let l=0;l<U;l++){let o="";for(let $=0;$<P;$++){let y=r[l*P+$];o+=y===d?"#":y===n?"+":"."}p.push(o)}return p}function Se(r){let p=r.pixels.map((l)=>` '${l}'`).join(`,
2
2
  `);return`import type { AvatarArt } from './types.ts';
3
3
 
4
4
  const art: AvatarArt = {
@@ -1 +1 @@
1
- import{a as Av,b as ml,c as Cl,d as xl}from"/_mochi/client/chunk-0zkdsrth.js";import{n as fl,p as Zv,q as pl,u as Il}from"/_mochi/client/chunk-79aj59e0.js";import{K as o,L as $v,N as al,O as yl}from"/_mochi/client/chunk-qx1defbm.js";import{$a as el,Aa as nv,Ba as lv,Ca as vl,Da as x,Ga as n,Ha as p,Ia as I,Ja as M,La as rv,Ma as vv,R as i,Ra as ll,S as u,Sa as d,Ta as gv,Va as sl,W as jv,X as zv,Ya as fv,_a as il,bb as $,cb as _,da as J,db as G,ga as W,gb as hl,ia as a,jb as Sl,ka as qv,la as e,ma as B,na as f,oa as g,ra as t,va as ov,wa as l}from"/_mochi/client/chunk-566rqq4c.js";import"/_mochi/client/chunk-czkxd74n.js";var bl=new Set(["$$slots","$$events","$$legacy"]);function Mv(L,m){let S=$(m,bl),h=[["path",{d:"m12 19-7-7 7-7"}],["path",{d:"M19 12H5"}]];o(L,_({name:"arrow-left"},()=>S,{get iconNode(){return h}}))}var Pl=new Set(["$$slots","$$events","$$legacy"]);function hv(L,m){let S=$(m,Pl),h=[["path",{d:"M7 7h10v10"}],["path",{d:"M7 17 17 7"}]];o(L,_({name:"arrow-up-right"},()=>S,{get iconNode(){return h}}))}var cl=new Set(["$$slots","$$events","$$legacy"]);function Wv(L,m){let S=$(m,cl),h=[["path",{d:"M20 6 9 17l-5-5"}]];o(L,_({name:"check"},()=>S,{get iconNode(){return h}}))}var dl=x("<span></span>");function R(L,m){let S=G(m,"variant",3,"text");var h=dl();let Q;t(()=>{d(h,1,`skel ${S()??""}`,"svelte-tl058d"),Q=gv(h,"",Q,{width:m.width})}),p(L,h)}var ul=x('<div class="hrow svelte-1hnopyv"><span><!></span> <span class="hlabel svelte-1hnopyv"> </span> <span class="hvalue svelte-1hnopyv"> </span></div>'),gl=x('<div class="hrow svelte-1hnopyv"><span class="box idle svelte-1hnopyv"></span> <!> <!></div>'),ql=x('<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>'),rl=x('<div><div class="panel-bar">Health</div> <div class="health svelte-1hnopyv"><!></div> <div class="hfoot svelte-1hnopyv"> </div></div>');function Yv(L,m){jv(m,!0);let S=G(m,"health",3,null),h=G(m,"lastFetchedAt",3,null),Q=G(m,"active",3,!0),pv=G(m,"injectionChecks",3,0),Y=G(m,"mode",3,"ide"),Z=J(()=>["Container running",Y()==="terminal"?"Terminal reachable":"Code-server reachable"]),K=J(()=>{if(!S())return[];let C=(N)=>({ok:N,value:N?"OK":"—"});return[{label:l(Z)[0],...C(S().containerRunning)},{label:l(Z)[1],...C(S().codeServerAccessible)},...S().injections.map((N)=>({label:N.label,...C(N.ok)}))]});function mv(){return S()?l(K).length:l(Z).length+pv()}let av=W(qv(Date.now()));g(()=>{let C=setInterval(()=>a(av,Date.now(),!0),1000);return()=>clearInterval(C)});let Dv=J(()=>{if(!Q()&&!S())return"Container not running";if(!h())return"Waiting for first check…";return`Updated ${Math.max(0,Math.round((l(av)-h())/1000))}s ago`});var A=rl();let U;var T=f(e(A),2),yv=e(T);{var q=(C)=>{var N=n(),w=B(N);vv(w,17,()=>l(K),(j)=>j.label,(j,O)=>{var z=ul(),D=e(z),V=e(D);{var r=(E)=>{Wv(E,{size:12,strokeWidth:3})},Xv=(E)=>{$v(E,{size:12,strokeWidth:3})};M(V,(E)=>{if(l(O).ok)E(r);else E(Xv,-1)})}i(D);var b=f(D,2),iv=e(b,!0);i(b);var xv=f(b,2),Lv=e(xv,!0);i(xv),i(z),t(()=>{d(D,1,`box ${l(O).ok?"ok":"bad"}`,"svelte-1hnopyv"),I(iv,l(O).label),I(Lv,l(O).value)}),p(j,z)}),p(C,N)},sv=(C)=>{var N=n(),w=B(N);vv(w,17,()=>Array(mv()),rv,(j,O)=>{var z=gl(),D=f(e(z),2);R(D,{width:"120px"});var V=f(D,2);R(V,{variant:"pill"}),i(z),p(j,z)}),p(C,N)},Hv=(C)=>{var N=n(),w=B(N);vv(w,16,()=>l(Z),(j)=>j,(j,O)=>{var z=ql(),D=f(e(z),2),V=e(D,!0);i(D),u(2),i(z),t(()=>I(V,O)),p(j,z)}),p(C,N)};M(yv,(C)=>{if(S())C(q);else if(Q())C(sv,1);else C(Hv,-1)})}i(T);var Cv=f(T,2),Kv=e(Cv,!0);i(Cv),i(A),t(()=>{U=d(A,1,"healthwrap panel svelte-1hnopyv",null,U,{dim:!Q()&&!S()}),I(Kv,l(Dv))}),p(L,A),zv()}var $l=x('<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),_l=x('<p class="restart-err svelte-15fxkvm"> </p>'),_v=x('<code class="svelte-15fxkvm"> </code>'),ol=x('<code class="svelte-15fxkvm">local (project devcontainer.json)</code>'),nl=x('<code class="muted svelte-15fxkvm">—</code>'),v1=x('<button class="rebuild svelte-15fxkvm"> </button>'),l1=x('<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>'),s1=x('<ul class="port-list svelte-15fxkvm"></ul>'),i1=x('<p class="empty svelte-15fxkvm">No ports forwarded yet.</p>'),e1=x('<p class="port-err svelte-15fxkvm"> </p>'),h1=x('<p class="hint pending svelte-15fxkvm">Port changes apply when you <strong class="svelte-15fxkvm">Restart</strong> (recreates the container).</p>'),f1=x('<span class="dot svelte-15fxkvm"></span>'),p1=x('<div class="err svelte-15fxkvm"> </div>'),m1=x('<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> <div class="log-actions svelte-15fxkvm"><button><!> </button> <button class="copy svelte-15fxkvm"> </button></div></div> <div class="logs svelte-15fxkvm"><pre class="svelte-15fxkvm"> <span class="caret svelte-15fxkvm"></span></pre></div> <!></div></main>',1);function Tv(L,m){jv(m,!0);let S=G(m,"injectionChecks",3,0),h=W(null),Q=W(null),pv=W(null),Y=W(""),Z=W(null),K=W(!0);async function mv(){await ov(),l(Z)?.scrollTo(0,l(Z).scrollHeight)}g(()=>{if(!l(K)||l(Y).length===0)return;mv()});function av(){if(a(K,!l(K)),l(K))mv()}g(()=>yl()),g(()=>Cl(`/api/instances/${m.id}/logs`,(v)=>a(Y,l(Y)+v),()=>a(Y,""))),g(()=>xl((v)=>{if(v.type==="instances"){let s=v.data.find((y)=>y.id===m.id);if(s)a(h,s,!0)}else if(v.type==="health"&&v.data.id===m.id)a(Q,v.data.health,!0),a(pv,Date.now(),!0);else if(v.type==="theme")Il(v.data.value)}));let Dv=J(()=>l(h)?fl(l(h)):"#"),A=W(""),U=W(null),T=W(!1),yv=J(()=>l(h)?.forwarded_ports??[]),q=J(()=>l(h)?.status==="creating");async function sv(v){a(U,null);try{return await v(),!0}catch(s){return a(U,s.message,!0),!1}}async function Hv(v){v.preventDefault();let s=Number.parseInt(l(A),10);if(!Number.isInteger(s)||s<1||s>65535){a(U,"Enter a port number between 1 and 65535");return}if(await sv(()=>Zv(`/api/instances/${m.id}/ports`,{port:s})))a(A,""),a(T,!0)}async function Cv(v){if(await sv(()=>pl(`/api/instances/${m.id}/ports/${v}`)))a(T,!0)}async function Kv(){if(await sv(()=>Zv(`/api/instances/${m.id}/rebuild`)))a(T,!1)}let C=W(null),N=W(!1),w={onPending:(v)=>a(N,v,!0),submit:()=>{return a(C,null),({result:v})=>{if(v.type==="failure")a(C,v.data?.error??"Restart failed",!0);else if(v.type==="error")a(C,"Network error. Try again.")}}},j=W(!1),O;async function z(){await navigator.clipboard.writeText(l(Y)),a(j,!0),clearTimeout(O),O=setTimeout(()=>a(j,!1),2000)}var D=m1(),V=B(D),r=e(V),Xv=e(r);Mv(Xv,{size:15}),u(),i(r);var b=f(r,2),iv=e(b),xv=e(iv,!0);i(iv);var Lv=f(iv,2);{var E=(v)=>{ml(v,{get status(){return l(h).status}})},Nl=(v)=>{R(v,{variant:"pill"})};M(Lv,(v)=>{if(l(h))v(E);else v(Nl,-1)})}i(b);var tl=f(b,2);{var Ml=(v)=>{var s=$l(),y=B(s),F=e(y),c=e(F,!0);i(F),i(y),ll(y,()=>hl(w));var k=f(y,2),H=f(e(k));hv(H,{size:15}),i(k),t(()=>{F.disabled=l(N)||l(q),I(c,l(N)||l(q)?"Restarting…":"Restart container"),fv(k,"href",l(Dv))}),p(v,s)};M(tl,(v)=>{if(l(h)?.status==="running")v(Ml)})}i(V);var Vv=f(V,2);{var Wl=(v)=>{var s=_l(),y=e(s,!0);i(s),t(()=>I(y,l(C))),p(v,s)};M(Vv,(v)=>{if(l(C))v(Wl)})}var kv=f(Vv,2),Ov=e(kv),Uv=f(e(Ov),2);{var jl=(v)=>{var s=_v(),y=e(s,!0);i(s),t(()=>I(y,l(h).source_path)),p(v,s)},zl=(v)=>{R(v,{variant:"wide"})};M(Uv,(v)=>{if(l(h))v(jl);else v(zl,-1)})}var Dl=f(Uv,4);{var Hl=(v)=>{var s=n(),y=B(s);{var F=(H)=>{var X=ol();p(H,X)},c=(H)=>{var X=_v(),tv=e(X,!0);i(X),t(()=>I(tv,l(h).image_source)),p(H,X)},k=(H)=>{var X=nl();p(H,X)};M(y,(H)=>{if(l(h).image_source==="local")H(F);else if(l(h).image_source)H(c,1);else H(k,-1)})}p(v,s)},Kl=(v)=>{R(v,{variant:"wide"})};M(Dl,(v)=>{if(l(h))v(Hl);else v(Kl,-1)})}i(Ov);var Fv=f(Ov,2),Xl=e(Fv);{let v=J(()=>!l(h)||l(h).status==="running"),s=J(()=>l(h)?.mode??"ide");Yv(Xl,{get health(){return l(Q)},get lastFetchedAt(){return l(pv)},get injectionChecks(){return S()},get active(){return l(v)},get mode(){return l(s)}})}i(Fv);var Gv=f(Fv,2),Jv=e(Gv),Ll=f(e(Jv),2);{var Ol=(v)=>{var s=v1(),y=e(s,!0);i(s),t(()=>{s.disabled=l(q),I(y,l(q)?"Restarting…":"Restart to apply")}),lv("click",s,Kv),p(v,s)};M(Ll,(v)=>{if(l(T))v(Ol)})}i(Jv);var Ev=f(Jv,2),Rv=e(Ev);{var Fl=(v)=>{var s=s1();vv(s,21,()=>l(yv),(y)=>y.container_port,(y,F)=>{var c=l1(),k=e(c),H=e(k);i(k);var X=f(k,4),tv=e(X),El=f(tv);hv(El,{size:12}),i(X);var Rl=f(X,2);i(c),t((Bl,wl)=>{I(H,`:${l(F).container_port??""}`),fv(X,"href",Bl),I(tv,`${wl??""} `)},[()=>Av(l(F).host_port),()=>Av(l(F).host_port).replace("http://","")]),lv("click",Rl,()=>Cv(l(F).container_port)),p(y,c)}),i(s),p(v,s)},Gl=(v)=>{var s=i1();p(v,s)};M(Rv,(v)=>{if(l(yv).length)v(Fl);else v(Gl,-1)})}var Iv=f(Rv,2),Bv=e(Iv);sl(Bv),u(2),i(Iv);var wv=f(Iv,2);{var Jl=(v)=>{var s=e1(),y=e(s,!0);i(s),t(()=>I(y,l(U))),p(v,s)};M(wv,(v)=>{if(l(U))v(Jl)})}var Ql=f(wv,2);{var Yl=(v)=>{var s=h1();p(v,s)};M(Ql,(v)=>{if(l(T))v(Yl)})}u(2),i(Ev),i(Gv);var bv=f(Gv,2),Qv=e(bv),Pv=f(e(Qv),2),P=e(Pv);let cv;var dv=e(P);{var Zl=(v)=>{var s=f1();p(v,s)};M(dv,(v)=>{if(l(K))v(Zl)})}var Al=f(dv);i(P);var Sv=f(P,2),Tl=e(Sv,!0);i(Sv),i(Pv),i(Qv);var Nv=f(Qv,2),uv=e(Nv),Vl=e(uv,!0);u(),i(uv),i(Nv),el(Nv,(v)=>a(Z,v),()=>l(Z));var kl=f(Nv,2);{var Ul=(v)=>{var s=p1(),y=e(s,!0);i(s),t(()=>I(y,l(h).error)),p(v,s)};M(kl,(v)=>{if(l(h)?.status==="error"&&l(h).error)v(Ul)})}i(bv),i(kv),t(()=>{I(xv,l(h)?.name??"Instance"),cv=d(P,1,"copy svelte-15fxkvm",null,cv,{active:l(K)}),fv(P,"aria-pressed",l(K)),fv(P,"title",l(K)?"Following — click to pause":"Paused — click to follow new output"),I(Al,` ${l(K)?"Following":"Follow log"}`),Sv.disabled=!l(Y),I(Tl,l(j)?"Copied!":"Copy logs"),I(Vl,l(Y)||"Waiting for output…")}),lv("click",r,function(...v){al?.apply(this,v)}),nv("submit",Iv,Hv),il(Bv,()=>l(A),(v)=>a(A,v)),lv("click",P,av),lv("click",Sv,z),p(L,D),zv()}vl(["click"]);Sl("InstanceView_2ma45l9bybfhl",Tv);
1
+ import{a as Av,b as ml,c as Cl,d as xl}from"/_mochi/client/chunk-s70rry6z.js";import{p as fl,r as Zv,s as pl,w as Il}from"/_mochi/client/chunk-wcfbjj3x.js";import{M as o,N as $v,P as al,Q as yl}from"/_mochi/client/chunk-a5e8vytv.js";import{Ca as nv,Da as lv,Ea as vl,Fa as x,Ia as n,Ja as p,Ka as I,La as M,Na as rv,Oa as vv,T as i,Ta as ll,U as u,Ua as d,Va as gv,Xa as sl,Y as jv,Z as zv,_a as fv,ab as il,bb as el,db as $,eb as _,fa as J,fb as G,ia as W,ib as hl,ka as a,lb as Sl,ma as qv,na as e,oa as B,pa as f,qa as g,ta as t,xa as ov,ya as l}from"/_mochi/client/chunk-d9bszcp8.js";import"/_mochi/client/chunk-2eaagsfc.js";var bl=new Set(["$$slots","$$events","$$legacy"]);function Mv(L,m){let S=$(m,bl),h=[["path",{d:"m12 19-7-7 7-7"}],["path",{d:"M19 12H5"}]];o(L,_({name:"arrow-left"},()=>S,{get iconNode(){return h}}))}var Pl=new Set(["$$slots","$$events","$$legacy"]);function hv(L,m){let S=$(m,Pl),h=[["path",{d:"M7 7h10v10"}],["path",{d:"M7 17 17 7"}]];o(L,_({name:"arrow-up-right"},()=>S,{get iconNode(){return h}}))}var cl=new Set(["$$slots","$$events","$$legacy"]);function Wv(L,m){let S=$(m,cl),h=[["path",{d:"M20 6 9 17l-5-5"}]];o(L,_({name:"check"},()=>S,{get iconNode(){return h}}))}var dl=x("<span></span>");function R(L,m){let S=G(m,"variant",3,"text");var h=dl();let Q;t(()=>{d(h,1,`skel ${S()??""}`,"svelte-tl058d"),Q=gv(h,"",Q,{width:m.width})}),p(L,h)}var ul=x('<div class="hrow svelte-1hnopyv"><span><!></span> <span class="hlabel svelte-1hnopyv"> </span> <span class="hvalue svelte-1hnopyv"> </span></div>'),gl=x('<div class="hrow svelte-1hnopyv"><span class="box idle svelte-1hnopyv"></span> <!> <!></div>'),ql=x('<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>'),rl=x('<div><div class="panel-bar">Health</div> <div class="health svelte-1hnopyv"><!></div> <div class="hfoot svelte-1hnopyv"> </div></div>');function Yv(L,m){jv(m,!0);let S=G(m,"health",3,null),h=G(m,"lastFetchedAt",3,null),Q=G(m,"active",3,!0),pv=G(m,"injectionChecks",3,0),Y=G(m,"mode",3,"ide"),Z=J(()=>["Container running",Y()==="terminal"?"Terminal reachable":"Code-server reachable"]),K=J(()=>{if(!S())return[];let C=(N)=>({ok:N,value:N?"OK":"—"});return[{label:l(Z)[0],...C(S().containerRunning)},{label:l(Z)[1],...C(S().codeServerAccessible)},...S().injections.map((N)=>({label:N.label,...C(N.ok)}))]});function mv(){return S()?l(K).length:l(Z).length+pv()}let av=W(qv(Date.now()));g(()=>{let C=setInterval(()=>a(av,Date.now(),!0),1000);return()=>clearInterval(C)});let Dv=J(()=>{if(!Q()&&!S())return"Container not running";if(!h())return"Waiting for first check…";return`Updated ${Math.max(0,Math.round((l(av)-h())/1000))}s ago`});var A=rl();let U;var T=f(e(A),2),yv=e(T);{var q=(C)=>{var N=n(),w=B(N);vv(w,17,()=>l(K),(j)=>j.label,(j,O)=>{var z=ul(),D=e(z),V=e(D);{var r=(E)=>{Wv(E,{size:12,strokeWidth:3})},Xv=(E)=>{$v(E,{size:12,strokeWidth:3})};M(V,(E)=>{if(l(O).ok)E(r);else E(Xv,-1)})}i(D);var b=f(D,2),iv=e(b,!0);i(b);var xv=f(b,2),Lv=e(xv,!0);i(xv),i(z),t(()=>{d(D,1,`box ${l(O).ok?"ok":"bad"}`,"svelte-1hnopyv"),I(iv,l(O).label),I(Lv,l(O).value)}),p(j,z)}),p(C,N)},sv=(C)=>{var N=n(),w=B(N);vv(w,17,()=>Array(mv()),rv,(j,O)=>{var z=gl(),D=f(e(z),2);R(D,{width:"120px"});var V=f(D,2);R(V,{variant:"pill"}),i(z),p(j,z)}),p(C,N)},Hv=(C)=>{var N=n(),w=B(N);vv(w,16,()=>l(Z),(j)=>j,(j,O)=>{var z=ql(),D=f(e(z),2),V=e(D,!0);i(D),u(2),i(z),t(()=>I(V,O)),p(j,z)}),p(C,N)};M(yv,(C)=>{if(S())C(q);else if(Q())C(sv,1);else C(Hv,-1)})}i(T);var Cv=f(T,2),Kv=e(Cv,!0);i(Cv),i(A),t(()=>{U=d(A,1,"healthwrap panel svelte-1hnopyv",null,U,{dim:!Q()&&!S()}),I(Kv,l(Dv))}),p(L,A),zv()}var $l=x('<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),_l=x('<p class="restart-err svelte-15fxkvm"> </p>'),_v=x('<code class="svelte-15fxkvm"> </code>'),ol=x('<code class="svelte-15fxkvm">local (project devcontainer.json)</code>'),nl=x('<code class="muted svelte-15fxkvm">—</code>'),v1=x('<button class="rebuild svelte-15fxkvm"> </button>'),l1=x('<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>'),s1=x('<ul class="port-list svelte-15fxkvm"></ul>'),i1=x('<p class="empty svelte-15fxkvm">No ports forwarded yet.</p>'),e1=x('<p class="port-err svelte-15fxkvm"> </p>'),h1=x('<p class="hint pending svelte-15fxkvm">Port changes apply when you <strong class="svelte-15fxkvm">Restart</strong> (recreates the container).</p>'),f1=x('<span class="dot svelte-15fxkvm"></span>'),p1=x('<div class="err svelte-15fxkvm"> </div>'),m1=x('<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> <div class="log-actions svelte-15fxkvm"><button><!> </button> <button class="copy svelte-15fxkvm"> </button></div></div> <div class="logs svelte-15fxkvm"><pre class="svelte-15fxkvm"> <span class="caret svelte-15fxkvm"></span></pre></div> <!></div></main>',1);function Tv(L,m){jv(m,!0);let S=G(m,"injectionChecks",3,0),h=W(null),Q=W(null),pv=W(null),Y=W(""),Z=W(null),K=W(!0);async function mv(){await ov(),l(Z)?.scrollTo(0,l(Z).scrollHeight)}g(()=>{if(!l(K)||l(Y).length===0)return;mv()});function av(){if(a(K,!l(K)),l(K))mv()}g(()=>yl()),g(()=>Cl(`/api/instances/${m.id}/logs`,(v)=>a(Y,l(Y)+v),()=>a(Y,""))),g(()=>xl((v)=>{if(v.type==="instances"){let s=v.data.find((y)=>y.id===m.id);if(s)a(h,s,!0)}else if(v.type==="health"&&v.data.id===m.id)a(Q,v.data.health,!0),a(pv,Date.now(),!0);else if(v.type==="theme")Il(v.data.value)}));let Dv=J(()=>l(h)?fl(l(h)):"#"),A=W(""),U=W(null),T=W(!1),yv=J(()=>l(h)?.forwarded_ports??[]),q=J(()=>l(h)?.status==="creating");async function sv(v){a(U,null);try{return await v(),!0}catch(s){return a(U,s.message,!0),!1}}async function Hv(v){v.preventDefault();let s=Number.parseInt(l(A),10);if(!Number.isInteger(s)||s<1||s>65535){a(U,"Enter a port number between 1 and 65535");return}if(await sv(()=>Zv(`/api/instances/${m.id}/ports`,{port:s})))a(A,""),a(T,!0)}async function Cv(v){if(await sv(()=>pl(`/api/instances/${m.id}/ports/${v}`)))a(T,!0)}async function Kv(){if(await sv(()=>Zv(`/api/instances/${m.id}/rebuild`)))a(T,!1)}let C=W(null),N=W(!1),w={onPending:(v)=>a(N,v,!0),submit:()=>{return a(C,null),({result:v})=>{if(v.type==="failure")a(C,v.data?.error??"Restart failed",!0);else if(v.type==="error")a(C,"Network error. Try again.")}}},j=W(!1),O;async function z(){await navigator.clipboard.writeText(l(Y)),a(j,!0),clearTimeout(O),O=setTimeout(()=>a(j,!1),2000)}var D=m1(),V=B(D),r=e(V),Xv=e(r);Mv(Xv,{size:15}),u(),i(r);var b=f(r,2),iv=e(b),xv=e(iv,!0);i(iv);var Lv=f(iv,2);{var E=(v)=>{ml(v,{get status(){return l(h).status}})},Nl=(v)=>{R(v,{variant:"pill"})};M(Lv,(v)=>{if(l(h))v(E);else v(Nl,-1)})}i(b);var tl=f(b,2);{var Ml=(v)=>{var s=$l(),y=B(s),F=e(y),c=e(F,!0);i(F),i(y),ll(y,()=>hl(w));var k=f(y,2),H=f(e(k));hv(H,{size:15}),i(k),t(()=>{F.disabled=l(N)||l(q),I(c,l(N)||l(q)?"Restarting…":"Restart container"),fv(k,"href",l(Dv))}),p(v,s)};M(tl,(v)=>{if(l(h)?.status==="running")v(Ml)})}i(V);var Vv=f(V,2);{var Wl=(v)=>{var s=_l(),y=e(s,!0);i(s),t(()=>I(y,l(C))),p(v,s)};M(Vv,(v)=>{if(l(C))v(Wl)})}var kv=f(Vv,2),Ov=e(kv),Uv=f(e(Ov),2);{var jl=(v)=>{var s=_v(),y=e(s,!0);i(s),t(()=>I(y,l(h).source_path)),p(v,s)},zl=(v)=>{R(v,{variant:"wide"})};M(Uv,(v)=>{if(l(h))v(jl);else v(zl,-1)})}var Dl=f(Uv,4);{var Hl=(v)=>{var s=n(),y=B(s);{var F=(H)=>{var X=ol();p(H,X)},c=(H)=>{var X=_v(),tv=e(X,!0);i(X),t(()=>I(tv,l(h).image_source)),p(H,X)},k=(H)=>{var X=nl();p(H,X)};M(y,(H)=>{if(l(h).image_source==="local")H(F);else if(l(h).image_source)H(c,1);else H(k,-1)})}p(v,s)},Kl=(v)=>{R(v,{variant:"wide"})};M(Dl,(v)=>{if(l(h))v(Hl);else v(Kl,-1)})}i(Ov);var Fv=f(Ov,2),Xl=e(Fv);{let v=J(()=>!l(h)||l(h).status==="running"),s=J(()=>l(h)?.mode??"ide");Yv(Xl,{get health(){return l(Q)},get lastFetchedAt(){return l(pv)},get injectionChecks(){return S()},get active(){return l(v)},get mode(){return l(s)}})}i(Fv);var Gv=f(Fv,2),Jv=e(Gv),Ll=f(e(Jv),2);{var Ol=(v)=>{var s=v1(),y=e(s,!0);i(s),t(()=>{s.disabled=l(q),I(y,l(q)?"Restarting…":"Restart to apply")}),lv("click",s,Kv),p(v,s)};M(Ll,(v)=>{if(l(T))v(Ol)})}i(Jv);var Ev=f(Jv,2),Rv=e(Ev);{var Fl=(v)=>{var s=s1();vv(s,21,()=>l(yv),(y)=>y.container_port,(y,F)=>{var c=l1(),k=e(c),H=e(k);i(k);var X=f(k,4),tv=e(X),El=f(tv);hv(El,{size:12}),i(X);var Rl=f(X,2);i(c),t((Bl,wl)=>{I(H,`:${l(F).container_port??""}`),fv(X,"href",Bl),I(tv,`${wl??""} `)},[()=>Av(l(F).host_port),()=>Av(l(F).host_port).replace("http://","")]),lv("click",Rl,()=>Cv(l(F).container_port)),p(y,c)}),i(s),p(v,s)},Gl=(v)=>{var s=i1();p(v,s)};M(Rv,(v)=>{if(l(yv).length)v(Fl);else v(Gl,-1)})}var Iv=f(Rv,2),Bv=e(Iv);sl(Bv),u(2),i(Iv);var wv=f(Iv,2);{var Jl=(v)=>{var s=e1(),y=e(s,!0);i(s),t(()=>I(y,l(U))),p(v,s)};M(wv,(v)=>{if(l(U))v(Jl)})}var Ql=f(wv,2);{var Yl=(v)=>{var s=h1();p(v,s)};M(Ql,(v)=>{if(l(T))v(Yl)})}u(2),i(Ev),i(Gv);var bv=f(Gv,2),Qv=e(bv),Pv=f(e(Qv),2),P=e(Pv);let cv;var dv=e(P);{var Zl=(v)=>{var s=f1();p(v,s)};M(dv,(v)=>{if(l(K))v(Zl)})}var Al=f(dv);i(P);var Sv=f(P,2),Tl=e(Sv,!0);i(Sv),i(Pv),i(Qv);var Nv=f(Qv,2),uv=e(Nv),Vl=e(uv,!0);u(),i(uv),i(Nv),el(Nv,(v)=>a(Z,v),()=>l(Z));var kl=f(Nv,2);{var Ul=(v)=>{var s=p1(),y=e(s,!0);i(s),t(()=>I(y,l(h).error)),p(v,s)};M(kl,(v)=>{if(l(h)?.status==="error"&&l(h).error)v(Ul)})}i(bv),i(kv),t(()=>{I(xv,l(h)?.name??"Instance"),cv=d(P,1,"copy svelte-15fxkvm",null,cv,{active:l(K)}),fv(P,"aria-pressed",l(K)),fv(P,"title",l(K)?"Following — click to pause":"Paused — click to follow new output"),I(Al,` ${l(K)?"Following":"Follow log"}`),Sv.disabled=!l(Y),I(Tl,l(j)?"Copied!":"Copy logs"),I(Vl,l(Y)||"Waiting for output…")}),lv("click",r,function(...v){al?.apply(this,v)}),nv("submit",Iv,Hv),il(Bv,()=>l(A),(v)=>a(A,v)),lv("click",P,av),lv("click",Sv,z),p(L,D),zv()}vl(["click"]);Sl("InstanceView_2ma45l9bybfhl",Tv);