@av-pi-studio/web-client 0.0.92 → 0.0.93

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 (96) hide show
  1. package/dist/web/assets/{BinaryFallbackViewer-vV91veUD.js → BinaryFallbackViewer-BSJE1g_R.js} +1 -1
  2. package/dist/web/assets/{ChatPanel-C_lxtztt.js → ChatPanel-DInywt0h.js} +1 -1
  3. package/dist/web/assets/{CodeView-BEiznDHG.js → CodeView-Dssgtzmw.js} +1 -1
  4. package/dist/web/assets/{DiffView-CRrnffpG.js → DiffView-DMWaKpLT.js} +1 -1
  5. package/dist/web/assets/{FilePanel-CMOx4Enp.js → FilePanel-DCcMysVK.js} +1 -1
  6. package/dist/web/assets/{HtmlViewer-DnfXDsdY.js → HtmlViewer-VHT3Wggh.js} +1 -1
  7. package/dist/web/assets/{ImageViewer-DWzNqHOA.js → ImageViewer-BmhuSGT0.js} +1 -1
  8. package/dist/web/assets/{MarkdownFileViewer-CXa-fdi7.js → MarkdownFileViewer-BbFFx6T9.js} +1 -1
  9. package/dist/web/assets/ModelProvidersPanel-BP1zIT6I.css +1 -0
  10. package/dist/web/assets/ModelProvidersPanel-BzC7__W5.js +1 -0
  11. package/dist/web/assets/MoleculeViewerPanel-CHZ8q0jD.css +1 -0
  12. package/dist/web/assets/MoleculeViewerPanel-CcFuwlZ4.js +1 -0
  13. package/dist/web/assets/SettingsDialog-Bc09UjU4.css +1 -0
  14. package/dist/web/assets/SettingsDialog-EchhRvMJ.js +9 -0
  15. package/dist/web/assets/StatusBadge-BMKAPA9O.js +1 -0
  16. package/dist/web/assets/{MoleculeViewerPanel-B_0tE8BE.css → StatusBadge-DmrnYEhp.css} +1 -1
  17. package/dist/web/assets/{TerminalPanel-B0z8gUk3.js → TerminalPanel-BEF6crIl.js} +1 -1
  18. package/dist/web/assets/{TextViewer-BjynVTvC.js → TextViewer-BalCoanq.js} +1 -1
  19. package/dist/web/assets/{VideoViewer-Dg3UQRbb.js → VideoViewer-BYfwl923.js} +1 -1
  20. package/dist/web/assets/{abnfDiagram-N423BO3Z-C6HkBcEq.js → abnfDiagram-N423BO3Z-DxO06Bt4.js} +1 -1
  21. package/dist/web/assets/{arc-IiyVx_qI.js → arc-B8lsWks2.js} +1 -1
  22. package/dist/web/assets/{architectureDiagram-T3A2C74G-CYIM1z-g.js → architectureDiagram-T3A2C74G-CwXR4Oxt.js} +1 -1
  23. package/dist/web/assets/{blockDiagram-VBNYF7ZC-YPcAvcMb.js → blockDiagram-VBNYF7ZC-CcM3hPQ5.js} +1 -1
  24. package/dist/web/assets/{c4Diagram-5PPSVZJV-DqDoye-L.js → c4Diagram-5PPSVZJV-BtpAVVVZ.js} +1 -1
  25. package/dist/web/assets/channel-7PRz8md2.js +1 -0
  26. package/dist/web/assets/{chunk-2GRJ4B5K-Cop7pTQw.js → chunk-2GRJ4B5K-C75BUfq6.js} +1 -1
  27. package/dist/web/assets/{chunk-2Q5K7J3B-Ac8_uEHb.js → chunk-2Q5K7J3B-B_EgEcPH.js} +1 -1
  28. package/dist/web/assets/{chunk-5RXB4S5H-BM-eu37i.js → chunk-5RXB4S5H-roWcQa32.js} +1 -1
  29. package/dist/web/assets/{chunk-5VM5RSS4-DJtnYoNy.js → chunk-5VM5RSS4-D7z9aJee.js} +1 -1
  30. package/dist/web/assets/{chunk-6Q2QTUOP-BYIYubMk.js → chunk-6Q2QTUOP-CVkipQR4.js} +1 -1
  31. package/dist/web/assets/{chunk-GF5L2VYU-CfAs4Mvp.js → chunk-GF5L2VYU-Cb8nMxaI.js} +1 -1
  32. package/dist/web/assets/{chunk-JWPE2WC7-B4PZpRuq.js → chunk-JWPE2WC7-D9yLem8V.js} +1 -1
  33. package/dist/web/assets/{chunk-KBJHAD2P-B5C5n9l8.js → chunk-KBJHAD2P-BGi6ha9v.js} +1 -1
  34. package/dist/web/assets/{chunk-RYQCIY6F-CazvmEAg.js → chunk-RYQCIY6F-BrNdJMYr.js} +1 -1
  35. package/dist/web/assets/{chunk-XXDRQBXY-CPzJFrpL.js → chunk-XXDRQBXY-pUKSGKvN.js} +1 -1
  36. package/dist/web/assets/classDiagram-JCYQIIEL-bPNYzhH6.js +1 -0
  37. package/dist/web/assets/classDiagram-v2-OCEON4UE-bPNYzhH6.js +1 -0
  38. package/dist/web/assets/{cose-bilkent-JH36ORCC-k7zF9G_V.js → cose-bilkent-JH36ORCC-SfHJUgmE.js} +1 -1
  39. package/dist/web/assets/{cynefin-VYW2F7L2-kO1G0JNx.js → cynefin-VYW2F7L2-DGTqBSQV.js} +1 -1
  40. package/dist/web/assets/{cynefinDiagram-MW4NZA55-Br6Pehe8.js → cynefinDiagram-MW4NZA55-RIHpcRGC.js} +1 -1
  41. package/dist/web/assets/{dagre-VZM6K2ZE-hhOjIDFV.js → dagre-VZM6K2ZE-CDu4oNn2.js} +1 -1
  42. package/dist/web/assets/{diagram-7IWD3JNH-CT0_cl76.js → diagram-7IWD3JNH-BUprchyM.js} +1 -1
  43. package/dist/web/assets/{diagram-B4RE2ZJO-Cg2nPF5t.js → diagram-B4RE2ZJO-BanVZxZj.js} +1 -1
  44. package/dist/web/assets/{diagram-LBJQPF4R-CXTRoDCu.js → diagram-LBJQPF4R-Ct4XqrZ0.js} +1 -1
  45. package/dist/web/assets/{diagram-Q27KOJAE-CwiVIKjR.js → diagram-Q27KOJAE-36_1SZ0x.js} +1 -1
  46. package/dist/web/assets/{diagram-UB23O5K3-qSYfXBYQ.js → diagram-UB23O5K3-Dd3GA0Nx.js} +1 -1
  47. package/dist/web/assets/{ebnfDiagram-BXEA7PRR-Vop3xM4L.js → ebnfDiagram-BXEA7PRR-BhCqLNe6.js} +1 -1
  48. package/dist/web/assets/{erDiagram-JOGREHBK-RM6hSByi.js → erDiagram-JOGREHBK-D_kIhAsR.js} +1 -1
  49. package/dist/web/assets/{flowDiagram-UKHOOZJN-BSKFt7t6.js → flowDiagram-UKHOOZJN-BG0hFgfp.js} +1 -1
  50. package/dist/web/assets/{ganttDiagram-PKOTCBZU-DrqYFg5A.js → ganttDiagram-PKOTCBZU-bmle167J.js} +1 -1
  51. package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-hcaeYucr.js → gitGraphDiagram-DS77QQ5N-nylWitCY.js} +1 -1
  52. package/dist/web/assets/{graph-DeCteHfw.js → graph-TZxHq4iA.js} +1 -1
  53. package/dist/web/assets/{href-resolution-BAtvaa2k.js → href-resolution-CZmK557H.js} +1 -1
  54. package/dist/web/assets/index-kpsEjiod.js +19 -0
  55. package/dist/web/assets/{infoDiagram-6WML65LV-bld-35iu.js → infoDiagram-6WML65LV-BtE3Ne1J.js} +1 -1
  56. package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-JF1ywaiO.js → ishikawaDiagram-WSZJBQD7-Dh4f7U1S.js} +1 -1
  57. package/dist/web/assets/{journeyDiagram-NVQOT4AX-7Dyz0KO8.js → journeyDiagram-NVQOT4AX-Cr2SN64n.js} +1 -1
  58. package/dist/web/assets/{kanban-definition-27J2QSJJ-BCe3jXau.js → kanban-definition-27J2QSJJ-CTyBFFdg.js} +1 -1
  59. package/dist/web/assets/{layout-DfNZ6M8-.js → layout-Cy21MT7A.js} +1 -1
  60. package/dist/web/assets/{linear-B0jaW5hA.js → linear-Csqj3qWq.js} +1 -1
  61. package/dist/web/assets/{markdown-C45MBXyl.js → markdown-TV2l2DFM.js} +3 -3
  62. package/dist/web/assets/{mermaid.core-BEntOW_N.js → mermaid.core-Ef9xxvhx.js} +4 -4
  63. package/dist/web/assets/{mindmap-definition-FAOFIHXS-DduU1MmZ.js → mindmap-definition-FAOFIHXS-C0gNkg3u.js} +1 -1
  64. package/dist/web/assets/{ordinal-B9c66tb1.js → ordinal-DeJMIlb3.js} +1 -1
  65. package/dist/web/assets/{pegDiagram-VL7TDLO6-CFwGl9tu.js → pegDiagram-VL7TDLO6-BV6WCpiw.js} +1 -1
  66. package/dist/web/assets/{pieDiagram-7S7Q4E2Y-BxWGQVnp.js → pieDiagram-7S7Q4E2Y-D3-mJGvG.js} +1 -1
  67. package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-SfrJdJAW.js → quadrantDiagram-CIZ2JOQS-DYVvAYfX.js} +1 -1
  68. package/dist/web/assets/{railroadDiagram-AXF67PYL-D5lmlh0U.js → railroadDiagram-AXF67PYL-Cud4BJPm.js} +1 -1
  69. package/dist/web/assets/{requirementDiagram-LRYGKXZP-DeoQYTPf.js → requirementDiagram-LRYGKXZP-DNSp42Em.js} +1 -1
  70. package/dist/web/assets/{sankeyDiagram-W5VNT64P-DP7Qbo5Z.js → sankeyDiagram-W5VNT64P-BfTOCAaX.js} +1 -1
  71. package/dist/web/assets/{sequenceDiagram-SI44F4Z6-D8fP12gy.js → sequenceDiagram-SI44F4Z6-dnBtqYMf.js} +1 -1
  72. package/dist/web/assets/{sizeCapture-X5ZJPWSS-7cP_oZfG.js → sizeCapture-X5ZJPWSS-CoFL4TAh.js} +1 -1
  73. package/dist/web/assets/{stateDiagram-OKZ733FA-B1ZcscLg.js → stateDiagram-OKZ733FA-BD_aH6K_.js} +1 -1
  74. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DCeBzHT2.js +1 -0
  75. package/dist/web/assets/{swimlanes-SLNWSIFB-DOaGnSGR.js → swimlanes-SLNWSIFB-C-ajE5B2.js} +2 -2
  76. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-C2djomhf.js +8 -0
  77. package/dist/web/assets/{timeline-definition-Z64GVDOM-BvLI2jjl.js → timeline-definition-Z64GVDOM-Cf7hkF8i.js} +1 -1
  78. package/dist/web/assets/{use-file-download-CJCGA8Yk.js → use-file-download-M0QoFeFV.js} +1 -1
  79. package/dist/web/assets/{use-file-watch-CBHYCJZ0.js → use-file-watch-TIQtkV8f.js} +1 -1
  80. package/dist/web/assets/{vendor-DVp0ZLQo.js → vendor-D8P8plmv.js} +26 -26
  81. package/dist/web/assets/{vendor-highlight-BjiGXuEM.js → vendor-highlight-BKvLIpKt.js} +1 -1
  82. package/dist/web/assets/{vendor-icons-CQPWxe0u.js → vendor-icons-Bd4GbDkJ.js} +65 -55
  83. package/dist/web/assets/{vendor-markdown-Bc_dOmsB.js → vendor-markdown-DeBZUxEK.js} +1 -1
  84. package/dist/web/assets/{vendor-overlays-BfyojyuH.js → vendor-overlays-B-PXEqhH.js} +1 -1
  85. package/dist/web/assets/{vennDiagram-T6HMQDX7-DArxlf6M.js → vennDiagram-T6HMQDX7-Cyzdyvbo.js} +1 -1
  86. package/dist/web/assets/{wardleyDiagram-T6FBY63Y-BC8iMU8l.js → wardleyDiagram-T6FBY63Y-Bfrbr-vy.js} +1 -1
  87. package/dist/web/assets/{xychartDiagram-ELKLHX3M-IFP_sgiY.js → xychartDiagram-ELKLHX3M-z-IdlcTk.js} +1 -1
  88. package/dist/web/index.html +4 -4
  89. package/package.json +5 -3
  90. package/dist/web/assets/MoleculeViewerPanel-ChSOkEG6.js +0 -1
  91. package/dist/web/assets/channel-C_AW0H08.js +0 -1
  92. package/dist/web/assets/classDiagram-JCYQIIEL-cs4QmU1Z.js +0 -1
  93. package/dist/web/assets/classDiagram-v2-OCEON4UE-cs4QmU1Z.js +0 -1
  94. package/dist/web/assets/index-Co9I9PZP.js +0 -19
  95. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CbC8RsB4.js +0 -1
  96. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-DkBnDEEj.js +0 -8
