agentstudio 0.1.24 → 0.1.26

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 (105) hide show
  1. package/package.json +2 -2
  2. package/public/assets/{AgentsPage-B9LqnzMR.js → AgentsPage-DR5v4Vfe.js} +2 -2
  3. package/public/assets/{Button-CW3rD--S.js → Button-6I_OiXLX.js} +1 -1
  4. package/public/assets/{ChatPage-BmPDhIa_.js → ChatPage-DzORphjz.js} +5 -5
  5. package/public/assets/{CommandForm-owyuRt5W.js → CommandForm-k3XXwCB4.js} +2 -2
  6. package/public/assets/{CommandsPage-adcn3ZfZ.js → CommandsPage-C6dcKcFf.js} +1 -1
  7. package/public/assets/DashboardPage-4YSwoWTH.js +1 -0
  8. package/public/assets/{FileBrowser-CaAtXHII.js → FileBrowser-BvyXd63f.js} +5 -5
  9. package/public/assets/{FileExplorer-EenwcuMv.js → FileExplorer-DhPt_quM.js} +1 -1
  10. package/public/assets/{GeneralSettingsPage-DRssPHeG.js → GeneralSettingsPage-DkHRbImS.js} +1 -1
  11. package/public/assets/LandingPage-vFck5FSW.js +1 -0
  12. package/public/assets/{LoginPage-C1OhnLa_.js → LoginPage-Bfy9WmmY.js} +4 -4
  13. package/public/assets/McpAdminSettingsPage-BFuQouo8.js +7 -0
  14. package/public/assets/{McpPage-Bfff_2Ai.js → McpPage-DDiRtENp.js} +2 -2
  15. package/public/assets/{MemorySettingsPage-BDWuqEtY.js → MemorySettingsPage-D5Kec6pT.js} +1 -1
  16. package/public/assets/{PluginsPage-9Rmzt3Rm.js → PluginsPage-DSo1pTD-.js} +1 -1
  17. package/public/assets/{ProjectSelector--9kdPm_M.js → ProjectSelector-Dqm5v8o9.js} +1 -1
  18. package/public/assets/{ProjectsPage-YkfU9rAi.js → ProjectsPage-C1VMe5nk.js} +5 -5
  19. package/public/assets/ScheduledTasksPage-CkUoeT04.js +1 -0
  20. package/public/assets/{SettingsLayout-Dy3trHPB.js → SettingsLayout-Blt_jAZx.js} +1 -1
  21. package/public/assets/{SkillsPage-2UELBXF4.js → SkillsPage-B5YxNlWJ.js} +3 -3
  22. package/public/assets/{SubagentForm-DPwXuXlv.js → SubagentForm-B09hmrYM.js} +3 -3
  23. package/public/assets/{SubagentsPage-DnWhOVsV.js → SubagentsPage-Bqk10bb7.js} +1 -1
  24. package/public/assets/{ToastTestPage-B0RRJmi5.js → ToastTestPage-Dzfb1AsW.js} +1 -1
  25. package/public/assets/{ToolsList-BEI5_57D.js → ToolsList-CmrJAKcE.js} +1 -1
  26. package/public/assets/{UnifiedToolSelector-CUDMlVoZ.js → UnifiedToolSelector-CN690ltz.js} +1 -1
  27. package/public/assets/{VersionSettingsPage-CZxXDAAE.js → VersionSettingsPage-D_keS5fb.js} +3 -3
  28. package/public/assets/{_basePickBy-DI8-gpT1.js → _basePickBy-X3KkSOFK.js} +1 -1
  29. package/public/assets/{_baseUniq-BpU6dVPB.js → _baseUniq-cv9EC14t.js} +1 -1
  30. package/public/assets/{agents-D6AHwN6G.js → agents-DfHGzNHW.js} +1 -1
  31. package/public/assets/{arc-Rx6SLR8P.js → arc-C7I_8kFm.js} +1 -1
  32. package/public/assets/{architectureDiagram-VXUJARFQ-74Xp_5Wk.js → architectureDiagram-VXUJARFQ-CMo92Xcm.js} +1 -1
  33. package/public/assets/{blockDiagram-VD42YOAC-C26_2YFA.js → blockDiagram-VD42YOAC-CSewaHod.js} +1 -1
  34. package/public/assets/{c4Diagram-YG6GDRKO-rQ7Sg7Wk.js → c4Diagram-YG6GDRKO-D4-A7anv.js} +1 -1
  35. package/public/assets/channel-CTPfV_fA.js +1 -0
  36. package/public/assets/{chunk-4BX2VUAB-C1xC4huD.js → chunk-4BX2VUAB-CKW-jgB1.js} +1 -1
  37. package/public/assets/{chunk-55IACEB6-DpA-lssp.js → chunk-55IACEB6-Bh_iEZAg.js} +1 -1
  38. package/public/assets/{chunk-B4BG7PRW-B4FOynej.js → chunk-B4BG7PRW-CGcWESsJ.js} +1 -1
  39. package/public/assets/{chunk-DI55MBZ5-BJwVmP1E.js → chunk-DI55MBZ5-BNQVU-r5.js} +1 -1
  40. package/public/assets/{chunk-FMBD7UC4-D96JjPGn.js → chunk-FMBD7UC4-B51X6fKC.js} +1 -1
  41. package/public/assets/{chunk-QN33PNHL-DkswGqpp.js → chunk-QN33PNHL-DadRd0Qs.js} +1 -1
  42. package/public/assets/{chunk-QZHKN3VN-ABdEDb4K.js → chunk-QZHKN3VN-0AwjBk6f.js} +1 -1
  43. package/public/assets/{chunk-TZMSLE5B-2IIdZBaL.js → chunk-TZMSLE5B-CIFE5KnY.js} +1 -1
  44. package/public/assets/classDiagram-2ON5EDUG-CJDL4zC-.js +1 -0
  45. package/public/assets/classDiagram-v2-WZHVMYZB-CJDL4zC-.js +1 -0
  46. package/public/assets/clone-BvAwOIZu.js +1 -0
  47. package/public/assets/{cose-bilkent-S5V4N54A-BRJzSOA9.js → cose-bilkent-S5V4N54A-BPWEQsNm.js} +1 -1
  48. package/public/assets/{dagre-6UL2VRFP-CyspA2sK.js → dagre-6UL2VRFP-Cu-RCZe5.js} +1 -1
  49. package/public/assets/{diagram-PSM6KHXK-D2Be0BvE.js → diagram-PSM6KHXK-DBfl10yA.js} +1 -1
  50. package/public/assets/{diagram-QEK2KX5R-DBN-iReL.js → diagram-QEK2KX5R-CXLsPBvR.js} +1 -1
  51. package/public/assets/{diagram-S2PKOQOG-TgieQ_Qa.js → diagram-S2PKOQOG-BjaXE_9W.js} +1 -1
  52. package/public/assets/{erDiagram-Q2GNP2WA-DGxfS2rl.js → erDiagram-Q2GNP2WA-BPkK30VB.js} +1 -1
  53. package/public/assets/{flowDiagram-NV44I4VS-DfzFZA_E.js → flowDiagram-NV44I4VS-i4BoJF1x.js} +1 -1
  54. package/public/assets/{ganttDiagram-LVOFAZNH-C070lUxD.js → ganttDiagram-LVOFAZNH-C7Fa9LKl.js} +1 -1
  55. package/public/assets/{gitGraphDiagram-NY62KEGX-Dtx_CAB8.js → gitGraphDiagram-NY62KEGX-x4fV46FC.js} +1 -1
  56. package/public/assets/{graph-CVxYx3Pf.js → graph-Bj4qRtTX.js} +1 -1
  57. package/public/assets/index-CJMPRxKv.css +1 -0
  58. package/public/assets/{index-VZ8BD_2q.js → index-Dz27wKzJ.js} +31 -31
  59. package/public/assets/infoDiagram-F6ZHWCRC-BdQeovBp.js +2 -0
  60. package/public/assets/{journeyDiagram-XKPGCS4Q-Doo7bbK4.js → journeyDiagram-XKPGCS4Q-BByZuK2D.js} +1 -1
  61. package/public/assets/{kanban-definition-3W4ZIXB7-ySUSdsMd.js → kanban-definition-3W4ZIXB7-BW-KJqNN.js} +1 -1
  62. package/public/assets/{layout-RBiaQ3BD.js → layout-BIkzRvdA.js} +1 -1
  63. package/public/assets/{linear-CXm0SnMf.js → linear-CY3SKQlQ.js} +1 -1
  64. package/public/assets/{mindmap-definition-VGOIOE7T-DcvFn5_f.js → mindmap-definition-VGOIOE7T-CIjq8dul.js} +1 -1
  65. package/public/assets/{pieDiagram-ADFJNKIX-Ds2zvkRu.js → pieDiagram-ADFJNKIX-CYrXbDgB.js} +1 -1
  66. package/public/assets/{quadrantDiagram-AYHSOK5B-B1Y817H5.js → quadrantDiagram-AYHSOK5B-zshqcC4H.js} +1 -1
  67. package/public/assets/{requirementDiagram-UZGBJVZJ-NlxZm-hZ.js → requirementDiagram-UZGBJVZJ-Eykzktn0.js} +1 -1
  68. package/public/assets/{sankeyDiagram-TZEHDZUN-Bp6uTBx3.js → sankeyDiagram-TZEHDZUN-CUUZTWXT.js} +1 -1
  69. package/public/assets/{sequenceDiagram-WL72ISMW-DYDJBnXk.js → sequenceDiagram-WL72ISMW-u-TgVaJG.js} +1 -1
  70. package/public/assets/{stateDiagram-FKZM4ZOC-DreRcts0.js → stateDiagram-FKZM4ZOC-L8719ElY.js} +1 -1
  71. package/public/assets/stateDiagram-v2-4FDKWEC3-DTGjtVxm.js +1 -0
  72. package/public/assets/{table-Cmm9Iyx4.js → table-DUC-Ijtn.js} +1 -1
  73. package/public/assets/{timeline-definition-IT6M3QCI-CMqq3WzB.js → timeline-definition-IT6M3QCI-CJpXtgDn.js} +1 -1
  74. package/public/assets/{tools-Cwvcr7MC.js → tools-CljQNVZC.js} +1 -1
  75. package/public/assets/{treemap-KMMF4GRG-CBKg12Rn.js → treemap-KMMF4GRG-BHfi2-Z-.js} +1 -1
  76. package/public/assets/{ui-components-Cpwcs6-O.js → ui-components-umMeMlgF.js} +135 -120
  77. package/public/assets/{useAgents-BY6mXIRZ.js → useAgents-Cc9gZfER.js} +1 -1
  78. package/public/assets/{useClaudeVersions-DY1nkpyH.js → useClaudeVersions-oq1-p4ja.js} +1 -1
  79. package/public/assets/{useCommands-kfKWaceZ.js → useCommands-CgIOltx6.js} +1 -1
  80. package/public/assets/{useProjects-D0fgMWMU.js → useProjects-B1Ip38ES.js} +1 -1
  81. package/public/assets/{useSessions-Do-a2c6a.js → useSessions-Dl3mKnA7.js} +1 -1
  82. package/public/assets/{xychartDiagram-PRI3JC2R-DfaBqToH.js → xychartDiagram-PRI3JC2R-DrK8IYgl.js} +1 -1
  83. package/public/index.html +5 -5
  84. package/public/wechat-qr-code.png +0 -0
  85. package/routes/__tests__/agents.test.js +2 -2
  86. package/routes/__tests__/agents.test.js.map +1 -1
  87. package/routes/agents.js +2 -2
  88. package/routes/agents.js.map +1 -1
  89. package/services/a2a/__tests__/agentCardService.test.js +1 -1
  90. package/services/a2a/__tests__/agentCardService.test.js.map +1 -1
  91. package/types/commands.d.ts +1 -1
  92. package/types/commands.d.ts.map +1 -1
  93. package/types/commands.js +3 -3
  94. package/types/commands.js.map +1 -1
  95. package/public/assets/DashboardPage-VO2_kktD.js +0 -1
  96. package/public/assets/LandingPage-DKOYWSbs.js +0 -1
  97. package/public/assets/McpAdminSettingsPage-CWO0l7iL.js +0 -7
  98. package/public/assets/ScheduledTasksPage-Bc9W24zN.js +0 -1
  99. package/public/assets/channel-BnHE6l2D.js +0 -1
  100. package/public/assets/classDiagram-2ON5EDUG-CTS5wt-5.js +0 -1
  101. package/public/assets/classDiagram-v2-WZHVMYZB-CTS5wt-5.js +0 -1
  102. package/public/assets/clone-BAGmJRX5.js +0 -1
  103. package/public/assets/index-C9P0ZrJZ.css +0 -1
  104. package/public/assets/infoDiagram-F6ZHWCRC-wciq3AJm.js +0 -2
  105. package/public/assets/stateDiagram-v2-4FDKWEC3-DVn3R4qq.js +0 -1
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-CyspA2sK.js","assets/graph-CVxYx3Pf.js","assets/_baseUniq-BpU6dVPB.js","assets/layout-RBiaQ3BD.js","assets/_basePickBy-DI8-gpT1.js","assets/clone-BAGmJRX5.js","assets/data-structures-C0h9Oap1.js","assets/monaco-editor-DHKm5-VF.js","assets/syntax-highlighting-CnREyncB.js","assets/agents-D6AHwN6G.js","assets/tools-Cwvcr7MC.js","assets/ui-components-Cpwcs6-O.js","assets/agents-DwCY2K8p.css","assets/useAgents-BY6mXIRZ.js","assets/useSessions-Do-a2c6a.js","assets/index-VZ8BD_2q.js","assets/index-C9P0ZrJZ.css","assets/useCommands-kfKWaceZ.js","assets/useClaudeVersions-DY1nkpyH.js","assets/FileExplorer-EenwcuMv.js","assets/UnifiedToolSelector-CUDMlVoZ.js","assets/FileBrowser-CaAtXHII.js","assets/ProjectSelector--9kdPm_M.js","assets/cose-bilkent-S5V4N54A-BRJzSOA9.js","assets/cytoscape.esm-DtBltrT8.js","assets/c4Diagram-YG6GDRKO-rQ7Sg7Wk.js","assets/chunk-TZMSLE5B-2IIdZBaL.js","assets/flowDiagram-NV44I4VS-DfzFZA_E.js","assets/chunk-FMBD7UC4-D96JjPGn.js","assets/chunk-55IACEB6-DpA-lssp.js","assets/chunk-QN33PNHL-DkswGqpp.js","assets/channel-BnHE6l2D.js","assets/erDiagram-Q2GNP2WA-DGxfS2rl.js","assets/gitGraphDiagram-NY62KEGX-Dtx_CAB8.js","assets/chunk-4BX2VUAB-C1xC4huD.js","assets/chunk-QZHKN3VN-ABdEDb4K.js","assets/treemap-KMMF4GRG-CBKg12Rn.js","assets/ganttDiagram-LVOFAZNH-C070lUxD.js","assets/linear-CXm0SnMf.js","assets/init-Gi6I4Gst.js","assets/defaultLocale-C4B-KCzX.js","assets/infoDiagram-F6ZHWCRC-wciq3AJm.js","assets/pieDiagram-ADFJNKIX-Ds2zvkRu.js","assets/arc-Rx6SLR8P.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-AYHSOK5B-B1Y817H5.js","assets/xychartDiagram-PRI3JC2R-DfaBqToH.js","assets/requirementDiagram-UZGBJVZJ-NlxZm-hZ.js","assets/sequenceDiagram-WL72ISMW-DYDJBnXk.js","assets/classDiagram-2ON5EDUG-CTS5wt-5.js","assets/chunk-B4BG7PRW-B4FOynej.js","assets/classDiagram-v2-WZHVMYZB-CTS5wt-5.js","assets/stateDiagram-FKZM4ZOC-DreRcts0.js","assets/chunk-DI55MBZ5-BJwVmP1E.js","assets/stateDiagram-v2-4FDKWEC3-DVn3R4qq.js","assets/journeyDiagram-XKPGCS4Q-Doo7bbK4.js","assets/timeline-definition-IT6M3QCI-CMqq3WzB.js","assets/mindmap-definition-VGOIOE7T-DcvFn5_f.js","assets/kanban-definition-3W4ZIXB7-ySUSdsMd.js","assets/sankeyDiagram-TZEHDZUN-Bp6uTBx3.js","assets/diagram-S2PKOQOG-TgieQ_Qa.js","assets/diagram-QEK2KX5R-DBN-iReL.js","assets/blockDiagram-VD42YOAC-C26_2YFA.js","assets/architectureDiagram-VXUJARFQ-74Xp_5Wk.js","assets/diagram-PSM6KHXK-D2Be0BvE.js"])))=>i.map(i=>d[i]);
2
- import{j as p}from"./data-structures-C0h9Oap1.js";import{r as O,g as Au,W as xr}from"./monaco-editor-DHKm5-VF.js";import{o as ig,A as nc,a as ic,u as Nu,h as l1,l as c1,d as u1,p as h1,S as d1}from"./agents-D6AHwN6G.js";import{g as f1,h as p1,i as g1,j as m1,k as x1}from"./useAgents-BY6mXIRZ.js";import{u as y1}from"./useSessions-Do-a2c6a.js";import{u as Ce,B as Ke,T as Ve,b as b1,K as k1,c as w1}from"./tools-Cwvcr7MC.js";import{m as en,g as od,ai as v1,o as C1,a5 as sg,z as sc,aQ as ag,aR as og,X as En,k as pi,l as Ps,M as Sa,L as _a,C as tn,n as Ta,j as ac,Z as Ea,aS as S1,U as xl,aT as _1,aU as aa,aV as T1,E as E1,ag as lg,ar as A1,ao as N1,R as cg,aW as ld,d as cd,u as Mu,aH as M1,e as ug,a7 as ud,S as hd,aX as L1,ah as hg,aY as I1,v as $1,t as dg,p as j1,an as B1,aZ as ks,a0 as fg,i as pg,w as dd,a_ as D1,a$ as fd,s as P1}from"./ui-components-Cpwcs6-O.js";import{c as R1,i as gg,g as F1,b as mg,j as O1,u as z1}from"./index-VZ8BD_2q.js";import{u as oc,f as lc}from"./useCommands-kfKWaceZ.js";import{u as W1}from"./useClaudeVersions-DY1nkpyH.js";import{e as cc,E as uc,F as pd}from"./FileExplorer-EenwcuMv.js";import{c as Fe,h as xg}from"./syntax-highlighting-CnREyncB.js";import{U as Lu}from"./UnifiedToolSelector-CUDMlVoZ.js";import{F as H1}from"./FileBrowser-CaAtXHII.js";import{P as q1}from"./ProjectSelector--9kdPm_M.js";const Xe=ig((e,t)=>({currentAgent:null,messages:[],isAiTyping:!1,currentSessionId:null,mcpStatus:{hasError:!1,connectedServers:[],connectionErrors:[],lastError:null,lastErrorDetails:void 0,lastUpdated:void 0},pendingUserQuestion:null,activeA2AStreams:{},sidebarCollapsed:!1,setCurrentAgent:r=>e(n=>({currentAgent:r,...n.currentAgent?.id!==r?.id?{messages:[],isAiTyping:!1,currentSessionId:null}:{}})),addMessage:r=>e(n=>({messages:[...n.messages,{...r,id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,timestamp:Date.now(),agentId:n.currentAgent?.id||"unknown",messageParts:[]}]})),updateMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,...n}:s)})),addTextPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"text",content:n,order:(s.messageParts||[]).length}]}:s)})),addThinkingPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"thinking",content:n,order:(s.messageParts||[]).length}]}:s)})),updateTextPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="text"&&o.id===n?{...o,content:i}:o)}:a)})),updateThinkingPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="thinking"&&o.id===n?{...o,content:i}:o)}:a)})),addCompactSummaryPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"compactSummary",content:n,order:(s.messageParts||[]).length}]}:s)})),addCommandPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"command",content:n,order:(s.messageParts||[]).length}]}:s)})),addToolPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"tool",toolData:{...n,id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,isExecuting:n.isExecuting??!1},order:(s.messageParts||[]).length}]}:s)})),updateToolPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="tool"&&o.toolData?.id===n?{...o,toolData:o.toolData?{...o.toolData,...i}:void 0}:o)}:a)})),interruptAllExecutingTools:()=>e(r=>({messages:r.messages.map(n=>({...n,messageParts:n.messageParts?.map(i=>i.type==="tool"&&i.toolData?.isExecuting?{...i,toolData:{...i.toolData,isExecuting:!1,isInterrupted:!0}}:i)}))})),setAiTyping:r=>e({isAiTyping:r}),setCurrentSessionId:r=>e({currentSessionId:r}),clearMessages:()=>e({messages:[]}),loadSessionMessages:r=>e({messages:r}),updateMcpStatus:r=>e(n=>({mcpStatus:{...n.mcpStatus,...r,lastUpdated:Date.now()}})),clearMcpStatus:()=>e({mcpStatus:{hasError:!1,connectedServers:[],connectionErrors:[],lastError:null,lastErrorDetails:void 0,lastUpdated:void 0}}),setPendingUserQuestion:r=>e({pendingUserQuestion:r}),setA2AStreamStart:(r,n,i)=>e(s=>({activeA2AStreams:{...s.activeA2AStreams,[r]:{sessionId:n,agentUrl:r,message:i,startedAt:Date.now(),isStreaming:!0,events:[]}}})),setA2AStreamEnd:r=>e(n=>{const i=n.activeA2AStreams[r];return i?{activeA2AStreams:{...n.activeA2AStreams,[r]:{...i,isStreaming:!1}}}:n}),addA2AStreamEvent:(r,n)=>e(i=>{const s=i.activeA2AStreams[r];return s?{activeA2AStreams:{...i.activeA2AStreams,[r]:{...s,events:[...s.events,n]}}}:{activeA2AStreams:{...i.activeA2AStreams,[r]:{sessionId:n.sessionId||"",agentUrl:r,message:"",startedAt:Date.now(),isStreaming:!0,events:[n]}}}}),getA2AStreamByUrl:r=>t().activeA2AStreams[r],setSidebarCollapsed:r=>e({sidebarCollapsed:r})}));class et{static instance;static STORAGE_KEY="active_chat_tabs";static WAKEUP_SIGNAL_KEY="tab_wakeup_signal";static WAKEUP_RESPONSE_KEY="tab_wakeup_response";static TAB_TIMEOUT=300*1e3;currentTabId;cleanupInterval;lastKnownSession=null;sessionResumeHistory=[];constructor(){this.currentTabId=this.generateTabId(),this.startCleanupTimer(),this.setupBeforeUnloadHandler(),console.log(`📱 TabManager initialized with ID: ${this.currentTabId}`)}static getInstance(){return et.instance||(et.instance=new et),et.instance}registerCurrentTab(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r),s={agentId:t,sessionId:r,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title};n[i]=s,this.saveActiveTabs(n),console.log(`📱 Tab registered: ${this.currentTabId} for session ${r}`),this.lastKnownSession={agentId:t,sessionId:r}}updateCurrentTabActivity(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);n[i]&&n[i].tabId===this.currentTabId&&(n[i].lastSeen=Date.now(),n[i].url=window.location.href,n[i].title=document.title,this.saveActiveTabs(n),this.lastKnownSession={agentId:t,sessionId:r})}hasActiveTab(t,r){return this.findActiveTabForSession(t,r)!==null}findActiveTabForSession(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);if(n[i]&&Date.now()-n[i].lastSeen<et.TAB_TIMEOUT)return n[i];for(const[s,a]of Object.entries(n))if(a.agentId===t&&a.sessionId===r){if(Date.now()-a.lastSeen<et.TAB_TIMEOUT)return a;delete n[s],this.saveActiveTabs(n),console.log(`🗑️ Cleaned up expired tab: ${r}`)}return null}async wakeupExistingTab(t,r,n){if(!this.findActiveTabForSession(t,r))return!1;const s={type:"WAKEUP",agentId:t,sessionId:r,requestId:this.generateRequestId(),timestamp:Date.now(),sourceUrl:n||window.location.href};return console.log(`🔔 Sending wakeup signal for session: ${r}`),localStorage.setItem(et.WAKEUP_SIGNAL_KEY,JSON.stringify(s)),new Promise(a=>{const o=setTimeout(()=>{console.log(`⏰ Wakeup timeout for session ${r}`),a(!1)},2e3),c=setInterval(()=>{const u=localStorage.getItem(et.WAKEUP_RESPONSE_KEY);if(u)try{const h=JSON.parse(u);if(h.requestId===s.requestId){clearTimeout(o),localStorage.removeItem(et.WAKEUP_RESPONSE_KEY),console.log(`✅ Tab awakened successfully: ${r}`),a(h.success);return}}catch(h){console.error("Error parsing wakeup response:",h)}},100);setTimeout(()=>clearInterval(c),2e3)})}setupWakeupListener(t,r){const n=s=>{if(s.key===et.WAKEUP_SIGNAL_KEY&&s.newValue)try{const a=JSON.parse(s.newValue);a.type==="WAKEUP"&&a.agentId===t&&a.sessionId===r&&this.handleWakeupSignal(a)}catch(a){console.error("Error handling wakeup signal:",a)}};window.addEventListener("storage",n);const i=setInterval(()=>{const s=localStorage.getItem(et.WAKEUP_SIGNAL_KEY);if(s)try{const a=JSON.parse(s);a.type==="WAKEUP"&&a.agentId===t&&a.sessionId===r&&Date.now()-a.timestamp<5e3&&this.handleWakeupSignal(a)}catch(a){console.error("Error polling wakeup signal:",a)}},500);return console.log(`🎯 Wakeup listener setup for session: ${r}`),()=>{window.removeEventListener("storage",n),clearInterval(i),console.log(`🎯 Wakeup listener cleaned up for session: ${r}`)}}updateCurrentTabSession(t,r,n,i){const s=this.getActiveTabs(),a=this.getTabKey(t,r);s[a]&&s[a].tabId===this.currentTabId&&delete s[a];const o=this.getTabKey(n,i);s[o]={agentId:n,sessionId:i,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(s),console.log(`🔄 Tab session updated: ${r} → ${i}`),this.lastKnownSession={agentId:n,sessionId:i}}unregisterCurrentTabSession(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);n[i]&&n[i].tabId===this.currentTabId&&(delete n[i],this.saveActiveTabs(n),console.log(`📤 Unregistered current tab from session: ${r}`)),this.lastKnownSession&&this.lastKnownSession.agentId===t&&this.lastKnownSession.sessionId===r&&(this.lastKnownSession=null)}handleSessionResume(t,r,n){const i=this.getActiveTabs(),s=this.getTabKey(t,r),a=this.getTabKey(t,n);i[s]&&i[s].tabId===this.currentTabId?(delete i[s],i[a]={agentId:t,sessionId:n,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(i),console.log(`🔄 Session resumed: ${r} → ${n}`),this.lastKnownSession={agentId:t,sessionId:n}):(this.registerCurrentTab(t,n),console.log(`🆕 Resumed session registered: ${n}`))}recordSessionResume(t,r,n){this.sessionResumeHistory.push({originalSessionId:r,newSessionId:n,timestamp:Date.now(),agentId:t}),this.sessionResumeHistory.length>100&&(this.sessionResumeHistory=this.sessionResumeHistory.slice(-100)),console.log(`📝 Recorded session resume: ${r} → ${n}`)}smartUpdateCurrentTab(){const t=window.location.href,r=this.parseSessionFromUrl(t);if(!r){this.lastKnownSession&&(this.unregisterCurrentTabSession(this.lastKnownSession.agentId,this.lastKnownSession.sessionId),this.lastKnownSession=null);return}const{agentId:n,sessionId:i}=r;if(this.lastKnownSession){const{agentId:s,sessionId:a}=this.lastKnownSession;a!==i||s!==n?this.sessionResumeHistory.find(l=>l.originalSessionId===a&&l.newSessionId===i&&l.agentId===n&&Date.now()-l.timestamp<3e4)?(this.handleSessionResume(n,a,i),console.log(`🔄 Detected session resume via URL: ${a} → ${i}`)):(this.updateCurrentTabSession(s,a,n,i),console.log(`🎯 Regular session switch: ${a} → ${i}`)):this.updateCurrentTabActivity(n,i)}else this.registerCurrentTab(n,i),console.log(`🎯 Initial session register: ${i}`);this.lastKnownSession={agentId:n,sessionId:i}}startSmartMonitoring(){this.smartUpdateCurrentTab();const t=()=>{setTimeout(()=>this.smartUpdateCurrentTab(),100)};window.addEventListener("popstate",t);const r=history.pushState,n=history.replaceState;return history.pushState=function(...i){r.apply(this,i),t()},history.replaceState=function(...i){n.apply(this,i),t()},console.log(`🎯 Smart monitoring started for tab: ${this.currentTabId}`),()=>{window.removeEventListener("popstate",t),history.pushState=r,history.replaceState=n,console.log(`🛑 Smart monitoring stopped for tab: ${this.currentTabId}`)}}handleWakeupSignal(t){console.log(`🔔 Received wakeup signal for session: ${t.sessionId}`);try{if(window.focus(),window.parent&&window.parent!==window&&window.parent.focus(),document.hidden){const n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});document.dispatchEvent(n)}}catch(n){console.log("Focus attempt failed:",n)}this.flashPageTitle(),this.playNotificationSound(),t.sourceUrl&&t.sourceUrl!==window.location.href?this.isSameSession(t.sourceUrl,window.location.href)?(console.log("🎯 URLs point to same session, forcing visibility"),this.makePageVisible()):(console.log(`🔄 Navigating to: ${t.sourceUrl}`),window.history.replaceState(null,"",t.sourceUrl),window.location.reload()):this.makePageVisible();const r={requestId:t.requestId,agentId:t.agentId,sessionId:t.sessionId,success:!0,timestamp:Date.now()};localStorage.setItem(et.WAKEUP_RESPONSE_KEY,JSON.stringify(r)),localStorage.removeItem(et.WAKEUP_SIGNAL_KEY),this.updateCurrentTabActivity(t.agentId,t.sessionId),console.log(`✅ Wakeup signal processed successfully for session: ${t.sessionId}`)}flashPageTitle(){const t=document.title;let r=0;const n=setInterval(()=>{document.title=r%2===0?"🔔 会话已唤起":t,r++,r>6&&(clearInterval(n),document.title=t)},500),i=()=>{clearInterval(n),document.title=t,window.removeEventListener("focus",i)};window.addEventListener("focus",i)}playNotificationSound(){try{const t=new(window.AudioContext||window.webkitAudioContext),r=t.createOscillator(),n=t.createGain();r.connect(n),n.connect(t.destination),r.frequency.setValueAtTime(800,t.currentTime),r.frequency.setValueAtTime(600,t.currentTime+.1),n.gain.setValueAtTime(.1,t.currentTime),n.gain.exponentialRampToValueAtTime(.01,t.currentTime+.2),r.start(t.currentTime),r.stop(t.currentTime+.2)}catch(t){console.log("Audio notification not supported:",t)}}makePageVisible(){try{window.scrollTo(0,0),document.fullscreenEnabled&&document.documentElement.requestFullscreen?.()?.then(()=>{setTimeout(()=>{document.exitFullscreen?.()},100)}).catch(n=>console.log("Fullscreen toggle failed:",n));const t=document.createElement("div");t.style.cssText=`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-Cu-RCZe5.js","assets/graph-Bj4qRtTX.js","assets/_baseUniq-cv9EC14t.js","assets/layout-BIkzRvdA.js","assets/_basePickBy-X3KkSOFK.js","assets/clone-BvAwOIZu.js","assets/data-structures-C0h9Oap1.js","assets/monaco-editor-DHKm5-VF.js","assets/syntax-highlighting-CnREyncB.js","assets/agents-DfHGzNHW.js","assets/tools-CljQNVZC.js","assets/ui-components-umMeMlgF.js","assets/agents-DwCY2K8p.css","assets/useAgents-Cc9gZfER.js","assets/useSessions-Dl3mKnA7.js","assets/index-Dz27wKzJ.js","assets/index-CJMPRxKv.css","assets/useCommands-CgIOltx6.js","assets/useClaudeVersions-oq1-p4ja.js","assets/FileExplorer-DhPt_quM.js","assets/UnifiedToolSelector-CN690ltz.js","assets/FileBrowser-BvyXd63f.js","assets/ProjectSelector-Dqm5v8o9.js","assets/cose-bilkent-S5V4N54A-BPWEQsNm.js","assets/cytoscape.esm-DtBltrT8.js","assets/c4Diagram-YG6GDRKO-D4-A7anv.js","assets/chunk-TZMSLE5B-CIFE5KnY.js","assets/flowDiagram-NV44I4VS-i4BoJF1x.js","assets/chunk-FMBD7UC4-B51X6fKC.js","assets/chunk-55IACEB6-Bh_iEZAg.js","assets/chunk-QN33PNHL-DadRd0Qs.js","assets/channel-CTPfV_fA.js","assets/erDiagram-Q2GNP2WA-BPkK30VB.js","assets/gitGraphDiagram-NY62KEGX-x4fV46FC.js","assets/chunk-4BX2VUAB-CKW-jgB1.js","assets/chunk-QZHKN3VN-0AwjBk6f.js","assets/treemap-KMMF4GRG-BHfi2-Z-.js","assets/ganttDiagram-LVOFAZNH-C7Fa9LKl.js","assets/linear-CY3SKQlQ.js","assets/init-Gi6I4Gst.js","assets/defaultLocale-C4B-KCzX.js","assets/infoDiagram-F6ZHWCRC-BdQeovBp.js","assets/pieDiagram-ADFJNKIX-CYrXbDgB.js","assets/arc-C7I_8kFm.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-AYHSOK5B-zshqcC4H.js","assets/xychartDiagram-PRI3JC2R-DrK8IYgl.js","assets/requirementDiagram-UZGBJVZJ-Eykzktn0.js","assets/sequenceDiagram-WL72ISMW-u-TgVaJG.js","assets/classDiagram-2ON5EDUG-CJDL4zC-.js","assets/chunk-B4BG7PRW-CGcWESsJ.js","assets/classDiagram-v2-WZHVMYZB-CJDL4zC-.js","assets/stateDiagram-FKZM4ZOC-L8719ElY.js","assets/chunk-DI55MBZ5-BNQVU-r5.js","assets/stateDiagram-v2-4FDKWEC3-DTGjtVxm.js","assets/journeyDiagram-XKPGCS4Q-BByZuK2D.js","assets/timeline-definition-IT6M3QCI-CJpXtgDn.js","assets/mindmap-definition-VGOIOE7T-CIjq8dul.js","assets/kanban-definition-3W4ZIXB7-BW-KJqNN.js","assets/sankeyDiagram-TZEHDZUN-CUUZTWXT.js","assets/diagram-S2PKOQOG-BjaXE_9W.js","assets/diagram-QEK2KX5R-CXLsPBvR.js","assets/blockDiagram-VD42YOAC-CSewaHod.js","assets/architectureDiagram-VXUJARFQ-CMo92Xcm.js","assets/diagram-PSM6KHXK-DBfl10yA.js"])))=>i.map(i=>d[i]);
2
+ import{j as p}from"./data-structures-C0h9Oap1.js";import{r as O,g as Au,W as xr}from"./monaco-editor-DHKm5-VF.js";import{o as ig,A as nc,a as ic,u as Nu,h as l1,l as c1,d as u1,p as h1,S as d1}from"./agents-DfHGzNHW.js";import{g as f1,h as p1,i as g1,j as m1,k as x1}from"./useAgents-Cc9gZfER.js";import{u as y1}from"./useSessions-Dl3mKnA7.js";import{u as Ce,B as Ke,T as Ve,b as b1,K as k1,c as w1}from"./tools-CljQNVZC.js";import{m as en,g as od,al as v1,o as C1,a8 as sg,I as sc,aT as ag,aU as og,X as En,k as pi,l as Ps,aq as Sa,L as _a,C as tn,n as Ta,j as ac,Z as Ea,aV as S1,Y as xl,aW as _1,aX as aa,aY as T1,E as E1,aj as lg,au as A1,ar as N1,V as cg,aZ as ld,d as cd,w as Mu,aK as M1,e as ug,aa as ud,S as hd,a_ as L1,ak as hg,a$ as I1,y as $1,v as dg,r as j1,ap as B1,b0 as ks,a2 as fg,i as pg,z as dd,b1 as D1,b2 as fd,u as P1}from"./ui-components-umMeMlgF.js";import{c as R1,i as gg,g as F1,b as mg,j as O1,u as z1}from"./index-Dz27wKzJ.js";import{u as oc,f as lc}from"./useCommands-CgIOltx6.js";import{u as W1}from"./useClaudeVersions-oq1-p4ja.js";import{e as cc,E as uc,F as pd}from"./FileExplorer-DhPt_quM.js";import{c as Fe,h as xg}from"./syntax-highlighting-CnREyncB.js";import{U as Lu}from"./UnifiedToolSelector-CN690ltz.js";import{F as H1}from"./FileBrowser-BvyXd63f.js";import{P as q1}from"./ProjectSelector-Dqm5v8o9.js";const Xe=ig((e,t)=>({currentAgent:null,messages:[],isAiTyping:!1,currentSessionId:null,mcpStatus:{hasError:!1,connectedServers:[],connectionErrors:[],lastError:null,lastErrorDetails:void 0,lastUpdated:void 0},pendingUserQuestion:null,activeA2AStreams:{},sidebarCollapsed:!1,setCurrentAgent:r=>e(n=>({currentAgent:r,...n.currentAgent?.id!==r?.id?{messages:[],isAiTyping:!1,currentSessionId:null}:{}})),addMessage:r=>e(n=>({messages:[...n.messages,{...r,id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,timestamp:Date.now(),agentId:n.currentAgent?.id||"unknown",messageParts:[]}]})),updateMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,...n}:s)})),addTextPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"text",content:n,order:(s.messageParts||[]).length}]}:s)})),addThinkingPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"thinking",content:n,order:(s.messageParts||[]).length}]}:s)})),updateTextPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="text"&&o.id===n?{...o,content:i}:o)}:a)})),updateThinkingPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="thinking"&&o.id===n?{...o,content:i}:o)}:a)})),addCompactSummaryPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"compactSummary",content:n,order:(s.messageParts||[]).length}]}:s)})),addCommandPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"command",content:n,order:(s.messageParts||[]).length}]}:s)})),addToolPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"tool",toolData:{...n,id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,isExecuting:n.isExecuting??!1},order:(s.messageParts||[]).length}]}:s)})),updateToolPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="tool"&&o.toolData?.id===n?{...o,toolData:o.toolData?{...o.toolData,...i}:void 0}:o)}:a)})),interruptAllExecutingTools:()=>e(r=>({messages:r.messages.map(n=>({...n,messageParts:n.messageParts?.map(i=>i.type==="tool"&&i.toolData?.isExecuting?{...i,toolData:{...i.toolData,isExecuting:!1,isInterrupted:!0}}:i)}))})),setAiTyping:r=>e({isAiTyping:r}),setCurrentSessionId:r=>e({currentSessionId:r}),clearMessages:()=>e({messages:[]}),loadSessionMessages:r=>e({messages:r}),updateMcpStatus:r=>e(n=>({mcpStatus:{...n.mcpStatus,...r,lastUpdated:Date.now()}})),clearMcpStatus:()=>e({mcpStatus:{hasError:!1,connectedServers:[],connectionErrors:[],lastError:null,lastErrorDetails:void 0,lastUpdated:void 0}}),setPendingUserQuestion:r=>e({pendingUserQuestion:r}),setA2AStreamStart:(r,n,i)=>e(s=>({activeA2AStreams:{...s.activeA2AStreams,[r]:{sessionId:n,agentUrl:r,message:i,startedAt:Date.now(),isStreaming:!0,events:[]}}})),setA2AStreamEnd:r=>e(n=>{const i=n.activeA2AStreams[r];return i?{activeA2AStreams:{...n.activeA2AStreams,[r]:{...i,isStreaming:!1}}}:n}),addA2AStreamEvent:(r,n)=>e(i=>{const s=i.activeA2AStreams[r];return s?{activeA2AStreams:{...i.activeA2AStreams,[r]:{...s,events:[...s.events,n]}}}:{activeA2AStreams:{...i.activeA2AStreams,[r]:{sessionId:n.sessionId||"",agentUrl:r,message:"",startedAt:Date.now(),isStreaming:!0,events:[n]}}}}),getA2AStreamByUrl:r=>t().activeA2AStreams[r],setSidebarCollapsed:r=>e({sidebarCollapsed:r})}));class et{static instance;static STORAGE_KEY="active_chat_tabs";static WAKEUP_SIGNAL_KEY="tab_wakeup_signal";static WAKEUP_RESPONSE_KEY="tab_wakeup_response";static TAB_TIMEOUT=300*1e3;currentTabId;cleanupInterval;lastKnownSession=null;sessionResumeHistory=[];constructor(){this.currentTabId=this.generateTabId(),this.startCleanupTimer(),this.setupBeforeUnloadHandler(),console.log(`📱 TabManager initialized with ID: ${this.currentTabId}`)}static getInstance(){return et.instance||(et.instance=new et),et.instance}registerCurrentTab(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r),s={agentId:t,sessionId:r,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title};n[i]=s,this.saveActiveTabs(n),console.log(`📱 Tab registered: ${this.currentTabId} for session ${r}`),this.lastKnownSession={agentId:t,sessionId:r}}updateCurrentTabActivity(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);n[i]&&n[i].tabId===this.currentTabId&&(n[i].lastSeen=Date.now(),n[i].url=window.location.href,n[i].title=document.title,this.saveActiveTabs(n),this.lastKnownSession={agentId:t,sessionId:r})}hasActiveTab(t,r){return this.findActiveTabForSession(t,r)!==null}findActiveTabForSession(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);if(n[i]&&Date.now()-n[i].lastSeen<et.TAB_TIMEOUT)return n[i];for(const[s,a]of Object.entries(n))if(a.agentId===t&&a.sessionId===r){if(Date.now()-a.lastSeen<et.TAB_TIMEOUT)return a;delete n[s],this.saveActiveTabs(n),console.log(`🗑️ Cleaned up expired tab: ${r}`)}return null}async wakeupExistingTab(t,r,n){if(!this.findActiveTabForSession(t,r))return!1;const s={type:"WAKEUP",agentId:t,sessionId:r,requestId:this.generateRequestId(),timestamp:Date.now(),sourceUrl:n||window.location.href};return console.log(`🔔 Sending wakeup signal for session: ${r}`),localStorage.setItem(et.WAKEUP_SIGNAL_KEY,JSON.stringify(s)),new Promise(a=>{const o=setTimeout(()=>{console.log(`⏰ Wakeup timeout for session ${r}`),a(!1)},2e3),c=setInterval(()=>{const u=localStorage.getItem(et.WAKEUP_RESPONSE_KEY);if(u)try{const h=JSON.parse(u);if(h.requestId===s.requestId){clearTimeout(o),localStorage.removeItem(et.WAKEUP_RESPONSE_KEY),console.log(`✅ Tab awakened successfully: ${r}`),a(h.success);return}}catch(h){console.error("Error parsing wakeup response:",h)}},100);setTimeout(()=>clearInterval(c),2e3)})}setupWakeupListener(t,r){const n=s=>{if(s.key===et.WAKEUP_SIGNAL_KEY&&s.newValue)try{const a=JSON.parse(s.newValue);a.type==="WAKEUP"&&a.agentId===t&&a.sessionId===r&&this.handleWakeupSignal(a)}catch(a){console.error("Error handling wakeup signal:",a)}};window.addEventListener("storage",n);const i=setInterval(()=>{const s=localStorage.getItem(et.WAKEUP_SIGNAL_KEY);if(s)try{const a=JSON.parse(s);a.type==="WAKEUP"&&a.agentId===t&&a.sessionId===r&&Date.now()-a.timestamp<5e3&&this.handleWakeupSignal(a)}catch(a){console.error("Error polling wakeup signal:",a)}},500);return console.log(`🎯 Wakeup listener setup for session: ${r}`),()=>{window.removeEventListener("storage",n),clearInterval(i),console.log(`🎯 Wakeup listener cleaned up for session: ${r}`)}}updateCurrentTabSession(t,r,n,i){const s=this.getActiveTabs(),a=this.getTabKey(t,r);s[a]&&s[a].tabId===this.currentTabId&&delete s[a];const o=this.getTabKey(n,i);s[o]={agentId:n,sessionId:i,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(s),console.log(`🔄 Tab session updated: ${r} → ${i}`),this.lastKnownSession={agentId:n,sessionId:i}}unregisterCurrentTabSession(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);n[i]&&n[i].tabId===this.currentTabId&&(delete n[i],this.saveActiveTabs(n),console.log(`📤 Unregistered current tab from session: ${r}`)),this.lastKnownSession&&this.lastKnownSession.agentId===t&&this.lastKnownSession.sessionId===r&&(this.lastKnownSession=null)}handleSessionResume(t,r,n){const i=this.getActiveTabs(),s=this.getTabKey(t,r),a=this.getTabKey(t,n);i[s]&&i[s].tabId===this.currentTabId?(delete i[s],i[a]={agentId:t,sessionId:n,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(i),console.log(`🔄 Session resumed: ${r} → ${n}`),this.lastKnownSession={agentId:t,sessionId:n}):(this.registerCurrentTab(t,n),console.log(`🆕 Resumed session registered: ${n}`))}recordSessionResume(t,r,n){this.sessionResumeHistory.push({originalSessionId:r,newSessionId:n,timestamp:Date.now(),agentId:t}),this.sessionResumeHistory.length>100&&(this.sessionResumeHistory=this.sessionResumeHistory.slice(-100)),console.log(`📝 Recorded session resume: ${r} → ${n}`)}smartUpdateCurrentTab(){const t=window.location.href,r=this.parseSessionFromUrl(t);if(!r){this.lastKnownSession&&(this.unregisterCurrentTabSession(this.lastKnownSession.agentId,this.lastKnownSession.sessionId),this.lastKnownSession=null);return}const{agentId:n,sessionId:i}=r;if(this.lastKnownSession){const{agentId:s,sessionId:a}=this.lastKnownSession;a!==i||s!==n?this.sessionResumeHistory.find(l=>l.originalSessionId===a&&l.newSessionId===i&&l.agentId===n&&Date.now()-l.timestamp<3e4)?(this.handleSessionResume(n,a,i),console.log(`🔄 Detected session resume via URL: ${a} → ${i}`)):(this.updateCurrentTabSession(s,a,n,i),console.log(`🎯 Regular session switch: ${a} → ${i}`)):this.updateCurrentTabActivity(n,i)}else this.registerCurrentTab(n,i),console.log(`🎯 Initial session register: ${i}`);this.lastKnownSession={agentId:n,sessionId:i}}startSmartMonitoring(){this.smartUpdateCurrentTab();const t=()=>{setTimeout(()=>this.smartUpdateCurrentTab(),100)};window.addEventListener("popstate",t);const r=history.pushState,n=history.replaceState;return history.pushState=function(...i){r.apply(this,i),t()},history.replaceState=function(...i){n.apply(this,i),t()},console.log(`🎯 Smart monitoring started for tab: ${this.currentTabId}`),()=>{window.removeEventListener("popstate",t),history.pushState=r,history.replaceState=n,console.log(`🛑 Smart monitoring stopped for tab: ${this.currentTabId}`)}}handleWakeupSignal(t){console.log(`🔔 Received wakeup signal for session: ${t.sessionId}`);try{if(window.focus(),window.parent&&window.parent!==window&&window.parent.focus(),document.hidden){const n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});document.dispatchEvent(n)}}catch(n){console.log("Focus attempt failed:",n)}this.flashPageTitle(),this.playNotificationSound(),t.sourceUrl&&t.sourceUrl!==window.location.href?this.isSameSession(t.sourceUrl,window.location.href)?(console.log("🎯 URLs point to same session, forcing visibility"),this.makePageVisible()):(console.log(`🔄 Navigating to: ${t.sourceUrl}`),window.history.replaceState(null,"",t.sourceUrl),window.location.reload()):this.makePageVisible();const r={requestId:t.requestId,agentId:t.agentId,sessionId:t.sessionId,success:!0,timestamp:Date.now()};localStorage.setItem(et.WAKEUP_RESPONSE_KEY,JSON.stringify(r)),localStorage.removeItem(et.WAKEUP_SIGNAL_KEY),this.updateCurrentTabActivity(t.agentId,t.sessionId),console.log(`✅ Wakeup signal processed successfully for session: ${t.sessionId}`)}flashPageTitle(){const t=document.title;let r=0;const n=setInterval(()=>{document.title=r%2===0?"🔔 会话已唤起":t,r++,r>6&&(clearInterval(n),document.title=t)},500),i=()=>{clearInterval(n),document.title=t,window.removeEventListener("focus",i)};window.addEventListener("focus",i)}playNotificationSound(){try{const t=new(window.AudioContext||window.webkitAudioContext),r=t.createOscillator(),n=t.createGain();r.connect(n),n.connect(t.destination),r.frequency.setValueAtTime(800,t.currentTime),r.frequency.setValueAtTime(600,t.currentTime+.1),n.gain.setValueAtTime(.1,t.currentTime),n.gain.exponentialRampToValueAtTime(.01,t.currentTime+.2),r.start(t.currentTime),r.stop(t.currentTime+.2)}catch(t){console.log("Audio notification not supported:",t)}}makePageVisible(){try{window.scrollTo(0,0),document.fullscreenEnabled&&document.documentElement.requestFullscreen?.()?.then(()=>{setTimeout(()=>{document.exitFullscreen?.()},100)}).catch(n=>console.log("Fullscreen toggle failed:",n));const t=document.createElement("div");t.style.cssText=`
3
3
  position: fixed;
4
4
  top: 50%;
5
5
  left: 50%;
@@ -374,8 +374,8 @@ Please report this to https://github.com/markedjs/marked.`,t){let i="<p>An error
374
374
  node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const n=e.x,i=e.y,s=Math.abs(n-r.x),a=e.width/2;let o=r.x<t.x?a-s:a+s;const l=e.height/2,c=Math.abs(t.y-r.y),u=Math.abs(t.x-r.x);if(Math.abs(i-t.y)*a>Math.abs(n-t.x)*l){let h=r.y<t.y?t.y-l-i:i-l-t.y;o=u*h/c;const d={x:r.x<t.x?r.x+o:r.x-u+o,y:r.y<t.y?r.y+c-h:r.y-c+h};return o===0&&(d.x=t.x,d.y=t.y),u===0&&(d.x=t.x),c===0&&(d.y=t.y),K.debug(`abc89 top/bottom calc, Q ${c}, q ${h}, R ${u}, r ${o}`,d),d}else{r.x<t.x?o=t.x-a-n:o=n-a-t.x;let h=c*o/u,d=r.x<t.x?r.x+u-o:r.x-u+o,f=r.y<t.y?r.y+h:r.y-h;return K.debug(`sides calc abc89, Q ${c}, q ${h}, R ${u}, r ${o}`,{_x:d,_y:f}),o===0&&(d=t.x,f=t.y),u===0&&(d=t.x),c===0&&(f=t.y),{x:d,y:f}}},"intersection"),Tp=x((e,t)=>{K.warn("abc88 cutPathAtIntersect",e,t);let r=[],n=e[0],i=!1;return e.forEach(s=>{if(K.info("abc88 checking point",s,t),!U5(t,s)&&!i){const a=V5(t,n,s);K.debug("abc88 inside",s,n,a),K.debug("abc88 intersection",a,t);let o=!1;r.forEach(l=>{o=o||l.x===a.x&&l.y===a.y}),r.some(l=>l.x===a.x&&l.y===a.y)?K.warn("abc88 no intersect",a,r):r.push(a),i=!0}else K.warn("abc88 outside",s,n),n=s,i||r.push(s)}),K.debug("returning points",r),r},"cutPathAtIntersect");function qk(e){const t=[],r=[];for(let n=1;n<e.length-1;n++){const i=e[n-1],s=e[n],a=e[n+1];(i.x===s.x&&s.y===a.y&&Math.abs(s.x-a.x)>5&&Math.abs(s.y-i.y)>5||i.y===s.y&&s.x===a.x&&Math.abs(s.x-i.x)>5&&Math.abs(s.y-a.y)>5)&&(t.push(s),r.push(n))}return{cornerPoints:t,cornerPointPositions:r}}x(qk,"extractCornerPoints");var Ep=x(function(e,t,r){const n=t.x-e.x,i=t.y-e.y,s=Math.sqrt(n*n+i*i),a=r/s;return{x:t.x-a*n,y:t.y-a*i}},"findAdjacentPoint"),G5=x(function(e){const{cornerPointPositions:t}=qk(e),r=[];for(let n=0;n<e.length;n++)if(t.includes(n)){const i=e[n-1],s=e[n+1],a=e[n],o=Ep(i,a,5),l=Ep(s,a,5),c=l.x-o.x,u=l.y-o.y;r.push(o);const h=Math.sqrt(2)*2;let d={x:a.x,y:a.y};if(Math.abs(s.x-i.x)>10&&Math.abs(s.y-i.y)>=10){K.debug("Corner point fixing",Math.abs(s.x-i.x),Math.abs(s.y-i.y));const f=5;a.x===o.x?d={x:c<0?o.x-f+h:o.x+f-h,y:u<0?o.y-h:o.y+h}:d={x:c<0?o.x-h:o.x+h,y:u<0?o.y-f+h:o.y+f-h}}else K.debug("Corner point skipping fixing",Math.abs(s.x-i.x),Math.abs(s.y-i.y));r.push(d,l)}else r.push(e[n]);return r},"fixCorners"),Y5=x((e,t,r)=>{const n=e-t-r,i=2,s=2,a=i+s,o=Math.floor(n/a),l=Array(o).fill(`${i} ${s}`).join(" ");return`0 ${t} ${l} ${r}`},"generateDashArray"),X5=x(function(e,t,r,n,i,s,a,o=!1){const{handDrawnSeed:l}=Pe();let c=t.points,u=!1;const h=i;var d=s;const f=[];for(const $ in t.cssCompiledStyles)wy($)||f.push(t.cssCompiledStyles[$]);K.debug("UIO intersect check",t.points,d.x,h.x),d.intersect&&h.intersect&&!o&&(c=c.slice(1,t.points.length-1),c.unshift(h.intersect(c[0])),K.debug("Last point UIO",t.start,"-->",t.end,c[c.length-1],d,d.intersect(c[c.length-1])),c.push(d.intersect(c[c.length-1])));const g=btoa(JSON.stringify(c));t.toCluster&&(K.info("to cluster abc88",r.get(t.toCluster)),c=Tp(t.points,r.get(t.toCluster).node),u=!0),t.fromCluster&&(K.debug("from cluster abc88",r.get(t.fromCluster),JSON.stringify(c,null,2)),c=Tp(c.reverse(),r.get(t.fromCluster).node).reverse(),u=!0);let m=c.filter($=>!Number.isNaN($.y));m=G5(m);let b=Da;switch(b=so,t.curve){case"linear":b=so;break;case"basis":b=Da;break;case"cardinal":b=_0;break;case"bumpX":b=k0;break;case"bumpY":b=w0;break;case"catmullRom":b=E0;break;case"monotoneX":b=$0;break;case"monotoneY":b=j0;break;case"natural":b=D0;break;case"step":b=P0;break;case"stepAfter":b=F0;break;case"stepBefore":b=R0;break;default:b=Da}const{x:y,y:k}=G$(t),v=MI().x(y).y(k).curve(b);let S;switch(t.thickness){case"normal":S="edge-thickness-normal";break;case"thick":S="edge-thickness-thick";break;case"invisible":S="edge-thickness-invisible";break;default:S="edge-thickness-normal"}switch(t.pattern){case"solid":S+=" edge-pattern-solid";break;case"dotted":S+=" edge-pattern-dotted";break;case"dashed":S+=" edge-pattern-dashed";break;default:S+=" edge-pattern-solid"}let _,w=t.curve==="rounded"?Uk(Vk(m,t),5):v(m);const E=Array.isArray(t.style)?t.style:[t.style];let I=E.find($=>$?.startsWith("stroke:")),N=!1;if(t.look==="handDrawn"){const $=ae.svg(e);Object.assign([],m);const F=$.path(w,{roughness:.3,seed:l});S+=" transition",_=$e(F).select("path").attr("id",t.id).attr("class"," "+S+(t.classes?" "+t.classes:"")).attr("style",E?E.reduce((P,W)=>P+";"+W,""):"");let L=_.attr("d");_.attr("d",L),e.node().appendChild(_.node())}else{const $=f.join(";"),F=E?E.reduce((te,A)=>te+A+";",""):"";let L="";t.animate&&(L=" edge-animation-fast"),t.animation&&(L=" edge-animation-"+t.animation);const P=($?$+";"+F+";":F)+";"+(E?E.reduce((te,A)=>te+";"+A,""):"");_=e.append("path").attr("d",w).attr("id",t.id).attr("class"," "+S+(t.classes?" "+t.classes:"")+(L??"")).attr("style",P),I=P.match(/stroke:([^;]+)/)?.[1],N=t.animate===!0||!!t.animation||$.includes("animation");const W=_.node(),X=typeof W.getTotalLength=="function"?W.getTotalLength():0,C=qf[t.arrowTypeStart]||0,j=qf[t.arrowTypeEnd]||0;if(t.look==="neo"&&!N){const A=`stroke-dasharray: ${t.pattern==="dotted"||t.pattern==="dashed"?Y5(X,C,j):`0 ${C} ${X-C-j} ${j}`}; stroke-dashoffset: 0;`;_.attr("style",A+_.attr("style"))}}_.attr("data-edge",!0),_.attr("data-et","edge"),_.attr("data-id",t.id),_.attr("data-points",g),t.showPoints&&m.forEach($=>{e.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",$.x).attr("cy",$.y)});let T="";(Pe().flowchart.arrowMarkerAbsolute||Pe().state.arrowMarkerAbsolute)&&(T=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,T=T.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),K.info("arrowTypeStart",t.arrowTypeStart),K.info("arrowTypeEnd",t.arrowTypeEnd),z5(_,t,T,a,n,I);const M=Math.floor(c.length/2),B=c[M];ur.isLabelCoordinateInPath(B,_.attr("d"))||(u=!0);let R={};return u&&(R.updatedPath=c),R.originalPath=t.points,R},"insertEdge");function Uk(e,t){if(e.length<2)return"";let r="";const n=e.length,i=1e-5;for(let s=0;s<n;s++){const a=e[s],o=e[s-1],l=e[s+1];if(s===0)r+=`M${a.x},${a.y}`;else if(s===n-1)r+=`L${a.x},${a.y}`;else{const c=a.x-o.x,u=a.y-o.y,h=l.x-a.x,d=l.y-a.y,f=Math.hypot(c,u),g=Math.hypot(h,d);if(f<i||g<i){r+=`L${a.x},${a.y}`;continue}const m=c/f,b=u/f,y=h/g,k=d/g,v=m*y+b*k,S=Math.max(-1,Math.min(1,v)),_=Math.acos(S);if(_<i||Math.abs(Math.PI-_)<i){r+=`L${a.x},${a.y}`;continue}const w=Math.min(t/Math.sin(_/2),f/2,g/2),E=a.x-m*w,I=a.y-b*w,N=a.x+y*w,T=a.y+k*w;r+=`L${E},${I}`,r+=`Q${a.x},${a.y} ${N},${T}`}}return r}x(Uk,"generateRoundedPath");function fu(e,t){if(!e||!t)return{angle:0,deltaX:0,deltaY:0};const r=t.x-e.x,n=t.y-e.y;return{angle:Math.atan2(n,r),deltaX:r,deltaY:n}}x(fu,"calculateDeltaAndAngle");function Vk(e,t){const r=e.map(i=>({...i}));if(e.length>=2&&Ct[t.arrowTypeStart]){const i=Ct[t.arrowTypeStart],s=e[0],a=e[1],{angle:o}=fu(s,a),l=i*Math.cos(o),c=i*Math.sin(o);r[0].x=s.x+l,r[0].y=s.y+c}const n=e.length;if(n>=2&&Ct[t.arrowTypeEnd]){const i=Ct[t.arrowTypeEnd],s=e[n-1],a=e[n-2],{angle:o}=fu(a,s),l=i*Math.cos(o),c=i*Math.sin(o);r[n-1].x=s.x-l,r[n-1].y=s.y-c}return r}x(Vk,"applyMarkerOffsetsToPoints");var K5=x((e,t,r,n)=>{t.forEach(i=>{d4[i](e,r,n)})},"insertMarkers"),Q5=x((e,t,r)=>{K.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),Z5=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),J5=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),e4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),t4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),r4=x((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),n4=x((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),i4=x((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),s4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),a4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneStart").attr("class","marker onlyOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneEnd").attr("class","marker onlyOne "+t).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),o4=x((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneStart").attr("class","marker zeroOrOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("d","M9,0 L9,18");const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+t).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),i.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),l4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreStart").attr("class","marker oneOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreEnd").attr("class","marker oneOrMore "+t).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),c4=x((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+t).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),i.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),u4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0
375
375
  L20,10
376
376
  M20,10
377
- L0,20`)},"requirement_arrow"),h4=x((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),d4={extension:Q5,composition:Z5,aggregation:J5,dependency:e4,lollipop:t4,point:r4,circle:n4,cross:i4,barb:s4,only_one:a4,zero_or_one:o4,one_or_more:l4,zero_or_more:c4,requirement_arrow:u4,requirement_contains:h4},f4=K5,p4={common:Ei,getConfig:_t,insertCluster:v5,insertEdge:X5,insertEdgeLabel:H5,insertMarkers:f4,insertNode:Hk,interpolateToCurve:Ah,labelHelper:xe,log:K,positionEdgeLabel:q5},js={},Gk=x(e=>{for(const t of e)js[t.name]=t},"registerLayoutLoaders"),g4=x(()=>{Gk([{name:"dagre",loader:x(async()=>await Fe(()=>import("./dagre-6UL2VRFP-CyspA2sK.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")},{name:"cose-bilkent",loader:x(async()=>await Fe(()=>import("./cose-bilkent-S5V4N54A-BRJzSOA9.js"),__vite__mapDeps([23,24,7,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")}])},"registerDefaultLayoutLoaders");g4();var $6=x(async(e,t)=>{if(!(e.layoutAlgorithm in js))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);const r=js[e.layoutAlgorithm];return(await r.loader()).render(e,t,p4,{algorithm:r.algorithm})},"render"),j6=x((e="",{fallback:t="dagre"}={})=>{if(e in js)return e;if(t in js)return K.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm"),Yk="comm",Xk="rule",Kk="decl",m4="@import",x4="@namespace",y4="@keyframes",b4="@layer",Qk=Math.abs,Yh=String.fromCharCode;function Zk(e){return e.trim()}function za(e,t,r){return e.replace(t,r)}function k4(e,t,r){return e.indexOf(t,r)}function si(e,t){return e.charCodeAt(t)|0}function Ci(e,t,r){return e.slice(t,r)}function wr(e){return e.length}function w4(e){return e.length}function va(e,t){return t.push(e),e}var ll=1,Si=1,Jk=0,ir=0,it=0,Ii="";function Xh(e,t,r,n,i,s,a,o){return{value:e,root:t,parent:r,type:n,props:i,children:s,line:ll,column:Si,length:a,return:"",siblings:o}}function v4(){return it}function C4(){return it=ir>0?si(Ii,--ir):0,Si--,it===10&&(Si=1,ll--),it}function fr(){return it=ir<Jk?si(Ii,ir++):0,Si++,it===10&&(Si=1,ll++),it}function Jr(){return si(Ii,ir)}function Wa(){return ir}function cl(e,t){return Ci(Ii,e,t)}function Bs(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function S4(e){return ll=Si=1,Jk=wr(Ii=e),ir=0,[]}function _4(e){return Ii="",e}function ec(e){return Zk(cl(ir-1,pu(e===91?e+2:e===40?e+1:e)))}function T4(e){for(;(it=Jr())&&it<33;)fr();return Bs(e)>2||Bs(it)>3?"":" "}function E4(e,t){for(;--t&&fr()&&!(it<48||it>102||it>57&&it<65||it>70&&it<97););return cl(e,Wa()+(t<6&&Jr()==32&&fr()==32))}function pu(e){for(;fr();)switch(it){case e:return ir;case 34:case 39:e!==34&&e!==39&&pu(it);break;case 40:e===41&&pu(e);break;case 92:fr();break}return ir}function A4(e,t){for(;fr()&&e+it!==57;)if(e+it===84&&Jr()===47)break;return"/*"+cl(t,ir-1)+"*"+Yh(e===47?e:fr())}function N4(e){for(;!Bs(Jr());)fr();return cl(e,ir)}function M4(e){return _4(Ha("",null,null,null,[""],e=S4(e),0,[0],e))}function Ha(e,t,r,n,i,s,a,o,l){for(var c=0,u=0,h=a,d=0,f=0,g=0,m=1,b=1,y=1,k=0,v="",S=i,_=s,w=n,E=v;b;)switch(g=k,k=fr()){case 40:if(g!=108&&si(E,h-1)==58){k4(E+=za(ec(k),"&","&\f"),"&\f",Qk(c?o[c-1]:0))!=-1&&(y=-1);break}case 34:case 39:case 91:E+=ec(k);break;case 9:case 10:case 13:case 32:E+=T4(g);break;case 92:E+=E4(Wa()-1,7);continue;case 47:switch(Jr()){case 42:case 47:va(L4(A4(fr(),Wa()),t,r,l),l),(Bs(g||1)==5||Bs(Jr()||1)==5)&&wr(E)&&Ci(E,-1,void 0)!==" "&&(E+=" ");break;default:E+="/"}break;case 123*m:o[c++]=wr(E)*y;case 125*m:case 59:case 0:switch(k){case 0:case 125:b=0;case 59+u:y==-1&&(E=za(E,/\f/g,"")),f>0&&(wr(E)-h||m===0&&g===47)&&va(f>32?Np(E+";",n,r,h-1,l):Np(za(E," ","")+";",n,r,h-2,l),l);break;case 59:E+=";";default:if(va(w=Ap(E,t,r,c,u,i,o,v,S=[],_=[],h,s),s),k===123)if(u===0)Ha(E,t,w,w,S,s,h,o,_);else{switch(d){case 99:if(si(E,3)===110)break;case 108:if(si(E,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Ha(e,w,w,n&&va(Ap(e,w,w,0,0,i,o,v,i,S=[],h,_),_),i,_,h,o,n?S:_):Ha(E,w,w,w,[""],_,0,o,_)}}c=u=f=0,m=y=1,v=E="",h=a;break;case 58:h=1+wr(E),f=g;default:if(m<1){if(k==123)--m;else if(k==125&&m++==0&&C4()==125)continue}switch(E+=Yh(k),k*m){case 38:y=u>0?1:(E+="\f",-1);break;case 44:o[c++]=(wr(E)-1)*y,y=1;break;case 64:Jr()===45&&(E+=ec(fr())),d=Jr(),u=h=wr(v=E+=N4(Wa())),k++;break;case 45:g===45&&wr(E)==2&&(m=0)}}return s}function Ap(e,t,r,n,i,s,a,o,l,c,u,h){for(var d=i-1,f=i===0?s:[""],g=w4(f),m=0,b=0,y=0;m<n;++m)for(var k=0,v=Ci(e,d+1,d=Qk(b=a[m])),S=e;k<g;++k)(S=Zk(b>0?f[k]+" "+v:za(v,/&\f/g,f[k])))&&(l[y++]=S);return Xh(e,t,r,i===0?Xk:o,l,c,u,h)}function L4(e,t,r,n){return Xh(e,t,r,Yk,Yh(v4()),Ci(e,2,-2),0,n)}function Np(e,t,r,n,i){return Xh(e,t,r,Kk,Ci(e,0,n),Ci(e,n+1,-1),n,i)}function gu(e,t){for(var r="",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||"";return r}function I4(e,t,r,n){switch(e.type){case b4:if(e.children.length)break;case m4:case x4:case Kk:return e.return=e.return||e.value;case Yk:return"";case y4:return e.return=e.value+"{"+gu(e.children,n)+"}";case Xk:if(!wr(e.value=e.props.join(",")))return""}return wr(r=gu(e.children,n))?e.return=e.value+"{"+r+"}":""}var $4=_y(Object.keys,Object),j4=Object.prototype,B4=j4.hasOwnProperty;function D4(e){if(!Zo(e))return $4(e);var t=[];for(var r in Object(e))B4.call(e,r)&&r!="constructor"&&t.push(r);return t}var mu=Fn(Ar,"DataView"),xu=Fn(Ar,"Promise"),yu=Fn(Ar,"Set"),bu=Fn(Ar,"WeakMap"),Mp="[object Map]",P4="[object Object]",Lp="[object Promise]",Ip="[object Set]",$p="[object WeakMap]",jp="[object DataView]",R4=Rn(mu),F4=Rn(Is),O4=Rn(xu),z4=Rn(yu),W4=Rn(bu),bn=Ni;(mu&&bn(new mu(new ArrayBuffer(1)))!=jp||Is&&bn(new Is)!=Mp||xu&&bn(xu.resolve())!=Lp||yu&&bn(new yu)!=Ip||bu&&bn(new bu)!=$p)&&(bn=function(e){var t=Ni(e),r=t==P4?e.constructor:void 0,n=r?Rn(r):"";if(n)switch(n){case R4:return jp;case F4:return Mp;case O4:return Lp;case z4:return Ip;case W4:return $p}return t});var H4="[object Map]",q4="[object Set]",U4=Object.prototype,V4=U4.hasOwnProperty;function Bp(e){if(e==null)return!0;if(Jo(e)&&(bo(e)||typeof e=="string"||typeof e.splice=="function"||Th(e)||Eh(e)||yo(e)))return!e.length;var t=bn(e);if(t==H4||t==q4)return!e.size;if(Zo(e))return!D4(e).length;for(var r in e)if(V4.call(e,r))return!1;return!0}var ew="c4",G4=x(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),Y4=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./c4Diagram-YG6GDRKO-rQ7Sg7Wk.js");return{diagram:t}},__vite__mapDeps([25,26,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ew,diagram:e}},"loader"),X4={id:ew,detector:G4,loader:Y4},K4=X4,tw="flowchart",Q4=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),Z4=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-DfzFZA_E.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:tw,diagram:e}},"loader"),J4={id:tw,detector:Q4,loader:Z4},eP=J4,rw="flowchart-v2",tP=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-d3"?!1:(t?.flowchart?.defaultRenderer==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(e)),"detector"),rP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-DfzFZA_E.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:rw,diagram:e}},"loader"),nP={id:rw,detector:tP,loader:rP},iP=nP,nw="er",sP=x(e=>/^\s*erDiagram/.test(e),"detector"),aP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./erDiagram-Q2GNP2WA-DGxfS2rl.js");return{diagram:t}},__vite__mapDeps([32,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:nw,diagram:e}},"loader"),oP={id:nw,detector:sP,loader:aP},lP=oP,iw="gitGraph",cP=x(e=>/^\s*gitGraph/.test(e),"detector"),uP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./gitGraphDiagram-NY62KEGX-Dtx_CAB8.js");return{diagram:t}},__vite__mapDeps([33,34,35,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:iw,diagram:e}},"loader"),hP={id:iw,detector:cP,loader:uP},dP=hP,sw="gantt",fP=x(e=>/^\s*gantt/.test(e),"detector"),pP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./ganttDiagram-LVOFAZNH-C070lUxD.js");return{diagram:t}},__vite__mapDeps([37,7,38,39,40,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:sw,diagram:e}},"loader"),gP={id:sw,detector:fP,loader:pP},mP=gP,aw="info",xP=x(e=>/^\s*info/.test(e),"detector"),yP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./infoDiagram-F6ZHWCRC-wciq3AJm.js");return{diagram:t}},__vite__mapDeps([41,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:aw,diagram:e}},"loader"),bP={id:aw,detector:xP,loader:yP},ow="pie",kP=x(e=>/^\s*pie/.test(e),"detector"),wP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./pieDiagram-ADFJNKIX-Ds2zvkRu.js");return{diagram:t}},__vite__mapDeps([42,34,36,8,7,2,4,5,43,44,39,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ow,diagram:e}},"loader"),vP={id:ow,detector:kP,loader:wP},lw="quadrantChart",CP=x(e=>/^\s*quadrantChart/.test(e),"detector"),SP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./quadrantDiagram-AYHSOK5B-B1Y817H5.js");return{diagram:t}},__vite__mapDeps([45,38,39,40,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:lw,diagram:e}},"loader"),_P={id:lw,detector:CP,loader:SP},TP=_P,cw="xychart",EP=x(e=>/^\s*xychart(-beta)?/.test(e),"detector"),AP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./xychartDiagram-PRI3JC2R-DfaBqToH.js");return{diagram:t}},__vite__mapDeps([46,39,44,38,40,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:cw,diagram:e}},"loader"),NP={id:cw,detector:EP,loader:AP},MP=NP,uw="requirement",LP=x(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),IP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./requirementDiagram-UZGBJVZJ-NlxZm-hZ.js");return{diagram:t}},__vite__mapDeps([47,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:uw,diagram:e}},"loader"),$P={id:uw,detector:LP,loader:IP},jP=$P,hw="sequence",BP=x(e=>/^\s*sequenceDiagram/.test(e),"detector"),DP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./sequenceDiagram-WL72ISMW-DYDJBnXk.js");return{diagram:t}},__vite__mapDeps([48,26,35,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:hw,diagram:e}},"loader"),PP={id:hw,detector:BP,loader:DP},RP=PP,dw="class",FP=x((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),OP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./classDiagram-2ON5EDUG-CTS5wt-5.js");return{diagram:t}},__vite__mapDeps([49,50,28,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:dw,diagram:e}},"loader"),zP={id:dw,detector:FP,loader:OP},WP=zP,fw="classDiagram",HP=x((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),qP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./classDiagram-v2-WZHVMYZB-CTS5wt-5.js");return{diagram:t}},__vite__mapDeps([51,50,28,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:fw,diagram:e}},"loader"),UP={id:fw,detector:HP,loader:qP},VP=UP,pw="state",GP=x((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),YP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./stateDiagram-FKZM4ZOC-DreRcts0.js");return{diagram:t}},__vite__mapDeps([52,53,29,30,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:pw,diagram:e}},"loader"),XP={id:pw,detector:GP,loader:YP},KP=XP,gw="stateDiagram",QP=x((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),ZP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./stateDiagram-v2-4FDKWEC3-DVn3R4qq.js");return{diagram:t}},__vite__mapDeps([54,53,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:gw,diagram:e}},"loader"),JP={id:gw,detector:QP,loader:ZP},eR=JP,mw="journey",tR=x(e=>/^\s*journey/.test(e),"detector"),rR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./journeyDiagram-XKPGCS4Q-Doo7bbK4.js");return{diagram:t}},__vite__mapDeps([55,26,28,43,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:mw,diagram:e}},"loader"),nR={id:mw,detector:tR,loader:rR},iR=nR,sR=x((e,t,r)=>{K.debug(`rendering svg for syntax error
378
- `);const n=FI(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Hm(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),xw={draw:sR},aR=xw,oR={db:{},renderer:xw,parser:{parse:x(()=>{},"parse")}},lR=oR,yw="flowchart-elk",cR=x((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),uR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-DfzFZA_E.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:yw,diagram:e}},"loader"),hR={id:yw,detector:cR,loader:uR},dR=hR,bw="timeline",fR=x(e=>/^\s*timeline/.test(e),"detector"),pR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./timeline-definition-IT6M3QCI-CMqq3WzB.js");return{diagram:t}},__vite__mapDeps([56,43,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:bw,diagram:e}},"loader"),gR={id:bw,detector:fR,loader:pR},mR=gR,kw="mindmap",xR=x(e=>/^\s*mindmap/.test(e),"detector"),yR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./mindmap-definition-VGOIOE7T-DcvFn5_f.js");return{diagram:t}},__vite__mapDeps([57,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:kw,diagram:e}},"loader"),bR={id:kw,detector:xR,loader:yR},kR=bR,ww="kanban",wR=x(e=>/^\s*kanban/.test(e),"detector"),vR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./kanban-definition-3W4ZIXB7-ySUSdsMd.js");return{diagram:t}},__vite__mapDeps([58,28,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ww,diagram:e}},"loader"),CR={id:ww,detector:wR,loader:vR},SR=CR,vw="sankey",_R=x(e=>/^\s*sankey(-beta)?/.test(e),"detector"),TR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./sankeyDiagram-TZEHDZUN-Bp6uTBx3.js");return{diagram:t}},__vite__mapDeps([59,44,39,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:vw,diagram:e}},"loader"),ER={id:vw,detector:_R,loader:TR},AR=ER,Cw="packet",NR=x(e=>/^\s*packet(-beta)?/.test(e),"detector"),MR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-S2PKOQOG-TgieQ_Qa.js");return{diagram:t}},__vite__mapDeps([60,34,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Cw,diagram:e}},"loader"),LR={id:Cw,detector:NR,loader:MR},Sw="radar",IR=x(e=>/^\s*radar-beta/.test(e),"detector"),$R=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-QEK2KX5R-DBN-iReL.js");return{diagram:t}},__vite__mapDeps([61,34,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Sw,diagram:e}},"loader"),jR={id:Sw,detector:IR,loader:$R},_w="block",BR=x(e=>/^\s*block(-beta)?/.test(e),"detector"),DR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./blockDiagram-VD42YOAC-C26_2YFA.js");return{diagram:t}},__vite__mapDeps([62,28,5,2,1,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:_w,diagram:e}},"loader"),PR={id:_w,detector:BR,loader:DR},RR=PR,Tw="architecture",FR=x(e=>/^\s*architecture/.test(e),"detector"),OR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./architectureDiagram-VXUJARFQ-74Xp_5Wk.js");return{diagram:t}},__vite__mapDeps([63,34,36,8,7,2,4,5,24,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Tw,diagram:e}},"loader"),zR={id:Tw,detector:FR,loader:OR},WR=zR,Ew="treemap",HR=x(e=>/^\s*treemap/.test(e),"detector"),qR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-PSM6KHXK-D2Be0BvE.js");return{diagram:t}},__vite__mapDeps([64,30,34,36,8,7,2,4,5,40,44,39,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Ew,diagram:e}},"loader"),UR={id:Ew,detector:HR,loader:qR},Dp=!1,ul=x(()=>{Dp||(Dp=!0,Za("error",lR,e=>e.toLowerCase().trim()==="error"),Za("---",{db:{clear:x(()=>{},"clear")},styles:{},renderer:{draw:x(()=>{},"draw")},parser:{parse:x(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:x(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),Tc(dR,kR,WR),Tc(K4,SR,VP,WP,lP,mP,bP,vP,jP,RP,iP,eP,mR,dP,eR,KP,iR,TP,AR,LR,MP,RR,jR,UR))},"addDiagrams"),VR=x(async()=>{K.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Nn).map(async([r,{detector:n,loader:i}])=>{if(i)try{Mc(r)}catch{try{const{diagram:s,id:a}=await i();Za(a,s,n)}catch(s){throw K.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Nn[r],s}}}))).filter(r=>r.status==="rejected");if(t.length>0){K.error(`Failed to load ${t.length} external diagrams`);for(const r of t)K.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),GR="graphics-document document";function Aw(e,t){e.attr("role",GR),t!==""&&e.attr("aria-roledescription",t)}x(Aw,"setA11yDiagramInfo");function Nw(e,t,r,n){if(e.insert!==void 0){if(r){const i=`chart-desc-${n}`;e.attr("aria-describedby",i),e.insert("desc",":first-child").attr("id",i).text(r)}if(t){const i=`chart-title-${n}`;e.attr("aria-labelledby",i),e.insert("title",":first-child").attr("id",i).text(t)}}}x(Nw,"addSVGa11yTitleDescription");var Tn,ku=(Tn=class{constructor(t,r,n,i,s){this.type=t,this.text=r,this.db=n,this.parser=i,this.renderer=s}static async fromText(t,r={}){const n=_t(),i=Qu(t,n);t=UD(t)+`
377
+ L0,20`)},"requirement_arrow"),h4=x((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),d4={extension:Q5,composition:Z5,aggregation:J5,dependency:e4,lollipop:t4,point:r4,circle:n4,cross:i4,barb:s4,only_one:a4,zero_or_one:o4,one_or_more:l4,zero_or_more:c4,requirement_arrow:u4,requirement_contains:h4},f4=K5,p4={common:Ei,getConfig:_t,insertCluster:v5,insertEdge:X5,insertEdgeLabel:H5,insertMarkers:f4,insertNode:Hk,interpolateToCurve:Ah,labelHelper:xe,log:K,positionEdgeLabel:q5},js={},Gk=x(e=>{for(const t of e)js[t.name]=t},"registerLayoutLoaders"),g4=x(()=>{Gk([{name:"dagre",loader:x(async()=>await Fe(()=>import("./dagre-6UL2VRFP-Cu-RCZe5.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")},{name:"cose-bilkent",loader:x(async()=>await Fe(()=>import("./cose-bilkent-S5V4N54A-BPWEQsNm.js"),__vite__mapDeps([23,24,7,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")}])},"registerDefaultLayoutLoaders");g4();var $6=x(async(e,t)=>{if(!(e.layoutAlgorithm in js))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);const r=js[e.layoutAlgorithm];return(await r.loader()).render(e,t,p4,{algorithm:r.algorithm})},"render"),j6=x((e="",{fallback:t="dagre"}={})=>{if(e in js)return e;if(t in js)return K.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm"),Yk="comm",Xk="rule",Kk="decl",m4="@import",x4="@namespace",y4="@keyframes",b4="@layer",Qk=Math.abs,Yh=String.fromCharCode;function Zk(e){return e.trim()}function za(e,t,r){return e.replace(t,r)}function k4(e,t,r){return e.indexOf(t,r)}function si(e,t){return e.charCodeAt(t)|0}function Ci(e,t,r){return e.slice(t,r)}function wr(e){return e.length}function w4(e){return e.length}function va(e,t){return t.push(e),e}var ll=1,Si=1,Jk=0,ir=0,it=0,Ii="";function Xh(e,t,r,n,i,s,a,o){return{value:e,root:t,parent:r,type:n,props:i,children:s,line:ll,column:Si,length:a,return:"",siblings:o}}function v4(){return it}function C4(){return it=ir>0?si(Ii,--ir):0,Si--,it===10&&(Si=1,ll--),it}function fr(){return it=ir<Jk?si(Ii,ir++):0,Si++,it===10&&(Si=1,ll++),it}function Jr(){return si(Ii,ir)}function Wa(){return ir}function cl(e,t){return Ci(Ii,e,t)}function Bs(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function S4(e){return ll=Si=1,Jk=wr(Ii=e),ir=0,[]}function _4(e){return Ii="",e}function ec(e){return Zk(cl(ir-1,pu(e===91?e+2:e===40?e+1:e)))}function T4(e){for(;(it=Jr())&&it<33;)fr();return Bs(e)>2||Bs(it)>3?"":" "}function E4(e,t){for(;--t&&fr()&&!(it<48||it>102||it>57&&it<65||it>70&&it<97););return cl(e,Wa()+(t<6&&Jr()==32&&fr()==32))}function pu(e){for(;fr();)switch(it){case e:return ir;case 34:case 39:e!==34&&e!==39&&pu(it);break;case 40:e===41&&pu(e);break;case 92:fr();break}return ir}function A4(e,t){for(;fr()&&e+it!==57;)if(e+it===84&&Jr()===47)break;return"/*"+cl(t,ir-1)+"*"+Yh(e===47?e:fr())}function N4(e){for(;!Bs(Jr());)fr();return cl(e,ir)}function M4(e){return _4(Ha("",null,null,null,[""],e=S4(e),0,[0],e))}function Ha(e,t,r,n,i,s,a,o,l){for(var c=0,u=0,h=a,d=0,f=0,g=0,m=1,b=1,y=1,k=0,v="",S=i,_=s,w=n,E=v;b;)switch(g=k,k=fr()){case 40:if(g!=108&&si(E,h-1)==58){k4(E+=za(ec(k),"&","&\f"),"&\f",Qk(c?o[c-1]:0))!=-1&&(y=-1);break}case 34:case 39:case 91:E+=ec(k);break;case 9:case 10:case 13:case 32:E+=T4(g);break;case 92:E+=E4(Wa()-1,7);continue;case 47:switch(Jr()){case 42:case 47:va(L4(A4(fr(),Wa()),t,r,l),l),(Bs(g||1)==5||Bs(Jr()||1)==5)&&wr(E)&&Ci(E,-1,void 0)!==" "&&(E+=" ");break;default:E+="/"}break;case 123*m:o[c++]=wr(E)*y;case 125*m:case 59:case 0:switch(k){case 0:case 125:b=0;case 59+u:y==-1&&(E=za(E,/\f/g,"")),f>0&&(wr(E)-h||m===0&&g===47)&&va(f>32?Np(E+";",n,r,h-1,l):Np(za(E," ","")+";",n,r,h-2,l),l);break;case 59:E+=";";default:if(va(w=Ap(E,t,r,c,u,i,o,v,S=[],_=[],h,s),s),k===123)if(u===0)Ha(E,t,w,w,S,s,h,o,_);else{switch(d){case 99:if(si(E,3)===110)break;case 108:if(si(E,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Ha(e,w,w,n&&va(Ap(e,w,w,0,0,i,o,v,i,S=[],h,_),_),i,_,h,o,n?S:_):Ha(E,w,w,w,[""],_,0,o,_)}}c=u=f=0,m=y=1,v=E="",h=a;break;case 58:h=1+wr(E),f=g;default:if(m<1){if(k==123)--m;else if(k==125&&m++==0&&C4()==125)continue}switch(E+=Yh(k),k*m){case 38:y=u>0?1:(E+="\f",-1);break;case 44:o[c++]=(wr(E)-1)*y,y=1;break;case 64:Jr()===45&&(E+=ec(fr())),d=Jr(),u=h=wr(v=E+=N4(Wa())),k++;break;case 45:g===45&&wr(E)==2&&(m=0)}}return s}function Ap(e,t,r,n,i,s,a,o,l,c,u,h){for(var d=i-1,f=i===0?s:[""],g=w4(f),m=0,b=0,y=0;m<n;++m)for(var k=0,v=Ci(e,d+1,d=Qk(b=a[m])),S=e;k<g;++k)(S=Zk(b>0?f[k]+" "+v:za(v,/&\f/g,f[k])))&&(l[y++]=S);return Xh(e,t,r,i===0?Xk:o,l,c,u,h)}function L4(e,t,r,n){return Xh(e,t,r,Yk,Yh(v4()),Ci(e,2,-2),0,n)}function Np(e,t,r,n,i){return Xh(e,t,r,Kk,Ci(e,0,n),Ci(e,n+1,-1),n,i)}function gu(e,t){for(var r="",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||"";return r}function I4(e,t,r,n){switch(e.type){case b4:if(e.children.length)break;case m4:case x4:case Kk:return e.return=e.return||e.value;case Yk:return"";case y4:return e.return=e.value+"{"+gu(e.children,n)+"}";case Xk:if(!wr(e.value=e.props.join(",")))return""}return wr(r=gu(e.children,n))?e.return=e.value+"{"+r+"}":""}var $4=_y(Object.keys,Object),j4=Object.prototype,B4=j4.hasOwnProperty;function D4(e){if(!Zo(e))return $4(e);var t=[];for(var r in Object(e))B4.call(e,r)&&r!="constructor"&&t.push(r);return t}var mu=Fn(Ar,"DataView"),xu=Fn(Ar,"Promise"),yu=Fn(Ar,"Set"),bu=Fn(Ar,"WeakMap"),Mp="[object Map]",P4="[object Object]",Lp="[object Promise]",Ip="[object Set]",$p="[object WeakMap]",jp="[object DataView]",R4=Rn(mu),F4=Rn(Is),O4=Rn(xu),z4=Rn(yu),W4=Rn(bu),bn=Ni;(mu&&bn(new mu(new ArrayBuffer(1)))!=jp||Is&&bn(new Is)!=Mp||xu&&bn(xu.resolve())!=Lp||yu&&bn(new yu)!=Ip||bu&&bn(new bu)!=$p)&&(bn=function(e){var t=Ni(e),r=t==P4?e.constructor:void 0,n=r?Rn(r):"";if(n)switch(n){case R4:return jp;case F4:return Mp;case O4:return Lp;case z4:return Ip;case W4:return $p}return t});var H4="[object Map]",q4="[object Set]",U4=Object.prototype,V4=U4.hasOwnProperty;function Bp(e){if(e==null)return!0;if(Jo(e)&&(bo(e)||typeof e=="string"||typeof e.splice=="function"||Th(e)||Eh(e)||yo(e)))return!e.length;var t=bn(e);if(t==H4||t==q4)return!e.size;if(Zo(e))return!D4(e).length;for(var r in e)if(V4.call(e,r))return!1;return!0}var ew="c4",G4=x(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),Y4=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./c4Diagram-YG6GDRKO-D4-A7anv.js");return{diagram:t}},__vite__mapDeps([25,26,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ew,diagram:e}},"loader"),X4={id:ew,detector:G4,loader:Y4},K4=X4,tw="flowchart",Q4=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),Z4=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-i4BoJF1x.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:tw,diagram:e}},"loader"),J4={id:tw,detector:Q4,loader:Z4},eP=J4,rw="flowchart-v2",tP=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-d3"?!1:(t?.flowchart?.defaultRenderer==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(e)),"detector"),rP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-i4BoJF1x.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:rw,diagram:e}},"loader"),nP={id:rw,detector:tP,loader:rP},iP=nP,nw="er",sP=x(e=>/^\s*erDiagram/.test(e),"detector"),aP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./erDiagram-Q2GNP2WA-BPkK30VB.js");return{diagram:t}},__vite__mapDeps([32,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:nw,diagram:e}},"loader"),oP={id:nw,detector:sP,loader:aP},lP=oP,iw="gitGraph",cP=x(e=>/^\s*gitGraph/.test(e),"detector"),uP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./gitGraphDiagram-NY62KEGX-x4fV46FC.js");return{diagram:t}},__vite__mapDeps([33,34,35,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:iw,diagram:e}},"loader"),hP={id:iw,detector:cP,loader:uP},dP=hP,sw="gantt",fP=x(e=>/^\s*gantt/.test(e),"detector"),pP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./ganttDiagram-LVOFAZNH-C7Fa9LKl.js");return{diagram:t}},__vite__mapDeps([37,7,38,39,40,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:sw,diagram:e}},"loader"),gP={id:sw,detector:fP,loader:pP},mP=gP,aw="info",xP=x(e=>/^\s*info/.test(e),"detector"),yP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./infoDiagram-F6ZHWCRC-BdQeovBp.js");return{diagram:t}},__vite__mapDeps([41,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:aw,diagram:e}},"loader"),bP={id:aw,detector:xP,loader:yP},ow="pie",kP=x(e=>/^\s*pie/.test(e),"detector"),wP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./pieDiagram-ADFJNKIX-CYrXbDgB.js");return{diagram:t}},__vite__mapDeps([42,34,36,8,7,2,4,5,43,44,39,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ow,diagram:e}},"loader"),vP={id:ow,detector:kP,loader:wP},lw="quadrantChart",CP=x(e=>/^\s*quadrantChart/.test(e),"detector"),SP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./quadrantDiagram-AYHSOK5B-zshqcC4H.js");return{diagram:t}},__vite__mapDeps([45,38,39,40,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:lw,diagram:e}},"loader"),_P={id:lw,detector:CP,loader:SP},TP=_P,cw="xychart",EP=x(e=>/^\s*xychart(-beta)?/.test(e),"detector"),AP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./xychartDiagram-PRI3JC2R-DrK8IYgl.js");return{diagram:t}},__vite__mapDeps([46,39,44,38,40,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:cw,diagram:e}},"loader"),NP={id:cw,detector:EP,loader:AP},MP=NP,uw="requirement",LP=x(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),IP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./requirementDiagram-UZGBJVZJ-Eykzktn0.js");return{diagram:t}},__vite__mapDeps([47,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:uw,diagram:e}},"loader"),$P={id:uw,detector:LP,loader:IP},jP=$P,hw="sequence",BP=x(e=>/^\s*sequenceDiagram/.test(e),"detector"),DP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./sequenceDiagram-WL72ISMW-u-TgVaJG.js");return{diagram:t}},__vite__mapDeps([48,26,35,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:hw,diagram:e}},"loader"),PP={id:hw,detector:BP,loader:DP},RP=PP,dw="class",FP=x((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),OP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./classDiagram-2ON5EDUG-CJDL4zC-.js");return{diagram:t}},__vite__mapDeps([49,50,28,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:dw,diagram:e}},"loader"),zP={id:dw,detector:FP,loader:OP},WP=zP,fw="classDiagram",HP=x((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),qP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./classDiagram-v2-WZHVMYZB-CJDL4zC-.js");return{diagram:t}},__vite__mapDeps([51,50,28,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:fw,diagram:e}},"loader"),UP={id:fw,detector:HP,loader:qP},VP=UP,pw="state",GP=x((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),YP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./stateDiagram-FKZM4ZOC-L8719ElY.js");return{diagram:t}},__vite__mapDeps([52,53,29,30,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:pw,diagram:e}},"loader"),XP={id:pw,detector:GP,loader:YP},KP=XP,gw="stateDiagram",QP=x((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),ZP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./stateDiagram-v2-4FDKWEC3-DTGjtVxm.js");return{diagram:t}},__vite__mapDeps([54,53,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:gw,diagram:e}},"loader"),JP={id:gw,detector:QP,loader:ZP},eR=JP,mw="journey",tR=x(e=>/^\s*journey/.test(e),"detector"),rR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./journeyDiagram-XKPGCS4Q-BByZuK2D.js");return{diagram:t}},__vite__mapDeps([55,26,28,43,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:mw,diagram:e}},"loader"),nR={id:mw,detector:tR,loader:rR},iR=nR,sR=x((e,t,r)=>{K.debug(`rendering svg for syntax error
378
+ `);const n=FI(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Hm(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),xw={draw:sR},aR=xw,oR={db:{},renderer:xw,parser:{parse:x(()=>{},"parse")}},lR=oR,yw="flowchart-elk",cR=x((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),uR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-i4BoJF1x.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:yw,diagram:e}},"loader"),hR={id:yw,detector:cR,loader:uR},dR=hR,bw="timeline",fR=x(e=>/^\s*timeline/.test(e),"detector"),pR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./timeline-definition-IT6M3QCI-CJpXtgDn.js");return{diagram:t}},__vite__mapDeps([56,43,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:bw,diagram:e}},"loader"),gR={id:bw,detector:fR,loader:pR},mR=gR,kw="mindmap",xR=x(e=>/^\s*mindmap/.test(e),"detector"),yR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./mindmap-definition-VGOIOE7T-CIjq8dul.js");return{diagram:t}},__vite__mapDeps([57,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:kw,diagram:e}},"loader"),bR={id:kw,detector:xR,loader:yR},kR=bR,ww="kanban",wR=x(e=>/^\s*kanban/.test(e),"detector"),vR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./kanban-definition-3W4ZIXB7-BW-KJqNN.js");return{diagram:t}},__vite__mapDeps([58,28,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ww,diagram:e}},"loader"),CR={id:ww,detector:wR,loader:vR},SR=CR,vw="sankey",_R=x(e=>/^\s*sankey(-beta)?/.test(e),"detector"),TR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./sankeyDiagram-TZEHDZUN-CUUZTWXT.js");return{diagram:t}},__vite__mapDeps([59,44,39,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:vw,diagram:e}},"loader"),ER={id:vw,detector:_R,loader:TR},AR=ER,Cw="packet",NR=x(e=>/^\s*packet(-beta)?/.test(e),"detector"),MR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-S2PKOQOG-BjaXE_9W.js");return{diagram:t}},__vite__mapDeps([60,34,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Cw,diagram:e}},"loader"),LR={id:Cw,detector:NR,loader:MR},Sw="radar",IR=x(e=>/^\s*radar-beta/.test(e),"detector"),$R=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-QEK2KX5R-CXLsPBvR.js");return{diagram:t}},__vite__mapDeps([61,34,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Sw,diagram:e}},"loader"),jR={id:Sw,detector:IR,loader:$R},_w="block",BR=x(e=>/^\s*block(-beta)?/.test(e),"detector"),DR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./blockDiagram-VD42YOAC-CSewaHod.js");return{diagram:t}},__vite__mapDeps([62,28,5,2,1,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:_w,diagram:e}},"loader"),PR={id:_w,detector:BR,loader:DR},RR=PR,Tw="architecture",FR=x(e=>/^\s*architecture/.test(e),"detector"),OR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./architectureDiagram-VXUJARFQ-CMo92Xcm.js");return{diagram:t}},__vite__mapDeps([63,34,36,8,7,2,4,5,24,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Tw,diagram:e}},"loader"),zR={id:Tw,detector:FR,loader:OR},WR=zR,Ew="treemap",HR=x(e=>/^\s*treemap/.test(e),"detector"),qR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-PSM6KHXK-DBfl10yA.js");return{diagram:t}},__vite__mapDeps([64,30,34,36,8,7,2,4,5,40,44,39,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Ew,diagram:e}},"loader"),UR={id:Ew,detector:HR,loader:qR},Dp=!1,ul=x(()=>{Dp||(Dp=!0,Za("error",lR,e=>e.toLowerCase().trim()==="error"),Za("---",{db:{clear:x(()=>{},"clear")},styles:{},renderer:{draw:x(()=>{},"draw")},parser:{parse:x(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:x(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),Tc(dR,kR,WR),Tc(K4,SR,VP,WP,lP,mP,bP,vP,jP,RP,iP,eP,mR,dP,eR,KP,iR,TP,AR,LR,MP,RR,jR,UR))},"addDiagrams"),VR=x(async()=>{K.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Nn).map(async([r,{detector:n,loader:i}])=>{if(i)try{Mc(r)}catch{try{const{diagram:s,id:a}=await i();Za(a,s,n)}catch(s){throw K.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Nn[r],s}}}))).filter(r=>r.status==="rejected");if(t.length>0){K.error(`Failed to load ${t.length} external diagrams`);for(const r of t)K.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),GR="graphics-document document";function Aw(e,t){e.attr("role",GR),t!==""&&e.attr("aria-roledescription",t)}x(Aw,"setA11yDiagramInfo");function Nw(e,t,r,n){if(e.insert!==void 0){if(r){const i=`chart-desc-${n}`;e.attr("aria-describedby",i),e.insert("desc",":first-child").attr("id",i).text(r)}if(t){const i=`chart-title-${n}`;e.attr("aria-labelledby",i),e.insert("title",":first-child").attr("id",i).text(t)}}}x(Nw,"addSVGa11yTitleDescription");var Tn,ku=(Tn=class{constructor(t,r,n,i,s){this.type=t,this.text=r,this.db=n,this.parser=i,this.renderer=s}static async fromText(t,r={}){const n=_t(),i=Qu(t,n);t=UD(t)+`
379
379
  `;try{Mc(i)}catch{const c=gA(i);if(!c)throw new Lm(`Diagram ${i} not found.`);const{id:u,diagram:h}=await c();Za(u,h)}const{db:s,parser:a,renderer:o,init:l}=Mc(i);return a.parser&&(a.parser.yy=s),s.clear?.(),l?.(n),r.title&&s.setDiagramTitle?.(r.title),await a.parse(t),new Tn(i,t,s,a,o)}async render(t,r){await this.renderer.draw(this.text,t,r,this)}getParser(){return this.parser}getType(){return this.type}},x(Tn,"Diagram"),Tn),Pp=[],YR=x(()=>{Pp.forEach(e=>{e()}),Pp=[]},"attachFunctions"),XR=x(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function Mw(e){const t=e.match(Mm);if(!t)return{text:e,metadata:{}};let r=V$(t[1],{schema:U$})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};const n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:e.slice(t[0].length),metadata:n}}x(Mw,"extractFrontMatter");var KR=x(e=>e.replace(/\r\n?/g,`
380
380
  `).replace(/<(\w+)([^>]*)>/g,(t,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),QR=x(e=>{const{text:t,metadata:r}=Mw(e),{displayMode:n,title:i,config:s={}}=r;return n&&(s.gantt||(s.gantt={}),s.gantt.displayMode=n),{title:i,config:s,text:t}},"processFrontmatter"),ZR=x(e=>{const t=ur.detectInit(e)??{},r=ur.detectDirective(e,"wrap");return Array.isArray(r)?t.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(t.wrap=!0),{text:ID(e),directive:t}},"processDirectives");function Kh(e){const t=KR(e),r=QR(t),n=ZR(r.text),i=$h(r.config,n.directive);return e=XR(n.text),{code:e,title:r.title,config:i}}x(Kh,"preprocessDiagram");function Lw(e){const t=new TextEncoder().encode(e),r=Array.from(t,n=>String.fromCodePoint(n)).join("");return btoa(r)}x(Lw,"toBase64");var JR=5e4,eF="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",tF="sandbox",rF="loose",nF="http://www.w3.org/2000/svg",iF="http://www.w3.org/1999/xlink",sF="http://www.w3.org/1999/xhtml",aF="100%",oF="100%",lF="border:0;margin:0;",cF="margin:0",uF="allow-top-navigation-by-user-activation allow-popups",hF='The "iframe" tag is not supported by your browser.',dF=["foreignobject"],fF=["dominant-baseline"];function Qh(e){const t=Kh(e);return Ka(),LA(t.config??{}),t}x(Qh,"processAndSetConfigs");async function Iw(e,t){ul();try{const{code:r,config:n}=Qh(e);return{diagramType:(await jw(r)).type,config:n}}catch(r){if(t?.suppressErrors)return!1;throw r}}x(Iw,"parse");var Rp=x((e,t,r=[])=>`
381
381
  .${e} ${t} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),pF=x((e,t=new Map)=>{let r="";if(e.themeCSS!==void 0&&(r+=`
@@ -417,7 +417,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
417
417
  `+t("webFetchTool.truncated"):r.prompt||"",isCode:!0})]}),e.toolResult&&!e.isError&&p.jsxs("div",{className:"mt-3",children:[p.jsx("p",{className:"text-xs font-medium text-gray-600 mb-2",children:t("webFetchTool.webAnalysisResult")}),p.jsx("div",{className:"p-3 rounded-md border bg-teal-50 border-teal-200 text-sm whitespace-pre-wrap break-words text-teal-800",children:e.toolResult})]})]})},fO=({execution:e})=>{const{t}=Ce("components"),r=e.toolInput,n=Array.isArray(r?.allowed_domains)?r.allowed_domains:[],i=Array.isArray(r?.blocked_domains)?r.blocked_domains:[],s=()=>{if(r.query)return`${r.query}`};return p.jsxs(Ke,{execution:e,subtitle:s(),showResult:!1,hideToolName:!1,children:[p.jsxs("div",{children:[p.jsx(Ve,{label:t("webSearchTool.searchQueryLabel"),value:r.query}),(n.length>0||i.length>0)&&p.jsxs("div",{className:"mt-2 space-y-1",children:[n.length>0&&p.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[p.jsx("span",{className:"text-xs font-medium text-green-600",children:t("webSearchTool.allowedDomains")}),n.map((a,o)=>p.jsx("span",{className:"px-2 py-1 bg-green-100 text-green-700 text-xs rounded",children:a},o))]}),i.length>0&&p.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[p.jsx("span",{className:"text-xs font-medium text-red-600",children:t("webSearchTool.blockedDomains")}),i.map((a,o)=>p.jsx("span",{className:"px-2 py-1 bg-red-100 text-red-700 text-xs rounded",children:a},o))]})]})]}),e.toolResult&&!e.isError&&p.jsxs("div",{className:"mt-3",children:[p.jsx("p",{className:"text-xs font-medium text-gray-600 mb-2",children:t("webSearchTool.searchResults")}),p.jsx("div",{className:"p-3 rounded-md border bg-sky-50 border-sky-200 text-sm whitespace-pre-wrap break-words text-sky-800",children:e.toolResult})]})]})};function Hw(e){const t=e.split("__");return t.length!==3||t[0]!=="mcp"?null:{toolId:e,prefix:t[0],serverName:t[1],toolName:t[2]}}function pO(e){return e.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function gO(e){try{const t=JSON.parse(e);return Array.isArray(t)?{content:t}:t&&typeof t=="object"&&("content"in t||"isError"in t)?t:{content:{type:"text",text:e}}}catch{return{content:{type:"text",text:e}}}}const mO=({content:e})=>{switch(e.type){case"text":return p.jsx("div",{className:"p-3 rounded-md border bg-green-50 border-green-200",children:p.jsx("pre",{className:"text-sm font-mono text-green-700 whitespace-pre-wrap break-words",children:e.text})});case"image":{const{t:r}=Ce("components"),n=e;return p.jsxs("div",{className:"p-3 rounded-md border bg-blue-50 border-blue-200",children:[p.jsx("div",{className:"text-xs font-medium text-blue-600 mb-2",children:r("mcpTool.image",{mimeType:n.mimeType})}),p.jsx("img",{src:`data:${n.mimeType};base64,${n.data}`,alt:"MCP Tool Result",className:"max-w-full h-auto rounded border shadow-sm",style:{maxHeight:"400px"}})]})}case"resource":{const{t:r}=Ce("components"),n=e;return p.jsxs("div",{className:"p-3 rounded-md border bg-purple-50 border-purple-200",children:[p.jsx("div",{className:"text-xs font-medium text-purple-600 mb-2",children:r("mcpTool.resource")}),p.jsxs("div",{className:"text-sm text-purple-700 space-y-1",children:[p.jsxs("div",{children:[p.jsxs("span",{className:"font-medium",children:[r("mcpTool.uri"),":"]})," ",n.resource.uri]}),n.resource.name&&p.jsxs("div",{children:[p.jsxs("span",{className:"font-medium",children:[r("mcpTool.name"),":"]})," ",n.resource.name]}),n.resource.description&&p.jsxs("div",{children:[p.jsxs("span",{className:"font-medium",children:[r("mcpTool.description"),":"]})," ",n.resource.description]}),n.resource.mimeType&&p.jsxs("div",{children:[p.jsxs("span",{className:"font-medium",children:[r("mcpTool.type"),":"]})," ",n.resource.mimeType]})]})]})}default:const{t}=Ce("components");return p.jsxs("div",{className:"p-3 rounded-md border bg-gray-50 border-gray-200",children:[p.jsx("div",{className:"text-xs font-medium text-gray-600 mb-2",children:t("mcpTool.unknownType",{type:e.type})}),p.jsx("pre",{className:"text-sm font-mono text-gray-700 whitespace-pre-wrap break-words",children:JSON.stringify(e,null,2)})]})}},xO=({result:e,isError:t})=>{const{t:r}=Ce("components");if(!e)return null;if(t)return p.jsxs("div",{className:"mt-3",children:[p.jsx("p",{className:"text-xs font-medium text-gray-600 mb-2",children:r("mcpTool.errorMessage")}),p.jsx("div",{className:"p-3 rounded-md border bg-red-50 border-red-200 text-red-700 text-sm font-mono whitespace-pre-wrap break-words",children:e})]});const n=gO(e);if(!n||!n.content)return p.jsxs("div",{className:"mt-3",children:[p.jsx("p",{className:"text-xs font-medium text-gray-600 mb-2",children:r("mcpTool.executionResult")}),p.jsx("div",{className:"p-3 rounded-md border bg-green-50 border-green-200 text-green-700 text-sm font-mono whitespace-pre-wrap break-words",children:e})]});const i=Array.isArray(n.content)?n.content:[n.content];return p.jsxs("div",{className:"mt-3",children:[p.jsx("p",{className:"text-xs font-medium text-gray-600 mb-2",children:r("mcpTool.executionResult")}),n._meta?.progress!==void 0&&n._meta?.progressTotal&&p.jsxs("div",{className:"mb-3 p-2 bg-blue-50 border border-blue-200 rounded text-sm",children:[p.jsx("div",{className:"text-blue-700 mb-1",children:r("mcpTool.progress",{current:n._meta.progress,total:n._meta.progressTotal})}),p.jsx("div",{className:"w-full bg-blue-200 rounded-full h-2",children:p.jsx("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${n._meta.progress/n._meta.progressTotal*100}%`}})})]}),p.jsx("div",{className:"space-y-3",children:i.map((s,a)=>p.jsx(mO,{content:s},a))})]})},yO=({execution:e})=>{const{t}=Ce("components"),r=Hw(e.toolName);if(!r)return p.jsx(Ke,{execution:e});const{serverName:n,toolName:i}=r,s=pO(i),a={...e,toolName:s},o=t("mcpTool.subtitle",{toolName:i,serverName:n});return p.jsx(Ke,{execution:a,subtitle:o,showResult:!1,isMcpTool:!0,hideToolName:!1,children:p.jsxs("div",{className:"space-y-3",children:[p.jsx(Ve,{label:t("mcpTool.parameters"),value:e.toolInput,isCode:!0}),e.toolResult&&p.jsx(xO,{result:e.toolResult,isError:e.isError})]})})},bO=e=>e.filter(t=>t.kind==="text"&&!!t.text).map(t=>t.text).join(""),Zp=e=>{if(typeof e=="string")return e;if(typeof e=="object"&&e!==null)return e.response},kO=e=>{if(!e||typeof e!="string")return"Unknown Agent";try{const r=new URL(e).hostname;if(/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/.test(r))return r;const i=r.split(".");return i.length>=2?i[0]:r}catch{const t=e.match(/\/([^/]+)$/);return t?t[1]:e}},qw=({execution:e})=>{const{t}=Ce(),r=e.toolInput;let n;if(e.toolResult)if(e.isError===!0)n={success:!1,error:e.toolResult};else{const R=e.toolResult;let $;const F=R.match(/\[System\] Session ID: ([a-f0-9-]+)/);F&&($=F[1]);try{const L=JSON.parse(R);typeof L=="object"&&L!==null?n={success:L.success!==!1,data:L.data||L.response||R,sessionId:L.sessionId||$,contextId:L.contextId,taskId:L.taskId,error:L.error}:n={success:!0,data:R,sessionId:$}}catch{n={success:!0,data:R,sessionId:$}}}const i=r.agentName||kO(r.agentUrl),s=!n&&!e.toolResult,a=n?.status==="running"||n?.status==="pending",o=n?.success===!0||!!n?.data&&!n?.error,l=n?.success===!1||!!n?.error,c=(B,R)=>B?R==="working"?{icon:p.jsx(_a,{className:"w-4 h-4 animate-spin"}),className:"bg-blue-100 text-blue-800 border-blue-200 dark:bg-blue-900/30 dark:text-blue-300 dark:border-blue-800",text:t("tools.a2a.working","Working")}:R==="input-required"?{icon:p.jsx(ac,{className:"w-4 h-4"}),className:"bg-yellow-100 text-yellow-800 border-yellow-200 dark:bg-yellow-900/30 dark:text-yellow-300 dark:border-yellow-800",text:t("tools.a2a.inputRequired","Input Required")}:{icon:p.jsx(_a,{className:"w-4 h-4 animate-spin"}),className:"bg-purple-100 text-purple-800 border-purple-200 dark:bg-purple-900/30 dark:text-purple-300 dark:border-purple-800",text:t("tools.a2a.streaming","Streaming...")}:s||a?{icon:p.jsx(_a,{className:"w-4 h-4 animate-spin"}),className:"bg-blue-100 text-blue-800 border-blue-200 dark:bg-blue-900/30 dark:text-blue-300 dark:border-blue-800",text:a?t("tools.a2a.running","Running"):t("tools.a2a.calling","Calling")}:R==="completed"||o&&!l?{icon:p.jsx(tn,{className:"w-4 h-4"}),className:"bg-green-100 text-green-800 border-green-200 dark:bg-green-900/30 dark:text-green-300 dark:border-green-800",text:t("tools.a2a.success","Success")}:R==="failed"||R==="rejected"||l&&!o?{icon:p.jsx(Ta,{className:"w-4 h-4"}),className:"bg-red-100 text-red-800 border-red-200 dark:bg-red-900/30 dark:text-red-300 dark:border-red-800",text:t("tools.a2a.error","Failed")}:R==="canceled"?{icon:p.jsx(Ta,{className:"w-4 h-4"}),className:"bg-gray-100 text-gray-800 border-gray-200 dark:bg-gray-800/30 dark:text-gray-300 dark:border-gray-700",text:t("tools.a2a.canceled","Canceled")}:n?{icon:p.jsx(tn,{className:"w-4 h-4"}),className:"bg-green-100 text-green-800 border-green-200 dark:bg-green-900/30 dark:text-green-300 dark:border-green-800",text:t("tools.a2a.success","Success")}:{icon:p.jsx(Ta,{className:"w-4 h-4"}),className:"bg-red-100 text-red-800 border-red-200 dark:bg-red-900/30 dark:text-red-300 dark:border-red-800",text:t("tools.a2a.error","Failed")},u=(B,R)=>{let $=i;return r.useTask&&($+=` • ${t("tools.a2a.asyncTask","Async Task")}`),R?$+=` • ${R}`:B?$+=` • ${t("tools.a2a.streaming","Streaming...")}`:s?$+=` • ${t("tools.a2a.calling","Calling...")}`:a?$+=` • ${t("tools.a2a.running","Running...")}`:l&&!o?$+=` • ${t("tools.a2a.error","Failed")}`:(o||n)&&($+=` • ${t("tools.a2a.success","Success")}`),$},[h]=gg(),d=h.get("project"),[f,g]=xr.useState([]),[m]=xr.useState([]),[b,y]=xr.useState(!1),[k,v]=xr.useState(!1),[S]=xr.useState(),_=Xe(B=>B.activeA2AStreams[r.agentUrl]),w=_?.sessionId||n?.sessionId||r.sessionId;xr.useEffect(()=>{_?.isStreaming===!0?(v(!0),y(!0)):_&&_.isStreaming===!1&&v(!1)},[_?.isStreaming]),xr.useEffect(()=>{(n?.error||e.isError)&&v(!1)},[n?.error,e.isError]),xr.useEffect(()=>{if(!_?.events||_.events.length===0)return;const B=[];let R=null;const $=new Map;for(const F of _.events)if(F.type==="system")R={id:`sys-${Date.now()}-${Math.random()}`,role:"assistant",timestamp:new Date().toISOString(),messageParts:[{id:`sys-part-${Date.now()}`,type:"text",content:`[System] Session ID: ${F.sessionId||"N/A"}`,order:0}]},B.push(R);else if(F.type==="assistant"&&F.message?.content){R={id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",timestamp:new Date().toISOString(),messageParts:[]},B.push(R);for(const L of F.message.content)if(L.type==="text")R.messageParts.push({id:`text-${Date.now()}-${Math.random()}`,type:"text",content:L.text||"",order:R.messageParts.length});else if(L.type==="tool_use"){const P=L.id||`tool-${Date.now()}`,W={id:P,type:"tool",toolData:{id:P,toolName:L.name||"unknown",toolInput:L.input||{},toolResult:void 0,isError:!1},order:R.messageParts.length};R.messageParts.push(W),L.id&&$.set(L.id,W)}}else if(F.type==="user"&&F.message?.content){for(const L of F.message.content)if(L.type==="tool_result"&&L.tool_use_id){const P=$.get(L.tool_use_id);P&&P.toolData&&(P.toolData.toolResult=typeof L.content=="string"?L.content:JSON.stringify(L.content),P.toolData.isError=L.is_error||!1)}}B.length>0&&g(B)},[_?.events]);const{currentService:E}=F1(),{getToken:I}=l1(),N=E?I(E.id)?.token:null;xr.useEffect(()=>{if(!w||!d)return;(async()=>{try{const $=`/api/a2a/history/${encodeURIComponent(d)}/${w}`,F=await fetch($,{headers:N?{Authorization:`Bearer ${N}`}:{}});if(!F.ok){console.error("Failed to fetch A2A history:",F.status);return}const{history:L}=await F.json();y(!0),L&&Array.isArray(L)&&T(L),v(!1)}catch(R){console.error("Error fetching A2A history:",R),y(!1),v(!1)}})()},[w,d,N]);const T=B=>{const R=[];let $=null;const F=new Map;for(const L of B)if(L.type==="system")(!$||$.role!=="assistant")&&($={id:`sys-${Date.now()}`,role:"assistant",timestamp:new Date().toISOString(),messageParts:[]},R.push($)),$.messageParts.push({id:`sys-part-${Date.now()}`,type:"text",content:`[System] Session ID: ${L.sessionId||"N/A"}`,order:$.messageParts.length});else if(L.type==="assistant"&&L.message?.content){(!$||$.role!=="assistant")&&($={id:L.sessionId||`assistant-${Date.now()}`,role:"assistant",timestamp:new Date().toISOString(),messageParts:[]},R.push($));for(const P of L.message.content)if(P.type==="text")$.messageParts.push({id:`text-${Date.now()}-${Math.random()}`,type:"text",content:P.text,order:$.messageParts.length});else if(P.type==="tool_use"){const W={id:P.id||`tool-${Date.now()}`,type:"tool",toolData:{id:P.id,toolName:P.name,toolInput:P.input,toolResult:void 0,isError:!1},order:$.messageParts.length};$.messageParts.push(W),P.id&&F.set(P.id,W)}}else if(L.type==="user"&&L.message?.content){for(const P of L.message.content)if(P.type==="tool_result"&&P.tool_use_id){const W=F.get(P.tool_use_id);W&&W.toolData&&(W.toolData.toolResult=typeof P.content=="string"?P.content:JSON.stringify(P.content),W.toolData.isError=P.is_error||!1)}}g(R)},M=c(k,S);return p.jsx(Ke,{execution:e,subtitle:u(k,S),showResult:!1,isMcpTool:!0,hideToolName:!1,customIcon:p.jsx(ud,{className:"w-4 h-4 text-purple-600 dark:text-purple-400"}),overrideToolName:"call_external_agent",children:p.jsxs("div",{className:"space-y-3",children:[p.jsxs("div",{className:"bg-gray-50 dark:bg-gray-800/50 rounded-lg p-4 space-y-3",children:[p.jsxs("div",{className:`inline-flex items-center gap-2 px-3 py-1 rounded-full border text-sm font-medium ${M.className}`,children:[M.icon,M.text]}),p.jsxs("div",{className:"bg-white dark:bg-gray-900 border dark:border-gray-700 rounded px-3 py-2 text-sm font-mono text-gray-800 dark:text-gray-200",children:[p.jsx("span",{className:"text-gray-500 dark:text-gray-400 mr-2",children:"Agent:"}),p.jsx("span",{className:"break-all",children:r.agentUrl})]}),p.jsxs("div",{className:"bg-white dark:bg-gray-900 border dark:border-gray-700 rounded px-3 py-2 text-sm text-gray-800 dark:text-gray-200",children:[p.jsx("span",{className:"text-gray-500 dark:text-gray-400 mr-2 block mb-1",children:"Message:"}),p.jsx("div",{className:"whitespace-pre-wrap",children:r.message})]})]}),b&&p.jsxs("div",{className:"flex items-center gap-2 text-sm text-purple-600 dark:text-purple-400",children:[p.jsxs("div",{className:"relative",children:[p.jsx("div",{className:"w-2 h-2 bg-purple-500 rounded-full animate-pulse"}),k&&p.jsx("div",{className:"absolute inset-0 w-2 h-2 bg-purple-500 rounded-full animate-ping"})]}),p.jsx("span",{children:k?S?`${t("tools.a2a.taskState","Task state")}: ${S}`:t("tools.a2a.liveStreaming","Live streaming from external agent..."):t("tools.a2a.connected","Connected to history stream")})]}),f.length>0&&p.jsx(zw,{taskPrompt:r.message,messageFlow:f,defaultExpanded:!0}),m.length>0&&p.jsxs("div",{className:"space-y-2",children:[p.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-gray-700 dark:text-gray-300",children:[p.jsx(M1,{className:"w-4 h-4"}),t("tools.a2a.artifacts","Artifacts")," (",m.length,")"]}),p.jsx("div",{className:"space-y-2",children:m.map(B=>p.jsxs("div",{className:"bg-white dark:bg-gray-900 border dark:border-gray-700 rounded-lg p-3",children:[p.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-gray-800 dark:text-gray-200 mb-2",children:[p.jsx(ug,{className:"w-4 h-4 text-blue-500"}),B.name||B.artifactId]}),B.description&&p.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400 mb-2",children:B.description}),p.jsx("pre",{className:"text-xs bg-gray-50 dark:bg-gray-800 rounded p-2 overflow-x-auto",children:bO(B.parts)||JSON.stringify(B.parts,null,2)})]},B.artifactId))})]}),n&&!f.length&&p.jsxs(p.Fragment,{children:[Zp(n.data)&&p.jsxs("div",{children:[p.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[p.jsx(ud,{className:"w-4 h-4"}),t("tools.a2a.response","Response")]}),p.jsx("pre",{className:"bg-gray-900 text-green-400 rounded-lg px-3 py-2 text-sm font-mono overflow-x-auto whitespace-pre-wrap border dark:border-gray-700",children:Zp(n.data)})]}),n.error&&p.jsxs("div",{children:[p.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-red-700 dark:text-red-400 mb-2",children:[p.jsx(ac,{className:"w-4 h-4"}),t("tools.a2a.error","Error")]}),p.jsx("pre",{className:"bg-red-50 dark:bg-red-900/20 text-red-800 dark:text-red-300 border border-red-200 dark:border-red-800 rounded-lg px-3 py-2 text-sm font-mono overflow-x-auto whitespace-pre-wrap",children:n.error})]}),(n.taskId||n.contextId||typeof n.data=="object"&&n.data?.metadata)&&p.jsxs("div",{className:"text-xs text-gray-500 dark:text-gray-400 pt-2 border-t border-gray-200 dark:border-gray-700 space-y-1",children:[n.taskId&&p.jsxs("div",{children:["Task ID: ",n.taskId]}),n.contextId&&p.jsxs("div",{children:["Context ID: ",n.contextId]}),typeof n.data=="object"&&n.data?.metadata&&p.jsxs("div",{children:["Metadata: ",JSON.stringify(n.data.metadata)]})]})]})]})})},wO=({execution:e})=>{const{t}=Ce("components"),n=e.toolInput?.skill||t("skillTool.unknownSkill"),i=e.toolUseResult,s=i?.commandName,a=()=>s&&s!==n?`${n} → ${s}`:n,o=p.jsx(hd,{className:"w-4 h-4"});return p.jsx(Ke,{execution:e,subtitle:a(),customIcon:o,overrideToolName:t("skillTool.toolName"),hideToolName:!1,children:p.jsxs("div",{className:"space-y-3",children:[p.jsxs("div",{children:[p.jsx("span",{className:"text-xs font-medium text-gray-600 dark:text-gray-400 block mb-1",children:t("skillTool.skillName")}),p.jsx("span",{className:"text-sm px-2 py-1 bg-gradient-to-r from-purple-100 to-pink-100 dark:from-purple-900/30 dark:to-pink-900/30 text-purple-800 dark:text-purple-300 rounded font-medium",children:n})]}),s&&s!==n&&p.jsxs("div",{children:[p.jsx("span",{className:"text-xs font-medium text-gray-600 dark:text-gray-400 block mb-1",children:t("skillTool.commandName")}),p.jsx("span",{className:"text-sm px-2 py-1 bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-300 rounded font-mono",children:s})]}),e.isExecuting&&p.jsxs("div",{className:"flex items-center space-x-2 text-purple-600 dark:text-purple-400",children:[p.jsx("div",{className:"w-4 h-4 border-2 border-purple-600 dark:border-purple-400 border-t-transparent rounded-full animate-spin"}),p.jsx("span",{className:"text-sm",children:t("skillTool.loading")})]}),!e.isExecuting&&i?.success&&p.jsxs("div",{className:"flex items-center space-x-2 text-green-600 dark:text-green-400",children:[p.jsx(hd,{className:"w-4 h-4"}),p.jsx("span",{className:"text-sm",children:t("skillTool.launched")})]})]})})},vO={"a2a-client__call_external_agent":qw},Uw=({execution:e,onAskUserQuestionSubmit:t})=>{const{t:r}=Ce("components"),n=Hw(e.toolName);if(n){if(n.serverName==="ask-user-question"&&n.toolName==="ask_user_question")return p.jsx(Kp,{execution:e,onSubmit:t});const i=`${n.serverName}__${n.toolName}`,s=vO[i];return s?p.jsx(s,{execution:e}):p.jsx(yO,{execution:e})}switch(e.toolName){case"Task":return p.jsx(BF,{execution:e});case"Bash":return p.jsx(DF,{execution:e});case"BashOutput":return p.jsx(w1,{execution:e});case"KillBash":return p.jsx(k1,{execution:e});case"Glob":return p.jsx(PF,{execution:e});case"Grep":return p.jsx(RF,{execution:e});case"LS":return p.jsx(FF,{execution:e});case"exit_plan_mode":return p.jsx(OF,{execution:e});case"Read":return p.jsx(zF,{execution:e});case"Edit":return p.jsx(rO,{execution:e});case"MultiEdit":return p.jsx(nO,{execution:e});case"Write":return p.jsx(aO,{execution:e});case"NotebookRead":return p.jsx(oO,{execution:e});case"NotebookEdit":return p.jsx(lO,{execution:e});case"ListMcpResources":return p.jsx(cO,{execution:e});case"ReadMcpResource":return p.jsx(uO,{execution:e});case"TimeMachine":return p.jsx(hO,{execution:e});case"AskUserQuestion":return p.jsx(Kp,{execution:e,onSubmit:t});case"WebFetch":return p.jsx(dO,{execution:e});case"TodoWrite":return p.jsx(b1,{execution:e});case"WebSearch":return p.jsx(fO,{execution:e});case"call_external_agent":return p.jsx(qw,{execution:e});case"Skill":return p.jsx(wO,{execution:e});default:return p.jsx(Ke,{execution:e,children:p.jsxs("div",{children:[p.jsx("p",{className:"text-sm text-gray-600 mb-2",children:r("toolRenderer.unknownToolType")}),p.jsx("div",{className:"text-xs text-gray-500 bg-gray-100 p-2 rounded font-mono",children:JSON.stringify(e.toolInput,null,2)})]})})}},CO=e=>({id:`tool_${Date.now()}_${Math.random()}`,toolName:e.toolName,toolInput:e.toolInput,toolResult:e.toolResult,toolUseResult:e.toolUseResult,isExecuting:e.isExecuting||!1,isError:e.isError||!1,timestamp:new Date,claudeId:e.claudeId}),Jp=e=>{const t=CO(e);return p.jsx(Uw,{execution:t,onAskUserQuestionSubmit:e.onAskUserQuestionSubmit})},Io=({images:e,initialIndex:t=0,onClose:r})=>{const[n,i]=O.useState(()=>!e||e.length===0?0:Math.min(t,e.length-1)),[s,a]=O.useState(1),[o,l]=O.useState({x:0,y:0}),[c,u]=O.useState(!1),[h,d]=O.useState({x:0,y:0}),[f,g]=O.useState(0),[m,b]=O.useState(!1),y=O.useRef(null),k=O.useRef(null),v=()=>{if(!y.current||!k.current)return 1;const L=y.current,P=k.current,W=L.naturalWidth,X=L.naturalHeight,C=P.clientWidth,j=P.clientHeight-120,te=C/W,A=j/X;return Math.min(te,A,1)},S=()=>{b(!0);const L=v();a(L),l({x:0,y:0})},_=e&&e.length>0?e[n]:"",w=()=>{e&&n>0&&i(n-1)},E=()=>{e&&n<e.length-1&&i(n+1)};O.useEffect(()=>{if(e&&e.length>0){const L=Math.min(t,e.length-1);i(L)}},[e,t]),O.useEffect(()=>{_&&(a(1),l({x:0,y:0}),g(0),u(!1),b(!1))},[_]),O.useEffect(()=>{if(!_)return;const L=P=>{switch(P.key){case"Escape":r();break;case"ArrowLeft":P.preventDefault(),w();break;case"ArrowRight":P.preventDefault(),E();break;case"ArrowUp":P.preventDefault(),w();break;case"ArrowDown":P.preventDefault(),E();break;case"=":case"+":(P.ctrlKey||P.metaKey)&&(P.preventDefault(),I("in"));break;case"-":(P.ctrlKey||P.metaKey)&&(P.preventDefault(),I("out"));break;case"0":(P.ctrlKey||P.metaKey)&&(P.preventDefault(),F());break;case"r":case"R":(P.ctrlKey||P.metaKey)&&(P.preventDefault(),N());break}};return window.addEventListener("keydown",L),()=>window.removeEventListener("keydown",L)},[_,n,e?.length]);const I=L=>{a(P=>{const W=L==="in"?P*1.2:P/1.2;return Math.max(.1,Math.min(5,W))})},N=()=>{g(L=>(L+90)%360)},T=L=>{L.target===y.current&&(u(!0),d({x:L.clientX-o.x,y:L.clientY-o.y}))},M=L=>{c&&l({x:L.clientX-h.x,y:L.clientY-h.y})},B=()=>{u(!1)},R=L=>{L.preventDefault();const P=L.deltaY>0?"out":"in";I(P)},$=()=>{if(_){const L=document.createElement("a");L.href=_,L.download=`image-${n+1}.jpg`,L.click()}},F=()=>{const L=v();a(L),l({x:0,y:0}),g(0)};return!e||e.length===0?null:p.jsxs("div",{ref:k,className:"fixed inset-0 bg-black bg-opacity-90 flex items-center justify-center z-50",onClick:L=>{L.target===k.current&&r()},onMouseMove:M,onMouseUp:B,onWheel:R,children:[p.jsxs("div",{className:"absolute top-4 left-1/2 transform -translate-x-1/2 flex items-center space-x-2 bg-black bg-opacity-50 rounded-lg px-4 py-2 z-10",children:[e.length>1&&p.jsxs(p.Fragment,{children:[p.jsxs("span",{className:"text-white text-sm",children:[n+1," / ",e.length]}),p.jsx("div",{className:"w-px h-6 bg-gray-500"})]}),p.jsx("button",{onClick:()=>I("out"),className:"text-white hover:text-gray-300 p-2 hover:bg-white hover:bg-opacity-20 rounded transition-colors",title:"缩小 (Ctrl + -)",children:p.jsx(ag,{className:"w-5 h-5"})}),p.jsxs("span",{className:"text-white text-sm min-w-16 text-center",children:[Math.round(s*100),"%"]}),p.jsx("button",{onClick:()=>I("in"),className:"text-white hover:text-gray-300 p-2 hover:bg-white hover:bg-opacity-20 rounded transition-colors",title:"放大 (Ctrl + +)",children:p.jsx(og,{className:"w-5 h-5"})}),p.jsx("div",{className:"w-px h-6 bg-gray-500"}),p.jsx("button",{onClick:N,className:"text-white hover:text-gray-300 p-2 hover:bg-white hover:bg-opacity-20 rounded transition-colors",title:"旋转 90°",children:p.jsx(L1,{className:"w-5 h-5"})}),p.jsx("button",{onClick:F,className:"text-white hover:text-gray-300 p-2 hover:bg-white hover:bg-opacity-20 rounded transition-colors text-sm",title:"适应窗口大小",children:"适应"}),p.jsx("button",{onClick:()=>{a(1),l({x:0,y:0}),g(0)},className:"text-white hover:text-gray-300 p-2 hover:bg-white hover:bg-opacity-20 rounded transition-colors text-sm",title:"显示原始大小",children:"1:1"}),p.jsx("button",{onClick:$,className:"text-white hover:text-gray-300 p-2 hover:bg-white hover:bg-opacity-20 rounded transition-colors",title:"下载图片",children:p.jsx(lg,{className:"w-5 h-5"})})]}),e.length>1&&p.jsxs(p.Fragment,{children:[p.jsx("button",{onClick:w,disabled:n===0,className:`absolute left-4 top-1/2 transform -translate-y-1/2 text-white p-3 rounded-full transition-all z-10 ${n===0?"opacity-50 cursor-not-allowed":"hover:text-gray-300 hover:bg-white hover:bg-opacity-20"}`,title:"上一张 (←)",children:p.jsx(hg,{className:"w-8 h-8"})}),p.jsx("button",{onClick:E,disabled:n===e.length-1,className:`absolute right-4 top-1/2 transform -translate-y-1/2 text-white p-3 rounded-full transition-all z-10 ${n===e.length-1?"opacity-50 cursor-not-allowed":"hover:text-gray-300 hover:bg-white hover:bg-opacity-20"}`,title:"下一张 (→)",children:p.jsx(Ps,{className:"w-8 h-8"})})]}),p.jsx("button",{onClick:r,className:"absolute top-4 right-4 text-white hover:text-gray-300 p-2 hover:bg-white hover:bg-opacity-20 rounded-full transition-colors z-10",title:"关闭预览 (ESC)",children:p.jsx(En,{className:"w-6 h-6"})}),p.jsx("img",{ref:y,src:_,alt:`图片预览 ${n+1}/${e.length}`,className:`max-w-none transition-transform ${c?"cursor-grabbing":"cursor-grab"}`,style:{transform:`translate(${o.x}px, ${o.y}px) scale(${s}) rotate(${f}deg)`,maxHeight:"none",maxWidth:"none",opacity:m?1:0},onLoad:S,onMouseDown:T,onDoubleClick:F,draggable:!1,onClick:L=>L.stopPropagation()}),p.jsx("div",{className:"absolute bottom-4 left-1/2 transform -translate-x-1/2 text-white text-sm bg-black bg-opacity-50 rounded px-3 py-1",children:e.length>1?"方向键切换 • 鼠标拖拽移动 • 滚轮缩放 • 双击适应窗口 • ESC关闭":"鼠标拖拽移动 • 滚轮缩放 • 双击适应窗口 • ESC关闭"})]})},SO=({content:e})=>{const{t}=Ce("components"),r=typeof e=="string"?e:Array.isArray(e)?e.map(s=>s.text||JSON.stringify(s)).join(""):String(e),[n,i]=O.useState(!1);return p.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg bg-gray-50 dark:bg-gray-800/50",children:[p.jsxs("button",{onClick:()=>i(!n),className:"w-full flex items-center justify-between p-3 text-left hover:bg-gray-100 dark:hover:bg-gray-700/50 transition-colors",children:[p.jsxs("div",{className:"flex items-center space-x-2",children:[p.jsx(I1,{className:"w-4 h-4 text-gray-600 dark:text-gray-400"}),p.jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:t("compactSummary.title")})]}),p.jsxs("div",{className:"flex items-center space-x-1",children:[p.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:t(n?"compactSummary.collapse":"compactSummary.expand")}),n?p.jsx(pi,{className:"w-4 h-4 text-gray-500 dark:text-gray-400"}):p.jsx(Ps,{className:"w-4 h-4 text-gray-500 dark:text-gray-400"})]})]}),n&&p.jsx("div",{className:"border-t border-gray-200 dark:border-gray-700 p-4 bg-white dark:bg-gray-800",children:p.jsx("div",{className:"text-sm",children:p.jsx(bs,{content:r})})})]})},_O=({message:e,onAskUserQuestionSubmit:t})=>{const[r,n]=O.useState([]),[i,s]=O.useState(0),a=()=>{const c=[];return e.messageParts&&e.messageParts.length>0&&e.messageParts.forEach(u=>{u.type==="image"&&u.imageData&&c.push(`data:${u.imageData.mediaType};base64,${u.imageData.data}`)}),e.images&&e.images.length>0&&e.images.forEach(u=>{c.push(`data:${u.mediaType};base64,${u.data}`)}),c},o=c=>{const u=a(),h=u.indexOf(c);n(u),s(h>=0?h:0)},l=()=>{n([]),s(0)};if(e.messageParts&&e.messageParts.length>0){const c=[...e.messageParts].sort((u,h)=>u.order-h.order);return p.jsxs("div",{className:"space-y-3",children:[c.map(u=>{if(u.type==="command"&&u.content){const h=u.content.trim(),d=h.indexOf(" "),f=d>0?h.substring(0,d):h,g=d>0?h.substring(d+1).trim():"";return p.jsxs("div",{className:"flex items-center gap-2",children:[p.jsx("span",{className:"inline-flex items-center px-2.5 py-1 bg-gray-800 dark:bg-gray-900 text-emerald-400 dark:text-emerald-300 rounded-md text-sm font-mono font-medium",children:f}),g&&p.jsx("span",{className:"text-gray-100 text-sm",children:g})]},u.id)}else{if(u.type==="compactSummary"&&u.content)return p.jsx("div",{children:p.jsx(SO,{content:u.content})},u.id);if(u.type==="text"&&u.content)return p.jsx("div",{children:p.jsx(bs,{content:u.content,isUserMessage:e.role==="user"})},u.id);if(u.type==="thinking"&&u.content)return p.jsxs("details",{className:"my-2",children:[p.jsx("summary",{className:"cursor-pointer text-gray-500 dark:text-gray-400 text-sm hover:text-gray-700 dark:hover:text-gray-300 transition-colors select-none",children:"💭 思考过程..."}),p.jsx("div",{className:"mt-2 pl-4 border-l-2 border-gray-200 dark:border-gray-700",children:p.jsx("div",{className:"text-gray-600 dark:text-gray-300 text-sm whitespace-pre-wrap break-words leading-relaxed italic",children:u.content})})]},u.id);if(u.type==="tool"&&u.toolData)return p.jsx(Jp,{toolName:u.toolData.toolName,toolInput:u.toolData.toolInput,toolResult:u.toolData.toolResult,toolUseResult:u.toolData.toolUseResult,isError:u.toolData.isError,isExecuting:u.toolData.isExecuting,claudeId:u.toolData.claudeId,onAskUserQuestionSubmit:t},u.id);if(u.type==="image"&&u.imageData){const h=`data:${u.imageData.mediaType};base64,${u.imageData.data}`;return p.jsx("div",{className:"inline-block",children:p.jsx("img",{src:h,alt:u.imageData.filename||"Image",className:"max-w-32 max-h-32 object-cover rounded-lg border border-gray-200 dark:border-gray-700 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>o(h),title:u.imageData.filename||"Click to preview"})},u.id)}else if(u.type==="text"&&u.content&&u.content.includes("unknown"))if(u.content.includes('"type":"thinking"')||u.content.includes('"thinking"')||u.content.includes("thinking")){let d=u.content;try{if(u.content.includes('"thinking":')){const f=u.content.match(/"thinking":"([^"]+)"/);f&&f[1]&&(d=f[1].replace(/\\n/g,`
418
418
  `).replace(/\\"/g,'"'))}}catch(f){console.warn("Failed to parse thinking content:",f)}return p.jsxs("details",{className:"my-2",children:[p.jsx("summary",{className:"cursor-pointer text-gray-500 dark:text-gray-400 text-sm hover:text-gray-700 dark:hover:text-gray-300 transition-colors select-none",children:"💭 思考过程... (历史消息)"}),p.jsx("div",{className:"mt-2 pl-4 border-l-2 border-gray-200 dark:border-gray-700",children:p.jsx("div",{className:"text-gray-600 dark:text-gray-300 text-sm whitespace-pre-wrap break-words leading-relaxed italic",children:d})})]},u.id)}else return p.jsx("div",{children:p.jsx(bs,{content:u.content,isUserMessage:e.role==="user"})},u.id)}return null}),p.jsx(Io,{images:r,initialIndex:i,onClose:l})]})}return p.jsxs("div",{className:"space-y-2",children:[e.images&&e.images.length>0&&p.jsx("div",{className:"flex flex-wrap gap-2",children:e.images.map(c=>{const u=`data:${c.mediaType};base64,${c.data}`;return p.jsx("img",{src:u,alt:c.filename||"Image",className:"max-w-32 max-h-32 object-cover rounded-lg border border-gray-200 dark:border-gray-700 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>o(u),title:c.filename||"Click to preview"},c.id)})}),e.content&&p.jsx("div",{children:(()=>{const c=e.content.match(/<command-message>.*?<\/command-message>\s*<command-name>(.+?)<\/command-name>/);if(c){const u=c[1].trim(),h=u.indexOf(" "),d=h>0?u.substring(0,h):u,f=h>0?u.substring(h+1).trim():"";return p.jsxs("div",{className:"flex items-center gap-2",children:[p.jsx("span",{className:"inline-flex items-center px-2.5 py-1 bg-gray-800 dark:bg-gray-900 text-emerald-400 dark:text-emerald-300 rounded-md text-sm font-mono font-medium",children:d}),f&&p.jsx("span",{className:"text-gray-100 text-sm",children:f})]})}else return p.jsx(bs,{content:e.content,isUserMessage:e.role==="user"})})()}),e.toolUsage&&e.toolUsage.length>0&&p.jsx("div",{className:"space-y-2",children:e.toolUsage.map(c=>p.jsx(Jp,{toolName:c.toolName,toolInput:c.toolInput,toolResult:c.toolResult,toolUseResult:c.toolUseResult,isError:c.isError,isExecuting:c.isExecuting,claudeId:c.claudeId,onAskUserQuestionSubmit:t},c.id))}),p.jsx(Io,{images:r,initialIndex:i,onClose:l})]})},TO=O.memo(_O),EO=({messages:e,isLoadingMessages:t,isInitializingSession:r,isAiTyping:n,isStopping:i,messagesContainerRef:s,messagesEndRef:a,onAskUserQuestionSubmit:o})=>{const{t:l}=Ce("components"),c=O.useMemo(()=>e.map(u=>p.jsx("div",{className:"px-4",children:p.jsx("div",{className:`text-sm leading-relaxed break-words overflow-hidden ${u.role==="user"?"text-white p-3 rounded-lg":"text-gray-800 dark:text-gray-200"}`,style:u.role==="user"?{backgroundColor:"hsl(var(--primary))",color:"white"}:{},children:p.jsx(TO,{message:u,onAskUserQuestionSubmit:o})})},u.id)),[e,o]);return p.jsxs("div",{ref:s,className:"flex-1 overflow-y-auto space-y-4 py-4 relative",children:[t&&p.jsx("div",{className:"flex items-center justify-center py-8",children:p.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[p.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-gray-900 dark:border-gray-100"}),p.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:l("agentChatPanel.loadingMessages")})]})}),!t&&e.length===0&&p.jsx("div",{className:"flex items-center justify-center h-full",children:p.jsx("div",{className:"text-center text-gray-500 dark:text-gray-400"})}),!t&&c,r&&p.jsx("div",{className:"px-4",children:p.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[p.jsxs("div",{className:"flex space-x-1",children:[p.jsx("div",{className:"w-2 h-2 bg-gray-400 dark:bg-gray-500 rounded-full animate-bounce"}),p.jsx("div",{className:"w-2 h-2 bg-gray-400 dark:bg-gray-500 rounded-full animate-bounce",style:{animationDelay:"0.1s"}}),p.jsx("div",{className:"w-2 h-2 bg-gray-400 dark:bg-gray-500 rounded-full animate-bounce",style:{animationDelay:"0.2s"}})]}),p.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:l("agentChatPanel.initializingSession")})]})}),!r&&(n||i)&&p.jsx("div",{className:"px-4",children:p.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[p.jsxs("div",{className:"flex space-x-1",children:[p.jsx("div",{className:"w-2 h-2 bg-gray-400 dark:bg-gray-500 rounded-full animate-bounce"}),p.jsx("div",{className:"w-2 h-2 bg-gray-400 dark:bg-gray-500 rounded-full animate-bounce",style:{animationDelay:"0.1s"}}),p.jsx("div",{className:"w-2 h-2 bg-gray-400 dark:bg-gray-500 rounded-full animate-bounce",style:{animationDelay:"0.2s"}})]}),i&&p.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:l("agentChat.stopping")})]})}),p.jsx("div",{ref:a})]})},AO=({envVars:e,onChange:t})=>{const{t:r}=Ce("components"),[n,i]=O.useState(""),[s,a]=O.useState(""),o=()=>{if(!n.trim())return;const u={...e,[n.trim()]:s};t(u),i(""),a("")},l=u=>{const h={...e};delete h[u],t(h)},c=(u,h,d)=>{if(u!==h){const f={...e};delete f[u],f[h]=d,t(f)}else{const f={...e,[u]:d};t(f)}};return p.jsxs("div",{className:"space-y-3",children:[p.jsx("div",{className:"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:r("agentChat.envVars.title","Environment Variables")}),p.jsxs("div",{className:"space-y-2",children:[Object.entries(e).length===0&&p.jsx("div",{className:"text-sm text-gray-400 italic px-2",children:r("agentChat.envVars.noVars","No environment variables set")}),Object.entries(e).map(([u,h])=>p.jsxs("div",{className:"flex items-center space-x-2",children:[p.jsx("input",{type:"text",value:u,onChange:d=>c(u,d.target.value,h),className:"flex-1 min-w-0 px-2 py-1 text-sm border border-gray-300 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400 focus:outline-none focus:ring-1 focus:ring-blue-500",placeholder:r("agentChat.envVars.key","KEY")}),p.jsx("span",{className:"text-gray-400",children:"="}),p.jsx("input",{type:"text",value:h,onChange:d=>c(u,u,d.target.value),className:"flex-1 min-w-0 px-2 py-1 text-sm border border-gray-300 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400 focus:outline-none focus:ring-1 focus:ring-blue-500",placeholder:r("agentChat.envVars.value","VALUE")}),p.jsx("button",{onClick:()=>l(u),className:"p-1 text-gray-400 hover:text-red-500 hover:bg-gray-100 dark:hover:bg-gray-700 rounded transition-colors",title:r("agentChat.envVars.delete","Remove"),children:p.jsx($1,{className:"w-4 h-4"})})]},u))]}),p.jsxs("div",{className:"flex items-center space-x-2",children:[p.jsx("input",{type:"text",value:n,onChange:u=>i(u.target.value),onKeyDown:u=>u.key==="Enter"&&o(),className:"flex-1 min-w-0 px-2 py-1 text-sm border border-gray-300 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400 focus:outline-none focus:ring-1 focus:ring-blue-500",placeholder:r("agentChat.envVars.key","NEW_KEY")}),p.jsx("span",{className:"text-gray-400",children:"="}),p.jsx("input",{type:"text",value:s,onChange:u=>a(u.target.value),onKeyDown:u=>u.key==="Enter"&&o(),className:"flex-1 min-w-0 px-2 py-1 text-sm border border-gray-300 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400 focus:outline-none focus:ring-1 focus:ring-blue-500",placeholder:r("agentChat.envVars.value","VALUE")}),p.jsx("button",{onClick:o,disabled:!n.trim(),className:"p-1 text-blue-600 hover:bg-blue-50 dark:text-blue-400 dark:hover:bg-blue-900/30 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:r("agentChat.envVars.add","Add"),children:p.jsx(dg,{className:"w-4 h-4"})})]})]})},Vw=({permissionMode:e,onPermissionModeChange:t,selectedClaudeVersion:r,onClaudeVersionChange:n,selectedModel:i,onModelChange:s,availableModels:a,claudeVersionsData:o,isVersionLocked:l,isAiTyping:c,envVars:u,onEnvVarsChange:h,className:d=""})=>{const{t:f}=Ce("components"),[g,m]=O.useState(!1),b=O.useRef(null);O.useEffect(()=>{const I=N=>{b.current&&!b.current.contains(N.target)&&m(!1)};return g&&document.addEventListener("mousedown",I),()=>document.removeEventListener("mousedown",I)},[g]);const y=I=>{t(I)},k=I=>{n(I)},v=I=>{s(I)},S=o?.versions&&o.versions.length>1,_=a.length>=2,w=a.find(I=>I.id===i)?.name||i,E={default:f("agentChat.permissionMode.default"),acceptEdits:f("agentChat.permissionMode.acceptEdits"),bypassPermissions:f("agentChat.permissionMode.bypassPermissions")}[e];return p.jsxs("div",{className:`relative ${d}`,ref:b,children:[p.jsxs("button",{onClick:()=>m(!g),className:`flex items-center space-x-2 px-3 py-2 text-sm rounded-lg transition-colors border ${g?"border-blue-500 bg-blue-50 dark:bg-blue-900/30":"border-gray-200 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-800"}`,disabled:c,title:f("agentChat.settings.title"),children:[p.jsxs("div",{className:"flex items-center space-x-2 text-gray-700 dark:text-gray-300",children:[p.jsx("span",{className:"font-medium",children:w}),p.jsx("span",{className:"text-gray-300 dark:text-gray-600",children:"|"}),p.jsx("span",{className:"text-gray-500 dark:text-gray-400",children:E})]}),p.jsx(pi,{className:`w-3 h-3 text-gray-400 transition-transform ${g?"transform rotate-180":""}`})]}),g&&p.jsxs("div",{className:"absolute bottom-full left-0 mb-2 w-[400px] bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl shadow-2xl z-50 flex flex-col max-h-[80vh]",children:[p.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-gray-100 dark:border-gray-700",children:[p.jsxs("h3",{className:"font-semibold text-gray-900 dark:text-white flex items-center gap-2",children:[p.jsx(j1,{className:"w-4 h-4"}),f("agentChat.settings.title","Chat Configuration")]}),p.jsx("button",{onClick:()=>m(!1),className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 p-1 rounded-md hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",children:p.jsx(En,{className:"w-4 h-4"})})]}),p.jsxs("div",{className:"overflow-y-auto p-4 space-y-6",children:[(_||S)&&p.jsxs("div",{className:"space-y-3",children:[p.jsx("div",{className:"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:f("agentChat.settings.modelAndVersion","Supplier & Model")}),p.jsxs("div",{className:"grid grid-cols-1 gap-3",children:[S&&p.jsxs("div",{className:"space-y-1.5",children:[p.jsx("label",{className:"text-xs text-gray-500 dark:text-gray-400 ml-1",children:f("agentChat.settings.claudeVersion")}),p.jsxs("div",{className:"relative",children:[p.jsxs("select",{value:r||"",onChange:I=>k(I.target.value||void 0),disabled:l,className:`w-full appearance-none px-3 py-2 text-sm rounded-lg border bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500 ${l?"opacity-50 cursor-not-allowed border-gray-200 dark:border-gray-700":"border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600"}`,children:[p.jsx("option",{value:"",children:o?.defaultVersionId?`${f("agentChat.claudeVersion.default")} (${o.versions.find(I=>I.id===o.defaultVersionId)?.name})`:f("agentChat.claudeVersion.default")}),o.versions.filter(I=>o.defaultVersionId&&I.id!==o.defaultVersionId).map(I=>p.jsx("option",{value:I.id,children:I.name},I.id))]}),p.jsx("div",{className:"absolute inset-y-0 right-0 flex items-center px-2 pointer-events-none text-gray-500",children:p.jsx(pi,{className:"w-4 h-4"})})]})]}),_&&p.jsxs("div",{className:"space-y-1.5",children:[p.jsx("label",{className:"text-xs text-gray-500 dark:text-gray-400 ml-1",children:f("agentChat.settings.model")}),p.jsx("div",{className:"grid grid-cols-1 gap-2",children:a.map(I=>p.jsxs("button",{onClick:()=>v(I.id),className:`flex items-center justify-between px-3 py-2 text-sm rounded-lg border transition-all ${i===I.id?"border-purple-500 bg-purple-50 dark:bg-purple-900/20 text-purple-700 dark:text-purple-300 shadow-sm":"border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600 text-gray-700 dark:text-gray-300"}`,children:[p.jsxs("div",{className:"flex items-center space-x-2",children:[p.jsx(B1,{className:"w-4 h-4 opacity-70"}),p.jsx("span",{className:"font-medium",children:I.name})]}),I.isVision&&p.jsx("span",{className:"text-xs bg-gray-100 dark:bg-gray-700 px-1.5 py-0.5 rounded text-gray-500",children:"Vision"})]},I.id))})]})]})]}),p.jsx("div",{className:"h-px bg-gray-100 dark:bg-gray-700"}),p.jsxs("div",{className:"space-y-3",children:[p.jsx("div",{className:"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:f("agentChat.settings.permissionMode")}),p.jsx("div",{className:"grid grid-cols-3 gap-2",children:[{value:"default",label:f("agentChat.permissionMode.default"),icon:Ea},{value:"acceptEdits",label:f("agentChat.permissionMode.acceptEdits"),icon:Ea},{value:"bypassPermissions",label:f("agentChat.permissionMode.bypassPermissions"),icon:Ea}].map(I=>p.jsxs("button",{onClick:()=>y(I.value),className:`flex flex-col items-center justify-center p-2 text-xs rounded-lg border transition-all text-center gap-1.5 h-full ${e===I.value?"border-blue-500 bg-blue-50 dark:bg-blue-900/20 text-blue-700 dark:text-blue-300 shadow-sm":"border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600 text-gray-600 dark:text-gray-400"}`,children:[p.jsx(I.icon,{className:`w-4 h-4 ${e===I.value?"text-blue-500":"text-gray-400"}`}),p.jsx("span",{className:"leading-tight",children:I.label})]},I.value))})]}),p.jsx("div",{className:"h-px bg-gray-100 dark:bg-gray-700"}),p.jsx("div",{children:p.jsx(AO,{envVars:u,onChange:h})})]})]})]})},NO=({inputMessage:e,setInputMessage:t,selectedImages:r,isDragOver:n,isAiTyping:i,isSendDisabled:s,showToolSelector:a,setShowToolSelector:o,selectedRegularTools:l,setSelectedRegularTools:c,selectedMcpTools:u,setSelectedMcpTools:h,mcpToolsEnabled:d,setMcpToolsEnabled:f,permissionMode:g,setPermissionMode:m,selectedModel:b,setSelectedModel:y,selectedClaudeVersion:k,setSelectedClaudeVersion:v,availableModels:S,claudeVersionsData:_,isVersionLocked:w,agent:E,textareaRef:I,fileInputRef:N,envVars:T,setEnvVars:M,onSend:B,onStopGeneration:R,onKeyDown:$,onImageSelect:F,onPaste:L,onDragOver:P,onDragLeave:W,onDrop:X})=>{const{t:C}=Ce("components");return p.jsxs("div",{className:`flex-shrink-0 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 ${n?"bg-blue-50 dark:bg-blue-900/30 border-blue-300 dark:border-blue-700":""}`,onDragOver:P,onDragLeave:W,onDrop:X,children:[n&&p.jsx("div",{className:"absolute inset-0 bg-blue-100 dark:bg-blue-900/50 bg-opacity-75 flex items-center justify-center z-10 pointer-events-none",children:p.jsxs("div",{className:"text-blue-600 dark:text-blue-300 text-lg font-medium flex items-center space-x-2",children:[p.jsx(ks,{className:"w-6 h-6"}),p.jsx("span",{children:C("agentChat.dropImageHere")})]})}),p.jsx("div",{className:"p-4 pb-2",children:p.jsx("textarea",{ref:I,value:e,onChange:t,onKeyDown:$,onPaste:L,placeholder:r.length>0?C("agentChat.addDescription"):C("agentChat.inputPlaceholder"),rows:1,className:"w-full resize-none border border-gray-300 dark:border-gray-600 rounded-lg px-4 py-3 text-sm bg-white dark:bg-gray-800 text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:border-transparent transition-all duration-200 disabled:bg-gray-50 dark:disabled:bg-gray-700 disabled:text-gray-500 dark:disabled:text-gray-400",style:{"--focus-ring-color":"hsl(var(--primary))",minHeight:"44px",maxHeight:"120px"},disabled:i})}),p.jsx("div",{className:"px-4 pb-4 pt-2 border-t border-gray-100 dark:border-gray-700",children:p.jsxs("div",{className:"flex items-center justify-between",children:[p.jsxs("div",{className:"flex items-center space-x-1",children:[p.jsx("input",{ref:N,type:"file",accept:"image/jpeg,image/png,image/gif,image/webp",multiple:!0,onChange:F,className:"hidden"}),p.jsxs("div",{className:"relative",children:[p.jsx("button",{onClick:()=>o(!a),className:`p-2 transition-colors rounded-lg ${a||l.length>0||d&&u.length>0?"text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/30 hover:bg-blue-100 dark:hover:bg-blue-900/50":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"}`,title:C("agentChat.toolSelection"),disabled:i,children:p.jsx(fg,{className:"w-4 h-4"})}),(l.length>0||d&&u.length>0)&&p.jsx("span",{className:"absolute -top-1 -right-1 text-white text-xs rounded-full w-5 h-5 flex items-center justify-center bg-blue-600 dark:bg-blue-500",children:l.length+(d?u.filter(j=>j.startsWith("mcp__")&&j.split("__").length===3).length:0)}),p.jsx(Lu,{isOpen:a,onClose:()=>o(!1),selectedRegularTools:l,onRegularToolsChange:c,selectedMcpTools:u,onMcpToolsChange:h,mcpToolsEnabled:d,onMcpEnabledChange:f,presetTools:E.allowedTools})]}),p.jsxs("div",{className:"relative",children:[p.jsx("button",{onClick:()=>N.current?.click(),className:`p-2 transition-colors rounded-lg ${r.length>0?"text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/30 hover:bg-blue-100 dark:hover:bg-blue-900/50":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"}`,title:r.length>0?C("agentChat.imageSelection")+` (${C("agentChat.selectedCount",{count:r.length})})`:C("agentChat.imageSelection"),disabled:i,children:p.jsx(ks,{className:"w-4 h-4"})}),r.length>0&&p.jsx("span",{className:"absolute -top-1 -right-1 text-white text-xs rounded-full w-5 h-5 flex items-center justify-center bg-blue-600 dark:bg-blue-500",children:r.length})]})]}),p.jsxs("div",{className:"flex items-center space-x-2",children:[p.jsx(Vw,{permissionMode:g,onPermissionModeChange:m,selectedClaudeVersion:k,onClaudeVersionChange:j=>v(j||""),selectedModel:b,onModelChange:y,availableModels:S,claudeVersionsData:_,isVersionLocked:w,isAiTyping:i,envVars:T,onEnvVarsChange:M}),i?p.jsxs("button",{onClick:R,className:"flex items-center space-x-2 px-4 py-2 text-white rounded-lg transition-colors text-sm font-medium shadow-sm",style:{backgroundColor:"rgb(239, 68, 68)"},title:C("agentChatPanel.stopGeneration"),children:[p.jsx(pg,{className:"w-4 h-4"}),p.jsx("span",{children:C("agentChatPanel.stop")})]}):p.jsxs("button",{onClick:B,disabled:s,className:"flex items-center space-x-2 px-4 py-2 text-white rounded-lg hover:opacity-90 disabled:bg-gray-300 dark:disabled:bg-gray-700 dark:disabled:text-gray-500 disabled:cursor-not-allowed transition-all duration-200 text-sm font-medium shadow-sm",style:{backgroundColor:s?void 0:"hsl(var(--primary))"},title:i?C("agentChatPanel.aiTyping"):!e.trim()&&r.length===0?C("agentChatPanel.noContentToSend"):C("agentChatPanel.sendMessage"),children:[p.jsx(Mu,{className:"w-4 h-4"}),p.jsx("span",{children:C("agentChatPanel.send")})]})]})]})})]})},MO=({inputMessage:e,setInputMessage:t,selectedImages:r,isDragOver:n,isAiTyping:i,isSendDisabled:s,showToolSelector:a,setShowToolSelector:o,selectedRegularTools:l,setSelectedRegularTools:c,selectedMcpTools:u,setSelectedMcpTools:h,mcpToolsEnabled:d,setMcpToolsEnabled:f,permissionMode:g,setPermissionMode:m,selectedModel:b,setSelectedModel:y,selectedClaudeVersion:k,setSelectedClaudeVersion:v,availableModels:S,claudeVersionsData:_,isVersionLocked:w,envVars:E,onEnvVarsChange:I,agent:N,textareaRef:T,fileInputRef:M,onSend:B,onStopGeneration:R,onKeyDown:$,onImageSelect:F,onPaste:L,onDragOver:P,onDragLeave:W,onDrop:X})=>{const{t:C}=Ce("components");return p.jsxs("div",{className:`flex-shrink-0 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 ${n?"bg-blue-50 dark:bg-blue-900/30 border-blue-300 dark:border-blue-700":""}`,onDragOver:P,onDragLeave:W,onDrop:X,children:[r.length>0&&p.jsx("div",{className:"p-3 pb-2 border-b border-gray-100 dark:border-gray-700",children:p.jsx("div",{className:"flex flex-wrap gap-2",children:r.map(j=>p.jsxs("div",{className:"relative group",children:[p.jsx("img",{src:j.preview,alt:C("agentChat.imagePreview"),className:"w-12 h-12 object-cover rounded-lg border border-gray-200 dark:border-gray-600 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>{}}),p.jsx("button",{onClick:()=>{},className:"absolute -top-1 -right-1 w-4 h-4 bg-red-500 text-white rounded-full flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity text-xs hover:bg-red-600",title:C("agentChat.deleteImage"),children:"×"})]},j.id))})}),n&&p.jsx("div",{className:"absolute inset-0 bg-blue-100 dark:bg-blue-900/50 bg-opacity-75 flex items-center justify-center z-10 pointer-events-none",children:p.jsxs("div",{className:"text-blue-600 dark:text-blue-300 text-sm font-medium flex items-center space-x-2",children:[p.jsx(ks,{className:"w-5 h-5"}),p.jsx("span",{children:C("agentChat.dropImageHere")})]})}),p.jsxs("div",{className:"p-3",children:[p.jsxs("div",{className:"flex items-center justify-between mb-3",children:[p.jsxs("div",{className:"flex space-x-2",children:[p.jsxs("div",{className:"relative",children:[p.jsx("button",{onClick:()=>o(!a),className:`p-2 transition-colors rounded-lg ${l.length>0||d&&u.length>0?"text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/30 hover:bg-blue-100 dark:hover:bg-blue-900/50":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"}`,title:l.length>0||d&&u.length>0?C("agentChat.toolSelection")+` (${C("agentChat.selectedCount",{count:l.length+(d?u.length:0)})})`:C("agentChat.toolSelection"),disabled:i,children:p.jsx(fg,{className:"w-4 h-4"})}),(l.length>0||d&&u.length>0)&&p.jsx("span",{className:"absolute -top-1 -right-1 text-white text-xs rounded-full w-5 h-5 flex items-center justify-center bg-blue-600 dark:bg-blue-500",children:l.length+(d?u.filter(j=>j.startsWith("mcp__")&&j.split("__").length===3).length:0)}),p.jsx(Lu,{isOpen:a,onClose:()=>o(!1),selectedRegularTools:l,onRegularToolsChange:c,selectedMcpTools:u,onMcpToolsChange:h,mcpToolsEnabled:d,onMcpEnabledChange:f,presetTools:N.allowedTools})]}),p.jsxs("div",{className:"relative",children:[p.jsx("button",{onClick:()=>M.current?.click(),className:`p-2 transition-colors rounded-lg ${r.length>0?"text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/30 hover:bg-blue-100 dark:hover:bg-blue-900/50":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"}`,title:r.length>0?C("agentChat.imageSelection")+` (${r.length})`:C("agentChat.imageSelection"),disabled:i,children:p.jsx(ks,{className:"w-4 h-4"})}),r.length>0&&p.jsx("span",{className:"absolute -top-1 -right-1 text-white text-xs rounded-full w-5 h-5 flex items-center justify-center bg-blue-600 dark:bg-blue-500",children:r.length})]})]}),p.jsx(Vw,{permissionMode:g,onPermissionModeChange:m,selectedClaudeVersion:k,onClaudeVersionChange:j=>v(j||""),selectedModel:b,onModelChange:y,availableModels:S,claudeVersionsData:_,isVersionLocked:w,isAiTyping:i,envVars:E,onEnvVarsChange:I})]}),p.jsxs("div",{className:"flex items-end space-x-2",children:[p.jsx("div",{className:"flex-1 relative",children:p.jsx("textarea",{ref:T,value:e,onChange:t,onKeyDown:$,onPaste:L,placeholder:C("agentChat.inputPlaceholder"),className:"w-full px-3 py-2 rounded-lg border border-gray-200 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 placeholder-gray-500 dark:placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-transparent resize-none text-sm",rows:e.split(`
419
419
  `).length,style:{minHeight:"40px",maxHeight:"120px"},disabled:i})}),i?p.jsx("button",{onClick:R,className:"px-3 py-2 rounded-lg font-medium transition-all duration-200 bg-red-600 dark:bg-red-500 text-white hover:bg-red-700 dark:hover:bg-red-600 shadow-sm",title:C("agentChat.stop"),children:p.jsx(pg,{className:"w-4 h-4"})}):p.jsx("button",{onClick:B,disabled:s,className:`px-3 py-2 rounded-lg font-medium transition-all duration-200 ${s?"bg-gray-300 dark:bg-gray-600 text-gray-500 dark:text-gray-400 cursor-not-allowed":"bg-blue-600 dark:bg-blue-500 text-white hover:bg-blue-700 dark:hover:bg-blue-600 shadow-sm"}`,title:C("agentChat.send"),children:p.jsx(Mu,{className:"w-4 h-4"})})]})]}),p.jsx("input",{ref:M,type:"file",accept:"image/*",multiple:!0,onChange:F,style:{display:"none"}})]})},LO=e=>[{id:"init",name:"init",description:e("commandSelector.systemCommands.init.description"),content:"/init",scope:"system",isSystem:!0},{id:"clear",name:"clear",description:e("commandSelector.systemCommands.clear.description"),content:"/clear",scope:"system",isSystem:!0},{id:"compact",name:"compact",description:e("commandSelector.systemCommands.compact.description"),content:"/compact",scope:"system",isSystem:!0},{id:"agents",name:"agents",description:e("commandSelector.systemCommands.agents.description"),content:"/agents",scope:"system",isSystem:!0},{id:"settings",name:"settings",description:e("commandSelector.systemCommands.settings.description"),content:"/settings",scope:"system",isSystem:!0},{id:"help",name:"help",description:e("commandSelector.systemCommands.help.description"),content:"/help",scope:"system",isSystem:!0}],IO=({isOpen:e,onSelect:t,onClose:r,searchTerm:n,position:i,projectId:s,selectedIndex:a=0,onSelectedIndexChange:o})=>{const{t:l}=Ce("components"),c=O.useRef(null);O.useEffect(()=>{const _=w=>{c.current&&!c.current.contains(w.target)&&r?.()};if(e)return document.addEventListener("mousedown",_),()=>document.removeEventListener("mousedown",_)},[e,r]);const{data:u=[]}=oc({scope:"user",search:n}),{data:h=[]}=lc({projectId:s||"",search:n}),g=[...LO(l).filter(_=>_.name.toLowerCase().includes(n.toLowerCase())||_.description.toLowerCase().includes(n.toLowerCase())),...h,...u];if(O.useEffect(()=>{g.length>0&&a>=g.length&&o?.(0)},[g.length,a,o]),O.useEffect(()=>{if(e&&c.current){const _=c.current.querySelector(`[data-index="${a}"]`);_&&_.scrollIntoView({block:"nearest",behavior:"smooth"})}},[a,e]),!e||g.length===0)return null;const m=65,b=20,y=4,k=i.top-b-y,v=g.length*m,S=Math.min(v,k);return p.jsx("div",{ref:c,className:"fixed z-50 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg min-w-72 max-w-96 overflow-hidden",style:{bottom:window.innerHeight-i.top+y,left:i.left,maxHeight:`${S}px`},children:p.jsx("div",{className:"overflow-y-auto",style:{maxHeight:`${S}px`},children:g.map((_,w)=>{const E="isSystem"in _,I=w===a,N=()=>E?_.name:_.namespace?`${_.namespace}:${_.name}`:_.name;return p.jsx("div",{"data-index":w,className:`px-4 py-3 cursor-pointer flex items-center border-b border-gray-100 dark:border-gray-700 last:border-b-0 ${I?"bg-blue-50 dark:bg-blue-900/30 border-blue-200 dark:border-blue-700":"hover:bg-gray-50 dark:hover:bg-gray-700"}`,onClick:()=>t(_),onMouseEnter:()=>o?.(w),children:p.jsxs("div",{className:"flex-1 min-w-0",children:[p.jsx("div",{className:`text-sm font-medium truncate ${I?"text-blue-900 dark:text-blue-300":"text-gray-900 dark:text-gray-100"}`,children:N()}),_.description&&p.jsx("div",{className:`text-xs truncate ${I?"text-blue-700 dark:text-blue-400":"text-gray-500 dark:text-gray-400"}`,children:_.description})]})},_.id)})})})},eg=({showCommandSelector:e,showFileBrowser:t,commandSearch:r,selectedCommandIndex:n,atSymbolPosition:i,projectPath:s,textareaRef:a,inputMessage:o,onCommandSelect:l,onSetInputMessage:c,onSetShowCommandSelector:u,onSetSelectedCommandIndex:h,onSetShowFileBrowser:d,onSetAtSymbolPosition:f})=>{const{t:g}=Ce("components"),m=S=>{l(S),c(`/${S.name}`),u(!1),a.current&&a.current.focus()},b=()=>{u(!1)},y=(S,_)=>{if(!a.current||i===null)return;let w=S.replace(/\\/g,"/");if(s){const T=s.replace(/\\/g,"/"),M=T.endsWith("/")?T.slice(0,-1):T;w.startsWith(M)&&(w=w.substring(M.length+1))}const E=o.substring(0,i),I=o.substring(i+1),N=E+"@"+w+" "+I;c(N),d(!1),f(null),setTimeout(()=>{if(a.current){const T=i+1+w.length+1;a.current.setSelectionRange(T,T),a.current.focus()}},0)},k=()=>{d(!1),f(null),setTimeout(()=>{a.current?.focus()},0)},v=()=>{if(!a.current)return{top:0,left:0};const S=a.current.getBoundingClientRect();return{top:S.top,left:S.left}};return p.jsxs(p.Fragment,{children:[p.jsx(IO,{isOpen:e,onSelect:m,onClose:b,searchTerm:r,position:v(),projectId:s,selectedIndex:n,onSelectedIndexChange:h}),t&&p.jsx(H1,{title:g("agentChat.fileBrowser.title",{projectPath:s?s.split("/").pop():g("agentChat.fileBrowser.currentProject")}),initialPath:s,allowFiles:!0,allowDirectories:!1,restrictToProject:!0,onSelect:y,onClose:k})]})},$O=e=>t=>{if(t.key==="Escape"&&e.showFileBrowser){t.preventDefault(),e.onSetShowFileBrowser(!1),e.onSetAtSymbolPosition(null);return}if(t.key==="Enter"&&!t.shiftKey&&e.showCommandSelector&&e.allCommands.length>0){t.preventDefault();const r=e.allCommands[e.selectedCommandIndex];r&&(e.onCommandSelect(r),e.onSetInputMessage(`/${r.name}`),e.onSetShowCommandSelector(!1),setTimeout(()=>{e.textareaRef.current?.focus()},0));return}if(e.showCommandSelector&&e.allCommands.length>0){if(t.key==="ArrowUp"||t.ctrlKey&&t.key==="p"){t.preventDefault(),e.onSetSelectedCommandIndex(e.selectedCommandIndex>0?e.selectedCommandIndex-1:e.allCommands.length-1);return}if(t.key==="ArrowDown"||t.ctrlKey&&t.key==="n"){t.preventDefault(),e.onSetSelectedCommandIndex(e.selectedCommandIndex<e.allCommands.length-1?e.selectedCommandIndex+1:0);return}if(t.key==="Escape"){t.preventDefault(),e.onSetShowCommandSelector(!1);return}}e.onHandleKeyDown(t)},tg=({isOpen:e,message:t,onConfirm:r,onCancel:n,confirmText:i="确认",cancelText:s="取消"})=>e?p.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[p.jsx("div",{className:"absolute inset-0 bg-black bg-opacity-50",onClick:n}),p.jsxs("div",{className:"relative bg-white rounded-lg shadow-lg max-w-md w-full mx-4 p-6",children:[p.jsx("button",{onClick:n,className:"absolute top-4 right-4 text-gray-400 hover:text-gray-600 transition-colors",children:p.jsx(En,{size:20})}),p.jsxs("div",{className:"pr-8",children:[p.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"命令确认"}),p.jsx("p",{className:"text-gray-700 whitespace-pre-line mb-6",children:t})]}),p.jsxs("div",{className:"flex justify-end space-x-3",children:[p.jsx("button",{onClick:n,className:"px-4 py-2 text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-lg transition-colors",children:s}),p.jsx("button",{onClick:r,className:"px-4 py-2 text-white bg-blue-600 hover:bg-blue-700 rounded-lg transition-colors",children:i})]})]})]}):null,rg=({isOpen:e,onClose:t,mcpStatus:r})=>{const[n,i]=O.useState(new Set),[s,a]=O.useState(null);if(!e)return null;const o=h=>h?new Date(h).toLocaleString():"未知",l=(r.connectedServers?.length||0)>0||(r.connectionErrors?.length||0)>0,c=h=>{const d=new Set(n);d.has(h)?d.delete(h):d.add(h),i(d)},u=async(h,d)=>{try{await navigator.clipboard.writeText(h),a(d),setTimeout(()=>a(null),2e3)}catch(f){console.error("Failed to copy error text:",f)}};return p.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:p.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow-xl max-w-2xl w-full mx-4 max-h-[90vh] overflow-hidden",children:[p.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-700",children:[p.jsxs("div",{className:"flex items-center space-x-2",children:[r.hasError?p.jsx(dd,{className:"w-5 h-5 text-red-500"}):p.jsx(tn,{className:"w-5 h-5 text-green-500"}),p.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"MCP 工具状态"})]}),p.jsx("button",{onClick:t,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:p.jsx(En,{className:"w-5 h-5"})})]}),p.jsxs("div",{className:"p-4 space-y-4 max-h-[calc(90vh-120px)] overflow-y-auto",children:[p.jsx("div",{className:`p-3 rounded-lg ${r.hasError?"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800":"bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800"}`,children:p.jsxs("div",{className:"flex items-center space-x-2",children:[r.hasError?p.jsx(D1,{className:"w-4 h-4 text-red-500"}):p.jsx(fd,{className:"w-4 h-4 text-green-500"}),p.jsx("span",{className:`font-medium ${r.hasError?"text-red-700 dark:text-red-300":"text-green-700 dark:text-green-300"}`,children:r.hasError?"MCP 工具存在问题":"MCP 工具运行正常"})]})}),r.lastUpdated&&p.jsxs("div",{className:"flex items-center space-x-2 text-sm text-gray-500 dark:text-gray-400",children:[p.jsx(en,{className:"w-4 h-4"}),p.jsxs("span",{children:["最后更新: ",o(r.lastUpdated)]})]}),r.connectedServers&&r.connectedServers.length>0&&p.jsxs("div",{children:[p.jsxs("h4",{className:"font-medium text-gray-900 dark:text-white mb-2",children:["✅ 已连接的服务器 (",r.connectedServers.length,")"]}),p.jsx("div",{className:"space-y-2",children:r.connectedServers.map((h,d)=>p.jsxs("div",{className:"flex items-center space-x-2 p-2 bg-green-50 dark:bg-green-900/20 rounded border border-green-200 dark:border-green-800",children:[p.jsx(tn,{className:"w-4 h-4 text-green-500 flex-shrink-0"}),p.jsx("span",{className:"text-sm text-green-700 dark:text-green-300 font-medium",children:h.name}),p.jsxs("span",{className:"text-xs text-green-600 dark:text-green-400",children:["(",h.status,")"]})]},d))})]}),r.connectionErrors&&r.connectionErrors.length>0&&p.jsxs("div",{children:[p.jsxs("h4",{className:"font-medium text-gray-900 dark:text-white mb-2",children:["❌ 连接失败的服务器 (",r.connectionErrors.length,")"]}),p.jsx("div",{className:"space-y-2",children:r.connectionErrors.map((h,d)=>{const f=n.has(d),g=h.error&&h.error.length>50,m=s===d;return p.jsxs("div",{className:"p-2 bg-red-50 dark:bg-red-900/20 rounded border border-red-200 dark:border-red-800",children:[p.jsxs("div",{className:"flex items-center space-x-2 mb-1",children:[p.jsx(dd,{className:"w-4 h-4 text-red-500 flex-shrink-0"}),p.jsx("span",{className:"text-sm text-red-700 dark:text-red-300 font-medium",children:h.name}),p.jsxs("span",{className:"text-xs text-red-600 dark:text-red-400",children:["(",h.status,")"]}),g&&p.jsx("button",{onClick:()=>c(d),className:"ml-auto p-1 hover:bg-red-100 dark:hover:bg-red-800/30 rounded",title:f?"收起详细错误":"展开详细错误",children:f?p.jsx(pi,{className:"w-3 h-3 text-red-500"}):p.jsx(Ps,{className:"w-3 h-3 text-red-500"})})]}),h.error&&p.jsx("div",{className:"ml-6",children:g?p.jsxs("div",{children:[p.jsx("p",{className:"text-xs text-red-600 dark:text-red-400 mb-1",children:f?h.error:`${h.error.substring(0,50)}...`}),f&&p.jsx("div",{className:"flex items-center justify-between mt-2",children:p.jsxs("button",{onClick:()=>u(h.error,d),className:"flex items-center space-x-1 px-2 py-1 text-xs bg-red-100 dark:bg-red-800/30 hover:bg-red-200 dark:hover:bg-red-800/50 rounded transition-colors",title:"复制错误信息",children:[p.jsx(sc,{className:"w-3 h-3"}),p.jsx("span",{children:m?"已复制":"复制错误"})]})})]}):p.jsx("p",{className:"text-xs text-red-600 dark:text-red-400",children:h.error})})]},d)})})]}),r.lastError&&p.jsxs("div",{children:[p.jsxs("div",{className:"flex items-center justify-between mb-2",children:[p.jsx("h4",{className:"font-medium text-gray-900 dark:text-white",children:"🚨 最近的错误"}),p.jsxs("button",{onClick:()=>u(`${r.lastError}${r.lastErrorDetails?`
420
- 详情: `+r.lastErrorDetails:""}`,-1),className:"flex items-center space-x-1 px-2 py-1 text-xs bg-red-100 dark:bg-red-800/30 hover:bg-red-200 dark:hover:bg-red-800/50 rounded transition-colors",title:"复制错误信息",children:[p.jsx(sc,{className:"w-3 h-3"}),p.jsx("span",{children:s===-1?"已复制":"复制"})]})]}),p.jsxs("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 rounded border border-red-200 dark:border-red-800",children:[p.jsx("p",{className:"text-sm text-red-700 dark:text-red-300 mb-1 font-mono",children:r.lastError}),r.lastErrorDetails&&p.jsx("div",{className:"mt-2 pt-2 border-t border-red-200 dark:border-red-700",children:p.jsxs("p",{className:"text-xs text-red-600 dark:text-red-400 font-mono whitespace-pre-wrap",children:[p.jsx("span",{className:"font-semibold",children:"详情:"}),p.jsx("br",{}),r.lastErrorDetails]})})]})]}),!l&&p.jsxs("div",{className:"text-center py-8",children:[p.jsx(fd,{className:"w-12 h-12 text-gray-400 mx-auto mb-3"}),p.jsx("p",{className:"text-gray-500 dark:text-gray-400",children:"暂无 MCP 服务器信息"}),p.jsx("p",{className:"text-sm text-gray-400 dark:text-gray-500 mt-1",children:"当使用 MCP 工具时,状态信息将显示在这里"})]})]}),p.jsx("div",{className:"p-4 border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-750",children:p.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"MCP (Model Context Protocol) 工具允许 AI 与外部系统交互。 如果遇到连接问题,请检查 MCP 服务器配置。"})})]})})},jO=e=>{const{t}=Ce("components"),{inputMessage:r,selectedImages:n,isAiTyping:i,isMobile:s,showToolSelector:a,selectedRegularTools:o,selectedMcpTools:l,mcpToolsEnabled:c,showCommandSelector:u,showFileBrowser:h,commandSearch:d,selectedCommand:f,selectedCommandIndex:g,atSymbolPosition:m,commandWarning:b,permissionMode:y,selectedModel:k,selectedClaudeVersion:v,showMobileSettings:S,isVersionLocked:_,isDragOver:w,previewImage:E,showConfirmDialog:I,confirmMessage:N,showMcpStatusModal:T,availableModels:M,claudeVersionsData:B,agent:R,projectPath:$,mcpStatus:F,textareaRef:L,fileInputRef:P,onSend:W,handleKeyDown:X,handleImageSelect:C,handleImageRemove:j,handleImagePreview:te,handlePaste:A,handleDragOver:D,handleDragLeave:Y,handleDrop:U,handleStopGeneration:q,onSetInputMessage:V,onSetShowToolSelector:Z,onSetSelectedRegularTools:re,onSetSelectedMcpTools:ye,onSetMcpToolsEnabled:ke,onSetPermissionMode:Se,onSetSelectedModel:Le,onSetSelectedClaudeVersion:Oe,onSetShowMobileSettings:Ot,onSetPreviewImage:st,onSetShowMcpStatusModal:Mt,onCommandSelect:Lt,onSetShowCommandSelector:Ee,onSetSelectedCommandIndex:at,onSetShowFileBrowser:ot,onSetAtSymbolPosition:ze,onSetCommandWarning:It,onSetCommandSearch:gt,handleConfirmDialog:G,handleCancelDialog:J,isSendDisabled:me,envVars:_e,onSetEnvVars:Ie}=e,rt=O.useCallback(Be=>{const qe=Be.target.value;if(V(qe),b&&It(null),qe.length>0&&qe[qe.length-1]==="@"){const pt=qe.substring(0,qe.length-1);if(pt.length===0||/\s$/.test(pt)){ze(qe.length-1),ot(!0),L.current?.blur();return}}if(cs(qe)){const pt=Q1(qe);pt!==d&&(gt(pt),at(0)),u||Ee(!0)}else u&&(Ee(!1),at(0))},[b,d,u,V,ze,ot,Ee,It,at,gt,L]);return s?p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:"flex-shrink-0 bg-white dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700 p-3 space-y-3",children:[b&&p.jsxs("div",{className:"bg-red-50 dark:bg-red-900/30 border border-red-200 dark:border-red-800 rounded-lg p-2 flex items-start space-x-2",children:[p.jsx("div",{className:"flex-shrink-0",children:p.jsx("svg",{className:"w-4 h-4 text-red-600 dark:text-red-400 mt-0.5",fill:"currentColor",viewBox:"0 0 20 20",children:p.jsx("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})}),p.jsx("div",{className:"flex-1",children:p.jsx("p",{className:"text-xs text-red-800 dark:text-red-300",children:b})})]}),p.jsx(MO,{inputMessage:r,setInputMessage:rt,selectedImages:n,isDragOver:w,isAiTyping:i,isSendDisabled:me(),showToolSelector:a,setShowToolSelector:Z,selectedRegularTools:o,setSelectedRegularTools:re,selectedMcpTools:l,setSelectedMcpTools:ye,mcpToolsEnabled:c,setMcpToolsEnabled:ke,permissionMode:y,setPermissionMode:Se,selectedModel:k,setSelectedModel:Le,selectedClaudeVersion:v,setSelectedClaudeVersion:Oe,availableModels:M,claudeVersionsData:B,isVersionLocked:_,agent:R,textareaRef:L,fileInputRef:P,onSend:W,onStopGeneration:q,onKeyDown:X,onImageSelect:C,onPaste:A,onDragOver:D,onDragLeave:Y,onDrop:U,envVars:_e,onEnvVarsChange:Ie}),p.jsx(Lu,{isOpen:a,onClose:()=>Z(!1),selectedRegularTools:o,onRegularToolsChange:re,selectedMcpTools:l,onMcpToolsChange:ye,mcpToolsEnabled:c,onMcpEnabledChange:ke,presetTools:R.allowedTools})]}),S&&p.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:p.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg p-6 m-4 max-w-sm w-full",children:[p.jsxs("div",{className:"flex justify-between items-center mb-4",children:[p.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:t("agentChat.settings")}),p.jsx("button",{onClick:()=>Ot(!1),className:"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",children:p.jsx(En,{className:"w-6 h-6"})})]}),p.jsxs("div",{className:"space-y-4",children:[p.jsxs("div",{children:[p.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:t("agentChat.permissionMode")}),p.jsxs("select",{value:y,onChange:Be=>Se(Be.target.value),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white",children:[p.jsx("option",{value:"default",children:t("agentChat.default")}),p.jsx("option",{value:"acceptEdits",children:t("agentChat.acceptEdits")}),p.jsx("option",{value:"bypassPermissions",children:t("agentChat.bypassPermissions")})]})]}),p.jsxs("div",{children:[p.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:t("agentChat.model")}),p.jsx("select",{value:k,onChange:Be=>Le(Be.target.value),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white",children:M.map(Be=>p.jsx("option",{value:Be.id,children:Be.name},Be.id))})]}),!_&&p.jsxs("div",{children:[p.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:t("agentChat.version")}),p.jsx("select",{value:v,onChange:Be=>Oe(Be.target.value),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white",children:B?.availableVersions?.map(Be=>p.jsx("option",{value:Be.id,children:Be.name},Be.id))})]})]})]})}),p.jsx(eg,{showCommandSelector:u,showFileBrowser:h,commandSearch:d,selectedCommand:f,selectedCommandIndex:g,atSymbolPosition:m,projectPath:$,textareaRef:L,inputMessage:r,onCommandSelect:Lt,onSetInputMessage:V,onSetShowCommandSelector:Ee,onSetSelectedCommandIndex:at,onSetShowFileBrowser:ot,onSetAtSymbolPosition:ze}),p.jsx(tg,{isOpen:I,message:N,onConfirm:G,onCancel:J}),p.jsx(Io,{images:E?[E]:[],onClose:()=>st(null)}),p.jsx(rg,{isOpen:T,onClose:()=>Mt(!1),mcpStatus:F})]}):p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:`flex-shrink-0 border-t border-gray-200 dark:border-gray-700 ${w?"bg-blue-50 dark:bg-blue-900/30 border-blue-300 dark:border-blue-700":""}`,onDragOver:D,onDragLeave:Y,onDrop:U,children:[n.length>0&&p.jsx("div",{className:"p-4 pb-2 border-b border-gray-100 dark:border-gray-700",children:p.jsx("div",{className:"flex flex-wrap gap-2",children:n.map(Be=>p.jsxs("div",{className:"relative group",children:[p.jsx("img",{src:Be.preview,alt:t("agentChat.imagePreview"),className:"w-16 h-16 object-cover rounded-lg border border-gray-200 dark:border-gray-600 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>te(Be.preview)}),p.jsx("button",{onClick:()=>j(Be.id),className:"absolute -top-1 -right-1 w-5 h-5 bg-red-500 text-white rounded-full flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity text-xs hover:bg-red-600",title:t("agentChat.deleteImage"),children:p.jsx(En,{className:"w-3 h-3"})})]},Be.id))})}),w&&p.jsx("div",{className:"absolute inset-0 bg-blue-100 dark:bg-blue-900/50 bg-opacity-75 flex items-center justify-center z-10 pointer-events-none",children:p.jsxs("div",{className:"text-blue-600 dark:text-blue-300 text-lg font-medium flex items-center space-x-2",children:[p.jsx(ks,{className:"w-6 h-6"}),p.jsx("span",{children:t("agentChat.dropImageHere")})]})}),b&&p.jsx("div",{className:"px-4 pt-3 pb-2",children:p.jsxs("div",{className:"bg-red-50 dark:bg-red-900/30 border border-red-200 dark:border-red-800 rounded-lg p-3 flex items-start space-x-2",children:[p.jsx("div",{className:"flex-shrink-0",children:p.jsx("svg",{className:"w-5 h-5 text-red-600 dark:text-red-400 mt-0.5",fill:"currentColor",viewBox:"0 0 20 20",children:p.jsx("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})}),p.jsx("div",{className:"flex-1",children:p.jsx("p",{className:"text-sm text-red-800 dark:text-red-300",children:b})})]})}),p.jsx(NO,{inputMessage:r,setInputMessage:rt,selectedImages:n,isDragOver:w,isAiTyping:i,isSendDisabled:me(),showToolSelector:a,setShowToolSelector:Z,selectedRegularTools:o,setSelectedRegularTools:re,selectedMcpTools:l,setSelectedMcpTools:ye,mcpToolsEnabled:c,setMcpToolsEnabled:ke,permissionMode:y,setPermissionMode:Se,selectedModel:k,setSelectedModel:Le,selectedClaudeVersion:v,setSelectedClaudeVersion:Oe,availableModels:M,claudeVersionsData:B,isVersionLocked:_,agent:R,textareaRef:L,fileInputRef:P,onSend:W,onStopGeneration:q,onKeyDown:X,onImageSelect:C,onPaste:A,onDragOver:D,onDragLeave:Y,onDrop:U,envVars:_e,setEnvVars:Ie})]}),p.jsx(eg,{showCommandSelector:u,showFileBrowser:h,commandSearch:d,selectedCommand:f,selectedCommandIndex:g,atSymbolPosition:m,projectPath:$,textareaRef:L,inputMessage:r,onCommandSelect:Lt,onSetInputMessage:V,onSetShowCommandSelector:Ee,onSetSelectedCommandIndex:at,onSetShowFileBrowser:ot,onSetAtSymbolPosition:ze}),p.jsx(tg,{isOpen:I,message:N,onConfirm:G,onCancel:J}),p.jsx(Io,{images:E?[E]:[],onClose:()=>st(null)}),p.jsx(rg,{isOpen:T,onClose:()=>Mt(!1),mcpStatus:F})]})},BO=({agent:e,projectPath:t,onSessionChange:r,initialMessage:n})=>{const{t:i}=Ce("components"),{isCompactMode:s}=G1(),{isMobile:a}=mg(),o=O.useRef(null),l=O.useRef(null),c=O.useRef(null),u=O.useRef(null),h=O.useRef(null),[d,f]=O.useState(""),[g,m]=O.useState(!1),{messages:b,isAiTyping:y,currentSessionId:k,mcpStatus:v,pendingUserQuestion:S,addMessage:_,interruptAllExecutingTools:w,setAiTyping:E,loadSessionMessages:I,setPendingUserQuestion:N}=Xe(),T=O.useRef(!1);O.useEffect(()=>{n&&!g&&(f(n),m(!0),T.current=!0)},[n,g]);const M=cv(),{showSessions:B,showConfirmDialog:R,showMobileSettings:$,showMcpStatusModal:F,confirmMessage:L,searchTerm:P,isStopping:W,isInitializingSession:X,setShowSessions:C,setShowConfirmDialog:j,setShowMobileSettings:te,setShowMcpStatusModal:A,setConfirmMessage:D,setConfirmAction:Y,setSearchTerm:U,setIsStopping:q,setIsInitializingSession:V,handleConfirmDialog:Z,handleCancelDialog:re}=M,ye=lv({agentId:e.id,currentSessionId:k,onSessionChange:r,textareaRef:c}),{isLoadingMessages:ke,isNewSession:Se,hasSuccessfulResponse:Le,setIsLoadingMessages:Oe,setIsNewSession:Ot,setHasSuccessfulResponse:st,setCurrentSessionId:Mt,handleSwitchSession:Lt,handleNewSession:Ee,handleRefreshMessages:at}=ye,{selectedImages:ot,previewImage:ze,isDragOver:It,handleImageSelect:gt,handleImageRemove:G,handleImagePreview:J,handlePaste:me,handleDragOver:_e,handleDragLeave:Ie,handleDrop:rt,clearImages:Be,setPreviewImage:qe}=Z1({textareaRef:c,inputMessage:d,setInputMessage:f}),pt=J1({messagesContainerRef:o,messagesEndRef:l,messages:b,isAiTyping:y}),mt=ev({projectPath:t,textareaRef:c}),Ze=tv({agent:e}),Zt=rv({initialModel:"claude-3-5-sonnet-20241022"}),{commandSearch:kt,selectedCommand:$i,selectedCommandIndex:fn,commandWarning:Wn,showCommandSelector:Qs,showFileBrowser:qr,atSymbolPosition:Zs,allCommands:Hn,SYSTEM_COMMANDS:Je,userCommands:Ur,projectCommands:fl,userCommandsError:qn,projectCommandsError:pn,setSelectedCommand:Js,setSelectedCommandIndex:Un,setCommandWarning:Vn,setShowCommandSelector:zt,setShowFileBrowser:gr,setAtSymbolPosition:ji,setCommandSearch:ea,handleCommandSelect:Gn,isCommandDefined:Bi,getAllAvailableCommands:Jt}=mt,{selectedModel:Vr,selectedClaudeVersion:Gr,isVersionLocked:ta,claudeVersionsData:ra,availableModels:pl,setSelectedModel:he,setSelectedClaudeVersion:z,setIsVersionLocked:Q}=Zt,{showToolSelector:oe,selectedRegularTools:We,selectedMcpTools:lt,mcpToolsEnabled:Qe,permissionMode:xt,showPermissionDropdown:sr,showModelDropdown:Yr,showVersionDropdown:Di,setShowToolSelector:ct,setSelectedRegularTools:na,setSelectedMcpTools:ia,setMcpToolsEnabled:Gw,setPermissionMode:Yw,setShowPermissionDropdown:Zh,setShowModelDropdown:Jh,setShowVersionDropdown:ed,envVars:td,setEnvVars:Xw}=Ze,{isUserScrolling:rd,newMessagesCount:nd,scrollToBottom:id,setNewMessagesCount:Kw,setIsUserScrolling:Qw}=pt,[Zw,Jw]=O.useState("默认服务");O.useEffect(()=>{const we=c1(),wt=u1(we);wt&&Jw(wt.name)},[]);const e1=p1(),{data:sd}=g1(e.id,P,t),{data:Mr}=m1(e.id,k,t),{data:gl}=y1();V1({agentId:e.id,sessionId:k,projectPath:t,enabled:!!k,isNewSession:Se,hasSuccessfulResponse:Le}),O.useEffect(()=>vr.startSmartMonitoring(),[]),O.useEffect(()=>{if(k&&e.id)return console.log(`🎯 Setting up wakeup listener for session: ${k}`),vr.setupWakeupListener(e.id,k)},[k,e.id]);const ad=qn||pn;O.useEffect(()=>{Un(we=>Hn.length>0&&we>=Hn.length?0:we)},[Hn.length]);const t1=we=>{Lt(we),C(!1)},r1=()=>{Ee(),C(!1),U("")},n1=async()=>{if(!(!h.current||!k))try{q(!0),console.log("🛑 Stopping generation for session:",k);try{await e1.mutateAsync(k),console.log("✅ Successfully interrupted session via API")}catch(we){console.error("❌ Failed to interrupt session:",we);const wt=we instanceof Error?we.message:"Unknown error";_({content:`${i("agentChat.stopFailed")}
420
+ 详情: `+r.lastErrorDetails:""}`,-1),className:"flex items-center space-x-1 px-2 py-1 text-xs bg-red-100 dark:bg-red-800/30 hover:bg-red-200 dark:hover:bg-red-800/50 rounded transition-colors",title:"复制错误信息",children:[p.jsx(sc,{className:"w-3 h-3"}),p.jsx("span",{children:s===-1?"已复制":"复制"})]})]}),p.jsxs("div",{className:"p-3 bg-red-50 dark:bg-red-900/20 rounded border border-red-200 dark:border-red-800",children:[p.jsx("p",{className:"text-sm text-red-700 dark:text-red-300 mb-1 font-mono",children:r.lastError}),r.lastErrorDetails&&p.jsx("div",{className:"mt-2 pt-2 border-t border-red-200 dark:border-red-700",children:p.jsxs("p",{className:"text-xs text-red-600 dark:text-red-400 font-mono whitespace-pre-wrap",children:[p.jsx("span",{className:"font-semibold",children:"详情:"}),p.jsx("br",{}),r.lastErrorDetails]})})]})]}),!l&&p.jsxs("div",{className:"text-center py-8",children:[p.jsx(fd,{className:"w-12 h-12 text-gray-400 mx-auto mb-3"}),p.jsx("p",{className:"text-gray-500 dark:text-gray-400",children:"暂无 MCP 服务器信息"}),p.jsx("p",{className:"text-sm text-gray-400 dark:text-gray-500 mt-1",children:"当使用 MCP 工具时,状态信息将显示在这里"})]})]}),p.jsx("div",{className:"p-4 border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-750",children:p.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"MCP (Model Context Protocol) 工具允许 AI 与外部系统交互。 如果遇到连接问题,请检查 MCP 服务器配置。"})})]})})},jO=e=>{const{t}=Ce("components"),{inputMessage:r,selectedImages:n,isAiTyping:i,isMobile:s,showToolSelector:a,selectedRegularTools:o,selectedMcpTools:l,mcpToolsEnabled:c,showCommandSelector:u,showFileBrowser:h,commandSearch:d,selectedCommand:f,selectedCommandIndex:g,atSymbolPosition:m,commandWarning:b,permissionMode:y,selectedModel:k,selectedClaudeVersion:v,showMobileSettings:S,isVersionLocked:_,isDragOver:w,previewImage:E,showConfirmDialog:I,confirmMessage:N,showMcpStatusModal:T,availableModels:M,claudeVersionsData:B,agent:R,projectPath:$,mcpStatus:F,textareaRef:L,fileInputRef:P,onSend:W,handleKeyDown:X,handleImageSelect:C,handleImageRemove:j,handleImagePreview:te,handlePaste:A,handleDragOver:D,handleDragLeave:Y,handleDrop:U,handleStopGeneration:q,onSetInputMessage:V,onSetShowToolSelector:Z,onSetSelectedRegularTools:re,onSetSelectedMcpTools:ye,onSetMcpToolsEnabled:ke,onSetPermissionMode:Se,onSetSelectedModel:Le,onSetSelectedClaudeVersion:Oe,onSetShowMobileSettings:Ot,onSetPreviewImage:st,onSetShowMcpStatusModal:Mt,onCommandSelect:Lt,onSetShowCommandSelector:Ee,onSetSelectedCommandIndex:at,onSetShowFileBrowser:ot,onSetAtSymbolPosition:ze,onSetCommandWarning:It,onSetCommandSearch:gt,handleConfirmDialog:G,handleCancelDialog:J,isSendDisabled:me,envVars:_e,onSetEnvVars:Ie}=e,rt=O.useCallback(Be=>{const qe=Be.target.value;if(V(qe),b&&It(null),qe.length>0&&qe[qe.length-1]==="@"){const pt=qe.substring(0,qe.length-1);if(pt.length===0||/\s$/.test(pt)){ze(qe.length-1),ot(!0),L.current?.blur();return}}if(cs(qe)){const pt=Q1(qe);pt!==d&&(gt(pt),at(0)),u||Ee(!0)}else u&&(Ee(!1),at(0))},[b,d,u,V,ze,ot,Ee,It,at,gt,L]);return s?p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:"flex-shrink-0 bg-white dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700 p-3 space-y-3",children:[b&&p.jsxs("div",{className:"bg-red-50 dark:bg-red-900/30 border border-red-200 dark:border-red-800 rounded-lg p-2 flex items-start space-x-2",children:[p.jsx("div",{className:"flex-shrink-0",children:p.jsx("svg",{className:"w-4 h-4 text-red-600 dark:text-red-400 mt-0.5",fill:"currentColor",viewBox:"0 0 20 20",children:p.jsx("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})}),p.jsx("div",{className:"flex-1",children:p.jsx("p",{className:"text-xs text-red-800 dark:text-red-300",children:b})})]}),p.jsx(MO,{inputMessage:r,setInputMessage:rt,selectedImages:n,isDragOver:w,isAiTyping:i,isSendDisabled:me(),showToolSelector:a,setShowToolSelector:Z,selectedRegularTools:o,setSelectedRegularTools:re,selectedMcpTools:l,setSelectedMcpTools:ye,mcpToolsEnabled:c,setMcpToolsEnabled:ke,permissionMode:y,setPermissionMode:Se,selectedModel:k,setSelectedModel:Le,selectedClaudeVersion:v,setSelectedClaudeVersion:Oe,availableModels:M,claudeVersionsData:B,isVersionLocked:_,agent:R,textareaRef:L,fileInputRef:P,onSend:W,onStopGeneration:q,onKeyDown:X,onImageSelect:C,onPaste:A,onDragOver:D,onDragLeave:Y,onDrop:U,envVars:_e,onEnvVarsChange:Ie}),p.jsx(Lu,{isOpen:a,onClose:()=>Z(!1),selectedRegularTools:o,onRegularToolsChange:re,selectedMcpTools:l,onMcpToolsChange:ye,mcpToolsEnabled:c,onMcpEnabledChange:ke,presetTools:R.allowedTools})]}),S&&p.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:p.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg p-6 m-4 max-w-sm w-full",children:[p.jsxs("div",{className:"flex justify-between items-center mb-4",children:[p.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:t("agentChat.settings")}),p.jsx("button",{onClick:()=>Ot(!1),className:"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",children:p.jsx(En,{className:"w-6 h-6"})})]}),p.jsxs("div",{className:"space-y-4",children:[p.jsxs("div",{children:[p.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:t("agentChat.permissionMode")}),p.jsxs("select",{value:y,onChange:Be=>Se(Be.target.value),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white",children:[p.jsx("option",{value:"default",children:t("agentChat.default")}),p.jsx("option",{value:"acceptEdits",children:t("agentChat.acceptEdits")}),p.jsx("option",{value:"bypassPermissions",children:t("agentChat.bypassPermissions")})]})]}),p.jsxs("div",{children:[p.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:t("agentChat.model")}),p.jsx("select",{value:k,onChange:Be=>Le(Be.target.value),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white",children:M.map(Be=>p.jsx("option",{value:Be.id,children:Be.name},Be.id))})]}),!_&&p.jsxs("div",{children:[p.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:t("agentChat.version")}),p.jsx("select",{value:v,onChange:Be=>Oe(Be.target.value),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white",children:B?.availableVersions?.map(Be=>p.jsx("option",{value:Be.id,children:Be.name},Be.id))})]})]})]})}),p.jsx(eg,{showCommandSelector:u,showFileBrowser:h,commandSearch:d,selectedCommand:f,selectedCommandIndex:g,atSymbolPosition:m,projectPath:$,textareaRef:L,inputMessage:r,onCommandSelect:Lt,onSetInputMessage:V,onSetShowCommandSelector:Ee,onSetSelectedCommandIndex:at,onSetShowFileBrowser:ot,onSetAtSymbolPosition:ze}),p.jsx(tg,{isOpen:I,message:N,onConfirm:G,onCancel:J}),p.jsx(Io,{images:E?[E]:[],onClose:()=>st(null)}),p.jsx(rg,{isOpen:T,onClose:()=>Mt(!1),mcpStatus:F})]}):p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:`flex-shrink-0 border-t border-gray-200 dark:border-gray-700 ${w?"bg-blue-50 dark:bg-blue-900/30 border-blue-300 dark:border-blue-700":""}`,onDragOver:D,onDragLeave:Y,onDrop:U,children:[n.length>0&&p.jsx("div",{className:"p-4 pb-2 border-b border-gray-100 dark:border-gray-700",children:p.jsx("div",{className:"flex flex-wrap gap-2",children:n.map(Be=>p.jsxs("div",{className:"relative group",children:[p.jsx("img",{src:Be.preview,alt:t("agentChat.imagePreview"),className:"w-16 h-16 object-cover rounded-lg border border-gray-200 dark:border-gray-600 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>te(Be.preview)}),p.jsx("button",{onClick:()=>j(Be.id),className:"absolute -top-1 -right-1 w-5 h-5 bg-red-500 text-white rounded-full flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity text-xs hover:bg-red-600",title:t("agentChat.deleteImage"),children:p.jsx(En,{className:"w-3 h-3"})})]},Be.id))})}),w&&p.jsx("div",{className:"absolute inset-0 bg-blue-100 dark:bg-blue-900/50 bg-opacity-75 flex items-center justify-center z-10 pointer-events-none",children:p.jsxs("div",{className:"text-blue-600 dark:text-blue-300 text-lg font-medium flex items-center space-x-2",children:[p.jsx(ks,{className:"w-6 h-6"}),p.jsx("span",{children:t("agentChat.dropImageHere")})]})}),b&&p.jsx("div",{className:"px-4 pt-3 pb-2",children:p.jsxs("div",{className:"bg-red-50 dark:bg-red-900/30 border border-red-200 dark:border-red-800 rounded-lg p-3 flex items-start space-x-2",children:[p.jsx("div",{className:"flex-shrink-0",children:p.jsx("svg",{className:"w-5 h-5 text-red-600 dark:text-red-400 mt-0.5",fill:"currentColor",viewBox:"0 0 20 20",children:p.jsx("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})}),p.jsx("div",{className:"flex-1",children:p.jsx("p",{className:"text-sm text-red-800 dark:text-red-300",children:b})})]})}),p.jsx(NO,{inputMessage:r,setInputMessage:rt,selectedImages:n,isDragOver:w,isAiTyping:i,isSendDisabled:me(),showToolSelector:a,setShowToolSelector:Z,selectedRegularTools:o,setSelectedRegularTools:re,selectedMcpTools:l,setSelectedMcpTools:ye,mcpToolsEnabled:c,setMcpToolsEnabled:ke,permissionMode:y,setPermissionMode:Se,selectedModel:k,setSelectedModel:Le,selectedClaudeVersion:v,setSelectedClaudeVersion:Oe,availableModels:M,claudeVersionsData:B,isVersionLocked:_,agent:R,textareaRef:L,fileInputRef:P,onSend:W,onStopGeneration:q,onKeyDown:X,onImageSelect:C,onPaste:A,onDragOver:D,onDragLeave:Y,onDrop:U,envVars:_e,setEnvVars:Ie})]}),p.jsx(eg,{showCommandSelector:u,showFileBrowser:h,commandSearch:d,selectedCommand:f,selectedCommandIndex:g,atSymbolPosition:m,projectPath:$,textareaRef:L,inputMessage:r,onCommandSelect:Lt,onSetInputMessage:V,onSetShowCommandSelector:Ee,onSetSelectedCommandIndex:at,onSetShowFileBrowser:ot,onSetAtSymbolPosition:ze}),p.jsx(tg,{isOpen:I,message:N,onConfirm:G,onCancel:J}),p.jsx(Io,{images:E?[E]:[],onClose:()=>st(null)}),p.jsx(rg,{isOpen:T,onClose:()=>Mt(!1),mcpStatus:F})]})},BO=({agent:e,projectPath:t,onSessionChange:r,initialMessage:n})=>{const{t:i}=Ce("components"),{isCompactMode:s}=G1(),{isMobile:a}=mg(),o=O.useRef(null),l=O.useRef(null),c=O.useRef(null),u=O.useRef(null),h=O.useRef(null),[d,f]=O.useState(""),[g,m]=O.useState(!1),{messages:b,isAiTyping:y,currentSessionId:k,mcpStatus:v,pendingUserQuestion:S,addMessage:_,interruptAllExecutingTools:w,setAiTyping:E,loadSessionMessages:I,setPendingUserQuestion:N}=Xe(),T=O.useRef(!1);O.useEffect(()=>{n&&!g&&(f(n),m(!0),T.current=!0)},[n,g]);const M=cv(),{showSessions:B,showConfirmDialog:R,showMobileSettings:$,showMcpStatusModal:F,confirmMessage:L,searchTerm:P,isStopping:W,isInitializingSession:X,setShowSessions:C,setShowConfirmDialog:j,setShowMobileSettings:te,setShowMcpStatusModal:A,setConfirmMessage:D,setConfirmAction:Y,setSearchTerm:U,setIsStopping:q,setIsInitializingSession:V,handleConfirmDialog:Z,handleCancelDialog:re}=M,ye=lv({agentId:e.id,currentSessionId:k,onSessionChange:r,textareaRef:c}),{isLoadingMessages:ke,isNewSession:Se,hasSuccessfulResponse:Le,setIsLoadingMessages:Oe,setIsNewSession:Ot,setHasSuccessfulResponse:st,setCurrentSessionId:Mt,handleSwitchSession:Lt,handleNewSession:Ee,handleRefreshMessages:at}=ye,{selectedImages:ot,previewImage:ze,isDragOver:It,handleImageSelect:gt,handleImageRemove:G,handleImagePreview:J,handlePaste:me,handleDragOver:_e,handleDragLeave:Ie,handleDrop:rt,clearImages:Be,setPreviewImage:qe}=Z1({textareaRef:c,inputMessage:d,setInputMessage:f}),pt=J1({messagesContainerRef:o,messagesEndRef:l,messages:b,isAiTyping:y}),mt=ev({projectPath:t,textareaRef:c}),Ze=tv({agent:e}),Zt=rv({initialModel:"sonnet"}),{commandSearch:kt,selectedCommand:$i,selectedCommandIndex:fn,commandWarning:Wn,showCommandSelector:Qs,showFileBrowser:qr,atSymbolPosition:Zs,allCommands:Hn,SYSTEM_COMMANDS:Je,userCommands:Ur,projectCommands:fl,userCommandsError:qn,projectCommandsError:pn,setSelectedCommand:Js,setSelectedCommandIndex:Un,setCommandWarning:Vn,setShowCommandSelector:zt,setShowFileBrowser:gr,setAtSymbolPosition:ji,setCommandSearch:ea,handleCommandSelect:Gn,isCommandDefined:Bi,getAllAvailableCommands:Jt}=mt,{selectedModel:Vr,selectedClaudeVersion:Gr,isVersionLocked:ta,claudeVersionsData:ra,availableModels:pl,setSelectedModel:he,setSelectedClaudeVersion:z,setIsVersionLocked:Q}=Zt,{showToolSelector:oe,selectedRegularTools:We,selectedMcpTools:lt,mcpToolsEnabled:Qe,permissionMode:xt,showPermissionDropdown:sr,showModelDropdown:Yr,showVersionDropdown:Di,setShowToolSelector:ct,setSelectedRegularTools:na,setSelectedMcpTools:ia,setMcpToolsEnabled:Gw,setPermissionMode:Yw,setShowPermissionDropdown:Zh,setShowModelDropdown:Jh,setShowVersionDropdown:ed,envVars:td,setEnvVars:Xw}=Ze,{isUserScrolling:rd,newMessagesCount:nd,scrollToBottom:id,setNewMessagesCount:Kw,setIsUserScrolling:Qw}=pt,[Zw,Jw]=O.useState("默认服务");O.useEffect(()=>{const we=c1(),wt=u1(we);wt&&Jw(wt.name)},[]);const e1=p1(),{data:sd}=g1(e.id,P,t),{data:Mr}=m1(e.id,k,t),{data:gl}=y1();V1({agentId:e.id,sessionId:k,projectPath:t,enabled:!!k,isNewSession:Se,hasSuccessfulResponse:Le}),O.useEffect(()=>vr.startSmartMonitoring(),[]),O.useEffect(()=>{if(k&&e.id)return console.log(`🎯 Setting up wakeup listener for session: ${k}`),vr.setupWakeupListener(e.id,k)},[k,e.id]);const ad=qn||pn;O.useEffect(()=>{Un(we=>Hn.length>0&&we>=Hn.length?0:we)},[Hn.length]);const t1=we=>{Lt(we),C(!1)},r1=()=>{Ee(),C(!1),U("")},n1=async()=>{if(!(!h.current||!k))try{q(!0),console.log("🛑 Stopping generation for session:",k);try{await e1.mutateAsync(k),console.log("✅ Successfully interrupted session via API")}catch(we){console.error("❌ Failed to interrupt session:",we);const wt=we instanceof Error?we.message:"Unknown error";_({content:`${i("agentChat.stopFailed")}
421
421
 
422
422
  ${wt}`,role:"assistant"}),q(!1);return}w(),h.current.abort(),h.current=null,E(!1),q(!1),V(!1),_({content:i("agentChat.generationStopped"),role:"assistant"})}catch(we){console.error("Error stopping generation:",we),q(!1),V(!1)}},{isSendDisabled:ml,handleSendMessage:sa}=ov({agent:e,projectPath:t,inputMessage:d,selectedImages:ot,isAiTyping:y,currentSessionId:k,hasCommandsLoadError:!!ad,userCommandsError:qn||void 0,projectCommandsError:pn||void 0,SYSTEM_COMMANDS:Je,userCommands:Ur,projectCommands:fl,selectedCommand:$i,selectedRegularTools:We,selectedMcpTools:lt,mcpToolsEnabled:Qe,permissionMode:xt,selectedModel:Vr,selectedClaudeVersion:Gr,abortControllerRef:h,onSessionChange:r,setInputMessage:f,clearImages:Be,setSelectedCommand:Js,setShowCommandSelector:zt,setCommandWarning:Vn,setIsInitializingSession:V,setCurrentSessionId:Mt,setIsNewSession:Ot,setAiTyping:E,setHasSuccessfulResponse:st,setConfirmMessage:D,setConfirmAction:Y,setShowConfirmDialog:j,handleNewSession:Ee,isCommandDefined:Bi,getAllAvailableCommands:Jt,envVars:td});O.useEffect(()=>{if(!T.current||!d)return;const we=()=>!ml()&&!y?(T.current=!1,sa(),!0):!1;if(we())return;const wt=setTimeout(()=>{T.current&&we()},500);return()=>clearTimeout(wt)},[d,ml,y,sa]);const i1=async(we,wt)=>{console.log("🎤 [AskUserQuestion] Submitting response for tool:",we);try{const Xr=await ic(`${nc}/agents/user-response`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({toolUseId:we,response:wt,sessionId:k,agentId:e.id})});if(!Xr.ok){const o1=await Xr.json().catch(()=>({}));throw new Error(o1.error||`HTTP ${Xr.status}`)}console.log("✅ [AskUserQuestion] Response submitted successfully"),N(null)}catch(Xr){console.error("🎤 [AskUserQuestion] Submit failed:",Xr)}},s1=$O({showCommandSelector:Qs,showFileBrowser:qr,commandSearch:kt,selectedCommand:$i,selectedCommandIndex:fn,atSymbolPosition:Zs,projectPath:t,textareaRef:c,inputMessage:d,allCommands:Hn,onCommandSelect:Gn,onSetInputMessage:f,onSetShowCommandSelector:zt,onSetSelectedCommandIndex:Un,onSetShowFileBrowser:gr,onSetAtSymbolPosition:ji,onHandleKeyDown:we=>{if(we.key==="Enter"&&!we.shiftKey){if(we.preventDefault(),cs(d)){const wt=d.slice(1).split(" ")[0].toLowerCase();if(!Bi(wt)){Vn(ad?i("agentChat.commandsLoadErrorWarning",{command:wt,commands:Je.map(Xr=>Xr.content).join(", "),errorMessage:qn?.message||pn?.message||"Unknown error"}):i("agentChat.unknownCommandWarning",{command:wt,commands:Jt()}));return}}sa();return}}}),a1=()=>{const we=c.current;we&&(we.style.height="auto",we.style.height=Math.min(we.scrollHeight,100)+"px")};return O.useEffect(()=>{a1()},[d]),O.useEffect(()=>{console.log("🔍 Session messages effect triggered:",{sessionMessagesData:Mr?.messages?.length||0,currentSessionId:k,hasSessionMessagesData:!!Mr,messagesLength:Mr?.messages?.length,isLoadingMessages:ke}),Mr?.messages&&k?(console.log("✅ Loading session messages:",Mr.messages.length),I(Mr.messages),ke&&setTimeout(()=>{Oe(!1)},100)):k&&Mr&&Mr.messages?.length===0&&(console.log("🗑️ Loading empty session messages"),I([]),ke&&setTimeout(()=>{Oe(!1)},100))},[Mr,k,I,ke,i]),O.useEffect(()=>{const we=wt=>{wt.target.closest(".dropdown-container")||(Zh(!1),Jh(!1),ed(!1))};return document.addEventListener("mousedown",we),()=>document.removeEventListener("mousedown",we)},[]),O.useEffect(()=>{if(!k||!gl?.sessions){Q(!1);return}const we=gl.sessions.find(wt=>wt.sessionId===k);we?(console.log(`🔒 Found active session: ${k}, version: ${we.claudeVersionId}, model: ${we.modelId}`),we.claudeVersionId?(Gr!==we.claudeVersionId&&(console.log(`🔄 Changing Claude version from ${Gr} to ${we.claudeVersionId}`),z(we.claudeVersionId)),we.modelId&&Vr!==we.modelId&&(console.log(`🔄 Restoring model from ${Vr} to ${we.modelId}`),he(we.modelId)),Q(!0),console.log(`🔒 Locked to Claude version: ${we.claudeVersionId}, model: ${we.modelId}`)):(Q(!1),console.log("🔓 Session has no specific version, unlocked but keeping user selection"))):(Q(!1),console.log(`🔓 Session ${k} not in active sessions, unlocked but keeping user selection`))},[k,gl,Gr,Vr,he]),p.jsxs("div",{className:"flex flex-col h-full bg-white dark:bg-gray-900",children:[p.jsx("div",{className:"flex-shrink-0 h-12 px-4 border-b border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 flex items-center",children:p.jsxs("div",{className:"flex items-center justify-between w-full",children:[p.jsx("div",{className:"flex-1 min-w-0",children:p.jsxs("h1",{className:"text-base font-semibold flex items-center space-x-2 text-gray-900 dark:text-white",children:[p.jsx("span",{className:"text-lg flex-shrink-0",children:e.ui.icon}),p.jsxs("span",{className:"truncate",children:["[",Zw,"]"]}),t&&p.jsx("span",{className:"text-sm opacity-75 font-normal truncate flex-shrink-0",title:t,children:t.split("/").pop()||t}),k&&p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"text-sm opacity-75",children:"-"}),p.jsx("span",{className:"text-sm opacity-75 truncate",children:sd?.sessions?.find(we=>we.id===k)?.title||i("agentChat.currentSession")})]})]})}),p.jsxs("div",{className:"flex space-x-1 flex-shrink-0 ml-2",children:[p.jsx("button",{onClick:r1,className:"p-1.5 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-md transition-colors text-gray-600 dark:text-gray-300",title:i("agentChat.newSession"),children:p.jsx(dg,{className:"w-4 h-4"})}),p.jsxs("div",{className:"relative",children:[p.jsx("button",{onClick:()=>C(!B),className:"p-1.5 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-md transition-colors text-gray-600 dark:text-gray-300",title:i("agentChat.sessionHistory"),children:p.jsx(en,{className:"w-4 h-4"})}),p.jsx(Y1,{isOpen:B,onToggle:()=>C(!B),sessions:sd?.sessions||[],currentSessionId:k,onSwitchSession:t1,isLoading:!1,searchTerm:P,onSearchChange:U})]}),p.jsx("button",{onClick:at,disabled:!k||ke,className:"p-1.5 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-md transition-colors text-gray-600 dark:text-gray-300 disabled:opacity-50 disabled:cursor-not-allowed",title:i("agentChat.refreshMessages"),children:p.jsx(cg,{className:`w-4 h-4 ${ke?"animate-spin":""}`})})]})]})}),p.jsxs("div",{className:"flex-1 relative min-h-0",children:[p.jsxs("div",{ref:o,className:"absolute inset-0 px-5 py-5 overflow-y-auto space-y-4",children:[p.jsx("div",{className:"px-4",children:p.jsx("div",{className:"text-sm leading-relaxed break-words overflow-hidden text-gray-600 dark:text-gray-400",children:e.ui.welcomeMessage||e.description})}),ke?p.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-3",children:[p.jsxs("div",{className:"flex space-x-2",children:[p.jsx("div",{className:"w-3 h-3 bg-gray-400 dark:bg-gray-500 rounded-full animate-bounce"}),p.jsx("div",{className:"w-3 h-3 bg-gray-400 dark:bg-gray-500 rounded-full animate-bounce",style:{animationDelay:"0.1s"}}),p.jsx("div",{className:"w-3 h-3 bg-gray-400 dark:bg-gray-500 rounded-full animate-bounce",style:{animationDelay:"0.2s"}})]}),p.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:i("agentChat.loadingMessages")})]}):p.jsx(EO,{messages:b,isLoadingMessages:ke,isInitializingSession:X,isAiTyping:y,isStopping:W,messagesContainerRef:o,messagesEndRef:l,isUserScrolling:rd,newMessagesCount:nd,onScrollToBottom:id,onAskUserQuestionSubmit:i1}),p.jsx("div",{ref:l})]}),rd&&nd>0&&p.jsxs("button",{onClick:()=>{id(),Qw(!1),Kw(0)},className:"absolute bottom-4 left-1/2 transform -translate-x-1/2 bg-blue-500 hover:bg-blue-600 text-white rounded-full px-4 py-2 shadow-lg flex items-center space-x-2 transition-all duration-200 z-10",children:[p.jsx("span",{className:"text-sm font-medium",children:i("agentChat.scrollToLatest")}),p.jsx(pi,{className:"w-4 h-4"})]})]}),p.jsx(jO,{inputMessage:d,selectedImages:ot,isAiTyping:y,isStopping:W,isMobile:a,showToolSelector:oe,selectedRegularTools:We,selectedMcpTools:lt,mcpToolsEnabled:Qe,showCommandSelector:Qs,showFileBrowser:qr,commandSearch:kt,selectedCommand:$i,selectedCommandIndex:fn,atSymbolPosition:Zs,commandWarning:Wn||"",permissionMode:xt,selectedModel:Vr,selectedClaudeVersion:Gr||"",showPermissionDropdown:sr,showModelDropdown:Yr,showVersionDropdown:Di,showMobileSettings:$,isCompactMode:s,isVersionLocked:ta,isDragOver:It,previewImage:ze,showConfirmDialog:R,confirmMessage:L||"",showMcpStatusModal:F,availableModels:pl,claudeVersionsData:ra,agent:e,projectPath:t,mcpStatus:v,textareaRef:c,fileInputRef:u,onSend:sa,handleKeyDown:s1,handleImageSelect:gt,handleImageRemove:G,handleImagePreview:J,handlePaste:me,handleDragOver:_e,handleDragLeave:Ie,handleDrop:rt,handleStopGeneration:n1,onSetInputMessage:f,onSetShowToolSelector:ct,onSetSelectedRegularTools:na,onSetSelectedMcpTools:ia,onSetMcpToolsEnabled:Gw,onSetPermissionMode:Yw,onSetSelectedModel:he,onSetSelectedClaudeVersion:z,onSetShowPermissionDropdown:Zh,onSetShowModelDropdown:Jh,onSetShowVersionDropdown:ed,onSetShowMobileSettings:te,onSetPreviewImage:qe,onSetShowConfirmDialog:j,onSetShowMcpStatusModal:A,onCommandSelect:Gn,onSetShowCommandSelector:zt,onSetSelectedCommandIndex:Un,onSetShowFileBrowser:gr,onSetAtSymbolPosition:ji,onSetCommandWarning:Vn,onSetCommandSearch:ea,handleConfirmDialog:Z,handleCancelDialog:re,isSendDisabled:()=>ml()||!!S,envVars:td,onSetEnvVars:Xw})]})},ng=({isPanelVisible:e,onToggle:t,position:r,className:n=""})=>{const a=(r==="left"?e?"left":"right":e?"right":"left")==="left"?hg:Ps,o=()=>{const l="fixed top-1/2 transform -translate-y-1/2 z-20";return r==="left"?`${l} left-2`:`${l} right-2`};return p.jsx("button",{onClick:t,className:`
423
423
  ${o()}