tide-commander 1.199.2 → 1.199.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/assets/{AudioPlayer-XaWiU7f4.js → AudioPlayer-Cc-u3eyV.js} +1 -1
  3. package/dist/assets/{BossLogsModal-1tI-leZQ.js → BossLogsModal-UEx0fTra.js} +1 -1
  4. package/dist/assets/{BossSpawnModal-CRoChH0J.js → BossSpawnModal-BWhBAaGa.js} +1 -1
  5. package/dist/assets/{ControlsModal-Cu7kwhct.js → ControlsModal-Byk5wjfl.js} +1 -1
  6. package/dist/assets/{DockerLogsModal-DFAiOsWH.js → DockerLogsModal-BGuSToCi.js} +1 -1
  7. package/dist/assets/{EmbeddedEditor-hnSknX5L.js → EmbeddedEditor-CSc1gyI9.js} +1 -1
  8. package/dist/assets/{FcStdViewer-B_cbRz1w.js → FcStdViewer-CZ0STF0L.js} +1 -1
  9. package/dist/assets/{GcodeViewer-CFgwEZ6g.js → GcodeViewer-Dbh-Meoe.js} +1 -1
  10. package/dist/assets/{GlbViewer-14WSSXX7.js → GlbViewer-7nNJMJS-.js} +1 -1
  11. package/dist/assets/{GmailOAuthSetup-waw2142C.js → GmailOAuthSetup-C97odd1c.js} +1 -1
  12. package/dist/assets/{GoogleOAuthSetup-Bo59grtp.js → GoogleOAuthSetup-g2LTSCFc.js} +1 -1
  13. package/dist/assets/{IframeModal-B3M77grB.js → IframeModal-XViOSPXb.js} +1 -1
  14. package/dist/assets/{IntegrationsPanel-BLHrC0GX.js → IntegrationsPanel-D08PCuel.js} +2 -2
  15. package/dist/assets/{LogViewerModal-CitlmDgQ.js → LogViewerModal-D5gC69in.js} +1 -1
  16. package/dist/assets/{MonitoringModal-BcKOCSRM.js → MonitoringModal-BIrdFwjx.js} +1 -1
  17. package/dist/assets/{PM2LogsModal-DrHpuMNf.js → PM2LogsModal-DKmeAtkQ.js} +1 -1
  18. package/dist/assets/{RestoreArchivedAreaModal-DcD3vdUJ.js → RestoreArchivedAreaModal-B1PIKYYj.js} +1 -1
  19. package/dist/assets/{Scene2DCanvas-DKUcFYZW.js → Scene2DCanvas-BXn0oqeE.js} +1 -1
  20. package/dist/assets/{SceneManager-DPojKMM-.js → SceneManager-Dtw0_zlT.js} +1 -1
  21. package/dist/assets/{SkillsPanel-CUW0prbh.js → SkillsPanel-BxI09wuY.js} +1 -1
  22. package/dist/assets/{SlackMultiInstanceSetup-YFYeZ94t.js → SlackMultiInstanceSetup-DG9m0YWC.js} +1 -1
  23. package/dist/assets/{SpawnModal-DPvq-R5b.js → SpawnModal-kAJ8vugr.js} +1 -1
  24. package/dist/assets/{StatisticsModal-Dt-Hof51.js → StatisticsModal-CeydmTqR.js} +1 -1
  25. package/dist/assets/{StlViewer-GyyomEax.js → StlViewer-TV7hesvt.js} +1 -1
  26. package/dist/assets/{SubordinateAssignmentModal-ahzGBjr4.js → SubordinateAssignmentModal-BdSlca0C.js} +1 -1
  27. package/dist/assets/{ThreeAreaSelector-Bj_mL6NG.js → ThreeAreaSelector-DSeyJIE9.js} +1 -1
  28. package/dist/assets/{ThreeViewShortcuts-CKtE3yZV.js → ThreeViewShortcuts-B8niKYtb.js} +1 -1
  29. package/dist/assets/{TriggerManagerPanel-DtdbOk9B.js → TriggerManagerPanel-DD8gHCn9.js} +1 -1
  30. package/dist/assets/{VideoPlayer-Crq-MwPS.js → VideoPlayer-Ba5ZHdPo.js} +1 -1
  31. package/dist/assets/{WorkflowEditorPanel-CitR9Em3.js → WorkflowEditorPanel-BagsxRw7.js} +1 -1
  32. package/dist/assets/{abnfDiagram-VRR7QNED-QFcuJYPe.js → abnfDiagram-VRR7QNED-CROt6ByM.js} +1 -1
  33. package/dist/assets/{arc-CLuSzQ4E.js → arc-D9e3N6Jp.js} +1 -1
  34. package/dist/assets/{architectureDiagram-ZJ3FMSHR-DlhVck93.js → architectureDiagram-ZJ3FMSHR-COTDsgDe.js} +1 -1
  35. package/dist/assets/{area-logos-DYARiYqI.js → area-logos-11FyfgIm.js} +1 -1
  36. package/dist/assets/{blockDiagram-677ZJIJ3-CJwOmsfj.js → blockDiagram-677ZJIJ3-dSFbtfjs.js} +1 -1
  37. package/dist/assets/{c4Diagram-LMCZKHZV-OsgCNPWJ.js → c4Diagram-LMCZKHZV-DYDo7euY.js} +1 -1
  38. package/dist/assets/channel-DjG11_DZ.js +1 -0
  39. package/dist/assets/{chunk-2Q5K7J3B-KG-L7vvm.js → chunk-2Q5K7J3B-BHmTxu7p.js} +1 -1
  40. package/dist/assets/{chunk-32BRIVSS-BXGbqO9v.js → chunk-32BRIVSS-BUnnt_Ip.js} +1 -1
  41. package/dist/assets/{chunk-5VM5RSS4-BWXkm8f0.js → chunk-5VM5RSS4-BQiFqh1-.js} +1 -1
  42. package/dist/assets/{chunk-EX3LRPZG-7-8ulJ19.js → chunk-EX3LRPZG-Bf347Bc1.js} +1 -1
  43. package/dist/assets/{chunk-JWPE2WC7-mkwFN5xu.js → chunk-JWPE2WC7-E1cvFM5U.js} +1 -1
  44. package/dist/assets/{chunk-MOJQB5TN-WEfWznKE.js → chunk-MOJQB5TN-lXncAEzU.js} +1 -1
  45. package/dist/assets/{chunk-RYQCIY6F-ByP5odu4.js → chunk-RYQCIY6F-PbgD4U9i.js} +1 -1
  46. package/dist/assets/{chunk-V7JOEXUC-yWHmp1L1.js → chunk-V7JOEXUC-BaxLrntE.js} +1 -1
  47. package/dist/assets/{chunk-VR4S4FIN-DHbZaHzt.js → chunk-VR4S4FIN-CtA1Pg8N.js} +1 -1
  48. package/dist/assets/{chunk-XXDRQBXY-SNa-Wh3U.js → chunk-XXDRQBXY-CHA3dDHm.js} +1 -1
  49. package/dist/assets/classDiagram-OUVF2IWQ-J0l72d33.js +1 -0
  50. package/dist/assets/classDiagram-v2-EOCWNBFH-J0l72d33.js +1 -0
  51. package/dist/assets/{cose-bilkent-JH36ORCC-CyxHYUhP.js → cose-bilkent-JH36ORCC-D1nCEdoB.js} +1 -1
  52. package/dist/assets/{cynefin-VYW2F7L2-BvwjSDiQ.js → cynefin-VYW2F7L2-ebaABOLt.js} +1 -1
  53. package/dist/assets/{cynefinDiagram-TSTJHNR4-C8doInhn.js → cynefinDiagram-TSTJHNR4-3Tl079fU.js} +1 -1
  54. package/dist/assets/{dagre-VKFMJZFB-BNDcupek.js → dagre-VKFMJZFB-BRTJGzE5.js} +1 -1
  55. package/dist/assets/{diagram-FQU43EPY-Bst0bBnQ.js → diagram-FQU43EPY-DfCfHsbK.js} +1 -1
  56. package/dist/assets/{diagram-G47NLZAW-CfEv0aTY.js → diagram-G47NLZAW-CAwc9cT_.js} +1 -1
  57. package/dist/assets/{diagram-NH7WQ7WH-B7MYvWXL.js → diagram-NH7WQ7WH-TvVEUeYk.js} +1 -1
  58. package/dist/assets/{diagram-OA4YK3LP-BIzII0d2.js → diagram-OA4YK3LP--zG7OL2f.js} +1 -1
  59. package/dist/assets/{diagram-WEI45ONY-D5yd1HWr.js → diagram-WEI45ONY-BIQMWmaa.js} +1 -1
  60. package/dist/assets/{ebnfDiagram-CCIWWBDH-gyhVYUos.js → ebnfDiagram-CCIWWBDH-rLx0RZev.js} +1 -1
  61. package/dist/assets/{erDiagram-Q63AITRT-Duz-DwfE.js → erDiagram-Q63AITRT-TXRWuEkV.js} +1 -1
  62. package/dist/assets/{flowDiagram-23GEKE2U-CrnARkmw.js → flowDiagram-23GEKE2U-D6EIzoiy.js} +1 -1
  63. package/dist/assets/{ganttDiagram-NO4QXBWP-D6cBteIN.js → ganttDiagram-NO4QXBWP-mFuR-lGL.js} +1 -1
  64. package/dist/assets/{gitGraphDiagram-IHSO6WYX-CMHfr_lR.js → gitGraphDiagram-IHSO6WYX-CN2pc0PX.js} +1 -1
  65. package/dist/assets/{index-DJKuwqJG.js → index-BIqCk3dy.js} +2 -2
  66. package/dist/assets/{index-DeqoOoo6.js → index-BIr8T2rA.js} +1 -1
  67. package/dist/assets/{index-CbMtvQTH.js → index-BMUuC9nl.js} +1 -1
  68. package/dist/assets/{index-D5O_0aq9.js → index-Bdg8anAc.js} +1 -1
  69. package/dist/assets/{index-2427ATYD.js → index-BoKhs4hC.js} +3 -3
  70. package/dist/assets/{index-B5wHDczA.js → index-BprMc5QY.js} +1 -1
  71. package/dist/assets/{index-B1vOCcI-.js → index-Cds2jftW.js} +1 -1
  72. package/dist/assets/{index-fiC5OXgR.js → index-CzY226TA.js} +1 -1
  73. package/dist/assets/{index-D5pIRxFm.js → index-D6703TzG.js} +1 -1
  74. package/dist/assets/{infoDiagram-FWYZ7A6U-Mvk2Mpp3.js → infoDiagram-FWYZ7A6U-Dslv7o7P.js} +1 -1
  75. package/dist/assets/{ishikawaDiagram-FXEZZL3T-DXsaNDYg.js → ishikawaDiagram-FXEZZL3T-CqfNFX7v.js} +1 -1
  76. package/dist/assets/{journeyDiagram-5HDEW3XC-6QlK8xHN.js → journeyDiagram-5HDEW3XC-DfRqgnKT.js} +1 -1
  77. package/dist/assets/{kanban-definition-HUTT4EX6-D5EeRs07.js → kanban-definition-HUTT4EX6-DsLEjOKL.js} +1 -1
  78. package/dist/assets/{linear-D_aP9MD5.js → linear-BuJKasyP.js} +1 -1
  79. package/dist/assets/{main-Dk3qq80S.js → main-CICvC5Bz.js} +158 -158
  80. package/dist/assets/main-Dzc0Sg9A.css +1 -0
  81. package/dist/assets/{mermaid.core-CEculPxD.js → mermaid.core-DfJsBqur.js} +4 -4
  82. package/dist/assets/{mindmap-definition-LN4V7U3C-Vjj9vgEN.js → mindmap-definition-LN4V7U3C-Bz3QYsFb.js} +1 -1
  83. package/dist/assets/{pegDiagram-2B236MQR-B-AwbaoO.js → pegDiagram-2B236MQR-Lmd49Wyn.js} +1 -1
  84. package/dist/assets/{pieDiagram-ENE6RG2P-D5o1UYPK.js → pieDiagram-ENE6RG2P-BumyYR7Y.js} +1 -1
  85. package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bl_Rbmz-.js → quadrantDiagram-ABIIQ3AL-PaHoiQa5.js} +1 -1
  86. package/dist/assets/{railroadDiagram-RFXS5EU6-CW-qy1dp.js → railroadDiagram-RFXS5EU6-C4a6X7uQ.js} +1 -1
  87. package/dist/assets/{requirementDiagram-TGXJPOKE-DGUQpy3K.js → requirementDiagram-TGXJPOKE-ClZWU4ZI.js} +1 -1
  88. package/dist/assets/{sankeyDiagram-HTMAVEWB-CUlWZH9G.js → sankeyDiagram-HTMAVEWB-CWpqNtW9.js} +1 -1
  89. package/dist/assets/{sequenceDiagram-DBY2YBRQ-CeDVJrbJ.js → sequenceDiagram-DBY2YBRQ-UQx3N2fu.js} +1 -1
  90. package/dist/assets/{sizeCapture-X5ZJPWSS-BGSL3ofq.js → sizeCapture-X5ZJPWSS-5rkdwFAp.js} +1 -1
  91. package/dist/assets/{stateDiagram-2N3HPSRC-9A8tAPIu.js → stateDiagram-2N3HPSRC-CBHPNiNT.js} +1 -1
  92. package/dist/assets/stateDiagram-v2-6OUMAXLB-CSOxSxBR.js +1 -0
  93. package/dist/assets/{swimlanes-5IMT3BWC-CipRR1uk.js → swimlanes-5IMT3BWC-vIQeo3xN.js} +2 -2
  94. package/dist/assets/swimlanesDiagram-G3AALYLV-B_DV4epp.js +8 -0
  95. package/dist/assets/{timeline-definition-FHXFAJF6-IgrCsFe-.js → timeline-definition-FHXFAJF6-CL9O0jtE.js} +1 -1
  96. package/dist/assets/{vennDiagram-L72KCM5P-okSGsDy3.js → vennDiagram-L72KCM5P-CMK1QWzt.js} +1 -1
  97. package/dist/assets/{wardleyDiagram-EHGQE667-G0RLggUt.js → wardleyDiagram-EHGQE667-Dohoga92.js} +1 -1
  98. package/dist/assets/{web-B5BfOO5C.js → web-BNTP1enS.js} +1 -1
  99. package/dist/assets/{web-BPOqvnJL.js → web-DVVqKstc.js} +1 -1
  100. package/dist/assets/{web-Q8DwQW0W.js → web-_8i7sQiH.js} +1 -1
  101. package/dist/assets/{xychartDiagram-FW5EYKEG-DtVJEFyI.js → xychartDiagram-FW5EYKEG-E_KRPyA8.js} +1 -1
  102. package/dist/build-info.json +1 -1
  103. package/dist/index.html +2 -2
  104. package/package.json +1 -1
  105. package/dist/assets/channel-cpl_NpAy.js +0 -1
  106. package/dist/assets/classDiagram-OUVF2IWQ-D_lsO4mm.js +0 -1
  107. package/dist/assets/classDiagram-v2-EOCWNBFH-D_lsO4mm.js +0 -1
  108. package/dist/assets/main-B2ZLroL1.css +0 -1
  109. package/dist/assets/stateDiagram-v2-6OUMAXLB-DzVFFq0g.js +0 -1
  110. package/dist/assets/swimlanesDiagram-G3AALYLV-XDQw-C4e.js +0 -8
