agentstudio 0.1.30 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/index.d.ts.map +1 -1
  2. package/index.js +24 -4
  3. package/index.js.map +1 -1
  4. package/package.json +2 -1
  5. package/public/assets/{AgentsPage-VVVyzMq0.js → AgentsPage-DgoZNP6l.js} +2 -2
  6. package/public/assets/{Button-B9AQtJ7x.js → Button-BHiMThm4.js} +1 -1
  7. package/public/assets/{ChatPage-p1JCfA2A.js → ChatPage-LoTJrT43.js} +4 -4
  8. package/public/assets/{CommandForm-B_beYCv3.js → CommandForm-CZRscRtm.js} +2 -2
  9. package/public/assets/{CommandsPage-Blc1Kt4Z.js → CommandsPage-CwEoyASk.js} +1 -1
  10. package/public/assets/{DashboardPage-Dokn4y-N.js → DashboardPage-BSi_T1tY.js} +1 -1
  11. package/public/assets/{FileBrowser-Dg9PfXOo.js → FileBrowser-Df-zwNDa.js} +4 -4
  12. package/public/assets/FileExplorer-BB3suHzW.js +1 -0
  13. package/public/assets/GeneralSettingsPage-DcGmAzci.js +1 -0
  14. package/public/assets/LandingPage-DPKvTTja.js +1 -0
  15. package/public/assets/{LoginPage-D2Ykhr7D.js → LoginPage-BPJUgLru.js} +5 -5
  16. package/public/assets/McpAdminSettingsPage-CZZS-pa0.js +7 -0
  17. package/public/assets/{McpPage-DkD9BOrP.js → McpPage-CPF7txxc.js} +1 -1
  18. package/public/assets/MemorySettingsPage-YenW4l-g.js +1 -0
  19. package/public/assets/PluginsPage-zlAB63Im.js +1 -0
  20. package/public/assets/{ProjectSelector-B1_umywl.js → ProjectSelector-Bq0NQ_bV.js} +1 -1
  21. package/public/assets/{ProjectsPage-CQ8zwJ5D.js → ProjectsPage-BMBRp4RN.js} +5 -5
  22. package/public/assets/ScheduledTasksPage-B_hOD6AS.js +1 -0
  23. package/public/assets/{SettingsLayout-CccK5RVj.js → SettingsLayout-CY9Siffq.js} +1 -1
  24. package/public/assets/{SkillsPage-D_LECy2S.js → SkillsPage-X-LMnwZd.js} +1 -1
  25. package/public/assets/{SubagentForm-D9EFQxlZ.js → SubagentForm-Cq06CQqr.js} +3 -3
  26. package/public/assets/SubagentsPage-DIG_rKjQ.js +1 -0
  27. package/public/assets/SystemInfoPage-CWgKWnQg.js +1 -0
  28. package/public/assets/{TelemetrySettingsPage-DMngnKDW.js → TelemetrySettingsPage-BLnMagRZ.js} +1 -1
  29. package/public/assets/{ToastTestPage-CafmBcnU.js → ToastTestPage-CQ0nobQd.js} +1 -1
  30. package/public/assets/{ToolsList-CnepUgI-.js → ToolsList-C9LELdNX.js} +1 -1
  31. package/public/assets/UnifiedToolSelector-Bw-E7HW4.js +1 -0
  32. package/public/assets/{VersionSettingsPage-D9hYO4VL.js → VersionSettingsPage-BxjDPWm0.js} +2 -2
  33. package/public/assets/WebSocketTunnelPage-CQWcZK_H.js +1 -0
  34. package/public/assets/{_basePickBy-lvDxpUoY.js → _basePickBy-D_S4EWYL.js} +1 -1
  35. package/public/assets/{_baseUniq-DyqfOLmW.js → _baseUniq-BmQef9o6.js} +1 -1
  36. package/public/assets/{agents-DmLFhp96.js → agents-D9dWnZr0.js} +1 -1
  37. package/public/assets/{arc-DuR7lLva.js → arc-DzCTkvPU.js} +1 -1
  38. package/public/assets/{architectureDiagram-VXUJARFQ-CkKlTxxx.js → architectureDiagram-VXUJARFQ-8nWlVbiO.js} +1 -1
  39. package/public/assets/{blockDiagram-VD42YOAC-DdR02awp.js → blockDiagram-VD42YOAC-DbHo3vzo.js} +1 -1
  40. package/public/assets/{c4Diagram-YG6GDRKO-MlkMVL2r.js → c4Diagram-YG6GDRKO-DqFGiZ7Y.js} +1 -1
  41. package/public/assets/channel-DlGw39mX.js +1 -0
  42. package/public/assets/{chunk-4BX2VUAB-BI02zXQl.js → chunk-4BX2VUAB-KZtUHSw3.js} +1 -1
  43. package/public/assets/{chunk-55IACEB6-DtWZPbH-.js → chunk-55IACEB6-DTotxzVH.js} +1 -1
  44. package/public/assets/{chunk-B4BG7PRW-yLeRKRZl.js → chunk-B4BG7PRW-CkjDO6x_.js} +1 -1
  45. package/public/assets/{chunk-DI55MBZ5-DF-5ELa5.js → chunk-DI55MBZ5-ZN0hc9BQ.js} +1 -1
  46. package/public/assets/{chunk-FMBD7UC4-BjJNxbrL.js → chunk-FMBD7UC4--jXmtjeY.js} +1 -1
  47. package/public/assets/{chunk-QN33PNHL-rs7Z3IPT.js → chunk-QN33PNHL-D-FiWiLB.js} +1 -1
  48. package/public/assets/{chunk-QZHKN3VN-DoIXOkrg.js → chunk-QZHKN3VN-BRs4hln6.js} +1 -1
  49. package/public/assets/{chunk-TZMSLE5B-xkKgCGO2.js → chunk-TZMSLE5B-BUZTflc7.js} +1 -1
  50. package/public/assets/classDiagram-2ON5EDUG-7Lo3C-C9.js +1 -0
  51. package/public/assets/classDiagram-v2-WZHVMYZB-7Lo3C-C9.js +1 -0
  52. package/public/assets/clone-180En6VP.js +1 -0
  53. package/public/assets/{cose-bilkent-S5V4N54A-BIz6tY7t.js → cose-bilkent-S5V4N54A-s2WN1XmV.js} +1 -1
  54. package/public/assets/{dagre-6UL2VRFP-CponDeYZ.js → dagre-6UL2VRFP-CxaKwQyB.js} +1 -1
  55. package/public/assets/{diagram-PSM6KHXK-D31S6iiK.js → diagram-PSM6KHXK-SU1hlbjn.js} +1 -1
  56. package/public/assets/{diagram-QEK2KX5R-C6RWP-cs.js → diagram-QEK2KX5R-hcM85tep.js} +1 -1
  57. package/public/assets/{diagram-S2PKOQOG-BKs_7af1.js → diagram-S2PKOQOG-BOmtKWhQ.js} +1 -1
  58. package/public/assets/{erDiagram-Q2GNP2WA-Ro9hB6-s.js → erDiagram-Q2GNP2WA-CsTay3Qr.js} +1 -1
  59. package/public/assets/{flowDiagram-NV44I4VS-IKSFEVlB.js → flowDiagram-NV44I4VS-QLwVU4W3.js} +1 -1
  60. package/public/assets/{ganttDiagram-LVOFAZNH-CPDNSzAq.js → ganttDiagram-LVOFAZNH-CEJd76u6.js} +1 -1
  61. package/public/assets/{gitGraphDiagram-NY62KEGX-c_yb5ztL.js → gitGraphDiagram-NY62KEGX-Cr7KuVc8.js} +1 -1
  62. package/public/assets/{graph-BoMdSZEp.js → graph-B12xs1JB.js} +1 -1
  63. package/public/assets/{index-BUj-AMWq.js → index-BFYHztzB.js} +27 -27
  64. package/public/assets/index-isG0t1ZM.css +1 -0
  65. package/public/assets/infoDiagram-F6ZHWCRC-B6PyESp0.js +2 -0
  66. package/public/assets/{journeyDiagram-XKPGCS4Q-D4izttrO.js → journeyDiagram-XKPGCS4Q-DSlyGZSv.js} +1 -1
  67. package/public/assets/{kanban-definition-3W4ZIXB7-DE7WCrea.js → kanban-definition-3W4ZIXB7-DbDLw__g.js} +1 -1
  68. package/public/assets/{layout-BezNHWMi.js → layout-OtboCb25.js} +1 -1
  69. package/public/assets/{linear-KRX5ckNK.js → linear-Bg3HtxIB.js} +1 -1
  70. package/public/assets/{mindmap-definition-VGOIOE7T-Dlr09KqO.js → mindmap-definition-VGOIOE7T-DZ4bp0qm.js} +1 -1
  71. package/public/assets/{pieDiagram-ADFJNKIX-Bbzzfu-z.js → pieDiagram-ADFJNKIX-Am2n8jc0.js} +1 -1
  72. package/public/assets/{quadrantDiagram-AYHSOK5B-DubsKDPG.js → quadrantDiagram-AYHSOK5B-DPm8iQzH.js} +1 -1
  73. package/public/assets/{requirementDiagram-UZGBJVZJ-B-rG6Gty.js → requirementDiagram-UZGBJVZJ-hVW5YE3R.js} +1 -1
  74. package/public/assets/{sankeyDiagram-TZEHDZUN-DU7Rgr_5.js → sankeyDiagram-TZEHDZUN-DX8gGHoq.js} +1 -1
  75. package/public/assets/{sequenceDiagram-WL72ISMW-BRlH6dPX.js → sequenceDiagram-WL72ISMW-Brl8T0m9.js} +1 -1
  76. package/public/assets/{stateDiagram-FKZM4ZOC-BeAzs0_-.js → stateDiagram-FKZM4ZOC-CxrXSnfX.js} +1 -1
  77. package/public/assets/stateDiagram-v2-4FDKWEC3-BJfGHaLv.js +1 -0
  78. package/public/assets/{table-aqcpYX4Z.js → table-D-FJ6K6j.js} +1 -1
  79. package/public/assets/{timeline-definition-IT6M3QCI-BU_B1RmT.js → timeline-definition-IT6M3QCI-CO6fKxuR.js} +1 -1
  80. package/public/assets/{tools-XV29tg8x.js → tools-zTM46-tZ.js} +1 -1
  81. package/public/assets/{treemap-KMMF4GRG-CP2M7QfX.js → treemap-KMMF4GRG-BsoblFM5.js} +1 -1
  82. package/public/assets/{ui-components-ND8WdSiV.js → ui-components-BsYwJvCF.js} +138 -123
  83. package/public/assets/{useAgents-COcSvqDE.js → useAgents-BlQGwXjx.js} +1 -1
  84. package/public/assets/{useClaudeVersions-C8b4adpW.js → useClaudeVersions-DJ6VKG1y.js} +1 -1
  85. package/public/assets/{useCommands-D79pjz3C.js → useCommands-DOxDeFSx.js} +1 -1
  86. package/public/assets/{useProjects-CP0Q5-jg.js → useProjects-cgsJNlsy.js} +1 -1
  87. package/public/assets/{useSessions-C2gXprHI.js → useSessions-BAxZ6l2n.js} +1 -1
  88. package/public/assets/{xychartDiagram-PRI3JC2R-OdQKUqyr.js → xychartDiagram-PRI3JC2R-B6g-H_PO.js} +1 -1
  89. package/public/index.html +5 -5
  90. package/routes/projects.d.ts.map +1 -1
  91. package/routes/projects.js +80 -1
  92. package/routes/projects.js.map +1 -1
  93. package/routes/tunnel.d.ts +10 -0
  94. package/routes/tunnel.d.ts.map +1 -0
  95. package/routes/tunnel.js +296 -0
  96. package/routes/tunnel.js.map +1 -0
  97. package/services/a2a/a2aQueryService.d.ts.map +1 -1
  98. package/services/a2a/a2aQueryService.js +95 -52
  99. package/services/a2a/a2aQueryService.js.map +1 -1
  100. package/services/tunnelService.d.ts +148 -0
  101. package/services/tunnelService.d.ts.map +1 -0
  102. package/services/tunnelService.js +406 -0
  103. package/services/tunnelService.js.map +1 -0
  104. package/public/assets/FileExplorer-B7BFy0Tu.js +0 -1
  105. package/public/assets/GeneralSettingsPage-DLSSSadp.js +0 -1
  106. package/public/assets/LandingPage-Ck2WpTto.js +0 -1
  107. package/public/assets/McpAdminSettingsPage-BAKOckWx.js +0 -7
  108. package/public/assets/MemorySettingsPage-CiUs5u2g.js +0 -1
  109. package/public/assets/PluginsPage-CkXNjZMq.js +0 -1
  110. package/public/assets/ScheduledTasksPage-BjSzD4T2.js +0 -1
  111. package/public/assets/SubagentsPage-D_sdehiT.js +0 -1
  112. package/public/assets/SystemInfoPage-vz5Ey9DK.js +0 -1
  113. package/public/assets/UnifiedToolSelector-CnFTY88B.js +0 -1
  114. package/public/assets/channel-DHM1jRJ0.js +0 -1
  115. package/public/assets/classDiagram-2ON5EDUG-BJtIba9N.js +0 -1
  116. package/public/assets/classDiagram-v2-WZHVMYZB-BJtIba9N.js +0 -1
  117. package/public/assets/clone-Bbn_OKGL.js +0 -1
  118. package/public/assets/index-CEBbr0XW.css +0 -1
  119. package/public/assets/infoDiagram-F6ZHWCRC-904Ek2Zh.js +0 -2
  120. package/public/assets/stateDiagram-v2-4FDKWEC3-C0c8d9Xs.js +0 -1
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAkE9B,QAAA,MAAM,GAAG,EAAE,OAAO,CAAC,OAAmB,CAAC;AAoVvC,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAoE9B,QAAA,MAAM,GAAG,EAAE,OAAO,CAAC,OAAmB,CAAC;AAsWvC,eAAe,GAAG,CAAC"}
package/index.js CHANGED
@@ -65,6 +65,7 @@ const mcpAdminManagement_1 = __importDefault(require("./routes/mcpAdminManagemen
65
65
  const cloudflareTunnel_1 = __importDefault(require("./routes/cloudflareTunnel"));
66
66
  const taskExecutor_1 = __importDefault(require("./routes/taskExecutor"));
67
67
  const version_1 = __importDefault(require("./routes/version"));
68
+ const tunnel_1 = __importDefault(require("./routes/tunnel"));
68
69
  const auth_2 = require("./middleware/auth");
69
70
  const httpsOnly_1 = require("./middleware/httpsOnly");
70
71
  const index_1 = require("./config/index");
@@ -72,6 +73,7 @@ const taskCleanup_1 = require("./services/a2a/taskCleanup");
72
73
  const schedulerService_1 = require("./services/schedulerService");
73
74
  const telemetry_1 = require("./services/telemetry");
74
75
  const index_js_1 = require("./services/taskExecutor/index.js");
76
+ const tunnelService_js_1 = require("./services/tunnelService.js");
75
77
  dotenv_1.default.config();
76
78
  // Get version from package.json (works in both dev and npm package mode)
77
79
  const getVersion = () => {
@@ -133,13 +135,13 @@ const app = (0, express_1.default)();
133
135
  contentSecurityPolicy: {
134
136
  directives: {
135
137
  defaultSrc: ["'self'"],
136
- scriptSrc: ["'self'", "'unsafe-inline'", "'unsafe-eval'"], // Allow eval for development
138
+ scriptSrc: ["'self'", "'unsafe-inline'", "'unsafe-eval'", "https://cdn.jsdelivr.net", "https://app.posthog.com", "https://us.i.posthog.com"], // Allow eval for development, CDN for Monaco, PostHog
137
139
  styleSrc: ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com", "https://cdn.jsdelivr.net"],
138
140
  fontSrc: ["'self'", "https://fonts.gstatic.com", "https://cdn.jsdelivr.net", "data:"],
139
141
  imgSrc: ["'self'", "data:", "https:", "http:", "blob:"],
140
- connectSrc: ["'self'", "ws:", "wss:", "blob:", "data:", "http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*"],
142
+ connectSrc: ["'self'", "ws:", "wss:", "blob:", "data:", "http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://app.posthog.com", "https://us.i.posthog.com"],
141
143
  frameAncestors: ["'self'", "http://localhost:3000", "https://localhost:3000", "http://localhost:3001", "https://agentstudio.cc", "https://*.agentstudio.cc"], // Allow iframe embedding
142
- workerSrc: ["'self'", "blob:"],
144
+ workerSrc: ["'self'", "blob:", "https://cdn.jsdelivr.net"],
143
145
  childSrc: ["'self'", "blob:"],
144
146
  // Disable upgrade-insecure-requests for HTTP environments
145
147
  upgradeInsecureRequests: null
@@ -210,7 +212,7 @@ const app = (0, express_1.default)();
210
212
  },
211
213
  credentials: true,
212
214
  methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'PATCH'],
213
- allowedHeaders: ['Content-Type', 'Authorization', 'Cache-Control', 'X-Requested-With'],
215
+ allowedHeaders: ['Content-Type', 'Authorization', 'Cache-Control', 'X-Requested-With', 'X-Project-Path'],
214
216
  exposedHeaders: ['Content-Range', 'X-Content-Range']
215
217
  }));
216
218
  // JSON parser - skip /api/slack (needs raw body for signature verification)
@@ -261,6 +263,15 @@ const app = (0, express_1.default)();
261
263
  catch (error) {
262
264
  console.error('[Scheduler] Error initializing scheduler:', error);
263
265
  }
266
+ // 4. Tunnel Service: Initialize WebSocket tunnel for external access
267
+ console.info('[Tunnel] Initializing tunnel service...');
268
+ try {
269
+ await tunnelService_js_1.tunnelService.initialize(PORT);
270
+ console.info('[Tunnel] Tunnel service initialized');
271
+ }
272
+ catch (error) {
273
+ console.error('[Tunnel] Error initializing tunnel service:', error);
274
+ }
264
275
  // Static files - serve embedded frontend (for npm package) or development frontend
265
276
  // Check both npm package location (./public) and development location (../../frontend/dist)
266
277
  const fs = await Promise.resolve().then(() => __importStar(require('fs')));
@@ -347,6 +358,7 @@ const app = (0, express_1.default)();
347
358
  app.use('/api/cloudflare-tunnel', auth_2.authMiddleware, cloudflareTunnel_1.default); // Cloudflare Tunnel management
348
359
  app.use('/api/task-executor', auth_2.authMiddleware, taskExecutor_1.default);
