@av-pi-studio/web-client 0.0.25 → 0.0.26
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.
- package/dist/web/assets/{BinaryFallbackViewer-Dm2tnamO.js → BinaryFallbackViewer-mLjhu11M.js} +2 -2
- package/dist/web/assets/{BinaryFallbackViewer-Dm2tnamO.js.map → BinaryFallbackViewer-mLjhu11M.js.map} +1 -1
- package/dist/web/assets/{ChatPanel-DQOK5fa6.js → ChatPanel-B_B_2aOA.js} +2 -2
- package/dist/web/assets/{ChatPanel-DQOK5fa6.js.map → ChatPanel-B_B_2aOA.js.map} +1 -1
- package/dist/web/assets/{CodeView-IwFlH10D.js → CodeView-CB09dqGQ.js} +2 -2
- package/dist/web/assets/{CodeView-IwFlH10D.js.map → CodeView-CB09dqGQ.js.map} +1 -1
- package/dist/web/assets/{FilePanel-DnnJgqr5.js → FilePanel-Hla4aEUX.js} +3 -3
- package/dist/web/assets/{FilePanel-DnnJgqr5.js.map → FilePanel-Hla4aEUX.js.map} +1 -1
- package/dist/web/assets/{ImageViewer-DUa6hBpR.js → ImageViewer-DtVjY-TF.js} +2 -2
- package/dist/web/assets/{ImageViewer-DUa6hBpR.js.map → ImageViewer-DtVjY-TF.js.map} +1 -1
- package/dist/web/assets/{MarkdownFileViewer-CYIMImxN.js → MarkdownFileViewer-CCq6ncYt.js} +2 -2
- package/dist/web/assets/{MarkdownFileViewer-CYIMImxN.js.map → MarkdownFileViewer-CCq6ncYt.js.map} +1 -1
- package/dist/web/assets/{TerminalPanel-wkhcCby8.js → TerminalPanel-CpqJXnEn.js} +2 -2
- package/dist/web/assets/{TerminalPanel-wkhcCby8.js.map → TerminalPanel-CpqJXnEn.js.map} +1 -1
- package/dist/web/assets/{TextViewer-D5Qyv-Qo.js → TextViewer-CcF-CYR9.js} +2 -2
- package/dist/web/assets/{TextViewer-D5Qyv-Qo.js.map → TextViewer-CcF-CYR9.js.map} +1 -1
- package/dist/web/assets/{VideoViewer-CuCsu-Id.js → VideoViewer-qOKrbk4G.js} +2 -2
- package/dist/web/assets/{VideoViewer-CuCsu-Id.js.map → VideoViewer-qOKrbk4G.js.map} +1 -1
- package/dist/web/assets/{index-DBkW1vv0.js → index-Bo913WdX.js} +3 -3
- package/dist/web/assets/{index-DBkW1vv0.js.map → index-Bo913WdX.js.map} +1 -1
- package/dist/web/assets/{use-file-download-oRDmqj47.js → use-file-download-DBTB0i17.js} +2 -2
- package/dist/web/assets/{use-file-download-oRDmqj47.js.map → use-file-download-DBTB0i17.js.map} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +3 -3
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatPanel-
|
|
2
|
-
var nn=Object.defineProperty;var sn=(t,e,n)=>e in t?nn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var I=(t,e,n)=>sn(t,typeof e!="symbol"?e+"":e,n);import{r as w,j as i,d as on}from"./vendor-react-BoIQBqDW.js";import{Q as rn,a as an,u as cn,b as ln,c as Le,d as dn}from"./vendor-query-AtKBh_Yt.js";import{A as c,B as f,C as A,D as pt,E as T,F as be,G as V,H as q,I as _,J as $,K as U,L as Ne,M as ce,N as ee}from"./vendor--os7hw7d.js";import{L as un,P as pn,a as fn,b as hn,c as mn,E as ft,C as ht,d as gn,F as _n,e as mt,f as yn,S as bn,G as wn,g as Sn,M as xn,X as Ee,h as gt,i as vn,U as kn,T as In,R as Cn,j as Tn,A as jn}from"./vendor-icons-DwowToH7.js";import{R as _t,T as yt,P as bt,C as wt,I as ae,S as St,D as En,a as Nn,b as Rn,c as qn,d as Xe,e as $e}from"./vendor-overlays-UwLNGk04.js";import{u as Bn,a as An,D as Mn,c as $n,S as Dn,h as On,P as Fn,b as Pn,C as Hn}from"./vendor-dnd-D9kA7FgH.js";import{_ as Ue}from"./vendor-highlight-DCzuSv8g.js";import"./vendor-markdown-B8HSIhaA.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const a of r.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&s(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();const zn=new rn;function xt(t){const e=t.trim().replace(/^#/,""),n=e.length===3?e.split("").map(s=>s+s).join(""):e;if(n.length!==6||/[^0-9a-fA-F]/.test(n))throw new Error(`Invalid hex color: ${t}`);return{r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16)}}function Wn(t){return Math.max(0,Math.min(255,Math.round(t)))}function Ln({r:t,g:e,b:n}){const s=o=>Wn(o).toString(16).padStart(2,"0");return`#${s(t)}${s(e)}${s(n)}`}function Un(t){const{r:e,g:n,b:s}=xt(t),o=r=>{const a=r/255;return a<=.03928?a/12.92:((a+.055)/1.055)**2.4};return .2126*o(e)+.7152*o(n)+.0722*o(s)}function Ke(t,e="#18181b",n="#ffffff"){return Un(t)>.45?e:n}function Kn(t,e){const{r:n,g:s,b:o}=xt(t),r=Math.max(0,Math.min(1,e));return Ln({r:n+(255-n)*r,g:s+(255-s)*r,b:o+(255-o)*r})}function xe(t){const e=t.trim().replace(/^#/,"");return(e.length===3||e.length===6)&&!/[^0-9a-fA-F]/.test(e)}const H=(t,e,n,s,o,r,a,l,d,u,m)=>({50:t,100:e,200:n,300:s,400:o,500:r,600:a,700:l,800:d,900:u,950:m}),g={zinc:H("#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#71717a","#52525b","#3f3f46","#27272a","#18181b","#09090b"),gray:H("#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#6b7280","#4b5563","#374151","#1f2937","#111827","#030712"),slate:H("#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#64748b","#475569","#334155","#1e293b","#0f172a","#020617"),blue:H("#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1d4ed8","#1e40af","#1e3a8a","#172554"),green:H("#f0fdf4","#dcfce7","#bbf7d0","#86efac","#4ade80","#22c55e","#16a34a","#15803d","#166534","#14532d","#052e16"),red:H("#fef2f2","#fee2e2","#fecaca","#fca5a5","#f87171","#ef4444","#dc2626","#b91c1c","#991b1b","#7f1d1d","#450a0a"),teal:H("#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#14b8a6","#0d9488","#0f766e","#115e59","#134e4a","#042f2e"),amber:H("#fffbeb","#fef3c7","#fde68a","#fcd34d","#fbbf24","#f59e0b","#d97706","#b45309","#92400e","#78350f","#451a03"),yellow:H("#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#eab308","#ca8a04","#a16207","#854d0e","#713f12","#422006"),purple:H("#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#a855f7","#9333ea","#7e22ce","#6b21a8","#581c87","#3b0764"),orange:H("#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#c2410c","#9a3412","#7c2d12","#431407"),white:"#ffffff",black:"#000000"},Vn={statusSuccess:"#16a34a",statusDanger:"#dc2626",statusWarning:"#f59e0b",statusMerged:"#9333ea"},Gn={statusSuccess:"#15803d",statusDanger:"#b91c1c",statusWarning:"#d97706",statusMerged:"#7c3aed"};function Jn(){return{keyword:g.purple[300],string:g.green[300],number:g.orange[300],boolean:g.orange[300],comment:g.zinc[500],function:g.blue[300],variable:g.zinc[200],type:g.teal[300],class:g.amber[300],constant:g.orange[300],operator:g.zinc[400],punctuation:g.zinc[400],tag:g.red[300],attribute:g.amber[300],property:g.blue[200],regexp:g.teal[300],escape:g.orange[200],heading:g.blue[300],link:g.blue[400],deleted:g.red[400],inserted:g.green[400]}}function Xn(){return{keyword:g.purple[700],string:g.green[700],number:g.orange[700],boolean:g.orange[700],comment:g.zinc[500],function:g.blue[700],variable:g.zinc[800],type:g.teal[700],class:g.amber[700],constant:g.orange[700],operator:g.zinc[600],punctuation:g.zinc[600],tag:g.red[700],attribute:g.amber[700],property:g.blue[700],regexp:g.teal[700],escape:g.orange[700],heading:g.blue[700],link:g.blue[600],deleted:g.red[700],inserted:g.green[700]}}function vt(t,e,n){return{background:t,foreground:e,cursor:n,cursorAccent:t,selectionBackground:"rgba(255,255,255,0.18)",black:g.zinc[900],red:g.red[500],green:g.green[500],yellow:g.amber[500],blue:g.blue[500],magenta:g.purple[500],cyan:g.teal[500],white:g.zinc[300],brightBlack:g.zinc[600],brightRed:g.red[400],brightGreen:g.green[400],brightYellow:g.amber[400],brightBlue:g.blue[400],brightMagenta:g.purple[400],brightCyan:g.teal[400],brightWhite:g.zinc[50]}}function ue(t){const e=g.zinc[50],n=Ke(t.accent);return{surface0:t.surface0,surface1:t.surface1,surface2:t.surface2,surface3:t.surface3,surface4:t.surface4,surfaceDiffEmpty:t.surfaceDiffEmpty,surfaceSidebar:t.surfaceSidebar,surfaceSidebarHover:t.surfaceSidebarHover,surfaceWorkspace:t.surface1,foreground:e,foregroundMuted:t.mutedForeground,accent:t.accent,accentBright:t.accentBright,accentForeground:n,destructive:t.destructive,destructiveForeground:g.white,success:t.accent,successForeground:g.white,border:t.border,borderAccent:t.borderAccent,...Vn,diffAddition:g.green[400],diffDeletion:g.red[500],scrollbarHandle:t.scrollbarHandle,background:t.surface0,popover:t.surface2,popoverForeground:e,primary:t.accent,secondary:t.surface2,muted:t.surface2,mutedForeground:t.mutedForeground,input:t.surface2,ring:t.accent,palette:g,syntax:Jn(),terminal:vt(t.surface0,e,t.accent)}}function Yn(){const t="#1a1a1e",e="#253e6f";return{surface0:"#ffffff",surface1:"#fafafa",surface2:"#f4f4f5",surface3:"#e4e4e7",surface4:"#d4d4d8",surfaceDiffEmpty:"#f6f6f6",surfaceSidebar:"#f4f4f5",surfaceSidebarHover:"#e9e9ec",surfaceWorkspace:"#ffffff",foreground:t,foregroundMuted:"#71717a",accent:e,accentBright:"#2f4f8e",accentForeground:Ke(e),destructive:"#b04138",destructiveForeground:"#ffffff",success:e,successForeground:"#ffffff",border:"#e4e4e7",borderAccent:"#ececf1",...Gn,diffAddition:"#15803d",diffDeletion:"#b91c1c",scrollbarHandle:"#3f3f46",background:"#ffffff",popover:"#ffffff",popoverForeground:t,primary:e,secondary:"#f4f4f5",muted:"#f4f4f5",mutedForeground:"#71717a",input:"#f4f4f5",ring:e,palette:g,syntax:Xn(),terminal:{...vt("#ffffff",t,e),selectionBackground:"rgba(0,0,0,0.15)",white:"#ffffff",brightWhite:"#fafafa"}}}const Qn={light:"#ffffff",dark:"#3b62b0",zinc:"#808080",midnight:"#4A6BA8",claude:"#D97757",ghostty:"#8caaee"},kt=["light","dark","zinc","midnight","claude","ghostty"];function Zn(t){if(t==="light")return Yn();switch(t){case"dark":return ue({surface0:"#181B1A",surface1:"#1E2120",surface2:"#272A29",surface3:"#434645",surface4:"#595B5B",surfaceDiffEmpty:"#252827",surfaceSidebar:"#141716",surfaceSidebarHover:"#1c1f1e",mutedForeground:"#A1A5A4",scrollbarHandle:"#717574",border:"#252B2A",borderAccent:"#2f3135",accent:"#2e5cb8",accentBright:"#a2b4d7",destructive:"#c64f43"});case"zinc":return ue({surface0:"#18181b",surface1:"#1f1f22",surface2:"#27272a",surface3:"#3f3f46",surface4:"#52525b",surfaceDiffEmpty:"#242427",surfaceSidebar:"#131316",surfaceSidebarHover:"#1b1b1e",mutedForeground:"#a1a1aa",scrollbarHandle:"#71717a",border:"#27272a",borderAccent:"#303036",accent:"#e4e4e7",accentBright:"#fafafa",destructive:"#c44a4a"});case"midnight":return ue({surface0:"#161820",surface1:"#1c1e27",surface2:"#252731",surface3:"#3c3e4c",surface4:"#535564",surfaceDiffEmpty:"#222430",surfaceSidebar:"#121420",surfaceSidebarHover:"#1a1c28",mutedForeground:"#9a9db0",scrollbarHandle:"#6b6e82",border:"#242636",borderAccent:"#2e3040",accent:"#3b6fcf",accentBright:"#7eaaeb",destructive:"#c44a52"});case"claude":return ue({surface0:"#1f1f1e",surface1:"#262523",surface2:"#2f2d2b",surface3:"#4a4745",surface4:"#605d5b",surfaceDiffEmpty:"#2a2826",surfaceSidebar:"#1a1918",surfaceSidebarHover:"#222120",mutedForeground:"#ada9a5",scrollbarHandle:"#78746f",border:"#2c2a27",borderAccent:"#36332f",accent:"#d97757",accentBright:"#e89a7f",destructive:"#cf513e"});case"ghostty":return ue({surface0:"#282c34",surface1:"#2f333d",surface2:"#383c48",surface3:"#4a4f5e",surface4:"#5b6175",surfaceDiffEmpty:"#323643",surfaceSidebar:"#21252d",surfaceSidebarHover:"#292d36",mutedForeground:"#c8ccd8",scrollbarHandle:"#a0a4b2",border:"#353a47",borderAccent:"#3f4454",accent:"#89b4fa",accentBright:"#b4d0fc",destructive:"#c44a55"})}}const It={};for(const t of kt){const e=t==="light"?"light":"dark";It[t]={name:t,colorScheme:e,colors:Zn(t),swatch:Qn[t]}}const es=It,ts={0:0,1:4,"1.5":6,2:8,3:12,4:16,6:24,8:32,12:48,16:64,20:80,24:96,32:128},Ct={xs:12,code:12,sm:14,base:16,lg:18,xl:20,"2xl":22,"3xl":26,"4xl":34},ns={normal:"400",medium:"500",semibold:"600",bold:"700"},ss={none:0,sm:2,base:4,md:6,lg:8,xl:12,"2xl":16,full:9999},os={0:0,1:1,2:2},rs={0:0,50:.5,100:1},as={xs:12,sm:14,md:16,lg:20},is={diff:22},Tt='system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',jt='ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace';function cs(t){const e=t==="dark"?"rgba(0,0,0,0.55)":"rgba(24,24,27,0.12)";return{sm:{color:e,offsetX:0,offsetY:1,radius:2,elevation:1},md:{color:e,offsetX:0,offsetY:3,radius:8,elevation:4},lg:{color:e,offsetX:0,offsetY:10,radius:24,elevation:12}}}function Et(t){const e=es[t];return{name:t,colorScheme:e.colorScheme,colors:e.colors,spacing:ts,fontSize:{...Ct},fontFamily:{ui:Tt,mono:jt},lineHeight:{...is},iconSize:as,fontWeight:ns,borderRadius:ss,borderWidth:os,opacity:rs,shadow:cs(e.colorScheme),swatch:e.swatch}}const ls=16,ds=10,us=24;function ps(t,e){const n=e.themeName??t.name,s=Et(n),o=e.uiFont&&e.uiFont.trim()!==""?e.uiFont:Tt,r=e.monoFont&&e.monoFont.trim()!==""?e.monoFont:jt;let a={...s.fontSize};if(e.fontSize!=null){const d=Math.max(ds,Math.min(us,e.fontSize))/ls,u=["xs","code","sm","base","lg","xl","2xl","3xl","4xl"];for(const m of u){const h=Ct[m];a[m]=Math.round(h*d)}}return{...s,fontSize:a,fontFamily:{ui:o,mono:r}}}function fs(t){return Et(t)}const hs="dark";function ms(t){const e={};gs(t.colors,e);for(const[n,s]of Object.entries(t.spacing))e[`--pi-spacing-${n}`]=`${s}px`;for(const[n,s]of Object.entries(t.fontSize))e[`--pi-font-size-${n}`]=`${s}px`;e["--pi-font-ui"]=t.fontFamily.ui,e["--pi-font-mono"]=t.fontFamily.mono,e["--pi-line-height-diff"]=`${t.lineHeight.diff}px`;for(const[n,s]of Object.entries(t.iconSize))e[`--pi-icon-size-${n}`]=`${s}px`;for(const[n,s]of Object.entries(t.fontWeight))e[`--pi-font-weight-${n}`]=String(s);for(const[n,s]of Object.entries(t.borderRadius))e[`--pi-radius-${n}`]=s===9999?"9999px":`${s}px`;for(const[n,s]of Object.entries(t.borderWidth))e[`--pi-border-width-${n}`]=`${s}px`;for(const[n,s]of Object.entries(t.opacity))e[`--pi-opacity-${n}`]=String(s);for(const[n,s]of Object.entries(t.shadow))if(typeof s=="string")e[`--pi-shadow-${n}`]=s;else if(s&&typeof s=="object"){const o=s;e[`--pi-shadow-${n}`]=`${o.offsetX}px ${o.offsetY}px ${o.radius}px ${o.color}`}return e["--pi-color-scheme"]=t.colorScheme,e}function gs(t,e){const{palette:n,syntax:s,terminal:o,...r}=t;for(const[a,l]of Object.entries(r))typeof l=="string"&&(e[`--pi-color-${a}`]=l);s&&_s(s,e),o&&(e["--pi-terminal-bg"]=o.background,e["--pi-terminal-fg"]=o.foreground)}function _s(t,e){for(const[n,s]of Object.entries(t))typeof s=="string"&&(e[`--syntax-${ys(n)}`]=s)}function ys(t){return t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function bs(t){if(typeof document>"u")return;const e=document.documentElement.style;for(const[s,o]of Object.entries(t))e.setProperty(s,o);const n=t["--pi-color-scheme"];n&&document.documentElement.style.setProperty("color-scheme",n)}function ws(t){const e=ms(t);bs(e)}const pe=c().min(1,"Asset path must not be empty"),Ss=f({accent:c().refine(xe,{message:"accent must be a valid #rrggbb hex color"}),accentBright:c().refine(xe,{message:"accentBright must be a valid #rrggbb hex color"}).optional(),accentForeground:c().refine(xe,{message:"accentForeground must be a valid #rrggbb hex color"}).optional(),swatch:c().refine(xe,{message:"swatch must be a valid #rrggbb hex color"}).optional()}),xs=f({logoLight:pe,logoDark:pe,logoMark:pe.optional(),icon:pe,splash:pe.optional()}),vs=f({docs:c().url().optional(),support:c().url().optional(),issues:c().url().optional(),website:c().url().optional()}).optional(),ks=f({copyright:c().optional(),companyName:c().optional()}).optional();f({productName:c().min(1,"productName is required"),shortName:c().optional(),tagline:c().optional(),colors:Ss,assets:xs,links:vs,legal:ks});function Is(t){const e=t.accent,n=t.accentBright??Kn(e,.35),s=t.accentForeground??Ke(e),o=t.swatch??e;return{accent:e,accentBright:n,accentForeground:s,swatch:o}}function Cs(t,e){return{...t,colors:{...t.colors,accent:e.accent,accentBright:e.accentBright,accentForeground:e.accentForeground,primary:e.accent,ring:e.accent},swatch:e.swatch}}const Ye="pi-studio-appearance";function Ts(t,e){let n=l(t),s=null;function o(m){return m==="system"?typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":m}function r(m,h){const p=o(m),x=fs(p);let b=ps(x,{...h,themeName:p});if(e!=null&&e.colors){const E=Is(e.colors);b=Cs(b,E)}return b}function a(){const m=JSON.stringify({mode:n.mode,settings:n.settings});t.set(Ye,m)}function l(m){const h=m.get(Ye);let p=hs,x={};if(h)try{const E=JSON.parse(h);E.mode&&(kt.includes(E.mode)||E.mode==="system")&&(p=E.mode),E.settings&&typeof E.settings=="object"&&(x=E.settings)}catch{}const b=r(p,x);return{mode:p,settings:x,resolvedTheme:b}}function d(){n={...n,resolvedTheme:r(n.mode,n.settings)},a()}const u={getState(){return n},setMode(m){n={...n,mode:m},d(),u.apply()},updateSettings(m){n={...n,settings:{...n.settings,...m}},d(),u.apply()},apply(){ws(n.resolvedTheme)},listen(){if(typeof window>"u")return()=>{};const m=window.matchMedia("(prefers-color-scheme: dark)"),h=()=>{n.mode==="system"&&(d(),u.apply())};return m.addEventListener("change",h),s=()=>m.removeEventListener("change",h),s}};return u}function js({store:t,brandConfig:e,children:n}){const s=w.useRef(null);return s.current||(s.current=Ts(t,e),s.current.apply()),w.useEffect(()=>s.current.listen(),[]),i.jsx(i.Fragment,{children:n})}const Es={get(t){var e;try{return((e=globalThis.localStorage)==null?void 0:e.getItem(t))??null}catch{return null}},set(t,e){var n;try{(n=globalThis.localStorage)==null||n.setItem(t,e)}catch{}}};function Ns({children:t}){return i.jsx(js,{store:Es,children:i.jsx(an,{client:zn,children:t})})}const Rs="_btn_1chbg_4",qs="_secondary_1chbg_44",Bs="_outline_1chbg_53",As="_ghost_1chbg_62",Ms="_destructive_1chbg_72",$s="_iconOnly_1chbg_82",Ds="_loadingSpinner_1chbg_89",Os="_piSpin_1chbg_1",ve={btn:Rs,default:"_default_1chbg_35",secondary:qs,outline:Bs,ghost:As,destructive:Ms,iconOnly:$s,loadingSpinner:Ds,piSpin:Os},Qe={xs:28,sm:32,md:36,lg:40},Fs={xs:12,sm:14,md:16,lg:20},Ze={xs:8,sm:10,md:12,lg:16},Ps={xs:12,sm:13,md:14,lg:15};function Hs(t){const{disabled:e,loading:n}=t;return e||n?{opacity:.5,isGhostHover:!1}:{opacity:1,isGhostHover:!1}}function P({variant:t="default",size:e="md",loading:n=!1,disabled:s=!1,leftIcon:o,trailing:r,iconOnly:a=!1,children:l,style:d,className:u,...m}){const{opacity:h}=Hs({disabled:s??!1,loading:n}),p=s||n,x=Fs[e];return i.jsxs("button",{className:A(ve.btn,ve[t],a&&ve.iconOnly,u),disabled:p,"aria-busy":n||void 0,style:{minHeight:Qe[e],paddingLeft:a?void 0:Ze[e],paddingRight:a?void 0:Ze[e],fontSize:Ps[e],opacity:h,...a?{width:Qe[e]}:{},...d},...m,children:[n?i.jsx(un,{className:ve.loadingSpinner,size:x,"aria-hidden":!0}):o?i.jsx("span",{"aria-hidden":!0,style:{display:"flex",alignItems:"center",flexShrink:0},children:o}):null,l,r&&!n&&i.jsx("span",{"aria-hidden":!0,style:{display:"flex",alignItems:"center",flexShrink:0},children:r})]})}const zs="_input_a7qyq_3",Ws="_textarea_a7qyq_32",De={input:zs,textarea:Ws},Oe=w.forwardRef(function({className:e,...n},s){return i.jsx("input",{ref:s,className:A(De.input,e),...n})}),Bl=w.forwardRef(function({className:e,...n},s){return i.jsx("textarea",{ref:s,className:A(De.input,De.textarea,e),...n})}),Nt=c().datetime({offset:!0});c().uuid();c().regex(/^[A-Za-z0-9_-]+$/,"expected base64url");const ye=pt([T(),Nt]),Ls=be(["mobile","browser","cli","mcp"]),Us=f({type:_("hello"),clientId:c(),clientType:Ls,protocolVersion:T(),appVersion:c().optional(),capabilities:V(c(),q()).optional()}),Ks=f({status:_("server_info"),serverId:c(),hostname:c().optional(),version:c().optional(),capabilities:V(c(),$()),features:V(c(),$())}),Vs=f({type:_("status"),payload:Ks}),Gs=f({type:_("ping"),requestId:c(),clientSentAt:ye.optional()}),Js=f({type:_("pong"),requestId:c(),clientSentAt:ye.optional(),serverReceivedAt:ye,serverSentAt:ye}),Rt=be(["initializing","idle","running","error","closed"]),qt=f({mimeType:c().optional(),data:c().optional()}).passthrough(),Xs=f({prs:U($()).optional(),issues:U($()).optional()}).passthrough(),Ys=f({provider:c(),cwd:c(),modeId:c().optional(),model:c().optional(),thinkingOptionId:c().optional(),featureValues:V(c(),$()).optional(),title:c().nullable().optional(),approvalPolicy:c().optional(),sandboxMode:c().optional(),networkAccess:q().optional(),webSearch:q().optional(),extra:f({pi:$().optional()}).passthrough().optional(),systemPrompt:c().optional(),mcpServers:V(c(),$()).optional()}),Qs=f({type:_("create_agent_request"),requestId:c(),config:Ys,env:V(c(),c()).optional(),workspaceId:c().optional(),worktreeName:c().optional(),initialPrompt:c().optional(),clientMessageId:c().optional(),outputSchema:V(c(),$()).optional(),images:U(qt).optional(),attachments:Xs.optional(),git:$().optional(),worktree:$().optional(),autoArchive:q().optional(),labels:V(c(),c()).default({})}),Zs=f({type:_("create_agent_response"),requestId:c(),payload:f({agentId:c()}).passthrough()}),eo=f({type:_("agent_update"),agentId:c(),status:Rt.optional(),title:c().nullable().optional(),labels:V(c(),c()).optional()}),to=f({type:_("agent_status"),agentId:c(),status:Rt}),no=f({type:_("agent_list"),agents:U(f({id:c()}).passthrough())}),so=f({type:_("agent_deleted"),agentId:c()}),oo=f({type:_("agent_archived"),agentId:c(),archivedAt:Nt.optional()}),Bt=Ne("kind",[f({kind:_("shell"),command:c().optional(),output:c().optional()}),f({kind:_("read"),path:c().optional(),output:c().optional()}),f({kind:_("edit"),path:c().optional(),diff:c().optional(),output:c().optional()}),f({kind:_("write"),path:c().optional(),output:c().optional()}),f({kind:_("search"),query:c().optional(),output:c().optional()}),f({kind:_("fetch"),url:c().optional(),output:c().optional()}),f({kind:_("task"),description:c().optional(),output:c().optional()})]),ro=Ne("kind",[f({kind:_("user_message"),messageId:c().optional(),text:c().optional(),images:U(qt).optional()}),f({kind:_("assistant_message"),messageId:c().optional(),text:c().optional()}),f({kind:_("reasoning"),text:c().optional()}),f({kind:_("tool_call"),callId:c().optional(),tool:Bt,status:c().optional()}),f({kind:_("turn_started"),turnId:c().optional()}),f({kind:_("turn_completed"),turnId:c().optional()}),f({kind:_("turn_failed"),turnId:c().optional(),error:c().optional()}),f({kind:_("turn_canceled"),turnId:c().optional()}),f({kind:_("error"),message:c().optional()})]),ao=f({type:_("agent_stream"),agentId:c(),seq:T().optional(),timestamp:ye.optional(),event:ro}),io=be(["before","after"]),co=f({start:T(),end:T()}),lo=f({type:_("fetch_agent_timeline_request"),requestId:c(),agentId:c(),cursor:c().nullable().optional(),direction:io,limit:T().optional()}),uo=f({type:_("fetch_agent_timeline_response"),requestId:c(),agentId:c().optional(),items:U($()),seqStart:T(),seqEnd:T(),sourceSeqRanges:U(co),collapsed:q(),hasNewer:q(),startCursor:c().nullable().optional(),endCursor:c().nullable().optional()}),po=f({type:_("agent_permission_request"),requestId:c(),agentId:c(),toolName:c().optional(),tool:Bt.optional(),action:$().optional(),responses:U(c()).optional()}),fo=f({type:_("agent_permission_resolved"),requestId:c(),agentId:c(),decision:c().optional()}),ho=f({type:_("agent.permission.respond.request"),requestId:c(),permissionRequestId:c(),response:$()}),mo=f({type:_("agent.permission.respond.response"),requestId:c(),payload:f({resolved:q()}).passthrough()}),go=f({type:_("respond_to_permission"),requestId:c(),permissionRequestId:c(),response:$()}),At=be(["conversation","files","both"]),_o=f({type:_("agent.rewind.request"),requestId:c(),agentId:c(),messageId:c(),mode:At}).passthrough(),yo=f({type:_("agent.rewind.response"),requestId:c(),payload:f({agentId:c(),messageId:c(),mode:At,truncatedAt:c().optional()}).passthrough()}).passthrough(),bo=f({input:T().optional(),output:T().optional(),cacheRead:T().optional(),cacheWrite:T().optional(),total:T().optional()}).passthrough(),wo=f({tokens:T().nullable().optional(),contextWindow:T().optional(),percent:T().nullable().optional()}).passthrough(),So=f({type:_("agent_session_stats_request"),requestId:c(),agentId:c()}).passthrough(),xo=f({type:_("agent_session_stats_response"),requestId:c(),payload:f({sessionId:c().optional(),sessionFile:c().optional(),userMessages:T().optional(),assistantMessages:T().optional(),toolCalls:T().optional(),toolResults:T().optional(),totalMessages:T().optional(),tokens:bo.optional(),cost:T().optional(),contextUsage:wo.optional()}).passthrough()}).passthrough(),vo=f({type:_("agent_compact_request"),requestId:c(),agentId:c(),customInstructions:c().optional()}).passthrough(),ko=f({type:_("agent_compact_response"),requestId:c(),payload:f({summary:c().optional(),firstKeptEntryId:c().optional(),tokensBefore:T().optional(),details:$().optional()}).passthrough()}).passthrough(),Io=f({type:_("agent_new_session_request"),requestId:c(),agentId:c()}).passthrough(),Co=f({type:_("agent_new_session_response"),requestId:c(),payload:f({cancelled:q()}).passthrough()}).passthrough(),To=f({type:_("agent_switch_session_request"),requestId:c(),agentId:c(),sessionPath:c()}).passthrough(),jo=f({type:_("agent_switch_session_response"),requestId:c(),payload:f({cancelled:q()}).passthrough()}).passthrough(),Eo=f({type:_("agent_fork_request"),requestId:c(),agentId:c(),entryId:c()}).passthrough(),No=f({type:_("agent_fork_response"),requestId:c(),payload:f({text:c(),cancelled:q()}).passthrough()}).passthrough(),Ro=f({type:_("agent_fork_messages_request"),requestId:c(),agentId:c()}).passthrough(),qo=f({type:_("agent_fork_messages_response"),requestId:c(),payload:f({messages:U(f({entryId:c(),text:c()}).passthrough())}).passthrough()}).passthrough(),Bo=f({type:_("agent_clone_request"),requestId:c(),agentId:c()}).passthrough(),Ao=f({type:_("agent_clone_response"),requestId:c(),payload:f({cancelled:q()}).passthrough()}).passthrough(),Mo=f({type:_("agent_set_session_name_request"),requestId:c(),agentId:c(),name:c()}).passthrough(),$o=f({type:_("agent_set_session_name_response"),requestId:c(),payload:f({}).passthrough().optional()}).passthrough(),Do=f({type:_("agent_export_html_request"),requestId:c(),agentId:c(),outputPath:c().optional()}).passthrough(),Oo=f({type:_("agent_export_html_response"),requestId:c(),payload:f({path:c()}).passthrough()}).passthrough(),Fo=f({type:_("agent_set_model_request"),requestId:c(),agentId:c(),provider:c(),modelId:c()}).passthrough(),Po=f({type:_("agent_set_model_response"),requestId:c(),payload:f({}).passthrough()}).passthrough(),Ho=f({type:_("agent_cycle_model_request"),requestId:c(),agentId:c()}).passthrough(),zo=f({type:_("agent_cycle_model_response"),requestId:c(),payload:f({model:$().nullable().optional(),thinkingLevel:c().optional(),isScoped:q().optional()}).passthrough()}).passthrough(),Wo=f({type:_("agent_last_assistant_text_request"),requestId:c(),agentId:c()}).passthrough(),Lo=f({type:_("agent_last_assistant_text_response"),requestId:c(),payload:f({text:c().nullable()}).passthrough()}).passthrough(),Uo=f({type:_("rpc_error"),requestId:c(),code:c().optional(),message:c().optional(),error:c().optional()}),Ko=Ne("type",[Qs,Zs,eo,to,no,so,oo,ao,lo,uo,po,fo,ho,mo,go,_o,yo,So,xo,vo,ko,Io,Co,To,jo,Eo,No,Ro,qo,Bo,Ao,Mo,$o,Do,Oo,Fo,Po,Ho,zo,Wo,Lo,Uo]),Vo=f({type:c()}).passthrough(),Go=f({type:_("session"),message:pt([Ko,Vo])});Ne("type",[Us,Vs,Gs,Js,Go]);const se={Output:1,Input:2,Resize:3,Snapshot:4,Restore:5},Jo=Object.fromEntries(Object.entries(se).map(([t,e])=>[e,t])),Mt=f({rows:T().int().nonnegative(),cols:T().int().nonnegative()});class me extends Error{constructor(e){super(e),this.name="TerminalFrameError"}}const Xo=new TextEncoder,Yo=new TextDecoder;function Qo(t){if(!Number.isInteger(t)||t<0||t>255)throw new me(`slot must be an integer 0–255, got ${t}`)}function fe(t,e,n){const s=new Uint8Array(2+n.length);return s[0]=t,s[1]=e,s.set(n,2),s}function Al(t){switch(Qo(t.slot),t.opcode){case"Output":return fe(se.Output,t.slot,t.data);case"Input":return fe(se.Input,t.slot,t.data);case"Snapshot":return fe(se.Snapshot,t.slot,t.data);case"Restore":return fe(se.Restore,t.slot,t.data);case"Resize":{const e=JSON.stringify(Mt.parse({rows:t.rows,cols:t.cols}));return fe(se.Resize,t.slot,Xo.encode(e))}}}function Zo(t){if(t.length<2)throw new me(`frame too short: ${t.length} bytes (need ≥ 2)`);const e=t[0],n=t[1],s=Jo[e];if(!s)throw new me(`unknown terminal opcode 0x${e.toString(16)}`);const o=t.subarray(2);if(s==="Resize"){let r;try{r=JSON.parse(Yo.decode(o))}catch{throw new me("resize payload is not valid JSON")}const a=Mt.safeParse(r);if(!a.success)throw new me("resize payload is not { rows, cols }");return{opcode:"Resize",slot:n,rows:a.data.rows,cols:a.data.cols}}return{opcode:s,slot:n,data:o.slice()}}const ie={Begin:16,Chunk:17,End:18,Error:19},er=Object.fromEntries(Object.entries(ie).map(([t,e])=>[e,t])),$t=f({transferId:c(),fileName:c().optional(),mimeType:c().optional(),totalBytes:T().int().nonnegative().optional()});class ge extends Error{constructor(e){super(e),this.name="FileTransferFrameError"}}const et=new TextEncoder,tt=new TextDecoder;function tr(t){if(!Number.isInteger(t)||t<0||t>255)throw new ge(`stream must be an integer 0–255, got ${t}`)}function ke(t,e,n){const s=new Uint8Array(2+n.length);return s[0]=t,s[1]=e,s.set(n,2),s}function qe(t){switch(tr(t.stream),t.opcode){case"Begin":return ke(ie.Begin,t.stream,et.encode(JSON.stringify($t.parse(t.meta))));case"Chunk":return ke(ie.Chunk,t.stream,t.data);case"End":return ke(ie.End,t.stream,new Uint8Array([t.ok?1:0]));case"Error":return ke(ie.Error,t.stream,et.encode(t.message))}}function nr(t){if(t.length<2)throw new ge(`frame too short: ${t.length} bytes (need ≥ 2)`);const e=t[0],n=t[1],s=er[e];if(!s)throw new ge(`unknown file-transfer opcode 0x${e.toString(16)}`);const o=t.subarray(2);switch(s){case"Begin":{let r;try{r=JSON.parse(tt.decode(o))}catch{throw new ge("begin payload is not valid JSON")}const a=$t.safeParse(r);if(!a.success)throw new ge("begin payload is not a valid transfer header");return{opcode:"Begin",stream:n,meta:a.data}}case"Chunk":return{opcode:"Chunk",stream:n,data:o.slice()};case"End":return{opcode:"End",stream:n,ok:(o[0]??1)!==0};case"Error":return{opcode:"Error",stream:n,message:tt.decode(o)}}}function sr(t){try{return nr(t)}catch{return null}}const or=c().regex(/^[a-z][a-z0-9-]*$/,"invalid provider id"),rr=be(["safe","moderate","dangerous","planning"]),ar=f({supportsStreaming:q(),supportsSessionPersistence:q(),supportsDynamicModes:q(),supportsMcpServers:q(),supportsReasoningStream:q(),supportsToolInvocations:q(),supportsRewindConversation:q().optional(),supportsRewindFiles:q().optional(),supportsRewindBoth:q().optional()}).passthrough(),ir=f({id:c(),label:c().optional(),description:c().optional(),icon:c().optional(),colorTier:rr});f({id:or,label:c(),description:c().optional(),extends:c().optional(),modes:U(ir),capabilities:ar});function Fe(t){return typeof t=="string"?t:t instanceof Uint8Array||Buffer.isBuffer(t)?t.toString("utf8"):String(t??"")}function Dt(t){let e=null;const n={onMessage:null,onClose:null,onError:null,get isOpen(){return e!==null&&e.readyState===1},connect(s){return new Promise((o,r)=>{const a=t??(()=>new WebSocket(s));try{e=t?a(s):new WebSocket(s)}catch(l){r(l);return}e.onopen=()=>o(),e.onerror=l=>{var d;(e==null?void 0:e.readyState)!==1&&r(l),(d=n.onError)==null||d.call(n,l)},e.onclose=l=>{var d;(d=n.onClose)==null||d.call(n,l.code,Fe(l.reason))},e.onmessage=l=>{var u,m,h,p;const{data:d}=l;d instanceof ArrayBuffer||d instanceof Uint8Array?(u=n.onMessage)==null||u.call(n,d):typeof d=="string"?(m=n.onMessage)==null||m.call(n,d):typeof Blob<"u"&&d instanceof Blob?(h=n.onMessage)==null||h.call(n,d):Buffer.isBuffer(d)&&((p=n.onMessage)==null||p.call(n,d.buffer.slice(d.byteOffset,d.byteOffset+d.byteLength)))}})},sendText(s){e==null||e.send(s)},sendBinary(s){e==null||e.send(s)},close(s=1e3,o=""){e==null||e.close(s,o),e=null}};return n}const _e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Ot(t){let e="";for(let n=0;n<t.length;n+=3){const s=t[n],o=n+1<t.length,r=n+2<t.length,a=o?t[n+1]:0,l=r?t[n+2]:0;e+=_e[s>>2],e+=_e[(s&3)<<4|a>>4],e+=o?_e[(a&15)<<2|l>>6]:"=",e+=r?_e[l&63]:"="}return e}function Ft(t){const e=t.replace(/=+$/,""),n=[];let s=0,o=0;for(const r of e){const a=_e.indexOf(r);if(a===-1)throw new Error(`invalid base64 character: ${JSON.stringify(r)}`);s=s<<6|a,o+=6,o>=8&&(o-=8,n.push(s>>o&255))}return new Uint8Array(n)}function cr(t){try{const e=JSON.parse(t);return!e||typeof e.type!="string"?null:e}catch{return null}}const je=24;function Pt(t,e){const n=ce.randomBytes(je),s=ce.box.after(t,n,e),o=new Uint8Array(n.length+s.length);return o.set(n,0),o.set(s,n.length),Ot(o)}function Ht(t,e){let n;try{n=Ft(t)}catch{return null}if(n.length<je)return null;const s=n.slice(0,je),o=n.slice(je);return ce.box.open.after(o,s,e)}function lr(t,e){return Pt(new TextEncoder().encode(t),e)}function dr(t,e){const n=Ht(t,e);return n?new TextDecoder().decode(n):null}function ur(t,e,n,s,o,r){let a=!1;return n.onClose(l=>{var d;a=!0,(d=s.onClose)==null||d.call(s,l)}),{handleAppFrame(l){var m,h;if(a)return;const d=o();if(!r()||!d)return;const u=dr(l.frame,d);if(u===null){(m=s.onAuthError)==null||m.call(s,new Error(`relay ${t} channel: message failed authentication`));return}(h=s.onMessage)==null||h.call(s,u)},handleBinaryFrame(l){var m,h;if(a)return;const d=o();if(!r()||!d)return;const u=Ht(l.frame,d);if(u===null){(m=s.onAuthError)==null||m.call(s,new Error(`relay ${t} channel: binary message failed authentication`));return}(h=s.onBinaryMessage)==null||h.call(s,u)},send(l){if(a)throw new Error(`relay ${t} channel: cannot send after close()`);const d=o();if(!r()||!d)throw new Error(`relay ${t} channel: cannot send before the E2EE handshake completes`);n.send(JSON.stringify({type:"e2ee_app",frame:lr(l,d)}))},sendBinary(l){if(a)throw new Error(`relay ${t} channel: cannot send after close()`);const d=o();if(!r()||!d)throw new Error(`relay ${t} channel: cannot send before the E2EE handshake completes`);n.send(JSON.stringify({type:"e2ee_bin",frame:Pt(l,d)}))},close(){a||(a=!0,n.close())}}}function pr(t){const{transport:e,attachment:n,daemonPublicKey:s}=t,o=t.events??{},r=ce.box.keyPair(),a=ce.box.before(s,r.secretKey);let l=!1;const d=ur("client",n,e,o,()=>a,()=>l);return e.onMessage(u=>{var h;const m=cr(u);if(m){if(m.type==="e2ee_ready"){if(l)return;l=!0,(h=o.onReady)==null||h.call(o);return}if(m.type==="e2ee_app"){d.handleAppFrame(m);return}m.type==="e2ee_bin"&&d.handleBinaryFrame(m)}}),e.send(JSON.stringify({type:"e2ee_hello",ephemeralPublicKey:Ot(r.publicKey)})),{role:"client",attachment:n,get ready(){return l},send:d.send,sendBinary:d.sendBinary,close:d.close}}const fr=16;function hr(t){const e=ce.hash(t);let n="";for(let s=0;s<fr;s++)n+=e[s].toString(16).padStart(2,"0");return n}function mr(t){const e=t.useTls?"wss":"ws",n=t.endpoint.replace(/^(?:https?|wss?):\/\//,"").replace(/\/+$/,"");return`${e}://${n}`}function gr(t){let e=null,n=null;const s=t.sessionId??hr(t.daemonPublicKey),o={onMessage:null,onClose:null,onError:null,get isOpen(){return e!==null&&e.readyState===1&&n!==null&&n.ready},connect(r){return new Promise((a,l)=>{const d=t.factory??(()=>new WebSocket(r));try{e=t.factory?d(r):new WebSocket(r)}catch(p){l(p);return}const u=e,m=[],h=[];u.onopen=()=>{u.send(JSON.stringify({type:"relay_register",sessionId:s})),n=pr({transport:{send:p=>u.send(p),onMessage:p=>m.push(p),onClose:p=>h.push(p),close:()=>u.close()},attachment:{sessionId:s},daemonPublicKey:t.daemonPublicKey,events:{onReady:()=>a(),onMessage:p=>{var x;return(x=o.onMessage)==null?void 0:x.call(o,p)},onBinaryMessage:p=>{var x;return(x=o.onMessage)==null?void 0:x.call(o,p.slice().buffer)},onAuthError:p=>{var x;return(x=o.onError)==null?void 0:x.call(o,p)}}})},u.onerror=p=>{var x;u.readyState!==1&&l(p),(x=o.onError)==null||x.call(o,p)},u.onclose=p=>{var x;for(const b of h)b(Fe(p.reason));(x=o.onClose)==null||x.call(o,p.code,Fe(p.reason))},u.onmessage=p=>{const{data:x}=p;if(typeof x=="string")for(const b of m)b(x)}})},sendText(r){if(!n||!n.ready)throw new Error("relay transport: cannot send before the E2EE handshake completes");n.send(r)},sendBinary(r){if(!n||!n.ready)throw new Error("relay transport: cannot send before the E2EE handshake completes");n.sendBinary(r)},close(r=1e3,a=""){n==null||n.close(),n=null,e==null||e.close(r,a),e=null}};return o}function _r(t){const e=t.indexOf("#"),n=e===-1?t:t.slice(e+1),s=new URLSearchParams(n),o=s.get("offer");if(!o)return null;let r;try{r=Ft(o)}catch{return null}const a=s.get("relay");if(a){const d={endpoint:a,useTls:s.get("relayTls")==="1"};return{publicKeyB64:o,publicKey:r,relay:d}}const l=s.get("host")??void 0;return{publicKeyB64:o,publicKey:r,...l?{host:l}:{}}}const yr=1;function Pe(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`id-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}class br extends Error{constructor(e,n,s){super(e),this.requestId=n,this.code=s,this.name="RpcError"}}class nt extends Error{constructor(e){super(`RPC ${e} timed out`),this.requestId=e,this.name="RpcTimeoutError"}}class wr{constructor(e){I(this,"transport");I(this,"rpcTimeoutMs");I(this,"now");I(this,"_state","idle");I(this,"_serverId",null);I(this,"_features",{});I(this,"_serverCapabilities",{});I(this,"pending",new Map);I(this,"sessionHandlers",new Set);I(this,"terminalHandlers",new Set);I(this,"fileTransferHandlers",new Set);I(this,"stateHandlers",new Set);I(this,"helloResolve",null);I(this,"helloReject",null);this.options=e,this.transport=e.transport??Dt(),this.rpcTimeoutMs=e.rpcTimeoutMs??3e4,this.now=e.now??(()=>Date.now()),this.transport.onMessage=n=>this.handleIncoming(n),this.transport.onClose=(n,s)=>this.handleClose(n,s),this.transport.onError=()=>{}}get state(){return this._state}get serverId(){return this._serverId}get features(){return this._features}get serverCapabilities(){return this._serverCapabilities}hasFeature(e){return!!this._features[e]}async connect(){this.setState("connecting"),await this.transport.connect(this.options.url);const e=new Promise((s,o)=>{this.helloResolve=s,this.helloReject=o});this.transport.sendText(JSON.stringify({type:"hello",clientId:this.options.clientId,clientType:this.options.clientType,protocolVersion:this.options.protocolVersion??yr,appVersion:this.options.appVersion,capabilities:this.options.capabilities}));const n=await e;return this._serverId=n.serverId,this._features=n.features,this._serverCapabilities=n.capabilities,this.setState("open"),n}close(e=1e3,n=""){this.setState("closing"),this.transport.close(e,n)}request(e,n={},s){const o=n.requestId??Pe();return new Promise((r,a)=>{const l=s??this.rpcTimeoutMs,d=l>0?setTimeout(()=>{this.pending.delete(o),a(new nt(o))},l):null;this.pending.set(o,{resolve:u=>r(u),reject:a,timer:d}),this.sendSession({type:e,...n,requestId:o})})}sendSession(e){this.transport.sendText(JSON.stringify({type:"session",message:e}))}sendBinary(e){this.transport.sendBinary(e)}ping(e=1e4){const n=Pe();return new Promise((s,o)=>{const r=e>0?setTimeout(()=>{this.pending.delete(n),o(new nt(n))},e):null;this.pending.set(n,{resolve:()=>s(),reject:o,timer:r}),this.transport.sendText(JSON.stringify({type:"ping",requestId:n,clientSentAt:this.now()}))})}onSessionMessage(e){return this.sessionHandlers.add(e),()=>this.sessionHandlers.delete(e)}onTerminalFrame(e){return this.terminalHandlers.add(e),()=>this.terminalHandlers.delete(e)}onFileTransferFrame(e){return this.fileTransferHandlers.add(e),()=>this.fileTransferHandlers.delete(e)}onStateChange(e){return this.stateHandlers.add(e),()=>this.stateHandlers.delete(e)}setState(e){if(this._state!==e){this._state=e;for(const n of this.stateHandlers)n(e)}}handleClose(e,n){this.helloReject&&(this.helloReject(new Error(`socket closed during handshake: ${n}`)),this.helloResolve=null,this.helloReject=null);for(const[,s]of this.pending)s.timer&&clearTimeout(s.timer),s.reject(new Error(`socket closed: ${n}`));this.pending.clear(),this.setState("closed")}handleIncoming(e){if(typeof e=="string"){this.handleTextFrame(e);return}if(e instanceof ArrayBuffer){this.handleBinaryFrame(new Uint8Array(e));return}typeof e.arrayBuffer=="function"&&e.arrayBuffer().then(n=>this.handleBinaryFrame(new Uint8Array(n)))}handleBinaryFrame(e){const n=e[0];if(n!==void 0&&Object.values(ie).includes(n)){const r=sr(e);if(!r)return;for(const a of this.fileTransferHandlers)a(r);return}const o=Zo(e);for(const r of this.terminalHandlers)r(o)}handleTextFrame(e){let n;try{n=JSON.parse(e)}catch{return}const s=n;switch(s.type){case"status":this.handleStatus(s);return;case"pong":this.resolvePending(s.requestId,void 0);return;case"ping":this.transport.sendText(JSON.stringify({type:"pong",requestId:s.requestId,serverReceivedAt:this.now(),serverSentAt:this.now()}));return;case"session":this.handleSession(s.message);return;default:return}}handleStatus(e){const n=e.payload;(n==null?void 0:n.status)==="server_info"&&this.helloResolve&&(this.helloResolve(n),this.helloResolve=null,this.helloReject=null)}handleSession(e){if(!e||typeof e!="object")return;const n=e;if(n.type==="rpc_error"&&typeof n.requestId=="string"){const s=this.pending.get(n.requestId);s&&(s.timer&&clearTimeout(s.timer),this.pending.delete(n.requestId),s.reject(new br(n.message??n.error??"RPC failed",n.requestId,n.code)));return}if(typeof n.requestId=="string"&&this.pending.has(n.requestId)){const s="payload"in n?n.payload:n;this.resolvePending(n.requestId,s)}for(const s of this.sessionHandlers)s(e)}resolvePending(e,n){const s=this.pending.get(e);s&&(s.timer&&clearTimeout(s.timer),this.pending.delete(e),s.resolve(n))}}class Sr{constructor(e){this.daemon=e}get connection(){return this.daemon}async createAgent(e){return await this.daemon.request("create_agent_request",{...e})}agent(e){return new vr(this.daemon,e)}workspace(e){return new kr(this.daemon,e)}get providers(){return new Ir(this.daemon)}onAgentUpdate(e){return this.daemon.onSessionMessage(n=>{n.type==="agent_update"&&e(n)})}onWorkspaceUpdate(e){return this.daemon.onSessionMessage(n=>{n.type==="workspace_update"&&e(n)})}}class xr{constructor(e,n){this.daemon=e,this.agentId=n}fetch(e={}){return this.daemon.request("fetch_agent_timeline_request",{agentId:this.agentId,cursor:e.cursor,direction:e.direction,limit:e.limit})}subscribe(e){return this.daemon.onSessionMessage(n=>{const s=n;s.type==="agent_stream"&&s.agentId===this.agentId&&s.event&&e(s.event)})}}class vr{constructor(e,n){I(this,"timeline");this.daemon=e,this.agentId=n,this.timeline=new xr(e,n)}send(e,n={}){return this.daemon.request("send_agent_prompt",{agentId:this.agentId,prompt:e,clientMessageId:n.clientMessageId,images:n.images})}run(e,n){return this.send(e,n)}interrupt(){return this.daemon.request("interrupt_agent",{agentId:this.agentId})}update(e){return this.daemon.request("update_agent",{agentId:this.agentId,...e})}resume(){return this.daemon.request("resume_agent",{agentId:this.agentId})}archive(){return this.daemon.request("archive_agent",{agentId:this.agentId})}delete(){return this.daemon.request("delete_agent",{agentId:this.agentId})}onUpdate(e){return this.daemon.onSessionMessage(n=>{const s=n;s.type==="agent_update"&&s.agentId===this.agentId&&e(s)})}sessionStats(){return this.daemon.request("agent_session_stats_request",{agentId:this.agentId})}compact(e){return this.daemon.request("agent_compact_request",{agentId:this.agentId,customInstructions:e})}newSession(){return this.daemon.request("agent_new_session_request",{agentId:this.agentId})}switchSession(e){return this.daemon.request("agent_switch_session_request",{agentId:this.agentId,sessionPath:e})}fork(e){return this.daemon.request("agent_fork_request",{agentId:this.agentId,entryId:e})}forkMessages(){return this.daemon.request("agent_fork_messages_request",{agentId:this.agentId})}clone(){return this.daemon.request("agent_clone_request",{agentId:this.agentId})}setSessionName(e){return this.daemon.request("agent_set_session_name_request",{agentId:this.agentId,name:e})}exportHtml(e){return this.daemon.request("agent_export_html_request",{agentId:this.agentId,outputPath:e})}setModel(e,n){return this.daemon.request("agent_set_model_request",{agentId:this.agentId,provider:e,modelId:n})}cycleModel(){return this.daemon.request("agent_cycle_model_request",{agentId:this.agentId})}lastAssistantText(){return this.daemon.request("agent_last_assistant_text_request",{agentId:this.agentId})}}class kr{constructor(e,n){this.daemon=e,this.workspaceId=n}onUpdate(e){return this.daemon.onSessionMessage(n=>{const s=n;s.type==="workspace_update"&&s.workspaceId===this.workspaceId&&e(s)})}}class Ir{constructor(e){this.daemon=e}listProviders(){return this.daemon.request("list_providers",{})}listModels(e){return this.daemon.request("list_provider_models",{provider:e})}listModes(e){return this.daemon.request("list_provider_modes",{provider:e})}refreshSnapshot(){return this.daemon.request("providers.snapshot.refresh.request",{})}}const st=32*1024;function Cr(t){const e=t.reduce((o,r)=>o+r.length,0),n=new Uint8Array(e);let s=0;for(const o of t)n.set(o,s),s+=o.length;return n}class Tr{constructor(e){I(this,"pending",new Map);I(this,"nextStream",1);I(this,"detach",null);this.daemon=e}start(){this.detach||(this.detach=this.daemon.onFileTransferFrame(e=>this.dispatch(e)))}stop(){var e;(e=this.detach)==null||e.call(this),this.detach=null;for(const[n,s]of this.pending)s.reject(new Error("file transfer router stopped")),this.pending.delete(n)}async download(e){const n=await this.daemon.request("file_download_token_request",{path:e});if(!n.ok||!n.token)throw new Error(n.error??"failed to issue download token");const s=this.nextStream++,o=new Promise((a,l)=>{this.pending.set(s,{chunks:[],meta:{},resolve:a,reject:l})}),r=await this.daemon.request("file_download_request",{token:n.token,stream:s});if(!r.ok)throw this.pending.delete(s),new Error(r.error??"download request failed");return o}async upload(e,n){const s=Pe(),o=await this.daemon.request("file_upload_request",{path:e,transferId:s});if(!o.ok||o.stream===void 0)throw new Error(o.error??"upload request failed");const r=o.stream;this.daemon.sendBinary(qe({opcode:"Begin",stream:r,meta:{transferId:s}}));for(let a=0;a<n.length;a+=st){const l=n.subarray(a,a+st);this.daemon.sendBinary(qe({opcode:"Chunk",stream:r,data:l}))}this.daemon.sendBinary(qe({opcode:"End",stream:r,ok:!0}))}dispatch(e){const n=this.pending.get(e.stream);if(n)switch(e.opcode){case"Begin":n.meta.fileName=e.meta.fileName,n.meta.mimeType=e.meta.mimeType;return;case"Chunk":n.chunks.push(e.data);return;case"End":this.pending.delete(e.stream),e.ok?n.resolve({bytes:Cr(n.chunks),...n.meta}):n.reject(new Error("download failed"));return;case"Error":this.pending.delete(e.stream),n.reject(new Error(e.message));return}}}class jr{constructor(e,n={}){I(this,"initialDelayMs");I(this,"maxDelayMs");I(this,"factor");I(this,"jitter");I(this,"maxAttempts");I(this,"setTimer");I(this,"clearTimer");I(this,"random");I(this,"attempt",0);I(this,"timer",null);I(this,"active",!1);I(this,"detachState",null);I(this,"reconnectedHandlers",new Set);I(this,"failedHandlers",new Set);this.daemon=e,this.initialDelayMs=n.initialDelayMs??500,this.maxDelayMs=n.maxDelayMs??3e4,this.factor=n.factor??2,this.jitter=n.jitter??.2,this.maxAttempts=n.maxAttempts??Number.POSITIVE_INFINITY,this.setTimer=n.setTimer??((s,o)=>setTimeout(s,o)),this.clearTimer=n.clearTimer??(s=>clearTimeout(s)),this.random=n.random??Math.random}delayForAttempt(e){const n=Math.min(this.maxDelayMs,this.initialDelayMs*this.factor**(e-1)),s=n*this.jitter*(this.random()*2-1);return Math.max(0,Math.round(n+s))}onReconnected(e){return this.reconnectedHandlers.add(e),()=>this.reconnectedHandlers.delete(e)}onReconnectFailed(e){return this.failedHandlers.add(e),()=>this.failedHandlers.delete(e)}start(){this.active||(this.active=!0,this.detachState=this.daemon.onStateChange(e=>{e==="closed"&&this.active&&this.scheduleReconnect(),e==="open"&&(this.attempt=0)}))}stop(){var e;this.active=!1,this.timer&&this.clearTimer(this.timer),this.timer=null,(e=this.detachState)==null||e.call(this),this.detachState=null}get attemptCount(){return this.attempt}scheduleReconnect(){if(!this.active||this.attempt>=this.maxAttempts)return;this.attempt+=1;const e=this.delayForAttempt(this.attempt);this.timer=this.setTimer(()=>{this.timer=null,this.tryReconnect()},e)}async tryReconnect(){if(!this.active)return;const e=this.attempt;try{await this.daemon.connect();for(const n of this.reconnectedHandlers)n({attempt:e,serverId:this.daemon.serverId})}catch(n){for(const s of this.failedHandlers)s(n,e);this.scheduleReconnect()}}}function ot(t){const e=t.trim();if(e==="")return e;const n=e.match(/^([a-z][a-z0-9+.-]*):\/\//i);if(!n)return`ws://${e.replace(/\/+$/,"")}`;const s=n[1].toLowerCase(),o=e.slice(n[0].length).replace(/\/+$/,"");switch(s){case"http":return`ws://${o}`;case"https":return`wss://${o}`;case"ws":case"wss":return`${s}://${o}`;default:return e}}function Er(t){const e=_r(t);return e!=null&&e.relay?{mode:"relay",url:mr(e.relay),daemonPublicKey:e.publicKey}:e!=null&&e.host?{mode:"direct",url:ot(e.host)}:{mode:"direct",url:ot(t)}}function Nr(){return"web-"+Math.random().toString(36).slice(2,10)}const j=ee()((t,e)=>({status:"idle",serverInfo:null,error:null,daemon:null,client:null,reconnection:null,async connect(n){e().disconnect();const s=Er(n.url);let o;s.mode==="relay"?o=gr({daemonPublicKey:s.daemonPublicKey}):n.password&&(o=Dt(d=>new WebSocket(d,[`pi-studio.bearer.${n.password}`])));const r=new wr({url:s.url,clientId:n.clientId??Nr(),clientType:"browser",capabilities:{},transport:o,rpcTimeoutMs:1800*1e3}),a=new Sr(r),l=new jr(r);r.onStateChange(d=>t({status:d})),l.onReconnected(()=>t({error:null})),l.onReconnectFailed(d=>{t({error:d instanceof Error?d.message:String(d)})}),t({daemon:r,client:a,reconnection:l,error:null,status:"connecting"});try{const d=await r.connect();t({serverInfo:d}),l.start()}catch(d){throw t({error:d instanceof Error?d.message:String(d)}),d}},disconnect(){const{daemon:n,reconnection:s}=e();s==null||s.stop(),n==null||n.close(),t({status:"idle",serverInfo:null,daemon:null,client:null,reconnection:null})}})),Rr=100,qr=480,Br=220,Ar=280;function Ie(t){return Math.min(qr,Math.max(Rr,t))}const k=ee()(t=>({host:"ws://127.0.0.1:6767",password:"",cwd:"~",cwdPickerOpen:!1,sessionMenu:null,fileMenu:null,rightSidebarTab:"files",collapsedWorkspaces:new Set,leftSidebarCollapsed:!1,rightSidebarCollapsed:!1,leftSidebarWidth:Br,rightSidebarWidth:Ar,setHost:e=>t({host:e}),setPassword:e=>t({password:e}),setCwd:e=>t({cwd:e}),openCwdPicker:()=>t({cwdPickerOpen:!0}),closeCwdPicker:()=>t({cwdPickerOpen:!1}),openSessionMenu:(e,n,s)=>t({sessionMenu:{sessionId:e,x:n,y:s}}),closeSessionMenu:()=>t({sessionMenu:null}),openFileMenu:(e,n,s,o)=>t({fileMenu:{path:e,isDirectory:n,x:s,y:o}}),closeFileMenu:()=>t({fileMenu:null}),setRightSidebarTab:e=>t({rightSidebarTab:e}),toggleWorkspaceCollapsed:e=>t(n=>{const s=new Set(n.collapsedWorkspaces);return s.has(e)?s.delete(e):s.add(e),{collapsedWorkspaces:s}}),toggleLeftSidebar:()=>t(e=>({leftSidebarCollapsed:!e.leftSidebarCollapsed})),toggleRightSidebar:()=>t(e=>({rightSidebarCollapsed:!e.rightSidebarCollapsed})),setLeftSidebarWidth:e=>t({leftSidebarWidth:Ie(e)}),setRightSidebarWidth:e=>t({rightSidebarWidth:Ie(e)}),resizeLeftSidebar:e=>t(n=>({leftSidebarWidth:Ie(n.leftSidebarWidth+e)})),resizeRightSidebar:e=>t(n=>({rightSidebarWidth:Ie(n.rightSidebarWidth+e)}))})),Mr="_wrap_emmus_1",$r="_dot_emmus_8",Dr="_open_emmus_15",Or="_connecting_emmus_18",Fr="_closed_emmus_21",Pr="_idle_emmus_22",Hr="_closing_emmus_23",Be={wrap:Mr,dot:$r,open:Dr,connecting:Or,closed:Fr,idle:Pr,closing:Hr},zr={idle:"disconnected",connecting:"connecting…",open:"connected",closing:"disconnecting…",closed:"disconnected"};function Wr(){const t=j(n=>n.status),e=j(n=>n.error);return i.jsxs("span",{className:Be.wrap,title:e??void 0,children:[i.jsx("span",{className:A(Be.dot,Be[t])}),zr[t]??t]})}const Lr="_toolbar_i9hmh_1",Ur="_brand_i9hmh_10",Kr="_version_i9hmh_16",Vr="_sep_i9hmh_22",Gr="_host_i9hmh_28",Jr="_password_i9hmh_31",Xr="_sidebarToggles_i9hmh_34",Y={toolbar:Lr,brand:Ur,version:Kr,sep:Vr,host:Gr,password:Jr,sidebarToggles:Xr};function Yr(){const t=j(p=>p.status),e=j(p=>p.connect),n=j(p=>p.disconnect),s=k(p=>p.host),o=k(p=>p.setHost),r=k(p=>p.password),a=k(p=>p.setPassword),l=k(p=>p.leftSidebarCollapsed),d=k(p=>p.toggleLeftSidebar),u=k(p=>p.rightSidebarCollapsed),m=k(p=>p.toggleRightSidebar),h=t==="open"||t==="connecting";return i.jsxs("div",{className:Y.toolbar,children:[i.jsx("span",{className:Y.brand,children:"Pi-Studio"}),i.jsxs("span",{className:Y.version,children:["v","0.0.25"]}),i.jsx(Wr,{}),i.jsx("div",{className:Y.sep}),i.jsx(Oe,{className:Y.host,value:s,onChange:p=>o(p.target.value),placeholder:"host:port, ws://…/http://…, or a pasted pairing link",disabled:h}),i.jsx(Oe,{className:Y.password,type:"password",value:r,onChange:p=>a(p.target.value),placeholder:"password",disabled:h}),t==="open"||t==="connecting"||t==="closing"?i.jsx(P,{size:"sm",onClick:()=>n(),children:"Disconnect"}):i.jsx(P,{size:"sm",variant:"default",onClick:()=>void e({url:s,password:r||void 0}),children:"Connect"}),i.jsxs("div",{className:Y.sidebarToggles,children:[i.jsx(P,{size:"sm",variant:"ghost",iconOnly:!0,title:l?"Show sessions sidebar":"Hide sessions sidebar",onClick:()=>d(),children:l?i.jsx(pn,{size:16}):i.jsx(fn,{size:16})}),i.jsx(P,{size:"sm",variant:"ghost",iconOnly:!0,title:u?"Show files/changes sidebar":"Hide files/changes sidebar",onClick:()=>m(),children:u?i.jsx(hn,{size:16}):i.jsx(mn,{size:16})})]})]})}const He={rows:[],streamingAssistantIndex:null,streamingReasoningIndex:null,toolIndexByCallId:{}};let rt=0;function J(){return rt+=1,`row-${rt}`}function Qr(t){switch(t.kind){case"shell":return t.command??"";case"read":case"write":return t.path??"";case"edit":return t.path??"";case"search":return t.query??"";case"fetch":return t.url??"";case"task":return t.description??"";default:return""}}function Zr(t,e){return t??`${e.kind}:${Qr(e)}`}function ea(t){return{...t,streamingAssistantIndex:null,streamingReasoningIndex:null}}function ta(t,e){var r;const n=t.rows.slice();let s=t.streamingAssistantIndex;if(s===null||((r=n[s])==null?void 0:r.kind)!=="assistant"){const a={kind:"assistant",id:J(),text:"",streaming:!0};n.push(a),s=n.length-1}const o=n[s];return!o||o.kind!=="assistant"?t:(n[s]={...o,text:o.text+e},{...t,rows:n,streamingAssistantIndex:s,streamingReasoningIndex:null})}function na(t,e){var r;const n=t.rows.slice();let s=t.streamingReasoningIndex;if(s===null||((r=n[s])==null?void 0:r.kind)!=="reasoning"){const a={kind:"reasoning",id:J(),text:"",streaming:!0};n.push(a),s=n.length-1}const o=n[s];return!o||o.kind!=="reasoning"?t:(n[s]={...o,text:o.text+e},{...t,rows:n,streamingReasoningIndex:s,streamingAssistantIndex:null})}function sa(t,e){if(t.kind!==e.kind)return e;const n={...t};for(const[s,o]of Object.entries(e))o!==void 0&&o!==""&&(n[s]=o);return n}function oa(t,e){var l;const n=Zr(e.callId,e.tool),s=e.status==="completed"||e.status==="error"?e.status:"running",o=t.toolIndexByCallId[n],r=t.rows.slice();if(o!==void 0&&((l=r[o])==null?void 0:l.kind)==="tool"){const d=r[o];return d.kind!=="tool"?t:(r[o]={...d,tool:sa(d.tool,e.tool),status:s},{...t,rows:r,streamingAssistantIndex:null,streamingReasoningIndex:null})}const a={kind:"tool",id:J(),callId:n,tool:e.tool,status:s};return r.push(a),{...t,rows:r,toolIndexByCallId:{...t.toolIndexByCallId,[n]:r.length-1},streamingAssistantIndex:null,streamingReasoningIndex:null}}function Ve(t){const e=t.rows.slice();if(t.streamingAssistantIndex!==null){const n=e[t.streamingAssistantIndex];(n==null?void 0:n.kind)==="assistant"&&(e[t.streamingAssistantIndex]={...n,streaming:!1})}if(t.streamingReasoningIndex!==null){const n=e[t.streamingReasoningIndex];(n==null?void 0:n.kind)==="reasoning"&&(e[t.streamingReasoningIndex]={...n,streaming:!1})}return{...t,rows:e,streamingAssistantIndex:null,streamingReasoningIndex:null}}function ra(t,e){const n=Ve(t),s={kind:"error",id:J(),text:e||"turn failed"};return{...n,rows:[...n.rows,s]}}function aa(t){const e=Ve(t),n={kind:"system",id:J(),text:"(canceled)"};return{...e,rows:[...e.rows,n]}}function ia(t,e){const n={kind:"error",id:J(),text:e||"error"};return{...t,rows:[...t.rows,n]}}function ca(t,e,n,s){if(s!==void 0){const r=t.rows.findIndex(a=>a.kind==="user"&&a.pending&&a.clientMessageId===s);if(r!==-1){const a=t.rows.slice(),l=a[r];if((l==null?void 0:l.kind)==="user")return a[r]={...l,text:e,images:n,pending:!1},{...t,rows:a}}}const o={kind:"user",id:J(),text:e,images:n,clientMessageId:s};return{...t,rows:[...t.rows,o]}}function zt(t,e){switch(e.kind){case"turn_started":return ea(t);case"user_message":return ca(t,e.text??"",e.images,e.messageId);case"assistant_message":return ta(t,e.text??"");case"reasoning":return na(t,e.text??"");case"tool_call":return oa(t,e);case"turn_completed":return Ve(t);case"turn_failed":return ra(t,e.error);case"turn_canceled":return aa(t);case"error":return ia(t,e.message);default:return t}}function la(t,e,n,s){const o={kind:"user",id:J(),text:n,images:s,clientMessageId:e,pending:!0};return{...t,rows:[...t.rows,o]}}function da(t,e){const n=t.rows.findIndex(r=>r.kind==="user"&&r.pending&&r.clientMessageId===e);if(n===-1)return t;const s=t.rows.slice(),o=s[n];return(o==null?void 0:o.kind)!=="user"?t:(s[n]={...o,pending:!1,failed:!0},{...t,rows:s})}let at=0;function ua(){return at+=1,`s-${Date.now().toString(36)}-${at}`}const D=ee()((t,e)=>({sessions:{},order:[],activeSessionId:null,createSession(n){const s=ua(),o={id:s,agentId:null,title:"New chat",status:"idle",cwd:n,timeline:He,userMessageCount:0};return t(r=>({sessions:{...r.sessions,[s]:o},order:[s,...r.order],activeSessionId:s})),s},hydrate(n){t(s=>s.sessions[n.id]?s:{sessions:{...s.sessions,[n.id]:n},order:[...s.order,n.id]})},bindAgent(n,s){t(o=>{const r=o.sessions[n];return r?{sessions:{...o.sessions,[n]:{...r,agentId:s}}}:o})},setStatus(n,s){t(o=>{const r=o.sessions[n];return r?{sessions:{...o.sessions,[n]:{...r,status:s}}}:o})},setStatusByAgentId(n,s){const o=e().findByAgentId(n);o&&e().setStatus(o.id,s)},setTitle(n,s){t(o=>{const r=o.sessions[n];return r?{sessions:{...o.sessions,[n]:{...r,title:s}}}:o})},setCwd(n,s){t(o=>{const r=o.sessions[n];return r?{sessions:{...o.sessions,[n]:{...r,cwd:s}}}:o})},applyStreamEvent(n,s){t(o=>{const r=o.sessions[n];if(!r)return o;const a=zt(r.timeline,s);let l=r.title;if(s.kind==="turn_completed"&&l==="New chat"){const d=a.rows.slice().reverse().find(u=>u.kind==="assistant");d&&d.kind==="assistant"&&d.text&&(l=d.text.slice(0,40)+(d.text.length>40?"…":""))}return{sessions:{...o.sessions,[n]:{...r,timeline:a,title:l}}}})},addOptimisticUserMessage(n,s,o,r){t(a=>{const l=a.sessions[n];if(!l)return a;const d=la(l.timeline,s,o,r);return{sessions:{...a.sessions,[n]:{...l,timeline:d,userMessageCount:l.userMessageCount+1}}}})},markUserMessageFailed(n,s){t(o=>{const r=o.sessions[n];if(!r)return o;const a=da(r.timeline,s);return{sessions:{...o.sessions,[n]:{...r,timeline:a}}}})},activate(n){t({activeSessionId:n})},remove(n){t(s=>{const{[n]:o,...r}=s.sessions,a=s.order.filter(d=>d!==n),l=s.activeSessionId===n?a[0]??null:s.activeSessionId;return{sessions:r,order:a,activeSessionId:l}})},findByAgentId(n){return Object.values(e().sessions).find(s=>s.agentId===n)}}));function Ae(t,e){return t.filter(n=>n.workspaceCwd===e)}const C=ee()((t,e)=>({tabs:[],activeTabId:null,activeWorkspaceCwd:null,lastActiveTabByWorkspace:{},open(n){const s=e().tabs.find(o=>o.id===n.id);if(s){e().activate(s.id);return}t(o=>({tabs:[...o.tabs,n],activeTabId:n.id,activeWorkspaceCwd:n.workspaceCwd,lastActiveTabByWorkspace:{...o.lastActiveTabByWorkspace,[n.workspaceCwd]:n.id}}))},close(n){t(s=>{const o=s.tabs.find(u=>u.id===n);if(!o)return s;const r=s.tabs.findIndex(u=>u.id===n),a=s.tabs.filter(u=>u.id!==n);let l=s.activeTabId;const d={...s.lastActiveTabByWorkspace};if(l===n){const u=Ae(a,o.workspaceCwd),m=Math.min(r,u.length-1),h=u[m];l=(h==null?void 0:h.id)??null}if(d[o.workspaceCwd]===n){const u=Ae(a,o.workspaceCwd)[0];u?d[o.workspaceCwd]=u.id:delete d[o.workspaceCwd]}return{tabs:a,activeTabId:l,lastActiveTabByWorkspace:d}})},activate(n){t(s=>{const o=s.tabs.find(r=>r.id===n);return o?{activeTabId:n,activeWorkspaceCwd:o.workspaceCwd,lastActiveTabByWorkspace:{...s.lastActiveTabByWorkspace,[o.workspaceCwd]:n}}:s})},switchWorkspace(n){t(s=>{var d;const o=Ae(s.tabs,n),r=s.lastActiveTabByWorkspace[n],l=r&&o.some(u=>u.id===r)?r:((d=o[0])==null?void 0:d.id)??null;return{activeWorkspaceCwd:n,activeTabId:l,lastActiveTabByWorkspace:l?{...s.lastActiveTabByWorkspace,[n]:l}:s.lastActiveTabByWorkspace}})},reorder(n,s){t(o=>{const r=o.tabs.findIndex(u=>u.id===n),a=o.tabs.findIndex(u=>u.id===s);if(r===-1||a===-1||r===a)return o;const l=o.tabs.slice(),[d]=l.splice(r,1);return d?(l.splice(a,0,d),{tabs:l}):o})},updateLabel(n,s){t(o=>({tabs:o.tabs.map(r=>r.id===n?{...r,label:s}:r)}))},updateData(n,s){t(o=>({tabs:o.tabs.map(r=>r.id===n?{...r,data:{...r.data,...s}}:r)}))}})),z={chat:t=>`chat-${t}`,file:t=>`file-${t}`,diff:(t,e)=>`diff-${t}${e?"-staged":""}`,terminal:t=>`term-${t}`};let Me=0;function Wt(t){Me+=1,C.getState().open({id:z.terminal(`new-${Me}`),kind:"terminal",label:`Terminal ${Me}`,closable:!0,data:{slot:null,cwd:t},workspaceCwd:t})}const Ce=ee()(t=>({rootPath:"",expanded:new Set,expandedByRoot:new Map,setRoot:e=>t(n=>{const s=new Map(n.expandedByRoot);n.rootPath&&s.set(n.rootPath,n.expanded);const o=s.get(e),r=new Set(o);return r.add(e),{rootPath:e,expanded:r,expandedByRoot:s}}),toggle:e=>t(n=>{if(e===n.rootPath)return n;const s=new Set(n.expanded);s.has(e)?s.delete(e):s.add(e);const o=new Map(n.expandedByRoot);return o.set(n.rootPath,s),{expanded:s,expandedByRoot:o}})}));let oe=null;const ze=new Set;function pa(t){return ze.add(t),()=>ze.delete(t)}async function Ge(t){var e;if(oe)return oe;try{const n=await t.connection.request("file_explorer_request",{path:"/home"}),o=(((e=n.result)==null?void 0:e.entries)??n.entries??[]).find(r=>r.kind==="directory"||r.type==="directory");oe="/home/"+((o==null?void 0:o.name)||"user")}catch{return"/tmp"}for(const n of ze)n(oe);return oe}function fa(){return oe}async function ha(t,e){return e==="~"||e.startsWith("~/")?await Ge(t)+e.slice(1):e}function Lt(){const t=j(o=>o.client),e=j(o=>o.status),[n,s]=w.useState(fa());return w.useEffect(()=>pa(s),[]),w.useEffect(()=>{!t||e!=="open"||n||Ge(t)},[t,e,n]),n}const ma="_dot_202py_3",ga={dot:ma};function _a(t){const{status:e,requiresAttention:n,attentionReason:s,showInactive:o}=t;if(!e)return null;if(n)switch(s){case"permission":return"statusWarning";case"error":return"statusDanger";case"finished":default:return"statusSuccess"}switch(e){case"running":case"queued":return"accent";case"waiting":return"statusWarning";case"finished":return"statusSuccess";case"error":return"statusDanger";case"idle":case"archived":return o?"foregroundMuted":null}}const it=8,ya={accent:"var(--pi-color-accent)",statusSuccess:"var(--pi-color-statusSuccess)",statusDanger:"var(--pi-color-statusDanger)",statusWarning:"var(--pi-color-statusWarning)",foregroundMuted:"var(--pi-color-foregroundMuted)"};function ba({className:t,...e}){const n=_a(e);return n?i.jsx("span",{className:`${ga.dot}${t?` ${t}`:""}`,style:{width:it,height:it,backgroundColor:ya[n]??"currentColor"},role:"presentation"}):null}const wa={initializing:"queued",idle:"idle",running:"running",error:"error",closed:"finished"};function Sa(t){return wa[t]??"idle"}const xa="_wrap_sqws5_1",va="_header_sqws5_7",ka="_list_sqws5_23",Ia="_item_sqws5_28",Ca="_active_sqws5_37",Ta="_title_sqws5_40",ja="_meta_sqws5_49",Ea="_menuBtn_sqws5_57",Na="_workspaceGroup_sqws5_75",Ra="_workspaceHeader_sqws5_78",qa="_workspaceChevron_sqws5_91",Ba="_workspaceIcon_sqws5_102",Aa="_workspaceLabel_sqws5_106",Ma="_workspaceCount_sqws5_112",$a="_newSessionBtn_sqws5_117",Da="_workspaceSessions_sqws5_129",M={wrap:xa,header:va,list:ka,item:Ia,active:Ca,title:Ta,meta:ja,menuBtn:Ea,workspaceGroup:Na,workspaceHeader:Ra,workspaceChevron:qa,workspaceIcon:Ba,workspaceLabel:Aa,workspaceCount:Ma,newSessionBtn:$a,workspaceSessions:Da};function Oa({session:t,active:e,onSelect:n,onOpenMenu:s}){return i.jsxs("div",{className:A(M.item,e&&M.active),onClick:n,onContextMenu:o=>{o.preventDefault(),s(o.clientX,o.clientY)},children:[i.jsxs("div",{className:M.title,children:[i.jsx(ba,{status:Sa(t.status),showInactive:!0}),i.jsx("span",{children:t.title})]}),i.jsxs("div",{className:M.meta,children:[t.cwd||"~"," · ",t.agentId?t.agentId.slice(0,8):"new"," ·"," ",t.userMessageCount," msgs"]}),i.jsx("button",{type:"button",className:M.menuBtn,title:"Actions",onClick:o=>{o.stopPropagation();const r=o.currentTarget.getBoundingClientRect();s(r.left,r.bottom)},children:i.jsx(ft,{size:14})})]})}const Fa="_trigger_16o4s_1",Pa="_content_16o4s_7",Ha="_item_16o4s_16",za="_danger_16o4s_33",Wa="_sep_16o4s_36",K={trigger:Fa,content:Pa,item:Ha,danger:za,sep:Wa};function La(){const t=k(b=>b.sessionMenu),e=k(b=>b.closeSessionMenu),n=j(b=>b.client),s=w.useRef(null),[o,r]=w.useState(!1);w.useEffect(()=>{r(t!==null)},[t]);const a=D(b=>t?b.sessions[t.sessionId]:void 0);if(!t)return null;const l=!!(a!=null&&a.agentId)&&(a==null?void 0:a.status)==="running";function d(b){r(b),b||e()}function u(){if(!a)return;const b=window.prompt("Rename:",a.title);if(b!=null&&b.trim()){const E=b.trim();D.getState().setTitle(a.id,E),C.getState().updateLabel(z.chat(a.id),E),a.agentId&&(n==null||n.agent(a.agentId).update({title:E}).catch(()=>{}))}e()}function m(){a!=null&&a.agentId&&(n==null||n.agent(a.agentId).interrupt().catch(()=>{})),e()}function h(b){D.getState().remove(b),C.getState().close(z.chat(b))}async function p(){if(a){if(!window.confirm("Archive this agent? It can be resumed later."))return e();if(e(),!a.agentId){h(a.id);return}if(!n){window.alert("Not connected — cannot archive remotely.");return}try{await n.agent(a.agentId).archive(),h(a.id)}catch(b){window.alert(`Failed to archive: ${b instanceof Error?b.message:String(b)}`)}}}async function x(){if(a){if(!window.confirm("Permanently delete this agent? This cannot be undone."))return e();if(e(),!a.agentId){h(a.id);return}if(!n){window.alert("Not connected — cannot delete remotely.");return}try{await n.agent(a.agentId).delete(),h(a.id)}catch(b){window.alert(`Failed to delete: ${b instanceof Error?b.message:String(b)}`)}}}return i.jsxs(_t,{open:o,onOpenChange:d,modal:!1,children:[i.jsx(yt,{asChild:!0,children:i.jsx("button",{ref:s,type:"button",className:K.trigger,style:{left:t.x,top:t.y},"aria-hidden":!0,tabIndex:-1})}),i.jsx(bt,{children:i.jsxs(wt,{className:K.content,align:"start",sideOffset:2,children:[i.jsx(ae,{className:K.item,onSelect:u,children:"Rename"}),i.jsx(ae,{className:K.item,disabled:!l,onSelect:m,children:"Stop agent"}),i.jsx(St,{className:K.sep}),i.jsx(ae,{className:`${K.item} ${K.danger}`,onSelect:p,children:"Archive"}),i.jsx(ae,{className:`${K.item} ${K.danger}`,onSelect:x,children:"Delete permanently"})]})})]})}function Ua({label:t,cwd:e,sessionCount:n,collapsed:s,onToggleCollapsed:o,onNewSession:r}){return i.jsxs("div",{className:M.workspaceHeader,onClick:o,title:e,children:[i.jsx("button",{type:"button",className:M.workspaceChevron,"aria-label":s?"Expand workspace":"Collapse workspace",onClick:a=>{a.stopPropagation(),o()},children:s?i.jsx(ht,{size:13}):i.jsx(gn,{size:13})}),i.jsx(_n,{size:13,className:A(M.workspaceIcon)}),i.jsx("span",{className:M.workspaceLabel,children:t}),i.jsx("span",{className:M.workspaceCount,children:n}),i.jsx(P,{size:"xs",variant:"ghost",iconOnly:!0,title:"New conversation",className:M.newSessionBtn,onClick:a=>{a.stopPropagation(),r()},children:i.jsx(mt,{size:13})})]})}function le(t,e){return e&&(t==="~"||t.startsWith("~/"))?e+t.slice(1):t}function Ut(t,e,n){const s=new Map;for(const o of t){const r=e[o];if(!r)continue;const a=le(r.cwd||"~",n),l=s.get(a);l?l.push(r):s.set(a,[r])}return Array.from(s,([o,r])=>({cwd:o,sessions:r}))}function Ka(t){return!t||t==="~"?"~":t.split("/").filter(Boolean).pop()||t}function Va(){const t=D(S=>S.order),e=D(S=>S.sessions),n=D(S=>S.activeSessionId),s=D(S=>S.activate),o=D(S=>S.createSession),r=C(S=>S.open),a=j(S=>S.status),l=k(S=>S.openSessionMenu),d=k(S=>S.setCwd),u=k(S=>S.openCwdPicker),m=k(S=>S.collapsedWorkspaces),h=k(S=>S.toggleWorkspaceCollapsed),p=Lt();function x(S){const N=le(S||"~",p),v=o(N);r({id:z.chat(v),kind:"chat",label:"New chat",closable:!0,data:{sessionId:v},workspaceCwd:N})}function b(S){s(S);const N=e[S],v=le((N==null?void 0:N.cwd)||"~",p);N!=null&&N.cwd&&d(N.cwd),r({id:z.chat(S),kind:"chat",label:(N==null?void 0:N.title)??"Chat",closable:!0,data:{sessionId:S},workspaceCwd:v})}const E=Ut(t,e,p);return i.jsxs("div",{className:M.wrap,children:[i.jsxs("div",{className:M.header,children:[i.jsx("h3",{children:"Workspaces"}),i.jsx(P,{size:"xs",variant:"ghost",iconOnly:!0,title:a!=="open"?"Connect to open a workspace":"Open a workspace folder",disabled:a!=="open",onClick:()=>u(),children:i.jsx(yn,{size:14})})]}),i.jsx("div",{className:M.list,children:E.map(S=>{const N=m.has(S.cwd);return i.jsxs("div",{className:M.workspaceGroup,children:[i.jsx(Ua,{label:Ka(S.cwd),cwd:S.cwd,sessionCount:S.sessions.length,collapsed:N,onToggleCollapsed:()=>h(S.cwd),onNewSession:()=>x(S.cwd)}),!N&&i.jsx("div",{className:M.workspaceSessions,children:S.sessions.map(v=>i.jsx(Oa,{session:v,active:v.id===n,onSelect:()=>b(v.id),onOpenMenu:(te,we)=>l(v.id,te,we)},v.id))})]},S.cwd)})}),i.jsx(La,{})]})}const Ga="_strip_cnwks_1",Ja="_tab_cnwks_10",Xa="_active_cnwks_26",Ya="_icon_cnwks_30",Qa="_label_cnwks_35",Za="_close_cnwks_40",re={strip:Ga,tab:Ja,active:Xa,icon:Ya,label:Qa,close:Za},ei={chat:xn,file:Sn,diff:wn,terminal:bn};function ti({tab:t}){const e=C(h=>h.activeTabId),n=C(h=>h.activate),s=C(h=>h.close),o=ei[t.kind],{attributes:r,listeners:a,setNodeRef:l,transform:d,transition:u,isDragging:m}=Pn({id:t.id});return i.jsxs("div",{ref:l,className:A(re.tab,t.id===e&&re.active),style:{transform:Hn.Transform.toString(d),transition:u,opacity:m?.5:1},onClick:()=>n(t.id),onAuxClick:h=>{h.button===1&&t.closable&&s(t.id)},title:t.label,...r,...a,children:[i.jsx("span",{className:re.icon,children:i.jsx(o,{size:13})}),i.jsx("span",{className:re.label,children:t.label}),t.closable&&i.jsx("span",{className:re.close,onClick:h=>{h.stopPropagation(),s(t.id)},children:i.jsx(Ee,{size:12})})]})}function ni(){const t=C(a=>a.tabs),e=C(a=>a.activeWorkspaceCwd),n=C(a=>a.reorder),s=t.filter(a=>a.workspaceCwd===e),o=Bn(An(Fn,{activationConstraint:{distance:4}}));function r(a){const{active:l,over:d}=a;!d||l.id===d.id||n(String(l.id),String(d.id))}return i.jsx(Mn,{sensors:o,collisionDetection:$n,onDragEnd:r,children:i.jsx(Dn,{items:s.map(a=>a.id),strategy:On,children:i.jsx("div",{className:re.strip,children:s.map(a=>i.jsx(ti,{tab:a},a.id))})})})}const si="_spinner_1tgzp_3",oi={spinner:si},ri={xs:12,sm:16,md:20,lg:24},ai={xs:1,sm:2,md:2,lg:3};function ii({size:t="md",color:e="currentColor",className:n,"aria-label":s="Loading"}){const o=typeof t=="number"?t:ri[t],r=typeof t=="number"?2:ai[t];return i.jsx("span",{className:`${oi.spinner}${n?` ${n}`:""}`,role:"status","aria-label":s,style:{width:o,height:o,borderWidth:r,color:e}})}const ci=w.lazy(()=>Ue(()=>import("./ChatPanel-DQOK5fa6.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])).then(t=>({default:t.ChatPanel}))),ct=w.lazy(()=>Ue(()=>import("./FilePanel-DnnJgqr5.js").then(t=>t.F),__vite__mapDeps([14,1,7,6,5,2,9,10,15])).then(t=>({default:t.FilePanel}))),li=w.lazy(()=>Ue(()=>import("./TerminalPanel-wkhcCby8.js"),__vite__mapDeps([16,1,17,18,7,6,5,2,3,11,12,19])).then(t=>({default:t.TerminalPanel}))),di={chat:ci,file:ct,diff:ct,terminal:li},ui="_area_1vzxd_1",pi="_panel_1vzxd_7",fi="_active_1vzxd_14",hi="_empty_1vzxd_17",he={area:ui,panel:pi,active:fi,empty:hi};function mi(){const t=C(o=>o.tabs),e=C(o=>o.activeTabId),n=C(o=>o.activeWorkspaceCwd);return t.some(o=>o.workspaceCwd===n)?i.jsx("div",{className:he.area,children:t.map(o=>{const r=di[o.kind];return i.jsx("div",{className:A(he.panel,o.id===e&&he.active),children:i.jsx(w.Suspense,{fallback:i.jsx(ii,{size:"md"}),children:i.jsx(r,{tab:o})})},o.id)})}):i.jsx("div",{className:he.area,children:i.jsx("div",{className:he.empty,children:"No open tabs in this workspace"})})}const Kt={fileRead:t=>["file","read",t],fileDownload:t=>["file","download",t],fileDiff:(t,e,n)=>["file","diff",t,e,n],explorer:t=>["explorer",t],agentList:()=>["agents","list"],agentTimeline:t=>["agents","timeline",t]};function gi(t){const e=t.kind==="directory"||t.type==="directory"?"directory":"file";return{name:t.name??"",kind:e,size:t.size,mtimeMs:t.mtimeMs}}function _i(t){return t.slice().sort((e,n)=>e.kind!==n.kind?e.kind==="directory"?-1:1:e.name.localeCompare(n.name))}async function Vt(t,e){const s=(await t.connection.request("file_explorer_request",{path:e})).result;if(!s||s.ok===!1)throw new Error(s&&"error"in s?s.error:"explorer request failed");const o="entries"in s?s.entries??[]:[];return{path:s.resolvedPath??e,entries:_i(o.map(gi))}}function yi(t,e=!0){const n=j(s=>s.client);return cn({queryKey:Kt.explorer(t),queryFn:()=>{if(!n)throw new Error("not connected");return Vt(n,t)},enabled:!!n&&!!t&&e})}function bi(t){const e=j(o=>o.client),n=w.useMemo(()=>Array.from(t),[t]),s=ln({queries:n.map(o=>({queryKey:Kt.explorer(o),queryFn:()=>{if(!e)throw new Error("not connected");return Vt(e,o)},enabled:!!e&&!!o}))});return w.useMemo(()=>{const o=new Map;return n.forEach((r,a)=>{const l=s[a];o.set(r,{listing:l==null?void 0:l.data,isLoading:!!(l!=null&&l.isLoading),isError:!!(l!=null&&l.isError),error:l==null?void 0:l.error})}),o},[n,s])}const lt=new WeakMap;function dt(t){let e=lt.get(t);return e||(e=new Tr(t),e.start(),lt.set(t,e)),e}function wi(t,e,n){const s=new Blob([Uint8Array.from(t)],{type:n||"application/octet-stream"}),o=URL.createObjectURL(s),r=document.createElement("a");r.href=o,r.download=e,r.rel="noopener",document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(o),0)}function Gt(){const t=j(o=>o.daemon),e=Le(),n=w.useCallback(async(o,r)=>{if(!t)throw new Error("not connected");const a=o?`${o}/${r.name}`:r.name,l=new Uint8Array(await r.arrayBuffer());await dt(t).upload(a,l),await e.invalidateQueries({queryKey:["explorer"]})},[t,e]),s=w.useCallback(async o=>{if(!t)throw new Error("not connected");const r=await dt(t).download(o);wi(r.bytes,r.fileName||o.split("/").pop()||"download",r.mimeType)},[t]);return{upload:n,saveToDisk:s}}function Si(t,e){return t.endsWith("/")?`${t}${e}`:`${t}/${e}`}function Jt(t,e,n,s,o){var a;const r=o.get(e);if(!r||r.isLoading){t.push({kind:"loading",path:e,depth:n});return}if(r.isError){const l=r.error instanceof Error?r.error.message:"failed to load";t.push({kind:"error",path:e,depth:n,message:l});return}for(const l of((a=r.listing)==null?void 0:a.entries)??[])xi(t,e,l,n,s,o)}function xi(t,e,n,s,o,r){const a=Si(e,n.name);if(n.kind!=="directory"){t.push({kind:"file",path:a,name:n.name,depth:s});return}const l=o.has(a);t.push({kind:"directory",path:a,name:n.name,depth:s,expanded:l}),l&&Jt(t,a,s+1,o,r)}function vi(t,e,n){if(!t)return[];const s=[];return Jt(s,t,0,e,n),s}const ki="_container_yg965_1",Ii="_header_yg965_7",Ci="_uploadButton_yg965_13",Ti="_hiddenInput_yg965_32",ji="_status_yg965_35",Ei="_statusError_yg965_36",Ni="_rowAction_yg965_49",Ri="_item_yg965_64",qi="_dropOverlay_yg965_67",Bi="_list_yg965_82",Ai="_chevronSlot_yg965_101",Mi="_chevron_yg965_101",$i="_chevronOpen_yg965_112",Di="_icon_yg965_115",Oi="_name_yg965_122",Fi="_dirName_yg965_127",Pi="_statusRow_yg965_133",Hi="_statusRowError_yg965_144",zi="_emptyState_yg965_147",R={container:ki,header:Ii,uploadButton:Ci,hiddenInput:Ti,status:ji,statusError:Ei,rowAction:Ni,item:Ri,dropOverlay:qi,list:Bi,chevronSlot:Ai,chevron:Mi,chevronOpen:$i,icon:Di,name:Oi,dirName:Fi,statusRow:Pi,statusRowError:Hi,emptyState:zi},Wi=14;function Li({row:t,onToggle:e,onOpenFile:n,onContextMenu:s}){const o={paddingLeft:8+t.depth*Wi};if(t.kind==="loading")return i.jsx("div",{className:R.statusRow,style:o,children:"Loading…"});if(t.kind==="error")return i.jsx("div",{className:A(R.statusRow,R.statusRowError),style:o,children:t.message??"failed to load"});const r=t.kind==="directory";return i.jsxs("div",{className:R.item,style:o,onClick:()=>r?e(t.path):n(t.path),onContextMenu:a=>{a.preventDefault(),s(t.path,r,a.clientX,a.clientY)},children:[i.jsx("span",{className:R.chevronSlot,children:r&&i.jsx(ht,{size:12,className:A(R.chevron,t.expanded&&R.chevronOpen)})}),i.jsx("span",{className:R.icon,children:r?i.jsx(gt,{size:14}):i.jsx(vn,{size:14})}),i.jsx("span",{className:r?R.dirName:R.name,children:t.name}),i.jsx("button",{type:"button",className:R.rowAction,title:"Actions",onClick:a=>{a.stopPropagation();const l=a.currentTarget.getBoundingClientRect();s(t.path,r,l.left,l.bottom)},children:i.jsx(ft,{size:12})})]})}const Ui="_trigger_g81d7_1",Ki="_content_g81d7_7",Vi="_item_g81d7_16",Gi="_danger_g81d7_29",Ji="_sep_g81d7_32",ne={trigger:Ui,content:Ki,item:Vi,danger:Gi,sep:Ji};function Xi(){const t=k(p=>p.fileMenu),e=k(p=>p.closeFileMenu),n=j(p=>p.client),{saveToDisk:s}=Gt(),o=Le(),r=w.useRef(null),[a,l]=w.useState(!1);if(w.useEffect(()=>{l(t!==null)},[t]),!t)return null;const d=t.path.split("/").pop()||t.path;function u(p){l(p),p||e()}async function m(){if(t){e();try{await s(t.path)}catch(p){window.alert(`Failed to download: ${p instanceof Error?p.message:String(p)}`)}}}async function h(){if(!t)return;const p=t.isDirectory?"folder (and everything inside it)":"file";if(!window.confirm(`Permanently delete this ${p}? "${d}" — this cannot be undone.`))return e();if(e(),!n){window.alert("Not connected — cannot delete remotely.");return}try{const x=await n.connection.request("file_delete_request",{path:t.path});if(!x.ok)throw new Error(x.error??"delete failed");await o.invalidateQueries({queryKey:["explorer"]})}catch(x){window.alert(`Failed to delete: ${x instanceof Error?x.message:String(x)}`)}}return i.jsxs(_t,{open:a,onOpenChange:u,modal:!1,children:[i.jsx(yt,{asChild:!0,children:i.jsx("button",{ref:r,type:"button",className:ne.trigger,style:{left:t.x,top:t.y},"aria-hidden":!0,tabIndex:-1})}),i.jsx(bt,{children:i.jsxs(wt,{className:ne.content,align:"start",sideOffset:2,children:[!t.isDirectory&&i.jsx(ae,{className:ne.item,onSelect:m,children:"Download"}),i.jsx(St,{className:ne.sep}),i.jsx(ae,{className:`${ne.item} ${ne.danger}`,onSelect:h,children:"Delete"})]})})]})}const Yi=24;function Qi(){const t=j(y=>y.client),e=Ce(y=>y.rootPath),n=Ce(y=>y.expanded),s=Ce(y=>y.setRoot),o=Ce(y=>y.toggle),r=C(y=>y.activeWorkspaceCwd),a=C(y=>y.open),{upload:l}=Gt(),d=k(y=>y.openFileMenu),[u,m]=w.useState(null),[h,p]=w.useState(!1),[x,b]=w.useState(null),E=w.useRef(null),S=w.useRef(null),N=w.useRef(null);w.useEffect(()=>{if(!t)return;const y=r||"~";N.current!==y&&(N.current=y,ha(t,y).then(B=>s(B)))},[t,r,s]);const v=bi(n),te=w.useMemo(()=>vi(e,n,v),[e,n,v]),we=dn({count:te.length,getScrollElement:()=>S.current,estimateSize:()=>Yi,overscan:12,getItemKey:y=>{var B;return((B=te[y])==null?void 0:B.path)??y}});function Qt(y){a({id:z.file(y),kind:"file",label:y.split("/").pop()||y,closable:!0,data:{path:y},workspaceCwd:r||"~"})}async function Je(y,B){var Se;if(!B.length||!y)return;const X=(Se=v.get(y))==null?void 0:Se.listing,Re=new Set((X==null?void 0:X.entries.map(W=>W.name))??[]),de=B.filter(W=>Re.has(W.name));if(de.length>0){const W=de.map(tn=>tn.name).join(", ");if(!window.confirm(`Overwrite ${de.length>1?"these files":"this file"}? ${W}`))return}m({text:`Uploading ${B.length} file${B.length>1?"s":""}…`,error:!1});try{for(const W of B)await l(y,W);m({text:`Uploaded ${B.length} file${B.length>1?"s":""}`,error:!1})}catch(W){m({text:`Upload failed: ${W instanceof Error?W.message:"unknown"}`,error:!0})}}function Zt(y){y.preventDefault(),p(!1);const B=x??e;b(null);const X=Array.from(y.dataTransfer.files);Je(B,X)}function en(y){y.dataTransfer.types.includes("Files")&&(y.preventDefault(),p(!0))}return t?i.jsxs("div",{className:R.container,onDragOver:en,onDragLeave:()=>p(!1),onDrop:Zt,children:[i.jsxs("div",{className:R.header,children:[i.jsxs("button",{type:"button",className:R.uploadButton,onClick:()=>{var y;return(y=E.current)==null?void 0:y.click()},disabled:!e,title:"Upload files to the workspace root",children:[i.jsx(kn,{size:12}),i.jsx("span",{children:"Upload"})]}),i.jsx("input",{ref:E,type:"file",multiple:!0,className:R.hiddenInput,onChange:y=>{Je(e,Array.from(y.target.files??[])),y.target.value=""}})]}),u&&i.jsx("div",{className:u.error?R.statusError:R.status,children:u.text}),i.jsxs("div",{className:R.list,ref:S,children:[te.length===0&&i.jsx("div",{className:R.emptyState,children:"No files loaded"}),i.jsx("div",{style:{position:"relative",height:we.getTotalSize()},children:we.getVirtualItems().map(y=>{const B=te[y.index];return B?i.jsx("div",{"data-index":y.index,style:{position:"absolute",top:0,left:0,width:"100%",height:y.size,transform:`translateY(${y.start}px)`},onDragEnter:()=>{B.kind==="directory"&&b(B.path)},children:i.jsx(Li,{row:B,onToggle:o,onOpenFile:Qt,onContextMenu:(X,Re,de,Se)=>d(X,Re,de,Se)})},y.key):null})})]}),h&&i.jsx("div",{className:R.dropOverlay,children:"Drop to upload"}),i.jsx(Xi,{})]}):i.jsx("div",{className:R.emptyState,children:"Connect to browse files"})}const We=ee()(t=>({subscribedCwd:null,changes:[],setSubscribedCwd:e=>t({subscribedCwd:e}),applyProjection:e=>{if(!e||!e.available){t({changes:[]});return}const n=[];for(const s of e.staged)n.push({path:s.path,status:s.indexStatus==="A"?"added":s.indexStatus==="D"?"deleted":"modified",staged:!0});for(const s of e.unstaged)n.push({path:s.path,status:s.worktreeStatus==="D"?"deleted":"modified",staged:!1});for(const s of e.untracked)n.push({path:s,status:"added",staged:!1});t({changes:n})}}));function Zi(t){return typeof t=="object"&&t!==null&&"type"in t&&t.type==="checkout_status_update"&&"cwd"in t&&typeof t.cwd=="string"&&"projection"in t&&typeof t.projection=="object"&&t.projection!==null}function ec(t){const e=j(r=>r.client),n=We(r=>r.applyProjection),s=We(r=>r.setSubscribedCwd),o=w.useRef(e);return o.current=e,w.useEffect(()=>{if(!e||!t)return;let r=!1;e.connection.request("checkout_status_subscribe",{cwd:t}).catch(()=>{}),s(t);const a=e.connection.onSessionMessage(l=>{if(r)return;const d=l;Zi(d)&&d.cwd===t&&n(d.projection)});return e.connection.request("checkout_refresh_request",{cwd:t}).catch(()=>{}),()=>{r=!0,a(),e.connection.request("checkout_status_unsubscribe",{cwd:t}).catch(()=>{}),s(null)}},[e,t,n,s]),{refresh(){const r=o.current;!r||!t||r.connection.request("checkout_refresh_request",{cwd:t}).catch(()=>{})}}}const tc="_list_1pgby_1",nc="_summary_1pgby_4",sc="_item_1pgby_11",oc="_badge_1pgby_23",rc="_added_1pgby_30",ac="_modified_1pgby_34",ic="_deleted_1pgby_38",cc="_name_1pgby_42",lc="_emptyState_1pgby_47",Q={list:tc,summary:nc,item:sc,badge:oc,added:rc,modified:ac,deleted:ic,name:cc,emptyState:lc},dc={added:"A",modified:"M",deleted:"D"};function uc(){const e=C(r=>r.activeWorkspaceCwd)||"~";ec(e);const n=We(r=>r.changes),s=C(r=>r.open);function o(r,a){s({id:z.diff(r,a),kind:"diff",label:r.split("/").pop()||r,closable:!0,data:{path:r,staged:a},workspaceCwd:e})}return n.length===0?i.jsx("div",{className:Q.emptyState,children:"No changes detected"}):i.jsxs("div",{className:Q.list,children:[i.jsxs("div",{className:Q.summary,children:[n.length," changed file",n.length===1?"":"s"]}),n.map((r,a)=>i.jsxs("div",{className:Q.item,onClick:()=>o(r.path,r.staged),children:[i.jsx("span",{className:A(Q.badge,Q[r.status]),children:dc[r.status]}),i.jsx("span",{className:Q.name,children:r.path})]},`${r.path}-${r.staged}-${a}`))]})}const Xt=ee()(t=>({terminals:[],setTerminals:e=>t({terminals:e})}));function pc(t){return typeof t=="object"&&t!==null&&"type"in t&&t.type==="terminals_update"&&"terminals"in t&&Array.isArray(t.terminals)}function fc(){const t=j(n=>n.client),e=Xt(n=>n.setTerminals);w.useEffect(()=>{if(!t){e([]);return}let n=!1;t.connection.request("subscribe_terminals_request",{}).then(o=>{n||e(o.terminals??[])}).catch(()=>{});const s=t.connection.onSessionMessage(o=>{if(n)return;const r=o;pc(r)&&e(r.terminals)});return()=>{n=!0,s(),t.connection.request("unsubscribe_terminals_request",{}).catch(()=>{})}},[t,e])}const hc="_wrap_sx7p7_1",mc="_newTerminal_sx7p7_5",gc="_list_sx7p7_10",_c="_summary_sx7p7_13",yc="_item_sx7p7_20",bc="_reattach_sx7p7_30",wc="_icon_sx7p7_45",Sc="_name_sx7p7_49",xc="_openBadge_sx7p7_54",vc="_kill_sx7p7_62",kc="_emptyState_sx7p7_80",O={wrap:hc,newTerminal:mc,list:gc,summary:_c,item:yc,reattach:bc,icon:wc,name:Sc,openBadge:xc,kill:vc,emptyState:kc};function Ic(){fc();const t=j(h=>h.client),e=Xt(h=>h.terminals),n=C(h=>h.tabs),s=C(h=>h.activeWorkspaceCwd),o=C(h=>h.open),r=C(h=>h.activate),a=C(h=>h.close);function l(h){return n.find(p=>p.kind==="terminal"&&p.data.slot===h)}function d(h,p,x){const b=l(h);if(b){r(b.id);return}const E=x||"~";o({id:z.terminal(h),kind:"terminal",label:p,closable:!0,data:{slot:h,cwd:E},workspaceCwd:E})}function u(h){const p=l(h);if(p){a(p.id);return}t&&t.connection.request("kill_terminal_request",{slot:h}).catch(()=>{})}const m=i.jsx(P,{variant:"secondary",size:"sm",leftIcon:i.jsx(mt,{size:14}),className:O.newTerminal,onClick:()=>Wt(s||"~"),children:"New terminal"});return e.length===0?i.jsxs("div",{className:O.wrap,children:[m,i.jsx("div",{className:O.emptyState,children:"No terminals running"})]}):i.jsxs("div",{className:O.wrap,children:[m,i.jsxs("div",{className:O.list,children:[i.jsxs("div",{className:O.summary,children:[e.length," terminal",e.length===1?"":"s"," running"]}),e.map(h=>{const p=l(h.slot)!==void 0;return i.jsxs("div",{className:O.item,children:[i.jsxs("button",{type:"button",className:O.reattach,onClick:()=>d(h.slot,h.name,h.cwd),title:h.cwd,children:[i.jsx(In,{size:13,className:O.icon}),i.jsx("span",{className:O.name,children:h.name}),p&&i.jsx("span",{className:O.openBadge,children:"open"})]}),i.jsx("button",{type:"button",className:O.kill,onClick:()=>u(h.slot),title:"Kill terminal",children:i.jsx(Ee,{size:13})})]},h.slot)})]})]})}const Cc="_wrap_r37ok_1",Tc="_tabBar_r37ok_7",jc="_tabBtn_r37ok_13",Ec="_active_r37ok_26",Nc="_refreshBtn_r37ok_30",Rc="_content_r37ok_34",L={wrap:Cc,tabBar:Tc,tabBtn:jc,active:Ec,refreshBtn:Nc,content:Rc};function qc(){const t=k(l=>l.rightSidebarTab),e=k(l=>l.setRightSidebarTab),s=C(l=>l.activeWorkspaceCwd)||"~",o=j(l=>l.client),r=Le();function a(){r.invalidateQueries({queryKey:["explorer"]}),o&&s&&o.connection.request("checkout_refresh_request",{cwd:s}).catch(()=>{})}return i.jsxs("div",{className:L.wrap,children:[i.jsxs("div",{className:L.tabBar,children:[i.jsx("button",{type:"button",className:A(L.tabBtn,t==="files"&&L.active),onClick:()=>e("files"),children:"Files"}),i.jsx("button",{type:"button",className:A(L.tabBtn,t==="changes"&&L.active),onClick:()=>e("changes"),children:"Changes"}),i.jsx("button",{type:"button",className:A(L.tabBtn,t==="terminals"&&L.active),onClick:()=>e("terminals"),children:"Terminals"}),t!=="terminals"&&i.jsx(P,{size:"xs",variant:"ghost",iconOnly:!0,title:"Refresh",className:L.refreshBtn,onClick:a,children:i.jsx(Cn,{size:13})})]}),i.jsx("div",{className:L.content,children:t==="files"?i.jsx(Qi,{}):t==="changes"?i.jsx(uc,{}):i.jsx(Ic,{})})]})}const Bc="_wrapper_131x2_3",Ac="_box_131x2_18",Mc="_checkmark_131x2_36",$c="_nativeInput_131x2_41",Te={wrapper:Bc,box:Ac,checkmark:Mc,nativeInput:$c};w.forwardRef(function({label:e,checked:n=!1,disabled:s,className:o,onChange:r,...a},l){return i.jsxs("label",{className:Te.wrapper,"data-disabled":s||void 0,children:[i.jsx("input",{ref:l,type:"checkbox",className:Te.nativeInput,checked:n,disabled:s,onChange:r,...a}),i.jsx("span",{className:Te.box,"data-checked":n,"aria-hidden":!0,children:n&&i.jsx(Tn,{size:12,className:Te.checkmark})}),e&&i.jsx("span",{children:e})]})});const Dc="_select_vj45v_3",Oc={select:Dc};w.forwardRef(function({options:e,placeholder:n,className:s,...o},r){return i.jsxs("select",{ref:r,className:A(Oc.select,s),...o,children:[n&&i.jsx("option",{value:"",disabled:!0,children:n}),e.map(a=>i.jsx("option",{value:a.value,children:a.label},a.value))]})});const Fc="_overlay_1yaef_1",Pc="_contentWrapper_1yaef_7",Hc="_dialog_1yaef_16",zc="_header_1yaef_28",Wc="_title_1yaef_36",Lc="_closeBtn_1yaef_43",Uc="_body_1yaef_57",Kc="_footer_1yaef_63",Vc="_bare_1yaef_72",Gc="_bareBody_1yaef_78",Jc="_bareCloseBtn_1yaef_82",Xc="_visuallyHidden_1yaef_101",F={overlay:Fc,contentWrapper:Pc,dialog:Hc,header:zc,title:Wc,closeBtn:Lc,body:Uc,footer:Kc,bare:Vc,bareBody:Gc,bareCloseBtn:Jc,visuallyHidden:Xc},Yc=$e;function Qc({open:t,onOpenChange:e,title:n,children:s,footer:o,width:r,className:a,bare:l=!1}){return i.jsx(En,{open:t,onOpenChange:e,children:i.jsxs(Nn,{children:[i.jsx(Rn,{className:F.overlay}),i.jsx("div",{className:F.contentWrapper,children:i.jsxs(qn,{className:A(F.dialog,l&&F.bare,a),style:r!==void 0?{width:r}:void 0,children:[l?i.jsx(Xe,{className:F.visuallyHidden,children:n}):i.jsxs("div",{className:F.header,children:[i.jsx(Xe,{className:F.title,children:n}),i.jsx($e,{asChild:!0,children:i.jsx("button",{type:"button",className:F.closeBtn,"aria-label":"Close",children:i.jsx(Ee,{size:16})})})]}),i.jsx("div",{className:A(F.body,l&&F.bareBody),children:s}),l&&i.jsx($e,{asChild:!0,children:i.jsx("button",{type:"button",className:F.bareCloseBtn,"aria-label":"Close",children:i.jsx(Ee,{size:16})})}),o&&i.jsx("div",{className:F.footer,children:o})]})})]})})}const Zc="_handle_1ocv1_1",el={handle:Zc};function ut({side:t,onResize:e,className:n}){const s=w.useRef(0),o=w.useCallback(l=>{const d=l.clientX-s.current;s.current=l.clientX,e(t==="left"?d:-d)},[e,t]),r=w.useCallback(l=>{var d,u;window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",r),document.body.style.cursor="",document.body.style.userSelect="",(u=(d=l.target)==null?void 0:d.releasePointerCapture)==null||u.call(d,l.pointerId)},[o]);function a(l){l.preventDefault(),s.current=l.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("pointermove",o),window.addEventListener("pointerup",r)}return i.jsx("div",{className:A(el.handle,n),onPointerDown:a,role:"separator","aria-orientation":"vertical"})}function tl(t,e){var m;const{order:n,sessions:s,createSession:o,activate:r}=D.getState(),l=Ut(n,s,e).find(h=>h.cwd===t),d=((m=l==null?void 0:l.sessions[0])==null?void 0:m.id)??o(t);r(d);const u=D.getState().sessions[d];C.getState().open({id:z.chat(d),kind:"chat",label:(u==null?void 0:u.title)??"New chat",closable:!0,data:{sessionId:d},workspaceCwd:t}),k.getState().setCwd(t)}const nl="_pathRow_9xphl_1",sl="_pathInput_9xphl_9",ol="_list_9xphl_13",rl="_item_9xphl_20",al="_name_9xphl_32",il="_emptyState_9xphl_37",G={pathRow:nl,pathInput:sl,list:ol,item:rl,name:al,emptyState:il};function cl(){const t=k(v=>v.cwdPickerOpen),e=k(v=>v.closeCwdPicker),n=C(v=>v.activeWorkspaceCwd),s=j(v=>v.client),o=Lt(),[r,a]=w.useState("/"),[l,d]=w.useState("/");w.useEffect(()=>{if(!t)return;const v=le(n||"~",o);a(v),d(v)},[t,s,n]);const{data:u,isLoading:m,isError:h,error:p}=yi(r,t&&!!s),x=((u==null?void 0:u.entries)??[]).filter(v=>v.kind==="directory");function b(v){a(v),d(v)}function E(){b(r.split("/").slice(0,-1).join("/")||"/")}function S(){b(l.trim())}function N(){tl(r,o),e()}return i.jsxs(Qc,{open:t,onOpenChange:v=>!v&&e(),title:"Open Workspace",footer:i.jsxs(i.Fragment,{children:[i.jsx(Yc,{asChild:!0,children:i.jsx(P,{size:"sm",variant:"secondary",children:"Cancel"})}),i.jsx(P,{size:"sm",onClick:N,children:"Open this folder"})]}),children:[i.jsxs("div",{className:G.pathRow,children:[i.jsx(P,{size:"xs",variant:"ghost",iconOnly:!0,title:"Up",onClick:E,children:i.jsx(jn,{size:13})}),i.jsx(Oe,{className:G.pathInput,value:l,onChange:v=>d(v.target.value),onKeyDown:v=>{v.key==="Enter"&&(v.preventDefault(),S())}}),i.jsx(P,{size:"xs",onClick:S,children:"Go"})]}),i.jsx("div",{className:G.list,children:m?i.jsx("div",{className:G.emptyState,children:"Loading..."}):h?i.jsxs("div",{className:G.emptyState,children:["Error: ",p instanceof Error?p.message:"unknown error"]}):x.length===0?i.jsx("div",{className:G.emptyState,children:"No subdirectories"}):x.map(v=>i.jsxs("div",{className:G.item,onClick:()=>b(r==="/"?`/${v.name}`:`${r}/${v.name}`),children:[i.jsx(gt,{size:14}),i.jsx("span",{className:G.name,children:v.name})]},v.name))})]})}const ll="_shell_1m1nv_1",dl="_main_1m1nv_7",ul="_sidebarLeft_1m1nv_13",pl="_leftHandle_1m1nv_21",fl="_center_1m1nv_24",hl="_sidebarRight_1m1nv_31",ml="_rightHandle_1m1nv_39",Z={shell:ll,main:dl,sidebarLeft:ul,leftHandle:pl,center:fl,sidebarRight:hl,rightHandle:ml};function gl(){const t=k(a=>a.leftSidebarCollapsed),e=k(a=>a.rightSidebarCollapsed),n=k(a=>a.leftSidebarWidth),s=k(a=>a.rightSidebarWidth),o=k(a=>a.resizeLeftSidebar),r=k(a=>a.resizeRightSidebar);return i.jsxs("div",{className:Z.shell,children:[i.jsx(Yr,{}),i.jsxs("div",{className:Z.main,children:[!t&&i.jsxs("aside",{className:Z.sidebarLeft,style:{width:n},children:[i.jsx(Va,{}),i.jsx(ut,{side:"left",className:Z.leftHandle,onResize:o})]}),i.jsxs("div",{className:Z.center,children:[i.jsx(ni,{}),i.jsx(mi,{})]}),!e&&i.jsxs("aside",{className:Z.sidebarRight,style:{width:s},children:[i.jsx(ut,{side:"right",className:Z.rightHandle,onResize:r}),i.jsx(qc,{})]})]}),i.jsx(cl,{})]})}function _l(){const t=w.useRef(!1);w.useEffect(()=>{if(t.current)return;if(t.current=!0,window.location.hash.includes("offer=")){const d=window.location.href;k.getState().setHost(d),j.getState().connect({url:d});return}const e=new URLSearchParams(window.location.search),n=e.get("host"),s=e.get("pair"),o=e.get("password"),r=e.get("cwd"),a=e.get("connect")==="1",l=k.getState();if(s?l.setHost(s):n&&l.setHost(n),o&&l.setPassword(o),r&&l.setCwd(r),s)j.getState().connect({url:s});else if(a){const{host:d,password:u}=k.getState();j.getState().connect({url:d,password:u||void 0})}},[])}function yl(t){return typeof t=="object"&&t!==null&&"kind"in t}function bl(t){const e=[];for(const n of t)if(yl(n))if(n.kind==="other")n.event&&e.push(n.event);else for(const s of n.events??[])e.push(s);return e}function wl(){const t=j(s=>s.client),e=j(s=>s.status),n=w.useRef(!1);w.useEffect(()=>{e!=="open"||!t||n.current||(n.current=!0,(async()=>{var d;let s=[];try{s=(await t.connection.request("list_agents_request",{all:!1})).agents??[]}catch{s=[]}s.sort((u,m)=>(m.lastActivity??0)-(u.lastActivity??0));const o=D.getState();for(const u of s){if(o.findByAgentId(u.agentId))continue;let m=He;try{const h=await t.agent(u.agentId).timeline.fetch({direction:"after",limit:200});m=bl(h.items).reduce(zt,He)}catch{}o.hydrate({id:`s-${u.agentId.slice(0,12)}`,agentId:u.agentId,title:u.title||((d=u.cwd)==null?void 0:d.split("/").pop())||"Restored",status:u.status??"idle",cwd:u.cwd||"~",timeline:m,userMessageCount:m.rows.filter(h=>h.kind==="user").length})}const r=await Ge(t).catch(()=>null),{order:a,sessions:l}=D.getState();if(a.length>0){const u=l[a[0]??""];if(u){const m=le(u.cwd||"~",r);D.getState().activate(u.id),k.getState().setCwd(u.cwd),C.getState().open({id:z.chat(u.id),kind:"chat",label:u.title,closable:!0,data:{sessionId:u.id},workspaceCwd:m})}}else{const u=k.getState().cwd||"~",m=le(u,r),h=D.getState().createSession(u);C.getState().open({id:z.chat(h),kind:"chat",label:"New chat",closable:!0,data:{sessionId:h},workspaceCwd:m})}})())},[e,t])}function Sl(){w.useEffect(()=>{function t(e){const n=k.getState();if(e.key==="Escape"){n.closeCwdPicker(),n.closeSessionMenu();return}const s=e.ctrlKey||e.metaKey;if(s&&e.key.toLowerCase()==="t"){e.preventDefault(),Wt(C.getState().activeWorkspaceCwd||"~");return}if(s&&e.key.toLowerCase()==="w"){const{activeTabId:o,tabs:r,close:a}=C.getState();if(!o)return;const l=r.find(d=>d.id===o);(l==null?void 0:l.closable)!==!1&&(e.preventDefault(),a(o))}}return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[])}function xl(){return _l(),wl(),Sl(),null}function vl(){return i.jsxs(Ns,{children:[i.jsx(xl,{}),i.jsx(gl,{})]})}const Yt=document.getElementById("root");if(!Yt)throw new Error("Missing #root element");on.createRoot(Yt).render(i.jsx(w.StrictMode,{children:i.jsx(vl,{})}));export{P as B,Qc as D,ii as S,Bl as T,j as a,C as b,dt as c,Al as e,Kt as r,Qr as t,D as u};
|
|
3
|
-
//# sourceMappingURL=index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatPanel-B_B_2aOA.js","assets/vendor-react-BoIQBqDW.js","assets/vendor-query-AtKBh_Yt.js","assets/vendor-icons-DwowToH7.js","assets/markdown-D9FuaV1m.js","assets/vendor-highlight-DCzuSv8g.js","assets/vendor-markdown-B8HSIhaA.js","assets/vendor--os7hw7d.js","assets/markdown-BQwXm0MF.css","assets/DiffView-DlVCPvLc.js","assets/DiffView-CRbeRztO.css","assets/vendor-overlays-UwLNGk04.js","assets/vendor-dnd-D9kA7FgH.js","assets/ChatPanel-Cz7YoXXW.css","assets/FilePanel-Hla4aEUX.js","assets/FilePanel-DIInFr3h.css","assets/TerminalPanel-CpqJXnEn.js","assets/vendor-terminal-BhzX2_ts.js","assets/vendor-terminal-DYP7pi_n.css","assets/TerminalPanel-BQj62G6N.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
var nn=Object.defineProperty;var sn=(t,e,n)=>e in t?nn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var I=(t,e,n)=>sn(t,typeof e!="symbol"?e+"":e,n);import{r as w,j as i,d as on}from"./vendor-react-BoIQBqDW.js";import{Q as rn,a as an,u as cn,b as ln,c as Le,d as dn}from"./vendor-query-AtKBh_Yt.js";import{A as c,B as f,C as A,D as pt,E as T,F as be,G as V,H as q,I as _,J as $,K as U,L as Ne,M as ce,N as ee}from"./vendor--os7hw7d.js";import{L as un,P as pn,a as fn,b as hn,c as mn,E as ft,C as ht,d as gn,F as _n,e as mt,f as yn,S as bn,G as wn,g as Sn,M as xn,X as Ee,h as gt,i as vn,U as kn,T as In,R as Cn,j as Tn,A as jn}from"./vendor-icons-DwowToH7.js";import{R as _t,T as yt,P as bt,C as wt,I as ae,S as St,D as En,a as Nn,b as Rn,c as qn,d as Xe,e as $e}from"./vendor-overlays-UwLNGk04.js";import{u as Bn,a as An,D as Mn,c as $n,S as Dn,h as On,P as Fn,b as Pn,C as Hn}from"./vendor-dnd-D9kA7FgH.js";import{_ as Ue}from"./vendor-highlight-DCzuSv8g.js";import"./vendor-markdown-B8HSIhaA.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const a of r.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&s(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();const zn=new rn;function xt(t){const e=t.trim().replace(/^#/,""),n=e.length===3?e.split("").map(s=>s+s).join(""):e;if(n.length!==6||/[^0-9a-fA-F]/.test(n))throw new Error(`Invalid hex color: ${t}`);return{r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16)}}function Wn(t){return Math.max(0,Math.min(255,Math.round(t)))}function Ln({r:t,g:e,b:n}){const s=o=>Wn(o).toString(16).padStart(2,"0");return`#${s(t)}${s(e)}${s(n)}`}function Un(t){const{r:e,g:n,b:s}=xt(t),o=r=>{const a=r/255;return a<=.03928?a/12.92:((a+.055)/1.055)**2.4};return .2126*o(e)+.7152*o(n)+.0722*o(s)}function Ke(t,e="#18181b",n="#ffffff"){return Un(t)>.45?e:n}function Kn(t,e){const{r:n,g:s,b:o}=xt(t),r=Math.max(0,Math.min(1,e));return Ln({r:n+(255-n)*r,g:s+(255-s)*r,b:o+(255-o)*r})}function xe(t){const e=t.trim().replace(/^#/,"");return(e.length===3||e.length===6)&&!/[^0-9a-fA-F]/.test(e)}const H=(t,e,n,s,o,r,a,l,d,u,m)=>({50:t,100:e,200:n,300:s,400:o,500:r,600:a,700:l,800:d,900:u,950:m}),g={zinc:H("#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#71717a","#52525b","#3f3f46","#27272a","#18181b","#09090b"),gray:H("#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#6b7280","#4b5563","#374151","#1f2937","#111827","#030712"),slate:H("#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#64748b","#475569","#334155","#1e293b","#0f172a","#020617"),blue:H("#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1d4ed8","#1e40af","#1e3a8a","#172554"),green:H("#f0fdf4","#dcfce7","#bbf7d0","#86efac","#4ade80","#22c55e","#16a34a","#15803d","#166534","#14532d","#052e16"),red:H("#fef2f2","#fee2e2","#fecaca","#fca5a5","#f87171","#ef4444","#dc2626","#b91c1c","#991b1b","#7f1d1d","#450a0a"),teal:H("#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#14b8a6","#0d9488","#0f766e","#115e59","#134e4a","#042f2e"),amber:H("#fffbeb","#fef3c7","#fde68a","#fcd34d","#fbbf24","#f59e0b","#d97706","#b45309","#92400e","#78350f","#451a03"),yellow:H("#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#eab308","#ca8a04","#a16207","#854d0e","#713f12","#422006"),purple:H("#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#a855f7","#9333ea","#7e22ce","#6b21a8","#581c87","#3b0764"),orange:H("#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#c2410c","#9a3412","#7c2d12","#431407"),white:"#ffffff",black:"#000000"},Vn={statusSuccess:"#16a34a",statusDanger:"#dc2626",statusWarning:"#f59e0b",statusMerged:"#9333ea"},Gn={statusSuccess:"#15803d",statusDanger:"#b91c1c",statusWarning:"#d97706",statusMerged:"#7c3aed"};function Jn(){return{keyword:g.purple[300],string:g.green[300],number:g.orange[300],boolean:g.orange[300],comment:g.zinc[500],function:g.blue[300],variable:g.zinc[200],type:g.teal[300],class:g.amber[300],constant:g.orange[300],operator:g.zinc[400],punctuation:g.zinc[400],tag:g.red[300],attribute:g.amber[300],property:g.blue[200],regexp:g.teal[300],escape:g.orange[200],heading:g.blue[300],link:g.blue[400],deleted:g.red[400],inserted:g.green[400]}}function Xn(){return{keyword:g.purple[700],string:g.green[700],number:g.orange[700],boolean:g.orange[700],comment:g.zinc[500],function:g.blue[700],variable:g.zinc[800],type:g.teal[700],class:g.amber[700],constant:g.orange[700],operator:g.zinc[600],punctuation:g.zinc[600],tag:g.red[700],attribute:g.amber[700],property:g.blue[700],regexp:g.teal[700],escape:g.orange[700],heading:g.blue[700],link:g.blue[600],deleted:g.red[700],inserted:g.green[700]}}function vt(t,e,n){return{background:t,foreground:e,cursor:n,cursorAccent:t,selectionBackground:"rgba(255,255,255,0.18)",black:g.zinc[900],red:g.red[500],green:g.green[500],yellow:g.amber[500],blue:g.blue[500],magenta:g.purple[500],cyan:g.teal[500],white:g.zinc[300],brightBlack:g.zinc[600],brightRed:g.red[400],brightGreen:g.green[400],brightYellow:g.amber[400],brightBlue:g.blue[400],brightMagenta:g.purple[400],brightCyan:g.teal[400],brightWhite:g.zinc[50]}}function ue(t){const e=g.zinc[50],n=Ke(t.accent);return{surface0:t.surface0,surface1:t.surface1,surface2:t.surface2,surface3:t.surface3,surface4:t.surface4,surfaceDiffEmpty:t.surfaceDiffEmpty,surfaceSidebar:t.surfaceSidebar,surfaceSidebarHover:t.surfaceSidebarHover,surfaceWorkspace:t.surface1,foreground:e,foregroundMuted:t.mutedForeground,accent:t.accent,accentBright:t.accentBright,accentForeground:n,destructive:t.destructive,destructiveForeground:g.white,success:t.accent,successForeground:g.white,border:t.border,borderAccent:t.borderAccent,...Vn,diffAddition:g.green[400],diffDeletion:g.red[500],scrollbarHandle:t.scrollbarHandle,background:t.surface0,popover:t.surface2,popoverForeground:e,primary:t.accent,secondary:t.surface2,muted:t.surface2,mutedForeground:t.mutedForeground,input:t.surface2,ring:t.accent,palette:g,syntax:Jn(),terminal:vt(t.surface0,e,t.accent)}}function Yn(){const t="#1a1a1e",e="#253e6f";return{surface0:"#ffffff",surface1:"#fafafa",surface2:"#f4f4f5",surface3:"#e4e4e7",surface4:"#d4d4d8",surfaceDiffEmpty:"#f6f6f6",surfaceSidebar:"#f4f4f5",surfaceSidebarHover:"#e9e9ec",surfaceWorkspace:"#ffffff",foreground:t,foregroundMuted:"#71717a",accent:e,accentBright:"#2f4f8e",accentForeground:Ke(e),destructive:"#b04138",destructiveForeground:"#ffffff",success:e,successForeground:"#ffffff",border:"#e4e4e7",borderAccent:"#ececf1",...Gn,diffAddition:"#15803d",diffDeletion:"#b91c1c",scrollbarHandle:"#3f3f46",background:"#ffffff",popover:"#ffffff",popoverForeground:t,primary:e,secondary:"#f4f4f5",muted:"#f4f4f5",mutedForeground:"#71717a",input:"#f4f4f5",ring:e,palette:g,syntax:Xn(),terminal:{...vt("#ffffff",t,e),selectionBackground:"rgba(0,0,0,0.15)",white:"#ffffff",brightWhite:"#fafafa"}}}const Qn={light:"#ffffff",dark:"#3b62b0",zinc:"#808080",midnight:"#4A6BA8",claude:"#D97757",ghostty:"#8caaee"},kt=["light","dark","zinc","midnight","claude","ghostty"];function Zn(t){if(t==="light")return Yn();switch(t){case"dark":return ue({surface0:"#181B1A",surface1:"#1E2120",surface2:"#272A29",surface3:"#434645",surface4:"#595B5B",surfaceDiffEmpty:"#252827",surfaceSidebar:"#141716",surfaceSidebarHover:"#1c1f1e",mutedForeground:"#A1A5A4",scrollbarHandle:"#717574",border:"#252B2A",borderAccent:"#2f3135",accent:"#2e5cb8",accentBright:"#a2b4d7",destructive:"#c64f43"});case"zinc":return ue({surface0:"#18181b",surface1:"#1f1f22",surface2:"#27272a",surface3:"#3f3f46",surface4:"#52525b",surfaceDiffEmpty:"#242427",surfaceSidebar:"#131316",surfaceSidebarHover:"#1b1b1e",mutedForeground:"#a1a1aa",scrollbarHandle:"#71717a",border:"#27272a",borderAccent:"#303036",accent:"#e4e4e7",accentBright:"#fafafa",destructive:"#c44a4a"});case"midnight":return ue({surface0:"#161820",surface1:"#1c1e27",surface2:"#252731",surface3:"#3c3e4c",surface4:"#535564",surfaceDiffEmpty:"#222430",surfaceSidebar:"#121420",surfaceSidebarHover:"#1a1c28",mutedForeground:"#9a9db0",scrollbarHandle:"#6b6e82",border:"#242636",borderAccent:"#2e3040",accent:"#3b6fcf",accentBright:"#7eaaeb",destructive:"#c44a52"});case"claude":return ue({surface0:"#1f1f1e",surface1:"#262523",surface2:"#2f2d2b",surface3:"#4a4745",surface4:"#605d5b",surfaceDiffEmpty:"#2a2826",surfaceSidebar:"#1a1918",surfaceSidebarHover:"#222120",mutedForeground:"#ada9a5",scrollbarHandle:"#78746f",border:"#2c2a27",borderAccent:"#36332f",accent:"#d97757",accentBright:"#e89a7f",destructive:"#cf513e"});case"ghostty":return ue({surface0:"#282c34",surface1:"#2f333d",surface2:"#383c48",surface3:"#4a4f5e",surface4:"#5b6175",surfaceDiffEmpty:"#323643",surfaceSidebar:"#21252d",surfaceSidebarHover:"#292d36",mutedForeground:"#c8ccd8",scrollbarHandle:"#a0a4b2",border:"#353a47",borderAccent:"#3f4454",accent:"#89b4fa",accentBright:"#b4d0fc",destructive:"#c44a55"})}}const It={};for(const t of kt){const e=t==="light"?"light":"dark";It[t]={name:t,colorScheme:e,colors:Zn(t),swatch:Qn[t]}}const es=It,ts={0:0,1:4,"1.5":6,2:8,3:12,4:16,6:24,8:32,12:48,16:64,20:80,24:96,32:128},Ct={xs:12,code:12,sm:14,base:16,lg:18,xl:20,"2xl":22,"3xl":26,"4xl":34},ns={normal:"400",medium:"500",semibold:"600",bold:"700"},ss={none:0,sm:2,base:4,md:6,lg:8,xl:12,"2xl":16,full:9999},os={0:0,1:1,2:2},rs={0:0,50:.5,100:1},as={xs:12,sm:14,md:16,lg:20},is={diff:22},Tt='system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',jt='ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace';function cs(t){const e=t==="dark"?"rgba(0,0,0,0.55)":"rgba(24,24,27,0.12)";return{sm:{color:e,offsetX:0,offsetY:1,radius:2,elevation:1},md:{color:e,offsetX:0,offsetY:3,radius:8,elevation:4},lg:{color:e,offsetX:0,offsetY:10,radius:24,elevation:12}}}function Et(t){const e=es[t];return{name:t,colorScheme:e.colorScheme,colors:e.colors,spacing:ts,fontSize:{...Ct},fontFamily:{ui:Tt,mono:jt},lineHeight:{...is},iconSize:as,fontWeight:ns,borderRadius:ss,borderWidth:os,opacity:rs,shadow:cs(e.colorScheme),swatch:e.swatch}}const ls=16,ds=10,us=24;function ps(t,e){const n=e.themeName??t.name,s=Et(n),o=e.uiFont&&e.uiFont.trim()!==""?e.uiFont:Tt,r=e.monoFont&&e.monoFont.trim()!==""?e.monoFont:jt;let a={...s.fontSize};if(e.fontSize!=null){const d=Math.max(ds,Math.min(us,e.fontSize))/ls,u=["xs","code","sm","base","lg","xl","2xl","3xl","4xl"];for(const m of u){const h=Ct[m];a[m]=Math.round(h*d)}}return{...s,fontSize:a,fontFamily:{ui:o,mono:r}}}function fs(t){return Et(t)}const hs="dark";function ms(t){const e={};gs(t.colors,e);for(const[n,s]of Object.entries(t.spacing))e[`--pi-spacing-${n}`]=`${s}px`;for(const[n,s]of Object.entries(t.fontSize))e[`--pi-font-size-${n}`]=`${s}px`;e["--pi-font-ui"]=t.fontFamily.ui,e["--pi-font-mono"]=t.fontFamily.mono,e["--pi-line-height-diff"]=`${t.lineHeight.diff}px`;for(const[n,s]of Object.entries(t.iconSize))e[`--pi-icon-size-${n}`]=`${s}px`;for(const[n,s]of Object.entries(t.fontWeight))e[`--pi-font-weight-${n}`]=String(s);for(const[n,s]of Object.entries(t.borderRadius))e[`--pi-radius-${n}`]=s===9999?"9999px":`${s}px`;for(const[n,s]of Object.entries(t.borderWidth))e[`--pi-border-width-${n}`]=`${s}px`;for(const[n,s]of Object.entries(t.opacity))e[`--pi-opacity-${n}`]=String(s);for(const[n,s]of Object.entries(t.shadow))if(typeof s=="string")e[`--pi-shadow-${n}`]=s;else if(s&&typeof s=="object"){const o=s;e[`--pi-shadow-${n}`]=`${o.offsetX}px ${o.offsetY}px ${o.radius}px ${o.color}`}return e["--pi-color-scheme"]=t.colorScheme,e}function gs(t,e){const{palette:n,syntax:s,terminal:o,...r}=t;for(const[a,l]of Object.entries(r))typeof l=="string"&&(e[`--pi-color-${a}`]=l);s&&_s(s,e),o&&(e["--pi-terminal-bg"]=o.background,e["--pi-terminal-fg"]=o.foreground)}function _s(t,e){for(const[n,s]of Object.entries(t))typeof s=="string"&&(e[`--syntax-${ys(n)}`]=s)}function ys(t){return t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function bs(t){if(typeof document>"u")return;const e=document.documentElement.style;for(const[s,o]of Object.entries(t))e.setProperty(s,o);const n=t["--pi-color-scheme"];n&&document.documentElement.style.setProperty("color-scheme",n)}function ws(t){const e=ms(t);bs(e)}const pe=c().min(1,"Asset path must not be empty"),Ss=f({accent:c().refine(xe,{message:"accent must be a valid #rrggbb hex color"}),accentBright:c().refine(xe,{message:"accentBright must be a valid #rrggbb hex color"}).optional(),accentForeground:c().refine(xe,{message:"accentForeground must be a valid #rrggbb hex color"}).optional(),swatch:c().refine(xe,{message:"swatch must be a valid #rrggbb hex color"}).optional()}),xs=f({logoLight:pe,logoDark:pe,logoMark:pe.optional(),icon:pe,splash:pe.optional()}),vs=f({docs:c().url().optional(),support:c().url().optional(),issues:c().url().optional(),website:c().url().optional()}).optional(),ks=f({copyright:c().optional(),companyName:c().optional()}).optional();f({productName:c().min(1,"productName is required"),shortName:c().optional(),tagline:c().optional(),colors:Ss,assets:xs,links:vs,legal:ks});function Is(t){const e=t.accent,n=t.accentBright??Kn(e,.35),s=t.accentForeground??Ke(e),o=t.swatch??e;return{accent:e,accentBright:n,accentForeground:s,swatch:o}}function Cs(t,e){return{...t,colors:{...t.colors,accent:e.accent,accentBright:e.accentBright,accentForeground:e.accentForeground,primary:e.accent,ring:e.accent},swatch:e.swatch}}const Ye="pi-studio-appearance";function Ts(t,e){let n=l(t),s=null;function o(m){return m==="system"?typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":m}function r(m,h){const p=o(m),x=fs(p);let b=ps(x,{...h,themeName:p});if(e!=null&&e.colors){const E=Is(e.colors);b=Cs(b,E)}return b}function a(){const m=JSON.stringify({mode:n.mode,settings:n.settings});t.set(Ye,m)}function l(m){const h=m.get(Ye);let p=hs,x={};if(h)try{const E=JSON.parse(h);E.mode&&(kt.includes(E.mode)||E.mode==="system")&&(p=E.mode),E.settings&&typeof E.settings=="object"&&(x=E.settings)}catch{}const b=r(p,x);return{mode:p,settings:x,resolvedTheme:b}}function d(){n={...n,resolvedTheme:r(n.mode,n.settings)},a()}const u={getState(){return n},setMode(m){n={...n,mode:m},d(),u.apply()},updateSettings(m){n={...n,settings:{...n.settings,...m}},d(),u.apply()},apply(){ws(n.resolvedTheme)},listen(){if(typeof window>"u")return()=>{};const m=window.matchMedia("(prefers-color-scheme: dark)"),h=()=>{n.mode==="system"&&(d(),u.apply())};return m.addEventListener("change",h),s=()=>m.removeEventListener("change",h),s}};return u}function js({store:t,brandConfig:e,children:n}){const s=w.useRef(null);return s.current||(s.current=Ts(t,e),s.current.apply()),w.useEffect(()=>s.current.listen(),[]),i.jsx(i.Fragment,{children:n})}const Es={get(t){var e;try{return((e=globalThis.localStorage)==null?void 0:e.getItem(t))??null}catch{return null}},set(t,e){var n;try{(n=globalThis.localStorage)==null||n.setItem(t,e)}catch{}}};function Ns({children:t}){return i.jsx(js,{store:Es,children:i.jsx(an,{client:zn,children:t})})}const Rs="_btn_1chbg_4",qs="_secondary_1chbg_44",Bs="_outline_1chbg_53",As="_ghost_1chbg_62",Ms="_destructive_1chbg_72",$s="_iconOnly_1chbg_82",Ds="_loadingSpinner_1chbg_89",Os="_piSpin_1chbg_1",ve={btn:Rs,default:"_default_1chbg_35",secondary:qs,outline:Bs,ghost:As,destructive:Ms,iconOnly:$s,loadingSpinner:Ds,piSpin:Os},Qe={xs:28,sm:32,md:36,lg:40},Fs={xs:12,sm:14,md:16,lg:20},Ze={xs:8,sm:10,md:12,lg:16},Ps={xs:12,sm:13,md:14,lg:15};function Hs(t){const{disabled:e,loading:n}=t;return e||n?{opacity:.5,isGhostHover:!1}:{opacity:1,isGhostHover:!1}}function P({variant:t="default",size:e="md",loading:n=!1,disabled:s=!1,leftIcon:o,trailing:r,iconOnly:a=!1,children:l,style:d,className:u,...m}){const{opacity:h}=Hs({disabled:s??!1,loading:n}),p=s||n,x=Fs[e];return i.jsxs("button",{className:A(ve.btn,ve[t],a&&ve.iconOnly,u),disabled:p,"aria-busy":n||void 0,style:{minHeight:Qe[e],paddingLeft:a?void 0:Ze[e],paddingRight:a?void 0:Ze[e],fontSize:Ps[e],opacity:h,...a?{width:Qe[e]}:{},...d},...m,children:[n?i.jsx(un,{className:ve.loadingSpinner,size:x,"aria-hidden":!0}):o?i.jsx("span",{"aria-hidden":!0,style:{display:"flex",alignItems:"center",flexShrink:0},children:o}):null,l,r&&!n&&i.jsx("span",{"aria-hidden":!0,style:{display:"flex",alignItems:"center",flexShrink:0},children:r})]})}const zs="_input_a7qyq_3",Ws="_textarea_a7qyq_32",De={input:zs,textarea:Ws},Oe=w.forwardRef(function({className:e,...n},s){return i.jsx("input",{ref:s,className:A(De.input,e),...n})}),Bl=w.forwardRef(function({className:e,...n},s){return i.jsx("textarea",{ref:s,className:A(De.input,De.textarea,e),...n})}),Nt=c().datetime({offset:!0});c().uuid();c().regex(/^[A-Za-z0-9_-]+$/,"expected base64url");const ye=pt([T(),Nt]),Ls=be(["mobile","browser","cli","mcp"]),Us=f({type:_("hello"),clientId:c(),clientType:Ls,protocolVersion:T(),appVersion:c().optional(),capabilities:V(c(),q()).optional()}),Ks=f({status:_("server_info"),serverId:c(),hostname:c().optional(),version:c().optional(),capabilities:V(c(),$()),features:V(c(),$())}),Vs=f({type:_("status"),payload:Ks}),Gs=f({type:_("ping"),requestId:c(),clientSentAt:ye.optional()}),Js=f({type:_("pong"),requestId:c(),clientSentAt:ye.optional(),serverReceivedAt:ye,serverSentAt:ye}),Rt=be(["initializing","idle","running","error","closed"]),qt=f({mimeType:c().optional(),data:c().optional()}).passthrough(),Xs=f({prs:U($()).optional(),issues:U($()).optional()}).passthrough(),Ys=f({provider:c(),cwd:c(),modeId:c().optional(),model:c().optional(),thinkingOptionId:c().optional(),featureValues:V(c(),$()).optional(),title:c().nullable().optional(),approvalPolicy:c().optional(),sandboxMode:c().optional(),networkAccess:q().optional(),webSearch:q().optional(),extra:f({pi:$().optional()}).passthrough().optional(),systemPrompt:c().optional(),mcpServers:V(c(),$()).optional()}),Qs=f({type:_("create_agent_request"),requestId:c(),config:Ys,env:V(c(),c()).optional(),workspaceId:c().optional(),worktreeName:c().optional(),initialPrompt:c().optional(),clientMessageId:c().optional(),outputSchema:V(c(),$()).optional(),images:U(qt).optional(),attachments:Xs.optional(),git:$().optional(),worktree:$().optional(),autoArchive:q().optional(),labels:V(c(),c()).default({})}),Zs=f({type:_("create_agent_response"),requestId:c(),payload:f({agentId:c()}).passthrough()}),eo=f({type:_("agent_update"),agentId:c(),status:Rt.optional(),title:c().nullable().optional(),labels:V(c(),c()).optional()}),to=f({type:_("agent_status"),agentId:c(),status:Rt}),no=f({type:_("agent_list"),agents:U(f({id:c()}).passthrough())}),so=f({type:_("agent_deleted"),agentId:c()}),oo=f({type:_("agent_archived"),agentId:c(),archivedAt:Nt.optional()}),Bt=Ne("kind",[f({kind:_("shell"),command:c().optional(),output:c().optional()}),f({kind:_("read"),path:c().optional(),output:c().optional()}),f({kind:_("edit"),path:c().optional(),diff:c().optional(),output:c().optional()}),f({kind:_("write"),path:c().optional(),output:c().optional()}),f({kind:_("search"),query:c().optional(),output:c().optional()}),f({kind:_("fetch"),url:c().optional(),output:c().optional()}),f({kind:_("task"),description:c().optional(),output:c().optional()})]),ro=Ne("kind",[f({kind:_("user_message"),messageId:c().optional(),text:c().optional(),images:U(qt).optional()}),f({kind:_("assistant_message"),messageId:c().optional(),text:c().optional()}),f({kind:_("reasoning"),text:c().optional()}),f({kind:_("tool_call"),callId:c().optional(),tool:Bt,status:c().optional()}),f({kind:_("turn_started"),turnId:c().optional()}),f({kind:_("turn_completed"),turnId:c().optional()}),f({kind:_("turn_failed"),turnId:c().optional(),error:c().optional()}),f({kind:_("turn_canceled"),turnId:c().optional()}),f({kind:_("error"),message:c().optional()})]),ao=f({type:_("agent_stream"),agentId:c(),seq:T().optional(),timestamp:ye.optional(),event:ro}),io=be(["before","after"]),co=f({start:T(),end:T()}),lo=f({type:_("fetch_agent_timeline_request"),requestId:c(),agentId:c(),cursor:c().nullable().optional(),direction:io,limit:T().optional()}),uo=f({type:_("fetch_agent_timeline_response"),requestId:c(),agentId:c().optional(),items:U($()),seqStart:T(),seqEnd:T(),sourceSeqRanges:U(co),collapsed:q(),hasNewer:q(),startCursor:c().nullable().optional(),endCursor:c().nullable().optional()}),po=f({type:_("agent_permission_request"),requestId:c(),agentId:c(),toolName:c().optional(),tool:Bt.optional(),action:$().optional(),responses:U(c()).optional()}),fo=f({type:_("agent_permission_resolved"),requestId:c(),agentId:c(),decision:c().optional()}),ho=f({type:_("agent.permission.respond.request"),requestId:c(),permissionRequestId:c(),response:$()}),mo=f({type:_("agent.permission.respond.response"),requestId:c(),payload:f({resolved:q()}).passthrough()}),go=f({type:_("respond_to_permission"),requestId:c(),permissionRequestId:c(),response:$()}),At=be(["conversation","files","both"]),_o=f({type:_("agent.rewind.request"),requestId:c(),agentId:c(),messageId:c(),mode:At}).passthrough(),yo=f({type:_("agent.rewind.response"),requestId:c(),payload:f({agentId:c(),messageId:c(),mode:At,truncatedAt:c().optional()}).passthrough()}).passthrough(),bo=f({input:T().optional(),output:T().optional(),cacheRead:T().optional(),cacheWrite:T().optional(),total:T().optional()}).passthrough(),wo=f({tokens:T().nullable().optional(),contextWindow:T().optional(),percent:T().nullable().optional()}).passthrough(),So=f({type:_("agent_session_stats_request"),requestId:c(),agentId:c()}).passthrough(),xo=f({type:_("agent_session_stats_response"),requestId:c(),payload:f({sessionId:c().optional(),sessionFile:c().optional(),userMessages:T().optional(),assistantMessages:T().optional(),toolCalls:T().optional(),toolResults:T().optional(),totalMessages:T().optional(),tokens:bo.optional(),cost:T().optional(),contextUsage:wo.optional()}).passthrough()}).passthrough(),vo=f({type:_("agent_compact_request"),requestId:c(),agentId:c(),customInstructions:c().optional()}).passthrough(),ko=f({type:_("agent_compact_response"),requestId:c(),payload:f({summary:c().optional(),firstKeptEntryId:c().optional(),tokensBefore:T().optional(),details:$().optional()}).passthrough()}).passthrough(),Io=f({type:_("agent_new_session_request"),requestId:c(),agentId:c()}).passthrough(),Co=f({type:_("agent_new_session_response"),requestId:c(),payload:f({cancelled:q()}).passthrough()}).passthrough(),To=f({type:_("agent_switch_session_request"),requestId:c(),agentId:c(),sessionPath:c()}).passthrough(),jo=f({type:_("agent_switch_session_response"),requestId:c(),payload:f({cancelled:q()}).passthrough()}).passthrough(),Eo=f({type:_("agent_fork_request"),requestId:c(),agentId:c(),entryId:c()}).passthrough(),No=f({type:_("agent_fork_response"),requestId:c(),payload:f({text:c(),cancelled:q()}).passthrough()}).passthrough(),Ro=f({type:_("agent_fork_messages_request"),requestId:c(),agentId:c()}).passthrough(),qo=f({type:_("agent_fork_messages_response"),requestId:c(),payload:f({messages:U(f({entryId:c(),text:c()}).passthrough())}).passthrough()}).passthrough(),Bo=f({type:_("agent_clone_request"),requestId:c(),agentId:c()}).passthrough(),Ao=f({type:_("agent_clone_response"),requestId:c(),payload:f({cancelled:q()}).passthrough()}).passthrough(),Mo=f({type:_("agent_set_session_name_request"),requestId:c(),agentId:c(),name:c()}).passthrough(),$o=f({type:_("agent_set_session_name_response"),requestId:c(),payload:f({}).passthrough().optional()}).passthrough(),Do=f({type:_("agent_export_html_request"),requestId:c(),agentId:c(),outputPath:c().optional()}).passthrough(),Oo=f({type:_("agent_export_html_response"),requestId:c(),payload:f({path:c()}).passthrough()}).passthrough(),Fo=f({type:_("agent_set_model_request"),requestId:c(),agentId:c(),provider:c(),modelId:c()}).passthrough(),Po=f({type:_("agent_set_model_response"),requestId:c(),payload:f({}).passthrough()}).passthrough(),Ho=f({type:_("agent_cycle_model_request"),requestId:c(),agentId:c()}).passthrough(),zo=f({type:_("agent_cycle_model_response"),requestId:c(),payload:f({model:$().nullable().optional(),thinkingLevel:c().optional(),isScoped:q().optional()}).passthrough()}).passthrough(),Wo=f({type:_("agent_last_assistant_text_request"),requestId:c(),agentId:c()}).passthrough(),Lo=f({type:_("agent_last_assistant_text_response"),requestId:c(),payload:f({text:c().nullable()}).passthrough()}).passthrough(),Uo=f({type:_("rpc_error"),requestId:c(),code:c().optional(),message:c().optional(),error:c().optional()}),Ko=Ne("type",[Qs,Zs,eo,to,no,so,oo,ao,lo,uo,po,fo,ho,mo,go,_o,yo,So,xo,vo,ko,Io,Co,To,jo,Eo,No,Ro,qo,Bo,Ao,Mo,$o,Do,Oo,Fo,Po,Ho,zo,Wo,Lo,Uo]),Vo=f({type:c()}).passthrough(),Go=f({type:_("session"),message:pt([Ko,Vo])});Ne("type",[Us,Vs,Gs,Js,Go]);const se={Output:1,Input:2,Resize:3,Snapshot:4,Restore:5},Jo=Object.fromEntries(Object.entries(se).map(([t,e])=>[e,t])),Mt=f({rows:T().int().nonnegative(),cols:T().int().nonnegative()});class me extends Error{constructor(e){super(e),this.name="TerminalFrameError"}}const Xo=new TextEncoder,Yo=new TextDecoder;function Qo(t){if(!Number.isInteger(t)||t<0||t>255)throw new me(`slot must be an integer 0–255, got ${t}`)}function fe(t,e,n){const s=new Uint8Array(2+n.length);return s[0]=t,s[1]=e,s.set(n,2),s}function Al(t){switch(Qo(t.slot),t.opcode){case"Output":return fe(se.Output,t.slot,t.data);case"Input":return fe(se.Input,t.slot,t.data);case"Snapshot":return fe(se.Snapshot,t.slot,t.data);case"Restore":return fe(se.Restore,t.slot,t.data);case"Resize":{const e=JSON.stringify(Mt.parse({rows:t.rows,cols:t.cols}));return fe(se.Resize,t.slot,Xo.encode(e))}}}function Zo(t){if(t.length<2)throw new me(`frame too short: ${t.length} bytes (need ≥ 2)`);const e=t[0],n=t[1],s=Jo[e];if(!s)throw new me(`unknown terminal opcode 0x${e.toString(16)}`);const o=t.subarray(2);if(s==="Resize"){let r;try{r=JSON.parse(Yo.decode(o))}catch{throw new me("resize payload is not valid JSON")}const a=Mt.safeParse(r);if(!a.success)throw new me("resize payload is not { rows, cols }");return{opcode:"Resize",slot:n,rows:a.data.rows,cols:a.data.cols}}return{opcode:s,slot:n,data:o.slice()}}const ie={Begin:16,Chunk:17,End:18,Error:19},er=Object.fromEntries(Object.entries(ie).map(([t,e])=>[e,t])),$t=f({transferId:c(),fileName:c().optional(),mimeType:c().optional(),totalBytes:T().int().nonnegative().optional()});class ge extends Error{constructor(e){super(e),this.name="FileTransferFrameError"}}const et=new TextEncoder,tt=new TextDecoder;function tr(t){if(!Number.isInteger(t)||t<0||t>255)throw new ge(`stream must be an integer 0–255, got ${t}`)}function ke(t,e,n){const s=new Uint8Array(2+n.length);return s[0]=t,s[1]=e,s.set(n,2),s}function qe(t){switch(tr(t.stream),t.opcode){case"Begin":return ke(ie.Begin,t.stream,et.encode(JSON.stringify($t.parse(t.meta))));case"Chunk":return ke(ie.Chunk,t.stream,t.data);case"End":return ke(ie.End,t.stream,new Uint8Array([t.ok?1:0]));case"Error":return ke(ie.Error,t.stream,et.encode(t.message))}}function nr(t){if(t.length<2)throw new ge(`frame too short: ${t.length} bytes (need ≥ 2)`);const e=t[0],n=t[1],s=er[e];if(!s)throw new ge(`unknown file-transfer opcode 0x${e.toString(16)}`);const o=t.subarray(2);switch(s){case"Begin":{let r;try{r=JSON.parse(tt.decode(o))}catch{throw new ge("begin payload is not valid JSON")}const a=$t.safeParse(r);if(!a.success)throw new ge("begin payload is not a valid transfer header");return{opcode:"Begin",stream:n,meta:a.data}}case"Chunk":return{opcode:"Chunk",stream:n,data:o.slice()};case"End":return{opcode:"End",stream:n,ok:(o[0]??1)!==0};case"Error":return{opcode:"Error",stream:n,message:tt.decode(o)}}}function sr(t){try{return nr(t)}catch{return null}}const or=c().regex(/^[a-z][a-z0-9-]*$/,"invalid provider id"),rr=be(["safe","moderate","dangerous","planning"]),ar=f({supportsStreaming:q(),supportsSessionPersistence:q(),supportsDynamicModes:q(),supportsMcpServers:q(),supportsReasoningStream:q(),supportsToolInvocations:q(),supportsRewindConversation:q().optional(),supportsRewindFiles:q().optional(),supportsRewindBoth:q().optional()}).passthrough(),ir=f({id:c(),label:c().optional(),description:c().optional(),icon:c().optional(),colorTier:rr});f({id:or,label:c(),description:c().optional(),extends:c().optional(),modes:U(ir),capabilities:ar});function Fe(t){return typeof t=="string"?t:t instanceof Uint8Array||Buffer.isBuffer(t)?t.toString("utf8"):String(t??"")}function Dt(t){let e=null;const n={onMessage:null,onClose:null,onError:null,get isOpen(){return e!==null&&e.readyState===1},connect(s){return new Promise((o,r)=>{const a=t??(()=>new WebSocket(s));try{e=t?a(s):new WebSocket(s)}catch(l){r(l);return}e.onopen=()=>o(),e.onerror=l=>{var d;(e==null?void 0:e.readyState)!==1&&r(l),(d=n.onError)==null||d.call(n,l)},e.onclose=l=>{var d;(d=n.onClose)==null||d.call(n,l.code,Fe(l.reason))},e.onmessage=l=>{var u,m,h,p;const{data:d}=l;d instanceof ArrayBuffer||d instanceof Uint8Array?(u=n.onMessage)==null||u.call(n,d):typeof d=="string"?(m=n.onMessage)==null||m.call(n,d):typeof Blob<"u"&&d instanceof Blob?(h=n.onMessage)==null||h.call(n,d):Buffer.isBuffer(d)&&((p=n.onMessage)==null||p.call(n,d.buffer.slice(d.byteOffset,d.byteOffset+d.byteLength)))}})},sendText(s){e==null||e.send(s)},sendBinary(s){e==null||e.send(s)},close(s=1e3,o=""){e==null||e.close(s,o),e=null}};return n}const _e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Ot(t){let e="";for(let n=0;n<t.length;n+=3){const s=t[n],o=n+1<t.length,r=n+2<t.length,a=o?t[n+1]:0,l=r?t[n+2]:0;e+=_e[s>>2],e+=_e[(s&3)<<4|a>>4],e+=o?_e[(a&15)<<2|l>>6]:"=",e+=r?_e[l&63]:"="}return e}function Ft(t){const e=t.replace(/=+$/,""),n=[];let s=0,o=0;for(const r of e){const a=_e.indexOf(r);if(a===-1)throw new Error(`invalid base64 character: ${JSON.stringify(r)}`);s=s<<6|a,o+=6,o>=8&&(o-=8,n.push(s>>o&255))}return new Uint8Array(n)}function cr(t){try{const e=JSON.parse(t);return!e||typeof e.type!="string"?null:e}catch{return null}}const je=24;function Pt(t,e){const n=ce.randomBytes(je),s=ce.box.after(t,n,e),o=new Uint8Array(n.length+s.length);return o.set(n,0),o.set(s,n.length),Ot(o)}function Ht(t,e){let n;try{n=Ft(t)}catch{return null}if(n.length<je)return null;const s=n.slice(0,je),o=n.slice(je);return ce.box.open.after(o,s,e)}function lr(t,e){return Pt(new TextEncoder().encode(t),e)}function dr(t,e){const n=Ht(t,e);return n?new TextDecoder().decode(n):null}function ur(t,e,n,s,o,r){let a=!1;return n.onClose(l=>{var d;a=!0,(d=s.onClose)==null||d.call(s,l)}),{handleAppFrame(l){var m,h;if(a)return;const d=o();if(!r()||!d)return;const u=dr(l.frame,d);if(u===null){(m=s.onAuthError)==null||m.call(s,new Error(`relay ${t} channel: message failed authentication`));return}(h=s.onMessage)==null||h.call(s,u)},handleBinaryFrame(l){var m,h;if(a)return;const d=o();if(!r()||!d)return;const u=Ht(l.frame,d);if(u===null){(m=s.onAuthError)==null||m.call(s,new Error(`relay ${t} channel: binary message failed authentication`));return}(h=s.onBinaryMessage)==null||h.call(s,u)},send(l){if(a)throw new Error(`relay ${t} channel: cannot send after close()`);const d=o();if(!r()||!d)throw new Error(`relay ${t} channel: cannot send before the E2EE handshake completes`);n.send(JSON.stringify({type:"e2ee_app",frame:lr(l,d)}))},sendBinary(l){if(a)throw new Error(`relay ${t} channel: cannot send after close()`);const d=o();if(!r()||!d)throw new Error(`relay ${t} channel: cannot send before the E2EE handshake completes`);n.send(JSON.stringify({type:"e2ee_bin",frame:Pt(l,d)}))},close(){a||(a=!0,n.close())}}}function pr(t){const{transport:e,attachment:n,daemonPublicKey:s}=t,o=t.events??{},r=ce.box.keyPair(),a=ce.box.before(s,r.secretKey);let l=!1;const d=ur("client",n,e,o,()=>a,()=>l);return e.onMessage(u=>{var h;const m=cr(u);if(m){if(m.type==="e2ee_ready"){if(l)return;l=!0,(h=o.onReady)==null||h.call(o);return}if(m.type==="e2ee_app"){d.handleAppFrame(m);return}m.type==="e2ee_bin"&&d.handleBinaryFrame(m)}}),e.send(JSON.stringify({type:"e2ee_hello",ephemeralPublicKey:Ot(r.publicKey)})),{role:"client",attachment:n,get ready(){return l},send:d.send,sendBinary:d.sendBinary,close:d.close}}const fr=16;function hr(t){const e=ce.hash(t);let n="";for(let s=0;s<fr;s++)n+=e[s].toString(16).padStart(2,"0");return n}function mr(t){const e=t.useTls?"wss":"ws",n=t.endpoint.replace(/^(?:https?|wss?):\/\//,"").replace(/\/+$/,"");return`${e}://${n}`}function gr(t){let e=null,n=null;const s=t.sessionId??hr(t.daemonPublicKey),o={onMessage:null,onClose:null,onError:null,get isOpen(){return e!==null&&e.readyState===1&&n!==null&&n.ready},connect(r){return new Promise((a,l)=>{const d=t.factory??(()=>new WebSocket(r));try{e=t.factory?d(r):new WebSocket(r)}catch(p){l(p);return}const u=e,m=[],h=[];u.onopen=()=>{u.send(JSON.stringify({type:"relay_register",sessionId:s})),n=pr({transport:{send:p=>u.send(p),onMessage:p=>m.push(p),onClose:p=>h.push(p),close:()=>u.close()},attachment:{sessionId:s},daemonPublicKey:t.daemonPublicKey,events:{onReady:()=>a(),onMessage:p=>{var x;return(x=o.onMessage)==null?void 0:x.call(o,p)},onBinaryMessage:p=>{var x;return(x=o.onMessage)==null?void 0:x.call(o,p.slice().buffer)},onAuthError:p=>{var x;return(x=o.onError)==null?void 0:x.call(o,p)}}})},u.onerror=p=>{var x;u.readyState!==1&&l(p),(x=o.onError)==null||x.call(o,p)},u.onclose=p=>{var x;for(const b of h)b(Fe(p.reason));(x=o.onClose)==null||x.call(o,p.code,Fe(p.reason))},u.onmessage=p=>{const{data:x}=p;if(typeof x=="string")for(const b of m)b(x)}})},sendText(r){if(!n||!n.ready)throw new Error("relay transport: cannot send before the E2EE handshake completes");n.send(r)},sendBinary(r){if(!n||!n.ready)throw new Error("relay transport: cannot send before the E2EE handshake completes");n.sendBinary(r)},close(r=1e3,a=""){n==null||n.close(),n=null,e==null||e.close(r,a),e=null}};return o}function _r(t){const e=t.indexOf("#"),n=e===-1?t:t.slice(e+1),s=new URLSearchParams(n),o=s.get("offer");if(!o)return null;let r;try{r=Ft(o)}catch{return null}const a=s.get("relay");if(a){const d={endpoint:a,useTls:s.get("relayTls")==="1"};return{publicKeyB64:o,publicKey:r,relay:d}}const l=s.get("host")??void 0;return{publicKeyB64:o,publicKey:r,...l?{host:l}:{}}}const yr=1;function Pe(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`id-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}class br extends Error{constructor(e,n,s){super(e),this.requestId=n,this.code=s,this.name="RpcError"}}class nt extends Error{constructor(e){super(`RPC ${e} timed out`),this.requestId=e,this.name="RpcTimeoutError"}}class wr{constructor(e){I(this,"transport");I(this,"rpcTimeoutMs");I(this,"now");I(this,"_state","idle");I(this,"_serverId",null);I(this,"_features",{});I(this,"_serverCapabilities",{});I(this,"pending",new Map);I(this,"sessionHandlers",new Set);I(this,"terminalHandlers",new Set);I(this,"fileTransferHandlers",new Set);I(this,"stateHandlers",new Set);I(this,"helloResolve",null);I(this,"helloReject",null);this.options=e,this.transport=e.transport??Dt(),this.rpcTimeoutMs=e.rpcTimeoutMs??3e4,this.now=e.now??(()=>Date.now()),this.transport.onMessage=n=>this.handleIncoming(n),this.transport.onClose=(n,s)=>this.handleClose(n,s),this.transport.onError=()=>{}}get state(){return this._state}get serverId(){return this._serverId}get features(){return this._features}get serverCapabilities(){return this._serverCapabilities}hasFeature(e){return!!this._features[e]}async connect(){this.setState("connecting"),await this.transport.connect(this.options.url);const e=new Promise((s,o)=>{this.helloResolve=s,this.helloReject=o});this.transport.sendText(JSON.stringify({type:"hello",clientId:this.options.clientId,clientType:this.options.clientType,protocolVersion:this.options.protocolVersion??yr,appVersion:this.options.appVersion,capabilities:this.options.capabilities}));const n=await e;return this._serverId=n.serverId,this._features=n.features,this._serverCapabilities=n.capabilities,this.setState("open"),n}close(e=1e3,n=""){this.setState("closing"),this.transport.close(e,n)}request(e,n={},s){const o=n.requestId??Pe();return new Promise((r,a)=>{const l=s??this.rpcTimeoutMs,d=l>0?setTimeout(()=>{this.pending.delete(o),a(new nt(o))},l):null;this.pending.set(o,{resolve:u=>r(u),reject:a,timer:d}),this.sendSession({type:e,...n,requestId:o})})}sendSession(e){this.transport.sendText(JSON.stringify({type:"session",message:e}))}sendBinary(e){this.transport.sendBinary(e)}ping(e=1e4){const n=Pe();return new Promise((s,o)=>{const r=e>0?setTimeout(()=>{this.pending.delete(n),o(new nt(n))},e):null;this.pending.set(n,{resolve:()=>s(),reject:o,timer:r}),this.transport.sendText(JSON.stringify({type:"ping",requestId:n,clientSentAt:this.now()}))})}onSessionMessage(e){return this.sessionHandlers.add(e),()=>this.sessionHandlers.delete(e)}onTerminalFrame(e){return this.terminalHandlers.add(e),()=>this.terminalHandlers.delete(e)}onFileTransferFrame(e){return this.fileTransferHandlers.add(e),()=>this.fileTransferHandlers.delete(e)}onStateChange(e){return this.stateHandlers.add(e),()=>this.stateHandlers.delete(e)}setState(e){if(this._state!==e){this._state=e;for(const n of this.stateHandlers)n(e)}}handleClose(e,n){this.helloReject&&(this.helloReject(new Error(`socket closed during handshake: ${n}`)),this.helloResolve=null,this.helloReject=null);for(const[,s]of this.pending)s.timer&&clearTimeout(s.timer),s.reject(new Error(`socket closed: ${n}`));this.pending.clear(),this.setState("closed")}handleIncoming(e){if(typeof e=="string"){this.handleTextFrame(e);return}if(e instanceof ArrayBuffer){this.handleBinaryFrame(new Uint8Array(e));return}typeof e.arrayBuffer=="function"&&e.arrayBuffer().then(n=>this.handleBinaryFrame(new Uint8Array(n)))}handleBinaryFrame(e){const n=e[0];if(n!==void 0&&Object.values(ie).includes(n)){const r=sr(e);if(!r)return;for(const a of this.fileTransferHandlers)a(r);return}const o=Zo(e);for(const r of this.terminalHandlers)r(o)}handleTextFrame(e){let n;try{n=JSON.parse(e)}catch{return}const s=n;switch(s.type){case"status":this.handleStatus(s);return;case"pong":this.resolvePending(s.requestId,void 0);return;case"ping":this.transport.sendText(JSON.stringify({type:"pong",requestId:s.requestId,serverReceivedAt:this.now(),serverSentAt:this.now()}));return;case"session":this.handleSession(s.message);return;default:return}}handleStatus(e){const n=e.payload;(n==null?void 0:n.status)==="server_info"&&this.helloResolve&&(this.helloResolve(n),this.helloResolve=null,this.helloReject=null)}handleSession(e){if(!e||typeof e!="object")return;const n=e;if(n.type==="rpc_error"&&typeof n.requestId=="string"){const s=this.pending.get(n.requestId);s&&(s.timer&&clearTimeout(s.timer),this.pending.delete(n.requestId),s.reject(new br(n.message??n.error??"RPC failed",n.requestId,n.code)));return}if(typeof n.requestId=="string"&&this.pending.has(n.requestId)){const s="payload"in n?n.payload:n;this.resolvePending(n.requestId,s)}for(const s of this.sessionHandlers)s(e)}resolvePending(e,n){const s=this.pending.get(e);s&&(s.timer&&clearTimeout(s.timer),this.pending.delete(e),s.resolve(n))}}class Sr{constructor(e){this.daemon=e}get connection(){return this.daemon}async createAgent(e){return await this.daemon.request("create_agent_request",{...e})}agent(e){return new vr(this.daemon,e)}workspace(e){return new kr(this.daemon,e)}get providers(){return new Ir(this.daemon)}onAgentUpdate(e){return this.daemon.onSessionMessage(n=>{n.type==="agent_update"&&e(n)})}onWorkspaceUpdate(e){return this.daemon.onSessionMessage(n=>{n.type==="workspace_update"&&e(n)})}}class xr{constructor(e,n){this.daemon=e,this.agentId=n}fetch(e={}){return this.daemon.request("fetch_agent_timeline_request",{agentId:this.agentId,cursor:e.cursor,direction:e.direction,limit:e.limit})}subscribe(e){return this.daemon.onSessionMessage(n=>{const s=n;s.type==="agent_stream"&&s.agentId===this.agentId&&s.event&&e(s.event)})}}class vr{constructor(e,n){I(this,"timeline");this.daemon=e,this.agentId=n,this.timeline=new xr(e,n)}send(e,n={}){return this.daemon.request("send_agent_prompt",{agentId:this.agentId,prompt:e,clientMessageId:n.clientMessageId,images:n.images})}run(e,n){return this.send(e,n)}interrupt(){return this.daemon.request("interrupt_agent",{agentId:this.agentId})}update(e){return this.daemon.request("update_agent",{agentId:this.agentId,...e})}resume(){return this.daemon.request("resume_agent",{agentId:this.agentId})}archive(){return this.daemon.request("archive_agent",{agentId:this.agentId})}delete(){return this.daemon.request("delete_agent",{agentId:this.agentId})}onUpdate(e){return this.daemon.onSessionMessage(n=>{const s=n;s.type==="agent_update"&&s.agentId===this.agentId&&e(s)})}sessionStats(){return this.daemon.request("agent_session_stats_request",{agentId:this.agentId})}compact(e){return this.daemon.request("agent_compact_request",{agentId:this.agentId,customInstructions:e})}newSession(){return this.daemon.request("agent_new_session_request",{agentId:this.agentId})}switchSession(e){return this.daemon.request("agent_switch_session_request",{agentId:this.agentId,sessionPath:e})}fork(e){return this.daemon.request("agent_fork_request",{agentId:this.agentId,entryId:e})}forkMessages(){return this.daemon.request("agent_fork_messages_request",{agentId:this.agentId})}clone(){return this.daemon.request("agent_clone_request",{agentId:this.agentId})}setSessionName(e){return this.daemon.request("agent_set_session_name_request",{agentId:this.agentId,name:e})}exportHtml(e){return this.daemon.request("agent_export_html_request",{agentId:this.agentId,outputPath:e})}setModel(e,n){return this.daemon.request("agent_set_model_request",{agentId:this.agentId,provider:e,modelId:n})}cycleModel(){return this.daemon.request("agent_cycle_model_request",{agentId:this.agentId})}lastAssistantText(){return this.daemon.request("agent_last_assistant_text_request",{agentId:this.agentId})}}class kr{constructor(e,n){this.daemon=e,this.workspaceId=n}onUpdate(e){return this.daemon.onSessionMessage(n=>{const s=n;s.type==="workspace_update"&&s.workspaceId===this.workspaceId&&e(s)})}}class Ir{constructor(e){this.daemon=e}listProviders(){return this.daemon.request("list_providers",{})}listModels(e){return this.daemon.request("list_provider_models",{provider:e})}listModes(e){return this.daemon.request("list_provider_modes",{provider:e})}refreshSnapshot(){return this.daemon.request("providers.snapshot.refresh.request",{})}}const st=32*1024;function Cr(t){const e=t.reduce((o,r)=>o+r.length,0),n=new Uint8Array(e);let s=0;for(const o of t)n.set(o,s),s+=o.length;return n}class Tr{constructor(e){I(this,"pending",new Map);I(this,"nextStream",1);I(this,"detach",null);this.daemon=e}start(){this.detach||(this.detach=this.daemon.onFileTransferFrame(e=>this.dispatch(e)))}stop(){var e;(e=this.detach)==null||e.call(this),this.detach=null;for(const[n,s]of this.pending)s.reject(new Error("file transfer router stopped")),this.pending.delete(n)}async download(e){const n=await this.daemon.request("file_download_token_request",{path:e});if(!n.ok||!n.token)throw new Error(n.error??"failed to issue download token");const s=this.nextStream++,o=new Promise((a,l)=>{this.pending.set(s,{chunks:[],meta:{},resolve:a,reject:l})}),r=await this.daemon.request("file_download_request",{token:n.token,stream:s});if(!r.ok)throw this.pending.delete(s),new Error(r.error??"download request failed");return o}async upload(e,n){const s=Pe(),o=await this.daemon.request("file_upload_request",{path:e,transferId:s});if(!o.ok||o.stream===void 0)throw new Error(o.error??"upload request failed");const r=o.stream;this.daemon.sendBinary(qe({opcode:"Begin",stream:r,meta:{transferId:s}}));for(let a=0;a<n.length;a+=st){const l=n.subarray(a,a+st);this.daemon.sendBinary(qe({opcode:"Chunk",stream:r,data:l}))}this.daemon.sendBinary(qe({opcode:"End",stream:r,ok:!0}))}dispatch(e){const n=this.pending.get(e.stream);if(n)switch(e.opcode){case"Begin":n.meta.fileName=e.meta.fileName,n.meta.mimeType=e.meta.mimeType;return;case"Chunk":n.chunks.push(e.data);return;case"End":this.pending.delete(e.stream),e.ok?n.resolve({bytes:Cr(n.chunks),...n.meta}):n.reject(new Error("download failed"));return;case"Error":this.pending.delete(e.stream),n.reject(new Error(e.message));return}}}class jr{constructor(e,n={}){I(this,"initialDelayMs");I(this,"maxDelayMs");I(this,"factor");I(this,"jitter");I(this,"maxAttempts");I(this,"setTimer");I(this,"clearTimer");I(this,"random");I(this,"attempt",0);I(this,"timer",null);I(this,"active",!1);I(this,"detachState",null);I(this,"reconnectedHandlers",new Set);I(this,"failedHandlers",new Set);this.daemon=e,this.initialDelayMs=n.initialDelayMs??500,this.maxDelayMs=n.maxDelayMs??3e4,this.factor=n.factor??2,this.jitter=n.jitter??.2,this.maxAttempts=n.maxAttempts??Number.POSITIVE_INFINITY,this.setTimer=n.setTimer??((s,o)=>setTimeout(s,o)),this.clearTimer=n.clearTimer??(s=>clearTimeout(s)),this.random=n.random??Math.random}delayForAttempt(e){const n=Math.min(this.maxDelayMs,this.initialDelayMs*this.factor**(e-1)),s=n*this.jitter*(this.random()*2-1);return Math.max(0,Math.round(n+s))}onReconnected(e){return this.reconnectedHandlers.add(e),()=>this.reconnectedHandlers.delete(e)}onReconnectFailed(e){return this.failedHandlers.add(e),()=>this.failedHandlers.delete(e)}start(){this.active||(this.active=!0,this.detachState=this.daemon.onStateChange(e=>{e==="closed"&&this.active&&this.scheduleReconnect(),e==="open"&&(this.attempt=0)}))}stop(){var e;this.active=!1,this.timer&&this.clearTimer(this.timer),this.timer=null,(e=this.detachState)==null||e.call(this),this.detachState=null}get attemptCount(){return this.attempt}scheduleReconnect(){if(!this.active||this.attempt>=this.maxAttempts)return;this.attempt+=1;const e=this.delayForAttempt(this.attempt);this.timer=this.setTimer(()=>{this.timer=null,this.tryReconnect()},e)}async tryReconnect(){if(!this.active)return;const e=this.attempt;try{await this.daemon.connect();for(const n of this.reconnectedHandlers)n({attempt:e,serverId:this.daemon.serverId})}catch(n){for(const s of this.failedHandlers)s(n,e);this.scheduleReconnect()}}}function ot(t){const e=t.trim();if(e==="")return e;const n=e.match(/^([a-z][a-z0-9+.-]*):\/\//i);if(!n)return`ws://${e.replace(/\/+$/,"")}`;const s=n[1].toLowerCase(),o=e.slice(n[0].length).replace(/\/+$/,"");switch(s){case"http":return`ws://${o}`;case"https":return`wss://${o}`;case"ws":case"wss":return`${s}://${o}`;default:return e}}function Er(t){const e=_r(t);return e!=null&&e.relay?{mode:"relay",url:mr(e.relay),daemonPublicKey:e.publicKey}:e!=null&&e.host?{mode:"direct",url:ot(e.host)}:{mode:"direct",url:ot(t)}}function Nr(){return"web-"+Math.random().toString(36).slice(2,10)}const j=ee()((t,e)=>({status:"idle",serverInfo:null,error:null,daemon:null,client:null,reconnection:null,async connect(n){e().disconnect();const s=Er(n.url);let o;s.mode==="relay"?o=gr({daemonPublicKey:s.daemonPublicKey}):n.password&&(o=Dt(d=>new WebSocket(d,[`pi-studio.bearer.${n.password}`])));const r=new wr({url:s.url,clientId:n.clientId??Nr(),clientType:"browser",capabilities:{},transport:o,rpcTimeoutMs:1800*1e3}),a=new Sr(r),l=new jr(r);r.onStateChange(d=>t({status:d})),l.onReconnected(()=>t({error:null})),l.onReconnectFailed(d=>{t({error:d instanceof Error?d.message:String(d)})}),t({daemon:r,client:a,reconnection:l,error:null,status:"connecting"});try{const d=await r.connect();t({serverInfo:d}),l.start()}catch(d){throw t({error:d instanceof Error?d.message:String(d)}),d}},disconnect(){const{daemon:n,reconnection:s}=e();s==null||s.stop(),n==null||n.close(),t({status:"idle",serverInfo:null,daemon:null,client:null,reconnection:null})}})),Rr=100,qr=480,Br=220,Ar=280;function Ie(t){return Math.min(qr,Math.max(Rr,t))}const k=ee()(t=>({host:"ws://127.0.0.1:6767",password:"",cwd:"~",cwdPickerOpen:!1,sessionMenu:null,fileMenu:null,rightSidebarTab:"files",collapsedWorkspaces:new Set,leftSidebarCollapsed:!1,rightSidebarCollapsed:!1,leftSidebarWidth:Br,rightSidebarWidth:Ar,setHost:e=>t({host:e}),setPassword:e=>t({password:e}),setCwd:e=>t({cwd:e}),openCwdPicker:()=>t({cwdPickerOpen:!0}),closeCwdPicker:()=>t({cwdPickerOpen:!1}),openSessionMenu:(e,n,s)=>t({sessionMenu:{sessionId:e,x:n,y:s}}),closeSessionMenu:()=>t({sessionMenu:null}),openFileMenu:(e,n,s,o)=>t({fileMenu:{path:e,isDirectory:n,x:s,y:o}}),closeFileMenu:()=>t({fileMenu:null}),setRightSidebarTab:e=>t({rightSidebarTab:e}),toggleWorkspaceCollapsed:e=>t(n=>{const s=new Set(n.collapsedWorkspaces);return s.has(e)?s.delete(e):s.add(e),{collapsedWorkspaces:s}}),toggleLeftSidebar:()=>t(e=>({leftSidebarCollapsed:!e.leftSidebarCollapsed})),toggleRightSidebar:()=>t(e=>({rightSidebarCollapsed:!e.rightSidebarCollapsed})),setLeftSidebarWidth:e=>t({leftSidebarWidth:Ie(e)}),setRightSidebarWidth:e=>t({rightSidebarWidth:Ie(e)}),resizeLeftSidebar:e=>t(n=>({leftSidebarWidth:Ie(n.leftSidebarWidth+e)})),resizeRightSidebar:e=>t(n=>({rightSidebarWidth:Ie(n.rightSidebarWidth+e)}))})),Mr="_wrap_emmus_1",$r="_dot_emmus_8",Dr="_open_emmus_15",Or="_connecting_emmus_18",Fr="_closed_emmus_21",Pr="_idle_emmus_22",Hr="_closing_emmus_23",Be={wrap:Mr,dot:$r,open:Dr,connecting:Or,closed:Fr,idle:Pr,closing:Hr},zr={idle:"disconnected",connecting:"connecting…",open:"connected",closing:"disconnecting…",closed:"disconnected"};function Wr(){const t=j(n=>n.status),e=j(n=>n.error);return i.jsxs("span",{className:Be.wrap,title:e??void 0,children:[i.jsx("span",{className:A(Be.dot,Be[t])}),zr[t]??t]})}const Lr="_toolbar_i9hmh_1",Ur="_brand_i9hmh_10",Kr="_version_i9hmh_16",Vr="_sep_i9hmh_22",Gr="_host_i9hmh_28",Jr="_password_i9hmh_31",Xr="_sidebarToggles_i9hmh_34",Y={toolbar:Lr,brand:Ur,version:Kr,sep:Vr,host:Gr,password:Jr,sidebarToggles:Xr};function Yr(){const t=j(p=>p.status),e=j(p=>p.connect),n=j(p=>p.disconnect),s=k(p=>p.host),o=k(p=>p.setHost),r=k(p=>p.password),a=k(p=>p.setPassword),l=k(p=>p.leftSidebarCollapsed),d=k(p=>p.toggleLeftSidebar),u=k(p=>p.rightSidebarCollapsed),m=k(p=>p.toggleRightSidebar),h=t==="open"||t==="connecting";return i.jsxs("div",{className:Y.toolbar,children:[i.jsx("span",{className:Y.brand,children:"Pi-Studio"}),i.jsxs("span",{className:Y.version,children:["v","0.0.26"]}),i.jsx(Wr,{}),i.jsx("div",{className:Y.sep}),i.jsx(Oe,{className:Y.host,value:s,onChange:p=>o(p.target.value),placeholder:"host:port, ws://…/http://…, or a pasted pairing link",disabled:h}),i.jsx(Oe,{className:Y.password,type:"password",value:r,onChange:p=>a(p.target.value),placeholder:"password",disabled:h}),t==="open"||t==="connecting"||t==="closing"?i.jsx(P,{size:"sm",onClick:()=>n(),children:"Disconnect"}):i.jsx(P,{size:"sm",variant:"default",onClick:()=>void e({url:s,password:r||void 0}),children:"Connect"}),i.jsxs("div",{className:Y.sidebarToggles,children:[i.jsx(P,{size:"sm",variant:"ghost",iconOnly:!0,title:l?"Show sessions sidebar":"Hide sessions sidebar",onClick:()=>d(),children:l?i.jsx(pn,{size:16}):i.jsx(fn,{size:16})}),i.jsx(P,{size:"sm",variant:"ghost",iconOnly:!0,title:u?"Show files/changes sidebar":"Hide files/changes sidebar",onClick:()=>m(),children:u?i.jsx(hn,{size:16}):i.jsx(mn,{size:16})})]})]})}const He={rows:[],streamingAssistantIndex:null,streamingReasoningIndex:null,toolIndexByCallId:{}};let rt=0;function J(){return rt+=1,`row-${rt}`}function Qr(t){switch(t.kind){case"shell":return t.command??"";case"read":case"write":return t.path??"";case"edit":return t.path??"";case"search":return t.query??"";case"fetch":return t.url??"";case"task":return t.description??"";default:return""}}function Zr(t,e){return t??`${e.kind}:${Qr(e)}`}function ea(t){return{...t,streamingAssistantIndex:null,streamingReasoningIndex:null}}function ta(t,e){var r;const n=t.rows.slice();let s=t.streamingAssistantIndex;if(s===null||((r=n[s])==null?void 0:r.kind)!=="assistant"){const a={kind:"assistant",id:J(),text:"",streaming:!0};n.push(a),s=n.length-1}const o=n[s];return!o||o.kind!=="assistant"?t:(n[s]={...o,text:o.text+e},{...t,rows:n,streamingAssistantIndex:s,streamingReasoningIndex:null})}function na(t,e){var r;const n=t.rows.slice();let s=t.streamingReasoningIndex;if(s===null||((r=n[s])==null?void 0:r.kind)!=="reasoning"){const a={kind:"reasoning",id:J(),text:"",streaming:!0};n.push(a),s=n.length-1}const o=n[s];return!o||o.kind!=="reasoning"?t:(n[s]={...o,text:o.text+e},{...t,rows:n,streamingReasoningIndex:s,streamingAssistantIndex:null})}function sa(t,e){if(t.kind!==e.kind)return e;const n={...t};for(const[s,o]of Object.entries(e))o!==void 0&&o!==""&&(n[s]=o);return n}function oa(t,e){var l;const n=Zr(e.callId,e.tool),s=e.status==="completed"||e.status==="error"?e.status:"running",o=t.toolIndexByCallId[n],r=t.rows.slice();if(o!==void 0&&((l=r[o])==null?void 0:l.kind)==="tool"){const d=r[o];return d.kind!=="tool"?t:(r[o]={...d,tool:sa(d.tool,e.tool),status:s},{...t,rows:r,streamingAssistantIndex:null,streamingReasoningIndex:null})}const a={kind:"tool",id:J(),callId:n,tool:e.tool,status:s};return r.push(a),{...t,rows:r,toolIndexByCallId:{...t.toolIndexByCallId,[n]:r.length-1},streamingAssistantIndex:null,streamingReasoningIndex:null}}function Ve(t){const e=t.rows.slice();if(t.streamingAssistantIndex!==null){const n=e[t.streamingAssistantIndex];(n==null?void 0:n.kind)==="assistant"&&(e[t.streamingAssistantIndex]={...n,streaming:!1})}if(t.streamingReasoningIndex!==null){const n=e[t.streamingReasoningIndex];(n==null?void 0:n.kind)==="reasoning"&&(e[t.streamingReasoningIndex]={...n,streaming:!1})}return{...t,rows:e,streamingAssistantIndex:null,streamingReasoningIndex:null}}function ra(t,e){const n=Ve(t),s={kind:"error",id:J(),text:e||"turn failed"};return{...n,rows:[...n.rows,s]}}function aa(t){const e=Ve(t),n={kind:"system",id:J(),text:"(canceled)"};return{...e,rows:[...e.rows,n]}}function ia(t,e){const n={kind:"error",id:J(),text:e||"error"};return{...t,rows:[...t.rows,n]}}function ca(t,e,n,s){if(s!==void 0){const r=t.rows.findIndex(a=>a.kind==="user"&&a.pending&&a.clientMessageId===s);if(r!==-1){const a=t.rows.slice(),l=a[r];if((l==null?void 0:l.kind)==="user")return a[r]={...l,text:e,images:n,pending:!1},{...t,rows:a}}}const o={kind:"user",id:J(),text:e,images:n,clientMessageId:s};return{...t,rows:[...t.rows,o]}}function zt(t,e){switch(e.kind){case"turn_started":return ea(t);case"user_message":return ca(t,e.text??"",e.images,e.messageId);case"assistant_message":return ta(t,e.text??"");case"reasoning":return na(t,e.text??"");case"tool_call":return oa(t,e);case"turn_completed":return Ve(t);case"turn_failed":return ra(t,e.error);case"turn_canceled":return aa(t);case"error":return ia(t,e.message);default:return t}}function la(t,e,n,s){const o={kind:"user",id:J(),text:n,images:s,clientMessageId:e,pending:!0};return{...t,rows:[...t.rows,o]}}function da(t,e){const n=t.rows.findIndex(r=>r.kind==="user"&&r.pending&&r.clientMessageId===e);if(n===-1)return t;const s=t.rows.slice(),o=s[n];return(o==null?void 0:o.kind)!=="user"?t:(s[n]={...o,pending:!1,failed:!0},{...t,rows:s})}let at=0;function ua(){return at+=1,`s-${Date.now().toString(36)}-${at}`}const D=ee()((t,e)=>({sessions:{},order:[],activeSessionId:null,createSession(n){const s=ua(),o={id:s,agentId:null,title:"New chat",status:"idle",cwd:n,timeline:He,userMessageCount:0};return t(r=>({sessions:{...r.sessions,[s]:o},order:[s,...r.order],activeSessionId:s})),s},hydrate(n){t(s=>s.sessions[n.id]?s:{sessions:{...s.sessions,[n.id]:n},order:[...s.order,n.id]})},bindAgent(n,s){t(o=>{const r=o.sessions[n];return r?{sessions:{...o.sessions,[n]:{...r,agentId:s}}}:o})},setStatus(n,s){t(o=>{const r=o.sessions[n];return r?{sessions:{...o.sessions,[n]:{...r,status:s}}}:o})},setStatusByAgentId(n,s){const o=e().findByAgentId(n);o&&e().setStatus(o.id,s)},setTitle(n,s){t(o=>{const r=o.sessions[n];return r?{sessions:{...o.sessions,[n]:{...r,title:s}}}:o})},setCwd(n,s){t(o=>{const r=o.sessions[n];return r?{sessions:{...o.sessions,[n]:{...r,cwd:s}}}:o})},applyStreamEvent(n,s){t(o=>{const r=o.sessions[n];if(!r)return o;const a=zt(r.timeline,s);let l=r.title;if(s.kind==="turn_completed"&&l==="New chat"){const d=a.rows.slice().reverse().find(u=>u.kind==="assistant");d&&d.kind==="assistant"&&d.text&&(l=d.text.slice(0,40)+(d.text.length>40?"…":""))}return{sessions:{...o.sessions,[n]:{...r,timeline:a,title:l}}}})},addOptimisticUserMessage(n,s,o,r){t(a=>{const l=a.sessions[n];if(!l)return a;const d=la(l.timeline,s,o,r);return{sessions:{...a.sessions,[n]:{...l,timeline:d,userMessageCount:l.userMessageCount+1}}}})},markUserMessageFailed(n,s){t(o=>{const r=o.sessions[n];if(!r)return o;const a=da(r.timeline,s);return{sessions:{...o.sessions,[n]:{...r,timeline:a}}}})},activate(n){t({activeSessionId:n})},remove(n){t(s=>{const{[n]:o,...r}=s.sessions,a=s.order.filter(d=>d!==n),l=s.activeSessionId===n?a[0]??null:s.activeSessionId;return{sessions:r,order:a,activeSessionId:l}})},findByAgentId(n){return Object.values(e().sessions).find(s=>s.agentId===n)}}));function Ae(t,e){return t.filter(n=>n.workspaceCwd===e)}const C=ee()((t,e)=>({tabs:[],activeTabId:null,activeWorkspaceCwd:null,lastActiveTabByWorkspace:{},open(n){const s=e().tabs.find(o=>o.id===n.id);if(s){e().activate(s.id);return}t(o=>({tabs:[...o.tabs,n],activeTabId:n.id,activeWorkspaceCwd:n.workspaceCwd,lastActiveTabByWorkspace:{...o.lastActiveTabByWorkspace,[n.workspaceCwd]:n.id}}))},close(n){t(s=>{const o=s.tabs.find(u=>u.id===n);if(!o)return s;const r=s.tabs.findIndex(u=>u.id===n),a=s.tabs.filter(u=>u.id!==n);let l=s.activeTabId;const d={...s.lastActiveTabByWorkspace};if(l===n){const u=Ae(a,o.workspaceCwd),m=Math.min(r,u.length-1),h=u[m];l=(h==null?void 0:h.id)??null}if(d[o.workspaceCwd]===n){const u=Ae(a,o.workspaceCwd)[0];u?d[o.workspaceCwd]=u.id:delete d[o.workspaceCwd]}return{tabs:a,activeTabId:l,lastActiveTabByWorkspace:d}})},activate(n){t(s=>{const o=s.tabs.find(r=>r.id===n);return o?{activeTabId:n,activeWorkspaceCwd:o.workspaceCwd,lastActiveTabByWorkspace:{...s.lastActiveTabByWorkspace,[o.workspaceCwd]:n}}:s})},switchWorkspace(n){t(s=>{var d;const o=Ae(s.tabs,n),r=s.lastActiveTabByWorkspace[n],l=r&&o.some(u=>u.id===r)?r:((d=o[0])==null?void 0:d.id)??null;return{activeWorkspaceCwd:n,activeTabId:l,lastActiveTabByWorkspace:l?{...s.lastActiveTabByWorkspace,[n]:l}:s.lastActiveTabByWorkspace}})},reorder(n,s){t(o=>{const r=o.tabs.findIndex(u=>u.id===n),a=o.tabs.findIndex(u=>u.id===s);if(r===-1||a===-1||r===a)return o;const l=o.tabs.slice(),[d]=l.splice(r,1);return d?(l.splice(a,0,d),{tabs:l}):o})},updateLabel(n,s){t(o=>({tabs:o.tabs.map(r=>r.id===n?{...r,label:s}:r)}))},updateData(n,s){t(o=>({tabs:o.tabs.map(r=>r.id===n?{...r,data:{...r.data,...s}}:r)}))}})),z={chat:t=>`chat-${t}`,file:t=>`file-${t}`,diff:(t,e)=>`diff-${t}${e?"-staged":""}`,terminal:t=>`term-${t}`};let Me=0;function Wt(t){Me+=1,C.getState().open({id:z.terminal(`new-${Me}`),kind:"terminal",label:`Terminal ${Me}`,closable:!0,data:{slot:null,cwd:t},workspaceCwd:t})}const Ce=ee()(t=>({rootPath:"",expanded:new Set,expandedByRoot:new Map,setRoot:e=>t(n=>{const s=new Map(n.expandedByRoot);n.rootPath&&s.set(n.rootPath,n.expanded);const o=s.get(e),r=new Set(o);return r.add(e),{rootPath:e,expanded:r,expandedByRoot:s}}),toggle:e=>t(n=>{if(e===n.rootPath)return n;const s=new Set(n.expanded);s.has(e)?s.delete(e):s.add(e);const o=new Map(n.expandedByRoot);return o.set(n.rootPath,s),{expanded:s,expandedByRoot:o}})}));let oe=null;const ze=new Set;function pa(t){return ze.add(t),()=>ze.delete(t)}async function Ge(t){var e;if(oe)return oe;try{const n=await t.connection.request("file_explorer_request",{path:"/home"}),o=(((e=n.result)==null?void 0:e.entries)??n.entries??[]).find(r=>r.kind==="directory"||r.type==="directory");oe="/home/"+((o==null?void 0:o.name)||"user")}catch{return"/tmp"}for(const n of ze)n(oe);return oe}function fa(){return oe}async function ha(t,e){return e==="~"||e.startsWith("~/")?await Ge(t)+e.slice(1):e}function Lt(){const t=j(o=>o.client),e=j(o=>o.status),[n,s]=w.useState(fa());return w.useEffect(()=>pa(s),[]),w.useEffect(()=>{!t||e!=="open"||n||Ge(t)},[t,e,n]),n}const ma="_dot_202py_3",ga={dot:ma};function _a(t){const{status:e,requiresAttention:n,attentionReason:s,showInactive:o}=t;if(!e)return null;if(n)switch(s){case"permission":return"statusWarning";case"error":return"statusDanger";case"finished":default:return"statusSuccess"}switch(e){case"running":case"queued":return"accent";case"waiting":return"statusWarning";case"finished":return"statusSuccess";case"error":return"statusDanger";case"idle":case"archived":return o?"foregroundMuted":null}}const it=8,ya={accent:"var(--pi-color-accent)",statusSuccess:"var(--pi-color-statusSuccess)",statusDanger:"var(--pi-color-statusDanger)",statusWarning:"var(--pi-color-statusWarning)",foregroundMuted:"var(--pi-color-foregroundMuted)"};function ba({className:t,...e}){const n=_a(e);return n?i.jsx("span",{className:`${ga.dot}${t?` ${t}`:""}`,style:{width:it,height:it,backgroundColor:ya[n]??"currentColor"},role:"presentation"}):null}const wa={initializing:"queued",idle:"idle",running:"running",error:"error",closed:"finished"};function Sa(t){return wa[t]??"idle"}const xa="_wrap_sqws5_1",va="_header_sqws5_7",ka="_list_sqws5_23",Ia="_item_sqws5_28",Ca="_active_sqws5_37",Ta="_title_sqws5_40",ja="_meta_sqws5_49",Ea="_menuBtn_sqws5_57",Na="_workspaceGroup_sqws5_75",Ra="_workspaceHeader_sqws5_78",qa="_workspaceChevron_sqws5_91",Ba="_workspaceIcon_sqws5_102",Aa="_workspaceLabel_sqws5_106",Ma="_workspaceCount_sqws5_112",$a="_newSessionBtn_sqws5_117",Da="_workspaceSessions_sqws5_129",M={wrap:xa,header:va,list:ka,item:Ia,active:Ca,title:Ta,meta:ja,menuBtn:Ea,workspaceGroup:Na,workspaceHeader:Ra,workspaceChevron:qa,workspaceIcon:Ba,workspaceLabel:Aa,workspaceCount:Ma,newSessionBtn:$a,workspaceSessions:Da};function Oa({session:t,active:e,onSelect:n,onOpenMenu:s}){return i.jsxs("div",{className:A(M.item,e&&M.active),onClick:n,onContextMenu:o=>{o.preventDefault(),s(o.clientX,o.clientY)},children:[i.jsxs("div",{className:M.title,children:[i.jsx(ba,{status:Sa(t.status),showInactive:!0}),i.jsx("span",{children:t.title})]}),i.jsxs("div",{className:M.meta,children:[t.cwd||"~"," · ",t.agentId?t.agentId.slice(0,8):"new"," ·"," ",t.userMessageCount," msgs"]}),i.jsx("button",{type:"button",className:M.menuBtn,title:"Actions",onClick:o=>{o.stopPropagation();const r=o.currentTarget.getBoundingClientRect();s(r.left,r.bottom)},children:i.jsx(ft,{size:14})})]})}const Fa="_trigger_16o4s_1",Pa="_content_16o4s_7",Ha="_item_16o4s_16",za="_danger_16o4s_33",Wa="_sep_16o4s_36",K={trigger:Fa,content:Pa,item:Ha,danger:za,sep:Wa};function La(){const t=k(b=>b.sessionMenu),e=k(b=>b.closeSessionMenu),n=j(b=>b.client),s=w.useRef(null),[o,r]=w.useState(!1);w.useEffect(()=>{r(t!==null)},[t]);const a=D(b=>t?b.sessions[t.sessionId]:void 0);if(!t)return null;const l=!!(a!=null&&a.agentId)&&(a==null?void 0:a.status)==="running";function d(b){r(b),b||e()}function u(){if(!a)return;const b=window.prompt("Rename:",a.title);if(b!=null&&b.trim()){const E=b.trim();D.getState().setTitle(a.id,E),C.getState().updateLabel(z.chat(a.id),E),a.agentId&&(n==null||n.agent(a.agentId).update({title:E}).catch(()=>{}))}e()}function m(){a!=null&&a.agentId&&(n==null||n.agent(a.agentId).interrupt().catch(()=>{})),e()}function h(b){D.getState().remove(b),C.getState().close(z.chat(b))}async function p(){if(a){if(!window.confirm("Archive this agent? It can be resumed later."))return e();if(e(),!a.agentId){h(a.id);return}if(!n){window.alert("Not connected — cannot archive remotely.");return}try{await n.agent(a.agentId).archive(),h(a.id)}catch(b){window.alert(`Failed to archive: ${b instanceof Error?b.message:String(b)}`)}}}async function x(){if(a){if(!window.confirm("Permanently delete this agent? This cannot be undone."))return e();if(e(),!a.agentId){h(a.id);return}if(!n){window.alert("Not connected — cannot delete remotely.");return}try{await n.agent(a.agentId).delete(),h(a.id)}catch(b){window.alert(`Failed to delete: ${b instanceof Error?b.message:String(b)}`)}}}return i.jsxs(_t,{open:o,onOpenChange:d,modal:!1,children:[i.jsx(yt,{asChild:!0,children:i.jsx("button",{ref:s,type:"button",className:K.trigger,style:{left:t.x,top:t.y},"aria-hidden":!0,tabIndex:-1})}),i.jsx(bt,{children:i.jsxs(wt,{className:K.content,align:"start",sideOffset:2,children:[i.jsx(ae,{className:K.item,onSelect:u,children:"Rename"}),i.jsx(ae,{className:K.item,disabled:!l,onSelect:m,children:"Stop agent"}),i.jsx(St,{className:K.sep}),i.jsx(ae,{className:`${K.item} ${K.danger}`,onSelect:p,children:"Archive"}),i.jsx(ae,{className:`${K.item} ${K.danger}`,onSelect:x,children:"Delete permanently"})]})})]})}function Ua({label:t,cwd:e,sessionCount:n,collapsed:s,onToggleCollapsed:o,onNewSession:r}){return i.jsxs("div",{className:M.workspaceHeader,onClick:o,title:e,children:[i.jsx("button",{type:"button",className:M.workspaceChevron,"aria-label":s?"Expand workspace":"Collapse workspace",onClick:a=>{a.stopPropagation(),o()},children:s?i.jsx(ht,{size:13}):i.jsx(gn,{size:13})}),i.jsx(_n,{size:13,className:A(M.workspaceIcon)}),i.jsx("span",{className:M.workspaceLabel,children:t}),i.jsx("span",{className:M.workspaceCount,children:n}),i.jsx(P,{size:"xs",variant:"ghost",iconOnly:!0,title:"New conversation",className:M.newSessionBtn,onClick:a=>{a.stopPropagation(),r()},children:i.jsx(mt,{size:13})})]})}function le(t,e){return e&&(t==="~"||t.startsWith("~/"))?e+t.slice(1):t}function Ut(t,e,n){const s=new Map;for(const o of t){const r=e[o];if(!r)continue;const a=le(r.cwd||"~",n),l=s.get(a);l?l.push(r):s.set(a,[r])}return Array.from(s,([o,r])=>({cwd:o,sessions:r}))}function Ka(t){return!t||t==="~"?"~":t.split("/").filter(Boolean).pop()||t}function Va(){const t=D(S=>S.order),e=D(S=>S.sessions),n=D(S=>S.activeSessionId),s=D(S=>S.activate),o=D(S=>S.createSession),r=C(S=>S.open),a=j(S=>S.status),l=k(S=>S.openSessionMenu),d=k(S=>S.setCwd),u=k(S=>S.openCwdPicker),m=k(S=>S.collapsedWorkspaces),h=k(S=>S.toggleWorkspaceCollapsed),p=Lt();function x(S){const N=le(S||"~",p),v=o(N);r({id:z.chat(v),kind:"chat",label:"New chat",closable:!0,data:{sessionId:v},workspaceCwd:N})}function b(S){s(S);const N=e[S],v=le((N==null?void 0:N.cwd)||"~",p);N!=null&&N.cwd&&d(N.cwd),r({id:z.chat(S),kind:"chat",label:(N==null?void 0:N.title)??"Chat",closable:!0,data:{sessionId:S},workspaceCwd:v})}const E=Ut(t,e,p);return i.jsxs("div",{className:M.wrap,children:[i.jsxs("div",{className:M.header,children:[i.jsx("h3",{children:"Workspaces"}),i.jsx(P,{size:"xs",variant:"ghost",iconOnly:!0,title:a!=="open"?"Connect to open a workspace":"Open a workspace folder",disabled:a!=="open",onClick:()=>u(),children:i.jsx(yn,{size:14})})]}),i.jsx("div",{className:M.list,children:E.map(S=>{const N=m.has(S.cwd);return i.jsxs("div",{className:M.workspaceGroup,children:[i.jsx(Ua,{label:Ka(S.cwd),cwd:S.cwd,sessionCount:S.sessions.length,collapsed:N,onToggleCollapsed:()=>h(S.cwd),onNewSession:()=>x(S.cwd)}),!N&&i.jsx("div",{className:M.workspaceSessions,children:S.sessions.map(v=>i.jsx(Oa,{session:v,active:v.id===n,onSelect:()=>b(v.id),onOpenMenu:(te,we)=>l(v.id,te,we)},v.id))})]},S.cwd)})}),i.jsx(La,{})]})}const Ga="_strip_cnwks_1",Ja="_tab_cnwks_10",Xa="_active_cnwks_26",Ya="_icon_cnwks_30",Qa="_label_cnwks_35",Za="_close_cnwks_40",re={strip:Ga,tab:Ja,active:Xa,icon:Ya,label:Qa,close:Za},ei={chat:xn,file:Sn,diff:wn,terminal:bn};function ti({tab:t}){const e=C(h=>h.activeTabId),n=C(h=>h.activate),s=C(h=>h.close),o=ei[t.kind],{attributes:r,listeners:a,setNodeRef:l,transform:d,transition:u,isDragging:m}=Pn({id:t.id});return i.jsxs("div",{ref:l,className:A(re.tab,t.id===e&&re.active),style:{transform:Hn.Transform.toString(d),transition:u,opacity:m?.5:1},onClick:()=>n(t.id),onAuxClick:h=>{h.button===1&&t.closable&&s(t.id)},title:t.label,...r,...a,children:[i.jsx("span",{className:re.icon,children:i.jsx(o,{size:13})}),i.jsx("span",{className:re.label,children:t.label}),t.closable&&i.jsx("span",{className:re.close,onClick:h=>{h.stopPropagation(),s(t.id)},children:i.jsx(Ee,{size:12})})]})}function ni(){const t=C(a=>a.tabs),e=C(a=>a.activeWorkspaceCwd),n=C(a=>a.reorder),s=t.filter(a=>a.workspaceCwd===e),o=Bn(An(Fn,{activationConstraint:{distance:4}}));function r(a){const{active:l,over:d}=a;!d||l.id===d.id||n(String(l.id),String(d.id))}return i.jsx(Mn,{sensors:o,collisionDetection:$n,onDragEnd:r,children:i.jsx(Dn,{items:s.map(a=>a.id),strategy:On,children:i.jsx("div",{className:re.strip,children:s.map(a=>i.jsx(ti,{tab:a},a.id))})})})}const si="_spinner_1tgzp_3",oi={spinner:si},ri={xs:12,sm:16,md:20,lg:24},ai={xs:1,sm:2,md:2,lg:3};function ii({size:t="md",color:e="currentColor",className:n,"aria-label":s="Loading"}){const o=typeof t=="number"?t:ri[t],r=typeof t=="number"?2:ai[t];return i.jsx("span",{className:`${oi.spinner}${n?` ${n}`:""}`,role:"status","aria-label":s,style:{width:o,height:o,borderWidth:r,color:e}})}const ci=w.lazy(()=>Ue(()=>import("./ChatPanel-B_B_2aOA.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])).then(t=>({default:t.ChatPanel}))),ct=w.lazy(()=>Ue(()=>import("./FilePanel-Hla4aEUX.js").then(t=>t.F),__vite__mapDeps([14,1,7,6,5,2,9,10,15])).then(t=>({default:t.FilePanel}))),li=w.lazy(()=>Ue(()=>import("./TerminalPanel-CpqJXnEn.js"),__vite__mapDeps([16,1,17,18,7,6,5,2,3,11,12,19])).then(t=>({default:t.TerminalPanel}))),di={chat:ci,file:ct,diff:ct,terminal:li},ui="_area_1vzxd_1",pi="_panel_1vzxd_7",fi="_active_1vzxd_14",hi="_empty_1vzxd_17",he={area:ui,panel:pi,active:fi,empty:hi};function mi(){const t=C(o=>o.tabs),e=C(o=>o.activeTabId),n=C(o=>o.activeWorkspaceCwd);return t.some(o=>o.workspaceCwd===n)?i.jsx("div",{className:he.area,children:t.map(o=>{const r=di[o.kind];return i.jsx("div",{className:A(he.panel,o.id===e&&he.active),children:i.jsx(w.Suspense,{fallback:i.jsx(ii,{size:"md"}),children:i.jsx(r,{tab:o})})},o.id)})}):i.jsx("div",{className:he.area,children:i.jsx("div",{className:he.empty,children:"No open tabs in this workspace"})})}const Kt={fileRead:t=>["file","read",t],fileDownload:t=>["file","download",t],fileDiff:(t,e,n)=>["file","diff",t,e,n],explorer:t=>["explorer",t],agentList:()=>["agents","list"],agentTimeline:t=>["agents","timeline",t]};function gi(t){const e=t.kind==="directory"||t.type==="directory"?"directory":"file";return{name:t.name??"",kind:e,size:t.size,mtimeMs:t.mtimeMs}}function _i(t){return t.slice().sort((e,n)=>e.kind!==n.kind?e.kind==="directory"?-1:1:e.name.localeCompare(n.name))}async function Vt(t,e){const s=(await t.connection.request("file_explorer_request",{path:e})).result;if(!s||s.ok===!1)throw new Error(s&&"error"in s?s.error:"explorer request failed");const o="entries"in s?s.entries??[]:[];return{path:s.resolvedPath??e,entries:_i(o.map(gi))}}function yi(t,e=!0){const n=j(s=>s.client);return cn({queryKey:Kt.explorer(t),queryFn:()=>{if(!n)throw new Error("not connected");return Vt(n,t)},enabled:!!n&&!!t&&e})}function bi(t){const e=j(o=>o.client),n=w.useMemo(()=>Array.from(t),[t]),s=ln({queries:n.map(o=>({queryKey:Kt.explorer(o),queryFn:()=>{if(!e)throw new Error("not connected");return Vt(e,o)},enabled:!!e&&!!o}))});return w.useMemo(()=>{const o=new Map;return n.forEach((r,a)=>{const l=s[a];o.set(r,{listing:l==null?void 0:l.data,isLoading:!!(l!=null&&l.isLoading),isError:!!(l!=null&&l.isError),error:l==null?void 0:l.error})}),o},[n,s])}const lt=new WeakMap;function dt(t){let e=lt.get(t);return e||(e=new Tr(t),e.start(),lt.set(t,e)),e}function wi(t,e,n){const s=new Blob([Uint8Array.from(t)],{type:n||"application/octet-stream"}),o=URL.createObjectURL(s),r=document.createElement("a");r.href=o,r.download=e,r.rel="noopener",document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(o),0)}function Gt(){const t=j(o=>o.daemon),e=Le(),n=w.useCallback(async(o,r)=>{if(!t)throw new Error("not connected");const a=o?`${o}/${r.name}`:r.name,l=new Uint8Array(await r.arrayBuffer());await dt(t).upload(a,l),await e.invalidateQueries({queryKey:["explorer"]})},[t,e]),s=w.useCallback(async o=>{if(!t)throw new Error("not connected");const r=await dt(t).download(o);wi(r.bytes,r.fileName||o.split("/").pop()||"download",r.mimeType)},[t]);return{upload:n,saveToDisk:s}}function Si(t,e){return t.endsWith("/")?`${t}${e}`:`${t}/${e}`}function Jt(t,e,n,s,o){var a;const r=o.get(e);if(!r||r.isLoading){t.push({kind:"loading",path:e,depth:n});return}if(r.isError){const l=r.error instanceof Error?r.error.message:"failed to load";t.push({kind:"error",path:e,depth:n,message:l});return}for(const l of((a=r.listing)==null?void 0:a.entries)??[])xi(t,e,l,n,s,o)}function xi(t,e,n,s,o,r){const a=Si(e,n.name);if(n.kind!=="directory"){t.push({kind:"file",path:a,name:n.name,depth:s});return}const l=o.has(a);t.push({kind:"directory",path:a,name:n.name,depth:s,expanded:l}),l&&Jt(t,a,s+1,o,r)}function vi(t,e,n){if(!t)return[];const s=[];return Jt(s,t,0,e,n),s}const ki="_container_yg965_1",Ii="_header_yg965_7",Ci="_uploadButton_yg965_13",Ti="_hiddenInput_yg965_32",ji="_status_yg965_35",Ei="_statusError_yg965_36",Ni="_rowAction_yg965_49",Ri="_item_yg965_64",qi="_dropOverlay_yg965_67",Bi="_list_yg965_82",Ai="_chevronSlot_yg965_101",Mi="_chevron_yg965_101",$i="_chevronOpen_yg965_112",Di="_icon_yg965_115",Oi="_name_yg965_122",Fi="_dirName_yg965_127",Pi="_statusRow_yg965_133",Hi="_statusRowError_yg965_144",zi="_emptyState_yg965_147",R={container:ki,header:Ii,uploadButton:Ci,hiddenInput:Ti,status:ji,statusError:Ei,rowAction:Ni,item:Ri,dropOverlay:qi,list:Bi,chevronSlot:Ai,chevron:Mi,chevronOpen:$i,icon:Di,name:Oi,dirName:Fi,statusRow:Pi,statusRowError:Hi,emptyState:zi},Wi=14;function Li({row:t,onToggle:e,onOpenFile:n,onContextMenu:s}){const o={paddingLeft:8+t.depth*Wi};if(t.kind==="loading")return i.jsx("div",{className:R.statusRow,style:o,children:"Loading…"});if(t.kind==="error")return i.jsx("div",{className:A(R.statusRow,R.statusRowError),style:o,children:t.message??"failed to load"});const r=t.kind==="directory";return i.jsxs("div",{className:R.item,style:o,onClick:()=>r?e(t.path):n(t.path),onContextMenu:a=>{a.preventDefault(),s(t.path,r,a.clientX,a.clientY)},children:[i.jsx("span",{className:R.chevronSlot,children:r&&i.jsx(ht,{size:12,className:A(R.chevron,t.expanded&&R.chevronOpen)})}),i.jsx("span",{className:R.icon,children:r?i.jsx(gt,{size:14}):i.jsx(vn,{size:14})}),i.jsx("span",{className:r?R.dirName:R.name,children:t.name}),i.jsx("button",{type:"button",className:R.rowAction,title:"Actions",onClick:a=>{a.stopPropagation();const l=a.currentTarget.getBoundingClientRect();s(t.path,r,l.left,l.bottom)},children:i.jsx(ft,{size:12})})]})}const Ui="_trigger_g81d7_1",Ki="_content_g81d7_7",Vi="_item_g81d7_16",Gi="_danger_g81d7_29",Ji="_sep_g81d7_32",ne={trigger:Ui,content:Ki,item:Vi,danger:Gi,sep:Ji};function Xi(){const t=k(p=>p.fileMenu),e=k(p=>p.closeFileMenu),n=j(p=>p.client),{saveToDisk:s}=Gt(),o=Le(),r=w.useRef(null),[a,l]=w.useState(!1);if(w.useEffect(()=>{l(t!==null)},[t]),!t)return null;const d=t.path.split("/").pop()||t.path;function u(p){l(p),p||e()}async function m(){if(t){e();try{await s(t.path)}catch(p){window.alert(`Failed to download: ${p instanceof Error?p.message:String(p)}`)}}}async function h(){if(!t)return;const p=t.isDirectory?"folder (and everything inside it)":"file";if(!window.confirm(`Permanently delete this ${p}? "${d}" — this cannot be undone.`))return e();if(e(),!n){window.alert("Not connected — cannot delete remotely.");return}try{const x=await n.connection.request("file_delete_request",{path:t.path});if(!x.ok)throw new Error(x.error??"delete failed");await o.invalidateQueries({queryKey:["explorer"]})}catch(x){window.alert(`Failed to delete: ${x instanceof Error?x.message:String(x)}`)}}return i.jsxs(_t,{open:a,onOpenChange:u,modal:!1,children:[i.jsx(yt,{asChild:!0,children:i.jsx("button",{ref:r,type:"button",className:ne.trigger,style:{left:t.x,top:t.y},"aria-hidden":!0,tabIndex:-1})}),i.jsx(bt,{children:i.jsxs(wt,{className:ne.content,align:"start",sideOffset:2,children:[!t.isDirectory&&i.jsx(ae,{className:ne.item,onSelect:m,children:"Download"}),i.jsx(St,{className:ne.sep}),i.jsx(ae,{className:`${ne.item} ${ne.danger}`,onSelect:h,children:"Delete"})]})})]})}const Yi=24;function Qi(){const t=j(y=>y.client),e=Ce(y=>y.rootPath),n=Ce(y=>y.expanded),s=Ce(y=>y.setRoot),o=Ce(y=>y.toggle),r=C(y=>y.activeWorkspaceCwd),a=C(y=>y.open),{upload:l}=Gt(),d=k(y=>y.openFileMenu),[u,m]=w.useState(null),[h,p]=w.useState(!1),[x,b]=w.useState(null),E=w.useRef(null),S=w.useRef(null),N=w.useRef(null);w.useEffect(()=>{if(!t)return;const y=r||"~";N.current!==y&&(N.current=y,ha(t,y).then(B=>s(B)))},[t,r,s]);const v=bi(n),te=w.useMemo(()=>vi(e,n,v),[e,n,v]),we=dn({count:te.length,getScrollElement:()=>S.current,estimateSize:()=>Yi,overscan:12,getItemKey:y=>{var B;return((B=te[y])==null?void 0:B.path)??y}});function Qt(y){a({id:z.file(y),kind:"file",label:y.split("/").pop()||y,closable:!0,data:{path:y},workspaceCwd:r||"~"})}async function Je(y,B){var Se;if(!B.length||!y)return;const X=(Se=v.get(y))==null?void 0:Se.listing,Re=new Set((X==null?void 0:X.entries.map(W=>W.name))??[]),de=B.filter(W=>Re.has(W.name));if(de.length>0){const W=de.map(tn=>tn.name).join(", ");if(!window.confirm(`Overwrite ${de.length>1?"these files":"this file"}? ${W}`))return}m({text:`Uploading ${B.length} file${B.length>1?"s":""}…`,error:!1});try{for(const W of B)await l(y,W);m({text:`Uploaded ${B.length} file${B.length>1?"s":""}`,error:!1})}catch(W){m({text:`Upload failed: ${W instanceof Error?W.message:"unknown"}`,error:!0})}}function Zt(y){y.preventDefault(),p(!1);const B=x??e;b(null);const X=Array.from(y.dataTransfer.files);Je(B,X)}function en(y){y.dataTransfer.types.includes("Files")&&(y.preventDefault(),p(!0))}return t?i.jsxs("div",{className:R.container,onDragOver:en,onDragLeave:()=>p(!1),onDrop:Zt,children:[i.jsxs("div",{className:R.header,children:[i.jsxs("button",{type:"button",className:R.uploadButton,onClick:()=>{var y;return(y=E.current)==null?void 0:y.click()},disabled:!e,title:"Upload files to the workspace root",children:[i.jsx(kn,{size:12}),i.jsx("span",{children:"Upload"})]}),i.jsx("input",{ref:E,type:"file",multiple:!0,className:R.hiddenInput,onChange:y=>{Je(e,Array.from(y.target.files??[])),y.target.value=""}})]}),u&&i.jsx("div",{className:u.error?R.statusError:R.status,children:u.text}),i.jsxs("div",{className:R.list,ref:S,children:[te.length===0&&i.jsx("div",{className:R.emptyState,children:"No files loaded"}),i.jsx("div",{style:{position:"relative",height:we.getTotalSize()},children:we.getVirtualItems().map(y=>{const B=te[y.index];return B?i.jsx("div",{"data-index":y.index,style:{position:"absolute",top:0,left:0,width:"100%",height:y.size,transform:`translateY(${y.start}px)`},onDragEnter:()=>{B.kind==="directory"&&b(B.path)},children:i.jsx(Li,{row:B,onToggle:o,onOpenFile:Qt,onContextMenu:(X,Re,de,Se)=>d(X,Re,de,Se)})},y.key):null})})]}),h&&i.jsx("div",{className:R.dropOverlay,children:"Drop to upload"}),i.jsx(Xi,{})]}):i.jsx("div",{className:R.emptyState,children:"Connect to browse files"})}const We=ee()(t=>({subscribedCwd:null,changes:[],setSubscribedCwd:e=>t({subscribedCwd:e}),applyProjection:e=>{if(!e||!e.available){t({changes:[]});return}const n=[];for(const s of e.staged)n.push({path:s.path,status:s.indexStatus==="A"?"added":s.indexStatus==="D"?"deleted":"modified",staged:!0});for(const s of e.unstaged)n.push({path:s.path,status:s.worktreeStatus==="D"?"deleted":"modified",staged:!1});for(const s of e.untracked)n.push({path:s,status:"added",staged:!1});t({changes:n})}}));function Zi(t){return typeof t=="object"&&t!==null&&"type"in t&&t.type==="checkout_status_update"&&"cwd"in t&&typeof t.cwd=="string"&&"projection"in t&&typeof t.projection=="object"&&t.projection!==null}function ec(t){const e=j(r=>r.client),n=We(r=>r.applyProjection),s=We(r=>r.setSubscribedCwd),o=w.useRef(e);return o.current=e,w.useEffect(()=>{if(!e||!t)return;let r=!1;e.connection.request("checkout_status_subscribe",{cwd:t}).catch(()=>{}),s(t);const a=e.connection.onSessionMessage(l=>{if(r)return;const d=l;Zi(d)&&d.cwd===t&&n(d.projection)});return e.connection.request("checkout_refresh_request",{cwd:t}).catch(()=>{}),()=>{r=!0,a(),e.connection.request("checkout_status_unsubscribe",{cwd:t}).catch(()=>{}),s(null)}},[e,t,n,s]),{refresh(){const r=o.current;!r||!t||r.connection.request("checkout_refresh_request",{cwd:t}).catch(()=>{})}}}const tc="_list_1pgby_1",nc="_summary_1pgby_4",sc="_item_1pgby_11",oc="_badge_1pgby_23",rc="_added_1pgby_30",ac="_modified_1pgby_34",ic="_deleted_1pgby_38",cc="_name_1pgby_42",lc="_emptyState_1pgby_47",Q={list:tc,summary:nc,item:sc,badge:oc,added:rc,modified:ac,deleted:ic,name:cc,emptyState:lc},dc={added:"A",modified:"M",deleted:"D"};function uc(){const e=C(r=>r.activeWorkspaceCwd)||"~";ec(e);const n=We(r=>r.changes),s=C(r=>r.open);function o(r,a){s({id:z.diff(r,a),kind:"diff",label:r.split("/").pop()||r,closable:!0,data:{path:r,staged:a},workspaceCwd:e})}return n.length===0?i.jsx("div",{className:Q.emptyState,children:"No changes detected"}):i.jsxs("div",{className:Q.list,children:[i.jsxs("div",{className:Q.summary,children:[n.length," changed file",n.length===1?"":"s"]}),n.map((r,a)=>i.jsxs("div",{className:Q.item,onClick:()=>o(r.path,r.staged),children:[i.jsx("span",{className:A(Q.badge,Q[r.status]),children:dc[r.status]}),i.jsx("span",{className:Q.name,children:r.path})]},`${r.path}-${r.staged}-${a}`))]})}const Xt=ee()(t=>({terminals:[],setTerminals:e=>t({terminals:e})}));function pc(t){return typeof t=="object"&&t!==null&&"type"in t&&t.type==="terminals_update"&&"terminals"in t&&Array.isArray(t.terminals)}function fc(){const t=j(n=>n.client),e=Xt(n=>n.setTerminals);w.useEffect(()=>{if(!t){e([]);return}let n=!1;t.connection.request("subscribe_terminals_request",{}).then(o=>{n||e(o.terminals??[])}).catch(()=>{});const s=t.connection.onSessionMessage(o=>{if(n)return;const r=o;pc(r)&&e(r.terminals)});return()=>{n=!0,s(),t.connection.request("unsubscribe_terminals_request",{}).catch(()=>{})}},[t,e])}const hc="_wrap_sx7p7_1",mc="_newTerminal_sx7p7_5",gc="_list_sx7p7_10",_c="_summary_sx7p7_13",yc="_item_sx7p7_20",bc="_reattach_sx7p7_30",wc="_icon_sx7p7_45",Sc="_name_sx7p7_49",xc="_openBadge_sx7p7_54",vc="_kill_sx7p7_62",kc="_emptyState_sx7p7_80",O={wrap:hc,newTerminal:mc,list:gc,summary:_c,item:yc,reattach:bc,icon:wc,name:Sc,openBadge:xc,kill:vc,emptyState:kc};function Ic(){fc();const t=j(h=>h.client),e=Xt(h=>h.terminals),n=C(h=>h.tabs),s=C(h=>h.activeWorkspaceCwd),o=C(h=>h.open),r=C(h=>h.activate),a=C(h=>h.close);function l(h){return n.find(p=>p.kind==="terminal"&&p.data.slot===h)}function d(h,p,x){const b=l(h);if(b){r(b.id);return}const E=x||"~";o({id:z.terminal(h),kind:"terminal",label:p,closable:!0,data:{slot:h,cwd:E},workspaceCwd:E})}function u(h){const p=l(h);if(p){a(p.id);return}t&&t.connection.request("kill_terminal_request",{slot:h}).catch(()=>{})}const m=i.jsx(P,{variant:"secondary",size:"sm",leftIcon:i.jsx(mt,{size:14}),className:O.newTerminal,onClick:()=>Wt(s||"~"),children:"New terminal"});return e.length===0?i.jsxs("div",{className:O.wrap,children:[m,i.jsx("div",{className:O.emptyState,children:"No terminals running"})]}):i.jsxs("div",{className:O.wrap,children:[m,i.jsxs("div",{className:O.list,children:[i.jsxs("div",{className:O.summary,children:[e.length," terminal",e.length===1?"":"s"," running"]}),e.map(h=>{const p=l(h.slot)!==void 0;return i.jsxs("div",{className:O.item,children:[i.jsxs("button",{type:"button",className:O.reattach,onClick:()=>d(h.slot,h.name,h.cwd),title:h.cwd,children:[i.jsx(In,{size:13,className:O.icon}),i.jsx("span",{className:O.name,children:h.name}),p&&i.jsx("span",{className:O.openBadge,children:"open"})]}),i.jsx("button",{type:"button",className:O.kill,onClick:()=>u(h.slot),title:"Kill terminal",children:i.jsx(Ee,{size:13})})]},h.slot)})]})]})}const Cc="_wrap_r37ok_1",Tc="_tabBar_r37ok_7",jc="_tabBtn_r37ok_13",Ec="_active_r37ok_26",Nc="_refreshBtn_r37ok_30",Rc="_content_r37ok_34",L={wrap:Cc,tabBar:Tc,tabBtn:jc,active:Ec,refreshBtn:Nc,content:Rc};function qc(){const t=k(l=>l.rightSidebarTab),e=k(l=>l.setRightSidebarTab),s=C(l=>l.activeWorkspaceCwd)||"~",o=j(l=>l.client),r=Le();function a(){r.invalidateQueries({queryKey:["explorer"]}),o&&s&&o.connection.request("checkout_refresh_request",{cwd:s}).catch(()=>{})}return i.jsxs("div",{className:L.wrap,children:[i.jsxs("div",{className:L.tabBar,children:[i.jsx("button",{type:"button",className:A(L.tabBtn,t==="files"&&L.active),onClick:()=>e("files"),children:"Files"}),i.jsx("button",{type:"button",className:A(L.tabBtn,t==="changes"&&L.active),onClick:()=>e("changes"),children:"Changes"}),i.jsx("button",{type:"button",className:A(L.tabBtn,t==="terminals"&&L.active),onClick:()=>e("terminals"),children:"Terminals"}),t!=="terminals"&&i.jsx(P,{size:"xs",variant:"ghost",iconOnly:!0,title:"Refresh",className:L.refreshBtn,onClick:a,children:i.jsx(Cn,{size:13})})]}),i.jsx("div",{className:L.content,children:t==="files"?i.jsx(Qi,{}):t==="changes"?i.jsx(uc,{}):i.jsx(Ic,{})})]})}const Bc="_wrapper_131x2_3",Ac="_box_131x2_18",Mc="_checkmark_131x2_36",$c="_nativeInput_131x2_41",Te={wrapper:Bc,box:Ac,checkmark:Mc,nativeInput:$c};w.forwardRef(function({label:e,checked:n=!1,disabled:s,className:o,onChange:r,...a},l){return i.jsxs("label",{className:Te.wrapper,"data-disabled":s||void 0,children:[i.jsx("input",{ref:l,type:"checkbox",className:Te.nativeInput,checked:n,disabled:s,onChange:r,...a}),i.jsx("span",{className:Te.box,"data-checked":n,"aria-hidden":!0,children:n&&i.jsx(Tn,{size:12,className:Te.checkmark})}),e&&i.jsx("span",{children:e})]})});const Dc="_select_vj45v_3",Oc={select:Dc};w.forwardRef(function({options:e,placeholder:n,className:s,...o},r){return i.jsxs("select",{ref:r,className:A(Oc.select,s),...o,children:[n&&i.jsx("option",{value:"",disabled:!0,children:n}),e.map(a=>i.jsx("option",{value:a.value,children:a.label},a.value))]})});const Fc="_overlay_1yaef_1",Pc="_contentWrapper_1yaef_7",Hc="_dialog_1yaef_16",zc="_header_1yaef_28",Wc="_title_1yaef_36",Lc="_closeBtn_1yaef_43",Uc="_body_1yaef_57",Kc="_footer_1yaef_63",Vc="_bare_1yaef_72",Gc="_bareBody_1yaef_78",Jc="_bareCloseBtn_1yaef_82",Xc="_visuallyHidden_1yaef_101",F={overlay:Fc,contentWrapper:Pc,dialog:Hc,header:zc,title:Wc,closeBtn:Lc,body:Uc,footer:Kc,bare:Vc,bareBody:Gc,bareCloseBtn:Jc,visuallyHidden:Xc},Yc=$e;function Qc({open:t,onOpenChange:e,title:n,children:s,footer:o,width:r,className:a,bare:l=!1}){return i.jsx(En,{open:t,onOpenChange:e,children:i.jsxs(Nn,{children:[i.jsx(Rn,{className:F.overlay}),i.jsx("div",{className:F.contentWrapper,children:i.jsxs(qn,{className:A(F.dialog,l&&F.bare,a),style:r!==void 0?{width:r}:void 0,children:[l?i.jsx(Xe,{className:F.visuallyHidden,children:n}):i.jsxs("div",{className:F.header,children:[i.jsx(Xe,{className:F.title,children:n}),i.jsx($e,{asChild:!0,children:i.jsx("button",{type:"button",className:F.closeBtn,"aria-label":"Close",children:i.jsx(Ee,{size:16})})})]}),i.jsx("div",{className:A(F.body,l&&F.bareBody),children:s}),l&&i.jsx($e,{asChild:!0,children:i.jsx("button",{type:"button",className:F.bareCloseBtn,"aria-label":"Close",children:i.jsx(Ee,{size:16})})}),o&&i.jsx("div",{className:F.footer,children:o})]})})]})})}const Zc="_handle_1ocv1_1",el={handle:Zc};function ut({side:t,onResize:e,className:n}){const s=w.useRef(0),o=w.useCallback(l=>{const d=l.clientX-s.current;s.current=l.clientX,e(t==="left"?d:-d)},[e,t]),r=w.useCallback(l=>{var d,u;window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",r),document.body.style.cursor="",document.body.style.userSelect="",(u=(d=l.target)==null?void 0:d.releasePointerCapture)==null||u.call(d,l.pointerId)},[o]);function a(l){l.preventDefault(),s.current=l.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("pointermove",o),window.addEventListener("pointerup",r)}return i.jsx("div",{className:A(el.handle,n),onPointerDown:a,role:"separator","aria-orientation":"vertical"})}function tl(t,e){var m;const{order:n,sessions:s,createSession:o,activate:r}=D.getState(),l=Ut(n,s,e).find(h=>h.cwd===t),d=((m=l==null?void 0:l.sessions[0])==null?void 0:m.id)??o(t);r(d);const u=D.getState().sessions[d];C.getState().open({id:z.chat(d),kind:"chat",label:(u==null?void 0:u.title)??"New chat",closable:!0,data:{sessionId:d},workspaceCwd:t}),k.getState().setCwd(t)}const nl="_pathRow_9xphl_1",sl="_pathInput_9xphl_9",ol="_list_9xphl_13",rl="_item_9xphl_20",al="_name_9xphl_32",il="_emptyState_9xphl_37",G={pathRow:nl,pathInput:sl,list:ol,item:rl,name:al,emptyState:il};function cl(){const t=k(v=>v.cwdPickerOpen),e=k(v=>v.closeCwdPicker),n=C(v=>v.activeWorkspaceCwd),s=j(v=>v.client),o=Lt(),[r,a]=w.useState("/"),[l,d]=w.useState("/");w.useEffect(()=>{if(!t)return;const v=le(n||"~",o);a(v),d(v)},[t,s,n]);const{data:u,isLoading:m,isError:h,error:p}=yi(r,t&&!!s),x=((u==null?void 0:u.entries)??[]).filter(v=>v.kind==="directory");function b(v){a(v),d(v)}function E(){b(r.split("/").slice(0,-1).join("/")||"/")}function S(){b(l.trim())}function N(){tl(r,o),e()}return i.jsxs(Qc,{open:t,onOpenChange:v=>!v&&e(),title:"Open Workspace",footer:i.jsxs(i.Fragment,{children:[i.jsx(Yc,{asChild:!0,children:i.jsx(P,{size:"sm",variant:"secondary",children:"Cancel"})}),i.jsx(P,{size:"sm",onClick:N,children:"Open this folder"})]}),children:[i.jsxs("div",{className:G.pathRow,children:[i.jsx(P,{size:"xs",variant:"ghost",iconOnly:!0,title:"Up",onClick:E,children:i.jsx(jn,{size:13})}),i.jsx(Oe,{className:G.pathInput,value:l,onChange:v=>d(v.target.value),onKeyDown:v=>{v.key==="Enter"&&(v.preventDefault(),S())}}),i.jsx(P,{size:"xs",onClick:S,children:"Go"})]}),i.jsx("div",{className:G.list,children:m?i.jsx("div",{className:G.emptyState,children:"Loading..."}):h?i.jsxs("div",{className:G.emptyState,children:["Error: ",p instanceof Error?p.message:"unknown error"]}):x.length===0?i.jsx("div",{className:G.emptyState,children:"No subdirectories"}):x.map(v=>i.jsxs("div",{className:G.item,onClick:()=>b(r==="/"?`/${v.name}`:`${r}/${v.name}`),children:[i.jsx(gt,{size:14}),i.jsx("span",{className:G.name,children:v.name})]},v.name))})]})}const ll="_shell_1m1nv_1",dl="_main_1m1nv_7",ul="_sidebarLeft_1m1nv_13",pl="_leftHandle_1m1nv_21",fl="_center_1m1nv_24",hl="_sidebarRight_1m1nv_31",ml="_rightHandle_1m1nv_39",Z={shell:ll,main:dl,sidebarLeft:ul,leftHandle:pl,center:fl,sidebarRight:hl,rightHandle:ml};function gl(){const t=k(a=>a.leftSidebarCollapsed),e=k(a=>a.rightSidebarCollapsed),n=k(a=>a.leftSidebarWidth),s=k(a=>a.rightSidebarWidth),o=k(a=>a.resizeLeftSidebar),r=k(a=>a.resizeRightSidebar);return i.jsxs("div",{className:Z.shell,children:[i.jsx(Yr,{}),i.jsxs("div",{className:Z.main,children:[!t&&i.jsxs("aside",{className:Z.sidebarLeft,style:{width:n},children:[i.jsx(Va,{}),i.jsx(ut,{side:"left",className:Z.leftHandle,onResize:o})]}),i.jsxs("div",{className:Z.center,children:[i.jsx(ni,{}),i.jsx(mi,{})]}),!e&&i.jsxs("aside",{className:Z.sidebarRight,style:{width:s},children:[i.jsx(ut,{side:"right",className:Z.rightHandle,onResize:r}),i.jsx(qc,{})]})]}),i.jsx(cl,{})]})}function _l(){const t=w.useRef(!1);w.useEffect(()=>{if(t.current)return;if(t.current=!0,window.location.hash.includes("offer=")){const d=window.location.href;k.getState().setHost(d),j.getState().connect({url:d});return}const e=new URLSearchParams(window.location.search),n=e.get("host"),s=e.get("pair"),o=e.get("password"),r=e.get("cwd"),a=e.get("connect")==="1",l=k.getState();if(s?l.setHost(s):n&&l.setHost(n),o&&l.setPassword(o),r&&l.setCwd(r),s)j.getState().connect({url:s});else if(a){const{host:d,password:u}=k.getState();j.getState().connect({url:d,password:u||void 0})}},[])}function yl(t){return typeof t=="object"&&t!==null&&"kind"in t}function bl(t){const e=[];for(const n of t)if(yl(n))if(n.kind==="other")n.event&&e.push(n.event);else for(const s of n.events??[])e.push(s);return e}function wl(){const t=j(s=>s.client),e=j(s=>s.status),n=w.useRef(!1);w.useEffect(()=>{e!=="open"||!t||n.current||(n.current=!0,(async()=>{var d;let s=[];try{s=(await t.connection.request("list_agents_request",{all:!1})).agents??[]}catch{s=[]}s.sort((u,m)=>(m.lastActivity??0)-(u.lastActivity??0));const o=D.getState();for(const u of s){if(o.findByAgentId(u.agentId))continue;let m=He;try{const h=await t.agent(u.agentId).timeline.fetch({direction:"after",limit:200});m=bl(h.items).reduce(zt,He)}catch{}o.hydrate({id:`s-${u.agentId.slice(0,12)}`,agentId:u.agentId,title:u.title||((d=u.cwd)==null?void 0:d.split("/").pop())||"Restored",status:u.status??"idle",cwd:u.cwd||"~",timeline:m,userMessageCount:m.rows.filter(h=>h.kind==="user").length})}const r=await Ge(t).catch(()=>null),{order:a,sessions:l}=D.getState();if(a.length>0){const u=l[a[0]??""];if(u){const m=le(u.cwd||"~",r);D.getState().activate(u.id),k.getState().setCwd(u.cwd),C.getState().open({id:z.chat(u.id),kind:"chat",label:u.title,closable:!0,data:{sessionId:u.id},workspaceCwd:m})}}else{const u=k.getState().cwd||"~",m=le(u,r),h=D.getState().createSession(u);C.getState().open({id:z.chat(h),kind:"chat",label:"New chat",closable:!0,data:{sessionId:h},workspaceCwd:m})}})())},[e,t])}function Sl(){w.useEffect(()=>{function t(e){const n=k.getState();if(e.key==="Escape"){n.closeCwdPicker(),n.closeSessionMenu();return}const s=e.ctrlKey||e.metaKey;if(s&&e.key.toLowerCase()==="t"){e.preventDefault(),Wt(C.getState().activeWorkspaceCwd||"~");return}if(s&&e.key.toLowerCase()==="w"){const{activeTabId:o,tabs:r,close:a}=C.getState();if(!o)return;const l=r.find(d=>d.id===o);(l==null?void 0:l.closable)!==!1&&(e.preventDefault(),a(o))}}return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[])}function xl(){return _l(),wl(),Sl(),null}function vl(){return i.jsxs(Ns,{children:[i.jsx(xl,{}),i.jsx(gl,{})]})}const Yt=document.getElementById("root");if(!Yt)throw new Error("Missing #root element");on.createRoot(Yt).render(i.jsx(w.StrictMode,{children:i.jsx(vl,{})}));export{P as B,Qc as D,ii as S,Bl as T,j as a,C as b,dt as c,Al as e,Kt as r,Qr as t,D as u};
|
|
3
|
+
//# sourceMappingURL=index-Bo913WdX.js.map
|