@@ -1 +1 @@
1
- import{c as Ze,d as et,z as cs,a0 as us,f as ls,br as hs,bZ as fs,aa as ds,r as h,y as gs,S as _e,b_ as Ye,b$ as ms,c0 as ps,c1 as ys,as as As,c2 as ye,s as U,c3 as xs,j as d,I as V,V as Tt,c4 as Ft,n as Nt,c5 as Es,c6 as Dt,c7 as We,U as qe,m as Ms,ar as Gt,u as Oe,c8 as Rt,aC as Cs,c9 as jt,ca as Is}from"./main-Dk3qq80S.js";import{cb as zn,cc as Kn,cd as On,ce as Un,cf as Gn}from"./main-Dk3qq80S.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";function ce(t){return Array.isArray?Array.isArray(t):Wt(t)==="[object Array]"}function _s(t){if(typeof t=="string")return t;let e=t+"";return e=="0"&&1/t==-1/0?"-0":e}function Ss(t){return t==null?"":_s(t)}function oe(t){return typeof t=="string"}function Ht(t){return typeof t=="number"}function vs(t){return t===!0||t===!1||ws(t)&&Wt(t)=="[object Boolean]"}function Yt(t){return typeof t=="object"}function ws(t){return Yt(t)&&t!==null}function X(t){return t!=null}function Ve(t){return!t.trim().length}function Wt(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const bs="Incorrect 'index' type",Ls=t=>`Invalid value for key ${t}`,Ts=t=>`Pattern length exceeds max of ${t}.`,Fs=t=>`Missing ${t} property in key`,Ns=t=>`Property 'weight' in key '${t}' must be a positive integer`,kt=Object.prototype.hasOwnProperty;class Ds{constructor(e){this._keys=[],this._keyMap={};let n=0;e.forEach(r=>{let o=qt(r);this._keys.push(o),this._keyMap[o.id]=o,n+=o.weight}),this._keys.forEach(r=>{r.weight/=n})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function qt(t){let e=null,n=null,r=null,o=1,a=null;if(oe(t)||ce(t))r=t,e=$t(t),n=tt(t);else{if(!kt.call(t,"name"))throw new Error(Fs("name"));const c=t.name;if(r=c,kt.call(t,"weight")&&(o=t.weight,o<=0))throw new Error(Ns(c));e=$t(c),n=tt(c),a=t.getFn}return{path:e,id:n,weight:o,src:r,getFn:a}}function $t(t){return ce(t)?t:t.split(".")}function tt(t){return ce(t)?t.join("."):t}function Rs(t,e){let n=[],r=!1;const o=(a,c,u)=>{if(X(a))if(!c[u])n.push(a);else{let f=c[u];const l=a[f];if(!X(l))return;if(u===c.length-1&&(oe(l)||Ht(l)||vs(l)))n.push(Ss(l));else if(ce(l)){r=!0;for(let g=0,x=l.length;g<x;g+=1)o(l[g],c,u+1)}else c.length&&o(l,c,u+1)}};return o(t,oe(e)?e.split("."):e,0),r?n:n[0]}const js={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},ks={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx<e.idx?-1:1:t.score<e.score?-1:1},$s={location:0,threshold:.6,distance:100},Bs={useExtendedSearch:!1,getFn:Rs,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};var C={...ks,...js,...$s,...Bs};const Ps=/[^ ]+/g;function Qs(t=1,e=3){const n=new Map,r=Math.pow(10,e);return{get(o){const a=o.match(Ps).length;if(n.has(a))return n.get(a);const c=1/Math.pow(a,.5*t),u=parseFloat(Math.round(c*r)/r);return n.set(a,u),u},clear(){n.clear()}}}class at{constructor({getFn:e=C.getFn,fieldNormWeight:n=C.fieldNormWeight}={}){this.norm=Qs(n,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((n,r)=>{this._keysMap[n.id]=r})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,oe(this.docs[0])?this.docs.forEach((e,n)=>{this._addString(e,n)}):this.docs.forEach((e,n)=>{this._addObject(e,n)}),this.norm.clear())}add(e){const n=this.size();oe(e)?this._addString(e,n):this._addObject(e,n)}removeAt(e){this.records.splice(e,1);for(let n=e,r=this.size();n<r;n+=1)this.records[n].i-=1}getValueForItemAtKeyId(e,n){return e[this._keysMap[n]]}size(){return this.records.length}_addString(e,n){if(!X(e)||Ve(e))return;let r={v:e,i:n,n:this.norm.get(e)};this.records.push(r)}_addObject(e,n){let r={i:n,$:{}};this.keys.forEach((o,a)=>{let c=o.getFn?o.getFn(e):this.getFn(e,o.path);if(X(c)){if(ce(c)){let u=[];const f=[{nestedArrIndex:-1,value:c}];for(;f.length;){const{nestedArrIndex:l,value:g}=f.pop();if(X(g))if(oe(g)&&!Ve(g)){let x={v:g,i:l,n:this.norm.get(g)};u.push(x)}else ce(g)&&g.forEach((x,y)=>{f.push({nestedArrIndex:y,value:x})})}r.$[a]=u}else if(oe(c)&&!Ve(c)){let u={v:c,n:this.norm.get(c)};r.$[a]=u}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function Vt(t,e,{getFn:n=C.getFn,fieldNormWeight:r=C.fieldNormWeight}={}){const o=new at({getFn:n,fieldNormWeight:r});return o.setKeys(t.map(qt)),o.setSources(e),o.create(),o}function zs(t,{getFn:e=C.getFn,fieldNormWeight:n=C.fieldNormWeight}={}){const{keys:r,records:o}=t,a=new at({getFn:e,fieldNormWeight:n});return a.setKeys(r),a.setIndexRecords(o),a}function Pe(t,{errors:e=0,currentLocation:n=0,expectedLocation:r=0,distance:o=C.distance,ignoreLocation:a=C.ignoreLocation}={}){const c=e/t.length;if(a)return c;const u=Math.abs(r-n);return o?c+u/o:u?1:c}function Ks(t=[],e=C.minMatchCharLength){let n=[],r=-1,o=-1,a=0;for(let c=t.length;a<c;a+=1){let u=t[a];u&&r===-1?r=a:!u&&r!==-1&&(o=a-1,o-r+1>=e&&n.push([r,o]),r=-1)}return t[a-1]&&a-r>=e&&n.push([r,a-1]),n}const me=32;function Os(t,e,n,{location:r=C.location,distance:o=C.distance,threshold:a=C.threshold,findAllMatches:c=C.findAllMatches,minMatchCharLength:u=C.minMatchCharLength,includeMatches:f=C.includeMatches,ignoreLocation:l=C.ignoreLocation}={}){if(e.length>me)throw new Error(Ts(me));const g=e.length,x=t.length,y=Math.max(0,Math.min(r,x));let E=a,A=y;const M=u>1||f,S=M?Array(x):[];let R;for(;(R=t.indexOf(e,A))>-1;){let B=Pe(e,{currentLocation:R,expectedLocation:y,distance:o,ignoreLocation:l});if(E=Math.min(B,E),A=R+g,M){let Y=0;for(;Y<g;)S[R+Y]=1,Y+=1}}A=-1;let w=[],j=1,K=g+x;const le=1<<g-1;for(let B=0;B<g;B+=1){let Y=0,G=K;for(;Y<G;)Pe(e,{errors:B,currentLocation:y+G,expectedLocation:y,distance:o,ignoreLocation:l})<=E?Y=G:K=G,G=Math.floor((K-Y)/2+Y);K=G;let ie=Math.max(1,y-G+1),re=c?x:Math.min(y+G,x)+g,J=Array(re+2);J[re+1]=(1<<B)-1;for(let O=re;O>=ie;O-=1){let W=O-1,N=n[t.charAt(W)];if(M&&(S[W]=+!!N),J[O]=(J[O+1]<<1|1)&N,B&&(J[O]|=(w[O+1]|w[O])<<1|1|w[O+1]),J[O]&le&&(j=Pe(e,{errors:B,currentLocation:W,expectedLocation:y,distance:o,ignoreLocation:l}),j<=E)){if(E=j,A=W,A<=y)break;ie=Math.max(1,2*y-A)}}if(Pe(e,{errors:B+1,currentLocation:y,expectedLocation:y,distance:o,ignoreLocation:l})>E)break;w=J}const he={isMatch:A>=0,score:Math.max(.001,j)};if(M){const B=Ks(S,u);B.length?f&&(he.indices=B):he.isMatch=!1}return he}function Us(t){let e={};for(let n=0,r=t.length;n<r;n+=1){const o=t.charAt(n);e[o]=(e[o]||0)|1<<r-n-1}return e}const ze=String.prototype.normalize?(t=>t.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(t=>t);class Xt{constructor(e,{location:n=C.location,threshold:r=C.threshold,distance:o=C.distance,includeMatches:a=C.includeMatches,findAllMatches:c=C.findAllMatches,minMatchCharLength:u=C.minMatchCharLength,isCaseSensitive:f=C.isCaseSensitive,ignoreDiacritics:l=C.ignoreDiacritics,ignoreLocation:g=C.ignoreLocation}={}){if(this.options={location:n,threshold:r,distance:o,includeMatches:a,findAllMatches:c,minMatchCharLength:u,isCaseSensitive:f,ignoreDiacritics:l,ignoreLocation:g},e=f?e:e.toLowerCase(),e=l?ze(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const x=(E,A)=>{this.chunks.push({pattern:E,alphabet:Us(E),startIndex:A})},y=this.pattern.length;if(y>me){let E=0;const A=y%me,M=y-A;for(;E<M;)x(this.pattern.substr(E,me),E),E+=me;if(A){const S=y-me;x(this.pattern.substr(S),S)}}else x(this.pattern,0)}searchIn(e){const{isCaseSensitive:n,ignoreDiacritics:r,includeMatches:o}=this.options;if(e=n?e:e.toLowerCase(),e=r?ze(e):e,this.pattern===e){let M={isMatch:!0,score:0};return o&&(M.indices=[[0,e.length-1]]),M}const{location:a,distance:c,threshold:u,findAllMatches:f,minMatchCharLength:l,ignoreLocation:g}=this.options;let x=[],y=0,E=!1;this.chunks.forEach(({pattern:M,alphabet:S,startIndex:R})=>{const{isMatch:w,score:j,indices:K}=Os(e,M,S,{location:a+R,distance:c,threshold:u,findAllMatches:f,minMatchCharLength:l,includeMatches:o,ignoreLocation:g});w&&(E=!0),y+=j,w&&K&&(x=[...x,...K])});let A={isMatch:E,score:E?y/this.chunks.length:1};return E&&o&&(A.indices=x),A}}class ue{constructor(e){this.pattern=e}static isMultiMatch(e){return Bt(e,this.multiRegex)}static isSingleMatch(e){return Bt(e,this.singleRegex)}search(){}}function Bt(t,e){const n=t.match(e);return n?n[1]:null}class Gs extends ue{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const n=e===this.pattern;return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class Hs extends ue{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const r=e.indexOf(this.pattern)===-1;return{isMatch:r,score:r?0:1,indices:[0,e.length-1]}}}class Ys extends ue{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const n=e.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class Ws extends ue{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const n=!e.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class qs extends ue{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const n=e.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}class Vs extends ue{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const n=!e.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class Jt extends ue{constructor(e,{location:n=C.location,threshold:r=C.threshold,distance:o=C.distance,includeMatches:a=C.includeMatches,findAllMatches:c=C.findAllMatches,minMatchCharLength:u=C.minMatchCharLength,isCaseSensitive:f=C.isCaseSensitive,ignoreDiacritics:l=C.ignoreDiacritics,ignoreLocation:g=C.ignoreLocation}={}){super(e),this._bitapSearch=new Xt(e,{location:n,threshold:r,distance:o,includeMatches:a,findAllMatches:c,minMatchCharLength:u,isCaseSensitive:f,ignoreDiacritics:l,ignoreLocation:g})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class Zt extends ue{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let n=0,r;const o=[],a=this.pattern.length;for(;(r=e.indexOf(this.pattern,n))>-1;)n=r+a,o.push([r,n-1]);const c=!!o.length;return{isMatch:c,score:c?0:1,indices:o}}}const st=[Gs,Zt,Ys,Ws,Vs,qs,Hs,Jt],Pt=st.length,Xs=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Js="|";function Zs(t,e={}){return t.split(Js).map(n=>{let r=n.trim().split(Xs).filter(a=>a&&!!a.trim()),o=[];for(let a=0,c=r.length;a<c;a+=1){const u=r[a];let f=!1,l=-1;for(;!f&&++l<Pt;){const g=st[l];let x=g.isMultiMatch(u);x&&(o.push(new g(x,e)),f=!0)}if(!f)for(l=-1;++l<Pt;){const g=st[l];let x=g.isSingleMatch(u);if(x){o.push(new g(x,e));break}}}return o})}const en=new Set([Jt.type,Zt.type]);class tn{constructor(e,{isCaseSensitive:n=C.isCaseSensitive,ignoreDiacritics:r=C.ignoreDiacritics,includeMatches:o=C.includeMatches,minMatchCharLength:a=C.minMatchCharLength,ignoreLocation:c=C.ignoreLocation,findAllMatches:u=C.findAllMatches,location:f=C.location,threshold:l=C.threshold,distance:g=C.distance}={}){this.query=null,this.options={isCaseSensitive:n,ignoreDiacritics:r,includeMatches:o,minMatchCharLength:a,findAllMatches:u,ignoreLocation:c,location:f,threshold:l,distance:g},e=n?e:e.toLowerCase(),e=r?ze(e):e,this.pattern=e,this.query=Zs(this.pattern,this.options)}static condition(e,n){return n.useExtendedSearch}searchIn(e){const n=this.query;if(!n)return{isMatch:!1,score:1};const{includeMatches:r,isCaseSensitive:o,ignoreDiacritics:a}=this.options;e=o?e:e.toLowerCase(),e=a?ze(e):e;let c=0,u=[],f=0;for(let l=0,g=n.length;l<g;l+=1){const x=n[l];u.length=0,c=0;for(let y=0,E=x.length;y<E;y+=1){const A=x[y],{isMatch:M,indices:S,score:R}=A.search(e);if(M){if(c+=1,f+=R,r){const w=A.constructor.type;en.has(w)?u=[...u,...S]:u.push(S)}}else{f=0,c=0,u.length=0;break}}if(c){let y={isMatch:!0,score:f/c};return r&&(y.indices=u),y}}return{isMatch:!1,score:1}}}const nt=[];function sn(...t){nt.push(...t)}function rt(t,e){for(let n=0,r=nt.length;n<r;n+=1){let o=nt[n];if(o.condition(t,e))return new o(t,e)}return new Xt(t,e)}const Ke={AND:"$and",OR:"$or"},ot={PATH:"$path",PATTERN:"$val"},it=t=>!!(t[Ke.AND]||t[Ke.OR]),nn=t=>!!t[ot.PATH],rn=t=>!ce(t)&&Yt(t)&&!it(t),Qt=t=>({[Ke.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function es(t,e,{auto:n=!0}={}){const r=o=>{let a=Object.keys(o);const c=nn(o);if(!c&&a.length>1&&!it(o))return r(Qt(o));if(rn(o)){const f=c?o[ot.PATH]:a[0],l=c?o[ot.PATTERN]:o[f];if(!oe(l))throw new Error(Ls(f));const g={keyId:tt(f),pattern:l};return n&&(g.searcher=rt(l,e)),g}let u={children:[],operator:a[0]};return a.forEach(f=>{const l=o[f];ce(l)&&l.forEach(g=>{u.children.push(r(g))})}),u};return it(t)||(t=Qt(t)),r(t)}function on(t,{ignoreFieldNorm:e=C.ignoreFieldNorm}){t.forEach(n=>{let r=1;n.matches.forEach(({key:o,norm:a,score:c})=>{const u=o?o.weight:null;r*=Math.pow(c===0&&u?Number.EPSILON:c,(u||1)*(e?1:a))}),n.score=r})}function an(t,e){const n=t.matches;e.matches=[],X(n)&&n.forEach(r=>{if(!X(r.indices)||!r.indices.length)return;const{indices:o,value:a}=r;let c={indices:o,value:a};r.key&&(c.key=r.key.src),r.idx>-1&&(c.refIndex=r.idx),e.matches.push(c)})}function cn(t,e){e.score=t.score}function un(t,e,{includeMatches:n=C.includeMatches,includeScore:r=C.includeScore}={}){const o=[];return n&&o.push(an),r&&o.push(cn),t.map(a=>{const{idx:c}=a,u={item:e[c],refIndex:c};return o.length&&o.forEach(f=>{f(a,u)}),u})}class ae{constructor(e,n={},r){this.options={...C,...n},this.options.useExtendedSearch,this._keyStore=new Ds(this.options.keys),this.setCollection(e,r)}setCollection(e,n){if(this._docs=e,n&&!(n instanceof at))throw new Error(bs);this._myIndex=n||Vt(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){X(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const n=[];for(let r=0,o=this._docs.length;r<o;r+=1){const a=this._docs[r];e(a,r)&&(this.removeAt(r),r-=1,o-=1,n.push(a))}return n}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:n=-1}={}){const{includeMatches:r,includeScore:o,shouldSort:a,sortFn:c,ignoreFieldNorm:u}=this.options;let f=oe(e)?oe(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return on(f,{ignoreFieldNorm:u}),a&&f.sort(c),Ht(n)&&n>-1&&(f=f.slice(0,n)),un(f,this._docs,{includeMatches:r,includeScore:o})}_searchStringList(e){const n=rt(e,this.options),{records:r}=this._myIndex,o=[];return r.forEach(({v:a,i:c,n:u})=>{if(!X(a))return;const{isMatch:f,score:l,indices:g}=n.searchIn(a);f&&o.push({item:a,idx:c,matches:[{score:l,value:a,norm:u,indices:g}]})}),o}_searchLogical(e){const n=es(e,this.options),r=(u,f,l)=>{if(!u.children){const{keyId:x,searcher:y}=u,E=this._findMatches({key:this._keyStore.get(x),value:this._myIndex.getValueForItemAtKeyId(f,x),searcher:y});return E&&E.length?[{idx:l,item:f,matches:E}]:[]}const g=[];for(let x=0,y=u.children.length;x<y;x+=1){const E=u.children[x],A=r(E,f,l);if(A.length)g.push(...A);else if(u.operator===Ke.AND)return[]}return g},o=this._myIndex.records,a={},c=[];return o.forEach(({$:u,i:f})=>{if(X(u)){let l=r(n,u,f);l.length&&(a[f]||(a[f]={idx:f,item:u,matches:[]},c.push(a[f])),l.forEach(({matches:g})=>{a[f].matches.push(...g)}))}}),c}_searchObjectList(e){const n=rt(e,this.options),{keys:r,records:o}=this._myIndex,a=[];return o.forEach(({$:c,i:u})=>{if(!X(c))return;let f=[];r.forEach((l,g)=>{f.push(...this._findMatches({key:l,value:c[g],searcher:n}))}),f.length&&a.push({idx:u,item:c,matches:f})}),a}_findMatches({key:e,value:n,searcher:r}){if(!X(n))return[];let o=[];if(ce(n))n.forEach(({v:a,i:c,n:u})=>{if(!X(a))return;const{isMatch:f,score:l,indices:g}=r.searchIn(a);f&&o.push({score:l,key:e,value:a,idx:c,norm:u,indices:g})});else{const{v:a,n:c}=n,{isMatch:u,score:f,indices:l}=r.searchIn(a);u&&o.push({score:f,key:e,value:a,norm:c,indices:l})}return o}}ae.version="7.1.0";ae.createIndex=Vt;ae.parseIndex=zs;ae.config=C;ae.parseQuery=es;sn(tn);function Ie(t){return t.trim().toLowerCase().split(/\s+/).filter(Boolean)}function ln(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Qe(t,e){const n=e.trim(),r=Ie(n);if(r.length<=1)return t.search(n);const[o,...a]=r.map(f=>t.search(f)),c=a.map(f=>{const l=new Map;for(const g of f)l.set(g.refIndex,g.score??1);return l}),u=[];for(const f of o){let l=f.score??1,g=!0;for(const x of c){const y=x.get(f.refIndex);if(y===void 0){g=!1;break}l+=y}g&&u.push({item:f.item,score:l/r.length})}return u.sort((f,l)=>(f.score??1)-(l.score??1)),u}function zt(t,e,n){return e===t?6:e.startsWith(t)?5:e.split(/[^a-z0-9]+/i).includes(t)?4:e.includes(t)?3:n.includes(t)?2:1}function hn(t,e,n){const r=Ie(t);if(r.length===0)return 1;const o=e.toLowerCase(),a=n.toLowerCase(),c=zt(r.join(" "),o,a);if(r.length===1)return c;let u=6;for(const f of r)u=Math.min(u,zt(f,o,a));return Math.max(c,u)}const fn=4;function Kt(t){return t.replace(/…|\.\.\./g," ").replace(/\s+/g," ").trim().toLowerCase()}const dn=24;function gn(t,e){const n=Kt(t),r=Kt(e);return n===r?!0:Math.min(n.length,r.length)<dn?!1:n.includes(r)||r.includes(n)}function mn(t,e){const n=[],r=o=>{!o||!o.text.trim()||n.length>=fn||n.some(a=>gn(a.text,o.text))||n.push(o)};t&&r({text:t,kind:"user"});for(const o of e??[])r(o);return n.length>0?n:void 0}async function pn(t){const e=new URLSearchParams({q:t}),n=await Ze(et(`/api/folders/search?${e.toString()}`));if(!n.ok){const o=await n.json().catch(()=>({}));throw new Error(o.error||`Failed to search folders: ${n.statusText}`)}const r=await n.json();return Array.isArray(r.folders)?r.folders:[]}const Ot=["agent","session","building","file","file-content","folder","area"],yn=2,An=2,xn=50,En=10,Mn=3,Cn=30,In=8,_n=3,Sn=15,Xe=5,Je=5;function vn(){const t=Gt(_e.SPOTLIGHT_TAB,"all");return ye.includes(t)?t:"all"}function Ut(){return Ms(_e.SPOTLIGHT_QUERY,"")}function wn(){const t=Gt(_e.AOP_CONFIG,{});return t.sortMode==="name"||t.sortMode==="status"||t.sortMode==="recent"?t.sortMode:"recent"}function bn({isOpen:t,onClose:e,onOpenSpawnModal:n,onOpenCommanderView:r,onOpenToolbox:o,onOpenFileExplorer:a,onOpenPM2LogsModal:c,onOpenBossLogsModal:u,onOpenDatabasePanel:f,onOpenMonitoringModal:l,onOpenSessionFinder:g,onOpenFileDetail:x}){const y=cs(),E=us(),A=ls(),M=hs(),S=fs(),R=ds(),w=h.useRef(e);w.current=e;const j=h.useRef(n);j.current=n;const K=h.useRef(r);K.current=r;const le=h.useRef(o);le.current=o;const he=h.useRef(a);he.current=a;const B=h.useRef(c);B.current=c;const Y=h.useRef(u);Y.current=u;const G=h.useRef(f);G.current=f;const ie=h.useRef(l);ie.current=l;const re=h.useRef(g);re.current=g;const J=h.useRef(x);J.current=x;const[F,O]=h.useState(Ut),[W,N]=h.useState(0),[v,ee]=h.useState(vn),[Ae,te]=h.useState([]),[ct,xe]=h.useState([]),[ut,Ee]=h.useState([]),[lt,Se]=h.useState(!1),[ht,ve]=h.useState(!1),[ft,we]=h.useState(!1),[dt,be]=h.useState(!1),[Le,Me]=h.useState({query:"",rows:[]}),[gt,mt]=h.useState(!1),[pt,yt]=h.useState(!1);h.useEffect(()=>{mt(!1),yt(!1)},[F,t]);const ts=h.useCallback(s=>{O(s),gs(_e.SPOTLIGHT_QUERY,s)},[]);h.useEffect(()=>{t&&(O(Ut()),N(0))},[t]),h.useEffect(()=>{if(!t){te([]),Se(!1);return}const s=F.trim();if(s.length<yn){te([]),Se(!1);return}te([]),Se(!0);let i=!1;const m=setTimeout(()=>{pn(s).then(I=>{i||te(I)}).catch(()=>{i||te([])}).finally(()=>{i||Se(!1)})},250);return()=>{i=!0,clearTimeout(m)}},[t,F]);const At=(M.fileSearchExcludeDirs??Ye).join(",");h.useEffect(()=>{if(!t){xe([]),ve(!1);return}const s=F.trim();if(s.length<An){xe([]),ve(!1);return}xe([]),ve(!0);let i=!1;const m=setTimeout(()=>{ms(s,{exclude:M.fileSearchExcludeDirs??[...Ye],limit:xn}).then(I=>{i||xe(I)}).catch(()=>{i||xe([])}).finally(()=>{i||ve(!1)})},250);return()=>{i=!0,clearTimeout(m)}},[t,F,At,M.fileSearchExcludeDirs]),h.useEffect(()=>{if(!t){Ee([]),we(!1);return}const s=F.trim();if(s.length<Mn){Ee([]),we(!1);return}Ee([]),we(!0);const i=new AbortController,m=setTimeout(()=>{ps(s,{exclude:M.fileSearchExcludeDirs??[...Ye],limit:Cn,signal:i.signal}).then(I=>{i.signal.aborted||Ee(I)}).catch(()=>{i.signal.aborted||Ee([])}).finally(()=>{i.signal.aborted||we(!1)})},300);return()=>{clearTimeout(m),i.abort()}},[t,F,At,M.fileSearchExcludeDirs]),h.useEffect(()=>{if(!t){Me({query:"",rows:[]}),be(!1);return}const s=F.trim();if(s.length<_n){Me({query:"",rows:[]}),be(!1);return}Me({query:"",rows:[]}),be(!0);let i=!1;const m=setTimeout(()=>{ys(s,{limit:Sn}).then(I=>{i||Me({query:s,rows:I})}).catch(()=>{i||Me({query:"",rows:[]})}).finally(()=>{i||be(!1)})},250);return()=>{i=!0,clearTimeout(m)}},[t,F]);const Ue=h.useCallback(s=>{ee(s),As(_e.SPOTLIGHT_TAB,s)},[]),xt=h.useRef(v);xt.current=v;const ss=h.useCallback(s=>{const i=ye.indexOf(xt.current),m=ye[(i+s+ye.length)%ye.length];Ue(m)},[Ue]);h.useEffect(()=>{N(0)},[v]);const Ge=U.getShortcuts(),Te=h.useMemo(()=>t?xs():{},[t]),Fe=h.useMemo(()=>{if(!t)return[];const s=window.matchMedia("(pointer: coarse)").matches,i=Ge.find(I=>I.id==="spawn-agent"),m=Ge.find(I=>I.id==="toggle-commander");return[{id:"cmd-spawn",type:"command",title:"Spawn New Agent",subtitle:s?"":i?Tt(i):"Alt+N",icon:d.jsx(V,{name:"plus",size:16}),action:()=>{w.current(),j.current()}},{id:"cmd-commander",type:"command",title:"Commander View",subtitle:s?"":m!=null&&m.key?Tt(m):"Tab",icon:d.jsx(V,{name:"dashboard",size:16}),action:()=>{w.current(),K.current()}},{id:"cmd-settings",type:"command",title:"Settings & Tools",subtitle:"Configure Tide Commander",icon:d.jsx(V,{name:"gear",size:16}),action:()=>{w.current(),le.current()}},{id:"cmd-monitoring",type:"command",title:"Monitoring & Logs",subtitle:"Triggers, workflows, events",icon:d.jsx(V,{name:"chart-line",size:16}),action:()=>{var I;w.current(),(I=ie.current)==null||I.call(ie)}}]},[t,Ge]),Ne=h.useMemo(()=>{const s=new Map;if(!t)return s;const i=Array.from(E.values());for(const m of y.values())for(const I of i)if(U.isPositionInArea({x:m.position.x,z:m.position.z},I)){s.set(m.id,I);break}return s},[t,y,E]),pe=h.useMemo(()=>t?Array.from(y.values()).map(s=>{const i=[];s.lastAssignedTask&&i.push(s.lastAssignedTask);const m=`${s.class} • ${s.cwd}`,I=Ne.get(s.id),k=(I==null?void 0:I.name)||"";let b=`${s.name} ${s.class} ${s.status} ${s.cwd}`;s.taskLabel&&(b+=` ${s.taskLabel}`),k&&(b+=` ${k}`),i.length>0&&(b+=` ${i.join(" ")}`);const $=Date.now()-s.lastActivity;let D;return s.lastAssignedTask&&(s.lastAssignedTask.length>150?D=s.lastAssignedTask.slice(0,150)+"...":D=s.lastAssignedTask),{id:`agent-${s.id}`,type:"agent",title:s.name,subtitle:m,lastUserInput:D,timeAway:$,icon:d.jsx(Nt,{agent:s,size:20}),_searchText:b,_userQueries:i,_agentId:s.id,_lastActivity:s.lastActivity,_taskLabel:s.taskLabel,_status:s.status,_provider:s.provider??"claude",_piModel:s.piModel,_piModelProvider:s.piModelProvider,_areaName:k||void 0,_areaColor:I==null?void 0:I.color,action:()=>{w.current(),Ft(s.id),U.selectAgent(s.id),U.getState().viewMode!=="flat"&&U.requestTerminalExpand()}}}):[],[t,y,Ne]),De=h.useMemo(()=>t?Array.from(E.values()).map(s=>{var i;return{id:`area-${s.id}`,type:"area",title:s.name,subtitle:`${s.assignedAgentIds.length} agents • ${((i=s.directories)==null?void 0:i.length)||0} folders`,icon:d.jsx(V,{name:"map",size:16}),action:()=>{w.current(),U.selectArea(s.id)}}}):[],[t,E]),Re=h.useMemo(()=>{const s=new Map;for(const i of pe)i._agentId&&s.set(i._agentId,i);return s},[pe]),Et=h.useMemo(()=>{const s=new Map;if(!t)return s;for(const i of y.values()){const m=Ne.get(i.id);if(!m||m.archived)continue;const I=s.get(m.id);I?I.push(i):s.set(m.id,[i])}return s},[t,y,Ne]),Mt=h.useMemo(()=>{const s=new Map;for(const i of S)s.has(i.agentId)||s.set(i.agentId,i.timestamp);return s},[S]),He=h.useMemo(()=>{if(!t)return[];const s=F.trim().toLowerCase(),i=Ie(s),m=Es({sortMode:wn(),agentsWithUnseenOutput:R,getLatestToolTimestamp:b=>Mt.get(b)}),I=Array.from(E.values()).filter(b=>!b.archived).filter(b=>{if(i.length===0)return!0;const $=b.name.toLowerCase();return i.some(D=>$.includes(D))}).sort((b,$)=>b.name.localeCompare($.name,void 0,{sensitivity:"base"})),k=[];for(const b of I){const $=b.name.toLowerCase(),D=i.filter(P=>!$.includes(P));let H=(Et.get(b.id)||[]).slice().sort(m).map(P=>Re.get(P.id)).filter(P=>!!P);D.length>0&&(H=H.filter(P=>{const Z=`${P.title} ${P.subtitle||""} ${P._searchText||""}`.toLowerCase();return D.every(Q=>Z.includes(Q))}),H.length===0)||!s&&H.length===0||k.push({areaId:b.id,areaName:b.name,areaColor:b.color,agents:H})}return k},[t,F,E,Et,Re,R,Mt]),je=h.useMemo(()=>t?Array.from(A.values()).filter(s=>s.type==="server"||s.type==="boss"||s.type==="database"||s.type==="tests").map(s=>{var D,q,H,P,Z;const i=s.status==="running"?"#4ade80":s.status==="stopped"?"#f87171":"#facc15",m=s.type==="boss"?"crown":s.type==="database"?"database":s.type==="tests"?"flask":"desktop",I=s.type==="boss"?"Boss":s.type==="database"?"Database":s.type==="tests"?"Tests":"Server";let k=`${I} • ${s.status}`;if(s.type==="database"&&((q=(D=s.database)==null?void 0:D.connections)!=null&&q.length)){const Q=s.database.connections[0];k+=` • ${Q.engine} @ ${Q.host}`}else s.type==="tests"&&s.folderPath?k=`${I} • ${s.folderPath}`:s.cwd&&(k+=` • ${s.cwd}`);const b=((H=s.pm2Status)==null?void 0:H.ports)||[];let $=`${s.name} ${s.type} ${s.status} ${s.cwd||""} ${((P=s.pm2)==null?void 0:P.name)||""}`;if(s.type==="tests"&&($+=` ${s.folderPath||""} tests junit maven`),b.length>0&&($+=` ${b.join(" ")}`),s.type==="database"&&((Z=s.database)!=null&&Z.connections))for(const Q of s.database.connections)$+=` ${Q.name} ${Q.engine} ${Q.host} ${Q.database||""} mysql postgresql sql`;return{id:`building-${s.id}`,type:"building",title:s.name,subtitle:k,_ports:b,icon:d.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[d.jsx(V,{name:"status-pending",size:10,weight:"fill",color:i}),d.jsx(V,{name:m,size:16})]}),_searchText:$,action:()=>{var Q;w.current(),s.type==="boss"?Y.current(s.id):s.type==="database"?G.current(s.id):s.type==="tests"?U.openTestsBuilding(s.id):s.type==="http"?U.openHttpBuilding(s.id):(Q=s.pm2)!=null&&Q.enabled&&B.current(s.id)}}}):[],[t,A]),Ct=h.useMemo(()=>t?Ae.map(s=>{const i=s.isGitRepo&&s.gitBranch?`${s.path} • ${s.gitBranch}`:s.path;return{id:`folder-${s.path}`,type:"folder",title:s.name,subtitle:i,matchedText:s.path,icon:d.jsx(V,{name:s.isGitRepo?"git-branch":"folder",size:16}),_searchText:`${s.name} ${s.path}`,_isGitRepo:s.isGitRepo,_gitBranch:s.gitBranch,action:()=>{w.current(),U.openFileExplorer(s.path)}}}):[],[t,Ae]),ke=h.useMemo(()=>t?ct.map(s=>{const i=s.areaName&&s.areaName!==s.projectName?`${s.projectName} · ${s.areaName}`:s.projectName;return{id:`file-${s.path}`,type:"file",title:s.name,subtitle:s.relativePath,matchedText:`${s.path} ${i}`,icon:Dt(s.path),_searchText:`${s.name} ${s.relativePath} ${s.path} ${s.projectName} ${s.areaName}`,_projectName:s.projectName,_areaName:s.areaName,action:()=>{w.current(),J.current({filePath:s.path,projectRoot:s.projectRoot,searchQuery:F.trim()})}}}):[],[t,ct,F]),$e=h.useMemo(()=>t?ut.map(s=>{const i=s.matches[0],m=s.areaName&&s.areaName!==s.projectName?`${s.projectName} · ${s.areaName}`:s.projectName;return{id:`file-content-${s.path}`,type:"file-content",title:s.name,subtitle:`${s.relativePath}${i!=null&&i.line?`:${i.line}`:""}`,matchedQuery:i==null?void 0:i.content,matchedText:`${s.path} ${m}`,icon:Dt(s.path),_projectName:s.projectName,_areaName:s.areaName,_lineNumber:i==null?void 0:i.line,action:()=>{w.current(),J.current({filePath:s.path,projectRoot:s.projectRoot,targetLine:i==null?void 0:i.line,searchQuery:F.trim()})}}}):[],[t,ut,F]),fe=h.useMemo(()=>{if(!t)return[];const s=i=>{const m=Date.now()-new Date(i).getTime();return!Number.isFinite(m)||m<0?"":m<36e5?`${Math.max(1,Math.floor(m/6e4))}m`:m<864e5?`${Math.floor(m/36e5)}h`:`${Math.floor(m/864e5)}d`};return Le.rows.map(i=>{const m=Array.from(y.values()).find(D=>D.sessionId===i.sessionId),I=m??(i.agentId?y.get(i.agentId):void 0),k=(i.firstPrompt||i.snippet||i.sessionId).slice(0,90),b=[i.projectPath||i.projectDir];I&&b.push(`→ ${I.name}${m?"":" (past session)"}`);const $=s(i.lastModified);return $&&b.push($),b.push(`${i.totalMatches}×`),{id:`session-${i.sessionId}`,type:"session",title:k,subtitle:b.join(" • "),matchedQuery:i.snippet||void 0,matchedExtracts:i.extracts&&i.extracts.length>0?i.extracts:void 0,_agentId:I==null?void 0:I.id,_sessionMatches:i.totalMatches,_provider:i.provider||"claude",icon:I?d.jsx(Nt,{agent:I,size:20}):d.jsx(V,{name:"history",size:16}),action:()=>{var q;w.current();const D=Array.from(U.getState().agents.values()).find(H=>H.sessionId===i.sessionId);D?(Ft(D.id),U.selectAgent(D.id),U.getState().viewMode!=="flat"&&U.requestTerminalExpand(),U.requestTerminalSearch(D.id,Le.query)):(q=re.current)==null||q.call(re,{initialQuery:Le.query,initialSessionKey:`${i.projectPath}::${i.sessionId}`})}}})},[t,Le,y]),It=h.useMemo(()=>new ae(pe,{keys:["title","subtitle","_searchText","lastUserInput"],threshold:.4,ignoreLocation:!0,includeScore:!0,includeMatches:!0}),[pe]),_t=h.useMemo(()=>new ae(Fe,{keys:["title","subtitle"],threshold:.4,includeScore:!0,includeMatches:!0}),[Fe]),St=h.useMemo(()=>new ae(De,{keys:["title","subtitle"],threshold:.4,includeScore:!0,includeMatches:!0}),[De]),vt=h.useMemo(()=>new ae(je,{keys:["title","subtitle","_searchText"],threshold:.4,ignoreLocation:!0,includeScore:!0,includeMatches:!0}),[je]),Ce=h.useMemo(()=>{if(!F.trim()){const p=[];p.push(...je);const _=[...pe].sort((T,z)=>{const ne=We(T._agentId,T._lastActivity,Te);return We(z._agentId,z._lastActivity,Te)-ne});p.push(..._),p.push(...De.slice(0,2));const L={};return Ot.forEach((T,z)=>{L[T]=z}),p.sort((T,z)=>(L[T.type]??999)-(L[z.type]??999)),p}const s=F.trim().toLowerCase(),i=Ie(s),m=Qe(It,F).slice(0,30),I=Qe(St,F).slice(0,2),k=Ct.slice(0,8),b=ke.slice(0,En),$=Qe(vt,F).filter(p=>{const _=p.score??1,L=`${p.item.title} ${p.item.subtitle||""} ${p.item._searchText||""}`.toLowerCase();return i.every(T=>L.includes(T))||_<=.2}).slice(0,4),D={agent:6,building:5,folder:4,file:4,"file-content":4,command:3,area:2,"modified-file":1,session:0},q=p=>hn(s,p.title,`${p.subtitle||""} ${p._searchText||""} ${p.matchedText||""}`),H=(p,_)=>{const L=(1-Math.min(1,_??1))*4;return q(p)*100+(D[p.type]??0)*5+L},P=new Map,Z=(p,_)=>{const L=P.get(p.type),T={item:p,score:H(p,_)};L?L.push(T):P.set(p.type,[T])},Q=new Map;for(const p of fe)p._agentId&&!Q.has(p._agentId)&&Q.set(p._agentId,p);for(const p of m){const _={...p.item};if(_._userQueries&&_._userQueries.length>0){const T=_._userQueries.find(z=>i.some(ne=>z.toLowerCase().includes(ne)));if(T){const z=T.toLowerCase(),ne=z.includes(s)?s:i.find(ge=>z.includes(ge))??s;if(T.length>200){const ge=z.indexOf(ne),bt=Math.max(0,ge-60),Lt=Math.min(T.length,ge+ne.length+100);_.matchedQuery=(bt>0?"...":"")+T.slice(bt,Lt)+(Lt<T.length?"...":"")}else _.matchedQuery=T}}const L=_._agentId?Q.get(_._agentId):void 0;if(L){_.matchedQuery||(_.matchedQuery=L.matchedQuery);const T=_.matchedQuery,z=(T==null?void 0:T.toLowerCase())??"";_.matchedExtracts=mn(T&&i.every(ne=>z.includes(ne))?T:void 0,L.matchedExtracts),_.action=L.action,_._sessionMatches=L._sessionMatches,_._searchText=`${_._searchText||""} ${L.matchedQuery||""} ${s}`}Z(_,p.score)}for(const[p,_]of Q){if(m.some(T=>T.item._agentId===p))continue;const L=Re.get(p);L&&Z({...L,matchedQuery:_.matchedQuery,matchedExtracts:_.matchedExtracts,action:_.action,_sessionMatches:_._sessionMatches,_searchText:`${L._searchText||""} ${_.matchedQuery||""} ${s}`},void 0)}for(const p of $)Z(p.item,p.score);for(const p of I)Z(p.item,p.score);for(const p of k)Z(p,void 0);for(const p of b)Z(p,void 0);for(const p of $e.slice(0,In))Z(p,void 0);const is=24*36e5,as=Date.now(),wt=p=>{const _=We(p.item._agentId,p.item._lastActivity,Te),L=Math.exp(-Math.LN2*Math.max(0,as-_)/is);return Math.log2(1+(p.item._sessionMatches??0))+4*L};for(const[p,_]of P)p==="agent"?_.sort((L,T)=>{const z=q(L.item),ne=q(T.item);if(ne!==z)return ne-z;const Be=wt(L),ge=wt(T);return ge!==Be?ge-Be:T.score-L.score}):_.sort((L,T)=>T.score-L.score);const de=[];for(const p of Ot){if(p==="session"){!pt&&fe.length>Xe?(de.push(...fe.slice(0,Xe)),de.push({id:"session-show-all",type:"session",title:`Show all conversations (${fe.length})`,subtitle:`${fe.length-Xe} more matches`,icon:d.jsx(V,{name:"arrow-down",size:16}),action:()=>yt(!0)})):de.push(...fe);continue}const _=P.get(p);if(_){if(p==="agent"&&!gt&&_.length>Je){for(const L of _.slice(0,Je))de.push(L.item);de.push({id:"agent-show-all",type:"agent",title:`Show all agents (${_.length})`,subtitle:`${_.length-Je} more matches`,icon:d.jsx(V,{name:"arrow-down",size:16}),action:()=>mt(!0)});continue}for(const L of _)de.push(L.item)}}return de},[F,It,St,vt,pe,Re,De,je,Ct,ke,$e,fe,Te,gt,pt]),se=h.useMemo(()=>{switch(v){case"agents":return Ce.filter(s=>s.type==="agent");case"buildings":return Ce.filter(s=>s.type==="building");case"commands":return F.trim()?Qe(_t,F).slice(0,3).map(s=>s.item):Fe;case"folders":return Ce.filter(s=>s.type==="folder");case"files":return ke;case"contents":return $e;case"areas":return He.flatMap(s=>s.agents);case"all":default:return Ce}},[v,Ce,He,ke,$e,F,_t,Fe]),ns=h.useMemo(()=>{const s=[];if(dt&&s.push("session"),ht&&s.push("file"),ft&&s.push("file-content"),lt&&s.push("folder"),v==="all")return s;const m={buildings:"building",folders:"folder",files:"file",contents:"file-content",agents:"agent",commands:"command"}[v];return m&&s.includes(m)?[m]:[]},[v,dt,ht,ft,lt]);h.useEffect(()=>{W>=se.length&&N(Math.max(0,se.length-1))},[se.length,W]);const rs=h.useCallback(s=>{if(s.altKey&&!s.ctrlKey&&!s.metaKey&&(s.key==="p"||s.key==="n"||s.key==="P"||s.key==="N")){s.preventDefault(),s.stopPropagation(),s.nativeEvent.stopImmediatePropagation();const i=s.key.toLowerCase();N(i==="p"?m=>m>0?m-1:se.length-1:m=>m<se.length-1?m+1:0);return}switch(s.key){case"Escape":s.preventDefault(),w.current();break;case"ArrowUp":s.preventDefault(),N(i=>i>0?i-1:se.length-1);break;case"ArrowDown":s.preventDefault(),N(i=>i<se.length-1?i+1:0);break;case"Enter":s.preventDefault(),se[W]&&se[W].action();break}},[se,W]),os=h.useCallback((s,i)=>{if(!i||!s)return s;const m=Ie(i);if(m.length===0)return s;const I=new RegExp(m.map(ln).sort((q,H)=>H.length-q.length).join("|"),"gi"),k=[];let b=0,$=0,D;for(;(D=I.exec(s))!==null;)D.index>b&&k.push(s.slice(b,D.index)),k.push(qe.createElement("mark",{key:$++,className:"spotlight-highlight"},D[0])),b=D.index+D[0].length;return b<s.length&&k.push(s.slice(b)),k.length>0?qe.createElement(qe.Fragment,null,...k):s},[]);return{query:F,setQuery:ts,selectedIndex:W,setSelectedIndex:N,results:se,loadingTypes:ns,activeTab:v,setActiveTab:Ue,cycleTab:ss,areaSections:He,handleKeyDown:rs,highlightMatch:os}}const Ln=h.forwardRef(function({query:e,onQueryChange:n,onKeyDown:r,onResetSelection:o},a){const{t:c}=Oe(["common"]);return d.jsxs("div",{className:"spotlight-input-wrapper",children:[d.jsx("span",{className:"spotlight-search-icon",children:"⌘"}),d.jsx("input",{ref:a,type:"text",className:"spotlight-input",placeholder:c("common:search.spotlightPlaceholder"),value:e,onChange:u=>{n(u.target.value),o()},onKeyDown:r,autoFocus:!0,spellCheck:!1}),d.jsxs("div",{className:"spotlight-input-hints",children:[d.jsx("span",{className:"spotlight-shortcut-hint",children:"↑↓"}),d.jsx("span",{className:"spotlight-shortcut-hint",children:"Enter"}),d.jsx("span",{className:"spotlight-shortcut-hint",children:"Esc"})]})]})}),Tn=h.memo(function({activeTab:e,onSelect:n}){const{t:r}=Oe(["terminal"]);return d.jsxs("div",{className:"spotlight-tabs",role:"tablist","aria-label":r("terminal:spotlight.tabsLabel"),children:[ye.map(o=>d.jsx("button",{type:"button",role:"tab","aria-selected":o===e,tabIndex:-1,className:`spotlight-tab${o===e?" active":""}`,onClick:()=>n(o),children:r(`terminal:spotlight.tabs.${o}`)},o)),d.jsx("span",{className:"spotlight-tabs-hint",children:d.jsx("kbd",{children:"Tab"})})]})}),Fn=h.forwardRef(function({results:e,loadingTypes:n,selectedIndex:r,query:o,activeTab:a,areaSections:c,highlightMatch:u,onSelectIndex:f},l){const{t:g}=Oe(["terminal"]),x=h.useRef(!1);h.useEffect(()=>{x.current=!1},[e]),h.useEffect(()=>{const A=typeof l=="function"?null:l==null?void 0:l.current;if(!A)return;const M=()=>{x.current=!0};return A.addEventListener("mousemove",M),()=>{A.removeEventListener("mousemove",M)}},[l,e]);const y={command:g("terminal:spotlight.categories.commands"),agent:g("terminal:spotlight.categories.agents"),building:g("terminal:spotlight.categories.infrastructure"),area:g("terminal:spotlight.categories.areas"),folder:g("terminal:spotlight.categories.folders"),file:g("terminal:spotlight.categories.files"),"file-content":g("terminal:spotlight.categories.fileContents"),"modified-file":g("terminal:spotlight.categories.modifiedFiles"),session:g("terminal:spotlight.categories.sessions")},E=h.useMemo(()=>{const A=[];let M=null,S=[];e.forEach((w,j)=>{w.type!==M&&(M!==null&&S.length>0&&A.push([M,S]),M=w.type,S=[]),S.push({result:w,index:j})}),M!==null&&S.length>0&&A.push([M,S]);for(const w of n)A.some(([j])=>j===w)||A.push([w,[]]);const R=["agent","session","building","file","file-content","folder","area","command"];return A.sort(([w],[j])=>R.indexOf(w)-R.indexOf(j)),A},[e,n]);if(h.useEffect(()=>{if(!l||typeof l=="function")return;const A=l.current;if(!A)return;const M=A.querySelector(".spotlight-item.selected");M&&M.scrollIntoView({block:"nearest",behavior:"smooth"})},[r,l]),a==="areas"){if(c.length===0)return d.jsx("div",{className:"spotlight-results",ref:l,children:d.jsx("div",{className:"spotlight-empty",children:g("terminal:spotlight.noResults")})});let A=0;return d.jsx("div",{className:"spotlight-results",ref:l,children:c.map(M=>d.jsxs("div",{children:[d.jsxs("div",{className:"spotlight-category-header spotlight-area-section-header",children:[d.jsx("span",{className:"spotlight-area-dot",style:{background:M.areaColor},"aria-hidden":"true"}),d.jsx("span",{className:"spotlight-area-name",children:M.areaName}),d.jsx("span",{className:"spotlight-area-count",children:M.agents.length})]}),M.agents.length===0?d.jsx("div",{className:"spotlight-area-empty",children:g("terminal:spotlight.noAgentsInArea")}):M.agents.map(S=>{const R=A++;return d.jsx(Rt,{result:S,isSelected:R===r,query:o,highlightMatch:u,onClick:()=>S.action(),onMouseEnter:()=>{x.current&&f(R)}},S.id)})]},M.areaId))})}return e.length===0&&n.length===0?d.jsx("div",{className:"spotlight-results",ref:l,children:d.jsx("div",{className:"spotlight-empty",children:g("terminal:spotlight.noResults")})}):d.jsx("div",{className:"spotlight-results",ref:l,children:E.map(([A,M])=>d.jsxs("div",{children:[(a==="all"||E.length>1)&&d.jsx("div",{className:"spotlight-category-header",children:y[A]||A}),n.includes(A)&&d.jsxs("div",{className:"spotlight-block-loading",role:"status",children:[d.jsx("span",{className:"spotlight-loading-spinner","aria-hidden":"true"}),g("terminal:spotlight.searching")]}),M.map(({result:S,index:R})=>d.jsx(Rt,{result:S,isSelected:R===r,query:o,highlightMatch:u,onClick:()=>S.action(),onMouseEnter:()=>{x.current&&f(R)}},S.id))]},A))})}),Nn=h.memo(function(){const{t:e}=Oe(["terminal"]);return d.jsxs("div",{className:"spotlight-footer",children:[d.jsxs("div",{className:"spotlight-footer-left",children:[d.jsxs("span",{className:"spotlight-footer-hint",children:[d.jsx("kbd",{children:"↑"}),d.jsx("kbd",{children:"↓"})," ",d.jsx("kbd",{children:"Alt+N"}),d.jsx("kbd",{children:"Alt+P"})," ",e("terminal:spotlight.navigate")]}),d.jsxs("span",{className:"spotlight-footer-hint",children:[d.jsx("kbd",{children:"Enter"})," ",e("terminal:spotlight.select")]}),d.jsxs("span",{className:"spotlight-footer-hint",children:[d.jsx("kbd",{children:"Tab"})," ",e("terminal:spotlight.switchTabs")]})]}),d.jsx("div",{className:"spotlight-footer-right",children:d.jsxs("span",{className:"spotlight-footer-hint",children:[d.jsx("kbd",{children:"Esc"})," ",e("common:buttons.close")]})})]})});function Dn({detail:t,onClose:e}){const[n,r]=h.useState(null),[o,a]=h.useState(!0),[c,u]=h.useState(null);Cs("spotlight-file-detail",!0,e),h.useEffect(()=>{const E=new AbortController;return a(!0),u(null),r(null),(async()=>{try{const M=await Ze(et(`/api/files/read?path=${encodeURIComponent(t.filePath)}`),{signal:E.signal}),S=await M.json();if(!M.ok)throw new Error(S.error||"Unable to read file");let R=null;if(!S.binary)try{const w=await Ze(et(`/api/files/git-original?path=${encodeURIComponent(t.filePath)}`),{signal:E.signal}),j=await w.json();w.ok&&!j.binary&&typeof j.content=="string"&&(R=j.content)}catch{}E.signal.aborted||r({filename:S.filename||t.filePath.split("/").pop()||t.filePath,content:typeof S.content=="string"?S.content:"",originalContent:R,binary:S.binary===!0})}catch(M){E.signal.aborted||u(M instanceof Error?M.message:"Unable to load file")}finally{E.signal.aborted||a(!1)}})(),()=>E.abort()},[t.filePath]),h.useEffect(()=>{const E=A=>{A.key==="Escape"&&(A.preventDefault(),A.stopImmediatePropagation(),e())};return document.addEventListener("keydown",E,!0),()=>document.removeEventListener("keydown",E,!0)},[e]);const f=()=>{U.revealFileInExplorer(t.filePath,t.projectRoot,t.targetLine),e()},l=(n==null?void 0:n.filename)||t.filePath,g=l.lastIndexOf(".")>=0?l.slice(l.lastIndexOf(".")):"",x=Is(g),y=(n==null?void 0:n.originalContent)!=null&&n.originalContent!==n.content;return d.jsx("div",{className:"guake-git-diff-modal-overlay",onClick:e,children:d.jsxs("div",{className:"guake-git-diff-modal",onClick:E=>E.stopPropagation(),children:[d.jsxs("div",{className:"guake-git-diff-modal-header",children:[d.jsxs("div",{className:"guake-git-diff-path spotlight-file-detail-path",title:t.filePath,children:[t.filePath,t.targetLine?d.jsxs("span",{className:"spotlight-file-detail-line",children:[":",t.targetLine]}):null]}),d.jsxs("button",{type:"button",className:"spotlight-file-detail-explorer",onClick:f,title:"Open in File Explorer",children:[d.jsx(V,{name:"folder-open",size:14}),"Open in File Explorer"]}),d.jsx("button",{className:"guake-git-close",onClick:e,title:"Close (Esc)",children:d.jsx(V,{name:"close",size:14})})]}),d.jsxs("div",{className:"guake-git-diff-content",children:[o&&d.jsx("div",{className:"guake-git-diff-loading-overlay",children:d.jsx("div",{className:"diff-image-spinner"})}),c&&d.jsx("div",{className:"spotlight-file-detail-message",children:c}),(n==null?void 0:n.binary)&&d.jsx("div",{className:"spotlight-file-detail-message",children:"Binary preview is available in the File Explorer."}),n&&!n.binary&&(y?d.jsx(jt,{originalContent:n.originalContent||"",modifiedContent:n.content,filename:n.filename,filePath:t.filePath,language:x,searchQuery:t.searchQuery,targetLine:t.targetLine}):d.jsx(jt,{originalContent:"",modifiedContent:n.content,filename:n.filename,filePath:t.filePath,language:x,initialModifiedOnly:!0,searchQuery:t.searchQuery,targetLine:t.targetLine,readOnly:!0}))]})]})})}const Rn=768;function Bn({isOpen:t,onClose:e,onOpenSpawnModal:n,onOpenCommanderView:r,onOpenToolbox:o,onOpenFileExplorer:a,onOpenPM2LogsModal:c,onOpenBossLogsModal:u,onOpenDatabasePanel:f,onOpenMonitoringModal:l,onOpenSessionFinder:g}){const x=h.useRef(null),y=h.useRef(null),E=h.useRef(null),A=h.useRef(0),[M,S]=h.useState(null),{query:R,setQuery:w,selectedIndex:j,setSelectedIndex:K,results:le,loadingTypes:he,activeTab:B,setActiveTab:Y,cycleTab:G,areaSections:ie,handleKeyDown:re,highlightMatch:J}=bn({isOpen:t,onClose:e,onOpenSpawnModal:n,onOpenCommanderView:r,onOpenToolbox:o,onOpenFileExplorer:a,onOpenPM2LogsModal:c,onOpenBossLogsModal:u,onOpenDatabasePanel:f,onOpenMonitoringModal:l,onOpenSessionFinder:g,onOpenFileDetail:S});A.current=le.length;const F=h.useRef(G);F.current=G,h.useEffect(()=>{t&&setTimeout(()=>{var N,v;(N=x.current)==null||N.focus(),(v=x.current)==null||v.select()},50)},[t]),h.useEffect(()=>{if(!t)return;const N=window.visualViewport;if(!N||window.innerWidth>Rn)return;const v=()=>{const ee=y.current;ee&&(ee.style.height=`${N.height}px`,ee.style.top=`${N.offsetTop}px`)};return v(),N.addEventListener("resize",v),N.addEventListener("scroll",v),()=>{N.removeEventListener("resize",v),N.removeEventListener("scroll",v);const ee=y.current;ee&&(ee.style.height="",ee.style.top="")}},[t]),h.useEffect(()=>{if(!t)return;const N=v=>{if(v.key==="Escape"){v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation(),e();return}if(v.key==="Tab"){v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation(),F.current(v.shiftKey?-1:1);return}if(v.altKey&&!v.ctrlKey&&!v.metaKey&&(v.key==="n"||v.key==="p"||v.key==="N"||v.key==="P")){v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation();const ee=v.key.toLowerCase(),Ae=A.current;K(ee==="p"?te=>te>0?te-1:Ae-1:te=>te<Ae-1?te+1:0);return}};return window.addEventListener("keydown",N,{capture:!0}),()=>{window.removeEventListener("keydown",N,{capture:!0})}},[t,e]);const O=h.useCallback(N=>{N.target===N.currentTarget&&e()},[e]),W=h.useCallback(()=>{K(0)},[K]);return t?d.jsx("div",{ref:y,className:"spotlight-overlay",onClick:O,children:d.jsxs("div",{className:"spotlight-modal",children:[d.jsx(Ln,{ref:x,query:R,onQueryChange:w,onKeyDown:re,onResetSelection:W}),d.jsx(Tn,{activeTab:B,onSelect:Y}),d.jsx(Fn,{ref:E,results:le,loadingTypes:he,selectedIndex:j,query:R,activeTab:B,areaSections:ie,highlightMatch:J,onSelectIndex:K}),d.jsx(Nn,{})]})}):M?d.jsx(Dn,{detail:M,onClose:()=>S(null)}):null}export{zn as FILE_ICON_NAMES,Bn as Spotlight,Nn as SpotlightFooter,Ln as SpotlightInput,Rt as SpotlightItem,Fn as SpotlightResults,Kn as formatDuration,On as formatRelativeTime,Un as getAgentIcon,Dt as getFileIconFromPath,Gn as getTypeLabel,bn as useSpotlightSearch};
1
+ import{c as Ze,d as et,z as cs,a0 as us,f as ls,br as hs,bZ as fs,aa as ds,r as h,y as gs,S as _e,b_ as Ye,b$ as ms,c0 as ps,c1 as ys,as as As,c2 as ye,s as U,c3 as xs,j as d,I as V,V as Tt,c4 as Ft,n as Nt,c5 as Es,c6 as Dt,c7 as We,U as qe,m as Ms,ar as Gt,u as Oe,c8 as Rt,aC as Cs,c9 as jt,ca as Is}from"./main-CICvC5Bz.js";import{cb as zn,cc as Kn,cd as On,ce as Un,cf as Gn}from"./main-CICvC5Bz.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";function ce(t){return Array.isArray?Array.isArray(t):Wt(t)==="[object Array]"}function _s(t){if(typeof t=="string")return t;let e=t+"";return e=="0"&&1/t==-1/0?"-0":e}function Ss(t){return t==null?"":_s(t)}function oe(t){return typeof t=="string"}function Ht(t){return typeof t=="number"}function vs(t){return t===!0||t===!1||ws(t)&&Wt(t)=="[object Boolean]"}function Yt(t){return typeof t=="object"}function ws(t){return Yt(t)&&t!==null}function X(t){return t!=null}function Ve(t){return!t.trim().length}function Wt(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const bs="Incorrect 'index' type",Ls=t=>`Invalid value for key ${t}`,Ts=t=>`Pattern length exceeds max of ${t}.`,Fs=t=>`Missing ${t} property in key`,Ns=t=>`Property 'weight' in key '${t}' must be a positive integer`,kt=Object.prototype.hasOwnProperty;class Ds{constructor(e){this._keys=[],this._keyMap={};let n=0;e.forEach(r=>{let o=qt(r);this._keys.push(o),this._keyMap[o.id]=o,n+=o.weight}),this._keys.forEach(r=>{r.weight/=n})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function qt(t){let e=null,n=null,r=null,o=1,a=null;if(oe(t)||ce(t))r=t,e=$t(t),n=tt(t);else{if(!kt.call(t,"name"))throw new Error(Fs("name"));const c=t.name;if(r=c,kt.call(t,"weight")&&(o=t.weight,o<=0))throw new Error(Ns(c));e=$t(c),n=tt(c),a=t.getFn}return{path:e,id:n,weight:o,src:r,getFn:a}}function $t(t){return ce(t)?t:t.split(".")}function tt(t){return ce(t)?t.join("."):t}function Rs(t,e){let n=[],r=!1;const o=(a,c,u)=>{if(X(a))if(!c[u])n.push(a);else{let f=c[u];const l=a[f];if(!X(l))return;if(u===c.length-1&&(oe(l)||Ht(l)||vs(l)))n.push(Ss(l));else if(ce(l)){r=!0;for(let g=0,x=l.length;g<x;g+=1)o(l[g],c,u+1)}else c.length&&o(l,c,u+1)}};return o(t,oe(e)?e.split("."):e,0),r?n:n[0]}const js={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},ks={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx<e.idx?-1:1:t.score<e.score?-1:1},$s={location:0,threshold:.6,distance:100},Bs={useExtendedSearch:!1,getFn:Rs,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};var C={...ks,...js,...$s,...Bs};const Ps=/[^ ]+/g;function Qs(t=1,e=3){const n=new Map,r=Math.pow(10,e);return{get(o){const a=o.match(Ps).length;if(n.has(a))return n.get(a);const c=1/Math.pow(a,.5*t),u=parseFloat(Math.round(c*r)/r);return n.set(a,u),u},clear(){n.clear()}}}class at{constructor({getFn:e=C.getFn,fieldNormWeight:n=C.fieldNormWeight}={}){this.norm=Qs(n,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((n,r)=>{this._keysMap[n.id]=r})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,oe(this.docs[0])?this.docs.forEach((e,n)=>{this._addString(e,n)}):this.docs.forEach((e,n)=>{this._addObject(e,n)}),this.norm.clear())}add(e){const n=this.size();oe(e)?this._addString(e,n):this._addObject(e,n)}removeAt(e){this.records.splice(e,1);for(let n=e,r=this.size();n<r;n+=1)this.records[n].i-=1}getValueForItemAtKeyId(e,n){return e[this._keysMap[n]]}size(){return this.records.length}_addString(e,n){if(!X(e)||Ve(e))return;let r={v:e,i:n,n:this.norm.get(e)};this.records.push(r)}_addObject(e,n){let r={i:n,$:{}};this.keys.forEach((o,a)=>{let c=o.getFn?o.getFn(e):this.getFn(e,o.path);if(X(c)){if(ce(c)){let u=[];const f=[{nestedArrIndex:-1,value:c}];for(;f.length;){const{nestedArrIndex:l,value:g}=f.pop();if(X(g))if(oe(g)&&!Ve(g)){let x={v:g,i:l,n:this.norm.get(g)};u.push(x)}else ce(g)&&g.forEach((x,y)=>{f.push({nestedArrIndex:y,value:x})})}r.$[a]=u}else if(oe(c)&&!Ve(c)){let u={v:c,n:this.norm.get(c)};r.$[a]=u}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function Vt(t,e,{getFn:n=C.getFn,fieldNormWeight:r=C.fieldNormWeight}={}){const o=new at({getFn:n,fieldNormWeight:r});return o.setKeys(t.map(qt)),o.setSources(e),o.create(),o}function zs(t,{getFn:e=C.getFn,fieldNormWeight:n=C.fieldNormWeight}={}){const{keys:r,records:o}=t,a=new at({getFn:e,fieldNormWeight:n});return a.setKeys(r),a.setIndexRecords(o),a}function Pe(t,{errors:e=0,currentLocation:n=0,expectedLocation:r=0,distance:o=C.distance,ignoreLocation:a=C.ignoreLocation}={}){const c=e/t.length;if(a)return c;const u=Math.abs(r-n);return o?c+u/o:u?1:c}function Ks(t=[],e=C.minMatchCharLength){let n=[],r=-1,o=-1,a=0;for(let c=t.length;a<c;a+=1){let u=t[a];u&&r===-1?r=a:!u&&r!==-1&&(o=a-1,o-r+1>=e&&n.push([r,o]),r=-1)}return t[a-1]&&a-r>=e&&n.push([r,a-1]),n}const me=32;function Os(t,e,n,{location:r=C.location,distance:o=C.distance,threshold:a=C.threshold,findAllMatches:c=C.findAllMatches,minMatchCharLength:u=C.minMatchCharLength,includeMatches:f=C.includeMatches,ignoreLocation:l=C.ignoreLocation}={}){if(e.length>me)throw new Error(Ts(me));const g=e.length,x=t.length,y=Math.max(0,Math.min(r,x));let E=a,A=y;const M=u>1||f,S=M?Array(x):[];let R;for(;(R=t.indexOf(e,A))>-1;){let B=Pe(e,{currentLocation:R,expectedLocation:y,distance:o,ignoreLocation:l});if(E=Math.min(B,E),A=R+g,M){let Y=0;for(;Y<g;)S[R+Y]=1,Y+=1}}A=-1;let w=[],j=1,K=g+x;const le=1<<g-1;for(let B=0;B<g;B+=1){let Y=0,G=K;for(;Y<G;)Pe(e,{errors:B,currentLocation:y+G,expectedLocation:y,distance:o,ignoreLocation:l})<=E?Y=G:K=G,G=Math.floor((K-Y)/2+Y);K=G;let ie=Math.max(1,y-G+1),re=c?x:Math.min(y+G,x)+g,J=Array(re+2);J[re+1]=(1<<B)-1;for(let O=re;O>=ie;O-=1){let W=O-1,N=n[t.charAt(W)];if(M&&(S[W]=+!!N),J[O]=(J[O+1]<<1|1)&N,B&&(J[O]|=(w[O+1]|w[O])<<1|1|w[O+1]),J[O]&le&&(j=Pe(e,{errors:B,currentLocation:W,expectedLocation:y,distance:o,ignoreLocation:l}),j<=E)){if(E=j,A=W,A<=y)break;ie=Math.max(1,2*y-A)}}if(Pe(e,{errors:B+1,currentLocation:y,expectedLocation:y,distance:o,ignoreLocation:l})>E)break;w=J}const he={isMatch:A>=0,score:Math.max(.001,j)};if(M){const B=Ks(S,u);B.length?f&&(he.indices=B):he.isMatch=!1}return he}function Us(t){let e={};for(let n=0,r=t.length;n<r;n+=1){const o=t.charAt(n);e[o]=(e[o]||0)|1<<r-n-1}return e}const ze=String.prototype.normalize?(t=>t.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(t=>t);class Xt{constructor(e,{location:n=C.location,threshold:r=C.threshold,distance:o=C.distance,includeMatches:a=C.includeMatches,findAllMatches:c=C.findAllMatches,minMatchCharLength:u=C.minMatchCharLength,isCaseSensitive:f=C.isCaseSensitive,ignoreDiacritics:l=C.ignoreDiacritics,ignoreLocation:g=C.ignoreLocation}={}){if(this.options={location:n,threshold:r,distance:o,includeMatches:a,findAllMatches:c,minMatchCharLength:u,isCaseSensitive:f,ignoreDiacritics:l,ignoreLocation:g},e=f?e:e.toLowerCase(),e=l?ze(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const x=(E,A)=>{this.chunks.push({pattern:E,alphabet:Us(E),startIndex:A})},y=this.pattern.length;if(y>me){let E=0;const A=y%me,M=y-A;for(;E<M;)x(this.pattern.substr(E,me),E),E+=me;if(A){const S=y-me;x(this.pattern.substr(S),S)}}else x(this.pattern,0)}searchIn(e){const{isCaseSensitive:n,ignoreDiacritics:r,includeMatches:o}=this.options;if(e=n?e:e.toLowerCase(),e=r?ze(e):e,this.pattern===e){let M={isMatch:!0,score:0};return o&&(M.indices=[[0,e.length-1]]),M}const{location:a,distance:c,threshold:u,findAllMatches:f,minMatchCharLength:l,ignoreLocation:g}=this.options;let x=[],y=0,E=!1;this.chunks.forEach(({pattern:M,alphabet:S,startIndex:R})=>{const{isMatch:w,score:j,indices:K}=Os(e,M,S,{location:a+R,distance:c,threshold:u,findAllMatches:f,minMatchCharLength:l,includeMatches:o,ignoreLocation:g});w&&(E=!0),y+=j,w&&K&&(x=[...x,...K])});let A={isMatch:E,score:E?y/this.chunks.length:1};return E&&o&&(A.indices=x),A}}class ue{constructor(e){this.pattern=e}static isMultiMatch(e){return Bt(e,this.multiRegex)}static isSingleMatch(e){return Bt(e,this.singleRegex)}search(){}}function Bt(t,e){const n=t.match(e);return n?n[1]:null}class Gs extends ue{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const n=e===this.pattern;return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class Hs extends ue{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const r=e.indexOf(this.pattern)===-1;return{isMatch:r,score:r?0:1,indices:[0,e.length-1]}}}class Ys extends ue{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const n=e.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class Ws extends ue{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const n=!e.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class qs extends ue{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const n=e.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}class Vs extends ue{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const n=!e.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class Jt extends ue{constructor(e,{location:n=C.location,threshold:r=C.threshold,distance:o=C.distance,includeMatches:a=C.includeMatches,findAllMatches:c=C.findAllMatches,minMatchCharLength:u=C.minMatchCharLength,isCaseSensitive:f=C.isCaseSensitive,ignoreDiacritics:l=C.ignoreDiacritics,ignoreLocation:g=C.ignoreLocation}={}){super(e),this._bitapSearch=new Xt(e,{location:n,threshold:r,distance:o,includeMatches:a,findAllMatches:c,minMatchCharLength:u,isCaseSensitive:f,ignoreDiacritics:l,ignoreLocation:g})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class Zt extends ue{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let n=0,r;const o=[],a=this.pattern.length;for(;(r=e.indexOf(this.pattern,n))>-1;)n=r+a,o.push([r,n-1]);const c=!!o.length;return{isMatch:c,score:c?0:1,indices:o}}}const st=[Gs,Zt,Ys,Ws,Vs,qs,Hs,Jt],Pt=st.length,Xs=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Js="|";function Zs(t,e={}){return t.split(Js).map(n=>{let r=n.trim().split(Xs).filter(a=>a&&!!a.trim()),o=[];for(let a=0,c=r.length;a<c;a+=1){const u=r[a];let f=!1,l=-1;for(;!f&&++l<Pt;){const g=st[l];let x=g.isMultiMatch(u);x&&(o.push(new g(x,e)),f=!0)}if(!f)for(l=-1;++l<Pt;){const g=st[l];let x=g.isSingleMatch(u);if(x){o.push(new g(x,e));break}}}return o})}const en=new Set([Jt.type,Zt.type]);class tn{constructor(e,{isCaseSensitive:n=C.isCaseSensitive,ignoreDiacritics:r=C.ignoreDiacritics,includeMatches:o=C.includeMatches,minMatchCharLength:a=C.minMatchCharLength,ignoreLocation:c=C.ignoreLocation,findAllMatches:u=C.findAllMatches,location:f=C.location,threshold:l=C.threshold,distance:g=C.distance}={}){this.query=null,this.options={isCaseSensitive:n,ignoreDiacritics:r,includeMatches:o,minMatchCharLength:a,findAllMatches:u,ignoreLocation:c,location:f,threshold:l,distance:g},e=n?e:e.toLowerCase(),e=r?ze(e):e,this.pattern=e,this.query=Zs(this.pattern,this.options)}static condition(e,n){return n.useExtendedSearch}searchIn(e){const n=this.query;if(!n)return{isMatch:!1,score:1};const{includeMatches:r,isCaseSensitive:o,ignoreDiacritics:a}=this.options;e=o?e:e.toLowerCase(),e=a?ze(e):e;let c=0,u=[],f=0;for(let l=0,g=n.length;l<g;l+=1){const x=n[l];u.length=0,c=0;for(let y=0,E=x.length;y<E;y+=1){const A=x[y],{isMatch:M,indices:S,score:R}=A.search(e);if(M){if(c+=1,f+=R,r){const w=A.constructor.type;en.has(w)?u=[...u,...S]:u.push(S)}}else{f=0,c=0,u.length=0;break}}if(c){let y={isMatch:!0,score:f/c};return r&&(y.indices=u),y}}return{isMatch:!1,score:1}}}const nt=[];function sn(...t){nt.push(...t)}function rt(t,e){for(let n=0,r=nt.length;n<r;n+=1){let o=nt[n];if(o.condition(t,e))return new o(t,e)}return new Xt(t,e)}const Ke={AND:"$and",OR:"$or"},ot={PATH:"$path",PATTERN:"$val"},it=t=>!!(t[Ke.AND]||t[Ke.OR]),nn=t=>!!t[ot.PATH],rn=t=>!ce(t)&&Yt(t)&&!it(t),Qt=t=>({[Ke.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function es(t,e,{auto:n=!0}={}){const r=o=>{let a=Object.keys(o);const c=nn(o);if(!c&&a.length>1&&!it(o))return r(Qt(o));if(rn(o)){const f=c?o[ot.PATH]:a[0],l=c?o[ot.PATTERN]:o[f];if(!oe(l))throw new Error(Ls(f));const g={keyId:tt(f),pattern:l};return n&&(g.searcher=rt(l,e)),g}let u={children:[],operator:a[0]};return a.forEach(f=>{const l=o[f];ce(l)&&l.forEach(g=>{u.children.push(r(g))})}),u};return it(t)||(t=Qt(t)),r(t)}function on(t,{ignoreFieldNorm:e=C.ignoreFieldNorm}){t.forEach(n=>{let r=1;n.matches.forEach(({key:o,norm:a,score:c})=>{const u=o?o.weight:null;r*=Math.pow(c===0&&u?Number.EPSILON:c,(u||1)*(e?1:a))}),n.score=r})}function an(t,e){const n=t.matches;e.matches=[],X(n)&&n.forEach(r=>{if(!X(r.indices)||!r.indices.length)return;const{indices:o,value:a}=r;let c={indices:o,value:a};r.key&&(c.key=r.key.src),r.idx>-1&&(c.refIndex=r.idx),e.matches.push(c)})}function cn(t,e){e.score=t.score}function un(t,e,{includeMatches:n=C.includeMatches,includeScore:r=C.includeScore}={}){const o=[];return n&&o.push(an),r&&o.push(cn),t.map(a=>{const{idx:c}=a,u={item:e[c],refIndex:c};return o.length&&o.forEach(f=>{f(a,u)}),u})}class ae{constructor(e,n={},r){this.options={...C,...n},this.options.useExtendedSearch,this._keyStore=new Ds(this.options.keys),this.setCollection(e,r)}setCollection(e,n){if(this._docs=e,n&&!(n instanceof at))throw new Error(bs);this._myIndex=n||Vt(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){X(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const n=[];for(let r=0,o=this._docs.length;r<o;r+=1){const a=this._docs[r];e(a,r)&&(this.removeAt(r),r-=1,o-=1,n.push(a))}return n}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:n=-1}={}){const{includeMatches:r,includeScore:o,shouldSort:a,sortFn:c,ignoreFieldNorm:u}=this.options;let f=oe(e)?oe(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return on(f,{ignoreFieldNorm:u}),a&&f.sort(c),Ht(n)&&n>-1&&(f=f.slice(0,n)),un(f,this._docs,{includeMatches:r,includeScore:o})}_searchStringList(e){const n=rt(e,this.options),{records:r}=this._myIndex,o=[];return r.forEach(({v:a,i:c,n:u})=>{if(!X(a))return;const{isMatch:f,score:l,indices:g}=n.searchIn(a);f&&o.push({item:a,idx:c,matches:[{score:l,value:a,norm:u,indices:g}]})}),o}_searchLogical(e){const n=es(e,this.options),r=(u,f,l)=>{if(!u.children){const{keyId:x,searcher:y}=u,E=this._findMatches({key:this._keyStore.get(x),value:this._myIndex.getValueForItemAtKeyId(f,x),searcher:y});return E&&E.length?[{idx:l,item:f,matches:E}]:[]}const g=[];for(let x=0,y=u.children.length;x<y;x+=1){const E=u.children[x],A=r(E,f,l);if(A.length)g.push(...A);else if(u.operator===Ke.AND)return[]}return g},o=this._myIndex.records,a={},c=[];return o.forEach(({$:u,i:f})=>{if(X(u)){let l=r(n,u,f);l.length&&(a[f]||(a[f]={idx:f,item:u,matches:[]},c.push(a[f])),l.forEach(({matches:g})=>{a[f].matches.push(...g)}))}}),c}_searchObjectList(e){const n=rt(e,this.options),{keys:r,records:o}=this._myIndex,a=[];return o.forEach(({$:c,i:u})=>{if(!X(c))return;let f=[];r.forEach((l,g)=>{f.push(...this._findMatches({key:l,value:c[g],searcher:n}))}),f.length&&a.push({idx:u,item:c,matches:f})}),a}_findMatches({key:e,value:n,searcher:r}){if(!X(n))return[];let o=[];if(ce(n))n.forEach(({v:a,i:c,n:u})=>{if(!X(a))return;const{isMatch:f,score:l,indices:g}=r.searchIn(a);f&&o.push({score:l,key:e,value:a,idx:c,norm:u,indices:g})});else{const{v:a,n:c}=n,{isMatch:u,score:f,indices:l}=r.searchIn(a);u&&o.push({score:f,key:e,value:a,norm:c,indices:l})}return o}}ae.version="7.1.0";ae.createIndex=Vt;ae.parseIndex=zs;ae.config=C;ae.parseQuery=es;sn(tn);function Ie(t){return t.trim().toLowerCase().split(/\s+/).filter(Boolean)}function ln(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Qe(t,e){const n=e.trim(),r=Ie(n);if(r.length<=1)return t.search(n);const[o,...a]=r.map(f=>t.search(f)),c=a.map(f=>{const l=new Map;for(const g of f)l.set(g.refIndex,g.score??1);return l}),u=[];for(const f of o){let l=f.score??1,g=!0;for(const x of c){const y=x.get(f.refIndex);if(y===void 0){g=!1;break}l+=y}g&&u.push({item:f.item,score:l/r.length})}return u.sort((f,l)=>(f.score??1)-(l.score??1)),u}function zt(t,e,n){return e===t?6:e.startsWith(t)?5:e.split(/[^a-z0-9]+/i).includes(t)?4:e.includes(t)?3:n.includes(t)?2:1}function hn(t,e,n){const r=Ie(t);if(r.length===0)return 1;const o=e.toLowerCase(),a=n.toLowerCase(),c=zt(r.join(" "),o,a);if(r.length===1)return c;let u=6;for(const f of r)u=Math.min(u,zt(f,o,a));return Math.max(c,u)}const fn=4;function Kt(t){return t.replace(/…|\.\.\./g," ").replace(/\s+/g," ").trim().toLowerCase()}const dn=24;function gn(t,e){const n=Kt(t),r=Kt(e);return n===r?!0:Math.min(n.length,r.length)<dn?!1:n.includes(r)||r.includes(n)}function mn(t,e){const n=[],r=o=>{!o||!o.text.trim()||n.length>=fn||n.some(a=>gn(a.text,o.text))||n.push(o)};t&&r({text:t,kind:"user"});for(const o of e??[])r(o);return n.length>0?n:void 0}async function pn(t){const e=new URLSearchParams({q:t}),n=await Ze(et(`/api/folders/search?${e.toString()}`));if(!n.ok){const o=await n.json().catch(()=>({}));throw new Error(o.error||`Failed to search folders: ${n.statusText}`)}const r=await n.json();return Array.isArray(r.folders)?r.folders:[]}const Ot=["agent","session","building","file","file-content","folder","area"],yn=2,An=2,xn=50,En=10,Mn=3,Cn=30,In=8,_n=3,Sn=15,Xe=5,Je=5;function vn(){const t=Gt(_e.SPOTLIGHT_TAB,"all");return ye.includes(t)?t:"all"}function Ut(){return Ms(_e.SPOTLIGHT_QUERY,"")}function wn(){const t=Gt(_e.AOP_CONFIG,{});return t.sortMode==="name"||t.sortMode==="status"||t.sortMode==="recent"?t.sortMode:"recent"}function bn({isOpen:t,onClose:e,onOpenSpawnModal:n,onOpenCommanderView:r,onOpenToolbox:o,onOpenFileExplorer:a,onOpenPM2LogsModal:c,onOpenBossLogsModal:u,onOpenDatabasePanel:f,onOpenMonitoringModal:l,onOpenSessionFinder:g,onOpenFileDetail:x}){const y=cs(),E=us(),A=ls(),M=hs(),S=fs(),R=ds(),w=h.useRef(e);w.current=e;const j=h.useRef(n);j.current=n;const K=h.useRef(r);K.current=r;const le=h.useRef(o);le.current=o;const he=h.useRef(a);he.current=a;const B=h.useRef(c);B.current=c;const Y=h.useRef(u);Y.current=u;const G=h.useRef(f);G.current=f;const ie=h.useRef(l);ie.current=l;const re=h.useRef(g);re.current=g;const J=h.useRef(x);J.current=x;const[F,O]=h.useState(Ut),[W,N]=h.useState(0),[v,ee]=h.useState(vn),[Ae,te]=h.useState([]),[ct,xe]=h.useState([]),[ut,Ee]=h.useState([]),[lt,Se]=h.useState(!1),[ht,ve]=h.useState(!1),[ft,we]=h.useState(!1),[dt,be]=h.useState(!1),[Le,Me]=h.useState({query:"",rows:[]}),[gt,mt]=h.useState(!1),[pt,yt]=h.useState(!1);h.useEffect(()=>{mt(!1),yt(!1)},[F,t]);const ts=h.useCallback(s=>{O(s),gs(_e.SPOTLIGHT_QUERY,s)},[]);h.useEffect(()=>{t&&(O(Ut()),N(0))},[t]),h.useEffect(()=>{if(!t){te([]),Se(!1);return}const s=F.trim();if(s.length<yn){te([]),Se(!1);return}te([]),Se(!0);let i=!1;const m=setTimeout(()=>{pn(s).then(I=>{i||te(I)}).catch(()=>{i||te([])}).finally(()=>{i||Se(!1)})},250);return()=>{i=!0,clearTimeout(m)}},[t,F]);const At=(M.fileSearchExcludeDirs??Ye).join(",");h.useEffect(()=>{if(!t){xe([]),ve(!1);return}const s=F.trim();if(s.length<An){xe([]),ve(!1);return}xe([]),ve(!0);let i=!1;const m=setTimeout(()=>{ms(s,{exclude:M.fileSearchExcludeDirs??[...Ye],limit:xn}).then(I=>{i||xe(I)}).catch(()=>{i||xe([])}).finally(()=>{i||ve(!1)})},250);return()=>{i=!0,clearTimeout(m)}},[t,F,At,M.fileSearchExcludeDirs]),h.useEffect(()=>{if(!t){Ee([]),we(!1);return}const s=F.trim();if(s.length<Mn){Ee([]),we(!1);return}Ee([]),we(!0);const i=new AbortController,m=setTimeout(()=>{ps(s,{exclude:M.fileSearchExcludeDirs??[...Ye],limit:Cn,signal:i.signal}).then(I=>{i.signal.aborted||Ee(I)}).catch(()=>{i.signal.aborted||Ee([])}).finally(()=>{i.signal.aborted||we(!1)})},300);return()=>{clearTimeout(m),i.abort()}},[t,F,At,M.fileSearchExcludeDirs]),h.useEffect(()=>{if(!t){Me({query:"",rows:[]}),be(!1);return}const s=F.trim();if(s.length<_n){Me({query:"",rows:[]}),be(!1);return}Me({query:"",rows:[]}),be(!0);let i=!1;const m=setTimeout(()=>{ys(s,{limit:Sn}).then(I=>{i||Me({query:s,rows:I})}).catch(()=>{i||Me({query:"",rows:[]})}).finally(()=>{i||be(!1)})},250);return()=>{i=!0,clearTimeout(m)}},[t,F]);const Ue=h.useCallback(s=>{ee(s),As(_e.SPOTLIGHT_TAB,s)},[]),xt=h.useRef(v);xt.current=v;const ss=h.useCallback(s=>{const i=ye.indexOf(xt.current),m=ye[(i+s+ye.length)%ye.length];Ue(m)},[Ue]);h.useEffect(()=>{N(0)},[v]);const Ge=U.getShortcuts(),Te=h.useMemo(()=>t?xs():{},[t]),Fe=h.useMemo(()=>{if(!t)return[];const s=window.matchMedia("(pointer: coarse)").matches,i=Ge.find(I=>I.id==="spawn-agent"),m=Ge.find(I=>I.id==="toggle-commander");return[{id:"cmd-spawn",type:"command",title:"Spawn New Agent",subtitle:s?"":i?Tt(i):"Alt+N",icon:d.jsx(V,{name:"plus",size:16}),action:()=>{w.current(),j.current()}},{id:"cmd-commander",type:"command",title:"Commander View",subtitle:s?"":m!=null&&m.key?Tt(m):"Tab",icon:d.jsx(V,{name:"dashboard",size:16}),action:()=>{w.current(),K.current()}},{id:"cmd-settings",type:"command",title:"Settings & Tools",subtitle:"Configure Tide Commander",icon:d.jsx(V,{name:"gear",size:16}),action:()=>{w.current(),le.current()}},{id:"cmd-monitoring",type:"command",title:"Monitoring & Logs",subtitle:"Triggers, workflows, events",icon:d.jsx(V,{name:"chart-line",size:16}),action:()=>{var I;w.current(),(I=ie.current)==null||I.call(ie)}}]},[t,Ge]),Ne=h.useMemo(()=>{const s=new Map;if(!t)return s;const i=Array.from(E.values());for(const m of y.values())for(const I of i)if(U.isPositionInArea({x:m.position.x,z:m.position.z},I)){s.set(m.id,I);break}return s},[t,y,E]),pe=h.useMemo(()=>t?Array.from(y.values()).map(s=>{const i=[];s.lastAssignedTask&&i.push(s.lastAssignedTask);const m=`${s.class} • ${s.cwd}`,I=Ne.get(s.id),k=(I==null?void 0:I.name)||"";let b=`${s.name} ${s.class} ${s.status} ${s.cwd}`;s.taskLabel&&(b+=` ${s.taskLabel}`),k&&(b+=` ${k}`),i.length>0&&(b+=` ${i.join(" ")}`);const $=Date.now()-s.lastActivity;let D;return s.lastAssignedTask&&(s.lastAssignedTask.length>150?D=s.lastAssignedTask.slice(0,150)+"...":D=s.lastAssignedTask),{id:`agent-${s.id}`,type:"agent",title:s.name,subtitle:m,lastUserInput:D,timeAway:$,icon:d.jsx(Nt,{agent:s,size:20}),_searchText:b,_userQueries:i,_agentId:s.id,_lastActivity:s.lastActivity,_taskLabel:s.taskLabel,_status:s.status,_provider:s.provider??"claude",_piModel:s.piModel,_piModelProvider:s.piModelProvider,_areaName:k||void 0,_areaColor:I==null?void 0:I.color,action:()=>{w.current(),Ft(s.id),U.selectAgent(s.id),U.getState().viewMode!=="flat"&&U.requestTerminalExpand()}}}):[],[t,y,Ne]),De=h.useMemo(()=>t?Array.from(E.values()).map(s=>{var i;return{id:`area-${s.id}`,type:"area",title:s.name,subtitle:`${s.assignedAgentIds.length} agents • ${((i=s.directories)==null?void 0:i.length)||0} folders`,icon:d.jsx(V,{name:"map",size:16}),action:()=>{w.current(),U.selectArea(s.id)}}}):[],[t,E]),Re=h.useMemo(()=>{const s=new Map;for(const i of pe)i._agentId&&s.set(i._agentId,i);return s},[pe]),Et=h.useMemo(()=>{const s=new Map;if(!t)return s;for(const i of y.values()){const m=Ne.get(i.id);if(!m||m.archived)continue;const I=s.get(m.id);I?I.push(i):s.set(m.id,[i])}return s},[t,y,Ne]),Mt=h.useMemo(()=>{const s=new Map;for(const i of S)s.has(i.agentId)||s.set(i.agentId,i.timestamp);return s},[S]),He=h.useMemo(()=>{if(!t)return[];const s=F.trim().toLowerCase(),i=Ie(s),m=Es({sortMode:wn(),agentsWithUnseenOutput:R,getLatestToolTimestamp:b=>Mt.get(b)}),I=Array.from(E.values()).filter(b=>!b.archived).filter(b=>{if(i.length===0)return!0;const $=b.name.toLowerCase();return i.some(D=>$.includes(D))}).sort((b,$)=>b.name.localeCompare($.name,void 0,{sensitivity:"base"})),k=[];for(const b of I){const $=b.name.toLowerCase(),D=i.filter(P=>!$.includes(P));let H=(Et.get(b.id)||[]).slice().sort(m).map(P=>Re.get(P.id)).filter(P=>!!P);D.length>0&&(H=H.filter(P=>{const Z=`${P.title} ${P.subtitle||""} ${P._searchText||""}`.toLowerCase();return D.every(Q=>Z.includes(Q))}),H.length===0)||!s&&H.length===0||k.push({areaId:b.id,areaName:b.name,areaColor:b.color,agents:H})}return k},[t,F,E,Et,Re,R,Mt]),je=h.useMemo(()=>t?Array.from(A.values()).filter(s=>s.type==="server"||s.type==="boss"||s.type==="database"||s.type==="tests").map(s=>{var D,q,H,P,Z;const i=s.status==="running"?"#4ade80":s.status==="stopped"?"#f87171":"#facc15",m=s.type==="boss"?"crown":s.type==="database"?"database":s.type==="tests"?"flask":"desktop",I=s.type==="boss"?"Boss":s.type==="database"?"Database":s.type==="tests"?"Tests":"Server";let k=`${I} • ${s.status}`;if(s.type==="database"&&((q=(D=s.database)==null?void 0:D.connections)!=null&&q.length)){const Q=s.database.connections[0];k+=` • ${Q.engine} @ ${Q.host}`}else s.type==="tests"&&s.folderPath?k=`${I} • ${s.folderPath}`:s.cwd&&(k+=` • ${s.cwd}`);const b=((H=s.pm2Status)==null?void 0:H.ports)||[];let $=`${s.name} ${s.type} ${s.status} ${s.cwd||""} ${((P=s.pm2)==null?void 0:P.name)||""}`;if(s.type==="tests"&&($+=` ${s.folderPath||""} tests junit maven`),b.length>0&&($+=` ${b.join(" ")}`),s.type==="database"&&((Z=s.database)!=null&&Z.connections))for(const Q of s.database.connections)$+=` ${Q.name} ${Q.engine} ${Q.host} ${Q.database||""} mysql postgresql sql`;return{id:`building-${s.id}`,type:"building",title:s.name,subtitle:k,_ports:b,icon:d.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[d.jsx(V,{name:"status-pending",size:10,weight:"fill",color:i}),d.jsx(V,{name:m,size:16})]}),_searchText:$,action:()=>{var Q;w.current(),s.type==="boss"?Y.current(s.id):s.type==="database"?G.current(s.id):s.type==="tests"?U.openTestsBuilding(s.id):s.type==="http"?U.openHttpBuilding(s.id):(Q=s.pm2)!=null&&Q.enabled&&B.current(s.id)}}}):[],[t,A]),Ct=h.useMemo(()=>t?Ae.map(s=>{const i=s.isGitRepo&&s.gitBranch?`${s.path} • ${s.gitBranch}`:s.path;return{id:`folder-${s.path}`,type:"folder",title:s.name,subtitle:i,matchedText:s.path,icon:d.jsx(V,{name:s.isGitRepo?"git-branch":"folder",size:16}),_searchText:`${s.name} ${s.path}`,_isGitRepo:s.isGitRepo,_gitBranch:s.gitBranch,action:()=>{w.current(),U.openFileExplorer(s.path)}}}):[],[t,Ae]),ke=h.useMemo(()=>t?ct.map(s=>{const i=s.areaName&&s.areaName!==s.projectName?`${s.projectName} · ${s.areaName}`:s.projectName;return{id:`file-${s.path}`,type:"file",title:s.name,subtitle:s.relativePath,matchedText:`${s.path} ${i}`,icon:Dt(s.path),_searchText:`${s.name} ${s.relativePath} ${s.path} ${s.projectName} ${s.areaName}`,_projectName:s.projectName,_areaName:s.areaName,action:()=>{w.current(),J.current({filePath:s.path,projectRoot:s.projectRoot,searchQuery:F.trim()})}}}):[],[t,ct,F]),$e=h.useMemo(()=>t?ut.map(s=>{const i=s.matches[0],m=s.areaName&&s.areaName!==s.projectName?`${s.projectName} · ${s.areaName}`:s.projectName;return{id:`file-content-${s.path}`,type:"file-content",title:s.name,subtitle:`${s.relativePath}${i!=null&&i.line?`:${i.line}`:""}`,matchedQuery:i==null?void 0:i.content,matchedText:`${s.path} ${m}`,icon:Dt(s.path),_projectName:s.projectName,_areaName:s.areaName,_lineNumber:i==null?void 0:i.line,action:()=>{w.current(),J.current({filePath:s.path,projectRoot:s.projectRoot,targetLine:i==null?void 0:i.line,searchQuery:F.trim()})}}}):[],[t,ut,F]),fe=h.useMemo(()=>{if(!t)return[];const s=i=>{const m=Date.now()-new Date(i).getTime();return!Number.isFinite(m)||m<0?"":m<36e5?`${Math.max(1,Math.floor(m/6e4))}m`:m<864e5?`${Math.floor(m/36e5)}h`:`${Math.floor(m/864e5)}d`};return Le.rows.map(i=>{const m=Array.from(y.values()).find(D=>D.sessionId===i.sessionId),I=m??(i.agentId?y.get(i.agentId):void 0),k=(i.firstPrompt||i.snippet||i.sessionId).slice(0,90),b=[i.projectPath||i.projectDir];I&&b.push(`→ ${I.name}${m?"":" (past session)"}`);const $=s(i.lastModified);return $&&b.push($),b.push(`${i.totalMatches}×`),{id:`session-${i.sessionId}`,type:"session",title:k,subtitle:b.join(" • "),matchedQuery:i.snippet||void 0,matchedExtracts:i.extracts&&i.extracts.length>0?i.extracts:void 0,_agentId:I==null?void 0:I.id,_sessionMatches:i.totalMatches,_provider:i.provider||"claude",icon:I?d.jsx(Nt,{agent:I,size:20}):d.jsx(V,{name:"history",size:16}),action:()=>{var q;w.current();const D=Array.from(U.getState().agents.values()).find(H=>H.sessionId===i.sessionId);D?(Ft(D.id),U.selectAgent(D.id),U.getState().viewMode!=="flat"&&U.requestTerminalExpand(),U.requestTerminalSearch(D.id,Le.query)):(q=re.current)==null||q.call(re,{initialQuery:Le.query,initialSessionKey:`${i.projectPath}::${i.sessionId}`})}}})},[t,Le,y]),It=h.useMemo(()=>new ae(pe,{keys:["title","subtitle","_searchText","lastUserInput"],threshold:.4,ignoreLocation:!0,includeScore:!0,includeMatches:!0}),[pe]),_t=h.useMemo(()=>new ae(Fe,{keys:["title","subtitle"],threshold:.4,includeScore:!0,includeMatches:!0}),[Fe]),St=h.useMemo(()=>new ae(De,{keys:["title","subtitle"],threshold:.4,includeScore:!0,includeMatches:!0}),[De]),vt=h.useMemo(()=>new ae(je,{keys:["title","subtitle","_searchText"],threshold:.4,ignoreLocation:!0,includeScore:!0,includeMatches:!0}),[je]),Ce=h.useMemo(()=>{if(!F.trim()){const p=[];p.push(...je);const _=[...pe].sort((T,z)=>{const ne=We(T._agentId,T._lastActivity,Te);return We(z._agentId,z._lastActivity,Te)-ne});p.push(..._),p.push(...De.slice(0,2));const L={};return Ot.forEach((T,z)=>{L[T]=z}),p.sort((T,z)=>(L[T.type]??999)-(L[z.type]??999)),p}const s=F.trim().toLowerCase(),i=Ie(s),m=Qe(It,F).slice(0,30),I=Qe(St,F).slice(0,2),k=Ct.slice(0,8),b=ke.slice(0,En),$=Qe(vt,F).filter(p=>{const _=p.score??1,L=`${p.item.title} ${p.item.subtitle||""} ${p.item._searchText||""}`.toLowerCase();return i.every(T=>L.includes(T))||_<=.2}).slice(0,4),D={agent:6,building:5,folder:4,file:4,"file-content":4,command:3,area:2,"modified-file":1,session:0},q=p=>hn(s,p.title,`${p.subtitle||""} ${p._searchText||""} ${p.matchedText||""}`),H=(p,_)=>{const L=(1-Math.min(1,_??1))*4;return q(p)*100+(D[p.type]??0)*5+L},P=new Map,Z=(p,_)=>{const L=P.get(p.type),T={item:p,score:H(p,_)};L?L.push(T):P.set(p.type,[T])},Q=new Map;for(const p of fe)p._agentId&&!Q.has(p._agentId)&&Q.set(p._agentId,p);for(const p of m){const _={...p.item};if(_._userQueries&&_._userQueries.length>0){const T=_._userQueries.find(z=>i.some(ne=>z.toLowerCase().includes(ne)));if(T){const z=T.toLowerCase(),ne=z.includes(s)?s:i.find(ge=>z.includes(ge))??s;if(T.length>200){const ge=z.indexOf(ne),bt=Math.max(0,ge-60),Lt=Math.min(T.length,ge+ne.length+100);_.matchedQuery=(bt>0?"...":"")+T.slice(bt,Lt)+(Lt<T.length?"...":"")}else _.matchedQuery=T}}const L=_._agentId?Q.get(_._agentId):void 0;if(L){_.matchedQuery||(_.matchedQuery=L.matchedQuery);const T=_.matchedQuery,z=(T==null?void 0:T.toLowerCase())??"";_.matchedExtracts=mn(T&&i.every(ne=>z.includes(ne))?T:void 0,L.matchedExtracts),_.action=L.action,_._sessionMatches=L._sessionMatches,_._searchText=`${_._searchText||""} ${L.matchedQuery||""} ${s}`}Z(_,p.score)}for(const[p,_]of Q){if(m.some(T=>T.item._agentId===p))continue;const L=Re.get(p);L&&Z({...L,matchedQuery:_.matchedQuery,matchedExtracts:_.matchedExtracts,action:_.action,_sessionMatches:_._sessionMatches,_searchText:`${L._searchText||""} ${_.matchedQuery||""} ${s}`},void 0)}for(const p of $)Z(p.item,p.score);for(const p of I)Z(p.item,p.score);for(const p of k)Z(p,void 0);for(const p of b)Z(p,void 0);for(const p of $e.slice(0,In))Z(p,void 0);const is=24*36e5,as=Date.now(),wt=p=>{const _=We(p.item._agentId,p.item._lastActivity,Te),L=Math.exp(-Math.LN2*Math.max(0,as-_)/is);return Math.log2(1+(p.item._sessionMatches??0))+4*L};for(const[p,_]of P)p==="agent"?_.sort((L,T)=>{const z=q(L.item),ne=q(T.item);if(ne!==z)return ne-z;const Be=wt(L),ge=wt(T);return ge!==Be?ge-Be:T.score-L.score}):_.sort((L,T)=>T.score-L.score);const de=[];for(const p of Ot){if(p==="session"){!pt&&fe.length>Xe?(de.push(...fe.slice(0,Xe)),de.push({id:"session-show-all",type:"session",title:`Show all conversations (${fe.length})`,subtitle:`${fe.length-Xe} more matches`,icon:d.jsx(V,{name:"arrow-down",size:16}),action:()=>yt(!0)})):de.push(...fe);continue}const _=P.get(p);if(_){if(p==="agent"&&!gt&&_.length>Je){for(const L of _.slice(0,Je))de.push(L.item);de.push({id:"agent-show-all",type:"agent",title:`Show all agents (${_.length})`,subtitle:`${_.length-Je} more matches`,icon:d.jsx(V,{name:"arrow-down",size:16}),action:()=>mt(!0)});continue}for(const L of _)de.push(L.item)}}return de},[F,It,St,vt,pe,Re,De,je,Ct,ke,$e,fe,Te,gt,pt]),se=h.useMemo(()=>{switch(v){case"agents":return Ce.filter(s=>s.type==="agent");case"buildings":return Ce.filter(s=>s.type==="building");case"commands":return F.trim()?Qe(_t,F).slice(0,3).map(s=>s.item):Fe;case"folders":return Ce.filter(s=>s.type==="folder");case"files":return ke;case"contents":return $e;case"areas":return He.flatMap(s=>s.agents);case"all":default:return Ce}},[v,Ce,He,ke,$e,F,_t,Fe]),ns=h.useMemo(()=>{const s=[];if(dt&&s.push("session"),ht&&s.push("file"),ft&&s.push("file-content"),lt&&s.push("folder"),v==="all")return s;const m={buildings:"building",folders:"folder",files:"file",contents:"file-content",agents:"agent",commands:"command"}[v];return m&&s.includes(m)?[m]:[]},[v,dt,ht,ft,lt]);h.useEffect(()=>{W>=se.length&&N(Math.max(0,se.length-1))},[se.length,W]);const rs=h.useCallback(s=>{if(s.altKey&&!s.ctrlKey&&!s.metaKey&&(s.key==="p"||s.key==="n"||s.key==="P"||s.key==="N")){s.preventDefault(),s.stopPropagation(),s.nativeEvent.stopImmediatePropagation();const i=s.key.toLowerCase();N(i==="p"?m=>m>0?m-1:se.length-1:m=>m<se.length-1?m+1:0);return}switch(s.key){case"Escape":s.preventDefault(),w.current();break;case"ArrowUp":s.preventDefault(),N(i=>i>0?i-1:se.length-1);break;case"ArrowDown":s.preventDefault(),N(i=>i<se.length-1?i+1:0);break;case"Enter":s.preventDefault(),se[W]&&se[W].action();break}},[se,W]),os=h.useCallback((s,i)=>{if(!i||!s)return s;const m=Ie(i);if(m.length===0)return s;const I=new RegExp(m.map(ln).sort((q,H)=>H.length-q.length).join("|"),"gi"),k=[];let b=0,$=0,D;for(;(D=I.exec(s))!==null;)D.index>b&&k.push(s.slice(b,D.index)),k.push(qe.createElement("mark",{key:$++,className:"spotlight-highlight"},D[0])),b=D.index+D[0].length;return b<s.length&&k.push(s.slice(b)),k.length>0?qe.createElement(qe.Fragment,null,...k):s},[]);return{query:F,setQuery:ts,selectedIndex:W,setSelectedIndex:N,results:se,loadingTypes:ns,activeTab:v,setActiveTab:Ue,cycleTab:ss,areaSections:He,handleKeyDown:rs,highlightMatch:os}}const Ln=h.forwardRef(function({query:e,onQueryChange:n,onKeyDown:r,onResetSelection:o},a){const{t:c}=Oe(["common"]);return d.jsxs("div",{className:"spotlight-input-wrapper",children:[d.jsx("span",{className:"spotlight-search-icon",children:"⌘"}),d.jsx("input",{ref:a,type:"text",className:"spotlight-input",placeholder:c("common:search.spotlightPlaceholder"),value:e,onChange:u=>{n(u.target.value),o()},onKeyDown:r,autoFocus:!0,spellCheck:!1}),d.jsxs("div",{className:"spotlight-input-hints",children:[d.jsx("span",{className:"spotlight-shortcut-hint",children:"↑↓"}),d.jsx("span",{className:"spotlight-shortcut-hint",children:"Enter"}),d.jsx("span",{className:"spotlight-shortcut-hint",children:"Esc"})]})]})}),Tn=h.memo(function({activeTab:e,onSelect:n}){const{t:r}=Oe(["terminal"]);return d.jsxs("div",{className:"spotlight-tabs",role:"tablist","aria-label":r("terminal:spotlight.tabsLabel"),children:[ye.map(o=>d.jsx("button",{type:"button",role:"tab","aria-selected":o===e,tabIndex:-1,className:`spotlight-tab${o===e?" active":""}`,onClick:()=>n(o),children:r(`terminal:spotlight.tabs.${o}`)},o)),d.jsx("span",{className:"spotlight-tabs-hint",children:d.jsx("kbd",{children:"Tab"})})]})}),Fn=h.forwardRef(function({results:e,loadingTypes:n,selectedIndex:r,query:o,activeTab:a,areaSections:c,highlightMatch:u,onSelectIndex:f},l){const{t:g}=Oe(["terminal"]),x=h.useRef(!1);h.useEffect(()=>{x.current=!1},[e]),h.useEffect(()=>{const A=typeof l=="function"?null:l==null?void 0:l.current;if(!A)return;const M=()=>{x.current=!0};return A.addEventListener("mousemove",M),()=>{A.removeEventListener("mousemove",M)}},[l,e]);const y={command:g("terminal:spotlight.categories.commands"),agent:g("terminal:spotlight.categories.agents"),building:g("terminal:spotlight.categories.infrastructure"),area:g("terminal:spotlight.categories.areas"),folder:g("terminal:spotlight.categories.folders"),file:g("terminal:spotlight.categories.files"),"file-content":g("terminal:spotlight.categories.fileContents"),"modified-file":g("terminal:spotlight.categories.modifiedFiles"),session:g("terminal:spotlight.categories.sessions")},E=h.useMemo(()=>{const A=[];let M=null,S=[];e.forEach((w,j)=>{w.type!==M&&(M!==null&&S.length>0&&A.push([M,S]),M=w.type,S=[]),S.push({result:w,index:j})}),M!==null&&S.length>0&&A.push([M,S]);for(const w of n)A.some(([j])=>j===w)||A.push([w,[]]);const R=["agent","session","building","file","file-content","folder","area","command"];return A.sort(([w],[j])=>R.indexOf(w)-R.indexOf(j)),A},[e,n]);if(h.useEffect(()=>{if(!l||typeof l=="function")return;const A=l.current;if(!A)return;const M=A.querySelector(".spotlight-item.selected");M&&M.scrollIntoView({block:"nearest",behavior:"smooth"})},[r,l]),a==="areas"){if(c.length===0)return d.jsx("div",{className:"spotlight-results",ref:l,children:d.jsx("div",{className:"spotlight-empty",children:g("terminal:spotlight.noResults")})});let A=0;return d.jsx("div",{className:"spotlight-results",ref:l,children:c.map(M=>d.jsxs("div",{children:[d.jsxs("div",{className:"spotlight-category-header spotlight-area-section-header",children:[d.jsx("span",{className:"spotlight-area-dot",style:{background:M.areaColor},"aria-hidden":"true"}),d.jsx("span",{className:"spotlight-area-name",children:M.areaName}),d.jsx("span",{className:"spotlight-area-count",children:M.agents.length})]}),M.agents.length===0?d.jsx("div",{className:"spotlight-area-empty",children:g("terminal:spotlight.noAgentsInArea")}):M.agents.map(S=>{const R=A++;return d.jsx(Rt,{result:S,isSelected:R===r,query:o,highlightMatch:u,onClick:()=>S.action(),onMouseEnter:()=>{x.current&&f(R)}},S.id)})]},M.areaId))})}return e.length===0&&n.length===0?d.jsx("div",{className:"spotlight-results",ref:l,children:d.jsx("div",{className:"spotlight-empty",children:g("terminal:spotlight.noResults")})}):d.jsx("div",{className:"spotlight-results",ref:l,children:E.map(([A,M])=>d.jsxs("div",{children:[(a==="all"||E.length>1)&&d.jsx("div",{className:"spotlight-category-header",children:y[A]||A}),n.includes(A)&&d.jsxs("div",{className:"spotlight-block-loading",role:"status",children:[d.jsx("span",{className:"spotlight-loading-spinner","aria-hidden":"true"}),g("terminal:spotlight.searching")]}),M.map(({result:S,index:R})=>d.jsx(Rt,{result:S,isSelected:R===r,query:o,highlightMatch:u,onClick:()=>S.action(),onMouseEnter:()=>{x.current&&f(R)}},S.id))]},A))})}),Nn=h.memo(function(){const{t:e}=Oe(["terminal"]);return d.jsxs("div",{className:"spotlight-footer",children:[d.jsxs("div",{className:"spotlight-footer-left",children:[d.jsxs("span",{className:"spotlight-footer-hint",children:[d.jsx("kbd",{children:"↑"}),d.jsx("kbd",{children:"↓"})," ",d.jsx("kbd",{children:"Alt+N"}),d.jsx("kbd",{children:"Alt+P"})," ",e("terminal:spotlight.navigate")]}),d.jsxs("span",{className:"spotlight-footer-hint",children:[d.jsx("kbd",{children:"Enter"})," ",e("terminal:spotlight.select")]}),d.jsxs("span",{className:"spotlight-footer-hint",children:[d.jsx("kbd",{children:"Tab"})," ",e("terminal:spotlight.switchTabs")]})]}),d.jsx("div",{className:"spotlight-footer-right",children:d.jsxs("span",{className:"spotlight-footer-hint",children:[d.jsx("kbd",{children:"Esc"})," ",e("common:buttons.close")]})})]})});function Dn({detail:t,onClose:e}){const[n,r]=h.useState(null),[o,a]=h.useState(!0),[c,u]=h.useState(null);Cs("spotlight-file-detail",!0,e),h.useEffect(()=>{const E=new AbortController;return a(!0),u(null),r(null),(async()=>{try{const M=await Ze(et(`/api/files/read?path=${encodeURIComponent(t.filePath)}`),{signal:E.signal}),S=await M.json();if(!M.ok)throw new Error(S.error||"Unable to read file");let R=null;if(!S.binary)try{const w=await Ze(et(`/api/files/git-original?path=${encodeURIComponent(t.filePath)}`),{signal:E.signal}),j=await w.json();w.ok&&!j.binary&&typeof j.content=="string"&&(R=j.content)}catch{}E.signal.aborted||r({filename:S.filename||t.filePath.split("/").pop()||t.filePath,content:typeof S.content=="string"?S.content:"",originalContent:R,binary:S.binary===!0})}catch(M){E.signal.aborted||u(M instanceof Error?M.message:"Unable to load file")}finally{E.signal.aborted||a(!1)}})(),()=>E.abort()},[t.filePath]),h.useEffect(()=>{const E=A=>{A.key==="Escape"&&(A.preventDefault(),A.stopImmediatePropagation(),e())};return document.addEventListener("keydown",E,!0),()=>document.removeEventListener("keydown",E,!0)},[e]);const f=()=>{U.revealFileInExplorer(t.filePath,t.projectRoot,t.targetLine),e()},l=(n==null?void 0:n.filename)||t.filePath,g=l.lastIndexOf(".")>=0?l.slice(l.lastIndexOf(".")):"",x=Is(g),y=(n==null?void 0:n.originalContent)!=null&&n.originalContent!==n.content;return d.jsx("div",{className:"guake-git-diff-modal-overlay",onClick:e,children:d.jsxs("div",{className:"guake-git-diff-modal",onClick:E=>E.stopPropagation(),children:[d.jsxs("div",{className:"guake-git-diff-modal-header",children:[d.jsxs("div",{className:"guake-git-diff-path spotlight-file-detail-path",title:t.filePath,children:[t.filePath,t.targetLine?d.jsxs("span",{className:"spotlight-file-detail-line",children:[":",t.targetLine]}):null]}),d.jsxs("button",{type:"button",className:"spotlight-file-detail-explorer",onClick:f,title:"Open in File Explorer",children:[d.jsx(V,{name:"folder-open",size:14}),"Open in File Explorer"]}),d.jsx("button",{className:"guake-git-close",onClick:e,title:"Close (Esc)",children:d.jsx(V,{name:"close",size:14})})]}),d.jsxs("div",{className:"guake-git-diff-content",children:[o&&d.jsx("div",{className:"guake-git-diff-loading-overlay",children:d.jsx("div",{className:"diff-image-spinner"})}),c&&d.jsx("div",{className:"spotlight-file-detail-message",children:c}),(n==null?void 0:n.binary)&&d.jsx("div",{className:"spotlight-file-detail-message",children:"Binary preview is available in the File Explorer."}),n&&!n.binary&&(y?d.jsx(jt,{originalContent:n.originalContent||"",modifiedContent:n.content,filename:n.filename,filePath:t.filePath,language:x,searchQuery:t.searchQuery,targetLine:t.targetLine}):d.jsx(jt,{originalContent:"",modifiedContent:n.content,filename:n.filename,filePath:t.filePath,language:x,initialModifiedOnly:!0,searchQuery:t.searchQuery,targetLine:t.targetLine,readOnly:!0}))]})]})})}const Rn=768;function Bn({isOpen:t,onClose:e,onOpenSpawnModal:n,onOpenCommanderView:r,onOpenToolbox:o,onOpenFileExplorer:a,onOpenPM2LogsModal:c,onOpenBossLogsModal:u,onOpenDatabasePanel:f,onOpenMonitoringModal:l,onOpenSessionFinder:g}){const x=h.useRef(null),y=h.useRef(null),E=h.useRef(null),A=h.useRef(0),[M,S]=h.useState(null),{query:R,setQuery:w,selectedIndex:j,setSelectedIndex:K,results:le,loadingTypes:he,activeTab:B,setActiveTab:Y,cycleTab:G,areaSections:ie,handleKeyDown:re,highlightMatch:J}=bn({isOpen:t,onClose:e,onOpenSpawnModal:n,onOpenCommanderView:r,onOpenToolbox:o,onOpenFileExplorer:a,onOpenPM2LogsModal:c,onOpenBossLogsModal:u,onOpenDatabasePanel:f,onOpenMonitoringModal:l,onOpenSessionFinder:g,onOpenFileDetail:S});A.current=le.length;const F=h.useRef(G);F.current=G,h.useEffect(()=>{t&&setTimeout(()=>{var N,v;(N=x.current)==null||N.focus(),(v=x.current)==null||v.select()},50)},[t]),h.useEffect(()=>{if(!t)return;const N=window.visualViewport;if(!N||window.innerWidth>Rn)return;const v=()=>{const ee=y.current;ee&&(ee.style.height=`${N.height}px`,ee.style.top=`${N.offsetTop}px`)};return v(),N.addEventListener("resize",v),N.addEventListener("scroll",v),()=>{N.removeEventListener("resize",v),N.removeEventListener("scroll",v);const ee=y.current;ee&&(ee.style.height="",ee.style.top="")}},[t]),h.useEffect(()=>{if(!t)return;const N=v=>{if(v.key==="Escape"){v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation(),e();return}if(v.key==="Tab"){v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation(),F.current(v.shiftKey?-1:1);return}if(v.altKey&&!v.ctrlKey&&!v.metaKey&&(v.key==="n"||v.key==="p"||v.key==="N"||v.key==="P")){v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation();const ee=v.key.toLowerCase(),Ae=A.current;K(ee==="p"?te=>te>0?te-1:Ae-1:te=>te<Ae-1?te+1:0);return}};return window.addEventListener("keydown",N,{capture:!0}),()=>{window.removeEventListener("keydown",N,{capture:!0})}},[t,e]);const O=h.useCallback(N=>{N.target===N.currentTarget&&e()},[e]),W=h.useCallback(()=>{K(0)},[K]);return t?d.jsx("div",{ref:y,className:"spotlight-overlay",onClick:O,children:d.jsxs("div",{className:"spotlight-modal",children:[d.jsx(Ln,{ref:x,query:R,onQueryChange:w,onKeyDown:re,onResetSelection:W}),d.jsx(Tn,{activeTab:B,onSelect:Y}),d.jsx(Fn,{ref:E,results:le,loadingTypes:he,selectedIndex:j,query:R,activeTab:B,areaSections:ie,highlightMatch:J,onSelectIndex:K}),d.jsx(Nn,{})]})}):M?d.jsx(Dn,{detail:M,onClose:()=>S(null)}):null}export{zn as FILE_ICON_NAMES,Bn as Spotlight,Nn as SpotlightFooter,Ln as SpotlightInput,Rt as SpotlightItem,Fn as SpotlightResults,Kn as formatDuration,On as formatRelativeTime,Un as getAgentIcon,Dt as getFileIconFromPath,Gn as getTypeLabel,bn as useSpotlightSearch};
@@ -1 +1 @@
1
- import{u as G,aN as ee,r as l,s as u,j as e,aO as oe,I as L,Z as me,aP as be,aQ as ue,aR as he,aS as _e,aT as pe,aU as xe,aV as fe}from"./main-Dk3qq80S.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";const je=({building:a,connections:j,activeConnectionId:d,activeDatabase:n,collapsed:y,onToggleCollapse:_,onConnectionChange:D,onDatabaseChange:R,onInsertTable:N,onSelectTableQuery:O})=>{const{t:x}=G(["terminal"]),f=ee(a.id),[I,U]=l.useState(new Set),[T,r]=l.useState(""),[i,g]=l.useState(""),[w,F]=l.useState(!1),[P,V]=l.useState(null),H=l.useRef(null),K=l.useRef(null),C=l.useRef(null),k=d?f.databases.get(d)??[]:[],q=d&&n?`${d}:${n}`:"",$=q?f.tables.get(q)??[]:[],h=d?f.connectionStatus.get(d):void 0,E=l.useMemo(()=>{if(!T.trim())return k;const t=T.toLowerCase();return k.filter(o=>o.toLowerCase().includes(t))},[k,T]),z=l.useMemo(()=>{if(!i.trim())return $;const t=i.toLowerCase();return $.filter(o=>o.name.toLowerCase().includes(t))},[$,i]);l.useEffect(()=>{const t=o=>{K.current&&!K.current.contains(o.target)&&F(!1)};return w&&document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[w]),l.useEffect(()=>{d&&!h&&u.testDatabaseConnection(a.id,d)},[a.id,d,h]),l.useEffect(()=>{d&&(h!=null&&h.connected)&&k.length===0&&u.listDatabases(a.id,d)},[a.id,d,h==null?void 0:h.connected,k.length]),l.useEffect(()=>{d&&n&&$.length===0&&u.listTables(a.id,d,n)},[a.id,d,n,$.length]),l.useEffect(()=>{V(null),g("")},[d,n]);const b=l.useCallback(t=>{U(o=>{const v=new Set(o);if(v.has(t))v.delete(t);else if(v.add(t),d&&n){const S=`${d}:${n}:${t}`;f.tableSchemas.has(S)||u.getTableSchema(a.id,d,n,t)}return v})},[a.id,d,n,f.tableSchemas]),p=t=>{if(!d||!n)return null;const o=`${d}:${n}:${t}`;return f.tableSchemas.get(o)};return y?e.jsx("div",{className:"database-sidebar database-sidebar--collapsed",children:e.jsx("button",{className:"database-sidebar__toggle",onClick:_,title:x("terminal:database.expandSidebar"),children:"»"})}):e.jsxs("div",{className:"database-sidebar",children:[e.jsxs("div",{className:"database-sidebar__header",children:[e.jsx("span",{children:x("terminal:database.explorer")}),e.jsx("button",{className:"database-sidebar__toggle",onClick:_,title:x("terminal:database.collapseSidebar"),children:"«"})]}),e.jsxs("div",{className:"database-sidebar__section",children:[e.jsx("div",{className:"database-sidebar__section-title",children:x("terminal:database.connection")}),e.jsx("select",{className:"database-sidebar__select",value:d||"",onChange:t=>D(t.target.value),children:j.length===0?e.jsx("option",{value:"",children:x("terminal:database.noConnections")}):j.map(t=>{var o;return e.jsxs("option",{value:t.id,children:[((o=oe[t.engine])==null?void 0:o.icon)??"🗄️"," ",t.name]},t.id)})}),h&&e.jsx("div",{className:`database-sidebar__status ${h.connected?"database-sidebar__status--connected":"database-sidebar__status--error"}`,children:h.connected?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"database-sidebar__status-icon",children:"✓"}),x("terminal:database.connected"),h.serverVersion&&e.jsxs("span",{className:"database-sidebar__version",children:["(",h.serverVersion,")"]})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"database-sidebar__status-icon",children:"✗"}),h.error||x("terminal:database.disconnected")]})})]}),k.length>0&&e.jsxs("div",{className:"database-sidebar__section",children:[e.jsx("div",{className:"database-sidebar__section-title",children:x("terminal:database.databaseTitle")}),e.jsxs("div",{className:"database-sidebar__searchable-select",ref:K,children:[e.jsx("input",{ref:H,className:"database-sidebar__search-input",type:"text",value:w?T:n||"",placeholder:x("terminal:database.selectDatabase"),onChange:t=>{r(t.target.value),w||F(!0)},onFocus:()=>{F(!0),r("")},onKeyDown:t=>{var o,v;t.key==="Escape"?(F(!1),r(""),(o=H.current)==null||o.blur()):t.key==="Enter"&&E.length===1&&(R(E[0]),F(!1),r(""),(v=H.current)==null||v.blur())}}),w&&e.jsx("div",{className:"database-sidebar__dropdown",children:E.length===0?e.jsx("div",{className:"database-sidebar__dropdown-empty",children:"No matches"}):E.map(t=>e.jsx("div",{className:`database-sidebar__dropdown-item ${t===n?"database-sidebar__dropdown-item--active":""}`,onMouseDown:o=>{o.preventDefault(),R(t),F(!1),r("")},children:t},t))})]})]}),$.length>0&&e.jsxs("div",{className:"database-sidebar__section database-sidebar__section--tables",children:[e.jsx("div",{className:"database-sidebar__section-title",children:i.trim()?x("terminal:database.tablesCount",{count:z.length})+` / ${$.length}`:x("terminal:database.tablesCount",{count:$.length})}),e.jsxs("div",{className:"database-sidebar__table-filter",children:[e.jsx("input",{ref:C,className:"database-sidebar__table-filter-input",type:"text",value:i,placeholder:x("terminal:database.filterTables"),onChange:t=>g(t.target.value),onKeyDown:t=>{var o;t.key==="Escape"&&(i?g(""):(o=C.current)==null||o.blur(),t.stopPropagation())}}),i&&e.jsx("button",{className:"database-sidebar__table-filter-clear",onClick:()=>{var t;g(""),(t=C.current)==null||t.focus()},title:"Clear filter",children:"×"})]}),e.jsxs("div",{className:"database-sidebar__tables",children:[i.trim()&&z.length===0&&e.jsx("div",{className:"database-sidebar__tables-empty",children:x("terminal:database.noTablesMatch")}),z.map(t=>{const o=I.has(t.name),v=o?p(t.name):null;return e.jsxs("div",{className:"database-sidebar__table",children:[e.jsxs("div",{className:"database-sidebar__table-header",children:[e.jsx("button",{className:"database-sidebar__table-expand",onClick:()=>b(t.name),title:o?"Collapse table schema":"Expand table schema",children:e.jsx(L,{name:o?"caret-down":"caret-right",size:10})}),e.jsx("span",{className:"database-sidebar__table-icon",children:e.jsx(L,{name:t.type==="view"?"eye":"clipboard",size:12})}),e.jsx("span",{className:`database-sidebar__table-name ${P===t.name?"database-sidebar__table-name--selected":""}`,onClick:()=>V(t.name),onDoubleClick:()=>{V(t.name),O(t.name)},children:t.name}),e.jsx("button",{className:"database-sidebar__table-insert",onClick:S=>{S.stopPropagation(),N(t.name)},title:x("terminal:database.insertTableName"),children:"+"})]}),o&&v&&e.jsx("div",{className:"database-sidebar__table-columns",children:v.columns.map(S=>e.jsxs("div",{className:"database-sidebar__column",onClick:()=>N(S.name),title:`${S.type}${S.nullable?" NULL":" NOT NULL"}${S.primaryKey?" PK":""}`,children:[e.jsx("span",{className:"database-sidebar__column-icon",children:S.primaryKey?e.jsx(L,{name:"key",size:11}):null}),e.jsx("span",{className:"database-sidebar__column-name",children:S.name}),e.jsx("span",{className:"database-sidebar__column-type",children:S.type})]},S.name))})]},t.name)})]})]})]})},ye=({buildingId:a,history:j,onLoadQuery:d})=>{const{t:n}=G(["terminal","common"]),[y,_]=l.useState(""),[D,R]=l.useState(!1),[N,O]=l.useState(!1),x=l.useMemo(()=>{let r=j;if(D&&(r=r.filter(i=>i.favorite)),y.trim()){const i=y.toLowerCase();r=r.filter(g=>g.query.toLowerCase().includes(i)||g.database.toLowerCase().includes(i))}return r},[j,D,y]),f=r=>{const i=new Date(r),w=new Date().getTime()-i.getTime();return w<1440*60*1e3?i.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):w<10080*60*1e3?i.toLocaleDateString([],{weekday:"short"})+" "+i.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):i.toLocaleDateString([],{month:"short",day:"numeric"})},I=l.useCallback((r,i)=>{i.stopPropagation(),u.toggleQueryFavorite(a,r)},[a]),U=l.useCallback((r,i)=>{i.stopPropagation(),u.deleteQueryFromHistory(a,r)},[a]),T=l.useCallback(()=>{O(!0)},[]);return j.length===0?e.jsxs("div",{className:"query-history query-history--empty",children:[e.jsx("p",{children:n("terminal:database.noHistory")}),e.jsx("p",{children:n("terminal:database.queriesAppearHere")})]}):e.jsxs("div",{className:"query-history",children:[e.jsxs("div",{className:"query-history__toolbar",children:[e.jsx("input",{type:"text",className:"query-history__search",placeholder:n("terminal:database.searchQueries"),value:y,onChange:r=>_(r.target.value)}),e.jsxs("label",{className:"query-history__filter",children:[e.jsx("input",{type:"checkbox",checked:D,onChange:r=>R(r.target.checked)}),n("terminal:database.favoritesOnly")]}),e.jsx("button",{className:"query-history__clear",onClick:T,title:n("terminal:database.clearAll"),children:n("terminal:database.clearAll")})]}),e.jsxs("div",{className:"query-history__list",children:[x.map(r=>e.jsxs("div",{className:`query-history__item ${r.status==="error"?"query-history__item--error":""}`,onClick:()=>d(r.query),children:[e.jsxs("div",{className:"query-history__item-header",children:[e.jsx("span",{className:`query-history__status ${r.status==="success"?"query-history__status--success":"query-history__status--error"}`,children:e.jsx(L,{name:r.status==="success"?"check":"cross",size:12})}),e.jsx("span",{className:"query-history__database",children:r.database}),e.jsx("span",{className:"query-history__date",children:f(r.executedAt)}),e.jsxs("span",{className:"query-history__duration",children:[r.duration,"ms"]}),r.rowCount!==void 0&&e.jsx("span",{className:"query-history__row-count",children:n("terminal:database.rowCount",{count:r.rowCount})})]}),e.jsx("div",{className:"query-history__query",children:e.jsx("code",{children:r.query.length>200?r.query.substring(0,200)+"...":r.query})}),r.error&&e.jsx("div",{className:"query-history__error",children:r.error}),e.jsxs("div",{className:"query-history__actions",children:[e.jsx("button",{className:`query-history__favorite ${r.favorite?"query-history__favorite--active":""}`,onClick:i=>I(r.id,i),title:r.favorite?n("terminal:database.removeFromFavorites"):n("terminal:database.addToFavorites"),children:e.jsx(L,{name:"star",size:12,weight:r.favorite?"fill":"regular",color:r.favorite?"#facc15":void 0})}),e.jsx("button",{className:"query-history__delete",onClick:i=>U(r.id,i),title:n("terminal:database.deleteFromHistory"),children:e.jsx(L,{name:"trash",size:12})})]})]},r.id)),x.length===0&&e.jsx("div",{className:"query-history__no-results",children:n("terminal:database.noQueriesMatch")})]}),e.jsx(me,{isOpen:N,title:n("terminal:database.clearAll"),message:n("terminal:database.confirmClearHistory"),confirmLabel:n("terminal:database.clearAll"),cancelLabel:n("common:buttons.cancel"),variant:"danger",onConfirm:()=>u.clearQueryHistory(a),onClose:()=>O(!1)})]})},Ne=({tabs:a,activeTabId:j,onTabClick:d,onTabClose:n})=>{const{t:y}=G(["terminal"]);return e.jsx("div",{className:"database-tabs",children:a.map(_=>e.jsxs("div",{className:`database-tabs__tab ${j===_.id?"database-tabs__tab--active":""}`,children:[e.jsxs("button",{className:"database-tabs__tab-label",onClick:()=>d(_),title:`${_.connectionName} / ${_.database}`,children:[_.database,e.jsx("span",{className:"database-tabs__tab-connection",children:_.connectionName})]}),e.jsx("button",{className:"database-tabs__tab-close",onClick:()=>n(_.id),title:y("terminal:database.closeTab"),"aria-label":`Close ${_.database} tab`,children:"×"})]},_.id))})},ae=a=>`db-panel-${a}`;function ve(a){try{const j=localStorage.getItem(ae(a));return j?JSON.parse(j):{}}catch{return{}}}function Se(a,j){try{localStorage.setItem(ae(a),JSON.stringify(j))}catch{}}const we=({building:a,onClose:j,onMinimize:d})=>{var W,Y,Z,X;const{t:n}=G(["terminal","common"]),y=ee(a.id),_=be(a.id),D=ue(a.id),R=he(a.id),N=l.useRef(ve(a.id)),O=l.useRef(null),x=l.useRef(0),f=((W=a.database)==null?void 0:W.connections)??[],I=(s,c)=>`${s}:${c}`,U=s=>s?(N.current.queries??{})[s]??"":N.current.generalQuery??"",[T,r]=l.useState("results"),[i,g]=l.useState(0),[w,F]=l.useState(!1),[P,V]=l.useState(!1),[H,K]=l.useState(()=>(N.current.openTabs??[]).map(c=>{var m;return{id:`${c.connectionId}:${c.database}`,connectionId:c.connectionId,connectionName:((m=f.find(A=>A.id===c.connectionId))==null?void 0:m.name)??c.connectionId,database:c.database}})),[C,k]=l.useState(N.current.activeTabId??null),[q,$]=l.useState(()=>{const s=N.current.queries??{};return N.current.generalQuery,s}),[h,E]=l.useState(U(C)),z=l.useCallback(s=>{E(c=>{const m=typeof s=="function"?s(c):s;return $(A=>{const Q={...A};return C&&(Q[C]=m),Q}),m})},[C]),b=y.activeConnectionId??N.current.connectionId??((Y=a.database)==null?void 0:Y.activeConnectionId)??((Z=f[0])==null?void 0:Z.id),p=y.activeDatabase??N.current.database??((X=a.database)==null?void 0:X.activeDatabase),t=f.find(s=>s.id===b),o=b&&p?`${b}:${p}`:"",v=o?y.tables.get(o)??[]:[],S=l.useMemo(()=>{const s=new Map;return!b||!p||v.forEach(c=>{const m=y.tableSchemas.get(`${b}:${p}:${c.name}`);m&&s.set(c.name,{columns:m.columns})}),s},[b,p,v,y.tableSchemas]),J=l.useCallback((s,c)=>{var Q;const m=I(s,c),A=((Q=f.find(M=>M.id===s))==null?void 0:Q.name)??s;K(M=>{if(M.some(de=>de.id===m))return M;const ie={id:m,connectionId:s,connectionName:A,database:c};return[...M,ie]}),k(m),E(q[m]??""),u.setActiveConnection(a.id,s),u.setActiveDatabase(a.id,c)},[a.id,f,q]),se=l.useCallback(s=>{K(c=>c.filter(m=>m.id!==s)),C===s&&K(c=>{if(c.length>0){const m=c[0];k(m.id),E(q[m.id]??""),u.setActiveConnection(a.id,m.connectionId),u.setActiveDatabase(a.id,m.database)}else k(null),E("");return c})},[C,a.id,q]),te=l.useCallback(s=>{k(s.id),E(q[s.id]??""),u.setActiveConnection(a.id,s.connectionId),u.setActiveDatabase(a.id,s.database)},[a.id,q]);l.useEffect(()=>{if(!P&&f.length>0){const s=N.current;s.connectionId&&f.some(c=>c.id===s.connectionId)&&(u.setActiveConnection(a.id,s.connectionId),u.listDatabases(a.id,s.connectionId),s.database&&(u.setActiveDatabase(a.id,s.database),u.listTables(a.id,s.connectionId,s.database))),V(!0)}},[a.id,f,P]),l.useEffect(()=>{u.requestQueryHistory(a.id)},[a.id]),l.useEffect(()=>{const s=c=>{c.key==="Escape"&&(c.preventDefault(),c.stopPropagation(),j())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[j]),l.useEffect(()=>{P&&b&&Se(a.id,{connectionId:b,database:p,lastQuery:h,queries:q,generalQuery:"",openTabs:H.map(s=>({connectionId:s.connectionId,database:s.database})),activeTabId:C??void 0})},[a.id,b,p,h,P,H,C,q]);const ne=l.useCallback(s=>{var c;if(!(!b||!p||!h.trim()||R))if(s==="cursor"){const m=(c=O.current)==null?void 0:c.querySelector(".query-editor__textarea"),A=(m==null?void 0:m.selectionStart)??x.current,Q=_e(h,A);Q&&u.executeQuery(a.id,b,p,Q)}else{const m=pe(h);if(m.length<=1)u.executeQuery(a.id,b,p,h.trim());else{const A=b,Q=p;(async()=>{for(const M of m)await u.executeQueryAndWait(a.id,A,Q,M.sql)})()}}},[a.id,b,p,h,R]),re=l.useCallback(s=>{z(s),r("results")},[]),le=l.useCallback(s=>{u.setActiveConnection(a.id,s),u.listDatabases(a.id,s)},[a.id]),ce=l.useCallback(s=>{b&&(J(b,s),u.listTables(a.id,b,s))},[a.id,b,J]),B=_[i];return f.length===0?e.jsxs("div",{className:"database-panel",ref:O,children:[e.jsxs("div",{className:"database-panel__header",children:[e.jsxs("div",{className:"database-panel__title",children:[e.jsx("span",{className:"database-panel__icon",children:e.jsx(L,{name:"database",size:16})}),e.jsx("span",{className:"database-panel__name",children:a.name})]}),e.jsx("button",{className:"database-panel__close",onClick:j,children:"×"})]}),e.jsx("div",{className:"database-panel__body",children:e.jsxs("div",{className:"database-panel__no-connections",children:[e.jsx("div",{className:"database-panel__no-connections-icon",children:e.jsx(L,{name:"plug",size:32})}),e.jsx("h3",{children:n("terminal:database.noConnections")}),e.jsx("p",{children:n("terminal:database.noConnectionsDesc")}),e.jsx("p",{children:n("terminal:database.toGetStarted")}),e.jsxs("ol",{children:[e.jsx("li",{children:n("terminal:database.step1Close")}),e.jsx("li",{children:n("terminal:database.step2Settings")}),e.jsx("li",{children:n("terminal:database.step3AddConnection")}),e.jsx("li",{children:n("terminal:database.step4Reopen")})]})]})})]}):e.jsxs("div",{className:"database-panel",ref:O,children:[e.jsxs("div",{className:"database-panel__header",children:[e.jsxs("div",{className:"database-panel__title",children:[e.jsx("span",{className:"database-panel__icon",children:(t==null?void 0:t.engine)==="mysql"?"🐬":"🐘"}),e.jsx("span",{className:"database-panel__name",children:a.name}),t&&e.jsxs("span",{className:"database-panel__connection-info",children:[t.name," / ",p||n("terminal:database.noDatabaseSelected")]})]}),e.jsxs("div",{className:"database-panel__header-actions",children:[d&&e.jsx("button",{className:"database-panel__close",onClick:d,title:"Minimize — dock below the terminal input",children:e.jsx(L,{name:"arrow-down",size:14})}),e.jsx("button",{className:"database-panel__close",onClick:j,children:"×"})]})]}),e.jsxs("div",{className:"database-panel__body",children:[e.jsx(je,{building:a,connections:f,activeConnectionId:b,activeDatabase:p,collapsed:w,onToggleCollapse:()=>F(!w),onConnectionChange:le,onDatabaseChange:ce,onInsertTable:s=>z(c=>c+` ${s}`),onSelectTableQuery:s=>{const c=`SELECT * FROM ${s}`;z(c),b&&p&&u.executeQuery(a.id,b,p,c)}}),e.jsxs("div",{className:"database-panel__main",children:[H.length>0&&e.jsx(Ne,{tabs:H,activeTabId:C,onTabClick:te,onTabClose:se}),e.jsx(xe,{query:h,onChange:z,onExecute:ne,isExecuting:R,disabled:!b||!p,tables:v,tableSchemas:S,onRequestTableSchema:s=>{b&&p&&u.getTableSchema(a.id,b,p,s)}}),e.jsxs("div",{className:"database-panel__tabs",children:[e.jsxs("button",{className:`database-panel__tab ${T==="results"?"database-panel__tab--active":""}`,onClick:()=>r("results"),children:[n("terminal:database.results"),_.length>0&&e.jsx("span",{className:"database-panel__tab-badge",children:_.length})]}),e.jsxs("button",{className:`database-panel__tab ${T==="history"?"database-panel__tab--active":""}`,onClick:()=>r("history"),children:[n("terminal:database.history"),D.length>0&&e.jsx("span",{className:"database-panel__tab-badge",children:D.length})]}),T==="results"&&_.length>1&&e.jsxs("div",{className:"database-panel__result-nav",children:[e.jsxs("button",{disabled:i>=_.length-1,onClick:()=>g(s=>s+1),children:["← ",n("terminal:database.older")]}),e.jsxs("span",{children:[i+1," / ",_.length]}),e.jsxs("button",{disabled:i<=0,onClick:()=>g(s=>s-1),children:[n("terminal:database.newer")," →"]})]})]}),e.jsx("div",{className:"database-panel__tab-content",children:T==="results"?B?e.jsx(fe,{result:B,buildingId:a.id,building:a}):e.jsxs("div",{className:"database-panel__empty",children:[e.jsx("p",{children:n("terminal:database.noResultsYet")}),e.jsx("p",{children:n("terminal:database.selectDbAndRun")})]}):e.jsx(ye,{buildingId:a.id,history:D,onLoadQuery:re})})]})]})]})};export{we as DatabasePanel,je as DatabaseSidebar,Ne as DatabaseTabs,xe as QueryEditor,ye as QueryHistoryPanel,fe as ResultsTable};
1
+ import{u as G,aN as ee,r as l,s as u,j as e,aO as oe,I as L,Z as me,aP as be,aQ as ue,aR as he,aS as _e,aT as pe,aU as xe,aV as fe}from"./main-CICvC5Bz.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";const je=({building:a,connections:j,activeConnectionId:d,activeDatabase:n,collapsed:y,onToggleCollapse:_,onConnectionChange:D,onDatabaseChange:R,onInsertTable:N,onSelectTableQuery:O})=>{const{t:x}=G(["terminal"]),f=ee(a.id),[I,U]=l.useState(new Set),[T,r]=l.useState(""),[i,g]=l.useState(""),[w,F]=l.useState(!1),[P,V]=l.useState(null),H=l.useRef(null),K=l.useRef(null),C=l.useRef(null),k=d?f.databases.get(d)??[]:[],q=d&&n?`${d}:${n}`:"",$=q?f.tables.get(q)??[]:[],h=d?f.connectionStatus.get(d):void 0,E=l.useMemo(()=>{if(!T.trim())return k;const t=T.toLowerCase();return k.filter(o=>o.toLowerCase().includes(t))},[k,T]),z=l.useMemo(()=>{if(!i.trim())return $;const t=i.toLowerCase();return $.filter(o=>o.name.toLowerCase().includes(t))},[$,i]);l.useEffect(()=>{const t=o=>{K.current&&!K.current.contains(o.target)&&F(!1)};return w&&document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[w]),l.useEffect(()=>{d&&!h&&u.testDatabaseConnection(a.id,d)},[a.id,d,h]),l.useEffect(()=>{d&&(h!=null&&h.connected)&&k.length===0&&u.listDatabases(a.id,d)},[a.id,d,h==null?void 0:h.connected,k.length]),l.useEffect(()=>{d&&n&&$.length===0&&u.listTables(a.id,d,n)},[a.id,d,n,$.length]),l.useEffect(()=>{V(null),g("")},[d,n]);const b=l.useCallback(t=>{U(o=>{const v=new Set(o);if(v.has(t))v.delete(t);else if(v.add(t),d&&n){const S=`${d}:${n}:${t}`;f.tableSchemas.has(S)||u.getTableSchema(a.id,d,n,t)}return v})},[a.id,d,n,f.tableSchemas]),p=t=>{if(!d||!n)return null;const o=`${d}:${n}:${t}`;return f.tableSchemas.get(o)};return y?e.jsx("div",{className:"database-sidebar database-sidebar--collapsed",children:e.jsx("button",{className:"database-sidebar__toggle",onClick:_,title:x("terminal:database.expandSidebar"),children:"»"})}):e.jsxs("div",{className:"database-sidebar",children:[e.jsxs("div",{className:"database-sidebar__header",children:[e.jsx("span",{children:x("terminal:database.explorer")}),e.jsx("button",{className:"database-sidebar__toggle",onClick:_,title:x("terminal:database.collapseSidebar"),children:"«"})]}),e.jsxs("div",{className:"database-sidebar__section",children:[e.jsx("div",{className:"database-sidebar__section-title",children:x("terminal:database.connection")}),e.jsx("select",{className:"database-sidebar__select",value:d||"",onChange:t=>D(t.target.value),children:j.length===0?e.jsx("option",{value:"",children:x("terminal:database.noConnections")}):j.map(t=>{var o;return e.jsxs("option",{value:t.id,children:[((o=oe[t.engine])==null?void 0:o.icon)??"🗄️"," ",t.name]},t.id)})}),h&&e.jsx("div",{className:`database-sidebar__status ${h.connected?"database-sidebar__status--connected":"database-sidebar__status--error"}`,children:h.connected?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"database-sidebar__status-icon",children:"✓"}),x("terminal:database.connected"),h.serverVersion&&e.jsxs("span",{className:"database-sidebar__version",children:["(",h.serverVersion,")"]})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"database-sidebar__status-icon",children:"✗"}),h.error||x("terminal:database.disconnected")]})})]}),k.length>0&&e.jsxs("div",{className:"database-sidebar__section",children:[e.jsx("div",{className:"database-sidebar__section-title",children:x("terminal:database.databaseTitle")}),e.jsxs("div",{className:"database-sidebar__searchable-select",ref:K,children:[e.jsx("input",{ref:H,className:"database-sidebar__search-input",type:"text",value:w?T:n||"",placeholder:x("terminal:database.selectDatabase"),onChange:t=>{r(t.target.value),w||F(!0)},onFocus:()=>{F(!0),r("")},onKeyDown:t=>{var o,v;t.key==="Escape"?(F(!1),r(""),(o=H.current)==null||o.blur()):t.key==="Enter"&&E.length===1&&(R(E[0]),F(!1),r(""),(v=H.current)==null||v.blur())}}),w&&e.jsx("div",{className:"database-sidebar__dropdown",children:E.length===0?e.jsx("div",{className:"database-sidebar__dropdown-empty",children:"No matches"}):E.map(t=>e.jsx("div",{className:`database-sidebar__dropdown-item ${t===n?"database-sidebar__dropdown-item--active":""}`,onMouseDown:o=>{o.preventDefault(),R(t),F(!1),r("")},children:t},t))})]})]}),$.length>0&&e.jsxs("div",{className:"database-sidebar__section database-sidebar__section--tables",children:[e.jsx("div",{className:"database-sidebar__section-title",children:i.trim()?x("terminal:database.tablesCount",{count:z.length})+` / ${$.length}`:x("terminal:database.tablesCount",{count:$.length})}),e.jsxs("div",{className:"database-sidebar__table-filter",children:[e.jsx("input",{ref:C,className:"database-sidebar__table-filter-input",type:"text",value:i,placeholder:x("terminal:database.filterTables"),onChange:t=>g(t.target.value),onKeyDown:t=>{var o;t.key==="Escape"&&(i?g(""):(o=C.current)==null||o.blur(),t.stopPropagation())}}),i&&e.jsx("button",{className:"database-sidebar__table-filter-clear",onClick:()=>{var t;g(""),(t=C.current)==null||t.focus()},title:"Clear filter",children:"×"})]}),e.jsxs("div",{className:"database-sidebar__tables",children:[i.trim()&&z.length===0&&e.jsx("div",{className:"database-sidebar__tables-empty",children:x("terminal:database.noTablesMatch")}),z.map(t=>{const o=I.has(t.name),v=o?p(t.name):null;return e.jsxs("div",{className:"database-sidebar__table",children:[e.jsxs("div",{className:"database-sidebar__table-header",children:[e.jsx("button",{className:"database-sidebar__table-expand",onClick:()=>b(t.name),title:o?"Collapse table schema":"Expand table schema",children:e.jsx(L,{name:o?"caret-down":"caret-right",size:10})}),e.jsx("span",{className:"database-sidebar__table-icon",children:e.jsx(L,{name:t.type==="view"?"eye":"clipboard",size:12})}),e.jsx("span",{className:`database-sidebar__table-name ${P===t.name?"database-sidebar__table-name--selected":""}`,onClick:()=>V(t.name),onDoubleClick:()=>{V(t.name),O(t.name)},children:t.name}),e.jsx("button",{className:"database-sidebar__table-insert",onClick:S=>{S.stopPropagation(),N(t.name)},title:x("terminal:database.insertTableName"),children:"+"})]}),o&&v&&e.jsx("div",{className:"database-sidebar__table-columns",children:v.columns.map(S=>e.jsxs("div",{className:"database-sidebar__column",onClick:()=>N(S.name),title:`${S.type}${S.nullable?" NULL":" NOT NULL"}${S.primaryKey?" PK":""}`,children:[e.jsx("span",{className:"database-sidebar__column-icon",children:S.primaryKey?e.jsx(L,{name:"key",size:11}):null}),e.jsx("span",{className:"database-sidebar__column-name",children:S.name}),e.jsx("span",{className:"database-sidebar__column-type",children:S.type})]},S.name))})]},t.name)})]})]})]})},ye=({buildingId:a,history:j,onLoadQuery:d})=>{const{t:n}=G(["terminal","common"]),[y,_]=l.useState(""),[D,R]=l.useState(!1),[N,O]=l.useState(!1),x=l.useMemo(()=>{let r=j;if(D&&(r=r.filter(i=>i.favorite)),y.trim()){const i=y.toLowerCase();r=r.filter(g=>g.query.toLowerCase().includes(i)||g.database.toLowerCase().includes(i))}return r},[j,D,y]),f=r=>{const i=new Date(r),w=new Date().getTime()-i.getTime();return w<1440*60*1e3?i.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):w<10080*60*1e3?i.toLocaleDateString([],{weekday:"short"})+" "+i.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):i.toLocaleDateString([],{month:"short",day:"numeric"})},I=l.useCallback((r,i)=>{i.stopPropagation(),u.toggleQueryFavorite(a,r)},[a]),U=l.useCallback((r,i)=>{i.stopPropagation(),u.deleteQueryFromHistory(a,r)},[a]),T=l.useCallback(()=>{O(!0)},[]);return j.length===0?e.jsxs("div",{className:"query-history query-history--empty",children:[e.jsx("p",{children:n("terminal:database.noHistory")}),e.jsx("p",{children:n("terminal:database.queriesAppearHere")})]}):e.jsxs("div",{className:"query-history",children:[e.jsxs("div",{className:"query-history__toolbar",children:[e.jsx("input",{type:"text",className:"query-history__search",placeholder:n("terminal:database.searchQueries"),value:y,onChange:r=>_(r.target.value)}),e.jsxs("label",{className:"query-history__filter",children:[e.jsx("input",{type:"checkbox",checked:D,onChange:r=>R(r.target.checked)}),n("terminal:database.favoritesOnly")]}),e.jsx("button",{className:"query-history__clear",onClick:T,title:n("terminal:database.clearAll"),children:n("terminal:database.clearAll")})]}),e.jsxs("div",{className:"query-history__list",children:[x.map(r=>e.jsxs("div",{className:`query-history__item ${r.status==="error"?"query-history__item--error":""}`,onClick:()=>d(r.query),children:[e.jsxs("div",{className:"query-history__item-header",children:[e.jsx("span",{className:`query-history__status ${r.status==="success"?"query-history__status--success":"query-history__status--error"}`,children:e.jsx(L,{name:r.status==="success"?"check":"cross",size:12})}),e.jsx("span",{className:"query-history__database",children:r.database}),e.jsx("span",{className:"query-history__date",children:f(r.executedAt)}),e.jsxs("span",{className:"query-history__duration",children:[r.duration,"ms"]}),r.rowCount!==void 0&&e.jsx("span",{className:"query-history__row-count",children:n("terminal:database.rowCount",{count:r.rowCount})})]}),e.jsx("div",{className:"query-history__query",children:e.jsx("code",{children:r.query.length>200?r.query.substring(0,200)+"...":r.query})}),r.error&&e.jsx("div",{className:"query-history__error",children:r.error}),e.jsxs("div",{className:"query-history__actions",children:[e.jsx("button",{className:`query-history__favorite ${r.favorite?"query-history__favorite--active":""}`,onClick:i=>I(r.id,i),title:r.favorite?n("terminal:database.removeFromFavorites"):n("terminal:database.addToFavorites"),children:e.jsx(L,{name:"star",size:12,weight:r.favorite?"fill":"regular",color:r.favorite?"#facc15":void 0})}),e.jsx("button",{className:"query-history__delete",onClick:i=>U(r.id,i),title:n("terminal:database.deleteFromHistory"),children:e.jsx(L,{name:"trash",size:12})})]})]},r.id)),x.length===0&&e.jsx("div",{className:"query-history__no-results",children:n("terminal:database.noQueriesMatch")})]}),e.jsx(me,{isOpen:N,title:n("terminal:database.clearAll"),message:n("terminal:database.confirmClearHistory"),confirmLabel:n("terminal:database.clearAll"),cancelLabel:n("common:buttons.cancel"),variant:"danger",onConfirm:()=>u.clearQueryHistory(a),onClose:()=>O(!1)})]})},Ne=({tabs:a,activeTabId:j,onTabClick:d,onTabClose:n})=>{const{t:y}=G(["terminal"]);return e.jsx("div",{className:"database-tabs",children:a.map(_=>e.jsxs("div",{className:`database-tabs__tab ${j===_.id?"database-tabs__tab--active":""}`,children:[e.jsxs("button",{className:"database-tabs__tab-label",onClick:()=>d(_),title:`${_.connectionName} / ${_.database}`,children:[_.database,e.jsx("span",{className:"database-tabs__tab-connection",children:_.connectionName})]}),e.jsx("button",{className:"database-tabs__tab-close",onClick:()=>n(_.id),title:y("terminal:database.closeTab"),"aria-label":`Close ${_.database} tab`,children:"×"})]},_.id))})},ae=a=>`db-panel-${a}`;function ve(a){try{const j=localStorage.getItem(ae(a));return j?JSON.parse(j):{}}catch{return{}}}function Se(a,j){try{localStorage.setItem(ae(a),JSON.stringify(j))}catch{}}const we=({building:a,onClose:j,onMinimize:d})=>{var W,Y,Z,X;const{t:n}=G(["terminal","common"]),y=ee(a.id),_=be(a.id),D=ue(a.id),R=he(a.id),N=l.useRef(ve(a.id)),O=l.useRef(null),x=l.useRef(0),f=((W=a.database)==null?void 0:W.connections)??[],I=(s,c)=>`${s}:${c}`,U=s=>s?(N.current.queries??{})[s]??"":N.current.generalQuery??"",[T,r]=l.useState("results"),[i,g]=l.useState(0),[w,F]=l.useState(!1),[P,V]=l.useState(!1),[H,K]=l.useState(()=>(N.current.openTabs??[]).map(c=>{var m;return{id:`${c.connectionId}:${c.database}`,connectionId:c.connectionId,connectionName:((m=f.find(A=>A.id===c.connectionId))==null?void 0:m.name)??c.connectionId,database:c.database}})),[C,k]=l.useState(N.current.activeTabId??null),[q,$]=l.useState(()=>{const s=N.current.queries??{};return N.current.generalQuery,s}),[h,E]=l.useState(U(C)),z=l.useCallback(s=>{E(c=>{const m=typeof s=="function"?s(c):s;return $(A=>{const Q={...A};return C&&(Q[C]=m),Q}),m})},[C]),b=y.activeConnectionId??N.current.connectionId??((Y=a.database)==null?void 0:Y.activeConnectionId)??((Z=f[0])==null?void 0:Z.id),p=y.activeDatabase??N.current.database??((X=a.database)==null?void 0:X.activeDatabase),t=f.find(s=>s.id===b),o=b&&p?`${b}:${p}`:"",v=o?y.tables.get(o)??[]:[],S=l.useMemo(()=>{const s=new Map;return!b||!p||v.forEach(c=>{const m=y.tableSchemas.get(`${b}:${p}:${c.name}`);m&&s.set(c.name,{columns:m.columns})}),s},[b,p,v,y.tableSchemas]),J=l.useCallback((s,c)=>{var Q;const m=I(s,c),A=((Q=f.find(M=>M.id===s))==null?void 0:Q.name)??s;K(M=>{if(M.some(de=>de.id===m))return M;const ie={id:m,connectionId:s,connectionName:A,database:c};return[...M,ie]}),k(m),E(q[m]??""),u.setActiveConnection(a.id,s),u.setActiveDatabase(a.id,c)},[a.id,f,q]),se=l.useCallback(s=>{K(c=>c.filter(m=>m.id!==s)),C===s&&K(c=>{if(c.length>0){const m=c[0];k(m.id),E(q[m.id]??""),u.setActiveConnection(a.id,m.connectionId),u.setActiveDatabase(a.id,m.database)}else k(null),E("");return c})},[C,a.id,q]),te=l.useCallback(s=>{k(s.id),E(q[s.id]??""),u.setActiveConnection(a.id,s.connectionId),u.setActiveDatabase(a.id,s.database)},[a.id,q]);l.useEffect(()=>{if(!P&&f.length>0){const s=N.current;s.connectionId&&f.some(c=>c.id===s.connectionId)&&(u.setActiveConnection(a.id,s.connectionId),u.listDatabases(a.id,s.connectionId),s.database&&(u.setActiveDatabase(a.id,s.database),u.listTables(a.id,s.connectionId,s.database))),V(!0)}},[a.id,f,P]),l.useEffect(()=>{u.requestQueryHistory(a.id)},[a.id]),l.useEffect(()=>{const s=c=>{c.key==="Escape"&&(c.preventDefault(),c.stopPropagation(),j())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[j]),l.useEffect(()=>{P&&b&&Se(a.id,{connectionId:b,database:p,lastQuery:h,queries:q,generalQuery:"",openTabs:H.map(s=>({connectionId:s.connectionId,database:s.database})),activeTabId:C??void 0})},[a.id,b,p,h,P,H,C,q]);const ne=l.useCallback(s=>{var c;if(!(!b||!p||!h.trim()||R))if(s==="cursor"){const m=(c=O.current)==null?void 0:c.querySelector(".query-editor__textarea"),A=(m==null?void 0:m.selectionStart)??x.current,Q=_e(h,A);Q&&u.executeQuery(a.id,b,p,Q)}else{const m=pe(h);if(m.length<=1)u.executeQuery(a.id,b,p,h.trim());else{const A=b,Q=p;(async()=>{for(const M of m)await u.executeQueryAndWait(a.id,A,Q,M.sql)})()}}},[a.id,b,p,h,R]),re=l.useCallback(s=>{z(s),r("results")},[]),le=l.useCallback(s=>{u.setActiveConnection(a.id,s),u.listDatabases(a.id,s)},[a.id]),ce=l.useCallback(s=>{b&&(J(b,s),u.listTables(a.id,b,s))},[a.id,b,J]),B=_[i];return f.length===0?e.jsxs("div",{className:"database-panel",ref:O,children:[e.jsxs("div",{className:"database-panel__header",children:[e.jsxs("div",{className:"database-panel__title",children:[e.jsx("span",{className:"database-panel__icon",children:e.jsx(L,{name:"database",size:16})}),e.jsx("span",{className:"database-panel__name",children:a.name})]}),e.jsx("button",{className:"database-panel__close",onClick:j,children:"×"})]}),e.jsx("div",{className:"database-panel__body",children:e.jsxs("div",{className:"database-panel__no-connections",children:[e.jsx("div",{className:"database-panel__no-connections-icon",children:e.jsx(L,{name:"plug",size:32})}),e.jsx("h3",{children:n("terminal:database.noConnections")}),e.jsx("p",{children:n("terminal:database.noConnectionsDesc")}),e.jsx("p",{children:n("terminal:database.toGetStarted")}),e.jsxs("ol",{children:[e.jsx("li",{children:n("terminal:database.step1Close")}),e.jsx("li",{children:n("terminal:database.step2Settings")}),e.jsx("li",{children:n("terminal:database.step3AddConnection")}),e.jsx("li",{children:n("terminal:database.step4Reopen")})]})]})})]}):e.jsxs("div",{className:"database-panel",ref:O,children:[e.jsxs("div",{className:"database-panel__header",children:[e.jsxs("div",{className:"database-panel__title",children:[e.jsx("span",{className:"database-panel__icon",children:(t==null?void 0:t.engine)==="mysql"?"🐬":"🐘"}),e.jsx("span",{className:"database-panel__name",children:a.name}),t&&e.jsxs("span",{className:"database-panel__connection-info",children:[t.name," / ",p||n("terminal:database.noDatabaseSelected")]})]}),e.jsxs("div",{className:"database-panel__header-actions",children:[d&&e.jsx("button",{className:"database-panel__close",onClick:d,title:"Minimize — dock below the terminal input",children:e.jsx(L,{name:"arrow-down",size:14})}),e.jsx("button",{className:"database-panel__close",onClick:j,children:"×"})]})]}),e.jsxs("div",{className:"database-panel__body",children:[e.jsx(je,{building:a,connections:f,activeConnectionId:b,activeDatabase:p,collapsed:w,onToggleCollapse:()=>F(!w),onConnectionChange:le,onDatabaseChange:ce,onInsertTable:s=>z(c=>c+` ${s}`),onSelectTableQuery:s=>{const c=`SELECT * FROM ${s}`;z(c),b&&p&&u.executeQuery(a.id,b,p,c)}}),e.jsxs("div",{className:"database-panel__main",children:[H.length>0&&e.jsx(Ne,{tabs:H,activeTabId:C,onTabClick:te,onTabClose:se}),e.jsx(xe,{query:h,onChange:z,onExecute:ne,isExecuting:R,disabled:!b||!p,tables:v,tableSchemas:S,onRequestTableSchema:s=>{b&&p&&u.getTableSchema(a.id,b,p,s)}}),e.jsxs("div",{className:"database-panel__tabs",children:[e.jsxs("button",{className:`database-panel__tab ${T==="results"?"database-panel__tab--active":""}`,onClick:()=>r("results"),children:[n("terminal:database.results"),_.length>0&&e.jsx("span",{className:"database-panel__tab-badge",children:_.length})]}),e.jsxs("button",{className:`database-panel__tab ${T==="history"?"database-panel__tab--active":""}`,onClick:()=>r("history"),children:[n("terminal:database.history"),D.length>0&&e.jsx("span",{className:"database-panel__tab-badge",children:D.length})]}),T==="results"&&_.length>1&&e.jsxs("div",{className:"database-panel__result-nav",children:[e.jsxs("button",{disabled:i>=_.length-1,onClick:()=>g(s=>s+1),children:["← ",n("terminal:database.older")]}),e.jsxs("span",{children:[i+1," / ",_.length]}),e.jsxs("button",{disabled:i<=0,onClick:()=>g(s=>s-1),children:[n("terminal:database.newer")," →"]})]})]}),e.jsx("div",{className:"database-panel__tab-content",children:T==="results"?B?e.jsx(fe,{result:B,buildingId:a.id,building:a}):e.jsxs("div",{className:"database-panel__empty",children:[e.jsx("p",{children:n("terminal:database.noResultsYet")}),e.jsx("p",{children:n("terminal:database.selectDbAndRun")})]}):e.jsx(ye,{buildingId:a.id,history:D,onLoadQuery:re})})]})]})]})};export{we as DatabasePanel,je as DatabaseSidebar,Ne as DatabaseTabs,xe as QueryEditor,ye as QueryHistoryPanel,fe as ResultsTable};
@@ -1 +1 @@
1
- import{U as ts,u as rs,aa as _s,ab as bs,ac as Is,j as s,I as B,n as Es,ad as $s,ae as Ds,af as Ms,ag as Ls,ah as Ps,r as o,ai as Ss,z as Xs,f as Ys,a0 as Rs,aj as Gs,ak as Us,al as Fs,am as Hs,an as Zs,ao as Bs,s as M,ap as Ks,aq as G}from"./main-Dk3qq80S.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";const vs=ts.memo(({agent:a,isSelected:z,isKeyboardFocused:U=!1,onSelect:L,onDoubleClick:r,onChat:p,onFocus:h,onKill:w,onDragStart:P})=>{const{t:x}=rs(["dashboard","common"]),S=_s().has(a.id),N=bs(a.status),F=Is(a),j=Ps(F),I=a.taskLabel?s.jsxs(s.Fragment,{children:[s.jsx(B,{name:"task",size:12})," ",a.taskLabel]}):a.currentTask||a.lastAssignedTask,m=a.status==="idle"&&a.lastActivity>0,[,H]=ts.useState(0);return ts.useEffect(()=>{if(!m)return;const v=window.setInterval(()=>H(q=>q+1),15e3);return()=>window.clearInterval(v)},[m]),s.jsxs("div",{className:`dash-card dash-card--${N} ${z?"dash-card--selected":""} ${U?"dash-card--keyboard-focused":""}`,"data-agent-id":a.id,onClick:()=>L(a.id),onDoubleClick:v=>{v.stopPropagation(),r(a.id)},onDragStart:v=>{P==null||P(a),v.dataTransfer.effectAllowed="move"},draggable:!0,title:x("cards.doubleClickHint"),children:[s.jsxs("div",{className:"dash-card__row1",children:[s.jsx("span",{className:`dash-card__status-dot dash-card__status-dot--${N}`}),s.jsx("span",{className:"dash-card__name",children:a.name}),s.jsxs("span",{className:"dash-card__class",children:[s.jsx(Es,{agent:a,size:14})," ",a.class]}),s.jsxs("span",{className:`dash-card__provider dash-card__provider--${a.provider}`,children:[s.jsx($s,{agent:a,alt:"",className:"dash-card__provider-icon"})," ",a.provider]}),S&&s.jsx("span",{className:"dash-card__unseen-badge",title:"New output available - click to view",children:"!"})]}),s.jsxs("div",{className:"dash-card__row2",children:[s.jsx("span",{className:`dash-card__status dash-card__status--${N}`,children:S?"Unseen":a.status}),s.jsxs("div",{className:"dash-card__context",children:[s.jsx("div",{className:"dash-card__context-bar",children:s.jsx("div",{className:`dash-card__context-fill dash-card__context-fill--${j}`,style:{width:`${F}%`}})}),s.jsxs("span",{className:`dash-card__context-pct dash-card__context-pct--${j}`,children:[F,"%"]})]})]}),s.jsxs("div",{className:"dash-card__row3",children:[s.jsxs("span",{className:"dash-card__workdir",title:a.cwd,children:[s.jsx(B,{name:"folder",size:11})," ",a.cwd.split("/").pop()||a.cwd]}),m&&s.jsxs("span",{className:"dash-card__idle-time",style:{color:Ls(a.lastActivity)},title:Ms(a.lastActivity),children:[s.jsx(B,{name:"status-waiting-input",size:10})," ",Ds(a.lastActivity)]})]}),I&&s.jsx("div",{className:"dash-card__row4",children:s.jsx("span",{className:"dash-card__task",children:I})}),s.jsxs("div",{className:"dash-card__actions",children:[p&&s.jsx("button",{className:"dash-card__action-btn dash-card__action-btn--chat",onClick:v=>{v.stopPropagation(),p(a.id)},title:x("cards.openTerminal"),children:x("cards.chat")}),w&&s.jsx("button",{className:"dash-card__action-btn dash-card__action-btn--danger",onClick:v=>{v.stopPropagation(),w(a.id)},title:x("cards.killAgent"),children:x("cards.stop")})]})]})});vs.displayName="AgentCard";const fs=({buildings:a,onSelectBuilding:z})=>{const{t:U}=rs(["dashboard"]),L=o.useMemo(()=>Array.from(a.values()).sort((r,p)=>r.name.localeCompare(p.name)),[a]);return s.jsxs("div",{className:"dashboard-view__buildings",children:[s.jsxs("div",{className:"dashboard-view__buildings-header",children:[s.jsx("span",{className:"dashboard-view__buildings-title",children:U("buildings.title")}),s.jsx("span",{className:"dashboard-view__buildings-count",children:L.length})]}),s.jsx("div",{className:"dashboard-view__buildings-row",children:L.map(r=>{const p=bs(r.status),h=Ss(r.type);return s.jsxs("button",{className:`dash-pill dash-pill--${p}`,onClick:()=>z==null?void 0:z(r.id),title:`${r.name} (${r.type}) - ${r.status}`,children:[s.jsx("span",{className:"dash-pill__icon",children:s.jsx(B,{name:h,size:14})}),s.jsx("span",{className:"dash-pill__name",children:r.name}),s.jsx("span",{className:`dash-pill__dot dash-pill__dot--${p}`})]},r.id)})})]})};fs.displayName="BuildingPills";function Js({onSelectAgent:a,onFocusAgent:z,onKillAgent:U,onSelectBuilding:L,onOpenTerminal:r,onFocusZone:p}){const{t:h}=rs(["dashboard","common"]),w=Xs(),P=Ys(),x=Rs(),ns=Gs(),S=_s(),[N,F]=o.useState(""),[j,I]=o.useState("all"),[m,H]=o.useState("zone"),[v,q]=o.useState(new Set),[k,J]=o.useState(null),[ws,K]=o.useState(null),[X,Q]=o.useState(!1),[g,Z]=o.useState(null),W=o.useMemo(()=>{const e=Array.from(w.values());return{total:e.length,working:e.filter(d=>d.status==="working"||d.status==="waiting"||d.status==="waiting_permission").length,idle:e.filter(d=>d.status==="idle").length,error:e.filter(d=>d.status==="error"||d.status==="offline"||d.status==="orphaned").length}},[w]),is=o.useMemo(()=>m==="zone"?Us(w,x):m==="status"?Fs(w,S):Hs(w),[w,x,m,S]),T=o.useMemo(()=>{const e=N.toLowerCase().trim(),d=is.map(l=>({...l,agents:l.agents.filter(_=>{if(j==="working"){if(_.status!=="working"&&_.status!=="waiting"&&_.status!=="waiting_permission")return!1}else if(j==="error"&&_.status!=="error"&&_.status!=="offline"&&_.status!=="orphaned")return!1;return!(e&&!_.name.toLowerCase().includes(e)&&!_.class.toLowerCase().includes(e))})}));return m==="zone"?d:d.filter(l=>l.agents.length>0)},[is,j,N,m]),O=o.useCallback(e=>e.area?`area:${e.area.id}`:`${m}:${e.label}`,[m]),ss=o.useMemo(()=>T.map(e=>({...e,sortedAgents:m==="status"?Zs(e.agents,{prioritizeRecentlyIdle:!0}):Bs(e.agents)})),[T,m]),C=o.useMemo(()=>{const e=[];return ss.forEach(d=>{const l=O(d);v.has(l)||e.push(...d.sortedAgents)}),e},[ss,v,O]),gs=o.useCallback(e=>{q(d=>{const l=new Set(d);return l.has(e)?l.delete(e):l.add(e),l})},[]),ps=o.useCallback(e=>{r==null||r(e)},[r]),xs=o.useCallback(e=>{a==null||a(e),Q(!0),Z(e)},[a]),js=o.useCallback(e=>{r==null||r(e)},[r]),Ns=o.useCallback(e=>{J(e)},[]),ks=o.useCallback((e,d)=>{e.preventDefault(),e.dataTransfer.dropEffect="move",K(d)},[]),Cs=o.useCallback(()=>{K(null)},[]),ys=o.useCallback(e=>{if(!k)return;if(e===null){const E=M.getState(),t=Array.from(E.areas.values()).find(n=>n.assignedAgentIds.includes(k.id));t&&M.unassignAgentFromArea(k.id,t.id),J(null),K(null);return}const d=x.get(e);if(!d)return;const l=Array.from(w.values()),_=Ks(d,l,k.position);M.updateAgent({...k,position:{...k.position,x:_.x,z:_.z}}),M.assignAgentToArea(k.id,e),J(null),K(null)},[k,x,w]);return o.useEffect(()=>{if(C.length===0){Q(!1),Z(null);return}X&&(!g||!C.some(e=>e.id===g))&&(Z(C[0].id),a==null||a(C[0].id))},[C,X,g,a]),o.useEffect(()=>{const e=t=>t instanceof HTMLElement?t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT"||t.isContentEditable:!1,d=t=>t instanceof HTMLElement?!!t.closest(".guake-terminal")||t.classList.contains("guake-input")||t.classList.contains("agent-panel-input"):!1,l=t=>{const n=Array.from(document.querySelectorAll(".dash-card[data-agent-id]")).find(A=>A.dataset.agentId===t);n==null||n.scrollIntoView({block:"nearest",inline:"nearest"})},_=(t,n)=>{var os,cs,ls,us,hs,ms;const A=Array.from(document.querySelectorAll(".dash-card[data-agent-id]")).map(i=>{const u=i.dataset.agentId;if(!u)return null;const y=i.getBoundingClientRect();return{id:u,centerX:y.left+y.width/2,centerY:y.top+y.height/2,height:y.height}}).filter(i=>i!==null).sort((i,u)=>i.centerY-u.centerY||i.centerX-u.centerX);if(A.length===0)return t;const es=A.reduce((i,u)=>i+u.height,0)/A.length,as=Math.max(18,es*.6),f=[];for(const i of A){const u=f[f.length-1];if(!u){f.push([{id:i.id,centerX:i.centerX,centerY:i.centerY}]);continue}const y=u.reduce((As,zs)=>As+zs.centerY,0)/u.length;Math.abs(i.centerY-y)<=as?u.push({id:i.id,centerX:i.centerX,centerY:i.centerY}):f.push([{id:i.id,centerX:i.centerX,centerY:i.centerY}])}f.forEach(i=>i.sort((u,y)=>u.centerX-y.centerX));const Y=f.findIndex(i=>i.some(u=>u.id===t));if(Y===-1)return((cs=(os=f[0])==null?void 0:os[0])==null?void 0:cs.id)??t;const $=f[Y],b=$.findIndex(i=>i.id===t);if(b===-1)return((us=(ls=f[0])==null?void 0:ls[0])==null?void 0:us.id)??t;if(n==="left")return((hs=$[Math.max(0,b-1)])==null?void 0:hs.id)??t;if(n==="right")return((ms=$[Math.min($.length-1,b+1)])==null?void 0:ms.id)??t;const V=n==="up"?Math.max(0,Y-1):Math.min(f.length-1,Y+1),c=f[V],R=$[b].centerX;let D=c[0],ds=Math.abs(D.centerX-R);for(const i of c){const u=Math.abs(i.centerX-R);u<ds&&(D=i,ds=u)}return(D==null?void 0:D.id)??t},E=t=>{const n=M.getShortcuts(),A=n.find(c=>c.id==="dashboard-selector-toggle"),es=n.find(c=>c.id==="dashboard-vim-left"),as=n.find(c=>c.id==="dashboard-vim-down"),f=n.find(c=>c.id==="dashboard-vim-up"),Y=n.find(c=>c.id==="dashboard-vim-right"),$=n.find(c=>c.id==="open-terminal"),b=M.getState();if(e(t.target))if(!b.terminalOpen&&d(t.target)&&document.activeElement instanceof HTMLElement)document.activeElement.blur();else return;if(G(t,A)){if(C.length===0)return;t.preventDefault(),t.stopPropagation(),Q(!0),Z(c=>{const R=c&&C.some(D=>D.id===c)?c:C[0].id;return a==null||a(R),window.setTimeout(()=>l(R),0),R});return}const V=G(t,es)||t.key==="ArrowLeft"?"left":G(t,as)||t.key==="ArrowDown"?"down":G(t,f)||t.key==="ArrowUp"?"up":G(t,Y)||t.key==="ArrowRight"?"right":null;if(V&&X&&g){t.preventDefault(),t.stopPropagation();const c=_(g,V);c!==g&&(Z(c),a==null||a(c),window.setTimeout(()=>l(c),0));return}if(G(t,$)){if(b.terminalOpen)return;if(X&&g&&b.agents.has(g)){t.preventDefault(),r==null||r(g);return}if(b.selectedAgentIds.size===1){t.preventDefault();const c=Array.from(b.selectedAgentIds)[0];r==null||r(c);return}if(b.lastSelectedAgentId&&b.agents.has(b.lastSelectedAgentId)){t.preventDefault(),r==null||r(b.lastSelectedAgentId);return}}};return document.addEventListener("keydown",E,!0),()=>document.removeEventListener("keydown",E,!0)},[C,X,g,r,a]),o.useEffect(()=>{const e=document.activeElement;e instanceof HTMLElement&&e.closest(".guake-terminal")&&!M.getState().terminalOpen&&e.blur()},[]),s.jsxs("div",{className:"dashboard-view",children:[s.jsxs("div",{className:"dashboard-view__topbar",children:[s.jsxs("div",{className:"dashboard-view__metrics",children:[s.jsxs("button",{className:`dashboard-view__metric-btn ${j==="all"?"dashboard-view__metric-btn--active":""}`,onClick:()=>I("all"),children:[s.jsx("span",{className:"dashboard-view__metric-value",children:W.total}),s.jsx("span",{className:"dashboard-view__metric-label",children:h("common:labels.agents")})]}),s.jsxs("button",{className:`dashboard-view__metric-btn dashboard-view__metric-btn--working ${j==="working"?"dashboard-view__metric-btn--active":""}`,onClick:()=>I("working"),children:[s.jsx("span",{className:"dashboard-view__metric-value",children:W.working}),s.jsx("span",{className:"dashboard-view__metric-label",children:h("common:status.working")})]}),s.jsxs("button",{className:"dashboard-view__metric-btn dashboard-view__metric-btn--idle ",onClick:()=>I("all"),children:[s.jsx("span",{className:"dashboard-view__metric-value",children:W.idle}),s.jsx("span",{className:"dashboard-view__metric-label",children:h("common:status.idle")})]}),s.jsxs("button",{className:`dashboard-view__metric-btn dashboard-view__metric-btn--error ${j==="error"?"dashboard-view__metric-btn--active":""}`,onClick:()=>I("error"),children:[s.jsx("span",{className:"dashboard-view__metric-value",children:W.error}),s.jsx("span",{className:"dashboard-view__metric-label",children:h("common:status.error")})]})]}),s.jsx("input",{className:"dashboard-view__search",type:"text",placeholder:h("searchPlaceholder"),value:N,onChange:e=>F(e.target.value)})]}),s.jsxs("div",{className:"dashboard-view__grouping",children:[s.jsx("button",{className:`dashboard-view__grouping-btn ${m==="zone"?"dashboard-view__grouping-btn--active":""}`,onClick:()=>H("zone"),children:h("grouping.byZone")}),s.jsx("button",{className:`dashboard-view__grouping-btn ${m==="status"?"dashboard-view__grouping-btn--active":""}`,onClick:()=>H("status"),children:h("grouping.byStatus")}),s.jsx("button",{className:`dashboard-view__grouping-btn ${m==="activity"?"dashboard-view__grouping-btn--active":""}`,onClick:()=>H("activity"),children:h("grouping.byActivity")})]}),s.jsxs("div",{className:"dashboard-view__content",children:[ss.map(e=>{const d=O(e),l=v.has(d),_=e.sortedAgents,E=e.agents.filter(n=>n.status==="working"||n.status==="waiting"||n.status==="waiting_permission").length,t=e.agents.filter(n=>S.has(n.id)).length;return s.jsxs("div",{className:`dashboard-view__zone ${ws===(e.area?e.area.id:null)&&k?"dashboard-view__zone--drag-over":""}`,onDragOver:n=>ks(n,e.area?e.area.id:null),onDragLeave:Cs,onDrop:()=>ys(e.area?e.area.id:null),children:[s.jsxs("div",{className:"dashboard-view__zone-header",onClick:()=>gs(d),children:[s.jsxs("div",{className:"dashboard-view__zone-left",children:[s.jsx("span",{className:`dashboard-view__zone-chevron ${l?"dashboard-view__zone-chevron--collapsed":""}`,children:s.jsx(B,{name:"caret-down",size:12})}),s.jsx("span",{className:"dashboard-view__zone-dot",style:{backgroundColor:e.color}}),s.jsx("span",{className:"dashboard-view__zone-name",children:e.label}),s.jsxs("span",{className:"dashboard-view__zone-count",children:[h("agentCount",{count:e.agents.length}),E>0&&s.jsxs("span",{className:"dashboard-view__zone-working",children:[" · ",E," ",h("working")]}),t>0&&s.jsxs("span",{className:"dashboard-view__zone-unseen",children:[" · ",t," Unseen"]})]})]}),e.area&&p&&s.jsx("button",{className:"dashboard-view__zone-focus",onClick:n=>{n.stopPropagation(),p(e.area.id)},title:h("focusZone"),children:h("focusZone")})]}),!l&&s.jsx("div",{className:"dashboard-view__zone-grid",children:_.map(n=>s.jsx(vs,{agent:n,isSelected:ns.has(n.id),isKeyboardFocused:X&&g===n.id,onSelect:xs,onDoubleClick:ps,onChat:js,onFocus:z,onKill:U,onDragStart:Ns},n.id))})]},d)}),T.length===0&&s.jsx("div",{className:"dashboard-view__empty",children:N?h("noAgentsMatching",{search:N}):h("noAgentsSpawned")}),P.size>0&&s.jsx(fs,{buildings:P,onSelectBuilding:L})]})]})}export{Js as DashboardView};
1
+ import{U as ts,u as rs,aa as _s,ab as bs,ac as Is,j as s,I as B,n as Es,ad as $s,ae as Ds,af as Ms,ag as Ls,ah as Ps,r as o,ai as Ss,z as Xs,f as Ys,a0 as Rs,aj as Gs,ak as Us,al as Fs,am as Hs,an as Zs,ao as Bs,s as M,ap as Ks,aq as G}from"./main-CICvC5Bz.js";import"./vendor-react--Eh9ivFN.js";import"./vendor-three-DYBBrXTx.js";const vs=ts.memo(({agent:a,isSelected:z,isKeyboardFocused:U=!1,onSelect:L,onDoubleClick:r,onChat:p,onFocus:h,onKill:w,onDragStart:P})=>{const{t:x}=rs(["dashboard","common"]),S=_s().has(a.id),N=bs(a.status),F=Is(a),j=Ps(F),I=a.taskLabel?s.jsxs(s.Fragment,{children:[s.jsx(B,{name:"task",size:12})," ",a.taskLabel]}):a.currentTask||a.lastAssignedTask,m=a.status==="idle"&&a.lastActivity>0,[,H]=ts.useState(0);return ts.useEffect(()=>{if(!m)return;const v=window.setInterval(()=>H(q=>q+1),15e3);return()=>window.clearInterval(v)},[m]),s.jsxs("div",{className:`dash-card dash-card--${N} ${z?"dash-card--selected":""} ${U?"dash-card--keyboard-focused":""}`,"data-agent-id":a.id,onClick:()=>L(a.id),onDoubleClick:v=>{v.stopPropagation(),r(a.id)},onDragStart:v=>{P==null||P(a),v.dataTransfer.effectAllowed="move"},draggable:!0,title:x("cards.doubleClickHint"),children:[s.jsxs("div",{className:"dash-card__row1",children:[s.jsx("span",{className:`dash-card__status-dot dash-card__status-dot--${N}`}),s.jsx("span",{className:"dash-card__name",children:a.name}),s.jsxs("span",{className:"dash-card__class",children:[s.jsx(Es,{agent:a,size:14})," ",a.class]}),s.jsxs("span",{className:`dash-card__provider dash-card__provider--${a.provider}`,children:[s.jsx($s,{agent:a,alt:"",className:"dash-card__provider-icon"})," ",a.provider]}),S&&s.jsx("span",{className:"dash-card__unseen-badge",title:"New output available - click to view",children:"!"})]}),s.jsxs("div",{className:"dash-card__row2",children:[s.jsx("span",{className:`dash-card__status dash-card__status--${N}`,children:S?"Unseen":a.status}),s.jsxs("div",{className:"dash-card__context",children:[s.jsx("div",{className:"dash-card__context-bar",children:s.jsx("div",{className:`dash-card__context-fill dash-card__context-fill--${j}`,style:{width:`${F}%`}})}),s.jsxs("span",{className:`dash-card__context-pct dash-card__context-pct--${j}`,children:[F,"%"]})]})]}),s.jsxs("div",{className:"dash-card__row3",children:[s.jsxs("span",{className:"dash-card__workdir",title:a.cwd,children:[s.jsx(B,{name:"folder",size:11})," ",a.cwd.split("/").pop()||a.cwd]}),m&&s.jsxs("span",{className:"dash-card__idle-time",style:{color:Ls(a.lastActivity)},title:Ms(a.lastActivity),children:[s.jsx(B,{name:"status-waiting-input",size:10})," ",Ds(a.lastActivity)]})]}),I&&s.jsx("div",{className:"dash-card__row4",children:s.jsx("span",{className:"dash-card__task",children:I})}),s.jsxs("div",{className:"dash-card__actions",children:[p&&s.jsx("button",{className:"dash-card__action-btn dash-card__action-btn--chat",onClick:v=>{v.stopPropagation(),p(a.id)},title:x("cards.openTerminal"),children:x("cards.chat")}),w&&s.jsx("button",{className:"dash-card__action-btn dash-card__action-btn--danger",onClick:v=>{v.stopPropagation(),w(a.id)},title:x("cards.killAgent"),children:x("cards.stop")})]})]})});vs.displayName="AgentCard";const fs=({buildings:a,onSelectBuilding:z})=>{const{t:U}=rs(["dashboard"]),L=o.useMemo(()=>Array.from(a.values()).sort((r,p)=>r.name.localeCompare(p.name)),[a]);return s.jsxs("div",{className:"dashboard-view__buildings",children:[s.jsxs("div",{className:"dashboard-view__buildings-header",children:[s.jsx("span",{className:"dashboard-view__buildings-title",children:U("buildings.title")}),s.jsx("span",{className:"dashboard-view__buildings-count",children:L.length})]}),s.jsx("div",{className:"dashboard-view__buildings-row",children:L.map(r=>{const p=bs(r.status),h=Ss(r.type);return s.jsxs("button",{className:`dash-pill dash-pill--${p}`,onClick:()=>z==null?void 0:z(r.id),title:`${r.name} (${r.type}) - ${r.status}`,children:[s.jsx("span",{className:"dash-pill__icon",children:s.jsx(B,{name:h,size:14})}),s.jsx("span",{className:"dash-pill__name",children:r.name}),s.jsx("span",{className:`dash-pill__dot dash-pill__dot--${p}`})]},r.id)})})]})};fs.displayName="BuildingPills";function Js({onSelectAgent:a,onFocusAgent:z,onKillAgent:U,onSelectBuilding:L,onOpenTerminal:r,onFocusZone:p}){const{t:h}=rs(["dashboard","common"]),w=Xs(),P=Ys(),x=Rs(),ns=Gs(),S=_s(),[N,F]=o.useState(""),[j,I]=o.useState("all"),[m,H]=o.useState("zone"),[v,q]=o.useState(new Set),[k,J]=o.useState(null),[ws,K]=o.useState(null),[X,Q]=o.useState(!1),[g,Z]=o.useState(null),W=o.useMemo(()=>{const e=Array.from(w.values());return{total:e.length,working:e.filter(d=>d.status==="working"||d.status==="waiting"||d.status==="waiting_permission").length,idle:e.filter(d=>d.status==="idle").length,error:e.filter(d=>d.status==="error"||d.status==="offline"||d.status==="orphaned").length}},[w]),is=o.useMemo(()=>m==="zone"?Us(w,x):m==="status"?Fs(w,S):Hs(w),[w,x,m,S]),T=o.useMemo(()=>{const e=N.toLowerCase().trim(),d=is.map(l=>({...l,agents:l.agents.filter(_=>{if(j==="working"){if(_.status!=="working"&&_.status!=="waiting"&&_.status!=="waiting_permission")return!1}else if(j==="error"&&_.status!=="error"&&_.status!=="offline"&&_.status!=="orphaned")return!1;return!(e&&!_.name.toLowerCase().includes(e)&&!_.class.toLowerCase().includes(e))})}));return m==="zone"?d:d.filter(l=>l.agents.length>0)},[is,j,N,m]),O=o.useCallback(e=>e.area?`area:${e.area.id}`:`${m}:${e.label}`,[m]),ss=o.useMemo(()=>T.map(e=>({...e,sortedAgents:m==="status"?Zs(e.agents,{prioritizeRecentlyIdle:!0}):Bs(e.agents)})),[T,m]),C=o.useMemo(()=>{const e=[];return ss.forEach(d=>{const l=O(d);v.has(l)||e.push(...d.sortedAgents)}),e},[ss,v,O]),gs=o.useCallback(e=>{q(d=>{const l=new Set(d);return l.has(e)?l.delete(e):l.add(e),l})},[]),ps=o.useCallback(e=>{r==null||r(e)},[r]),xs=o.useCallback(e=>{a==null||a(e),Q(!0),Z(e)},[a]),js=o.useCallback(e=>{r==null||r(e)},[r]),Ns=o.useCallback(e=>{J(e)},[]),ks=o.useCallback((e,d)=>{e.preventDefault(),e.dataTransfer.dropEffect="move",K(d)},[]),Cs=o.useCallback(()=>{K(null)},[]),ys=o.useCallback(e=>{if(!k)return;if(e===null){const E=M.getState(),t=Array.from(E.areas.values()).find(n=>n.assignedAgentIds.includes(k.id));t&&M.unassignAgentFromArea(k.id,t.id),J(null),K(null);return}const d=x.get(e);if(!d)return;const l=Array.from(w.values()),_=Ks(d,l,k.position);M.updateAgent({...k,position:{...k.position,x:_.x,z:_.z}}),M.assignAgentToArea(k.id,e),J(null),K(null)},[k,x,w]);return o.useEffect(()=>{if(C.length===0){Q(!1),Z(null);return}X&&(!g||!C.some(e=>e.id===g))&&(Z(C[0].id),a==null||a(C[0].id))},[C,X,g,a]),o.useEffect(()=>{const e=t=>t instanceof HTMLElement?t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT"||t.isContentEditable:!1,d=t=>t instanceof HTMLElement?!!t.closest(".guake-terminal")||t.classList.contains("guake-input")||t.classList.contains("agent-panel-input"):!1,l=t=>{const n=Array.from(document.querySelectorAll(".dash-card[data-agent-id]")).find(A=>A.dataset.agentId===t);n==null||n.scrollIntoView({block:"nearest",inline:"nearest"})},_=(t,n)=>{var os,cs,ls,us,hs,ms;const A=Array.from(document.querySelectorAll(".dash-card[data-agent-id]")).map(i=>{const u=i.dataset.agentId;if(!u)return null;const y=i.getBoundingClientRect();return{id:u,centerX:y.left+y.width/2,centerY:y.top+y.height/2,height:y.height}}).filter(i=>i!==null).sort((i,u)=>i.centerY-u.centerY||i.centerX-u.centerX);if(A.length===0)return t;const es=A.reduce((i,u)=>i+u.height,0)/A.length,as=Math.max(18,es*.6),f=[];for(const i of A){const u=f[f.length-1];if(!u){f.push([{id:i.id,centerX:i.centerX,centerY:i.centerY}]);continue}const y=u.reduce((As,zs)=>As+zs.centerY,0)/u.length;Math.abs(i.centerY-y)<=as?u.push({id:i.id,centerX:i.centerX,centerY:i.centerY}):f.push([{id:i.id,centerX:i.centerX,centerY:i.centerY}])}f.forEach(i=>i.sort((u,y)=>u.centerX-y.centerX));const Y=f.findIndex(i=>i.some(u=>u.id===t));if(Y===-1)return((cs=(os=f[0])==null?void 0:os[0])==null?void 0:cs.id)??t;const $=f[Y],b=$.findIndex(i=>i.id===t);if(b===-1)return((us=(ls=f[0])==null?void 0:ls[0])==null?void 0:us.id)??t;if(n==="left")return((hs=$[Math.max(0,b-1)])==null?void 0:hs.id)??t;if(n==="right")return((ms=$[Math.min($.length-1,b+1)])==null?void 0:ms.id)??t;const V=n==="up"?Math.max(0,Y-1):Math.min(f.length-1,Y+1),c=f[V],R=$[b].centerX;let D=c[0],ds=Math.abs(D.centerX-R);for(const i of c){const u=Math.abs(i.centerX-R);u<ds&&(D=i,ds=u)}return(D==null?void 0:D.id)??t},E=t=>{const n=M.getShortcuts(),A=n.find(c=>c.id==="dashboard-selector-toggle"),es=n.find(c=>c.id==="dashboard-vim-left"),as=n.find(c=>c.id==="dashboard-vim-down"),f=n.find(c=>c.id==="dashboard-vim-up"),Y=n.find(c=>c.id==="dashboard-vim-right"),$=n.find(c=>c.id==="open-terminal"),b=M.getState();if(e(t.target))if(!b.terminalOpen&&d(t.target)&&document.activeElement instanceof HTMLElement)document.activeElement.blur();else return;if(G(t,A)){if(C.length===0)return;t.preventDefault(),t.stopPropagation(),Q(!0),Z(c=>{const R=c&&C.some(D=>D.id===c)?c:C[0].id;return a==null||a(R),window.setTimeout(()=>l(R),0),R});return}const V=G(t,es)||t.key==="ArrowLeft"?"left":G(t,as)||t.key==="ArrowDown"?"down":G(t,f)||t.key==="ArrowUp"?"up":G(t,Y)||t.key==="ArrowRight"?"right":null;if(V&&X&&g){t.preventDefault(),t.stopPropagation();const c=_(g,V);c!==g&&(Z(c),a==null||a(c),window.setTimeout(()=>l(c),0));return}if(G(t,$)){if(b.terminalOpen)return;if(X&&g&&b.agents.has(g)){t.preventDefault(),r==null||r(g);return}if(b.selectedAgentIds.size===1){t.preventDefault();const c=Array.from(b.selectedAgentIds)[0];r==null||r(c);return}if(b.lastSelectedAgentId&&b.agents.has(b.lastSelectedAgentId)){t.preventDefault(),r==null||r(b.lastSelectedAgentId);return}}};return document.addEventListener("keydown",E,!0),()=>document.removeEventListener("keydown",E,!0)},[C,X,g,r,a]),o.useEffect(()=>{const e=document.activeElement;e instanceof HTMLElement&&e.closest(".guake-terminal")&&!M.getState().terminalOpen&&e.blur()},[]),s.jsxs("div",{className:"dashboard-view",children:[s.jsxs("div",{className:"dashboard-view__topbar",children:[s.jsxs("div",{className:"dashboard-view__metrics",children:[s.jsxs("button",{className:`dashboard-view__metric-btn ${j==="all"?"dashboard-view__metric-btn--active":""}`,onClick:()=>I("all"),children:[s.jsx("span",{className:"dashboard-view__metric-value",children:W.total}),s.jsx("span",{className:"dashboard-view__metric-label",children:h("common:labels.agents")})]}),s.jsxs("button",{className:`dashboard-view__metric-btn dashboard-view__metric-btn--working ${j==="working"?"dashboard-view__metric-btn--active":""}`,onClick:()=>I("working"),children:[s.jsx("span",{className:"dashboard-view__metric-value",children:W.working}),s.jsx("span",{className:"dashboard-view__metric-label",children:h("common:status.working")})]}),s.jsxs("button",{className:"dashboard-view__metric-btn dashboard-view__metric-btn--idle ",onClick:()=>I("all"),children:[s.jsx("span",{className:"dashboard-view__metric-value",children:W.idle}),s.jsx("span",{className:"dashboard-view__metric-label",children:h("common:status.idle")})]}),s.jsxs("button",{className:`dashboard-view__metric-btn dashboard-view__metric-btn--error ${j==="error"?"dashboard-view__metric-btn--active":""}`,onClick:()=>I("error"),children:[s.jsx("span",{className:"dashboard-view__metric-value",children:W.error}),s.jsx("span",{className:"dashboard-view__metric-label",children:h("common:status.error")})]})]}),s.jsx("input",{className:"dashboard-view__search",type:"text",placeholder:h("searchPlaceholder"),value:N,onChange:e=>F(e.target.value)})]}),s.jsxs("div",{className:"dashboard-view__grouping",children:[s.jsx("button",{className:`dashboard-view__grouping-btn ${m==="zone"?"dashboard-view__grouping-btn--active":""}`,onClick:()=>H("zone"),children:h("grouping.byZone")}),s.jsx("button",{className:`dashboard-view__grouping-btn ${m==="status"?"dashboard-view__grouping-btn--active":""}`,onClick:()=>H("status"),children:h("grouping.byStatus")}),s.jsx("button",{className:`dashboard-view__grouping-btn ${m==="activity"?"dashboard-view__grouping-btn--active":""}`,onClick:()=>H("activity"),children:h("grouping.byActivity")})]}),s.jsxs("div",{className:"dashboard-view__content",children:[ss.map(e=>{const d=O(e),l=v.has(d),_=e.sortedAgents,E=e.agents.filter(n=>n.status==="working"||n.status==="waiting"||n.status==="waiting_permission").length,t=e.agents.filter(n=>S.has(n.id)).length;return s.jsxs("div",{className:`dashboard-view__zone ${ws===(e.area?e.area.id:null)&&k?"dashboard-view__zone--drag-over":""}`,onDragOver:n=>ks(n,e.area?e.area.id:null),onDragLeave:Cs,onDrop:()=>ys(e.area?e.area.id:null),children:[s.jsxs("div",{className:"dashboard-view__zone-header",onClick:()=>gs(d),children:[s.jsxs("div",{className:"dashboard-view__zone-left",children:[s.jsx("span",{className:`dashboard-view__zone-chevron ${l?"dashboard-view__zone-chevron--collapsed":""}`,children:s.jsx(B,{name:"caret-down",size:12})}),s.jsx("span",{className:"dashboard-view__zone-dot",style:{backgroundColor:e.color}}),s.jsx("span",{className:"dashboard-view__zone-name",children:e.label}),s.jsxs("span",{className:"dashboard-view__zone-count",children:[h("agentCount",{count:e.agents.length}),E>0&&s.jsxs("span",{className:"dashboard-view__zone-working",children:[" · ",E," ",h("working")]}),t>0&&s.jsxs("span",{className:"dashboard-view__zone-unseen",children:[" · ",t," Unseen"]})]})]}),e.area&&p&&s.jsx("button",{className:"dashboard-view__zone-focus",onClick:n=>{n.stopPropagation(),p(e.area.id)},title:h("focusZone"),children:h("focusZone")})]}),!l&&s.jsx("div",{className:"dashboard-view__zone-grid",children:_.map(n=>s.jsx(vs,{agent:n,isSelected:ns.has(n.id),isKeyboardFocused:X&&g===n.id,onSelect:xs,onDoubleClick:ps,onChat:js,onFocus:z,onKill:U,onDragStart:Ns},n.id))})]},d)}),T.length===0&&s.jsx("div",{className:"dashboard-view__empty",children:N?h("noAgentsMatching",{search:N}):h("noAgentsSpawned")}),P.size>0&&s.jsx(fs,{buildings:P,onSelectBuilding:L})]})]})}export{Js as DashboardView};
@@ -1,2 +1,2 @@
1
- import{_ as a,l as s,F as n,e as i}from"./mermaid.core-CEculPxD.js";import{p}from"./cynefin-VYW2F7L2-BvwjSDiQ.js";import"./main-Dk3qq80S.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
1
+ import{_ as a,l as s,F as n,e as i}from"./mermaid.core-DfJsBqur.js";import{p}from"./cynefin-VYW2F7L2-ebaABOLt.js";import"./main-CICvC5Bz.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};
@@ -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-CEculPxD.js";import"./main-Dk3qq80S.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)+`:
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-DfJsBqur.js";import"./main-CICvC5Bz.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()+`
@@ -1,4 +1,4 @@
1
- import{g as gt}from"./chunk-5VM5RSS4-BWXkm8f0.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-32BRIVSS-BXGbqO9v.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-CEculPxD.js";import{d as it}from"./arc-CLuSzQ4E.js";import"./main-Dk3qq80S.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)+`:
1
+ import{g as gt}from"./chunk-5VM5RSS4-BQiFqh1-.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-32BRIVSS-BUnnt_Ip.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-DfJsBqur.js";import{d as it}from"./arc-D9e3N6Jp.js";import"./main-CICvC5Bz.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-CEculPxD.js";import{g as Ne}from"./chunk-5VM5RSS4-BWXkm8f0.js";import"./main-Dk3qq80S.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)+`:
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-DfJsBqur.js";import{g as Ne}from"./chunk-5VM5RSS4-BQiFqh1-.js";import"./main-CICvC5Bz.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-CEculPxD.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};
1
+ import{b9 as j,ba as p,bb as w,bc as k,bd as q}from"./mermaid.core-DfJsBqur.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};