agentstudio 0.1.20 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts.map +1 -1
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/public/assets/{AgentsPage-CKTz2ND6.js → AgentsPage-Nvg2xu6K.js} +2 -2
- package/public/assets/{Button-Dg6ni5Yl.js → Button-Co56C389.js} +1 -1
- package/public/assets/{ChatPage-DkO3kzY2.js → ChatPage-D6sol0ad.js} +5 -5
- package/public/assets/{CommandForm-CIfw9mVj.js → CommandForm-Bk7F_HU8.js} +1 -1
- package/public/assets/{CommandsPage-BgN0E41K.js → CommandsPage-DZHyOdKd.js} +1 -1
- package/public/assets/{DashboardPage-Duu6pBON.js → DashboardPage-29qC7Ev1.js} +2 -2
- package/public/assets/{FileBrowser-Bnm7ZyGT.js → FileBrowser-BYweUPH4.js} +4 -4
- package/public/assets/FileExplorer-DNYj6Tsx.js +1 -0
- package/public/assets/{GeneralSettingsPage-BJTiwSqP.js → GeneralSettingsPage-D9Xa7Nd8.js} +1 -1
- package/public/assets/LandingPage-CjnT-cvO.js +1 -0
- package/public/assets/{LoginPage-DCI_RABC.js → LoginPage-DcaGNCXH.js} +3 -3
- package/public/assets/McpAdminSettingsPage-DgR3E2Bd.js +7 -0
- package/public/assets/{McpPage-Dj4bE6a2.js → McpPage-CtWf1CoL.js} +1 -1
- package/public/assets/{MemorySettingsPage-v7kI6DEB.js → MemorySettingsPage-JTry4Ccp.js} +1 -1
- package/public/assets/PluginsPage-D-BHjQ3P.js +1 -0
- package/public/assets/{ProjectSelector-DKkhmVGz.js → ProjectSelector-DSXOjMQC.js} +1 -1
- package/public/assets/{ProjectsPage-6nGz1v6U.js → ProjectsPage-lLUk4-Xa.js} +5 -5
- package/public/assets/ScheduledTasksPage-5hPbd9Vs.js +1 -0
- package/public/assets/{SettingsLayout-stXQCl6u.js → SettingsLayout-DGJspXLp.js} +1 -1
- package/public/assets/SkillsPage-DBw0m7D2.js +18 -0
- package/public/assets/{SubagentForm-iYJ0l9vh.js → SubagentForm-BdUK1U4y.js} +1 -1
- package/public/assets/{SubagentsPage-ksh-LWAC.js → SubagentsPage-Dnq70IFd.js} +1 -1
- package/public/assets/{ToastTestPage-pxyInZeD.js → ToastTestPage-BfJQRFIm.js} +1 -1
- package/public/assets/{ToolsList-CWZLcBx2.js → ToolsList-Dl5F2fWk.js} +1 -1
- package/public/assets/UnifiedToolSelector-CNbPsiuq.js +1 -0
- package/public/assets/{VersionSettingsPage-ClLBqAIC.js → VersionSettingsPage-BfoCcham.js} +1 -1
- package/public/assets/{_basePickBy-Ce1_TuBk.js → _basePickBy-7C_e0Xv1.js} +1 -1
- package/public/assets/{_baseUniq-Dt6C4BgZ.js → _baseUniq-eGJNLBzx.js} +1 -1
- package/public/assets/{agents-C4aCwcCz.js → agents-ChrA1R0y.js} +1 -1
- package/public/assets/arc-CuA752eE.js +1 -0
- package/public/assets/{architectureDiagram-VXUJARFQ-rnurJGX4.js → architectureDiagram-VXUJARFQ-BnPYh1OW.js} +1 -1
- package/public/assets/{blockDiagram-VD42YOAC-CM33sjhb.js → blockDiagram-VD42YOAC-72nsMt_i.js} +1 -1
- package/public/assets/{c4Diagram-YG6GDRKO-B1tJjciL.js → c4Diagram-YG6GDRKO-BNJSAXcg.js} +1 -1
- package/public/assets/channel-CIunGC5m.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-vbzk_8Ta.js → chunk-4BX2VUAB-RPxkCWhH.js} +1 -1
- package/public/assets/{chunk-55IACEB6-CNXjTgeK.js → chunk-55IACEB6-3ePDt0kp.js} +1 -1
- package/public/assets/{chunk-B4BG7PRW-CykotMKj.js → chunk-B4BG7PRW-CBg_BBfl.js} +1 -1
- package/public/assets/{chunk-DI55MBZ5-DbZodDrP.js → chunk-DI55MBZ5-DIh69TUJ.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-u0h-4JXb.js → chunk-FMBD7UC4-BbjwhyTe.js} +1 -1
- package/public/assets/{chunk-QN33PNHL-B7VLbRpC.js → chunk-QN33PNHL-BpH-o_YR.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-DfcZEdwM.js → chunk-QZHKN3VN-DYB7rh5Q.js} +1 -1
- package/public/assets/{chunk-TZMSLE5B-BP4O9iGm.js → chunk-TZMSLE5B-DPCYEVb3.js} +1 -1
- package/public/assets/classDiagram-2ON5EDUG-aUQHFsTA.js +1 -0
- package/public/assets/classDiagram-v2-WZHVMYZB-aUQHFsTA.js +1 -0
- package/public/assets/clone-Ckf7tA1V.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-CSV8iDOr.js → cose-bilkent-S5V4N54A-CnpfmL-Y.js} +1 -1
- package/public/assets/{dagre-6UL2VRFP-S5vHkFwY.js → dagre-6UL2VRFP-DR9x77Xf.js} +1 -1
- package/public/assets/{diagram-PSM6KHXK-Bl4NbJsm.js → diagram-PSM6KHXK-SONPsQNx.js} +1 -1
- package/public/assets/{diagram-QEK2KX5R-D-6ipdkt.js → diagram-QEK2KX5R-BKYFSfC1.js} +1 -1
- package/public/assets/{diagram-S2PKOQOG-DBuN3kfb.js → diagram-S2PKOQOG-CkM0APZj.js} +1 -1
- package/public/assets/{erDiagram-Q2GNP2WA-DEhlyUw1.js → erDiagram-Q2GNP2WA-BX1DpOGx.js} +1 -1
- package/public/assets/{flowDiagram-NV44I4VS-PsSk5-Xf.js → flowDiagram-NV44I4VS-HAAlzNbq.js} +1 -1
- package/public/assets/{ganttDiagram-LVOFAZNH-PfD-vtKp.js → ganttDiagram-LVOFAZNH-BqzWexqa.js} +1 -1
- package/public/assets/{gitGraphDiagram-NY62KEGX-CUq51Mt1.js → gitGraphDiagram-NY62KEGX-CIPmSp43.js} +1 -1
- package/public/assets/{graph-Bc5M3bvZ.js → graph-m515btDj.js} +1 -1
- package/public/assets/{index-ImPzdvfG.js → index-Bn3v3S9-.js} +47 -47
- package/public/assets/index-DWieeYj4.css +1 -0
- package/public/assets/infoDiagram-F6ZHWCRC-Pn4yNWrF.js +2 -0
- package/public/assets/{journeyDiagram-XKPGCS4Q-CTyau8Sh.js → journeyDiagram-XKPGCS4Q-BfzTomS0.js} +1 -1
- package/public/assets/{kanban-definition-3W4ZIXB7-2R3dHQq1.js → kanban-definition-3W4ZIXB7-Cgju7b-L.js} +1 -1
- package/public/assets/{layout-BCktuL_6.js → layout-BKQfQSxJ.js} +1 -1
- package/public/assets/{linear-lHuinZOC.js → linear-DigtLz3B.js} +1 -1
- package/public/assets/{mindmap-definition-VGOIOE7T-Dl8qR3zk.js → mindmap-definition-VGOIOE7T-qopraVFy.js} +1 -1
- package/public/assets/{pieDiagram-ADFJNKIX-Bqcukh_c.js → pieDiagram-ADFJNKIX-BcoaAI-L.js} +2 -2
- package/public/assets/{quadrantDiagram-AYHSOK5B-C_uML1JV.js → quadrantDiagram-AYHSOK5B-D-DwcoSd.js} +1 -1
- package/public/assets/{requirementDiagram-UZGBJVZJ-QUbH9ShO.js → requirementDiagram-UZGBJVZJ-DbQCpx77.js} +1 -1
- package/public/assets/{sankeyDiagram-TZEHDZUN-CEomXpQ1.js → sankeyDiagram-TZEHDZUN-BVk8387S.js} +1 -1
- package/public/assets/{sequenceDiagram-WL72ISMW-DNsDMjTd.js → sequenceDiagram-WL72ISMW-BdzICjxO.js} +1 -1
- package/public/assets/{stateDiagram-FKZM4ZOC-BA_Narwp.js → stateDiagram-FKZM4ZOC-CYY-uUvJ.js} +1 -1
- package/public/assets/stateDiagram-v2-4FDKWEC3-Dh2Kvomq.js +1 -0
- package/public/assets/{tabManager-CkNKjP4G.js → tabManager-B2LQO_Ll.js} +1 -1
- package/public/assets/{table-CSWCaVuS.js → table-D0L2RL5i.js} +1 -1
- package/public/assets/{timeline-definition-IT6M3QCI-DeEgHBeI.js → timeline-definition-IT6M3QCI-BAvjPYvX.js} +1 -1
- package/public/assets/{tools-C7xmF_rB.js → tools-IcPNZlPj.js} +1 -1
- package/public/assets/{treemap-KMMF4GRG-5HQSTjk6.js → treemap-KMMF4GRG-DtkpVA56.js} +1 -1
- package/public/assets/{ui-components-BNdpaz32.js → ui-components-D1St49qC.js} +129 -119
- package/public/assets/{useAgents-C9aEFOWD.js → useAgents-BnDTkOG8.js} +1 -1
- package/public/assets/{useClaudeVersions-CcFqpR2o.js → useClaudeVersions-CD59tFWM.js} +1 -1
- package/public/assets/{useCommands-BadxYHf2.js → useCommands-mvMu3mMD.js} +1 -1
- package/public/assets/{useProjects-Dgk7ldPq.js → useProjects-YXOjaOwL.js} +1 -1
- package/public/assets/{xychartDiagram-PRI3JC2R-C7BNHmgo.js → xychartDiagram-PRI3JC2R-ByBTDWE2.js} +1 -1
- package/public/index.html +5 -5
- package/routes/mcp.d.ts +23 -0
- package/routes/mcp.d.ts.map +1 -1
- package/routes/mcp.js +21 -18
- package/routes/mcp.js.map +1 -1
- package/routes/mcpAdmin.d.ts +16 -0
- package/routes/mcpAdmin.d.ts.map +1 -0
- package/routes/mcpAdmin.js +308 -0
- package/routes/mcpAdmin.js.map +1 -0
- package/routes/mcpAdminManagement.d.ts +17 -0
- package/routes/mcpAdminManagement.d.ts.map +1 -0
- package/routes/mcpAdminManagement.js +345 -0
- package/routes/mcpAdminManagement.js.map +1 -0
- package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts +5 -0
- package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts.map +1 -0
- package/services/mcpAdmin/__tests__/adminApiKeyService.test.js +289 -0
- package/services/mcpAdmin/__tests__/adminApiKeyService.test.js.map +1 -0
- package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts +5 -0
- package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts.map +1 -0
- package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js +345 -0
- package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js.map +1 -0
- package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts +5 -0
- package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts.map +1 -0
- package/services/mcpAdmin/__tests__/mcpAdminServer.test.js +453 -0
- package/services/mcpAdmin/__tests__/mcpAdminServer.test.js.map +1 -0
- package/services/mcpAdmin/__tests__/tools.test.d.ts +5 -0
- package/services/mcpAdmin/__tests__/tools.test.d.ts.map +1 -0
- package/services/mcpAdmin/__tests__/tools.test.js +371 -0
- package/services/mcpAdmin/__tests__/tools.test.js.map +1 -0
- package/services/mcpAdmin/adminApiKeyService.d.ts +61 -0
- package/services/mcpAdmin/adminApiKeyService.d.ts.map +1 -0
- package/services/mcpAdmin/adminApiKeyService.js +270 -0
- package/services/mcpAdmin/adminApiKeyService.js.map +1 -0
- package/services/mcpAdmin/index.d.ts +10 -0
- package/services/mcpAdmin/index.d.ts.map +1 -0
- package/services/mcpAdmin/index.js +43 -0
- package/services/mcpAdmin/index.js.map +1 -0
- package/services/mcpAdmin/mcpAdminServer.d.ts +76 -0
- package/services/mcpAdmin/mcpAdminServer.d.ts.map +1 -0
- package/services/mcpAdmin/mcpAdminServer.js +243 -0
- package/services/mcpAdmin/mcpAdminServer.js.map +1 -0
- package/services/mcpAdmin/tools/agentTools.d.ts +27 -0
- package/services/mcpAdmin/tools/agentTools.d.ts.map +1 -0
- package/services/mcpAdmin/tools/agentTools.js +359 -0
- package/services/mcpAdmin/tools/agentTools.js.map +1 -0
- package/services/mcpAdmin/tools/index.d.ts +15 -0
- package/services/mcpAdmin/tools/index.d.ts.map +1 -0
- package/services/mcpAdmin/tools/index.js +30 -0
- package/services/mcpAdmin/tools/index.js.map +1 -0
- package/services/mcpAdmin/tools/mcpServerTools.d.ts +27 -0
- package/services/mcpAdmin/tools/mcpServerTools.d.ts.map +1 -0
- package/services/mcpAdmin/tools/mcpServerTools.js +334 -0
- package/services/mcpAdmin/tools/mcpServerTools.js.map +1 -0
- package/services/mcpAdmin/tools/projectTools.d.ts +27 -0
- package/services/mcpAdmin/tools/projectTools.d.ts.map +1 -0
- package/services/mcpAdmin/tools/projectTools.js +353 -0
- package/services/mcpAdmin/tools/projectTools.js.map +1 -0
- package/services/mcpAdmin/tools/systemTools.d.ts +23 -0
- package/services/mcpAdmin/tools/systemTools.d.ts.map +1 -0
- package/services/mcpAdmin/tools/systemTools.js +241 -0
- package/services/mcpAdmin/tools/systemTools.js.map +1 -0
- package/services/mcpAdmin/types.d.ts +124 -0
- package/services/mcpAdmin/types.d.ts.map +1 -0
- package/services/mcpAdmin/types.js +18 -0
- package/services/mcpAdmin/types.js.map +1 -0
- package/public/assets/FileExplorer-Dy8ZFDtK.js +0 -1
- package/public/assets/LandingPage-CCqtSDce.js +0 -1
- package/public/assets/PluginsPage-CQ08px0h.js +0 -1
- package/public/assets/ScheduledTasksPage-Dv8qPeLY.js +0 -1
- package/public/assets/SkillsPage-DlQPlwG5.js +0 -18
- package/public/assets/UnifiedToolSelector-A2UIt1Xn.js +0 -1
- package/public/assets/arc-c63c3GDw.js +0 -1
- package/public/assets/channel-6fK1csbi.js +0 -1
- package/public/assets/classDiagram-2ON5EDUG-PrDkNsdA.js +0 -1
- package/public/assets/classDiagram-v2-WZHVMYZB-PrDkNsdA.js +0 -1
- package/public/assets/clone-CXX9AxT7.js +0 -1
- package/public/assets/index-TEVaBQiv.css +0 -1
- package/public/assets/infoDiagram-F6ZHWCRC-BTR1hJCm.js +0 -2
- package/public/assets/stateDiagram-v2-4FDKWEC3-Cy5am68v.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-
|
|
2
|
-
import{j as p}from"./data-structures-C0h9Oap1.js";import{r as O,g as _u,W as mr}from"./monaco-editor-DHKm5-VF.js";import{o as eg,A as ec,a as tc,b as Tu,h as nw,l as iw,d as sw,p as aw,S as ow}from"./agents-C4aCwcCz.js";import{g as lw,h as cw,i as uw,j as hw,k as dw}from"./useAgents-C9aEFOWD.js";import{t as ws,u as fw}from"./tabManager-CkNKjP4G.js";import{u as we,B as Qe,T as Ve,b as pw,K as gw,c as mw}from"./tools-C7xmF_rB.js";import{m as Zr,g as nd,aa as xw,o as yw,_ as tg,t as rc,aO as rg,aP as ng,X as An,k as ui,l as Rs,aj as wa,L as va,C as Jr,n as Ca,j as nc,Z as Sa,aQ as bw,a2 as pl,aR as kw,aS as na,aT as ww,E as vw,a8 as ig,ao as Cw,al as Sw,a1 as sg,aU as id,d as sd,aV as Eu,aE as _w,e as ag,aW as ad,S as od,aX as Tw,a9 as og,aY as Ew,v as Aw,p as lg,Q as Mw,ak as Nw,aZ as vs,R as cg,i as ug,q as ld,a_ as Lw,a$ as cd,I as Iw}from"./ui-components-BNdpaz32.js";import{s as $w,h as hg,f as jw,u as dg,i as Bw,j as Dw}from"./index-ImPzdvfG.js";import{u as ic,f as sc}from"./useCommands-BadxYHf2.js";import{u as Pw}from"./useClaudeVersions-CcFqpR2o.js";import{e as ac,E as oc,F as ud}from"./FileExplorer-Dy8ZFDtK.js";import{c as Re,h as fg}from"./syntax-highlighting-CnREyncB.js";import{U as Au}from"./UnifiedToolSelector-A2UIt1Xn.js";import{F as Fw}from"./FileBrowser-Bnm7ZyGT.js";import{P as Rw}from"./ProjectSelector-DKkhmVGz.js";const Xe=eg((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})})),Ow=({agentId:e,sessionId:t,projectPath:r,enabled:n=!0,interval:i=3e4,shouldCheckExistence:s=!1})=>{const a=O.useRef(null),o=O.useRef(0),l=O.useRef(!0),c=O.useRef(!1),u=O.useCallback(async()=>{if(!e||!t)return!1;try{const m=`${ec}/sessions/${e}/${t}/check`,b=await tc(m);if(b.ok){const y=await b.json();return console.log(`🔍 Session existence check: ${t} - ${y.exists?"exists":"not found"}`),y.exists}return!1}catch(m){return console.error("❌ Error checking session existence:",m),!1}},[e,t]),h=O.useCallback(async()=>{if(!(!e||!t||!n))try{const m=`${ec}/sessions/${e}/${t}/heartbeat`,b=await tc(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:r,timestamp:Date.now()})});if(b.ok){const y=await b.json();o.current=y.timestamp,console.log(`💓 Session heartbeat sent successfully: ${t}`),ws.updateCurrentTabActivity(e,t)}else console.warn(`⚠️ Failed to send heartbeat for session ${t}:`,b.status)}catch(m){console.error("💔 Error sending session heartbeat:",m)}},[e,t,r,n]),f=O.useCallback(()=>{l.current=!document.hidden,l.current&&n&&t&&h()},[h,n,t]),d=O.useCallback(async()=>{if(!(!n||!t||a.current)){if(s&&!c.current){const m=await u();if(c.current=!0,!m){console.log(`⏸️ Session ${t} not found in SessionManager, heartbeat not started`);return}}console.log(`💓 Starting heartbeat for session: ${t}`),h(),a.current=setInterval(()=>{h()},i)}},[n,t,h,i,s,u]),g=O.useCallback(()=>{a.current&&(console.log(`💔 Stopping heartbeat for session: ${t}`),clearInterval(a.current),a.current=null)},[t]);return O.useEffect(()=>(c.current=!1,t&&n?d():g(),()=>{g()}),[t,n,d,g]),O.useEffect(()=>(document.addEventListener("visibilitychange",f),()=>{document.removeEventListener("visibilitychange",f)}),[f]),O.useEffect(()=>()=>{g()},[g]),{sendHeartbeat:h,startHeartbeat:d,stopHeartbeat:g,checkSessionExists:u,lastHeartbeat:o.current}},zw=({agentId:e,sessionId:t,projectPath:r,enabled:n=!0,interval:i=3e4,isNewSession:s=!1,hasSuccessfulResponse:a=!1})=>{const o=O.useRef(null),l=O.useRef(!1),c=!t||!n?!1:s?a:!0,h=Ow({agentId:e,sessionId:t,projectPath:r,enabled:c,interval:i,shouldCheckExistence:!s&&!!t});return O.useEffect(()=>{o.current!==t&&(l.current=!1,o.current=t)},[t]),O.useEffect(()=>{c&&t&&!l.current&&(l.current=!0,console.log(`🚀 Heartbeat enabled for session: ${t} (new: ${s}, hasResponse: ${a})`))},[c,t,s,a]),{...h,isHeartbeatActive:c&&l.current}},Hw=()=>{const[e,t]=O.useState(!1);return O.useEffect(()=>{const r=()=>{t(window.innerWidth<640)};return r(),window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),{isCompactMode:e}},Ww=({isOpen:e,onToggle:t,sessions:r,currentSessionId:n,onSwitchSession:i,isLoading:s=!1,searchTerm:a,onSearchChange:o})=>{const{t:l}=we("components"),c=O.useRef(null),u=O.useRef(null);O.useEffect(()=>{console.log("🎯 [DROPDOWN DEBUG] SessionsDropdown sessions updated:",{sessionCount:r.length,currentSessionId:n,searchTerm:a,sessions:r.map((f,d)=>({index:d+1,id:f.id,title:f.title,lastUpdated:f.lastUpdated,messageCount:f.messageCount,isCurrent:f.id===n}))})},[r,n,a]),O.useEffect(()=>{const f=d=>{c.current&&!c.current.contains(d.target)&&t()};return e&&document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f)}},[e,t]),O.useEffect(()=>{e&&u.current&&setTimeout(()=>u.current?.focus(),100)},[e]);const h=r;return e?p.jsxs("div",{ref:c,className:"absolute top-full right-0 mt-1 w-80 bg-white rounded-lg shadow-lg border border-gray-200 z-50",children:[p.jsx("div",{className:"flex items-center justify-between p-3 border-b border-gray-100",children:p.jsxs("div",{className:"flex items-center space-x-2",children:[p.jsx(Zr,{className:"w-4 h-4 text-gray-600"}),p.jsx("span",{className:"text-sm font-medium text-gray-900",children:l("sessionDropdown.sessionHistory")})]})}),p.jsx("div",{className:"p-3 border-b border-gray-100",children:p.jsxs("div",{className:"relative",children:[p.jsx(nd,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4"}),p.jsx("input",{ref:u,type:"text",value:a,onChange:f=>o(f.target.value),placeholder:l("sessionDropdown.searchPlaceholder"),className:"w-full pl-9 pr-3 py-2 text-sm text-gray-900 border border-gray-200 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent placeholder-gray-500"})]})}),p.jsx("div",{className:"max-h-80 overflow-y-auto",children:s?p.jsx("div",{className:"flex items-center justify-center py-8",children:p.jsx("div",{className:"animate-spin rounded-full h-5 w-5 border-b-2 border-blue-600"})}):h.length>0?p.jsx("div",{className:"py-2",children:h.map((f,d)=>p.jsxs("div",{onClick:()=>{console.log(`🖱️ [DROPDOWN DEBUG] Clicking session ${d+1}:`,{id:f.id,title:f.title,isCurrent:f.id===n}),i(f.id)},className:`mx-2 px-3 py-2 rounded cursor-pointer hover:bg-gray-50 transition-colors ${n===f.id?"bg-blue-50 border border-blue-200":"border border-transparent"}`,children:[p.jsxs("div",{className:"text-sm font-medium text-gray-900 truncate",title:`ID: ${f.id}`,children:[d+1,". ",f.title]}),p.jsxs("div",{className:"text-xs text-gray-500 mt-0.5",children:[l("sessionDropdown.messageCount",{count:f.messageCount})," • ",new Date(f.lastUpdated).toLocaleString("zh-CN",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})]})]},f.id))}):p.jsx("div",{className:"text-center py-8",children:a?p.jsxs("div",{children:[p.jsx(nd,{className:"w-8 h-8 text-gray-300 mx-auto mb-2"}),p.jsx("p",{className:"text-sm text-gray-500",children:l("sessionDropdown.noMatchingSessions")})]}):p.jsxs("div",{children:[p.jsx(Zr,{className:"w-8 h-8 text-gray-300 mx-auto mb-2"}),p.jsx("p",{className:"text-sm text-gray-500",children:l("sessionDropdown.noSessionHistory")}),p.jsx("p",{className:"text-xs text-gray-400 mt-1",children:l("sessionDropdown.sessionWillAppear")})]})})})]}):null};function qw(e,t){return t?e.replace(/@([\w.-]+(?:\/[\w.-]+)*(?:\.\w+)?)/g,(r,n)=>n.startsWith("/")?n:t+"/"+n):e}function Uw(e,t,r){let n=e.content;return t&&(n=n.replace(/\$ARGUMENTS/g,t)),n=qw(n,r),`<command-message>${t?`${e.description} (参数: ${t})`:e.description}</command-message><command-name>${n}</command-name>`}function us(e){return e.startsWith("/")}function Vw(e){return e.startsWith("/")?e.slice(1):""}const Gw=({textareaRef:e,inputMessage:t,setInputMessage:r})=>{const[n,i]=O.useState([]),[s,a]=O.useState(null),[o,l]=O.useState(!1),c=O.useCallback(C=>{if(!e.current)return;const S=e.current,w=S.selectionStart||0,T=S.selectionEnd||0,$=t,M=$.substring(0,w)+C+$.substring(T);r(M),setTimeout(()=>{S.selectionStart=S.selectionEnd=w+C.length,S.focus()},0)},[t,r,e]),u=O.useCallback(C=>{const S=Date.now().toString()+Math.random().toString(36).substr(2,9),w=new FileReader;w.onload=T=>{T.target?.result&&i($=>{const M=[...$,{id:S,file:C,preview:T.target.result}],N=`[image${M.length}]`;return c(N),M})},w.readAsDataURL(C)},[c]),h=O.useCallback(C=>{const S=C.target.files;if(!S)return;Array.from(S).filter(T=>T.type.startsWith("image/")&&["image/jpeg","image/png","image/gif","image/webp"].includes(T.type)).forEach(u),C.target&&(C.target.value="")},[u]),f=O.useCallback(C=>{i(S=>S.filter(w=>w.id!==C))},[]),d=O.useCallback(C=>{a(C)},[]),g=O.useCallback(C=>{const S=C.clipboardData?.items;if(!S)return;let w=!1;for(let T=0;T<S.length;T++){const $=S[T];if($.type.startsWith("image/")){w=!0;const M=$.getAsFile();M&&u(M)}}w&&C.preventDefault()},[u]),m=O.useCallback(C=>{C.preventDefault(),l(!0)},[]),b=O.useCallback(C=>{C.preventDefault(),l(!1)},[]),y=O.useCallback(C=>{C.preventDefault(),l(!1);const S=C.dataTransfer?.files;if(!S)return;Array.from(S).filter(T=>T.type.startsWith("image/")&&["image/jpeg","image/png","image/gif","image/webp"].includes(T.type)).forEach(u)},[u]),k=O.useCallback(()=>{i([])},[]),v=O.useCallback(()=>n.map(C=>({id:C.id,data:C.preview.split(",")[1],mediaType:C.file.type,name:C.file.name})),[n]);return{selectedImages:n,previewImage:s,isDragOver:o,handleImageSelect:h,handleImageRemove:f,handleImagePreview:d,handlePaste:g,handleDragOver:m,handleDragLeave:b,handleDrop:y,clearImages:k,getImagesForBackend:v,setPreviewImage:a}},Yw=({messagesContainerRef:e,messagesEndRef:t,messages:r,isAiTyping:n})=>{const[i,s]=O.useState(!1),[a,o]=O.useState(0),l=O.useCallback((h=100)=>{if(!e.current)return!1;const{scrollTop:f,scrollHeight:d,clientHeight:g}=e.current;return d-f-g<h},[e]),c=O.useCallback((h="smooth")=>{t.current?.scrollIntoView({behavior:h})},[t]),u=O.useCallback(()=>{const h=l();s(!h),h&&o(0)},[l]);return O.useEffect(()=>{const h=e.current;if(h)return h.addEventListener("scroll",u),()=>h.removeEventListener("scroll",u)},[u,e]),O.useEffect(()=>{i?o(h=>h+1):c()},[r,n,i,c]),{isUserScrolling:i,newMessagesCount:a,scrollToBottom:c,setNewMessagesCount:o,setIsUserScrolling:s}},Xw=({projectPath:e,textareaRef:t})=>{const{t:r}=we("components"),[n,i]=O.useState(!1),[s,a]=O.useState(""),[o,l]=O.useState(null),[c,u]=O.useState(0),[h,f]=O.useState(null),[d,g]=O.useState(!1),[m,b]=O.useState(null),y=[{id:"init",name:"init",description:r("systemCommands.init.description"),content:"/init",scope:"system",isSystem:!0},{id:"clear",name:"clear",description:r("systemCommands.clear.description"),content:"/clear",scope:"system",isSystem:!0},{id:"compact",name:"compact",description:r("systemCommands.compact.description"),content:"/compact",scope:"system",isSystem:!0},{id:"agents",name:"agents",description:r("systemCommands.agents.description"),content:"/agents",scope:"system",isSystem:!0},{id:"settings",name:"settings",description:r("systemCommands.settings.description"),content:"/settings",scope:"system",isSystem:!0},{id:"help",name:"help",description:r("systemCommands.help.description"),content:"/help",scope:"system",isSystem:!0}],{data:k=[],error:v}=ic({scope:"user",search:s}),{data:C=[],error:S}=sc({projectId:e||"",search:s}),{data:w=[]}=ic({scope:"user"}),{data:T=[]}=sc({projectId:e||""}),$=O.useCallback(B=>{const H=y.find(j=>j.name===B),Q=T.find(j=>j.name===B),_=w.find(j=>j.name===B);return!!(H||Q||_)},[y,T,w]),M=O.useCallback(()=>{const B=y.map(_=>_.content),H=T.map(_=>`/${_.name}`),Q=w.map(_=>`/${_.name}`);return[...B,...H,...Q].join(", ")},[y,T,w]),E=v||S,N=O.useMemo(()=>[...y.filter(H=>H.name.toLowerCase().includes(s.toLowerCase())||H.description.toLowerCase().includes(s.toLowerCase())),...C,...k],[k,C,s,y]);O.useEffect(()=>{u(B=>N.length>0&&B>=N.length?0:B)},[N.length]);const D=O.useCallback(B=>{if(h&&f(null),B.length>0&&B[B.length-1]==="@"){const H=B.substring(0,B.length-1);if(H.length===0||/\s$/.test(H)){b(B.length-1),g(!0),t.current?.blur();return}}},[h,t]),R=O.useCallback(B=>(l(B),i(!1),`/${B.name}`),[]),I=O.useCallback(()=>{i(!1)},[]),F=O.useCallback((B,H)=>{if(!t.current||m===null)return H;let Q=B;e&&B.startsWith(e)&&(Q=B.slice(e.length),Q.startsWith("/")&&(Q=Q.slice(1)));const _=H.substring(0,m),j=H.substring(m+1),te=_+"@"+Q+" "+j;return g(!1),b(null),setTimeout(()=>{if(t.current){const A=m+1+Q.length+1;t.current.selectionStart=t.current.selectionEnd=A,t.current.focus()}},0),te},[m,e,t]),L=O.useCallback(()=>{g(!1),b(null),setTimeout(()=>{t.current?.focus()},0)},[t]);return{showCommandSelector:n,commandSearch:s,selectedCommand:o,selectedCommandIndex:c,commandWarning:h,showFileBrowser:d,atSymbolPosition:m,allCommands:N,SYSTEM_COMMANDS:y,userCommands:w,projectCommands:T,hasCommandsLoadError:E,userCommandsError:v,projectCommandsError:S,setSelectedCommand:l,setSelectedCommandIndex:u,setCommandWarning:f,setShowCommandSelector:i,setShowFileBrowser:g,setAtSymbolPosition:b,setCommandSearch:a,handleInputChange:D,handleCommandSelect:R,handleCommandSelectorClose:I,handleFileSelect:F,handleFileBrowserClose:L,isCommandDefined:$,getAllAvailableCommands:M}},Qw=({agent:e})=>{const[t,r]=O.useState(!1),[n,i]=O.useState([]),[s,a]=O.useState([]),[o,l]=O.useState(!1),[c,u]=O.useState("bypassPermissions"),[h,f]=O.useState("sonnet"),[d,g]=O.useState(!1),[m,b]=O.useState(!1),[y,k]=O.useState(void 0),[v,C]=O.useState(!1),[S,w]=O.useState(!1),[T,$]=O.useState({});return O.useEffect(()=>{if(e?.allowedTools?.length>0){const M=e.allowedTools.filter(D=>D.enabled),E=[],N=[];M.forEach(D=>{if(D.name.includes(".")&&!D.name.startsWith("mcp__")){const[R,I]=D.name.split("."),F=`mcp__${R}__${I}`;N.push(F)}else D.name.startsWith("mcp__")?N.push(D.name):E.push(D.name)}),i(E),a(N),l(N.length>0)}},[e?.allowedTools]),{showToolSelector:t,selectedRegularTools:n,selectedMcpTools:s,mcpToolsEnabled:o,permissionMode:c,selectedModel:h,showPermissionDropdown:d,showModelDropdown:m,selectedClaudeVersion:y,showVersionDropdown:v,isVersionLocked:S,setShowToolSelector:r,setSelectedRegularTools:i,setSelectedMcpTools:a,setMcpToolsEnabled:l,setPermissionMode:u,setSelectedModel:f,setShowPermissionDropdown:g,setShowModelDropdown:b,setSelectedClaudeVersion:k,setShowVersionDropdown:C,setIsVersionLocked:w,envVars:T,setEnvVars:$}},Kw=({initialModel:e="sonnet",initialVersion:t})=>{const{data:r}=Pw(),[n,i]=O.useState(e),[s,a]=O.useState(t),[o,l]=O.useState(!1),c=O.useMemo(()=>{if(!r?.versions)return[];if(s){const m=r.versions.find(y=>y.id===s),b=m?.models||[];return console.log(`📦 availableModels computed: selectedClaudeVersion=${s}, found version=${m?.name}, models=`,b.map(y=>y.id)),b}const d=r.versions.find(m=>m.id===r.defaultVersionId)||r.versions[0],g=d?.models||[];return console.log(`📦 availableModels computed (using default): defaultVersion=${d?.name}, models=`,g.map(m=>m.id)),g},[r,s]);return O.useEffect(()=>{c.length>0&&(c.some(g=>g.id===n)||(console.log(`🔄 Model validation: selectedModel=${n} is not in availableModels:`,c.map(g=>g.id),`selectedClaudeVersion=${s}, resetting to ${c[0].id}`),i(c[0].id)))},[c,n,s]),{claudeVersionsData:r,availableModels:c,selectedModel:n,selectedClaudeVersion:s,isVersionLocked:o,setSelectedModel:i,setSelectedClaudeVersion:a,setIsVersionLocked:l,handleVersionChange:d=>{a(d);const g=r?.versions.find(m=>m.id===d);g&&g.models&&g.models.length>0&&i(g.models[0].id)},handleModelChange:d=>{i(d)},resetToDefaults:()=>{a(void 0),i(e),l(!1)}}},Zw={activeTasks:new Map},lc=eg((e,t)=>({...Zw,registerTaskTool:(r,n)=>{console.log("📋 [SubAgentStore] Registering Task tool:",r,"sessionId:",n),e(i=>{const s=new Map(i.activeTasks);return s.has(r)||s.set(r,{parentToolUseId:r,sessionId:n,messageFlow:[],startedAt:Date.now(),lastUpdatedAt:Date.now()}),{activeTasks:s}})},activateSubAgent:(r,n)=>{if(t().activeTasks.has(r)){console.log("📋 [SubAgentStore] SubAgent already active for:",r);return}console.log("📋 [SubAgentStore] Activating SubAgent for parentToolUseId:",r),e(s=>{const a=new Map(s.activeTasks);return a.set(r,{parentToolUseId:r,sessionId:n,messageFlow:[],startedAt:Date.now(),lastUpdatedAt:Date.now()}),{activeTasks:a}})},addSubAgentMessagePart:(r,n)=>{e(i=>{if(!i.activeTasks.get(r)){console.log("📋 [SubAgentStore] Creating new task for parentToolUseId:",r);const u=new Map(i.activeTasks);return u.set(r,{parentToolUseId:r,sessionId:"",messageFlow:[{id:`msg_${r}_${Date.now()}`,role:"assistant",timestamp:new Date().toISOString(),messageParts:[n]}],startedAt:Date.now(),lastUpdatedAt:Date.now()}),{activeTasks:u}}const a=new Map(i.activeTasks),o=a.get(r),l=o.messageFlow.findIndex(u=>u.messageParts.some(h=>h.id===n.id));let c;if(l>=0)c=o.messageFlow.map((u,h)=>h===l?{...u,messageParts:u.messageParts.map(f=>f.id===n.id?n:f)}:u);else{const u=o.messageFlow[o.messageFlow.length-1];u&&u.role==="assistant"?c=[...o.messageFlow.slice(0,-1),{...u,messageParts:[...u.messageParts,n]}]:c=[...o.messageFlow,{id:`msg_${r}_${Date.now()}`,role:"assistant",timestamp:new Date().toISOString(),messageParts:[n]}]}return a.set(r,{...o,messageFlow:c,lastUpdatedAt:Date.now()}),console.log("📋 [SubAgentStore] Added message part to",r,"type:",n.type,"total parts:",c.reduce((u,h)=>u+h.messageParts.length,0)),{activeTasks:a}})},getSubAgentMessageFlow:r=>t().activeTasks.get(r)?.messageFlow||[],clearSubAgentTask:r=>{console.log("📋 [SubAgentStore] Clearing SubAgent task:",r),e(n=>{const i=new Map(n.activeTasks);return i.delete(r),{activeTasks:i}})},reset:()=>{console.log("📋 [SubAgentStore] Resetting state"),e({activeTasks:new Map})}})),Jw=({agentId:e,currentSessionId:t,projectPath:r,isCompactCommand:n=!1,abortControllerRef:i,onSessionChange:s,setIsInitializingSession:a,setCurrentSessionId:o,setIsNewSession:l,setAiTyping:c,setHasSuccessfulResponse:u})=>{const{t:h}=we("components"),f=Tu(),{addMessage:d,addTextPartToMessage:g,addThinkingPartToMessage:m,updateTextPartInMessage:b,updateThinkingPartInMessage:y,addToolPartToMessage:k,updateToolPartInMessage:v,updateMcpStatus:C,setPendingUserQuestion:S,setA2AStreamStart:w,setA2AStreamEnd:T,addA2AStreamEvent:$}=Xe(),M=O.useRef(null),E=O.useRef(new Map),N=O.useRef({activeBlocks:new Map,currentMessageId:null,isStreaming:!1,wasStreamProcessed:!1,pendingUpdate:null,rafId:null}),D=O.useCallback((_,j,te)=>{const A=N.current;A.pendingUpdate={blockId:_,content:j,type:te},A.rafId===null&&(A.rafId=requestAnimationFrame(()=>{const P=A.pendingUpdate,Y=M.current;if(!P||!Y){A.rafId=null;return}const U=A.activeBlocks.get(P.blockId);if(!U||!U.partId){console.warn("🌊 [STREAMING] No partId found for block:",P.blockId),A.rafId=null;return}P.type==="text"?b(Y,U.partId,P.content):P.type==="thinking"&&y(Y,U.partId,P.content),A.pendingUpdate=null,A.rafId=null}))},[b,y]),R=O.useCallback((_,j)=>`${_}-${Date.now()}-${j}`,[]),{registerTaskTool:I,activateSubAgent:F,addSubAgentMessagePart:L}=lc.getState(),B=O.useCallback(_=>{try{const j=_;j.type==="system"&&j.subtype==="init"&&console.log("📋 [INIT] Received system init message, not intercepting");const te=j.isSidechain===!0,A=j.parentToolUseId;if(te&&A){console.log("🎯 [SIDECHAIN] Intercepted sub-agent message, parentToolUseId:",A,"type:",j.type);const P=A,Y=j.sessionId||j.session_id;if(Y&&F(P,Y),j.type==="stream_event"&&j.event){const U=j.event;if(U.type==="content_block_start"&&U.content_block){const q=U.index,V=U.content_block;if(V.type==="text"){const K=`part_${P}_text_${q}_${Date.now()}`;L(P,{id:K,type:"text",content:"",order:q}),E.current.set(`${P}-${q}`,K),console.log("🎯 [SIDECHAIN] Started text block:",K)}else if(V.type==="thinking"){const K=`part_${P}_thinking_${q}_${Date.now()}`;L(P,{id:K,type:"thinking",content:"",order:q}),E.current.set(`${P}-${q}`,K)}else if(V.type==="tool_use"){const K=`part_${P}_tool_${q}_${Date.now()}`;L(P,{id:K,type:"tool",toolData:{id:V.id,toolName:V.name,toolInput:{},isError:!1},order:q}),E.current.set(`${P}-${q}`,K),console.log("🎯 [SIDECHAIN] Added tool_use to sub-agent:",V.name)}}if(U.type==="content_block_delta"&&U.delta){const q=U.index,V=U.delta,K=E.current.get(`${P}-${q}`);if(K){const ye=lc.getState().activeTasks.get(P);if(ye)for(const _e of ye.messageFlow){const ve=_e.messageParts.find(Le=>Le.id===K);if(ve){if(V.type==="text_delta"&&V.text){const Le=(ve.content||"")+V.text;L(P,{...ve,content:Le}),Le.length%100<10&&console.log("🎯 [SIDECHAIN] Text accumulated:",Le.length,"chars")}else if(V.type==="thinking_delta"&&V.thinking){const Le=(ve.content||"")+V.thinking;L(P,{...ve,content:Le})}break}}}}}if(j.type==="assistant"&&j.message){const U=j.message;if(console.log("🎯 [SIDECHAIN] Processing assistant message, blocks:",U.content?.length||0),U.content&&Array.isArray(U.content))for(let q=0;q<U.content.length;q++){const V=U.content[q];V.type==="text"&&V.text?(console.log("🎯 [SIDECHAIN] Adding text from assistant:",V.text.substring(0,50)),L(P,{id:`part_${P}_text_${q}_${Date.now()}`,type:"text",content:V.text,order:q})):V.type==="thinking"&&V.thinking?L(P,{id:`part_${P}_thinking_${q}_${Date.now()}`,type:"thinking",content:V.thinking,order:q}):V.type==="tool_use"&&(L(P,{id:`part_${P}_tool_${q}_${Date.now()}`,type:"tool",toolData:{id:V.id,toolName:V.name,toolInput:V.input||{},isError:!1},order:q}),console.log("🎯 [SIDECHAIN] Added tool_use from assistant:",V.name))}}if(j.type==="user"&&j.message){const U=j.message;if(U.content&&Array.isArray(U.content))for(const q of U.content){const V=q;if(V.type==="text"){console.log("🎯 [SIDECHAIN] Skipping user text (task prompt already shown)");continue}V.type==="tool_result"&&V.tool_use_id&&console.log("🎯 [SIDECHAIN] Tool result for:",V.tool_use_id,"error:",V.is_error)}}return}if(j.type==="stream_event"&&j.event){const P=j.event;if(console.log("🌊 [STREAMING] Detected stream_event:",P.type,"Full event:",JSON.stringify(j).substring(0,200)),N.current.wasStreamProcessed=!0,P.type==="message_start"){if(M.current)console.log("🌊 [STREAMING] message_start: AI message already exists, skipping:",M.current);else{d({content:"",role:"assistant"});const U=Xe.getState();M.current=U.messages[U.messages.length-1].id,N.current.currentMessageId=M.current,N.current.isStreaming=!0,console.log("🌊 [STREAMING] message_start: Created new AI message with ID:",M.current)}return}if(P.type==="content_block_start"){const Y=P.index,U=P.content_block;if(!M.current){d({content:"",role:"assistant"});const re=Xe.getState();M.current=re.messages[re.messages.length-1].id,N.current.currentMessageId=M.current,N.current.isStreaming=!0}const q=`block-${M.current}-${Y}`,V=Date.now();if(N.current.activeBlocks.has(q)){console.warn("🌊 [STREAMING] content_block_start: Block already exists, skipping:",q);return}if(U.type==="text"){g(M.current,"");const re=Xe.getState().messages.find(Le=>Le.id===M.current),_e=re?.messageParts?.[re.messageParts.length-1]?.id,ve={blockId:q,type:"text",content:"",isComplete:!1,messageId:M.current,partId:_e,startedAt:V,lastUpdatedAt:V};N.current.activeBlocks.set(q,ve),console.log("🌊 [STREAMING] content_block_start: Initialized text block",q,"partId:",_e)}else if(U.type==="thinking"){m(M.current,"");const re=Xe.getState().messages.find(Le=>Le.id===M.current),_e=re?.messageParts?.[re.messageParts.length-1]?.id,ve={blockId:q,type:"thinking",content:"",isComplete:!1,messageId:M.current,partId:_e,startedAt:V,lastUpdatedAt:V};N.current.activeBlocks.set(q,ve),console.log("🤔 [STREAMING] content_block_start: Initialized thinking block",q,"partId:",_e)}else if(U.type==="tool_use"){if(console.log("🔧 [STREAMING] content_block_start: Processing tool_use",{toolName:U.name,claudeId:U.id,blockId:q,messageId:M.current}),U.name==="Task"){const re=t||j.sessionId||j.session_id;re&&U.id&&(console.log("🎯 [TASK] Registering Task tool for sub-agent tracking:",U.id),I(U.id,re))}const K={toolName:U.name,toolInput:{},isExecuting:!0,claudeId:U.id};try{k(M.current,K),console.log("🔧 [STREAMING] content_block_start: addToolPartToMessage completed");const re=Xe.getState();console.log("🔧 [STREAMING] content_block_start: Got store state, messages count:",re.messages.length);const ye=re.messages.find(Oe=>Oe.id===M.current);console.log("🔧 [STREAMING] content_block_start: Found current message:",!!ye,"parts count:",ye?.messageParts?.length);const _e=ye?.messageParts?.[ye.messageParts.length-1];console.log("🔧 [STREAMING] content_block_start: Latest part:",{exists:!!_e,type:_e?.type,hasToolData:!!_e?.toolData,toolDataId:_e?.toolData?.id});const ve=_e?.toolData?.id;ve||console.error("🔧 [STREAMING] content_block_start: ⚠️ partId is undefined! Latest part:",_e);const Le={blockId:q,type:"tool_use",content:"",isComplete:!1,messageId:M.current,partId:ve,startedAt:V,lastUpdatedAt:V};N.current.activeBlocks.set(q,Le),console.log("🔧 [STREAMING] content_block_start: ✅ Initialized tool_use block",U.name,"blockId:",q,"partId:",ve,"claudeId:",U.id)}catch(re){throw console.error("🔧 [STREAMING] content_block_start: ❌ Error processing tool_use:",re),re}}return}if(P.type==="content_block_delta"&&M.current){const Y=P.index,U=P.delta,q=`block-${M.current}-${Y}`,V=Date.now();if(U.type==="text_delta"&&U.text!==void 0){let K=N.current.activeBlocks.get(q);if(K)K.content+=U.text,K.lastUpdatedAt=V,console.log(`🌊 [STREAMING] content_block_delta: Accumulated text delta "${U.text}" to block ${q}, total: "${K.content.substring(0,50)}..."`);else{console.warn("🌊 [STREAMING] content_block_delta: Missing content_block_start for text block, creating fallback"),g(M.current,"");const ye=Xe.getState().messages.find(Le=>Le.id===M.current),ve=ye?.messageParts?.[ye.messageParts.length-1]?.id;K={blockId:q,type:"text",content:U.text,isComplete:!1,messageId:M.current,partId:ve,startedAt:V,lastUpdatedAt:V},N.current.activeBlocks.set(q,K),console.log(`🌊 [STREAMING] content_block_delta: Created text block ${q} (fallback) with partId: ${ve}, content: "${U.text}"`)}D(q,K.content,"text")}else if(U.type==="thinking_delta"&&U.thinking!==void 0){let K=N.current.activeBlocks.get(q);if(K)K.content+=U.thinking,K.lastUpdatedAt=V,console.log(`🤔 [STREAMING] content_block_delta: Accumulated thinking delta "${U.thinking}" to block ${q}, total: "${K.content.substring(0,50)}..."`);else{console.warn("🤔 [STREAMING] content_block_delta: Missing content_block_start for thinking block, creating fallback"),m(M.current,"");const ye=Xe.getState().messages.find(Le=>Le.id===M.current),ve=ye?.messageParts?.[ye.messageParts.length-1]?.id;K={blockId:q,type:"thinking",content:U.thinking,isComplete:!1,messageId:M.current,partId:ve,startedAt:V,lastUpdatedAt:V},N.current.activeBlocks.set(q,K),console.log(`🤔 [STREAMING] content_block_delta: Created thinking block ${q} (fallback) with partId: ${ve}, content: "${U.thinking}"`)}D(q,K.content,"thinking")}else if(U.type==="input_json_delta"){const K=U.partial_json||"";let re=N.current.activeBlocks.get(q);if(re){re.content+=K,re.lastUpdatedAt=V;const ye=re.content,_e=ye.trim();if(re.partId&&_e.endsWith("}"))try{const ve=JSON.parse(ye);v(M.current,re.partId,{toolInput:ve}),console.log(`🔧 [STREAMING] content_block_delta: Updated tool_use block ${q}, parsed complete JSON`)}catch{console.log(`🔧 [STREAMING] content_block_delta: JSON not yet complete for ${q}, length: ${ye.length}`)}}else{if(console.warn("🔧 [STREAMING] content_block_delta: Missing content_block_start for tool block, creating fallback"),!P.content_block||P.content_block.type!=="tool_use"){console.error("🔧 [STREAMING] content_block_delta: Missing content_block info for tool, cannot create fallback");return}const ye=P.content_block.name,_e=P.content_block.id;k(M.current,{toolName:ye,toolInput:{},isExecuting:!0,claudeId:_e});const Le=Xe.getState().messages.find(it=>it.id===M.current),Mt=Le?.messageParts?.[Le.messageParts.length-1]?.toolData?.id;re={blockId:q,type:"tool_use",content:K,isComplete:!1,messageId:M.current,partId:Mt,startedAt:V,lastUpdatedAt:V},N.current.activeBlocks.set(q,re),console.log("🔧 [STREAMING] content_block_delta: Created tool_use block (fallback)",ye,"blockId:",q,"partId:",Mt,"initial fragment:",K)}}return}if(P.type==="content_block_stop"&&M.current){const Y=P.index,U=`block-${M.current}-${Y}`,q=N.current.activeBlocks.get(U);if(q){q.isComplete=!0,console.log(`🌊 [STREAMING] content_block_stop: Block ${U} complete, type: ${q.type}, content length: ${q.content.length}`);const V=N.current;if(V.pendingUpdate?.blockId===U){console.log(`🌊 [STREAMING] content_block_stop: Flushing pending RAF for ${U} immediately`),V.rafId!==null&&(cancelAnimationFrame(V.rafId),V.rafId=null);const K=V.pendingUpdate;q.partId&&(K.type==="text"?b(M.current,q.partId,K.content):K.type==="thinking"&&y(M.current,q.partId,K.content),console.log(`🌊 [STREAMING] content_block_stop: Flushed ${K.type} content for ${U}, length: ${K.content.length}`)),V.pendingUpdate=null}else if((q.type==="text"||q.type==="thinking")&&q.partId)console.log(`🌊 [STREAMING] content_block_stop: Final check - ensuring ${q.type} content saved, length: ${q.content.length}`),q.type==="text"?b(M.current,q.partId,q.content):q.type==="thinking"&&y(M.current,q.partId,q.content);else if(q.type==="tool_use"&&q.partId&&q.content){console.log(`🔧 [STREAMING] content_block_stop: Finalizing tool_use block ${U}, accumulated JSON length: ${q.content.length}`);try{const K=JSON.parse(q.content);v(M.current,q.partId,{toolInput:K}),console.log(`🔧 [STREAMING] content_block_stop: Successfully parsed final tool input for ${U}`)}catch(K){console.error(`🔧 [STREAMING] content_block_stop: Failed to parse final tool JSON for ${U}:`,K,"content:",q.content.substring(0,200))}}N.current.activeBlocks.delete(U),console.log(`🌊 [STREAMING] content_block_stop: Cleaned up block ${U}`)}return}if(P.type==="message_delta"){console.log("🌊 [STREAMING] message_delta:",P.delta);return}if(P.type==="message_stop"){if(N.current.isStreaming){console.log("🌊 [STREAMING] message_stop: Finalizing all streaming blocks, count:",N.current.activeBlocks.size);const Y=M.current,U=N.current;if(U.pendingUpdate&&U.rafId!==null){console.log(`🌊 [STREAMING] message_stop: Flushing pending RAF for ${U.pendingUpdate.blockId}`),cancelAnimationFrame(U.rafId),U.rafId=null;const q=U.pendingUpdate,V=U.activeBlocks.get(q.blockId);V&&V.partId&&Y&&(q.type==="text"?b(Y,V.partId,q.content):q.type==="thinking"&&y(Y,V.partId,q.content),console.log(`🌊 [STREAMING] message_stop: Flushed ${q.type} content, length: ${q.content.length}`)),U.pendingUpdate=null}Y&&U.activeBlocks.forEach(q=>{q.isComplete=!0,(q.type==="text"||q.type==="thinking")&&q.partId?(console.log(`🌊 [STREAMING] message_stop: Final check for ${q.type} block ${q.blockId}, length: ${q.content.length}`),q.type==="text"?b(Y,q.partId,q.content):q.type==="thinking"&&y(Y,q.partId,q.content)):q.partId||console.error(`❌ [STREAMING] message_stop: Missing partId for block ${q.blockId}, content LOST:`,q.content.substring(0,100))}),U.isStreaming=!1,U.currentMessageId=null,U.activeBlocks.clear(),console.log("🌊 [STREAMING] message_stop: All blocks finalized and cleared")}return}console.warn("🌊 [STREAMING] Unknown stream_event type:",P.type);return}if(j.type==="error"){console.error("Claude Code SDK error:",j),c(!1),a(!1),i.current=null;let P="";j.subtype&&j.message?(console.log("📋 Processing structured error with subtype:",j.subtype),P=`❌ **${{error_during_execution:h("agentChat.executionError"),error_max_turns:h("agentChat.maxTurnsReached"),error_max_budget_usd:h("agentChat.maxBudgetReached"),error_max_structured_output_retries:h("agentChat.maxRetriesReached")}[j.subtype]||h("agentChat.processingError")}**
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-DR9x77Xf.js","assets/graph-m515btDj.js","assets/_baseUniq-eGJNLBzx.js","assets/layout-BKQfQSxJ.js","assets/_basePickBy-7C_e0Xv1.js","assets/clone-Ckf7tA1V.js","assets/data-structures-C0h9Oap1.js","assets/monaco-editor-DHKm5-VF.js","assets/syntax-highlighting-CnREyncB.js","assets/agents-ChrA1R0y.js","assets/tools-IcPNZlPj.js","assets/ui-components-D1St49qC.js","assets/agents-DwCY2K8p.css","assets/useAgents-BnDTkOG8.js","assets/tabManager-B2LQO_Ll.js","assets/index-Bn3v3S9-.js","assets/index-DWieeYj4.css","assets/useCommands-mvMu3mMD.js","assets/useClaudeVersions-CD59tFWM.js","assets/FileExplorer-DNYj6Tsx.js","assets/UnifiedToolSelector-CNbPsiuq.js","assets/FileBrowser-BYweUPH4.js","assets/ProjectSelector-DSXOjMQC.js","assets/cose-bilkent-S5V4N54A-CnpfmL-Y.js","assets/cytoscape.esm-DtBltrT8.js","assets/c4Diagram-YG6GDRKO-BNJSAXcg.js","assets/chunk-TZMSLE5B-DPCYEVb3.js","assets/flowDiagram-NV44I4VS-HAAlzNbq.js","assets/chunk-FMBD7UC4-BbjwhyTe.js","assets/chunk-55IACEB6-3ePDt0kp.js","assets/chunk-QN33PNHL-BpH-o_YR.js","assets/channel-CIunGC5m.js","assets/erDiagram-Q2GNP2WA-BX1DpOGx.js","assets/gitGraphDiagram-NY62KEGX-CIPmSp43.js","assets/chunk-4BX2VUAB-RPxkCWhH.js","assets/chunk-QZHKN3VN-DYB7rh5Q.js","assets/treemap-KMMF4GRG-DtkpVA56.js","assets/ganttDiagram-LVOFAZNH-BqzWexqa.js","assets/linear-DigtLz3B.js","assets/init-Gi6I4Gst.js","assets/defaultLocale-C4B-KCzX.js","assets/infoDiagram-F6ZHWCRC-Pn4yNWrF.js","assets/pieDiagram-ADFJNKIX-BcoaAI-L.js","assets/arc-CuA752eE.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-AYHSOK5B-D-DwcoSd.js","assets/xychartDiagram-PRI3JC2R-ByBTDWE2.js","assets/requirementDiagram-UZGBJVZJ-DbQCpx77.js","assets/sequenceDiagram-WL72ISMW-BdzICjxO.js","assets/classDiagram-2ON5EDUG-aUQHFsTA.js","assets/chunk-B4BG7PRW-CBg_BBfl.js","assets/classDiagram-v2-WZHVMYZB-aUQHFsTA.js","assets/stateDiagram-FKZM4ZOC-CYY-uUvJ.js","assets/chunk-DI55MBZ5-DIh69TUJ.js","assets/stateDiagram-v2-4FDKWEC3-Dh2Kvomq.js","assets/journeyDiagram-XKPGCS4Q-BfzTomS0.js","assets/timeline-definition-IT6M3QCI-BAvjPYvX.js","assets/mindmap-definition-VGOIOE7T-qopraVFy.js","assets/kanban-definition-3W4ZIXB7-Cgju7b-L.js","assets/sankeyDiagram-TZEHDZUN-BVk8387S.js","assets/diagram-S2PKOQOG-CkM0APZj.js","assets/diagram-QEK2KX5R-BKYFSfC1.js","assets/blockDiagram-VD42YOAC-72nsMt_i.js","assets/architectureDiagram-VXUJARFQ-BnPYh1OW.js","assets/diagram-PSM6KHXK-SONPsQNx.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{j as p}from"./data-structures-C0h9Oap1.js";import{r as O,g as _u,W as mr}from"./monaco-editor-DHKm5-VF.js";import{o as eg,A as ec,a as tc,u as Tu,h as nw,l as iw,d as sw,p as aw,S as ow}from"./agents-ChrA1R0y.js";import{g as lw,h as cw,i as uw,j as hw,k as dw}from"./useAgents-BnDTkOG8.js";import{t as ws,u as fw}from"./tabManager-B2LQO_Ll.js";import{u as we,B as Qe,T as Ve,b as pw,K as gw,c as mw}from"./tools-IcPNZlPj.js";import{m as Zr,g as nd,ad as xw,o as yw,a4 as tg,t as rc,aQ as rg,aR as ng,X as An,k as ui,l as Rs,am as wa,L as va,C as Jr,n as Ca,j as nc,Z as Sa,aS as bw,I as pl,aT as kw,aU as na,aV as ww,E as vw,ab as ig,ar as Cw,ao as Sw,R as sg,aW as id,d as sd,aX as Eu,aG as _w,e as ag,aY as ad,S as od,aZ as Tw,ac as og,a_ as Ew,v as Aw,p as lg,a2 as Mw,an as Nw,a$ as vs,Q as cg,i as ug,q as ld,b0 as Lw,b1 as cd,Y as Iw}from"./ui-components-D1St49qC.js";import{s as $w,h as hg,f as jw,u as dg,i as Bw,j as Dw}from"./index-Bn3v3S9-.js";import{u as ic,f as sc}from"./useCommands-mvMu3mMD.js";import{u as Pw}from"./useClaudeVersions-CD59tFWM.js";import{e as ac,E as oc,F as ud}from"./FileExplorer-DNYj6Tsx.js";import{c as Re,h as fg}from"./syntax-highlighting-CnREyncB.js";import{U as Au}from"./UnifiedToolSelector-CNbPsiuq.js";import{F as Fw}from"./FileBrowser-BYweUPH4.js";import{P as Rw}from"./ProjectSelector-DSXOjMQC.js";const Xe=eg((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})})),Ow=({agentId:e,sessionId:t,projectPath:r,enabled:n=!0,interval:i=3e4,shouldCheckExistence:s=!1})=>{const a=O.useRef(null),o=O.useRef(0),l=O.useRef(!0),c=O.useRef(!1),u=O.useCallback(async()=>{if(!e||!t)return!1;try{const m=`${ec}/sessions/${e}/${t}/check`,b=await tc(m);if(b.ok){const y=await b.json();return console.log(`🔍 Session existence check: ${t} - ${y.exists?"exists":"not found"}`),y.exists}return!1}catch(m){return console.error("❌ Error checking session existence:",m),!1}},[e,t]),h=O.useCallback(async()=>{if(!(!e||!t||!n))try{const m=`${ec}/sessions/${e}/${t}/heartbeat`,b=await tc(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:r,timestamp:Date.now()})});if(b.ok){const y=await b.json();o.current=y.timestamp,console.log(`💓 Session heartbeat sent successfully: ${t}`),ws.updateCurrentTabActivity(e,t)}else console.warn(`⚠️ Failed to send heartbeat for session ${t}:`,b.status)}catch(m){console.error("💔 Error sending session heartbeat:",m)}},[e,t,r,n]),f=O.useCallback(()=>{l.current=!document.hidden,l.current&&n&&t&&h()},[h,n,t]),d=O.useCallback(async()=>{if(!(!n||!t||a.current)){if(s&&!c.current){const m=await u();if(c.current=!0,!m){console.log(`⏸️ Session ${t} not found in SessionManager, heartbeat not started`);return}}console.log(`💓 Starting heartbeat for session: ${t}`),h(),a.current=setInterval(()=>{h()},i)}},[n,t,h,i,s,u]),g=O.useCallback(()=>{a.current&&(console.log(`💔 Stopping heartbeat for session: ${t}`),clearInterval(a.current),a.current=null)},[t]);return O.useEffect(()=>(c.current=!1,t&&n?d():g(),()=>{g()}),[t,n,d,g]),O.useEffect(()=>(document.addEventListener("visibilitychange",f),()=>{document.removeEventListener("visibilitychange",f)}),[f]),O.useEffect(()=>()=>{g()},[g]),{sendHeartbeat:h,startHeartbeat:d,stopHeartbeat:g,checkSessionExists:u,lastHeartbeat:o.current}},zw=({agentId:e,sessionId:t,projectPath:r,enabled:n=!0,interval:i=3e4,isNewSession:s=!1,hasSuccessfulResponse:a=!1})=>{const o=O.useRef(null),l=O.useRef(!1),c=!t||!n?!1:s?a:!0,h=Ow({agentId:e,sessionId:t,projectPath:r,enabled:c,interval:i,shouldCheckExistence:!s&&!!t});return O.useEffect(()=>{o.current!==t&&(l.current=!1,o.current=t)},[t]),O.useEffect(()=>{c&&t&&!l.current&&(l.current=!0,console.log(`🚀 Heartbeat enabled for session: ${t} (new: ${s}, hasResponse: ${a})`))},[c,t,s,a]),{...h,isHeartbeatActive:c&&l.current}},Hw=()=>{const[e,t]=O.useState(!1);return O.useEffect(()=>{const r=()=>{t(window.innerWidth<640)};return r(),window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),{isCompactMode:e}},Ww=({isOpen:e,onToggle:t,sessions:r,currentSessionId:n,onSwitchSession:i,isLoading:s=!1,searchTerm:a,onSearchChange:o})=>{const{t:l}=we("components"),c=O.useRef(null),u=O.useRef(null);O.useEffect(()=>{console.log("🎯 [DROPDOWN DEBUG] SessionsDropdown sessions updated:",{sessionCount:r.length,currentSessionId:n,searchTerm:a,sessions:r.map((f,d)=>({index:d+1,id:f.id,title:f.title,lastUpdated:f.lastUpdated,messageCount:f.messageCount,isCurrent:f.id===n}))})},[r,n,a]),O.useEffect(()=>{const f=d=>{c.current&&!c.current.contains(d.target)&&t()};return e&&document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f)}},[e,t]),O.useEffect(()=>{e&&u.current&&setTimeout(()=>u.current?.focus(),100)},[e]);const h=r;return e?p.jsxs("div",{ref:c,className:"absolute top-full right-0 mt-1 w-80 bg-white rounded-lg shadow-lg border border-gray-200 z-50",children:[p.jsx("div",{className:"flex items-center justify-between p-3 border-b border-gray-100",children:p.jsxs("div",{className:"flex items-center space-x-2",children:[p.jsx(Zr,{className:"w-4 h-4 text-gray-600"}),p.jsx("span",{className:"text-sm font-medium text-gray-900",children:l("sessionDropdown.sessionHistory")})]})}),p.jsx("div",{className:"p-3 border-b border-gray-100",children:p.jsxs("div",{className:"relative",children:[p.jsx(nd,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4"}),p.jsx("input",{ref:u,type:"text",value:a,onChange:f=>o(f.target.value),placeholder:l("sessionDropdown.searchPlaceholder"),className:"w-full pl-9 pr-3 py-2 text-sm text-gray-900 border border-gray-200 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent placeholder-gray-500"})]})}),p.jsx("div",{className:"max-h-80 overflow-y-auto",children:s?p.jsx("div",{className:"flex items-center justify-center py-8",children:p.jsx("div",{className:"animate-spin rounded-full h-5 w-5 border-b-2 border-blue-600"})}):h.length>0?p.jsx("div",{className:"py-2",children:h.map((f,d)=>p.jsxs("div",{onClick:()=>{console.log(`🖱️ [DROPDOWN DEBUG] Clicking session ${d+1}:`,{id:f.id,title:f.title,isCurrent:f.id===n}),i(f.id)},className:`mx-2 px-3 py-2 rounded cursor-pointer hover:bg-gray-50 transition-colors ${n===f.id?"bg-blue-50 border border-blue-200":"border border-transparent"}`,children:[p.jsxs("div",{className:"text-sm font-medium text-gray-900 truncate",title:`ID: ${f.id}`,children:[d+1,". ",f.title]}),p.jsxs("div",{className:"text-xs text-gray-500 mt-0.5",children:[l("sessionDropdown.messageCount",{count:f.messageCount})," • ",new Date(f.lastUpdated).toLocaleString("zh-CN",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})]})]},f.id))}):p.jsx("div",{className:"text-center py-8",children:a?p.jsxs("div",{children:[p.jsx(nd,{className:"w-8 h-8 text-gray-300 mx-auto mb-2"}),p.jsx("p",{className:"text-sm text-gray-500",children:l("sessionDropdown.noMatchingSessions")})]}):p.jsxs("div",{children:[p.jsx(Zr,{className:"w-8 h-8 text-gray-300 mx-auto mb-2"}),p.jsx("p",{className:"text-sm text-gray-500",children:l("sessionDropdown.noSessionHistory")}),p.jsx("p",{className:"text-xs text-gray-400 mt-1",children:l("sessionDropdown.sessionWillAppear")})]})})})]}):null};function qw(e,t){return t?e.replace(/@([\w.-]+(?:\/[\w.-]+)*(?:\.\w+)?)/g,(r,n)=>n.startsWith("/")?n:t+"/"+n):e}function Uw(e,t,r){let n=e.content;return t&&(n=n.replace(/\$ARGUMENTS/g,t)),n=qw(n,r),`<command-message>${t?`${e.description} (参数: ${t})`:e.description}</command-message><command-name>${n}</command-name>`}function us(e){return e.startsWith("/")}function Vw(e){return e.startsWith("/")?e.slice(1):""}const Gw=({textareaRef:e,inputMessage:t,setInputMessage:r})=>{const[n,i]=O.useState([]),[s,a]=O.useState(null),[o,l]=O.useState(!1),c=O.useCallback(C=>{if(!e.current)return;const S=e.current,w=S.selectionStart||0,T=S.selectionEnd||0,$=t,M=$.substring(0,w)+C+$.substring(T);r(M),setTimeout(()=>{S.selectionStart=S.selectionEnd=w+C.length,S.focus()},0)},[t,r,e]),u=O.useCallback(C=>{const S=Date.now().toString()+Math.random().toString(36).substr(2,9),w=new FileReader;w.onload=T=>{T.target?.result&&i($=>{const M=[...$,{id:S,file:C,preview:T.target.result}],N=`[image${M.length}]`;return c(N),M})},w.readAsDataURL(C)},[c]),h=O.useCallback(C=>{const S=C.target.files;if(!S)return;Array.from(S).filter(T=>T.type.startsWith("image/")&&["image/jpeg","image/png","image/gif","image/webp"].includes(T.type)).forEach(u),C.target&&(C.target.value="")},[u]),f=O.useCallback(C=>{i(S=>S.filter(w=>w.id!==C))},[]),d=O.useCallback(C=>{a(C)},[]),g=O.useCallback(C=>{const S=C.clipboardData?.items;if(!S)return;let w=!1;for(let T=0;T<S.length;T++){const $=S[T];if($.type.startsWith("image/")){w=!0;const M=$.getAsFile();M&&u(M)}}w&&C.preventDefault()},[u]),m=O.useCallback(C=>{C.preventDefault(),l(!0)},[]),b=O.useCallback(C=>{C.preventDefault(),l(!1)},[]),y=O.useCallback(C=>{C.preventDefault(),l(!1);const S=C.dataTransfer?.files;if(!S)return;Array.from(S).filter(T=>T.type.startsWith("image/")&&["image/jpeg","image/png","image/gif","image/webp"].includes(T.type)).forEach(u)},[u]),k=O.useCallback(()=>{i([])},[]),v=O.useCallback(()=>n.map(C=>({id:C.id,data:C.preview.split(",")[1],mediaType:C.file.type,name:C.file.name})),[n]);return{selectedImages:n,previewImage:s,isDragOver:o,handleImageSelect:h,handleImageRemove:f,handleImagePreview:d,handlePaste:g,handleDragOver:m,handleDragLeave:b,handleDrop:y,clearImages:k,getImagesForBackend:v,setPreviewImage:a}},Yw=({messagesContainerRef:e,messagesEndRef:t,messages:r,isAiTyping:n})=>{const[i,s]=O.useState(!1),[a,o]=O.useState(0),l=O.useCallback((h=100)=>{if(!e.current)return!1;const{scrollTop:f,scrollHeight:d,clientHeight:g}=e.current;return d-f-g<h},[e]),c=O.useCallback((h="smooth")=>{t.current?.scrollIntoView({behavior:h})},[t]),u=O.useCallback(()=>{const h=l();s(!h),h&&o(0)},[l]);return O.useEffect(()=>{const h=e.current;if(h)return h.addEventListener("scroll",u),()=>h.removeEventListener("scroll",u)},[u,e]),O.useEffect(()=>{i?o(h=>h+1):c()},[r,n,i,c]),{isUserScrolling:i,newMessagesCount:a,scrollToBottom:c,setNewMessagesCount:o,setIsUserScrolling:s}},Xw=({projectPath:e,textareaRef:t})=>{const{t:r}=we("components"),[n,i]=O.useState(!1),[s,a]=O.useState(""),[o,l]=O.useState(null),[c,u]=O.useState(0),[h,f]=O.useState(null),[d,g]=O.useState(!1),[m,b]=O.useState(null),y=[{id:"init",name:"init",description:r("systemCommands.init.description"),content:"/init",scope:"system",isSystem:!0},{id:"clear",name:"clear",description:r("systemCommands.clear.description"),content:"/clear",scope:"system",isSystem:!0},{id:"compact",name:"compact",description:r("systemCommands.compact.description"),content:"/compact",scope:"system",isSystem:!0},{id:"agents",name:"agents",description:r("systemCommands.agents.description"),content:"/agents",scope:"system",isSystem:!0},{id:"settings",name:"settings",description:r("systemCommands.settings.description"),content:"/settings",scope:"system",isSystem:!0},{id:"help",name:"help",description:r("systemCommands.help.description"),content:"/help",scope:"system",isSystem:!0}],{data:k=[],error:v}=ic({scope:"user",search:s}),{data:C=[],error:S}=sc({projectId:e||"",search:s}),{data:w=[]}=ic({scope:"user"}),{data:T=[]}=sc({projectId:e||""}),$=O.useCallback(B=>{const H=y.find(j=>j.name===B),Q=T.find(j=>j.name===B),_=w.find(j=>j.name===B);return!!(H||Q||_)},[y,T,w]),M=O.useCallback(()=>{const B=y.map(_=>_.content),H=T.map(_=>`/${_.name}`),Q=w.map(_=>`/${_.name}`);return[...B,...H,...Q].join(", ")},[y,T,w]),E=v||S,N=O.useMemo(()=>[...y.filter(H=>H.name.toLowerCase().includes(s.toLowerCase())||H.description.toLowerCase().includes(s.toLowerCase())),...C,...k],[k,C,s,y]);O.useEffect(()=>{u(B=>N.length>0&&B>=N.length?0:B)},[N.length]);const D=O.useCallback(B=>{if(h&&f(null),B.length>0&&B[B.length-1]==="@"){const H=B.substring(0,B.length-1);if(H.length===0||/\s$/.test(H)){b(B.length-1),g(!0),t.current?.blur();return}}},[h,t]),R=O.useCallback(B=>(l(B),i(!1),`/${B.name}`),[]),I=O.useCallback(()=>{i(!1)},[]),F=O.useCallback((B,H)=>{if(!t.current||m===null)return H;let Q=B;e&&B.startsWith(e)&&(Q=B.slice(e.length),Q.startsWith("/")&&(Q=Q.slice(1)));const _=H.substring(0,m),j=H.substring(m+1),te=_+"@"+Q+" "+j;return g(!1),b(null),setTimeout(()=>{if(t.current){const A=m+1+Q.length+1;t.current.selectionStart=t.current.selectionEnd=A,t.current.focus()}},0),te},[m,e,t]),L=O.useCallback(()=>{g(!1),b(null),setTimeout(()=>{t.current?.focus()},0)},[t]);return{showCommandSelector:n,commandSearch:s,selectedCommand:o,selectedCommandIndex:c,commandWarning:h,showFileBrowser:d,atSymbolPosition:m,allCommands:N,SYSTEM_COMMANDS:y,userCommands:w,projectCommands:T,hasCommandsLoadError:E,userCommandsError:v,projectCommandsError:S,setSelectedCommand:l,setSelectedCommandIndex:u,setCommandWarning:f,setShowCommandSelector:i,setShowFileBrowser:g,setAtSymbolPosition:b,setCommandSearch:a,handleInputChange:D,handleCommandSelect:R,handleCommandSelectorClose:I,handleFileSelect:F,handleFileBrowserClose:L,isCommandDefined:$,getAllAvailableCommands:M}},Qw=({agent:e})=>{const[t,r]=O.useState(!1),[n,i]=O.useState([]),[s,a]=O.useState([]),[o,l]=O.useState(!1),[c,u]=O.useState("bypassPermissions"),[h,f]=O.useState("sonnet"),[d,g]=O.useState(!1),[m,b]=O.useState(!1),[y,k]=O.useState(void 0),[v,C]=O.useState(!1),[S,w]=O.useState(!1),[T,$]=O.useState({});return O.useEffect(()=>{if(e?.allowedTools?.length>0){const M=e.allowedTools.filter(D=>D.enabled),E=[],N=[];M.forEach(D=>{if(D.name.includes(".")&&!D.name.startsWith("mcp__")){const[R,I]=D.name.split("."),F=`mcp__${R}__${I}`;N.push(F)}else D.name.startsWith("mcp__")?N.push(D.name):E.push(D.name)}),i(E),a(N),l(N.length>0)}},[e?.allowedTools]),{showToolSelector:t,selectedRegularTools:n,selectedMcpTools:s,mcpToolsEnabled:o,permissionMode:c,selectedModel:h,showPermissionDropdown:d,showModelDropdown:m,selectedClaudeVersion:y,showVersionDropdown:v,isVersionLocked:S,setShowToolSelector:r,setSelectedRegularTools:i,setSelectedMcpTools:a,setMcpToolsEnabled:l,setPermissionMode:u,setSelectedModel:f,setShowPermissionDropdown:g,setShowModelDropdown:b,setSelectedClaudeVersion:k,setShowVersionDropdown:C,setIsVersionLocked:w,envVars:T,setEnvVars:$}},Kw=({initialModel:e="sonnet",initialVersion:t})=>{const{data:r}=Pw(),[n,i]=O.useState(e),[s,a]=O.useState(t),[o,l]=O.useState(!1),c=O.useMemo(()=>{if(!r?.versions)return[];if(s){const m=r.versions.find(y=>y.id===s),b=m?.models||[];return console.log(`📦 availableModels computed: selectedClaudeVersion=${s}, found version=${m?.name}, models=`,b.map(y=>y.id)),b}const d=r.versions.find(m=>m.id===r.defaultVersionId)||r.versions[0],g=d?.models||[];return console.log(`📦 availableModels computed (using default): defaultVersion=${d?.name}, models=`,g.map(m=>m.id)),g},[r,s]);return O.useEffect(()=>{c.length>0&&(c.some(g=>g.id===n)||(console.log(`🔄 Model validation: selectedModel=${n} is not in availableModels:`,c.map(g=>g.id),`selectedClaudeVersion=${s}, resetting to ${c[0].id}`),i(c[0].id)))},[c,n,s]),{claudeVersionsData:r,availableModels:c,selectedModel:n,selectedClaudeVersion:s,isVersionLocked:o,setSelectedModel:i,setSelectedClaudeVersion:a,setIsVersionLocked:l,handleVersionChange:d=>{a(d);const g=r?.versions.find(m=>m.id===d);g&&g.models&&g.models.length>0&&i(g.models[0].id)},handleModelChange:d=>{i(d)},resetToDefaults:()=>{a(void 0),i(e),l(!1)}}},Zw={activeTasks:new Map},lc=eg((e,t)=>({...Zw,registerTaskTool:(r,n)=>{console.log("📋 [SubAgentStore] Registering Task tool:",r,"sessionId:",n),e(i=>{const s=new Map(i.activeTasks);return s.has(r)||s.set(r,{parentToolUseId:r,sessionId:n,messageFlow:[],startedAt:Date.now(),lastUpdatedAt:Date.now()}),{activeTasks:s}})},activateSubAgent:(r,n)=>{if(t().activeTasks.has(r)){console.log("📋 [SubAgentStore] SubAgent already active for:",r);return}console.log("📋 [SubAgentStore] Activating SubAgent for parentToolUseId:",r),e(s=>{const a=new Map(s.activeTasks);return a.set(r,{parentToolUseId:r,sessionId:n,messageFlow:[],startedAt:Date.now(),lastUpdatedAt:Date.now()}),{activeTasks:a}})},addSubAgentMessagePart:(r,n)=>{e(i=>{if(!i.activeTasks.get(r)){console.log("📋 [SubAgentStore] Creating new task for parentToolUseId:",r);const u=new Map(i.activeTasks);return u.set(r,{parentToolUseId:r,sessionId:"",messageFlow:[{id:`msg_${r}_${Date.now()}`,role:"assistant",timestamp:new Date().toISOString(),messageParts:[n]}],startedAt:Date.now(),lastUpdatedAt:Date.now()}),{activeTasks:u}}const a=new Map(i.activeTasks),o=a.get(r),l=o.messageFlow.findIndex(u=>u.messageParts.some(h=>h.id===n.id));let c;if(l>=0)c=o.messageFlow.map((u,h)=>h===l?{...u,messageParts:u.messageParts.map(f=>f.id===n.id?n:f)}:u);else{const u=o.messageFlow[o.messageFlow.length-1];u&&u.role==="assistant"?c=[...o.messageFlow.slice(0,-1),{...u,messageParts:[...u.messageParts,n]}]:c=[...o.messageFlow,{id:`msg_${r}_${Date.now()}`,role:"assistant",timestamp:new Date().toISOString(),messageParts:[n]}]}return a.set(r,{...o,messageFlow:c,lastUpdatedAt:Date.now()}),console.log("📋 [SubAgentStore] Added message part to",r,"type:",n.type,"total parts:",c.reduce((u,h)=>u+h.messageParts.length,0)),{activeTasks:a}})},getSubAgentMessageFlow:r=>t().activeTasks.get(r)?.messageFlow||[],clearSubAgentTask:r=>{console.log("📋 [SubAgentStore] Clearing SubAgent task:",r),e(n=>{const i=new Map(n.activeTasks);return i.delete(r),{activeTasks:i}})},reset:()=>{console.log("📋 [SubAgentStore] Resetting state"),e({activeTasks:new Map})}})),Jw=({agentId:e,currentSessionId:t,projectPath:r,isCompactCommand:n=!1,abortControllerRef:i,onSessionChange:s,setIsInitializingSession:a,setCurrentSessionId:o,setIsNewSession:l,setAiTyping:c,setHasSuccessfulResponse:u})=>{const{t:h}=we("components"),f=Tu(),{addMessage:d,addTextPartToMessage:g,addThinkingPartToMessage:m,updateTextPartInMessage:b,updateThinkingPartInMessage:y,addToolPartToMessage:k,updateToolPartInMessage:v,updateMcpStatus:C,setPendingUserQuestion:S,setA2AStreamStart:w,setA2AStreamEnd:T,addA2AStreamEvent:$}=Xe(),M=O.useRef(null),E=O.useRef(new Map),N=O.useRef({activeBlocks:new Map,currentMessageId:null,isStreaming:!1,wasStreamProcessed:!1,pendingUpdate:null,rafId:null}),D=O.useCallback((_,j,te)=>{const A=N.current;A.pendingUpdate={blockId:_,content:j,type:te},A.rafId===null&&(A.rafId=requestAnimationFrame(()=>{const P=A.pendingUpdate,Y=M.current;if(!P||!Y){A.rafId=null;return}const U=A.activeBlocks.get(P.blockId);if(!U||!U.partId){console.warn("🌊 [STREAMING] No partId found for block:",P.blockId),A.rafId=null;return}P.type==="text"?b(Y,U.partId,P.content):P.type==="thinking"&&y(Y,U.partId,P.content),A.pendingUpdate=null,A.rafId=null}))},[b,y]),R=O.useCallback((_,j)=>`${_}-${Date.now()}-${j}`,[]),{registerTaskTool:I,activateSubAgent:F,addSubAgentMessagePart:L}=lc.getState(),B=O.useCallback(_=>{try{const j=_;j.type==="system"&&j.subtype==="init"&&console.log("📋 [INIT] Received system init message, not intercepting");const te=j.isSidechain===!0,A=j.parentToolUseId;if(te&&A){console.log("🎯 [SIDECHAIN] Intercepted sub-agent message, parentToolUseId:",A,"type:",j.type);const P=A,Y=j.sessionId||j.session_id;if(Y&&F(P,Y),j.type==="stream_event"&&j.event){const U=j.event;if(U.type==="content_block_start"&&U.content_block){const q=U.index,V=U.content_block;if(V.type==="text"){const K=`part_${P}_text_${q}_${Date.now()}`;L(P,{id:K,type:"text",content:"",order:q}),E.current.set(`${P}-${q}`,K),console.log("🎯 [SIDECHAIN] Started text block:",K)}else if(V.type==="thinking"){const K=`part_${P}_thinking_${q}_${Date.now()}`;L(P,{id:K,type:"thinking",content:"",order:q}),E.current.set(`${P}-${q}`,K)}else if(V.type==="tool_use"){const K=`part_${P}_tool_${q}_${Date.now()}`;L(P,{id:K,type:"tool",toolData:{id:V.id,toolName:V.name,toolInput:{},isError:!1},order:q}),E.current.set(`${P}-${q}`,K),console.log("🎯 [SIDECHAIN] Added tool_use to sub-agent:",V.name)}}if(U.type==="content_block_delta"&&U.delta){const q=U.index,V=U.delta,K=E.current.get(`${P}-${q}`);if(K){const ye=lc.getState().activeTasks.get(P);if(ye)for(const _e of ye.messageFlow){const ve=_e.messageParts.find(Le=>Le.id===K);if(ve){if(V.type==="text_delta"&&V.text){const Le=(ve.content||"")+V.text;L(P,{...ve,content:Le}),Le.length%100<10&&console.log("🎯 [SIDECHAIN] Text accumulated:",Le.length,"chars")}else if(V.type==="thinking_delta"&&V.thinking){const Le=(ve.content||"")+V.thinking;L(P,{...ve,content:Le})}break}}}}}if(j.type==="assistant"&&j.message){const U=j.message;if(console.log("🎯 [SIDECHAIN] Processing assistant message, blocks:",U.content?.length||0),U.content&&Array.isArray(U.content))for(let q=0;q<U.content.length;q++){const V=U.content[q];V.type==="text"&&V.text?(console.log("🎯 [SIDECHAIN] Adding text from assistant:",V.text.substring(0,50)),L(P,{id:`part_${P}_text_${q}_${Date.now()}`,type:"text",content:V.text,order:q})):V.type==="thinking"&&V.thinking?L(P,{id:`part_${P}_thinking_${q}_${Date.now()}`,type:"thinking",content:V.thinking,order:q}):V.type==="tool_use"&&(L(P,{id:`part_${P}_tool_${q}_${Date.now()}`,type:"tool",toolData:{id:V.id,toolName:V.name,toolInput:V.input||{},isError:!1},order:q}),console.log("🎯 [SIDECHAIN] Added tool_use from assistant:",V.name))}}if(j.type==="user"&&j.message){const U=j.message;if(U.content&&Array.isArray(U.content))for(const q of U.content){const V=q;if(V.type==="text"){console.log("🎯 [SIDECHAIN] Skipping user text (task prompt already shown)");continue}V.type==="tool_result"&&V.tool_use_id&&console.log("🎯 [SIDECHAIN] Tool result for:",V.tool_use_id,"error:",V.is_error)}}return}if(j.type==="stream_event"&&j.event){const P=j.event;if(console.log("🌊 [STREAMING] Detected stream_event:",P.type,"Full event:",JSON.stringify(j).substring(0,200)),N.current.wasStreamProcessed=!0,P.type==="message_start"){if(M.current)console.log("🌊 [STREAMING] message_start: AI message already exists, skipping:",M.current);else{d({content:"",role:"assistant"});const U=Xe.getState();M.current=U.messages[U.messages.length-1].id,N.current.currentMessageId=M.current,N.current.isStreaming=!0,console.log("🌊 [STREAMING] message_start: Created new AI message with ID:",M.current)}return}if(P.type==="content_block_start"){const Y=P.index,U=P.content_block;if(!M.current){d({content:"",role:"assistant"});const re=Xe.getState();M.current=re.messages[re.messages.length-1].id,N.current.currentMessageId=M.current,N.current.isStreaming=!0}const q=`block-${M.current}-${Y}`,V=Date.now();if(N.current.activeBlocks.has(q)){console.warn("🌊 [STREAMING] content_block_start: Block already exists, skipping:",q);return}if(U.type==="text"){g(M.current,"");const re=Xe.getState().messages.find(Le=>Le.id===M.current),_e=re?.messageParts?.[re.messageParts.length-1]?.id,ve={blockId:q,type:"text",content:"",isComplete:!1,messageId:M.current,partId:_e,startedAt:V,lastUpdatedAt:V};N.current.activeBlocks.set(q,ve),console.log("🌊 [STREAMING] content_block_start: Initialized text block",q,"partId:",_e)}else if(U.type==="thinking"){m(M.current,"");const re=Xe.getState().messages.find(Le=>Le.id===M.current),_e=re?.messageParts?.[re.messageParts.length-1]?.id,ve={blockId:q,type:"thinking",content:"",isComplete:!1,messageId:M.current,partId:_e,startedAt:V,lastUpdatedAt:V};N.current.activeBlocks.set(q,ve),console.log("🤔 [STREAMING] content_block_start: Initialized thinking block",q,"partId:",_e)}else if(U.type==="tool_use"){if(console.log("🔧 [STREAMING] content_block_start: Processing tool_use",{toolName:U.name,claudeId:U.id,blockId:q,messageId:M.current}),U.name==="Task"){const re=t||j.sessionId||j.session_id;re&&U.id&&(console.log("🎯 [TASK] Registering Task tool for sub-agent tracking:",U.id),I(U.id,re))}const K={toolName:U.name,toolInput:{},isExecuting:!0,claudeId:U.id};try{k(M.current,K),console.log("🔧 [STREAMING] content_block_start: addToolPartToMessage completed");const re=Xe.getState();console.log("🔧 [STREAMING] content_block_start: Got store state, messages count:",re.messages.length);const ye=re.messages.find(Oe=>Oe.id===M.current);console.log("🔧 [STREAMING] content_block_start: Found current message:",!!ye,"parts count:",ye?.messageParts?.length);const _e=ye?.messageParts?.[ye.messageParts.length-1];console.log("🔧 [STREAMING] content_block_start: Latest part:",{exists:!!_e,type:_e?.type,hasToolData:!!_e?.toolData,toolDataId:_e?.toolData?.id});const ve=_e?.toolData?.id;ve||console.error("🔧 [STREAMING] content_block_start: ⚠️ partId is undefined! Latest part:",_e);const Le={blockId:q,type:"tool_use",content:"",isComplete:!1,messageId:M.current,partId:ve,startedAt:V,lastUpdatedAt:V};N.current.activeBlocks.set(q,Le),console.log("🔧 [STREAMING] content_block_start: ✅ Initialized tool_use block",U.name,"blockId:",q,"partId:",ve,"claudeId:",U.id)}catch(re){throw console.error("🔧 [STREAMING] content_block_start: ❌ Error processing tool_use:",re),re}}return}if(P.type==="content_block_delta"&&M.current){const Y=P.index,U=P.delta,q=`block-${M.current}-${Y}`,V=Date.now();if(U.type==="text_delta"&&U.text!==void 0){let K=N.current.activeBlocks.get(q);if(K)K.content+=U.text,K.lastUpdatedAt=V,console.log(`🌊 [STREAMING] content_block_delta: Accumulated text delta "${U.text}" to block ${q}, total: "${K.content.substring(0,50)}..."`);else{console.warn("🌊 [STREAMING] content_block_delta: Missing content_block_start for text block, creating fallback"),g(M.current,"");const ye=Xe.getState().messages.find(Le=>Le.id===M.current),ve=ye?.messageParts?.[ye.messageParts.length-1]?.id;K={blockId:q,type:"text",content:U.text,isComplete:!1,messageId:M.current,partId:ve,startedAt:V,lastUpdatedAt:V},N.current.activeBlocks.set(q,K),console.log(`🌊 [STREAMING] content_block_delta: Created text block ${q} (fallback) with partId: ${ve}, content: "${U.text}"`)}D(q,K.content,"text")}else if(U.type==="thinking_delta"&&U.thinking!==void 0){let K=N.current.activeBlocks.get(q);if(K)K.content+=U.thinking,K.lastUpdatedAt=V,console.log(`🤔 [STREAMING] content_block_delta: Accumulated thinking delta "${U.thinking}" to block ${q}, total: "${K.content.substring(0,50)}..."`);else{console.warn("🤔 [STREAMING] content_block_delta: Missing content_block_start for thinking block, creating fallback"),m(M.current,"");const ye=Xe.getState().messages.find(Le=>Le.id===M.current),ve=ye?.messageParts?.[ye.messageParts.length-1]?.id;K={blockId:q,type:"thinking",content:U.thinking,isComplete:!1,messageId:M.current,partId:ve,startedAt:V,lastUpdatedAt:V},N.current.activeBlocks.set(q,K),console.log(`🤔 [STREAMING] content_block_delta: Created thinking block ${q} (fallback) with partId: ${ve}, content: "${U.thinking}"`)}D(q,K.content,"thinking")}else if(U.type==="input_json_delta"){const K=U.partial_json||"";let re=N.current.activeBlocks.get(q);if(re){re.content+=K,re.lastUpdatedAt=V;const ye=re.content,_e=ye.trim();if(re.partId&&_e.endsWith("}"))try{const ve=JSON.parse(ye);v(M.current,re.partId,{toolInput:ve}),console.log(`🔧 [STREAMING] content_block_delta: Updated tool_use block ${q}, parsed complete JSON`)}catch{console.log(`🔧 [STREAMING] content_block_delta: JSON not yet complete for ${q}, length: ${ye.length}`)}}else{if(console.warn("🔧 [STREAMING] content_block_delta: Missing content_block_start for tool block, creating fallback"),!P.content_block||P.content_block.type!=="tool_use"){console.error("🔧 [STREAMING] content_block_delta: Missing content_block info for tool, cannot create fallback");return}const ye=P.content_block.name,_e=P.content_block.id;k(M.current,{toolName:ye,toolInput:{},isExecuting:!0,claudeId:_e});const Le=Xe.getState().messages.find(it=>it.id===M.current),Mt=Le?.messageParts?.[Le.messageParts.length-1]?.toolData?.id;re={blockId:q,type:"tool_use",content:K,isComplete:!1,messageId:M.current,partId:Mt,startedAt:V,lastUpdatedAt:V},N.current.activeBlocks.set(q,re),console.log("🔧 [STREAMING] content_block_delta: Created tool_use block (fallback)",ye,"blockId:",q,"partId:",Mt,"initial fragment:",K)}}return}if(P.type==="content_block_stop"&&M.current){const Y=P.index,U=`block-${M.current}-${Y}`,q=N.current.activeBlocks.get(U);if(q){q.isComplete=!0,console.log(`🌊 [STREAMING] content_block_stop: Block ${U} complete, type: ${q.type}, content length: ${q.content.length}`);const V=N.current;if(V.pendingUpdate?.blockId===U){console.log(`🌊 [STREAMING] content_block_stop: Flushing pending RAF for ${U} immediately`),V.rafId!==null&&(cancelAnimationFrame(V.rafId),V.rafId=null);const K=V.pendingUpdate;q.partId&&(K.type==="text"?b(M.current,q.partId,K.content):K.type==="thinking"&&y(M.current,q.partId,K.content),console.log(`🌊 [STREAMING] content_block_stop: Flushed ${K.type} content for ${U}, length: ${K.content.length}`)),V.pendingUpdate=null}else if((q.type==="text"||q.type==="thinking")&&q.partId)console.log(`🌊 [STREAMING] content_block_stop: Final check - ensuring ${q.type} content saved, length: ${q.content.length}`),q.type==="text"?b(M.current,q.partId,q.content):q.type==="thinking"&&y(M.current,q.partId,q.content);else if(q.type==="tool_use"&&q.partId&&q.content){console.log(`🔧 [STREAMING] content_block_stop: Finalizing tool_use block ${U}, accumulated JSON length: ${q.content.length}`);try{const K=JSON.parse(q.content);v(M.current,q.partId,{toolInput:K}),console.log(`🔧 [STREAMING] content_block_stop: Successfully parsed final tool input for ${U}`)}catch(K){console.error(`🔧 [STREAMING] content_block_stop: Failed to parse final tool JSON for ${U}:`,K,"content:",q.content.substring(0,200))}}N.current.activeBlocks.delete(U),console.log(`🌊 [STREAMING] content_block_stop: Cleaned up block ${U}`)}return}if(P.type==="message_delta"){console.log("🌊 [STREAMING] message_delta:",P.delta);return}if(P.type==="message_stop"){if(N.current.isStreaming){console.log("🌊 [STREAMING] message_stop: Finalizing all streaming blocks, count:",N.current.activeBlocks.size);const Y=M.current,U=N.current;if(U.pendingUpdate&&U.rafId!==null){console.log(`🌊 [STREAMING] message_stop: Flushing pending RAF for ${U.pendingUpdate.blockId}`),cancelAnimationFrame(U.rafId),U.rafId=null;const q=U.pendingUpdate,V=U.activeBlocks.get(q.blockId);V&&V.partId&&Y&&(q.type==="text"?b(Y,V.partId,q.content):q.type==="thinking"&&y(Y,V.partId,q.content),console.log(`🌊 [STREAMING] message_stop: Flushed ${q.type} content, length: ${q.content.length}`)),U.pendingUpdate=null}Y&&U.activeBlocks.forEach(q=>{q.isComplete=!0,(q.type==="text"||q.type==="thinking")&&q.partId?(console.log(`🌊 [STREAMING] message_stop: Final check for ${q.type} block ${q.blockId}, length: ${q.content.length}`),q.type==="text"?b(Y,q.partId,q.content):q.type==="thinking"&&y(Y,q.partId,q.content)):q.partId||console.error(`❌ [STREAMING] message_stop: Missing partId for block ${q.blockId}, content LOST:`,q.content.substring(0,100))}),U.isStreaming=!1,U.currentMessageId=null,U.activeBlocks.clear(),console.log("🌊 [STREAMING] message_stop: All blocks finalized and cleared")}return}console.warn("🌊 [STREAMING] Unknown stream_event type:",P.type);return}if(j.type==="error"){console.error("Claude Code SDK error:",j),c(!1),a(!1),i.current=null;let P="";j.subtype&&j.message?(console.log("📋 Processing structured error with subtype:",j.subtype),P=`❌ **${{error_during_execution:h("agentChat.executionError"),error_max_turns:h("agentChat.maxTurnsReached"),error_max_budget_usd:h("agentChat.maxBudgetReached"),error_max_structured_output_retries:h("agentChat.maxRetriesReached")}[j.subtype]||h("agentChat.processingError")}**
|
|
3
3
|
|
|
4
4
|
${j.message}`,P+=`
|
|
5
5
|
|
|
@@ -345,8 +345,8 @@ Please report this to https://github.com/markedjs/marked.`,t){let i="<p>An error
|
|
|
345
345
|
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 f={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&&(f.x=t.x,f.y=t.y),u===0&&(f.x=t.x),c===0&&(f.y=t.y),X.debug(`abc89 top/bottom calc, Q ${c}, q ${h}, R ${u}, r ${o}`,f),f}else{r.x<t.x?o=t.x-a-n:o=n-a-t.x;let h=c*o/u,f=r.x<t.x?r.x+u-o:r.x-u+o,d=r.y<t.y?r.y+h:r.y-h;return X.debug(`sides calc abc89, Q ${c}, q ${h}, R ${u}, r ${o}`,{_x:f,_y:d}),o===0&&(f=t.x,d=t.y),u===0&&(f=t.x),c===0&&(d=t.y),{x:f,y:d}}},"intersection"),vp=x((e,t)=>{X.warn("abc88 cutPathAtIntersect",e,t);let r=[],n=e[0],i=!1;return e.forEach(s=>{if(X.info("abc88 checking point",s,t),!O5(t,s)&&!i){const a=z5(t,n,s);X.debug("abc88 inside",s,n,a),X.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)?X.warn("abc88 no intersect",a,r):r.push(a),i=!0}else X.warn("abc88 outside",s,n),n=s,i||r.push(s)}),X.debug("returning points",r),r},"cutPathAtIntersect");function Ok(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(Ok,"extractCornerPoints");var Cp=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"),H5=x(function(e){const{cornerPointPositions:t}=Ok(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=Cp(i,a,5),l=Cp(s,a,5),c=l.x-o.x,u=l.y-o.y;r.push(o);const h=Math.sqrt(2)*2;let f={x:a.x,y:a.y};if(Math.abs(s.x-i.x)>10&&Math.abs(s.y-i.y)>=10){X.debug("Corner point fixing",Math.abs(s.x-i.x),Math.abs(s.y-i.y));const d=5;a.x===o.x?f={x:c<0?o.x-d+h:o.x+d-h,y:u<0?o.y-h:o.y+h}:f={x:c<0?o.x-h:o.x+h,y:u<0?o.y-d+h:o.y+d-h}}else X.debug("Corner point skipping fixing",Math.abs(s.x-i.x),Math.abs(s.y-i.y));r.push(f,l)}else r.push(e[n]);return r},"fixCorners"),W5=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"),q5=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 f=s;const d=[];for(const I in t.cssCompiledStyles)xy(I)||d.push(t.cssCompiledStyles[I]);X.debug("UIO intersect check",t.points,f.x,h.x),f.intersect&&h.intersect&&!o&&(c=c.slice(1,t.points.length-1),c.unshift(h.intersect(c[0])),X.debug("Last point UIO",t.start,"-->",t.end,c[c.length-1],f,f.intersect(c[c.length-1])),c.push(f.intersect(c[c.length-1])));const g=btoa(JSON.stringify(c));t.toCluster&&(X.info("to cluster abc88",r.get(t.toCluster)),c=vp(t.points,r.get(t.toCluster).node),u=!0),t.fromCluster&&(X.debug("from cluster abc88",r.get(t.fromCluster),JSON.stringify(c,null,2)),c=vp(c.reverse(),r.get(t.fromCluster).node).reverse(),u=!0);let m=c.filter(I=>!Number.isNaN(I.y));m=H5(m);let b=$a;switch(b=ro,t.curve){case"linear":b=ro;break;case"basis":b=$a;break;case"cardinal":b=w0;break;case"bumpX":b=m0;break;case"bumpY":b=x0;break;case"catmullRom":b=C0;break;case"monotoneX":b=M0;break;case"monotoneY":b=N0;break;case"natural":b=I0;break;case"step":b=$0;break;case"stepAfter":b=B0;break;case"stepBefore":b=j0;break;default:b=$a}const{x:y,y:k}=H$(t),v=_I().x(y).y(k).curve(b);let C;switch(t.thickness){case"normal":C="edge-thickness-normal";break;case"thick":C="edge-thickness-thick";break;case"invisible":C="edge-thickness-invisible";break;default:C="edge-thickness-normal"}switch(t.pattern){case"solid":C+=" edge-pattern-solid";break;case"dotted":C+=" edge-pattern-dotted";break;case"dashed":C+=" edge-pattern-dashed";break;default:C+=" edge-pattern-solid"}let S,w=t.curve==="rounded"?zk(Hk(m,t),5):v(m);const T=Array.isArray(t.style)?t.style:[t.style];let $=T.find(I=>I?.startsWith("stroke:")),M=!1;if(t.look==="handDrawn"){const I=oe.svg(e);Object.assign([],m);const F=I.path(w,{roughness:.3,seed:l});C+=" transition",S=$e(F).select("path").attr("id",t.id).attr("class"," "+C+(t.classes?" "+t.classes:"")).attr("style",T?T.reduce((B,H)=>B+";"+H,""):"");let L=S.attr("d");S.attr("d",L),e.node().appendChild(S.node())}else{const I=d.join(";"),F=T?T.reduce((te,A)=>te+A+";",""):"";let L="";t.animate&&(L=" edge-animation-fast"),t.animation&&(L=" edge-animation-"+t.animation);const B=(I?I+";"+F+";":F)+";"+(T?T.reduce((te,A)=>te+";"+A,""):"");S=e.append("path").attr("d",w).attr("id",t.id).attr("class"," "+C+(t.classes?" "+t.classes:"")+(L??"")).attr("style",B),$=B.match(/stroke:([^;]+)/)?.[1],M=t.animate===!0||!!t.animation||I.includes("animation");const H=S.node(),Q=typeof H.getTotalLength=="function"?H.getTotalLength():0,_=Of[t.arrowTypeStart]||0,j=Of[t.arrowTypeEnd]||0;if(t.look==="neo"&&!M){const A=`stroke-dasharray: ${t.pattern==="dotted"||t.pattern==="dashed"?W5(Q,_,j):`0 ${_} ${Q-_-j} ${j}`}; stroke-dashoffset: 0;`;S.attr("style",A+S.attr("style"))}}S.attr("data-edge",!0),S.attr("data-et","edge"),S.attr("data-id",t.id),S.attr("data-points",g),t.showPoints&&m.forEach(I=>{e.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",I.x).attr("cy",I.y)});let E="";(Pe().flowchart.arrowMarkerAbsolute||Pe().state.arrowMarkerAbsolute)&&(E=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,E=E.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),X.info("arrowTypeStart",t.arrowTypeStart),X.info("arrowTypeEnd",t.arrowTypeEnd),D5(S,t,E,a,n,$);const N=Math.floor(c.length/2),D=c[N];cr.isLabelCoordinateInPath(D,S.attr("d"))||(u=!0);let R={};return u&&(R.updatedPath=c),R.originalPath=t.points,R},"insertEdge");function zk(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,f=l.y-a.y,d=Math.hypot(c,u),g=Math.hypot(h,f);if(d<i||g<i){r+=`L${a.x},${a.y}`;continue}const m=c/d,b=u/d,y=h/g,k=f/g,v=m*y+b*k,C=Math.max(-1,Math.min(1,v)),S=Math.acos(C);if(S<i||Math.abs(Math.PI-S)<i){r+=`L${a.x},${a.y}`;continue}const w=Math.min(t/Math.sin(S/2),d/2,g/2),T=a.x-m*w,$=a.y-b*w,M=a.x+y*w,E=a.y+k*w;r+=`L${T},${$}`,r+=`Q${a.x},${a.y} ${M},${E}`}}return r}x(zk,"generateRoundedPath");function uu(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(uu,"calculateDeltaAndAngle");function Hk(e,t){const r=e.map(i=>({...i}));if(e.length>=2&&vt[t.arrowTypeStart]){const i=vt[t.arrowTypeStart],s=e[0],a=e[1],{angle:o}=uu(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&&vt[t.arrowTypeEnd]){const i=vt[t.arrowTypeEnd],s=e[n-1],a=e[n-2],{angle:o}=uu(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(Hk,"applyMarkerOffsetsToPoints");var U5=x((e,t,r,n)=>{t.forEach(i=>{o4[i](e,r,n)})},"insertMarkers"),V5=x((e,t,r)=>{X.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"),G5=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"),Y5=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"),X5=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"),Q5=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"),K5=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"),Z5=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"),J5=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"),e4=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"),t4=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"),r4=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"),n4=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"),i4=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"),s4=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
|
|
346
346
|
L20,10
|
|
347
347
|
M20,10
|
|
348
|
-
L0,20`)},"requirement_arrow"),a4=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"),o4={extension:V5,composition:G5,aggregation:Y5,dependency:X5,lollipop:Q5,point:K5,circle:Z5,cross:J5,barb:e4,only_one:t4,zero_or_one:r4,one_or_more:n4,zero_or_more:i4,requirement_arrow:s4,requirement_contains:a4},l4=U5,c4={common:Ci,getConfig:St,insertCluster:x5,insertEdge:q5,insertEdgeLabel:F5,insertMarkers:l4,insertNode:Rk,interpolateToCurve:_h,labelHelper:xe,log:X,positionEdgeLabel:R5},Ds={},Wk=x(e=>{for(const t of e)Ds[t.name]=t},"registerLayoutLoaders"),u4=x(()=>{Wk([{name:"dagre",loader:x(async()=>await Re(()=>import("./dagre-6UL2VRFP-S5vHkFwY.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 Re(()=>import("./cose-bilkent-S5V4N54A-CSV8iDOr.js"),__vite__mapDeps([23,24,7,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")}])},"registerDefaultLayoutLoaders");u4();var A6=x(async(e,t)=>{if(!(e.layoutAlgorithm in Ds))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);const r=Ds[e.layoutAlgorithm];return(await r.loader()).render(e,t,c4,{algorithm:r.algorithm})},"render"),M6=x((e="",{fallback:t="dagre"}={})=>{if(e in Ds)return e;if(t in Ds)return X.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"),qk="comm",Uk="rule",Vk="decl",h4="@import",d4="@namespace",f4="@keyframes",p4="@layer",Gk=Math.abs,Uh=String.fromCharCode;function Yk(e){return e.trim()}function Fa(e,t,r){return e.replace(t,r)}function g4(e,t,r){return e.indexOf(t,r)}function ti(e,t){return e.charCodeAt(t)|0}function bi(e,t,r){return e.slice(t,r)}function kr(e){return e.length}function m4(e){return e.length}function ba(e,t){return t.push(e),e}var sl=1,ki=1,Xk=0,rr=0,nt=0,Ai="";function Vh(e,t,r,n,i,s,a,o){return{value:e,root:t,parent:r,type:n,props:i,children:s,line:sl,column:ki,length:a,return:"",siblings:o}}function x4(){return nt}function y4(){return nt=rr>0?ti(Ai,--rr):0,ki--,nt===10&&(ki=1,sl--),nt}function dr(){return nt=rr<Xk?ti(Ai,rr++):0,ki++,nt===10&&(ki=1,sl++),nt}function Kr(){return ti(Ai,rr)}function Ra(){return rr}function al(e,t){return bi(Ai,e,t)}function Ps(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 b4(e){return sl=ki=1,Xk=kr(Ai=e),rr=0,[]}function k4(e){return Ai="",e}function Kl(e){return Yk(al(rr-1,hu(e===91?e+2:e===40?e+1:e)))}function w4(e){for(;(nt=Kr())&&nt<33;)dr();return Ps(e)>2||Ps(nt)>3?"":" "}function v4(e,t){for(;--t&&dr()&&!(nt<48||nt>102||nt>57&&nt<65||nt>70&&nt<97););return al(e,Ra()+(t<6&&Kr()==32&&dr()==32))}function hu(e){for(;dr();)switch(nt){case e:return rr;case 34:case 39:e!==34&&e!==39&&hu(nt);break;case 40:e===41&&hu(e);break;case 92:dr();break}return rr}function C4(e,t){for(;dr()&&e+nt!==57;)if(e+nt===84&&Kr()===47)break;return"/*"+al(t,rr-1)+"*"+Uh(e===47?e:dr())}function S4(e){for(;!Ps(Kr());)dr();return al(e,rr)}function _4(e){return k4(Oa("",null,null,null,[""],e=b4(e),0,[0],e))}function Oa(e,t,r,n,i,s,a,o,l){for(var c=0,u=0,h=a,f=0,d=0,g=0,m=1,b=1,y=1,k=0,v="",C=i,S=s,w=n,T=v;b;)switch(g=k,k=dr()){case 40:if(g!=108&&ti(T,h-1)==58){g4(T+=Fa(Kl(k),"&","&\f"),"&\f",Gk(c?o[c-1]:0))!=-1&&(y=-1);break}case 34:case 39:case 91:T+=Kl(k);break;case 9:case 10:case 13:case 32:T+=w4(g);break;case 92:T+=v4(Ra()-1,7);continue;case 47:switch(Kr()){case 42:case 47:ba(T4(C4(dr(),Ra()),t,r,l),l),(Ps(g||1)==5||Ps(Kr()||1)==5)&&kr(T)&&bi(T,-1,void 0)!==" "&&(T+=" ");break;default:T+="/"}break;case 123*m:o[c++]=kr(T)*y;case 125*m:case 59:case 0:switch(k){case 0:case 125:b=0;case 59+u:y==-1&&(T=Fa(T,/\f/g,"")),d>0&&(kr(T)-h||m===0&&g===47)&&ba(d>32?_p(T+";",n,r,h-1,l):_p(Fa(T," ","")+";",n,r,h-2,l),l);break;case 59:T+=";";default:if(ba(w=Sp(T,t,r,c,u,i,o,v,C=[],S=[],h,s),s),k===123)if(u===0)Oa(T,t,w,w,C,s,h,o,S);else{switch(f){case 99:if(ti(T,3)===110)break;case 108:if(ti(T,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Oa(e,w,w,n&&ba(Sp(e,w,w,0,0,i,o,v,i,C=[],h,S),S),i,S,h,o,n?C:S):Oa(T,w,w,w,[""],S,0,o,S)}}c=u=d=0,m=y=1,v=T="",h=a;break;case 58:h=1+kr(T),d=g;default:if(m<1){if(k==123)--m;else if(k==125&&m++==0&&y4()==125)continue}switch(T+=Uh(k),k*m){case 38:y=u>0?1:(T+="\f",-1);break;case 44:o[c++]=(kr(T)-1)*y,y=1;break;case 64:Kr()===45&&(T+=Kl(dr())),f=Kr(),u=h=kr(v=T+=S4(Ra())),k++;break;case 45:g===45&&kr(T)==2&&(m=0)}}return s}function Sp(e,t,r,n,i,s,a,o,l,c,u,h){for(var f=i-1,d=i===0?s:[""],g=m4(d),m=0,b=0,y=0;m<n;++m)for(var k=0,v=bi(e,f+1,f=Gk(b=a[m])),C=e;k<g;++k)(C=Yk(b>0?d[k]+" "+v:Fa(v,/&\f/g,d[k])))&&(l[y++]=C);return Vh(e,t,r,i===0?Uk:o,l,c,u,h)}function T4(e,t,r,n){return Vh(e,t,r,qk,Uh(x4()),bi(e,2,-2),0,n)}function _p(e,t,r,n,i){return Vh(e,t,r,Vk,bi(e,0,n),bi(e,n+1,-1),n,i)}function du(e,t){for(var r="",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||"";return r}function E4(e,t,r,n){switch(e.type){case p4:if(e.children.length)break;case h4:case d4:case Vk:return e.return=e.return||e.value;case qk:return"";case f4:return e.return=e.value+"{"+du(e.children,n)+"}";case Uk:if(!kr(e.value=e.props.join(",")))return""}return kr(r=du(e.children,n))?e.return=e.value+"{"+r+"}":""}var A4=wy(Object.keys,Object),M4=Object.prototype,N4=M4.hasOwnProperty;function L4(e){if(!Xo(e))return A4(e);var t=[];for(var r in Object(e))N4.call(e,r)&&r!="constructor"&&t.push(r);return t}var fu=On(Tr,"DataView"),pu=On(Tr,"Promise"),gu=On(Tr,"Set"),mu=On(Tr,"WeakMap"),Tp="[object Map]",I4="[object Object]",Ep="[object Promise]",Ap="[object Set]",Mp="[object WeakMap]",Np="[object DataView]",$4=Rn(fu),j4=Rn(js),B4=Rn(pu),D4=Rn(gu),P4=Rn(mu),kn=_i;(fu&&kn(new fu(new ArrayBuffer(1)))!=Np||js&&kn(new js)!=Tp||pu&&kn(pu.resolve())!=Ep||gu&&kn(new gu)!=Ap||mu&&kn(new mu)!=Mp)&&(kn=function(e){var t=_i(e),r=t==I4?e.constructor:void 0,n=r?Rn(r):"";if(n)switch(n){case $4:return Np;case j4:return Tp;case B4:return Ep;case D4:return Ap;case P4:return Mp}return t});var F4="[object Map]",R4="[object Set]",O4=Object.prototype,z4=O4.hasOwnProperty;function Lp(e){if(e==null)return!0;if(Qo(e)&&(mo(e)||typeof e=="string"||typeof e.splice=="function"||Ch(e)||Sh(e)||go(e)))return!e.length;var t=kn(e);if(t==F4||t==R4)return!e.size;if(Xo(e))return!L4(e).length;for(var r in e)if(z4.call(e,r))return!1;return!0}var Qk="c4",H4=x(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),W4=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./c4Diagram-YG6GDRKO-B1tJjciL.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:Qk,diagram:e}},"loader"),q4={id:Qk,detector:H4,loader:W4},U4=q4,Kk="flowchart",V4=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),G4=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-PsSk5-Xf.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:Kk,diagram:e}},"loader"),Y4={id:Kk,detector:V4,loader:G4},X4=Y4,Zk="flowchart-v2",Q4=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"),K4=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-PsSk5-Xf.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:Zk,diagram:e}},"loader"),Z4={id:Zk,detector:Q4,loader:K4},J4=Z4,Jk="er",eP=x(e=>/^\s*erDiagram/.test(e),"detector"),tP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./erDiagram-Q2GNP2WA-DEhlyUw1.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:Jk,diagram:e}},"loader"),rP={id:Jk,detector:eP,loader:tP},nP=rP,e1="gitGraph",iP=x(e=>/^\s*gitGraph/.test(e),"detector"),sP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./gitGraphDiagram-NY62KEGX-CUq51Mt1.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:e1,diagram:e}},"loader"),aP={id:e1,detector:iP,loader:sP},oP=aP,t1="gantt",lP=x(e=>/^\s*gantt/.test(e),"detector"),cP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./ganttDiagram-LVOFAZNH-PfD-vtKp.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:t1,diagram:e}},"loader"),uP={id:t1,detector:lP,loader:cP},hP=uP,r1="info",dP=x(e=>/^\s*info/.test(e),"detector"),fP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./infoDiagram-F6ZHWCRC-BTR1hJCm.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:r1,diagram:e}},"loader"),pP={id:r1,detector:dP,loader:fP},n1="pie",gP=x(e=>/^\s*pie/.test(e),"detector"),mP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./pieDiagram-ADFJNKIX-Bqcukh_c.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:n1,diagram:e}},"loader"),xP={id:n1,detector:gP,loader:mP},i1="quadrantChart",yP=x(e=>/^\s*quadrantChart/.test(e),"detector"),bP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./quadrantDiagram-AYHSOK5B-C_uML1JV.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:i1,diagram:e}},"loader"),kP={id:i1,detector:yP,loader:bP},wP=kP,s1="xychart",vP=x(e=>/^\s*xychart(-beta)?/.test(e),"detector"),CP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./xychartDiagram-PRI3JC2R-C7BNHmgo.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:s1,diagram:e}},"loader"),SP={id:s1,detector:vP,loader:CP},_P=SP,a1="requirement",TP=x(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),EP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./requirementDiagram-UZGBJVZJ-QUbH9ShO.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:a1,diagram:e}},"loader"),AP={id:a1,detector:TP,loader:EP},MP=AP,o1="sequence",NP=x(e=>/^\s*sequenceDiagram/.test(e),"detector"),LP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./sequenceDiagram-WL72ISMW-DNsDMjTd.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:o1,diagram:e}},"loader"),IP={id:o1,detector:NP,loader:LP},$P=IP,l1="class",jP=x((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),BP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./classDiagram-2ON5EDUG-PrDkNsdA.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:l1,diagram:e}},"loader"),DP={id:l1,detector:jP,loader:BP},PP=DP,c1="classDiagram",FP=x((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),RP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./classDiagram-v2-WZHVMYZB-PrDkNsdA.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:c1,diagram:e}},"loader"),OP={id:c1,detector:FP,loader:RP},zP=OP,u1="state",HP=x((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),WP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./stateDiagram-FKZM4ZOC-BA_Narwp.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:u1,diagram:e}},"loader"),qP={id:u1,detector:HP,loader:WP},UP=qP,h1="stateDiagram",VP=x((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),GP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./stateDiagram-v2-4FDKWEC3-Cy5am68v.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:h1,diagram:e}},"loader"),YP={id:h1,detector:VP,loader:GP},XP=YP,d1="journey",QP=x(e=>/^\s*journey/.test(e),"detector"),KP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./journeyDiagram-XKPGCS4Q-CTyau8Sh.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:d1,diagram:e}},"loader"),ZP={id:d1,detector:QP,loader:KP},JP=ZP,eF=x((e,t,r)=>{X.debug(`rendering svg for syntax error
|
|
349
|
-
`);const n=jI(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Rm(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"),f1={draw:eF},tF=f1,rF={db:{},renderer:f1,parser:{parse:x(()=>{},"parse")}},nF=rF,p1="flowchart-elk",iF=x((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),sF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-
|
|
348
|
+
L0,20`)},"requirement_arrow"),a4=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"),o4={extension:V5,composition:G5,aggregation:Y5,dependency:X5,lollipop:Q5,point:K5,circle:Z5,cross:J5,barb:e4,only_one:t4,zero_or_one:r4,one_or_more:n4,zero_or_more:i4,requirement_arrow:s4,requirement_contains:a4},l4=U5,c4={common:Ci,getConfig:St,insertCluster:x5,insertEdge:q5,insertEdgeLabel:F5,insertMarkers:l4,insertNode:Rk,interpolateToCurve:_h,labelHelper:xe,log:X,positionEdgeLabel:R5},Ds={},Wk=x(e=>{for(const t of e)Ds[t.name]=t},"registerLayoutLoaders"),u4=x(()=>{Wk([{name:"dagre",loader:x(async()=>await Re(()=>import("./dagre-6UL2VRFP-DR9x77Xf.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 Re(()=>import("./cose-bilkent-S5V4N54A-CnpfmL-Y.js"),__vite__mapDeps([23,24,7,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")}])},"registerDefaultLayoutLoaders");u4();var A6=x(async(e,t)=>{if(!(e.layoutAlgorithm in Ds))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);const r=Ds[e.layoutAlgorithm];return(await r.loader()).render(e,t,c4,{algorithm:r.algorithm})},"render"),M6=x((e="",{fallback:t="dagre"}={})=>{if(e in Ds)return e;if(t in Ds)return X.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"),qk="comm",Uk="rule",Vk="decl",h4="@import",d4="@namespace",f4="@keyframes",p4="@layer",Gk=Math.abs,Uh=String.fromCharCode;function Yk(e){return e.trim()}function Fa(e,t,r){return e.replace(t,r)}function g4(e,t,r){return e.indexOf(t,r)}function ti(e,t){return e.charCodeAt(t)|0}function bi(e,t,r){return e.slice(t,r)}function kr(e){return e.length}function m4(e){return e.length}function ba(e,t){return t.push(e),e}var sl=1,ki=1,Xk=0,rr=0,nt=0,Ai="";function Vh(e,t,r,n,i,s,a,o){return{value:e,root:t,parent:r,type:n,props:i,children:s,line:sl,column:ki,length:a,return:"",siblings:o}}function x4(){return nt}function y4(){return nt=rr>0?ti(Ai,--rr):0,ki--,nt===10&&(ki=1,sl--),nt}function dr(){return nt=rr<Xk?ti(Ai,rr++):0,ki++,nt===10&&(ki=1,sl++),nt}function Kr(){return ti(Ai,rr)}function Ra(){return rr}function al(e,t){return bi(Ai,e,t)}function Ps(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 b4(e){return sl=ki=1,Xk=kr(Ai=e),rr=0,[]}function k4(e){return Ai="",e}function Kl(e){return Yk(al(rr-1,hu(e===91?e+2:e===40?e+1:e)))}function w4(e){for(;(nt=Kr())&&nt<33;)dr();return Ps(e)>2||Ps(nt)>3?"":" "}function v4(e,t){for(;--t&&dr()&&!(nt<48||nt>102||nt>57&&nt<65||nt>70&&nt<97););return al(e,Ra()+(t<6&&Kr()==32&&dr()==32))}function hu(e){for(;dr();)switch(nt){case e:return rr;case 34:case 39:e!==34&&e!==39&&hu(nt);break;case 40:e===41&&hu(e);break;case 92:dr();break}return rr}function C4(e,t){for(;dr()&&e+nt!==57;)if(e+nt===84&&Kr()===47)break;return"/*"+al(t,rr-1)+"*"+Uh(e===47?e:dr())}function S4(e){for(;!Ps(Kr());)dr();return al(e,rr)}function _4(e){return k4(Oa("",null,null,null,[""],e=b4(e),0,[0],e))}function Oa(e,t,r,n,i,s,a,o,l){for(var c=0,u=0,h=a,f=0,d=0,g=0,m=1,b=1,y=1,k=0,v="",C=i,S=s,w=n,T=v;b;)switch(g=k,k=dr()){case 40:if(g!=108&&ti(T,h-1)==58){g4(T+=Fa(Kl(k),"&","&\f"),"&\f",Gk(c?o[c-1]:0))!=-1&&(y=-1);break}case 34:case 39:case 91:T+=Kl(k);break;case 9:case 10:case 13:case 32:T+=w4(g);break;case 92:T+=v4(Ra()-1,7);continue;case 47:switch(Kr()){case 42:case 47:ba(T4(C4(dr(),Ra()),t,r,l),l),(Ps(g||1)==5||Ps(Kr()||1)==5)&&kr(T)&&bi(T,-1,void 0)!==" "&&(T+=" ");break;default:T+="/"}break;case 123*m:o[c++]=kr(T)*y;case 125*m:case 59:case 0:switch(k){case 0:case 125:b=0;case 59+u:y==-1&&(T=Fa(T,/\f/g,"")),d>0&&(kr(T)-h||m===0&&g===47)&&ba(d>32?_p(T+";",n,r,h-1,l):_p(Fa(T," ","")+";",n,r,h-2,l),l);break;case 59:T+=";";default:if(ba(w=Sp(T,t,r,c,u,i,o,v,C=[],S=[],h,s),s),k===123)if(u===0)Oa(T,t,w,w,C,s,h,o,S);else{switch(f){case 99:if(ti(T,3)===110)break;case 108:if(ti(T,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Oa(e,w,w,n&&ba(Sp(e,w,w,0,0,i,o,v,i,C=[],h,S),S),i,S,h,o,n?C:S):Oa(T,w,w,w,[""],S,0,o,S)}}c=u=d=0,m=y=1,v=T="",h=a;break;case 58:h=1+kr(T),d=g;default:if(m<1){if(k==123)--m;else if(k==125&&m++==0&&y4()==125)continue}switch(T+=Uh(k),k*m){case 38:y=u>0?1:(T+="\f",-1);break;case 44:o[c++]=(kr(T)-1)*y,y=1;break;case 64:Kr()===45&&(T+=Kl(dr())),f=Kr(),u=h=kr(v=T+=S4(Ra())),k++;break;case 45:g===45&&kr(T)==2&&(m=0)}}return s}function Sp(e,t,r,n,i,s,a,o,l,c,u,h){for(var f=i-1,d=i===0?s:[""],g=m4(d),m=0,b=0,y=0;m<n;++m)for(var k=0,v=bi(e,f+1,f=Gk(b=a[m])),C=e;k<g;++k)(C=Yk(b>0?d[k]+" "+v:Fa(v,/&\f/g,d[k])))&&(l[y++]=C);return Vh(e,t,r,i===0?Uk:o,l,c,u,h)}function T4(e,t,r,n){return Vh(e,t,r,qk,Uh(x4()),bi(e,2,-2),0,n)}function _p(e,t,r,n,i){return Vh(e,t,r,Vk,bi(e,0,n),bi(e,n+1,-1),n,i)}function du(e,t){for(var r="",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||"";return r}function E4(e,t,r,n){switch(e.type){case p4:if(e.children.length)break;case h4:case d4:case Vk:return e.return=e.return||e.value;case qk:return"";case f4:return e.return=e.value+"{"+du(e.children,n)+"}";case Uk:if(!kr(e.value=e.props.join(",")))return""}return kr(r=du(e.children,n))?e.return=e.value+"{"+r+"}":""}var A4=wy(Object.keys,Object),M4=Object.prototype,N4=M4.hasOwnProperty;function L4(e){if(!Xo(e))return A4(e);var t=[];for(var r in Object(e))N4.call(e,r)&&r!="constructor"&&t.push(r);return t}var fu=On(Tr,"DataView"),pu=On(Tr,"Promise"),gu=On(Tr,"Set"),mu=On(Tr,"WeakMap"),Tp="[object Map]",I4="[object Object]",Ep="[object Promise]",Ap="[object Set]",Mp="[object WeakMap]",Np="[object DataView]",$4=Rn(fu),j4=Rn(js),B4=Rn(pu),D4=Rn(gu),P4=Rn(mu),kn=_i;(fu&&kn(new fu(new ArrayBuffer(1)))!=Np||js&&kn(new js)!=Tp||pu&&kn(pu.resolve())!=Ep||gu&&kn(new gu)!=Ap||mu&&kn(new mu)!=Mp)&&(kn=function(e){var t=_i(e),r=t==I4?e.constructor:void 0,n=r?Rn(r):"";if(n)switch(n){case $4:return Np;case j4:return Tp;case B4:return Ep;case D4:return Ap;case P4:return Mp}return t});var F4="[object Map]",R4="[object Set]",O4=Object.prototype,z4=O4.hasOwnProperty;function Lp(e){if(e==null)return!0;if(Qo(e)&&(mo(e)||typeof e=="string"||typeof e.splice=="function"||Ch(e)||Sh(e)||go(e)))return!e.length;var t=kn(e);if(t==F4||t==R4)return!e.size;if(Xo(e))return!L4(e).length;for(var r in e)if(z4.call(e,r))return!1;return!0}var Qk="c4",H4=x(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),W4=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./c4Diagram-YG6GDRKO-BNJSAXcg.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:Qk,diagram:e}},"loader"),q4={id:Qk,detector:H4,loader:W4},U4=q4,Kk="flowchart",V4=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),G4=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-HAAlzNbq.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:Kk,diagram:e}},"loader"),Y4={id:Kk,detector:V4,loader:G4},X4=Y4,Zk="flowchart-v2",Q4=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"),K4=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-HAAlzNbq.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:Zk,diagram:e}},"loader"),Z4={id:Zk,detector:Q4,loader:K4},J4=Z4,Jk="er",eP=x(e=>/^\s*erDiagram/.test(e),"detector"),tP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./erDiagram-Q2GNP2WA-BX1DpOGx.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:Jk,diagram:e}},"loader"),rP={id:Jk,detector:eP,loader:tP},nP=rP,e1="gitGraph",iP=x(e=>/^\s*gitGraph/.test(e),"detector"),sP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./gitGraphDiagram-NY62KEGX-CIPmSp43.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:e1,diagram:e}},"loader"),aP={id:e1,detector:iP,loader:sP},oP=aP,t1="gantt",lP=x(e=>/^\s*gantt/.test(e),"detector"),cP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./ganttDiagram-LVOFAZNH-BqzWexqa.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:t1,diagram:e}},"loader"),uP={id:t1,detector:lP,loader:cP},hP=uP,r1="info",dP=x(e=>/^\s*info/.test(e),"detector"),fP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./infoDiagram-F6ZHWCRC-Pn4yNWrF.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:r1,diagram:e}},"loader"),pP={id:r1,detector:dP,loader:fP},n1="pie",gP=x(e=>/^\s*pie/.test(e),"detector"),mP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./pieDiagram-ADFJNKIX-BcoaAI-L.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:n1,diagram:e}},"loader"),xP={id:n1,detector:gP,loader:mP},i1="quadrantChart",yP=x(e=>/^\s*quadrantChart/.test(e),"detector"),bP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./quadrantDiagram-AYHSOK5B-D-DwcoSd.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:i1,diagram:e}},"loader"),kP={id:i1,detector:yP,loader:bP},wP=kP,s1="xychart",vP=x(e=>/^\s*xychart(-beta)?/.test(e),"detector"),CP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./xychartDiagram-PRI3JC2R-ByBTDWE2.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:s1,diagram:e}},"loader"),SP={id:s1,detector:vP,loader:CP},_P=SP,a1="requirement",TP=x(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),EP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./requirementDiagram-UZGBJVZJ-DbQCpx77.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:a1,diagram:e}},"loader"),AP={id:a1,detector:TP,loader:EP},MP=AP,o1="sequence",NP=x(e=>/^\s*sequenceDiagram/.test(e),"detector"),LP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./sequenceDiagram-WL72ISMW-BdzICjxO.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:o1,diagram:e}},"loader"),IP={id:o1,detector:NP,loader:LP},$P=IP,l1="class",jP=x((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),BP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./classDiagram-2ON5EDUG-aUQHFsTA.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:l1,diagram:e}},"loader"),DP={id:l1,detector:jP,loader:BP},PP=DP,c1="classDiagram",FP=x((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),RP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./classDiagram-v2-WZHVMYZB-aUQHFsTA.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:c1,diagram:e}},"loader"),OP={id:c1,detector:FP,loader:RP},zP=OP,u1="state",HP=x((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),WP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./stateDiagram-FKZM4ZOC-CYY-uUvJ.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:u1,diagram:e}},"loader"),qP={id:u1,detector:HP,loader:WP},UP=qP,h1="stateDiagram",VP=x((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),GP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./stateDiagram-v2-4FDKWEC3-Dh2Kvomq.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:h1,diagram:e}},"loader"),YP={id:h1,detector:VP,loader:GP},XP=YP,d1="journey",QP=x(e=>/^\s*journey/.test(e),"detector"),KP=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./journeyDiagram-XKPGCS4Q-BfzTomS0.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:d1,diagram:e}},"loader"),ZP={id:d1,detector:QP,loader:KP},JP=ZP,eF=x((e,t,r)=>{X.debug(`rendering svg for syntax error
|
|
349
|
+
`);const n=jI(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Rm(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"),f1={draw:eF},tF=f1,rF={db:{},renderer:f1,parser:{parse:x(()=>{},"parse")}},nF=rF,p1="flowchart-elk",iF=x((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),sF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-HAAlzNbq.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:p1,diagram:e}},"loader"),aF={id:p1,detector:iF,loader:sF},oF=aF,g1="timeline",lF=x(e=>/^\s*timeline/.test(e),"detector"),cF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./timeline-definition-IT6M3QCI-BAvjPYvX.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:g1,diagram:e}},"loader"),uF={id:g1,detector:lF,loader:cF},hF=uF,m1="mindmap",dF=x(e=>/^\s*mindmap/.test(e),"detector"),fF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./mindmap-definition-VGOIOE7T-qopraVFy.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:m1,diagram:e}},"loader"),pF={id:m1,detector:dF,loader:fF},gF=pF,x1="kanban",mF=x(e=>/^\s*kanban/.test(e),"detector"),xF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./kanban-definition-3W4ZIXB7-Cgju7b-L.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:x1,diagram:e}},"loader"),yF={id:x1,detector:mF,loader:xF},bF=yF,y1="sankey",kF=x(e=>/^\s*sankey(-beta)?/.test(e),"detector"),wF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./sankeyDiagram-TZEHDZUN-BVk8387S.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:y1,diagram:e}},"loader"),vF={id:y1,detector:kF,loader:wF},CF=vF,b1="packet",SF=x(e=>/^\s*packet(-beta)?/.test(e),"detector"),_F=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./diagram-S2PKOQOG-CkM0APZj.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:b1,diagram:e}},"loader"),TF={id:b1,detector:SF,loader:_F},k1="radar",EF=x(e=>/^\s*radar-beta/.test(e),"detector"),AF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./diagram-QEK2KX5R-BKYFSfC1.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:k1,diagram:e}},"loader"),MF={id:k1,detector:EF,loader:AF},w1="block",NF=x(e=>/^\s*block(-beta)?/.test(e),"detector"),LF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./blockDiagram-VD42YOAC-72nsMt_i.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:w1,diagram:e}},"loader"),IF={id:w1,detector:NF,loader:LF},$F=IF,v1="architecture",jF=x(e=>/^\s*architecture/.test(e),"detector"),BF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./architectureDiagram-VXUJARFQ-BnPYh1OW.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:v1,diagram:e}},"loader"),DF={id:v1,detector:jF,loader:BF},PF=DF,C1="treemap",FF=x(e=>/^\s*treemap/.test(e),"detector"),RF=x(async()=>{const{diagram:e}=await Re(async()=>{const{diagram:t}=await import("./diagram-PSM6KHXK-SONPsQNx.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:C1,diagram:e}},"loader"),OF={id:C1,detector:FF,loader:RF},Ip=!1,ol=x(()=>{Ip||(Ip=!0,Xa("error",nF,e=>e.toLowerCase().trim()==="error"),Xa("---",{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("---")),Cc(oF,gF,PF),Cc(U4,bF,zP,PP,nP,hP,pP,xP,MP,$P,J4,X4,hF,oP,XP,UP,JP,wP,CF,TF,_P,$F,MF,OF))},"addDiagrams"),zF=x(async()=>{X.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Nn).map(async([r,{detector:n,loader:i}])=>{if(i)try{Ec(r)}catch{try{const{diagram:s,id:a}=await i();Xa(a,s,n)}catch(s){throw X.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){X.error(`Failed to load ${t.length} external diagrams`);for(const r of t)X.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),HF="graphics-document document";function S1(e,t){e.attr("role",HF),t!==""&&e.attr("aria-roledescription",t)}x(S1,"setA11yDiagramInfo");function _1(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(_1,"addSVGa11yTitleDescription");var En,xu=(En=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=St(),i=Yu(t,n);t=O3(t)+`
|
|
350
350
|
`;try{Ec(i)}catch{const c=uA(i);if(!c)throw new Em(`Diagram ${i} not found.`);const{id:u,diagram:h}=await c();Xa(u,h)}const{db:s,parser:a,renderer:o,init:l}=Ec(i);return a.parser&&(a.parser.yy=s),s.clear?.(),l?.(n),r.title&&s.setDiagramTitle?.(r.title),await a.parse(t),new En(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(En,"Diagram"),En),$p=[],WF=x(()=>{$p.forEach(e=>{e()}),$p=[]},"attachFunctions"),qF=x(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function T1(e){const t=e.match(Tm);if(!t)return{text:e,metadata:{}};let r=z$(t[1],{schema:O$})??{};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(T1,"extractFrontMatter");var UF=x(e=>e.replace(/\r\n?/g,`
|
|
351
351
|
`).replace(/<(\w+)([^>]*)>/g,(t,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),VF=x(e=>{const{text:t,metadata:r}=T1(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"),GF=x(e=>{const t=cr.detectInit(e)??{},r=cr.detectDirective(e,"wrap");return Array.isArray(r)?t.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(t.wrap=!0),{text:E3(e),directive:t}},"processDirectives");function Gh(e){const t=UF(e),r=VF(t),n=GF(r.text),i=Nh(r.config,n.directive);return e=qF(n.text),{code:e,title:r.title,config:i}}x(Gh,"preprocessDiagram");function E1(e){const t=new TextEncoder().encode(e),r=Array.from(t,n=>String.fromCodePoint(n)).join("");return btoa(r)}x(E1,"toBase64");var YF=5e4,XF="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",QF="sandbox",KF="loose",ZF="http://www.w3.org/2000/svg",JF="http://www.w3.org/1999/xlink",eR="http://www.w3.org/1999/xhtml",tR="100%",rR="100%",nR="border:0;margin:0;",iR="margin:0",sR="allow-top-navigation-by-user-activation allow-popups",aR='The "iframe" tag is not supported by your browser.',oR=["foreignobject"],lR=["dominant-baseline"];function Yh(e){const t=Gh(e);return Ga(),TA(t.config??{}),t}x(Yh,"processAndSetConfigs");async function A1(e,t){ol();try{const{code:r,config:n}=Yh(e);return{diagramType:(await N1(r)).type,config:n}}catch(r){if(t?.suppressErrors)return!1;throw r}}x(A1,"parse");var jp=x((e,t,r=[])=>`
|
|
352
352
|
.${e} ${t} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),cR=x((e,t=new Map)=>{let r="";if(e.themeCSS!==void 0&&(r+=`
|
|
@@ -439,4 +439,4 @@ ${Rt}`,role:"assistant"}),A(!1);return}v(),u.current.abort(),u.current=null,C(!1
|
|
|
439
439
|
transition-opacity duration-200
|
|
440
440
|
pointer-events-none
|
|
441
441
|
whitespace-nowrap
|
|
442
|
-
`,children:a})]})},$O=({agent:e,projectPath:t,CustomComponent:r})=>{const[n,i]=O.useState(r?"custom":"files"),s=!!r;return p.jsxs(p.Fragment,{children:[p.jsx("div",{className:"h-full bg-white dark:bg-gray-900 overflow-hidden",children:s?p.jsxs(p.Fragment,{children:[p.jsx("div",{className:`h-full ${n==="custom"?"block":"hidden"}`,children:p.jsx(r,{agent:e,projectPath:t})}),p.jsx("div",{className:`h-full ${n==="files"?"block":"hidden"}`,children:p.jsx(ud,{projectPath:t,onFileSelect:a=>{console.log("Selected file:",a)},className:"h-full"})})]}):p.jsx(ud,{projectPath:t,onFileSelect:a=>{console.log("Selected file:",a)},className:"h-full"})}),p.jsx(IO,{currentView:n,onViewChange:i,hasCustomComponent:s,className:"floating-toggle"})]})},jO=({projectPath:e})=>{const{t}=we("agents"),{data:r,isLoading:n,error:i}=aw(e),s=Tu(),a=O.useRef({}),o=()=>{s.invalidateQueries({queryKey:["slides",e]}),s.invalidateQueries({queryKey:["slide-content"]}),Object.values(a.current).forEach(c=>{c?.refreshIframe&&c.refreshIframe()})};if(O.useEffect(()=>{const c=u=>{console.log("🔄 Received AI_RESPONSE_COMPLETE event in SlidePreviewPanel:",u),u.projectPath===e&&(console.log("🔄 Auto-refreshing slides after AI response completion"),o())};return ac.on(oc.AI_RESPONSE_COMPLETE,c),()=>{ac.off(oc.AI_RESPONSE_COMPLETE,c)}},[e,s]),n)return p.jsx("div",{className:"flex items-center justify-center h-full",children:p.jsx("div",{className:"text-gray-500",children:t("slidePreview.loading")})});if(i)return p.jsx("div",{className:"flex items-center justify-center h-full",children:p.jsx("div",{className:"text-red-500",children:t("slidePreview.loadError")})});const l=r?.slides||[];return p.jsxs("div",{className:"flex flex-col h-full bg-gray-50 dark:bg-gray-900",children:[p.jsx("div",{className:"h-12 px-5 bg-gray-100 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 flex items-center",children:p.jsxs("div",{className:"flex items-center justify-between",children:[p.jsxs("div",{className:"flex items-center space-x-3",children:[p.jsx("h2",{className:"text-lg font-semibold text-gray-800 dark:text-white",children:t("slidePreview.title")}),p.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 px-2 py-0.5 rounded",children:r?.title||"Presentation"})]}),p.jsxs("button",{onClick:o,disabled:n,className:"flex items-center space-x-1 px-3 py-1.5 text-sm bg-blue-50 dark:bg-blue-900/30 hover:bg-blue-100 dark:hover:bg-blue-900/50 text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:t("slidePreview.refreshTitle"),children:[p.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:p.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})}),p.jsx("span",{children:t("slidePreview.refresh")})]})]})}),p.jsx("div",{className:"flex-1 overflow-y-auto",children:l.length===0?p.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-gray-500 dark:text-gray-400 p-5",children:[p.jsx("div",{className:"text-lg mb-2",children:t("slidePreview.noSlides")}),p.jsx("div",{className:"text-sm",children:t("slidePreview.createWithAI")})]}):p.jsx("div",{className:"space-y-4 p-5",children:l.map(c=>p.jsx(ow,{ref:u=>{u?a.current[c.index]=u:delete a.current[c.index]},slide:c,totalSlides:l.length,projectPath:e},c.index))})})]})},BO={rightPanelComponent:jO,onMount:e=>{console.log(`Slides agent ${e} mounted`)},onUnmount:e=>{console.log(`Slides agent ${e} unmounted`)}},DO={onMount:e=>{console.log(`Chat agent ${e} mounted`)},onUnmount:e=>{console.log(`Chat agent ${e} unmounted`)}},PO={slides:BO,chat:DO},FO=e=>PO[e];function RO({status:e,originalTitle:t=document.title,workingText:r="🤖 AI 正在工作",completedText:n="✅ 已完成",errorText:i="❌ 发生错误",marqueeSpeed:s=300,blinkInterval:a=800}){const o=O.useRef(null),l=O.useRef(!document.hidden),c=O.useRef(t),u=O.useRef("idle");O.useEffect(()=>{document.hidden||(c.current=t)},[t]);const h=()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},f=()=>{h(),document.title=c.current},d=m=>{h();let b=0;const y=`${m}... `,k=()=>{const v=y.slice(b)+y.slice(0,b);document.title=v,b=(b+1)%y.length};k(),o.current=window.setInterval(k,s)},g=m=>{h();let b=!0;const y=()=>{document.title=b?m:c.current,b=!b};y(),o.current=window.setInterval(y,a)};O.useEffect(()=>{const m=()=>{if(l.current=!document.hidden,!document.hidden)f();else{const b=u.current;b==="working"?d(r):b==="completed"?g(n):b==="error"&&g(i)}};return document.addEventListener("visibilitychange",m),()=>{document.removeEventListener("visibilitychange",m),h()}},[r,n,i,s,a]),O.useEffect(()=>{u.current=e,document.hidden&&(e==="working"?d(r):e==="completed"?g(n):e==="error"?g(i):e==="idle"&&f())},[e,r,n,i]),O.useEffect(()=>()=>{h(),document.title=c.current},[])}const OO=()=>{const{t:e}=we("pages"),{agentId:t}=Bw(),[r]=hg(),n=Dw(),i=r.get("project"),s=r.get("session"),{data:a,isLoading:o,error:l}=dw(t),{setCurrentAgent:c,setCurrentSessionId:u,isAiTyping:h}=Xe(),[f,d]=O.useState(!1),[g,m]=O.useState(!1),[b,y]=O.useState(!1),[k,v]=O.useState(null),[C,S]=O.useState(!1),w=mr.useRef(!1),T=a?.agent;O.useEffect(()=>{h?(w.current=!0,S(!1)):w.current&&(document.hidden||(S(!0),w.current=!1))},[h]),O.useEffect(()=>{const B=()=>{!document.hidden&&!h&&w.current&&(S(!0),w.current=!1)};return document.addEventListener("visibilitychange",B),()=>document.removeEventListener("visibilitychange",B)},[h]);const $=O.useMemo(()=>k?"error":h?"working":!h&&w.current&&!C?"completed":"idle",[h,k,C]);RO({status:$,originalTitle:T?`${T.ui.icon} ${T.name} - AgentStudio`:"AgentStudio",workingText:e("chat.tabNotification.working"),completedText:e("chat.tabNotification.completed"),errorText:e("chat.tabNotification.error")}),O.useEffect(()=>{if(l){v(l);const B=setTimeout(()=>v(null),5e3);return()=>clearTimeout(B)}},[l]),O.useEffect(()=>{console.log("🎯 ChatPage agent/session effect:",{hasAgent:!!T,agentId:T?.id,sessionId:s,urlSessionId:r.get("session")}),T&&(console.log("🎯 Setting current agent:",T.id),c(T),s&&(console.log("🎯 Setting session ID:",s),u(s)))},[T,s,c,u]),O.useEffect(()=>{T&&!i&&d(!0)},[T,i]);const M=B=>{const H=new URLSearchParams;H.set("project",B),s&&H.set("session",s),n(`/chat/${t}?${H.toString()}`,{replace:!0}),d(!1)},E=B=>{const H=new URLSearchParams;i&&H.set("project",i),B&&H.set("session",B),n(`/chat/${t}?${H.toString()}`,{replace:!0})},N=()=>{d(!1),n("/agents")},D=O.useMemo(()=>{if(T?.ui?.componentType)return FO(T.ui.componentType)},[T]),R=D?.rightPanelComponent;if(O.useEffect(()=>{if(!(!T||!D))return D.onMount&&D.onMount(T.id),()=>{D.onUnmount&&D.onUnmount(T.id)}},[T,D]),o)return p.jsx("div",{className:"min-h-screen bg-gray-100 dark:bg-gray-900 flex items-center justify-center",children:p.jsxs("div",{className:"text-center",children:[p.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),p.jsx("div",{className:"text-gray-600 dark:text-gray-400",children:e("chat.loading")})]})});if(l||!T)return p.jsx("div",{className:"min-h-screen bg-gray-100 dark:bg-gray-900 flex items-center justify-center",children:p.jsxs("div",{className:"text-center max-w-md",children:[p.jsx("div",{className:"text-6xl mb-6",children:"❌"}),p.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white mb-4",children:e("chat.agentNotFound")}),p.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:e("chat.agentNotFoundDesc")}),p.jsx("button",{onClick:()=>window.close(),className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:e("chat.closePage")})]})});if(!T.enabled)return p.jsx("div",{className:"min-h-screen bg-gray-100 dark:bg-gray-900 flex items-center justify-center",children:p.jsxs("div",{className:"text-center max-w-md",children:[p.jsx("div",{className:"text-6xl mb-6 opacity-50",children:T.ui.icon}),p.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white mb-4",children:e("chat.agentDisabled")}),p.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:e("chat.agentDisabledDesc",{name:T.name})}),p.jsx("div",{className:"flex space-x-4 justify-center",children:p.jsx("button",{onClick:()=>window.close(),className:"px-6 py-3 bg-gray-600 text-white rounded-lg hover:bg-gray-700 transition-colors",children:e("chat.closePage")})})]})});const I=()=>{const B=!g;m(B),B&&b&&y(!1)},F=()=>{const B=!b;y(B),B&&g&&m(!1)},L=()=>p.jsxs(LO,{hideLeftPanel:g,hideRightPanel:b,onToggleLeftPanel:I,onToggleRightPanel:F,mobileLayout:"tabs",children:[p.jsx(NO,{agent:T,projectPath:i||void 0,onSessionChange:E}),p.jsx($O,{agent:T,projectPath:i||void 0,CustomComponent:R})]});return p.jsxs("div",{className:"h-screen bg-gray-100 dark:bg-gray-900",children:[L(),f&&T&&p.jsx(Rw,{agent:T,onProjectSelect:M,onClose:N})]})},N6=Object.freeze(Object.defineProperty({__proto__:null,ChatPage:OO},Symbol.toStringTag,{value:"Module"}));export{$f as $,gs as A,jE as B,tM as C,Nh as D,St as E,Lm as F,I3 as G,jI as H,ef as I,O$ as J,mA as K,pi as L,n6 as M,Ko as N,BA as O,Xu as P,ff as Q,qs as R,vr as S,wI as T,ke as U,lh as V,c6 as W,d6 as X,Vn as Y,C3 as Z,x as _,XA as a,qt as a$,If as a0,p6 as a1,f6 as a2,h6 as a3,o6 as a4,l6 as a5,m6 as a6,u6 as a7,g6 as a8,_I as a9,ue as aA,S6 as aB,q5 as aC,R5 as aD,F5 as aE,VD as aF,vI as aG,r6 as aH,Ks as aI,qD as aJ,WD as aK,ih as aL,Qr as aM,Tf as aN,tL as aO,Es as aP,Fn as aQ,k3 as aR,My as aS,Vo as aT,Qo as aU,mo as aV,Ly as aW,Ay as aX,QB as aY,ce as aZ,xy as a_,$a as aa,L3 as ab,WA as ac,Ws as ad,ae,fe as af,Om as ag,x5 as ah,Rk as ai,T6 as aj,H$ as ak,dt as al,ln as am,kh as an,hb as ao,zn as ap,Py as aq,b3 as ar,hB as as,d3 as at,wh as au,Lp as av,l4 as aw,_6 as ax,E6 as ay,C6 as az,YA as b,YN as b0,nh as b1,e0 as b2,Vs as b3,n0 as b4,a6 as b5,$E as b6,y3 as b7,h3 as b8,Zj as b9,w3 as bA,Xo as bB,N6 as bC,vh as ba,VB as bb,v3 as bc,Xs as bd,_i as be,fo as bf,n3 as bg,L4 as bh,Ys as bi,go as bj,KB as bk,vy as bl,tB as bm,rB as bn,kn as bo,Jf as bp,nB as bq,Ch as br,eB as bs,aB as bt,Ti as bu,on as bv,Yf as bw,Sh as bx,Sy as by,gu as bz,Pe as c,$e as d,Rm as e,ut as f,KA as g,Or as h,tr as i,Y$ as j,Ci as k,X as l,Ry as m,i6 as n,M6 as o,ZA as p,JA as q,A6 as r,QA as s,z$ as t,cr as u,B5 as v,B3 as w,x6 as x,GA as y,s6 as z};
|
|
442
|
+
`,children:a})]})},$O=({agent:e,projectPath:t,CustomComponent:r})=>{const[n,i]=O.useState(r?"custom":"files"),s=!!r;return p.jsxs(p.Fragment,{children:[p.jsx("div",{className:"h-full bg-white dark:bg-gray-900 overflow-hidden",children:s?p.jsxs(p.Fragment,{children:[p.jsx("div",{className:`h-full ${n==="custom"?"block":"hidden"}`,children:p.jsx(r,{agent:e,projectPath:t})}),p.jsx("div",{className:`h-full ${n==="files"?"block":"hidden"}`,children:p.jsx(ud,{projectPath:t,onFileSelect:a=>{console.log("Selected file:",a)},className:"h-full"})})]}):p.jsx(ud,{projectPath:t,onFileSelect:a=>{console.log("Selected file:",a)},className:"h-full"})}),p.jsx(IO,{currentView:n,onViewChange:i,hasCustomComponent:s,className:"floating-toggle"})]})},jO=({projectPath:e})=>{const{t}=we("agents"),{data:r,isLoading:n,error:i}=aw(e),s=Tu(),a=O.useRef({}),o=()=>{s.invalidateQueries({queryKey:["slides",e]}),s.invalidateQueries({queryKey:["slide-content"]}),Object.values(a.current).forEach(c=>{c?.refreshIframe&&c.refreshIframe()})};if(O.useEffect(()=>{const c=u=>{console.log("🔄 Received AI_RESPONSE_COMPLETE event in SlidePreviewPanel:",u),u.projectPath===e&&(console.log("🔄 Auto-refreshing slides after AI response completion"),o())};return ac.on(oc.AI_RESPONSE_COMPLETE,c),()=>{ac.off(oc.AI_RESPONSE_COMPLETE,c)}},[e,s]),n)return p.jsx("div",{className:"flex items-center justify-center h-full",children:p.jsx("div",{className:"text-gray-500",children:t("slidePreview.loading")})});if(i)return p.jsx("div",{className:"flex items-center justify-center h-full",children:p.jsx("div",{className:"text-red-500",children:t("slidePreview.loadError")})});const l=r?.slides||[];return p.jsxs("div",{className:"flex flex-col h-full bg-gray-50 dark:bg-gray-900",children:[p.jsx("div",{className:"h-12 px-5 bg-gray-100 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 flex items-center",children:p.jsxs("div",{className:"flex items-center justify-between",children:[p.jsxs("div",{className:"flex items-center space-x-3",children:[p.jsx("h2",{className:"text-lg font-semibold text-gray-800 dark:text-white",children:t("slidePreview.title")}),p.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 px-2 py-0.5 rounded",children:r?.title||"Presentation"})]}),p.jsxs("button",{onClick:o,disabled:n,className:"flex items-center space-x-1 px-3 py-1.5 text-sm bg-blue-50 dark:bg-blue-900/30 hover:bg-blue-100 dark:hover:bg-blue-900/50 text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:t("slidePreview.refreshTitle"),children:[p.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:p.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})}),p.jsx("span",{children:t("slidePreview.refresh")})]})]})}),p.jsx("div",{className:"flex-1 overflow-y-auto",children:l.length===0?p.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-gray-500 dark:text-gray-400 p-5",children:[p.jsx("div",{className:"text-lg mb-2",children:t("slidePreview.noSlides")}),p.jsx("div",{className:"text-sm",children:t("slidePreview.createWithAI")})]}):p.jsx("div",{className:"space-y-4 p-5",children:l.map(c=>p.jsx(ow,{ref:u=>{u?a.current[c.index]=u:delete a.current[c.index]},slide:c,totalSlides:l.length,projectPath:e},c.index))})})]})},BO={rightPanelComponent:jO,onMount:e=>{console.log(`Slides agent ${e} mounted`)},onUnmount:e=>{console.log(`Slides agent ${e} unmounted`)}},DO={onMount:e=>{console.log(`Chat agent ${e} mounted`)},onUnmount:e=>{console.log(`Chat agent ${e} unmounted`)}},PO={slides:BO,chat:DO},FO=e=>PO[e];function RO({status:e,originalTitle:t=document.title,workingText:r="🤖 AI 正在工作",completedText:n="✅ 已完成",errorText:i="❌ 发生错误",marqueeSpeed:s=300,blinkInterval:a=800}){const o=O.useRef(null),l=O.useRef(!document.hidden),c=O.useRef(t),u=O.useRef("idle");O.useEffect(()=>{document.hidden||(c.current=t)},[t]);const h=()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},f=()=>{h(),document.title=c.current},d=m=>{h();let b=0;const y=`${m}... `,k=()=>{const v=y.slice(b)+y.slice(0,b);document.title=v,b=(b+1)%y.length};k(),o.current=window.setInterval(k,s)},g=m=>{h();let b=!0;const y=()=>{document.title=b?m:c.current,b=!b};y(),o.current=window.setInterval(y,a)};O.useEffect(()=>{const m=()=>{if(l.current=!document.hidden,!document.hidden)f();else{const b=u.current;b==="working"?d(r):b==="completed"?g(n):b==="error"&&g(i)}};return document.addEventListener("visibilitychange",m),()=>{document.removeEventListener("visibilitychange",m),h()}},[r,n,i,s,a]),O.useEffect(()=>{u.current=e,document.hidden&&(e==="working"?d(r):e==="completed"?g(n):e==="error"?g(i):e==="idle"&&f())},[e,r,n,i]),O.useEffect(()=>()=>{h(),document.title=c.current},[])}const OO=()=>{const{t:e}=we("pages"),{agentId:t}=Bw(),[r]=hg(),n=Dw(),i=r.get("project"),s=r.get("session"),{data:a,isLoading:o,error:l}=dw(t),{setCurrentAgent:c,setCurrentSessionId:u,isAiTyping:h}=Xe(),[f,d]=O.useState(!1),[g,m]=O.useState(!1),[b,y]=O.useState(!1),[k,v]=O.useState(null),[C,S]=O.useState(!1),w=mr.useRef(!1),T=a?.agent;O.useEffect(()=>{h?(w.current=!0,S(!1)):w.current&&(document.hidden||(S(!0),w.current=!1))},[h]),O.useEffect(()=>{const B=()=>{!document.hidden&&!h&&w.current&&(S(!0),w.current=!1)};return document.addEventListener("visibilitychange",B),()=>document.removeEventListener("visibilitychange",B)},[h]);const $=O.useMemo(()=>k?"error":h?"working":!h&&w.current&&!C?"completed":"idle",[h,k,C]);RO({status:$,originalTitle:T?`${T.ui.icon} ${T.name} - AgentStudio`:"AgentStudio",workingText:e("chat.tabNotification.working"),completedText:e("chat.tabNotification.completed"),errorText:e("chat.tabNotification.error")}),O.useEffect(()=>{if(l){v(l);const B=setTimeout(()=>v(null),5e3);return()=>clearTimeout(B)}},[l]),O.useEffect(()=>{console.log("🎯 ChatPage agent/session effect:",{hasAgent:!!T,agentId:T?.id,sessionId:s,urlSessionId:r.get("session")}),T&&(console.log("🎯 Setting current agent:",T.id),c(T),s&&(console.log("🎯 Setting session ID:",s),u(s)))},[T,s,c,u]),O.useEffect(()=>{T&&!i&&d(!0)},[T,i]);const M=B=>{const H=new URLSearchParams;H.set("project",B),s&&H.set("session",s),n(`/chat/${t}?${H.toString()}`,{replace:!0}),d(!1)},E=B=>{const H=new URLSearchParams;i&&H.set("project",i),B&&H.set("session",B),n(`/chat/${t}?${H.toString()}`,{replace:!0})},N=()=>{d(!1),n("/agents")},D=O.useMemo(()=>{if(T?.ui?.componentType)return FO(T.ui.componentType)},[T]),R=D?.rightPanelComponent;if(O.useEffect(()=>{if(!(!T||!D))return D.onMount&&D.onMount(T.id),()=>{D.onUnmount&&D.onUnmount(T.id)}},[T,D]),o)return p.jsx("div",{className:"min-h-screen bg-gray-100 dark:bg-gray-900 flex items-center justify-center",children:p.jsxs("div",{className:"text-center",children:[p.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),p.jsx("div",{className:"text-gray-600 dark:text-gray-400",children:e("chat.loading")})]})});if(l||!T)return p.jsx("div",{className:"min-h-screen bg-gray-100 dark:bg-gray-900 flex items-center justify-center",children:p.jsxs("div",{className:"text-center max-w-md",children:[p.jsx("div",{className:"text-6xl mb-6",children:"❌"}),p.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white mb-4",children:e("chat.agentNotFound")}),p.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:e("chat.agentNotFoundDesc")}),p.jsx("button",{onClick:()=>window.close(),className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:e("chat.closePage")})]})});if(!T.enabled)return p.jsx("div",{className:"min-h-screen bg-gray-100 dark:bg-gray-900 flex items-center justify-center",children:p.jsxs("div",{className:"text-center max-w-md",children:[p.jsx("div",{className:"text-6xl mb-6 opacity-50",children:T.ui.icon}),p.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white mb-4",children:e("chat.agentDisabled")}),p.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:e("chat.agentDisabledDesc",{name:T.name})}),p.jsx("div",{className:"flex space-x-4 justify-center",children:p.jsx("button",{onClick:()=>window.close(),className:"px-6 py-3 bg-gray-600 text-white rounded-lg hover:bg-gray-700 transition-colors",children:e("chat.closePage")})})]})});const I=()=>{const B=!g;m(B),B&&b&&y(!1)},F=()=>{const B=!b;y(B),B&&g&&m(!1)},L=()=>p.jsxs(LO,{hideLeftPanel:g,hideRightPanel:b,onToggleLeftPanel:I,onToggleRightPanel:F,mobileLayout:"tabs",children:[p.jsx(NO,{agent:T,projectPath:i||void 0,onSessionChange:E}),p.jsx($O,{agent:T,projectPath:i||void 0,CustomComponent:R})]});return p.jsxs("div",{className:"h-screen bg-gray-100 dark:bg-gray-900",children:[L(),f&&T&&p.jsx(Rw,{agent:T,onProjectSelect:M,onClose:N})]})},N6=Object.freeze(Object.defineProperty({__proto__:null,ChatPage:OO},Symbol.toStringTag,{value:"Module"}));export{If as $,gs as A,jE as B,tM as C,Nh as D,St as E,Lm as F,I3 as G,jI as H,ef as I,O$ as J,mA as K,pi as L,n6 as M,Ko as N,BA as O,Xu as P,qs as Q,vr as R,wI as S,lh as T,ke as U,c6 as V,d6 as W,Vn as X,$f as Y,C3 as Z,x as _,XA as a,qt as a$,p6 as a0,f6 as a1,h6 as a2,o6 as a3,l6 as a4,m6 as a5,u6 as a6,g6 as a7,ff as a8,_I as a9,ue as aA,S6 as aB,q5 as aC,R5 as aD,F5 as aE,VD as aF,vI as aG,r6 as aH,Ks as aI,qD as aJ,WD as aK,ih as aL,Qr as aM,Tf as aN,tL as aO,Es as aP,Fn as aQ,k3 as aR,My as aS,Vo as aT,Qo as aU,mo as aV,Ly as aW,Ay as aX,QB as aY,ce as aZ,xy as a_,$a as aa,L3 as ab,WA as ac,Ws as ad,ae,fe as af,Om as ag,x5 as ah,Rk as ai,T6 as aj,H$ as ak,dt as al,ln as am,kh as an,hb as ao,zn as ap,Py as aq,b3 as ar,hB as as,d3 as at,wh as au,Lp as av,l4 as aw,_6 as ax,E6 as ay,C6 as az,YA as b,YN as b0,nh as b1,e0 as b2,Vs as b3,n0 as b4,a6 as b5,$E as b6,y3 as b7,h3 as b8,Zj as b9,w3 as bA,Xo as bB,N6 as bC,vh as ba,VB as bb,v3 as bc,Xs as bd,_i as be,fo as bf,n3 as bg,L4 as bh,Ys as bi,go as bj,KB as bk,vy as bl,tB as bm,rB as bn,kn as bo,Jf as bp,nB as bq,Ch as br,eB as bs,aB as bt,Ti as bu,on as bv,Yf as bw,Sh as bx,Sy as by,gu as bz,Pe as c,$e as d,Rm as e,ut as f,KA as g,Or as h,tr as i,Y$ as j,Ci as k,X as l,Ry as m,i6 as n,M6 as o,ZA as p,JA as q,A6 as r,QA as s,z$ as t,cr as u,B5 as v,B3 as w,x6 as x,GA as y,s6 as z};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e}from"./data-structures-C0h9Oap1.js";import{r as l}from"./monaco-editor-DHKm5-VF.js";import{b as I,c as Z,d as J,e as K}from"./useCommands-
|
|
1
|
+
import{j as e}from"./data-structures-C0h9Oap1.js";import{r as l}from"./monaco-editor-DHKm5-VF.js";import{b as I,c as Z,d as J,e as K}from"./useCommands-mvMu3mMD.js";import{U as Q}from"./UnifiedToolSelector-CNbPsiuq.js";import{u as U}from"./tools-IcPNZlPj.js";import{d as V,o as X,y as Y,j as ee}from"./ui-components-D1St49qC.js";const le=({command:o,projectId:x,onClose:_,onSuccess:z})=>{const{t:a}=U("components"),{t:C}=U("common"),[s,n]=l.useState({name:o?"":"optimize",description:o?"":a("commandForm.exampleDescription"),content:o?"":a("commandForm.exampleContent"),scope:x?"project":"user",namespace:o?"":"frontend",argumentHint:o?"":"[filename] [options]",allowedTools:[],model:""}),[c,T]=l.useState({}),[u,q]=l.useState(!1),[S,p]=l.useState(""),[H,f]=l.useState(!0),[M,$]=l.useState(!1),[m,E]=l.useState([]),[i,j]=l.useState([]),[R,P]=l.useState(!1),w=x?I(x):Z(),N=x?J(x):K(),h=!!o,k=r=>{const t=[];return r.description&&t.push(`description: ${r.description}`),r.argumentHint&&t.push(`argument-hint: ${r.argumentHint}`),r.namespace&&t.push(`namespace: ${r.namespace}`),r.allowedTools&&r.allowedTools.length>0&&t.push(`allowed-tools: ${r.allowedTools.join(", ")}`),r.model&&t.push(`model: ${r.model}`),t.length>0?`---
|
|
2
2
|
${t.join(`
|
|
3
3
|
`)}
|
|
4
4
|
---
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./data-structures-C0h9Oap1.js";import{r as i}from"./monaco-editor-DHKm5-VF.js";import{T as P,a as D,b as j,c as m,d as B,e as x}from"./table-CSWCaVuS.js";import{u as L,a as R}from"./useCommands-BadxYHf2.js";import{C as q}from"./CommandForm-CIfw9mVj.js";import{f as N}from"./dateFormat-CXa8VnEC.js";import{u as z}from"./index-ImPzdvfG.js";import{T as f}from"./ToolsList-CWZLcBx2.js";import{u as G}from"./tools-C7xmF_rB.js";import{j as v,g as I,p as J,o as k,m as w,u as C,v as $,E as K}from"./ui-components-BNdpaz32.js";import"./syntax-highlighting-CnREyncB.js";import"./agents-C4aCwcCz.js";import"./UnifiedToolSelector-A2UIt1Xn.js";const re=()=>{const{t}=G("pages"),{isMobile:a}=z(),[d]=i.useState({scope:"user"}),[n,T]=i.useState(""),[S,r]=i.useState(!1),[F,l]=i.useState(null),[g,o]=i.useState(null),[u,b]=i.useState({}),{data:A=[],isLoading:M,error:E,refetch:y}=L({...d,search:n.trim()||void 0}),h=R(),H=async s=>{try{await h.mutateAsync(s.id),o(null)}catch(c){console.error("Failed to delete command:",c)}},p=A.filter(s=>!(d.scope&&d.scope!=="all"&&s.scope!==d.scope||d.namespace&&s.namespace!==d.namespace));return M?e.jsx("div",{className:"flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-32 w-32 border-b-2 border-blue-500 mx-auto"}),e.jsx("p",{className:"mt-4 text-gray-600 dark:text-gray-400",children:t("commands.loading")})]})}):E?e.jsx("div",{className:"flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx(v,{className:"h-16 w-16 text-red-500 mx-auto mb-4"}),e.jsx("p",{className:"text-red-600 text-lg mb-2",children:t("commands.error.loadFailed")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-4",children:t("commands.error.cannotLoadCommands")}),e.jsx("button",{onClick:()=>y(),className:"bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded-lg transition-colors",children:t("commands.error.retry")})]})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:`${a?"mb-4":"flex items-center justify-between mb-6"}`,children:e.jsxs("div",{children:[e.jsx("h1",{className:`${a?"text-2xl":"text-3xl"} font-bold text-gray-900 dark:text-white`,children:t("commands.title")}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${a?"mt-1":"mt-2"}`,children:t("commands.subtitle")})]})}),e.jsxs("div",{className:`${a?"space-y-3":"flex items-center space-x-4"}`,children:[e.jsxs("div",{className:`${a?"":"flex-1"} relative`,children:[e.jsx(I,{className:`absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 ${a?"w-4 h-4":"w-5 h-5"}`}),e.jsx("input",{type:"text",placeholder:t("commands.searchPlaceholder"),value:n,onChange:s=>T(s.target.value),className:`pl-10 pr-4 ${a?"py-2":"py-3"} w-full border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-gray-700 dark:text-white ${a?"text-sm":""}`})]}),e.jsxs("button",{onClick:()=>{l(null),r(!0)},className:`${a?"w-full py-2.5 px-4":"flex items-center space-x-2 px-6 py-3"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors ${a?"text-sm":""}`,children:[e.jsx(J,{className:`${a?"w-4 h-4":"w-5 h-5"}`}),e.jsx("span",{children:t("commands.createButton")})]})]})]}),p.length===0?e.jsxs("div",{className:"text-center py-16 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx("div",{className:`${a?"text-4xl":"text-6xl"} mb-4`,children:"⚡"}),e.jsx("h3",{className:`${a?"text-lg":"text-xl"} font-medium text-gray-900 dark:text-white mb-2`,children:t(n?"commands.empty.noMatchingCommands":"commands.empty.noCommands")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:t(n?"commands.empty.adjustSearch":"commands.empty.createFirst")}),!n&&e.jsx("button",{onClick:()=>{l(null),r(!0)},className:`${a?"w-full py-3 px-4":"px-6 py-3"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors`,children:t("commands.createButton")})]}):e.jsx(e.Fragment,{children:a?e.jsx("div",{className:"space-y-4",children:p.map((s,c)=>e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsx("div",{className:"flex items-start justify-between mb-3",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:`${a?"text-lg":"text-xl"} mr-3`,children:"⚡"}),e.jsxs("div",{children:[e.jsxs("div",{className:`${a?"text-sm":"text-base"} font-medium text-gray-900 dark:text-white`,children:[s.namespace?`/${s.namespace}:${s.name}`:`/${s.name}`,s.argumentHint&&e.jsx("code",{className:"ml-2 bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 px-1.5 py-0.5 rounded text-xs",children:s.argumentHint})]}),s.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:s.description})]})]})}),e.jsxs("div",{className:"space-y-2 mb-4",children:[e.jsxs("div",{className:"flex items-center text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2",children:[t("commands.table.model"),":"]}),s.model?e.jsxs("div",{className:"flex items-center text-gray-900 dark:text-white",children:[e.jsx(k,{className:"w-3 h-3 mr-1"}),e.jsx("span",{className:"text-sm",children:s.model})]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:t("commands.table.inheritSettings")})]}),e.jsx("div",{className:"mb-3",children:e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:[t("commands.table.tools"),":"]}),e.jsx("div",{className:"flex-1",children:e.jsx(f,{tools:s.allowedTools||[],id:s.id,expandedTools:u,setExpandedTools:b,isMobile:!0,emptyMessage:t("commands.table.inheritSettings")})})]})}),e.jsxs("div",{className:"flex items-center text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2",children:[t("commands.table.createdAt"),":"]}),e.jsxs("div",{className:"flex items-center text-gray-500 dark:text-gray-400",children:[e.jsx(w,{className:"w-4 h-4 mr-1"}),e.jsx("span",{children:N(s.createdAt||s.updatedAt)})]})]})]}),e.jsxs("div",{className:"flex items-center justify-end space-x-2 pt-3 border-t border-gray-200 dark:border-gray-700",children:[e.jsxs("button",{onClick:()=>{l(s),r(!0)},className:"inline-flex items-center px-3 py-2 text-sm font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",children:[e.jsx(C,{className:"w-3 h-3 mr-1"}),t("commands.actions.edit")]}),e.jsx("button",{onClick:()=>o(s),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:t("commands.actions.deleteCommand"),children:e.jsx($,{className:"w-4 h-4"})})]})]},s.id+"-"+c))}):e.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden",children:e.jsxs(P,{children:[e.jsx(D,{children:e.jsxs(j,{children:[e.jsx(m,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.command")}),e.jsx(m,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.model")}),e.jsx(m,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.tools")}),e.jsx(m,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.createdAt")}),e.jsx(m,{className:"px-6 py-3 text-right text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.actions")})]})}),e.jsx(B,{children:p.map((s,c)=>e.jsxs(j,{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:[e.jsx(x,{className:"px-6 py-4 whitespace-nowrap",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"text-xl mr-3",children:"⚡"}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900 dark:text-white",children:s.namespace?`/${s.namespace}:${s.name}`:`/${s.name}`}),e.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${s.source==="plugin"?"bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300":"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300"}`,children:s.source==="plugin"?t("commands.source.plugin"):t("commands.source.local")}),s.argumentHint&&e.jsx("code",{className:"bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 px-1.5 py-0.5 rounded text-xs",children:s.argumentHint})]}),s.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 truncate max-w-xs mt-1",children:s.description})]})]})}),e.jsx(x,{className:"px-6 py-4",children:s.model?e.jsxs("div",{className:"text-sm text-gray-900 dark:text-white",children:[e.jsx(k,{className:"w-3 h-3 inline mr-1"}),s.model]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:t("commands.table.inheritSettings")})}),e.jsx(x,{className:"px-6 py-4",children:e.jsx(f,{tools:s.allowedTools||[],id:s.id,expandedTools:u,setExpandedTools:b,isMobile:!1,emptyMessage:t("commands.table.inheritSettings")})}),e.jsx(x,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400",children:e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(w,{className:"w-4 h-4"}),e.jsx("span",{children:N(s.createdAt||s.updatedAt)})]})}),e.jsx(x,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:e.jsx("div",{className:"flex items-center justify-end space-x-2",children:s.source==="plugin"?e.jsxs("button",{onClick:()=>{l(s),r(!0)},className:"inline-flex items-center px-3 py-1.5 text-xs font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",title:t("commands.actions.view"),children:[e.jsx(K,{className:"w-3 h-3 mr-1"}),t("commands.actions.view")]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>{l(s),r(!0)},className:"inline-flex items-center px-3 py-1.5 text-xs font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",title:t("commands.actions.editCommand"),children:[e.jsx(C,{className:"w-3 h-3 mr-1"}),t("commands.actions.edit")]}),e.jsx("button",{onClick:()=>o(s),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:t("commands.actions.deleteCommand"),children:e.jsx($,{className:"w-4 h-4"})})]})})})]},s.id+"-"+c))})]})})}),S&&e.jsx(q,{command:F,onClose:()=>{r(!1),l(null)},onSuccess:()=>{r(!1),l(null),y()}}),g&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl ${a?"w-full max-w-sm":"max-w-md w-full mx-4"} p-6`,children:[e.jsxs("div",{className:"flex items-center space-x-3 mb-4",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx(v,{className:`${a?"h-5 w-5":"h-6 w-6"} text-red-600`})}),e.jsx("div",{className:"flex-1",children:e.jsx("h3",{className:`${a?"text-base":"text-lg"} font-medium text-gray-900 dark:text-white`,children:t("commands.delete.title")})})]}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${a?"mb-4 text-sm":"mb-6"}`,children:t("commands.delete.confirmMessage",{name:g.name})}),e.jsxs("div",{className:`${a?"grid grid-cols-2 gap-2":"flex justify-end space-x-3"}`,children:[e.jsx("button",{onClick:()=>o(null),className:`${a?"px-3 py-2.5 text-sm":"px-4 py-2"} text-gray-700 dark:text-gray-300 bg-gray-200 dark:bg-gray-700 hover:bg-gray-300 dark:hover:bg-gray-600 rounded-lg transition-colors`,children:t("commands.delete.cancel")}),e.jsx("button",{onClick:()=>H(g),disabled:h.isPending,className:`${a?"px-3 py-2.5 text-sm":"px-4 py-2"} bg-red-600 hover:bg-red-700 text-white rounded-lg transition-colors disabled:opacity-50`,children:h.isPending?t("commands.delete.deleting"):t("commands.delete.delete")})]})]})})]})};export{re as CommandsPage};
|
|
1
|
+
import{j as e}from"./data-structures-C0h9Oap1.js";import{r as i}from"./monaco-editor-DHKm5-VF.js";import{T as P,a as D,b as j,c as m,d as B,e as x}from"./table-D0L2RL5i.js";import{u as L,a as R}from"./useCommands-mvMu3mMD.js";import{C as q}from"./CommandForm-Bk7F_HU8.js";import{f as N}from"./dateFormat-CXa8VnEC.js";import{u as z}from"./index-Bn3v3S9-.js";import{T as f}from"./ToolsList-Dl5F2fWk.js";import{u as G}from"./tools-IcPNZlPj.js";import{j as v,g as I,p as J,o as k,m as w,u as C,v as $,E as K}from"./ui-components-D1St49qC.js";import"./syntax-highlighting-CnREyncB.js";import"./agents-ChrA1R0y.js";import"./UnifiedToolSelector-CNbPsiuq.js";const re=()=>{const{t}=G("pages"),{isMobile:a}=z(),[d]=i.useState({scope:"user"}),[n,T]=i.useState(""),[S,r]=i.useState(!1),[F,l]=i.useState(null),[g,o]=i.useState(null),[u,b]=i.useState({}),{data:A=[],isLoading:M,error:E,refetch:y}=L({...d,search:n.trim()||void 0}),h=R(),H=async s=>{try{await h.mutateAsync(s.id),o(null)}catch(c){console.error("Failed to delete command:",c)}},p=A.filter(s=>!(d.scope&&d.scope!=="all"&&s.scope!==d.scope||d.namespace&&s.namespace!==d.namespace));return M?e.jsx("div",{className:"flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-32 w-32 border-b-2 border-blue-500 mx-auto"}),e.jsx("p",{className:"mt-4 text-gray-600 dark:text-gray-400",children:t("commands.loading")})]})}):E?e.jsx("div",{className:"flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx(v,{className:"h-16 w-16 text-red-500 mx-auto mb-4"}),e.jsx("p",{className:"text-red-600 text-lg mb-2",children:t("commands.error.loadFailed")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-4",children:t("commands.error.cannotLoadCommands")}),e.jsx("button",{onClick:()=>y(),className:"bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded-lg transition-colors",children:t("commands.error.retry")})]})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:`${a?"mb-4":"flex items-center justify-between mb-6"}`,children:e.jsxs("div",{children:[e.jsx("h1",{className:`${a?"text-2xl":"text-3xl"} font-bold text-gray-900 dark:text-white`,children:t("commands.title")}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${a?"mt-1":"mt-2"}`,children:t("commands.subtitle")})]})}),e.jsxs("div",{className:`${a?"space-y-3":"flex items-center space-x-4"}`,children:[e.jsxs("div",{className:`${a?"":"flex-1"} relative`,children:[e.jsx(I,{className:`absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 ${a?"w-4 h-4":"w-5 h-5"}`}),e.jsx("input",{type:"text",placeholder:t("commands.searchPlaceholder"),value:n,onChange:s=>T(s.target.value),className:`pl-10 pr-4 ${a?"py-2":"py-3"} w-full border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-gray-700 dark:text-white ${a?"text-sm":""}`})]}),e.jsxs("button",{onClick:()=>{l(null),r(!0)},className:`${a?"w-full py-2.5 px-4":"flex items-center space-x-2 px-6 py-3"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors ${a?"text-sm":""}`,children:[e.jsx(J,{className:`${a?"w-4 h-4":"w-5 h-5"}`}),e.jsx("span",{children:t("commands.createButton")})]})]})]}),p.length===0?e.jsxs("div",{className:"text-center py-16 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx("div",{className:`${a?"text-4xl":"text-6xl"} mb-4`,children:"⚡"}),e.jsx("h3",{className:`${a?"text-lg":"text-xl"} font-medium text-gray-900 dark:text-white mb-2`,children:t(n?"commands.empty.noMatchingCommands":"commands.empty.noCommands")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:t(n?"commands.empty.adjustSearch":"commands.empty.createFirst")}),!n&&e.jsx("button",{onClick:()=>{l(null),r(!0)},className:`${a?"w-full py-3 px-4":"px-6 py-3"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors`,children:t("commands.createButton")})]}):e.jsx(e.Fragment,{children:a?e.jsx("div",{className:"space-y-4",children:p.map((s,c)=>e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsx("div",{className:"flex items-start justify-between mb-3",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:`${a?"text-lg":"text-xl"} mr-3`,children:"⚡"}),e.jsxs("div",{children:[e.jsxs("div",{className:`${a?"text-sm":"text-base"} font-medium text-gray-900 dark:text-white`,children:[s.namespace?`/${s.namespace}:${s.name}`:`/${s.name}`,s.argumentHint&&e.jsx("code",{className:"ml-2 bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 px-1.5 py-0.5 rounded text-xs",children:s.argumentHint})]}),s.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:s.description})]})]})}),e.jsxs("div",{className:"space-y-2 mb-4",children:[e.jsxs("div",{className:"flex items-center text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2",children:[t("commands.table.model"),":"]}),s.model?e.jsxs("div",{className:"flex items-center text-gray-900 dark:text-white",children:[e.jsx(k,{className:"w-3 h-3 mr-1"}),e.jsx("span",{className:"text-sm",children:s.model})]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:t("commands.table.inheritSettings")})]}),e.jsx("div",{className:"mb-3",children:e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:[t("commands.table.tools"),":"]}),e.jsx("div",{className:"flex-1",children:e.jsx(f,{tools:s.allowedTools||[],id:s.id,expandedTools:u,setExpandedTools:b,isMobile:!0,emptyMessage:t("commands.table.inheritSettings")})})]})}),e.jsxs("div",{className:"flex items-center text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2",children:[t("commands.table.createdAt"),":"]}),e.jsxs("div",{className:"flex items-center text-gray-500 dark:text-gray-400",children:[e.jsx(w,{className:"w-4 h-4 mr-1"}),e.jsx("span",{children:N(s.createdAt||s.updatedAt)})]})]})]}),e.jsxs("div",{className:"flex items-center justify-end space-x-2 pt-3 border-t border-gray-200 dark:border-gray-700",children:[e.jsxs("button",{onClick:()=>{l(s),r(!0)},className:"inline-flex items-center px-3 py-2 text-sm font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",children:[e.jsx(C,{className:"w-3 h-3 mr-1"}),t("commands.actions.edit")]}),e.jsx("button",{onClick:()=>o(s),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:t("commands.actions.deleteCommand"),children:e.jsx($,{className:"w-4 h-4"})})]})]},s.id+"-"+c))}):e.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden",children:e.jsxs(P,{children:[e.jsx(D,{children:e.jsxs(j,{children:[e.jsx(m,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.command")}),e.jsx(m,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.model")}),e.jsx(m,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.tools")}),e.jsx(m,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.createdAt")}),e.jsx(m,{className:"px-6 py-3 text-right text-xs font-medium text-gray-500 uppercase tracking-wider",children:t("commands.table.actions")})]})}),e.jsx(B,{children:p.map((s,c)=>e.jsxs(j,{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:[e.jsx(x,{className:"px-6 py-4 whitespace-nowrap",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"text-xl mr-3",children:"⚡"}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900 dark:text-white",children:s.namespace?`/${s.namespace}:${s.name}`:`/${s.name}`}),e.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${s.source==="plugin"?"bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300":"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300"}`,children:s.source==="plugin"?t("commands.source.plugin"):t("commands.source.local")}),s.argumentHint&&e.jsx("code",{className:"bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 px-1.5 py-0.5 rounded text-xs",children:s.argumentHint})]}),s.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 truncate max-w-xs mt-1",children:s.description})]})]})}),e.jsx(x,{className:"px-6 py-4",children:s.model?e.jsxs("div",{className:"text-sm text-gray-900 dark:text-white",children:[e.jsx(k,{className:"w-3 h-3 inline mr-1"}),s.model]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:t("commands.table.inheritSettings")})}),e.jsx(x,{className:"px-6 py-4",children:e.jsx(f,{tools:s.allowedTools||[],id:s.id,expandedTools:u,setExpandedTools:b,isMobile:!1,emptyMessage:t("commands.table.inheritSettings")})}),e.jsx(x,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400",children:e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(w,{className:"w-4 h-4"}),e.jsx("span",{children:N(s.createdAt||s.updatedAt)})]})}),e.jsx(x,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:e.jsx("div",{className:"flex items-center justify-end space-x-2",children:s.source==="plugin"?e.jsxs("button",{onClick:()=>{l(s),r(!0)},className:"inline-flex items-center px-3 py-1.5 text-xs font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",title:t("commands.actions.view"),children:[e.jsx(K,{className:"w-3 h-3 mr-1"}),t("commands.actions.view")]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>{l(s),r(!0)},className:"inline-flex items-center px-3 py-1.5 text-xs font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",title:t("commands.actions.editCommand"),children:[e.jsx(C,{className:"w-3 h-3 mr-1"}),t("commands.actions.edit")]}),e.jsx("button",{onClick:()=>o(s),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:t("commands.actions.deleteCommand"),children:e.jsx($,{className:"w-4 h-4"})})]})})})]},s.id+"-"+c))})]})})}),S&&e.jsx(q,{command:F,onClose:()=>{r(!1),l(null)},onSuccess:()=>{r(!1),l(null),y()}}),g&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl ${a?"w-full max-w-sm":"max-w-md w-full mx-4"} p-6`,children:[e.jsxs("div",{className:"flex items-center space-x-3 mb-4",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx(v,{className:`${a?"h-5 w-5":"h-6 w-6"} text-red-600`})}),e.jsx("div",{className:"flex-1",children:e.jsx("h3",{className:`${a?"text-base":"text-lg"} font-medium text-gray-900 dark:text-white`,children:t("commands.delete.title")})})]}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${a?"mb-4 text-sm":"mb-6"}`,children:t("commands.delete.confirmMessage",{name:g.name})}),e.jsxs("div",{className:`${a?"grid grid-cols-2 gap-2":"flex justify-end space-x-3"}`,children:[e.jsx("button",{onClick:()=>o(null),className:`${a?"px-3 py-2.5 text-sm":"px-4 py-2"} text-gray-700 dark:text-gray-300 bg-gray-200 dark:bg-gray-700 hover:bg-gray-300 dark:hover:bg-gray-600 rounded-lg transition-colors`,children:t("commands.delete.cancel")}),e.jsx("button",{onClick:()=>H(g),disabled:h.isPending,className:`${a?"px-3 py-2.5 text-sm":"px-4 py-2"} bg-red-600 hover:bg-red-700 text-white rounded-lg transition-colors disabled:opacity-50`,children:h.isPending?t("commands.delete.deleting"):t("commands.delete.delete")})]})]})})]})};export{re as CommandsPage};
|