@@ -0,0 +1,19 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SettingsDialog-EchhRvMJ.js","assets/vendor-D8P8plmv.js","assets/vendor-react-DQUAl2K8.js","assets/vendor-CEK31ho9.css","assets/vendor-query-i7fr__Xm.js","assets/vendor-icons-Bd4GbDkJ.js","assets/SettingsDialog-Bc09UjU4.css","assets/ChatPanel-DInywt0h.js","assets/markdown-TV2l2DFM.js","assets/vendor-highlight-BKvLIpKt.js","assets/vendor-markdown-DeBZUxEK.js","assets/href-resolution-CZmK557H.js","assets/markdown-C15eCO0s.css","assets/DiffView-DMWaKpLT.js","assets/DiffView-CUctPSBA.css","assets/vendor-overlays-B-PXEqhH.js","assets/vendor-dnd-CayJj8TC.js","assets/ChatPanel-CM1-XG5f.css","assets/FilePanel-DCcMysVK.js","assets/use-file-watch-TIQtkV8f.js","assets/FilePanel-bWuYWz8t.css","assets/TerminalPanel-BEF6crIl.js","assets/vendor-terminal-BhzX2_ts.js","assets/vendor-terminal-DYP7pi_n.css","assets/TerminalPanel-DoDBqfAg.css","assets/MoleculeViewerPanel-CcFuwlZ4.js","assets/vendor-molviewer-DSzG6_a2.js","assets/vendor-molviewer-Bychyqid.css","assets/StatusBadge-BMKAPA9O.js","assets/StatusBadge-DmrnYEhp.css","assets/use-file-download-M0QoFeFV.js","assets/MoleculeViewerPanel-CHZ8q0jD.css","assets/TextViewer-BalCoanq.js","assets/CodeView-Dssgtzmw.js","assets/CodeView-Bbd7h9aM.css","assets/TextViewer-C7Vnqw_v.css","assets/MarkdownFileViewer-BbFFx6T9.js","assets/MarkdownFileViewer-Cnl1kopk.css","assets/ImageViewer-BmhuSGT0.js","assets/ImageViewer-Bh1rkSDM.css","assets/VideoViewer-BYfwl923.js","assets/VideoViewer-CCmuaDLl.css","assets/BinaryFallbackViewer-BSJE1g_R.js","assets/BinaryFallbackViewer-ClYyn4IS.css","assets/HtmlViewer-VHT3Wggh.js","assets/HtmlViewer-gN2oIGsk.css"])))=>i.map(i=>d[i]);
2
+ var zr=Object.defineProperty;var Br=(e,t,n)=>t in e?zr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var O=(e,t,n)=>Br(e,typeof t!="symbol"?t+"":t,n);import{r as b,j as c,c as Lr}from"./vendor-react-DQUAl2K8.js";import{Q as Fr,c as Wr,u as Hr,d as Ur,a as Ve,b as Vr}from"./vendor-query-i7fr__Xm.js";import{ag as d,ah as g,M as F,ai as ln,aj as W,ak as Ie,al as ve,am as D,an as S,ao as oe,ap as H,aq as jt,ar as He,af as Ee,_ as we}from"./vendor-D8P8plmv.js";import{n as Kr,o as Gr,p as Yr,q as Xr,r as Jr,s as Zr,t as dn,P as vs,j as Qr,u as eo,v as un,C as fn,g as vt,w as pn,x as Ss,y as xs,z as Ct,M as ks,X as Yt,D as to,R as no,H as so,I as De,a as Xt,J as St,m as ft,l as ro,O as oo,Q as io,V as ao,W as co,Y as lo,Z as uo,_ as fo,$ as po,f as ho,k as mo}from"./vendor-icons-Bd4GbDkJ.js";import{P as go,C as _o,I as yo,S as wo,R as Rt,T as Pt,D as bo,a as vo,b as So,c as xo,d as An,e as Jt}from"./vendor-overlays-B-PXEqhH.js";import{u as ko,a as Io,p as Eo,P as To,b as Is,S as jo,h as Co,c as Ro,C as Po,D as Ao,d as No}from"./vendor-dnd-CayJj8TC.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();const Do=new Fr;function Es(e){const t=e.trim().replace(/^#/,""),n=t.length===3?t.split("").map(s=>s+s).join(""):t;if(n.length!==6||/[^0-9a-fA-F]/.test(n))throw new Error(`Invalid hex color: ${e}`);return{r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16)}}function Mo(e){return Math.max(0,Math.min(255,Math.round(e)))}function qo({r:e,g:t,b:n}){const s=r=>Mo(r).toString(16).padStart(2,"0");return`#${s(e)}${s(t)}${s(n)}`}function $o(e){const{r:t,g:n,b:s}=Es(e),r=o=>{const i=o/255;return i<=.03928?i/12.92:((i+.055)/1.055)**2.4};return .2126*r(t)+.7152*r(n)+.0722*r(s)}function hn(e,t="#18181b",n="#ffffff"){return $o(e)>.45?t:n}function Oo(e,t){const{r:n,g:s,b:r}=Es(e),o=Math.max(0,Math.min(1,t));return qo({r:n+(255-n)*o,g:s+(255-s)*o,b:r+(255-r)*o})}function pt(e){const t=e.trim().replace(/^#/,"");return(t.length===3||t.length===6)&&!/[^0-9a-fA-F]/.test(t)}const ge=(e,t,n,s,r,o,i,a,l,u,f)=>({50:e,100:t,200:n,300:s,400:r,500:o,600:i,700:a,800:l,900:u,950:f}),x={zinc:ge("#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#71717a","#52525b","#3f3f46","#27272a","#18181b","#09090b"),gray:ge("#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#6b7280","#4b5563","#374151","#1f2937","#111827","#030712"),slate:ge("#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#64748b","#475569","#334155","#1e293b","#0f172a","#020617"),blue:ge("#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1d4ed8","#1e40af","#1e3a8a","#172554"),green:ge("#f0fdf4","#dcfce7","#bbf7d0","#86efac","#4ade80","#22c55e","#16a34a","#15803d","#166534","#14532d","#052e16"),red:ge("#fef2f2","#fee2e2","#fecaca","#fca5a5","#f87171","#ef4444","#dc2626","#b91c1c","#991b1b","#7f1d1d","#450a0a"),teal:ge("#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#14b8a6","#0d9488","#0f766e","#115e59","#134e4a","#042f2e"),amber:ge("#fffbeb","#fef3c7","#fde68a","#fcd34d","#fbbf24","#f59e0b","#d97706","#b45309","#92400e","#78350f","#451a03"),yellow:ge("#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#eab308","#ca8a04","#a16207","#854d0e","#713f12","#422006"),purple:ge("#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#a855f7","#9333ea","#7e22ce","#6b21a8","#581c87","#3b0764"),orange:ge("#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#c2410c","#9a3412","#7c2d12","#431407"),white:"#ffffff",black:"#000000"},zo={statusSuccess:"#16a34a",statusDanger:"#dc2626",statusWarning:"#f59e0b",statusMerged:"#9333ea",statusInfo:"#3b82f6"},Bo={statusSuccess:"#15803d",statusDanger:"#b91c1c",statusWarning:"#d97706",statusMerged:"#7c3aed",statusInfo:"#2563eb"};function Lo(){return{keyword:x.purple[300],string:x.green[300],number:x.orange[300],boolean:x.orange[300],comment:x.zinc[500],function:x.blue[300],variable:x.zinc[200],type:x.teal[300],class:x.amber[300],constant:x.orange[300],operator:x.zinc[400],punctuation:x.zinc[400],tag:x.red[300],attribute:x.amber[300],property:x.blue[200],regexp:x.teal[300],escape:x.orange[200],heading:x.blue[300],link:x.blue[400],deleted:x.red[400],inserted:x.green[400]}}function Fo(){return{keyword:x.purple[700],string:x.green[700],number:x.orange[700],boolean:x.orange[700],comment:x.zinc[500],function:x.blue[700],variable:x.zinc[800],type:x.teal[700],class:x.amber[700],constant:x.orange[700],operator:x.zinc[600],punctuation:x.zinc[600],tag:x.red[700],attribute:x.amber[700],property:x.blue[700],regexp:x.teal[700],escape:x.orange[700],heading:x.blue[700],link:x.blue[600],deleted:x.red[700],inserted:x.green[700]}}function Ts(e,t,n){return{background:e,foreground:t,cursor:n,cursorAccent:e,selectionBackground:"rgba(255,255,255,0.18)",black:x.zinc[900],red:x.red[500],green:x.green[500],yellow:x.amber[500],blue:x.blue[500],magenta:x.purple[500],cyan:x.teal[500],white:x.zinc[300],brightBlack:x.zinc[600],brightRed:x.red[400],brightGreen:x.green[400],brightYellow:x.amber[400],brightBlue:x.blue[400],brightMagenta:x.purple[400],brightCyan:x.teal[400],brightWhite:x.zinc[50]}}function Ke(e){const t=x.zinc[50],n=hn(e.accent);return{surface0:e.surface0,surface1:e.surface1,surface2:e.surface2,surface3:e.surface3,surface4:e.surface4,surfaceDiffEmpty:e.surfaceDiffEmpty,surfaceSidebar:e.surfaceSidebar,surfaceSidebarHover:e.surfaceSidebarHover,surfaceWorkspace:e.surface1,foreground:t,foregroundMuted:e.mutedForeground,accent:e.accent,accentBright:e.accentBright,accentForeground:n,destructive:e.destructive,destructiveForeground:x.white,success:e.accent,successForeground:x.white,border:e.border,borderAccent:e.borderAccent,...zo,diffAddition:x.green[400],diffDeletion:x.red[500],scrollbarHandle:e.scrollbarHandle,background:e.surface0,popover:e.surface2,popoverForeground:t,primary:e.accent,secondary:e.surface2,muted:e.surface2,mutedForeground:e.mutedForeground,input:e.surface2,ring:e.accent,palette:x,syntax:Lo(),terminal:Ts(e.surface0,t,e.accent)}}function Wo(){const e="#1a1a1e",t="#253e6f";return{surface0:"#ffffff",surface1:"#fafafa",surface2:"#f4f4f5",surface3:"#e4e4e7",surface4:"#d4d4d8",surfaceDiffEmpty:"#f6f6f6",surfaceSidebar:"#f4f4f5",surfaceSidebarHover:"#e9e9ec",surfaceWorkspace:"#ffffff",foreground:e,foregroundMuted:"#71717a",accent:t,accentBright:"#2f4f8e",accentForeground:hn(t),destructive:"#b04138",destructiveForeground:"#ffffff",success:t,successForeground:"#ffffff",border:"#e4e4e7",borderAccent:"#ececf1",...Bo,diffAddition:"#15803d",diffDeletion:"#b91c1c",scrollbarHandle:"#3f3f46",background:"#ffffff",popover:"#ffffff",popoverForeground:e,primary:t,secondary:"#f4f4f5",muted:"#f4f4f5",mutedForeground:"#71717a",input:"#f4f4f5",ring:t,palette:x,syntax:Fo(),terminal:{...Ts("#ffffff",e,t),selectionBackground:"rgba(0,0,0,0.15)",white:"#ffffff",brightWhite:"#fafafa"}}}const Ho={light:"#ffffff",dark:"#3b62b0",zinc:"#808080",midnight:"#4A6BA8",claude:"#D97757",ghostty:"#8caaee"},js=["light","dark","zinc","midnight","claude","ghostty"];function Uo(e){if(e==="light")return Wo();switch(e){case"dark":return Ke({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 Ke({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 Ke({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 Ke({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 Ke({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 Cs={};for(const e of js){const t=e==="light"?"light":"dark";Cs[e]={name:e,colorScheme:t,colors:Uo(e),swatch:Ho[e]}}const Vo=Cs,Ko={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,14:14,16:16,20:20,24:24,26:26,30:30,32:32,48:48,64:64,80:80,96:96,128:128},xt={"4xs":10,"3xs":11,"2xs":12,xs:13,code:13,sm:14,md:15,base:17,lg:19,xl:21,"2xl":23,"3xl":28,"4xl":36},Go={normal:"400",medium:"500",semibold:"600",bold:"700"},Yo={none:0,sm:2,base:4,md:6,lg:8,xl:12,"2xl":16,full:9999},Xo={0:0,1:1,2:2},Jo={0:0,50:.5,100:1},Zo={xs:12,sm:14,md:16,lg:20},Qo={diff:22},Rs='system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',Ps='ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace';function ei(e){const t=e==="dark"?"rgba(0,0,0,0.55)":"rgba(24,24,27,0.12)";return{sm:{color:t,offsetX:0,offsetY:1,radius:2,elevation:1},md:{color:t,offsetX:0,offsetY:3,radius:8,elevation:4},lg:{color:t,offsetX:0,offsetY:10,radius:24,elevation:12}}}function As(e){const t=Vo[e];return{name:e,colorScheme:t.colorScheme,colors:t.colors,spacing:Ko,fontSize:{...xt},fontFamily:{ui:Rs,mono:Ps},lineHeight:{...Qo},iconSize:Zo,fontWeight:Go,borderRadius:Yo,borderWidth:Xo,opacity:Jo,shadow:ei(t.colorScheme),swatch:t.swatch}}const ti=xt.base,ni=10,si=24;function ri(e,t){const n=t.themeName??e.name,s=As(n),r=t.uiFont&&t.uiFont.trim()!==""?t.uiFont:Rs,o=t.monoFont&&t.monoFont.trim()!==""?t.monoFont:Ps,i={...s.fontSize};if(t.fontSize!=null){const l=Math.max(ni,Math.min(si,t.fontSize))/ti;for(const u of Object.keys(xt))i[u]=Math.round(xt[u]*l)}return{...s,fontSize:i,fontFamily:{ui:r,mono:o}}}function oi(e){return As(e)}const ii="dark",ai=16;function ci(e){const t=e/ai;return`${Number(t.toFixed(4))}rem`}function li(e){const t={};di(e.colors,t);for(const[n,s]of Object.entries(e.spacing))t[`--pi-spacing-${n}`]=`${s}px`;for(const[n,s]of Object.entries(e.fontSize))t[`--pi-font-size-${n}`]=ci(s);t["--pi-font-ui"]=e.fontFamily.ui,t["--pi-font-mono"]=e.fontFamily.mono,t["--pi-line-height-diff"]=`${e.lineHeight.diff}px`;for(const[n,s]of Object.entries(e.iconSize))t[`--pi-icon-size-${n}`]=`${s}px`;for(const[n,s]of Object.entries(e.fontWeight))t[`--pi-font-weight-${n}`]=String(s);for(const[n,s]of Object.entries(e.borderRadius))t[`--pi-radius-${n}`]=s===9999?"9999px":`${s}px`;for(const[n,s]of Object.entries(e.borderWidth))t[`--pi-border-width-${n}`]=`${s}px`;for(const[n,s]of Object.entries(e.opacity))t[`--pi-opacity-${n}`]=String(s);for(const[n,s]of Object.entries(e.shadow))if(typeof s=="string")t[`--pi-shadow-${n}`]=s;else if(s&&typeof s=="object"){const r=s;t[`--pi-shadow-${n}`]=`${r.offsetX}px ${r.offsetY}px ${r.radius}px ${r.color}`}return t["--pi-color-scheme"]=e.colorScheme,t}function di(e,t){const{palette:n,syntax:s,terminal:r,...o}=e;for(const[i,a]of Object.entries(o))typeof a=="string"&&(t[`--pi-color-${i}`]=a);s&&ui(s,t),r&&(t["--pi-terminal-bg"]=r.background,t["--pi-terminal-fg"]=r.foreground)}function ui(e,t){for(const[n,s]of Object.entries(e))typeof s=="string"&&(t[`--syntax-${fi(n)}`]=s)}function fi(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function pi(e){if(typeof document>"u")return;const t=document.documentElement.style;for(const[s,r]of Object.entries(e))t.setProperty(s,r);const n=e["--pi-color-scheme"];n&&document.documentElement.style.setProperty("color-scheme",n)}function hi(e){const t=li(e);pi(t)}const Ge=d().min(1,"Asset path must not be empty"),mi=g({accent:d().refine(pt,{message:"accent must be a valid #rrggbb hex color"}),accentBright:d().refine(pt,{message:"accentBright must be a valid #rrggbb hex color"}).optional(),accentForeground:d().refine(pt,{message:"accentForeground must be a valid #rrggbb hex color"}).optional(),swatch:d().refine(pt,{message:"swatch must be a valid #rrggbb hex color"}).optional()}),gi=g({logoLight:Ge,logoDark:Ge,logoMark:Ge.optional(),icon:Ge,splash:Ge.optional()}),_i=g({docs:d().url().optional(),support:d().url().optional(),issues:d().url().optional(),website:d().url().optional()}).optional(),yi=g({copyright:d().optional(),companyName:d().optional()}).optional();g({productName:d().min(1,"productName is required"),shortName:d().optional(),tagline:d().optional(),colors:mi,assets:gi,links:_i,legal:yi});function wi(e){const t=e.accent,n=e.accentBright??Oo(t,.35),s=e.accentForeground??hn(t),r=e.swatch??t;return{accent:t,accentBright:n,accentForeground:s,swatch:r}}function bi(e,t){return{...e,colors:{...e.colors,accent:t.accent,accentBright:t.accentBright,accentForeground:t.accentForeground,primary:t.accent,ring:t.accent},swatch:t.swatch}}const Nn="pi-studio-appearance";function vi(e,t){let n=a(e),s=null;function r(f){return f==="system"?typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f}function o(f,h){const m=r(f),p=oi(m);let y=ri(p,{...h,themeName:m});if(t!=null&&t.colors){const _=wi(t.colors);y=bi(y,_)}return y}function i(){const f=JSON.stringify({mode:n.mode,settings:n.settings});e.set(Nn,f)}function a(f){const h=f.get(Nn);let m=ii,p={};if(h)try{const _=JSON.parse(h);_.mode&&(js.includes(_.mode)||_.mode==="system")&&(m=_.mode),_.settings&&typeof _.settings=="object"&&(p=_.settings)}catch{}const y=o(m,p);return{mode:m,settings:p,resolvedTheme:y}}function l(){n={...n,resolvedTheme:o(n.mode,n.settings)},i()}const u={getState(){return n},setMode(f){n={...n,mode:f},l(),u.apply()},updateSettings(f){n={...n,settings:{...n.settings,...f}},l(),u.apply()},apply(){hi(n.resolvedTheme)},listen(){if(typeof window>"u")return()=>{};const f=window.matchMedia("(prefers-color-scheme: dark)"),h=()=>{n.mode==="system"&&(l(),u.apply())};return f.addEventListener("change",h),s=()=>f.removeEventListener("change",h),s}};return u}function Si({store:e,brandConfig:t,children:n}){const s=b.useRef(null);return s.current||(s.current=vi(e,t),s.current.apply()),b.useEffect(()=>s.current.listen(),[]),c.jsx(c.Fragment,{children:n})}const mn={get(e){var t;try{return((t=globalThis.localStorage)==null?void 0:t.getItem(e))??null}catch{return null}},set(e,t){var n;try{(n=globalThis.localStorage)==null||n.setItem(e,t)}catch{}}};function xi({children:e}){return c.jsx(Si,{store:mn,children:c.jsx(Wr,{client:Do,children:e})})}const ki="_btn_1oc6k_4",Ii="_secondary_1oc6k_47",Ei="_outline_1oc6k_56",Ti="_ghost_1oc6k_65",ji="_destructive_1oc6k_75",Ci="_iconOnly_1oc6k_85",Ri="_loadingSpinner_1oc6k_92",Pi="_piSpin_1oc6k_1",ht={btn:ki,default:"_default_1oc6k_38",secondary:Ii,outline:Ei,ghost:Ti,destructive:ji,iconOnly:Ci,loadingSpinner:Ri,piSpin:Pi},Dn={xs:28,sm:32,md:36,lg:40},Ai={xs:12,sm:14,md:16,lg:20},Mn={xs:8,sm:10,md:12,lg:16},Ni={xs:"var(--pi-font-size-xs)",sm:"var(--pi-font-size-sm)",md:"var(--pi-font-size-md)",lg:"var(--pi-font-size-base)"};function Di(e){const{disabled:t,loading:n}=e;return t||n?{opacity:.5,isGhostHover:!1}:{opacity:1,isGhostHover:!1}}function le({variant:e="default",size:t="md",loading:n=!1,disabled:s=!1,leftIcon:r,trailing:o,iconOnly:i=!1,children:a,style:l,className:u,...f}){const{opacity:h}=Di({disabled:s??!1,loading:n}),m=s||n,p=Ai[t];return c.jsxs("button",{className:F(ht.btn,ht[e],i&&ht.iconOnly,u),disabled:m,"aria-busy":n||void 0,style:{minHeight:Dn[t],paddingLeft:i?void 0:Mn[t],paddingRight:i?void 0:Mn[t],fontSize:Ni[t],opacity:h,...i?{width:Dn[t]}:{},...l},...f,children:[n?c.jsx(Kr,{className:ht.loadingSpinner,size:p,"aria-hidden":!0}):r?c.jsx("span",{"aria-hidden":!0,style:{display:"flex",alignItems:"center",flexShrink:0},children:r}):null,a,o&&!n&&c.jsx("span",{"aria-hidden":!0,style:{display:"flex",alignItems:"center",flexShrink:0},children:o})]})}const Mi={xs:12,sm:14,md:16,lg:20};function re({icon:e,size:t="md",color:n="currentColor",className:s,...r}){const o=typeof t=="number"?t:Mi[t];return c.jsx(e,{size:o,color:n,className:s,"aria-hidden":r["aria-hidden"],"aria-label":r["aria-label"]})}const qi="_spinner_1ibj3_3",$i={spinner:qi},Oi={xs:12,sm:16,md:20,lg:24},zi={xs:1,sm:2,md:2,lg:3};function Ns({size:e="md",color:t="currentColor",className:n,"aria-label":s="Loading"}){const r=typeof e=="number"?e:Oi[e],o=typeof e=="number"?2:zi[e];return c.jsx("span",{className:`${$i.spinner}${n?` ${n}`:""}`,role:"status","aria-label":s,style:{width:r,height:r,borderWidth:o,color:t}})}const Bi="_dot_hctvn_3",Li="_spinner_hctvn_16",qn={dot:Bi,spinner:Li};function Fi(e){const{status:t,requiresAttention:n,attentionReason:s,showInactive:r}=e;if(!t)return null;if(n)switch(s){case"permission":return"statusWarning";case"error":return"statusDanger";case"finished":default:return"statusSuccess"}switch(t){case"running":case"queued":return"accent";case"waiting":return"statusWarning";case"finished":return"statusSuccess";case"error":return"statusDanger";case"idle":case"archived":return r?"foregroundMuted":null}}const $n=8,Wi={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 At({className:e,...t}){const n=Fi(t);if(!n)return null;const s=t.status==="running"&&!t.requiresAttention,r=s?"var(--pi-color-accentBright, #a2b4d7)":Wi[n]??"currentColor";return c.jsx("span",{className:`${s?qn.spinner:qn.dot}${e?` ${e}`:""}`,style:s?{borderTopColor:r,borderRightColor:r}:{width:`var(--status-dot-size, ${$n}px)`,height:`var(--status-dot-size, ${$n}px)`,backgroundColor:r},role:"presentation"})}const Hi="_input_756jo_3",Ui="_textarea_756jo_32",Zt={input:Hi,textarea:Ui},kt=b.forwardRef(function({className:t,...n},s){return c.jsx("input",{ref:s,className:F(Zt.input,t),...n})}),Vm=b.forwardRef(function({className:t,...n},s){return c.jsx("textarea",{ref:s,className:F(Zt.input,Zt.textarea,t),...n})}),Ds=d().datetime({offset:!0});d().uuid();d().regex(/^[A-Za-z0-9_-]+$/,"expected base64url");const rt=ln([W(),Ds]),Vi=Ie(["mobile","browser","cli","mcp"]),Ki=g({type:S("hello"),clientId:d(),clientType:Vi,protocolVersion:W(),appVersion:d().optional(),capabilities:ve(d(),D()).optional()}),Gi=g({status:S("server_info"),serverId:d(),hostname:d().optional(),version:d().optional(),capabilities:ve(d(),oe()),features:ve(d(),oe())}),Yi=g({type:S("status"),payload:Gi}),Xi=g({type:S("ping"),requestId:d(),clientSentAt:rt.optional()}),Ji=g({type:S("pong"),requestId:d(),clientSentAt:rt.optional(),serverReceivedAt:rt,serverSentAt:rt}),Ms=Ie(["initializing","idle","running","error","closed"]),Nt=g({mimeType:d().optional(),data:d().optional()}).passthrough(),Zi=g({prs:H(oe()).optional(),issues:H(oe()).optional()}).passthrough(),Qi=g({provider:d(),cwd:d(),modeId:d().optional(),model:d().optional(),modelProvider:d().optional(),thinkingOptionId:d().optional(),featureValues:ve(d(),oe()).optional(),title:d().nullable().optional(),approvalPolicy:d().optional(),sandboxMode:d().optional(),networkAccess:D().optional(),webSearch:D().optional(),extra:g({pi:oe().optional()}).passthrough().optional(),systemPrompt:d().optional(),mcpServers:ve(d(),oe()).optional()}),ea=g({type:S("create_agent_request"),requestId:d(),config:Qi,env:ve(d(),d()).optional(),workspaceId:d().optional(),worktreeName:d().optional(),initialPrompt:d().optional(),clientMessageId:d().optional(),outputSchema:ve(d(),oe()).optional(),images:H(Nt).optional(),attachments:Zi.optional(),git:oe().optional(),worktree:oe().optional(),autoArchive:D().optional(),labels:ve(d(),d()).default({})}),ta=g({type:S("create_agent_response"),requestId:d(),payload:g({agentId:d()}).passthrough()}),na=g({type:S("agent_update"),agentId:d(),status:Ms.optional(),title:d().nullable().optional(),labels:ve(d(),d()).optional()}),sa=g({type:S("agent_status"),agentId:d(),status:Ms}),ra=g({type:S("agent_list"),agents:H(g({id:d()}).passthrough())}),oa=g({type:S("agent_deleted"),agentId:d()}),ia=g({type:S("agent_archived"),agentId:d(),archivedAt:Ds.optional()}),qs=jt("kind",[g({kind:S("shell"),command:d().optional(),output:d().optional()}),g({kind:S("read"),path:d().optional(),output:d().optional()}),g({kind:S("edit"),path:d().optional(),diff:d().optional(),output:d().optional()}),g({kind:S("write"),path:d().optional(),output:d().optional()}),g({kind:S("search"),query:d().optional(),output:d().optional()}),g({kind:S("fetch"),url:d().optional(),output:d().optional()}),g({kind:S("task"),description:d().optional(),output:d().optional()})]),aa=jt("kind",[g({kind:S("user_message"),messageId:d().optional(),text:d().optional(),images:H(Nt).optional()}),g({kind:S("assistant_message"),messageId:d().optional(),text:d().optional(),final:D().optional()}),g({kind:S("reasoning"),text:d().optional(),final:D().optional()}),g({kind:S("tool_call"),callId:d().optional(),tool:qs,status:d().optional()}),g({kind:S("turn_started"),turnId:d().optional()}),g({kind:S("turn_completed"),turnId:d().optional()}),g({kind:S("turn_failed"),turnId:d().optional(),error:d().optional()}),g({kind:S("turn_canceled"),turnId:d().optional()}),g({kind:S("error"),message:d().optional()}),g({kind:S("queue_update"),steering:H(d()).optional(),followUp:H(d()).optional()})]),ca=g({type:S("agent_stream"),agentId:d(),seq:W().optional(),timestamp:rt.optional(),event:aa}),la=Ie(["before","after"]),da=g({start:W(),end:W()}),ua=g({type:S("fetch_agent_timeline_request"),requestId:d(),agentId:d(),cursor:d().nullable().optional(),direction:la,limit:W().optional()}),fa=g({type:S("fetch_agent_timeline_response"),requestId:d(),agentId:d().optional(),items:H(oe()),seqStart:W(),seqEnd:W(),sourceSeqRanges:H(da),collapsed:D(),hasNewer:D(),startCursor:d().nullable().optional(),endCursor:d().nullable().optional()}),pa=g({type:S("agent_permission_request"),requestId:d(),agentId:d(),toolName:d().optional(),tool:qs.optional(),action:oe().optional(),responses:H(d()).optional()}),ha=g({type:S("agent_permission_resolved"),requestId:d(),agentId:d(),decision:d().optional()}),ma=g({type:S("agent.permission.respond.request"),requestId:d(),permissionRequestId:d(),response:oe()}),ga=g({type:S("agent.permission.respond.response"),requestId:d(),payload:g({resolved:D()}).passthrough()}),_a=g({type:S("respond_to_permission"),requestId:d(),permissionRequestId:d(),response:oe()}),$s=Ie(["conversation","files","both"]),ya=g({type:S("agent.rewind.request"),requestId:d(),agentId:d(),messageId:d(),mode:$s}).passthrough(),wa=g({type:S("agent.rewind.response"),requestId:d(),payload:g({agentId:d(),messageId:d(),mode:$s,truncatedAt:d().optional()}).passthrough()}).passthrough(),ba=g({input:W().optional(),output:W().optional(),cacheRead:W().optional(),cacheWrite:W().optional(),total:W().optional()}).passthrough(),va=g({tokens:W().nullable().optional(),contextWindow:W().optional(),percent:W().nullable().optional()}).passthrough(),Sa=g({type:S("agent_session_stats_request"),requestId:d(),agentId:d()}).passthrough(),xa=g({type:S("agent_session_stats_response"),requestId:d(),payload:g({sessionId:d().optional(),sessionFile:d().optional(),userMessages:W().optional(),assistantMessages:W().optional(),toolCalls:W().optional(),toolResults:W().optional(),totalMessages:W().optional(),tokens:ba.optional(),cost:W().optional(),contextUsage:va.optional(),model:d().optional()}).passthrough()}).passthrough(),ka=g({type:S("agent_compact_request"),requestId:d(),agentId:d(),customInstructions:d().optional()}).passthrough(),Ia=g({type:S("agent_compact_response"),requestId:d(),payload:g({summary:d().optional(),firstKeptEntryId:d().optional(),tokensBefore:W().optional(),details:oe().optional()}).passthrough()}).passthrough(),Ea=g({type:S("agent_new_session_request"),requestId:d(),agentId:d()}).passthrough(),Ta=g({type:S("agent_new_session_response"),requestId:d(),payload:g({cancelled:D()}).passthrough()}).passthrough(),ja=g({type:S("agent_switch_session_request"),requestId:d(),agentId:d(),sessionPath:d()}).passthrough(),Ca=g({type:S("agent_switch_session_response"),requestId:d(),payload:g({cancelled:D()}).passthrough()}).passthrough(),Ra=g({type:S("agent_fork_request"),requestId:d(),agentId:d(),entryId:d()}).passthrough(),Pa=g({type:S("agent_fork_response"),requestId:d(),payload:g({text:d(),cancelled:D()}).passthrough()}).passthrough(),Aa=g({type:S("agent_fork_messages_request"),requestId:d(),agentId:d()}).passthrough(),Na=g({type:S("agent_fork_messages_response"),requestId:d(),payload:g({messages:H(g({entryId:d(),text:d()}).passthrough())}).passthrough()}).passthrough(),Da=g({type:S("agent_clone_request"),requestId:d(),agentId:d()}).passthrough(),Ma=g({type:S("agent_clone_response"),requestId:d(),payload:g({cancelled:D()}).passthrough()}).passthrough(),qa=g({type:S("agent_set_session_name_request"),requestId:d(),agentId:d(),name:d()}).passthrough(),$a=g({type:S("agent_set_session_name_response"),requestId:d(),payload:g({}).passthrough().optional()}).passthrough(),Oa=g({type:S("agent_export_html_request"),requestId:d(),agentId:d(),outputPath:d().optional()}).passthrough(),za=g({type:S("agent_export_html_response"),requestId:d(),payload:g({path:d()}).passthrough()}).passthrough(),Ba=g({type:S("agent_set_model_request"),requestId:d(),agentId:d(),provider:d(),modelId:d()}).passthrough(),La=g({type:S("agent_set_model_response"),requestId:d(),payload:g({}).passthrough()}).passthrough(),Fa=g({type:S("agent_cycle_model_request"),requestId:d(),agentId:d()}).passthrough(),Wa=g({type:S("agent_cycle_model_response"),requestId:d(),payload:g({model:oe().nullable().optional(),thinkingLevel:d().optional(),isScoped:D().optional()}).passthrough()}).passthrough(),Ha=g({type:S("agent_last_assistant_text_request"),requestId:d(),agentId:d()}).passthrough(),Ua=g({type:S("agent_last_assistant_text_response"),requestId:d(),payload:g({text:d().nullable()}).passthrough()}).passthrough(),Va=g({type:S("steer_agent_request"),requestId:d(),agentId:d(),message:d(),images:H(Nt).optional(),clientMessageId:d().optional()}).passthrough(),Ka=g({type:S("steer_agent_response"),requestId:d(),agentId:d(),ok:D()}).passthrough(),Ga=g({type:S("follow_up_agent_request"),requestId:d(),agentId:d(),message:d(),images:H(Nt).optional(),clientMessageId:d().optional()}).passthrough(),Ya=g({type:S("follow_up_agent_response"),requestId:d(),agentId:d(),ok:D()}).passthrough(),Xa=g({name:d(),id:d().optional(),description:d().optional(),source:Ie(["extension","prompt","skill"]).optional(),scope:Ie(["user","project","temporary"]).optional(),path:d().optional()}).passthrough(),Ja=g({type:S("agent_list_commands_request"),requestId:d(),agentId:d()}).passthrough(),Za=g({type:S("agent_list_commands_response"),requestId:d(),payload:g({commands:H(Xa)}).passthrough()}).passthrough(),Qa=g({source:d(),identity:d(),addedIn:d(),deprecated:D().optional(),status:d(),lastError:g({at:d(),attempts:W(),reason:d(),message:d()}).passthrough().optional()}).passthrough(),Os=g({id:d(),title:d(),description:d(),packages:H(Qa)}).passthrough(),ec=g({identity:d(),source:d(),pack:d(),reason:d(),message:d()}).passthrough(),tc=g({at:d(),outcome:d(),installed:H(d()),failures:H(ec)}).passthrough(),zs=g({at:d(),outcome:d()}).passthrough(),nc=g({type:S("extension_packs_list_request"),requestId:d()}).passthrough(),sc=g({type:S("extension_packs_list_response"),requestId:d(),autoSync:D(),selected:H(d()),packs:H(Os),lastSync:zs.optional()}).passthrough(),rc=g({type:S("extension_packs_set_request"),requestId:d(),packs:H(d()).optional()}).passthrough(),oc=g({type:S("extension_packs_set_response"),requestId:d(),autoSync:D(),selected:H(d()),packs:H(Os),lastSync:zs.optional(),ok:D(),error:d().optional(),report:tc.optional()}).passthrough(),Qt=Ie(["api_key","oauth"]),ic=g({id:d(),name:d(),authTypes:H(Qt),oauthLoginLabel:d().optional(),oauthIsSubscription:D().optional(),configured:ln([D(),S("unknown")]),configuredType:Qt.optional(),configuredSource:d().optional()}).passthrough(),ac=g({type:S("provider_auth_list_request"),requestId:d()}).passthrough(),cc=g({type:S("provider_auth_list_response"),requestId:d(),payload:g({ok:D(),providers:H(ic).default([]),error:d().optional()}).passthrough()}).passthrough(),lc=g({type:S("provider_auth_login_request"),requestId:d(),provider:d(),authType:Qt}).passthrough(),dc=g({type:S("provider_auth_login_response"),requestId:d(),payload:g({ok:D(),flowId:d().optional(),error:d().optional()}).passthrough()}).passthrough(),uc=g({type:S("provider_auth_respond_request"),requestId:d(),flowId:d(),promptId:d(),value:d()}).passthrough(),fc=g({type:S("provider_auth_respond_response"),requestId:d(),payload:g({ok:D(),error:d().optional()}).passthrough()}).passthrough(),pc=g({type:S("provider_auth_cancel_request"),requestId:d(),flowId:d()}).passthrough(),hc=g({type:S("provider_auth_cancel_response"),requestId:d(),payload:g({ok:D()}).passthrough()}).passthrough(),mc=g({type:S("provider_auth_logout_request"),requestId:d(),provider:d()}).passthrough(),gc=g({type:S("provider_auth_logout_response"),requestId:d(),payload:g({ok:D(),stillConfigured:D().optional(),error:d().optional()}).passthrough()}).passthrough(),_c=g({type:S("rpc_error"),requestId:d(),code:d().optional(),message:d().optional(),error:d().optional()}),yc=jt("type",[ea,ta,na,sa,ra,oa,ia,ca,ua,fa,pa,ha,ma,ga,_a,ya,wa,Sa,xa,ka,Ia,Ea,Ta,ja,Ca,Ra,Pa,Aa,Na,Da,Ma,qa,$a,Oa,za,Ba,La,Fa,Wa,Ha,Ua,Va,Ka,Ga,Ya,Ja,Za,nc,sc,rc,oc,ac,cc,lc,dc,uc,fc,pc,hc,mc,gc,_c]),wc=g({type:d()}).passthrough(),bc=g({type:S("session"),message:ln([yc,wc])});jt("type",[Ki,Yi,Xi,Ji,bc]);const zt={inline_image_markdown:"inline_image_markdown",file_link_markdown:"file_link_markdown",mermaid_diagram_markdown:"mermaid_diagram_markdown"},ze={Output:1,Input:2,Resize:3,Snapshot:4,Restore:5},vc=Object.fromEntries(Object.entries(ze).map(([e,t])=>[t,e])),Bs=g({rows:W().int().nonnegative(),cols:W().int().nonnegative()});class Qe extends Error{constructor(t){super(t),this.name="TerminalFrameError"}}const Sc=new TextEncoder,xc=new TextDecoder;function kc(e){if(!Number.isInteger(e)||e<0||e>255)throw new Qe(`slot must be an integer 0–255, got ${e}`)}function Ye(e,t,n){const s=new Uint8Array(2+n.length);return s[0]=e,s[1]=t,s.set(n,2),s}function Km(e){switch(kc(e.slot),e.opcode){case"Output":return Ye(ze.Output,e.slot,e.data);case"Input":return Ye(ze.Input,e.slot,e.data);case"Snapshot":return Ye(ze.Snapshot,e.slot,e.data);case"Restore":return Ye(ze.Restore,e.slot,e.data);case"Resize":{const t=JSON.stringify(Bs.parse({rows:e.rows,cols:e.cols}));return Ye(ze.Resize,e.slot,Sc.encode(t))}}}function Ic(e){if(e.length<2)throw new Qe(`frame too short: ${e.length} bytes (need ≥ 2)`);const t=e[0],n=e[1],s=vc[t];if(!s)throw new Qe(`unknown terminal opcode 0x${t.toString(16)}`);const r=e.subarray(2);if(s==="Resize"){let o;try{o=JSON.parse(xc.decode(r))}catch{throw new Qe("resize payload is not valid JSON")}const i=Bs.safeParse(o);if(!i.success)throw new Qe("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:r.slice()}}const Fe={Begin:16,Chunk:17,End:18,Error:19},Ec=Object.fromEntries(Object.entries(Fe).map(([e,t])=>[t,e])),Ls=g({transferId:d(),fileName:d().optional(),mimeType:d().optional(),totalBytes:W().int().nonnegative().optional()});class et extends Error{constructor(t){super(t),this.name="FileTransferFrameError"}}const On=new TextEncoder,zn=new TextDecoder;function Tc(e){if(!Number.isInteger(e)||e<0||e>255)throw new et(`stream must be an integer 0–255, got ${e}`)}function mt(e,t,n){const s=new Uint8Array(2+n.length);return s[0]=e,s[1]=t,s.set(n,2),s}function Bt(e){switch(Tc(e.stream),e.opcode){case"Begin":return mt(Fe.Begin,e.stream,On.encode(JSON.stringify(Ls.parse(e.meta))));case"Chunk":return mt(Fe.Chunk,e.stream,e.data);case"End":return mt(Fe.End,e.stream,new Uint8Array([e.ok?1:0]));case"Error":return mt(Fe.Error,e.stream,On.encode(e.message))}}function jc(e){if(e.length<2)throw new et(`frame too short: ${e.length} bytes (need ≥ 2)`);const t=e[0],n=e[1],s=Ec[t];if(!s)throw new et(`unknown file-transfer opcode 0x${t.toString(16)}`);const r=e.subarray(2);switch(s){case"Begin":{let o;try{o=JSON.parse(zn.decode(r))}catch{throw new et("begin payload is not valid JSON")}const i=Ls.safeParse(o);if(!i.success)throw new et("begin payload is not a valid transfer header");return{opcode:"Begin",stream:n,meta:i.data}}case"Chunk":return{opcode:"Chunk",stream:n,data:r.slice()};case"End":return{opcode:"End",stream:n,ok:(r[0]??1)!==0};case"Error":return{opcode:"Error",stream:n,message:zn.decode(r)}}}function Cc(e){try{return jc(e)}catch{return null}}const Be=256;function Rc(e,t=0){const n=(t%Be+Be)%Be;for(let s=0;s<Be;s++){const r=(n+s)%Be;if(!e.has(r))return r}return null}const Pc=d().regex(/^[a-z][a-z0-9-]*$/,"invalid provider id"),Ac=Ie(["safe","moderate","dangerous","planning"]),Nc=g({supportsStreaming:D(),supportsSessionPersistence:D(),supportsDynamicModes:D(),supportsMcpServers:D(),supportsReasoningStream:D(),supportsToolInvocations:D(),supportsRewindConversation:D().optional(),supportsRewindFiles:D().optional(),supportsRewindBoth:D().optional(),supportsSteering:D().optional()}).passthrough(),Dc=g({id:d(),label:d().optional(),description:d().optional(),icon:d().optional(),colorTier:Ac});g({id:Pc,label:d(),description:d().optional(),extends:d().optional(),modes:H(Dc),capabilities:Nc});function en(e){return typeof e=="string"?e:e instanceof Uint8Array||Buffer.isBuffer(e)?e.toString("utf8"):String(e??"")}function Fs(e){let t=null;const n={onMessage:null,onClose:null,onError:null,get isOpen(){return t!==null&&t.readyState===1},connect(s){return new Promise((r,o)=>{const i=e??(()=>new WebSocket(s));try{t=e?i(s):new WebSocket(s),t.binaryType="arraybuffer"}catch(a){o(a);return}t.onopen=()=>r(),t.onerror=a=>{var l;(t==null?void 0:t.readyState)!==1&&o(a),(l=n.onError)==null||l.call(n,a)},t.onclose=a=>{var l;(l=n.onClose)==null||l.call(n,a.code,en(a.reason))},t.onmessage=a=>{var u,f,h,m;const{data:l}=a;l instanceof ArrayBuffer||l instanceof Uint8Array?(u=n.onMessage)==null||u.call(n,l):typeof l=="string"?(f=n.onMessage)==null||f.call(n,l):typeof Blob<"u"&&l instanceof Blob?(h=n.onMessage)==null||h.call(n,l):Buffer.isBuffer(l)&&((m=n.onMessage)==null||m.call(n,l.buffer.slice(l.byteOffset,l.byteOffset+l.byteLength)))}})},sendText(s){t==null||t.send(s)},sendBinary(s){t==null||t.send(s)},close(s=1e3,r=""){t==null||t.close(s,r),t=null}};return n}const tt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Ws(e){let t="";for(let n=0;n<e.length;n+=3){const s=e[n],r=n+1<e.length,o=n+2<e.length,i=r?e[n+1]:0,a=o?e[n+2]:0;t+=tt[s>>2],t+=tt[(s&3)<<4|i>>4],t+=r?tt[(i&15)<<2|a>>6]:"=",t+=o?tt[a&63]:"="}return t}function Hs(e){const t=e.replace(/=+$/,""),n=[];let s=0,r=0;for(const o of t){const i=tt.indexOf(o);if(i===-1)throw new Error(`invalid base64 character: ${JSON.stringify(o)}`);s=s<<6|i,r+=6,r>=8&&(r-=8,n.push(s>>r&255))}return new Uint8Array(n)}function Mc(e){try{const t=JSON.parse(e);return!t||typeof t.type!="string"?null:t}catch{return null}}const wt=24;function Us(e,t){const n=He.randomBytes(wt),s=He.box.after(e,n,t),r=new Uint8Array(n.length+s.length);return r.set(n,0),r.set(s,n.length),Ws(r)}function Vs(e,t){let n;try{n=Hs(e)}catch{return null}if(n.length<wt)return null;const s=n.slice(0,wt),r=n.slice(wt);return He.box.open.after(r,s,t)}function qc(e,t){return Us(new TextEncoder().encode(e),t)}function $c(e,t){const n=Vs(e,t);return n?new TextDecoder().decode(n):null}function Oc(e,t,n,s,r,o){let i=!1;return n.onClose(a=>{var l;i=!0,(l=s.onClose)==null||l.call(s,a)}),{handleAppFrame(a){var f,h;if(i)return;const l=r();if(!o()||!l)return;const u=$c(a.frame,l);if(u===null){(f=s.onAuthError)==null||f.call(s,new Error(`relay ${e} channel: message failed authentication`));return}(h=s.onMessage)==null||h.call(s,u)},handleBinaryFrame(a){var f,h;if(i)return;const l=r();if(!o()||!l)return;const u=Vs(a.frame,l);if(u===null){(f=s.onAuthError)==null||f.call(s,new Error(`relay ${e} channel: binary message failed authentication`));return}(h=s.onBinaryMessage)==null||h.call(s,u)},send(a){if(i)throw new Error(`relay ${e} channel: cannot send after close()`);const l=r();if(!o()||!l)throw new Error(`relay ${e} channel: cannot send before the E2EE handshake completes`);n.send(JSON.stringify({type:"e2ee_app",frame:qc(a,l)}))},sendBinary(a){if(i)throw new Error(`relay ${e} channel: cannot send after close()`);const l=r();if(!o()||!l)throw new Error(`relay ${e} channel: cannot send before the E2EE handshake completes`);n.send(JSON.stringify({type:"e2ee_bin",frame:Us(a,l)}))},close(){i||(i=!0,n.close())}}}function zc(e){const{transport:t,attachment:n,daemonPublicKey:s}=e,r=e.events??{},o=He.box.keyPair(),i=He.box.before(s,o.secretKey);let a=!1;const l=Oc("client",n,t,r,()=>i,()=>a);return t.onMessage(u=>{var h;const f=Mc(u);if(f){if(f.type==="e2ee_ready"){if(a)return;a=!0,(h=r.onReady)==null||h.call(r);return}if(f.type==="e2ee_app"){l.handleAppFrame(f);return}f.type==="e2ee_bin"&&l.handleBinaryFrame(f)}}),t.send(JSON.stringify({type:"e2ee_hello",ephemeralPublicKey:Ws(o.publicKey)})),{role:"client",attachment:n,get ready(){return a},send:l.send,sendBinary:l.sendBinary,close:l.close}}const Bc=16;function Lc(e){const t=He.hash(e);let n="";for(let s=0;s<Bc;s++)n+=t[s].toString(16).padStart(2,"0");return n}function Fc(e){const t=e.useTls?"wss":"ws",n=e.endpoint.replace(/^(?:https?|wss?):\/\//,"").replace(/\/+$/,"");return`${t}://${n}`}function Wc(e){let t=null,n=null;const s=e.sessionId??Lc(e.daemonPublicKey),r={onMessage:null,onClose:null,onError:null,get isOpen(){return t!==null&&t.readyState===1&&n!==null&&n.ready},connect(o){return new Promise((i,a)=>{const l=e.factory??(()=>new WebSocket(o));try{t=e.factory?l(o):new WebSocket(o)}catch(m){a(m);return}const u=t,f=[],h=[];u.onopen=()=>{u.send(JSON.stringify({type:"relay_register",sessionId:s})),n=zc({transport:{send:m=>u.send(m),onMessage:m=>f.push(m),onClose:m=>h.push(m),close:()=>u.close()},attachment:{sessionId:s},daemonPublicKey:e.daemonPublicKey,events:{onReady:()=>i(),onMessage:m=>{var p;return(p=r.onMessage)==null?void 0:p.call(r,m)},onBinaryMessage:m=>{var p;return(p=r.onMessage)==null?void 0:p.call(r,m.slice().buffer)},onAuthError:m=>{var p;return(p=r.onError)==null?void 0:p.call(r,m)}}})},u.onerror=m=>{var p;u.readyState!==1&&a(m),(p=r.onError)==null||p.call(r,m)},u.onclose=m=>{var p;for(const y of h)y(en(m.reason));(p=r.onClose)==null||p.call(r,m.code,en(m.reason))},u.onmessage=m=>{const{data:p}=m;if(typeof p=="string")for(const y of f)y(p)}})},sendText(o){if(!n||!n.ready)throw new Error("relay transport: cannot send before the E2EE handshake completes");n.send(o)},sendBinary(o){if(!n||!n.ready)throw new Error("relay transport: cannot send before the E2EE handshake completes");n.sendBinary(o)},close(o=1e3,i=""){n==null||n.close(),n=null,t==null||t.close(o,i),t=null}};return r}function Hc(e){const t=e.indexOf("#"),n=t===-1?e:e.slice(t+1),s=new URLSearchParams(n),r=s.get("offer");if(!r)return null;let o;try{o=Hs(r)}catch{return null}const i=s.get("relay");if(i){const l={endpoint:i,useTls:s.get("relayTls")==="1"};return{publicKeyB64:r,publicKey:o,relay:l}}const a=s.get("host")??void 0;return{publicKeyB64:r,publicKey:o,...a?{host:a}:{}}}const Uc=1;function tn(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`id-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}class Vc extends Error{constructor(t,n,s){super(t),this.requestId=n,this.code=s,this.name="RpcError"}}class Bn extends Error{constructor(t){super(`RPC ${t} timed out`),this.requestId=t,this.name="RpcTimeoutError"}}class Kc{constructor(t){O(this,"transport");O(this,"rpcTimeoutMs");O(this,"now");O(this,"_state","idle");O(this,"_serverId",null);O(this,"_features",{});O(this,"_serverCapabilities",{});O(this,"pending",new Map);O(this,"sessionHandlers",new Set);O(this,"terminalHandlers",new Set);O(this,"fileTransferHandlers",new Set);O(this,"stateHandlers",new Set);O(this,"helloResolve",null);O(this,"helloReject",null);this.options=t,this.transport=t.transport??Fs(),this.rpcTimeoutMs=t.rpcTimeoutMs??3e4,this.now=t.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(t){return!!this._features[t]}async connect(){this.setState("connecting"),await this.transport.connect(this.options.url);const t=new Promise((s,r)=>{this.helloResolve=s,this.helloReject=r});this.transport.sendText(JSON.stringify({type:"hello",clientId:this.options.clientId,clientType:this.options.clientType,protocolVersion:this.options.protocolVersion??Uc,appVersion:this.options.appVersion,capabilities:this.options.capabilities}));const n=await t;return this._serverId=n.serverId,this._features=n.features,this._serverCapabilities=n.capabilities,this.setState("open"),n}close(t=1e3,n=""){this.setState("closing"),this.transport.close(t,n)}request(t,n={},s){const r=n.requestId??tn();return new Promise((o,i)=>{const a=s??this.rpcTimeoutMs,l=a>0?setTimeout(()=>{this.pending.delete(r),i(new Bn(r))},a):null;this.pending.set(r,{resolve:u=>o(u),reject:i,timer:l}),this.sendSession({type:t,...n,requestId:r})})}sendSession(t){this.transport.sendText(JSON.stringify({type:"session",message:t}))}sendBinary(t){this.transport.sendBinary(t)}ping(t=1e4){const n=tn();return new Promise((s,r)=>{const o=t>0?setTimeout(()=>{this.pending.delete(n),r(new Bn(n))},t):null;this.pending.set(n,{resolve:()=>s(),reject:r,timer:o}),this.transport.sendText(JSON.stringify({type:"ping",requestId:n,clientSentAt:this.now()}))})}onSessionMessage(t){return this.sessionHandlers.add(t),()=>this.sessionHandlers.delete(t)}onTerminalFrame(t){return this.terminalHandlers.add(t),()=>this.terminalHandlers.delete(t)}onFileTransferFrame(t){return this.fileTransferHandlers.add(t),()=>this.fileTransferHandlers.delete(t)}onStateChange(t){return this.stateHandlers.add(t),()=>this.stateHandlers.delete(t)}setState(t){if(this._state!==t){this._state=t;for(const n of this.stateHandlers)n(t)}}handleClose(t,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(t){if(typeof t=="string"){this.handleTextFrame(t);return}if(t instanceof ArrayBuffer){this.handleBinaryFrame(new Uint8Array(t));return}typeof t.arrayBuffer=="function"&&t.arrayBuffer().then(n=>this.handleBinaryFrame(new Uint8Array(n)))}handleBinaryFrame(t){const n=t[0];if(n!==void 0&&Object.values(Fe).includes(n)){const o=Cc(t);if(!o)return;for(const i of this.fileTransferHandlers)i(o);return}const r=Ic(t);for(const o of this.terminalHandlers)o(r)}handleTextFrame(t){let n;try{n=JSON.parse(t)}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(t){const n=t.payload;(n==null?void 0:n.status)==="server_info"&&this.helloResolve&&(this.helloResolve(n),this.helloResolve=null,this.helloReject=null)}handleSession(t){if(!t||typeof t!="object")return;const n=t;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 Vc(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(t)}resolvePending(t,n){const s=this.pending.get(t);s&&(s.timer&&clearTimeout(s.timer),this.pending.delete(t),s.resolve(n))}}function Gc(e){const t=e;if(!t||t.type!=="provider_auth_flow_event"||typeof t.flowId!="string")return!1;const n=t.event;return typeof n=="object"&&n!==null&&typeof n.kind=="string"}class Ln extends Error{constructor(t,n){super(t),this.operation=n,this.name="ProviderAuthError"}}class Fn extends Error{constructor(t){super("prompt_cancelled"),this.promptId=t,this.name="PromptCancelledError"}}class Yc{constructor(t){O(this,"activeProviderAuthFlow",null);this.daemon=t}get connection(){return this.daemon}async createAgent(t){return await this.daemon.request("create_agent_request",{...t})}agent(t){return new Jc(this.daemon,t)}workspace(t){return new Zc(this.daemon,t)}get providers(){return new Qc(this.daemon)}listExtensionPacks(){return this.daemon.request("extension_packs_list_request",{})}setExtensionPacks(t,n){return this.daemon.request("extension_packs_set_request",{packs:t},n==null?void 0:n.timeoutMs)}syncExtensionPacks(t){return this.daemon.request("extension_packs_set_request",{},t==null?void 0:t.timeoutMs)}onAgentUpdate(t){return this.daemon.onSessionMessage(n=>{n.type==="agent_update"&&t(n)})}onWorkspaceUpdate(t){return this.daemon.onSessionMessage(n=>{n.type==="workspace_update"&&t(n)})}hasProviderAuthCapability(){return this.daemon.hasFeature("providerAuth")}async listProviderAuth(){const t=await this.daemon.request("provider_auth_list_request",{});if(!t.ok)throw new Ln(t.error??"failed to list provider auth state","list");return t.providers}async logoutProvider(t){const n=await this.daemon.request("provider_auth_logout_request",{provider:t});if(!n.ok)throw new Ln(n.error??"failed to log out","logout");return{stillConfigured:n.stillConfigured}}async loginProvider(t,n,s,r){var h;if(this.activeProviderAuthFlow)throw new Error("a provider-auth login is already in progress for this client");let o;const i=new Promise(m=>{o=m}),a={flowId:null,buffered:[],pendingPrompt:null,cancelRequested:((h=r==null?void 0:r.signal)==null?void 0:h.aborted)??!1,terminal:!1,settle:o,unsubscribe:null};this.activeProviderAuthFlow=a;const l=this.daemon.onSessionMessage(m=>{Gc(m)&&this.routeProviderAuthEvent(a,m,s)}),u=this.daemon.onStateChange(m=>{m==="closed"&&this.settleProviderAuthFlow(a,{ok:!1,error:"connection_lost"})});let f=null;if(r!=null&&r.signal){const m=r.signal;f=()=>{a.cancelRequested=!0,a.flowId&&!a.terminal&&this.daemon.request("provider_auth_cancel_request",{flowId:a.flowId}).catch(()=>{})},m.addEventListener("abort",f,{once:!0}),a.unsubscribe=()=>{l(),u(),m.removeEventListener("abort",f)}}else a.unsubscribe=()=>{l(),u()};try{const m=await this.daemon.request("provider_auth_login_request",{provider:t,authType:n});if(a.terminal)return i;if(!m.ok||!m.flowId)return this.settleProviderAuthFlow(a,{ok:!1,error:m.error}),i;a.flowId=m.flowId;const p=a.buffered;a.buffered=[];for(const y of p)y.flowId===a.flowId&&this.dispatchProviderAuthEvent(a,y.event,s);a.cancelRequested&&!a.terminal&&this.daemon.request("provider_auth_cancel_request",{flowId:a.flowId}).catch(()=>{})}catch{a.terminal||this.settleProviderAuthFlow(a,{ok:!1,error:"connection_lost"})}return i}routeProviderAuthEvent(t,n,s){if(!t.terminal){if(t.flowId===null){t.buffered.push(n);return}n.flowId===t.flowId&&this.dispatchProviderAuthEvent(t,n.event,s)}}dispatchProviderAuthEvent(t,n,s){var r;switch(n.kind){case"done":this.settleProviderAuthFlow(t,{ok:!!n.ok,error:typeof n.error=="string"?n.error:void 0});return;case"prompt_cancelled":{const o=n.promptId;t.pendingPrompt&&t.pendingPrompt.promptId===o&&(t.pendingPrompt.reject(new Fn(o)),t.pendingPrompt=null);return}case"prompt":this.handleProviderAuthPrompt(t,n,s);return;default:(r=s.onEvent)==null||r.call(s,n);return}}async handleProviderAuthPrompt(t,n,s){const r=new AbortController,o={promptId:n.promptId,promptKind:n.promptKind,message:n.message,placeholder:n.placeholder,options:n.options,signal:r.signal};let i;const a=new Promise((u,f)=>{i=f});a.catch(()=>{}),t.pendingPrompt={promptId:o.promptId,reject:u=>{r.abort(),i(u)}};const l=s.prompt(o);l.catch(()=>{});try{const u=await Promise.race([l,a]);if(t.terminal)return;t.pendingPrompt=null,await this.daemon.request("provider_auth_respond_request",{flowId:t.flowId,promptId:o.promptId,value:u})}catch(u){if(t.pendingPrompt=null,t.terminal||u instanceof Fn)return;t.flowId&&this.daemon.request("provider_auth_cancel_request",{flowId:t.flowId}).catch(()=>{})}}settleProviderAuthFlow(t,n){var s;t.terminal||(t.terminal=!0,t.pendingPrompt&&(t.pendingPrompt.reject(new Error("provider-auth: flow ended")),t.pendingPrompt=null),(s=t.unsubscribe)==null||s.call(t),this.activeProviderAuthFlow===t&&(this.activeProviderAuthFlow=null),t.settle(n))}}class Xc{constructor(t,n){this.daemon=t,this.agentId=n}fetch(t={}){return this.daemon.request("fetch_agent_timeline_request",{agentId:this.agentId,cursor:t.cursor,direction:t.direction,limit:t.limit})}subscribe(t){return this.daemon.onSessionMessage(n=>{const s=n;s.type==="agent_stream"&&s.agentId===this.agentId&&s.event&&t(s.event,{timestamp:s.timestamp,seq:s.seq})})}}class Jc{constructor(t,n){O(this,"timeline");this.daemon=t,this.agentId=n,this.timeline=new Xc(t,n)}send(t,n={}){return this.daemon.request("send_agent_prompt",{agentId:this.agentId,prompt:t,clientMessageId:n.clientMessageId,images:n.images})}run(t,n){return this.send(t,n)}interrupt(){return this.daemon.request("interrupt_agent",{agentId:this.agentId})}steer(t,n={}){return this.daemon.request("steer_agent_request",{agentId:this.agentId,message:t,clientMessageId:n.clientMessageId,images:n.images})}followUp(t,n={}){return this.daemon.request("follow_up_agent_request",{agentId:this.agentId,message:t,clientMessageId:n.clientMessageId,images:n.images})}update(t){return this.daemon.request("update_agent",{agentId:this.agentId,...t})}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(t){return this.daemon.onSessionMessage(n=>{const s=n;s.type==="agent_update"&&s.agentId===this.agentId&&t(s)})}sessionStats(){return this.daemon.request("agent_session_stats_request",{agentId:this.agentId})}compact(t){return this.daemon.request("agent_compact_request",{agentId:this.agentId,customInstructions:t})}newSession(){return this.daemon.request("agent_new_session_request",{agentId:this.agentId})}switchSession(t){return this.daemon.request("agent_switch_session_request",{agentId:this.agentId,sessionPath:t})}fork(t){return this.daemon.request("agent_fork_request",{agentId:this.agentId,entryId:t})}forkMessages(){return this.daemon.request("agent_fork_messages_request",{agentId:this.agentId})}clone(){return this.daemon.request("agent_clone_request",{agentId:this.agentId})}setSessionName(t){return this.daemon.request("agent_set_session_name_request",{agentId:this.agentId,name:t})}exportHtml(t){return this.daemon.request("agent_export_html_request",{agentId:this.agentId,outputPath:t})}setModel(t,n){return this.daemon.request("agent_set_model_request",{agentId:this.agentId,provider:t,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})}listCommands(){return this.daemon.request("agent_list_commands_request",{agentId:this.agentId})}}class Zc{constructor(t,n){this.daemon=t,this.workspaceId=n}onUpdate(t){return this.daemon.onSessionMessage(n=>{const s=n;s.type==="workspace_update"&&s.workspaceId===this.workspaceId&&t(s)})}}class Qc{constructor(t){this.daemon=t}listProviders(){return this.daemon.request("list_providers",{})}listModels(t){return this.daemon.request("list_provider_models",{provider:t})}listModes(t){return this.daemon.request("list_provider_modes",{provider:t})}resolveDefaultModel(t,n){return this.daemon.request("resolve_default_model",{provider:t,...n?{cwd:n}:{}})}refreshSnapshot(){return this.daemon.request("providers.snapshot.refresh.request",{})}}const Wn=32*1024,el="invalid_or_expired_token";function tl(e){const t=e.reduce((r,o)=>r+o.length,0),n=new Uint8Array(t);let s=0;for(const r of e)n.set(r,s),s+=r.length;return n}class nl{constructor(t){O(this,"pending",new Map);O(this,"streamCursor",1);O(this,"detach",null);this.daemon=t}start(){this.detach||(this.detach=this.daemon.onFileTransferFrame(t=>this.dispatch(t)))}stop(){var t;(t=this.detach)==null||t.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(t){try{return await this.attemptDownload(t)}catch(n){if(!(n instanceof Error)||n.message!==el)throw n;return await this.attemptDownload(t)}}async attemptDownload(t){const n=await this.daemon.request("file_download_token_request",{path:t});if(!n.ok||!n.token)throw new Error(n.error??"failed to issue download token");const s=Rc(this.pending,this.streamCursor);if(s===null)throw new Error("no free download stream");this.streamCursor=(s+1)%Be;const r=new Promise((i,a)=>{this.pending.set(s,{chunks:[],meta:{},resolve:i,reject:a})});let o;try{o=await this.daemon.request("file_download_request",{token:n.token,stream:s})}catch(i){throw this.pending.delete(s),i}if(!o.ok)throw this.pending.delete(s),new Error(o.error??"download request failed");return r}async upload(t,n){const s=tn(),r=await this.daemon.request("file_upload_request",{path:t,transferId:s});if(!r.ok||r.stream===void 0)throw new Error(r.error??"upload request failed");const o=r.stream;this.daemon.sendBinary(Bt({opcode:"Begin",stream:o,meta:{transferId:s}}));for(let i=0;i<n.length;i+=Wn){const a=n.subarray(i,i+Wn);this.daemon.sendBinary(Bt({opcode:"Chunk",stream:o,data:a}))}this.daemon.sendBinary(Bt({opcode:"End",stream:o,ok:!0}))}dispatch(t){const n=this.pending.get(t.stream);if(n)switch(t.opcode){case"Begin":n.meta.fileName=t.meta.fileName,n.meta.mimeType=t.meta.mimeType;return;case"Chunk":n.chunks.push(t.data);return;case"End":this.pending.delete(t.stream),t.ok?n.resolve({bytes:tl(n.chunks),...n.meta}):n.reject(new Error("download failed"));return;case"Error":this.pending.delete(t.stream),n.reject(new Error(t.message));return}}}class sl{constructor(t,n={}){O(this,"initialDelayMs");O(this,"maxDelayMs");O(this,"factor");O(this,"jitter");O(this,"maxAttempts");O(this,"setTimer");O(this,"clearTimer");O(this,"random");O(this,"attempt",0);O(this,"timer",null);O(this,"active",!1);O(this,"reconnecting",!1);O(this,"detachState",null);O(this,"reconnectedHandlers",new Set);O(this,"failedHandlers",new Set);this.daemon=t,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,r)=>setTimeout(s,r)),this.clearTimer=n.clearTimer??(s=>clearTimeout(s)),this.random=n.random??Math.random}delayForAttempt(t){const n=Math.min(this.maxDelayMs,this.initialDelayMs*this.factor**(t-1)),s=n*this.jitter*(this.random()*2-1);return Math.max(0,Math.round(n+s))}onReconnected(t){return this.reconnectedHandlers.add(t),()=>this.reconnectedHandlers.delete(t)}onReconnectFailed(t){return this.failedHandlers.add(t),()=>this.failedHandlers.delete(t)}start(){this.active||(this.active=!0,this.detachState=this.daemon.onStateChange(t=>{t==="closed"&&this.active&&this.scheduleReconnect(),t==="open"&&(this.attempt=0)}))}stop(){var t;this.active=!1,this.timer&&this.clearTimer(this.timer),this.timer=null,(t=this.detachState)==null||t.call(this),this.detachState=null}reconnectNow(){this.active&&(this.reconnecting||this.daemon.state==="closed"&&(this.timer&&(this.clearTimer(this.timer),this.timer=null),this.attempt=0,this.tryReconnect()))}get attemptCount(){return this.attempt}scheduleReconnect(){if(!this.active||this.timer||this.attempt>=this.maxAttempts)return;this.attempt+=1;const t=this.delayForAttempt(this.attempt);this.timer=this.setTimer(()=>{this.timer=null,!this.reconnecting&&this.tryReconnect()},t)}async tryReconnect(){if(!this.active||this.reconnecting)return;this.reconnecting=!0;const t=this.attempt;try{await this.daemon.connect();for(const n of this.reconnectedHandlers)n({attempt:t,serverId:this.daemon.serverId})}catch(n){for(const s of this.failedHandlers)s(n,t);this.scheduleReconnect()}finally{this.reconnecting=!1}}}function Hn(e){const t=e.trim();if(t==="")return t;const n=t.match(/^([a-z][a-z0-9+.-]*):\/\//i);if(!n)return`ws://${t.replace(/\/+$/,"")}`;const s=n[1].toLowerCase(),r=t.slice(n[0].length).replace(/\/+$/,"");switch(s){case"http":return`ws://${r}`;case"https":return`wss://${r}`;case"ws":case"wss":return`${s}://${r}`;default:return t}}function gn(e){const t=Hc(e);return t!=null&&t.relay?{mode:"relay",url:Fc(t.relay),daemonPublicKey:t.publicKey}:t!=null&&t.host?{mode:"direct",url:Hn(t.host)}:{mode:"direct",url:Hn(e)}}const rl=`
3
+ const pending = new Set();
4
+ self.onmessage = (e) => {
5
+ const msg = e.data;
6
+ if (msg.cancel) {
7
+ pending.delete(msg.id);
8
+ return;
9
+ }
10
+ pending.add(msg.id);
11
+ setTimeout(() => {
12
+ if (!pending.has(msg.id)) return; // cancelled before it fired
13
+ pending.delete(msg.id);
14
+ self.postMessage({ id: msg.id });
15
+ }, msg.ms);
16
+ };
17
+ `;function ol(){return{setTimer:(e,t)=>setTimeout(e,t),clearTimer:e=>clearTimeout(e)}}function il(){const e=new Blob([rl],{type:"application/javascript"}),t=URL.createObjectURL(e),n=new Worker(t);URL.revokeObjectURL(t);const s=new Map;let r=1;return n.addEventListener("message",o=>{const i=s.get(o.data.id);s.delete(o.data.id),i==null||i()}),{setTimer:(o,i)=>{const a=r++;return s.set(a,o),n.postMessage({id:a,ms:i}),a},clearTimer:o=>{const i=o;s.delete(i)&&n.postMessage({id:i,cancel:!0})}}}let Xe=null;function Un(){if(Xe)return Xe;try{Xe=il()}catch{Xe=ol()}return Xe}function al(){return{setTimer:(e,t)=>Un().setTimer(e,t),clearTimer:e=>Un().clearTimer(e)}}const cl=32,de=new Map;function ll(){for(;de.size>cl;){let e=null;for(const[t,n]of de)if(n.refs===0&&n.entry){URL.revokeObjectURL(n.entry.objectUrl),e=t;break}if(e===null)return;de.delete(e)}}function Gm(e,t){const n=de.get(e);if(n)return n.refs+=1,de.delete(e),de.set(e,n),n.entry?Promise.resolve(n.entry):n.pending;const s={refs:1,entry:null,pending:null};return de.set(e,s),ll(),s.pending=t(e).then(r=>{const o=new Blob([Uint8Array.from(r.bytes)],{type:r.mimeType||"application/octet-stream"}),i={objectUrl:URL.createObjectURL(o),mimeType:r.mimeType};return de.get(e)===s?(s.entry=i,s.pending=null):URL.revokeObjectURL(i.objectUrl),i}).catch(r=>{throw de.get(e)===s&&de.delete(e),r}),s.pending}function Ym(e){const t=de.get(e);t&&(t.refs=Math.max(0,t.refs-1))}function dl(){for(const e of de.values())e.entry&&URL.revokeObjectURL(e.entry.objectUrl);de.clear()}function ul(){return"web-"+Math.random().toString(36).slice(2,10)}const z=Ee()((e,t)=>({status:"idle",serverInfo:null,error:null,daemon:null,client:null,reconnection:null,async connect(n){t().disconnect();const s=gn(n.url);let r;s.mode==="relay"?r=Wc({daemonPublicKey:s.daemonPublicKey}):n.password&&(r=Fs(f=>new WebSocket(f,[`pi-studio.bearer.${n.password}`])));const o=new Kc({url:s.url,clientId:n.clientId??ul(),clientType:"browser",capabilities:{[zt.inline_image_markdown]:!0,[zt.file_link_markdown]:!0,[zt.mermaid_diagram_markdown]:!0},transport:r,rpcTimeoutMs:1800*1e3}),i=new Yc(o),{setTimer:a,clearTimer:l}=al(),u=new sl(o,{setTimer:a,clearTimer:l});o.onStateChange(f=>e({status:f})),u.onReconnected(()=>e({error:null})),u.onReconnectFailed(f=>{e({error:f instanceof Error?f.message:String(f)})}),e({daemon:o,client:i,reconnection:u,error:null,status:"connecting"});try{const f=await o.connect();e({serverInfo:f}),u.start()}catch(f){throw e({error:f instanceof Error?f.message:String(f)}),f}},disconnect(){const{daemon:n,reconnection:s}=t();s==null||s.stop(),n==null||n.close(),dl(),e({status:"idle",serverInfo:null,daemon:null,client:null,reconnection:null})}})),fl=100,pl=480,hl=220,ml=280;function gt(e){return Math.min(pl,Math.max(fl,e))}const P=Ee()(e=>({host:"ws://127.0.0.1:6767",password:"",cwd:"~",cwdPickerOpen:!1,settingsOpen:!1,sessionMenu:null,workspaceMenu:null,fileMenu:null,rightSidebarTab:"files",collapsedWorkspaces:new Set,leftSidebarCollapsed:!1,rightSidebarCollapsed:!1,leftSidebarWidth:hl,rightSidebarWidth:ml,setHost:t=>e({host:t}),setPassword:t=>e({password:t}),setCwd:t=>e({cwd:t}),openCwdPicker:()=>e({cwdPickerOpen:!0}),closeCwdPicker:()=>e({cwdPickerOpen:!1}),openSettings:()=>e({settingsOpen:!0}),closeSettings:()=>e({settingsOpen:!1}),openSessionMenu:(t,n,s)=>e({sessionMenu:{sessionId:t,x:n,y:s}}),closeSessionMenu:()=>e({sessionMenu:null}),openWorkspaceMenu:(t,n,s)=>e({workspaceMenu:{cwd:t,x:n,y:s}}),closeWorkspaceMenu:()=>e({workspaceMenu:null}),openFileMenu:(t,n,s,r,o)=>e({fileMenu:{path:t,isDirectory:n,x:s,y:r,background:o}}),closeFileMenu:()=>e({fileMenu:null}),setRightSidebarTab:t=>e({rightSidebarTab:t}),toggleWorkspaceCollapsed:t=>e(n=>{const s=new Set(n.collapsedWorkspaces);return s.has(t)?s.delete(t):s.add(t),{collapsedWorkspaces:s}}),setCollapsedWorkspaces:t=>e({collapsedWorkspaces:t}),toggleLeftSidebar:()=>e(t=>({leftSidebarCollapsed:!t.leftSidebarCollapsed})),toggleRightSidebar:()=>e(t=>({rightSidebarCollapsed:!t.rightSidebarCollapsed})),setLeftSidebarWidth:t=>e({leftSidebarWidth:gt(t)}),setRightSidebarWidth:t=>e({rightSidebarWidth:gt(t)}),resizeLeftSidebar:t=>e(n=>({leftSidebarWidth:gt(n.leftSidebarWidth+t)})),resizeRightSidebar:t=>e(n=>({rightSidebarWidth:gt(n.rightSidebarWidth+t)}))}));function gl(e){switch(e){case"connected":return{status:"finished"};case"error":return{status:"error"};case"disconnected":case"closing":return{status:"idle",showInactive:!0};case"connecting":return null}}const Vn=40;function Ks(e){return/^\[object [A-Za-z]+\]$/.test(e)}function _l(e){const t=(e.split(`
18
+ `)[0]??"").trim();return t===""||Ks(t)?"connection failed":/refus/i.test(t)?"connection refused":/time(?:d)?[\s-]*out|timeout/i.test(t)?"timed out":/\b401\b|\b403\b|unauthor|forbidden|auth/i.test(t)?"auth failed":t.length>Vn?`${t.slice(0,Vn-1)}…`:t}function Gs(e){if(e.trim()==="")return!1;try{const t=gn(e);return/^wss?:\/\//i.test(t.url)?new URL(t.url).hostname!=="":!1}catch{return!1}}function Kn(e){try{const{url:t}=gn(e);return t===""?null:t}catch{return null}}function yl(e){const{status:t,error:n,url:s}=e;if(t==="open"){const o=Kn(s);return{kind:"connected",statusLabel:"connected",hostLabel:o,showFields:!1,fieldsFrozen:!1,action:{label:"Disconnect",variant:"outline",disabled:!1},title:o?`${o} · connected`:"connected"}}if(t==="closing"){const o=Kn(s);return{kind:"closing",statusLabel:"disconnecting…",hostLabel:o,showFields:!1,fieldsFrozen:!1,action:{label:"Disconnect",variant:"outline",disabled:!0},title:o?`${o} · disconnecting…`:"disconnecting…"}}if(t==="connecting")return{kind:"connecting",statusLabel:"connecting…",hostLabel:null,showFields:!0,fieldsFrozen:!0,action:{label:"Connecting…",variant:"default",disabled:!0},title:"connecting…"};const r=Gs(s);if(n!==null&&n!==""){const o=_l(n);return{kind:"error",statusLabel:o,hostLabel:null,showFields:!0,fieldsFrozen:!1,action:{label:"Retry",variant:"default",disabled:!r},title:Ks(n.trim())?o:n}}return{kind:"disconnected",statusLabel:"disconnected",hostLabel:null,showFields:!0,fieldsFrozen:!1,action:{label:"Connect",variant:"default",disabled:!r},title:"disconnected"}}const wl="_bar_1o0iw_9",bl="_title_1o0iw_21",vl="_brand_1o0iw_27",Sl="_version_1o0iw_33",xl="_statusPill_1o0iw_41",kl="_statusText_1o0iw_60",Il="_statusHost_1o0iw_68",El="_statusSep_1o0iw_76",Tl="_statusLabel_1o0iw_79",jl="_statusDot_1o0iw_82",Cl="_statusSpinner_1o0iw_83",Rl="_statusPillError_1o0iw_87",Pl="_field_1o0iw_4",Al="_fieldUrl_1o0iw_111",Nl="_fieldPassword_1o0iw_115",Dl="_fieldInvalid_1o0iw_122",Ml="_action_1o0iw_139",ql="_panelToggles_1o0iw_147",$l="_panelToggle_1o0iw_147",G={bar:wl,title:bl,brand:vl,version:Sl,statusPill:xl,statusText:kl,statusHost:Il,statusSep:El,statusLabel:Tl,statusDot:jl,statusSpinner:Cl,statusPillError:Rl,field:Pl,fieldUrl:Al,fieldPassword:Nl,fieldInvalid:Dl,action:Ml,panelToggles:ql,panelToggle:$l},Ol=b.lazy(()=>we(()=>import("./SettingsDialog-EchhRvMJ.js").then(e=>e.S),__vite__mapDeps([0,1,2,3,4,5,6])).then(e=>({default:e.SettingsDialog}))),je=26,zl="var(--pi-font-size-2xs)",Bl=9,Gn="host:port, ws://…/http://…, or a pasted pairing link";function Ll(){var ce;const e=z(T=>T.status),t=z(T=>T.error),n=z(T=>T.connect),s=z(T=>T.disconnect),r=z(T=>T.serverInfo),o=P(T=>T.host),i=P(T=>T.setHost),a=P(T=>T.password),l=P(T=>T.setPassword),u=P(T=>T.leftSidebarCollapsed),f=P(T=>T.toggleLeftSidebar),h=P(T=>T.rightSidebarCollapsed),m=P(T=>T.toggleRightSidebar),p=P(T=>T.settingsOpen),y=P(T=>T.openSettings),_=P(T=>T.closeSettings),v=!!((ce=r==null?void 0:r.features)!=null&&ce.providerAuth),[I,E]=b.useState(!1),C=yl({status:e,error:t,url:o}),L=gl(C.kind),Y=b.useRef({host:o,password:a}),[Z,A]=b.useState(!1),X=Z&&o.trim()!==""&&!Gs(o);function ne(){C.action.disabled||(Y.current={host:o,password:a},n({url:o,password:a||void 0}))}function ie(){if(C.kind==="connected"||C.kind==="closing"){s();return}ne()}function Q(T,R){if(T.key==="Enter"){T.preventDefault(),ne();return}T.key==="Escape"&&(T.preventDefault(),R==="url"?(i(Y.current.host),A(!1)):l(Y.current.password),T.currentTarget.blur())}return c.jsxs("div",{className:G.bar,children:[c.jsxs("span",{className:G.title,children:[c.jsx("span",{className:G.brand,children:"Pi-Studio"}),c.jsxs("span",{className:G.version,children:["v","0.0.93"]})]}),c.jsxs("span",{className:F(G.statusPill,C.kind==="error"&&G.statusPillError),title:C.title,children:[L?c.jsx(At,{...L,className:G.statusDot}):c.jsx(Ns,{size:Bl,color:"var(--pi-color-statusWarning)",className:G.statusSpinner,"aria-label":"Connecting"}),c.jsxs("span",{className:G.statusText,children:[C.hostLabel&&c.jsx("span",{className:G.statusHost,children:C.hostLabel}),C.hostLabel&&c.jsx("span",{className:G.statusSep,"aria-hidden":!0,children:"·"}),c.jsx("span",{className:G.statusLabel,"aria-live":"polite",children:C.statusLabel})]})]}),C.showFields&&c.jsxs(c.Fragment,{children:[c.jsx(kt,{className:F(G.field,G.fieldUrl,X&&G.fieldInvalid),value:o,onChange:T=>i(T.target.value),onFocus:()=>A(!1),onBlur:()=>A(!0),onKeyDown:T=>Q(T,"url"),readOnly:C.fieldsFrozen,placeholder:"ws://127.0.0.1:6767",title:X?`Not a dialable daemon address — ${Gn}`:Gn,"aria-label":"Daemon address","aria-invalid":X||void 0,spellCheck:!1,autoComplete:"off"}),c.jsx(kt,{className:F(G.field,G.fieldPassword),type:"password",value:a,onChange:T=>l(T.target.value),onKeyDown:T=>Q(T,"password"),readOnly:C.fieldsFrozen,placeholder:"password",title:"Daemon password — ignored when the address is a pairing link","aria-label":"Daemon password",autoComplete:"off"})]}),c.jsx(le,{className:G.action,size:"xs",variant:C.action.variant,disabled:C.action.disabled,style:{minHeight:je,fontSize:zl},onClick:ie,children:C.action.label}),c.jsxs("div",{className:G.panelToggles,children:[c.jsx(le,{className:G.panelToggle,size:"xs",variant:"ghost",iconOnly:!0,style:{minHeight:je,width:je},"aria-label":"Toggle left panel",title:u?"Show sessions sidebar":"Hide sessions sidebar",onClick:()=>f(),children:c.jsx(re,{icon:u?Gr:Yr,size:"sm"})}),c.jsx(le,{className:G.panelToggle,size:"xs",variant:"ghost",iconOnly:!0,style:{minHeight:je,width:je},"aria-label":"Toggle right panel",title:h?"Show files/changes sidebar":"Hide files/changes sidebar",onClick:()=>m(),children:c.jsx(re,{icon:h?Xr:Jr,size:"sm"})}),v&&c.jsx(le,{className:G.panelToggle,size:"xs",variant:"ghost",iconOnly:!0,style:{minHeight:je,width:je},"aria-label":"Settings",title:"Settings",onClick:()=>{E(!0),y()},children:c.jsx(re,{icon:Zr,size:"sm"})})]}),I&&c.jsx(b.Suspense,{fallback:null,children:c.jsx(Ol,{open:p,onOpenChange:T=>T?y():_()})})]})}const _n={rows:[],streamingAssistantIndex:null,streamingReasoningIndex:null,toolIndexByCallId:{}};let Yn=0;function Te(){return Yn+=1,`row-${Yn}`}function Fl(e){switch(e.kind){case"shell":return e.command??"";case"read":case"write":return e.path??"";case"edit":return e.path??"";case"search":return e.query??"";case"fetch":return e.url??"";case"task":return e.description??"";default:return""}}function Wl(e,t){return e??`${t.kind}:${Fl(t)}`}function Ue(e,t){if(t===null)return;const n=e[t];n&&(n.kind!=="assistant"&&n.kind!=="reasoning"||n.streaming&&(e[t]={...n,streaming:!1}))}function Ys(e){if(e.streamingAssistantIndex===null&&e.streamingReasoningIndex===null)return e;const t=e.rows.slice();return Ue(t,e.streamingAssistantIndex),Ue(t,e.streamingReasoningIndex),{...e,rows:t,streamingAssistantIndex:null,streamingReasoningIndex:null}}function Hl(e){return Ys(e)}function Ul(e,t,n,s){var a;const r=e.rows.slice();Ue(r,e.streamingReasoningIndex);let o=e.streamingAssistantIndex;if(o===null||((a=r[o])==null?void 0:a.kind)!=="assistant"){if(!t)return{...e,rows:r,streamingAssistantIndex:null,streamingReasoningIndex:null};const l={kind:"assistant",id:Te(),text:"",streaming:!0,timestamp:s};r.push(l),o=r.length-1}const i=r[o];return!i||i.kind!=="assistant"?e:(r[o]={...i,text:i.text+t,streaming:!n},{...e,rows:r,streamingAssistantIndex:n?null:o,streamingReasoningIndex:null})}function Vl(e,t,n,s){var a;const r=e.rows.slice();Ue(r,e.streamingAssistantIndex);let o=e.streamingReasoningIndex;if(o===null||((a=r[o])==null?void 0:a.kind)!=="reasoning"){if(!t)return{...e,rows:r,streamingAssistantIndex:null,streamingReasoningIndex:null};const l={kind:"reasoning",id:Te(),text:"",streaming:!0,timestamp:s};r.push(l),o=r.length-1}const i=r[o];return!i||i.kind!=="reasoning"?e:(r[o]={...i,text:i.text+t,streaming:!n},{...e,rows:r,streamingReasoningIndex:n?null:o,streamingAssistantIndex:null})}function Kl(e,t){if(e.kind!==t.kind)return t;const n={...e};for(const[s,r]of Object.entries(t))r!==void 0&&r!==""&&(n[s]=r);return n}function Gl(e,t){var a;const n=Wl(t.callId,t.tool),s=t.status==="completed"||t.status==="error"?t.status:"running",r=e.toolIndexByCallId[n],o=e.rows.slice();if(Ue(o,e.streamingAssistantIndex),Ue(o,e.streamingReasoningIndex),r!==void 0&&((a=o[r])==null?void 0:a.kind)==="tool"){const l=o[r];if(l.kind!=="tool")return e;const u=t.status??l.statusText;return o[r]={...l,tool:Kl(l.tool,t.tool),status:s,...u!==void 0?{statusText:u}:{}},{...e,rows:o,streamingAssistantIndex:null,streamingReasoningIndex:null}}const i={kind:"tool",id:Te(),callId:n,tool:t.tool,status:s,...t.status!==void 0?{statusText:t.status}:{}};return o.push(i),{...e,rows:o,toolIndexByCallId:{...e.toolIndexByCallId,[n]:o.length-1},streamingAssistantIndex:null,streamingReasoningIndex:null}}function yn(e){return Ys(e)}function Yl(e,t){const n=yn(e),s={kind:"error",id:Te(),text:t||"turn failed"};return{...n,rows:[...n.rows,s]}}function Xl(e){const t=yn(e),n={kind:"system",id:Te(),text:"(canceled)"};return{...t,rows:[...t.rows,n]}}function Jl(e,t){const n={kind:"error",id:Te(),text:t||"error"};return{...e,rows:[...e.rows,n]}}function Zl(e,t,n,s,r){if(s!==void 0){const i=e.rows.findIndex(a=>a.kind==="user"&&a.pending&&a.clientMessageId===s);if(i!==-1){const a=e.rows.slice(),l=a[i];if((l==null?void 0:l.kind)==="user")return a[i]={...l,text:t,images:n,pending:!1,...r!==void 0?{timestamp:r}:{}},{...e,rows:a}}}const o={kind:"user",id:Te(),text:t,images:n,clientMessageId:s,timestamp:r};return{...e,rows:[...e.rows,o]}}function Ql(e,t){let n=!1;const s=e.rows.map(r=>r.kind!=="user"||!r.queued||t.includes(r.text)?r:(n=!0,{...r,queued:!1}));return n?{...e,rows:s}:e}function Xs(e,t,n){switch(t.kind){case"turn_started":return Hl(e);case"user_message":return Zl(e,t.text??"",t.images,t.messageId,n);case"assistant_message":return Ul(e,t.text??"",t.final??!1,n);case"reasoning":return Vl(e,t.text??"",t.final??!1,n);case"tool_call":return Gl(e,t);case"turn_completed":return yn(e);case"turn_failed":return Yl(e,t.error);case"turn_canceled":return Xl(e);case"error":return Jl(e,t.message);case"queue_update":return Ql(e,t.steering??[]);default:return e}}function ed(e){return e.reduce((t,{event:n,timestamp:s})=>Xs(t,n,s),_n)}function td(e,t,n,s,r,o){const i={kind:"user",id:Te(),text:n,images:s,clientMessageId:t,pending:!0,queued:r,timestamp:o};return{...e,rows:[...e.rows,i]}}function nd(e,t){const n=e.rows.findIndex(o=>o.kind==="user"&&o.pending&&o.clientMessageId===t);if(n===-1)return e;const s=e.rows.slice(),r=s[n];return(r==null?void 0:r.kind)!=="user"?e:(s[n]={...r,pending:!1,failed:!0},{...e,rows:s})}let Xn=0;function sd(){return Xn+=1,`s-${Date.now().toString(36)}-${Xn}`}const M=Ee()((e,t)=>({sessions:{},order:[],activeSessionId:null,createSession(n){const s=sd(),r={id:s,agentId:null,title:"New chat",status:"idle",cwd:n,timeline:_n,userMessageCount:0};return e(o=>({sessions:{...o.sessions,[s]:r},order:[s,...o.order],activeSessionId:s})),s},hydrate(n){e(s=>s.sessions[n.id]?s:{sessions:{...s.sessions,[n.id]:n},order:[...s.order,n.id]})},bindAgent(n,s){e(r=>{const o=r.sessions[n];return o?{sessions:{...r.sessions,[n]:{...o,agentId:s}}}:r})},setStatus(n,s){e(r=>{const o=r.sessions[n];return o?{sessions:{...r.sessions,[n]:{...o,status:s}}}:r})},setStatusByAgentId(n,s){const r=t().findByAgentId(n);r&&t().setStatus(r.id,s)},setModel(n,s,r){e(o=>{const i=o.sessions[n];return i?{sessions:{...o.sessions,[n]:{...i,model:s,modelProvider:r}}}:o})},setModelByAgentId(n,s,r){const o=t().findByAgentId(n);o&&t().setModel(o.id,s,r)},setTitle(n,s){e(r=>{const o=r.sessions[n];return o?{sessions:{...r.sessions,[n]:{...o,title:s}}}:r})},setCwd(n,s){e(r=>{const o=r.sessions[n];return o?{sessions:{...r.sessions,[n]:{...o,cwd:s}}}:r})},applyStreamEvent(n,s,r){e(o=>{const i=o.sessions[n];if(!i)return o;const a=Xs(i.timeline,s,r);let l=i.title;if(s.kind==="turn_completed"&&l==="New chat"){const u=a.rows.slice().reverse().find(f=>f.kind==="assistant");u&&u.kind==="assistant"&&u.text&&(l=u.text.slice(0,40)+(u.text.length>40?"…":""))}return{sessions:{...o.sessions,[n]:{...i,timeline:a,title:l}}}})},addOptimisticUserMessage(n,s,r,o,i){e(a=>{const l=a.sessions[n];if(!l)return a;const u=td(l.timeline,s,r,o,i,new Date().toISOString());return{sessions:{...a.sessions,[n]:{...l,timeline:u,userMessageCount:l.userMessageCount+1}}}})},markUserMessageFailed(n,s){e(r=>{const o=r.sessions[n];if(!o)return r;const i=nd(o.timeline,s);return{sessions:{...r.sessions,[n]:{...o,timeline:i}}}})},activate(n){e({activeSessionId:n})},remove(n){e(s=>{const{[n]:r,...o}=s.sessions,i=s.order.filter(l=>l!==n),a=s.activeSessionId===n?i[0]??null:s.activeSessionId;return{sessions:o,order:i,activeSessionId:a}})},findByAgentId(n){return Object.values(t().sessions).find(s=>s.agentId===n)}})),Jn=new WeakMap;function rd(e,t="pi"){const n=Jn.get(e);if(n)return n;const s=e.providers.resolveDefaultModel(t).then(r=>({model:r.model,modelProvider:r.modelProvider})).catch(()=>({}));return Jn.set(e,s),s}const bt=new Map;function od(e,t){const n=M.getState().sessions[t];if(!n)return Promise.reject(new Error(`unknown session: ${t}`));if(n.agentId)return Promise.resolve(n.agentId);const s=bt.get(t);if(s)return s;const r=(async()=>{if(!n.model){const l=await rd(e),u=M.getState().sessions[t];l.model&&u&&!u.model&&M.getState().setModel(t,l.model,l.modelProvider)}const o=M.getState().sessions[t];if(!o)throw new Error(`unknown session: ${t}`);const i={provider:"pi",cwd:o.cwd||"~"};o.model&&(i.model=o.model),o.modelProvider&&(i.modelProvider=o.modelProvider);const a=await e.createAgent({config:i,labels:{}});return M.getState().bindAgent(t,a.agentId),a.agentId})();return bt.set(t,r),r.finally(()=>bt.delete(t)),r}async function id(e,t){var r;const n=M.getState().sessions[t];if(!n||n.userMessageCount>0||n.timeline.rows.length>0)return!1;await((r=bt.get(t))==null?void 0:r.catch(()=>{}));const s=M.getState().sessions[t];return s?(s.agentId&&e&&await e.agent(s.agentId).delete().catch(()=>{}),M.getState().remove(t),!0):!1}const ad=4;function Js(e){return e==="left"||e==="right"?"row":"column"}function ue(e){return e.kind==="leaf"?[e.id]:e.children.flatMap(ue)}function wn(e,t){return e.kind==="leaf"?e.id===t:e.children.some(n=>wn(n,t))}function Zs(e,t,n=1){if(e.kind==="leaf")return e.id===t?n:null;for(const s of e.children){const r=Zs(s,t,n+1);if(r!==null)return r}return null}function Qs(e,t){if(e.kind==="leaf")return null;if(bn(e,t)!==-1)return e;for(const n of e.children){const s=Qs(n,t);if(s)return s}return null}function bn(e,t){return e.children.findIndex(n=>n.kind==="leaf"&&n.id===t)}function ot(e,t,n){const s=Zs(e,t);if(s===null)return!1;const r=Qs(e,t);return r&&r.direction===Js(n)?!0:s+1<=ad}function Zn(e,t,n,s){if(!ot(e,t,n)||wn(e,s))return e;const r=Js(n),o=n==="left"||n==="top",i={kind:"leaf",id:s},a=u=>({kind:"split",direction:r,children:o?[i,u]:[u,i],sizes:[.5,.5]}),l=u=>{if(u.kind==="leaf")return u.id===t?a(u):u;const f=bn(u,t);if(f!==-1&&u.direction===r){const h=u.sizes[f]/2,m=o?f:f+1,p=u.children.slice(),y=u.sizes.slice();return y[f]=h,p.splice(m,0,i),y.splice(m,0,h),{kind:"split",direction:u.direction,children:p,sizes:y}}return{kind:"split",direction:u.direction,children:u.children.map(l),sizes:u.sizes.slice()}};return l(e)}function er(e,t){if(!wn(e,t)||e.kind==="leaf")return e;const n=s=>{if(s.kind==="leaf")return s;const r=bn(s,t);if(r===-1)return{kind:"split",direction:s.direction,children:s.children.map(n),sizes:s.sizes.slice()};const o=s.sizes.filter((l,u)=>u!==r),i=o.reduce((l,u)=>l+u,0),a=i+s.sizes[r];return{kind:"split",direction:s.direction,children:s.children.filter((l,u)=>u!==r),sizes:o.map(l=>l/i*a)}};return tr(n(e))}function tr(e){if(e.kind==="leaf")return e;const t=e.children.map(tr);if(t.length===1)return t[0];const n=[],s=[];return t.forEach((r,o)=>{const i=e.sizes[o];r.kind==="split"&&r.direction===e.direction?r.children.forEach((a,l)=>{n.push(a),s.push(i*r.sizes[l])}):(n.push(r),s.push(i))}),n.length===1?n[0]:{kind:"split",direction:e.direction,children:n,sizes:s}}const Qn=.1;function cd(e){const t=new Map,n=(s,r)=>{if(s.kind==="leaf"){t.set(s.id,r);return}nr(s,r).forEach((o,i)=>n(s.children[i],o))};return n(e,{x:0,y:0,width:1,height:1}),t}function nr(e,t){const n=[];let s=0;for(const r of e.sizes)n.push(e.direction==="row"?{x:t.x+s*t.width,y:t.y,width:r*t.width,height:t.height}:{x:t.x,y:t.y+s*t.height,width:t.width,height:r*t.height}),s+=r;return n}function ld(e){const t=[],n=(s,r,o)=>{if(s.kind==="leaf")return;const i=nr(s,r);for(let a=0;a<s.children.length-1;a+=1){const l=i[a];t.push({splitPath:o.slice(),boundaryIndex:a,direction:s.direction,rect:s.direction==="row"?{x:l.x+l.width,y:r.y,width:0,height:r.height}:{x:r.x,y:l.y+l.height,width:r.width,height:0},splitRect:r})}i.forEach((a,l)=>n(s.children[l],a,[...o,l]))};return n(e,{x:0,y:0,width:1,height:1},[]),t}function dd(e,t){let n=e;for(const s of t){if(!n||n.kind!=="split")return null;n=n.children[s]}return n??null}function ud(e,t,n,s){const r=dd(e,t);if(!r||r.kind!=="split"||n<0||n>r.children.length-2||!Number.isFinite(s)||s===0)return e;const o=r.sizes[n],i=r.sizes[n+1],a=i-Math.min(i,Qn),l=o-Math.min(o,Qn),u=Math.max(-l,Math.min(a,s));if(u===0)return e;const f=m=>{const p=m.sizes.slice();return p[n]=o+u,p[n+1]=i-u,{kind:"split",direction:m.direction,children:m.children,sizes:p}},h=(m,p)=>{if(m.kind!=="split")return m;if(p===t.length)return f(m);const y=t[p],_=m.children.slice();return _[y]=h(m.children[y],p+1),{kind:"split",direction:m.direction,children:_,sizes:m.sizes.slice()}};return h(e,0)}function sr(e,t){const n=ue(e).filter(s=>!t.has(s));return n.length===0?e:n.reduce((s,r)=>er(s,r),e)}const rr=1;function fd(e){return or(e,new Set)}function or(e,t){if(typeof e!="object"||e===null)return null;const n=e;if(n.kind==="leaf"){const{id:o}=n;return typeof o!="string"||o.trim()===""||t.has(o)?null:(t.add(o),{kind:"leaf",id:o})}if(n.kind!=="split"||n.direction!=="row"&&n.direction!=="column"||!Array.isArray(n.children)||!Array.isArray(n.sizes)||n.children.length<2||n.sizes.length!==n.children.length)return null;let s=0;for(const o of n.sizes){if(typeof o!="number"||!Number.isFinite(o)||o<=0)return null;s+=o}const r=[];for(const o of n.children){const i=or(o,t);if(!i)return null;r.push(i)}return{kind:"split",direction:n.direction,children:r,sizes:n.sizes.map(o=>o/s)}}function pd(){if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function"){const e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;const t=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}return`id-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}const hd=["sessions","terminals"];function nn(){return`pane-${pd()}`}function es(){const e=nn();return{tree:{kind:"leaf",id:e},placement:{},activeByPane:{},focusedPaneId:e,pendingPlacement:{},pendingActive:{},userActedPanes:new Set}}function ir(e,t,n){return(n??Object.keys(e.placement)).filter(r=>e.placement[r]===t)}function ar(e,t,n,s){const r=ir(e,t,s),o=r.indexOf(n),i=r.filter(a=>a!==n);if(i.length!==0)return i[Math.min(Math.max(o,0),i.length-1)]}function md(e,t){return e.pendingActive[t]!==void 0?!0:Object.values(e.pendingPlacement).includes(t)}function vn(e,t){if(md(e,t))return e;const n=er(e.tree,t);if(n===e.tree)return e;const s={...e.activeByPane};delete s[t];const r=ue(n);return{...e,tree:n,activeByPane:s,focusedPaneId:r.includes(e.focusedPaneId)?e.focusedPaneId:r[0]}}function _t(e,t,n,s){const r=e.placement[t],o={...e.placement,[t]:n},i={...e.activeByPane};if(s.activate&&(i[n]=t),r!==void 0&&r!==n&&i[r]===t){const u=ar(e,r,t,s.order);u===void 0?delete i[r]:i[r]=u}const a={...e,placement:o,activeByPane:i,focusedPaneId:s.focus?n:e.focusedPaneId};return r!==void 0&&r!==n&&!Object.values(o).includes(r)?vn(a,r):a}function qe(e,t){return e.userActedPanes.has(t)?e:{...e,userActedPanes:new Set(e.userActedPanes).add(t)}}function gd(e){let t={...e,pendingPlacement:{},pendingActive:{}};const n=new Set(Object.values(t.placement));for(const o of ue(t.tree))n.has(o)||(t=vn(t,o));const s={...t.activeByPane};let r=!1;for(const o of ue(t.tree)){if(s[o]!==void 0)continue;const i=Object.keys(t.placement).find(a=>t.placement[a]===o);i!==void 0&&(s[o]=i,r=!0)}return r?{...t,activeByPane:s}:t}function _d(e,t){if(e===void 0)return!1;const n=e.placement[t];return n!==void 0&&e.activeByPane[n]===t}const q=Ee()((e,t)=>{const n=(s,r)=>{e(o=>{const i=o.layouts[s]??es(),a=r(i)??i;return a===o.layouts[s]?o:{layouts:{...o.layouts,[s]:a}}})};return{layouts:{},hydrationSources:{sessions:!1,terminals:!1},restoring:!1,pendingActiveWorkspace:null,ensureWorkspace(s){e(r=>r.layouts[s]?r:{layouts:{...r.layouts,[s]:es()}})},assignTab(s,r,o,i,a){n(s,l=>{const u=ue(l.tree),f=o!==void 0&&u.includes(o)?o:u.includes(l.focusedPaneId)?l.focusedPaneId:u[0],h=i!==!0,m=_t(l,r,f,{activate:h,focus:h,order:a});return h?qe(m,f):m})},moveTab(s,r,o,i){n(s,a=>{if(a.placement[r]===void 0||a.placement[r]===o||!ue(a.tree).includes(o))return null;const l=_t(a,r,o,{activate:!0,focus:!0,order:i});return qe(l,o)})},splitWithTab(s,r,o,i,a){n(s,l=>{if(!ue(l.tree).includes(o)||!ot(l.tree,o,i))return null;const u=ir(l,o,a);if(u.length===1&&u[0]===r)return null;const f=nn(),h=Zn(l.tree,o,i,f);if(h===l.tree)return null;const m=_t({...l,tree:h},r,f,{activate:!0,focus:!0,order:a});return qe(m,f)})},splitEmpty(s,r,o){let i=null;return n(s,a=>{if(!ue(a.tree).includes(r)||!ot(a.tree,r,o))return null;const l=nn(),u=Zn(a.tree,r,o,l);return u===a.tree?null:(i=l,{...a,tree:u,focusedPaneId:l})}),i},removeTab(s,r,o){n(s,i=>{const a=i.placement[r];if(a===void 0)return null;const l={...i.placement};delete l[r];const u={...i.activeByPane};if(u[a]===r){const h=ar(i,a,r,o);h===void 0?delete u[a]:u[a]=h}const f={...i,placement:l,activeByPane:u};return Object.values(l).includes(a)?f:vn(f,a)})},setActiveTab(s,r,o){n(s,i=>i.placement[o]!==r?null:i.activeByPane[r]===o?qe(i,r):qe({...i,activeByPane:{...i.activeByPane,[r]:o}},r))},focusPane(s,r){n(s,o=>o.focusedPaneId===r||!ue(o.tree).includes(r)?null:{...o,focusedPaneId:r})},resizeDivider(s,r,o,i){n(s,a=>{const l=ud(a.tree,r,o,i);return l===a.tree?null:{...a,tree:l}})},installPersistedLayouts(s,r=null){e(o=>{const i={...o.layouts};for(const[a,l]of s){const u=ue(l.tree);i[a]={tree:l.tree,placement:{},activeByPane:{},focusedPaneId:l.activePaneId!==null&&u.includes(l.activePaneId)?l.activePaneId:u[0],pendingPlacement:{...l.placement},pendingActive:{...l.activeByPane},userActedPanes:new Set}}return{layouts:i,hydrationSources:{sessions:!1,terminals:!1},restoring:!0,pendingActiveWorkspace:r!==null&&i[r]!==void 0?r:null}})},claimPaneFor(s,r,o,i){n(s,a=>{const l=ue(a.tree);let u,f=!1;if(i!==void 0&&l.includes(i))u=i;else if(o!==null){const y=a.pendingPlacement[o];y!==void 0&&l.includes(y)&&(u=y,f=!0)}u??(u=l.includes(a.focusedPaneId)?a.focusedPaneId:l[0]);let h=a;if(f&&o!==null){const y={...a.pendingPlacement};delete y[o],h={...a,pendingPlacement:y}}let m=!0;if(f){const y=h.pendingActive[u];h.userActedPanes.has(u)?m=!1:y!==void 0&&y!==o&&(m=h.activeByPane[u]===void 0)}else t().restoring&&(m=h.activeByPane[u]===void 0);const p=_t(h,r,u,{activate:m,focus:!f&&m});return f?p:qe(p,u)})},markHydrationSource(s){e(r=>{if(r.hydrationSources[s])return r;const o={...r.hydrationSources,[s]:!0};if(!hd.every(a=>o[a]))return{hydrationSources:o};const i={};for(const[a,l]of Object.entries(r.layouts))i[a]=gd(l);return{hydrationSources:o,layouts:i,restoring:!1,pendingActiveWorkspace:null}})},paneOfTab(s,r){var o;return((o=t().layouts[s])==null?void 0:o.placement[r])??null},activeTabOf(s){const r=t().layouts[s];return r?r.activeByPane[r.focusedPaneId]??null:null}}});function yd(e,t){return e.filter(n=>n.workspaceCwd===t)}function wd(e,t){return yd(e,t).map(n=>n.id)}function nt(e){const t=e===null?null:q.getState().activeTabOf(e);if(j.setState({activeTabId:t,activeWorkspaceCwd:e}),t!==null)return j.getState().tabs.find(n=>n.id===t)}function st(e){(e==null?void 0:e.kind)==="chat"&&M.getState().activate(e.data.sessionId)}const j=Ee()((e,t)=>({tabs:[],activeTabId:null,activeWorkspaceCwd:null,open(n,s){const r=t().tabs.find(i=>i.id===n.id);if(r){t().activate(r.id);return}e(i=>({tabs:[...i.tabs,n]}));const o=q.getState();o.ensureWorkspace(n.workspaceCwd),o.claimPaneFor(n.workspaceCwd,n.id,It(n),s),st(nt(n.workspaceCwd))},close(n){const s=t().tabs.find(a=>a.id===n);if(!s)return;const r=wd(t().tabs,s.workspaceCwd),o=t().activeTabId;e(a=>({tabs:a.tabs.filter(l=>l.id!==n)})),q.getState().removeTab(s.workspaceCwd,n,r);const i=nt(t().activeWorkspaceCwd);t().activeTabId!==o&&st(i)},activate(n){const s=t().tabs.find(i=>i.id===n);if(!s)return;const r=q.getState();r.ensureWorkspace(s.workspaceCwd);const o=r.paneOfTab(s.workspaceCwd,n);o===null?r.claimPaneFor(s.workspaceCwd,n,It(s)):(r.focusPane(s.workspaceCwd,o),r.setActiveTab(s.workspaceCwd,o,n)),st(nt(s.workspaceCwd))},switchWorkspace(n){q.getState().ensureWorkspace(n),st(nt(n))},reorder(n,s){e(r=>{const o=r.tabs.findIndex(u=>u.id===n),i=r.tabs.findIndex(u=>u.id===s);if(o===-1||i===-1||o===i)return r;const a=r.tabs.slice(),[l]=a.splice(o,1);return l?(a.splice(i,0,l),{tabs:a}):r})},updateLabel(n,s){e(r=>({tabs:r.tabs.map(o=>o.id===n?{...o,label:s}:o)}))},updateData(n,s){e(r=>({tabs:r.tabs.map(o=>o.id===n?{...o,data:{...o.data,...s}}:o)}))},closeByPathPrefix(n){const s=t().tabs.filter(r=>{if(r.kind!=="file"&&r.kind!=="diff"&&r.kind!=="molecule")return!1;const o=r.data.path;return o===n||((o==null?void 0:o.startsWith(`${n}/`))??!1)});for(const r of s)t().close(r.id)}}));function It(e){var t;switch(e.kind){case"chat":{const{sessionId:n}=e.data,s=(t=M.getState().sessions[n])==null?void 0:t.agentId;return s?`agent:${s}`:null}case"file":return`file:${e.data.path}`;case"diff":{const{path:n,staged:s}=e.data;return`diff:${s?"staged":"worktree"}:${n}`}case"terminal":{const{slot:n}=e.data;return n===null?null:`terminal:${n}`}case"molecule":{const{path:n}=e.data;return n===null?null:`molecule:${n}`}}}function Xm(e){const t=j(n=>{var s;return((s=n.tabs.find(r=>r.id===e))==null?void 0:s.workspaceCwd)===n.activeWorkspaceCwd?n.activeWorkspaceCwd:null});return q(n=>t===null?!1:_d(n.layouts[t],e))}const te={chat:e=>`chat-${e}`,file:e=>`file-${e}`,diff:(e,t)=>`diff-${e}${t?"-staged":""}`,terminal:e=>`term-${e}`,molecule:e=>`mol-${e}`};let Lt=0;function cr(e,t){Lt+=1,j.getState().open({id:te.terminal(`new-${Lt}`),kind:"terminal",label:`Terminal ${Lt}`,closable:!0,data:{slot:null,cwd:e},workspaceCwd:e},t)}let Ft=0;function bd(e,t){Ft+=1,j.getState().open({id:te.molecule(`new-${Ft}`),kind:"molecule",label:`Molecule ${Ft}`,closable:!0,data:{path:null},workspaceCwd:e},t)}function ct(e,t){const n=M.getState().createSession(e);j.getState().open({id:te.chat(n),kind:"chat",label:"New chat",closable:!0,data:{sessionId:n},workspaceCwd:e},t);const s=z.getState().client;s&&od(s,n).catch(()=>{})}function sn(e){const t=j.getState().tabs.find(s=>s.id===e);if(j.getState().close(e),(t==null?void 0:t.kind)!=="chat")return;const{sessionId:n}=t.data;id(z.getState().client,n)}q.subscribe(()=>{const{activeWorkspaceCwd:e,activeTabId:t}=j.getState();e!==null&&q.getState().activeTabOf(e)!==t&&st(nt(e))});const vd="_panel_1de7t_3",Sd={panel:vd};function lr({className:e,...t}){return c.jsx("div",{className:F(Sd.panel,e),...t})}const xd="_emptyState_kp50e_3",kd={emptyState:xd};function Ae({className:e,...t}){return c.jsx("div",{className:F(kd.emptyState,e),...t})}const ae=Ee()(e=>({rootPath:"",expanded:new Set,expandedByRoot:new Map,draft:null,renaming:null,selected:null,setRoot:t=>e(n=>{const s=new Map(n.expandedByRoot);n.rootPath&&s.set(n.rootPath,n.expanded);const r=s.get(t);return{rootPath:t,expanded:r?new Set(r):new Set([t]),expandedByRoot:s,draft:null,selected:null,renaming:null}}),toggle:t=>e(n=>{const s=new Set(n.expanded);s.has(t)?s.delete(t):s.add(t);const r=new Map(n.expandedByRoot);return r.set(n.rootPath,s),{expanded:s,expandedByRoot:r}}),startDraft:(t,n)=>e(s=>{const r=new Set(s.expanded);r.add(t);const o=new Map(s.expandedByRoot);return s.rootPath&&o.set(s.rootPath,r),{draft:{parentPath:t,kind:n},expanded:r,expandedByRoot:o,renaming:null}}),cancelDraft:()=>e({draft:null}),startRename:t=>e({renaming:t,draft:null}),cancelRename:()=>e({renaming:null}),setSelected:t=>e({selected:t}),repathAfterMove:(t,n,s)=>e(r=>{const o=u=>u===t?n:u.startsWith(`${t}/`)?n+u.slice(t.length):u,i=new Set([...r.expanded].map(o));i.add(s);const a=new Map(r.expandedByRoot);r.rootPath&&a.set(r.rootPath,i);const l=r.selected?{path:o(r.selected.path),isDirectory:r.selected.isDirectory}:null;return{expanded:i,expandedByRoot:a,selected:l,renaming:null}})}));let Le=null;const rn=new Set;function Id(e){return rn.add(e),()=>rn.delete(e)}async function Dt(e){var t;if(Le)return Le;try{const n=await e.connection.request("file_explorer_request",{path:"/home"}),r=(((t=n.result)==null?void 0:t.entries)??n.entries??[]).find(o=>o.kind==="directory"||o.type==="directory");Le="/home/"+((r==null?void 0:r.name)||"user")}catch{return"/tmp"}for(const n of rn)n(Le);return Le}function Ed(){return Le}async function Td(e,t){return t==="~"||t.startsWith("~/")?await Dt(e)+t.slice(1):t}function lt(){const e=z(r=>r.client),t=z(r=>r.status),[n,s]=b.useState(Ed());return b.useEffect(()=>Id(s),[]),b.useEffect(()=>{!e||t!=="open"||n||Dt(e)},[e,t,n]),n}const jd="_iconBtn_1unr3_3",Cd="_xs_1unr3_32",Rd="_sm_1unr3_36",ts={iconBtn:jd,xs:Cd,sm:Rd};function Se({size:e="xs",hoverBase:t,className:n,style:s,type:r="button",...o}){return c.jsx("button",{type:r,className:F(ts.iconBtn,ts[e],n),style:t?{"--icon-btn-hover-base":t,...s}:s,...o})}const Pd={initializing:"queued",idle:"idle",running:"running",error:"error",closed:"finished"};function We(e){return Pd[e]??"idle"}const ns=120;function Ad(e){return e.status==="error"?"failed":e.status==="running"?"running":e.userMessageCount===0&&e.timeline.rows.length===0?"empty":"idle"}function Nd(e){const{rows:t}=e.timeline;for(let n=t.length-1;n>=0;n--){const s=t[n];if(s&&s.kind==="error"){const r=(s.text.split(`
19
+ `,1)[0]??"").trim();return r.length>ns?r.slice(0,ns):r}}return null}function Dd(e){const t=Ad(e);switch(t){case"failed":return{state:t,meta:"turn failed",reason:Nd(e),dot:{status:We("error")},titleItalic:!1};case"running":return{state:t,meta:"running",reason:null,dot:{status:We("running")},titleItalic:!1};case"empty":return{state:t,meta:"no messages",reason:null,dot:{status:We("idle"),showInactive:!0},titleItalic:!0};case"idle":return{state:t,meta:"idle",reason:null,dot:{status:We("idle"),showInactive:!0},titleItalic:!1}}}function Md(e){return e.some(n=>n.status==="error")?{status:We("error")}:null}const qd="_header_962zs_1",$d="_list_962zs_15",Od="_newSessionRow_962zs_20",zd="_footer_962zs_45",Bd="_item_962zs_70",Ld="_itemFailed_962zs_85",Fd="_active_962zs_83",Wd="_activeBar_962zs_88",Hd="_title_962zs_89",Ud="_titleLabel_962zs_89",Vd="_titleItalic_962zs_120",Kd="_meta_962zs_123",Gd="_metaDot_962zs_131",Yd="_metaLabel_962zs_136",Xd="_metaFailed_962zs_141",Jd="_metaEmpty_962zs_144",Zd="_menuBtn_962zs_149",Qd="_workspaceHeader_962zs_162",eu="_workspaceChevron_962zs_184",tu="_chevronGlyphExpanded_962zs_195",nu="_workspaceLabel_962zs_201",su="_workspaceCount_962zs_207",ru="_workspaceMenuBtn_962zs_215",ou="_workspaceSessions_962zs_227",V={header:qd,list:$d,newSessionRow:Od,footer:zd,item:Bd,itemFailed:Ld,active:Fd,activeBar:Wd,title:Hd,titleLabel:Ud,titleItalic:Vd,meta:Kd,metaDot:Gd,metaLabel:Yd,metaFailed:Xd,metaEmpty:Jd,menuBtn:Zd,workspaceHeader:Qd,workspaceChevron:eu,chevronGlyphExpanded:tu,workspaceLabel:nu,workspaceCount:su,workspaceMenuBtn:ru,workspaceSessions:ou};function iu({session:e,active:t,draggable:n,onSelect:s,onOpenMenu:r,onDragStartRow:o}){const i=Dd(e);return c.jsxs("div",{className:F(V.item,t&&V.active,!t&&i.state==="failed"&&V.itemFailed),draggable:n,onDragStart:o,onClick:s,onContextMenu:a=>{a.preventDefault(),r(a.clientX,a.clientY)},children:[t&&c.jsx("span",{className:V.activeBar,"aria-hidden":!0}),c.jsxs("div",{className:V.title,children:[c.jsx("span",{className:F(V.titleLabel,i.titleItalic&&V.titleItalic),children:e.title}),c.jsx(Se,{className:V.menuBtn,hoverBase:"var(--pi-color-surfaceSidebar)",title:"Actions",onClick:a=>{a.stopPropagation();const l=a.currentTarget.getBoundingClientRect();r(l.left,l.bottom)},children:c.jsx(re,{icon:dn,size:"sm"})})]}),c.jsxs("div",{className:F(V.meta,i.state==="empty"&&V.metaEmpty),children:[i.dot&&c.jsx(At,{...i.dot,className:V.metaDot}),c.jsxs("span",{className:V.metaLabel,children:[c.jsx("span",{className:i.state==="failed"?V.metaFailed:void 0,children:i.meta}),i.reason&&c.jsxs(c.Fragment,{children:[" · ",i.reason]})]})]})]})}const au="_trigger_cd29a_3",cu="_content_cd29a_15",lu="_item_cd29a_25",du="_danger_cd29a_44",uu="_sep_cd29a_48",it={trigger:au,content:cu,item:lu,danger:du,sep:uu},Sn=b.forwardRef(function({x:t,y:n},s){return c.jsx("button",{ref:s,type:"button",className:it.trigger,style:{left:t,top:n},"aria-hidden":!0,tabIndex:-1})});function Mt({className:e,minWidth:t,style:n,sideOffset:s=2,...r}){const o=t===void 0?n:{minWidth:t,...n};return c.jsx(go,{children:c.jsx(_o,{className:F(it.content,e),align:"start",sideOffset:s,style:o,...r})})}function K({className:e,danger:t,...n}){return c.jsx(yo,{className:F(it.item,t&&it.danger,e),...n})}function Pe(e){return c.jsx(wo,{className:it.sep,...e})}function fu(){const e=P(y=>y.sessionMenu),t=P(y=>y.closeSessionMenu),n=z(y=>y.client),s=b.useRef(null),[r,o]=b.useState(!1);b.useEffect(()=>{o(e!==null)},[e]);const i=M(y=>e?y.sessions[e.sessionId]:void 0);if(!e)return null;const a=!!(i!=null&&i.agentId)&&(i==null?void 0:i.status)==="running";function l(y){o(y),y||t()}function u(){if(!i)return;const y=window.prompt("Rename:",i.title);if(y!=null&&y.trim()){const _=y.trim();M.getState().setTitle(i.id,_),j.getState().updateLabel(te.chat(i.id),_),i.agentId&&(n==null||n.agent(i.agentId).update({title:_}).catch(()=>{}))}t()}function f(){i!=null&&i.agentId&&(n==null||n.agent(i.agentId).interrupt().catch(()=>{})),t()}function h(y){M.getState().remove(y),j.getState().close(te.chat(y))}async function m(){if(i){if(!window.confirm("Archive this agent? It can be resumed later."))return t();if(t(),!i.agentId){h(i.id);return}if(!n){window.alert("Not connected — cannot archive remotely.");return}try{await n.agent(i.agentId).archive(),h(i.id)}catch(y){window.alert(`Failed to archive: ${y instanceof Error?y.message:String(y)}`)}}}async function p(){if(i){if(!window.confirm("Permanently delete this agent? This cannot be undone."))return t();if(t(),!i.agentId){h(i.id);return}if(!n){window.alert("Not connected — cannot delete remotely.");return}try{await n.agent(i.agentId).delete(),h(i.id)}catch(y){window.alert(`Failed to delete: ${y instanceof Error?y.message:String(y)}`)}}}return c.jsxs(Rt,{open:r,onOpenChange:l,modal:!1,children:[c.jsx(Pt,{asChild:!0,children:c.jsx(Sn,{ref:s,x:e.x,y:e.y})}),c.jsxs(Mt,{minWidth:160,children:[c.jsxs(K,{onSelect:u,children:[c.jsx(vs,{size:13}),"Rename"]}),c.jsxs(K,{disabled:!a,onSelect:f,children:[c.jsx(Qr,{size:13}),"Stop agent"]}),c.jsx(Pe,{}),c.jsxs(K,{danger:!0,onSelect:m,children:[c.jsx(eo,{size:13}),"Archive"]}),c.jsxs(K,{danger:!0,onSelect:p,children:[c.jsx(un,{size:13}),"Delete permanently"]})]})]})}const pu="_avatar_1m9k9_4",hu="_avatarImg_1m9k9_14",mu="_avatarFallback_1m9k9_20",Wt={avatar:pu,avatarImg:hu,avatarFallback:mu},Ht=["#2563eb","#16a34a","#9333ea","#dc2626","#0d9488","#d97706","#db2777","#0891b2","#ea580c","#4f46e5","#059669","#7c3aed"];function gu(e){let t=0;for(let s=0;s<e.length;s++){const r=e.charCodeAt(s);t=t*31+r>>>0}return Ht[t%Ht.length]??Ht[0]}function _u(e){const t=e.match(/[a-zA-Z0-9]/);return t?t[0].toUpperCase():"?"}function yu({projectKey:e,src:t,size:n=32,className:s}){const r=_u(e),o=gu(e),i=Math.round(n*.4);return c.jsx("span",{className:`${Wt.avatar}${s?` ${s}`:""}`,style:{width:n,height:n,backgroundColor:t?void 0:o},"aria-label":e,role:"img",children:t?c.jsx("img",{src:t,alt:e,className:Wt.avatarImg}):c.jsx("span",{className:Wt.avatarFallback,style:{fontSize:i},"aria-hidden":!0,children:r})})}function wu({label:e,cwd:t,sessionCount:n,collapsed:s,attentionDot:r,onToggleCollapsed:o,onOpenMenu:i}){return c.jsxs("div",{className:V.workspaceHeader,onClick:o,title:t,children:[c.jsx(Se,{className:V.workspaceChevron,"aria-label":s?"Expand workspace":"Collapse workspace",onClick:a=>{a.stopPropagation(),o()},children:c.jsx(re,{icon:fn,size:"xs",className:s?void 0:V.chevronGlyphExpanded})}),c.jsx(yu,{projectKey:e,size:20}),c.jsx("span",{className:V.workspaceLabel,children:e}),r&&c.jsx(At,{...r}),c.jsx("span",{className:V.workspaceCount,children:n}),c.jsx(Se,{className:V.workspaceMenuBtn,hoverBase:"var(--pi-color-surface2)",title:"Workspace actions",onClick:a=>{a.stopPropagation();const l=a.currentTarget.getBoundingClientRect();i(l.left,l.bottom)},children:c.jsx(re,{icon:dn,size:"sm"})})]})}function Me(e,t){return t&&(e==="~"||e.startsWith("~/"))?t+e.slice(1):e}function xn(e,t,n){const s=new Map;for(const r of e){const o=t[r];if(!o)continue;const i=Me(o.cwd||"~",n),a=s.get(i);a?a.push(o):s.set(i,[o])}return Array.from(s,([r,o])=>({cwd:r,sessions:o}))}function dr(e){return!e||e==="~"?"~":e.split("/").filter(Boolean).pop()||e}function bu(e,t){return new Set(e.filter(n=>n.cwd!==t).map(n=>n.cwd))}function vu(){const e=P(p=>p.workspaceMenu),t=P(p=>p.closeWorkspaceMenu),n=z(p=>p.client),s=M(p=>p.order),r=M(p=>p.sessions),o=lt(),i=b.useRef(null),[a,l]=b.useState(!1);if(b.useEffect(()=>{l(e!==null)},[e]),!e)return null;const u=s.map(p=>r[p]).filter(p=>!!p).filter(p=>Me(p.cwd||"~",o)===e.cwd);function f(p){l(p),p||t()}function h(){e&&(t(),ct(e.cwd))}async function m(){if(!e)return;const p=u.length;if(!window.confirm(`Delete all ${p} conversation${p===1?"":"s"} in "${dr(e.cwd)}"? This deletes the conversations only — files on disk are untouched. This cannot be undone.`))return t();t();for(const _ of u){if(_.agentId&&n)try{await n.agent(_.agentId).delete()}catch(v){window.alert(`Failed to delete "${_.title}": ${v instanceof Error?v.message:String(v)}`);continue}M.getState().remove(_.id),j.getState().close(te.chat(_.id))}}return c.jsxs(Rt,{open:a,onOpenChange:f,modal:!1,children:[c.jsx(Pt,{asChild:!0,children:c.jsx(Sn,{ref:i,x:e.x,y:e.y})}),c.jsxs(Mt,{minWidth:160,children:[c.jsxs(K,{onSelect:h,children:[c.jsx(vt,{size:13}),"New session"]}),c.jsx(Pe,{}),c.jsxs(K,{danger:!0,onSelect:m,children:[c.jsx(un,{size:13}),"Delete workspace (all conversations)"]})]})]})}function Et(e,t,n){j.getState().open({id:te.chat(e.id),kind:"chat",label:e.title||"Chat",closable:!0,data:{sessionId:e.id},workspaceCwd:Me(e.cwd||"~",t)},n)}const Su=.25;function ur(e,t){if(t.width<=0||t.height<=0)return"center";const n=(e.x-(t.left+t.width/2))/t.width,s=(e.y-(t.top+t.height/2))/t.height;return Math.max(Math.abs(n),Math.abs(s))<Su?"center":Math.abs(n)>=Math.abs(s)?n<0?"left":"right":s<0?"top":"bottom"}function xu(e,t){return t.x>=e.left&&t.x<=e.left+e.width&&t.y>=e.top&&t.y<=e.top+e.height}function fr(e,t,n){return n==="center"?"center":ot(e,t,n)?n:"center"}function on(e,t,n,s){return s[n]!==t?!1:e==="center"?!0:Object.keys(s).every(o=>o===n||s[o]!==t)}const dt={chat:"application/x-pi-studio-open-chat",path:"application/x-pi-studio-open-path"},ku=["chat","path"];function pr(e){for(const t of ku)if(e.includes(dt[t]))return t;return null}function Jm(e){return t=>{t.dataTransfer.setData(dt.path,e),t.dataTransfer.effectAllowed="copyMove"}}function Iu(e,t){const n=pr(e);if(n===null)return null;const s=t(dt[n]).trim();return s===""?null:{kind:n,value:s}}function Eu(e,t,n,s){return fr(e,t,ur(n,s))}const Tu=36;function ju(){const e=M(v=>v.order),t=M(v=>v.sessions),n=M(v=>v.activeSessionId),s=M(v=>v.activate),r=j(v=>v.activeWorkspaceCwd),o=z(v=>v.status),i=P(v=>v.openSessionMenu),a=P(v=>v.openWorkspaceMenu),l=P(v=>v.setCwd),u=P(v=>v.openCwdPicker),f=P(v=>v.collapsedWorkspaces),h=P(v=>v.toggleWorkspaceCollapsed),m=lt();function p(v){s(v);const I=t[v];I!=null&&I.cwd&&l(I.cwd),I&&Et(I,m)}function y(v,I,E){I===r&&(E.dataTransfer.setData(dt.chat,v),E.dataTransfer.effectAllowed="copy")}const _=xn(e,t,m);return c.jsxs(lr,{children:[c.jsx("div",{className:V.header,style:{minHeight:Tu},children:c.jsxs("h3",{children:["Workspaces · ",_.length]})}),c.jsxs("div",{className:V.list,children:[_.length===0&&c.jsx(Ae,{style:{padding:"var(--pi-spacing-12) var(--pi-spacing-10)"},children:o!=="open"?"Not connected":"No workspaces — open a folder to start"}),_.map(v=>{const I=f.has(v.cwd);return c.jsxs("div",{children:[c.jsx(wu,{label:dr(v.cwd),cwd:v.cwd,sessionCount:v.sessions.length,collapsed:I,attentionDot:I?Md(v.sessions):null,onToggleCollapsed:()=>h(v.cwd),onOpenMenu:(E,C)=>a(v.cwd,E,C)}),!I&&c.jsxs("div",{className:V.workspaceSessions,children:[v.sessions.map(E=>c.jsx(iu,{session:E,active:E.id===n,draggable:v.cwd===r,onSelect:()=>p(E.id),onOpenMenu:(C,L)=>i(E.id,C,L),onDragStartRow:C=>y(E.id,v.cwd,C)},E.id)),c.jsxs("button",{type:"button",className:V.newSessionRow,disabled:o!=="open",title:o!=="open"?"Connect to start a new session":void 0,onClick:()=>ct(v.cwd),children:[c.jsx(re,{icon:vt,size:"xs"}),"New session"]})]})]},v.cwd)})]}),c.jsxs("button",{type:"button",className:V.footer,disabled:o!=="open",title:o!=="open"?"Connect to open a workspace":"Open a workspace folder",onClick:()=>u(),children:[c.jsx(re,{icon:vt,size:"xs"}),"Add workspace"]}),c.jsx(fu,{}),c.jsx(vu,{})]})}const hr="data-pi-dragging";function mr(e=document.body){e.setAttribute(hr,"")}function Tt(e=document.body){e.removeAttribute(hr)}const ss={tab:0,strip:1,pane:2};function Ut(e){if(e===null||typeof e!="object"||!("type"in e))return null;const{type:t}=e;if(t!=="tab"&&t!=="strip"&&t!=="pane")return null;const n="paneId"in e&&typeof e.paneId=="string"?e.paneId:null;return{kind:t,paneId:n}}function Cu(e){const t=e.activatorEvent;return t instanceof MouseEvent?{x:t.clientX+e.delta.x,y:t.clientY+e.delta.y}:null}function Ru(e,t,n){return e.kind==="tab"?n.placement[t]??null:e.paneId}function Pu(e){const[t,n]=b.useState(null),[s,r]=b.useState(null),o=j(p=>p.tabs.find(y=>y.id===t)??null),i=ko(Io(To,{activationConstraint:{distance:4}})),a=b.useMemo(()=>p=>{const y=Eo(p).map(_=>{var v;return{hit:_,target:Ut((v=p.droppableContainers.find(I=>I.id===_.id))==null?void 0:v.data.current)}}).filter(_=>_.target!==null).toSorted((_,v)=>ss[_.target.kind]-ss[v.target.kind]);return y.length===0?[]:[y[0].hit]},[]),l=b.useCallback(p=>{const{over:y,active:_}=p,v=Ut(y==null?void 0:y.data.current);if(!y||v===null||e===null)return null;const I=q.getState().layouts[e];if(I===void 0)return null;const E=String(_.id),C=String(y.id);if(v.kind!=="pane"){const Z=Ru(v,C,I);return Z===null||v.kind==="tab"&&C===E?null:v.kind==="tab"&&I.placement[E]===Z?{paneId:Z,region:"center"}:on("center",Z,E,I.placement)?null:{paneId:Z,region:"center"}}const L=Cu(p);if(v.paneId===null||L===null)return null;const Y=fr(I.tree,v.paneId,ur(L,y.rect));return on(Y,v.paneId,E,I.placement)?null:{paneId:v.paneId,region:Y}},[e]),u=b.useCallback(p=>{mr(),n(String(p.active.id))},[]),f=b.useCallback(p=>{const y=l(p);r(_=>(_==null?void 0:_.paneId)===(y==null?void 0:y.paneId)&&(_==null?void 0:_.region)===(y==null?void 0:y.region)?_:y)},[l]),h=b.useCallback(()=>{Tt(),n(null),r(null)},[]),m=b.useCallback(p=>{var ie;Tt(),n(null),r(null);const{active:y,over:_}=p,v=Ut(_==null?void 0:_.data.current);if(!_||v===null||e===null)return;const I=String(y.id),E=q.getState().layouts[e];if(E===void 0)return;const C=j.getState(),L=C.tabs.filter(Q=>Q.workspaceCwd===e).map(Q=>Q.id),{moveTab:Y,splitWithTab:Z}=q.getState();if(v.kind==="tab"){const Q=String(_.id);if(Q===I)return;const ce=E.placement[Q];ce!==void 0&&ce!==E.placement[I]&&Y(e,I,ce,L),C.reorder(I,Q);return}const A=l(p);if(A===null)return;if(A.region!=="center"){Z(e,I,A.paneId,A.region,L);return}Y(e,I,A.paneId,L);const X=((ie=q.getState().layouts[e])==null?void 0:ie.placement)??{},ne=L.filter(Q=>Q!==I&&X[Q]===A.paneId).at(-1);ne!==void 0&&L.indexOf(I)<L.indexOf(ne)&&C.reorder(I,ne)},[e,l]);return{sensors:i,collisionDetection:a,onDragStart:u,onDragMove:f,onDragEnd:m,onDragCancel:h,draggedTab:o,preview:s}}const Au=b.lazy(()=>we(()=>import("./ChatPanel-DInywt0h.js"),__vite__mapDeps([7,2,4,5,8,1,3,9,10,11,12,13,14,15,16,17])).then(e=>({default:e.ChatPanel}))),rs=b.lazy(()=>we(()=>import("./FilePanel-DCcMysVK.js"),__vite__mapDeps([18,2,1,3,4,19,13,14,5,15,16,20])).then(e=>({default:e.FilePanel}))),Nu=b.lazy(()=>we(()=>import("./TerminalPanel-BEF6crIl.js"),__vite__mapDeps([21,2,22,23,1,3,4,5,15,16,24])).then(e=>({default:e.TerminalPanel}))),Du=b.lazy(()=>we(()=>import("./MoleculeViewerPanel-CcFuwlZ4.js"),__vite__mapDeps([25,2,26,27,28,29,30,4,19,1,3,5,15,16,31])).then(e=>({default:e.MoleculeViewerPanel}))),Mu={chat:Au,file:rs,diff:rs,terminal:Nu,molecule:Du},at="var(--pane-strip-height)";function kn(e){return e===void 0?new Map:cd(sr(e.tree,new Set(Object.values(e.placement))))}function J(e){const t=(e*100).toFixed(4);return`${t.includes(".")?t.replace(/\.?0+$/,""):t}%`}function gr(e){if(e!==void 0)return{left:J(e.x),top:`calc(${J(e.y)} + ${at})`,width:J(e.width),height:`calc(${J(e.height)} - ${at})`}}function qu(e,t){const n=`${J(e.y)} + ${at}`,s=`${J(e.height)} - ${at}`,r=`calc((${s}) / 2)`;switch(t){case"left":return{left:J(e.x),top:`calc(${n})`,width:J(e.width/2),height:`calc(${s})`};case"right":return{left:J(e.x+e.width/2),top:`calc(${n})`,width:J(e.width/2),height:`calc(${s})`};case"top":return{left:J(e.x),top:`calc(${n})`,width:J(e.width),height:r};case"bottom":return{left:J(e.x),top:`calc(${n} + (${s}) / 2)`,width:J(e.width),height:r};case"center":return{left:J(e.x),top:`calc(${n})`,width:J(e.width),height:`calc(${s})`}}}function $u(e){const t=kn(e);return[...t].map(([n,s])=>({paneId:n,stripStyle:{left:J(s.x),top:J(s.y),width:J(s.width),height:at},focused:t.size>1&&(e==null?void 0:e.focusedPaneId)===n}))}function Ou(e){if(e===void 0)return[];const t=sr(e.tree,new Set(Object.values(e.placement)));return t!==e.tree?[]:ld(t)}function zu(e,t){return(t==null?void 0:t.placement[e])??null}function Bu(e,t,n){const s=kn(n);return e.map(r=>{const o=r.workspaceCwd===t?n==null?void 0:n.placement[r.id]:void 0;return{tabId:r.id,style:gr(o===void 0?void 0:s.get(o)),visible:o!==void 0&&(n==null?void 0:n.activeByPane[o])===r.id}})}const Lu="_divider_4eg4l_9",Fu="_vertical_4eg4l_26",Wu="_horizontal_4eg4l_41",Vt={divider:Lu,vertical:Fu,horizontal:Wu};function Hu({cwd:e,dividers:t,hostRef:n}){const s=q(i=>i.resizeDivider),r=b.useRef(0);function o(i,a){var y;const l=(y=n.current)==null?void 0:y.getBoundingClientRect();if(!l)return;i.preventDefault(),i.stopPropagation();const u=a.direction==="row",f=u?a.splitRect.width*l.width:a.splitRect.height*l.height;if(f<=0)return;const h=i.currentTarget;h.setPointerCapture(i.pointerId),r.current=u?i.clientX:i.clientY,document.body.style.cursor=u?"col-resize":"row-resize",document.body.style.userSelect="none";const m=_=>{const v=u?_.clientX:_.clientY,I=v-r.current;r.current=v,s(e,a.splitPath,a.boundaryIndex,I/f)},p=_=>{window.removeEventListener("pointermove",m),window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",p),document.body.style.cursor="",document.body.style.userSelect="",h.hasPointerCapture(_.pointerId)&&h.releasePointerCapture(_.pointerId)};window.addEventListener("pointermove",m),window.addEventListener("pointerup",p),window.addEventListener("pointercancel",p)}return t.map(i=>{const a=i.direction==="row";return c.jsx("div",{className:F(Vt.divider,a?Vt.vertical:Vt.horizontal),style:a?{left:`${i.rect.x*100}%`,top:`${i.rect.y*100}%`,height:`${i.rect.height*100}%`}:{left:`${i.rect.x*100}%`,top:`${i.rect.y*100}%`,width:`${i.rect.width*100}%`},role:"separator","aria-orientation":a?"vertical":"horizontal",onPointerDown:l=>o(l,i)},`${i.splitPath.join(".")}:${i.boundaryIndex}`)})}const Uu=b.lazy(()=>we(()=>import("./TextViewer-BalCoanq.js"),__vite__mapDeps([32,2,33,4,30,1,3,34,5,15,16,35])).then(e=>({default:e.TextViewer}))),Vu=b.lazy(()=>we(()=>import("./MarkdownFileViewer-BbFFx6T9.js"),__vite__mapDeps([36,2,33,4,30,1,3,34,8,9,10,11,12,5,15,16,37])).then(e=>({default:e.MarkdownFileViewer}))),Ku=b.lazy(()=>we(()=>import("./ImageViewer-BmhuSGT0.js"),__vite__mapDeps([38,2,30,4,1,3,5,15,16,39])).then(e=>({default:e.ImageViewer}))),Gu=b.lazy(()=>we(()=>import("./VideoViewer-BYfwl923.js"),__vite__mapDeps([40,2,30,4,1,3,5,15,16,41])).then(e=>({default:e.VideoViewer}))),Yu=b.lazy(()=>we(()=>import("./BinaryFallbackViewer-BSJE1g_R.js"),__vite__mapDeps([42,2,30,4,5,1,3,15,16,43])).then(e=>({default:e.BinaryFallbackViewer}))),Xu=b.lazy(()=>we(()=>import("./HtmlViewer-VHT3Wggh.js"),__vite__mapDeps([44,2,4,1,3,33,30,34,11,5,15,16,45])).then(e=>({default:e.HtmlViewer}))),qt=[{kind:"text",component:Uu,extensions:[],liveRefresh:!0},{kind:"markdown",component:Vu,extensions:["md","markdown","mdx"],liveRefresh:!0},{kind:"html",component:Xu,extensions:["html","htm","xhtml"],liveRefresh:!0},{kind:"image",component:Ku,extensions:["png","jpg","jpeg","gif","webp","svg","bmp","ico","avif"],mimePrefixes:["image/"],liveRefresh:!0},{kind:"video",component:Gu,extensions:["mp4","webm","mov","m4v","ogv"],mimePrefixes:["video/"],liveRefresh:!1},{kind:"binary",component:Yu,extensions:["pdf","zip","gz","tar","exe","wasm","woff","woff2","ttf","otf"],liveRefresh:!1}],Zm=Object.freeze(Object.fromEntries(qt.map(e=>[e.kind,e.component]))),Ju=Object.freeze(Object.fromEntries(qt.flatMap(e=>e.extensions.map(t=>[t,e.kind])))),Zu=Object.freeze(qt.flatMap(e=>(e.mimePrefixes??[]).map(t=>[t,e.kind]))),Qm=Object.freeze(new Set(qt.filter(e=>e.liveRefresh).map(e=>e.kind)));function _r(e){const t=e.split("/").pop()??e,n=t.lastIndexOf(".");return n>0?t.slice(n+1).toLowerCase():""}const Qu={pdb:!0,cif:!0,mmcif:!0,mol:!0,mol2:!0,xyz:!0,extxyz:!0,gro:!0,lammpstrj:!0,xsf:!0},ef={poscar:!0,contcar:!0};function yr(e){if(Qu[_r(e)])return!0;const t=e.split("/").pop()??e;return!!ef[t.toLowerCase()]}function eg(e,t={}){const n=Ju[_r(e)];if(n)return n;const s=t.mimeHint??"";for(const[r,o]of Zu)if(s.startsWith(r))return o;return t.isBinary?"binary":"text"}function In(e,t,n){yr(e)?br(e,t,n):wr(e,t,n)}function wr(e,t,n){const s=e.split("/").pop()||e;j.getState().open({id:te.file(e),kind:"file",label:s,closable:!0,data:{path:e},workspaceCwd:t},n)}function br(e,t,n){const s=e.split("/").pop()||e;j.getState().open({id:te.molecule(e),kind:"molecule",label:s,closable:!0,data:{path:e},workspaceCwd:t},n)}const an="data-pane-drop";function tf(e){return{[an]:e}}function nf(e,t){if(e===null)return null;for(const n of e.querySelectorAll(`[${an}]`)){const s=n.getBoundingClientRect(),r={left:s.left,top:s.top,width:s.width,height:s.height},o=n.getAttribute(an);if(o!==null&&o!==""&&xu(r,t))return{paneId:o,bounds:r}}return null}function sf(e){const{tabs:t}=j.getState(),n=s=>t.some(r=>r.id===s)?s:null;return e.kind==="chat"?n(te.chat(e.value)):n(te.file(e.value))??n(te.molecule(e.value))}function rf(e,t,n,s,r){const o=q.getState().layouts[t];if(o===void 0)return;const i=j.getState().tabs.filter(f=>f.workspaceCwd===t).map(f=>f.id),a=sf(e);if(a!==null){if(on(s,n,a,o.placement))return;const{moveTab:f,splitWithTab:h}=q.getState();s==="center"?f(t,a,n,i):h(t,a,n,s,i);return}let l=n;if(s!=="center"&&(l=q.getState().splitEmpty(t,n,s)),l===null)return;if(e.kind==="path"){In(e.value,t,l);return}const u=M.getState().sessions[e.value];u!==void 0&&Et(u,r,l)}function of(e,t){const[n,s]=b.useState(null),r=lt();b.useEffect(()=>{const u=()=>mr(),f=()=>Tt();return document.addEventListener("dragstart",u),document.addEventListener("dragend",f),document.addEventListener("drop",f),()=>{document.removeEventListener("dragstart",u),document.removeEventListener("dragend",f),document.removeEventListener("drop",f),Tt()}},[]);const o=b.useCallback(u=>{if(e===null)return null;const f=q.getState().layouts[e];if(f===void 0)return null;const h={x:u.clientX,y:u.clientY},m=nf(t.current,h);return m===null?null:{paneId:m.paneId,region:Eu(f.tree,m.paneId,h,m.bounds)}},[e,t]),i=b.useCallback(u=>{if(pr(u.dataTransfer.types)===null)return;u.preventDefault(),u.dataTransfer.dropEffect="copy";const f=o(u);s(h=>(h==null?void 0:h.paneId)===(f==null?void 0:f.paneId)&&(h==null?void 0:h.region)===(f==null?void 0:f.region)?h:f)},[o]),a=b.useCallback(u=>{u.currentTarget.contains(u.relatedTarget)||s(null)},[]),l=b.useCallback(u=>{const f=Iu(u.dataTransfer.types,m=>u.dataTransfer.getData(m));if(f===null)return;u.preventDefault(),s(null);const h=o(u);h===null||e===null||rf(f,e,h.paneId,h.region,r)},[e,r,o]);return{preview:n,onDragOver:i,onDragLeave:a,onDrop:l}}function af(e,t,n){if(e.kind!=="chat"||n||t===void 0)return null;const s=We(t);return s==="running"||s==="error"?s:null}const cf="_strip_k1phe_1",lf="_tabs_k1phe_13",df="_paneStrip_k1phe_28",uf="_focused_k1phe_36",ff="_tab_k1phe_13",pf="_tabActive_k1phe_59",hf="_tabIcon_k1phe_63",mf="_tabLabel_k1phe_68",gf="_tabLabelMono_k1phe_74",_f="_tabDot_k1phe_79",yf="_tabClose_k1phe_86",wf="_newTab_k1phe_107",bf="_stripActions_k1phe_115",vf="_splitAction_k1phe_122",Sf="_itemIcon_k1phe_127",ee={strip:cf,tabs:lf,paneStrip:df,focused:uf,tab:ff,tabActive:pf,tabIcon:hf,tabLabel:mf,tabLabelMono:gf,tabDot:_f,tabClose:yf,newTab:wf,stripActions:bf,splitAction:vf,itemIcon:Sf},vr={chat:ks,file:Ct,diff:xs,terminal:Ss,molecule:pn},xf={file:!0,diff:!0};function kf({tab:e,active:t}){const n=j(m=>m.activate),s=vr[e.kind],r=M(m=>{var p;return e.kind==="chat"?(p=m.sessions[e.data.sessionId])==null?void 0:p.status:void 0}),o=af(e,r,t),{attributes:i,listeners:a,setNodeRef:l,transform:u,transition:f,isDragging:h}=Ro({id:e.id,data:{type:"tab"}});return c.jsxs("div",{ref:l,className:F(ee.tab,t&&ee.tabActive),style:{transform:Po.Transform.toString(u),transition:f,opacity:h?.5:1},onClick:()=>n(e.id),onAuxClick:m=>{m.button===1&&e.closable&&sn(e.id)},title:e.label,...i,...a,children:[c.jsx("span",{className:ee.tabIcon,children:c.jsx(re,{icon:s,size:"xs",color:t&&e.kind==="chat"?"var(--pi-color-accentBright)":"currentColor","aria-hidden":!0})}),c.jsx("span",{className:F(ee.tabLabel,xf[e.kind]&&ee.tabLabelMono),children:e.label}),c.jsx(At,{status:o,className:ee.tabDot}),e.closable&&c.jsx("span",{className:ee.tabClose,onClick:m=>{m.stopPropagation(),sn(e.id)},children:c.jsx(re,{icon:Yt,size:"xs","aria-hidden":!0})})]})}function If({workspaceCwd:e,paneId:t}){const n=s=>()=>{e!==null&&s(e,t??void 0)};return c.jsxs(Rt,{children:[c.jsx(Pt,{asChild:!0,children:c.jsx(Se,{className:ee.newTab,size:"xs",hoverBase:"var(--pi-color-background)",title:"New tab",disabled:!e,children:c.jsx(re,{icon:vt,size:"sm","aria-hidden":!0})})}),c.jsxs(Mt,{minWidth:160,sideOffset:4,children:[c.jsxs(K,{onSelect:n(ct),children:[c.jsx(re,{icon:ks,size:"xs",className:ee.itemIcon,"aria-hidden":!0}),"New chat"]}),c.jsxs(K,{onSelect:n(cr),children:[c.jsx(re,{icon:Ss,size:"xs",className:ee.itemIcon,"aria-hidden":!0}),"New terminal"]}),c.jsxs(K,{onSelect:n(bd),children:[c.jsx(re,{icon:pn,size:"xs",className:ee.itemIcon,"aria-hidden":!0}),"New molecule view"]})]})]})}function Ef({cwd:e,paneId:t}){const n=q(a=>{var l;return e===null||(l=a.layouts[e])==null?void 0:l.tree}),s=a=>()=>{if(e===null||t===null)return;const l=q.getState().splitEmpty(e,t,a);l!==null&&ct(e,l)},r=a=>n===void 0||t===null?"Open a workspace to split":ot(n,t,a)?null:"Maximum split depth reached",o=r("right"),i=r("bottom");return c.jsxs("div",{className:ee.stripActions,children:[c.jsx(Se,{className:ee.splitAction,size:"xs",hoverBase:"var(--pi-color-background)",title:o??"Split right",disabled:o!==null,onClick:s("right"),children:c.jsx(re,{icon:to,size:"sm","aria-hidden":!0})}),c.jsx(Se,{className:ee.splitAction,size:"xs",hoverBase:"var(--pi-color-background)",title:i??"Split down",disabled:i!==null,onClick:s("bottom"),children:c.jsx(re,{icon:no,size:"sm","aria-hidden":!0})})]})}function os({cwd:e,paneId:t,style:n,focused:s=!1}){const r=j(f=>f.tabs),o=q(f=>f.focusPane),i=q(f=>{var h;return e===null||(h=f.layouts[e])==null?void 0:h.placement}),a=q(f=>{var h;return e===null||t===null||(h=f.layouts[e])==null?void 0:h.activeByPane[t]}),l=t===null?[]:r.filter(f=>(i==null?void 0:i[f.id])===t),{setNodeRef:u}=Is({id:`strip:${t??"none"}`,disabled:t===null,data:{type:"strip",paneId:t}});return c.jsxs("div",{ref:u,className:F(ee.strip,ee.paneStrip,s&&ee.focused),style:n,onPointerDown:()=>{e!==null&&t!==null&&o(e,t)},children:[c.jsx("div",{className:ee.tabs,children:c.jsx(jo,{items:l.map(f=>f.id),strategy:Co,children:l.map(f=>c.jsx(kf,{tab:f,active:f.id===a},f.id))})}),c.jsx(If,{workspaceCwd:e,paneId:t}),c.jsx(Ef,{cwd:e,paneId:t})]})}const Tf="_preview_1txmv_1",jf="_chip_1txmv_9",Cf="_chipLabel_1txmv_23",cn={preview:Tf,chip:jf,chipLabel:Cf};function Rf({rect:e,region:t}){return c.jsx("div",{className:cn.preview,style:qu(e,t)})}function Pf({tab:e}){const t=vr[e.kind];return c.jsxs("div",{className:cn.chip,children:[c.jsx(t,{size:13}),c.jsx("span",{className:cn.chipLabel,children:e.label})]})}const Af="_area_9sawz_1",Nf="_panel_9sawz_11",Df="_dropZone_9sawz_27",Mf="_active_9sawz_31",qf="_empty_9sawz_35",$f="_emptyStack_9sawz_47",Of="_emptyTitle_9sawz_61",zf="_emptyHint_9sawz_65",ke={area:Af,panel:Nf,dropZone:Df,active:Mf,empty:qf,emptyStack:$f,emptyTitle:Of,emptyHint:zf};function Bf({paneId:e,style:t}){const{setNodeRef:n}=Is({id:`pane:${e}`,data:{type:"pane",paneId:e}});return c.jsx("div",{ref:n,className:ke.dropZone,style:t,...tf(e)})}function Lf(){const e=j(_=>_.tabs),t=j(_=>_.activeWorkspaceCwd),n=q(_=>t===null?void 0:_.layouts[t]),s=z(_=>_.status),r=P(_=>_.openCwdPicker),o=q(_=>_.focusPane),i=e.some(_=>_.workspaceCwd===t),a=b.useRef(null),l=b.useMemo(()=>Bu(e,t,n),[e,t,n]),u=b.useMemo(()=>$u(n),[n]),f=b.useMemo(()=>Ou(n),[n]),h=b.useMemo(()=>kn(n),[n]),m=Pu(t),p=of(t,a),y=m.preview??p.preview;return c.jsxs(Ao,{sensors:m.sensors,collisionDetection:m.collisionDetection,onDragStart:m.onDragStart,onDragMove:m.onDragMove,onDragEnd:m.onDragEnd,onDragCancel:m.onDragCancel,children:[c.jsxs("div",{className:ke.area,ref:a,onDragOver:p.onDragOver,onDragLeave:p.onDragLeave,onDrop:p.onDrop,children:[u.length===0?c.jsx(os,{cwd:t,paneId:null}):u.map(_=>c.jsx(os,{cwd:t,paneId:_.paneId,style:_.stripStyle,focused:_.focused},_.paneId)),t!==null&&f.length>0&&c.jsx(Hu,{cwd:t,dividers:f,hostRef:a}),u.map(_=>c.jsx(Bf,{paneId:_.paneId,style:gr(h.get(_.paneId))},`drop-${_.paneId}`)),y!==null&&h.has(y.paneId)&&c.jsx(Rf,{rect:h.get(y.paneId),region:y.region}),t===null&&c.jsxs("div",{className:ke.emptyStack,children:[c.jsx("div",{className:ke.emptyTitle,children:"No workspace open"}),c.jsx("div",{className:ke.emptyHint,children:"Open a project folder to start a chat."}),c.jsx(le,{size:"sm",variant:"secondary",leftIcon:c.jsx(so,{size:14}),disabled:s!=="open",title:s!=="open"?"Connect to open a workspace":"Open a workspace folder",onClick:()=>r(),children:"Open Workspace"})]}),t!==null&&!i&&c.jsx("div",{className:ke.empty,children:"No open tabs in this workspace"}),e.map((_,v)=>{const I=Mu[_.kind],E=l[v],C=n==null?void 0:n.placement[_.id];return c.jsx("div",{className:F(ke.panel,E.visible&&ke.active),style:E.style,onPointerDown:()=>{t!==null&&C!==void 0&&o(t,C)},children:c.jsx(b.Suspense,{fallback:c.jsx(Ns,{size:"md"}),children:c.jsx(I,{tab:_,owningPaneId:zu(_.id,n)})})},_.id)})]}),c.jsx(No,{dropAnimation:null,children:m.draggedTab&&c.jsx(Pf,{tab:m.draggedTab})})]})}const Ne={fileRead:e=>["file","read",e],fileDownload:e=>["file","download",e],fileText:(e,t)=>["file","text",e,t],fileDiff:(e,t,n)=>["file","diff",e,t,n],fileDiffByPath:e=>["file","diff",e],htmlAssetBundle:(e,t)=>["file","htmlAssets",e,t],htmlAssetBundleByPath:e=>["file","htmlAssets",e],explorer:e=>["explorer",e],agentList:()=>["agents","list"],providerModels:e=>["providers","models",e],agentTimeline:e=>["agents","timeline",e],agentCommands:e=>["agents","commands",e],providerAuthList:()=>["providers","auth","list"]};function Ff(e){const t=e.kind==="directory"||e.type==="directory"?"directory":"file";return{name:e.name??"",kind:t,size:e.size,mtimeMs:e.mtimeMs}}function Wf(e){return e.slice().sort((t,n)=>t.kind!==n.kind?t.kind==="directory"?-1:1:t.name.localeCompare(n.name))}async function Sr(e,t){const s=(await e.connection.request("file_explorer_request",{path:t})).result;if(!s||s.ok===!1)throw new Error(s&&"error"in s?s.error:"explorer request failed");const r="entries"in s?s.entries??[]:[];return{path:s.resolvedPath??t,entries:Wf(r.map(Ff))}}function Hf(e,t=!0){const n=z(s=>s.client);return Hr({queryKey:Ne.explorer(e),queryFn:()=>{if(!n)throw new Error("not connected");return Sr(n,e)},enabled:!!n&&!!e&&t})}function Uf(e){const t=z(r=>r.client),n=b.useMemo(()=>Array.from(e),[e]),s=Ur({queries:n.map(r=>({queryKey:Ne.explorer(r),queryFn:()=>{if(!t)throw new Error("not connected");return Sr(t,r)},enabled:!!t&&!!r}))});return b.useMemo(()=>{const r=new Map;return n.forEach((o,i)=>{const a=s[i];r.set(o,{listing:a==null?void 0:a.data,isLoading:!!(a!=null&&a.isLoading),isError:!!(a!=null&&a.isError),error:a==null?void 0:a.error})}),r},[n,s])}function Vf(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="file_changed"&&"path"in e&&typeof e.path=="string"}function Kf(e,t){const n=new Set,s=e.connection.onSessionMessage(r=>{const o=r;Vf(o)&&n.has(o.path)&&t(o.path)});return{sync(r){for(const o of n)r.has(o)||(n.delete(o),e.connection.request("file_watch_unsubscribe",{path:o}).catch(()=>{}));for(const o of r)n.has(o)||(n.add(o),e.connection.request("file_watch_subscribe",{path:o}).then(i=>{const a=i;(a==null?void 0:a.ok)===!1&&console.warn(`useExplorerWatch: ${a.error??"subscribe failed"} for "${o}"`)}).catch(()=>{}))},dispose(){s();for(const r of n)e.connection.request("file_watch_unsubscribe",{path:r}).catch(()=>{});n.clear()}}}function Gf(e){const t=z(i=>i.client),n=Ve(),s=b.useRef(null),r=b.useRef(null),o=Array.from(e).toSorted().join("\0");b.useEffect(()=>{var i,a;t&&(r.current!==t&&((i=s.current)==null||i.dispose(),s.current=Kf(t,l=>{n.invalidateQueries({queryKey:Ne.explorer(l)})}),r.current=t),(a=s.current)==null||a.sync(new Set(o?o.split("\0"):[])))},[t,o,n]),b.useEffect(()=>()=>{var i;(i=s.current)==null||i.dispose(),s.current=null,r.current=null},[])}const is=new WeakMap;function as(e){let t=is.get(e);return t||(t=new nl(e),t.start(),is.set(e,t)),t}function Yf(e,t,n){const s=new Blob([Uint8Array.from(e)],{type:n||"application/octet-stream"}),r=URL.createObjectURL(s),o=document.createElement("a");o.href=r,o.download=t,o.rel="noopener",document.body.appendChild(o),o.click(),o.remove(),setTimeout(()=>URL.revokeObjectURL(r),0)}function xr(){const e=z(r=>r.daemon),t=Ve(),n=b.useCallback(async(r,o)=>{if(!e)throw new Error("not connected");const i=r?`${r}/${o.name}`:o.name,a=new Uint8Array(await o.arrayBuffer());await as(e).upload(i,a),await t.invalidateQueries({queryKey:["explorer"]})},[e,t]),s=b.useCallback(async r=>{if(!e)throw new Error("not connected");const o=await as(e).download(r);Yf(o.bytes,o.fileName||r.split("/").pop()||"download",o.mimeType)},[e]);return{upload:n,saveToDisk:s}}const cs={available:!1,branch:null,upstream:null,ahead:0,behind:0,detached:!1,conflictCount:0},he=Ee()(e=>({subscribedCwd:null,changes:[],ignored:[],...cs,setSubscribedCwd:t=>e({subscribedCwd:t}),applyProjection:t=>{if(!t||!t.available){e({changes:[],ignored:[],...cs});return}const n=[];for(const s of t.staged)n.push({path:s.path,status:s.indexStatus==="A"?"added":s.indexStatus==="D"?"deleted":"modified",staged:!0});for(const s of t.unstaged)n.push({path:s.path,status:s.worktreeStatus==="D"?"deleted":"modified",staged:!1});for(const s of t.untracked)n.push({path:s,status:"added",staged:!1});e({changes:n,ignored:t.ignored??[],available:!0,branch:t.branch,upstream:t.upstream,ahead:t.ahead,behind:t.behind,detached:t.detached,conflictCount:t.conflicted.length})}}));function tg(e,t){return e?e.startsWith("/")||e.startsWith("~")?e:t?`${t.replace(/\/+$/,"")}/${e}`:null:null}function ye(e){const t=e.lastIndexOf("/");return t>0?e.slice(0,t):"/"}function Xf(e,t){return!t||!e.startsWith(t)?e:e.slice(t.length).replace(/^\/+/,"")}function ng(e){if(!e.startsWith("/"))return e;const t=e.split("/"),n=[];for(const s of t)s===""||s==="."||(s===".."?n.length>0&&n.pop():n.push(s));return"/"+n.join("/")}function ls(e,t,n){if(t.kind!=="file"&&t.kind!=="directory")return null;const s=t.kind==="directory"?t.path:ye(t.path);if(s===ye(e)||s===e||s.startsWith(`${e}/`)||s!==n&&!s.startsWith(`${n}/`))return null;const r=e.split("/").pop();return{destinationDir:s,destination:`${s}/${r}`}}function ds(e,t){if(e.kind!=="file"&&e.kind!=="directory")return null;const n=e.kind==="directory"?e.path:ye(e.path);return n!==t&&!n.startsWith(`${t}/`)?null:n}const Jf={empty_path:"Nothing to move.",invalid_name:"Invalid name for the destination.",exists:"An item with that name already exists in the destination folder.",not_found:"That item or destination folder no longer exists.",not_a_directory:"The destination is not a folder.",same_path:"That item is already in this folder.",into_descendant:"A folder cannot be moved into itself.",cross_device:"Cannot move across filesystems."};async function Zf(e,t,n){const s=await e.connection.request("file_move_request",{path:t,destination:n});if(!s.ok){const r=s.error??"";throw new Error(Jf[r]??r??"Failed to move")}return s.destination??n}function us(e,t){return t===0?e:`${e} — closed ${t} ${t===1?"diff tab":"diff tabs"}`}function Qf(e){return`${e.kind}:${e.path}`}function kr(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}function Ir(e,t,n,s,r,o,i){var l;(o==null?void 0:o.parentPath)===t&&e.push({kind:"draft",path:`${t}::draft`,depth:n,draftKind:o.kind,parentPath:t});const a=r.get(t);if(!a||a.isLoading){e.push({kind:"loading",path:t,depth:n});return}if(a.isError){const u=a.error instanceof Error?a.error.message:"failed to load";e.push({kind:"error",path:t,depth:n,message:u});return}for(const u of((l=a.listing)==null?void 0:l.entries)??[])ep(e,t,u,n,s,r,o,i)}function ep(e,t,n,s,r,o,i,a){const l=kr(t,n.name),u=n.kind==="directory",f=u&&r.has(l);l===a?e.push({kind:"rename",path:l,depth:s,name:n.name,isDirectory:u}):u?e.push({kind:"directory",path:l,name:n.name,depth:s,expanded:f}):e.push({kind:"file",path:l,name:n.name,depth:s}),f&&Ir(e,l,s+1,r,o,i,a)}function tp(e,t,n,s,r){if(!e)return[];const o=t.has(e),i=[{kind:"directory",path:e,name:e.split("/").pop()||e,depth:0,expanded:o}];return o&&Ir(i,e,1,t,n,s,r),i}const np=()=>{};function sp(e,t){return e===void 0?t:e==="deleted"||t==="deleted"?"deleted":e==="added"||t==="added"?"added":"modified"}function rp(e){return e==="added"?"added":"modified"}function op(e,t){if(!e||t.length===0)return np;const n=e.replace(/\/+$/,""),s=new Map,r=new Map,o=[];for(const i of t){const a=i.path.endsWith("/"),l=a?i.path.slice(0,-1):i.path;if(!l)continue;const u=`${n}/${l}`;s.set(u,sp(s.get(u),i.status)),a&&o.push(u);const f=rp(i.status);let h=ye(u);for(;h.length>n.length&&h.startsWith(n);){const m=r.get(h);r.set(h,m===void 0||m===f?f:"modified");const p=ye(h);if(p===h)break;h=p}}return i=>{const a=s.get(i)??r.get(i);if(a!==void 0)return a;for(const l of o)if(i.startsWith(`${l}/`))return"added"}}const ip=()=>!1;function ap(e,t){if(!e||t.length===0)return ip;const n=e.replace(/\/+$/,""),s=new Set,r=[];for(const o of t){const i=o.endsWith("/"),a=i?o.slice(0,-1):o;if(!a)continue;const l=`${n}/${a}`;s.add(l),i&&r.push(`${l}/`)}return o=>{if(s.has(o))return!0;for(const i of r)if(o.startsWith(i))return!0;return!1}}const cp="_container_1wywk_1",lp="_header_1wywk_7",dp="_uploadButton_1wywk_14",up="_hiddenInput_1wywk_33",fp="_status_1wywk_36",pp="_statusError_1wywk_37",hp="_rowAction_1wywk_50",mp="_item_1wywk_53",gp="_list_1wywk_60",_p="_active_1wywk_83",yp="_selected_1wywk_88",wp="_dropTarget_1wywk_92",bp="_rootItem_1wywk_99",vp="_dirName_1wywk_98",Sp="_chevronSlot_1wywk_104",xp="_chevron_1wywk_104",kp="_chevronOpen_1wywk_115",Ip="_icon_1wywk_118",Ep="_name_1wywk_125",Tp="_gitAdded_1wywk_140",jp="_gitModified_1wywk_145",Cp="_gitDeleted_1wywk_150",Rp="_hiddenEntry_1wywk_162",Pp="_statusRow_1wywk_171",Ap="_statusRowError_1wywk_182",Np="_draftInput_1wywk_185",$={container:cp,header:lp,uploadButton:dp,hiddenInput:up,status:fp,statusError:pp,rowAction:hp,item:mp,list:gp,active:_p,selected:yp,dropTarget:wp,rootItem:bp,dirName:vp,chevronSlot:Sp,chevron:xp,chevronOpen:kp,icon:Ip,name:Ep,gitAdded:Tp,gitModified:jp,gitDeleted:Cp,hiddenEntry:Rp,statusRow:Pp,statusRowError:Ap,draftInput:Np};function Dp({draftKind:e,indentStyle:t,onSubmit:n,onCancel:s}){const[r,o]=b.useState("");return c.jsxs("div",{className:$.item,style:t,onClick:i=>i.stopPropagation(),children:[c.jsx("span",{className:$.chevronSlot}),c.jsx("span",{className:$.icon,children:e==="directory"?c.jsx(De,{size:16}):c.jsx(Ct,{size:16})}),c.jsx("input",{className:$.draftInput,autoFocus:!0,spellCheck:!1,placeholder:e==="directory"?"New folder":"New file",value:r,onChange:i=>o(i.target.value),onKeyDown:i=>{if(i.key==="Enter"){i.preventDefault();const a=r.trim();a?n(a):s()}else i.key==="Escape"&&(i.preventDefault(),s())},onBlur:s})]})}function Mp({name:e,isDirectory:t,indentStyle:n,onSubmit:s,onCancel:r}){const[o,i]=b.useState(e),a=b.useRef(null);return b.useEffect(()=>{const l=a.current;if(!l)return;l.focus();const u=e.lastIndexOf("."),f=t||u<=0?e.length:u;l.setSelectionRange(0,f)},[e,t]),c.jsxs("div",{className:$.item,style:n,onClick:l=>l.stopPropagation(),children:[c.jsx("span",{className:$.chevronSlot}),c.jsx("span",{className:$.icon,children:t?c.jsx(De,{size:16}):c.jsx(Ct,{size:16})}),c.jsx("input",{ref:a,className:$.draftInput,spellCheck:!1,value:o,onChange:l=>i(l.target.value),onKeyDown:l=>{if(l.key==="Enter"){l.preventDefault();const u=o.trim();!u||u===e?r():s(u)}else l.key==="Escape"&&(l.preventDefault(),r())},onBlur:r})]})}const qp=14,$p={added:$.gitAdded,modified:$.gitModified,deleted:$.gitDeleted};function Op({row:e,active:t,selected:n,dropTarget:s,gitStatus:r,hidden:o,isRoot:i,onToggle:a,onOpenFile:l,onContextMenu:u,onSubmitDraft:f,onCancelDraft:h,onSubmitRename:m,onCancelRename:p,onDragStartRow:y,onDragEndRow:_}){const v={paddingLeft:8+e.depth*qp};if(e.kind==="loading")return c.jsx("div",{className:$.statusRow,style:v,children:"Loading…"});if(e.kind==="error")return c.jsx("div",{className:F($.statusRow,$.statusRowError),style:v,children:e.message??"failed to load"});if(e.kind==="draft")return c.jsx(Dp,{draftKind:e.draftKind,indentStyle:v,onSubmit:E=>f(e.parentPath,E),onCancel:h});if(e.kind==="rename")return c.jsx(Mp,{name:e.name,isDirectory:e.isDirectory,indentStyle:v,onSubmit:E=>m(e.path,E),onCancel:p});const I=e.kind==="directory";return c.jsxs("div",{className:F($.item,i&&$.rootItem,t&&$.active,n&&$.selected,s&&$.dropTarget,r&&$p[r],o&&$.hiddenEntry),style:v,title:e.path,draggable:!i,onDragStart:E=>y(e.path,I,E),onDragEnd:_,onClick:()=>I?a(e.path):l(e.path),onContextMenu:E=>{E.preventDefault(),E.stopPropagation(),u(e.path,I,E.clientX,E.clientY)},children:[c.jsx("span",{className:$.chevronSlot,children:I&&c.jsx(fn,{size:14,className:F($.chevron,e.expanded&&$.chevronOpen)})}),c.jsx("span",{className:$.icon,children:I?c.jsx(De,{size:16}):c.jsx(Ct,{size:16})}),c.jsx("span",{className:I?$.dirName:$.name,children:e.name}),c.jsx(Se,{className:$.rowAction,title:"Actions",onClick:E=>{E.stopPropagation();const C=E.currentTarget.getBoundingClientRect();u(e.path,I,C.left,C.bottom)},children:c.jsx(dn,{size:14})})]})}async function fs(e){var r;if((r=navigator.clipboard)!=null&&r.writeText)try{await navigator.clipboard.writeText(e);return}catch{}const t=document.activeElement,n=(t instanceof HTMLElement?t.closest('[role="dialog"], [role="menu"]'):null)??document.body,s=document.createElement("textarea");s.value=e,s.setAttribute("aria-hidden","true"),s.style.position="fixed",s.style.opacity="0",n.appendChild(s),s.focus(),s.select();try{const o=document.activeElement===s&&s.selectionStart===0&&s.selectionEnd===s.value.length;if(!document.execCommand("copy")||!o)throw new Error('execCommand("copy") did not copy the requested text')}finally{s.remove(),t instanceof HTMLElement&&t.focus()}}const zp={empty_path:"Nothing to delete.",not_found:"That item no longer exists."};async function Bp(e,t){const n=await e.connection.request("file_delete_request",{path:t});if(!n.ok){const s=n.error??"";throw new Error(zp[s]??s??"Failed to delete")}}function Lp(){const e=P(A=>A.fileMenu),t=P(A=>A.closeFileMenu),n=z(A=>A.client),s=ae(A=>A.startDraft),r=ae(A=>A.startRename),o=ae(A=>A.rootPath),i=j(A=>A.activeWorkspaceCwd),{saveToDisk:a}=xr(),l=Ve(),u=b.useRef(null),[f,h]=b.useState(!1);if(b.useEffect(()=>{h(e!==null)},[e]),!e)return null;const m=e.path.split("/").pop()||e.path;function p(A){h(A),A||t()}function y(){e&&(t(),In(e.path,i||"~"))}function _(){e&&(t(),br(e.path,i||"~"))}function v(){e&&(t(),wr(e.path,i||"~"))}async function I(){if(e){t();try{await fs(e.path)}catch{window.alert("Failed to copy to clipboard.")}}}async function E(){if(e){t();try{await fs(Xf(e.path,o)||"/")}catch{window.alert("Failed to copy to clipboard.")}}}async function C(){if(e){t();try{await a(e.path)}catch(A){window.alert(`Failed to download: ${A instanceof Error?A.message:String(A)}`)}}}async function L(){if(!e)return;const A=e.isDirectory?"folder (and everything inside it)":"file";if(!window.confirm(`Permanently delete this ${A}? "${m}" — this cannot be undone.`))return t();if(t(),!n){window.alert("Not connected — cannot delete remotely.");return}try{await Bp(n,e.path),await l.invalidateQueries({queryKey:["explorer"]}),j.getState().closeByPathPrefix(e.path)}catch(X){window.alert(`Failed to delete: ${X instanceof Error?X.message:String(X)}`)}}function Y(A){if(!e)return;const X=e.isDirectory?e.path:ye(e.path);t(),s(X,A)}function Z(){e&&(t(),r(e.path))}return c.jsxs(Rt,{open:f,onOpenChange:p,modal:!1,children:[c.jsx(Pt,{asChild:!0,children:c.jsx(Sn,{ref:u,x:e.x,y:e.y})}),c.jsx(Mt,{minWidth:140,children:e.background?c.jsxs(c.Fragment,{children:[c.jsxs(K,{onSelect:()=>Y("file"),children:[c.jsx(Xt,{size:13}),"New File"]}),c.jsxs(K,{onSelect:()=>Y("directory"),children:[c.jsx(St,{size:13}),"New Folder"]}),c.jsx(Pe,{}),c.jsxs(K,{onSelect:I,children:[c.jsx(ft,{size:13}),"Copy Current Directory Path"]}),c.jsxs(K,{onSelect:E,children:[c.jsx(ft,{size:13}),"Copy Current Directory Relative Path"]})]}):c.jsxs(c.Fragment,{children:[!e.isDirectory&&c.jsxs(c.Fragment,{children:[c.jsxs(K,{onSelect:y,children:[c.jsx(ro,{size:13}),"Open"]}),c.jsxs(K,{onSelect:_,children:[c.jsx(pn,{size:13}),"Open in MolViewer"]}),yr(e.path)&&c.jsxs(K,{onSelect:v,children:[c.jsx(oo,{size:13}),"Open as Text"]}),c.jsx(Pe,{})]}),e.isDirectory&&c.jsxs(c.Fragment,{children:[c.jsxs(K,{onSelect:()=>Y("file"),children:[c.jsx(Xt,{size:13}),"New File"]}),c.jsxs(K,{onSelect:()=>Y("directory"),children:[c.jsx(St,{size:13}),"New Folder"]}),c.jsx(Pe,{})]}),c.jsxs(K,{onSelect:I,children:[c.jsx(ft,{size:13}),"Copy Absolute Path"]}),c.jsxs(K,{onSelect:E,children:[c.jsx(ft,{size:13}),"Copy Relative Path"]}),c.jsx(Pe,{}),!e.isDirectory&&c.jsxs(c.Fragment,{children:[c.jsxs(K,{onSelect:C,children:[c.jsx(io,{size:13}),"Download"]}),c.jsx(Pe,{})]}),c.jsxs(K,{onSelect:Z,children:[c.jsx(vs,{size:13}),"Rename"]}),c.jsxs(K,{danger:!0,onSelect:L,children:[c.jsx(un,{size:13}),"Delete"]})]})})]})}const Fp={empty_path:"Choose a folder first.",invalid_name:'Invalid name — cannot be empty or contain "/".',exists:"An item with that name already exists here.",not_found:"That folder no longer exists.",not_a_directory:"That path is not a folder.",unreadable:"That folder is not readable."};class Wp extends Error{constructor(t,n){super(n),this.code=t,this.name="CreateEntryError"}}async function Er(e,t,n,s){const r=await e.connection.request("file_create_request",{path:t,name:n,kind:s});if(!r.ok){const o=r.error??"";throw new Wp(o,Fp[o]??o??"Failed to create")}return r.path??(t.endsWith("/")?`${t}${n}`:`${t}/${n}`)}const Hp=28,Je="application/x-pi-studio-path",Kt="Files";function Up(){const e=z(w=>w.client),t=ae(w=>w.rootPath),n=ae(w=>w.expanded),s=ae(w=>w.setRoot),r=ae(w=>w.toggle),o=ae(w=>w.draft),i=ae(w=>w.startDraft),a=ae(w=>w.cancelDraft),l=ae(w=>w.renaming),u=ae(w=>w.cancelRename),f=ae(w=>w.selected),h=ae(w=>w.setSelected),m=j(w=>w.activeWorkspaceCwd),p=j(w=>w.tabs.find(k=>k.id===w.activeTabId)),y=he(w=>w.changes),_=he(w=>w.ignored),{upload:v}=xr(),I=P(w=>w.openFileMenu),E=Ve(),[C,L]=b.useState(null),[Y,Z]=b.useState(null),A=b.useRef(null),X=b.useRef(null),ne=b.useRef(null),ie=b.useRef(null),Q=(p==null?void 0:p.kind)==="file"||(p==null?void 0:p.kind)==="molecule"?p.data.path:null,ce=f?f.isDirectory?f.path:ye(f.path):t,T=b.useRef(null);b.useEffect(()=>{if(!e)return;const w=m||"~";T.current!==w&&(T.current=w,Td(e,w).then(k=>s(k)))},[e,m,s]);const R=Uf(n);Gf(n);const fe=b.useMemo(()=>tp(t,n,R,o,l),[t,n,R,o,l]),Pr=b.useMemo(()=>op(t,y),[t,y]),Ar=b.useMemo(()=>ap(t,_),[t,_]),Tn=Vr({count:fe.length,getScrollElement:()=>X.current,estimateSize:()=>Hp,overscan:12,getItemKey:w=>{const k=fe[w];return k?Qf(k):w}});function $t(w){In(w,m||"~")}function Nr(w,k,B){B.dataTransfer.setData(Je,w),k||B.dataTransfer.setData(dt.path,w),B.dataTransfer.effectAllowed=k?"move":"copyMove",ne.current=w}function Dr(){ne.current=null}function Ot(){Z(null),ie.current&&(clearTimeout(ie.current.timer),ie.current=null)}function jn(w){var B;if(((B=ie.current)==null?void 0:B.path)===w.path||(ie.current&&clearTimeout(ie.current.timer),ie.current=null,w.kind!=="directory"||w.expanded))return;const k=window.setTimeout(()=>r(w.path),700);ie.current={path:w.path,timer:k}}async function Cn(w,k){if(!e)throw new Error("Not connected.");const B=await Zf(e,w,k),N=ye(B);await E.invalidateQueries({queryKey:Ne.explorer(ye(w))}),await E.invalidateQueries({queryKey:Ne.explorer(N)}),ae.getState().repathAfterMove(w,B,N);const U=j.getState().tabs.filter(pe=>{if(pe.kind!=="file"&&pe.kind!=="diff"&&pe.kind!=="molecule")return!1;const ut=pe.data.path;return ut===w||((ut==null?void 0:ut.startsWith(`${w}/`))??!1)}),me=U.some(pe=>(pe.kind==="file"||pe.kind==="molecule")&&pe.data.path===w),se=U.filter(pe=>pe.kind==="diff").length;return j.getState().closeByPathPrefix(w),me&&$t(B),{destination:B,closedDiffs:se}}async function Mr(w,k){const B=ls(w,k,t);if(!B||!e)return;const N=w.split("/").pop()??w;L({text:`Moving ${N}…`,error:!1});try{const{destination:U,closedDiffs:me}=await Cn(w,B.destination);L({text:us(`Moved to ${ye(U).split("/").pop()||"/"}`,me),error:!1})}catch(U){L({text:U instanceof Error?U.message:"Failed to move",error:!0})}}async function qr(w,k){const B=(o==null?void 0:o.kind)??"file";if(a(),!!e)try{const N=await Er(e,w,k,B);await E.invalidateQueries({queryKey:Ne.explorer(w)}),L({text:`Created ${N}`,error:!1}),B==="file"&&$t(N)}catch(N){L({text:N instanceof Error?N.message:"Failed to create",error:!0})}}async function $r(w,k){if(u(),!e)return;const B=kr(ye(w),k);L({text:`Renaming ${w.split("/").pop()}…`,error:!1});try{const{destination:N,closedDiffs:U}=await Cn(w,B);L({text:us(`Renamed to ${N.split("/").pop()}`,U),error:!1})}catch(N){L({text:N instanceof Error?N.message:"Failed to rename",error:!0})}}async function Rn(w,k){var me;if(!k.length||!w)return;const B=(me=R.get(w))==null?void 0:me.listing,N=new Set((B==null?void 0:B.entries.map(se=>se.name))??[]),U=k.filter(se=>N.has(se.name));if(U.length>0){const se=U.map(pe=>pe.name).join(", ");if(!window.confirm(`Overwrite ${U.length>1?"these files":"this file"}? ${se}`))return}L({text:`Uploading ${k.length} file${k.length>1?"s":""}…`,error:!1});try{for(const se of k)await v(w,se);L({text:`Uploaded ${k.length} file${k.length>1?"s":""}`,error:!1})}catch(se){L({text:`Upload failed: ${se instanceof Error?se.message:"unknown"}`,error:!0})}}function Pn(w,k){if(w.preventDefault(),w.dataTransfer.types.includes(Je)){const U=w.dataTransfer.getData(Je)||ne.current;Ot(),U&&Mr(U,k??{kind:"directory",path:t});return}if(Ot(),!w.dataTransfer.types.includes(Kt))return;const B=k?ds(k,t):t;if(!B)return;const N=Array.from(w.dataTransfer.files);N.length&&Rn(B,N)}function Or(w){const k=w.dataTransfer.types.includes(Je);!k&&!w.dataTransfer.types.includes(Kt)||(w.preventDefault(),w.dataTransfer.dropEffect=k?"move":"copy")}return e?c.jsxs("div",{className:$.container,onDragOver:Or,onDragLeave:w=>{w.currentTarget.contains(w.relatedTarget)||Ot()},onDrop:w=>Pn(w),children:[c.jsxs("div",{className:$.header,children:[c.jsx("button",{type:"button",className:$.uploadButton,onClick:()=>i(ce,"file"),disabled:!t,title:f?`New file in ${ce.split("/").pop()||"/"}`:"New file in workspace root",children:c.jsx(Xt,{size:14})}),c.jsx("button",{type:"button",className:$.uploadButton,onClick:()=>i(ce,"directory"),disabled:!t,title:f?`New folder in ${ce.split("/").pop()||"/"}`:"New folder in workspace root",children:c.jsx(St,{size:14})}),c.jsxs("button",{type:"button",className:$.uploadButton,onClick:()=>{var w;return(w=A.current)==null?void 0:w.click()},disabled:!t,title:"Upload files to the workspace root",children:[c.jsx(ao,{size:14}),c.jsx("span",{children:"Upload"})]}),c.jsx("input",{ref:A,type:"file",multiple:!0,className:$.hiddenInput,onChange:w=>{Rn(t,Array.from(w.target.files??[])),w.target.value=""}})]}),C&&c.jsx("div",{className:C.error?$.statusError:$.status,children:C.text}),c.jsxs("div",{className:$.list,ref:X,onContextMenu:w=>{w.preventDefault(),I(t,!0,w.clientX,w.clientY,!0)},children:[fe.length===0&&c.jsx(Ae,{children:"No files loaded"}),c.jsx("div",{style:{position:"relative",height:Tn.getTotalSize()},children:Tn.getVirtualItems().map(w=>{const k=fe[w.index];if(!k)return null;const B=k.path===t&&k.kind==="directory";return c.jsx("div",{"data-index":w.index,style:{position:"absolute",top:0,left:0,width:"100%",height:w.size,transform:`translateY(${w.start}px)`},onDragEnter:N=>{if(N.dataTransfer.types.includes(Je)){const me=ne.current;if(!me)return;const se=ls(me,k,t);Z(se?k.path:null),jn(k);return}if(!N.dataTransfer.types.includes(Kt))return;const U=ds(k,t);Z(U?k.path:null),jn(k)},onDrop:N=>{N.stopPropagation(),Pn(N,k)},children:c.jsx(Op,{row:k,active:(k.kind==="file"||k.kind==="directory")&&k.path===Q,selected:(k.kind==="file"||k.kind==="directory")&&k.path===(f==null?void 0:f.path),gitStatus:!B&&(k.kind==="file"||k.kind==="directory")?Pr(k.path):void 0,hidden:!B&&(k.kind==="file"||k.kind==="directory")&&(k.name.startsWith(".")||Ar(k.path)),isRoot:B,onToggle:N=>{h({path:N,isDirectory:!0}),r(N)},onOpenFile:N=>{h({path:N,isDirectory:!1}),$t(N)},onContextMenu:(N,U,me,se)=>I(N,U,me,se,B),onSubmitDraft:(N,U)=>void qr(N,U),onCancelDraft:a,onSubmitRename:(N,U)=>void $r(N,U),onCancelRename:u,onDragStartRow:Nr,onDragEndRow:Dr,dropTarget:(k.kind==="file"||k.kind==="directory")&&k.path===Y})},w.key)})})]}),c.jsx(Lp,{})]}):c.jsx(Ae,{children:"Connect to browse files"})}const Vp="_list_1n3q6_1",Kp="_summary_1n3q6_4",Gp="_item_1n3q6_11",Yp="_badge_1n3q6_23",Xp="_added_1n3q6_30",Jp="_modified_1n3q6_34",Zp="_deleted_1n3q6_38",Qp="_name_1n3q6_42",$e={list:Vp,summary:Kp,item:Gp,badge:Yp,added:Xp,modified:Jp,deleted:Zp,name:Qp},eh={added:"A",modified:"M",deleted:"D"};function th(){const t=j(o=>o.activeWorkspaceCwd)||"~",n=he(o=>o.changes),s=j(o=>o.open);function r(o,i){s({id:te.diff(o,i),kind:"diff",label:o.split("/").pop()||o,closable:!0,data:{path:o,staged:i},workspaceCwd:t})}return n.length===0?c.jsx(Ae,{children:"No changes detected"}):c.jsxs("div",{className:$e.list,children:[c.jsxs("div",{className:$e.summary,children:[n.length," changed file",n.length===1?"":"s"]}),n.map((o,i)=>c.jsxs("div",{className:$e.item,onClick:()=>r(o.path,o.staged),children:[c.jsx("span",{className:F($e.badge,$e[o.status]),children:eh[o.status]}),c.jsx("span",{className:$e.name,children:o.path})]},`${o.path}-${o.staged}-${i}`))]})}const nh="_tabBar_1tvri_1",sh="_tabBtn_1tvri_7",rh="_active_1tvri_23",oh="_refreshBtn_1tvri_27",ih="_content_1tvri_31",Ce={tabBar:nh,tabBtn:sh,active:rh,refreshBtn:oh,content:ih};function ah(){const e=P(a=>a.rightSidebarTab),t=P(a=>a.setRightSidebarTab),s=j(a=>a.activeWorkspaceCwd)||"~",r=z(a=>a.client),o=Ve();function i(){o.invalidateQueries({queryKey:["explorer"]}),r&&s&&r.connection.request("checkout_refresh_request",{cwd:s}).catch(()=>{})}return c.jsxs(lr,{children:[c.jsxs("div",{className:Ce.tabBar,children:[c.jsxs("button",{type:"button",className:F(Ce.tabBtn,e==="files"&&Ce.active),onClick:()=>t("files"),children:[c.jsx(De,{size:13}),"Files"]}),c.jsxs("button",{type:"button",className:F(Ce.tabBtn,e==="changes"&&Ce.active),onClick:()=>t("changes"),children:[c.jsx(xs,{size:13}),"Changes"]}),c.jsx(le,{size:"xs",variant:"ghost",iconOnly:!0,title:"Refresh",className:Ce.refreshBtn,onClick:i,children:c.jsx(co,{size:13})})]}),c.jsx("div",{className:Ce.content,children:e==="files"?c.jsx(Up,{}):c.jsx(th,{})})]})}const Tr=Ee()(e=>({bySession:{},setStats(t,n){e(s=>({bySession:{...s.bySession,[t]:{...s.bySession[t],...n}}}))},clear(t){e(n=>{const{[t]:s,...r}=n.bySession;return{bySession:r}})}})),ch=12e3;function lh(e,t){return e==="running"&&t!=="running"}function ps(e,t){var s,r,o,i,a,l;const n={};((s=t.contextUsage)==null?void 0:s.tokens)!=null&&(n.contextTokens=t.contextUsage.tokens),((r=t.contextUsage)==null?void 0:r.contextWindow)!==void 0&&(n.contextWindow=t.contextUsage.contextWindow),((o=t.contextUsage)==null?void 0:o.percent)!=null&&(n.contextPercent=t.contextUsage.percent),((i=t.tokens)==null?void 0:i.total)!==void 0&&(n.totalTokens=t.tokens.total),((a=t.tokens)==null?void 0:a.input)!==void 0&&(n.inputTokens=t.tokens.input),((l=t.tokens)==null?void 0:l.output)!==void 0&&(n.outputTokens=t.tokens.output),t.cost!==void 0&&(n.cost=t.cost),t.model!==void 0&&(n.model=t.model,M.getState().setModel(e,t.model)),Tr.getState().setStats(e,n)}function dh(e){const t=z(a=>a.client),n=z(a=>a.status),s=M(a=>{var l;return e?((l=a.sessions[e])==null?void 0:l.agentId)??null:null}),r=M(a=>{var l;return e?(l=a.sessions[e])==null?void 0:l.status:void 0}),o=b.useRef(!1),i=b.useRef(void 0);b.useEffect(()=>{if(n!=="open"||!t||!e||!s)return;let a=!1;const l=async()=>{if(!o.current){o.current=!0;try{const f=await t.agent(s).sessionStats();a||ps(e,f)}catch{}finally{o.current=!1}}};l();const u=setInterval(()=>void l(),ch);return()=>{a=!0,clearInterval(u)}},[n,t,e,s]),b.useEffect(()=>{const a=i.current;i.current=r,lh(a,r)&&(n!=="open"||!t||!e||!s||(o.current=!1,t.agent(s).sessionStats().then(l=>ps(e,l)).catch(()=>{})))},[r,n,t,e,s])}function uh(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="checkout_status_update"&&"cwd"in e&&typeof e.cwd=="string"&&"projection"in e&&typeof e.projection=="object"&&e.projection!==null}function fh(e){const t=z(o=>o.client),n=he(o=>o.applyProjection),s=he(o=>o.setSubscribedCwd),r=b.useRef(t);return r.current=t,b.useEffect(()=>{if(!t||!e)return;let o=!1;t.connection.request("checkout_status_subscribe",{cwd:e}).catch(()=>{}),s(e);const i=t.connection.onSessionMessage(a=>{if(o)return;const l=a;uh(l)&&l.cwd===e&&n(l.projection)});return t.connection.request("checkout_refresh_request",{cwd:e}).catch(()=>{}),()=>{o=!0,i(),t.connection.request("checkout_status_unsubscribe",{cwd:e}).catch(()=>{}),s(null)}},[t,e,n,s]),{refresh(){const o=r.current;!o||!e||o.connection.request("checkout_refresh_request",{cwd:e}).catch(()=>{})}}}const En="--";function Ze(e){return e===void 0?En:e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function ph(e){if(e==null)return En;const t=e<=1?e*100:e;return`${Math.round(t)}%`}function hh(e){if(e===void 0)return En;const t=e<1?4:2;return`$${e.toFixed(t)}`}function mh(e,t){return t?e===t?"~":e.startsWith(`${t}/`)?`~${e.slice(t.length)}`:e:e}function gh(e,t){const n=[];return e>0&&n.push(`↑${e}`),t>0&&n.push(`↓${t}`),n.join(" ")}const _h="_statusBar_t655h_1",yh="_segmentGroup_t655h_16",wh="_chevron_t655h_20",bh="_segment_t655h_16",vh="_icon_t655h_33",Sh="_text_t655h_39",Oe={statusBar:_h,segmentGroup:yh,chevron:wh,segment:bh,icon:vh,text:Sh};function xh(){const e=M(p=>p.activeSessionId),t=M(p=>e?p.sessions[e]:void 0),n=lt(),s=j(p=>p.activeWorkspaceCwd);fh(s||"");const r=he(p=>p.available),o=he(p=>p.branch),i=he(p=>p.ahead),a=he(p=>p.behind),l=he(p=>p.detached),u=he(p=>p.conflictCount),f=he(p=>p.changes.length),h=Tr(p=>e?p.bySession[e]:void 0);dh(e);const m=[];if(t){const p=mh(t.cwd,n);m.push({key:"cwd",icon:c.jsx(De,{size:13}),text:p,title:t.cwd})}if(r){const p=gh(i,a),y=[l?"(detached)":o??"?"];p&&y.push(p),f>0&&y.push(`●${f}`),u>0&&y.push(`⚠${u}`),m.push({key:"branch",icon:c.jsx(lo,{size:13}),text:y.join(" ")})}if(t){const p=`${ph(h==null?void 0:h.contextPercent)} (${Ze(h==null?void 0:h.contextTokens)}/${Ze(h==null?void 0:h.contextWindow)})`;m.push({key:"context",icon:c.jsx(uo,{size:13}),text:p}),m.push({key:"tokens",icon:c.jsx(fo,{size:13}),text:Ze(h==null?void 0:h.totalTokens),title:`in ${Ze(h==null?void 0:h.inputTokens)} / out ${Ze(h==null?void 0:h.outputTokens)}`}),m.push({key:"cost",icon:c.jsx(po,{size:13}),text:hh(h==null?void 0:h.cost)})}return c.jsx("div",{className:Oe.statusBar,children:m.map((p,y)=>c.jsxs("span",{className:Oe.segmentGroup,children:[y>0&&c.jsx(fn,{size:12,className:Oe.chevron,"aria-hidden":"true"}),c.jsxs("span",{className:Oe.segment,title:p.title,children:[c.jsx("span",{className:Oe.icon,children:p.icon}),c.jsx("span",{className:Oe.text,children:p.text})]})]},p.key))})}const kh="_wrapper_14joh_3",Ih="_box_14joh_18",Eh="_checkmark_14joh_38",Th="_nativeInput_14joh_43",yt={wrapper:kh,box:Ih,checkmark:Eh,nativeInput:Th};b.forwardRef(function({label:t,checked:n=!1,disabled:s,className:r,onChange:o,...i},a){return c.jsxs("label",{className:yt.wrapper,"data-disabled":s||void 0,children:[c.jsx("input",{ref:a,type:"checkbox",className:yt.nativeInput,checked:n,disabled:s,onChange:o,...i}),c.jsx("span",{className:yt.box,"data-checked":n,"aria-hidden":!0,children:n&&c.jsx(ho,{size:12,className:yt.checkmark})}),t&&c.jsx("span",{children:t})]})});const jh="_select_dl3mw_3",Ch={select:jh};b.forwardRef(function({options:t,placeholder:n,className:s,...r},o){return c.jsxs("select",{ref:o,className:F(Ch.select,s),...r,children:[n&&c.jsx("option",{value:"",disabled:!0,children:n}),t.map(i=>c.jsx("option",{value:i.value,children:i.label},i.value))]})});const Rh="_overlay_1k4ng_1",Ph="_contentWrapper_1k4ng_7",Ah="_dialog_1k4ng_16",Nh="_header_1k4ng_28",Dh="_title_1k4ng_36",Mh="_body_1k4ng_43",qh="_footer_1k4ng_49",$h="_bare_1k4ng_58",Oh="_bareBody_1k4ng_64",zh="_bareCloseBtn_1k4ng_68",Bh="_visuallyHidden_1k4ng_73",_e={overlay:Rh,contentWrapper:Ph,dialog:Ah,header:Nh,title:Dh,body:Mh,footer:qh,bare:$h,bareBody:Oh,bareCloseBtn:zh,visuallyHidden:Bh},Lh=Jt;function Fh({open:e,onOpenChange:t,title:n,children:s,footer:r,width:o,className:i,bare:a=!1,onInteractOutside:l,onEscapeKeyDown:u}){return c.jsx(bo,{open:e,onOpenChange:t,children:c.jsxs(vo,{children:[c.jsx(So,{className:_e.overlay}),c.jsx("div",{className:_e.contentWrapper,children:c.jsxs(xo,{className:F(_e.dialog,a&&_e.bare,i),style:o!==void 0?{width:o}:void 0,onInteractOutside:l,onEscapeKeyDown:u,children:[a?c.jsx(An,{className:_e.visuallyHidden,children:n}):c.jsxs("div",{className:_e.header,children:[c.jsx(An,{className:_e.title,children:n}),c.jsx(Jt,{asChild:!0,children:c.jsx(Se,{size:"sm","aria-label":"Close",children:c.jsx(Yt,{size:16})})})]}),c.jsx("div",{className:F(_e.body,a&&_e.bareBody),children:s}),a&&c.jsx(Jt,{asChild:!0,children:c.jsx(Se,{size:"sm","aria-label":"Close",className:_e.bareCloseBtn,style:{background:"var(--pi-color-surface1)",border:"1px solid var(--pi-color-border)",borderRadius:"50%"},children:c.jsx(Yt,{size:16})})}),r&&c.jsx("div",{className:_e.footer,children:r})]})})]})})}const Wh="_handle_1j18v_1",Hh={handle:Wh};function hs({side:e,onResize:t,className:n}){const s=b.useRef(0),r=b.useRef(null),o=b.useCallback(l=>{const u=l.clientX-s.current;s.current=l.clientX,t(e==="left"?u:-u)},[t,e]),i=b.useCallback(l=>{window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",i),window.removeEventListener("pointercancel",i),document.body.style.cursor="",document.body.style.userSelect="";const u=r.current;u!=null&&u.hasPointerCapture(l.pointerId)&&u.releasePointerCapture(l.pointerId)},[o]);function a(l){l.preventDefault(),s.current=l.clientX,l.currentTarget.setPointerCapture(l.pointerId),document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("pointermove",o),window.addEventListener("pointerup",i),window.addEventListener("pointercancel",i)}return c.jsx("div",{ref:r,className:F(Hh.handle,n),onPointerDown:a,role:"separator","aria-orientation":"vertical"})}function Uh(e,t){const{order:n,sessions:s}=M.getState(),o=xn(n,s,t).find(i=>i.cwd===e);if(o!=null&&o.sessions[0]){const i=o.sessions[0].id;M.getState().activate(i);const a=M.getState().sessions[i];j.getState().open({id:te.chat(i),kind:"chat",label:(a==null?void 0:a.title)??"New chat",closable:!0,data:{sessionId:i},workspaceCwd:e})}else ct(e);P.getState().setCwd(e)}const Vh="_pathRow_1mu84_1",Kh="_pathInput_1mu84_9",Gh="_createRow_1mu84_13",Yh="_createInput_1mu84_21",Xh="_createError_1mu84_25",Jh="_list_1mu84_30",Zh="_item_1mu84_37",Qh="_name_1mu84_49",xe={pathRow:Vh,pathInput:Kh,createRow:Gh,createInput:Yh,createError:Xh,list:Jh,item:Zh,name:Qh};function em(){const e=P(R=>R.cwdPickerOpen),t=P(R=>R.closeCwdPicker),n=j(R=>R.activeWorkspaceCwd),s=P(R=>R.cwd),r=z(R=>R.client),o=lt(),[i,a]=b.useState("/"),[l,u]=b.useState("/"),[f,h]=b.useState(!1),[m,p]=b.useState(""),[y,_]=b.useState(null),[v,I]=b.useState(!1),E=Ve();b.useEffect(()=>{if(!e)return;const R=Me(n||s||"~",o);a(R),u(R),X()},[e,r,n,s]);const{data:C,isLoading:L,isError:Y,error:Z}=Hf(i,e&&!!r),A=((C==null?void 0:C.entries)??[]).filter(R=>R.kind==="directory");function X(){h(!1),p(""),_(null)}function ne(R){const fe=R.length>1?R.replace(/\/+$/,"")||"/":R;a(fe),u(fe),X()}function ie(){ne(i.split("/").slice(0,-1).join("/")||"/")}function Q(){ne(l.trim())}async function ce(){const R=m.trim();if(!(!R||!r||v)){I(!0),_(null);try{const fe=await Er(r,i,R,"directory");await E.invalidateQueries({queryKey:Ne.explorer(i)}),ne(fe)}catch(fe){_(fe instanceof Error?fe.message:"Failed to create folder")}finally{I(!1)}}}function T(){Uh(i,o),t()}return c.jsxs(Fh,{open:e,onOpenChange:R=>!R&&t(),title:"Open Workspace",footer:c.jsxs(c.Fragment,{children:[c.jsx(Lh,{asChild:!0,children:c.jsx(le,{size:"sm",variant:"secondary",children:"Cancel"})}),c.jsx(le,{size:"sm",onClick:T,children:"Open this folder"})]}),children:[c.jsxs("div",{className:xe.pathRow,children:[c.jsx(le,{size:"xs",variant:"ghost",iconOnly:!0,title:"Up",onClick:ie,children:c.jsx(mo,{size:13})}),c.jsx(kt,{className:xe.pathInput,value:l,onChange:R=>u(R.target.value),onKeyDown:R=>{R.key==="Enter"&&(R.preventDefault(),Q())}}),c.jsx(le,{size:"xs",onClick:Q,children:"Go"}),c.jsx(le,{size:"xs",variant:"ghost",iconOnly:!0,title:"New folder",disabled:!r||Y||f,onClick:()=>{h(!0),p(""),_(null)},children:c.jsx(St,{size:13})})]}),f&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:xe.createRow,children:[c.jsx(De,{size:14}),c.jsx(kt,{className:xe.createInput,autoFocus:!0,placeholder:"New folder name",value:m,onChange:R=>p(R.target.value),onKeyDown:R=>{R.key==="Enter"?(R.preventDefault(),ce()):R.key==="Escape"&&(R.preventDefault(),R.stopPropagation(),X())}}),c.jsx(le,{size:"xs",loading:v,disabled:!m.trim()||v,onClick:()=>void ce(),children:"Create"}),c.jsx(le,{size:"xs",variant:"secondary",onClick:X,children:"Cancel"})]}),y&&c.jsx("div",{className:xe.createError,children:y})]}),c.jsx("div",{className:xe.list,children:L?c.jsx(Ae,{children:"Loading..."}):Y?c.jsxs(Ae,{children:["Error: ",Z instanceof Error?Z.message:"unknown error"]}):A.length===0?c.jsx(Ae,{children:"No subdirectories"}):A.map(R=>c.jsxs("div",{className:xe.item,onClick:()=>ne(i==="/"?`/${R.name}`:`${i}/${R.name}`),children:[c.jsx(De,{size:14}),c.jsx("span",{className:xe.name,children:R.name})]},R.name))})]})}const tm="_shell_570m8_1",nm="_main_570m8_7",sm="_sidebarLeft_570m8_13",rm="_leftHandle_570m8_25",om="_center_570m8_28",im="_sidebarRight_570m8_35",am="_rightHandle_570m8_43",Re={shell:tm,main:nm,sidebarLeft:sm,leftHandle:rm,center:om,sidebarRight:im,rightHandle:am};function cm(){const e=P(i=>i.leftSidebarCollapsed),t=P(i=>i.rightSidebarCollapsed),n=P(i=>i.leftSidebarWidth),s=P(i=>i.rightSidebarWidth),r=P(i=>i.resizeLeftSidebar),o=P(i=>i.resizeRightSidebar);return c.jsxs("div",{className:Re.shell,children:[c.jsx(Ll,{}),c.jsxs("div",{className:Re.main,children:[!e&&c.jsxs("aside",{className:Re.sidebarLeft,style:{width:n},children:[c.jsx(ju,{}),c.jsx(hs,{side:"left",className:Re.leftHandle,onResize:r})]}),c.jsx("div",{className:Re.center,children:c.jsx(Lf,{})}),!t&&c.jsxs("aside",{className:Re.sidebarRight,style:{width:s},children:[c.jsx(hs,{side:"right",className:Re.rightHandle,onResize:o}),c.jsx(ah,{})]})]}),c.jsx(xh,{}),c.jsx(em,{})]})}function lm(){const e=b.useRef(!1);b.useEffect(()=>{if(e.current)return;if(e.current=!0,window.location.hash.includes("offer=")){const l=window.location.href;P.getState().setHost(l),z.getState().connect({url:l});return}const t=new URLSearchParams(window.location.search),n=t.get("host"),s=t.get("pair"),r=t.get("password"),o=t.get("cwd"),i=t.get("connect")==="1",a=P.getState();if(s?a.setHost(s):n&&a.setHost(n),r&&a.setPassword(r),o&&a.setCwd(o),s)z.getState().connect({url:s});else if(i){const{host:l,password:u}=P.getState();z.getState().connect({url:l,password:u||void 0})}},[])}const jr="pi-studio-pane-layout",dm=250;function um(){const e=new Map,t={workspaces:e,activeWorkspaceCwd:null},n=mn.get(jr);if(!n)return t;let s;try{s=JSON.parse(n)}catch{return t}if(typeof s!="object"||s===null)return t;const r=s;if(r.version!==rr||typeof r.workspaces!="object"||r.workspaces===null)return t;for(const[i,a]of Object.entries(r.workspaces)){const l=fm(a);l&&e.set(i,l)}const o=r.activeWorkspaceCwd;return{workspaces:e,activeWorkspaceCwd:typeof o=="string"&&e.has(o)?o:null}}function fm(e){if(typeof e!="object"||e===null)return null;const t=e,n=fd(t.tree);if(!n)return null;const s=new Set(ue(n)),r={};for(const[a,l]of ms(t.placement))s.has(l)&&(r[a]=l);const o={};for(const[a,l]of ms(t.activeByPane))s.has(a)&&(o[a]=l);const i=t.activePaneId;return{tree:n,placement:r,activeByPane:o,activePaneId:typeof i=="string"&&s.has(i)?i:null}}function ms(e){return typeof e!="object"||e===null?[]:Object.entries(e).filter(t=>typeof t[1]=="string")}let be=null;function gs(){be==null||be();const e=setTimeout(()=>{be=null,Cr()},dm);be=()=>clearTimeout(e)}function pm(){be==null||be(),be=null,Cr()}function Cr(){const e=new Map;for(const s of j.getState().tabs){const r=It(s);r!==null&&e.set(s.id,r)}const t={};for(const[s,r]of Object.entries(q.getState().layouts)){const o={...r.pendingPlacement};for(const[a,l]of Object.entries(r.placement)){const u=e.get(a);u!==void 0&&(o[u]=l)}const i={...r.pendingActive};for(const[a,l]of Object.entries(r.activeByPane)){const u=e.get(l);u!==void 0&&(i[a]=u)}t[s]={tree:r.tree,placement:o,activeByPane:i,activePaneId:r.focusedPaneId}}const n={version:rr,workspaces:t,activeWorkspaceCwd:j.getState().activeWorkspaceCwd??void 0};mn.set(jr,JSON.stringify(n))}function hm(){let e=_s(j.getState().tabs);const t=()=>{const o=_s(j.getState().tabs);o!==e&&(e=o,gs())},n=q.subscribe(gs),s=j.subscribe(t),r=M.subscribe(t);return()=>{n(),s(),r()}}function _s(e){return e.map(t=>`${t.id}\0${It(t)??""}`).join("")}const mm=/^diff:(staged|worktree):(.+)$/;function gm(e){for(const[t,n]of e)for(const s of Object.keys(n.placement)){const r=_m(s,t);r!==null&&j.getState().open(r)}}function _m(e,t){const n=ys(e,"file:");if(n!==null)return{id:te.file(n),kind:"file",...Gt(n),workspaceCwd:t,data:{path:n}};const s=ys(e,"molecule:");if(s!==null)return{id:te.molecule(s),kind:"molecule",...Gt(s),workspaceCwd:t,data:{path:s}};const r=mm.exec(e);if(r!==null){const o=r[2],i=r[1]==="staged";return{id:te.diff(o,i),kind:"diff",...Gt(o),workspaceCwd:t,data:{path:o,staged:i}}}return null}function ys(e,t){if(!e.startsWith(t))return null;const n=e.slice(t.length);return n===""?null:n}function Gt(e){return{label:e.split("/").pop()||e,closable:!0}}function ym(e){if(e===null)return()=>{};if(bs())return ws(e),()=>{};const t=q.subscribe(()=>{bs()&&(t(),ws(e))});return t}function ws(e){if(q.getState().layouts[e]===void 0||!j.getState().tabs.some(n=>n.workspaceCwd===e))return!1;const t=j.getState().activeWorkspaceCwd!==e;return t&&j.getState().switchWorkspace(e),wm(e),t}function wm(e){const t=j.getState().tabs.filter(s=>s.workspaceCwd===e&&s.kind==="chat");if(t.length===0)return;const n=M.getState().activeSessionId;t.some(s=>s.data.sessionId===n)||M.getState().activate(t[0].data.sessionId)}function bs(){const{sessions:e,terminals:t}=q.getState().hydrationSources;return e&&t}const bm={workspaces:new Map,activeWorkspaceCwd:null};function vm(){const e=z(s=>s.status),t=b.useRef(bm),n=b.useRef(!1);b.useEffect(()=>{const s=um();t.current=s,q.getState().installPersistedLayouts(s.workspaces,s.activeWorkspaceCwd);const r=hm(),o=()=>pm();return window.addEventListener("pagehide",o),()=>{window.removeEventListener("pagehide",o),r()}},[]),b.useEffect(()=>{if(e!=="open"||n.current)return;n.current=!0;const s=t.current;gm(s.workspaces),ym(s.activeWorkspaceCwd)},[e])}function Sm(e){return typeof e=="object"&&e!==null&&"kind"in e}function xm(e){const t=[];for(const n of e)Sm(n)&&(n.kind==="other"?n.event&&t.push({event:n.event,timestamp:n.timestamp}):(n.events??[]).forEach((s,r)=>{t.push({event:s,timestamp:r===0?n.timestamp:void 0})}));return t}async function km(e){const t=[];let n=null;for(;;){const s=await e(n);if(s.items.length===0||(t.push(...xm(s.items)),!s.hasNewer))return t;const r=s.endCursor;if(typeof r!="string"||r===n)return t;n=r}}function Im(e){return typeof e.model=="string"}function Em(){const e=z(s=>s.client),t=z(s=>s.status),n=b.useRef(!1);b.useEffect(()=>{t!=="open"||!e||n.current||(n.current=!0,Tm(e))},[t,e]),b.useEffect(()=>{if(!(t!=="open"||!e))return e.onAgentUpdate(s=>{if(Im(s)){const r=typeof s.modelProvider=="string"?s.modelProvider:void 0;M.getState().setModelByAgentId(s.agentId,s.model,r)}})},[t,e])}async function Tm(e){try{await jm(e)}finally{q.getState().markHydrationSource("sessions")}}async function jm(e){var y;let t=[];try{t=(await e.connection.request("list_agents_request",{all:!1})).agents??[]}catch{t=[]}t.sort((_,v)=>(v.lastActivity??0)-(_.lastActivity??0));const n=M.getState();for(const _ of t){if(n.findByAgentId(_.agentId))continue;let v=_n;try{const E=await km(C=>e.agent(_.agentId).timeline.fetch({direction:"after",cursor:C??void 0,limit:200}));v=ed(E)}catch{}const I=v.rows.length===0;n.hydrate({id:`s-${_.agentId.slice(0,12)}`,agentId:_.agentId,title:_.title||(I?"New chat":(y=_.cwd)==null?void 0:y.split("/").pop())||"Restored",status:_.status??"idle",cwd:_.cwd||"~",timeline:v,userMessageCount:v.rows.filter(E=>E.kind==="user").length,model:_.model,modelProvider:_.modelProvider})}const{order:s,sessions:r}=M.getState(),o=s.length>0?r[s[0]??""]:void 0;if(!o)return;const i=await Dt(e).catch(()=>null),a=Me(o.cwd||"~",i),l=q.getState().pendingActiveWorkspace??a,u=xn(s,r,i);P.getState().setCollapsedWorkspaces(bu(u,l));const f=s.find(_=>{var v;return Me(((v=r[_])==null?void 0:v.cwd)||"~",i)===l});M.getState().activate(f??o.id),P.getState().setCwd(l);const h=Cm(),m=new Set;for(const _ of s){const v=r[_];!(v!=null&&v.agentId)||!h.has(`agent:${v.agentId}`)||(Et(v,i),m.add(_))}const p=q.getState().layouts[a]!==void 0;!m.has(o.id)&&!p&&Et(o,i)}function Cm(){const e=new Set;for(const t of Object.values(q.getState().layouts))for(const n of Object.keys(t.pendingPlacement))n.startsWith("agent:")&&e.add(n);return e}async function Rm(e){try{let t=[];try{t=(await e.connection.request("list_terminals_request",{})).terminals??[]}catch{t=[]}if(t.length===0)return;const n=q.getState().layouts,s=Pm(),r=await Dt(e).catch(()=>null),o=j.getState().open;for(const i of t){if(i.closed)continue;const a=Me(i.cwd||"~",r);n[a]!==void 0&&!s.has(`terminal:${i.slot}`)||o({id:te.terminal(i.slot),kind:"terminal",label:i.name,closable:!0,data:{slot:i.slot,cwd:a},workspaceCwd:a})}}finally{q.getState().markHydrationSource("terminals")}}function Pm(){const e=new Set;for(const t of Object.values(q.getState().layouts))for(const n of Object.keys(t.pendingPlacement))n.startsWith("terminal:")&&e.add(n);return e}function Am(){const e=z(s=>s.client),t=z(s=>s.status),n=b.useRef(!1);b.useEffect(()=>{t!=="open"||!e||n.current||(n.current=!0,Rm(e))},[t,e])}function Nm(){b.useEffect(()=>{function e(t){const n=P.getState();if(t.key==="Escape"){n.closeCwdPicker(),n.closeSessionMenu();return}const s=t.ctrlKey||t.metaKey;if(s&&t.key.toLowerCase()==="t"){t.preventDefault(),cr(j.getState().activeWorkspaceCwd||"~");return}if(s&&t.key.toLowerCase()==="w"){const{activeTabId:r,tabs:o}=j.getState();if(!r)return;const i=o.find(a=>a.id===r);(i==null?void 0:i.closable)!==!1&&(t.preventDefault(),sn(r))}}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[])}function Dm(){return lm(),vm(),Em(),Am(),Nm(),null}function Mm(){return c.jsxs(xi,{children:[c.jsx(Dm,{}),c.jsx(cm,{})]})}function qm(e){return e.managerActive?e.status==="closed"?"reconnect-now":e.status==="open"?e.probeInFlight?"none":"probe":"none":"none"}const $m=5e3;function Om(){let e=!1;function t(){const{status:s,reconnection:r,daemon:o}=z.getState(),i=qm({status:s,managerActive:r!==null,probeInFlight:e});if(i==="reconnect-now"){r==null||r.reconnectNow();return}if(i==="probe"){if(!o)return;e=!0,o.ping($m).catch(()=>{z.getState().daemon===o&&o.close(4e3,"stale-connection-probe")}).finally(()=>{e=!1})}}function n(){document.visibilityState==="visible"&&t()}return document.addEventListener("visibilitychange",n),window.addEventListener("online",t),()=>{document.removeEventListener("visibilitychange",n),window.removeEventListener("online",t)}}const Rr=document.getElementById("root");if(!Rr)throw new Error("Missing #root element");Lr.createRoot(Rr).render(c.jsx(b.StrictMode,{children:c.jsx(Mm,{})}));Om();export{od as A,le as B,Wp as C,Fh as D,Ae as E,kt as F,Se as G,fs as H,re as I,Qm as L,Mt as M,lr as P,Ns as S,Vm as T,Zm as V,Ne as a,eg as b,ng as c,ye as d,Km as e,Xm as f,xt as g,j as h,_d as i,q as j,lt as k,xr as l,Er as m,Me as n,br as o,Bp as p,Gm as q,tg as r,Ym as s,as as t,z as u,Jm as v,In as w,pd as x,Fl as y,M as z};
@@ -1,2 +1,2 @@
1
- import{_ as a,l as s,F as n,e as i}from"./mermaid.core-BEntOW_N.js";import{p}from"./cynefin-VYW2F7L2-kO1G0JNx.js";import"./vendor-DVp0ZLQo.js";import"./vendor-react-DQUAl2K8.js";var g={parse:a(async r=>{const e=await p("info",r);s.debug(e)},"parse")},v={version:"11.16.1"},d=a(()=>v.version,"getVersion"),m={getVersion:d},c=a((r,e,o)=>{s.debug(`rendering info diagram
1
+ import{_ as a,l as s,F as n,e as i}from"./mermaid.core-Ef9xxvhx.js";import{p}from"./cynefin-VYW2F7L2-DGTqBSQV.js";import"./vendor-D8P8plmv.js";import"./vendor-react-DQUAl2K8.js";var g={parse:a(async r=>{const e=await p("info",r);s.debug(e)},"parse")},v={version:"11.16.1"},d=a(()=>v.version,"getVersion"),m={getVersion:d},c=a((r,e,o)=>{s.debug(`rendering info diagram
2
2
  `+r);const t=n(e);i(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${o}`)},"draw"),l={draw:c},w={parser:g,db:m,renderer:l};export{w as diagram};
@@ -1,4 +1,4 @@
1
- import{_ as o,c as ot,a1 as ut,F as dt,au as yt,q as ft,k as pt,o as it,a as gt,b as kt,g as mt,s as wt,p as _t,e as bt}from"./mermaid.core-BEntOW_N.js";import"./vendor-DVp0ZLQo.js";import"./vendor-react-DQUAl2K8.js";var tt=(function(){var e=o(function(M,t,s,i){for(s=s||{},i=M.length;i--;s[M[i]]=t);return s},"o"),h=[1,4],r=[1,14],a=[1,12],l=[1,13],y=[6,7,8],f=[1,20],d=[1,18],m=[1,19],c=[6,7,11],k=[1,6,13,14],g=[1,23],_=[1,24],x=[1,6,7,11,13,14],N={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(t,s,i,u,p,n,v){var w=n.length-1;switch(p){case 6:case 7:return u;case 15:u.addNode(n[w-1].length,n[w].trim());break;case 16:u.addNode(0,n[w].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:r,7:[1,10],9:9,12:11,13:a,14:l},e(y,[2,3]),{1:[2,2]},e(y,[2,4]),e(y,[2,5]),{1:[2,6],6:r,12:15,13:a,14:l},{6:r,9:16,12:11,13:a,14:l},{6:f,7:d,10:17,11:m},e(c,[2,18],{14:[1,21]}),e(c,[2,16]),e(c,[2,17]),{6:f,7:d,10:22,11:m},{1:[2,7],6:r,12:15,13:a,14:l},e(k,[2,14],{7:g,11:_}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(c,[2,15]),e(k,[2,13],{7:g,11:_}),e(x,[2,11]),e(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(t,s){if(s.recoverable)this.trace(t);else{var i=new Error(t);throw i.hash=s,i}},"parseError"),parse:o(function(t){var s=this,i=[0],u=[],p=[null],n=[],v=this.table,w="",I=0,S=0,L=2,E=1,R=n.slice.call(arguments,1),b=Object.create(this.lexer),C={yy:{}};for(var W in this.yy)Object.prototype.hasOwnProperty.call(this.yy,W)&&(C.yy[W]=this.yy[W]);b.setInput(t,C.yy),C.yy.lexer=b,C.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var T=b.yylloc;n.push(T);var D=b.options&&b.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(P){i.length=i.length-2*P,p.length=p.length-P,n.length=n.length-P}o(j,"popStack");function z(){var P;return P=u.pop()||b.lex()||E,typeof P!="number"&&(P instanceof Array&&(u=P,P=u.pop()),P=s.symbols_[P]||P),P}o(z,"lex");for(var A,F,B,K,H={},X,V,et,Y;;){if(F=i[i.length-1],this.defaultActions[F]?B=this.defaultActions[F]:((A===null||typeof A>"u")&&(A=z()),B=v[F]&&v[F][A]),typeof B>"u"||!B.length||!B[0]){var Q="";Y=[];for(X in v[F])this.terminals_[X]&&X>L&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Q="Parse error on line "+(I+1)+`:
1
+ import{_ as o,c as ot,a1 as ut,F as dt,au as yt,q as ft,k as pt,o as it,a as gt,b as kt,g as mt,s as wt,p as _t,e as bt}from"./mermaid.core-Ef9xxvhx.js";import"./vendor-D8P8plmv.js";import"./vendor-react-DQUAl2K8.js";var tt=(function(){var e=o(function(M,t,s,i){for(s=s||{},i=M.length;i--;s[M[i]]=t);return s},"o"),h=[1,4],r=[1,14],a=[1,12],l=[1,13],y=[6,7,8],f=[1,20],d=[1,18],m=[1,19],c=[6,7,11],k=[1,6,13,14],g=[1,23],_=[1,24],x=[1,6,7,11,13,14],N={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(t,s,i,u,p,n,v){var w=n.length-1;switch(p){case 6:case 7:return u;case 15:u.addNode(n[w-1].length,n[w].trim());break;case 16:u.addNode(0,n[w].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:r,7:[1,10],9:9,12:11,13:a,14:l},e(y,[2,3]),{1:[2,2]},e(y,[2,4]),e(y,[2,5]),{1:[2,6],6:r,12:15,13:a,14:l},{6:r,9:16,12:11,13:a,14:l},{6:f,7:d,10:17,11:m},e(c,[2,18],{14:[1,21]}),e(c,[2,16]),e(c,[2,17]),{6:f,7:d,10:22,11:m},{1:[2,7],6:r,12:15,13:a,14:l},e(k,[2,14],{7:g,11:_}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(c,[2,15]),e(k,[2,13],{7:g,11:_}),e(x,[2,11]),e(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(t,s){if(s.recoverable)this.trace(t);else{var i=new Error(t);throw i.hash=s,i}},"parseError"),parse:o(function(t){var s=this,i=[0],u=[],p=[null],n=[],v=this.table,w="",I=0,S=0,L=2,E=1,R=n.slice.call(arguments,1),b=Object.create(this.lexer),C={yy:{}};for(var W in this.yy)Object.prototype.hasOwnProperty.call(this.yy,W)&&(C.yy[W]=this.yy[W]);b.setInput(t,C.yy),C.yy.lexer=b,C.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var T=b.yylloc;n.push(T);var D=b.options&&b.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(P){i.length=i.length-2*P,p.length=p.length-P,n.length=n.length-P}o(j,"popStack");function z(){var P;return P=u.pop()||b.lex()||E,typeof P!="number"&&(P instanceof Array&&(u=P,P=u.pop()),P=s.symbols_[P]||P),P}o(z,"lex");for(var A,F,B,K,H={},X,V,et,Y;;){if(F=i[i.length-1],this.defaultActions[F]?B=this.defaultActions[F]:((A===null||typeof A>"u")&&(A=z()),B=v[F]&&v[F][A]),typeof B>"u"||!B.length||!B[0]){var Q="";Y=[];for(X in v[F])this.terminals_[X]&&X>L&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Q="Parse error on line "+(I+1)+`:
2
2
  `+b.showPosition()+`
3
3
  Expecting `+Y.join(", ")+", got '"+(this.terminals_[A]||A)+"'":Q="Parse error on line "+(I+1)+": Unexpected "+(A==E?"end of input":"'"+(this.terminals_[A]||A)+"'"),this.parseError(Q,{text:b.match,token:this.terminals_[A]||A,line:b.yylineno,loc:T,expected:Y})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+F+", token: "+A);switch(B[0]){case 1:i.push(A),p.push(b.yytext),n.push(b.yylloc),i.push(B[1]),A=null,S=b.yyleng,w=b.yytext,I=b.yylineno,T=b.yylloc;break;case 2:if(V=this.productions_[B[1]][1],H.$=p[p.length-V],H._$={first_line:n[n.length-(V||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(V||1)].first_column,last_column:n[n.length-1].last_column},D&&(H._$.range=[n[n.length-(V||1)].range[0],n[n.length-1].range[1]]),K=this.performAction.apply(H,[w,S,I,C.yy,B[1],p,n].concat(R)),typeof K<"u")return K;V&&(i=i.slice(0,-1*V*2),p=p.slice(0,-1*V),n=n.slice(0,-1*V)),i.push(this.productions_[B[1]][0]),p.push(H.$),n.push(H._$),et=v[i[i.length-2]][i[i.length-1]],i.push(et);break;case 3:return!0}}return!0},"parse")},O=(function(){var M={EOF:1,parseError:o(function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},"parseError"),setInput:o(function(t,s){return this.yy=s||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var s=t.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:o(function(t){var s=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===u.length?this.yylloc.first_column:0)+u[u.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(t){this.unput(this.match.slice(t))},"less"),pastInput:o(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var t=this.pastInput(),s=new Array(t.length+1).join("-");return t+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- import{g as gt}from"./chunk-5VM5RSS4-DJtnYoNy.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-2GRJ4B5K-Cop7pTQw.js";import{g as _t,s as vt,a as bt,b as wt,p as Tt,o as St,_ as s,c as R,d as X,e as $t,q as Mt}from"./mermaid.core-BEntOW_N.js";import{d as it}from"./arc-IiyVx_qI.js";import"./vendor-DVp0ZLQo.js";import"./vendor-react-DQUAl2K8.js";var U=(function(){var t=s(function(h,r,n,l){for(n=n||{},l=h.length;l--;n[h[l]]=r);return n},"o"),e=[6,8,10,11,12,14,16,17,18],a=[1,9],f=[1,10],i=[1,11],u=[1,12],p=[1,13],o=[1,14],g={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,n,l,y,d,c,v){var k=c.length-1;switch(d){case 1:return c[k-1];case 2:this.$=[];break;case 3:c[k-1].push(c[k]),this.$=c[k-1];break;case 4:case 5:this.$=c[k];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[k].substr(6)),this.$=c[k].substr(6);break;case 9:this.$=c[k].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[k].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[k].substr(8)),this.$=c[k].substr(8);break;case 13:y.addTask(c[k-1],c[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,n){if(n.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=n,l}},"parseError"),parse:s(function(r){var n=this,l=[0],y=[],d=[null],c=[],v=this.table,k="",C=0,Q=0,yt=2,D=1,dt=c.slice.call(arguments,1),_=Object.create(this.lexer),I={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(I.yy[O]=this.yy[O]);_.setInput(r,I.yy),I.yy.lexer=_,I.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Y=_.yylloc;c.push(Y);var ft=_.options&&_.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pt(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}s(pt,"popStack");function tt(){var w;return w=y.pop()||_.lex()||D,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=n.symbols_[w]||w),w}s(tt,"lex");for(var b,A,T,q,F={},N,M,et,z;;){if(A=l[l.length-1],this.defaultActions[A]?T=this.defaultActions[A]:((b===null||typeof b>"u")&&(b=tt()),T=v[A]&&v[A][b]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[A])this.terminals_[N]&&N>yt&&z.push("'"+this.terminals_[N]+"'");_.showPosition?H="Parse error on line "+(C+1)+`:
1
+ import{g as gt}from"./chunk-5VM5RSS4-D7z9aJee.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-2GRJ4B5K-C75BUfq6.js";import{g as _t,s as vt,a as bt,b as wt,p as Tt,o as St,_ as s,c as R,d as X,e as $t,q as Mt}from"./mermaid.core-Ef9xxvhx.js";import{d as it}from"./arc-B8lsWks2.js";import"./vendor-D8P8plmv.js";import"./vendor-react-DQUAl2K8.js";var U=(function(){var t=s(function(h,r,n,l){for(n=n||{},l=h.length;l--;n[h[l]]=r);return n},"o"),e=[6,8,10,11,12,14,16,17,18],a=[1,9],f=[1,10],i=[1,11],u=[1,12],p=[1,13],o=[1,14],g={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,n,l,y,d,c,v){var k=c.length-1;switch(d){case 1:return c[k-1];case 2:this.$=[];break;case 3:c[k-1].push(c[k]),this.$=c[k-1];break;case 4:case 5:this.$=c[k];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[k].substr(6)),this.$=c[k].substr(6);break;case 9:this.$=c[k].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[k].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[k].substr(8)),this.$=c[k].substr(8);break;case 13:y.addTask(c[k-1],c[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,n){if(n.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=n,l}},"parseError"),parse:s(function(r){var n=this,l=[0],y=[],d=[null],c=[],v=this.table,k="",C=0,Q=0,yt=2,D=1,dt=c.slice.call(arguments,1),_=Object.create(this.lexer),I={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(I.yy[O]=this.yy[O]);_.setInput(r,I.yy),I.yy.lexer=_,I.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Y=_.yylloc;c.push(Y);var ft=_.options&&_.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pt(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}s(pt,"popStack");function tt(){var w;return w=y.pop()||_.lex()||D,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=n.symbols_[w]||w),w}s(tt,"lex");for(var b,A,T,q,F={},N,M,et,z;;){if(A=l[l.length-1],this.defaultActions[A]?T=this.defaultActions[A]:((b===null||typeof b>"u")&&(b=tt()),T=v[A]&&v[A][b]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[A])this.terminals_[N]&&N>yt&&z.push("'"+this.terminals_[N]+"'");_.showPosition?H="Parse error on line "+(C+1)+`:
2
2
  `+_.showPosition()+`
3
3
  Expecting `+z.join(", ")+", got '"+(this.terminals_[b]||b)+"'":H="Parse error on line "+(C+1)+": Unexpected "+(b==D?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(H,{text:_.match,token:this.terminals_[b]||b,line:_.yylineno,loc:Y,expected:z})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+b);switch(T[0]){case 1:l.push(b),d.push(_.yytext),c.push(_.yylloc),l.push(T[1]),b=null,Q=_.yyleng,k=_.yytext,C=_.yylineno,Y=_.yylloc;break;case 2:if(M=this.productions_[T[1]][1],F.$=d[d.length-M],F._$={first_line:c[c.length-(M||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(M||1)].first_column,last_column:c[c.length-1].last_column},ft&&(F._$.range=[c[c.length-(M||1)].range[0],c[c.length-1].range[1]]),q=this.performAction.apply(F,[k,Q,C,I.yy,T[1],d,c].concat(dt)),typeof q<"u")return q;M&&(l=l.slice(0,-1*M*2),d=d.slice(0,-1*M),c=c.slice(0,-1*M)),l.push(this.productions_[T[1]][0]),d.push(F.$),c.push(F._$),et=v[l[l.length-2]][l[l.length-1]],l.push(et);break;case 3:return!0}}return!0},"parse")},m=(function(){var h={EOF:1,parseError:s(function(n,l){if(this.yy.parser)this.yy.parser.parseError(n,l);else throw new Error(n)},"parseError"),setInput:s(function(r,n){return this.yy=n||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:s(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:s(function(r){var n=r.length,l=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===y.length?this.yylloc.first_column:0)+y[y.length-l.length].length-l[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:s(function(r){this.unput(this.match.slice(r))},"less"),pastInput:s(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- import{_ as c,l as te,c as W,F as fe,ag as ye,ah as be,ai as me,ad as _e,D as K,i as G,Y as ke,Z as Ee,aa as Se,ab as le,ac as ce}from"./mermaid.core-BEntOW_N.js";import{g as Ne}from"./chunk-5VM5RSS4-DJtnYoNy.js";import"./vendor-DVp0ZLQo.js";import"./vendor-react-DQUAl2K8.js";var $=(function(){var t=c(function(_,s,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=s);return n},"o"),g=[1,4],d=[1,13],r=[1,12],p=[1,15],k=[1,16],f=[1,20],h=[1,19],L=[6,7,8],C=[1,26],w=[1,24],N=[1,25],i=[6,7,11],M=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],U=[1,35],j=[1,36],A=[1,6,7,11,13,16,17,20,23],H=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(s,n,a,o,u,e,B){var l=e.length-1;switch(u){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",e[l-1].id),o.addNode(e[l-2].length,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 16:o.getLogger().info("Node: ",e[l].id),o.addNode(e[l-1].length,e[l].id,e[l].descr,e[l].type);break;case 17:o.getLogger().trace("Icon: ",e[l]),o.decorateNode({icon:e[l]});break;case 18:case 23:o.decorateNode({class:e[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",e[l-1].id),o.addNode(0,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 21:o.getLogger().trace("Node: ",e[l].id),o.addNode(0,e[l].id,e[l].descr,e[l].type);break;case 22:o.decorateNode({icon:e[l]});break;case 27:o.getLogger().trace("node found ..",e[l-2]),this.$={id:e[l-1],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 28:this.$={id:e[l],descr:e[l],type:0};break;case 29:o.getLogger().trace("node found ..",e[l-3]),this.$={id:e[l-3],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 30:this.$=e[l-1]+e[l];break;case 31:this.$=e[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:g},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:g},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(L,[2,3]),{1:[2,2]},t(L,[2,4]),t(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:d,9:22,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:C,7:w,10:23,11:N},t(i,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:f,23:h}),t(i,[2,19]),t(i,[2,21],{15:30,24:M}),t(i,[2,22]),t(i,[2,23]),t(x,[2,25]),t(x,[2,26]),t(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:C,7:w,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(P,[2,14],{7:U,11:j}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(i,[2,16],{15:37,24:M}),t(i,[2,17]),t(i,[2,18]),t(i,[2,20],{24:H}),t(x,[2,31]),{21:[1,39]},{22:[1,40]},t(P,[2,13],{7:U,11:j}),t(A,[2,11]),t(A,[2,12]),t(i,[2,15],{24:H}),t(x,[2,30]),{22:[1,41]},t(x,[2,27]),t(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(s,n){if(n.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=n,a}},"parseError"),parse:c(function(s){var n=this,a=[0],o=[],u=[null],e=[],B=this.table,l="",z=0,ie=0,ue=2,re=1,ge=e.slice.call(arguments,1),m=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);m.setInput(s,T.yy),T.yy.lexer=m,T.yy.parser=this,typeof m.yylloc>"u"&&(m.yylloc={});var Z=m.yylloc;e.push(Z);var de=m.options&&m.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){a.length=a.length-2*S,u.length=u.length-S,e.length=e.length-S}c(pe,"popStack");function ae(){var S;return S=o.pop()||m.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var E,R,v,q,F={},X,I,oe,Y;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((E===null||typeof E>"u")&&(E=ae()),v=B[R]&&B[R][E]),typeof v>"u"||!v.length||!v[0]){var Q="";Y=[];for(X in B[R])this.terminals_[X]&&X>ue&&Y.push("'"+this.terminals_[X]+"'");m.showPosition?Q="Parse error on line "+(z+1)+`:
1
+ import{_ as c,l as te,c as W,F as fe,ag as ye,ah as be,ai as me,ad as _e,D as K,i as G,Y as ke,Z as Ee,aa as Se,ab as le,ac as ce}from"./mermaid.core-Ef9xxvhx.js";import{g as Ne}from"./chunk-5VM5RSS4-D7z9aJee.js";import"./vendor-D8P8plmv.js";import"./vendor-react-DQUAl2K8.js";var $=(function(){var t=c(function(_,s,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=s);return n},"o"),g=[1,4],d=[1,13],r=[1,12],p=[1,15],k=[1,16],f=[1,20],h=[1,19],L=[6,7,8],C=[1,26],w=[1,24],N=[1,25],i=[6,7,11],M=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],U=[1,35],j=[1,36],A=[1,6,7,11,13,16,17,20,23],H=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(s,n,a,o,u,e,B){var l=e.length-1;switch(u){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",e[l-1].id),o.addNode(e[l-2].length,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 16:o.getLogger().info("Node: ",e[l].id),o.addNode(e[l-1].length,e[l].id,e[l].descr,e[l].type);break;case 17:o.getLogger().trace("Icon: ",e[l]),o.decorateNode({icon:e[l]});break;case 18:case 23:o.decorateNode({class:e[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",e[l-1].id),o.addNode(0,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 21:o.getLogger().trace("Node: ",e[l].id),o.addNode(0,e[l].id,e[l].descr,e[l].type);break;case 22:o.decorateNode({icon:e[l]});break;case 27:o.getLogger().trace("node found ..",e[l-2]),this.$={id:e[l-1],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 28:this.$={id:e[l],descr:e[l],type:0};break;case 29:o.getLogger().trace("node found ..",e[l-3]),this.$={id:e[l-3],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 30:this.$=e[l-1]+e[l];break;case 31:this.$=e[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:g},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:g},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(L,[2,3]),{1:[2,2]},t(L,[2,4]),t(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:d,9:22,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:C,7:w,10:23,11:N},t(i,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:f,23:h}),t(i,[2,19]),t(i,[2,21],{15:30,24:M}),t(i,[2,22]),t(i,[2,23]),t(x,[2,25]),t(x,[2,26]),t(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:C,7:w,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(P,[2,14],{7:U,11:j}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(i,[2,16],{15:37,24:M}),t(i,[2,17]),t(i,[2,18]),t(i,[2,20],{24:H}),t(x,[2,31]),{21:[1,39]},{22:[1,40]},t(P,[2,13],{7:U,11:j}),t(A,[2,11]),t(A,[2,12]),t(i,[2,15],{24:H}),t(x,[2,30]),{22:[1,41]},t(x,[2,27]),t(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(s,n){if(n.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=n,a}},"parseError"),parse:c(function(s){var n=this,a=[0],o=[],u=[null],e=[],B=this.table,l="",z=0,ie=0,ue=2,re=1,ge=e.slice.call(arguments,1),m=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);m.setInput(s,T.yy),T.yy.lexer=m,T.yy.parser=this,typeof m.yylloc>"u"&&(m.yylloc={});var Z=m.yylloc;e.push(Z);var de=m.options&&m.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){a.length=a.length-2*S,u.length=u.length-S,e.length=e.length-S}c(pe,"popStack");function ae(){var S;return S=o.pop()||m.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var E,R,v,q,F={},X,I,oe,Y;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((E===null||typeof E>"u")&&(E=ae()),v=B[R]&&B[R][E]),typeof v>"u"||!v.length||!v[0]){var Q="";Y=[];for(X in B[R])this.terminals_[X]&&X>ue&&Y.push("'"+this.terminals_[X]+"'");m.showPosition?Q="Parse error on line "+(z+1)+`:
2
2
  `+m.showPosition()+`
3
3
  Expecting `+Y.join(", ")+", got '"+(this.terminals_[E]||E)+"'":Q="Parse error on line "+(z+1)+": Unexpected "+(E==re?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(Q,{text:m.match,token:this.terminals_[E]||E,line:m.yylineno,loc:Z,expected:Y})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+E);switch(v[0]){case 1:a.push(E),u.push(m.yytext),e.push(m.yylloc),a.push(v[1]),E=null,ie=m.yyleng,l=m.yytext,z=m.yylineno,Z=m.yylloc;break;case 2:if(I=this.productions_[v[1]][1],F.$=u[u.length-I],F._$={first_line:e[e.length-(I||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(I||1)].first_column,last_column:e[e.length-1].last_column},de&&(F._$.range=[e[e.length-(I||1)].range[0],e[e.length-1].range[1]]),q=this.performAction.apply(F,[l,ie,z,T.yy,v[1],u,e].concat(ge)),typeof q<"u")return q;I&&(a=a.slice(0,-1*I*2),u=u.slice(0,-1*I),e=e.slice(0,-1*I)),a.push(this.productions_[v[1]][0]),u.push(F.$),e.push(F._$),oe=B[a[a.length-2]][a[a.length-1]],a.push(oe);break;case 3:return!0}}return!0},"parse")},y=(function(){var _={EOF:1,parseError:c(function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},"parseError"),setInput:c(function(s,n){return this.yy=n||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:c(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var n=s.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:c(function(s){var n=s.length,a=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===o.length?this.yylloc.first_column:0)+o[o.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:c(function(){return this._more=!0,this},"more"),reject:c(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:c(function(s){this.unput(this.match.slice(s))},"less"),pastInput:c(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:c(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:c(function(){var s=this.pastInput(),n=new Array(s.length+1).join("-");return s+this.upcomingInput()+`