tide-commander 1.199.2 → 1.199.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/assets/{AudioPlayer-XaWiU7f4.js → AudioPlayer-A_DNcPYr.js} +1 -1
- package/dist/assets/{BossLogsModal-1tI-leZQ.js → BossLogsModal-7i0Dfzei.js} +1 -1
- package/dist/assets/{BossSpawnModal-CRoChH0J.js → BossSpawnModal-fBYj1bCx.js} +1 -1
- package/dist/assets/{ControlsModal-Cu7kwhct.js → ControlsModal-CUQiPa2F.js} +1 -1
- package/dist/assets/{DockerLogsModal-DFAiOsWH.js → DockerLogsModal--VKfyjl3.js} +1 -1
- package/dist/assets/{EmbeddedEditor-hnSknX5L.js → EmbeddedEditor-hNl7brYP.js} +1 -1
- package/dist/assets/{FcStdViewer-B_cbRz1w.js → FcStdViewer-B8y6Kf36.js} +1 -1
- package/dist/assets/{GcodeViewer-CFgwEZ6g.js → GcodeViewer-COcNJnpt.js} +1 -1
- package/dist/assets/{GlbViewer-14WSSXX7.js → GlbViewer-C0Xzz1eH.js} +1 -1
- package/dist/assets/{GmailOAuthSetup-waw2142C.js → GmailOAuthSetup-DUIzQ8J7.js} +1 -1
- package/dist/assets/{GoogleOAuthSetup-Bo59grtp.js → GoogleOAuthSetup-BTWZ_aJr.js} +1 -1
- package/dist/assets/{IframeModal-B3M77grB.js → IframeModal-B6PC5QX4.js} +1 -1
- package/dist/assets/{IntegrationsPanel-BLHrC0GX.js → IntegrationsPanel-DgYST-q4.js} +2 -2
- package/dist/assets/{LogViewerModal-CitlmDgQ.js → LogViewerModal-DmH5JCwc.js} +1 -1
- package/dist/assets/{MonitoringModal-BcKOCSRM.js → MonitoringModal-CSB6I7HA.js} +1 -1
- package/dist/assets/{PM2LogsModal-DrHpuMNf.js → PM2LogsModal-jT7I4Nrj.js} +1 -1
- package/dist/assets/{RestoreArchivedAreaModal-DcD3vdUJ.js → RestoreArchivedAreaModal-jp5Xsv_D.js} +1 -1
- package/dist/assets/{Scene2DCanvas-DKUcFYZW.js → Scene2DCanvas-BJf7xjcI.js} +1 -1
- package/dist/assets/{SceneManager-DPojKMM-.js → SceneManager-CjhMmFGP.js} +1 -1
- package/dist/assets/{SkillsPanel-CUW0prbh.js → SkillsPanel-CzLEygqp.js} +1 -1
- package/dist/assets/{SlackMultiInstanceSetup-YFYeZ94t.js → SlackMultiInstanceSetup-kIMTq331.js} +1 -1
- package/dist/assets/{SpawnModal-DPvq-R5b.js → SpawnModal-DeuiK-ft.js} +1 -1
- package/dist/assets/{StatisticsModal-Dt-Hof51.js → StatisticsModal-BbFqat0A.js} +1 -1
- package/dist/assets/{StlViewer-GyyomEax.js → StlViewer-CykV3bDr.js} +1 -1
- package/dist/assets/{SubordinateAssignmentModal-ahzGBjr4.js → SubordinateAssignmentModal-BEhgvADS.js} +1 -1
- package/dist/assets/{ThreeAreaSelector-Bj_mL6NG.js → ThreeAreaSelector-61KRvl6V.js} +1 -1
- package/dist/assets/{ThreeViewShortcuts-CKtE3yZV.js → ThreeViewShortcuts-BsuRkJQ3.js} +1 -1
- package/dist/assets/{TriggerManagerPanel-DtdbOk9B.js → TriggerManagerPanel-BUbAL2Mb.js} +1 -1
- package/dist/assets/{VideoPlayer-Crq-MwPS.js → VideoPlayer-Bow0E8JN.js} +1 -1
- package/dist/assets/{WorkflowEditorPanel-CitR9Em3.js → WorkflowEditorPanel-D5sSWYl7.js} +1 -1
- package/dist/assets/{abnfDiagram-VRR7QNED-QFcuJYPe.js → abnfDiagram-VRR7QNED-C2HvJaIu.js} +1 -1
- package/dist/assets/{arc-CLuSzQ4E.js → arc-DIfPSJnG.js} +1 -1
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-DlhVck93.js → architectureDiagram-ZJ3FMSHR-JwB01V03.js} +1 -1
- package/dist/assets/{area-logos-DYARiYqI.js → area-logos-CzRaMbh2.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-CJwOmsfj.js → blockDiagram-677ZJIJ3-Zr1rRoej.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-OsgCNPWJ.js → c4Diagram-LMCZKHZV-D1bI4OAN.js} +1 -1
- package/dist/assets/channel-D875PBiW.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-KG-L7vvm.js → chunk-2Q5K7J3B-IBPe4Q7q.js} +1 -1
- package/dist/assets/{chunk-32BRIVSS-BXGbqO9v.js → chunk-32BRIVSS-rQSWhcb_.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-BWXkm8f0.js → chunk-5VM5RSS4-Dmv7dmVy.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-7-8ulJ19.js → chunk-EX3LRPZG-TDT_cQou.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-mkwFN5xu.js → chunk-JWPE2WC7-C0GVNe-V.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-WEfWznKE.js → chunk-MOJQB5TN-__mP_faY.js} +1 -1
- package/dist/assets/{chunk-RYQCIY6F-ByP5odu4.js → chunk-RYQCIY6F-ecSBBPze.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-yWHmp1L1.js → chunk-V7JOEXUC-BC56iR05.js} +1 -1
- package/dist/assets/{chunk-VR4S4FIN-DHbZaHzt.js → chunk-VR4S4FIN-DERvXVps.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-SNa-Wh3U.js → chunk-XXDRQBXY-BVn84nw2.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-EG57DD_l.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-EG57DD_l.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-CyxHYUhP.js → cose-bilkent-JH36ORCC-mg3hjIh0.js} +1 -1
- package/dist/assets/{cynefin-VYW2F7L2-BvwjSDiQ.js → cynefin-VYW2F7L2-BMZ4knrn.js} +1 -1
- package/dist/assets/{cynefinDiagram-TSTJHNR4-C8doInhn.js → cynefinDiagram-TSTJHNR4-CnOuLqXO.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-BNDcupek.js → dagre-VKFMJZFB-BqmESFSV.js} +1 -1
- package/dist/assets/{diagram-FQU43EPY-Bst0bBnQ.js → diagram-FQU43EPY-BO4mTTgt.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-CfEv0aTY.js → diagram-G47NLZAW-txAn-X18.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-B7MYvWXL.js → diagram-NH7WQ7WH-BpGKYTxX.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-BIzII0d2.js → diagram-OA4YK3LP-BWgk4USe.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-D5yd1HWr.js → diagram-WEI45ONY-CgqpLIRx.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-gyhVYUos.js → ebnfDiagram-CCIWWBDH-CJXyC9CG.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-Duz-DwfE.js → erDiagram-Q63AITRT-B419ak6F.js} +1 -1
- package/dist/assets/{flowDiagram-23GEKE2U-CrnARkmw.js → flowDiagram-23GEKE2U-CaoVLCFn.js} +1 -1
- package/dist/assets/{ganttDiagram-NO4QXBWP-D6cBteIN.js → ganttDiagram-NO4QXBWP-DzKf09RL.js} +1 -1
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-CMHfr_lR.js → gitGraphDiagram-IHSO6WYX-BcJSGanA.js} +1 -1
- package/dist/assets/{index-D5O_0aq9.js → index-BTxaN45Z.js} +1 -1
- package/dist/assets/{index-DeqoOoo6.js → index-Bf7yerGj.js} +1 -1
- package/dist/assets/{index-fiC5OXgR.js → index-Bhl4oi94.js} +1 -1
- package/dist/assets/{index-2427ATYD.js → index-CNMfqZTR.js} +3 -3
- package/dist/assets/{index-DJKuwqJG.js → index-D-T-XZwp.js} +2 -2
- package/dist/assets/{index-B1vOCcI-.js → index-D4h5z3h7.js} +1 -1
- package/dist/assets/{index-D5pIRxFm.js → index-DGC0uvv8.js} +1 -1
- package/dist/assets/{index-CbMtvQTH.js → index-DKJGKvx6.js} +1 -1
- package/dist/assets/{index-B5wHDczA.js → index-DdXT34nf.js} +1 -1
- package/dist/assets/{infoDiagram-FWYZ7A6U-Mvk2Mpp3.js → infoDiagram-FWYZ7A6U-DmSCjl-a.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-DXsaNDYg.js → ishikawaDiagram-FXEZZL3T-C2aoYMOy.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-6QlK8xHN.js → journeyDiagram-5HDEW3XC-C-GVB1KY.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-D5EeRs07.js → kanban-definition-HUTT4EX6-IWOTfPcO.js} +1 -1
- package/dist/assets/{linear-D_aP9MD5.js → linear-BjaKb-fM.js} +1 -1
- package/dist/assets/{main-Dk3qq80S.js → main-BTH4eRQ6.js} +97 -97
- package/dist/assets/main-Dzc0Sg9A.css +1 -0
- package/dist/assets/{mermaid.core-CEculPxD.js → mermaid.core-CAEdJZ_w.js} +4 -4
- package/dist/assets/{mindmap-definition-LN4V7U3C-Vjj9vgEN.js → mindmap-definition-LN4V7U3C-BkCFpMNJ.js} +1 -1
- package/dist/assets/{pegDiagram-2B236MQR-B-AwbaoO.js → pegDiagram-2B236MQR-BKiRmui-.js} +1 -1
- package/dist/assets/{pieDiagram-ENE6RG2P-D5o1UYPK.js → pieDiagram-ENE6RG2P-BP8J15I1.js} +1 -1
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bl_Rbmz-.js → quadrantDiagram-ABIIQ3AL-BM_bLOrJ.js} +1 -1
- package/dist/assets/{railroadDiagram-RFXS5EU6-CW-qy1dp.js → railroadDiagram-RFXS5EU6-BuzJbVwQ.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-DGUQpy3K.js → requirementDiagram-TGXJPOKE-BFH7PfsI.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-CUlWZH9G.js → sankeyDiagram-HTMAVEWB-B_LNgbZM.js} +1 -1
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-CeDVJrbJ.js → sequenceDiagram-DBY2YBRQ-Dpx20yKk.js} +1 -1
- package/dist/assets/{sizeCapture-X5ZJPWSS-BGSL3ofq.js → sizeCapture-X5ZJPWSS-DozwVBxi.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-9A8tAPIu.js → stateDiagram-2N3HPSRC-Dz7I61Z2.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-BFOToQX1.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-CipRR1uk.js → swimlanes-5IMT3BWC-IF3gQbtc.js} +2 -2
- package/dist/assets/swimlanesDiagram-G3AALYLV-CF7hL7qo.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-IgrCsFe-.js → timeline-definition-FHXFAJF6-72sDxnmY.js} +1 -1
- package/dist/assets/{vennDiagram-L72KCM5P-okSGsDy3.js → vennDiagram-L72KCM5P-nfw568sB.js} +1 -1
- package/dist/assets/{wardleyDiagram-EHGQE667-G0RLggUt.js → wardleyDiagram-EHGQE667-DoF1Ii5p.js} +1 -1
- package/dist/assets/{web-BPOqvnJL.js → web-C8qAHcxt.js} +1 -1
- package/dist/assets/{web-B5BfOO5C.js → web-D97lBSvE.js} +1 -1
- package/dist/assets/{web-Q8DwQW0W.js → web-DlKkI5gM.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-DtVJEFyI.js → xychartDiagram-FW5EYKEG-gGwkb3hj.js} +1 -1
- package/dist/build-info.json +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/assets/channel-cpl_NpAy.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-D_lsO4mm.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-D_lsO4mm.js +0 -1
- package/dist/assets/main-B2ZLroL1.css +0 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DzVFFq0g.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-XDQw-C4e.js +0 -8
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as n,aW as $a,aX as oa,N as ba,aY as _a,j as e,aZ as wa,a_ as Da,u as sa,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 va,m as Vt,S as E,y as qt,b6 as ta,b7 as ca,b8 as Lt,b9 as xe,ba as Ga,s as g,K as ja,a0 as Ca,f as ka,bb as Xa,bc as da,bd as ua,I as d,be as Va,bf as aa,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 na,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 Yt,bz as ma,bA as xn,bB as bn,bC as _n,z as wn,bD as vn,bE as jn,bF as Cn,bG as kn,bH as ct,bI as Nn,bJ as yn,bK as An,bL as Sn,bM as wt,bN as En,bO as In,bP as Mn,bQ as Tn,p as Ln,D as Pn,t as Kt,o as $n}from"./main-Dk3qq80S.js";import{g as Dn}from"./area-logos-DYARiYqI.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";function zn(c){const o=n.useRef(c);o.current=c,n.useEffect(()=>{if(!$a())return;let m=null,b=!1;return oa.addListener("backButton",()=>{o.current()==="exit"&&oa.exitApp()}).then(y=>{b?y.remove():m=y}),()=>{b=!0,m&&(m.remove(),m=null)}},[])}async function Rn(c){const o=ba(),m=await fetch(`${_a()}/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 On(c){const o=ba();await fetch(`${_a()}/api/agents/${c}/terminal`,{method:"DELETE",headers:{Authorization:`Bearer ${o}`}})}const vt=new Map;function Fn({agentId:c}){const[o,m]=n.useState(null),[b,y]=n.useState(null);return n.useEffect(()=>{let M=!1;const A=vt.get(c);return A&&(clearTimeout(A),vt.delete(c)),m(null),y(null),Rn(c).then(k=>{M||m(k.url)}).catch(k=>{M||y(k instanceof Error?k.message:"Failed to start terminal")}),()=>{M=!0;const k=vt.get(c);k&&clearTimeout(k),vt.set(c,setTimeout(()=>{vt.delete(c),On(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(wa,{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,Bn=6e4;function pa(c){return Number.isFinite(c)?Math.abs(c)>=1e3?c.toLocaleString(void 0,{maximumFractionDigits:0}):c.toLocaleString(void 0,{maximumFractionDigits:2}):String(c)}function Wn(c,o){var y,M,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}),(M=b.rateLimits)!=null&&M.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 Hn({agentId:c,contextSummary:o}){const{t:m}=sa(["terminal","common"]),[b,y]=n.useState(()=>{var R;return((R=Zt.get(c))==null?void 0:R.snapshot)??null}),[M,A]=n.useState(!1),[k,K]=n.useState(null),j=n.useRef(0);n.useEffect(()=>{const R=Zt.get(c);if(R&&Date.now()-R.fetchedAt<Bn){y(R.snapshot);return}const be=++j.current;A(!0),K(null),za(c).then(L=>{be===j.current&&(Zt.set(c,{snapshot:L,fetchedAt:Date.now()}),y(L),A(!1))}).catch(L=>{be===j.current&&(K(L.message||"Failed to load plan limits"),A(!1))})},[c]);const v=b?Wn(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")}),M&&!b&&e.jsxs("div",{className:"plan-limits-tooltip__muted",children:[m("common:status.loading"),"…"]}),!M&&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:be,window:L})=>{const _e=L?Math.max(0,Math.min(100,L.utilization)):0,te=Oa(_e),ue=L!=null&&typeof L.used=="number"&&typeof L.limit=="number"&&Number.isFinite(L.used)&&Number.isFinite(L.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:be}),e.jsx("span",{className:"plan-limits-tooltip__gauge-percent",style:{color:te},children:m("terminal:usage.percentUsed",{percent:Math.round(_e)})})]}),e.jsx("div",{className:"plan-limits-tooltip__bar",children:e.jsx("div",{className:"plan-limits-tooltip__bar-fill",style:{width:`${_e}%`,background:te}})}),e.jsxs("div",{className:"plan-limits-tooltip__reset",children:[L&&m("terminal:usage.resets",{time:Ra(L.resetsAt)}),ue&&e.jsx("span",{style:{marginLeft:8},children:m("terminal:usage.creditsUsed",{used:pa(L.used),limit:pa(L.limit)})})]})]},R)})}):b&&!M&&e.jsx("div",{className:"plan-limits-tooltip__muted",children:b.rateLimitsError?m("terminal:usage.limitsError",{message:b.rateLimitsError}):b.cliHint})]})}function Un({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(Hn,{agentId:c,contextSummary:m}),children:b})}const Gn=n.memo(function({className:o=""}){const{t:m}=sa(["common"]),[b,y]=Fa(),M=n.useRef(null),[A,k]=n.useState(null);n.useLayoutEffect(()=>{const j=M.current;if(!j)return;const v=j.querySelector(".view-mode-toggle__btn--active");v&&k({left:v.offsetLeft,width:v.offsetWidth})},[b]);const K=n.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:M,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))]})}),Pt=3,$t=280,fa=320,Jt=240,ha=64,Xn=["simple","chat","advanced"],ga={simple:"Simple",chat:"Chat",advanced:"Advanced"},xa={simple:"○",chat:"◐",advanced:"◉"},Vn={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 qn(c){const o=c.split("/").filter(Boolean);return o.length===0?c:o.slice(-2).join("/")}function Yn(c){if(c.provider==="codex"){const M=c.codexModel||"gpt-5.6-luna",A=Ln[M];return{model:(A==null?void 0:A.label)||M}}if(c.provider==="opencode")return{model:c.opencodeModel||"opencode"};if(c.provider==="grok"){const M=c.grokModel||Pn,A=c.effort,k=A?Kt[A]:void 0;return{model:M,effort:k==null?void 0:k.label}}if(c.provider==="pi"){const M=c.piModel||"pi default",A=c.effort,k=A?Kt[A]:void 0;return{model:M,effort:k==null?void 0:k.label}}const o=c.model||c.detectedModel||"default",m=$n[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 Kn(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 Zn=cn.memo(function({agentId:o,terminalViewMode:m,onTerminalViewModeChange:b,inspectorOpen:y,onToggleInspector:M,onShowTaskBoard:A,onImageClick:k,onFileClick:K,onBashClick:j,onViewMarkdown:v,onRequestClearSubordinates:R,keyboard:be,canNavigateBack:L,canNavigateForward:_e,onNavigateBack:te,onNavigateForward:ue,agentInfoOpen:Ze,onToggleAgentInfo:jt,onHeaderContextMenu:dt,onBuildingContextMenu:$e}){var Z,It;const p=ja(o),O=ka(),we=dn(),ve=n.useRef(null),me=n.useRef(null),Je=o,Qe=p,je=!!we.interactiveMode&&((p==null?void 0:p.provider)??"claude")==="claude"&&!!(p!=null&&p.sessionId),[ae,et]=n.useState(!1),[tt,Ue]=n.useState(null),Dt=n.useMemo(()=>{const a=Xn.map(l=>{const i=!ae&&m===l;return{id:`view-mode-${l}`,label:ga[l],icon:e.jsx("span",{className:"flat-terminal-wrapper__view-mode-icon",children:xa[l]}),shortcut:i?"✓":void 0,onClick:()=>{et(!1),b(l),Ue(null)}}});return je&&a.push({id:"view-mode-classic-tui",label:"Classic TUI",icon:e.jsx(d,{name:"terminal",size:13}),shortcut:ae?"✓":void 0,onClick:()=>{et(l=>!l),Ue(null)}}),a},[je,ae,m,b]),[Ge,pe]=n.useState(!1),D=n.useCallback(()=>pe(!1),[]);va("flat-chat-actions",Ge,D),n.useEffect(()=>{const a=()=>pe(l=>!l);return window.addEventListener("tide:toggle-chat-actions",a),()=>window.removeEventListener("tide:toggle-chat-actions",a)},[]),n.useEffect(()=>{et(!1),pe(!1)},[o]),n.useEffect(()=>{!je&&ae&&et(!1)},[je,ae]),n.useEffect(()=>{const a=me.current;if(!a)return;const l=u=>{u.button===3?(u.preventDefault(),u.stopPropagation(),te()):u.button===4&&(u.preventDefault(),u.stopPropagation(),ue())},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)}},[te,ue]),n.useEffect(()=>{const a=me.current;if(!a)return;let l=0,i=0,u=0;const $=250,V=600,S=80,Le=1.5,ot=U=>{let t=U instanceof HTMLElement?U:null;for(;t&&t!==a;){const s=window.getComputedStyle(t).overflowX;if((s==="auto"||s==="scroll")&&t.scrollWidth>t.clientWidth)return!0;t=t.parentElement}return!1},z=U=>{const t=Date.now();if(t<u){U.preventDefault();return}if(Math.abs(U.deltaX)<=Math.abs(U.deltaY)*Le){l=0;return}if(ot(U.target)){l=0;return}t-i>$&&(l=0),i=t,l+=U.deltaX,l<=-S?(l=0,u=t+V,U.preventDefault(),te()):l>=S&&(l=0,u=t+V,U.preventDefault(),ue())};return a.addEventListener("wheel",z,{passive:!1}),()=>a.removeEventListener("wheel",z)},[te,ue]);const ne=Ca(),ut=n.useMemo(()=>{if(!p)return null;const a=new Set,l=[];for(const i of ne.values())i.archived||i.directories.length===0||i.assignedAgentIds.includes(o)&&(a.add(i.id),l.push(i));for(const i of ne.values())i.archived||i.directories.length===0||a.has(i.id)||Kn({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,ne]),{branches:Ct,fetchRemote:Xe,fetchingDirs:De}=un(ut),[Ce,at]=n.useState({}),[fe,Ve]=n.useState(null),Q=n.useMemo(()=>{var $,V;const a=g.getAreaForAgent(o);if(!a)return[];const l=[],i=($=a.directories.find(S=>S&&S.trim().length>0))==null?void 0:$.trim(),u=i?i.split("/").filter(Boolean).pop()||i:a.name;l.push({id:mn(a.id),name:u,hasUrl:!!Ce[a.id],isDefault:!0});for(const S of O.values())S.type==="terminal"&&g.isPositionInArea(S.position,a)&&l.push({id:S.id,name:S.name,hasUrl:!!((V=S.terminalStatus)!=null&&V.url)});return l},[o,O,ne,Ce]),se=n.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]),nt=n.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]),kt=pn(),qe=n.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&&kt.some($=>fn($,i.folderPath));l.push({id:i.id,name:i.name,working:u})}return l},[o,O,kt]),ke=n.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]),[,zt]=n.useReducer(a=>a+1,0),Ne=((Z=ve.current)==null?void 0:Z.search.searchMode)??!1,ye=n.useCallback(()=>{var a;(a=ve.current)==null||a.search.toggleSearch(),zt()},[]),mt=hn(),ie=mt.isPending(Qt),[_,he]=n.useState(null),F=_?O.get(_.buildingId):null,[Nt,ze]=n.useState(""),[pt,Rt]=n.useState(()=>gn()),B=n.useMemo(()=>{var a;return((a=g.getAreaForAgent(o))==null?void 0:a.id)??null},[o,O]),Re=n.useCallback((a,l)=>{ze(""),he(i=>{const u=(i==null?void 0:i.buildingId)===l?null:{type:a,buildingId:l};return B&&ea(B,u),u})},[B]),ee=n.useCallback(()=>{ze(""),he(null),B&&ea(B,null)},[B]);n.useEffect(()=>{if((_==null?void 0:_.type)!=="pm2-logs")return;const a=_.buildingId;return g.startLogStreaming(a,200),()=>g.stopLogStreaming(a)},[_]),n.useEffect(()=>{if(Ve(null),(_==null?void 0:_.type)!=="terminal"||!Yt(_.buildingId))return;const a=ma(_.buildingId);let l=!1;return xn(a).then(i=>{l||at(u=>u[a]===i.url?u:{...u,[a]:i.url})}).catch(i=>{l||Ve(i instanceof Error?i.message:"Failed to start terminal")}),()=>{l=!0}},[_]);const{height:Ot,onResizeStart:Ft}=bn(),{sidePanelWidth:Ae,handleSidePanelResizeStart:le}=_n(),[re,ft]=n.useState(()=>ta(E.GIT_PANEL_OPEN,!1)),[Oe,yt]=n.useState(()=>ta(E.BUILDINGS_PANEL_OPEN,!1)),[Fe,At]=n.useState(!1),st=n.useCallback(()=>{At(a=>!a)},[]),Ye=n.useCallback(()=>At(!1),[]),it=n.useCallback(()=>{ft(a=>{const l=!a;return xe(E.GIT_PANEL_OPEN,l),l})},[]),Se=n.useCallback(()=>{yt(a=>{const l=!a;return xe(E.BUILDINGS_PANEL_OPEN,l),l})},[]),Bt=n.useCallback(()=>{ft(!1),xe(E.GIT_PANEL_OPEN,!1)},[]),oe=n.useCallback(()=>{yt(!1),xe(E.BUILDINGS_PANEL_OPEN,!1)},[]),Be=wn(),We=n.useMemo(()=>({terminal:Q,"pm2-logs":se,database:nt,tests:qe,http:ke}),[Q,se,nt,qe,ke]);n.useEffect(()=>{if(!_)return;We[_.type].some(l=>l.id===_.buildingId)||(ze(""),he(null))},[_,We]);const St=n.useRef(void 0);n.useEffect(()=>{var l;if(St.current===B)return;St.current=B;const a=B?Ia()[B]:void 0;ze(""),a&&((l=We[a.type])!=null&&l.some(i=>i.id===a.buildingId))?he(a):he(null)},[B,We]),n.useEffect(()=>{const a=l=>{var $;const i=l.detail;if(!(i!=null&&i.buildingId)||!(i!=null&&i.type)||!(($=We[i.type])!=null&&$.some(V=>V.id===i.buildingId)))return;i.handled=!0,ze("");const u={type:i.type,buildingId:i.buildingId};he(u),B&&ea(B,u)};return window.addEventListener("tide:dock-building-flat",a),()=>window.removeEventListener("tide:dock-building-flat",a)},[We,B]);const[Ee,Ie]=n.useState(!1),ht=n.useRef(null);if(n.useEffect(()=>{if(!Ee)return;const a=l=>{ht.current&&!ht.current.contains(l.target)&&Ie(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[Ee]),!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 gt=!!p.contextStats,{totalTokens:Wt,contextWindow:ge,usedPercent:ce}=Na(p),xt=Math.round(ce*10)/10,Ht=Math.round((100-ce)*10)/10,bt=ce>=80?"#ff4a4a":ce>=60?"#ff9e4a":ce>=40?"#ffd700":"#4aff9e",He=(Wt/1e3).toFixed(1),lt=(ge/1e3).toFixed(1),Me=p.cwd,rt=Me?qn(Me):null,Te=((It=p.subordinateIds)==null?void 0:It.length)||0,Et=Te>0;return e.jsxs("div",{ref:me,className:`flat-terminal-wrapper ${re||Oe||Fe?"flat-terminal-wrapper--with-side-panel":""}`,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 ${Ze?"flat-terminal-wrapper__header-main--active":""}`,onClick:jt,onContextMenu:a=>{a.preventDefault(),a.stopPropagation(),dt({x:a.clientX,y:a.clientY})},title:Ze?"Hide agent info":"Show agent info","aria-pressed":Ze,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(aa,{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}=Yn(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${tt?" flat-terminal-wrapper__view-mode-trigger--open":""}`,onClick:a=>{const l=a.currentTarget.getBoundingClientRect();Ue({x:l.left,y:l.bottom+4})},title:ae?"Classic TUI — attach to the live interactive claude session in a terminal":Vn[m],"aria-haspopup":"menu","aria-expanded":!!tt,"aria-label":"Message view mode",children:[e.jsx("span",{className:"flat-terminal-wrapper__view-mode-icon","aria-hidden":"true",children:ae?e.jsx(d,{name:"terminal",size:13}):xa[m]}),e.jsx("span",{className:"flat-terminal-wrapper__view-mode-label",children:ae?"Classic TUI":ga[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:te,disabled:!L,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:ue,disabled:!_e,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 ${Ne?"flat-terminal-wrapper__action-btn--active":""}`,onClick:ye,title:Ne?"Close search":"Search messages","aria-pressed":Ne,children:e.jsx(d,{name:Ne?"cross":"search",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn flat-terminal-wrapper__action-btn--danger ${ie?"flat-terminal-wrapper__action-btn--confirm":""}`,onClick:()=>mt.handleClick(Qt,()=>{var a;g.clearContext(o),(a=ve.current)==null||a.historyLoader.clearHistory()}),title:ie?"Click again to confirm clear context":"Clear context",children:e.jsx(d,{name:ie?"question":"clear",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${re?"flat-terminal-wrapper__action-btn--active":""}`,onClick:it,title:re?"Hide git panel":"Show git changes","aria-pressed":re,children:e.jsx(d,{name:"git-branch",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${Oe?"flat-terminal-wrapper__action-btn--active":""}`,onClick:Se,title:Oe?"Hide buildings panel":"Show area buildings","aria-pressed":Oe,children:e.jsx(d,{name:"buildings",size:14})}),e.jsxs("div",{className:"flat-terminal-wrapper__more",ref:ht,children:[e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${Ee?"flat-terminal-wrapper__action-btn--active":""}`,onClick:()=>Ie(a=>!a),title:"More actions","aria-expanded":Ee,children:"⋮"}),Ee&&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 ${Fe?"flat-terminal-wrapper__more-item--active":""}`,onClick:()=>{st(),Ie(!1)},title:Fe?"Hide Debug Panel":"Show Debug Panel",children:[e.jsx(d,{name:"bug",size:14}),e.jsx("span",{children:Fe?"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),Ie(!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"})]}),Et&&e.jsxs("button",{type:"button",role:"menuitem",className:"flat-terminal-wrapper__more-item flat-terminal-wrapper__more-item--danger",onClick:()=>{R(o,Te),Ie(!1)},children:[e.jsx(d,{name:"crown",size:14}),e.jsxs("span",{children:["Clear ",Te," subordinate",Te===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),Ie(!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:M,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})})]})]}),Ge&&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 ${Ne?"is-active":""}`,onClick:()=>{ye(),D()},children:[e.jsx(d,{name:Ne?"cross":"search",size:20}),e.jsx("span",{children:Ne?"Close search":"Search"})]}),e.jsxs("button",{type:"button",role:"menuitem",className:`flat-chat-actions-sheet__item ${re?"is-active":""}`,onClick:()=>{it(),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 ${Oe?"is-active":""}`,onClick:()=>{Se(),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 ${Fe?"is-active":""}`,onClick:()=>{st(),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 ${ie?"is-armed":""}`,onClick:()=>mt.handleClick(Qt,()=>{var a;g.clearContext(o),(a=ve.current)==null||a.historyLoader.clearHistory(),D()}),children:[e.jsx(d,{name:ie?"question":"clear",size:18}),e.jsx("span",{children:ie?"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"})]}),Et&&e.jsxs("button",{type:"button",role:"menuitem",className:"flat-chat-actions-sheet__row flat-chat-actions-sheet__row--danger",onClick:()=>{R(o,Te),D()},children:[e.jsx(d,{name:"crown",size:18}),e.jsxs("span",{children:["Clear ",Te," subordinate",Te===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(vn,{agent:p,onClick:A}),ae&&je?e.jsx(Fn,{agentId:o}):Je&&Qe?e.jsx(jn,{ref:ve,agentId:Je,agent:Qe,viewMode:m,isOpen:!0,onImageClick:k,onFileClick:K,onBashClick:j,onViewMarkdown:v,keyboard:be,hasModalOpen:!1},Je):null,_&&(F||Yt(_.buildingId))&&(()=>{var Le,ot;const a=_.type,l=Yt(_.buildingId),i=(F==null?void 0:F.name)??`Terminal — ${((Le=Q.find(z=>z.id===_.buildingId))==null?void 0:Le.name)??"area"}`,u=l?Ce[ma(_.buildingId)]:(ot=F==null?void 0:F.terminalStatus)==null?void 0:ot.url,$={terminal:"terminal","pm2-logs":"scroll",database:"hard-drives",tests:"flask",http:"globe"},V=a==="terminal"&&!u,S=!V&&!l;return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"guake-bottom-terminal-resize",onMouseDown:Ft,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:Ot},children:[e.jsxs("div",{className:"flat-bottom-panel__header",children:[e.jsxs("span",{className:"flat-bottom-panel__title",children:[e.jsx(d,{name:$[a],size:12}),e.jsx("span",{children:i}),V&&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:Nt,onChange:z=>ze(z.target.value),placeholder:"Filter logs","aria-label":`Filter logs for ${F.name}`,spellCheck:!1}),e.jsx("select",{className:"guake-bottom-terminal-retention",value:pt===null?"unlimited":String(pt),onChange:z=>{const U=z.target.value==="unlimited"?null:Number(z.target.value);Rt(U),kn(U)},"aria-label":`Max log retention for ${F.name}`,children:Cn.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})})]}),S&&e.jsx("button",{type:"button",className:"flat-bottom-panel__close",onClick:()=>{ee(),ct(_.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:ee,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(wa,{terminalUrl:u,visible:!0}):e.jsx("div",{className:"flat-bottom-panel__placeholder",children:fe??"Starting terminal..."}):a==="pm2-logs"?e.jsx(Nn,{buildingId:_.buildingId,filterText:Nt,maxRetention:pt}):F?a==="database"?e.jsx(yn,{building:F}):a==="tests"?e.jsx("div",{className:"tests-panel-host",children:e.jsx(An,{building:F,autoFocusSearch:!1})}):e.jsx("div",{className:"http-requests-panel-host",children:e.jsx(Sn,{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"})]}),Me&&rt&&e.jsxs("span",{className:"flat-terminal-wrapper__cwd",title:`Open in file explorer: ${Me}`,"aria-label":`Open ${Me} in file explorer`,role:"button",tabIndex:0,onClick:()=>g.openFileExplorer(Me),onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),g.openFileExplorer(Me))},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:rt})]}),ut&&ut.map(({areaId:a,areaName:l,dir:i})=>{const u=Ct.get(i),$=De.has(i),V=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:V}),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 ${$?"flat-terminal-wrapper__area-fetch--fetching":""}`,title:"Git fetch",onClick:S=>{S.stopPropagation(),Xe(i)},children:e.jsx(d,{name:$?"hourglass":"download",size:12})})]})]},`${a}:${i}`)}),e.jsx(Un,{agentId:o,disabled:((p==null?void 0:p.provider)??"claude")!=="claude"&&((p==null?void 0:p.provider)??"claude")!=="grok",contextSummary:gt?`Context: ${He}k / ${lt}k tokens (${xt}% 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"?gt?`Context usage: ${He}k / ${lt}k tokens (${xt}% 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:`${ce}%`,backgroundColor:bt}})}),e.jsxs("span",{className:"flat-terminal-wrapper__context-tokens",style:{color:bt},children:[He,"k/",lt,"k"]}),e.jsxs("span",{className:"flat-terminal-wrapper__context-free",children:["(",Ht,"% free)"]}),!gt&&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?ee():Re("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){ee();return}if(a.hasUrl&&wt(a.id)==="modal"){ct(a.id);return}a.hasUrl||g.sendBuildingCommand(a.id,"start"),Re("terminal",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"terminal",size:14})},a.id)})}),se.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area PM2 logs",children:se.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?ee():wt(a.id)==="modal"?ct(a.id):Re("pm2-logs",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"scroll",size:14})},a.id)})}),nt.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area databases",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"} database: ${a.name}`,onClick:()=>{l?ee():wt(a.id)==="modal"?ct(a.id):Re("database",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"hard-drives",size:14})},a.id)})}),qe.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area tests",children:qe.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?ee():wt(a.id)==="modal"?ct(a.id):Re("tests",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"flask",size:14})},a.id)})}),ke.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area HTTP requests",children:ke.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?ee():wt(a.id)==="modal"?ct(a.id):Re("http",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(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(En,{iconOnly:!0})})]}),re&&e.jsx(In,{agentId:o,agents:Be,onClose:Bt,branchInfoMap:Ct,fetchRemote:Xe,fetchingDirs:De,onResizeStart:a=>le(a,"right")}),Oe&&e.jsx(Mn,{agentId:o,onClose:oe}),Fe&&e.jsx(Tn,{agentId:o,onClose:Ye}),e.jsx(na,{isOpen:tt!==null,position:tt??{x:0,y:0},worldPosition:{x:0,z:0},actions:Dt,onClose:()=>Ue(null)})]})}),Jn={groups:[],gridCols:1,gridRows:1,positions:new Map};function ns({onAgentClick:c,onBuildingClick:o,onBuildingDoubleClick:m,onBuildingPopup:b,onAreaContextMenu:y,onOpenSpawnModal:M,onOpenBossSpawnModal:A,onOpenAreaModal:k}){const{t:K}=sa(["common"]),j=Wa(),v=n.useMemo(()=>j.size>0?j.values().next().value??null:null,[j]),R=Ha(v===null),be=Ua(),[L,_e]=n.useState(null),[te,ue]=n.useState(null),[Ze,jt]=n.useState(null);va("flatview-image-modal",L!==null,()=>_e(null));const[dt,$e]=n.useState(null),[p,O]=n.useState(null),[we,ve]=n.useState(null),[me,Je]=n.useState(null),[Qe,je]=n.useState(!1),ae=n.useCallback(()=>{je(t=>!t)},[]),et=n.useCallback(()=>{je(!1)},[]),[tt,Ue]=n.useState(()=>{const t=Vt(E.VIEW_MODE);return t==="simple"||t==="chat"||t==="advanced"?t:"simple"}),Dt=n.useCallback(t=>{Ue(t),qt(E.VIEW_MODE,t)},[]);n.useEffect(()=>{const t=s=>{if(s.key!==E.VIEW_MODE)return;const r=s.newValue;(r==="simple"||r==="chat"||r==="advanced")&&Ue(r)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[]);const[Ge,pe]=n.useState(()=>ta(E.FLAT_INSPECTOR_OPEN,!1)),[D,ne]=n.useState(!1),ut=n.useCallback(()=>ne(t=>!t),[]),Ct=n.useCallback(()=>ne(!1),[]);n.useEffect(()=>{window.dispatchEvent(new CustomEvent("tide-flat-agents-drawer-state",{detail:{open:D}}))},[D]),n.useEffect(()=>{window.dispatchEvent(new CustomEvent("tide-flat-inspector-state",{detail:{open:Ge}}))},[Ge]),n.useEffect(()=>{const t=()=>ne(N=>!N),s=()=>{pe(N=>{const T=!N;return xe(E.FLAT_INSPECTOR_OPEN,T),T})},r=()=>{ne(!1),pe(!1),xe(E.FLAT_INSPECTOR_OPEN,!1)},x=()=>ne(!1),w=()=>{pe(!1),xe(E.FLAT_INSPECTOR_OPEN,!1)};return window.addEventListener("tide-toggle-flat-agents-drawer",t),window.addEventListener("tide-toggle-flat-inspector",s),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",s),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 Xe=n.useRef(null),De=n.useRef(null),[Ce,at]=n.useState(()=>{const t=ca(E.FLAT_MIDDLE_WIDTH,0);return t>=$t?t:null}),[fe,Ve]=n.useState(()=>{const t=ca(E.FLAT_INSPECTOR_WIDTH,0);return t>=Jt?t:null}),Q=n.useCallback(t=>{if(typeof window>"u")return t;const s=fe!==null?Pt+fe:0,r=window.innerWidth-ha-Pt-fa-s;return Math.max($t,Math.min(Math.max(r,$t),t))},[fe]),se=n.useCallback(t=>{var w;if(typeof window>"u")return t;const s=(w=Xe.current)==null?void 0:w.querySelector(".flat-middle"),r=(s==null?void 0:s.getBoundingClientRect().width)??$t,x=window.innerWidth-ha-r-Pt-fa-Pt;return Math.max(Jt,Math.min(Math.max(x,Jt),t))},[]);n.useEffect(()=>{if(Ce===null&&fe===null)return;const t=()=>{at(s=>{if(s===null)return s;const r=Q(s);return r===s?s:r}),Ve(s=>{if(s===null)return s;const r=se(s);return r===s?s:r})};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[Ce,fe,Q,se]);const nt=n.useCallback(t=>{var r;if(t.button!==0)return;const s=(r=Xe.current)==null?void 0:r.querySelector(".flat-middle");s&&(t.currentTarget.setPointerCapture(t.pointerId),De.current={kind:"middle",startX:t.clientX,startWidth:s.getBoundingClientRect().width,pointerId:t.pointerId},document.body.classList.add("flat-splitter-dragging"))},[]),kt=n.useCallback(t=>{var r;if(t.button!==0)return;const s=(r=Xe.current)==null?void 0:r.querySelector(".flat-inspector");s&&(t.currentTarget.setPointerCapture(t.pointerId),De.current={kind:"inspector",startX:t.clientX,startWidth:s.getBoundingClientRect().width,pointerId:t.pointerId},document.body.classList.add("flat-splitter-dragging"))},[]),qe=n.useCallback(t=>{const s=De.current;if(!s||t.pointerId!==s.pointerId)return;const r=t.clientX-s.startX;s.kind==="middle"?at(Q(s.startWidth+r)):Ve(se(s.startWidth-r))},[Q,se]),ke=n.useCallback(t=>{const s=De.current;if(!s||t.pointerId!==s.pointerId)return;try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}if(De.current=null,document.body.classList.remove("flat-splitter-dragging"),!(Math.abs(t.clientX-s.startX)>2))return;const x=t.clientX-s.startX;if(s.kind==="middle"){const w=Q(s.startWidth+x);at(w),Lt(E.FLAT_MIDDLE_WIDTH,w)}else{const w=se(s.startWidth-x);Ve(w),Lt(E.FLAT_INSPECTOR_WIDTH,w)}},[Q,se]),zt=n.useCallback(()=>{at(null),Lt(E.FLAT_MIDDLE_WIDTH,0)},[]),Ne=n.useCallback(()=>{Ve(null),Lt(E.FLAT_INSPECTOR_WIDTH,0)},[]),[ye,mt]=n.useState(()=>Vt(E.FLAT_INSPECTOR_VIEW)==="tracking"?"tracking":"agent"),ie=n.useCallback(t=>{mt(t),qt(E.FLAT_INSPECTOR_VIEW,t)},[]),_=n.useCallback(()=>{pe(t=>{const s=!t;return xe(E.FLAT_INSPECTOR_OPEN,s),s})},[]),he=n.useCallback(()=>{pe(!1),xe(E.FLAT_INSPECTOR_OPEN,!1)},[]),F=n.useCallback(()=>{ie("tracking"),pe(!0),xe(E.FLAT_INSPECTOR_OPEN,!0)},[ie]),Nt=Ga(),ze=n.useCallback((t,s)=>{_e({url:t,name:s})},[]),pt=n.useCallback((t,s)=>{ue({command:t,output:s,isLive:!1})},[]),Rt=n.useCallback((t,s)=>{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,s,x)},[j]),B=n.useCallback(t=>{jt(t)},[]),Re=n.useCallback((t,s)=>{$e({agentId:t,count:s})},[]),ee=n.useCallback(t=>{m?m(t):o(t)},[o,m]),Ot=n.useCallback(t=>{v&&O({agentId:v,position:t})},[v]),Ft=n.useCallback((t,s)=>{ve({buildingId:t,position:s})},[]);n.useEffect(()=>{je(!1)},[v]);const Ae=n.useRef([]),le=n.useRef(-1),re=n.useRef(!1),ft=n.useRef(Vt(E.LAST_OPENED_AGENT,"")||null),[Oe,yt]=n.useState(!1),[Fe,At]=n.useState(!1),st=n.useRef(!1),Ye=n.useRef(null),it=n.useRef(!1),Se=n.useMemo(()=>new Set(be),[be]),Bt=n.useMemo(()=>{const t=new Map(R.map(r=>[r.id,r])),s=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&&s.set(r.id,x)}return s},[R]),oe=n.useCallback(()=>{const t=Ae.current,s=le.current;yt(s>0),At(s>=0&&s<t.length-1)},[]),Be=n.useCallback(t=>{const s=Ae.current;if(s.length===0)return;let r=le.current+t;for(;r>=0&&r<s.length;){const x=s[r];if(Se.has(x)){re.current=!0,le.current=r,oe(),g.selectAgent(x);return}r+=t}},[Se,oe]),We=n.useCallback(()=>Be(-1),[Be]),St=n.useCallback(()=>Be(1),[Be]);zn(n.useCallback(()=>{const t=Ae.current,s=le.current;return t.length>0&&s>0?(Be(-1),"handled"):"exit"},[Be]));const Ee=n.useCallback((t,s)=>{if(typeof window>"u")return;const r=window.history.state,w={...typeof r=="object"&&r!==null?r:{},__flatAgentNav:{agentId:t}};s==="replace"?window.history.replaceState(w,"",window.location.href):window.history.pushState(w,"",window.location.href)},[]);n.useEffect(()=>{if(!v){st.current=!1,Ye.current=null;return}if(!st.current){Ee(v,"replace"),st.current=!0,Ye.current=v;return}if(it.current){it.current=!1,Ye.current=v;return}Ye.current!==v&&(Ee(v,"push"),Ye.current=v)},[v,Ee]),n.useEffect(()=>{const t=s=>{var N,T;const r=(T=(N=s.state)==null?void 0:N.__flatAgentNav)==null?void 0:T.agentId;if(!r||typeof r!="string"||!Se.has(r)||r===v)return;it.current=!0,re.current=!0;const x=Ae.current,w=x.lastIndexOf(r);w>=0?le.current=w:(x.push(r),le.current=x.length-1),oe(),g.selectAgent(r)};return window.addEventListener("popstate",t),()=>window.removeEventListener("popstate",t)},[Se,v,oe]),n.useEffect(()=>{if(!v){Ae.current=[],le.current=-1,oe();return}if(ft.current=v,qt(E.LAST_OPENED_AGENT,v),re.current){re.current=!1,oe();return}const t=Ae.current,s=le.current;if(s>=0&&t[s]===v){oe();return}const r=s<t.length-1?t.slice(0,s+1):t.slice();r.push(v),r.length>100&&r.shift(),Ae.current=r,le.current=r.length-1,oe()},[v,oe]);const Ie=n.useCallback(t=>{c(t),ne(!1)},[c]),ht=v??"",gt=n.useCallback(()=>{},[]),Wt=n.useCallback(t=>{Ie(t)},[Ie]),ge=Ge,[ce,xt]=n.useState(ge),[Ht,bt]=n.useState(ge),He=ja(Qe||Ze!==null||ce&&ye==="agent"?v:null);n.useEffect(()=>{if(ge){xt(!0);return}bt(!1);const t=setTimeout(()=>xt(!1),240);return()=>clearTimeout(t)},[ge]),n.useEffect(()=>{if(!ce||!ge)return;let t=0;const s=requestAnimationFrame(()=>{t=requestAnimationFrame(()=>bt(!0))});return()=>{cancelAnimationFrame(s),cancelAnimationFrame(t)}},[ce,ge]);const lt=n.useRef(null);n.useEffect(()=>{if(v)return;const t=s=>{if(s.key!==" "&&s.key!=="Backspace")return;const r=s.target;if(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable)return;const x=ft.current;!x||!Se.has(x)||(s.preventDefault(),g.selectAgent(x))};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[v,Se]);const[Me,rt]=n.useState(new Set),Te=n.useCallback(t=>{rt(s=>{const r=new Set(s);return r.has(t)?r.delete(t):r.add(t),r})},[]),Et=n.useCallback(t=>{rt(new Set(t))},[]),[Z,It]=n.useState(()=>typeof window<"u"&&window.matchMedia("(max-width: 768px)").matches);n.useEffect(()=>{if(typeof window>"u")return;const t=window.matchMedia("(max-width: 768px)"),s=r=>It(r.matches);return t.addEventListener("change",s),()=>t.removeEventListener("change",s)},[]);const[a,l]=n.useState(null),i=n.useCallback(t=>{l(s=>s===t?null:t)},[]),u=Ca(),$=ka(),[V]=Xa(),S=n.useMemo(()=>{if(v)return Jn;const t=new Map,s=[];for(const h of R){const C=g.getAreaForAgent(h.id);if(!da((C==null?void 0:C.id)??null))continue;if(!C||C.archived){s.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 $.values()){let C=!1;for(const P of u.values())if(!P.archived&&ua(P.id)&&g.isPositionInArea(h.position,P)){const de=r.get(P.id);de?de.push(h):r.set(P.id,[h]),C=!0;break}!C&&da(null)&&x.push(h)}const w=[];for(const[,h]of u){if(h.archived||!ua(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})}(s.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:s,buildings:x});const N=w.filter(h=>h.area.id!=="__unassigned__"),T=w.filter(h=>h.area.id==="__unassigned__");let G=1,W=1;const f=new Map;if(N.length>1){let h=1/0,C=-1/0,P=1/0,de=-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),de=Math.max(de,q.area.center.z);const Pe=C-h||1,Mt=de-P||1;if(N.length<=4){G=N.length,W=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((I,H)=>I.area.center.x-H.area.center.x),Y=[];for(let I=1;I<q.length;I++)Y.push(q[I].area.center.x-q[I-1].area.center.x);const Ut=Y.reduce((I,H)=>I+H,0)/Y.length||1;let ia=1;for(const I of Y)I>Ut*1.3&&ia++;G=Math.max(2,Math.min(ia,N.length));const Gt=[...N].sort((I,H)=>I.area.center.z-H.area.center.z),Tt=[];for(let I=1;I<Gt.length;I++)Tt.push(Gt[I].area.center.z-Gt[I-1].area.center.z);const Ma=Tt.reduce((I,H)=>I+H,0)/Tt.length||1;let la=1;for(const I of Tt)I>Ma*1.3&&la++;W=Math.max(2,Math.min(la,N.length)),G=Math.max(G,Math.ceil(N.length/W)),W=Math.max(W,Math.ceil(N.length/G));const Ta=Pe/G,La=Mt/W,Xt=new Set;for(const I of N){let H=Math.min(G-1,Math.max(0,Math.floor((I.area.center.x-h)/Ta))),Ke=Math.min(W-1,Math.max(0,Math.floor((I.area.center.z-P)/La))),_t=`${Ke},${H}`,ra=0;const Pa=W*G;for(;Xt.has(_t)&&ra<Pa;)H++,H>=G&&(H=0,Ke=(Ke+1)%W),_t=`${Ke},${H}`,ra++;Xt.has(_t)&&(Ke=W,H=0,_t=`${Ke},${H}`,W++),Xt.add(_t),f.set(I.area.id,{row:Ke+1,col:H+1})}}}const J=h=>{h.sort((C,P)=>{var Pe,Mt,q,Y;const de=(((Pe=C.position)==null?void 0:Pe.z)??0)-(((Mt=P.position)==null?void 0:Mt.z)??0);return de!==0?de:(((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 T)J(h.agents);const X=[...N,...T].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})}),W=Math.max(1,Math.ceil(X.length/G)),{groups:X,gridCols:G,gridRows:W,positions:f}},[R,u,$,V,v]),Le=n.useMemo(()=>{let t=0,s=0;for(const r of S.groups)t+=r.agents.length,s+=r.agents.filter(x=>x.status==="working").length;return{areaCount:S.groups.length,agentCount:t,workingCount:s}},[S]),ot=n.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:()=>{Je({agentId:t.id,name:t.name})}}]:[]},[p,c]),z=n.useMemo(()=>{var N;if(!we)return[];const t=$.get(we.buildingId);if(!t)return[];const s=[],r=t.type==="server"||t.type==="docker"||t.type==="terminal",x=t.status==="running",w=t.type==="boss";if(s.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:()=>ee(t.id)}),r&&(x||s.push({id:"start",label:"Start",icon:e.jsx(d,{name:"play",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"start")}),x&&(s.push({id:"restart",label:"Restart",icon:e.jsx(d,{name:"refresh",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"restart")}),s.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&&(s.push({id:"start-all",label:"Start All Subordinates",icon:e.jsx(d,{name:"launch",size:14}),onClick:()=>{for(const T of t.subordinateBuildingIds)g.sendBuildingCommand(T,"start")}}),s.push({id:"stop-all",label:"Stop All Subordinates",icon:e.jsx(d,{name:"pause",size:14}),onClick:()=>{for(const T of t.subordinateBuildingIds)g.sendBuildingCommand(T,"stop")}}),s.push({id:"restart-all",label:"Restart All Subordinates",icon:e.jsx(d,{name:"restart",size:14}),onClick:()=>{for(const T of t.subordinateBuildingIds)g.sendBuildingCommand(T,"restart")}})),r&&s.push({id:"health-check",label:"Health Check",icon:e.jsx(d,{name:"health",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"healthCheck")}),s.push({id:"divider-edit",label:"",divider:!0,onClick:()=>{}}),s.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}}))}}),s.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 T of t.urls)s.push({id:`url-${T.label}`,label:T.label,icon:e.jsx(d,{name:"link",size:14}),onClick:()=>window.open(T.url,"_blank","noopener,noreferrer")});return s.push({id:"divider-danger",label:"",divider:!0,onClick:()=>{}}),s.push({id:"delete",label:"Delete Building",icon:e.jsx(d,{name:"trash",size:14}),danger:!0,onClick:()=>g.deleteBuilding(t.id)}),s},[we,$,ee]),U=n.useCallback(t=>{rt(new Set([t])),requestAnimationFrame(()=>{const s=lt.current;if(!s)return;const r=s.querySelector(`[data-area-id="${t}"]`);if(!r)return;const x=s.getBoundingClientRect(),N=r.getBoundingClientRect().top-x.top+s.scrollTop-8;s.scrollTo({top:Math.max(0,N),behavior:"smooth"})})},[]);return e.jsxs("div",{ref:Xe,className:`flat-view ${ge?"flat-view--with-inspector":""} ${v?"flat-view--has-chat":""} ${D?"flat-view--mobile-sidebar-open":""}`,style:(()=>{if(Ce===null&&fe===null)return;const t={};return Ce!==null&&(t["--flat-middle-width"]=`${Ce}px`),fe!==null&&(t["--flat-inspector-width"]=`${fe}px`),t})(),children:[D&&e.jsx("div",{className:"flat-mobile-sidebar-backdrop",onClick:Ct,"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:M,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:ht,onClose:gt,onSelectAgent:Wt,expandedAreas:Me,onToggleArea:Te,onSetExpandedAreas:Et,agentListRef:lt})})]}),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:nt,onPointerMove:qe,onPointerUp:ke,onPointerCancel:ke,onDoubleClick:zt}),e.jsxs("div",{className:"flat-right",children:[e.jsxs("button",{type:"button",className:"flat-mobile-sidebar-toggle","aria-label":D?"Close agents sidebar":"Open agents sidebar","aria-expanded":D,onClick:ut,children:[e.jsx(d,{name:"list",size:18}),e.jsx("span",{className:"flat-mobile-sidebar-toggle__label",children:"Agents"})]}),v?e.jsx(Zn,{agentId:v,terminalViewMode:tt,onTerminalViewModeChange:Dt,inspectorOpen:Ge,onToggleInspector:_,onShowTaskBoard:F,onImageClick:ze,onFileClick:Rt,onBashClick:pt,onViewMarkdown:B,onRequestClearSubordinates:Re,keyboard:Nt,canNavigateBack:Oe,canNavigateForward:Fe,onNavigateBack:We,onNavigateForward:St,agentInfoOpen:Qe,onToggleAgentInfo:ae,onHeaderContextMenu:Ot,onBuildingContextMenu:Ft}):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:[Le.areaCount," areas"]}),e.jsxs("span",{children:[Le.agentCount," agents"]}),Le.workingCount>0&&e.jsxs("span",{className:"flat-map__stats-working",children:[e.jsx("span",{className:"flat-map__stats-dot","aria-hidden":"true"}),Le.workingCount," working"]})]}),e.jsx(Gn,{className:"flat-map__view-mode"})]}),e.jsx("div",{className:"flat-map__grid",style:{gridTemplateColumns:Z?"repeat(2, minmax(0, 1fr))":`repeat(${S.gridCols}, 1fr)`},children:S.groups.length===0?e.jsx("div",{className:"flat-map__empty",children:e.jsx("span",{children:"No areas or agents yet"})}):(Z?[...S.groups].sort((s,r)=>{const x=S.positions.get(s.area.id),w=S.positions.get(r.area.id);return!x&&!w?0:x?w?x.row-w.row||x.col-w.col:-1:1}):S.groups).map(s=>{var W;const r=s.area.id,x=S.positions.get(r),w=s.agents.filter(f=>f.status==="working").length,N=w>0,T=Z&&a!==r,G=Z&&!T;return e.jsxs("div",{className:`flat-map-area-card${N?" flat-map-area-card--working":""}${T?" flat-map-area-card--collapsed":""}${G?" flat-map-area-card--expanded":""}`,style:{"--area-color":s.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?i(r):U(r),title:Z?T?`Expand ${s.area.name}`:`Collapse ${s.area.name}`:`Focus ${s.area.name} in left panel`,"aria-expanded":Z?!T:void 0,children:[e.jsx("span",{className:"flat-map-area-card__color",style:{background:s.area.color}}),((W=s.area.logo)==null?void 0:W.filename)&&e.jsx("img",{className:"flat-map-area-card__logo",src:Dn(s.area.logo.filename),alt:"","aria-hidden":"true",onError:f=>{f.currentTarget.style.display="none"}}),e.jsx("span",{className:"flat-map-area-card__name",children:s.area.name}),e.jsxs("span",{className:"flat-map-area-card__count",title:`${s.agents.length} agent${s.agents.length===1?"":"s"}`,"aria-label":`${s.agents.length} agent${s.agents.length===1?"":"s"}`,children:[e.jsx(d,{name:"users",size:10}),s.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(aa,{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:T?"caret-down":"caret-up",size:11,className:"flat-map-area-card__caret"})]}),e.jsx("div",{className:"flat-map-area-card__agents",children:s.agents.map(f=>{const J=f.isBoss||f.class==="boss",X=J?Bt.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)`,de=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:Pe=>{Pe.preventDefault(),Pe.stopPropagation(),O({agentId:f.id,position:{x:Pe.clientX,y:Pe.clientY}})},title:de?void 0:`${J?"Boss · ":""}Open chat with ${f.name}
|
|
1
|
+
import{r as n,aW as $a,aX as oa,N as ba,aY as _a,j as e,aZ as wa,a_ as Da,u as sa,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 va,m as Vt,S as E,y as qt,b6 as ta,b7 as ca,b8 as Lt,b9 as xe,ba as Ga,s as g,K as ja,a0 as Ca,f as ka,bb as Xa,bc as da,bd as ua,I as d,be as Va,bf as aa,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 na,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 Yt,bz as ma,bA as xn,bB as bn,bC as _n,z as wn,bD as vn,bE as jn,bF as Cn,bG as kn,bH as ct,bI as Nn,bJ as yn,bK as An,bL as Sn,bM as wt,bN as En,bO as In,bP as Mn,bQ as Tn,p as Ln,D as Pn,t as Kt,o as $n}from"./main-BTH4eRQ6.js";import{g as Dn}from"./area-logos-CzRaMbh2.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";function zn(c){const o=n.useRef(c);o.current=c,n.useEffect(()=>{if(!$a())return;let m=null,b=!1;return oa.addListener("backButton",()=>{o.current()==="exit"&&oa.exitApp()}).then(y=>{b?y.remove():m=y}),()=>{b=!0,m&&(m.remove(),m=null)}},[])}async function Rn(c){const o=ba(),m=await fetch(`${_a()}/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 On(c){const o=ba();await fetch(`${_a()}/api/agents/${c}/terminal`,{method:"DELETE",headers:{Authorization:`Bearer ${o}`}})}const vt=new Map;function Fn({agentId:c}){const[o,m]=n.useState(null),[b,y]=n.useState(null);return n.useEffect(()=>{let M=!1;const A=vt.get(c);return A&&(clearTimeout(A),vt.delete(c)),m(null),y(null),Rn(c).then(k=>{M||m(k.url)}).catch(k=>{M||y(k instanceof Error?k.message:"Failed to start terminal")}),()=>{M=!0;const k=vt.get(c);k&&clearTimeout(k),vt.set(c,setTimeout(()=>{vt.delete(c),On(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(wa,{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,Bn=6e4;function pa(c){return Number.isFinite(c)?Math.abs(c)>=1e3?c.toLocaleString(void 0,{maximumFractionDigits:0}):c.toLocaleString(void 0,{maximumFractionDigits:2}):String(c)}function Wn(c,o){var y,M,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}),(M=b.rateLimits)!=null&&M.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 Hn({agentId:c,contextSummary:o}){const{t:m}=sa(["terminal","common"]),[b,y]=n.useState(()=>{var R;return((R=Zt.get(c))==null?void 0:R.snapshot)??null}),[M,A]=n.useState(!1),[k,K]=n.useState(null),j=n.useRef(0);n.useEffect(()=>{const R=Zt.get(c);if(R&&Date.now()-R.fetchedAt<Bn){y(R.snapshot);return}const be=++j.current;A(!0),K(null),za(c).then(L=>{be===j.current&&(Zt.set(c,{snapshot:L,fetchedAt:Date.now()}),y(L),A(!1))}).catch(L=>{be===j.current&&(K(L.message||"Failed to load plan limits"),A(!1))})},[c]);const v=b?Wn(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")}),M&&!b&&e.jsxs("div",{className:"plan-limits-tooltip__muted",children:[m("common:status.loading"),"…"]}),!M&&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:be,window:L})=>{const _e=L?Math.max(0,Math.min(100,L.utilization)):0,te=Oa(_e),ue=L!=null&&typeof L.used=="number"&&typeof L.limit=="number"&&Number.isFinite(L.used)&&Number.isFinite(L.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:be}),e.jsx("span",{className:"plan-limits-tooltip__gauge-percent",style:{color:te},children:m("terminal:usage.percentUsed",{percent:Math.round(_e)})})]}),e.jsx("div",{className:"plan-limits-tooltip__bar",children:e.jsx("div",{className:"plan-limits-tooltip__bar-fill",style:{width:`${_e}%`,background:te}})}),e.jsxs("div",{className:"plan-limits-tooltip__reset",children:[L&&m("terminal:usage.resets",{time:Ra(L.resetsAt)}),ue&&e.jsx("span",{style:{marginLeft:8},children:m("terminal:usage.creditsUsed",{used:pa(L.used),limit:pa(L.limit)})})]})]},R)})}):b&&!M&&e.jsx("div",{className:"plan-limits-tooltip__muted",children:b.rateLimitsError?m("terminal:usage.limitsError",{message:b.rateLimitsError}):b.cliHint})]})}function Un({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(Hn,{agentId:c,contextSummary:m}),children:b})}const Gn=n.memo(function({className:o=""}){const{t:m}=sa(["common"]),[b,y]=Fa(),M=n.useRef(null),[A,k]=n.useState(null);n.useLayoutEffect(()=>{const j=M.current;if(!j)return;const v=j.querySelector(".view-mode-toggle__btn--active");v&&k({left:v.offsetLeft,width:v.offsetWidth})},[b]);const K=n.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:M,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))]})}),Pt=3,$t=280,fa=320,Jt=240,ha=64,Xn=["simple","chat","advanced"],ga={simple:"Simple",chat:"Chat",advanced:"Advanced"},xa={simple:"○",chat:"◐",advanced:"◉"},Vn={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 qn(c){const o=c.split("/").filter(Boolean);return o.length===0?c:o.slice(-2).join("/")}function Yn(c){if(c.provider==="codex"){const M=c.codexModel||"gpt-5.6-luna",A=Ln[M];return{model:(A==null?void 0:A.label)||M}}if(c.provider==="opencode")return{model:c.opencodeModel||"opencode"};if(c.provider==="grok"){const M=c.grokModel||Pn,A=c.effort,k=A?Kt[A]:void 0;return{model:M,effort:k==null?void 0:k.label}}if(c.provider==="pi"){const M=c.piModel||"pi default",A=c.effort,k=A?Kt[A]:void 0;return{model:M,effort:k==null?void 0:k.label}}const o=c.model||c.detectedModel||"default",m=$n[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 Kn(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 Zn=cn.memo(function({agentId:o,terminalViewMode:m,onTerminalViewModeChange:b,inspectorOpen:y,onToggleInspector:M,onShowTaskBoard:A,onImageClick:k,onFileClick:K,onBashClick:j,onViewMarkdown:v,onRequestClearSubordinates:R,keyboard:be,canNavigateBack:L,canNavigateForward:_e,onNavigateBack:te,onNavigateForward:ue,agentInfoOpen:Ze,onToggleAgentInfo:jt,onHeaderContextMenu:dt,onBuildingContextMenu:$e}){var Z,It;const p=ja(o),O=ka(),we=dn(),ve=n.useRef(null),me=n.useRef(null),Je=o,Qe=p,je=!!we.interactiveMode&&((p==null?void 0:p.provider)??"claude")==="claude"&&!!(p!=null&&p.sessionId),[ae,et]=n.useState(!1),[tt,Ue]=n.useState(null),Dt=n.useMemo(()=>{const a=Xn.map(l=>{const i=!ae&&m===l;return{id:`view-mode-${l}`,label:ga[l],icon:e.jsx("span",{className:"flat-terminal-wrapper__view-mode-icon",children:xa[l]}),shortcut:i?"✓":void 0,onClick:()=>{et(!1),b(l),Ue(null)}}});return je&&a.push({id:"view-mode-classic-tui",label:"Classic TUI",icon:e.jsx(d,{name:"terminal",size:13}),shortcut:ae?"✓":void 0,onClick:()=>{et(l=>!l),Ue(null)}}),a},[je,ae,m,b]),[Ge,pe]=n.useState(!1),D=n.useCallback(()=>pe(!1),[]);va("flat-chat-actions",Ge,D),n.useEffect(()=>{const a=()=>pe(l=>!l);return window.addEventListener("tide:toggle-chat-actions",a),()=>window.removeEventListener("tide:toggle-chat-actions",a)},[]),n.useEffect(()=>{et(!1),pe(!1)},[o]),n.useEffect(()=>{!je&&ae&&et(!1)},[je,ae]),n.useEffect(()=>{const a=me.current;if(!a)return;const l=u=>{u.button===3?(u.preventDefault(),u.stopPropagation(),te()):u.button===4&&(u.preventDefault(),u.stopPropagation(),ue())},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)}},[te,ue]),n.useEffect(()=>{const a=me.current;if(!a)return;let l=0,i=0,u=0;const $=250,V=600,S=80,Le=1.5,ot=U=>{let t=U instanceof HTMLElement?U:null;for(;t&&t!==a;){const s=window.getComputedStyle(t).overflowX;if((s==="auto"||s==="scroll")&&t.scrollWidth>t.clientWidth)return!0;t=t.parentElement}return!1},z=U=>{const t=Date.now();if(t<u){U.preventDefault();return}if(Math.abs(U.deltaX)<=Math.abs(U.deltaY)*Le){l=0;return}if(ot(U.target)){l=0;return}t-i>$&&(l=0),i=t,l+=U.deltaX,l<=-S?(l=0,u=t+V,U.preventDefault(),te()):l>=S&&(l=0,u=t+V,U.preventDefault(),ue())};return a.addEventListener("wheel",z,{passive:!1}),()=>a.removeEventListener("wheel",z)},[te,ue]);const ne=Ca(),ut=n.useMemo(()=>{if(!p)return null;const a=new Set,l=[];for(const i of ne.values())i.archived||i.directories.length===0||i.assignedAgentIds.includes(o)&&(a.add(i.id),l.push(i));for(const i of ne.values())i.archived||i.directories.length===0||a.has(i.id)||Kn({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,ne]),{branches:Ct,fetchRemote:Xe,fetchingDirs:De}=un(ut),[Ce,at]=n.useState({}),[fe,Ve]=n.useState(null),Q=n.useMemo(()=>{var $,V;const a=g.getAreaForAgent(o);if(!a)return[];const l=[],i=($=a.directories.find(S=>S&&S.trim().length>0))==null?void 0:$.trim(),u=i?i.split("/").filter(Boolean).pop()||i:a.name;l.push({id:mn(a.id),name:u,hasUrl:!!Ce[a.id],isDefault:!0});for(const S of O.values())S.type==="terminal"&&g.isPositionInArea(S.position,a)&&l.push({id:S.id,name:S.name,hasUrl:!!((V=S.terminalStatus)!=null&&V.url)});return l},[o,O,ne,Ce]),se=n.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]),nt=n.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]),kt=pn(),qe=n.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&&kt.some($=>fn($,i.folderPath));l.push({id:i.id,name:i.name,working:u})}return l},[o,O,kt]),ke=n.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]),[,zt]=n.useReducer(a=>a+1,0),Ne=((Z=ve.current)==null?void 0:Z.search.searchMode)??!1,ye=n.useCallback(()=>{var a;(a=ve.current)==null||a.search.toggleSearch(),zt()},[]),mt=hn(),ie=mt.isPending(Qt),[_,he]=n.useState(null),F=_?O.get(_.buildingId):null,[Nt,ze]=n.useState(""),[pt,Rt]=n.useState(()=>gn()),B=n.useMemo(()=>{var a;return((a=g.getAreaForAgent(o))==null?void 0:a.id)??null},[o,O]),Re=n.useCallback((a,l)=>{ze(""),he(i=>{const u=(i==null?void 0:i.buildingId)===l?null:{type:a,buildingId:l};return B&&ea(B,u),u})},[B]),ee=n.useCallback(()=>{ze(""),he(null),B&&ea(B,null)},[B]);n.useEffect(()=>{if((_==null?void 0:_.type)!=="pm2-logs")return;const a=_.buildingId;return g.startLogStreaming(a,200),()=>g.stopLogStreaming(a)},[_]),n.useEffect(()=>{if(Ve(null),(_==null?void 0:_.type)!=="terminal"||!Yt(_.buildingId))return;const a=ma(_.buildingId);let l=!1;return xn(a).then(i=>{l||at(u=>u[a]===i.url?u:{...u,[a]:i.url})}).catch(i=>{l||Ve(i instanceof Error?i.message:"Failed to start terminal")}),()=>{l=!0}},[_]);const{height:Ot,onResizeStart:Ft}=bn(),{sidePanelWidth:Ae,handleSidePanelResizeStart:le}=_n(),[re,ft]=n.useState(()=>ta(E.GIT_PANEL_OPEN,!1)),[Oe,yt]=n.useState(()=>ta(E.BUILDINGS_PANEL_OPEN,!1)),[Fe,At]=n.useState(!1),st=n.useCallback(()=>{At(a=>!a)},[]),Ye=n.useCallback(()=>At(!1),[]),it=n.useCallback(()=>{ft(a=>{const l=!a;return xe(E.GIT_PANEL_OPEN,l),l})},[]),Se=n.useCallback(()=>{yt(a=>{const l=!a;return xe(E.BUILDINGS_PANEL_OPEN,l),l})},[]),Bt=n.useCallback(()=>{ft(!1),xe(E.GIT_PANEL_OPEN,!1)},[]),oe=n.useCallback(()=>{yt(!1),xe(E.BUILDINGS_PANEL_OPEN,!1)},[]),Be=wn(),We=n.useMemo(()=>({terminal:Q,"pm2-logs":se,database:nt,tests:qe,http:ke}),[Q,se,nt,qe,ke]);n.useEffect(()=>{if(!_)return;We[_.type].some(l=>l.id===_.buildingId)||(ze(""),he(null))},[_,We]);const St=n.useRef(void 0);n.useEffect(()=>{var l;if(St.current===B)return;St.current=B;const a=B?Ia()[B]:void 0;ze(""),a&&((l=We[a.type])!=null&&l.some(i=>i.id===a.buildingId))?he(a):he(null)},[B,We]),n.useEffect(()=>{const a=l=>{var $;const i=l.detail;if(!(i!=null&&i.buildingId)||!(i!=null&&i.type)||!(($=We[i.type])!=null&&$.some(V=>V.id===i.buildingId)))return;i.handled=!0,ze("");const u={type:i.type,buildingId:i.buildingId};he(u),B&&ea(B,u)};return window.addEventListener("tide:dock-building-flat",a),()=>window.removeEventListener("tide:dock-building-flat",a)},[We,B]);const[Ee,Ie]=n.useState(!1),ht=n.useRef(null);if(n.useEffect(()=>{if(!Ee)return;const a=l=>{ht.current&&!ht.current.contains(l.target)&&Ie(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[Ee]),!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 gt=!!p.contextStats,{totalTokens:Wt,contextWindow:ge,usedPercent:ce}=Na(p),xt=Math.round(ce*10)/10,Ht=Math.round((100-ce)*10)/10,bt=ce>=80?"#ff4a4a":ce>=60?"#ff9e4a":ce>=40?"#ffd700":"#4aff9e",He=(Wt/1e3).toFixed(1),lt=(ge/1e3).toFixed(1),Me=p.cwd,rt=Me?qn(Me):null,Te=((It=p.subordinateIds)==null?void 0:It.length)||0,Et=Te>0;return e.jsxs("div",{ref:me,className:`flat-terminal-wrapper ${re||Oe||Fe?"flat-terminal-wrapper--with-side-panel":""}`,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 ${Ze?"flat-terminal-wrapper__header-main--active":""}`,onClick:jt,onContextMenu:a=>{a.preventDefault(),a.stopPropagation(),dt({x:a.clientX,y:a.clientY})},title:Ze?"Hide agent info":"Show agent info","aria-pressed":Ze,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(aa,{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}=Yn(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${tt?" flat-terminal-wrapper__view-mode-trigger--open":""}`,onClick:a=>{const l=a.currentTarget.getBoundingClientRect();Ue({x:l.left,y:l.bottom+4})},title:ae?"Classic TUI — attach to the live interactive claude session in a terminal":Vn[m],"aria-haspopup":"menu","aria-expanded":!!tt,"aria-label":"Message view mode",children:[e.jsx("span",{className:"flat-terminal-wrapper__view-mode-icon","aria-hidden":"true",children:ae?e.jsx(d,{name:"terminal",size:13}):xa[m]}),e.jsx("span",{className:"flat-terminal-wrapper__view-mode-label",children:ae?"Classic TUI":ga[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:te,disabled:!L,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:ue,disabled:!_e,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 ${Ne?"flat-terminal-wrapper__action-btn--active":""}`,onClick:ye,title:Ne?"Close search":"Search messages","aria-pressed":Ne,children:e.jsx(d,{name:Ne?"cross":"search",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn flat-terminal-wrapper__action-btn--danger ${ie?"flat-terminal-wrapper__action-btn--confirm":""}`,onClick:()=>mt.handleClick(Qt,()=>{var a;g.clearContext(o),(a=ve.current)==null||a.historyLoader.clearHistory()}),title:ie?"Click again to confirm clear context":"Clear context",children:e.jsx(d,{name:ie?"question":"clear",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${re?"flat-terminal-wrapper__action-btn--active":""}`,onClick:it,title:re?"Hide git panel":"Show git changes","aria-pressed":re,children:e.jsx(d,{name:"git-branch",size:14})}),e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${Oe?"flat-terminal-wrapper__action-btn--active":""}`,onClick:Se,title:Oe?"Hide buildings panel":"Show area buildings","aria-pressed":Oe,children:e.jsx(d,{name:"buildings",size:14})}),e.jsxs("div",{className:"flat-terminal-wrapper__more",ref:ht,children:[e.jsx("button",{type:"button",className:`flat-terminal-wrapper__action-btn ${Ee?"flat-terminal-wrapper__action-btn--active":""}`,onClick:()=>Ie(a=>!a),title:"More actions","aria-expanded":Ee,children:"⋮"}),Ee&&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 ${Fe?"flat-terminal-wrapper__more-item--active":""}`,onClick:()=>{st(),Ie(!1)},title:Fe?"Hide Debug Panel":"Show Debug Panel",children:[e.jsx(d,{name:"bug",size:14}),e.jsx("span",{children:Fe?"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),Ie(!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"})]}),Et&&e.jsxs("button",{type:"button",role:"menuitem",className:"flat-terminal-wrapper__more-item flat-terminal-wrapper__more-item--danger",onClick:()=>{R(o,Te),Ie(!1)},children:[e.jsx(d,{name:"crown",size:14}),e.jsxs("span",{children:["Clear ",Te," subordinate",Te===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),Ie(!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:M,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})})]})]}),Ge&&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 ${Ne?"is-active":""}`,onClick:()=>{ye(),D()},children:[e.jsx(d,{name:Ne?"cross":"search",size:20}),e.jsx("span",{children:Ne?"Close search":"Search"})]}),e.jsxs("button",{type:"button",role:"menuitem",className:`flat-chat-actions-sheet__item ${re?"is-active":""}`,onClick:()=>{it(),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 ${Oe?"is-active":""}`,onClick:()=>{Se(),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 ${Fe?"is-active":""}`,onClick:()=>{st(),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 ${ie?"is-armed":""}`,onClick:()=>mt.handleClick(Qt,()=>{var a;g.clearContext(o),(a=ve.current)==null||a.historyLoader.clearHistory(),D()}),children:[e.jsx(d,{name:ie?"question":"clear",size:18}),e.jsx("span",{children:ie?"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"})]}),Et&&e.jsxs("button",{type:"button",role:"menuitem",className:"flat-chat-actions-sheet__row flat-chat-actions-sheet__row--danger",onClick:()=>{R(o,Te),D()},children:[e.jsx(d,{name:"crown",size:18}),e.jsxs("span",{children:["Clear ",Te," subordinate",Te===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(vn,{agent:p,onClick:A}),ae&&je?e.jsx(Fn,{agentId:o}):Je&&Qe?e.jsx(jn,{ref:ve,agentId:Je,agent:Qe,viewMode:m,isOpen:!0,onImageClick:k,onFileClick:K,onBashClick:j,onViewMarkdown:v,keyboard:be,hasModalOpen:!1},Je):null,_&&(F||Yt(_.buildingId))&&(()=>{var Le,ot;const a=_.type,l=Yt(_.buildingId),i=(F==null?void 0:F.name)??`Terminal — ${((Le=Q.find(z=>z.id===_.buildingId))==null?void 0:Le.name)??"area"}`,u=l?Ce[ma(_.buildingId)]:(ot=F==null?void 0:F.terminalStatus)==null?void 0:ot.url,$={terminal:"terminal","pm2-logs":"scroll",database:"hard-drives",tests:"flask",http:"globe"},V=a==="terminal"&&!u,S=!V&&!l;return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"guake-bottom-terminal-resize",onMouseDown:Ft,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:Ot},children:[e.jsxs("div",{className:"flat-bottom-panel__header",children:[e.jsxs("span",{className:"flat-bottom-panel__title",children:[e.jsx(d,{name:$[a],size:12}),e.jsx("span",{children:i}),V&&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:Nt,onChange:z=>ze(z.target.value),placeholder:"Filter logs","aria-label":`Filter logs for ${F.name}`,spellCheck:!1}),e.jsx("select",{className:"guake-bottom-terminal-retention",value:pt===null?"unlimited":String(pt),onChange:z=>{const U=z.target.value==="unlimited"?null:Number(z.target.value);Rt(U),kn(U)},"aria-label":`Max log retention for ${F.name}`,children:Cn.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})})]}),S&&e.jsx("button",{type:"button",className:"flat-bottom-panel__close",onClick:()=>{ee(),ct(_.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:ee,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(wa,{terminalUrl:u,visible:!0}):e.jsx("div",{className:"flat-bottom-panel__placeholder",children:fe??"Starting terminal..."}):a==="pm2-logs"?e.jsx(Nn,{buildingId:_.buildingId,filterText:Nt,maxRetention:pt}):F?a==="database"?e.jsx(yn,{building:F}):a==="tests"?e.jsx("div",{className:"tests-panel-host",children:e.jsx(An,{building:F,autoFocusSearch:!1})}):e.jsx("div",{className:"http-requests-panel-host",children:e.jsx(Sn,{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"})]}),Me&&rt&&e.jsxs("span",{className:"flat-terminal-wrapper__cwd",title:`Open in file explorer: ${Me}`,"aria-label":`Open ${Me} in file explorer`,role:"button",tabIndex:0,onClick:()=>g.openFileExplorer(Me),onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),g.openFileExplorer(Me))},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:rt})]}),ut&&ut.map(({areaId:a,areaName:l,dir:i})=>{const u=Ct.get(i),$=De.has(i),V=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:V}),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 ${$?"flat-terminal-wrapper__area-fetch--fetching":""}`,title:"Git fetch",onClick:S=>{S.stopPropagation(),Xe(i)},children:e.jsx(d,{name:$?"hourglass":"download",size:12})})]})]},`${a}:${i}`)}),e.jsx(Un,{agentId:o,disabled:((p==null?void 0:p.provider)??"claude")!=="claude"&&((p==null?void 0:p.provider)??"claude")!=="grok",contextSummary:gt?`Context: ${He}k / ${lt}k tokens (${xt}% 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"?gt?`Context usage: ${He}k / ${lt}k tokens (${xt}% 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:`${ce}%`,backgroundColor:bt}})}),e.jsxs("span",{className:"flat-terminal-wrapper__context-tokens",style:{color:bt},children:[He,"k/",lt,"k"]}),e.jsxs("span",{className:"flat-terminal-wrapper__context-free",children:["(",Ht,"% free)"]}),!gt&&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?ee():Re("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){ee();return}if(a.hasUrl&&wt(a.id)==="modal"){ct(a.id);return}a.hasUrl||g.sendBuildingCommand(a.id,"start"),Re("terminal",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"terminal",size:14})},a.id)})}),se.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area PM2 logs",children:se.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?ee():wt(a.id)==="modal"?ct(a.id):Re("pm2-logs",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"scroll",size:14})},a.id)})}),nt.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area databases",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"} database: ${a.name}`,onClick:()=>{l?ee():wt(a.id)==="modal"?ct(a.id):Re("database",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"hard-drives",size:14})},a.id)})}),qe.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area tests",children:qe.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?ee():wt(a.id)==="modal"?ct(a.id):Re("tests",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(a.id,{x:i.clientX,y:i.clientY})},children:e.jsx(d,{name:"flask",size:14})},a.id)})}),ke.length>0&&e.jsx("span",{className:"flat-terminal-wrapper__buildings",role:"group","aria-label":"Area HTTP requests",children:ke.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?ee():wt(a.id)==="modal"?ct(a.id):Re("http",a.id)},onContextMenu:i=>{i.preventDefault(),i.stopPropagation(),$e(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(En,{iconOnly:!0})})]}),re&&e.jsx(In,{agentId:o,agents:Be,onClose:Bt,branchInfoMap:Ct,fetchRemote:Xe,fetchingDirs:De,onResizeStart:a=>le(a,"right")}),Oe&&e.jsx(Mn,{agentId:o,onClose:oe}),Fe&&e.jsx(Tn,{agentId:o,onClose:Ye}),e.jsx(na,{isOpen:tt!==null,position:tt??{x:0,y:0},worldPosition:{x:0,z:0},actions:Dt,onClose:()=>Ue(null)})]})}),Jn={groups:[],gridCols:1,gridRows:1,positions:new Map};function ns({onAgentClick:c,onBuildingClick:o,onBuildingDoubleClick:m,onBuildingPopup:b,onAreaContextMenu:y,onOpenSpawnModal:M,onOpenBossSpawnModal:A,onOpenAreaModal:k}){const{t:K}=sa(["common"]),j=Wa(),v=n.useMemo(()=>j.size>0?j.values().next().value??null:null,[j]),R=Ha(v===null),be=Ua(),[L,_e]=n.useState(null),[te,ue]=n.useState(null),[Ze,jt]=n.useState(null);va("flatview-image-modal",L!==null,()=>_e(null));const[dt,$e]=n.useState(null),[p,O]=n.useState(null),[we,ve]=n.useState(null),[me,Je]=n.useState(null),[Qe,je]=n.useState(!1),ae=n.useCallback(()=>{je(t=>!t)},[]),et=n.useCallback(()=>{je(!1)},[]),[tt,Ue]=n.useState(()=>{const t=Vt(E.VIEW_MODE);return t==="simple"||t==="chat"||t==="advanced"?t:"simple"}),Dt=n.useCallback(t=>{Ue(t),qt(E.VIEW_MODE,t)},[]);n.useEffect(()=>{const t=s=>{if(s.key!==E.VIEW_MODE)return;const r=s.newValue;(r==="simple"||r==="chat"||r==="advanced")&&Ue(r)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[]);const[Ge,pe]=n.useState(()=>ta(E.FLAT_INSPECTOR_OPEN,!1)),[D,ne]=n.useState(!1),ut=n.useCallback(()=>ne(t=>!t),[]),Ct=n.useCallback(()=>ne(!1),[]);n.useEffect(()=>{window.dispatchEvent(new CustomEvent("tide-flat-agents-drawer-state",{detail:{open:D}}))},[D]),n.useEffect(()=>{window.dispatchEvent(new CustomEvent("tide-flat-inspector-state",{detail:{open:Ge}}))},[Ge]),n.useEffect(()=>{const t=()=>ne(N=>!N),s=()=>{pe(N=>{const T=!N;return xe(E.FLAT_INSPECTOR_OPEN,T),T})},r=()=>{ne(!1),pe(!1),xe(E.FLAT_INSPECTOR_OPEN,!1)},x=()=>ne(!1),w=()=>{pe(!1),xe(E.FLAT_INSPECTOR_OPEN,!1)};return window.addEventListener("tide-toggle-flat-agents-drawer",t),window.addEventListener("tide-toggle-flat-inspector",s),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",s),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 Xe=n.useRef(null),De=n.useRef(null),[Ce,at]=n.useState(()=>{const t=ca(E.FLAT_MIDDLE_WIDTH,0);return t>=$t?t:null}),[fe,Ve]=n.useState(()=>{const t=ca(E.FLAT_INSPECTOR_WIDTH,0);return t>=Jt?t:null}),Q=n.useCallback(t=>{if(typeof window>"u")return t;const s=fe!==null?Pt+fe:0,r=window.innerWidth-ha-Pt-fa-s;return Math.max($t,Math.min(Math.max(r,$t),t))},[fe]),se=n.useCallback(t=>{var w;if(typeof window>"u")return t;const s=(w=Xe.current)==null?void 0:w.querySelector(".flat-middle"),r=(s==null?void 0:s.getBoundingClientRect().width)??$t,x=window.innerWidth-ha-r-Pt-fa-Pt;return Math.max(Jt,Math.min(Math.max(x,Jt),t))},[]);n.useEffect(()=>{if(Ce===null&&fe===null)return;const t=()=>{at(s=>{if(s===null)return s;const r=Q(s);return r===s?s:r}),Ve(s=>{if(s===null)return s;const r=se(s);return r===s?s:r})};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[Ce,fe,Q,se]);const nt=n.useCallback(t=>{var r;if(t.button!==0)return;const s=(r=Xe.current)==null?void 0:r.querySelector(".flat-middle");s&&(t.currentTarget.setPointerCapture(t.pointerId),De.current={kind:"middle",startX:t.clientX,startWidth:s.getBoundingClientRect().width,pointerId:t.pointerId},document.body.classList.add("flat-splitter-dragging"))},[]),kt=n.useCallback(t=>{var r;if(t.button!==0)return;const s=(r=Xe.current)==null?void 0:r.querySelector(".flat-inspector");s&&(t.currentTarget.setPointerCapture(t.pointerId),De.current={kind:"inspector",startX:t.clientX,startWidth:s.getBoundingClientRect().width,pointerId:t.pointerId},document.body.classList.add("flat-splitter-dragging"))},[]),qe=n.useCallback(t=>{const s=De.current;if(!s||t.pointerId!==s.pointerId)return;const r=t.clientX-s.startX;s.kind==="middle"?at(Q(s.startWidth+r)):Ve(se(s.startWidth-r))},[Q,se]),ke=n.useCallback(t=>{const s=De.current;if(!s||t.pointerId!==s.pointerId)return;try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}if(De.current=null,document.body.classList.remove("flat-splitter-dragging"),!(Math.abs(t.clientX-s.startX)>2))return;const x=t.clientX-s.startX;if(s.kind==="middle"){const w=Q(s.startWidth+x);at(w),Lt(E.FLAT_MIDDLE_WIDTH,w)}else{const w=se(s.startWidth-x);Ve(w),Lt(E.FLAT_INSPECTOR_WIDTH,w)}},[Q,se]),zt=n.useCallback(()=>{at(null),Lt(E.FLAT_MIDDLE_WIDTH,0)},[]),Ne=n.useCallback(()=>{Ve(null),Lt(E.FLAT_INSPECTOR_WIDTH,0)},[]),[ye,mt]=n.useState(()=>Vt(E.FLAT_INSPECTOR_VIEW)==="tracking"?"tracking":"agent"),ie=n.useCallback(t=>{mt(t),qt(E.FLAT_INSPECTOR_VIEW,t)},[]),_=n.useCallback(()=>{pe(t=>{const s=!t;return xe(E.FLAT_INSPECTOR_OPEN,s),s})},[]),he=n.useCallback(()=>{pe(!1),xe(E.FLAT_INSPECTOR_OPEN,!1)},[]),F=n.useCallback(()=>{ie("tracking"),pe(!0),xe(E.FLAT_INSPECTOR_OPEN,!0)},[ie]),Nt=Ga(),ze=n.useCallback((t,s)=>{_e({url:t,name:s})},[]),pt=n.useCallback((t,s)=>{ue({command:t,output:s,isLive:!1})},[]),Rt=n.useCallback((t,s)=>{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,s,x)},[j]),B=n.useCallback(t=>{jt(t)},[]),Re=n.useCallback((t,s)=>{$e({agentId:t,count:s})},[]),ee=n.useCallback(t=>{m?m(t):o(t)},[o,m]),Ot=n.useCallback(t=>{v&&O({agentId:v,position:t})},[v]),Ft=n.useCallback((t,s)=>{ve({buildingId:t,position:s})},[]);n.useEffect(()=>{je(!1)},[v]);const Ae=n.useRef([]),le=n.useRef(-1),re=n.useRef(!1),ft=n.useRef(Vt(E.LAST_OPENED_AGENT,"")||null),[Oe,yt]=n.useState(!1),[Fe,At]=n.useState(!1),st=n.useRef(!1),Ye=n.useRef(null),it=n.useRef(!1),Se=n.useMemo(()=>new Set(be),[be]),Bt=n.useMemo(()=>{const t=new Map(R.map(r=>[r.id,r])),s=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&&s.set(r.id,x)}return s},[R]),oe=n.useCallback(()=>{const t=Ae.current,s=le.current;yt(s>0),At(s>=0&&s<t.length-1)},[]),Be=n.useCallback(t=>{const s=Ae.current;if(s.length===0)return;let r=le.current+t;for(;r>=0&&r<s.length;){const x=s[r];if(Se.has(x)){re.current=!0,le.current=r,oe(),g.selectAgent(x);return}r+=t}},[Se,oe]),We=n.useCallback(()=>Be(-1),[Be]),St=n.useCallback(()=>Be(1),[Be]);zn(n.useCallback(()=>{const t=Ae.current,s=le.current;return t.length>0&&s>0?(Be(-1),"handled"):"exit"},[Be]));const Ee=n.useCallback((t,s)=>{if(typeof window>"u")return;const r=window.history.state,w={...typeof r=="object"&&r!==null?r:{},__flatAgentNav:{agentId:t}};s==="replace"?window.history.replaceState(w,"",window.location.href):window.history.pushState(w,"",window.location.href)},[]);n.useEffect(()=>{if(!v){st.current=!1,Ye.current=null;return}if(!st.current){Ee(v,"replace"),st.current=!0,Ye.current=v;return}if(it.current){it.current=!1,Ye.current=v;return}Ye.current!==v&&(Ee(v,"push"),Ye.current=v)},[v,Ee]),n.useEffect(()=>{const t=s=>{var N,T;const r=(T=(N=s.state)==null?void 0:N.__flatAgentNav)==null?void 0:T.agentId;if(!r||typeof r!="string"||!Se.has(r)||r===v)return;it.current=!0,re.current=!0;const x=Ae.current,w=x.lastIndexOf(r);w>=0?le.current=w:(x.push(r),le.current=x.length-1),oe(),g.selectAgent(r)};return window.addEventListener("popstate",t),()=>window.removeEventListener("popstate",t)},[Se,v,oe]),n.useEffect(()=>{if(!v){Ae.current=[],le.current=-1,oe();return}if(ft.current=v,qt(E.LAST_OPENED_AGENT,v),re.current){re.current=!1,oe();return}const t=Ae.current,s=le.current;if(s>=0&&t[s]===v){oe();return}const r=s<t.length-1?t.slice(0,s+1):t.slice();r.push(v),r.length>100&&r.shift(),Ae.current=r,le.current=r.length-1,oe()},[v,oe]);const Ie=n.useCallback(t=>{c(t),ne(!1)},[c]),ht=v??"",gt=n.useCallback(()=>{},[]),Wt=n.useCallback(t=>{Ie(t)},[Ie]),ge=Ge,[ce,xt]=n.useState(ge),[Ht,bt]=n.useState(ge),He=ja(Qe||Ze!==null||ce&&ye==="agent"?v:null);n.useEffect(()=>{if(ge){xt(!0);return}bt(!1);const t=setTimeout(()=>xt(!1),240);return()=>clearTimeout(t)},[ge]),n.useEffect(()=>{if(!ce||!ge)return;let t=0;const s=requestAnimationFrame(()=>{t=requestAnimationFrame(()=>bt(!0))});return()=>{cancelAnimationFrame(s),cancelAnimationFrame(t)}},[ce,ge]);const lt=n.useRef(null);n.useEffect(()=>{if(v)return;const t=s=>{if(s.key!==" "&&s.key!=="Backspace")return;const r=s.target;if(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable)return;const x=ft.current;!x||!Se.has(x)||(s.preventDefault(),g.selectAgent(x))};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[v,Se]);const[Me,rt]=n.useState(new Set),Te=n.useCallback(t=>{rt(s=>{const r=new Set(s);return r.has(t)?r.delete(t):r.add(t),r})},[]),Et=n.useCallback(t=>{rt(new Set(t))},[]),[Z,It]=n.useState(()=>typeof window<"u"&&window.matchMedia("(max-width: 768px)").matches);n.useEffect(()=>{if(typeof window>"u")return;const t=window.matchMedia("(max-width: 768px)"),s=r=>It(r.matches);return t.addEventListener("change",s),()=>t.removeEventListener("change",s)},[]);const[a,l]=n.useState(null),i=n.useCallback(t=>{l(s=>s===t?null:t)},[]),u=Ca(),$=ka(),[V]=Xa(),S=n.useMemo(()=>{if(v)return Jn;const t=new Map,s=[];for(const h of R){const C=g.getAreaForAgent(h.id);if(!da((C==null?void 0:C.id)??null))continue;if(!C||C.archived){s.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 $.values()){let C=!1;for(const P of u.values())if(!P.archived&&ua(P.id)&&g.isPositionInArea(h.position,P)){const de=r.get(P.id);de?de.push(h):r.set(P.id,[h]),C=!0;break}!C&&da(null)&&x.push(h)}const w=[];for(const[,h]of u){if(h.archived||!ua(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})}(s.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:s,buildings:x});const N=w.filter(h=>h.area.id!=="__unassigned__"),T=w.filter(h=>h.area.id==="__unassigned__");let G=1,W=1;const f=new Map;if(N.length>1){let h=1/0,C=-1/0,P=1/0,de=-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),de=Math.max(de,q.area.center.z);const Pe=C-h||1,Mt=de-P||1;if(N.length<=4){G=N.length,W=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((I,H)=>I.area.center.x-H.area.center.x),Y=[];for(let I=1;I<q.length;I++)Y.push(q[I].area.center.x-q[I-1].area.center.x);const Ut=Y.reduce((I,H)=>I+H,0)/Y.length||1;let ia=1;for(const I of Y)I>Ut*1.3&&ia++;G=Math.max(2,Math.min(ia,N.length));const Gt=[...N].sort((I,H)=>I.area.center.z-H.area.center.z),Tt=[];for(let I=1;I<Gt.length;I++)Tt.push(Gt[I].area.center.z-Gt[I-1].area.center.z);const Ma=Tt.reduce((I,H)=>I+H,0)/Tt.length||1;let la=1;for(const I of Tt)I>Ma*1.3&&la++;W=Math.max(2,Math.min(la,N.length)),G=Math.max(G,Math.ceil(N.length/W)),W=Math.max(W,Math.ceil(N.length/G));const Ta=Pe/G,La=Mt/W,Xt=new Set;for(const I of N){let H=Math.min(G-1,Math.max(0,Math.floor((I.area.center.x-h)/Ta))),Ke=Math.min(W-1,Math.max(0,Math.floor((I.area.center.z-P)/La))),_t=`${Ke},${H}`,ra=0;const Pa=W*G;for(;Xt.has(_t)&&ra<Pa;)H++,H>=G&&(H=0,Ke=(Ke+1)%W),_t=`${Ke},${H}`,ra++;Xt.has(_t)&&(Ke=W,H=0,_t=`${Ke},${H}`,W++),Xt.add(_t),f.set(I.area.id,{row:Ke+1,col:H+1})}}}const J=h=>{h.sort((C,P)=>{var Pe,Mt,q,Y;const de=(((Pe=C.position)==null?void 0:Pe.z)??0)-(((Mt=P.position)==null?void 0:Mt.z)??0);return de!==0?de:(((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 T)J(h.agents);const X=[...N,...T].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})}),W=Math.max(1,Math.ceil(X.length/G)),{groups:X,gridCols:G,gridRows:W,positions:f}},[R,u,$,V,v]),Le=n.useMemo(()=>{let t=0,s=0;for(const r of S.groups)t+=r.agents.length,s+=r.agents.filter(x=>x.status==="working").length;return{areaCount:S.groups.length,agentCount:t,workingCount:s}},[S]),ot=n.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:()=>{Je({agentId:t.id,name:t.name})}}]:[]},[p,c]),z=n.useMemo(()=>{var N;if(!we)return[];const t=$.get(we.buildingId);if(!t)return[];const s=[],r=t.type==="server"||t.type==="docker"||t.type==="terminal",x=t.status==="running",w=t.type==="boss";if(s.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:()=>ee(t.id)}),r&&(x||s.push({id:"start",label:"Start",icon:e.jsx(d,{name:"play",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"start")}),x&&(s.push({id:"restart",label:"Restart",icon:e.jsx(d,{name:"refresh",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"restart")}),s.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&&(s.push({id:"start-all",label:"Start All Subordinates",icon:e.jsx(d,{name:"launch",size:14}),onClick:()=>{for(const T of t.subordinateBuildingIds)g.sendBuildingCommand(T,"start")}}),s.push({id:"stop-all",label:"Stop All Subordinates",icon:e.jsx(d,{name:"pause",size:14}),onClick:()=>{for(const T of t.subordinateBuildingIds)g.sendBuildingCommand(T,"stop")}}),s.push({id:"restart-all",label:"Restart All Subordinates",icon:e.jsx(d,{name:"restart",size:14}),onClick:()=>{for(const T of t.subordinateBuildingIds)g.sendBuildingCommand(T,"restart")}})),r&&s.push({id:"health-check",label:"Health Check",icon:e.jsx(d,{name:"health",size:14}),onClick:()=>g.sendBuildingCommand(t.id,"healthCheck")}),s.push({id:"divider-edit",label:"",divider:!0,onClick:()=>{}}),s.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}}))}}),s.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 T of t.urls)s.push({id:`url-${T.label}`,label:T.label,icon:e.jsx(d,{name:"link",size:14}),onClick:()=>window.open(T.url,"_blank","noopener,noreferrer")});return s.push({id:"divider-danger",label:"",divider:!0,onClick:()=>{}}),s.push({id:"delete",label:"Delete Building",icon:e.jsx(d,{name:"trash",size:14}),danger:!0,onClick:()=>g.deleteBuilding(t.id)}),s},[we,$,ee]),U=n.useCallback(t=>{rt(new Set([t])),requestAnimationFrame(()=>{const s=lt.current;if(!s)return;const r=s.querySelector(`[data-area-id="${t}"]`);if(!r)return;const x=s.getBoundingClientRect(),N=r.getBoundingClientRect().top-x.top+s.scrollTop-8;s.scrollTo({top:Math.max(0,N),behavior:"smooth"})})},[]);return e.jsxs("div",{ref:Xe,className:`flat-view ${ge?"flat-view--with-inspector":""} ${v?"flat-view--has-chat":""} ${D?"flat-view--mobile-sidebar-open":""}`,style:(()=>{if(Ce===null&&fe===null)return;const t={};return Ce!==null&&(t["--flat-middle-width"]=`${Ce}px`),fe!==null&&(t["--flat-inspector-width"]=`${fe}px`),t})(),children:[D&&e.jsx("div",{className:"flat-mobile-sidebar-backdrop",onClick:Ct,"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:M,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:ht,onClose:gt,onSelectAgent:Wt,expandedAreas:Me,onToggleArea:Te,onSetExpandedAreas:Et,agentListRef:lt})})]}),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:nt,onPointerMove:qe,onPointerUp:ke,onPointerCancel:ke,onDoubleClick:zt}),e.jsxs("div",{className:"flat-right",children:[e.jsxs("button",{type:"button",className:"flat-mobile-sidebar-toggle","aria-label":D?"Close agents sidebar":"Open agents sidebar","aria-expanded":D,onClick:ut,children:[e.jsx(d,{name:"list",size:18}),e.jsx("span",{className:"flat-mobile-sidebar-toggle__label",children:"Agents"})]}),v?e.jsx(Zn,{agentId:v,terminalViewMode:tt,onTerminalViewModeChange:Dt,inspectorOpen:Ge,onToggleInspector:_,onShowTaskBoard:F,onImageClick:ze,onFileClick:Rt,onBashClick:pt,onViewMarkdown:B,onRequestClearSubordinates:Re,keyboard:Nt,canNavigateBack:Oe,canNavigateForward:Fe,onNavigateBack:We,onNavigateForward:St,agentInfoOpen:Qe,onToggleAgentInfo:ae,onHeaderContextMenu:Ot,onBuildingContextMenu:Ft}):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:[Le.areaCount," areas"]}),e.jsxs("span",{children:[Le.agentCount," agents"]}),Le.workingCount>0&&e.jsxs("span",{className:"flat-map__stats-working",children:[e.jsx("span",{className:"flat-map__stats-dot","aria-hidden":"true"}),Le.workingCount," working"]})]}),e.jsx(Gn,{className:"flat-map__view-mode"})]}),e.jsx("div",{className:"flat-map__grid",style:{gridTemplateColumns:Z?"repeat(2, minmax(0, 1fr))":`repeat(${S.gridCols}, 1fr)`},children:S.groups.length===0?e.jsx("div",{className:"flat-map__empty",children:e.jsx("span",{children:"No areas or agents yet"})}):(Z?[...S.groups].sort((s,r)=>{const x=S.positions.get(s.area.id),w=S.positions.get(r.area.id);return!x&&!w?0:x?w?x.row-w.row||x.col-w.col:-1:1}):S.groups).map(s=>{var W;const r=s.area.id,x=S.positions.get(r),w=s.agents.filter(f=>f.status==="working").length,N=w>0,T=Z&&a!==r,G=Z&&!T;return e.jsxs("div",{className:`flat-map-area-card${N?" flat-map-area-card--working":""}${T?" flat-map-area-card--collapsed":""}${G?" flat-map-area-card--expanded":""}`,style:{"--area-color":s.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?i(r):U(r),title:Z?T?`Expand ${s.area.name}`:`Collapse ${s.area.name}`:`Focus ${s.area.name} in left panel`,"aria-expanded":Z?!T:void 0,children:[e.jsx("span",{className:"flat-map-area-card__color",style:{background:s.area.color}}),((W=s.area.logo)==null?void 0:W.filename)&&e.jsx("img",{className:"flat-map-area-card__logo",src:Dn(s.area.logo.filename),alt:"","aria-hidden":"true",onError:f=>{f.currentTarget.style.display="none"}}),e.jsx("span",{className:"flat-map-area-card__name",children:s.area.name}),e.jsxs("span",{className:"flat-map-area-card__count",title:`${s.agents.length} agent${s.agents.length===1?"":"s"}`,"aria-label":`${s.agents.length} agent${s.agents.length===1?"":"s"}`,children:[e.jsx(d,{name:"users",size:10}),s.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(aa,{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:T?"caret-down":"caret-up",size:11,className:"flat-map-area-card__caret"})]}),e.jsx("div",{className:"flat-map-area-card__agents",children:s.agents.map(f=>{const J=f.isBoss||f.class==="boss",X=J?Bt.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)`,de=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:Pe=>{Pe.preventDefault(),Pe.stopPropagation(),O({agentId:f.id,position:{x:Pe.clientX,y:Pe.clientY}})},title:de?void 0:`${J?"Boss · ":""}Open chat with ${f.name}
|
|
2
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(aa,{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)})}),s.area.directories.length>0&&e.jsx("div",{className:"flat-map-area-card__folders",role:"group","aria-label":`${s.area.name} folders`,children:s.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)})}),s.buildings.length>0&&e.jsx("div",{className:"flat-map-area-card__buildings",children:s.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 ee(f.id)},onContextMenu:h=>{h.preventDefault(),h.stopPropagation(),ve({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)})})]})})]}),ge&&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:kt,onPointerMove:qe,onPointerUp:ke,onPointerCancel:ke,onDoubleClick:Ne}),ce&&e.jsxs("aside",{className:`flat-inspector ${Ht?"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":ye==="agent",className:`flat-inspector__tab ${ye==="agent"?"flat-inspector__tab--active":""}`,onClick:()=>ie("agent"),children:"Agent"}),e.jsx("button",{type:"button",role:"tab","aria-selected":ye==="tracking",className:`flat-inspector__tab ${ye==="tracking"?"flat-inspector__tab--active":""}`,onClick:()=>ie("tracking"),children:"Tracking"})]}),e.jsx("button",{type:"button",className:"flat-inspector__close",onClick:he,title:"Close inspector","aria-label":"Close inspector",children:"✕"})]}),e.jsx("div",{className:"flat-inspector__body",children:ye==="tracking"?e.jsx(en,{activeAgentId:v??"",onSelectAgent:t=>{c(t),window.innerWidth<=768&&he()}}):v?He?e.jsx(tn,{agent:He,onFocusAgent:t=>{c(t),window.innerWidth<=768&&he()},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"})})})]}),L&&e.jsx(an,{url:L.url,name:L.name,onClose:()=>_e(null)}),te&&e.jsx(nn,{state:te,onClose:()=>ue(null)}),e.jsx(sn,{agent:He??null,content:Ze,onClose:()=>jt(null)}),dt&&e.jsx(ln,{action:"clear-subordinates",selectedAgentId:dt.agentId,subordinateCount:dt.count,onClose:()=>$e(null),onClearHistory:()=>{}}),e.jsx(rn,{agent:He??null,isOpen:Qe&&!!v,onClose:et}),e.jsx(na,{isOpen:p!==null,position:(p==null?void 0:p.position)??{x:0,y:0},worldPosition:{x:0,z:0},actions:ot,onClose:()=>O(null)}),e.jsx(na,{isOpen:we!==null,position:(we==null?void 0:we.position)??{x:0,y:0},worldPosition:{x:0,z:0},actions:z,onClose:()=>ve(null)}),e.jsx(on,{isOpen:me!==null,title:K("common:confirm.removeAgentTitle"),message:K("common:confirm.removeAgentMessage",{name:(me==null?void 0:me.name)??""}),confirmLabel:K("common:buttons.remove"),cancelLabel:K("common:buttons.cancel"),variant:"danger",onConfirm:()=>{me&&g.removeAgentFromServer(me.agentId)},onClose:()=>Je(null)})]})}export{ns as FlatView};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as a,l as s,F as n,e as i}from"./mermaid.core-
|
|
1
|
+
import{_ as a,l as s,F as n,e as i}from"./mermaid.core-CAEdJZ_w.js";import{p}from"./cynefin-VYW2F7L2-BMZ4knrn.js";import"./main-BTH4eRQ6.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";var g={parse:a(async r=>{const e=await p("info",r);s.debug(e)},"parse")},v={version:"11.16.0"},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},y={parser:g,db:m,renderer:l};export{y as diagram};
|
package/dist/assets/{ishikawaDiagram-FXEZZL3T-DXsaNDYg.js → ishikawaDiagram-FXEZZL3T-C2aoYMOy.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as o,c as ot,a1 as ut,F as dt,al 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-
|
|
1
|
+
import{_ as o,c as ot,a1 as ut,F as dt,al 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-CAEdJZ_w.js";import"./main-BTH4eRQ6.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.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()+`
|
package/dist/assets/{journeyDiagram-5HDEW3XC-6QlK8xHN.js → journeyDiagram-5HDEW3XC-C-GVB1KY.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as gt}from"./chunk-5VM5RSS4-
|
|
1
|
+
import{g as gt}from"./chunk-5VM5RSS4-Dmv7dmVy.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-32BRIVSS-rQSWhcb_.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-CAEdJZ_w.js";import{d as it}from"./arc-DIfPSJnG.js";import"./main-BTH4eRQ6.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.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,af as ye,ag as be,ah 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-
|
|
1
|
+
import{_ as c,l as te,c as W,F as fe,af as ye,ag as be,ah 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-CAEdJZ_w.js";import{g as Ne}from"./chunk-5VM5RSS4-Dmv7dmVy.js";import"./main-BTH4eRQ6.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.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()+`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b9 as j,ba as p,bb as w,bc as k,bd as q}from"./mermaid.core-
|
|
1
|
+
import{b9 as j,ba as p,bb as w,bc as k,bd as q}from"./mermaid.core-CAEdJZ_w.js";import{i as D}from"./init-Gi6I4Gst.js";import{e as g,f as F,a as z,b as B}from"./defaultLocale-DX6XiGOO.js";function M(n,r){return n==null||r==null?NaN:n<r?-1:n>r?1:n>=r?0:NaN}function I(n,r){return n==null||r==null?NaN:r<n?-1:r>n?1:r>=n?0:NaN}function R(n){let r,t,e;n.length!==2?(r=M,t=(o,c)=>M(n(o),c),e=(o,c)=>n(o)-c):(r=n===M||n===I?n:P,t=n,e=n);function u(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<0?i=l+1:h=l}while(i<h)}return i}function f(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<=0?i=l+1:h=l}while(i<h)}return i}function a(o,c,i=0,h=o.length){const l=u(o,c,i,h-1);return l>i&&e(o[l-1],c)>-e(o[l],c)?l-1:l}return{left:u,center:a,right:f}}function P(){return 0}function V(n){return n===null?NaN:+n}const $=R(M),x=$.right;R(V).center;const O=Math.sqrt(50),T=Math.sqrt(10),C=Math.sqrt(2);function v(n,r,t){const e=(r-n)/Math.max(0,t),u=Math.floor(Math.log10(e)),f=e/Math.pow(10,u),a=f>=O?10:f>=T?5:f>=C?2:1;let o,c,i;return u<0?(i=Math.pow(10,-u)/a,o=Math.round(n*i),c=Math.round(r*i),o/i<n&&++o,c/i>r&&--c,i=-i):(i=Math.pow(10,u)*a,o=Math.round(n/i),c=Math.round(r/i),o*i<n&&++o,c*i>r&&--c),c<o&&.5<=t&&t<2?v(n,r,t*2):[o,c,i]}function E(n,r,t){if(r=+r,n=+n,t=+t,!(t>0))return[];if(n===r)return[n];const e=r<n,[u,f,a]=e?v(r,n,t):v(n,r,t);if(!(f>=u))return[];const o=f-u+1,c=new Array(o);if(e)if(a<0)for(let i=0;i<o;++i)c[i]=(f-i)/-a;else for(let i=0;i<o;++i)c[i]=(f-i)*a;else if(a<0)for(let i=0;i<o;++i)c[i]=(u+i)/-a;else for(let i=0;i<o;++i)c[i]=(u+i)*a;return c}function y(n,r,t){return r=+r,n=+n,t=+t,v(n,r,t)[2]}function G(n,r,t){r=+r,n=+n,t=+t;const e=r<n,u=e?y(r,n,t):y(n,r,t);return(e?-1:1)*(u<0?1/-u:u)}function H(n,r){r||(r=[]);var t=n?Math.min(r.length,n.length):0,e=r.slice(),u;return function(f){for(u=0;u<t;++u)e[u]=n[u]*(1-f)+r[u]*f;return e}}function J(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function K(n,r){var t=r?r.length:0,e=n?Math.min(t,n.length):0,u=new Array(e),f=new Array(t),a;for(a=0;a<e;++a)u[a]=N(n[a],r[a]);for(;a<t;++a)f[a]=r[a];return function(o){for(a=0;a<e;++a)f[a]=u[a](o);return f}}function L(n,r){var t=new Date;return n=+n,r=+r,function(e){return t.setTime(n*(1-e)+r*e),t}}function Q(n,r){var t={},e={},u;(n===null||typeof n!="object")&&(n={}),(r===null||typeof r!="object")&&(r={});for(u in r)u in n?t[u]=N(n[u],r[u]):e[u]=r[u];return function(f){for(u in t)e[u]=t[u](f);return e}}function N(n,r){var t=typeof r,e;return r==null||t==="boolean"?j(r):(t==="number"?p:t==="string"?(e=w(r))?(r=e,k):q:r instanceof w?k:r instanceof Date?L:J(r)?H:Array.isArray(r)?K:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?Q:p)(n,r)}function U(n,r){return n=+n,r=+r,function(t){return Math.round(n*(1-t)+r*t)}}function W(n){return Math.max(0,-g(Math.abs(n)))}function X(n,r){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(g(r)/3)))*3-g(Math.abs(n)))}function Y(n,r){return n=Math.abs(n),r=Math.abs(r)-n,Math.max(0,g(r)-g(n))+1}function Z(n){return function(){return n}}function _(n){return+n}var A=[0,1];function m(n){return n}function d(n,r){return(r-=n=+n)?function(t){return(t-n)/r}:Z(isNaN(r)?NaN:.5)}function b(n,r){var t;return n>r&&(t=n,n=r,r=t),function(e){return Math.max(n,Math.min(r,e))}}function nn(n,r,t){var e=n[0],u=n[1],f=r[0],a=r[1];return u<e?(e=d(u,e),f=t(a,f)):(e=d(e,u),f=t(f,a)),function(o){return f(e(o))}}function rn(n,r,t){var e=Math.min(n.length,r.length)-1,u=new Array(e),f=new Array(e),a=-1;for(n[e]<n[0]&&(n=n.slice().reverse(),r=r.slice().reverse());++a<e;)u[a]=d(n[a],n[a+1]),f[a]=t(r[a],r[a+1]);return function(o){var c=x(n,o,1,e)-1;return f[c](u[c](o))}}function en(n,r){return r.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function tn(){var n=A,r=A,t=N,e,u,f,a=m,o,c,i;function h(){var s=Math.min(n.length,r.length);return a!==m&&(a=b(n[0],n[s-1])),o=s>2?rn:nn,c=i=null,l}function l(s){return s==null||isNaN(s=+s)?f:(c||(c=o(n.map(e),r,t)))(e(a(s)))}return l.invert=function(s){return a(u((i||(i=o(r,n.map(e),p)))(s)))},l.domain=function(s){return arguments.length?(n=Array.from(s,_),h()):n.slice()},l.range=function(s){return arguments.length?(r=Array.from(s),h()):r.slice()},l.rangeRound=function(s){return r=Array.from(s),t=U,h()},l.clamp=function(s){return arguments.length?(a=s?!0:m,h()):a!==m},l.interpolate=function(s){return arguments.length?(t=s,h()):t},l.unknown=function(s){return arguments.length?(f=s,l):f},function(s,S){return e=s,u=S,h()}}function un(){return tn()(m,m)}function an(n,r,t,e){var u=G(n,r,t),f;switch(e=F(e??",f"),e.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(r));return e.precision==null&&!isNaN(f=X(u,a))&&(e.precision=f),z(e,a)}case"":case"e":case"g":case"p":case"r":{e.precision==null&&!isNaN(f=Y(u,Math.max(Math.abs(n),Math.abs(r))))&&(e.precision=f-(e.type==="e"));break}case"f":case"%":{e.precision==null&&!isNaN(f=W(u))&&(e.precision=f-(e.type==="%")*2);break}}return B(e)}function on(n){var r=n.domain;return n.ticks=function(t){var e=r();return E(e[0],e[e.length-1],t??10)},n.tickFormat=function(t,e){var u=r();return an(u[0],u[u.length-1],t??10,e)},n.nice=function(t){t==null&&(t=10);var e=r(),u=0,f=e.length-1,a=e[u],o=e[f],c,i,h=10;for(o<a&&(i=a,a=o,o=i,i=u,u=f,f=i);h-- >0;){if(i=y(a,o,t),i===c)return e[u]=a,e[f]=o,r(e);if(i>0)a=Math.floor(a/i)*i,o=Math.ceil(o/i)*i;else if(i<0)a=Math.ceil(a*i)/i,o=Math.floor(o*i)/i;else break;c=i}return n},n}function fn(){var n=un();return n.copy=function(){return en(n,fn())},D.apply(n,arguments),on(n)}export{en as a,R as b,un as c,fn as l,G as t};
|