349
360
  app.use('/api/version', auth_2.authMiddleware, version_1.default);
361
+ app.use('/api/tunnel', auth_2.authMiddleware, tunnel_1.default); // Tunnel management
350
362
  app.use('/api/media', mediaAuth_1.default); // Media auth endpoints
351
363
  app.use('/media', media_1.default); // Remove authMiddleware - media files are now public
352
364
  // Error handling
@@ -380,6 +392,14 @@ const app = (0, express_1.default)();
380
392
  catch (error) {
381
393
  console.error('[TaskExecutor] Error shutting down task executor:', error);
382
394
  }
395
+ // 3. Stop tunnel service
396
+ try {
397
+ tunnelService_js_1.tunnelService.disconnect();
398
+ console.info('[Tunnel] Tunnel service stopped');
399
+ }
400
+ catch (error) {
401
+ console.error('[Tunnel] Error shutting down tunnel service:', error);
402
+ }
383
403
  // Shutdown telemetry (async but we don't wait)
384
404
  (0, telemetry_1.shutdownTelemetry)().catch((error) => {
385
405
  console.error('[Telemetry] Error shutting down telemetry:', error);
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentstudio",
3
- "version": "0.1.30",
3
+ "version": "0.2.2",
4
4
  "description": "AgentStudio - AI-powered agent workspace with Claude integration. One command to start your AI agent studio.",
5
5
  "main": "index.js",
6
6
  "engines": {
@@ -35,6 +35,7 @@
35
35
  "node-cron": "^4.2.1",
36
36
  "posthog-node": "^5.21.1",
37
37
  "proper-lockfile": "^4.1.2",
38
+ "tunely": "^0.1.0",
38
39
  "undici": "^7.16.0",
39
40
  "zod": "^3.22.2"
40
41
  },
@@ -1,4 +1,4 @@
1
- import{j as e}from"./data-structures-C0h9Oap1.js";import{r as o}from"./monaco-editor-DHKm5-VF.js";import{T as ae,a as re,b as W,c as E,d as te,e as A}from"./table-aqcpYX4Z.js";import{u as le,d as ne,e as oe,f as de}from"./useAgents-COcSvqDE.js";import{u as ie}from"./agents-DmLFhp96.js";import{P as ce}from"./ProjectSelector-B1_umywl.js";import{U as xe}from"./UnifiedToolSelector-CnFTY88B.js";import{b as me,a as $}from"./index-BUj-AMWq.js";import{T as K}from"./ToolsList-CnepUgI-.js";import{u as ue}from"./tools-XV29tg8x.js";import{g as ge,v as he,ah as z,J as Y,y as H,r as pe,a2 as be,E as ye,$ as fe,O as je,X as ve}from"./ui-components-ND8WdSiV.js";import"./syntax-highlighting-CnREyncB.js";import"./FileBrowser-Dg9PfXOo.js";const Ne=({value:t,onChange:u,disabled:i=!1})=>{const[h,b]=o.useState(typeof t=="string"?"custom":"preset"),v=n=>{b(n),u(n==="custom"?"":{type:"preset",preset:"claude_code"})},N=n=>{u({type:"preset",preset:t?.preset||"claude_code",append:n})},y=n=>{u(n)};return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"提示词类型:"}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>v("custom"),disabled:i,className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${h==="custom"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"} ${i?"opacity-50 cursor-not-allowed":""}`,children:"自定义"}),e.jsx("button",{type:"button",onClick:()=>v("preset"),disabled:i,className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${h==="preset"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"} ${i?"opacity-50 cursor-not-allowed":""}`,children:"预设"})]})]}),h==="custom"&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"系统提示词"}),e.jsx("textarea",{value:typeof t=="string"?t:"",onChange:n=>y(n.target.value),disabled:i,rows:8,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-sm dark:bg-gray-700 dark:text-white",placeholder:"输入助手的系统提示词..."})]}),h==="preset"&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"预设类型"}),e.jsx("div",{className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-gray-50 dark:bg-gray-700 text-sm dark:text-white",children:"Claude Code 预设 (使用 Claude Code SDK 的默认提示词)"}),e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"所有预设都基于 Claude Code SDK 的默认提示词,通过追加内容来定制不同用途"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"追加提示词 (可选)"}),e.jsx("textarea",{value:t?.append||"",onChange:n=>N(n.target.value),disabled:i,rows:4,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-sm dark:bg-gray-700 dark:text-white",placeholder:"在预设提示词后追加自定义内容..."}),e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"这段内容将追加到 Claude Code 默认提示词的后面"})]})]})]})},Ue=()=>{const{t}=ue("pages"),{isMobile:u}=me(),{data:i,isLoading:h}=le(),b=ne(),v=oe(),N=de(),y=ie(),[n,f]=o.useState(null),[a,d]=o.useState({}),[c,k]=o.useState(!1),[J,w]=o.useState(!1),[R,x]=o.useState(null),[T,S]=o.useState(null),[p,X]=o.useState(""),[I,U]=o.useState(!1),[C,D]=o.useState([]),[j,P]=o.useState([]),[B,M]=o.useState(!1),[O,L]=o.useState({}),q=i?.agents||[],F=q.filter(s=>s.name.toLowerCase().includes(p.toLowerCase())||s.description.toLowerCase().includes(p.toLowerCase())),Z=s=>{if(T){const r=new URLSearchParams;r.set("project",s);const l=`/chat/${T.id}?${r.toString()}`;window.open(l,"_blank")}w(!1),S(null)},V=async s=>{try{await b.mutateAsync({agentId:s.id,data:{enabled:!s.enabled}}),y.invalidateQueries({queryKey:["agents"]})}catch(r){console.error("Failed to toggle agent:",r),$(t("agents.errors.toggleFailed"))}},G=s=>{f(s),d(s),k(!1);const r=s.allowedTools?.filter(g=>g.enabled).map(g=>g.name)||[],l=r.filter(g=>!g.startsWith("mcp__")),m=r.filter(g=>g.startsWith("mcp__"));D(l),P(m),M(m.length>0)},_=()=>{const s=q.find(m=>m.id==="general-chat"),r={id:`agent-${Date.now()}`,name:"",description:"",version:"1.0.0",systemPrompt:s?.systemPrompt||`You are a general-purpose AI assistant. You can help with:
1
+ import{j as e}from"./data-structures-C0h9Oap1.js";import{r as o}from"./monaco-editor-DHKm5-VF.js";import{T as ae,a as re,b as W,c as E,d as te,e as A}from"./table-D-FJ6K6j.js";import{u as le,d as ne,e as oe,f as de}from"./useAgents-BlQGwXjx.js";import{u as ie}from"./agents-D9dWnZr0.js";import{P as ce}from"./ProjectSelector-Bq0NQ_bV.js";import{U as xe}from"./UnifiedToolSelector-Bw-E7HW4.js";import{b as me,a as $}from"./index-BFYHztzB.js";import{T as K}from"./ToolsList-C9LELdNX.js";import{u as ue}from"./tools-zTM46-tZ.js";import{g as ge,v as he,ag as z,J as Y,y as H,r as pe,ab as be,E as ye,a8 as fe,a3 as je,X as ve}from"./ui-components-BsYwJvCF.js";import"./syntax-highlighting-CnREyncB.js";import"./FileBrowser-Df-zwNDa.js";const Ne=({value:t,onChange:u,disabled:i=!1})=>{const[h,b]=o.useState(typeof t=="string"?"custom":"preset"),v=n=>{b(n),u(n==="custom"?"":{type:"preset",preset:"claude_code"})},N=n=>{u({type:"preset",preset:t?.preset||"claude_code",append:n})},y=n=>{u(n)};return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"提示词类型:"}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>v("custom"),disabled:i,className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${h==="custom"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"} ${i?"opacity-50 cursor-not-allowed":""}`,children:"自定义"}),e.jsx("button",{type:"button",onClick:()=>v("preset"),disabled:i,className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${h==="preset"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"} ${i?"opacity-50 cursor-not-allowed":""}`,children:"预设"})]})]}),h==="custom"&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"系统提示词"}),e.jsx("textarea",{value:typeof t=="string"?t:"",onChange:n=>y(n.target.value),disabled:i,rows:8,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-sm dark:bg-gray-700 dark:text-white",placeholder:"输入助手的系统提示词..."})]}),h==="preset"&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"预设类型"}),e.jsx("div",{className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-gray-50 dark:bg-gray-700 text-sm dark:text-white",children:"Claude Code 预设 (使用 Claude Code SDK 的默认提示词)"}),e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"所有预设都基于 Claude Code SDK 的默认提示词,通过追加内容来定制不同用途"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"追加提示词 (可选)"}),e.jsx("textarea",{value:t?.append||"",onChange:n=>N(n.target.value),disabled:i,rows:4,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-sm dark:bg-gray-700 dark:text-white",placeholder:"在预设提示词后追加自定义内容..."}),e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"这段内容将追加到 Claude Code 默认提示词的后面"})]})]})]})},Ue=()=>{const{t}=ue("pages"),{isMobile:u}=me(),{data:i,isLoading:h}=le(),b=ne(),v=oe(),N=de(),y=ie(),[n,f]=o.useState(null),[a,d]=o.useState({}),[c,k]=o.useState(!1),[J,w]=o.useState(!1),[R,x]=o.useState(null),[T,S]=o.useState(null),[p,X]=o.useState(""),[I,U]=o.useState(!1),[C,D]=o.useState([]),[j,P]=o.useState([]),[B,M]=o.useState(!1),[L,O]=o.useState({}),q=i?.agents||[],F=q.filter(s=>s.name.toLowerCase().includes(p.toLowerCase())||s.description.toLowerCase().includes(p.toLowerCase())),Z=s=>{if(T){const r=new URLSearchParams;r.set("project",s);const l=`/chat/${T.id}?${r.toString()}`;window.open(l,"_blank")}w(!1),S(null)},V=async s=>{try{await b.mutateAsync({agentId:s.id,data:{enabled:!s.enabled}}),y.invalidateQueries({queryKey:["agents"]})}catch(r){console.error("Failed to toggle agent:",r),$(t("agents.errors.toggleFailed"))}},G=s=>{f(s),d(s),k(!1);const r=s.allowedTools?.filter(g=>g.enabled).map(g=>g.name)||[],l=r.filter(g=>!g.startsWith("mcp__")),m=r.filter(g=>g.startsWith("mcp__"));D(l),P(m),M(m.length>0)},_=()=>{const s=q.find(m=>m.id==="general-chat"),r={id:`agent-${Date.now()}`,name:"",description:"",version:"1.0.0",systemPrompt:s?.systemPrompt||`You are a general-purpose AI assistant. You can help with:
2
2
  - General questions and conversations
3
3
  - Problem-solving and brainstorming
4
4
  - Information and explanations
@@ -7,4 +7,4 @@ import{j as e}from"./data-structures-C0h9Oap1.js";import{r as o}from"./monaco-ed
7
7
  - File operations when needed
8
8
 
9
9
  You are helpful, harmless, and honest. Always strive to provide accurate and useful information.
10
- Please respond in Chinese unless the user specifically requests another language.`,maxTurns:s?.maxTurns||void 0,permissionMode:s?.permissionMode||"bypassPermissions",allowedTools:s?.allowedTools||[{name:"Write",enabled:!0},{name:"Read",enabled:!0},{name:"Edit",enabled:!0},{name:"Glob",enabled:!0},{name:"MultiEdit",enabled:!0},{name:"Bash",enabled:!0},{name:"Task",enabled:!0},{name:"WebFetch",enabled:!0},{name:"WebSearch",enabled:!0}],ui:{icon:"🤖",headerTitle:"",headerDescription:""},author:"User",tags:["custom"],enabled:!0};f(null),d(r),k(!0);const l=r.allowedTools?.filter(m=>m.enabled).map(m=>m.name)||[];D(l),P([]),M(!1)},ee=()=>{const s=[...C];return B&&s.push(...j),s.map(l=>({name:l,enabled:!0}))},se=async()=>{if(!a||!a.name?.trim()){x(t("agents.form.nameRequired"));return}if(a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)){x(t("agents.form.maxTurnsError"));return}x(null);try{const s=ee();if(c){if(!a.id||a.id.trim()===""){x("请输入 Agent ID");return}if(!/^[a-zA-Z0-9_-]+$/.test(a.id)){x("ID 只能包含字母、数字、连字符和下划线");return}const l={...a,allowedTools:s,maxTurns:a.maxTurns,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),ui:{...a.ui,headerTitle:a.ui?.headerTitle||a.name,headerDescription:a.ui?.headerDescription||a.description}};await N.mutateAsync(l)}else{if(!n)return;const r={...a,allowedTools:s,maxTurns:a.maxTurns!==void 0?a.maxTurns:null,enabled:n.enabled};await b.mutateAsync({agentId:n.id,data:r})}f(null),d({}),k(!1),x(null),y.invalidateQueries({queryKey:["agents"]})}catch(s){console.error("Failed to save agent:",s);let r=t(c?"agents.errors.createFailed":"agents.errors.saveFailed");if(s?.response?.data?.details?.issues?.length>0){const l=s.response.data.details.issues[0];l.path.includes("maxTurns")&&l.code==="too_big"?r=t("agents.form.maxTurnsExceeded",{maximum:l.maximum}):r=l.message||r}else s?.response?.data?.error?r=s.response.data.error:s?.message&&(r=s.message);x(r)}},Q=async s=>{if(console.log("🗑️ [FRONTEND DEBUG] Attempting to delete agent:",{id:s.id,name:s.name,author:s.author}),s.author==="System"){console.log(`🛑 [FRONTEND DEBUG] Blocked deletion of system agent: ${s.id}`),$("System agents cannot be deleted");return}if(!window.confirm(t("agents.confirmDelete",{name:s.name}))){console.log("❌ [FRONTEND DEBUG] User cancelled deletion");return}console.log("✅ [FRONTEND DEBUG] User confirmed deletion, calling API...");try{await v.mutateAsync(s.id),console.log("✅ [FRONTEND DEBUG] Delete API call successful"),y.invalidateQueries({queryKey:["agents"]}),console.log("🔄 [FRONTEND DEBUG] Invalidated agents query")}catch(l){console.error("❌ [FRONTEND DEBUG] Failed to delete agent:",l),$(t("agents.errors.deleteFailed"))}};return h?e.jsx("div",{className:"p-8 flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),e.jsx("div",{className:"text-gray-600 dark:text-gray-400",children:t("agents.loading")})]})}):e.jsxs("div",{className:"p-8",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"flex items-center justify-between mb-6",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900 dark:text-white",children:t("agents.title")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mt-2",children:t("agents.subtitle")})]})}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(ge,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5"}),e.jsx("input",{type:"text",placeholder:t("agents.searchPlaceholder"),value:p,onChange:s=>X(s.target.value),className:"pl-10 pr-4 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"})]}),e.jsxs("button",{onClick:_,className:"flex items-center space-x-2 px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors whitespace-nowrap",children:[e.jsx(he,{className:"w-5 h-5"}),e.jsx("span",{children:t("agents.createButton")})]})]})]}),F.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:"text-6xl mb-4",children:"🤖"}),e.jsx("h3",{className:"text-xl font-medium text-gray-900 dark:text-white mb-2",children:t(p?"agents.noAgentsSearch":"agents.noAgents")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:t(p?"agents.adjustSearch":"agents.createFirst")}),!p&&e.jsx("button",{onClick:_,className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:t("agents.createButton")})]}):e.jsxs(e.Fragment,{children:[u&&e.jsx("div",{className:"space-y-4",children:F.map(s=>e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("div",{className:"flex items-start space-x-3 mb-4",children:[e.jsx("div",{className:`text-2xl ${s.enabled?"":"opacity-50"}`,children:s.ui.icon}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:`text-base font-medium ${s.enabled?"text-gray-900 dark:text-white":"text-gray-600 dark:text-gray-400"} truncate`,children:s.name}),e.jsx("p",{className:`text-sm ${s.enabled?"text-gray-500 dark:text-gray-400":"text-gray-400 dark:text-gray-500"} truncate mt-1`,children:s.description})]})]}),e.jsx("div",{className:"space-y-2 text-sm mb-4",children:e.jsx("div",{className:"mb-3",children:e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:"工具:"}),e.jsx("div",{className:"flex-1",children:e.jsx(K,{tools:s.allowedTools?.filter(r=>r.enabled).map(r=>r.name)||[],id:s.id,expandedTools:O,setExpandedTools:L,isMobile:!0,emptyMessage:"未启用工具"})})]})})}),e.jsxs("div",{className:"flex items-center justify-between border-t border-gray-200 dark:border-gray-700 pt-3",children:[s.enabled&&e.jsxs("button",{onClick:()=>{S(s),w(!0)},className:"flex items-center space-x-1 px-3 py-1 text-xs text-primary-foreground bg-primary rounded-md",children:[e.jsx(z,{className:"w-3 h-3"}),e.jsx("span",{children:"使用"})]}),e.jsx("button",{onClick:()=>G(s),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded",title:"编辑助手",children:e.jsx(Y,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>Q(s),className:"p-1 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded",title:"删除助手",disabled:s.author==="System",children:e.jsx(H,{className:"w-4 h-4"})})]})]},s.id))}),!u&&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(ae,{children:[e.jsx(re,{children:e.jsxs(W,{children:[e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.agent")}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.config")}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-96",children:"工具"}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.actions")})]})}),e.jsx(te,{children:F.map(s=>e.jsxs(W,{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:[e.jsx(A,{className:"px-6 py-4 whitespace-nowrap w-48",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:`text-2xl mr-4 ${s.enabled?"":"opacity-50"}`,children:s.ui.icon}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:`text-sm font-medium ${s.enabled?"text-gray-900 dark:text-white":"text-gray-600 dark:text-gray-400"} truncate`,children:s.name}),e.jsx("div",{className:`text-sm ${s.enabled?"text-gray-500 dark:text-gray-400":"text-gray-400 dark:text-gray-500"} truncate`,children:s.description})]})]})}),e.jsx(A,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900 dark:text-white w-48",children:e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx(pe,{className:"w-3 h-3 mr-1 text-gray-400"}),e.jsxs("span",{children:["最大轮次: ",s.maxTurns!==void 0?s.maxTurns:"不限制"]})]}),e.jsxs("div",{className:"flex items-center",children:[e.jsx(be,{className:"w-3 h-3 mr-1 text-gray-400"}),e.jsxs("span",{children:["权限: ",s.permissionMode==="default"?"默认":s.permissionMode==="acceptEdits"?"自动接受编辑":s.permissionMode==="bypassPermissions"?"绕过权限":s.permissionMode==="plan"?"规划模式":"默认"]})]})]})}),e.jsx(A,{className:"px-6 py-4 w-96",children:e.jsx(K,{tools:s.allowedTools?.filter(r=>r.enabled).map(r=>r.name)||[],id:s.id,expandedTools:O,setExpandedTools:L,isMobile:!1,emptyMessage:"未启用工具"})}),e.jsx(A,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium w-48",children:e.jsxs("div",{className:"flex items-center space-x-2",children:[s.enabled&&e.jsxs("button",{onClick:()=>{S(s),w(!0)},className:"flex items-center space-x-1 px-3 py-1 text-xs text-primary-foreground bg-primary rounded-md transition-colors hover:opacity-90",title:"开始使用助手",children:[e.jsx(z,{className:"w-3 h-3"}),e.jsx("span",{children:"使用"})]}),e.jsx("button",{onClick:()=>V(s),className:`p-1 rounded transition-colors ${s.enabled?"text-green-600 hover:bg-green-50 dark:hover:bg-green-900/50":"text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700"}`,title:s.enabled?"禁用助手":"启用助手",children:s.enabled?e.jsx(ye,{className:"w-4 h-4"}):e.jsx(fe,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>G(s),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded transition-colors",title:"编辑助手",children:e.jsx(Y,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>Q(s),className:"p-1 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded transition-colors",title:"删除助手",disabled:s.author==="System",children:e.jsx(H,{className:"w-4 h-4"})})]})})]},s.id))})]})})]}),(n||c)&&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 max-w-4xl w-full max-h-[90vh] overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700",children:[e.jsx("h1",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:c?"创建助手":`编辑助手:${n?.name}`}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsxs("button",{onClick:se,disabled:b.isPending||N.isPending,className:"flex items-center space-x-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50",children:[e.jsx(je,{className:"w-4 h-4"}),e.jsx("span",{children:"保存"})]}),e.jsxs("button",{onClick:()=>{f(null),d({}),k(!1),x(null)},className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700",children:[e.jsx(ve,{className:"w-4 h-4"}),e.jsx("span",{children:"取消"})]})]})]}),R&&e.jsx("div",{className:"p-4 bg-red-50 dark:bg-red-900/50 border-b border-red-200 dark:border-red-800",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:e.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),e.jsx("div",{className:"ml-3",children:e.jsx("p",{className:"text-sm text-red-800 dark:text-red-200",children:R})})]})}),e.jsx("div",{className:"p-6 overflow-y-auto max-h-[calc(90vh-80px)]",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"ID"}),e.jsx("input",{type:"text",value:a.id||"",onChange:s=>d({...a,id:s.target.value}),disabled:!c,placeholder:c?"例如: my-custom-agent":"ID 在编辑模式下不可修改",className:`w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white ${c?"border-gray-300 dark:border-gray-600":"bg-gray-100 border-gray-300 text-gray-500 cursor-not-allowed"}`}),c&&e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"ID 用于唯一标识这个助手,只能包含字母、数字和连字符"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"名称"}),e.jsx("input",{type:"text",value:a.name||"",onChange:s=>d({...a,name:s.target.value}),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"描述"}),e.jsx("textarea",{value:a.description||"",onChange:s=>d({...a,description:s.target.value}),rows:6,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"最大轮次"}),e.jsx("input",{type:"number",min:"1",max:"100",value:a.maxTurns!==void 0?a.maxTurns:"",placeholder:"不限制",onChange:s=>{const r=s.target.value;if(r==="")d({...a,maxTurns:void 0});else{const l=parseInt(r);isNaN(l)||d({...a,maxTurns:l})}},className:`w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 dark:bg-gray-700 dark:text-white ${a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)?"border-red-500 focus:ring-red-500":"border-gray-300 dark:border-gray-600 focus:ring-blue-500"}`}),a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)&&e.jsx("p",{className:"text-red-500 dark:text-red-400 text-sm mt-1",children:"最大轮次必须在1-100之间"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"权限模式"}),e.jsxs("select",{value:a.permissionMode||"default",onChange:s=>d({...a,permissionMode:s.target.value}),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white",children:[e.jsx("option",{value:"default",children:"默认"}),e.jsx("option",{value:"acceptEdits",children:"自动接受编辑"}),e.jsx("option",{value:"bypassPermissions",children:"绕过权限检查"}),e.jsx("option",{value:"plan",children:"规划模式"})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-4",children:e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"图标"}),e.jsx("input",{type:"text",value:a.ui?.icon||"",onChange:s=>d({...a,ui:{...a.ui,icon:s.target.value}}),placeholder:"🤖",className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]})})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"启用的工具"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>U(!I),className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded-lg transition-colors text-sm",children:"选择工具"}),(C.length>0||j.length>0)&&e.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:["常规工具 ",C.length," 个",j.length>0&&`, MCP工具 ${j.length} 个`]}),e.jsx(xe,{isOpen:I,onClose:()=>U(!1),selectedRegularTools:C,onRegularToolsChange:D,selectedMcpTools:j,onMcpToolsChange:P,mcpToolsEnabled:B,onMcpEnabledChange:M})]})]}),e.jsx("div",{children:e.jsx(Ne,{value:a.systemPrompt||"",onChange:s=>d({...a,systemPrompt:s}),disabled:n?.id==="claude-code"})})]})})]})}),J&&T&&e.jsx(ce,{agent:T,onProjectSelect:Z,onClose:()=>{w(!1),S(null)}})]})};export{Ue as AgentsPage};
10
+ Please respond in Chinese unless the user specifically requests another language.`,maxTurns:s?.maxTurns||void 0,permissionMode:s?.permissionMode||"bypassPermissions",allowedTools:s?.allowedTools||[{name:"Write",enabled:!0},{name:"Read",enabled:!0},{name:"Edit",enabled:!0},{name:"Glob",enabled:!0},{name:"MultiEdit",enabled:!0},{name:"Bash",enabled:!0},{name:"Task",enabled:!0},{name:"WebFetch",enabled:!0},{name:"WebSearch",enabled:!0}],ui:{icon:"🤖",headerTitle:"",headerDescription:""},author:"User",tags:["custom"],enabled:!0};f(null),d(r),k(!0);const l=r.allowedTools?.filter(m=>m.enabled).map(m=>m.name)||[];D(l),P([]),M(!1)},ee=()=>{const s=[...C];return B&&s.push(...j),s.map(l=>({name:l,enabled:!0}))},se=async()=>{if(!a||!a.name?.trim()){x(t("agents.form.nameRequired"));return}if(a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)){x(t("agents.form.maxTurnsError"));return}x(null);try{const s=ee();if(c){if(!a.id||a.id.trim()===""){x("请输入 Agent ID");return}if(!/^[a-zA-Z0-9_-]+$/.test(a.id)){x("ID 只能包含字母、数字、连字符和下划线");return}const l={...a,allowedTools:s,maxTurns:a.maxTurns,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),ui:{...a.ui,headerTitle:a.ui?.headerTitle||a.name,headerDescription:a.ui?.headerDescription||a.description}};await N.mutateAsync(l)}else{if(!n)return;const r={...a,allowedTools:s,maxTurns:a.maxTurns!==void 0?a.maxTurns:null,enabled:n.enabled};await b.mutateAsync({agentId:n.id,data:r})}f(null),d({}),k(!1),x(null),y.invalidateQueries({queryKey:["agents"]})}catch(s){console.error("Failed to save agent:",s);let r=t(c?"agents.errors.createFailed":"agents.errors.saveFailed");if(s?.response?.data?.details?.issues?.length>0){const l=s.response.data.details.issues[0];l.path.includes("maxTurns")&&l.code==="too_big"?r=t("agents.form.maxTurnsExceeded",{maximum:l.maximum}):r=l.message||r}else s?.response?.data?.error?r=s.response.data.error:s?.message&&(r=s.message);x(r)}},Q=async s=>{if(console.log("🗑️ [FRONTEND DEBUG] Attempting to delete agent:",{id:s.id,name:s.name,author:s.author}),s.author==="System"){console.log(`🛑 [FRONTEND DEBUG] Blocked deletion of system agent: ${s.id}`),$("System agents cannot be deleted");return}if(!window.confirm(t("agents.confirmDelete",{name:s.name}))){console.log("❌ [FRONTEND DEBUG] User cancelled deletion");return}console.log("✅ [FRONTEND DEBUG] User confirmed deletion, calling API...");try{await v.mutateAsync(s.id),console.log("✅ [FRONTEND DEBUG] Delete API call successful"),y.invalidateQueries({queryKey:["agents"]}),console.log("🔄 [FRONTEND DEBUG] Invalidated agents query")}catch(l){console.error("❌ [FRONTEND DEBUG] Failed to delete agent:",l),$(t("agents.errors.deleteFailed"))}};return h?e.jsx("div",{className:"p-8 flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),e.jsx("div",{className:"text-gray-600 dark:text-gray-400",children:t("agents.loading")})]})}):e.jsxs("div",{className:"p-8",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"flex items-center justify-between mb-6",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900 dark:text-white",children:t("agents.title")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mt-2",children:t("agents.subtitle")})]})}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(ge,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5"}),e.jsx("input",{type:"text",placeholder:t("agents.searchPlaceholder"),value:p,onChange:s=>X(s.target.value),className:"pl-10 pr-4 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"})]}),e.jsxs("button",{onClick:_,className:"flex items-center space-x-2 px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors whitespace-nowrap",children:[e.jsx(he,{className:"w-5 h-5"}),e.jsx("span",{children:t("agents.createButton")})]})]})]}),F.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:"text-6xl mb-4",children:"🤖"}),e.jsx("h3",{className:"text-xl font-medium text-gray-900 dark:text-white mb-2",children:t(p?"agents.noAgentsSearch":"agents.noAgents")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:t(p?"agents.adjustSearch":"agents.createFirst")}),!p&&e.jsx("button",{onClick:_,className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:t("agents.createButton")})]}):e.jsxs(e.Fragment,{children:[u&&e.jsx("div",{className:"space-y-4",children:F.map(s=>e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("div",{className:"flex items-start space-x-3 mb-4",children:[e.jsx("div",{className:`text-2xl ${s.enabled?"":"opacity-50"}`,children:s.ui.icon}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:`text-base font-medium ${s.enabled?"text-gray-900 dark:text-white":"text-gray-600 dark:text-gray-400"} truncate`,children:s.name}),e.jsx("p",{className:`text-sm ${s.enabled?"text-gray-500 dark:text-gray-400":"text-gray-400 dark:text-gray-500"} truncate mt-1`,children:s.description})]})]}),e.jsx("div",{className:"space-y-2 text-sm mb-4",children:e.jsx("div",{className:"mb-3",children:e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:"工具:"}),e.jsx("div",{className:"flex-1",children:e.jsx(K,{tools:s.allowedTools?.filter(r=>r.enabled).map(r=>r.name)||[],id:s.id,expandedTools:L,setExpandedTools:O,isMobile:!0,emptyMessage:"未启用工具"})})]})})}),e.jsxs("div",{className:"flex items-center justify-between border-t border-gray-200 dark:border-gray-700 pt-3",children:[s.enabled&&e.jsxs("button",{onClick:()=>{S(s),w(!0)},className:"flex items-center space-x-1 px-3 py-1 text-xs text-primary-foreground bg-primary rounded-md",children:[e.jsx(z,{className:"w-3 h-3"}),e.jsx("span",{children:"使用"})]}),e.jsx("button",{onClick:()=>G(s),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded",title:"编辑助手",children:e.jsx(Y,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>Q(s),className:"p-1 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded",title:"删除助手",disabled:s.author==="System",children:e.jsx(H,{className:"w-4 h-4"})})]})]},s.id))}),!u&&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(ae,{children:[e.jsx(re,{children:e.jsxs(W,{children:[e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.agent")}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.config")}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-96",children:"工具"}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.actions")})]})}),e.jsx(te,{children:F.map(s=>e.jsxs(W,{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:[e.jsx(A,{className:"px-6 py-4 whitespace-nowrap w-48",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:`text-2xl mr-4 ${s.enabled?"":"opacity-50"}`,children:s.ui.icon}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:`text-sm font-medium ${s.enabled?"text-gray-900 dark:text-white":"text-gray-600 dark:text-gray-400"} truncate`,children:s.name}),e.jsx("div",{className:`text-sm ${s.enabled?"text-gray-500 dark:text-gray-400":"text-gray-400 dark:text-gray-500"} truncate`,children:s.description})]})]})}),e.jsx(A,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900 dark:text-white w-48",children:e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx(pe,{className:"w-3 h-3 mr-1 text-gray-400"}),e.jsxs("span",{children:["最大轮次: ",s.maxTurns!==void 0?s.maxTurns:"不限制"]})]}),e.jsxs("div",{className:"flex items-center",children:[e.jsx(be,{className:"w-3 h-3 mr-1 text-gray-400"}),e.jsxs("span",{children:["权限: ",s.permissionMode==="default"?"默认":s.permissionMode==="acceptEdits"?"自动接受编辑":s.permissionMode==="bypassPermissions"?"绕过权限":s.permissionMode==="plan"?"规划模式":"默认"]})]})]})}),e.jsx(A,{className:"px-6 py-4 w-96",children:e.jsx(K,{tools:s.allowedTools?.filter(r=>r.enabled).map(r=>r.name)||[],id:s.id,expandedTools:L,setExpandedTools:O,isMobile:!1,emptyMessage:"未启用工具"})}),e.jsx(A,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium w-48",children:e.jsxs("div",{className:"flex items-center space-x-2",children:[s.enabled&&e.jsxs("button",{onClick:()=>{S(s),w(!0)},className:"flex items-center space-x-1 px-3 py-1 text-xs text-primary-foreground bg-primary rounded-md transition-colors hover:opacity-90",title:"开始使用助手",children:[e.jsx(z,{className:"w-3 h-3"}),e.jsx("span",{children:"使用"})]}),e.jsx("button",{onClick:()=>V(s),className:`p-1 rounded transition-colors ${s.enabled?"text-green-600 hover:bg-green-50 dark:hover:bg-green-900/50":"text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700"}`,title:s.enabled?"禁用助手":"启用助手",children:s.enabled?e.jsx(ye,{className:"w-4 h-4"}):e.jsx(fe,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>G(s),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded transition-colors",title:"编辑助手",children:e.jsx(Y,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>Q(s),className:"p-1 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded transition-colors",title:"删除助手",disabled:s.author==="System",children:e.jsx(H,{className:"w-4 h-4"})})]})})]},s.id))})]})})]}),(n||c)&&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 max-w-4xl w-full max-h-[90vh] overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700",children:[e.jsx("h1",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:c?"创建助手":`编辑助手:${n?.name}`}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsxs("button",{onClick:se,disabled:b.isPending||N.isPending,className:"flex items-center space-x-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50",children:[e.jsx(je,{className:"w-4 h-4"}),e.jsx("span",{children:"保存"})]}),e.jsxs("button",{onClick:()=>{f(null),d({}),k(!1),x(null)},className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700",children:[e.jsx(ve,{className:"w-4 h-4"}),e.jsx("span",{children:"取消"})]})]})]}),R&&e.jsx("div",{className:"p-4 bg-red-50 dark:bg-red-900/50 border-b border-red-200 dark:border-red-800",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:e.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),e.jsx("div",{className:"ml-3",children:e.jsx("p",{className:"text-sm text-red-800 dark:text-red-200",children:R})})]})}),e.jsx("div",{className:"p-6 overflow-y-auto max-h-[calc(90vh-80px)]",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"ID"}),e.jsx("input",{type:"text",value:a.id||"",onChange:s=>d({...a,id:s.target.value}),disabled:!c,placeholder:c?"例如: my-custom-agent":"ID 在编辑模式下不可修改",className:`w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white ${c?"border-gray-300 dark:border-gray-600":"bg-gray-100 border-gray-300 text-gray-500 cursor-not-allowed"}`}),c&&e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"ID 用于唯一标识这个助手,只能包含字母、数字和连字符"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"名称"}),e.jsx("input",{type:"text",value:a.name||"",onChange:s=>d({...a,name:s.target.value}),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"描述"}),e.jsx("textarea",{value:a.description||"",onChange:s=>d({...a,description:s.target.value}),rows:6,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"最大轮次"}),e.jsx("input",{type:"number",min:"1",max:"100",value:a.maxTurns!==void 0?a.maxTurns:"",placeholder:"不限制",onChange:s=>{const r=s.target.value;if(r==="")d({...a,maxTurns:void 0});else{const l=parseInt(r);isNaN(l)||d({...a,maxTurns:l})}},className:`w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 dark:bg-gray-700 dark:text-white ${a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)?"border-red-500 focus:ring-red-500":"border-gray-300 dark:border-gray-600 focus:ring-blue-500"}`}),a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)&&e.jsx("p",{className:"text-red-500 dark:text-red-400 text-sm mt-1",children:"最大轮次必须在1-100之间"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"权限模式"}),e.jsxs("select",{value:a.permissionMode||"default",onChange:s=>d({...a,permissionMode:s.target.value}),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white",children:[e.jsx("option",{value:"default",children:"默认"}),e.jsx("option",{value:"acceptEdits",children:"自动接受编辑"}),e.jsx("option",{value:"bypassPermissions",children:"绕过权限检查"}),e.jsx("option",{value:"plan",children:"规划模式"})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-4",children:e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"图标"}),e.jsx("input",{type:"text",value:a.ui?.icon||"",onChange:s=>d({...a,ui:{...a.ui,icon:s.target.value}}),placeholder:"🤖",className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]})})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"启用的工具"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>U(!I),className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded-lg transition-colors text-sm",children:"选择工具"}),(C.length>0||j.length>0)&&e.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:["常规工具 ",C.length," 个",j.length>0&&`, MCP工具 ${j.length} 个`]}),e.jsx(xe,{isOpen:I,onClose:()=>U(!1),selectedRegularTools:C,onRegularToolsChange:D,selectedMcpTools:j,onMcpToolsChange:P,mcpToolsEnabled:B,onMcpEnabledChange:M})]})]}),e.jsx("div",{children:e.jsx(Ne,{value:a.systemPrompt||"",onChange:s=>d({...a,systemPrompt:s}),disabled:n?.id==="claude-code"})})]})})]})}),J&&T&&e.jsx(ce,{agent:T,onProjectSelect:Z,onClose:()=>{w(!1),S(null)}})]})};export{Ue as AgentsPage};
@@ -1 +1 @@
1
- import{j as s}from"./data-structures-C0h9Oap1.js";import{W as d}from"./monaco-editor-DHKm5-VF.js";import{t as i,h as u}from"./index-BUj-AMWq.js";function c(...o){return i(u(o))}const f=d.forwardRef(({className:o,variant:e="default",size:r="default",...t},n)=>s.jsx("button",{className:c("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{"bg-primary text-primary-foreground hover:bg-primary/90":e==="default","bg-destructive text-destructive-foreground hover:bg-destructive/90":e==="destructive","border border-input bg-background hover:bg-accent hover:text-accent-foreground":e==="outline","bg-secondary text-secondary-foreground hover:bg-secondary/80":e==="secondary","hover:bg-accent hover:text-accent-foreground":e==="ghost"},{"h-10 px-4 py-2":r==="default","h-9 rounded-md px-3":r==="sm","h-11 rounded-md px-8":r==="lg","h-10 w-10":r==="icon"},o),ref:n,...t}));f.displayName="Button";export{f as B,c};
1
+ import{j as s}from"./data-structures-C0h9Oap1.js";import{W as d}from"./monaco-editor-DHKm5-VF.js";import{t as i,h as u}from"./index-BFYHztzB.js";function c(...o){return i(u(o))}const f=d.forwardRef(({className:o,variant:e="default",size:r="default",...t},n)=>s.jsx("button",{className:c("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{"bg-primary text-primary-foreground hover:bg-primary/90":e==="default","bg-destructive text-destructive-foreground hover:bg-destructive/90":e==="destructive","border border-input bg-background hover:bg-accent hover:text-accent-foreground":e==="outline","bg-secondary text-secondary-foreground hover:bg-secondary/80":e==="secondary","hover:bg-accent hover:text-accent-foreground":e==="ghost"},{"h-10 px-4 py-2":r==="default","h-9 rounded-md px-3":r==="sm","h-11 rounded-md px-8":r==="lg","h-10 w-10":r==="icon"},o),ref:n,...t}));f.displayName="Button";export{f as B,c};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-CponDeYZ.js","assets/graph-BoMdSZEp.js","assets/_baseUniq-DyqfOLmW.js","assets/layout-BezNHWMi.js","assets/_basePickBy-lvDxpUoY.js","assets/clone-Bbn_OKGL.js","assets/data-structures-C0h9Oap1.js","assets/monaco-editor-DHKm5-VF.js","assets/syntax-highlighting-CnREyncB.js","assets/agents-DmLFhp96.js","assets/tools-XV29tg8x.js","assets/ui-components-ND8WdSiV.js","assets/agents-DwCY2K8p.css","assets/useAgents-COcSvqDE.js","assets/useSessions-C2gXprHI.js","assets/index-BUj-AMWq.js","assets/index-CEBbr0XW.css","assets/useCommands-D79pjz3C.js","assets/useClaudeVersions-C8b4adpW.js","assets/FileExplorer-B7BFy0Tu.js","assets/UnifiedToolSelector-CnFTY88B.js","assets/FileBrowser-Dg9PfXOo.js","assets/ProjectSelector-B1_umywl.js","assets/cose-bilkent-S5V4N54A-BIz6tY7t.js","assets/cytoscape.esm-DtBltrT8.js","assets/c4Diagram-YG6GDRKO-MlkMVL2r.js","assets/chunk-TZMSLE5B-xkKgCGO2.js","assets/flowDiagram-NV44I4VS-IKSFEVlB.js","assets/chunk-FMBD7UC4-BjJNxbrL.js","assets/chunk-55IACEB6-DtWZPbH-.js","assets/chunk-QN33PNHL-rs7Z3IPT.js","assets/channel-DHM1jRJ0.js","assets/erDiagram-Q2GNP2WA-Ro9hB6-s.js","assets/gitGraphDiagram-NY62KEGX-c_yb5ztL.js","assets/chunk-4BX2VUAB-BI02zXQl.js","assets/chunk-QZHKN3VN-DoIXOkrg.js","assets/treemap-KMMF4GRG-CP2M7QfX.js","assets/ganttDiagram-LVOFAZNH-CPDNSzAq.js","assets/linear-KRX5ckNK.js","assets/init-Gi6I4Gst.js","assets/defaultLocale-C4B-KCzX.js","assets/infoDiagram-F6ZHWCRC-904Ek2Zh.js","assets/pieDiagram-ADFJNKIX-Bbzzfu-z.js","assets/arc-DuR7lLva.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-AYHSOK5B-DubsKDPG.js","assets/xychartDiagram-PRI3JC2R-OdQKUqyr.js","assets/requirementDiagram-UZGBJVZJ-B-rG6Gty.js","assets/sequenceDiagram-WL72ISMW-BRlH6dPX.js","assets/classDiagram-2ON5EDUG-BJtIba9N.js","assets/chunk-B4BG7PRW-yLeRKRZl.js","assets/classDiagram-v2-WZHVMYZB-BJtIba9N.js","assets/stateDiagram-FKZM4ZOC-BeAzs0_-.js","assets/chunk-DI55MBZ5-DF-5ELa5.js","assets/stateDiagram-v2-4FDKWEC3-C0c8d9Xs.js","assets/journeyDiagram-XKPGCS4Q-D4izttrO.js","assets/timeline-definition-IT6M3QCI-BU_B1RmT.js","assets/mindmap-definition-VGOIOE7T-Dlr09KqO.js","assets/kanban-definition-3W4ZIXB7-DE7WCrea.js","assets/sankeyDiagram-TZEHDZUN-DU7Rgr_5.js","assets/diagram-S2PKOQOG-BKs_7af1.js","assets/diagram-QEK2KX5R-C6RWP-cs.js","assets/blockDiagram-VD42YOAC-DdR02awp.js","assets/architectureDiagram-VXUJARFQ-CkKlTxxx.js","assets/diagram-PSM6KHXK-D31S6iiK.js"])))=>i.map(i=>d[i]);
2
- import{j as p}from"./data-structures-C0h9Oap1.js";import{r as O,g as Au,W as xr}from"./monaco-editor-DHKm5-VF.js";import{o as ig,A as nc,a as ic,u as Nu,h as l1,l as c1,d as u1,p as h1,S as d1}from"./agents-DmLFhp96.js";import{g as f1,h as p1,i as g1,j as m1,k as x1}from"./useAgents-COcSvqDE.js";import{u as y1}from"./useSessions-C2gXprHI.js";import{u as Ce,B as Ke,T as Ve,b as b1,K as k1,c as w1}from"./tools-XV29tg8x.js";import{m as en,g as od,aq as v1,o as C1,aa as sg,I as sc,aW as ag,aX as og,X as En,k as pi,l as Ps,av as Sa,L as _a,C as tn,n as Ta,j as ac,Z as Ea,aY as S1,Y as xl,aZ as _1,a_ as aa,a$ as T1,E as E1,ao as lg,az as A1,aw as N1,V as cg,b0 as ld,d as cd,w as Mu,a9 as M1,e as ug,ag as ud,S as hd,b1 as L1,ap as hg,b2 as I1,y as $1,v as dg,r as j1,au as B1,b3 as ks,a2 as fg,i as pg,z as dd,b4 as D1,b5 as fd,u as P1}from"./ui-components-ND8WdSiV.js";import{c as R1,m as gg,k as F1,b as mg,n as O1,u as z1}from"./index-BUj-AMWq.js";import{u as oc,f as lc}from"./useCommands-D79pjz3C.js";import{u as W1}from"./useClaudeVersions-C8b4adpW.js";import{e as cc,E as uc,F as pd}from"./FileExplorer-B7BFy0Tu.js";import{c as Fe,h as xg}from"./syntax-highlighting-CnREyncB.js";import{U as Lu}from"./UnifiedToolSelector-CnFTY88B.js";import{F as H1}from"./FileBrowser-Dg9PfXOo.js";import{P as q1}from"./ProjectSelector-B1_umywl.js";const Xe=ig((e,t)=>({currentAgent:null,messages:[],isAiTyping:!1,currentSessionId:null,mcpStatus:{hasError:!1,connectedServers:[],connectionErrors:[],lastError:null,lastErrorDetails:void 0,lastUpdated:void 0},pendingUserQuestion:null,activeA2AStreams:{},sidebarCollapsed:!1,setCurrentAgent:r=>e(n=>({currentAgent:r,...n.currentAgent?.id!==r?.id?{messages:[],isAiTyping:!1,currentSessionId:null}:{}})),addMessage:r=>e(n=>({messages:[...n.messages,{...r,id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,timestamp:Date.now(),agentId:n.currentAgent?.id||"unknown",messageParts:[]}]})),updateMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,...n}:s)})),addTextPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"text",content:n,order:(s.messageParts||[]).length}]}:s)})),addThinkingPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"thinking",content:n,order:(s.messageParts||[]).length}]}:s)})),updateTextPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="text"&&o.id===n?{...o,content:i}:o)}:a)})),updateThinkingPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="thinking"&&o.id===n?{...o,content:i}:o)}:a)})),addCompactSummaryPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"compactSummary",content:n,order:(s.messageParts||[]).length}]}:s)})),addCommandPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"command",content:n,order:(s.messageParts||[]).length}]}:s)})),addToolPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"tool",toolData:{...n,id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,isExecuting:n.isExecuting??!1},order:(s.messageParts||[]).length}]}:s)})),updateToolPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="tool"&&o.toolData?.id===n?{...o,toolData:o.toolData?{...o.toolData,...i}:void 0}:o)}:a)})),interruptAllExecutingTools:()=>e(r=>({messages:r.messages.map(n=>({...n,messageParts:n.messageParts?.map(i=>i.type==="tool"&&i.toolData?.isExecuting?{...i,toolData:{...i.toolData,isExecuting:!1,isInterrupted:!0}}:i)}))})),setAiTyping:r=>e({isAiTyping:r}),setCurrentSessionId:r=>e({currentSessionId:r}),clearMessages:()=>e({messages:[]}),loadSessionMessages:r=>e({messages:r}),updateMcpStatus:r=>e(n=>({mcpStatus:{...n.mcpStatus,...r,lastUpdated:Date.now()}})),clearMcpStatus:()=>e({mcpStatus:{hasError:!1,connectedServers:[],connectionErrors:[],lastError:null,lastErrorDetails:void 0,lastUpdated:void 0}}),setPendingUserQuestion:r=>e({pendingUserQuestion:r}),setA2AStreamStart:(r,n,i)=>e(s=>({activeA2AStreams:{...s.activeA2AStreams,[r]:{sessionId:n,agentUrl:r,message:i,startedAt:Date.now(),isStreaming:!0,events:[]}}})),setA2AStreamEnd:r=>e(n=>{const i=n.activeA2AStreams[r];return i?{activeA2AStreams:{...n.activeA2AStreams,[r]:{...i,isStreaming:!1}}}:n}),addA2AStreamEvent:(r,n)=>e(i=>{const s=i.activeA2AStreams[r];return s?{activeA2AStreams:{...i.activeA2AStreams,[r]:{...s,events:[...s.events,n]}}}:{activeA2AStreams:{...i.activeA2AStreams,[r]:{sessionId:n.sessionId||"",agentUrl:r,message:"",startedAt:Date.now(),isStreaming:!0,events:[n]}}}}),getA2AStreamByUrl:r=>t().activeA2AStreams[r],setSidebarCollapsed:r=>e({sidebarCollapsed:r})}));class et{static instance;static STORAGE_KEY="active_chat_tabs";static WAKEUP_SIGNAL_KEY="tab_wakeup_signal";static WAKEUP_RESPONSE_KEY="tab_wakeup_response";static TAB_TIMEOUT=300*1e3;currentTabId;cleanupInterval;lastKnownSession=null;sessionResumeHistory=[];constructor(){this.currentTabId=this.generateTabId(),this.startCleanupTimer(),this.setupBeforeUnloadHandler(),console.log(`📱 TabManager initialized with ID: ${this.currentTabId}`)}static getInstance(){return et.instance||(et.instance=new et),et.instance}registerCurrentTab(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r),s={agentId:t,sessionId:r,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title};n[i]=s,this.saveActiveTabs(n),console.log(`📱 Tab registered: ${this.currentTabId} for session ${r}`),this.lastKnownSession={agentId:t,sessionId:r}}updateCurrentTabActivity(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);n[i]&&n[i].tabId===this.currentTabId&&(n[i].lastSeen=Date.now(),n[i].url=window.location.href,n[i].title=document.title,this.saveActiveTabs(n),this.lastKnownSession={agentId:t,sessionId:r})}hasActiveTab(t,r){return this.findActiveTabForSession(t,r)!==null}findActiveTabForSession(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);if(n[i]&&Date.now()-n[i].lastSeen<et.TAB_TIMEOUT)return n[i];for(const[s,a]of Object.entries(n))if(a.agentId===t&&a.sessionId===r){if(Date.now()-a.lastSeen<et.TAB_TIMEOUT)return a;delete n[s],this.saveActiveTabs(n),console.log(`🗑️ Cleaned up expired tab: ${r}`)}return null}async wakeupExistingTab(t,r,n){if(!this.findActiveTabForSession(t,r))return!1;const s={type:"WAKEUP",agentId:t,sessionId:r,requestId:this.generateRequestId(),timestamp:Date.now(),sourceUrl:n||window.location.href};return console.log(`🔔 Sending wakeup signal for session: ${r}`),localStorage.setItem(et.WAKEUP_SIGNAL_KEY,JSON.stringify(s)),new Promise(a=>{const o=setTimeout(()=>{console.log(`⏰ Wakeup timeout for session ${r}`),a(!1)},2e3),c=setInterval(()=>{const u=localStorage.getItem(et.WAKEUP_RESPONSE_KEY);if(u)try{const h=JSON.parse(u);if(h.requestId===s.requestId){clearTimeout(o),localStorage.removeItem(et.WAKEUP_RESPONSE_KEY),console.log(`✅ Tab awakened successfully: ${r}`),a(h.success);return}}catch(h){console.error("Error parsing wakeup response:",h)}},100);setTimeout(()=>clearInterval(c),2e3)})}setupWakeupListener(t,r){const n=s=>{if(s.key===et.WAKEUP_SIGNAL_KEY&&s.newValue)try{const a=JSON.parse(s.newValue);a.type==="WAKEUP"&&a.agentId===t&&a.sessionId===r&&this.handleWakeupSignal(a)}catch(a){console.error("Error handling wakeup signal:",a)}};window.addEventListener("storage",n);const i=setInterval(()=>{const s=localStorage.getItem(et.WAKEUP_SIGNAL_KEY);if(s)try{const a=JSON.parse(s);a.type==="WAKEUP"&&a.agentId===t&&a.sessionId===r&&Date.now()-a.timestamp<5e3&&this.handleWakeupSignal(a)}catch(a){console.error("Error polling wakeup signal:",a)}},500);return console.log(`🎯 Wakeup listener setup for session: ${r}`),()=>{window.removeEventListener("storage",n),clearInterval(i),console.log(`🎯 Wakeup listener cleaned up for session: ${r}`)}}updateCurrentTabSession(t,r,n,i){const s=this.getActiveTabs(),a=this.getTabKey(t,r);s[a]&&s[a].tabId===this.currentTabId&&delete s[a];const o=this.getTabKey(n,i);s[o]={agentId:n,sessionId:i,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(s),console.log(`🔄 Tab session updated: ${r} → ${i}`),this.lastKnownSession={agentId:n,sessionId:i}}unregisterCurrentTabSession(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);n[i]&&n[i].tabId===this.currentTabId&&(delete n[i],this.saveActiveTabs(n),console.log(`📤 Unregistered current tab from session: ${r}`)),this.lastKnownSession&&this.lastKnownSession.agentId===t&&this.lastKnownSession.sessionId===r&&(this.lastKnownSession=null)}handleSessionResume(t,r,n){const i=this.getActiveTabs(),s=this.getTabKey(t,r),a=this.getTabKey(t,n);i[s]&&i[s].tabId===this.currentTabId?(delete i[s],i[a]={agentId:t,sessionId:n,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(i),console.log(`🔄 Session resumed: ${r} → ${n}`),this.lastKnownSession={agentId:t,sessionId:n}):(this.registerCurrentTab(t,n),console.log(`🆕 Resumed session registered: ${n}`))}recordSessionResume(t,r,n){this.sessionResumeHistory.push({originalSessionId:r,newSessionId:n,timestamp:Date.now(),agentId:t}),this.sessionResumeHistory.length>100&&(this.sessionResumeHistory=this.sessionResumeHistory.slice(-100)),console.log(`📝 Recorded session resume: ${r} → ${n}`)}smartUpdateCurrentTab(){const t=window.location.href,r=this.parseSessionFromUrl(t);if(!r){this.lastKnownSession&&(this.unregisterCurrentTabSession(this.lastKnownSession.agentId,this.lastKnownSession.sessionId),this.lastKnownSession=null);return}const{agentId:n,sessionId:i}=r;if(this.lastKnownSession){const{agentId:s,sessionId:a}=this.lastKnownSession;a!==i||s!==n?this.sessionResumeHistory.find(l=>l.originalSessionId===a&&l.newSessionId===i&&l.agentId===n&&Date.now()-l.timestamp<3e4)?(this.handleSessionResume(n,a,i),console.log(`🔄 Detected session resume via URL: ${a} → ${i}`)):(this.updateCurrentTabSession(s,a,n,i),console.log(`🎯 Regular session switch: ${a} → ${i}`)):this.updateCurrentTabActivity(n,i)}else this.registerCurrentTab(n,i),console.log(`🎯 Initial session register: ${i}`);this.lastKnownSession={agentId:n,sessionId:i}}startSmartMonitoring(){this.smartUpdateCurrentTab();const t=()=>{setTimeout(()=>this.smartUpdateCurrentTab(),100)};window.addEventListener("popstate",t);const r=history.pushState,n=history.replaceState;return history.pushState=function(...i){r.apply(this,i),t()},history.replaceState=function(...i){n.apply(this,i),t()},console.log(`🎯 Smart monitoring started for tab: ${this.currentTabId}`),()=>{window.removeEventListener("popstate",t),history.pushState=r,history.replaceState=n,console.log(`🛑 Smart monitoring stopped for tab: ${this.currentTabId}`)}}handleWakeupSignal(t){console.log(`🔔 Received wakeup signal for session: ${t.sessionId}`);try{if(window.focus(),window.parent&&window.parent!==window&&window.parent.focus(),document.hidden){const n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});document.dispatchEvent(n)}}catch(n){console.log("Focus attempt failed:",n)}this.flashPageTitle(),this.playNotificationSound(),t.sourceUrl&&t.sourceUrl!==window.location.href?this.isSameSession(t.sourceUrl,window.location.href)?(console.log("🎯 URLs point to same session, forcing visibility"),this.makePageVisible()):(console.log(`🔄 Navigating to: ${t.sourceUrl}`),window.history.replaceState(null,"",t.sourceUrl),window.location.reload()):this.makePageVisible();const r={requestId:t.requestId,agentId:t.agentId,sessionId:t.sessionId,success:!0,timestamp:Date.now()};localStorage.setItem(et.WAKEUP_RESPONSE_KEY,JSON.stringify(r)),localStorage.removeItem(et.WAKEUP_SIGNAL_KEY),this.updateCurrentTabActivity(t.agentId,t.sessionId),console.log(`✅ Wakeup signal processed successfully for session: ${t.sessionId}`)}flashPageTitle(){const t=document.title;let r=0;const n=setInterval(()=>{document.title=r%2===0?"🔔 会话已唤起":t,r++,r>6&&(clearInterval(n),document.title=t)},500),i=()=>{clearInterval(n),document.title=t,window.removeEventListener("focus",i)};window.addEventListener("focus",i)}playNotificationSound(){try{const t=new(window.AudioContext||window.webkitAudioContext),r=t.createOscillator(),n=t.createGain();r.connect(n),n.connect(t.destination),r.frequency.setValueAtTime(800,t.currentTime),r.frequency.setValueAtTime(600,t.currentTime+.1),n.gain.setValueAtTime(.1,t.currentTime),n.gain.exponentialRampToValueAtTime(.01,t.currentTime+.2),r.start(t.currentTime),r.stop(t.currentTime+.2)}catch(t){console.log("Audio notification not supported:",t)}}makePageVisible(){try{window.scrollTo(0,0),document.fullscreenEnabled&&document.documentElement.requestFullscreen?.()?.then(()=>{setTimeout(()=>{document.exitFullscreen?.()},100)}).catch(n=>console.log("Fullscreen toggle failed:",n));const t=document.createElement("div");t.style.cssText=`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-CxaKwQyB.js","assets/graph-B12xs1JB.js","assets/_baseUniq-BmQef9o6.js","assets/layout-OtboCb25.js","assets/_basePickBy-D_S4EWYL.js","assets/clone-180En6VP.js","assets/data-structures-C0h9Oap1.js","assets/monaco-editor-DHKm5-VF.js","assets/syntax-highlighting-CnREyncB.js","assets/agents-D9dWnZr0.js","assets/tools-zTM46-tZ.js","assets/ui-components-BsYwJvCF.js","assets/agents-DwCY2K8p.css","assets/useAgents-BlQGwXjx.js","assets/useSessions-BAxZ6l2n.js","assets/index-BFYHztzB.js","assets/index-isG0t1ZM.css","assets/useCommands-DOxDeFSx.js","assets/useClaudeVersions-DJ6VKG1y.js","assets/FileExplorer-BB3suHzW.js","assets/UnifiedToolSelector-Bw-E7HW4.js","assets/FileBrowser-Df-zwNDa.js","assets/ProjectSelector-Bq0NQ_bV.js","assets/cose-bilkent-S5V4N54A-s2WN1XmV.js","assets/cytoscape.esm-DtBltrT8.js","assets/c4Diagram-YG6GDRKO-DqFGiZ7Y.js","assets/chunk-TZMSLE5B-BUZTflc7.js","assets/flowDiagram-NV44I4VS-QLwVU4W3.js","assets/chunk-FMBD7UC4--jXmtjeY.js","assets/chunk-55IACEB6-DTotxzVH.js","assets/chunk-QN33PNHL-D-FiWiLB.js","assets/channel-DlGw39mX.js","assets/erDiagram-Q2GNP2WA-CsTay3Qr.js","assets/gitGraphDiagram-NY62KEGX-Cr7KuVc8.js","assets/chunk-4BX2VUAB-KZtUHSw3.js","assets/chunk-QZHKN3VN-BRs4hln6.js","assets/treemap-KMMF4GRG-BsoblFM5.js","assets/ganttDiagram-LVOFAZNH-CEJd76u6.js","assets/linear-Bg3HtxIB.js","assets/init-Gi6I4Gst.js","assets/defaultLocale-C4B-KCzX.js","assets/infoDiagram-F6ZHWCRC-B6PyESp0.js","assets/pieDiagram-ADFJNKIX-Am2n8jc0.js","assets/arc-DzCTkvPU.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-AYHSOK5B-DPm8iQzH.js","assets/xychartDiagram-PRI3JC2R-B6g-H_PO.js","assets/requirementDiagram-UZGBJVZJ-hVW5YE3R.js","assets/sequenceDiagram-WL72ISMW-Brl8T0m9.js","assets/classDiagram-2ON5EDUG-7Lo3C-C9.js","assets/chunk-B4BG7PRW-CkjDO6x_.js","assets/classDiagram-v2-WZHVMYZB-7Lo3C-C9.js","assets/stateDiagram-FKZM4ZOC-CxrXSnfX.js","assets/chunk-DI55MBZ5-ZN0hc9BQ.js","assets/stateDiagram-v2-4FDKWEC3-BJfGHaLv.js","assets/journeyDiagram-XKPGCS4Q-DSlyGZSv.js","assets/timeline-definition-IT6M3QCI-CO6fKxuR.js","assets/mindmap-definition-VGOIOE7T-DZ4bp0qm.js","assets/kanban-definition-3W4ZIXB7-DbDLw__g.js","assets/sankeyDiagram-TZEHDZUN-DX8gGHoq.js","assets/diagram-S2PKOQOG-BOmtKWhQ.js","assets/diagram-QEK2KX5R-hcM85tep.js","assets/blockDiagram-VD42YOAC-DbHo3vzo.js","assets/architectureDiagram-VXUJARFQ-8nWlVbiO.js","assets/diagram-PSM6KHXK-SU1hlbjn.js"])))=>i.map(i=>d[i]);
2
+ import{j as p}from"./data-structures-C0h9Oap1.js";import{r as O,g as Au,W as xr}from"./monaco-editor-DHKm5-VF.js";import{o as ig,A as nc,a as ic,u as Nu,h as l1,l as c1,d as u1,p as h1,S as d1}from"./agents-D9dWnZr0.js";import{g as f1,h as p1,i as g1,j as m1,k as x1}from"./useAgents-BlQGwXjx.js";import{u as y1}from"./useSessions-BAxZ6l2n.js";import{u as Ce,B as Ke,T as Ve,b as b1,K as k1,c as w1}from"./tools-zTM46-tZ.js";import{m as en,g as od,av as v1,o as C1,Y as sg,I as sc,b0 as ag,b1 as og,X as En,k as pi,l as Ps,aA as Sa,L as _a,C as tn,n as Ta,j as ac,Z as Ea,b2 as S1,_ as xl,b3 as _1,b4 as aa,ah as T1,E as E1,at as lg,aE as A1,aB as N1,U as cg,b5 as ld,d as cd,w as Mu,V as M1,e as ug,am as ud,S as hd,b6 as L1,au as hg,b7 as I1,y as $1,v as dg,r as j1,az as B1,b8 as ks,ab as fg,i as pg,z as dd,af as D1,ac as fd,u as P1}from"./ui-components-BsYwJvCF.js";import{c as R1,m as gg,k as F1,b as mg,n as O1,u as z1}from"./index-BFYHztzB.js";import{u as oc,f as lc}from"./useCommands-DOxDeFSx.js";import{u as W1}from"./useClaudeVersions-DJ6VKG1y.js";import{e as cc,E as uc,F as pd}from"./FileExplorer-BB3suHzW.js";import{c as Fe,h as xg}from"./syntax-highlighting-CnREyncB.js";import{U as Lu}from"./UnifiedToolSelector-Bw-E7HW4.js";import{F as H1}from"./FileBrowser-Df-zwNDa.js";import{P as q1}from"./ProjectSelector-Bq0NQ_bV.js";const Xe=ig((e,t)=>({currentAgent:null,messages:[],isAiTyping:!1,currentSessionId:null,mcpStatus:{hasError:!1,connectedServers:[],connectionErrors:[],lastError:null,lastErrorDetails:void 0,lastUpdated:void 0},pendingUserQuestion:null,activeA2AStreams:{},sidebarCollapsed:!1,setCurrentAgent:r=>e(n=>({currentAgent:r,...n.currentAgent?.id!==r?.id?{messages:[],isAiTyping:!1,currentSessionId:null}:{}})),addMessage:r=>e(n=>({messages:[...n.messages,{...r,id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,timestamp:Date.now(),agentId:n.currentAgent?.id||"unknown",messageParts:[]}]})),updateMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,...n}:s)})),addTextPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"text",content:n,order:(s.messageParts||[]).length}]}:s)})),addThinkingPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"thinking",content:n,order:(s.messageParts||[]).length}]}:s)})),updateTextPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="text"&&o.id===n?{...o,content:i}:o)}:a)})),updateThinkingPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="thinking"&&o.id===n?{...o,content:i}:o)}:a)})),addCompactSummaryPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"compactSummary",content:n,order:(s.messageParts||[]).length}]}:s)})),addCommandPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"command",content:n,order:(s.messageParts||[]).length}]}:s)})),addToolPartToMessage:(r,n)=>e(i=>({messages:i.messages.map(s=>s.id===r?{...s,messageParts:[...s.messageParts||[],{id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,type:"tool",toolData:{...n,id:`${Date.now()}_${Math.random().toString(36).substr(2,9)}`,isExecuting:n.isExecuting??!1},order:(s.messageParts||[]).length}]}:s)})),updateToolPartInMessage:(r,n,i)=>e(s=>({messages:s.messages.map(a=>a.id===r?{...a,messageParts:a.messageParts?.map(o=>o.type==="tool"&&o.toolData?.id===n?{...o,toolData:o.toolData?{...o.toolData,...i}:void 0}:o)}:a)})),interruptAllExecutingTools:()=>e(r=>({messages:r.messages.map(n=>({...n,messageParts:n.messageParts?.map(i=>i.type==="tool"&&i.toolData?.isExecuting?{...i,toolData:{...i.toolData,isExecuting:!1,isInterrupted:!0}}:i)}))})),setAiTyping:r=>e({isAiTyping:r}),setCurrentSessionId:r=>e({currentSessionId:r}),clearMessages:()=>e({messages:[]}),loadSessionMessages:r=>e({messages:r}),updateMcpStatus:r=>e(n=>({mcpStatus:{...n.mcpStatus,...r,lastUpdated:Date.now()}})),clearMcpStatus:()=>e({mcpStatus:{hasError:!1,connectedServers:[],connectionErrors:[],lastError:null,lastErrorDetails:void 0,lastUpdated:void 0}}),setPendingUserQuestion:r=>e({pendingUserQuestion:r}),setA2AStreamStart:(r,n,i)=>e(s=>({activeA2AStreams:{...s.activeA2AStreams,[r]:{sessionId:n,agentUrl:r,message:i,startedAt:Date.now(),isStreaming:!0,events:[]}}})),setA2AStreamEnd:r=>e(n=>{const i=n.activeA2AStreams[r];return i?{activeA2AStreams:{...n.activeA2AStreams,[r]:{...i,isStreaming:!1}}}:n}),addA2AStreamEvent:(r,n)=>e(i=>{const s=i.activeA2AStreams[r];return s?{activeA2AStreams:{...i.activeA2AStreams,[r]:{...s,events:[...s.events,n]}}}:{activeA2AStreams:{...i.activeA2AStreams,[r]:{sessionId:n.sessionId||"",agentUrl:r,message:"",startedAt:Date.now(),isStreaming:!0,events:[n]}}}}),getA2AStreamByUrl:r=>t().activeA2AStreams[r],setSidebarCollapsed:r=>e({sidebarCollapsed:r})}));class et{static instance;static STORAGE_KEY="active_chat_tabs";static WAKEUP_SIGNAL_KEY="tab_wakeup_signal";static WAKEUP_RESPONSE_KEY="tab_wakeup_response";static TAB_TIMEOUT=300*1e3;currentTabId;cleanupInterval;lastKnownSession=null;sessionResumeHistory=[];constructor(){this.currentTabId=this.generateTabId(),this.startCleanupTimer(),this.setupBeforeUnloadHandler(),console.log(`📱 TabManager initialized with ID: ${this.currentTabId}`)}static getInstance(){return et.instance||(et.instance=new et),et.instance}registerCurrentTab(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r),s={agentId:t,sessionId:r,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title};n[i]=s,this.saveActiveTabs(n),console.log(`📱 Tab registered: ${this.currentTabId} for session ${r}`),this.lastKnownSession={agentId:t,sessionId:r}}updateCurrentTabActivity(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);n[i]&&n[i].tabId===this.currentTabId&&(n[i].lastSeen=Date.now(),n[i].url=window.location.href,n[i].title=document.title,this.saveActiveTabs(n),this.lastKnownSession={agentId:t,sessionId:r})}hasActiveTab(t,r){return this.findActiveTabForSession(t,r)!==null}findActiveTabForSession(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);if(n[i]&&Date.now()-n[i].lastSeen<et.TAB_TIMEOUT)return n[i];for(const[s,a]of Object.entries(n))if(a.agentId===t&&a.sessionId===r){if(Date.now()-a.lastSeen<et.TAB_TIMEOUT)return a;delete n[s],this.saveActiveTabs(n),console.log(`🗑️ Cleaned up expired tab: ${r}`)}return null}async wakeupExistingTab(t,r,n){if(!this.findActiveTabForSession(t,r))return!1;const s={type:"WAKEUP",agentId:t,sessionId:r,requestId:this.generateRequestId(),timestamp:Date.now(),sourceUrl:n||window.location.href};return console.log(`🔔 Sending wakeup signal for session: ${r}`),localStorage.setItem(et.WAKEUP_SIGNAL_KEY,JSON.stringify(s)),new Promise(a=>{const o=setTimeout(()=>{console.log(`⏰ Wakeup timeout for session ${r}`),a(!1)},2e3),c=setInterval(()=>{const u=localStorage.getItem(et.WAKEUP_RESPONSE_KEY);if(u)try{const h=JSON.parse(u);if(h.requestId===s.requestId){clearTimeout(o),localStorage.removeItem(et.WAKEUP_RESPONSE_KEY),console.log(`✅ Tab awakened successfully: ${r}`),a(h.success);return}}catch(h){console.error("Error parsing wakeup response:",h)}},100);setTimeout(()=>clearInterval(c),2e3)})}setupWakeupListener(t,r){const n=s=>{if(s.key===et.WAKEUP_SIGNAL_KEY&&s.newValue)try{const a=JSON.parse(s.newValue);a.type==="WAKEUP"&&a.agentId===t&&a.sessionId===r&&this.handleWakeupSignal(a)}catch(a){console.error("Error handling wakeup signal:",a)}};window.addEventListener("storage",n);const i=setInterval(()=>{const s=localStorage.getItem(et.WAKEUP_SIGNAL_KEY);if(s)try{const a=JSON.parse(s);a.type==="WAKEUP"&&a.agentId===t&&a.sessionId===r&&Date.now()-a.timestamp<5e3&&this.handleWakeupSignal(a)}catch(a){console.error("Error polling wakeup signal:",a)}},500);return console.log(`🎯 Wakeup listener setup for session: ${r}`),()=>{window.removeEventListener("storage",n),clearInterval(i),console.log(`🎯 Wakeup listener cleaned up for session: ${r}`)}}updateCurrentTabSession(t,r,n,i){const s=this.getActiveTabs(),a=this.getTabKey(t,r);s[a]&&s[a].tabId===this.currentTabId&&delete s[a];const o=this.getTabKey(n,i);s[o]={agentId:n,sessionId:i,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(s),console.log(`🔄 Tab session updated: ${r} → ${i}`),this.lastKnownSession={agentId:n,sessionId:i}}unregisterCurrentTabSession(t,r){const n=this.getActiveTabs(),i=this.getTabKey(t,r);n[i]&&n[i].tabId===this.currentTabId&&(delete n[i],this.saveActiveTabs(n),console.log(`📤 Unregistered current tab from session: ${r}`)),this.lastKnownSession&&this.lastKnownSession.agentId===t&&this.lastKnownSession.sessionId===r&&(this.lastKnownSession=null)}handleSessionResume(t,r,n){const i=this.getActiveTabs(),s=this.getTabKey(t,r),a=this.getTabKey(t,n);i[s]&&i[s].tabId===this.currentTabId?(delete i[s],i[a]={agentId:t,sessionId:n,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(i),console.log(`🔄 Session resumed: ${r} → ${n}`),this.lastKnownSession={agentId:t,sessionId:n}):(this.registerCurrentTab(t,n),console.log(`🆕 Resumed session registered: ${n}`))}recordSessionResume(t,r,n){this.sessionResumeHistory.push({originalSessionId:r,newSessionId:n,timestamp:Date.now(),agentId:t}),this.sessionResumeHistory.length>100&&(this.sessionResumeHistory=this.sessionResumeHistory.slice(-100)),console.log(`📝 Recorded session resume: ${r} → ${n}`)}smartUpdateCurrentTab(){const t=window.location.href,r=this.parseSessionFromUrl(t);if(!r){this.lastKnownSession&&(this.unregisterCurrentTabSession(this.lastKnownSession.agentId,this.lastKnownSession.sessionId),this.lastKnownSession=null);return}const{agentId:n,sessionId:i}=r;if(this.lastKnownSession){const{agentId:s,sessionId:a}=this.lastKnownSession;a!==i||s!==n?this.sessionResumeHistory.find(l=>l.originalSessionId===a&&l.newSessionId===i&&l.agentId===n&&Date.now()-l.timestamp<3e4)?(this.handleSessionResume(n,a,i),console.log(`🔄 Detected session resume via URL: ${a} → ${i}`)):(this.updateCurrentTabSession(s,a,n,i),console.log(`🎯 Regular session switch: ${a} → ${i}`)):this.updateCurrentTabActivity(n,i)}else this.registerCurrentTab(n,i),console.log(`🎯 Initial session register: ${i}`);this.lastKnownSession={agentId:n,sessionId:i}}startSmartMonitoring(){this.smartUpdateCurrentTab();const t=()=>{setTimeout(()=>this.smartUpdateCurrentTab(),100)};window.addEventListener("popstate",t);const r=history.pushState,n=history.replaceState;return history.pushState=function(...i){r.apply(this,i),t()},history.replaceState=function(...i){n.apply(this,i),t()},console.log(`🎯 Smart monitoring started for tab: ${this.currentTabId}`),()=>{window.removeEventListener("popstate",t),history.pushState=r,history.replaceState=n,console.log(`🛑 Smart monitoring stopped for tab: ${this.currentTabId}`)}}handleWakeupSignal(t){console.log(`🔔 Received wakeup signal for session: ${t.sessionId}`);try{if(window.focus(),window.parent&&window.parent!==window&&window.parent.focus(),document.hidden){const n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});document.dispatchEvent(n)}}catch(n){console.log("Focus attempt failed:",n)}this.flashPageTitle(),this.playNotificationSound(),t.sourceUrl&&t.sourceUrl!==window.location.href?this.isSameSession(t.sourceUrl,window.location.href)?(console.log("🎯 URLs point to same session, forcing visibility"),this.makePageVisible()):(console.log(`🔄 Navigating to: ${t.sourceUrl}`),window.history.replaceState(null,"",t.sourceUrl),window.location.reload()):this.makePageVisible();const r={requestId:t.requestId,agentId:t.agentId,sessionId:t.sessionId,success:!0,timestamp:Date.now()};localStorage.setItem(et.WAKEUP_RESPONSE_KEY,JSON.stringify(r)),localStorage.removeItem(et.WAKEUP_SIGNAL_KEY),this.updateCurrentTabActivity(t.agentId,t.sessionId),console.log(`✅ Wakeup signal processed successfully for session: ${t.sessionId}`)}flashPageTitle(){const t=document.title;let r=0;const n=setInterval(()=>{document.title=r%2===0?"🔔 会话已唤起":t,r++,r>6&&(clearInterval(n),document.title=t)},500),i=()=>{clearInterval(n),document.title=t,window.removeEventListener("focus",i)};window.addEventListener("focus",i)}playNotificationSound(){try{const t=new(window.AudioContext||window.webkitAudioContext),r=t.createOscillator(),n=t.createGain();r.connect(n),n.connect(t.destination),r.frequency.setValueAtTime(800,t.currentTime),r.frequency.setValueAtTime(600,t.currentTime+.1),n.gain.setValueAtTime(.1,t.currentTime),n.gain.exponentialRampToValueAtTime(.01,t.currentTime+.2),r.start(t.currentTime),r.stop(t.currentTime+.2)}catch(t){console.log("Audio notification not supported:",t)}}makePageVisible(){try{window.scrollTo(0,0),document.fullscreenEnabled&&document.documentElement.requestFullscreen?.()?.then(()=>{setTimeout(()=>{document.exitFullscreen?.()},100)}).catch(n=>console.log("Fullscreen toggle failed:",n));const t=document.createElement("div");t.style.cssText=`
3
3
  position: fixed;
4
4
  top: 50%;
5
5
  left: 50%;
@@ -374,8 +374,8 @@ Please report this to https://github.com/markedjs/marked.`,t){let i="<p>An error
374
374
  node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const n=e.x,i=e.y,s=Math.abs(n-r.x),a=e.width/2;let o=r.x<t.x?a-s:a+s;const l=e.height/2,c=Math.abs(t.y-r.y),u=Math.abs(t.x-r.x);if(Math.abs(i-t.y)*a>Math.abs(n-t.x)*l){let h=r.y<t.y?t.y-l-i:i-l-t.y;o=u*h/c;const d={x:r.x<t.x?r.x+o:r.x-u+o,y:r.y<t.y?r.y+c-h:r.y-c+h};return o===0&&(d.x=t.x,d.y=t.y),u===0&&(d.x=t.x),c===0&&(d.y=t.y),K.debug(`abc89 top/bottom calc, Q ${c}, q ${h}, R ${u}, r ${o}`,d),d}else{r.x<t.x?o=t.x-a-n:o=n-a-t.x;let h=c*o/u,d=r.x<t.x?r.x+u-o:r.x-u+o,f=r.y<t.y?r.y+h:r.y-h;return K.debug(`sides calc abc89, Q ${c}, q ${h}, R ${u}, r ${o}`,{_x:d,_y:f}),o===0&&(d=t.x,f=t.y),u===0&&(d=t.x),c===0&&(f=t.y),{x:d,y:f}}},"intersection"),Tp=x((e,t)=>{K.warn("abc88 cutPathAtIntersect",e,t);let r=[],n=e[0],i=!1;return e.forEach(s=>{if(K.info("abc88 checking point",s,t),!U5(t,s)&&!i){const a=V5(t,n,s);K.debug("abc88 inside",s,n,a),K.debug("abc88 intersection",a,t);let o=!1;r.forEach(l=>{o=o||l.x===a.x&&l.y===a.y}),r.some(l=>l.x===a.x&&l.y===a.y)?K.warn("abc88 no intersect",a,r):r.push(a),i=!0}else K.warn("abc88 outside",s,n),n=s,i||r.push(s)}),K.debug("returning points",r),r},"cutPathAtIntersect");function qk(e){const t=[],r=[];for(let n=1;n<e.length-1;n++){const i=e[n-1],s=e[n],a=e[n+1];(i.x===s.x&&s.y===a.y&&Math.abs(s.x-a.x)>5&&Math.abs(s.y-i.y)>5||i.y===s.y&&s.x===a.x&&Math.abs(s.x-i.x)>5&&Math.abs(s.y-a.y)>5)&&(t.push(s),r.push(n))}return{cornerPoints:t,cornerPointPositions:r}}x(qk,"extractCornerPoints");var Ep=x(function(e,t,r){const n=t.x-e.x,i=t.y-e.y,s=Math.sqrt(n*n+i*i),a=r/s;return{x:t.x-a*n,y:t.y-a*i}},"findAdjacentPoint"),G5=x(function(e){const{cornerPointPositions:t}=qk(e),r=[];for(let n=0;n<e.length;n++)if(t.includes(n)){const i=e[n-1],s=e[n+1],a=e[n],o=Ep(i,a,5),l=Ep(s,a,5),c=l.x-o.x,u=l.y-o.y;r.push(o);const h=Math.sqrt(2)*2;let d={x:a.x,y:a.y};if(Math.abs(s.x-i.x)>10&&Math.abs(s.y-i.y)>=10){K.debug("Corner point fixing",Math.abs(s.x-i.x),Math.abs(s.y-i.y));const f=5;a.x===o.x?d={x:c<0?o.x-f+h:o.x+f-h,y:u<0?o.y-h:o.y+h}:d={x:c<0?o.x-h:o.x+h,y:u<0?o.y-f+h:o.y+f-h}}else K.debug("Corner point skipping fixing",Math.abs(s.x-i.x),Math.abs(s.y-i.y));r.push(d,l)}else r.push(e[n]);return r},"fixCorners"),Y5=x((e,t,r)=>{const n=e-t-r,i=2,s=2,a=i+s,o=Math.floor(n/a),l=Array(o).fill(`${i} ${s}`).join(" ");return`0 ${t} ${l} ${r}`},"generateDashArray"),X5=x(function(e,t,r,n,i,s,a,o=!1){const{handDrawnSeed:l}=Pe();let c=t.points,u=!1;const h=i;var d=s;const f=[];for(const $ in t.cssCompiledStyles)wy($)||f.push(t.cssCompiledStyles[$]);K.debug("UIO intersect check",t.points,d.x,h.x),d.intersect&&h.intersect&&!o&&(c=c.slice(1,t.points.length-1),c.unshift(h.intersect(c[0])),K.debug("Last point UIO",t.start,"-->",t.end,c[c.length-1],d,d.intersect(c[c.length-1])),c.push(d.intersect(c[c.length-1])));const g=btoa(JSON.stringify(c));t.toCluster&&(K.info("to cluster abc88",r.get(t.toCluster)),c=Tp(t.points,r.get(t.toCluster).node),u=!0),t.fromCluster&&(K.debug("from cluster abc88",r.get(t.fromCluster),JSON.stringify(c,null,2)),c=Tp(c.reverse(),r.get(t.fromCluster).node).reverse(),u=!0);let m=c.filter($=>!Number.isNaN($.y));m=G5(m);let b=Da;switch(b=so,t.curve){case"linear":b=so;break;case"basis":b=Da;break;case"cardinal":b=_0;break;case"bumpX":b=k0;break;case"bumpY":b=w0;break;case"catmullRom":b=E0;break;case"monotoneX":b=$0;break;case"monotoneY":b=j0;break;case"natural":b=D0;break;case"step":b=P0;break;case"stepAfter":b=F0;break;case"stepBefore":b=R0;break;default:b=Da}const{x:y,y:k}=G$(t),v=MI().x(y).y(k).curve(b);let S;switch(t.thickness){case"normal":S="edge-thickness-normal";break;case"thick":S="edge-thickness-thick";break;case"invisible":S="edge-thickness-invisible";break;default:S="edge-thickness-normal"}switch(t.pattern){case"solid":S+=" edge-pattern-solid";break;case"dotted":S+=" edge-pattern-dotted";break;case"dashed":S+=" edge-pattern-dashed";break;default:S+=" edge-pattern-solid"}let _,w=t.curve==="rounded"?Uk(Vk(m,t),5):v(m);const E=Array.isArray(t.style)?t.style:[t.style];let I=E.find($=>$?.startsWith("stroke:")),N=!1;if(t.look==="handDrawn"){const $=ae.svg(e);Object.assign([],m);const F=$.path(w,{roughness:.3,seed:l});S+=" transition",_=$e(F).select("path").attr("id",t.id).attr("class"," "+S+(t.classes?" "+t.classes:"")).attr("style",E?E.reduce((P,W)=>P+";"+W,""):"");let L=_.attr("d");_.attr("d",L),e.node().appendChild(_.node())}else{const $=f.join(";"),F=E?E.reduce((te,A)=>te+A+";",""):"";let L="";t.animate&&(L=" edge-animation-fast"),t.animation&&(L=" edge-animation-"+t.animation);const P=($?$+";"+F+";":F)+";"+(E?E.reduce((te,A)=>te+";"+A,""):"");_=e.append("path").attr("d",w).attr("id",t.id).attr("class"," "+S+(t.classes?" "+t.classes:"")+(L??"")).attr("style",P),I=P.match(/stroke:([^;]+)/)?.[1],N=t.animate===!0||!!t.animation||$.includes("animation");const W=_.node(),X=typeof W.getTotalLength=="function"?W.getTotalLength():0,C=qf[t.arrowTypeStart]||0,j=qf[t.arrowTypeEnd]||0;if(t.look==="neo"&&!N){const A=`stroke-dasharray: ${t.pattern==="dotted"||t.pattern==="dashed"?Y5(X,C,j):`0 ${C} ${X-C-j} ${j}`}; stroke-dashoffset: 0;`;_.attr("style",A+_.attr("style"))}}_.attr("data-edge",!0),_.attr("data-et","edge"),_.attr("data-id",t.id),_.attr("data-points",g),t.showPoints&&m.forEach($=>{e.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",$.x).attr("cy",$.y)});let T="";(Pe().flowchart.arrowMarkerAbsolute||Pe().state.arrowMarkerAbsolute)&&(T=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,T=T.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),K.info("arrowTypeStart",t.arrowTypeStart),K.info("arrowTypeEnd",t.arrowTypeEnd),z5(_,t,T,a,n,I);const M=Math.floor(c.length/2),B=c[M];ur.isLabelCoordinateInPath(B,_.attr("d"))||(u=!0);let R={};return u&&(R.updatedPath=c),R.originalPath=t.points,R},"insertEdge");function Uk(e,t){if(e.length<2)return"";let r="";const n=e.length,i=1e-5;for(let s=0;s<n;s++){const a=e[s],o=e[s-1],l=e[s+1];if(s===0)r+=`M${a.x},${a.y}`;else if(s===n-1)r+=`L${a.x},${a.y}`;else{const c=a.x-o.x,u=a.y-o.y,h=l.x-a.x,d=l.y-a.y,f=Math.hypot(c,u),g=Math.hypot(h,d);if(f<i||g<i){r+=`L${a.x},${a.y}`;continue}const m=c/f,b=u/f,y=h/g,k=d/g,v=m*y+b*k,S=Math.max(-1,Math.min(1,v)),_=Math.acos(S);if(_<i||Math.abs(Math.PI-_)<i){r+=`L${a.x},${a.y}`;continue}const w=Math.min(t/Math.sin(_/2),f/2,g/2),E=a.x-m*w,I=a.y-b*w,N=a.x+y*w,T=a.y+k*w;r+=`L${E},${I}`,r+=`Q${a.x},${a.y} ${N},${T}`}}return r}x(Uk,"generateRoundedPath");function fu(e,t){if(!e||!t)return{angle:0,deltaX:0,deltaY:0};const r=t.x-e.x,n=t.y-e.y;return{angle:Math.atan2(n,r),deltaX:r,deltaY:n}}x(fu,"calculateDeltaAndAngle");function Vk(e,t){const r=e.map(i=>({...i}));if(e.length>=2&&Ct[t.arrowTypeStart]){const i=Ct[t.arrowTypeStart],s=e[0],a=e[1],{angle:o}=fu(s,a),l=i*Math.cos(o),c=i*Math.sin(o);r[0].x=s.x+l,r[0].y=s.y+c}const n=e.length;if(n>=2&&Ct[t.arrowTypeEnd]){const i=Ct[t.arrowTypeEnd],s=e[n-1],a=e[n-2],{angle:o}=fu(a,s),l=i*Math.cos(o),c=i*Math.sin(o);r[n-1].x=s.x-l,r[n-1].y=s.y-c}return r}x(Vk,"applyMarkerOffsetsToPoints");var K5=x((e,t,r,n)=>{t.forEach(i=>{d4[i](e,r,n)})},"insertMarkers"),Q5=x((e,t,r)=>{K.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),Z5=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),J5=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),e4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),t4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),r4=x((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),n4=x((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),i4=x((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),s4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),a4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneStart").attr("class","marker onlyOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneEnd").attr("class","marker onlyOne "+t).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),o4=x((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneStart").attr("class","marker zeroOrOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("d","M9,0 L9,18");const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+t).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),i.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),l4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreStart").attr("class","marker oneOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreEnd").attr("class","marker oneOrMore "+t).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),c4=x((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+t).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),i.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),u4=x((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0
375
375
  L20,10
376
376
  M20,10
377
- L0,20`)},"requirement_arrow"),h4=x((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),d4={extension:Q5,composition:Z5,aggregation:J5,dependency:e4,lollipop:t4,point:r4,circle:n4,cross:i4,barb:s4,only_one:a4,zero_or_one:o4,one_or_more:l4,zero_or_more:c4,requirement_arrow:u4,requirement_contains:h4},f4=K5,p4={common:Ei,getConfig:_t,insertCluster:v5,insertEdge:X5,insertEdgeLabel:H5,insertMarkers:f4,insertNode:Hk,interpolateToCurve:Ah,labelHelper:xe,log:K,positionEdgeLabel:q5},js={},Gk=x(e=>{for(const t of e)js[t.name]=t},"registerLayoutLoaders"),g4=x(()=>{Gk([{name:"dagre",loader:x(async()=>await Fe(()=>import("./dagre-6UL2VRFP-CponDeYZ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")},{name:"cose-bilkent",loader:x(async()=>await Fe(()=>import("./cose-bilkent-S5V4N54A-BIz6tY7t.js"),__vite__mapDeps([23,24,7,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")}])},"registerDefaultLayoutLoaders");g4();var $6=x(async(e,t)=>{if(!(e.layoutAlgorithm in js))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);const r=js[e.layoutAlgorithm];return(await r.loader()).render(e,t,p4,{algorithm:r.algorithm})},"render"),j6=x((e="",{fallback:t="dagre"}={})=>{if(e in js)return e;if(t in js)return K.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm"),Yk="comm",Xk="rule",Kk="decl",m4="@import",x4="@namespace",y4="@keyframes",b4="@layer",Qk=Math.abs,Yh=String.fromCharCode;function Zk(e){return e.trim()}function za(e,t,r){return e.replace(t,r)}function k4(e,t,r){return e.indexOf(t,r)}function si(e,t){return e.charCodeAt(t)|0}function Ci(e,t,r){return e.slice(t,r)}function wr(e){return e.length}function w4(e){return e.length}function va(e,t){return t.push(e),e}var ll=1,Si=1,Jk=0,ir=0,it=0,Ii="";function Xh(e,t,r,n,i,s,a,o){return{value:e,root:t,parent:r,type:n,props:i,children:s,line:ll,column:Si,length:a,return:"",siblings:o}}function v4(){return it}function C4(){return it=ir>0?si(Ii,--ir):0,Si--,it===10&&(Si=1,ll--),it}function fr(){return it=ir<Jk?si(Ii,ir++):0,Si++,it===10&&(Si=1,ll++),it}function Jr(){return si(Ii,ir)}function Wa(){return ir}function cl(e,t){return Ci(Ii,e,t)}function Bs(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function S4(e){return ll=Si=1,Jk=wr(Ii=e),ir=0,[]}function _4(e){return Ii="",e}function ec(e){return Zk(cl(ir-1,pu(e===91?e+2:e===40?e+1:e)))}function T4(e){for(;(it=Jr())&&it<33;)fr();return Bs(e)>2||Bs(it)>3?"":" "}function E4(e,t){for(;--t&&fr()&&!(it<48||it>102||it>57&&it<65||it>70&&it<97););return cl(e,Wa()+(t<6&&Jr()==32&&fr()==32))}function pu(e){for(;fr();)switch(it){case e:return ir;case 34:case 39:e!==34&&e!==39&&pu(it);break;case 40:e===41&&pu(e);break;case 92:fr();break}return ir}function A4(e,t){for(;fr()&&e+it!==57;)if(e+it===84&&Jr()===47)break;return"/*"+cl(t,ir-1)+"*"+Yh(e===47?e:fr())}function N4(e){for(;!Bs(Jr());)fr();return cl(e,ir)}function M4(e){return _4(Ha("",null,null,null,[""],e=S4(e),0,[0],e))}function Ha(e,t,r,n,i,s,a,o,l){for(var c=0,u=0,h=a,d=0,f=0,g=0,m=1,b=1,y=1,k=0,v="",S=i,_=s,w=n,E=v;b;)switch(g=k,k=fr()){case 40:if(g!=108&&si(E,h-1)==58){k4(E+=za(ec(k),"&","&\f"),"&\f",Qk(c?o[c-1]:0))!=-1&&(y=-1);break}case 34:case 39:case 91:E+=ec(k);break;case 9:case 10:case 13:case 32:E+=T4(g);break;case 92:E+=E4(Wa()-1,7);continue;case 47:switch(Jr()){case 42:case 47:va(L4(A4(fr(),Wa()),t,r,l),l),(Bs(g||1)==5||Bs(Jr()||1)==5)&&wr(E)&&Ci(E,-1,void 0)!==" "&&(E+=" ");break;default:E+="/"}break;case 123*m:o[c++]=wr(E)*y;case 125*m:case 59:case 0:switch(k){case 0:case 125:b=0;case 59+u:y==-1&&(E=za(E,/\f/g,"")),f>0&&(wr(E)-h||m===0&&g===47)&&va(f>32?Np(E+";",n,r,h-1,l):Np(za(E," ","")+";",n,r,h-2,l),l);break;case 59:E+=";";default:if(va(w=Ap(E,t,r,c,u,i,o,v,S=[],_=[],h,s),s),k===123)if(u===0)Ha(E,t,w,w,S,s,h,o,_);else{switch(d){case 99:if(si(E,3)===110)break;case 108:if(si(E,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Ha(e,w,w,n&&va(Ap(e,w,w,0,0,i,o,v,i,S=[],h,_),_),i,_,h,o,n?S:_):Ha(E,w,w,w,[""],_,0,o,_)}}c=u=f=0,m=y=1,v=E="",h=a;break;case 58:h=1+wr(E),f=g;default:if(m<1){if(k==123)--m;else if(k==125&&m++==0&&C4()==125)continue}switch(E+=Yh(k),k*m){case 38:y=u>0?1:(E+="\f",-1);break;case 44:o[c++]=(wr(E)-1)*y,y=1;break;case 64:Jr()===45&&(E+=ec(fr())),d=Jr(),u=h=wr(v=E+=N4(Wa())),k++;break;case 45:g===45&&wr(E)==2&&(m=0)}}return s}function Ap(e,t,r,n,i,s,a,o,l,c,u,h){for(var d=i-1,f=i===0?s:[""],g=w4(f),m=0,b=0,y=0;m<n;++m)for(var k=0,v=Ci(e,d+1,d=Qk(b=a[m])),S=e;k<g;++k)(S=Zk(b>0?f[k]+" "+v:za(v,/&\f/g,f[k])))&&(l[y++]=S);return Xh(e,t,r,i===0?Xk:o,l,c,u,h)}function L4(e,t,r,n){return Xh(e,t,r,Yk,Yh(v4()),Ci(e,2,-2),0,n)}function Np(e,t,r,n,i){return Xh(e,t,r,Kk,Ci(e,0,n),Ci(e,n+1,-1),n,i)}function gu(e,t){for(var r="",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||"";return r}function I4(e,t,r,n){switch(e.type){case b4:if(e.children.length)break;case m4:case x4:case Kk:return e.return=e.return||e.value;case Yk:return"";case y4:return e.return=e.value+"{"+gu(e.children,n)+"}";case Xk:if(!wr(e.value=e.props.join(",")))return""}return wr(r=gu(e.children,n))?e.return=e.value+"{"+r+"}":""}var $4=_y(Object.keys,Object),j4=Object.prototype,B4=j4.hasOwnProperty;function D4(e){if(!Zo(e))return $4(e);var t=[];for(var r in Object(e))B4.call(e,r)&&r!="constructor"&&t.push(r);return t}var mu=Fn(Ar,"DataView"),xu=Fn(Ar,"Promise"),yu=Fn(Ar,"Set"),bu=Fn(Ar,"WeakMap"),Mp="[object Map]",P4="[object Object]",Lp="[object Promise]",Ip="[object Set]",$p="[object WeakMap]",jp="[object DataView]",R4=Rn(mu),F4=Rn(Is),O4=Rn(xu),z4=Rn(yu),W4=Rn(bu),bn=Ni;(mu&&bn(new mu(new ArrayBuffer(1)))!=jp||Is&&bn(new Is)!=Mp||xu&&bn(xu.resolve())!=Lp||yu&&bn(new yu)!=Ip||bu&&bn(new bu)!=$p)&&(bn=function(e){var t=Ni(e),r=t==P4?e.constructor:void 0,n=r?Rn(r):"";if(n)switch(n){case R4:return jp;case F4:return Mp;case O4:return Lp;case z4:return Ip;case W4:return $p}return t});var H4="[object Map]",q4="[object Set]",U4=Object.prototype,V4=U4.hasOwnProperty;function Bp(e){if(e==null)return!0;if(Jo(e)&&(bo(e)||typeof e=="string"||typeof e.splice=="function"||Th(e)||Eh(e)||yo(e)))return!e.length;var t=bn(e);if(t==H4||t==q4)return!e.size;if(Zo(e))return!D4(e).length;for(var r in e)if(V4.call(e,r))return!1;return!0}var ew="c4",G4=x(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),Y4=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./c4Diagram-YG6GDRKO-MlkMVL2r.js");return{diagram:t}},__vite__mapDeps([25,26,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ew,diagram:e}},"loader"),X4={id:ew,detector:G4,loader:Y4},K4=X4,tw="flowchart",Q4=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),Z4=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-IKSFEVlB.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:tw,diagram:e}},"loader"),J4={id:tw,detector:Q4,loader:Z4},eP=J4,rw="flowchart-v2",tP=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-d3"?!1:(t?.flowchart?.defaultRenderer==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(e)),"detector"),rP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-IKSFEVlB.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:rw,diagram:e}},"loader"),nP={id:rw,detector:tP,loader:rP},iP=nP,nw="er",sP=x(e=>/^\s*erDiagram/.test(e),"detector"),aP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./erDiagram-Q2GNP2WA-Ro9hB6-s.js");return{diagram:t}},__vite__mapDeps([32,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:nw,diagram:e}},"loader"),oP={id:nw,detector:sP,loader:aP},lP=oP,iw="gitGraph",cP=x(e=>/^\s*gitGraph/.test(e),"detector"),uP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./gitGraphDiagram-NY62KEGX-c_yb5ztL.js");return{diagram:t}},__vite__mapDeps([33,34,35,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:iw,diagram:e}},"loader"),hP={id:iw,detector:cP,loader:uP},dP=hP,sw="gantt",fP=x(e=>/^\s*gantt/.test(e),"detector"),pP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./ganttDiagram-LVOFAZNH-CPDNSzAq.js");return{diagram:t}},__vite__mapDeps([37,7,38,39,40,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:sw,diagram:e}},"loader"),gP={id:sw,detector:fP,loader:pP},mP=gP,aw="info",xP=x(e=>/^\s*info/.test(e),"detector"),yP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./infoDiagram-F6ZHWCRC-904Ek2Zh.js");return{diagram:t}},__vite__mapDeps([41,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:aw,diagram:e}},"loader"),bP={id:aw,detector:xP,loader:yP},ow="pie",kP=x(e=>/^\s*pie/.test(e),"detector"),wP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./pieDiagram-ADFJNKIX-Bbzzfu-z.js");return{diagram:t}},__vite__mapDeps([42,34,36,8,7,2,4,5,43,44,39,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ow,diagram:e}},"loader"),vP={id:ow,detector:kP,loader:wP},lw="quadrantChart",CP=x(e=>/^\s*quadrantChart/.test(e),"detector"),SP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./quadrantDiagram-AYHSOK5B-DubsKDPG.js");return{diagram:t}},__vite__mapDeps([45,38,39,40,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:lw,diagram:e}},"loader"),_P={id:lw,detector:CP,loader:SP},TP=_P,cw="xychart",EP=x(e=>/^\s*xychart(-beta)?/.test(e),"detector"),AP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./xychartDiagram-PRI3JC2R-OdQKUqyr.js");return{diagram:t}},__vite__mapDeps([46,39,44,38,40,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:cw,diagram:e}},"loader"),NP={id:cw,detector:EP,loader:AP},MP=NP,uw="requirement",LP=x(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),IP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./requirementDiagram-UZGBJVZJ-B-rG6Gty.js");return{diagram:t}},__vite__mapDeps([47,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:uw,diagram:e}},"loader"),$P={id:uw,detector:LP,loader:IP},jP=$P,hw="sequence",BP=x(e=>/^\s*sequenceDiagram/.test(e),"detector"),DP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./sequenceDiagram-WL72ISMW-BRlH6dPX.js");return{diagram:t}},__vite__mapDeps([48,26,35,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:hw,diagram:e}},"loader"),PP={id:hw,detector:BP,loader:DP},RP=PP,dw="class",FP=x((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),OP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./classDiagram-2ON5EDUG-BJtIba9N.js");return{diagram:t}},__vite__mapDeps([49,50,28,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:dw,diagram:e}},"loader"),zP={id:dw,detector:FP,loader:OP},WP=zP,fw="classDiagram",HP=x((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),qP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./classDiagram-v2-WZHVMYZB-BJtIba9N.js");return{diagram:t}},__vite__mapDeps([51,50,28,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:fw,diagram:e}},"loader"),UP={id:fw,detector:HP,loader:qP},VP=UP,pw="state",GP=x((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),YP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./stateDiagram-FKZM4ZOC-BeAzs0_-.js");return{diagram:t}},__vite__mapDeps([52,53,29,30,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:pw,diagram:e}},"loader"),XP={id:pw,detector:GP,loader:YP},KP=XP,gw="stateDiagram",QP=x((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),ZP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./stateDiagram-v2-4FDKWEC3-C0c8d9Xs.js");return{diagram:t}},__vite__mapDeps([54,53,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:gw,diagram:e}},"loader"),JP={id:gw,detector:QP,loader:ZP},eR=JP,mw="journey",tR=x(e=>/^\s*journey/.test(e),"detector"),rR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./journeyDiagram-XKPGCS4Q-D4izttrO.js");return{diagram:t}},__vite__mapDeps([55,26,28,43,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:mw,diagram:e}},"loader"),nR={id:mw,detector:tR,loader:rR},iR=nR,sR=x((e,t,r)=>{K.debug(`rendering svg for syntax error
378
- `);const n=FI(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Hm(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),xw={draw:sR},aR=xw,oR={db:{},renderer:xw,parser:{parse:x(()=>{},"parse")}},lR=oR,yw="flowchart-elk",cR=x((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),uR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-IKSFEVlB.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:yw,diagram:e}},"loader"),hR={id:yw,detector:cR,loader:uR},dR=hR,bw="timeline",fR=x(e=>/^\s*timeline/.test(e),"detector"),pR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./timeline-definition-IT6M3QCI-BU_B1RmT.js");return{diagram:t}},__vite__mapDeps([56,43,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:bw,diagram:e}},"loader"),gR={id:bw,detector:fR,loader:pR},mR=gR,kw="mindmap",xR=x(e=>/^\s*mindmap/.test(e),"detector"),yR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./mindmap-definition-VGOIOE7T-Dlr09KqO.js");return{diagram:t}},__vite__mapDeps([57,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:kw,diagram:e}},"loader"),bR={id:kw,detector:xR,loader:yR},kR=bR,ww="kanban",wR=x(e=>/^\s*kanban/.test(e),"detector"),vR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./kanban-definition-3W4ZIXB7-DE7WCrea.js");return{diagram:t}},__vite__mapDeps([58,28,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ww,diagram:e}},"loader"),CR={id:ww,detector:wR,loader:vR},SR=CR,vw="sankey",_R=x(e=>/^\s*sankey(-beta)?/.test(e),"detector"),TR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./sankeyDiagram-TZEHDZUN-DU7Rgr_5.js");return{diagram:t}},__vite__mapDeps([59,44,39,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:vw,diagram:e}},"loader"),ER={id:vw,detector:_R,loader:TR},AR=ER,Cw="packet",NR=x(e=>/^\s*packet(-beta)?/.test(e),"detector"),MR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-S2PKOQOG-BKs_7af1.js");return{diagram:t}},__vite__mapDeps([60,34,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Cw,diagram:e}},"loader"),LR={id:Cw,detector:NR,loader:MR},Sw="radar",IR=x(e=>/^\s*radar-beta/.test(e),"detector"),$R=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-QEK2KX5R-C6RWP-cs.js");return{diagram:t}},__vite__mapDeps([61,34,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Sw,diagram:e}},"loader"),jR={id:Sw,detector:IR,loader:$R},_w="block",BR=x(e=>/^\s*block(-beta)?/.test(e),"detector"),DR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./blockDiagram-VD42YOAC-DdR02awp.js");return{diagram:t}},__vite__mapDeps([62,28,5,2,1,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:_w,diagram:e}},"loader"),PR={id:_w,detector:BR,loader:DR},RR=PR,Tw="architecture",FR=x(e=>/^\s*architecture/.test(e),"detector"),OR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./architectureDiagram-VXUJARFQ-CkKlTxxx.js");return{diagram:t}},__vite__mapDeps([63,34,36,8,7,2,4,5,24,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Tw,diagram:e}},"loader"),zR={id:Tw,detector:FR,loader:OR},WR=zR,Ew="treemap",HR=x(e=>/^\s*treemap/.test(e),"detector"),qR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-PSM6KHXK-D31S6iiK.js");return{diagram:t}},__vite__mapDeps([64,30,34,36,8,7,2,4,5,40,44,39,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Ew,diagram:e}},"loader"),UR={id:Ew,detector:HR,loader:qR},Dp=!1,ul=x(()=>{Dp||(Dp=!0,Za("error",lR,e=>e.toLowerCase().trim()==="error"),Za("---",{db:{clear:x(()=>{},"clear")},styles:{},renderer:{draw:x(()=>{},"draw")},parser:{parse:x(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:x(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),Tc(dR,kR,WR),Tc(K4,SR,VP,WP,lP,mP,bP,vP,jP,RP,iP,eP,mR,dP,eR,KP,iR,TP,AR,LR,MP,RR,jR,UR))},"addDiagrams"),VR=x(async()=>{K.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Nn).map(async([r,{detector:n,loader:i}])=>{if(i)try{Mc(r)}catch{try{const{diagram:s,id:a}=await i();Za(a,s,n)}catch(s){throw K.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Nn[r],s}}}))).filter(r=>r.status==="rejected");if(t.length>0){K.error(`Failed to load ${t.length} external diagrams`);for(const r of t)K.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),GR="graphics-document document";function Aw(e,t){e.attr("role",GR),t!==""&&e.attr("aria-roledescription",t)}x(Aw,"setA11yDiagramInfo");function Nw(e,t,r,n){if(e.insert!==void 0){if(r){const i=`chart-desc-${n}`;e.attr("aria-describedby",i),e.insert("desc",":first-child").attr("id",i).text(r)}if(t){const i=`chart-title-${n}`;e.attr("aria-labelledby",i),e.insert("title",":first-child").attr("id",i).text(t)}}}x(Nw,"addSVGa11yTitleDescription");var Tn,ku=(Tn=class{constructor(t,r,n,i,s){this.type=t,this.text=r,this.db=n,this.parser=i,this.renderer=s}static async fromText(t,r={}){const n=_t(),i=Qu(t,n);t=UD(t)+`
377
+ L0,20`)},"requirement_arrow"),h4=x((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),d4={extension:Q5,composition:Z5,aggregation:J5,dependency:e4,lollipop:t4,point:r4,circle:n4,cross:i4,barb:s4,only_one:a4,zero_or_one:o4,one_or_more:l4,zero_or_more:c4,requirement_arrow:u4,requirement_contains:h4},f4=K5,p4={common:Ei,getConfig:_t,insertCluster:v5,insertEdge:X5,insertEdgeLabel:H5,insertMarkers:f4,insertNode:Hk,interpolateToCurve:Ah,labelHelper:xe,log:K,positionEdgeLabel:q5},js={},Gk=x(e=>{for(const t of e)js[t.name]=t},"registerLayoutLoaders"),g4=x(()=>{Gk([{name:"dagre",loader:x(async()=>await Fe(()=>import("./dagre-6UL2VRFP-CxaKwQyB.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")},{name:"cose-bilkent",loader:x(async()=>await Fe(()=>import("./cose-bilkent-S5V4N54A-s2WN1XmV.js"),__vite__mapDeps([23,24,7,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),"loader")}])},"registerDefaultLayoutLoaders");g4();var $6=x(async(e,t)=>{if(!(e.layoutAlgorithm in js))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);const r=js[e.layoutAlgorithm];return(await r.loader()).render(e,t,p4,{algorithm:r.algorithm})},"render"),j6=x((e="",{fallback:t="dagre"}={})=>{if(e in js)return e;if(t in js)return K.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm"),Yk="comm",Xk="rule",Kk="decl",m4="@import",x4="@namespace",y4="@keyframes",b4="@layer",Qk=Math.abs,Yh=String.fromCharCode;function Zk(e){return e.trim()}function za(e,t,r){return e.replace(t,r)}function k4(e,t,r){return e.indexOf(t,r)}function si(e,t){return e.charCodeAt(t)|0}function Ci(e,t,r){return e.slice(t,r)}function wr(e){return e.length}function w4(e){return e.length}function va(e,t){return t.push(e),e}var ll=1,Si=1,Jk=0,ir=0,it=0,Ii="";function Xh(e,t,r,n,i,s,a,o){return{value:e,root:t,parent:r,type:n,props:i,children:s,line:ll,column:Si,length:a,return:"",siblings:o}}function v4(){return it}function C4(){return it=ir>0?si(Ii,--ir):0,Si--,it===10&&(Si=1,ll--),it}function fr(){return it=ir<Jk?si(Ii,ir++):0,Si++,it===10&&(Si=1,ll++),it}function Jr(){return si(Ii,ir)}function Wa(){return ir}function cl(e,t){return Ci(Ii,e,t)}function Bs(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function S4(e){return ll=Si=1,Jk=wr(Ii=e),ir=0,[]}function _4(e){return Ii="",e}function ec(e){return Zk(cl(ir-1,pu(e===91?e+2:e===40?e+1:e)))}function T4(e){for(;(it=Jr())&&it<33;)fr();return Bs(e)>2||Bs(it)>3?"":" "}function E4(e,t){for(;--t&&fr()&&!(it<48||it>102||it>57&&it<65||it>70&&it<97););return cl(e,Wa()+(t<6&&Jr()==32&&fr()==32))}function pu(e){for(;fr();)switch(it){case e:return ir;case 34:case 39:e!==34&&e!==39&&pu(it);break;case 40:e===41&&pu(e);break;case 92:fr();break}return ir}function A4(e,t){for(;fr()&&e+it!==57;)if(e+it===84&&Jr()===47)break;return"/*"+cl(t,ir-1)+"*"+Yh(e===47?e:fr())}function N4(e){for(;!Bs(Jr());)fr();return cl(e,ir)}function M4(e){return _4(Ha("",null,null,null,[""],e=S4(e),0,[0],e))}function Ha(e,t,r,n,i,s,a,o,l){for(var c=0,u=0,h=a,d=0,f=0,g=0,m=1,b=1,y=1,k=0,v="",S=i,_=s,w=n,E=v;b;)switch(g=k,k=fr()){case 40:if(g!=108&&si(E,h-1)==58){k4(E+=za(ec(k),"&","&\f"),"&\f",Qk(c?o[c-1]:0))!=-1&&(y=-1);break}case 34:case 39:case 91:E+=ec(k);break;case 9:case 10:case 13:case 32:E+=T4(g);break;case 92:E+=E4(Wa()-1,7);continue;case 47:switch(Jr()){case 42:case 47:va(L4(A4(fr(),Wa()),t,r,l),l),(Bs(g||1)==5||Bs(Jr()||1)==5)&&wr(E)&&Ci(E,-1,void 0)!==" "&&(E+=" ");break;default:E+="/"}break;case 123*m:o[c++]=wr(E)*y;case 125*m:case 59:case 0:switch(k){case 0:case 125:b=0;case 59+u:y==-1&&(E=za(E,/\f/g,"")),f>0&&(wr(E)-h||m===0&&g===47)&&va(f>32?Np(E+";",n,r,h-1,l):Np(za(E," ","")+";",n,r,h-2,l),l);break;case 59:E+=";";default:if(va(w=Ap(E,t,r,c,u,i,o,v,S=[],_=[],h,s),s),k===123)if(u===0)Ha(E,t,w,w,S,s,h,o,_);else{switch(d){case 99:if(si(E,3)===110)break;case 108:if(si(E,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Ha(e,w,w,n&&va(Ap(e,w,w,0,0,i,o,v,i,S=[],h,_),_),i,_,h,o,n?S:_):Ha(E,w,w,w,[""],_,0,o,_)}}c=u=f=0,m=y=1,v=E="",h=a;break;case 58:h=1+wr(E),f=g;default:if(m<1){if(k==123)--m;else if(k==125&&m++==0&&C4()==125)continue}switch(E+=Yh(k),k*m){case 38:y=u>0?1:(E+="\f",-1);break;case 44:o[c++]=(wr(E)-1)*y,y=1;break;case 64:Jr()===45&&(E+=ec(fr())),d=Jr(),u=h=wr(v=E+=N4(Wa())),k++;break;case 45:g===45&&wr(E)==2&&(m=0)}}return s}function Ap(e,t,r,n,i,s,a,o,l,c,u,h){for(var d=i-1,f=i===0?s:[""],g=w4(f),m=0,b=0,y=0;m<n;++m)for(var k=0,v=Ci(e,d+1,d=Qk(b=a[m])),S=e;k<g;++k)(S=Zk(b>0?f[k]+" "+v:za(v,/&\f/g,f[k])))&&(l[y++]=S);return Xh(e,t,r,i===0?Xk:o,l,c,u,h)}function L4(e,t,r,n){return Xh(e,t,r,Yk,Yh(v4()),Ci(e,2,-2),0,n)}function Np(e,t,r,n,i){return Xh(e,t,r,Kk,Ci(e,0,n),Ci(e,n+1,-1),n,i)}function gu(e,t){for(var r="",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||"";return r}function I4(e,t,r,n){switch(e.type){case b4:if(e.children.length)break;case m4:case x4:case Kk:return e.return=e.return||e.value;case Yk:return"";case y4:return e.return=e.value+"{"+gu(e.children,n)+"}";case Xk:if(!wr(e.value=e.props.join(",")))return""}return wr(r=gu(e.children,n))?e.return=e.value+"{"+r+"}":""}var $4=_y(Object.keys,Object),j4=Object.prototype,B4=j4.hasOwnProperty;function D4(e){if(!Zo(e))return $4(e);var t=[];for(var r in Object(e))B4.call(e,r)&&r!="constructor"&&t.push(r);return t}var mu=Fn(Ar,"DataView"),xu=Fn(Ar,"Promise"),yu=Fn(Ar,"Set"),bu=Fn(Ar,"WeakMap"),Mp="[object Map]",P4="[object Object]",Lp="[object Promise]",Ip="[object Set]",$p="[object WeakMap]",jp="[object DataView]",R4=Rn(mu),F4=Rn(Is),O4=Rn(xu),z4=Rn(yu),W4=Rn(bu),bn=Ni;(mu&&bn(new mu(new ArrayBuffer(1)))!=jp||Is&&bn(new Is)!=Mp||xu&&bn(xu.resolve())!=Lp||yu&&bn(new yu)!=Ip||bu&&bn(new bu)!=$p)&&(bn=function(e){var t=Ni(e),r=t==P4?e.constructor:void 0,n=r?Rn(r):"";if(n)switch(n){case R4:return jp;case F4:return Mp;case O4:return Lp;case z4:return Ip;case W4:return $p}return t});var H4="[object Map]",q4="[object Set]",U4=Object.prototype,V4=U4.hasOwnProperty;function Bp(e){if(e==null)return!0;if(Jo(e)&&(bo(e)||typeof e=="string"||typeof e.splice=="function"||Th(e)||Eh(e)||yo(e)))return!e.length;var t=bn(e);if(t==H4||t==q4)return!e.size;if(Zo(e))return!D4(e).length;for(var r in e)if(V4.call(e,r))return!1;return!0}var ew="c4",G4=x(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),Y4=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./c4Diagram-YG6GDRKO-DqFGiZ7Y.js");return{diagram:t}},__vite__mapDeps([25,26,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ew,diagram:e}},"loader"),X4={id:ew,detector:G4,loader:Y4},K4=X4,tw="flowchart",Q4=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),Z4=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-QLwVU4W3.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:tw,diagram:e}},"loader"),J4={id:tw,detector:Q4,loader:Z4},eP=J4,rw="flowchart-v2",tP=x((e,t)=>t?.flowchart?.defaultRenderer==="dagre-d3"?!1:(t?.flowchart?.defaultRenderer==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(e)),"detector"),rP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-QLwVU4W3.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:rw,diagram:e}},"loader"),nP={id:rw,detector:tP,loader:rP},iP=nP,nw="er",sP=x(e=>/^\s*erDiagram/.test(e),"detector"),aP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./erDiagram-Q2GNP2WA-CsTay3Qr.js");return{diagram:t}},__vite__mapDeps([32,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:nw,diagram:e}},"loader"),oP={id:nw,detector:sP,loader:aP},lP=oP,iw="gitGraph",cP=x(e=>/^\s*gitGraph/.test(e),"detector"),uP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./gitGraphDiagram-NY62KEGX-Cr7KuVc8.js");return{diagram:t}},__vite__mapDeps([33,34,35,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:iw,diagram:e}},"loader"),hP={id:iw,detector:cP,loader:uP},dP=hP,sw="gantt",fP=x(e=>/^\s*gantt/.test(e),"detector"),pP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./ganttDiagram-LVOFAZNH-CEJd76u6.js");return{diagram:t}},__vite__mapDeps([37,7,38,39,40,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:sw,diagram:e}},"loader"),gP={id:sw,detector:fP,loader:pP},mP=gP,aw="info",xP=x(e=>/^\s*info/.test(e),"detector"),yP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./infoDiagram-F6ZHWCRC-B6PyESp0.js");return{diagram:t}},__vite__mapDeps([41,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:aw,diagram:e}},"loader"),bP={id:aw,detector:xP,loader:yP},ow="pie",kP=x(e=>/^\s*pie/.test(e),"detector"),wP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./pieDiagram-ADFJNKIX-Am2n8jc0.js");return{diagram:t}},__vite__mapDeps([42,34,36,8,7,2,4,5,43,44,39,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ow,diagram:e}},"loader"),vP={id:ow,detector:kP,loader:wP},lw="quadrantChart",CP=x(e=>/^\s*quadrantChart/.test(e),"detector"),SP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./quadrantDiagram-AYHSOK5B-DPm8iQzH.js");return{diagram:t}},__vite__mapDeps([45,38,39,40,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:lw,diagram:e}},"loader"),_P={id:lw,detector:CP,loader:SP},TP=_P,cw="xychart",EP=x(e=>/^\s*xychart(-beta)?/.test(e),"detector"),AP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./xychartDiagram-PRI3JC2R-B6g-H_PO.js");return{diagram:t}},__vite__mapDeps([46,39,44,38,40,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:cw,diagram:e}},"loader"),NP={id:cw,detector:EP,loader:AP},MP=NP,uw="requirement",LP=x(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),IP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./requirementDiagram-UZGBJVZJ-hVW5YE3R.js");return{diagram:t}},__vite__mapDeps([47,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:uw,diagram:e}},"loader"),$P={id:uw,detector:LP,loader:IP},jP=$P,hw="sequence",BP=x(e=>/^\s*sequenceDiagram/.test(e),"detector"),DP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./sequenceDiagram-WL72ISMW-Brl8T0m9.js");return{diagram:t}},__vite__mapDeps([48,26,35,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:hw,diagram:e}},"loader"),PP={id:hw,detector:BP,loader:DP},RP=PP,dw="class",FP=x((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),OP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./classDiagram-2ON5EDUG-7Lo3C-C9.js");return{diagram:t}},__vite__mapDeps([49,50,28,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:dw,diagram:e}},"loader"),zP={id:dw,detector:FP,loader:OP},WP=zP,fw="classDiagram",HP=x((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),qP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./classDiagram-v2-WZHVMYZB-7Lo3C-C9.js");return{diagram:t}},__vite__mapDeps([51,50,28,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:fw,diagram:e}},"loader"),UP={id:fw,detector:HP,loader:qP},VP=UP,pw="state",GP=x((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),YP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./stateDiagram-FKZM4ZOC-CxrXSnfX.js");return{diagram:t}},__vite__mapDeps([52,53,29,30,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:pw,diagram:e}},"loader"),XP={id:pw,detector:GP,loader:YP},KP=XP,gw="stateDiagram",QP=x((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),ZP=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./stateDiagram-v2-4FDKWEC3-BJfGHaLv.js");return{diagram:t}},__vite__mapDeps([54,53,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:gw,diagram:e}},"loader"),JP={id:gw,detector:QP,loader:ZP},eR=JP,mw="journey",tR=x(e=>/^\s*journey/.test(e),"detector"),rR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./journeyDiagram-XKPGCS4Q-DSlyGZSv.js");return{diagram:t}},__vite__mapDeps([55,26,28,43,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:mw,diagram:e}},"loader"),nR={id:mw,detector:tR,loader:rR},iR=nR,sR=x((e,t,r)=>{K.debug(`rendering svg for syntax error
378
+ `);const n=FI(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Hm(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),xw={draw:sR},aR=xw,oR={db:{},renderer:xw,parser:{parse:x(()=>{},"parse")}},lR=oR,yw="flowchart-elk",cR=x((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),uR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./flowDiagram-NV44I4VS-QLwVU4W3.js");return{diagram:t}},__vite__mapDeps([27,28,29,30,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:yw,diagram:e}},"loader"),hR={id:yw,detector:cR,loader:uR},dR=hR,bw="timeline",fR=x(e=>/^\s*timeline/.test(e),"detector"),pR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./timeline-definition-IT6M3QCI-CO6fKxuR.js");return{diagram:t}},__vite__mapDeps([56,43,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:bw,diagram:e}},"loader"),gR={id:bw,detector:fR,loader:pR},mR=gR,kw="mindmap",xR=x(e=>/^\s*mindmap/.test(e),"detector"),yR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./mindmap-definition-VGOIOE7T-DZ4bp0qm.js");return{diagram:t}},__vite__mapDeps([57,29,30,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:kw,diagram:e}},"loader"),bR={id:kw,detector:xR,loader:yR},kR=bR,ww="kanban",wR=x(e=>/^\s*kanban/.test(e),"detector"),vR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./kanban-definition-3W4ZIXB7-DbDLw__g.js");return{diagram:t}},__vite__mapDeps([58,28,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:ww,diagram:e}},"loader"),CR={id:ww,detector:wR,loader:vR},SR=CR,vw="sankey",_R=x(e=>/^\s*sankey(-beta)?/.test(e),"detector"),TR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./sankeyDiagram-TZEHDZUN-DX8gGHoq.js");return{diagram:t}},__vite__mapDeps([59,44,39,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:vw,diagram:e}},"loader"),ER={id:vw,detector:_R,loader:TR},AR=ER,Cw="packet",NR=x(e=>/^\s*packet(-beta)?/.test(e),"detector"),MR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-S2PKOQOG-BOmtKWhQ.js");return{diagram:t}},__vite__mapDeps([60,34,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Cw,diagram:e}},"loader"),LR={id:Cw,detector:NR,loader:MR},Sw="radar",IR=x(e=>/^\s*radar-beta/.test(e),"detector"),$R=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-QEK2KX5R-hcM85tep.js");return{diagram:t}},__vite__mapDeps([61,34,36,8,7,2,4,5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Sw,diagram:e}},"loader"),jR={id:Sw,detector:IR,loader:$R},_w="block",BR=x(e=>/^\s*block(-beta)?/.test(e),"detector"),DR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./blockDiagram-VD42YOAC-DbHo3vzo.js");return{diagram:t}},__vite__mapDeps([62,28,5,2,1,31,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:_w,diagram:e}},"loader"),PR={id:_w,detector:BR,loader:DR},RR=PR,Tw="architecture",FR=x(e=>/^\s*architecture/.test(e),"detector"),OR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./architectureDiagram-VXUJARFQ-8nWlVbiO.js");return{diagram:t}},__vite__mapDeps([63,34,36,8,7,2,4,5,24,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Tw,diagram:e}},"loader"),zR={id:Tw,detector:FR,loader:OR},WR=zR,Ew="treemap",HR=x(e=>/^\s*treemap/.test(e),"detector"),qR=x(async()=>{const{diagram:e}=await Fe(async()=>{const{diagram:t}=await import("./diagram-PSM6KHXK-SU1hlbjn.js");return{diagram:t}},__vite__mapDeps([64,30,34,36,8,7,2,4,5,40,44,39,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));return{id:Ew,diagram:e}},"loader"),UR={id:Ew,detector:HR,loader:qR},Dp=!1,ul=x(()=>{Dp||(Dp=!0,Za("error",lR,e=>e.toLowerCase().trim()==="error"),Za("---",{db:{clear:x(()=>{},"clear")},styles:{},renderer:{draw:x(()=>{},"draw")},parser:{parse:x(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:x(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),Tc(dR,kR,WR),Tc(K4,SR,VP,WP,lP,mP,bP,vP,jP,RP,iP,eP,mR,dP,eR,KP,iR,TP,AR,LR,MP,RR,jR,UR))},"addDiagrams"),VR=x(async()=>{K.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Nn).map(async([r,{detector:n,loader:i}])=>{if(i)try{Mc(r)}catch{try{const{diagram:s,id:a}=await i();Za(a,s,n)}catch(s){throw K.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Nn[r],s}}}))).filter(r=>r.status==="rejected");if(t.length>0){K.error(`Failed to load ${t.length} external diagrams`);for(const r of t)K.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),GR="graphics-document document";function Aw(e,t){e.attr("role",GR),t!==""&&e.attr("aria-roledescription",t)}x(Aw,"setA11yDiagramInfo");function Nw(e,t,r,n){if(e.insert!==void 0){if(r){const i=`chart-desc-${n}`;e.attr("aria-describedby",i),e.insert("desc",":first-child").attr("id",i).text(r)}if(t){const i=`chart-title-${n}`;e.attr("aria-labelledby",i),e.insert("title",":first-child").attr("id",i).text(t)}}}x(Nw,"addSVGa11yTitleDescription");var Tn,ku=(Tn=class{constructor(t,r,n,i,s){this.type=t,this.text=r,this.db=n,this.parser=i,this.renderer=s}static async fromText(t,r={}){const n=_t(),i=Qu(t,n);t=UD(t)+`
379
379
  `;try{Mc(i)}catch{const c=gA(i);if(!c)throw new Lm(`Diagram ${i} not found.`);const{id:u,diagram:h}=await c();Za(u,h)}const{db:s,parser:a,renderer:o,init:l}=Mc(i);return a.parser&&(a.parser.yy=s),s.clear?.(),l?.(n),r.title&&s.setDiagramTitle?.(r.title),await a.parse(t),new Tn(i,t,s,a,o)}async render(t,r){await this.renderer.draw(this.text,t,r,this)}getParser(){return this.parser}getType(){return this.type}},x(Tn,"Diagram"),Tn),Pp=[],YR=x(()=>{Pp.forEach(e=>{e()}),Pp=[]},"attachFunctions"),XR=x(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function Mw(e){const t=e.match(Mm);if(!t)return{text:e,metadata:{}};let r=V$(t[1],{schema:U$})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};const n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:e.slice(t[0].length),metadata:n}}x(Mw,"extractFrontMatter");var KR=x(e=>e.replace(/\r\n?/g,`
380
380
  `).replace(/<(\w+)([^>]*)>/g,(t,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),QR=x(e=>{const{text:t,metadata:r}=Mw(e),{displayMode:n,title:i,config:s={}}=r;return n&&(s.gantt||(s.gantt={}),s.gantt.displayMode=n),{title:i,config:s,text:t}},"processFrontmatter"),ZR=x(e=>{const t=ur.detectInit(e)??{},r=ur.detectDirective(e,"wrap");return Array.isArray(r)?t.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(t.wrap=!0),{text:ID(e),directive:t}},"processDirectives");function Kh(e){const t=KR(e),r=QR(t),n=ZR(r.text),i=$h(r.config,n.directive);return e=XR(n.text),{code:e,title:r.title,config:i}}x(Kh,"preprocessDiagram");function Lw(e){const t=new TextEncoder().encode(e),r=Array.from(t,n=>String.fromCodePoint(n)).join("");return btoa(r)}x(Lw,"toBase64");var JR=5e4,eF="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",tF="sandbox",rF="loose",nF="http://www.w3.org/2000/svg",iF="http://www.w3.org/1999/xlink",sF="http://www.w3.org/1999/xhtml",aF="100%",oF="100%",lF="border:0;margin:0;",cF="margin:0",uF="allow-top-navigation-by-user-activation allow-popups",hF='The "iframe" tag is not supported by your browser.',dF=["foreignobject"],fF=["dominant-baseline"];function Qh(e){const t=Kh(e);return Ka(),LA(t.config??{}),t}x(Qh,"processAndSetConfigs");async function Iw(e,t){ul();try{const{code:r,config:n}=Qh(e);return{diagramType:(await jw(r)).type,config:n}}catch(r){if(t?.suppressErrors)return!1;throw r}}x(Iw,"parse");var Rp=x((e,t,r=[])=>`
381
381
  .${e} ${t} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),pF=x((e,t=new Map)=>{let r="";if(e.themeCSS!==void 0&&(r+=`