@av-pi-studio/web-client 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/web/assets/BinaryFallbackViewer-BVnOJSh_.js +2 -0
  3. package/dist/web/assets/BinaryFallbackViewer-BVnOJSh_.js.map +1 -0
  4. package/dist/web/assets/BinaryFallbackViewer-CLiNWU_S.css +1 -0
  5. package/dist/web/assets/ChatPanel-BOR3MYdN.js +3 -0
  6. package/dist/web/assets/ChatPanel-BOR3MYdN.js.map +1 -0
  7. package/dist/web/assets/ChatPanel-DW5U4HRf.css +1 -0
  8. package/dist/web/assets/CodeView-BJb8T6q4.js +2 -0
  9. package/dist/web/assets/CodeView-BJb8T6q4.js.map +1 -0
  10. package/dist/web/assets/CodeView-CLRODhB8.css +1 -0
  11. package/dist/web/assets/DiffView-B4H-yHuX.js +3 -0
  12. package/dist/web/assets/DiffView-B4H-yHuX.js.map +1 -0
  13. package/dist/web/assets/DiffView-CRbeRztO.css +1 -0
  14. package/dist/web/assets/FilePanel-DIInFr3h.css +1 -0
  15. package/dist/web/assets/FilePanel-lERDJldp.js +3 -0
  16. package/dist/web/assets/FilePanel-lERDJldp.js.map +1 -0
  17. package/dist/web/assets/ImageViewer-Cnr0mhRu.js +2 -0
  18. package/dist/web/assets/ImageViewer-Cnr0mhRu.js.map +1 -0
  19. package/dist/web/assets/ImageViewer-ijzMsq8H.css +1 -0
  20. package/dist/web/assets/MarkdownFileViewer-BD5Ri_Fb.css +1 -0
  21. package/dist/web/assets/MarkdownFileViewer-CDHJBxdH.js +2 -0
  22. package/dist/web/assets/MarkdownFileViewer-CDHJBxdH.js.map +1 -0
  23. package/dist/web/assets/TerminalPanel-BQj62G6N.css +1 -0
  24. package/dist/web/assets/TerminalPanel-cnkK_YF5.js +2 -0
  25. package/dist/web/assets/TerminalPanel-cnkK_YF5.js.map +1 -0
  26. package/dist/web/assets/TextViewer-DWYO-J8z.js +2 -0
  27. package/dist/web/assets/TextViewer-DWYO-J8z.js.map +1 -0
  28. package/dist/web/assets/VideoViewer-BBuZ4wou.css +1 -0
  29. package/dist/web/assets/VideoViewer-D2ZnEQoA.js +2 -0
  30. package/dist/web/assets/VideoViewer-D2ZnEQoA.js.map +1 -0
  31. package/dist/web/assets/index-DnTTpAX5.js +3 -0
  32. package/dist/web/assets/index-DnTTpAX5.js.map +1 -0
  33. package/dist/web/assets/index-DrGTLQo0.css +1 -0
  34. package/dist/web/assets/markdown-BQwXm0MF.css +1 -0
  35. package/dist/web/assets/markdown-Biwdm3dP.js +2 -0
  36. package/dist/web/assets/markdown-Biwdm3dP.js.map +1 -0
  37. package/dist/web/assets/use-file-download-BpyWNVxA.js +2 -0
  38. package/dist/web/assets/use-file-download-BpyWNVxA.js.map +1 -0
  39. package/dist/web/assets/vendor-BFXtRv5b.js +83 -0
  40. package/dist/web/assets/vendor-BFXtRv5b.js.map +1 -0
  41. package/dist/web/assets/vendor-dnd-D9kA7FgH.js +6 -0
  42. package/dist/web/assets/vendor-dnd-D9kA7FgH.js.map +1 -0
  43. package/dist/web/assets/vendor-highlight-DaTzDdJW.js +5 -0
  44. package/dist/web/assets/vendor-highlight-DaTzDdJW.js.map +1 -0
  45. package/dist/web/assets/vendor-icons-DUloQbkI.js +182 -0
  46. package/dist/web/assets/vendor-icons-DUloQbkI.js.map +1 -0
  47. package/dist/web/assets/vendor-markdown-CpaoCv-a.js +36 -0
  48. package/dist/web/assets/vendor-markdown-CpaoCv-a.js.map +1 -0
  49. package/dist/web/assets/vendor-overlays-Bo99M0pM.js +2 -0
  50. package/dist/web/assets/vendor-overlays-Bo99M0pM.js.map +1 -0
  51. package/dist/web/assets/vendor-query-CAh-Aqig.js +2 -0
  52. package/dist/web/assets/vendor-query-CAh-Aqig.js.map +1 -0
  53. package/dist/web/assets/vendor-react-BoIQBqDW.js +50 -0
  54. package/dist/web/assets/vendor-react-BoIQBqDW.js.map +1 -0
  55. package/dist/web/assets/vendor-terminal-BhzX2_ts.js +10 -0
  56. package/dist/web/assets/vendor-terminal-BhzX2_ts.js.map +1 -0
  57. package/dist/web/assets/vendor-terminal-DYP7pi_n.css +32 -0
  58. package/dist/web/index.html +21 -0
  59. package/package.json +56 -0
