tide-commander 1.199.0 → 1.199.2

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 (126) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/assets/{AudioPlayer-CusBq3ON.js → AudioPlayer-XaWiU7f4.js} +1 -1
  3. package/dist/assets/{BossLogsModal-B1PLdne_.js → BossLogsModal-1tI-leZQ.js} +1 -1
  4. package/dist/assets/{BossSpawnModal-DQN_2lzh.js → BossSpawnModal-CRoChH0J.js} +1 -1
  5. package/dist/assets/{ControlsModal-D4JsU4VU.js → ControlsModal-Cu7kwhct.js} +1 -1
  6. package/dist/assets/{DockerLogsModal-BuCiJ02l.js → DockerLogsModal-DFAiOsWH.js} +1 -1
  7. package/dist/assets/{EmbeddedEditor-CBaRvdh1.js → EmbeddedEditor-hnSknX5L.js} +1 -1
  8. package/dist/assets/{FcStdViewer-CpJhmVIt.js → FcStdViewer-B_cbRz1w.js} +1 -1
  9. package/dist/assets/{GcodeViewer-B8BHZMmG.js → GcodeViewer-CFgwEZ6g.js} +1 -1
  10. package/dist/assets/{GlbViewer-DdVYw2Jh.js → GlbViewer-14WSSXX7.js} +1 -1
  11. package/dist/assets/{GmailOAuthSetup-Cj0r8z52.js → GmailOAuthSetup-waw2142C.js} +1 -1
  12. package/dist/assets/{GoogleOAuthSetup-BO0udRUZ.js → GoogleOAuthSetup-Bo59grtp.js} +1 -1
  13. package/dist/assets/{IframeModal-CecB4A27.js → IframeModal-B3M77grB.js} +1 -1
  14. package/dist/assets/{IntegrationsPanel-BVnzRrTb.js → IntegrationsPanel-BLHrC0GX.js} +2 -2
  15. package/dist/assets/{LogViewerModal-CNbfgDQK.js → LogViewerModal-CitlmDgQ.js} +1 -1
  16. package/dist/assets/{MonitoringModal-CUXXMqLv.js → MonitoringModal-BcKOCSRM.js} +1 -1
  17. package/dist/assets/{OrbitControls-DS7gPhsZ.js → OrbitControls-ANLmgNeR.js} +1 -1
  18. package/dist/assets/{PM2LogsModal-DFAuRDwm.js → PM2LogsModal-DrHpuMNf.js} +1 -1
  19. package/dist/assets/{RestoreArchivedAreaModal-DT5-U0A8.js → RestoreArchivedAreaModal-DcD3vdUJ.js} +1 -1
  20. package/dist/assets/{Scene2DCanvas-DqakJMdS.js → Scene2DCanvas-DKUcFYZW.js} +1 -1
  21. package/dist/assets/SceneManager-DPojKMM-.js +104 -0
  22. package/dist/assets/{SkillsPanel-1hYjREqo.js → SkillsPanel-CUW0prbh.js} +1 -1
  23. package/dist/assets/{SlackMultiInstanceSetup-C6EtUfP8.js → SlackMultiInstanceSetup-YFYeZ94t.js} +1 -1
  24. package/dist/assets/{SpawnModal-BmMZFOUj.js → SpawnModal-DPvq-R5b.js} +1 -1
  25. package/dist/assets/{StatisticsModal-mmqE6JaF.js → StatisticsModal-Dt-Hof51.js} +1 -1
  26. package/dist/assets/{StlViewer-D0XChi1U.js → StlViewer-GyyomEax.js} +1 -1
  27. package/dist/assets/{SubordinateAssignmentModal-CBISWK7c.js → SubordinateAssignmentModal-ahzGBjr4.js} +1 -1
  28. package/dist/assets/{ThreeAreaSelector-C_7zwy_Q.js → ThreeAreaSelector-Bj_mL6NG.js} +1 -1
  29. package/dist/assets/{ThreeViewShortcuts-DZZmjQAV.js → ThreeViewShortcuts-CKtE3yZV.js} +1 -1
  30. package/dist/assets/{TriggerManagerPanel-Bwd5-VGg.js → TriggerManagerPanel-DtdbOk9B.js} +1 -1
  31. package/dist/assets/{VideoPlayer-BuFPsPNu.js → VideoPlayer-Crq-MwPS.js} +1 -1
  32. package/dist/assets/{WorkflowEditorPanel-DxQfrs71.js → WorkflowEditorPanel-CitR9Em3.js} +1 -1
  33. package/dist/assets/{abnfDiagram-VRR7QNED-AhR0vtDs.js → abnfDiagram-VRR7QNED-QFcuJYPe.js} +1 -1
  34. package/dist/assets/{arc-CTR1mrNz.js → arc-CLuSzQ4E.js} +1 -1
  35. package/dist/assets/{architectureDiagram-ZJ3FMSHR-DrsB_-NW.js → architectureDiagram-ZJ3FMSHR-DlhVck93.js} +1 -1
  36. package/dist/assets/{area-logos-D_dodLqh.js → area-logos-DYARiYqI.js} +1 -1
  37. package/dist/assets/{blockDiagram-677ZJIJ3-Bf6BktPD.js → blockDiagram-677ZJIJ3-CJwOmsfj.js} +1 -1
  38. package/dist/assets/{c4Diagram-LMCZKHZV--UrsSHrg.js → c4Diagram-LMCZKHZV-OsgCNPWJ.js} +1 -1
  39. package/dist/assets/channel-cpl_NpAy.js +1 -0
  40. package/dist/assets/{chunk-2Q5K7J3B-DajcrDU0.js → chunk-2Q5K7J3B-KG-L7vvm.js} +1 -1
  41. package/dist/assets/{chunk-32BRIVSS-BoJToPN6.js → chunk-32BRIVSS-BXGbqO9v.js} +1 -1
  42. package/dist/assets/{chunk-5VM5RSS4-CWyIsEjs.js → chunk-5VM5RSS4-BWXkm8f0.js} +1 -1
  43. package/dist/assets/{chunk-EX3LRPZG-BxQt59EY.js → chunk-EX3LRPZG-7-8ulJ19.js} +1 -1
  44. package/dist/assets/{chunk-JWPE2WC7-CcltxnxE.js → chunk-JWPE2WC7-mkwFN5xu.js} +1 -1
  45. package/dist/assets/{chunk-MOJQB5TN-CoFz0cis.js → chunk-MOJQB5TN-WEfWznKE.js} +1 -1
  46. package/dist/assets/{chunk-RYQCIY6F-CqD5SIAs.js → chunk-RYQCIY6F-ByP5odu4.js} +1 -1
  47. package/dist/assets/{chunk-V7JOEXUC-B38vYRK3.js → chunk-V7JOEXUC-yWHmp1L1.js} +1 -1
  48. package/dist/assets/{chunk-VR4S4FIN-CVwpBl0T.js → chunk-VR4S4FIN-DHbZaHzt.js} +1 -1
  49. package/dist/assets/{chunk-XXDRQBXY-DznOU5hd.js → chunk-XXDRQBXY-SNa-Wh3U.js} +1 -1
  50. package/dist/assets/classDiagram-OUVF2IWQ-D_lsO4mm.js +1 -0
  51. package/dist/assets/classDiagram-v2-EOCWNBFH-D_lsO4mm.js +1 -0
  52. package/dist/assets/{cose-bilkent-JH36ORCC-B1uTqWwQ.js → cose-bilkent-JH36ORCC-CyxHYUhP.js} +1 -1
  53. package/dist/assets/{cynefin-VYW2F7L2-DgpqdGRT.js → cynefin-VYW2F7L2-BvwjSDiQ.js} +1 -1
  54. package/dist/assets/{cynefinDiagram-TSTJHNR4-Ld74Dvow.js → cynefinDiagram-TSTJHNR4-C8doInhn.js} +1 -1
  55. package/dist/assets/{dagre-VKFMJZFB-DAp2Br8X.js → dagre-VKFMJZFB-BNDcupek.js} +1 -1
  56. package/dist/assets/{diagram-FQU43EPY-CaMUb0eE.js → diagram-FQU43EPY-Bst0bBnQ.js} +1 -1
  57. package/dist/assets/{diagram-G47NLZAW-kTOq861A.js → diagram-G47NLZAW-CfEv0aTY.js} +1 -1
  58. package/dist/assets/{diagram-NH7WQ7WH-LWZrE7zu.js → diagram-NH7WQ7WH-B7MYvWXL.js} +1 -1
  59. package/dist/assets/{diagram-OA4YK3LP-Csm-frID.js → diagram-OA4YK3LP-BIzII0d2.js} +1 -1
  60. package/dist/assets/{diagram-WEI45ONY-BconZEMM.js → diagram-WEI45ONY-D5yd1HWr.js} +1 -1
  61. package/dist/assets/{ebnfDiagram-CCIWWBDH-Cr5xwAgl.js → ebnfDiagram-CCIWWBDH-gyhVYUos.js} +1 -1
  62. package/dist/assets/{erDiagram-Q63AITRT-76P2E9Q6.js → erDiagram-Q63AITRT-Duz-DwfE.js} +1 -1
  63. package/dist/assets/{flowDiagram-23GEKE2U-CciJAjTA.js → flowDiagram-23GEKE2U-CrnARkmw.js} +1 -1
  64. package/dist/assets/{ganttDiagram-NO4QXBWP-D7VgBp68.js → ganttDiagram-NO4QXBWP-D6cBteIN.js} +1 -1
  65. package/dist/assets/{gitGraphDiagram-IHSO6WYX-CxICR8Bg.js → gitGraphDiagram-IHSO6WYX-CMHfr_lR.js} +1 -1
  66. package/dist/assets/{index-Cd53q1WZ.js → index-2427ATYD.js} +3 -3
  67. package/dist/assets/{index-lQifR7XC.js → index-B1vOCcI-.js} +1 -1
  68. package/dist/assets/index-B5wHDczA.js +2 -0
  69. package/dist/assets/{index-BNsHVfai.js → index-CbMtvQTH.js} +1 -1
  70. package/dist/assets/{index-DzzLdCr9.js → index-D5O_0aq9.js} +1 -1
  71. package/dist/assets/{index-Bfmfqbw7.js → index-D5pIRxFm.js} +1 -1
  72. package/dist/assets/index-DJKuwqJG.js +2 -0
  73. package/dist/assets/{index-Dc4yP2fA.js → index-DeqoOoo6.js} +3 -3
  74. package/dist/assets/{index-Z0bYekBH.js → index-fiC5OXgR.js} +1 -1
  75. package/dist/assets/{infoDiagram-FWYZ7A6U-h-R7gGrP.js → infoDiagram-FWYZ7A6U-Mvk2Mpp3.js} +1 -1
  76. package/dist/assets/{ishikawaDiagram-FXEZZL3T-D1RbbiMz.js → ishikawaDiagram-FXEZZL3T-DXsaNDYg.js} +1 -1
  77. package/dist/assets/{journeyDiagram-5HDEW3XC-BnNUbZMI.js → journeyDiagram-5HDEW3XC-6QlK8xHN.js} +1 -1
  78. package/dist/assets/{kanban-definition-HUTT4EX6-kX3kneLI.js → kanban-definition-HUTT4EX6-D5EeRs07.js} +1 -1
  79. package/dist/assets/{linear-DC5X1tTJ.js → linear-D_aP9MD5.js} +1 -1
  80. package/dist/assets/main-B2ZLroL1.css +1 -0
  81. package/dist/assets/{main-Bb9H5jmt.js → main-Dk3qq80S.js} +156 -156
  82. package/dist/assets/{mermaid.core-BE33DHym.js → mermaid.core-CEculPxD.js} +4 -4
  83. package/dist/assets/{mindmap-definition-LN4V7U3C-CY3A4tSH.js → mindmap-definition-LN4V7U3C-Vjj9vgEN.js} +1 -1
  84. package/dist/assets/{pegDiagram-2B236MQR-B99ZSEym.js → pegDiagram-2B236MQR-B-AwbaoO.js} +1 -1
  85. package/dist/assets/{pieDiagram-ENE6RG2P-7PsmMteT.js → pieDiagram-ENE6RG2P-D5o1UYPK.js} +1 -1
  86. package/dist/assets/{quadrantDiagram-ABIIQ3AL-DjShiKUv.js → quadrantDiagram-ABIIQ3AL-Bl_Rbmz-.js} +1 -1
  87. package/dist/assets/{railroadDiagram-RFXS5EU6-B6KuCiHH.js → railroadDiagram-RFXS5EU6-CW-qy1dp.js} +1 -1
  88. package/dist/assets/{requirementDiagram-TGXJPOKE-k_7TCScw.js → requirementDiagram-TGXJPOKE-DGUQpy3K.js} +1 -1
  89. package/dist/assets/{sankeyDiagram-HTMAVEWB-D2YbTfpK.js → sankeyDiagram-HTMAVEWB-CUlWZH9G.js} +1 -1
  90. package/dist/assets/{sequenceDiagram-DBY2YBRQ-CuYh53OC.js → sequenceDiagram-DBY2YBRQ-CeDVJrbJ.js} +1 -1
  91. package/dist/assets/{sizeCapture-X5ZJPWSS-D4_qcFkr.js → sizeCapture-X5ZJPWSS-BGSL3ofq.js} +1 -1
  92. package/dist/assets/{stateDiagram-2N3HPSRC-DO9QVMBT.js → stateDiagram-2N3HPSRC-9A8tAPIu.js} +1 -1
  93. package/dist/assets/stateDiagram-v2-6OUMAXLB-DzVFFq0g.js +1 -0
  94. package/dist/assets/{swimlanes-5IMT3BWC-gMS-z6zh.js → swimlanes-5IMT3BWC-CipRR1uk.js} +2 -2
  95. package/dist/assets/swimlanesDiagram-G3AALYLV-XDQw-C4e.js +8 -0
  96. package/dist/assets/{timeline-definition-FHXFAJF6-CUmQCwOG.js → timeline-definition-FHXFAJF6-IgrCsFe-.js} +1 -1
  97. package/dist/assets/{vendor-three-CBPuP1jE.js → vendor-three-DYBBrXTx.js} +1 -1
  98. package/dist/assets/{vennDiagram-L72KCM5P-CIP-5b8u.js → vennDiagram-L72KCM5P-okSGsDy3.js} +1 -1
  99. package/dist/assets/{wardleyDiagram-EHGQE667-DlQqKMjr.js → wardleyDiagram-EHGQE667-G0RLggUt.js} +1 -1
  100. package/dist/assets/{web-DmAaMs-2.js → web-B5BfOO5C.js} +1 -1
  101. package/dist/assets/{web-D42BXPx5.js → web-BPOqvnJL.js} +1 -1
  102. package/dist/assets/{web-DVkGXGfI.js → web-Q8DwQW0W.js} +1 -1
  103. package/dist/assets/{xychartDiagram-FW5EYKEG-CekYCp3d.js → xychartDiagram-FW5EYKEG-DtVJEFyI.js} +1 -1
  104. package/dist/build-info.json +1 -1
  105. package/dist/index.html +3 -3
  106. package/dist/src/packages/server/app.js +26 -1
  107. package/dist/src/packages/server/claude/backend.js +5 -4
  108. package/dist/src/packages/server/claude/runner/stdout-pipeline.js +29 -30
  109. package/dist/src/packages/server/claude/runner/watchdog.js +2 -1
  110. package/dist/src/packages/server/claude/session-loader.js +141 -81
  111. package/dist/src/packages/server/data/index.js +35 -2
  112. package/dist/src/packages/server/routes/perf.js +50 -39
  113. package/dist/src/packages/server/services/git-watch-service.js +14 -2
  114. package/dist/src/packages/server/services/runtime-service.js +85 -39
  115. package/dist/src/packages/server/websocket/handler.js +33 -8
  116. package/dist/src/packages/server/websocket/listeners/runtime-listeners.js +5 -2
  117. package/package.json +3 -1
  118. package/dist/assets/SceneManager-htGN7YfA.js +0 -104
  119. package/dist/assets/channel-BkokQZXi.js +0 -1
  120. package/dist/assets/classDiagram-OUVF2IWQ-DibSrtP1.js +0 -1
  121. package/dist/assets/classDiagram-v2-EOCWNBFH-DibSrtP1.js +0 -1
  122. package/dist/assets/index-C8zT43_7.js +0 -2
  123. package/dist/assets/index-WhxnTPGa.js +0 -2
  124. package/dist/assets/main-CSv15YYo.css +0 -1
  125. package/dist/assets/stateDiagram-v2-6OUMAXLB-CekJ4qac.js +0 -1
  126. package/dist/assets/swimlanesDiagram-G3AALYLV-CfPVdXRk.js +0 -8
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-BE33DHym.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-V7JOEXUC-B38vYRK3.js";import{_ as i}from"./mermaid.core-BE33DHym.js";import"./chunk-5VM5RSS4-CWyIsEjs.js";import"./chunk-XXDRQBXY-DznOU5hd.js";import"./chunk-VR4S4FIN-CVwpBl0T.js";import"./chunk-32BRIVSS-BoJToPN6.js";import"./main-Bb9H5jmt.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-CBPuP1jE.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-V7JOEXUC-B38vYRK3.js";import{_ as i}from"./mermaid.core-BE33DHym.js";import"./chunk-5VM5RSS4-CWyIsEjs.js";import"./chunk-XXDRQBXY-DznOU5hd.js";import"./chunk-VR4S4FIN-CVwpBl0T.js";import"./chunk-32BRIVSS-BoJToPN6.js";import"./main-Bb9H5jmt.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-CBPuP1jE.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1,2 +0,0 @@
1
- import{r as s,aW as $a,aX as ca,N as _a,aY as wa,j as e,aZ as va,a_ as Da,u as ia,a$ as za,b0 as Ra,b1 as Oa,b2 as Fa,b3 as Ba,aj as Wa,b4 as Ha,b5 as Ua,aC as ja,m as Vt,S,y as qt,b6 as ta,b7 as da,b8 as zt,b9 as pe,ba as Ga,s as g,K as aa,a0 as Ca,f as ka,bb as Xa,bc as ua,bd as ma,I as d,be as Va,bf as na,aF as Na,bg as qa,n as ya,ad as Aa,bh as Sa,bi as Ya,bj as Ka,bk as Za,ai as Ja,bl as Qa,bm as en,bn as tn,aI as an,aJ as nn,aK as sn,bo as ln,bp as rn,bq as sa,Z as on,U as cn,br as dn,bs as un,bt as mn,bu as pn,bv as fn,bw as hn,bx as gn,by as xn,bz as Yt,bA as pa,bB as bn,bC as _n,bD as wn,z as vn,bE as jn,bF as Cn,bG as kn,bH as Nn,bI as ut,bJ as yn,bK as An,bL as Sn,bM as En,bN as jt,bO as In,bP as Mn,bQ as Tn,bR as Ln,p as Pn,D as $n,t as Kt,o as Dn}from"./main-Bb9H5jmt.js";import{g as zn}from"./area-logos-D_dodLqh.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-CBPuP1jE.js";function Rn(c){const o=s.useRef(c);o.current=c,s.useEffect(()=>{if(!$a())return;let m=null,b=!1;return ca.addListener("backButton",()=>{o.current()==="exit"&&ca.exitApp()}).then(y=>{b?y.remove():m=y}),()=>{b=!0,m&&(m.remove(),m=null)}},[])}async function On(c){const o=_a(),m=await fetch(`${wa()}/api/agents/${c}/terminal`,{method:"POST",headers:{Authorization:`Bearer ${o}`}});if(!m.ok){const b=await m.json().catch(()=>({}));throw new Error((b==null?void 0:b.error)||`Failed to start terminal (${m.status})`)}return m.json()}async function Fn(c){const o=_a();await fetch(`${wa()}/api/agents/${c}/terminal`,{method:"DELETE",headers:{Authorization:`Bearer ${o}`}})}const Ct=new Map;function Bn({agentId:c}){const[o,m]=s.useState(null),[b,y]=s.useState(null);return s.useEffect(()=>{let I=!1;const A=Ct.get(c);return A&&(clearTimeout(A),Ct.delete(c)),m(null),y(null),On(c).then(k=>{I||m(k.url)}).catch(k=>{I||y(k instanceof Error?k.message:"Failed to start terminal")}),()=>{I=!0;const k=Ct.get(c);k&&clearTimeout(k),Ct.set(c,setTimeout(()=>{Ct.delete(c),Fn(c)},2500))}},[c]),b?e.jsx("div",{className:"flat-classic-terminal flat-classic-terminal--message",children:e.jsx("span",{children:b})}):o?e.jsx("div",{className:"flat-classic-terminal",children:e.jsx(va,{terminalUrl:o,visible:!0})}):e.jsx("div",{className:"flat-classic-terminal flat-classic-terminal--message",children:e.jsx("span",{children:"Attaching to interactive session…"})})}const Zt=new Map,Wn=6e4;function fa(c){return Number.isFinite(c)?Math.abs(c)>=1e3?c.toLocaleString(void 0,{maximumFractionDigits:0}):c.toLocaleString(void 0,{maximumFractionDigits:2}):String(c)}function Hn(c,o){var y,I,A;const m=[];if(!c.rateLimits)return m;if(c.provider==="claude"){const k=c,K=[{key:"fiveHour",label:o("terminal:usage.currentSession"),window:k.rateLimits.fiveHour},{key:"sevenDay",label:o("terminal:usage.currentWeekAll"),window:k.rateLimits.sevenDay},{key:"sevenDayOpus",label:o("terminal:usage.currentWeekOpus"),window:k.rateLimits.sevenDayOpus},{key:"sevenDayFable",label:o("terminal:usage.currentWeekFable"),window:k.rateLimits.sevenDayFable}];for(const j of K)(j.window||j.key==="sevenDayFable")&&m.push(j);return m}const b=c;return(y=b.rateLimits)!=null&&y.weekly&&m.push({key:"weekly",label:o("terminal:usage.weeklyLimit"),window:b.rateLimits.weekly}),(I=b.rateLimits)!=null&&I.monthly&&m.push({key:"monthly",label:o("terminal:usage.monthlyLimit"),window:b.rateLimits.monthly}),(A=b.rateLimits)!=null&&A.onDemand&&m.push({key:"onDemand",label:o("terminal:usage.onDemandLimit"),window:b.rateLimits.onDemand}),m}function Un({agentId:c,contextSummary:o}){const{t:m}=ia(["terminal","common"]),[b,y]=s.useState(()=>{var R;return((R=Zt.get(c))==null?void 0:R.snapshot)??null}),[I,A]=s.useState(!1),[k,K]=s.useState(null),j=s.useRef(0);s.useEffect(()=>{const R=Zt.get(c);if(R&&Date.now()-R.fetchedAt<Wn){y(R.snapshot);return}const fe=++j.current;A(!0),K(null),za(c).then(T=>{fe===j.current&&(Zt.set(c,{snapshot:T,fetchedAt:Date.now()}),y(T),A(!1))}).catch(T=>{fe===j.current&&(K(T.message||"Failed to load plan limits"),A(!1))})},[c]);const v=b?Hn(b,m):[];return e.jsxs("div",{className:"plan-limits-tooltip",children:[o&&e.jsx("div",{className:"plan-limits-tooltip__context",children:o}),e.jsx("div",{className:"plan-limits-tooltip__title",children:m("terminal:usage.limits")}),I&&!b&&e.jsxs("div",{className:"plan-limits-tooltip__muted",children:[m("common:status.loading"),"…"]}),!I&&k&&!b&&e.jsx("div",{className:"plan-limits-tooltip__muted",children:m("terminal:usage.limitsError",{message:k})}),v.length>0?e.jsx("div",{className:"plan-limits-tooltip__gauges",children:v.map(({key:R,label:fe,window:T})=>{const he=T?Math.max(0,Math.min(100,T.utilization)):0,ee=Oa(he),le=T!=null&&typeof T.used=="number"&&typeof T.limit=="number"&&Number.isFinite(T.used)&&Number.isFinite(T.limit);return e.jsxs("div",{className:"plan-limits-tooltip__gauge",children:[e.jsxs("div",{className:"plan-limits-tooltip__gauge-head",children:[e.jsx("span",{className:"plan-limits-tooltip__gauge-label",children:fe}),e.jsx("span",{className:"plan-limits-tooltip__gauge-percent",style:{color:ee},children:m("terminal:usage.percentUsed",{percent:Math.round(he)})})]}),e.jsx("div",{className:"plan-limits-tooltip__bar",children:e.jsx("div",{className:"plan-limits-tooltip__bar-fill",style:{width:`${he}%`,background:ee}})}),e.jsxs("div",{className:"plan-limits-tooltip__reset",children:[T&&m("terminal:usage.resets",{time:Ra(T.resetsAt)}),le&&e.jsx("span",{style:{marginLeft:8},children:m("terminal:usage.creditsUsed",{used:fa(T.used),limit:fa(T.limit)})})]})]},R)})}):b&&!I&&e.jsx("div",{className:"plan-limits-tooltip__muted",children:b.rateLimitsError?m("terminal:usage.limitsError",{message:b.rateLimitsError}):b.cliHint})]})}function Gn({agentId:c,disabled:o,contextSummary:m,children:b}){return e.jsx(Da,{position:"top",maxWidth:320,disabled:o,className:"plan-limits-tooltip-wrapper",triggerStyle:{display:"inline-flex",alignItems:"center"},content:e.jsx(Un,{agentId:c,contextSummary:m}),children:b})}const Xn=s.memo(function({className:o=""}){const{t:m}=ia(["common"]),[b,y]=Fa(),I=s.useRef(null),[A,k]=s.useState(null);s.useLayoutEffect(()=>{const j=I.current;if(!j)return;const v=j.querySelector(".view-mode-toggle__btn--active");v&&k({left:v.offsetLeft,width:v.offsetWidth})},[b]);const K=s.useCallback(j=>{if(j!==b){if(typeof window<"u"&&window.dispatchEvent(new CustomEvent("tide:viewmode-switch-pressed",{detail:{mode:j}})),j==="3d"){requestAnimationFrame(()=>y(j));return}y(j)}},[b,y]);return e.jsxs("div",{className:`view-mode-toggle ${o}`,ref:I,children:[A&&e.jsx("div",{className:"view-mode-toggle__indicator",style:{left:A.left,width:A.width}}),Ba.map(j=>e.jsxs("button",{className:`view-mode-toggle__btn ${b===j?"view-mode-toggle__btn--active":""}`,onClick:()=>K(j),title:m(`common:viewMode.descriptions.${j}`),children:[e.jsxs("span",{className:"view-mode-toggle__icon",children:[j==="2d"&&e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),e.jsx("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),e.jsx("line",{x1:"12",y1:"3",x2:"12",y2:"21"})]}),j==="3d"&&e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),e.jsx("path",{d:"M2 17l10 5 10-5"}),e.jsx("path",{d:"M2 12l10 5 10-5"})]}),j==="flat"&&e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("rect",{x:"3",y:"3",width:"8",height:"8",rx:"1"}),e.jsx("rect",{x:"13",y:"3",width:"8",height:"8",rx:"1"}),e.jsx("rect",{x:"3",y:"13",width:"8",height:"8",rx:"1"}),e.jsx("rect",{x:"13",y:"13",width:"8",height:"8",rx:"1"})]}),j==="dashboard"&&e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("rect",{x:"3",y:"3",width:"7",height:"9",rx:"1"}),e.jsx("rect",{x:"14",y:"3",width:"7",height:"5",rx:"1"}),e.jsx("rect",{x:"14",y:"12",width:"7",height:"9",rx:"1"}),e.jsx("rect",{x:"3",y:"16",width:"7",height:"5",rx:"1"})]})]}),e.jsx("span",{className:"view-mode-toggle__label",children:m(`common:viewMode.labels.${j}`)})]},j))]})}),Rt=3,Ot=280,ha=320,Jt=240,ga=64,Vn=["simple","chat","advanced"],xa={simple:"Simple",chat:"Chat",advanced:"Advanced"},ba={simple:"○",chat:"◐",advanced:"◉"},qn={simple:"Simple view — clean messages only",chat:"Chat view — assistant replies (no tool calls)",advanced:"Advanced view — everything including tools"},Qt="flat-clear-context",Ea="tide:flat-embedded-panels";function Ia(){try{const c=localStorage.getItem(Ea),o=c?JSON.parse(c):{};return o&&typeof o=="object"?o:{}}catch{return{}}}function ea(c,o){try{const m=Ia();o?m[c]=o:delete m[c],localStorage.setItem(Ea,JSON.stringify(m))}catch{}}function Yn(c){const o=c.split("/").filter(Boolean);return o.length===0?c:o.slice(-2).join("/")}function Kn(c){if(c.provider==="codex"){const I=c.codexModel||"gpt-5.6-luna",A=Pn[I];return{model:(A==null?void 0:A.label)||I}}if(c.provider==="opencode")return{model:c.opencodeModel||"opencode"};if(c.provider==="grok"){const I=c.grokModel||$n,A=c.effort,k=A?Kt[A]:void 0;return{model:I,effort:k==null?void 0:k.label}}if(c.provider==="pi"){const I=c.piModel||"pi default",A=c.effort,k=A?Kt[A]:void 0;return{model:I,effort:k==null?void 0:k.label}}const o=c.model||c.detectedModel||"default",m=Dn[o],b=c.effort,y=b?Kt[b]:void 0;return{model:(m==null?void 0:m.label)||o,effort:y==null?void 0:y.label}}function Zn(c,o){if(o.type==="rectangle"&&o.width&&o.height){const m=o.width/2,b=o.height/2;return c.x>=o.center.x-m&&c.x<=o.center.x+m&&c.z>=o.center.z-b&&c.z<=o.center.z+b}if(o.type==="circle"&&o.radius){const m=c.x-o.center.x,b=c.z-o.center.z;return m*m+b*b<=o.radius*o.radius}return!1}const Jn=cn.memo(function({agentId:o,terminalViewMode:m,onTerminalViewModeChange:b,inspectorOpen:y,onToggleInspector:I,onShowTaskBoard:A,onImageClick:k,onFileClick:K,onBashClick:j,onViewMarkdown:v,onRequestClearSubordinates:R,keyboard:fe,canNavigateBack:T,canNavigateForward:he,onNavigateBack:ee,onNavigateForward:le,agentInfoOpen:qe,onToggleAgentInfo:kt,onHeaderContextMenu:mt,onBuildingContextMenu:Ae}){var Lt,Pt;const p=aa(o),O=ka(),ge=dn(),xe=s.useRef(null),re=s.useRef(null),{displayedAgentId:We,fadingOut:pt}=un(o),Ye=aa(We),He=!!ge.interactiveMode&&((p==null?void 0:p.provider)??"claude")==="claude"&&!!(p!=null&&p.sessionId),[te,Ke]=s.useState(!1),[Ue,Ze]=s.useState(null),Je=s.useMemo(()=>{const a=Vn.map(l=>{const i=!te&&m===l;return{id:`view-mode-${l}`,label:xa[l],icon:e.jsx("span",{className:"flat-terminal-wrapper__view-mode-icon",children:ba[l]}),shortcut:i?"✓":void 0,onClick:()=>{Ke(!1),b(l),Ze(null)}}});return He&&a.push({id:"view-mode-classic-tui",label:"Classic TUI",icon:e.jsx(d,{name:"terminal",size:13}),shortcut:te?"✓":void 0,onClick:()=>{Ke(l=>!l),Ze(null)}}),a},[He,te,m,b]),[be,oe]=s.useState(!1),D=s.useCallback(()=>oe(!1),[]);ja("flat-chat-actions",be,D),s.useEffect(()=>{const a=()=>oe(l=>!l);return window.addEventListener("tide:toggle-chat-actions",a),()=>window.removeEventListener("tide:toggle-chat-actions",a)},[]),s.useEffect(()=>{Ke(!1),oe(!1)},[o]),s.useEffect(()=>{!He&&te&&Ke(!1)},[He,te]),s.useEffect(()=>{const a=re.current;if(!a)return;const l=u=>{u.button===3?(u.preventDefault(),u.stopPropagation(),ee()):u.button===4&&(u.preventDefault(),u.stopPropagation(),le())},i=u=>{(u.button===3||u.button===4)&&u.preventDefault()};return a.addEventListener("mouseup",l),a.addEventListener("mousedown",i),()=>{a.removeEventListener("mouseup",l),a.removeEventListener("mousedown",i)}},[ee,le]),s.useEffect(()=>{const a=re.current;if(!a)return;let l=0,i=0,u=0;const W=250,L=600,$=80,ct=1.5,dt=t=>{let n=t instanceof HTMLElement?t:null;for(;n&&n!==a;){const r=window.getComputedStyle(n).overflowX;if((r==="auto"||r==="scroll")&&n.scrollWidth>n.clientWidth)return!0;n=n.parentElement}return!1},z=t=>{const n=Date.now();if(n<u){t.preventDefault();return}if(Math.abs(t.deltaX)<=Math.abs(t.deltaY)*ct){l=0;return}if(dt(t.target)){l=0;return}n-i>W&&(l=0),i=n,l+=t.deltaX,l<=-$?(l=0,u=n+L,t.preventDefault(),ee()):l>=$&&(l=0,u=n+L,t.preventDefault(),le())};return a.addEventListener("wheel",z,{passive:!1}),()=>a.removeEventListener("wheel",z)},[ee,le]);const Qe=Ca(),ft=s.useMemo(()=>{if(!p)return null;const a=new Set,l=[];for(const i of Qe.values())i.archived||i.directories.length===0||i.assignedAgentIds.includes(o)&&(a.add(i.id),l.push(i));for(const i of Qe.values())i.archived||i.directories.length===0||a.has(i.id)||Zn({x:p.position.x,z:p.position.z},i)&&(a.add(i.id),l.push(i));return l.length===0?null:l.flatMap(i=>i.directories.filter(u=>u&&u.trim().length>0).map(u=>({areaId:i.id,areaName:i.name,dir:u})))},[p,o,Qe]),{branches:Ge,fetchRemote:Se,fetchingDirs:Ee}=mn(ft),[Ie,ce]=s.useState({}),[et,_e]=s.useState(null),Q=s.useMemo(()=>{var W,L;const a=g.getAreaForAgent(o);if(!a)return[];const l=[],i=(W=a.directories.find($=>$&&$.trim().length>0))==null?void 0:W.trim(),u=i?i.split("/").filter(Boolean).pop()||i:a.name;l.push({id:pn(a.id),name:u,hasUrl:!!Ie[a.id],isDefault:!0});for(const $ of O.values())$.type==="terminal"&&g.isPositionInArea($.position,a)&&l.push({id:$.id,name:$.name,hasUrl:!!((L=$.terminalStatus)!=null&&L.url)});return l},[o,O,Qe,Ie]),tt=s.useMemo(()=>{var i;const a=g.getAreaForAgent(o);if(!a)return[];const l=[];for(const u of O.values())u.type==="server"&&((i=u.pm2)!=null&&i.enabled)&&g.isPositionInArea(u.position,a)&&l.push({id:u.id,name:u.name});return l},[o,O]),at=s.useMemo(()=>{const a=g.getAreaForAgent(o);if(!a)return[];const l=[];for(const i of O.values())i.type==="database"&&i.database&&g.isPositionInArea(i.position,a)&&l.push({id:i.id,name:i.name});return l},[o,O]),ht=fn(),we=s.useMemo(()=>{const a=g.getAreaForAgent(o);if(!a)return[];const l=[];for(const i of O.values())if(i.type==="tests"&&g.isPositionInArea(i.position,a)){const u=!!i.folderPath&&ht.some(W=>hn(W,i.folderPath));l.push({id:i.id,name:i.name,working:u})}return l},[o,O,ht]),nt=s.useMemo(()=>{const a=g.getAreaForAgent(o);if(!a)return[];const l=[];for(const i of O.values())i.type==="http"&&g.isPositionInArea(i.position,a)&&l.push({id:i.id,name:i.name});return l},[o,O]),[,Ft]=s.useReducer(a=>a+1,0),V=((Lt=xe.current)==null?void 0:Lt.search.searchMode)??!1,Nt=s.useCallback(()=>{var a;(a=xe.current)==null||a.search.toggleSearch(),Ft()},[]),Me=gn(),Te=Me.isPending(Qt),[_,Le]=s.useState(null),F=_?O.get(_.buildingId):null,[yt,Pe]=s.useState(""),[gt,Bt]=s.useState(()=>xn()),B=s.useMemo(()=>{var a;return((a=g.getAreaForAgent(o))==null?void 0:a.id)??null},[o,O]),de=s.useCallback((a,l)=>{Pe(""),Le(i=>{const u=(i==null?void 0:i.buildingId)===l?null:{type:a,buildingId:l};return B&&ea(B,u),u})},[B]),ue=s.useCallback(()=>{Pe(""),Le(null),B&&ea(B,null)},[B]);s.useEffect(()=>{if((_==null?void 0:_.type)!=="pm2-logs")return;const a=_.buildingId;return g.startLogStreaming(a,200),()=>g.stopLogStreaming(a)},[_]),s.useEffect(()=>{if(_e(null),(_==null?void 0:_.type)!=="terminal"||!Yt(_.buildingId))return;const a=pa(_.buildingId);let l=!1;return bn(a).then(i=>{l||ce(u=>u[a]===i.url?u:{...u,[a]:i.url})}).catch(i=>{l||_e(i instanceof Error?i.message:"Failed to start terminal")}),()=>{l=!0}},[_]);const{height:Wt,onResizeStart:ve}=_n(),{sidePanelWidth:ae,handleSidePanelResizeStart:st}=wn(),[je,At]=s.useState(()=>ta(S.GIT_PANEL_OPEN,!1)),[$e,St]=s.useState(()=>ta(S.BUILDINGS_PANEL_OPEN,!1)),[De,it]=s.useState(!1),ze=s.useCallback(()=>{it(a=>!a)},[]),xt=s.useCallback(()=>it(!1),[]),Ce=s.useCallback(()=>{At(a=>{const l=!a;return pe(S.GIT_PANEL_OPEN,l),l})},[]),Et=s.useCallback(()=>{St(a=>{const l=!a;return pe(S.BUILDINGS_PANEL_OPEN,l),l})},[]),ne=s.useCallback(()=>{At(!1),pe(S.GIT_PANEL_OPEN,!1)},[]),Re=s.useCallback(()=>{St(!1),pe(S.BUILDINGS_PANEL_OPEN,!1)},[]),Ht=vn(),Oe=s.useMemo(()=>({terminal:Q,"pm2-logs":tt,database:at,tests:we,http:nt}),[Q,tt,at,we,nt]);s.useEffect(()=>{if(!_)return;Oe[_.type].some(l=>l.id===_.buildingId)||(Pe(""),Le(null))},[_,Oe]);const lt=s.useRef(void 0);s.useEffect(()=>{var l;if(lt.current===B)return;lt.current=B;const a=B?Ia()[B]:void 0;Pe(""),a&&((l=Oe[a.type])!=null&&l.some(i=>i.id===a.buildingId))?Le(a):Le(null)},[B,Oe]),s.useEffect(()=>{const a=l=>{var W;const i=l.detail;if(!(i!=null&&i.buildingId)||!(i!=null&&i.type)||!((W=Oe[i.type])!=null&&W.some(L=>L.id===i.buildingId)))return;i.handled=!0,Pe("");const u={type:i.type,buildingId:i.buildingId};Le(u),B&&ea(B,u)};return window.addEventListener("tide:dock-building-flat",a),()=>window.removeEventListener("tide:dock-building-flat",a)},[Oe,B]);const[Fe,Be]=s.useState(!1),bt=s.useRef(null);if(s.useEffect(()=>{if(!Fe)return;const a=l=>{bt.current&&!bt.current.contains(l.target)&&Be(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[Fe]),!p)return e.jsx("div",{className:"flat-chat flat-chat--empty",children:e.jsxs("div",{className:"flat-chat__placeholder",children:[e.jsx("span",{className:"flat-chat__placeholder-icon",children:"💬"}),e.jsx("span",{className:"flat-chat__placeholder-text",children:"Select an agent to start chatting"})]})});const _t=!!p.contextStats,{totalTokens:me,contextWindow:rt,usedPercent:ke}=Na(p),It=Math.round(ke*10)/10,Mt=Math.round((100-ke)*10)/10,Xe=ke>=80?"#ff4a4a":ke>=60?"#ff9e4a":ke>=40?"#ffd700":"#4aff9e",ot=(me/1e3).toFixed(1),wt=(rt/1e3).toFixed(1),se=p.cwd,Tt=se?Yn(se):null,Ne=((Pt=p.subordinateIds)==null?void 0:Pt.length)||0,Z=Ne>0;return e.jsxs("div",{ref:re,className:`flat-terminal-wrapper ${je||$e||De?"flat-terminal-wrapper--with-side-panel":""} ${pt?"pane-fading-out":""}`,style:{"--guake-side-panel-width":`min(${ae}px, 70%)`},children:[e.jsxs("div",{className:"flat-terminal-wrapper__header",children:[e.jsxs("button",{type:"button",className:`flat-terminal-wrapper__header-main ${qe?"flat-terminal-wrapper__header-main--active":""}`,onClick:kt,onContextMenu:a=>{a.preventDefault(),a.stopPropagation(),mt({x:a.clientX,y:a.clientY})},title:qe?"Hide agent info":"Show agent info","aria-pressed":qe,children:[e.jsxs("span",{className:`flat-terminal-wrapper__header-avatar${p.status==="working"?" is-working":""}`,children:[e.jsx(ya,{agent:p,size:28}),p.status==="working"&&e.jsx(na,{animated:!0,size:12,className:"flat-terminal-wrapper__header-activity"})]}),e.jsxs("span",{className:"flat-terminal-wrapper__header-info",children:[e.jsx("span",{className:"flat-terminal-wrapper__header-name",children:p.name}),e.jsx("span",{className:"flat-terminal-wrapper__header-status",style:{color:Sa(p.status)},title:p.status==="error"&&p.lastError?p.lastError:void 0,children:p.status})]}),p.taskLabel&&e.jsxs("span",{className:"flat-terminal-wrapper__header-task",title:p.taskLabel,children:["📋 ",p.taskLabel]}),e.jsxs("span",{className:"flat-terminal-wrapper__header-model",children:[e.jsx(Aa,{agent:p,alt:`${p.name} provider`,className:"flat-terminal-wrapper__header-provider-icon"}),(()=>{const{model:a,effort:l}=Kn(p);return e.jsxs("span",{className:"flat-terminal-wrapper__header-model-chip",title:l?`Model: ${a} · Effort: ${l}`:`Model: ${a}`,children:[e.jsx("span",{className:"flat-terminal-wrapper__header-model-name",children:a}),l&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flat-terminal-wrapper__header-model-sep","aria-hidden":"true",children:"·"}),e.jsx("span",{className:"flat-terminal-wrapper__header-model-effort",children:l})]})]})})()]})]}),e.jsxs("div",{className:"flat-terminal-wrapper__header-meta",children:[e.jsx("div",{className:"flat-terminal-wrapper__view-mode",children:e.jsxs("button",{type:"button",className:`flat-terminal-wrapper__view-mode-btn flat-terminal-wrapper__view-mode-trigger${Ue?" flat-terminal-wrapper__view-mode-trigger--open":""}`,onClick:a=>{const l=a.currentTarget.getBoundingClientRect();Ze({x:l.left,y:l.bottom+4})},title:te?"Classic TUI — attach to the live interactive claude session in a terminal":qn[m],"aria-haspopup":"menu","aria-expanded":!!Ue,"aria-label":"Message view mode",children:[e.jsx("span",{className:"flat-terminal-wrapper__view-mode-icon","aria-hidden":"true",children:te?e.jsx(d,{name:"terminal",size:13}):ba[m]}),e.jsx("span",{className:"flat-terminal-wrapper__view-mode-label",children:te?"Classic TUI":xa[m]}),e.jsx(d,{name:"caret-down",size:9})]})}),e.jsxs("div",{className:"flat-terminal-wrapper__actions",role:"group","aria-label":"Terminal actions",children:[e.jsx("button",{type:"button",className:"flat-terminal-wrapper__action-btn",onClick:ee,disabled:!T,title:"Back to previous agent","aria-label":"Back to previous agent",children:e.jsx(d,{name:"arrow-left",size:14})}),e.jsx("button",{type:"button",className:"flat-terminal-wrapper__action-btn",onClick:le,disabled:!he,title:"Forward to next agent","aria-label":"Forward to next agent",children:e.jsx(d,{name:"arrow-right",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${V?"flat-terminal-wrapper__action-btn--active":""}`,onClick:Nt,title:V?"Close search":"Search messages","aria-pressed":V,children:e.jsx(d,{name:V?"cross":"search",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn flat-terminal-wrapper__action-btn--danger ${Te?"flat-terminal-wrapper__action-btn--confirm":""}`,onClick:()=>Me.handleClick(Qt,()=>{var a;g.clearContext(o),(a=xe.current)==null||a.historyLoader.clearHistory()}),title:Te?"Click again to confirm clear context":"Clear context",children:e.jsx(d,{name:Te?"question":"clear",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${je?"flat-terminal-wrapper__action-btn--active":""}`,onClick:Ce,title:je?"Hide git panel":"Show git changes","aria-pressed":je,children:e.jsx(d,{name:"git-branch",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${$e?"flat-terminal-wrapper__action-btn--active":""}`,onClick:Et,title:$e?"Hide buildings panel":"Show area buildings","aria-pressed":$e,children:e.jsx(d,{name:"buildings",size:14})}),e.jsxs("div",{className:"flat-terminal-wrapper__more",ref:bt,children:[e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${Fe?"flat-terminal-wrapper__action-btn--active":""}`,onClick:()=>Be(a=>!a),title:"More actions","aria-expanded":Fe,children:"⋮"}),Fe&&e.jsxs("div",{className:"flat-terminal-wrapper__more-menu",role:"menu",children:[e.jsxs("button",{type:"button",role:"menuitem",className:`flat-terminal-wrapper__more-item ${De?"flat-terminal-wrapper__more-item--active":""}`,onClick:()=>{ze(),Be(!1)},title:De?"Hide Debug Panel":"Show Debug Panel",children:[e.jsx(d,{name:"bug",size:14}),e.jsx("span",{children:De?"Hide Debug Panel":"Show Debug Panel"})]}),e.jsx("div",{className:"flat-terminal-wrapper__more-divider"}),e.jsxs("button",{type:"button",role:"menuitem",className:"flat-terminal-wrapper__more-item",onClick:()=>{g.collapseContext(o),Be(!1)},disabled:p.status!=="idle",title:p.status!=="idle"?"Agent must be idle to collapse context":"Collapse context",children:[e.jsx(d,{name:"package",size:14}),e.jsx("span",{children:"Collapse context"})]}),Z&&e.jsxs("button",{type:"button",role:"menuitem",className:"flat-terminal-wrapper__more-item flat-terminal-wrapper__more-item--danger",onClick:()=>{R(o,Ne),Be(!1)},children:[e.jsx(d,{name:"crown",size:14}),e.jsxs("span",{children:["Clear ",Ne," subordinate",Ne===1?"":"s"]})]}),e.jsx("div",{className:"flat-terminal-wrapper__more-divider"}),e.jsxs("button",{type:"button",role:"menuitem",className:"flat-terminal-wrapper__more-item flat-terminal-wrapper__more-item--danger",onClick:()=>{g.killAgent(o),Be(!1)},children:[e.jsx(d,{name:"cross",size:14}),e.jsx("span",{children:"Remove agent"})]})]})]})]}),e.jsxs("button",{type:"button",className:`flat-terminal-wrapper__inspector-toggle ${y?"flat-terminal-wrapper__inspector-toggle--active":""}`,onClick:I,title:y?"Hide inspector panel":"Show inspector panel","aria-label":y?"Hide inspector panel":"Show inspector panel","aria-pressed":y,children:[e.jsx("span",{className:"flat-terminal-wrapper__inspector-icon","aria-hidden":"true",children:e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"1.5",y:"2.5",width:"13",height:"11",rx:"1.5"}),e.jsx("line",{x1:"10",y1:"2.5",x2:"10",y2:"13.5"})]})}),e.jsx("span",{className:"flat-terminal-wrapper__inspector-label",children:"Inspector"})]}),e.jsx("button",{type:"button",className:"flat-terminal-wrapper__close",onClick:()=>g.deselectAll(),title:"Close chat","aria-label":"Close chat",children:e.jsx(d,{name:"cross",size:14})})]})]}),be&&e.jsxs("div",{className:"flat-chat-actions-sheet-root",role:"presentation",children:[e.jsx("div",{className:"flat-chat-actions-sheet__backdrop",onClick:D}),e.jsxs("div",{className:"flat-chat-actions-sheet",role:"menu","aria-label":"Chat actions",children:[e.jsx("div",{className:"flat-chat-actions-sheet__grabber","aria-hidden":"true"}),e.jsxs("div",{className:"flat-chat-actions-sheet__title-row",children:[e.jsx("span",{className:"flat-chat-actions-sheet__title",children:p.name}),e.jsx("button",{type:"button",className:"flat-chat-actions-sheet__done",onClick:D,children:"Done"})]}),e.jsxs("div",{className:"flat-chat-actions-sheet__grid",children:[e.jsxs("button",{type:"button",role:"menuitem",className:`flat-chat-actions-sheet__item ${V?"is-active":""}`,onClick:()=>{Nt(),D()},children:[e.jsx(d,{name:V?"cross":"search",size:20}),e.jsx("span",{children:V?"Close search":"Search"})]}),e.jsxs("button",{type:"button",role:"menuitem",className:`flat-chat-actions-sheet__item ${je?"is-active":""}`,onClick:()=>{Ce(),D()},children:[e.jsx(d,{name:"git-branch",size:20}),e.jsx("span",{children:"Git changes"})]}),e.jsxs("button",{type:"button",role:"menuitem",className:`flat-chat-actions-sheet__item ${$e?"is-active":""}`,onClick:()=>{Et(),D()},children:[e.jsx(d,{name:"buildings",size:20}),e.jsx("span",{children:"Buildings"})]}),e.jsxs("button",{type:"button",role:"menuitem",className:`flat-chat-actions-sheet__item ${De?"is-active":""}`,onClick:()=>{ze(),D()},children:[e.jsx(d,{name:"bug",size:20}),e.jsx("span",{children:"Debug"})]})]}),e.jsxs("div",{className:"flat-chat-actions-sheet__list",children:[e.jsxs("button",{type:"button",role:"menuitem",className:`flat-chat-actions-sheet__row flat-chat-actions-sheet__row--danger ${Te?"is-armed":""}`,onClick:()=>Me.handleClick(Qt,()=>{var a;g.clearContext(o),(a=xe.current)==null||a.historyLoader.clearHistory(),D()}),children:[e.jsx(d,{name:Te?"question":"clear",size:18}),e.jsx("span",{children:Te?"Tap again to confirm clear":"Clear context"})]}),e.jsxs("button",{type:"button",role:"menuitem",className:"flat-chat-actions-sheet__row",disabled:p.status!=="idle",onClick:()=>{g.collapseContext(o),D()},children:[e.jsx(d,{name:"package",size:18}),e.jsx("span",{children:"Collapse context"})]}),Z&&e.jsxs("button",{type:"button",role:"menuitem",className:"flat-chat-actions-sheet__row flat-chat-actions-sheet__row--danger",onClick:()=>{R(o,Ne),D()},children:[e.jsx(d,{name:"crown",size:18}),e.jsxs("span",{children:["Clear ",Ne," subordinate",Ne===1?"":"s"]})]}),e.jsxs("button",{type:"button",role:"menuitem",className:"flat-chat-actions-sheet__row flat-chat-actions-sheet__row--danger",onClick:()=>{g.killAgent(o),D()},children:[e.jsx(d,{name:"cross",size:18}),e.jsx("span",{children:"Remove agent"})]})]})]})]}),e.jsx(jn,{agent:p,onClick:A}),te&&He?e.jsx(Bn,{agentId:o}):We&&Ye?e.jsx(Cn,{ref:xe,agentId:We,agent:Ye,viewMode:m,isOpen:!0,onImageClick:k,onFileClick:K,onBashClick:j,onViewMarkdown:v,keyboard:fe,hasModalOpen:!1},We):null,_&&(F||Yt(_.buildingId))&&(()=>{var ct,dt;const a=_.type,l=Yt(_.buildingId),i=(F==null?void 0:F.name)??`Terminal — ${((ct=Q.find(z=>z.id===_.buildingId))==null?void 0:ct.name)??"area"}`,u=l?Ie[pa(_.buildingId)]:(dt=F==null?void 0:F.terminalStatus)==null?void 0:dt.url,W={terminal:"terminal","pm2-logs":"scroll",database:"hard-drives",tests:"flask",http:"globe"},L=a==="terminal"&&!u,$=!L&&!l;return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"guake-bottom-terminal-resize",onMouseDown:ve,role:"separator","aria-orientation":"horizontal","aria-label":"Resize embedded panel"}),e.jsxs("div",{className:"flat-bottom-panel",role:"region","aria-label":`${i} panel`,style:{height:Wt},children:[e.jsxs("div",{className:"flat-bottom-panel__header",children:[e.jsxs("span",{className:"flat-bottom-panel__title",children:[e.jsx(d,{name:W[a],size:12}),e.jsx("span",{children:i}),L&&e.jsx("span",{className:"flat-bottom-panel__muted",children:"(starting...)"})]}),e.jsxs("span",{className:"flat-bottom-panel__header-actions",children:[a==="pm2-logs"&&F&&e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"text",className:"guake-bottom-terminal-filter",value:yt,onChange:z=>Pe(z.target.value),placeholder:"Filter logs","aria-label":`Filter logs for ${F.name}`,spellCheck:!1}),e.jsx("select",{className:"guake-bottom-terminal-retention",value:gt===null?"unlimited":String(gt),onChange:z=>{const t=z.target.value==="unlimited"?null:Number(z.target.value);Bt(t),Nn(t)},"aria-label":`Max log retention for ${F.name}`,children:kn.map(z=>e.jsx("option",{value:z===null?"unlimited":String(z),children:z===null?"Unlimited":`${z.toLocaleString()} lines`},z===null?"unlimited":z))}),e.jsx("button",{type:"button",className:"flat-bottom-panel__close",onClick:()=>g.clearStreamingLogs(_.buildingId),title:"Clear logs",children:e.jsx(d,{name:"trash",size:12})}),e.jsx("button",{type:"button",className:"flat-bottom-panel__close",onClick:()=>g.sendBuildingCommand(_.buildingId,"restart"),title:"Restart",children:e.jsx(d,{name:"restart",size:12})})]}),$&&e.jsx("button",{type:"button",className:"flat-bottom-panel__close",onClick:()=>{ue(),ut(_.buildingId)},title:"Maximize — open as modal","aria-label":"Open as modal",children:e.jsx(d,{name:"fullscreen",size:12})}),e.jsx("button",{type:"button",className:"flat-bottom-panel__close",onClick:ue,title:"Close panel","aria-label":"Close panel",children:e.jsx(d,{name:"cross",size:12})})]})]}),e.jsx("div",{className:"flat-bottom-panel__body",children:a==="terminal"?u?e.jsx(va,{terminalUrl:u,visible:!0}):e.jsx("div",{className:"flat-bottom-panel__placeholder",children:et??"Starting terminal..."}):a==="pm2-logs"?e.jsx(yn,{buildingId:_.buildingId,filterText:yt,maxRetention:gt}):F?a==="database"?e.jsx(An,{building:F}):a==="tests"?e.jsx("div",{className:"tests-panel-host",children:e.jsx(Sn,{building:F,autoFocusSearch:!1})}):e.jsx("div",{className:"http-requests-panel-host",children:e.jsx(En,{building:F,autoFocusSearch:!1})}):null})]})]})})(),e.jsxs("div",{className:"flat-terminal-wrapper__statusbar",role:"contentinfo",children:[p.isDetached&&e.jsxs("span",{className:"flat-terminal-wrapper__detached",title:"Reattaching session...",children:[e.jsx(d,{name:"refresh",size:12}),e.jsx("span",{children:"Reattaching"})]}),se&&Tt&&e.jsxs("span",{className:"flat-terminal-wrapper__cwd",title:`Open in file explorer: ${se}`,"aria-label":`Open ${se} in file explorer`,role:"button",tabIndex:0,onClick:()=>g.openFileExplorer(se),onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),g.openFileExplorer(se))},children:[e.jsx("span",{className:"flat-terminal-wrapper__cwd-icon",children:e.jsx(d,{name:"folder",size:12})}),e.jsx("span",{className:"flat-terminal-wrapper__cwd-text",children:Tt})]}),ft&&ft.map(({areaId:a,areaName:l,dir:i})=>{const u=Ge.get(i),W=Ee.has(i),L=i.split("/").filter(Boolean).pop()||i;return e.jsxs("span",{className:"flat-terminal-wrapper__area-dir",title:`${l}: ${i}${u?` (${u.branch}${u.ahead?` ↑${u.ahead}`:""}${u.behind?` ↓${u.behind}`:""})`:""}`,onClick:()=>g.openFileExplorerForAreaFolder(a,i),children:[e.jsx(d,{name:"folder-open",size:12}),e.jsx("span",{className:"flat-terminal-wrapper__area-dir-name",children:L}),u&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"flat-terminal-wrapper__area-dir-branch",children:[e.jsx(d,{name:"git-branch",size:10})," ",u.branch]}),u.ahead>0&&e.jsxs("span",{className:"flat-terminal-wrapper__branch-ahead",title:`${u.ahead} ahead`,children:[e.jsx(d,{name:"arrow-up",size:9}),u.ahead]}),u.behind>0&&e.jsxs("span",{className:"flat-terminal-wrapper__branch-behind",title:`${u.behind} behind`,children:[e.jsx(d,{name:"arrow-down",size:9}),u.behind]}),e.jsx("span",{className:`flat-terminal-wrapper__area-fetch ${W?"flat-terminal-wrapper__area-fetch--fetching":""}`,title:"Git fetch",onClick:$=>{$.stopPropagation(),Se(i)},children:e.jsx(d,{name:W?"hourglass":"download",size:12})})]})]},`${a}:${i}`)}),e.jsx(Gn,{agentId:o,disabled:((p==null?void 0:p.provider)??"claude")!=="claude"&&((p==null?void 0:p.provider)??"claude")!=="grok",contextSummary:_t?`Context: ${ot}k / ${wt}k tokens (${It}% used)`:void 0,children:e.jsxs("span",{className:"flat-terminal-wrapper__context",tabIndex:0,role:"button",onClick:()=>g.setContextModalAgentId(o),onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),g.setContextModalAgentId(o))},title:((p==null?void 0:p.provider)??"claude")!=="claude"&&((p==null?void 0:p.provider)??"claude")!=="grok"?_t?`Context usage: ${ot}k / ${wt}k tokens (${It}% used). Click to view stats.`:"Click to fetch context stats":void 0,children:[e.jsx("span",{className:"flat-terminal-wrapper__context-bar",children:e.jsx("span",{className:"flat-terminal-wrapper__context-bar-fill",style:{width:`${ke}%`,backgroundColor:Xe}})}),e.jsxs("span",{className:"flat-terminal-wrapper__context-tokens",style:{color:Xe},children:[ot,"k/",wt,"k"]}),e.jsxs("span",{className:"flat-terminal-wrapper__context-free",children:["(",Mt,"% free)"]}),!_t&&e.jsx("span",{className:"flat-terminal-wrapper__context-warning",title:"No context stats yet",children:e.jsx(d,{name:"warn",size:12})})]})}),e.jsx("div",{className:"flat-terminal-wrapper__statusbar-spacer","aria-hidden":"true"}),Q.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area terminals",children:Q.map(a=>{const l=(_==null?void 0:_.buildingId)===a.id;return a.isDefault?e.jsx("button",{type:"button",className:`flat-terminal-wrapper__building-btn flat-terminal-wrapper__building-btn--default ${l?"flat-terminal-wrapper__building-btn--active":""}`,title:`${l?"Hide":"Show"} area terminal: ${a.name}`,onClick:()=>{l?ue():de("terminal",a.id)},children:e.jsx(d,{name:"terminal",size:14})},a.id):e.jsx("button",{type:"button",className:`flat-terminal-wrapper__building-btn ${l?"flat-terminal-wrapper__building-btn--active":""} ${a.hasUrl?"":"flat-terminal-wrapper__building-btn--offline"}`,title:`${l?"Hide":"Show"} terminal: ${a.name}${a.hasUrl?"":" (starting...)"}`,onClick:()=>{if(l){ue();return}if(a.hasUrl&&jt(a.id)==="modal"){ut(a.id);return}a.hasUrl||g.sendBuildingCommand(a.id,"start"),de("terminal",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),Ae(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"terminal",size:14})},a.id)})}),tt.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area PM2 logs",children:tt.map(a=>{const l=(_==null?void 0:_.buildingId)===a.id;return e.jsx("button",{type:"button",className:`flat-terminal-wrapper__building-btn ${l?"flat-terminal-wrapper__building-btn--active":""}`,title:`${l?"Hide":"Show"} logs: ${a.name}`,onClick:()=>{l?ue():jt(a.id)==="modal"?ut(a.id):de("pm2-logs",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),Ae(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"scroll",size:14})},a.id)})}),at.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area databases",children:at.map(a=>{const l=(_==null?void 0:_.buildingId)===a.id;return e.jsx("button",{type:"button",className:`flat-terminal-wrapper__building-btn ${l?"flat-terminal-wrapper__building-btn--active":""}`,title:`${l?"Hide":"Show"} database: ${a.name}`,onClick:()=>{l?ue():jt(a.id)==="modal"?ut(a.id):de("database",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),Ae(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"hard-drives",size:14})},a.id)})}),we.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area tests",children:we.map(a=>{const l=(_==null?void 0:_.buildingId)===a.id;return e.jsx("button",{type:"button",className:`flat-terminal-wrapper__building-btn ${l?"flat-terminal-wrapper__building-btn--active":""} ${a.working?"flat-terminal-wrapper__building-btn--tests-working":""}`,title:a.working?`Running tests: ${a.name}`:`${l?"Hide":"Show"} tests: ${a.name}`,onClick:()=>{l?ue():jt(a.id)==="modal"?ut(a.id):de("tests",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),Ae(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"flask",size:14})},a.id)})}),nt.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area HTTP requests",children:nt.map(a=>{const l=(_==null?void 0:_.buildingId)===a.id;return e.jsx("button",{type:"button",className:`flat-terminal-wrapper__building-btn ${l?"flat-terminal-wrapper__building-btn--active":""}`,title:`${l?"Hide":"Show"} HTTP requests: ${a.name}`,onClick:()=>{l?ue():jt(a.id)==="modal"?ut(a.id):de("http",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),Ae(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"globe",size:14})},a.id)})}),e.jsx("div",{className:"flat-terminal-wrapper__theme",children:e.jsx(In,{iconOnly:!0})})]}),je&&e.jsx(Mn,{agentId:o,agents:Ht,onClose:ne,branchInfoMap:Ge,fetchRemote:Se,fetchingDirs:Ee,onResizeStart:a=>st(a,"right")}),$e&&e.jsx(Tn,{agentId:o,onClose:Re}),De&&e.jsx(Ln,{agentId:o,onClose:xt}),e.jsx(sa,{isOpen:Ue!==null,position:Ue??{x:0,y:0},worldPosition:{x:0,z:0},actions:Je,onClose:()=>Ze(null)})]})}),Qn={groups:[],gridCols:1,gridRows:1,positions:new Map};function ss({onAgentClick:c,onBuildingClick:o,onBuildingDoubleClick:m,onBuildingPopup:b,onAreaContextMenu:y,onOpenSpawnModal:I,onOpenBossSpawnModal:A,onOpenAreaModal:k}){const{t:K}=ia(["common"]),j=Wa(),v=s.useMemo(()=>j.size>0?j.values().next().value??null:null,[j]),R=Ha(v===null),fe=Ua(),[T,he]=s.useState(null),[ee,le]=s.useState(null),[qe,kt]=s.useState(null);ja("flatview-image-modal",T!==null,()=>he(null));const[mt,Ae]=s.useState(null),[p,O]=s.useState(null),[ge,xe]=s.useState(null),[re,We]=s.useState(null),[pt,Ye]=s.useState(!1),He=s.useCallback(()=>{Ye(t=>!t)},[]),te=s.useCallback(()=>{Ye(!1)},[]),[Ke,Ue]=s.useState(()=>{const t=Vt(S.VIEW_MODE);return t==="simple"||t==="chat"||t==="advanced"?t:"simple"}),Ze=s.useCallback(t=>{Ue(t),qt(S.VIEW_MODE,t)},[]);s.useEffect(()=>{const t=n=>{if(n.key!==S.VIEW_MODE)return;const r=n.newValue;(r==="simple"||r==="chat"||r==="advanced")&&Ue(r)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[]);const[Je,be]=s.useState(()=>ta(S.FLAT_INSPECTOR_OPEN,!1)),[oe,D]=s.useState(!1),Qe=s.useCallback(()=>D(t=>!t),[]),ft=s.useCallback(()=>D(!1),[]);s.useEffect(()=>{window.dispatchEvent(new CustomEvent("tide-flat-agents-drawer-state",{detail:{open:oe}}))},[oe]),s.useEffect(()=>{window.dispatchEvent(new CustomEvent("tide-flat-inspector-state",{detail:{open:Je}}))},[Je]),s.useEffect(()=>{const t=()=>D(N=>!N),n=()=>{be(N=>{const M=!N;return pe(S.FLAT_INSPECTOR_OPEN,M),M})},r=()=>{D(!1),be(!1),pe(S.FLAT_INSPECTOR_OPEN,!1)},x=()=>D(!1),w=()=>{be(!1),pe(S.FLAT_INSPECTOR_OPEN,!1)};return window.addEventListener("tide-toggle-flat-agents-drawer",t),window.addEventListener("tide-toggle-flat-inspector",n),window.addEventListener("tide-close-flat-side-views",r),window.addEventListener("tide-close-flat-agents-drawer-only",x),window.addEventListener("tide-close-flat-inspector-only",w),()=>{window.removeEventListener("tide-toggle-flat-agents-drawer",t),window.removeEventListener("tide-toggle-flat-inspector",n),window.removeEventListener("tide-close-flat-side-views",r),window.removeEventListener("tide-close-flat-agents-drawer-only",x),window.removeEventListener("tide-close-flat-inspector-only",w)}},[]);const Ge=s.useRef(null),Se=s.useRef(null),[Ee,Ie]=s.useState(()=>{const t=da(S.FLAT_MIDDLE_WIDTH,0);return t>=Ot?t:null}),[ce,et]=s.useState(()=>{const t=da(S.FLAT_INSPECTOR_WIDTH,0);return t>=Jt?t:null}),_e=s.useCallback(t=>{if(typeof window>"u")return t;const n=ce!==null?Rt+ce:0,r=window.innerWidth-ga-Rt-ha-n;return Math.max(Ot,Math.min(Math.max(r,Ot),t))},[ce]),Q=s.useCallback(t=>{var w;if(typeof window>"u")return t;const n=(w=Ge.current)==null?void 0:w.querySelector(".flat-middle"),r=(n==null?void 0:n.getBoundingClientRect().width)??Ot,x=window.innerWidth-ga-r-Rt-ha-Rt;return Math.max(Jt,Math.min(Math.max(x,Jt),t))},[]);s.useEffect(()=>{if(Ee===null&&ce===null)return;const t=()=>{Ie(n=>{if(n===null)return n;const r=_e(n);return r===n?n:r}),et(n=>{if(n===null)return n;const r=Q(n);return r===n?n:r})};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[Ee,ce,_e,Q]);const tt=s.useCallback(t=>{var r;if(t.button!==0)return;const n=(r=Ge.current)==null?void 0:r.querySelector(".flat-middle");n&&(t.currentTarget.setPointerCapture(t.pointerId),Se.current={kind:"middle",startX:t.clientX,startWidth:n.getBoundingClientRect().width,pointerId:t.pointerId},document.body.classList.add("flat-splitter-dragging"))},[]),at=s.useCallback(t=>{var r;if(t.button!==0)return;const n=(r=Ge.current)==null?void 0:r.querySelector(".flat-inspector");n&&(t.currentTarget.setPointerCapture(t.pointerId),Se.current={kind:"inspector",startX:t.clientX,startWidth:n.getBoundingClientRect().width,pointerId:t.pointerId},document.body.classList.add("flat-splitter-dragging"))},[]),ht=s.useCallback(t=>{const n=Se.current;if(!n||t.pointerId!==n.pointerId)return;const r=t.clientX-n.startX;n.kind==="middle"?Ie(_e(n.startWidth+r)):et(Q(n.startWidth-r))},[_e,Q]),we=s.useCallback(t=>{const n=Se.current;if(!n||t.pointerId!==n.pointerId)return;try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}if(Se.current=null,document.body.classList.remove("flat-splitter-dragging"),!(Math.abs(t.clientX-n.startX)>2))return;const x=t.clientX-n.startX;if(n.kind==="middle"){const w=_e(n.startWidth+x);Ie(w),zt(S.FLAT_MIDDLE_WIDTH,w)}else{const w=Q(n.startWidth-x);et(w),zt(S.FLAT_INSPECTOR_WIDTH,w)}},[_e,Q]),nt=s.useCallback(()=>{Ie(null),zt(S.FLAT_MIDDLE_WIDTH,0)},[]),Ft=s.useCallback(()=>{et(null),zt(S.FLAT_INSPECTOR_WIDTH,0)},[]),[V,Nt]=s.useState(()=>Vt(S.FLAT_INSPECTOR_VIEW)==="tracking"?"tracking":"agent"),Me=s.useCallback(t=>{Nt(t),qt(S.FLAT_INSPECTOR_VIEW,t)},[]),Te=s.useCallback(()=>{be(t=>{const n=!t;return pe(S.FLAT_INSPECTOR_OPEN,n),n})},[]),_=s.useCallback(()=>{be(!1),pe(S.FLAT_INSPECTOR_OPEN,!1)},[]),Le=s.useCallback(()=>{Me("tracking"),be(!0),pe(S.FLAT_INSPECTOR_OPEN,!0)},[Me]),F=Ga(),yt=s.useCallback((t,n)=>{he({url:t,name:n})},[]),Pe=s.useCallback((t,n)=>{le({command:t,output:n,isLive:!1})},[]),gt=s.useCallback((t,n)=>{var w;const r=j.size>0?Array.from(j)[0]:null,x=r?(w=g.getState().agents.get(r))==null?void 0:w.cwd:void 0;g.setFileViewerPath(t,n,x)},[j]),Bt=s.useCallback(t=>{kt(t)},[]),B=s.useCallback((t,n)=>{Ae({agentId:t,count:n})},[]),de=s.useCallback(t=>{m?m(t):o(t)},[o,m]),ue=s.useCallback(t=>{v&&O({agentId:v,position:t})},[v]),Wt=s.useCallback((t,n)=>{xe({buildingId:t,position:n})},[]);s.useEffect(()=>{Ye(!1)},[v]);const ve=s.useRef([]),ae=s.useRef(-1),st=s.useRef(!1),je=s.useRef(Vt(S.LAST_OPENED_AGENT,"")||null),[At,$e]=s.useState(!1),[St,De]=s.useState(!1),it=s.useRef(!1),ze=s.useRef(null),xt=s.useRef(!1),Ce=s.useMemo(()=>new Set(fe),[fe]),Et=s.useMemo(()=>{const t=new Map(R.map(r=>[r.id,r])),n=new Map;for(const r of R)if((r.isBoss||r.class==="boss")&&r.subordinateIds&&r.subordinateIds.length>0){const x=r.subordinateIds.map(w=>t.get(w)).filter(w=>w!==void 0);x.length>0&&n.set(r.id,x)}return n},[R]),ne=s.useCallback(()=>{const t=ve.current,n=ae.current;$e(n>0),De(n>=0&&n<t.length-1)},[]),Re=s.useCallback(t=>{const n=ve.current;if(n.length===0)return;let r=ae.current+t;for(;r>=0&&r<n.length;){const x=n[r];if(Ce.has(x)){st.current=!0,ae.current=r,ne(),g.selectAgent(x);return}r+=t}},[Ce,ne]),Ht=s.useCallback(()=>Re(-1),[Re]),Oe=s.useCallback(()=>Re(1),[Re]);Rn(s.useCallback(()=>{const t=ve.current,n=ae.current;return t.length>0&&n>0?(Re(-1),"handled"):"exit"},[Re]));const lt=s.useCallback((t,n)=>{if(typeof window>"u")return;const r=window.history.state,w={...typeof r=="object"&&r!==null?r:{},__flatAgentNav:{agentId:t}};n==="replace"?window.history.replaceState(w,"",window.location.href):window.history.pushState(w,"",window.location.href)},[]);s.useEffect(()=>{if(!v){it.current=!1,ze.current=null;return}if(!it.current){lt(v,"replace"),it.current=!0,ze.current=v;return}if(xt.current){xt.current=!1,ze.current=v;return}ze.current!==v&&(lt(v,"push"),ze.current=v)},[v,lt]),s.useEffect(()=>{const t=n=>{var N,M;const r=(M=(N=n.state)==null?void 0:N.__flatAgentNav)==null?void 0:M.agentId;if(!r||typeof r!="string"||!Ce.has(r)||r===v)return;xt.current=!0,st.current=!0;const x=ve.current,w=x.lastIndexOf(r);w>=0?ae.current=w:(x.push(r),ae.current=x.length-1),ne(),g.selectAgent(r)};return window.addEventListener("popstate",t),()=>window.removeEventListener("popstate",t)},[Ce,v,ne]),s.useEffect(()=>{if(!v){ve.current=[],ae.current=-1,ne();return}if(je.current=v,qt(S.LAST_OPENED_AGENT,v),st.current){st.current=!1,ne();return}const t=ve.current,n=ae.current;if(n>=0&&t[n]===v){ne();return}const r=n<t.length-1?t.slice(0,n+1):t.slice();r.push(v),r.length>100&&r.shift(),ve.current=r,ae.current=r.length-1,ne()},[v,ne]);const Fe=s.useCallback(t=>{c(t),D(!1)},[c]),Be=v??"",bt=s.useCallback(()=>{},[]),_t=s.useCallback(t=>{Fe(t)},[Fe]),me=Je,[rt,ke]=s.useState(me),[It,Mt]=s.useState(me),Xe=aa(pt||qe!==null||rt&&V==="agent"?v:null);s.useEffect(()=>{if(me){ke(!0);return}Mt(!1);const t=setTimeout(()=>ke(!1),240);return()=>clearTimeout(t)},[me]),s.useEffect(()=>{if(!rt||!me)return;let t=0;const n=requestAnimationFrame(()=>{t=requestAnimationFrame(()=>Mt(!0))});return()=>{cancelAnimationFrame(n),cancelAnimationFrame(t)}},[rt,me]);const ot=s.useRef(null);s.useEffect(()=>{if(v)return;const t=n=>{if(n.key!==" "&&n.key!=="Backspace")return;const r=n.target;if(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable)return;const x=je.current;!x||!Ce.has(x)||(n.preventDefault(),g.selectAgent(x))};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[v,Ce]);const[wt,se]=s.useState(new Set),Tt=s.useCallback(t=>{se(n=>{const r=new Set(n);return r.has(t)?r.delete(t):r.add(t),r})},[]),Ne=s.useCallback(t=>{se(new Set(t))},[]),[Z,Lt]=s.useState(()=>typeof window<"u"&&window.matchMedia("(max-width: 768px)").matches);s.useEffect(()=>{if(typeof window>"u")return;const t=window.matchMedia("(max-width: 768px)"),n=r=>Lt(r.matches);return t.addEventListener("change",n),()=>t.removeEventListener("change",n)},[]);const[Pt,a]=s.useState(null),l=s.useCallback(t=>{a(n=>n===t?null:t)},[]),i=Ca(),u=ka(),[W]=Xa(),L=s.useMemo(()=>{if(v)return Qn;const t=new Map,n=[];for(const h of R){const C=g.getAreaForAgent(h.id);if(!ua((C==null?void 0:C.id)??null))continue;if(!C||C.archived){n.push(h);continue}const P=t.get(C.id);P?P.push(h):t.set(C.id,[h])}const r=new Map,x=[];for(const h of u.values()){let C=!1;for(const P of i.values())if(!P.archived&&ma(P.id)&&g.isPositionInArea(h.position,P)){const ie=r.get(P.id);ie?ie.push(h):r.set(P.id,[h]),C=!0;break}!C&&ua(null)&&x.push(h)}const w=[];for(const[,h]of i){if(h.archived||!ma(h.id))continue;const C=t.get(h.id),P=r.get(h.id)??[];(C&&C.length>0||P.length>0)&&w.push({area:h,agents:C??[],buildings:P})}(n.length>0||x.length>0)&&w.push({area:{id:"__unassigned__",name:"Unassigned",color:"#6272a4",center:{x:0,z:0},type:"circle",radius:0,directories:[],archived:!1,assignedAgentIds:[],zIndex:0},agents:n,buildings:x});const N=w.filter(h=>h.area.id!=="__unassigned__"),M=w.filter(h=>h.area.id==="__unassigned__");let G=1,H=1;const f=new Map;if(N.length>1){let h=1/0,C=-1/0,P=1/0,ie=-1/0;for(const q of N)h=Math.min(h,q.area.center.x),C=Math.max(C,q.area.center.x),P=Math.min(P,q.area.center.z),ie=Math.max(ie,q.area.center.z);const ye=C-h||1,$t=ie-P||1;if(N.length<=4){G=N.length,H=1;const q=[...N].sort((Y,Ut)=>Y.area.center.x-Ut.area.center.x);for(let Y=0;Y<q.length;Y++)f.set(q[Y].area.id,{row:1,col:Y+1})}else{const q=[...N].sort((E,U)=>E.area.center.x-U.area.center.x),Y=[];for(let E=1;E<q.length;E++)Y.push(q[E].area.center.x-q[E-1].area.center.x);const Ut=Y.reduce((E,U)=>E+U,0)/Y.length||1;let la=1;for(const E of Y)E>Ut*1.3&&la++;G=Math.max(2,Math.min(la,N.length));const Gt=[...N].sort((E,U)=>E.area.center.z-U.area.center.z),Dt=[];for(let E=1;E<Gt.length;E++)Dt.push(Gt[E].area.center.z-Gt[E-1].area.center.z);const Ma=Dt.reduce((E,U)=>E+U,0)/Dt.length||1;let ra=1;for(const E of Dt)E>Ma*1.3&&ra++;H=Math.max(2,Math.min(ra,N.length)),G=Math.max(G,Math.ceil(N.length/H)),H=Math.max(H,Math.ceil(N.length/G));const Ta=ye/G,La=$t/H,Xt=new Set;for(const E of N){let U=Math.min(G-1,Math.max(0,Math.floor((E.area.center.x-h)/Ta))),Ve=Math.min(H-1,Math.max(0,Math.floor((E.area.center.z-P)/La))),vt=`${Ve},${U}`,oa=0;const Pa=H*G;for(;Xt.has(vt)&&oa<Pa;)U++,U>=G&&(U=0,Ve=(Ve+1)%H),vt=`${Ve},${U}`,oa++;Xt.has(vt)&&(Ve=H,U=0,vt=`${Ve},${U}`,H++),Xt.add(vt),f.set(E.area.id,{row:Ve+1,col:U+1})}}}const J=h=>{h.sort((C,P)=>{var ye,$t,q,Y;const ie=(((ye=C.position)==null?void 0:ye.z)??0)-((($t=P.position)==null?void 0:$t.z)??0);return ie!==0?ie:(((q=C.position)==null?void 0:q.x)??0)-(((Y=P.position)==null?void 0:Y.x)??0)})};for(const h of N)J(h.agents);for(const h of M)J(h.agents);const X=[...N,...M].sort((h,C)=>h.area.name.localeCompare(C.area.name,void 0,{sensitivity:"base",numeric:!0})||h.area.id.localeCompare(C.area.id));return f.clear(),X.forEach((h,C)=>{f.set(h.area.id,{row:Math.floor(C/G)+1,col:C%G+1})}),H=Math.max(1,Math.ceil(X.length/G)),{groups:X,gridCols:G,gridRows:H,positions:f}},[R,i,u,W,v]),$=s.useMemo(()=>{let t=0,n=0;for(const r of L.groups)t+=r.agents.length,n+=r.agents.filter(x=>x.status==="working").length;return{areaCount:L.groups.length,agentCount:t,workingCount:n}},[L]),ct=s.useMemo(()=>{if(!p)return[];const t=g.getState().agents.get(p.agentId);return t?[{id:"edit-agent",label:"Edit Agent",icon:e.jsx(d,{name:"edit",size:14}),onClick:()=>{window.dispatchEvent(new CustomEvent("tide:open-agent-edit",{detail:{agentId:t.id}}))}},{id:"open-chat",label:"Open Chat",icon:e.jsx(d,{name:"chat",size:14}),onClick:()=>c(t.id)},{id:"clone-agent",label:"Clone Agent",icon:e.jsx(d,{name:"clipboard",size:14}),onClick:()=>g.cloneAgent(t.id)},{id:"fork-agent",label:"Fork Agent (with history)",icon:e.jsx(d,{name:"git-branch",size:14}),onClick:()=>g.forkAgent(t.id)},{id:"delete-agent",label:"Delete Agent",icon:e.jsx(d,{name:"trash",size:14}),danger:!0,onClick:()=>{We({agentId:t.id,name:t.name})}}]:[]},[p,c]),dt=s.useMemo(()=>{var N;if(!ge)return[];const t=u.get(ge.buildingId);if(!t)return[];const n=[],r=t.type==="server"||t.type==="docker"||t.type==="terminal",x=t.status==="running",w=t.type==="boss";if(n.push({id:"open",label:t.type==="database"?"Open Database":t.type==="folder"?"Open Folder":t.type==="tests"?"Open Tests":t.type==="http"?"Open Requests":t.type==="boss"?"View Boss Logs":t.type==="terminal"?"Open Terminal":t.type==="server"&&((N=t.pm2)!=null&&N.enabled)?"View PM2 Logs":"Open",icon:e.jsx(d,{name:t.type==="database"?"database":t.type==="folder"?"folder":t.type==="tests"?"flask":t.type==="http"?"globe":t.type==="terminal"?"terminal":"eye",size:14}),onClick:()=>de(t.id)}),r&&(x||n.push({id:"start",label:"Start",icon:e.jsx(d,{name:"play",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"start")}),x&&(n.push({id:"restart",label:"Restart",icon:e.jsx(d,{name:"refresh",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"restart")}),n.push({id:"stop",label:"Stop",icon:e.jsx(d,{name:"stop",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"stop")}))),w&&t.subordinateBuildingIds&&t.subordinateBuildingIds.length>0&&(n.push({id:"start-all",label:"Start All Subordinates",icon:e.jsx(d,{name:"launch",size:14}),onClick:()=>{for(const M of t.subordinateBuildingIds)g.sendBuildingCommand(M,"start")}}),n.push({id:"stop-all",label:"Stop All Subordinates",icon:e.jsx(d,{name:"pause",size:14}),onClick:()=>{for(const M of t.subordinateBuildingIds)g.sendBuildingCommand(M,"stop")}}),n.push({id:"restart-all",label:"Restart All Subordinates",icon:e.jsx(d,{name:"restart",size:14}),onClick:()=>{for(const M of t.subordinateBuildingIds)g.sendBuildingCommand(M,"restart")}})),r&&n.push({id:"health-check",label:"Health Check",icon:e.jsx(d,{name:"health",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"healthCheck")}),n.push({id:"divider-edit",label:"",divider:!0,onClick:()=>{}}),n.push({id:"edit",label:"Edit Building",icon:e.jsx(d,{name:"edit",size:14}),onClick:()=>{window.dispatchEvent(new CustomEvent("tide:building-edit",{detail:{buildingId:t.id}}))}}),n.push({id:"clone",label:"Clone Building",icon:e.jsx(d,{name:"copy",size:14}),onClick:()=>{g.createBuilding({name:`${t.name} (Copy)`,type:t.type,style:t.style,color:t.color,scale:t.scale,position:{x:t.position.x+2,z:t.position.z+2},cwd:t.cwd,folderPath:t.folderPath,commands:t.commands,pm2:t.pm2,docker:t.docker,database:t.database,terminal:t.terminal,urls:t.urls,subordinateBuildingIds:t.subordinateBuildingIds})}}),t.urls&&t.urls.length>0)for(const M of t.urls)n.push({id:`url-${M.label}`,label:M.label,icon:e.jsx(d,{name:"link",size:14}),onClick:()=>window.open(M.url,"_blank","noopener,noreferrer")});return n.push({id:"divider-danger",label:"",divider:!0,onClick:()=>{}}),n.push({id:"delete",label:"Delete Building",icon:e.jsx(d,{name:"trash",size:14}),danger:!0,onClick:()=>g.deleteBuilding(t.id)}),n},[ge,u,de]),z=s.useCallback(t=>{se(new Set([t])),requestAnimationFrame(()=>{const n=ot.current;if(!n)return;const r=n.querySelector(`[data-area-id="${t}"]`);if(!r)return;const x=n.getBoundingClientRect(),N=r.getBoundingClientRect().top-x.top+n.scrollTop-8;n.scrollTo({top:Math.max(0,N),behavior:"smooth"})})},[]);return e.jsxs("div",{ref:Ge,className:`flat-view ${me?"flat-view--with-inspector":""} ${v?"flat-view--has-chat":""} ${oe?"flat-view--mobile-sidebar-open":""}`,style:(()=>{if(Ee===null&&ce===null)return;const t={};return Ee!==null&&(t["--flat-middle-width"]=`${Ee}px`),ce!==null&&(t["--flat-inspector-width"]=`${ce}px`),t})(),children:[oe&&e.jsx("div",{className:"flat-mobile-sidebar-backdrop",onClick:ft,"aria-hidden":"true"}),e.jsxs("div",{className:"flat-middle",children:[e.jsx("div",{className:"flat-middle__header",children:e.jsxs("div",{className:"flat-middle__actions",children:[e.jsx("button",{className:"flat-cta-btn flat-cta-btn--agent",onClick:I,title:"Create new agent",children:"+ Agent"}),e.jsx("button",{className:"flat-cta-btn flat-cta-btn--boss",onClick:A,title:"Create new boss agent",children:"+ Boss"}),e.jsx("button",{className:"flat-cta-btn flat-cta-btn--area",onClick:k,title:"Create new area",children:"+ Area"})]})}),e.jsx("div",{className:"flat-middle__content",children:e.jsx(Va,{activeAgentId:Be,onClose:bt,onSelectAgent:_t,expandedAreas:wt,onToggleArea:Tt,onSetExpandedAreas:Ne,agentListRef:ot})})]}),e.jsx("div",{className:"flat-splitter flat-splitter--middle",role:"separator","aria-orientation":"vertical","aria-label":"Resize agents panel",title:"Drag to resize · Double-click to reset",onPointerDown:tt,onPointerMove:ht,onPointerUp:we,onPointerCancel:we,onDoubleClick:nt}),e.jsxs("div",{className:"flat-right",children:[e.jsxs("button",{type:"button",className:"flat-mobile-sidebar-toggle","aria-label":oe?"Close agents sidebar":"Open agents sidebar","aria-expanded":oe,onClick:Qe,children:[e.jsx(d,{name:"list",size:18}),e.jsx("span",{className:"flat-mobile-sidebar-toggle__label",children:"Agents"})]}),v?e.jsx(Jn,{agentId:v,terminalViewMode:Ke,onTerminalViewModeChange:Ze,inspectorOpen:Je,onToggleInspector:Te,onShowTaskBoard:Le,onImageClick:yt,onFileClick:gt,onBashClick:Pe,onViewMarkdown:Bt,onRequestClearSubordinates:B,keyboard:F,canNavigateBack:At,canNavigateForward:St,onNavigateBack:Ht,onNavigateForward:Oe,agentInfoOpen:pt,onToggleAgentInfo:He,onHeaderContextMenu:ue,onBuildingContextMenu:Wt}):e.jsx("div",{className:"flat-chat flat-chat--empty",children:e.jsxs("div",{className:"flat-map",children:[e.jsxs("div",{className:"flat-map__header",children:[e.jsx("span",{className:"flat-map__title",children:"🗺️ Areas"}),e.jsx("span",{className:"flat-map__hint",children:"Click an area to focus it, or an agent to chat"}),e.jsxs("span",{className:"flat-map__stats",children:[e.jsxs("span",{children:[$.areaCount," areas"]}),e.jsxs("span",{children:[$.agentCount," agents"]}),$.workingCount>0&&e.jsxs("span",{className:"flat-map__stats-working",children:[e.jsx("span",{className:"flat-map__stats-dot","aria-hidden":"true"}),$.workingCount," working"]})]}),e.jsx(Xn,{className:"flat-map__view-mode"})]}),e.jsx("div",{className:"flat-map__grid",style:{gridTemplateColumns:Z?"repeat(2, minmax(0, 1fr))":`repeat(${L.gridCols}, 1fr)`},children:L.groups.length===0?e.jsx("div",{className:"flat-map__empty",children:e.jsx("span",{children:"No areas or agents yet"})}):(Z?[...L.groups].sort((n,r)=>{const x=L.positions.get(n.area.id),w=L.positions.get(r.area.id);return!x&&!w?0:x?w?x.row-w.row||x.col-w.col:-1:1}):L.groups).map(n=>{var H;const r=n.area.id,x=L.positions.get(r),w=n.agents.filter(f=>f.status==="working").length,N=w>0,M=Z&&Pt!==r,G=Z&&!M;return e.jsxs("div",{className:`flat-map-area-card${N?" flat-map-area-card--working":""}${M?" flat-map-area-card--collapsed":""}${G?" flat-map-area-card--expanded":""}`,style:{"--area-color":n.area.color,gridRow:Z||x==null?void 0:x.row,gridColumn:Z||x==null?void 0:x.col},onContextMenu:f=>{y&&(f.preventDefault(),f.stopPropagation(),y(r,{x:f.clientX,y:f.clientY}))},children:[e.jsxs("button",{type:"button",className:"flat-map-area-card__header",onClick:()=>Z?l(r):z(r),title:Z?M?`Expand ${n.area.name}`:`Collapse ${n.area.name}`:`Focus ${n.area.name} in left panel`,"aria-expanded":Z?!M:void 0,children:[e.jsx("span",{className:"flat-map-area-card__color",style:{background:n.area.color}}),((H=n.area.logo)==null?void 0:H.filename)&&e.jsx("img",{className:"flat-map-area-card__logo",src:zn(n.area.logo.filename),alt:"","aria-hidden":"true",onError:f=>{f.currentTarget.style.display="none"}}),e.jsx("span",{className:"flat-map-area-card__name",children:n.area.name}),e.jsxs("span",{className:"flat-map-area-card__count",title:`${n.agents.length} agent${n.agents.length===1?"":"s"}`,"aria-label":`${n.agents.length} agent${n.agents.length===1?"":"s"}`,children:[e.jsx(d,{name:"users",size:10}),n.agents.length]}),N&&e.jsxs("span",{className:"flat-map-area-card__working",title:`${w} working agent${w===1?"":"s"}`,"aria-label":`${w} working agent${w===1?"":"s"}`,children:[e.jsx(na,{animated:!0,size:12,className:"flat-map-area-card__working-glyph"}),e.jsx("span",{className:"flat-map-area-card__working-count",children:w})]}),Z&&e.jsx(d,{name:M?"caret-down":"caret-up",size:11,className:"flat-map-area-card__caret"})]}),e.jsx("div",{className:"flat-map-area-card__agents",children:n.agents.map(f=>{const J=f.isBoss||f.class==="boss",X=J?Et.get(f.id):void 0,h=Na(f),C=h.usedPercent>=80?"#ff4a4a":h.usedPercent>=60?"#ff9e4a":h.usedPercent>=40?"#ffd700":"#4aff9e",P=`Context: ${(h.totalTokens/1e3).toFixed(1)}k / ${(h.contextWindow/1e3).toFixed(1)}k (${h.usedPercent}% used, ${h.freePercent}% free)`,ie=f.latestTodos&&f.latestTodos.length>0||X&&X.length>0;return e.jsx(qa,{todos:f.latestTodos,subordinates:X,position:"top",children:e.jsxs("button",{type:"button",className:`flat-map-agent-chip ${f.status}`,onClick:()=>c(f.id),onContextMenu:ye=>{ye.preventDefault(),ye.stopPropagation(),O({agentId:f.id,position:{x:ye.clientX,y:ye.clientY}})},title:ie?void 0:`${J?"Boss · ":""}Open chat with ${f.name}
2
- ${P}`,children:[e.jsx(ya,{agent:f,size:16}),J&&e.jsx("span",{className:"flat-map-agent-chip__crown","aria-hidden":"true",children:e.jsx(d,{name:"crown",size:11,color:"#ffd700",weight:"fill"})}),e.jsx("span",{className:"flat-map-agent-chip__name",children:f.name}),e.jsx(Aa,{agent:f,alt:`${f.name} provider`,className:"flat-map-agent-chip__provider-icon"}),f.status==="working"?e.jsx(na,{animated:!0,size:11,className:"flat-map-agent-chip__activity"}):e.jsx("span",{className:"flat-map-agent-chip__dot",style:{backgroundColor:Sa(f.status)}}),f.latestTodos&&f.latestTodos.length>0&&e.jsx(Ya,{todos:f.latestTodos,maxDots:6}),J&&X&&X.length>0&&e.jsx(Ka,{subordinates:X,maxDots:6}),e.jsx("span",{className:"flat-map-agent-chip__context-bar","aria-hidden":"true",children:e.jsx("span",{className:"flat-map-agent-chip__context-bar-fill",style:{width:`${h.usedPercent}%`,backgroundColor:C}})})]})},f.id)})}),n.area.directories.length>0&&e.jsx("div",{className:"flat-map-area-card__folders",role:"group","aria-label":`${n.area.name} folders`,children:n.area.directories.map(f=>{const J=f.split("/").filter(Boolean).pop()||f;return e.jsxs("button",{type:"button",className:"flat-map-folder-chip",onClick:X=>{X.stopPropagation(),g.openFileExplorerForAreaFolder(r,f)},title:`Open in file explorer: ${f}`,children:[e.jsx(d,{name:"folder-open",size:12}),e.jsx("span",{className:"flat-map-folder-chip__name",children:J})]},f)})}),n.buildings.length>0&&e.jsx("div",{className:"flat-map-area-card__buildings",children:n.buildings.map(f=>{var X;const J=(X=Za[f.type])==null?void 0:X.color;return e.jsxs("button",{type:"button",className:`flat-map-building-chip flat-map-building-chip--${f.status}`,style:J?{"--building-type-color":J}:void 0,onClick:h=>{if(b){const C=h.currentTarget.getBoundingClientRect();b(f.id,{x:C.right,y:C.top+C.height/2})}else de(f.id)},onContextMenu:h=>{h.preventDefault(),h.stopPropagation(),xe({buildingId:f.id,position:{x:h.clientX,y:h.clientY}})},title:`${f.name} · ${f.type} · ${f.status}`,children:[e.jsx(d,{name:Ja(f.type),size:12,color:J}),e.jsx("span",{className:"flat-map-building-chip__name",children:f.name}),e.jsx("span",{className:"flat-map-building-chip__dot",style:{backgroundColor:Qa(f.status)}})]},f.id)})})]},r)})})]})})]}),me&&e.jsx("div",{className:"flat-splitter flat-splitter--inspector",role:"separator","aria-orientation":"vertical","aria-label":"Resize inspector panel",title:"Drag to resize · Double-click to reset",onPointerDown:at,onPointerMove:ht,onPointerUp:we,onPointerCancel:we,onDoubleClick:Ft}),rt&&e.jsxs("aside",{className:`flat-inspector ${It?"flat-inspector--open":"flat-inspector--closing"}`,"aria-label":"Inspector panel",children:[e.jsxs("div",{className:"flat-inspector__header",children:[e.jsxs("div",{className:"flat-inspector__tabs",role:"tablist","aria-label":"Inspector view",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":V==="agent",className:`flat-inspector__tab ${V==="agent"?"flat-inspector__tab--active":""}`,onClick:()=>Me("agent"),children:"Agent"}),e.jsx("button",{type:"button",role:"tab","aria-selected":V==="tracking",className:`flat-inspector__tab ${V==="tracking"?"flat-inspector__tab--active":""}`,onClick:()=>Me("tracking"),children:"Tracking"})]}),e.jsx("button",{type:"button",className:"flat-inspector__close",onClick:_,title:"Close inspector","aria-label":"Close inspector",children:"✕"})]}),e.jsx("div",{className:"flat-inspector__body",children:V==="tracking"?e.jsx(en,{activeAgentId:v??"",onSelectAgent:t=>{c(t),window.innerWidth<=768&&_()}}):v?Xe?e.jsx(tn,{agent:Xe,onFocusAgent:t=>{c(t),window.innerWidth<=768&&_()},onKillAgent:t=>g.killAgent(t)}):e.jsx("div",{className:"flat-inspector__empty",children:e.jsx("span",{children:"Agent not found"})}):e.jsx("div",{className:"flat-inspector__empty",children:e.jsx("span",{children:"Select an agent to inspect"})})})]}),T&&e.jsx(an,{url:T.url,name:T.name,onClose:()=>he(null)}),ee&&e.jsx(nn,{state:ee,onClose:()=>le(null)}),e.jsx(sn,{agent:Xe??null,content:qe,onClose:()=>kt(null)}),mt&&e.jsx(ln,{action:"clear-subordinates",selectedAgentId:mt.agentId,subordinateCount:mt.count,onClose:()=>Ae(null),onClearHistory:()=>{}}),e.jsx(rn,{agent:Xe??null,isOpen:pt&&!!v,onClose:te}),e.jsx(sa,{isOpen:p!==null,position:(p==null?void 0:p.position)??{x:0,y:0},worldPosition:{x:0,z:0},actions:ct,onClose:()=>O(null)}),e.jsx(sa,{isOpen:ge!==null,position:(ge==null?void 0:ge.position)??{x:0,y:0},worldPosition:{x:0,z:0},actions:dt,onClose:()=>xe(null)}),e.jsx(on,{isOpen:re!==null,title:K("common:confirm.removeAgentTitle"),message:K("common:confirm.removeAgentMessage",{name:(re==null?void 0:re.name)??""}),confirmLabel:K("common:buttons.remove"),cancelLabel:K("common:buttons.cancel"),variant:"danger",onConfirm:()=>{re&&g.removeAgentFromServer(re.agentId)},onClose:()=>We(null)})]})}export{ss as FlatView};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-DmAaMs-2.js","assets/main-Bb9H5jmt.js","assets/vendor-react--Eh9ivFN.js","assets/vendor-three-CBPuP1jE.js","assets/main-CSv15YYo.css"])))=>i.map(i=>d[i]);
2
- import{a9 as e,a1 as a}from"./main-Bb9H5jmt.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-CBPuP1jE.js";var i;(function(r){r.Heavy="HEAVY",r.Medium="MEDIUM",r.Light="LIGHT"})(i||(i={}));var t;(function(r){r.Success="SUCCESS",r.Warning="WARNING",r.Error="ERROR"})(t||(t={}));const E=e("Haptics",{web:()=>a(()=>import("./web-DmAaMs-2.js"),__vite__mapDeps([0,1,2,3,4])).then(r=>new r.HapticsWeb)});export{E as Haptics,i as ImpactStyle,t as NotificationType};