@@ -0,0 +1,3 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatPanel-BOR3MYdN.js","assets/vendor-react-BoIQBqDW.js","assets/vendor-query-CAh-Aqig.js","assets/vendor-icons-DUloQbkI.js","assets/markdown-Biwdm3dP.js","assets/vendor-highlight-DaTzDdJW.js","assets/vendor-markdown-CpaoCv-a.js","assets/vendor-BFXtRv5b.js","assets/markdown-BQwXm0MF.css","assets/DiffView-B4H-yHuX.js","assets/DiffView-CRbeRztO.css","assets/vendor-overlays-Bo99M0pM.js","assets/vendor-dnd-D9kA7FgH.js","assets/ChatPanel-DW5U4HRf.css","assets/FilePanel-lERDJldp.js","assets/FilePanel-DIInFr3h.css","assets/TerminalPanel-cnkK_YF5.js","assets/vendor-terminal-BhzX2_ts.js","assets/vendor-terminal-DYP7pi_n.css","assets/TerminalPanel-BQj62G6N.css"])))=>i.map(i=>d[i]);
2
+ var bt=Object.defineProperty;var _t=(t,e,n)=>e in t?bt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var k=(t,e,n)=>_t(t,typeof e!="symbol"?e+"":e,n);import{r as v,j as a,d as wt}from"./vendor-react-BoIQBqDW.js";import{Q as yt,a as St,u as vt,b as xt}from"./vendor-query-CAh-Aqig.js";import{A as c,B as m,C as E,D as We,E as q,F as ce,G as H,H as N,I as y,J as B,K as L,L as ge,M as K}from"./vendor-BFXtRv5b.js";import{L as kt,P as It,a as Ct,b as Tt,c as jt,E as Nt,C as Rt,d as Et,F as At,e as He,f as Bt,S as $t,G as Mt,g as Dt,M as Pt,X as me,A as Le,h as Ue,i as qt,T as zt,R as Ot,j as Ft}from"./vendor-icons-DUloQbkI.js";import{R as Wt,T as Ht,P as Lt,C as Ut,I as le,S as Vt,D as Gt,a as Kt,b as Xt,c as Jt,d as Re,e as ye}from"./vendor-overlays-Bo99M0pM.js";import{u as Yt,a as Zt,D as Qt,c as en,S as tn,h as nn,P as sn,b as on,C as rn}from"./vendor-dnd-D9kA7FgH.js";import{_ as Ce}from"./vendor-highlight-DaTzDdJW.js";import"./vendor-markdown-CpaoCv-a.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 i of r.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).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 an=new yt;function Ve(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 cn(t){return Math.max(0,Math.min(255,Math.round(t)))}function ln({r:t,g:e,b:n}){const s=o=>cn(o).toString(16).padStart(2,"0");return`#${s(t)}${s(e)}${s(n)}`}function dn(t){const{r:e,g:n,b:s}=Ve(t),o=r=>{const i=r/255;return i<=.03928?i/12.92:((i+.055)/1.055)**2.4};return .2126*o(e)+.7152*o(n)+.0722*o(s)}function Te(t,e="#18181b",n="#ffffff"){return dn(t)>.45?e:n}function un(t,e){const{r:n,g:s,b:o}=Ve(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 de(t){const e=t.trim().replace(/^#/,"");return(e.length===3||e.length===6)&&!/[^0-9a-fA-F]/.test(e)}const P=(t,e,n,s,o,r,i,l,d,u,g)=>({50:t,100:e,200:n,300:s,400:o,500:r,600:i,700:l,800:d,900:u,950:g}),f={zinc:P("#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#71717a","#52525b","#3f3f46","#27272a","#18181b","#09090b"),gray:P("#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#6b7280","#4b5563","#374151","#1f2937","#111827","#030712"),slate:P("#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#64748b","#475569","#334155","#1e293b","#0f172a","#020617"),blue:P("#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1d4ed8","#1e40af","#1e3a8a","#172554"),green:P("#f0fdf4","#dcfce7","#bbf7d0","#86efac","#4ade80","#22c55e","#16a34a","#15803d","#166534","#14532d","#052e16"),red:P("#fef2f2","#fee2e2","#fecaca","#fca5a5","#f87171","#ef4444","#dc2626","#b91c1c","#991b1b","#7f1d1d","#450a0a"),teal:P("#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#14b8a6","#0d9488","#0f766e","#115e59","#134e4a","#042f2e"),amber:P("#fffbeb","#fef3c7","#fde68a","#fcd34d","#fbbf24","#f59e0b","#d97706","#b45309","#92400e","#78350f","#451a03"),yellow:P("#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#eab308","#ca8a04","#a16207","#854d0e","#713f12","#422006"),purple:P("#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#a855f7","#9333ea","#7e22ce","#6b21a8","#581c87","#3b0764"),orange:P("#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#c2410c","#9a3412","#7c2d12","#431407"),white:"#ffffff",black:"#000000"},pn={statusSuccess:"#16a34a",statusDanger:"#dc2626",statusWarning:"#f59e0b",statusMerged:"#9333ea"},fn={statusSuccess:"#15803d",statusDanger:"#b91c1c",statusWarning:"#d97706",statusMerged:"#7c3aed"};function hn(){return{keyword:f.purple[300],string:f.green[300],number:f.orange[300],boolean:f.orange[300],comment:f.zinc[500],function:f.blue[300],variable:f.zinc[200],type:f.teal[300],class:f.amber[300],constant:f.orange[300],operator:f.zinc[400],punctuation:f.zinc[400],tag:f.red[300],attribute:f.amber[300],property:f.blue[200],regexp:f.teal[300],escape:f.orange[200],heading:f.blue[300],link:f.blue[400],deleted:f.red[400],inserted:f.green[400]}}function mn(){return{keyword:f.purple[700],string:f.green[700],number:f.orange[700],boolean:f.orange[700],comment:f.zinc[500],function:f.blue[700],variable:f.zinc[800],type:f.teal[700],class:f.amber[700],constant:f.orange[700],operator:f.zinc[600],punctuation:f.zinc[600],tag:f.red[700],attribute:f.amber[700],property:f.blue[700],regexp:f.teal[700],escape:f.orange[700],heading:f.blue[700],link:f.blue[600],deleted:f.red[700],inserted:f.green[700]}}function Ge(t,e,n){return{background:t,foreground:e,cursor:n,cursorAccent:t,selectionBackground:"rgba(255,255,255,0.18)",black:f.zinc[900],red:f.red[500],green:f.green[500],yellow:f.amber[500],blue:f.blue[500],magenta:f.purple[500],cyan:f.teal[500],white:f.zinc[300],brightBlack:f.zinc[600],brightRed:f.red[400],brightGreen:f.green[400],brightYellow:f.amber[400],brightBlue:f.blue[400],brightMagenta:f.purple[400],brightCyan:f.teal[400],brightWhite:f.zinc[50]}}function ne(t){const e=f.zinc[50],n=Te(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:f.white,success:t.accent,successForeground:f.white,border:t.border,borderAccent:t.borderAccent,...pn,diffAddition:f.green[400],diffDeletion:f.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:f,syntax:hn(),terminal:Ge(t.surface0,e,t.accent)}}function gn(){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:Te(e),destructive:"#b04138",destructiveForeground:"#ffffff",success:e,successForeground:"#ffffff",border:"#e4e4e7",borderAccent:"#ececf1",...fn,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:f,syntax:mn(),terminal:{...Ge("#ffffff",t,e),selectionBackground:"rgba(0,0,0,0.15)",white:"#ffffff",brightWhite:"#fafafa"}}}const bn={light:"#ffffff",dark:"#3b62b0",zinc:"#808080",midnight:"#4A6BA8",claude:"#D97757",ghostty:"#8caaee"},Ke=["light","dark","zinc","midnight","claude","ghostty"];function _n(t){if(t==="light")return gn();switch(t){case"dark":return ne({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 ne({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 ne({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 ne({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 ne({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 Xe={};for(const t of Ke){const e=t==="light"?"light":"dark";Xe[t]={name:t,colorScheme:e,colors:_n(t),swatch:bn[t]}}const wn=Xe,yn={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},Je={xs:12,code:12,sm:14,base:16,lg:18,xl:20,"2xl":22,"3xl":26,"4xl":34},Sn={normal:"400",medium:"500",semibold:"600",bold:"700"},vn={none:0,sm:2,base:4,md:6,lg:8,xl:12,"2xl":16,full:9999},xn={0:0,1:1,2:2},kn={0:0,50:.5,100:1},In={xs:12,sm:14,md:16,lg:20},Cn={diff:22},Ye='system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',Ze='ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace';function Tn(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 Qe(t){const e=wn[t];return{name:t,colorScheme:e.colorScheme,colors:e.colors,spacing:yn,fontSize:{...Je},fontFamily:{ui:Ye,mono:Ze},lineHeight:{...Cn},iconSize:In,fontWeight:Sn,borderRadius:vn,borderWidth:xn,opacity:kn,shadow:Tn(e.colorScheme),swatch:e.swatch}}const jn=16,Nn=10,Rn=24;function En(t,e){const n=e.themeName??t.name,s=Qe(n),o=e.uiFont&&e.uiFont.trim()!==""?e.uiFont:Ye,r=e.monoFont&&e.monoFont.trim()!==""?e.monoFont:Ze;let i={...s.fontSize};if(e.fontSize!=null){const d=Math.max(Nn,Math.min(Rn,e.fontSize))/jn,u=["xs","code","sm","base","lg","xl","2xl","3xl","4xl"];for(const g of u){const p=Je[g];i[g]=Math.round(p*d)}}return{...s,fontSize:i,fontFamily:{ui:o,mono:r}}}function An(t){return Qe(t)}const Bn="dark";function $n(t){const e={};Mn(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 Mn(t,e){const{palette:n,syntax:s,terminal:o,...r}=t;for(const[i,l]of Object.entries(r))typeof l=="string"&&(e[`--pi-color-${i}`]=l);s&&Dn(s,e),o&&(e["--pi-terminal-bg"]=o.background,e["--pi-terminal-fg"]=o.foreground)}function Dn(t,e){for(const[n,s]of Object.entries(t))typeof s=="string"&&(e[`--syntax-${Pn(n)}`]=s)}function Pn(t){return t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function qn(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 zn(t){const e=$n(t);qn(e)}const se=c().min(1,"Asset path must not be empty"),On=m({accent:c().refine(de,{message:"accent must be a valid #rrggbb hex color"}),accentBright:c().refine(de,{message:"accentBright must be a valid #rrggbb hex color"}).optional(),accentForeground:c().refine(de,{message:"accentForeground must be a valid #rrggbb hex color"}).optional(),swatch:c().refine(de,{message:"swatch must be a valid #rrggbb hex color"}).optional()}),Fn=m({logoLight:se,logoDark:se,logoMark:se.optional(),icon:se,splash:se.optional()}),Wn=m({docs:c().url().optional(),support:c().url().optional(),issues:c().url().optional(),website:c().url().optional()}).optional(),Hn=m({copyright:c().optional(),companyName:c().optional()}).optional();m({productName:c().min(1,"productName is required"),shortName:c().optional(),tagline:c().optional(),colors:On,assets:Fn,links:Wn,legal:Hn});function Ln(t){const e=t.accent,n=t.accentBright??un(e,.35),s=t.accentForeground??Te(e),o=t.swatch??e;return{accent:e,accentBright:n,accentForeground:s,swatch:o}}function Un(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 Ee="pi-studio-appearance";function Vn(t,e){let n=l(t),s=null;function o(g){return g==="system"?typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":g}function r(g,p){const h=o(g),T=An(h);let w=En(T,{...p,themeName:h});if(e!=null&&e.colors){const b=Ln(e.colors);w=Un(w,b)}return w}function i(){const g=JSON.stringify({mode:n.mode,settings:n.settings});t.set(Ee,g)}function l(g){const p=g.get(Ee);let h=Bn,T={};if(p)try{const b=JSON.parse(p);b.mode&&(Ke.includes(b.mode)||b.mode==="system")&&(h=b.mode),b.settings&&typeof b.settings=="object"&&(T=b.settings)}catch{}const w=r(h,T);return{mode:h,settings:T,resolvedTheme:w}}function d(){n={...n,resolvedTheme:r(n.mode,n.settings)},i()}const u={getState(){return n},setMode(g){n={...n,mode:g},d(),u.apply()},updateSettings(g){n={...n,settings:{...n.settings,...g}},d(),u.apply()},apply(){zn(n.resolvedTheme)},listen(){if(typeof window>"u")return()=>{};const g=window.matchMedia("(prefers-color-scheme: dark)"),p=()=>{n.mode==="system"&&(d(),u.apply())};return g.addEventListener("change",p),s=()=>g.removeEventListener("change",p),s}};return u}function Gn({store:t,brandConfig:e,children:n}){const s=v.useRef(null);return s.current||(s.current=Vn(t,e),s.current.apply()),v.useEffect(()=>s.current.listen(),[]),a.jsx(a.Fragment,{children:n})}const Kn={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 Xn({children:t}){return a.jsx(Gn,{store:Kn,children:a.jsx(St,{client:an,children:t})})}const Jn="_btn_1chbg_4",Yn="_secondary_1chbg_44",Zn="_outline_1chbg_53",Qn="_ghost_1chbg_62",es="_destructive_1chbg_72",ts="_iconOnly_1chbg_82",ns="_loadingSpinner_1chbg_89",ss="_piSpin_1chbg_1",ue={btn:Jn,default:"_default_1chbg_35",secondary:Yn,outline:Zn,ghost:Qn,destructive:es,iconOnly:ts,loadingSpinner:ns,piSpin:ss},Ae={xs:28,sm:32,md:36,lg:40},os={xs:12,sm:14,md:16,lg:20},Be={xs:8,sm:10,md:12,lg:16},rs={xs:12,sm:13,md:14,lg:15};function as(t){const{disabled:e,loading:n}=t;return e||n?{opacity:.5,isGhostHover:!1}:{opacity:1,isGhostHover:!1}}function D({variant:t="default",size:e="md",loading:n=!1,disabled:s=!1,leftIcon:o,trailing:r,iconOnly:i=!1,children:l,style:d,className:u,...g}){const{opacity:p}=as({disabled:s??!1,loading:n}),h=s||n,T=os[e];return a.jsxs("button",{className:E(ue.btn,ue[t],i&&ue.iconOnly,u),disabled:h,"aria-busy":n||void 0,style:{minHeight:Ae[e],paddingLeft:i?void 0:Be[e],paddingRight:i?void 0:Be[e],fontSize:rs[e],opacity:p,...i?{width:Ae[e]}:{},...d},...g,children:[n?a.jsx(kt,{className:ue.loadingSpinner,size:T,"aria-hidden":!0}):o?a.jsx("span",{"aria-hidden":!0,style:{display:"flex",alignItems:"center",flexShrink:0},children:o}):null,l,r&&!n&&a.jsx("span",{"aria-hidden":!0,style:{display:"flex",alignItems:"center",flexShrink:0},children:r})]})}const is="_input_a7qyq_3",cs="_textarea_a7qyq_32",Se={input:is,textarea:cs},ve=v.forwardRef(function({className:e,...n},s){return a.jsx("input",{ref:s,className:E(Se.input,e),...n})}),zi=v.forwardRef(function({className:e,...n},s){return a.jsx("textarea",{ref:s,className:E(Se.input,Se.textarea,e),...n})}),et=c().datetime({offset:!0});c().uuid();c().regex(/^[A-Za-z0-9_-]+$/,"expected base64url");const ie=We([q(),et]),ls=ce(["mobile","browser","cli","mcp"]),ds=m({type:y("hello"),clientId:c(),clientType:ls,protocolVersion:q(),appVersion:c().optional(),capabilities:H(c(),N()).optional()}),us=m({status:y("server_info"),serverId:c(),hostname:c().optional(),version:c().optional(),capabilities:H(c(),B()),features:H(c(),B())}),ps=m({type:y("status"),payload:us}),fs=m({type:y("ping"),requestId:c(),clientSentAt:ie.optional()}),hs=m({type:y("pong"),requestId:c(),clientSentAt:ie.optional(),serverReceivedAt:ie,serverSentAt:ie}),tt=ce(["initializing","idle","running","error","closed"]),nt=m({mimeType:c().optional(),data:c().optional()}).passthrough(),ms=m({prs:L(B()).optional(),issues:L(B()).optional()}).passthrough(),gs=m({provider:c(),cwd:c(),modeId:c().optional(),model:c().optional(),thinkingOptionId:c().optional(),featureValues:H(c(),B()).optional(),title:c().nullable().optional(),approvalPolicy:c().optional(),sandboxMode:c().optional(),networkAccess:N().optional(),webSearch:N().optional(),extra:m({pi:B().optional()}).passthrough().optional(),systemPrompt:c().optional(),mcpServers:H(c(),B()).optional()}),bs=m({type:y("create_agent_request"),requestId:c(),config:gs,env:H(c(),c()).optional(),workspaceId:c().optional(),worktreeName:c().optional(),initialPrompt:c().optional(),clientMessageId:c().optional(),outputSchema:H(c(),B()).optional(),images:L(nt).optional(),attachments:ms.optional(),git:B().optional(),worktree:B().optional(),autoArchive:N().optional(),labels:H(c(),c()).default({})}),_s=m({type:y("create_agent_response"),requestId:c(),payload:m({agentId:c()}).passthrough()}),ws=m({type:y("agent_update"),agentId:c(),status:tt.optional(),title:c().nullable().optional(),labels:H(c(),c()).optional()}),ys=m({type:y("agent_status"),agentId:c(),status:tt}),Ss=m({type:y("agent_list"),agents:L(m({id:c()}).passthrough())}),vs=m({type:y("agent_deleted"),agentId:c()}),xs=m({type:y("agent_archived"),agentId:c(),archivedAt:et.optional()}),st=ge("kind",[m({kind:y("shell"),command:c().optional(),output:c().optional()}),m({kind:y("read"),path:c().optional(),output:c().optional()}),m({kind:y("edit"),path:c().optional(),diff:c().optional(),output:c().optional()}),m({kind:y("write"),path:c().optional(),output:c().optional()}),m({kind:y("search"),query:c().optional(),output:c().optional()}),m({kind:y("fetch"),url:c().optional(),output:c().optional()}),m({kind:y("task"),description:c().optional(),output:c().optional()})]),ks=ge("kind",[m({kind:y("user_message"),messageId:c().optional(),text:c().optional(),images:L(nt).optional()}),m({kind:y("assistant_message"),messageId:c().optional(),text:c().optional()}),m({kind:y("reasoning"),text:c().optional()}),m({kind:y("tool_call"),callId:c().optional(),tool:st,status:c().optional()}),m({kind:y("turn_started"),turnId:c().optional()}),m({kind:y("turn_completed"),turnId:c().optional()}),m({kind:y("turn_failed"),turnId:c().optional(),error:c().optional()}),m({kind:y("turn_canceled"),turnId:c().optional()}),m({kind:y("error"),message:c().optional()})]),Is=m({type:y("agent_stream"),agentId:c(),seq:q().optional(),timestamp:ie.optional(),event:ks}),Cs=ce(["before","after"]),Ts=m({start:q(),end:q()}),js=m({type:y("fetch_agent_timeline_request"),requestId:c(),agentId:c(),cursor:c().nullable().optional(),direction:Cs,limit:q().optional()}),Ns=m({type:y("fetch_agent_timeline_response"),requestId:c(),agentId:c().optional(),items:L(B()),seqStart:q(),seqEnd:q(),sourceSeqRanges:L(Ts),collapsed:N(),hasNewer:N(),startCursor:c().nullable().optional(),endCursor:c().nullable().optional()}),Rs=m({type:y("agent_permission_request"),requestId:c(),agentId:c(),toolName:c().optional(),tool:st.optional(),action:B().optional(),responses:L(c()).optional()}),Es=m({type:y("agent_permission_resolved"),requestId:c(),agentId:c(),decision:c().optional()}),As=m({type:y("agent.permission.respond.request"),requestId:c(),permissionRequestId:c(),response:B()}),Bs=m({type:y("agent.permission.respond.response"),requestId:c(),payload:m({resolved:N()}).passthrough()}),$s=m({type:y("respond_to_permission"),requestId:c(),permissionRequestId:c(),response:B()}),ot=ce(["conversation","files","both"]),Ms=m({type:y("agent.rewind.request"),requestId:c(),agentId:c(),messageId:c(),mode:ot}).passthrough(),Ds=m({type:y("agent.rewind.response"),requestId:c(),payload:m({agentId:c(),messageId:c(),mode:ot,truncatedAt:c().optional()}).passthrough()}).passthrough(),Ps=m({type:y("rpc_error"),requestId:c(),code:c().optional(),message:c().optional(),error:c().optional()}),qs=ge("type",[bs,_s,ws,ys,Ss,vs,xs,Is,js,Ns,Rs,Es,As,Bs,$s,Ms,Ds,Ps]),zs=m({type:c()}).passthrough(),Os=m({type:y("session"),message:We([qs,zs])});ge("type",[ds,ps,fs,hs,Os]);const Y={Output:1,Input:2,Resize:3,Snapshot:4,Restore:5},Fs=Object.fromEntries(Object.entries(Y).map(([t,e])=>[e,t])),rt=m({rows:q().int().nonnegative(),cols:q().int().nonnegative()});class ae extends Error{constructor(e){super(e),this.name="TerminalFrameError"}}const Ws=new TextEncoder,Hs=new TextDecoder;function Ls(t){if(!Number.isInteger(t)||t<0||t>255)throw new ae(`slot must be an integer 0–255, got ${t}`)}function oe(t,e,n){const s=new Uint8Array(2+n.length);return s[0]=t,s[1]=e,s.set(n,2),s}function Oi(t){switch(Ls(t.slot),t.opcode){case"Output":return oe(Y.Output,t.slot,t.data);case"Input":return oe(Y.Input,t.slot,t.data);case"Snapshot":return oe(Y.Snapshot,t.slot,t.data);case"Restore":return oe(Y.Restore,t.slot,t.data);case"Resize":{const e=JSON.stringify(rt.parse({rows:t.rows,cols:t.cols}));return oe(Y.Resize,t.slot,Ws.encode(e))}}}function Us(t){if(t.length<2)throw new ae(`frame too short: ${t.length} bytes (need ≥ 2)`);const e=t[0],n=t[1],s=Fs[e];if(!s)throw new ae(`unknown terminal opcode 0x${e.toString(16)}`);const o=t.subarray(2);if(s==="Resize"){let r;try{r=JSON.parse(Hs.decode(o))}catch{throw new ae("resize payload is not valid JSON")}const i=rt.safeParse(r);if(!i.success)throw new ae("resize payload is not { rows, cols }");return{opcode:"Resize",slot:n,rows:i.data.rows,cols:i.data.cols}}return{opcode:s,slot:n,data:o.slice()}}const at={Begin:16,Chunk:17,End:18,Error:19},Vs=Object.fromEntries(Object.entries(at).map(([t,e])=>[e,t])),Gs=m({transferId:c(),fileName:c().optional(),mimeType:c().optional(),totalBytes:q().int().nonnegative().optional()});class pe extends Error{constructor(e){super(e),this.name="FileTransferFrameError"}}new TextEncoder;const $e=new TextDecoder;function Ks(t){if(t.length<2)throw new pe(`frame too short: ${t.length} bytes (need ≥ 2)`);const e=t[0],n=t[1],s=Vs[e];if(!s)throw new pe(`unknown file-transfer opcode 0x${e.toString(16)}`);const o=t.subarray(2);switch(s){case"Begin":{let r;try{r=JSON.parse($e.decode(o))}catch{throw new pe("begin payload is not valid JSON")}const i=Gs.safeParse(r);if(!i.success)throw new pe("begin payload is not a valid transfer header");return{opcode:"Begin",stream:n,meta:i.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:$e.decode(o)}}}function Xs(t){try{return Ks(t)}catch{return null}}const Js=c().regex(/^[a-z][a-z0-9-]*$/,"invalid provider id"),Ys=ce(["safe","moderate","dangerous","planning"]),Zs=m({supportsStreaming:N(),supportsSessionPersistence:N(),supportsDynamicModes:N(),supportsMcpServers:N(),supportsReasoningStream:N(),supportsToolInvocations:N(),supportsRewindConversation:N().optional(),supportsRewindFiles:N().optional(),supportsRewindBoth:N().optional()}).passthrough(),Qs=m({id:c(),label:c().optional(),description:c().optional(),icon:c().optional(),colorTier:Ys});m({id:Js,label:c(),description:c().optional(),extends:c().optional(),modes:L(Qs),capabilities:Zs});function eo(t){return typeof t=="string"?t:t instanceof Uint8Array||Buffer.isBuffer(t)?t.toString("utf8"):String(t??"")}function it(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 i=t??(()=>new WebSocket(s));try{e=t?i(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,eo(l.reason))},e.onmessage=l=>{var u,g,p,h;const{data:d}=l;d instanceof ArrayBuffer||d instanceof Uint8Array?(u=n.onMessage)==null||u.call(n,d):typeof d=="string"?(g=n.onMessage)==null||g.call(n,d):typeof Blob<"u"&&d instanceof Blob?(p=n.onMessage)==null||p.call(n,d):Buffer.isBuffer(d)&&((h=n.onMessage)==null||h.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 to=1;function Me(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`req-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}class no extends Error{constructor(e,n,s){super(e),this.requestId=n,this.code=s,this.name="RpcError"}}class De extends Error{constructor(e){super(`RPC ${e} timed out`),this.requestId=e,this.name="RpcTimeoutError"}}class so{constructor(e){k(this,"transport");k(this,"rpcTimeoutMs");k(this,"now");k(this,"_state","idle");k(this,"_serverId",null);k(this,"_features",{});k(this,"_serverCapabilities",{});k(this,"pending",new Map);k(this,"sessionHandlers",new Set);k(this,"terminalHandlers",new Set);k(this,"fileTransferHandlers",new Set);k(this,"stateHandlers",new Set);k(this,"helloResolve",null);k(this,"helloReject",null);this.options=e,this.transport=e.transport??it(),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??to,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??Me();return new Promise((r,i)=>{const l=s??this.rpcTimeoutMs,d=l>0?setTimeout(()=>{this.pending.delete(o),i(new De(o))},l):null;this.pending.set(o,{resolve:u=>r(u),reject:i,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=Me();return new Promise((s,o)=>{const r=e>0?setTimeout(()=>{this.pending.delete(n),o(new De(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(at).includes(n)){const r=Xs(e);if(!r)return;for(const i of this.fileTransferHandlers)i(r);return}const o=Us(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 no(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 oo{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 ao(this.daemon,e)}workspace(e){return new io(this.daemon,e)}get providers(){return new co(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 ro{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 ao{constructor(e,n){k(this,"timeline");this.daemon=e,this.agentId=n,this.timeline=new ro(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)})}}class io{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 co{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",{})}}class lo{constructor(e,n={}){k(this,"initialDelayMs");k(this,"maxDelayMs");k(this,"factor");k(this,"jitter");k(this,"maxAttempts");k(this,"setTimer");k(this,"clearTimer");k(this,"random");k(this,"attempt",0);k(this,"timer",null);k(this,"active",!1);k(this,"detachState",null);k(this,"reconnectedHandlers",new Set);k(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 uo(){return"web-"+Math.random().toString(36).slice(2,10)}const C=K()((t,e)=>({status:"idle",serverInfo:null,error:null,daemon:null,client:null,reconnection:null,async connect(n){e().disconnect();const s=n.password?it(l=>new WebSocket(l,[`pi-studio.bearer.${n.password}`])):void 0,o=new so({url:n.url,clientId:n.clientId??uo(),clientType:"browser",capabilities:{},transport:s,rpcTimeoutMs:1800*1e3}),r=new oo(o),i=new lo(o);o.onStateChange(l=>t({status:l})),i.onReconnected(()=>t({error:null})),i.onReconnectFailed(l=>{t({error:l instanceof Error?l.message:String(l)})}),t({daemon:o,client:r,reconnection:i,error:null,status:"connecting"});try{const l=await o.connect();t({serverInfo:l}),i.start()}catch(l){throw t({error:l instanceof Error?l.message:String(l)}),l}},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})}})),po=100,fo=480,ho=220,mo=280;function fe(t){return Math.min(fo,Math.max(po,t))}const x=K()(t=>({host:"ws://127.0.0.1:6767",password:"",cwd:"~",cwdPickerOpen:!1,sessionMenu:null,rightSidebarTab:"files",collapsedWorkspaces:new Set,leftSidebarCollapsed:!1,rightSidebarCollapsed:!1,leftSidebarWidth:ho,rightSidebarWidth:mo,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}),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:fe(e)}),setRightSidebarWidth:e=>t({rightSidebarWidth:fe(e)}),resizeLeftSidebar:e=>t(n=>({leftSidebarWidth:fe(n.leftSidebarWidth+e)})),resizeRightSidebar:e=>t(n=>({rightSidebarWidth:fe(n.rightSidebarWidth+e)}))})),go="_wrap_emmus_1",bo="_dot_emmus_8",_o="_open_emmus_15",wo="_connecting_emmus_18",yo="_closed_emmus_21",So="_idle_emmus_22",vo="_closing_emmus_23",be={wrap:go,dot:bo,open:_o,connecting:wo,closed:yo,idle:So,closing:vo},xo={idle:"disconnected",connecting:"connecting…",open:"connected",closing:"disconnecting…",closed:"disconnected"};function ko(){const t=C(n=>n.status),e=C(n=>n.error);return a.jsxs("span",{className:be.wrap,title:e??void 0,children:[a.jsx("span",{className:E(be.dot,be[t])}),xo[t]??t]})}const Io="_toolbar_12zzc_1",Co="_brand_12zzc_10",To="_sep_12zzc_16",jo="_host_12zzc_22",No="_password_12zzc_25",Ro="_sidebarToggles_12zzc_28",J={toolbar:Io,brand:Co,sep:To,host:jo,password:No,sidebarToggles:Ro};function Eo(){const t=C(h=>h.status),e=C(h=>h.connect),n=C(h=>h.disconnect),s=x(h=>h.host),o=x(h=>h.setHost),r=x(h=>h.password),i=x(h=>h.setPassword),l=x(h=>h.leftSidebarCollapsed),d=x(h=>h.toggleLeftSidebar),u=x(h=>h.rightSidebarCollapsed),g=x(h=>h.toggleRightSidebar),p=t==="open"||t==="connecting";return a.jsxs("div",{className:J.toolbar,children:[a.jsx("span",{className:J.brand,children:"Pi-Studio"}),a.jsx(ko,{}),a.jsx("div",{className:J.sep}),a.jsx(ve,{className:J.host,value:s,onChange:h=>o(h.target.value),placeholder:"ws://host:port",disabled:p}),a.jsx(ve,{className:J.password,type:"password",value:r,onChange:h=>i(h.target.value),placeholder:"password",disabled:p}),t==="open"||t==="connecting"||t==="closing"?a.jsx(D,{size:"sm",onClick:()=>n(),children:"Disconnect"}):a.jsx(D,{size:"sm",variant:"default",onClick:()=>void e({url:s,password:r||void 0}),children:"Connect"}),a.jsxs("div",{className:J.sidebarToggles,children:[a.jsx(D,{size:"sm",variant:"ghost",iconOnly:!0,title:l?"Show sessions sidebar":"Hide sessions sidebar",onClick:()=>d(),children:l?a.jsx(It,{size:16}):a.jsx(Ct,{size:16})}),a.jsx(D,{size:"sm",variant:"ghost",iconOnly:!0,title:u?"Show files/changes sidebar":"Hide files/changes sidebar",onClick:()=>g(),children:u?a.jsx(Tt,{size:16}):a.jsx(jt,{size:16})})]})]})}const xe={rows:[],streamingAssistantIndex:null,streamingReasoningIndex:null,toolIndexByCallId:{}};let Pe=0;function X(){return Pe+=1,`row-${Pe}`}function Ao(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 Bo(t,e){return t??`${e.kind}:${Ao(e)}`}function $o(t){return{...t,streamingAssistantIndex:null,streamingReasoningIndex:null}}function Mo(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 i={kind:"assistant",id:X(),text:"",streaming:!0};n.push(i),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 Do(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 i={kind:"reasoning",id:X(),text:"",streaming:!0};n.push(i),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 Po(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 qo(t,e){var l;const n=Bo(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:Po(d.tool,e.tool),status:s},{...t,rows:r,streamingAssistantIndex:null,streamingReasoningIndex:null})}const i={kind:"tool",id:X(),callId:n,tool:e.tool,status:s};return r.push(i),{...t,rows:r,toolIndexByCallId:{...t.toolIndexByCallId,[n]:r.length-1},streamingAssistantIndex:null,streamingReasoningIndex:null}}function je(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 zo(t,e){const n=je(t),s={kind:"error",id:X(),text:e||"turn failed"};return{...n,rows:[...n.rows,s]}}function Oo(t){const e=je(t),n={kind:"system",id:X(),text:"(canceled)"};return{...e,rows:[...e.rows,n]}}function Fo(t,e){const n={kind:"error",id:X(),text:e||"error"};return{...t,rows:[...t.rows,n]}}function Wo(t,e,n){const s={kind:"user",id:X(),text:e,images:n};return{...t,rows:[...t.rows,s]}}function ct(t,e){switch(e.kind){case"turn_started":return $o(t);case"user_message":return Wo(t,e.text??"",e.images);case"assistant_message":return Mo(t,e.text??"");case"reasoning":return Do(t,e.text??"");case"tool_call":return qo(t,e);case"turn_completed":return je(t);case"turn_failed":return zo(t,e.error);case"turn_canceled":return Oo(t);case"error":return Fo(t,e.message);default:return t}}let qe=0;function Ho(){return qe+=1,`s-${Date.now().toString(36)}-${qe}`}const A=K()((t,e)=>({sessions:{},order:[],activeSessionId:null,createSession(n){const s=Ho(),o={id:s,agentId:null,title:"New chat",status:"idle",cwd:n,timeline:xe,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 i=ct(r.timeline,s);let l=r.title;if(s.kind==="turn_completed"&&l==="New chat"){const d=i.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:i,title:l}}}})},addUserMessage(n){t(s=>{const o=s.sessions[n];return o?{sessions:{...s.sessions,[n]:{...o,userMessageCount:o.userMessageCount+1}}}:s})},activate(n){t({activeSessionId:n})},remove(n){t(s=>{const{[n]:o,...r}=s.sessions,i=s.order.filter(d=>d!==n),l=s.activeSessionId===n?i[0]??null:s.activeSessionId;return{sessions:r,order:i,activeSessionId:l}})},findByAgentId(n){return Object.values(e().sessions).find(s=>s.agentId===n)}}));function _e(t,e){return t.filter(n=>n.workspaceCwd===e)}const I=K()((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),i=s.tabs.filter(u=>u.id!==n);let l=s.activeTabId;const d={...s.lastActiveTabByWorkspace};if(l===n){const u=_e(i,o.workspaceCwd),g=Math.min(r,u.length-1),p=u[g];l=(p==null?void 0:p.id)??null}if(d[o.workspaceCwd]===n){const u=_e(i,o.workspaceCwd)[0];u?d[o.workspaceCwd]=u.id:delete d[o.workspaceCwd]}return{tabs:i,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=_e(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),i=o.tabs.findIndex(u=>u.id===s);if(r===-1||i===-1||r===i)return o;const l=o.tabs.slice(),[d]=l.splice(r,1);return d?(l.splice(i,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 we=0;function lt(t){we+=1,I.getState().open({id:z.terminal(`new-${we}`),kind:"terminal",label:`Terminal ${we}`,closable:!0,data:{slot:null,cwd:t},workspaceCwd:t})}const Z=K()((t,e)=>({currentPath:"",rootPath:"",setRoot:n=>t({rootPath:n,currentPath:n}),setPath:n=>t({currentPath:n}),goUp:()=>{const{currentPath:n,rootPath:s}=e();if(!s||n===s)return;const o=n.split("/").slice(0,-1).join("/")||"/",r=o.length<s.length||!o.startsWith(s)?s:o;t({currentPath:r})}}));let Q=null;const ke=new Set;function Lo(t){return ke.add(t),()=>ke.delete(t)}async function Ne(t){var e;if(Q)return Q;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");Q="/home/"+((o==null?void 0:o.name)||"user")}catch{return"/tmp"}for(const n of ke)n(Q);return Q}function Uo(){return Q}async function Vo(t,e){return e==="~"||e.startsWith("~/")?await Ne(t)+e.slice(1):e}function dt(){const t=C(o=>o.client),e=C(o=>o.status),[n,s]=v.useState(Uo());return v.useEffect(()=>Lo(s),[]),v.useEffect(()=>{!t||e!=="open"||n||Ne(t)},[t,e,n]),n}const Go="_dot_202py_3",Ko={dot:Go};function Xo(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 ze=8,Jo={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 Yo({className:t,...e}){const n=Xo(e);return n?a.jsx("span",{className:`${Ko.dot}${t?` ${t}`:""}`,style:{width:ze,height:ze,backgroundColor:Jo[n]??"currentColor"},role:"presentation"}):null}const Zo={initializing:"queued",idle:"idle",running:"running",error:"error",closed:"finished"};function Qo(t){return Zo[t]??"idle"}const er="_wrap_sqws5_1",tr="_header_sqws5_7",nr="_list_sqws5_23",sr="_item_sqws5_28",or="_active_sqws5_37",rr="_title_sqws5_40",ar="_meta_sqws5_49",ir="_menuBtn_sqws5_57",cr="_workspaceGroup_sqws5_75",lr="_workspaceHeader_sqws5_78",dr="_workspaceChevron_sqws5_91",ur="_workspaceIcon_sqws5_102",pr="_workspaceLabel_sqws5_106",fr="_workspaceCount_sqws5_112",hr="_newSessionBtn_sqws5_117",mr="_workspaceSessions_sqws5_129",R={wrap:er,header:tr,list:nr,item:sr,active:or,title:rr,meta:ar,menuBtn:ir,workspaceGroup:cr,workspaceHeader:lr,workspaceChevron:dr,workspaceIcon:ur,workspaceLabel:pr,workspaceCount:fr,newSessionBtn:hr,workspaceSessions:mr};function gr({session:t,active:e,onSelect:n,onOpenMenu:s}){return a.jsxs("div",{className:E(R.item,e&&R.active),onClick:n,onContextMenu:o=>{o.preventDefault(),s(o.clientX,o.clientY)},children:[a.jsxs("div",{className:R.title,children:[a.jsx(Yo,{status:Qo(t.status),showInactive:!0}),a.jsx("span",{children:t.title})]}),a.jsxs("div",{className:R.meta,children:[t.cwd||"~"," · ",t.agentId?t.agentId.slice(0,8):"new"," ·"," ",t.userMessageCount," msgs"]}),a.jsx("button",{type:"button",className:R.menuBtn,title:"Actions",onClick:o=>{o.stopPropagation();const r=o.currentTarget.getBoundingClientRect();s(r.left,r.bottom)},children:a.jsx(Nt,{size:14})})]})}const br="_trigger_16o4s_1",_r="_content_16o4s_7",wr="_item_16o4s_16",yr="_danger_16o4s_33",Sr="_sep_16o4s_36",W={trigger:br,content:_r,item:wr,danger:yr,sep:Sr};function vr(){const t=x(w=>w.sessionMenu),e=x(w=>w.closeSessionMenu),n=C(w=>w.client),s=v.useRef(null),[o,r]=v.useState(!1);v.useEffect(()=>{r(t!==null)},[t]);const i=A(w=>t?w.sessions[t.sessionId]:void 0);if(!t)return null;const l=!!(i!=null&&i.agentId)&&(i==null?void 0:i.status)==="running";function d(w){r(w),w||e()}function u(){if(!i)return;const w=window.prompt("Rename:",i.title);if(w!=null&&w.trim()){const b=w.trim();A.getState().setTitle(i.id,b),I.getState().updateLabel(z.chat(i.id),b),i.agentId&&(n==null||n.agent(i.agentId).update({title:b}).catch(()=>{}))}e()}function g(){i!=null&&i.agentId&&(n==null||n.agent(i.agentId).interrupt().catch(()=>{})),e()}function p(w){A.getState().remove(w),I.getState().close(z.chat(w))}async function h(){if(i){if(!window.confirm("Archive this agent? It can be resumed later."))return e();if(e(),!i.agentId){p(i.id);return}if(!n){window.alert("Not connected — cannot archive remotely.");return}try{await n.agent(i.agentId).archive(),p(i.id)}catch(w){window.alert(`Failed to archive: ${w instanceof Error?w.message:String(w)}`)}}}async function T(){if(i){if(!window.confirm("Permanently delete this agent? This cannot be undone."))return e();if(e(),!i.agentId){p(i.id);return}if(!n){window.alert("Not connected — cannot delete remotely.");return}try{await n.agent(i.agentId).delete(),p(i.id)}catch(w){window.alert(`Failed to delete: ${w instanceof Error?w.message:String(w)}`)}}}return a.jsxs(Wt,{open:o,onOpenChange:d,modal:!1,children:[a.jsx(Ht,{asChild:!0,children:a.jsx("button",{ref:s,type:"button",className:W.trigger,style:{left:t.x,top:t.y},"aria-hidden":!0,tabIndex:-1})}),a.jsx(Lt,{children:a.jsxs(Ut,{className:W.content,align:"start",sideOffset:2,children:[a.jsx(le,{className:W.item,onSelect:u,children:"Rename"}),a.jsx(le,{className:W.item,disabled:!l,onSelect:g,children:"Stop agent"}),a.jsx(Vt,{className:W.sep}),a.jsx(le,{className:`${W.item} ${W.danger}`,onSelect:h,children:"Archive"}),a.jsx(le,{className:`${W.item} ${W.danger}`,onSelect:T,children:"Delete permanently"})]})})]})}function xr({label:t,cwd:e,sessionCount:n,collapsed:s,onToggleCollapsed:o,onNewSession:r}){return a.jsxs("div",{className:R.workspaceHeader,onClick:o,title:e,children:[a.jsx("button",{type:"button",className:R.workspaceChevron,"aria-label":s?"Expand workspace":"Collapse workspace",onClick:i=>{i.stopPropagation(),o()},children:s?a.jsx(Rt,{size:13}):a.jsx(Et,{size:13})}),a.jsx(At,{size:13,className:E(R.workspaceIcon)}),a.jsx("span",{className:R.workspaceLabel,children:t}),a.jsx("span",{className:R.workspaceCount,children:n}),a.jsx(D,{size:"xs",variant:"ghost",iconOnly:!0,title:"New conversation",className:R.newSessionBtn,onClick:i=>{i.stopPropagation(),r()},children:a.jsx(He,{size:13})})]})}function te(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 i=te(r.cwd||"~",n),l=s.get(i);l?l.push(r):s.set(i,[r])}return Array.from(s,([o,r])=>({cwd:o,sessions:r}))}function kr(t){return!t||t==="~"?"~":t.split("/").filter(Boolean).pop()||t}function Ir(){const t=A(_=>_.order),e=A(_=>_.sessions),n=A(_=>_.activeSessionId),s=A(_=>_.activate),o=A(_=>_.createSession),r=I(_=>_.open),i=C(_=>_.status),l=x(_=>_.openSessionMenu),d=x(_=>_.setCwd),u=x(_=>_.openCwdPicker),g=x(_=>_.collapsedWorkspaces),p=x(_=>_.toggleWorkspaceCollapsed),h=dt();function T(_){const j=te(_||"~",h),S=o(j);r({id:z.chat(S),kind:"chat",label:"New chat",closable:!0,data:{sessionId:S},workspaceCwd:j})}function w(_){s(_);const j=e[_],S=te((j==null?void 0:j.cwd)||"~",h);j!=null&&j.cwd&&d(j.cwd),r({id:z.chat(_),kind:"chat",label:(j==null?void 0:j.title)??"Chat",closable:!0,data:{sessionId:_},workspaceCwd:S})}const b=ut(t,e,h);return a.jsxs("div",{className:R.wrap,children:[a.jsxs("div",{className:R.header,children:[a.jsx("h3",{children:"Workspaces"}),a.jsx(D,{size:"xs",variant:"ghost",iconOnly:!0,title:i!=="open"?"Connect to open a workspace":"Open a workspace folder",disabled:i!=="open",onClick:()=>u(),children:a.jsx(Bt,{size:14})})]}),a.jsx("div",{className:R.list,children:b.map(_=>{const j=g.has(_.cwd);return a.jsxs("div",{className:R.workspaceGroup,children:[a.jsx(xr,{label:kr(_.cwd),cwd:_.cwd,sessionCount:_.sessions.length,collapsed:j,onToggleCollapsed:()=>p(_.cwd),onNewSession:()=>T(_.cwd)}),!j&&a.jsx("div",{className:R.workspaceSessions,children:_.sessions.map(S=>a.jsx(gr,{session:S,active:S.id===n,onSelect:()=>w(S.id),onOpenMenu:(mt,gt)=>l(S.id,mt,gt)},S.id))})]},_.cwd)})}),a.jsx(vr,{})]})}const Cr="_strip_cnwks_1",Tr="_tab_cnwks_10",jr="_active_cnwks_26",Nr="_icon_cnwks_30",Rr="_label_cnwks_35",Er="_close_cnwks_40",ee={strip:Cr,tab:Tr,active:jr,icon:Nr,label:Rr,close:Er},Ar={chat:Pt,file:Dt,diff:Mt,terminal:$t};function Br({tab:t}){const e=I(p=>p.activeTabId),n=I(p=>p.activate),s=I(p=>p.close),o=Ar[t.kind],{attributes:r,listeners:i,setNodeRef:l,transform:d,transition:u,isDragging:g}=on({id:t.id});return a.jsxs("div",{ref:l,className:E(ee.tab,t.id===e&&ee.active),style:{transform:rn.Transform.toString(d),transition:u,opacity:g?.5:1},onClick:()=>n(t.id),onAuxClick:p=>{p.button===1&&t.closable&&s(t.id)},title:t.label,...r,...i,children:[a.jsx("span",{className:ee.icon,children:a.jsx(o,{size:13})}),a.jsx("span",{className:ee.label,children:t.label}),t.closable&&a.jsx("span",{className:ee.close,onClick:p=>{p.stopPropagation(),s(t.id)},children:a.jsx(me,{size:12})})]})}function $r(){const t=I(i=>i.tabs),e=I(i=>i.activeWorkspaceCwd),n=I(i=>i.reorder),s=t.filter(i=>i.workspaceCwd===e),o=Yt(Zt(sn,{activationConstraint:{distance:4}}));function r(i){const{active:l,over:d}=i;!d||l.id===d.id||n(String(l.id),String(d.id))}return a.jsx(Qt,{sensors:o,collisionDetection:en,onDragEnd:r,children:a.jsx(tn,{items:s.map(i=>i.id),strategy:nn,children:a.jsx("div",{className:ee.strip,children:s.map(i=>a.jsx(Br,{tab:i},i.id))})})})}const Mr="_spinner_1tgzp_3",Dr={spinner:Mr},Pr={xs:12,sm:16,md:20,lg:24},qr={xs:1,sm:2,md:2,lg:3};function zr({size:t="md",color:e="currentColor",className:n,"aria-label":s="Loading"}){const o=typeof t=="number"?t:Pr[t],r=typeof t=="number"?2:qr[t];return a.jsx("span",{className:`${Dr.spinner}${n?` ${n}`:""}`,role:"status","aria-label":s,style:{width:o,height:o,borderWidth:r,color:e}})}const Or=v.lazy(()=>Ce(()=>import("./ChatPanel-BOR3MYdN.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])).then(t=>({default:t.ChatPanel}))),Oe=v.lazy(()=>Ce(()=>import("./FilePanel-lERDJldp.js").then(t=>t.F),__vite__mapDeps([14,1,7,6,5,2,9,10,15])).then(t=>({default:t.FilePanel}))),Fr=v.lazy(()=>Ce(()=>import("./TerminalPanel-cnkK_YF5.js"),__vite__mapDeps([16,1,17,18,7,6,5,2,3,11,12,19])).then(t=>({default:t.TerminalPanel}))),Wr={chat:Or,file:Oe,diff:Oe,terminal:Fr},Hr="_area_1vzxd_1",Lr="_panel_1vzxd_7",Ur="_active_1vzxd_14",Vr="_empty_1vzxd_17",re={area:Hr,panel:Lr,active:Ur,empty:Vr};function Gr(){const t=I(o=>o.tabs),e=I(o=>o.activeTabId),n=I(o=>o.activeWorkspaceCwd);return t.some(o=>o.workspaceCwd===n)?a.jsx("div",{className:re.area,children:t.map(o=>{const r=Wr[o.kind];return a.jsx("div",{className:E(re.panel,o.id===e&&re.active),children:a.jsx(v.Suspense,{fallback:a.jsx(zr,{size:"md"}),children:a.jsx(r,{tab:o})})},o.id)})}):a.jsx("div",{className:re.area,children:a.jsx("div",{className:re.empty,children:"No open tabs in this workspace"})})}const Kr={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 Xr(t){const e=t.kind==="directory"||t.type==="directory"?"directory":"file";return{name:t.name??"",kind:e,size:t.size,mtimeMs:t.mtimeMs}}function Jr(t){return t.slice().sort((e,n)=>e.kind!==n.kind?e.kind==="directory"?-1:1:e.name.localeCompare(n.name))}function pt(t,e=!0){const n=C(s=>s.client);return vt({queryKey:Kr.explorer(t),queryFn:async()=>{if(!n)throw new Error("not connected");const o=(await n.connection.request("file_explorer_request",{path:t})).result;if(!o||o.ok===!1)throw new Error(o&&"error"in o?o.error:"explorer request failed");const r="entries"in o?o.entries??[]:[];return{path:o.resolvedPath??t,entries:Jr(r.map(Xr))}},enabled:!!n&&!!t&&e})}const Yr="_list_1o67b_1",Zr="_upRow_1o67b_4",Qr="_item_1o67b_24",ea="_icon_1o67b_36",ta="_name_1o67b_43",na="_dirName_1o67b_48",sa="_emptyState_1o67b_54",O={list:Yr,upRow:Zr,item:Qr,icon:ea,name:ta,dirName:na,emptyState:sa};function oa(){const t=C(b=>b.client),e=Z(b=>b.currentPath),n=Z(b=>b.rootPath),s=Z(b=>b.setPath),o=Z(b=>b.setRoot),r=Z(b=>b.goUp),i=I(b=>b.activeWorkspaceCwd),l=I(b=>b.open),d=v.useRef(null);v.useEffect(()=>{if(!t)return;const b=i||"~";d.current!==b&&(d.current=b,Vo(t,b).then(_=>o(_)))},[t,i,o]);const{data:u,isLoading:g,isError:p,error:h}=pt(e,!!t);function T(b){s(e?`${e}/${b}`:b)}function w(b){const _=e?`${e}/${b}`:b;l({id:z.file(_),kind:"file",label:_.split("/").pop()||_,closable:!0,data:{path:_},workspaceCwd:i||"~"})}return t?g?a.jsx("div",{className:O.emptyState,children:"Loading..."}):p?a.jsxs("div",{className:O.emptyState,children:["Error: ",h instanceof Error?h.message:"unknown error"]}):!u||u.entries.length===0?a.jsx("div",{className:O.emptyState,children:"No files loaded"}):a.jsxs("div",{className:O.list,children:[e&&e!==n&&a.jsxs("div",{className:O.upRow,onClick:()=>r(),children:[a.jsx(Le,{size:12}),a.jsx("span",{children:e})]}),u.entries.map(b=>a.jsxs("div",{className:O.item,onClick:()=>b.kind==="directory"?T(b.name):w(b.name),children:[a.jsx("span",{className:O.icon,children:b.kind==="directory"?a.jsx(Ue,{size:14}):a.jsx(qt,{size:14})}),a.jsx("span",{className:b.kind==="directory"?O.dirName:O.name,children:b.name})]},b.name))]}):a.jsx("div",{className:O.emptyState,children:"Connect to browse files"})}const Ie=K()(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 ra(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 aa(t){const e=C(r=>r.client),n=Ie(r=>r.applyProjection),s=Ie(r=>r.setSubscribedCwd),o=v.useRef(e);return o.current=e,v.useEffect(()=>{if(!e||!t)return;let r=!1;e.connection.request("checkout_status_subscribe",{cwd:t}).catch(()=>{}),s(t);const i=e.connection.onSessionMessage(l=>{if(r)return;const d=l;ra(d)&&d.cwd===t&&n(d.projection)});return e.connection.request("checkout_refresh_request",{cwd:t}).catch(()=>{}),()=>{r=!0,i(),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 ia="_list_1pgby_1",ca="_summary_1pgby_4",la="_item_1pgby_11",da="_badge_1pgby_23",ua="_added_1pgby_30",pa="_modified_1pgby_34",fa="_deleted_1pgby_38",ha="_name_1pgby_42",ma="_emptyState_1pgby_47",V={list:ia,summary:ca,item:la,badge:da,added:ua,modified:pa,deleted:fa,name:ha,emptyState:ma},ga={added:"A",modified:"M",deleted:"D"};function ba(){const e=I(r=>r.activeWorkspaceCwd)||"~";aa(e);const n=Ie(r=>r.changes),s=I(r=>r.open);function o(r,i){s({id:z.diff(r,i),kind:"diff",label:r.split("/").pop()||r,closable:!0,data:{path:r,staged:i},workspaceCwd:e})}return n.length===0?a.jsx("div",{className:V.emptyState,children:"No changes detected"}):a.jsxs("div",{className:V.list,children:[a.jsxs("div",{className:V.summary,children:[n.length," changed file",n.length===1?"":"s"]}),n.map((r,i)=>a.jsxs("div",{className:V.item,onClick:()=>o(r.path,r.staged),children:[a.jsx("span",{className:E(V.badge,V[r.status]),children:ga[r.status]}),a.jsx("span",{className:V.name,children:r.path})]},`${r.path}-${r.staged}-${i}`))]})}const ft=K()(t=>({terminals:[],setTerminals:e=>t({terminals:e})}));function _a(t){return typeof t=="object"&&t!==null&&"type"in t&&t.type==="terminals_update"&&"terminals"in t&&Array.isArray(t.terminals)}function wa(){const t=C(n=>n.client),e=ft(n=>n.setTerminals);v.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;_a(r)&&e(r.terminals)});return()=>{n=!0,s(),t.connection.request("unsubscribe_terminals_request",{}).catch(()=>{})}},[t,e])}const ya="_wrap_sx7p7_1",Sa="_newTerminal_sx7p7_5",va="_list_sx7p7_10",xa="_summary_sx7p7_13",ka="_item_sx7p7_20",Ia="_reattach_sx7p7_30",Ca="_icon_sx7p7_45",Ta="_name_sx7p7_49",ja="_openBadge_sx7p7_54",Na="_kill_sx7p7_62",Ra="_emptyState_sx7p7_80",$={wrap:ya,newTerminal:Sa,list:va,summary:xa,item:ka,reattach:Ia,icon:Ca,name:Ta,openBadge:ja,kill:Na,emptyState:Ra};function Ea(){wa();const t=C(p=>p.client),e=ft(p=>p.terminals),n=I(p=>p.tabs),s=I(p=>p.activeWorkspaceCwd),o=I(p=>p.open),r=I(p=>p.activate),i=I(p=>p.close);function l(p){return n.find(h=>h.kind==="terminal"&&h.data.slot===p)}function d(p,h,T){const w=l(p);if(w){r(w.id);return}const b=T||"~";o({id:z.terminal(p),kind:"terminal",label:h,closable:!0,data:{slot:p,cwd:b},workspaceCwd:b})}function u(p){const h=l(p);if(h){i(h.id);return}t&&t.connection.request("kill_terminal_request",{slot:p}).catch(()=>{})}const g=a.jsx(D,{variant:"secondary",size:"sm",leftIcon:a.jsx(He,{size:14}),className:$.newTerminal,onClick:()=>lt(s||"~"),children:"New terminal"});return e.length===0?a.jsxs("div",{className:$.wrap,children:[g,a.jsx("div",{className:$.emptyState,children:"No terminals running"})]}):a.jsxs("div",{className:$.wrap,children:[g,a.jsxs("div",{className:$.list,children:[a.jsxs("div",{className:$.summary,children:[e.length," terminal",e.length===1?"":"s"," running"]}),e.map(p=>{const h=l(p.slot)!==void 0;return a.jsxs("div",{className:$.item,children:[a.jsxs("button",{type:"button",className:$.reattach,onClick:()=>d(p.slot,p.name,p.cwd),title:p.cwd,children:[a.jsx(zt,{size:13,className:$.icon}),a.jsx("span",{className:$.name,children:p.name}),h&&a.jsx("span",{className:$.openBadge,children:"open"})]}),a.jsx("button",{type:"button",className:$.kill,onClick:()=>u(p.slot),title:"Kill terminal",children:a.jsx(me,{size:13})})]},p.slot)})]})]})}const Aa="_wrap_r37ok_1",Ba="_tabBar_r37ok_7",$a="_tabBtn_r37ok_13",Ma="_active_r37ok_26",Da="_refreshBtn_r37ok_30",Pa="_content_r37ok_34",F={wrap:Aa,tabBar:Ba,tabBtn:$a,active:Ma,refreshBtn:Da,content:Pa};function qa(){const t=x(d=>d.rightSidebarTab),e=x(d=>d.setRightSidebarTab),n=Z(d=>d.currentPath),o=I(d=>d.activeWorkspaceCwd)||"~",r=C(d=>d.client),i=xt();function l(){i.invalidateQueries({queryKey:["explorer",n]}),r&&o&&r.connection.request("checkout_refresh_request",{cwd:o}).catch(()=>{})}return a.jsxs("div",{className:F.wrap,children:[a.jsxs("div",{className:F.tabBar,children:[a.jsx("button",{type:"button",className:E(F.tabBtn,t==="files"&&F.active),onClick:()=>e("files"),children:"Files"}),a.jsx("button",{type:"button",className:E(F.tabBtn,t==="changes"&&F.active),onClick:()=>e("changes"),children:"Changes"}),a.jsx("button",{type:"button",className:E(F.tabBtn,t==="terminals"&&F.active),onClick:()=>e("terminals"),children:"Terminals"}),t!=="terminals"&&a.jsx(D,{size:"xs",variant:"ghost",iconOnly:!0,title:"Refresh",className:F.refreshBtn,onClick:l,children:a.jsx(Ot,{size:13})})]}),a.jsx("div",{className:F.content,children:t==="files"?a.jsx(oa,{}):t==="changes"?a.jsx(ba,{}):a.jsx(Ea,{})})]})}const za="_wrapper_131x2_3",Oa="_box_131x2_18",Fa="_checkmark_131x2_36",Wa="_nativeInput_131x2_41",he={wrapper:za,box:Oa,checkmark:Fa,nativeInput:Wa};v.forwardRef(function({label:e,checked:n=!1,disabled:s,className:o,onChange:r,...i},l){return a.jsxs("label",{className:he.wrapper,"data-disabled":s||void 0,children:[a.jsx("input",{ref:l,type:"checkbox",className:he.nativeInput,checked:n,disabled:s,onChange:r,...i}),a.jsx("span",{className:he.box,"data-checked":n,"aria-hidden":!0,children:n&&a.jsx(Ft,{size:12,className:he.checkmark})}),e&&a.jsx("span",{children:e})]})});const Ha="_select_vj45v_3",La={select:Ha};v.forwardRef(function({options:e,placeholder:n,className:s,...o},r){return a.jsxs("select",{ref:r,className:E(La.select,s),...o,children:[n&&a.jsx("option",{value:"",disabled:!0,children:n}),e.map(i=>a.jsx("option",{value:i.value,children:i.label},i.value))]})});const Ua="_overlay_1yaef_1",Va="_contentWrapper_1yaef_7",Ga="_dialog_1yaef_16",Ka="_header_1yaef_28",Xa="_title_1yaef_36",Ja="_closeBtn_1yaef_43",Ya="_body_1yaef_57",Za="_footer_1yaef_63",Qa="_bare_1yaef_72",ei="_bareBody_1yaef_78",ti="_bareCloseBtn_1yaef_82",ni="_visuallyHidden_1yaef_101",M={overlay:Ua,contentWrapper:Va,dialog:Ga,header:Ka,title:Xa,closeBtn:Ja,body:Ya,footer:Za,bare:Qa,bareBody:ei,bareCloseBtn:ti,visuallyHidden:ni},si=ye;function oi({open:t,onOpenChange:e,title:n,children:s,footer:o,width:r,className:i,bare:l=!1}){return a.jsx(Gt,{open:t,onOpenChange:e,children:a.jsxs(Kt,{children:[a.jsx(Xt,{className:M.overlay}),a.jsx("div",{className:M.contentWrapper,children:a.jsxs(Jt,{className:E(M.dialog,l&&M.bare,i),style:r!==void 0?{width:r}:void 0,children:[l?a.jsx(Re,{className:M.visuallyHidden,children:n}):a.jsxs("div",{className:M.header,children:[a.jsx(Re,{className:M.title,children:n}),a.jsx(ye,{asChild:!0,children:a.jsx("button",{type:"button",className:M.closeBtn,"aria-label":"Close",children:a.jsx(me,{size:16})})})]}),a.jsx("div",{className:E(M.body,l&&M.bareBody),children:s}),l&&a.jsx(ye,{asChild:!0,children:a.jsx("button",{type:"button",className:M.bareCloseBtn,"aria-label":"Close",children:a.jsx(me,{size:16})})}),o&&a.jsx("div",{className:M.footer,children:o})]})})]})})}const ri="_handle_1ocv1_1",ai={handle:ri};function Fe({side:t,onResize:e,className:n}){const s=v.useRef(0),o=v.useCallback(l=>{const d=l.clientX-s.current;s.current=l.clientX,e(t==="left"?d:-d)},[e,t]),r=v.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 i(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 a.jsx("div",{className:E(ai.handle,n),onPointerDown:i,role:"separator","aria-orientation":"vertical"})}function ii(t,e){var g;const{order:n,sessions:s,createSession:o,activate:r}=A.getState(),l=ut(n,s,e).find(p=>p.cwd===t),d=((g=l==null?void 0:l.sessions[0])==null?void 0:g.id)??o(t);r(d);const u=A.getState().sessions[d];I.getState().open({id:z.chat(d),kind:"chat",label:(u==null?void 0:u.title)??"New chat",closable:!0,data:{sessionId:d},workspaceCwd:t}),x.getState().setCwd(t)}const ci="_pathRow_9xphl_1",li="_pathInput_9xphl_9",di="_list_9xphl_13",ui="_item_9xphl_20",pi="_name_9xphl_32",fi="_emptyState_9xphl_37",U={pathRow:ci,pathInput:li,list:di,item:ui,name:pi,emptyState:fi};function hi(){const t=x(S=>S.cwdPickerOpen),e=x(S=>S.closeCwdPicker),n=I(S=>S.activeWorkspaceCwd),s=C(S=>S.client),o=dt(),[r,i]=v.useState("/"),[l,d]=v.useState("/");v.useEffect(()=>{if(!t)return;const S=te(n||"~",o);i(S),d(S)},[t,s,n]);const{data:u,isLoading:g,isError:p,error:h}=pt(r,t&&!!s),T=((u==null?void 0:u.entries)??[]).filter(S=>S.kind==="directory");function w(S){i(S),d(S)}function b(){w(r.split("/").slice(0,-1).join("/")||"/")}function _(){w(l.trim())}function j(){ii(r,o),e()}return a.jsxs(oi,{open:t,onOpenChange:S=>!S&&e(),title:"Open Workspace",footer:a.jsxs(a.Fragment,{children:[a.jsx(si,{asChild:!0,children:a.jsx(D,{size:"sm",variant:"secondary",children:"Cancel"})}),a.jsx(D,{size:"sm",onClick:j,children:"Open this folder"})]}),children:[a.jsxs("div",{className:U.pathRow,children:[a.jsx(D,{size:"xs",variant:"ghost",iconOnly:!0,title:"Up",onClick:b,children:a.jsx(Le,{size:13})}),a.jsx(ve,{className:U.pathInput,value:l,onChange:S=>d(S.target.value),onKeyDown:S=>{S.key==="Enter"&&(S.preventDefault(),_())}}),a.jsx(D,{size:"xs",onClick:_,children:"Go"})]}),a.jsx("div",{className:U.list,children:g?a.jsx("div",{className:U.emptyState,children:"Loading..."}):p?a.jsxs("div",{className:U.emptyState,children:["Error: ",h instanceof Error?h.message:"unknown error"]}):T.length===0?a.jsx("div",{className:U.emptyState,children:"No subdirectories"}):T.map(S=>a.jsxs("div",{className:U.item,onClick:()=>w(r==="/"?`/${S.name}`:`${r}/${S.name}`),children:[a.jsx(Ue,{size:14}),a.jsx("span",{className:U.name,children:S.name})]},S.name))})]})}const mi="_shell_1m1nv_1",gi="_main_1m1nv_7",bi="_sidebarLeft_1m1nv_13",_i="_leftHandle_1m1nv_21",wi="_center_1m1nv_24",yi="_sidebarRight_1m1nv_31",Si="_rightHandle_1m1nv_39",G={shell:mi,main:gi,sidebarLeft:bi,leftHandle:_i,center:wi,sidebarRight:yi,rightHandle:Si};function vi(){const t=x(i=>i.leftSidebarCollapsed),e=x(i=>i.rightSidebarCollapsed),n=x(i=>i.leftSidebarWidth),s=x(i=>i.rightSidebarWidth),o=x(i=>i.resizeLeftSidebar),r=x(i=>i.resizeRightSidebar);return a.jsxs("div",{className:G.shell,children:[a.jsx(Eo,{}),a.jsxs("div",{className:G.main,children:[!t&&a.jsxs("aside",{className:G.sidebarLeft,style:{width:n},children:[a.jsx(Ir,{}),a.jsx(Fe,{side:"left",className:G.leftHandle,onResize:o})]}),a.jsxs("div",{className:G.center,children:[a.jsx($r,{}),a.jsx(Gr,{})]}),!e&&a.jsxs("aside",{className:G.sidebarRight,style:{width:s},children:[a.jsx(Fe,{side:"right",className:G.rightHandle,onResize:r}),a.jsx(qa,{})]})]}),a.jsx(hi,{})]})}function xi(){const t=v.useRef(!1);v.useEffect(()=>{if(t.current)return;t.current=!0;const e=new URLSearchParams(window.location.search),n=e.get("host"),s=e.get("password"),o=e.get("cwd"),r=e.get("connect")==="1",i=x.getState();if(n&&i.setHost(n),s&&i.setPassword(s),o&&i.setCwd(o),r){const{host:l,password:d}=x.getState();C.getState().connect({url:l,password:d||void 0})}},[])}function ki(t){return typeof t=="object"&&t!==null&&"kind"in t}function Ii(t){const e=[];for(const n of t)if(ki(n))if(n.kind==="other")n.event&&e.push(n.event);else for(const s of n.events??[])e.push(s);return e}function Ci(){const t=C(s=>s.client),e=C(s=>s.status),n=v.useRef(!1);v.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,g)=>(g.lastActivity??0)-(u.lastActivity??0));const o=A.getState();for(const u of s){if(o.findByAgentId(u.agentId))continue;let g=xe;try{const p=await t.agent(u.agentId).timeline.fetch({direction:"after",limit:200});g=Ii(p.items).reduce(ct,xe)}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:g,userMessageCount:g.rows.filter(p=>p.kind==="user").length})}const r=await Ne(t).catch(()=>null),{order:i,sessions:l}=A.getState();if(i.length>0){const u=l[i[0]??""];if(u){const g=te(u.cwd||"~",r);A.getState().activate(u.id),x.getState().setCwd(u.cwd),I.getState().open({id:z.chat(u.id),kind:"chat",label:u.title,closable:!0,data:{sessionId:u.id},workspaceCwd:g})}}else{const u=x.getState().cwd||"~",g=te(u,r),p=A.getState().createSession(u);I.getState().open({id:z.chat(p),kind:"chat",label:"New chat",closable:!0,data:{sessionId:p},workspaceCwd:g})}})())},[e,t])}function Ti(){v.useEffect(()=>{function t(e){const n=x.getState();if(e.key==="Escape"){n.closeCwdPicker(),n.closeSessionMenu();return}const s=e.ctrlKey||e.metaKey;if(s&&e.key.toLowerCase()==="t"){e.preventDefault(),lt(I.getState().activeWorkspaceCwd||"~");return}if(s&&e.key.toLowerCase()==="w"){const{activeTabId:o,tabs:r,close:i}=I.getState();if(!o)return;const l=r.find(d=>d.id===o);(l==null?void 0:l.closable)!==!1&&(e.preventDefault(),i(o))}}return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[])}function ji(){return xi(),Ci(),Ti(),null}function Ni(){return a.jsxs(Xn,{children:[a.jsx(ji,{}),a.jsx(vi,{})]})}const ht=document.getElementById("root");if(!ht)throw new Error("Missing #root element");wt.createRoot(ht).render(a.jsx(v.StrictMode,{children:a.jsx(Ni,{})}));export{D as B,oi as D,zr as S,zi as T,C as a,I as b,Oi as e,Kr as r,Ao as t,A as u};
3
+ //# sourceMappingURL=index-DnTTpAX5.js.map